IK failure due to passive joints
IINM moveit shouldn't fail planning for the kinematics chain that includes a passive joint, but it does to me.
[move_group-1] [INFO] [1683748228.187455789] [moveit_move_group_default_capabilities.move_action_capability]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[move_group-1] [ERROR] [1683748228.188023674] [moveit_constraint_samplers.default_constraint_samplers]: IK cannot be performed for link 'robot1_base_link'. The solver can report IK solutions for link 'robot1_gripper'.
robot1_gripper
is a tip for the move-group so I might not be able to change that. SRDF:
:
<group name="robot1_robot">
<chain base_link="world" tip_link="robot1_gripper"/>
<group name="robot1_arm">
<chain base_link="robot1_base_link" tip_link="robot1_gripper"/>
:
<group_state name="home" group="robot1_robot">
<joint name="robot1_elbow_joint" value="1.571"/>
<joint name="robot1_gripper_joint" value="0"/>
<joint name="robot1_shoulder_lift_joint" value="-1.571"/>
<joint name="robot1_shoulder_pan_joint" value="0"/>
<joint name="robot1_wrist_1_joint" value="-1.571"/>
<joint name="robot1_wrist_2_joint" value="-1.571"/>
<joint name="robot1_wrist_3_joint" value="0.012"/>
<joint name="linear_actuator_joint" value="0"/>
</group_state>
:
<passive_joint name="robot1_gripper_joint"/>
:
Error happens around:
move_group_interface_.setPoseTarget(
pose_dest_,
"robot1_base_link");
bool success_arm_ = (move_group_interface_.plan(movegroup_plan_)
Tried to workaround/solve this but hasn't worked:
move_group_interface_.setEndEffectorLink("%robot1_different_link%");
- Different planner configs in ompl planning config.
- Setting a frame that's out of the kinetics chain (e.g.
world
) tosetPoseTarget
seems to avoid failing, but I don't want to do that if possible.
For now I don't have a control on the robot's moveit_config package so modifying it is not an option.
Btw, IINM, moveit#640 seems similar/the same as the issue I'm seeing and was closed with moveit!753 that was merged in 2018 into indigo-devel
. Years passed, in moveit2 repo, I don't see the commit (history of trajectoryexecutionmanager.cpp), unless there was a decision to not include that commit into moveit2 etc.
# apt-cache policy ros-galactic-moveit-ros
ros-galactic-moveit-ros:
Installed: 2.3.4-1focal.20221208.092707
Candidate: 2.3.4-1focal.20221208.092707
Asked by 130s on 2023-05-10 16:26:19 UTC
Comments