High Frequency Torque Control

Hi all,

I am using RoboRIO and ODrive 3.6 board for robot control. I have used CAN to receive encoder information and send input current, but I was only able to get a maximum frequency of 200 Hz with a baud rate of 1000 kbps.
It seemed that RoboRIO was capable of sending CAN signals very fast, but the receiving of encoder vel estimate from Odrive was delayed.
My goal is to communicate with two ODrive at 1kHz (receive vel_estimate and send input_current for three motors). So my first question is if this would be possible? And how can I increase the control frequency?

Since my previous attempt with CAN failed, I then have the RoboRIO send PWM signal with a carrier frequency of 1kHz to GPIO pins on ODrive (with modified firmware that can read such PWM) in order to control input_current. I am wondering if there is a way to know the delay between ODrive receiving PWM signal and generating commanded current? Is it almost instantaneously?

Thank you for your time and help in advance.



It is almost instant. The control loop is 8 kHz.

Three motors or 3 ODrives? For 3 axes, you’re at 76% bus load, which is already high. you don’t want any other CAN traffic or you’ll definitely go over 100%. And even 76% means you’ll probably have quite a few collisions