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
The TurtleBot4/Create3 simulation stack should limit `linear.x` acceleration to the configured value:
```yaml
linear.x.has_acceleration_limits: true
linear.x.max_acceleration: 0.9
Under safe /cmd_vel commands, both /diffdrive_controller/cmd_vel.linear.x and /odom.twist.twist.linear.x should satisfy:
|d(linear.x)/dt| <= 0.9 m/s^2
### Actual behaviour
```markdown
The linear channel frequently exceeds the configured acceleration limit even though the input velocity remains safe.
Latest 1000-round campaign:
- `linear_acceleration` oracle label appeared **843** times
- max odom linear acceleration ratio: **2.95x**
- max `/diffdrive_controller/cmd_vel` linear acceleration ratio: **11.76x**
- max external command `|linear.x|`: **0.150 m/s**, below the configured `0.46 m/s` limit
Representative frame `1782640335.8862267`:
```text
TB4 linear acceleration envelope violated:
odom accel = 2.600 m/s^2
odom ratio = 2.89x
limit = 0.900 m/s^2
Supporting /diffdrive_controller/cmd_vel linear ratio = 6.13x
The top repeated latest-run trigger was:
(+0.150,+0.000)x4 -> (-0.150,-0.000)x4
### Error messages
```bash
TB4 linear acceleration envelope violated: accel=2.600 m/s^2 ratio=2.89 limit=0.900
To Reproduce
1. Start TurtleBot4 Standard simulation on ROS 2 Jazzy.
2. Record `/cmd_vel`, `/diffdrive_controller/cmd_vel`, `/odom`, `/wheel_vels`, and `/clock`.
3. Publish a safe linear command sequence:
```text
(+0.150,+0.000)x4 -> (-0.150,-0.000)x4
or this representative 8-step sequence:
| step |
linear.x (m/s) |
angular.z (rad/s) |
| 1 |
+0.019 |
-0.650 |
| 2 |
-0.120 |
-0.384 |
| 3 |
+0.136 |
+0.111 |
| 4 |
-0.097 |
+0.416 |
| 5 |
+0.030 |
-0.358 |
| 6 |
-0.054 |
-0.691 |
| 7 |
+0.030 |
+0.657 |
| 8 |
-0.030 |
+0.325 |
- Compute adjacent-sample acceleration on the linear.x component.
- Observe
linear.x acceleration above 0.9 m/s^2.
### Other notes
```markdown
This is the most frequent and easiest-to-reproduce axis-specific manifestation of the broader acceleration-limit issue. It should not be dismissed as out-of-range input: the input stays below both `0.46 m/s` full-speed and approximately `0.306 m/s` safety-enabled speed.
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
Under safe
/cmd_velcommands, both/diffdrive_controller/cmd_vel.linear.xand/odom.twist.twist.linear.xshould satisfy:The top repeated latest-run trigger was:
To Reproduce
or this representative 8-step sequence:
linear.xacceleration above0.9 m/s^2.