I love ODrive.
A while back I started developing this 6-DOF articulating arm.
After some time. I came back to it and started working on it again. A while back I posted a hard stop homing feature here
I imported the 3D model into RoboDK for simulations and trajectory path calculations:
I like RoboDK because it is Python based and I LOVE Python.
Anyway. I gave up on the project for a while because I got sick of the USB connection reliability being sucky, and crashy.
Then I put on my big boy pants on, and started modifying the firmware to use UART with custom short commands and 921600 baudrate.
After a long time of working. I got it and I developed a simple GUI to control it.
Now that I have a GUI, I can calibrate all joints and home them using the AWESOME hard stop homing. see here: https://youtu.be/nYdeXFth3EI
Then I figured I add a “park” position function that allows me to park the robot before I click IDLE and close. See here: https://youtu.be/tBGBzsRpWfc
On to the issues and where I need ideas and help.
I can use RoboDK to program a path, see here: https://youtu.be/0HJygEd8gEE
The simulation sends to my python script a list of joint angles, see here: https://youtu.be/kXAtio8DXW0
The issue as I described it is basically I would like to know the best way to drive the robot to implement the programmed path. I can get all the path joint angles and convert them to “encoder counts”, and I got it to save to a file, then get the file and extract ALL the path joint angles from it. My issue is not that. It is, what is the best or correct way to send these value to the ODrives and have them run the robot to depict this path.
I am currently using position control and trajectory control, using a modified Razor’s Edge firmware. So I am using the.
axis*.controller.input_pos = value followed by axis*.controller.update_pos()
This utilizes the trap_traj velocity, accel and decel. But it is not as easy as sending those counts to the ODrive.
If I just send the counts to each joint and run them, the motion looks like this: https://youtu.be/2A2Qs4Drmso
It is not even close
Thank you fellas in advance