Actions
A bunch of action servers for performing basic robocup actions.
The robocup @work domain is partitioned into 6 basic actions
move base
pick
perceive
place
stage
unstage
Each action is implemented as SMACH state machines which are wrapped with
ActionServer
. An ActionClient
needs to send request using
GenericExecuteGoal
.
This request message contains a single dictionary kind of
message called parameters
of type diagnostic_msgs/KeyValue[]
.
# goal definition
diagnostic_msgs/KeyValue[] parameters
---
# result definition
diagnostic_msgs/KeyValue[] results
---
# feedback
string current_state
string text
Each server needs different information from this request message. Please see the following files for detailed info:
Additionally, Planner executor also sends next_action
as one of the
parameter. This can be used by action servers to have parallel execution of arm
while the base is in motion to save som time. At the moment, only
Move base safe is using this information.
This package also contains Utils.py
which contains utility functions for
action servers.
Usage
roscore
roslaunch mir_actions run_action_servers.launch
To execute an action, call the corresponding action client with appropriate arguments. For example, move base safe:
rosrun mir_move_base_safe move_base_safe_client_test.py WS01