I’m buying some Odrive boards today.
I’m wondering how people are visualizing the performance of the different loops and outputs of the controller?
Is it possible to request data from the Odrive? Encoder data, bus voltage, etc?
I’m buying some Odrive boards today.
I’m wondering how people are visualizing the performance of the different loops and outputs of the controller?
Is it possible to request data from the Odrive? Encoder data, bus voltage, etc?
yes this is possible, you can find the commands here
greetz
I reviewed this page…however I don’t see any commands for seeing the outputs.
For instance how would I poll for “motor current?” or “position?”
you can set the max current yourself
what do you mean by position? You can ask the number of encoder counts
It looks like I’m interested in the complete list of “properties” available…
Blockquote
Not all parameters can be accessed via the ASCII protocol but at least all parameters with float and integer type are supported.
r [property]
property
name of the property, as seen in ODrive Toolr vbus_voltage
=> response: 24.087744
w [property] [value]
property
name of the property, as seen in ODrive Toolvalue
text representation of the value to be writtenw axis0.controller.pos_setpoint -123.456
Is your problem solved?
Kind of. Its not clear where to find the complete list of available properties.
Do I have to dig these up inside the code or have they been published somewhere?
there is a GitHub page
Hi ajlapp
For an example of how to interact with odrive over usb take a look at the demo.py script. You can also run odrivetool --help to see what features are available.
If you are operating in position control mode and wish to know the motor rotational velocity then you can pole the encoder position with time my_odrive.axis0.encoder.pos_estimate
. I’m not sure how your pole motor current though. If I figure it out I will report back here.
However you are correct in that there is currently no full list of commands available that I can see in the documentation. You can view what parameters are available by using the odrivetool though. Simply type a command and hit tab to see the list of options that are you able to select from. Eventually I plan on making a command tree like this one for the F360 API so that we can all easily reference what commands are available and how to reach them.
Ok, so odrive does not control motor torque but instead motor current. To check the motor current use motor.curent_control.Iq_measured
or motor.curent_control.Iq_setpoint
. As the names suggest, one is the set current and the other is the measured current. @madcowswe suggested that we stick with the setpoint value as it should be less noisy unless you are pushing your motor speed right to the limit where it may no longer be able to reach the setpoint.
To convert the motor current to the motor torque you can use Torque (N.m) = 8.27 * motor current / Kv which has been shown to be in reasonable agreement with the measured torque.
There is now a section on the odrive docs that covers how to use the liverplotter function of odrivetool.