Open loop Motion control
This is the standard motion control approach where the position sensor is used to provide feedback to the motion control loop. The motion control loop (motor.move()) will calculate the target torque (current or voltage) to be applied to the motor using the underlying torque/FOC control loop (motor.loopFOC()) in order to achieve the desired motion.
SimpleFOClibrary gives you the choice of using 2 different open-loop control strategies, control strategies that do not require a position sensor
Index search uses also uses open-loop velocity control, but has some additional parameters, see index search
You set the open-loop modes by changing the motor.controller variable. If you want to control the motor angle you will set the controller to MotionControlType::angle_openloop and if you want to control motor angular velocity MotionControlType::velocity_openloop.
// MotionControlType::velocity_openloop - velocity open-loop control
// MotionControlType::angle_openloop - position open-loop control
motor.controller = MotionControlType::angle_openloop;
| Velocity control | Position/angle control |
|---|---|
MotionControlType::velocity_openloop | MotionControlType::angle_openloop |
| Go to Velocity control docs | Go to Position/angle control docs |
How it works?
Choose the motor type:
Choose the voltage control type:
Position control Velocity control
For more information about the source code implementation of the motion control strategies check the library source code documentation
