diff --git a/foxy/.buildinfo b/foxy/.buildinfo index d0367cc683..28306a1184 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: c0a34f5230c869f9b78db04c42cda0a7 +config: 2e66e57b86627ff099acc434670e0733 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree b/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree index 9bc92d6386..14e7af5790 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 6946754c92..a0b0b1a076 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 19bec05a4f..b028d00ef0 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 5c6792c19d..00dbc48d63 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 e391a1199e..8f03ebe439 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 41b144a082..b5332362d8 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 b191796f08..83a87551d5 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 5a36c03b02..222811b35c 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 458e1d6035..d5c1334726 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 3ebc2238b9..a90c811f27 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 f74a004ceb..8ef87d2147 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 23ffb8ca9e..005071d05a 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 07bfcba294..593b953e5d 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 0f31e6b3bf..36532cc20e 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 46225eaaa0..79a248d3d4 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 319e9f6ff1..180a903c03 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 252a7c4608..27871971bb 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 5753e64dbe..3188cc3d35 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 9b87133bd2..051bf438d2 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 edff29cb25..fb45f2df4f 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 6aae77f433..19b54b37e4 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 ace0c3b064..d8641028ff 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 ff94bc1ad5..6e067831db 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 08b41ee814..61f0467a3b 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 7908b9a82f..8227b082ff 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 d78897303d..63755f1429 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 115184229f..807d1121f4 100644 --- a/foxy/index.html +++ b/foxy/index.html @@ -152,7 +152,7 @@

Development Organisation and Communication -

Built on 2024-02-23 at 05:31 GMT

+

Built on 2024-02-24 at 05:31 GMT

diff --git a/foxy/searchindex.js b/foxy/searchindex.js index 6befb1b722..234e125991 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, 24], "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, "2024": 24, "02": 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, "2024": 24, "02": 24, "24": 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 18c1a3cf77..25126f53fb 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: e16c34785e94b4c31e8dc5f2c7bc0917 +config: c5a3b5754f3561018cc6f3c4785e7e9a tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree b/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree index fa460526c2..7bad613d4d 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 950069c41e..795e5ba63a 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 4615c2354f..73bbb92788 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 7d5f8037e0..0a6fbc07c9 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 f21b0e1300..101ad7e0d5 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 e84bc17617..3ef732cb0f 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 8c9831c13b..c670c56d1f 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 54a39df9a4..0f48cac72e 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 d9a6043e95..5f9d26045d 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 fc3a968d86..85d8628361 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 ad8dae5e6e..f1c443782a 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 cf9f58b806..51b0ed78a0 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 305c24f9a2..99a72355fb 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 ed49927897..e6ab8ef056 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 895f70476c..71fd60c01d 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 fda943de1d..220e77376f 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 4e80105698..baa1cbc7f6 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 73b4a9d5b5..601ed0d1c8 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 5508e5219c..277df9f740 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 ea901b3e58..af9c63289b 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 bd4b783f2e..4d36e0c1a1 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 fcfe2ad1f0..d31d0bef93 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 f714116a2d..350fc7dc89 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 dafdcf5fc2..b89a2c447c 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 a01532b25b..f4908e174b 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 779597783b..660b58a94f 100644 --- a/galactic/index.html +++ b/galactic/index.html @@ -152,7 +152,7 @@

Development Organisation and Communication -

Built on 2024-02-23 at 05:31 GMT

+

Built on 2024-02-24 at 05:31 GMT

diff --git a/galactic/searchindex.js b/galactic/searchindex.js index 0174b4cbce..865da24bd8 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, 23], "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, "2024": 23, "02": 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, "2024": 23, "02": 23, "24": 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 67a94e43dd..0e903e197b 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: dccf826928975dd9272f9311301e263e +config: f2676534dcb60b7b07f90b104f3898cf tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree b/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree index bcc259aafe..9fbbfe7e81 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 8972a7ec73..06b397d2a8 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 a0e73b6d61..258cd06b44 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 0a6e08db6f..ba51cb7b5b 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 b8493d6a52..ad48d066ff 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 fced853484..145f5410e3 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 344ba0f11c..4ad6edc0c0 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 5915bb173f..b429424f10 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 3058611204..26ffd43fae 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 94750b2976..c05c37f6b8 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 6ca130ce8a..41a09e5c09 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/different_update_rates_userdoc.doctree b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree index 2339009f1f..3369f46ff6 100644 Binary files a/humble/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree and b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.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 d409b40f6f..04cfa2faa3 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 72ddd81861..92ad9a8640 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 8f8d282de2..c32c9919d8 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 6f37c6366c..089fecdbfd 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 8ca3206f8d..93d6fdf9fe 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 9b90b28612..b67db4ab4a 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 b271d0dceb..2df542c067 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 a49453bcba..439f8d529c 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 b6b1b560e1..205fdd999e 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_11/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree index af7ae4fe19..60e1ae9380 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_11/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 39228c5361..80180f77ab 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 5f75396dc3..85051cfeea 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 532372f1b5..73b61351e5 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 62502de2b5..3287cae03c 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 2732d3b94e..ef8c7d4822 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 babbf4f4ec..e319d27d5d 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 1af0121999..4697ffd650 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 4003f32bef..9b0f50e384 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 41eda78336..e7cc6bd496 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 b648a26b93..902726e330 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 282e0ceffc..bf263882b3 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 82359b0396..77e69a9c0f 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 a2ce9320e2..23bdd90eda 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 6b29cdfb4b..877feba4bc 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 32d5f4bd39..1901917566 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 82588ce166..f262c48d2c 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 23a4f8959b..3e11f10e5e 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 e01e5ab423..c8029ac8a5 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 beda04b4ab..34730cc3cb 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 74121a8628..2c9b87843a 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 ce824f53fe..b2b210e70d 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 b15380fcc0..b34b857878 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 d0706b29e0..c57716ad63 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 0b0c45b9bc..0cdd9c7199 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 b7f3d78428..3a0da4be92 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 012528b8d3..a943908e55 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 0f56f10d41..be9ee08fd6 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/rqt_joint_trajectory_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree index d0461edc60..16fd09ec28 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/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 1560b376ff..8152e0adc2 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 b4ff02854c..2dad8fc67e 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 92e048bbed..31fbb432ff 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 da53128a59..51d3f33f29 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 41fe0d8abe..8717446dce 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 ecebbece83..293eb0de2a 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 5473bb720d..aff2f49335 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 cc75051b91..55db898bd3 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 bc0b849dc0..e909e602fa 100644 --- a/humble/doc/acknowledgements/acknowledgements.html +++ b/humble/doc/acknowledgements/acknowledgements.html @@ -155,11 +155,11 @@

Maintainers
- 57466 + 51190
@@ -184,11 +184,11 @@

Maintainers -
+
9074
-
+
@@ -209,13 +209,13 @@

Maintainers -
+
- 5951 + 5851
-
+
@@ -223,7 +223,7 @@

Maintainers -
+
- 59371 + 59375
-
+
@@ -341,7 +341,7 @@

Maintainers
0.73
-
+
- + @@ -421,15 +421,15 @@

Maintainers -
+
- 0.89 + 0.88
-
+
@@ -450,15 +450,15 @@

Maintainers -
+
0.26
-
+
@@ -466,7 +466,7 @@

Maintainers
0.81
-
+
- + @@ -546,15 +546,15 @@

Maintainers -
+
0.54
-
+
@@ -575,15 +575,15 @@

Maintainers -
+
- 0.90 + 0.89
-
+
@@ -591,7 +591,7 @@

Maintainers -
+
- 8361 + 8571
@@ -680,7 +680,7 @@

Contributors -
+
@@ -707,7 +707,7 @@

Contributors -
+
@@ -734,7 +734,7 @@

Contributors -
+
@@ -761,7 +761,7 @@

Contributors -
+
@@ -788,7 +788,7 @@

Contributors -
+
@@ -815,7 +815,7 @@

Contributors -
+
@@ -842,7 +842,7 @@

Contributors -
+
@@ -869,7 +869,7 @@

Contributors -
+
@@ -896,7 +896,7 @@

Contributors -
+
@@ -923,7 +923,7 @@

Contributors -
+
@@ -950,7 +950,7 @@

Contributors -
+
@@ -977,7 +977,7 @@

Contributors -
+
@@ -1004,7 +1004,7 @@

Contributors -
+
@@ -1031,7 +1031,7 @@

Contributors -
+
@@ -1058,7 +1058,7 @@

Contributors -
+
@@ -1085,7 +1085,7 @@

Contributors -
+
@@ -1112,7 +1112,7 @@

Contributors -
+
@@ -1139,7 +1139,7 @@

Contributors -
+
@@ -1166,7 +1166,7 @@

Contributors -
+
@@ -1193,7 +1193,7 @@

Contributors -
+
@@ -1220,7 +1220,7 @@

Contributors -
+
@@ -1247,7 +1247,7 @@

Contributors -
+
@@ -1274,7 +1274,7 @@

Contributors -
+
@@ -1301,7 +1301,7 @@

Contributors -
+
@@ -1328,7 +1328,7 @@

Contributors -
+
@@ -1355,7 +1355,7 @@

Contributors -
+
@@ -1382,7 +1382,7 @@

Contributors -
+
@@ -1409,7 +1409,7 @@

Contributors -
+
@@ -1436,7 +1436,7 @@

Contributors -
+
@@ -1463,7 +1463,7 @@

Contributors -
+
@@ -1490,7 +1490,7 @@

Contributors -
+
@@ -1517,7 +1517,7 @@

Contributors -
+
@@ -1544,7 +1544,7 @@

Contributors -
+
@@ -1571,7 +1571,7 @@

Contributors -
+
@@ -1598,7 +1598,7 @@

Contributors -
+
@@ -1625,7 +1625,7 @@

Contributors -
+
@@ -1652,7 +1652,7 @@

Contributors -
+
@@ -1679,7 +1679,7 @@

Contributors -
+
@@ -1706,7 +1706,7 @@

Contributors -
+
@@ -1733,7 +1733,7 @@

Contributors -
+
@@ -1760,7 +1760,7 @@

Contributors -
+
@@ -1787,7 +1787,7 @@

Contributors -
+
@@ -1814,7 +1814,7 @@

Contributors -
+
@@ -1841,7 +1841,7 @@

Contributors -
+
@@ -1868,7 +1868,7 @@

Contributors -
+
@@ -1895,7 +1895,7 @@

Contributors -
+
@@ -1922,7 +1922,7 @@

Contributors -
+
@@ -1949,7 +1949,7 @@

Contributors -
+
@@ -1976,7 +1976,7 @@

Contributors -
+
@@ -2003,7 +2003,7 @@

Contributors -
+
@@ -2030,7 +2030,7 @@

Contributors -
+
@@ -2057,7 +2057,7 @@

Contributors -
+
@@ -2084,7 +2084,7 @@

Contributors -
+
@@ -2111,7 +2111,7 @@

Contributors -
+
@@ -2138,7 +2138,7 @@

Contributors -
+
@@ -2165,7 +2165,7 @@

Contributors -
+
@@ -2192,7 +2192,7 @@

Contributors -
+
@@ -2219,7 +2219,7 @@

Contributors -
+
@@ -2246,7 +2246,7 @@

Contributors -
+
@@ -2273,7 +2273,7 @@

Contributors -
+
@@ -2300,7 +2300,7 @@

Contributors -
+
@@ -2308,7 +2308,7 @@

Contributors -
+
- 8430 + 8640
-
+
@@ -7556,7 +7556,7 @@

Contributors
- 0.85 + 0.87
-
+
@@ -7665,7 +7665,7 @@

Contributors
@@ -7673,7 +7673,7 @@

Contributors -
+
@@ -7723,18 +7723,18 @@

Contributors -
+
0.54
-
+
- + @@ -7897,7 +7897,7 @@

Contributors
@@ -7905,7 +7905,7 @@

Contributors -
+
@@ -8071,7 +8071,7 @@

Contributors
@@ -8079,7 +8079,7 @@

Contributors -
+
@@ -9160,7 +9160,7 @@

Contributors
@@ -9335,7 +9335,7 @@

Contributors -
+
@@ -9472,18 +9472,18 @@

Contributors -
+
0.56
-
+
- + @@ -9588,7 +9588,7 @@

Contributors
@@ -9596,7 +9596,7 @@

Contributors -
+
@@ -10922,7 +10922,7 @@

Contributors
@@ -10930,7 +10930,7 @@

Contributors -
+
@@ -12649,7 +12649,7 @@

Contributors -

Built on 2024-02-23 at 05:32 GMT

+

Built on 2024-02-24 at 05:31 GMT

diff --git a/humble/searchindex.js b/humble/searchindex.js index 4d206a5cb0..6e539c5ba3 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/different_update_rates_userdoc", "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_11/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/different_update_rates_userdoc.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_11/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", "Different update rates for Hardware Components", "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", "CarlikeBot", "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 - 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, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45, 46], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "366": 0, "57466": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "149": 0, "9074": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": [0, 56], "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "50": [0, 4, 9, 24, 35, 44, 46], "5951": 0, "09": 0, "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 11], "02": [0, 35, 56], "22": [0, 9], "03": [0, 21, 46], "26": 0, "00": 0, "utc": 0, "367": 0, "77026": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50], "01t10": 0, "36": 0, "22z": 0, "382": 0, "59371": 0, "663": 0, "57955": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 44, 45, 46], "561": 0, "408": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 52], "73": 0, "19t18": 0, "48": [0, 3, 5], "52z": 0, "197": 0, "175": [0, 6], "89": 0, "22t07": 0, "34z": 0, "466": 0, "122": 0, "02t15": 0, "11z": 0, "1365": 0, "1106": 0, "81": [0, 6, 33], "1089": 0, "591": 0, "54": 0, "212": 0, "190": 0, "90": [0, 29], "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 22, 24, 25, 29, 31, 32, 33, 34, 37, 43, 44, 46, 52], "develop": [0, 1, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 1, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 46, 52], "inform": [0, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "40": [0, 35], "8361": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "34": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "27z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "46": 0, "2345": 0, "23t14": 0, "39z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "06": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "14": [0, 17, 50, 55], "1159": 0, "16t15": 0, "21": [0, 50], "48z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "718": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "00z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "548": 0, "11t18": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "437": 0, "21t14": 0, "43z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 6], "09t10": 0, "21z": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "200": 0, "22t09": 0, "27": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "15": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "16": [0, 55], "41z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "25": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "bijoua29": 0, "83": 0, "19t22": 0, "02z": 0, "bailac": 0, "68": 0, "08t11": 0, "49z": 0, "olivi": 0, "stass": 0, "49": 0, "26t02": 0, "31": 0, "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "04": [0, 9], "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "35": [0, 50], "27t20": 0, "28": [0, 50], "roni": 0, "kreinin": 0, "28t16": 0, "15z": 0, "robotgir": 0, "28t17": 0, "wiktor": 0, "bajor": 0, "99": [0, 9], "23": [0, 4, 33, 56], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "andyz": 0, "20": [0, 21, 41, 44, 46], "37z": 0, "bordallo": 0, "greatalexand": 0, "19": 0, "10t22": 0, "mosfet80": 0, "14t06": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "24t20": 0, "55": 0, "36z": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "8": [0, 17, 33], "17t10": 0, "38z": 0, "daniel": 0, "azanov": 0, "muritan": 0, "16t21": 0, "baltovski": 0, "tonybaltovski": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "02t12": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "52": [0, 48], "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "47": 0, "03z": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "stephani": 0, "eng": 0, "14t17": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t10": 0, "45z": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "33z": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "david": 0, "v": [0, 16, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "19z": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "220": 0, "20630": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "10393": 0, "15t18": 0, "51": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "41": 0, "8430": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "3906": 0, "29t19": 0, "06z": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "3260": 0, "19t13": 0, "59": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "2013": 0, "03t20": 0, "13z": 0, "1275": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "55z": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 17], "56z": 0, "970": 0, "21t01": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "04z": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "268": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "19t21": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "17t18": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "14t07": 0, "28z": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "186": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "125": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "70": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "dirk": 0, "thoma": [0, 1], "2012": 0, "14t02": 0, "26z": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "26t09": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "114": 0, "93": 0, "107": 0, "15t12": 0, "01t22": 0, "92": 0, "19t20": 0, "07z": 0, "01t20": 0, "16t12": 0, "13t18": 0, "22t06": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "11t12": 0, "67": 0, "17t15": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "110": 0, "28t09": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "80": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "31t15": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "105": 0, "97": 0, "101": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "74": 0, "andr": 0, "montano": 0, "anfemosa": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "60": 0, "adam": 0, "serafin": 0, "serafadam": 0, "126": 0, "118": 0, "63": 0, "07t16": 0, "14t09": 0, "182": 0, "78": 0, "96": 0, "23t02": 0, "156": 0, "79": 0, "10t19": 0, "27t13": 0, "168": 0, "158": 0, "172": 0, "30t19": 0, "25t01": 0, "69": 0, "14t18": 0, "25t18": 0, "07t07": 0, "01t03": 0, "134": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "176": 0, "26t15": 0, "39": 0, "132": 0, "147": 0, "05t22": 0, "19t23": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "23t22": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "133": 0, "21t11": 0, "87": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "13t16": 0, "ken551": 0, "03t11": 0, "05t14": 0, "27t18": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 43, 44, 45], "receiv": [0, 2, 29, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 1, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 46, 56], "consid": [1, 16, 35, 44], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 37, 38, 39, 46, 47, 50, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 35, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 21, 29, 33, 35, 38, 43, 44, 45, 46, 47, 48, 50, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43], "give": [1, 7, 9, 17, 19, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 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, 31, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 4, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44, 46], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 37, 41, 44, 46, 50], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 35, 37, 44, 46, 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, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 45, 46, 50, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 48, 50, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 56], "part": [1, 6, 7, 13, 29, 37, 45, 46], "For": [1, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "detail": [1, 2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "cokela": 1, "info": [1, 9, 11, 12, 15, 29], "tutori": [1, 17], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": 1, "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 7, 8, 45, 46], "compat": [1, 2, 7, 15, 17], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 46, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 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, 38, 40, 41, 43, 44, 45, 47, 50, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 35, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 35, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 24, 29, 36, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "stop": [2, 7, 8, 9, 12, 16, 19, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 5, 9, 12, 14, 15, 16, 19, 25, 33, 35, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 29, 33, 44, 46], "initial_valu": [3, 5, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37], "link": [3, 4, 5, 7, 8, 12, 29, 33, 35, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "locat": [3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 5, 17, 29, 35, 41], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "respect": [3, 5, 6, 7, 44, 45, 46], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 37, 44, 45, 46], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 44, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "action": [3, 5, 8, 44], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 38, 47, 53], "100": [3, 4, 5, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "interface_nam": [3, 20, 39, 40], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "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, 31, 45, 46], "example_gripp": [3, 5], "humbl": [4, 17, 29], "want": [4, 8, 9, 17], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "org": [4, 6, 11, 32, 34, 52], "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 35, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "github": [4, 6, 10, 17, 29, 36, 54, 55, 56], "figur": [4, 45], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29], "executor": [4, 9], "custom": [4, 13, 14, 17, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "while": [4, 6, 7, 29, 33, 45], "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 36, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 45], "dynam": [4, 15, 21, 29, 33, 37], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "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, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 24, 29, 31, 33, 44], "pure": 4, "stack": [4, 7, 56], "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "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, 8, 14, 15, 25, 35, 42, 43, 46, 56], "gener": [6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 9, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "earlier": 6, "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "intern": [6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7], "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "control": [7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 45, 50], "scale": [7, 44], "factor": [7, 35], "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, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "done": [7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "doc": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50], "frequenc": 9, "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "std": [9, 29, 35, 44], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45, 46], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41, 46], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": 11, "int": [11, 35, 48, 50], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 21, 24, 31, 33, 35, 44, 45, 46, 50], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33, 46], "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, "know": 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, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "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, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": 14, "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "written": [15, 23, 28, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "diagram": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "wheel": [21, 32, 34, 35, 50, 52], "front": [21, 32, 33, 34, 50, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "ident": [22, 24, 29, 31, 45], "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": 22, "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "list_hardware_compon": [23, 24, 26, 27, 28], "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "faster": [24, 35], "genericsystem": 24, "use_mock_hardwar": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "nan": [26, 44], "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35], "rotat": [29, 35, 44], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "roll": [29, 35], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 37, 39, 41, 42, 44, 46, 50], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "214": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44], "wrong": 35, "behav": 35, "correctli": 35, "curv": 35, "wheels_per_sid": 35, "number": [35, 50], "slip": 35, "account": 35, "present": [35, 46], "enter": 35, "huski": [35, 55], "wheel_radiu": 35, "slower": [35, 45], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50], "odom_frame_id": [35, 50], "pose_covariance_diagon": [35, 50], "covari": [35, 42, 50], "tune": 35, "sampl": [35, 45, 50], "001": [35, 41], "twist_covariance_diagon": [35, 50], "speed": 35, "open_loop": [35, 50], "cmd_vel_timeout": 35, "stale": [35, 44], "velocity_rolling_window_s": [35, 50], "old": 35, "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": 35, "numeric_limit": [35, 44], "quiet_nan": [35, 44], "min_veloc": 35, "max_acceler": 35, "min_acceler": 35, "max_jerk": 35, "min_jerk": 35, "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "write_op_mod": 35, "motor_control": 35, "500": 35, "millisecond": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "unless": 43, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "state_publish_r": [44, 46], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "deprec": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "hold": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "cumbersom": 46, "controller_st": [46, 50], "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 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, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "averag": 50, "diagon": 50, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 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, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 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, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "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, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 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, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "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, 22], "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, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 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, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "humbl": 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"]], "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"], [9, "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-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"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [52, "parameters"], [53, "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"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "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"], [37, "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"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "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"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "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"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "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"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "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"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Humble!": [[56, "welcome-to-the-ros2-control-documentation-humble"]], "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/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/different_update_rates_userdoc", "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_11/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/different_update_rates_userdoc.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_11/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", "Different update rates for Hardware Components", "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", "CarlikeBot", "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 - 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, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45, 46], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "363": 0, "51190": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "149": 0, "9074": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "49": 0, "5851": 0, "09": 0, "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 11], "02": [0, 35, 56], "23": [0, 4, 33], "03": [0, 21, 46], "25": 0, "58": 0, "utc": 0, "367": 0, "77026": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50], "01t10": 0, "36": 0, "22z": 0, "383": 0, "59375": 0, "663": 0, "57955": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 44, 45, 46], "563": 0, "409": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 52], "73": 0, "22t14": 0, "13": [0, 17], "31z": 0, "199": 0, "176": 0, "88": 0, "22t07": 0, "34z": 0, "468": 0, "122": 0, "26": 0, "02t15": 0, "11z": 0, "1367": 0, "1107": 0, "81": [0, 6, 33], "1091": 0, "591": 0, "54": 0, "214": [0, 33], "191": 0, "89": 0, "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 22, 24, 25, 29, 31, 32, 33, 34, 37, 43, 44, 46, 52], "develop": [0, 1, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 1, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 46, 52], "inform": [0, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "41": 0, "8571": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "34": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "27z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "46": 0, "2345": 0, "23t14": 0, "40": [0, 35], "39z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "06": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "14": [0, 17, 50, 55], "1159": 0, "16t15": 0, "21": [0, 50], "48z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "718": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "00z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "548": 0, "11t18": 0, "52z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "437": 0, "21t14": 0, "43z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 6], "09t10": 0, "21z": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": [0, 56], "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "200": 0, "22t09": 0, "27": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "15": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "16": [0, 55], "41z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "bijoua29": 0, "83": 0, "19t22": 0, "02z": 0, "bailac": 0, "68": 0, "08t11": 0, "49z": 0, "olivi": 0, "stass": 0, "26t02": 0, "31": [0, 56], "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "04": [0, 9], "27t11": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "35": [0, 50], "27t20": 0, "28": [0, 50], "roni": 0, "kreinin": 0, "28t16": 0, "15z": 0, "robotgir": 0, "28t17": 0, "wiktor": 0, "bajor": 0, "99": [0, 9], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "andyz": 0, "20": [0, 21, 41, 44, 46], "50": [0, 4, 9, 24, 35, 44, 46], "37z": 0, "bordallo": 0, "greatalexand": 0, "19": 0, "10t22": 0, "mosfet80": 0, "14t06": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "24t20": 0, "55": 0, "36z": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "8": [0, 17, 33], "17t10": 0, "38z": 0, "daniel": 0, "azanov": 0, "muritan": 0, "16t21": 0, "baltovski": 0, "tonybaltovski": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "02t12": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "52": [0, 48], "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "47": 0, "03z": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "stephani": 0, "eng": 0, "14t17": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t10": 0, "00": 0, "45z": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "33z": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "david": 0, "v": [0, 16, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "19z": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "220": 0, "20630": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "22": [0, 9], "10393": 0, "15t18": 0, "51": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "8640": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "3906": 0, "29t19": 0, "06z": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "3260": 0, "19t13": 0, "59": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "48": [0, 3, 5], "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "1275": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "55z": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "56z": 0, "970": 0, "21t01": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "04z": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "268": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "19t21": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "186": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "125": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "70": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "dirk": 0, "thoma": [0, 1], "2012": 0, "14t02": 0, "26z": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "26t09": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "114": 0, "93": 0, "87": 0, "108": 0, "15t12": 0, "22t22": 0, "01t22": 0, "92": 0, "19t20": 0, "07z": 0, "01t20": 0, "16t12": 0, "13t18": 0, "105": 0, "22t06": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "11t12": 0, "67": 0, "17t15": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "91": 0, "13t11": 0, "110": 0, "28t09": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "80": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "31t15": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "97": 0, "101": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "74": 0, "andr": 0, "montano": 0, "anfemosa": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "60": 0, "adam": 0, "serafin": 0, "serafadam": 0, "126": 0, "118": 0, "63": 0, "07t16": 0, "90": [0, 29], "14t09": 0, "183": 0, "78": 0, "96": 0, "23t02": 0, "156": 0, "79": 0, "10t19": 0, "197": 0, "189": 0, "27t13": 0, "168": 0, "158": 0, "172": 0, "30t19": 0, "25t01": 0, "69": 0, "14t18": 0, "25t18": 0, "07t07": 0, "01t03": 0, "134": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "26t15": 0, "39": 0, "132": 0, "147": 0, "05t22": 0, "19t23": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "175": [0, 6], "23t22": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "133": 0, "21t11": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "13t16": 0, "ken551": 0, "03t11": 0, "05t14": 0, "27t18": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 43, 44, 45], "receiv": [0, 2, 29, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 1, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 46, 56], "consid": [1, 16, 35, 44], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 37, 38, 39, 46, 47, 50, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 35, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 21, 29, 33, 35, 38, 43, 44, 45, 46, 47, 48, 50, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43], "give": [1, 7, 9, 17, 19, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 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, 31, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 4, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44, 46], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 37, 41, 44, 46, 50], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 35, 37, 44, 46, 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, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 45, 46, 50, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 48, 50, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 56], "part": [1, 6, 7, 13, 29, 37, 45, 46], "For": [1, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "detail": [1, 2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "cokela": 1, "info": [1, 9, 11, 12, 15, 29], "tutori": [1, 17], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": 1, "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 7, 8, 45, 46], "compat": [1, 2, 7, 15, 17], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 46, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 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, 38, 40, 41, 43, 44, 45, 47, 50, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 35, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 35, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 24, 29, 36, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "stop": [2, 7, 8, 9, 12, 16, 19, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 5, 9, 12, 14, 15, 16, 19, 25, 33, 35, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 29, 33, 44, 46], "initial_valu": [3, 5, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37], "link": [3, 4, 5, 7, 8, 12, 29, 33, 35, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "locat": [3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 5, 17, 29, 35, 41], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "respect": [3, 5, 6, 7, 44, 45, 46], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 37, 44, 45, 46], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 44, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "action": [3, 5, 8, 44], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 38, 47, 53], "100": [3, 4, 5, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "interface_nam": [3, 20, 39, 40], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "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, 31, 45, 46], "example_gripp": [3, 5], "humbl": [4, 17, 29], "want": [4, 8, 9, 17], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "org": [4, 6, 11, 32, 34, 52], "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 35, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "github": [4, 6, 10, 17, 29, 36, 54, 55, 56], "figur": [4, 45], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29], "executor": [4, 9], "custom": [4, 13, 14, 17, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "while": [4, 6, 7, 29, 33, 45], "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 36, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 45], "dynam": [4, 15, 21, 29, 33, 37], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "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, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 24, 29, 31, 33, 44], "pure": 4, "stack": [4, 7, 56], "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "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, 8, 14, 15, 25, 35, 42, 43, 46, 56], "gener": [6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 9, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "earlier": 6, "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "intern": [6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7], "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "control": [7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 45, 50], "scale": [7, 44], "factor": [7, 35], "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, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "done": [7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "doc": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50], "frequenc": 9, "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "std": [9, 29, 35, 44], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45, 46], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41, 46], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": 11, "int": [11, 35, 48, 50], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 21, 24, 31, 33, 35, 44, 45, 46, 50], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33, 46], "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, "know": 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, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "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, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": 14, "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "written": [15, 23, 28, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "diagram": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "wheel": [21, 32, 34, 35, 50, 52], "front": [21, 32, 33, 34, 50, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "ident": [22, 24, 29, 31, 45], "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": 22, "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "list_hardware_compon": [23, 24, 26, 27, 28], "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "faster": [24, 35], "genericsystem": 24, "use_mock_hardwar": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "nan": [26, 44], "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35], "rotat": [29, 35, 44], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "roll": [29, 35], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 37, 39, 41, 42, 44, 46, 50], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44], "wrong": 35, "behav": 35, "correctli": 35, "curv": 35, "wheels_per_sid": 35, "number": [35, 50], "slip": 35, "account": 35, "present": [35, 46], "enter": 35, "huski": [35, 55], "wheel_radiu": 35, "slower": [35, 45], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50], "odom_frame_id": [35, 50], "pose_covariance_diagon": [35, 50], "covari": [35, 42, 50], "tune": 35, "sampl": [35, 45, 50], "001": [35, 41], "twist_covariance_diagon": [35, 50], "speed": 35, "open_loop": [35, 50], "cmd_vel_timeout": 35, "stale": [35, 44], "velocity_rolling_window_s": [35, 50], "old": 35, "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": 35, "numeric_limit": [35, 44], "quiet_nan": [35, 44], "min_veloc": 35, "max_acceler": 35, "min_acceler": 35, "max_jerk": 35, "min_jerk": 35, "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "write_op_mod": 35, "motor_control": 35, "500": 35, "millisecond": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "unless": 43, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "state_publish_r": [44, 46], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "deprec": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "hold": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "cumbersom": 46, "controller_st": [46, 50], "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 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, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "averag": 50, "diagon": 50, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 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, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 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, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "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, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 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, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "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, 22], "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, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 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, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "humbl": 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"]], "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"], [9, "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-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"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [52, "parameters"], [53, "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"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "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"], [37, "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"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "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"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "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"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "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"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "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"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Humble!": [[56, "welcome-to-the-ros2-control-documentation-humble"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/iron/.buildinfo b/iron/.buildinfo index b865989a24..6485ff0239 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: 7ca9cc01ead93578fa6de992b82b0367 +config: aac2b965638fc3be6b2965527c23f421 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/iron/.doctrees/doc/acknowledgements/acknowledgements.doctree b/iron/.doctrees/doc/acknowledgements/acknowledgements.doctree index 527b71ca5b..961e12751a 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 45fd591abf..e15f816014 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 8e2f5a4533..2ba475bac0 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 ca6ae9e525..f42b2f01b9 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 1a583e0b47..01e84b8628 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 aac702b366..c0c1a428c3 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 c989820178..6fe37b4438 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 cf12760161..e0266d91bd 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 e6d6cd734e..440619bddc 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 402763a18a..2d2e5bc8dc 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 ff6e2340da..80ca5fb95b 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/different_update_rates_userdoc.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree index 041c5b0a2f..07b2d2063f 100644 Binary files a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree and b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.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 c6a287c2d8..81aabed026 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 c809c6614d..1f8cc05d5c 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 51aeeb26b1..015c63800a 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 a81e4221e7..a73168ff48 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 d62289875b..41d23d05e0 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 94a721f126..489f812f73 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 f76dbd5184..68325f3ad9 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 fe1e637988..fc7dc22e33 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 41c41b4d6c..f43d4aece3 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_11/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree index 564a970fac..52bd85fa1f 100644 Binary files a/iron/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree and b/iron/.doctrees/doc/ros2_control_demos/example_11/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 1799d0715e..ea10b613bd 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 bc496a7d63..8bc4879c8e 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 e0e95d4841..6038f85169 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 ddc68c51d2..a599636a35 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 2c164fd713..e078ae2aaf 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 86181b715b..0d320e3f1b 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 68c9844810..164adf59a5 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 f3b61ead28..0dfb6bb723 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 2212fe3a92..f2b9da80c3 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 8ae4d9e440..d50e71435d 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 d8b4851bfc..e83e94f3cd 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 fea7473d00..5755e10b9c 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 b0d9592647..c74c891251 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 76421c2662..aff5b51471 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 ad77c858e1..9c79997a90 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 a10e6e89eb..559f8a1b61 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 02c64163a2..881e6bc7fc 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 4ab1f653c6..036c57108a 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 4e64f19eba..ad8827414f 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 f437953d45..812b5f29eb 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 799c353e07..eae6c8887f 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 6be3ec51ed..5ae76c8edc 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 9628420b1e..d02020bb5c 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 5cbfeff9d2..43ec25e83c 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 dba7ea21e0..d956022ede 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 996bf88e1e..7f987be6ca 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 ed2758072b..f01fe436d6 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 ea14e77563..33131f08b8 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 7716265729..fc04fe28a1 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 0432fd5475..8967b1713b 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 33b89b2f22..b09fa357e5 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 d15a7d971d..e8a184cee1 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 814a709719..e1353bbff9 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 a44f90f506..c4a1ed4d45 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 1d76df0225..96fed801ec 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 cfb6c4c3cf..7c76a9ace0 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 42206b12dd..1311ed5577 100644 --- a/iron/doc/acknowledgements/acknowledgements.html +++ b/iron/doc/acknowledgements/acknowledgements.html @@ -146,11 +146,11 @@

Maintainers
- 57466 + 51190
@@ -175,11 +175,11 @@

Maintainers -
+
9074
-
+
@@ -200,13 +200,13 @@

Maintainers -
+
- 5951 + 5851
-
+
@@ -214,7 +214,7 @@

Maintainers -
+
- 59371 + 59375
-
+
@@ -332,7 +332,7 @@

Maintainers
0.73
-
+
- + @@ -412,15 +412,15 @@

Maintainers -
+
- 0.89 + 0.88
-
+
@@ -441,15 +441,15 @@

Maintainers -
+
0.26
-
+
@@ -457,7 +457,7 @@

Maintainers
0.81
-
+
- + @@ -537,15 +537,15 @@

Maintainers -
+
0.54
-
+
@@ -566,15 +566,15 @@

Maintainers -
+
- 0.90 + 0.89
-
+
@@ -582,7 +582,7 @@

Maintainers -
+
- 8361 + 8571
@@ -671,7 +671,7 @@

Contributors -
+
@@ -698,7 +698,7 @@

Contributors -
+
@@ -725,7 +725,7 @@

Contributors -
+
@@ -752,7 +752,7 @@

Contributors -
+
@@ -779,7 +779,7 @@

Contributors -
+
@@ -806,7 +806,7 @@

Contributors -
+
@@ -833,7 +833,7 @@

Contributors -
+
@@ -860,7 +860,7 @@

Contributors -
+
@@ -887,7 +887,7 @@

Contributors -
+
@@ -914,7 +914,7 @@

Contributors -
+
@@ -941,7 +941,7 @@

Contributors -
+
@@ -968,7 +968,7 @@

Contributors -
+
@@ -995,7 +995,7 @@

Contributors -
+
@@ -1022,7 +1022,7 @@

Contributors -
+
@@ -1049,7 +1049,7 @@

Contributors -
+
@@ -1076,7 +1076,7 @@

Contributors -
+
@@ -1103,7 +1103,7 @@

Contributors -
+
@@ -1130,7 +1130,7 @@

Contributors -
+
@@ -1157,7 +1157,7 @@

Contributors -
+
@@ -1184,7 +1184,7 @@

Contributors -
+
@@ -1211,7 +1211,7 @@

Contributors -
+
@@ -1238,7 +1238,7 @@

Contributors -
+
@@ -1265,7 +1265,7 @@

Contributors -
+
@@ -1292,7 +1292,7 @@

Contributors -
+
@@ -1319,7 +1319,7 @@

Contributors -
+
@@ -1346,7 +1346,7 @@

Contributors -
+
@@ -1373,7 +1373,7 @@

Contributors -
+
@@ -1400,7 +1400,7 @@

Contributors -
+
@@ -1427,7 +1427,7 @@

Contributors -
+
@@ -1454,7 +1454,7 @@

Contributors -
+
@@ -1481,7 +1481,7 @@

Contributors -
+
@@ -1508,7 +1508,7 @@

Contributors -
+
@@ -1535,7 +1535,7 @@

Contributors -
+
@@ -1562,7 +1562,7 @@

Contributors -
+
@@ -1589,7 +1589,7 @@

Contributors -
+
@@ -1616,7 +1616,7 @@

Contributors -
+
@@ -1643,7 +1643,7 @@

Contributors -
+
@@ -1670,7 +1670,7 @@

Contributors -
+
@@ -1697,7 +1697,7 @@

Contributors -
+
@@ -1724,7 +1724,7 @@

Contributors -
+
@@ -1751,7 +1751,7 @@

Contributors -
+
@@ -1778,7 +1778,7 @@

Contributors -
+
@@ -1805,7 +1805,7 @@

Contributors -
+
@@ -1832,7 +1832,7 @@

Contributors -
+
@@ -1859,7 +1859,7 @@

Contributors -
+
@@ -1886,7 +1886,7 @@

Contributors -
+
@@ -1913,7 +1913,7 @@

Contributors -
+
@@ -1940,7 +1940,7 @@

Contributors -
+
@@ -1967,7 +1967,7 @@

Contributors -
+
@@ -1994,7 +1994,7 @@

Contributors -
+
@@ -2021,7 +2021,7 @@

Contributors -
+
@@ -2048,7 +2048,7 @@

Contributors -
+
@@ -2075,7 +2075,7 @@

Contributors -
+
@@ -2102,7 +2102,7 @@

Contributors -
+
@@ -2129,7 +2129,7 @@

Contributors -
+
@@ -2156,7 +2156,7 @@

Contributors -
+
@@ -2183,7 +2183,7 @@

Contributors -
+
@@ -2210,7 +2210,7 @@

Contributors -
+
@@ -2237,7 +2237,7 @@

Contributors -
+
@@ -2264,7 +2264,7 @@

Contributors -
+
@@ -2291,7 +2291,7 @@

Contributors -
+
@@ -2299,7 +2299,7 @@

Contributors -
+
- 8430 + 8640
-
+
@@ -7547,7 +7547,7 @@

Contributors
- 0.85 + 0.87
-
+
@@ -7656,7 +7656,7 @@

Contributors
@@ -7664,7 +7664,7 @@

Contributors -
+
@@ -7714,18 +7714,18 @@

Contributors -
+
0.54
-
+
- + @@ -7888,7 +7888,7 @@

Contributors
@@ -7896,7 +7896,7 @@

Contributors -
+
@@ -8062,7 +8062,7 @@

Contributors
@@ -8070,7 +8070,7 @@

Contributors -
+
@@ -9151,7 +9151,7 @@

Contributors
@@ -9326,7 +9326,7 @@

Contributors -
+
@@ -9463,18 +9463,18 @@

Contributors -
+
0.56
-
+
- + @@ -9579,7 +9579,7 @@

Contributors
@@ -9587,7 +9587,7 @@

Contributors -
+
@@ -10913,7 +10913,7 @@

Contributors
@@ -10921,7 +10921,7 @@

Contributors -
+
@@ -12640,7 +12640,7 @@

Contributors -

Built on 2024-02-23 at 05:32 GMT

+

Built on 2024-02-24 at 05:31 GMT

diff --git a/iron/searchindex.js b/iron/searchindex.js index e9b5081b21..f286e96345 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/different_update_rates_userdoc", "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_11/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/different_update_rates_userdoc.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_11/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", "Different update rates for Hardware Components", "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", "CarlikeBot", "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, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "366": 0, "57466": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "149": 0, "9074": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": [0, 56], "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "50": [0, 4, 9, 24, 35], "5951": 0, "09": 0, "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 11], "02": [0, 35, 56], "22": [0, 9], "03": [0, 21, 46], "26": 0, "00": 0, "utc": 0, "367": 0, "77026": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50], "01t10": 0, "36": 0, "22z": 0, "382": 0, "59371": 0, "663": 0, "57955": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 36, 44, 45, 46], "561": 0, "408": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 52], "73": 0, "19t18": 0, "48": [0, 3, 5], "52z": 0, "197": 0, "175": [0, 6], "89": 0, "22t07": 0, "34z": 0, "466": 0, "122": 0, "02t15": 0, "11z": 0, "1365": 0, "1106": 0, "81": [0, 6, 33], "1089": 0, "591": 0, "54": 0, "212": 0, "190": 0, "90": [0, 29], "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 22, 24, 25, 29, 31, 32, 33, 34, 36, 37, 43, 44, 46, 52], "develop": [0, 1, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 1, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 46, 52], "inform": [0, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "40": [0, 35], "8361": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "34": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "27z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "46": 0, "2345": 0, "23t14": 0, "39z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "06": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "14": [0, 17, 50, 55], "1159": 0, "16t15": 0, "21": [0, 50], "48z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "718": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "00z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "548": 0, "11t18": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "437": 0, "21t14": 0, "43z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 6], "09t10": 0, "21z": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "200": 0, "22t09": 0, "27": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "15": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "16": [0, 55], "41z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "25": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "bijoua29": 0, "83": 0, "19t22": 0, "02z": 0, "bailac": 0, "68": 0, "08t11": 0, "49z": 0, "olivi": 0, "stass": 0, "49": 0, "26t02": 0, "31": 0, "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "04": [0, 9], "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "35": [0, 50], "27t20": 0, "28": [0, 50], "roni": 0, "kreinin": 0, "28t16": 0, "15z": 0, "robotgir": 0, "28t17": 0, "wiktor": 0, "bajor": 0, "99": [0, 9], "23": [0, 4, 33, 56], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "andyz": 0, "20": [0, 21, 41, 44, 46], "37z": 0, "bordallo": 0, "greatalexand": 0, "19": 0, "10t22": 0, "mosfet80": 0, "14t06": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "24t20": 0, "55": 0, "36z": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "8": [0, 17, 33], "17t10": 0, "38z": 0, "daniel": 0, "azanov": 0, "muritan": 0, "16t21": 0, "baltovski": 0, "tonybaltovski": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "02t12": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "52": [0, 48], "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "47": 0, "03z": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "stephani": 0, "eng": 0, "14t17": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t10": 0, "45z": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 36, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "33z": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "david": 0, "v": [0, 16, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "19z": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "220": 0, "20630": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "10393": 0, "15t18": 0, "51": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "41": 0, "8430": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "3906": 0, "29t19": 0, "06z": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "3260": 0, "19t13": 0, "59": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "2013": 0, "03t20": 0, "13z": 0, "1275": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "55z": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 17], "56z": 0, "970": 0, "21t01": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "04z": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "268": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "19t21": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "17t18": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "14t07": 0, "28z": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "186": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "125": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "70": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "dirk": 0, "thoma": [0, 1], "2012": 0, "14t02": 0, "26z": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "26t09": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "114": 0, "93": 0, "107": 0, "15t12": 0, "01t22": 0, "92": 0, "19t20": 0, "07z": 0, "01t20": 0, "16t12": 0, "13t18": 0, "22t06": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "11t12": 0, "67": 0, "17t15": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "110": 0, "28t09": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "80": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "31t15": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "105": 0, "97": 0, "101": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "74": 0, "andr": 0, "montano": 0, "anfemosa": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "60": 0, "adam": 0, "serafin": 0, "serafadam": 0, "126": 0, "118": 0, "63": 0, "07t16": 0, "14t09": 0, "182": 0, "78": 0, "96": 0, "23t02": 0, "156": 0, "79": 0, "10t19": 0, "27t13": 0, "168": 0, "158": 0, "172": 0, "30t19": 0, "25t01": 0, "69": 0, "14t18": 0, "25t18": 0, "07t07": 0, "01t03": 0, "134": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "176": 0, "26t15": 0, "39": 0, "132": 0, "147": 0, "05t22": 0, "19t23": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "23t22": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "133": 0, "21t11": 0, "87": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "13t16": 0, "ken551": 0, "03t11": 0, "05t14": 0, "27t18": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 43, 44, 45], "receiv": [0, 2, 29, 44, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 1, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 44, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 46, 56], "consid": [1, 16, 35, 44], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 46, 47, 50, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 35, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 21, 29, 33, 35, 36, 38, 43, 44, 45, 46, 47, 48, 50, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43], "give": [1, 7, 9, 17, 19, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 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, 31, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 4, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 36, 37, 41, 44, 46, 50], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 35, 36, 37, 44, 46, 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, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 45, 46, 50, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 48, 50, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 56], "part": [1, 6, 7, 13, 29, 37, 45, 46], "For": [1, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "detail": [1, 2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "cokela": 1, "info": [1, 9, 11, 12, 15, 29], "tutori": [1, 17], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": 1, "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 7, 8, 45, 46], "compat": [1, 2, 7, 15, 17], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 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, 38, 40, 41, 43, 44, 45, 47, 50, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 35, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 35, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 24, 29, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "stop": [2, 7, 8, 9, 12, 16, 19, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29, 36], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 36, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 5, 9, 12, 14, 15, 16, 19, 25, 33, 35, 36, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 29, 33, 44, 46], "initial_valu": [3, 5, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37], "link": [3, 4, 5, 7, 8, 12, 29, 33, 35, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "locat": [3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 5, 17, 29, 35, 41], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "respect": [3, 5, 6, 7, 44, 45, 46], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 36, 37, 44, 45, 46], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "action": [3, 5, 8, 44], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 36, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 36, 38, 47, 53], "100": [3, 4, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "interface_nam": [3, 20, 39, 40], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "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, 31, 45, 46], "example_gripp": [3, 5], "iron": [4, 17, 29], "want": [4, 8, 9, 17], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "org": [4, 6, 11, 32, 34, 52], "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 35, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "github": [4, 6, 10, 17, 29, 36, 54, 55, 56], "figur": [4, 45], "uml": 4, "diagram": [4, 16], "intern": [4, 6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29, 36], "executor": [4, 9], "custom": [4, 13, 14, 17, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 36, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "while": [4, 6, 7, 29, 33, 45], "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 36, 45], "dynam": [4, 15, 21, 29, 33, 37], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "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, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 24, 29, 31, 33, 44], "pure": 4, "stack": [4, 7, 56], "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "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, 8, 14, 15, 25, 35, 42, 43, 46, 56], "gener": [6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "earlier": 6, "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7, 36], "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30, 36], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "control": [7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 45, 50], "scale": [7, 44], "factor": [7, 35], "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, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29, 36], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "done": [7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "doc": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29, 36], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50], "integ": [9, 36], "frequenc": [9, 36], "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "n": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 44, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "std": [9, 29, 35, 44], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": [11, 36], "int": [11, 35, 48, 50], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 21, 24, 31, 33, 35, 44, 45, 46, 50], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33], "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, "know": 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, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "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, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": [14, 36], "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 36, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "written": [15, 23, 28, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 36, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "wheel": [21, 32, 34, 35, 50, 52], "front": [21, 32, 33, 34, 50, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "ident": [22, 24, 29, 31, 45], "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": [22, 44], "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "list_hardware_compon": [23, 24, 26, 27, 28], "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "faster": [24, 35], "genericsystem": 24, "use_mock_hardwar": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "nan": [26, 44], "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35], "rotat": [29, 35, 44], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "roll": [29, 35], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 37, 39, 41, 42, 44, 46, 50], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 36, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "214": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44], "wrong": 35, "behav": 35, "correctli": 35, "curv": 35, "wheels_per_sid": 35, "number": [35, 50], "slip": 35, "account": 35, "present": [35, 46], "enter": 35, "huski": [35, 55], "wheel_radiu": 35, "slower": [35, 45], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50], "odom_frame_id": [35, 50], "pose_covariance_diagon": [35, 50], "covari": [35, 42, 50], "tune": 35, "sampl": [35, 45, 50], "001": [35, 41], "twist_covariance_diagon": [35, 50], "speed": 35, "open_loop": [35, 50], "cmd_vel_timeout": 35, "stale": [35, 44], "velocity_rolling_window_s": [35, 50], "old": 35, "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": 35, "numeric_limit": [35, 44], "quiet_nan": [35, 44], "min_veloc": 35, "max_acceler": 35, "min_acceler": 35, "max_jerk": 35, "min_jerk": 35, "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "write_op_mod": 35, "motor_control": 35, "500": 35, "millisecond": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "onconfigur": 36, "configure_control": 36, "unspecifi": 36, "is_async": 36, "asynchron": 36, "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "unless": 43, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "start_with_hold": 44, "hold": [44, 45], "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "deprec": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "controller_st": [46, 50], "cumbersom": 46, "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "varianc": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 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, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "averag": 50, "diagon": 50, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 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, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 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, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "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, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 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, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "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, 22], "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, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 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, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "common": 36, "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "iron": 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"]], "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"], [9, "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-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"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [52, "parameters"], [53, "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"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "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"], [37, "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"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "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"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "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"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Common Controller Parameters": [[36, "common-controller-parameters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "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"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "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"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Iron!": [[56, "welcome-to-the-ros2-control-documentation-iron"]], "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/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/different_update_rates_userdoc", "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_11/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/different_update_rates_userdoc.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_11/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", "Different update rates for Hardware Components", "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", "CarlikeBot", "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, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "363": 0, "51190": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "149": 0, "9074": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "49": 0, "5851": 0, "09": 0, "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 11], "02": [0, 35, 56], "23": [0, 4, 33], "03": [0, 21, 46], "25": 0, "58": 0, "utc": 0, "367": 0, "77026": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50], "01t10": 0, "36": 0, "22z": 0, "383": 0, "59375": 0, "663": 0, "57955": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 36, 44, 45, 46], "563": 0, "409": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 52], "73": 0, "22t14": 0, "13": [0, 17], "31z": 0, "199": 0, "176": 0, "88": 0, "22t07": 0, "34z": 0, "468": 0, "122": 0, "26": 0, "02t15": 0, "11z": 0, "1367": 0, "1107": 0, "81": [0, 6, 33], "1091": 0, "591": 0, "54": 0, "214": [0, 33], "191": 0, "89": 0, "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 22, 24, 25, 29, 31, 32, 33, 34, 36, 37, 43, 44, 46, 52], "develop": [0, 1, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 1, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 46, 52], "inform": [0, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "41": 0, "8571": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "34": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "27z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "46": 0, "2345": 0, "23t14": 0, "40": [0, 35], "39z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "06": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "14": [0, 17, 50, 55], "1159": 0, "16t15": 0, "21": [0, 50], "48z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "718": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "00z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "548": 0, "11t18": 0, "52z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "437": 0, "21t14": 0, "43z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 6], "09t10": 0, "21z": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": [0, 56], "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "200": 0, "22t09": 0, "27": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "15": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "16": [0, 55], "41z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "bijoua29": 0, "83": 0, "19t22": 0, "02z": 0, "bailac": 0, "68": 0, "08t11": 0, "49z": 0, "olivi": 0, "stass": 0, "26t02": 0, "31": [0, 56], "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "04": [0, 9], "27t11": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "35": [0, 50], "27t20": 0, "28": [0, 50], "roni": 0, "kreinin": 0, "28t16": 0, "15z": 0, "robotgir": 0, "28t17": 0, "wiktor": 0, "bajor": 0, "99": [0, 9], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "andyz": 0, "20": [0, 21, 41, 44, 46], "50": [0, 4, 9, 24, 35], "37z": 0, "bordallo": 0, "greatalexand": 0, "19": 0, "10t22": 0, "mosfet80": 0, "14t06": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "24t20": 0, "55": 0, "36z": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "8": [0, 17, 33], "17t10": 0, "38z": 0, "daniel": 0, "azanov": 0, "muritan": 0, "16t21": 0, "baltovski": 0, "tonybaltovski": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "02t12": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "52": [0, 48], "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "47": 0, "03z": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "stephani": 0, "eng": 0, "14t17": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t10": 0, "00": 0, "45z": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 36, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "33z": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "david": 0, "v": [0, 16, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "19z": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "220": 0, "20630": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "22": [0, 9], "10393": 0, "15t18": 0, "51": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "8640": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "3906": 0, "29t19": 0, "06z": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "3260": 0, "19t13": 0, "59": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "48": [0, 3, 5], "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "1275": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "55z": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "56z": 0, "970": 0, "21t01": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "04z": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "268": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "19t21": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "186": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "125": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "70": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "dirk": 0, "thoma": [0, 1], "2012": 0, "14t02": 0, "26z": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "26t09": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "114": 0, "93": 0, "87": 0, "108": 0, "15t12": 0, "22t22": 0, "01t22": 0, "92": 0, "19t20": 0, "07z": 0, "01t20": 0, "16t12": 0, "13t18": 0, "105": 0, "22t06": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "11t12": 0, "67": 0, "17t15": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "91": 0, "13t11": 0, "110": 0, "28t09": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "80": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "31t15": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "97": 0, "101": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "74": 0, "andr": 0, "montano": 0, "anfemosa": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "60": 0, "adam": 0, "serafin": 0, "serafadam": 0, "126": 0, "118": 0, "63": 0, "07t16": 0, "90": [0, 29], "14t09": 0, "183": 0, "78": 0, "96": 0, "23t02": 0, "156": 0, "79": 0, "10t19": 0, "197": 0, "189": 0, "27t13": 0, "168": 0, "158": 0, "172": 0, "30t19": 0, "25t01": 0, "69": 0, "14t18": 0, "25t18": 0, "07t07": 0, "01t03": 0, "134": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "26t15": 0, "39": 0, "132": 0, "147": 0, "05t22": 0, "19t23": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "175": [0, 6], "23t22": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "133": 0, "21t11": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "13t16": 0, "ken551": 0, "03t11": 0, "05t14": 0, "27t18": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 43, 44, 45], "receiv": [0, 2, 29, 44, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 1, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 44, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 46, 56], "consid": [1, 16, 35, 44], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 46, 47, 50, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 35, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 21, 29, 33, 35, 36, 38, 43, 44, 45, 46, 47, 48, 50, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43], "give": [1, 7, 9, 17, 19, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 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, 31, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 4, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 36, 37, 41, 44, 46, 50], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 35, 36, 37, 44, 46, 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, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 45, 46, 50, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 48, 50, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 56], "part": [1, 6, 7, 13, 29, 37, 45, 46], "For": [1, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "detail": [1, 2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "cokela": 1, "info": [1, 9, 11, 12, 15, 29], "tutori": [1, 17], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": 1, "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 7, 8, 45, 46], "compat": [1, 2, 7, 15, 17], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 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, 38, 40, 41, 43, 44, 45, 47, 50, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 35, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 35, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 24, 29, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "stop": [2, 7, 8, 9, 12, 16, 19, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29, 36], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 36, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 5, 9, 12, 14, 15, 16, 19, 25, 33, 35, 36, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 29, 33, 44, 46], "initial_valu": [3, 5, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37], "link": [3, 4, 5, 7, 8, 12, 29, 33, 35, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "locat": [3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 5, 17, 29, 35, 41], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "respect": [3, 5, 6, 7, 44, 45, 46], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 36, 37, 44, 45, 46], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "action": [3, 5, 8, 44], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 36, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 36, 38, 47, 53], "100": [3, 4, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "interface_nam": [3, 20, 39, 40], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "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, 31, 45, 46], "example_gripp": [3, 5], "iron": [4, 17, 29], "want": [4, 8, 9, 17], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "org": [4, 6, 11, 32, 34, 52], "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 35, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "github": [4, 6, 10, 17, 29, 36, 54, 55, 56], "figur": [4, 45], "uml": 4, "diagram": [4, 16], "intern": [4, 6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29, 36], "executor": [4, 9], "custom": [4, 13, 14, 17, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 36, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "while": [4, 6, 7, 29, 33, 45], "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 36, 45], "dynam": [4, 15, 21, 29, 33, 37], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "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, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 24, 29, 31, 33, 44], "pure": 4, "stack": [4, 7, 56], "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "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, 8, 14, 15, 25, 35, 42, 43, 46, 56], "gener": [6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "earlier": 6, "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7, 36], "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30, 36], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "control": [7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 45, 50], "scale": [7, 44], "factor": [7, 35], "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, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29, 36], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "done": [7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "doc": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29, 36], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50], "integ": [9, 36], "frequenc": [9, 36], "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "n": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 44, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "std": [9, 29, 35, 44], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": [11, 36], "int": [11, 35, 48, 50], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 21, 24, 31, 33, 35, 44, 45, 46, 50], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33], "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, "know": 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, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "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, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": [14, 36], "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 36, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "written": [15, 23, 28, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 36, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "wheel": [21, 32, 34, 35, 50, 52], "front": [21, 32, 33, 34, 50, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "ident": [22, 24, 29, 31, 45], "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": [22, 44], "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "list_hardware_compon": [23, 24, 26, 27, 28], "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "faster": [24, 35], "genericsystem": 24, "use_mock_hardwar": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "nan": [26, 44], "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35], "rotat": [29, 35, 44], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "roll": [29, 35], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 37, 39, 41, 42, 44, 46, 50], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 36, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44], "wrong": 35, "behav": 35, "correctli": 35, "curv": 35, "wheels_per_sid": 35, "number": [35, 50], "slip": 35, "account": 35, "present": [35, 46], "enter": 35, "huski": [35, 55], "wheel_radiu": 35, "slower": [35, 45], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50], "odom_frame_id": [35, 50], "pose_covariance_diagon": [35, 50], "covari": [35, 42, 50], "tune": 35, "sampl": [35, 45, 50], "001": [35, 41], "twist_covariance_diagon": [35, 50], "speed": 35, "open_loop": [35, 50], "cmd_vel_timeout": 35, "stale": [35, 44], "velocity_rolling_window_s": [35, 50], "old": 35, "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": 35, "numeric_limit": [35, 44], "quiet_nan": [35, 44], "min_veloc": 35, "max_acceler": 35, "min_acceler": 35, "max_jerk": 35, "min_jerk": 35, "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "write_op_mod": 35, "motor_control": 35, "500": 35, "millisecond": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "onconfigur": 36, "configure_control": 36, "unspecifi": 36, "is_async": 36, "asynchron": 36, "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "unless": 43, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "start_with_hold": 44, "hold": [44, 45], "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "deprec": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "controller_st": [46, 50], "cumbersom": 46, "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "varianc": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 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, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "averag": 50, "diagon": 50, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 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, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 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, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "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, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 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, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "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, 22], "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, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 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, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "common": 36, "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "iron": 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"]], "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"], [9, "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-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"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [52, "parameters"], [53, "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"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "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"], [37, "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"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "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"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "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"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Common Controller Parameters": [[36, "common-controller-parameters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "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"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "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"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Iron!": [[56, "welcome-to-the-ros2-control-documentation-iron"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/master/.buildinfo b/master/.buildinfo index 8d88ec9ca6..bb89ba8237 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: 95b04ccb4e49b3a4ce320e1088712661 +config: 793554769a77b247b0ff497c4af200ca tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/master/.doctrees/doc/acknowledgements/acknowledgements.doctree b/master/.doctrees/doc/acknowledgements/acknowledgements.doctree index 59d8114d17..8001320711 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 837dd621a3..1a07c3fe16 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 8d3a75688c..94bc2ecdcf 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 f0e91faade..ae91be8b40 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 b1144da63f..e3e6b8981c 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 8e0901cd47..f1b4ad71ea 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 c6bf88b583..6289a44fd4 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 30019b9c74..5774e83882 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 11c5e229fc..29e721e3f3 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 861258a9cf..a75b8763af 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 9305423389..59405ce0b5 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 2d12d85287..a357109c6b 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/different_update_rates_userdoc.doctree b/master/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree index 88a3201a62..c8c3deae76 100644 Binary files a/master/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree and b/master/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.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 bd49ba72a7..6b08eac5b8 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 cc01739f33..89d8c9da5a 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 060b40e61f..c5b4056e0b 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 b8ba9cd429..6febcf40a8 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 29915cc997..32cdf65002 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 e39d9b7b06..ecd936c701 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 4db9bdfd3b..07c9145243 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 5eb321ce0e..a96b9a39ce 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 76c0a3c170..378febf35a 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_11/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree index c18b6345a9..2e339ab921 100644 Binary files a/master/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree and b/master/.doctrees/doc/ros2_control_demos/example_11/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 de99f52e8a..9734fa51fc 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 d8bb6bc8dc..90e22bc013 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 2d19883c16..22c9d95519 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 f2e6a5816b..6689b18a36 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 8998d78ec8..ea3a57d2f7 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 5d43e0237e..436e08231b 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 2823d37c03..413d9c895e 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 245aa2c290..ae21a66cc7 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 89690892ba..f872511abe 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 2ad9034056..a024a290f8 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 a6497a116f..178e572562 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 7b1d555020..9e597231a5 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 9d5c244ea6..e4d08658d7 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 d2698960f2..14d7de7e63 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 25fb15e12d..5d6b9a61d4 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 022f740960..0bf0958e05 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 ff90e26612..3735e47f06 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 582ce63a46..b619621538 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 974a549705..3c1df39a7c 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 ca058faea3..e7100058f6 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 0aa7ec9af0..640adc7d27 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 82c439ce5b..ecb3b47171 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 43d5a8f3da..483dfcec90 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 75a1f90401..76f1550dfe 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 3aa19aa27d..65953b63da 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 f7b8619d88..147fe27662 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 c66b478643..1ac653fdbc 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 3f8fcfd224..813d564326 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 af2fb4af5e..b60ed078b9 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 597179782b..c4b0533fd2 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 6a5cb5ba17..133f441cc3 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 992b8a84b5..92ca9308f9 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 6bd9d6285b..01a9d38d0f 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 986c80f1a8..fe02b78b2b 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 401626d7c2..1975b59485 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 c4643793a6..e6ecce0b21 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 42a4163b25..3f6ad2a2b1 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 fc0e737f0c..935fc08824 100644 --- a/master/doc/acknowledgements/acknowledgements.html +++ b/master/doc/acknowledgements/acknowledgements.html @@ -155,11 +155,11 @@

Maintainers
- 57466 + 51190
@@ -184,11 +184,11 @@

Maintainers -
+
9074
-
+
@@ -209,13 +209,13 @@

Maintainers -
+
- 5951 + 5851
-
+
@@ -223,7 +223,7 @@

Maintainers -
+
- 59371 + 59375
-
+
@@ -341,7 +341,7 @@

Maintainers
0.73
-
+
- + @@ -421,15 +421,15 @@

Maintainers -
+
- 0.89 + 0.88
-
+
@@ -450,15 +450,15 @@

Maintainers -
+
0.26
-
+
@@ -466,7 +466,7 @@

Maintainers
0.81
-
+
- + @@ -546,15 +546,15 @@

Maintainers -
+
0.54
-
+
@@ -575,15 +575,15 @@

Maintainers -
+
- 0.90 + 0.89
-
+
@@ -591,7 +591,7 @@

Maintainers -
+
- 8361 + 8571
@@ -680,7 +680,7 @@

Contributors -
+
@@ -707,7 +707,7 @@

Contributors -
+
@@ -734,7 +734,7 @@

Contributors -
+
@@ -761,7 +761,7 @@

Contributors -
+
@@ -788,7 +788,7 @@

Contributors -
+
@@ -815,7 +815,7 @@

Contributors -
+
@@ -842,7 +842,7 @@

Contributors -
+
@@ -869,7 +869,7 @@

Contributors -
+
@@ -896,7 +896,7 @@

Contributors -
+
@@ -923,7 +923,7 @@

Contributors -
+
@@ -950,7 +950,7 @@

Contributors -
+
@@ -977,7 +977,7 @@

Contributors -
+
@@ -1004,7 +1004,7 @@

Contributors -
+
@@ -1031,7 +1031,7 @@

Contributors -
+
@@ -1058,7 +1058,7 @@

Contributors -
+
@@ -1085,7 +1085,7 @@

Contributors -
+
@@ -1112,7 +1112,7 @@

Contributors -
+
@@ -1139,7 +1139,7 @@

Contributors -
+
@@ -1166,7 +1166,7 @@

Contributors -
+
@@ -1193,7 +1193,7 @@

Contributors -
+
@@ -1220,7 +1220,7 @@

Contributors -
+
@@ -1247,7 +1247,7 @@

Contributors -
+
@@ -1274,7 +1274,7 @@

Contributors -
+
@@ -1301,7 +1301,7 @@

Contributors -
+
@@ -1328,7 +1328,7 @@

Contributors -
+
@@ -1355,7 +1355,7 @@

Contributors -
+
@@ -1382,7 +1382,7 @@

Contributors -
+
@@ -1409,7 +1409,7 @@

Contributors -
+
@@ -1436,7 +1436,7 @@

Contributors -
+
@@ -1463,7 +1463,7 @@

Contributors -
+
@@ -1490,7 +1490,7 @@

Contributors -
+
@@ -1517,7 +1517,7 @@

Contributors -
+
@@ -1544,7 +1544,7 @@

Contributors -
+
@@ -1571,7 +1571,7 @@

Contributors -
+
@@ -1598,7 +1598,7 @@

Contributors -
+
@@ -1625,7 +1625,7 @@

Contributors -
+
@@ -1652,7 +1652,7 @@

Contributors -
+
@@ -1679,7 +1679,7 @@

Contributors -
+
@@ -1706,7 +1706,7 @@

Contributors -
+
@@ -1733,7 +1733,7 @@

Contributors -
+
@@ -1760,7 +1760,7 @@

Contributors -
+
@@ -1787,7 +1787,7 @@

Contributors -
+
@@ -1814,7 +1814,7 @@

Contributors -
+
@@ -1841,7 +1841,7 @@

Contributors -
+
@@ -1868,7 +1868,7 @@

Contributors -
+
@@ -1895,7 +1895,7 @@

Contributors -
+
@@ -1922,7 +1922,7 @@

Contributors -
+
@@ -1949,7 +1949,7 @@

Contributors -
+
@@ -1976,7 +1976,7 @@

Contributors -
+
@@ -2003,7 +2003,7 @@

Contributors -
+
@@ -2030,7 +2030,7 @@

Contributors -
+
@@ -2057,7 +2057,7 @@

Contributors -
+
@@ -2084,7 +2084,7 @@

Contributors -
+
@@ -2111,7 +2111,7 @@

Contributors -
+
@@ -2138,7 +2138,7 @@

Contributors -
+
@@ -2165,7 +2165,7 @@

Contributors -
+
@@ -2192,7 +2192,7 @@

Contributors -
+
@@ -2219,7 +2219,7 @@

Contributors -
+
@@ -2246,7 +2246,7 @@

Contributors -
+
@@ -2273,7 +2273,7 @@

Contributors -
+
@@ -2300,7 +2300,7 @@

Contributors -
+
@@ -2308,7 +2308,7 @@

Contributors -
+
- 8430 + 8640
-
+
@@ -7556,7 +7556,7 @@

Contributors
- 0.85 + 0.87
-
+
@@ -7665,7 +7665,7 @@

Contributors
@@ -7673,7 +7673,7 @@

Contributors -
+
@@ -7723,18 +7723,18 @@

Contributors -
+
0.54
-
+
- + @@ -7897,7 +7897,7 @@

Contributors
@@ -7905,7 +7905,7 @@

Contributors -
+
@@ -8071,7 +8071,7 @@

Contributors
@@ -8079,7 +8079,7 @@

Contributors -
+
@@ -9160,7 +9160,7 @@

Contributors
@@ -9335,7 +9335,7 @@

Contributors -
+
@@ -9472,18 +9472,18 @@

Contributors -
+
0.56
-
+
- + @@ -9588,7 +9588,7 @@

Contributors
@@ -9596,7 +9596,7 @@

Contributors -
+
@@ -10922,7 +10922,7 @@

Contributors
@@ -10930,7 +10930,7 @@

Contributors -
+
@@ -12649,7 +12649,7 @@

Contributors -

Built on 2024-02-23 at 05:32 GMT

+

Built on 2024-02-24 at 05:31 GMT

diff --git a/master/searchindex.js b/master/searchindex.js index 426f69dc17..2adf086f56 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/different_update_rates_userdoc", "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_11/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/different_update_rates_userdoc.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_11/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", "Different update rates for Hardware Components", "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", "CarlikeBot", "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, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 58], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 45, 46, 47, 48, 49, 54, 55, 58], "peopl": [0, 1], "were": [0, 6, 30, 36, 46, 47], "ros2_control": [0, 1, 4, 10, 12, 13, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 36, 38, 56], "framework": [0, 1, 2, 6, 7, 8, 10, 11, 13, 14, 15, 17, 18, 30, 37, 38, 44, 58], "show": [0, 1, 3, 4, 5, 7, 8, 10, 13, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 46], "review": [0, 1, 6, 58], "activ": [0, 1, 2, 3, 4, 5, 10, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 44, 45, 47, 48], "contribut": [0, 4, 7], "recent": [0, 16, 38], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 38, 40, 42, 43, 44, 45, 46, 47, 50, 57], "time": [0, 1, 2, 6, 7, 8, 10, 15, 17, 18, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 38, 40, 45, 46, 47, 58], "contrib": 0, "dure": [0, 18, 30, 45, 47], "past": [0, 46], "12": [0, 18, 57], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 45], "line": [0, 4, 11, 13, 16, 20, 30, 38, 44, 46], "chang": [0, 1, 2, 4, 7, 10, 13, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 45, 46, 47, 50], "last": [0, 12, 13, 16, 30, 34, 38, 45, 46, 47], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "366": 0, "57466": 0, "2024": [0, 58], "01": [0, 22, 34, 36, 42, 45, 47, 53], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7, 8], "magyar": [0, 6, 7, 8], "bmagyar": [0, 8], "149": 0, "9074": 0, "2023": 0, "11": [0, 18], "16t23": 0, "32": [0, 58], "53z": 0, "dr": [0, 7], "deni": [0, 6, 7, 8], "destogl": [0, 36], "50": [0, 4, 10, 25, 36], "5951": 0, "09": 0, "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 12], "02": [0, 36, 58], "22": [0, 8, 10], "03": [0, 22, 47], "26": 0, "00": [0, 8], "utc": 0, "367": 0, "77026": 0, "2022": 0, "10": [0, 3, 5, 18, 26, 34, 36, 50, 52, 53], "01t10": 0, "36": 0, "22z": 0, "382": 0, "59371": 0, "663": 0, "57955": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 12, 38], "finish": 0, "rate": [0, 11, 13, 22, 25, 36, 37, 45, 46, 47], "561": 0, "408": 0, "0": [0, 3, 4, 5, 9, 12, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54], "73": 0, "19t18": 0, "48": [0, 3, 5], "52z": 0, "197": 0, "175": [0, 6], "89": 0, "22t07": 0, "34z": 0, "466": 0, "122": 0, "02t15": 0, "11z": 0, "1365": 0, "1106": 0, "81": [0, 6, 34], "1089": 0, "591": 0, "54": 0, "212": 0, "190": 0, "90": [0, 30], "have": [0, 1, 2, 4, 6, 8, 9, 10, 13, 14, 15, 16, 18, 20, 23, 25, 26, 30, 32, 33, 34, 35, 37, 38, 44, 45, 47, 48, 54], "develop": [0, 1, 7, 15, 16, 18, 38], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 30, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58], "project": [0, 1, 58], "provid": [0, 3, 4, 5, 6, 7, 9, 10, 14, 15, 16, 18, 20, 23, 26, 27, 28, 29, 30, 31, 32, 34, 38, 44, 45, 46, 47, 52, 58], "valuabl": 0, "submit": [0, 1, 7, 56, 57], "pull": [0, 8, 16], "request": [0, 2, 16, 30, 44, 58], "see": [0, 1, 2, 4, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 40, 43, 45, 47, 50, 52, 54], "more": [0, 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 47, 54], "inform": [0, 3, 5, 9, 15, 16, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 38, 58], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "40": [0, 36], "8361": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 12, 14, 15, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 36, 38, 42, 45, 46, 50, 52], "5774": 0, "05": [0, 34, 47, 58], "26t21": 0, "34": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "27z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "46": 0, "2345": 0, "23t14": 0, "39z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 8, 18, 34, 43], "2043": 0, "06": 0, "01t07": 0, "45": [0, 15], "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "14": [0, 18, 52, 57], "1159": 0, "16t15": 0, "21": [0, 52], "48z": 0, "none": [0, 9, 38, 44, 45, 47], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 47, 52, 57, 58], "888": 0, "07t00": 0, "17": [0, 8], "30z": 0, "guihom": 0, "guihomework": 0, "3": [0, 3, 4, 5, 6, 14, 15, 17, 18, 20, 23, 24, 25, 27, 28, 29, 30, 31, 34, 46, 47, 48], "718": 0, "08t10": 0, "30": [0, 3, 5, 22, 25], "alex": 0, "moriarti": 0, "5": [0, 16, 18, 20, 21, 23, 24, 26, 27, 29, 30, 31, 32, 34, 36, 46, 52, 57], "581": 0, "07t20": 0, "00z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "548": 0, "11t18": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "437": 0, "21t14": 0, "43z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 6], "09t10": 0, "21z": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": [0, 7, 8], "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "200": 0, "22t09": 0, "27": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "15": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "16": [0, 57], "41z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "25": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "bijoua29": 0, "83": 0, "19t22": 0, "02z": 0, "bailac": 0, "68": 0, "08t11": 0, "49z": 0, "olivi": 0, "stass": 0, "49": 0, "26t02": 0, "31": 0, "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "04": [0, 8, 10], "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 14, 18, 22, 24, 26, 28, 31, 34, 50], "43": [0, 4, 14, 25], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "35": [0, 52], "27t20": 0, "28": [0, 52], "roni": 0, "kreinin": 0, "28t16": 0, "15z": 0, "robotgir": 0, "28t17": 0, "wiktor": 0, "bajor": 0, "99": [0, 10], "23": [0, 4, 34, 58], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "andyz": 0, "20": [0, 8, 22, 42, 45, 47], "37z": 0, "bordallo": 0, "greatalexand": 0, "19": 0, "10t22": 0, "mosfet80": 0, "14t06": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "24t20": 0, "55": 0, "36z": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "8": [0, 18, 34], "17t10": 0, "38z": 0, "daniel": 0, "azanov": 0, "muritan": 0, "16t21": 0, "baltovski": 0, "tonybaltovski": 0, "7": [0, 7, 8, 18, 21, 25, 34, 50, 52, 57], "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 18, 20, 30, 34], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "02t12": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "52": [0, 50], "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 10, 14, 16, 17, 20, 30], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "47": 0, "03z": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "stephani": 0, "eng": 0, "14t17": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t10": 0, "45z": 0, "g": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 14, 15, 16, 18, 20, 21, 23, 24, 26, 27, 28, 29, 30, 31, 34, 38, 39, 44, 49, 52, 55, 58], "A": [0, 4, 7, 14, 16, 18, 27, 28, 37, 38, 44, 46, 47], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "33z": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "david": 0, "v": [0, 17, 27, 34, 45], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "max": [0, 3, 4, 5, 14, 30, 42], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "19z": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "220": 0, "20630": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "10393": 0, "15t18": 0, "51": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "41": 0, "8430": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "3906": 0, "29t19": 0, "06z": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "3260": 0, "19t13": 0, "59": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "2013": 0, "03t20": 0, "13z": 0, "1275": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "55z": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 8, 18], "56z": 0, "970": 0, "21t01": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "04z": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 18, 20, 32, 34, 45, 48], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": [0, 48], "rosal": 0, "carlosjoserg": 0, "268": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "19t21": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "17t18": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "14t07": 0, "28z": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "186": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "125": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "70": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "dirk": 0, "thoma": [0, 1], "2012": 0, "14t02": 0, "26z": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "26t09": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 8, 30], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 10, 17, 21, 30, 32], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "114": 0, "93": 0, "107": 0, "15t12": 0, "01t22": 0, "92": 0, "19t20": 0, "07z": 0, "01t20": 0, "16t12": 0, "13t18": 0, "22t06": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "11t12": 0, "67": 0, "17t15": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "110": 0, "28t09": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "80": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "31t15": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "105": 0, "97": 0, "101": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "74": 0, "andr": 0, "montano": 0, "anfemosa": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 22, 25, 27, 28, 30, 34, 36, 40, 43, 52, 53, 57], "mrl1kor": 0, "malapatiravi": 0, "60": 0, "adam": 0, "serafin": 0, "serafadam": 0, "126": 0, "118": 0, "63": 0, "07t16": 0, "14t09": 0, "182": 0, "78": 0, "96": 0, "23t02": 0, "156": 0, "79": 0, "10t19": 0, "27t13": 0, "168": 0, "158": 0, "172": 0, "30t19": 0, "25t01": 0, "69": 0, "14t18": 0, "25t18": 0, "07t07": 0, "01t03": 0, "134": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "176": 0, "26t15": 0, "39": 0, "132": 0, "147": 0, "05t22": 0, "19t23": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "23t22": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "133": 0, "21t11": 0, "87": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "13t16": 0, "ken551": 0, "03t11": 0, "05t14": 0, "27t18": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 22, 25, 27, 28, 30, 34, 36, 40, 43, 52, 53], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 12, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38, 44, 45, 46, 48], "receiv": [0, 2, 30, 46], "major": [0, 43], "from": [0, 1, 2, 7, 8, 9, 10, 12, 15, 16, 17, 19, 30, 34, 36, 37, 38, 39, 40, 43, 45, 46, 47, 49, 50, 53, 55, 58], "support": [0, 2, 3, 4, 5, 7, 15, 16, 17, 30, 34, 38, 44, 46, 47, 52, 56, 58], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 15, 17, 18, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 32, 37, 38, 46, 47, 58], "industri": [0, 4, 6, 8, 18, 57], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 10, 12, 14, 20, 22, 23, 25, 32, 34, 36, 40, 44, 52, 53, 58], "softwar": [0, 4, 30], "compon": [0, 7, 10, 11, 14, 17, 18, 24, 25, 26, 27, 28, 29, 30, 34, 36, 37, 40, 43, 50, 52, 53, 58], "http": [0, 1, 4, 6, 8, 12, 18, 30, 33, 35, 54], "www": [0, 12], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 9, 10, 12, 16, 17, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 38, 40, 43, 45, 46, 50, 53, 54, 58], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 16, 23, 38, 46, 47, 52, 58], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 9, 12, 13, 16, 18, 30, 32, 38, 46, 48], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 38, 47, 48, 58], "consid": [1, 17, 36, 45, 48, 53], "As": [1, 9, 14, 16, 20, 30, 36, 38], "an": [1, 2, 3, 4, 5, 6, 7, 9, 14, 15, 16, 17, 18, 20, 22, 23, 25, 28, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 47, 49, 52, 53, 54, 55], "open": [1, 8, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 44, 45, 52], "sourc": [1, 3, 5, 7, 8, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38], "we": [1, 3, 5, 6, 7, 8, 9, 13, 18, 20, 22, 23, 25, 30, 31, 32, 44], "welcom": 1, "each": [1, 4, 6, 9, 10, 13, 14, 16, 18, 20, 24, 30, 33, 34, 44, 52, 54], "contributor": 1, "regardless": 1, "background": [1, 18], "experi": 1, "To": [1, 2, 4, 9, 10, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 44, 46, 56, 57, 58], "reduc": [1, 15], "entropi": 1, "univers": [1, 7, 30, 57], "our": [1, 3, 4, 5, 6, 7, 18, 20, 30], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 18], "set": [1, 2, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 20, 22, 30, 34, 36, 37, 39, 44, 45, 46, 47, 49, 50, 52, 53, 55], "up": [1, 7, 8, 16, 18, 46], "some": [1, 3, 5, 6, 7, 12, 18, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 44, 45, 47, 58], "standard": [1, 2, 6, 7, 10, 16, 17, 24, 29, 30, 40, 44], "method": [1, 2, 4, 9, 10, 12, 13, 16, 30, 38, 52], "requir": [1, 2, 4, 6, 16, 30, 34, 38, 39, 47, 49, 55], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 40, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 58], "limit": [1, 3, 5, 7, 10, 18, 30, 36, 53], "scope": 1, "your": [1, 2, 7, 8, 10, 12, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, 36, 38, 53, 56, 57, 58], "pr": [1, 56, 57], "should": [1, 2, 3, 5, 6, 7, 9, 10, 12, 13, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 44, 46, 47, 48, 53], "do": [1, 2, 4, 6, 7, 9, 10, 16, 18, 34, 38, 47, 48, 53], "one": [1, 2, 4, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 39, 40, 44, 45, 46, 47, 48, 49, 52, 54, 55, 58], "thing": [1, 3, 5, 8, 10, 18], "avoid": [1, 20, 22, 24, 25, 26, 27, 28, 29, 31, 38], "ad": [1, 3, 5, 6, 10, 15, 16, 22, 23, 25, 30, 36, 38, 44], "random": [1, 24, 26, 27, 28, 29], "fix": [1, 2, 22, 30, 33, 35, 54], "put": [1, 16, 38], "those": [1, 2, 4, 6, 9, 15, 16, 18, 30, 38, 40, 44, 45, 46, 50], "separ": [1, 2, 4, 18, 24, 36, 44, 53], "give": [1, 7, 10, 18, 20, 25, 26, 46, 58], "descript": [1, 2, 7, 10, 13, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 38, 40, 42, 43, 44, 45, 50], "titl": 1, "add": [1, 2, 9, 10, 12, 13, 16, 30, 33, 34, 35, 38, 54, 56, 57], "short": [1, 38, 58], "summari": [1, 7, 58], "make": [1, 2, 5, 6, 7, 23, 30, 42, 58], "sure": [1, 5, 6, 20, 23, 24, 25, 26, 27, 28, 29, 31, 58], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 58], "green": [1, 46], "don": [1, 3, 8, 9, 25, 45, 47], "t": [1, 3, 5, 8, 9, 10, 18, 25, 45, 46, 47, 48], "afraid": 1, "maintain": [1, 4, 6, 9, 18, 46], "new": [1, 7, 8, 9, 16, 20, 23, 26, 30, 37, 46, 58], "code": [1, 2, 4, 6, 7, 16, 30], "test": [1, 3, 6, 15, 16, 18, 20, 25, 32, 33, 34, 35, 36, 38, 40, 43, 50, 52, 54], "If": [1, 2, 4, 7, 8, 9, 10, 13, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 40, 44, 45, 46, 47, 48, 52, 53, 58], "function": [1, 2, 6, 7, 8, 23, 30, 34, 48, 52], "alwai": [1, 30], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 20, 30, 46, 47], "intent": [1, 9, 15], "section": [1, 2, 12, 14, 16, 38, 47], "target": [1, 10, 16, 34, 38, 41, 45, 47], "also": [1, 2, 3, 4, 5, 6, 7, 9, 10, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 38, 47, 48], "read": [1, 2, 3, 4, 5, 10, 12, 14, 16, 18, 23, 24, 27, 28, 30, 34, 38, 44, 45, 48, 50, 52], "understand": [1, 6, 46], "how": [1, 6, 7, 14, 16, 18, 21, 22, 23, 24, 26, 27, 28, 29, 30, 32, 38, 53], "handl": [1, 2, 4, 6, 7, 16, 27, 30, 33, 34, 35, 36, 40, 41, 42, 43, 44, 45, 47, 48, 50, 52, 53, 54], "organ": [1, 7, 58], "guidelin": 1, "especi": [1, 2, 18, 52], "applic": [1, 4, 7, 8, 10, 14, 30], "ros2_control_demo": [1, 4, 18, 20, 30, 32, 58], "pleas": [1, 10, 29, 36, 58], "keep": [1, 30, 38], "mind": [1, 38], "work": [1, 6, 7, 9, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 38, 39, 44, 49, 53, 55, 58], "fork": 1, "when": [1, 2, 3, 4, 5, 7, 8, 9, 10, 15, 16, 17, 23, 26, 30, 34, 36, 37, 38, 42, 45, 47, 48, 52, 53], "That": [1, 16, 38], "wai": [1, 10, 12, 16, 30, 38, 40, 47], "main": [1, 4, 6, 7, 10, 12, 15, 30, 38, 52, 58], "repo": [1, 4, 8, 18], "clean": 1, "featur": [1, 7, 15, 18, 20, 31, 52, 58], "branch": [1, 18], "check": [1, 2, 4, 6, 9, 13, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 46, 47, 50, 54, 58], "satisfi": 1, "befor": [1, 2, 9, 10, 16, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 38, 45, 46], "thei": [1, 2, 4, 6, 7, 9, 14, 15, 16, 17, 23, 37, 38, 45, 47, 52], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 40, 41, 43, 46, 47, 48, 50, 52, 58], "must": [1, 3, 5, 9, 10, 14, 18, 30, 34, 43, 45, 47], "approv": 1, "two": [1, 4, 6, 9, 10, 16, 18, 20, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 40, 46, 47, 48, 52, 53, 54], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 9, 10, 13, 16, 17, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 38, 39, 40, 44, 45, 46, 47, 48, 49, 52, 55], "except": [1, 30], "other": [1, 2, 3, 4, 7, 9, 16, 18, 24, 29, 30, 33, 35, 38, 44, 46, 52, 54], "where": [1, 3, 6, 8, 9, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 35, 36, 38, 44, 45, 46, 47, 48, 52, 54], "back": 1, "traceabl": 1, "discuss": [1, 7, 8, 23, 32, 46, 58], "suffici": [1, 3, 5, 9, 40], "note": [1, 4, 10, 15, 20, 47, 48, 58], "still": [1, 2, 20, 23, 24, 25, 26, 27, 28, 29, 31, 37, 46], "encourag": 1, "help": [1, 10, 12, 15, 16, 17, 36, 38], "u": [1, 3, 5, 10, 18, 45], "increas": [1, 25, 48], "pace": 1, "veri": [1, 2, 3, 5, 6, 14], "like": [1, 2, 3, 4, 5, 6, 7, 8, 16, 22, 23, 30], "find": [1, 3, 5, 12, 25], "issu": [1, 6, 7, 8, 58], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 10, 17, 26, 27, 28, 30, 36, 40, 43, 44, 45, 46, 47, 50, 52, 53, 58], "comment": [1, 30], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 8, 12, 13, 14, 15, 17, 19, 30, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 52, 53, 54, 55, 58], "pre": 1, "correct": [1, 2, 36, 46], "header": [1, 13, 16, 27, 28, 38, 46], "address": [1, 30], "similar": [1, 4, 7, 14, 20, 22, 23, 30], "mean": [1, 2, 9, 14, 15, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36, 46, 47, 53], "result": [1, 4, 9, 10, 20, 30, 44, 46], "exactli": 1, "cowboi": 1, "style": [1, 16, 38], "over": [1, 6, 9, 25, 30], "weekend": 1, "It": [1, 2, 3, 4, 6, 9, 10, 20, 23, 24, 26, 27, 28, 29, 30, 31, 32, 40, 44, 45, 46, 48], "doesn": [1, 9, 48], "matter": 1, "trivial": [1, 15], "chanc": 1, "proper": [1, 9, 10, 47], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 45, 48], "its": [1, 2, 3, 4, 5, 6, 7, 9, 10, 14, 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, 50, 52, 53, 54], "ping": 1, "them": [1, 6, 9, 10, 16, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 38, 44, 46, 57], "necessari": [1, 9, 13], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 9, 10, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36, 38, 45, 46, 53, 58], "part": [1, 6, 7, 14, 30, 38, 46, 47, 48], "For": [1, 3, 4, 5, 6, 7, 9, 10, 13, 15, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 45, 47, 48, 52, 54], "detail": [1, 2, 3, 4, 5, 10, 13, 14, 15, 16, 23, 30, 32, 33, 35, 36, 38, 46, 47, 54], "cokela": 1, "info": [1, 10, 12, 13, 16, 30], "tutori": [1, 18], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 16, 17, 18, 24, 25, 27, 28, 29, 30, 36, 37, 38, 39, 40, 43, 45, 48, 49, 50, 52, 55], "stabl": 1, "against": 1, "accept": [1, 16, 26, 38, 39, 45, 46, 47, 49, 55], "api": [1, 3, 5, 6, 16, 20, 22, 24, 25, 26, 27, 28, 29, 31], "abi": 1, "e": [1, 2, 3, 4, 5, 6, 7, 9, 10, 14, 15, 16, 18, 20, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 34, 36, 38, 39, 40, 44, 45, 46, 48, 49, 52, 53, 55, 58], "name": [1, 2, 3, 4, 5, 7, 10, 12, 14, 15, 16, 17, 18, 20, 23, 24, 25, 27, 28, 29, 30, 32, 34, 36, 38, 40, 41, 43, 44, 45, 48, 50, 52, 53], "convent": [1, 30], "master": [1, 4, 18, 30], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 36, 53], "same": [1, 8, 9, 12, 26, 30, 37, 40, 45, 46, 47, 48], "build": [1, 8, 16, 30, 34, 38], "dai": 1, "ros_distro": [1, 4, 18, 20], "foxi": [1, 7, 16], "galact": [1, 13, 16], "releas": [1, 4, 7, 18, 30], "version": [1, 6, 8, 12, 18, 47], "non": [1, 7, 23, 30, 40], "brake": 1, "distribut": [1, 18, 58], "three": [1, 2, 4, 13, 14, 18, 30, 38, 46, 54], "stage": [1, 9, 23], "current": [1, 6, 12, 13, 14, 16, 17, 46, 47, 52], "futur": [1, 7, 9, 46, 47], "compat": [1, 2, 7, 16, 18], "packag": [1, 2, 3, 5, 13, 16, 30, 33, 34, 35, 36, 38, 39, 40, 43, 47, 48, 49, 50, 52, 54, 55, 58], "direct": [1, 2, 6, 16, 30, 38, 45], "local": [1, 3, 5, 8, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 44], "possibl": [1, 4, 6, 10, 14, 15, 18, 20, 22, 24, 25, 26, 27, 28, 29, 31, 34, 38, 46], "core": [1, 11, 30], "immedi": [1, 10, 20, 23, 24, 26, 27, 28, 29, 30, 31, 32, 48], "depend": [1, 4, 8, 13, 14, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 37, 38, 46, 48, 52], "fail": [1, 26, 30], "expect": [1, 6, 7, 8, 23, 30, 33, 35, 36, 47, 52, 53, 54], "after": [1, 9, 10, 15, 16, 18, 20, 30, 36, 38, 45, 46, 47, 52, 53], "next": [1, 20, 30, 46], "sync": 1, "abl": 1, "potenti": [1, 7, 8, 38, 45], "mid": 1, "power": [1, 3, 5, 7, 16], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 9, 10, 13, 14, 18, 23, 30, 38, 45, 47], "imposs": 2, "extend": [2, 4, 6, 9, 16, 38], "exist": [2, 4, 6, 7, 8, 9, 10, 13, 14, 16, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 38, 47], "addit": [2, 3, 5, 9, 18, 21, 25, 30], "sensor": [2, 4, 6, 13, 15, 16, 18, 24, 29, 30, 34, 37, 57], "actuat": [2, 4, 6, 13, 14, 15, 16, 18, 23, 53], "tool": [2, 3, 5, 6, 7, 8, 30, 34], "without": [2, 3, 4, 5, 7, 10, 15, 16, 18, 23, 32, 38, 45, 46], "combinedrobothardwar": 2, "drawback": [2, 58], "solut": [2, 7, 8], "optim": [2, 10], "combin": [2, 9, 14, 15, 18, 26, 44, 46, 47, 48], "extern": [2, 4, 6, 9, 15, 18, 34, 48], "defin": [2, 3, 5, 6, 10, 15, 16, 18, 30, 34, 38, 40, 43, 44, 45, 46, 47, 48, 50, 52], "system": [2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 16, 17, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 47, 56, 57, 58], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 16, 18, 25, 38], "physic": [2, 4, 13, 14, 15], "cell": [2, 40], "surround": 2, "describ": [2, 4, 9, 14, 18, 20, 26, 30, 32, 36, 46], "multi": [2, 4, 6, 7, 8, 18, 26], "gripper": [2, 3, 4, 5, 7, 14, 15, 37], "out": [2, 3, 5, 10, 30, 36], "box": [2, 18, 20, 22, 25, 26, 27, 28, 31, 32], "allow": [2, 3, 4, 5, 18, 30, 42, 45, 46, 47, 51], "joint": [2, 4, 7, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 44, 45, 46, 48, 49, 52, 53, 54, 55, 58], "posit": [2, 3, 4, 5, 7, 10, 14, 15, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 37, 39, 44, 45, 46, 47, 48, 49, 52, 55], "veloc": [2, 3, 4, 5, 7, 9, 18, 22, 24, 25, 26, 30, 34, 35, 36, 37, 42, 43, 44, 45, 46, 47, 48, 49, 52, 55], "effort": [2, 3, 5, 18, 30, 37, 39, 42, 44, 45, 47, 48], "hard": [2, 10], "data": [2, 4, 6, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36, 37, 44, 46, 53], "approach": [2, 9, 12], "doe": [2, 10, 16, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 38, 46, 47], "enforc": [2, 26, 30], "string": [2, 10, 15, 18, 34, 36, 38, 40, 41, 42, 43, 44, 45, 48, 50, 52, 53], "ensur": [2, 7, 10, 30, 46], "constant": [2, 18], "hardware_interfac": [2, 3, 4, 5, 12, 13, 15, 16, 18, 24, 27, 28, 29, 30, 34, 36, 37, 38], "In": [2, 3, 4, 5, 6, 7, 9, 12, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 38, 44, 46, 52], "had": 2, "itself": [2, 9], "took": 2, "care": [2, 6, 10, 16, 26, 38, 47], "regist": [2, 3, 5], "resourc": [2, 3, 5, 16, 26], "conflict": [2, 4, 6], "resourcemanag": [2, 9], "take": [2, 6, 9, 16, 23, 26, 36, 38, 44, 46], "state": [2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 37, 38, 40, 44, 45], "avail": [2, 4, 7, 9, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 44, 47], "enabl": [2, 4, 6, 7, 13, 16, 17, 18, 25, 34, 36, 40, 48, 52], "anymor": 2, "controllermanag": [2, 10], "implement": [2, 3, 4, 5, 6, 7, 10, 12, 14, 15, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 38, 41, 46, 47, 48, 52, 53, 54, 58], "systeminterfac": [2, 3, 5, 12, 15, 27, 30], "granular": 2, "sensorinterfac": [2, 24, 28], "actuatorinterfac": [2, 24, 29], "abov": [2, 20, 21, 23, 24, 25, 26, 27, 28, 29, 31, 32, 37, 46], "choos": [2, 18, 52], "suitabl": [2, 7], "strategi": [2, 18, 46], "decid": [2, 12], "which": [2, 3, 4, 5, 6, 7, 8, 10, 12, 16, 17, 18, 20, 22, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 37, 38, 40, 43, 44, 45, 46, 47, 50, 52, 53], "case": [2, 3, 5, 6, 7, 9, 18, 23, 30, 38, 44, 46, 47, 58], "mayb": [2, 9], "sens": [2, 4, 37, 40], "multipl": [2, 4, 7, 9, 14, 16, 18, 44], "constructor": [2, 16, 30, 38], "initi": [2, 14, 15, 16, 30, 38, 46], "variabl": [2, 12, 16, 30, 38, 45], "need": [2, 3, 4, 5, 6, 7, 9, 14, 16, 18, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 37, 38, 46, 48], "commun": [2, 4, 6, 7, 12, 16, 18, 20, 22, 24, 25, 26, 27, 28, 30, 31], "default": [2, 4, 9, 10, 15, 22, 26, 33, 34, 35, 36, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54], "configur": [2, 3, 4, 5, 6, 7, 9, 10, 13, 15, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 44, 45, 46, 47, 52], "paramet": [2, 3, 5, 7, 8, 12, 16, 18, 20, 25, 30, 38, 47], "pars": [2, 3, 5, 10, 11, 14], "urdf": [2, 7, 10, 12, 14, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34], "snippet": 2, "hardwareinfo": [2, 12, 30], "here": [2, 11, 16, 30, 38, 39, 47, 49, 55], "cross": [2, 44], "valu": [2, 4, 6, 12, 14, 15, 16, 18, 20, 21, 23, 25, 27, 28, 30, 32, 34, 36, 38, 40, 43, 44, 45, 47, 50, 52, 53], "export_": 2, "_interfac": [2, 16], "joint_a2": 2, "extract": [2, 36, 53], "sensibl": 2, "stop": [2, 7, 9, 10, 13, 17, 20, 25, 26, 30, 36, 45, 53], "usual": [2, 4, 10, 15, 16, 30, 34, 38], "includ": [2, 3, 5, 6, 8, 10, 13, 16, 17, 22, 30, 34, 38, 47, 53, 57], "command": [2, 3, 4, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 42, 45, 46, 49, 51, 54, 55, 58], "safe": [2, 30, 36, 38, 47, 53], "interrupt": [2, 10], "stream": [2, 7], "write": [2, 4, 7, 9, 10, 11, 12, 23, 24, 25, 29, 34, 37, 48], "exchang": [2, 6, 20, 22, 24, 25, 26, 27, 28, 29, 31, 58], "equival": [2, 30], "forget": [2, 4, 18, 47], "pluginlib_export_class": [2, 16, 18, 30, 38], "macro": [2, 4, 12, 16, 18, 30, 38], "end": [2, 4, 13, 16, 30, 34, 38, 45], "cpp": [2, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38], "file": [2, 3, 4, 5, 6, 7, 10, 12, 15, 16, 18, 34, 36, 38, 39, 40, 47, 49, 55], "creat": [2, 3, 4, 5, 7, 10, 15, 16, 18, 22, 30, 38], "xml": [2, 3, 5, 12, 13, 16, 30, 38], "librari": [2, 4, 16, 17, 22, 33, 35, 37, 38, 48, 52, 54], "pluginlib": [2, 3, 4, 5, 10, 16, 30, 38, 48], "exampl": [2, 3, 4, 5, 6, 7, 9, 10, 15, 17, 22, 25, 34, 36, 39, 40, 47, 48, 49, 53, 55, 58], "rrbotsystempositiononlyhardwar": [2, 4, 14, 17, 20, 23, 28], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 17, 20, 34, 47], "real": [2, 6, 7, 10, 15, 25, 38, 44, 45, 58], "critic": [2, 6], "mark": [2, 23], "controllerinterfac": [2, 4, 9, 17, 30, 38], "member": [2, 16, 30, 38, 46], "init": 2, "call": [2, 3, 4, 5, 9, 12, 16, 25, 30, 38], "lifecycl": [2, 4, 7, 10, 13, 16, 30, 37], "declar": [2, 12, 16, 30, 38], "state_interface_configur": [2, 30, 38], "command_interface_configur": [2, 30, 38], "design": [2, 4, 6, 7, 9, 22, 30, 58], "updat": [2, 4, 9, 10, 11, 13, 18, 22, 30, 34, 37, 38, 47, 52], "manag": [2, 3, 5, 6, 7, 11, 13, 16, 17, 18, 30, 38, 47, 58], "option": [2, 3, 5, 10, 13, 14, 15, 16, 17, 20, 26, 34, 36, 37, 38, 40, 44, 47, 48, 52], "on_configur": [2, 16, 30, 38], "on_activ": [2, 12, 13, 16, 30, 38], "on_deactiv": [2, 13, 16, 30, 38], "deactiv": [2, 4, 17, 20, 45], "final": [2, 7, 13, 30], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 15, 18, 23, 25, 30, 45, 46, 47, 48, 53, 58], "architectur": [3, 5, 6, 7, 8], "gazebo": [3, 5, 6, 15, 18, 20, 32, 56], "classic": [3, 15, 18, 32, 56], "instanti": [3, 5, 10], "connect": [3, 4, 5, 15, 18, 27, 30], "model": [3, 5, 20, 22, 30], "cd": [3, 4, 5, 8, 18, 30], "docker": [3, 5, 8, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "gui": [3, 5, 18, 20, 23, 24, 26, 27, 28, 29, 31, 32, 51], "properli": [3, 5, 9, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "rm": [3, 4, 5, 18, 20, 32], "net": [3, 5, 7, 18, 20, 32], "host": [3, 5, 18, 20, 32, 57], "ros2": [3, 4, 5, 7, 10, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38], "launch": [3, 4, 5, 10, 15, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "cart_example_posit": [3, 5], "py": [3, 5, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "fals": [3, 5, 12, 15, 18, 20, 22, 32, 34, 36, 42, 44, 45, 47, 48, 52, 53], "machin": [3, 4, 5, 6, 18, 32], "client": [3, 5, 32, 47], "gzclient": [3, 32], "rocker": [3, 5], "go": [3, 5, 7, 10, 16, 30, 38], "imag": [3, 5, 10, 32], "inject": [3, 5, 7, 8], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 10, 18, 30, 46], "id": [3, 5, 17, 20, 22, 24, 25, 26, 27, 28, 29, 31, 34, 36], "specif": [3, 5, 6, 9, 10, 12, 13, 14, 30, 32, 41, 44, 46, 47], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 10], "instal": [3, 5, 8, 10, 16, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38], "instruct": [3, 5, 8, 25, 30, 32], "x11": [3, 5], "latest": [3, 4, 5, 8], "move": [3, 5, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 36, 42, 53], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 20], "bash": [3, 4, 5, 8, 16, 18, 20, 30, 38], "home": [3, 5], "ros2_w": [3, 4, 5, 18], "example_posit": [3, 5], "element": [3, 5, 30, 34, 45], "access": [3, 4, 5, 7, 10, 15, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 44], "interfac": [3, 5, 6, 7, 9, 10, 11, 13, 16, 18, 20, 22, 23, 24, 25, 27, 28, 29, 32, 33, 35, 37, 38, 40, 43, 45, 46, 50, 54, 56, 57, 58], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 9, 11, 15, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 36, 37, 38, 45, 48, 53, 58], "slider_to_cart": [3, 5, 39, 49, 55], "command_interfac": [3, 4, 5, 14, 23, 30, 34, 45, 47, 48], "param": [3, 4, 5, 10, 12, 14, 15, 25, 30], "min": [3, 4, 5, 14, 30], "1000": [3, 5, 30], "state_interfac": [3, 4, 5, 14, 15, 30, 34, 45, 47], "initial_valu": [3, 5, 14, 15, 30], "mimick": [3, 5, 15], "manual": [3, 4, 5, 6, 10, 16, 18, 20, 26, 27, 28, 29, 31, 32, 38, 58], "multipli": [3, 5, 15], "definit": [3, 4, 5, 10, 16, 30, 34, 36, 37, 38, 40, 42, 43, 44, 45, 50], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 30, 33, 35, 36, 40, 54], "xyz": [3, 5, 30], "rpy": [3, 5, 30], "1415926535": [3, 5], "parent": [3, 5, 16, 30, 36, 38, 53], "link": [3, 4, 5, 7, 9, 13, 30, 34, 37], "base": [3, 4, 5, 7, 13, 16, 17, 18, 22, 24, 25, 29, 30, 34, 36, 38, 41, 52, 53, 56, 57], "child": [3, 5, 14, 30, 36, 53], "finger_left": [3, 5], "lower": [3, 5, 30, 48], "upper": [3, 5, 30, 48], "actual": [3, 5, 9, 36, 53], "load": [3, 4, 5, 10, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38], "appropri": [3, 5, 6, 46], "By": [3, 5, 10, 22, 30, 44, 46], "though": [3, 5, 10, 22, 23], "extens": [3, 5], "via": [3, 4, 5, 18, 20, 27, 28, 30, 32, 47, 57], "between": [3, 4, 5, 6, 13, 14, 18, 30, 33, 35, 36, 44, 45, 46, 47, 48, 53, 54], "filenam": [3, 5, 30], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 9, 10, 16, 30, 34, 38, 47], "robot_param": [3, 5], "robot_descript": [3, 5, 10, 20, 30], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 22, 44], "config": [3, 5, 18], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 8, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 47], "controller_manager_nam": 3, "simulation_controller_manag": 3, "locat": [3, 8, 30, 34, 36, 40, 42, 43, 44, 45, 50], "server": [3, 42, 47], "node": [3, 4, 5, 10, 12, 13, 15, 17, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 53], "hold_joint": [3, 5], "true": [3, 5, 12, 22, 25, 32, 34, 36, 45, 46, 47, 48, 52, 53], "hold": [3, 5, 46], "wa": [3, 5, 6, 8, 16, 20, 25, 26, 30, 38, 46], "claim": [3, 5, 9, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34], "hasn": [3, 5], "been": [3, 5, 23], "yet": [3, 5, 9, 10, 18, 23, 36, 46, 47], "controller_manag": [3, 4, 5, 6, 10, 17, 26, 37, 38, 39, 47, 49, 55], "attempt": [3, 5, 10, 47], "get": [3, 5, 7, 8, 9, 10, 12, 13, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 46, 48, 58], "most": [3, 5, 6, 16, 18, 22, 30, 38], "least": [3, 5, 14, 16, 38, 47], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8, 9], "mechan": [3, 5, 9, 47], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 20, 23, 31], "etc": [3, 5, 10, 26, 30, 34, 58], "These": [3, 5, 18, 30, 36, 42, 53], "inherit": [3, 5, 10, 30], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 10, 23, 24, 29, 39, 46, 49, 55], "properti": [3, 5, 30], "respect": [3, 5, 6, 7, 45, 46, 47], "sub": [3, 5, 22], "class": [3, 4, 5, 7, 10, 13, 16, 17, 30, 38, 41, 46], "specifi": [3, 5, 10, 16, 18, 30, 34, 37, 38, 45, 46, 47, 48], "insid": [3, 5, 15, 18, 20], "joint_state_broadcast": [3, 5, 14, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "publish": [3, 5, 6, 9, 14, 18, 21, 22, 30, 34, 37, 40, 43, 44, 46, 50, 53, 58], "stateinterfac": [3, 5, 30], "topic": [3, 5, 6, 7, 9, 14, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 36, 37, 47, 48, 53, 56], "sensor_msg": [3, 5, 43, 50], "msg": [3, 5, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 36, 39, 40, 41, 43, 46, 47, 48, 49, 50, 52, 55], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 17, 20, 37, 45, 51], "action": [3, 5, 9, 45], "follow_joint_trajectori": [3, 5, 47], "control_msg": [3, 5, 34, 45, 47, 48, 52, 58], "followjointtrajectori": [3, 5, 45, 47], "ros__paramet": [3, 5, 34, 36, 39, 40, 42, 43, 44, 45, 47, 49, 50, 55], "update_r": [3, 5, 10, 37, 39, 49, 55], "100": [3, 4, 12, 14, 39, 49, 55], "hz": [3, 5, 36, 39, 42, 49, 55], "jointstatebroadcast": [3, 5, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "interface_nam": [3, 21, 40, 41], "contain": [3, 8, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 36, 39, 40, 42, 43, 44, 45, 46, 48, 49, 50, 52, 55], "content": [3, 16, 30, 38], "There": [3, 4, 5, 10, 13, 16, 18, 22, 24, 27, 28, 29, 38, 46, 47], "meter": [3, 5, 30], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 10, 15, 22, 30, 34], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 14, 15], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 46, 47, 48], "example_gripp": [3, 5], "roll": [4, 8, 18, 30, 36, 53], "want": [4, 8, 9, 10, 18], "download": [4, 18], "repositori": [4, 6, 11, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 36, 37], "mkdir": [4, 8, 18], "p": [4, 8, 10, 18, 45, 48], "src": [4, 8, 16, 18, 20, 30, 32, 34, 36, 38, 40, 42, 43, 44, 45, 50], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 8, 18, 30], "org": [4, 6, 12, 33, 35, 54], "ros_control": [4, 6, 7, 58], "vc": [4, 8, 18], "import": [4, 8, 16, 18, 30, 38, 45], "rosdep": [4, 18], "rosdistro": [4, 18], "sudo": [4, 8, 10, 18], "apt": [4, 8, 10, 18], "path": [4, 7, 18, 30, 47], "ignor": [4, 10, 18, 36, 45, 52, 53], "r": [4, 18, 31], "y": [4, 18, 22, 25, 27, 28, 34, 40, 43], "everyth": [4, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 38], "opt": [4, 8, 18, 20], "setup": [4, 8, 15, 16, 18, 20, 25, 30, 32, 38, 46, 48], "sh": [4, 18, 20, 32], "colcon": [4, 8, 16, 18, 30, 38], "symlink": [4, 8, 18, 30], "folder": [4, 7, 16, 18, 20, 21, 22, 25, 33, 34, 35, 36, 38, 40, 42, 43, 44, 45, 50, 52, 54], "found": [4, 10, 11, 16, 20, 21, 22, 25, 34, 36, 38, 40, 41, 43, 47, 50, 58], "github": [4, 6, 8, 11, 18, 30, 37, 56, 57, 58], "figur": [4, 46], "uml": 4, "diagram": [4, 17], "intern": [4, 6, 9, 12, 14, 16, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 34, 46, 47], "cm": [4, 10], "abstract": [4, 7, 13, 30], "side": [4, 6, 7, 36], "entri": [4, 38], "point": [4, 30, 34, 38, 45, 46, 47, 48, 58], "servic": [4, 6, 10, 13, 30, 37], "executor": [4, 10], "custom": [4, 14, 15, 18, 24, 25, 40, 44, 45, 56], "howev": [4, 6, 9, 10, 18, 23, 30], "recommend": [4, 7, 8, 16, 48], "ros2_control_nod": [4, 26, 30], "assum": [4, 9, 34], "On": [4, 7, 8, 30], "hand": [4, 30, 57], "unload": [4, 10, 17], "match": [4, 18, 46], "report": [4, 6, 44, 58], "error": [4, 6, 10, 12, 16, 23, 26, 30, 34, 38, 44, 45, 47, 48], "execut": [4, 12, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 42, 45, 46, 47, 54], "loop": [4, 7, 10, 15, 20, 26, 27, 28, 29, 30, 31, 32, 38, 44, 45, 47, 52], "output": [4, 6, 7, 14, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 53], "driver": [4, 7, 18, 30, 57], "reus": [4, 7, 9], "flexibl": 4, "motor": [4, 9, 57], "encod": [4, 30, 36, 53], "theori": [4, 58], "compar": [4, 6, 7], "refer": [4, 9, 22, 23, 30, 57], "measur": [4, 15, 24, 34, 40, 44, 45, 57], "calcul": [4, 22, 30, 34, 36, 46, 52, 53], "input": [4, 6, 7, 8, 9, 14, 21, 23, 30, 34, 36, 39, 41, 45, 46, 49, 52, 53, 55], "object": [4, 30], "deriv": [4, 45, 46, 48], "controller_interfac": [4, 17, 30, 34, 38, 40, 43, 50], "export": [4, 9, 10, 16, 18, 30, 34, 38], "plugin": [4, 8, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 38, 48, 51], "forwardcommandcontrol": [4, 20, 21, 23, 24, 26, 27, 28, 29, 31, 32], "lifecyclenod": [4, 38], "document": [4, 6, 7, 14, 15, 16, 18, 25, 37, 46, 47], "list": [4, 7, 9, 10, 13, 16, 17, 23, 30, 38, 40, 56, 57, 58], "srv": [4, 47, 48], "controller_manager_msg": 4, "while": [4, 6, 7, 30, 34, 46], "directli": [4, 15, 20, 23, 32, 48, 58], "friendli": 4, "cli": [4, 10, 11, 17, 20, 21, 22, 25, 26, 27, 28, 29, 31, 32], "auto": [4, 10], "complet": [4, 13, 23, 30, 46], "rang": [4, 14, 37], "common": [4, 6, 18, 44, 58], "capabl": [4, 6], "realiz": [4, 7, 46, 47], "repres": [4, 13, 30, 36, 37, 46], "dynam": [4, 16, 22, 30, 34, 38, 48], "dof": [4, 14, 18, 30, 42, 48], "differ": [4, 6, 7, 11, 13, 14, 16, 18, 20, 21, 25, 26, 30, 36, 39, 40, 44, 46, 48, 49, 52, 55], "transmiss": [4, 18], "humanoid": 4, "logic": 4, "channel": [4, 57], "kuka": [4, 20, 26, 27, 28, 57], "rsi": [4, 20, 27, 28, 57], "relat": [4, 6, 7], "forc": [4, 7, 14, 17, 27, 28, 34, 37, 57], "torqu": [4, 14, 27, 28, 34, 37], "simpl": [4, 6, 7, 9, 16, 18, 20, 22, 23, 25, 30, 31, 38, 42], "valv": [4, 14], "mandatori": [4, 10], "dc": 4, "arduino": [4, 24, 29], "board": 4, "modular": [4, 7, 8, 18, 30], "independ": [4, 7, 10, 28], "explan": [4, 10, 16], "given": [4, 10, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 39, 46, 47, 49, 55], "through": [4, 6, 7, 9, 10, 16, 17, 18, 23, 30, 38, 47, 48, 58], "tag": [4, 10, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 38, 58], "chosen": [4, 14], "structur": [4, 6, 9, 10, 16, 30, 36, 38, 45, 46], "track": [4, 33, 54, 58], "togeth": [4, 9, 14, 25, 27, 52], "xacro": [4, 10, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "hereund": 4, "rrbot": [4, 14, 17, 18, 21, 22, 24, 26, 27, 28, 29, 31], "effector": [4, 34], "site": 4, "rrbotsystempositiononli": [4, 28], "ros2_control_demo_hardwar": [4, 14, 17], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 14], "joint1": [4, 14, 15, 17, 20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 34, 47], "joint2": [4, 14, 17, 20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 34, 47], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 14, 27, 28], "frame_id": [4, 14, 27, 28, 40, 43, 50, 52], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 15, 25, 30, 32, 34, 45, 48], "pure": 4, "stack": [4, 7, 58], "could": [4, 7, 9, 18, 26, 38, 44, 47], "altern": [4, 8, 10, 20, 47], "script": [4, 6, 16, 38], "skeleton": 4, "sim": [5, 17, 56], "dockerfil": [5, 18], "Then": [5, 9, 18, 30, 32, 46], "ign": 5, "meet": [5, 58], "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, 15, 16, 26, 36, 43, 44, 47, 58], "gener": [6, 7, 14, 16, 17, 22, 24, 25, 26, 27, 28, 29, 30, 37, 38, 47, 52, 58], "task": [6, 7, 36], "envis": 6, "simul": [6, 15, 17, 18, 20, 23, 25, 27, 28, 30], "ignit": 6, "showcas": [6, 7, 8], "grace": 6, "degrad": 6, "roadmap": [6, 18, 58], "place": [6, 8, 36, 38, 53], "draft": 6, "gpio": [6, 15, 18, 30], "mode": [6, 9, 16, 23, 26, 34, 45, 46, 48, 52], "switch": [6, 17, 18, 20, 26], "movement": [6, 45], "safeti": [6, 30], "skill": 6, "prefer": 6, "familiar": [6, 58], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 36, 50, 53], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 9], "although": [6, 9, 13, 14, 47], "easi": [6, 10], "therefor": [6, 9, 10, 18, 38, 44, 45, 47], "often": [6, 15, 25, 38, 44], "orchestr": 6, "purpos": [6, 20, 23, 24, 26, 27, 28, 29, 30, 31, 32, 48], "conductor": 6, "scenario": [6, 46], "moment": [6, 47], "right": [6, 18, 36], "replac": [6, 13, 37, 47], "high": [6, 10, 46], "moveit2": [6, 7, 37, 57], "simplecontrollermanag": 6, "goal": [6, 7, 14, 20, 26, 27, 28, 29, 31, 32, 42, 45, 47, 58], "form": [6, 18], "behavior": [6, 15, 30, 46], "benchmark": 6, "statu": [6, 9, 13, 17, 20, 45], "format": [6, 30, 34, 44, 47], "preset": 6, "modul": [6, 23], "reli": 6, "doubl": [6, 15, 20, 30, 33, 34, 35, 36, 42, 45, 48, 50, 52, 53, 54], "desir": [6, 12, 45, 47], "both": [6, 7, 23, 30, 31, 36, 44, 45, 46, 47], "improv": [6, 10], "readabl": [6, 30], "earlier": 6, "concept": [6, 7, 8, 9, 15, 18, 20], "introduc": [6, 7, 9, 20, 30], "essenti": [6, 20], "group": [6, 9, 10, 14, 47, 58], "instanc": [6, 10, 23, 44], "imu": [6, 14, 37], "typic": [6, 14, 25, 44, 45], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 23], "struct": 6, "low": [6, 7, 10], "profil": 6, "relev": [6, 34, 45, 48, 52, 58], "addition": [6, 30, 33, 35, 54, 58], "few": [6, 7, 37], "rewrit": [6, 58], "rich": 6, "motiv": 6, "adopt": 6, "port": [6, 13, 14], "quit": 6, "miss": [6, 7, 8, 44, 46, 47], "diff_drive_control": [6, 9, 17, 25], "consist": [6, 47, 58], "onc": [6, 7, 8, 20, 22, 25, 26, 27, 28, 30, 31, 37], "identifi": [6, 30], "much": [6, 20, 22, 24, 25, 26, 27, 28, 29, 31, 38, 47], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 58], "unit": 6, "gmock": 6, "cc": [7, 46, 47], "BY": [7, 46, 47], "licens": [7, 46, 47], "author": [7, 9], "either": [7, 20, 26, 27, 28, 29, 31, 32, 44, 46], "down": [7, 30, 34], "below": [7, 10, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 45, 46, 47], "compani": 7, "my": 7, "company_nam": 7, "alreadi": [7, 8, 16, 17, 18, 20, 23, 30, 32, 37, 38, 47], "know": [7, 8, 14], "act": [7, 8], "kernel": [7, 8, 10], "struggl": [7, 8], "cover": [7, 8], "product": [7, 8, 44], "variou": [7, 8, 20, 31], "littl": [7, 8, 10], "run": [7, 8, 9, 10, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 46, 52], "practic": [7, 8], "overview": [7, 8], "control": [7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 33, 35, 40, 43, 44, 45, 46, 50, 53, 54, 57, 58], "chain": [7, 8, 11, 17, 18, 30, 34, 45, 48, 52], "debug": [7, 8, 15], "top": [7, 8], "involv": [7, 8], "bring": [7, 8, 18], "page": [7, 56, 57], "locu": 7, "stogl": [7, 8], "consult": 7, "tricycl": [7, 37, 53], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "agnost": [7, 30], "share": [7, 15, 16, 30, 32, 38, 52], "well": [7, 10, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 47], "perform": [7, 10, 30], "heavi": 7, "practition": 7, "guid": [7, 16, 38], "virtual": [7, 9, 22, 35], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 20, 30], "explicit": [7, 10, 30, 45], "emerg": 7, "handler": 7, "mock": [7, 11, 16], "usag": [7, 10, 14, 17, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 10, 38], "focu": [7, 9], "becom": [7, 23], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 37], "tip": [7, 30, 34], "hot": 7, "shown": [7, 30, 46], "furthermor": [7, 25], "offer": [7, 10, 16, 30], "expos": [7, 18, 23], "problem": [7, 58], "manipul": [7, 18, 20, 23, 30, 31, 45, 57], "plan": [7, 58], "autonom": 7, "navig": [7, 8], "ideal": [7, 15], "made": [7, 13], "mobil": [7, 18, 22, 25, 36, 52, 53, 57], "arm": [7, 20, 23, 31, 34], "extra": [7, 30, 44], "readi": [7, 8, 16, 18, 23, 37, 38], "studi": 7, "ur": 7, "With": [7, 30, 32, 47], "moveit": [7, 15], "ingredi": 7, "scale": [7, 45], "factor": [7, 36], "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, 16, 38], "trajectori": [7, 20, 30, 37, 45, 48, 58], "admitt": [7, 37], "One": [7, 9], "reason": [7, 9, 10, 30], "upgrad": 7, "ros1": [7, 18], "better": 7, "realtim": [7, 10, 30, 36, 47, 53, 58], "contact": 7, "insert": 7, "singl": [7, 27, 42, 53], "waypoint": [7, 46, 47], "mani": [7, 30, 37, 38], "teleoper": 7, "kinemat": [7, 9, 18, 25, 30, 33, 34, 35, 52, 54], "acceler": [7, 18, 26, 30, 34, 36, 43, 45, 46, 47, 48, 53], "jerk": [7, 36, 53], "obei": [7, 30], "demo": [7, 14], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 30], "cycl": [7, 30, 37], "_control": [7, 18], "wild": 7, "materi": 7, "quick": [7, 13], "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 15, 20, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 37, 45, 47, 48, 58], "done": [7, 8, 9, 16, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 37, 38], "look": [7, 25], "modifi": 7, "simpli": [7, 10, 20, 46, 47], "edit": 7, "collect": [7, 39, 49, 55], "semant": [7, 14, 34, 40, 43, 50], "monolit": 7, "controlko": 7, "imperi": 8, "octob": 8, "present": [8, 47], "ubuntu": [8, 10], "engin": [8, 16, 38], "compos": 8, "grab": 8, "roscon2023_workshop": 8, "now": [8, 9, 10, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 46], "workspac": [8, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38], "w": 8, "git": [8, 18, 30], "clone": [8, 18, 30], "roscon2023_control_workshop": 8, "ci": 8, "compil": [8, 16, 30, 32, 38], "termin": [8, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "park": 8, "f": [8, 18, 34], "dev": 8, "tmux": 8, "ctrl": [8, 20], "b": [8, 18, 30], "arrow": 8, "kei": 8, "brought": 8, "propos": [9, 58], "minim": [9, 34, 58], "viabl": [9, 30], "serial": [9, 30], "tri": [9, 45], "clariti": 9, "arbitrari": [9, 30, 47], "order": [9, 30, 48], "nevertheless": [9, 48], "convinc": 9, "would": [9, 44, 48], "unnecessari": 9, "long": 9, "term": [9, 48, 58], "clearer": 9, "let": [9, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31], "controllers_chain": 9, "doc": [9, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 58], "position_track": 9, "pid": [9, 37, 45, 46, 47, 58], "imagin": 9, "flexibli": 9, "preced": 9, "step": [9, 12, 16, 18, 38, 46, 58], "At": [9, 16, 23, 38], "attach": 9, "disabl": [9, 15, 36, 52], "subscrib": [9, 21, 22, 23, 30], "differenti": [9, 18, 25, 35, 36, 37, 57, 58], "interfaceconfigur": [9, 30], "input_interface_configur": 9, "const": [9, 12, 13, 30], "anoth": [9, 10, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 47], "simplic": [9, 30], "try": [9, 30], "exclus": [9, 30], "rather": [9, 18, 46], "void": 9, "set_chained_mod": 9, "bool": [9, 12, 34, 36, 42, 44, 45, 48, 52, 53], "flag": [9, 12, 16, 38, 45], "on_set_chained_mod": 9, "pid_refer": 9, "controller_nam": [9, 10, 17, 34, 38, 47, 48, 52], "v_x": 9, "v_y": 9, "w_z": 9, "cmd_vel": [9, 25, 36, 53], "cmd_vel_unstamp": 9, "Its": [9, 58], "continu": [9, 45, 46, 47, 48], "chainabl": [9, 18, 23, 36, 47], "ownership": 9, "process": [9, 16, 30, 38, 46], "vector": [9, 23, 30, 38], "invers": [9, 30, 34], "rule": [9, 10, 16, 38], "think": [9, 18], "break": [9, 15], "middl": [9, 35], "unavail": [9, 22, 23], "unclaim": [9, 17, 22, 23, 26], "inact": [9, 10, 17, 20, 26, 30, 37], "feasibl": 9, "interface_configuration_typ": 9, "jitter": 10, "thread": [10, 30], "sched_fifo": 10, "prioriti": 10, "addgroup": 10, "usermod": 10, "whoami": 10, "afterward": 10, "secur": 10, "conf": [10, 30], "soft": 10, "rtprio": 10, "memlock": 10, "102400": 10, "appli": [10, 17, 30, 34, 36, 47], "log": 10, "again": [10, 13, 20, 25, 30], "normal": [10, 30, 34, 45, 48], "linux": 10, "comput": [10, 18, 36, 52, 53], "throughput": 10, "suit": 10, "lt": 10, "beta": 10, "rt": 10, "amd64": 10, "debian": 10, "bullsey": 10, "lowlat": 10, "come": [10, 18, 47], "lot": [10, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31], "being": [10, 22], "realli": 10, "hardware_components_initial_st": 10, "map": [10, 15, 44, 47], "attribut": [10, 30], "full": [10, 16, 18, 38, 40], "unconfigur": [10, 13, 20, 30], "arm1": 10, "arm2": 10, "base3": 10, "empti": [10, 36, 38, 40, 43, 44, 47, 48, 52, 53], "integ": [10, 37], "frequenc": [10, 37], "startup": [10, 15], "h": [10, 16, 17, 38], "param_fil": 10, "n": 10, "namespac": [10, 12, 16, 30, 36, 37, 38, 44], "controller_typ": 10, "timeout": [10, 17, 36, 42, 45, 52, 53], "controller_manager_timeout": 10, "argument": [10, 16, 17, 20, 22, 24, 25, 26, 27, 28, 29, 31], "exit": [10, 17], "leav": 10, "kill": [10, 17, 30], "wait": [10, 17, 29, 45], "until": [10, 30, 46], "mai": [10, 13, 27, 37, 39, 49, 55], "taken": [10, 52], "becaus": [10, 14, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 46], "rclcpp": [10, 12, 16, 30, 38], "than": [10, 34, 40, 42, 45, 47, 48, 52, 53], "global": 10, "remap": [10, 22], "forcibli": 10, "lead": [10, 47], "duplic": [10, 45, 48, 52], "occur": [10, 30], "whether": [10, 34], "sibl": 10, "hierarchi": 10, "workaround": 10, "nodeopt": [10, 38], "pass": [10, 12, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "caus": [10, 46, 47, 52], "get_cm_node_opt": 10, "arg": 10, "_target_node_nam": 10, "__node": 10, "dst_node_nam": 10, "std": [10, 30, 36, 45, 53], "make_shar": 10, "some_optional_namespac": 10, "simplest": 10, "switch_control": [10, 20], "broadcast": [10, 14, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 44], "achiev": [10, 12, 30, 39, 45, 49, 55], "return": [10, 12, 13, 16, 20, 30, 38, 42, 44, 46, 47], "NOT": 10, "FOR": 10, "detect": 10, "listen": [10, 45], "doxygen": [11, 16], "cascad": 11, "advic": 12, "xmln": 12, "wiki": [12, 33, 35, 46, 47, 54], "system_interfac": 12, "main_loop_update_r": 12, "desired_hw_update_r": 12, "my_system_interfac": 12, "mysystemhardwar": 12, "on_init": [12, 13, 16, 30, 38], "callbackreturn": [12, 13, 16, 30], "success": [12, 13, 16, 30, 38, 42, 47], "hpp": [12, 13, 16, 18, 30, 34, 38], "unsign": [12, 37], "int": [12, 36, 50, 52, 53], "main_loop_update_rate_": 12, "desired_hw_update_rate_": 12, "stoi": 12, "info_": [12, 30], "hardware_paramet": 12, "reset": [12, 30, 52], "counter": 12, "rclcpp_lifecycl": [12, 13, 16, 30, 38], "previous_st": [12, 13, 30], "update_loop_counter_": 12, "durat": [12, 30], "period": [12, 30, 45], "interfer": 12, "return_typ": [12, 13, 30, 38], "hardware_go": 12, "comm": 12, "oper": [12, 30, 58], "sinc": [12, 26, 30, 35], "indic": [12, 26, 30, 45], "first_read_pass_": 12, "first_write_pass_": 12, "last_read_time_": 12, "desired_hw_update_period_": 12, "last_write_time_": 12, "previou": [12, 30, 46, 58], "on_error": [13, 16, 30], "failur": 13, "recov": 13, "reload": [13, 17], "substanti": 13, "renam": 13, "baseinterfac": 13, "remov": 13, "base_interfac": 13, "hardware_interface_status_valu": 13, "strictli": [13, 14], "status_": 13, "in_deactiv": 13, "undefin": 13, "refern": 13, "symbol": 13, "node_interfac": [13, 30], "lifecyclenodeinterfac": [13, 16, 30], "rclcpp_lifecyl": 13, "cmakelist": [13, 16, 30, 38], "txt": [13, 16, 30, 38], "devic": 14, "associ": 14, "coupl": 14, "ship": 14, "cannot": [14, 23, 30, 40, 47], "keyword": 14, "digit": 14, "signal": [14, 36], "electr": 14, "analog": 14, "within": [14, 20, 34, 47], "vacuum": [14, 21], "flang": 14, "off": 14, "rrbotsystemmutiplegpio": 14, "example_param_hw_start_duration_sec": 14, "example_param_hw_stop_duration_sec": 14, "example_param_hw_slowdown": 14, "flange_digital_io": 14, "digital_output1": 14, "digital_output2": 14, "digital_input1": 14, "digital_input2": 14, "flange_analog_io": [14, 21], "analog_output1": [14, 21], "mock_hardwar": 14, "analog_input1": [14, 21], "analog_input2": [14, 21], "flange_vacuum": [14, 21], "suction": 14, "grasp": 14, "multimod": 14, "multimodalgripp": 14, "parallel_fing": 14, "temperatur": [14, 18], "feedback": [14, 15, 24, 44, 45, 47, 48, 52, 53], "adjust": [14, 17, 20, 30], "calibr": 14, "2d": [14, 27, 28], "ft": [14, 27, 28, 40], "choic": [14, 52], "matric": 14, "rrbotforcetorquesensor2d": 14, "forcetorquesensor2dhardwar": 14, "fx": 14, "tz": 14, "kuka_tcp": 14, "fx_rang": 14, "tz_rang": 14, "temp_feedback": 14, "calibration_matrix_nr": 14, "mirror": 15, "correspond": [15, 16, 30, 38, 52, 58], "offlin": 15, "advantag": 15, "pipe": 15, "even": [15, 22, 23, 47], "boost": 15, "mimic": [15, 22], "offset": [15, 44, 45], "fake": 15, "disable_command": 15, "boolean": [15, 37], "erron": [15, 30], "noth": 15, "suddenli": 15, "Or": [15, 20, 26, 27, 28, 29, 31, 32], "mock_sensor_command": 15, "position_state_following_offset": 15, "custom_interface_with_following_offset": 15, "certain": [15, 30, 39, 49, 55], "prepar": [16, 26, 38], "ament_cmak": [16, 38], "easiest": [16, 38], "search": [16, 38], "pkg": [16, 38], "package_nam": [16, 38], "robot_hardware_interface_nam": 16, "visibility_control": [16, 38], "window": [16, 36, 38, 53], "copi": [16, 38], "prefix": [16, 34, 36, 38, 40, 43, 50], "guard": [16, 38], "ifndef": [16, 38], "preprocessor": [16, 38], "friend": [16, 38], "interface_typ": [16, 38], "uniqu": [16, 30, 38], "written": [16, 24, 29, 30, 38], "snake_cas": [16, 38], "interfacetyp": 16, "hardwareinterfacenam": 16, "public": [16, 30, 38], "on_cleanup": [16, 30], "on_shutdown": [16, 30], "overrid": [16, 30, 38, 39, 47, 49, 55], "export_state_interfac": [16, 30], "export_command_interfac": [16, 30], "prepare_command_mode_switch": 16, "perform_command_mode_switch": 16, "further": [16, 38], "exact": [16, 38], "simplifi": [16, 30, 38, 58], "valid": [16, 18, 45, 48, 50], "fine": [16, 22, 25, 38], "otherwis": [16, 18, 34, 38, 44, 45], "opposit": [16, 38], "remind": 16, "joint_nam": [16, 34, 38], "shutdown": [16, 30], "gracefulli": 16, "store": [16, 38], "close": [16, 38], "class_list_macro": [16, 30, 38], "my_hardware_interface_packag": 16, "robothardwareinterfacenam": 16, "second": [16, 17, 20, 23, 26, 27, 28, 29, 30, 31, 32, 36, 38, 46, 48, 58], "visibl": [16, 38], "mock_compon": [16, 25], "bottom": [16, 30, 38], "test_load_": [16, 38], "load_generic_system_2dof": 16, "test_generic_system": 16, "find_packag": [16, 38], "directori": [16, 36, 38, 40, 43, 50], "ament": [16, 38], "cmake": 16, "pluginlib_export_plugin_description_fil": [16, 30, 38], "ament_cmake_gmock": [16, 38], "ament_add_gmock": [16, 38], "ament_export_librari": [16, 38], "ament_packag": [16, 38], "test_depend": [16, 38], "rememb": [16, 38], "root": [16, 38], "enjoi": [16, 38], "great": [16, 38], "templat": [16, 18, 30, 38], "shell": [16, 38], "onward": 16, "spin": 17, "spin_tim": 17, "hidden": 17, "discoveri": 17, "daemon": 17, "test_controller_nam": 17, "test_control": 17, "diffdrivecontrol": [17, 25], "verbos": 17, "label": [17, 24, 25, 27, 28, 29, 46], "ctrl1": 17, "ctrl2": 17, "strict": 17, "asap": 17, "switch_timeout": 17, "tmp": 17, "controller_diagram": 17, "gv": 17, "pdf": [17, 30], "demonstr": [18, 20, 22, 23, 25, 26, 31, 32], "prove": 18, "checkout": 18, "roscon2022_workshop": 18, "hardwareinterfac": [18, 30], "diffbot": 18, "degre": [18, 30, 47, 52], "freedom": [18, 30, 52], "components_architecture_and_urdf_exampl": 18, "revolut": [18, 20, 23, 30, 31], "drive": [18, 22, 25, 33, 35, 36, 37, 52, 53, 54, 57, 58], "accord": [18, 25, 30], "intermedi": 18, "carlikebot": 18, "bicycl": [18, 22, 37, 52], "steer": [18, 22, 33, 35, 37, 52, 53, 54], "tba": 18, "tabl": 18, "offici": 18, "easili": 18, "aptitud": 18, "might": [18, 46], "own": [18, 20, 30], "merg": 18, "procedur": 18, "rviz2": [18, 20, 32], "visual": [18, 20, 28, 30, 44], "joint_state_publisher_gui": [18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "ros2_control_demo_example_1": [18, 20], "view_robot": [18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "omit": 18, "example_1": [18, 20, 21, 23, 32], "rviz": [18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 44], "slider": 18, "around": [18, 40, 43, 45, 48, 50], "ros2_control_demo_example_2": [18, 25], "categori": 18, "individu": [18, 38, 40, 50], "position_in_degre": 18, "hardware_interface_type_valu": [18, 34], "6dof": 18, "invert": 20, "pendulum": 20, "fun": 20, "proprietari": [20, 22, 24, 25, 26, 27, 28, 29, 31], "view": [20, 30], "recreat": 20, "robotmodel": 20, "displai": [20, 23, 24, 26, 27, 28, 29, 31, 32], "ros2_control_demo_descript": [20, 22], "ok": [20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 38], "warn": [20, 22, 24, 25, 26, 27, 28, 29, 31, 44], "invalid": [20, 22, 24, 25, 26, 27, 28, 29, 31], "frame": [20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 36, 53], "odom": [20, 22, 24, 25, 26, 27, 28, 29, 31, 36, 52, 53], "cantransform": [20, 22, 24, 25, 26, 27, 28, 29, 31], "target_fram": [20, 22, 24, 25, 26, 27, 28, 29, 31], "happen": [20, 22, 24, 25, 26, 27, 28, 29, 30, 31], "exemplari": [20, 24, 26, 27, 28, 29, 31, 33, 35, 52, 54], "orang": [20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "yellow": [20, 23, 24, 26, 27, 28, 29, 31, 32], "rectangl": [20, 23, 24, 26, 27, 28, 29, 31], "introspect": [20, 22, 23, 24, 25, 26, 27, 28, 29, 31], "list_hardware_interfac": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "entrypoint": 20, "nomin": [20, 36], "marker": [20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "list_control": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "forward_position_control": [20, 21, 23, 26, 27, 28, 29, 31, 32], "forward_command_control": [20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 39, 49, 55], "pub": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "std_msg": [20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 39, 41, 49, 55], "float64multiarrai": [20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 39, 41, 49, 55], "everi": [20, 26, 27, 28, 29, 30, 31, 32, 37, 41, 45, 58], "test_forward_position_control": [20, 26, 27, 28, 29, 31, 32], "block": [20, 23, 24, 26, 27, 28, 29, 30, 31], "got": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "50000": [20, 23, 27, 28, 29], "echo": [20, 21, 23, 25, 27, 28, 32], "joint_stat": [20, 22, 23, 25, 32, 44], "dynamic_joint_st": [20, 23, 32, 44], "load_control": 20, "joint_trajectory_position_control": 20, "successfulli": [20, 24, 29], "set_controller_st": 20, "rrbot_control": [20, 21, 23, 31, 32], "four": [20, 22, 24, 33], "test_joint_trajectory_control": 20, "rrbot_joint_trajectory_publish": 20, "rrbot_descript": [20, 21, 23, 24, 26, 27, 28, 29, 31, 32], "rrbot_forward_position_publish": [20, 32], "ros2_control_demo_example_10": 21, "contrast": 21, "gpio_control": 21, "gpiocontrol": 21, "1199574016": 21, "1676318848": 21, "rrbotsystemwithgpiohardwar": 21, "gp": 21, "wheel": [22, 33, 35, 36, 52, 53, 54], "front": [22, 33, 34, 35, 52, 53, 54], "vehicl": [22, 35], "angl": [22, 30, 35, 52], "similarli": 22, "rear": [22, 33, 35, 52, 53, 54], "carlik": 22, "ros2_control_demo_example_11": 22, "remap_odometry_tf": 22, "excess": [22, 25], "print": [22, 25, 44], "tf": [22, 36, 52], "tree": [22, 30, 36], "pose": [22, 36, 52, 53], "coordin": 22, "odometri": [22, 36, 52, 53], "bicycle_steering_control": 22, "tf_odometri": [22, 52], "angular": [22, 25, 36, 43, 52, 53], "linear": [22, 25, 30, 36, 43, 46, 48, 52, 53], "virtual_front_wheel_joint": 22, "virtual_rear_wheel_joint": 22, "bicyclesteeringcontrol": 22, "geometry_msg": [22, 25, 27, 28, 36, 40, 52], "twiststamp": [22, 25, 36, 52], "twist": [22, 25, 52, 53], "circl": [22, 25], "carlikebotsystemhardwar": 22, "carlikebot_control": 22, "carlikebot_system": 22, "example_12": 23, "known": 23, "passthrough_control": 23, "ros2_control_demo_example_12": 23, "ident": [23, 25, 30, 32, 46], "joint2_position_control": 23, "passthroughcontrol": 23, "joint1_position_control": 23, "someth": 23, "automat": [23, 30, 32, 36, 53], "appear": 23, "whose": [23, 46], "henc": [23, 30], "launch_chained_control": 23, "position_control": [23, 37, 41, 42], "streamlin": 23, "clearli": 23, "sent": 23, "reflect": 23, "canopen_402": [24, 29], "modbu": [24, 29], "rs232": [24, 29], "rs485": [24, 29], "ros2_control_demo_example_14": 24, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 24, "list_hardware_compon": [24, 25, 27, 28, 29], "rrbotmodularjoint2": [24, 29], "rrbotactuatorwithoutfeedback": 24, "rrbotmodularjoint1": [24, 29], "rrbotmodularpositionsensorjoint2": 24, "rrbotsensorpositionfeedback": 24, "rrbotmodularpositionsensorjoint1": 24, "forward_velocity_control": [24, 26], "000000": 24, "00000": [24, 25, 26], "25300": 24, "rrbot_actuator_without_feedback": 24, "rrbot_sensor_for_position_feedback": 24, "example_2": 25, "left_wheel_joint": 25, "right_wheel_joint": 25, "diffbot_base_control": 25, "diff": 25, "diffbotsystemhardwar": 25, "33333": 25, "faster": [25, 36, 53], "genericsystem": 25, "use_mock_hardwar": 25, "calculate_dynam": 25, "diffbot_control": 25, "diffbot_descript": 25, "diffbot_system": 25, "example_3": 26, "fri": [26, 57], "abb": [26, 57], "yumi": 26, "schunk": [26, 57], "lwa4p": 26, "illeg": 26, "declin": 26, "faulti": 26, "ros2_control_demo_example_3": 26, "rrbot_system_multi_interfac": 26, "robot_control": [26, 30], "spawn": 26, "forward_acceleration_control": 26, "velocity_control": [26, 37, 41], "jointgroupvelocitycontrol": 26, "rrbotsystemmultiinterfacehardwar": 26, "po": [26, 34, 46], "78500": 26, "vel": [26, 52], "acc": 26, "control_lvl": 26, "forward_illegal1_control": 26, "forward_illegal2_control": 26, "1676209982": 26, "531163501": 26, "resource_manag": 26, "rrbotsystemmultiinterfac": 26, "did": 26, "531223835": 26, "reject": [26, 45, 46], "spawner": 26, "531717376": 26, "spawner_forward_illegal1_control": 26, "rrbot_multi_interface_forward_control": 26, "krc": 27, "prototyp": 27, "odri": [27, 57], "ros2_control_demo_example_4": 27, "rrbot_system_with_sensor": 27, "rrbotsystemwithsensor": 27, "rrbotsystemwithsensorhardwar": 27, "fts_broadcast": [27, 28], "force_torque_sensor_broadcast": [27, 28], "forcetorquesensorbroadcast": [27, 28], "wrench": [27, 28, 34], "republish": [27, 28], "wrenchstamp": [27, 28, 40], "stamp": [27, 28, 52, 53], "sec": [27, 28], "1676444704": [27, 28], "nanosec": [27, 28], "332221422": [27, 28], "tool_link": [27, 28], "946532964706421": 27, "nan": [27, 45], "0540995597839355": 27, "rrbot_with_sensor_control": 27, "pc": 28, "3d": [28, 30], "ros2_control_demo_example_5": 28, "rrbot_system_with_external_sensor": 28, "externalrrbotftsensor": 28, "externalrrbotforcetorquesensorhardwar": 28, "2126582860946655": 28, "3202226161956787": 28, "4302282333374023": 28, "540233612060547": 28, "647800624370575": 28, "7602499723434448": 28, "rrbot_with_external_sensor_control": 28, "rrbot_system_position_onli": 28, "external_rrbot_force_torque_sensor": 28, "mara": 29, "ros2_control_demo_example_6": 29, "rrbot_modular_actu": 29, "rrbotmodularjoint": 29, "rrbot_actu": 29, "queri": [30, 47], "enhanc": 30, "deploi": 30, "pattern": 30, "vendor": 30, "runtim": 30, "program": 30, "conform": 30, "newest": 30, "characterist": 30, "primari": [30, 47], "commerci": 30, "scratch": 30, "illustr": 30, "stl": 30, "dae": 30, "coars": 30, "mesh": 30, "fast": [30, 57], "collis": 30, "express": 30, "vertic": 30, "transform": [30, 36, 53], "rotat": [30, 36, 45, 53], "translat": [30, 36, 53], "proxim": 30, "face": 30, "co": 30, "planer": 30, "xy": 30, "plane": 30, "align": 30, "blender": 30, "begin": 30, "neg": [30, 34, 45], "pitch": 30, "yaw": 30, "repeat": 30, "robot_6_dof": 30, "base_link": [30, 34, 36, 52, 53], "link_0": 30, "inerti": 30, "mass": [30, 34], "inertia": 30, "ixx": 30, "ixi": 30, "ixz": 30, "iyi": 30, "iyz": 30, "izz": 30, "tool0": [30, 34], "base_joint": 30, "joint_1": 30, "link_1": 30, "061584": 30, "141592653589793": 30, "name_spac": 30, "class_nam": 30, "pi": [30, 45, 48], "enclos": 30, "previous": 30, "left": [30, 36, 44], "zero": [30, 34, 45, 46], "rel": [30, 46], "center": [30, 34], "uniform": 30, "consecut": 30, "motion": [30, 45], "subsequ": 30, "join": [30, 58], "speci": 30, "verifi": 30, "urdf_to_graphviz": 30, "r6bot": 30, "explain": 30, "robotsystem": 30, "ur5": 30, "five": 30, "hardware_interface_return_valu": 30, "hardware_interface_publ": 30, "commandinterfac": 30, "privat": 30, "memori": [30, 38], "alloc": 30, "establish": 30, "notabl": 30, "vari": 30, "fill": 30, "field": [30, 44, 46], "suppos": [30, 46], "tcp_force_torque_sensor": 30, "Their": 30, "pointer": 30, "state_interfaces_": 30, "nearli": 30, "command_interfaces_": 30, "constraint": [30, 34, 36, 38, 40, 42, 43, 45, 47, 48, 52, 53], "respons": 30, "turn": 30, "oppos": [30, 47], "tcp": [30, 34], "packet": 30, "robot_6_dof_hardwar": 30, "discov": 30, "library_nam": 30, "base_class_typ": 30, "human": 30, "notic": [30, 46], "just": 30, "add_librari": 30, "robot_hardwar": 30, "unlik": 30, "finit": 30, "transit": [30, 37, 46], "robotcontrol": 30, "nine": 30, "six": [30, 40], "callback": 30, "lifetim": 30, "restart": 30, "reconfigur": 30, "buffer": [30, 58], "transfer": 30, "eventu": 30, "mutex": 30, "guarante": [30, 46], "never": 30, "release_interfac": 30, "shut": 30, "free": [30, 36], "cleanup": 30, "r6bot_control": 30, "view_r6bot": 30, "ros2_control_demo_example_7": 30, "send_trajectori": 30, "circular": 30, "ros2_control_demo_example_8": 31, "rrbot_transmissions_system_position_onli": 31, "rrbottransmissionssystempositiononlyhardwar": 31, "transmission1": 31, "actuator1": 31, "transmission2": 31, "actuator2": 31, "383253": 31, "766505": 31, "53301": 31, "example_9": 32, "later": [32, 46], "ros2_control_demo_example_9": 32, "rrbot_gazebo_class": 32, "gazebo_ros2_control": 32, "usr": 32, "ax": [33, 34, 35, 40, 43, 48, 54], "traction": [33, 35, 52, 53, 54], "steerabl": [33, 35, 54], "generate_parameter_librari": [33, 34, 35, 36, 40, 41, 42, 43, 44, 45, 48, 50, 52, 53, 54], "parameter": [33, 35, 52, 54], "front_wheel_track": 33, "length": [33, 34, 43, 48, 52, 54], "en": [33, 35, 54], "wikipedia": [33, 35, 52, 54, 58], "wheelbas": [33, 35, 53, 54], "rear_wheel_track": 33, "distanc": [33, 35, 36, 47, 50, 53, 54], "front_wheels_radiu": [33, 54], "radiu": [33, 35, 36, 53, 54], "rear_wheels_radiu": [33, 54], "chainedcontrollerinterfac": 34, "kinematics_interfac": 34, "string_arrai": [34, 36, 41, 44, 45, 48, 52], "command_joint": [34, 45], "chainable_command_interfac": 34, "plugin_nam": 34, "plugin_packag": 34, "alpha": 34, "damp": 34, "coeffici": 34, "jacobian": 34, "pseudo": 34, "ft_sensor": 34, "filter_coeffici": 34, "filter": 34, "exponenti": 34, "fixed_world_fram": 34, "graviti": 34, "gravity_compens": 34, "cog": 34, "double_arrai": [34, 36, 43, 52, 53], "compens": 34, "equal": [34, 42, 43, 45], "weight": 34, "selected_ax": 34, "bool_arrai": 34, "rx": 34, "ry": 34, "rz": 34, "arrai": 34, "bound": 34, "0001": 34, "damping_ratio": 34, "ratio": 34, "zeta": 34, "sqrt": 34, "m": [34, 50, 52], "stiff": 34, "joint_damp": 34, "greater": [34, 42, 45, 53], "enable_parameter_update_without_reactiv": 34, "load_admittance_control": 34, "test_admittance_control": 34, "kuka_kr6": 34, "joint3": [34, 47], "joint4": [34, 47], "joint5": [34, 47], "joint6": [34, 47], "kinematics_interface_kdl": 34, "kinematicsinterfacekdl": 34, "stationari": 34, "group_nam": 34, "0005": 34, "ft_sensor_nam": 34, "link_6": 34, "005": 34, "calc": 34, "displac": 34, "x_d": 34, "828427": 34, "214": 34, "joint_refer": 34, "trajectory_msg": [34, 46, 47], "jointtrajectorypoint": [34, 46], "admittancecontrollerst": 34, "sensor_nam": [34, 40, 43, 50], "ackermann": [35, 37, 52], "probabl": 35, "front_wheel_radiu": 35, "rear_wheel_radiu": 35, "bodi": 36, "space": [36, 47], "hw_if_posit": [36, 37, 52], "hw_if_veloc": [36, 37, 52], "position_feedback": [36, 52], "use_stamped_vel": [36, 52, 53], "nav_msg": [36, 52], "estim": 36, "tf2_msg": [36, 52], "tfmessag": [36, 52], "enable_odom_tf": [36, 52, 53], "cmd_vel_out": 36, "publish_limited_veloc": 36, "left_wheel_nam": 36, "right_wheel_nam": 36, "wheel_separ": 36, "shortest": [36, 45, 53], "wrong": [36, 53], "behav": [36, 53], "correctli": [36, 53], "curv": [36, 53], "wheel_radiu": [36, 53], "slower": [36, 46, 53], "wheel_separation_multipli": 36, "todo": 36, "me": 36, "left_wheel_radius_multipli": 36, "right_wheel_radius_multipli": 36, "tf_frame_prefix_en": 36, "append": [36, 46], "tf_prefix": 36, "tf_frame_prefix": 36, "odom_id": 36, "base_frame_id": [36, 52, 53], "odom_frame_id": [36, 52, 53], "pose_covariance_diagon": [36, 52, 53], "covari": [36, 43, 52, 53], "tune": [36, 53], "sampl": [36, 46, 52, 53], "001": [36, 42, 53], "twist_covariance_diagon": [36, 52, 53], "speed": [36, 53], "open_loop": [36, 52, 53], "cmd_vel_timeout": [36, 53], "stale": [36, 45, 53], "velocity_rolling_window_s": [36, 52, 53], "publish_r": 36, "joint_limit": 36, "has_velocity_limit": 36, "has_acceleration_limit": 36, "has_jerk_limit": 36, "max_veloc": [36, 53], "numeric_limit": [36, 45, 53], "quiet_nan": [36, 45, 53], "min_veloc": [36, 53], "max_acceler": [36, 53], "min_acceler": [36, 53], "max_jerk": [36, 53], "min_jerk": [36, 53], "test_diff_drive_control": 36, "left_wheel": 36, "right_wheel": 36, "wheels_per_sid": 36, "commonli": 37, "effort_control": [37, 41, 42], "hw_if_acceler": 37, "hw_if_effort": 37, "represent": [37, 47], "rqt_joint_trajectory_control": [37, 47], "onconfigur": 37, "configure_control": 37, "unspecifi": 37, "is_async": 37, "asynchron": 37, "controllernam": 38, "person": 38, "get_node_opt": 38, "protect": 38, "reserv": 38, "importantli": 38, "ask": [38, 44], "sort": 38, "controller_name_namespac": 38, "controller_name_packag": 38, "ros2_control_test_asset": 38, "special": [39, 46, 49, 55], "wrapper": [40, 43, 50], "forcetorquesensor": 40, "6d": 40, "per": [40, 45], "less": [40, 48, 52], "example_nam": 40, "example_interfac": 40, "test_force_torque_sensor_broadcast": 40, "fts_sensor_fram": 40, "feedforward": 41, "multi_interface_forward_command_control": 41, "gripperactioncontrol": 42, "action_monitor_r": [42, 45, 47], "goal_toler": 42, "max_effort": 42, "allow_stal": 42, "stall": 42, "stall_velocity_threshold": 42, "threshold": 42, "stall_timeout": 42, "gripper_action_control": 42, "imusensor": 43, "orient": 43, "angular_veloc": 43, "linear_acceler": 43, "static_covariance_orient": 43, "static": 43, "row": 43, "static_covariance_angular_veloc": 43, "static_covariance_linear_acceler": 43, "test_imu_sensor_broadcast": 43, "imu_sensor": 43, "imu_sensor_fram": 43, "unless": 44, "latter": 44, "matrix": [44, 52], "use_local_top": 44, "my_state_broadcast": 44, "extra_joint": 44, "map_interface_to_joint_st": 44, "usecas": 44, "hydraul": [44, 45], "relianc": 44, "techniqu": 44, "slightli": 44, "custom_interfac": 44, "kf_estimated_posit": 44, "derived_veloc": 44, "derived_effort": 44, "torque_sensor": 44, "current_sensor": 44, "jtc": [45, 48], "command_interface_type_combin": 45, "state_interface_type_combin": 45, "allow_partial_joints_go": [45, 47], "open_loop_control": [45, 47], "interpol": [45, 47, 48], "gain": [45, 48], "numer": 45, "allow_integration_in_goal_trajectori": [45, 46], "monitor": [45, 47], "interpolation_method": 45, "spline": 45, "allow_nonzero_velocity_at_trajectory_end": 45, "cmd_timeout": 45, "goal_tim": [45, 47], "toler": [45, 47], "jointtrajectori": [45, 46, 47], "stopped_velocity_toler": [45, 47], "infinit": 45, "amount": 45, "law": [45, 47], "k_": 45, "ff": 45, "v_d": 45, "k_p": 45, "k_i": 45, "sum": 45, "dt": 45, "k_d": 45, "angle_wraparound": [45, 48], "i_clamp": 45, "clamp": [45, 48], "symmetr": 45, "ff_velocity_scal": 45, "feed": [45, 48], "wrap": [45, 47, 48], "ie": [45, 46], "s_d": 45, "saniti": 46, "segment": [46, 47], "fault": 46, "reach": [46, 47], "datapoint": 46, "deduc": 46, "nor": 46, "discourag": 46, "yield": 46, "discontinu": [46, 47], "cubic": [46, 48], "quintic": [46, 48], "heun": 46, "grid": 46, "10m": 46, "deduct": 46, "nonzero": 46, "inconsist": 46, "overshoot": 46, "timestamp": 46, "arriv": 46, "necessarili": 46, "discard": 46, "substitut": 46, "smarter": 46, "preserv": 46, "flat": 46, "grei": 46, "red": 46, "traj": 46, "time_from_start": 46, "splice": 46, "held": [46, 47], "smooth": [46, 58], "longer": 46, "effect": 46, "Of": 46, "interest": 46, "adolfo": [46, 47], "rodriguez": [46, 47], "instant": 47, "citat": 47, "adapt": 47, "restrict": 47, "robust": 47, "clock": 47, "queu": 47, "preempt": 47, "cancel": 47, "notifi": 47, "abort": 47, "legal": 47, "subset": 47, "favor": 47, "violat": 47, "joint_trajectori": 47, "fire": 47, "sender": 47, "query_st": 47, "controller_st": [47, 48, 52], "cumbersom": 47, "jointtrajectorycontrollerst": 47, "querytrajectoryst": 47, "footnot": 47, "pidro": 48, "control_toolbox": [48, 58], "pd": 48, "theoret": 48, "misus": 48, "pid_control": 48, "pidcontrol": 48, "reference_and_state_dof_nam": 48, "reference_and_state_interfac": 48, "dof_nam": 48, "in_chained_mod": [48, 52], "multidofcommand": 48, "use_external_measured_st": 48, "measured_st": 48, "set_feedforward_control": 48, "std_srv": 48, "setbool": 48, "multidofstatestamp": 48, "antiwindup": 48, "i_clamp_max": 48, "i_clamp_min": 48, "feedforward_gain": 48, "rangesensor": 50, "radiation_typ": 50, "radiat": 50, "ultrason": 50, "infrar": 50, "field_of_view": 50, "arc": 50, "rad": [50, 52], "min_rang": 50, "minimum": 50, "max_rang": 50, "maximum": 50, "varianc": 50, "range_sensor_broadcast": 50, "test_range_sensor_broadcast": 50, "mendatori": 50, "range_sensor": 50, "range_sensor_fram": 50, "rqt": 51, "nomenclatur": 52, "unstamp": 52, "concret": 52, "tricylc": 52, "seer": 52, "front_steer": 52, "front_wheels_nam": 52, "rear_wheels_nam": 52, "traction_feedback_typ": 52, "reference_unstamp": 52, "steeringcontrollerstatu": 52, "reference_timeout": 52, "unwant": 52, "danger": 52, "behaviour": 52, "rear_wheels_state_nam": 52, "front_wheels_state_nam": 52, "number": 52, "averag": 52, "diagon": 52, "trail": 53, "axl": 53, "traction_joint_nam": 53, "steering_joint_nam": 53, "odom_only_twist": 53, "millisecond": 53, "500": 53, "publish_ackermann_command": 53, "old": 53, "max_deceler": 53, "min_deceler": 53, "max_posit": 53, "min_posit": 53, "wheel_track": 54, "isaac": 56, "webot": 56, "canopen": 57, "ethercat": 57, "svh": 57, "finger": 57, "dimens": 57, "haptic": 57, "hoverboard": 57, "ndi": 57, "odriv": 57, "pca9685": 57, "bit": 57, "pwm": 57, "servo": 57, "clearpath": 57, "huski": 57, "a200": 57, "jackal": 57, "j100": 57, "warthog": 57, "w200": 57, "flexiv": 57, "rizon": 57, "husarion": 57, "rosbot": 57, "2r": 57, "pro": 57, "xl": 57, "openmanipul": 57, "igu": 57, "commonplac": 57, "pmb2": 57, "tiago": 57, "xarm": 57, "egm": 57, "iiqka": 57, "eci": 57, "sunris": 57, "kss": 57, "iiwa": 57, "lbr": 57, "med": 57, "mitsubishi": 57, "rv1a": 57, "overcom": 58, "idea": 58, "wide": 58, "toolkit": 58, "unreleas": 58, "question": 58, "wg": 58, "wednesdai": 58, "announc": 58, "discours": 58, "googl": 58, "bug": 58, "tracker": 58, "reproduc": 58, "regard": 58, "built": 58, "gmt": 58}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 18, 58], "process": [1, 10], "merg": 1, "write": [1, 13, 16, 30, 38], "document": [1, 9, 11, 58], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 12], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 10, 12, 13, 14, 16, 30, 41, 44, 47], "class": [2, 9], "interfac": [2, 4, 14, 15, 17, 21, 26, 30, 31, 34, 36, 39, 41, 44, 47, 48, 49, 52, 55], "control": [2, 3, 4, 5, 6, 9, 10, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 37, 38, 39, 41, 42, 47, 48, 49, 52, 55, 56], "": [2, 36, 47, 48, 52], "access": 2, "migrat": [2, 13], "guid": 2, "ros2_control": [2, 3, 5, 6, 7, 8, 11, 14, 18, 30, 34, 37, 58], "robothardwar": 2, "compon": [2, 4, 6, 12, 13, 15, 16], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 18], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 18], "run": [3, 4, 5, 18], "demo": [3, 5, 6, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 30], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 9, 10, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 38, 47, 48], "mimic": [3, 5], "joint": [3, 5, 14, 15, 47], "simul": [3, 5, 32, 56], "plugin": [3, 5, 30], "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, 18], "binari": 4, "packag": [4, 18], "from": [4, 6, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 48, 52, 57], "sourc": [4, 18], "architectur": 4, "manag": [4, 9, 10], "resourc": [4, 7, 9], "user": 4, "descript": [4, 30, 36, 47, 48, 52], "framework": 4, "robot": [4, 7, 18, 21, 24, 26, 27, 28, 29, 30, 31, 37, 57], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "mission": 6, "support": [6, 57], "semant": 6, "featur": [6, 11, 36, 47, 53], "pariti": 6, "present": 7, "2023": [7, 8], "10": [7, 21], "18": 7, "roscon": [7, 8], "workshop": [7, 8], "steroid": [7, 8], "02": 7, "ro": [7, 34, 36, 39, 41, 49, 55, 56], "meetup": 7, "munich": 7, "5": [7, 28], "2022": 7, "12": [7, 23], "industri": [7, 21, 27, 28, 31], "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, 23], "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, 36], "close": 9, "remark": 9, "determin": 10, "paramet": [10, 15, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 52, 53, 54, 55], "helper": 10, "script": 10, "spawner": 10, "unspawn": 10, "concept": [10, 11], "restart": 10, "all": 10, "api": 11, "updat": 12, "rate": 12, "By": 12, "count": 12, "loop": 12, "measur": 12, "elaps": 12, "time": 12, "guidelin": [13, 37], "best": [13, 37], "practic": [13, 37], "handl": 13, "error": 13, "happen": 13, "dure": 13, "read": 13, "call": 13, "foxi": 13, "newer": 13, "version": 13, "type": [14, 41, 44, 47], "sensor": [14, 27, 28, 40, 43, 50], "gpio": [14, 21], "exampl": [14, 18, 20, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 42, 43, 44, 45, 46, 50], "mock": 15, "gener": 15, "system": 15, "per": 15, "extern": [16, 28, 38], "refer": [16, 34, 36, 38, 47, 48, 52], "command": [17, 34, 44, 47, 48, 52, 53], "line": 17, "list_control": 17, "list_controller_typ": 17, "list_hardware_compon": 17, "list_hardware_interfac": 17, "load_control": 17, "reload_controller_librari": 17, "set_controller_st": 17, "switch_control": 17, "unload_control": 17, "view_controller_chain": 17, "what": 18, "you": 18, "can": 18, "find": 18, "thi": [18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "goal": 18, "overview": [18, 30], "local": 18, "debian": 18, "docker": 18, "view": 18, "quick": 18, "hint": 18, "1": [20, 47], "rrbot": [20, 23, 32], "step": [20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "file": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 42, 43, 44, 45, 50], "carlikebot": 22, "14": 24, "modular": [24, 29], "actuat": [24, 29], "provid": 24, "state": [24, 34, 47, 48, 52], "diffbot": 25, "3": 26, "multipl": 26, "4": 27, "integr": [27, 56], "connect": 28, "6": 29, "separ": 29, "commun": [29, 56, 57, 58], "each": 29, "7": 30, "full": 30, "6dof": 30, "geometri": 30, "cmake": 30, "librari": 30, "launch": 30, "8": 31, "an": [31, 42, 43, 44, 45, 50], "expos": 31, "transmiss": 31, "9": 32, "ackermann_steering_control": 33, "admitt": 34, "2": [34, 36, 39, 41, 49, 55], "topic": [34, 39, 41, 49, 55], "bicycle_steering_control": 35, "diff_drive_control": 36, "other": [36, 37, 47, 53], "feedback": 36, "subscrib": [36, 47, 48, 52], "publish": [36, 47, 48, 52], "mobil": 37, "manipul": 37, "broadcast": [37, 40, 43, 50], "common": 37, "new": 38, "effort_control": 39, "jointgroupeffortcontrol": 39, "forc": 40, "torqu": 40, "forward_command_control": 41, "gripper": 42, "action": [42, 47], "list": [42, 43, 44, 45, 50], "imu": 43, "joint_state_broadcast": 44, "detail": 45, "about": 45, "trajectori": [46, 47], "represent": 46, "interpol": 46, "method": 46, "none": 46, "spline": 46, "visual": 46, "replac": 46, "joint_trajectory_control": 47, "preemption": 47, "polici": 47, "servic": [47, 48], "further": 47, "inform": 47, "pid": 48, "execut": [48, 52], "logic": [48, 52], "preced": [48, 52], "position_control": 49, "jointgrouppositioncontrol": 49, "rang": 50, "rqt_joint_trajectory_control": 51, "steering_controllers_librari": 52, "tricycle_control": 53, "veloc": 53, "tricycle_steering_control": 54, "velocity_control": 55, "jointgroupvelocitycontrol": 55, "host": 56, "protocol": 57, "end": 57, "effector": 57, "non": 57, "devic": 57, "offici": 57, "manufactur": 57, "unoffici": 57, "welcom": 58, "develop": 58, "organis": 58}, "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"]], "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"], [18, "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"], [13, "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"], [15, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [36, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [44, "parameters"], [48, "parameters"], [49, "parameters"], [50, "parameters"], [52, "parameters"], [53, "parameters"], [54, "parameters"], [55, "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"]], "Different update rates for Hardware Components": [[12, "different-update-rates-for-hardware-components"]], "By counting loops": [[12, "by-counting-loops"]], "By measuring elapsed time": [[12, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[13, "guidelines-and-best-practices"], [37, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[13, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[13, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[14, "ros2-control-hardware-interface-types"]], "Joints": [[14, "joints"]], "Sensors": [[14, "sensors"]], "GPIOs": [[14, "gpios"]], "Examples": [[14, "examples"], [18, "examples"]], "Mock Components": [[15, "mock-components"]], "Generic System": [[15, "generic-system"]], "Per-joint Parameters": [[15, "per-joint-parameters"]], "Per-interface Parameters": [[15, "per-interface-parameters"]], "Writing a Hardware Component": [[16, "writing-a-hardware-component"]], "Useful External References": [[16, "useful-external-references"], [38, "useful-external-references"]], "Command Line Interface": [[17, "command-line-interface"]], "list_controllers": [[17, "list-controllers"]], "list_controller_types": [[17, "list-controller-types"]], "list_hardware_components": [[17, "list-hardware-components"]], "list_hardware_interfaces": [[17, "list-hardware-interfaces"]], "load_controller": [[17, "load-controller"]], "reload_controller_libraries": [[17, "reload-controller-libraries"]], "set_controller_state": [[17, "set-controller-state"]], "switch_controllers": [[17, "switch-controllers"]], "unload_controller": [[17, "unload-controller"]], "view_controller_chains": [[17, "view-controller-chains"]], "Demos": [[18, "demos"]], "What you can find in this repository": [[18, "what-you-can-find-in-this-repository"]], "Goals": [[18, "goals"]], "Examples Overview": [[18, "examples-overview"]], "Local installation": [[18, "local-installation"]], "Build from debian packages": [[18, "build-from-debian-packages"]], "Build from source": [[18, "build-from-source"]], "Using Docker": [[18, "using-docker"]], "To view the robot": [[18, "to-view-the-robot"]], "To run the ros2_control demos": [[18, "to-run-the-ros2-control-demos"]], "Quick Hints": [[18, "quick-hints"]], "Example 1: RRBot": [[20, "example-1-rrbot"]], "Tutorial steps": [[20, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [29, "tutorial-steps"], [31, "tutorial-steps"], [32, "tutorial-steps"]], "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"], [25, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [29, "files-used-for-this-demos"], [31, "files-used-for-this-demos"], [32, "files-used-for-this-demos"]], "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"], [28, "controllers-from-this-demo"], [29, "controllers-from-this-demo"], [31, "controllers-from-this-demo"], [32, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[21, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[22, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[23, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[24, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[25, "diffbot"]], "Example 3: Robots with multiple interfaces": [[26, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[27, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[27, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[28, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[29, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[30, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[30, "ros2-control-overview"]], "Writing a URDF": [[30, "writing-a-urdf"]], "Geometry": [[30, "geometry"]], "URDF file": [[30, "urdf-file"]], "Writing a hardware interface": [[30, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[30, "plugin-description-file-hardware"]], "CMake library (hardware)": [[30, "cmake-library-hardware"]], "Writing a controller": [[30, "writing-a-controller"]], "Plugin description file (controller)": [[30, "plugin-description-file-controller"]], "CMake library (controller)": [[30, "cmake-library-controller"]], "Launching the example": [[30, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[31, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[32, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[33, "ackermann-steering-controller"]], "Admittance Controller": [[34, "admittance-controller"]], "ROS 2 interface of the controller": [[34, "ros-2-interface-of-the-controller"], [39, "ros-2-interface-of-the-controller"], [41, "ros-2-interface-of-the-controller"], [49, "ros-2-interface-of-the-controller"], [55, "ros-2-interface-of-the-controller"]], "Topics": [[34, "topics"], [39, "topics"], [41, "topics"], [49, "topics"], [55, "topics"]], "ros2_control interfaces": [[34, "ros2-control-interfaces"]], "References": [[34, "references"], [36, "references"], [47, "references"]], "States": [[34, "states"], [47, "states"], [48, "states"], [52, "states"]], "Commands": [[34, "commands"], [44, "commands"], [47, "commands"], [48, "commands"], [52, "commands"]], "bicycle_steering_controller": [[35, "bicycle-steering-controller"]], "diff_drive_controller": [[36, "diff-drive-controller"]], "Other features": [[36, "other-features"], [47, "other-features"], [53, "other-features"]], "Description of controller\u2019s interfaces": [[36, "description-of-controller-s-interfaces"], [47, "description-of-controller-s-interfaces"], [48, "description-of-controller-s-interfaces"], [52, "description-of-controller-s-interfaces"]], "Feedback": [[36, "feedback"]], "Output": [[36, "output"]], "ROS 2 Interfaces": [[36, "ros-2-interfaces"]], "Subscribers": [[36, "subscribers"], [48, "subscribers"], [52, "subscribers"]], "Publishers": [[36, "publishers"], [47, "publishers"], [48, "publishers"], [52, "publishers"]], "ros2_controllers": [[37, "ros2-controllers"]], "Controllers for Mobile Robots": [[37, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[37, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[37, "broadcasters"]], "Common Controller Parameters": [[37, "common-controller-parameters"]], "Writing a new controller": [[38, "writing-a-new-controller"]], "effort_controllers": [[39, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[39, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[40, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[41, "forward-command-controller"]], "Hardware interface type": [[41, "hardware-interface-type"], [44, "hardware-interface-type"]], "Gripper Action Controller": [[42, "gripper-action-controller"]], "List of parameters": [[42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [45, "list-of-parameters"], [50, "list-of-parameters"]], "An example parameter file": [[42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [45, "an-example-parameter-file"], [50, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[43, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[44, "joint-state-broadcaster"]], "Details about parameters": [[45, "details-about-parameters"]], "Trajectory Representation": [[46, "trajectory-representation"]], "Interpolation Method none": [[46, "interpolation-method-none"]], "Interpolation Method spline": [[46, "interpolation-method-spline"]], "Visualized Examples": [[46, "visualized-examples"]], "Trajectory Replacement": [[46, "trajectory-replacement"]], "joint_trajectory_controller": [[47, "joint-trajectory-controller"]], "Hardware interface types": [[47, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[47, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[47, "preemption-policy"]], "Actions 1": [[47, "actions"]], "Subscriber 1": [[47, "subscriber"]], "Services": [[47, "services"], [48, "services"]], "Further information": [[47, "further-information"]], "PID Controller": [[48, "pid-controller"]], "Execution logic of the controller": [[48, "execution-logic-of-the-controller"], [52, "execution-logic-of-the-controller"]], "Using the controller": [[48, "using-the-controller"]], "References (from a preceding controller)": [[48, "references-from-a-preceding-controller"], [52, "references-from-a-preceding-controller"]], "position_controllers": [[49, "position-controllers"]], "position_controllers/JointGroupPositionController": [[49, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[50, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[51, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[52, "steering-controllers-library"]], "tricycle_controller": [[53, "tricycle-controller"]], "Velocity commands": [[53, "velocity-commands"]], "tricycle_steering_controller": [[54, "tricycle-steering-controller"]], "velocity_controllers": [[55, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[55, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[56, "simulator-integrations"]], "Hosted by ros-controls": [[56, "hosted-by-ros-controls"]], "Community": [[56, "community"]], "Supported Robots": [[57, "supported-robots"]], "Communication protocols": [[57, "communication-protocols"]], "End-effectors": [[57, "end-effectors"]], "Non robot-devices": [[57, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[57, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[57, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation!": [[58, "welcome-to-the-ros2-control-documentation"]], "ros2_control Repositories": [[58, "ros2-control-repositories"]], "Development Organisation and Communication": [[58, "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/different_update_rates_userdoc", "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_11/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/different_update_rates_userdoc.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_11/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", "Different update rates for Hardware Components", "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", "CarlikeBot", "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, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 58], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 45, 46, 47, 48, 49, 54, 55, 58], "peopl": [0, 1], "were": [0, 6, 30, 36, 46, 47], "ros2_control": [0, 1, 4, 10, 12, 13, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 36, 38, 56], "framework": [0, 1, 2, 6, 7, 8, 10, 11, 13, 14, 15, 17, 18, 30, 37, 38, 44, 58], "show": [0, 1, 3, 4, 5, 7, 8, 10, 13, 14, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 46], "review": [0, 1, 6, 58], "activ": [0, 1, 2, 3, 4, 5, 10, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 44, 45, 47, 48], "contribut": [0, 4, 7], "recent": [0, 16, 38], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 38, 40, 42, 43, 44, 45, 46, 47, 50, 57], "time": [0, 1, 2, 6, 7, 8, 10, 15, 17, 18, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 38, 40, 45, 46, 47, 58], "contrib": 0, "dure": [0, 18, 30, 45, 47], "past": [0, 46], "12": [0, 18, 57], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 45], "line": [0, 4, 11, 13, 16, 20, 30, 38, 44, 46], "chang": [0, 1, 2, 4, 7, 10, 13, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 45, 46, 47, 50], "last": [0, 12, 13, 16, 30, 34, 38, 45, 46, 47], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "363": 0, "51190": 0, "2024": [0, 58], "01": [0, 22, 34, 36, 42, 45, 47, 53], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7, 8], "magyar": [0, 6, 7, 8], "bmagyar": [0, 8], "149": 0, "9074": 0, "2023": 0, "11": [0, 18], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 7], "deni": [0, 6, 7, 8], "destogl": [0, 36], "49": 0, "5851": 0, "09": 0, "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 12], "02": [0, 36, 58], "23": [0, 4, 34], "03": [0, 22, 47], "25": 0, "58": 0, "utc": 0, "367": 0, "77026": 0, "2022": 0, "10": [0, 3, 5, 18, 26, 34, 36, 50, 52, 53], "01t10": 0, "36": 0, "22z": 0, "383": 0, "59375": 0, "663": 0, "57955": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 12, 38], "finish": 0, "rate": [0, 11, 13, 22, 25, 36, 37, 45, 46, 47], "563": 0, "409": 0, "0": [0, 3, 4, 5, 9, 12, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54], "73": 0, "22t14": 0, "13": [0, 8, 18], "31z": 0, "199": 0, "176": 0, "88": 0, "22t07": 0, "34z": 0, "468": 0, "122": 0, "26": 0, "02t15": 0, "11z": 0, "1367": 0, "1107": 0, "81": [0, 6, 34], "1091": 0, "591": 0, "54": 0, "214": [0, 34], "191": 0, "89": 0, "have": [0, 1, 2, 4, 6, 8, 9, 10, 13, 14, 15, 16, 18, 20, 23, 25, 26, 30, 32, 33, 34, 35, 37, 38, 44, 45, 47, 48, 54], "develop": [0, 1, 7, 15, 16, 18, 38], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 30, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58], "project": [0, 1, 58], "provid": [0, 3, 4, 5, 6, 7, 9, 10, 14, 15, 16, 18, 20, 23, 26, 27, 28, 29, 30, 31, 32, 34, 38, 44, 45, 46, 47, 52, 58], "valuabl": 0, "submit": [0, 1, 7, 56, 57], "pull": [0, 8, 16], "request": [0, 2, 16, 30, 44, 58], "see": [0, 1, 2, 4, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 40, 43, 45, 47, 50, 52, 54], "more": [0, 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 47, 54], "inform": [0, 3, 5, 9, 15, 16, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 38, 58], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "41": 0, "8571": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 12, 14, 15, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 36, 38, 42, 45, 46, 50, 52], "5774": 0, "05": [0, 34, 47, 58], "26t21": 0, "34": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "27z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "46": 0, "2345": 0, "23t14": 0, "40": [0, 36], "39z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 8, 18, 34, 43], "2043": 0, "06": 0, "01t07": 0, "45": [0, 15], "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "14": [0, 18, 52, 57], "1159": 0, "16t15": 0, "21": [0, 52], "48z": 0, "none": [0, 9, 38, 44, 45, 47], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 47, 52, 57, 58], "888": 0, "07t00": 0, "17": [0, 8], "30z": 0, "guihom": 0, "guihomework": 0, "3": [0, 3, 4, 5, 6, 14, 15, 17, 18, 20, 23, 24, 25, 27, 28, 29, 30, 31, 34, 46, 47, 48], "718": 0, "08t10": 0, "30": [0, 3, 5, 22, 25], "alex": 0, "moriarti": 0, "5": [0, 16, 18, 20, 21, 23, 24, 26, 27, 29, 30, 31, 32, 34, 36, 46, 52, 57], "581": 0, "07t20": 0, "00z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "548": 0, "11t18": 0, "52z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "437": 0, "21t14": 0, "43z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 6], "09t10": 0, "21z": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": [0, 7, 8, 58], "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "200": 0, "22t09": 0, "27": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "15": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "16": [0, 57], "41z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "bijoua29": 0, "83": 0, "19t22": 0, "02z": 0, "bailac": 0, "68": 0, "08t11": 0, "49z": 0, "olivi": 0, "stass": 0, "26t02": 0, "31": [0, 58], "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "04": [0, 8, 10], "27t11": 0, "silvio": 0, "traversaro": 0, "4": [0, 14, 18, 22, 24, 26, 28, 31, 34, 50], "43": [0, 4, 14, 25], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "35": [0, 52], "27t20": 0, "28": [0, 52], "roni": 0, "kreinin": 0, "28t16": 0, "15z": 0, "robotgir": 0, "28t17": 0, "wiktor": 0, "bajor": 0, "99": [0, 10], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "andyz": 0, "20": [0, 8, 22, 42, 45, 47], "50": [0, 4, 10, 25, 36], "37z": 0, "bordallo": 0, "greatalexand": 0, "19": 0, "10t22": 0, "mosfet80": 0, "14t06": 0, "toni": [0, 7], "najjar": [0, 7], "tonynajjar": 0, "24t20": 0, "55": 0, "36z": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "8": [0, 18, 34], "17t10": 0, "38z": 0, "daniel": 0, "azanov": 0, "muritan": 0, "16t21": 0, "baltovski": 0, "tonybaltovski": 0, "7": [0, 7, 8, 18, 21, 25, 34, 50, 52, 57], "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 18, 20, 30, 34], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "02t12": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "52": [0, 50], "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 10, 14, 16, 17, 20, 30], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "47": 0, "03z": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "stephani": 0, "eng": 0, "14t17": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "04t10": 0, "00": [0, 8], "45z": 0, "g": [0, 1, 2, 3, 4, 5, 6, 7, 9, 10, 14, 15, 16, 18, 20, 21, 23, 24, 26, 27, 28, 29, 30, 31, 34, 38, 39, 44, 49, 52, 55, 58], "A": [0, 4, 7, 14, 16, 18, 27, 28, 37, 38, 44, 46, 47], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "33z": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "david": 0, "v": [0, 17, 27, 34, 45], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "max": [0, 3, 4, 5, 14, 30, 42], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "19z": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "220": 0, "20630": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "22": [0, 8, 10], "10393": 0, "15t18": 0, "51": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "8640": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "3906": 0, "29t19": 0, "06z": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "3260": 0, "19t13": 0, "59": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "48": [0, 3, 5], "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "1275": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "55z": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "56z": 0, "970": 0, "21t01": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "04z": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 18, 20, 32, 34, 45, 48], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": [0, 48], "rosal": 0, "carlosjoserg": 0, "268": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "19t21": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "186": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "125": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "70": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "dirk": 0, "thoma": [0, 1], "2012": 0, "14t02": 0, "26z": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "26t09": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 8, 30], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 10, 17, 21, 30, 32], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "114": 0, "93": 0, "87": 0, "108": 0, "15t12": 0, "22t22": 0, "01t22": 0, "92": 0, "19t20": 0, "07z": 0, "01t20": 0, "16t12": 0, "13t18": 0, "105": 0, "22t06": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "11t12": 0, "67": 0, "17t15": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "91": 0, "13t11": 0, "110": 0, "28t09": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "80": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "15t14": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "31t15": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "97": 0, "101": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "74": 0, "andr": 0, "montano": 0, "anfemosa": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 22, 25, 27, 28, 30, 34, 36, 40, 43, 52, 53, 57], "mrl1kor": 0, "malapatiravi": 0, "60": 0, "adam": 0, "serafin": 0, "serafadam": 0, "126": 0, "118": 0, "63": 0, "07t16": 0, "90": [0, 30], "14t09": 0, "183": 0, "78": 0, "96": 0, "23t02": 0, "156": 0, "79": 0, "10t19": 0, "197": 0, "189": 0, "27t13": 0, "168": 0, "158": 0, "172": 0, "30t19": 0, "25t01": 0, "69": 0, "14t18": 0, "25t18": 0, "07t07": 0, "01t03": 0, "134": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "26t15": 0, "39": 0, "132": 0, "147": 0, "05t22": 0, "19t23": 0, "chri": 0, "thrasher": 0, "christhrash": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "175": [0, 6], "23t22": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "133": 0, "21t11": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "21t13": 0, "13t16": 0, "ken551": 0, "03t11": 0, "05t14": 0, "27t18": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 22, 25, 27, 28, 30, 34, 36, 40, 43, 52, 53], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 12, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38, 44, 45, 46, 48], "receiv": [0, 2, 30, 46], "major": [0, 43], "from": [0, 1, 2, 7, 8, 9, 10, 12, 15, 16, 17, 19, 30, 34, 36, 37, 38, 39, 40, 43, 45, 46, 47, 49, 50, 53, 55, 58], "support": [0, 2, 3, 4, 5, 7, 15, 16, 17, 30, 34, 38, 44, 46, 47, 52, 56, 58], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 8, 10, 12, 14, 15, 17, 18, 20, 21, 22, 25, 26, 27, 28, 29, 30, 31, 32, 37, 38, 46, 47, 58], "industri": [0, 4, 6, 8, 18, 57], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 10, 12, 14, 20, 22, 23, 25, 32, 34, 36, 40, 44, 52, 53, 58], "softwar": [0, 4, 30], "compon": [0, 7, 10, 11, 14, 17, 18, 24, 25, 26, 27, 28, 29, 30, 34, 36, 37, 40, 43, 50, 52, 53, 58], "http": [0, 1, 4, 6, 8, 12, 18, 30, 33, 35, 54], "www": [0, 12], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 9, 10, 12, 16, 17, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 38, 40, 43, 45, 46, 50, 53, 54, 58], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 16, 23, 38, 46, 47, 52, 58], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 9, 12, 13, 16, 18, 30, 32, 38, 46, 48], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 10, 12, 13, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 38, 47, 48, 58], "consid": [1, 17, 36, 45, 48, 53], "As": [1, 9, 14, 16, 20, 30, 36, 38], "an": [1, 2, 3, 4, 5, 6, 7, 9, 14, 15, 16, 17, 18, 20, 22, 23, 25, 28, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 47, 49, 52, 53, 54, 55], "open": [1, 8, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 44, 45, 52], "sourc": [1, 3, 5, 7, 8, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38], "we": [1, 3, 5, 6, 7, 8, 9, 13, 18, 20, 22, 23, 25, 30, 31, 32, 44], "welcom": 1, "each": [1, 4, 6, 9, 10, 13, 14, 16, 18, 20, 24, 30, 33, 34, 44, 52, 54], "contributor": 1, "regardless": 1, "background": [1, 18], "experi": 1, "To": [1, 2, 4, 9, 10, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 44, 46, 56, 57, 58], "reduc": [1, 15], "entropi": 1, "univers": [1, 7, 30, 57], "our": [1, 3, 4, 5, 6, 7, 18, 20, 30], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 18], "set": [1, 2, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 20, 22, 30, 34, 36, 37, 39, 44, 45, 46, 47, 49, 50, 52, 53, 55], "up": [1, 7, 8, 16, 18, 46], "some": [1, 3, 5, 6, 7, 12, 18, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 44, 45, 47, 58], "standard": [1, 2, 6, 7, 10, 16, 17, 24, 29, 30, 40, 44], "method": [1, 2, 4, 9, 10, 12, 13, 16, 30, 38, 52], "requir": [1, 2, 4, 6, 16, 30, 34, 38, 39, 47, 49, 55], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 40, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 58], "limit": [1, 3, 5, 7, 10, 18, 30, 36, 53], "scope": 1, "your": [1, 2, 7, 8, 10, 12, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 35, 36, 38, 53, 56, 57, 58], "pr": [1, 56, 57], "should": [1, 2, 3, 5, 6, 7, 9, 10, 12, 13, 16, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 44, 46, 47, 48, 53], "do": [1, 2, 4, 6, 7, 9, 10, 16, 18, 34, 38, 47, 48, 53], "one": [1, 2, 4, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 39, 40, 44, 45, 46, 47, 48, 49, 52, 54, 55, 58], "thing": [1, 3, 5, 8, 10, 18], "avoid": [1, 20, 22, 24, 25, 26, 27, 28, 29, 31, 38], "ad": [1, 3, 5, 6, 10, 15, 16, 22, 23, 25, 30, 36, 38, 44], "random": [1, 24, 26, 27, 28, 29], "fix": [1, 2, 22, 30, 33, 35, 54], "put": [1, 16, 38], "those": [1, 2, 4, 6, 9, 15, 16, 18, 30, 38, 40, 44, 45, 46, 50], "separ": [1, 2, 4, 18, 24, 36, 44, 53], "give": [1, 7, 10, 18, 20, 25, 26, 46, 58], "descript": [1, 2, 7, 10, 13, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 38, 40, 42, 43, 44, 45, 50], "titl": 1, "add": [1, 2, 9, 10, 12, 13, 16, 30, 33, 34, 35, 38, 54, 56, 57], "short": [1, 38, 58], "summari": [1, 7, 58], "make": [1, 2, 5, 6, 7, 23, 30, 42, 58], "sure": [1, 5, 6, 20, 23, 24, 25, 26, 27, 28, 29, 31, 58], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 58], "green": [1, 46], "don": [1, 3, 8, 9, 25, 45, 47], "t": [1, 3, 5, 8, 9, 10, 18, 25, 45, 46, 47, 48], "afraid": 1, "maintain": [1, 4, 6, 9, 18, 46], "new": [1, 7, 8, 9, 16, 20, 23, 26, 30, 37, 46, 58], "code": [1, 2, 4, 6, 7, 16, 30], "test": [1, 3, 6, 15, 16, 18, 20, 25, 32, 33, 34, 35, 36, 38, 40, 43, 50, 52, 54], "If": [1, 2, 4, 7, 8, 9, 10, 13, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 40, 44, 45, 46, 47, 48, 52, 53, 58], "function": [1, 2, 6, 7, 8, 23, 30, 34, 48, 52], "alwai": [1, 30], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 20, 30, 46, 47], "intent": [1, 9, 15], "section": [1, 2, 12, 14, 16, 38, 47], "target": [1, 10, 16, 34, 38, 41, 45, 47], "also": [1, 2, 3, 4, 5, 6, 7, 9, 10, 15, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 38, 47, 48], "read": [1, 2, 3, 4, 5, 10, 12, 14, 16, 18, 23, 24, 27, 28, 30, 34, 38, 44, 45, 48, 50, 52], "understand": [1, 6, 46], "how": [1, 6, 7, 14, 16, 18, 21, 22, 23, 24, 26, 27, 28, 29, 30, 32, 38, 53], "handl": [1, 2, 4, 6, 7, 16, 27, 30, 33, 34, 35, 36, 40, 41, 42, 43, 44, 45, 47, 48, 50, 52, 53, 54], "organ": [1, 7, 58], "guidelin": 1, "especi": [1, 2, 18, 52], "applic": [1, 4, 7, 8, 10, 14, 30], "ros2_control_demo": [1, 4, 18, 20, 30, 32, 58], "pleas": [1, 10, 29, 36, 58], "keep": [1, 30, 38], "mind": [1, 38], "work": [1, 6, 7, 9, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 38, 39, 44, 49, 53, 55, 58], "fork": 1, "when": [1, 2, 3, 4, 5, 7, 8, 9, 10, 15, 16, 17, 23, 26, 30, 34, 36, 37, 38, 42, 45, 47, 48, 52, 53], "That": [1, 16, 38], "wai": [1, 10, 12, 16, 30, 38, 40, 47], "main": [1, 4, 6, 7, 10, 12, 15, 30, 38, 52, 58], "repo": [1, 4, 8, 18], "clean": 1, "featur": [1, 7, 15, 18, 20, 31, 52, 58], "branch": [1, 18], "check": [1, 2, 4, 6, 9, 13, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 46, 47, 50, 54, 58], "satisfi": 1, "befor": [1, 2, 9, 10, 16, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 38, 45, 46], "thei": [1, 2, 4, 6, 7, 9, 14, 15, 16, 17, 23, 37, 38, 45, 47, 52], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 38, 40, 41, 43, 46, 47, 48, 50, 52, 58], "must": [1, 3, 5, 9, 10, 14, 18, 30, 34, 43, 45, 47], "approv": 1, "two": [1, 4, 6, 9, 10, 16, 18, 20, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 40, 46, 47, 48, 52, 53, 54], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 9, 10, 13, 16, 17, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 35, 36, 38, 39, 40, 44, 45, 46, 47, 48, 49, 52, 55], "except": [1, 30], "other": [1, 2, 3, 4, 7, 9, 16, 18, 24, 29, 30, 33, 35, 38, 44, 46, 52, 54], "where": [1, 3, 6, 8, 9, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 33, 35, 36, 38, 44, 45, 46, 47, 48, 52, 54], "back": 1, "traceabl": 1, "discuss": [1, 7, 8, 23, 32, 46, 58], "suffici": [1, 3, 5, 9, 40], "note": [1, 4, 10, 15, 20, 47, 48, 58], "still": [1, 2, 20, 23, 24, 25, 26, 27, 28, 29, 31, 37, 46], "encourag": 1, "help": [1, 10, 12, 15, 16, 17, 36, 38], "u": [1, 3, 5, 10, 18, 45], "increas": [1, 25, 48], "pace": 1, "veri": [1, 2, 3, 5, 6, 14], "like": [1, 2, 3, 4, 5, 6, 7, 8, 16, 22, 23, 30], "find": [1, 3, 5, 12, 25], "issu": [1, 6, 7, 8, 58], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 10, 17, 26, 27, 28, 30, 36, 40, 43, 44, 45, 46, 47, 50, 52, 53, 58], "comment": [1, 30], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 8, 12, 13, 14, 15, 17, 19, 30, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 46, 49, 50, 52, 53, 54, 55, 58], "pre": 1, "correct": [1, 2, 36, 46], "header": [1, 13, 16, 27, 28, 38, 46], "address": [1, 30], "similar": [1, 4, 7, 14, 20, 22, 23, 30], "mean": [1, 2, 9, 14, 15, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36, 46, 47, 53], "result": [1, 4, 9, 10, 20, 30, 44, 46], "exactli": 1, "cowboi": 1, "style": [1, 16, 38], "over": [1, 6, 9, 25, 30], "weekend": 1, "It": [1, 2, 3, 4, 6, 9, 10, 20, 23, 24, 26, 27, 28, 29, 30, 31, 32, 40, 44, 45, 46, 48], "doesn": [1, 9, 48], "matter": 1, "trivial": [1, 15], "chanc": 1, "proper": [1, 9, 10, 47], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 45, 48], "its": [1, 2, 3, 4, 5, 6, 7, 9, 10, 14, 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, 50, 52, 53, 54], "ping": 1, "them": [1, 6, 9, 10, 16, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 38, 44, 46, 57], "necessari": [1, 9, 13], "repeatedli": 1, "start": [1, 2, 3, 5, 7, 9, 10, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36, 38, 45, 46, 53, 58], "part": [1, 6, 7, 14, 30, 38, 46, 47, 48], "For": [1, 3, 4, 5, 6, 7, 9, 10, 13, 15, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 45, 47, 48, 52, 54], "detail": [1, 2, 3, 4, 5, 10, 13, 14, 15, 16, 23, 30, 32, 33, 35, 36, 38, 46, 47, 54], "cokela": 1, "info": [1, 10, 12, 13, 16, 30], "tutori": [1, 18], "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 4, 5, 7, 9, 10, 11, 12, 13, 16, 17, 18, 24, 25, 27, 28, 29, 30, 36, 37, 38, 39, 40, 43, 45, 48, 49, 50, 52, 55], "stabl": 1, "against": 1, "accept": [1, 16, 26, 38, 39, 45, 46, 47, 49, 55], "api": [1, 3, 5, 6, 16, 20, 22, 24, 25, 26, 27, 28, 29, 31], "abi": 1, "e": [1, 2, 3, 4, 5, 6, 7, 9, 10, 14, 15, 16, 18, 20, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 34, 36, 38, 39, 40, 44, 45, 46, 48, 49, 52, 53, 55, 58], "name": [1, 2, 3, 4, 5, 7, 10, 12, 14, 15, 16, 17, 18, 20, 23, 24, 25, 27, 28, 29, 30, 32, 34, 36, 38, 40, 41, 43, 44, 45, 48, 50, 52, 53], "convent": [1, 30], "master": [1, 4, 18, 30], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 36, 53], "same": [1, 8, 9, 12, 26, 30, 37, 40, 45, 46, 47, 48], "build": [1, 8, 16, 30, 34, 38], "dai": 1, "ros_distro": [1, 4, 18, 20], "foxi": [1, 7, 16], "galact": [1, 13, 16], "releas": [1, 4, 7, 18, 30], "version": [1, 6, 8, 12, 18, 47], "non": [1, 7, 23, 30, 40], "brake": 1, "distribut": [1, 18, 58], "three": [1, 2, 4, 13, 14, 18, 30, 38, 46, 54], "stage": [1, 9, 23], "current": [1, 6, 12, 13, 14, 16, 17, 46, 47, 52], "futur": [1, 7, 9, 46, 47], "compat": [1, 2, 7, 16, 18], "packag": [1, 2, 3, 5, 13, 16, 30, 33, 34, 35, 36, 38, 39, 40, 43, 47, 48, 49, 50, 52, 54, 55, 58], "direct": [1, 2, 6, 16, 30, 38, 45], "local": [1, 3, 5, 8, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 44], "possibl": [1, 4, 6, 10, 14, 15, 18, 20, 22, 24, 25, 26, 27, 28, 29, 31, 34, 38, 46], "core": [1, 11, 30], "immedi": [1, 10, 20, 23, 24, 26, 27, 28, 29, 30, 31, 32, 48], "depend": [1, 4, 8, 13, 14, 16, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 37, 38, 46, 48, 52], "fail": [1, 26, 30], "expect": [1, 6, 7, 8, 23, 30, 33, 35, 36, 47, 52, 53, 54], "after": [1, 9, 10, 15, 16, 18, 20, 30, 36, 38, 45, 46, 47, 52, 53], "next": [1, 20, 30, 46], "sync": 1, "abl": 1, "potenti": [1, 7, 8, 38, 45], "mid": 1, "power": [1, 3, 5, 7, 16], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 9, 10, 13, 14, 18, 23, 30, 38, 45, 47], "imposs": 2, "extend": [2, 4, 6, 9, 16, 38], "exist": [2, 4, 6, 7, 8, 9, 10, 13, 14, 16, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 38, 47], "addit": [2, 3, 5, 9, 18, 21, 25, 30], "sensor": [2, 4, 6, 13, 15, 16, 18, 24, 29, 30, 34, 37, 57], "actuat": [2, 4, 6, 13, 14, 15, 16, 18, 23, 53], "tool": [2, 3, 5, 6, 7, 8, 30, 34], "without": [2, 3, 4, 5, 7, 10, 15, 16, 18, 23, 32, 38, 45, 46], "combinedrobothardwar": 2, "drawback": [2, 58], "solut": [2, 7, 8], "optim": [2, 10], "combin": [2, 9, 14, 15, 18, 26, 44, 46, 47, 48], "extern": [2, 4, 6, 9, 15, 18, 34, 48], "defin": [2, 3, 5, 6, 10, 15, 16, 18, 30, 34, 38, 40, 43, 44, 45, 46, 47, 48, 50, 52], "system": [2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 16, 17, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 47, 56, 57, 58], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 16, 18, 25, 38], "physic": [2, 4, 13, 14, 15], "cell": [2, 40], "surround": 2, "describ": [2, 4, 9, 14, 18, 20, 26, 30, 32, 36, 46], "multi": [2, 4, 6, 7, 8, 18, 26], "gripper": [2, 3, 4, 5, 7, 14, 15, 37], "out": [2, 3, 5, 10, 30, 36], "box": [2, 18, 20, 22, 25, 26, 27, 28, 31, 32], "allow": [2, 3, 4, 5, 18, 30, 42, 45, 46, 47, 51], "joint": [2, 4, 7, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 44, 45, 46, 48, 49, 52, 53, 54, 55, 58], "posit": [2, 3, 4, 5, 7, 10, 14, 15, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 37, 39, 44, 45, 46, 47, 48, 49, 52, 55], "veloc": [2, 3, 4, 5, 7, 9, 18, 22, 24, 25, 26, 30, 34, 35, 36, 37, 42, 43, 44, 45, 46, 47, 48, 49, 52, 55], "effort": [2, 3, 5, 18, 30, 37, 39, 42, 44, 45, 47, 48], "hard": [2, 10], "data": [2, 4, 6, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 36, 37, 44, 46, 53], "approach": [2, 9, 12], "doe": [2, 10, 16, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 38, 46, 47], "enforc": [2, 26, 30], "string": [2, 10, 15, 18, 34, 36, 38, 40, 41, 42, 43, 44, 45, 48, 50, 52, 53], "ensur": [2, 7, 10, 30, 46], "constant": [2, 18], "hardware_interfac": [2, 3, 4, 5, 12, 13, 15, 16, 18, 24, 27, 28, 29, 30, 34, 36, 37, 38], "In": [2, 3, 4, 5, 6, 7, 9, 12, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 38, 44, 46, 52], "had": 2, "itself": [2, 9], "took": 2, "care": [2, 6, 10, 16, 26, 38, 47], "regist": [2, 3, 5], "resourc": [2, 3, 5, 16, 26], "conflict": [2, 4, 6], "resourcemanag": [2, 9], "take": [2, 6, 9, 16, 23, 26, 36, 38, 44, 46], "state": [2, 3, 4, 5, 6, 7, 9, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 37, 38, 40, 44, 45], "avail": [2, 4, 7, 9, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 44, 47], "enabl": [2, 4, 6, 7, 13, 16, 17, 18, 25, 34, 36, 40, 48, 52], "anymor": 2, "controllermanag": [2, 10], "implement": [2, 3, 4, 5, 6, 7, 10, 12, 14, 15, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 38, 41, 46, 47, 48, 52, 53, 54, 58], "systeminterfac": [2, 3, 5, 12, 15, 27, 30], "granular": 2, "sensorinterfac": [2, 24, 28], "actuatorinterfac": [2, 24, 29], "abov": [2, 20, 21, 23, 24, 25, 26, 27, 28, 29, 31, 32, 37, 46], "choos": [2, 18, 52], "suitabl": [2, 7], "strategi": [2, 18, 46], "decid": [2, 12], "which": [2, 3, 4, 5, 6, 7, 8, 10, 12, 16, 17, 18, 20, 22, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 37, 38, 40, 43, 44, 45, 46, 47, 50, 52, 53], "case": [2, 3, 5, 6, 7, 9, 18, 23, 30, 38, 44, 46, 47, 58], "mayb": [2, 9], "sens": [2, 4, 37, 40], "multipl": [2, 4, 7, 9, 14, 16, 18, 44], "constructor": [2, 16, 30, 38], "initi": [2, 14, 15, 16, 30, 38, 46], "variabl": [2, 12, 16, 30, 38, 45], "need": [2, 3, 4, 5, 6, 7, 9, 14, 16, 18, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 37, 38, 46, 48], "commun": [2, 4, 6, 7, 12, 16, 18, 20, 22, 24, 25, 26, 27, 28, 30, 31], "default": [2, 4, 9, 10, 15, 22, 26, 33, 34, 35, 36, 38, 40, 41, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54], "configur": [2, 3, 4, 5, 6, 7, 9, 10, 13, 15, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 44, 45, 46, 47, 52], "paramet": [2, 3, 5, 7, 8, 12, 16, 18, 20, 25, 30, 38, 47], "pars": [2, 3, 5, 10, 11, 14], "urdf": [2, 7, 10, 12, 14, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34], "snippet": 2, "hardwareinfo": [2, 12, 30], "here": [2, 11, 16, 30, 38, 39, 47, 49, 55], "cross": [2, 44], "valu": [2, 4, 6, 12, 14, 15, 16, 18, 20, 21, 23, 25, 27, 28, 30, 32, 34, 36, 38, 40, 43, 44, 45, 47, 50, 52, 53], "export_": 2, "_interfac": [2, 16], "joint_a2": 2, "extract": [2, 36, 53], "sensibl": 2, "stop": [2, 7, 9, 10, 13, 17, 20, 25, 26, 30, 36, 45, 53], "usual": [2, 4, 10, 15, 16, 30, 34, 38], "includ": [2, 3, 5, 6, 8, 10, 13, 16, 17, 22, 30, 34, 38, 47, 53, 57], "command": [2, 3, 4, 5, 6, 7, 8, 10, 11, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 41, 42, 45, 46, 49, 51, 54, 55, 58], "safe": [2, 30, 36, 38, 47, 53], "interrupt": [2, 10], "stream": [2, 7], "write": [2, 4, 7, 9, 10, 11, 12, 23, 24, 25, 29, 34, 37, 48], "exchang": [2, 6, 20, 22, 24, 25, 26, 27, 28, 29, 31, 58], "equival": [2, 30], "forget": [2, 4, 18, 47], "pluginlib_export_class": [2, 16, 18, 30, 38], "macro": [2, 4, 12, 16, 18, 30, 38], "end": [2, 4, 13, 16, 30, 34, 38, 45], "cpp": [2, 16, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38], "file": [2, 3, 4, 5, 6, 7, 10, 12, 15, 16, 18, 34, 36, 38, 39, 40, 47, 49, 55], "creat": [2, 3, 4, 5, 7, 10, 15, 16, 18, 22, 30, 38], "xml": [2, 3, 5, 12, 13, 16, 30, 38], "librari": [2, 4, 16, 17, 22, 33, 35, 37, 38, 48, 52, 54], "pluginlib": [2, 3, 4, 5, 10, 16, 30, 38, 48], "exampl": [2, 3, 4, 5, 6, 7, 9, 10, 15, 17, 22, 25, 34, 36, 39, 40, 47, 48, 49, 53, 55, 58], "rrbotsystempositiononlyhardwar": [2, 4, 14, 17, 20, 23, 28], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 17, 20, 34, 47], "real": [2, 6, 7, 10, 15, 25, 38, 44, 45, 58], "critic": [2, 6], "mark": [2, 23], "controllerinterfac": [2, 4, 9, 17, 30, 38], "member": [2, 16, 30, 38, 46], "init": 2, "call": [2, 3, 4, 5, 9, 12, 16, 25, 30, 38], "lifecycl": [2, 4, 7, 10, 13, 16, 30, 37], "declar": [2, 12, 16, 30, 38], "state_interface_configur": [2, 30, 38], "command_interface_configur": [2, 30, 38], "design": [2, 4, 6, 7, 9, 22, 30, 58], "updat": [2, 4, 9, 10, 11, 13, 18, 22, 30, 34, 37, 38, 47, 52], "manag": [2, 3, 5, 6, 7, 11, 13, 16, 17, 18, 30, 38, 47, 58], "option": [2, 3, 5, 10, 13, 14, 15, 16, 17, 20, 26, 34, 36, 37, 38, 40, 44, 47, 48, 52], "on_configur": [2, 16, 30, 38], "on_activ": [2, 12, 13, 16, 30, 38], "on_deactiv": [2, 13, 16, 30, 38], "deactiv": [2, 4, 17, 20, 45], "final": [2, 7, 13, 30], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 15, 18, 23, 25, 30, 45, 46, 47, 48, 53, 58], "architectur": [3, 5, 6, 7, 8], "gazebo": [3, 5, 6, 15, 18, 20, 32, 56], "classic": [3, 15, 18, 32, 56], "instanti": [3, 5, 10], "connect": [3, 4, 5, 15, 18, 27, 30], "model": [3, 5, 20, 22, 30], "cd": [3, 4, 5, 8, 18, 30], "docker": [3, 5, 8, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "gui": [3, 5, 18, 20, 23, 24, 26, 27, 28, 29, 31, 32, 51], "properli": [3, 5, 9, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "rm": [3, 4, 5, 18, 20, 32], "net": [3, 5, 7, 18, 20, 32], "host": [3, 5, 18, 20, 32, 57], "ros2": [3, 4, 5, 7, 10, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38], "launch": [3, 4, 5, 10, 15, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "cart_example_posit": [3, 5], "py": [3, 5, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "fals": [3, 5, 12, 15, 18, 20, 22, 32, 34, 36, 42, 44, 45, 47, 48, 52, 53], "machin": [3, 4, 5, 6, 18, 32], "client": [3, 5, 32, 47], "gzclient": [3, 32], "rocker": [3, 5], "go": [3, 5, 7, 10, 16, 30, 38], "imag": [3, 5, 10, 32], "inject": [3, 5, 7, 8], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 10, 18, 30, 46], "id": [3, 5, 17, 20, 22, 24, 25, 26, 27, 28, 29, 31, 34, 36], "specif": [3, 5, 6, 9, 10, 12, 13, 14, 30, 32, 41, 44, 46, 47], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 10], "instal": [3, 5, 8, 10, 16, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38], "instruct": [3, 5, 8, 25, 30, 32], "x11": [3, 5], "latest": [3, 4, 5, 8], "move": [3, 5, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 36, 42, 53], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 20], "bash": [3, 4, 5, 8, 16, 18, 20, 30, 38], "home": [3, 5], "ros2_w": [3, 4, 5, 18], "example_posit": [3, 5], "element": [3, 5, 30, 34, 45], "access": [3, 4, 5, 7, 10, 15, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 44], "interfac": [3, 5, 6, 7, 9, 10, 11, 13, 16, 18, 20, 22, 23, 24, 25, 27, 28, 29, 32, 33, 35, 37, 38, 40, 43, 45, 46, 50, 54, 56, 57, 58], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 9, 11, 15, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 36, 37, 38, 45, 48, 53, 58], "slider_to_cart": [3, 5, 39, 49, 55], "command_interfac": [3, 4, 5, 14, 23, 30, 34, 45, 47, 48], "param": [3, 4, 5, 10, 12, 14, 15, 25, 30], "min": [3, 4, 5, 14, 30], "1000": [3, 5, 30], "state_interfac": [3, 4, 5, 14, 15, 30, 34, 45, 47], "initial_valu": [3, 5, 14, 15, 30], "mimick": [3, 5, 15], "manual": [3, 4, 5, 6, 10, 16, 18, 20, 26, 27, 28, 29, 31, 32, 38, 58], "multipli": [3, 5, 15], "definit": [3, 4, 5, 10, 16, 30, 34, 36, 37, 38, 40, 42, 43, 44, 45, 50], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 30, 33, 35, 36, 40, 54], "xyz": [3, 5, 30], "rpy": [3, 5, 30], "1415926535": [3, 5], "parent": [3, 5, 16, 30, 36, 38, 53], "link": [3, 4, 5, 7, 9, 13, 30, 34, 37], "base": [3, 4, 5, 7, 13, 16, 17, 18, 22, 24, 25, 29, 30, 34, 36, 38, 41, 52, 53, 56, 57], "child": [3, 5, 14, 30, 36, 53], "finger_left": [3, 5], "lower": [3, 5, 30, 48], "upper": [3, 5, 30, 48], "actual": [3, 5, 9, 36, 53], "load": [3, 4, 5, 10, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38], "appropri": [3, 5, 6, 46], "By": [3, 5, 10, 22, 30, 44, 46], "though": [3, 5, 10, 22, 23], "extens": [3, 5], "via": [3, 4, 5, 18, 20, 27, 28, 30, 32, 47, 57], "between": [3, 4, 5, 6, 13, 14, 18, 30, 33, 35, 36, 44, 45, 46, 47, 48, 53, 54], "filenam": [3, 5, 30], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 9, 10, 16, 30, 34, 38, 47], "robot_param": [3, 5], "robot_descript": [3, 5, 10, 20, 30], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 22, 44], "config": [3, 5, 18], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 8, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 47], "controller_manager_nam": 3, "simulation_controller_manag": 3, "locat": [3, 8, 30, 34, 36, 40, 42, 43, 44, 45, 50], "server": [3, 42, 47], "node": [3, 4, 5, 10, 12, 13, 15, 17, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 53], "hold_joint": [3, 5], "true": [3, 5, 12, 22, 25, 32, 34, 36, 45, 46, 47, 48, 52, 53], "hold": [3, 5, 46], "wa": [3, 5, 6, 8, 16, 20, 25, 26, 30, 38, 46], "claim": [3, 5, 9, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34], "hasn": [3, 5], "been": [3, 5, 23], "yet": [3, 5, 9, 10, 18, 23, 36, 46, 47], "controller_manag": [3, 4, 5, 6, 10, 17, 26, 37, 38, 39, 47, 49, 55], "attempt": [3, 5, 10, 47], "get": [3, 5, 7, 8, 9, 10, 12, 13, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 46, 48, 58], "most": [3, 5, 6, 16, 18, 22, 30, 38], "least": [3, 5, 14, 16, 38, 47], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8, 9], "mechan": [3, 5, 9, 47], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 20, 23, 31], "etc": [3, 5, 10, 26, 30, 34, 58], "These": [3, 5, 18, 30, 36, 42, 53], "inherit": [3, 5, 10, 30], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 10, 23, 24, 29, 39, 46, 49, 55], "properti": [3, 5, 30], "respect": [3, 5, 6, 7, 45, 46, 47], "sub": [3, 5, 22], "class": [3, 4, 5, 7, 10, 13, 16, 17, 30, 38, 41, 46], "specifi": [3, 5, 10, 16, 18, 30, 34, 37, 38, 45, 46, 47, 48], "insid": [3, 5, 15, 18, 20], "joint_state_broadcast": [3, 5, 14, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "publish": [3, 5, 6, 9, 14, 18, 21, 22, 30, 34, 37, 40, 43, 44, 46, 50, 53, 58], "stateinterfac": [3, 5, 30], "topic": [3, 5, 6, 7, 9, 14, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 36, 37, 47, 48, 53, 56], "sensor_msg": [3, 5, 43, 50], "msg": [3, 5, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 36, 39, 40, 41, 43, 46, 47, 48, 49, 50, 52, 55], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 17, 20, 37, 45, 51], "action": [3, 5, 9, 45], "follow_joint_trajectori": [3, 5, 47], "control_msg": [3, 5, 34, 45, 47, 48, 52, 58], "followjointtrajectori": [3, 5, 45, 47], "ros__paramet": [3, 5, 34, 36, 39, 40, 42, 43, 44, 45, 47, 49, 50, 55], "update_r": [3, 5, 10, 37, 39, 49, 55], "100": [3, 4, 12, 14, 39, 49, 55], "hz": [3, 5, 36, 39, 42, 49, 55], "jointstatebroadcast": [3, 5, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "interface_nam": [3, 21, 40, 41], "contain": [3, 8, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34, 36, 39, 40, 42, 43, 44, 45, 46, 48, 49, 50, 52, 55], "content": [3, 16, 30, 38], "There": [3, 4, 5, 10, 13, 16, 18, 22, 24, 27, 28, 29, 38, 46, 47], "meter": [3, 5, 30], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 10, 15, 22, 30, 34], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 14, 15], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 46, 47, 48], "example_gripp": [3, 5], "roll": [4, 8, 18, 30, 36, 53], "want": [4, 8, 9, 10, 18], "download": [4, 18], "repositori": [4, 6, 11, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 36, 37], "mkdir": [4, 8, 18], "p": [4, 8, 10, 18, 45, 48], "src": [4, 8, 16, 18, 20, 30, 32, 34, 36, 38, 40, 42, 43, 44, 45, 50], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 8, 18, 30], "org": [4, 6, 12, 33, 35, 54], "ros_control": [4, 6, 7, 58], "vc": [4, 8, 18], "import": [4, 8, 16, 18, 30, 38, 45], "rosdep": [4, 18], "rosdistro": [4, 18], "sudo": [4, 8, 10, 18], "apt": [4, 8, 10, 18], "path": [4, 7, 18, 30, 47], "ignor": [4, 10, 18, 36, 45, 52, 53], "r": [4, 18, 31], "y": [4, 18, 22, 25, 27, 28, 34, 40, 43], "everyth": [4, 16, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 38], "opt": [4, 8, 18, 20], "setup": [4, 8, 15, 16, 18, 20, 25, 30, 32, 38, 46, 48], "sh": [4, 18, 20, 32], "colcon": [4, 8, 16, 18, 30, 38], "symlink": [4, 8, 18, 30], "folder": [4, 7, 16, 18, 20, 21, 22, 25, 33, 34, 35, 36, 38, 40, 42, 43, 44, 45, 50, 52, 54], "found": [4, 10, 11, 16, 20, 21, 22, 25, 34, 36, 38, 40, 41, 43, 47, 50, 58], "github": [4, 6, 8, 11, 18, 30, 37, 56, 57, 58], "figur": [4, 46], "uml": 4, "diagram": [4, 17], "intern": [4, 6, 9, 12, 14, 16, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 34, 46, 47], "cm": [4, 10], "abstract": [4, 7, 13, 30], "side": [4, 6, 7, 36], "entri": [4, 38], "point": [4, 30, 34, 38, 45, 46, 47, 48, 58], "servic": [4, 6, 10, 13, 30, 37], "executor": [4, 10], "custom": [4, 14, 15, 18, 24, 25, 40, 44, 45, 56], "howev": [4, 6, 9, 10, 18, 23, 30], "recommend": [4, 7, 8, 16, 48], "ros2_control_nod": [4, 26, 30], "assum": [4, 9, 34], "On": [4, 7, 8, 30], "hand": [4, 30, 57], "unload": [4, 10, 17], "match": [4, 18, 46], "report": [4, 6, 44, 58], "error": [4, 6, 10, 12, 16, 23, 26, 30, 34, 38, 44, 45, 47, 48], "execut": [4, 12, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 38, 42, 45, 46, 47, 54], "loop": [4, 7, 10, 15, 20, 26, 27, 28, 29, 30, 31, 32, 38, 44, 45, 47, 52], "output": [4, 6, 7, 14, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 53], "driver": [4, 7, 18, 30, 57], "reus": [4, 7, 9], "flexibl": 4, "motor": [4, 9, 57], "encod": [4, 30, 36, 53], "theori": [4, 58], "compar": [4, 6, 7], "refer": [4, 9, 22, 23, 30, 57], "measur": [4, 15, 24, 34, 40, 44, 45, 57], "calcul": [4, 22, 30, 34, 36, 46, 52, 53], "input": [4, 6, 7, 8, 9, 14, 21, 23, 30, 34, 36, 39, 41, 45, 46, 49, 52, 53, 55], "object": [4, 30], "deriv": [4, 45, 46, 48], "controller_interfac": [4, 17, 30, 34, 38, 40, 43, 50], "export": [4, 9, 10, 16, 18, 30, 34, 38], "plugin": [4, 8, 10, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 34, 38, 48, 51], "forwardcommandcontrol": [4, 20, 21, 23, 24, 26, 27, 28, 29, 31, 32], "lifecyclenod": [4, 38], "document": [4, 6, 7, 14, 15, 16, 18, 25, 37, 46, 47], "list": [4, 7, 9, 10, 13, 16, 17, 23, 30, 38, 40, 56, 57, 58], "srv": [4, 47, 48], "controller_manager_msg": 4, "while": [4, 6, 7, 30, 34, 46], "directli": [4, 15, 20, 23, 32, 48, 58], "friendli": 4, "cli": [4, 10, 11, 17, 20, 21, 22, 25, 26, 27, 28, 29, 31, 32], "auto": [4, 10], "complet": [4, 13, 23, 30, 46], "rang": [4, 14, 37], "common": [4, 6, 18, 44, 58], "capabl": [4, 6], "realiz": [4, 7, 46, 47], "repres": [4, 13, 30, 36, 37, 46], "dynam": [4, 16, 22, 30, 34, 38, 48], "dof": [4, 14, 18, 30, 42, 48], "differ": [4, 6, 7, 11, 13, 14, 16, 18, 20, 21, 25, 26, 30, 36, 39, 40, 44, 46, 48, 49, 52, 55], "transmiss": [4, 18], "humanoid": 4, "logic": 4, "channel": [4, 57], "kuka": [4, 20, 26, 27, 28, 57], "rsi": [4, 20, 27, 28, 57], "relat": [4, 6, 7], "forc": [4, 7, 14, 17, 27, 28, 34, 37, 57], "torqu": [4, 14, 27, 28, 34, 37], "simpl": [4, 6, 7, 9, 16, 18, 20, 22, 23, 25, 30, 31, 38, 42], "valv": [4, 14], "mandatori": [4, 10], "dc": 4, "arduino": [4, 24, 29], "board": 4, "modular": [4, 7, 8, 18, 30], "independ": [4, 7, 10, 28], "explan": [4, 10, 16], "given": [4, 10, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 39, 46, 47, 49, 55], "through": [4, 6, 7, 9, 10, 16, 17, 18, 23, 30, 38, 47, 48, 58], "tag": [4, 10, 14, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 38, 58], "chosen": [4, 14], "structur": [4, 6, 9, 10, 16, 30, 36, 38, 45, 46], "track": [4, 33, 54, 58], "togeth": [4, 9, 14, 25, 27, 52], "xacro": [4, 10, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "hereund": 4, "rrbot": [4, 14, 17, 18, 21, 22, 24, 26, 27, 28, 29, 31], "effector": [4, 34], "site": 4, "rrbotsystempositiononli": [4, 28], "ros2_control_demo_hardwar": [4, 14, 17], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 14], "joint1": [4, 14, 15, 17, 20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 34, 47], "joint2": [4, 14, 17, 20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 34, 47], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 14, 27, 28], "frame_id": [4, 14, 27, 28, 40, 43, 50, 52], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 15, 25, 30, 32, 34, 45, 48], "pure": 4, "stack": [4, 7, 58], "could": [4, 7, 9, 18, 26, 38, 44, 47], "altern": [4, 8, 10, 20, 47], "script": [4, 6, 16, 38], "skeleton": 4, "sim": [5, 17, 56], "dockerfil": [5, 18], "Then": [5, 9, 18, 30, 32, 46], "ign": 5, "meet": [5, 58], "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, 15, 16, 26, 36, 43, 44, 47, 58], "gener": [6, 7, 14, 16, 17, 22, 24, 25, 26, 27, 28, 29, 30, 37, 38, 47, 52, 58], "task": [6, 7, 36], "envis": 6, "simul": [6, 15, 17, 18, 20, 23, 25, 27, 28, 30], "ignit": 6, "showcas": [6, 7, 8], "grace": 6, "degrad": 6, "roadmap": [6, 18, 58], "place": [6, 8, 36, 38, 53], "draft": 6, "gpio": [6, 15, 18, 30], "mode": [6, 9, 16, 23, 26, 34, 45, 46, 48, 52], "switch": [6, 17, 18, 20, 26], "movement": [6, 45], "safeti": [6, 30], "skill": 6, "prefer": 6, "familiar": [6, 58], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 36, 50, 53], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 9], "although": [6, 9, 13, 14, 47], "easi": [6, 10], "therefor": [6, 9, 10, 18, 38, 44, 45, 47], "often": [6, 15, 25, 38, 44], "orchestr": 6, "purpos": [6, 20, 23, 24, 26, 27, 28, 29, 30, 31, 32, 48], "conductor": 6, "scenario": [6, 46], "moment": [6, 47], "right": [6, 18, 36], "replac": [6, 13, 37, 47], "high": [6, 10, 46], "moveit2": [6, 7, 37, 57], "simplecontrollermanag": 6, "goal": [6, 7, 14, 20, 26, 27, 28, 29, 31, 32, 42, 45, 47, 58], "form": [6, 18], "behavior": [6, 15, 30, 46], "benchmark": 6, "statu": [6, 9, 13, 17, 20, 45], "format": [6, 30, 34, 44, 47], "preset": 6, "modul": [6, 23], "reli": 6, "doubl": [6, 15, 20, 30, 33, 34, 35, 36, 42, 45, 48, 50, 52, 53, 54], "desir": [6, 12, 45, 47], "both": [6, 7, 23, 30, 31, 36, 44, 45, 46, 47], "improv": [6, 10], "readabl": [6, 30], "earlier": 6, "concept": [6, 7, 8, 9, 15, 18, 20], "introduc": [6, 7, 9, 20, 30], "essenti": [6, 20], "group": [6, 9, 10, 14, 47, 58], "instanc": [6, 10, 23, 44], "imu": [6, 14, 37], "typic": [6, 14, 25, 44, 45], "acceleromet": 6, "gyroscop": 6, "compass": 6, "Such": [6, 23], "struct": 6, "low": [6, 7, 10], "profil": 6, "relev": [6, 34, 45, 48, 52, 58], "addition": [6, 30, 33, 35, 54, 58], "few": [6, 7, 37], "rewrit": [6, 58], "rich": 6, "motiv": 6, "adopt": 6, "port": [6, 13, 14], "quit": 6, "miss": [6, 7, 8, 44, 46, 47], "diff_drive_control": [6, 9, 17, 25], "consist": [6, 47, 58], "onc": [6, 7, 8, 20, 22, 25, 26, 27, 28, 30, 31, 37], "identifi": [6, 30], "much": [6, 20, 22, 24, 25, 26, 27, 28, 29, 31, 38, 47], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 58], "unit": 6, "gmock": 6, "cc": [7, 46, 47], "BY": [7, 46, 47], "licens": [7, 46, 47], "author": [7, 9], "either": [7, 20, 26, 27, 28, 29, 31, 32, 44, 46], "down": [7, 30, 34], "below": [7, 10, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 45, 46, 47], "compani": 7, "my": 7, "company_nam": 7, "alreadi": [7, 8, 16, 17, 18, 20, 23, 30, 32, 37, 38, 47], "know": [7, 8, 14], "act": [7, 8], "kernel": [7, 8, 10], "struggl": [7, 8], "cover": [7, 8], "product": [7, 8, 44], "variou": [7, 8, 20, 31], "littl": [7, 8, 10], "run": [7, 8, 9, 10, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 46, 52], "practic": [7, 8], "overview": [7, 8], "control": [7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 33, 35, 40, 43, 44, 45, 46, 50, 53, 54, 57, 58], "chain": [7, 8, 11, 17, 18, 30, 34, 45, 48, 52], "debug": [7, 8, 15], "top": [7, 8], "involv": [7, 8], "bring": [7, 8, 18], "page": [7, 56, 57], "locu": 7, "stogl": [7, 8], "consult": 7, "tricycl": [7, 37, 53], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "agnost": [7, 30], "share": [7, 15, 16, 30, 32, 38, 52], "well": [7, 10, 17, 18, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 47], "perform": [7, 10, 30], "heavi": 7, "practition": 7, "guid": [7, 16, 38], "virtual": [7, 9, 22, 35], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 20, 30], "explicit": [7, 10, 30, 45], "emerg": 7, "handler": 7, "mock": [7, 11, 16], "usag": [7, 10, 14, 17, 19, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 10, 38], "focu": [7, 9], "becom": [7, 23], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 37], "tip": [7, 30, 34], "hot": 7, "shown": [7, 30, 46], "furthermor": [7, 25], "offer": [7, 10, 16, 30], "expos": [7, 18, 23], "problem": [7, 58], "manipul": [7, 18, 20, 23, 30, 31, 45, 57], "plan": [7, 58], "autonom": 7, "navig": [7, 8], "ideal": [7, 15], "made": [7, 13], "mobil": [7, 18, 22, 25, 36, 52, 53, 57], "arm": [7, 20, 23, 31, 34], "extra": [7, 30, 44], "readi": [7, 8, 16, 18, 23, 37, 38], "studi": 7, "ur": 7, "With": [7, 30, 32, 47], "moveit": [7, 15], "ingredi": 7, "scale": [7, 45], "factor": [7, 36], "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, 16, 38], "trajectori": [7, 20, 30, 37, 45, 48, 58], "admitt": [7, 37], "One": [7, 9], "reason": [7, 9, 10, 30], "upgrad": 7, "ros1": [7, 18], "better": 7, "realtim": [7, 10, 30, 36, 47, 53, 58], "contact": 7, "insert": 7, "singl": [7, 27, 42, 53], "waypoint": [7, 46, 47], "mani": [7, 30, 37, 38], "teleoper": 7, "kinemat": [7, 9, 18, 25, 30, 33, 34, 35, 52, 54], "acceler": [7, 18, 26, 30, 34, 36, 43, 45, 46, 47, 48, 53], "jerk": [7, 36, 53], "obei": [7, 30], "demo": [7, 14], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 30], "cycl": [7, 30, 37], "_control": [7, 18], "wild": 7, "materi": 7, "quick": [7, 13], "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 15, 20, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 37, 45, 47, 48, 58], "done": [7, 8, 9, 16, 20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 37, 38], "look": [7, 25], "modifi": 7, "simpli": [7, 10, 20, 46, 47], "edit": 7, "collect": [7, 39, 49, 55], "semant": [7, 14, 34, 40, 43, 50], "monolit": 7, "controlko": 7, "imperi": 8, "octob": 8, "present": [8, 47], "ubuntu": [8, 10], "engin": [8, 16, 38], "compos": 8, "grab": 8, "roscon2023_workshop": 8, "now": [8, 9, 10, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38, 46], "workspac": [8, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 38], "w": 8, "git": [8, 18, 30], "clone": [8, 18, 30], "roscon2023_control_workshop": 8, "ci": 8, "compil": [8, 16, 30, 32, 38], "termin": [8, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "park": 8, "f": [8, 18, 34], "dev": 8, "tmux": 8, "ctrl": [8, 20], "b": [8, 18, 30], "arrow": 8, "kei": 8, "brought": 8, "propos": [9, 58], "minim": [9, 34, 58], "viabl": [9, 30], "serial": [9, 30], "tri": [9, 45], "clariti": 9, "arbitrari": [9, 30, 47], "order": [9, 30, 48], "nevertheless": [9, 48], "convinc": 9, "would": [9, 44, 48], "unnecessari": 9, "long": 9, "term": [9, 48, 58], "clearer": 9, "let": [9, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31], "controllers_chain": 9, "doc": [9, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 58], "position_track": 9, "pid": [9, 37, 45, 46, 47, 58], "imagin": 9, "flexibli": 9, "preced": 9, "step": [9, 12, 16, 18, 38, 46, 58], "At": [9, 16, 23, 38], "attach": 9, "disabl": [9, 15, 36, 52], "subscrib": [9, 21, 22, 23, 30], "differenti": [9, 18, 25, 35, 36, 37, 57, 58], "interfaceconfigur": [9, 30], "input_interface_configur": 9, "const": [9, 12, 13, 30], "anoth": [9, 10, 12, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 47], "simplic": [9, 30], "try": [9, 30], "exclus": [9, 30], "rather": [9, 18, 46], "void": 9, "set_chained_mod": 9, "bool": [9, 12, 34, 36, 42, 44, 45, 48, 52, 53], "flag": [9, 12, 16, 38, 45], "on_set_chained_mod": 9, "pid_refer": 9, "controller_nam": [9, 10, 17, 34, 38, 47, 48, 52], "v_x": 9, "v_y": 9, "w_z": 9, "cmd_vel": [9, 25, 36, 53], "cmd_vel_unstamp": 9, "Its": [9, 58], "continu": [9, 45, 46, 47, 48], "chainabl": [9, 18, 23, 36, 47], "ownership": 9, "process": [9, 16, 30, 38, 46], "vector": [9, 23, 30, 38], "invers": [9, 30, 34], "rule": [9, 10, 16, 38], "think": [9, 18], "break": [9, 15], "middl": [9, 35], "unavail": [9, 22, 23], "unclaim": [9, 17, 22, 23, 26], "inact": [9, 10, 17, 20, 26, 30, 37], "feasibl": 9, "interface_configuration_typ": 9, "jitter": 10, "thread": [10, 30], "sched_fifo": 10, "prioriti": 10, "addgroup": 10, "usermod": 10, "whoami": 10, "afterward": 10, "secur": 10, "conf": [10, 30], "soft": 10, "rtprio": 10, "memlock": 10, "102400": 10, "appli": [10, 17, 30, 34, 36, 47], "log": 10, "again": [10, 13, 20, 25, 30], "normal": [10, 30, 34, 45, 48], "linux": 10, "comput": [10, 18, 36, 52, 53], "throughput": 10, "suit": 10, "lt": 10, "beta": 10, "rt": 10, "amd64": 10, "debian": 10, "bullsey": 10, "lowlat": 10, "come": [10, 18, 47], "lot": [10, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31], "being": [10, 22], "realli": 10, "hardware_components_initial_st": 10, "map": [10, 15, 44, 47], "attribut": [10, 30], "full": [10, 16, 18, 38, 40], "unconfigur": [10, 13, 20, 30], "arm1": 10, "arm2": 10, "base3": 10, "empti": [10, 36, 38, 40, 43, 44, 47, 48, 52, 53], "integ": [10, 37], "frequenc": [10, 37], "startup": [10, 15], "h": [10, 16, 17, 38], "param_fil": 10, "n": 10, "namespac": [10, 12, 16, 30, 36, 37, 38, 44], "controller_typ": 10, "timeout": [10, 17, 36, 42, 45, 52, 53], "controller_manager_timeout": 10, "argument": [10, 16, 17, 20, 22, 24, 25, 26, 27, 28, 29, 31], "exit": [10, 17], "leav": 10, "kill": [10, 17, 30], "wait": [10, 17, 29, 45], "until": [10, 30, 46], "mai": [10, 13, 27, 37, 39, 49, 55], "taken": [10, 52], "becaus": [10, 14, 20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 46], "rclcpp": [10, 12, 16, 30, 38], "than": [10, 34, 40, 42, 45, 47, 48, 52, 53], "global": 10, "remap": [10, 22], "forcibli": 10, "lead": [10, 47], "duplic": [10, 45, 48, 52], "occur": [10, 30], "whether": [10, 34], "sibl": 10, "hierarchi": 10, "workaround": 10, "nodeopt": [10, 38], "pass": [10, 12, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "caus": [10, 46, 47, 52], "get_cm_node_opt": 10, "arg": 10, "_target_node_nam": 10, "__node": 10, "dst_node_nam": 10, "std": [10, 30, 36, 45, 53], "make_shar": 10, "some_optional_namespac": 10, "simplest": 10, "switch_control": [10, 20], "broadcast": [10, 14, 15, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 44], "achiev": [10, 12, 30, 39, 45, 49, 55], "return": [10, 12, 13, 16, 20, 30, 38, 42, 44, 46, 47], "NOT": 10, "FOR": 10, "detect": 10, "listen": [10, 45], "doxygen": [11, 16], "cascad": 11, "advic": 12, "xmln": 12, "wiki": [12, 33, 35, 46, 47, 54], "system_interfac": 12, "main_loop_update_r": 12, "desired_hw_update_r": 12, "my_system_interfac": 12, "mysystemhardwar": 12, "on_init": [12, 13, 16, 30, 38], "callbackreturn": [12, 13, 16, 30], "success": [12, 13, 16, 30, 38, 42, 47], "hpp": [12, 13, 16, 18, 30, 34, 38], "unsign": [12, 37], "int": [12, 36, 50, 52, 53], "main_loop_update_rate_": 12, "desired_hw_update_rate_": 12, "stoi": 12, "info_": [12, 30], "hardware_paramet": 12, "reset": [12, 30, 52], "counter": 12, "rclcpp_lifecycl": [12, 13, 16, 30, 38], "previous_st": [12, 13, 30], "update_loop_counter_": 12, "durat": [12, 30], "period": [12, 30, 45], "interfer": 12, "return_typ": [12, 13, 30, 38], "hardware_go": 12, "comm": 12, "oper": [12, 30, 58], "sinc": [12, 26, 30, 35], "indic": [12, 26, 30, 45], "first_read_pass_": 12, "first_write_pass_": 12, "last_read_time_": 12, "desired_hw_update_period_": 12, "last_write_time_": 12, "previou": [12, 30, 46, 58], "on_error": [13, 16, 30], "failur": 13, "recov": 13, "reload": [13, 17], "substanti": 13, "renam": 13, "baseinterfac": 13, "remov": 13, "base_interfac": 13, "hardware_interface_status_valu": 13, "strictli": [13, 14], "status_": 13, "in_deactiv": 13, "undefin": 13, "refern": 13, "symbol": 13, "node_interfac": [13, 30], "lifecyclenodeinterfac": [13, 16, 30], "rclcpp_lifecyl": 13, "cmakelist": [13, 16, 30, 38], "txt": [13, 16, 30, 38], "devic": 14, "associ": 14, "coupl": 14, "ship": 14, "cannot": [14, 23, 30, 40, 47], "keyword": 14, "digit": 14, "signal": [14, 36], "electr": 14, "analog": 14, "within": [14, 20, 34, 47], "vacuum": [14, 21], "flang": 14, "off": 14, "rrbotsystemmutiplegpio": 14, "example_param_hw_start_duration_sec": 14, "example_param_hw_stop_duration_sec": 14, "example_param_hw_slowdown": 14, "flange_digital_io": 14, "digital_output1": 14, "digital_output2": 14, "digital_input1": 14, "digital_input2": 14, "flange_analog_io": [14, 21], "analog_output1": [14, 21], "mock_hardwar": 14, "analog_input1": [14, 21], "analog_input2": [14, 21], "flange_vacuum": [14, 21], "suction": 14, "grasp": 14, "multimod": 14, "multimodalgripp": 14, "parallel_fing": 14, "temperatur": [14, 18], "feedback": [14, 15, 24, 44, 45, 47, 48, 52, 53], "adjust": [14, 17, 20, 30], "calibr": 14, "2d": [14, 27, 28], "ft": [14, 27, 28, 40], "choic": [14, 52], "matric": 14, "rrbotforcetorquesensor2d": 14, "forcetorquesensor2dhardwar": 14, "fx": 14, "tz": 14, "kuka_tcp": 14, "fx_rang": 14, "tz_rang": 14, "temp_feedback": 14, "calibration_matrix_nr": 14, "mirror": 15, "correspond": [15, 16, 30, 38, 52, 58], "offlin": 15, "advantag": 15, "pipe": 15, "even": [15, 22, 23, 47], "boost": 15, "mimic": [15, 22], "offset": [15, 44, 45], "fake": 15, "disable_command": 15, "boolean": [15, 37], "erron": [15, 30], "noth": 15, "suddenli": 15, "Or": [15, 20, 26, 27, 28, 29, 31, 32], "mock_sensor_command": 15, "position_state_following_offset": 15, "custom_interface_with_following_offset": 15, "certain": [15, 30, 39, 49, 55], "prepar": [16, 26, 38], "ament_cmak": [16, 38], "easiest": [16, 38], "search": [16, 38], "pkg": [16, 38], "package_nam": [16, 38], "robot_hardware_interface_nam": 16, "visibility_control": [16, 38], "window": [16, 36, 38, 53], "copi": [16, 38], "prefix": [16, 34, 36, 38, 40, 43, 50], "guard": [16, 38], "ifndef": [16, 38], "preprocessor": [16, 38], "friend": [16, 38], "interface_typ": [16, 38], "uniqu": [16, 30, 38], "written": [16, 24, 29, 30, 38], "snake_cas": [16, 38], "interfacetyp": 16, "hardwareinterfacenam": 16, "public": [16, 30, 38], "on_cleanup": [16, 30], "on_shutdown": [16, 30], "overrid": [16, 30, 38, 39, 47, 49, 55], "export_state_interfac": [16, 30], "export_command_interfac": [16, 30], "prepare_command_mode_switch": 16, "perform_command_mode_switch": 16, "further": [16, 38], "exact": [16, 38], "simplifi": [16, 30, 38, 58], "valid": [16, 18, 45, 48, 50], "fine": [16, 22, 25, 38], "otherwis": [16, 18, 34, 38, 44, 45], "opposit": [16, 38], "remind": 16, "joint_nam": [16, 34, 38], "shutdown": [16, 30], "gracefulli": 16, "store": [16, 38], "close": [16, 38], "class_list_macro": [16, 30, 38], "my_hardware_interface_packag": 16, "robothardwareinterfacenam": 16, "second": [16, 17, 20, 23, 26, 27, 28, 29, 30, 31, 32, 36, 38, 46, 48, 58], "visibl": [16, 38], "mock_compon": [16, 25], "bottom": [16, 30, 38], "test_load_": [16, 38], "load_generic_system_2dof": 16, "test_generic_system": 16, "find_packag": [16, 38], "directori": [16, 36, 38, 40, 43, 50], "ament": [16, 38], "cmake": 16, "pluginlib_export_plugin_description_fil": [16, 30, 38], "ament_cmake_gmock": [16, 38], "ament_add_gmock": [16, 38], "ament_export_librari": [16, 38], "ament_packag": [16, 38], "test_depend": [16, 38], "rememb": [16, 38], "root": [16, 38], "enjoi": [16, 38], "great": [16, 38], "templat": [16, 18, 30, 38], "shell": [16, 38], "onward": 16, "spin": 17, "spin_tim": 17, "hidden": 17, "discoveri": 17, "daemon": 17, "test_controller_nam": 17, "test_control": 17, "diffdrivecontrol": [17, 25], "verbos": 17, "label": [17, 24, 25, 27, 28, 29, 46], "ctrl1": 17, "ctrl2": 17, "strict": 17, "asap": 17, "switch_timeout": 17, "tmp": 17, "controller_diagram": 17, "gv": 17, "pdf": [17, 30], "demonstr": [18, 20, 22, 23, 25, 26, 31, 32], "prove": 18, "checkout": 18, "roscon2022_workshop": 18, "hardwareinterfac": [18, 30], "diffbot": 18, "degre": [18, 30, 47, 52], "freedom": [18, 30, 52], "components_architecture_and_urdf_exampl": 18, "revolut": [18, 20, 23, 30, 31], "drive": [18, 22, 25, 33, 35, 36, 37, 52, 53, 54, 57, 58], "accord": [18, 25, 30], "intermedi": 18, "carlikebot": 18, "bicycl": [18, 22, 37, 52], "steer": [18, 22, 33, 35, 37, 52, 53, 54], "tba": 18, "tabl": 18, "offici": 18, "easili": 18, "aptitud": 18, "might": [18, 46], "own": [18, 20, 30], "merg": 18, "procedur": 18, "rviz2": [18, 20, 32], "visual": [18, 20, 28, 30, 44], "joint_state_publisher_gui": [18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "ros2_control_demo_example_1": [18, 20], "view_robot": [18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "omit": 18, "example_1": [18, 20, 21, 23, 32], "rviz": [18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 44], "slider": 18, "around": [18, 40, 43, 45, 48, 50], "ros2_control_demo_example_2": [18, 25], "categori": 18, "individu": [18, 38, 40, 50], "position_in_degre": 18, "hardware_interface_type_valu": [18, 34], "6dof": 18, "invert": 20, "pendulum": 20, "fun": 20, "proprietari": [20, 22, 24, 25, 26, 27, 28, 29, 31], "view": [20, 30], "recreat": 20, "robotmodel": 20, "displai": [20, 23, 24, 26, 27, 28, 29, 31, 32], "ros2_control_demo_descript": [20, 22], "ok": [20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 38], "warn": [20, 22, 24, 25, 26, 27, 28, 29, 31, 44], "invalid": [20, 22, 24, 25, 26, 27, 28, 29, 31], "frame": [20, 22, 24, 25, 26, 27, 28, 29, 30, 31, 34, 36, 53], "odom": [20, 22, 24, 25, 26, 27, 28, 29, 31, 36, 52, 53], "cantransform": [20, 22, 24, 25, 26, 27, 28, 29, 31], "target_fram": [20, 22, 24, 25, 26, 27, 28, 29, 31], "happen": [20, 22, 24, 25, 26, 27, 28, 29, 30, 31], "exemplari": [20, 24, 26, 27, 28, 29, 31, 33, 35, 52, 54], "orang": [20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "yellow": [20, 23, 24, 26, 27, 28, 29, 31, 32], "rectangl": [20, 23, 24, 26, 27, 28, 29, 31], "introspect": [20, 22, 23, 24, 25, 26, 27, 28, 29, 31], "list_hardware_interfac": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "entrypoint": 20, "nomin": [20, 36], "marker": [20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "list_control": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "forward_position_control": [20, 21, 23, 26, 27, 28, 29, 31, 32], "forward_command_control": [20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 39, 49, 55], "pub": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "std_msg": [20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 39, 41, 49, 55], "float64multiarrai": [20, 21, 23, 24, 26, 27, 28, 29, 31, 32, 39, 41, 49, 55], "everi": [20, 26, 27, 28, 29, 30, 31, 32, 37, 41, 45, 58], "test_forward_position_control": [20, 26, 27, 28, 29, 31, 32], "block": [20, 23, 24, 26, 27, 28, 29, 30, 31], "got": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "50000": [20, 23, 27, 28, 29], "echo": [20, 21, 23, 25, 27, 28, 32], "joint_stat": [20, 22, 23, 25, 32, 44], "dynamic_joint_st": [20, 23, 32, 44], "load_control": 20, "joint_trajectory_position_control": 20, "successfulli": [20, 24, 29], "set_controller_st": 20, "rrbot_control": [20, 21, 23, 31, 32], "four": [20, 22, 24, 33], "test_joint_trajectory_control": 20, "rrbot_joint_trajectory_publish": 20, "rrbot_descript": [20, 21, 23, 24, 26, 27, 28, 29, 31, 32], "rrbot_forward_position_publish": [20, 32], "ros2_control_demo_example_10": 21, "contrast": 21, "gpio_control": 21, "gpiocontrol": 21, "1199574016": 21, "1676318848": 21, "rrbotsystemwithgpiohardwar": 21, "gp": 21, "wheel": [22, 33, 35, 36, 52, 53, 54], "front": [22, 33, 34, 35, 52, 53, 54], "vehicl": [22, 35], "angl": [22, 30, 35, 52], "similarli": 22, "rear": [22, 33, 35, 52, 53, 54], "carlik": 22, "ros2_control_demo_example_11": 22, "remap_odometry_tf": 22, "excess": [22, 25], "print": [22, 25, 44], "tf": [22, 36, 52], "tree": [22, 30, 36], "pose": [22, 36, 52, 53], "coordin": 22, "odometri": [22, 36, 52, 53], "bicycle_steering_control": 22, "tf_odometri": [22, 52], "angular": [22, 25, 36, 43, 52, 53], "linear": [22, 25, 30, 36, 43, 46, 48, 52, 53], "virtual_front_wheel_joint": 22, "virtual_rear_wheel_joint": 22, "bicyclesteeringcontrol": 22, "geometry_msg": [22, 25, 27, 28, 36, 40, 52], "twiststamp": [22, 25, 36, 52], "twist": [22, 25, 52, 53], "circl": [22, 25], "carlikebotsystemhardwar": 22, "carlikebot_control": 22, "carlikebot_system": 22, "example_12": 23, "known": 23, "passthrough_control": 23, "ros2_control_demo_example_12": 23, "ident": [23, 25, 30, 32, 46], "joint2_position_control": 23, "passthroughcontrol": 23, "joint1_position_control": 23, "someth": 23, "automat": [23, 30, 32, 36, 53], "appear": 23, "whose": [23, 46], "henc": [23, 30], "launch_chained_control": 23, "position_control": [23, 37, 41, 42], "streamlin": 23, "clearli": 23, "sent": 23, "reflect": 23, "canopen_402": [24, 29], "modbu": [24, 29], "rs232": [24, 29], "rs485": [24, 29], "ros2_control_demo_example_14": 24, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 24, "list_hardware_compon": [24, 25, 27, 28, 29], "rrbotmodularjoint2": [24, 29], "rrbotactuatorwithoutfeedback": 24, "rrbotmodularjoint1": [24, 29], "rrbotmodularpositionsensorjoint2": 24, "rrbotsensorpositionfeedback": 24, "rrbotmodularpositionsensorjoint1": 24, "forward_velocity_control": [24, 26], "000000": 24, "00000": [24, 25, 26], "25300": 24, "rrbot_actuator_without_feedback": 24, "rrbot_sensor_for_position_feedback": 24, "example_2": 25, "left_wheel_joint": 25, "right_wheel_joint": 25, "diffbot_base_control": 25, "diff": 25, "diffbotsystemhardwar": 25, "33333": 25, "faster": [25, 36, 53], "genericsystem": 25, "use_mock_hardwar": 25, "calculate_dynam": 25, "diffbot_control": 25, "diffbot_descript": 25, "diffbot_system": 25, "example_3": 26, "fri": [26, 57], "abb": [26, 57], "yumi": 26, "schunk": [26, 57], "lwa4p": 26, "illeg": 26, "declin": 26, "faulti": 26, "ros2_control_demo_example_3": 26, "rrbot_system_multi_interfac": 26, "robot_control": [26, 30], "spawn": 26, "forward_acceleration_control": 26, "velocity_control": [26, 37, 41], "jointgroupvelocitycontrol": 26, "rrbotsystemmultiinterfacehardwar": 26, "po": [26, 34, 46], "78500": 26, "vel": [26, 52], "acc": 26, "control_lvl": 26, "forward_illegal1_control": 26, "forward_illegal2_control": 26, "1676209982": 26, "531163501": 26, "resource_manag": 26, "rrbotsystemmultiinterfac": 26, "did": 26, "531223835": 26, "reject": [26, 45, 46], "spawner": 26, "531717376": 26, "spawner_forward_illegal1_control": 26, "rrbot_multi_interface_forward_control": 26, "krc": 27, "prototyp": 27, "odri": [27, 57], "ros2_control_demo_example_4": 27, "rrbot_system_with_sensor": 27, "rrbotsystemwithsensor": 27, "rrbotsystemwithsensorhardwar": 27, "fts_broadcast": [27, 28], "force_torque_sensor_broadcast": [27, 28], "forcetorquesensorbroadcast": [27, 28], "wrench": [27, 28, 34], "republish": [27, 28], "wrenchstamp": [27, 28, 40], "stamp": [27, 28, 52, 53], "sec": [27, 28], "1676444704": [27, 28], "nanosec": [27, 28], "332221422": [27, 28], "tool_link": [27, 28], "946532964706421": 27, "nan": [27, 45], "0540995597839355": 27, "rrbot_with_sensor_control": 27, "pc": 28, "3d": [28, 30], "ros2_control_demo_example_5": 28, "rrbot_system_with_external_sensor": 28, "externalrrbotftsensor": 28, "externalrrbotforcetorquesensorhardwar": 28, "2126582860946655": 28, "3202226161956787": 28, "4302282333374023": 28, "540233612060547": 28, "647800624370575": 28, "7602499723434448": 28, "rrbot_with_external_sensor_control": 28, "rrbot_system_position_onli": 28, "external_rrbot_force_torque_sensor": 28, "mara": 29, "ros2_control_demo_example_6": 29, "rrbot_modular_actu": 29, "rrbotmodularjoint": 29, "rrbot_actu": 29, "queri": [30, 47], "enhanc": 30, "deploi": 30, "pattern": 30, "vendor": 30, "runtim": 30, "program": 30, "conform": 30, "newest": 30, "characterist": 30, "primari": [30, 47], "commerci": 30, "scratch": 30, "illustr": 30, "stl": 30, "dae": 30, "coars": 30, "mesh": 30, "fast": [30, 57], "collis": 30, "express": 30, "vertic": 30, "transform": [30, 36, 53], "rotat": [30, 36, 45, 53], "translat": [30, 36, 53], "proxim": 30, "face": 30, "co": 30, "planer": 30, "xy": 30, "plane": 30, "align": 30, "blender": 30, "begin": 30, "neg": [30, 34, 45], "pitch": 30, "yaw": 30, "repeat": 30, "robot_6_dof": 30, "base_link": [30, 34, 36, 52, 53], "link_0": 30, "inerti": 30, "mass": [30, 34], "inertia": 30, "ixx": 30, "ixi": 30, "ixz": 30, "iyi": 30, "iyz": 30, "izz": 30, "tool0": [30, 34], "base_joint": 30, "joint_1": 30, "link_1": 30, "061584": 30, "141592653589793": 30, "name_spac": 30, "class_nam": 30, "pi": [30, 45, 48], "enclos": 30, "previous": 30, "left": [30, 36, 44], "zero": [30, 34, 45, 46], "rel": [30, 46], "center": [30, 34], "uniform": 30, "consecut": 30, "motion": [30, 45], "subsequ": 30, "join": [30, 58], "speci": 30, "verifi": 30, "urdf_to_graphviz": 30, "r6bot": 30, "explain": 30, "robotsystem": 30, "ur5": 30, "five": 30, "hardware_interface_return_valu": 30, "hardware_interface_publ": 30, "commandinterfac": 30, "privat": 30, "memori": [30, 38], "alloc": 30, "establish": 30, "notabl": 30, "vari": 30, "fill": 30, "field": [30, 44, 46], "suppos": [30, 46], "tcp_force_torque_sensor": 30, "Their": 30, "pointer": 30, "state_interfaces_": 30, "nearli": 30, "command_interfaces_": 30, "constraint": [30, 34, 36, 38, 40, 42, 43, 45, 47, 48, 52, 53], "respons": 30, "turn": 30, "oppos": [30, 47], "tcp": [30, 34], "packet": 30, "robot_6_dof_hardwar": 30, "discov": 30, "library_nam": 30, "base_class_typ": 30, "human": 30, "notic": [30, 46], "just": 30, "add_librari": 30, "robot_hardwar": 30, "unlik": 30, "finit": 30, "transit": [30, 37, 46], "robotcontrol": 30, "nine": 30, "six": [30, 40], "callback": 30, "lifetim": 30, "restart": 30, "reconfigur": 30, "buffer": [30, 58], "transfer": 30, "eventu": 30, "mutex": 30, "guarante": [30, 46], "never": 30, "release_interfac": 30, "shut": 30, "free": [30, 36], "cleanup": 30, "r6bot_control": 30, "view_r6bot": 30, "ros2_control_demo_example_7": 30, "send_trajectori": 30, "circular": 30, "ros2_control_demo_example_8": 31, "rrbot_transmissions_system_position_onli": 31, "rrbottransmissionssystempositiononlyhardwar": 31, "transmission1": 31, "actuator1": 31, "transmission2": 31, "actuator2": 31, "383253": 31, "766505": 31, "53301": 31, "example_9": 32, "later": [32, 46], "ros2_control_demo_example_9": 32, "rrbot_gazebo_class": 32, "gazebo_ros2_control": 32, "usr": 32, "ax": [33, 34, 35, 40, 43, 48, 54], "traction": [33, 35, 52, 53, 54], "steerabl": [33, 35, 54], "generate_parameter_librari": [33, 34, 35, 36, 40, 41, 42, 43, 44, 45, 48, 50, 52, 53, 54], "parameter": [33, 35, 52, 54], "front_wheel_track": 33, "length": [33, 34, 43, 48, 52, 54], "en": [33, 35, 54], "wikipedia": [33, 35, 52, 54, 58], "wheelbas": [33, 35, 53, 54], "rear_wheel_track": 33, "distanc": [33, 35, 36, 47, 50, 53, 54], "front_wheels_radiu": [33, 54], "radiu": [33, 35, 36, 53, 54], "rear_wheels_radiu": [33, 54], "chainedcontrollerinterfac": 34, "kinematics_interfac": 34, "string_arrai": [34, 36, 41, 44, 45, 48, 52], "command_joint": [34, 45], "chainable_command_interfac": 34, "plugin_nam": 34, "plugin_packag": 34, "alpha": 34, "damp": 34, "coeffici": 34, "jacobian": 34, "pseudo": 34, "ft_sensor": 34, "filter_coeffici": 34, "filter": 34, "exponenti": 34, "fixed_world_fram": 34, "graviti": 34, "gravity_compens": 34, "cog": 34, "double_arrai": [34, 36, 43, 52, 53], "compens": 34, "equal": [34, 42, 43, 45], "weight": 34, "selected_ax": 34, "bool_arrai": 34, "rx": 34, "ry": 34, "rz": 34, "arrai": 34, "bound": 34, "0001": 34, "damping_ratio": 34, "ratio": 34, "zeta": 34, "sqrt": 34, "m": [34, 50, 52], "stiff": 34, "joint_damp": 34, "greater": [34, 42, 45, 53], "enable_parameter_update_without_reactiv": 34, "load_admittance_control": 34, "test_admittance_control": 34, "kuka_kr6": 34, "joint3": [34, 47], "joint4": [34, 47], "joint5": [34, 47], "joint6": [34, 47], "kinematics_interface_kdl": 34, "kinematicsinterfacekdl": 34, "stationari": 34, "group_nam": 34, "0005": 34, "ft_sensor_nam": 34, "link_6": 34, "005": 34, "calc": 34, "displac": 34, "x_d": 34, "828427": 34, "joint_refer": 34, "trajectory_msg": [34, 46, 47], "jointtrajectorypoint": [34, 46], "admittancecontrollerst": 34, "sensor_nam": [34, 40, 43, 50], "ackermann": [35, 37, 52], "probabl": 35, "front_wheel_radiu": 35, "rear_wheel_radiu": 35, "bodi": 36, "space": [36, 47], "hw_if_posit": [36, 37, 52], "hw_if_veloc": [36, 37, 52], "position_feedback": [36, 52], "use_stamped_vel": [36, 52, 53], "nav_msg": [36, 52], "estim": 36, "tf2_msg": [36, 52], "tfmessag": [36, 52], "enable_odom_tf": [36, 52, 53], "cmd_vel_out": 36, "publish_limited_veloc": 36, "left_wheel_nam": 36, "right_wheel_nam": 36, "wheel_separ": 36, "shortest": [36, 45, 53], "wrong": [36, 53], "behav": [36, 53], "correctli": [36, 53], "curv": [36, 53], "wheel_radiu": [36, 53], "slower": [36, 46, 53], "wheel_separation_multipli": 36, "todo": 36, "me": 36, "left_wheel_radius_multipli": 36, "right_wheel_radius_multipli": 36, "tf_frame_prefix_en": 36, "append": [36, 46], "tf_prefix": 36, "tf_frame_prefix": 36, "odom_id": 36, "base_frame_id": [36, 52, 53], "odom_frame_id": [36, 52, 53], "pose_covariance_diagon": [36, 52, 53], "covari": [36, 43, 52, 53], "tune": [36, 53], "sampl": [36, 46, 52, 53], "001": [36, 42, 53], "twist_covariance_diagon": [36, 52, 53], "speed": [36, 53], "open_loop": [36, 52, 53], "cmd_vel_timeout": [36, 53], "stale": [36, 45, 53], "velocity_rolling_window_s": [36, 52, 53], "publish_r": 36, "joint_limit": 36, "has_velocity_limit": 36, "has_acceleration_limit": 36, "has_jerk_limit": 36, "max_veloc": [36, 53], "numeric_limit": [36, 45, 53], "quiet_nan": [36, 45, 53], "min_veloc": [36, 53], "max_acceler": [36, 53], "min_acceler": [36, 53], "max_jerk": [36, 53], "min_jerk": [36, 53], "test_diff_drive_control": 36, "left_wheel": 36, "right_wheel": 36, "wheels_per_sid": 36, "commonli": 37, "effort_control": [37, 41, 42], "hw_if_acceler": 37, "hw_if_effort": 37, "represent": [37, 47], "rqt_joint_trajectory_control": [37, 47], "onconfigur": 37, "configure_control": 37, "unspecifi": 37, "is_async": 37, "asynchron": 37, "controllernam": 38, "person": 38, "get_node_opt": 38, "protect": 38, "reserv": 38, "importantli": 38, "ask": [38, 44], "sort": 38, "controller_name_namespac": 38, "controller_name_packag": 38, "ros2_control_test_asset": 38, "special": [39, 46, 49, 55], "wrapper": [40, 43, 50], "forcetorquesensor": 40, "6d": 40, "per": [40, 45], "less": [40, 48, 52], "example_nam": 40, "example_interfac": 40, "test_force_torque_sensor_broadcast": 40, "fts_sensor_fram": 40, "feedforward": 41, "multi_interface_forward_command_control": 41, "gripperactioncontrol": 42, "action_monitor_r": [42, 45, 47], "goal_toler": 42, "max_effort": 42, "allow_stal": 42, "stall": 42, "stall_velocity_threshold": 42, "threshold": 42, "stall_timeout": 42, "gripper_action_control": 42, "imusensor": 43, "orient": 43, "angular_veloc": 43, "linear_acceler": 43, "static_covariance_orient": 43, "static": 43, "row": 43, "static_covariance_angular_veloc": 43, "static_covariance_linear_acceler": 43, "test_imu_sensor_broadcast": 43, "imu_sensor": 43, "imu_sensor_fram": 43, "unless": 44, "latter": 44, "matrix": [44, 52], "use_local_top": 44, "my_state_broadcast": 44, "extra_joint": 44, "map_interface_to_joint_st": 44, "usecas": 44, "hydraul": [44, 45], "relianc": 44, "techniqu": 44, "slightli": 44, "custom_interfac": 44, "kf_estimated_posit": 44, "derived_veloc": 44, "derived_effort": 44, "torque_sensor": 44, "current_sensor": 44, "jtc": [45, 48], "command_interface_type_combin": 45, "state_interface_type_combin": 45, "allow_partial_joints_go": [45, 47], "open_loop_control": [45, 47], "interpol": [45, 47, 48], "gain": [45, 48], "numer": 45, "allow_integration_in_goal_trajectori": [45, 46], "monitor": [45, 47], "interpolation_method": 45, "spline": 45, "allow_nonzero_velocity_at_trajectory_end": 45, "cmd_timeout": 45, "goal_tim": [45, 47], "toler": [45, 47], "jointtrajectori": [45, 46, 47], "stopped_velocity_toler": [45, 47], "infinit": 45, "amount": 45, "law": [45, 47], "k_": 45, "ff": 45, "v_d": 45, "k_p": 45, "k_i": 45, "sum": 45, "dt": 45, "k_d": 45, "angle_wraparound": [45, 48], "i_clamp": 45, "clamp": [45, 48], "symmetr": 45, "ff_velocity_scal": 45, "feed": [45, 48], "wrap": [45, 47, 48], "ie": [45, 46], "s_d": 45, "saniti": 46, "segment": [46, 47], "fault": 46, "reach": [46, 47], "datapoint": 46, "deduc": 46, "nor": 46, "discourag": 46, "yield": 46, "discontinu": [46, 47], "cubic": [46, 48], "quintic": [46, 48], "heun": 46, "grid": 46, "10m": 46, "deduct": 46, "nonzero": 46, "inconsist": 46, "overshoot": 46, "timestamp": 46, "arriv": 46, "necessarili": 46, "discard": 46, "substitut": 46, "smarter": 46, "preserv": 46, "flat": 46, "grei": 46, "red": 46, "traj": 46, "time_from_start": 46, "splice": 46, "held": [46, 47], "smooth": [46, 58], "longer": 46, "effect": 46, "Of": 46, "interest": 46, "adolfo": [46, 47], "rodriguez": [46, 47], "instant": 47, "citat": 47, "adapt": 47, "restrict": 47, "robust": 47, "clock": 47, "queu": 47, "preempt": 47, "cancel": 47, "notifi": 47, "abort": 47, "legal": 47, "subset": 47, "favor": 47, "violat": 47, "joint_trajectori": 47, "fire": 47, "sender": 47, "query_st": 47, "controller_st": [47, 48, 52], "cumbersom": 47, "jointtrajectorycontrollerst": 47, "querytrajectoryst": 47, "footnot": 47, "pidro": 48, "control_toolbox": [48, 58], "pd": 48, "theoret": 48, "misus": 48, "pid_control": 48, "pidcontrol": 48, "reference_and_state_dof_nam": 48, "reference_and_state_interfac": 48, "dof_nam": 48, "in_chained_mod": [48, 52], "multidofcommand": 48, "use_external_measured_st": 48, "measured_st": 48, "set_feedforward_control": 48, "std_srv": 48, "setbool": 48, "multidofstatestamp": 48, "antiwindup": 48, "i_clamp_max": 48, "i_clamp_min": 48, "feedforward_gain": 48, "rangesensor": 50, "radiation_typ": 50, "radiat": 50, "ultrason": 50, "infrar": 50, "field_of_view": 50, "arc": 50, "rad": [50, 52], "min_rang": 50, "minimum": 50, "max_rang": 50, "maximum": 50, "varianc": 50, "range_sensor_broadcast": 50, "test_range_sensor_broadcast": 50, "mendatori": 50, "range_sensor": 50, "range_sensor_fram": 50, "rqt": 51, "nomenclatur": 52, "unstamp": 52, "concret": 52, "tricylc": 52, "seer": 52, "front_steer": 52, "front_wheels_nam": 52, "rear_wheels_nam": 52, "traction_feedback_typ": 52, "reference_unstamp": 52, "steeringcontrollerstatu": 52, "reference_timeout": 52, "unwant": 52, "danger": 52, "behaviour": 52, "rear_wheels_state_nam": 52, "front_wheels_state_nam": 52, "number": 52, "averag": 52, "diagon": 52, "trail": 53, "axl": 53, "traction_joint_nam": 53, "steering_joint_nam": 53, "odom_only_twist": 53, "millisecond": 53, "500": 53, "publish_ackermann_command": 53, "old": 53, "max_deceler": 53, "min_deceler": 53, "max_posit": 53, "min_posit": 53, "wheel_track": 54, "isaac": 56, "webot": 56, "canopen": 57, "ethercat": 57, "svh": 57, "finger": 57, "dimens": 57, "haptic": 57, "hoverboard": 57, "ndi": 57, "odriv": 57, "pca9685": 57, "bit": 57, "pwm": 57, "servo": 57, "clearpath": 57, "huski": 57, "a200": 57, "jackal": 57, "j100": 57, "warthog": 57, "w200": 57, "flexiv": 57, "rizon": 57, "husarion": 57, "rosbot": 57, "2r": 57, "pro": 57, "xl": 57, "openmanipul": 57, "igu": 57, "commonplac": 57, "pmb2": 57, "tiago": 57, "xarm": 57, "egm": 57, "iiqka": 57, "eci": 57, "sunris": 57, "kss": 57, "iiwa": 57, "lbr": 57, "med": 57, "mitsubishi": 57, "rv1a": 57, "overcom": 58, "idea": 58, "wide": 58, "toolkit": 58, "unreleas": 58, "question": 58, "wg": 58, "wednesdai": 58, "announc": 58, "discours": 58, "googl": 58, "bug": 58, "tracker": 58, "reproduc": 58, "regard": 58, "built": 58, "gmt": 58}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 18, 58], "process": [1, 10], "merg": 1, "write": [1, 13, 16, 30, 38], "document": [1, 9, 11, 58], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 12], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 10, 12, 13, 14, 16, 30, 41, 44, 47], "class": [2, 9], "interfac": [2, 4, 14, 15, 17, 21, 26, 30, 31, 34, 36, 39, 41, 44, 47, 48, 49, 52, 55], "control": [2, 3, 4, 5, 6, 9, 10, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 37, 38, 39, 41, 42, 47, 48, 49, 52, 55, 56], "": [2, 36, 47, 48, 52], "access": 2, "migrat": [2, 13], "guid": 2, "ros2_control": [2, 3, 5, 6, 7, 8, 11, 14, 18, 30, 34, 37, 58], "robothardwar": 2, "compon": [2, 4, 6, 12, 13, 15, 16], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 18], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 18], "run": [3, 4, 5, 18], "demo": [3, 5, 6, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 30], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 9, 10, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 38, 47, 48], "mimic": [3, 5], "joint": [3, 5, 14, 15, 47], "simul": [3, 5, 32, 56], "plugin": [3, 5, 30], "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, 18], "binari": 4, "packag": [4, 18], "from": [4, 6, 13, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 48, 52, 57], "sourc": [4, 18], "architectur": 4, "manag": [4, 9, 10], "resourc": [4, 7, 9], "user": 4, "descript": [4, 30, 36, 47, 48, 52], "framework": 4, "robot": [4, 7, 18, 21, 24, 26, 27, 28, 29, 30, 31, 37, 57], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "mission": 6, "support": [6, 57], "semant": 6, "featur": [6, 11, 36, 47, 53], "pariti": 6, "present": 7, "2023": [7, 8], "10": [7, 21], "18": 7, "roscon": [7, 8], "workshop": [7, 8], "steroid": [7, 8], "02": 7, "ro": [7, 34, 36, 39, 41, 49, 55, 56], "meetup": 7, "munich": 7, "5": [7, 28], "2022": 7, "12": [7, 23], "industri": [7, 21, 27, 28, 31], "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, 23], "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, 36], "close": 9, "remark": 9, "determin": 10, "paramet": [10, 15, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43, 44, 45, 48, 49, 50, 52, 53, 54, 55], "helper": 10, "script": 10, "spawner": 10, "unspawn": 10, "concept": [10, 11], "restart": 10, "all": 10, "api": 11, "updat": 12, "rate": 12, "By": 12, "count": 12, "loop": 12, "measur": 12, "elaps": 12, "time": 12, "guidelin": [13, 37], "best": [13, 37], "practic": [13, 37], "handl": 13, "error": 13, "happen": 13, "dure": 13, "read": 13, "call": 13, "foxi": 13, "newer": 13, "version": 13, "type": [14, 41, 44, 47], "sensor": [14, 27, 28, 40, 43, 50], "gpio": [14, 21], "exampl": [14, 18, 20, 21, 23, 24, 26, 27, 28, 29, 30, 31, 32, 42, 43, 44, 45, 46, 50], "mock": 15, "gener": 15, "system": 15, "per": 15, "extern": [16, 28, 38], "refer": [16, 34, 36, 38, 47, 48, 52], "command": [17, 34, 44, 47, 48, 52, 53], "line": 17, "list_control": 17, "list_controller_typ": 17, "list_hardware_compon": 17, "list_hardware_interfac": 17, "load_control": 17, "reload_controller_librari": 17, "set_controller_st": 17, "switch_control": 17, "unload_control": 17, "view_controller_chain": 17, "what": 18, "you": 18, "can": 18, "find": 18, "thi": [18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "goal": 18, "overview": [18, 30], "local": 18, "debian": 18, "docker": 18, "view": 18, "quick": 18, "hint": 18, "1": [20, 47], "rrbot": [20, 23, 32], "step": [20, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32], "file": [20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 42, 43, 44, 45, 50], "carlikebot": 22, "14": 24, "modular": [24, 29], "actuat": [24, 29], "provid": 24, "state": [24, 34, 47, 48, 52], "diffbot": 25, "3": 26, "multipl": 26, "4": 27, "integr": [27, 56], "connect": 28, "6": 29, "separ": 29, "commun": [29, 56, 57, 58], "each": 29, "7": 30, "full": 30, "6dof": 30, "geometri": 30, "cmake": 30, "librari": 30, "launch": 30, "8": 31, "an": [31, 42, 43, 44, 45, 50], "expos": 31, "transmiss": 31, "9": 32, "ackermann_steering_control": 33, "admitt": 34, "2": [34, 36, 39, 41, 49, 55], "topic": [34, 39, 41, 49, 55], "bicycle_steering_control": 35, "diff_drive_control": 36, "other": [36, 37, 47, 53], "feedback": 36, "subscrib": [36, 47, 48, 52], "publish": [36, 47, 48, 52], "mobil": 37, "manipul": 37, "broadcast": [37, 40, 43, 50], "common": 37, "new": 38, "effort_control": 39, "jointgroupeffortcontrol": 39, "forc": 40, "torqu": 40, "forward_command_control": 41, "gripper": 42, "action": [42, 47], "list": [42, 43, 44, 45, 50], "imu": 43, "joint_state_broadcast": 44, "detail": 45, "about": 45, "trajectori": [46, 47], "represent": 46, "interpol": 46, "method": 46, "none": 46, "spline": 46, "visual": 46, "replac": 46, "joint_trajectory_control": 47, "preemption": 47, "polici": 47, "servic": [47, 48], "further": 47, "inform": 47, "pid": 48, "execut": [48, 52], "logic": [48, 52], "preced": [48, 52], "position_control": 49, "jointgrouppositioncontrol": 49, "rang": 50, "rqt_joint_trajectory_control": 51, "steering_controllers_librari": 52, "tricycle_control": 53, "veloc": 53, "tricycle_steering_control": 54, "velocity_control": 55, "jointgroupvelocitycontrol": 55, "host": 56, "protocol": 57, "end": 57, "effector": 57, "non": 57, "devic": 57, "offici": 57, "manufactur": 57, "unoffici": 57, "welcom": 58, "develop": 58, "organis": 58}, "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"]], "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"], [18, "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"], [13, "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"], [15, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [36, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [44, "parameters"], [48, "parameters"], [49, "parameters"], [50, "parameters"], [52, "parameters"], [53, "parameters"], [54, "parameters"], [55, "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"]], "Different update rates for Hardware Components": [[12, "different-update-rates-for-hardware-components"]], "By counting loops": [[12, "by-counting-loops"]], "By measuring elapsed time": [[12, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[13, "guidelines-and-best-practices"], [37, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[13, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[13, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[14, "ros2-control-hardware-interface-types"]], "Joints": [[14, "joints"]], "Sensors": [[14, "sensors"]], "GPIOs": [[14, "gpios"]], "Examples": [[14, "examples"], [18, "examples"]], "Mock Components": [[15, "mock-components"]], "Generic System": [[15, "generic-system"]], "Per-joint Parameters": [[15, "per-joint-parameters"]], "Per-interface Parameters": [[15, "per-interface-parameters"]], "Writing a Hardware Component": [[16, "writing-a-hardware-component"]], "Useful External References": [[16, "useful-external-references"], [38, "useful-external-references"]], "Command Line Interface": [[17, "command-line-interface"]], "list_controllers": [[17, "list-controllers"]], "list_controller_types": [[17, "list-controller-types"]], "list_hardware_components": [[17, "list-hardware-components"]], "list_hardware_interfaces": [[17, "list-hardware-interfaces"]], "load_controller": [[17, "load-controller"]], "reload_controller_libraries": [[17, "reload-controller-libraries"]], "set_controller_state": [[17, "set-controller-state"]], "switch_controllers": [[17, "switch-controllers"]], "unload_controller": [[17, "unload-controller"]], "view_controller_chains": [[17, "view-controller-chains"]], "Demos": [[18, "demos"]], "What you can find in this repository": [[18, "what-you-can-find-in-this-repository"]], "Goals": [[18, "goals"]], "Examples Overview": [[18, "examples-overview"]], "Local installation": [[18, "local-installation"]], "Build from debian packages": [[18, "build-from-debian-packages"]], "Build from source": [[18, "build-from-source"]], "Using Docker": [[18, "using-docker"]], "To view the robot": [[18, "to-view-the-robot"]], "To run the ros2_control demos": [[18, "to-run-the-ros2-control-demos"]], "Quick Hints": [[18, "quick-hints"]], "Example 1: RRBot": [[20, "example-1-rrbot"]], "Tutorial steps": [[20, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [29, "tutorial-steps"], [31, "tutorial-steps"], [32, "tutorial-steps"]], "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"], [25, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [29, "files-used-for-this-demos"], [31, "files-used-for-this-demos"], [32, "files-used-for-this-demos"]], "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"], [28, "controllers-from-this-demo"], [29, "controllers-from-this-demo"], [31, "controllers-from-this-demo"], [32, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[21, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[22, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[23, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[24, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[25, "diffbot"]], "Example 3: Robots with multiple interfaces": [[26, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[27, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[27, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[28, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[29, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[30, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[30, "ros2-control-overview"]], "Writing a URDF": [[30, "writing-a-urdf"]], "Geometry": [[30, "geometry"]], "URDF file": [[30, "urdf-file"]], "Writing a hardware interface": [[30, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[30, "plugin-description-file-hardware"]], "CMake library (hardware)": [[30, "cmake-library-hardware"]], "Writing a controller": [[30, "writing-a-controller"]], "Plugin description file (controller)": [[30, "plugin-description-file-controller"]], "CMake library (controller)": [[30, "cmake-library-controller"]], "Launching the example": [[30, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[31, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[32, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[33, "ackermann-steering-controller"]], "Admittance Controller": [[34, "admittance-controller"]], "ROS 2 interface of the controller": [[34, "ros-2-interface-of-the-controller"], [39, "ros-2-interface-of-the-controller"], [41, "ros-2-interface-of-the-controller"], [49, "ros-2-interface-of-the-controller"], [55, "ros-2-interface-of-the-controller"]], "Topics": [[34, "topics"], [39, "topics"], [41, "topics"], [49, "topics"], [55, "topics"]], "ros2_control interfaces": [[34, "ros2-control-interfaces"]], "References": [[34, "references"], [36, "references"], [47, "references"]], "States": [[34, "states"], [47, "states"], [48, "states"], [52, "states"]], "Commands": [[34, "commands"], [44, "commands"], [47, "commands"], [48, "commands"], [52, "commands"]], "bicycle_steering_controller": [[35, "bicycle-steering-controller"]], "diff_drive_controller": [[36, "diff-drive-controller"]], "Other features": [[36, "other-features"], [47, "other-features"], [53, "other-features"]], "Description of controller\u2019s interfaces": [[36, "description-of-controller-s-interfaces"], [47, "description-of-controller-s-interfaces"], [48, "description-of-controller-s-interfaces"], [52, "description-of-controller-s-interfaces"]], "Feedback": [[36, "feedback"]], "Output": [[36, "output"]], "ROS 2 Interfaces": [[36, "ros-2-interfaces"]], "Subscribers": [[36, "subscribers"], [48, "subscribers"], [52, "subscribers"]], "Publishers": [[36, "publishers"], [47, "publishers"], [48, "publishers"], [52, "publishers"]], "ros2_controllers": [[37, "ros2-controllers"]], "Controllers for Mobile Robots": [[37, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[37, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[37, "broadcasters"]], "Common Controller Parameters": [[37, "common-controller-parameters"]], "Writing a new controller": [[38, "writing-a-new-controller"]], "effort_controllers": [[39, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[39, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[40, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[41, "forward-command-controller"]], "Hardware interface type": [[41, "hardware-interface-type"], [44, "hardware-interface-type"]], "Gripper Action Controller": [[42, "gripper-action-controller"]], "List of parameters": [[42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [45, "list-of-parameters"], [50, "list-of-parameters"]], "An example parameter file": [[42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [45, "an-example-parameter-file"], [50, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[43, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[44, "joint-state-broadcaster"]], "Details about parameters": [[45, "details-about-parameters"]], "Trajectory Representation": [[46, "trajectory-representation"]], "Interpolation Method none": [[46, "interpolation-method-none"]], "Interpolation Method spline": [[46, "interpolation-method-spline"]], "Visualized Examples": [[46, "visualized-examples"]], "Trajectory Replacement": [[46, "trajectory-replacement"]], "joint_trajectory_controller": [[47, "joint-trajectory-controller"]], "Hardware interface types": [[47, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[47, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[47, "preemption-policy"]], "Actions 1": [[47, "actions"]], "Subscriber 1": [[47, "subscriber"]], "Services": [[47, "services"], [48, "services"]], "Further information": [[47, "further-information"]], "PID Controller": [[48, "pid-controller"]], "Execution logic of the controller": [[48, "execution-logic-of-the-controller"], [52, "execution-logic-of-the-controller"]], "Using the controller": [[48, "using-the-controller"]], "References (from a preceding controller)": [[48, "references-from-a-preceding-controller"], [52, "references-from-a-preceding-controller"]], "position_controllers": [[49, "position-controllers"]], "position_controllers/JointGroupPositionController": [[49, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[50, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[51, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[52, "steering-controllers-library"]], "tricycle_controller": [[53, "tricycle-controller"]], "Velocity commands": [[53, "velocity-commands"]], "tricycle_steering_controller": [[54, "tricycle-steering-controller"]], "velocity_controllers": [[55, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[55, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[56, "simulator-integrations"]], "Hosted by ros-controls": [[56, "hosted-by-ros-controls"]], "Community": [[56, "community"]], "Supported Robots": [[57, "supported-robots"]], "Communication protocols": [[57, "communication-protocols"]], "End-effectors": [[57, "end-effectors"]], "Non robot-devices": [[57, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[57, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[57, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation!": [[58, "welcome-to-the-ros2-control-documentation"]], "ros2_control Repositories": [[58, "ros2-control-repositories"]], "Development Organisation and Communication": [[58, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file