Skip to content

CheckStartStateBounds missing parameter to specifiy how much the joint can be outside the limits? #3383

@jsupratman13

Description

@jsupratman13

Description

I have a hardware where a prismatic joint fails on the CheckStartStateBounds even though the joint is practically within the limits. The issue occurs due to sensor reading limitations, causing the reported position to slightly dip below the lower joint limit by a negligible amount (e.g. less than 0.001 mm)

https://moveit.picknik.ai/main/doc/concepts/motion_planning.html#checkstartstatebounds

The robot may then end up in a configuration where one or more of its joints is slightly outside its joint limits. In this case, the motion planner is unable to plan since it will think that the starting state is outside joint limits. The “CheckStartStateBounds” planning request adapter will “fix” the start state by moving it to the joint limit. However, this is obviously not the right solution every time - e.g. where the joint is really outside its joint limits by a large amount. A parameter for the adapter specifies how much the joint can be outside its limits for it to be “fixable”.

From the document above, I assumed that CheckStartStateBounds have a parameter that "fixes" the joint if it's within this parameter.
ROS1 MoveIt seem to have a parameter that does this if I'm reading correctly.
https://github.com/moveit/moveit/blob/118d219d78563dcafe79c8b69245f00537e9fb9e/moveit_ros/planning/planning_request_adapter_plugins/src/fix_start_state_bounds.cpp#L147

However, I don't see this particularly parameter in MoveIt2.
Was this removed for a specific reason? Or is there a parameter that does this?

ROS Distro

Jazzy

OS and version

Ubuntu 24.04

Source or binary build?

Binary

If binary, which release version?

No response

If source, which branch?

No response

Which RMW are you using?

CycloneDDS

Steps to Reproduce

Plan a robot arm with prismatic joint, with sensor reading slightly below or above the joint limit.

Expected behavior

A parameter that "fixes" the joint if joint value is within this parameter.

Actual behavior

No parameter found.

Backtrace or Console output

No response

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