|
I'm on a cell phone, so I'll be brief, but can add more detail later. I've been doing motor drivers and embedded work (software and electronics) for robotics for a while, and did work on motor driver ICs before that, so this is kind of my wheelhouse!
Briefly: I can tell you that the electronics and software are only a few parts of the overall equation here. Yes, this does look like (from the demo video results), a decent driver design, however quality of the motor DOES matter, and will eventually become a limiting factor if you are lookig for high precision or high power, as you start to run into things like torque digging, motor heating, etc. There are also little things in the driver design that can bite you if you aren't careful, but I'd need to look at the schematics to comment. I'm not trying to crap on the project or designer. There was clearly some thought and care put into this! I just don't want people to expect magic, or to think that the only difference between an industrial servo and a hobbyist motor is the electronics. That said, you can get VERY far with good electronics and control software! A hobbyist project will probably do just fine with something like this (or a motor driver reference design from the chip manufacturers), and by the time they run into limits of those designs and hobbyist motors, they'll probably have a pretty good idea of where they need to go as a next step! I'll take a closer look at this design later, and update if anyone is interested. |
Here are the documentation links to get you started:
Hardware: https://github.com/madcowswe/ODriveHardware/
v3.2 schematic: https://github.com/madcowswe/ODriveHardware/blob/master/v3/v...
Firmware: https://github.com/madcowswe/ODriveFirmware
PC config and analysis support: https://github.com/madcowswe/ODrive
FPGA: https://github.com/madcowswe/ODriveFPGA "... the FPGA logic and software that runs on the FPGA based ODrive. This is not currently in development, but may be resumed at some later date."
The hardware is based on a STM32F405RGT6[1] driving two TI DRV8301 brushless motor controller chips[2] and a bunch of MOSFETs to handle the power switching. I/O is a USB, CAN with driver chip, and SPI unbuffered on headers.[1] High-performance foundation line, ARM Cortex-M4 core with DSP and FPU, 1 Mbyte Flash, 168 MHz CPU, ART Accelerator http://www.st.com/en/microcontrollers/stm32f405rg.html
[2] DRV8301 Three-Phase Gate Driver With Dual Current Shunt Amplifiers and Buck Regulator http://www.ti.com/lit/ds/symlink/drv8301.pdf