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 `angular.z` acceleration to the configured value:
```yaml
angular.z.has_acceleration_limits: true
angular.z.max_acceleration: 7.725
angular.z.min_acceleration: -7.725
Under safe /cmd_vel commands, both /diffdrive_controller/cmd_vel.angular.z and /odom.twist.twist.angular.z should satisfy:
|d(angular.z)/dt| <= 7.725 rad/s^2
### Actual behaviour
```markdown
The angular channel exceeds the configured acceleration limit even though the input angular velocity remains safe.
Latest 1000-round campaign:
- `angular_acceleration` oracle label appeared **517** times
- max odom angular acceleration ratio: **2.33x**
- max `/diffdrive_controller/cmd_vel` angular acceleration ratio: **6.62x**
- max external command `|angular.z|`: **0.800 rad/s**, below the configured `1.9 rad/s` limit
Representative frame `1782642590.4508777`:
```text
TB4 angular acceleration envelope violated:
odom accel = -10.506 rad/s^2
odom ratio = 1.36x
limit = [-7.725, 7.725] rad/s^2
Supporting /diffdrive_controller/cmd_vel angular ratio = 3.59x
Representative angular odom-only frame 1782633493.955823:
TB4 angular acceleration envelope violated:
odom accel = -10.011 rad/s^2
odom ratio = 1.30x
limit = [-7.725, 7.725] rad/s^2
### Error messages
```bash
TB4 angular acceleration envelope violated: accel=-10.506 rad/s^2 ratio=1.36 limit=[-7.725, 7.725]
TB4 angular acceleration envelope violated: accel=-10.011 rad/s^2 ratio=1.30 limit=[-7.725, 7.725]
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 angular command sequence such as:
```text
(+0.000,+0.800)x8
(+0.000,-0.800)x8
(+0.000,+0.800) -> (+0.000,-0.800) repeated
or this representative 8-step sequence:
| step |
linear.x (m/s) |
angular.z (rad/s) |
| 1 |
-0.123 |
-0.171 |
| 2 |
+0.050 |
-0.553 |
| 3 |
-0.018 |
-0.250 |
| 4 |
+0.112 |
+0.261 |
| 5 |
-0.050 |
+0.141 |
| 6 |
+0.130 |
-0.127 |
| 7 |
-0.050 |
+0.407 |
| 8 |
+0.005 |
-0.650 |
- Compute adjacent-sample acceleration on the angular.z component.
- Observe angular acceleration above
7.725 rad/s^2.
### Other notes
```markdown
This shows that the acceleration-limit problem is not only a linear forward/reverse issue. Angular-only and angular-dominant cases should be included in regression testing.
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.angular.zand/odom.twist.twist.angular.zshould satisfy:Representative angular odom-only frame
1782633493.955823:To Reproduce
or this representative 8-step sequence:
7.725 rad/s^2.