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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions