Reading velocity and torque from hoverboard setup

I have a hoverboard setup by following the instructions on https://docs.odriverobotics.com/hoverboard.html I can set the desired velocity.

In python, how would I read the actual velocity and torque of the motors at each instant? Thank you!

Hi Moorage

The best place to start would be having a look at odrive_demo.py. If you have trouble running the script directly you can try running it through an Anaconda Prompt window by navigating to your odrive tools directory and then entering python odrive_demo.py.

Any command that works in odrivetool will work in odrive_demo.py with the only difference being that you replace your normal odrv0.axis1... with my_drive.axis1....

The number of encoder counts read per second is given by my_odrive.axis0.encoder.pll_vel and so to obtain your velocity in RPM for an 8192 count per rotation encoder you would use axis0RPM = my_odrive.axis0.encoder.pll_vel)/8192)*60.

The odrive can not measure torque directly, but instead measures current. If you know the KV of your motor then you can estimate the torque using the following relationship: axis0Torque = 8.27*my_odrive.axis0.motor.current_control.Iq_setpoint/150) * 100), # Torque [N.cm] = (8.27 * Current [A] / KV) * 100 ]). If you don’t know the KV of your motor you can try estimating it using this guide or one like it.

It looks like the current documentation does not mention odrive_demo.py in any way so it might be time that we change that. When you become more comfortable using odrive_demo.py would you consider adding a few words about it to the odrive docs under the odrivetool subheading?

Good luck and let us know if you are still having trouble

1 Like

From @madcowswe on discord:

  • a hall feedback scheme has 6 counts/ electrical rev
  • a standard hoverboard motor has 15 pole pairs, so it’s effectively 90 counts/rev

(remember you can find out by getting odrv0.axis0.motor.config.pole_pairs)

Thanks for taking the time to write your detailed post @Richard_Parsons!

Thank you indeed, @Richard_Parsons ! From the torque perspective, I see that there was a similar post How to read the torque of the motor? as well. I’m trying to understand the constants in this equation, and I see from the Google Sheet Motor Guide that 8.27 is from cell B28: =(3/2)/(sqrt(3)*(1/60)*2*PI()). Is there a description for this equation, I can read up on?

And I’m guessing the last * 100 in the equation above is to convert from N.m to N.cm, right? Thank you!

And I’m guessing the last * 100 in the equation above is to convert from N.m to N.cm , right?

Yes thats right.

Regarding the torque equation check out the wiki page on motor torque constant.