Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"_mimic" joint interface name suffix causes Moveit2 "Joint not found" Error #173

Closed
shonigmann opened this issue Jan 11, 2023 · 3 comments · Fixed by #297
Closed

"_mimic" joint interface name suffix causes Moveit2 "Joint not found" Error #173

shonigmann opened this issue Jan 11, 2023 · 3 comments · Fixed by #297

Comments

@shonigmann
Copy link

shonigmann commented Jan 11, 2023

Is the mimic joint suffix that gets added to interface names (here) necessary? If so, what is its intent? I can't find anything in the ros2_control source code that is expecting a mimic suffix, but maybe I'm not looking in the right place.

I suppose it makes the output of services like list_hardware_interfaces a bit more verbose/explicit, but I'd argue that the onus should be on the URDF designer to decide whether the joint is named as a "mimic" in the name or not. As an aside, perhaps on the command interfaces output, [mimic] might be more appropriate than [unclaimed] and this is where that added string could go.

I ask because I was trying to control a robot that had mimic joints with Moveit, simulated in gazebo, the Moveit RobotModel implementation complains loudly that Joint 'joint_name_mimic' not found in model 'model_name', seemingly because the GazeboSystem hardware_interface assigns a new name to the joint that doesn't exist in the URDF/SRDF/yaml config files. It took me longer than I'd like to admit that the source of the error was gazebo_ros2_control's change and not a mistake that I had made in one of the description files.

Commenting out the "_mimic" suffix doesn't appear to break anything, and allows Moveit to function as expected.

Thanks in advance for any feedback/insights!

@miso037
Copy link

miso037 commented May 5, 2023

Hi i have the same issue, although it is a dumb fix it works for suppressing Move_group error. You can add the following lines to your robot.urdf generated by MoveIt.

<joint name="panda_finger_joint2_mimic" type="fixed">
<parent link="world" />
<child link="random" />
</joint>
<link name="random"/>

In my case, the "panda_finger_joint2" is the mimicked joint that MoveIt moves.

@bmagyar
Copy link
Member

bmagyar commented May 5, 2023 via email

fabid added a commit to art-e-fact/crane_x7_description that referenced this issue Aug 15, 2023
[move_group-3] [ERROR] [1692102600.709104192] [moveit_robot_model.robot_model]: Joint 'crane_x7_gripper_finger_b_joint_mimic' not found in model 'crane_x7'

See ros-controls/gazebo_ros2_control#173
fabid added a commit to art-e-fact/crane_x7_description that referenced this issue Aug 15, 2023
[move_group-3] [ERROR] [1692102600.709104192] [moveit_robot_model.robot_model]: Joint 'crane_x7_gripper_finger_b_joint_mimic' not found in model 'crane_x7'

See ros-controls/gazebo_ros2_control#173
ShotaAk pushed a commit to rt-net/crane_x7_description that referenced this issue Aug 24, 2023
* Fix gripper mimic joint control

* Add dummy joint to prevent Joint not found error

[move_group-3] [ERROR] [1692102600.709104192] [moveit_robot_model.robot_model]: Joint 'crane_x7_gripper_finger_b_joint_mimic' not found in model 'crane_x7'

See ros-controls/gazebo_ros2_control#173
@Wiktor-99
Copy link
Contributor

Today I faced same issue. Adding this suffix implicitly it's not intuitive. I removed adding this suffix from plugin and then launched simulation, everything seems to work just fine (gazebo, rviz and moveit). Is it necessary?

If it is, some logs should be printed to make it more explicite.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants