-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add doc to insert new generic action with ros service
- Loading branch information
Showing
2 changed files
with
79 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
.. _newGenericAction: | ||
|
||
.. role:: raw-html(raw) | ||
:format: html | ||
|
||
How to add a new Generic action in the system | ||
=================================================== | ||
|
||
When ROSEE main node is running, you may want to introduce a new action in the system, such that you can command it afterwards. This is possible through a dedicated ROS service. | ||
|
||
.. note:: | ||
The action will belong to the *generic* category | ||
|
||
The request is composed as following: | ||
|
||
.. code-block:: sh | ||
## Service associated with GenericGraspingAction message | ||
NewGenericGraspingAction newAction | ||
# user can also request to store the action in a yaml file, togheter with the others | ||
bool emitYaml | ||
--- | ||
# the service will give true if action is good and it is inserted in the structure | ||
bool accepted | ||
# true false depending if emission on yaml file is successful | ||
bool emitted | ||
# string containing useful info about a possible not acceptance | ||
string error_msg | ||
Where NewGenericGraspingAction is defined as: | ||
|
||
.. code-block:: sh | ||
# Message which include all the infos necessary to insert a new action in the system | ||
# (https://github.com/ADVRHumanoids/ROSEndEffector/issues/71) | ||
# name of the action | ||
string action_name | ||
# Motor Position | ||
MotorPosition action_motor_position | ||
# OPTIONAL The mask which says if the motor is used by the action (count > 0) or not (count = 0). | ||
# take care that if it is not included, the not used joint will be considered the ones with 0 position | ||
JointsInvolvedCount action_motor_count | ||
# OPTIONAL field to indicate which hand element will be moved by the action | ||
string[] elements_involved | ||
Hence you can call the service from usual c++ code or also from terminal for example: | ||
|
||
.. code-block:: bash | ||
rosservice call /ros_end_effector/new_generic_grasping_action "newAction: | ||
action_name: 'newFancyAction' | ||
action_motor_position: | ||
name: | ||
- 'joint_1' | ||
- 'joint_2' | ||
position: | ||
- 1 | ||
- 2 | ||
emitYaml: true" | ||
.. warning:: | ||
|
||
Some checks are performed when calling the action (eg no action with the same name must exists, consistency among motor position and motor count...) | ||
but NO CHECKS are performed to see if the name of the joints are the correct ones. Remember to put ALL the motors in the action_motor_position field! | ||
|
||
|
||
|