-
Notifications
You must be signed in to change notification settings - Fork 727
Description
Description
I'm trying to set up MoveIt to use a custom gripper, which will be operated using a GripperCommand action. Moveit only needs to call the action to move the gripper to one of two predefined positions, after which my driver should handle the rest. However, the positions requested by MoveIt are incorrect in two ways:
- The requested positions do not correspond to my defined positions at all. I've defined the positions simply as 1 and 0, but MoveIt instead requests huge numbers (upwards of a million, sometimes in the negative).
- The requested positions do not change when MoveIt requests a different state. Instead, MoveIt will always request the same number (though the exact number changes between runs), regardless of which state it is trying to request.
The gripper is a suction gripper, but I've implemented it by including a 'virtual' joint (which doesn't actually exist) in my urdf. Position requests to this joint determine whether the suction cup is turned on or off. MoveIt receives no feedback regarding its state, ideally I'd like it to simply request its state and have the gripper report whether it successfully assumed a requested state.
I've configured my system using the MoveIt setup assistant.
Environment
- ROS Distro: Humble
- OS Version: Ubuntu 22.04
- Binary build?
- 2.5.4-alpha
- Cyclone DDS (I think)
Steps to reproduce
- Set up a suction gripper in a robot URDF of your choice, including a virtual joint
- Set up the virtual joint as a separate planning group, linked to a GripperActionController
- Set up predefined positions for your gripper (mine are 'active' and 'inactive', with respective positional values of 1 and 0)
- Load your robot + gripper in moveit
- Manually select your gripper planning group and request it assume one of the defined states
- Monitor the GripperCommand action to check the position requested by MoveIt
Expected behaviour
MoveIt should request a positional value matching the requested state as defined in the configs.
Actual behaviour
MoveIt requests oddly large values not at all matching the requested state as defined in the configs.