You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/index.rst
+25-32Lines changed: 25 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,13 +15,13 @@ What you can find in this repository
15
15
16
16
This repository demonstrates the following ``ros2_control`` concepts:
17
17
18
-
* Creating a ``HardwareInterface`` for a System, Sensor, and Actuator.
19
-
* Creating a robot description in the form of URDF files.
20
-
* Loading the configuration and starting a robot using launch files.
21
-
* Control of a differential mobile base *DiffBot*.
22
-
* Control of two joints of *RRBot*.
23
-
* Implementing a controller switching strategy for a robot.
24
-
* Using joint limits and transmission concepts in ``ros2_control``.
18
+
* Creating a ``HardwareInterface`` for a System, Sensor, and Actuator.
19
+
* Creating a robot description in the form of URDF files.
20
+
* Loading the configuration and starting a robot using launch files.
21
+
* Control of a differential mobile base *DiffBot*.
22
+
* Control of two joints of *RRBot*.
23
+
* Implementing a controller switching strategy for a robot.
24
+
* Using joint limits and transmission concepts in ``ros2_control``.
25
25
26
26
=====================
27
27
Goals
@@ -36,38 +36,31 @@ The repository has two other goals:
36
36
Example Overview
37
37
=====================
38
38
39
-
* Example 1: RRBot
40
-
39
+
Example 1: RRBot
41
40
*RRBot* - or ''Revolute-Revolute Manipulator Robot'' - a simple position controlled robot with one hardware interface. This example also demonstrates the switching between different controllers.
42
41
43
42
44
-
* Example 2: DiffBot
45
-
43
+
Example 2: DiffBot
46
44
*DiffBot*, or ''Differential Mobile Robot'', is a simple mobile base with differential drive.
47
45
The robot is basically a box moving according to differential drive kinematics.
48
46
49
47
50
-
* Example 3: "RRBot with multiple interfaces"
51
-
48
+
Example 3: "RRBot with multiple interfaces"
52
49
*RRBot* with multiple interfaces.
53
50
54
51
55
-
* Example 4: "Industrial robot with integrated sensor"
56
-
52
+
Example 4: "Industrial robot with integrated sensor"
57
53
*RRBot* with an integrated sensor.
58
54
59
55
60
-
* Example 5: "Industrial Robots with externally connected sensor"
61
-
56
+
Example 5: "Industrial Robots with externally connected sensor"
62
57
*RRBot* with an externally connected sensor.
63
58
64
-
* Example 6: "Modular Robots with separate communication to each actuator"
65
-
59
+
Example 6: "Modular Robots with separate communication to each actuator"
66
60
The example shows how to implement robot hardware with separate communication to each actuator.
67
61
68
62
69
-
* Example 8: "Using transmissions"
70
-
63
+
Example 8: "Using transmissions"
71
64
*RRBot* with an exposed transmission interface.
72
65
73
66
=====================
@@ -76,17 +69,17 @@ Quick Hints
76
69
77
70
These are some quick hints, especially for those coming from a ROS1 control background:
78
71
79
-
* There are now three categories of hardware components: *Sensor*, *Actuator*, and *System*.
80
-
*Sensor* is for individual sensors; *Actuator* is for individual actuators; *System* is for any combination of multiple sensors/actuators.
81
-
You could think of a Sensor as read-only.
82
-
All components are used as plugins and therefore exported using ``PLUGINLIB_EXPORT_CLASS`` macro.
83
-
* *ros(1)_control* only allowed three hardware interface types: position, velocity, and effort.
84
-
*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.
85
-
The most common (position, velocity, acceleration, effort) are already defined as constants in hardware_interface/types/hardware_interface_type_values.hpp.
86
-
* Joint names in <ros2_control> tags in the URDF must be compatible with the controller's configuration.
87
-
* In ros2_control, all parameters for the driver are specified in the URDF.
88
-
The ros2_control framework uses the **<ros2_control>** tag in the URDF.
89
-
* Joint names in <ros2_control> tags in the URDF must be compatible with the controller's configuration.
72
+
* There are now three categories of hardware components: *Sensor*, *Actuator*, and *System*.
73
+
*Sensor* is for individual sensors; *Actuator* is for individual actuators; *System* is for any combination of multiple sensors/actuators.
74
+
You could think of a Sensor as read-only.
75
+
All components are used as plugins and therefore exported using ``PLUGINLIB_EXPORT_CLASS`` macro.
76
+
* *ros(1)_control* only allowed three hardware interface types: position, velocity, and effort.
77
+
*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.
78
+
The most common (position, velocity, acceleration, effort) are already defined as constants in hardware_interface/types/hardware_interface_type_values.hpp.
79
+
* Joint names in <ros2_control> tags in the URDF must be compatible with the controller's configuration.
80
+
* In ros2_control, all parameters for the driver are specified in the URDF.
81
+
The ros2_control framework uses the **<ros2_control>** tag in the URDF.
82
+
* Joint names in <ros2_control> tags in the URDF must be compatible with the controller's configuration.
0 commit comments