Skip to content

Unit safety issue: Angular default acceleration applied to prismatic joints #3781

Description

@Tarkiya

Description

Description

Note: This is highly related to the velocity issue reported in #3780. It involves the same dimensional mismatch pattern, but for acceleration.

A unit and safety mismatch was detected in ruckig_traj_smoothing.cpp. When acceleration bounds for a joint are missing, the algorithm falls back to DEFAULT_MAX_ACCELERATION (which conceptually represents angular acceleration in $rad/s^2$). However, because ruckig_input.max_acceleration handles both revolute and prismatic joints, this angular default is unsafely applied as $m/s^2$ for linear joints.

Code Evidence

Location: moveit_core/trajectory_processing/src/ruckig_traj_smoothing.cpp (around line 228).
Permalink:

ruckig_input.max_acceleration.at(i) = max_acceleration_scaling_factor * DEFAULT_MAX_ACCELERATION;

Dimensional and Safety Analysis

  • For Revolute Joints: The default (typically $10.0$) evaluates to **$10.0\ rad/s^2$.
  • For Prismatic Joints: The default evaluates to $10.0\ m/s^2$.

Assigning $10.0\ m/s^2$ (approximately $1G$) as a default linear acceleration is an aggressively high value for typical linear actuators. It could lead to excessive motor current draw, violent jerks, or mechanical stress if a prismatic joint without explicitly defined limits is commanded.

Thank you!

Metadata

Metadata

Assignees

No one assigned

    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