diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..da3faf4a3c4fdae1a14e96272554b8044a5b8cf9 --- /dev/null +++ b/README.md @@ -0,0 +1,74 @@ +# Description + +This ROS package provides both the module and behavior tree layers to control the play motion feature of the TIAGo robot. The play motion feature allows the robot to execute a predefined motion including all the joints of the robot (arms, grippers, torso and head) but not the mobile platform. + +For further information on the TIAGo native interface to the play motion feature see chapter 29 in the [robot's handbook](https://drive.google.com/file/d/1gX6Twci7MKl5pHaDE6Qt4hsYe9T1PET3/view?usp=sharing). + +For further details on the concept of module check the [iri_ros_tools documentation](https://gitlab.iri.upc.edu/labrobotica/ros/iri_core/iri_ros_tools#iri-ros-modules). + +For further details on the use of behavior trees at IRI check the [iri_behaviortree documentation](https://gitlab.iri.upc.edu/labrobotica/ros/iri_core/iri_behaviortree). + +## Module layer + +The main features provided by this module are: +* The desired motion is identified by its name. +* Since each robot can have different pre-defined motions, the existence of the desired motion is checked before trying to execute it. +* Interfaces with the TIAGO native play motion action server +* Handles all possible outcomes of the action. + +### ROS interfaces + +#### Action clients + +* **play_motion**<play_motion_msgs::PlayMotionAction>: Client of the play motion action of the TIAGo robot. + +#### Parameters + +* **play_motion_module_rate_hz** (default=1.0): +* **play_num_retries** (default=1): The maximum number of attempts to start the action before reporting and error. +* **play_feedback_watchdog_time_s** (default=1.0): The maximum time between two consecutive feedback messages before reporting an error. +* **play_enable_watchdog** (defaul=False): Whether to enable or disable the watchdog feature. +* **play_timeout_s** (default=10.0): The maximum time allowed to complete the action before reporting an error. +* **play_enable_timeout** (default=True=: Whether to enable or disable the timeout feature. +* **play_enabled** (default=True): Whether to enable or disable the module. If disabled, all action will immediately finish successfully. + +See the [action wrapper documentation](https://gitlab.iri.upc.edu/labrobotica/ros/iri_core/iri_ros_tools#action-client-wrapper) for more detailed description of these parameters. + +* **motions_param_path** (default=/play_motion/motions): parameter server namspace where all motions are defined. + +### Dependencies +This package requires the following packages: + +* [iri_ros_tools](https://gitlab.iri.upc.edu/labrobotica/ros/iri_core/iri_ros_tools): +* [iri_base_algorithm](https://gitlab.iri.upc.edu/labrobotica/ros/iri_core/iri_base_algorithm): +* [iri_base_bt_client](https://gitlab.iri.upc.edu/labrobotica/ros/iri_core/iri_base_bt_client): +* [iri_behaviortree](https://gitlab.iri.upc.edu/labrobotica/ros/iri_core/iri_behaviortree): + +## Behavior tree layer + +The Behavior tree layer exports all the module's features to be used in the context of a Behavior tree. + +# Installation +Move to the active workspace: +```bash +roscd && cd ../src +``` + +Clone the repository: +```bash +git clone ssh://git@gitlab.iri.upc.edu:2202/labrobotica/ros/platforms/tiago/iri_tiago_play_motion_module.git +``` + +Install ROS dependencies: +``` +roscd +cd .. +rosdep install -i -r --from-paths src +``` + +Compile the workspace: +``` +catkin_make +``` + +# Launch