Skip to content

Fix docs format #280

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 25 additions & 32 deletions doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ What you can find in this repository

This repository demonstrates the following ``ros2_control`` concepts:

* Creating a ``HardwareInterface`` for a System, Sensor, and Actuator.
* Creating a robot description in the form of URDF files.
* Loading the configuration and starting a robot using launch files.
* Control of a differential mobile base *DiffBot*.
* Control of two joints of *RRBot*.
* Implementing a controller switching strategy for a robot.
* Using joint limits and transmission concepts in ``ros2_control``.
* Creating a ``HardwareInterface`` for a System, Sensor, and Actuator.
* Creating a robot description in the form of URDF files.
* Loading the configuration and starting a robot using launch files.
* Control of a differential mobile base *DiffBot*.
* Control of two joints of *RRBot*.
* Implementing a controller switching strategy for a robot.
* Using joint limits and transmission concepts in ``ros2_control``.

=====================
Goals
Expand All @@ -36,38 +36,31 @@ The repository has two other goals:
Example Overview
=====================

* Example 1: RRBot

Example 1: RRBot
*RRBot* - or ''Revolute-Revolute Manipulator Robot'' - a simple position controlled robot with one hardware interface. This example also demonstrates the switching between different controllers.


* Example 2: DiffBot

Example 2: DiffBot
*DiffBot*, or ''Differential Mobile Robot'', is a simple mobile base with differential drive.
The robot is basically a box moving according to differential drive kinematics.


* Example 3: "RRBot with multiple interfaces"

Example 3: "RRBot with multiple interfaces"
*RRBot* with multiple interfaces.


* Example 4: "Industrial robot with integrated sensor"

Example 4: "Industrial robot with integrated sensor"
*RRBot* with an integrated sensor.


* Example 5: "Industrial Robots with externally connected sensor"

Example 5: "Industrial Robots with externally connected sensor"
*RRBot* with an externally connected sensor.

* Example 6: "Modular Robots with separate communication to each actuator"

Example 6: "Modular Robots with separate communication to each actuator"
The example shows how to implement robot hardware with separate communication to each actuator.


* Example 8: "Using transmissions"

Example 8: "Using transmissions"
*RRBot* with an exposed transmission interface.

=====================
Expand All @@ -76,17 +69,17 @@ Quick Hints

These are some quick hints, especially for those coming from a ROS1 control background:

* There are now three categories of hardware components: *Sensor*, *Actuator*, and *System*.
*Sensor* is for individual sensors; *Actuator* is for individual actuators; *System* is for any combination of multiple sensors/actuators.
You could think of a Sensor as read-only.
All components are used as plugins and therefore exported using ``PLUGINLIB_EXPORT_CLASS`` macro.
* *ros(1)_control* only allowed three hardware interface types: position, velocity, and effort.
*ros2_control* allows you to create any interface type by defining a custom string. For example, you might define a ``position_in_degrees`` or a ``temperature`` interface.
The most common (position, velocity, acceleration, effort) are already defined as constants in hardware_interface/types/hardware_interface_type_values.hpp.
* Joint names in <ros2_control> tags in the URDF must be compatible with the controller's configuration.
* In ros2_control, all parameters for the driver are specified in the URDF.
The ros2_control framework uses the **<ros2_control>** tag in the URDF.
* Joint names in <ros2_control> tags in the URDF must be compatible with the controller's configuration.
* There are now three categories of hardware components: *Sensor*, *Actuator*, and *System*.
*Sensor* is for individual sensors; *Actuator* is for individual actuators; *System* is for any combination of multiple sensors/actuators.
You could think of a Sensor as read-only.
All components are used as plugins and therefore exported using ``PLUGINLIB_EXPORT_CLASS`` macro.
* *ros(1)_control* only allowed three hardware interface types: position, velocity, and effort.
*ros2_control* allows you to create any interface type by defining a custom string. For example, you might define a ``position_in_degrees`` or a ``temperature`` interface.
The most common (position, velocity, acceleration, effort) are already defined as constants in hardware_interface/types/hardware_interface_type_values.hpp.
* Joint names in <ros2_control> tags in the URDF must be compatible with the controller's configuration.
* In ros2_control, all parameters for the driver are specified in the URDF.
The ros2_control framework uses the **<ros2_control>** tag in the URDF.
* Joint names in <ros2_control> tags in the URDF must be compatible with the controller's configuration.

=====================
Examples
Expand Down
32 changes: 16 additions & 16 deletions example_1/doc/userdoc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ simulator and was originally introduced for Gazebo tutorials.

For *example_1*, the hardware interface plugin is implemented having only one interface.

- The communication is done using proprietary API to communicate with the robot control box.
- Data for all joints is exchanged at once.
- Examples: KUKA RSI
* The communication is done using proprietary API to communicate with the robot control box.
* Data for all joints is exchanged at once.
* Examples: KUKA RSI

The *RRBot* URDF files can be found in the ``description/urdf`` folder.

Expand All @@ -39,8 +39,8 @@ Tutorial steps

The *RViz* setup can be recreated following these steps:

- The robot models can be visualized using ``RobotModel`` display using ``/robot_description`` topic.
- Or you can simply open the configuration from ``description/rviz`` folder manually or directly by executing
* The robot models can be visualized using ``RobotModel`` display using ``/robot_description`` topic.
* Or you can simply open the configuration from ``description/rviz`` folder manually or directly by executing

.. code-block:: shell

Expand Down Expand Up @@ -213,24 +213,24 @@ Tutorial steps
Files used for this demos
-------------------------

- Launch file: `rrbot.launch.py <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/bringup/launch/rrbot.launch.py>`__
- Controllers yaml: `rrbot_controllers.yaml <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/bringup/config/rrbot_controllers.yaml>`__
- URDF file: `rrbot.urdf.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/description/urdf/rrbot.urdf.xacro>`__
* Launch file: `rrbot.launch.py <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/bringup/launch/rrbot.launch.py>`__
* Controllers yaml: `rrbot_controllers.yaml <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/bringup/config/rrbot_controllers.yaml>`__
* URDF file: `rrbot.urdf.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/description/urdf/rrbot.urdf.xacro>`__

+ Description: `rrbot_description.urdf.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/description/urdf/rrbot_description.urdf.xacro>`__
+ ``ros2_control`` tag: `rrbot.ros2_control.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/description/ros2_control/rrbot.ros2_control.xacro>`__
* Description: `rrbot_description.urdf.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/description/urdf/rrbot_description.urdf.xacro>`__
* ``ros2_control`` tag: `rrbot.ros2_control.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/description/ros2_control/rrbot.ros2_control.xacro>`__

- RViz configuration: `rrbot.rviz <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/description/rviz/rrbot.rviz>`__
- Test nodes goals configuration:
* RViz configuration: `rrbot.rviz <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/description/rviz/rrbot.rviz>`__
* Test nodes goals configuration:

+ `rrbot_forward_position_publisher <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/bringup/config/rrbot_forward_position_publisher.yaml>`__
+ `rrbot_joint_trajectory_publisher <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/bringup/config/rrbot_joint_trajectory_publisher.yaml>`__

- Hardware interface plugin: `rrbot.cpp <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/hardware/rrbot.cpp>`__
* Hardware interface plugin: `rrbot.cpp <https://github.com/ros-controls/ros2_control_demos/tree/master/example_1/hardware/rrbot.cpp>`__


Controllers from this demo
--------------------------
- ``Joint State Broadcaster`` (`ros2_controllers repository <https://github.com/ros-controls/ros2_controllers/tree/master/joint_state_broadcaster>`__): `doc <https://control.ros.org/master/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.html>`__
- ``Forward Command Controller`` (`ros2_controllers repository <https://github.com/ros-controls/ros2_controllers/tree/master/forward_command_controller>`__): `doc <https://control.ros.org/master/doc/ros2_controllers/forward_command_controller/doc/userdoc.html>`__
- ``Joint Trajectory Controller`` (`ros2_controllers repository <https://github.com/ros-controls/ros2_controllers/tree/master/joint_trajectory_controller>`__): `doc <https://control.ros.org/master/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.html>`__
* ``Joint State Broadcaster`` (`ros2_controllers repository <https://github.com/ros-controls/ros2_controllers/tree/master/joint_state_broadcaster>`__): `doc <https://control.ros.org/master/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.html>`__
* ``Forward Command Controller`` (`ros2_controllers repository <https://github.com/ros-controls/ros2_controllers/tree/master/forward_command_controller>`__): `doc <https://control.ros.org/master/doc/ros2_controllers/forward_command_controller/doc/userdoc.html>`__
* ``Joint Trajectory Controller`` (`ros2_controllers repository <https://github.com/ros-controls/ros2_controllers/tree/master/joint_trajectory_controller>`__): `doc <https://control.ros.org/master/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.html>`__
26 changes: 13 additions & 13 deletions example_2/doc/userdoc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ The robot is basically a box moving according to differential drive kinematics.

For *example_2*, the hardware interface plugin is implemented having only one interface.

- The communication is done using proprietary API to communicate with the robot control box.
- Data for all joints is exchanged at once.
* The communication is done using proprietary API to communicate with the robot control box.
* Data for all joints is exchanged at once.

The *DiffBot* URDF files can be found in ``description/urdf`` folder.

Expand Down Expand Up @@ -100,22 +100,22 @@ Tutorial steps
[DiffBotSystemHardware]: Got command 50.00000 for 'right_wheel_joint'!

Files used for this demos
#########################
--------------------------

- Launch file: `diffbot.launch.py <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/bringup/launch/diffbot.launch.py>`__
- Controllers yaml: `diffbot_controllers.yaml <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/bringup/config/diffbot_controllers.yaml>`__
- URDF file: `diffbot.urdf.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/description/urdf/diffbot.urdf.xacro>`__
* Launch file: `diffbot.launch.py <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/bringup/launch/diffbot.launch.py>`__
* Controllers yaml: `diffbot_controllers.yaml <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/bringup/config/diffbot_controllers.yaml>`__
* URDF file: `diffbot.urdf.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/description/urdf/diffbot.urdf.xacro>`__

+ Description: `diffbot_description.urdf.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/description/urdf/diffbot_description.urdf.xacro>`__
+ ``ros2_control`` tag: `diffbot.ros2_control.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/description/ros2_control/diffbot.ros2_control.xacro>`__
* Description: `diffbot_description.urdf.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/description/urdf/diffbot_description.urdf.xacro>`__
* ``ros2_control`` tag: `diffbot.ros2_control.xacro <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/description/ros2_control/diffbot.ros2_control.xacro>`__

- RViz configuration: `diffbot.rviz <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/description/rviz/diffbot.rviz>`__
* RViz configuration: `diffbot.rviz <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/description/rviz/diffbot.rviz>`__

- Hardware interface plugin: `diffbot_system.cpp <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/hardware/diffbot_system.cpp>`__
* Hardware interface plugin: `diffbot_system.cpp <https://github.com/ros-controls/ros2_control_demos/tree/master/example_2/hardware/diffbot_system.cpp>`__


Controllers from this demo
##########################
--------------------------

- ``Joint State Broadcaster`` (`ros2_controllers repository <https://github.com/ros-controls/ros2_controllers/tree/master/joint_state_broadcaster>`__): `doc <https://control.ros.org/master/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.html>`__
- ``Diff Drive Controller`` (`ros2_controllers repository <https://github.com/ros-controls/ros2_controllers/tree/master/diff_drive_controller>`__): `doc <https://control.ros.org/master/doc/ros2_controllers/diff_drive_controller/doc/userdoc.html>`__
* ``Joint State Broadcaster`` (`ros2_controllers repository <https://github.com/ros-controls/ros2_controllers/tree/master/joint_state_broadcaster>`__): `doc <https://control.ros.org/master/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.html>`__
* ``Diff Drive Controller`` (`ros2_controllers repository <https://github.com/ros-controls/ros2_controllers/tree/master/diff_drive_controller>`__): `doc <https://control.ros.org/master/doc/ros2_controllers/diff_drive_controller/doc/userdoc.html>`__
Loading