[P1] Smooth velocity controller — acceleration limiter + jerk reduction #455

Closed
opened 2026-03-05 09:17:45 -05:00 by sl-jetson · 0 comments
Collaborator

Goal

Smooth all motor commands to prevent jerky motion and improve rider/follower comfort.

Requirements

  • ROS2 node between command sources and VESC driver
  • Subscribe to /cmd_vel_raw (from teleop, follow-me, nav2, etc)
  • Publish /cmd_vel (smoothed, to VESC)
  • Max linear acceleration: 0.5 m/s² (configurable)
  • Max angular acceleration: 1.0 rad/s² (configurable)
  • Jerk limiting: smooth acceleration ramps (S-curve profile)
  • Emergency stop bypass: zero velocity commands skip smoothing
  • Deceleration faster than acceleration (0.8 m/s² default) for safety
  • Publish /saltybot/velocity_profile for debugging
  • Priority system: e-stop > teleop > geofence > follow-me > nav2 > patrol
## Goal Smooth all motor commands to prevent jerky motion and improve rider/follower comfort. ## Requirements - ROS2 node between command sources and VESC driver - Subscribe to /cmd_vel_raw (from teleop, follow-me, nav2, etc) - Publish /cmd_vel (smoothed, to VESC) - Max linear acceleration: 0.5 m/s² (configurable) - Max angular acceleration: 1.0 rad/s² (configurable) - Jerk limiting: smooth acceleration ramps (S-curve profile) - Emergency stop bypass: zero velocity commands skip smoothing - Deceleration faster than acceleration (0.8 m/s² default) for safety - Publish /saltybot/velocity_profile for debugging - Priority system: e-stop > teleop > geofence > follow-me > nav2 > patrol
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#455
No description provided.