Ltf science

From DIDEAS Wiki
Jump to: navigation, search

PF Users Navigation:


Jan 31 2010

  • 10:30am at 205,000 cycles. The backlash continues to increase. The red line appears to fit the trend and has a slope of 41 counts (corrected) per hour. The limit is 22000, thus the expected stop time is 3 to 6am. [1]
  • At 75 hrs the firmware was updated to make the encoder read atomic. The encoder range event errors have dropped significantly (but not fully). Possibly the read is still non-atomic.... [2]
  • The workloop plot at 205k cycles shows a spike growing near the 0 motor position. [3]
  • A comparison of the workloop at the start of the run on Jan 27th, and the present time. There has been a ~1/2 rotation position shift - which is possibly due to slop - as at the zero position there is alignment, as well as in the positive force, and negative position area. PNG FIG


s = importdata('\\\cbarn\src\pfcmd_python\support\parsed_log.txt'); tm = (s(:,1)-s(1,1))/3600;
x=81:115;cnt1=2.075e4;cnt2=2.12e4;tm1=81;tm2=92; y=cnt1+(x-tm1)*(cnt2-cnt1)/(cnt2-cnt1);
plot(tm, s(:,3),'.',[0,110],[2.2e4,2.2e4],'r',x,y,'r','LineWidth',2);grid on;
ylabel('encoder counts');xlabel('hours into run');title('LTF Range of Motion (1-31-10)');

Jan 30 2010

  • Some plots from 70 hours into the run.
  • There is an interesting pattern in the excessive range of motion error condition.


  • Backlash starts at 50hrs.


  • Motor temperature is steady.


Dec 2009 - full range backdrive loops

time domain

  • Backdrive was -31000 to +21000 (full range), robot applied either a constant +3 amps or -3 amps. This plot is versus time. JR3 data is correctly aligned with robot data. Notice that change in force reading with robot (and thus backdrive) position [7] [8]

force vs motor rotations

  • Previous experiment with data ploted WRT to robot motor rotations - notice the periodic relationship in the forces wrt to motor. [9]

  • Zoom into edge of above to make apparent the 0.55 motor rotation shift when robot torque current changes from +3 amps to -3 amps. [10]

Dec 2009 - dynamic tests

  • 3 amp discrete discrete sine waves applied. This plot is versus time. (freq range ~10hz to 20hz) [11]

  • continuous time sine sweep from 1 to 200 hz. This plot is versus experiment time (but has a drive frq trace) [12]

  • Phase response - the movie:

how to do dynamic test

  • login as root, cd /root/pfcmd on lifefix
  • after a power cycle of the robot on LTF - MAKE SURE BACKDRIVE IS OFF!!! (use ^C on ecat)
    • python -p 1 -s 1115 1500 0 2
      • check for ~3 motor amps in MATLAB
      • sets mode 2 which comutates the ankle motor
    • python -p 1 -s 1115 0 0 7
      • zero the current offset
    • python -p 1 -s 1115 0 0 0
      • go back to mode 0

Requires the use of 3 programs on the LTF, and a number of programs on a support PC

  • on the PC start wifi_fast and the matlab plotter "plot_lifefix". When starting wifi_fast, specify a log file (-f) that is descriptive of the test.
  • for JR3 viewing, start a 2nd matlab plotter "plot_jr3"
  • On LTF: python npv : to enable the LWactual and reset the charge amp
  • start move_ecat with the desired position profile
    • cd ecat
    • to (slowly) sweep a position : ./move_ecat -m p2p -a 1 -d 1 -p 200 -r 100 -i -27000 -f 9000
      • -p 200 -> 200 passes, -r 100 -> 100 rpm.
      • -i and -f specify initial and final position end points (check for limits!).
      • -h help display
    • to hold position for a long seconds : ./move_ecat -m p2p -a 1 -d 1 -p 1 -r 100 -i 0 -f 0 -P 99999999

  • start the jr3 logger (w/1000 hz sample rate) with optional UDP logger and a description logging file name.
    • python -U -R 1000 -f jr3_<TEST_DESCRIPTION>.txt
    • matlab (plot_jr3.m) must be running on machine specified by -U option
  • make sure that the charge amp is in the measure mode, be verifying that the LWactual plot is noisy.
    • may require the use of
  • edit the stimulus program to set the desired amplitude of the tests.
  • run the stimulus program
    • python sweep
  • often lifefix_test will run indefinitely, use the command "python stop" when enough data has been collected.
  • stop all the data collectors
  • load the data into matlab, and if necessary, align the JR3 data with the SWIFI data.

dc sine sweep tests of 12-26-09

  • ran at 3 backdrive positions, 0, +15000, -25000
  • data files live here: \\pedant\xxxxxFiles\xxxxx LLC\data\ltf\2009_dec_26_dynamic_tests
  , variable_id=208);
  ;  # MC dataport_select - routes lifefix to dataport, not SC data
            lf.set_parameter('ff_force_gain',  27.0e-3);  # this value cancels newtons_to_amps
            lf.set_parameter('sine_amp',  2.5);            
            lf.set_force_mode(force_mode='dc_sweep', sweep_seconds=40.0, sweep_range=[1,200])

white noise constant table

  • ran 6 test and 3 back drive positions, 0, +15k, -25k. Two tests run at each position - the difference being the sign of the DC component.
  • data files live here: \\pedant\xxxxxFiles\xxxxx LLC\data\ltf\2009_dec_26_dynamic_tests
  , variable_id=208);
  ;  # MC dataport_select - routes lifefix to dataport, not SC data
            lf.set_parameter('ff_force_gain',  27.0e-3);  # this value cancels newtons_to_amps
            lf.set_parameter('thrust_table_scale_factor', 5);

Dec 2009 - static test

some tricks to get things working

  • use -p 1 -s 1115 1500 0 2 to set the motor phase
  • python -J (use -J to avoid jr3_mean error)
  • when starting static_test confirm there is an AC LWactual signal sync w/qIq

potential function @ BD -11000, sweep -9 to 9 amps (in reverse BD experiment)

  • The backdrive motor was fixed at -11000, and the robot current was stepped with the following pattern: 0.2, -0.2, 0.4, -0.4, 0.6 amps, ..., 9, -9 amps. After the current step the system was allowed to settle. The LW was collected via RS232 - appx 87 samples averaged. This plot consists of appx 12 hrs of collection the full experiment cycled the backdrive motor from 21000 to -29000 (steps of -2000). This plot contains only the instances where the backdrive motor position == -11000. The LW (charge amp was not zeroed except at the very start of the experiment and its drift is apparent.) Ltf_matlab_source#ltf_pf-2009-12-16.m [13]

force dependence on BD position (forward BD motion) [14]

mile encoder study

  • Bench test with +-6 amps for 20 hrs [15]

  • MR encoder dependence on motor phase angle (no load, voltage limited) [16]

  • MILE encoder dependence on motor phase angle(RE40 negative voltage) [17]

  • MILE encoder dependence on motor phase angle(RE40 positive voltage) [18]

  • unloaded MILE at 7000-8000 rpm, voltage limited. Notice the very large motor amp spikes - but less on the qIq. This suggests there is a large qId term. [19]

early experiments

resonance observed developing belt thrash test

  • Holding the BD motor fixed, driving the robot motor w/current mode square wave at specified frequency. [20]

zoom in - resonance observed developing belt thrash test

  • Zooming into a specific section: [21]