Contents
Ros API
VelocitySmoother Nodelet
The velocity smoother nodelet is intended to run together with the kobuki_node to apply robot's velocity and acceleration limits to the incoming commands before resending them to the robot.Subscribed Topics
~raw_cmd_vel (geometry_msgs/Twist)- Input velocity commands.
- We compare the output velocity commands to "real" velocity to ensure we don't create very big jumps in the velocity profile.
Published Topics
~smooth_cmd_vel (geometry_msgs/Twist)- Smoothed output velocity commands respecting velocity and acceleration limits.
Parameters
~accel_lim_v (double)- Linear acceleration limit. Mandatory.
- Angular acceleration limit. Mandatory.
- Linear velocity limit. Mandatory.
- Angular velocity limit. Mandatory.
- Deceleration/acceleration ratio. Useful to make deceleration more aggressive, for example to safely brake on robots with high inertia.
- Output messages rate. The velocity smoother keeps it regardless incoming messages rate, interpolating whenever necessary.
Hints
- All the parameters except frequency are dynamically reconfigurable.
- Linear and angular velocities are smoothed proportionally to the more restricted, so we guaranty a constant rotation radius.
- If the input topic gets inactive, and the last command is not a zero-velocity one, (maybe the controller crashed, or just forgot good manners...), we introduce a fake zero-velocity command after a sort timeout.
Take a look to the Kobuki's Control System Tutorial to learn how yocs_velocity_smoother works together with other components to build up a safe and flexible control system.
Report a Bug
Use github to report bugs or request features.