Best BLDC Controller: ODrive vs MIT Mini Cheetah vs Moteus (MJBots)

preview_player
Показать описание
Three brushless controllers with the same motor: comparison of the low speed performance of the ODrive, Moteus (MJBots) and MIT mini cheetah controller. I hope this will help you to choose best controller for your robot.

Special thanks to my special Patrons: Wesley Corp, RobotDigg Shanghai, Pierre Freyssinet, Shounak Bhattacharya and Tom Rodinger!

Please subscribe. This will help me to develop other projects like this, to bring the bright future closer!

One time donation:

If you want to help this channel, please support me on Patreon:


#DIY #Brushless #Robotics
Рекомендации по теме
Комментарии
Автор

We need a list of recommendation books for the theory of BLDC motor controller

kukarobot
Автор

You've got a new sub ... I like the DIY robotics and controls for BLDC motors :)
Thank you and I hope for more of this.

SantaDragon
Автор

Hey love your content, you gave me some real good insight into BLDC motors with your videos. Just wondering if you could make a video demonstrating how to use the anti-cogging feature on the Odrive.

akanafrabu
Автор

This is so cool! High accuracy BLDC is so useful

alexbuilder
Автор

Thank you for demonstrating the characteristics, I’m experimenting with MJBots and had the same results, I thought it was me doing something wrong.

ragemaster
Автор

Awesome content! You are my go-to guy for Odrive knowledge. Could you do a video on tuning a motor for Odrive and running the motor without first running full_calibration_sequence? Thank you. :)

choonyuewong
Автор

Thank you for the comparison. For me, I tried Odrive with D5065 motor with low speed and it seems that, it have the same problem of MJBOTS controller with low speed. My opinion I think it's related to the motor also.

bgworkshop
Автор

Thanks for the great comparison!

However, I don't believe the moteus low velocity performance was compared using similar gain setups. ODrive by default has a non-zero velocity integrative gain, which decreases torque bandwidth but increases smoothness of low speed maneuvers. moteus by default has this gain at 0 in order to maximize torque bandwidth. You can enable the same gain in moteus by setting `servo.pid_position.ki` and `servo.pid_position.ilimit`. If you tune those, I was able to achieve basically identical low speed performance between ODrive and moteus.

The audible noise is a different matter. The majority of the noise in a default moteus setup comes from position noise reported by the magnetic encoder. I set up an ODrive with the same AS5047P as on moteus with an mj5208 motor on both and got similar audible noise volume, although the spectral content was different likely due to the higher control rate of moteus. Exactly what magnetic encoder did you use in these tests?

awesjosh
Автор

i love like this videos and your videos best.

Hybagci
Автор

This was really Interesting. I have found many servo systems work better under load, otherwise they get jittery where the motor moves quick and the encoder is constantly trying to correct . I wonder if you did the same test with simulated load

superkevinsquad
Автор

Great Video! So usefull! Thank you for sharing such information.
Just a small question, what is the adapter that you are using from USB to CAN? Because there seems to be very expensive ones.
I am more interested in the one used for the MIT mini cheetah controller.

angeloyaghi
Автор

Very useful comparison, thank you! I was thinking about switching from ODrive to MJBots because I thought MJBots would have smoother motion and not as bad cogging, but now I see ODrive is already good. Like another commenter, I originally assumed the noise was due to PWM frequency, but you indicated that they were all above 30kHz. I find it also strange considering ODrive control loop frequency is 8kHz whereas MJBots appears to run control at the full 40kHz PWM frequency, so we would expect tighter control with MJBots and less noise. Interesting.

Thanks again!

gerrychen
Автор

Smooth motion during calibration is related to the fact that BLDC is controlled in open loop for calibration purpose (it should be, because no precise speed is needed). Problem of BLDC motor control at low speed is caused by low quality construction of BLDC. These motors do not have exact sinusoidal current waveform (compared to AC servo). BLDC motor has a noise which is added on 1st (fundamental) harmonic (as I can remember noise appears at 5, 7, and 11 harmonics). AC servo motors do not have problems with low speed control because AC servo is designed and constructed in such way that current output response is pure sinusoidal (no higher harmonics that cause the noise).

BabaCAD
Автор

Awesome video where are these controller and Bldc motor use??

NetTV
Автор

The smooth motion during calibration is due to it being done openloop with relatively high current. It is simple to do this but wastes energy. The difference in noise is likely due to pwm switching frequency. You may want to move above audible range but then your switching losses increase.

OwenWilliamsRobotics
Автор

Are there tuning parameters that can improve the low speed "homogeneity" of the movement? I have several motion control projects that I need good universal BLDC drivers for, one should function more like a servo so I am leaning towards the O-Drive but would like to explore lower cost options as well!

Thanks

NathanA
Автор

I would love to see links to the motors
Love what you do <3

derarty
Автор

i just ordered 2 flipsky 4.20 vescs to control my hoverboard motors on a custom art project im working on

redrighthandarts
Автор

I wonder, could you review the Open dynamic robot iniciative? I have been locking at it but idk what type of driver they use, also I am very curious by the fact that they are usong drone rotors as motors.

nelsondisalvatore
Автор

do you have a video where you assemble the odrive testing device? how did you manage to mount the encoder to that motor?

michelegalliano