# position and velocity control of wheeled robot

I'm trying to control both position and velocity of a wheeled robot using ROS. Are there packages that are designed to do motion planning for this use case? Is there an example in ROS of using multiple PIDs to do something like this instead?

edit retag close merge delete

Sort by ยป oldest newest most voted

I think you only need a single PID controller. A linear model of the system might be:

x1= position, x2= speed, u= motor current

x1_dot = x2 (derivative of position = speed)

x2_dot = K*u (motor speed controlled by current)

So you can control position by controlling the motor current (through integration).

Now if you want to track a path, you need to discretize it and feed in a series of position setpoints to be tracked.

more

Wouldn't is just be x2 = K*u, as speed is controlled by current, not acceleration controlled by current? Or have I misinterpreted this?

( 2017-08-31 18:03:20 -0500 )edit

I guess that's unclear. Still only requires 1 controller, though.

( 2017-08-31 21:34:45 -0500 )edit

Depends what you/op mean by 'position'. Wheel position, as in X radians, can be done this way. But if you want to give a setpoint of world X, Y position to go to, you can't use this system. You'll need a more sophisticated controller to do that. Has OP seen this?

( 2017-09-03 18:30:39 -0500 )edit