ZebraDevs / fetch_ros

Open ROS Components for Robots from Fetch Robotics
176 stars 148 forks source link

[fetch_moveit_config] set enforce_joint_model_state_space true #163

Open knorth55 opened 1 year ago

knorth55 commented 1 year ago

fetch arm collides with base or torso when path constraints is given to MotionPlanRequest. This is because Moveit computes in cartesian model state space when path constraints is given, and it causes joint jump near singularity point. With this joint jump, fetch's arm collides with its base or torso because fetch's arm is quite close to them.

Good case

https://user-images.githubusercontent.com/9300063/195620089-c3443451-4408-4593-8e54-cae00bc75e2e.mp4

Bad case

https://user-images.githubusercontent.com/9300063/195620117-91db585f-c6ba-41d0-b555-481615c1a83c.mp4

In this PR, I set enforce_joint_model_state_space true and enforce to use joint model state space. This change may needs longer planning time but it is safe.

related: https://github.com/ros-planning/moveit/pull/541 https://github.com/ros-planning/moveit/issues/562 https://github.com/ros-planning/moveit/pull/2273

erelson commented 1 year ago

Hi @knorth55 thanks for the PR! I only just saw it now, but will plan to look at your links to understand the (nice and small) change.