I recently worked on an application that calculates 6th order velocity profiles for any dimension. It could be implemented in the ODrive firmware as a feature.
It can be used for coordinated motion between the two axis.
What do you think? Would there be any traction or interest for such feature?
That does sound interesting! I do not speak for the community, but I think a trajectory planner like this is more useful as a standalone application/tool that would then communicate with N ODrives over some communication method. For what it’s worth, ODrive v4 will be single axis, so any integrated firmware code for multi-axis motion planning would be applicable to v3 ODrives.
Having the firmware available as standalone compliant C++ code would certainly be helpful
I think there will be quite a lot of spare CPU-time left on ODrive v4. So it could be interesting to put in a motion planner that simply runs on one of the N ODrives on a CAN bus.
That said, we don’t yet have the low level support for buffered/synchronised motion over CAN, but we plan to do that at some point. Until then perhaps sending position setpoints at 500Hz or so over CAN could work for some less demanding applications, and may be good enough to start with.
Thx for the replies. The planner is based on polynomials so the odrive could reveive the constants and interpret the velocity/position setpoints by itself. That might spare some bandwith on the CAN bus and provides more resolution to fullfill certain performance specifications. I’ll give it a spin and see what I can do for V3 with V4 in mind.