Skip to content

Coupled linear/angular reversals violate acceleration limits despite preserve_turning_radius #97

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 `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:

(+0.100,-0.500)x8
  1. Compute adjacent-sample acceleration for both linear.x and angular.z.
  2. 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.

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