Skip to content

Acceleration failures occur without out-of-range /cmd_vel input #102

Description

@147258369ymc

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
  1. Verify the external input envelope:
|linear.x| <= 0.150 m/s
|angular.z| <= 0.800 rad/s
  1. Record /diffdrive_controller/cmd_vel, /odom, /wheel_vels, and /clock.
  2. 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.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions