Robotic arm project


Hello ODrivers! I bought my first ODrive a while ago but didn’t get to do a lot until recently. I also never imagined such a vibrant community forum.

I want to share my 6dof robotic arm. Before ODrive I used hall sensors and cascade PID loop with FF. I couldn’t get FF terms right for desired performance. But no need for that anymore. ODrive just blows my mind. its awesome!

For joints it uses 5 harmonic drives and planetary gearbox. I paid 120$ each for harmonic drives from ebay seller regardless of the model (private messaging). All the motors weren’t dual shaft, so I drilled and tapped the other end then extended the shaft using a grub screw, superglue and a shorter tapped rod.

To stiffen and provide support for glueing 3D printed parts, I made cavities for carbon fiber rods and
inserted them after applying superglue. Seems to work well for joining large prints. But it still needs to be stiffer. I am considering either sand casting+machining or carbon fiber/epoxy combined with 3D printed parts

Each joint has a tiny stm32f103 board that reads motor rotor position (AMT203) and joint absolute position (magnetic encoder) and sends it off to a CAN bus. These angles are then read and ‘encoder.config.offset’ are calculated and written manually(based on offset saved after motor calibration). I do this so that joints don’t have to move at all on startup and also because without shielding the encoder cables, Z signal quality was horrible. I don’t quite understand but its much worse compared to A/B. I am in the process of adding differential drivers to them.
I had trouble losing USB connection after running for a bit, but now with release of CAN feature, I have no issues communicating with ODrive.

After working on this project I now understand why so many people are interested in integrated single axis ODrive concept. There are just too many wires to route and too many tiny terminals to crimp! I want to workon single axis concept soon and hope I can collaborate with other community members.

1 Like