limor wrote:- how do you calculate velocity and current and how often are they updated ? what's that constant 32 used in calculating the EA?
every tick (i.e. at 1000Hz) I get the position of the servo, the derivative of this position is, by definition, measured velocity or V.
32 is 32ms, so EA = EV(now) - EV(32ms ago)
- what is verbosity, vibration-enable
verbosity is the same as robotis' "response status level" (I think that's what they called it... why they didn't use the word verbosity I don't know).
vibration-enable is a typo - that memory location isn't used. Whoops.
do you need the PSX-B board to be sitting on the bus with a secret packet to turn on the servo?
Yes... that one. without a PSX-B board you will not be able to turn the torque on.
- what effect does torque & max-torque have ? is that the PWM duty cycle ? (ie the % of time that the voltage is on during the 1ms cycle)?
Yes... torque is used as the input to the hardware PWM.
- please give examples of some P,I,V,FF_V,FF_A values & ranges and what effect these will have on servo behavior
Look at the top of page 2.
- I want to continuously as often as possible, receive from all servos their position, velocity (and external torque if possible) ; and continuously send them new target-positions and max-torque; -- how would you recommend doing this and what parameters to use?
The same way you would with an AX12 - a loop of READs followed by a single SYNC_WRITE. i.e. my firmware is better at automatically doing position holding and following than the stock firmware.
You cannot reliably get the external torque of an AX12 using the robotis firmware - I know, I have tried. You _may_ be able to get the torque from my firmware - I am not sure, I have not yet tried. What I do know is that it should be easy (a one line code change - at most) to put the motor torque into the memory map.
limor wrote:- how do you calculate velocity and current and how often are they updated ? what's that constant 32 used in calculating the EA?
every tick (i.e. at 1000Hz) I get the position of the servo, the derivative of this position is, by definition, measured velocity or V.
32 is 32ms, so EA = EV(now) - EV(32ms ago)
- what is verbosity, vibration-enable
verbosity is the same as robotis' "response status level" (I think that's what they called it... why they didn't use the word verbosity I don't know).
vibration-enable is a typo - that memory location isn't used. Whoops.
do you need the PSX-B board to be sitting on the bus with a secret packet to turn on the servo?
Yes... that one. without a PSX-B board you will not be able to turn the torque on.
- what effect does torque & max-torque have ? is that the PWM duty cycle ? (ie the % of time that the voltage is on during the 1ms cycle)?
Yes... torque is used as the input to the hardware PWM.
- please give examples of some P,I,V,FF_V,FF_A values & ranges and what effect these will have on servo behavior
Look at the top of page 2.
- I want to continuously as often as possible, receive from all servos their position, velocity (and external torque if possible) ; and continuously send them new target-positions and max-torque; -- how would you recommend doing this and what parameters to use?
The same way you would with an AX12 - a loop of READs followed by a single SYNC_WRITE. i.e. my firmware is better at automatically doing position holding and following than the stock firmware.
You cannot reliably get the external torque of an AX12 using the robotis firmware - I know, I have tried. You _may_ be able to get the torque from my firmware - I am not sure, I have not yet tried. What I do know is that it should be easy (a one line code change - at most) to put the motor torque into the memory map.