Skip to content

Commit 8d13afc

Browse files
Update docs (#692) (#695)
(cherry picked from commit 1f191aa) Co-authored-by: Christoph Fröhlich <[email protected]>
1 parent e910b6e commit 8d13afc

7 files changed

+79
-88
lines changed

doc/index.rst

Lines changed: 79 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -168,23 +168,25 @@ controller manager. By default the *gz_ros2_control* plugin is very simple, thou
168168
extensible via an additional plugin architecture to allow power users to create their own custom
169169
robot hardware interfaces between *ros2_control* and Gazebo.
170170

171-
URDF:
171+
.. tabs::
172172

173-
.. code-block:: xml
173+
.. group-tab:: URDF
174174

175-
<gazebo>
176-
<plugin filename="libgz_ros2_control-system.so" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
177-
<parameters>$(find gz_ros2_control_demos)/config/cart_controller.yaml</parameters>
178-
</plugin>
179-
</gazebo>
175+
.. code-block:: xml
180176
181-
SDF:
177+
<gazebo>
178+
<plugin filename="libgz_ros2_control-system.so" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
179+
<parameters>$(find gz_ros2_control_demos)/config/cart_controller.yaml</parameters>
180+
</plugin>
181+
</gazebo>
182182
183-
.. code-block:: xml
183+
.. group-tab:: SDF
184+
185+
.. code-block:: xml
184186
185-
<plugin filename="libgz_ros2_control-system.so" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
186-
<parameters>$(find gz_ros2_control_demos)/config/cart_controller.yaml</parameters>
187-
</plugin>
187+
<plugin filename="libgz_ros2_control-system.so" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
188+
<parameters>$(find gz_ros2_control_demos)/config/cart_controller.yaml</parameters>
189+
</plugin>
188190
189191
The *gz_ros2_control* ``<plugin>`` tag also has the following optional child elements:
190192

@@ -207,42 +209,33 @@ or via ROS parameters:
207209
208210
Additionally, one can specify a namespace and remapping rules, which will be forwarded to the controller_manager and loaded controllers. Add the following ``<ros>`` section:
209211

210-
URDF:
211-
212-
.. code-block:: xml
213-
214-
<gazebo>
215-
<plugin filename="libgz_ros2_control-system.so" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
216-
...
217-
<ros>
218-
<namespace>my_namespace</namespace>
219-
<remapping>/robot_description:=/robot_description_full</remapping>
220-
</ros>
221-
</plugin>
222-
</gazebo>
212+
.. tabs::
223213

224-
SDF:
214+
.. group-tab:: URDF
225215

226-
.. code-block:: xml
227-
228-
<plugin filename="libgz_ros2_control-system.so" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
229-
...
230-
<ros>
231-
<namespace>my_namespace</namespace>
232-
<remapping>/robot_description:=/robot_description_full</remapping>
233-
</ros>
234-
</plugin>
216+
.. code-block:: xml
235217
236-
Default gz_ros2_control Behavior
237-
-----------------------------------------------------------
218+
<gazebo>
219+
<plugin filename="libgz_ros2_control-system.so" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
220+
...
221+
<ros>
222+
<namespace>my_namespace</namespace>
223+
<remapping>/robot_description:=/robot_description_full</remapping>
224+
</ros>
225+
</plugin>
226+
</gazebo>
238227
239-
By default, without a ``<plugin>`` tag, *gz_ros2_control* will attempt to get all of the information it needs to interface with a ros2_control-based controller out of the URDF or SDF. This is sufficient for most cases, and good for at least getting started.
228+
.. group-tab:: SDF
240229

241-
The default behavior provides the following ros2_control interfaces:
230+
.. code-block:: xml
242231
243-
* hardware_interface::JointStateInterface
244-
* hardware_interface::EffortJointInterface
245-
* hardware_interface::VelocityJointInterface
232+
<plugin filename="libgz_ros2_control-system.so" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
233+
...
234+
<ros>
235+
<namespace>my_namespace</namespace>
236+
<remapping>/robot_description:=/robot_description_full</remapping>
237+
</ros>
238+
</plugin>
246239
247240
Advanced: custom gz_ros2_control Simulation Plugins
248241
-----------------------------------------------------------
@@ -252,64 +245,68 @@ The *gz_ros2_control* Gazebo plugin also provides a pluginlib-based interface to
252245
These plugins must inherit the ``gz_ros2_control::GazeboSimSystemInterface``, which implements a simulated *ros2_control*
253246
``hardware_interface::SystemInterface``. SystemInterface provides API-level access to read and command joint properties.
254247

255-
The respective GazeboSimSystemInterface sub-class is specified in a URDF or SDF model and is loaded when the
256-
robot model is loaded. For example, the following XML will load the default plugin:
248+
The respective GazeboSimSystemInterface is specified in a URDF or SDF model and is loaded when the
249+
robot model is loaded. For example, the following XML will load a custom plugin:
257250

258-
URDF:
251+
.. tabs::
259252

260-
.. code-block:: xml
253+
.. group-tab:: URDF
261254

262-
<ros2_control name="GazeboSimSystem" type="system">
263-
<hardware>
264-
<plugin>gz_ros2_control/GazeboSimSystem</plugin>
265-
</hardware>
266-
...
267-
<ros2_control>
268-
<gazebo>
269-
<plugin name="gz_ros2_control::GazeboSimROS2ControlPlugin" filename="libgz_ros2_control-system">
270-
...
271-
</plugin>
272-
</gazebo>
255+
.. code-block:: xml
273256
274-
SDF:
257+
<ros2_control name="GazeboSimSystem" type="system">
258+
<hardware>
259+
<plugin>gz_ros2_control_demos/GazeboCustomSimSystem</plugin>
260+
</hardware>
261+
...
262+
<ros2_control>
263+
<gazebo>
264+
<plugin name="gz_ros2_control::GazeboSimROS2ControlPlugin" filename="libgz_ros2_control-system">
265+
...
266+
</plugin>
267+
</gazebo>
275268
276-
.. code-block:: xml
269+
.. group-tab:: SDF
277270

278-
<ros2_control name="GazeboSimSystem" type="system">
279-
<hardware>
280-
<plugin>gz_ros2_control/GazeboSimSystem</plugin>
281-
</hardware>
282-
...
283-
<ros2_control>
284-
<plugin name="gz_ros2_control::GazeboSimROS2ControlPlugin" filename="libgz_ros2_control-system">
285-
...
286-
</plugin>
271+
.. code-block:: xml
272+
273+
<ros2_control name="GazeboSimSystem" type="system">
274+
<hardware>
275+
<plugin>gz_ros2_control_demos/GazeboCustomSimSystem</plugin>
276+
</hardware>
277+
...
278+
<ros2_control>
279+
<plugin name="gz_ros2_control::GazeboSimROS2ControlPlugin" filename="libgz_ros2_control-system">
280+
...
281+
</plugin>
287282
288283
Set up controllers
289284
-----------------------------------------------------------
290285

291286
Use the tag ``<parameters>`` inside ``<plugin>`` to set the YAML file with the controller configuration
292287
and use the tag ``<controller_manager_prefix_node_name>`` to set the controller manager node name.
293288

294-
URDF:
289+
.. tabs::
295290

296-
.. code-block:: xml
291+
.. group-tab:: URDF
297292

298-
<gazebo>
299-
<plugin name="gz_ros2_control::GazeboSimROS2ControlPlugin" filename="libgz_ros2_control-system">
300-
<parameters>$(find gz_ros2_control_demos)/config/cart_controller.yaml</parameters>
301-
<controller_manager_prefix_node_name>controller_manager</controller_manager_prefix_node_name>
302-
</plugin>
303-
<gazebo>
293+
.. code-block:: xml
304294
305-
SDF:
295+
<gazebo>
296+
<plugin name="gz_ros2_control::GazeboSimROS2ControlPlugin" filename="libgz_ros2_control-system">
297+
<parameters>$(find gz_ros2_control_demos)/config/cart_controller.yaml</parameters>
298+
<controller_manager_prefix_node_name>controller_manager</controller_manager_prefix_node_name>
299+
</plugin>
300+
<gazebo>
306301
307-
.. code-block:: xml
302+
.. group-tab:: SDF
303+
304+
.. code-block:: xml
308305
309-
<plugin name="gz_ros2_control::GazeboSimROS2ControlPlugin" filename="libgz_ros2_control-system">
310-
<parameters>$(find gz_ros2_control_demos)/config/cart_controller.yaml</parameters>
311-
<controller_manager_prefix_node_name>controller_manager</controller_manager_prefix_node_name>
312-
</plugin>
306+
<plugin name="gz_ros2_control::GazeboSimROS2ControlPlugin" filename="libgz_ros2_control-system">
307+
<parameters>$(find gz_ros2_control_demos)/config/cart_controller.yaml</parameters>
308+
<controller_manager_prefix_node_name>controller_manager</controller_manager_prefix_node_name>
309+
</plugin>
313310
314311
The following is a basic configuration of the controllers:
315312

gz_ros2_control_demos/urdf/test_cart_effort.xacro.urdf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@
7777
</gazebo>
7878

7979
<gazebo>
80-
<!-- Joint state publisher -->
8180
<plugin filename="gz_ros2_control-system" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
8281
<parameters>$(find gz_ros2_control_demos)/config/cart_controller_effort.yaml</parameters>
8382
</plugin>

gz_ros2_control_demos/urdf/test_cart_position.xacro.urdf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@
8989
</gazebo>
9090

9191
<gazebo>
92-
<!-- Joint state publisher -->
9392
<plugin filename="gz_ros2_control-system" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
9493
<parameters>$(find gz_ros2_control_demos)/config/cart_controller_position.yaml</parameters>
9594
</plugin>

gz_ros2_control_demos/urdf/test_cart_velocity.xacro.urdf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@
162162
</gazebo>
163163

164164
<gazebo>
165-
<!-- Joint state publisher -->
166165
<plugin filename="gz_ros2_control-system" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
167166
<parameters>$(find gz_ros2_control_demos)/config/cart_controller_velocity.yaml</parameters>
168167
</plugin>

gz_ros2_control_demos/urdf/test_diff_drive.xacro.urdf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,6 @@
169169
</ros2_control>
170170

171171
<gazebo>
172-
<!-- Joint state publisher -->
173172
<plugin filename="gz_ros2_control-system" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
174173
<ros>
175174
<namespace>$(arg namespace)</namespace>

gz_ros2_control_demos/urdf/test_pendulum_effort.xacro.urdf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@
101101
</ros2_control>
102102

103103
<gazebo>
104-
<!-- Joint state publisher -->
105104
<plugin filename="gz_ros2_control-system" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
106105
<parameters>$(find gz_ros2_control_demos)/config/cart_controller_effort.yaml</parameters>
107106
</plugin>

gz_ros2_control_demos/urdf/test_pendulum_position.xacro.urdf

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,6 @@
101101
</ros2_control>
102102

103103
<gazebo>
104-
<!-- Joint state publisher -->
105104
<plugin filename="gz_ros2_control-system" name="gz_ros2_control::GazeboSimROS2ControlPlugin">
106105
<parameters>$(find gz_ros2_control_demos)/config/cart_controller_position.yaml</parameters>
107106
</plugin>

0 commit comments

Comments
 (0)