odriverobotics / ODrive

High performance motor control
https://odriverobotics.com
MIT License
2.9k stars 1.51k forks source link

Make on-board coupled axis control easier to implement #306

Closed yconst closed 4 years ago

yconst commented 5 years ago

Implementing a controller that enables on-board coupled control of both axes is not straightforward in the current firmware because Controller::update is defined per axis. The Stanford Doggo team implemented their per-axis controller that updates values on both axes each time, effectively running the same code twice in every iteration.

Could the firmware be modified in some way in order to facilitate coupled on-board control of both axes?

Wetmelon commented 5 years ago

Depends what you consider "coupled" control. In our case, we handle the current control for each axis at 8kHz. If a delay of no greater than 125 microseconds is sufficient, then we can simply "couple" the movement by starting it at the same time.

madcowswe commented 4 years ago

As ODrive v4 is single axis, and we expect to depricate v3 when v4 becomes stable enough, we need to couple axes over a communications link. Hence the approach would be general MIMO n-axis coupled control over a high speed communications link.

See #464.