Mobile manipulation skillsΒΆ
This page lists system skills (ie, installed by default) related to π¦Ύ Manipulation. You can directly use these skills in your tasks and mission controller.
hand_graspΒΆ
Interface: /skill/hand_grasp
Message type: manipulation_skills/action/HandGrasp
Controls a robotic hand or gripper to either close (grasp) or open (release). This skill sends a goal to the specified end-effector (left, right, or default) with an optional precision setting for the closing position.
- Once invoked, the robot will:
Target the desired hand/gripper.
Perform the requested action (close/open).
Report back feedback and a result message indicating success or failure.
Typical uses include closing a gripper to get hold of an object, releasing an object, or partially closing the gripper to a specific position for delicate handling.
Input parametersΒΆ
hand
string, default:""- Which hand or end-effector to use. Supported values:
left: Use the left hand.right: Use the right hand.default (empty string): Use the default hand (the right in case of 2 arms).
Any other value will be rejected and the default will be used.
action
integer, default:0- The gripper action to perform:
0: Close the gripper (grasp).1: Open the gripper (release).
Values outside
[0, 1]will be clamped to the closest integer.closing_position
float, default:0.0Defines how far to close the gripper. Range:
[0.0, 1.0](0.0= fully closed,1.0= fully open). Values outside the range will be replaced with the default (0.0).This allows partial grasps for delicate objects.
meta.priority
integer, default:128Between 0 and 255. Higher means this skill request will be prioritized.
Output fieldsΒΆ
result.error_msg
stringA string describing the execution outcome.
- Examples:
Grasp Executed!: Successful grasp/release.Problems during execution.: Action failed.
feedback
object- Live updates while the action runs. Can contain:
data_str: Text feedback (e.g., which hand, action, position).data_bool:Trueif action succeeded,Falseotherwise.
Quick snippetsΒΆ
$ ros2 action send_goal /skill/hand_grasp manipulation_skills/action/HandGrasp # then press Tab to complete the message prototype
How to use in your codeΒΆ
See code samples for the corresponding /skill/hand_grasp: code samples
See code samples for the corresponding /skill/hand_grasp: code samples
To be added soon
You can call this skill from QML using the following code snippet. See Building a touchscreen interface via ROS and QML to learn more.
import Ros 2.0
// ...
HandGraspSkill {
id: mySkill
onResult: {
console.log("Skill result: " + result);
}
onFeedback: {
console.log("Skill feedback: " + feedback);
}
}
// Call the skill
mySkill.hand_grasp();