ROS Action Client/Server¶
Within a Gazebo Plugin GenericDomainModel, a ROS Action Client or Server is represented by a GenericDomainModelPort with the following Attributes.
| Attributes | Value | Description |
|---|---|---|
| Type | action | |
| Attribute 0 | [default action name] | Default ROS Action name |
| Attribute 1 | ||
| Attribute 2 | [msg type] | ROS Action Type - e.g. Trajectory |
| Attribute 7 | ros |
If the CyPhy Master Interpreter is run, these Attributes will be used to populate the parent Gazebo Plugin Model’s corresponding gazebo element in the generated URDF file.
For each netlist of connected ports, the Interpreter will check that the the port types all match (e.g. a ROS Topic Publisher cannot broadcast to a ROS Service Server) and that the Action Msg types (if specified) all match.
If the port is connected to other ports, a unique ROS Action name will be generated and assigned to ports in that netlist.
Otherwise, Attribute 0’s Value will be used.
The ROS Action Client or ROS Action Server GenericDomainModelPort’s name is used as a key to populate the Gazebo Plugin GenericDomainModel’s connected template file Resource with the ROS Action name.
Example ROS Action Client GenericDomainModelPort
Example Template Resource
<robot>
<gazebo>
<plugin name="example_plugin" filename="libexample_plugin.so">
<rosActionClient>${ROS Action Client}</rosActionClient>
...
</gazebo>
</robot>
Example Generated URDF
<robot>
...
<gazebo>
<plugin name="example_plugin" filename="libexample_plugin.so">
<rosActionClient>example_action</rosActionClient>
...
</gazebo>
...
</robot>