Robot Model
Turtlebot4 Standard
ROS distro
Jazzy
Networking Configuration
Simple Discovery
OS
Ubuntu 24.04
Built from source or installed?
Installed
Package version
ros-jazzy-turtlebot4-simulator: 2.0.2-1noble.20260616.091643
ros-jazzy-turtlebot4-gz-bringup: 2.0.2-1noble.20260616.085653
ros-jazzy-irobot-create-control: 3.0.4-1noble.20260616.082318
ros-jazzy-irobot-create-gz-bringup: 3.0.4-1noble.20260616.083553
ros-jazzy-irobot-create-nodes: 3.0.4-1noble.20260615.161556
ros-jazzy-ros-gz: 1.0.22-1noble.20260616.074726
Gazebo: Harmonic / gz
Expected behaviour
When external `/cmd_vel` commands are inside the configured velocity envelope, the simulation stack should either:
1. execute them while respecting acceleration limits, or
2. internally ramp/clamp the command so `/diffdrive_controller/cmd_vel` and `/odom` stay within acceleration limits.
The stack should not require users to send already-ramped micro-commands to avoid violating its own acceleration limits.
Actual behaviour
The TurtleBot4 Jazzy fuzzing campaigns found many acceleration-envelope violations, but the evidence does **not** support an "out-of-range `/cmd_vel` input" root cause.
Across the campaigns, every analyzed input stayed inside this conservative envelope:
```text
max |linear.x| = 0.150 m/s
max |angular.z| = 0.800 rad/s
These values are below the configured runtime velocity bounds:
linear.x.max_velocity = 0.46 m/s
angular.z.max_velocity = 1.9 rad/s
Despite this, the latest 1000-round campaign observed:
928 acceleration-related error rounds
max odom linear acceleration ratio = 2.95x
max odom angular acceleration ratio = 2.33x
max /diffdrive_controller/cmd_vel linear ratio = 11.76x
max /diffdrive_controller/cmd_vel angular ratio = 6.62x
This negative control is important because the acceleration issues should not be dismissed as invalid fuzz input.
### Error messages
```bash
TB4 linear acceleration envelope violated: accel=2.600 m/s^2 ratio=2.89 limit=0.900
TB4 angular acceleration envelope violated: accel=-10.506 rad/s^2 ratio=1.36 limit=[-7.725, 7.725]
To Reproduce
1. Start TurtleBot4 Standard simulation on ROS 2 Jazzy.
2. Publish representative safe inputs such as:
```text
(+0.150,+0.000)x4 -> (-0.150,-0.000)x4
(+0.130,+0.450)x4 -> (-0.130,-0.450)x4
(+0.000,+0.800)x8
- Verify the external input envelope:
|linear.x| <= 0.150 m/s
|angular.z| <= 0.800 rad/s
- Record
/diffdrive_controller/cmd_vel, /odom, /wheel_vels, and /clock.
- Observe downstream acceleration-envelope violations despite in-range input commands.
### Other notes
```markdown
This is a triage/negative-control note. It strengthens the acceleration-limit reports by showing the root cause is downstream of the external command generator:
safe /cmd_vel
-> ROS-GZ bridge / Gazebo model command path
-> Create3/TurtleBot4 command limiting
-> wheel/odom dynamics
-> acceleration-envelope violation
If this is too broad as a standalone bug report, it can be included in "Other notes" on the main acceleration-limit issue.
Robot Model
Turtlebot4 Standard
ROS distro
Jazzy
Networking Configuration
Simple Discovery
OS
Ubuntu 24.04
Built from source or installed?
Installed
Package version
ros-jazzy-turtlebot4-simulator: 2.0.2-1noble.20260616.091643
ros-jazzy-turtlebot4-gz-bringup: 2.0.2-1noble.20260616.085653
ros-jazzy-irobot-create-control: 3.0.4-1noble.20260616.082318
ros-jazzy-irobot-create-gz-bringup: 3.0.4-1noble.20260616.083553
ros-jazzy-irobot-create-nodes: 3.0.4-1noble.20260615.161556
ros-jazzy-ros-gz: 1.0.22-1noble.20260616.074726
Gazebo: Harmonic / gz
Expected behaviour
Actual behaviour
These values are below the configured runtime velocity bounds:
Despite this, the latest 1000-round campaign observed:
This negative control is important because the acceleration issues should not be dismissed as invalid fuzz input.
To Reproduce
/diffdrive_controller/cmd_vel,/odom,/wheel_vels, and/clock.