low level control velocity vs position control
Hi folks! I'm getting into the low level control for my ROS2 Robot, which is a wheeled bot with rear driven differential drive. Using O-Drive motors and controller, I'm wondering what is more common to be used in an application? -> Velocity Control -> Position Control
Both clearly have their advantages and it appears if we "ignore" friction, wheel slip, etc (basically ideal world) then velocity control would be easier to implement, as it is simply converting cmd_vel to rotations of the wheels.
Well, I guess the same applies for Position Control, it's just another conversion.
Here a summary of questions:
- What have you used in the past?
- What is more common?
- Would it be worthwhile to implement both and make it switchable? (but maybe upon reboot!?)
Please let me know, even if it a quick short reply. I'm struggling to decide, maybe not exactly knowing the road ahead, I don't want to be forced to go way back and adjust control mechanisms.
Thanks heaps!
You should look over ros2 navigation and ros2_control before you start writing code. For differential-drive control, most of the code that you need should already exist.