Difference between revisions of "Ltf science"
(→how to do dynamic test) |
(→how to do dynamic test) |
||
Line 55: | Line 55: | ||
*for JR3 viewing, start a 2nd matlab plotter "plot_jr3" | *for JR3 viewing, start a 2nd matlab plotter "plot_jr3" | ||
− | * python lifefix_test.py npv : to enable the LWactual and reset the charge amp | + | * On LTF: python lifefix_test.py npv : to enable the LWactual and reset the charge amp |
*start <strong>move_ecat</strong> with the desired position profile | *start <strong>move_ecat</strong> with the desired position profile |
Revision as of 16:05, 8 January 2010
PF Users Navigation:
- PCB; Lifefix_users; Pf_users; benchtest_users; CalibFix Users; Hardware; Assembly ; iochan ;
- PCA : PCB ; AKENC SC/MC 218 ; FET 217 ; IMU219 ; Swifi ; Rev200_mods ; PCA Inventory
- Special Commands to the Ankle (PFCMD) : State Controller Commands; Motor Controller Commands; Python Examples; IMU Commands ;PFCMD_PY; Pf_calb_table_py; Virtual spring test; PF EEPROM
- DOC: Pf_users; Powerfoot Keyboard User Interface; Steps for Manual Tuning; "Dashboard" Program For Assisting with Tuning
- NEW (CEB) WIKI
- Torque Feedback Controller Guide
- LF: Lifefix_users; Ltf_science; lifefix_log ; Loadwasher ; Lifefix;
Contents
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
http://18.85.17.197/for_wiki/png/ltf/TN_fullrange_backdrive_wmp_3amps_and_jr3.JPG [1]
http://18.85.17.197/for_wiki/png/ltf/TN_fullrange_backdrive_wmp_3amps_zoom.JPG [2]
force vs motor rotations
- Previous experiment with data ploted WRT to robot motor rotations - notice the periodic relationship in the forces wrt to motor.
http://18.85.17.197/for_wiki/png/ltf/TN_fullrange_backdrive_vs_ak_motor_wmp_3amps_w_jr3.JPG [3]
- 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.
http://18.85.17.197/for_wiki/png/ltf/TN_fullrange_backdrive_vs_ak_motor_wmp_3amps_w_jr3_zoom.JPG [4]
Dec 2009 - dynamic tests
- 3 amp discrete discrete sine waves applied. This plot is versus time. (freq range ~10hz to 20hz)
http://18.85.17.197/for_wiki/png/ltf/TN_discrete_sine_sweep_with_jr3.JPG [5]
- continuous time sine sweep from 1 to 200 hz. This plot is versus experiment time (but has a drive frq trace)
http://18.85.17.197/for_wiki/png/ltf/TN_continuous_sine_sweep_w_jr3.JPG [6]
- Phase response - the movie:
http://18.85.17.197/for_wiki/png/ltf/sine_drive_phase_response_8_to_30hz.avi
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 do_command.py -p 1 -s 1115 1500 0 2
- check for ~3 motor amps in MATLAB
- sets mode 2 which comutates the ankle motor
- python do_command.py -p 1 -s 1115 0 0 7
- zero the current offset
- python do_command.py -p 1 -s 1115 0 0 0
- go back to mode 0
- python do_command.py -p 1 -s 1115 1500 0 2
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 lifefix_test.py 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 log_loadcell.py -U 192.168.192.15 -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 charge_amp_control.py
- edit the lifefix_test.py stimulus program to set the desired amplitude of the tests.
- run the stimulus program
- python lifefix_test.py sweep
- often lifefix_test will run indefinitely, use the command "python lifefix_test.py 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
kca.set_fullscale_range(1000.0) lf.mc.dataport_set_readback_variable(position=2, variable_id=208); lf.mc.set_dataport_select(1); # 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_parameter('desired_dc_force',5.0); lf.set_force_mode(force_mode='dc_sweep', sweep_seconds=40.0, sweep_range=[1,200]) lf.set_parameter('current_limit',9); lf.send_run_command('start')
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
kca.set_fullscale_range(1000.0) lf.mc.dataport_set_readback_variable(position=2, variable_id=208); lf.mc.set_dataport_select(1); # 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); lf.set_parameter('desired_dc_force',-5.0); lf.set_force_mode(force_mode='CONST_TABLE'); lf.set_parameter('current_limit',12); lf.send_run_command('start')
Dec 2009 - static test
some tricks to get things working
- use do_command.py -p 1 -s 1115 1500 0 2 to set the motor phase
- python static_test.py -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
http://18.85.17.197/for_wiki/png/ltf/TN_ltf_potential_plot_9amps_bd_m11000.JPG [7]
force dependence on BD position (forward BD motion)
- the BD motor was driven in the forward direction on 12-15-09 - the result was a strong dependence of force on BD position. Ltf_matlab_source#ltf_bd_dep-121509.m
http://18.85.17.197/for_wiki/png/ltf/TN_force_dependence_on_bd_posion_121509.JPG [8]
mile encoder study
- Bench test with +-6 amps for 20 hrs
http://18.85.17.197/for_wiki/png/ltf/TN_inc_mile_encoder_hist_560000.JPG [9]
- MR encoder dependence on motor phase angle (no load, voltage limited)
http://18.85.17.197/for_wiki/png/ltf/TN_ec30_w_mr_enc_mod1000.JPG [10]
- MILE encoder dependence on motor phase angle(RE40 negative voltage)
http://18.85.17.197/for_wiki/png/ltf/TN_re40_drive_of_ec30_mile_qV_vs_mod2048_minus2600rpm.JPG [11]
- MILE encoder dependence on motor phase angle(RE40 positive voltage)
http://18.85.17.197/for_wiki/png/ltf/TN_re40_drive_of_ec30_mile_qV_vs_mod2048_2600rpm.JPG [12]
- 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.
http://18.85.17.197/for_wiki/png/ltf/TN_ec30_w_mile_enc_mod.JPG [13]
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.
http://18.85.17.197/for_wiki/png/ltf/TN_belt_resonance.JPG [14]
zoom in - resonance observed developing belt thrash test
- Zooming into a specific section:
http://18.85.17.197/for_wiki/png/ltf/TN_belt_resonance_zoom.JPG [15]