Which Control Mode for Constraint Motion?

Hi,

I am developing a hammer-impact system using a capstan drive mechanism [1]. I am using an incremental encoder for position feedback and connecting it to a small drum which is directly connected to the motor. The motion of the larger drum is restricted physically to the 80-degree range for which the smaller drum/motor makes 2.5 revolutions. The hammer is fixed in a larger drum and starts moving from an 80-degree position and hits the ground at a 0-degree position. The static load torque range is between 0.4 - 2.0 Nm.

The goal is to achieve a clean impact i-e to hit the ground once and instantly rebound it. There will be a peak load torque when reversing the velocity direction after hitting the ground.

I have configured the Odrive S1 in position control mode with a motor put in the Gimbal mode.

I need suggestions and recommendations from kind experts in answering the following questions;

  1. Which control mode is most suitable to achieve a clean impact?
  2. How can I determine the motor rotation range limits for the physical constraints of the 80-degree range of a larger drum?
  3. How can I vary velocity in position control mode to achieve different force impacts?

Thank you for reading the problem statement and please bear with me if my writing is not making sense.

[1] For reference, the capstan drive mechanism is developed in: https://www.youtube.com/watch?v=MwIBTbumd1Q&ab_channel=AaedMusa

Super cool project!

First, I’d probably recommend against gimbal motor mode, depending on the motor – it’s not designed for either high speeds or transient loads. What motor are you using?

  • Which control mode is most suitable to achieve a clean impact?

Likely position control w/ pos_filter or passthrough input mode

  • How can I determine the motor rotation range limits for the physical constraints of the 80-degree range of a larger drum?

Likely just the capstain reduction times 80°, no?

  • How can I vary velocity in position control mode to achieve different force impacts?

My strong recommendation would be to calculate the required trajectory in advance for your given impact speed, then stream it over USB, UART, or CAN bus to the ODrive, including velocity and torque feedforwards given gravity and system inertia. That’ll give the best performance possible.

1 Like

Thank you solomondg for you feedback.

I did configured motor in High Current mode, but shows less stability as compared to Gimbal mode, don’t know why, and would show Spinout error under the same load all the time.

I am using 4000 CPR encoder with Eaglepower 8308 brushless kv90 motor. Link: https://www.aliexpress.com/item/1005003421356221.html

  • What potential parameters I need to see in order to avoid this error?

solomondg, I didn’t get your this point Likely just the capstan reduction times 80°, no?

  • Other than using limit switches, how can I determine the motor’s starting position for the corresponding starting Hammer angle with only incremental encoder information? Otherwise, it could break the locks I build for range restriction in both directions.