diff --git a/foxy/.buildinfo b/foxy/.buildinfo index 27b3c884c25..cd7fa650fe0 100644 --- a/foxy/.buildinfo +++ b/foxy/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 8c13c0abfc9eab5a0317d9d49375ded4 +config: 5543e616c332e4dc462ddedcfc9b3896 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree b/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree index 0e6206b72d9..f18f8154052 100644 Binary files a/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree and b/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree differ diff --git a/foxy/.doctrees/doc/contributing/contributing.doctree b/foxy/.doctrees/doc/contributing/contributing.doctree index 6a0b5ba0b78..fdedb70ce94 100644 Binary files a/foxy/.doctrees/doc/contributing/contributing.doctree and b/foxy/.doctrees/doc/contributing/contributing.doctree differ diff --git a/foxy/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree b/foxy/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree index 9d0071b5ac0..cb2ef939474 100644 Binary files a/foxy/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree and b/foxy/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree differ diff --git a/foxy/.doctrees/doc/getting_started/getting_started.doctree b/foxy/.doctrees/doc/getting_started/getting_started.doctree index 36dde32b6d1..6e258cc5a8b 100644 Binary files a/foxy/.doctrees/doc/getting_started/getting_started.doctree and b/foxy/.doctrees/doc/getting_started/getting_started.doctree differ diff --git a/foxy/.doctrees/doc/project_ideas.doctree b/foxy/.doctrees/doc/project_ideas.doctree index d6ae7834aca..b6afd81d95b 100644 Binary files a/foxy/.doctrees/doc/project_ideas.doctree and b/foxy/.doctrees/doc/project_ideas.doctree differ diff --git a/foxy/.doctrees/doc/resources/resources.doctree b/foxy/.doctrees/doc/resources/resources.doctree index e48f94e1e0f..bbbb891ec4c 100644 Binary files a/foxy/.doctrees/doc/resources/resources.doctree and b/foxy/.doctrees/doc/resources/resources.doctree differ diff --git a/foxy/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree index 1ba60561e29..1da4116b282 100644 Binary files a/foxy/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_control/doc/index.doctree b/foxy/.doctrees/doc/ros2_control/doc/index.doctree index acb0c4278f5..ec68e9c6878 100644 Binary files a/foxy/.doctrees/doc/ros2_control/doc/index.doctree and b/foxy/.doctrees/doc/ros2_control/doc/index.doctree differ diff --git a/foxy/.doctrees/doc/ros2_control/hardware_interface/doc/fake_components_userdoc.doctree b/foxy/.doctrees/doc/ros2_control/hardware_interface/doc/fake_components_userdoc.doctree index 09e3ad580c3..3ce5134b12f 100644 Binary files a/foxy/.doctrees/doc/ros2_control/hardware_interface/doc/fake_components_userdoc.doctree and b/foxy/.doctrees/doc/ros2_control/hardware_interface/doc/fake_components_userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index 8cd932e7f94..faf46d69e8e 100644 Binary files a/foxy/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_control_demos/doc/index.doctree b/foxy/.doctrees/doc/ros2_control_demos/doc/index.doctree index 4862a81a1cb..1aa930b183a 100644 Binary files a/foxy/.doctrees/doc/ros2_control_demos/doc/index.doctree and b/foxy/.doctrees/doc/ros2_control_demos/doc/index.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree index 76fe5c2d59b..36f08305678 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/foxy/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index 6c98893f20b..b86dcc459ee 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree and b/foxy/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree b/foxy/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree index cdb9e85e369..06a620e3281 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree and b/foxy/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree index c90f3828ddc..f78ed55760a 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree index a651d8e7201..10c0c425991 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree index 6c30ddf00dc..02eabd5814d 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree index ee0de4c6828..6e259d788c3 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree index f45a2289858..c5098c06e50 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/joint_state_controller/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_controllers/joint_state_controller/doc/userdoc.doctree index 429d45f310b..846649074b5 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/joint_state_controller/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_controllers/joint_state_controller/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree index 915d809600d..a9bddf34170 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree index 6f5ed5cc24e..662bafa1411 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree index c3d72bda0ce..0bc671cb9c1 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree index 831ae374550..03b6207ade9 100644 Binary files a/foxy/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree and b/foxy/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree differ diff --git a/foxy/.doctrees/environment.pickle b/foxy/.doctrees/environment.pickle index 6cd291445e1..5b7883f8122 100644 Binary files a/foxy/.doctrees/environment.pickle and b/foxy/.doctrees/environment.pickle differ diff --git a/foxy/.doctrees/index.doctree b/foxy/.doctrees/index.doctree index 40e39b4ca54..9a70200cdb1 100644 Binary files a/foxy/.doctrees/index.doctree and b/foxy/.doctrees/index.doctree differ diff --git a/foxy/index.html b/foxy/index.html index 896bf2085c7..60e54f3e8b5 100644 --- a/foxy/index.html +++ b/foxy/index.html @@ -152,7 +152,7 @@
Built on 2023-12-30 at 05:31 GMT
+Built on 2023-12-31 at 05:31 GMT
diff --git a/foxy/searchindex.js b/foxy/searchindex.js index 08ca0947efe..0cf27bf5fdd 100644 --- a/foxy/searchindex.js +++ b/foxy/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/getting_started/getting_started", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_controller/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/getting_started/getting_started.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_controller/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "index.rst"], "titles": ["Acknowledgements", "Pull Requests", "Differences to ros_control (ROS1)", "Getting Started", "Project Ideas for GSoC 2022", "Resources", "Controller Manager", "API Documentation", "Fake Components", "Command Line Interface", "Demos", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "joint_state_controller", "joint_trajectory_controller", "position_controllers", "tricycle_controller", "velocity_controllers", "Welcome to the ros2_control documentation - Foxy!"], "terms": {"The": [0, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 20, 22, 24], "project": [0, 1, 24], "ha": [0, 1, 3, 4, 5, 13, 19], "receiv": [0, 2], "major": 0, "contribut": [0, 1, 5], "from": [0, 1, 2, 3, 5, 6, 8, 9, 11, 13, 15, 17, 20, 22, 24], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 12, 13, 20, 24], "compani": [0, 5], "institut": 0, "support": [0, 2, 3, 5, 8, 9, 13, 20, 24], "rosin": 0, "ro": [0, 1, 3, 4, 6, 8, 9, 19, 24], "industri": [0, 3, 4], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 10, 11, 15, 22, 24], "softwar": [0, 3], "compon": [0, 5, 6, 7, 11, 15, 17, 22, 24], "more": [0, 1, 2, 3, 4, 8, 13], "inform": [0, 8, 13, 24], "http": [0, 1, 3, 4], "eu": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24], "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 4, 5, 10, 13, 24], "horizon": 0, "2020": 0, "research": [0, 5], "innov": 0, "programm": 0, "under": [0, 5, 13, 24], "grant": 0, "agreement": 0, "732287": 0, "first": [1, 2, 13], "thank": 1, "you": [1, 2, 3, 5, 8, 13, 24], "consid": [1, 9], "ros2_control": [1, 3, 5, 6, 8, 10, 13], "As": [1, 13], "an": [1, 2, 3, 4, 5, 8, 9, 13, 20], "open": [1, 20], "sourc": [1, 3, 5, 13], "we": [1, 4, 5], "welcom": 1, "each": [1, 3, 4], "contributor": 1, "regardless": 1, "background": 1, "experi": 1, "To": [1, 2, 3, 24], "reduc": [1, 8], "entropi": 1, "univers": [1, 4, 5], "our": [1, 3, 4, 5], "vivid": 1, "collabor": 1, "environ": [1, 3, 5], "have": [1, 2, 3, 4, 8, 10, 13, 20], "set": [1, 2, 4, 5, 8, 9, 14, 16, 18, 20, 21, 23], "up": [1, 5, 10], "some": [1, 4, 5, 20, 24], "standard": [1, 2, 3, 4, 5, 9, 12, 15], "method": [1, 2, 3, 13], "requir": [1, 2, 3, 4, 13], "ar": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 17, 18, 20, 22, 24], "limit": [1, 4, 5, 11, 22], "scope": 1, "your": [1, 2, 5, 8, 13, 24], "pr": 1, "should": [1, 2, 4, 5, 6, 9, 10, 13, 18], "do": [1, 2, 3, 4, 5, 6, 13, 20], "one": [1, 2, 3, 4, 5, 13, 15, 24], "thing": 1, "avoid": [1, 13], "ad": [1, 4, 8, 13, 18], "random": 1, "fix": [1, 2], "put": [1, 13], "those": [1, 2, 3, 4, 8, 13, 15, 20], "separ": [1, 2, 3], "give": [1, 3, 5, 24], "descript": [1, 2, 5, 13], "titl": 1, "add": [1, 2, 13], "short": [1, 13, 24], "summari": [1, 5, 24], "make": [1, 2, 4, 5, 24], "sure": [1, 4, 24], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24], "green": 1, "don": 1, "t": [1, 6], "afraid": 1, "review": [1, 4, 24], "maintain": [1, 3, 4], "new": [1, 5, 12, 20, 24], "code": [1, 2, 4, 5, 13], "test": [1, 4, 8, 10, 13], "If": [1, 2, 3, 6, 13, 15, 20, 24], "function": [1, 2, 3, 4, 5], "alwai": 1, "exercis": 1, "serv": [1, 3, 4], "live": [1, 5], "origin": [1, 5], "intent": [1, 8], "section": [1, 2, 13], "target": [1, 12, 13, 20], "also": [1, 2, 3, 4, 5, 13], "read": [1, 2, 3, 13, 18, 20], "understand": [1, 4], "how": [1, 4, 5, 13], "handl": [1, 2, 4, 5, 20], "organ": [1, 5, 24], "guidelin": 1, "especi": [1, 2], "applic": [1, 3, 5, 6], "ros2_control_demo": [1, 3, 24], "pleas": [1, 24], "keep": [1, 13], "mind": [1, 13], "work": [1, 4, 5, 11, 13, 14, 16, 20, 21, 22, 23, 24], "fork": 1, "when": [1, 2, 3, 4, 8, 9, 13, 20], "submit": [1, 5], "That": [1, 13], "wai": [1, 13, 15], "main": [1, 3, 4, 5, 6, 8, 13, 24], "repo": [1, 3], "clean": [1, 4], "featur": [1, 5, 8, 24], "branch": 1, "all": [1, 2, 3, 4, 5, 8, 10, 13, 18, 20], "check": [1, 2, 3, 4, 8, 10, 13, 20, 24], "satisfi": 1, "befor": [1, 2, 6, 13], "thei": [1, 2, 3, 4, 5, 8, 9, 12, 13, 20], "can": [1, 2, 3, 4, 5, 7, 8, 13, 15, 19, 20, 24], "must": 1, "approv": 1, "two": [1, 3, 4, 6, 13, 15], "explicitli": 1, "onli": [1, 2, 3, 4, 5, 6, 9, 13, 15, 20], "except": 1, "other": [1, 2, 3, 5, 13], "activ": [1, 2, 3, 9], "where": [1, 4, 13], "back": 1, "traceabl": 1, "discuss": [1, 5, 24], "suffici": [1, 15], "note": [1, 3, 10, 24], "still": [1, 2, 3], "encourag": 1, "help": [1, 6, 9, 13], "u": [1, 6], "increas": 1, "pace": 1, "veri": [1, 2, 4], "like": [1, 2, 3, 4, 5], "find": 1, "issu": [1, 4, 24], "nobodi": 1, "els": 1, "see": [1, 2, 3, 10, 13, 15, 17, 20], "squash": 1, "commit": 1, "messag": [1, 4, 6, 9, 15, 17, 18, 20, 24], "comment": 1, "fixup": 1, "linter": 1, "us": [1, 2, 3, 4, 5, 8, 9, 12, 14, 15, 16, 17, 18, 19, 21, 23, 24], "pre": 1, "correct": [1, 2, 20], "header": [1, 13], "address": [1, 4], "similar": [1, 3, 5], "mean": [1, 2, 8], "result": [1, 3], "exactli": 1, "1": [1, 3, 4, 5, 8, 13], "cowboi": 1, "style": [1, 13], "over": [1, 4], "weekend": 1, "It": [1, 2, 3, 4, 6, 15], "doesn": 1, "matter": 1, "trivial": [1, 8], "peopl": 1, "chanc": 1, "proper": [1, 20], "Be": 1, "awar": 1, "impact": 1, "time": [1, 2, 4, 5, 6, 8, 9, 11, 13, 15, 20, 24], "proport": 1, "its": [1, 2, 3, 4, 5, 15, 17], "ping": 1, "them": [1, 3, 4, 6, 13, 18], "necessari": 1, "repeatedli": 1, "start": [1, 2, 5, 6, 9, 10, 13, 20, 24], "part": [1, 4, 5, 13], "For": [1, 3, 4, 5, 8, 13, 20], "detail": [1, 2, 3, 8, 13], "thoma": 1, "cokela": 1, "info": 1, "tutori": 1, "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 5, 6, 9, 12, 13, 15, 17], "develop": [1, 5, 8, 10, 13], "stabl": [1, 4], "against": 1, "accept": [1, 13, 14, 16, 21, 23], "api": [1, 4], "abi": 1, "chang": [1, 2, 3, 5, 9, 13, 20], "e": [1, 2, 3, 4, 5, 8, 13, 14, 15, 16, 18, 20, 21, 23, 24], "name": [1, 2, 3, 5, 6, 8, 9, 13, 15, 17, 18, 20], "convent": 1, "master": [1, 3, 4], "semi": 1, "binari": 1, "good": [1, 4], "same": [1, 3, 4, 15], "build": [1, 13], "dai": 1, "2": [1, 3, 5, 8], "ros_distro": 1, "g": [1, 2, 3, 4, 5, 8, 13, 14, 16, 18, 21, 23, 24], "foxi": [1, 3, 5], "galact": 1, "releas": [1, 3, 5], "version": [1, 4], "non": [1, 5, 15], "brake": 1, "distribut": [1, 24], "three": [1, 2, 3, 13], "stage": 1, "current": [1, 4, 9, 20], "futur": [1, 5], "compat": [1, 2, 5], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 24], "packag": [1, 2, 3, 10, 13, 15, 17, 19, 20, 24], "show": [1, 3, 5, 6, 9], "direct": [1, 2, 4, 13], "local": [1, 18], "possibl": [1, 3, 4, 13, 20], "core": 1, "immedi": 1, "depend": [1, 3, 13, 20], "fail": 1, "expect": [1, 4, 20], "after": [1, 11, 13, 22], "next": [1, 20], "sync": 1, "abl": 1, "potenti": [1, 13], "mid": 1, "robothw": 2, "rigid": 2, "ani": [2, 3, 5, 13], "imposs": 2, "extend": [2, 3, 4, 13], "exist": [2, 3, 4, 6, 13], "addit": [2, 4], "sensor": [2, 3, 4, 8, 12], "actuat": [2, 3, 4, 8], "tool": [2, 4, 5], "without": [2, 3, 8, 13], "combinedrobothardwar": 2, "drawback": [2, 24], "solut": [2, 5], "optim": 2, "combin": [2, 8, 20], "extern": [2, 3, 4, 8], "defin": [2, 3, 4, 8, 12, 13, 15, 17, 18, 20], "system": [2, 3, 4, 5, 10, 20, 24], "composit": [2, 5], "basic": [2, 3, 4, 5, 13], "physic": [2, 3, 8], "cell": [2, 15], "surround": 2, "describ": [2, 3], "multi": [2, 3, 4, 5, 10], "gripper": [2, 3, 8], "out": [2, 11], "box": 2, "allow": [2, 20], "joint": [2, 3, 5, 11, 12, 13, 14, 16, 18, 21, 23, 24], "posit": [2, 3, 5, 6, 9, 10, 12, 14, 16, 20, 21, 23], "veloc": [2, 3, 5, 10, 12, 20, 21, 23], "effort": [2, 12, 14, 16, 20], "hard": [2, 4], "data": [2, 3, 4, 8, 19], "approach": 2, "doe": [2, 13, 20], "enforc": [2, 20], "string": [2, 8, 13, 18, 20], "ensur": [2, 5], "constant": 2, "hardware_interfac": [2, 3, 8, 12, 13], "In": [2, 3, 4, 5, 13], "had": 2, "request": [2, 24], "itself": 2, "took": 2, "care": [2, 4, 13], "regist": 2, "resourc": 2, "conflict": [2, 3, 4], "resourcemanag": 2, "take": [2, 4, 13, 18], "state": [2, 3, 4, 5, 8, 9, 10, 12, 13, 15, 18, 20], "avail": [2, 3, 5, 9, 10, 13, 18, 20], "enabl": [2, 3, 4, 5, 10, 15], "anymor": 2, "controllermanag": 2, "implement": [2, 3, 4, 5, 8, 10, 11, 12, 13, 20, 22, 24], "systeminterfac": [2, 8], "granular": 2, "sensorinterfac": 2, "actuatorinterfac": 2, "abov": [2, 20], "choos": 2, "suitabl": [2, 5], "strategi": [2, 20], "decid": 2, "which": [2, 3, 4, 5, 9, 11, 13, 15, 17, 20, 22], "case": [2, 4, 5, 13, 20, 24], "mayb": 2, "sens": [2, 3, 15], "multipl": [2, 3, 20], "constructor": [2, 13], "initi": [2, 13], "variabl": [2, 4, 13], "need": [2, 3, 4, 5, 13], "commun": [2, 3, 4, 5], "default": [2, 3, 8, 18, 20], "configur": [2, 3, 4, 5, 6, 9, 10, 13, 20], "paramet": [2, 5, 13], "pars": [2, 7], "urdf": 2, "snippet": 2, "hardwareinfo": 2, "here": [2, 7, 13, 19, 20], "cross": 2, "valu": [2, 3, 4, 8, 13, 20], "export_": 2, "_interfac": 2, "joint_a2": 2, "extract": [2, 11, 22], "sensibl": 2, "stop": [2, 5, 6, 9, 10, 11, 22], "usual": [2, 8, 13], "includ": [2, 4, 9, 13], "command": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 16, 20, 21, 23, 24], "safe": [2, 11, 13, 20, 22], "interrupt": [2, 6], "stream": [2, 5], "write": [2, 3, 4, 5, 12], "exchang": [2, 4], "equival": 2, "forget": 2, "pluginlib_export_class": [2, 13], "macro": [2, 3, 13], "end": [2, 3, 13, 20], "cpp": [2, 13], "file": [2, 3, 4, 5, 6, 8, 13, 20], "creat": [2, 3, 5, 8, 13], "xml": [2, 13], "librari": [2, 3, 4, 9, 13], "pluginlib": [2, 3, 13], "exampl": [2, 3, 4, 5, 8, 9, 10, 15, 20, 24], "rrbotsystempositiononlyhardwar": [2, 3], "excel": 2, "jointtrajectorycontrol": [2, 9], "real": [2, 4, 5, 8, 13, 18, 20, 24], "critic": [2, 4], "mark": 2, "controllerinterfac": [2, 3, 9, 13], "member": [2, 13], "init": [2, 13], "call": [2, 3, 13], "lifecycl": [2, 3, 5, 6], "declar": [2, 13], "state_interface_configur": [2, 13], "command_interface_configur": [2, 13], "design": [2, 3, 4, 5, 24], "updat": [2, 3, 4, 13], "manag": [2, 4, 5, 7, 9, 13, 24], "option": [2, 6, 8, 9, 13, 15, 18, 20], "on_configur": [2, 13], "on_activ": [2, 13], "on_deactiv": [2, 13], "deactiv": [2, 3], "final": [2, 5], "joint_trajectory_plugin": 2, "ros2": [3, 4, 5, 6, 9, 10, 13, 24], "instal": [3, 13], "automat": [3, 11, 22], "want": 3, "workspac": [3, 13], "folder": [3, 5, 13], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 4], "vc": 3, "import": [3, 13, 20], "src": [3, 13], "found": [3, 7, 13, 19, 20, 24], "github": [3, 4, 7, 12, 24], "repositori": [3, 4, 7, 12, 24], "figur": 3, "cm": 3, "connect": 3, "abstract": [3, 5], "side": [3, 4, 5], "entri": [3, 13], "point": [3, 12, 13, 24], "through": [3, 4, 9, 11, 12, 13, 20, 24], "servic": [3, 4, 6], "node": [3, 6, 8, 9, 10, 13], "executor": 3, "so": [3, 13], "integr": [3, 4, 5, 8, 10, 20, 24], "custom": [3, 8, 15], "setup": [3, 4, 13], "recommend": [3, 5], "ros2_control_nod": 3, "controller_manag": [3, 4, 6, 9, 13, 20], "manual": [3, 4, 13, 24], "assum": 3, "On": 3, "load": [3, 6, 9, 10, 13], "unload": [3, 6, 9], "access": [3, 4, 5, 6, 8, 13], "match": 3, "provid": [3, 4, 5, 6, 8, 10, 12, 13, 20, 24], "report": [3, 4, 18, 24], "error": [3, 4, 13, 20], "execut": [3, 13, 20], "loop": [3, 5, 13, 20], "output": [3, 4, 5, 9, 15, 17, 20], "rm": 3, "driver": [3, 5], "re": 3, "usabl": 3, "flexibl": 3, "motor": [3, 4], "encod": 3, "deal": 3, "theori": [3, 24], "compar": [3, 4, 5], "refer": 3, "measur": [3, 8, 15], "base": [3, 5, 9, 11, 13, 22], "calcul": 3, "input": [3, 4, 5, 11, 20, 22], "visit": 3, "wikipedia": [3, 24], "object": 3, "deriv": 3, "controller_interfac": [3, 4, 9, 13, 15, 17], "export": [3, 13], "plugin": [3, 13], "forwardcommandcontrol": 3, "lifecyclenod": 3, "class": [3, 5, 9, 13], "machin": [3, 4], "document": [3, 4, 5, 8, 19], "latest": 3, "interact": [3, 5, 6, 9], "list": [3, 5, 9, 10, 12, 13, 20, 24], "definit": [3, 12, 13, 15], "srv": 3, "controller_manager_msg": 3, "while": [3, 4, 5, 10, 20], "directli": [3, 24], "line": [3, 7, 13], "via": 3, "friendli": 3, "cli": [3, 7, 9], "auto": 3, "complet": [3, 12], "rang": 3, "common": [3, 4, 12, 24], "capabl": [3, 4], "readm": 3, "md": 3, "ros2controlcli": 3, "realiz": [3, 5], "repres": 3, "dynam": [3, 13], "There": [3, 6, 13], "complex": [3, 4, 5], "dof": 3, "differ": [3, 4, 5, 14, 15, 16, 21, 23], "between": [3, 4, 19, 20], "transmiss": 3, "humanoid": 3, "hand": 3, "logic": 3, "channel": 3, "kuka": 3, "rsi": 3, "A": [3, 5, 13, 20], "relat": [3, 4, 5], "link": [3, 5], "forc": [3, 5, 9, 12], "torqu": [3, 12], "simpl": [3, 4, 5, 10, 13, 19], "valv": 3, "mandatori": [3, 15, 17, 20], "dc": 3, "arduino": 3, "board": 3, "modular": [3, 5], "independ": 3, "explan": 3, "given": [3, 20], "tag": [3, 13, 24], "chosen": 3, "structur": [3, 4, 13, 20], "track": [3, 24], "togeth": 3, "xacro": 3, "hereund": 3, "rrbot": [3, 10], "parallel": [3, 8], "effector": 3, "rrbotsystempositiononli": 3, "ros2_control_demo_hardwar": [3, 10], "param": [3, 6, 8], "example_param_write_for_sec": 3, "example_param_read_for_sec": 3, "joint1": [3, 8, 9, 10, 20], "command_interfac": [3, 20], "min": 3, "max": 3, "state_interfac": [3, 20], "joint2": [3, 9, 10, 20], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "0": [3, 8, 18, 20], "43": 3, "tcp_fts_sensor": 3, "frame_id": [3, 15, 17], "rrbot_tcp": 3, "min_forc": 3, "100": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "23": 3, "3": [3, 4], "gripper_joint": 3, "50": [3, 20], "yaml": [3, 4, 20], "instead": [3, 8, 19, 20], "pure": [3, 20], "launch": [3, 6, 8, 10], "stack": [3, 5], "could": [3, 5, 13, 20], "altern": [3, 20], "script": [3, 4, 13], "skeleton": 3, "orbit": 4, "around": [4, 15, 17], "everyth": [4, 13], "goal": [4, 5, 20, 24], "long": 4, "run": [4, 5, 6, 9], "task": [4, 5, 11], "interfac": [4, 5, 6, 7, 8, 10, 12, 13, 15, 17, 24], "user": 4, "thread": 4, "protect": [4, 13], "memori": [4, 13], "buffer": [4, 24], "control_toolbox": [4, 24], "second": [4, 9, 13, 24], "frequenc": 4, "high": 4, "rate": [4, 20], "khz": 4, "variou": 4, "anoth": 4, "heartbeat": 4, "signal": 4, "sent": 4, "onc": [4, 5], "per": [4, 15], "500": 4, "hz": 4, "failur": 4, "relev": [4, 24], "draft": 4, "trigger": 4, "skill": 4, "prefer": 4, "c": [4, 6, 9, 13], "trick": 4, "mentor": 4, "benc": [4, 5], "magyar": [4, 5], "deni": [4, 5], "\u0161togl": [4, 5], "size": 4, "350": 4, "hour": 4, "difficulti": 4, "about": [4, 8, 24], "org": 4, "gener": [4, 5, 13, 20, 24], "envis": 4, "simul": [4, 8, 10], "gazebo": 4, "ignit": 4, "showcas": [4, 5], "grace": 4, "degrad": 4, "architectur": [4, 5], "roadmap": [4, 24], "place": [4, 13, 20], "gpio": 4, "mode": [4, 20], "switch": [4, 9], "movement": 4, "safeti": 4, "familiar": [4, 24], "medium": 4, "focus": [4, 5], "although": 4, "easi": 4, "therefor": [4, 13, 18, 20], "often": [4, 8, 13], "orchestr": 4, "purpos": 4, "conductor": 4, "scenario": 4, "appropri": 4, "moment": 4, "right": 4, "replac": 4, "level": [4, 5, 14, 16, 20, 21, 23], "moveit2": [4, 5], "simplecontrollermanag": 4, "form": 4, "behavior": [4, 8], "benchmark": 4, "statu": [4, 9, 20], "publish": [4, 11, 15, 17, 18, 20, 22, 24], "topic": [4, 5, 20], "format": 4, "preset": 4, "modul": 4, "specif": [4, 20], "reli": 4, "doubl": [4, 8, 20], "desir": [4, 20], "howev": [4, 6], "both": [4, 5], "improv": 4, "readabl": 4, "earlier": 4, "concept": [4, 5, 8, 10], "were": 4, "introduc": [4, 5], "essenti": 4, "group": [4, 20, 24], "instanc": 4, "imu": [4, 12], "typic": [4, 20], "9": 4, "axi": [4, 15], "aceleromet": 4, "gyroscop": 4, "compass": 4, "respect": [4, 5], "Such": 4, "struct": 4, "low": [4, 5], "profil": 4, "intern": [4, 20], "addition": [4, 24], "few": [4, 5], "pull": 4, "45": 4, "tree": 4, "semantic_compon": 4, "175": 4, "rewrit": [4, 24], "ros_control": [4, 5, 24], "rich": 4, "wa": [4, 13], "motiv": 4, "adopt": 4, "port": 4, "most": [4, 13], "quit": 4, "miss": 4, "diff_drive_control": [4, 9], "joint_trajectory_control": [4, 9], "consist": [4, 20, 24], "identifi": 4, "much": [4, 13], "303": 4, "304": 4, "stretch": 4, "realtime_tool": [4, 24], "81": 4, "302": 4, "unit": 4, "gmock": 4, "cc": 5, "BY": 5, "licens": 5, "author": 5, "either": 5, "down": 5, "below": 5, "my": 5, "company_nam": 5, "tricycl": [5, 12, 22], "control": [5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24], "event": 5, "pixel": 5, "prefac": 5, "introduct": [5, 20], "johann": 5, "plapp": 5, "toni": 5, "najjar": 5, "kernel": 5, "hardwar": [5, 6, 8, 10, 12, 13, 22, 24], "agnost": 5, "share": [5, 13], "well": [5, 9, 20], "perform": 5, "heavi": 5, "dr": 5, "stogl": 5, "consult": 5, "practition": 5, "guid": [5, 13], "top": 5, "virtual": 5, "talk": 5, "delv": 5, "deeper": 5, "what": 5, "explicit": [5, 20], "chain": 5, "emerg": 5, "handler": 5, "mock": 5, "usag": [5, 6, 9], "openli": 5, "record": 5, "fiveai": 5, "ltd": 5, "best": [5, 13], "focu": 5, "becom": 5, "util": 5, "3rd": 5, "parti": 5, "nav2": 5, "practic": 5, "tip": 5, "hot": 5, "shown": 5, "furthermor": 5, "get": [5, 24], "reus": 5, "inject": 5, "offer": [5, 6], "expos": 5, "problem": [5, 24], "manipul": [5, 20], "path": 5, "plan": [5, 24], "autonom": 5, "navig": 5, "ideal": [5, 8], "made": 5, "mobil": [5, 11, 22], "arm": 5, "extra": [5, 18], "readi": [5, 13], "power": 5, "studi": 5, "ur": 5, "With": 5, "moveit": [5, 8], "ingredi": 5, "scale": 5, "factor": 5, "teach": 5, "pendant": 5, "influenc": 5, "picknik": 5, "inc": 5, "nathan": 5, "brook": 5, "lovro": 5, "ivanov": 5, "andi": 5, "zelenak": 5, "rune": 5, "s\u00f8e": 5, "knudsen": 5, "onlin": [5, 13], "trajectori": [5, 12, 24], "admitt": 5, "One": 5, "reason": 5, "upgrad": 5, "ros1": 5, "better": 5, "realtim": [5, 11, 20, 22, 24], "contact": 5, "insert": 5, "singl": 5, "waypoint": [5, 12, 20], "mani": [5, 13], "teleoper": 5, "involv": 5, "kinemat": 5, "acceler": [5, 10, 11, 12, 20, 22], "jerk": [5, 11, 22], "obei": 5, "demo": 5, "booth": 5, "zeleank": 5, "unifi": 5, "life": 5, "cycl": 5, "go": [5, 13], "_control": 5, "wild": 5, "materi": 5, "quick": 5, "overview": 5, "layer": 5, "aka": 5, "systemcompon": 5, "forward": [5, 8, 12, 20, 24], "done": [5, 13], "look": 5, "modifi": 5, "simpli": [5, 20], "net": 5, "edit": 5, "collect": [5, 14, 16, 21, 23], "semant": [5, 15, 17], "world": [6, 8], "startup": 6, "h": [6, 9, 13, 19], "p": 6, "param_fil": 6, "controller_typ": 6, "timeout": [6, 9, 22], "controller_manager_timeout": 6, "controller_nam": [6, 9, 13], "argument": [6, 9], "exit": [6, 9], "leav": 6, "unconfigur": 6, "namespac": [6, 12, 13, 18, 20], "kill": [6, 9], "wait": [6, 9], "until": 6, "doxygen": 7, "fake": 7, "mirror": 8, "correspond": [8, 13, 24], "offlin": 8, "advantag": 8, "pipe": 8, "insid": 8, "broadcast": [8, 18, 19], "even": 8, "debug": 8, "boost": 8, "mimic": 8, "offset": [8, 20], "fake_sensor_command": 8, "boolean": [8, 18, 20], "fals": [8, 18, 20], "position_state_following_offset": 8, "custom_interface_with_following_offset": 8, "map": [8, 20], "multipli": 8, "mimick": 8, "deprec": [9, 12], "configure_control": 9, "configure_start_control": 9, "load_configure_control": 9, "load_start_control": 9, "spin": 9, "spin_tim": 9, "hidden": 9, "discoveri": 9, "appli": 9, "alreadi": [9, 13, 20], "daemon": 9, "test_controller_nam": 9, "test_control": 9, "diffdrivecontrol": 9, "joint_state_control": [9, 10], "jointstatecontrol": 9, "unclaim": [9, 10], "set_stat": 9, "reload": 9, "adjust": 9, "strict": 9, "asap": 9, "switch_timeout": 9, "templat": [10, 13, 20], "demonstr": 10, "prove": 10, "comprehens": 10, "ros2_control_demo_bringup": 10, "gui": 10, "ros2_control_test_nod": 10, "rrbot_system_multi_interfac": 10, "py": 10, "list_hardware_interfac": 10, "load_control": 10, "forward_command_controller_posit": 10, "forward_command_controller_veloc": 10, "forward_command_controller_acceler": 10, "forward_command_controller_illegal1": 10, "forward_command_controller_illegal2": 10, "set_controller_st": 10, "claim": 10, "now": [10, 13], "let": 10, "switch_control": 10, "again": 10, "inde": 10, "been": [10, 19], "differenti": [11, 12, 19, 24], "drive": [11, 12, 22, 24], "bodi": 11, "translat": [11, 22], "wheel": 11, "odometri": [11, 22], "comput": [11, 22], "feedback": [11, 20, 22], "twist": [11, 22], "x": [11, 15, 17, 22], "linear": [11, 20, 22], "z": [11, 15, 22], "angular": [11, 22], "ignor": [11, 20, 22], "space": [11, 20], "sort": [12, 13], "accord": [12, 20], "position_control": [12, 20], "hw_if_posit": 12, "velocity_control": 12, "hw_if_veloc": 12, "effort_control": 12, "hw_if_effort": 12, "interpol": [12, 20], "step": [13, 20, 24], "compil": 13, "rule": 13, "prepar": 13, "ament_cmak": 13, "easiest": 13, "search": 13, "recent": 13, "process": 13, "pkg": 13, "flag": [13, 20], "least": [13, 20], "cmakelist": 13, "txt": 13, "package_nam": 13, "hpp": 13, "visibility_control": 13, "window": 13, "copi": 13, "prefix": [13, 15, 17], "guard": 13, "ifndef": 13, "preprocessor": 13, "engin": 13, "friend": 13, "uniqu": 13, "written": 13, "snake_cas": 13, "controllernam": 13, "public": 13, "overrid": 13, "exact": 13, "vector": 13, "store": 13, "simplifi": [13, 24], "further": 13, "parent": 13, "reserv": 13, "importantli": 13, "fine": 13, "return": 13, "return_typ": 13, "ok": 13, "otherwis": 13, "individu": 13, "none": 13, "ask": 13, "full": 13, "joint_nam": [13, 20], "interface_typ": 13, "assign": 13, "opposit": 13, "empti": 13, "constraint": [13, 20], "At": 13, "close": 13, "class_list_macro": 13, "controller_name_namespac": 13, "visibl": 13, "controller_name_packag": 13, "bottom": 13, "test_load_": 13, "content": 13, "last": [13, 20], "specifi": [13, 20], "find_packag": 13, "rclcpp": 13, "rclcpp_lifecycl": 13, "directori": 13, "ament": 13, "cmake": 13, "pluginlib_export_plugin_description_fil": 13, "ament_cmake_gmock": 13, "ros2_control_test_asset": 13, "ament_add_gmock": 13, "ament_export_librari": 13, "ament_packag": 13, "test_depend": 13, "colcon": 13, "rememb": 13, "root": 13, "success": 13, "bash": 13, "enjoi": 13, "great": 13, "shell": 13, "mai": [14, 16, 21, 23], "certain": [14, 16, 21, 23], "achiev": [14, 16, 21, 23], "These": [14, 16, 21, 23], "geometry_msg": 15, "msg": [15, 17, 20], "wrenchstamp": 15, "wrapper": [15, 17], "forcetorquesensor": 15, "sensor_nam": [15, 17], "interface_nam": 15, "frame": [15, 17], "6d": 15, "ft": 15, "y": 15, "less": 15, "six": 15, "ax": 15, "example_nam": 15, "example_interfac": 15, "sensor_msg": 17, "imusensor": 17, "orient": 17, "angular_veloc": 17, "linear_acceler": 17, "joint_stat": 18, "dynamic_joint_st": 18, "use_local_top": 18, "my_state_broadcast": 18, "extra_joint": 18, "arrai": 18, "renam": 19, "joint_state_broadcast": 19, "order": 19, "true": [19, 20], "remov": 19, "turtl": 19, "reach": 20, "instant": 20, "attempt": 20, "mechan": 20, "By": 20, "spline": 20, "guarante": 20, "continu": 20, "discourag": 20, "becaus": 20, "yield": 20, "discontinu": 20, "cubic": 20, "quintic": 20, "pid": [20, 24], "similarli": 20, "eg": 20, "proxi": 20, "wrap": 20, "robust": 20, "clock": 20, "caus": 20, "queu": 20, "segment": 20, "ros__paramet": 20, "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "state_publish_r": 20, "action_monitor_r": 20, "20": 20, "allow_partial_joints_go": 20, "open_loop_control": 20, "stopped_velocity_toler": 20, "01": 20, "goal_tim": 20, "05": [20, 24], "03": 20, "monitor": 20, "action": 20, "control_msg": [20, 24], "followjointtrajectori": 20, "hydraul": 20, "tri": 20, "numer": 20, "nan": 20, "std": 20, "numeric_limit": 20, "quiet_nan": 20, "toler": 20, "jointtrajectori": 20, "deviat": 20, "maxim": 20, "predefin": 20, "joint_trajectori": 20, "trajectory_msg": 20, "jointtrajectorycontrollerst": 20, "follow_joint_trajectori": 20, "server": 20, "position_velocity_control": 20, "position_velocity_acceleration_control": 20, "Not": 20, "yet": 20, "feedforward": 20, "term": [20, 24], "plu": 20, "171": 20, "base_link": 22, "traction": 22, "steer": 22, "Its": 24, "oper": 24, "overcom": 24, "idea": 24, "wide": 24, "toolkit": 24, "unreleas": 24, "smooth": 24, "doc": 24, "wg": 24, "meet": 24, "everi": 24, "wednesdai": 24, "join": 24, "announc": 24, "discours": 24, "googl": 24, "propos": 24, "previou": 24, "bug": 24, "tracker": 24, "minim": 24, "reproduc": 24, "regard": 24, "etc": 24, "question": 24, "answer": 24, "2023": 24, "12": 24, "30": 24, "31": 24, "built": 24, "gmt": 24}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 10], "process": 1, "merg": 1, "write": [1, 13], "document": [1, 7, 24], "structur": [1, 2], "ci": 1, "configur": 1, "differ": 2, "ros_control": 2, "ros1": [2, 4], "hardwar": [2, 3, 4, 11, 14, 16, 18, 20, 21, 23], "class": 2, "interfac": [2, 3, 9, 11, 14, 16, 18, 20, 21, 23], "control": [2, 3, 4, 6, 12, 13, 20], "": [2, 20], "access": 2, "migrat": 2, "guid": 2, "ros2_control": [2, 4, 12, 24], "robothardwar": 2, "compon": [2, 3, 4, 8], "get": 3, "start": 3, "compil": 3, "architectur": 3, "manag": [3, 6], "resourc": [3, 5], "user": 3, "descript": 3, "urdf": 3, "run": 3, "framework": 3, "your": 3, "robot": [3, 5], "project": 4, "idea": 4, "gsoc": 4, "2022": [4, 5], "asynchron": 4, "tutori": 4, "demo": [4, 10], "mission": 4, "add": 4, "support": 4, "semant": 4, "featur": [4, 7, 11, 20, 22], "pariti": 4, "from": 4, "present": 5, "2023": 5, "02": 5, "ro": 5, "meetup": 5, "munich": 5, "5": 5, "12": 5, "industri": 5, "confer": 5, "10": 5, "roscon": 5, "06": 5, "fr": 5, "2021": 5, "world": 5, "07": 5, "weekli": 5, "13": 5, "rosdevdai": 5, "05": 5, "diagram": 5, "imag": 5, "helper": 6, "script": 6, "spawner": 6, "py": 6, "unspawn": 6, "api": 7, "core": 7, "function": 7, "concept": 7, "fake": 8, "gener": 8, "system": 8, "paramet": [8, 15, 17, 18, 20], "per": 8, "joint": [8, 20], "command": [9, 11, 18, 22], "line": 9, "list_control": 9, "list_controller_typ": 9, "list_hardware_interfac": 9, "load_control": 9, "reload_controller_librari": 9, "set_controller_st": 9, "switch_control": 9, "unload_control": 9, "organ": 10, "mode": 10, "switch": 10, "diff_drive_control": 11, "veloc": [11, 22], "type": [11, 14, 16, 18, 20, 21, 23], "other": [11, 20, 22], "nomenclatur": 12, "guidelin": 12, "best": 12, "practic": 12, "avail": 12, "broadcast": [12, 15, 17], "new": 13, "us": [13, 20], "extern": 13, "refer": 13, "effort_control": 14, "forc": 15, "torqu": 15, "sensor": [15, 17], "forward_command_control": 16, "imu": 17, "joint_state_broadcast": 18, "joint_state_control": 19, "joint_trajectory_control": 20, "trajectori": 20, "represent": 20, "detail": 20, "about": 20, "ros2": 20, "special": 20, "version": 20, "jointtrajectorycontrol": 20, "tbd": 20, "position_control": 21, "tricycle_control": 22, "velocity_control": 23, "welcom": 24, "foxi": 24, "overview": 24, "develop": 24, "organis": 24, "commun": 24}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "Getting Started": [[3, "getting-started"]], "Compiling": [[3, "compiling"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"], [12, "id1"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Resources": [[5, "resources"]], "Presentations": [[5, "presentations"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "Diagrams": [[5, "diagrams"]], "Images": [[5, "images"]], "Helper scripts": [[6, "helper-scripts"]], "spawner.py": [[6, "spawner-py"]], "unspawner.py": [[6, "unspawner-py"]], "API Documentation": [[7, "api-documentation"]], "Core functionalities": [[7, "core-functionalities"]], "Features": [[7, "features"]], "Concepts": [[7, "concepts"]], "Fake Components": [[8, "fake-components"]], "Generic System": [[8, "generic-system"]], "Parameters": [[8, "parameters"], [15, "parameters"], [17, "parameters"], [18, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Command Line Interface": [[9, "command-line-interface"]], "list_controllers": [[9, "list-controllers"]], "list_controller_types": [[9, "list-controller-types"]], "list_hardware_interfaces": [[9, "list-hardware-interfaces"]], "load_controller": [[9, "load-controller"]], "reload_controller_libraries": [[9, "reload-controller-libraries"]], "set_controller_state": [[9, "set-controller-state"]], "switch_controllers": [[9, "switch-controllers"]], "unload_controller": [[9, "unload-controller"]], "Demos": [[10, "demos"]], "Repository organization": [[10, "repository-organization"]], "Mode switching demo": [[10, "mode-switching-demo"]], "diff_drive_controller": [[11, "diff-drive-controller"]], "Velocity commands": [[11, "velocity-commands"], [22, "velocity-commands"]], "Hardware interface type": [[11, "hardware-interface-type"], [14, "hardware-interface-type"], [16, "hardware-interface-type"], [18, "hardware-interface-type"], [20, "hardware-interface-type"], [21, "hardware-interface-type"], [23, "hardware-interface-type"]], "Other features": [[11, "other-features"], [20, "other-features"], [22, "other-features"]], "ros2_controllers": [[12, "ros2-controllers"]], "Nomenclature": [[12, "nomenclature"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"]], "Available Controllers": [[12, "available-controllers"]], "Available Broadcasters": [[12, "available-broadcasters"]], "Writing a new controller": [[13, "writing-a-new-controller"]], "Useful External References": [[13, "useful-external-references"]], "effort_controllers": [[14, "effort-controllers"]], "Force Torque Sensor Broadcaster": [[15, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[16, "forward-command-controller"]], "IMU Sensor Broadcaster": [[17, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[18, "joint-state-broadcaster"]], "Commands": [[18, "commands"]], "joint_state_controller": [[19, "joint-state-controller"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "Trajectory representation": [[20, "trajectory-representation"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Details about parameters": [[20, "details-about-parameters"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "position_controllers": [[21, "position-controllers"]], "tricycle_controller": [[22, "tricycle-controller"]], "velocity_controllers": [[23, "velocity-controllers"]], "Welcome to the ros2_control documentation - Foxy!": [[24, "welcome-to-the-ros2-control-documentation-foxy"]], "Overview": [[24, "overview"]], "Development Organisation and Communication": [[24, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/getting_started/getting_started", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_controller/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/getting_started/getting_started.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_controller/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "index.rst"], "titles": ["Acknowledgements", "Pull Requests", "Differences to ros_control (ROS1)", "Getting Started", "Project Ideas for GSoC 2022", "Resources", "Controller Manager", "API Documentation", "Fake Components", "Command Line Interface", "Demos", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "joint_state_controller", "joint_trajectory_controller", "position_controllers", "tricycle_controller", "velocity_controllers", "Welcome to the ros2_control documentation - Foxy!"], "terms": {"The": [0, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 20, 22, 24], "project": [0, 1, 24], "ha": [0, 1, 3, 4, 5, 13, 19], "receiv": [0, 2], "major": 0, "contribut": [0, 1, 5], "from": [0, 1, 2, 3, 5, 6, 8, 9, 11, 13, 15, 17, 20, 22, 24], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 12, 13, 20, 24], "compani": [0, 5], "institut": 0, "support": [0, 2, 3, 5, 8, 9, 13, 20, 24], "rosin": 0, "ro": [0, 1, 3, 4, 6, 8, 9, 19, 24], "industri": [0, 3, 4], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 10, 11, 15, 22, 24], "softwar": [0, 3], "compon": [0, 5, 6, 7, 11, 15, 17, 22, 24], "more": [0, 1, 2, 3, 4, 8, 13], "inform": [0, 8, 13, 24], "http": [0, 1, 3, 4], "eu": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24], "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 4, 5, 10, 13, 24], "horizon": 0, "2020": 0, "research": [0, 5], "innov": 0, "programm": 0, "under": [0, 5, 13, 24], "grant": 0, "agreement": 0, "732287": 0, "first": [1, 2, 13], "thank": 1, "you": [1, 2, 3, 5, 8, 13, 24], "consid": [1, 9], "ros2_control": [1, 3, 5, 6, 8, 10, 13], "As": [1, 13], "an": [1, 2, 3, 4, 5, 8, 9, 13, 20], "open": [1, 20], "sourc": [1, 3, 5, 13], "we": [1, 4, 5], "welcom": 1, "each": [1, 3, 4], "contributor": 1, "regardless": 1, "background": 1, "experi": 1, "To": [1, 2, 3, 24], "reduc": [1, 8], "entropi": 1, "univers": [1, 4, 5], "our": [1, 3, 4, 5], "vivid": 1, "collabor": 1, "environ": [1, 3, 5], "have": [1, 2, 3, 4, 8, 10, 13, 20], "set": [1, 2, 4, 5, 8, 9, 14, 16, 18, 20, 21, 23], "up": [1, 5, 10], "some": [1, 4, 5, 20, 24], "standard": [1, 2, 3, 4, 5, 9, 12, 15], "method": [1, 2, 3, 13], "requir": [1, 2, 3, 4, 13], "ar": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 17, 18, 20, 22, 24], "limit": [1, 4, 5, 11, 22], "scope": 1, "your": [1, 2, 5, 8, 13, 24], "pr": 1, "should": [1, 2, 4, 5, 6, 9, 10, 13, 18], "do": [1, 2, 3, 4, 5, 6, 13, 20], "one": [1, 2, 3, 4, 5, 13, 15, 24], "thing": 1, "avoid": [1, 13], "ad": [1, 4, 8, 13, 18], "random": 1, "fix": [1, 2], "put": [1, 13], "those": [1, 2, 3, 4, 8, 13, 15, 20], "separ": [1, 2, 3], "give": [1, 3, 5, 24], "descript": [1, 2, 5, 13], "titl": 1, "add": [1, 2, 13], "short": [1, 13, 24], "summari": [1, 5, 24], "make": [1, 2, 4, 5, 24], "sure": [1, 4, 24], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24], "green": 1, "don": 1, "t": [1, 6], "afraid": 1, "review": [1, 4, 24], "maintain": [1, 3, 4], "new": [1, 5, 12, 20, 24], "code": [1, 2, 4, 5, 13], "test": [1, 4, 8, 10, 13], "If": [1, 2, 3, 6, 13, 15, 20, 24], "function": [1, 2, 3, 4, 5], "alwai": 1, "exercis": 1, "serv": [1, 3, 4], "live": [1, 5], "origin": [1, 5], "intent": [1, 8], "section": [1, 2, 13], "target": [1, 12, 13, 20], "also": [1, 2, 3, 4, 5, 13], "read": [1, 2, 3, 13, 18, 20], "understand": [1, 4], "how": [1, 4, 5, 13], "handl": [1, 2, 4, 5, 20], "organ": [1, 5, 24], "guidelin": 1, "especi": [1, 2], "applic": [1, 3, 5, 6], "ros2_control_demo": [1, 3, 24], "pleas": [1, 24], "keep": [1, 13], "mind": [1, 13], "work": [1, 4, 5, 11, 13, 14, 16, 20, 21, 22, 23, 24], "fork": 1, "when": [1, 2, 3, 4, 8, 9, 13, 20], "submit": [1, 5], "That": [1, 13], "wai": [1, 13, 15], "main": [1, 3, 4, 5, 6, 8, 13, 24], "repo": [1, 3], "clean": [1, 4], "featur": [1, 5, 8, 24], "branch": 1, "all": [1, 2, 3, 4, 5, 8, 10, 13, 18, 20], "check": [1, 2, 3, 4, 8, 10, 13, 20, 24], "satisfi": 1, "befor": [1, 2, 6, 13], "thei": [1, 2, 3, 4, 5, 8, 9, 12, 13, 20], "can": [1, 2, 3, 4, 5, 7, 8, 13, 15, 19, 20, 24], "must": 1, "approv": 1, "two": [1, 3, 4, 6, 13, 15], "explicitli": 1, "onli": [1, 2, 3, 4, 5, 6, 9, 13, 15, 20], "except": 1, "other": [1, 2, 3, 5, 13], "activ": [1, 2, 3, 9], "where": [1, 4, 13], "back": 1, "traceabl": 1, "discuss": [1, 5, 24], "suffici": [1, 15], "note": [1, 3, 10, 24], "still": [1, 2, 3], "encourag": 1, "help": [1, 6, 9, 13], "u": [1, 6], "increas": 1, "pace": 1, "veri": [1, 2, 4], "like": [1, 2, 3, 4, 5], "find": 1, "issu": [1, 4, 24], "nobodi": 1, "els": 1, "see": [1, 2, 3, 10, 13, 15, 17, 20], "squash": 1, "commit": 1, "messag": [1, 4, 6, 9, 15, 17, 18, 20, 24], "comment": 1, "fixup": 1, "linter": 1, "us": [1, 2, 3, 4, 5, 8, 9, 12, 14, 15, 16, 17, 18, 19, 21, 23, 24], "pre": 1, "correct": [1, 2, 20], "header": [1, 13], "address": [1, 4], "similar": [1, 3, 5], "mean": [1, 2, 8], "result": [1, 3], "exactli": 1, "1": [1, 3, 4, 5, 8, 13], "cowboi": 1, "style": [1, 13], "over": [1, 4], "weekend": 1, "It": [1, 2, 3, 4, 6, 15], "doesn": 1, "matter": 1, "trivial": [1, 8], "peopl": 1, "chanc": 1, "proper": [1, 20], "Be": 1, "awar": 1, "impact": 1, "time": [1, 2, 4, 5, 6, 8, 9, 11, 13, 15, 20, 24], "proport": 1, "its": [1, 2, 3, 4, 5, 15, 17], "ping": 1, "them": [1, 3, 4, 6, 13, 18], "necessari": 1, "repeatedli": 1, "start": [1, 2, 5, 6, 9, 10, 13, 20, 24], "part": [1, 4, 5, 13], "For": [1, 3, 4, 5, 8, 13, 20], "detail": [1, 2, 3, 8, 13], "thoma": 1, "cokela": 1, "info": 1, "tutori": 1, "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 5, 6, 9, 12, 13, 15, 17], "develop": [1, 5, 8, 10, 13], "stabl": [1, 4], "against": 1, "accept": [1, 13, 14, 16, 21, 23], "api": [1, 4], "abi": 1, "chang": [1, 2, 3, 5, 9, 13, 20], "e": [1, 2, 3, 4, 5, 8, 13, 14, 15, 16, 18, 20, 21, 23, 24], "name": [1, 2, 3, 5, 6, 8, 9, 13, 15, 17, 18, 20], "convent": 1, "master": [1, 3, 4], "semi": 1, "binari": 1, "good": [1, 4], "same": [1, 3, 4, 15], "build": [1, 13], "dai": 1, "2": [1, 3, 5, 8], "ros_distro": 1, "g": [1, 2, 3, 4, 5, 8, 13, 14, 16, 18, 21, 23, 24], "foxi": [1, 3, 5], "galact": 1, "releas": [1, 3, 5], "version": [1, 4], "non": [1, 5, 15], "brake": 1, "distribut": [1, 24], "three": [1, 2, 3, 13], "stage": 1, "current": [1, 4, 9, 20], "futur": [1, 5], "compat": [1, 2, 5], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 24], "packag": [1, 2, 3, 10, 13, 15, 17, 19, 20, 24], "show": [1, 3, 5, 6, 9], "direct": [1, 2, 4, 13], "local": [1, 18], "possibl": [1, 3, 4, 13, 20], "core": 1, "immedi": 1, "depend": [1, 3, 13, 20], "fail": 1, "expect": [1, 4, 20], "after": [1, 11, 13, 22], "next": [1, 20], "sync": 1, "abl": 1, "potenti": [1, 13], "mid": 1, "robothw": 2, "rigid": 2, "ani": [2, 3, 5, 13], "imposs": 2, "extend": [2, 3, 4, 13], "exist": [2, 3, 4, 6, 13], "addit": [2, 4], "sensor": [2, 3, 4, 8, 12], "actuat": [2, 3, 4, 8], "tool": [2, 4, 5], "without": [2, 3, 8, 13], "combinedrobothardwar": 2, "drawback": [2, 24], "solut": [2, 5], "optim": 2, "combin": [2, 8, 20], "extern": [2, 3, 4, 8], "defin": [2, 3, 4, 8, 12, 13, 15, 17, 18, 20], "system": [2, 3, 4, 5, 10, 20, 24], "composit": [2, 5], "basic": [2, 3, 4, 5, 13], "physic": [2, 3, 8], "cell": [2, 15], "surround": 2, "describ": [2, 3], "multi": [2, 3, 4, 5, 10], "gripper": [2, 3, 8], "out": [2, 11], "box": 2, "allow": [2, 20], "joint": [2, 3, 5, 11, 12, 13, 14, 16, 18, 21, 23, 24], "posit": [2, 3, 5, 6, 9, 10, 12, 14, 16, 20, 21, 23], "veloc": [2, 3, 5, 10, 12, 20, 21, 23], "effort": [2, 12, 14, 16, 20], "hard": [2, 4], "data": [2, 3, 4, 8, 19], "approach": 2, "doe": [2, 13, 20], "enforc": [2, 20], "string": [2, 8, 13, 18, 20], "ensur": [2, 5], "constant": 2, "hardware_interfac": [2, 3, 8, 12, 13], "In": [2, 3, 4, 5, 13], "had": 2, "request": [2, 24], "itself": 2, "took": 2, "care": [2, 4, 13], "regist": 2, "resourc": 2, "conflict": [2, 3, 4], "resourcemanag": 2, "take": [2, 4, 13, 18], "state": [2, 3, 4, 5, 8, 9, 10, 12, 13, 15, 18, 20], "avail": [2, 3, 5, 9, 10, 13, 18, 20], "enabl": [2, 3, 4, 5, 10, 15], "anymor": 2, "controllermanag": 2, "implement": [2, 3, 4, 5, 8, 10, 11, 12, 13, 20, 22, 24], "systeminterfac": [2, 8], "granular": 2, "sensorinterfac": 2, "actuatorinterfac": 2, "abov": [2, 20], "choos": 2, "suitabl": [2, 5], "strategi": [2, 20], "decid": 2, "which": [2, 3, 4, 5, 9, 11, 13, 15, 17, 20, 22], "case": [2, 4, 5, 13, 20, 24], "mayb": 2, "sens": [2, 3, 15], "multipl": [2, 3, 20], "constructor": [2, 13], "initi": [2, 13], "variabl": [2, 4, 13], "need": [2, 3, 4, 5, 13], "commun": [2, 3, 4, 5], "default": [2, 3, 8, 18, 20], "configur": [2, 3, 4, 5, 6, 9, 10, 13, 20], "paramet": [2, 5, 13], "pars": [2, 7], "urdf": 2, "snippet": 2, "hardwareinfo": 2, "here": [2, 7, 13, 19, 20], "cross": 2, "valu": [2, 3, 4, 8, 13, 20], "export_": 2, "_interfac": 2, "joint_a2": 2, "extract": [2, 11, 22], "sensibl": 2, "stop": [2, 5, 6, 9, 10, 11, 22], "usual": [2, 8, 13], "includ": [2, 4, 9, 13], "command": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 16, 20, 21, 23, 24], "safe": [2, 11, 13, 20, 22], "interrupt": [2, 6], "stream": [2, 5], "write": [2, 3, 4, 5, 12], "exchang": [2, 4], "equival": 2, "forget": 2, "pluginlib_export_class": [2, 13], "macro": [2, 3, 13], "end": [2, 3, 13, 20], "cpp": [2, 13], "file": [2, 3, 4, 5, 6, 8, 13, 20], "creat": [2, 3, 5, 8, 13], "xml": [2, 13], "librari": [2, 3, 4, 9, 13], "pluginlib": [2, 3, 13], "exampl": [2, 3, 4, 5, 8, 9, 10, 15, 20, 24], "rrbotsystempositiononlyhardwar": [2, 3], "excel": 2, "jointtrajectorycontrol": [2, 9], "real": [2, 4, 5, 8, 13, 18, 20, 24], "critic": [2, 4], "mark": 2, "controllerinterfac": [2, 3, 9, 13], "member": [2, 13], "init": [2, 13], "call": [2, 3, 13], "lifecycl": [2, 3, 5, 6], "declar": [2, 13], "state_interface_configur": [2, 13], "command_interface_configur": [2, 13], "design": [2, 3, 4, 5, 24], "updat": [2, 3, 4, 13], "manag": [2, 4, 5, 7, 9, 13, 24], "option": [2, 6, 8, 9, 13, 15, 18, 20], "on_configur": [2, 13], "on_activ": [2, 13], "on_deactiv": [2, 13], "deactiv": [2, 3], "final": [2, 5], "joint_trajectory_plugin": 2, "ros2": [3, 4, 5, 6, 9, 10, 13, 24], "instal": [3, 13], "automat": [3, 11, 22], "want": 3, "workspac": [3, 13], "folder": [3, 5, 13], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 4], "vc": 3, "import": [3, 13, 20], "src": [3, 13], "found": [3, 7, 13, 19, 20, 24], "github": [3, 4, 7, 12, 24], "repositori": [3, 4, 7, 12, 24], "figur": 3, "cm": 3, "connect": 3, "abstract": [3, 5], "side": [3, 4, 5], "entri": [3, 13], "point": [3, 12, 13, 24], "through": [3, 4, 9, 11, 12, 13, 20, 24], "servic": [3, 4, 6], "node": [3, 6, 8, 9, 10, 13], "executor": 3, "so": [3, 13], "integr": [3, 4, 5, 8, 10, 20, 24], "custom": [3, 8, 15], "setup": [3, 4, 13], "recommend": [3, 5], "ros2_control_nod": 3, "controller_manag": [3, 4, 6, 9, 13, 20], "manual": [3, 4, 13, 24], "assum": 3, "On": 3, "load": [3, 6, 9, 10, 13], "unload": [3, 6, 9], "access": [3, 4, 5, 6, 8, 13], "match": 3, "provid": [3, 4, 5, 6, 8, 10, 12, 13, 20, 24], "report": [3, 4, 18, 24], "error": [3, 4, 13, 20], "execut": [3, 13, 20], "loop": [3, 5, 13, 20], "output": [3, 4, 5, 9, 15, 17, 20], "rm": 3, "driver": [3, 5], "re": 3, "usabl": 3, "flexibl": 3, "motor": [3, 4], "encod": 3, "deal": 3, "theori": [3, 24], "compar": [3, 4, 5], "refer": 3, "measur": [3, 8, 15], "base": [3, 5, 9, 11, 13, 22], "calcul": 3, "input": [3, 4, 5, 11, 20, 22], "visit": 3, "wikipedia": [3, 24], "object": 3, "deriv": 3, "controller_interfac": [3, 4, 9, 13, 15, 17], "export": [3, 13], "plugin": [3, 13], "forwardcommandcontrol": 3, "lifecyclenod": 3, "class": [3, 5, 9, 13], "machin": [3, 4], "document": [3, 4, 5, 8, 19], "latest": 3, "interact": [3, 5, 6, 9], "list": [3, 5, 9, 10, 12, 13, 20, 24], "definit": [3, 12, 13, 15], "srv": 3, "controller_manager_msg": 3, "while": [3, 4, 5, 10, 20], "directli": [3, 24], "line": [3, 7, 13], "via": 3, "friendli": 3, "cli": [3, 7, 9], "auto": 3, "complet": [3, 12], "rang": 3, "common": [3, 4, 12, 24], "capabl": [3, 4], "readm": 3, "md": 3, "ros2controlcli": 3, "realiz": [3, 5], "repres": 3, "dynam": [3, 13], "There": [3, 6, 13], "complex": [3, 4, 5], "dof": 3, "differ": [3, 4, 5, 14, 15, 16, 21, 23], "between": [3, 4, 19, 20], "transmiss": 3, "humanoid": 3, "hand": 3, "logic": 3, "channel": 3, "kuka": 3, "rsi": 3, "A": [3, 5, 13, 20], "relat": [3, 4, 5], "link": [3, 5], "forc": [3, 5, 9, 12], "torqu": [3, 12], "simpl": [3, 4, 5, 10, 13, 19], "valv": 3, "mandatori": [3, 15, 17, 20], "dc": 3, "arduino": 3, "board": 3, "modular": [3, 5], "independ": 3, "explan": 3, "given": [3, 20], "tag": [3, 13, 24], "chosen": 3, "structur": [3, 4, 13, 20], "track": [3, 24], "togeth": 3, "xacro": 3, "hereund": 3, "rrbot": [3, 10], "parallel": [3, 8], "effector": 3, "rrbotsystempositiononli": 3, "ros2_control_demo_hardwar": [3, 10], "param": [3, 6, 8], "example_param_write_for_sec": 3, "example_param_read_for_sec": 3, "joint1": [3, 8, 9, 10, 20], "command_interfac": [3, 20], "min": 3, "max": 3, "state_interfac": [3, 20], "joint2": [3, 9, 10, 20], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "0": [3, 8, 18, 20], "43": 3, "tcp_fts_sensor": 3, "frame_id": [3, 15, 17], "rrbot_tcp": 3, "min_forc": 3, "100": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "23": 3, "3": [3, 4], "gripper_joint": 3, "50": [3, 20], "yaml": [3, 4, 20], "instead": [3, 8, 19, 20], "pure": [3, 20], "launch": [3, 6, 8, 10], "stack": [3, 5], "could": [3, 5, 13, 20], "altern": [3, 20], "script": [3, 4, 13], "skeleton": 3, "orbit": 4, "around": [4, 15, 17], "everyth": [4, 13], "goal": [4, 5, 20, 24], "long": 4, "run": [4, 5, 6, 9], "task": [4, 5, 11], "interfac": [4, 5, 6, 7, 8, 10, 12, 13, 15, 17, 24], "user": 4, "thread": 4, "protect": [4, 13], "memori": [4, 13], "buffer": [4, 24], "control_toolbox": [4, 24], "second": [4, 9, 13, 24], "frequenc": 4, "high": 4, "rate": [4, 20], "khz": 4, "variou": 4, "anoth": 4, "heartbeat": 4, "signal": 4, "sent": 4, "onc": [4, 5], "per": [4, 15], "500": 4, "hz": 4, "failur": 4, "relev": [4, 24], "draft": 4, "trigger": 4, "skill": 4, "prefer": 4, "c": [4, 6, 9, 13], "trick": 4, "mentor": 4, "benc": [4, 5], "magyar": [4, 5], "deni": [4, 5], "\u0161togl": [4, 5], "size": 4, "350": 4, "hour": 4, "difficulti": 4, "about": [4, 8, 24], "org": 4, "gener": [4, 5, 13, 20, 24], "envis": 4, "simul": [4, 8, 10], "gazebo": 4, "ignit": 4, "showcas": [4, 5], "grace": 4, "degrad": 4, "architectur": [4, 5], "roadmap": [4, 24], "place": [4, 13, 20], "gpio": 4, "mode": [4, 20], "switch": [4, 9], "movement": 4, "safeti": 4, "familiar": [4, 24], "medium": 4, "focus": [4, 5], "although": 4, "easi": 4, "therefor": [4, 13, 18, 20], "often": [4, 8, 13], "orchestr": 4, "purpos": 4, "conductor": 4, "scenario": 4, "appropri": 4, "moment": 4, "right": 4, "replac": 4, "level": [4, 5, 14, 16, 20, 21, 23], "moveit2": [4, 5], "simplecontrollermanag": 4, "form": 4, "behavior": [4, 8], "benchmark": 4, "statu": [4, 9, 20], "publish": [4, 11, 15, 17, 18, 20, 22, 24], "topic": [4, 5, 20], "format": 4, "preset": 4, "modul": 4, "specif": [4, 20], "reli": 4, "doubl": [4, 8, 20], "desir": [4, 20], "howev": [4, 6], "both": [4, 5], "improv": 4, "readabl": 4, "earlier": 4, "concept": [4, 5, 8, 10], "were": 4, "introduc": [4, 5], "essenti": 4, "group": [4, 20, 24], "instanc": 4, "imu": [4, 12], "typic": [4, 20], "9": 4, "axi": [4, 15], "aceleromet": 4, "gyroscop": 4, "compass": 4, "respect": [4, 5], "Such": 4, "struct": 4, "low": [4, 5], "profil": 4, "intern": [4, 20], "addition": [4, 24], "few": [4, 5], "pull": 4, "45": 4, "tree": 4, "semantic_compon": 4, "175": 4, "rewrit": [4, 24], "ros_control": [4, 5, 24], "rich": 4, "wa": [4, 13], "motiv": 4, "adopt": 4, "port": 4, "most": [4, 13], "quit": 4, "miss": 4, "diff_drive_control": [4, 9], "joint_trajectory_control": [4, 9], "consist": [4, 20, 24], "identifi": 4, "much": [4, 13], "303": 4, "304": 4, "stretch": 4, "realtime_tool": [4, 24], "81": 4, "302": 4, "unit": 4, "gmock": 4, "cc": 5, "BY": 5, "licens": 5, "author": 5, "either": 5, "down": 5, "below": 5, "my": 5, "company_nam": 5, "tricycl": [5, 12, 22], "control": [5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24], "event": 5, "pixel": 5, "prefac": 5, "introduct": [5, 20], "johann": 5, "plapp": 5, "toni": 5, "najjar": 5, "kernel": 5, "hardwar": [5, 6, 8, 10, 12, 13, 22, 24], "agnost": 5, "share": [5, 13], "well": [5, 9, 20], "perform": 5, "heavi": 5, "dr": 5, "stogl": 5, "consult": 5, "practition": 5, "guid": [5, 13], "top": 5, "virtual": 5, "talk": 5, "delv": 5, "deeper": 5, "what": 5, "explicit": [5, 20], "chain": 5, "emerg": 5, "handler": 5, "mock": 5, "usag": [5, 6, 9], "openli": 5, "record": 5, "fiveai": 5, "ltd": 5, "best": [5, 13], "focu": 5, "becom": 5, "util": 5, "3rd": 5, "parti": 5, "nav2": 5, "practic": 5, "tip": 5, "hot": 5, "shown": 5, "furthermor": 5, "get": [5, 24], "reus": 5, "inject": 5, "offer": [5, 6], "expos": 5, "problem": [5, 24], "manipul": [5, 20], "path": 5, "plan": [5, 24], "autonom": 5, "navig": 5, "ideal": [5, 8], "made": 5, "mobil": [5, 11, 22], "arm": 5, "extra": [5, 18], "readi": [5, 13], "power": 5, "studi": 5, "ur": 5, "With": 5, "moveit": [5, 8], "ingredi": 5, "scale": 5, "factor": 5, "teach": 5, "pendant": 5, "influenc": 5, "picknik": 5, "inc": 5, "nathan": 5, "brook": 5, "lovro": 5, "ivanov": 5, "andi": 5, "zelenak": 5, "rune": 5, "s\u00f8e": 5, "knudsen": 5, "onlin": [5, 13], "trajectori": [5, 12, 24], "admitt": 5, "One": 5, "reason": 5, "upgrad": 5, "ros1": 5, "better": 5, "realtim": [5, 11, 20, 22, 24], "contact": 5, "insert": 5, "singl": 5, "waypoint": [5, 12, 20], "mani": [5, 13], "teleoper": 5, "involv": 5, "kinemat": 5, "acceler": [5, 10, 11, 12, 20, 22], "jerk": [5, 11, 22], "obei": 5, "demo": 5, "booth": 5, "zeleank": 5, "unifi": 5, "life": 5, "cycl": 5, "go": [5, 13], "_control": 5, "wild": 5, "materi": 5, "quick": 5, "overview": 5, "layer": 5, "aka": 5, "systemcompon": 5, "forward": [5, 8, 12, 20, 24], "done": [5, 13], "look": 5, "modifi": 5, "simpli": [5, 20], "net": 5, "edit": 5, "collect": [5, 14, 16, 21, 23], "semant": [5, 15, 17], "world": [6, 8], "startup": 6, "h": [6, 9, 13, 19], "p": 6, "param_fil": 6, "controller_typ": 6, "timeout": [6, 9, 22], "controller_manager_timeout": 6, "controller_nam": [6, 9, 13], "argument": [6, 9], "exit": [6, 9], "leav": 6, "unconfigur": 6, "namespac": [6, 12, 13, 18, 20], "kill": [6, 9], "wait": [6, 9], "until": 6, "doxygen": 7, "fake": 7, "mirror": 8, "correspond": [8, 13, 24], "offlin": 8, "advantag": 8, "pipe": 8, "insid": 8, "broadcast": [8, 18, 19], "even": 8, "debug": 8, "boost": 8, "mimic": 8, "offset": [8, 20], "fake_sensor_command": 8, "boolean": [8, 18, 20], "fals": [8, 18, 20], "position_state_following_offset": 8, "custom_interface_with_following_offset": 8, "map": [8, 20], "multipli": 8, "mimick": 8, "deprec": [9, 12], "configure_control": 9, "configure_start_control": 9, "load_configure_control": 9, "load_start_control": 9, "spin": 9, "spin_tim": 9, "hidden": 9, "discoveri": 9, "appli": 9, "alreadi": [9, 13, 20], "daemon": 9, "test_controller_nam": 9, "test_control": 9, "diffdrivecontrol": 9, "joint_state_control": [9, 10], "jointstatecontrol": 9, "unclaim": [9, 10], "set_stat": 9, "reload": 9, "adjust": 9, "strict": 9, "asap": 9, "switch_timeout": 9, "templat": [10, 13, 20], "demonstr": 10, "prove": 10, "comprehens": 10, "ros2_control_demo_bringup": 10, "gui": 10, "ros2_control_test_nod": 10, "rrbot_system_multi_interfac": 10, "py": 10, "list_hardware_interfac": 10, "load_control": 10, "forward_command_controller_posit": 10, "forward_command_controller_veloc": 10, "forward_command_controller_acceler": 10, "forward_command_controller_illegal1": 10, "forward_command_controller_illegal2": 10, "set_controller_st": 10, "claim": 10, "now": [10, 13], "let": 10, "switch_control": 10, "again": 10, "inde": 10, "been": [10, 19], "differenti": [11, 12, 19, 24], "drive": [11, 12, 22, 24], "bodi": 11, "translat": [11, 22], "wheel": 11, "odometri": [11, 22], "comput": [11, 22], "feedback": [11, 20, 22], "twist": [11, 22], "x": [11, 15, 17, 22], "linear": [11, 20, 22], "z": [11, 15, 22], "angular": [11, 22], "ignor": [11, 20, 22], "space": [11, 20], "sort": [12, 13], "accord": [12, 20], "position_control": [12, 20], "hw_if_posit": 12, "velocity_control": 12, "hw_if_veloc": 12, "effort_control": 12, "hw_if_effort": 12, "interpol": [12, 20], "step": [13, 20, 24], "compil": 13, "rule": 13, "prepar": 13, "ament_cmak": 13, "easiest": 13, "search": 13, "recent": 13, "process": 13, "pkg": 13, "flag": [13, 20], "least": [13, 20], "cmakelist": 13, "txt": 13, "package_nam": 13, "hpp": 13, "visibility_control": 13, "window": 13, "copi": 13, "prefix": [13, 15, 17], "guard": 13, "ifndef": 13, "preprocessor": 13, "engin": 13, "friend": 13, "uniqu": 13, "written": 13, "snake_cas": 13, "controllernam": 13, "public": 13, "overrid": 13, "exact": 13, "vector": 13, "store": 13, "simplifi": [13, 24], "further": 13, "parent": 13, "reserv": 13, "importantli": 13, "fine": 13, "return": 13, "return_typ": 13, "ok": 13, "otherwis": 13, "individu": 13, "none": 13, "ask": 13, "full": 13, "joint_nam": [13, 20], "interface_typ": 13, "assign": 13, "opposit": 13, "empti": 13, "constraint": [13, 20], "At": 13, "close": 13, "class_list_macro": 13, "controller_name_namespac": 13, "visibl": 13, "controller_name_packag": 13, "bottom": 13, "test_load_": 13, "content": 13, "last": [13, 20], "specifi": [13, 20], "find_packag": 13, "rclcpp": 13, "rclcpp_lifecycl": 13, "directori": 13, "ament": 13, "cmake": 13, "pluginlib_export_plugin_description_fil": 13, "ament_cmake_gmock": 13, "ros2_control_test_asset": 13, "ament_add_gmock": 13, "ament_export_librari": 13, "ament_packag": 13, "test_depend": 13, "colcon": 13, "rememb": 13, "root": 13, "success": 13, "bash": 13, "enjoi": 13, "great": 13, "shell": 13, "mai": [14, 16, 21, 23], "certain": [14, 16, 21, 23], "achiev": [14, 16, 21, 23], "These": [14, 16, 21, 23], "geometry_msg": 15, "msg": [15, 17, 20], "wrenchstamp": 15, "wrapper": [15, 17], "forcetorquesensor": 15, "sensor_nam": [15, 17], "interface_nam": 15, "frame": [15, 17], "6d": 15, "ft": 15, "y": 15, "less": 15, "six": 15, "ax": 15, "example_nam": 15, "example_interfac": 15, "sensor_msg": 17, "imusensor": 17, "orient": 17, "angular_veloc": 17, "linear_acceler": 17, "joint_stat": 18, "dynamic_joint_st": 18, "use_local_top": 18, "my_state_broadcast": 18, "extra_joint": 18, "arrai": 18, "renam": 19, "joint_state_broadcast": 19, "order": 19, "true": [19, 20], "remov": 19, "turtl": 19, "reach": 20, "instant": 20, "attempt": 20, "mechan": 20, "By": 20, "spline": 20, "guarante": 20, "continu": 20, "discourag": 20, "becaus": 20, "yield": 20, "discontinu": 20, "cubic": 20, "quintic": 20, "pid": [20, 24], "similarli": 20, "eg": 20, "proxi": 20, "wrap": 20, "robust": 20, "clock": 20, "caus": 20, "queu": 20, "segment": 20, "ros__paramet": 20, "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "state_publish_r": 20, "action_monitor_r": 20, "20": 20, "allow_partial_joints_go": 20, "open_loop_control": 20, "stopped_velocity_toler": 20, "01": 20, "goal_tim": 20, "05": [20, 24], "03": 20, "monitor": 20, "action": 20, "control_msg": [20, 24], "followjointtrajectori": 20, "hydraul": 20, "tri": 20, "numer": 20, "nan": 20, "std": 20, "numeric_limit": 20, "quiet_nan": 20, "toler": 20, "jointtrajectori": 20, "deviat": 20, "maxim": 20, "predefin": 20, "joint_trajectori": 20, "trajectory_msg": 20, "jointtrajectorycontrollerst": 20, "follow_joint_trajectori": 20, "server": 20, "position_velocity_control": 20, "position_velocity_acceleration_control": 20, "Not": 20, "yet": 20, "feedforward": 20, "term": [20, 24], "plu": 20, "171": 20, "base_link": 22, "traction": 22, "steer": 22, "Its": 24, "oper": 24, "overcom": 24, "idea": 24, "wide": 24, "toolkit": 24, "unreleas": 24, "smooth": 24, "doc": 24, "wg": 24, "meet": 24, "everi": 24, "wednesdai": 24, "join": 24, "announc": 24, "discours": 24, "googl": 24, "propos": 24, "previou": 24, "bug": 24, "tracker": 24, "minim": 24, "reproduc": 24, "regard": 24, "etc": 24, "question": 24, "answer": 24, "2023": 24, "12": 24, "31": 24, "built": 24, "gmt": 24}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 10], "process": 1, "merg": 1, "write": [1, 13], "document": [1, 7, 24], "structur": [1, 2], "ci": 1, "configur": 1, "differ": 2, "ros_control": 2, "ros1": [2, 4], "hardwar": [2, 3, 4, 11, 14, 16, 18, 20, 21, 23], "class": 2, "interfac": [2, 3, 9, 11, 14, 16, 18, 20, 21, 23], "control": [2, 3, 4, 6, 12, 13, 20], "": [2, 20], "access": 2, "migrat": 2, "guid": 2, "ros2_control": [2, 4, 12, 24], "robothardwar": 2, "compon": [2, 3, 4, 8], "get": 3, "start": 3, "compil": 3, "architectur": 3, "manag": [3, 6], "resourc": [3, 5], "user": 3, "descript": 3, "urdf": 3, "run": 3, "framework": 3, "your": 3, "robot": [3, 5], "project": 4, "idea": 4, "gsoc": 4, "2022": [4, 5], "asynchron": 4, "tutori": 4, "demo": [4, 10], "mission": 4, "add": 4, "support": 4, "semant": 4, "featur": [4, 7, 11, 20, 22], "pariti": 4, "from": 4, "present": 5, "2023": 5, "02": 5, "ro": 5, "meetup": 5, "munich": 5, "5": 5, "12": 5, "industri": 5, "confer": 5, "10": 5, "roscon": 5, "06": 5, "fr": 5, "2021": 5, "world": 5, "07": 5, "weekli": 5, "13": 5, "rosdevdai": 5, "05": 5, "diagram": 5, "imag": 5, "helper": 6, "script": 6, "spawner": 6, "py": 6, "unspawn": 6, "api": 7, "core": 7, "function": 7, "concept": 7, "fake": 8, "gener": 8, "system": 8, "paramet": [8, 15, 17, 18, 20], "per": 8, "joint": [8, 20], "command": [9, 11, 18, 22], "line": 9, "list_control": 9, "list_controller_typ": 9, "list_hardware_interfac": 9, "load_control": 9, "reload_controller_librari": 9, "set_controller_st": 9, "switch_control": 9, "unload_control": 9, "organ": 10, "mode": 10, "switch": 10, "diff_drive_control": 11, "veloc": [11, 22], "type": [11, 14, 16, 18, 20, 21, 23], "other": [11, 20, 22], "nomenclatur": 12, "guidelin": 12, "best": 12, "practic": 12, "avail": 12, "broadcast": [12, 15, 17], "new": 13, "us": [13, 20], "extern": 13, "refer": 13, "effort_control": 14, "forc": 15, "torqu": 15, "sensor": [15, 17], "forward_command_control": 16, "imu": 17, "joint_state_broadcast": 18, "joint_state_control": 19, "joint_trajectory_control": 20, "trajectori": 20, "represent": 20, "detail": 20, "about": 20, "ros2": 20, "special": 20, "version": 20, "jointtrajectorycontrol": 20, "tbd": 20, "position_control": 21, "tricycle_control": 22, "velocity_control": 23, "welcom": 24, "foxi": 24, "overview": 24, "develop": 24, "organis": 24, "commun": 24}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "Getting Started": [[3, "getting-started"]], "Compiling": [[3, "compiling"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"], [12, "id1"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Resources": [[5, "resources"]], "Presentations": [[5, "presentations"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "Diagrams": [[5, "diagrams"]], "Images": [[5, "images"]], "Helper scripts": [[6, "helper-scripts"]], "spawner.py": [[6, "spawner-py"]], "unspawner.py": [[6, "unspawner-py"]], "API Documentation": [[7, "api-documentation"]], "Core functionalities": [[7, "core-functionalities"]], "Features": [[7, "features"]], "Concepts": [[7, "concepts"]], "Fake Components": [[8, "fake-components"]], "Generic System": [[8, "generic-system"]], "Parameters": [[8, "parameters"], [15, "parameters"], [17, "parameters"], [18, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Command Line Interface": [[9, "command-line-interface"]], "list_controllers": [[9, "list-controllers"]], "list_controller_types": [[9, "list-controller-types"]], "list_hardware_interfaces": [[9, "list-hardware-interfaces"]], "load_controller": [[9, "load-controller"]], "reload_controller_libraries": [[9, "reload-controller-libraries"]], "set_controller_state": [[9, "set-controller-state"]], "switch_controllers": [[9, "switch-controllers"]], "unload_controller": [[9, "unload-controller"]], "Demos": [[10, "demos"]], "Repository organization": [[10, "repository-organization"]], "Mode switching demo": [[10, "mode-switching-demo"]], "diff_drive_controller": [[11, "diff-drive-controller"]], "Velocity commands": [[11, "velocity-commands"], [22, "velocity-commands"]], "Hardware interface type": [[11, "hardware-interface-type"], [14, "hardware-interface-type"], [16, "hardware-interface-type"], [18, "hardware-interface-type"], [20, "hardware-interface-type"], [21, "hardware-interface-type"], [23, "hardware-interface-type"]], "Other features": [[11, "other-features"], [20, "other-features"], [22, "other-features"]], "ros2_controllers": [[12, "ros2-controllers"]], "Nomenclature": [[12, "nomenclature"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"]], "Available Controllers": [[12, "available-controllers"]], "Available Broadcasters": [[12, "available-broadcasters"]], "Writing a new controller": [[13, "writing-a-new-controller"]], "Useful External References": [[13, "useful-external-references"]], "effort_controllers": [[14, "effort-controllers"]], "Force Torque Sensor Broadcaster": [[15, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[16, "forward-command-controller"]], "IMU Sensor Broadcaster": [[17, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[18, "joint-state-broadcaster"]], "Commands": [[18, "commands"]], "joint_state_controller": [[19, "joint-state-controller"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "Trajectory representation": [[20, "trajectory-representation"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Details about parameters": [[20, "details-about-parameters"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "position_controllers": [[21, "position-controllers"]], "tricycle_controller": [[22, "tricycle-controller"]], "velocity_controllers": [[23, "velocity-controllers"]], "Welcome to the ros2_control documentation - Foxy!": [[24, "welcome-to-the-ros2-control-documentation-foxy"]], "Overview": [[24, "overview"]], "Development Organisation and Communication": [[24, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/galactic/.buildinfo b/galactic/.buildinfo index ff98a2fa5c3..dcdf69f84fe 100644 --- a/galactic/.buildinfo +++ b/galactic/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 67a256d0f516ed48ae86fe83708acd38 +config: d8c154f1f9f90f4de25ded7260ce5901 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree b/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree index a9b56b94fbe..8db1cda686d 100644 Binary files a/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree and b/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree differ diff --git a/galactic/.doctrees/doc/contributing/contributing.doctree b/galactic/.doctrees/doc/contributing/contributing.doctree index 2100ae0baf8..5fb1557900f 100644 Binary files a/galactic/.doctrees/doc/contributing/contributing.doctree and b/galactic/.doctrees/doc/contributing/contributing.doctree differ diff --git a/galactic/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree b/galactic/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree index 4d55af8b909..5b77b51115c 100644 Binary files a/galactic/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree and b/galactic/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree differ diff --git a/galactic/.doctrees/doc/getting_started/getting_started.doctree b/galactic/.doctrees/doc/getting_started/getting_started.doctree index e0dfca588ce..00786990f13 100644 Binary files a/galactic/.doctrees/doc/getting_started/getting_started.doctree and b/galactic/.doctrees/doc/getting_started/getting_started.doctree differ diff --git a/galactic/.doctrees/doc/project_ideas.doctree b/galactic/.doctrees/doc/project_ideas.doctree index 2fc93a86f57..ad096403cf4 100644 Binary files a/galactic/.doctrees/doc/project_ideas.doctree and b/galactic/.doctrees/doc/project_ideas.doctree differ diff --git a/galactic/.doctrees/doc/resources/resources.doctree b/galactic/.doctrees/doc/resources/resources.doctree index 237bd039beb..a11dd7f2c44 100644 Binary files a/galactic/.doctrees/doc/resources/resources.doctree and b/galactic/.doctrees/doc/resources/resources.doctree differ diff --git a/galactic/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree index 12394fceb19..ec06bb8936c 100644 Binary files a/galactic/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree and b/galactic/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_control/doc/index.doctree b/galactic/.doctrees/doc/ros2_control/doc/index.doctree index 4f470a2e47e..b041997e15d 100644 Binary files a/galactic/.doctrees/doc/ros2_control/doc/index.doctree and b/galactic/.doctrees/doc/ros2_control/doc/index.doctree differ diff --git a/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/fake_components_userdoc.doctree b/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/fake_components_userdoc.doctree index f8e5979ec19..f64074ea1e7 100644 Binary files a/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/fake_components_userdoc.doctree and b/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/fake_components_userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree b/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree index 07b4f1079ba..a8ded19906f 100644 Binary files a/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree and b/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index 592426da9fb..c17029cebd1 100644 Binary files a/galactic/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree and b/galactic/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_control_demos/doc/index.doctree b/galactic/.doctrees/doc/ros2_control_demos/doc/index.doctree index 5333b84f4e7..8bd8f50dea5 100644 Binary files a/galactic/.doctrees/doc/ros2_control_demos/doc/index.doctree and b/galactic/.doctrees/doc/ros2_control_demos/doc/index.doctree differ diff --git a/galactic/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree index 5e10d562319..6f53a3e3dd7 100644 Binary files a/galactic/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree and b/galactic/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/galactic/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index 861e3bbf2bd..2f17ba97d94 100644 Binary files a/galactic/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree and b/galactic/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree differ diff --git a/galactic/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree b/galactic/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree index 676a1a24902..39520b270bd 100644 Binary files a/galactic/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree and b/galactic/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree differ diff --git a/galactic/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree index 0ff1d6fb8b1..83d4a685121 100644 Binary files a/galactic/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree and b/galactic/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree index ebce7f8d157..60e2880084d 100644 Binary files a/galactic/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree and b/galactic/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree index 82ef341bf57..e29baa8a7e2 100644 Binary files a/galactic/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree and b/galactic/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree index 34282ab231c..7a89267d40a 100644 Binary files a/galactic/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree and b/galactic/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree index f1ee3937434..767427d61b6 100644 Binary files a/galactic/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree and b/galactic/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree index 1c2addfd6e1..5361cd23dd2 100644 Binary files a/galactic/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree and b/galactic/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree index 2b92d1cfac1..86f9e0ca622 100644 Binary files a/galactic/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree and b/galactic/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree differ diff --git a/galactic/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree index 47e6fe15144..0c5353c2f8a 100644 Binary files a/galactic/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree and b/galactic/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree differ diff --git a/galactic/.doctrees/environment.pickle b/galactic/.doctrees/environment.pickle index 28a435c2360..99de2942ac2 100644 Binary files a/galactic/.doctrees/environment.pickle and b/galactic/.doctrees/environment.pickle differ diff --git a/galactic/.doctrees/index.doctree b/galactic/.doctrees/index.doctree index 9407954f5ae..01d2f1b2cc2 100644 Binary files a/galactic/.doctrees/index.doctree and b/galactic/.doctrees/index.doctree differ diff --git a/galactic/index.html b/galactic/index.html index 89cdc325a5c..30f3813caf2 100644 --- a/galactic/index.html +++ b/galactic/index.html @@ -152,7 +152,7 @@Built on 2023-12-30 at 05:31 GMT
+Built on 2023-12-31 at 05:31 GMT
diff --git a/galactic/searchindex.js b/galactic/searchindex.js index 504a368b838..14ab41e4499 100644 --- a/galactic/searchindex.js +++ b/galactic/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/getting_started/getting_started", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/getting_started/getting_started.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "index.rst"], "titles": ["Acknowledgements", "Pull Requests", "Differences to ros_control (ROS1)", "Getting Started", "Project Ideas for GSoC 2022", "Resources", "Controller Manager", "API Documentation", "Fake Components", "Hardware Components", "Command Line Interface", "Demos", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "joint_trajectory_controller", "position_controllers", "velocity_controllers", "Welcome to the ros2_control documentation - Galactic!"], "terms": {"The": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23], "project": [0, 1, 23], "ha": [0, 1, 3, 4, 5, 14, 19], "receiv": [0, 2], "major": 0, "contribut": [0, 1, 5], "from": [0, 1, 2, 3, 5, 6, 8, 10, 12, 14, 16, 18, 20, 23], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 11, 13, 14, 20, 23], "compani": [0, 5], "institut": 0, "support": [0, 2, 3, 5, 8, 10, 14, 19, 20, 23], "rosin": 0, "ro": [0, 1, 3, 4, 6, 8, 10, 23], "industri": [0, 3, 4], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 11, 12, 16, 19, 23], "softwar": [0, 3], "compon": [0, 5, 6, 7, 12, 16, 18, 23], "more": [0, 1, 2, 3, 4, 8, 14], "inform": [0, 8, 14, 23], "http": [0, 1, 3, 4, 6], "eu": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 17, 20, 21, 22, 23], "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 4, 5, 11, 14, 23], "horizon": 0, "2020": 0, "research": [0, 5], "innov": 0, "programm": 0, "under": [0, 5, 14, 23], "grant": 0, "agreement": 0, "732287": 0, "first": [1, 2, 9, 14], "thank": 1, "you": [1, 2, 3, 5, 6, 8, 9, 14, 23], "consid": [1, 10], "ros2_control": [1, 3, 5, 6, 8, 9, 11, 14], "As": [1, 14], "an": [1, 2, 3, 4, 5, 8, 10, 14, 19, 20], "open": [1, 19, 20], "sourc": [1, 3, 5, 14], "we": [1, 4, 5, 9, 19], "welcom": 1, "each": [1, 3, 4, 9, 19], "contributor": 1, "regardless": 1, "background": 1, "experi": 1, "To": [1, 2, 3, 6, 19, 23], "reduc": [1, 8], "entropi": 1, "univers": [1, 4, 5], "our": [1, 3, 4, 5], "vivid": 1, "collabor": 1, "environ": [1, 3, 5], "have": [1, 2, 3, 4, 6, 8, 9, 11, 14, 19, 20], "set": [1, 2, 4, 5, 6, 8, 9, 10, 11, 15, 17, 19, 20, 21, 22], "up": [1, 5, 11], "some": [1, 4, 5, 19, 20, 23], "standard": [1, 2, 3, 4, 5, 10, 13, 16, 19], "method": [1, 2, 3, 9, 14], "requir": [1, 2, 3, 4, 14], "ar": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 18, 19, 20, 23], "limit": [1, 4, 5, 12], "scope": 1, "your": [1, 2, 5, 8, 14, 23], "pr": 1, "should": [1, 2, 4, 5, 6, 9, 10, 11, 14, 19], "do": [1, 2, 3, 4, 5, 6, 14, 20], "one": [1, 2, 3, 4, 5, 14, 16, 19, 23], "thing": 1, "avoid": [1, 14], "ad": [1, 4, 8, 14, 19], "random": 1, "fix": [1, 2], "put": [1, 14], "those": [1, 2, 3, 4, 8, 14, 16, 19, 20], "separ": [1, 2, 3, 19], "give": [1, 3, 5, 23], "descript": [1, 2, 5, 9, 14], "titl": 1, "add": [1, 2, 9, 14], "short": [1, 14, 23], "summari": [1, 5, 23], "make": [1, 2, 4, 5, 6, 23], "sure": [1, 4, 23], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "green": 1, "don": 1, "t": [1, 6], "afraid": 1, "review": [1, 4, 23], "maintain": [1, 3, 4], "new": [1, 5, 13, 20, 23], "code": [1, 2, 4, 5, 14], "test": [1, 4, 8, 11, 14], "If": [1, 2, 3, 6, 9, 14, 16, 19, 20, 23], "function": [1, 2, 3, 4, 5, 6], "alwai": 1, "exercis": 1, "serv": [1, 3, 4], "live": [1, 5], "origin": [1, 5], "intent": [1, 8], "section": [1, 2, 14], "target": [1, 13, 14, 20], "also": [1, 2, 3, 4, 5, 14], "read": [1, 2, 3, 14, 19, 20], "understand": [1, 4], "how": [1, 4, 5, 14], "handl": [1, 2, 4, 5, 20], "organ": [1, 5, 23], "guidelin": 1, "especi": [1, 2], "applic": [1, 3, 5, 6], "ros2_control_demo": [1, 3, 23], "pleas": [1, 23], "keep": [1, 14], "mind": [1, 14], "work": [1, 4, 5, 12, 14, 15, 17, 19, 20, 21, 22, 23], "fork": 1, "when": [1, 2, 3, 4, 6, 8, 10, 14, 20], "submit": [1, 5], "That": [1, 14], "wai": [1, 14, 16], "main": [1, 3, 4, 5, 6, 8, 14, 23], "repo": [1, 3], "clean": [1, 4], "featur": [1, 5, 8, 23], "branch": 1, "all": [1, 2, 3, 4, 5, 8, 9, 11, 14, 19, 20], "check": [1, 2, 3, 4, 8, 9, 11, 14, 20, 23], "satisfi": 1, "befor": [1, 2, 6, 14], "thei": [1, 2, 3, 4, 5, 8, 10, 13, 14, 20], "can": [1, 2, 3, 4, 5, 7, 8, 9, 14, 16, 20, 23], "must": 1, "approv": 1, "two": [1, 3, 4, 6, 14, 16], "explicitli": 1, "onli": [1, 2, 3, 4, 5, 6, 9, 10, 14, 16, 19, 20], "except": 1, "other": [1, 2, 3, 5, 14, 19], "activ": [1, 2, 3, 10, 19], "where": [1, 4, 14, 19], "back": 1, "traceabl": 1, "discuss": [1, 5, 23], "suffici": [1, 16], "note": [1, 3, 11, 23], "still": [1, 2, 3], "encourag": 1, "help": [1, 6, 10, 14], "u": [1, 6], "increas": 1, "pace": 1, "veri": [1, 2, 4], "like": [1, 2, 3, 4, 5], "find": 1, "issu": [1, 4, 23], "nobodi": 1, "els": 1, "see": [1, 2, 3, 11, 14, 16, 18, 20], "squash": 1, "commit": 1, "messag": [1, 4, 6, 10, 16, 18, 19, 20, 23], "comment": 1, "fixup": 1, "linter": 1, "us": [1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 15, 16, 17, 18, 19, 21, 22, 23], "pre": 1, "correct": [1, 2, 20], "header": [1, 9, 14], "address": [1, 4], "similar": [1, 3, 5], "mean": [1, 2, 8], "result": [1, 3, 19], "exactli": 1, "1": [1, 3, 4, 5, 8, 14], "cowboi": 1, "style": [1, 14], "over": [1, 4], "weekend": 1, "It": [1, 2, 3, 4, 6, 16, 19], "doesn": 1, "matter": 1, "trivial": [1, 8], "peopl": 1, "chanc": 1, "proper": [1, 20], "Be": 1, "awar": 1, "impact": 1, "time": [1, 2, 4, 5, 6, 8, 10, 12, 14, 16, 20, 23], "proport": 1, "its": [1, 2, 3, 4, 5, 6, 16, 18, 19], "ping": 1, "them": [1, 3, 4, 6, 14, 19], "necessari": [1, 9], "repeatedli": 1, "start": [1, 2, 5, 6, 9, 10, 11, 14, 20, 23], "part": [1, 4, 5, 14], "For": [1, 3, 4, 5, 6, 8, 9, 14, 20], "detail": [1, 2, 3, 8, 9, 14], "thoma": 1, "cokela": 1, "info": [1, 9], "tutori": 1, "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 5, 6, 9, 10, 13, 14, 16, 18], "develop": [1, 5, 8, 11, 14], "stabl": [1, 4], "against": 1, "accept": [1, 14, 15, 17, 21, 22], "api": [1, 4], "abi": 1, "chang": [1, 2, 3, 5, 9, 10, 14, 20], "e": [1, 2, 3, 4, 5, 8, 14, 15, 16, 17, 19, 20, 21, 22, 23], "name": [1, 2, 3, 5, 6, 8, 10, 14, 16, 18, 19, 20], "convent": 1, "master": [1, 3, 4], "semi": 1, "binari": 1, "good": [1, 4], "same": [1, 3, 4, 16], "build": [1, 14], "dai": 1, "2": [1, 3, 5, 8], "ros_distro": 1, "g": [1, 2, 3, 4, 5, 8, 14, 15, 17, 19, 21, 22, 23], "foxi": [1, 3, 5], "galact": 1, "releas": [1, 3, 5, 6], "version": [1, 4], "non": [1, 5, 16], "brake": 1, "distribut": [1, 23], "three": [1, 2, 3, 9, 14], "stage": 1, "current": [1, 4, 9, 10, 20], "futur": [1, 5], "compat": [1, 2, 5], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 11, 13, 14, 19, 23], "packag": [1, 2, 3, 6, 9, 11, 14, 16, 18, 20, 23], "show": [1, 3, 5, 6, 9, 10, 19], "direct": [1, 2, 4, 14], "local": [1, 19], "possibl": [1, 3, 4, 6, 14, 20], "core": 1, "immedi": 1, "depend": [1, 3, 9, 14, 20], "fail": 1, "expect": [1, 4, 20], "after": [1, 12, 14], "next": [1, 20], "sync": 1, "abl": 1, "potenti": [1, 14], "mid": 1, "robothw": 2, "rigid": 2, "ani": [2, 3, 5, 9, 14], "imposs": 2, "extend": [2, 3, 4, 14], "exist": [2, 3, 4, 6, 9, 14], "addit": [2, 4], "sensor": [2, 3, 4, 8, 9, 13], "actuat": [2, 3, 4, 8, 9], "tool": [2, 4, 5], "without": [2, 3, 8, 14], "combinedrobothardwar": 2, "drawback": [2, 23], "solut": [2, 5], "optim": [2, 6], "combin": [2, 8, 19, 20], "extern": [2, 3, 4, 8], "defin": [2, 3, 4, 8, 13, 14, 16, 18, 19, 20], "system": [2, 3, 4, 5, 9, 11, 20, 23], "composit": [2, 5], "basic": [2, 3, 4, 5, 14], "physic": [2, 3, 8, 9], "cell": [2, 16], "surround": 2, "describ": [2, 3], "multi": [2, 3, 4, 5, 11], "gripper": [2, 3, 8], "out": [2, 12], "box": 2, "allow": [2, 20], "joint": [2, 3, 5, 12, 13, 14, 15, 17, 19, 21, 22, 23], "posit": [2, 3, 5, 6, 10, 11, 13, 15, 17, 19, 20, 21, 22], "veloc": [2, 3, 5, 11, 13, 19, 20, 21, 22], "effort": [2, 13, 15, 17, 19, 20], "hard": [2, 4], "data": [2, 3, 4, 8, 19], "approach": 2, "doe": [2, 14, 20], "enforc": [2, 20], "string": [2, 8, 14, 19, 20], "ensur": [2, 5], "constant": 2, "hardware_interfac": [2, 3, 8, 9, 13, 14], "In": [2, 3, 4, 5, 14, 19], "had": 2, "request": [2, 19, 23], "itself": 2, "took": 2, "care": [2, 4, 14], "regist": 2, "resourc": 2, "conflict": [2, 3, 4], "resourcemanag": 2, "take": [2, 4, 14, 19], "state": [2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16, 19, 20], "avail": [2, 3, 5, 10, 11, 14, 19, 20], "enabl": [2, 3, 4, 5, 6, 9, 11, 16], "anymor": 2, "controllermanag": 2, "implement": [2, 3, 4, 5, 8, 11, 12, 13, 14, 20, 23], "systeminterfac": [2, 8], "granular": 2, "sensorinterfac": 2, "actuatorinterfac": 2, "abov": [2, 20], "choos": 2, "suitabl": [2, 5], "strategi": [2, 20], "decid": 2, "which": [2, 3, 4, 5, 10, 12, 14, 16, 18, 19, 20], "case": [2, 4, 5, 14, 19, 20, 23], "mayb": 2, "sens": [2, 3, 16], "multipl": [2, 3, 19, 20], "constructor": [2, 14], "initi": [2, 14], "variabl": [2, 4, 14], "need": [2, 3, 4, 5, 14], "commun": [2, 3, 4, 5], "default": [2, 3, 8, 19, 20], "configur": [2, 3, 4, 5, 6, 9, 10, 11, 14, 19, 20], "paramet": [2, 5, 14], "pars": [2, 7], "urdf": 2, "snippet": 2, "hardwareinfo": 2, "here": [2, 7, 14, 20], "cross": [2, 19], "valu": [2, 3, 4, 8, 14, 19, 20], "export_": 2, "_interfac": 2, "joint_a2": 2, "extract": [2, 12], "sensibl": 2, "stop": [2, 5, 6, 9, 10, 11, 12], "usual": [2, 8, 14], "includ": [2, 4, 9, 10, 14], "command": [2, 3, 4, 5, 7, 8, 11, 13, 14, 15, 17, 20, 21, 22, 23], "safe": [2, 12, 14, 20], "interrupt": [2, 6], "stream": [2, 5], "write": [2, 3, 4, 5, 13], "exchang": [2, 4], "equival": 2, "forget": 2, "pluginlib_export_class": [2, 14], "macro": [2, 3, 14], "end": [2, 3, 9, 14, 20], "cpp": [2, 14], "file": [2, 3, 4, 5, 6, 8, 14, 20], "creat": [2, 3, 5, 8, 14], "xml": [2, 9, 14], "librari": [2, 3, 4, 10, 14], "pluginlib": [2, 3, 14], "exampl": [2, 3, 4, 5, 8, 10, 11, 16, 19, 20, 23], "rrbotsystempositiononlyhardwar": [2, 3], "excel": 2, "jointtrajectorycontrol": [2, 10], "real": [2, 4, 5, 6, 8, 14, 19, 20, 23], "critic": [2, 4], "mark": 2, "controllerinterfac": [2, 3, 10, 14], "member": [2, 14], "init": [2, 14], "call": [2, 3, 14], "lifecycl": [2, 3, 5, 6, 9], "declar": [2, 14], "state_interface_configur": [2, 14], "command_interface_configur": [2, 14], "design": [2, 3, 4, 5, 23], "updat": [2, 3, 4, 14], "manag": [2, 4, 5, 7, 9, 10, 14, 23], "option": [2, 6, 8, 9, 10, 14, 16, 19, 20], "on_configur": [2, 14], "on_activ": [2, 9, 14], "on_deactiv": [2, 9, 14], "deactiv": [2, 3], "final": [2, 5, 9], "joint_trajectory_plugin": 2, "ros2": [3, 4, 5, 6, 10, 11, 14, 23], "instal": [3, 6, 14], "automat": [3, 12], "want": [3, 6], "workspac": [3, 14], "folder": [3, 5, 14], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 4, 6], "vc": 3, "import": [3, 14, 20], "src": [3, 14], "found": [3, 7, 14, 20, 23], "github": [3, 4, 7, 13, 23], "repositori": [3, 4, 7, 13, 23], "figur": 3, "cm": 3, "connect": 3, "abstract": [3, 5, 9], "side": [3, 4, 5], "entri": [3, 14], "point": [3, 13, 14, 23], "through": [3, 4, 10, 12, 13, 14, 20, 23], "servic": [3, 4, 6, 9], "node": [3, 6, 8, 9, 10, 11, 14], "executor": 3, "so": [3, 14], "integr": [3, 4, 5, 8, 11, 20, 23], "custom": [3, 8, 16, 19], "setup": [3, 4, 14], "recommend": [3, 5], "ros2_control_nod": 3, "controller_manag": [3, 4, 6, 10, 14, 20], "manual": [3, 4, 14, 23], "assum": 3, "On": 3, "load": [3, 6, 10, 11, 14], "unload": [3, 6, 10], "access": [3, 4, 5, 6, 8, 14, 19], "match": 3, "provid": [3, 4, 5, 6, 8, 11, 13, 14, 19, 20, 23], "report": [3, 4, 19, 23], "error": [3, 4, 14, 19, 20], "execut": [3, 14, 20], "loop": [3, 5, 6, 14, 19, 20], "output": [3, 4, 5, 10, 16, 18, 20], "rm": 3, "driver": [3, 5], "re": 3, "usabl": 3, "flexibl": 3, "motor": [3, 4], "encod": 3, "deal": 3, "theori": [3, 23], "compar": [3, 4, 5], "refer": 3, "measur": [3, 8, 16, 19], "base": [3, 5, 9, 10, 12, 14], "calcul": 3, "input": [3, 4, 5, 12, 20], "visit": 3, "wikipedia": [3, 23], "object": 3, "deriv": 3, "controller_interfac": [3, 4, 10, 14, 16, 18], "export": [3, 14], "plugin": [3, 9, 14], "forwardcommandcontrol": 3, "lifecyclenod": 3, "class": [3, 5, 9, 10, 14], "machin": [3, 4], "document": [3, 4, 5, 8], "latest": 3, "interact": [3, 5, 6, 10], "list": [3, 5, 9, 10, 11, 13, 14, 20, 23], "definit": [3, 13, 14, 16], "srv": 3, "controller_manager_msg": 3, "while": [3, 4, 5, 11, 20], "directli": [3, 23], "line": [3, 7, 9, 14, 19], "via": 3, "friendli": 3, "cli": [3, 7, 10], "auto": 3, "complet": [3, 9, 13], "rang": 3, "common": [3, 4, 13, 19, 23], "capabl": [3, 4], "readm": 3, "md": 3, "ros2controlcli": 3, "realiz": [3, 5], "repres": [3, 9], "dynam": [3, 14], "There": [3, 6, 9, 14], "complex": [3, 4, 5], "dof": 3, "differ": [3, 4, 5, 15, 16, 17, 19, 21, 22], "between": [3, 4, 9, 19, 20], "transmiss": 3, "humanoid": 3, "hand": 3, "logic": 3, "channel": 3, "kuka": 3, "rsi": 3, "A": [3, 5, 14, 19, 20], "relat": [3, 4, 5], "link": [3, 5, 9], "forc": [3, 5, 10, 13], "torqu": [3, 13], "simpl": [3, 4, 5, 11, 14], "valv": 3, "mandatori": [3, 16, 18, 20], "dc": 3, "arduino": 3, "board": 3, "modular": [3, 5], "independ": 3, "explan": 3, "given": [3, 20], "tag": [3, 14, 23], "chosen": 3, "structur": [3, 4, 14, 20], "track": [3, 23], "togeth": 3, "xacro": 3, "hereund": 3, "rrbot": [3, 11], "parallel": [3, 8], "effector": 3, "rrbotsystempositiononli": 3, "ros2_control_demo_hardwar": [3, 11], "param": [3, 6, 8], "example_param_write_for_sec": 3, "example_param_read_for_sec": 3, "joint1": [3, 8, 10, 11, 20], "command_interfac": [3, 20], "min": 3, "max": 3, "state_interfac": [3, 20], "joint2": [3, 10, 11, 20], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "0": [3, 8, 19, 20], "43": 3, "tcp_fts_sensor": 3, "frame_id": [3, 16, 18], "rrbot_tcp": 3, "min_forc": 3, "100": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "23": 3, "3": [3, 4], "gripper_joint": 3, "50": [3, 6, 20], "yaml": [3, 4, 20], "instead": [3, 8, 20], "pure": [3, 20], "launch": [3, 6, 8, 11], "stack": [3, 5], "could": [3, 5, 14, 19, 20], "altern": [3, 20], "script": [3, 4, 14], "skeleton": 3, "orbit": 4, "around": [4, 16, 18], "everyth": [4, 14], "goal": [4, 5, 20, 23], "long": 4, "run": [4, 5, 6, 10], "task": [4, 5, 12], "interfac": [4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 18, 23], "user": 4, "thread": [4, 6], "protect": [4, 14], "memori": [4, 14], "buffer": [4, 23], "control_toolbox": [4, 23], "second": [4, 10, 14, 23], "frequenc": 4, "high": 4, "rate": [4, 20], "khz": 4, "variou": 4, "anoth": 4, "heartbeat": 4, "signal": 4, "sent": 4, "onc": [4, 5], "per": [4, 16], "500": 4, "hz": 4, "failur": [4, 9], "relev": [4, 23], "draft": 4, "trigger": 4, "skill": 4, "prefer": 4, "c": [4, 6, 10, 14], "trick": 4, "mentor": 4, "benc": [4, 5], "magyar": [4, 5], "deni": [4, 5], "\u0161togl": [4, 5], "size": 4, "350": 4, "hour": 4, "difficulti": 4, "about": [4, 8, 19, 23], "org": [4, 6], "gener": [4, 5, 14, 20, 23], "envis": 4, "simul": [4, 8, 11], "gazebo": 4, "ignit": 4, "showcas": [4, 5], "grace": 4, "degrad": 4, "architectur": [4, 5], "roadmap": [4, 23], "place": [4, 14, 20], "gpio": 4, "mode": [4, 20], "switch": [4, 10], "movement": 4, "safeti": 4, "familiar": [4, 23], "medium": 4, "focus": [4, 5], "although": [4, 9], "easi": 4, "therefor": [4, 6, 14, 19, 20], "often": [4, 8, 14, 19], "orchestr": 4, "purpos": 4, "conductor": 4, "scenario": 4, "appropri": 4, "moment": 4, "right": 4, "replac": [4, 9], "level": [4, 5, 15, 17, 20, 21, 22], "moveit2": [4, 5], "simplecontrollermanag": 4, "form": 4, "behavior": [4, 8], "benchmark": 4, "statu": [4, 9, 10, 20], "publish": [4, 12, 16, 18, 19, 20, 23], "topic": [4, 5, 20], "format": [4, 19], "preset": 4, "modul": 4, "specif": [4, 9, 19, 20], "reli": 4, "doubl": [4, 8, 20], "desir": [4, 20], "howev": [4, 6], "both": [4, 5, 19], "improv": 4, "readabl": 4, "earlier": 4, "concept": [4, 5, 8, 11], "were": 4, "introduc": [4, 5], "essenti": 4, "group": [4, 20, 23], "instanc": [4, 19], "imu": [4, 13], "typic": [4, 19, 20], "9": 4, "axi": [4, 16], "aceleromet": 4, "gyroscop": 4, "compass": 4, "respect": [4, 5], "Such": 4, "struct": 4, "low": [4, 5], "profil": 4, "intern": [4, 20], "addition": [4, 23], "few": [4, 5], "pull": 4, "45": 4, "tree": 4, "semantic_compon": 4, "175": 4, "rewrit": [4, 23], "ros_control": [4, 5, 23], "rich": 4, "wa": [4, 14], "motiv": 4, "adopt": 4, "port": [4, 9], "most": [4, 14], "quit": 4, "miss": [4, 19], "diff_drive_control": [4, 10], "joint_trajectory_control": [4, 10], "consist": [4, 20, 23], "identifi": 4, "much": [4, 14], "303": 4, "304": 4, "stretch": 4, "realtime_tool": [4, 23], "81": 4, "302": 4, "unit": 4, "gmock": 4, "cc": 5, "BY": 5, "licens": 5, "author": 5, "either": 5, "down": 5, "below": 5, "my": 5, "company_nam": 5, "tricycl": 5, "control": [5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 21, 22, 23], "event": 5, "pixel": 5, "prefac": 5, "introduct": [5, 20], "johann": 5, "plapp": 5, "toni": 5, "najjar": 5, "kernel": [5, 6], "hardwar": [5, 6, 7, 8, 11, 13, 14, 23], "agnost": 5, "share": [5, 14], "well": [5, 6, 10, 20], "perform": [5, 6], "heavi": 5, "dr": 5, "stogl": 5, "consult": 5, "practition": 5, "guid": [5, 14], "top": 5, "virtual": 5, "talk": 5, "delv": 5, "deeper": 5, "what": 5, "explicit": [5, 20], "chain": 5, "emerg": 5, "handler": 5, "mock": 5, "usag": [5, 6, 10], "openli": 5, "record": 5, "fiveai": 5, "ltd": 5, "best": [5, 6, 14], "focu": 5, "becom": 5, "util": 5, "3rd": 5, "parti": 5, "nav2": 5, "practic": 5, "tip": 5, "hot": 5, "shown": 5, "furthermor": 5, "get": [5, 9, 23], "reus": 5, "inject": 5, "offer": [5, 6], "expos": 5, "problem": [5, 23], "manipul": [5, 20], "path": 5, "plan": [5, 23], "autonom": 5, "navig": 5, "ideal": [5, 8], "made": [5, 9], "mobil": [5, 12], "arm": 5, "extra": [5, 19], "readi": [5, 14], "power": 5, "studi": 5, "ur": 5, "With": 5, "moveit": [5, 8], "ingredi": 5, "scale": 5, "factor": 5, "teach": 5, "pendant": 5, "influenc": 5, "picknik": 5, "inc": 5, "nathan": 5, "brook": 5, "lovro": 5, "ivanov": 5, "andi": 5, "zelenak": 5, "rune": 5, "s\u00f8e": 5, "knudsen": 5, "onlin": [5, 14], "trajectori": [5, 13, 23], "admitt": 5, "One": 5, "reason": 5, "upgrad": 5, "ros1": 5, "better": 5, "realtim": [5, 12, 20, 23], "contact": 5, "insert": 5, "singl": 5, "waypoint": [5, 13, 20], "mani": [5, 14], "teleoper": 5, "involv": 5, "kinemat": 5, "acceler": [5, 11, 12, 13, 20], "jerk": [5, 12], "obei": 5, "demo": 5, "booth": 5, "zeleank": 5, "unifi": 5, "life": 5, "cycl": 5, "go": [5, 14], "_control": 5, "wild": 5, "materi": 5, "quick": [5, 9], "overview": 5, "layer": 5, "aka": 5, "systemcompon": 5, "forward": [5, 8, 13, 20, 23], "done": [5, 14], "look": 5, "modifi": 5, "simpli": [5, 20], "net": 5, "edit": 5, "collect": [5, 15, 17, 21, 22], "semant": [5, 16, 18], "world": [6, 8], "littl": 6, "jitter": 6, "normal": 6, "linux": 6, "comput": [6, 12], "throughput": 6, "suit": 6, "attempt": [6, 20], "sched_fifo": 6, "prioriti": 6, "rt": 6, "permiss": 6, "syscal": 6, "easiest": [6, 14], "ubuntu": 6, "22": 6, "04": 6, "lt": 6, "beta": 6, "blog": 6, "imag": 6, "amd64": 6, "debian": 6, "bullsey": 6, "startup": 6, "h": [6, 10, 14], "p": 6, "param_fil": 6, "controller_typ": 6, "timeout": [6, 10], "controller_manager_timeout": 6, "controller_nam": [6, 10, 14], "argument": [6, 10], "exit": [6, 10], "leav": 6, "unconfigur": [6, 9], "namespac": [6, 13, 14, 19, 20], "kill": [6, 10], "wait": [6, 10], "until": 6, "doxygen": 7, "fake": 7, "mirror": 8, "correspond": [8, 14, 23], "offlin": 8, "advantag": 8, "pipe": 8, "insid": 8, "broadcast": [8, 19], "even": 8, "debug": 8, "boost": 8, "mimic": 8, "offset": [8, 19, 20], "fake_sensor_command": 8, "boolean": [8, 19, 20], "fals": [8, 19, 20], "position_state_following_offset": 8, "custom_interface_with_following_offset": 8, "map": [8, 19, 20], "multipli": 8, "mimick": 8, "return_typ": [9, 14], "return": [9, 14, 19], "on_error": 9, "previous_st": 9, "success": [9, 14], "callbackreturn": 9, "again": [9, 11], "recov": 9, "reload": [9, 10], "substanti": 9, "renam": 9, "on_init": 9, "baseinterfac": 9, "remov": 9, "base_interfac": 9, "hpp": [9, 14], "hardware_interface_status_valu": 9, "rclcpp_lifecycl": [9, 14], "mai": [9, 15, 17, 21, 22], "strictli": 9, "last": [9, 14, 20], "status_": 9, "const": 9, "in_deactiv": 9, "undefin": 9, "refern": 9, "symbol": 9, "node_interfac": 9, "lifecyclenodeinterfac": 9, "rclcpp_lifecyl": 9, "cmakelist": [9, 14], "txt": [9, 14], "spin": 10, "spin_tim": 10, "hidden": 10, "discoveri": 10, "appli": 10, "alreadi": [10, 14, 20], "daemon": 10, "test_controller_nam": 10, "test_control": 10, "diffdrivecontrol": 10, "joint_state_control": 10, "jointstatecontrol": 10, "unclaim": [10, 11], "set_stat": 10, "adjust": 10, "strict": 10, "asap": 10, "switch_timeout": 10, "templat": [11, 14, 20], "demonstr": 11, "prove": 11, "comprehens": 11, "ros2_control_demo_bringup": 11, "gui": 11, "ros2_control_test_nod": 11, "rrbot_system_multi_interfac": 11, "py": 11, "list_hardware_interfac": 11, "load_control": 11, "forward_position_control": 11, "forward_velocity_control": 11, "forward_acceleration_control": 11, "forward_illegal1_control": 11, "forward_illegal2_control": 11, "joint_state_broadcast": 11, "set_controller_st": 11, "claim": 11, "now": [11, 14], "let": 11, "switch_control": 11, "inde": 11, "been": 11, "differenti": [12, 13, 23], "drive": [12, 13, 23], "bodi": 12, "translat": 12, "wheel": 12, "odometri": 12, "feedback": [12, 19, 20], "twist": 12, "x": [12, 16, 18], "linear": [12, 20], "z": [12, 16], "angular": 12, "ignor": [12, 20], "space": [12, 20], "sort": [13, 14], "accord": [13, 20], "position_control": [13, 20], "hw_if_posit": 13, "velocity_control": 13, "hw_if_veloc": 13, "effort_control": 13, "hw_if_acceler": 13, "hw_if_effort": 13, "interpol": [13, 20], "step": [14, 20, 23], "compil": 14, "rule": 14, "prepar": 14, "ament_cmak": 14, "search": 14, "recent": 14, "process": 14, "pkg": 14, "flag": [14, 20], "least": [14, 20], "package_nam": 14, "visibility_control": 14, "window": 14, "copi": 14, "prefix": [14, 16, 18], "guard": 14, "ifndef": 14, "preprocessor": 14, "engin": 14, "friend": 14, "uniqu": 14, "written": 14, "snake_cas": 14, "controllernam": 14, "public": 14, "overrid": 14, "exact": 14, "vector": 14, "store": 14, "simplifi": [14, 23], "further": 14, "parent": 14, "reserv": 14, "importantli": 14, "fine": 14, "ok": 14, "otherwis": [14, 19], "individu": 14, "none": [14, 19], "ask": [14, 19], "full": 14, "joint_nam": [14, 20], "interface_typ": 14, "assign": 14, "opposit": 14, "empti": 14, "constraint": [14, 20], "At": 14, "close": 14, "class_list_macro": 14, "controller_name_namespac": 14, "visibl": 14, "controller_name_packag": 14, "bottom": 14, "test_load_": 14, "content": 14, "specifi": [14, 20], "find_packag": 14, "rclcpp": 14, "directori": 14, "ament": 14, "cmake": 14, "pluginlib_export_plugin_description_fil": 14, "ament_cmake_gmock": 14, "ros2_control_test_asset": 14, "ament_add_gmock": 14, "ament_export_librari": 14, "ament_packag": 14, "test_depend": 14, "colcon": 14, "rememb": 14, "root": 14, "bash": 14, "enjoi": 14, "great": 14, "shell": 14, "certain": [15, 17, 21, 22], "achiev": [15, 17, 21, 22], "These": [15, 17, 21, 22], "geometry_msg": 16, "msg": [16, 18, 20], "wrenchstamp": 16, "wrapper": [16, 18], "forcetorquesensor": 16, "sensor_nam": [16, 18], "interface_nam": 16, "frame": [16, 18], "6d": 16, "ft": 16, "y": 16, "less": 16, "six": 16, "ax": 16, "example_nam": 16, "example_interfac": 16, "sensor_msg": 18, "imusensor": 18, "orient": 18, "angular_veloc": 18, "linear_acceler": 18, "joint_stat": 19, "dynamic_joint_st": 19, "By": [19, 20], "unless": 19, "latter": 19, "matrix": 19, "product": 19, "print": 19, "warn": 19, "use_local_top": 19, "my_state_broadcast": 19, "arrai": 19, "extra_joint": 19, "map_interface_to_joint_st": 19, "field": 19, "usecas": 19, "hydraul": [19, 20], "relianc": 19, "would": 19, "visual": 19, "robot_state_publish": 19, "rviz": 19, "techniqu": 19, "slightli": 19, "custom_interfac": 19, "kf_estimated_posit": 19, "derived_veloc": 19, "derived_effort": 19, "torque_sensor": 19, "current_sensor": 19, "reach": 20, "instant": 20, "mechan": 20, "spline": 20, "guarante": 20, "continu": 20, "discourag": 20, "becaus": 20, "yield": 20, "discontinu": 20, "cubic": 20, "quintic": 20, "pid": [20, 23], "similarli": 20, "eg": 20, "proxi": 20, "wrap": 20, "robust": 20, "clock": 20, "caus": 20, "queu": 20, "segment": 20, "ros__paramet": 20, "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "state_publish_r": 20, "action_monitor_r": 20, "20": 20, "allow_partial_joints_go": 20, "open_loop_control": 20, "true": 20, "stopped_velocity_toler": 20, "01": 20, "goal_tim": 20, "05": [20, 23], "03": 20, "monitor": 20, "action": 20, "control_msg": [20, 23], "followjointtrajectori": 20, "tri": 20, "numer": 20, "nan": 20, "std": 20, "numeric_limit": 20, "quiet_nan": 20, "toler": 20, "jointtrajectori": 20, "deviat": 20, "maxim": 20, "predefin": 20, "joint_trajectori": 20, "trajectory_msg": 20, "jointtrajectorycontrollerst": 20, "follow_joint_trajectori": 20, "server": 20, "position_velocity_control": 20, "position_velocity_acceleration_control": 20, "Not": 20, "yet": 20, "feedforward": 20, "term": [20, 23], "plu": 20, "171": 20, "Its": 23, "oper": 23, "overcom": 23, "idea": 23, "wide": 23, "toolkit": 23, "unreleas": 23, "smooth": 23, "doc": 23, "wg": 23, "meet": 23, "everi": 23, "wednesdai": 23, "join": 23, "announc": 23, "discours": 23, "googl": 23, "propos": 23, "previou": 23, "bug": 23, "tracker": 23, "minim": 23, "reproduc": 23, "regard": 23, "etc": 23, "question": 23, "answer": 23, "2023": 23, "12": 23, "30": 23, "31": 23, "built": 23, "gmt": 23}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 11], "process": 1, "merg": 1, "write": [1, 9, 14], "document": [1, 7, 23], "structur": [1, 2], "ci": 1, "configur": 1, "differ": 2, "ros_control": 2, "ros1": [2, 4], "hardwar": [2, 3, 4, 9, 12, 15, 17, 19, 20, 21, 22], "class": 2, "interfac": [2, 3, 10, 12, 15, 17, 19, 20, 21, 22], "control": [2, 3, 4, 6, 13, 14, 20], "": [2, 20], "access": 2, "migrat": [2, 9], "guid": 2, "ros2_control": [2, 4, 13, 23], "robothardwar": 2, "compon": [2, 3, 4, 8, 9], "get": 3, "start": 3, "compil": 3, "architectur": 3, "manag": [3, 6], "resourc": [3, 5], "user": 3, "descript": 3, "urdf": 3, "run": 3, "framework": 3, "your": 3, "robot": [3, 5], "project": 4, "idea": 4, "gsoc": 4, "2022": [4, 5], "asynchron": 4, "tutori": 4, "demo": [4, 11], "mission": 4, "add": 4, "support": 4, "semant": 4, "featur": [4, 7, 12, 20], "pariti": 4, "from": [4, 9], "present": 5, "2023": 5, "02": 5, "ro": 5, "meetup": 5, "munich": 5, "5": 5, "12": 5, "industri": 5, "confer": 5, "10": 5, "roscon": 5, "06": 5, "fr": 5, "2021": 5, "world": 5, "07": 5, "weekli": 5, "13": 5, "rosdevdai": 5, "05": 5, "diagram": 5, "imag": 5, "determin": 6, "helper": 6, "script": 6, "spawner": 6, "unspawn": 6, "api": 7, "core": 7, "function": 7, "concept": 7, "fake": 8, "gener": 8, "system": 8, "paramet": [8, 16, 18, 19, 20], "per": 8, "joint": [8, 20], "handl": 9, "error": 9, "happen": 9, "dure": 9, "read": 9, "call": 9, "foxi": 9, "galact": [9, 23], "command": [10, 12, 19], "line": 10, "list_control": 10, "list_controller_typ": 10, "list_hardware_interfac": 10, "load_control": 10, "reload_controller_librari": 10, "set_controller_st": 10, "switch_control": 10, "unload_control": 10, "organ": 11, "mode": 11, "switch": 11, "diff_drive_control": 12, "veloc": 12, "type": [12, 15, 17, 19, 20, 21, 22], "other": [12, 20], "nomenclatur": 13, "guidelin": 13, "best": 13, "practic": 13, "avail": 13, "broadcast": [13, 16, 18], "new": 14, "us": [14, 20], "extern": 14, "refer": 14, "effort_control": 15, "forc": 16, "torqu": 16, "sensor": [16, 18], "forward_command_control": 17, "imu": 18, "joint_state_broadcast": 19, "joint_trajectory_control": 20, "trajectori": 20, "represent": 20, "detail": 20, "about": 20, "ros2": 20, "special": 20, "version": 20, "jointtrajectorycontrol": 20, "tbd": 20, "position_control": 21, "velocity_control": 22, "welcom": 23, "overview": 23, "develop": 23, "organis": 23, "commun": 23}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "Getting Started": [[3, "getting-started"]], "Compiling": [[3, "compiling"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"], [13, "id1"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"], [9, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Resources": [[5, "resources"]], "Presentations": [[5, "presentations"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "Diagrams": [[5, "diagrams"]], "Images": [[5, "images"]], "Determinism": [[6, "determinism"]], "Helper scripts": [[6, "helper-scripts"]], "spawner": [[6, "spawner"]], "unspawner": [[6, "unspawner"]], "API Documentation": [[7, "api-documentation"]], "Core functionalities": [[7, "core-functionalities"]], "Features": [[7, "features"]], "Concepts": [[7, "concepts"]], "Fake Components": [[8, "fake-components"]], "Generic System": [[8, "generic-system"]], "Parameters": [[8, "parameters"], [16, "parameters"], [18, "parameters"], [19, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Handling of errors that happen during read() and write() calls": [[9, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to Galactic": [[9, "migration-from-foxy-to-galactic"]], "Command Line Interface": [[10, "command-line-interface"]], "list_controllers": [[10, "list-controllers"]], "list_controller_types": [[10, "list-controller-types"]], "list_hardware_interfaces": [[10, "list-hardware-interfaces"]], "load_controller": [[10, "load-controller"]], "reload_controller_libraries": [[10, "reload-controller-libraries"]], "set_controller_state": [[10, "set-controller-state"]], "switch_controllers": [[10, "switch-controllers"]], "unload_controller": [[10, "unload-controller"]], "Demos": [[11, "demos"]], "Repository organization": [[11, "repository-organization"]], "Mode switching demo": [[11, "mode-switching-demo"]], "diff_drive_controller": [[12, "diff-drive-controller"]], "Velocity commands": [[12, "velocity-commands"]], "Hardware interface type": [[12, "hardware-interface-type"], [15, "hardware-interface-type"], [17, "hardware-interface-type"], [19, "hardware-interface-type"], [20, "hardware-interface-type"], [21, "hardware-interface-type"], [22, "hardware-interface-type"]], "Other features": [[12, "other-features"], [20, "other-features"]], "ros2_controllers": [[13, "ros2-controllers"]], "Nomenclature": [[13, "nomenclature"]], "Guidelines and Best Practices": [[13, "guidelines-and-best-practices"]], "Available Controllers": [[13, "available-controllers"]], "Available Broadcasters": [[13, "available-broadcasters"]], "Writing a new controller": [[14, "writing-a-new-controller"]], "Useful External References": [[14, "useful-external-references"]], "effort_controllers": [[15, "effort-controllers"]], "Force Torque Sensor Broadcaster": [[16, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[17, "forward-command-controller"]], "IMU Sensor Broadcaster": [[18, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[19, "joint-state-broadcaster"]], "Commands": [[19, "commands"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "Trajectory representation": [[20, "trajectory-representation"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Details about parameters": [[20, "details-about-parameters"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "position_controllers": [[21, "position-controllers"]], "velocity_controllers": [[22, "velocity-controllers"]], "Welcome to the ros2_control documentation - Galactic!": [[23, "welcome-to-the-ros2-control-documentation-galactic"]], "Overview": [[23, "overview"]], "Development Organisation and Communication": [[23, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/getting_started/getting_started", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/getting_started/getting_started.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "index.rst"], "titles": ["Acknowledgements", "Pull Requests", "Differences to ros_control (ROS1)", "Getting Started", "Project Ideas for GSoC 2022", "Resources", "Controller Manager", "API Documentation", "Fake Components", "Hardware Components", "Command Line Interface", "Demos", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "joint_trajectory_controller", "position_controllers", "velocity_controllers", "Welcome to the ros2_control documentation - Galactic!"], "terms": {"The": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23], "project": [0, 1, 23], "ha": [0, 1, 3, 4, 5, 14, 19], "receiv": [0, 2], "major": 0, "contribut": [0, 1, 5], "from": [0, 1, 2, 3, 5, 6, 8, 10, 12, 14, 16, 18, 20, 23], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 11, 13, 14, 20, 23], "compani": [0, 5], "institut": 0, "support": [0, 2, 3, 5, 8, 10, 14, 19, 20, 23], "rosin": 0, "ro": [0, 1, 3, 4, 6, 8, 10, 23], "industri": [0, 3, 4], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 11, 12, 16, 19, 23], "softwar": [0, 3], "compon": [0, 5, 6, 7, 12, 16, 18, 23], "more": [0, 1, 2, 3, 4, 8, 14], "inform": [0, 8, 14, 23], "http": [0, 1, 3, 4, 6], "eu": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 17, 20, 21, 22, 23], "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 4, 5, 11, 14, 23], "horizon": 0, "2020": 0, "research": [0, 5], "innov": 0, "programm": 0, "under": [0, 5, 14, 23], "grant": 0, "agreement": 0, "732287": 0, "first": [1, 2, 9, 14], "thank": 1, "you": [1, 2, 3, 5, 6, 8, 9, 14, 23], "consid": [1, 10], "ros2_control": [1, 3, 5, 6, 8, 9, 11, 14], "As": [1, 14], "an": [1, 2, 3, 4, 5, 8, 10, 14, 19, 20], "open": [1, 19, 20], "sourc": [1, 3, 5, 14], "we": [1, 4, 5, 9, 19], "welcom": 1, "each": [1, 3, 4, 9, 19], "contributor": 1, "regardless": 1, "background": 1, "experi": 1, "To": [1, 2, 3, 6, 19, 23], "reduc": [1, 8], "entropi": 1, "univers": [1, 4, 5], "our": [1, 3, 4, 5], "vivid": 1, "collabor": 1, "environ": [1, 3, 5], "have": [1, 2, 3, 4, 6, 8, 9, 11, 14, 19, 20], "set": [1, 2, 4, 5, 6, 8, 9, 10, 11, 15, 17, 19, 20, 21, 22], "up": [1, 5, 11], "some": [1, 4, 5, 19, 20, 23], "standard": [1, 2, 3, 4, 5, 10, 13, 16, 19], "method": [1, 2, 3, 9, 14], "requir": [1, 2, 3, 4, 14], "ar": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 18, 19, 20, 23], "limit": [1, 4, 5, 12], "scope": 1, "your": [1, 2, 5, 8, 14, 23], "pr": 1, "should": [1, 2, 4, 5, 6, 9, 10, 11, 14, 19], "do": [1, 2, 3, 4, 5, 6, 14, 20], "one": [1, 2, 3, 4, 5, 14, 16, 19, 23], "thing": 1, "avoid": [1, 14], "ad": [1, 4, 8, 14, 19], "random": 1, "fix": [1, 2], "put": [1, 14], "those": [1, 2, 3, 4, 8, 14, 16, 19, 20], "separ": [1, 2, 3, 19], "give": [1, 3, 5, 23], "descript": [1, 2, 5, 9, 14], "titl": 1, "add": [1, 2, 9, 14], "short": [1, 14, 23], "summari": [1, 5, 23], "make": [1, 2, 4, 5, 6, 23], "sure": [1, 4, 23], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "green": 1, "don": 1, "t": [1, 6], "afraid": 1, "review": [1, 4, 23], "maintain": [1, 3, 4], "new": [1, 5, 13, 20, 23], "code": [1, 2, 4, 5, 14], "test": [1, 4, 8, 11, 14], "If": [1, 2, 3, 6, 9, 14, 16, 19, 20, 23], "function": [1, 2, 3, 4, 5, 6], "alwai": 1, "exercis": 1, "serv": [1, 3, 4], "live": [1, 5], "origin": [1, 5], "intent": [1, 8], "section": [1, 2, 14], "target": [1, 13, 14, 20], "also": [1, 2, 3, 4, 5, 14], "read": [1, 2, 3, 14, 19, 20], "understand": [1, 4], "how": [1, 4, 5, 14], "handl": [1, 2, 4, 5, 20], "organ": [1, 5, 23], "guidelin": 1, "especi": [1, 2], "applic": [1, 3, 5, 6], "ros2_control_demo": [1, 3, 23], "pleas": [1, 23], "keep": [1, 14], "mind": [1, 14], "work": [1, 4, 5, 12, 14, 15, 17, 19, 20, 21, 22, 23], "fork": 1, "when": [1, 2, 3, 4, 6, 8, 10, 14, 20], "submit": [1, 5], "That": [1, 14], "wai": [1, 14, 16], "main": [1, 3, 4, 5, 6, 8, 14, 23], "repo": [1, 3], "clean": [1, 4], "featur": [1, 5, 8, 23], "branch": 1, "all": [1, 2, 3, 4, 5, 8, 9, 11, 14, 19, 20], "check": [1, 2, 3, 4, 8, 9, 11, 14, 20, 23], "satisfi": 1, "befor": [1, 2, 6, 14], "thei": [1, 2, 3, 4, 5, 8, 10, 13, 14, 20], "can": [1, 2, 3, 4, 5, 7, 8, 9, 14, 16, 20, 23], "must": 1, "approv": 1, "two": [1, 3, 4, 6, 14, 16], "explicitli": 1, "onli": [1, 2, 3, 4, 5, 6, 9, 10, 14, 16, 19, 20], "except": 1, "other": [1, 2, 3, 5, 14, 19], "activ": [1, 2, 3, 10, 19], "where": [1, 4, 14, 19], "back": 1, "traceabl": 1, "discuss": [1, 5, 23], "suffici": [1, 16], "note": [1, 3, 11, 23], "still": [1, 2, 3], "encourag": 1, "help": [1, 6, 10, 14], "u": [1, 6], "increas": 1, "pace": 1, "veri": [1, 2, 4], "like": [1, 2, 3, 4, 5], "find": 1, "issu": [1, 4, 23], "nobodi": 1, "els": 1, "see": [1, 2, 3, 11, 14, 16, 18, 20], "squash": 1, "commit": 1, "messag": [1, 4, 6, 10, 16, 18, 19, 20, 23], "comment": 1, "fixup": 1, "linter": 1, "us": [1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 15, 16, 17, 18, 19, 21, 22, 23], "pre": 1, "correct": [1, 2, 20], "header": [1, 9, 14], "address": [1, 4], "similar": [1, 3, 5], "mean": [1, 2, 8], "result": [1, 3, 19], "exactli": 1, "1": [1, 3, 4, 5, 8, 14], "cowboi": 1, "style": [1, 14], "over": [1, 4], "weekend": 1, "It": [1, 2, 3, 4, 6, 16, 19], "doesn": 1, "matter": 1, "trivial": [1, 8], "peopl": 1, "chanc": 1, "proper": [1, 20], "Be": 1, "awar": 1, "impact": 1, "time": [1, 2, 4, 5, 6, 8, 10, 12, 14, 16, 20, 23], "proport": 1, "its": [1, 2, 3, 4, 5, 6, 16, 18, 19], "ping": 1, "them": [1, 3, 4, 6, 14, 19], "necessari": [1, 9], "repeatedli": 1, "start": [1, 2, 5, 6, 9, 10, 11, 14, 20, 23], "part": [1, 4, 5, 14], "For": [1, 3, 4, 5, 6, 8, 9, 14, 20], "detail": [1, 2, 3, 8, 9, 14], "thoma": 1, "cokela": 1, "info": [1, 9], "tutori": 1, "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 5, 6, 9, 10, 13, 14, 16, 18], "develop": [1, 5, 8, 11, 14], "stabl": [1, 4], "against": 1, "accept": [1, 14, 15, 17, 21, 22], "api": [1, 4], "abi": 1, "chang": [1, 2, 3, 5, 9, 10, 14, 20], "e": [1, 2, 3, 4, 5, 8, 14, 15, 16, 17, 19, 20, 21, 22, 23], "name": [1, 2, 3, 5, 6, 8, 10, 14, 16, 18, 19, 20], "convent": 1, "master": [1, 3, 4], "semi": 1, "binari": 1, "good": [1, 4], "same": [1, 3, 4, 16], "build": [1, 14], "dai": 1, "2": [1, 3, 5, 8], "ros_distro": 1, "g": [1, 2, 3, 4, 5, 8, 14, 15, 17, 19, 21, 22, 23], "foxi": [1, 3, 5], "galact": 1, "releas": [1, 3, 5, 6], "version": [1, 4], "non": [1, 5, 16], "brake": 1, "distribut": [1, 23], "three": [1, 2, 3, 9, 14], "stage": 1, "current": [1, 4, 9, 10, 20], "futur": [1, 5], "compat": [1, 2, 5], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 11, 13, 14, 19, 23], "packag": [1, 2, 3, 6, 9, 11, 14, 16, 18, 20, 23], "show": [1, 3, 5, 6, 9, 10, 19], "direct": [1, 2, 4, 14], "local": [1, 19], "possibl": [1, 3, 4, 6, 14, 20], "core": 1, "immedi": 1, "depend": [1, 3, 9, 14, 20], "fail": 1, "expect": [1, 4, 20], "after": [1, 12, 14], "next": [1, 20], "sync": 1, "abl": 1, "potenti": [1, 14], "mid": 1, "robothw": 2, "rigid": 2, "ani": [2, 3, 5, 9, 14], "imposs": 2, "extend": [2, 3, 4, 14], "exist": [2, 3, 4, 6, 9, 14], "addit": [2, 4], "sensor": [2, 3, 4, 8, 9, 13], "actuat": [2, 3, 4, 8, 9], "tool": [2, 4, 5], "without": [2, 3, 8, 14], "combinedrobothardwar": 2, "drawback": [2, 23], "solut": [2, 5], "optim": [2, 6], "combin": [2, 8, 19, 20], "extern": [2, 3, 4, 8], "defin": [2, 3, 4, 8, 13, 14, 16, 18, 19, 20], "system": [2, 3, 4, 5, 9, 11, 20, 23], "composit": [2, 5], "basic": [2, 3, 4, 5, 14], "physic": [2, 3, 8, 9], "cell": [2, 16], "surround": 2, "describ": [2, 3], "multi": [2, 3, 4, 5, 11], "gripper": [2, 3, 8], "out": [2, 12], "box": 2, "allow": [2, 20], "joint": [2, 3, 5, 12, 13, 14, 15, 17, 19, 21, 22, 23], "posit": [2, 3, 5, 6, 10, 11, 13, 15, 17, 19, 20, 21, 22], "veloc": [2, 3, 5, 11, 13, 19, 20, 21, 22], "effort": [2, 13, 15, 17, 19, 20], "hard": [2, 4], "data": [2, 3, 4, 8, 19], "approach": 2, "doe": [2, 14, 20], "enforc": [2, 20], "string": [2, 8, 14, 19, 20], "ensur": [2, 5], "constant": 2, "hardware_interfac": [2, 3, 8, 9, 13, 14], "In": [2, 3, 4, 5, 14, 19], "had": 2, "request": [2, 19, 23], "itself": 2, "took": 2, "care": [2, 4, 14], "regist": 2, "resourc": 2, "conflict": [2, 3, 4], "resourcemanag": 2, "take": [2, 4, 14, 19], "state": [2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16, 19, 20], "avail": [2, 3, 5, 10, 11, 14, 19, 20], "enabl": [2, 3, 4, 5, 6, 9, 11, 16], "anymor": 2, "controllermanag": 2, "implement": [2, 3, 4, 5, 8, 11, 12, 13, 14, 20, 23], "systeminterfac": [2, 8], "granular": 2, "sensorinterfac": 2, "actuatorinterfac": 2, "abov": [2, 20], "choos": 2, "suitabl": [2, 5], "strategi": [2, 20], "decid": 2, "which": [2, 3, 4, 5, 10, 12, 14, 16, 18, 19, 20], "case": [2, 4, 5, 14, 19, 20, 23], "mayb": 2, "sens": [2, 3, 16], "multipl": [2, 3, 19, 20], "constructor": [2, 14], "initi": [2, 14], "variabl": [2, 4, 14], "need": [2, 3, 4, 5, 14], "commun": [2, 3, 4, 5], "default": [2, 3, 8, 19, 20], "configur": [2, 3, 4, 5, 6, 9, 10, 11, 14, 19, 20], "paramet": [2, 5, 14], "pars": [2, 7], "urdf": 2, "snippet": 2, "hardwareinfo": 2, "here": [2, 7, 14, 20], "cross": [2, 19], "valu": [2, 3, 4, 8, 14, 19, 20], "export_": 2, "_interfac": 2, "joint_a2": 2, "extract": [2, 12], "sensibl": 2, "stop": [2, 5, 6, 9, 10, 11, 12], "usual": [2, 8, 14], "includ": [2, 4, 9, 10, 14], "command": [2, 3, 4, 5, 7, 8, 11, 13, 14, 15, 17, 20, 21, 22, 23], "safe": [2, 12, 14, 20], "interrupt": [2, 6], "stream": [2, 5], "write": [2, 3, 4, 5, 13], "exchang": [2, 4], "equival": 2, "forget": 2, "pluginlib_export_class": [2, 14], "macro": [2, 3, 14], "end": [2, 3, 9, 14, 20], "cpp": [2, 14], "file": [2, 3, 4, 5, 6, 8, 14, 20], "creat": [2, 3, 5, 8, 14], "xml": [2, 9, 14], "librari": [2, 3, 4, 10, 14], "pluginlib": [2, 3, 14], "exampl": [2, 3, 4, 5, 8, 10, 11, 16, 19, 20, 23], "rrbotsystempositiononlyhardwar": [2, 3], "excel": 2, "jointtrajectorycontrol": [2, 10], "real": [2, 4, 5, 6, 8, 14, 19, 20, 23], "critic": [2, 4], "mark": 2, "controllerinterfac": [2, 3, 10, 14], "member": [2, 14], "init": [2, 14], "call": [2, 3, 14], "lifecycl": [2, 3, 5, 6, 9], "declar": [2, 14], "state_interface_configur": [2, 14], "command_interface_configur": [2, 14], "design": [2, 3, 4, 5, 23], "updat": [2, 3, 4, 14], "manag": [2, 4, 5, 7, 9, 10, 14, 23], "option": [2, 6, 8, 9, 10, 14, 16, 19, 20], "on_configur": [2, 14], "on_activ": [2, 9, 14], "on_deactiv": [2, 9, 14], "deactiv": [2, 3], "final": [2, 5, 9], "joint_trajectory_plugin": 2, "ros2": [3, 4, 5, 6, 10, 11, 14, 23], "instal": [3, 6, 14], "automat": [3, 12], "want": [3, 6], "workspac": [3, 14], "folder": [3, 5, 14], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 4, 6], "vc": 3, "import": [3, 14, 20], "src": [3, 14], "found": [3, 7, 14, 20, 23], "github": [3, 4, 7, 13, 23], "repositori": [3, 4, 7, 13, 23], "figur": 3, "cm": 3, "connect": 3, "abstract": [3, 5, 9], "side": [3, 4, 5], "entri": [3, 14], "point": [3, 13, 14, 23], "through": [3, 4, 10, 12, 13, 14, 20, 23], "servic": [3, 4, 6, 9], "node": [3, 6, 8, 9, 10, 11, 14], "executor": 3, "so": [3, 14], "integr": [3, 4, 5, 8, 11, 20, 23], "custom": [3, 8, 16, 19], "setup": [3, 4, 14], "recommend": [3, 5], "ros2_control_nod": 3, "controller_manag": [3, 4, 6, 10, 14, 20], "manual": [3, 4, 14, 23], "assum": 3, "On": 3, "load": [3, 6, 10, 11, 14], "unload": [3, 6, 10], "access": [3, 4, 5, 6, 8, 14, 19], "match": 3, "provid": [3, 4, 5, 6, 8, 11, 13, 14, 19, 20, 23], "report": [3, 4, 19, 23], "error": [3, 4, 14, 19, 20], "execut": [3, 14, 20], "loop": [3, 5, 6, 14, 19, 20], "output": [3, 4, 5, 10, 16, 18, 20], "rm": 3, "driver": [3, 5], "re": 3, "usabl": 3, "flexibl": 3, "motor": [3, 4], "encod": 3, "deal": 3, "theori": [3, 23], "compar": [3, 4, 5], "refer": 3, "measur": [3, 8, 16, 19], "base": [3, 5, 9, 10, 12, 14], "calcul": 3, "input": [3, 4, 5, 12, 20], "visit": 3, "wikipedia": [3, 23], "object": 3, "deriv": 3, "controller_interfac": [3, 4, 10, 14, 16, 18], "export": [3, 14], "plugin": [3, 9, 14], "forwardcommandcontrol": 3, "lifecyclenod": 3, "class": [3, 5, 9, 10, 14], "machin": [3, 4], "document": [3, 4, 5, 8], "latest": 3, "interact": [3, 5, 6, 10], "list": [3, 5, 9, 10, 11, 13, 14, 20, 23], "definit": [3, 13, 14, 16], "srv": 3, "controller_manager_msg": 3, "while": [3, 4, 5, 11, 20], "directli": [3, 23], "line": [3, 7, 9, 14, 19], "via": 3, "friendli": 3, "cli": [3, 7, 10], "auto": 3, "complet": [3, 9, 13], "rang": 3, "common": [3, 4, 13, 19, 23], "capabl": [3, 4], "readm": 3, "md": 3, "ros2controlcli": 3, "realiz": [3, 5], "repres": [3, 9], "dynam": [3, 14], "There": [3, 6, 9, 14], "complex": [3, 4, 5], "dof": 3, "differ": [3, 4, 5, 15, 16, 17, 19, 21, 22], "between": [3, 4, 9, 19, 20], "transmiss": 3, "humanoid": 3, "hand": 3, "logic": 3, "channel": 3, "kuka": 3, "rsi": 3, "A": [3, 5, 14, 19, 20], "relat": [3, 4, 5], "link": [3, 5, 9], "forc": [3, 5, 10, 13], "torqu": [3, 13], "simpl": [3, 4, 5, 11, 14], "valv": 3, "mandatori": [3, 16, 18, 20], "dc": 3, "arduino": 3, "board": 3, "modular": [3, 5], "independ": 3, "explan": 3, "given": [3, 20], "tag": [3, 14, 23], "chosen": 3, "structur": [3, 4, 14, 20], "track": [3, 23], "togeth": 3, "xacro": 3, "hereund": 3, "rrbot": [3, 11], "parallel": [3, 8], "effector": 3, "rrbotsystempositiononli": 3, "ros2_control_demo_hardwar": [3, 11], "param": [3, 6, 8], "example_param_write_for_sec": 3, "example_param_read_for_sec": 3, "joint1": [3, 8, 10, 11, 20], "command_interfac": [3, 20], "min": 3, "max": 3, "state_interfac": [3, 20], "joint2": [3, 10, 11, 20], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "0": [3, 8, 19, 20], "43": 3, "tcp_fts_sensor": 3, "frame_id": [3, 16, 18], "rrbot_tcp": 3, "min_forc": 3, "100": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "23": 3, "3": [3, 4], "gripper_joint": 3, "50": [3, 6, 20], "yaml": [3, 4, 20], "instead": [3, 8, 20], "pure": [3, 20], "launch": [3, 6, 8, 11], "stack": [3, 5], "could": [3, 5, 14, 19, 20], "altern": [3, 20], "script": [3, 4, 14], "skeleton": 3, "orbit": 4, "around": [4, 16, 18], "everyth": [4, 14], "goal": [4, 5, 20, 23], "long": 4, "run": [4, 5, 6, 10], "task": [4, 5, 12], "interfac": [4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 18, 23], "user": 4, "thread": [4, 6], "protect": [4, 14], "memori": [4, 14], "buffer": [4, 23], "control_toolbox": [4, 23], "second": [4, 10, 14, 23], "frequenc": 4, "high": 4, "rate": [4, 20], "khz": 4, "variou": 4, "anoth": 4, "heartbeat": 4, "signal": 4, "sent": 4, "onc": [4, 5], "per": [4, 16], "500": 4, "hz": 4, "failur": [4, 9], "relev": [4, 23], "draft": 4, "trigger": 4, "skill": 4, "prefer": 4, "c": [4, 6, 10, 14], "trick": 4, "mentor": 4, "benc": [4, 5], "magyar": [4, 5], "deni": [4, 5], "\u0161togl": [4, 5], "size": 4, "350": 4, "hour": 4, "difficulti": 4, "about": [4, 8, 19, 23], "org": [4, 6], "gener": [4, 5, 14, 20, 23], "envis": 4, "simul": [4, 8, 11], "gazebo": 4, "ignit": 4, "showcas": [4, 5], "grace": 4, "degrad": 4, "architectur": [4, 5], "roadmap": [4, 23], "place": [4, 14, 20], "gpio": 4, "mode": [4, 20], "switch": [4, 10], "movement": 4, "safeti": 4, "familiar": [4, 23], "medium": 4, "focus": [4, 5], "although": [4, 9], "easi": 4, "therefor": [4, 6, 14, 19, 20], "often": [4, 8, 14, 19], "orchestr": 4, "purpos": 4, "conductor": 4, "scenario": 4, "appropri": 4, "moment": 4, "right": 4, "replac": [4, 9], "level": [4, 5, 15, 17, 20, 21, 22], "moveit2": [4, 5], "simplecontrollermanag": 4, "form": 4, "behavior": [4, 8], "benchmark": 4, "statu": [4, 9, 10, 20], "publish": [4, 12, 16, 18, 19, 20, 23], "topic": [4, 5, 20], "format": [4, 19], "preset": 4, "modul": 4, "specif": [4, 9, 19, 20], "reli": 4, "doubl": [4, 8, 20], "desir": [4, 20], "howev": [4, 6], "both": [4, 5, 19], "improv": 4, "readabl": 4, "earlier": 4, "concept": [4, 5, 8, 11], "were": 4, "introduc": [4, 5], "essenti": 4, "group": [4, 20, 23], "instanc": [4, 19], "imu": [4, 13], "typic": [4, 19, 20], "9": 4, "axi": [4, 16], "aceleromet": 4, "gyroscop": 4, "compass": 4, "respect": [4, 5], "Such": 4, "struct": 4, "low": [4, 5], "profil": 4, "intern": [4, 20], "addition": [4, 23], "few": [4, 5], "pull": 4, "45": 4, "tree": 4, "semantic_compon": 4, "175": 4, "rewrit": [4, 23], "ros_control": [4, 5, 23], "rich": 4, "wa": [4, 14], "motiv": 4, "adopt": 4, "port": [4, 9], "most": [4, 14], "quit": 4, "miss": [4, 19], "diff_drive_control": [4, 10], "joint_trajectory_control": [4, 10], "consist": [4, 20, 23], "identifi": 4, "much": [4, 14], "303": 4, "304": 4, "stretch": 4, "realtime_tool": [4, 23], "81": 4, "302": 4, "unit": 4, "gmock": 4, "cc": 5, "BY": 5, "licens": 5, "author": 5, "either": 5, "down": 5, "below": 5, "my": 5, "company_nam": 5, "tricycl": 5, "control": [5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 21, 22, 23], "event": 5, "pixel": 5, "prefac": 5, "introduct": [5, 20], "johann": 5, "plapp": 5, "toni": 5, "najjar": 5, "kernel": [5, 6], "hardwar": [5, 6, 7, 8, 11, 13, 14, 23], "agnost": 5, "share": [5, 14], "well": [5, 6, 10, 20], "perform": [5, 6], "heavi": 5, "dr": 5, "stogl": 5, "consult": 5, "practition": 5, "guid": [5, 14], "top": 5, "virtual": 5, "talk": 5, "delv": 5, "deeper": 5, "what": 5, "explicit": [5, 20], "chain": 5, "emerg": 5, "handler": 5, "mock": 5, "usag": [5, 6, 10], "openli": 5, "record": 5, "fiveai": 5, "ltd": 5, "best": [5, 6, 14], "focu": 5, "becom": 5, "util": 5, "3rd": 5, "parti": 5, "nav2": 5, "practic": 5, "tip": 5, "hot": 5, "shown": 5, "furthermor": 5, "get": [5, 9, 23], "reus": 5, "inject": 5, "offer": [5, 6], "expos": 5, "problem": [5, 23], "manipul": [5, 20], "path": 5, "plan": [5, 23], "autonom": 5, "navig": 5, "ideal": [5, 8], "made": [5, 9], "mobil": [5, 12], "arm": 5, "extra": [5, 19], "readi": [5, 14], "power": 5, "studi": 5, "ur": 5, "With": 5, "moveit": [5, 8], "ingredi": 5, "scale": 5, "factor": 5, "teach": 5, "pendant": 5, "influenc": 5, "picknik": 5, "inc": 5, "nathan": 5, "brook": 5, "lovro": 5, "ivanov": 5, "andi": 5, "zelenak": 5, "rune": 5, "s\u00f8e": 5, "knudsen": 5, "onlin": [5, 14], "trajectori": [5, 13, 23], "admitt": 5, "One": 5, "reason": 5, "upgrad": 5, "ros1": 5, "better": 5, "realtim": [5, 12, 20, 23], "contact": 5, "insert": 5, "singl": 5, "waypoint": [5, 13, 20], "mani": [5, 14], "teleoper": 5, "involv": 5, "kinemat": 5, "acceler": [5, 11, 12, 13, 20], "jerk": [5, 12], "obei": 5, "demo": 5, "booth": 5, "zeleank": 5, "unifi": 5, "life": 5, "cycl": 5, "go": [5, 14], "_control": 5, "wild": 5, "materi": 5, "quick": [5, 9], "overview": 5, "layer": 5, "aka": 5, "systemcompon": 5, "forward": [5, 8, 13, 20, 23], "done": [5, 14], "look": 5, "modifi": 5, "simpli": [5, 20], "net": 5, "edit": 5, "collect": [5, 15, 17, 21, 22], "semant": [5, 16, 18], "world": [6, 8], "littl": 6, "jitter": 6, "normal": 6, "linux": 6, "comput": [6, 12], "throughput": 6, "suit": 6, "attempt": [6, 20], "sched_fifo": 6, "prioriti": 6, "rt": 6, "permiss": 6, "syscal": 6, "easiest": [6, 14], "ubuntu": 6, "22": 6, "04": 6, "lt": 6, "beta": 6, "blog": 6, "imag": 6, "amd64": 6, "debian": 6, "bullsey": 6, "startup": 6, "h": [6, 10, 14], "p": 6, "param_fil": 6, "controller_typ": 6, "timeout": [6, 10], "controller_manager_timeout": 6, "controller_nam": [6, 10, 14], "argument": [6, 10], "exit": [6, 10], "leav": 6, "unconfigur": [6, 9], "namespac": [6, 13, 14, 19, 20], "kill": [6, 10], "wait": [6, 10], "until": 6, "doxygen": 7, "fake": 7, "mirror": 8, "correspond": [8, 14, 23], "offlin": 8, "advantag": 8, "pipe": 8, "insid": 8, "broadcast": [8, 19], "even": 8, "debug": 8, "boost": 8, "mimic": 8, "offset": [8, 19, 20], "fake_sensor_command": 8, "boolean": [8, 19, 20], "fals": [8, 19, 20], "position_state_following_offset": 8, "custom_interface_with_following_offset": 8, "map": [8, 19, 20], "multipli": 8, "mimick": 8, "return_typ": [9, 14], "return": [9, 14, 19], "on_error": 9, "previous_st": 9, "success": [9, 14], "callbackreturn": 9, "again": [9, 11], "recov": 9, "reload": [9, 10], "substanti": 9, "renam": 9, "on_init": 9, "baseinterfac": 9, "remov": 9, "base_interfac": 9, "hpp": [9, 14], "hardware_interface_status_valu": 9, "rclcpp_lifecycl": [9, 14], "mai": [9, 15, 17, 21, 22], "strictli": 9, "last": [9, 14, 20], "status_": 9, "const": 9, "in_deactiv": 9, "undefin": 9, "refern": 9, "symbol": 9, "node_interfac": 9, "lifecyclenodeinterfac": 9, "rclcpp_lifecyl": 9, "cmakelist": [9, 14], "txt": [9, 14], "spin": 10, "spin_tim": 10, "hidden": 10, "discoveri": 10, "appli": 10, "alreadi": [10, 14, 20], "daemon": 10, "test_controller_nam": 10, "test_control": 10, "diffdrivecontrol": 10, "joint_state_control": 10, "jointstatecontrol": 10, "unclaim": [10, 11], "set_stat": 10, "adjust": 10, "strict": 10, "asap": 10, "switch_timeout": 10, "templat": [11, 14, 20], "demonstr": 11, "prove": 11, "comprehens": 11, "ros2_control_demo_bringup": 11, "gui": 11, "ros2_control_test_nod": 11, "rrbot_system_multi_interfac": 11, "py": 11, "list_hardware_interfac": 11, "load_control": 11, "forward_position_control": 11, "forward_velocity_control": 11, "forward_acceleration_control": 11, "forward_illegal1_control": 11, "forward_illegal2_control": 11, "joint_state_broadcast": 11, "set_controller_st": 11, "claim": 11, "now": [11, 14], "let": 11, "switch_control": 11, "inde": 11, "been": 11, "differenti": [12, 13, 23], "drive": [12, 13, 23], "bodi": 12, "translat": 12, "wheel": 12, "odometri": 12, "feedback": [12, 19, 20], "twist": 12, "x": [12, 16, 18], "linear": [12, 20], "z": [12, 16], "angular": 12, "ignor": [12, 20], "space": [12, 20], "sort": [13, 14], "accord": [13, 20], "position_control": [13, 20], "hw_if_posit": 13, "velocity_control": 13, "hw_if_veloc": 13, "effort_control": 13, "hw_if_acceler": 13, "hw_if_effort": 13, "interpol": [13, 20], "step": [14, 20, 23], "compil": 14, "rule": 14, "prepar": 14, "ament_cmak": 14, "search": 14, "recent": 14, "process": 14, "pkg": 14, "flag": [14, 20], "least": [14, 20], "package_nam": 14, "visibility_control": 14, "window": 14, "copi": 14, "prefix": [14, 16, 18], "guard": 14, "ifndef": 14, "preprocessor": 14, "engin": 14, "friend": 14, "uniqu": 14, "written": 14, "snake_cas": 14, "controllernam": 14, "public": 14, "overrid": 14, "exact": 14, "vector": 14, "store": 14, "simplifi": [14, 23], "further": 14, "parent": 14, "reserv": 14, "importantli": 14, "fine": 14, "ok": 14, "otherwis": [14, 19], "individu": 14, "none": [14, 19], "ask": [14, 19], "full": 14, "joint_nam": [14, 20], "interface_typ": 14, "assign": 14, "opposit": 14, "empti": 14, "constraint": [14, 20], "At": 14, "close": 14, "class_list_macro": 14, "controller_name_namespac": 14, "visibl": 14, "controller_name_packag": 14, "bottom": 14, "test_load_": 14, "content": 14, "specifi": [14, 20], "find_packag": 14, "rclcpp": 14, "directori": 14, "ament": 14, "cmake": 14, "pluginlib_export_plugin_description_fil": 14, "ament_cmake_gmock": 14, "ros2_control_test_asset": 14, "ament_add_gmock": 14, "ament_export_librari": 14, "ament_packag": 14, "test_depend": 14, "colcon": 14, "rememb": 14, "root": 14, "bash": 14, "enjoi": 14, "great": 14, "shell": 14, "certain": [15, 17, 21, 22], "achiev": [15, 17, 21, 22], "These": [15, 17, 21, 22], "geometry_msg": 16, "msg": [16, 18, 20], "wrenchstamp": 16, "wrapper": [16, 18], "forcetorquesensor": 16, "sensor_nam": [16, 18], "interface_nam": 16, "frame": [16, 18], "6d": 16, "ft": 16, "y": 16, "less": 16, "six": 16, "ax": 16, "example_nam": 16, "example_interfac": 16, "sensor_msg": 18, "imusensor": 18, "orient": 18, "angular_veloc": 18, "linear_acceler": 18, "joint_stat": 19, "dynamic_joint_st": 19, "By": [19, 20], "unless": 19, "latter": 19, "matrix": 19, "product": 19, "print": 19, "warn": 19, "use_local_top": 19, "my_state_broadcast": 19, "arrai": 19, "extra_joint": 19, "map_interface_to_joint_st": 19, "field": 19, "usecas": 19, "hydraul": [19, 20], "relianc": 19, "would": 19, "visual": 19, "robot_state_publish": 19, "rviz": 19, "techniqu": 19, "slightli": 19, "custom_interfac": 19, "kf_estimated_posit": 19, "derived_veloc": 19, "derived_effort": 19, "torque_sensor": 19, "current_sensor": 19, "reach": 20, "instant": 20, "mechan": 20, "spline": 20, "guarante": 20, "continu": 20, "discourag": 20, "becaus": 20, "yield": 20, "discontinu": 20, "cubic": 20, "quintic": 20, "pid": [20, 23], "similarli": 20, "eg": 20, "proxi": 20, "wrap": 20, "robust": 20, "clock": 20, "caus": 20, "queu": 20, "segment": 20, "ros__paramet": 20, "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "state_publish_r": 20, "action_monitor_r": 20, "20": 20, "allow_partial_joints_go": 20, "open_loop_control": 20, "true": 20, "stopped_velocity_toler": 20, "01": 20, "goal_tim": 20, "05": [20, 23], "03": 20, "monitor": 20, "action": 20, "control_msg": [20, 23], "followjointtrajectori": 20, "tri": 20, "numer": 20, "nan": 20, "std": 20, "numeric_limit": 20, "quiet_nan": 20, "toler": 20, "jointtrajectori": 20, "deviat": 20, "maxim": 20, "predefin": 20, "joint_trajectori": 20, "trajectory_msg": 20, "jointtrajectorycontrollerst": 20, "follow_joint_trajectori": 20, "server": 20, "position_velocity_control": 20, "position_velocity_acceleration_control": 20, "Not": 20, "yet": 20, "feedforward": 20, "term": [20, 23], "plu": 20, "171": 20, "Its": 23, "oper": 23, "overcom": 23, "idea": 23, "wide": 23, "toolkit": 23, "unreleas": 23, "smooth": 23, "doc": 23, "wg": 23, "meet": 23, "everi": 23, "wednesdai": 23, "join": 23, "announc": 23, "discours": 23, "googl": 23, "propos": 23, "previou": 23, "bug": 23, "tracker": 23, "minim": 23, "reproduc": 23, "regard": 23, "etc": 23, "question": 23, "answer": 23, "2023": 23, "12": 23, "31": 23, "built": 23, "gmt": 23}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 11], "process": 1, "merg": 1, "write": [1, 9, 14], "document": [1, 7, 23], "structur": [1, 2], "ci": 1, "configur": 1, "differ": 2, "ros_control": 2, "ros1": [2, 4], "hardwar": [2, 3, 4, 9, 12, 15, 17, 19, 20, 21, 22], "class": 2, "interfac": [2, 3, 10, 12, 15, 17, 19, 20, 21, 22], "control": [2, 3, 4, 6, 13, 14, 20], "": [2, 20], "access": 2, "migrat": [2, 9], "guid": 2, "ros2_control": [2, 4, 13, 23], "robothardwar": 2, "compon": [2, 3, 4, 8, 9], "get": 3, "start": 3, "compil": 3, "architectur": 3, "manag": [3, 6], "resourc": [3, 5], "user": 3, "descript": 3, "urdf": 3, "run": 3, "framework": 3, "your": 3, "robot": [3, 5], "project": 4, "idea": 4, "gsoc": 4, "2022": [4, 5], "asynchron": 4, "tutori": 4, "demo": [4, 11], "mission": 4, "add": 4, "support": 4, "semant": 4, "featur": [4, 7, 12, 20], "pariti": 4, "from": [4, 9], "present": 5, "2023": 5, "02": 5, "ro": 5, "meetup": 5, "munich": 5, "5": 5, "12": 5, "industri": 5, "confer": 5, "10": 5, "roscon": 5, "06": 5, "fr": 5, "2021": 5, "world": 5, "07": 5, "weekli": 5, "13": 5, "rosdevdai": 5, "05": 5, "diagram": 5, "imag": 5, "determin": 6, "helper": 6, "script": 6, "spawner": 6, "unspawn": 6, "api": 7, "core": 7, "function": 7, "concept": 7, "fake": 8, "gener": 8, "system": 8, "paramet": [8, 16, 18, 19, 20], "per": 8, "joint": [8, 20], "handl": 9, "error": 9, "happen": 9, "dure": 9, "read": 9, "call": 9, "foxi": 9, "galact": [9, 23], "command": [10, 12, 19], "line": 10, "list_control": 10, "list_controller_typ": 10, "list_hardware_interfac": 10, "load_control": 10, "reload_controller_librari": 10, "set_controller_st": 10, "switch_control": 10, "unload_control": 10, "organ": 11, "mode": 11, "switch": 11, "diff_drive_control": 12, "veloc": 12, "type": [12, 15, 17, 19, 20, 21, 22], "other": [12, 20], "nomenclatur": 13, "guidelin": 13, "best": 13, "practic": 13, "avail": 13, "broadcast": [13, 16, 18], "new": 14, "us": [14, 20], "extern": 14, "refer": 14, "effort_control": 15, "forc": 16, "torqu": 16, "sensor": [16, 18], "forward_command_control": 17, "imu": 18, "joint_state_broadcast": 19, "joint_trajectory_control": 20, "trajectori": 20, "represent": 20, "detail": 20, "about": 20, "ros2": 20, "special": 20, "version": 20, "jointtrajectorycontrol": 20, "tbd": 20, "position_control": 21, "velocity_control": 22, "welcom": 23, "overview": 23, "develop": 23, "organis": 23, "commun": 23}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "Getting Started": [[3, "getting-started"]], "Compiling": [[3, "compiling"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"], [13, "id1"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"], [9, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Resources": [[5, "resources"]], "Presentations": [[5, "presentations"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "Diagrams": [[5, "diagrams"]], "Images": [[5, "images"]], "Determinism": [[6, "determinism"]], "Helper scripts": [[6, "helper-scripts"]], "spawner": [[6, "spawner"]], "unspawner": [[6, "unspawner"]], "API Documentation": [[7, "api-documentation"]], "Core functionalities": [[7, "core-functionalities"]], "Features": [[7, "features"]], "Concepts": [[7, "concepts"]], "Fake Components": [[8, "fake-components"]], "Generic System": [[8, "generic-system"]], "Parameters": [[8, "parameters"], [16, "parameters"], [18, "parameters"], [19, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Handling of errors that happen during read() and write() calls": [[9, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to Galactic": [[9, "migration-from-foxy-to-galactic"]], "Command Line Interface": [[10, "command-line-interface"]], "list_controllers": [[10, "list-controllers"]], "list_controller_types": [[10, "list-controller-types"]], "list_hardware_interfaces": [[10, "list-hardware-interfaces"]], "load_controller": [[10, "load-controller"]], "reload_controller_libraries": [[10, "reload-controller-libraries"]], "set_controller_state": [[10, "set-controller-state"]], "switch_controllers": [[10, "switch-controllers"]], "unload_controller": [[10, "unload-controller"]], "Demos": [[11, "demos"]], "Repository organization": [[11, "repository-organization"]], "Mode switching demo": [[11, "mode-switching-demo"]], "diff_drive_controller": [[12, "diff-drive-controller"]], "Velocity commands": [[12, "velocity-commands"]], "Hardware interface type": [[12, "hardware-interface-type"], [15, "hardware-interface-type"], [17, "hardware-interface-type"], [19, "hardware-interface-type"], [20, "hardware-interface-type"], [21, "hardware-interface-type"], [22, "hardware-interface-type"]], "Other features": [[12, "other-features"], [20, "other-features"]], "ros2_controllers": [[13, "ros2-controllers"]], "Nomenclature": [[13, "nomenclature"]], "Guidelines and Best Practices": [[13, "guidelines-and-best-practices"]], "Available Controllers": [[13, "available-controllers"]], "Available Broadcasters": [[13, "available-broadcasters"]], "Writing a new controller": [[14, "writing-a-new-controller"]], "Useful External References": [[14, "useful-external-references"]], "effort_controllers": [[15, "effort-controllers"]], "Force Torque Sensor Broadcaster": [[16, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[17, "forward-command-controller"]], "IMU Sensor Broadcaster": [[18, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[19, "joint-state-broadcaster"]], "Commands": [[19, "commands"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "Trajectory representation": [[20, "trajectory-representation"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Details about parameters": [[20, "details-about-parameters"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "position_controllers": [[21, "position-controllers"]], "velocity_controllers": [[22, "velocity-controllers"]], "Welcome to the ros2_control documentation - Galactic!": [[23, "welcome-to-the-ros2-control-documentation-galactic"]], "Overview": [[23, "overview"]], "Development Organisation and Communication": [[23, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/humble/.buildinfo b/humble/.buildinfo index 4724d10ac11..a85a8f3af76 100644 --- a/humble/.buildinfo +++ b/humble/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 99fff7a72341596a9d77ced0d4f0c43c +config: 1cb8c07fd819994e46a823caa98cd946 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree b/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree index 8327d8dc315..54b1872e513 100644 Binary files a/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree and b/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree differ diff --git a/humble/.doctrees/doc/contributing/contributing.doctree b/humble/.doctrees/doc/contributing/contributing.doctree index 70807e98334..aecef46e988 100644 Binary files a/humble/.doctrees/doc/contributing/contributing.doctree and b/humble/.doctrees/doc/contributing/contributing.doctree differ diff --git a/humble/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree b/humble/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree index aaae5639b1c..2e825ba4665 100644 Binary files a/humble/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree and b/humble/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree differ diff --git a/humble/.doctrees/doc/gazebo_ros2_control/doc/index.doctree b/humble/.doctrees/doc/gazebo_ros2_control/doc/index.doctree index fbc5258c1e7..fee38216ceb 100644 Binary files a/humble/.doctrees/doc/gazebo_ros2_control/doc/index.doctree and b/humble/.doctrees/doc/gazebo_ros2_control/doc/index.doctree differ diff --git a/humble/.doctrees/doc/getting_started/getting_started.doctree b/humble/.doctrees/doc/getting_started/getting_started.doctree index 45d9b88f68e..b7935cb0558 100644 Binary files a/humble/.doctrees/doc/getting_started/getting_started.doctree and b/humble/.doctrees/doc/getting_started/getting_started.doctree differ diff --git a/humble/.doctrees/doc/gz_ros2_control/doc/index.doctree b/humble/.doctrees/doc/gz_ros2_control/doc/index.doctree index 40123da4f15..7767eaca6f2 100644 Binary files a/humble/.doctrees/doc/gz_ros2_control/doc/index.doctree and b/humble/.doctrees/doc/gz_ros2_control/doc/index.doctree differ diff --git a/humble/.doctrees/doc/project_ideas.doctree b/humble/.doctrees/doc/project_ideas.doctree index 04f1a2de912..d635c6b5fa9 100644 Binary files a/humble/.doctrees/doc/project_ideas.doctree and b/humble/.doctrees/doc/project_ideas.doctree differ diff --git a/humble/.doctrees/doc/resources/resources.doctree b/humble/.doctrees/doc/resources/resources.doctree index 17639bbc42b..b468ef2dfd5 100644 Binary files a/humble/.doctrees/doc/resources/resources.doctree and b/humble/.doctrees/doc/resources/resources.doctree differ diff --git a/humble/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree b/humble/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree index 10086164c37..ca2b8c06256 100644 Binary files a/humble/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree and b/humble/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree differ diff --git a/humble/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree index 18361f3525c..5649d3160f3 100644 Binary files a/humble/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control/doc/index.doctree b/humble/.doctrees/doc/ros2_control/doc/index.doctree index 8ca229ae9e4..c204d4f67b0 100644 Binary files a/humble/.doctrees/doc/ros2_control/doc/index.doctree and b/humble/.doctrees/doc/ros2_control/doc/index.doctree differ diff --git a/humble/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree index 2bf1c8aea50..bd19765b79d 100644 Binary files a/humble/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree and b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree index bffc0604218..80333dfc60c 100644 Binary files a/humble/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree and b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree index bf0a3263c84..773dbb0c6ee 100644 Binary files a/humble/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree and b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree index cca27282f55..dd3cb606a25 100644 Binary files a/humble/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree and b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree differ diff --git a/humble/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index 38634ca8642..b36db74cfc5 100644 Binary files a/humble/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/doc/index.doctree b/humble/.doctrees/doc/ros2_control_demos/doc/index.doctree index f339fb9941d..793544a3df0 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/doc/index.doctree and b/humble/.doctrees/doc/ros2_control_demos/doc/index.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree b/humble/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree index a7d62d3ebf1..1cc761db9da 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree and b/humble/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree index 4cdf9fa0e97..aec8912f5d2 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree index f5f6ccf0b78..ab0dc56b4d5 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree index ec03a0104df..ed39fe0b295 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree index 915eca2ac2d..3f5baab2c3d 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree index 613f37a903f..717968baf5c 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree index 15b5fe17b7d..15d996a24f8 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree index 4a5d956ad5d..a7d6e4ef529 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree index a0789fa705c..097307fb887 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree index 53b266a41e0..1011000d7af 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree index 40fdf1bf465..961558c5f8e 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree index f9a5c906cd3..1c944251730 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree index d041173b45a..79113712d8d 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree index 5a4cbd558d6..048bd4f5c41 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree index 119d6c3dfbc..5603735f496 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree index f587cddab53..9a076763954 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree index c811fe94e9a..be5c13a5ca9 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/humble/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index 51b6e8abd5e..7897271a4e0 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree and b/humble/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree b/humble/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree index aafefc0533a..1cc8855bdf8 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree and b/humble/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree index d9f5da0ae06..5339eff5c41 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree index 3e2b68a2e00..7c06da7210e 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree index 39b09eb2a5c..9288ab64325 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree index 328c796e070..e9c7f6894d5 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree index 7b96be0ed33..48990fb27a5 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree index 22b040625c5..572a421676b 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree b/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree index 7cf30d4ee22..613819ba9c3 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree and b/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree b/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree index cafa0c9f1c6..d908bee0c64 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree and b/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree index 53d838ad94e..84ccc99b2b9 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree index baa894d52b4..5fb09d6027e 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree index 8ed69f4b1e7..a065ce2c220 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree index 48328014726..22691eed089 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree index 2492944711e..44976e92aa2 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree index 69ce370d82e..9b7ce254895 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree index d98f626d4be..2a2a10761b4 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/simulators/simulators.doctree b/humble/.doctrees/doc/simulators/simulators.doctree index 465964568ec..781000818e5 100644 Binary files a/humble/.doctrees/doc/simulators/simulators.doctree and b/humble/.doctrees/doc/simulators/simulators.doctree differ diff --git a/humble/.doctrees/doc/supported_robots/supported_robots.doctree b/humble/.doctrees/doc/supported_robots/supported_robots.doctree index 40d7b944a9f..141c2b287a6 100644 Binary files a/humble/.doctrees/doc/supported_robots/supported_robots.doctree and b/humble/.doctrees/doc/supported_robots/supported_robots.doctree differ diff --git a/humble/.doctrees/environment.pickle b/humble/.doctrees/environment.pickle index 1d8615e6e48..a389d8958c4 100644 Binary files a/humble/.doctrees/environment.pickle and b/humble/.doctrees/environment.pickle differ diff --git a/humble/.doctrees/index.doctree b/humble/.doctrees/index.doctree index 8ce306ece33..c312dd0de6e 100644 Binary files a/humble/.doctrees/index.doctree and b/humble/.doctrees/index.doctree differ diff --git a/humble/doc/acknowledgements/acknowledgements.html b/humble/doc/acknowledgements/acknowledgements.html index 9f866702388..5f65900536e 100644 --- a/humble/doc/acknowledgements/acknowledgements.html +++ b/humble/doc/acknowledgements/acknowledgements.html @@ -154,18 +154,18 @@Built on 2023-12-30 at 05:31 GMT
+Built on 2023-12-31 at 05:31 GMT
diff --git a/humble/searchindex.js b/humble/searchindex.js index 9b9d56e712d..f511b64ffe5 100644 --- a/humble/searchindex.js +++ b/humble/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Hardware Components", "ros2_control
hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Humble!"], "terms": {"The": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 53], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 42, 43, 44, 45, 49, 50, 53], "peopl": [0, 1], "were": [0, 6, 27, 33, 43, 44], "ros2_control": [0, 1, 4, 7, 9, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 33, 35, 51], "framework": [0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 15, 16, 27, 34, 35, 41, 53], "show": [0, 1, 3, 4, 5, 7, 9, 11, 12, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 41, 43], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 41, 42, 43, 44, 52], "time": [0, 1, 2, 6, 7, 9, 13, 15, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 33, 35, 37, 42, 43, 44, 53], "activ": [0, 1, 2, 4, 9, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 42, 44], "assign": [0, 35], "finish": 0, "rate": [0, 22, 42, 43, 44], "last": [0, 11, 14, 27, 31, 35, 42, 43, 44], "date": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "1243": 0, "1023": 0, "0": [0, 3, 4, 5, 8, 12, 13, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 39, 40, 41, 42, 43, 44, 46, 47, 49], "82": 0, "2023": [0, 53], "12": [0, 16, 52, 53], "29t11": 0, "40": 0, "08z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": 0, "985": 0, "561": 0, "57": 0, "18t14": 0, "11": [0, 16], "03z": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "152": 0, "133": 0, "88": 0, "26t09": 0, "00": 0, "02z": 0, "fetch": 0, "30": [0, 3, 5, 22, 53], "03": [0, 44], "25": 0, "46": 0, "utc": 0, "dure": [0, 16, 27, 44], "past": [0, 43], "month": 0, "532": 0, "401": 0, "75": 0, "438": 0, "136": 0, "31": [0, 53], "141": 0, "122": 0, "87": 0, "have": [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14, 16, 18, 20, 22, 23, 27, 29, 30, 31, 32, 35, 41, 42, 44, 49], "contribut": [0, 4, 7], "develop": [0, 1, 7, 13, 14, 16, 35], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 27, 30, 32, 33, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 47, 49, 50, 51, 52, 53], "project": [0, 1, 53], "give": [0, 1, 7, 9, 16, 18, 22, 23, 43, 53], "valuabl": 0, "pull": [0, 14], "request": [0, 2, 14, 27, 41, 53], "see": [0, 1, 2, 4, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 35, 37, 40, 42, 44, 46, 47, 49], "more": [0, 1, 2, 3, 4, 5, 6, 9, 13, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 44, 49], "inform": [0, 3, 5, 8, 13, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 35, 53], "karsten": 0, "knese": 0, "karsten1987": 0, "186": 0, "118": 0, "63": 0, "2021": 0, "09": 0, "07t16": 0, "47": 0, "31z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "90": [0, 27], "80": 0, "89": 0, "27t10": 0, "54": 0, "11z": 0, "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "69": 0, "67": 0, "97": 0, "29t05": 0, "18": [0, 27], "25z": 0, "victor": 0, "lopez": 0, "v": [0, 15, 24, 42], "93": 0, "60": 0, "65": 0, "10": [0, 3, 5, 16, 23, 47], "14t09": 0, "01": [0, 39, 42, 44], "andyz": 0, "45": 0, "98": 0, "23t02": 0, "17": 0, "26z": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "157": 0, "43": [0, 4, 12, 22], "27": 0, "25t12": 0, "02": 0, "18z": 0, "olivi": 0, "stass": 0, "52": [0, 46], "77": 0, "26t08": 0, "13z": 0, "jordan": 0, "palacio": 0, "78": 0, "34": 0, "44": 0, "15t08": 0, "45z": 0, "erick": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 31, 35, 36, 41, 45, 47, 50, 53], "isla": 0, "osuna": 0, "erickiso": 0, "139": 0, "28": [0, 47], "20": [0, 39, 42, 44], "19t20": 0, "32": 0, "07z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "29": 0, "23": [0, 4], "79": 0, "2022": 0, "08": 0, "30t16": 0, "41": 0, "23z": 0, "none": [0, 8, 35, 41, 42, 44], "bijoua29": 0, "160": 0, "21": [0, 47], "13": [0, 16], "06": 0, "01t20": 0, "48": [0, 3, 5], "32z": 0, "jaron": 0, "l": 0, "167": 0, "10t19": 0, "59": 0, "59z": 0, "livanov93": 0, "164": 0, "05": [0, 44, 53], "22t06": 0, "28z": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "94": 0, "27t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "145": 0, "16": [0, 52], "25t06": 0, "15z": 0, "bailac": 0, "14": [0, 16, 47], "1": [0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 39, 43, 46, 47], "09t12": 0, "52z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "135": 0, "22t09": 0, "26": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "24t22": 0, "ari": 0, "synodino": 0, "progtologist": 0, "151": 0, "07": 0, "30t19": 0, "58z": 0, "chen": 0, "bainian": 0, "briancbn": 0, "36": 0, "9": [0, 6, 16, 40], "25t01": 0, "51": 0, "12z": 0, "paul": 0, "gesel": 0, "pac48": 0, "14t18": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "123": 0, "8": [0, 16], "25t18": 0, "19z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "07t07": 0, "01z": 0, "ddengster": 0, "2020": 0, "01t03": 0, "andr": 0, "montano": 0, "anfemosa": 0, "7": [0, 16, 19, 22, 47], "29t15": 0, "37z": 0, "homalozoa": 0, "x": [0, 22, 24, 25, 27, 31, 33, 37, 40, 47, 48, 52], "130": 0, "23t11": 0, "22": [0, 9], "mahaarbo": 0, "01t11": 0, "44z": 0, "matt": 0, "reynold": 0, "matthew": 0, "18t19": 0, "56": 0, "34z": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "04": [0, 9], "09t00": 0, "38": [0, 3, 5], "06z": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "04t13": 0, "50": [0, 4, 9, 22, 42, 44], "48z": 0, "dasroteskelett": 0, "149": 0, "6": [0, 16, 18, 27], "28t09": 0, "36z": 0, "brewmast": 0, "harderthan": 0, "124": 0, "26t15": 0, "47z": 0, "A": [0, 4, 7, 12, 14, 16, 24, 25, 35, 41, 43, 44], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "19t13": 0, "39": 0, "alex": 0, "moriarti": 0, "5": [0, 14, 16, 18, 19, 20, 21, 23, 24, 26, 27, 28, 29, 43, 47, 52], "42": 0, "20t19": 0, "55": 0, "jack": 0, "jackcent": 0, "02t15": 0, "37": 0, "17z": 0, "han": 0, "martin": 0, "duringhof": 0, "4": [0, 12, 16, 21, 23, 25, 28, 46], "29t21": 0, "15": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "20t07": 0, "40z": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "05t22": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "23t00": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "19t23": 0, "49z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "13t18": 0, "27z": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "26t17": 0, "05z": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "22t14": 0, "19": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "3": [0, 3, 4, 5, 6, 12, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 43, 44], "05t08": 0, "53": 0, "mrl1kor": 0, "malapatiravi": 0, "07t18": 0, "adam": 0, "serafin": 0, "serafadam": 0, "12t18": 0, "24": 0, "24z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "03t10": 0, "20z": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "22t13": 0, "tim": 0, "clepha": 0, "timpl": 0, "13t07": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "22t00": 0, "guihom": 0, "guihomework": 0, "17t15": 0, "jose": 0, "lui": 0, "rivero": 0, "j": 0, "26t13": 0, "peter": 0, "david": 0, "fagan": 0, "peterdavidfagan": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 44, 47, 52, 53], "23t22": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "27t03": 0, "57z": 0, "akash": 0, "ace314159": 0, "31t17": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "05t12": 0, "46z": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "01t12": 0, "49": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "09z": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "mhubii": 0, "21t11": 0, "50z": 0, "luka": 0, "macha": 0, "lukasmacha97": 0, "85": 0, "17t18": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t07": 0, "qiayuanliao": 0, "qiayuanl": 0, "35": [0, 47], "25t05": 0, "solomon": 0, "swiz23": 0, "15t15": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "08t14": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "05t10": 0, "53z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "01t13": 0, "22z": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "28t07": 0, "33z": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "schulz": 0, "schulze18": 0, "27t21": 0, "29z": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "franz": 0, "fjp": 0, "04t22": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "nour": 0, "saeed": 0, "d": [0, 16, 18, 29, 42], "dmitri": 0, "dignakov": 0, "13t16": 0, "ken551": 0, "03t11": 0, "54z": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "05t14": 0, "bedard": 0, "christophebedard": 0, "27t18": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "19t14": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "21t14": 0, "21z": 0, "flochr": 0, "20t10": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "51z": 0, "abishalini": 0, "sivaraman": 0, "27t14": 0, "ramcharanthota": 0, "ben": 0, "holden": 0, "bobblebal": 0, "01t10": 0, "Will": 0, "baker": 0, "willcbak": 0, "22t15": 0, "robotgir": 0, "17t16": 0, "33": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "17t10": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "18t09": 0, "josh": 0, "newan": 0, "joshnewan": 0, "14t08": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "26t10": 0, "stephen": 0, "street": 0, "sgstreet": 0, "05t20": 0, "jun": 0, "chenjunnn": 0, "09t06": 0, "daniel": 0, "zumkel": 0, "dzumkel": 0, "shane": 0, "loretz": 0, "sloretz": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "17t21": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "31t15": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "00z": 0, "carlo": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "35z": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "09t18": 0, "reframesystem": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "12t08": 0, "55z": 0, "addisu": 0, "z": [0, 22, 24, 25, 27, 31, 33, 37, 40, 47, 48], "taddes": 0, "azeei": 0, "14t20": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "09t08": 0, "sgmurrai": 0, "0000": 0, "00t00": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoya": 0, "tomoyafujita2016": 0, "usamahamayun1": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "66": 0, "64": 0, "92": 0, "71": 0, "104": 0, "91": 0, "03t19": 0, "14z": 0, "86": 0, "99": [0, 9], "72": 0, "link": [0, 3, 4, 5, 7, 8, 11, 27, 34], "list": [0, 4, 7, 8, 9, 11, 14, 15, 20, 27, 35, 42, 51, 52, 53], "who": 0, "submit": [0, 1, 7, 51, 52], "respect": [0, 3, 5, 6, 7, 42, 43, 44], "repositori": [0, 4, 6, 10, 12, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 33, 34], "ros2_control_demo": [0, 1, 4, 16, 18, 27, 29, 53], "control_toolbox": [0, 53], "gazebo_ros2_control": [0, 29], "gz_ros2_control": 0, "realtime_tool": [0, 6, 53], "kinematics_interfac": [0, 31], "control_msg": [0, 3, 5, 31, 42, 44, 47, 53], "ha": [0, 1, 3, 4, 5, 7, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 41, 42, 43], "receiv": [0, 2, 27, 42, 43], "major": [0, 40], "from": [0, 1, 2, 7, 8, 9, 13, 14, 15, 17, 27, 31, 33, 34, 35, 36, 37, 40, 42, 43, 44, 45, 46, 48, 50, 52, 53], "support": [0, 2, 3, 4, 5, 7, 13, 14, 15, 27, 31, 35, 41, 43, 44, 47, 51, 53], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 12, 13, 15, 16, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 43, 44, 53], "industri": [0, 4, 6, 16, 52], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 12, 18, 20, 22, 29, 33, 37, 41, 47, 48, 53], "softwar": [0, 4, 27], "compon": [0, 7, 9, 10, 12, 15, 16, 21, 22, 23, 24, 25, 26, 27, 31, 33, 34, 37, 40, 46, 47, 48, 53], "http": [0, 1, 4, 6, 16, 27, 30, 32, 49], "www": 0, "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 35, 40, 42, 43, 46, 49, 53], "horizon": 0, "research": [0, 7, 52], "innov": 0, "programm": 0, "under": [0, 7, 14, 20, 35, 43, 44, 47, 53], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 14, 16, 27, 29, 35, 42, 43], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 35, 44, 53], "consid": [1, 15, 42], "As": [1, 8, 12, 14, 18, 27, 33, 35], "an": [1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 18, 20, 22, 25, 27, 29, 30, 31, 32, 33, 35, 36, 41, 42, 44, 45, 47, 49, 50], "open": [1, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 42, 47], "sourc": [1, 3, 5, 7, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "we": [1, 3, 5, 6, 7, 8, 11, 16, 18, 20, 22, 27, 28, 29, 41], "welcom": 1, "each": [1, 4, 6, 8, 11, 12, 14, 16, 18, 21, 27, 30, 41, 47, 49], "contributor": 1, "regardless": 1, "background": [1, 16], "experi": 1, "To": [1, 2, 4, 8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 43, 51, 52, 53], "reduc": [1, 13], "entropi": 1, "univers": [1, 7, 27, 52], "our": [1, 3, 4, 5, 6, 7, 16, 18, 27], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 16], "set": [1, 2, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 18, 27, 36, 41, 42, 43, 44, 45, 47, 50], "up": [1, 7, 14, 16, 43], "some": [1, 3, 5, 6, 7, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 31, 41, 42, 44, 53], "standard": [1, 2, 6, 7, 14, 15, 21, 26, 27, 37, 41], "method": [1, 2, 4, 8, 9, 11, 14, 27, 35, 47], "requir": [1, 2, 4, 6, 14, 27, 31, 35, 36, 44, 45, 50], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 40, 41, 42, 43, 44, 46, 47, 48, 49, 53], "limit": [1, 3, 5, 7, 9, 16, 27, 33, 48], "scope": 1, "your": [1, 2, 7, 9, 13, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 32, 35, 51, 52, 53], "pr": [1, 51, 52], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 35, 41, 43, 44], "do": [1, 2, 4, 6, 7, 8, 9, 14, 16, 31, 35, 44], "one": [1, 2, 4, 6, 7, 8, 9, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 36, 37, 41, 43, 44, 45, 47, 49, 50, 53], "thing": [1, 3, 5, 16], "avoid": [1, 18, 21, 22, 23, 24, 25, 26, 28, 35], "ad": [1, 3, 5, 6, 9, 13, 14, 20, 22, 27, 35, 41], "random": [1, 21, 23, 24, 25, 26], "fix": [1, 2, 27, 30, 32, 49], "put": [1, 14, 35], "those": [1, 2, 4, 6, 8, 13, 14, 16, 27, 33, 35, 37, 41, 42, 43], "separ": [1, 2, 4, 16, 21, 41], "descript": [1, 2, 7, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 35], "titl": 1, "add": [1, 2, 8, 9, 11, 14, 27, 30, 31, 32, 35, 49, 51, 52], "short": [1, 35, 53], "summari": [1, 7, 53], "make": [1, 2, 5, 6, 7, 20, 27, 39, 53], "sure": [1, 5, 6, 18, 20, 21, 22, 23, 24, 25, 26, 28, 53], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 53], "green": [1, 43], "don": [1, 3, 8, 22, 42, 44], "t": [1, 3, 5, 8, 9, 16, 22, 42, 43, 44], "afraid": 1, "review": [1, 6, 53], "maintain": [1, 4, 6, 8, 16, 43], "new": [1, 7, 8, 14, 18, 20, 23, 27, 34, 43, 53], "code": [1, 2, 4, 6, 7, 14, 27], "test": [1, 3, 6, 13, 14, 16, 18, 22, 29, 30, 31, 32, 35, 47, 49], "If": [1, 2, 4, 8, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 35, 37, 41, 42, 43, 44, 47, 53], "function": [1, 2, 6, 7, 20, 27, 31, 47], "alwai": [1, 27], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 18, 27, 43, 44], "intent": [1, 8, 13], "section": [1, 2, 12, 14, 35, 44], "target": [1, 9, 14, 31, 35, 38, 42, 44], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 44], "read": [1, 2, 3, 4, 5, 9, 12, 14, 16, 20, 21, 24, 25, 27, 35, 41, 42, 46, 47], "understand": [1, 6, 43], "how": [1, 6, 7, 12, 14, 16, 19, 20, 21, 23, 24, 25, 26, 27, 29, 35], "handl": [1, 2, 4, 6, 7, 14, 24, 27, 30, 31, 32, 38, 39, 40, 44, 47, 49], "organ": [1, 7, 53], "guidelin": 1, "especi": [1, 2, 16, 47], "applic": [1, 4, 7, 9, 12, 27], "pleas": [1, 9, 26, 53], "keep": [1, 27, 35], "mind": [1, 35], "work": [1, 6, 7, 8, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35, 36, 41, 45, 48, 50, 53], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 13, 14, 15, 20, 23, 27, 31, 35, 39, 42, 44, 47], "That": [1, 14, 35], "wai": [1, 9, 14, 27, 35, 37, 44], "main": [1, 4, 6, 7, 9, 13, 27, 35, 47, 53], "repo": [1, 4, 16], "clean": 1, "featur": [1, 7, 13, 16, 18, 28, 47, 53], "branch": [1, 16], "check": [1, 2, 4, 6, 8, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 35, 42, 43, 44, 49, 53], "satisfi": 1, "befor": [1, 2, 8, 9, 14, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 43], "thei": [1, 2, 4, 6, 7, 8, 12, 13, 14, 15, 20, 35, 42, 44, 47], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 35, 37, 38, 42, 43, 44, 47, 53], "must": [1, 3, 5, 8, 9, 12, 16, 27, 40, 42, 44], "approv": 1, "two": [1, 4, 6, 8, 9, 14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 37, 43, 44, 47, 49], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 11, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 32, 33, 35, 36, 37, 41, 42, 43, 44, 45, 50], "except": [1, 27], "other": [1, 2, 3, 4, 7, 9, 14, 16, 21, 26, 27, 30, 32, 35, 41, 43, 47, 49], "where": [1, 3, 6, 8, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 30, 32, 33, 35, 41, 42, 43, 44, 47, 49], "back": 1, "traceabl": 1, "discuss": [1, 7, 20, 29, 43, 53], "suffici": [1, 3, 5, 8, 37], "note": [1, 4, 9, 18, 33, 44, 53], "still": [1, 2, 18, 20, 21, 22, 23, 24, 25, 26, 28, 34, 43], "encourag": 1, "help": [1, 9, 13, 14, 15, 35], "u": [1, 3, 5, 9, 16, 42], "increas": [1, 22], "pace": 1, "veri": [1, 2, 3, 5, 6, 12], "like": [1, 2, 3, 4, 5, 6, 7, 14, 16, 20, 27], "find": [1, 3, 5, 22], "issu": [1, 6, 53], "nobodi": 1, "els": 1, "squash": 1, "commit": 1, "messag": [1, 6, 9, 15, 23, 24, 25, 27, 37, 40, 41, 42, 43, 44, 46, 47, 53], "comment": [1, 27], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 15, 17, 27, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 49, 50, 53], "pre": 1, "correct": [1, 2, 43], "header": [1, 11, 14, 24, 25, 33, 35, 43], "address": [1, 27], "similar": [1, 4, 7, 12, 18, 20, 27], "mean": [1, 2, 8, 12, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 44], "result": [1, 4, 8, 9, 18, 27, 41, 43], "exactli": 1, "cowboi": 1, "style": [1, 14, 35], "over": [1, 6, 8, 22, 27], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 37, 41, 42, 43], "doesn": [1, 8], "matter": 1, "trivial": [1, 13], "chanc": 1, "proper": [1, 8, 9, 44], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 42], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 37, 38, 39, 40, 41, 43, 47, 49], "ping": 1, "them": [1, 6, 8, 9, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 41, 43, 52], "necessari": [1, 8, 11], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 8, 9, 11, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 42, 43, 53], "part": [1, 6, 7, 12, 27, 35, 43, 44], "For": [1, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 42, 44, 47, 49], "detail": [1, 2, 3, 4, 5, 11, 12, 13, 14, 20, 27, 29, 30, 32, 33, 35, 43, 44, 49], "thoma": 1, "cokela": 1, "info": [1, 9, 11, 14, 27], "tutori": [1, 16], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 21, 22, 24, 25, 26, 27, 33, 34, 35, 36, 37, 40, 42, 45, 46, 47, 50], "stabl": 1, "against": 1, "accept": [1, 14, 23, 35, 36, 42, 43, 44, 45, 50], "api": [1, 3, 5, 6, 14, 18, 21, 22, 23, 24, 25, 26, 28], "abi": 1, "chang": [1, 2, 4, 7, 9, 11, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 42, 43, 44], "e": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 37, 41, 42, 43, 45, 47, 50, 53], "name": [1, 2, 3, 4, 5, 7, 9, 12, 13, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 29, 31, 35, 37, 38, 40, 41, 42, 46, 47], "convent": [1, 27], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6], "same": [1, 8, 23, 27, 34, 37, 42, 43, 44], "build": [1, 14, 27, 31, 35], "dai": 1, "ros_distro": [1, 4, 16, 18], "foxi": [1, 7, 14], "galact": [1, 11, 14], "releas": [1, 4, 7, 16, 27], "version": [1, 6, 16, 44], "non": [1, 7, 20, 27, 37, 52], "brake": 1, "distribut": [1, 16, 53], "three": [1, 2, 4, 11, 12, 16, 27, 35, 43, 49], "stage": [1, 8, 20], "current": [1, 6, 11, 12, 14, 15, 43, 44, 47], "futur": [1, 7, 8, 43, 44], "compat": [1, 2, 7, 14, 16], "packag": [1, 2, 3, 5, 11, 14, 27, 30, 31, 32, 33, 35, 36, 37, 40, 44, 45, 46, 47, 49, 50, 53], "direct": [1, 2, 6, 14, 27, 35, 42], "local": [1, 3, 5, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 41], "possibl": [1, 4, 6, 9, 12, 16, 18, 21, 22, 23, 24, 25, 26, 28, 31, 35, 43], "core": [1, 10, 27], "immedi": [1, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29], "depend": [1, 4, 11, 12, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 43, 47], "fail": [1, 23, 27], "expect": [1, 6, 20, 27, 30, 32, 44, 47, 49], "after": [1, 8, 9, 14, 16, 18, 27, 33, 35, 42, 43, 44, 47, 48], "next": [1, 18, 27, 43], "sync": 1, "abl": 1, "potenti": [1, 35, 42], "mid": 1, "stat": 1, "power": [1, 3, 5, 7, 14], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 11, 12, 16, 20, 27, 35, 42, 44], "imposs": 2, "extend": [2, 4, 6, 8, 14, 35], "exist": [2, 4, 6, 8, 9, 11, 12, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35, 44], "addit": [2, 3, 5, 8, 16, 19, 22, 27], "sensor": [2, 4, 6, 11, 13, 14, 16, 21, 26, 27, 31, 34, 52], "actuat": [2, 4, 6, 11, 12, 13, 14, 16, 20], "tool": [2, 3, 5, 6, 7, 27], "without": [2, 3, 4, 5, 7, 13, 14, 16, 20, 29, 35, 42, 43], "combinedrobothardwar": 2, "drawback": [2, 53], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 12, 13, 16, 23, 41, 42, 43, 44], "extern": [2, 4, 6, 8, 13, 16, 31], "defin": [2, 3, 5, 6, 9, 13, 14, 16, 27, 31, 35, 37, 40, 41, 42, 43, 44, 46, 47], "system": [2, 3, 4, 5, 6, 7, 11, 12, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 44, 51, 52, 53], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 14, 16, 22, 35], "physic": [2, 4, 11, 12, 13], "cell": [2, 37], "surround": 2, "describ": [2, 4, 8, 12, 16, 18, 23, 27, 29, 43], "multi": [2, 4, 6, 7, 16, 23], "gripper": [2, 3, 4, 5, 7, 12, 13, 34], "out": [2, 3, 5, 9, 27, 33], "box": [2, 16, 18, 22, 23, 24, 25, 28, 29], "allow": [2, 3, 4, 5, 16, 27, 39, 42, 43, 44], "joint": [2, 4, 7, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 42, 43, 45, 47, 49, 50, 53], "posit": [2, 3, 4, 5, 7, 9, 12, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 36, 41, 42, 43, 44, 45, 47, 50], "veloc": [2, 3, 4, 5, 7, 8, 16, 21, 22, 23, 27, 31, 32, 33, 34, 39, 40, 41, 42, 43, 44, 45, 47, 50], "effort": [2, 3, 5, 16, 27, 34, 36, 39, 41, 42, 44], "hard": [2, 9], "data": [2, 4, 6, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 41, 43], "approach": [2, 8], "doe": [2, 8, 9, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35, 43, 44], "enforc": [2, 23, 27, 42], "string": [2, 9, 13, 16, 35, 38, 39, 40, 41, 42, 46, 47], "ensur": [2, 7, 9, 27, 43], "constant": [2, 16], "hardware_interfac": [2, 3, 4, 5, 11, 13, 14, 16, 21, 24, 25, 26, 27, 31, 33, 34, 35], "In": [2, 3, 4, 5, 6, 7, 8, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 34, 35, 41, 43, 47], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 14, 23, 35, 44], "regist": [2, 3, 5], "resourc": [2, 3, 5, 14, 23], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 14, 20, 23, 33, 35, 41, 43], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 37, 41, 42], "avail": [2, 4, 7, 9, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41, 44], "enabl": [2, 4, 6, 7, 11, 14, 15, 16, 22, 31, 37, 47], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 12, 13, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 35, 38, 43, 44, 47, 48, 49, 53], "systeminterfac": [2, 3, 5, 13, 24, 27], "granular": 2, "sensorinterfac": [2, 21, 25], "actuatorinterfac": [2, 21, 26], "abov": [2, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 34, 43], "choos": [2, 16, 47], "suitabl": [2, 7], "strategi": [2, 16, 43], "decid": 2, "which": [2, 3, 4, 5, 6, 7, 9, 14, 15, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 33, 35, 37, 40, 41, 42, 43, 44, 46, 47, 48], "case": [2, 3, 5, 6, 7, 8, 16, 20, 27, 35, 41, 43, 44, 53], "mayb": [2, 8], "sens": [2, 4, 34, 37], "multipl": [2, 4, 7, 8, 12, 14, 16, 41, 42], "constructor": [2, 14, 27, 35], "initi": [2, 14, 27, 35, 43], "variabl": [2, 14, 27, 35, 42], "need": [2, 3, 4, 5, 6, 7, 8, 12, 14, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35, 43], "commun": [2, 4, 6, 7, 14, 16, 18, 21, 22, 23, 24, 25, 27, 28, 52], "default": [2, 4, 8, 9, 13, 23, 30, 32, 38, 39, 40, 41, 42, 43, 44, 46, 47, 49], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41, 42, 43, 44, 47], "paramet": [2, 3, 5, 7, 14, 16, 18, 22, 27, 34, 35, 44], "pars": [2, 3, 5, 9, 10, 12], "urdf": [2, 7, 9, 12, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "snippet": 2, "hardwareinfo": [2, 27], "here": [2, 10, 14, 27, 35, 36, 44, 45, 50], "cross": [2, 41], "valu": [2, 4, 6, 12, 13, 14, 16, 18, 19, 20, 22, 24, 25, 27, 29, 35, 40, 41, 42, 44, 46, 47], "export_": 2, "_interfac": [2, 14], "joint_a2": 2, "extract": [2, 33, 48], "sensibl": 2, "stop": [2, 7, 8, 9, 11, 15, 18, 22, 23, 27, 33, 42, 48], "usual": [2, 4, 9, 13, 14, 27, 35], "includ": [2, 3, 5, 6, 11, 14, 15, 27, 35, 44, 52], "command": [2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 38, 39, 42, 43, 45, 49, 50, 53], "safe": [2, 27, 33, 35, 44, 48], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 20, 21, 22, 26, 34], "exchang": [2, 6, 18, 21, 22, 23, 24, 25, 26, 28, 53], "equival": [2, 27], "forget": [2, 4, 16, 44], "pluginlib_export_class": [2, 14, 16, 27, 35], "macro": [2, 4, 14, 16, 27, 35], "end": [2, 4, 11, 14, 27, 35, 42, 52], "cpp": [2, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "file": [2, 3, 4, 5, 6, 7, 9, 13, 14, 16, 31, 33, 35, 36, 44, 45, 50], "creat": [2, 3, 4, 5, 7, 9, 13, 14, 16, 27, 35], "xml": [2, 3, 5, 11, 14, 27, 35], "librari": [2, 4, 14, 15, 16, 30, 32, 34, 35, 47, 49], "pluginlib": [2, 3, 4, 5, 9, 14, 27, 35], "exampl": [2, 3, 4, 5, 6, 7, 8, 13, 15, 22, 31, 36, 37, 41, 44, 45, 50, 53], "rrbotsystempositiononlyhardwar": [2, 4, 12, 15, 18, 20, 25], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 15, 18, 31, 44], "real": [2, 6, 7, 9, 13, 22, 35, 41, 42, 53], "critic": [2, 6], "mark": [2, 20], "controllerinterfac": [2, 4, 8, 15, 27, 35], "member": [2, 14, 27, 35, 43], "init": 2, "call": [2, 3, 4, 5, 8, 14, 22, 27, 35], "lifecycl": [2, 4, 7, 9, 11, 14, 27], "declar": [2, 14, 27, 35], "state_interface_configur": [2, 27, 35], "command_interface_configur": [2, 27, 35], "design": [2, 4, 6, 7, 8, 27, 53], "updat": [2, 4, 8, 9, 16, 27, 35, 44, 47], "manag": [2, 3, 5, 6, 7, 10, 11, 14, 15, 16, 27, 35, 44, 53], "option": [2, 3, 5, 9, 11, 13, 14, 15, 18, 23, 35, 37, 41, 44, 47], "on_configur": [2, 14, 27, 35], "on_activ": [2, 11, 14, 27, 35], "on_deactiv": [2, 11, 14, 27, 35], "deactiv": [2, 4, 15, 18, 42], "final": [2, 7, 11, 27], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 13, 16, 20, 22, 27, 42, 43, 44, 53], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 16, 18, 29, 51], "classic": [3, 16, 29, 51], "provid": [3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 16, 18, 20, 23, 24, 25, 26, 27, 28, 29, 31, 35, 41, 42, 43, 44, 47, 53], "instanti": [3, 5, 9], "connect": [3, 4, 5, 13, 16, 24, 27], "model": [3, 5, 18, 27], "cd": [3, 4, 5, 16, 27], "docker": [3, 5, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "gui": [3, 5, 16, 18, 20, 21, 23, 24, 25, 26, 28, 29], "properli": [3, 5, 8, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "rm": [3, 4, 5, 16, 18, 29], "net": [3, 5, 7, 16, 18, 29], "host": [3, 5, 16, 18, 29, 52], "ros2": [3, 4, 5, 7, 9, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "launch": [3, 4, 5, 9, 13, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "cart_example_posit": [3, 5], "py": [3, 5, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "fals": [3, 5, 13, 16, 18, 29, 33, 39, 41, 42, 44, 47], "machin": [3, 4, 5, 6, 16, 29], "client": [3, 5, 29, 44], "gzclient": [3, 29], "rocker": [3, 5], "go": [3, 5, 7, 9, 14, 27, 35], "imag": [3, 5, 9, 29], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 16, 27, 43], "id": [3, 5, 15, 18, 21, 22, 23, 24, 25, 26, 28], "specif": [3, 5, 6, 8, 9, 11, 12, 27, 29, 38, 41, 43, 44], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "instruct": [3, 5, 22, 27, 29], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 39], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 18], "bash": [3, 4, 5, 14, 16, 18, 27, 35], "home": [3, 5], "ros2_w": [3, 4, 5, 16], "example_posit": [3, 5], "element": [3, 5, 27], "access": [3, 4, 5, 7, 9, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41], "interfac": [3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 18, 20, 21, 22, 24, 25, 26, 29, 30, 32, 34, 35, 37, 40, 42, 43, 46, 49, 51, 52, 53], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 13, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 33, 34, 35, 42, 48, 53], "slider_to_cart": [3, 5, 36, 45, 50], "command_interfac": [3, 4, 5, 12, 20, 27, 31, 42, 44], "param": [3, 4, 5, 9, 12, 13, 22, 27], "min": [3, 4, 5, 12, 27], "1000": [3, 5, 27], "max": [3, 4, 5, 12, 27, 39], "state_interfac": [3, 4, 5, 12, 27, 31, 42, 44], "initial_valu": [3, 5, 27], "mimick": [3, 5, 13], "manual": [3, 4, 5, 6, 9, 14, 16, 18, 23, 24, 25, 26, 28, 29, 35, 53], "multipli": [3, 5, 13], "definit": [3, 4, 5, 14, 27, 31, 33, 34, 35, 37, 42], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 27, 30, 32, 33, 37, 49], "xyz": [3, 5, 27], "rpy": [3, 5, 27], "1415926535": [3, 5], "parent": [3, 5, 14, 27, 35], "base": [3, 4, 5, 7, 11, 14, 15, 16, 21, 22, 26, 27, 33, 35, 38, 47, 48, 51], "child": [3, 5, 12, 27], "finger_left": [3, 5], "lower": [3, 5, 27], "upper": [3, 5, 27], "actual": [3, 5, 8], "load": [3, 4, 5, 9, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "appropri": [3, 5, 6, 43], "By": [3, 5, 9, 27, 41, 43], "though": [3, 5, 20], "extens": [3, 5], "via": [3, 4, 5, 16, 18, 24, 25, 27, 29, 44], "between": [3, 4, 5, 6, 11, 12, 16, 27, 30, 32, 41, 42, 43, 44, 49], "filenam": [3, 5, 27], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 14, 27, 31, 35, 44], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 18, 27], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 41], "config": [3, 5, 16], "cartpole_control": [3, 5], "yaml": [3, 4, 5, 6, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 44], "locat": [3, 27, 31], "server": [3, 39, 44], "node": [3, 4, 5, 9, 11, 13, 15, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "attempt": [3, 5, 9, 44], "get": [3, 5, 7, 8, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 53], "most": [3, 5, 6, 14, 16, 27, 35], "least": [3, 5, 12, 14, 35, 44], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 44], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 18, 20, 28], "etc": [3, 5, 9, 23, 27, 53], "These": [3, 5, 16, 27], "inherit": [3, 5, 9, 27], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 20, 21, 26, 36, 43, 45, 50], "properti": [3, 5, 27], "sub": [3, 5], "class": [3, 4, 5, 7, 9, 11, 14, 15, 27, 35, 38, 43], "specifi": [3, 5, 9, 14, 16, 27, 35, 42, 43, 44], "insid": [3, 5, 13, 16, 18], "publish": [3, 5, 6, 8, 12, 16, 19, 27, 31, 34, 37, 40, 41, 42, 43, 46, 48, 53], "stateinterfac": [3, 5, 27], "topic": [3, 5, 6, 7, 8, 12, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 34, 42, 44, 51], "sensor_msg": [3, 5, 40, 46], "msg": [3, 5, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 33, 36, 37, 38, 40, 43, 44, 45, 46, 47, 50], "jointstat": [3, 5], "joint_state_control": [3, 5, 15], "ros__paramet": [3, 5, 36, 44, 45, 50], "jointstatecontrol": [3, 5, 15], "action": [3, 5, 8, 42], "cart_pole_control": [3, 5], "follow_joint_trajectori": [3, 5, 44], "followjointtrajectori": [3, 5, 42, 44], "joint_trajectory_control": [3, 5, 6, 15, 18, 34], "write_op_mod": [3, 5], "contain": [3, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 36, 42, 43, 45, 47, 50], "content": [3, 14, 27, 35], "There": [3, 4, 5, 9, 11, 14, 16, 21, 24, 25, 26, 35, 43, 44], "meter": [3, 5, 27], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 13, 27], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 12, 13], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 44], "example_gripp": [3, 5], "humbl": [4, 16, 27], "want": [4, 8, 9, 16], "download": [4, 16], "mkdir": [4, 16], "p": [4, 9, 16, 42], "src": [4, 14, 16, 18, 27, 29, 31, 35], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 16, 27], "org": [4, 6, 30, 32, 49], "ros_control": [4, 6, 7, 53], "vc": [4, 16], "import": [4, 14, 16, 27, 35, 42], "rosdep": [4, 16], "rosdistro": [4, 16], "sudo": [4, 9, 16], "apt": [4, 16], "path": [4, 7, 16, 27, 44], "ignor": [4, 9, 16, 33, 42, 47, 48], "r": [4, 16, 28], "y": [4, 16, 22, 24, 25, 31, 37, 40], "everyth": [4, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35], "opt": [4, 16, 18], "setup": [4, 13, 14, 16, 18, 22, 27, 29, 35, 43], "sh": [4, 16, 18, 29], "colcon": [4, 14, 16, 27, 35], "symlink": [4, 16, 27], "folder": [4, 7, 14, 16, 18, 19, 22, 30, 31, 32, 35, 47, 49], "found": [4, 10, 14, 18, 19, 22, 31, 33, 35, 38, 44, 53], "github": [4, 6, 10, 16, 27, 34, 51, 52, 53], "figur": [4, 43], "cm": [4, 9], "abstract": [4, 7, 11, 27], "side": [4, 6, 7], "entri": [4, 35], "point": [4, 27, 35, 42, 43, 44, 53], "servic": [4, 6, 9, 11, 27], "executor": [4, 9], "custom": [4, 12, 13, 16, 21, 22, 37, 41, 51], "howev": [4, 6, 8, 9, 16, 20, 27], "recommend": [4, 7, 14], "ros2_control_nod": [4, 23, 27], "controller_manag": [4, 5, 6, 9, 15, 23, 35, 36, 44, 45, 50], "assum": [4, 8], "On": [4, 27], "hand": [4, 27, 52], "unload": [4, 9, 15], "match": [4, 16, 43], "report": [4, 6, 41, 53], "error": [4, 6, 9, 14, 20, 23, 27, 35, 41, 42, 44], "execut": [4, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 39, 42, 43, 44, 49], "loop": [4, 7, 9, 13, 18, 23, 24, 25, 26, 27, 28, 29, 35, 41, 42, 44, 47], "output": [4, 6, 7, 12, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 37], "driver": [4, 7, 16, 27, 52], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 52], "encod": [4, 27], "theori": [4, 53], "compar": [4, 6, 7], "refer": [4, 8, 20, 27, 52], "measur": [4, 13, 21, 31, 37, 41, 42, 52], "calcul": [4, 27, 31, 43, 47], "input": [4, 6, 7, 8, 12, 19, 20, 27, 31, 33, 36, 38, 42, 43, 45, 47, 48, 50], "object": [4, 27], "deriv": [4, 42, 43], "controller_interfac": [4, 15, 27, 31, 35, 37, 40, 46], "export": [4, 8, 9, 14, 16, 27, 31, 35], "plugin": [4, 9, 11, 12, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 35], "forwardcommandcontrol": [4, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29], "lifecyclenod": 4, "document": [4, 6, 7, 12, 13, 14, 16, 22, 33, 43, 44], "interact": [4, 7, 9, 15, 19, 27, 29], "srv": [4, 44], "controller_manager_msg": 4, "while": [4, 6, 7, 27, 43], "directli": [4, 18, 20, 29, 53], "line": [4, 10, 11, 14, 18, 27, 35, 41, 43], "friendli": 4, "cli": [4, 9, 10, 15, 18, 19, 22, 23, 24, 25, 26, 28, 29], "auto": [4, 9], "complet": [4, 11, 20, 27, 43], "rang": [4, 12, 34], "common": [4, 6, 16, 34, 41, 53], "capabl": [4, 6], "realiz": [4, 7, 43, 44], "repres": [4, 11, 27, 33, 43], "dynam": [4, 14, 27, 35], "dof": [4, 12, 16, 27, 39], "differ": [4, 6, 7, 12, 14, 16, 18, 19, 22, 23, 27, 36, 37, 41, 43, 45, 47, 50], "transmiss": [4, 16], "humanoid": 4, "logic": 4, "channel": [4, 52], "kuka": [4, 18, 23, 24, 25, 52], "rsi": [4, 18, 24, 25, 52], "relat": [4, 6, 7], "forc": [4, 7, 12, 15, 24, 25, 31, 34, 52], "torqu": [4, 12, 24, 25, 31, 34], "simpl": [4, 6, 7, 8, 14, 16, 18, 20, 22, 27, 28, 35, 39], "valv": [4, 12], "mandatori": [4, 9, 37, 42], "dc": 4, "arduino": [4, 21, 26], "board": 4, "modular": [4, 7, 16, 27], "independ": [4, 7, 25], "explan": [4, 14], "given": [4, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 36, 42, 43, 44, 45, 50], "through": [4, 6, 7, 8, 9, 14, 15, 16, 20, 27, 35, 44, 53], "tag": [4, 9, 12, 14, 16, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 35, 53], "chosen": [4, 12], "structur": [4, 6, 8, 14, 27, 33, 35, 42, 43], "track": [4, 30, 49, 53], "togeth": [4, 8, 12, 22, 24, 47], "xacro": [4, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "hereund": 4, "rrbot": [4, 12, 15, 16, 19, 21, 23, 24, 25, 26, 28], "effector": [4, 52], "site": 4, "rrbotsystempositiononli": [4, 25], "ros2_control_demo_hardwar": [4, 12, 15], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 12], "joint1": [4, 12, 13, 15, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 44], "joint2": [4, 12, 15, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 44], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 12, 24, 25], "frame_id": [4, 12, 24, 25, 37, 40, 46, 47], "rrbot_tcp": 4, "min_forc": 4, "100": [4, 12, 36, 45, 50], "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 13, 22, 27, 29, 42], "pure": 4, "stack": [4, 7, 53], "could": [4, 7, 8, 16, 23, 35, 41, 44], "altern": [4, 18, 44], "script": [4, 6, 14, 35], "skeleton": 4, "sim": [5, 15, 51], "dockerfil": [5, 16], "Then": [5, 8, 16, 27, 29, 43], "ign": 5, "meet": [5, 53], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 13, 14, 23, 33, 40, 41, 44, 53], "gener": [6, 7, 12, 14, 15, 21, 22, 23, 24, 25, 26, 27, 34, 35, 44, 47, 53], "task": [6, 7, 33], "envis": 6, "simul": [6, 13, 15, 16, 18, 20, 22, 24, 25, 27], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 16, 53], "place": [6, 35], "draft": 6, "gpio": [6, 16, 27], "mode": [6, 8, 14, 20, 23, 31, 42, 43, 47], "switch": [6, 15, 16, 18, 23], "movement": 6, "safeti": [6, 27], "skill": 6, "prefer": 6, "c": [6, 9, 12, 14, 15, 18, 27], "familiar": [6, 53], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 46], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 11, 12, 44], "easi": 6, "therefor": [6, 8, 9, 16, 35, 41, 42, 44], "often": [6, 13, 22, 35, 41], "orchestr": 6, "purpos": [6, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29], "conductor": 6, "scenario": [6, 43], "moment": [6, 8, 44], "right": [6, 16], "replac": [6, 11, 34, 44], "high": [6, 9, 43], "moveit2": [6, 7, 34, 52], "simplecontrollermanag": 6, "goal": [6, 7, 12, 18, 23, 24, 25, 26, 28, 29, 39, 42, 44, 53], "form": [6, 16], "behavior": [6, 13, 27, 43], "benchmark": 6, "statu": [6, 8, 11, 15, 18, 42], "format": [6, 27, 31, 41, 44], "preset": 6, "modul": [6, 20], "reli": 6, "doubl": [6, 9, 13, 18, 27, 30, 32, 39, 42, 46, 47, 49], "desir": [6, 42, 44], "both": [6, 7, 20, 27, 28, 41, 42, 43, 44], "improv": 6, "readabl": [6, 27], "earlier": 6, "concept": [6, 7, 8, 13, 16, 18], "introduc": [6, 7, 8, 18, 27], "essenti": [6, 18], "group": [6, 8, 9, 12, 44, 53], "instanc": [6, 9, 20, 41], "imu": [6, 12, 34], "typic": [6, 12, 22, 41, 42], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 20], "struct": 6, "low": [6, 7], "profil": 6, "intern": [6, 8, 12, 14, 18, 20, 21, 22, 23, 24, 25, 26, 28, 31, 43, 44], "relev": [6, 42, 47, 53], "addition": [6, 27, 30, 32, 49, 53], "few": [6, 7], "175": 6, "rewrit": [6, 53], "rich": 6, "wa": [6, 14, 18, 22, 23, 27, 35, 43], "motiv": 6, "adopt": 6, "port": [6, 11, 12], "quit": 6, "miss": [6, 41, 43, 44], "diff_drive_control": [6, 8, 15, 22], "consist": [6, 44, 53], "onc": [6, 7, 18, 22, 23, 24, 25, 27, 28], "identifi": [6, 27], "much": [6, 8, 18, 21, 22, 23, 24, 25, 26, 28, 35, 44], "303": 6, "304": 6, "stretch": 6, "81": 6, "302": 6, "unit": 6, "gmock": 6, "cc": [7, 43, 44], "BY": [7, 43, 44], "licens": [7, 43, 44], "author": [7, 8], "either": [7, 9, 18, 23, 24, 25, 26, 28, 29, 43], "down": [7, 27], "below": [7, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 42, 43, 44], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 34, 48], "control": [7, 10, 11, 12, 13, 14, 15, 16, 30, 32, 37, 40, 41, 42, 43, 46, 48, 49, 52, 53], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 27], "share": [7, 14, 27, 29, 35, 47], "well": [7, 9, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 44], "perform": [7, 9, 27], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 14, 35], "top": 7, "virtual": [7, 8, 32], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 18, 27], "explicit": [7, 27, 42], "chain": [7, 10, 15, 16, 27, 31, 42, 47], "emerg": 7, "handler": 7, "mock": [7, 10, 14], "usag": [7, 8, 9, 12, 15, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 35], "focu": [7, 8], "becom": [7, 20], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 34], "practic": 7, "tip": [7, 27], "hot": 7, "shown": [7, 27, 43], "furthermor": [7, 22], "offer": [7, 9, 14, 27], "expos": [7, 16, 20], "problem": [7, 53], "manipul": [7, 16, 18, 20, 27, 28, 42], "plan": [7, 53], "autonom": 7, "navig": 7, "ideal": [7, 13], "made": [7, 11], "mobil": [7, 16, 22, 33, 47, 48], "arm": [7, 18, 20, 28], "extra": [7, 27, 41], "readi": [7, 14, 16, 20, 34, 35], "studi": 7, "ur": 7, "With": [7, 27, 29, 44], "moveit": [7, 13], "ingredi": 7, "run": [7, 8, 9, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 47], "scale": [7, 42], "factor": 7, "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 14, 35], "trajectori": [7, 18, 27, 34, 42, 53], "admitt": [7, 34], "One": [7, 8], "reason": [7, 8, 9, 27], "upgrad": 7, "ros1": [7, 16], "better": 7, "realtim": [7, 9, 27, 33, 44, 48, 53], "contact": 7, "insert": 7, "singl": [7, 24, 39], "waypoint": [7, 43, 44], "mani": [7, 27, 34, 35], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 16, 22, 27, 30, 31, 32, 47, 49], "acceler": [7, 16, 23, 27, 31, 33, 40, 42, 43, 44, 48], "jerk": [7, 33, 48], "obei": [7, 27], "demo": [7, 12], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 27], "cycl": [7, 27], "_control": [7, 16], "wild": 7, "materi": 7, "quick": [7, 11], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 13, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 34, 42, 44, 53], "done": [7, 8, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35], "look": [7, 22], "modifi": 7, "simpli": [7, 9, 18, 43, 44], "edit": 7, "collect": [7, 36, 45, 50], "semant": [7, 12, 31, 37, 40, 46], "monolit": 7, "controlko": 7, "propos": [8, 53], "minim": [8, 53], "viabl": [8, 27], "serial": [8, 27], "tri": [8, 42], "clariti": 8, "arbitrari": [8, 27, 44], "order": [8, 27], "nevertheless": 8, "convinc": 8, "would": [8, 41], "unnecessari": 8, "long": 8, "term": [8, 53], "clearer": 8, "let": [8, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28], "yet": [8, 9, 16, 20, 33, 43, 44], "controllers_chain": 8, "doc": [8, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 53], "position_track": 8, "pid": [8, 42, 43, 44, 53], "now": [8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 43], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 14, 16, 35, 43, 53], "At": [8, 14, 20, 35], "attach": 8, "disabl": [8, 13, 47], "subscrib": [8, 19, 20, 27], "differenti": [8, 16, 22, 32, 33, 34, 53], "interfaceconfigur": [8, 27], "input_interface_configur": 8, "const": [8, 11, 27], "anoth": [8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 44], "simplic": [8, 27], "try": [8, 27], "exclus": [8, 27], "rather": [8, 16, 43], "void": 8, "set_chained_mod": 8, "bool": [8, 39, 42, 47], "flag": [8, 14, 35, 42], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 15, 31, 35, 44, 47], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 33], "cmd_vel_unstamp": [8, 22, 33], "Its": [8, 53], "continu": [8, 42, 43, 44], "chainabl": [8, 16, 20, 33, 44], "ownership": 8, "process": [8, 14, 27, 35, 43], "claim": [8, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "vector": [8, 20, 27, 35], "invers": [8, 27], "rule": [8, 9, 14, 35], "think": [8, 16], "break": [8, 13], "middl": [8, 32], "unavail": [8, 20], "anyth": 8, "confus": 8, "irelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 27, 42], "linux": 9, "comput": [9, 16, 33, 47, 48], "throughput": 9, "suit": 9, "easiest": [9, 14, 35], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 27], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 27], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 15, 27, 33, 44], "log": 9, "again": [9, 11, 18, 22, 27], "activate_components_on_start": 9, "empti": [9, 35, 40, 44, 47], "attribut": [9, 27], "stai": 9, "unconfigur": [9, 11, 18, 27], "configure_components_on_start": 9, "update_r": [9, 36, 45, 50], "frequenc": 9, "startup": 9, "h": [9, 14, 15, 35], "param_fil": 9, "controller_typ": 9, "timeout": [9, 15, 39, 42, 47, 48], "controller_manager_timeout": 9, "argument": [9, 14, 15, 18, 21, 22, 23, 24, 25, 26, 28], "exit": [9, 15], "leav": 9, "namespac": [9, 14, 27, 34, 35, 41], "kill": [9, 15, 27], "wait": [9, 15, 26, 42], "until": [9, 27, 42, 43], "mai": [9, 11, 24, 34, 36, 45, 50], "taken": [9, 47], "becaus": [9, 12, 18, 20, 21, 22, 23, 24, 25, 26, 28, 43], "rclcpp": [9, 14, 27, 35], "than": [9, 39, 42, 44, 47], "global": 9, "remap": 9, "forcibli": 9, "lead": [9, 44], "duplic": [9, 47], "occur": [9, 27], "whether": 9, "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28], "caus": [9, 43, 44, 47], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "std": [9, 27, 42], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 18], "broadcast": [9, 12, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 41], "achiev": [9, 27, 36, 45, 50], "return": [9, 11, 14, 18, 27, 35, 39, 41, 43, 44], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 42], "doxygen": [10, 14], "cascad": 10, "return_typ": [11, 27, 35], "on_error": [11, 14, 27], "previous_st": [11, 27], "success": [11, 14, 27, 35, 39, 44], "callbackreturn": [11, 14, 27], "failur": 11, "recov": 11, "reload": [11, 15], "substanti": 11, "renam": 11, "on_init": [11, 14, 27, 35], "baseinterfac": 11, "remov": 11, "base_interfac": 11, "hpp": [11, 14, 16, 27, 31, 35], "hardware_interface_status_valu": 11, "rclcpp_lifecycl": [11, 14, 27, 35], "strictli": [11, 12], "status_": 11, "in_deactiv": 11, "undefin": 11, "refern": 11, "symbol": 11, "node_interfac": [11, 27], "lifecyclenodeinterfac": [11, 14, 27], "rclcpp_lifecyl": 11, "cmakelist": [11, 14, 27, 35], "txt": [11, 14, 27, 35], "devic": [12, 52], "associ": 12, "joint_state_broadcast": [12, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "coupl": 12, "ship": 12, "cannot": [12, 20, 27, 44], "keyword": 12, "digit": 12, "signal": 12, "electr": 12, "analog": 12, "within": [12, 18, 44], "vacuum": [12, 19], "flang": 12, "off": 12, "rrbotsystemmutiplegpio": 12, "example_param_hw_start_duration_sec": 12, "example_param_hw_stop_duration_sec": 12, "example_param_hw_slowdown": 12, "flange_digital_io": 12, "digital_output1": 12, "know": 12, "digital_output2": 12, "digital_input1": 12, "digital_input2": 12, "flange_analog_io": [12, 19], "analog_output1": [12, 19], "analog_input1": [12, 19], "analog_input2": [12, 19], "flange_vacuum": [12, 19], "suction": 12, "grasp": 12, "multimod": 12, "multimodalgripp": 12, "parallel_fing": 12, "temperatur": [12, 16], "feedback": [12, 13, 21, 41, 42, 44, 47, 48], "adjust": [12, 15, 18, 27], "calibr": 12, "2d": [12, 24, 25], "ft": [12, 24, 25, 37], "choic": [12, 47], "matric": 12, "rrbotforcetorquesensor2d": 12, "forcetorquesensor2dhardwar": 12, "fx": 12, "tz": 12, "kuka_tcp": 12, "fx_rang": 12, "tz_rang": 12, "temp_feedback": 12, "calibration_matrix_nr": 12, "mirror": 13, "correspond": [13, 14, 27, 35, 47, 53], "offlin": 13, "advantag": 13, "pipe": 13, "even": [13, 20, 44], "debug": 13, "boost": 13, "mimic": 13, "offset": [13, 41, 42], "fake": 13, "disable_command": 13, "boolean": [13, 41, 42], "erron": [13, 27], "noth": 13, "suddenli": 13, "Or": [13, 18, 23, 24, 25, 26, 28, 29], "mock_sensor_command": 13, "position_state_following_offset": 13, "custom_interface_with_following_offset": 13, "map": [13, 41, 44], "compil": [14, 27, 29, 35], "prepar": [14, 23, 35], "ament_cmak": [14, 35], "search": [14, 35], "recent": [14, 35], "pkg": [14, 35], "package_nam": [14, 35], "alreadi": [14, 15, 16, 18, 20, 27, 29, 35, 44], "robot_hardware_interface_nam": 14, "visibility_control": [14, 35], "window": [14, 35], "copi": [14, 35], "prefix": [14, 31, 35, 37, 40, 46], "guard": [14, 35], "ifndef": [14, 35], "preprocessor": [14, 35], "engin": [14, 35], "friend": [14, 35], "interface_typ": [14, 35], "uniqu": [14, 27, 35], "written": [14, 21, 26, 27, 35], "snake_cas": [14, 35], "interfacetyp": 14, "hardwareinterfacenam": 14, "public": [14, 27, 35], "on_cleanup": [14, 27], "on_shutdown": [14, 27], "overrid": [14, 27, 35, 36, 44, 45, 50], "export_state_interfac": [14, 27], "export_command_interfac": [14, 27], "prepare_command_mode_switch": 14, "perform_command_mode_switch": 14, "further": [14, 35], "exact": [14, 35], "simplifi": [14, 27, 35, 53], "valid": [14, 16, 46], "fine": [14, 22, 35], "otherwis": [14, 16, 35, 41, 42], "opposit": [14, 35], "remind": 14, "full": [14, 16, 35], "joint_nam": [14, 31, 35, 42], "shutdown": [14, 27], "gracefulli": 14, "store": [14, 35], "close": [14, 35], "class_list_macro": [14, 27, 35], "my_hardware_interface_packag": 14, "robothardwareinterfacenam": 14, "second": [14, 15, 18, 20, 23, 24, 25, 26, 27, 28, 29, 35, 43, 53], "visibl": [14, 35], "mock_compon": [14, 22], "bottom": [14, 27, 35], "test_load_": [14, 35], "load_generic_system_2dof": 14, "test_generic_system": 14, "find_packag": [14, 35], "directori": [14, 35], "ament": [14, 35], "cmake": 14, "pluginlib_export_plugin_description_fil": [14, 27, 35], "ament_cmake_gmock": [14, 35], "ament_add_gmock": [14, 35], "ament_export_librari": [14, 35], "ament_packag": [14, 35], "test_depend": [14, 35], "rememb": [14, 35], "root": [14, 35], "workspac": [14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "enjoi": [14, 35], "great": [14, 35], "templat": [14, 16, 27, 35], "shell": [14, 35], "onward": 14, "spin": 15, "spin_tim": 15, "hidden": 15, "discoveri": 15, "daemon": 15, "test_controller_nam": 15, "test_control": 15, "diffdrivecontrol": [15, 22], "verbos": 15, "label": [15, 21, 22, 24, 25, 26, 43], "unclaim": [15, 20, 23], "inact": [15, 18, 23, 27], "ctrl1": 15, "ctrl2": 15, "strict": 15, "asap": 15, "switch_timeout": 15, "diagram": 15, "tmp": 15, "controller_diagram": 15, "gv": 15, "pdf": [15, 27], "demonstr": [16, 18, 20, 22, 23, 28, 29], "prove": 16, "checkout": 16, "roscon2022_workshop": 16, "hardwareinterfac": [16, 27], "diffbot": 16, "degre": [16, 27, 44, 47], "freedom": [16, 27, 47], "components_architecture_and_urdf_exampl": 16, "revolut": [16, 18, 20, 27, 28], "drive": [16, 22, 30, 32, 33, 34, 47, 48, 49, 53], "accord": [16, 22, 27], "intermedi": 16, "car": 16, "steer": [16, 30, 32, 34, 47, 48, 49], "tba": 16, "tabl": 16, "offici": [16, 52], "easili": 16, "aptitud": 16, "might": [16, 43], "own": [16, 18, 27], "git": [16, 27], "clone": [16, 27], "b": [16, 27], "merg": 16, "f": 16, "procedur": 16, "rviz2": [16, 18, 29], "visual": [16, 18, 25, 27, 41], "joint_state_publisher_gui": [16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "bring": 16, "ros2_control_demo_example_1": [16, 18], "view_robot": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "omit": 16, "termin": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "example_1": [16, 18, 19, 20, 29], "rviz": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41], "slider": 16, "around": [16, 37, 40, 42, 46], "ros2_control_demo_example_2": [16, 22], "come": [16, 44], "categori": 16, "individu": [16, 35, 46], "position_in_degre": 16, "hardware_interface_type_valu": [16, 31], "6dof": 16, "variou": [18, 28], "invert": 18, "pendulum": 18, "fun": 18, "proprietari": [18, 21, 22, 23, 24, 25, 26, 28], "view": [18, 27], "recreat": 18, "robotmodel": 18, "displai": [18, 20, 21, 23, 24, 25, 26, 28, 29], "ros2_control_demo_descript": 18, "ok": [18, 21, 22, 23, 24, 25, 26, 27, 28, 35], "warn": [18, 21, 22, 23, 24, 25, 26, 28, 41], "invalid": [18, 21, 22, 23, 24, 25, 26, 28], "frame": [18, 21, 22, 23, 24, 25, 26, 27, 28, 37], "odom": [18, 21, 22, 23, 24, 25, 26, 28, 33, 47], "cantransform": [18, 21, 22, 23, 24, 25, 26, 28], "target_fram": [18, 21, 22, 23, 24, 25, 26, 28], "happen": [18, 21, 22, 23, 24, 25, 26, 27, 28], "ctrl": 18, "lot": [18, 20, 21, 22, 23, 24, 25, 26, 28], "exemplari": [18, 21, 23, 24, 25, 26, 28, 30, 32, 47, 49], "orang": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "yellow": [18, 20, 21, 23, 24, 25, 26, 28, 29], "rectangl": [18, 20, 21, 23, 24, 25, 26, 28], "introspect": [18, 20, 21, 22, 23, 24, 25, 26, 28], "list_hardware_interfac": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "entrypoint": 18, "nomin": 18, "marker": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "list_control": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "jointstatebroadcast": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "forward_position_control": [18, 19, 20, 23, 24, 25, 26, 28, 29], "forward_command_control": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 45, 50], "pub": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "std_msg": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 38, 45, 50], "float64multiarrai": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 38, 45, 50], "everi": [18, 23, 24, 25, 26, 27, 28, 29, 38, 42, 53], "test_forward_position_control": [18, 23, 24, 25, 26, 28, 29], "block": [18, 20, 21, 23, 24, 25, 26, 27, 28], "got": [18, 19, 20, 21, 22, 23, 24, 25, 26], "50000": [18, 20, 24, 25, 26], "echo": [18, 19, 20, 22, 24, 25, 29], "joint_stat": [18, 20, 22, 29, 41], "dynamic_joint_st": [18, 20, 29, 41], "load_control": 18, "joint_trajectory_position_control": 18, "successfulli": [18, 21, 26], "set_controller_st": 18, "rrbot_control": [18, 19, 20, 28, 29], "four": [18, 21, 30], "test_joint_trajectory_control": 18, "rrbot_joint_trajectory_publish": 18, "rrbot_descript": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29], "rrbot_forward_position_publish": [18, 29], "ros2_control_demo_example_10": 19, "contrast": 19, "gpio_control": 19, "gpiocontrol": 19, "interface_nam": [19, 37, 38], "1199574016": 19, "1676318848": 19, "rrbotsystemwithgpiohardwar": 19, "gp": 19, "example_12": 20, "been": 20, "known": 20, "passthrough_control": 20, "ros2_control_demo_example_12": 20, "ident": [20, 22, 27, 29, 43], "joint2_position_control": 20, "passthroughcontrol": 20, "joint1_position_control": 20, "someth": 20, "automat": [20, 27, 29, 33, 48], "appear": 20, "whose": [20, 43], "henc": [20, 27], "launch_chained_control": 20, "position_control": [20, 34, 38], "streamlin": 20, "clearli": 20, "sent": [20, 42], "reflect": 20, "canopen_402": [21, 26], "modbu": [21, 26], "rs232": [21, 26], "rs485": [21, 26], "ros2_control_demo_example_14": 21, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 21, "list_hardware_compon": [21, 22, 24, 25, 26], "rrbotmodularjoint2": [21, 26], "rrbotactuatorwithoutfeedback": 21, "rrbotmodularjoint1": [21, 26], "rrbotmodularpositionsensorjoint2": 21, "rrbotsensorpositionfeedback": 21, "rrbotmodularpositionsensorjoint1": 21, "forward_velocity_control": [21, 23], "000000": 21, "00000": [21, 22, 23], "25300": 21, "rrbot_actuator_without_feedback": 21, "rrbot_sensor_for_position_feedback": 21, "example_2": 22, "excess": 22, "print": [22, 41], "left_wheel_joint": 22, "right_wheel_joint": 22, "diffbot_base_control": 22, "diff": 22, "geometry_msg": [22, 24, 25, 33, 37, 47], "twist": [22, 33, 47, 48], "linear": [22, 27, 33, 40, 43, 47, 48], "angular": [22, 33, 40, 47, 48], "circl": 22, "diffbotsystemhardwar": 22, "33333": 22, "faster": 22, "genericsystem": 22, "use_mock_hardwar": 22, "true": [22, 29, 33, 42, 43, 44, 47], "calculate_dynam": 22, "diffbot_control": 22, "diffbot_descript": 22, "diffbot_system": 22, "example_3": 23, "fri": [23, 52], "abb": [23, 52], "yumi": 23, "schunk": [23, 52], "lwa4p": 23, "illeg": 23, "declin": 23, "faulti": 23, "ros2_control_demo_example_3": 23, "rrbot_system_multi_interfac": 23, "robot_control": [23, 27], "spawn": 23, "forward_acceleration_control": 23, "velocity_control": [23, 34, 38], "jointgroupvelocitycontrol": 23, "rrbotsystemmultiinterfacehardwar": 23, "po": [23, 43], "78500": 23, "vel": [23, 47], "acc": 23, "control_lvl": 23, "forward_illegal1_control": 23, "forward_illegal2_control": 23, "1676209982": 23, "531163501": 23, "resource_manag": 23, "rrbotsystemmultiinterfac": 23, "did": 23, "531223835": 23, "sinc": [23, 27, 32], "reject": [23, 42, 43], "spawner": 23, "531717376": 23, "spawner_forward_illegal1_control": 23, "indic": [23, 27], "rrbot_multi_interface_forward_control": 23, "krc": 24, "prototyp": 24, "odri": [24, 52], "ros2_control_demo_example_4": 24, "rrbot_system_with_sensor": 24, "rrbotsystemwithsensor": 24, "rrbotsystemwithsensorhardwar": 24, "fts_broadcast": [24, 25], "force_torque_sensor_broadcast": [24, 25], "forcetorquesensorbroadcast": [24, 25], "wrench": [24, 25, 31], "republish": [24, 25], "wrenchstamp": [24, 25, 37], "stamp": [24, 25, 47], "sec": [24, 25], "1676444704": [24, 25], "nanosec": [24, 25], "332221422": [24, 25], "tool_link": [24, 25], "946532964706421": 24, "nan": [24, 42], "0540995597839355": 24, "rrbot_with_sensor_control": 24, "pc": 25, "3d": [25, 27], "ros2_control_demo_example_5": 25, "rrbot_system_with_external_sensor": 25, "externalrrbotftsensor": 25, "externalrrbotforcetorquesensorhardwar": 25, "2126582860946655": 25, "3202226161956787": 25, "4302282333374023": 25, "540233612060547": 25, "647800624370575": 25, "7602499723434448": 25, "rrbot_with_external_sensor_control": 25, "rrbot_system_position_onli": 25, "external_rrbot_force_torque_sensor": 25, "mara": 26, "ros2_control_demo_example_6": 26, "rrbot_modular_actu": 26, "rrbotmodularjoint": 26, "rrbot_actu": 26, "queri": [27, 44], "enhanc": 27, "deploi": 27, "oper": [27, 53], "pattern": 27, "vendor": 27, "runtim": 27, "program": 27, "conform": 27, "newest": 27, "characterist": 27, "tree": [27, 33], "primari": [27, 44], "commerci": 27, "scratch": 27, "illustr": 27, "stl": 27, "dae": 27, "coars": 27, "mesh": 27, "fast": [27, 52], "collis": 27, "express": 27, "vertic": 27, "transform": 27, "rotat": [27, 33, 42], "translat": [27, 33, 48], "proxim": 27, "face": 27, "co": 27, "planer": 27, "xy": 27, "plane": 27, "align": 27, "blender": 27, "begin": 27, "neg": [27, 42], "roll": 27, "pitch": 27, "yaw": 27, "repeat": 27, "robot_6_dof": 27, "base_link": [27, 47, 48], "link_0": 27, "inerti": 27, "mass": 27, "inertia": 27, "ixx": 27, "ixi": 27, "ixz": 27, "iyi": 27, "iyz": 27, "izz": 27, "tool0": 27, "base_joint": 27, "joint_1": 27, "link_1": 27, "061584": 27, "141592653589793": 27, "name_spac": 27, "class_nam": 27, "pi": [27, 42], "enclos": 27, "previous": 27, "left": 27, "zero": [27, 31, 42, 43], "rel": [27, 43], "center": 27, "uniform": 27, "consecut": 27, "motion": [27, 42], "subsequ": 27, "join": [27, 53], "speci": 27, "verifi": 27, "urdf_to_graphviz": 27, "r6bot": 27, "explain": 27, "robotsystem": 27, "ur5": 27, "five": 27, "hardware_interface_return_valu": 27, "hardware_interface_publ": 27, "commandinterfac": 27, "durat": 27, "period": [27, 42], "privat": 27, "memori": [27, 35], "alloc": 27, "establish": 27, "angl": [27, 32, 47], "notabl": 27, "vari": 27, "fill": 27, "field": [27, 41, 43], "suppos": [27, 43], "tcp_force_torque_sensor": 27, "Their": 27, "pointer": 27, "info_": 27, "state_interfaces_": 27, "nearli": 27, "previou": [27, 43, 53], "command_interfaces_": 27, "constraint": [27, 35, 39, 40, 42, 44, 47], "respons": 27, "turn": 27, "oppos": [27, 44], "tcp": [27, 31], "packet": 27, "robot_6_dof_hardwar": 27, "discov": 27, "library_nam": 27, "base_class_typ": 27, "human": 27, "notic": [27, 43], "just": 27, "add_librari": 27, "robot_hardwar": 27, "unlik": 27, "finit": 27, "certain": [27, 36, 45, 50], "transit": [27, 43], "robotcontrol": 27, "nine": 27, "six": [27, 37], "callback": 27, "lifetim": 27, "restart": 27, "reconfigur": 27, "buffer": [27, 53], "reset": [27, 47], "transfer": 27, "eventu": 27, "mutex": 27, "guarante": [27, 43], "never": 27, "release_interfac": 27, "shut": 27, "free": [27, 33], "cleanup": 27, "r6bot_control": 27, "view_r6bot": 27, "ros2_control_demo_example_7": 27, "send_trajectori": 27, "circular": 27, "ros2_control_demo_example_8": 28, "rrbot_transmissions_system_position_onli": 28, "rrbottransmissionssystempositiononlyhardwar": 28, "transmission1": 28, "actuator1": 28, "transmission2": 28, "actuator2": 28, "383253": 28, "766505": 28, "53301": 28, "example_9": 29, "later": [29, 43], "ros2_control_demo_example_9": 29, "rrbot_gazebo_class": 29, "usr": 29, "ax": [30, 32, 37, 40, 49], "wheel": [30, 32, 33, 47, 49], "traction": [30, 32, 47, 48, 49], "steerabl": [30, 32, 49], "generate_parameter_librari": [30, 31, 32, 38, 39, 40, 47, 49], "parameter": [30, 32, 47, 49], "front_wheel_track": 30, "front": [30, 31, 32, 47, 49], "length": [30, 40, 47, 49], "en": [30, 32, 49], "wikipedia": [30, 32, 47, 49, 53], "wiki": [30, 32, 43, 44, 49], "wheelbas": [30, 32, 49], "rear_wheel_track": 30, "rear": [30, 32, 47, 49], "distanc": [30, 32, 44, 46, 49], "front_wheels_radiu": [30, 49], "radiu": [30, 32, 49], "rear_wheels_radiu": [30, 49], "chainedcontrollerinterfac": 31, "joint_refer": 31, "trajectory_msg": [31, 43, 44], "jointtrajectorypoint": [31, 43], "admittancecontrollerst": 31, "ft_sensor": 31, "sensor_nam": [31, 37, 40, 46], "ackermann": [32, 34, 47], "vehicl": 32, "probabl": 32, "front_wheel_radiu": 32, "rear_wheel_radiu": 32, "bodi": 33, "odometri": [33, 47, 48], "space": [33, 44], "hw_if_posit": [33, 34, 47], "hw_if_veloc": [33, 34, 47], "position_feedback": [33, 47], "twiststamp": [33, 47], "use_stamped_vel": [33, 47], "nav_msg": [33, 47], "estim": 33, "tf": [33, 47], "tf2_msg": [33, 47], "tfmessag": [33, 47], "enable_odom_tf": [33, 47], "cmd_vel_out": 33, "publish_limited_veloc": 33, "jointlimit": 33, "joint_limit": 33, "commonli": 34, "bicycl": [34, 47], "effort_control": [34, 38], "hw_if_acceler": 34, "hw_if_effort": 34, "represent": [34, 44], "controllernam": 35, "protect": 35, "reserv": 35, "importantli": 35, "ask": [35, 41], "sort": 35, "controller_name_namespac": 35, "controller_name_packag": 35, "ros2_control_test_asset": 35, "special": [36, 43, 45, 50], "hz": [36, 39, 45, 50], "wrapper": [37, 40, 46], "forcetorquesensor": 37, "6d": 37, "per": 37, "less": [37, 47], "example_nam": 37, "example_interfac": 37, "feedforward": 38, "multi_interface_forward_command_control": 38, "string_arrai": [38, 47], "action_monitor_r": [39, 42, 44], "greater": [39, 42], "equal": [39, 40], "goal_toler": 39, "max_effort": 39, "allow_stal": 39, "stall": 39, "stall_velocity_threshold": 39, "threshold": 39, "001": 39, "stall_timeout": 39, "imusensor": 40, "orient": 40, "angular_veloc": 40, "linear_acceler": 40, "static_covariance_orient": 40, "double_arrai": [40, 47], "static": 40, "covari": [40, 47], "row": 40, "static_covariance_angular_veloc": 40, "static_covariance_linear_acceler": 40, "unless": 41, "latter": 41, "matrix": [41, 47], "product": 41, "use_local_top": 41, "my_state_broadcast": 41, "arrai": 41, "extra_joint": 41, "map_interface_to_joint_st": 41, "usecas": 41, "hydraul": [41, 42], "relianc": 41, "techniqu": 41, "slightli": 41, "custom_interfac": 41, "kf_estimated_posit": 41, "derived_veloc": 41, "derived_effort": 41, "torque_sensor": 41, "current_sensor": 41, "command_joint": 42, "jtc": 42, "state_publish_r": [42, 44], "monitor": [42, 44], "allow_partial_joints_go": [42, 44], "allow_integration_in_goal_trajectori": [42, 43], "interpolation_method": 42, "interpol": [42, 44], "spline": 42, "open_loop_control": [42, 44], "gain": 42, "numer": 42, "numeric_limit": 42, "quiet_nan": 42, "start_with_hold": 42, "hold": [42, 43], "allow_nonzero_velocity_at_trajectory_end": 42, "cmd_timeout": 42, "stale": 42, "count": 42, "goal_tim": [42, 44], "toler": [42, 44], "jointtrajectori": [42, 43, 44], "stopped_velocity_toler": [42, 44], "deviat": 42, "maxim": 42, "reach": [42, 43, 44], "predefin": 42, "infinit": 42, "amount": 42, "law": [42, 44], "k_": 42, "ff": 42, "v_d": 42, "k_p": 42, "k_i": 42, "sum": 42, "dt": 42, "k_d": 42, "angle_wraparound": 42, "i_clamp": 42, "clamp": 42, "symmetr": 42, "ff_velocity_scal": 42, "feed": 42, "wrap": [42, 44], "ie": [42, 43], "shortest": 42, "s_d": 42, "saniti": 43, "sampl": [43, 47], "segment": [43, 44], "fault": 43, "datapoint": 43, "deduc": 43, "nor": 43, "discourag": 43, "yield": 43, "discontinu": [43, 44], "cubic": 43, "quintic": 43, "heun": 43, "grid": 43, "10m": 43, "deduct": 43, "nonzero": 43, "inconsist": 43, "overshoot": 43, "timestamp": 43, "arriv": 43, "necessarili": 43, "discard": 43, "substitut": 43, "smarter": 43, "preserv": 43, "flat": 43, "grei": 43, "red": 43, "traj": 43, "time_from_start": 43, "splice": 43, "append": 43, "held": [43, 44], "smooth": [43, 53], "longer": 43, "slower": 43, "effect": 43, "Of": 43, "interest": 43, "adolfo": [43, 44], "rodriguez": [43, 44], "instant": 44, "citat": 44, "adapt": 44, "restrict": 44, "present": 44, "robust": 44, "clock": 44, "queu": 44, "joint3": 44, "joint4": 44, "joint5": 44, "joint6": 44, "preempt": 44, "cancel": 44, "notifi": 44, "abort": 44, "legal": 44, "subset": 44, "favor": 44, "violat": 44, "joint_trajectori": 44, "fire": 44, "sender": 44, "query_st": 44, "cumbersom": 44, "controller_st": [44, 47], "jointtrajectorycontrollerst": 44, "querytrajectoryst": 44, "footnot": 44, "rangesensor": 46, "radiation_typ": 46, "int": [46, 47], "radiat": 46, "ultrason": 46, "infrar": 46, "field_of_view": 46, "arc": 46, "rad": [46, 47], "min_rang": 46, "minimum": 46, "m": [46, 47], "max_rang": 46, "maximum": 46, "nomenclatur": 47, "unstamp": 47, "concret": 47, "tricylc": 47, "seer": 47, "front_steer": 47, "front_wheels_nam": 47, "rear_wheels_nam": 47, "traction_feedback_typ": 47, "in_chained_mod": 47, "reference_unstamp": 47, "tf_odometri": 47, "steeringcontrollerstatu": 47, "reference_timeout": 47, "unwant": 47, "danger": 47, "behaviour": 47, "rear_wheels_state_nam": 47, "front_wheels_state_nam": 47, "open_loop": 47, "velocity_rolling_window_s": 47, "number": 47, "averag": 47, "base_frame_id": 47, "odom_frame_id": 47, "twist_covariance_diagon": 47, "diagon": 47, "pose_covariance_diagon": 47, "pose": 47, "wheel_track": 49, "page": [51, 52], "isaac": 51, "webot": 51, "manufactur": 52, "franka": 52, "emika": 52, "xarm": 52, "flexiv": 52, "rizon": 52, "igu": 52, "commonplac": 52, "husarion": 52, "rosbot": 52, "xl": 52, "2r": 52, "pro": 52, "openmanipul": 52, "clearpath": 52, "jackal": 52, "j100": 52, "huski": 52, "a200": 52, "unoffici": 52, "iiwa": 52, "lbr": 52, "iiqka": 52, "eci": 52, "sunris": 52, "kss": 52, "egm": 52, "mitsubishi": 52, "rv1a": 52, "protocol": 52, "ethercat": 52, "canopen": 52, "svh": 52, "finger": 52, "dimens": 52, "haptic": 52, "odriv": 52, "ndi": 52, "pca9685": 52, "bit": 52, "pwm": 52, "servo": 52, "hoverboard": 52, "overcom": 53, "idea": 53, "wide": 53, "toolkit": 53, "unreleas": 53, "question": 53, "wg": 53, "wednesdai": 53, "announc": 53, "discours": 53, "googl": 53, "bug": 53, "tracker": 53, "reproduc": 53, "regard": 53, "built": 53, "gmt": 53}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "review": 0, "stat": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 16, 53], "process": [1, 9], "merg": 1, "write": [1, 11, 14, 27, 35], "document": [1, 8, 10, 53], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": 2, "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 14, 27, 38, 41, 44], "class": [2, 8], "interfac": [2, 4, 12, 15, 19, 23, 27, 28, 31, 33, 36, 38, 41, 44, 45, 47, 50], "control": [2, 3, 4, 5, 6, 8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 35, 36, 38, 39, 44, 45, 47, 50, 51], "": [2, 33, 44, 47], "access": 2, "migrat": [2, 11], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 12, 16, 27, 31, 34, 53], "robothardwar": 2, "compon": [2, 4, 6, 11, 13, 14], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 16], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 16], "run": [3, 4, 5, 16], "demo": [3, 5, 6, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 27], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35, 44], "mimic": [3, 5], "joint": [3, 5, 12, 13, 44], "simul": [3, 5, 29, 51], "plugin": [3, 5, 27], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 16], "binari": 4, "packag": [4, 16], "from": [4, 6, 11, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 47], "sourc": [4, 16], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 27, 33, 44, 47], "framework": 4, "robot": [4, 7, 16, 19, 21, 23, 24, 25, 26, 27, 28, 34, 52], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "mission": 6, "support": [6, 52], "semant": 6, "featur": [6, 10, 33, 44, 48], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 31, 33, 36, 38, 45, 50, 51], "meetup": 7, "munich": 7, "5": [7, 25], "2022": 7, "12": [7, 20], "industri": [7, 19, 24, 25, 28], "confer": 7, "10": [7, 19], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 20], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 33], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 13, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47, 49, 50], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "guidelin": [11, 34], "best": [11, 34], "practic": [11, 34], "handl": 11, "error": 11, "happen": 11, "dure": 11, "read": 11, "call": 11, "foxi": 11, "newer": 11, "version": 11, "type": [12, 38, 41, 44], "sensor": [12, 24, 25, 37, 40, 46], "gpio": [12, 19], "exampl": [12, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 43], "mock": 13, "gener": 13, "system": 13, "per": 13, "extern": [14, 25, 35], "refer": [14, 31, 33, 35, 44, 47], "command": [15, 31, 41, 44, 47, 48], "line": 15, "list_control": 15, "list_controller_typ": 15, "list_hardware_compon": 15, "list_hardware_interfac": 15, "load_control": 15, "reload_controller_librari": 15, "set_controller_st": 15, "switch_control": 15, "unload_control": 15, "view_controller_chain": 15, "what": 16, "you": 16, "can": 16, "find": 16, "thi": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "goal": 16, "overview": [16, 27], "local": 16, "debian": 16, "docker": 16, "view": 16, "quick": 16, "hint": 16, "1": [18, 44], "rrbot": [18, 20, 29], "step": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "file": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "14": 21, "modular": [21, 26], "actuat": [21, 26], "provid": 21, "state": [21, 31, 44, 47], "diffbot": 22, "3": 23, "multipl": 23, "4": 24, "integr": [24, 51], "connect": 25, "6": 26, "separ": 26, "commun": [26, 51, 53], "each": 26, "7": 27, "full": 27, "6dof": 27, "geometri": 27, "cmake": 27, "librari": 27, "launch": 27, "8": 28, "an": 28, "expos": 28, "transmiss": 28, "9": 29, "ackermann_steering_control": 30, "admitt": 31, "2": [31, 33, 36, 38, 45, 50], "topic": [31, 36, 38, 45, 50], "bicycle_steering_control": 32, "diff_drive_control": 33, "other": [33, 34, 44, 48], "feedback": 33, "subscrib": [33, 44, 47], "publish": [33, 44, 47], "mobil": 34, "manipul": 34, "broadcast": [34, 37, 40, 46], "new": 35, "effort_control": 36, "jointgroupeffortcontrol": 36, "forc": 37, "torqu": 37, "forward_command_control": 38, "gripper": 39, "action": [39, 44], "imu": 40, "joint_state_broadcast": 41, "detail": 42, "about": 42, "trajectori": [43, 44], "represent": 43, "interpol": 43, "method": 43, "none": 43, "spline": 43, "visual": 43, "replac": 43, "joint_trajectory_control": 44, "preemption": 44, "polici": 44, "servic": 44, "further": 44, "inform": 44, "position_control": 45, "jointgrouppositioncontrol": 45, "rang": 46, "steering_controllers_librari": 47, "execut": 47, "logic": 47, "preced": 47, "tricycle_control": 48, "veloc": 48, "tricycle_steering_control": 49, "velocity_control": 50, "jointgroupvelocitycontrol": 50, "host": 51, "welcom": 53, "humbl": 53, "develop": 53, "organis": 53}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Reviewers\u2019 Stats": [[0, "reviewers-stats"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [16, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [11, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [13, "parameters"], [30, "parameters"], [31, "parameters"], [32, "parameters"], [33, "parameters"], [36, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [45, "parameters"], [46, "parameters"], [47, "parameters"], [49, "parameters"], [50, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Guidelines and Best Practices": [[11, "guidelines-and-best-practices"], [34, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[11, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[11, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[12, "ros2-control-hardware-interface-types"]], "Joints": [[12, "joints"]], "Sensors": [[12, "sensors"]], "GPIOs": [[12, "gpios"]], "Examples": [[12, "examples"], [16, "examples"]], "Mock Components": [[13, "mock-components"]], "Generic System": [[13, "generic-system"]], "Per-joint Parameters": [[13, "per-joint-parameters"]], "Writing a Hardware Component": [[14, "writing-a-hardware-component"]], "Useful External References": [[14, "useful-external-references"], [35, "useful-external-references"]], "Command Line Interface": [[15, "command-line-interface"]], "list_controllers": [[15, "list-controllers"]], "list_controller_types": [[15, "list-controller-types"]], "list_hardware_components": [[15, "list-hardware-components"]], "list_hardware_interfaces": [[15, "list-hardware-interfaces"]], "load_controller": [[15, "load-controller"]], "reload_controller_libraries": [[15, "reload-controller-libraries"]], "set_controller_state": [[15, "set-controller-state"]], "switch_controllers": [[15, "switch-controllers"]], "unload_controller": [[15, "unload-controller"]], "view_controller_chains": [[15, "view-controller-chains"]], "Demos": [[16, "demos"]], "What you can find in this repository": [[16, "what-you-can-find-in-this-repository"]], "Goals": [[16, "goals"]], "Examples Overview": [[16, "examples-overview"]], "Local installation": [[16, "local-installation"]], "Build from debian packages": [[16, "build-from-debian-packages"]], "Build from source": [[16, "build-from-source"]], "Using Docker": [[16, "using-docker"]], "To view the robot": [[16, "to-view-the-robot"]], "To run the ros2_control demos": [[16, "to-run-the-ros2-control-demos"]], "Quick Hints": [[16, "quick-hints"]], "Example 1: RRBot": [[18, "example-1-rrbot"]], "Tutorial steps": [[18, "tutorial-steps"], [20, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [28, "tutorial-steps"], [29, "tutorial-steps"]], "Files used for this demos": [[18, "files-used-for-this-demos"], [19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [29, "files-used-for-this-demos"]], "Controllers from this demo": [[18, "controllers-from-this-demo"], [19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [29, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[19, "example-10-industrial-robot-with-gpio-interfaces"]], "Example 12: Controller chaining with RRBot": [[20, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[21, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[22, "diffbot"]], "Example 3: Robots with multiple interfaces": [[23, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[24, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[24, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[25, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[26, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[27, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[27, "ros2-control-overview"]], "Writing a URDF": [[27, "writing-a-urdf"]], "Geometry": [[27, "geometry"]], "URDF file": [[27, "urdf-file"]], "Writing a hardware interface": [[27, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[27, "plugin-description-file-hardware"]], "CMake library (hardware)": [[27, "cmake-library-hardware"]], "Writing a controller": [[27, "writing-a-controller"]], "Plugin description file (controller)": [[27, "plugin-description-file-controller"]], "CMake library (controller)": [[27, "cmake-library-controller"]], "Launching the example": [[27, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[28, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[29, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[30, "ackermann-steering-controller"]], "Admittance Controller": [[31, "admittance-controller"]], "ROS 2 interface of the controller": [[31, "ros-2-interface-of-the-controller"], [36, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [45, "ros-2-interface-of-the-controller"], [50, "ros-2-interface-of-the-controller"]], "Topics": [[31, "topics"], [36, "topics"], [38, "topics"], [45, "topics"], [50, "topics"]], "ros2_control interfaces": [[31, "ros2-control-interfaces"]], "References": [[31, "references"], [33, "references"], [44, "references"]], "States": [[31, "states"], [44, "states"], [47, "states"]], "Commands": [[31, "commands"], [41, "commands"], [44, "commands"], [47, "commands"]], "bicycle_steering_controller": [[32, "bicycle-steering-controller"]], "diff_drive_controller": [[33, "diff-drive-controller"]], "Other features": [[33, "other-features"], [44, "other-features"], [48, "other-features"]], "Description of controller\u2019s interfaces": [[33, "description-of-controller-s-interfaces"], [44, "description-of-controller-s-interfaces"], [47, "description-of-controller-s-interfaces"]], "Feedback": [[33, "feedback"]], "Output": [[33, "output"]], "ROS 2 Interfaces": [[33, "ros-2-interfaces"]], "Subscribers": [[33, "subscribers"], [47, "subscribers"]], "Publishers": [[33, "publishers"], [44, "publishers"], [47, "publishers"]], "ros2_controllers": [[34, "ros2-controllers"]], "Controllers for Mobile Robots": [[34, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[34, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[34, "broadcasters"]], "Writing a new controller": [[35, "writing-a-new-controller"]], "effort_controllers": [[36, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[36, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[37, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[38, "forward-command-controller"]], "Hardware interface type": [[38, "hardware-interface-type"], [41, "hardware-interface-type"]], "Gripper Action Controller": [[39, "gripper-action-controller"]], "IMU Sensor Broadcaster": [[40, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[41, "joint-state-broadcaster"]], "Details about parameters": [[42, "details-about-parameters"]], "Trajectory Representation": [[43, "trajectory-representation"]], "Interpolation Method none": [[43, "interpolation-method-none"]], "Interpolation Method spline": [[43, "interpolation-method-spline"]], "Visualized Examples": [[43, "visualized-examples"]], "Trajectory Replacement": [[43, "trajectory-replacement"]], "joint_trajectory_controller": [[44, "joint-trajectory-controller"]], "Hardware interface types": [[44, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[44, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[44, "preemption-policy"]], "Actions 1": [[44, "actions"]], "Subscriber 1": [[44, "subscriber"]], "Services": [[44, "services"]], "Further information": [[44, "further-information"]], "position_controllers": [[45, "position-controllers"]], "position_controllers/JointGroupPositionController": [[45, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[46, "range-sensor-broadcaster"]], "steering_controllers_library": [[47, "steering-controllers-library"]], "Execution logic of the controller": [[47, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[47, "references-from-a-preceding-controller"]], "tricycle_controller": [[48, "tricycle-controller"]], "Velocity commands": [[48, "velocity-commands"]], "tricycle_steering_controller": [[49, "tricycle-steering-controller"]], "velocity_controllers": [[50, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[50, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[51, "simulator-integrations"]], "Hosted by ros-controls": [[51, "hosted-by-ros-controls"]], "Community": [[51, "community"]], "Supported Robots": [[52, "supported-robots"]], "Welcome to the ros2_control documentation - Humble!": [[53, "welcome-to-the-ros2-control-documentation-humble"]], "ros2_control Repositories": [[53, "ros2-control-repositories"]], "Development Organisation and Communication": [[53, "development-organisation-and-communication"]]}, "indexentries": {}})
\ No newline at end of file
+Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Hardware Components", "ros2_control
hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Humble!"], "terms": {"The": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 53], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 42, 43, 44, 45, 49, 50, 53], "peopl": [0, 1], "were": [0, 6, 27, 33, 43, 44], "ros2_control": [0, 1, 4, 7, 9, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 33, 35, 51], "framework": [0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 15, 16, 27, 34, 35, 41, 53], "show": [0, 1, 3, 4, 5, 7, 9, 11, 12, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 41, 43], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 41, 42, 43, 44, 52], "time": [0, 1, 2, 6, 7, 9, 13, 15, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 33, 35, 37, 42, 43, 44, 53], "activ": [0, 1, 2, 4, 9, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 42, 44], "assign": [0, 35], "finish": 0, "rate": [0, 22, 42, 43, 44], "last": [0, 11, 14, 27, 31, 35, 42, 43, 44], "date": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "1244": 0, "1024": 0, "0": [0, 3, 4, 5, 8, 12, 13, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 39, 40, 41, 42, 43, 44, 46, 47, 49], "82": 0, "2023": [0, 53], "12": [0, 16, 52, 53], "30t20": 0, "25": 0, "34z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": 0, "986": 0, "561": 0, "57": 0, "18t14": 0, "11": [0, 16], "03z": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "153": 0, "134": 0, "88": 0, "26t09": 0, "00": 0, "02z": 0, "fetch": 0, "31": [0, 53], "03": [0, 44], "26": 0, "14": [0, 16, 47], "utc": 0, "dure": [0, 16, 27, 44], "past": [0, 43], "month": 0, "533": 0, "402": 0, "75": 0, "439": 0, "136": 0, "142": 0, "123": 0, "87": 0, "have": [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14, 16, 18, 20, 22, 23, 27, 29, 30, 31, 32, 35, 41, 42, 44, 49], "contribut": [0, 4, 7], "develop": [0, 1, 7, 13, 14, 16, 35], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 27, 30, 32, 33, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 47, 49, 50, 51, 52, 53], "project": [0, 1, 53], "give": [0, 1, 7, 9, 16, 18, 22, 23, 43, 53], "valuabl": 0, "pull": [0, 14], "request": [0, 2, 14, 27, 41, 53], "see": [0, 1, 2, 4, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 35, 37, 40, 42, 44, 46, 47, 49], "more": [0, 1, 2, 3, 4, 5, 6, 9, 13, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 44, 49], "inform": [0, 3, 5, 8, 13, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 35, 53], "karsten": 0, "knese": 0, "karsten1987": 0, "186": 0, "118": 0, "63": 0, "2021": 0, "09": 0, "07t16": 0, "47": 0, "31z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "90": [0, 27], "80": 0, "89": 0, "27t10": 0, "54": 0, "11z": 0, "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "69": 0, "67": 0, "97": 0, "29t05": 0, "18": [0, 27], "25z": 0, "victor": 0, "lopez": 0, "v": [0, 15, 24, 42], "93": 0, "60": 0, "65": 0, "10": [0, 3, 5, 16, 23, 47], "14t09": 0, "01": [0, 39, 42, 44], "andyz": 0, "46": 0, "45": 0, "98": 0, "23t02": 0, "17": 0, "26z": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "157": 0, "43": [0, 4, 12, 22], "27": 0, "25t12": 0, "02": 0, "18z": 0, "olivi": 0, "stass": 0, "52": [0, 46], "40": 0, "77": 0, "26t08": 0, "13z": 0, "jordan": 0, "palacio": 0, "78": 0, "34": 0, "44": 0, "15t08": 0, "45z": 0, "erick": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 31, 35, 36, 41, 45, 47, 50, 53], "isla": 0, "osuna": 0, "erickiso": 0, "139": 0, "28": [0, 47], "20": [0, 39, 42, 44], "19t20": 0, "32": 0, "07z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "29": 0, "23": [0, 4], "79": 0, "2022": 0, "08": 0, "30t16": 0, "41": 0, "23z": 0, "none": [0, 8, 35, 41, 42, 44], "bijoua29": 0, "160": 0, "21": [0, 47], "13": [0, 16], "06": 0, "01t20": 0, "48": [0, 3, 5], "32z": 0, "jaron": 0, "l": 0, "167": 0, "10t19": 0, "59": 0, "59z": 0, "livanov93": 0, "164": 0, "05": [0, 44, 53], "22t06": 0, "28z": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "94": 0, "27t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "146": 0, "16": [0, 52], "25t06": 0, "15z": 0, "bailac": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 39, 43, 46, 47], "09t12": 0, "52z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "135": 0, "22t09": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "24t22": 0, "ari": 0, "synodino": 0, "progtologist": 0, "152": 0, "07": 0, "30t19": 0, "58z": 0, "chen": 0, "bainian": 0, "briancbn": 0, "36": 0, "9": [0, 6, 16, 40], "25t01": 0, "51": 0, "12z": 0, "paul": 0, "gesel": 0, "pac48": 0, "14t18": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "8": [0, 16], "25t18": 0, "19z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "07t07": 0, "01z": 0, "ddengster": 0, "2020": 0, "01t03": 0, "andr": 0, "montano": 0, "anfemosa": 0, "133": 0, "7": [0, 16, 19, 22, 47], "29t15": 0, "37z": 0, "homalozoa": 0, "x": [0, 22, 24, 25, 27, 31, 33, 37, 40, 47, 48, 52], "130": 0, "23t11": 0, "22": [0, 9], "mahaarbo": 0, "01t11": 0, "44z": 0, "matt": 0, "reynold": 0, "matthew": 0, "18t19": 0, "56": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "04": [0, 9], "09t00": 0, "38": [0, 3, 5], "06z": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "04t13": 0, "50": [0, 4, 9, 22, 42, 44], "48z": 0, "dasroteskelett": 0, "150": 0, "6": [0, 16, 18, 27], "28t09": 0, "36z": 0, "brewmast": 0, "harderthan": 0, "124": 0, "26t15": 0, "47z": 0, "A": [0, 4, 7, 12, 14, 16, 24, 25, 35, 41, 43, 44], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "19t13": 0, "39": 0, "alex": 0, "moriarti": 0, "5": [0, 14, 16, 18, 19, 20, 21, 23, 24, 26, 27, 28, 29, 43, 47, 52], "42": 0, "20t19": 0, "55": 0, "jack": 0, "jackcent": 0, "02t15": 0, "37": 0, "17z": 0, "han": 0, "martin": 0, "duringhof": 0, "4": [0, 12, 16, 21, 23, 25, 28, 46], "29t21": 0, "15": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "20t07": 0, "40z": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "05t22": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "23t00": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "19t23": 0, "49z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "13t18": 0, "27z": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "26t17": 0, "05z": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "22t14": 0, "19": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "145": 0, "3": [0, 3, 4, 5, 6, 12, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 43, 44], "05t08": 0, "53": 0, "08z": 0, "mrl1kor": 0, "malapatiravi": 0, "07t18": 0, "adam": 0, "serafin": 0, "serafadam": 0, "12t18": 0, "24": 0, "24z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "03t10": 0, "20z": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "22t13": 0, "tim": 0, "clepha": 0, "timpl": 0, "13t07": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "22t00": 0, "guihom": 0, "guihomework": 0, "17t15": 0, "jose": 0, "lui": 0, "rivero": 0, "j": 0, "26t13": 0, "peter": 0, "david": 0, "fagan": 0, "peterdavidfagan": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 44, 47, 52, 53], "23t22": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "27t03": 0, "57z": 0, "akash": 0, "ace314159": 0, "31t17": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "05t12": 0, "46z": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "01t12": 0, "49": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "09z": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "mhubii": 0, "21t11": 0, "50z": 0, "luka": 0, "macha": 0, "lukasmacha97": 0, "85": 0, "17t18": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t07": 0, "qiayuanliao": 0, "qiayuanl": 0, "35": [0, 47], "25t05": 0, "solomon": 0, "swiz23": 0, "15t15": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "08t14": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "05t10": 0, "53z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "01t13": 0, "22z": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "28t07": 0, "33z": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "schulz": 0, "schulze18": 0, "27t21": 0, "29z": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "franz": 0, "fjp": 0, "04t22": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "nour": 0, "saeed": 0, "d": [0, 16, 18, 29, 42], "dmitri": 0, "dignakov": 0, "13t16": 0, "30": [0, 3, 5, 22], "ken551": 0, "03t11": 0, "54z": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "05t14": 0, "bedard": 0, "christophebedard": 0, "27t18": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "19t14": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "21t14": 0, "21z": 0, "flochr": 0, "20t10": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "51z": 0, "abishalini": 0, "sivaraman": 0, "27t14": 0, "ramcharanthota": 0, "ben": 0, "holden": 0, "bobblebal": 0, "01t10": 0, "Will": 0, "baker": 0, "willcbak": 0, "22t15": 0, "robotgir": 0, "17t16": 0, "33": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "17t10": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "18t09": 0, "josh": 0, "newan": 0, "joshnewan": 0, "14t08": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "26t10": 0, "stephen": 0, "street": 0, "sgstreet": 0, "05t20": 0, "jun": 0, "chenjunnn": 0, "09t06": 0, "daniel": 0, "zumkel": 0, "dzumkel": 0, "shane": 0, "loretz": 0, "sloretz": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "17t21": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "31t15": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "00z": 0, "carlo": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "35z": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "09t18": 0, "reframesystem": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "12t08": 0, "55z": 0, "addisu": 0, "z": [0, 22, 24, 25, 27, 31, 33, 37, 40, 47, 48], "taddes": 0, "azeei": 0, "14t20": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "09t08": 0, "sgmurrai": 0, "0000": 0, "00t00": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoya": 0, "tomoyafujita2016": 0, "usamahamayun1": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "66": 0, "64": 0, "92": 0, "71": 0, "104": 0, "03t19": 0, "14z": 0, "86": 0, "95": 0, "100": [0, 4, 12, 36, 45, 50], "99": [0, 9], "72": 0, "link": [0, 3, 4, 5, 7, 8, 11, 27, 34], "list": [0, 4, 7, 8, 9, 11, 14, 15, 20, 27, 35, 42, 51, 52, 53], "who": 0, "submit": [0, 1, 7, 51, 52], "respect": [0, 3, 5, 6, 7, 42, 43, 44], "repositori": [0, 4, 6, 10, 12, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 33, 34], "ros2_control_demo": [0, 1, 4, 16, 18, 27, 29, 53], "control_toolbox": [0, 53], "gazebo_ros2_control": [0, 29], "gz_ros2_control": 0, "realtime_tool": [0, 6, 53], "kinematics_interfac": [0, 31], "control_msg": [0, 3, 5, 31, 42, 44, 47, 53], "ha": [0, 1, 3, 4, 5, 7, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 41, 42, 43], "receiv": [0, 2, 27, 42, 43], "major": [0, 40], "from": [0, 1, 2, 7, 8, 9, 13, 14, 15, 17, 27, 31, 33, 34, 35, 36, 37, 40, 42, 43, 44, 45, 46, 48, 50, 52, 53], "support": [0, 2, 3, 4, 5, 7, 13, 14, 15, 27, 31, 35, 41, 43, 44, 47, 51, 53], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 12, 13, 15, 16, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 43, 44, 53], "industri": [0, 4, 6, 16, 52], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 12, 18, 20, 22, 29, 33, 37, 41, 47, 48, 53], "softwar": [0, 4, 27], "compon": [0, 7, 9, 10, 12, 15, 16, 21, 22, 23, 24, 25, 26, 27, 31, 33, 34, 37, 40, 46, 47, 48, 53], "http": [0, 1, 4, 6, 16, 27, 30, 32, 49], "www": 0, "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 35, 40, 42, 43, 46, 49, 53], "horizon": 0, "research": [0, 7, 52], "innov": 0, "programm": 0, "under": [0, 7, 14, 20, 35, 43, 44, 47, 53], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 14, 16, 27, 29, 35, 42, 43], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 35, 44, 53], "consid": [1, 15, 42], "As": [1, 8, 12, 14, 18, 27, 33, 35], "an": [1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 18, 20, 22, 25, 27, 29, 30, 31, 32, 33, 35, 36, 41, 42, 44, 45, 47, 49, 50], "open": [1, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 42, 47], "sourc": [1, 3, 5, 7, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "we": [1, 3, 5, 6, 7, 8, 11, 16, 18, 20, 22, 27, 28, 29, 41], "welcom": 1, "each": [1, 4, 6, 8, 11, 12, 14, 16, 18, 21, 27, 30, 41, 47, 49], "contributor": 1, "regardless": 1, "background": [1, 16], "experi": 1, "To": [1, 2, 4, 8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 43, 51, 52, 53], "reduc": [1, 13], "entropi": 1, "univers": [1, 7, 27, 52], "our": [1, 3, 4, 5, 6, 7, 16, 18, 27], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 16], "set": [1, 2, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 18, 27, 36, 41, 42, 43, 44, 45, 47, 50], "up": [1, 7, 14, 16, 43], "some": [1, 3, 5, 6, 7, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 31, 41, 42, 44, 53], "standard": [1, 2, 6, 7, 14, 15, 21, 26, 27, 37, 41], "method": [1, 2, 4, 8, 9, 11, 14, 27, 35, 47], "requir": [1, 2, 4, 6, 14, 27, 31, 35, 36, 44, 45, 50], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 40, 41, 42, 43, 44, 46, 47, 48, 49, 53], "limit": [1, 3, 5, 7, 9, 16, 27, 33, 48], "scope": 1, "your": [1, 2, 7, 9, 13, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 32, 35, 51, 52, 53], "pr": [1, 51, 52], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 35, 41, 43, 44], "do": [1, 2, 4, 6, 7, 8, 9, 14, 16, 31, 35, 44], "one": [1, 2, 4, 6, 7, 8, 9, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 36, 37, 41, 43, 44, 45, 47, 49, 50, 53], "thing": [1, 3, 5, 16], "avoid": [1, 18, 21, 22, 23, 24, 25, 26, 28, 35], "ad": [1, 3, 5, 6, 9, 13, 14, 20, 22, 27, 35, 41], "random": [1, 21, 23, 24, 25, 26], "fix": [1, 2, 27, 30, 32, 49], "put": [1, 14, 35], "those": [1, 2, 4, 6, 8, 13, 14, 16, 27, 33, 35, 37, 41, 42, 43], "separ": [1, 2, 4, 16, 21, 41], "descript": [1, 2, 7, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 35], "titl": 1, "add": [1, 2, 8, 9, 11, 14, 27, 30, 31, 32, 35, 49, 51, 52], "short": [1, 35, 53], "summari": [1, 7, 53], "make": [1, 2, 5, 6, 7, 20, 27, 39, 53], "sure": [1, 5, 6, 18, 20, 21, 22, 23, 24, 25, 26, 28, 53], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 53], "green": [1, 43], "don": [1, 3, 8, 22, 42, 44], "t": [1, 3, 5, 8, 9, 16, 22, 42, 43, 44], "afraid": 1, "review": [1, 6, 53], "maintain": [1, 4, 6, 8, 16, 43], "new": [1, 7, 8, 14, 18, 20, 23, 27, 34, 43, 53], "code": [1, 2, 4, 6, 7, 14, 27], "test": [1, 3, 6, 13, 14, 16, 18, 22, 29, 30, 31, 32, 35, 47, 49], "If": [1, 2, 4, 8, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 35, 37, 41, 42, 43, 44, 47, 53], "function": [1, 2, 6, 7, 20, 27, 31, 47], "alwai": [1, 27], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 18, 27, 43, 44], "intent": [1, 8, 13], "section": [1, 2, 12, 14, 35, 44], "target": [1, 9, 14, 31, 35, 38, 42, 44], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 44], "read": [1, 2, 3, 4, 5, 9, 12, 14, 16, 20, 21, 24, 25, 27, 35, 41, 42, 46, 47], "understand": [1, 6, 43], "how": [1, 6, 7, 12, 14, 16, 19, 20, 21, 23, 24, 25, 26, 27, 29, 35], "handl": [1, 2, 4, 6, 7, 14, 24, 27, 30, 31, 32, 38, 39, 40, 44, 47, 49], "organ": [1, 7, 53], "guidelin": 1, "especi": [1, 2, 16, 47], "applic": [1, 4, 7, 9, 12, 27], "pleas": [1, 9, 26, 53], "keep": [1, 27, 35], "mind": [1, 35], "work": [1, 6, 7, 8, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35, 36, 41, 45, 48, 50, 53], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 13, 14, 15, 20, 23, 27, 31, 35, 39, 42, 44, 47], "That": [1, 14, 35], "wai": [1, 9, 14, 27, 35, 37, 44], "main": [1, 4, 6, 7, 9, 13, 27, 35, 47, 53], "repo": [1, 4, 16], "clean": 1, "featur": [1, 7, 13, 16, 18, 28, 47, 53], "branch": [1, 16], "check": [1, 2, 4, 6, 8, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 35, 42, 43, 44, 49, 53], "satisfi": 1, "befor": [1, 2, 8, 9, 14, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 43], "thei": [1, 2, 4, 6, 7, 8, 12, 13, 14, 15, 20, 35, 42, 44, 47], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 35, 37, 38, 42, 43, 44, 47, 53], "must": [1, 3, 5, 8, 9, 12, 16, 27, 40, 42, 44], "approv": 1, "two": [1, 4, 6, 8, 9, 14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 37, 43, 44, 47, 49], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 11, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 32, 33, 35, 36, 37, 41, 42, 43, 44, 45, 50], "except": [1, 27], "other": [1, 2, 3, 4, 7, 9, 14, 16, 21, 26, 27, 30, 32, 35, 41, 43, 47, 49], "where": [1, 3, 6, 8, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 30, 32, 33, 35, 41, 42, 43, 44, 47, 49], "back": 1, "traceabl": 1, "discuss": [1, 7, 20, 29, 43, 53], "suffici": [1, 3, 5, 8, 37], "note": [1, 4, 9, 18, 33, 44, 53], "still": [1, 2, 18, 20, 21, 22, 23, 24, 25, 26, 28, 34, 43], "encourag": 1, "help": [1, 9, 13, 14, 15, 35], "u": [1, 3, 5, 9, 16, 42], "increas": [1, 22], "pace": 1, "veri": [1, 2, 3, 5, 6, 12], "like": [1, 2, 3, 4, 5, 6, 7, 14, 16, 20, 27], "find": [1, 3, 5, 22], "issu": [1, 6, 53], "nobodi": 1, "els": 1, "squash": 1, "commit": 1, "messag": [1, 6, 9, 15, 23, 24, 25, 27, 37, 40, 41, 42, 43, 44, 46, 47, 53], "comment": [1, 27], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 15, 17, 27, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 49, 50, 53], "pre": 1, "correct": [1, 2, 43], "header": [1, 11, 14, 24, 25, 33, 35, 43], "address": [1, 27], "similar": [1, 4, 7, 12, 18, 20, 27], "mean": [1, 2, 8, 12, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 44], "result": [1, 4, 8, 9, 18, 27, 41, 43], "exactli": 1, "cowboi": 1, "style": [1, 14, 35], "over": [1, 6, 8, 22, 27], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 37, 41, 42, 43], "doesn": [1, 8], "matter": 1, "trivial": [1, 13], "chanc": 1, "proper": [1, 8, 9, 44], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 42], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 37, 38, 39, 40, 41, 43, 47, 49], "ping": 1, "them": [1, 6, 8, 9, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 41, 43, 52], "necessari": [1, 8, 11], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 8, 9, 11, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 42, 43, 53], "part": [1, 6, 7, 12, 27, 35, 43, 44], "For": [1, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 42, 44, 47, 49], "detail": [1, 2, 3, 4, 5, 11, 12, 13, 14, 20, 27, 29, 30, 32, 33, 35, 43, 44, 49], "thoma": 1, "cokela": 1, "info": [1, 9, 11, 14, 27], "tutori": [1, 16], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 21, 22, 24, 25, 26, 27, 33, 34, 35, 36, 37, 40, 42, 45, 46, 47, 50], "stabl": 1, "against": 1, "accept": [1, 14, 23, 35, 36, 42, 43, 44, 45, 50], "api": [1, 3, 5, 6, 14, 18, 21, 22, 23, 24, 25, 26, 28], "abi": 1, "chang": [1, 2, 4, 7, 9, 11, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 42, 43, 44], "e": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 37, 41, 42, 43, 45, 47, 50, 53], "name": [1, 2, 3, 4, 5, 7, 9, 12, 13, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 29, 31, 35, 37, 38, 40, 41, 42, 46, 47], "convent": [1, 27], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6], "same": [1, 8, 23, 27, 34, 37, 42, 43, 44], "build": [1, 14, 27, 31, 35], "dai": 1, "ros_distro": [1, 4, 16, 18], "foxi": [1, 7, 14], "galact": [1, 11, 14], "releas": [1, 4, 7, 16, 27], "version": [1, 6, 16, 44], "non": [1, 7, 20, 27, 37, 52], "brake": 1, "distribut": [1, 16, 53], "three": [1, 2, 4, 11, 12, 16, 27, 35, 43, 49], "stage": [1, 8, 20], "current": [1, 6, 11, 12, 14, 15, 43, 44, 47], "futur": [1, 7, 8, 43, 44], "compat": [1, 2, 7, 14, 16], "packag": [1, 2, 3, 5, 11, 14, 27, 30, 31, 32, 33, 35, 36, 37, 40, 44, 45, 46, 47, 49, 50, 53], "direct": [1, 2, 6, 14, 27, 35, 42], "local": [1, 3, 5, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 41], "possibl": [1, 4, 6, 9, 12, 16, 18, 21, 22, 23, 24, 25, 26, 28, 31, 35, 43], "core": [1, 10, 27], "immedi": [1, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29], "depend": [1, 4, 11, 12, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 43, 47], "fail": [1, 23, 27], "expect": [1, 6, 20, 27, 30, 32, 44, 47, 49], "after": [1, 8, 9, 14, 16, 18, 27, 33, 35, 42, 43, 44, 47, 48], "next": [1, 18, 27, 43], "sync": 1, "abl": 1, "potenti": [1, 35, 42], "mid": 1, "stat": 1, "power": [1, 3, 5, 7, 14], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 11, 12, 16, 20, 27, 35, 42, 44], "imposs": 2, "extend": [2, 4, 6, 8, 14, 35], "exist": [2, 4, 6, 8, 9, 11, 12, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35, 44], "addit": [2, 3, 5, 8, 16, 19, 22, 27], "sensor": [2, 4, 6, 11, 13, 14, 16, 21, 26, 27, 31, 34, 52], "actuat": [2, 4, 6, 11, 12, 13, 14, 16, 20], "tool": [2, 3, 5, 6, 7, 27], "without": [2, 3, 4, 5, 7, 13, 14, 16, 20, 29, 35, 42, 43], "combinedrobothardwar": 2, "drawback": [2, 53], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 12, 13, 16, 23, 41, 42, 43, 44], "extern": [2, 4, 6, 8, 13, 16, 31], "defin": [2, 3, 5, 6, 9, 13, 14, 16, 27, 31, 35, 37, 40, 41, 42, 43, 44, 46, 47], "system": [2, 3, 4, 5, 6, 7, 11, 12, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 44, 51, 52, 53], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 14, 16, 22, 35], "physic": [2, 4, 11, 12, 13], "cell": [2, 37], "surround": 2, "describ": [2, 4, 8, 12, 16, 18, 23, 27, 29, 43], "multi": [2, 4, 6, 7, 16, 23], "gripper": [2, 3, 4, 5, 7, 12, 13, 34], "out": [2, 3, 5, 9, 27, 33], "box": [2, 16, 18, 22, 23, 24, 25, 28, 29], "allow": [2, 3, 4, 5, 16, 27, 39, 42, 43, 44], "joint": [2, 4, 7, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 42, 43, 45, 47, 49, 50, 53], "posit": [2, 3, 4, 5, 7, 9, 12, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 36, 41, 42, 43, 44, 45, 47, 50], "veloc": [2, 3, 4, 5, 7, 8, 16, 21, 22, 23, 27, 31, 32, 33, 34, 39, 40, 41, 42, 43, 44, 45, 47, 50], "effort": [2, 3, 5, 16, 27, 34, 36, 39, 41, 42, 44], "hard": [2, 9], "data": [2, 4, 6, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 41, 43], "approach": [2, 8], "doe": [2, 8, 9, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35, 43, 44], "enforc": [2, 23, 27, 42], "string": [2, 9, 13, 16, 35, 38, 39, 40, 41, 42, 46, 47], "ensur": [2, 7, 9, 27, 43], "constant": [2, 16], "hardware_interfac": [2, 3, 4, 5, 11, 13, 14, 16, 21, 24, 25, 26, 27, 31, 33, 34, 35], "In": [2, 3, 4, 5, 6, 7, 8, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 34, 35, 41, 43, 47], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 14, 23, 35, 44], "regist": [2, 3, 5], "resourc": [2, 3, 5, 14, 23], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 14, 20, 23, 33, 35, 41, 43], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 37, 41, 42], "avail": [2, 4, 7, 9, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41, 44], "enabl": [2, 4, 6, 7, 11, 14, 15, 16, 22, 31, 37, 47], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 12, 13, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 35, 38, 43, 44, 47, 48, 49, 53], "systeminterfac": [2, 3, 5, 13, 24, 27], "granular": 2, "sensorinterfac": [2, 21, 25], "actuatorinterfac": [2, 21, 26], "abov": [2, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 34, 43], "choos": [2, 16, 47], "suitabl": [2, 7], "strategi": [2, 16, 43], "decid": 2, "which": [2, 3, 4, 5, 6, 7, 9, 14, 15, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 33, 35, 37, 40, 41, 42, 43, 44, 46, 47, 48], "case": [2, 3, 5, 6, 7, 8, 16, 20, 27, 35, 41, 43, 44, 53], "mayb": [2, 8], "sens": [2, 4, 34, 37], "multipl": [2, 4, 7, 8, 12, 14, 16, 41, 42], "constructor": [2, 14, 27, 35], "initi": [2, 14, 27, 35, 43], "variabl": [2, 14, 27, 35, 42], "need": [2, 3, 4, 5, 6, 7, 8, 12, 14, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35, 43], "commun": [2, 4, 6, 7, 14, 16, 18, 21, 22, 23, 24, 25, 27, 28, 52], "default": [2, 4, 8, 9, 13, 23, 30, 32, 38, 39, 40, 41, 42, 43, 44, 46, 47, 49], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41, 42, 43, 44, 47], "paramet": [2, 3, 5, 7, 14, 16, 18, 22, 27, 34, 35, 44], "pars": [2, 3, 5, 9, 10, 12], "urdf": [2, 7, 9, 12, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "snippet": 2, "hardwareinfo": [2, 27], "here": [2, 10, 14, 27, 35, 36, 44, 45, 50], "cross": [2, 41], "valu": [2, 4, 6, 12, 13, 14, 16, 18, 19, 20, 22, 24, 25, 27, 29, 35, 40, 41, 42, 44, 46, 47], "export_": 2, "_interfac": [2, 14], "joint_a2": 2, "extract": [2, 33, 48], "sensibl": 2, "stop": [2, 7, 8, 9, 11, 15, 18, 22, 23, 27, 33, 42, 48], "usual": [2, 4, 9, 13, 14, 27, 35], "includ": [2, 3, 5, 6, 11, 14, 15, 27, 35, 44, 52], "command": [2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 38, 39, 42, 43, 45, 49, 50, 53], "safe": [2, 27, 33, 35, 44, 48], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 20, 21, 22, 26, 34], "exchang": [2, 6, 18, 21, 22, 23, 24, 25, 26, 28, 53], "equival": [2, 27], "forget": [2, 4, 16, 44], "pluginlib_export_class": [2, 14, 16, 27, 35], "macro": [2, 4, 14, 16, 27, 35], "end": [2, 4, 11, 14, 27, 35, 42, 52], "cpp": [2, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "file": [2, 3, 4, 5, 6, 7, 9, 13, 14, 16, 31, 33, 35, 36, 44, 45, 50], "creat": [2, 3, 4, 5, 7, 9, 13, 14, 16, 27, 35], "xml": [2, 3, 5, 11, 14, 27, 35], "librari": [2, 4, 14, 15, 16, 30, 32, 34, 35, 47, 49], "pluginlib": [2, 3, 4, 5, 9, 14, 27, 35], "exampl": [2, 3, 4, 5, 6, 7, 8, 13, 15, 22, 31, 36, 37, 41, 44, 45, 50, 53], "rrbotsystempositiononlyhardwar": [2, 4, 12, 15, 18, 20, 25], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 15, 18, 31, 44], "real": [2, 6, 7, 9, 13, 22, 35, 41, 42, 53], "critic": [2, 6], "mark": [2, 20], "controllerinterfac": [2, 4, 8, 15, 27, 35], "member": [2, 14, 27, 35, 43], "init": 2, "call": [2, 3, 4, 5, 8, 14, 22, 27, 35], "lifecycl": [2, 4, 7, 9, 11, 14, 27], "declar": [2, 14, 27, 35], "state_interface_configur": [2, 27, 35], "command_interface_configur": [2, 27, 35], "design": [2, 4, 6, 7, 8, 27, 53], "updat": [2, 4, 8, 9, 16, 27, 35, 44, 47], "manag": [2, 3, 5, 6, 7, 10, 11, 14, 15, 16, 27, 35, 44, 53], "option": [2, 3, 5, 9, 11, 13, 14, 15, 18, 23, 35, 37, 41, 44, 47], "on_configur": [2, 14, 27, 35], "on_activ": [2, 11, 14, 27, 35], "on_deactiv": [2, 11, 14, 27, 35], "deactiv": [2, 4, 15, 18, 42], "final": [2, 7, 11, 27], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 13, 16, 20, 22, 27, 42, 43, 44, 53], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 16, 18, 29, 51], "classic": [3, 16, 29, 51], "provid": [3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 16, 18, 20, 23, 24, 25, 26, 27, 28, 29, 31, 35, 41, 42, 43, 44, 47, 53], "instanti": [3, 5, 9], "connect": [3, 4, 5, 13, 16, 24, 27], "model": [3, 5, 18, 27], "cd": [3, 4, 5, 16, 27], "docker": [3, 5, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "gui": [3, 5, 16, 18, 20, 21, 23, 24, 25, 26, 28, 29], "properli": [3, 5, 8, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "rm": [3, 4, 5, 16, 18, 29], "net": [3, 5, 7, 16, 18, 29], "host": [3, 5, 16, 18, 29, 52], "ros2": [3, 4, 5, 7, 9, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "launch": [3, 4, 5, 9, 13, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "cart_example_posit": [3, 5], "py": [3, 5, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "fals": [3, 5, 13, 16, 18, 29, 33, 39, 41, 42, 44, 47], "machin": [3, 4, 5, 6, 16, 29], "client": [3, 5, 29, 44], "gzclient": [3, 29], "rocker": [3, 5], "go": [3, 5, 7, 9, 14, 27, 35], "imag": [3, 5, 9, 29], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 16, 27, 43], "id": [3, 5, 15, 18, 21, 22, 23, 24, 25, 26, 28], "specif": [3, 5, 6, 8, 9, 11, 12, 27, 29, 38, 41, 43, 44], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "instruct": [3, 5, 22, 27, 29], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 39], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 18], "bash": [3, 4, 5, 14, 16, 18, 27, 35], "home": [3, 5], "ros2_w": [3, 4, 5, 16], "example_posit": [3, 5], "element": [3, 5, 27], "access": [3, 4, 5, 7, 9, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41], "interfac": [3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 18, 20, 21, 22, 24, 25, 26, 29, 30, 32, 34, 35, 37, 40, 42, 43, 46, 49, 51, 52, 53], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 13, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 33, 34, 35, 42, 48, 53], "slider_to_cart": [3, 5, 36, 45, 50], "command_interfac": [3, 4, 5, 12, 20, 27, 31, 42, 44], "param": [3, 4, 5, 9, 12, 13, 22, 27], "min": [3, 4, 5, 12, 27], "1000": [3, 5, 27], "max": [3, 4, 5, 12, 27, 39], "state_interfac": [3, 4, 5, 12, 27, 31, 42, 44], "initial_valu": [3, 5, 27], "mimick": [3, 5, 13], "manual": [3, 4, 5, 6, 9, 14, 16, 18, 23, 24, 25, 26, 28, 29, 35, 53], "multipli": [3, 5, 13], "definit": [3, 4, 5, 14, 27, 31, 33, 34, 35, 37, 42], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 27, 30, 32, 33, 37, 49], "xyz": [3, 5, 27], "rpy": [3, 5, 27], "1415926535": [3, 5], "parent": [3, 5, 14, 27, 35], "base": [3, 4, 5, 7, 11, 14, 15, 16, 21, 22, 26, 27, 33, 35, 38, 47, 48, 51], "child": [3, 5, 12, 27], "finger_left": [3, 5], "lower": [3, 5, 27], "upper": [3, 5, 27], "actual": [3, 5, 8], "load": [3, 4, 5, 9, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "appropri": [3, 5, 6, 43], "By": [3, 5, 9, 27, 41, 43], "though": [3, 5, 20], "extens": [3, 5], "via": [3, 4, 5, 16, 18, 24, 25, 27, 29, 44], "between": [3, 4, 5, 6, 11, 12, 16, 27, 30, 32, 41, 42, 43, 44, 49], "filenam": [3, 5, 27], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 14, 27, 31, 35, 44], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 18, 27], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 41], "config": [3, 5, 16], "cartpole_control": [3, 5], "yaml": [3, 4, 5, 6, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 44], "locat": [3, 27, 31], "server": [3, 39, 44], "node": [3, 4, 5, 9, 11, 13, 15, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "attempt": [3, 5, 9, 44], "get": [3, 5, 7, 8, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 53], "most": [3, 5, 6, 14, 16, 27, 35], "least": [3, 5, 12, 14, 35, 44], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 44], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 18, 20, 28], "etc": [3, 5, 9, 23, 27, 53], "These": [3, 5, 16, 27], "inherit": [3, 5, 9, 27], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 20, 21, 26, 36, 43, 45, 50], "properti": [3, 5, 27], "sub": [3, 5], "class": [3, 4, 5, 7, 9, 11, 14, 15, 27, 35, 38, 43], "specifi": [3, 5, 9, 14, 16, 27, 35, 42, 43, 44], "insid": [3, 5, 13, 16, 18], "publish": [3, 5, 6, 8, 12, 16, 19, 27, 31, 34, 37, 40, 41, 42, 43, 46, 48, 53], "stateinterfac": [3, 5, 27], "topic": [3, 5, 6, 7, 8, 12, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 34, 42, 44, 51], "sensor_msg": [3, 5, 40, 46], "msg": [3, 5, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 33, 36, 37, 38, 40, 43, 44, 45, 46, 47, 50], "jointstat": [3, 5], "joint_state_control": [3, 5, 15], "ros__paramet": [3, 5, 36, 44, 45, 50], "jointstatecontrol": [3, 5, 15], "action": [3, 5, 8, 42], "cart_pole_control": [3, 5], "follow_joint_trajectori": [3, 5, 44], "followjointtrajectori": [3, 5, 42, 44], "joint_trajectory_control": [3, 5, 6, 15, 18, 34], "write_op_mod": [3, 5], "contain": [3, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 36, 42, 43, 45, 47, 50], "content": [3, 14, 27, 35], "There": [3, 4, 5, 9, 11, 14, 16, 21, 24, 25, 26, 35, 43, 44], "meter": [3, 5, 27], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 13, 27], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 12, 13], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 44], "example_gripp": [3, 5], "humbl": [4, 16, 27], "want": [4, 8, 9, 16], "download": [4, 16], "mkdir": [4, 16], "p": [4, 9, 16, 42], "src": [4, 14, 16, 18, 27, 29, 31, 35], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 16, 27], "org": [4, 6, 30, 32, 49], "ros_control": [4, 6, 7, 53], "vc": [4, 16], "import": [4, 14, 16, 27, 35, 42], "rosdep": [4, 16], "rosdistro": [4, 16], "sudo": [4, 9, 16], "apt": [4, 16], "path": [4, 7, 16, 27, 44], "ignor": [4, 9, 16, 33, 42, 47, 48], "r": [4, 16, 28], "y": [4, 16, 22, 24, 25, 31, 37, 40], "everyth": [4, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35], "opt": [4, 16, 18], "setup": [4, 13, 14, 16, 18, 22, 27, 29, 35, 43], "sh": [4, 16, 18, 29], "colcon": [4, 14, 16, 27, 35], "symlink": [4, 16, 27], "folder": [4, 7, 14, 16, 18, 19, 22, 30, 31, 32, 35, 47, 49], "found": [4, 10, 14, 18, 19, 22, 31, 33, 35, 38, 44, 53], "github": [4, 6, 10, 16, 27, 34, 51, 52, 53], "figur": [4, 43], "cm": [4, 9], "abstract": [4, 7, 11, 27], "side": [4, 6, 7], "entri": [4, 35], "point": [4, 27, 35, 42, 43, 44, 53], "servic": [4, 6, 9, 11, 27], "executor": [4, 9], "custom": [4, 12, 13, 16, 21, 22, 37, 41, 51], "howev": [4, 6, 8, 9, 16, 20, 27], "recommend": [4, 7, 14], "ros2_control_nod": [4, 23, 27], "controller_manag": [4, 5, 6, 9, 15, 23, 35, 36, 44, 45, 50], "assum": [4, 8], "On": [4, 27], "hand": [4, 27, 52], "unload": [4, 9, 15], "match": [4, 16, 43], "report": [4, 6, 41, 53], "error": [4, 6, 9, 14, 20, 23, 27, 35, 41, 42, 44], "execut": [4, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 39, 42, 43, 44, 49], "loop": [4, 7, 9, 13, 18, 23, 24, 25, 26, 27, 28, 29, 35, 41, 42, 44, 47], "output": [4, 6, 7, 12, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 37], "driver": [4, 7, 16, 27, 52], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 52], "encod": [4, 27], "theori": [4, 53], "compar": [4, 6, 7], "refer": [4, 8, 20, 27, 52], "measur": [4, 13, 21, 31, 37, 41, 42, 52], "calcul": [4, 27, 31, 43, 47], "input": [4, 6, 7, 8, 12, 19, 20, 27, 31, 33, 36, 38, 42, 43, 45, 47, 48, 50], "object": [4, 27], "deriv": [4, 42, 43], "controller_interfac": [4, 15, 27, 31, 35, 37, 40, 46], "export": [4, 8, 9, 14, 16, 27, 31, 35], "plugin": [4, 9, 11, 12, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 35], "forwardcommandcontrol": [4, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29], "lifecyclenod": 4, "document": [4, 6, 7, 12, 13, 14, 16, 22, 33, 43, 44], "interact": [4, 7, 9, 15, 19, 27, 29], "srv": [4, 44], "controller_manager_msg": 4, "while": [4, 6, 7, 27, 43], "directli": [4, 18, 20, 29, 53], "line": [4, 10, 11, 14, 18, 27, 35, 41, 43], "friendli": 4, "cli": [4, 9, 10, 15, 18, 19, 22, 23, 24, 25, 26, 28, 29], "auto": [4, 9], "complet": [4, 11, 20, 27, 43], "rang": [4, 12, 34], "common": [4, 6, 16, 34, 41, 53], "capabl": [4, 6], "realiz": [4, 7, 43, 44], "repres": [4, 11, 27, 33, 43], "dynam": [4, 14, 27, 35], "dof": [4, 12, 16, 27, 39], "differ": [4, 6, 7, 12, 14, 16, 18, 19, 22, 23, 27, 36, 37, 41, 43, 45, 47, 50], "transmiss": [4, 16], "humanoid": 4, "logic": 4, "channel": [4, 52], "kuka": [4, 18, 23, 24, 25, 52], "rsi": [4, 18, 24, 25, 52], "relat": [4, 6, 7], "forc": [4, 7, 12, 15, 24, 25, 31, 34, 52], "torqu": [4, 12, 24, 25, 31, 34], "simpl": [4, 6, 7, 8, 14, 16, 18, 20, 22, 27, 28, 35, 39], "valv": [4, 12], "mandatori": [4, 9, 37, 42], "dc": 4, "arduino": [4, 21, 26], "board": 4, "modular": [4, 7, 16, 27], "independ": [4, 7, 25], "explan": [4, 14], "given": [4, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 36, 42, 43, 44, 45, 50], "through": [4, 6, 7, 8, 9, 14, 15, 16, 20, 27, 35, 44, 53], "tag": [4, 9, 12, 14, 16, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 35, 53], "chosen": [4, 12], "structur": [4, 6, 8, 14, 27, 33, 35, 42, 43], "track": [4, 30, 49, 53], "togeth": [4, 8, 12, 22, 24, 47], "xacro": [4, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "hereund": 4, "rrbot": [4, 12, 15, 16, 19, 21, 23, 24, 25, 26, 28], "effector": [4, 52], "site": 4, "rrbotsystempositiononli": [4, 25], "ros2_control_demo_hardwar": [4, 12, 15], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 12], "joint1": [4, 12, 13, 15, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 44], "joint2": [4, 12, 15, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 44], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 12, 24, 25], "frame_id": [4, 12, 24, 25, 37, 40, 46, 47], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 13, 22, 27, 29, 42], "pure": 4, "stack": [4, 7, 53], "could": [4, 7, 8, 16, 23, 35, 41, 44], "altern": [4, 18, 44], "script": [4, 6, 14, 35], "skeleton": 4, "sim": [5, 15, 51], "dockerfil": [5, 16], "Then": [5, 8, 16, 27, 29, 43], "ign": 5, "meet": [5, 53], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 13, 14, 23, 33, 40, 41, 44, 53], "gener": [6, 7, 12, 14, 15, 21, 22, 23, 24, 25, 26, 27, 34, 35, 44, 47, 53], "task": [6, 7, 33], "envis": 6, "simul": [6, 13, 15, 16, 18, 20, 22, 24, 25, 27], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 16, 53], "place": [6, 35], "draft": 6, "gpio": [6, 16, 27], "mode": [6, 8, 14, 20, 23, 31, 42, 43, 47], "switch": [6, 15, 16, 18, 23], "movement": 6, "safeti": [6, 27], "skill": 6, "prefer": 6, "c": [6, 9, 12, 14, 15, 18, 27], "familiar": [6, 53], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 46], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 11, 12, 44], "easi": 6, "therefor": [6, 8, 9, 16, 35, 41, 42, 44], "often": [6, 13, 22, 35, 41], "orchestr": 6, "purpos": [6, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29], "conductor": 6, "scenario": [6, 43], "moment": [6, 8, 44], "right": [6, 16], "replac": [6, 11, 34, 44], "high": [6, 9, 43], "moveit2": [6, 7, 34, 52], "simplecontrollermanag": 6, "goal": [6, 7, 12, 18, 23, 24, 25, 26, 28, 29, 39, 42, 44, 53], "form": [6, 16], "behavior": [6, 13, 27, 43], "benchmark": 6, "statu": [6, 8, 11, 15, 18, 42], "format": [6, 27, 31, 41, 44], "preset": 6, "modul": [6, 20], "reli": 6, "doubl": [6, 9, 13, 18, 27, 30, 32, 39, 42, 46, 47, 49], "desir": [6, 42, 44], "both": [6, 7, 20, 27, 28, 41, 42, 43, 44], "improv": 6, "readabl": [6, 27], "earlier": 6, "concept": [6, 7, 8, 13, 16, 18], "introduc": [6, 7, 8, 18, 27], "essenti": [6, 18], "group": [6, 8, 9, 12, 44, 53], "instanc": [6, 9, 20, 41], "imu": [6, 12, 34], "typic": [6, 12, 22, 41, 42], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 20], "struct": 6, "low": [6, 7], "profil": 6, "intern": [6, 8, 12, 14, 18, 20, 21, 22, 23, 24, 25, 26, 28, 31, 43, 44], "relev": [6, 42, 47, 53], "addition": [6, 27, 30, 32, 49, 53], "few": [6, 7], "175": 6, "rewrit": [6, 53], "rich": 6, "wa": [6, 14, 18, 22, 23, 27, 35, 43], "motiv": 6, "adopt": 6, "port": [6, 11, 12], "quit": 6, "miss": [6, 41, 43, 44], "diff_drive_control": [6, 8, 15, 22], "consist": [6, 44, 53], "onc": [6, 7, 18, 22, 23, 24, 25, 27, 28], "identifi": [6, 27], "much": [6, 8, 18, 21, 22, 23, 24, 25, 26, 28, 35, 44], "303": 6, "304": 6, "stretch": 6, "81": 6, "302": 6, "unit": 6, "gmock": 6, "cc": [7, 43, 44], "BY": [7, 43, 44], "licens": [7, 43, 44], "author": [7, 8], "either": [7, 9, 18, 23, 24, 25, 26, 28, 29, 43], "down": [7, 27], "below": [7, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 42, 43, 44], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 34, 48], "control": [7, 10, 11, 12, 13, 14, 15, 16, 30, 32, 37, 40, 41, 42, 43, 46, 48, 49, 52, 53], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 27], "share": [7, 14, 27, 29, 35, 47], "well": [7, 9, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 44], "perform": [7, 9, 27], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 14, 35], "top": 7, "virtual": [7, 8, 32], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 18, 27], "explicit": [7, 27, 42], "chain": [7, 10, 15, 16, 27, 31, 42, 47], "emerg": 7, "handler": 7, "mock": [7, 10, 14], "usag": [7, 8, 9, 12, 15, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 35], "focu": [7, 8], "becom": [7, 20], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 34], "practic": 7, "tip": [7, 27], "hot": 7, "shown": [7, 27, 43], "furthermor": [7, 22], "offer": [7, 9, 14, 27], "expos": [7, 16, 20], "problem": [7, 53], "manipul": [7, 16, 18, 20, 27, 28, 42], "plan": [7, 53], "autonom": 7, "navig": 7, "ideal": [7, 13], "made": [7, 11], "mobil": [7, 16, 22, 33, 47, 48], "arm": [7, 18, 20, 28], "extra": [7, 27, 41], "readi": [7, 14, 16, 20, 34, 35], "studi": 7, "ur": 7, "With": [7, 27, 29, 44], "moveit": [7, 13], "ingredi": 7, "run": [7, 8, 9, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 47], "scale": [7, 42], "factor": 7, "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 14, 35], "trajectori": [7, 18, 27, 34, 42, 53], "admitt": [7, 34], "One": [7, 8], "reason": [7, 8, 9, 27], "upgrad": 7, "ros1": [7, 16], "better": 7, "realtim": [7, 9, 27, 33, 44, 48, 53], "contact": 7, "insert": 7, "singl": [7, 24, 39], "waypoint": [7, 43, 44], "mani": [7, 27, 34, 35], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 16, 22, 27, 30, 31, 32, 47, 49], "acceler": [7, 16, 23, 27, 31, 33, 40, 42, 43, 44, 48], "jerk": [7, 33, 48], "obei": [7, 27], "demo": [7, 12], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 27], "cycl": [7, 27], "_control": [7, 16], "wild": 7, "materi": 7, "quick": [7, 11], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 13, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 34, 42, 44, 53], "done": [7, 8, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35], "look": [7, 22], "modifi": 7, "simpli": [7, 9, 18, 43, 44], "edit": 7, "collect": [7, 36, 45, 50], "semant": [7, 12, 31, 37, 40, 46], "monolit": 7, "controlko": 7, "propos": [8, 53], "minim": [8, 53], "viabl": [8, 27], "serial": [8, 27], "tri": [8, 42], "clariti": 8, "arbitrari": [8, 27, 44], "order": [8, 27], "nevertheless": 8, "convinc": 8, "would": [8, 41], "unnecessari": 8, "long": 8, "term": [8, 53], "clearer": 8, "let": [8, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28], "yet": [8, 9, 16, 20, 33, 43, 44], "controllers_chain": 8, "doc": [8, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 53], "position_track": 8, "pid": [8, 42, 43, 44, 53], "now": [8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 43], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 14, 16, 35, 43, 53], "At": [8, 14, 20, 35], "attach": 8, "disabl": [8, 13, 47], "subscrib": [8, 19, 20, 27], "differenti": [8, 16, 22, 32, 33, 34, 53], "interfaceconfigur": [8, 27], "input_interface_configur": 8, "const": [8, 11, 27], "anoth": [8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 44], "simplic": [8, 27], "try": [8, 27], "exclus": [8, 27], "rather": [8, 16, 43], "void": 8, "set_chained_mod": 8, "bool": [8, 39, 42, 47], "flag": [8, 14, 35, 42], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 15, 31, 35, 44, 47], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 33], "cmd_vel_unstamp": [8, 22, 33], "Its": [8, 53], "continu": [8, 42, 43, 44], "chainabl": [8, 16, 20, 33, 44], "ownership": 8, "process": [8, 14, 27, 35, 43], "claim": [8, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "vector": [8, 20, 27, 35], "invers": [8, 27], "rule": [8, 9, 14, 35], "think": [8, 16], "break": [8, 13], "middl": [8, 32], "unavail": [8, 20], "anyth": 8, "confus": 8, "irelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 27, 42], "linux": 9, "comput": [9, 16, 33, 47, 48], "throughput": 9, "suit": 9, "easiest": [9, 14, 35], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 27], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 27], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 15, 27, 33, 44], "log": 9, "again": [9, 11, 18, 22, 27], "activate_components_on_start": 9, "empti": [9, 35, 40, 44, 47], "attribut": [9, 27], "stai": 9, "unconfigur": [9, 11, 18, 27], "configure_components_on_start": 9, "update_r": [9, 36, 45, 50], "frequenc": 9, "startup": 9, "h": [9, 14, 15, 35], "param_fil": 9, "controller_typ": 9, "timeout": [9, 15, 39, 42, 47, 48], "controller_manager_timeout": 9, "argument": [9, 14, 15, 18, 21, 22, 23, 24, 25, 26, 28], "exit": [9, 15], "leav": 9, "namespac": [9, 14, 27, 34, 35, 41], "kill": [9, 15, 27], "wait": [9, 15, 26, 42], "until": [9, 27, 42, 43], "mai": [9, 11, 24, 34, 36, 45, 50], "taken": [9, 47], "becaus": [9, 12, 18, 20, 21, 22, 23, 24, 25, 26, 28, 43], "rclcpp": [9, 14, 27, 35], "than": [9, 39, 42, 44, 47], "global": 9, "remap": 9, "forcibli": 9, "lead": [9, 44], "duplic": [9, 47], "occur": [9, 27], "whether": 9, "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28], "caus": [9, 43, 44, 47], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "std": [9, 27, 42], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 18], "broadcast": [9, 12, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 41], "achiev": [9, 27, 36, 45, 50], "return": [9, 11, 14, 18, 27, 35, 39, 41, 43, 44], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 42], "doxygen": [10, 14], "cascad": 10, "return_typ": [11, 27, 35], "on_error": [11, 14, 27], "previous_st": [11, 27], "success": [11, 14, 27, 35, 39, 44], "callbackreturn": [11, 14, 27], "failur": 11, "recov": 11, "reload": [11, 15], "substanti": 11, "renam": 11, "on_init": [11, 14, 27, 35], "baseinterfac": 11, "remov": 11, "base_interfac": 11, "hpp": [11, 14, 16, 27, 31, 35], "hardware_interface_status_valu": 11, "rclcpp_lifecycl": [11, 14, 27, 35], "strictli": [11, 12], "status_": 11, "in_deactiv": 11, "undefin": 11, "refern": 11, "symbol": 11, "node_interfac": [11, 27], "lifecyclenodeinterfac": [11, 14, 27], "rclcpp_lifecyl": 11, "cmakelist": [11, 14, 27, 35], "txt": [11, 14, 27, 35], "devic": [12, 52], "associ": 12, "joint_state_broadcast": [12, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "coupl": 12, "ship": 12, "cannot": [12, 20, 27, 44], "keyword": 12, "digit": 12, "signal": 12, "electr": 12, "analog": 12, "within": [12, 18, 44], "vacuum": [12, 19], "flang": 12, "off": 12, "rrbotsystemmutiplegpio": 12, "example_param_hw_start_duration_sec": 12, "example_param_hw_stop_duration_sec": 12, "example_param_hw_slowdown": 12, "flange_digital_io": 12, "digital_output1": 12, "know": 12, "digital_output2": 12, "digital_input1": 12, "digital_input2": 12, "flange_analog_io": [12, 19], "analog_output1": [12, 19], "analog_input1": [12, 19], "analog_input2": [12, 19], "flange_vacuum": [12, 19], "suction": 12, "grasp": 12, "multimod": 12, "multimodalgripp": 12, "parallel_fing": 12, "temperatur": [12, 16], "feedback": [12, 13, 21, 41, 42, 44, 47, 48], "adjust": [12, 15, 18, 27], "calibr": 12, "2d": [12, 24, 25], "ft": [12, 24, 25, 37], "choic": [12, 47], "matric": 12, "rrbotforcetorquesensor2d": 12, "forcetorquesensor2dhardwar": 12, "fx": 12, "tz": 12, "kuka_tcp": 12, "fx_rang": 12, "tz_rang": 12, "temp_feedback": 12, "calibration_matrix_nr": 12, "mirror": 13, "correspond": [13, 14, 27, 35, 47, 53], "offlin": 13, "advantag": 13, "pipe": 13, "even": [13, 20, 44], "debug": 13, "boost": 13, "mimic": 13, "offset": [13, 41, 42], "fake": 13, "disable_command": 13, "boolean": [13, 41, 42], "erron": [13, 27], "noth": 13, "suddenli": 13, "Or": [13, 18, 23, 24, 25, 26, 28, 29], "mock_sensor_command": 13, "position_state_following_offset": 13, "custom_interface_with_following_offset": 13, "map": [13, 41, 44], "compil": [14, 27, 29, 35], "prepar": [14, 23, 35], "ament_cmak": [14, 35], "search": [14, 35], "recent": [14, 35], "pkg": [14, 35], "package_nam": [14, 35], "alreadi": [14, 15, 16, 18, 20, 27, 29, 35, 44], "robot_hardware_interface_nam": 14, "visibility_control": [14, 35], "window": [14, 35], "copi": [14, 35], "prefix": [14, 31, 35, 37, 40, 46], "guard": [14, 35], "ifndef": [14, 35], "preprocessor": [14, 35], "engin": [14, 35], "friend": [14, 35], "interface_typ": [14, 35], "uniqu": [14, 27, 35], "written": [14, 21, 26, 27, 35], "snake_cas": [14, 35], "interfacetyp": 14, "hardwareinterfacenam": 14, "public": [14, 27, 35], "on_cleanup": [14, 27], "on_shutdown": [14, 27], "overrid": [14, 27, 35, 36, 44, 45, 50], "export_state_interfac": [14, 27], "export_command_interfac": [14, 27], "prepare_command_mode_switch": 14, "perform_command_mode_switch": 14, "further": [14, 35], "exact": [14, 35], "simplifi": [14, 27, 35, 53], "valid": [14, 16, 46], "fine": [14, 22, 35], "otherwis": [14, 16, 35, 41, 42], "opposit": [14, 35], "remind": 14, "full": [14, 16, 35], "joint_nam": [14, 31, 35, 42], "shutdown": [14, 27], "gracefulli": 14, "store": [14, 35], "close": [14, 35], "class_list_macro": [14, 27, 35], "my_hardware_interface_packag": 14, "robothardwareinterfacenam": 14, "second": [14, 15, 18, 20, 23, 24, 25, 26, 27, 28, 29, 35, 43, 53], "visibl": [14, 35], "mock_compon": [14, 22], "bottom": [14, 27, 35], "test_load_": [14, 35], "load_generic_system_2dof": 14, "test_generic_system": 14, "find_packag": [14, 35], "directori": [14, 35], "ament": [14, 35], "cmake": 14, "pluginlib_export_plugin_description_fil": [14, 27, 35], "ament_cmake_gmock": [14, 35], "ament_add_gmock": [14, 35], "ament_export_librari": [14, 35], "ament_packag": [14, 35], "test_depend": [14, 35], "rememb": [14, 35], "root": [14, 35], "workspac": [14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "enjoi": [14, 35], "great": [14, 35], "templat": [14, 16, 27, 35], "shell": [14, 35], "onward": 14, "spin": 15, "spin_tim": 15, "hidden": 15, "discoveri": 15, "daemon": 15, "test_controller_nam": 15, "test_control": 15, "diffdrivecontrol": [15, 22], "verbos": 15, "label": [15, 21, 22, 24, 25, 26, 43], "unclaim": [15, 20, 23], "inact": [15, 18, 23, 27], "ctrl1": 15, "ctrl2": 15, "strict": 15, "asap": 15, "switch_timeout": 15, "diagram": 15, "tmp": 15, "controller_diagram": 15, "gv": 15, "pdf": [15, 27], "demonstr": [16, 18, 20, 22, 23, 28, 29], "prove": 16, "checkout": 16, "roscon2022_workshop": 16, "hardwareinterfac": [16, 27], "diffbot": 16, "degre": [16, 27, 44, 47], "freedom": [16, 27, 47], "components_architecture_and_urdf_exampl": 16, "revolut": [16, 18, 20, 27, 28], "drive": [16, 22, 30, 32, 33, 34, 47, 48, 49, 53], "accord": [16, 22, 27], "intermedi": 16, "car": 16, "steer": [16, 30, 32, 34, 47, 48, 49], "tba": 16, "tabl": 16, "offici": [16, 52], "easili": 16, "aptitud": 16, "might": [16, 43], "own": [16, 18, 27], "git": [16, 27], "clone": [16, 27], "b": [16, 27], "merg": 16, "f": 16, "procedur": 16, "rviz2": [16, 18, 29], "visual": [16, 18, 25, 27, 41], "joint_state_publisher_gui": [16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "bring": 16, "ros2_control_demo_example_1": [16, 18], "view_robot": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "omit": 16, "termin": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "example_1": [16, 18, 19, 20, 29], "rviz": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41], "slider": 16, "around": [16, 37, 40, 42, 46], "ros2_control_demo_example_2": [16, 22], "come": [16, 44], "categori": 16, "individu": [16, 35, 46], "position_in_degre": 16, "hardware_interface_type_valu": [16, 31], "6dof": 16, "variou": [18, 28], "invert": 18, "pendulum": 18, "fun": 18, "proprietari": [18, 21, 22, 23, 24, 25, 26, 28], "view": [18, 27], "recreat": 18, "robotmodel": 18, "displai": [18, 20, 21, 23, 24, 25, 26, 28, 29], "ros2_control_demo_descript": 18, "ok": [18, 21, 22, 23, 24, 25, 26, 27, 28, 35], "warn": [18, 21, 22, 23, 24, 25, 26, 28, 41], "invalid": [18, 21, 22, 23, 24, 25, 26, 28], "frame": [18, 21, 22, 23, 24, 25, 26, 27, 28, 37], "odom": [18, 21, 22, 23, 24, 25, 26, 28, 33, 47], "cantransform": [18, 21, 22, 23, 24, 25, 26, 28], "target_fram": [18, 21, 22, 23, 24, 25, 26, 28], "happen": [18, 21, 22, 23, 24, 25, 26, 27, 28], "ctrl": 18, "lot": [18, 20, 21, 22, 23, 24, 25, 26, 28], "exemplari": [18, 21, 23, 24, 25, 26, 28, 30, 32, 47, 49], "orang": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "yellow": [18, 20, 21, 23, 24, 25, 26, 28, 29], "rectangl": [18, 20, 21, 23, 24, 25, 26, 28], "introspect": [18, 20, 21, 22, 23, 24, 25, 26, 28], "list_hardware_interfac": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "entrypoint": 18, "nomin": 18, "marker": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "list_control": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "jointstatebroadcast": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "forward_position_control": [18, 19, 20, 23, 24, 25, 26, 28, 29], "forward_command_control": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 45, 50], "pub": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "std_msg": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 38, 45, 50], "float64multiarrai": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 38, 45, 50], "everi": [18, 23, 24, 25, 26, 27, 28, 29, 38, 42, 53], "test_forward_position_control": [18, 23, 24, 25, 26, 28, 29], "block": [18, 20, 21, 23, 24, 25, 26, 27, 28], "got": [18, 19, 20, 21, 22, 23, 24, 25, 26], "50000": [18, 20, 24, 25, 26], "echo": [18, 19, 20, 22, 24, 25, 29], "joint_stat": [18, 20, 22, 29, 41], "dynamic_joint_st": [18, 20, 29, 41], "load_control": 18, "joint_trajectory_position_control": 18, "successfulli": [18, 21, 26], "set_controller_st": 18, "rrbot_control": [18, 19, 20, 28, 29], "four": [18, 21, 30], "test_joint_trajectory_control": 18, "rrbot_joint_trajectory_publish": 18, "rrbot_descript": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29], "rrbot_forward_position_publish": [18, 29], "ros2_control_demo_example_10": 19, "contrast": 19, "gpio_control": 19, "gpiocontrol": 19, "interface_nam": [19, 37, 38], "1199574016": 19, "1676318848": 19, "rrbotsystemwithgpiohardwar": 19, "gp": 19, "example_12": 20, "been": 20, "known": 20, "passthrough_control": 20, "ros2_control_demo_example_12": 20, "ident": [20, 22, 27, 29, 43], "joint2_position_control": 20, "passthroughcontrol": 20, "joint1_position_control": 20, "someth": 20, "automat": [20, 27, 29, 33, 48], "appear": 20, "whose": [20, 43], "henc": [20, 27], "launch_chained_control": 20, "position_control": [20, 34, 38], "streamlin": 20, "clearli": 20, "sent": [20, 42], "reflect": 20, "canopen_402": [21, 26], "modbu": [21, 26], "rs232": [21, 26], "rs485": [21, 26], "ros2_control_demo_example_14": 21, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 21, "list_hardware_compon": [21, 22, 24, 25, 26], "rrbotmodularjoint2": [21, 26], "rrbotactuatorwithoutfeedback": 21, "rrbotmodularjoint1": [21, 26], "rrbotmodularpositionsensorjoint2": 21, "rrbotsensorpositionfeedback": 21, "rrbotmodularpositionsensorjoint1": 21, "forward_velocity_control": [21, 23], "000000": 21, "00000": [21, 22, 23], "25300": 21, "rrbot_actuator_without_feedback": 21, "rrbot_sensor_for_position_feedback": 21, "example_2": 22, "excess": 22, "print": [22, 41], "left_wheel_joint": 22, "right_wheel_joint": 22, "diffbot_base_control": 22, "diff": 22, "geometry_msg": [22, 24, 25, 33, 37, 47], "twist": [22, 33, 47, 48], "linear": [22, 27, 33, 40, 43, 47, 48], "angular": [22, 33, 40, 47, 48], "circl": 22, "diffbotsystemhardwar": 22, "33333": 22, "faster": 22, "genericsystem": 22, "use_mock_hardwar": 22, "true": [22, 29, 33, 42, 43, 44, 47], "calculate_dynam": 22, "diffbot_control": 22, "diffbot_descript": 22, "diffbot_system": 22, "example_3": 23, "fri": [23, 52], "abb": [23, 52], "yumi": 23, "schunk": [23, 52], "lwa4p": 23, "illeg": 23, "declin": 23, "faulti": 23, "ros2_control_demo_example_3": 23, "rrbot_system_multi_interfac": 23, "robot_control": [23, 27], "spawn": 23, "forward_acceleration_control": 23, "velocity_control": [23, 34, 38], "jointgroupvelocitycontrol": 23, "rrbotsystemmultiinterfacehardwar": 23, "po": [23, 43], "78500": 23, "vel": [23, 47], "acc": 23, "control_lvl": 23, "forward_illegal1_control": 23, "forward_illegal2_control": 23, "1676209982": 23, "531163501": 23, "resource_manag": 23, "rrbotsystemmultiinterfac": 23, "did": 23, "531223835": 23, "sinc": [23, 27, 32], "reject": [23, 42, 43], "spawner": 23, "531717376": 23, "spawner_forward_illegal1_control": 23, "indic": [23, 27], "rrbot_multi_interface_forward_control": 23, "krc": 24, "prototyp": 24, "odri": [24, 52], "ros2_control_demo_example_4": 24, "rrbot_system_with_sensor": 24, "rrbotsystemwithsensor": 24, "rrbotsystemwithsensorhardwar": 24, "fts_broadcast": [24, 25], "force_torque_sensor_broadcast": [24, 25], "forcetorquesensorbroadcast": [24, 25], "wrench": [24, 25, 31], "republish": [24, 25], "wrenchstamp": [24, 25, 37], "stamp": [24, 25, 47], "sec": [24, 25], "1676444704": [24, 25], "nanosec": [24, 25], "332221422": [24, 25], "tool_link": [24, 25], "946532964706421": 24, "nan": [24, 42], "0540995597839355": 24, "rrbot_with_sensor_control": 24, "pc": 25, "3d": [25, 27], "ros2_control_demo_example_5": 25, "rrbot_system_with_external_sensor": 25, "externalrrbotftsensor": 25, "externalrrbotforcetorquesensorhardwar": 25, "2126582860946655": 25, "3202226161956787": 25, "4302282333374023": 25, "540233612060547": 25, "647800624370575": 25, "7602499723434448": 25, "rrbot_with_external_sensor_control": 25, "rrbot_system_position_onli": 25, "external_rrbot_force_torque_sensor": 25, "mara": 26, "ros2_control_demo_example_6": 26, "rrbot_modular_actu": 26, "rrbotmodularjoint": 26, "rrbot_actu": 26, "queri": [27, 44], "enhanc": 27, "deploi": 27, "oper": [27, 53], "pattern": 27, "vendor": 27, "runtim": 27, "program": 27, "conform": 27, "newest": 27, "characterist": 27, "tree": [27, 33], "primari": [27, 44], "commerci": 27, "scratch": 27, "illustr": 27, "stl": 27, "dae": 27, "coars": 27, "mesh": 27, "fast": [27, 52], "collis": 27, "express": 27, "vertic": 27, "transform": 27, "rotat": [27, 33, 42], "translat": [27, 33, 48], "proxim": 27, "face": 27, "co": 27, "planer": 27, "xy": 27, "plane": 27, "align": 27, "blender": 27, "begin": 27, "neg": [27, 42], "roll": 27, "pitch": 27, "yaw": 27, "repeat": 27, "robot_6_dof": 27, "base_link": [27, 47, 48], "link_0": 27, "inerti": 27, "mass": 27, "inertia": 27, "ixx": 27, "ixi": 27, "ixz": 27, "iyi": 27, "iyz": 27, "izz": 27, "tool0": 27, "base_joint": 27, "joint_1": 27, "link_1": 27, "061584": 27, "141592653589793": 27, "name_spac": 27, "class_nam": 27, "pi": [27, 42], "enclos": 27, "previous": 27, "left": 27, "zero": [27, 31, 42, 43], "rel": [27, 43], "center": 27, "uniform": 27, "consecut": 27, "motion": [27, 42], "subsequ": 27, "join": [27, 53], "speci": 27, "verifi": 27, "urdf_to_graphviz": 27, "r6bot": 27, "explain": 27, "robotsystem": 27, "ur5": 27, "five": 27, "hardware_interface_return_valu": 27, "hardware_interface_publ": 27, "commandinterfac": 27, "durat": 27, "period": [27, 42], "privat": 27, "memori": [27, 35], "alloc": 27, "establish": 27, "angl": [27, 32, 47], "notabl": 27, "vari": 27, "fill": 27, "field": [27, 41, 43], "suppos": [27, 43], "tcp_force_torque_sensor": 27, "Their": 27, "pointer": 27, "info_": 27, "state_interfaces_": 27, "nearli": 27, "previou": [27, 43, 53], "command_interfaces_": 27, "constraint": [27, 35, 39, 40, 42, 44, 47], "respons": 27, "turn": 27, "oppos": [27, 44], "tcp": [27, 31], "packet": 27, "robot_6_dof_hardwar": 27, "discov": 27, "library_nam": 27, "base_class_typ": 27, "human": 27, "notic": [27, 43], "just": 27, "add_librari": 27, "robot_hardwar": 27, "unlik": 27, "finit": 27, "certain": [27, 36, 45, 50], "transit": [27, 43], "robotcontrol": 27, "nine": 27, "six": [27, 37], "callback": 27, "lifetim": 27, "restart": 27, "reconfigur": 27, "buffer": [27, 53], "reset": [27, 47], "transfer": 27, "eventu": 27, "mutex": 27, "guarante": [27, 43], "never": 27, "release_interfac": 27, "shut": 27, "free": [27, 33], "cleanup": 27, "r6bot_control": 27, "view_r6bot": 27, "ros2_control_demo_example_7": 27, "send_trajectori": 27, "circular": 27, "ros2_control_demo_example_8": 28, "rrbot_transmissions_system_position_onli": 28, "rrbottransmissionssystempositiononlyhardwar": 28, "transmission1": 28, "actuator1": 28, "transmission2": 28, "actuator2": 28, "383253": 28, "766505": 28, "53301": 28, "example_9": 29, "later": [29, 43], "ros2_control_demo_example_9": 29, "rrbot_gazebo_class": 29, "usr": 29, "ax": [30, 32, 37, 40, 49], "wheel": [30, 32, 33, 47, 49], "traction": [30, 32, 47, 48, 49], "steerabl": [30, 32, 49], "generate_parameter_librari": [30, 31, 32, 38, 39, 40, 47, 49], "parameter": [30, 32, 47, 49], "front_wheel_track": 30, "front": [30, 31, 32, 47, 49], "length": [30, 40, 47, 49], "en": [30, 32, 49], "wikipedia": [30, 32, 47, 49, 53], "wiki": [30, 32, 43, 44, 49], "wheelbas": [30, 32, 49], "rear_wheel_track": 30, "rear": [30, 32, 47, 49], "distanc": [30, 32, 44, 46, 49], "front_wheels_radiu": [30, 49], "radiu": [30, 32, 49], "rear_wheels_radiu": [30, 49], "chainedcontrollerinterfac": 31, "joint_refer": 31, "trajectory_msg": [31, 43, 44], "jointtrajectorypoint": [31, 43], "admittancecontrollerst": 31, "ft_sensor": 31, "sensor_nam": [31, 37, 40, 46], "ackermann": [32, 34, 47], "vehicl": 32, "probabl": 32, "front_wheel_radiu": 32, "rear_wheel_radiu": 32, "bodi": 33, "odometri": [33, 47, 48], "space": [33, 44], "hw_if_posit": [33, 34, 47], "hw_if_veloc": [33, 34, 47], "position_feedback": [33, 47], "twiststamp": [33, 47], "use_stamped_vel": [33, 47], "nav_msg": [33, 47], "estim": 33, "tf": [33, 47], "tf2_msg": [33, 47], "tfmessag": [33, 47], "enable_odom_tf": [33, 47], "cmd_vel_out": 33, "publish_limited_veloc": 33, "jointlimit": 33, "joint_limit": 33, "commonli": 34, "bicycl": [34, 47], "effort_control": [34, 38], "hw_if_acceler": 34, "hw_if_effort": 34, "represent": [34, 44], "controllernam": 35, "protect": 35, "reserv": 35, "importantli": 35, "ask": [35, 41], "sort": 35, "controller_name_namespac": 35, "controller_name_packag": 35, "ros2_control_test_asset": 35, "special": [36, 43, 45, 50], "hz": [36, 39, 45, 50], "wrapper": [37, 40, 46], "forcetorquesensor": 37, "6d": 37, "per": 37, "less": [37, 47], "example_nam": 37, "example_interfac": 37, "feedforward": 38, "multi_interface_forward_command_control": 38, "string_arrai": [38, 47], "action_monitor_r": [39, 42, 44], "greater": [39, 42], "equal": [39, 40], "goal_toler": 39, "max_effort": 39, "allow_stal": 39, "stall": 39, "stall_velocity_threshold": 39, "threshold": 39, "001": 39, "stall_timeout": 39, "imusensor": 40, "orient": 40, "angular_veloc": 40, "linear_acceler": 40, "static_covariance_orient": 40, "double_arrai": [40, 47], "static": 40, "covari": [40, 47], "row": 40, "static_covariance_angular_veloc": 40, "static_covariance_linear_acceler": 40, "unless": 41, "latter": 41, "matrix": [41, 47], "product": 41, "use_local_top": 41, "my_state_broadcast": 41, "arrai": 41, "extra_joint": 41, "map_interface_to_joint_st": 41, "usecas": 41, "hydraul": [41, 42], "relianc": 41, "techniqu": 41, "slightli": 41, "custom_interfac": 41, "kf_estimated_posit": 41, "derived_veloc": 41, "derived_effort": 41, "torque_sensor": 41, "current_sensor": 41, "command_joint": 42, "jtc": 42, "state_publish_r": [42, 44], "monitor": [42, 44], "allow_partial_joints_go": [42, 44], "allow_integration_in_goal_trajectori": [42, 43], "interpolation_method": 42, "interpol": [42, 44], "spline": 42, "open_loop_control": [42, 44], "gain": 42, "numer": 42, "numeric_limit": 42, "quiet_nan": 42, "start_with_hold": 42, "hold": [42, 43], "allow_nonzero_velocity_at_trajectory_end": 42, "cmd_timeout": 42, "stale": 42, "count": 42, "goal_tim": [42, 44], "toler": [42, 44], "jointtrajectori": [42, 43, 44], "stopped_velocity_toler": [42, 44], "deviat": 42, "maxim": 42, "reach": [42, 43, 44], "predefin": 42, "infinit": 42, "amount": 42, "law": [42, 44], "k_": 42, "ff": 42, "v_d": 42, "k_p": 42, "k_i": 42, "sum": 42, "dt": 42, "k_d": 42, "angle_wraparound": 42, "i_clamp": 42, "clamp": 42, "symmetr": 42, "ff_velocity_scal": 42, "feed": 42, "wrap": [42, 44], "ie": [42, 43], "shortest": 42, "s_d": 42, "saniti": 43, "sampl": [43, 47], "segment": [43, 44], "fault": 43, "datapoint": 43, "deduc": 43, "nor": 43, "discourag": 43, "yield": 43, "discontinu": [43, 44], "cubic": 43, "quintic": 43, "heun": 43, "grid": 43, "10m": 43, "deduct": 43, "nonzero": 43, "inconsist": 43, "overshoot": 43, "timestamp": 43, "arriv": 43, "necessarili": 43, "discard": 43, "substitut": 43, "smarter": 43, "preserv": 43, "flat": 43, "grei": 43, "red": 43, "traj": 43, "time_from_start": 43, "splice": 43, "append": 43, "held": [43, 44], "smooth": [43, 53], "longer": 43, "slower": 43, "effect": 43, "Of": 43, "interest": 43, "adolfo": [43, 44], "rodriguez": [43, 44], "instant": 44, "citat": 44, "adapt": 44, "restrict": 44, "present": 44, "robust": 44, "clock": 44, "queu": 44, "joint3": 44, "joint4": 44, "joint5": 44, "joint6": 44, "preempt": 44, "cancel": 44, "notifi": 44, "abort": 44, "legal": 44, "subset": 44, "favor": 44, "violat": 44, "joint_trajectori": 44, "fire": 44, "sender": 44, "query_st": 44, "cumbersom": 44, "controller_st": [44, 47], "jointtrajectorycontrollerst": 44, "querytrajectoryst": 44, "footnot": 44, "rangesensor": 46, "radiation_typ": 46, "int": [46, 47], "radiat": 46, "ultrason": 46, "infrar": 46, "field_of_view": 46, "arc": 46, "rad": [46, 47], "min_rang": 46, "minimum": 46, "m": [46, 47], "max_rang": 46, "maximum": 46, "nomenclatur": 47, "unstamp": 47, "concret": 47, "tricylc": 47, "seer": 47, "front_steer": 47, "front_wheels_nam": 47, "rear_wheels_nam": 47, "traction_feedback_typ": 47, "in_chained_mod": 47, "reference_unstamp": 47, "tf_odometri": 47, "steeringcontrollerstatu": 47, "reference_timeout": 47, "unwant": 47, "danger": 47, "behaviour": 47, "rear_wheels_state_nam": 47, "front_wheels_state_nam": 47, "open_loop": 47, "velocity_rolling_window_s": 47, "number": 47, "averag": 47, "base_frame_id": 47, "odom_frame_id": 47, "twist_covariance_diagon": 47, "diagon": 47, "pose_covariance_diagon": 47, "pose": 47, "wheel_track": 49, "page": [51, 52], "isaac": 51, "webot": 51, "manufactur": 52, "franka": 52, "emika": 52, "xarm": 52, "flexiv": 52, "rizon": 52, "igu": 52, "commonplac": 52, "husarion": 52, "rosbot": 52, "xl": 52, "2r": 52, "pro": 52, "openmanipul": 52, "clearpath": 52, "jackal": 52, "j100": 52, "huski": 52, "a200": 52, "unoffici": 52, "iiwa": 52, "lbr": 52, "iiqka": 52, "eci": 52, "sunris": 52, "kss": 52, "egm": 52, "mitsubishi": 52, "rv1a": 52, "protocol": 52, "ethercat": 52, "canopen": 52, "svh": 52, "finger": 52, "dimens": 52, "haptic": 52, "odriv": 52, "ndi": 52, "pca9685": 52, "bit": 52, "pwm": 52, "servo": 52, "hoverboard": 52, "overcom": 53, "idea": 53, "wide": 53, "toolkit": 53, "unreleas": 53, "question": 53, "wg": 53, "wednesdai": 53, "announc": 53, "discours": 53, "googl": 53, "bug": 53, "tracker": 53, "reproduc": 53, "regard": 53, "built": 53, "gmt": 53}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "review": 0, "stat": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 16, 53], "process": [1, 9], "merg": 1, "write": [1, 11, 14, 27, 35], "document": [1, 8, 10, 53], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": 2, "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 14, 27, 38, 41, 44], "class": [2, 8], "interfac": [2, 4, 12, 15, 19, 23, 27, 28, 31, 33, 36, 38, 41, 44, 45, 47, 50], "control": [2, 3, 4, 5, 6, 8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 35, 36, 38, 39, 44, 45, 47, 50, 51], "": [2, 33, 44, 47], "access": 2, "migrat": [2, 11], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 12, 16, 27, 31, 34, 53], "robothardwar": 2, "compon": [2, 4, 6, 11, 13, 14], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 16], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 16], "run": [3, 4, 5, 16], "demo": [3, 5, 6, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 27], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35, 44], "mimic": [3, 5], "joint": [3, 5, 12, 13, 44], "simul": [3, 5, 29, 51], "plugin": [3, 5, 27], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 16], "binari": 4, "packag": [4, 16], "from": [4, 6, 11, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 47], "sourc": [4, 16], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 27, 33, 44, 47], "framework": 4, "robot": [4, 7, 16, 19, 21, 23, 24, 25, 26, 27, 28, 34, 52], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "mission": 6, "support": [6, 52], "semant": 6, "featur": [6, 10, 33, 44, 48], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 31, 33, 36, 38, 45, 50, 51], "meetup": 7, "munich": 7, "5": [7, 25], "2022": 7, "12": [7, 20], "industri": [7, 19, 24, 25, 28], "confer": 7, "10": [7, 19], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 20], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 33], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 13, 30, 31, 32, 33, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47, 49, 50], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "guidelin": [11, 34], "best": [11, 34], "practic": [11, 34], "handl": 11, "error": 11, "happen": 11, "dure": 11, "read": 11, "call": 11, "foxi": 11, "newer": 11, "version": 11, "type": [12, 38, 41, 44], "sensor": [12, 24, 25, 37, 40, 46], "gpio": [12, 19], "exampl": [12, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 43], "mock": 13, "gener": 13, "system": 13, "per": 13, "extern": [14, 25, 35], "refer": [14, 31, 33, 35, 44, 47], "command": [15, 31, 41, 44, 47, 48], "line": 15, "list_control": 15, "list_controller_typ": 15, "list_hardware_compon": 15, "list_hardware_interfac": 15, "load_control": 15, "reload_controller_librari": 15, "set_controller_st": 15, "switch_control": 15, "unload_control": 15, "view_controller_chain": 15, "what": 16, "you": 16, "can": 16, "find": 16, "thi": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "goal": 16, "overview": [16, 27], "local": 16, "debian": 16, "docker": 16, "view": 16, "quick": 16, "hint": 16, "1": [18, 44], "rrbot": [18, 20, 29], "step": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "file": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "14": 21, "modular": [21, 26], "actuat": [21, 26], "provid": 21, "state": [21, 31, 44, 47], "diffbot": 22, "3": 23, "multipl": 23, "4": 24, "integr": [24, 51], "connect": 25, "6": 26, "separ": 26, "commun": [26, 51, 53], "each": 26, "7": 27, "full": 27, "6dof": 27, "geometri": 27, "cmake": 27, "librari": 27, "launch": 27, "8": 28, "an": 28, "expos": 28, "transmiss": 28, "9": 29, "ackermann_steering_control": 30, "admitt": 31, "2": [31, 33, 36, 38, 45, 50], "topic": [31, 36, 38, 45, 50], "bicycle_steering_control": 32, "diff_drive_control": 33, "other": [33, 34, 44, 48], "feedback": 33, "subscrib": [33, 44, 47], "publish": [33, 44, 47], "mobil": 34, "manipul": 34, "broadcast": [34, 37, 40, 46], "new": 35, "effort_control": 36, "jointgroupeffortcontrol": 36, "forc": 37, "torqu": 37, "forward_command_control": 38, "gripper": 39, "action": [39, 44], "imu": 40, "joint_state_broadcast": 41, "detail": 42, "about": 42, "trajectori": [43, 44], "represent": 43, "interpol": 43, "method": 43, "none": 43, "spline": 43, "visual": 43, "replac": 43, "joint_trajectory_control": 44, "preemption": 44, "polici": 44, "servic": 44, "further": 44, "inform": 44, "position_control": 45, "jointgrouppositioncontrol": 45, "rang": 46, "steering_controllers_librari": 47, "execut": 47, "logic": 47, "preced": 47, "tricycle_control": 48, "veloc": 48, "tricycle_steering_control": 49, "velocity_control": 50, "jointgroupvelocitycontrol": 50, "host": 51, "welcom": 53, "humbl": 53, "develop": 53, "organis": 53}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Reviewers\u2019 Stats": [[0, "reviewers-stats"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [16, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [11, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [13, "parameters"], [30, "parameters"], [31, "parameters"], [32, "parameters"], [33, "parameters"], [36, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [45, "parameters"], [46, "parameters"], [47, "parameters"], [49, "parameters"], [50, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Guidelines and Best Practices": [[11, "guidelines-and-best-practices"], [34, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[11, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[11, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[12, "ros2-control-hardware-interface-types"]], "Joints": [[12, "joints"]], "Sensors": [[12, "sensors"]], "GPIOs": [[12, "gpios"]], "Examples": [[12, "examples"], [16, "examples"]], "Mock Components": [[13, "mock-components"]], "Generic System": [[13, "generic-system"]], "Per-joint Parameters": [[13, "per-joint-parameters"]], "Writing a Hardware Component": [[14, "writing-a-hardware-component"]], "Useful External References": [[14, "useful-external-references"], [35, "useful-external-references"]], "Command Line Interface": [[15, "command-line-interface"]], "list_controllers": [[15, "list-controllers"]], "list_controller_types": [[15, "list-controller-types"]], "list_hardware_components": [[15, "list-hardware-components"]], "list_hardware_interfaces": [[15, "list-hardware-interfaces"]], "load_controller": [[15, "load-controller"]], "reload_controller_libraries": [[15, "reload-controller-libraries"]], "set_controller_state": [[15, "set-controller-state"]], "switch_controllers": [[15, "switch-controllers"]], "unload_controller": [[15, "unload-controller"]], "view_controller_chains": [[15, "view-controller-chains"]], "Demos": [[16, "demos"]], "What you can find in this repository": [[16, "what-you-can-find-in-this-repository"]], "Goals": [[16, "goals"]], "Examples Overview": [[16, "examples-overview"]], "Local installation": [[16, "local-installation"]], "Build from debian packages": [[16, "build-from-debian-packages"]], "Build from source": [[16, "build-from-source"]], "Using Docker": [[16, "using-docker"]], "To view the robot": [[16, "to-view-the-robot"]], "To run the ros2_control demos": [[16, "to-run-the-ros2-control-demos"]], "Quick Hints": [[16, "quick-hints"]], "Example 1: RRBot": [[18, "example-1-rrbot"]], "Tutorial steps": [[18, "tutorial-steps"], [20, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [28, "tutorial-steps"], [29, "tutorial-steps"]], "Files used for this demos": [[18, "files-used-for-this-demos"], [19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [29, "files-used-for-this-demos"]], "Controllers from this demo": [[18, "controllers-from-this-demo"], [19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [29, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[19, "example-10-industrial-robot-with-gpio-interfaces"]], "Example 12: Controller chaining with RRBot": [[20, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[21, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[22, "diffbot"]], "Example 3: Robots with multiple interfaces": [[23, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[24, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[24, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[25, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[26, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[27, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[27, "ros2-control-overview"]], "Writing a URDF": [[27, "writing-a-urdf"]], "Geometry": [[27, "geometry"]], "URDF file": [[27, "urdf-file"]], "Writing a hardware interface": [[27, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[27, "plugin-description-file-hardware"]], "CMake library (hardware)": [[27, "cmake-library-hardware"]], "Writing a controller": [[27, "writing-a-controller"]], "Plugin description file (controller)": [[27, "plugin-description-file-controller"]], "CMake library (controller)": [[27, "cmake-library-controller"]], "Launching the example": [[27, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[28, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[29, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[30, "ackermann-steering-controller"]], "Admittance Controller": [[31, "admittance-controller"]], "ROS 2 interface of the controller": [[31, "ros-2-interface-of-the-controller"], [36, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [45, "ros-2-interface-of-the-controller"], [50, "ros-2-interface-of-the-controller"]], "Topics": [[31, "topics"], [36, "topics"], [38, "topics"], [45, "topics"], [50, "topics"]], "ros2_control interfaces": [[31, "ros2-control-interfaces"]], "References": [[31, "references"], [33, "references"], [44, "references"]], "States": [[31, "states"], [44, "states"], [47, "states"]], "Commands": [[31, "commands"], [41, "commands"], [44, "commands"], [47, "commands"]], "bicycle_steering_controller": [[32, "bicycle-steering-controller"]], "diff_drive_controller": [[33, "diff-drive-controller"]], "Other features": [[33, "other-features"], [44, "other-features"], [48, "other-features"]], "Description of controller\u2019s interfaces": [[33, "description-of-controller-s-interfaces"], [44, "description-of-controller-s-interfaces"], [47, "description-of-controller-s-interfaces"]], "Feedback": [[33, "feedback"]], "Output": [[33, "output"]], "ROS 2 Interfaces": [[33, "ros-2-interfaces"]], "Subscribers": [[33, "subscribers"], [47, "subscribers"]], "Publishers": [[33, "publishers"], [44, "publishers"], [47, "publishers"]], "ros2_controllers": [[34, "ros2-controllers"]], "Controllers for Mobile Robots": [[34, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[34, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[34, "broadcasters"]], "Writing a new controller": [[35, "writing-a-new-controller"]], "effort_controllers": [[36, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[36, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[37, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[38, "forward-command-controller"]], "Hardware interface type": [[38, "hardware-interface-type"], [41, "hardware-interface-type"]], "Gripper Action Controller": [[39, "gripper-action-controller"]], "IMU Sensor Broadcaster": [[40, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[41, "joint-state-broadcaster"]], "Details about parameters": [[42, "details-about-parameters"]], "Trajectory Representation": [[43, "trajectory-representation"]], "Interpolation Method none": [[43, "interpolation-method-none"]], "Interpolation Method spline": [[43, "interpolation-method-spline"]], "Visualized Examples": [[43, "visualized-examples"]], "Trajectory Replacement": [[43, "trajectory-replacement"]], "joint_trajectory_controller": [[44, "joint-trajectory-controller"]], "Hardware interface types": [[44, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[44, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[44, "preemption-policy"]], "Actions 1": [[44, "actions"]], "Subscriber 1": [[44, "subscriber"]], "Services": [[44, "services"]], "Further information": [[44, "further-information"]], "position_controllers": [[45, "position-controllers"]], "position_controllers/JointGroupPositionController": [[45, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[46, "range-sensor-broadcaster"]], "steering_controllers_library": [[47, "steering-controllers-library"]], "Execution logic of the controller": [[47, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[47, "references-from-a-preceding-controller"]], "tricycle_controller": [[48, "tricycle-controller"]], "Velocity commands": [[48, "velocity-commands"]], "tricycle_steering_controller": [[49, "tricycle-steering-controller"]], "velocity_controllers": [[50, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[50, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[51, "simulator-integrations"]], "Hosted by ros-controls": [[51, "hosted-by-ros-controls"]], "Community": [[51, "community"]], "Supported Robots": [[52, "supported-robots"]], "Welcome to the ros2_control documentation - Humble!": [[53, "welcome-to-the-ros2-control-documentation-humble"]], "ros2_control Repositories": [[53, "ros2-control-repositories"]], "Development Organisation and Communication": [[53, "development-organisation-and-communication"]]}, "indexentries": {}})
\ No newline at end of file
diff --git a/iron/.buildinfo b/iron/.buildinfo
index fba8c8b2a3e..06f962e0303 100644
--- a/iron/.buildinfo
+++ b/iron/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: c2adb03f701fe41c95e1407598781f73
+config: d1600819534f0edbd43394a820487c6e
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/iron/.doctrees/doc/acknowledgements/acknowledgements.doctree b/iron/.doctrees/doc/acknowledgements/acknowledgements.doctree
index 5612e85fbcd..a9b9a0bc123 100644
Binary files a/iron/.doctrees/doc/acknowledgements/acknowledgements.doctree and b/iron/.doctrees/doc/acknowledgements/acknowledgements.doctree differ
diff --git a/iron/.doctrees/doc/contributing/contributing.doctree b/iron/.doctrees/doc/contributing/contributing.doctree
index d32c19add8f..a652640086c 100644
Binary files a/iron/.doctrees/doc/contributing/contributing.doctree and b/iron/.doctrees/doc/contributing/contributing.doctree differ
diff --git a/iron/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree b/iron/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree
index 9331087b13a..a19abcec5cb 100644
Binary files a/iron/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree and b/iron/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree differ
diff --git a/iron/.doctrees/doc/gazebo_ros2_control/doc/index.doctree b/iron/.doctrees/doc/gazebo_ros2_control/doc/index.doctree
index 0f502d1165b..745c5c1f16f 100644
Binary files a/iron/.doctrees/doc/gazebo_ros2_control/doc/index.doctree and b/iron/.doctrees/doc/gazebo_ros2_control/doc/index.doctree differ
diff --git a/iron/.doctrees/doc/getting_started/getting_started.doctree b/iron/.doctrees/doc/getting_started/getting_started.doctree
index 97aff6538fc..1944f6fc582 100644
Binary files a/iron/.doctrees/doc/getting_started/getting_started.doctree and b/iron/.doctrees/doc/getting_started/getting_started.doctree differ
diff --git a/iron/.doctrees/doc/gz_ros2_control/doc/index.doctree b/iron/.doctrees/doc/gz_ros2_control/doc/index.doctree
index 29ff9143a0c..5bbf30c7469 100644
Binary files a/iron/.doctrees/doc/gz_ros2_control/doc/index.doctree and b/iron/.doctrees/doc/gz_ros2_control/doc/index.doctree differ
diff --git a/iron/.doctrees/doc/project_ideas.doctree b/iron/.doctrees/doc/project_ideas.doctree
index a5b2c23ab65..03ccf0612f4 100644
Binary files a/iron/.doctrees/doc/project_ideas.doctree and b/iron/.doctrees/doc/project_ideas.doctree differ
diff --git a/iron/.doctrees/doc/resources/resources.doctree b/iron/.doctrees/doc/resources/resources.doctree
index 194bc2e4e01..ab0a0e3fc8f 100644
Binary files a/iron/.doctrees/doc/resources/resources.doctree and b/iron/.doctrees/doc/resources/resources.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree b/iron/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree
index 83a95fc1c49..0473524fe79 100644
Binary files a/iron/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree and b/iron/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree
index 20703432615..e0bf25c688e 100644
Binary files a/iron/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control/doc/index.doctree b/iron/.doctrees/doc/ros2_control/doc/index.doctree
index 55a88f48c96..cfa42e109cf 100644
Binary files a/iron/.doctrees/doc/ros2_control/doc/index.doctree and b/iron/.doctrees/doc/ros2_control/doc/index.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree
index 4fc17b09612..3a0e0f0c70e 100644
Binary files a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree and b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree
index 6d9f2773d4e..0a30b419294 100644
Binary files a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree and b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree
index 16802575a1b..d04d3a1649d 100644
Binary files a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree and b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree
index 7a7daeff824..590f9e61a46 100644
Binary files a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree and b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree
index 50ed6834646..6d78894a27a 100644
Binary files a/iron/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/doc/index.doctree b/iron/.doctrees/doc/ros2_control_demos/doc/index.doctree
index eb9ae2c6a70..990fc0433a9 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/doc/index.doctree and b/iron/.doctrees/doc/ros2_control_demos/doc/index.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree b/iron/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree
index 051f5e668d1..43e2df6a351 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree and b/iron/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree
index 63b0ac4b12a..cfbee4a9465 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree
index 585baac32af..4f2fd3d9177 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree
index 1207ea0de1c..55c7464430e 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree
index 384bc052562..1ba4618dd4f 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree
index 3326e1636c8..fc6a5284063 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree
index 8af9542e7e5..c99004e91c6 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree
index b59ef9fb0a9..25995ee9b15 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree
index 73281e23080..66cace9cef7 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree
index e203f8e096e..430984e396d 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree
index 9cc888c8f99..9b17c37ee82 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree
index 0bf7c152e6e..998b711d5a9 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree
index 4bcba8ac0f4..6a41816f96c 100644
Binary files a/iron/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree
index 84a39efb18d..2ad9479c0aa 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree
index d1f77c06c1f..2fbf6345640 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree
index 324ed67ee6e..7b53f126d2d 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree
index eba9eaa0b07..d329511a19c 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/iron/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree
index 332d3a761a2..ed8caf886d4 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree and b/iron/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree b/iron/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree
index 4ae1c60c436..9cf41463379 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree and b/iron/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree
index 023e73ee739..3499871a0dd 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree
index 073ad20523e..429366655f4 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree
index 6677cd4ee48..e2eadd66d53 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree
index e08f25dc105..e87dc0db72e 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree
index 95da3cf6398..99d4b8ce6f5 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree
index e59d8099f39..7fddda9c824 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree
index 53b2f20a26e..4eb37e8f7d6 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree and b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree
index baa92baf601..0b7dbad4396 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree and b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree
index 840ef38e6dc..be58d4abe04 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree
index 1dbc4e38b66..a97046940e2 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree
index bd35e110d5e..805bcc4031e 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree
index e83cbcf5ab7..329492061f9 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree
index 8bd80fd5a45..3fad8049459 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree
index aeb53293f95..6e1583e5980 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree
index 94329a6735f..75a68479fdd 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree
index 37238c45ed3..1c40bbeae21 100644
Binary files a/iron/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree differ
diff --git a/iron/.doctrees/doc/simulators/simulators.doctree b/iron/.doctrees/doc/simulators/simulators.doctree
index d1bddb3f38d..c380f5f8338 100644
Binary files a/iron/.doctrees/doc/simulators/simulators.doctree and b/iron/.doctrees/doc/simulators/simulators.doctree differ
diff --git a/iron/.doctrees/doc/supported_robots/supported_robots.doctree b/iron/.doctrees/doc/supported_robots/supported_robots.doctree
index 31bda6adf16..a5127ecc549 100644
Binary files a/iron/.doctrees/doc/supported_robots/supported_robots.doctree and b/iron/.doctrees/doc/supported_robots/supported_robots.doctree differ
diff --git a/iron/.doctrees/environment.pickle b/iron/.doctrees/environment.pickle
index 79a27031d92..fe95c987dbc 100644
Binary files a/iron/.doctrees/environment.pickle and b/iron/.doctrees/environment.pickle differ
diff --git a/iron/.doctrees/index.doctree b/iron/.doctrees/index.doctree
index 97526a2c8b5..38ae32498e8 100644
Binary files a/iron/.doctrees/index.doctree and b/iron/.doctrees/index.doctree differ
diff --git a/iron/doc/acknowledgements/acknowledgements.html b/iron/doc/acknowledgements/acknowledgements.html
index 1782b563980..a8c87fdd3db 100644
--- a/iron/doc/acknowledgements/acknowledgements.html
+++ b/iron/doc/acknowledgements/acknowledgements.html
@@ -145,18 +145,18 @@ Built on 2023-12-30 at 05:31 GMT
+Built on 2023-12-31 at 05:31 GMT
diff --git a/iron/searchindex.js b/iron/searchindex.js index c374e3c8aab..6a444744171 100644 --- a/iron/searchindex.js +++ b/iron/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Hardware Components", "ros2_control
hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Iron!"], "terms": {"The": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 54], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 42, 43, 44, 45, 50, 51, 54], "peopl": [0, 1], "were": [0, 6, 27, 33, 43, 44], "ros2_control": [0, 1, 4, 7, 9, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 33, 35, 52], "framework": [0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 15, 16, 27, 34, 35, 41, 54], "show": [0, 1, 3, 4, 5, 7, 9, 11, 12, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 41, 43], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 41, 42, 43, 44, 53], "time": [0, 1, 2, 6, 7, 9, 13, 15, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 33, 35, 37, 42, 43, 44, 54], "activ": [0, 1, 2, 4, 9, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 42, 44], "assign": [0, 35], "finish": 0, "rate": [0, 22, 34, 42, 43, 44], "last": [0, 11, 14, 27, 31, 35, 42, 43], "date": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "1243": 0, "1023": 0, "0": [0, 3, 4, 5, 8, 12, 13, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 39, 40, 41, 42, 43, 44, 46, 48, 50], "82": 0, "2023": [0, 54], "12": [0, 16, 53, 54], "29t11": 0, "40": 0, "08z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": 0, "985": 0, "561": 0, "57": 0, "18t14": 0, "11": [0, 16], "03z": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "152": 0, "133": 0, "88": 0, "26t09": 0, "00": 0, "02z": 0, "fetch": 0, "30": [0, 3, 5, 22, 54], "03": [0, 44], "25": 0, "46": 0, "utc": 0, "dure": [0, 16, 27, 44], "past": [0, 43], "month": 0, "532": 0, "401": 0, "75": 0, "438": 0, "136": 0, "31": [0, 54], "141": 0, "122": 0, "87": 0, "have": [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14, 16, 18, 20, 22, 23, 27, 29, 30, 31, 32, 34, 35, 41, 42, 44, 50], "contribut": [0, 4, 7], "develop": [0, 1, 7, 13, 14, 16, 35], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 27, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 48, 50, 51, 52, 53, 54], "project": [0, 1, 54], "give": [0, 1, 7, 9, 16, 18, 22, 23, 43, 54], "valuabl": 0, "pull": [0, 14], "request": [0, 2, 14, 27, 41, 54], "see": [0, 1, 2, 4, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 42, 44, 46, 48, 50], "more": [0, 1, 2, 3, 4, 5, 6, 9, 13, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 44, 50], "inform": [0, 3, 5, 8, 13, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 35, 54], "karsten": 0, "knese": 0, "karsten1987": 0, "186": 0, "118": 0, "63": 0, "2021": 0, "09": 0, "07t16": 0, "47": 0, "31z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "90": [0, 27], "80": 0, "89": 0, "27t10": 0, "54": 0, "11z": 0, "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "69": 0, "67": 0, "97": 0, "29t05": 0, "18": [0, 27], "25z": 0, "victor": 0, "lopez": 0, "v": [0, 15, 24, 42], "93": 0, "60": 0, "65": 0, "10": [0, 3, 5, 16, 23, 48], "14t09": 0, "01": [0, 39, 42, 44], "andyz": 0, "45": 0, "98": 0, "23t02": 0, "17": 0, "26z": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "157": 0, "43": [0, 4, 12, 22], "27": 0, "25t12": 0, "02": 0, "18z": 0, "olivi": 0, "stass": 0, "52": [0, 46], "77": 0, "26t08": 0, "13z": 0, "jordan": 0, "palacio": 0, "78": 0, "34": 0, "44": 0, "15t08": 0, "45z": 0, "erick": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 31, 35, 36, 41, 45, 48, 51, 54], "isla": 0, "osuna": 0, "erickiso": 0, "139": 0, "28": [0, 48], "20": [0, 39, 42, 44], "19t20": 0, "32": 0, "07z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "29": 0, "23": [0, 4], "79": 0, "2022": 0, "08": 0, "30t16": 0, "41": 0, "23z": 0, "none": [0, 8, 35, 41, 42, 44], "bijoua29": 0, "160": 0, "21": [0, 48], "13": [0, 16], "06": 0, "01t20": 0, "48": [0, 3, 5], "32z": 0, "jaron": 0, "l": 0, "167": 0, "10t19": 0, "59": 0, "59z": 0, "livanov93": 0, "164": 0, "05": [0, 44, 54], "22t06": 0, "28z": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "94": 0, "27t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "145": 0, "16": [0, 53], "25t06": 0, "15z": 0, "bailac": 0, "14": [0, 16, 48], "1": [0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 39, 43, 46, 48], "09t12": 0, "52z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "135": 0, "22t09": 0, "26": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "24t22": 0, "ari": 0, "synodino": 0, "progtologist": 0, "151": 0, "07": 0, "30t19": 0, "58z": 0, "chen": 0, "bainian": 0, "briancbn": 0, "36": 0, "9": [0, 6, 16, 40], "25t01": 0, "51": 0, "12z": 0, "paul": 0, "gesel": 0, "pac48": 0, "14t18": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "123": 0, "8": [0, 16], "25t18": 0, "19z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "07t07": 0, "01z": 0, "ddengster": 0, "2020": 0, "01t03": 0, "andr": 0, "montano": 0, "anfemosa": 0, "7": [0, 16, 19, 22, 48], "29t15": 0, "37z": 0, "homalozoa": 0, "x": [0, 22, 24, 25, 27, 31, 33, 37, 40, 48, 49, 53], "130": 0, "23t11": 0, "22": [0, 9], "mahaarbo": 0, "01t11": 0, "44z": 0, "matt": 0, "reynold": 0, "matthew": 0, "18t19": 0, "56": 0, "34z": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "04": [0, 9], "09t00": 0, "38": [0, 3, 5], "06z": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "04t13": 0, "50": [0, 4, 9, 22], "48z": 0, "dasroteskelett": 0, "149": 0, "6": [0, 16, 18, 27], "28t09": 0, "36z": 0, "brewmast": 0, "harderthan": 0, "124": 0, "26t15": 0, "47z": 0, "A": [0, 4, 7, 12, 14, 16, 24, 25, 34, 35, 41, 43, 44], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "19t13": 0, "39": 0, "alex": 0, "moriarti": 0, "5": [0, 14, 16, 18, 19, 20, 21, 23, 24, 26, 27, 28, 29, 43, 48, 53], "42": 0, "20t19": 0, "55": 0, "jack": 0, "jackcent": 0, "02t15": 0, "37": 0, "17z": 0, "han": 0, "martin": 0, "duringhof": 0, "4": [0, 12, 16, 21, 23, 25, 28, 46], "29t21": 0, "15": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "20t07": 0, "40z": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "05t22": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "23t00": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "19t23": 0, "49z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "13t18": 0, "27z": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "26t17": 0, "05z": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "22t14": 0, "19": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "3": [0, 3, 4, 5, 6, 12, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 43, 44], "05t08": 0, "53": 0, "mrl1kor": 0, "malapatiravi": 0, "07t18": 0, "adam": 0, "serafin": 0, "serafadam": 0, "12t18": 0, "24": 0, "24z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "03t10": 0, "20z": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "22t13": 0, "tim": 0, "clepha": 0, "timpl": 0, "13t07": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "22t00": 0, "guihom": 0, "guihomework": 0, "17t15": 0, "jose": 0, "lui": 0, "rivero": 0, "j": 0, "26t13": 0, "peter": 0, "david": 0, "fagan": 0, "peterdavidfagan": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 44, 48, 53, 54], "23t22": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "27t03": 0, "57z": 0, "akash": 0, "ace314159": 0, "31t17": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "05t12": 0, "46z": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "01t12": 0, "49": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "09z": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "mhubii": 0, "21t11": 0, "50z": 0, "luka": 0, "macha": 0, "lukasmacha97": 0, "85": 0, "17t18": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t07": 0, "qiayuanliao": 0, "qiayuanl": 0, "35": [0, 48], "25t05": 0, "solomon": 0, "swiz23": 0, "15t15": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "08t14": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "05t10": 0, "53z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "01t13": 0, "22z": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "28t07": 0, "33z": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "schulz": 0, "schulze18": 0, "27t21": 0, "29z": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "franz": 0, "fjp": 0, "04t22": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "nour": 0, "saeed": 0, "d": [0, 16, 18, 29, 42], "dmitri": 0, "dignakov": 0, "13t16": 0, "ken551": 0, "03t11": 0, "54z": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "05t14": 0, "bedard": 0, "christophebedard": 0, "27t18": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "19t14": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "21t14": 0, "21z": 0, "flochr": 0, "20t10": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "51z": 0, "abishalini": 0, "sivaraman": 0, "27t14": 0, "ramcharanthota": 0, "ben": 0, "holden": 0, "bobblebal": 0, "01t10": 0, "Will": 0, "baker": 0, "willcbak": 0, "22t15": 0, "robotgir": 0, "17t16": 0, "33": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "17t10": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "18t09": 0, "josh": 0, "newan": 0, "joshnewan": 0, "14t08": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "26t10": 0, "stephen": 0, "street": 0, "sgstreet": 0, "05t20": 0, "jun": 0, "chenjunnn": 0, "09t06": 0, "daniel": 0, "zumkel": 0, "dzumkel": 0, "shane": 0, "loretz": 0, "sloretz": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "17t21": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "31t15": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "00z": 0, "carlo": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "35z": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "09t18": 0, "reframesystem": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "12t08": 0, "55z": 0, "addisu": 0, "z": [0, 22, 24, 25, 27, 31, 33, 37, 40, 48, 49], "taddes": 0, "azeei": 0, "14t20": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "09t08": 0, "sgmurrai": 0, "0000": 0, "00t00": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoya": 0, "tomoyafujita2016": 0, "usamahamayun1": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "66": 0, "64": 0, "92": 0, "71": 0, "104": 0, "91": 0, "03t19": 0, "14z": 0, "86": 0, "99": [0, 9], "72": 0, "link": [0, 3, 4, 5, 7, 8, 11, 27, 34], "list": [0, 4, 7, 8, 9, 11, 14, 15, 20, 27, 35, 42, 52, 53, 54], "who": 0, "submit": [0, 1, 7, 52, 53], "respect": [0, 3, 5, 6, 7, 42, 43, 44], "repositori": [0, 4, 6, 10, 12, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 33, 34], "ros2_control_demo": [0, 1, 4, 16, 18, 27, 29, 54], "control_toolbox": [0, 54], "gazebo_ros2_control": [0, 29], "gz_ros2_control": 0, "realtime_tool": [0, 6, 54], "kinematics_interfac": [0, 31], "control_msg": [0, 3, 5, 31, 42, 44, 48, 54], "ha": [0, 1, 3, 4, 5, 7, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 34, 35, 41, 42, 43], "receiv": [0, 2, 27, 42, 43], "major": [0, 40], "from": [0, 1, 2, 7, 8, 9, 13, 14, 15, 17, 27, 31, 33, 34, 35, 36, 37, 40, 42, 43, 44, 45, 46, 49, 51, 53, 54], "support": [0, 2, 3, 4, 5, 7, 13, 14, 15, 27, 31, 35, 41, 43, 44, 48, 52, 54], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 12, 13, 15, 16, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 43, 44, 54], "industri": [0, 4, 6, 16, 53], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 12, 18, 20, 22, 29, 33, 37, 41, 48, 49, 54], "softwar": [0, 4, 27], "compon": [0, 7, 9, 10, 12, 15, 16, 21, 22, 23, 24, 25, 26, 27, 31, 33, 34, 37, 40, 46, 48, 49, 54], "http": [0, 1, 4, 6, 16, 27, 30, 32, 50], "www": 0, "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 35, 40, 42, 43, 46, 50, 54], "horizon": 0, "research": [0, 7, 53], "innov": 0, "programm": 0, "under": [0, 7, 14, 20, 35, 43, 44, 48, 54], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 14, 16, 27, 29, 35, 42, 43], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 35, 44, 54], "consid": [1, 15, 42], "As": [1, 8, 12, 14, 18, 27, 33, 35], "an": [1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 18, 20, 22, 25, 27, 29, 30, 31, 32, 33, 34, 35, 36, 41, 42, 44, 45, 48, 50, 51], "open": [1, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 42, 48], "sourc": [1, 3, 5, 7, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "we": [1, 3, 5, 6, 7, 8, 11, 16, 18, 20, 22, 27, 28, 29, 41], "welcom": 1, "each": [1, 4, 6, 8, 9, 11, 12, 14, 16, 18, 21, 27, 30, 41, 48, 50], "contributor": 1, "regardless": 1, "background": [1, 16], "experi": 1, "To": [1, 2, 4, 8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 43, 52, 53, 54], "reduc": [1, 13], "entropi": 1, "univers": [1, 7, 27, 53], "our": [1, 3, 4, 5, 6, 7, 16, 18, 27], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 16], "set": [1, 2, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 18, 27, 34, 36, 41, 42, 43, 44, 45, 48, 51], "up": [1, 7, 14, 16, 43], "some": [1, 3, 5, 6, 7, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 31, 41, 42, 44, 54], "standard": [1, 2, 6, 7, 14, 15, 21, 26, 27, 37, 41], "method": [1, 2, 4, 8, 9, 11, 14, 27, 35, 48], "requir": [1, 2, 4, 6, 14, 27, 31, 35, 36, 44, 45, 51], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 40, 41, 42, 43, 44, 46, 48, 49, 50, 54], "limit": [1, 3, 5, 7, 9, 16, 27, 33, 49], "scope": 1, "your": [1, 2, 7, 9, 13, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 32, 35, 52, 53, 54], "pr": [1, 52, 53], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 35, 41, 43, 44], "do": [1, 2, 4, 6, 7, 8, 9, 14, 16, 31, 35, 44], "one": [1, 2, 4, 6, 7, 8, 9, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 36, 37, 41, 43, 44, 45, 48, 50, 51, 54], "thing": [1, 3, 5, 16], "avoid": [1, 18, 21, 22, 23, 24, 25, 26, 28, 35], "ad": [1, 3, 5, 6, 9, 13, 14, 20, 22, 27, 35, 41], "random": [1, 21, 23, 24, 25, 26], "fix": [1, 2, 27, 30, 32, 50], "put": [1, 14, 35], "those": [1, 2, 4, 6, 8, 13, 14, 16, 27, 33, 35, 37, 41, 42, 43], "separ": [1, 2, 4, 16, 21, 41], "descript": [1, 2, 7, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 35], "titl": 1, "add": [1, 2, 8, 9, 11, 14, 27, 30, 31, 32, 35, 50, 52, 53], "short": [1, 35, 54], "summari": [1, 7, 54], "make": [1, 2, 5, 6, 7, 20, 27, 39, 54], "sure": [1, 5, 6, 18, 20, 21, 22, 23, 24, 25, 26, 28, 54], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54], "green": [1, 43], "don": [1, 3, 8, 22, 42, 44], "t": [1, 3, 5, 8, 9, 16, 22, 42, 43, 44], "afraid": 1, "review": [1, 6, 54], "maintain": [1, 4, 6, 8, 16, 43], "new": [1, 7, 8, 14, 18, 20, 23, 27, 34, 43, 54], "code": [1, 2, 4, 6, 7, 14, 27], "test": [1, 3, 6, 13, 14, 16, 18, 22, 29, 30, 31, 32, 35, 48, 50], "If": [1, 2, 4, 8, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 35, 37, 41, 42, 43, 44, 48, 54], "function": [1, 2, 6, 7, 20, 27, 31, 48], "alwai": [1, 27], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 18, 27, 43, 44], "intent": [1, 8, 13], "section": [1, 2, 12, 14, 35, 44], "target": [1, 9, 14, 31, 35, 38, 42], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 44], "read": [1, 2, 3, 4, 5, 9, 12, 14, 16, 20, 21, 24, 25, 27, 35, 41, 42, 46, 48], "understand": [1, 6, 43], "how": [1, 6, 7, 12, 14, 16, 19, 20, 21, 23, 24, 25, 26, 27, 29, 35], "handl": [1, 2, 4, 6, 7, 14, 24, 27, 30, 31, 32, 38, 39, 40, 44, 48, 50], "organ": [1, 7, 54], "guidelin": 1, "especi": [1, 2, 16, 48], "applic": [1, 4, 7, 9, 12, 27], "pleas": [1, 9, 26, 54], "keep": [1, 27, 35], "mind": [1, 35], "work": [1, 6, 7, 8, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35, 36, 41, 45, 49, 51, 54], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 13, 14, 15, 20, 23, 27, 31, 34, 35, 39, 42, 44, 48], "That": [1, 14, 35], "wai": [1, 9, 14, 27, 35, 37, 44], "main": [1, 4, 6, 7, 9, 13, 27, 35, 48, 54], "repo": [1, 4, 16], "clean": 1, "featur": [1, 7, 13, 16, 18, 28, 48, 54], "branch": [1, 16], "check": [1, 2, 4, 6, 8, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 35, 42, 43, 44, 50, 54], "satisfi": 1, "befor": [1, 2, 8, 9, 14, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 34, 35, 43], "thei": [1, 2, 4, 6, 7, 8, 12, 13, 14, 15, 20, 34, 35, 42, 44, 48], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 35, 37, 38, 42, 43, 44, 48, 54], "must": [1, 3, 5, 8, 9, 12, 16, 27, 40, 42, 44], "approv": 1, "two": [1, 4, 6, 8, 9, 14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 37, 43, 44, 48, 50], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 11, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 32, 33, 35, 36, 37, 41, 42, 43, 44, 45, 51], "except": [1, 27], "other": [1, 2, 3, 4, 7, 14, 16, 21, 26, 27, 30, 32, 35, 41, 43, 48, 50], "where": [1, 3, 6, 8, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 30, 32, 33, 35, 41, 42, 43, 44, 48, 50], "back": 1, "traceabl": 1, "discuss": [1, 7, 20, 29, 43, 54], "suffici": [1, 3, 5, 8, 37], "note": [1, 4, 9, 18, 33, 44, 54], "still": [1, 2, 18, 20, 21, 22, 23, 24, 25, 26, 28, 34, 43], "encourag": 1, "help": [1, 9, 13, 14, 15, 35], "u": [1, 3, 5, 9, 16, 42], "increas": [1, 22], "pace": 1, "veri": [1, 2, 3, 5, 6, 12], "like": [1, 2, 3, 4, 5, 6, 7, 14, 16, 20, 27], "find": [1, 3, 5, 22], "issu": [1, 6, 54], "nobodi": 1, "els": 1, "squash": 1, "commit": 1, "messag": [1, 6, 9, 15, 23, 24, 25, 27, 37, 40, 41, 42, 43, 44, 46, 48, 54], "comment": [1, 27], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 15, 17, 27, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 50, 51, 54], "pre": 1, "correct": [1, 2, 43], "header": [1, 11, 14, 24, 25, 33, 35, 43], "address": [1, 27], "similar": [1, 4, 7, 12, 18, 20, 27], "mean": [1, 2, 8, 12, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 44], "result": [1, 4, 8, 9, 18, 27, 41, 43], "exactli": 1, "cowboi": 1, "style": [1, 14, 35], "over": [1, 6, 8, 22, 27], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 37, 41, 42, 43], "doesn": [1, 8], "matter": 1, "trivial": [1, 13], "chanc": 1, "proper": [1, 8, 9, 44], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 42], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38, 39, 40, 41, 43, 48, 50], "ping": 1, "them": [1, 6, 8, 9, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 41, 43, 53], "necessari": [1, 8, 11], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 8, 9, 11, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 42, 43, 54], "part": [1, 6, 7, 12, 27, 35, 43, 44], "For": [1, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 42, 44, 48, 50], "detail": [1, 2, 3, 4, 5, 9, 11, 12, 13, 14, 20, 27, 29, 30, 32, 33, 35, 43, 44, 50], "thoma": 1, "cokela": 1, "info": [1, 9, 11, 14, 27], "tutori": [1, 16], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 21, 22, 24, 25, 26, 27, 33, 34, 35, 36, 37, 40, 42, 45, 46, 48, 51], "stabl": 1, "against": 1, "accept": [1, 14, 23, 35, 36, 42, 43, 44, 45, 51], "api": [1, 3, 5, 6, 14, 18, 21, 22, 23, 24, 25, 26, 28], "abi": 1, "chang": [1, 2, 4, 7, 9, 11, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 42, 43, 44], "e": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 37, 41, 42, 43, 45, 48, 51, 54], "name": [1, 2, 3, 4, 5, 7, 9, 12, 13, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 29, 31, 35, 37, 38, 40, 41, 42, 46, 48], "convent": [1, 27], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6], "same": [1, 8, 23, 27, 34, 37, 42, 43, 44], "build": [1, 14, 27, 31, 35], "dai": 1, "ros_distro": [1, 4, 16, 18], "foxi": [1, 7, 14], "galact": [1, 11, 14], "releas": [1, 4, 7, 16, 27], "version": [1, 6, 16, 44], "non": [1, 7, 20, 27, 37, 53], "brake": 1, "distribut": [1, 16, 54], "three": [1, 2, 4, 11, 12, 16, 27, 35, 43, 50], "stage": [1, 8, 20], "current": [1, 6, 11, 12, 14, 15, 43, 44, 48], "futur": [1, 7, 8, 43, 44], "compat": [1, 2, 7, 14, 16], "packag": [1, 2, 3, 5, 11, 14, 27, 30, 31, 32, 33, 35, 36, 37, 40, 44, 45, 46, 48, 50, 51, 54], "direct": [1, 2, 6, 14, 27, 35, 42], "local": [1, 3, 5, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 41], "possibl": [1, 4, 6, 9, 12, 16, 18, 21, 22, 23, 24, 25, 26, 28, 31, 35, 43], "core": [1, 10, 27], "immedi": [1, 9, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29], "depend": [1, 4, 11, 12, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 43, 48], "fail": [1, 23, 27], "expect": [1, 6, 20, 27, 30, 32, 44, 48, 50], "after": [1, 8, 9, 14, 16, 18, 27, 33, 35, 42, 43, 48, 49], "next": [1, 18, 27, 43], "sync": 1, "abl": 1, "potenti": [1, 35, 42], "mid": 1, "stat": 1, "power": [1, 3, 5, 7, 14], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 11, 12, 16, 20, 27, 35, 42, 44], "imposs": 2, "extend": [2, 4, 6, 8, 14, 35], "exist": [2, 4, 6, 8, 9, 11, 12, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35, 44], "addit": [2, 3, 5, 8, 16, 19, 22, 27], "sensor": [2, 4, 6, 11, 13, 14, 16, 21, 26, 27, 31, 34, 53], "actuat": [2, 4, 6, 11, 12, 13, 14, 16, 20], "tool": [2, 3, 5, 6, 7, 27], "without": [2, 3, 4, 5, 7, 9, 13, 14, 16, 20, 29, 35, 42, 43], "combinedrobothardwar": 2, "drawback": [2, 54], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 12, 13, 16, 23, 41, 42, 43, 44], "extern": [2, 4, 6, 8, 13, 16, 31], "defin": [2, 3, 5, 6, 9, 13, 14, 16, 27, 31, 35, 37, 40, 41, 42, 43, 44, 46, 48], "system": [2, 3, 4, 5, 6, 7, 11, 12, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 44, 52, 53, 54], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 14, 16, 22, 35], "physic": [2, 4, 11, 12, 13], "cell": [2, 37], "surround": 2, "describ": [2, 4, 8, 12, 16, 18, 23, 27, 29, 43], "multi": [2, 4, 6, 7, 16, 23], "gripper": [2, 3, 4, 5, 7, 12, 13, 34], "out": [2, 3, 5, 9, 27, 33], "box": [2, 16, 18, 22, 23, 24, 25, 28, 29], "allow": [2, 3, 4, 5, 16, 27, 39, 42, 43, 44, 47], "joint": [2, 4, 7, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 42, 43, 45, 48, 50, 51, 54], "posit": [2, 3, 4, 5, 7, 9, 12, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 36, 41, 42, 43, 44, 45, 48, 51], "veloc": [2, 3, 4, 5, 7, 8, 16, 21, 22, 23, 27, 31, 32, 33, 34, 39, 40, 41, 42, 43, 44, 45, 48, 51], "effort": [2, 3, 5, 16, 27, 34, 36, 39, 41, 42, 44], "hard": [2, 9], "data": [2, 4, 6, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 41, 43], "approach": [2, 8], "doe": [2, 8, 9, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35, 43, 44], "enforc": [2, 23, 27, 42], "string": [2, 9, 13, 16, 35, 38, 39, 40, 41, 42, 46, 48], "ensur": [2, 7, 9, 27, 43], "constant": [2, 16], "hardware_interfac": [2, 3, 4, 5, 11, 13, 14, 16, 21, 24, 25, 26, 27, 31, 33, 34, 35], "In": [2, 3, 4, 5, 6, 7, 8, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 34, 35, 41, 43, 48], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 14, 23, 35, 44], "regist": [2, 3, 5], "resourc": [2, 3, 5, 14, 23], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 14, 20, 23, 33, 35, 41, 43], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 37, 41, 42], "avail": [2, 4, 7, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41, 44], "enabl": [2, 4, 6, 7, 11, 14, 15, 16, 22, 31, 37, 48], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 12, 13, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 35, 38, 43, 44, 48, 49, 50, 54], "systeminterfac": [2, 3, 5, 13, 24, 27], "granular": 2, "sensorinterfac": [2, 21, 25], "actuatorinterfac": [2, 21, 26], "abov": [2, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 34, 43], "choos": [2, 16, 48], "suitabl": [2, 7], "strategi": [2, 16, 43], "decid": 2, "which": [2, 3, 4, 5, 6, 7, 9, 14, 15, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 33, 34, 35, 37, 40, 41, 42, 43, 44, 46, 48, 49], "case": [2, 3, 5, 6, 7, 8, 16, 20, 27, 35, 41, 43, 44, 54], "mayb": [2, 8], "sens": [2, 4, 34, 37], "multipl": [2, 4, 7, 8, 12, 14, 16, 41, 42], "constructor": [2, 14, 27, 35], "initi": [2, 14, 27, 35, 43], "variabl": [2, 14, 27, 35, 42], "need": [2, 3, 4, 5, 6, 7, 8, 12, 14, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 34, 35, 43], "commun": [2, 4, 6, 7, 14, 16, 18, 21, 22, 23, 24, 25, 27, 28, 53], "default": [2, 4, 8, 9, 13, 23, 30, 32, 38, 39, 40, 41, 42, 43, 44, 46, 48, 50], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41, 42, 43, 44, 48], "paramet": [2, 3, 5, 7, 14, 16, 18, 22, 27, 35, 44], "pars": [2, 3, 5, 9, 10, 12], "urdf": [2, 7, 9, 12, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "snippet": 2, "hardwareinfo": [2, 27], "here": [2, 10, 14, 27, 35, 36, 44, 45, 51], "cross": [2, 41], "valu": [2, 4, 6, 12, 13, 14, 16, 18, 19, 20, 22, 24, 25, 27, 29, 35, 40, 41, 42, 44, 46, 48], "export_": 2, "_interfac": [2, 14], "joint_a2": 2, "extract": [2, 33, 49], "sensibl": 2, "stop": [2, 7, 8, 9, 11, 15, 18, 22, 23, 27, 33, 42, 49], "usual": [2, 4, 9, 13, 14, 27, 35], "includ": [2, 3, 5, 6, 11, 14, 15, 27, 35, 44, 53], "command": [2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 38, 39, 42, 43, 45, 47, 50, 51, 54], "safe": [2, 27, 33, 35, 44, 49], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 20, 21, 22, 26, 34], "exchang": [2, 6, 18, 21, 22, 23, 24, 25, 26, 28, 54], "equival": [2, 27], "forget": [2, 4, 16, 44], "pluginlib_export_class": [2, 14, 16, 27, 35], "macro": [2, 4, 14, 16, 27, 35], "end": [2, 4, 11, 14, 27, 35, 42, 53], "cpp": [2, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "file": [2, 3, 4, 5, 6, 7, 9, 13, 14, 16, 31, 33, 35, 36, 44, 45, 51], "creat": [2, 3, 4, 5, 7, 9, 13, 14, 16, 27, 35], "xml": [2, 3, 5, 11, 14, 27, 35], "librari": [2, 4, 14, 15, 16, 30, 32, 34, 35, 48, 50], "pluginlib": [2, 3, 4, 5, 9, 14, 27, 35], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 13, 15, 22, 31, 36, 37, 41, 44, 45, 51, 54], "rrbotsystempositiononlyhardwar": [2, 4, 12, 15, 18, 20, 25], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 15, 18, 31, 44], "real": [2, 6, 7, 9, 13, 22, 35, 41, 42, 54], "critic": [2, 6], "mark": [2, 20], "controllerinterfac": [2, 4, 8, 15, 27, 35], "member": [2, 14, 27, 35, 43], "init": 2, "call": [2, 3, 4, 5, 8, 14, 22, 27, 35], "lifecycl": [2, 4, 7, 9, 11, 14, 27, 34], "declar": [2, 14, 27, 35], "state_interface_configur": [2, 27, 35], "command_interface_configur": [2, 27, 35], "design": [2, 4, 6, 7, 8, 27, 54], "updat": [2, 4, 8, 9, 16, 27, 34, 35, 44, 48], "manag": [2, 3, 5, 6, 7, 10, 11, 14, 15, 16, 27, 35, 44, 54], "option": [2, 3, 5, 9, 11, 13, 14, 15, 18, 23, 34, 35, 37, 41, 44, 48], "on_configur": [2, 14, 27, 35], "on_activ": [2, 11, 14, 27, 35], "on_deactiv": [2, 11, 14, 27, 35], "deactiv": [2, 4, 15, 18, 42], "final": [2, 7, 11, 27], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 13, 16, 20, 22, 27, 42, 43, 44, 54], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 16, 18, 29, 52], "classic": [3, 16, 29, 52], "provid": [3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 16, 18, 20, 23, 24, 25, 26, 27, 28, 29, 31, 35, 41, 42, 43, 44, 48, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 13, 16, 24, 27], "model": [3, 5, 18, 27], "cd": [3, 4, 5, 16, 27], "docker": [3, 5, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "gui": [3, 5, 16, 18, 20, 21, 23, 24, 25, 26, 28, 29, 47], "properli": [3, 5, 8, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "rm": [3, 4, 5, 16, 18, 29], "net": [3, 5, 7, 16, 18, 29], "host": [3, 5, 16, 18, 29, 53], "ros2": [3, 4, 5, 7, 9, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "launch": [3, 4, 5, 9, 13, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "cart_example_posit": [3, 5], "py": [3, 5, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "fals": [3, 5, 13, 16, 18, 29, 33, 39, 41, 42, 44, 48], "machin": [3, 4, 5, 6, 16, 29], "client": [3, 5, 29, 44], "gzclient": [3, 29], "rocker": [3, 5], "go": [3, 5, 7, 9, 14, 27, 35], "imag": [3, 5, 9, 29], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 16, 27, 43], "id": [3, 5, 15, 18, 21, 22, 23, 24, 25, 26, 28], "specif": [3, 5, 6, 8, 9, 11, 12, 27, 29, 38, 41, 43, 44], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "instruct": [3, 5, 22, 27, 29], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 39], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 18], "bash": [3, 4, 5, 14, 16, 18, 27, 35], "home": [3, 5], "ros2_w": [3, 4, 5, 16], "example_posit": [3, 5], "element": [3, 5, 27], "access": [3, 4, 5, 7, 9, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41], "interfac": [3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 18, 20, 21, 22, 24, 25, 26, 29, 30, 32, 34, 35, 37, 40, 42, 43, 46, 50, 52, 53, 54], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 13, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 33, 34, 35, 42, 49, 54], "slider_to_cart": [3, 5, 36, 45, 51], "command_interfac": [3, 4, 5, 12, 20, 27, 31, 42, 44], "param": [3, 4, 5, 9, 12, 13, 22, 27], "min": [3, 4, 5, 12, 27], "1000": [3, 5, 27], "max": [3, 4, 5, 12, 27, 39], "state_interfac": [3, 4, 5, 12, 27, 31, 42, 44], "initial_valu": [3, 5, 27], "mimick": [3, 5, 13], "manual": [3, 4, 5, 6, 9, 14, 16, 18, 23, 24, 25, 26, 28, 29, 35, 54], "multipli": [3, 5, 13], "definit": [3, 4, 5, 9, 14, 27, 31, 33, 34, 35, 37, 42], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 27, 30, 32, 33, 37, 50], "xyz": [3, 5, 27], "rpy": [3, 5, 27], "1415926535": [3, 5], "parent": [3, 5, 14, 27, 35], "base": [3, 4, 5, 7, 11, 14, 15, 16, 21, 22, 26, 27, 33, 35, 38, 48, 49, 52], "child": [3, 5, 12, 27], "finger_left": [3, 5], "lower": [3, 5, 27], "upper": [3, 5, 27], "actual": [3, 5, 8], "load": [3, 4, 5, 9, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35], "appropri": [3, 5, 6, 43], "By": [3, 5, 9, 27, 41, 43], "though": [3, 5, 20], "extens": [3, 5], "via": [3, 4, 5, 16, 18, 24, 25, 27, 29, 44], "between": [3, 4, 5, 6, 11, 12, 16, 27, 30, 32, 41, 42, 43, 44, 50], "filenam": [3, 5, 27], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 14, 27, 31, 35, 44], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 18, 27], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 41], "config": [3, 5, 16], "cartpole_control": [3, 5], "yaml": [3, 4, 5, 6, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 44], "locat": [3, 27, 31], "server": [3, 39, 44], "node": [3, 4, 5, 9, 11, 13, 15, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "attempt": [3, 5, 9, 44], "get": [3, 5, 7, 8, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 54], "most": [3, 5, 6, 14, 16, 27, 35], "least": [3, 5, 12, 14, 35, 44], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 44], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 18, 20, 28], "etc": [3, 5, 9, 23, 27, 54], "These": [3, 5, 16, 27], "inherit": [3, 5, 9, 27], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 20, 21, 26, 36, 43, 45, 51], "properti": [3, 5, 27], "sub": [3, 5], "class": [3, 4, 5, 7, 9, 11, 14, 15, 27, 35, 38, 43], "specifi": [3, 5, 9, 14, 16, 27, 34, 35, 42, 43, 44], "insid": [3, 5, 13, 16, 18], "publish": [3, 5, 6, 8, 12, 16, 19, 27, 31, 34, 37, 40, 41, 43, 46, 49, 54], "stateinterfac": [3, 5, 27], "topic": [3, 5, 6, 7, 8, 12, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 34, 44, 52], "sensor_msg": [3, 5, 40, 46], "msg": [3, 5, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 33, 36, 37, 38, 40, 43, 44, 45, 46, 48, 51], "jointstat": [3, 5], "joint_state_control": [3, 5, 15], "ros__paramet": [3, 5, 36, 44, 45, 51], "jointstatecontrol": [3, 5, 15], "action": [3, 5, 8, 42], "cart_pole_control": [3, 5], "follow_joint_trajectori": [3, 5, 44], "followjointtrajectori": [3, 5, 42, 44], "joint_trajectory_control": [3, 5, 6, 15, 18, 34, 47], "write_op_mod": [3, 5], "contain": [3, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 36, 42, 43, 45, 48, 51], "content": [3, 14, 27, 35], "There": [3, 4, 5, 9, 11, 14, 16, 21, 24, 25, 26, 35, 43, 44], "meter": [3, 5, 27], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 13, 27], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 12, 13], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 44], "example_gripp": [3, 5], "iron": [4, 16, 27], "want": [4, 8, 9, 16], "download": [4, 16], "mkdir": [4, 16], "p": [4, 9, 16, 42], "src": [4, 14, 16, 18, 27, 29, 31, 35], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 16, 27], "org": [4, 6, 30, 32, 50], "ros_control": [4, 6, 7, 54], "vc": [4, 16], "import": [4, 14, 16, 27, 35, 42], "rosdep": [4, 16], "rosdistro": [4, 16], "sudo": [4, 9, 16], "apt": [4, 16], "path": [4, 7, 16, 27, 44], "ignor": [4, 9, 16, 33, 42, 48, 49], "r": [4, 16, 28], "y": [4, 16, 22, 24, 25, 31, 37, 40], "everyth": [4, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35], "opt": [4, 16, 18], "setup": [4, 13, 14, 16, 18, 22, 27, 29, 35, 43], "sh": [4, 16, 18, 29], "colcon": [4, 14, 16, 27, 35], "symlink": [4, 16, 27], "folder": [4, 7, 14, 16, 18, 19, 22, 30, 31, 32, 35, 48, 50], "found": [4, 9, 10, 14, 18, 19, 22, 31, 33, 35, 38, 44, 54], "github": [4, 6, 10, 16, 27, 34, 52, 53, 54], "figur": [4, 43], "uml": 4, "diagram": [4, 15], "intern": [4, 6, 8, 12, 14, 18, 20, 21, 22, 23, 24, 25, 26, 28, 31, 43, 44], "cm": [4, 9], "abstract": [4, 7, 11, 27], "side": [4, 6, 7], "entri": [4, 35], "point": [4, 27, 35, 42, 43, 44, 54], "servic": [4, 6, 9, 11, 27, 34], "executor": [4, 9], "custom": [4, 12, 13, 16, 21, 22, 37, 41, 52], "howev": [4, 6, 8, 9, 16, 20, 27], "recommend": [4, 7, 14], "ros2_control_nod": [4, 23, 27], "controller_manag": [4, 5, 6, 9, 15, 23, 34, 35, 36, 44, 45, 51], "assum": [4, 8], "On": [4, 27], "hand": [4, 27, 53], "unload": [4, 9, 15], "match": [4, 16, 43], "report": [4, 6, 41, 54], "error": [4, 6, 9, 14, 20, 23, 27, 35, 41, 42, 44], "execut": [4, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 39, 42, 43, 44, 50], "loop": [4, 7, 9, 13, 18, 23, 24, 25, 26, 27, 28, 29, 35, 41, 42, 44, 48], "output": [4, 6, 7, 12, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 37], "driver": [4, 7, 16, 27, 53], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 53], "encod": [4, 27], "theori": [4, 54], "compar": [4, 6, 7], "refer": [4, 8, 20, 27, 53], "measur": [4, 13, 21, 31, 37, 41, 42, 53], "calcul": [4, 27, 31, 43, 48], "input": [4, 6, 7, 8, 12, 19, 20, 27, 31, 33, 36, 38, 42, 43, 45, 48, 49, 51], "object": [4, 27], "deriv": [4, 42, 43], "controller_interfac": [4, 15, 27, 31, 35, 37, 40, 46], "export": [4, 8, 9, 14, 16, 27, 31, 35], "plugin": [4, 9, 11, 12, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 35, 47], "forwardcommandcontrol": [4, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29], "lifecyclenod": 4, "document": [4, 6, 7, 12, 13, 14, 16, 22, 33, 34, 43, 44], "interact": [4, 7, 9, 15, 19, 27, 29], "srv": [4, 44], "controller_manager_msg": 4, "while": [4, 6, 7, 27, 43], "directli": [4, 18, 20, 29, 54], "line": [4, 10, 11, 14, 18, 27, 35, 41, 43], "friendli": 4, "cli": [4, 9, 10, 15, 18, 19, 22, 23, 24, 25, 26, 28, 29], "auto": [4, 9], "complet": [4, 11, 20, 27, 43], "rang": [4, 12, 34], "common": [4, 6, 16, 41, 54], "capabl": [4, 6], "realiz": [4, 7, 43, 44], "repres": [4, 11, 27, 33, 34, 43], "dynam": [4, 14, 27, 35], "dof": [4, 12, 16, 27, 39], "differ": [4, 6, 7, 12, 14, 16, 18, 19, 22, 23, 27, 36, 37, 41, 43, 45, 48, 51], "transmiss": [4, 16], "humanoid": 4, "logic": 4, "channel": [4, 53], "kuka": [4, 18, 23, 24, 25, 53], "rsi": [4, 18, 24, 25, 53], "relat": [4, 6, 7], "forc": [4, 7, 12, 15, 24, 25, 31, 34, 53], "torqu": [4, 12, 24, 25, 31, 34], "simpl": [4, 6, 7, 8, 14, 16, 18, 20, 22, 27, 28, 35, 39], "valv": [4, 12], "mandatori": [4, 9, 37, 42], "dc": 4, "arduino": [4, 21, 26], "board": 4, "modular": [4, 7, 16, 27], "independ": [4, 7, 25], "explan": [4, 9, 14], "given": [4, 9, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 36, 42, 43, 44, 45, 51], "through": [4, 6, 7, 8, 9, 14, 15, 16, 20, 27, 35, 44, 54], "tag": [4, 9, 12, 14, 16, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 35, 54], "chosen": [4, 12], "structur": [4, 6, 8, 9, 14, 27, 33, 35, 42, 43], "track": [4, 30, 50, 54], "togeth": [4, 8, 12, 22, 24, 48], "xacro": [4, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "hereund": 4, "rrbot": [4, 12, 15, 16, 19, 21, 23, 24, 25, 26, 28], "effector": [4, 53], "site": 4, "rrbotsystempositiononli": [4, 25], "ros2_control_demo_hardwar": [4, 12, 15], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 12], "joint1": [4, 12, 13, 15, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 44], "joint2": [4, 12, 15, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 44], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 12, 24, 25], "frame_id": [4, 12, 24, 25, 37, 40, 46, 48], "rrbot_tcp": 4, "min_forc": 4, "100": [4, 12, 36, 45, 51], "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 13, 22, 27, 29, 42], "pure": 4, "stack": [4, 7, 54], "could": [4, 7, 8, 16, 23, 35, 41, 44], "altern": [4, 18, 44], "script": [4, 6, 14, 35], "skeleton": 4, "sim": [5, 15, 52], "dockerfil": [5, 16], "Then": [5, 8, 16, 27, 29, 43], "ign": 5, "meet": [5, 54], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 13, 14, 23, 33, 40, 41, 44, 54], "gener": [6, 7, 12, 14, 15, 21, 22, 23, 24, 25, 26, 27, 34, 35, 44, 48, 54], "task": [6, 7, 33], "envis": 6, "simul": [6, 13, 15, 16, 18, 20, 22, 24, 25, 27], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 16, 54], "place": [6, 35], "draft": 6, "gpio": [6, 16, 27], "mode": [6, 8, 14, 20, 23, 31, 42, 43, 48], "switch": [6, 15, 16, 18, 23], "movement": 6, "safeti": [6, 27], "skill": 6, "prefer": 6, "c": [6, 9, 12, 14, 15, 18, 27], "familiar": [6, 54], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 46], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 11, 12, 44], "easi": 6, "therefor": [6, 8, 9, 16, 35, 41, 42, 44], "often": [6, 13, 22, 35, 41], "orchestr": 6, "purpos": [6, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29], "conductor": 6, "scenario": [6, 43], "moment": [6, 8, 44], "right": [6, 16], "replac": [6, 11, 34, 44], "high": [6, 9, 43], "moveit2": [6, 7, 34, 53], "simplecontrollermanag": 6, "goal": [6, 7, 12, 18, 23, 24, 25, 26, 28, 29, 39, 42, 44, 54], "form": [6, 16], "behavior": [6, 13, 27, 43], "benchmark": 6, "statu": [6, 8, 11, 15, 18, 42], "format": [6, 27, 31, 41, 44], "preset": 6, "modul": [6, 20], "reli": 6, "doubl": [6, 13, 18, 27, 30, 32, 39, 42, 46, 48, 50], "desir": [6, 42, 44], "both": [6, 7, 20, 27, 28, 41, 42, 43, 44], "improv": 6, "readabl": [6, 27], "earlier": 6, "concept": [6, 7, 8, 13, 16, 18], "introduc": [6, 7, 8, 18, 27], "essenti": [6, 18], "group": [6, 8, 9, 12, 44, 54], "instanc": [6, 9, 20, 41], "imu": [6, 12, 34], "typic": [6, 12, 22, 41, 42], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 20], "struct": 6, "low": [6, 7], "profil": 6, "relev": [6, 42, 48, 54], "addition": [6, 27, 30, 32, 50, 54], "few": [6, 7, 34], "175": 6, "rewrit": [6, 54], "rich": 6, "wa": [6, 14, 18, 22, 23, 27, 35, 43], "motiv": 6, "adopt": 6, "port": [6, 11, 12], "quit": 6, "miss": [6, 41, 43, 44], "diff_drive_control": [6, 8, 15, 22], "consist": [6, 44, 54], "onc": [6, 7, 18, 22, 23, 24, 25, 27, 28, 34], "identifi": [6, 27], "much": [6, 8, 18, 21, 22, 23, 24, 25, 26, 28, 35, 44], "303": 6, "304": 6, "stretch": 6, "81": 6, "302": 6, "unit": 6, "gmock": 6, "cc": [7, 43, 44], "BY": [7, 43, 44], "licens": [7, 43, 44], "author": [7, 8], "either": [7, 18, 23, 24, 25, 26, 28, 29, 43], "down": [7, 27], "below": [7, 9, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 42, 43, 44], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 34, 49], "control": [7, 10, 11, 12, 13, 14, 15, 16, 30, 32, 37, 40, 41, 42, 43, 46, 49, 50, 53, 54], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 27], "share": [7, 14, 27, 29, 35, 48], "well": [7, 9, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 44], "perform": [7, 9, 27], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 14, 35], "top": 7, "virtual": [7, 8, 32], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 18, 27], "explicit": [7, 9, 27, 42], "chain": [7, 10, 15, 16, 27, 31, 42, 48], "emerg": 7, "handler": 7, "mock": [7, 10, 14], "usag": [7, 8, 9, 12, 15, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 35], "focu": [7, 8], "becom": [7, 20], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 34], "practic": 7, "tip": [7, 27], "hot": 7, "shown": [7, 27, 43], "furthermor": [7, 22], "offer": [7, 9, 14, 27], "expos": [7, 16, 20], "problem": [7, 54], "manipul": [7, 16, 18, 20, 27, 28, 42], "plan": [7, 54], "autonom": 7, "navig": 7, "ideal": [7, 13], "made": [7, 11], "mobil": [7, 16, 22, 33, 48, 49], "arm": [7, 18, 20, 28], "extra": [7, 27, 41], "readi": [7, 14, 16, 20, 34, 35], "studi": 7, "ur": 7, "With": [7, 27, 29, 44], "moveit": [7, 13], "ingredi": 7, "run": [7, 8, 9, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 43, 48], "scale": [7, 42], "factor": 7, "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 14, 35], "trajectori": [7, 18, 27, 34, 42, 54], "admitt": [7, 34], "One": [7, 8], "reason": [7, 8, 9, 27], "upgrad": 7, "ros1": [7, 16], "better": 7, "realtim": [7, 9, 27, 33, 44, 49, 54], "contact": 7, "insert": 7, "singl": [7, 24, 39], "waypoint": [7, 43, 44], "mani": [7, 27, 34, 35], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 16, 22, 27, 30, 31, 32, 48, 50], "acceler": [7, 16, 23, 27, 31, 33, 40, 42, 43, 44, 49], "jerk": [7, 33, 49], "obei": [7, 27], "demo": [7, 12], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 27], "cycl": [7, 27, 34], "_control": [7, 16], "wild": 7, "materi": 7, "quick": [7, 11], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 13, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 34, 42, 44, 54], "done": [7, 8, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 34, 35], "look": [7, 22], "modifi": 7, "simpli": [7, 9, 18, 43, 44], "edit": 7, "collect": [7, 36, 45, 51], "semant": [7, 12, 31, 37, 40, 46], "monolit": 7, "controlko": 7, "propos": [8, 54], "minim": [8, 54], "viabl": [8, 27], "serial": [8, 27], "tri": [8, 42], "clariti": 8, "arbitrari": [8, 27, 44], "order": [8, 27], "nevertheless": 8, "convinc": 8, "would": [8, 41], "unnecessari": 8, "long": 8, "term": [8, 54], "clearer": 8, "let": [8, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28], "yet": [8, 9, 16, 20, 33, 43, 44], "controllers_chain": 8, "doc": [8, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 54], "position_track": 8, "pid": [8, 42, 43, 44, 54], "now": [8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 43], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 14, 16, 35, 43, 54], "At": [8, 14, 20, 35], "attach": 8, "disabl": [8, 13, 48], "subscrib": [8, 19, 20, 27], "differenti": [8, 16, 22, 32, 33, 34, 54], "interfaceconfigur": [8, 27], "input_interface_configur": 8, "const": [8, 11, 27], "anoth": [8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 44], "simplic": [8, 27], "try": [8, 27], "exclus": [8, 27], "rather": [8, 16, 43], "void": 8, "set_chained_mod": 8, "bool": [8, 39, 42, 48], "flag": [8, 14, 35, 42], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 15, 31, 35, 44, 48], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 33], "cmd_vel_unstamp": [8, 22, 33], "Its": [8, 54], "continu": [8, 42, 43, 44], "chainabl": [8, 16, 20, 33, 44], "ownership": 8, "process": [8, 14, 27, 35, 43], "claim": [8, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "vector": [8, 20, 27, 35], "invers": [8, 27], "rule": [8, 9, 14, 35], "think": [8, 16], "break": [8, 13], "middl": [8, 32], "unavail": [8, 20], "anyth": 8, "confus": 8, "irelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 27, 42], "linux": 9, "comput": [9, 16, 33, 48, 49], "throughput": 9, "suit": 9, "easiest": [9, 14, 35], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 27], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 27], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 15, 27, 33, 44], "log": 9, "again": [9, 11, 18, 22, 27], "hardware_components_initial_st": 9, "map": [9, 13, 41, 44], "attribut": [9, 27], "full": [9, 14, 16, 35], "unconfigur": [9, 11, 18, 27], "arm1": 9, "arm2": 9, "inact": [9, 15, 18, 23, 27, 34], "base3": 9, "empti": [9, 35, 40, 44, 48], "update_r": [9, 34, 36, 45, 51], "integ": [9, 34], "frequenc": [9, 34], "startup": 9, "h": [9, 14, 15, 35], "param_fil": 9, "n": 9, "namespac": [9, 14, 27, 34, 35, 41], "controller_typ": 9, "timeout": [9, 15, 39, 42, 48, 49], "controller_manager_timeout": 9, "argument": [9, 14, 15, 18, 21, 22, 23, 24, 25, 26, 28], "exit": [9, 15], "leav": 9, "kill": [9, 15, 27], "wait": [9, 15, 26, 42], "until": [9, 27, 42, 43], "mai": [9, 11, 24, 34, 36, 45, 51], "taken": [9, 48], "becaus": [9, 12, 18, 20, 21, 22, 23, 24, 25, 26, 28, 43], "rclcpp": [9, 14, 27, 35], "than": [9, 39, 42, 44, 48], "global": 9, "remap": 9, "forcibli": 9, "lead": [9, 44], "duplic": [9, 48], "occur": [9, 27], "whether": 9, "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28], "caus": [9, 43, 44, 48], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "std": [9, 27, 42], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 18], "broadcast": [9, 12, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 41], "achiev": [9, 27, 36, 45, 51], "return": [9, 11, 14, 18, 27, 35, 39, 41, 43], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 42], "doxygen": [10, 14], "cascad": 10, "return_typ": [11, 27, 35], "on_error": [11, 14, 27], "previous_st": [11, 27], "success": [11, 14, 27, 35, 39], "callbackreturn": [11, 14, 27], "failur": 11, "recov": 11, "reload": [11, 15], "substanti": 11, "renam": 11, "on_init": [11, 14, 27, 35], "baseinterfac": 11, "remov": 11, "base_interfac": 11, "hpp": [11, 14, 16, 27, 31, 35], "hardware_interface_status_valu": 11, "rclcpp_lifecycl": [11, 14, 27, 35], "strictli": [11, 12], "status_": 11, "in_deactiv": 11, "undefin": 11, "refern": 11, "symbol": 11, "node_interfac": [11, 27], "lifecyclenodeinterfac": [11, 14, 27], "rclcpp_lifecyl": 11, "cmakelist": [11, 14, 27, 35], "txt": [11, 14, 27, 35], "devic": [12, 53], "associ": 12, "joint_state_broadcast": [12, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "coupl": 12, "ship": 12, "cannot": [12, 20, 27, 44], "keyword": 12, "digit": 12, "signal": 12, "electr": 12, "analog": 12, "within": [12, 18], "vacuum": [12, 19], "flang": 12, "off": 12, "rrbotsystemmutiplegpio": 12, "example_param_hw_start_duration_sec": 12, "example_param_hw_stop_duration_sec": 12, "example_param_hw_slowdown": 12, "flange_digital_io": 12, "digital_output1": 12, "know": 12, "digital_output2": 12, "digital_input1": 12, "digital_input2": 12, "flange_analog_io": [12, 19], "analog_output1": [12, 19], "analog_input1": [12, 19], "analog_input2": [12, 19], "flange_vacuum": [12, 19], "suction": 12, "grasp": 12, "multimod": 12, "multimodalgripp": 12, "parallel_fing": 12, "temperatur": [12, 16], "feedback": [12, 13, 21, 41, 42, 44, 48, 49], "adjust": [12, 15, 18, 27], "calibr": 12, "2d": [12, 24, 25], "ft": [12, 24, 25, 37], "choic": [12, 48], "matric": 12, "rrbotforcetorquesensor2d": 12, "forcetorquesensor2dhardwar": 12, "fx": 12, "tz": 12, "kuka_tcp": 12, "fx_rang": 12, "tz_rang": 12, "temp_feedback": 12, "calibration_matrix_nr": 12, "mirror": 13, "correspond": [13, 14, 27, 35, 48, 54], "offlin": 13, "advantag": 13, "pipe": 13, "even": [13, 20, 44], "debug": 13, "boost": 13, "mimic": 13, "offset": [13, 41, 42], "fake": 13, "disable_command": 13, "boolean": [13, 34, 41, 42], "erron": [13, 27], "noth": 13, "suddenli": 13, "Or": [13, 18, 23, 24, 25, 26, 28, 29], "mock_sensor_command": 13, "position_state_following_offset": 13, "custom_interface_with_following_offset": 13, "compil": [14, 27, 29, 35], "prepar": [14, 23, 35], "ament_cmak": [14, 35], "search": [14, 35], "recent": [14, 35], "pkg": [14, 35], "package_nam": [14, 35], "alreadi": [14, 15, 16, 18, 20, 27, 29, 34, 35, 44], "robot_hardware_interface_nam": 14, "visibility_control": [14, 35], "window": [14, 35], "copi": [14, 35], "prefix": [14, 31, 35, 37, 40, 46], "guard": [14, 35], "ifndef": [14, 35], "preprocessor": [14, 35], "engin": [14, 35], "friend": [14, 35], "interface_typ": [14, 35], "uniqu": [14, 27, 35], "written": [14, 21, 26, 27, 35], "snake_cas": [14, 35], "interfacetyp": 14, "hardwareinterfacenam": 14, "public": [14, 27, 35], "on_cleanup": [14, 27], "on_shutdown": [14, 27], "overrid": [14, 27, 35, 36, 44, 45, 51], "export_state_interfac": [14, 27], "export_command_interfac": [14, 27], "prepare_command_mode_switch": 14, "perform_command_mode_switch": 14, "further": [14, 35], "exact": [14, 35], "simplifi": [14, 27, 35, 54], "valid": [14, 16, 46], "fine": [14, 22, 35], "otherwis": [14, 16, 35, 41, 42], "opposit": [14, 35], "remind": 14, "joint_nam": [14, 31, 35, 42], "shutdown": [14, 27], "gracefulli": 14, "store": [14, 35], "close": [14, 35], "class_list_macro": [14, 27, 35], "my_hardware_interface_packag": 14, "robothardwareinterfacenam": 14, "second": [14, 15, 18, 20, 23, 24, 25, 26, 27, 28, 29, 35, 43, 54], "visibl": [14, 35], "mock_compon": [14, 22], "bottom": [14, 27, 35], "test_load_": [14, 35], "load_generic_system_2dof": 14, "test_generic_system": 14, "find_packag": [14, 35], "directori": [14, 35], "ament": [14, 35], "cmake": 14, "pluginlib_export_plugin_description_fil": [14, 27, 35], "ament_cmake_gmock": [14, 35], "ament_add_gmock": [14, 35], "ament_export_librari": [14, 35], "ament_packag": [14, 35], "test_depend": [14, 35], "rememb": [14, 35], "root": [14, 35], "workspac": [14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "enjoi": [14, 35], "great": [14, 35], "templat": [14, 16, 27, 35], "shell": [14, 35], "onward": 14, "spin": 15, "spin_tim": 15, "hidden": 15, "discoveri": 15, "daemon": 15, "test_controller_nam": 15, "test_control": 15, "diffdrivecontrol": [15, 22], "verbos": 15, "label": [15, 21, 22, 24, 25, 26, 43], "unclaim": [15, 20, 23], "ctrl1": 15, "ctrl2": 15, "strict": 15, "asap": 15, "switch_timeout": 15, "tmp": 15, "controller_diagram": 15, "gv": 15, "pdf": [15, 27], "demonstr": [16, 18, 20, 22, 23, 28, 29], "prove": 16, "checkout": 16, "roscon2022_workshop": 16, "hardwareinterfac": [16, 27], "diffbot": 16, "degre": [16, 27, 44, 48], "freedom": [16, 27, 48], "components_architecture_and_urdf_exampl": 16, "revolut": [16, 18, 20, 27, 28], "drive": [16, 22, 30, 32, 33, 34, 48, 49, 50, 54], "accord": [16, 22, 27], "intermedi": 16, "car": 16, "steer": [16, 30, 32, 34, 48, 49, 50], "tba": 16, "tabl": 16, "offici": [16, 53], "easili": 16, "aptitud": 16, "might": [16, 43], "own": [16, 18, 27], "git": [16, 27], "clone": [16, 27], "b": [16, 27], "merg": 16, "f": 16, "procedur": 16, "rviz2": [16, 18, 29], "visual": [16, 18, 25, 27, 41], "joint_state_publisher_gui": [16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "bring": 16, "ros2_control_demo_example_1": [16, 18], "view_robot": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "omit": 16, "termin": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "example_1": [16, 18, 19, 20, 29], "rviz": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41], "slider": 16, "around": [16, 37, 40, 42, 46], "ros2_control_demo_example_2": [16, 22], "come": [16, 44], "categori": 16, "individu": [16, 35, 46], "position_in_degre": 16, "hardware_interface_type_valu": [16, 31], "6dof": 16, "variou": [18, 28], "invert": 18, "pendulum": 18, "fun": 18, "proprietari": [18, 21, 22, 23, 24, 25, 26, 28], "view": [18, 27], "recreat": 18, "robotmodel": 18, "displai": [18, 20, 21, 23, 24, 25, 26, 28, 29], "ros2_control_demo_descript": 18, "ok": [18, 21, 22, 23, 24, 25, 26, 27, 28, 35], "warn": [18, 21, 22, 23, 24, 25, 26, 28, 41], "invalid": [18, 21, 22, 23, 24, 25, 26, 28], "frame": [18, 21, 22, 23, 24, 25, 26, 27, 28, 37], "odom": [18, 21, 22, 23, 24, 25, 26, 28, 33, 48], "cantransform": [18, 21, 22, 23, 24, 25, 26, 28], "target_fram": [18, 21, 22, 23, 24, 25, 26, 28], "happen": [18, 21, 22, 23, 24, 25, 26, 27, 28], "ctrl": 18, "lot": [18, 20, 21, 22, 23, 24, 25, 26, 28], "exemplari": [18, 21, 23, 24, 25, 26, 28, 30, 32, 48, 50], "orang": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "yellow": [18, 20, 21, 23, 24, 25, 26, 28, 29], "rectangl": [18, 20, 21, 23, 24, 25, 26, 28], "introspect": [18, 20, 21, 22, 23, 24, 25, 26, 28], "list_hardware_interfac": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "entrypoint": 18, "nomin": 18, "marker": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "list_control": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "jointstatebroadcast": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "forward_position_control": [18, 19, 20, 23, 24, 25, 26, 28, 29], "forward_command_control": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 45, 51], "pub": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "std_msg": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 38, 45, 51], "float64multiarrai": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 38, 45, 51], "everi": [18, 23, 24, 25, 26, 27, 28, 29, 34, 38, 42, 54], "test_forward_position_control": [18, 23, 24, 25, 26, 28, 29], "block": [18, 20, 21, 23, 24, 25, 26, 27, 28], "got": [18, 19, 20, 21, 22, 23, 24, 25, 26], "50000": [18, 20, 24, 25, 26], "echo": [18, 19, 20, 22, 24, 25, 29], "joint_stat": [18, 20, 22, 29, 41], "dynamic_joint_st": [18, 20, 29, 41], "load_control": 18, "joint_trajectory_position_control": 18, "successfulli": [18, 21, 26], "set_controller_st": 18, "rrbot_control": [18, 19, 20, 28, 29], "four": [18, 21, 30], "test_joint_trajectory_control": 18, "rrbot_joint_trajectory_publish": 18, "rrbot_descript": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29], "rrbot_forward_position_publish": [18, 29], "ros2_control_demo_example_10": 19, "contrast": 19, "gpio_control": 19, "gpiocontrol": 19, "interface_nam": [19, 37, 38], "1199574016": 19, "1676318848": 19, "rrbotsystemwithgpiohardwar": 19, "gp": 19, "example_12": 20, "been": 20, "known": 20, "passthrough_control": 20, "ros2_control_demo_example_12": 20, "ident": [20, 22, 27, 29, 43], "joint2_position_control": 20, "passthroughcontrol": 20, "joint1_position_control": 20, "someth": 20, "automat": [20, 27, 29, 33, 49], "appear": 20, "whose": [20, 43], "henc": [20, 27], "launch_chained_control": 20, "position_control": [20, 34, 38], "streamlin": 20, "clearli": 20, "sent": [20, 42], "reflect": 20, "canopen_402": [21, 26], "modbu": [21, 26], "rs232": [21, 26], "rs485": [21, 26], "ros2_control_demo_example_14": 21, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 21, "list_hardware_compon": [21, 22, 24, 25, 26], "rrbotmodularjoint2": [21, 26], "rrbotactuatorwithoutfeedback": 21, "rrbotmodularjoint1": [21, 26], "rrbotmodularpositionsensorjoint2": 21, "rrbotsensorpositionfeedback": 21, "rrbotmodularpositionsensorjoint1": 21, "forward_velocity_control": [21, 23], "000000": 21, "00000": [21, 22, 23], "25300": 21, "rrbot_actuator_without_feedback": 21, "rrbot_sensor_for_position_feedback": 21, "example_2": 22, "excess": 22, "print": [22, 41], "left_wheel_joint": 22, "right_wheel_joint": 22, "diffbot_base_control": 22, "diff": 22, "geometry_msg": [22, 24, 25, 33, 37, 48], "twist": [22, 33, 48, 49], "linear": [22, 27, 33, 40, 43, 48, 49], "angular": [22, 33, 40, 48, 49], "circl": 22, "diffbotsystemhardwar": 22, "33333": 22, "faster": 22, "genericsystem": 22, "use_mock_hardwar": 22, "true": [22, 29, 33, 42, 43, 44, 48], "calculate_dynam": 22, "diffbot_control": 22, "diffbot_descript": 22, "diffbot_system": 22, "example_3": 23, "fri": [23, 53], "abb": [23, 53], "yumi": 23, "schunk": [23, 53], "lwa4p": 23, "illeg": 23, "declin": 23, "faulti": 23, "ros2_control_demo_example_3": 23, "rrbot_system_multi_interfac": 23, "robot_control": [23, 27], "spawn": 23, "forward_acceleration_control": 23, "velocity_control": [23, 34, 38], "jointgroupvelocitycontrol": 23, "rrbotsystemmultiinterfacehardwar": 23, "po": [23, 43], "78500": 23, "vel": [23, 48], "acc": 23, "control_lvl": 23, "forward_illegal1_control": 23, "forward_illegal2_control": 23, "1676209982": 23, "531163501": 23, "resource_manag": 23, "rrbotsystemmultiinterfac": 23, "did": 23, "531223835": 23, "sinc": [23, 27, 32], "reject": [23, 42, 43], "spawner": 23, "531717376": 23, "spawner_forward_illegal1_control": 23, "indic": [23, 27], "rrbot_multi_interface_forward_control": 23, "krc": 24, "prototyp": 24, "odri": [24, 53], "ros2_control_demo_example_4": 24, "rrbot_system_with_sensor": 24, "rrbotsystemwithsensor": 24, "rrbotsystemwithsensorhardwar": 24, "fts_broadcast": [24, 25], "force_torque_sensor_broadcast": [24, 25], "forcetorquesensorbroadcast": [24, 25], "wrench": [24, 25, 31], "republish": [24, 25], "wrenchstamp": [24, 25, 37], "stamp": [24, 25, 48], "sec": [24, 25], "1676444704": [24, 25], "nanosec": [24, 25], "332221422": [24, 25], "tool_link": [24, 25], "946532964706421": 24, "nan": [24, 42], "0540995597839355": 24, "rrbot_with_sensor_control": 24, "pc": 25, "3d": [25, 27], "ros2_control_demo_example_5": 25, "rrbot_system_with_external_sensor": 25, "externalrrbotftsensor": 25, "externalrrbotforcetorquesensorhardwar": 25, "2126582860946655": 25, "3202226161956787": 25, "4302282333374023": 25, "540233612060547": 25, "647800624370575": 25, "7602499723434448": 25, "rrbot_with_external_sensor_control": 25, "rrbot_system_position_onli": 25, "external_rrbot_force_torque_sensor": 25, "mara": 26, "ros2_control_demo_example_6": 26, "rrbot_modular_actu": 26, "rrbotmodularjoint": 26, "rrbot_actu": 26, "queri": [27, 44], "enhanc": 27, "deploi": 27, "oper": [27, 54], "pattern": 27, "vendor": 27, "runtim": 27, "program": 27, "conform": 27, "newest": 27, "characterist": 27, "tree": [27, 33], "primari": [27, 44], "commerci": 27, "scratch": 27, "illustr": 27, "stl": 27, "dae": 27, "coars": 27, "mesh": 27, "fast": [27, 53], "collis": 27, "express": 27, "vertic": 27, "transform": 27, "rotat": [27, 33, 42], "translat": [27, 33, 49], "proxim": 27, "face": 27, "co": 27, "planer": 27, "xy": 27, "plane": 27, "align": 27, "blender": 27, "begin": 27, "neg": [27, 42], "roll": 27, "pitch": 27, "yaw": 27, "repeat": 27, "robot_6_dof": 27, "base_link": [27, 48, 49], "link_0": 27, "inerti": 27, "mass": 27, "inertia": 27, "ixx": 27, "ixi": 27, "ixz": 27, "iyi": 27, "iyz": 27, "izz": 27, "tool0": 27, "base_joint": 27, "joint_1": 27, "link_1": 27, "061584": 27, "141592653589793": 27, "name_spac": 27, "class_nam": 27, "pi": [27, 42], "enclos": 27, "previous": 27, "left": 27, "zero": [27, 31, 42, 43], "rel": [27, 43], "center": 27, "uniform": 27, "consecut": 27, "motion": [27, 42], "subsequ": 27, "join": [27, 54], "speci": 27, "verifi": 27, "urdf_to_graphviz": 27, "r6bot": 27, "explain": 27, "robotsystem": 27, "ur5": 27, "five": 27, "hardware_interface_return_valu": 27, "hardware_interface_publ": 27, "commandinterfac": 27, "durat": 27, "period": [27, 42], "privat": 27, "memori": [27, 35], "alloc": 27, "establish": 27, "angl": [27, 32, 48], "notabl": 27, "vari": 27, "fill": 27, "field": [27, 41, 43], "suppos": [27, 43], "tcp_force_torque_sensor": 27, "Their": 27, "pointer": 27, "info_": 27, "state_interfaces_": 27, "nearli": 27, "previou": [27, 43, 54], "command_interfaces_": 27, "constraint": [27, 35, 39, 40, 42, 44, 48], "respons": 27, "turn": 27, "oppos": [27, 44], "tcp": [27, 31], "packet": 27, "robot_6_dof_hardwar": 27, "discov": 27, "library_nam": 27, "base_class_typ": 27, "human": 27, "notic": [27, 43], "just": 27, "add_librari": 27, "robot_hardwar": 27, "unlik": 27, "finit": 27, "certain": [27, 36, 45, 51], "transit": [27, 34, 43], "robotcontrol": 27, "nine": 27, "six": [27, 37], "callback": 27, "lifetim": 27, "restart": 27, "reconfigur": 27, "buffer": [27, 54], "reset": [27, 48], "transfer": 27, "eventu": 27, "mutex": 27, "guarante": [27, 43], "never": 27, "release_interfac": 27, "shut": 27, "free": [27, 33], "cleanup": 27, "r6bot_control": 27, "view_r6bot": 27, "ros2_control_demo_example_7": 27, "send_trajectori": 27, "circular": 27, "ros2_control_demo_example_8": 28, "rrbot_transmissions_system_position_onli": 28, "rrbottransmissionssystempositiononlyhardwar": 28, "transmission1": 28, "actuator1": 28, "transmission2": 28, "actuator2": 28, "383253": 28, "766505": 28, "53301": 28, "example_9": 29, "later": [29, 43], "ros2_control_demo_example_9": 29, "rrbot_gazebo_class": 29, "usr": 29, "ax": [30, 32, 37, 40, 50], "wheel": [30, 32, 33, 48, 50], "traction": [30, 32, 48, 49, 50], "steerabl": [30, 32, 50], "generate_parameter_librari": [30, 31, 32, 38, 39, 40, 48, 50], "parameter": [30, 32, 48, 50], "front_wheel_track": 30, "front": [30, 31, 32, 48, 50], "length": [30, 40, 48, 50], "en": [30, 32, 50], "wikipedia": [30, 32, 48, 50, 54], "wiki": [30, 32, 43, 44, 50], "wheelbas": [30, 32, 50], "rear_wheel_track": 30, "rear": [30, 32, 48, 50], "distanc": [30, 32, 44, 46, 50], "front_wheels_radiu": [30, 50], "radiu": [30, 32, 50], "rear_wheels_radiu": [30, 50], "chainedcontrollerinterfac": 31, "joint_refer": 31, "trajectory_msg": [31, 43, 44], "jointtrajectorypoint": [31, 43], "admittancecontrollerst": 31, "ft_sensor": 31, "sensor_nam": [31, 37, 40, 46], "ackermann": [32, 34, 48], "vehicl": 32, "probabl": 32, "front_wheel_radiu": 32, "rear_wheel_radiu": 32, "bodi": 33, "odometri": [33, 48, 49], "space": [33, 44], "hw_if_posit": [33, 34, 48], "hw_if_veloc": [33, 34, 48], "position_feedback": [33, 48], "twiststamp": [33, 48], "use_stamped_vel": [33, 48], "nav_msg": [33, 48], "estim": 33, "tf": [33, 48], "tf2_msg": [33, 48], "tfmessag": [33, 48], "enable_odom_tf": [33, 48], "cmd_vel_out": 33, "publish_limited_veloc": 33, "jointlimit": 33, "joint_limit": 33, "commonli": 34, "bicycl": [34, 48], "effort_control": [34, 38], "hw_if_acceler": 34, "hw_if_effort": 34, "represent": [34, 44], "rqt_joint_trajectory_control": [34, 44], "onconfigur": 34, "configure_control": 34, "unsign": 34, "unspecifi": 34, "is_async": 34, "asynchron": 34, "controllernam": 35, "protect": 35, "reserv": 35, "importantli": 35, "ask": [35, 41], "sort": 35, "controller_name_namespac": 35, "controller_name_packag": 35, "ros2_control_test_asset": 35, "special": [36, 43, 45, 51], "hz": [36, 39, 45, 51], "wrapper": [37, 40, 46], "forcetorquesensor": 37, "6d": 37, "per": 37, "less": [37, 48], "example_nam": 37, "example_interfac": 37, "feedforward": 38, "multi_interface_forward_command_control": 38, "string_arrai": [38, 48], "action_monitor_r": [39, 42, 44], "greater": [39, 42], "equal": [39, 40], "goal_toler": 39, "max_effort": 39, "allow_stal": 39, "stall": 39, "stall_velocity_threshold": 39, "threshold": 39, "001": 39, "stall_timeout": 39, "imusensor": 40, "orient": 40, "angular_veloc": 40, "linear_acceler": 40, "static_covariance_orient": 40, "double_arrai": [40, 48], "static": 40, "covari": [40, 48], "row": 40, "static_covariance_angular_veloc": 40, "static_covariance_linear_acceler": 40, "unless": 41, "latter": 41, "matrix": [41, 48], "product": 41, "use_local_top": 41, "my_state_broadcast": 41, "arrai": 41, "extra_joint": 41, "map_interface_to_joint_st": 41, "usecas": 41, "hydraul": [41, 42], "relianc": 41, "techniqu": 41, "slightli": 41, "custom_interfac": 41, "kf_estimated_posit": 41, "derived_veloc": 41, "derived_effort": 41, "torque_sensor": 41, "current_sensor": 41, "command_joint": 42, "jtc": 42, "monitor": [42, 44], "allow_partial_joints_go": [42, 44], "allow_integration_in_goal_trajectori": [42, 43], "interpolation_method": 42, "interpol": [42, 44], "spline": 42, "open_loop_control": [42, 44], "gain": 42, "numer": 42, "numeric_limit": 42, "quiet_nan": 42, "start_with_hold": 42, "hold": [42, 43], "allow_nonzero_velocity_at_trajectory_end": 42, "cmd_timeout": 42, "stale": 42, "count": 42, "goal_tim": [42, 44], "toler": [42, 44], "jointtrajectori": [42, 43, 44], "stopped_velocity_toler": [42, 44], "deviat": 42, "maxim": 42, "reach": [42, 43, 44], "predefin": 42, "infinit": 42, "amount": 42, "law": [42, 44], "k_": 42, "ff": 42, "v_d": 42, "k_p": 42, "k_i": 42, "sum": 42, "dt": 42, "k_d": 42, "angle_wraparound": 42, "i_clamp": 42, "clamp": 42, "symmetr": 42, "ff_velocity_scal": 42, "feed": 42, "wrap": [42, 44], "ie": [42, 43], "shortest": 42, "s_d": 42, "saniti": 43, "sampl": [43, 48], "segment": [43, 44], "fault": 43, "datapoint": 43, "deduc": 43, "nor": 43, "discourag": 43, "yield": 43, "discontinu": [43, 44], "cubic": 43, "quintic": 43, "heun": 43, "grid": 43, "10m": 43, "deduct": 43, "nonzero": 43, "inconsist": 43, "overshoot": 43, "timestamp": 43, "arriv": 43, "necessarili": 43, "discard": 43, "substitut": 43, "smarter": 43, "preserv": 43, "flat": 43, "grei": 43, "red": 43, "traj": 43, "time_from_start": 43, "splice": 43, "append": 43, "held": [43, 44], "smooth": [43, 54], "longer": 43, "slower": 43, "effect": 43, "Of": 43, "interest": 43, "adolfo": [43, 44], "rodriguez": [43, 44], "instant": 44, "citat": 44, "adapt": 44, "restrict": 44, "present": 44, "robust": 44, "clock": 44, "queu": 44, "joint3": 44, "joint4": 44, "joint5": 44, "joint6": 44, "preempt": 44, "cancel": 44, "notifi": 44, "abort": 44, "legal": 44, "subset": 44, "favor": 44, "violat": 44, "joint_trajectori": 44, "fire": 44, "sender": 44, "query_st": 44, "cumbersom": 44, "controller_st": [44, 48], "jointtrajectorycontrollerst": 44, "querytrajectoryst": 44, "footnot": 44, "rangesensor": 46, "radiation_typ": 46, "int": [46, 48], "radiat": 46, "ultrason": 46, "infrar": 46, "field_of_view": 46, "arc": 46, "rad": [46, 48], "min_rang": 46, "minimum": 46, "m": [46, 48], "max_rang": 46, "maximum": 46, "varianc": 46, "rqt": 47, "nomenclatur": 48, "unstamp": 48, "concret": 48, "tricylc": 48, "seer": 48, "front_steer": 48, "front_wheels_nam": 48, "rear_wheels_nam": 48, "traction_feedback_typ": 48, "in_chained_mod": 48, "reference_unstamp": 48, "tf_odometri": 48, "steeringcontrollerstatu": 48, "reference_timeout": 48, "unwant": 48, "danger": 48, "behaviour": 48, "rear_wheels_state_nam": 48, "front_wheels_state_nam": 48, "open_loop": 48, "velocity_rolling_window_s": 48, "number": 48, "averag": 48, "base_frame_id": 48, "odom_frame_id": 48, "twist_covariance_diagon": 48, "diagon": 48, "pose_covariance_diagon": 48, "pose": 48, "wheel_track": 50, "page": [52, 53], "isaac": 52, "webot": 52, "manufactur": 53, "franka": 53, "emika": 53, "xarm": 53, "flexiv": 53, "rizon": 53, "igu": 53, "commonplac": 53, "husarion": 53, "rosbot": 53, "xl": 53, "2r": 53, "pro": 53, "openmanipul": 53, "clearpath": 53, "jackal": 53, "j100": 53, "huski": 53, "a200": 53, "unoffici": 53, "iiwa": 53, "lbr": 53, "iiqka": 53, "eci": 53, "sunris": 53, "kss": 53, "egm": 53, "mitsubishi": 53, "rv1a": 53, "protocol": 53, "ethercat": 53, "canopen": 53, "svh": 53, "finger": 53, "dimens": 53, "haptic": 53, "odriv": 53, "ndi": 53, "pca9685": 53, "bit": 53, "pwm": 53, "servo": 53, "hoverboard": 53, "overcom": 54, "idea": 54, "wide": 54, "toolkit": 54, "unreleas": 54, "question": 54, "wg": 54, "wednesdai": 54, "announc": 54, "discours": 54, "googl": 54, "bug": 54, "tracker": 54, "reproduc": 54, "regard": 54, "built": 54, "gmt": 54}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "review": 0, "stat": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 16, 54], "process": [1, 9], "merg": 1, "write": [1, 11, 14, 27, 35], "document": [1, 8, 10, 54], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": 2, "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 14, 27, 38, 41, 44], "class": [2, 8], "interfac": [2, 4, 12, 15, 19, 23, 27, 28, 31, 33, 36, 38, 41, 44, 45, 48, 51], "control": [2, 3, 4, 5, 6, 8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 35, 36, 38, 39, 44, 45, 48, 51, 52], "": [2, 33, 44, 48], "access": 2, "migrat": [2, 11], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 12, 16, 27, 31, 34, 54], "robothardwar": 2, "compon": [2, 4, 6, 11, 13, 14], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 16], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 16], "run": [3, 4, 5, 16], "demo": [3, 5, 6, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 27], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35, 44], "mimic": [3, 5], "joint": [3, 5, 12, 13, 44], "simul": [3, 5, 29, 52], "plugin": [3, 5, 27], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 16], "binari": 4, "packag": [4, 16], "from": [4, 6, 11, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 48], "sourc": [4, 16], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 27, 33, 44, 48], "framework": 4, "robot": [4, 7, 16, 19, 21, 23, 24, 25, 26, 27, 28, 34, 53], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "mission": 6, "support": [6, 53], "semant": 6, "featur": [6, 10, 33, 44, 49], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 31, 33, 36, 38, 45, 51, 52], "meetup": 7, "munich": 7, "5": [7, 25], "2022": 7, "12": [7, 20], "industri": [7, 19, 24, 25, 28], "confer": 7, "10": [7, 19], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 20], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 33], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 13, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 50, 51], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "guidelin": [11, 34], "best": [11, 34], "practic": [11, 34], "handl": 11, "error": 11, "happen": 11, "dure": 11, "read": 11, "call": 11, "foxi": 11, "newer": 11, "version": 11, "type": [12, 38, 41, 44], "sensor": [12, 24, 25, 37, 40, 46], "gpio": [12, 19], "exampl": [12, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 43], "mock": 13, "gener": 13, "system": 13, "per": 13, "extern": [14, 25, 35], "refer": [14, 31, 33, 35, 44, 48], "command": [15, 31, 41, 44, 48, 49], "line": 15, "list_control": 15, "list_controller_typ": 15, "list_hardware_compon": 15, "list_hardware_interfac": 15, "load_control": 15, "reload_controller_librari": 15, "set_controller_st": 15, "switch_control": 15, "unload_control": 15, "view_controller_chain": 15, "what": 16, "you": 16, "can": 16, "find": 16, "thi": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "goal": 16, "overview": [16, 27], "local": 16, "debian": 16, "docker": 16, "view": 16, "quick": 16, "hint": 16, "1": [18, 44], "rrbot": [18, 20, 29], "step": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "file": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "14": 21, "modular": [21, 26], "actuat": [21, 26], "provid": 21, "state": [21, 31, 44, 48], "diffbot": 22, "3": 23, "multipl": 23, "4": 24, "integr": [24, 52], "connect": 25, "6": 26, "separ": 26, "commun": [26, 52, 54], "each": 26, "7": 27, "full": 27, "6dof": 27, "geometri": 27, "cmake": 27, "librari": 27, "launch": 27, "8": 28, "an": 28, "expos": 28, "transmiss": 28, "9": 29, "ackermann_steering_control": 30, "admitt": 31, "2": [31, 33, 36, 38, 45, 51], "topic": [31, 36, 38, 45, 51], "bicycle_steering_control": 32, "diff_drive_control": 33, "other": [33, 34, 44, 49], "feedback": 33, "subscrib": [33, 44, 48], "publish": [33, 44, 48], "mobil": 34, "manipul": 34, "broadcast": [34, 37, 40, 46], "common": 34, "new": 35, "effort_control": 36, "jointgroupeffortcontrol": 36, "forc": 37, "torqu": 37, "forward_command_control": 38, "gripper": 39, "action": [39, 44], "imu": 40, "joint_state_broadcast": 41, "detail": 42, "about": 42, "trajectori": [43, 44], "represent": 43, "interpol": 43, "method": 43, "none": 43, "spline": 43, "visual": 43, "replac": 43, "joint_trajectory_control": 44, "preemption": 44, "polici": 44, "servic": 44, "further": 44, "inform": 44, "position_control": 45, "jointgrouppositioncontrol": 45, "rang": 46, "rqt_joint_trajectory_control": 47, "steering_controllers_librari": 48, "execut": 48, "logic": 48, "preced": 48, "tricycle_control": 49, "veloc": 49, "tricycle_steering_control": 50, "velocity_control": 51, "jointgroupvelocitycontrol": 51, "host": 52, "welcom": 54, "iron": 54, "develop": 54, "organis": 54}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Reviewers\u2019 Stats": [[0, "reviewers-stats"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [16, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [11, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [13, "parameters"], [30, "parameters"], [31, "parameters"], [32, "parameters"], [33, "parameters"], [36, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [45, "parameters"], [46, "parameters"], [48, "parameters"], [50, "parameters"], [51, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Guidelines and Best Practices": [[11, "guidelines-and-best-practices"], [34, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[11, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[11, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[12, "ros2-control-hardware-interface-types"]], "Joints": [[12, "joints"]], "Sensors": [[12, "sensors"]], "GPIOs": [[12, "gpios"]], "Examples": [[12, "examples"], [16, "examples"]], "Mock Components": [[13, "mock-components"]], "Generic System": [[13, "generic-system"]], "Per-joint Parameters": [[13, "per-joint-parameters"]], "Writing a Hardware Component": [[14, "writing-a-hardware-component"]], "Useful External References": [[14, "useful-external-references"], [35, "useful-external-references"]], "Command Line Interface": [[15, "command-line-interface"]], "list_controllers": [[15, "list-controllers"]], "list_controller_types": [[15, "list-controller-types"]], "list_hardware_components": [[15, "list-hardware-components"]], "list_hardware_interfaces": [[15, "list-hardware-interfaces"]], "load_controller": [[15, "load-controller"]], "reload_controller_libraries": [[15, "reload-controller-libraries"]], "set_controller_state": [[15, "set-controller-state"]], "switch_controllers": [[15, "switch-controllers"]], "unload_controller": [[15, "unload-controller"]], "view_controller_chains": [[15, "view-controller-chains"]], "Demos": [[16, "demos"]], "What you can find in this repository": [[16, "what-you-can-find-in-this-repository"]], "Goals": [[16, "goals"]], "Examples Overview": [[16, "examples-overview"]], "Local installation": [[16, "local-installation"]], "Build from debian packages": [[16, "build-from-debian-packages"]], "Build from source": [[16, "build-from-source"]], "Using Docker": [[16, "using-docker"]], "To view the robot": [[16, "to-view-the-robot"]], "To run the ros2_control demos": [[16, "to-run-the-ros2-control-demos"]], "Quick Hints": [[16, "quick-hints"]], "Example 1: RRBot": [[18, "example-1-rrbot"]], "Tutorial steps": [[18, "tutorial-steps"], [20, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [28, "tutorial-steps"], [29, "tutorial-steps"]], "Files used for this demos": [[18, "files-used-for-this-demos"], [19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [29, "files-used-for-this-demos"]], "Controllers from this demo": [[18, "controllers-from-this-demo"], [19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [29, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[19, "example-10-industrial-robot-with-gpio-interfaces"]], "Example 12: Controller chaining with RRBot": [[20, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[21, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[22, "diffbot"]], "Example 3: Robots with multiple interfaces": [[23, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[24, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[24, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[25, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[26, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[27, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[27, "ros2-control-overview"]], "Writing a URDF": [[27, "writing-a-urdf"]], "Geometry": [[27, "geometry"]], "URDF file": [[27, "urdf-file"]], "Writing a hardware interface": [[27, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[27, "plugin-description-file-hardware"]], "CMake library (hardware)": [[27, "cmake-library-hardware"]], "Writing a controller": [[27, "writing-a-controller"]], "Plugin description file (controller)": [[27, "plugin-description-file-controller"]], "CMake library (controller)": [[27, "cmake-library-controller"]], "Launching the example": [[27, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[28, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[29, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[30, "ackermann-steering-controller"]], "Admittance Controller": [[31, "admittance-controller"]], "ROS 2 interface of the controller": [[31, "ros-2-interface-of-the-controller"], [36, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [45, "ros-2-interface-of-the-controller"], [51, "ros-2-interface-of-the-controller"]], "Topics": [[31, "topics"], [36, "topics"], [38, "topics"], [45, "topics"], [51, "topics"]], "ros2_control interfaces": [[31, "ros2-control-interfaces"]], "References": [[31, "references"], [33, "references"], [44, "references"]], "States": [[31, "states"], [44, "states"], [48, "states"]], "Commands": [[31, "commands"], [41, "commands"], [44, "commands"], [48, "commands"]], "bicycle_steering_controller": [[32, "bicycle-steering-controller"]], "diff_drive_controller": [[33, "diff-drive-controller"]], "Other features": [[33, "other-features"], [44, "other-features"], [49, "other-features"]], "Description of controller\u2019s interfaces": [[33, "description-of-controller-s-interfaces"], [44, "description-of-controller-s-interfaces"], [48, "description-of-controller-s-interfaces"]], "Feedback": [[33, "feedback"]], "Output": [[33, "output"]], "ROS 2 Interfaces": [[33, "ros-2-interfaces"]], "Subscribers": [[33, "subscribers"], [48, "subscribers"]], "Publishers": [[33, "publishers"], [44, "publishers"], [48, "publishers"]], "ros2_controllers": [[34, "ros2-controllers"]], "Controllers for Mobile Robots": [[34, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[34, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[34, "broadcasters"]], "Common Controller Parameters": [[34, "common-controller-parameters"]], "Writing a new controller": [[35, "writing-a-new-controller"]], "effort_controllers": [[36, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[36, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[37, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[38, "forward-command-controller"]], "Hardware interface type": [[38, "hardware-interface-type"], [41, "hardware-interface-type"]], "Gripper Action Controller": [[39, "gripper-action-controller"]], "IMU Sensor Broadcaster": [[40, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[41, "joint-state-broadcaster"]], "Details about parameters": [[42, "details-about-parameters"]], "Trajectory Representation": [[43, "trajectory-representation"]], "Interpolation Method none": [[43, "interpolation-method-none"]], "Interpolation Method spline": [[43, "interpolation-method-spline"]], "Visualized Examples": [[43, "visualized-examples"]], "Trajectory Replacement": [[43, "trajectory-replacement"]], "joint_trajectory_controller": [[44, "joint-trajectory-controller"]], "Hardware interface types": [[44, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[44, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[44, "preemption-policy"]], "Actions 1": [[44, "actions"]], "Subscriber 1": [[44, "subscriber"]], "Services": [[44, "services"]], "Further information": [[44, "further-information"]], "position_controllers": [[45, "position-controllers"]], "position_controllers/JointGroupPositionController": [[45, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[46, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[47, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[48, "steering-controllers-library"]], "Execution logic of the controller": [[48, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[48, "references-from-a-preceding-controller"]], "tricycle_controller": [[49, "tricycle-controller"]], "Velocity commands": [[49, "velocity-commands"]], "tricycle_steering_controller": [[50, "tricycle-steering-controller"]], "velocity_controllers": [[51, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[51, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[52, "simulator-integrations"]], "Hosted by ros-controls": [[52, "hosted-by-ros-controls"]], "Community": [[52, "community"]], "Supported Robots": [[53, "supported-robots"]], "Welcome to the ros2_control documentation - Iron!": [[54, "welcome-to-the-ros2-control-documentation-iron"]], "ros2_control Repositories": [[54, "ros2-control-repositories"]], "Development Organisation and Communication": [[54, "development-organisation-and-communication"]]}, "indexentries": {}})
\ No newline at end of file
+Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Hardware Components", "ros2_control
hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Iron!"], "terms": {"The": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 54], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 42, 43, 44, 45, 50, 51, 54], "peopl": [0, 1], "were": [0, 6, 27, 33, 43, 44], "ros2_control": [0, 1, 4, 7, 9, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 33, 35, 52], "framework": [0, 1, 2, 6, 7, 9, 10, 11, 12, 13, 15, 16, 27, 34, 35, 41, 54], "show": [0, 1, 3, 4, 5, 7, 9, 11, 12, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 41, 43], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 13, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 35, 41, 42, 43, 44, 53], "time": [0, 1, 2, 6, 7, 9, 13, 15, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 33, 35, 37, 42, 43, 44, 54], "activ": [0, 1, 2, 4, 9, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 42, 44], "assign": [0, 35], "finish": 0, "rate": [0, 22, 34, 42, 43, 44], "last": [0, 11, 14, 27, 31, 35, 42, 43], "date": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "1244": 0, "1024": 0, "0": [0, 3, 4, 5, 8, 12, 13, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 39, 40, 41, 42, 43, 44, 46, 48, 50], "82": 0, "2023": [0, 54], "12": [0, 16, 53, 54], "30t20": 0, "25": 0, "34z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": 0, "986": 0, "561": 0, "57": 0, "18t14": 0, "11": [0, 16], "03z": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "153": 0, "134": 0, "88": 0, "26t09": 0, "00": 0, "02z": 0, "fetch": 0, "31": [0, 54], "03": [0, 44], "26": 0, "14": [0, 16, 48], "utc": 0, "dure": [0, 16, 27, 44], "past": [0, 43], "month": 0, "533": 0, "402": 0, "75": 0, "439": 0, "136": 0, "142": 0, "123": 0, "87": 0, "have": [0, 1, 2, 4, 6, 8, 9, 11, 12, 13, 14, 16, 18, 20, 22, 23, 27, 29, 30, 31, 32, 34, 35, 41, 42, 44, 50], "contribut": [0, 4, 7], "develop": [0, 1, 7, 13, 14, 16, 35], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 27, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 48, 50, 51, 52, 53, 54], "project": [0, 1, 54], "give": [0, 1, 7, 9, 16, 18, 22, 23, 43, 54], "valuabl": 0, "pull": [0, 14], "request": [0, 2, 14, 27, 41, 54], "see": [0, 1, 2, 4, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 42, 44, 46, 48, 50], "more": [0, 1, 2, 3, 4, 5, 6, 9, 13, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 44, 50], "inform": [0, 3, 5, 8, 13, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 35, 54], "karsten": 0, "knese": 0, "karsten1987": 0, "186": 0, "118": 0, "63": 0, "2021": 0, "09": 0, "07t16": 0, "47": 0, "31z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "90": [0, 27], "80": 0, "89": 0, "27t10": 0, "54": 0, "11z": 0, "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "69": 0, "67": 0, "97": 0, "29t05": 0, "18": [0, 27], "25z": 0, "victor": 0, "lopez": 0, "v": [0, 15, 24, 42], "93": 0, "60": 0, "65": 0, "10": [0, 3, 5, 16, 23, 48], "14t09": 0, "01": [0, 39, 42, 44], "andyz": 0, "46": 0, "45": 0, "98": 0, "23t02": 0, "17": 0, "26z": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "157": 0, "43": [0, 4, 12, 22], "27": 0, "25t12": 0, "02": 0, "18z": 0, "olivi": 0, "stass": 0, "52": [0, 46], "40": 0, "77": 0, "26t08": 0, "13z": 0, "jordan": 0, "palacio": 0, "78": 0, "34": 0, "44": 0, "15t08": 0, "45z": 0, "erick": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 31, 35, 36, 41, 45, 48, 51, 54], "isla": 0, "osuna": 0, "erickiso": 0, "139": 0, "28": [0, 48], "20": [0, 39, 42, 44], "19t20": 0, "32": 0, "07z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "29": 0, "23": [0, 4], "79": 0, "2022": 0, "08": 0, "30t16": 0, "41": 0, "23z": 0, "none": [0, 8, 35, 41, 42, 44], "bijoua29": 0, "160": 0, "21": [0, 48], "13": [0, 16], "06": 0, "01t20": 0, "48": [0, 3, 5], "32z": 0, "jaron": 0, "l": 0, "167": 0, "10t19": 0, "59": 0, "59z": 0, "livanov93": 0, "164": 0, "05": [0, 44, 54], "22t06": 0, "28z": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "94": 0, "27t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "146": 0, "16": [0, 53], "25t06": 0, "15z": 0, "bailac": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 12, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 39, 43, 46, 48], "09t12": 0, "52z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "135": 0, "22t09": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "24t22": 0, "ari": 0, "synodino": 0, "progtologist": 0, "152": 0, "07": 0, "30t19": 0, "58z": 0, "chen": 0, "bainian": 0, "briancbn": 0, "36": 0, "9": [0, 6, 16, 40], "25t01": 0, "51": 0, "12z": 0, "paul": 0, "gesel": 0, "pac48": 0, "14t18": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "8": [0, 16], "25t18": 0, "19z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "07t07": 0, "01z": 0, "ddengster": 0, "2020": 0, "01t03": 0, "andr": 0, "montano": 0, "anfemosa": 0, "133": 0, "7": [0, 16, 19, 22, 48], "29t15": 0, "37z": 0, "homalozoa": 0, "x": [0, 22, 24, 25, 27, 31, 33, 37, 40, 48, 49, 53], "130": 0, "23t11": 0, "22": [0, 9], "mahaarbo": 0, "01t11": 0, "44z": 0, "matt": 0, "reynold": 0, "matthew": 0, "18t19": 0, "56": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "04": [0, 9], "09t00": 0, "38": [0, 3, 5], "06z": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "04t13": 0, "50": [0, 4, 9, 22], "48z": 0, "dasroteskelett": 0, "150": 0, "6": [0, 16, 18, 27], "28t09": 0, "36z": 0, "brewmast": 0, "harderthan": 0, "124": 0, "26t15": 0, "47z": 0, "A": [0, 4, 7, 12, 14, 16, 24, 25, 34, 35, 41, 43, 44], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "19t13": 0, "39": 0, "alex": 0, "moriarti": 0, "5": [0, 14, 16, 18, 19, 20, 21, 23, 24, 26, 27, 28, 29, 43, 48, 53], "42": 0, "20t19": 0, "55": 0, "jack": 0, "jackcent": 0, "02t15": 0, "37": 0, "17z": 0, "han": 0, "martin": 0, "duringhof": 0, "4": [0, 12, 16, 21, 23, 25, 28, 46], "29t21": 0, "15": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "20t07": 0, "40z": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "05t22": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "23t00": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "19t23": 0, "49z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "13t18": 0, "27z": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "26t17": 0, "05z": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "22t14": 0, "19": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "145": 0, "3": [0, 3, 4, 5, 6, 12, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 43, 44], "05t08": 0, "53": 0, "08z": 0, "mrl1kor": 0, "malapatiravi": 0, "07t18": 0, "adam": 0, "serafin": 0, "serafadam": 0, "12t18": 0, "24": 0, "24z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "03t10": 0, "20z": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "22t13": 0, "tim": 0, "clepha": 0, "timpl": 0, "13t07": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "22t00": 0, "guihom": 0, "guihomework": 0, "17t15": 0, "jose": 0, "lui": 0, "rivero": 0, "j": 0, "26t13": 0, "peter": 0, "david": 0, "fagan": 0, "peterdavidfagan": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 12, 13, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 44, 48, 53, 54], "23t22": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "27t03": 0, "57z": 0, "akash": 0, "ace314159": 0, "31t17": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "05t12": 0, "46z": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "01t12": 0, "49": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "09z": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "mhubii": 0, "21t11": 0, "50z": 0, "luka": 0, "macha": 0, "lukasmacha97": 0, "85": 0, "17t18": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t07": 0, "qiayuanliao": 0, "qiayuanl": 0, "35": [0, 48], "25t05": 0, "solomon": 0, "swiz23": 0, "15t15": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "08t14": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "05t10": 0, "53z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "01t13": 0, "22z": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "28t07": 0, "33z": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "schulz": 0, "schulze18": 0, "27t21": 0, "29z": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "franz": 0, "fjp": 0, "04t22": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "nour": 0, "saeed": 0, "d": [0, 16, 18, 29, 42], "dmitri": 0, "dignakov": 0, "13t16": 0, "30": [0, 3, 5, 22], "ken551": 0, "03t11": 0, "54z": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "05t14": 0, "bedard": 0, "christophebedard": 0, "27t18": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "19t14": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "21t14": 0, "21z": 0, "flochr": 0, "20t10": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "51z": 0, "abishalini": 0, "sivaraman": 0, "27t14": 0, "ramcharanthota": 0, "ben": 0, "holden": 0, "bobblebal": 0, "01t10": 0, "Will": 0, "baker": 0, "willcbak": 0, "22t15": 0, "robotgir": 0, "17t16": 0, "33": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "17t10": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "18t09": 0, "josh": 0, "newan": 0, "joshnewan": 0, "14t08": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "26t10": 0, "stephen": 0, "street": 0, "sgstreet": 0, "05t20": 0, "jun": 0, "chenjunnn": 0, "09t06": 0, "daniel": 0, "zumkel": 0, "dzumkel": 0, "shane": 0, "loretz": 0, "sloretz": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "17t21": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "31t15": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "00z": 0, "carlo": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "35z": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "09t18": 0, "reframesystem": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "12t08": 0, "55z": 0, "addisu": 0, "z": [0, 22, 24, 25, 27, 31, 33, 37, 40, 48, 49], "taddes": 0, "azeei": 0, "14t20": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "09t08": 0, "sgmurrai": 0, "0000": 0, "00t00": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoya": 0, "tomoyafujita2016": 0, "usamahamayun1": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "66": 0, "64": 0, "92": 0, "71": 0, "104": 0, "03t19": 0, "14z": 0, "86": 0, "95": 0, "100": [0, 4, 12, 36, 45, 51], "99": [0, 9], "72": 0, "link": [0, 3, 4, 5, 7, 8, 11, 27, 34], "list": [0, 4, 7, 8, 9, 11, 14, 15, 20, 27, 35, 42, 52, 53, 54], "who": 0, "submit": [0, 1, 7, 52, 53], "respect": [0, 3, 5, 6, 7, 42, 43, 44], "repositori": [0, 4, 6, 10, 12, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 33, 34], "ros2_control_demo": [0, 1, 4, 16, 18, 27, 29, 54], "control_toolbox": [0, 54], "gazebo_ros2_control": [0, 29], "gz_ros2_control": 0, "realtime_tool": [0, 6, 54], "kinematics_interfac": [0, 31], "control_msg": [0, 3, 5, 31, 42, 44, 48, 54], "ha": [0, 1, 3, 4, 5, 7, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 34, 35, 41, 42, 43], "receiv": [0, 2, 27, 42, 43], "major": [0, 40], "from": [0, 1, 2, 7, 8, 9, 13, 14, 15, 17, 27, 31, 33, 34, 35, 36, 37, 40, 42, 43, 44, 45, 46, 49, 51, 53, 54], "support": [0, 2, 3, 4, 5, 7, 13, 14, 15, 27, 31, 35, 41, 43, 44, 48, 52, 54], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 12, 13, 15, 16, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 43, 44, 54], "industri": [0, 4, 6, 16, 53], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 12, 18, 20, 22, 29, 33, 37, 41, 48, 49, 54], "softwar": [0, 4, 27], "compon": [0, 7, 9, 10, 12, 15, 16, 21, 22, 23, 24, 25, 26, 27, 31, 33, 34, 37, 40, 46, 48, 49, 54], "http": [0, 1, 4, 6, 16, 27, 30, 32, 50], "www": 0, "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 35, 40, 42, 43, 46, 50, 54], "horizon": 0, "research": [0, 7, 53], "innov": 0, "programm": 0, "under": [0, 7, 14, 20, 35, 43, 44, 48, 54], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 14, 16, 27, 29, 35, 42, 43], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 35, 44, 54], "consid": [1, 15, 42], "As": [1, 8, 12, 14, 18, 27, 33, 35], "an": [1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 18, 20, 22, 25, 27, 29, 30, 31, 32, 33, 34, 35, 36, 41, 42, 44, 45, 48, 50, 51], "open": [1, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 42, 48], "sourc": [1, 3, 5, 7, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "we": [1, 3, 5, 6, 7, 8, 11, 16, 18, 20, 22, 27, 28, 29, 41], "welcom": 1, "each": [1, 4, 6, 8, 9, 11, 12, 14, 16, 18, 21, 27, 30, 41, 48, 50], "contributor": 1, "regardless": 1, "background": [1, 16], "experi": 1, "To": [1, 2, 4, 8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41, 43, 52, 53, 54], "reduc": [1, 13], "entropi": 1, "univers": [1, 7, 27, 53], "our": [1, 3, 4, 5, 6, 7, 16, 18, 27], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 16], "set": [1, 2, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 18, 27, 34, 36, 41, 42, 43, 44, 45, 48, 51], "up": [1, 7, 14, 16, 43], "some": [1, 3, 5, 6, 7, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 31, 41, 42, 44, 54], "standard": [1, 2, 6, 7, 14, 15, 21, 26, 27, 37, 41], "method": [1, 2, 4, 8, 9, 11, 14, 27, 35, 48], "requir": [1, 2, 4, 6, 14, 27, 31, 35, 36, 44, 45, 51], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 40, 41, 42, 43, 44, 46, 48, 49, 50, 54], "limit": [1, 3, 5, 7, 9, 16, 27, 33, 49], "scope": 1, "your": [1, 2, 7, 9, 13, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 32, 35, 52, 53, 54], "pr": [1, 52, 53], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 35, 41, 43, 44], "do": [1, 2, 4, 6, 7, 8, 9, 14, 16, 31, 35, 44], "one": [1, 2, 4, 6, 7, 8, 9, 12, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 36, 37, 41, 43, 44, 45, 48, 50, 51, 54], "thing": [1, 3, 5, 16], "avoid": [1, 18, 21, 22, 23, 24, 25, 26, 28, 35], "ad": [1, 3, 5, 6, 9, 13, 14, 20, 22, 27, 35, 41], "random": [1, 21, 23, 24, 25, 26], "fix": [1, 2, 27, 30, 32, 50], "put": [1, 14, 35], "those": [1, 2, 4, 6, 8, 13, 14, 16, 27, 33, 35, 37, 41, 42, 43], "separ": [1, 2, 4, 16, 21, 41], "descript": [1, 2, 7, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 35], "titl": 1, "add": [1, 2, 8, 9, 11, 14, 27, 30, 31, 32, 35, 50, 52, 53], "short": [1, 35, 54], "summari": [1, 7, 54], "make": [1, 2, 5, 6, 7, 20, 27, 39, 54], "sure": [1, 5, 6, 18, 20, 21, 22, 23, 24, 25, 26, 28, 54], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54], "green": [1, 43], "don": [1, 3, 8, 22, 42, 44], "t": [1, 3, 5, 8, 9, 16, 22, 42, 43, 44], "afraid": 1, "review": [1, 6, 54], "maintain": [1, 4, 6, 8, 16, 43], "new": [1, 7, 8, 14, 18, 20, 23, 27, 34, 43, 54], "code": [1, 2, 4, 6, 7, 14, 27], "test": [1, 3, 6, 13, 14, 16, 18, 22, 29, 30, 31, 32, 35, 48, 50], "If": [1, 2, 4, 8, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 35, 37, 41, 42, 43, 44, 48, 54], "function": [1, 2, 6, 7, 20, 27, 31, 48], "alwai": [1, 27], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 18, 27, 43, 44], "intent": [1, 8, 13], "section": [1, 2, 12, 14, 35, 44], "target": [1, 9, 14, 31, 35, 38, 42], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 44], "read": [1, 2, 3, 4, 5, 9, 12, 14, 16, 20, 21, 24, 25, 27, 35, 41, 42, 46, 48], "understand": [1, 6, 43], "how": [1, 6, 7, 12, 14, 16, 19, 20, 21, 23, 24, 25, 26, 27, 29, 35], "handl": [1, 2, 4, 6, 7, 14, 24, 27, 30, 31, 32, 38, 39, 40, 44, 48, 50], "organ": [1, 7, 54], "guidelin": 1, "especi": [1, 2, 16, 48], "applic": [1, 4, 7, 9, 12, 27], "pleas": [1, 9, 26, 54], "keep": [1, 27, 35], "mind": [1, 35], "work": [1, 6, 7, 8, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35, 36, 41, 45, 49, 51, 54], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 13, 14, 15, 20, 23, 27, 31, 34, 35, 39, 42, 44, 48], "That": [1, 14, 35], "wai": [1, 9, 14, 27, 35, 37, 44], "main": [1, 4, 6, 7, 9, 13, 27, 35, 48, 54], "repo": [1, 4, 16], "clean": 1, "featur": [1, 7, 13, 16, 18, 28, 48, 54], "branch": [1, 16], "check": [1, 2, 4, 6, 8, 11, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 35, 42, 43, 44, 50, 54], "satisfi": 1, "befor": [1, 2, 8, 9, 14, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 34, 35, 43], "thei": [1, 2, 4, 6, 7, 8, 12, 13, 14, 15, 20, 34, 35, 42, 44, 48], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 35, 37, 38, 42, 43, 44, 48, 54], "must": [1, 3, 5, 8, 9, 12, 16, 27, 40, 42, 44], "approv": 1, "two": [1, 4, 6, 8, 9, 14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 37, 43, 44, 48, 50], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 11, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 32, 33, 35, 36, 37, 41, 42, 43, 44, 45, 51], "except": [1, 27], "other": [1, 2, 3, 4, 7, 14, 16, 21, 26, 27, 30, 32, 35, 41, 43, 48, 50], "where": [1, 3, 6, 8, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 30, 32, 33, 35, 41, 42, 43, 44, 48, 50], "back": 1, "traceabl": 1, "discuss": [1, 7, 20, 29, 43, 54], "suffici": [1, 3, 5, 8, 37], "note": [1, 4, 9, 18, 33, 44, 54], "still": [1, 2, 18, 20, 21, 22, 23, 24, 25, 26, 28, 34, 43], "encourag": 1, "help": [1, 9, 13, 14, 15, 35], "u": [1, 3, 5, 9, 16, 42], "increas": [1, 22], "pace": 1, "veri": [1, 2, 3, 5, 6, 12], "like": [1, 2, 3, 4, 5, 6, 7, 14, 16, 20, 27], "find": [1, 3, 5, 22], "issu": [1, 6, 54], "nobodi": 1, "els": 1, "squash": 1, "commit": 1, "messag": [1, 6, 9, 15, 23, 24, 25, 27, 37, 40, 41, 42, 43, 44, 46, 48, 54], "comment": [1, 27], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 15, 17, 27, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 48, 50, 51, 54], "pre": 1, "correct": [1, 2, 43], "header": [1, 11, 14, 24, 25, 33, 35, 43], "address": [1, 27], "similar": [1, 4, 7, 12, 18, 20, 27], "mean": [1, 2, 8, 12, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 44], "result": [1, 4, 8, 9, 18, 27, 41, 43], "exactli": 1, "cowboi": 1, "style": [1, 14, 35], "over": [1, 6, 8, 22, 27], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 37, 41, 42, 43], "doesn": [1, 8], "matter": 1, "trivial": [1, 13], "chanc": 1, "proper": [1, 8, 9, 44], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 42], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38, 39, 40, 41, 43, 48, 50], "ping": 1, "them": [1, 6, 8, 9, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 35, 41, 43, 53], "necessari": [1, 8, 11], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 8, 9, 11, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 42, 43, 54], "part": [1, 6, 7, 12, 27, 35, 43, 44], "For": [1, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 42, 44, 48, 50], "detail": [1, 2, 3, 4, 5, 9, 11, 12, 13, 14, 20, 27, 29, 30, 32, 33, 35, 43, 44, 50], "thoma": 1, "cokela": 1, "info": [1, 9, 11, 14, 27], "tutori": [1, 16], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 14, 15, 16, 21, 22, 24, 25, 26, 27, 33, 34, 35, 36, 37, 40, 42, 45, 46, 48, 51], "stabl": 1, "against": 1, "accept": [1, 14, 23, 35, 36, 42, 43, 44, 45, 51], "api": [1, 3, 5, 6, 14, 18, 21, 22, 23, 24, 25, 26, 28], "abi": 1, "chang": [1, 2, 4, 7, 9, 11, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 42, 43, 44], "e": [1, 2, 4, 6, 7, 8, 9, 12, 13, 14, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 31, 35, 36, 37, 41, 42, 43, 45, 48, 51, 54], "name": [1, 2, 3, 4, 5, 7, 9, 12, 13, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 29, 31, 35, 37, 38, 40, 41, 42, 46, 48], "convent": [1, 27], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6], "same": [1, 8, 23, 27, 34, 37, 42, 43, 44], "build": [1, 14, 27, 31, 35], "dai": 1, "ros_distro": [1, 4, 16, 18], "foxi": [1, 7, 14], "galact": [1, 11, 14], "releas": [1, 4, 7, 16, 27], "version": [1, 6, 16, 44], "non": [1, 7, 20, 27, 37, 53], "brake": 1, "distribut": [1, 16, 54], "three": [1, 2, 4, 11, 12, 16, 27, 35, 43, 50], "stage": [1, 8, 20], "current": [1, 6, 11, 12, 14, 15, 43, 44, 48], "futur": [1, 7, 8, 43, 44], "compat": [1, 2, 7, 14, 16], "packag": [1, 2, 3, 5, 11, 14, 27, 30, 31, 32, 33, 35, 36, 37, 40, 44, 45, 46, 48, 50, 51, 54], "direct": [1, 2, 6, 14, 27, 35, 42], "local": [1, 3, 5, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 41], "possibl": [1, 4, 6, 9, 12, 16, 18, 21, 22, 23, 24, 25, 26, 28, 31, 35, 43], "core": [1, 10, 27], "immedi": [1, 9, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29], "depend": [1, 4, 11, 12, 14, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 43, 48], "fail": [1, 23, 27], "expect": [1, 6, 20, 27, 30, 32, 44, 48, 50], "after": [1, 8, 9, 14, 16, 18, 27, 33, 35, 42, 43, 48, 49], "next": [1, 18, 27, 43], "sync": 1, "abl": 1, "potenti": [1, 35, 42], "mid": 1, "stat": 1, "power": [1, 3, 5, 7, 14], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 11, 12, 16, 20, 27, 35, 42, 44], "imposs": 2, "extend": [2, 4, 6, 8, 14, 35], "exist": [2, 4, 6, 8, 9, 11, 12, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35, 44], "addit": [2, 3, 5, 8, 16, 19, 22, 27], "sensor": [2, 4, 6, 11, 13, 14, 16, 21, 26, 27, 31, 34, 53], "actuat": [2, 4, 6, 11, 12, 13, 14, 16, 20], "tool": [2, 3, 5, 6, 7, 27], "without": [2, 3, 4, 5, 7, 9, 13, 14, 16, 20, 29, 35, 42, 43], "combinedrobothardwar": 2, "drawback": [2, 54], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 12, 13, 16, 23, 41, 42, 43, 44], "extern": [2, 4, 6, 8, 13, 16, 31], "defin": [2, 3, 5, 6, 9, 13, 14, 16, 27, 31, 35, 37, 40, 41, 42, 43, 44, 46, 48], "system": [2, 3, 4, 5, 6, 7, 11, 12, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 44, 52, 53, 54], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 14, 16, 22, 35], "physic": [2, 4, 11, 12, 13], "cell": [2, 37], "surround": 2, "describ": [2, 4, 8, 12, 16, 18, 23, 27, 29, 43], "multi": [2, 4, 6, 7, 16, 23], "gripper": [2, 3, 4, 5, 7, 12, 13, 34], "out": [2, 3, 5, 9, 27, 33], "box": [2, 16, 18, 22, 23, 24, 25, 28, 29], "allow": [2, 3, 4, 5, 16, 27, 39, 42, 43, 44, 47], "joint": [2, 4, 7, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 41, 42, 43, 45, 48, 50, 51, 54], "posit": [2, 3, 4, 5, 7, 9, 12, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 36, 41, 42, 43, 44, 45, 48, 51], "veloc": [2, 3, 4, 5, 7, 8, 16, 21, 22, 23, 27, 31, 32, 33, 34, 39, 40, 41, 42, 43, 44, 45, 48, 51], "effort": [2, 3, 5, 16, 27, 34, 36, 39, 41, 42, 44], "hard": [2, 9], "data": [2, 4, 6, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 41, 43], "approach": [2, 8], "doe": [2, 8, 9, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 35, 43, 44], "enforc": [2, 23, 27, 42], "string": [2, 9, 13, 16, 35, 38, 39, 40, 41, 42, 46, 48], "ensur": [2, 7, 9, 27, 43], "constant": [2, 16], "hardware_interfac": [2, 3, 4, 5, 11, 13, 14, 16, 21, 24, 25, 26, 27, 31, 33, 34, 35], "In": [2, 3, 4, 5, 6, 7, 8, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 34, 35, 41, 43, 48], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 14, 23, 35, 44], "regist": [2, 3, 5], "resourc": [2, 3, 5, 14, 23], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 14, 20, 23, 33, 35, 41, 43], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35, 37, 41, 42], "avail": [2, 4, 7, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41, 44], "enabl": [2, 4, 6, 7, 11, 14, 15, 16, 22, 31, 37, 48], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 12, 13, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 35, 38, 43, 44, 48, 49, 50, 54], "systeminterfac": [2, 3, 5, 13, 24, 27], "granular": 2, "sensorinterfac": [2, 21, 25], "actuatorinterfac": [2, 21, 26], "abov": [2, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 34, 43], "choos": [2, 16, 48], "suitabl": [2, 7], "strategi": [2, 16, 43], "decid": 2, "which": [2, 3, 4, 5, 6, 7, 9, 14, 15, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 33, 34, 35, 37, 40, 41, 42, 43, 44, 46, 48, 49], "case": [2, 3, 5, 6, 7, 8, 16, 20, 27, 35, 41, 43, 44, 54], "mayb": [2, 8], "sens": [2, 4, 34, 37], "multipl": [2, 4, 7, 8, 12, 14, 16, 41, 42], "constructor": [2, 14, 27, 35], "initi": [2, 14, 27, 35, 43], "variabl": [2, 14, 27, 35, 42], "need": [2, 3, 4, 5, 6, 7, 8, 12, 14, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 34, 35, 43], "commun": [2, 4, 6, 7, 14, 16, 18, 21, 22, 23, 24, 25, 27, 28, 53], "default": [2, 4, 8, 9, 13, 23, 30, 32, 38, 39, 40, 41, 42, 43, 44, 46, 48, 50], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41, 42, 43, 44, 48], "paramet": [2, 3, 5, 7, 14, 16, 18, 22, 27, 35, 44], "pars": [2, 3, 5, 9, 10, 12], "urdf": [2, 7, 9, 12, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "snippet": 2, "hardwareinfo": [2, 27], "here": [2, 10, 14, 27, 35, 36, 44, 45, 51], "cross": [2, 41], "valu": [2, 4, 6, 12, 13, 14, 16, 18, 19, 20, 22, 24, 25, 27, 29, 35, 40, 41, 42, 44, 46, 48], "export_": 2, "_interfac": [2, 14], "joint_a2": 2, "extract": [2, 33, 49], "sensibl": 2, "stop": [2, 7, 8, 9, 11, 15, 18, 22, 23, 27, 33, 42, 49], "usual": [2, 4, 9, 13, 14, 27, 35], "includ": [2, 3, 5, 6, 11, 14, 15, 27, 35, 44, 53], "command": [2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 38, 39, 42, 43, 45, 47, 50, 51, 54], "safe": [2, 27, 33, 35, 44, 49], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 20, 21, 22, 26, 34], "exchang": [2, 6, 18, 21, 22, 23, 24, 25, 26, 28, 54], "equival": [2, 27], "forget": [2, 4, 16, 44], "pluginlib_export_class": [2, 14, 16, 27, 35], "macro": [2, 4, 14, 16, 27, 35], "end": [2, 4, 11, 14, 27, 35, 42, 53], "cpp": [2, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "file": [2, 3, 4, 5, 6, 7, 9, 13, 14, 16, 31, 33, 35, 36, 44, 45, 51], "creat": [2, 3, 4, 5, 7, 9, 13, 14, 16, 27, 35], "xml": [2, 3, 5, 11, 14, 27, 35], "librari": [2, 4, 14, 15, 16, 30, 32, 34, 35, 48, 50], "pluginlib": [2, 3, 4, 5, 9, 14, 27, 35], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 13, 15, 22, 31, 36, 37, 41, 44, 45, 51, 54], "rrbotsystempositiononlyhardwar": [2, 4, 12, 15, 18, 20, 25], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 15, 18, 31, 44], "real": [2, 6, 7, 9, 13, 22, 35, 41, 42, 54], "critic": [2, 6], "mark": [2, 20], "controllerinterfac": [2, 4, 8, 15, 27, 35], "member": [2, 14, 27, 35, 43], "init": 2, "call": [2, 3, 4, 5, 8, 14, 22, 27, 35], "lifecycl": [2, 4, 7, 9, 11, 14, 27, 34], "declar": [2, 14, 27, 35], "state_interface_configur": [2, 27, 35], "command_interface_configur": [2, 27, 35], "design": [2, 4, 6, 7, 8, 27, 54], "updat": [2, 4, 8, 9, 16, 27, 34, 35, 44, 48], "manag": [2, 3, 5, 6, 7, 10, 11, 14, 15, 16, 27, 35, 44, 54], "option": [2, 3, 5, 9, 11, 13, 14, 15, 18, 23, 34, 35, 37, 41, 44, 48], "on_configur": [2, 14, 27, 35], "on_activ": [2, 11, 14, 27, 35], "on_deactiv": [2, 11, 14, 27, 35], "deactiv": [2, 4, 15, 18, 42], "final": [2, 7, 11, 27], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 13, 16, 20, 22, 27, 42, 43, 44, 54], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 16, 18, 29, 52], "classic": [3, 16, 29, 52], "provid": [3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 16, 18, 20, 23, 24, 25, 26, 27, 28, 29, 31, 35, 41, 42, 43, 44, 48, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 13, 16, 24, 27], "model": [3, 5, 18, 27], "cd": [3, 4, 5, 16, 27], "docker": [3, 5, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "gui": [3, 5, 16, 18, 20, 21, 23, 24, 25, 26, 28, 29, 47], "properli": [3, 5, 8, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "rm": [3, 4, 5, 16, 18, 29], "net": [3, 5, 7, 16, 18, 29], "host": [3, 5, 16, 18, 29, 53], "ros2": [3, 4, 5, 7, 9, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "launch": [3, 4, 5, 9, 13, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "cart_example_posit": [3, 5], "py": [3, 5, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "fals": [3, 5, 13, 16, 18, 29, 33, 39, 41, 42, 44, 48], "machin": [3, 4, 5, 6, 16, 29], "client": [3, 5, 29, 44], "gzclient": [3, 29], "rocker": [3, 5], "go": [3, 5, 7, 9, 14, 27, 35], "imag": [3, 5, 9, 29], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 16, 27, 43], "id": [3, 5, 15, 18, 21, 22, 23, 24, 25, 26, 28], "specif": [3, 5, 6, 8, 9, 11, 12, 27, 29, 38, 41, 43, 44], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "instruct": [3, 5, 22, 27, 29], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 39], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 18], "bash": [3, 4, 5, 14, 16, 18, 27, 35], "home": [3, 5], "ros2_w": [3, 4, 5, 16], "example_posit": [3, 5], "element": [3, 5, 27], "access": [3, 4, 5, 7, 9, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 41], "interfac": [3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 16, 18, 20, 21, 22, 24, 25, 26, 29, 30, 32, 34, 35, 37, 40, 42, 43, 46, 50, 52, 53, 54], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 13, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 33, 34, 35, 42, 49, 54], "slider_to_cart": [3, 5, 36, 45, 51], "command_interfac": [3, 4, 5, 12, 20, 27, 31, 42, 44], "param": [3, 4, 5, 9, 12, 13, 22, 27], "min": [3, 4, 5, 12, 27], "1000": [3, 5, 27], "max": [3, 4, 5, 12, 27, 39], "state_interfac": [3, 4, 5, 12, 27, 31, 42, 44], "initial_valu": [3, 5, 27], "mimick": [3, 5, 13], "manual": [3, 4, 5, 6, 9, 14, 16, 18, 23, 24, 25, 26, 28, 29, 35, 54], "multipli": [3, 5, 13], "definit": [3, 4, 5, 9, 14, 27, 31, 33, 34, 35, 37, 42], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 27, 30, 32, 33, 37, 50], "xyz": [3, 5, 27], "rpy": [3, 5, 27], "1415926535": [3, 5], "parent": [3, 5, 14, 27, 35], "base": [3, 4, 5, 7, 11, 14, 15, 16, 21, 22, 26, 27, 33, 35, 38, 48, 49, 52], "child": [3, 5, 12, 27], "finger_left": [3, 5], "lower": [3, 5, 27], "upper": [3, 5, 27], "actual": [3, 5, 8], "load": [3, 4, 5, 9, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 35], "appropri": [3, 5, 6, 43], "By": [3, 5, 9, 27, 41, 43], "though": [3, 5, 20], "extens": [3, 5], "via": [3, 4, 5, 16, 18, 24, 25, 27, 29, 44], "between": [3, 4, 5, 6, 11, 12, 16, 27, 30, 32, 41, 42, 43, 44, 50], "filenam": [3, 5, 27], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 14, 27, 31, 35, 44], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 18, 27], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 41], "config": [3, 5, 16], "cartpole_control": [3, 5], "yaml": [3, 4, 5, 6, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 44], "locat": [3, 27, 31], "server": [3, 39, 44], "node": [3, 4, 5, 9, 11, 13, 15, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "attempt": [3, 5, 9, 44], "get": [3, 5, 7, 8, 9, 11, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 54], "most": [3, 5, 6, 14, 16, 27, 35], "least": [3, 5, 12, 14, 35, 44], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 44], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 18, 20, 28], "etc": [3, 5, 9, 23, 27, 54], "These": [3, 5, 16, 27], "inherit": [3, 5, 9, 27], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 20, 21, 26, 36, 43, 45, 51], "properti": [3, 5, 27], "sub": [3, 5], "class": [3, 4, 5, 7, 9, 11, 14, 15, 27, 35, 38, 43], "specifi": [3, 5, 9, 14, 16, 27, 34, 35, 42, 43, 44], "insid": [3, 5, 13, 16, 18], "publish": [3, 5, 6, 8, 12, 16, 19, 27, 31, 34, 37, 40, 41, 43, 46, 49, 54], "stateinterfac": [3, 5, 27], "topic": [3, 5, 6, 7, 8, 12, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 34, 44, 52], "sensor_msg": [3, 5, 40, 46], "msg": [3, 5, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 33, 36, 37, 38, 40, 43, 44, 45, 46, 48, 51], "jointstat": [3, 5], "joint_state_control": [3, 5, 15], "ros__paramet": [3, 5, 36, 44, 45, 51], "jointstatecontrol": [3, 5, 15], "action": [3, 5, 8, 42], "cart_pole_control": [3, 5], "follow_joint_trajectori": [3, 5, 44], "followjointtrajectori": [3, 5, 42, 44], "joint_trajectory_control": [3, 5, 6, 15, 18, 34, 47], "write_op_mod": [3, 5], "contain": [3, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 36, 42, 43, 45, 48, 51], "content": [3, 14, 27, 35], "There": [3, 4, 5, 9, 11, 14, 16, 21, 24, 25, 26, 35, 43, 44], "meter": [3, 5, 27], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 13, 27], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 12, 13], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 43, 44], "example_gripp": [3, 5], "iron": [4, 16, 27], "want": [4, 8, 9, 16], "download": [4, 16], "mkdir": [4, 16], "p": [4, 9, 16, 42], "src": [4, 14, 16, 18, 27, 29, 31, 35], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 16, 27], "org": [4, 6, 30, 32, 50], "ros_control": [4, 6, 7, 54], "vc": [4, 16], "import": [4, 14, 16, 27, 35, 42], "rosdep": [4, 16], "rosdistro": [4, 16], "sudo": [4, 9, 16], "apt": [4, 16], "path": [4, 7, 16, 27, 44], "ignor": [4, 9, 16, 33, 42, 48, 49], "r": [4, 16, 28], "y": [4, 16, 22, 24, 25, 31, 37, 40], "everyth": [4, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35], "opt": [4, 16, 18], "setup": [4, 13, 14, 16, 18, 22, 27, 29, 35, 43], "sh": [4, 16, 18, 29], "colcon": [4, 14, 16, 27, 35], "symlink": [4, 16, 27], "folder": [4, 7, 14, 16, 18, 19, 22, 30, 31, 32, 35, 48, 50], "found": [4, 9, 10, 14, 18, 19, 22, 31, 33, 35, 38, 44, 54], "github": [4, 6, 10, 16, 27, 34, 52, 53, 54], "figur": [4, 43], "uml": 4, "diagram": [4, 15], "intern": [4, 6, 8, 12, 14, 18, 20, 21, 22, 23, 24, 25, 26, 28, 31, 43, 44], "cm": [4, 9], "abstract": [4, 7, 11, 27], "side": [4, 6, 7], "entri": [4, 35], "point": [4, 27, 35, 42, 43, 44, 54], "servic": [4, 6, 9, 11, 27, 34], "executor": [4, 9], "custom": [4, 12, 13, 16, 21, 22, 37, 41, 52], "howev": [4, 6, 8, 9, 16, 20, 27], "recommend": [4, 7, 14], "ros2_control_nod": [4, 23, 27], "controller_manag": [4, 5, 6, 9, 15, 23, 34, 35, 36, 44, 45, 51], "assum": [4, 8], "On": [4, 27], "hand": [4, 27, 53], "unload": [4, 9, 15], "match": [4, 16, 43], "report": [4, 6, 41, 54], "error": [4, 6, 9, 14, 20, 23, 27, 35, 41, 42, 44], "execut": [4, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 39, 42, 43, 44, 50], "loop": [4, 7, 9, 13, 18, 23, 24, 25, 26, 27, 28, 29, 35, 41, 42, 44, 48], "output": [4, 6, 7, 12, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 37], "driver": [4, 7, 16, 27, 53], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 53], "encod": [4, 27], "theori": [4, 54], "compar": [4, 6, 7], "refer": [4, 8, 20, 27, 53], "measur": [4, 13, 21, 31, 37, 41, 42, 53], "calcul": [4, 27, 31, 43, 48], "input": [4, 6, 7, 8, 12, 19, 20, 27, 31, 33, 36, 38, 42, 43, 45, 48, 49, 51], "object": [4, 27], "deriv": [4, 42, 43], "controller_interfac": [4, 15, 27, 31, 35, 37, 40, 46], "export": [4, 8, 9, 14, 16, 27, 31, 35], "plugin": [4, 9, 11, 12, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 31, 35, 47], "forwardcommandcontrol": [4, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29], "lifecyclenod": 4, "document": [4, 6, 7, 12, 13, 14, 16, 22, 33, 34, 43, 44], "interact": [4, 7, 9, 15, 19, 27, 29], "srv": [4, 44], "controller_manager_msg": 4, "while": [4, 6, 7, 27, 43], "directli": [4, 18, 20, 29, 54], "line": [4, 10, 11, 14, 18, 27, 35, 41, 43], "friendli": 4, "cli": [4, 9, 10, 15, 18, 19, 22, 23, 24, 25, 26, 28, 29], "auto": [4, 9], "complet": [4, 11, 20, 27, 43], "rang": [4, 12, 34], "common": [4, 6, 16, 41, 54], "capabl": [4, 6], "realiz": [4, 7, 43, 44], "repres": [4, 11, 27, 33, 34, 43], "dynam": [4, 14, 27, 35], "dof": [4, 12, 16, 27, 39], "differ": [4, 6, 7, 12, 14, 16, 18, 19, 22, 23, 27, 36, 37, 41, 43, 45, 48, 51], "transmiss": [4, 16], "humanoid": 4, "logic": 4, "channel": [4, 53], "kuka": [4, 18, 23, 24, 25, 53], "rsi": [4, 18, 24, 25, 53], "relat": [4, 6, 7], "forc": [4, 7, 12, 15, 24, 25, 31, 34, 53], "torqu": [4, 12, 24, 25, 31, 34], "simpl": [4, 6, 7, 8, 14, 16, 18, 20, 22, 27, 28, 35, 39], "valv": [4, 12], "mandatori": [4, 9, 37, 42], "dc": 4, "arduino": [4, 21, 26], "board": 4, "modular": [4, 7, 16, 27], "independ": [4, 7, 25], "explan": [4, 9, 14], "given": [4, 9, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 36, 42, 43, 44, 45, 51], "through": [4, 6, 7, 8, 9, 14, 15, 16, 20, 27, 35, 44, 54], "tag": [4, 9, 12, 14, 16, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 35, 54], "chosen": [4, 12], "structur": [4, 6, 8, 9, 14, 27, 33, 35, 42, 43], "track": [4, 30, 50, 54], "togeth": [4, 8, 12, 22, 24, 48], "xacro": [4, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "hereund": 4, "rrbot": [4, 12, 15, 16, 19, 21, 23, 24, 25, 26, 28], "effector": [4, 53], "site": 4, "rrbotsystempositiononli": [4, 25], "ros2_control_demo_hardwar": [4, 12, 15], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 12], "joint1": [4, 12, 13, 15, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 44], "joint2": [4, 12, 15, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 44], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 12, 24, 25], "frame_id": [4, 12, 24, 25, 37, 40, 46, 48], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 13, 22, 27, 29, 42], "pure": 4, "stack": [4, 7, 54], "could": [4, 7, 8, 16, 23, 35, 41, 44], "altern": [4, 18, 44], "script": [4, 6, 14, 35], "skeleton": 4, "sim": [5, 15, 52], "dockerfil": [5, 16], "Then": [5, 8, 16, 27, 29, 43], "ign": 5, "meet": [5, 54], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 13, 14, 23, 33, 40, 41, 44, 54], "gener": [6, 7, 12, 14, 15, 21, 22, 23, 24, 25, 26, 27, 34, 35, 44, 48, 54], "task": [6, 7, 33], "envis": 6, "simul": [6, 13, 15, 16, 18, 20, 22, 24, 25, 27], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 16, 54], "place": [6, 35], "draft": 6, "gpio": [6, 16, 27], "mode": [6, 8, 14, 20, 23, 31, 42, 43, 48], "switch": [6, 15, 16, 18, 23], "movement": 6, "safeti": [6, 27], "skill": 6, "prefer": 6, "c": [6, 9, 12, 14, 15, 18, 27], "familiar": [6, 54], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 46], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 11, 12, 44], "easi": 6, "therefor": [6, 8, 9, 16, 35, 41, 42, 44], "often": [6, 13, 22, 35, 41], "orchestr": 6, "purpos": [6, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29], "conductor": 6, "scenario": [6, 43], "moment": [6, 8, 44], "right": [6, 16], "replac": [6, 11, 34, 44], "high": [6, 9, 43], "moveit2": [6, 7, 34, 53], "simplecontrollermanag": 6, "goal": [6, 7, 12, 18, 23, 24, 25, 26, 28, 29, 39, 42, 44, 54], "form": [6, 16], "behavior": [6, 13, 27, 43], "benchmark": 6, "statu": [6, 8, 11, 15, 18, 42], "format": [6, 27, 31, 41, 44], "preset": 6, "modul": [6, 20], "reli": 6, "doubl": [6, 13, 18, 27, 30, 32, 39, 42, 46, 48, 50], "desir": [6, 42, 44], "both": [6, 7, 20, 27, 28, 41, 42, 43, 44], "improv": 6, "readabl": [6, 27], "earlier": 6, "concept": [6, 7, 8, 13, 16, 18], "introduc": [6, 7, 8, 18, 27], "essenti": [6, 18], "group": [6, 8, 9, 12, 44, 54], "instanc": [6, 9, 20, 41], "imu": [6, 12, 34], "typic": [6, 12, 22, 41, 42], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 20], "struct": 6, "low": [6, 7], "profil": 6, "relev": [6, 42, 48, 54], "addition": [6, 27, 30, 32, 50, 54], "few": [6, 7, 34], "175": 6, "rewrit": [6, 54], "rich": 6, "wa": [6, 14, 18, 22, 23, 27, 35, 43], "motiv": 6, "adopt": 6, "port": [6, 11, 12], "quit": 6, "miss": [6, 41, 43, 44], "diff_drive_control": [6, 8, 15, 22], "consist": [6, 44, 54], "onc": [6, 7, 18, 22, 23, 24, 25, 27, 28, 34], "identifi": [6, 27], "much": [6, 8, 18, 21, 22, 23, 24, 25, 26, 28, 35, 44], "303": 6, "304": 6, "stretch": 6, "81": 6, "302": 6, "unit": 6, "gmock": 6, "cc": [7, 43, 44], "BY": [7, 43, 44], "licens": [7, 43, 44], "author": [7, 8], "either": [7, 18, 23, 24, 25, 26, 28, 29, 43], "down": [7, 27], "below": [7, 9, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 42, 43, 44], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 34, 49], "control": [7, 10, 11, 12, 13, 14, 15, 16, 30, 32, 37, 40, 41, 42, 43, 46, 49, 50, 53, 54], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 27], "share": [7, 14, 27, 29, 35, 48], "well": [7, 9, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28, 44], "perform": [7, 9, 27], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 14, 35], "top": 7, "virtual": [7, 8, 32], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 18, 27], "explicit": [7, 9, 27, 42], "chain": [7, 10, 15, 16, 27, 31, 42, 48], "emerg": 7, "handler": 7, "mock": [7, 10, 14], "usag": [7, 8, 9, 12, 15, 17, 18, 20, 21, 22, 23, 24, 25, 26, 28], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 35], "focu": [7, 8], "becom": [7, 20], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 34], "practic": 7, "tip": [7, 27], "hot": 7, "shown": [7, 27, 43], "furthermor": [7, 22], "offer": [7, 9, 14, 27], "expos": [7, 16, 20], "problem": [7, 54], "manipul": [7, 16, 18, 20, 27, 28, 42], "plan": [7, 54], "autonom": 7, "navig": 7, "ideal": [7, 13], "made": [7, 11], "mobil": [7, 16, 22, 33, 48, 49], "arm": [7, 18, 20, 28], "extra": [7, 27, 41], "readi": [7, 14, 16, 20, 34, 35], "studi": 7, "ur": 7, "With": [7, 27, 29, 44], "moveit": [7, 13], "ingredi": 7, "run": [7, 8, 9, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 34, 43, 48], "scale": [7, 42], "factor": 7, "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 14, 35], "trajectori": [7, 18, 27, 34, 42, 54], "admitt": [7, 34], "One": [7, 8], "reason": [7, 8, 9, 27], "upgrad": 7, "ros1": [7, 16], "better": 7, "realtim": [7, 9, 27, 33, 44, 49, 54], "contact": 7, "insert": 7, "singl": [7, 24, 39], "waypoint": [7, 43, 44], "mani": [7, 27, 34, 35], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 16, 22, 27, 30, 31, 32, 48, 50], "acceler": [7, 16, 23, 27, 31, 33, 40, 42, 43, 44, 49], "jerk": [7, 33, 49], "obei": [7, 27], "demo": [7, 12], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 27], "cycl": [7, 27, 34], "_control": [7, 16], "wild": 7, "materi": 7, "quick": [7, 11], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 13, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 34, 42, 44, 54], "done": [7, 8, 14, 18, 21, 22, 23, 24, 25, 26, 27, 28, 34, 35], "look": [7, 22], "modifi": 7, "simpli": [7, 9, 18, 43, 44], "edit": 7, "collect": [7, 36, 45, 51], "semant": [7, 12, 31, 37, 40, 46], "monolit": 7, "controlko": 7, "propos": [8, 54], "minim": [8, 54], "viabl": [8, 27], "serial": [8, 27], "tri": [8, 42], "clariti": 8, "arbitrari": [8, 27, 44], "order": [8, 27], "nevertheless": 8, "convinc": 8, "would": [8, 41], "unnecessari": 8, "long": 8, "term": [8, 54], "clearer": 8, "let": [8, 16, 18, 20, 21, 22, 23, 24, 25, 26, 28], "yet": [8, 9, 16, 20, 33, 43, 44], "controllers_chain": 8, "doc": [8, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 54], "position_track": 8, "pid": [8, 42, 43, 44, 54], "now": [8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 43], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 14, 16, 35, 43, 54], "At": [8, 14, 20, 35], "attach": 8, "disabl": [8, 13, 48], "subscrib": [8, 19, 20, 27], "differenti": [8, 16, 22, 32, 33, 34, 54], "interfaceconfigur": [8, 27], "input_interface_configur": 8, "const": [8, 11, 27], "anoth": [8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 44], "simplic": [8, 27], "try": [8, 27], "exclus": [8, 27], "rather": [8, 16, 43], "void": 8, "set_chained_mod": 8, "bool": [8, 39, 42, 48], "flag": [8, 14, 35, 42], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 15, 31, 35, 44, 48], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 33], "cmd_vel_unstamp": [8, 22, 33], "Its": [8, 54], "continu": [8, 42, 43, 44], "chainabl": [8, 16, 20, 33, 44], "ownership": 8, "process": [8, 14, 27, 35, 43], "claim": [8, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "vector": [8, 20, 27, 35], "invers": [8, 27], "rule": [8, 9, 14, 35], "think": [8, 16], "break": [8, 13], "middl": [8, 32], "unavail": [8, 20], "anyth": 8, "confus": 8, "irelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 27, 42], "linux": 9, "comput": [9, 16, 33, 48, 49], "throughput": 9, "suit": 9, "easiest": [9, 14, 35], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 27], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 27], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 15, 27, 33, 44], "log": 9, "again": [9, 11, 18, 22, 27], "hardware_components_initial_st": 9, "map": [9, 13, 41, 44], "attribut": [9, 27], "full": [9, 14, 16, 35], "unconfigur": [9, 11, 18, 27], "arm1": 9, "arm2": 9, "inact": [9, 15, 18, 23, 27, 34], "base3": 9, "empti": [9, 35, 40, 44, 48], "update_r": [9, 34, 36, 45, 51], "integ": [9, 34], "frequenc": [9, 34], "startup": 9, "h": [9, 14, 15, 35], "param_fil": 9, "n": 9, "namespac": [9, 14, 27, 34, 35, 41], "controller_typ": 9, "timeout": [9, 15, 39, 42, 48, 49], "controller_manager_timeout": 9, "argument": [9, 14, 15, 18, 21, 22, 23, 24, 25, 26, 28], "exit": [9, 15], "leav": 9, "kill": [9, 15, 27], "wait": [9, 15, 26, 42], "until": [9, 27, 42, 43], "mai": [9, 11, 24, 34, 36, 45, 51], "taken": [9, 48], "becaus": [9, 12, 18, 20, 21, 22, 23, 24, 25, 26, 28, 43], "rclcpp": [9, 14, 27, 35], "than": [9, 39, 42, 44, 48], "global": 9, "remap": 9, "forcibli": 9, "lead": [9, 44], "duplic": [9, 48], "occur": [9, 27], "whether": 9, "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28], "caus": [9, 43, 44, 48], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "std": [9, 27, 42], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 18], "broadcast": [9, 12, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 41], "achiev": [9, 27, 36, 45, 51], "return": [9, 11, 14, 18, 27, 35, 39, 41, 43], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 42], "doxygen": [10, 14], "cascad": 10, "return_typ": [11, 27, 35], "on_error": [11, 14, 27], "previous_st": [11, 27], "success": [11, 14, 27, 35, 39], "callbackreturn": [11, 14, 27], "failur": 11, "recov": 11, "reload": [11, 15], "substanti": 11, "renam": 11, "on_init": [11, 14, 27, 35], "baseinterfac": 11, "remov": 11, "base_interfac": 11, "hpp": [11, 14, 16, 27, 31, 35], "hardware_interface_status_valu": 11, "rclcpp_lifecycl": [11, 14, 27, 35], "strictli": [11, 12], "status_": 11, "in_deactiv": 11, "undefin": 11, "refern": 11, "symbol": 11, "node_interfac": [11, 27], "lifecyclenodeinterfac": [11, 14, 27], "rclcpp_lifecyl": 11, "cmakelist": [11, 14, 27, 35], "txt": [11, 14, 27, 35], "devic": [12, 53], "associ": 12, "joint_state_broadcast": [12, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "coupl": 12, "ship": 12, "cannot": [12, 20, 27, 44], "keyword": 12, "digit": 12, "signal": 12, "electr": 12, "analog": 12, "within": [12, 18], "vacuum": [12, 19], "flang": 12, "off": 12, "rrbotsystemmutiplegpio": 12, "example_param_hw_start_duration_sec": 12, "example_param_hw_stop_duration_sec": 12, "example_param_hw_slowdown": 12, "flange_digital_io": 12, "digital_output1": 12, "know": 12, "digital_output2": 12, "digital_input1": 12, "digital_input2": 12, "flange_analog_io": [12, 19], "analog_output1": [12, 19], "analog_input1": [12, 19], "analog_input2": [12, 19], "flange_vacuum": [12, 19], "suction": 12, "grasp": 12, "multimod": 12, "multimodalgripp": 12, "parallel_fing": 12, "temperatur": [12, 16], "feedback": [12, 13, 21, 41, 42, 44, 48, 49], "adjust": [12, 15, 18, 27], "calibr": 12, "2d": [12, 24, 25], "ft": [12, 24, 25, 37], "choic": [12, 48], "matric": 12, "rrbotforcetorquesensor2d": 12, "forcetorquesensor2dhardwar": 12, "fx": 12, "tz": 12, "kuka_tcp": 12, "fx_rang": 12, "tz_rang": 12, "temp_feedback": 12, "calibration_matrix_nr": 12, "mirror": 13, "correspond": [13, 14, 27, 35, 48, 54], "offlin": 13, "advantag": 13, "pipe": 13, "even": [13, 20, 44], "debug": 13, "boost": 13, "mimic": 13, "offset": [13, 41, 42], "fake": 13, "disable_command": 13, "boolean": [13, 34, 41, 42], "erron": [13, 27], "noth": 13, "suddenli": 13, "Or": [13, 18, 23, 24, 25, 26, 28, 29], "mock_sensor_command": 13, "position_state_following_offset": 13, "custom_interface_with_following_offset": 13, "compil": [14, 27, 29, 35], "prepar": [14, 23, 35], "ament_cmak": [14, 35], "search": [14, 35], "recent": [14, 35], "pkg": [14, 35], "package_nam": [14, 35], "alreadi": [14, 15, 16, 18, 20, 27, 29, 34, 35, 44], "robot_hardware_interface_nam": 14, "visibility_control": [14, 35], "window": [14, 35], "copi": [14, 35], "prefix": [14, 31, 35, 37, 40, 46], "guard": [14, 35], "ifndef": [14, 35], "preprocessor": [14, 35], "engin": [14, 35], "friend": [14, 35], "interface_typ": [14, 35], "uniqu": [14, 27, 35], "written": [14, 21, 26, 27, 35], "snake_cas": [14, 35], "interfacetyp": 14, "hardwareinterfacenam": 14, "public": [14, 27, 35], "on_cleanup": [14, 27], "on_shutdown": [14, 27], "overrid": [14, 27, 35, 36, 44, 45, 51], "export_state_interfac": [14, 27], "export_command_interfac": [14, 27], "prepare_command_mode_switch": 14, "perform_command_mode_switch": 14, "further": [14, 35], "exact": [14, 35], "simplifi": [14, 27, 35, 54], "valid": [14, 16, 46], "fine": [14, 22, 35], "otherwis": [14, 16, 35, 41, 42], "opposit": [14, 35], "remind": 14, "joint_nam": [14, 31, 35, 42], "shutdown": [14, 27], "gracefulli": 14, "store": [14, 35], "close": [14, 35], "class_list_macro": [14, 27, 35], "my_hardware_interface_packag": 14, "robothardwareinterfacenam": 14, "second": [14, 15, 18, 20, 23, 24, 25, 26, 27, 28, 29, 35, 43, 54], "visibl": [14, 35], "mock_compon": [14, 22], "bottom": [14, 27, 35], "test_load_": [14, 35], "load_generic_system_2dof": 14, "test_generic_system": 14, "find_packag": [14, 35], "directori": [14, 35], "ament": [14, 35], "cmake": 14, "pluginlib_export_plugin_description_fil": [14, 27, 35], "ament_cmake_gmock": [14, 35], "ament_add_gmock": [14, 35], "ament_export_librari": [14, 35], "ament_packag": [14, 35], "test_depend": [14, 35], "rememb": [14, 35], "root": [14, 35], "workspac": [14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35], "enjoi": [14, 35], "great": [14, 35], "templat": [14, 16, 27, 35], "shell": [14, 35], "onward": 14, "spin": 15, "spin_tim": 15, "hidden": 15, "discoveri": 15, "daemon": 15, "test_controller_nam": 15, "test_control": 15, "diffdrivecontrol": [15, 22], "verbos": 15, "label": [15, 21, 22, 24, 25, 26, 43], "unclaim": [15, 20, 23], "ctrl1": 15, "ctrl2": 15, "strict": 15, "asap": 15, "switch_timeout": 15, "tmp": 15, "controller_diagram": 15, "gv": 15, "pdf": [15, 27], "demonstr": [16, 18, 20, 22, 23, 28, 29], "prove": 16, "checkout": 16, "roscon2022_workshop": 16, "hardwareinterfac": [16, 27], "diffbot": 16, "degre": [16, 27, 44, 48], "freedom": [16, 27, 48], "components_architecture_and_urdf_exampl": 16, "revolut": [16, 18, 20, 27, 28], "drive": [16, 22, 30, 32, 33, 34, 48, 49, 50, 54], "accord": [16, 22, 27], "intermedi": 16, "car": 16, "steer": [16, 30, 32, 34, 48, 49, 50], "tba": 16, "tabl": 16, "offici": [16, 53], "easili": 16, "aptitud": 16, "might": [16, 43], "own": [16, 18, 27], "git": [16, 27], "clone": [16, 27], "b": [16, 27], "merg": 16, "f": 16, "procedur": 16, "rviz2": [16, 18, 29], "visual": [16, 18, 25, 27, 41], "joint_state_publisher_gui": [16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "bring": 16, "ros2_control_demo_example_1": [16, 18], "view_robot": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "omit": 16, "termin": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "example_1": [16, 18, 19, 20, 29], "rviz": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 41], "slider": 16, "around": [16, 37, 40, 42, 46], "ros2_control_demo_example_2": [16, 22], "come": [16, 44], "categori": 16, "individu": [16, 35, 46], "position_in_degre": 16, "hardware_interface_type_valu": [16, 31], "6dof": 16, "variou": [18, 28], "invert": 18, "pendulum": 18, "fun": 18, "proprietari": [18, 21, 22, 23, 24, 25, 26, 28], "view": [18, 27], "recreat": 18, "robotmodel": 18, "displai": [18, 20, 21, 23, 24, 25, 26, 28, 29], "ros2_control_demo_descript": 18, "ok": [18, 21, 22, 23, 24, 25, 26, 27, 28, 35], "warn": [18, 21, 22, 23, 24, 25, 26, 28, 41], "invalid": [18, 21, 22, 23, 24, 25, 26, 28], "frame": [18, 21, 22, 23, 24, 25, 26, 27, 28, 37], "odom": [18, 21, 22, 23, 24, 25, 26, 28, 33, 48], "cantransform": [18, 21, 22, 23, 24, 25, 26, 28], "target_fram": [18, 21, 22, 23, 24, 25, 26, 28], "happen": [18, 21, 22, 23, 24, 25, 26, 27, 28], "ctrl": 18, "lot": [18, 20, 21, 22, 23, 24, 25, 26, 28], "exemplari": [18, 21, 23, 24, 25, 26, 28, 30, 32, 48, 50], "orang": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "yellow": [18, 20, 21, 23, 24, 25, 26, 28, 29], "rectangl": [18, 20, 21, 23, 24, 25, 26, 28], "introspect": [18, 20, 21, 22, 23, 24, 25, 26, 28], "list_hardware_interfac": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "entrypoint": 18, "nomin": 18, "marker": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "list_control": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "jointstatebroadcast": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "forward_position_control": [18, 19, 20, 23, 24, 25, 26, 28, 29], "forward_command_control": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 45, 51], "pub": [18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "std_msg": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 38, 45, 51], "float64multiarrai": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 36, 38, 45, 51], "everi": [18, 23, 24, 25, 26, 27, 28, 29, 34, 38, 42, 54], "test_forward_position_control": [18, 23, 24, 25, 26, 28, 29], "block": [18, 20, 21, 23, 24, 25, 26, 27, 28], "got": [18, 19, 20, 21, 22, 23, 24, 25, 26], "50000": [18, 20, 24, 25, 26], "echo": [18, 19, 20, 22, 24, 25, 29], "joint_stat": [18, 20, 22, 29, 41], "dynamic_joint_st": [18, 20, 29, 41], "load_control": 18, "joint_trajectory_position_control": 18, "successfulli": [18, 21, 26], "set_controller_st": 18, "rrbot_control": [18, 19, 20, 28, 29], "four": [18, 21, 30], "test_joint_trajectory_control": 18, "rrbot_joint_trajectory_publish": 18, "rrbot_descript": [18, 19, 20, 21, 23, 24, 25, 26, 28, 29], "rrbot_forward_position_publish": [18, 29], "ros2_control_demo_example_10": 19, "contrast": 19, "gpio_control": 19, "gpiocontrol": 19, "interface_nam": [19, 37, 38], "1199574016": 19, "1676318848": 19, "rrbotsystemwithgpiohardwar": 19, "gp": 19, "example_12": 20, "been": 20, "known": 20, "passthrough_control": 20, "ros2_control_demo_example_12": 20, "ident": [20, 22, 27, 29, 43], "joint2_position_control": 20, "passthroughcontrol": 20, "joint1_position_control": 20, "someth": 20, "automat": [20, 27, 29, 33, 49], "appear": 20, "whose": [20, 43], "henc": [20, 27], "launch_chained_control": 20, "position_control": [20, 34, 38], "streamlin": 20, "clearli": 20, "sent": [20, 42], "reflect": 20, "canopen_402": [21, 26], "modbu": [21, 26], "rs232": [21, 26], "rs485": [21, 26], "ros2_control_demo_example_14": 21, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 21, "list_hardware_compon": [21, 22, 24, 25, 26], "rrbotmodularjoint2": [21, 26], "rrbotactuatorwithoutfeedback": 21, "rrbotmodularjoint1": [21, 26], "rrbotmodularpositionsensorjoint2": 21, "rrbotsensorpositionfeedback": 21, "rrbotmodularpositionsensorjoint1": 21, "forward_velocity_control": [21, 23], "000000": 21, "00000": [21, 22, 23], "25300": 21, "rrbot_actuator_without_feedback": 21, "rrbot_sensor_for_position_feedback": 21, "example_2": 22, "excess": 22, "print": [22, 41], "left_wheel_joint": 22, "right_wheel_joint": 22, "diffbot_base_control": 22, "diff": 22, "geometry_msg": [22, 24, 25, 33, 37, 48], "twist": [22, 33, 48, 49], "linear": [22, 27, 33, 40, 43, 48, 49], "angular": [22, 33, 40, 48, 49], "circl": 22, "diffbotsystemhardwar": 22, "33333": 22, "faster": 22, "genericsystem": 22, "use_mock_hardwar": 22, "true": [22, 29, 33, 42, 43, 44, 48], "calculate_dynam": 22, "diffbot_control": 22, "diffbot_descript": 22, "diffbot_system": 22, "example_3": 23, "fri": [23, 53], "abb": [23, 53], "yumi": 23, "schunk": [23, 53], "lwa4p": 23, "illeg": 23, "declin": 23, "faulti": 23, "ros2_control_demo_example_3": 23, "rrbot_system_multi_interfac": 23, "robot_control": [23, 27], "spawn": 23, "forward_acceleration_control": 23, "velocity_control": [23, 34, 38], "jointgroupvelocitycontrol": 23, "rrbotsystemmultiinterfacehardwar": 23, "po": [23, 43], "78500": 23, "vel": [23, 48], "acc": 23, "control_lvl": 23, "forward_illegal1_control": 23, "forward_illegal2_control": 23, "1676209982": 23, "531163501": 23, "resource_manag": 23, "rrbotsystemmultiinterfac": 23, "did": 23, "531223835": 23, "sinc": [23, 27, 32], "reject": [23, 42, 43], "spawner": 23, "531717376": 23, "spawner_forward_illegal1_control": 23, "indic": [23, 27], "rrbot_multi_interface_forward_control": 23, "krc": 24, "prototyp": 24, "odri": [24, 53], "ros2_control_demo_example_4": 24, "rrbot_system_with_sensor": 24, "rrbotsystemwithsensor": 24, "rrbotsystemwithsensorhardwar": 24, "fts_broadcast": [24, 25], "force_torque_sensor_broadcast": [24, 25], "forcetorquesensorbroadcast": [24, 25], "wrench": [24, 25, 31], "republish": [24, 25], "wrenchstamp": [24, 25, 37], "stamp": [24, 25, 48], "sec": [24, 25], "1676444704": [24, 25], "nanosec": [24, 25], "332221422": [24, 25], "tool_link": [24, 25], "946532964706421": 24, "nan": [24, 42], "0540995597839355": 24, "rrbot_with_sensor_control": 24, "pc": 25, "3d": [25, 27], "ros2_control_demo_example_5": 25, "rrbot_system_with_external_sensor": 25, "externalrrbotftsensor": 25, "externalrrbotforcetorquesensorhardwar": 25, "2126582860946655": 25, "3202226161956787": 25, "4302282333374023": 25, "540233612060547": 25, "647800624370575": 25, "7602499723434448": 25, "rrbot_with_external_sensor_control": 25, "rrbot_system_position_onli": 25, "external_rrbot_force_torque_sensor": 25, "mara": 26, "ros2_control_demo_example_6": 26, "rrbot_modular_actu": 26, "rrbotmodularjoint": 26, "rrbot_actu": 26, "queri": [27, 44], "enhanc": 27, "deploi": 27, "oper": [27, 54], "pattern": 27, "vendor": 27, "runtim": 27, "program": 27, "conform": 27, "newest": 27, "characterist": 27, "tree": [27, 33], "primari": [27, 44], "commerci": 27, "scratch": 27, "illustr": 27, "stl": 27, "dae": 27, "coars": 27, "mesh": 27, "fast": [27, 53], "collis": 27, "express": 27, "vertic": 27, "transform": 27, "rotat": [27, 33, 42], "translat": [27, 33, 49], "proxim": 27, "face": 27, "co": 27, "planer": 27, "xy": 27, "plane": 27, "align": 27, "blender": 27, "begin": 27, "neg": [27, 42], "roll": 27, "pitch": 27, "yaw": 27, "repeat": 27, "robot_6_dof": 27, "base_link": [27, 48, 49], "link_0": 27, "inerti": 27, "mass": 27, "inertia": 27, "ixx": 27, "ixi": 27, "ixz": 27, "iyi": 27, "iyz": 27, "izz": 27, "tool0": 27, "base_joint": 27, "joint_1": 27, "link_1": 27, "061584": 27, "141592653589793": 27, "name_spac": 27, "class_nam": 27, "pi": [27, 42], "enclos": 27, "previous": 27, "left": 27, "zero": [27, 31, 42, 43], "rel": [27, 43], "center": 27, "uniform": 27, "consecut": 27, "motion": [27, 42], "subsequ": 27, "join": [27, 54], "speci": 27, "verifi": 27, "urdf_to_graphviz": 27, "r6bot": 27, "explain": 27, "robotsystem": 27, "ur5": 27, "five": 27, "hardware_interface_return_valu": 27, "hardware_interface_publ": 27, "commandinterfac": 27, "durat": 27, "period": [27, 42], "privat": 27, "memori": [27, 35], "alloc": 27, "establish": 27, "angl": [27, 32, 48], "notabl": 27, "vari": 27, "fill": 27, "field": [27, 41, 43], "suppos": [27, 43], "tcp_force_torque_sensor": 27, "Their": 27, "pointer": 27, "info_": 27, "state_interfaces_": 27, "nearli": 27, "previou": [27, 43, 54], "command_interfaces_": 27, "constraint": [27, 35, 39, 40, 42, 44, 48], "respons": 27, "turn": 27, "oppos": [27, 44], "tcp": [27, 31], "packet": 27, "robot_6_dof_hardwar": 27, "discov": 27, "library_nam": 27, "base_class_typ": 27, "human": 27, "notic": [27, 43], "just": 27, "add_librari": 27, "robot_hardwar": 27, "unlik": 27, "finit": 27, "certain": [27, 36, 45, 51], "transit": [27, 34, 43], "robotcontrol": 27, "nine": 27, "six": [27, 37], "callback": 27, "lifetim": 27, "restart": 27, "reconfigur": 27, "buffer": [27, 54], "reset": [27, 48], "transfer": 27, "eventu": 27, "mutex": 27, "guarante": [27, 43], "never": 27, "release_interfac": 27, "shut": 27, "free": [27, 33], "cleanup": 27, "r6bot_control": 27, "view_r6bot": 27, "ros2_control_demo_example_7": 27, "send_trajectori": 27, "circular": 27, "ros2_control_demo_example_8": 28, "rrbot_transmissions_system_position_onli": 28, "rrbottransmissionssystempositiononlyhardwar": 28, "transmission1": 28, "actuator1": 28, "transmission2": 28, "actuator2": 28, "383253": 28, "766505": 28, "53301": 28, "example_9": 29, "later": [29, 43], "ros2_control_demo_example_9": 29, "rrbot_gazebo_class": 29, "usr": 29, "ax": [30, 32, 37, 40, 50], "wheel": [30, 32, 33, 48, 50], "traction": [30, 32, 48, 49, 50], "steerabl": [30, 32, 50], "generate_parameter_librari": [30, 31, 32, 38, 39, 40, 48, 50], "parameter": [30, 32, 48, 50], "front_wheel_track": 30, "front": [30, 31, 32, 48, 50], "length": [30, 40, 48, 50], "en": [30, 32, 50], "wikipedia": [30, 32, 48, 50, 54], "wiki": [30, 32, 43, 44, 50], "wheelbas": [30, 32, 50], "rear_wheel_track": 30, "rear": [30, 32, 48, 50], "distanc": [30, 32, 44, 46, 50], "front_wheels_radiu": [30, 50], "radiu": [30, 32, 50], "rear_wheels_radiu": [30, 50], "chainedcontrollerinterfac": 31, "joint_refer": 31, "trajectory_msg": [31, 43, 44], "jointtrajectorypoint": [31, 43], "admittancecontrollerst": 31, "ft_sensor": 31, "sensor_nam": [31, 37, 40, 46], "ackermann": [32, 34, 48], "vehicl": 32, "probabl": 32, "front_wheel_radiu": 32, "rear_wheel_radiu": 32, "bodi": 33, "odometri": [33, 48, 49], "space": [33, 44], "hw_if_posit": [33, 34, 48], "hw_if_veloc": [33, 34, 48], "position_feedback": [33, 48], "twiststamp": [33, 48], "use_stamped_vel": [33, 48], "nav_msg": [33, 48], "estim": 33, "tf": [33, 48], "tf2_msg": [33, 48], "tfmessag": [33, 48], "enable_odom_tf": [33, 48], "cmd_vel_out": 33, "publish_limited_veloc": 33, "jointlimit": 33, "joint_limit": 33, "commonli": 34, "bicycl": [34, 48], "effort_control": [34, 38], "hw_if_acceler": 34, "hw_if_effort": 34, "represent": [34, 44], "rqt_joint_trajectory_control": [34, 44], "onconfigur": 34, "configure_control": 34, "unsign": 34, "unspecifi": 34, "is_async": 34, "asynchron": 34, "controllernam": 35, "protect": 35, "reserv": 35, "importantli": 35, "ask": [35, 41], "sort": 35, "controller_name_namespac": 35, "controller_name_packag": 35, "ros2_control_test_asset": 35, "special": [36, 43, 45, 51], "hz": [36, 39, 45, 51], "wrapper": [37, 40, 46], "forcetorquesensor": 37, "6d": 37, "per": 37, "less": [37, 48], "example_nam": 37, "example_interfac": 37, "feedforward": 38, "multi_interface_forward_command_control": 38, "string_arrai": [38, 48], "action_monitor_r": [39, 42, 44], "greater": [39, 42], "equal": [39, 40], "goal_toler": 39, "max_effort": 39, "allow_stal": 39, "stall": 39, "stall_velocity_threshold": 39, "threshold": 39, "001": 39, "stall_timeout": 39, "imusensor": 40, "orient": 40, "angular_veloc": 40, "linear_acceler": 40, "static_covariance_orient": 40, "double_arrai": [40, 48], "static": 40, "covari": [40, 48], "row": 40, "static_covariance_angular_veloc": 40, "static_covariance_linear_acceler": 40, "unless": 41, "latter": 41, "matrix": [41, 48], "product": 41, "use_local_top": 41, "my_state_broadcast": 41, "arrai": 41, "extra_joint": 41, "map_interface_to_joint_st": 41, "usecas": 41, "hydraul": [41, 42], "relianc": 41, "techniqu": 41, "slightli": 41, "custom_interfac": 41, "kf_estimated_posit": 41, "derived_veloc": 41, "derived_effort": 41, "torque_sensor": 41, "current_sensor": 41, "command_joint": 42, "jtc": 42, "monitor": [42, 44], "allow_partial_joints_go": [42, 44], "allow_integration_in_goal_trajectori": [42, 43], "interpolation_method": 42, "interpol": [42, 44], "spline": 42, "open_loop_control": [42, 44], "gain": 42, "numer": 42, "numeric_limit": 42, "quiet_nan": 42, "start_with_hold": 42, "hold": [42, 43], "allow_nonzero_velocity_at_trajectory_end": 42, "cmd_timeout": 42, "stale": 42, "count": 42, "goal_tim": [42, 44], "toler": [42, 44], "jointtrajectori": [42, 43, 44], "stopped_velocity_toler": [42, 44], "deviat": 42, "maxim": 42, "reach": [42, 43, 44], "predefin": 42, "infinit": 42, "amount": 42, "law": [42, 44], "k_": 42, "ff": 42, "v_d": 42, "k_p": 42, "k_i": 42, "sum": 42, "dt": 42, "k_d": 42, "angle_wraparound": 42, "i_clamp": 42, "clamp": 42, "symmetr": 42, "ff_velocity_scal": 42, "feed": 42, "wrap": [42, 44], "ie": [42, 43], "shortest": 42, "s_d": 42, "saniti": 43, "sampl": [43, 48], "segment": [43, 44], "fault": 43, "datapoint": 43, "deduc": 43, "nor": 43, "discourag": 43, "yield": 43, "discontinu": [43, 44], "cubic": 43, "quintic": 43, "heun": 43, "grid": 43, "10m": 43, "deduct": 43, "nonzero": 43, "inconsist": 43, "overshoot": 43, "timestamp": 43, "arriv": 43, "necessarili": 43, "discard": 43, "substitut": 43, "smarter": 43, "preserv": 43, "flat": 43, "grei": 43, "red": 43, "traj": 43, "time_from_start": 43, "splice": 43, "append": 43, "held": [43, 44], "smooth": [43, 54], "longer": 43, "slower": 43, "effect": 43, "Of": 43, "interest": 43, "adolfo": [43, 44], "rodriguez": [43, 44], "instant": 44, "citat": 44, "adapt": 44, "restrict": 44, "present": 44, "robust": 44, "clock": 44, "queu": 44, "joint3": 44, "joint4": 44, "joint5": 44, "joint6": 44, "preempt": 44, "cancel": 44, "notifi": 44, "abort": 44, "legal": 44, "subset": 44, "favor": 44, "violat": 44, "joint_trajectori": 44, "fire": 44, "sender": 44, "query_st": 44, "cumbersom": 44, "controller_st": [44, 48], "jointtrajectorycontrollerst": 44, "querytrajectoryst": 44, "footnot": 44, "rangesensor": 46, "radiation_typ": 46, "int": [46, 48], "radiat": 46, "ultrason": 46, "infrar": 46, "field_of_view": 46, "arc": 46, "rad": [46, 48], "min_rang": 46, "minimum": 46, "m": [46, 48], "max_rang": 46, "maximum": 46, "varianc": 46, "rqt": 47, "nomenclatur": 48, "unstamp": 48, "concret": 48, "tricylc": 48, "seer": 48, "front_steer": 48, "front_wheels_nam": 48, "rear_wheels_nam": 48, "traction_feedback_typ": 48, "in_chained_mod": 48, "reference_unstamp": 48, "tf_odometri": 48, "steeringcontrollerstatu": 48, "reference_timeout": 48, "unwant": 48, "danger": 48, "behaviour": 48, "rear_wheels_state_nam": 48, "front_wheels_state_nam": 48, "open_loop": 48, "velocity_rolling_window_s": 48, "number": 48, "averag": 48, "base_frame_id": 48, "odom_frame_id": 48, "twist_covariance_diagon": 48, "diagon": 48, "pose_covariance_diagon": 48, "pose": 48, "wheel_track": 50, "page": [52, 53], "isaac": 52, "webot": 52, "manufactur": 53, "franka": 53, "emika": 53, "xarm": 53, "flexiv": 53, "rizon": 53, "igu": 53, "commonplac": 53, "husarion": 53, "rosbot": 53, "xl": 53, "2r": 53, "pro": 53, "openmanipul": 53, "clearpath": 53, "jackal": 53, "j100": 53, "huski": 53, "a200": 53, "unoffici": 53, "iiwa": 53, "lbr": 53, "iiqka": 53, "eci": 53, "sunris": 53, "kss": 53, "egm": 53, "mitsubishi": 53, "rv1a": 53, "protocol": 53, "ethercat": 53, "canopen": 53, "svh": 53, "finger": 53, "dimens": 53, "haptic": 53, "odriv": 53, "ndi": 53, "pca9685": 53, "bit": 53, "pwm": 53, "servo": 53, "hoverboard": 53, "overcom": 54, "idea": 54, "wide": 54, "toolkit": 54, "unreleas": 54, "question": 54, "wg": 54, "wednesdai": 54, "announc": 54, "discours": 54, "googl": 54, "bug": 54, "tracker": 54, "reproduc": 54, "regard": 54, "built": 54, "gmt": 54}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "review": 0, "stat": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 16, 54], "process": [1, 9], "merg": 1, "write": [1, 11, 14, 27, 35], "document": [1, 8, 10, 54], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": 2, "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 14, 27, 38, 41, 44], "class": [2, 8], "interfac": [2, 4, 12, 15, 19, 23, 27, 28, 31, 33, 36, 38, 41, 44, 45, 48, 51], "control": [2, 3, 4, 5, 6, 8, 9, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 34, 35, 36, 38, 39, 44, 45, 48, 51, 52], "": [2, 33, 44, 48], "access": 2, "migrat": [2, 11], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 12, 16, 27, 31, 34, 54], "robothardwar": 2, "compon": [2, 4, 6, 11, 13, 14], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 16], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 16], "run": [3, 4, 5, 16], "demo": [3, 5, 6, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 27], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 35, 44], "mimic": [3, 5], "joint": [3, 5, 12, 13, 44], "simul": [3, 5, 29, 52], "plugin": [3, 5, 27], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 16], "binari": 4, "packag": [4, 16], "from": [4, 6, 11, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 48], "sourc": [4, 16], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 27, 33, 44, 48], "framework": 4, "robot": [4, 7, 16, 19, 21, 23, 24, 25, 26, 27, 28, 34, 53], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "mission": 6, "support": [6, 53], "semant": 6, "featur": [6, 10, 33, 44, 49], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 31, 33, 36, 38, 45, 51, 52], "meetup": 7, "munich": 7, "5": [7, 25], "2022": 7, "12": [7, 20], "industri": [7, 19, 24, 25, 28], "confer": 7, "10": [7, 19], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 20], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 33], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 13, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 45, 46, 48, 50, 51], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "guidelin": [11, 34], "best": [11, 34], "practic": [11, 34], "handl": 11, "error": 11, "happen": 11, "dure": 11, "read": 11, "call": 11, "foxi": 11, "newer": 11, "version": 11, "type": [12, 38, 41, 44], "sensor": [12, 24, 25, 37, 40, 46], "gpio": [12, 19], "exampl": [12, 16, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 43], "mock": 13, "gener": 13, "system": 13, "per": 13, "extern": [14, 25, 35], "refer": [14, 31, 33, 35, 44, 48], "command": [15, 31, 41, 44, 48, 49], "line": 15, "list_control": 15, "list_controller_typ": 15, "list_hardware_compon": 15, "list_hardware_interfac": 15, "load_control": 15, "reload_controller_librari": 15, "set_controller_st": 15, "switch_control": 15, "unload_control": 15, "view_controller_chain": 15, "what": 16, "you": 16, "can": 16, "find": 16, "thi": [16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29], "goal": 16, "overview": [16, 27], "local": 16, "debian": 16, "docker": 16, "view": 16, "quick": 16, "hint": 16, "1": [18, 44], "rrbot": [18, 20, 29], "step": [18, 20, 21, 22, 23, 24, 25, 26, 28, 29], "file": [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "14": 21, "modular": [21, 26], "actuat": [21, 26], "provid": 21, "state": [21, 31, 44, 48], "diffbot": 22, "3": 23, "multipl": 23, "4": 24, "integr": [24, 52], "connect": 25, "6": 26, "separ": 26, "commun": [26, 52, 54], "each": 26, "7": 27, "full": 27, "6dof": 27, "geometri": 27, "cmake": 27, "librari": 27, "launch": 27, "8": 28, "an": 28, "expos": 28, "transmiss": 28, "9": 29, "ackermann_steering_control": 30, "admitt": 31, "2": [31, 33, 36, 38, 45, 51], "topic": [31, 36, 38, 45, 51], "bicycle_steering_control": 32, "diff_drive_control": 33, "other": [33, 34, 44, 49], "feedback": 33, "subscrib": [33, 44, 48], "publish": [33, 44, 48], "mobil": 34, "manipul": 34, "broadcast": [34, 37, 40, 46], "common": 34, "new": 35, "effort_control": 36, "jointgroupeffortcontrol": 36, "forc": 37, "torqu": 37, "forward_command_control": 38, "gripper": 39, "action": [39, 44], "imu": 40, "joint_state_broadcast": 41, "detail": 42, "about": 42, "trajectori": [43, 44], "represent": 43, "interpol": 43, "method": 43, "none": 43, "spline": 43, "visual": 43, "replac": 43, "joint_trajectory_control": 44, "preemption": 44, "polici": 44, "servic": 44, "further": 44, "inform": 44, "position_control": 45, "jointgrouppositioncontrol": 45, "rang": 46, "rqt_joint_trajectory_control": 47, "steering_controllers_librari": 48, "execut": 48, "logic": 48, "preced": 48, "tricycle_control": 49, "veloc": 49, "tricycle_steering_control": 50, "velocity_control": 51, "jointgroupvelocitycontrol": 51, "host": 52, "welcom": 54, "iron": 54, "develop": 54, "organis": 54}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Reviewers\u2019 Stats": [[0, "reviewers-stats"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [16, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [11, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [13, "parameters"], [30, "parameters"], [31, "parameters"], [32, "parameters"], [33, "parameters"], [36, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [45, "parameters"], [46, "parameters"], [48, "parameters"], [50, "parameters"], [51, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Guidelines and Best Practices": [[11, "guidelines-and-best-practices"], [34, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[11, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[11, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[12, "ros2-control-hardware-interface-types"]], "Joints": [[12, "joints"]], "Sensors": [[12, "sensors"]], "GPIOs": [[12, "gpios"]], "Examples": [[12, "examples"], [16, "examples"]], "Mock Components": [[13, "mock-components"]], "Generic System": [[13, "generic-system"]], "Per-joint Parameters": [[13, "per-joint-parameters"]], "Writing a Hardware Component": [[14, "writing-a-hardware-component"]], "Useful External References": [[14, "useful-external-references"], [35, "useful-external-references"]], "Command Line Interface": [[15, "command-line-interface"]], "list_controllers": [[15, "list-controllers"]], "list_controller_types": [[15, "list-controller-types"]], "list_hardware_components": [[15, "list-hardware-components"]], "list_hardware_interfaces": [[15, "list-hardware-interfaces"]], "load_controller": [[15, "load-controller"]], "reload_controller_libraries": [[15, "reload-controller-libraries"]], "set_controller_state": [[15, "set-controller-state"]], "switch_controllers": [[15, "switch-controllers"]], "unload_controller": [[15, "unload-controller"]], "view_controller_chains": [[15, "view-controller-chains"]], "Demos": [[16, "demos"]], "What you can find in this repository": [[16, "what-you-can-find-in-this-repository"]], "Goals": [[16, "goals"]], "Examples Overview": [[16, "examples-overview"]], "Local installation": [[16, "local-installation"]], "Build from debian packages": [[16, "build-from-debian-packages"]], "Build from source": [[16, "build-from-source"]], "Using Docker": [[16, "using-docker"]], "To view the robot": [[16, "to-view-the-robot"]], "To run the ros2_control demos": [[16, "to-run-the-ros2-control-demos"]], "Quick Hints": [[16, "quick-hints"]], "Example 1: RRBot": [[18, "example-1-rrbot"]], "Tutorial steps": [[18, "tutorial-steps"], [20, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [28, "tutorial-steps"], [29, "tutorial-steps"]], "Files used for this demos": [[18, "files-used-for-this-demos"], [19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [29, "files-used-for-this-demos"]], "Controllers from this demo": [[18, "controllers-from-this-demo"], [19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [29, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[19, "example-10-industrial-robot-with-gpio-interfaces"]], "Example 12: Controller chaining with RRBot": [[20, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[21, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[22, "diffbot"]], "Example 3: Robots with multiple interfaces": [[23, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[24, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[24, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[25, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[26, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[27, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[27, "ros2-control-overview"]], "Writing a URDF": [[27, "writing-a-urdf"]], "Geometry": [[27, "geometry"]], "URDF file": [[27, "urdf-file"]], "Writing a hardware interface": [[27, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[27, "plugin-description-file-hardware"]], "CMake library (hardware)": [[27, "cmake-library-hardware"]], "Writing a controller": [[27, "writing-a-controller"]], "Plugin description file (controller)": [[27, "plugin-description-file-controller"]], "CMake library (controller)": [[27, "cmake-library-controller"]], "Launching the example": [[27, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[28, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[29, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[30, "ackermann-steering-controller"]], "Admittance Controller": [[31, "admittance-controller"]], "ROS 2 interface of the controller": [[31, "ros-2-interface-of-the-controller"], [36, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [45, "ros-2-interface-of-the-controller"], [51, "ros-2-interface-of-the-controller"]], "Topics": [[31, "topics"], [36, "topics"], [38, "topics"], [45, "topics"], [51, "topics"]], "ros2_control interfaces": [[31, "ros2-control-interfaces"]], "References": [[31, "references"], [33, "references"], [44, "references"]], "States": [[31, "states"], [44, "states"], [48, "states"]], "Commands": [[31, "commands"], [41, "commands"], [44, "commands"], [48, "commands"]], "bicycle_steering_controller": [[32, "bicycle-steering-controller"]], "diff_drive_controller": [[33, "diff-drive-controller"]], "Other features": [[33, "other-features"], [44, "other-features"], [49, "other-features"]], "Description of controller\u2019s interfaces": [[33, "description-of-controller-s-interfaces"], [44, "description-of-controller-s-interfaces"], [48, "description-of-controller-s-interfaces"]], "Feedback": [[33, "feedback"]], "Output": [[33, "output"]], "ROS 2 Interfaces": [[33, "ros-2-interfaces"]], "Subscribers": [[33, "subscribers"], [48, "subscribers"]], "Publishers": [[33, "publishers"], [44, "publishers"], [48, "publishers"]], "ros2_controllers": [[34, "ros2-controllers"]], "Controllers for Mobile Robots": [[34, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[34, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[34, "broadcasters"]], "Common Controller Parameters": [[34, "common-controller-parameters"]], "Writing a new controller": [[35, "writing-a-new-controller"]], "effort_controllers": [[36, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[36, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[37, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[38, "forward-command-controller"]], "Hardware interface type": [[38, "hardware-interface-type"], [41, "hardware-interface-type"]], "Gripper Action Controller": [[39, "gripper-action-controller"]], "IMU Sensor Broadcaster": [[40, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[41, "joint-state-broadcaster"]], "Details about parameters": [[42, "details-about-parameters"]], "Trajectory Representation": [[43, "trajectory-representation"]], "Interpolation Method none": [[43, "interpolation-method-none"]], "Interpolation Method spline": [[43, "interpolation-method-spline"]], "Visualized Examples": [[43, "visualized-examples"]], "Trajectory Replacement": [[43, "trajectory-replacement"]], "joint_trajectory_controller": [[44, "joint-trajectory-controller"]], "Hardware interface types": [[44, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[44, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[44, "preemption-policy"]], "Actions 1": [[44, "actions"]], "Subscriber 1": [[44, "subscriber"]], "Services": [[44, "services"]], "Further information": [[44, "further-information"]], "position_controllers": [[45, "position-controllers"]], "position_controllers/JointGroupPositionController": [[45, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[46, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[47, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[48, "steering-controllers-library"]], "Execution logic of the controller": [[48, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[48, "references-from-a-preceding-controller"]], "tricycle_controller": [[49, "tricycle-controller"]], "Velocity commands": [[49, "velocity-commands"]], "tricycle_steering_controller": [[50, "tricycle-steering-controller"]], "velocity_controllers": [[51, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[51, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[52, "simulator-integrations"]], "Hosted by ros-controls": [[52, "hosted-by-ros-controls"]], "Community": [[52, "community"]], "Supported Robots": [[53, "supported-robots"]], "Welcome to the ros2_control documentation - Iron!": [[54, "welcome-to-the-ros2-control-documentation-iron"]], "ros2_control Repositories": [[54, "ros2-control-repositories"]], "Development Organisation and Communication": [[54, "development-organisation-and-communication"]]}, "indexentries": {}})
\ No newline at end of file
diff --git a/master/.buildinfo b/master/.buildinfo
index 8c9153ceb84..35e5524fe1a 100644
--- a/master/.buildinfo
+++ b/master/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 486c83e5b84d1d553d026ea5caf21dcf
+config: fbc0410529a78e551bbe1185c67d46c7
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/master/.doctrees/doc/acknowledgements/acknowledgements.doctree b/master/.doctrees/doc/acknowledgements/acknowledgements.doctree
index dc4ce6f805f..1d334dc57be 100644
Binary files a/master/.doctrees/doc/acknowledgements/acknowledgements.doctree and b/master/.doctrees/doc/acknowledgements/acknowledgements.doctree differ
diff --git a/master/.doctrees/doc/contributing/contributing.doctree b/master/.doctrees/doc/contributing/contributing.doctree
index c79655e9ac6..c3319bdea50 100644
Binary files a/master/.doctrees/doc/contributing/contributing.doctree and b/master/.doctrees/doc/contributing/contributing.doctree differ
diff --git a/master/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree b/master/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree
index e956262f872..2b683167282 100644
Binary files a/master/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree and b/master/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree differ
diff --git a/master/.doctrees/doc/gazebo_ros2_control/doc/index.doctree b/master/.doctrees/doc/gazebo_ros2_control/doc/index.doctree
index f61dc46dc9e..8eb5975ff46 100644
Binary files a/master/.doctrees/doc/gazebo_ros2_control/doc/index.doctree and b/master/.doctrees/doc/gazebo_ros2_control/doc/index.doctree differ
diff --git a/master/.doctrees/doc/getting_started/getting_started.doctree b/master/.doctrees/doc/getting_started/getting_started.doctree
index fe01cc4b532..2b0dd046998 100644
Binary files a/master/.doctrees/doc/getting_started/getting_started.doctree and b/master/.doctrees/doc/getting_started/getting_started.doctree differ
diff --git a/master/.doctrees/doc/gz_ros2_control/doc/index.doctree b/master/.doctrees/doc/gz_ros2_control/doc/index.doctree
index cf1b6099833..28f60b5a22a 100644
Binary files a/master/.doctrees/doc/gz_ros2_control/doc/index.doctree and b/master/.doctrees/doc/gz_ros2_control/doc/index.doctree differ
diff --git a/master/.doctrees/doc/project_ideas.doctree b/master/.doctrees/doc/project_ideas.doctree
index f7765856a96..ab98b64d37c 100644
Binary files a/master/.doctrees/doc/project_ideas.doctree and b/master/.doctrees/doc/project_ideas.doctree differ
diff --git a/master/.doctrees/doc/resources/resources.doctree b/master/.doctrees/doc/resources/resources.doctree
index 06c4526f30c..6b3c8146422 100644
Binary files a/master/.doctrees/doc/resources/resources.doctree and b/master/.doctrees/doc/resources/resources.doctree differ
diff --git a/master/.doctrees/doc/resources/roscon2023_workshop.doctree b/master/.doctrees/doc/resources/roscon2023_workshop.doctree
index 9c2a9e366dd..d6a6c70ed50 100644
Binary files a/master/.doctrees/doc/resources/roscon2023_workshop.doctree and b/master/.doctrees/doc/resources/roscon2023_workshop.doctree differ
diff --git a/master/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree b/master/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree
index 3f3724bfbd4..119f9a8bdd8 100644
Binary files a/master/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree and b/master/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree differ
diff --git a/master/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree
index d35931b6000..d00c98fd2a7 100644
Binary files a/master/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control/doc/index.doctree b/master/.doctrees/doc/ros2_control/doc/index.doctree
index a2f5fe59e34..4808849b76b 100644
Binary files a/master/.doctrees/doc/ros2_control/doc/index.doctree and b/master/.doctrees/doc/ros2_control/doc/index.doctree differ
diff --git a/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree b/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree
index 6b75d833199..e0243768a40 100644
Binary files a/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree and b/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree b/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree
index 523d0ee98fc..1cde11b6e35 100644
Binary files a/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree and b/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree b/master/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree
index cd9eec60fa8..eaa5920cd45 100644
Binary files a/master/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree and b/master/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree b/master/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree
index 00b9c839ac8..aa86901b806 100644
Binary files a/master/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree and b/master/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree differ
diff --git a/master/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree
index 54febf4a709..38fa3b1b1ba 100644
Binary files a/master/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/doc/index.doctree b/master/.doctrees/doc/ros2_control_demos/doc/index.doctree
index 65d3c276df1..257e3fc6fb4 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/doc/index.doctree and b/master/.doctrees/doc/ros2_control_demos/doc/index.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree b/master/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree
index 91fd63661d7..6d4fc85342f 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree and b/master/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree
index 4f37910782b..3ab423b1ef7 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree
index cab76598007..0a5e553fb9f 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_10/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree
index 298cbd68e02..e15da982546 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree
index b40e783cbfc..878566f7f1b 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree
index d22d869d9c8..c359a15465c 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree
index ef5ad2a0769..11227e19953 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree
index eebd162d01c..48f0dc3916f 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree
index 5baa526bf17..cea2afa071d 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree
index 0d99ca419df..f84f2243644 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree
index 0c2a57a28df..ea26b0635e2 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree
index 10ab8e2f88e..406a83e629f 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree
index a636231dd61..1091a120cca 100644
Binary files a/master/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree
index e6b3f87ffe8..9f630c52f12 100644
Binary files a/master/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree
index f1bc1b42fd8..9b1e4f996e1 100644
Binary files a/master/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree
index ef026ec36b5..f524aa2293f 100644
Binary files a/master/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree
index 38c3da7eb91..206a7641c3b 100644
Binary files a/master/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/master/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree
index 1e9d8b800a8..db10f2259fc 100644
Binary files a/master/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree and b/master/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree b/master/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree
index 23c598808d9..e77180a8080 100644
Binary files a/master/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree and b/master/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree
index 0a505e2aa78..07a5bbfe6b7 100644
Binary files a/master/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree
index 894735fc4dd..d628bb6cb43 100644
Binary files a/master/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree
index e03c738b7d9..6607a6e6c19 100644
Binary files a/master/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree
index 0a4c6e3eb3d..c923ade7193 100644
Binary files a/master/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree
index 39d9f59852f..3e8ba9817b7 100644
Binary files a/master/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree
index b8de0617f8f..451eca7db66 100644
Binary files a/master/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree b/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree
index a3546f40f35..97f6962e15d 100644
Binary files a/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree and b/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree b/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree
index 6cca3ece1ce..ffb84d91a7e 100644
Binary files a/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree and b/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree
index c76fa4e327e..e03212d3305 100644
Binary files a/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/pid_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/pid_controller/doc/userdoc.doctree
index d3acc871c5f..89259a5af15 100644
Binary files a/master/.doctrees/doc/ros2_controllers/pid_controller/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/pid_controller/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree
index fa0506c1425..2da4a8cb347 100644
Binary files a/master/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree
index 3dc2a98c35c..af7f0c4abe6 100644
Binary files a/master/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree
index f204cf46c2a..c0cea967076 100644
Binary files a/master/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree
index 8d4700c31f7..1ead98edfae 100644
Binary files a/master/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree
index d914a422c51..255bbf191cb 100644
Binary files a/master/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree
index 3dcae5a87a7..a37794fcd15 100644
Binary files a/master/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree
index 2255fe8821f..9f74e21d5c1 100644
Binary files a/master/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree differ
diff --git a/master/.doctrees/doc/simulators/simulators.doctree b/master/.doctrees/doc/simulators/simulators.doctree
index 66ca6e9340d..61acd9d747f 100644
Binary files a/master/.doctrees/doc/simulators/simulators.doctree and b/master/.doctrees/doc/simulators/simulators.doctree differ
diff --git a/master/.doctrees/doc/supported_robots/supported_robots.doctree b/master/.doctrees/doc/supported_robots/supported_robots.doctree
index c46113a41d5..7c4731c6bfb 100644
Binary files a/master/.doctrees/doc/supported_robots/supported_robots.doctree and b/master/.doctrees/doc/supported_robots/supported_robots.doctree differ
diff --git a/master/.doctrees/environment.pickle b/master/.doctrees/environment.pickle
index 170c5959030..ca8015bc2ca 100644
Binary files a/master/.doctrees/environment.pickle and b/master/.doctrees/environment.pickle differ
diff --git a/master/.doctrees/index.doctree b/master/.doctrees/index.doctree
index fd69fee2e7b..a3b5ea4cae8 100644
Binary files a/master/.doctrees/index.doctree and b/master/.doctrees/index.doctree differ
diff --git a/master/doc/acknowledgements/acknowledgements.html b/master/doc/acknowledgements/acknowledgements.html
index ca08f6d52d3..a9eab88a942 100644
--- a/master/doc/acknowledgements/acknowledgements.html
+++ b/master/doc/acknowledgements/acknowledgements.html
@@ -154,18 +154,18 @@ Built on 2023-12-30 at 05:31 GMT
+Built on 2023-12-31 at 05:31 GMT
diff --git a/master/searchindex.js b/master/searchindex.js index e020f3c22aa..e5897900a79 100644 --- a/master/searchindex.js +++ b/master/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/resources/roscon2023_workshop", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/pid_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/resources/roscon2023_workshop.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/pid_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "ROSCon 2023 Workshop", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Hardware Components", "ros2_control
hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "PID Controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation!"], "terms": {"The": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 43, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 28, 34, 44, 45], "ros2_control": [0, 1, 4, 10, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 34, 36, 54], "framework": [0, 1, 2, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 28, 35, 36, 42, 56], "show": [0, 1, 3, 4, 5, 7, 8, 10, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 42, 44], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 36, 42, 43, 44, 45, 55], "time": [0, 1, 2, 6, 7, 8, 10, 14, 16, 17, 19, 22, 23, 24, 25, 26, 27, 28, 29, 34, 36, 38, 43, 44, 45, 56], "activ": [0, 1, 2, 4, 10, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 42, 43, 45], "assign": [0, 36], "finish": 0, "rate": [0, 23, 35, 43, 44, 45], "last": [0, 12, 15, 28, 32, 36, 43, 44, 45], "date": 0, "benc": [0, 6, 7, 8], "magyar": [0, 6, 7, 8], "bmagyar": [0, 8], "1243": 0, "1023": 0, "0": [0, 3, 4, 5, 9, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 40, 41, 42, 43, 44, 45, 48, 50, 52], "82": 0, "2023": [0, 56], "12": [0, 17, 55, 56], "29t11": 0, "40": 0, "08z": 0, "dr": [0, 7], "deni": [0, 6, 7, 8], "destogl": 0, "985": 0, "561": 0, "57": 0, "18t14": 0, "11": [0, 17], "03z": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "152": 0, "133": 0, "88": 0, "26t09": 0, "00": [0, 8], "02z": 0, "fetch": 0, "30": [0, 3, 5, 23, 56], "03": [0, 45], "25": 0, "46": 0, "utc": 0, "dure": [0, 17, 28, 45], "past": [0, 44], "month": 0, "532": 0, "401": 0, "75": 0, "438": 0, "136": 0, "31": [0, 56], "141": 0, "122": 0, "87": 0, "have": [0, 1, 2, 4, 6, 8, 9, 10, 12, 13, 14, 15, 17, 19, 21, 23, 24, 28, 30, 31, 32, 33, 35, 36, 42, 43, 45, 46, 52], "contribut": [0, 4, 7], "develop": [0, 1, 7, 14, 15, 17, 36], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 28, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 50, 52, 53, 54, 55, 56], "project": [0, 1, 56], "give": [0, 1, 7, 10, 17, 19, 23, 24, 44, 56], "valuabl": 0, "pull": [0, 8, 15], "request": [0, 2, 15, 28, 42, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 38, 41, 43, 45, 48, 50, 52], "more": [0, 1, 2, 3, 4, 5, 6, 8, 10, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 45, 52], "inform": [0, 3, 5, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 36, 56], "karsten": 0, "knese": 0, "karsten1987": 0, "186": 0, "118": 0, "63": 0, "2021": 0, "09": 0, "07t16": 0, "47": 0, "31z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "90": [0, 28], "80": 0, "89": 0, "27t10": 0, "54": 0, "11z": 0, "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "69": 0, "67": 0, "97": 0, "29t05": 0, "18": [0, 8, 28], "25z": 0, "victor": 0, "lopez": 0, "v": [0, 16, 25, 43], "93": 0, "60": 0, "65": 0, "10": [0, 3, 5, 17, 24, 50], "14t09": 0, "01": [0, 40, 43, 45], "andyz": 0, "45": 0, "98": 0, "23t02": 0, "17": [0, 8], "26z": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "157": 0, "43": [0, 4, 13, 23], "27": 0, "25t12": 0, "02": 0, "18z": 0, "olivi": 0, "stass": 0, "52": [0, 48], "77": 0, "26t08": 0, "13z": 0, "jordan": 0, "palacio": 0, "78": 0, "34": 0, "44": 0, "15t08": 0, "45z": 0, "erick": 0, "g": [0, 1, 2, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 32, 36, 37, 42, 47, 50, 53, 56], "isla": 0, "osuna": 0, "erickiso": 0, "139": 0, "28": [0, 50], "20": [0, 8, 40, 43, 45], "19t20": 0, "32": 0, "07z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "29": 0, "23": [0, 4], "79": 0, "2022": 0, "08": 0, "30t16": 0, "41": 0, "23z": 0, "none": [0, 9, 36, 42, 43, 45], "bijoua29": 0, "160": 0, "21": [0, 50], "13": [0, 8, 17], "06": 0, "01t20": 0, "48": [0, 3, 5], "32z": 0, "jaron": 0, "l": 0, "167": 0, "10t19": 0, "59": 0, "59z": 0, "livanov93": 0, "164": 0, "05": [0, 45, 56], "22t06": 0, "28z": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "94": 0, "27t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "145": 0, "16": [0, 55], "25t06": 0, "15z": 0, "bailac": 0, "14": [0, 17, 50], "1": [0, 1, 2, 3, 4, 5, 6, 7, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 36, 40, 44, 48, 50], "09t12": 0, "52z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "135": 0, "22t09": 0, "26": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "24t22": 0, "ari": 0, "synodino": 0, "progtologist": 0, "151": 0, "07": 0, "30t19": 0, "58z": 0, "chen": 0, "bainian": 0, "briancbn": 0, "36": 0, "9": [0, 6, 8, 17, 41], "25t01": 0, "51": 0, "12z": 0, "paul": 0, "gesel": 0, "pac48": 0, "14t18": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "123": 0, "8": [0, 17], "25t18": 0, "19z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "07t07": 0, "01z": 0, "ddengster": 0, "2020": 0, "01t03": 0, "andr": 0, "montano": 0, "anfemosa": 0, "7": [0, 7, 8, 17, 20, 23, 50], "29t15": 0, "37z": 0, "homalozoa": 0, "x": [0, 23, 25, 26, 28, 32, 34, 38, 41, 50, 51, 55], "130": 0, "23t11": 0, "22": [0, 8, 10], "mahaarbo": 0, "01t11": 0, "44z": 0, "matt": 0, "reynold": 0, "matthew": 0, "18t19": 0, "56": 0, "34z": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "04": [0, 8, 10], "09t00": 0, "38": [0, 3, 5], "06z": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "04t13": 0, "50": [0, 4, 10, 23], "48z": 0, "dasroteskelett": 0, "149": 0, "6": [0, 17, 19, 28], "28t09": 0, "36z": 0, "brewmast": 0, "harderthan": 0, "124": 0, "26t15": 0, "47z": 0, "A": [0, 4, 7, 13, 15, 17, 25, 26, 35, 36, 42, 44, 45], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "19t13": 0, "39": 0, "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 21, 22, 24, 25, 27, 28, 29, 30, 44, 50, 55], "42": 0, "20t19": 0, "55": 0, "jack": 0, "jackcent": 0, "02t15": 0, "37": 0, "17z": 0, "han": 0, "martin": 0, "duringhof": 0, "4": [0, 13, 17, 22, 24, 26, 29, 48], "29t21": 0, "15": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "20t07": 0, "40z": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "05t22": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "23t00": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "19t23": 0, "49z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "13t18": 0, "27z": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "26t17": 0, "05z": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "22t14": 0, "19": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 21, 22, 23, 25, 26, 27, 28, 29, 44, 45, 46], "05t08": 0, "53": 0, "mrl1kor": 0, "malapatiravi": 0, "07t18": 0, "adam": 0, "serafin": 0, "serafadam": 0, "12t18": 0, "24": [0, 7, 8], "24z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "03t10": 0, "20z": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "22t13": 0, "tim": 0, "clepha": 0, "timpl": 0, "13t07": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "22t00": 0, "guihom": 0, "guihomework": 0, "17t15": 0, "jose": 0, "lui": 0, "rivero": 0, "j": [0, 46], "26t13": 0, "peter": 0, "david": 0, "fagan": 0, "peterdavidfagan": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 45, 50, 55, 56], "23t22": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "27t03": 0, "57z": 0, "akash": 0, "ace314159": 0, "31t17": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "05t12": 0, "46z": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "01t12": 0, "49": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "09z": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "mhubii": 0, "21t11": 0, "50z": 0, "luka": 0, "macha": 0, "lukasmacha97": 0, "85": 0, "17t18": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t07": 0, "qiayuanliao": 0, "qiayuanl": 0, "35": [0, 50], "25t05": 0, "solomon": 0, "swiz23": 0, "15t15": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "08t14": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "05t10": 0, "53z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "01t13": 0, "22z": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "28t07": 0, "33z": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "schulz": 0, "schulze18": 0, "27t21": 0, "29z": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "franz": 0, "fjp": 0, "04t22": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 30, 43], "dmitri": 0, "dignakov": 0, "13t16": 0, "ken551": 0, "03t11": 0, "54z": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "05t14": 0, "bedard": 0, "christophebedard": 0, "27t18": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "19t14": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "21t14": 0, "21z": 0, "flochr": 0, "20t10": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "51z": 0, "abishalini": 0, "sivaraman": 0, "27t14": 0, "ramcharanthota": 0, "ben": 0, "holden": 0, "bobblebal": 0, "01t10": 0, "Will": 0, "baker": 0, "willcbak": 0, "22t15": 0, "robotgir": 0, "17t16": 0, "33": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "17t10": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "18t09": 0, "josh": 0, "newan": 0, "joshnewan": 0, "14t08": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "26t10": 0, "stephen": 0, "street": 0, "sgstreet": 0, "05t20": 0, "jun": 0, "chenjunnn": 0, "09t06": 0, "daniel": 0, "zumkel": 0, "dzumkel": 0, "shane": 0, "loretz": 0, "sloretz": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "17t21": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "31t15": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "00z": 0, "carlo": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "35z": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "09t18": 0, "reframesystem": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "12t08": 0, "55z": 0, "addisu": 0, "z": [0, 23, 25, 26, 28, 32, 34, 38, 41, 50, 51], "taddes": 0, "azeei": 0, "14t20": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "09t08": 0, "sgmurrai": 0, "0000": 0, "00t00": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoya": 0, "tomoyafujita2016": 0, "usamahamayun1": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "66": 0, "64": 0, "92": 0, "71": 0, "104": 0, "91": 0, "03t19": 0, "14z": 0, "86": 0, "99": [0, 10], "72": 0, "link": [0, 3, 4, 5, 7, 9, 12, 28, 35], "list": [0, 4, 7, 9, 10, 12, 15, 16, 21, 28, 36, 43, 54, 55, 56], "who": 0, "submit": [0, 1, 7, 54, 55], "respect": [0, 3, 5, 6, 7, 43, 44, 45], "repositori": [0, 4, 6, 11, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 34, 35], "ros2_control_demo": [0, 1, 4, 17, 19, 28, 30, 56], "control_toolbox": [0, 46, 56], "gazebo_ros2_control": [0, 30], "gz_ros2_control": 0, "realtime_tool": [0, 6, 56], "kinematics_interfac": [0, 32], "control_msg": [0, 3, 5, 32, 43, 45, 46, 50, 56], "ha": [0, 1, 3, 4, 5, 7, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 36, 42, 43, 44, 46], "receiv": [0, 2, 28, 43, 44], "major": [0, 41], "from": [0, 1, 2, 7, 8, 9, 10, 14, 15, 16, 18, 28, 32, 34, 35, 36, 37, 38, 41, 43, 44, 45, 47, 48, 51, 53, 55, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 28, 32, 36, 42, 44, 45, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 16, 17, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 44, 45, 56], "industri": [0, 4, 6, 8, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 10, 13, 19, 21, 23, 30, 34, 38, 42, 50, 51, 56], "softwar": [0, 4, 28], "compon": [0, 7, 10, 11, 13, 16, 17, 22, 23, 24, 25, 26, 27, 28, 32, 34, 35, 38, 41, 48, 50, 51, 56], "http": [0, 1, 4, 6, 8, 17, 28, 31, 33, 52], "www": 0, "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 9, 10, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 36, 41, 43, 44, 48, 52, 56], "horizon": 0, "research": [0, 7, 55], "innov": 0, "programm": 0, "under": [0, 7, 15, 21, 36, 44, 45, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 9, 12, 15, 17, 28, 30, 36, 43, 44, 46], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 36, 45, 46, 56], "consid": [1, 16, 43, 46], "As": [1, 9, 13, 15, 19, 28, 34, 36], "an": [1, 2, 3, 4, 5, 6, 7, 9, 13, 14, 15, 16, 17, 19, 21, 23, 26, 28, 30, 31, 32, 33, 34, 35, 36, 37, 42, 43, 45, 47, 50, 52, 53], "open": [1, 8, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 42, 43, 50], "sourc": [1, 3, 5, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "we": [1, 3, 5, 6, 7, 8, 9, 12, 17, 19, 21, 23, 28, 29, 30, 42], "welcom": 1, "each": [1, 4, 6, 9, 10, 12, 13, 15, 17, 19, 22, 28, 31, 42, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 9, 10, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 42, 44, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 28, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 28], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 28, 35, 37, 42, 43, 44, 45, 47, 50, 53], "up": [1, 7, 8, 15, 17, 44], "some": [1, 3, 5, 6, 7, 17, 19, 22, 23, 24, 25, 26, 27, 28, 29, 32, 42, 43, 45, 56], "standard": [1, 2, 6, 7, 10, 15, 16, 22, 27, 28, 38, 42], "method": [1, 2, 4, 9, 10, 12, 15, 28, 36, 50], "requir": [1, 2, 4, 6, 15, 28, 32, 36, 37, 45, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 10, 17, 28, 34, 51], "scope": 1, "your": [1, 2, 7, 8, 10, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 33, 36, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 9, 10, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 42, 44, 45, 46], "do": [1, 2, 4, 6, 7, 9, 10, 15, 17, 32, 36, 45, 46], "one": [1, 2, 4, 6, 7, 8, 9, 10, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37, 38, 42, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 8, 10, 17], "avoid": [1, 19, 22, 23, 24, 25, 26, 27, 29, 36], "ad": [1, 3, 5, 6, 10, 14, 15, 21, 23, 28, 36, 42], "random": [1, 22, 24, 25, 26, 27], "fix": [1, 2, 28, 31, 33, 52], "put": [1, 15, 36], "those": [1, 2, 4, 6, 9, 14, 15, 17, 28, 34, 36, 38, 42, 43, 44], "separ": [1, 2, 4, 17, 22, 42], "descript": [1, 2, 7, 10, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 36], "titl": 1, "add": [1, 2, 9, 10, 12, 15, 28, 31, 32, 33, 36, 52, 54, 55], "short": [1, 36, 56], "summari": [1, 7, 56], "make": [1, 2, 5, 6, 7, 21, 28, 40, 56], "sure": [1, 5, 6, 19, 21, 22, 23, 24, 25, 26, 27, 29, 56], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 44], "don": [1, 3, 8, 9, 23, 43, 45], "t": [1, 3, 5, 8, 9, 10, 17, 23, 43, 44, 45, 46], "afraid": 1, "review": [1, 6, 56], "maintain": [1, 4, 6, 9, 17, 44], "new": [1, 7, 8, 9, 15, 19, 21, 24, 28, 35, 44, 56], "code": [1, 2, 4, 6, 7, 15, 28], "test": [1, 3, 6, 14, 15, 17, 19, 23, 30, 31, 32, 33, 36, 50, 52], "If": [1, 2, 4, 7, 8, 9, 10, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 36, 38, 42, 43, 44, 45, 46, 50, 56], "function": [1, 2, 6, 7, 8, 21, 28, 32, 50], "alwai": [1, 28], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 28, 44, 45], "intent": [1, 9, 14], "section": [1, 2, 13, 15, 36, 45], "target": [1, 10, 15, 32, 36, 39, 43, 45], "also": [1, 2, 3, 4, 5, 6, 7, 9, 10, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 36, 45, 46], "read": [1, 2, 3, 4, 5, 10, 13, 15, 17, 21, 22, 25, 26, 28, 36, 42, 43, 46, 48, 50], "understand": [1, 6, 44], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 24, 25, 26, 27, 28, 30, 36], "handl": [1, 2, 4, 6, 7, 15, 25, 28, 31, 32, 33, 39, 40, 41, 45, 46, 50, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 8, 10, 13, 28], "pleas": [1, 10, 27, 56], "keep": [1, 28, 36], "mind": [1, 36], "work": [1, 6, 7, 9, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 36, 37, 42, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 7, 8, 9, 10, 14, 15, 16, 21, 24, 28, 32, 35, 36, 40, 43, 45, 46, 50], "That": [1, 15, 36], "wai": [1, 10, 15, 28, 36, 38, 45], "main": [1, 4, 6, 7, 10, 14, 28, 36, 50, 56], "repo": [1, 4, 8, 17], "clean": 1, "featur": [1, 7, 14, 17, 19, 29, 50, 56], "branch": [1, 17], "check": [1, 2, 4, 6, 9, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 36, 43, 44, 45, 52, 56], "satisfi": 1, "befor": [1, 2, 9, 10, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36, 44], "thei": [1, 2, 4, 6, 7, 9, 13, 14, 15, 16, 21, 35, 36, 43, 45, 50], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 36, 38, 39, 43, 44, 45, 46, 50, 56], "must": [1, 3, 5, 9, 10, 13, 17, 28, 41, 43, 45], "approv": 1, "two": [1, 4, 6, 9, 10, 15, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 38, 44, 45, 46, 50, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 9, 10, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 33, 34, 36, 37, 38, 42, 43, 44, 45, 46, 47, 53], "except": [1, 28], "other": [1, 2, 3, 4, 7, 9, 15, 17, 22, 27, 28, 31, 33, 36, 42, 44, 50, 52], "where": [1, 3, 6, 8, 9, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 33, 34, 36, 42, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 8, 21, 30, 44, 56], "suffici": [1, 3, 5, 9, 38], "note": [1, 4, 10, 19, 34, 45, 46, 56], "still": [1, 2, 19, 21, 22, 23, 24, 25, 26, 27, 29, 35, 44], "encourag": 1, "help": [1, 10, 14, 15, 16, 36], "u": [1, 3, 5, 10, 17, 43], "increas": [1, 23, 46], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 8, 15, 17, 21, 28], "find": [1, 3, 5, 23], "issu": [1, 6, 7, 8, 56], "nobodi": 1, "els": 1, "squash": 1, "commit": 1, "messag": [1, 6, 10, 16, 24, 25, 26, 28, 38, 41, 42, 43, 44, 45, 48, 50, 56], "comment": [1, 28], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 8, 12, 13, 14, 16, 18, 28, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 52, 53, 56], "pre": 1, "correct": [1, 2, 44], "header": [1, 12, 15, 25, 26, 34, 36, 44], "address": [1, 28], "similar": [1, 4, 7, 13, 19, 21, 28], "mean": [1, 2, 9, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 45], "result": [1, 4, 9, 10, 19, 28, 42, 44], "exactli": 1, "cowboi": 1, "style": [1, 15, 36], "over": [1, 6, 9, 23, 28], "weekend": 1, "It": [1, 2, 3, 4, 6, 9, 10, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 38, 42, 43, 44, 46], "doesn": [1, 9, 46], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 9, 10, 45], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 43], "its": [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 39, 40, 41, 42, 44, 46, 50, 52], "ping": 1, "them": [1, 6, 9, 10, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 36, 42, 44, 55], "necessari": [1, 9, 12], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 9, 10, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 43, 44, 56], "part": [1, 6, 7, 13, 28, 36, 44, 45], "For": [1, 3, 4, 5, 6, 7, 9, 10, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 43, 45, 46, 50, 52], "detail": [1, 2, 3, 4, 5, 10, 12, 13, 14, 15, 21, 28, 30, 31, 33, 34, 36, 44, 45, 52], "thoma": 1, "cokela": 1, "info": [1, 10, 12, 15, 28], "tutori": [1, 17], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 15, 16, 17, 22, 23, 25, 26, 27, 28, 34, 35, 36, 37, 38, 41, 43, 46, 47, 48, 50, 53], "stabl": 1, "against": 1, "accept": [1, 15, 24, 36, 37, 43, 44, 45, 47, 53], "api": [1, 3, 5, 6, 15, 19, 22, 23, 24, 25, 26, 27, 29], "abi": 1, "chang": [1, 2, 4, 7, 10, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 43, 44, 45], "e": [1, 2, 4, 6, 7, 9, 10, 13, 14, 15, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 32, 36, 37, 38, 42, 43, 44, 46, 47, 50, 53, 56], "name": [1, 2, 3, 4, 5, 7, 10, 13, 14, 15, 16, 17, 19, 21, 22, 23, 25, 26, 27, 28, 30, 32, 36, 38, 39, 41, 42, 43, 46, 48, 50], "convent": [1, 28], "master": [1, 4, 17, 28], "semi": 1, "binari": 1, "good": [1, 3, 5, 6], "same": [1, 8, 9, 24, 28, 35, 38, 43, 44, 45, 46], "build": [1, 8, 15, 28, 32, 36], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 28], "version": [1, 6, 8, 17, 45], "non": [1, 7, 21, 28, 38, 55], "brake": 1, "distribut": [1, 17, 56], "three": [1, 2, 4, 12, 13, 17, 28, 36, 44, 52], "stage": [1, 9, 21], "current": [1, 6, 12, 13, 15, 16, 44, 45, 50], "futur": [1, 7, 9, 44, 45], "compat": [1, 2, 7, 15, 17], "packag": [1, 2, 3, 5, 12, 15, 28, 31, 32, 33, 34, 36, 37, 38, 41, 45, 46, 47, 48, 50, 52, 53, 56], "direct": [1, 2, 6, 15, 28, 36, 43], "local": [1, 3, 5, 8, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30, 42], "possibl": [1, 4, 6, 10, 13, 17, 19, 22, 23, 24, 25, 26, 27, 29, 32, 36, 44], "core": [1, 11, 28], "immedi": [1, 10, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 46], "depend": [1, 4, 8, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 44, 46, 50], "fail": [1, 24, 28], "expect": [1, 6, 7, 8, 21, 28, 31, 33, 45, 50, 52], "after": [1, 9, 10, 15, 17, 19, 28, 34, 36, 43, 44, 45, 50, 51], "next": [1, 19, 28, 44], "sync": 1, "abl": 1, "potenti": [1, 7, 8, 36, 43], "mid": 1, "stat": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 9, 10, 12, 13, 17, 21, 28, 36, 43, 45], "imposs": 2, "extend": [2, 4, 6, 9, 15, 36], "exist": [2, 4, 6, 7, 8, 9, 10, 12, 13, 15, 19, 22, 23, 24, 25, 26, 27, 28, 29, 36, 45], "addit": [2, 3, 5, 9, 17, 20, 23, 28], "sensor": [2, 4, 6, 12, 14, 15, 17, 22, 27, 28, 32, 35, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 21], "tool": [2, 3, 5, 6, 7, 8, 28], "without": [2, 3, 4, 5, 7, 10, 14, 15, 17, 21, 30, 36, 43, 44], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7, 8], "optim": [2, 10], "combin": [2, 9, 13, 14, 17, 24, 42, 43, 44, 45, 46], "extern": [2, 4, 6, 9, 14, 17, 32, 46], "defin": [2, 3, 5, 6, 10, 14, 15, 17, 28, 32, 36, 38, 41, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 8, 12, 13, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 45, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 23, 36], "physic": [2, 4, 12, 13, 14], "cell": [2, 38], "surround": 2, "describ": [2, 4, 9, 13, 17, 19, 24, 28, 30, 44], "multi": [2, 4, 6, 7, 8, 17, 24], "gripper": [2, 3, 4, 5, 7, 13, 14, 35], "out": [2, 3, 5, 10, 28, 34], "box": [2, 17, 19, 23, 24, 25, 26, 29, 30], "allow": [2, 3, 4, 5, 17, 28, 40, 43, 44, 45, 49], "joint": [2, 4, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 46, 47, 50, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 10, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 34, 35, 37, 42, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 9, 17, 22, 23, 24, 28, 32, 33, 34, 35, 40, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 28, 35, 37, 40, 42, 43, 45, 46], "hard": [2, 10], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 42, 44], "approach": [2, 9], "doe": [2, 10, 15, 19, 22, 23, 24, 25, 26, 27, 28, 29, 36, 44, 45], "enforc": [2, 24, 28, 43], "string": [2, 10, 14, 17, 36, 39, 40, 41, 42, 43, 46, 48, 50], "ensur": [2, 7, 10, 28, 44], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 12, 14, 15, 17, 22, 25, 26, 27, 28, 32, 34, 35, 36], "In": [2, 3, 4, 5, 6, 7, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36, 42, 44, 50], "had": 2, "itself": [2, 9], "took": 2, "care": [2, 6, 10, 15, 24, 36, 45], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 24], "conflict": [2, 4, 6], "resourcemanag": [2, 9], "take": [2, 6, 9, 15, 21, 24, 34, 36, 42, 44], "state": [2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 38, 42, 43], "avail": [2, 4, 7, 9, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 42, 45], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 23, 32, 38, 46, 50], "anymor": 2, "controllermanag": [2, 10], "implement": [2, 3, 4, 5, 6, 7, 10, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 36, 39, 44, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 14, 25, 28], "granular": 2, "sensorinterfac": [2, 22, 26], "actuatorinterfac": [2, 22, 27], "abov": [2, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 35, 44], "choos": [2, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 44], "decid": 2, "which": [2, 3, 4, 5, 6, 7, 8, 10, 15, 16, 17, 19, 23, 24, 25, 26, 27, 28, 29, 30, 34, 35, 36, 38, 41, 42, 43, 44, 45, 48, 50, 51], "case": [2, 3, 5, 6, 7, 9, 17, 21, 28, 36, 42, 44, 45, 56], "mayb": [2, 9], "sens": [2, 4, 35, 38], "multipl": [2, 4, 7, 9, 13, 15, 17, 42, 43], "constructor": [2, 15, 28, 36], "initi": [2, 15, 28, 36, 44], "variabl": [2, 15, 28, 36, 43], "need": [2, 3, 4, 5, 6, 7, 9, 13, 15, 17, 19, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36, 44, 46], "commun": [2, 4, 6, 7, 15, 17, 19, 22, 23, 24, 25, 26, 28, 29, 55], "default": [2, 4, 9, 10, 14, 24, 31, 33, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 52], "configur": [2, 3, 4, 5, 6, 7, 9, 10, 12, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 42, 43, 44, 45, 50], "paramet": [2, 3, 5, 7, 8, 15, 17, 19, 23, 28, 36, 45], "pars": [2, 3, 5, 10, 11, 13], "urdf": [2, 7, 10, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "snippet": 2, "hardwareinfo": [2, 28], "here": [2, 11, 15, 28, 36, 37, 45, 47, 53], "cross": [2, 42], "valu": [2, 4, 6, 13, 14, 15, 17, 19, 20, 21, 23, 25, 26, 28, 30, 36, 41, 42, 43, 45, 48, 50], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 34, 51], "sensibl": 2, "stop": [2, 7, 9, 10, 12, 16, 19, 23, 24, 28, 34, 43, 51], "usual": [2, 4, 10, 14, 15, 28, 36], "includ": [2, 3, 5, 6, 8, 10, 12, 15, 16, 28, 36, 45, 55], "command": [2, 3, 4, 5, 6, 7, 8, 10, 11, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 39, 40, 43, 44, 47, 49, 52, 53, 56], "safe": [2, 28, 34, 36, 45, 51], "interrupt": [2, 10], "stream": [2, 7], "write": [2, 4, 7, 9, 10, 11, 21, 22, 23, 27, 35, 46], "exchang": [2, 6, 19, 22, 23, 24, 25, 26, 27, 29, 56], "equival": [2, 28], "forget": [2, 4, 17, 45], "pluginlib_export_class": [2, 15, 17, 28, 36], "macro": [2, 4, 15, 17, 28, 36], "end": [2, 4, 12, 15, 28, 36, 43, 55], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "file": [2, 3, 4, 5, 6, 7, 10, 14, 15, 17, 32, 34, 36, 37, 45, 47, 53], "creat": [2, 3, 4, 5, 7, 10, 14, 15, 17, 28, 36], "xml": [2, 3, 5, 12, 15, 28, 36], "librari": [2, 4, 15, 16, 17, 31, 33, 35, 36, 46, 50, 52], "pluginlib": [2, 3, 4, 5, 10, 15, 28, 36, 46], "exampl": [2, 3, 4, 5, 6, 7, 9, 10, 14, 16, 23, 32, 37, 38, 42, 45, 46, 47, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 21, 26], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 32, 45], "real": [2, 6, 7, 10, 14, 23, 36, 42, 43, 56], "critic": [2, 6], "mark": [2, 21], "controllerinterfac": [2, 4, 9, 16, 28, 36], "member": [2, 15, 28, 36, 44], "init": 2, "call": [2, 3, 4, 5, 9, 15, 23, 28, 36], "lifecycl": [2, 4, 7, 10, 12, 15, 28, 35], "declar": [2, 15, 28, 36], "state_interface_configur": [2, 28, 36], "command_interface_configur": [2, 28, 36], "design": [2, 4, 6, 7, 9, 28, 56], "updat": [2, 4, 9, 10, 17, 28, 35, 36, 45, 50], "manag": [2, 3, 5, 6, 7, 11, 12, 15, 16, 17, 28, 36, 45, 56], "option": [2, 3, 5, 10, 12, 14, 15, 16, 19, 24, 35, 36, 38, 42, 45, 46, 50], "on_configur": [2, 15, 28, 36], "on_activ": [2, 12, 15, 28, 36], "on_deactiv": [2, 12, 15, 28, 36], "deactiv": [2, 4, 16, 19, 43], "final": [2, 7, 12, 28], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 21, 23, 28, 43, 44, 45, 56], "architectur": [3, 5, 6, 7, 8], "gazebo": [3, 5, 6, 17, 19, 30, 54], "classic": [3, 17, 30, 54], "provid": [3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 32, 36, 42, 43, 44, 45, 50, 56], "instanti": [3, 5, 10], "connect": [3, 4, 5, 14, 17, 25, 28], "model": [3, 5, 19, 28], "cd": [3, 4, 5, 8, 17, 28], "docker": [3, 5, 8, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30], "gui": [3, 5, 17, 19, 21, 22, 24, 25, 26, 27, 29, 30, 49], "properli": [3, 5, 9, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "rm": [3, 4, 5, 17, 19, 30], "net": [3, 5, 7, 17, 19, 30], "host": [3, 5, 17, 19, 30, 55], "ros2": [3, 4, 5, 7, 10, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "launch": [3, 4, 5, 10, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "fals": [3, 5, 14, 17, 19, 30, 34, 40, 42, 43, 45, 46, 50], "machin": [3, 4, 5, 6, 17, 30], "client": [3, 5, 30, 45], "gzclient": [3, 30], "rocker": [3, 5], "go": [3, 5, 7, 10, 15, 28, 36], "imag": [3, 5, 10, 30], "inject": [3, 5, 7, 8], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 10, 17, 28, 44], "id": [3, 5, 16, 19, 22, 23, 24, 25, 26, 27, 29], "specif": [3, 5, 6, 9, 10, 12, 13, 28, 30, 39, 42, 44, 45], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 10], "instal": [3, 5, 8, 10, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "instruct": [3, 5, 8, 23, 28, 30], "x11": [3, 5], "latest": [3, 4, 5, 8], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30, 40], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 8, 15, 17, 19, 28, 36], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 28], "access": [3, 4, 5, 7, 10, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 42], "interfac": [3, 5, 6, 7, 9, 10, 11, 12, 14, 15, 17, 19, 21, 22, 23, 25, 26, 27, 30, 31, 33, 35, 36, 38, 41, 43, 44, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 9, 11, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 34, 35, 36, 43, 46, 51, 56], "slider_to_cart": [3, 5, 37, 47, 53], "command_interfac": [3, 4, 5, 13, 21, 28, 32, 43, 45, 46], "param": [3, 4, 5, 10, 13, 14, 23, 28], "min": [3, 4, 5, 13, 28], "1000": [3, 5, 28], "max": [3, 4, 5, 13, 28, 40], "state_interfac": [3, 4, 5, 13, 28, 32, 43, 45], "initial_valu": [3, 5, 28], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 10, 15, 17, 19, 24, 25, 26, 27, 29, 30, 36, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 10, 15, 28, 32, 34, 35, 36, 38, 43], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 28, 31, 33, 34, 38, 52], "xyz": [3, 5, 28], "rpy": [3, 5, 28], "1415926535": [3, 5], "parent": [3, 5, 15, 28, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 22, 23, 27, 28, 34, 36, 39, 50, 51, 54], "child": [3, 5, 13, 28], "finger_left": [3, 5], "lower": [3, 5, 28], "upper": [3, 5, 28], "actual": [3, 5, 9], "load": [3, 4, 5, 10, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36], "appropri": [3, 5, 6, 44], "By": [3, 5, 10, 28, 42, 44], "though": [3, 5, 10, 21], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 25, 26, 28, 30, 45], "between": [3, 4, 5, 6, 12, 13, 17, 28, 31, 33, 42, 43, 44, 45, 46, 52], "filenam": [3, 5, 28], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 9, 10, 15, 28, 32, 36, 45], "robot_param": [3, 5], "robot_descript": [3, 5, 10, 19, 28], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 42], "config": [3, 5, 17], "cartpole_control": [3, 5], "yaml": [3, 4, 5, 6, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 45], "locat": [3, 8, 28, 32], "server": [3, 40, 45], "node": [3, 4, 5, 10, 12, 14, 16, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "attempt": [3, 5, 10, 45], "get": [3, 5, 7, 8, 9, 10, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 56], "most": [3, 5, 6, 15, 17, 28, 36], "least": [3, 5, 13, 15, 36, 45], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8, 9], "mechan": [3, 5, 9, 45], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 21, 29], "etc": [3, 5, 10, 24, 28, 56], "These": [3, 5, 17, 28], "inherit": [3, 5, 10, 28], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 10, 21, 22, 27, 37, 44, 47, 53], "properti": [3, 5, 28], "sub": [3, 5], "class": [3, 4, 5, 7, 10, 12, 15, 16, 28, 36, 39, 44], "specifi": [3, 5, 10, 15, 17, 28, 35, 36, 43, 44, 45, 46], "insid": [3, 5, 14, 17, 19], "publish": [3, 5, 6, 9, 13, 17, 20, 28, 32, 35, 38, 41, 42, 44, 48, 51, 56], "stateinterfac": [3, 5, 28], "topic": [3, 5, 6, 7, 9, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 35, 45, 46, 54], "sensor_msg": [3, 5, 41, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 34, 37, 38, 39, 41, 44, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_state_control": [3, 5, 16], "ros__paramet": [3, 5, 37, 45, 47, 53], "jointstatecontrol": [3, 5, 16], "action": [3, 5, 9, 43], "cart_pole_control": [3, 5], "follow_joint_trajectori": [3, 5, 45], "followjointtrajectori": [3, 5, 43, 45], "joint_trajectory_control": [3, 5, 6, 16, 19, 35, 49], "write_op_mod": [3, 5], "contain": [3, 8, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 37, 43, 44, 46, 47, 50, 53], "content": [3, 15, 28, 36], "There": [3, 4, 5, 10, 12, 15, 17, 22, 25, 26, 27, 36, 44, 45], "meter": [3, 5, 28], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 10, 14, 28], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 13, 14], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 45, 46], "example_gripp": [3, 5], "roll": [4, 8, 17, 28], "want": [4, 8, 9, 10, 17], "download": [4, 17], "mkdir": [4, 8, 17], "p": [4, 8, 10, 17, 43], "src": [4, 8, 15, 17, 19, 28, 30, 32, 36], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 8, 17, 28], "org": [4, 6, 31, 33, 52], "ros_control": [4, 6, 7, 56], "vc": [4, 8, 17], "import": [4, 8, 15, 17, 28, 36, 43], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 8, 10, 17], "apt": [4, 8, 10, 17], "path": [4, 7, 17, 28, 45], "ignor": [4, 10, 17, 34, 43, 50, 51], "r": [4, 17, 29], "y": [4, 17, 23, 25, 26, 32, 38, 41], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30, 36], "opt": [4, 8, 17, 19], "setup": [4, 8, 14, 15, 17, 19, 23, 28, 30, 36, 44, 46], "sh": [4, 17, 19, 30], "colcon": [4, 8, 15, 17, 28, 36], "symlink": [4, 8, 17, 28], "folder": [4, 7, 15, 17, 19, 20, 23, 31, 32, 33, 36, 50, 52], "found": [4, 10, 11, 15, 19, 20, 23, 32, 34, 36, 39, 45, 56], "github": [4, 6, 8, 11, 17, 28, 35, 54, 55, 56], "figur": [4, 44], "uml": 4, "diagram": [4, 16], "intern": [4, 6, 9, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 29, 32, 44, 45], "cm": [4, 10], "abstract": [4, 7, 12, 28], "side": [4, 6, 7], "entri": [4, 36], "point": [4, 28, 36, 43, 44, 45, 46, 56], "servic": [4, 6, 10, 12, 28, 35], "executor": [4, 10], "custom": [4, 13, 14, 17, 22, 23, 38, 42, 54], "howev": [4, 6, 9, 10, 17, 21, 28], "recommend": [4, 7, 8, 15, 46], "ros2_control_nod": [4, 24, 28], "controller_manag": [4, 5, 6, 10, 16, 24, 35, 36, 37, 45, 47, 53], "assum": [4, 9], "On": [4, 7, 8, 28], "hand": [4, 28, 55], "unload": [4, 10, 16], "match": [4, 17, 44], "report": [4, 6, 42, 56], "error": [4, 6, 10, 15, 21, 24, 28, 36, 42, 43, 45, 46], "execut": [4, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 40, 43, 44, 45, 52], "loop": [4, 7, 10, 14, 19, 24, 25, 26, 27, 28, 29, 30, 36, 42, 43, 45, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 38], "driver": [4, 7, 17, 28, 55], "reus": [4, 7, 9], "flexibl": 4, "motor": [4, 9, 55], "encod": [4, 28], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 9, 21, 28, 55], "measur": [4, 14, 22, 32, 38, 42, 43, 55], "calcul": [4, 28, 32, 44, 50], "input": [4, 6, 7, 8, 9, 13, 20, 21, 28, 32, 34, 37, 39, 43, 44, 47, 50, 51, 53], "object": [4, 28], "deriv": [4, 43, 44, 46], "controller_interfac": [4, 16, 28, 32, 36, 38, 41, 48], "export": [4, 9, 10, 15, 17, 28, 32, 36], "plugin": [4, 8, 10, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 36, 46, 49], "forwardcommandcontrol": [4, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 23, 34, 35, 44, 45], "interact": [4, 7, 10, 16, 20, 28, 30], "srv": [4, 45, 46], "controller_manager_msg": 4, "while": [4, 6, 7, 28, 44], "directli": [4, 19, 21, 30, 46, 56], "line": [4, 11, 12, 15, 19, 28, 36, 42, 44], "friendli": 4, "cli": [4, 10, 11, 16, 19, 20, 23, 24, 25, 26, 27, 29, 30], "auto": [4, 10], "complet": [4, 12, 21, 28, 44], "rang": [4, 13, 35], "common": [4, 6, 17, 42, 56], "capabl": [4, 6], "realiz": [4, 7, 44, 45], "repres": [4, 12, 28, 34, 35, 44], "dynam": [4, 15, 28, 36, 46], "dof": [4, 13, 17, 28, 40, 46], "differ": [4, 6, 7, 13, 15, 17, 19, 20, 23, 24, 28, 37, 38, 42, 44, 46, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 24, 25, 26, 55], "rsi": [4, 19, 25, 26, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 25, 26, 32, 35, 55], "torqu": [4, 13, 25, 26, 32, 35], "simpl": [4, 6, 7, 9, 15, 17, 19, 21, 23, 28, 29, 36, 40], "valv": [4, 13], "mandatori": [4, 10, 38, 43], "dc": 4, "arduino": [4, 22, 27], "board": 4, "modular": [4, 7, 8, 17, 28], "independ": [4, 7, 10, 26], "explan": [4, 10, 15], "given": [4, 10, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 37, 43, 44, 45, 47, 53], "through": [4, 6, 7, 9, 10, 15, 16, 17, 21, 28, 36, 45, 46, 56], "tag": [4, 10, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 36, 56], "chosen": [4, 13], "structur": [4, 6, 9, 10, 15, 28, 34, 36, 43, 44], "track": [4, 31, 52, 56], "togeth": [4, 9, 13, 23, 25, 50], "xacro": [4, 10, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 22, 24, 25, 26, 27, 29], "effector": [4, 55], "site": 4, "rrbotsystempositiononli": [4, 26], "ros2_control_demo_hardwar": [4, 13, 16], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 13], "joint1": [4, 13, 14, 16, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 45], "joint2": [4, 13, 16, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 45], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 25, 26], "frame_id": [4, 13, 25, 26, 38, 41, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "100": [4, 13, 37, 47, 53], "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 23, 28, 30, 43, 46], "pure": 4, "stack": [4, 7, 56], "could": [4, 7, 9, 17, 24, 36, 42, 45], "altern": [4, 8, 10, 19, 45], "script": [4, 6, 15, 36], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 9, 17, 28, 30, 44], "ign": 5, "meet": [5, 56], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 14, 15, 24, 34, 41, 42, 45, 56], "gener": [6, 7, 13, 15, 16, 22, 23, 24, 25, 26, 27, 28, 35, 36, 45, 50, 56], "task": [6, 7, 34], "envis": 6, "simul": [6, 14, 16, 17, 19, 21, 23, 25, 26, 28], "ignit": 6, "showcas": [6, 7, 8], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 8, 36], "draft": 6, "gpio": [6, 17, 28], "mode": [6, 9, 15, 21, 24, 32, 43, 44, 46, 50], "switch": [6, 16, 17, 19, 24], "movement": 6, "safeti": [6, 28], "skill": 6, "prefer": 6, "c": [6, 10, 13, 15, 16, 19, 28], "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 48], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 9], "although": [6, 9, 12, 13, 45], "easi": [6, 10], "therefor": [6, 9, 10, 17, 36, 42, 43, 45], "often": [6, 14, 23, 36, 42], "orchestr": 6, "purpos": [6, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 46], "conductor": 6, "scenario": [6, 44], "moment": [6, 45], "right": [6, 17], "replac": [6, 12, 35, 45], "high": [6, 10, 44], "moveit2": [6, 7, 35, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 24, 25, 26, 27, 29, 30, 40, 43, 45, 56], "form": [6, 17], "behavior": [6, 14, 28, 44], "benchmark": 6, "statu": [6, 9, 12, 16, 19, 43], "format": [6, 28, 32, 42, 45], "preset": 6, "modul": [6, 21], "reli": 6, "doubl": [6, 14, 19, 28, 31, 33, 40, 43, 46, 48, 50, 52], "desir": [6, 43, 45], "both": [6, 7, 21, 28, 29, 42, 43, 44, 45], "improv": [6, 10], "readabl": [6, 28], "earlier": 6, "concept": [6, 7, 8, 9, 14, 17, 19], "introduc": [6, 7, 9, 19, 28], "essenti": [6, 19], "group": [6, 9, 10, 13, 45, 56], "instanc": [6, 10, 21, 42], "imu": [6, 13, 35], "typic": [6, 13, 23, 42, 43], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 21], "struct": 6, "low": [6, 7, 10], "profil": 6, "relev": [6, 43, 46, 50, 56], "addition": [6, 28, 31, 33, 52, 56], "few": [6, 7, 35], "175": 6, "rewrit": [6, 56], "rich": 6, "wa": [6, 8, 15, 19, 23, 24, 28, 36, 44], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 7, 8, 42, 44, 45], "diff_drive_control": [6, 9, 16, 23], "consist": [6, 45, 56], "onc": [6, 7, 8, 19, 23, 24, 25, 26, 28, 29, 35], "identifi": [6, 28], "much": [6, 19, 22, 23, 24, 25, 26, 27, 29, 36, 45], "303": 6, "304": 6, "stretch": 6, "81": 6, "302": 6, "unit": 6, "gmock": 6, "cc": [7, 44, 45], "BY": [7, 44, 45], "licens": [7, 44, 45], "author": [7, 9], "either": [7, 19, 24, 25, 26, 27, 29, 30, 44], "down": [7, 28], "below": [7, 10, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 44, 45], "compani": 7, "my": 7, "company_nam": 7, "alreadi": [7, 8, 15, 16, 17, 19, 21, 28, 30, 35, 36, 45], "know": [7, 8, 13], "act": [7, 8], "kernel": [7, 8, 10], "struggl": [7, 8], "cover": [7, 8], "product": [7, 8, 42], "variou": [7, 8, 19, 29], "littl": [7, 8, 10], "run": [7, 8, 9, 10, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 44, 50], "practic": [7, 8], "overview": [7, 8], "control": [7, 8, 11, 12, 13, 14, 15, 16, 17, 31, 33, 38, 41, 42, 43, 44, 48, 51, 52, 55, 56], "chain": [7, 8, 11, 16, 17, 28, 32, 43, 46, 50], "debug": [7, 8, 14], "top": [7, 8], "involv": [7, 8], "bring": [7, 8, 17], "page": [7, 54, 55], "locu": 7, "stogl": [7, 8], "consult": 7, "tricycl": [7, 35, 51], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "agnost": [7, 28], "share": [7, 15, 28, 30, 36, 50], "well": [7, 10, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 45], "perform": [7, 10, 28], "heavi": 7, "practition": 7, "guid": [7, 15, 36], "virtual": [7, 9, 33], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 28], "explicit": [7, 10, 28, 43], "emerg": 7, "handler": 7, "mock": [7, 11, 15], "usag": [7, 10, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 10, 36], "focu": [7, 9], "becom": [7, 21], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 35], "tip": [7, 28], "hot": 7, "shown": [7, 28, 44], "furthermor": [7, 23], "offer": [7, 10, 15, 28], "expos": [7, 17, 21], "problem": [7, 56], "manipul": [7, 17, 19, 21, 28, 29, 43], "plan": [7, 56], "autonom": 7, "navig": [7, 8], "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 23, 34, 50, 51], "arm": [7, 19, 21, 29], "extra": [7, 28, 42], "readi": [7, 8, 15, 17, 21, 35, 36], "studi": 7, "ur": 7, "With": [7, 28, 30, 45], "moveit": [7, 14], "ingredi": 7, "scale": [7, 43], "factor": 7, "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 15, 36], "trajectori": [7, 19, 28, 35, 43, 46, 56], "admitt": [7, 35], "One": [7, 9], "reason": [7, 9, 10, 28], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 10, 28, 34, 45, 51, 56], "contact": 7, "insert": 7, "singl": [7, 25, 40], "waypoint": [7, 44, 45], "mani": [7, 28, 35, 36], "teleoper": 7, "kinemat": [7, 9, 17, 23, 28, 31, 32, 33, 50, 52], "acceler": [7, 17, 24, 28, 32, 34, 41, 43, 44, 45, 46, 51], "jerk": [7, 34, 51], "obei": [7, 28], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 28], "cycl": [7, 28, 35], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 35, 43, 45, 46, 56], "done": [7, 8, 9, 15, 19, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36], "look": [7, 23], "modifi": 7, "simpli": [7, 10, 19, 44, 45], "edit": 7, "collect": [7, 37, 47, 53], "semant": [7, 13, 32, 38, 41, 48], "monolit": 7, "controlko": 7, "imperi": 8, "octob": 8, "present": [8, 45], "ubuntu": [8, 10], "engin": [8, 15, 36], "compos": 8, "grab": 8, "roscon2023_workshop": 8, "now": [8, 9, 10, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 44], "workspac": [8, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "w": 8, "git": [8, 17, 28], "clone": [8, 17, 28], "roscon2023_control_workshop": 8, "ci": 8, "compil": [8, 15, 28, 30, 36], "termin": [8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "park": 8, "f": [8, 17], "dev": 8, "tmux": 8, "ctrl": [8, 19], "b": [8, 17, 28], "arrow": 8, "kei": 8, "brought": 8, "propos": [9, 56], "minim": [9, 56], "viabl": [9, 28], "serial": [9, 28], "tri": [9, 43], "clariti": 9, "arbitrari": [9, 28, 45], "order": [9, 28, 46], "nevertheless": [9, 46], "convinc": 9, "would": [9, 42, 46], "unnecessari": 9, "long": 9, "term": [9, 46, 56], "clearer": 9, "let": [9, 17, 19, 21, 22, 23, 24, 25, 26, 27, 29], "yet": [9, 10, 17, 21, 34, 44, 45], "controllers_chain": 9, "doc": [9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 56], "position_track": 9, "pid": [9, 35, 43, 44, 45, 56], "imagin": 9, "flexibli": 9, "preced": 9, "step": [9, 15, 17, 36, 44, 56], "At": [9, 15, 21, 36], "attach": 9, "disabl": [9, 14, 50], "subscrib": [9, 20, 21, 28], "differenti": [9, 17, 23, 33, 34, 35, 56], "interfaceconfigur": [9, 28], "input_interface_configur": 9, "const": [9, 12, 28], "anoth": [9, 10, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 45], "simplic": [9, 28], "try": [9, 28], "exclus": [9, 28], "rather": [9, 17, 44], "void": 9, "set_chained_mod": 9, "bool": [9, 40, 43, 46, 50], "flag": [9, 15, 36, 43], "on_set_chained_mod": 9, "pid_refer": 9, "controller_nam": [9, 10, 16, 32, 36, 45, 46, 50], "v_x": 9, "v_y": 9, "w_z": 9, "cmd_vel": [9, 34], "cmd_vel_unstamp": [9, 23], "Its": [9, 56], "continu": [9, 43, 44, 45], "chainabl": [9, 17, 21, 34, 45], "ownership": 9, "process": [9, 15, 28, 36, 44], "claim": [9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "vector": [9, 21, 28, 36], "invers": [9, 28], "rule": [9, 10, 15, 36], "think": [9, 17], "break": [9, 14], "middl": [9, 33], "unavail": [9, 21], "unclaim": [9, 16, 21, 24], "inact": [9, 10, 16, 19, 24, 28, 35], "feasibl": 9, "interface_configuration_typ": 9, "jitter": 10, "thread": [10, 28], "sched_fifo": 10, "prioriti": 10, "addgroup": 10, "usermod": 10, "whoami": 10, "afterward": 10, "secur": 10, "conf": [10, 28], "soft": 10, "rtprio": 10, "memlock": 10, "102400": 10, "appli": [10, 16, 28, 34, 45], "log": 10, "again": [10, 12, 19, 23, 28], "normal": [10, 28, 43], "linux": 10, "comput": [10, 17, 34, 50, 51], "throughput": 10, "suit": 10, "lt": 10, "beta": 10, "rt": 10, "amd64": 10, "debian": 10, "bullsey": 10, "lowlat": 10, "come": [10, 17, 45], "lot": [10, 19, 21, 22, 23, 24, 25, 26, 27, 29], "being": 10, "realli": 10, "hardware_components_initial_st": 10, "map": [10, 14, 42, 45], "attribut": [10, 28], "full": [10, 15, 17, 36], "unconfigur": [10, 12, 19, 28], "arm1": 10, "arm2": 10, "base3": 10, "empti": [10, 36, 41, 45, 46, 50], "update_r": [10, 35, 37, 47, 53], "integ": [10, 35], "frequenc": [10, 35], "startup": 10, "h": [10, 15, 16, 36], "param_fil": 10, "n": 10, "namespac": [10, 15, 28, 35, 36, 42], "controller_typ": 10, "timeout": [10, 16, 40, 43, 50, 51], "controller_manager_timeout": 10, "argument": [10, 15, 16, 19, 22, 23, 24, 25, 26, 27, 29], "exit": [10, 16], "leav": 10, "kill": [10, 16, 28], "wait": [10, 16, 27, 43], "until": [10, 28, 43, 44], "mai": [10, 12, 25, 35, 37, 47, 53], "taken": [10, 50], "becaus": [10, 13, 19, 21, 22, 23, 24, 25, 26, 27, 29, 44], "rclcpp": [10, 15, 28, 36], "than": [10, 40, 43, 45, 46, 50], "global": 10, "remap": 10, "forcibli": 10, "lead": [10, 45], "duplic": [10, 46, 50], "occur": [10, 28], "whether": 10, "sibl": 10, "hierarchi": 10, "workaround": 10, "nodeopt": 10, "pass": [10, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29], "caus": [10, 44, 45, 50], "get_cm_node_opt": 10, "arg": 10, "_target_node_nam": 10, "__node": 10, "dst_node_nam": 10, "std": [10, 28, 43], "make_shar": 10, "some_optional_namespac": 10, "simplest": 10, "switch_control": [10, 19], "broadcast": [10, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 42], "achiev": [10, 28, 37, 47, 53], "return": [10, 12, 15, 19, 28, 36, 40, 42, 44, 45], "NOT": 10, "FOR": 10, "detect": 10, "listen": [10, 43], "doxygen": [11, 15], "cascad": 11, "return_typ": [12, 28, 36], "on_error": [12, 15, 28], "previous_st": [12, 28], "success": [12, 15, 28, 36, 40, 45], "callbackreturn": [12, 15, 28], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "on_init": [12, 15, 28, 36], "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hpp": [12, 15, 17, 28, 32, 36], "hardware_interface_status_valu": 12, "rclcpp_lifecycl": [12, 15, 28, 36], "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 28], "lifecyclenodeinterfac": [12, 15, 28], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 28, 36], "txt": [12, 15, 28, 36], "devic": [13, 55], "associ": 13, "joint_state_broadcast": [13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "coupl": 13, "ship": 13, "cannot": [13, 21, 28, 45], "keyword": 13, "digit": 13, "signal": 13, "electr": 13, "analog": 13, "within": [13, 19, 45], "vacuum": [13, 20], "flang": 13, "off": 13, "rrbotsystemmutiplegpio": 13, "example_param_hw_start_duration_sec": 13, "example_param_hw_stop_duration_sec": 13, "example_param_hw_slowdown": 13, "flange_digital_io": 13, "digital_output1": 13, "digital_output2": 13, "digital_input1": 13, "digital_input2": 13, "flange_analog_io": [13, 20], "analog_output1": [13, 20], "analog_input1": [13, 20], "analog_input2": [13, 20], "flange_vacuum": [13, 20], "suction": 13, "grasp": 13, "multimod": 13, "multimodalgripp": 13, "parallel_fing": 13, "temperatur": [13, 17], "feedback": [13, 14, 22, 42, 43, 45, 46, 50, 51], "adjust": [13, 16, 19, 28], "calibr": 13, "2d": [13, 25, 26], "ft": [13, 25, 26, 38], "choic": [13, 50], "matric": 13, "rrbotforcetorquesensor2d": 13, "forcetorquesensor2dhardwar": 13, "fx": 13, "tz": 13, "kuka_tcp": 13, "fx_rang": 13, "tz_rang": 13, "temp_feedback": 13, "calibration_matrix_nr": 13, "mirror": 14, "correspond": [14, 15, 28, 36, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 45], "boost": 14, "mimic": 14, "offset": [14, 42, 43], "fake": 14, "disable_command": 14, "boolean": [14, 35, 42, 43], "erron": [14, 28], "noth": 14, "suddenli": 14, "Or": [14, 19, 24, 25, 26, 27, 29, 30], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "prepar": [15, 24, 36], "ament_cmak": [15, 36], "easiest": [15, 36], "search": [15, 36], "recent": [15, 36], "pkg": [15, 36], "package_nam": [15, 36], "robot_hardware_interface_nam": 15, "visibility_control": [15, 36], "window": [15, 36], "copi": [15, 36], "prefix": [15, 32, 36, 38, 41, 48], "guard": [15, 36], "ifndef": [15, 36], "preprocessor": [15, 36], "friend": [15, 36], "interface_typ": [15, 36], "uniqu": [15, 28, 36], "written": [15, 22, 27, 28, 36], "snake_cas": [15, 36], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 28, 36], "on_cleanup": [15, 28], "on_shutdown": [15, 28], "overrid": [15, 28, 36, 37, 45, 47, 53], "export_state_interfac": [15, 28], "export_command_interfac": [15, 28], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 36], "exact": [15, 36], "simplifi": [15, 28, 36, 56], "valid": [15, 17, 46, 48], "fine": [15, 23, 36], "otherwis": [15, 17, 36, 42, 43], "opposit": [15, 36], "remind": 15, "joint_nam": [15, 32, 36, 43], "shutdown": [15, 28], "gracefulli": 15, "store": [15, 36], "close": [15, 36], "class_list_macro": [15, 28, 36], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 21, 24, 25, 26, 27, 28, 29, 30, 36, 44, 46, 56], "visibl": [15, 36], "mock_compon": [15, 23], "bottom": [15, 28, 36], "test_load_": [15, 36], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 36], "directori": [15, 36], "ament": [15, 36], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 28, 36], "ament_cmake_gmock": [15, 36], "ament_add_gmock": [15, 36], "ament_export_librari": [15, 36], "ament_packag": [15, 36], "test_depend": [15, 36], "rememb": [15, 36], "root": [15, 36], "enjoi": [15, 36], "great": [15, 36], "templat": [15, 17, 28, 36], "shell": [15, 36], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 23], "verbos": 16, "label": [16, 22, 23, 25, 26, 27, 44], "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 28], "demonstr": [17, 19, 21, 23, 24, 29, 30], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 28], "diffbot": 17, "degre": [17, 28, 45, 50], "freedom": [17, 28, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 21, 28, 29], "drive": [17, 23, 31, 33, 34, 35, 50, 51, 52, 56], "accord": [17, 23, 28], "intermedi": 17, "car": 17, "steer": [17, 31, 33, 35, 50, 51, 52], "tba": 17, "tabl": 17, "offici": [17, 55], "easili": 17, "aptitud": 17, "might": [17, 44], "own": [17, 19, 28], "merg": 17, "procedur": 17, "rviz2": [17, 19, 30], "visual": [17, 19, 26, 28, 42], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "omit": 17, "example_1": [17, 19, 20, 21, 30], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 42], "slider": 17, "around": [17, 38, 41, 43, 48], "ros2_control_demo_example_2": [17, 23], "categori": 17, "individu": [17, 36, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 32], "6dof": 17, "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 22, 23, 24, 25, 26, 27, 29], "view": [19, 28], "recreat": 19, "robotmodel": 19, "displai": [19, 21, 22, 24, 25, 26, 27, 29, 30], "ros2_control_demo_descript": 19, "ok": [19, 22, 23, 24, 25, 26, 27, 28, 29, 36], "warn": [19, 22, 23, 24, 25, 26, 27, 29, 42], "invalid": [19, 22, 23, 24, 25, 26, 27, 29], "frame": [19, 22, 23, 24, 25, 26, 27, 28, 29, 38], "odom": [19, 22, 23, 24, 25, 26, 27, 29, 34, 50], "cantransform": [19, 22, 23, 24, 25, 26, 27, 29], "target_fram": [19, 22, 23, 24, 25, 26, 27, 29], "happen": [19, 22, 23, 24, 25, 26, 27, 28, 29], "exemplari": [19, 22, 24, 25, 26, 27, 29, 31, 33, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 29, 30], "yellow": [19, 21, 22, 24, 25, 26, 27, 29, 30], "rectangl": [19, 21, 22, 24, 25, 26, 27, 29], "introspect": [19, 21, 22, 23, 24, 25, 26, 27, 29], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "entrypoint": 19, "nomin": 19, "marker": [19, 21, 22, 23, 24, 25, 26, 27, 29, 30], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "jointstatebroadcast": [19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "forward_position_control": [19, 20, 21, 24, 25, 26, 27, 29, 30], "forward_command_control": [19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 37, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "std_msg": [19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 37, 39, 47, 53], "float64multiarrai": [19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 37, 39, 47, 53], "everi": [19, 24, 25, 26, 27, 28, 29, 30, 35, 39, 43, 56], "test_forward_position_control": [19, 24, 25, 26, 27, 29, 30], "block": [19, 21, 22, 24, 25, 26, 27, 28, 29], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27], "50000": [19, 21, 25, 26, 27], "echo": [19, 20, 21, 23, 25, 26, 30], "joint_stat": [19, 21, 23, 30, 42], "dynamic_joint_st": [19, 21, 30, 42], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 22, 27], "set_controller_st": 19, "rrbot_control": [19, 20, 21, 29, 30], "four": [19, 22, 31], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 21, 22, 24, 25, 26, 27, 29, 30], "rrbot_forward_position_publish": [19, 30], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "interface_nam": [20, 38, 39], "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "example_12": 21, "been": 21, "known": 21, "passthrough_control": 21, "ros2_control_demo_example_12": 21, "ident": [21, 23, 28, 30, 44], "joint2_position_control": 21, "passthroughcontrol": 21, "joint1_position_control": 21, "someth": 21, "automat": [21, 28, 30, 34, 51], "appear": 21, "whose": [21, 44], "henc": [21, 28], "launch_chained_control": 21, "position_control": [21, 35, 39], "streamlin": 21, "clearli": 21, "sent": [21, 43], "reflect": 21, "canopen_402": [22, 27], "modbu": [22, 27], "rs232": [22, 27], "rs485": [22, 27], "ros2_control_demo_example_14": 22, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 22, "list_hardware_compon": [22, 23, 25, 26, 27], "rrbotmodularjoint2": [22, 27], "rrbotactuatorwithoutfeedback": 22, "rrbotmodularjoint1": [22, 27], "rrbotmodularpositionsensorjoint2": 22, "rrbotsensorpositionfeedback": 22, "rrbotmodularpositionsensorjoint1": 22, "forward_velocity_control": [22, 24], "000000": 22, "00000": [22, 23, 24], "25300": 22, "rrbot_actuator_without_feedback": 22, "rrbot_sensor_for_position_feedback": 22, "example_2": 23, "excess": 23, "print": [23, 42], "left_wheel_joint": 23, "right_wheel_joint": 23, "diffbot_base_control": 23, "diff": 23, "geometry_msg": [23, 25, 26, 34, 38, 50], "twist": [23, 50, 51], "linear": [23, 28, 34, 41, 44, 46, 50, 51], "angular": [23, 34, 41, 50, 51], "circl": 23, "diffbotsystemhardwar": 23, "33333": 23, "faster": 23, "genericsystem": 23, "use_mock_hardwar": 23, "true": [23, 30, 34, 43, 44, 45, 46, 50], "calculate_dynam": 23, "diffbot_control": 23, "diffbot_descript": 23, "diffbot_system": 23, "example_3": 24, "fri": [24, 55], "abb": [24, 55], "yumi": 24, "schunk": [24, 55], "lwa4p": 24, "illeg": 24, "declin": 24, "faulti": 24, "ros2_control_demo_example_3": 24, "rrbot_system_multi_interfac": 24, "robot_control": [24, 28], "spawn": 24, "forward_acceleration_control": 24, "velocity_control": [24, 35, 39], "jointgroupvelocitycontrol": 24, "rrbotsystemmultiinterfacehardwar": 24, "po": [24, 44], "78500": 24, "vel": [24, 50], "acc": 24, "control_lvl": 24, "forward_illegal1_control": 24, "forward_illegal2_control": 24, "1676209982": 24, "531163501": 24, "resource_manag": 24, "rrbotsystemmultiinterfac": 24, "did": 24, "531223835": 24, "sinc": [24, 28, 33], "reject": [24, 43, 44], "spawner": 24, "531717376": 24, "spawner_forward_illegal1_control": 24, "indic": [24, 28], "rrbot_multi_interface_forward_control": 24, "krc": 25, "prototyp": 25, "odri": [25, 55], "ros2_control_demo_example_4": 25, "rrbot_system_with_sensor": 25, "rrbotsystemwithsensor": 25, "rrbotsystemwithsensorhardwar": 25, "fts_broadcast": [25, 26], "force_torque_sensor_broadcast": [25, 26], "forcetorquesensorbroadcast": [25, 26], "wrench": [25, 26, 32], "republish": [25, 26], "wrenchstamp": [25, 26, 38], "stamp": [25, 26, 50], "sec": [25, 26], "1676444704": [25, 26], "nanosec": [25, 26], "332221422": [25, 26], "tool_link": [25, 26], "946532964706421": 25, "nan": [25, 43], "0540995597839355": 25, "rrbot_with_sensor_control": 25, "pc": 26, "3d": [26, 28], "ros2_control_demo_example_5": 26, "rrbot_system_with_external_sensor": 26, "externalrrbotftsensor": 26, "externalrrbotforcetorquesensorhardwar": 26, "2126582860946655": 26, "3202226161956787": 26, "4302282333374023": 26, "540233612060547": 26, "647800624370575": 26, "7602499723434448": 26, "rrbot_with_external_sensor_control": 26, "rrbot_system_position_onli": 26, "external_rrbot_force_torque_sensor": 26, "mara": 27, "ros2_control_demo_example_6": 27, "rrbot_modular_actu": 27, "rrbotmodularjoint": 27, "rrbot_actu": 27, "queri": [28, 45], "enhanc": 28, "deploi": 28, "oper": [28, 56], "pattern": 28, "vendor": 28, "runtim": 28, "program": 28, "conform": 28, "newest": 28, "characterist": 28, "tree": [28, 34], "primari": [28, 45], "commerci": 28, "scratch": 28, "illustr": 28, "stl": 28, "dae": 28, "coars": 28, "mesh": 28, "fast": [28, 55], "collis": 28, "express": 28, "vertic": 28, "transform": 28, "rotat": [28, 34, 43], "translat": [28, 34, 51], "proxim": 28, "face": 28, "co": 28, "planer": 28, "xy": 28, "plane": 28, "align": 28, "blender": 28, "begin": 28, "neg": [28, 43], "pitch": 28, "yaw": 28, "repeat": 28, "robot_6_dof": 28, "base_link": [28, 50, 51], "link_0": 28, "inerti": 28, "mass": 28, "inertia": 28, "ixx": 28, "ixi": 28, "ixz": 28, "iyi": 28, "iyz": 28, "izz": 28, "tool0": 28, "base_joint": 28, "joint_1": 28, "link_1": 28, "061584": 28, "141592653589793": 28, "name_spac": 28, "class_nam": 28, "pi": [28, 43, 46], "enclos": 28, "previous": 28, "left": 28, "zero": [28, 32, 43, 44], "rel": [28, 44], "center": 28, "uniform": 28, "consecut": 28, "motion": [28, 43], "subsequ": 28, "join": [28, 56], "speci": 28, "verifi": 28, "urdf_to_graphviz": 28, "r6bot": 28, "explain": 28, "robotsystem": 28, "ur5": 28, "five": 28, "hardware_interface_return_valu": 28, "hardware_interface_publ": 28, "commandinterfac": 28, "durat": 28, "period": [28, 43], "privat": 28, "memori": [28, 36], "alloc": 28, "establish": 28, "angl": [28, 33, 50], "notabl": 28, "vari": 28, "fill": 28, "field": [28, 42, 44], "suppos": [28, 44], "tcp_force_torque_sensor": 28, "Their": 28, "pointer": 28, "info_": 28, "state_interfaces_": 28, "nearli": 28, "previou": [28, 44, 56], "command_interfaces_": 28, "constraint": [28, 36, 40, 41, 43, 45, 46, 50], "respons": 28, "turn": 28, "oppos": [28, 45], "tcp": [28, 32], "packet": 28, "robot_6_dof_hardwar": 28, "discov": 28, "library_nam": 28, "base_class_typ": 28, "human": 28, "notic": [28, 44], "just": 28, "add_librari": 28, "robot_hardwar": 28, "unlik": 28, "finit": 28, "certain": [28, 37, 47, 53], "transit": [28, 35, 44], "robotcontrol": 28, "nine": 28, "six": [28, 38], "callback": 28, "lifetim": 28, "restart": 28, "reconfigur": 28, "buffer": [28, 56], "reset": [28, 50], "transfer": 28, "eventu": 28, "mutex": 28, "guarante": [28, 44], "never": 28, "release_interfac": 28, "shut": 28, "free": [28, 34], "cleanup": 28, "r6bot_control": 28, "view_r6bot": 28, "ros2_control_demo_example_7": 28, "send_trajectori": 28, "circular": 28, "ros2_control_demo_example_8": 29, "rrbot_transmissions_system_position_onli": 29, "rrbottransmissionssystempositiononlyhardwar": 29, "transmission1": 29, "actuator1": 29, "transmission2": 29, "actuator2": 29, "383253": 29, "766505": 29, "53301": 29, "example_9": 30, "later": [30, 44], "ros2_control_demo_example_9": 30, "rrbot_gazebo_class": 30, "usr": 30, "ax": [31, 33, 38, 41, 46, 52], "wheel": [31, 33, 34, 50, 52], "traction": [31, 33, 50, 51, 52], "steerabl": [31, 33, 52], "generate_parameter_librari": [31, 32, 33, 39, 40, 41, 46, 50, 52], "parameter": [31, 33, 50, 52], "front_wheel_track": 31, "front": [31, 32, 33, 50, 52], "length": [31, 41, 46, 50, 52], "en": [31, 33, 52], "wikipedia": [31, 33, 50, 52, 56], "wiki": [31, 33, 44, 45, 52], "wheelbas": [31, 33, 52], "rear_wheel_track": 31, "rear": [31, 33, 50, 52], "distanc": [31, 33, 45, 48, 52], "front_wheels_radiu": [31, 52], "radiu": [31, 33, 52], "rear_wheels_radiu": [31, 52], "chainedcontrollerinterfac": 32, "joint_refer": 32, "trajectory_msg": [32, 44, 45], "jointtrajectorypoint": [32, 44], "admittancecontrollerst": 32, "ft_sensor": 32, "sensor_nam": [32, 38, 41, 48], "ackermann": [33, 35, 50], "vehicl": 33, "probabl": 33, "front_wheel_radiu": 33, "rear_wheel_radiu": 33, "bodi": 34, "odometri": [34, 50, 51], "space": [34, 45], "hw_if_posit": [34, 35, 50], "hw_if_veloc": [34, 35, 50], "position_feedback": [34, 50], "twiststamp": [34, 50], "use_stamped_vel": [34, 50], "nav_msg": [34, 50], "estim": 34, "tf": [34, 50], "tf2_msg": [34, 50], "tfmessag": [34, 50], "enable_odom_tf": [34, 50], "cmd_vel_out": 34, "publish_limited_veloc": 34, "jointlimit": 34, "joint_limit": 34, "commonli": 35, "bicycl": [35, 50], "effort_control": [35, 39], "hw_if_acceler": 35, "hw_if_effort": 35, "represent": [35, 45], "rqt_joint_trajectory_control": [35, 45], "onconfigur": 35, "configure_control": 35, "unsign": 35, "unspecifi": 35, "is_async": 35, "asynchron": 35, "controllernam": 36, "protect": 36, "reserv": 36, "importantli": 36, "ask": [36, 42], "sort": 36, "controller_name_namespac": 36, "controller_name_packag": 36, "ros2_control_test_asset": 36, "special": [37, 44, 47, 53], "hz": [37, 40, 47, 53], "wrapper": [38, 41, 48], "forcetorquesensor": 38, "6d": 38, "per": 38, "less": [38, 46, 50], "example_nam": 38, "example_interfac": 38, "feedforward": 39, "multi_interface_forward_command_control": 39, "string_arrai": [39, 46, 50], "action_monitor_r": [40, 43, 45], "greater": [40, 43], "equal": [40, 41], "goal_toler": 40, "max_effort": 40, "allow_stal": 40, "stall": 40, "stall_velocity_threshold": 40, "threshold": 40, "001": 40, "stall_timeout": 40, "imusensor": 41, "orient": 41, "angular_veloc": 41, "linear_acceler": 41, "static_covariance_orient": 41, "double_arrai": [41, 50], "static": 41, "covari": [41, 50], "row": 41, "static_covariance_angular_veloc": 41, "static_covariance_linear_acceler": 41, "unless": 42, "latter": 42, "matrix": [42, 50], "use_local_top": 42, "my_state_broadcast": 42, "arrai": 42, "extra_joint": 42, "map_interface_to_joint_st": 42, "usecas": 42, "hydraul": [42, 43], "relianc": 42, "techniqu": 42, "slightli": 42, "custom_interfac": 42, "kf_estimated_posit": 42, "derived_veloc": 42, "derived_effort": 42, "torque_sensor": 42, "current_sensor": 42, "command_joint": 43, "jtc": [43, 46], "monitor": [43, 45], "allow_partial_joints_go": [43, 45], "allow_integration_in_goal_trajectori": [43, 44], "interpolation_method": 43, "interpol": [43, 45, 46], "spline": 43, "open_loop_control": [43, 45], "gain": [43, 46], "numer": 43, "numeric_limit": 43, "quiet_nan": 43, "start_with_hold": 43, "hold": [43, 44], "allow_nonzero_velocity_at_trajectory_end": 43, "cmd_timeout": 43, "stale": 43, "count": 43, "goal_tim": [43, 45], "toler": [43, 45], "jointtrajectori": [43, 44, 45], "stopped_velocity_toler": [43, 45], "deviat": 43, "maxim": 43, "reach": [43, 44, 45], "predefin": 43, "infinit": 43, "amount": 43, "law": [43, 45], "k_": 43, "ff": 43, "v_d": 43, "k_p": 43, "k_i": 43, "sum": 43, "dt": 43, "k_d": 43, "angle_wraparound": 43, "i_clamp": 43, "clamp": 43, "symmetr": 43, "ff_velocity_scal": 43, "feed": [43, 46], "wrap": [43, 45], "ie": [43, 44], "shortest": 43, "s_d": 43, "saniti": 44, "sampl": [44, 50], "segment": [44, 45], "fault": 44, "datapoint": 44, "deduc": 44, "nor": 44, "discourag": 44, "yield": 44, "discontinu": [44, 45], "cubic": [44, 46], "quintic": [44, 46], "heun": 44, "grid": 44, "10m": 44, "deduct": 44, "nonzero": 44, "inconsist": 44, "overshoot": 44, "timestamp": 44, "arriv": 44, "necessarili": 44, "discard": 44, "substitut": 44, "smarter": 44, "preserv": 44, "flat": 44, "grei": 44, "red": 44, "traj": 44, "time_from_start": 44, "splice": 44, "append": 44, "held": [44, 45], "smooth": [44, 56], "longer": 44, "slower": 44, "effect": 44, "Of": 44, "interest": 44, "adolfo": [44, 45], "rodriguez": [44, 45], "instant": 45, "citat": 45, "adapt": 45, "restrict": 45, "robust": 45, "clock": 45, "queu": 45, "joint3": 45, "joint4": 45, "joint5": 45, "joint6": 45, "preempt": 45, "cancel": 45, "notifi": 45, "abort": 45, "legal": 45, "subset": 45, "favor": 45, "violat": 45, "joint_trajectori": 45, "fire": 45, "sender": 45, "query_st": 45, "cumbersom": 45, "controller_st": [45, 46, 50], "jointtrajectorycontrollerst": 45, "querytrajectoryst": 45, "footnot": 45, "pidro": 46, "pd": 46, "theoret": 46, "misus": 46, "pid_control": 46, "pidcontrol": 46, "reference_and_state_dof_nam": 46, "reference_and_state_interfac": 46, "dof_nam": 46, "in_chained_mod": [46, 50], "multidofcommand": 46, "use_external_measured_st": 46, "measured_st": 46, "set_feedforward_control": 46, "std_srv": 46, "setbool": 46, "multidofstatestamp": 46, "rangesensor": 48, "radiation_typ": 48, "int": [48, 50], "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "m": [48, 50], "max_rang": 48, "maximum": 48, "varianc": 48, "rqt": 49, "nomenclatur": 50, "unstamp": 50, "concret": 50, "tricylc": 50, "seer": 50, "front_steer": 50, "front_wheels_nam": 50, "rear_wheels_nam": 50, "traction_feedback_typ": 50, "reference_unstamp": 50, "tf_odometri": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "open_loop": 50, "velocity_rolling_window_s": 50, "number": 50, "averag": 50, "base_frame_id": 50, "odom_frame_id": 50, "twist_covariance_diagon": 50, "diagon": 50, "pose_covariance_diagon": 50, "pose": 50, "wheel_track": 52, "isaac": 54, "webot": 54, "manufactur": 55, "franka": 55, "emika": 55, "xarm": 55, "flexiv": 55, "rizon": 55, "igu": 55, "commonplac": 55, "husarion": 55, "rosbot": 55, "xl": 55, "2r": 55, "pro": 55, "openmanipul": 55, "clearpath": 55, "jackal": 55, "j100": 55, "huski": 55, "a200": 55, "unoffici": 55, "iiwa": 55, "lbr": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "egm": 55, "mitsubishi": 55, "rv1a": 55, "protocol": 55, "ethercat": 55, "canopen": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "odriv": 55, "ndi": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "hoverboard": 55, "overcom": 56, "idea": 56, "wide": 56, "toolkit": 56, "unreleas": 56, "question": 56, "wg": 56, "wednesdai": 56, "announc": 56, "discours": 56, "googl": 56, "bug": 56, "tracker": 56, "reproduc": 56, "regard": 56, "built": 56, "gmt": 56}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "review": 0, "stat": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 10], "merg": 1, "write": [1, 12, 15, 28, 36], "document": [1, 9, 11, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": 2, "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 10, 12, 13, 15, 28, 39, 42, 45], "class": [2, 9], "interfac": [2, 4, 13, 16, 20, 24, 28, 29, 32, 34, 37, 39, 42, 45, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 9, 10, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 45, 46, 47, 50, 53, 54], "": [2, 34, 45, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 7, 8, 11, 13, 17, 28, 32, 35, 56], "robothardwar": 2, "compon": [2, 4, 6, 12, 14, 15], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 17], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 17], "run": [3, 4, 5, 17], "demo": [3, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 28], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 9, 10, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 36, 45, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 45], "simul": [3, 5, 30, 54], "plugin": [3, 5, 28], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 17], "binari": 4, "packag": [4, 17], "from": [4, 6, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 46, 50], "sourc": [4, 17], "architectur": 4, "manag": [4, 9, 10], "resourc": [4, 7, 9], "user": 4, "descript": [4, 28, 34, 45, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 22, 24, 25, 26, 27, 28, 29, 35, 55], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 11, 34, 45, 51], "pariti": 6, "present": 7, "2023": [7, 8], "10": [7, 20], "18": 7, "roscon": [7, 8], "workshop": [7, 8], "steroid": [7, 8], "02": 7, "ro": [7, 32, 34, 37, 39, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 26], "2022": 7, "12": [7, 21], "industri": [7, 20, 25, 26, 29], "confer": [7, 8], "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "summari": 8, "slide": 8, "befor": 8, "come": 8, "peopl": 8, "chain": [9, 21], "cascad": 9, "scope": 9, "background": 9, "knowledg": 9, "motiv": 9, "purpos": 9, "implement": 9, "A": 9, "base": 9, "chainablecontrol": 9, "inner": 9, "activ": 9, "deactiv": 9, "debug": 9, "output": [9, 34], "close": 9, "remark": 9, "determin": 10, "paramet": [10, 14, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 46, 47, 48, 50, 52, 53], "helper": 10, "script": 10, "spawner": 10, "unspawn": 10, "concept": [10, 11], "restart": 10, "all": 10, "api": 11, "guidelin": [12, 35], "best": [12, 35], "practic": [12, 35], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 39, 42, 45], "sensor": [13, 25, 26, 38, 41, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 44], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 26, 36], "refer": [15, 32, 34, 36, 45, 46, 50], "command": [16, 32, 42, 45, 46, 50, 51], "line": 16, "list_control": 16, "list_controller_typ": 16, "list_hardware_compon": 16, "list_hardware_interfac": 16, "load_control": 16, "reload_controller_librari": 16, "set_controller_st": 16, "switch_control": 16, "unload_control": 16, "view_controller_chain": 16, "what": 17, "you": 17, "can": 17, "find": 17, "thi": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "goal": 17, "overview": [17, 28], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 45], "rrbot": [19, 21, 30], "step": [19, 21, 22, 23, 24, 25, 26, 27, 29, 30], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "14": 22, "modular": [22, 27], "actuat": [22, 27], "provid": 22, "state": [22, 32, 45, 46, 50], "diffbot": 23, "3": 24, "multipl": 24, "4": 25, "integr": [25, 54], "connect": 26, "6": 27, "separ": 27, "commun": [27, 54, 56], "each": 27, "7": 28, "full": 28, "6dof": 28, "geometri": 28, "cmake": 28, "librari": 28, "launch": 28, "8": 29, "an": 29, "expos": 29, "transmiss": 29, "9": 30, "ackermann_steering_control": 31, "admitt": 32, "2": [32, 34, 37, 39, 47, 53], "topic": [32, 37, 39, 47, 53], "bicycle_steering_control": 33, "diff_drive_control": 34, "other": [34, 35, 45, 51], "feedback": 34, "subscrib": [34, 45, 46, 50], "publish": [34, 45, 46, 50], "mobil": 35, "manipul": 35, "broadcast": [35, 38, 41, 48], "common": 35, "new": 36, "effort_control": 37, "jointgroupeffortcontrol": 37, "forc": 38, "torqu": 38, "forward_command_control": 39, "gripper": 40, "action": [40, 45], "imu": 41, "joint_state_broadcast": 42, "detail": 43, "about": 43, "trajectori": [44, 45], "represent": 44, "interpol": 44, "method": 44, "none": 44, "spline": 44, "visual": 44, "replac": 44, "joint_trajectory_control": 45, "preemption": 45, "polici": 45, "servic": [45, 46], "further": 45, "inform": 45, "pid": 46, "execut": [46, 50], "logic": [46, 50], "preced": [46, 50], "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "welcom": 56, "develop": 56, "organis": 56}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Reviewers\u2019 Stats": [[0, "reviewers-stats"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [17, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [10, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [12, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-10-18 ROSCon Workshop: ros2_control on Steroids": [[7, "roscon-workshop-ros2-control-on-steroids"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "ROSCon 2023 Workshop": [[8, "roscon-2023-workshop"]], "ros2_control on Steroids": [[8, "ros2-control-on-steroids"]], "Summary": [[8, "summary"]], "Slides": [[8, "slides"]], "Before coming to the conference": [[8, "before-coming-to-the-conference"]], "People": [[8, "people"]], "Controller Chaining / Cascade Control": [[9, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[9, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[9, "motivation-purpose-and-use"]], "Implementation": [[9, "implementation"]], "A Controller Base-Class: ChainableController": [[9, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[9, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[9, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[9, "debugging-outputs"]], "Closing remarks": [[9, "closing-remarks"]], "Determinism": [[10, "determinism"]], "Parameters": [[10, "parameters"], [14, "parameters"], [31, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [46, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [52, "parameters"], [53, "parameters"]], "Helper scripts": [[10, "helper-scripts"]], "spawner": [[10, "spawner"]], "unspawner": [[10, "unspawner"]], "Using the Controller Manager in a Process": [[10, "using-the-controller-manager-in-a-process"]], "Concepts": [[10, "concepts"], [11, "concepts"]], "Restarting all controllers": [[10, "restarting-all-controllers"]], "Restarting hardware": [[10, "restarting-hardware"]], "ros2_control": [[11, "ros2-control"]], "API Documentation": [[11, "api-documentation"]], "Features": [[11, "features"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [35, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[12, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[12, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[13, "ros2-control-hardware-interface-types"]], "Joints": [[13, "joints"]], "Sensors": [[13, "sensors"]], "GPIOs": [[13, "gpios"]], "Examples": [[13, "examples"], [17, "examples"]], "Mock Components": [[14, "mock-components"]], "Generic System": [[14, "generic-system"]], "Per-joint Parameters": [[14, "per-joint-parameters"]], "Writing a Hardware Component": [[15, "writing-a-hardware-component"]], "Useful External References": [[15, "useful-external-references"], [36, "useful-external-references"]], "Command Line Interface": [[16, "command-line-interface"]], "list_controllers": [[16, "list-controllers"]], "list_controller_types": [[16, "list-controller-types"]], "list_hardware_components": [[16, "list-hardware-components"]], "list_hardware_interfaces": [[16, "list-hardware-interfaces"]], "load_controller": [[16, "load-controller"]], "reload_controller_libraries": [[16, "reload-controller-libraries"]], "set_controller_state": [[16, "set-controller-state"]], "switch_controllers": [[16, "switch-controllers"]], "unload_controller": [[16, "unload-controller"]], "view_controller_chains": [[16, "view-controller-chains"]], "Demos": [[17, "demos"]], "What you can find in this repository": [[17, "what-you-can-find-in-this-repository"]], "Goals": [[17, "goals"]], "Examples Overview": [[17, "examples-overview"]], "Local installation": [[17, "local-installation"]], "Build from debian packages": [[17, "build-from-debian-packages"]], "Build from source": [[17, "build-from-source"]], "Using Docker": [[17, "using-docker"]], "To view the robot": [[17, "to-view-the-robot"]], "To run the ros2_control demos": [[17, "to-run-the-ros2-control-demos"]], "Quick Hints": [[17, "quick-hints"]], "Example 1: RRBot": [[19, "example-1-rrbot"]], "Tutorial steps": [[19, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [29, "tutorial-steps"], [30, "tutorial-steps"]], "Files used for this demos": [[19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [29, "files-used-for-this-demos"], [30, "files-used-for-this-demos"]], "Controllers from this demo": [[19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [29, "controllers-from-this-demo"], [30, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "Example 12: Controller chaining with RRBot": [[21, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[22, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[23, "diffbot"]], "Example 3: Robots with multiple interfaces": [[24, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[25, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[25, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[26, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[27, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[28, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[28, "ros2-control-overview"]], "Writing a URDF": [[28, "writing-a-urdf"]], "Geometry": [[28, "geometry"]], "URDF file": [[28, "urdf-file"]], "Writing a hardware interface": [[28, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[28, "plugin-description-file-hardware"]], "CMake library (hardware)": [[28, "cmake-library-hardware"]], "Writing a controller": [[28, "writing-a-controller"]], "Plugin description file (controller)": [[28, "plugin-description-file-controller"]], "CMake library (controller)": [[28, "cmake-library-controller"]], "Launching the example": [[28, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[29, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[30, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[31, "ackermann-steering-controller"]], "Admittance Controller": [[32, "admittance-controller"]], "ROS 2 interface of the controller": [[32, "ros-2-interface-of-the-controller"], [37, "ros-2-interface-of-the-controller"], [39, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[32, "topics"], [37, "topics"], [39, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[32, "ros2-control-interfaces"]], "References": [[32, "references"], [34, "references"], [45, "references"]], "States": [[32, "states"], [45, "states"], [46, "states"], [50, "states"]], "Commands": [[32, "commands"], [42, "commands"], [45, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[33, "bicycle-steering-controller"]], "diff_drive_controller": [[34, "diff-drive-controller"]], "Other features": [[34, "other-features"], [45, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[34, "description-of-controller-s-interfaces"], [45, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[34, "feedback"]], "Output": [[34, "output"]], "ROS 2 Interfaces": [[34, "ros-2-interfaces"]], "Subscribers": [[34, "subscribers"], [46, "subscribers"], [50, "subscribers"]], "Publishers": [[34, "publishers"], [45, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[35, "ros2-controllers"]], "Controllers for Mobile Robots": [[35, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[35, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[35, "broadcasters"]], "Common Controller Parameters": [[35, "common-controller-parameters"]], "Writing a new controller": [[36, "writing-a-new-controller"]], "effort_controllers": [[37, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[37, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[38, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[39, "forward-command-controller"]], "Hardware interface type": [[39, "hardware-interface-type"], [42, "hardware-interface-type"]], "Gripper Action Controller": [[40, "gripper-action-controller"]], "IMU Sensor Broadcaster": [[41, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[42, "joint-state-broadcaster"]], "Details about parameters": [[43, "details-about-parameters"]], "Trajectory Representation": [[44, "trajectory-representation"]], "Interpolation Method none": [[44, "interpolation-method-none"]], "Interpolation Method spline": [[44, "interpolation-method-spline"]], "Visualized Examples": [[44, "visualized-examples"]], "Trajectory Replacement": [[44, "trajectory-replacement"]], "joint_trajectory_controller": [[45, "joint-trajectory-controller"]], "Hardware interface types": [[45, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[45, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[45, "preemption-policy"]], "Actions 1": [[45, "actions"]], "Subscriber 1": [[45, "subscriber"]], "Services": [[45, "services"], [46, "services"]], "Further information": [[45, "further-information"]], "PID Controller": [[46, "pid-controller"]], "Execution logic of the controller": [[46, "execution-logic-of-the-controller"], [50, "execution-logic-of-the-controller"]], "Using the controller": [[46, "using-the-controller"]], "References (from a preceding controller)": [[46, "references-from-a-preceding-controller"], [50, "references-from-a-preceding-controller"]], "position_controllers": [[47, "position-controllers"]], "position_controllers/JointGroupPositionController": [[47, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[48, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[49, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[50, "steering-controllers-library"]], "tricycle_controller": [[51, "tricycle-controller"]], "Velocity commands": [[51, "velocity-commands"]], "tricycle_steering_controller": [[52, "tricycle-steering-controller"]], "velocity_controllers": [[53, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[53, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[54, "simulator-integrations"]], "Hosted by ros-controls": [[54, "hosted-by-ros-controls"]], "Community": [[54, "community"]], "Supported Robots": [[55, "supported-robots"]], "Welcome to the ros2_control documentation!": [[56, "welcome-to-the-ros2-control-documentation"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}})
\ No newline at end of file
+Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/resources/roscon2023_workshop", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/pid_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/resources/roscon2023_workshop.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/pid_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "ROSCon 2023 Workshop", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Hardware Components", "ros2_control
hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "PID Controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation!"], "terms": {"The": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 43, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 28, 34, 44, 45], "ros2_control": [0, 1, 4, 10, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 34, 36, 54], "framework": [0, 1, 2, 6, 7, 8, 10, 11, 12, 13, 14, 16, 17, 28, 35, 36, 42, 56], "show": [0, 1, 3, 4, 5, 7, 8, 10, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 42, 44], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 36, 42, 43, 44, 45, 55], "time": [0, 1, 2, 6, 7, 8, 10, 14, 16, 17, 19, 22, 23, 24, 25, 26, 27, 28, 29, 34, 36, 38, 43, 44, 45, 56], "activ": [0, 1, 2, 4, 10, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 42, 43, 45], "assign": [0, 36], "finish": 0, "rate": [0, 23, 35, 43, 44, 45], "last": [0, 12, 15, 28, 32, 36, 43, 44, 45], "date": 0, "benc": [0, 6, 7, 8], "magyar": [0, 6, 7, 8], "bmagyar": [0, 8], "1244": 0, "1024": 0, "0": [0, 3, 4, 5, 9, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 40, 41, 42, 43, 44, 45, 48, 50, 52], "82": 0, "2023": [0, 56], "12": [0, 17, 55, 56], "30t20": 0, "25": 0, "34z": 0, "dr": [0, 7], "deni": [0, 6, 7, 8], "destogl": 0, "986": 0, "561": 0, "57": 0, "18t14": 0, "11": [0, 17], "03z": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "153": 0, "134": 0, "88": 0, "26t09": 0, "00": [0, 8], "02z": 0, "fetch": 0, "31": [0, 56], "03": [0, 45], "26": 0, "14": [0, 17, 50], "utc": 0, "dure": [0, 17, 28, 45], "past": [0, 44], "month": 0, "533": 0, "402": 0, "75": 0, "439": 0, "136": 0, "142": 0, "123": 0, "87": 0, "have": [0, 1, 2, 4, 6, 8, 9, 10, 12, 13, 14, 15, 17, 19, 21, 23, 24, 28, 30, 31, 32, 33, 35, 36, 42, 43, 45, 46, 52], "contribut": [0, 4, 7], "develop": [0, 1, 7, 14, 15, 17, 36], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 28, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 50, 52, 53, 54, 55, 56], "project": [0, 1, 56], "give": [0, 1, 7, 10, 17, 19, 23, 24, 44, 56], "valuabl": 0, "pull": [0, 8, 15], "request": [0, 2, 15, 28, 42, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 38, 41, 43, 45, 48, 50, 52], "more": [0, 1, 2, 3, 4, 5, 6, 8, 10, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 45, 52], "inform": [0, 3, 5, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 36, 56], "karsten": 0, "knese": 0, "karsten1987": 0, "186": 0, "118": 0, "63": 0, "2021": 0, "09": 0, "07t16": 0, "47": 0, "31z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "90": [0, 28], "80": 0, "89": 0, "27t10": 0, "54": 0, "11z": 0, "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "69": 0, "67": 0, "97": 0, "29t05": 0, "18": [0, 8, 28], "25z": 0, "victor": 0, "lopez": 0, "v": [0, 16, 25, 43], "93": 0, "60": 0, "65": 0, "10": [0, 3, 5, 17, 24, 50], "14t09": 0, "01": [0, 40, 43, 45], "andyz": 0, "46": 0, "45": 0, "98": 0, "23t02": 0, "17": [0, 8], "26z": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "157": 0, "43": [0, 4, 13, 23], "27": 0, "25t12": 0, "02": 0, "18z": 0, "olivi": 0, "stass": 0, "52": [0, 48], "40": 0, "77": 0, "26t08": 0, "13z": 0, "jordan": 0, "palacio": 0, "78": 0, "34": 0, "44": 0, "15t08": 0, "45z": 0, "erick": 0, "g": [0, 1, 2, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 32, 36, 37, 42, 47, 50, 53, 56], "isla": 0, "osuna": 0, "erickiso": 0, "139": 0, "28": [0, 50], "20": [0, 8, 40, 43, 45], "19t20": 0, "32": 0, "07z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "29": 0, "23": [0, 4], "79": 0, "2022": 0, "08": 0, "30t16": 0, "41": 0, "23z": 0, "none": [0, 9, 36, 42, 43, 45], "bijoua29": 0, "160": 0, "21": [0, 50], "13": [0, 8, 17], "06": 0, "01t20": 0, "48": [0, 3, 5], "32z": 0, "jaron": 0, "l": 0, "167": 0, "10t19": 0, "59": 0, "59z": 0, "livanov93": 0, "164": 0, "05": [0, 45, 56], "22t06": 0, "28z": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "94": 0, "27t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "146": 0, "16": [0, 55], "25t06": 0, "15z": 0, "bailac": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 36, 40, 44, 48, 50], "09t12": 0, "52z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "135": 0, "22t09": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "24t22": 0, "ari": 0, "synodino": 0, "progtologist": 0, "152": 0, "07": 0, "30t19": 0, "58z": 0, "chen": 0, "bainian": 0, "briancbn": 0, "36": 0, "9": [0, 6, 8, 17, 41], "25t01": 0, "51": 0, "12z": 0, "paul": 0, "gesel": 0, "pac48": 0, "14t18": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "8": [0, 17], "25t18": 0, "19z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "07t07": 0, "01z": 0, "ddengster": 0, "2020": 0, "01t03": 0, "andr": 0, "montano": 0, "anfemosa": 0, "133": 0, "7": [0, 7, 8, 17, 20, 23, 50], "29t15": 0, "37z": 0, "homalozoa": 0, "x": [0, 23, 25, 26, 28, 32, 34, 38, 41, 50, 51, 55], "130": 0, "23t11": 0, "22": [0, 8, 10], "mahaarbo": 0, "01t11": 0, "44z": 0, "matt": 0, "reynold": 0, "matthew": 0, "18t19": 0, "56": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "04": [0, 8, 10], "09t00": 0, "38": [0, 3, 5], "06z": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "04t13": 0, "50": [0, 4, 10, 23], "48z": 0, "dasroteskelett": 0, "150": 0, "6": [0, 17, 19, 28], "28t09": 0, "36z": 0, "brewmast": 0, "harderthan": 0, "124": 0, "26t15": 0, "47z": 0, "A": [0, 4, 7, 13, 15, 17, 25, 26, 35, 36, 42, 44, 45], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "19t13": 0, "39": 0, "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 21, 22, 24, 25, 27, 28, 29, 30, 44, 50, 55], "42": 0, "20t19": 0, "55": 0, "jack": 0, "jackcent": 0, "02t15": 0, "37": 0, "17z": 0, "han": 0, "martin": 0, "duringhof": 0, "4": [0, 13, 17, 22, 24, 26, 29, 48], "29t21": 0, "15": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "20t07": 0, "40z": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "05t22": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "23t00": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "19t23": 0, "49z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "13t18": 0, "27z": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "26t17": 0, "05z": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "22t14": 0, "19": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "145": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 21, 22, 23, 25, 26, 27, 28, 29, 44, 45, 46], "05t08": 0, "53": 0, "08z": 0, "mrl1kor": 0, "malapatiravi": 0, "07t18": 0, "adam": 0, "serafin": 0, "serafadam": 0, "12t18": 0, "24": [0, 7, 8], "24z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "03t10": 0, "20z": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "22t13": 0, "tim": 0, "clepha": 0, "timpl": 0, "13t07": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "22t00": 0, "guihom": 0, "guihomework": 0, "17t15": 0, "jose": 0, "lui": 0, "rivero": 0, "j": [0, 46], "26t13": 0, "peter": 0, "david": 0, "fagan": 0, "peterdavidfagan": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 45, 50, 55, 56], "23t22": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "27t03": 0, "57z": 0, "akash": 0, "ace314159": 0, "31t17": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "05t12": 0, "46z": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "01t12": 0, "49": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "09z": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "mhubii": 0, "21t11": 0, "50z": 0, "luka": 0, "macha": 0, "lukasmacha97": 0, "85": 0, "17t18": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t07": 0, "qiayuanliao": 0, "qiayuanl": 0, "35": [0, 50], "25t05": 0, "solomon": 0, "swiz23": 0, "15t15": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "08t14": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "05t10": 0, "53z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "01t13": 0, "22z": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "28t07": 0, "33z": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "schulz": 0, "schulze18": 0, "27t21": 0, "29z": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "franz": 0, "fjp": 0, "04t22": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 30, 43], "dmitri": 0, "dignakov": 0, "13t16": 0, "30": [0, 3, 5, 23], "ken551": 0, "03t11": 0, "54z": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "05t14": 0, "bedard": 0, "christophebedard": 0, "27t18": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "19t14": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "21t14": 0, "21z": 0, "flochr": 0, "20t10": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "51z": 0, "abishalini": 0, "sivaraman": 0, "27t14": 0, "ramcharanthota": 0, "ben": 0, "holden": 0, "bobblebal": 0, "01t10": 0, "Will": 0, "baker": 0, "willcbak": 0, "22t15": 0, "robotgir": 0, "17t16": 0, "33": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "17t10": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "18t09": 0, "josh": 0, "newan": 0, "joshnewan": 0, "14t08": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "26t10": 0, "stephen": 0, "street": 0, "sgstreet": 0, "05t20": 0, "jun": 0, "chenjunnn": 0, "09t06": 0, "daniel": 0, "zumkel": 0, "dzumkel": 0, "shane": 0, "loretz": 0, "sloretz": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "17t21": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "31t15": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "00z": 0, "carlo": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "35z": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "09t18": 0, "reframesystem": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "12t08": 0, "55z": 0, "addisu": 0, "z": [0, 23, 25, 26, 28, 32, 34, 38, 41, 50, 51], "taddes": 0, "azeei": 0, "14t20": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "09t08": 0, "sgmurrai": 0, "0000": 0, "00t00": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoya": 0, "tomoyafujita2016": 0, "usamahamayun1": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "66": 0, "64": 0, "92": 0, "71": 0, "104": 0, "03t19": 0, "14z": 0, "86": 0, "95": 0, "100": [0, 4, 13, 37, 47, 53], "99": [0, 10], "72": 0, "link": [0, 3, 4, 5, 7, 9, 12, 28, 35], "list": [0, 4, 7, 9, 10, 12, 15, 16, 21, 28, 36, 43, 54, 55, 56], "who": 0, "submit": [0, 1, 7, 54, 55], "respect": [0, 3, 5, 6, 7, 43, 44, 45], "repositori": [0, 4, 6, 11, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 34, 35], "ros2_control_demo": [0, 1, 4, 17, 19, 28, 30, 56], "control_toolbox": [0, 46, 56], "gazebo_ros2_control": [0, 30], "gz_ros2_control": 0, "realtime_tool": [0, 6, 56], "kinematics_interfac": [0, 32], "control_msg": [0, 3, 5, 32, 43, 45, 46, 50, 56], "ha": [0, 1, 3, 4, 5, 7, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 35, 36, 42, 43, 44, 46], "receiv": [0, 2, 28, 43, 44], "major": [0, 41], "from": [0, 1, 2, 7, 8, 9, 10, 14, 15, 16, 18, 28, 32, 34, 35, 36, 37, 38, 41, 43, 44, 45, 47, 48, 51, 53, 55, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 28, 32, 36, 42, 44, 45, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 8, 10, 13, 14, 16, 17, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 44, 45, 56], "industri": [0, 4, 6, 8, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 10, 13, 19, 21, 23, 30, 34, 38, 42, 50, 51, 56], "softwar": [0, 4, 28], "compon": [0, 7, 10, 11, 13, 16, 17, 22, 23, 24, 25, 26, 27, 28, 32, 34, 35, 38, 41, 48, 50, 51, 56], "http": [0, 1, 4, 6, 8, 17, 28, 31, 33, 52], "www": 0, "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 9, 10, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 36, 41, 43, 44, 48, 52, 56], "horizon": 0, "research": [0, 7, 55], "innov": 0, "programm": 0, "under": [0, 7, 15, 21, 36, 44, 45, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 9, 12, 15, 17, 28, 30, 36, 43, 44, 46], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 36, 45, 46, 56], "consid": [1, 16, 43, 46], "As": [1, 9, 13, 15, 19, 28, 34, 36], "an": [1, 2, 3, 4, 5, 6, 7, 9, 13, 14, 15, 16, 17, 19, 21, 23, 26, 28, 30, 31, 32, 33, 34, 35, 36, 37, 42, 43, 45, 47, 50, 52, 53], "open": [1, 8, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 42, 43, 50], "sourc": [1, 3, 5, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "we": [1, 3, 5, 6, 7, 8, 9, 12, 17, 19, 21, 23, 28, 29, 30, 42], "welcom": 1, "each": [1, 4, 6, 9, 10, 12, 13, 15, 17, 19, 22, 28, 31, 42, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 9, 10, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 42, 44, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 28, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 28], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 19, 28, 35, 37, 42, 43, 44, 45, 47, 50, 53], "up": [1, 7, 8, 15, 17, 44], "some": [1, 3, 5, 6, 7, 17, 19, 22, 23, 24, 25, 26, 27, 28, 29, 32, 42, 43, 45, 56], "standard": [1, 2, 6, 7, 10, 15, 16, 22, 27, 28, 38, 42], "method": [1, 2, 4, 9, 10, 12, 15, 28, 36, 50], "requir": [1, 2, 4, 6, 15, 28, 32, 36, 37, 45, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 10, 17, 28, 34, 51], "scope": 1, "your": [1, 2, 7, 8, 10, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 33, 36, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 9, 10, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 42, 44, 45, 46], "do": [1, 2, 4, 6, 7, 9, 10, 15, 17, 32, 36, 45, 46], "one": [1, 2, 4, 6, 7, 8, 9, 10, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37, 38, 42, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 8, 10, 17], "avoid": [1, 19, 22, 23, 24, 25, 26, 27, 29, 36], "ad": [1, 3, 5, 6, 10, 14, 15, 21, 23, 28, 36, 42], "random": [1, 22, 24, 25, 26, 27], "fix": [1, 2, 28, 31, 33, 52], "put": [1, 15, 36], "those": [1, 2, 4, 6, 9, 14, 15, 17, 28, 34, 36, 38, 42, 43, 44], "separ": [1, 2, 4, 17, 22, 42], "descript": [1, 2, 7, 10, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 36], "titl": 1, "add": [1, 2, 9, 10, 12, 15, 28, 31, 32, 33, 36, 52, 54, 55], "short": [1, 36, 56], "summari": [1, 7, 56], "make": [1, 2, 5, 6, 7, 21, 28, 40, 56], "sure": [1, 5, 6, 19, 21, 22, 23, 24, 25, 26, 27, 29, 56], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 44], "don": [1, 3, 8, 9, 23, 43, 45], "t": [1, 3, 5, 8, 9, 10, 17, 23, 43, 44, 45, 46], "afraid": 1, "review": [1, 6, 56], "maintain": [1, 4, 6, 9, 17, 44], "new": [1, 7, 8, 9, 15, 19, 21, 24, 28, 35, 44, 56], "code": [1, 2, 4, 6, 7, 15, 28], "test": [1, 3, 6, 14, 15, 17, 19, 23, 30, 31, 32, 33, 36, 50, 52], "If": [1, 2, 4, 7, 8, 9, 10, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 36, 38, 42, 43, 44, 45, 46, 50, 56], "function": [1, 2, 6, 7, 8, 21, 28, 32, 50], "alwai": [1, 28], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 28, 44, 45], "intent": [1, 9, 14], "section": [1, 2, 13, 15, 36, 45], "target": [1, 10, 15, 32, 36, 39, 43, 45], "also": [1, 2, 3, 4, 5, 6, 7, 9, 10, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 36, 45, 46], "read": [1, 2, 3, 4, 5, 10, 13, 15, 17, 21, 22, 25, 26, 28, 36, 42, 43, 46, 48, 50], "understand": [1, 6, 44], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 24, 25, 26, 27, 28, 30, 36], "handl": [1, 2, 4, 6, 7, 15, 25, 28, 31, 32, 33, 39, 40, 41, 45, 46, 50, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 8, 10, 13, 28], "pleas": [1, 10, 27, 56], "keep": [1, 28, 36], "mind": [1, 36], "work": [1, 6, 7, 9, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 36, 37, 42, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 7, 8, 9, 10, 14, 15, 16, 21, 24, 28, 32, 35, 36, 40, 43, 45, 46, 50], "That": [1, 15, 36], "wai": [1, 10, 15, 28, 36, 38, 45], "main": [1, 4, 6, 7, 10, 14, 28, 36, 50, 56], "repo": [1, 4, 8, 17], "clean": 1, "featur": [1, 7, 14, 17, 19, 29, 50, 56], "branch": [1, 17], "check": [1, 2, 4, 6, 9, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 36, 43, 44, 45, 52, 56], "satisfi": 1, "befor": [1, 2, 9, 10, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36, 44], "thei": [1, 2, 4, 6, 7, 9, 13, 14, 15, 16, 21, 35, 36, 43, 45, 50], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 36, 38, 39, 43, 44, 45, 46, 50, 56], "must": [1, 3, 5, 9, 10, 13, 17, 28, 41, 43, 45], "approv": 1, "two": [1, 4, 6, 9, 10, 15, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 38, 44, 45, 46, 50, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 9, 10, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 33, 34, 36, 37, 38, 42, 43, 44, 45, 46, 47, 53], "except": [1, 28], "other": [1, 2, 3, 4, 7, 9, 15, 17, 22, 27, 28, 31, 33, 36, 42, 44, 50, 52], "where": [1, 3, 6, 8, 9, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31, 33, 34, 36, 42, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 8, 21, 30, 44, 56], "suffici": [1, 3, 5, 9, 38], "note": [1, 4, 10, 19, 34, 45, 46, 56], "still": [1, 2, 19, 21, 22, 23, 24, 25, 26, 27, 29, 35, 44], "encourag": 1, "help": [1, 10, 14, 15, 16, 36], "u": [1, 3, 5, 10, 17, 43], "increas": [1, 23, 46], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 8, 15, 17, 21, 28], "find": [1, 3, 5, 23], "issu": [1, 6, 7, 8, 56], "nobodi": 1, "els": 1, "squash": 1, "commit": 1, "messag": [1, 6, 10, 16, 24, 25, 26, 28, 38, 41, 42, 43, 44, 45, 48, 50, 56], "comment": [1, 28], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 8, 12, 13, 14, 16, 18, 28, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 52, 53, 56], "pre": 1, "correct": [1, 2, 44], "header": [1, 12, 15, 25, 26, 34, 36, 44], "address": [1, 28], "similar": [1, 4, 7, 13, 19, 21, 28], "mean": [1, 2, 9, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 45], "result": [1, 4, 9, 10, 19, 28, 42, 44], "exactli": 1, "cowboi": 1, "style": [1, 15, 36], "over": [1, 6, 9, 23, 28], "weekend": 1, "It": [1, 2, 3, 4, 6, 9, 10, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 38, 42, 43, 44, 46], "doesn": [1, 9, 46], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 9, 10, 45], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 43], "its": [1, 2, 3, 4, 5, 6, 7, 9, 10, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 39, 40, 41, 42, 44, 46, 50, 52], "ping": 1, "them": [1, 6, 9, 10, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 36, 42, 44, 55], "necessari": [1, 9, 12], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 9, 10, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 43, 44, 56], "part": [1, 6, 7, 13, 28, 36, 44, 45], "For": [1, 3, 4, 5, 6, 7, 9, 10, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 43, 45, 46, 50, 52], "detail": [1, 2, 3, 4, 5, 10, 12, 13, 14, 15, 21, 28, 30, 31, 33, 34, 36, 44, 45, 52], "thoma": 1, "cokela": 1, "info": [1, 10, 12, 15, 28], "tutori": [1, 17], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 15, 16, 17, 22, 23, 25, 26, 27, 28, 34, 35, 36, 37, 38, 41, 43, 46, 47, 48, 50, 53], "stabl": 1, "against": 1, "accept": [1, 15, 24, 36, 37, 43, 44, 45, 47, 53], "api": [1, 3, 5, 6, 15, 19, 22, 23, 24, 25, 26, 27, 29], "abi": 1, "chang": [1, 2, 4, 7, 10, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 43, 44, 45], "e": [1, 2, 4, 6, 7, 9, 10, 13, 14, 15, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 32, 36, 37, 38, 42, 43, 44, 46, 47, 50, 53, 56], "name": [1, 2, 3, 4, 5, 7, 10, 13, 14, 15, 16, 17, 19, 21, 22, 23, 25, 26, 27, 28, 30, 32, 36, 38, 39, 41, 42, 43, 46, 48, 50], "convent": [1, 28], "master": [1, 4, 17, 28], "semi": 1, "binari": 1, "good": [1, 3, 5, 6], "same": [1, 8, 9, 24, 28, 35, 38, 43, 44, 45, 46], "build": [1, 8, 15, 28, 32, 36], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 28], "version": [1, 6, 8, 17, 45], "non": [1, 7, 21, 28, 38, 55], "brake": 1, "distribut": [1, 17, 56], "three": [1, 2, 4, 12, 13, 17, 28, 36, 44, 52], "stage": [1, 9, 21], "current": [1, 6, 12, 13, 15, 16, 44, 45, 50], "futur": [1, 7, 9, 44, 45], "compat": [1, 2, 7, 15, 17], "packag": [1, 2, 3, 5, 12, 15, 28, 31, 32, 33, 34, 36, 37, 38, 41, 45, 46, 47, 48, 50, 52, 53, 56], "direct": [1, 2, 6, 15, 28, 36, 43], "local": [1, 3, 5, 8, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30, 42], "possibl": [1, 4, 6, 10, 13, 17, 19, 22, 23, 24, 25, 26, 27, 29, 32, 36, 44], "core": [1, 11, 28], "immedi": [1, 10, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 46], "depend": [1, 4, 8, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 44, 46, 50], "fail": [1, 24, 28], "expect": [1, 6, 7, 8, 21, 28, 31, 33, 45, 50, 52], "after": [1, 9, 10, 15, 17, 19, 28, 34, 36, 43, 44, 45, 50, 51], "next": [1, 19, 28, 44], "sync": 1, "abl": 1, "potenti": [1, 7, 8, 36, 43], "mid": 1, "stat": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 9, 10, 12, 13, 17, 21, 28, 36, 43, 45], "imposs": 2, "extend": [2, 4, 6, 9, 15, 36], "exist": [2, 4, 6, 7, 8, 9, 10, 12, 13, 15, 19, 22, 23, 24, 25, 26, 27, 28, 29, 36, 45], "addit": [2, 3, 5, 9, 17, 20, 23, 28], "sensor": [2, 4, 6, 12, 14, 15, 17, 22, 27, 28, 32, 35, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 21], "tool": [2, 3, 5, 6, 7, 8, 28], "without": [2, 3, 4, 5, 7, 10, 14, 15, 17, 21, 30, 36, 43, 44], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7, 8], "optim": [2, 10], "combin": [2, 9, 13, 14, 17, 24, 42, 43, 44, 45, 46], "extern": [2, 4, 6, 9, 14, 17, 32, 46], "defin": [2, 3, 5, 6, 10, 14, 15, 17, 28, 32, 36, 38, 41, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 8, 12, 13, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 45, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 23, 36], "physic": [2, 4, 12, 13, 14], "cell": [2, 38], "surround": 2, "describ": [2, 4, 9, 13, 17, 19, 24, 28, 30, 44], "multi": [2, 4, 6, 7, 8, 17, 24], "gripper": [2, 3, 4, 5, 7, 13, 14, 35], "out": [2, 3, 5, 10, 28, 34], "box": [2, 17, 19, 23, 24, 25, 26, 29, 30], "allow": [2, 3, 4, 5, 17, 28, 40, 43, 44, 45, 49], "joint": [2, 4, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 42, 43, 44, 46, 47, 50, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 10, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 34, 35, 37, 42, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 9, 17, 22, 23, 24, 28, 32, 33, 34, 35, 40, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 28, 35, 37, 40, 42, 43, 45, 46], "hard": [2, 10], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 42, 44], "approach": [2, 9], "doe": [2, 10, 15, 19, 22, 23, 24, 25, 26, 27, 28, 29, 36, 44, 45], "enforc": [2, 24, 28, 43], "string": [2, 10, 14, 17, 36, 39, 40, 41, 42, 43, 46, 48, 50], "ensur": [2, 7, 10, 28, 44], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 12, 14, 15, 17, 22, 25, 26, 27, 28, 32, 34, 35, 36], "In": [2, 3, 4, 5, 6, 7, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36, 42, 44, 50], "had": 2, "itself": [2, 9], "took": 2, "care": [2, 6, 10, 15, 24, 36, 45], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 24], "conflict": [2, 4, 6], "resourcemanag": [2, 9], "take": [2, 6, 9, 15, 21, 24, 34, 36, 42, 44], "state": [2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 38, 42, 43], "avail": [2, 4, 7, 9, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 42, 45], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 23, 32, 38, 46, 50], "anymor": 2, "controllermanag": [2, 10], "implement": [2, 3, 4, 5, 6, 7, 10, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 34, 36, 39, 44, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 14, 25, 28], "granular": 2, "sensorinterfac": [2, 22, 26], "actuatorinterfac": [2, 22, 27], "abov": [2, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 35, 44], "choos": [2, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 44], "decid": 2, "which": [2, 3, 4, 5, 6, 7, 8, 10, 15, 16, 17, 19, 23, 24, 25, 26, 27, 28, 29, 30, 34, 35, 36, 38, 41, 42, 43, 44, 45, 48, 50, 51], "case": [2, 3, 5, 6, 7, 9, 17, 21, 28, 36, 42, 44, 45, 56], "mayb": [2, 9], "sens": [2, 4, 35, 38], "multipl": [2, 4, 7, 9, 13, 15, 17, 42, 43], "constructor": [2, 15, 28, 36], "initi": [2, 15, 28, 36, 44], "variabl": [2, 15, 28, 36, 43], "need": [2, 3, 4, 5, 6, 7, 9, 13, 15, 17, 19, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36, 44, 46], "commun": [2, 4, 6, 7, 15, 17, 19, 22, 23, 24, 25, 26, 28, 29, 55], "default": [2, 4, 9, 10, 14, 24, 31, 33, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 52], "configur": [2, 3, 4, 5, 6, 7, 9, 10, 12, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 42, 43, 44, 45, 50], "paramet": [2, 3, 5, 7, 8, 15, 17, 19, 23, 28, 36, 45], "pars": [2, 3, 5, 10, 11, 13], "urdf": [2, 7, 10, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "snippet": 2, "hardwareinfo": [2, 28], "here": [2, 11, 15, 28, 36, 37, 45, 47, 53], "cross": [2, 42], "valu": [2, 4, 6, 13, 14, 15, 17, 19, 20, 21, 23, 25, 26, 28, 30, 36, 41, 42, 43, 45, 48, 50], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 34, 51], "sensibl": 2, "stop": [2, 7, 9, 10, 12, 16, 19, 23, 24, 28, 34, 43, 51], "usual": [2, 4, 10, 14, 15, 28, 36], "includ": [2, 3, 5, 6, 8, 10, 12, 15, 16, 28, 36, 45, 55], "command": [2, 3, 4, 5, 6, 7, 8, 10, 11, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 39, 40, 43, 44, 47, 49, 52, 53, 56], "safe": [2, 28, 34, 36, 45, 51], "interrupt": [2, 10], "stream": [2, 7], "write": [2, 4, 7, 9, 10, 11, 21, 22, 23, 27, 35, 46], "exchang": [2, 6, 19, 22, 23, 24, 25, 26, 27, 29, 56], "equival": [2, 28], "forget": [2, 4, 17, 45], "pluginlib_export_class": [2, 15, 17, 28, 36], "macro": [2, 4, 15, 17, 28, 36], "end": [2, 4, 12, 15, 28, 36, 43, 55], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "file": [2, 3, 4, 5, 6, 7, 10, 14, 15, 17, 32, 34, 36, 37, 45, 47, 53], "creat": [2, 3, 4, 5, 7, 10, 14, 15, 17, 28, 36], "xml": [2, 3, 5, 12, 15, 28, 36], "librari": [2, 4, 15, 16, 17, 31, 33, 35, 36, 46, 50, 52], "pluginlib": [2, 3, 4, 5, 10, 15, 28, 36, 46], "exampl": [2, 3, 4, 5, 6, 7, 9, 10, 14, 16, 23, 32, 37, 38, 42, 45, 46, 47, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 21, 26], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 32, 45], "real": [2, 6, 7, 10, 14, 23, 36, 42, 43, 56], "critic": [2, 6], "mark": [2, 21], "controllerinterfac": [2, 4, 9, 16, 28, 36], "member": [2, 15, 28, 36, 44], "init": 2, "call": [2, 3, 4, 5, 9, 15, 23, 28, 36], "lifecycl": [2, 4, 7, 10, 12, 15, 28, 35], "declar": [2, 15, 28, 36], "state_interface_configur": [2, 28, 36], "command_interface_configur": [2, 28, 36], "design": [2, 4, 6, 7, 9, 28, 56], "updat": [2, 4, 9, 10, 17, 28, 35, 36, 45, 50], "manag": [2, 3, 5, 6, 7, 11, 12, 15, 16, 17, 28, 36, 45, 56], "option": [2, 3, 5, 10, 12, 14, 15, 16, 19, 24, 35, 36, 38, 42, 45, 46, 50], "on_configur": [2, 15, 28, 36], "on_activ": [2, 12, 15, 28, 36], "on_deactiv": [2, 12, 15, 28, 36], "deactiv": [2, 4, 16, 19, 43], "final": [2, 7, 12, 28], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 21, 23, 28, 43, 44, 45, 56], "architectur": [3, 5, 6, 7, 8], "gazebo": [3, 5, 6, 17, 19, 30, 54], "classic": [3, 17, 30, 54], "provid": [3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 32, 36, 42, 43, 44, 45, 50, 56], "instanti": [3, 5, 10], "connect": [3, 4, 5, 14, 17, 25, 28], "model": [3, 5, 19, 28], "cd": [3, 4, 5, 8, 17, 28], "docker": [3, 5, 8, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30], "gui": [3, 5, 17, 19, 21, 22, 24, 25, 26, 27, 29, 30, 49], "properli": [3, 5, 9, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "rm": [3, 4, 5, 17, 19, 30], "net": [3, 5, 7, 17, 19, 30], "host": [3, 5, 17, 19, 30, 55], "ros2": [3, 4, 5, 7, 10, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "launch": [3, 4, 5, 10, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "fals": [3, 5, 14, 17, 19, 30, 34, 40, 42, 43, 45, 46, 50], "machin": [3, 4, 5, 6, 17, 30], "client": [3, 5, 30, 45], "gzclient": [3, 30], "rocker": [3, 5], "go": [3, 5, 7, 10, 15, 28, 36], "imag": [3, 5, 10, 30], "inject": [3, 5, 7, 8], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 10, 17, 28, 44], "id": [3, 5, 16, 19, 22, 23, 24, 25, 26, 27, 29], "specif": [3, 5, 6, 9, 10, 12, 13, 28, 30, 39, 42, 44, 45], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 10], "instal": [3, 5, 8, 10, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "instruct": [3, 5, 8, 23, 28, 30], "x11": [3, 5], "latest": [3, 4, 5, 8], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30, 40], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 8, 15, 17, 19, 28, 36], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 28], "access": [3, 4, 5, 7, 10, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 42], "interfac": [3, 5, 6, 7, 9, 10, 11, 12, 14, 15, 17, 19, 21, 22, 23, 25, 26, 27, 30, 31, 33, 35, 36, 38, 41, 43, 44, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 9, 11, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 34, 35, 36, 43, 46, 51, 56], "slider_to_cart": [3, 5, 37, 47, 53], "command_interfac": [3, 4, 5, 13, 21, 28, 32, 43, 45, 46], "param": [3, 4, 5, 10, 13, 14, 23, 28], "min": [3, 4, 5, 13, 28], "1000": [3, 5, 28], "max": [3, 4, 5, 13, 28, 40], "state_interfac": [3, 4, 5, 13, 28, 32, 43, 45], "initial_valu": [3, 5, 28], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 10, 15, 17, 19, 24, 25, 26, 27, 29, 30, 36, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 10, 15, 28, 32, 34, 35, 36, 38, 43], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 28, 31, 33, 34, 38, 52], "xyz": [3, 5, 28], "rpy": [3, 5, 28], "1415926535": [3, 5], "parent": [3, 5, 15, 28, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 22, 23, 27, 28, 34, 36, 39, 50, 51, 54], "child": [3, 5, 13, 28], "finger_left": [3, 5], "lower": [3, 5, 28], "upper": [3, 5, 28], "actual": [3, 5, 9], "load": [3, 4, 5, 10, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36], "appropri": [3, 5, 6, 44], "By": [3, 5, 10, 28, 42, 44], "though": [3, 5, 10, 21], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 25, 26, 28, 30, 45], "between": [3, 4, 5, 6, 12, 13, 17, 28, 31, 33, 42, 43, 44, 45, 46, 52], "filenam": [3, 5, 28], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 9, 10, 15, 28, 32, 36, 45], "robot_param": [3, 5], "robot_descript": [3, 5, 10, 19, 28], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 42], "config": [3, 5, 17], "cartpole_control": [3, 5], "yaml": [3, 4, 5, 6, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 45], "locat": [3, 8, 28, 32], "server": [3, 40, 45], "node": [3, 4, 5, 10, 12, 14, 16, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "attempt": [3, 5, 10, 45], "get": [3, 5, 7, 8, 9, 10, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 56], "most": [3, 5, 6, 15, 17, 28, 36], "least": [3, 5, 13, 15, 36, 45], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8, 9], "mechan": [3, 5, 9, 45], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 21, 29], "etc": [3, 5, 10, 24, 28, 56], "These": [3, 5, 17, 28], "inherit": [3, 5, 10, 28], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 10, 21, 22, 27, 37, 44, 47, 53], "properti": [3, 5, 28], "sub": [3, 5], "class": [3, 4, 5, 7, 10, 12, 15, 16, 28, 36, 39, 44], "specifi": [3, 5, 10, 15, 17, 28, 35, 36, 43, 44, 45, 46], "insid": [3, 5, 14, 17, 19], "publish": [3, 5, 6, 9, 13, 17, 20, 28, 32, 35, 38, 41, 42, 44, 48, 51, 56], "stateinterfac": [3, 5, 28], "topic": [3, 5, 6, 7, 9, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 35, 45, 46, 54], "sensor_msg": [3, 5, 41, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 34, 37, 38, 39, 41, 44, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_state_control": [3, 5, 16], "ros__paramet": [3, 5, 37, 45, 47, 53], "jointstatecontrol": [3, 5, 16], "action": [3, 5, 9, 43], "cart_pole_control": [3, 5], "follow_joint_trajectori": [3, 5, 45], "followjointtrajectori": [3, 5, 43, 45], "joint_trajectory_control": [3, 5, 6, 16, 19, 35, 49], "write_op_mod": [3, 5], "contain": [3, 8, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 32, 37, 43, 44, 46, 47, 50, 53], "content": [3, 15, 28, 36], "There": [3, 4, 5, 10, 12, 15, 17, 22, 25, 26, 27, 36, 44, 45], "meter": [3, 5, 28], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 10, 14, 28], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 13, 14], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 45, 46], "example_gripp": [3, 5], "roll": [4, 8, 17, 28], "want": [4, 8, 9, 10, 17], "download": [4, 17], "mkdir": [4, 8, 17], "p": [4, 8, 10, 17, 43], "src": [4, 8, 15, 17, 19, 28, 30, 32, 36], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 8, 17, 28], "org": [4, 6, 31, 33, 52], "ros_control": [4, 6, 7, 56], "vc": [4, 8, 17], "import": [4, 8, 15, 17, 28, 36, 43], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 8, 10, 17], "apt": [4, 8, 10, 17], "path": [4, 7, 17, 28, 45], "ignor": [4, 10, 17, 34, 43, 50, 51], "r": [4, 17, 29], "y": [4, 17, 23, 25, 26, 32, 38, 41], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 29, 30, 36], "opt": [4, 8, 17, 19], "setup": [4, 8, 14, 15, 17, 19, 23, 28, 30, 36, 44, 46], "sh": [4, 17, 19, 30], "colcon": [4, 8, 15, 17, 28, 36], "symlink": [4, 8, 17, 28], "folder": [4, 7, 15, 17, 19, 20, 23, 31, 32, 33, 36, 50, 52], "found": [4, 10, 11, 15, 19, 20, 23, 32, 34, 36, 39, 45, 56], "github": [4, 6, 8, 11, 17, 28, 35, 54, 55, 56], "figur": [4, 44], "uml": 4, "diagram": [4, 16], "intern": [4, 6, 9, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 29, 32, 44, 45], "cm": [4, 10], "abstract": [4, 7, 12, 28], "side": [4, 6, 7], "entri": [4, 36], "point": [4, 28, 36, 43, 44, 45, 46, 56], "servic": [4, 6, 10, 12, 28, 35], "executor": [4, 10], "custom": [4, 13, 14, 17, 22, 23, 38, 42, 54], "howev": [4, 6, 9, 10, 17, 21, 28], "recommend": [4, 7, 8, 15, 46], "ros2_control_nod": [4, 24, 28], "controller_manag": [4, 5, 6, 10, 16, 24, 35, 36, 37, 45, 47, 53], "assum": [4, 9], "On": [4, 7, 8, 28], "hand": [4, 28, 55], "unload": [4, 10, 16], "match": [4, 17, 44], "report": [4, 6, 42, 56], "error": [4, 6, 10, 15, 21, 24, 28, 36, 42, 43, 45, 46], "execut": [4, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 40, 43, 44, 45, 52], "loop": [4, 7, 10, 14, 19, 24, 25, 26, 27, 28, 29, 30, 36, 42, 43, 45, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 38], "driver": [4, 7, 17, 28, 55], "reus": [4, 7, 9], "flexibl": 4, "motor": [4, 9, 55], "encod": [4, 28], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 9, 21, 28, 55], "measur": [4, 14, 22, 32, 38, 42, 43, 55], "calcul": [4, 28, 32, 44, 50], "input": [4, 6, 7, 8, 9, 13, 20, 21, 28, 32, 34, 37, 39, 43, 44, 47, 50, 51, 53], "object": [4, 28], "deriv": [4, 43, 44, 46], "controller_interfac": [4, 16, 28, 32, 36, 38, 41, 48], "export": [4, 9, 10, 15, 17, 28, 32, 36], "plugin": [4, 8, 10, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 32, 36, 46, 49], "forwardcommandcontrol": [4, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 23, 34, 35, 44, 45], "interact": [4, 7, 10, 16, 20, 28, 30], "srv": [4, 45, 46], "controller_manager_msg": 4, "while": [4, 6, 7, 28, 44], "directli": [4, 19, 21, 30, 46, 56], "line": [4, 11, 12, 15, 19, 28, 36, 42, 44], "friendli": 4, "cli": [4, 10, 11, 16, 19, 20, 23, 24, 25, 26, 27, 29, 30], "auto": [4, 10], "complet": [4, 12, 21, 28, 44], "rang": [4, 13, 35], "common": [4, 6, 17, 42, 56], "capabl": [4, 6], "realiz": [4, 7, 44, 45], "repres": [4, 12, 28, 34, 35, 44], "dynam": [4, 15, 28, 36, 46], "dof": [4, 13, 17, 28, 40, 46], "differ": [4, 6, 7, 13, 15, 17, 19, 20, 23, 24, 28, 37, 38, 42, 44, 46, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 24, 25, 26, 55], "rsi": [4, 19, 25, 26, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 25, 26, 32, 35, 55], "torqu": [4, 13, 25, 26, 32, 35], "simpl": [4, 6, 7, 9, 15, 17, 19, 21, 23, 28, 29, 36, 40], "valv": [4, 13], "mandatori": [4, 10, 38, 43], "dc": 4, "arduino": [4, 22, 27], "board": 4, "modular": [4, 7, 8, 17, 28], "independ": [4, 7, 10, 26], "explan": [4, 10, 15], "given": [4, 10, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 37, 43, 44, 45, 47, 53], "through": [4, 6, 7, 9, 10, 15, 16, 17, 21, 28, 36, 45, 46, 56], "tag": [4, 10, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 36, 56], "chosen": [4, 13], "structur": [4, 6, 9, 10, 15, 28, 34, 36, 43, 44], "track": [4, 31, 52, 56], "togeth": [4, 9, 13, 23, 25, 50], "xacro": [4, 10, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 22, 24, 25, 26, 27, 29], "effector": [4, 55], "site": 4, "rrbotsystempositiononli": [4, 26], "ros2_control_demo_hardwar": [4, 13, 16], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 13], "joint1": [4, 13, 14, 16, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 45], "joint2": [4, 13, 16, 19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 45], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 25, 26], "frame_id": [4, 13, 25, 26, 38, 41, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 23, 28, 30, 43, 46], "pure": 4, "stack": [4, 7, 56], "could": [4, 7, 9, 17, 24, 36, 42, 45], "altern": [4, 8, 10, 19, 45], "script": [4, 6, 15, 36], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 9, 17, 28, 30, 44], "ign": 5, "meet": [5, 56], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 14, 15, 24, 34, 41, 42, 45, 56], "gener": [6, 7, 13, 15, 16, 22, 23, 24, 25, 26, 27, 28, 35, 36, 45, 50, 56], "task": [6, 7, 34], "envis": 6, "simul": [6, 14, 16, 17, 19, 21, 23, 25, 26, 28], "ignit": 6, "showcas": [6, 7, 8], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 8, 36], "draft": 6, "gpio": [6, 17, 28], "mode": [6, 9, 15, 21, 24, 32, 43, 44, 46, 50], "switch": [6, 16, 17, 19, 24], "movement": 6, "safeti": [6, 28], "skill": 6, "prefer": 6, "c": [6, 10, 13, 15, 16, 19, 28], "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 48], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 9], "although": [6, 9, 12, 13, 45], "easi": [6, 10], "therefor": [6, 9, 10, 17, 36, 42, 43, 45], "often": [6, 14, 23, 36, 42], "orchestr": 6, "purpos": [6, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 46], "conductor": 6, "scenario": [6, 44], "moment": [6, 45], "right": [6, 17], "replac": [6, 12, 35, 45], "high": [6, 10, 44], "moveit2": [6, 7, 35, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 24, 25, 26, 27, 29, 30, 40, 43, 45, 56], "form": [6, 17], "behavior": [6, 14, 28, 44], "benchmark": 6, "statu": [6, 9, 12, 16, 19, 43], "format": [6, 28, 32, 42, 45], "preset": 6, "modul": [6, 21], "reli": 6, "doubl": [6, 14, 19, 28, 31, 33, 40, 43, 46, 48, 50, 52], "desir": [6, 43, 45], "both": [6, 7, 21, 28, 29, 42, 43, 44, 45], "improv": [6, 10], "readabl": [6, 28], "earlier": 6, "concept": [6, 7, 8, 9, 14, 17, 19], "introduc": [6, 7, 9, 19, 28], "essenti": [6, 19], "group": [6, 9, 10, 13, 45, 56], "instanc": [6, 10, 21, 42], "imu": [6, 13, 35], "typic": [6, 13, 23, 42, 43], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 21], "struct": 6, "low": [6, 7, 10], "profil": 6, "relev": [6, 43, 46, 50, 56], "addition": [6, 28, 31, 33, 52, 56], "few": [6, 7, 35], "175": 6, "rewrit": [6, 56], "rich": 6, "wa": [6, 8, 15, 19, 23, 24, 28, 36, 44], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 7, 8, 42, 44, 45], "diff_drive_control": [6, 9, 16, 23], "consist": [6, 45, 56], "onc": [6, 7, 8, 19, 23, 24, 25, 26, 28, 29, 35], "identifi": [6, 28], "much": [6, 19, 22, 23, 24, 25, 26, 27, 29, 36, 45], "303": 6, "304": 6, "stretch": 6, "81": 6, "302": 6, "unit": 6, "gmock": 6, "cc": [7, 44, 45], "BY": [7, 44, 45], "licens": [7, 44, 45], "author": [7, 9], "either": [7, 19, 24, 25, 26, 27, 29, 30, 44], "down": [7, 28], "below": [7, 10, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 44, 45], "compani": 7, "my": 7, "company_nam": 7, "alreadi": [7, 8, 15, 16, 17, 19, 21, 28, 30, 35, 36, 45], "know": [7, 8, 13], "act": [7, 8], "kernel": [7, 8, 10], "struggl": [7, 8], "cover": [7, 8], "product": [7, 8, 42], "variou": [7, 8, 19, 29], "littl": [7, 8, 10], "run": [7, 8, 9, 10, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 44, 50], "practic": [7, 8], "overview": [7, 8], "control": [7, 8, 11, 12, 13, 14, 15, 16, 17, 31, 33, 38, 41, 42, 43, 44, 48, 51, 52, 55, 56], "chain": [7, 8, 11, 16, 17, 28, 32, 43, 46, 50], "debug": [7, 8, 14], "top": [7, 8], "involv": [7, 8], "bring": [7, 8, 17], "page": [7, 54, 55], "locu": 7, "stogl": [7, 8], "consult": 7, "tricycl": [7, 35, 51], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "agnost": [7, 28], "share": [7, 15, 28, 30, 36, 50], "well": [7, 10, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29, 45], "perform": [7, 10, 28], "heavi": 7, "practition": 7, "guid": [7, 15, 36], "virtual": [7, 9, 33], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 28], "explicit": [7, 10, 28, 43], "emerg": 7, "handler": 7, "mock": [7, 11, 15], "usag": [7, 10, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 29], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 10, 36], "focu": [7, 9], "becom": [7, 21], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 35], "tip": [7, 28], "hot": 7, "shown": [7, 28, 44], "furthermor": [7, 23], "offer": [7, 10, 15, 28], "expos": [7, 17, 21], "problem": [7, 56], "manipul": [7, 17, 19, 21, 28, 29, 43], "plan": [7, 56], "autonom": 7, "navig": [7, 8], "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 23, 34, 50, 51], "arm": [7, 19, 21, 29], "extra": [7, 28, 42], "readi": [7, 8, 15, 17, 21, 35, 36], "studi": 7, "ur": 7, "With": [7, 28, 30, 45], "moveit": [7, 14], "ingredi": 7, "scale": [7, 43], "factor": 7, "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 15, 36], "trajectori": [7, 19, 28, 35, 43, 46, 56], "admitt": [7, 35], "One": [7, 9], "reason": [7, 9, 10, 28], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 10, 28, 34, 45, 51, 56], "contact": 7, "insert": 7, "singl": [7, 25, 40], "waypoint": [7, 44, 45], "mani": [7, 28, 35, 36], "teleoper": 7, "kinemat": [7, 9, 17, 23, 28, 31, 32, 33, 50, 52], "acceler": [7, 17, 24, 28, 32, 34, 41, 43, 44, 45, 46, 51], "jerk": [7, 34, 51], "obei": [7, 28], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 28], "cycl": [7, 28, 35], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 35, 43, 45, 46, 56], "done": [7, 8, 9, 15, 19, 22, 23, 24, 25, 26, 27, 28, 29, 35, 36], "look": [7, 23], "modifi": 7, "simpli": [7, 10, 19, 44, 45], "edit": 7, "collect": [7, 37, 47, 53], "semant": [7, 13, 32, 38, 41, 48], "monolit": 7, "controlko": 7, "imperi": 8, "octob": 8, "present": [8, 45], "ubuntu": [8, 10], "engin": [8, 15, 36], "compos": 8, "grab": 8, "roscon2023_workshop": 8, "now": [8, 9, 10, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 44], "workspac": [8, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36], "w": 8, "git": [8, 17, 28], "clone": [8, 17, 28], "roscon2023_control_workshop": 8, "ci": 8, "compil": [8, 15, 28, 30, 36], "termin": [8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "park": 8, "f": [8, 17], "dev": 8, "tmux": 8, "ctrl": [8, 19], "b": [8, 17, 28], "arrow": 8, "kei": 8, "brought": 8, "propos": [9, 56], "minim": [9, 56], "viabl": [9, 28], "serial": [9, 28], "tri": [9, 43], "clariti": 9, "arbitrari": [9, 28, 45], "order": [9, 28, 46], "nevertheless": [9, 46], "convinc": 9, "would": [9, 42, 46], "unnecessari": 9, "long": 9, "term": [9, 46, 56], "clearer": 9, "let": [9, 17, 19, 21, 22, 23, 24, 25, 26, 27, 29], "yet": [9, 10, 17, 21, 34, 44, 45], "controllers_chain": 9, "doc": [9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 56], "position_track": 9, "pid": [9, 35, 43, 44, 45, 56], "imagin": 9, "flexibli": 9, "preced": 9, "step": [9, 15, 17, 36, 44, 56], "At": [9, 15, 21, 36], "attach": 9, "disabl": [9, 14, 50], "subscrib": [9, 20, 21, 28], "differenti": [9, 17, 23, 33, 34, 35, 56], "interfaceconfigur": [9, 28], "input_interface_configur": 9, "const": [9, 12, 28], "anoth": [9, 10, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 45], "simplic": [9, 28], "try": [9, 28], "exclus": [9, 28], "rather": [9, 17, 44], "void": 9, "set_chained_mod": 9, "bool": [9, 40, 43, 46, 50], "flag": [9, 15, 36, 43], "on_set_chained_mod": 9, "pid_refer": 9, "controller_nam": [9, 10, 16, 32, 36, 45, 46, 50], "v_x": 9, "v_y": 9, "w_z": 9, "cmd_vel": [9, 34], "cmd_vel_unstamp": [9, 23], "Its": [9, 56], "continu": [9, 43, 44, 45], "chainabl": [9, 17, 21, 34, 45], "ownership": 9, "process": [9, 15, 28, 36, 44], "claim": [9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "vector": [9, 21, 28, 36], "invers": [9, 28], "rule": [9, 10, 15, 36], "think": [9, 17], "break": [9, 14], "middl": [9, 33], "unavail": [9, 21], "unclaim": [9, 16, 21, 24], "inact": [9, 10, 16, 19, 24, 28, 35], "feasibl": 9, "interface_configuration_typ": 9, "jitter": 10, "thread": [10, 28], "sched_fifo": 10, "prioriti": 10, "addgroup": 10, "usermod": 10, "whoami": 10, "afterward": 10, "secur": 10, "conf": [10, 28], "soft": 10, "rtprio": 10, "memlock": 10, "102400": 10, "appli": [10, 16, 28, 34, 45], "log": 10, "again": [10, 12, 19, 23, 28], "normal": [10, 28, 43], "linux": 10, "comput": [10, 17, 34, 50, 51], "throughput": 10, "suit": 10, "lt": 10, "beta": 10, "rt": 10, "amd64": 10, "debian": 10, "bullsey": 10, "lowlat": 10, "come": [10, 17, 45], "lot": [10, 19, 21, 22, 23, 24, 25, 26, 27, 29], "being": 10, "realli": 10, "hardware_components_initial_st": 10, "map": [10, 14, 42, 45], "attribut": [10, 28], "full": [10, 15, 17, 36], "unconfigur": [10, 12, 19, 28], "arm1": 10, "arm2": 10, "base3": 10, "empti": [10, 36, 41, 45, 46, 50], "update_r": [10, 35, 37, 47, 53], "integ": [10, 35], "frequenc": [10, 35], "startup": 10, "h": [10, 15, 16, 36], "param_fil": 10, "n": 10, "namespac": [10, 15, 28, 35, 36, 42], "controller_typ": 10, "timeout": [10, 16, 40, 43, 50, 51], "controller_manager_timeout": 10, "argument": [10, 15, 16, 19, 22, 23, 24, 25, 26, 27, 29], "exit": [10, 16], "leav": 10, "kill": [10, 16, 28], "wait": [10, 16, 27, 43], "until": [10, 28, 43, 44], "mai": [10, 12, 25, 35, 37, 47, 53], "taken": [10, 50], "becaus": [10, 13, 19, 21, 22, 23, 24, 25, 26, 27, 29, 44], "rclcpp": [10, 15, 28, 36], "than": [10, 40, 43, 45, 46, 50], "global": 10, "remap": 10, "forcibli": 10, "lead": [10, 45], "duplic": [10, 46, 50], "occur": [10, 28], "whether": 10, "sibl": 10, "hierarchi": 10, "workaround": 10, "nodeopt": 10, "pass": [10, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29], "caus": [10, 44, 45, 50], "get_cm_node_opt": 10, "arg": 10, "_target_node_nam": 10, "__node": 10, "dst_node_nam": 10, "std": [10, 28, 43], "make_shar": 10, "some_optional_namespac": 10, "simplest": 10, "switch_control": [10, 19], "broadcast": [10, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 42], "achiev": [10, 28, 37, 47, 53], "return": [10, 12, 15, 19, 28, 36, 40, 42, 44, 45], "NOT": 10, "FOR": 10, "detect": 10, "listen": [10, 43], "doxygen": [11, 15], "cascad": 11, "return_typ": [12, 28, 36], "on_error": [12, 15, 28], "previous_st": [12, 28], "success": [12, 15, 28, 36, 40, 45], "callbackreturn": [12, 15, 28], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "on_init": [12, 15, 28, 36], "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hpp": [12, 15, 17, 28, 32, 36], "hardware_interface_status_valu": 12, "rclcpp_lifecycl": [12, 15, 28, 36], "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 28], "lifecyclenodeinterfac": [12, 15, 28], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 28, 36], "txt": [12, 15, 28, 36], "devic": [13, 55], "associ": 13, "joint_state_broadcast": [13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "coupl": 13, "ship": 13, "cannot": [13, 21, 28, 45], "keyword": 13, "digit": 13, "signal": 13, "electr": 13, "analog": 13, "within": [13, 19, 45], "vacuum": [13, 20], "flang": 13, "off": 13, "rrbotsystemmutiplegpio": 13, "example_param_hw_start_duration_sec": 13, "example_param_hw_stop_duration_sec": 13, "example_param_hw_slowdown": 13, "flange_digital_io": 13, "digital_output1": 13, "digital_output2": 13, "digital_input1": 13, "digital_input2": 13, "flange_analog_io": [13, 20], "analog_output1": [13, 20], "analog_input1": [13, 20], "analog_input2": [13, 20], "flange_vacuum": [13, 20], "suction": 13, "grasp": 13, "multimod": 13, "multimodalgripp": 13, "parallel_fing": 13, "temperatur": [13, 17], "feedback": [13, 14, 22, 42, 43, 45, 46, 50, 51], "adjust": [13, 16, 19, 28], "calibr": 13, "2d": [13, 25, 26], "ft": [13, 25, 26, 38], "choic": [13, 50], "matric": 13, "rrbotforcetorquesensor2d": 13, "forcetorquesensor2dhardwar": 13, "fx": 13, "tz": 13, "kuka_tcp": 13, "fx_rang": 13, "tz_rang": 13, "temp_feedback": 13, "calibration_matrix_nr": 13, "mirror": 14, "correspond": [14, 15, 28, 36, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 45], "boost": 14, "mimic": 14, "offset": [14, 42, 43], "fake": 14, "disable_command": 14, "boolean": [14, 35, 42, 43], "erron": [14, 28], "noth": 14, "suddenli": 14, "Or": [14, 19, 24, 25, 26, 27, 29, 30], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "prepar": [15, 24, 36], "ament_cmak": [15, 36], "easiest": [15, 36], "search": [15, 36], "recent": [15, 36], "pkg": [15, 36], "package_nam": [15, 36], "robot_hardware_interface_nam": 15, "visibility_control": [15, 36], "window": [15, 36], "copi": [15, 36], "prefix": [15, 32, 36, 38, 41, 48], "guard": [15, 36], "ifndef": [15, 36], "preprocessor": [15, 36], "friend": [15, 36], "interface_typ": [15, 36], "uniqu": [15, 28, 36], "written": [15, 22, 27, 28, 36], "snake_cas": [15, 36], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 28, 36], "on_cleanup": [15, 28], "on_shutdown": [15, 28], "overrid": [15, 28, 36, 37, 45, 47, 53], "export_state_interfac": [15, 28], "export_command_interfac": [15, 28], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 36], "exact": [15, 36], "simplifi": [15, 28, 36, 56], "valid": [15, 17, 46, 48], "fine": [15, 23, 36], "otherwis": [15, 17, 36, 42, 43], "opposit": [15, 36], "remind": 15, "joint_nam": [15, 32, 36, 43], "shutdown": [15, 28], "gracefulli": 15, "store": [15, 36], "close": [15, 36], "class_list_macro": [15, 28, 36], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 21, 24, 25, 26, 27, 28, 29, 30, 36, 44, 46, 56], "visibl": [15, 36], "mock_compon": [15, 23], "bottom": [15, 28, 36], "test_load_": [15, 36], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 36], "directori": [15, 36], "ament": [15, 36], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 28, 36], "ament_cmake_gmock": [15, 36], "ament_add_gmock": [15, 36], "ament_export_librari": [15, 36], "ament_packag": [15, 36], "test_depend": [15, 36], "rememb": [15, 36], "root": [15, 36], "enjoi": [15, 36], "great": [15, 36], "templat": [15, 17, 28, 36], "shell": [15, 36], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 23], "verbos": 16, "label": [16, 22, 23, 25, 26, 27, 44], "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 28], "demonstr": [17, 19, 21, 23, 24, 29, 30], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 28], "diffbot": 17, "degre": [17, 28, 45, 50], "freedom": [17, 28, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 21, 28, 29], "drive": [17, 23, 31, 33, 34, 35, 50, 51, 52, 56], "accord": [17, 23, 28], "intermedi": 17, "car": 17, "steer": [17, 31, 33, 35, 50, 51, 52], "tba": 17, "tabl": 17, "offici": [17, 55], "easili": 17, "aptitud": 17, "might": [17, 44], "own": [17, 19, 28], "merg": 17, "procedur": 17, "rviz2": [17, 19, 30], "visual": [17, 19, 26, 28, 42], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "omit": 17, "example_1": [17, 19, 20, 21, 30], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 42], "slider": 17, "around": [17, 38, 41, 43, 48], "ros2_control_demo_example_2": [17, 23], "categori": 17, "individu": [17, 36, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 32], "6dof": 17, "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 22, 23, 24, 25, 26, 27, 29], "view": [19, 28], "recreat": 19, "robotmodel": 19, "displai": [19, 21, 22, 24, 25, 26, 27, 29, 30], "ros2_control_demo_descript": 19, "ok": [19, 22, 23, 24, 25, 26, 27, 28, 29, 36], "warn": [19, 22, 23, 24, 25, 26, 27, 29, 42], "invalid": [19, 22, 23, 24, 25, 26, 27, 29], "frame": [19, 22, 23, 24, 25, 26, 27, 28, 29, 38], "odom": [19, 22, 23, 24, 25, 26, 27, 29, 34, 50], "cantransform": [19, 22, 23, 24, 25, 26, 27, 29], "target_fram": [19, 22, 23, 24, 25, 26, 27, 29], "happen": [19, 22, 23, 24, 25, 26, 27, 28, 29], "exemplari": [19, 22, 24, 25, 26, 27, 29, 31, 33, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 29, 30], "yellow": [19, 21, 22, 24, 25, 26, 27, 29, 30], "rectangl": [19, 21, 22, 24, 25, 26, 27, 29], "introspect": [19, 21, 22, 23, 24, 25, 26, 27, 29], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "entrypoint": 19, "nomin": 19, "marker": [19, 21, 22, 23, 24, 25, 26, 27, 29, 30], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "jointstatebroadcast": [19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "forward_position_control": [19, 20, 21, 24, 25, 26, 27, 29, 30], "forward_command_control": [19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 37, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "std_msg": [19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 37, 39, 47, 53], "float64multiarrai": [19, 20, 21, 22, 24, 25, 26, 27, 29, 30, 37, 39, 47, 53], "everi": [19, 24, 25, 26, 27, 28, 29, 30, 35, 39, 43, 56], "test_forward_position_control": [19, 24, 25, 26, 27, 29, 30], "block": [19, 21, 22, 24, 25, 26, 27, 28, 29], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27], "50000": [19, 21, 25, 26, 27], "echo": [19, 20, 21, 23, 25, 26, 30], "joint_stat": [19, 21, 23, 30, 42], "dynamic_joint_st": [19, 21, 30, 42], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 22, 27], "set_controller_st": 19, "rrbot_control": [19, 20, 21, 29, 30], "four": [19, 22, 31], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 21, 22, 24, 25, 26, 27, 29, 30], "rrbot_forward_position_publish": [19, 30], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "interface_nam": [20, 38, 39], "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "example_12": 21, "been": 21, "known": 21, "passthrough_control": 21, "ros2_control_demo_example_12": 21, "ident": [21, 23, 28, 30, 44], "joint2_position_control": 21, "passthroughcontrol": 21, "joint1_position_control": 21, "someth": 21, "automat": [21, 28, 30, 34, 51], "appear": 21, "whose": [21, 44], "henc": [21, 28], "launch_chained_control": 21, "position_control": [21, 35, 39], "streamlin": 21, "clearli": 21, "sent": [21, 43], "reflect": 21, "canopen_402": [22, 27], "modbu": [22, 27], "rs232": [22, 27], "rs485": [22, 27], "ros2_control_demo_example_14": 22, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 22, "list_hardware_compon": [22, 23, 25, 26, 27], "rrbotmodularjoint2": [22, 27], "rrbotactuatorwithoutfeedback": 22, "rrbotmodularjoint1": [22, 27], "rrbotmodularpositionsensorjoint2": 22, "rrbotsensorpositionfeedback": 22, "rrbotmodularpositionsensorjoint1": 22, "forward_velocity_control": [22, 24], "000000": 22, "00000": [22, 23, 24], "25300": 22, "rrbot_actuator_without_feedback": 22, "rrbot_sensor_for_position_feedback": 22, "example_2": 23, "excess": 23, "print": [23, 42], "left_wheel_joint": 23, "right_wheel_joint": 23, "diffbot_base_control": 23, "diff": 23, "geometry_msg": [23, 25, 26, 34, 38, 50], "twist": [23, 50, 51], "linear": [23, 28, 34, 41, 44, 46, 50, 51], "angular": [23, 34, 41, 50, 51], "circl": 23, "diffbotsystemhardwar": 23, "33333": 23, "faster": 23, "genericsystem": 23, "use_mock_hardwar": 23, "true": [23, 30, 34, 43, 44, 45, 46, 50], "calculate_dynam": 23, "diffbot_control": 23, "diffbot_descript": 23, "diffbot_system": 23, "example_3": 24, "fri": [24, 55], "abb": [24, 55], "yumi": 24, "schunk": [24, 55], "lwa4p": 24, "illeg": 24, "declin": 24, "faulti": 24, "ros2_control_demo_example_3": 24, "rrbot_system_multi_interfac": 24, "robot_control": [24, 28], "spawn": 24, "forward_acceleration_control": 24, "velocity_control": [24, 35, 39], "jointgroupvelocitycontrol": 24, "rrbotsystemmultiinterfacehardwar": 24, "po": [24, 44], "78500": 24, "vel": [24, 50], "acc": 24, "control_lvl": 24, "forward_illegal1_control": 24, "forward_illegal2_control": 24, "1676209982": 24, "531163501": 24, "resource_manag": 24, "rrbotsystemmultiinterfac": 24, "did": 24, "531223835": 24, "sinc": [24, 28, 33], "reject": [24, 43, 44], "spawner": 24, "531717376": 24, "spawner_forward_illegal1_control": 24, "indic": [24, 28], "rrbot_multi_interface_forward_control": 24, "krc": 25, "prototyp": 25, "odri": [25, 55], "ros2_control_demo_example_4": 25, "rrbot_system_with_sensor": 25, "rrbotsystemwithsensor": 25, "rrbotsystemwithsensorhardwar": 25, "fts_broadcast": [25, 26], "force_torque_sensor_broadcast": [25, 26], "forcetorquesensorbroadcast": [25, 26], "wrench": [25, 26, 32], "republish": [25, 26], "wrenchstamp": [25, 26, 38], "stamp": [25, 26, 50], "sec": [25, 26], "1676444704": [25, 26], "nanosec": [25, 26], "332221422": [25, 26], "tool_link": [25, 26], "946532964706421": 25, "nan": [25, 43], "0540995597839355": 25, "rrbot_with_sensor_control": 25, "pc": 26, "3d": [26, 28], "ros2_control_demo_example_5": 26, "rrbot_system_with_external_sensor": 26, "externalrrbotftsensor": 26, "externalrrbotforcetorquesensorhardwar": 26, "2126582860946655": 26, "3202226161956787": 26, "4302282333374023": 26, "540233612060547": 26, "647800624370575": 26, "7602499723434448": 26, "rrbot_with_external_sensor_control": 26, "rrbot_system_position_onli": 26, "external_rrbot_force_torque_sensor": 26, "mara": 27, "ros2_control_demo_example_6": 27, "rrbot_modular_actu": 27, "rrbotmodularjoint": 27, "rrbot_actu": 27, "queri": [28, 45], "enhanc": 28, "deploi": 28, "oper": [28, 56], "pattern": 28, "vendor": 28, "runtim": 28, "program": 28, "conform": 28, "newest": 28, "characterist": 28, "tree": [28, 34], "primari": [28, 45], "commerci": 28, "scratch": 28, "illustr": 28, "stl": 28, "dae": 28, "coars": 28, "mesh": 28, "fast": [28, 55], "collis": 28, "express": 28, "vertic": 28, "transform": 28, "rotat": [28, 34, 43], "translat": [28, 34, 51], "proxim": 28, "face": 28, "co": 28, "planer": 28, "xy": 28, "plane": 28, "align": 28, "blender": 28, "begin": 28, "neg": [28, 43], "pitch": 28, "yaw": 28, "repeat": 28, "robot_6_dof": 28, "base_link": [28, 50, 51], "link_0": 28, "inerti": 28, "mass": 28, "inertia": 28, "ixx": 28, "ixi": 28, "ixz": 28, "iyi": 28, "iyz": 28, "izz": 28, "tool0": 28, "base_joint": 28, "joint_1": 28, "link_1": 28, "061584": 28, "141592653589793": 28, "name_spac": 28, "class_nam": 28, "pi": [28, 43, 46], "enclos": 28, "previous": 28, "left": 28, "zero": [28, 32, 43, 44], "rel": [28, 44], "center": 28, "uniform": 28, "consecut": 28, "motion": [28, 43], "subsequ": 28, "join": [28, 56], "speci": 28, "verifi": 28, "urdf_to_graphviz": 28, "r6bot": 28, "explain": 28, "robotsystem": 28, "ur5": 28, "five": 28, "hardware_interface_return_valu": 28, "hardware_interface_publ": 28, "commandinterfac": 28, "durat": 28, "period": [28, 43], "privat": 28, "memori": [28, 36], "alloc": 28, "establish": 28, "angl": [28, 33, 50], "notabl": 28, "vari": 28, "fill": 28, "field": [28, 42, 44], "suppos": [28, 44], "tcp_force_torque_sensor": 28, "Their": 28, "pointer": 28, "info_": 28, "state_interfaces_": 28, "nearli": 28, "previou": [28, 44, 56], "command_interfaces_": 28, "constraint": [28, 36, 40, 41, 43, 45, 46, 50], "respons": 28, "turn": 28, "oppos": [28, 45], "tcp": [28, 32], "packet": 28, "robot_6_dof_hardwar": 28, "discov": 28, "library_nam": 28, "base_class_typ": 28, "human": 28, "notic": [28, 44], "just": 28, "add_librari": 28, "robot_hardwar": 28, "unlik": 28, "finit": 28, "certain": [28, 37, 47, 53], "transit": [28, 35, 44], "robotcontrol": 28, "nine": 28, "six": [28, 38], "callback": 28, "lifetim": 28, "restart": 28, "reconfigur": 28, "buffer": [28, 56], "reset": [28, 50], "transfer": 28, "eventu": 28, "mutex": 28, "guarante": [28, 44], "never": 28, "release_interfac": 28, "shut": 28, "free": [28, 34], "cleanup": 28, "r6bot_control": 28, "view_r6bot": 28, "ros2_control_demo_example_7": 28, "send_trajectori": 28, "circular": 28, "ros2_control_demo_example_8": 29, "rrbot_transmissions_system_position_onli": 29, "rrbottransmissionssystempositiononlyhardwar": 29, "transmission1": 29, "actuator1": 29, "transmission2": 29, "actuator2": 29, "383253": 29, "766505": 29, "53301": 29, "example_9": 30, "later": [30, 44], "ros2_control_demo_example_9": 30, "rrbot_gazebo_class": 30, "usr": 30, "ax": [31, 33, 38, 41, 46, 52], "wheel": [31, 33, 34, 50, 52], "traction": [31, 33, 50, 51, 52], "steerabl": [31, 33, 52], "generate_parameter_librari": [31, 32, 33, 39, 40, 41, 46, 50, 52], "parameter": [31, 33, 50, 52], "front_wheel_track": 31, "front": [31, 32, 33, 50, 52], "length": [31, 41, 46, 50, 52], "en": [31, 33, 52], "wikipedia": [31, 33, 50, 52, 56], "wiki": [31, 33, 44, 45, 52], "wheelbas": [31, 33, 52], "rear_wheel_track": 31, "rear": [31, 33, 50, 52], "distanc": [31, 33, 45, 48, 52], "front_wheels_radiu": [31, 52], "radiu": [31, 33, 52], "rear_wheels_radiu": [31, 52], "chainedcontrollerinterfac": 32, "joint_refer": 32, "trajectory_msg": [32, 44, 45], "jointtrajectorypoint": [32, 44], "admittancecontrollerst": 32, "ft_sensor": 32, "sensor_nam": [32, 38, 41, 48], "ackermann": [33, 35, 50], "vehicl": 33, "probabl": 33, "front_wheel_radiu": 33, "rear_wheel_radiu": 33, "bodi": 34, "odometri": [34, 50, 51], "space": [34, 45], "hw_if_posit": [34, 35, 50], "hw_if_veloc": [34, 35, 50], "position_feedback": [34, 50], "twiststamp": [34, 50], "use_stamped_vel": [34, 50], "nav_msg": [34, 50], "estim": 34, "tf": [34, 50], "tf2_msg": [34, 50], "tfmessag": [34, 50], "enable_odom_tf": [34, 50], "cmd_vel_out": 34, "publish_limited_veloc": 34, "jointlimit": 34, "joint_limit": 34, "commonli": 35, "bicycl": [35, 50], "effort_control": [35, 39], "hw_if_acceler": 35, "hw_if_effort": 35, "represent": [35, 45], "rqt_joint_trajectory_control": [35, 45], "onconfigur": 35, "configure_control": 35, "unsign": 35, "unspecifi": 35, "is_async": 35, "asynchron": 35, "controllernam": 36, "protect": 36, "reserv": 36, "importantli": 36, "ask": [36, 42], "sort": 36, "controller_name_namespac": 36, "controller_name_packag": 36, "ros2_control_test_asset": 36, "special": [37, 44, 47, 53], "hz": [37, 40, 47, 53], "wrapper": [38, 41, 48], "forcetorquesensor": 38, "6d": 38, "per": 38, "less": [38, 46, 50], "example_nam": 38, "example_interfac": 38, "feedforward": 39, "multi_interface_forward_command_control": 39, "string_arrai": [39, 46, 50], "action_monitor_r": [40, 43, 45], "greater": [40, 43], "equal": [40, 41], "goal_toler": 40, "max_effort": 40, "allow_stal": 40, "stall": 40, "stall_velocity_threshold": 40, "threshold": 40, "001": 40, "stall_timeout": 40, "imusensor": 41, "orient": 41, "angular_veloc": 41, "linear_acceler": 41, "static_covariance_orient": 41, "double_arrai": [41, 50], "static": 41, "covari": [41, 50], "row": 41, "static_covariance_angular_veloc": 41, "static_covariance_linear_acceler": 41, "unless": 42, "latter": 42, "matrix": [42, 50], "use_local_top": 42, "my_state_broadcast": 42, "arrai": 42, "extra_joint": 42, "map_interface_to_joint_st": 42, "usecas": 42, "hydraul": [42, 43], "relianc": 42, "techniqu": 42, "slightli": 42, "custom_interfac": 42, "kf_estimated_posit": 42, "derived_veloc": 42, "derived_effort": 42, "torque_sensor": 42, "current_sensor": 42, "command_joint": 43, "jtc": [43, 46], "monitor": [43, 45], "allow_partial_joints_go": [43, 45], "allow_integration_in_goal_trajectori": [43, 44], "interpolation_method": 43, "interpol": [43, 45, 46], "spline": 43, "open_loop_control": [43, 45], "gain": [43, 46], "numer": 43, "numeric_limit": 43, "quiet_nan": 43, "start_with_hold": 43, "hold": [43, 44], "allow_nonzero_velocity_at_trajectory_end": 43, "cmd_timeout": 43, "stale": 43, "count": 43, "goal_tim": [43, 45], "toler": [43, 45], "jointtrajectori": [43, 44, 45], "stopped_velocity_toler": [43, 45], "deviat": 43, "maxim": 43, "reach": [43, 44, 45], "predefin": 43, "infinit": 43, "amount": 43, "law": [43, 45], "k_": 43, "ff": 43, "v_d": 43, "k_p": 43, "k_i": 43, "sum": 43, "dt": 43, "k_d": 43, "angle_wraparound": 43, "i_clamp": 43, "clamp": 43, "symmetr": 43, "ff_velocity_scal": 43, "feed": [43, 46], "wrap": [43, 45], "ie": [43, 44], "shortest": 43, "s_d": 43, "saniti": 44, "sampl": [44, 50], "segment": [44, 45], "fault": 44, "datapoint": 44, "deduc": 44, "nor": 44, "discourag": 44, "yield": 44, "discontinu": [44, 45], "cubic": [44, 46], "quintic": [44, 46], "heun": 44, "grid": 44, "10m": 44, "deduct": 44, "nonzero": 44, "inconsist": 44, "overshoot": 44, "timestamp": 44, "arriv": 44, "necessarili": 44, "discard": 44, "substitut": 44, "smarter": 44, "preserv": 44, "flat": 44, "grei": 44, "red": 44, "traj": 44, "time_from_start": 44, "splice": 44, "append": 44, "held": [44, 45], "smooth": [44, 56], "longer": 44, "slower": 44, "effect": 44, "Of": 44, "interest": 44, "adolfo": [44, 45], "rodriguez": [44, 45], "instant": 45, "citat": 45, "adapt": 45, "restrict": 45, "robust": 45, "clock": 45, "queu": 45, "joint3": 45, "joint4": 45, "joint5": 45, "joint6": 45, "preempt": 45, "cancel": 45, "notifi": 45, "abort": 45, "legal": 45, "subset": 45, "favor": 45, "violat": 45, "joint_trajectori": 45, "fire": 45, "sender": 45, "query_st": 45, "cumbersom": 45, "controller_st": [45, 46, 50], "jointtrajectorycontrollerst": 45, "querytrajectoryst": 45, "footnot": 45, "pidro": 46, "pd": 46, "theoret": 46, "misus": 46, "pid_control": 46, "pidcontrol": 46, "reference_and_state_dof_nam": 46, "reference_and_state_interfac": 46, "dof_nam": 46, "in_chained_mod": [46, 50], "multidofcommand": 46, "use_external_measured_st": 46, "measured_st": 46, "set_feedforward_control": 46, "std_srv": 46, "setbool": 46, "multidofstatestamp": 46, "rangesensor": 48, "radiation_typ": 48, "int": [48, 50], "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "m": [48, 50], "max_rang": 48, "maximum": 48, "varianc": 48, "rqt": 49, "nomenclatur": 50, "unstamp": 50, "concret": 50, "tricylc": 50, "seer": 50, "front_steer": 50, "front_wheels_nam": 50, "rear_wheels_nam": 50, "traction_feedback_typ": 50, "reference_unstamp": 50, "tf_odometri": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "open_loop": 50, "velocity_rolling_window_s": 50, "number": 50, "averag": 50, "base_frame_id": 50, "odom_frame_id": 50, "twist_covariance_diagon": 50, "diagon": 50, "pose_covariance_diagon": 50, "pose": 50, "wheel_track": 52, "isaac": 54, "webot": 54, "manufactur": 55, "franka": 55, "emika": 55, "xarm": 55, "flexiv": 55, "rizon": 55, "igu": 55, "commonplac": 55, "husarion": 55, "rosbot": 55, "xl": 55, "2r": 55, "pro": 55, "openmanipul": 55, "clearpath": 55, "jackal": 55, "j100": 55, "huski": 55, "a200": 55, "unoffici": 55, "iiwa": 55, "lbr": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "egm": 55, "mitsubishi": 55, "rv1a": 55, "protocol": 55, "ethercat": 55, "canopen": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "odriv": 55, "ndi": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "hoverboard": 55, "overcom": 56, "idea": 56, "wide": 56, "toolkit": 56, "unreleas": 56, "question": 56, "wg": 56, "wednesdai": 56, "announc": 56, "discours": 56, "googl": 56, "bug": 56, "tracker": 56, "reproduc": 56, "regard": 56, "built": 56, "gmt": 56}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "review": 0, "stat": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 10], "merg": 1, "write": [1, 12, 15, 28, 36], "document": [1, 9, 11, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": 2, "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 10, 12, 13, 15, 28, 39, 42, 45], "class": [2, 9], "interfac": [2, 4, 13, 16, 20, 24, 28, 29, 32, 34, 37, 39, 42, 45, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 9, 10, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 34, 35, 36, 37, 39, 40, 45, 46, 47, 50, 53, 54], "": [2, 34, 45, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 7, 8, 11, 13, 17, 28, 32, 35, 56], "robothardwar": 2, "compon": [2, 4, 6, 12, 14, 15], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 17], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 17], "run": [3, 4, 5, 17], "demo": [3, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 28], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 9, 10, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 36, 45, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 45], "simul": [3, 5, 30, 54], "plugin": [3, 5, 28], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 17], "binari": 4, "packag": [4, 17], "from": [4, 6, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 46, 50], "sourc": [4, 17], "architectur": 4, "manag": [4, 9, 10], "resourc": [4, 7, 9], "user": 4, "descript": [4, 28, 34, 45, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 22, 24, 25, 26, 27, 28, 29, 35, 55], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 11, 34, 45, 51], "pariti": 6, "present": 7, "2023": [7, 8], "10": [7, 20], "18": 7, "roscon": [7, 8], "workshop": [7, 8], "steroid": [7, 8], "02": 7, "ro": [7, 32, 34, 37, 39, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 26], "2022": 7, "12": [7, 21], "industri": [7, 20, 25, 26, 29], "confer": [7, 8], "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "summari": 8, "slide": 8, "befor": 8, "come": 8, "peopl": 8, "chain": [9, 21], "cascad": 9, "scope": 9, "background": 9, "knowledg": 9, "motiv": 9, "purpos": 9, "implement": 9, "A": 9, "base": 9, "chainablecontrol": 9, "inner": 9, "activ": 9, "deactiv": 9, "debug": 9, "output": [9, 34], "close": 9, "remark": 9, "determin": 10, "paramet": [10, 14, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 46, 47, 48, 50, 52, 53], "helper": 10, "script": 10, "spawner": 10, "unspawn": 10, "concept": [10, 11], "restart": 10, "all": 10, "api": 11, "guidelin": [12, 35], "best": [12, 35], "practic": [12, 35], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 39, 42, 45], "sensor": [13, 25, 26, 38, 41, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 44], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 26, 36], "refer": [15, 32, 34, 36, 45, 46, 50], "command": [16, 32, 42, 45, 46, 50, 51], "line": 16, "list_control": 16, "list_controller_typ": 16, "list_hardware_compon": 16, "list_hardware_interfac": 16, "load_control": 16, "reload_controller_librari": 16, "set_controller_st": 16, "switch_control": 16, "unload_control": 16, "view_controller_chain": 16, "what": 17, "you": 17, "can": 17, "find": 17, "thi": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30], "goal": 17, "overview": [17, 28], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 45], "rrbot": [19, 21, 30], "step": [19, 21, 22, 23, 24, 25, 26, 27, 29, 30], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "14": 22, "modular": [22, 27], "actuat": [22, 27], "provid": 22, "state": [22, 32, 45, 46, 50], "diffbot": 23, "3": 24, "multipl": 24, "4": 25, "integr": [25, 54], "connect": 26, "6": 27, "separ": 27, "commun": [27, 54, 56], "each": 27, "7": 28, "full": 28, "6dof": 28, "geometri": 28, "cmake": 28, "librari": 28, "launch": 28, "8": 29, "an": 29, "expos": 29, "transmiss": 29, "9": 30, "ackermann_steering_control": 31, "admitt": 32, "2": [32, 34, 37, 39, 47, 53], "topic": [32, 37, 39, 47, 53], "bicycle_steering_control": 33, "diff_drive_control": 34, "other": [34, 35, 45, 51], "feedback": 34, "subscrib": [34, 45, 46, 50], "publish": [34, 45, 46, 50], "mobil": 35, "manipul": 35, "broadcast": [35, 38, 41, 48], "common": 35, "new": 36, "effort_control": 37, "jointgroupeffortcontrol": 37, "forc": 38, "torqu": 38, "forward_command_control": 39, "gripper": 40, "action": [40, 45], "imu": 41, "joint_state_broadcast": 42, "detail": 43, "about": 43, "trajectori": [44, 45], "represent": 44, "interpol": 44, "method": 44, "none": 44, "spline": 44, "visual": 44, "replac": 44, "joint_trajectory_control": 45, "preemption": 45, "polici": 45, "servic": [45, 46], "further": 45, "inform": 45, "pid": 46, "execut": [46, 50], "logic": [46, 50], "preced": [46, 50], "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "welcom": 56, "develop": 56, "organis": 56}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Reviewers\u2019 Stats": [[0, "reviewers-stats"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [17, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [10, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [12, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-10-18 ROSCon Workshop: ros2_control on Steroids": [[7, "roscon-workshop-ros2-control-on-steroids"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "ROSCon 2023 Workshop": [[8, "roscon-2023-workshop"]], "ros2_control on Steroids": [[8, "ros2-control-on-steroids"]], "Summary": [[8, "summary"]], "Slides": [[8, "slides"]], "Before coming to the conference": [[8, "before-coming-to-the-conference"]], "People": [[8, "people"]], "Controller Chaining / Cascade Control": [[9, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[9, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[9, "motivation-purpose-and-use"]], "Implementation": [[9, "implementation"]], "A Controller Base-Class: ChainableController": [[9, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[9, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[9, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[9, "debugging-outputs"]], "Closing remarks": [[9, "closing-remarks"]], "Determinism": [[10, "determinism"]], "Parameters": [[10, "parameters"], [14, "parameters"], [31, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [46, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [52, "parameters"], [53, "parameters"]], "Helper scripts": [[10, "helper-scripts"]], "spawner": [[10, "spawner"]], "unspawner": [[10, "unspawner"]], "Using the Controller Manager in a Process": [[10, "using-the-controller-manager-in-a-process"]], "Concepts": [[10, "concepts"], [11, "concepts"]], "Restarting all controllers": [[10, "restarting-all-controllers"]], "Restarting hardware": [[10, "restarting-hardware"]], "ros2_control": [[11, "ros2-control"]], "API Documentation": [[11, "api-documentation"]], "Features": [[11, "features"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [35, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[12, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[12, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[13, "ros2-control-hardware-interface-types"]], "Joints": [[13, "joints"]], "Sensors": [[13, "sensors"]], "GPIOs": [[13, "gpios"]], "Examples": [[13, "examples"], [17, "examples"]], "Mock Components": [[14, "mock-components"]], "Generic System": [[14, "generic-system"]], "Per-joint Parameters": [[14, "per-joint-parameters"]], "Writing a Hardware Component": [[15, "writing-a-hardware-component"]], "Useful External References": [[15, "useful-external-references"], [36, "useful-external-references"]], "Command Line Interface": [[16, "command-line-interface"]], "list_controllers": [[16, "list-controllers"]], "list_controller_types": [[16, "list-controller-types"]], "list_hardware_components": [[16, "list-hardware-components"]], "list_hardware_interfaces": [[16, "list-hardware-interfaces"]], "load_controller": [[16, "load-controller"]], "reload_controller_libraries": [[16, "reload-controller-libraries"]], "set_controller_state": [[16, "set-controller-state"]], "switch_controllers": [[16, "switch-controllers"]], "unload_controller": [[16, "unload-controller"]], "view_controller_chains": [[16, "view-controller-chains"]], "Demos": [[17, "demos"]], "What you can find in this repository": [[17, "what-you-can-find-in-this-repository"]], "Goals": [[17, "goals"]], "Examples Overview": [[17, "examples-overview"]], "Local installation": [[17, "local-installation"]], "Build from debian packages": [[17, "build-from-debian-packages"]], "Build from source": [[17, "build-from-source"]], "Using Docker": [[17, "using-docker"]], "To view the robot": [[17, "to-view-the-robot"]], "To run the ros2_control demos": [[17, "to-run-the-ros2-control-demos"]], "Quick Hints": [[17, "quick-hints"]], "Example 1: RRBot": [[19, "example-1-rrbot"]], "Tutorial steps": [[19, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [29, "tutorial-steps"], [30, "tutorial-steps"]], "Files used for this demos": [[19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [29, "files-used-for-this-demos"], [30, "files-used-for-this-demos"]], "Controllers from this demo": [[19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [29, "controllers-from-this-demo"], [30, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "Example 12: Controller chaining with RRBot": [[21, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[22, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[23, "diffbot"]], "Example 3: Robots with multiple interfaces": [[24, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[25, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[25, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[26, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[27, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[28, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[28, "ros2-control-overview"]], "Writing a URDF": [[28, "writing-a-urdf"]], "Geometry": [[28, "geometry"]], "URDF file": [[28, "urdf-file"]], "Writing a hardware interface": [[28, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[28, "plugin-description-file-hardware"]], "CMake library (hardware)": [[28, "cmake-library-hardware"]], "Writing a controller": [[28, "writing-a-controller"]], "Plugin description file (controller)": [[28, "plugin-description-file-controller"]], "CMake library (controller)": [[28, "cmake-library-controller"]], "Launching the example": [[28, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[29, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[30, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[31, "ackermann-steering-controller"]], "Admittance Controller": [[32, "admittance-controller"]], "ROS 2 interface of the controller": [[32, "ros-2-interface-of-the-controller"], [37, "ros-2-interface-of-the-controller"], [39, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[32, "topics"], [37, "topics"], [39, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[32, "ros2-control-interfaces"]], "References": [[32, "references"], [34, "references"], [45, "references"]], "States": [[32, "states"], [45, "states"], [46, "states"], [50, "states"]], "Commands": [[32, "commands"], [42, "commands"], [45, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[33, "bicycle-steering-controller"]], "diff_drive_controller": [[34, "diff-drive-controller"]], "Other features": [[34, "other-features"], [45, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[34, "description-of-controller-s-interfaces"], [45, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[34, "feedback"]], "Output": [[34, "output"]], "ROS 2 Interfaces": [[34, "ros-2-interfaces"]], "Subscribers": [[34, "subscribers"], [46, "subscribers"], [50, "subscribers"]], "Publishers": [[34, "publishers"], [45, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[35, "ros2-controllers"]], "Controllers for Mobile Robots": [[35, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[35, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[35, "broadcasters"]], "Common Controller Parameters": [[35, "common-controller-parameters"]], "Writing a new controller": [[36, "writing-a-new-controller"]], "effort_controllers": [[37, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[37, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[38, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[39, "forward-command-controller"]], "Hardware interface type": [[39, "hardware-interface-type"], [42, "hardware-interface-type"]], "Gripper Action Controller": [[40, "gripper-action-controller"]], "IMU Sensor Broadcaster": [[41, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[42, "joint-state-broadcaster"]], "Details about parameters": [[43, "details-about-parameters"]], "Trajectory Representation": [[44, "trajectory-representation"]], "Interpolation Method none": [[44, "interpolation-method-none"]], "Interpolation Method spline": [[44, "interpolation-method-spline"]], "Visualized Examples": [[44, "visualized-examples"]], "Trajectory Replacement": [[44, "trajectory-replacement"]], "joint_trajectory_controller": [[45, "joint-trajectory-controller"]], "Hardware interface types": [[45, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[45, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[45, "preemption-policy"]], "Actions 1": [[45, "actions"]], "Subscriber 1": [[45, "subscriber"]], "Services": [[45, "services"], [46, "services"]], "Further information": [[45, "further-information"]], "PID Controller": [[46, "pid-controller"]], "Execution logic of the controller": [[46, "execution-logic-of-the-controller"], [50, "execution-logic-of-the-controller"]], "Using the controller": [[46, "using-the-controller"]], "References (from a preceding controller)": [[46, "references-from-a-preceding-controller"], [50, "references-from-a-preceding-controller"]], "position_controllers": [[47, "position-controllers"]], "position_controllers/JointGroupPositionController": [[47, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[48, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[49, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[50, "steering-controllers-library"]], "tricycle_controller": [[51, "tricycle-controller"]], "Velocity commands": [[51, "velocity-commands"]], "tricycle_steering_controller": [[52, "tricycle-steering-controller"]], "velocity_controllers": [[53, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[53, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[54, "simulator-integrations"]], "Hosted by ros-controls": [[54, "hosted-by-ros-controls"]], "Community": [[54, "community"]], "Supported Robots": [[55, "supported-robots"]], "Welcome to the ros2_control documentation!": [[56, "welcome-to-the-ros2-control-documentation"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}})
\ No newline at end of file