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 `linear.x` and `angular.z` change together, TurtleBot4/Create3 simulation should preserve turning-radius semantics while still respecting acceleration limits:
```yaml
preserve_turning_radius: true
linear.x.max_acceleration: 0.9
angular.z.max_acceleration: 7.725
If both constraints cannot be satisfied while preserving turning radius exactly, the safer behavior is to slow/ramp the command rather than exceed acceleration limits.
### Actual behaviour
```markdown
Coupled linear/angular reversals repeatedly violate both linear and angular acceleration envelopes.
The strongest repeated trigger in a previous 1000-round campaign was:
```text
(+0.130,+0.450)x4 -> (-0.130,-0.450)x4
It appeared in 156 error rows. After schedule de-duplication, it still appeared 17 times in the latest run.
Representative latest-run frame 1782637031.1374679:
TB4 linear acceleration envelope violated:
accel = 2.462 m/s^2
ratio = 2.74x
limit = 0.900 m/s^2
TB4 angular acceleration envelope violated:
accel = 14.843 rad/s^2
ratio = 1.92x
limit = [-7.725, 7.725] rad/s^2
Supporting /diffdrive_controller/cmd_vel ratios:
linear = 6.87x
angular = 3.52x
Latest run aggregate:
- combined acceleration with command-path support: 429
- combined odom-only acceleration: 3
### Error messages
```bash
TB4 linear acceleration envelope violated: accel=2.462 m/s^2 ratio=2.74 limit=0.900
TB4 angular acceleration envelope violated: accel=14.843 rad/s^2 ratio=1.92 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 coupled reversal sequence:
```text
(+0.130,+0.450)x4 -> (-0.130,-0.450)x4
or:
- Compute adjacent-sample acceleration for both linear.x and angular.z.
- Observe both channels exceeding configured acceleration limits.
### Other notes
```markdown
This case is not just a duplicate of pure linear or pure angular motion. It stresses:
- `preserve_turning_radius: true`
- simultaneous linear and angular acceleration limiting
- Cartesian-to-wheel command conversion
- wheel differential response under turning reversal
Please include coupled reversal cases in any regression tests for acceleration limiting.
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
If both constraints cannot be satisfied while preserving turning radius exactly, the safer behavior is to slow/ramp the command rather than exceed acceleration limits.
It appeared in 156 error rows. After schedule de-duplication, it still appeared 17 times in the latest run.
Representative latest-run frame
1782637031.1374679:Latest run aggregate:
To Reproduce
or: