Skip to content

Commit 4ce82df

Browse files
1 parent 6b76ca0 commit 4ce82df

File tree

7 files changed

+78
-12
lines changed

7 files changed

+78
-12
lines changed

example_1/doc/userdoc.rst

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,23 @@
33
Example 1: RRBot
44
=====================
55

6+
*RRBot*, or ''Revolute-Revolute Manipulator Robot'', is a simple 3-linkage, 2-joint arm that we will
7+
use to demonstrate various features.
8+
9+
It is essentially a double inverted pendulum and demonstrates some fun control concepts within a
10+
simulator and was originally introduced for Gazebo tutorials.
11+
12+
For *example_1*, the hardware interface plugin is implemented having only one interface.
13+
14+
- The communication is done using proprietary API to communicate with the robot control box.
15+
- Data for all joints is exchanged at once.
16+
- Examples: KUKA RSI
617

7-
*RRBot*, or ''Revolute-Revolute Manipulator Robot'', is a simple 3-linkage, 2-joint arm that we will use to demonstrate various features.
8-
It is essentially a double inverted pendulum and demonstrates some fun control concepts within a simulator and was originally introduced for Gazebo tutorials.
918
The *RRBot* URDF files can be found in the ``description/urdf`` folder.
1019

20+
Tutorial steps
21+
--------------------------
22+
1123
1. To check that *RRBot* descriptions are working properly use following launch commands
1224

1325
.. code-block:: shell

example_2/doc/userdoc.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,17 @@ DiffBot
66

77
*DiffBot*, or ''Differential Mobile Robot'', is a simple mobile base with differential drive.
88
The robot is basically a box moving according to differential drive kinematics.
9+
10+
For *example_2*, the hardware interface plugin is implemented having only one interface.
11+
12+
- The communication is done using proprietary API to communicate with the robot control box.
13+
- Data for all joints is exchanged at once.
14+
915
The *DiffBot* URDF files can be found in ``description/urdf`` folder.
1016

17+
Tutorial steps
18+
--------------------------
19+
1120
1. To check that *DiffBot* description is working properly use following launch commands
1221

1322
.. code-block:: shell

example_3/doc/userdoc.rst

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,18 @@ Example 3: Robots with multiple interfaces
55
************************************************
66

77
The example shows how to implement multi-interface robot hardware taking care about interfaces used.
8-
The two illegal controllers demonstrate how hardware interface declines faulty claims to access joint command interfaces.
8+
9+
For *example_3*, the hardware interface plugin is implemented having multiple interfaces.
10+
11+
- The communication is done using proprietary API to communicate with the robot control box.
12+
- Data for all joints is exchanged at once.
13+
- Examples: KUKA FRI, ABB Yumi, Schunk LWA4p, etc.
14+
15+
Two illegal controllers demonstrate how hardware interface declines faulty claims to access joint command interfaces.
16+
17+
18+
Tutorial steps
19+
--------------------------
920

1021
1. To check that *RRBot* descriptions are working properly use following launch commands
1122

@@ -128,7 +139,7 @@ The two illegal controllers demonstrate how hardware interface declines faulty c
128139
- ``robot_controller:=forward_illegal1_controller`` or
129140
- ``robot_controller:=forward_illegal2_controller``
130141

131-
You will see the following error messages
142+
You will see the following error messages, because the hardware interface enforces all joints having the same command interface
132143

133144
.. code-block:: shell
134145

example_4/doc/userdoc.rst

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,19 @@
44
Example 4: Industrial robot with integrated sensor
55
***************************************************
66

7-
This example shows how a sensor can be integrated in a hardware interface of system-type:
8-
A 2D Force-Torque Sensor (FTS) is simulated by generating random sensor readings.
7+
This example shows how a sensor can be integrated in a hardware interface:
8+
9+
- The communication is done using proprietary API to communicate with the robot control box.
10+
- Data for all joints is exchanged at once.
11+
- Sensor data are exchanged together with joint data
12+
- Examples: KUKA RSI with sensor connected to KRC (KUKA control box) or a prototype robot (ODRI interface).
13+
14+
A 2D Force-Torque Sensor (FTS) is simulated by generating random sensor readings via a hardware interface of
15+
type ``hardware_interface::SystemInterface``.
16+
17+
18+
Tutorial steps
19+
--------------------------
920

1021
1. To check that *RRBot* descriptions are working properly use following launch commands
1122

example_5/doc/userdoc.rst

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,18 @@
44
Example 5: Industrial robot with externally connected sensor
55
*************************************************************
66

7-
This example shows how an externally connected sensor can be accessed via a hardware interface of
8-
type ``hardware_interface::SensorInterface``: A 3D Force-Torque Sensor (FTS) is simulated by
9-
generating random sensor readings.
7+
This example shows how an externally connected sensor can be accessed:
8+
9+
- The communication is done using proprietary API to communicate with the robot control box.
10+
- Data for all joints is exchanged at once.
11+
- Sensor data are exchanged independently of joint data.
12+
- Examples: KUKA RSI and FTS connected to independent PC with ROS 2.
13+
14+
A 3D Force-Torque Sensor (FTS) is simulated by generating random sensor readings via a hardware interface of
15+
type ``hardware_interface::SensorInterface``.
16+
17+
Tutorial steps
18+
--------------------------
1019

1120
1. To check that *RRBot* descriptions are working properly use following launch commands
1221

example_6/doc/userdoc.rst

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,16 @@
44
Example 6: Modular Robots with separate communication to each actuator
55
***********************************************************************
66

7-
The example shows how to implement robot hardware with separate communication to each actuator. This
8-
is implemented with a hardware interface of type ``hardware_interface::ActuatorInterface``.
7+
The example shows how to implement robot hardware with separate communication to each actuator:
8+
9+
- The communication is done on actuator level using proprietary or standardized API (e.g., canopen_402, Modbus, RS232, RS485).
10+
- Data for all actuators is exchanged separately from each other.
11+
- Examples: Mara, Arduino-based-robots
12+
13+
This is implemented with a hardware interface of type ``hardware_interface::ActuatorInterface``.
14+
15+
Tutorial steps
16+
--------------------------
917

1018
1. To check that *RRBot* descriptions are working properly use following launch commands
1119

example_8/doc/userdoc.rst

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,14 @@ Example 8: Industrial Robots with an exposed transmission interface
55
********************************************************************************
66

77
*RRBot*, or ''Revolute-Revolute Manipulator Robot'', is a simple 3-linkage, 2-joint arm that we will use to demonstrate various features.
8-
In this example, both joints use an exposed transmission interface.
98

9+
In this example, both joints use an exposed transmission interface:
10+
11+
- The communication is done using proprietary API to communicate with the robot control box.
12+
- Data for all joints is exchanged at once.
13+
14+
Tutorial steps
15+
--------------------------
1016

1117
1. To check that *RRBot* descriptions are working properly use following launch commands
1218

0 commit comments

Comments
 (0)