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.0
Defines 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:128
Between 0 and 255. Higher means this skill request will be prioritized.
Output fieldsΒΆ
result.error_msg
string
A 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
:True
if action succeeded,False
otherwise.
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();