Moving PR2's base using pr2_controllers base_controller
pr2_controllers provide a low-level robot base controller for moving PR2's base. This tutorial provides a sample usage of the same. The base controller receives Twist messages on the '/base_controller/command' topic which specify the linear and angular velocity of the base. The catch is that a single command makes move the robot move for a short (unspecified) period of time before stopping.
I am using this controller to make the robot move along a path for a certain distance. This tutorial discusses a way to use base_controller to make the robot move a certain distance (by quering the actual distance moved periodically), but the issue with this approach is that the robot might end up overshooting the distance that it is expected to move. While the overshooting might seem insignificant for a single call, I am using this approach over a long path, and the errors get compounded to intolerable levels.
Is there a way to specify the period of time associated with one call to the base_controller/command? Or, is there some other way to tackle this problem?
In case it matters, I am using ROS Groovy on Ubuntu 12.04 (Presence of legacy code and package dependencies in my project have forced me to fallback to Groovy)