diff --git a/foxy/.buildinfo b/foxy/.buildinfo index a365eb8168..8eda68d4a6 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: 50c0ba5481193df4631152510c85f5e9 +config: 4dbb89807a0c0a90dfa28409344791a3 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree b/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree index 84112da7d5..55c1075b0c 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 3987cc0702..3f4b0fc907 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 6351d196aa..b50920033f 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 9822b3e88b..021b00c192 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 3ba4d0156b..6dbfd848ca 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 0c0570e8dc..5c78766898 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 6b1c53c7cc..d919eaa532 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 a2360870ac..8ffe75d669 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 0389a2dc10..a1ef142644 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 ed51b55177..47b198607b 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 64da35913a..727eeffd35 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 4bf3ea442d..4a2e3085cf 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 aa8bf8ed29..4602bc1ef5 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 0bb0c8669e..823ba11a9e 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 3778fc64ba..f31aef9fab 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 6c39a111d1..644ce23fbc 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 895b5dda5c..eba24aca64 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 d2a7f6cbba..7fdff7e71d 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 6bc0d11f5e..a9da7b2c8c 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 011f8108a6..2e94977206 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 82793b958d..34bc451399 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 581f487cf3..b40de8a181 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 ad77e61ca7..91f9c8f8ca 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 5e3454320e..aa050d5696 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 5431eeb81f..8373cddb72 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 b141295f01..67d6e5f724 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 bf365015e2..80ce3001eb 100644 --- a/foxy/index.html +++ b/foxy/index.html @@ -150,7 +150,7 @@

Development Organisation and Communication -

Built on 2024-12-02 at 05:40 GMT

+

Built on 2024-12-03 at 05:39 GMT

diff --git a/foxy/searchindex.js b/foxy/searchindex.js index 48548e263e..44d876360c 100644 --- a/foxy/searchindex.js +++ b/foxy/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "API Documentation": [[7, "api-documentation"]], "Acknowledgements": [[0, "acknowledgements"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Architecture": [[3, "architecture"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Available Broadcasters": [[12, "available-broadcasters"]], "Available Controllers": [[12, "available-controllers"]], "CI configuration": [[1, "ci-configuration"]], "Command Line Interface": [[9, "command-line-interface"]], "Commands": [[18, "commands"]], "Compiling": [[3, "compiling"]], "Concepts": [[7, "concepts"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Controller Migration": [[2, "controller-migration"]], "Controllers": [[3, "controllers"], [12, "id1"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Core functionalities": [[7, "core-functionalities"]], "Demos": [[10, "demos"]], "Details about parameters": [[20, "details-about-parameters"]], "Development Organisation and Communication": [[24, "development-organisation-and-communication"]], "Diagrams": [[5, "diagrams"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Fake Components": [[8, "fake-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Features": [[7, "features"]], "Force Torque Sensor Broadcaster": [[15, "force-torque-sensor-broadcaster"]], "Generic System": [[8, "generic-system"]], "Getting Started": [[3, "getting-started"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"]], "Hardware Components": [[3, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "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"]], "Helper scripts": [[6, "helper-scripts"]], "IMU Sensor Broadcaster": [[17, "imu-sensor-broadcaster"]], "Images": [[5, "images"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Mode switching demo": [[10, "mode-switching-demo"]], "Nomenclature": [[12, "nomenclature"]], "Other features": [[11, "other-features"], [20, "other-features"], [22, "other-features"]], "Overview": [[24, "overview"]], "Parameters": [[8, "parameters"], [15, "parameters"], [17, "parameters"], [18, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Presentations": [[5, "presentations"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Pull Requests": [[1, "pull-requests"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Repository organization": [[10, "repository-organization"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "Resource Manager": [[3, "resource-manager"]], "Resources": [[5, "resources"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "Trajectory representation": [[20, "trajectory-representation"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Useful External References": [[13, "useful-external-references"]], "User Interfaces": [[3, "user-interfaces"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Velocity commands": [[11, "velocity-commands"], [22, "velocity-commands"]], "Welcome to the ros2_control documentation - Foxy!": [[24, "welcome-to-the-ros2-control-documentation-foxy"]], "Writing a new controller": [[13, "writing-a-new-controller"]], "Writing documentation": [[1, "writing-documentation"]], "diff_drive_controller": [[11, "diff-drive-controller"]], "effort_controllers": [[14, "effort-controllers"]], "forward_command_controller": [[16, "forward-command-controller"]], "joint_state_broadcaster": [[18, "joint-state-broadcaster"]], "joint_state_controller": [[19, "joint-state-controller"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "list_controller_types": [[9, "list-controller-types"]], "list_controllers": [[9, "list-controllers"]], "list_hardware_interfaces": [[9, "list-hardware-interfaces"]], "load_controller": [[9, "load-controller"]], "position_controllers": [[21, "position-controllers"]], "reload_controller_libraries": [[9, "reload-controller-libraries"]], "ros2_controllers": [[12, "ros2-controllers"]], "set_controller_state": [[9, "set-controller-state"]], "spawner.py": [[6, "spawner-py"]], "switch_controllers": [[9, "switch-controllers"]], "tricycle_controller": [[22, "tricycle-controller"]], "unload_controller": [[9, "unload-controller"]], "unspawner.py": [[6, "unspawner-py"]], "velocity_controllers": [[23, "velocity-controllers"]]}, "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"], "envversion": {"sphinx": 61, "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}, "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"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 3, 4, 5, 10, 13, 24], "0": [3, 8, 18, 20], "01": 20, "02": 24, "03": 20, "05": [20, 24], "1": [1, 3, 4, 5, 8, 13], "100": 3, "12": 24, "171": 20, "175": 4, "2": [1, 3, 5, 8], "20": 20, "2020": 0, "2024": 24, "23": 3, "3": [3, 4], "302": 4, "303": 4, "304": 4, "350": 4, "3rd": 5, "40": 24, "43": 3, "45": 4, "50": [3, 20], "500": 4, "6d": 15, "732287": 0, "81": 4, "9": 4, "A": [3, 5, 13, 20], "As": [1, 13], "At": 13, "BY": 5, "Be": 1, "By": 20, "For": [1, 3, 4, 5, 8, 13, 20], "If": [1, 2, 3, 6, 13, 15, 20, 24], "In": [2, 3, 4, 5, 13], "It": [1, 2, 3, 4, 6, 15], "Its": 24, "Not": 20, "On": 3, "One": 5, "Such": 4, "That": [1, 13], "The": [0, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 20, 22, 24], "There": [3, 6, 13], "These": [14, 16, 21, 23], "To": [1, 2, 3, 24], "With": 5, "_control": 5, "_interfac": 2, "abi": 1, "abl": 1, "about": [4, 8, 24], "abov": [2, 20], "abstract": [3, 5], "acceler": [5, 10, 11, 12, 20, 22], "accept": [1, 13, 14, 16, 21, 23], "access": [3, 4, 5, 6, 8, 13], "accord": [12, 20], "aceleromet": 4, "achiev": [14, 16, 21, 23], "action": 20, "action_monitor_r": 20, "activ": [1, 2, 3, 9], "actuat": [2, 3, 4, 8], "actuatorinterfac": 2, "ad": [1, 4, 8, 13, 18], "add": [1, 2, 13], "addit": [2, 4], "addition": [4, 24], "address": [1, 4], "adjust": 9, "admitt": 5, "adopt": 4, "advantag": 8, "afraid": 1, "after": [1, 11, 13, 22], "again": 10, "against": 1, "agnost": 5, "agreement": 0, "aka": 5, "all": [1, 2, 3, 4, 5, 8, 10, 13, 18, 20], "allow": [2, 20], "allow_partial_joints_go": 20, "alreadi": [9, 13, 20], "also": [1, 2, 3, 4, 5, 13], "altern": [3, 20], "although": 4, "alwai": 1, "ament": 13, "ament_add_gmock": 13, "ament_cmak": 13, "ament_cmake_gmock": 13, "ament_export_librari": 13, "ament_packag": 13, "an": [1, 2, 3, 4, 5, 8, 9, 13, 20], "andi": 5, "angular": [11, 22], "angular_veloc": 17, "ani": [2, 3, 5, 13], "announc": 24, "anoth": 4, "answer": 24, "anymor": 2, "api": [1, 4], "appli": 9, "applic": [1, 3, 5, 6], "approach": 2, "appropri": 4, "approv": 1, "ar": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 17, 18, 20, 22, 24], "architectur": [4, 5], "arduino": 3, "argument": [6, 9], "arm": 5, "around": [4, 15, 17], "arrai": 18, "asap": 9, "ask": 13, "assign": 13, "assum": 3, "assur": 0, "attempt": 20, "author": 5, "auto": 3, "automat": [3, 11, 22], "autonom": 5, "avail": [2, 3, 5, 9, 10, 13, 18, 20], "avoid": [1, 13], "awar": 1, "ax": 15, "axi": [4, 15], "back": 1, "background": 1, "base": [3, 5, 9, 11, 13, 22], "base_link": 22, "bash": 13, "basic": [2, 3, 4, 5, 13], "becaus": 20, "becom": 5, "been": [10, 19], "befor": [1, 2, 6, 13], "behavior": [4, 8], "below": 5, "benc": [4, 5], "benchmark": 4, "best": [5, 13], "better": 5, "between": [3, 4, 19, 20], "binari": 1, "board": 3, "bodi": 11, "boolean": [8, 18, 20], "boost": 8, "booth": 5, "both": [4, 5], "bottom": 13, "box": 2, "brake": 1, "branch": 1, "broadcast": [8, 18, 19], "brook": 5, "buffer": [4, 24], "bug": 24, "build": [1, 13], "built": 24, "c": [4, 6, 9, 13], "calcul": 3, "call": [2, 3, 13], "can": [1, 2, 3, 4, 5, 7, 8, 13, 15, 19, 20, 24], "capabl": [3, 4], "care": [2, 4, 13], "case": [2, 4, 5, 13, 20, 24], "caus": 20, "cc": 5, "cell": [2, 15], "certain": [14, 16, 21, 23], "chain": 5, "chanc": 1, "chang": [1, 2, 3, 5, 9, 13, 20], "channel": 3, "check": [1, 2, 3, 4, 8, 10, 13, 20, 24], "choos": 2, "chosen": 3, "claim": 10, "class": [3, 5, 9, 13], "class_list_macro": 13, "clean": [1, 4], "cli": [3, 7, 9], "clock": 20, "close": 13, "cm": 3, "cmake": 13, "cmakelist": 13, "code": [1, 2, 4, 5, 13], "cokela": 1, "colcon": 13, "collabor": 1, "collect": [5, 14, 16, 21, 23], "com": [3, 4], "combin": [2, 8, 20], "combinedrobothardwar": 2, "command": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 16, 20, 21, 23, 24], "command_interfac": [3, 20], "command_interface_configur": [2, 13], "comment": 1, "commit": 1, "common": [3, 4, 12, 24], "commun": [2, 3, 4, 5], "compani": [0, 5], "company_nam": 5, "compar": [3, 4, 5], "compass": 4, "compat": [1, 2, 5], "compil": 13, "complet": [3, 12], "complex": [3, 4, 5], "compon": [0, 5, 6, 7, 11, 15, 17, 22, 24], "composit": [2, 5], "comprehens": 10, "comput": [11, 22], "concept": [4, 5, 8, 10], "conductor": 4, "configur": [2, 3, 4, 5, 6, 9, 10, 13, 20], "configure_control": 9, "configure_start_control": 9, "conflict": [2, 3, 4], "connect": 3, "consid": [1, 9], "consist": [4, 20, 24], "constant": 2, "constraint": [13, 20], "constructor": [2, 13], "consult": 5, "contact": 5, "content": 13, "continu": 20, "contribut": [0, 1, 5], "contributor": 1, "control": [5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24], "control_msg": [20, 24], "control_toolbox": [4, 24], "controller_interfac": [3, 4, 9, 13, 15, 17], "controller_manag": [3, 4, 6, 9, 13, 20], "controller_manager_msg": 3, "controller_manager_timeout": 6, "controller_nam": [6, 9, 13], "controller_name_namespac": 13, "controller_name_packag": 13, "controller_typ": 6, "controllerinterfac": [2, 3, 9, 13], "controllermanag": 2, "controllernam": 13, "convent": 1, "copi": 13, "core": 1, "correct": [1, 2, 20], "correspond": [8, 13, 24], "could": [3, 5, 13, 20], "cowboi": 1, "cpp": [2, 13], "creat": [2, 3, 5, 8, 13], "critic": [2, 4], "cross": 2, "cubic": 20, "current": [1, 4, 9, 20], "custom": [3, 8, 15], "custom_interface_with_following_offset": 8, "cycl": 5, "daemon": 9, "dai": 1, "data": [2, 3, 4, 8, 19], "dc": 3, "deactiv": [2, 3], "deal": 3, "debug": 8, "decid": 2, "declar": [2, 13], "deeper": 5, "default": [2, 3, 8, 18, 20], "defin": [2, 3, 4, 8, 12, 13, 15, 17, 18, 20], "definit": [3, 12, 13, 15], "degrad": 4, "delv": 5, "demo": 5, "demonstr": 10, "deni": [4, 5], "depend": [1, 3, 13, 20], "deprec": [9, 12], "deriv": 3, "describ": [2, 3], "descript": [1, 2, 5, 13], "design": [2, 3, 4, 5, 24], "desir": [4, 20], "detail": [1, 2, 3, 8, 13], "develop": [1, 5, 8, 10, 13], "deviat": 20, "diff_drive_control": [4, 9], "diffdrivecontrol": 9, "differ": [3, 4, 5, 14, 15, 16, 21, 23], "differenti": [11, 12, 19, 24], "difficulti": 4, "direct": [1, 2, 4, 13], "directli": [3, 24], "directori": 13, "discontinu": 20, "discourag": 20, "discours": 24, "discoveri": 9, "discuss": [1, 5, 24], "distribut": [1, 24], "do": [1, 2, 3, 4, 5, 6, 13, 20], "doc": 24, "document": [3, 4, 5, 8, 19], "doe": [2, 13, 20], "doesn": 1, "dof": 3, "don": 1, "done": [5, 13], "doubl": [4, 8, 20], "down": 5, "doxygen": 7, "dr": 5, "draft": 4, "drawback": [2, 24], "drive": [11, 12, 22, 24], "driver": [3, 5], "dynam": [3, 13], "dynamic_joint_st": 18, "e": [1, 2, 3, 4, 5, 8, 13, 14, 15, 16, 18, 20, 21, 23, 24], "each": [1, 3, 4], "earlier": 4, "easi": 4, "easiest": 13, "edit": 5, "effector": 3, "effort": [2, 12, 14, 16, 20], "effort_control": 12, "eg": 20, "either": 5, "els": 1, "emerg": 5, "empti": 13, "enabl": [2, 3, 4, 5, 10, 15], "encod": 3, "encourag": 1, "end": [2, 3, 13, 20], "enforc": [2, 20], "engin": 13, "enjoi": 13, "ensur": [2, 5], "entri": [3, 13], "entropi": 1, "environ": [1, 3, 5], "envis": 4, "equival": 2, "error": [3, 4, 13, 20], "especi": [1, 2], "essenti": 4, "etc": 24, "eu": 0, "european": 0, "even": 8, "event": 5, "everi": 24, "everyth": [4, 13], "exact": 13, "exactli": 1, "exampl": [2, 3, 4, 5, 8, 9, 10, 15, 20, 24], "example_interfac": 15, "example_nam": 15, "example_param_read_for_sec": 3, "example_param_write_for_sec": 3, "excel": 2, "except": 1, "exchang": [2, 4], "execut": [3, 13, 20], "executor": 3, "exercis": 1, "exist": [2, 3, 4, 6, 13], "exit": [6, 9], "expect": [1, 4, 20], "experi": 1, "explan": 3, "explicit": [5, 20], "explicitli": 1, "export": [3, 13], "export_": 2, "expos": 5, "extend": [2, 3, 4, 13], "extern": [2, 3, 4, 8], "extra": [5, 18], "extra_joint": 18, "extract": [2, 11, 22], "factor": 5, "fail": 1, "failur": 4, "fake": 7, "fake_sensor_command": 8, "fals": [8, 18, 20], "familiar": [4, 24], "featur": [1, 5, 8, 24], "feedback": [11, 20, 22], "feedforward": 20, "few": [4, 5], "figur": 3, "file": [2, 3, 4, 5, 6, 8, 13, 20], "final": [2, 5], "find": 1, "find_packag": 13, "fine": 13, "first": [1, 2, 13], "fiveai": 5, "fix": [1, 2], "fixup": 1, "flag": [13, 20], "flexibl": 3, "focu": 5, "focus": [4, 5], "folder": [3, 5, 13], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 12, 13, 20, 24], "follow_joint_trajectori": 20, "followjointtrajectori": 20, "forc": [3, 5, 9, 12], "forcetorquesensor": 15, "forcetorquesensor1dhardwar": 3, "forget": 2, "fork": 1, "form": 4, "format": 4, "forward": [5, 8, 12, 20, 24], "forward_command_controller_acceler": 10, "forward_command_controller_illegal1": 10, "forward_command_controller_illegal2": 10, "forward_command_controller_posit": 10, "forward_command_controller_veloc": 10, "forwardcommandcontrol": 3, "found": [3, 7, 13, 19, 20, 24], "foxi": [1, 3, 5], "frame": [15, 17], "frame_id": [3, 15, 17], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 24], "frequenc": 4, "friend": 13, "friendli": 3, "from": [0, 1, 2, 3, 5, 6, 8, 9, 11, 13, 15, 17, 20, 22, 24], "ft": 15, "full": 13, "function": [1, 2, 3, 4, 5], "fund": 0, "further": 13, "furthermor": 5, "futur": [1, 5], "g": [1, 2, 3, 4, 5, 8, 13, 14, 16, 18, 21, 23, 24], "galact": 1, "gazebo": 4, "gener": [4, 5, 13, 20, 24], "geometry_msg": 15, "get": [5, 24], "github": [3, 4, 7, 12, 24], "githubusercont": 3, "give": [1, 3, 5, 24], "given": [3, 20], "gmock": 4, "gmt": 24, "go": [5, 13], "goal": [4, 5, 20, 24], "goal_tim": 20, "good": [1, 4], "googl": 24, "gpio": 4, "grace": 4, "grant": 0, "granular": 2, "great": 13, "green": 1, "gripper": [2, 3, 8], "gripper_joint": 3, "group": [4, 20, 24], "guarante": 20, "guard": 13, "gui": 10, "guid": [5, 13], "guidelin": 1, "gyroscop": 4, "h": [6, 9, 13, 19], "ha": [0, 1, 3, 4, 5, 13, 19], "had": 2, "hand": 3, "handl": [1, 2, 4, 5, 20], "handler": 5, "hard": [2, 4], "hardwar": [5, 6, 8, 10, 12, 13, 22, 24], "hardware_interfac": [2, 3, 8, 12, 13], "hardwareinfo": 2, "have": [1, 2, 3, 4, 8, 10, 13, 20], "header": [1, 13], "heartbeat": 4, "heavi": 5, "help": [1, 6, 9, 13], "here": [2, 7, 13, 19, 20], "hereund": 3, "hidden": 9, "high": 4, "horizon": 0, "hot": 5, "hour": 4, "how": [1, 4, 5, 13], "howev": [4, 6], "hpp": 13, "html": 1, "http": [0, 1, 3, 4], "humanoid": 3, "hw_if_effort": 12, "hw_if_posit": 12, "hw_if_veloc": 12, "hydraul": 20, "hz": 4, "i": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24], "id8": 1, "idea": 24, "ideal": [5, 8], "identifi": 4, "ifndef": 13, "ignit": 4, "ignor": [11, 20, 22], "immedi": 1, "impact": 1, "implement": [2, 3, 4, 5, 8, 10, 11, 12, 13, 20, 22, 24], "import": [3, 13, 20], "importantli": 13, "imposs": 2, "improv": 4, "imu": [4, 12], "imusensor": 17, "inc": 5, "includ": [2, 4, 9, 13], "increas": 1, "inde": 10, "independ": 3, "individu": 13, "industri": [0, 3, 4], "influenc": 5, "info": 1, "inform": [0, 8, 13, 24], "ingredi": 5, "init": [2, 13], "initi": [2, 13], "inject": 5, "innov": 0, "input": [3, 4, 5, 11, 20, 22], "insert": 5, "insid": 8, "instal": [3, 13], "instanc": 4, "instant": 20, "instead": [3, 8, 19, 20], "institut": 0, "integr": [3, 4, 5, 8, 10, 20, 24], "intent": [1, 8], "interact": [3, 5, 6, 9], "interfac": [4, 5, 6, 7, 8, 10, 12, 13, 15, 17, 24], "interface_nam": 15, "interface_typ": 13, "intern": [4, 20], "interpol": [12, 20], "interrupt": [2, 6], "introduc": [4, 5], "introduct": [5, 20], "involv": 5, "issu": [1, 4, 24], "its": [1, 2, 3, 4, 5, 15, 17], "itself": 2, "ivanov": 5, "jerk": [5, 11, 22], "johann": 5, "join": 24, "joint": [2, 3, 5, 11, 12, 13, 14, 16, 18, 21, 23, 24], "joint1": [3, 8, 9, 10, 20], "joint2": [3, 9, 10, 20], "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "joint_a2": 2, "joint_nam": [13, 20], "joint_stat": 18, "joint_state_broadcast": 19, "joint_state_control": [9, 10], "joint_trajectori": 20, "joint_trajectory_control": [4, 9], "joint_trajectory_plugin": 2, "jointstatecontrol": 9, "jointtrajectori": 20, "jointtrajectorycontrol": [2, 9], "jointtrajectorycontrollerst": 20, "keep": [1, 13], "kernel": 5, "khz": 4, "kill": [6, 9], "kinemat": 5, "knudsen": 5, "kuka": 3, "last": [13, 20], "latest": 3, "launch": [3, 6, 8, 10], "layer": 5, "least": [13, 20], "leav": 6, "less": 15, "let": 10, "level": [4, 5, 14, 16, 20, 21, 23], "librari": [2, 3, 4, 9, 13], "licens": 5, "life": 5, "lifecycl": [2, 3, 5, 6], "lifecyclenod": 3, "like": [1, 2, 3, 4, 5], "limit": [1, 4, 5, 11, 22], "line": [3, 7, 13], "linear": [11, 20, 22], "linear_acceler": 17, "link": [3, 5], "linter": 1, "list": [3, 5, 9, 10, 12, 13, 20, 24], "list_hardware_interfac": 10, "live": [1, 5], "load": [3, 6, 9, 10, 13], "load_configure_control": 9, "load_control": 10, "load_start_control": 9, "local": [1, 18], "logic": 3, "long": 4, "look": 5, "loop": [3, 5, 13, 20], "lovro": 5, "low": [4, 5], "ltd": 5, "machin": [3, 4], "macro": [2, 3, 13], "made": 5, "magyar": [4, 5], "mai": [14, 16, 21, 23], "main": [1, 3, 4, 5, 6, 8, 13, 24], "maintain": [1, 3, 4], "major": 0, "make": [1, 2, 4, 5, 24], "manag": [2, 4, 5, 7, 9, 13, 24], "mandatori": [3, 15, 17, 20], "mani": [5, 13], "manipul": [5, 20], "manual": [3, 4, 13, 24], "map": [8, 20], "mark": 2, "master": [1, 3, 4], "match": 3, "materi": 5, "matter": 1, "max": 3, "max_forc": 3, "maxim": 20, "mayb": 2, "md": 3, "mean": [1, 2, 8], "measur": [3, 8, 15], "mechan": 20, "medium": 4, "meet": 24, "member": [2, 13], "memori": [4, 13], "mentor": 4, "messag": [1, 4, 6, 9, 15, 17, 18, 20, 24], "method": [1, 2, 3, 13], "mid": 1, "mimic": 8, "mimick": 8, "min": 3, "min_forc": 3, "mind": [1, 13], "minim": 24, "mirror": 8, "miss": 4, "mobil": [5, 11, 22], "mock": 5, "mode": [4, 20], "modifi": 5, "modul": 4, "modular": [3, 5], "moment": 4, "monitor": 20, "more": [0, 1, 2, 3, 4, 8, 13], "most": [4, 13], "motiv": 4, "motor": [3, 4], "moveit": [5, 8], "moveit2": [4, 5], "movement": 4, "msg": [15, 17, 20], "much": [4, 13], "multi": [2, 3, 4, 5, 10], "multipl": [2, 3, 20], "multipli": 8, "must": 1, "my": 5, "my_state_broadcast": 18, "najjar": 5, "name": [1, 2, 3, 5, 6, 8, 9, 13, 15, 17, 18, 20], "namespac": [6, 12, 13, 18, 20], "nan": 20, "nathan": 5, "nav2": 5, "navig": 5, "necessari": 1, "need": [2, 3, 4, 5, 13], "net": 5, "new": [1, 5, 12, 20, 24], "next": [1, 20], "nobodi": 1, "node": [3, 6, 8, 9, 10, 13], "non": [1, 5, 15], "none": 13, "note": [1, 3, 10, 24], "now": [10, 13], "numer": 20, "numeric_limit": 20, "obei": 5, "object": 3, "odometri": [11, 22], "offer": [5, 6], "offlin": 8, "offset": [8, 20], "often": [4, 8, 13], "ok": 13, "on_activ": [2, 13], "on_configur": [2, 13], "on_deactiv": [2, 13], "onc": [4, 5], "one": [1, 2, 3, 4, 5, 13, 15, 24], "onli": [1, 2, 3, 4, 5, 6, 9, 13, 15, 20], "onlin": [5, 13], "open": [1, 20], "open_loop_control": 20, "openli": 5, "oper": 24, "opposit": 13, "optim": 2, "option": [2, 6, 8, 9, 13, 15, 18, 20], "orbit": 4, "orchestr": 4, "order": 19, "org": 4, "organ": [1, 5, 24], "orient": 17, "origin": [1, 5], "other": [1, 2, 3, 5, 13], "otherwis": 13, "our": [1, 3, 4, 5], "out": [2, 11], "output": [3, 4, 5, 9, 15, 17, 20], "over": [1, 4], "overcom": 24, "overrid": 13, "overview": 5, "p": 6, "pace": 1, "packag": [1, 2, 3, 10, 13, 15, 17, 19, 20, 24], "package_nam": 13, "parallel": [3, 8], "param": [3, 6, 8], "param_fil": 6, "paramet": [2, 5, 13], "parent": 13, "pars": [2, 7], "part": [1, 4, 5, 13], "parti": 5, "path": 5, "pendant": 5, "peopl": 1, "per": [4, 15], "perform": 5, "physic": [2, 3, 8], "picknik": 5, "pid": [20, 24], "ping": 1, "pipe": 8, "pipelin": 1, "pixel": 5, "pkg": 13, "place": [4, 13, 20], "plan": [5, 24], "plapp": 5, "pleas": [1, 24], "plu": 20, "plugin": [3, 13], "pluginlib": [2, 3, 13], "pluginlib_export_class": [2, 13], "pluginlib_export_plugin_description_fil": 13, "point": [3, 12, 13, 24], "port": 4, "posit": [2, 3, 5, 6, 9, 10, 12, 14, 16, 20, 21, 23], "position_control": [12, 20], "position_state_following_offset": 8, "position_velocity_acceleration_control": 20, "position_velocity_control": 20, "positionactuatorhardwar": 3, "possibl": [1, 3, 4, 13, 20], "potenti": [1, 13], "power": 5, "pr": 1, "practic": 5, "practition": 5, "pre": 1, "predefin": 20, "prefac": 5, "prefer": 4, "prefix": [13, 15, 17], "prepar": 13, "preprocessor": 13, "preset": 4, "previou": 24, "problem": [5, 24], "process": 13, "profil": 4, "programm": 0, "project": [0, 1, 24], "proper": [1, 20], "proport": 1, "propos": 24, "protect": [4, 13], "prove": 10, "provid": [3, 4, 5, 6, 8, 10, 12, 13, 20, 24], "proxi": 20, "public": 13, "publish": [4, 11, 15, 17, 18, 20, 22, 24], "pull": 4, "pure": [3, 20], "purpos": 4, "put": [1, 13], "py": 10, "qualiti": [0, 1], "question": 24, "queu": 20, "quick": 5, "quiet_nan": 20, "quintic": 20, "quit": 4, "random": 1, "rang": 3, "rate": [4, 20], "raw": 3, "rclcpp": 13, "rclcpp_lifecycl": 13, "re": 3, "reach": 20, "read": [1, 2, 3, 13, 18, 20], "readabl": 4, "readi": [5, 13], "readm": 3, "real": [2, 4, 5, 8, 13, 18, 20, 24], "realiz": [3, 5], "realtim": [5, 11, 20, 22, 24], "realtime_tool": [4, 24], "reason": 5, "receiv": [0, 2], "recent": 13, "recommend": [3, 5], "record": 5, "reduc": [1, 8], "refer": 3, "regard": 24, "regardless": 1, "regist": 2, "relat": [3, 4, 5], "releas": [1, 3, 5], "relev": [4, 24], "reli": 4, "reload": 9, "rememb": 13, "remov": 19, "renam": 19, "repeatedli": 1, "replac": 4, "repo": [1, 3], "report": [3, 4, 18, 24], "repositori": [3, 4, 7, 12, 24], "repres": 3, "reproduc": 24, "request": [2, 24], "requir": [1, 2, 3, 4, 13], "research": [0, 5], "reserv": 13, "resourc": 2, "resourcemanag": 2, "respect": [4, 5], "rest_syntax": 1, "result": [1, 3], "return": 13, "return_typ": 13, "reus": 5, "review": [1, 4, 24], "rewrit": [4, 24], "rich": 4, "right": 4, "rigid": 2, "rm": 3, "ro": [0, 1, 3, 4, 6, 8, 9, 19, 24], "roadmap": [4, 24], "robot": [0, 2, 4, 10, 11, 15, 22, 24], "robothw": 2, "robust": 20, "root": 13, "ros1": 5, "ros2": [3, 4, 5, 6, 9, 10, 13, 24], "ros2_control": [1, 3, 5, 6, 8, 10, 13], "ros2_control_demo": [1, 3, 24], "ros2_control_demo_bringup": 10, "ros2_control_demo_hardwar": [3, 10], "ros2_control_nod": 3, "ros2_control_test_asset": 13, "ros2_control_test_nod": 10, "ros2controlcli": 3, "ros__paramet": 20, "ros_control": [4, 5, 24], "ros_distro": 1, "rosin": 0, "rrbot": [3, 10], "rrbot_system_multi_interfac": 10, "rrbot_tcp": 3, "rrbotforcetorquesensor1d": 3, "rrbotgripp": 3, "rrbotsystempositiononli": 3, "rrbotsystempositiononlyhardwar": [2, 3], "rsi": 3, "rule": 13, "run": [4, 5, 6, 9], "rune": 5, "safe": [2, 11, 13, 20, 22], "safeti": 4, "same": [1, 3, 4, 15], "satisfi": 1, "scale": 5, "scenario": 4, "scope": 1, "script": [3, 4, 13], "search": 13, "second": [4, 9, 13, 24], "section": [1, 2, 13], "see": [1, 2, 3, 10, 13, 15, 17, 20], "segment": 20, "semant": [5, 15, 17], "semantic_compon": 4, "semi": 1, "sens": [2, 3, 15], "sensibl": 2, "sensor": [2, 3, 4, 8, 12], "sensor_msg": 17, "sensor_nam": [15, 17], "sensorinterfac": 2, "sent": 4, "separ": [1, 2, 3], "serv": [1, 3, 4], "server": 20, "servic": [3, 4, 6], "set": [1, 2, 4, 5, 8, 9, 14, 16, 18, 20, 21, 23], "set_controller_st": 10, "set_stat": 9, "setup": [3, 4, 13], "share": [5, 13], "shell": 13, "short": [1, 13, 24], "should": [1, 2, 4, 5, 6, 9, 10, 13, 18], "show": [1, 3, 5, 6, 9], "showcas": [4, 5], "shown": 5, "side": [3, 4, 5], "signal": 4, "similar": [1, 3, 5], "similarli": 20, "simpl": [3, 4, 5, 10, 13, 19], "simplecontrollermanag": 4, "simpli": [5, 20], "simplifi": [13, 24], "simul": [4, 8, 10], "singl": 5, "six": 15, "size": 4, "skeleton": 3, "skill": 4, "smooth": 24, "snake_cas": 13, "snippet": 2, "so": [3, 13], "softwar": [0, 3], "solut": [2, 5], "some": [1, 4, 5, 20, 24], "sort": [12, 13], "sourc": [1, 3, 5, 13], "space": [11, 20], "specif": [4, 20], "specifi": [13, 20], "sphinx": 1, "spin": 9, "spin_tim": 9, "spline": 20, "squash": 1, "src": [3, 13], "srv": 3, "stabl": [1, 4], "stack": [3, 5], "stage": 1, "standard": [1, 2, 3, 4, 5, 9, 12, 15], "start": [1, 2, 5, 6, 9, 10, 13, 20, 24], "startup": 6, "state": [2, 3, 4, 5, 8, 9, 10, 12, 13, 15, 18, 20], "state_interfac": [3, 20], "state_interface_configur": [2, 13], "state_publish_r": 20, "statu": [4, 9, 20], "std": 20, "steer": 22, "step": [13, 20, 24], "still": [1, 2, 3], "stogl": 5, "stop": [2, 5, 6, 9, 10, 11, 22], "stopped_velocity_toler": 20, "store": 13, "strategi": [2, 20], "stream": [2, 5], "stretch": 4, "strict": 9, "string": [2, 8, 13, 18, 20], "struct": 4, "structur": [3, 4, 13, 20], "studi": 5, "style": [1, 13], "submit": [1, 5], "success": 13, "suffici": [1, 15], "suitabl": [2, 5], "summari": [1, 5, 24], "support": [0, 2, 3, 5, 8, 9, 13, 20, 24], "sure": [1, 4, 24], "surround": 2, "switch": [4, 9], "switch_control": 10, "switch_timeout": 9, "sync": 1, "system": [2, 3, 4, 5, 10, 20, 24], "systemcompon": 5, "systeminterfac": [2, 8], "s\u00f8e": 5, "t": [1, 6], "tag": [3, 13, 24], "take": [2, 4, 13, 18], "talk": 5, "target": [1, 12, 13, 20], "task": [4, 5, 11], "tcp_fts_sensor": 3, "teach": 5, "teleoper": 5, "templat": [10, 13, 20], "term": [20, 24], "test": [1, 4, 8, 10, 13], "test_control": 9, "test_controller_nam": 9, "test_depend": 13, "test_load_": 13, "thank": 1, "thei": [1, 2, 3, 4, 5, 8, 9, 12, 13, 20], "them": [1, 3, 4, 6, 13, 18], "theori": [3, 24], "therefor": [4, 13, 18, 20], "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24], "thing": 1, "thoma": 1, "those": [1, 2, 3, 4, 8, 13, 15, 20], "thread": 4, "three": [1, 2, 3, 13], "through": [3, 4, 9, 11, 12, 13, 20, 24], "time": [1, 2, 4, 5, 6, 8, 9, 11, 13, 15, 20, 24], "timeout": [6, 9, 22], "tip": 5, "titl": 1, "togeth": 3, "toler": 20, "toni": 5, "took": 2, "tool": [2, 4, 5], "toolkit": 24, "top": 5, "topic": [4, 5, 20], "torqu": [3, 12], "traceabl": 1, "track": [3, 24], "tracker": 24, "traction": 22, "trajectori": [5, 12, 24], "trajectory_msg": 20, "translat": [11, 22], "transmiss": 3, "tree": 4, "tri": 20, "trick": 4, "tricycl": [5, 12, 22], "trigger": 4, "trivial": [1, 8], "true": [19, 20], "turtl": 19, "tutori": 1, "twist": [11, 22], "two": [1, 3, 4, 6, 13, 15], "txt": 13, "type": [1, 2, 3, 5, 6, 9, 12, 13, 15, 17], "typic": [4, 20], "u": [1, 6], "unclaim": [9, 10], "unconfigur": 6, "under": [0, 5, 13, 24], "understand": [1, 4], "unifi": 5, "union": 0, "uniqu": 13, "unit": 4, "univers": [1, 4, 5], "unload": [3, 6, 9], "unreleas": 24, "until": 6, "up": [1, 5, 10], "updat": [2, 3, 4, 13], "upgrad": 5, "ur": 5, "urdf": 2, "us": [1, 2, 3, 4, 5, 8, 9, 12, 14, 15, 16, 17, 18, 19, 21, 23, 24], "usabl": 3, "usag": [5, 6, 9], "use_local_top": 18, "user": 4, "usual": [2, 8, 13], "util": 5, "valu": [2, 3, 4, 8, 13, 20], "valv": 3, "variabl": [2, 4, 13], "variou": 4, "vc": 3, "vector": 13, "veloc": [2, 3, 5, 10, 12, 20, 21, 23], "velocity_control": 12, "veri": [1, 2, 4], "version": [1, 4], "via": 3, "virtual": 5, "visibility_control": 13, "visibl": 13, "visit": 3, "vivid": 1, "wa": [4, 13], "wai": [1, 13, 15], "wait": [6, 9], "want": 3, "waypoint": [5, 12, 20], "we": [1, 4, 5], "wednesdai": 24, "weekend": 1, "welcom": 1, "well": [5, 9, 20], "were": 4, "wg": 24, "wget": 3, "what": 5, "wheel": 11, "when": [1, 2, 3, 4, 8, 9, 13, 20], "where": [1, 4, 13], "which": [2, 3, 4, 5, 9, 11, 13, 15, 17, 20, 22], "while": [3, 4, 5, 10, 20], "wide": 24, "wikipedia": [3, 24], "wild": 5, "window": 13, "without": [2, 3, 8, 13], "work": [1, 4, 5, 11, 13, 14, 16, 20, 21, 22, 23, 24], "workspac": [3, 13], "world": [6, 8], "wrap": 20, "wrapper": [15, 17], "wrenchstamp": 15, "write": [2, 3, 4, 5, 12], "written": 13, "x": [11, 15, 17, 22], "xacro": 3, "xml": [2, 13], "y": 15, "yaml": [3, 4, 20], "yet": 20, "yield": 20, "you": [1, 2, 3, 5, 8, 13, 24], "your": [1, 2, 5, 8, 13, 24], "z": [11, 15, 22], "zeleank": 5, "zelenak": 5, "\u0161togl": [4, 5]}, "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!"], "titleterms": {"": [2, 20], "02": 5, "05": 5, "06": 5, "07": 5, "10": 5, "12": 5, "13": 5, "2021": 5, "2022": [4, 5], "2023": 5, "5": 5, "about": 20, "access": 2, "acknowledg": 0, "add": 4, "api": 7, "architectur": 3, "asynchron": 4, "avail": 12, "best": 12, "broadcast": [12, 15, 17], "ci": 1, "class": 2, "command": [9, 11, 18, 22], "commun": 24, "compil": 3, "compon": [2, 3, 4, 8], "concept": 7, "confer": 5, "configur": 1, "control": [2, 3, 4, 6, 12, 13, 20], "core": 7, "demo": [4, 10], "descript": 3, "detail": 20, "develop": 24, "diagram": 5, "diff_drive_control": 11, "differ": 2, "document": [1, 7, 24], "effort_control": 14, "extern": 13, "fake": 8, "featur": [4, 7, 11, 20, 22], "forc": 15, "forward_command_control": 16, "foxi": 24, "fr": 5, "framework": 3, "from": 4, "function": 7, "gener": 8, "get": 3, "gsoc": 4, "guid": 2, "guidelin": 12, "hardwar": [2, 3, 4, 11, 14, 16, 18, 20, 21, 23], "helper": 6, "idea": 4, "imag": 5, "imu": 17, "industri": 5, "interfac": [2, 3, 9, 11, 14, 16, 18, 20, 21, 23], "joint": [8, 20], "joint_state_broadcast": 18, "joint_state_control": 19, "joint_trajectory_control": 20, "jointtrajectorycontrol": 20, "line": 9, "list_control": 9, "list_controller_typ": 9, "list_hardware_interfac": 9, "load_control": 9, "manag": [3, 6], "meetup": 5, "merg": 1, "migrat": 2, "mission": 4, "mode": 10, "munich": 5, "new": 13, "nomenclatur": 12, "organ": 10, "organis": 24, "other": [11, 20, 22], "overview": 24, "paramet": [8, 15, 17, 18, 20], "pariti": 4, "per": 8, "position_control": 21, "practic": 12, "present": 5, "process": 1, "project": 4, "pull": 1, "py": 6, "refer": 13, "reload_controller_librari": 9, "repositori": [1, 10], "represent": 20, "request": 1, "resourc": [3, 5], "ro": 5, "robot": [3, 5], "robothardwar": 2, "ros1": [2, 4], "ros2": 20, "ros2_control": [2, 4, 12, 24], "ros_control": 2, "roscon": 5, "rosdevdai": 5, "rule": 1, "run": 3, "script": 6, "semant": 4, "sensor": [15, 17], "set_controller_st": 9, "spawner": 6, "special": 20, "start": 3, "structur": [1, 2], "support": 4, "switch": 10, "switch_control": 9, "system": 8, "tbd": 20, "torqu": 15, "trajectori": 20, "tricycle_control": 22, "tutori": 4, "type": [11, 14, 16, 18, 20, 21, 23], "unload_control": 9, "unspawn": 6, "urdf": 3, "us": [13, 20], "user": 3, "veloc": [11, 22], "velocity_control": 23, "version": 20, "weekli": 5, "welcom": 24, "world": 5, "write": [1, 13], "your": 3}}) \ No newline at end of file +Search.setIndex({"alltitles": {"2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "API Documentation": [[7, "api-documentation"]], "Acknowledgements": [[0, "acknowledgements"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Architecture": [[3, "architecture"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Available Broadcasters": [[12, "available-broadcasters"]], "Available Controllers": [[12, "available-controllers"]], "CI configuration": [[1, "ci-configuration"]], "Command Line Interface": [[9, "command-line-interface"]], "Commands": [[18, "commands"]], "Compiling": [[3, "compiling"]], "Concepts": [[7, "concepts"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Controller Migration": [[2, "controller-migration"]], "Controllers": [[3, "controllers"], [12, "id1"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Core functionalities": [[7, "core-functionalities"]], "Demos": [[10, "demos"]], "Details about parameters": [[20, "details-about-parameters"]], "Development Organisation and Communication": [[24, "development-organisation-and-communication"]], "Diagrams": [[5, "diagrams"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Fake Components": [[8, "fake-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Features": [[7, "features"]], "Force Torque Sensor Broadcaster": [[15, "force-torque-sensor-broadcaster"]], "Generic System": [[8, "generic-system"]], "Getting Started": [[3, "getting-started"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"]], "Hardware Components": [[3, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "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"]], "Helper scripts": [[6, "helper-scripts"]], "IMU Sensor Broadcaster": [[17, "imu-sensor-broadcaster"]], "Images": [[5, "images"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Mode switching demo": [[10, "mode-switching-demo"]], "Nomenclature": [[12, "nomenclature"]], "Other features": [[11, "other-features"], [20, "other-features"], [22, "other-features"]], "Overview": [[24, "overview"]], "Parameters": [[8, "parameters"], [15, "parameters"], [17, "parameters"], [18, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Presentations": [[5, "presentations"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Pull Requests": [[1, "pull-requests"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Repository organization": [[10, "repository-organization"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "Resource Manager": [[3, "resource-manager"]], "Resources": [[5, "resources"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "Trajectory representation": [[20, "trajectory-representation"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Useful External References": [[13, "useful-external-references"]], "User Interfaces": [[3, "user-interfaces"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Velocity commands": [[11, "velocity-commands"], [22, "velocity-commands"]], "Welcome to the ros2_control documentation - Foxy!": [[24, "welcome-to-the-ros2-control-documentation-foxy"]], "Writing a new controller": [[13, "writing-a-new-controller"]], "Writing documentation": [[1, "writing-documentation"]], "diff_drive_controller": [[11, "diff-drive-controller"]], "effort_controllers": [[14, "effort-controllers"]], "forward_command_controller": [[16, "forward-command-controller"]], "joint_state_broadcaster": [[18, "joint-state-broadcaster"]], "joint_state_controller": [[19, "joint-state-controller"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "list_controller_types": [[9, "list-controller-types"]], "list_controllers": [[9, "list-controllers"]], "list_hardware_interfaces": [[9, "list-hardware-interfaces"]], "load_controller": [[9, "load-controller"]], "position_controllers": [[21, "position-controllers"]], "reload_controller_libraries": [[9, "reload-controller-libraries"]], "ros2_controllers": [[12, "ros2-controllers"]], "set_controller_state": [[9, "set-controller-state"]], "spawner.py": [[6, "spawner-py"]], "switch_controllers": [[9, "switch-controllers"]], "tricycle_controller": [[22, "tricycle-controller"]], "unload_controller": [[9, "unload-controller"]], "unspawner.py": [[6, "unspawner-py"]], "velocity_controllers": [[23, "velocity-controllers"]]}, "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"], "envversion": {"sphinx": 61, "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}, "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"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 3, 4, 5, 10, 13, 24], "0": [3, 8, 18, 20], "01": 20, "03": [20, 24], "05": [20, 24], "1": [1, 3, 4, 5, 8, 13], "100": 3, "12": 24, "171": 20, "175": 4, "2": [1, 3, 5, 8], "20": 20, "2020": 0, "2024": 24, "23": 3, "3": [3, 4], "302": 4, "303": 4, "304": 4, "350": 4, "39": 24, "3rd": 5, "43": 3, "45": 4, "50": [3, 20], "500": 4, "6d": 15, "732287": 0, "81": 4, "9": 4, "A": [3, 5, 13, 20], "As": [1, 13], "At": 13, "BY": 5, "Be": 1, "By": 20, "For": [1, 3, 4, 5, 8, 13, 20], "If": [1, 2, 3, 6, 13, 15, 20, 24], "In": [2, 3, 4, 5, 13], "It": [1, 2, 3, 4, 6, 15], "Its": 24, "Not": 20, "On": 3, "One": 5, "Such": 4, "That": [1, 13], "The": [0, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 20, 22, 24], "There": [3, 6, 13], "These": [14, 16, 21, 23], "To": [1, 2, 3, 24], "With": 5, "_control": 5, "_interfac": 2, "abi": 1, "abl": 1, "about": [4, 8, 24], "abov": [2, 20], "abstract": [3, 5], "acceler": [5, 10, 11, 12, 20, 22], "accept": [1, 13, 14, 16, 21, 23], "access": [3, 4, 5, 6, 8, 13], "accord": [12, 20], "aceleromet": 4, "achiev": [14, 16, 21, 23], "action": 20, "action_monitor_r": 20, "activ": [1, 2, 3, 9], "actuat": [2, 3, 4, 8], "actuatorinterfac": 2, "ad": [1, 4, 8, 13, 18], "add": [1, 2, 13], "addit": [2, 4], "addition": [4, 24], "address": [1, 4], "adjust": 9, "admitt": 5, "adopt": 4, "advantag": 8, "afraid": 1, "after": [1, 11, 13, 22], "again": 10, "against": 1, "agnost": 5, "agreement": 0, "aka": 5, "all": [1, 2, 3, 4, 5, 8, 10, 13, 18, 20], "allow": [2, 20], "allow_partial_joints_go": 20, "alreadi": [9, 13, 20], "also": [1, 2, 3, 4, 5, 13], "altern": [3, 20], "although": 4, "alwai": 1, "ament": 13, "ament_add_gmock": 13, "ament_cmak": 13, "ament_cmake_gmock": 13, "ament_export_librari": 13, "ament_packag": 13, "an": [1, 2, 3, 4, 5, 8, 9, 13, 20], "andi": 5, "angular": [11, 22], "angular_veloc": 17, "ani": [2, 3, 5, 13], "announc": 24, "anoth": 4, "answer": 24, "anymor": 2, "api": [1, 4], "appli": 9, "applic": [1, 3, 5, 6], "approach": 2, "appropri": 4, "approv": 1, "ar": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 17, 18, 20, 22, 24], "architectur": [4, 5], "arduino": 3, "argument": [6, 9], "arm": 5, "around": [4, 15, 17], "arrai": 18, "asap": 9, "ask": 13, "assign": 13, "assum": 3, "assur": 0, "attempt": 20, "author": 5, "auto": 3, "automat": [3, 11, 22], "autonom": 5, "avail": [2, 3, 5, 9, 10, 13, 18, 20], "avoid": [1, 13], "awar": 1, "ax": 15, "axi": [4, 15], "back": 1, "background": 1, "base": [3, 5, 9, 11, 13, 22], "base_link": 22, "bash": 13, "basic": [2, 3, 4, 5, 13], "becaus": 20, "becom": 5, "been": [10, 19], "befor": [1, 2, 6, 13], "behavior": [4, 8], "below": 5, "benc": [4, 5], "benchmark": 4, "best": [5, 13], "better": 5, "between": [3, 4, 19, 20], "binari": 1, "board": 3, "bodi": 11, "boolean": [8, 18, 20], "boost": 8, "booth": 5, "both": [4, 5], "bottom": 13, "box": 2, "brake": 1, "branch": 1, "broadcast": [8, 18, 19], "brook": 5, "buffer": [4, 24], "bug": 24, "build": [1, 13], "built": 24, "c": [4, 6, 9, 13], "calcul": 3, "call": [2, 3, 13], "can": [1, 2, 3, 4, 5, 7, 8, 13, 15, 19, 20, 24], "capabl": [3, 4], "care": [2, 4, 13], "case": [2, 4, 5, 13, 20, 24], "caus": 20, "cc": 5, "cell": [2, 15], "certain": [14, 16, 21, 23], "chain": 5, "chanc": 1, "chang": [1, 2, 3, 5, 9, 13, 20], "channel": 3, "check": [1, 2, 3, 4, 8, 10, 13, 20, 24], "choos": 2, "chosen": 3, "claim": 10, "class": [3, 5, 9, 13], "class_list_macro": 13, "clean": [1, 4], "cli": [3, 7, 9], "clock": 20, "close": 13, "cm": 3, "cmake": 13, "cmakelist": 13, "code": [1, 2, 4, 5, 13], "cokela": 1, "colcon": 13, "collabor": 1, "collect": [5, 14, 16, 21, 23], "com": [3, 4], "combin": [2, 8, 20], "combinedrobothardwar": 2, "command": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 16, 20, 21, 23, 24], "command_interfac": [3, 20], "command_interface_configur": [2, 13], "comment": 1, "commit": 1, "common": [3, 4, 12, 24], "commun": [2, 3, 4, 5], "compani": [0, 5], "company_nam": 5, "compar": [3, 4, 5], "compass": 4, "compat": [1, 2, 5], "compil": 13, "complet": [3, 12], "complex": [3, 4, 5], "compon": [0, 5, 6, 7, 11, 15, 17, 22, 24], "composit": [2, 5], "comprehens": 10, "comput": [11, 22], "concept": [4, 5, 8, 10], "conductor": 4, "configur": [2, 3, 4, 5, 6, 9, 10, 13, 20], "configure_control": 9, "configure_start_control": 9, "conflict": [2, 3, 4], "connect": 3, "consid": [1, 9], "consist": [4, 20, 24], "constant": 2, "constraint": [13, 20], "constructor": [2, 13], "consult": 5, "contact": 5, "content": 13, "continu": 20, "contribut": [0, 1, 5], "contributor": 1, "control": [5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24], "control_msg": [20, 24], "control_toolbox": [4, 24], "controller_interfac": [3, 4, 9, 13, 15, 17], "controller_manag": [3, 4, 6, 9, 13, 20], "controller_manager_msg": 3, "controller_manager_timeout": 6, "controller_nam": [6, 9, 13], "controller_name_namespac": 13, "controller_name_packag": 13, "controller_typ": 6, "controllerinterfac": [2, 3, 9, 13], "controllermanag": 2, "controllernam": 13, "convent": 1, "copi": 13, "core": 1, "correct": [1, 2, 20], "correspond": [8, 13, 24], "could": [3, 5, 13, 20], "cowboi": 1, "cpp": [2, 13], "creat": [2, 3, 5, 8, 13], "critic": [2, 4], "cross": 2, "cubic": 20, "current": [1, 4, 9, 20], "custom": [3, 8, 15], "custom_interface_with_following_offset": 8, "cycl": 5, "daemon": 9, "dai": 1, "data": [2, 3, 4, 8, 19], "dc": 3, "deactiv": [2, 3], "deal": 3, "debug": 8, "decid": 2, "declar": [2, 13], "deeper": 5, "default": [2, 3, 8, 18, 20], "defin": [2, 3, 4, 8, 12, 13, 15, 17, 18, 20], "definit": [3, 12, 13, 15], "degrad": 4, "delv": 5, "demo": 5, "demonstr": 10, "deni": [4, 5], "depend": [1, 3, 13, 20], "deprec": [9, 12], "deriv": 3, "describ": [2, 3], "descript": [1, 2, 5, 13], "design": [2, 3, 4, 5, 24], "desir": [4, 20], "detail": [1, 2, 3, 8, 13], "develop": [1, 5, 8, 10, 13], "deviat": 20, "diff_drive_control": [4, 9], "diffdrivecontrol": 9, "differ": [3, 4, 5, 14, 15, 16, 21, 23], "differenti": [11, 12, 19, 24], "difficulti": 4, "direct": [1, 2, 4, 13], "directli": [3, 24], "directori": 13, "discontinu": 20, "discourag": 20, "discours": 24, "discoveri": 9, "discuss": [1, 5, 24], "distribut": [1, 24], "do": [1, 2, 3, 4, 5, 6, 13, 20], "doc": 24, "document": [3, 4, 5, 8, 19], "doe": [2, 13, 20], "doesn": 1, "dof": 3, "don": 1, "done": [5, 13], "doubl": [4, 8, 20], "down": 5, "doxygen": 7, "dr": 5, "draft": 4, "drawback": [2, 24], "drive": [11, 12, 22, 24], "driver": [3, 5], "dynam": [3, 13], "dynamic_joint_st": 18, "e": [1, 2, 3, 4, 5, 8, 13, 14, 15, 16, 18, 20, 21, 23, 24], "each": [1, 3, 4], "earlier": 4, "easi": 4, "easiest": 13, "edit": 5, "effector": 3, "effort": [2, 12, 14, 16, 20], "effort_control": 12, "eg": 20, "either": 5, "els": 1, "emerg": 5, "empti": 13, "enabl": [2, 3, 4, 5, 10, 15], "encod": 3, "encourag": 1, "end": [2, 3, 13, 20], "enforc": [2, 20], "engin": 13, "enjoi": 13, "ensur": [2, 5], "entri": [3, 13], "entropi": 1, "environ": [1, 3, 5], "envis": 4, "equival": 2, "error": [3, 4, 13, 20], "especi": [1, 2], "essenti": 4, "etc": 24, "eu": 0, "european": 0, "even": 8, "event": 5, "everi": 24, "everyth": [4, 13], "exact": 13, "exactli": 1, "exampl": [2, 3, 4, 5, 8, 9, 10, 15, 20, 24], "example_interfac": 15, "example_nam": 15, "example_param_read_for_sec": 3, "example_param_write_for_sec": 3, "excel": 2, "except": 1, "exchang": [2, 4], "execut": [3, 13, 20], "executor": 3, "exercis": 1, "exist": [2, 3, 4, 6, 13], "exit": [6, 9], "expect": [1, 4, 20], "experi": 1, "explan": 3, "explicit": [5, 20], "explicitli": 1, "export": [3, 13], "export_": 2, "expos": 5, "extend": [2, 3, 4, 13], "extern": [2, 3, 4, 8], "extra": [5, 18], "extra_joint": 18, "extract": [2, 11, 22], "factor": 5, "fail": 1, "failur": 4, "fake": 7, "fake_sensor_command": 8, "fals": [8, 18, 20], "familiar": [4, 24], "featur": [1, 5, 8, 24], "feedback": [11, 20, 22], "feedforward": 20, "few": [4, 5], "figur": 3, "file": [2, 3, 4, 5, 6, 8, 13, 20], "final": [2, 5], "find": 1, "find_packag": 13, "fine": 13, "first": [1, 2, 13], "fiveai": 5, "fix": [1, 2], "fixup": 1, "flag": [13, 20], "flexibl": 3, "focu": 5, "focus": [4, 5], "folder": [3, 5, 13], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 12, 13, 20, 24], "follow_joint_trajectori": 20, "followjointtrajectori": 20, "forc": [3, 5, 9, 12], "forcetorquesensor": 15, "forcetorquesensor1dhardwar": 3, "forget": 2, "fork": 1, "form": 4, "format": 4, "forward": [5, 8, 12, 20, 24], "forward_command_controller_acceler": 10, "forward_command_controller_illegal1": 10, "forward_command_controller_illegal2": 10, "forward_command_controller_posit": 10, "forward_command_controller_veloc": 10, "forwardcommandcontrol": 3, "found": [3, 7, 13, 19, 20, 24], "foxi": [1, 3, 5], "frame": [15, 17], "frame_id": [3, 15, 17], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 24], "frequenc": 4, "friend": 13, "friendli": 3, "from": [0, 1, 2, 3, 5, 6, 8, 9, 11, 13, 15, 17, 20, 22, 24], "ft": 15, "full": 13, "function": [1, 2, 3, 4, 5], "fund": 0, "further": 13, "furthermor": 5, "futur": [1, 5], "g": [1, 2, 3, 4, 5, 8, 13, 14, 16, 18, 21, 23, 24], "galact": 1, "gazebo": 4, "gener": [4, 5, 13, 20, 24], "geometry_msg": 15, "get": [5, 24], "github": [3, 4, 7, 12, 24], "githubusercont": 3, "give": [1, 3, 5, 24], "given": [3, 20], "gmock": 4, "gmt": 24, "go": [5, 13], "goal": [4, 5, 20, 24], "goal_tim": 20, "good": [1, 4], "googl": 24, "gpio": 4, "grace": 4, "grant": 0, "granular": 2, "great": 13, "green": 1, "gripper": [2, 3, 8], "gripper_joint": 3, "group": [4, 20, 24], "guarante": 20, "guard": 13, "gui": 10, "guid": [5, 13], "guidelin": 1, "gyroscop": 4, "h": [6, 9, 13, 19], "ha": [0, 1, 3, 4, 5, 13, 19], "had": 2, "hand": 3, "handl": [1, 2, 4, 5, 20], "handler": 5, "hard": [2, 4], "hardwar": [5, 6, 8, 10, 12, 13, 22, 24], "hardware_interfac": [2, 3, 8, 12, 13], "hardwareinfo": 2, "have": [1, 2, 3, 4, 8, 10, 13, 20], "header": [1, 13], "heartbeat": 4, "heavi": 5, "help": [1, 6, 9, 13], "here": [2, 7, 13, 19, 20], "hereund": 3, "hidden": 9, "high": 4, "horizon": 0, "hot": 5, "hour": 4, "how": [1, 4, 5, 13], "howev": [4, 6], "hpp": 13, "html": 1, "http": [0, 1, 3, 4], "humanoid": 3, "hw_if_effort": 12, "hw_if_posit": 12, "hw_if_veloc": 12, "hydraul": 20, "hz": 4, "i": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24], "id8": 1, "idea": 24, "ideal": [5, 8], "identifi": 4, "ifndef": 13, "ignit": 4, "ignor": [11, 20, 22], "immedi": 1, "impact": 1, "implement": [2, 3, 4, 5, 8, 10, 11, 12, 13, 20, 22, 24], "import": [3, 13, 20], "importantli": 13, "imposs": 2, "improv": 4, "imu": [4, 12], "imusensor": 17, "inc": 5, "includ": [2, 4, 9, 13], "increas": 1, "inde": 10, "independ": 3, "individu": 13, "industri": [0, 3, 4], "influenc": 5, "info": 1, "inform": [0, 8, 13, 24], "ingredi": 5, "init": [2, 13], "initi": [2, 13], "inject": 5, "innov": 0, "input": [3, 4, 5, 11, 20, 22], "insert": 5, "insid": 8, "instal": [3, 13], "instanc": 4, "instant": 20, "instead": [3, 8, 19, 20], "institut": 0, "integr": [3, 4, 5, 8, 10, 20, 24], "intent": [1, 8], "interact": [3, 5, 6, 9], "interfac": [4, 5, 6, 7, 8, 10, 12, 13, 15, 17, 24], "interface_nam": 15, "interface_typ": 13, "intern": [4, 20], "interpol": [12, 20], "interrupt": [2, 6], "introduc": [4, 5], "introduct": [5, 20], "involv": 5, "issu": [1, 4, 24], "its": [1, 2, 3, 4, 5, 15, 17], "itself": 2, "ivanov": 5, "jerk": [5, 11, 22], "johann": 5, "join": 24, "joint": [2, 3, 5, 11, 12, 13, 14, 16, 18, 21, 23, 24], "joint1": [3, 8, 9, 10, 20], "joint2": [3, 9, 10, 20], "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "joint_a2": 2, "joint_nam": [13, 20], "joint_stat": 18, "joint_state_broadcast": 19, "joint_state_control": [9, 10], "joint_trajectori": 20, "joint_trajectory_control": [4, 9], "joint_trajectory_plugin": 2, "jointstatecontrol": 9, "jointtrajectori": 20, "jointtrajectorycontrol": [2, 9], "jointtrajectorycontrollerst": 20, "keep": [1, 13], "kernel": 5, "khz": 4, "kill": [6, 9], "kinemat": 5, "knudsen": 5, "kuka": 3, "last": [13, 20], "latest": 3, "launch": [3, 6, 8, 10], "layer": 5, "least": [13, 20], "leav": 6, "less": 15, "let": 10, "level": [4, 5, 14, 16, 20, 21, 23], "librari": [2, 3, 4, 9, 13], "licens": 5, "life": 5, "lifecycl": [2, 3, 5, 6], "lifecyclenod": 3, "like": [1, 2, 3, 4, 5], "limit": [1, 4, 5, 11, 22], "line": [3, 7, 13], "linear": [11, 20, 22], "linear_acceler": 17, "link": [3, 5], "linter": 1, "list": [3, 5, 9, 10, 12, 13, 20, 24], "list_hardware_interfac": 10, "live": [1, 5], "load": [3, 6, 9, 10, 13], "load_configure_control": 9, "load_control": 10, "load_start_control": 9, "local": [1, 18], "logic": 3, "long": 4, "look": 5, "loop": [3, 5, 13, 20], "lovro": 5, "low": [4, 5], "ltd": 5, "machin": [3, 4], "macro": [2, 3, 13], "made": 5, "magyar": [4, 5], "mai": [14, 16, 21, 23], "main": [1, 3, 4, 5, 6, 8, 13, 24], "maintain": [1, 3, 4], "major": 0, "make": [1, 2, 4, 5, 24], "manag": [2, 4, 5, 7, 9, 13, 24], "mandatori": [3, 15, 17, 20], "mani": [5, 13], "manipul": [5, 20], "manual": [3, 4, 13, 24], "map": [8, 20], "mark": 2, "master": [1, 3, 4], "match": 3, "materi": 5, "matter": 1, "max": 3, "max_forc": 3, "maxim": 20, "mayb": 2, "md": 3, "mean": [1, 2, 8], "measur": [3, 8, 15], "mechan": 20, "medium": 4, "meet": 24, "member": [2, 13], "memori": [4, 13], "mentor": 4, "messag": [1, 4, 6, 9, 15, 17, 18, 20, 24], "method": [1, 2, 3, 13], "mid": 1, "mimic": 8, "mimick": 8, "min": 3, "min_forc": 3, "mind": [1, 13], "minim": 24, "mirror": 8, "miss": 4, "mobil": [5, 11, 22], "mock": 5, "mode": [4, 20], "modifi": 5, "modul": 4, "modular": [3, 5], "moment": 4, "monitor": 20, "more": [0, 1, 2, 3, 4, 8, 13], "most": [4, 13], "motiv": 4, "motor": [3, 4], "moveit": [5, 8], "moveit2": [4, 5], "movement": 4, "msg": [15, 17, 20], "much": [4, 13], "multi": [2, 3, 4, 5, 10], "multipl": [2, 3, 20], "multipli": 8, "must": 1, "my": 5, "my_state_broadcast": 18, "najjar": 5, "name": [1, 2, 3, 5, 6, 8, 9, 13, 15, 17, 18, 20], "namespac": [6, 12, 13, 18, 20], "nan": 20, "nathan": 5, "nav2": 5, "navig": 5, "necessari": 1, "need": [2, 3, 4, 5, 13], "net": 5, "new": [1, 5, 12, 20, 24], "next": [1, 20], "nobodi": 1, "node": [3, 6, 8, 9, 10, 13], "non": [1, 5, 15], "none": 13, "note": [1, 3, 10, 24], "now": [10, 13], "numer": 20, "numeric_limit": 20, "obei": 5, "object": 3, "odometri": [11, 22], "offer": [5, 6], "offlin": 8, "offset": [8, 20], "often": [4, 8, 13], "ok": 13, "on_activ": [2, 13], "on_configur": [2, 13], "on_deactiv": [2, 13], "onc": [4, 5], "one": [1, 2, 3, 4, 5, 13, 15, 24], "onli": [1, 2, 3, 4, 5, 6, 9, 13, 15, 20], "onlin": [5, 13], "open": [1, 20], "open_loop_control": 20, "openli": 5, "oper": 24, "opposit": 13, "optim": 2, "option": [2, 6, 8, 9, 13, 15, 18, 20], "orbit": 4, "orchestr": 4, "order": 19, "org": 4, "organ": [1, 5, 24], "orient": 17, "origin": [1, 5], "other": [1, 2, 3, 5, 13], "otherwis": 13, "our": [1, 3, 4, 5], "out": [2, 11], "output": [3, 4, 5, 9, 15, 17, 20], "over": [1, 4], "overcom": 24, "overrid": 13, "overview": 5, "p": 6, "pace": 1, "packag": [1, 2, 3, 10, 13, 15, 17, 19, 20, 24], "package_nam": 13, "parallel": [3, 8], "param": [3, 6, 8], "param_fil": 6, "paramet": [2, 5, 13], "parent": 13, "pars": [2, 7], "part": [1, 4, 5, 13], "parti": 5, "path": 5, "pendant": 5, "peopl": 1, "per": [4, 15], "perform": 5, "physic": [2, 3, 8], "picknik": 5, "pid": [20, 24], "ping": 1, "pipe": 8, "pipelin": 1, "pixel": 5, "pkg": 13, "place": [4, 13, 20], "plan": [5, 24], "plapp": 5, "pleas": [1, 24], "plu": 20, "plugin": [3, 13], "pluginlib": [2, 3, 13], "pluginlib_export_class": [2, 13], "pluginlib_export_plugin_description_fil": 13, "point": [3, 12, 13, 24], "port": 4, "posit": [2, 3, 5, 6, 9, 10, 12, 14, 16, 20, 21, 23], "position_control": [12, 20], "position_state_following_offset": 8, "position_velocity_acceleration_control": 20, "position_velocity_control": 20, "positionactuatorhardwar": 3, "possibl": [1, 3, 4, 13, 20], "potenti": [1, 13], "power": 5, "pr": 1, "practic": 5, "practition": 5, "pre": 1, "predefin": 20, "prefac": 5, "prefer": 4, "prefix": [13, 15, 17], "prepar": 13, "preprocessor": 13, "preset": 4, "previou": 24, "problem": [5, 24], "process": 13, "profil": 4, "programm": 0, "project": [0, 1, 24], "proper": [1, 20], "proport": 1, "propos": 24, "protect": [4, 13], "prove": 10, "provid": [3, 4, 5, 6, 8, 10, 12, 13, 20, 24], "proxi": 20, "public": 13, "publish": [4, 11, 15, 17, 18, 20, 22, 24], "pull": 4, "pure": [3, 20], "purpos": 4, "put": [1, 13], "py": 10, "qualiti": [0, 1], "question": 24, "queu": 20, "quick": 5, "quiet_nan": 20, "quintic": 20, "quit": 4, "random": 1, "rang": 3, "rate": [4, 20], "raw": 3, "rclcpp": 13, "rclcpp_lifecycl": 13, "re": 3, "reach": 20, "read": [1, 2, 3, 13, 18, 20], "readabl": 4, "readi": [5, 13], "readm": 3, "real": [2, 4, 5, 8, 13, 18, 20, 24], "realiz": [3, 5], "realtim": [5, 11, 20, 22, 24], "realtime_tool": [4, 24], "reason": 5, "receiv": [0, 2], "recent": 13, "recommend": [3, 5], "record": 5, "reduc": [1, 8], "refer": 3, "regard": 24, "regardless": 1, "regist": 2, "relat": [3, 4, 5], "releas": [1, 3, 5], "relev": [4, 24], "reli": 4, "reload": 9, "rememb": 13, "remov": 19, "renam": 19, "repeatedli": 1, "replac": 4, "repo": [1, 3], "report": [3, 4, 18, 24], "repositori": [3, 4, 7, 12, 24], "repres": 3, "reproduc": 24, "request": [2, 24], "requir": [1, 2, 3, 4, 13], "research": [0, 5], "reserv": 13, "resourc": 2, "resourcemanag": 2, "respect": [4, 5], "rest_syntax": 1, "result": [1, 3], "return": 13, "return_typ": 13, "reus": 5, "review": [1, 4, 24], "rewrit": [4, 24], "rich": 4, "right": 4, "rigid": 2, "rm": 3, "ro": [0, 1, 3, 4, 6, 8, 9, 19, 24], "roadmap": [4, 24], "robot": [0, 2, 4, 10, 11, 15, 22, 24], "robothw": 2, "robust": 20, "root": 13, "ros1": 5, "ros2": [3, 4, 5, 6, 9, 10, 13, 24], "ros2_control": [1, 3, 5, 6, 8, 10, 13], "ros2_control_demo": [1, 3, 24], "ros2_control_demo_bringup": 10, "ros2_control_demo_hardwar": [3, 10], "ros2_control_nod": 3, "ros2_control_test_asset": 13, "ros2_control_test_nod": 10, "ros2controlcli": 3, "ros__paramet": 20, "ros_control": [4, 5, 24], "ros_distro": 1, "rosin": 0, "rrbot": [3, 10], "rrbot_system_multi_interfac": 10, "rrbot_tcp": 3, "rrbotforcetorquesensor1d": 3, "rrbotgripp": 3, "rrbotsystempositiononli": 3, "rrbotsystempositiononlyhardwar": [2, 3], "rsi": 3, "rule": 13, "run": [4, 5, 6, 9], "rune": 5, "safe": [2, 11, 13, 20, 22], "safeti": 4, "same": [1, 3, 4, 15], "satisfi": 1, "scale": 5, "scenario": 4, "scope": 1, "script": [3, 4, 13], "search": 13, "second": [4, 9, 13, 24], "section": [1, 2, 13], "see": [1, 2, 3, 10, 13, 15, 17, 20], "segment": 20, "semant": [5, 15, 17], "semantic_compon": 4, "semi": 1, "sens": [2, 3, 15], "sensibl": 2, "sensor": [2, 3, 4, 8, 12], "sensor_msg": 17, "sensor_nam": [15, 17], "sensorinterfac": 2, "sent": 4, "separ": [1, 2, 3], "serv": [1, 3, 4], "server": 20, "servic": [3, 4, 6], "set": [1, 2, 4, 5, 8, 9, 14, 16, 18, 20, 21, 23], "set_controller_st": 10, "set_stat": 9, "setup": [3, 4, 13], "share": [5, 13], "shell": 13, "short": [1, 13, 24], "should": [1, 2, 4, 5, 6, 9, 10, 13, 18], "show": [1, 3, 5, 6, 9], "showcas": [4, 5], "shown": 5, "side": [3, 4, 5], "signal": 4, "similar": [1, 3, 5], "similarli": 20, "simpl": [3, 4, 5, 10, 13, 19], "simplecontrollermanag": 4, "simpli": [5, 20], "simplifi": [13, 24], "simul": [4, 8, 10], "singl": 5, "six": 15, "size": 4, "skeleton": 3, "skill": 4, "smooth": 24, "snake_cas": 13, "snippet": 2, "so": [3, 13], "softwar": [0, 3], "solut": [2, 5], "some": [1, 4, 5, 20, 24], "sort": [12, 13], "sourc": [1, 3, 5, 13], "space": [11, 20], "specif": [4, 20], "specifi": [13, 20], "sphinx": 1, "spin": 9, "spin_tim": 9, "spline": 20, "squash": 1, "src": [3, 13], "srv": 3, "stabl": [1, 4], "stack": [3, 5], "stage": 1, "standard": [1, 2, 3, 4, 5, 9, 12, 15], "start": [1, 2, 5, 6, 9, 10, 13, 20, 24], "startup": 6, "state": [2, 3, 4, 5, 8, 9, 10, 12, 13, 15, 18, 20], "state_interfac": [3, 20], "state_interface_configur": [2, 13], "state_publish_r": 20, "statu": [4, 9, 20], "std": 20, "steer": 22, "step": [13, 20, 24], "still": [1, 2, 3], "stogl": 5, "stop": [2, 5, 6, 9, 10, 11, 22], "stopped_velocity_toler": 20, "store": 13, "strategi": [2, 20], "stream": [2, 5], "stretch": 4, "strict": 9, "string": [2, 8, 13, 18, 20], "struct": 4, "structur": [3, 4, 13, 20], "studi": 5, "style": [1, 13], "submit": [1, 5], "success": 13, "suffici": [1, 15], "suitabl": [2, 5], "summari": [1, 5, 24], "support": [0, 2, 3, 5, 8, 9, 13, 20, 24], "sure": [1, 4, 24], "surround": 2, "switch": [4, 9], "switch_control": 10, "switch_timeout": 9, "sync": 1, "system": [2, 3, 4, 5, 10, 20, 24], "systemcompon": 5, "systeminterfac": [2, 8], "s\u00f8e": 5, "t": [1, 6], "tag": [3, 13, 24], "take": [2, 4, 13, 18], "talk": 5, "target": [1, 12, 13, 20], "task": [4, 5, 11], "tcp_fts_sensor": 3, "teach": 5, "teleoper": 5, "templat": [10, 13, 20], "term": [20, 24], "test": [1, 4, 8, 10, 13], "test_control": 9, "test_controller_nam": 9, "test_depend": 13, "test_load_": 13, "thank": 1, "thei": [1, 2, 3, 4, 5, 8, 9, 12, 13, 20], "them": [1, 3, 4, 6, 13, 18], "theori": [3, 24], "therefor": [4, 13, 18, 20], "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24], "thing": 1, "thoma": 1, "those": [1, 2, 3, 4, 8, 13, 15, 20], "thread": 4, "three": [1, 2, 3, 13], "through": [3, 4, 9, 11, 12, 13, 20, 24], "time": [1, 2, 4, 5, 6, 8, 9, 11, 13, 15, 20, 24], "timeout": [6, 9, 22], "tip": 5, "titl": 1, "togeth": 3, "toler": 20, "toni": 5, "took": 2, "tool": [2, 4, 5], "toolkit": 24, "top": 5, "topic": [4, 5, 20], "torqu": [3, 12], "traceabl": 1, "track": [3, 24], "tracker": 24, "traction": 22, "trajectori": [5, 12, 24], "trajectory_msg": 20, "translat": [11, 22], "transmiss": 3, "tree": 4, "tri": 20, "trick": 4, "tricycl": [5, 12, 22], "trigger": 4, "trivial": [1, 8], "true": [19, 20], "turtl": 19, "tutori": 1, "twist": [11, 22], "two": [1, 3, 4, 6, 13, 15], "txt": 13, "type": [1, 2, 3, 5, 6, 9, 12, 13, 15, 17], "typic": [4, 20], "u": [1, 6], "unclaim": [9, 10], "unconfigur": 6, "under": [0, 5, 13, 24], "understand": [1, 4], "unifi": 5, "union": 0, "uniqu": 13, "unit": 4, "univers": [1, 4, 5], "unload": [3, 6, 9], "unreleas": 24, "until": 6, "up": [1, 5, 10], "updat": [2, 3, 4, 13], "upgrad": 5, "ur": 5, "urdf": 2, "us": [1, 2, 3, 4, 5, 8, 9, 12, 14, 15, 16, 17, 18, 19, 21, 23, 24], "usabl": 3, "usag": [5, 6, 9], "use_local_top": 18, "user": 4, "usual": [2, 8, 13], "util": 5, "valu": [2, 3, 4, 8, 13, 20], "valv": 3, "variabl": [2, 4, 13], "variou": 4, "vc": 3, "vector": 13, "veloc": [2, 3, 5, 10, 12, 20, 21, 23], "velocity_control": 12, "veri": [1, 2, 4], "version": [1, 4], "via": 3, "virtual": 5, "visibility_control": 13, "visibl": 13, "visit": 3, "vivid": 1, "wa": [4, 13], "wai": [1, 13, 15], "wait": [6, 9], "want": 3, "waypoint": [5, 12, 20], "we": [1, 4, 5], "wednesdai": 24, "weekend": 1, "welcom": 1, "well": [5, 9, 20], "were": 4, "wg": 24, "wget": 3, "what": 5, "wheel": 11, "when": [1, 2, 3, 4, 8, 9, 13, 20], "where": [1, 4, 13], "which": [2, 3, 4, 5, 9, 11, 13, 15, 17, 20, 22], "while": [3, 4, 5, 10, 20], "wide": 24, "wikipedia": [3, 24], "wild": 5, "window": 13, "without": [2, 3, 8, 13], "work": [1, 4, 5, 11, 13, 14, 16, 20, 21, 22, 23, 24], "workspac": [3, 13], "world": [6, 8], "wrap": 20, "wrapper": [15, 17], "wrenchstamp": 15, "write": [2, 3, 4, 5, 12], "written": 13, "x": [11, 15, 17, 22], "xacro": 3, "xml": [2, 13], "y": 15, "yaml": [3, 4, 20], "yet": 20, "yield": 20, "you": [1, 2, 3, 5, 8, 13, 24], "your": [1, 2, 5, 8, 13, 24], "z": [11, 15, 22], "zeleank": 5, "zelenak": 5, "\u0161togl": [4, 5]}, "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!"], "titleterms": {"": [2, 20], "02": 5, "05": 5, "06": 5, "07": 5, "10": 5, "12": 5, "13": 5, "2021": 5, "2022": [4, 5], "2023": 5, "5": 5, "about": 20, "access": 2, "acknowledg": 0, "add": 4, "api": 7, "architectur": 3, "asynchron": 4, "avail": 12, "best": 12, "broadcast": [12, 15, 17], "ci": 1, "class": 2, "command": [9, 11, 18, 22], "commun": 24, "compil": 3, "compon": [2, 3, 4, 8], "concept": 7, "confer": 5, "configur": 1, "control": [2, 3, 4, 6, 12, 13, 20], "core": 7, "demo": [4, 10], "descript": 3, "detail": 20, "develop": 24, "diagram": 5, "diff_drive_control": 11, "differ": 2, "document": [1, 7, 24], "effort_control": 14, "extern": 13, "fake": 8, "featur": [4, 7, 11, 20, 22], "forc": 15, "forward_command_control": 16, "foxi": 24, "fr": 5, "framework": 3, "from": 4, "function": 7, "gener": 8, "get": 3, "gsoc": 4, "guid": 2, "guidelin": 12, "hardwar": [2, 3, 4, 11, 14, 16, 18, 20, 21, 23], "helper": 6, "idea": 4, "imag": 5, "imu": 17, "industri": 5, "interfac": [2, 3, 9, 11, 14, 16, 18, 20, 21, 23], "joint": [8, 20], "joint_state_broadcast": 18, "joint_state_control": 19, "joint_trajectory_control": 20, "jointtrajectorycontrol": 20, "line": 9, "list_control": 9, "list_controller_typ": 9, "list_hardware_interfac": 9, "load_control": 9, "manag": [3, 6], "meetup": 5, "merg": 1, "migrat": 2, "mission": 4, "mode": 10, "munich": 5, "new": 13, "nomenclatur": 12, "organ": 10, "organis": 24, "other": [11, 20, 22], "overview": 24, "paramet": [8, 15, 17, 18, 20], "pariti": 4, "per": 8, "position_control": 21, "practic": 12, "present": 5, "process": 1, "project": 4, "pull": 1, "py": 6, "refer": 13, "reload_controller_librari": 9, "repositori": [1, 10], "represent": 20, "request": 1, "resourc": [3, 5], "ro": 5, "robot": [3, 5], "robothardwar": 2, "ros1": [2, 4], "ros2": 20, "ros2_control": [2, 4, 12, 24], "ros_control": 2, "roscon": 5, "rosdevdai": 5, "rule": 1, "run": 3, "script": 6, "semant": 4, "sensor": [15, 17], "set_controller_st": 9, "spawner": 6, "special": 20, "start": 3, "structur": [1, 2], "support": 4, "switch": 10, "switch_control": 9, "system": 8, "tbd": 20, "torqu": 15, "trajectori": 20, "tricycle_control": 22, "tutori": 4, "type": [11, 14, 16, 18, 20, 21, 23], "unload_control": 9, "unspawn": 6, "urdf": 3, "us": [13, 20], "user": 3, "veloc": [11, 22], "velocity_control": 23, "version": 20, "weekli": 5, "welcom": 24, "world": 5, "write": [1, 13], "your": 3}}) \ No newline at end of file diff --git a/galactic/.buildinfo b/galactic/.buildinfo index f2e490e232..d5b60073e5 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: 197a6dd390b52e75b330bfa14191a0a1 +config: 99465aa71d8565a6757984e520daec58 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree b/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree index ee87632ebe..37c097390e 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 4a6168ba75..a49af04385 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 091bbfa92e..40b0d37a8b 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 5a6682043b..c14728ffba 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 6ca0bc420a..4bdce57777 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 2c8e786a68..fdd638fd9c 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 f91cad8232..e4a0dcf79e 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 04d7d4457f..1f30fc7ef6 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 a9fe70c575..0220ad9692 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 302b76ada6..7f35baef55 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 a367bc5661..6149e2577d 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 db3e97156d..aa47d64428 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 56144d720b..d0c9554116 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 cfbb8fd065..e239b658ea 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 6c4225e1f6..65f88aeceb 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 7f4dc09b14..13cfccfccd 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 89cac49e23..d876b8276e 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 60c7c105e9..66b6aa58ff 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 eee644c728..dc0ab08ddb 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 df7ff19ae6..0ccfd57c6c 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 b28c00908f..6476439156 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 e0b54353eb..d9d923fc0e 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 117bba6a58..4b134af266 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 731f9faab9..d814893915 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 23404a3a46..9e61927486 100644 Binary files a/galactic/.doctrees/index.doctree and b/galactic/.doctrees/index.doctree differ diff --git a/galactic/doc/api/classcontrol__toolbox_1_1RateLimiter.html b/galactic/doc/api/classcontrol__toolbox_1_1RateLimiter.html index f12655a50e..b8ee9aa343 100644 --- a/galactic/doc/api/classcontrol__toolbox_1_1RateLimiter.html +++ b/galactic/doc/api/classcontrol__toolbox_1_1RateLimiter.html @@ -174,7 +174,8 @@

Note
If max_* values are NAN, the respective limit is deactivated If min_* values are NAN (unspecified), defaults to -max If min_first_derivative_pos/max_first_derivative_neg values are NAN, symmetric limits are used
+
Note
If max_* values are NAN, the respective limit is deactivated If min_* values are NAN (unspecified), defaults to -max If min_first_derivative_pos/max_first_derivative_neg values are NAN, symmetric limits are used
+

Disclaimer about the jerk limits: The jerk limit is only applied when accelerating or reverse_accelerating (i.e., "sign(jerk * accel) > 0"). This condition prevents oscillating closed-loop behavior, see discussion details in https://github.com/ros-controls/control_toolbox/issues/240. if you use this feature, you should perform a test to check that the behavior is really as you expect.

@@ -332,6 +333,7 @@

Returns
Limiting factor (1.0 if none)
See also
http://en.wikipedia.org/wiki/jerk_%28physics%29#Motion_control
+
Note
The jerk limit is only applied when accelerating or reverse_accelerating (i.e., "sign(jerk * accel) > 0").
diff --git a/galactic/doc/api/control__toolbox_2rate__limiter_8hpp_source.html b/galactic/doc/api/control__toolbox_2rate__limiter_8hpp_source.html index d0b46f7115..b51fb96831 100644 --- a/galactic/doc/api/control__toolbox_2rate__limiter_8hpp_source.html +++ b/galactic/doc/api/control__toolbox_2rate__limiter_8hpp_source.html @@ -103,232 +103,238 @@
32 {
33 public:
- -
52  T min_value = std::numeric_limits<double>::quiet_NaN(),
-
53  T max_value = std::numeric_limits<double>::quiet_NaN(),
-
54  T min_first_derivative_neg = std::numeric_limits<double>::quiet_NaN(),
-
55  T max_first_derivative_pos = std::numeric_limits<double>::quiet_NaN(),
-
56  T min_first_derivative_pos = std::numeric_limits<double>::quiet_NaN(),
-
57  T max_first_derivative_neg = std::numeric_limits<double>::quiet_NaN(),
-
58  T min_second_derivative = std::numeric_limits<double>::quiet_NaN(),
-
59  T max_second_derivative = std::numeric_limits<double>::quiet_NaN());
-
60 
-
69  T limit(T & v, T v0, T v1, T dt);
-
70 
-
76  T limit_value(T & v);
+ +
59  T min_value = std::numeric_limits<double>::quiet_NaN(),
+
60  T max_value = std::numeric_limits<double>::quiet_NaN(),
+
61  T min_first_derivative_neg = std::numeric_limits<double>::quiet_NaN(),
+
62  T max_first_derivative_pos = std::numeric_limits<double>::quiet_NaN(),
+
63  T min_first_derivative_pos = std::numeric_limits<double>::quiet_NaN(),
+
64  T max_first_derivative_neg = std::numeric_limits<double>::quiet_NaN(),
+
65  T min_second_derivative = std::numeric_limits<double>::quiet_NaN(),
+
66  T max_second_derivative = std::numeric_limits<double>::quiet_NaN());
+
67 
+
76  T limit(T & v, T v0, T v1, T dt);
77 
-
85  T limit_first_derivative(T & v, T v0, T dt);
-
86 
-
96  T limit_second_derivative(T & v, T v0, T v1, T dt);
-
97 
-
98 
-
116  void set_params(
-
117  T min_value = std::numeric_limits<double>::quiet_NaN(),
-
118  T max_value = std::numeric_limits<double>::quiet_NaN(),
-
119  T min_first_derivative_neg = std::numeric_limits<double>::quiet_NaN(),
-
120  T max_first_derivative_pos = std::numeric_limits<double>::quiet_NaN(),
-
121  T min_first_derivative_pos = std::numeric_limits<double>::quiet_NaN(),
-
122  T max_first_derivative_neg = std::numeric_limits<double>::quiet_NaN(),
-
123  T min_second_derivative = std::numeric_limits<double>::quiet_NaN(),
-
124  T max_second_derivative = std::numeric_limits<double>::quiet_NaN());
-
125 
-
126 private:
-
127  // Enable/Disable value/first_derivative/second_derivative limits:
-
128  bool has_value_limits_ = true;
-
129  bool has_first_derivative_limits_ = true;
-
130  bool has_second_derivative_limits_ = true;
-
131 
-
132  // value limits:
-
133  T min_value_ = std::numeric_limits<double>::quiet_NaN();
-
134  T max_value_ = std::numeric_limits<double>::quiet_NaN();
-
135 
-
136  // first_derivative limits:
-
137  T min_first_derivative_neg_ = std::numeric_limits<double>::quiet_NaN();
-
138  T max_first_derivative_pos_ = std::numeric_limits<double>::quiet_NaN();
-
139  T min_first_derivative_pos_ = std::numeric_limits<double>::quiet_NaN();
-
140  T max_first_derivative_neg_ = std::numeric_limits<double>::quiet_NaN();
-
141 
-
142  // second_derivative limits:
-
143  T min_second_derivative_ = std::numeric_limits<double>::quiet_NaN();
-
144  T max_second_derivative_ = std::numeric_limits<double>::quiet_NaN();
-
145 };
-
146 
-
147 template <typename T>
- -
149  T min_value, T max_value,
-
150  T min_first_derivative_neg, T max_first_derivative_pos,
-
151  T min_first_derivative_pos, T max_first_derivative_neg,
-
152  T min_second_derivative, T max_second_derivative)
-
153 {
-
154  set_params(
-
155  min_value, max_value,
-
156  min_first_derivative_neg, max_first_derivative_pos,
-
157  min_first_derivative_pos, max_first_derivative_neg,
-
158  min_second_derivative, max_second_derivative
-
159  );
-
160 };
-
161 
-
162 // Check if limits are valid, max must be specified, min defaults to -max if unspecified
-
163 template <typename T>
- -
165  T min_value, T max_value,
-
166  T min_first_derivative_neg, T max_first_derivative_pos,
-
167  T min_first_derivative_pos, T max_first_derivative_neg,
-
168  T min_second_derivative, T max_second_derivative)
-
169  {
-
170  min_value_ = min_value;
-
171  max_value_ = max_value;
-
172  min_first_derivative_neg_ = min_first_derivative_neg;
-
173  max_first_derivative_pos_ = max_first_derivative_pos;
-
174  min_first_derivative_pos_ = min_first_derivative_pos;
-
175  max_first_derivative_neg_ = max_first_derivative_neg;
-
176  min_second_derivative_ = min_second_derivative;
-
177  max_second_derivative_ = max_second_derivative;
-
178 
-
179  if (std::isnan(max_value_))
-
180  {
-
181  has_value_limits_ = false;
-
182  }
-
183  if (std::isnan(min_value_))
-
184  {
-
185  min_value_ = -max_value_;
-
186  }
-
187  if (has_value_limits_ && min_value_ > max_value_)
-
188  {
-
189  throw std::invalid_argument("Invalid value limits");
-
190  }
-
191 
-
192  if (std::isnan(max_first_derivative_pos_))
+
83  T limit_value(T & v);
+
84 
+
92  T limit_first_derivative(T & v, T v0, T dt);
+
93 
+
105  T limit_second_derivative(T & v, T v0, T v1, T dt);
+
106 
+
107 
+
125  void set_params(
+
126  T min_value = std::numeric_limits<double>::quiet_NaN(),
+
127  T max_value = std::numeric_limits<double>::quiet_NaN(),
+
128  T min_first_derivative_neg = std::numeric_limits<double>::quiet_NaN(),
+
129  T max_first_derivative_pos = std::numeric_limits<double>::quiet_NaN(),
+
130  T min_first_derivative_pos = std::numeric_limits<double>::quiet_NaN(),
+
131  T max_first_derivative_neg = std::numeric_limits<double>::quiet_NaN(),
+
132  T min_second_derivative = std::numeric_limits<double>::quiet_NaN(),
+
133  T max_second_derivative = std::numeric_limits<double>::quiet_NaN());
+
134 
+
135 private:
+
136  // Enable/Disable value/first_derivative/second_derivative limits:
+
137  bool has_value_limits_ = true;
+
138  bool has_first_derivative_limits_ = true;
+
139  bool has_second_derivative_limits_ = true;
+
140 
+
141  // value limits:
+
142  T min_value_ = std::numeric_limits<double>::quiet_NaN();
+
143  T max_value_ = std::numeric_limits<double>::quiet_NaN();
+
144 
+
145  // first_derivative limits:
+
146  T min_first_derivative_neg_ = std::numeric_limits<double>::quiet_NaN();
+
147  T max_first_derivative_pos_ = std::numeric_limits<double>::quiet_NaN();
+
148  T min_first_derivative_pos_ = std::numeric_limits<double>::quiet_NaN();
+
149  T max_first_derivative_neg_ = std::numeric_limits<double>::quiet_NaN();
+
150 
+
151  // second_derivative limits:
+
152  T min_second_derivative_ = std::numeric_limits<double>::quiet_NaN();
+
153  T max_second_derivative_ = std::numeric_limits<double>::quiet_NaN();
+
154 };
+
155 
+
156 template <typename T>
+ +
158  T min_value, T max_value,
+
159  T min_first_derivative_neg, T max_first_derivative_pos,
+
160  T min_first_derivative_pos, T max_first_derivative_neg,
+
161  T min_second_derivative, T max_second_derivative)
+
162 {
+
163  set_params(
+
164  min_value, max_value,
+
165  min_first_derivative_neg, max_first_derivative_pos,
+
166  min_first_derivative_pos, max_first_derivative_neg,
+
167  min_second_derivative, max_second_derivative
+
168  );
+
169 };
+
170 
+
171 // Check if limits are valid, max must be specified, min defaults to -max if unspecified
+
172 template <typename T>
+ +
174  T min_value, T max_value,
+
175  T min_first_derivative_neg, T max_first_derivative_pos,
+
176  T min_first_derivative_pos, T max_first_derivative_neg,
+
177  T min_second_derivative, T max_second_derivative)
+
178  {
+
179  min_value_ = min_value;
+
180  max_value_ = max_value;
+
181  min_first_derivative_neg_ = min_first_derivative_neg;
+
182  max_first_derivative_pos_ = max_first_derivative_pos;
+
183  min_first_derivative_pos_ = min_first_derivative_pos;
+
184  max_first_derivative_neg_ = max_first_derivative_neg;
+
185  min_second_derivative_ = min_second_derivative;
+
186  max_second_derivative_ = max_second_derivative;
+
187 
+
188  if (std::isnan(max_value_))
+
189  {
+
190  has_value_limits_ = false;
+
191  }
+
192  if (std::isnan(min_value_))
193  {
-
194  has_first_derivative_limits_ = false;
+
194  min_value_ = -max_value_;
195  }
-
196  if (std::isnan(min_first_derivative_neg_))
+
196  if (has_value_limits_ && min_value_ > max_value_)
197  {
-
198  min_first_derivative_neg_ = -max_first_derivative_pos_;
+
198  throw std::invalid_argument("Invalid value limits");
199  }
-
200  if (has_first_derivative_limits_ && min_first_derivative_neg_ > max_first_derivative_pos_)
-
201  {
-
202  throw std::invalid_argument("Invalid first derivative limits");
-
203  }
-
204  if (has_first_derivative_limits_)
-
205  {
-
206  if (std::isnan(max_first_derivative_neg_))
-
207  {
-
208  max_first_derivative_neg_ = max_first_derivative_pos_;
-
209  }
-
210  if (std::isnan(min_first_derivative_pos_))
-
211  {
-
212  min_first_derivative_pos_ = min_first_derivative_neg_;
-
213  }
-
214  if (has_first_derivative_limits_ && min_first_derivative_pos_ > max_first_derivative_neg_)
-
215  {
-
216  throw std::invalid_argument("Invalid first derivative limits");
-
217  }
-
218  }
-
219 
-
220  if (std::isnan(max_second_derivative_))
-
221  {
-
222  has_second_derivative_limits_ = false;
-
223  }
-
224  if (std::isnan(min_second_derivative_))
-
225  {
-
226  min_second_derivative_ = -max_second_derivative_;
+
200 
+
201  if (std::isnan(max_first_derivative_pos_))
+
202  {
+
203  has_first_derivative_limits_ = false;
+
204  }
+
205  if (std::isnan(min_first_derivative_neg_))
+
206  {
+
207  min_first_derivative_neg_ = -max_first_derivative_pos_;
+
208  }
+
209  if (has_first_derivative_limits_ && min_first_derivative_neg_ > max_first_derivative_pos_)
+
210  {
+
211  throw std::invalid_argument("Invalid first derivative limits");
+
212  }
+
213  if (has_first_derivative_limits_)
+
214  {
+
215  if (std::isnan(max_first_derivative_neg_))
+
216  {
+
217  max_first_derivative_neg_ = max_first_derivative_pos_;
+
218  }
+
219  if (std::isnan(min_first_derivative_pos_))
+
220  {
+
221  min_first_derivative_pos_ = min_first_derivative_neg_;
+
222  }
+
223  if (has_first_derivative_limits_ && min_first_derivative_pos_ > max_first_derivative_neg_)
+
224  {
+
225  throw std::invalid_argument("Invalid first derivative limits");
+
226  }
227  }
-
228  if (has_second_derivative_limits_ && min_second_derivative_ > max_second_derivative_)
-
229  {
-
230  throw std::invalid_argument("Invalid second derivative limits");
-
231  }
-
232 }
-
233 
-
234 template <typename T>
-
235 T RateLimiter<T>::limit(T & v, T v0, T v1, T dt)
-
236 {
-
237  const T tmp = v;
-
238 
-
239  limit_second_derivative(v, v0, v1, dt);
-
240  limit_first_derivative(v, v0, dt);
-
241  limit_value(v);
+
228 
+
229  if (std::isnan(max_second_derivative_))
+
230  {
+
231  has_second_derivative_limits_ = false;
+
232  }
+
233  if (std::isnan(min_second_derivative_))
+
234  {
+
235  min_second_derivative_ = -max_second_derivative_;
+
236  }
+
237  if (has_second_derivative_limits_ && min_second_derivative_ > max_second_derivative_)
+
238  {
+
239  throw std::invalid_argument("Invalid second derivative limits");
+
240  }
+
241 }
242 
-
243  return tmp != static_cast<T>(0.0) ? v / tmp : static_cast<T>(1.0);
-
244 }
-
245 
-
246 template <typename T>
- -
248 {
-
249  const T tmp = v;
-
250 
-
251  if (has_value_limits_)
-
252  {
-
253  v = std::clamp(v, min_value_, max_value_);
-
254  }
-
255 
-
256  return tmp != static_cast<T>(0.0) ? v / tmp : static_cast<T>(1.0);
-
257 }
-
258 
-
259 template <typename T>
- -
261 {
-
262  const T tmp = v;
-
263 
-
264  if (has_first_derivative_limits_)
-
265  {
-
266  T dv_max, dv_min = 0;
-
267  if (v0 > static_cast<T>(0.0))
-
268  {
-
269  dv_max = max_first_derivative_pos_ * dt;
-
270  dv_min = min_first_derivative_pos_ * dt;
-
271  }
-
272  else if (v0 < static_cast<T>(0.0))
-
273  {
-
274  dv_min = min_first_derivative_neg_ * dt;
-
275  dv_max = max_first_derivative_neg_ * dt;
-
276  }
-
277  else
-
278  {
-
279  dv_min = min_first_derivative_neg_ * dt;
-
280  dv_max = max_first_derivative_pos_ * dt;
-
281  }
-
282  const T dv = std::clamp(v - v0, dv_min, dv_max);
-
283 
-
284  v = v0 + dv;
-
285  }
-
286 
-
287  return tmp != static_cast<T>(0.0) ? v / tmp : static_cast<T>(1.0);
-
288 }
-
289 
-
290 template <typename T>
-
291 T RateLimiter<T>::limit_second_derivative(T & v, T v0, T v1, T dt)
-
292 {
-
293  const T tmp = v;
-
294 
-
295  if (has_second_derivative_limits_)
-
296  {
-
297  const T dv = v - v0;
-
298  const T dv0 = v0 - v1;
-
299 
-
300  const T dt2 = static_cast<T>(2.0) * dt * dt;
-
301 
-
302  const T da_min = min_second_derivative_ * dt2;
-
303  const T da_max = max_second_derivative_ * dt2;
-
304 
-
305  const T da = std::clamp(dv - dv0, da_min, da_max);
-
306 
-
307  v = v0 + dv0 + da;
-
308  }
-
309 
-
310  return tmp != static_cast<T>(0.0) ? v / tmp : static_cast<T>(1.0);
-
311 }
-
312 
-
313 } // namespace control_toolbox
-
314 
-
315 #endif // CONTROL_TOOLBOX__RATE_LIMITER_HPP_
+
243 template <typename T>
+
244 T RateLimiter<T>::limit(T & v, T v0, T v1, T dt)
+
245 {
+
246  const T tmp = v;
+
247 
+
248  limit_second_derivative(v, v0, v1, dt);
+
249  limit_first_derivative(v, v0, dt);
+
250  limit_value(v);
+
251 
+
252  return tmp != static_cast<T>(0.0) ? v / tmp : static_cast<T>(1.0);
+
253 }
+
254 
+
255 template <typename T>
+ +
257 {
+
258  const T tmp = v;
+
259 
+
260  if (has_value_limits_)
+
261  {
+
262  v = std::clamp(v, min_value_, max_value_);
+
263  }
+
264 
+
265  return tmp != static_cast<T>(0.0) ? v / tmp : static_cast<T>(1.0);
+
266 }
+
267 
+
268 template <typename T>
+ +
270 {
+
271  const T tmp = v;
+
272 
+
273  if (has_first_derivative_limits_)
+
274  {
+
275  T dv_max, dv_min = 0;
+
276  if (v0 > static_cast<T>(0.0))
+
277  {
+
278  dv_max = max_first_derivative_pos_ * dt;
+
279  dv_min = min_first_derivative_pos_ * dt;
+
280  }
+
281  else if (v0 < static_cast<T>(0.0))
+
282  {
+
283  dv_min = min_first_derivative_neg_ * dt;
+
284  dv_max = max_first_derivative_neg_ * dt;
+
285  }
+
286  else
+
287  {
+
288  dv_min = min_first_derivative_neg_ * dt;
+
289  dv_max = max_first_derivative_pos_ * dt;
+
290  }
+
291  const T dv = std::clamp(v - v0, dv_min, dv_max);
+
292 
+
293  v = v0 + dv;
+
294  }
+
295 
+
296  return tmp != static_cast<T>(0.0) ? v / tmp : static_cast<T>(1.0);
+
297 }
+
298 
+
299 template <typename T>
+
300 T RateLimiter<T>::limit_second_derivative(T & v, T v0, T v1, T dt)
+
301 {
+
302  const T tmp = v;
+
303 
+
304  if (has_second_derivative_limits_)
+
305  {
+
306  const T dv = v - v0;
+
307  const T dv0 = v0 - v1;
+
308 
+
309  // Only limit jerk when accelerating or reverse_accelerating
+
310  // Note: this prevents oscillating closed-loop behavior, see discussion
+
311  // details in https://github.com/ros-controls/control_toolbox/issues/240.
+
312  if ((dv - dv0) * (v - v0) > 0)
+
313  {
+
314  const T dt2 = dt * dt;
+
315 
+
316  const T da_min = min_second_derivative_ * dt2;
+
317  const T da_max = max_second_derivative_ * dt2;
+
318 
+
319  const T da = std::clamp(dv - dv0, da_min, da_max);
+
320 
+
321  v = v0 + dv0 + da;
+
322  }
+
323  }
+
324 
+
325  return tmp != static_cast<T>(0.0) ? v / tmp : static_cast<T>(1.0);
+
326 }
+
327 
+
328 } // namespace control_toolbox
+
329 
+
330 #endif // CONTROL_TOOLBOX__RATE_LIMITER_HPP_
Definition: rate_limiter.hpp:32
-
T limit_value(T &v)
Limit the value.
Definition: rate_limiter.hpp:247
-
RateLimiter(T min_value=std::numeric_limits< double >::quiet_NaN(), T max_value=std::numeric_limits< double >::quiet_NaN(), T min_first_derivative_neg=std::numeric_limits< double >::quiet_NaN(), T max_first_derivative_pos=std::numeric_limits< double >::quiet_NaN(), T min_first_derivative_pos=std::numeric_limits< double >::quiet_NaN(), T max_first_derivative_neg=std::numeric_limits< double >::quiet_NaN(), T min_second_derivative=std::numeric_limits< double >::quiet_NaN(), T max_second_derivative=std::numeric_limits< double >::quiet_NaN())
Constructor.
Definition: rate_limiter.hpp:148
-
T limit_second_derivative(T &v, T v0, T v1, T dt)
Limit the second_derivative.
Definition: rate_limiter.hpp:291
-
void set_params(T min_value=std::numeric_limits< double >::quiet_NaN(), T max_value=std::numeric_limits< double >::quiet_NaN(), T min_first_derivative_neg=std::numeric_limits< double >::quiet_NaN(), T max_first_derivative_pos=std::numeric_limits< double >::quiet_NaN(), T min_first_derivative_pos=std::numeric_limits< double >::quiet_NaN(), T max_first_derivative_neg=std::numeric_limits< double >::quiet_NaN(), T min_second_derivative=std::numeric_limits< double >::quiet_NaN(), T max_second_derivative=std::numeric_limits< double >::quiet_NaN())
Set the parameters.
Definition: rate_limiter.hpp:164
-
T limit(T &v, T v0, T v1, T dt)
Limit the value and first_derivative.
Definition: rate_limiter.hpp:235
-
T limit_first_derivative(T &v, T v0, T dt)
Limit the first_derivative.
Definition: rate_limiter.hpp:260
+
T limit_value(T &v)
Limit the value.
Definition: rate_limiter.hpp:256
+
RateLimiter(T min_value=std::numeric_limits< double >::quiet_NaN(), T max_value=std::numeric_limits< double >::quiet_NaN(), T min_first_derivative_neg=std::numeric_limits< double >::quiet_NaN(), T max_first_derivative_pos=std::numeric_limits< double >::quiet_NaN(), T min_first_derivative_pos=std::numeric_limits< double >::quiet_NaN(), T max_first_derivative_neg=std::numeric_limits< double >::quiet_NaN(), T min_second_derivative=std::numeric_limits< double >::quiet_NaN(), T max_second_derivative=std::numeric_limits< double >::quiet_NaN())
Constructor.
Definition: rate_limiter.hpp:157
+
T limit_second_derivative(T &v, T v0, T v1, T dt)
Limit the second_derivative.
Definition: rate_limiter.hpp:300
+
void set_params(T min_value=std::numeric_limits< double >::quiet_NaN(), T max_value=std::numeric_limits< double >::quiet_NaN(), T min_first_derivative_neg=std::numeric_limits< double >::quiet_NaN(), T max_first_derivative_pos=std::numeric_limits< double >::quiet_NaN(), T min_first_derivative_pos=std::numeric_limits< double >::quiet_NaN(), T max_first_derivative_neg=std::numeric_limits< double >::quiet_NaN(), T min_second_derivative=std::numeric_limits< double >::quiet_NaN(), T max_second_derivative=std::numeric_limits< double >::quiet_NaN())
Set the parameters.
Definition: rate_limiter.hpp:173
+
T limit(T &v, T v0, T v1, T dt)
Limit the value and first_derivative.
Definition: rate_limiter.hpp:244
+
T limit_first_derivative(T &v, T v0, T dt)
Limit the first_derivative.
Definition: rate_limiter.hpp:269
Definition: dither.hpp:46
diff --git a/galactic/doc/api/realtime__server__goal__handle_8hpp_source.html b/galactic/doc/api/realtime__server__goal__handle_8hpp_source.html index 5c14812fc5..9b5c65472a 100644 --- a/galactic/doc/api/realtime__server__goal__handle_8hpp_source.html +++ b/galactic/doc/api/realtime__server__goal__handle_8hpp_source.html @@ -118,133 +118,131 @@
47  using ResultSharedPtr = typename Action::Result::SharedPtr;
48  using FeedbackSharedPtr = typename Action::Feedback::SharedPtr;
49 
-
50  uint8_t state_;
-
51 
-
52  bool req_abort_;
-
53  bool req_cancel_;
-
54  bool req_succeed_;
-
55  bool req_execute_;
-
56 
-
57  std::mutex mutex_;
-
58  ResultSharedPtr req_result_;
-
59  FeedbackSharedPtr req_feedback_;
-
60  rclcpp::Logger logger_;
-
61 
-
62 public:
-
63  std::shared_ptr<GoalHandle> gh_;
-
64  ResultSharedPtr preallocated_result_; // Preallocated so it can be used in realtime
-
65  FeedbackSharedPtr preallocated_feedback_; // Preallocated so it can be used in realtime
-
66 
-
67  explicit RealtimeServerGoalHandle(
-
68  std::shared_ptr<GoalHandle> & gh, const ResultSharedPtr & preallocated_result = nullptr,
-
69  const FeedbackSharedPtr & preallocated_feedback = nullptr)
- -
71  gh, preallocated_result, preallocated_feedback, rclcpp::get_logger("realtime_tools"))
-
72  {
-
73  }
-
74 
- -
76  std::shared_ptr<GoalHandle> & gh, const ResultSharedPtr & preallocated_result,
-
77  const FeedbackSharedPtr & preallocated_feedback, rclcpp::Logger logger)
-
78  : req_abort_(false),
-
79  req_cancel_(false),
-
80  req_succeed_(false),
-
81  req_execute_(false),
-
82  logger_(logger),
-
83  gh_(gh),
-
84  preallocated_result_(preallocated_result),
-
85  preallocated_feedback_(preallocated_feedback)
-
86  {
-
87  if (!preallocated_result_) {
-
88  preallocated_result_.reset(new typename Action::Result);
-
89  }
-
90  if (!preallocated_feedback_) {
-
91  preallocated_feedback_.reset(new typename Action::Feedback);
-
92  }
-
93  }
-
94 
-
95  void setAborted(ResultSharedPtr result = nullptr)
-
96  {
-
97  if (req_execute_ && !req_succeed_ && !req_abort_ && !req_cancel_) {
-
98  std::lock_guard<std::mutex> guard(mutex_);
-
99 
-
100  req_result_ = result;
-
101  req_abort_ = true;
-
102  }
-
103  }
-
104 
-
105  void setCanceled(ResultSharedPtr result = nullptr)
-
106  {
-
107  if (req_execute_ && !req_succeed_ && !req_abort_ && !req_cancel_) {
-
108  std::lock_guard<std::mutex> guard(mutex_);
-
109 
-
110  req_result_ = result;
-
111  req_cancel_ = true;
-
112  }
-
113  }
-
114 
-
115  void setSucceeded(ResultSharedPtr result = nullptr)
-
116  {
-
117  if (req_execute_ && !req_succeed_ && !req_abort_ && !req_cancel_) {
-
118  std::lock_guard<std::mutex> guard(mutex_);
-
119 
-
120  req_result_ = result;
-
121  req_succeed_ = true;
-
122  }
-
123  }
-
124 
-
125  void setFeedback(FeedbackSharedPtr feedback = nullptr)
-
126  {
-
127  std::lock_guard<std::mutex> guard(mutex_);
-
128  req_feedback_ = feedback;
-
129  }
-
130 
-
131  void execute()
-
132  {
-
133  if (!req_succeed_ && !req_abort_ && !req_cancel_) {
-
134  std::lock_guard<std::mutex> guard(mutex_);
-
135  req_execute_ = true;
-
136  }
-
137  }
+
50  bool req_abort_;
+
51  bool req_cancel_;
+
52  bool req_succeed_;
+
53  bool req_execute_;
+
54 
+
55  std::mutex mutex_;
+
56  ResultSharedPtr req_result_;
+
57  FeedbackSharedPtr req_feedback_;
+
58  rclcpp::Logger logger_;
+
59 
+
60 public:
+
61  std::shared_ptr<GoalHandle> gh_;
+
62  ResultSharedPtr preallocated_result_; // Preallocated so it can be used in realtime
+
63  FeedbackSharedPtr preallocated_feedback_; // Preallocated so it can be used in realtime
+
64 
+
65  explicit RealtimeServerGoalHandle(
+
66  std::shared_ptr<GoalHandle> & gh, const ResultSharedPtr & preallocated_result = nullptr,
+
67  const FeedbackSharedPtr & preallocated_feedback = nullptr)
+ +
69  gh, preallocated_result, preallocated_feedback, rclcpp::get_logger("realtime_tools"))
+
70  {
+
71  }
+
72 
+ +
74  std::shared_ptr<GoalHandle> & gh, const ResultSharedPtr & preallocated_result,
+
75  const FeedbackSharedPtr & preallocated_feedback, rclcpp::Logger logger)
+
76  : req_abort_(false),
+
77  req_cancel_(false),
+
78  req_succeed_(false),
+
79  req_execute_(false),
+
80  logger_(logger),
+
81  gh_(gh),
+
82  preallocated_result_(preallocated_result),
+
83  preallocated_feedback_(preallocated_feedback)
+
84  {
+
85  if (!preallocated_result_) {
+
86  preallocated_result_.reset(new typename Action::Result);
+
87  }
+
88  if (!preallocated_feedback_) {
+
89  preallocated_feedback_.reset(new typename Action::Feedback);
+
90  }
+
91  }
+
92 
+
93  void setAborted(ResultSharedPtr result = nullptr)
+
94  {
+
95  if (req_execute_ && !req_succeed_ && !req_abort_ && !req_cancel_) {
+
96  std::lock_guard<std::mutex> guard(mutex_);
+
97 
+
98  req_result_ = result;
+
99  req_abort_ = true;
+
100  }
+
101  }
+
102 
+
103  void setCanceled(ResultSharedPtr result = nullptr)
+
104  {
+
105  if (req_execute_ && !req_succeed_ && !req_abort_ && !req_cancel_) {
+
106  std::lock_guard<std::mutex> guard(mutex_);
+
107 
+
108  req_result_ = result;
+
109  req_cancel_ = true;
+
110  }
+
111  }
+
112 
+
113  void setSucceeded(ResultSharedPtr result = nullptr)
+
114  {
+
115  if (req_execute_ && !req_succeed_ && !req_abort_ && !req_cancel_) {
+
116  std::lock_guard<std::mutex> guard(mutex_);
+
117 
+
118  req_result_ = result;
+
119  req_succeed_ = true;
+
120  }
+
121  }
+
122 
+
123  void setFeedback(FeedbackSharedPtr feedback = nullptr)
+
124  {
+
125  std::lock_guard<std::mutex> guard(mutex_);
+
126  req_feedback_ = feedback;
+
127  }
+
128 
+
129  void execute()
+
130  {
+
131  if (!req_succeed_ && !req_abort_ && !req_cancel_) {
+
132  std::lock_guard<std::mutex> guard(mutex_);
+
133  req_execute_ = true;
+
134  }
+
135  }
+
136 
+
137  bool valid() { return nullptr != gh_.get(); }
138 
-
139  bool valid() { return nullptr != gh_.get(); }
-
140 
-
141  void runNonRealtime()
-
142  {
-
143  if (!valid()) {
-
144  return;
-
145  }
+
139  void runNonRealtime()
+
140  {
+
141  if (!valid()) {
+
142  return;
+
143  }
+
144 
+
145  std::lock_guard<std::mutex> guard(mutex_);
146 
-
147  std::lock_guard<std::mutex> guard(mutex_);
-
148 
-
149  try {
-
150  if (req_execute_ && !gh_->is_executing() && gh_->is_active() && !gh_->is_canceling()) {
-
151  gh_->execute();
-
152  }
-
153  if (req_abort_ && gh_->is_executing()) {
-
154  gh_->abort(req_result_);
-
155  req_abort_ = false;
-
156  }
-
157  if (req_cancel_ && gh_->is_active()) {
-
158  gh_->canceled(req_result_);
-
159  req_cancel_ = false;
-
160  }
-
161  if (req_succeed_ && !gh_->is_canceling()) {
-
162  gh_->succeed(req_result_);
-
163  req_succeed_ = false;
-
164  }
-
165  if (req_feedback_ && gh_->is_executing()) {
-
166  gh_->publish_feedback(req_feedback_);
-
167  }
-
168  } catch (const rclcpp::exceptions::RCLErrorBase & e) {
-
169  // Likely invalid state transition
-
170  RCLCPP_WARN(logger_, "%s", e.formatted_message.c_str());
-
171  }
-
172  }
-
173 };
-
174 
-
175 } // namespace realtime_tools
-
176 #endif // REALTIME_TOOLS__REALTIME_SERVER_GOAL_HANDLE_HPP_
+
147  try {
+
148  if (req_execute_ && !gh_->is_executing() && gh_->is_active() && !gh_->is_canceling()) {
+
149  gh_->execute();
+
150  }
+
151  if (req_abort_ && gh_->is_executing()) {
+
152  gh_->abort(req_result_);
+
153  req_abort_ = false;
+
154  }
+
155  if (req_cancel_ && gh_->is_active()) {
+
156  gh_->canceled(req_result_);
+
157  req_cancel_ = false;
+
158  }
+
159  if (req_succeed_ && !gh_->is_canceling()) {
+
160  gh_->succeed(req_result_);
+
161  req_succeed_ = false;
+
162  }
+
163  if (req_feedback_ && gh_->is_executing()) {
+
164  gh_->publish_feedback(req_feedback_);
+
165  }
+
166  } catch (const rclcpp::exceptions::RCLErrorBase & e) {
+
167  // Likely invalid state transition
+
168  RCLCPP_WARN(logger_, "%s", e.formatted_message.c_str());
+
169  }
+
170  }
+
171 };
+
172 
+
173 } // namespace realtime_tools
+
174 #endif // REALTIME_TOOLS__REALTIME_SERVER_GOAL_HANDLE_HPP_
Definition: joint_trajectory_controller.hpp:50
Definition: realtime_server_goal_handle.hpp:44
Definition: async_function_handler.hpp:38
diff --git a/galactic/index.html b/galactic/index.html index f9a8015085..669f507dd4 100644 --- a/galactic/index.html +++ b/galactic/index.html @@ -150,7 +150,7 @@

Development Organisation and Communication -

Built on 2024-12-02 at 05:40 GMT

+

Built on 2024-12-03 at 05:39 GMT

diff --git a/galactic/searchindex.js b/galactic/searchindex.js index a7cf989efb..f033b1c68c 100644 --- a/galactic/searchindex.js +++ b/galactic/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "API Documentation": [[7, "api-documentation"]], "Acknowledgements": [[0, "acknowledgements"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Architecture": [[3, "architecture"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Available Broadcasters": [[13, "available-broadcasters"]], "Available Controllers": [[13, "available-controllers"]], "CI configuration": [[1, "ci-configuration"]], "Command Line Interface": [[10, "command-line-interface"]], "Commands": [[19, "commands"]], "Compiling": [[3, "compiling"]], "Concepts": [[7, "concepts"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Controller Migration": [[2, "controller-migration"]], "Controllers": [[3, "controllers"], [13, "id1"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Core functionalities": [[7, "core-functionalities"]], "Demos": [[11, "demos"]], "Details about parameters": [[20, "details-about-parameters"]], "Determinism": [[6, "determinism"]], "Development Organisation and Communication": [[23, "development-organisation-and-communication"]], "Diagrams": [[5, "diagrams"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Fake Components": [[8, "fake-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Features": [[7, "features"]], "Force Torque Sensor Broadcaster": [[16, "force-torque-sensor-broadcaster"]], "Generic System": [[8, "generic-system"]], "Getting Started": [[3, "getting-started"]], "Guidelines and Best Practices": [[13, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[9, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Hardware Components": [[3, "hardware-components"], [9, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "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"]], "Helper scripts": [[6, "helper-scripts"]], "IMU Sensor Broadcaster": [[18, "imu-sensor-broadcaster"]], "Images": [[5, "images"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "Migration from Foxy to Galactic": [[9, "migration-from-foxy-to-galactic"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Mode switching demo": [[11, "mode-switching-demo"]], "Nomenclature": [[13, "nomenclature"]], "Other features": [[12, "other-features"], [20, "other-features"]], "Overview": [[23, "overview"]], "Parameters": [[8, "parameters"], [16, "parameters"], [18, "parameters"], [19, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Presentations": [[5, "presentations"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Pull Requests": [[1, "pull-requests"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Repository organization": [[11, "repository-organization"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "Resource Manager": [[3, "resource-manager"]], "Resources": [[5, "resources"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "Trajectory representation": [[20, "trajectory-representation"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Useful External References": [[14, "useful-external-references"]], "User Interfaces": [[3, "user-interfaces"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Velocity commands": [[12, "velocity-commands"]], "Welcome to the ros2_control documentation - Galactic!": [[23, "welcome-to-the-ros2-control-documentation-galactic"]], "Writing a new controller": [[14, "writing-a-new-controller"]], "Writing documentation": [[1, "writing-documentation"]], "diff_drive_controller": [[12, "diff-drive-controller"]], "effort_controllers": [[15, "effort-controllers"]], "forward_command_controller": [[17, "forward-command-controller"]], "joint_state_broadcaster": [[19, "joint-state-broadcaster"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "list_controller_types": [[10, "list-controller-types"]], "list_controllers": [[10, "list-controllers"]], "list_hardware_interfaces": [[10, "list-hardware-interfaces"]], "load_controller": [[10, "load-controller"]], "position_controllers": [[21, "position-controllers"]], "reload_controller_libraries": [[10, "reload-controller-libraries"]], "ros2_controllers": [[13, "ros2-controllers"]], "set_controller_state": [[10, "set-controller-state"]], "spawner": [[6, "spawner"]], "switch_controllers": [[10, "switch-controllers"]], "unload_controller": [[10, "unload-controller"]], "unspawner": [[6, "unspawner"]], "velocity_controllers": [[22, "velocity-controllers"]]}, "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"], "envversion": {"sphinx": 61, "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}, "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"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 3, 4, 5, 11, 14, 23], "0": [3, 8, 19, 20], "01": 20, "02": 23, "03": 20, "04": 6, "05": [20, 23], "1": [1, 3, 4, 5, 8, 14], "100": 3, "12": 23, "171": 20, "175": 4, "2": [1, 3, 5, 8], "20": 20, "2020": 0, "2024": 23, "22": 6, "23": 3, "3": [3, 4], "302": 4, "303": 4, "304": 4, "350": 4, "3rd": 5, "40": 23, "43": 3, "45": 4, "50": [3, 6, 20], "500": 4, "6d": 16, "732287": 0, "81": 4, "9": 4, "A": [3, 5, 14, 19, 20], "As": [1, 14], "At": 14, "BY": 5, "Be": 1, "By": [19, 20], "For": [1, 3, 4, 5, 6, 8, 9, 14, 20], "If": [1, 2, 3, 6, 9, 14, 16, 19, 20, 23], "In": [2, 3, 4, 5, 14, 19], "It": [1, 2, 3, 4, 6, 16, 19], "Its": 23, "Not": 20, "On": 3, "One": 5, "Such": 4, "That": [1, 14], "The": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23], "There": [3, 6, 9, 14], "These": [15, 17, 21, 22], "To": [1, 2, 3, 6, 19, 23], "With": 5, "_control": 5, "_interfac": 2, "abi": 1, "abl": 1, "about": [4, 8, 19, 23], "abov": [2, 20], "abstract": [3, 5, 9], "acceler": [5, 11, 12, 13, 20], "accept": [1, 14, 15, 17, 21, 22], "access": [3, 4, 5, 6, 8, 14, 19], "accord": [13, 20], "aceleromet": 4, "achiev": [15, 17, 21, 22], "action": 20, "action_monitor_r": 20, "activ": [1, 2, 3, 10, 19], "actuat": [2, 3, 4, 8, 9], "actuatorinterfac": 2, "ad": [1, 4, 8, 14, 19], "add": [1, 2, 9, 14], "addit": [2, 4], "addition": [4, 23], "address": [1, 4], "adjust": 10, "admitt": 5, "adopt": 4, "advantag": 8, "afraid": 1, "after": [1, 12, 14], "again": [9, 11], "against": 1, "agnost": 5, "agreement": 0, "aka": 5, "all": [1, 2, 3, 4, 5, 8, 9, 11, 14, 19, 20], "allow": [2, 20], "allow_partial_joints_go": 20, "alreadi": [10, 14, 20], "also": [1, 2, 3, 4, 5, 14], "altern": [3, 20], "although": [4, 9], "alwai": 1, "amd64": 6, "ament": 14, "ament_add_gmock": 14, "ament_cmak": 14, "ament_cmake_gmock": 14, "ament_export_librari": 14, "ament_packag": 14, "an": [1, 2, 3, 4, 5, 8, 10, 14, 19, 20], "andi": 5, "angular": 12, "angular_veloc": 18, "ani": [2, 3, 5, 9, 14], "announc": 23, "anoth": 4, "answer": 23, "anymor": 2, "api": [1, 4], "appli": 10, "applic": [1, 3, 5, 6], "approach": 2, "appropri": 4, "approv": 1, "ar": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 18, 19, 20, 23], "architectur": [4, 5], "arduino": 3, "argument": [6, 10], "arm": 5, "around": [4, 16, 18], "arrai": 19, "asap": 10, "ask": [14, 19], "assign": 14, "assum": 3, "assur": 0, "attempt": [6, 20], "author": 5, "auto": 3, "automat": [3, 12], "autonom": 5, "avail": [2, 3, 5, 10, 11, 14, 19, 20], "avoid": [1, 14], "awar": 1, "ax": 16, "axi": [4, 16], "back": 1, "background": 1, "base": [3, 5, 9, 10, 12, 14], "base_interfac": 9, "baseinterfac": 9, "bash": 14, "basic": [2, 3, 4, 5, 14], "becaus": 20, "becom": 5, "been": 11, "befor": [1, 2, 6, 14], "behavior": [4, 8], "below": 5, "benc": [4, 5], "benchmark": 4, "best": [5, 6, 14], "beta": 6, "better": 5, "between": [3, 4, 9, 19, 20], "binari": 1, "blog": 6, "board": 3, "bodi": 12, "boolean": [8, 19, 20], "boost": 8, "booth": 5, "both": [4, 5, 19], "bottom": 14, "box": 2, "brake": 1, "branch": 1, "broadcast": [8, 19], "brook": 5, "buffer": [4, 23], "bug": 23, "build": [1, 14], "built": 23, "bullsey": 6, "c": [4, 6, 10, 14], "calcul": 3, "call": [2, 3, 14], "callbackreturn": 9, "can": [1, 2, 3, 4, 5, 7, 8, 9, 14, 16, 20, 23], "capabl": [3, 4], "care": [2, 4, 14], "case": [2, 4, 5, 14, 19, 20, 23], "caus": 20, "cc": 5, "cell": [2, 16], "certain": [15, 17, 21, 22], "chain": 5, "chanc": 1, "chang": [1, 2, 3, 5, 9, 10, 14, 20], "channel": 3, "check": [1, 2, 3, 4, 8, 9, 11, 14, 20, 23], "choos": 2, "chosen": 3, "claim": 11, "class": [3, 5, 9, 10, 14], "class_list_macro": 14, "clean": [1, 4], "cli": [3, 7, 10], "clock": 20, "close": 14, "cm": 3, "cmake": 14, "cmakelist": [9, 14], "code": [1, 2, 4, 5, 14], "cokela": 1, "colcon": 14, "collabor": 1, "collect": [5, 15, 17, 21, 22], "com": [3, 4, 6], "combin": [2, 8, 19, 20], "combinedrobothardwar": 2, "command": [2, 3, 4, 5, 7, 8, 11, 13, 14, 15, 17, 20, 21, 22, 23], "command_interfac": [3, 20], "command_interface_configur": [2, 14], "comment": 1, "commit": 1, "common": [3, 4, 13, 19, 23], "commun": [2, 3, 4, 5], "compani": [0, 5], "company_nam": 5, "compar": [3, 4, 5], "compass": 4, "compat": [1, 2, 5], "compil": 14, "complet": [3, 9, 13], "complex": [3, 4, 5], "compon": [0, 5, 6, 7, 12, 16, 18, 23], "composit": [2, 5], "comprehens": 11, "comput": [6, 12], "concept": [4, 5, 8, 11], "conductor": 4, "configur": [2, 3, 4, 5, 6, 9, 10, 11, 14, 19, 20], "conflict": [2, 3, 4], "connect": 3, "consid": [1, 10], "consist": [4, 20, 23], "const": 9, "constant": 2, "constraint": [14, 20], "constructor": [2, 14], "consult": 5, "contact": 5, "content": 14, "continu": 20, "contribut": [0, 1, 5], "contributor": 1, "control": [5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 21, 22, 23], "control_msg": [20, 23], "control_toolbox": [4, 23], "controller_interfac": [3, 4, 10, 14, 16, 18], "controller_manag": [3, 4, 6, 10, 14, 20], "controller_manager_msg": 3, "controller_manager_timeout": 6, "controller_nam": [6, 10, 14], "controller_name_namespac": 14, "controller_name_packag": 14, "controller_typ": 6, "controllerinterfac": [2, 3, 10, 14], "controllermanag": 2, "controllernam": 14, "convent": 1, "copi": 14, "core": 1, "correct": [1, 2, 20], "correspond": [8, 14, 23], "could": [3, 5, 14, 19, 20], "cowboi": 1, "cpp": [2, 14], "creat": [2, 3, 5, 8, 14], "critic": [2, 4], "cross": [2, 19], "cubic": 20, "current": [1, 4, 9, 10, 20], "current_sensor": 19, "custom": [3, 8, 16, 19], "custom_interfac": 19, "custom_interface_with_following_offset": 8, "cycl": 5, "daemon": 10, "dai": 1, "data": [2, 3, 4, 8, 19], "dc": 3, "deactiv": [2, 3], "deal": 3, "debian": 6, "debug": 8, "decid": 2, "declar": [2, 14], "deeper": 5, "default": [2, 3, 8, 19, 20], "defin": [2, 3, 4, 8, 13, 14, 16, 18, 19, 20], "definit": [3, 13, 14, 16], "degrad": 4, "delv": 5, "demo": 5, "demonstr": 11, "deni": [4, 5], "depend": [1, 3, 9, 14, 20], "deriv": 3, "derived_effort": 19, "derived_veloc": 19, "describ": [2, 3], "descript": [1, 2, 5, 9, 14], "design": [2, 3, 4, 5, 23], "desir": [4, 20], "detail": [1, 2, 3, 8, 9, 14], "develop": [1, 5, 8, 11, 14], "deviat": 20, "diff_drive_control": [4, 10], "diffdrivecontrol": 10, "differ": [3, 4, 5, 15, 16, 17, 19, 21, 22], "differenti": [12, 13, 23], "difficulti": 4, "direct": [1, 2, 4, 14], "directli": [3, 23], "directori": 14, "discontinu": 20, "discourag": 20, "discours": 23, "discoveri": 10, "discuss": [1, 5, 23], "distribut": [1, 23], "do": [1, 2, 3, 4, 5, 6, 14, 20], "doc": 23, "document": [3, 4, 5, 8], "doe": [2, 14, 20], "doesn": 1, "dof": 3, "don": 1, "done": [5, 14], "doubl": [4, 8, 20], "down": 5, "doxygen": 7, "dr": 5, "draft": 4, "drawback": [2, 23], "drive": [12, 13, 23], "driver": [3, 5], "dynam": [3, 14], "dynamic_joint_st": 19, "e": [1, 2, 3, 4, 5, 8, 14, 15, 16, 17, 19, 20, 21, 22, 23], "each": [1, 3, 4, 9, 19], "earlier": 4, "easi": 4, "easiest": [6, 14], "edit": 5, "effector": 3, "effort": [2, 13, 15, 17, 19, 20], "effort_control": 13, "eg": 20, "either": 5, "els": 1, "emerg": 5, "empti": 14, "enabl": [2, 3, 4, 5, 6, 9, 11, 16], "encod": 3, "encourag": 1, "end": [2, 3, 9, 14, 20], "enforc": [2, 20], "engin": 14, "enjoi": 14, "ensur": [2, 5], "entri": [3, 14], "entropi": 1, "environ": [1, 3, 5], "envis": 4, "equival": 2, "error": [3, 4, 14, 19, 20], "especi": [1, 2], "essenti": 4, "etc": 23, "eu": 0, "european": 0, "even": 8, "event": 5, "everi": 23, "everyth": [4, 14], "exact": 14, "exactli": 1, "exampl": [2, 3, 4, 5, 8, 10, 11, 16, 19, 20, 23], "example_interfac": 16, "example_nam": 16, "example_param_read_for_sec": 3, "example_param_write_for_sec": 3, "excel": 2, "except": 1, "exchang": [2, 4], "execut": [3, 14, 20], "executor": 3, "exercis": 1, "exist": [2, 3, 4, 6, 9, 14], "exit": [6, 10], "expect": [1, 4, 20], "experi": 1, "explan": 3, "explicit": [5, 20], "explicitli": 1, "export": [3, 14], "export_": 2, "expos": 5, "extend": [2, 3, 4, 14], "extern": [2, 3, 4, 8], "extra": [5, 19], "extra_joint": 19, "extract": [2, 12], "factor": 5, "fail": 1, "failur": [4, 9], "fake": 7, "fake_sensor_command": 8, "fals": [8, 19, 20], "familiar": [4, 23], "featur": [1, 5, 8, 23], "feedback": [12, 19, 20], "feedforward": 20, "few": [4, 5], "field": 19, "figur": 3, "file": [2, 3, 4, 5, 6, 8, 14, 20], "final": [2, 5, 9], "find": 1, "find_packag": 14, "fine": 14, "first": [1, 2, 9, 14], "fiveai": 5, "fix": [1, 2], "fixup": 1, "flag": [14, 20], "flexibl": 3, "focu": 5, "focus": [4, 5], "folder": [3, 5, 14], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 11, 13, 14, 20, 23], "follow_joint_trajectori": 20, "followjointtrajectori": 20, "forc": [3, 5, 10, 13], "forcetorquesensor": 16, "forcetorquesensor1dhardwar": 3, "forget": 2, "fork": 1, "form": 4, "format": [4, 19], "forward": [5, 8, 13, 20, 23], "forward_acceleration_control": 11, "forward_illegal1_control": 11, "forward_illegal2_control": 11, "forward_position_control": 11, "forward_velocity_control": 11, "forwardcommandcontrol": 3, "found": [3, 7, 14, 20, 23], "foxi": [1, 3, 5], "frame": [16, 18], "frame_id": [3, 16, 18], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 11, 13, 14, 19, 23], "frequenc": 4, "friend": 14, "friendli": 3, "from": [0, 1, 2, 3, 5, 6, 8, 10, 12, 14, 16, 18, 20, 23], "ft": 16, "full": 14, "function": [1, 2, 3, 4, 5, 6], "fund": 0, "further": 14, "furthermor": 5, "futur": [1, 5], "g": [1, 2, 3, 4, 5, 8, 14, 15, 17, 19, 21, 22, 23], "galact": 1, "gazebo": 4, "gener": [4, 5, 14, 20, 23], "geometry_msg": 16, "get": [5, 9, 23], "github": [3, 4, 7, 13, 23], "githubusercont": 3, "give": [1, 3, 5, 23], "given": [3, 20], "gmock": 4, "gmt": 23, "go": [5, 14], "goal": [4, 5, 20, 23], "goal_tim": 20, "good": [1, 4], "googl": 23, "gpio": 4, "grace": 4, "grant": 0, "granular": 2, "great": 14, "green": 1, "gripper": [2, 3, 8], "gripper_joint": 3, "group": [4, 20, 23], "guarante": 20, "guard": 14, "gui": 11, "guid": [5, 14], "guidelin": 1, "gyroscop": 4, "h": [6, 10, 14], "ha": [0, 1, 3, 4, 5, 14, 19], "had": 2, "hand": 3, "handl": [1, 2, 4, 5, 20], "handler": 5, "hard": [2, 4], "hardwar": [5, 6, 7, 8, 11, 13, 14, 23], "hardware_interfac": [2, 3, 8, 9, 13, 14], "hardware_interface_status_valu": 9, "hardwareinfo": 2, "have": [1, 2, 3, 4, 6, 8, 9, 11, 14, 19, 20], "header": [1, 9, 14], "heartbeat": 4, "heavi": 5, "help": [1, 6, 10, 14], "here": [2, 7, 14, 20], "hereund": 3, "hidden": 10, "high": 4, "horizon": 0, "hot": 5, "hour": 4, "how": [1, 4, 5, 14], "howev": [4, 6], "hpp": [9, 14], "html": 1, "http": [0, 1, 3, 4, 6], "humanoid": 3, "hw_if_acceler": 13, "hw_if_effort": 13, "hw_if_posit": 13, "hw_if_veloc": 13, "hydraul": [19, 20], "hz": 4, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "id8": 1, "idea": 23, "ideal": [5, 8], "identifi": 4, "ifndef": 14, "ignit": 4, "ignor": [12, 20], "imag": 6, "immedi": 1, "impact": 1, "implement": [2, 3, 4, 5, 8, 11, 12, 13, 14, 20, 23], "import": [3, 14, 20], "importantli": 14, "imposs": 2, "improv": 4, "imu": [4, 13], "imusensor": 18, "in_deactiv": 9, "inc": 5, "includ": [2, 4, 9, 10, 14], "increas": 1, "inde": 11, "independ": 3, "individu": 14, "industri": [0, 3, 4], "influenc": 5, "info": [1, 9], "inform": [0, 8, 14, 23], "ingredi": 5, "init": [2, 14], "initi": [2, 14], "inject": 5, "innov": 0, "input": [3, 4, 5, 12, 20], "insert": 5, "insid": 8, "instal": [3, 6, 14], "instanc": [4, 19], "instant": 20, "instead": [3, 8, 20], "institut": 0, "integr": [3, 4, 5, 8, 11, 20, 23], "intent": [1, 8], "interact": [3, 5, 6, 10], "interfac": [4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 18, 23], "interface_nam": 16, "interface_typ": 14, "intern": [4, 20], "interpol": [13, 20], "interrupt": [2, 6], "introduc": [4, 5], "introduct": [5, 20], "involv": 5, "issu": [1, 4, 23], "its": [1, 2, 3, 4, 5, 6, 16, 18, 19], "itself": 2, "ivanov": 5, "jerk": [5, 12], "jitter": 6, "johann": 5, "join": 23, "joint": [2, 3, 5, 12, 13, 14, 15, 17, 19, 21, 22, 23], "joint1": [3, 8, 10, 11, 20], "joint2": [3, 10, 11, 20], "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "joint_a2": 2, "joint_nam": [14, 20], "joint_stat": 19, "joint_state_broadcast": 11, "joint_state_control": 10, "joint_trajectori": 20, "joint_trajectory_control": [4, 10], "joint_trajectory_plugin": 2, "jointstatecontrol": 10, "jointtrajectori": 20, "jointtrajectorycontrol": [2, 10], "jointtrajectorycontrollerst": 20, "keep": [1, 14], "kernel": [5, 6], "kf_estimated_posit": 19, "khz": 4, "kill": [6, 10], "kinemat": 5, "knudsen": 5, "kuka": 3, "last": [9, 14, 20], "latest": 3, "latter": 19, "launch": [3, 6, 8, 11], "layer": 5, "least": [14, 20], "leav": 6, "less": 16, "let": 11, "level": [4, 5, 15, 17, 20, 21, 22], "librari": [2, 3, 4, 10, 14], "licens": 5, "life": 5, "lifecycl": [2, 3, 5, 6, 9], "lifecyclenod": 3, "lifecyclenodeinterfac": 9, "like": [1, 2, 3, 4, 5], "limit": [1, 4, 5, 12], "line": [3, 7, 9, 14, 19], "linear": [12, 20], "linear_acceler": 18, "link": [3, 5, 9], "linter": 1, "linux": 6, "list": [3, 5, 9, 10, 11, 13, 14, 20, 23], "list_hardware_interfac": 11, "littl": 6, "live": [1, 5], "load": [3, 6, 10, 11, 14], "load_control": 11, "local": [1, 19], "logic": 3, "long": 4, "look": 5, "loop": [3, 5, 6, 14, 19, 20], "lovro": 5, "low": [4, 5], "lt": 6, "ltd": 5, "machin": [3, 4], "macro": [2, 3, 14], "made": [5, 9], "magyar": [4, 5], "mai": [9, 15, 17, 21, 22], "main": [1, 3, 4, 5, 6, 8, 14, 23], "maintain": [1, 3, 4], "major": 0, "make": [1, 2, 4, 5, 6, 23], "manag": [2, 4, 5, 7, 9, 10, 14, 23], "mandatori": [3, 16, 18, 20], "mani": [5, 14], "manipul": [5, 20], "manual": [3, 4, 14, 23], "map": [8, 19, 20], "map_interface_to_joint_st": 19, "mark": 2, "master": [1, 3, 4], "match": 3, "materi": 5, "matrix": 19, "matter": 1, "max": 3, "max_forc": 3, "maxim": 20, "mayb": 2, "md": 3, "mean": [1, 2, 8], "measur": [3, 8, 16, 19], "mechan": 20, "medium": 4, "meet": 23, "member": [2, 14], "memori": [4, 14], "mentor": 4, "messag": [1, 4, 6, 10, 16, 18, 19, 20, 23], "method": [1, 2, 3, 9, 14], "mid": 1, "mimic": 8, "mimick": 8, "min": 3, "min_forc": 3, "mind": [1, 14], "minim": 23, "mirror": 8, "miss": [4, 19], "mobil": [5, 12], "mock": 5, "mode": [4, 20], "modifi": 5, "modul": 4, "modular": [3, 5], "moment": 4, "monitor": 20, "more": [0, 1, 2, 3, 4, 8, 14], "most": [4, 14], "motiv": 4, "motor": [3, 4], "moveit": [5, 8], "moveit2": [4, 5], "movement": 4, "msg": [16, 18, 20], "much": [4, 14], "multi": [2, 3, 4, 5, 11], "multipl": [2, 3, 19, 20], "multipli": 8, "must": 1, "my": 5, "my_state_broadcast": 19, "najjar": 5, "name": [1, 2, 3, 5, 6, 8, 10, 14, 16, 18, 19, 20], "namespac": [6, 13, 14, 19, 20], "nan": 20, "nathan": 5, "nav2": 5, "navig": 5, "necessari": [1, 9], "need": [2, 3, 4, 5, 14], "net": 5, "new": [1, 5, 13, 20, 23], "next": [1, 20], "nobodi": 1, "node": [3, 6, 8, 9, 10, 11, 14], "node_interfac": 9, "non": [1, 5, 16], "none": [14, 19], "normal": 6, "note": [1, 3, 11, 23], "now": [11, 14], "numer": 20, "numeric_limit": 20, "obei": 5, "object": 3, "odometri": 12, "offer": [5, 6], "offlin": 8, "offset": [8, 19, 20], "often": [4, 8, 14, 19], "ok": 14, "on_activ": [2, 9, 14], "on_configur": [2, 14], "on_deactiv": [2, 9, 14], "on_error": 9, "on_init": 9, "onc": [4, 5], "one": [1, 2, 3, 4, 5, 14, 16, 19, 23], "onli": [1, 2, 3, 4, 5, 6, 9, 10, 14, 16, 19, 20], "onlin": [5, 14], "open": [1, 19, 20], "open_loop_control": 20, "openli": 5, "oper": 23, "opposit": 14, "optim": [2, 6], "option": [2, 6, 8, 9, 10, 14, 16, 19, 20], "orbit": 4, "orchestr": 4, "org": [4, 6], "organ": [1, 5, 23], "orient": 18, "origin": [1, 5], "other": [1, 2, 3, 5, 14, 19], "otherwis": [14, 19], "our": [1, 3, 4, 5], "out": [2, 12], "output": [3, 4, 5, 10, 16, 18, 20], "over": [1, 4], "overcom": 23, "overrid": 14, "overview": 5, "p": 6, "pace": 1, "packag": [1, 2, 3, 6, 9, 11, 14, 16, 18, 20, 23], "package_nam": 14, "parallel": [3, 8], "param": [3, 6, 8], "param_fil": 6, "paramet": [2, 5, 14], "parent": 14, "pars": [2, 7], "part": [1, 4, 5, 14], "parti": 5, "path": 5, "pendant": 5, "peopl": 1, "per": [4, 16], "perform": [5, 6], "permiss": 6, "physic": [2, 3, 8, 9], "picknik": 5, "pid": [20, 23], "ping": 1, "pipe": 8, "pipelin": 1, "pixel": 5, "pkg": 14, "place": [4, 14, 20], "plan": [5, 23], "plapp": 5, "pleas": [1, 23], "plu": 20, "plugin": [3, 9, 14], "pluginlib": [2, 3, 14], "pluginlib_export_class": [2, 14], "pluginlib_export_plugin_description_fil": 14, "point": [3, 13, 14, 23], "port": [4, 9], "posit": [2, 3, 5, 6, 10, 11, 13, 15, 17, 19, 20, 21, 22], "position_control": [13, 20], "position_state_following_offset": 8, "position_velocity_acceleration_control": 20, "position_velocity_control": 20, "positionactuatorhardwar": 3, "possibl": [1, 3, 4, 6, 14, 20], "potenti": [1, 14], "power": 5, "pr": 1, "practic": 5, "practition": 5, "pre": 1, "predefin": 20, "prefac": 5, "prefer": 4, "prefix": [14, 16, 18], "prepar": 14, "preprocessor": 14, "preset": 4, "previou": 23, "previous_st": 9, "print": 19, "prioriti": 6, "problem": [5, 23], "process": 14, "product": 19, "profil": 4, "programm": 0, "project": [0, 1, 23], "proper": [1, 20], "proport": 1, "propos": 23, "protect": [4, 14], "prove": 11, "provid": [3, 4, 5, 6, 8, 11, 13, 14, 19, 20, 23], "proxi": 20, "public": 14, "publish": [4, 12, 16, 18, 19, 20, 23], "pull": 4, "pure": [3, 20], "purpos": 4, "put": [1, 14], "py": 11, "qualiti": [0, 1], "question": 23, "queu": 20, "quick": [5, 9], "quiet_nan": 20, "quintic": 20, "quit": 4, "random": 1, "rang": 3, "rate": [4, 20], "raw": 3, "rclcpp": 14, "rclcpp_lifecycl": [9, 14], "rclcpp_lifecyl": 9, "re": 3, "reach": 20, "read": [1, 2, 3, 14, 19, 20], "readabl": 4, "readi": [5, 14], "readm": 3, "real": [2, 4, 5, 6, 8, 14, 19, 20, 23], "realiz": [3, 5], "realtim": [5, 12, 20, 23], "realtime_tool": [4, 23], "reason": 5, "receiv": [0, 2], "recent": 14, "recommend": [3, 5], "record": 5, "recov": 9, "reduc": [1, 8], "refer": 3, "refern": 9, "regard": 23, "regardless": 1, "regist": 2, "relat": [3, 4, 5], "releas": [1, 3, 5, 6], "relev": [4, 23], "reli": 4, "relianc": 19, "reload": [9, 10], "rememb": 14, "remov": 9, "renam": 9, "repeatedli": 1, "replac": [4, 9], "repo": [1, 3], "report": [3, 4, 19, 23], "repositori": [3, 4, 7, 13, 23], "repres": [3, 9], "reproduc": 23, "request": [2, 19, 23], "requir": [1, 2, 3, 4, 14], "research": [0, 5], "reserv": 14, "resourc": 2, "resourcemanag": 2, "respect": [4, 5], "rest_syntax": 1, "result": [1, 3, 19], "return": [9, 14, 19], "return_typ": [9, 14], "reus": 5, "review": [1, 4, 23], "rewrit": [4, 23], "rich": 4, "right": 4, "rigid": 2, "rm": 3, "ro": [0, 1, 3, 4, 6, 8, 10, 23], "roadmap": [4, 23], "robot": [0, 2, 4, 11, 12, 16, 19, 23], "robot_state_publish": 19, "robothw": 2, "robust": 20, "root": 14, "ros1": 5, "ros2": [3, 4, 5, 6, 10, 11, 14, 23], "ros2_control": [1, 3, 5, 6, 8, 9, 11, 14], "ros2_control_demo": [1, 3, 23], "ros2_control_demo_bringup": 11, "ros2_control_demo_hardwar": [3, 11], "ros2_control_nod": 3, "ros2_control_test_asset": 14, "ros2_control_test_nod": 11, "ros2controlcli": 3, "ros__paramet": 20, "ros_control": [4, 5, 23], "ros_distro": 1, "rosin": 0, "rrbot": [3, 11], "rrbot_system_multi_interfac": 11, "rrbot_tcp": 3, "rrbotforcetorquesensor1d": 3, "rrbotgripp": 3, "rrbotsystempositiononli": 3, "rrbotsystempositiononlyhardwar": [2, 3], "rsi": 3, "rt": 6, "rule": 14, "run": [4, 5, 6, 10], "rune": 5, "rviz": 19, "safe": [2, 12, 14, 20], "safeti": 4, "same": [1, 3, 4, 16], "satisfi": 1, "scale": 5, "scenario": 4, "sched_fifo": 6, "scope": 1, "script": [3, 4, 14], "search": 14, "second": [4, 10, 14, 23], "section": [1, 2, 14], "see": [1, 2, 3, 11, 14, 16, 18, 20], "segment": 20, "semant": [5, 16, 18], "semantic_compon": 4, "semi": 1, "sens": [2, 3, 16], "sensibl": 2, "sensor": [2, 3, 4, 8, 9, 13], "sensor_msg": 18, "sensor_nam": [16, 18], "sensorinterfac": 2, "sent": 4, "separ": [1, 2, 3, 19], "serv": [1, 3, 4], "server": 20, "servic": [3, 4, 6, 9], "set": [1, 2, 4, 5, 6, 8, 9, 10, 11, 15, 17, 19, 20, 21, 22], "set_controller_st": 11, "set_stat": 10, "setup": [3, 4, 14], "share": [5, 14], "shell": 14, "short": [1, 14, 23], "should": [1, 2, 4, 5, 6, 9, 10, 11, 14, 19], "show": [1, 3, 5, 6, 9, 10, 19], "showcas": [4, 5], "shown": 5, "side": [3, 4, 5], "signal": 4, "similar": [1, 3, 5], "similarli": 20, "simpl": [3, 4, 5, 11, 14], "simplecontrollermanag": 4, "simpli": [5, 20], "simplifi": [14, 23], "simul": [4, 8, 11], "singl": 5, "six": 16, "size": 4, "skeleton": 3, "skill": 4, "slightli": 19, "smooth": 23, "snake_cas": 14, "snippet": 2, "so": [3, 14], "softwar": [0, 3], "solut": [2, 5], "some": [1, 4, 5, 19, 20, 23], "sort": [13, 14], "sourc": [1, 3, 5, 14], "space": [12, 20], "specif": [4, 9, 19, 20], "specifi": [14, 20], "sphinx": 1, "spin": 10, "spin_tim": 10, "spline": 20, "squash": 1, "src": [3, 14], "srv": 3, "stabl": [1, 4], "stack": [3, 5], "stage": 1, "standard": [1, 2, 3, 4, 5, 10, 13, 16, 19], "start": [1, 2, 5, 6, 9, 10, 11, 14, 20, 23], "startup": 6, "state": [2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16, 19, 20], "state_interfac": [3, 20], "state_interface_configur": [2, 14], "state_publish_r": 20, "statu": [4, 9, 10, 20], "status_": 9, "std": 20, "step": [14, 20, 23], "still": [1, 2, 3], "stogl": 5, "stop": [2, 5, 6, 9, 10, 11, 12], "stopped_velocity_toler": 20, "store": 14, "strategi": [2, 20], "stream": [2, 5], "stretch": 4, "strict": 10, "strictli": 9, "string": [2, 8, 14, 19, 20], "struct": 4, "structur": [3, 4, 14, 20], "studi": 5, "style": [1, 14], "submit": [1, 5], "substanti": 9, "success": [9, 14], "suffici": [1, 16], "suit": 6, "suitabl": [2, 5], "summari": [1, 5, 23], "support": [0, 2, 3, 5, 8, 10, 14, 19, 20, 23], "sure": [1, 4, 23], "surround": 2, "switch": [4, 10], "switch_control": 11, "switch_timeout": 10, "symbol": 9, "sync": 1, "syscal": 6, "system": [2, 3, 4, 5, 9, 11, 20, 23], "systemcompon": 5, "systeminterfac": [2, 8], "s\u00f8e": 5, "t": [1, 6], "tag": [3, 14, 23], "take": [2, 4, 14, 19], "talk": 5, "target": [1, 13, 14, 20], "task": [4, 5, 12], "tcp_fts_sensor": 3, "teach": 5, "techniqu": 19, "teleoper": 5, "templat": [11, 14, 20], "term": [20, 23], "test": [1, 4, 8, 11, 14], "test_control": 10, "test_controller_nam": 10, "test_depend": 14, "test_load_": 14, "thank": 1, "thei": [1, 2, 3, 4, 5, 8, 10, 13, 14, 20], "them": [1, 3, 4, 6, 14, 19], "theori": [3, 23], "therefor": [4, 6, 14, 19, 20], "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 17, 20, 21, 22, 23], "thing": 1, "thoma": 1, "those": [1, 2, 3, 4, 8, 14, 16, 19, 20], "thread": [4, 6], "three": [1, 2, 3, 9, 14], "through": [3, 4, 10, 12, 13, 14, 20, 23], "throughput": 6, "time": [1, 2, 4, 5, 6, 8, 10, 12, 14, 16, 20, 23], "timeout": [6, 10], "tip": 5, "titl": 1, "togeth": 3, "toler": 20, "toni": 5, "took": 2, "tool": [2, 4, 5], "toolkit": 23, "top": 5, "topic": [4, 5, 20], "torqu": [3, 13], "torque_sensor": 19, "traceabl": 1, "track": [3, 23], "tracker": 23, "trajectori": [5, 13, 23], "trajectory_msg": 20, "translat": 12, "transmiss": 3, "tree": 4, "tri": 20, "trick": 4, "tricycl": 5, "trigger": 4, "trivial": [1, 8], "true": 20, "tutori": 1, "twist": 12, "two": [1, 3, 4, 6, 14, 16], "txt": [9, 14], "type": [1, 2, 3, 5, 6, 9, 10, 13, 14, 16, 18], "typic": [4, 19, 20], "u": [1, 6], "ubuntu": 6, "unclaim": [10, 11], "unconfigur": [6, 9], "undefin": 9, "under": [0, 5, 14, 23], "understand": [1, 4], "unifi": 5, "union": 0, "uniqu": 14, "unit": 4, "univers": [1, 4, 5], "unless": 19, "unload": [3, 6, 10], "unreleas": 23, "until": 6, "up": [1, 5, 11], "updat": [2, 3, 4, 14], "upgrad": 5, "ur": 5, "urdf": 2, "us": [1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 15, 16, 17, 18, 19, 21, 22, 23], "usabl": 3, "usag": [5, 6, 10], "use_local_top": 19, "usecas": 19, "user": 4, "usual": [2, 8, 14], "util": 5, "valu": [2, 3, 4, 8, 14, 19, 20], "valv": 3, "variabl": [2, 4, 14], "variou": 4, "vc": 3, "vector": 14, "veloc": [2, 3, 5, 11, 13, 19, 20, 21, 22], "velocity_control": 13, "veri": [1, 2, 4], "version": [1, 4], "via": 3, "virtual": 5, "visibility_control": 14, "visibl": 14, "visit": 3, "visual": 19, "vivid": 1, "wa": [4, 14], "wai": [1, 14, 16], "wait": [6, 10], "want": [3, 6], "warn": 19, "waypoint": [5, 13, 20], "we": [1, 4, 5, 9, 19], "wednesdai": 23, "weekend": 1, "welcom": 1, "well": [5, 6, 10, 20], "were": 4, "wg": 23, "wget": 3, "what": 5, "wheel": 12, "when": [1, 2, 3, 4, 6, 8, 10, 14, 20], "where": [1, 4, 14, 19], "which": [2, 3, 4, 5, 10, 12, 14, 16, 18, 19, 20], "while": [3, 4, 5, 11, 20], "wide": 23, "wikipedia": [3, 23], "wild": 5, "window": 14, "without": [2, 3, 8, 14], "work": [1, 4, 5, 12, 14, 15, 17, 19, 20, 21, 22, 23], "workspac": [3, 14], "world": [6, 8], "would": 19, "wrap": 20, "wrapper": [16, 18], "wrenchstamp": 16, "write": [2, 3, 4, 5, 13], "written": 14, "x": [12, 16, 18], "xacro": 3, "xml": [2, 9, 14], "y": 16, "yaml": [3, 4, 20], "yet": 20, "yield": 20, "you": [1, 2, 3, 5, 6, 8, 9, 14, 23], "your": [1, 2, 5, 8, 14, 23], "z": [12, 16], "zeleank": 5, "zelenak": 5, "\u0161togl": [4, 5]}, "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!"], "titleterms": {"": [2, 20], "02": 5, "05": 5, "06": 5, "07": 5, "10": 5, "12": 5, "13": 5, "2021": 5, "2022": [4, 5], "2023": 5, "5": 5, "about": 20, "access": 2, "acknowledg": 0, "add": 4, "api": 7, "architectur": 3, "asynchron": 4, "avail": 13, "best": 13, "broadcast": [13, 16, 18], "call": 9, "ci": 1, "class": 2, "command": [10, 12, 19], "commun": 23, "compil": 3, "compon": [2, 3, 4, 8, 9], "concept": 7, "confer": 5, "configur": 1, "control": [2, 3, 4, 6, 13, 14, 20], "core": 7, "demo": [4, 11], "descript": 3, "detail": 20, "determin": 6, "develop": 23, "diagram": 5, "diff_drive_control": 12, "differ": 2, "document": [1, 7, 23], "dure": 9, "effort_control": 15, "error": 9, "extern": 14, "fake": 8, "featur": [4, 7, 12, 20], "forc": 16, "forward_command_control": 17, "foxi": 9, "fr": 5, "framework": 3, "from": [4, 9], "function": 7, "galact": [9, 23], "gener": 8, "get": 3, "gsoc": 4, "guid": 2, "guidelin": 13, "handl": 9, "happen": 9, "hardwar": [2, 3, 4, 9, 12, 15, 17, 19, 20, 21, 22], "helper": 6, "idea": 4, "imag": 5, "imu": 18, "industri": 5, "interfac": [2, 3, 10, 12, 15, 17, 19, 20, 21, 22], "joint": [8, 20], "joint_state_broadcast": 19, "joint_trajectory_control": 20, "jointtrajectorycontrol": 20, "line": 10, "list_control": 10, "list_controller_typ": 10, "list_hardware_interfac": 10, "load_control": 10, "manag": [3, 6], "meetup": 5, "merg": 1, "migrat": [2, 9], "mission": 4, "mode": 11, "munich": 5, "new": 14, "nomenclatur": 13, "organ": 11, "organis": 23, "other": [12, 20], "overview": 23, "paramet": [8, 16, 18, 19, 20], "pariti": 4, "per": 8, "position_control": 21, "practic": 13, "present": 5, "process": 1, "project": 4, "pull": 1, "read": 9, "refer": 14, "reload_controller_librari": 10, "repositori": [1, 11], "represent": 20, "request": 1, "resourc": [3, 5], "ro": 5, "robot": [3, 5], "robothardwar": 2, "ros1": [2, 4], "ros2": 20, "ros2_control": [2, 4, 13, 23], "ros_control": 2, "roscon": 5, "rosdevdai": 5, "rule": 1, "run": 3, "script": 6, "semant": 4, "sensor": [16, 18], "set_controller_st": 10, "spawner": 6, "special": 20, "start": 3, "structur": [1, 2], "support": 4, "switch": 11, "switch_control": 10, "system": 8, "tbd": 20, "torqu": 16, "trajectori": 20, "tutori": 4, "type": [12, 15, 17, 19, 20, 21, 22], "unload_control": 10, "unspawn": 6, "urdf": 3, "us": [14, 20], "user": 3, "veloc": 12, "velocity_control": 22, "version": 20, "weekli": 5, "welcom": 23, "world": 5, "write": [1, 9, 14], "your": 3}}) \ No newline at end of file +Search.setIndex({"alltitles": {"2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "API Documentation": [[7, "api-documentation"]], "Acknowledgements": [[0, "acknowledgements"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Architecture": [[3, "architecture"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Available Broadcasters": [[13, "available-broadcasters"]], "Available Controllers": [[13, "available-controllers"]], "CI configuration": [[1, "ci-configuration"]], "Command Line Interface": [[10, "command-line-interface"]], "Commands": [[19, "commands"]], "Compiling": [[3, "compiling"]], "Concepts": [[7, "concepts"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Controller Migration": [[2, "controller-migration"]], "Controllers": [[3, "controllers"], [13, "id1"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Core functionalities": [[7, "core-functionalities"]], "Demos": [[11, "demos"]], "Details about parameters": [[20, "details-about-parameters"]], "Determinism": [[6, "determinism"]], "Development Organisation and Communication": [[23, "development-organisation-and-communication"]], "Diagrams": [[5, "diagrams"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Fake Components": [[8, "fake-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Features": [[7, "features"]], "Force Torque Sensor Broadcaster": [[16, "force-torque-sensor-broadcaster"]], "Generic System": [[8, "generic-system"]], "Getting Started": [[3, "getting-started"]], "Guidelines and Best Practices": [[13, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[9, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Hardware Components": [[3, "hardware-components"], [9, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "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"]], "Helper scripts": [[6, "helper-scripts"]], "IMU Sensor Broadcaster": [[18, "imu-sensor-broadcaster"]], "Images": [[5, "images"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "Migration from Foxy to Galactic": [[9, "migration-from-foxy-to-galactic"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Mode switching demo": [[11, "mode-switching-demo"]], "Nomenclature": [[13, "nomenclature"]], "Other features": [[12, "other-features"], [20, "other-features"]], "Overview": [[23, "overview"]], "Parameters": [[8, "parameters"], [16, "parameters"], [18, "parameters"], [19, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Presentations": [[5, "presentations"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Pull Requests": [[1, "pull-requests"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Repository organization": [[11, "repository-organization"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "Resource Manager": [[3, "resource-manager"]], "Resources": [[5, "resources"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "Trajectory representation": [[20, "trajectory-representation"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Useful External References": [[14, "useful-external-references"]], "User Interfaces": [[3, "user-interfaces"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Velocity commands": [[12, "velocity-commands"]], "Welcome to the ros2_control documentation - Galactic!": [[23, "welcome-to-the-ros2-control-documentation-galactic"]], "Writing a new controller": [[14, "writing-a-new-controller"]], "Writing documentation": [[1, "writing-documentation"]], "diff_drive_controller": [[12, "diff-drive-controller"]], "effort_controllers": [[15, "effort-controllers"]], "forward_command_controller": [[17, "forward-command-controller"]], "joint_state_broadcaster": [[19, "joint-state-broadcaster"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "list_controller_types": [[10, "list-controller-types"]], "list_controllers": [[10, "list-controllers"]], "list_hardware_interfaces": [[10, "list-hardware-interfaces"]], "load_controller": [[10, "load-controller"]], "position_controllers": [[21, "position-controllers"]], "reload_controller_libraries": [[10, "reload-controller-libraries"]], "ros2_controllers": [[13, "ros2-controllers"]], "set_controller_state": [[10, "set-controller-state"]], "spawner": [[6, "spawner"]], "switch_controllers": [[10, "switch-controllers"]], "unload_controller": [[10, "unload-controller"]], "unspawner": [[6, "unspawner"]], "velocity_controllers": [[22, "velocity-controllers"]]}, "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"], "envversion": {"sphinx": 61, "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}, "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"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 3, 4, 5, 11, 14, 23], "0": [3, 8, 19, 20], "01": 20, "03": [20, 23], "04": 6, "05": [20, 23], "1": [1, 3, 4, 5, 8, 14], "100": 3, "12": 23, "171": 20, "175": 4, "2": [1, 3, 5, 8], "20": 20, "2020": 0, "2024": 23, "22": 6, "23": 3, "3": [3, 4], "302": 4, "303": 4, "304": 4, "350": 4, "39": 23, "3rd": 5, "43": 3, "45": 4, "50": [3, 6, 20], "500": 4, "6d": 16, "732287": 0, "81": 4, "9": 4, "A": [3, 5, 14, 19, 20], "As": [1, 14], "At": 14, "BY": 5, "Be": 1, "By": [19, 20], "For": [1, 3, 4, 5, 6, 8, 9, 14, 20], "If": [1, 2, 3, 6, 9, 14, 16, 19, 20, 23], "In": [2, 3, 4, 5, 14, 19], "It": [1, 2, 3, 4, 6, 16, 19], "Its": 23, "Not": 20, "On": 3, "One": 5, "Such": 4, "That": [1, 14], "The": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23], "There": [3, 6, 9, 14], "These": [15, 17, 21, 22], "To": [1, 2, 3, 6, 19, 23], "With": 5, "_control": 5, "_interfac": 2, "abi": 1, "abl": 1, "about": [4, 8, 19, 23], "abov": [2, 20], "abstract": [3, 5, 9], "acceler": [5, 11, 12, 13, 20], "accept": [1, 14, 15, 17, 21, 22], "access": [3, 4, 5, 6, 8, 14, 19], "accord": [13, 20], "aceleromet": 4, "achiev": [15, 17, 21, 22], "action": 20, "action_monitor_r": 20, "activ": [1, 2, 3, 10, 19], "actuat": [2, 3, 4, 8, 9], "actuatorinterfac": 2, "ad": [1, 4, 8, 14, 19], "add": [1, 2, 9, 14], "addit": [2, 4], "addition": [4, 23], "address": [1, 4], "adjust": 10, "admitt": 5, "adopt": 4, "advantag": 8, "afraid": 1, "after": [1, 12, 14], "again": [9, 11], "against": 1, "agnost": 5, "agreement": 0, "aka": 5, "all": [1, 2, 3, 4, 5, 8, 9, 11, 14, 19, 20], "allow": [2, 20], "allow_partial_joints_go": 20, "alreadi": [10, 14, 20], "also": [1, 2, 3, 4, 5, 14], "altern": [3, 20], "although": [4, 9], "alwai": 1, "amd64": 6, "ament": 14, "ament_add_gmock": 14, "ament_cmak": 14, "ament_cmake_gmock": 14, "ament_export_librari": 14, "ament_packag": 14, "an": [1, 2, 3, 4, 5, 8, 10, 14, 19, 20], "andi": 5, "angular": 12, "angular_veloc": 18, "ani": [2, 3, 5, 9, 14], "announc": 23, "anoth": 4, "answer": 23, "anymor": 2, "api": [1, 4], "appli": 10, "applic": [1, 3, 5, 6], "approach": 2, "appropri": 4, "approv": 1, "ar": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 18, 19, 20, 23], "architectur": [4, 5], "arduino": 3, "argument": [6, 10], "arm": 5, "around": [4, 16, 18], "arrai": 19, "asap": 10, "ask": [14, 19], "assign": 14, "assum": 3, "assur": 0, "attempt": [6, 20], "author": 5, "auto": 3, "automat": [3, 12], "autonom": 5, "avail": [2, 3, 5, 10, 11, 14, 19, 20], "avoid": [1, 14], "awar": 1, "ax": 16, "axi": [4, 16], "back": 1, "background": 1, "base": [3, 5, 9, 10, 12, 14], "base_interfac": 9, "baseinterfac": 9, "bash": 14, "basic": [2, 3, 4, 5, 14], "becaus": 20, "becom": 5, "been": 11, "befor": [1, 2, 6, 14], "behavior": [4, 8], "below": 5, "benc": [4, 5], "benchmark": 4, "best": [5, 6, 14], "beta": 6, "better": 5, "between": [3, 4, 9, 19, 20], "binari": 1, "blog": 6, "board": 3, "bodi": 12, "boolean": [8, 19, 20], "boost": 8, "booth": 5, "both": [4, 5, 19], "bottom": 14, "box": 2, "brake": 1, "branch": 1, "broadcast": [8, 19], "brook": 5, "buffer": [4, 23], "bug": 23, "build": [1, 14], "built": 23, "bullsey": 6, "c": [4, 6, 10, 14], "calcul": 3, "call": [2, 3, 14], "callbackreturn": 9, "can": [1, 2, 3, 4, 5, 7, 8, 9, 14, 16, 20, 23], "capabl": [3, 4], "care": [2, 4, 14], "case": [2, 4, 5, 14, 19, 20, 23], "caus": 20, "cc": 5, "cell": [2, 16], "certain": [15, 17, 21, 22], "chain": 5, "chanc": 1, "chang": [1, 2, 3, 5, 9, 10, 14, 20], "channel": 3, "check": [1, 2, 3, 4, 8, 9, 11, 14, 20, 23], "choos": 2, "chosen": 3, "claim": 11, "class": [3, 5, 9, 10, 14], "class_list_macro": 14, "clean": [1, 4], "cli": [3, 7, 10], "clock": 20, "close": 14, "cm": 3, "cmake": 14, "cmakelist": [9, 14], "code": [1, 2, 4, 5, 14], "cokela": 1, "colcon": 14, "collabor": 1, "collect": [5, 15, 17, 21, 22], "com": [3, 4, 6], "combin": [2, 8, 19, 20], "combinedrobothardwar": 2, "command": [2, 3, 4, 5, 7, 8, 11, 13, 14, 15, 17, 20, 21, 22, 23], "command_interfac": [3, 20], "command_interface_configur": [2, 14], "comment": 1, "commit": 1, "common": [3, 4, 13, 19, 23], "commun": [2, 3, 4, 5], "compani": [0, 5], "company_nam": 5, "compar": [3, 4, 5], "compass": 4, "compat": [1, 2, 5], "compil": 14, "complet": [3, 9, 13], "complex": [3, 4, 5], "compon": [0, 5, 6, 7, 12, 16, 18, 23], "composit": [2, 5], "comprehens": 11, "comput": [6, 12], "concept": [4, 5, 8, 11], "conductor": 4, "configur": [2, 3, 4, 5, 6, 9, 10, 11, 14, 19, 20], "conflict": [2, 3, 4], "connect": 3, "consid": [1, 10], "consist": [4, 20, 23], "const": 9, "constant": 2, "constraint": [14, 20], "constructor": [2, 14], "consult": 5, "contact": 5, "content": 14, "continu": 20, "contribut": [0, 1, 5], "contributor": 1, "control": [5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 21, 22, 23], "control_msg": [20, 23], "control_toolbox": [4, 23], "controller_interfac": [3, 4, 10, 14, 16, 18], "controller_manag": [3, 4, 6, 10, 14, 20], "controller_manager_msg": 3, "controller_manager_timeout": 6, "controller_nam": [6, 10, 14], "controller_name_namespac": 14, "controller_name_packag": 14, "controller_typ": 6, "controllerinterfac": [2, 3, 10, 14], "controllermanag": 2, "controllernam": 14, "convent": 1, "copi": 14, "core": 1, "correct": [1, 2, 20], "correspond": [8, 14, 23], "could": [3, 5, 14, 19, 20], "cowboi": 1, "cpp": [2, 14], "creat": [2, 3, 5, 8, 14], "critic": [2, 4], "cross": [2, 19], "cubic": 20, "current": [1, 4, 9, 10, 20], "current_sensor": 19, "custom": [3, 8, 16, 19], "custom_interfac": 19, "custom_interface_with_following_offset": 8, "cycl": 5, "daemon": 10, "dai": 1, "data": [2, 3, 4, 8, 19], "dc": 3, "deactiv": [2, 3], "deal": 3, "debian": 6, "debug": 8, "decid": 2, "declar": [2, 14], "deeper": 5, "default": [2, 3, 8, 19, 20], "defin": [2, 3, 4, 8, 13, 14, 16, 18, 19, 20], "definit": [3, 13, 14, 16], "degrad": 4, "delv": 5, "demo": 5, "demonstr": 11, "deni": [4, 5], "depend": [1, 3, 9, 14, 20], "deriv": 3, "derived_effort": 19, "derived_veloc": 19, "describ": [2, 3], "descript": [1, 2, 5, 9, 14], "design": [2, 3, 4, 5, 23], "desir": [4, 20], "detail": [1, 2, 3, 8, 9, 14], "develop": [1, 5, 8, 11, 14], "deviat": 20, "diff_drive_control": [4, 10], "diffdrivecontrol": 10, "differ": [3, 4, 5, 15, 16, 17, 19, 21, 22], "differenti": [12, 13, 23], "difficulti": 4, "direct": [1, 2, 4, 14], "directli": [3, 23], "directori": 14, "discontinu": 20, "discourag": 20, "discours": 23, "discoveri": 10, "discuss": [1, 5, 23], "distribut": [1, 23], "do": [1, 2, 3, 4, 5, 6, 14, 20], "doc": 23, "document": [3, 4, 5, 8], "doe": [2, 14, 20], "doesn": 1, "dof": 3, "don": 1, "done": [5, 14], "doubl": [4, 8, 20], "down": 5, "doxygen": 7, "dr": 5, "draft": 4, "drawback": [2, 23], "drive": [12, 13, 23], "driver": [3, 5], "dynam": [3, 14], "dynamic_joint_st": 19, "e": [1, 2, 3, 4, 5, 8, 14, 15, 16, 17, 19, 20, 21, 22, 23], "each": [1, 3, 4, 9, 19], "earlier": 4, "easi": 4, "easiest": [6, 14], "edit": 5, "effector": 3, "effort": [2, 13, 15, 17, 19, 20], "effort_control": 13, "eg": 20, "either": 5, "els": 1, "emerg": 5, "empti": 14, "enabl": [2, 3, 4, 5, 6, 9, 11, 16], "encod": 3, "encourag": 1, "end": [2, 3, 9, 14, 20], "enforc": [2, 20], "engin": 14, "enjoi": 14, "ensur": [2, 5], "entri": [3, 14], "entropi": 1, "environ": [1, 3, 5], "envis": 4, "equival": 2, "error": [3, 4, 14, 19, 20], "especi": [1, 2], "essenti": 4, "etc": 23, "eu": 0, "european": 0, "even": 8, "event": 5, "everi": 23, "everyth": [4, 14], "exact": 14, "exactli": 1, "exampl": [2, 3, 4, 5, 8, 10, 11, 16, 19, 20, 23], "example_interfac": 16, "example_nam": 16, "example_param_read_for_sec": 3, "example_param_write_for_sec": 3, "excel": 2, "except": 1, "exchang": [2, 4], "execut": [3, 14, 20], "executor": 3, "exercis": 1, "exist": [2, 3, 4, 6, 9, 14], "exit": [6, 10], "expect": [1, 4, 20], "experi": 1, "explan": 3, "explicit": [5, 20], "explicitli": 1, "export": [3, 14], "export_": 2, "expos": 5, "extend": [2, 3, 4, 14], "extern": [2, 3, 4, 8], "extra": [5, 19], "extra_joint": 19, "extract": [2, 12], "factor": 5, "fail": 1, "failur": [4, 9], "fake": 7, "fake_sensor_command": 8, "fals": [8, 19, 20], "familiar": [4, 23], "featur": [1, 5, 8, 23], "feedback": [12, 19, 20], "feedforward": 20, "few": [4, 5], "field": 19, "figur": 3, "file": [2, 3, 4, 5, 6, 8, 14, 20], "final": [2, 5, 9], "find": 1, "find_packag": 14, "fine": 14, "first": [1, 2, 9, 14], "fiveai": 5, "fix": [1, 2], "fixup": 1, "flag": [14, 20], "flexibl": 3, "focu": 5, "focus": [4, 5], "folder": [3, 5, 14], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 11, 13, 14, 20, 23], "follow_joint_trajectori": 20, "followjointtrajectori": 20, "forc": [3, 5, 10, 13], "forcetorquesensor": 16, "forcetorquesensor1dhardwar": 3, "forget": 2, "fork": 1, "form": 4, "format": [4, 19], "forward": [5, 8, 13, 20, 23], "forward_acceleration_control": 11, "forward_illegal1_control": 11, "forward_illegal2_control": 11, "forward_position_control": 11, "forward_velocity_control": 11, "forwardcommandcontrol": 3, "found": [3, 7, 14, 20, 23], "foxi": [1, 3, 5], "frame": [16, 18], "frame_id": [3, 16, 18], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 11, 13, 14, 19, 23], "frequenc": 4, "friend": 14, "friendli": 3, "from": [0, 1, 2, 3, 5, 6, 8, 10, 12, 14, 16, 18, 20, 23], "ft": 16, "full": 14, "function": [1, 2, 3, 4, 5, 6], "fund": 0, "further": 14, "furthermor": 5, "futur": [1, 5], "g": [1, 2, 3, 4, 5, 8, 14, 15, 17, 19, 21, 22, 23], "galact": 1, "gazebo": 4, "gener": [4, 5, 14, 20, 23], "geometry_msg": 16, "get": [5, 9, 23], "github": [3, 4, 7, 13, 23], "githubusercont": 3, "give": [1, 3, 5, 23], "given": [3, 20], "gmock": 4, "gmt": 23, "go": [5, 14], "goal": [4, 5, 20, 23], "goal_tim": 20, "good": [1, 4], "googl": 23, "gpio": 4, "grace": 4, "grant": 0, "granular": 2, "great": 14, "green": 1, "gripper": [2, 3, 8], "gripper_joint": 3, "group": [4, 20, 23], "guarante": 20, "guard": 14, "gui": 11, "guid": [5, 14], "guidelin": 1, "gyroscop": 4, "h": [6, 10, 14], "ha": [0, 1, 3, 4, 5, 14, 19], "had": 2, "hand": 3, "handl": [1, 2, 4, 5, 20], "handler": 5, "hard": [2, 4], "hardwar": [5, 6, 7, 8, 11, 13, 14, 23], "hardware_interfac": [2, 3, 8, 9, 13, 14], "hardware_interface_status_valu": 9, "hardwareinfo": 2, "have": [1, 2, 3, 4, 6, 8, 9, 11, 14, 19, 20], "header": [1, 9, 14], "heartbeat": 4, "heavi": 5, "help": [1, 6, 10, 14], "here": [2, 7, 14, 20], "hereund": 3, "hidden": 10, "high": 4, "horizon": 0, "hot": 5, "hour": 4, "how": [1, 4, 5, 14], "howev": [4, 6], "hpp": [9, 14], "html": 1, "http": [0, 1, 3, 4, 6], "humanoid": 3, "hw_if_acceler": 13, "hw_if_effort": 13, "hw_if_posit": 13, "hw_if_veloc": 13, "hydraul": [19, 20], "hz": 4, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "id8": 1, "idea": 23, "ideal": [5, 8], "identifi": 4, "ifndef": 14, "ignit": 4, "ignor": [12, 20], "imag": 6, "immedi": 1, "impact": 1, "implement": [2, 3, 4, 5, 8, 11, 12, 13, 14, 20, 23], "import": [3, 14, 20], "importantli": 14, "imposs": 2, "improv": 4, "imu": [4, 13], "imusensor": 18, "in_deactiv": 9, "inc": 5, "includ": [2, 4, 9, 10, 14], "increas": 1, "inde": 11, "independ": 3, "individu": 14, "industri": [0, 3, 4], "influenc": 5, "info": [1, 9], "inform": [0, 8, 14, 23], "ingredi": 5, "init": [2, 14], "initi": [2, 14], "inject": 5, "innov": 0, "input": [3, 4, 5, 12, 20], "insert": 5, "insid": 8, "instal": [3, 6, 14], "instanc": [4, 19], "instant": 20, "instead": [3, 8, 20], "institut": 0, "integr": [3, 4, 5, 8, 11, 20, 23], "intent": [1, 8], "interact": [3, 5, 6, 10], "interfac": [4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 18, 23], "interface_nam": 16, "interface_typ": 14, "intern": [4, 20], "interpol": [13, 20], "interrupt": [2, 6], "introduc": [4, 5], "introduct": [5, 20], "involv": 5, "issu": [1, 4, 23], "its": [1, 2, 3, 4, 5, 6, 16, 18, 19], "itself": 2, "ivanov": 5, "jerk": [5, 12], "jitter": 6, "johann": 5, "join": 23, "joint": [2, 3, 5, 12, 13, 14, 15, 17, 19, 21, 22, 23], "joint1": [3, 8, 10, 11, 20], "joint2": [3, 10, 11, 20], "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "joint_a2": 2, "joint_nam": [14, 20], "joint_stat": 19, "joint_state_broadcast": 11, "joint_state_control": 10, "joint_trajectori": 20, "joint_trajectory_control": [4, 10], "joint_trajectory_plugin": 2, "jointstatecontrol": 10, "jointtrajectori": 20, "jointtrajectorycontrol": [2, 10], "jointtrajectorycontrollerst": 20, "keep": [1, 14], "kernel": [5, 6], "kf_estimated_posit": 19, "khz": 4, "kill": [6, 10], "kinemat": 5, "knudsen": 5, "kuka": 3, "last": [9, 14, 20], "latest": 3, "latter": 19, "launch": [3, 6, 8, 11], "layer": 5, "least": [14, 20], "leav": 6, "less": 16, "let": 11, "level": [4, 5, 15, 17, 20, 21, 22], "librari": [2, 3, 4, 10, 14], "licens": 5, "life": 5, "lifecycl": [2, 3, 5, 6, 9], "lifecyclenod": 3, "lifecyclenodeinterfac": 9, "like": [1, 2, 3, 4, 5], "limit": [1, 4, 5, 12], "line": [3, 7, 9, 14, 19], "linear": [12, 20], "linear_acceler": 18, "link": [3, 5, 9], "linter": 1, "linux": 6, "list": [3, 5, 9, 10, 11, 13, 14, 20, 23], "list_hardware_interfac": 11, "littl": 6, "live": [1, 5], "load": [3, 6, 10, 11, 14], "load_control": 11, "local": [1, 19], "logic": 3, "long": 4, "look": 5, "loop": [3, 5, 6, 14, 19, 20], "lovro": 5, "low": [4, 5], "lt": 6, "ltd": 5, "machin": [3, 4], "macro": [2, 3, 14], "made": [5, 9], "magyar": [4, 5], "mai": [9, 15, 17, 21, 22], "main": [1, 3, 4, 5, 6, 8, 14, 23], "maintain": [1, 3, 4], "major": 0, "make": [1, 2, 4, 5, 6, 23], "manag": [2, 4, 5, 7, 9, 10, 14, 23], "mandatori": [3, 16, 18, 20], "mani": [5, 14], "manipul": [5, 20], "manual": [3, 4, 14, 23], "map": [8, 19, 20], "map_interface_to_joint_st": 19, "mark": 2, "master": [1, 3, 4], "match": 3, "materi": 5, "matrix": 19, "matter": 1, "max": 3, "max_forc": 3, "maxim": 20, "mayb": 2, "md": 3, "mean": [1, 2, 8], "measur": [3, 8, 16, 19], "mechan": 20, "medium": 4, "meet": 23, "member": [2, 14], "memori": [4, 14], "mentor": 4, "messag": [1, 4, 6, 10, 16, 18, 19, 20, 23], "method": [1, 2, 3, 9, 14], "mid": 1, "mimic": 8, "mimick": 8, "min": 3, "min_forc": 3, "mind": [1, 14], "minim": 23, "mirror": 8, "miss": [4, 19], "mobil": [5, 12], "mock": 5, "mode": [4, 20], "modifi": 5, "modul": 4, "modular": [3, 5], "moment": 4, "monitor": 20, "more": [0, 1, 2, 3, 4, 8, 14], "most": [4, 14], "motiv": 4, "motor": [3, 4], "moveit": [5, 8], "moveit2": [4, 5], "movement": 4, "msg": [16, 18, 20], "much": [4, 14], "multi": [2, 3, 4, 5, 11], "multipl": [2, 3, 19, 20], "multipli": 8, "must": 1, "my": 5, "my_state_broadcast": 19, "najjar": 5, "name": [1, 2, 3, 5, 6, 8, 10, 14, 16, 18, 19, 20], "namespac": [6, 13, 14, 19, 20], "nan": 20, "nathan": 5, "nav2": 5, "navig": 5, "necessari": [1, 9], "need": [2, 3, 4, 5, 14], "net": 5, "new": [1, 5, 13, 20, 23], "next": [1, 20], "nobodi": 1, "node": [3, 6, 8, 9, 10, 11, 14], "node_interfac": 9, "non": [1, 5, 16], "none": [14, 19], "normal": 6, "note": [1, 3, 11, 23], "now": [11, 14], "numer": 20, "numeric_limit": 20, "obei": 5, "object": 3, "odometri": 12, "offer": [5, 6], "offlin": 8, "offset": [8, 19, 20], "often": [4, 8, 14, 19], "ok": 14, "on_activ": [2, 9, 14], "on_configur": [2, 14], "on_deactiv": [2, 9, 14], "on_error": 9, "on_init": 9, "onc": [4, 5], "one": [1, 2, 3, 4, 5, 14, 16, 19, 23], "onli": [1, 2, 3, 4, 5, 6, 9, 10, 14, 16, 19, 20], "onlin": [5, 14], "open": [1, 19, 20], "open_loop_control": 20, "openli": 5, "oper": 23, "opposit": 14, "optim": [2, 6], "option": [2, 6, 8, 9, 10, 14, 16, 19, 20], "orbit": 4, "orchestr": 4, "org": [4, 6], "organ": [1, 5, 23], "orient": 18, "origin": [1, 5], "other": [1, 2, 3, 5, 14, 19], "otherwis": [14, 19], "our": [1, 3, 4, 5], "out": [2, 12], "output": [3, 4, 5, 10, 16, 18, 20], "over": [1, 4], "overcom": 23, "overrid": 14, "overview": 5, "p": 6, "pace": 1, "packag": [1, 2, 3, 6, 9, 11, 14, 16, 18, 20, 23], "package_nam": 14, "parallel": [3, 8], "param": [3, 6, 8], "param_fil": 6, "paramet": [2, 5, 14], "parent": 14, "pars": [2, 7], "part": [1, 4, 5, 14], "parti": 5, "path": 5, "pendant": 5, "peopl": 1, "per": [4, 16], "perform": [5, 6], "permiss": 6, "physic": [2, 3, 8, 9], "picknik": 5, "pid": [20, 23], "ping": 1, "pipe": 8, "pipelin": 1, "pixel": 5, "pkg": 14, "place": [4, 14, 20], "plan": [5, 23], "plapp": 5, "pleas": [1, 23], "plu": 20, "plugin": [3, 9, 14], "pluginlib": [2, 3, 14], "pluginlib_export_class": [2, 14], "pluginlib_export_plugin_description_fil": 14, "point": [3, 13, 14, 23], "port": [4, 9], "posit": [2, 3, 5, 6, 10, 11, 13, 15, 17, 19, 20, 21, 22], "position_control": [13, 20], "position_state_following_offset": 8, "position_velocity_acceleration_control": 20, "position_velocity_control": 20, "positionactuatorhardwar": 3, "possibl": [1, 3, 4, 6, 14, 20], "potenti": [1, 14], "power": 5, "pr": 1, "practic": 5, "practition": 5, "pre": 1, "predefin": 20, "prefac": 5, "prefer": 4, "prefix": [14, 16, 18], "prepar": 14, "preprocessor": 14, "preset": 4, "previou": 23, "previous_st": 9, "print": 19, "prioriti": 6, "problem": [5, 23], "process": 14, "product": 19, "profil": 4, "programm": 0, "project": [0, 1, 23], "proper": [1, 20], "proport": 1, "propos": 23, "protect": [4, 14], "prove": 11, "provid": [3, 4, 5, 6, 8, 11, 13, 14, 19, 20, 23], "proxi": 20, "public": 14, "publish": [4, 12, 16, 18, 19, 20, 23], "pull": 4, "pure": [3, 20], "purpos": 4, "put": [1, 14], "py": 11, "qualiti": [0, 1], "question": 23, "queu": 20, "quick": [5, 9], "quiet_nan": 20, "quintic": 20, "quit": 4, "random": 1, "rang": 3, "rate": [4, 20], "raw": 3, "rclcpp": 14, "rclcpp_lifecycl": [9, 14], "rclcpp_lifecyl": 9, "re": 3, "reach": 20, "read": [1, 2, 3, 14, 19, 20], "readabl": 4, "readi": [5, 14], "readm": 3, "real": [2, 4, 5, 6, 8, 14, 19, 20, 23], "realiz": [3, 5], "realtim": [5, 12, 20, 23], "realtime_tool": [4, 23], "reason": 5, "receiv": [0, 2], "recent": 14, "recommend": [3, 5], "record": 5, "recov": 9, "reduc": [1, 8], "refer": 3, "refern": 9, "regard": 23, "regardless": 1, "regist": 2, "relat": [3, 4, 5], "releas": [1, 3, 5, 6], "relev": [4, 23], "reli": 4, "relianc": 19, "reload": [9, 10], "rememb": 14, "remov": 9, "renam": 9, "repeatedli": 1, "replac": [4, 9], "repo": [1, 3], "report": [3, 4, 19, 23], "repositori": [3, 4, 7, 13, 23], "repres": [3, 9], "reproduc": 23, "request": [2, 19, 23], "requir": [1, 2, 3, 4, 14], "research": [0, 5], "reserv": 14, "resourc": 2, "resourcemanag": 2, "respect": [4, 5], "rest_syntax": 1, "result": [1, 3, 19], "return": [9, 14, 19], "return_typ": [9, 14], "reus": 5, "review": [1, 4, 23], "rewrit": [4, 23], "rich": 4, "right": 4, "rigid": 2, "rm": 3, "ro": [0, 1, 3, 4, 6, 8, 10, 23], "roadmap": [4, 23], "robot": [0, 2, 4, 11, 12, 16, 19, 23], "robot_state_publish": 19, "robothw": 2, "robust": 20, "root": 14, "ros1": 5, "ros2": [3, 4, 5, 6, 10, 11, 14, 23], "ros2_control": [1, 3, 5, 6, 8, 9, 11, 14], "ros2_control_demo": [1, 3, 23], "ros2_control_demo_bringup": 11, "ros2_control_demo_hardwar": [3, 11], "ros2_control_nod": 3, "ros2_control_test_asset": 14, "ros2_control_test_nod": 11, "ros2controlcli": 3, "ros__paramet": 20, "ros_control": [4, 5, 23], "ros_distro": 1, "rosin": 0, "rrbot": [3, 11], "rrbot_system_multi_interfac": 11, "rrbot_tcp": 3, "rrbotforcetorquesensor1d": 3, "rrbotgripp": 3, "rrbotsystempositiononli": 3, "rrbotsystempositiononlyhardwar": [2, 3], "rsi": 3, "rt": 6, "rule": 14, "run": [4, 5, 6, 10], "rune": 5, "rviz": 19, "safe": [2, 12, 14, 20], "safeti": 4, "same": [1, 3, 4, 16], "satisfi": 1, "scale": 5, "scenario": 4, "sched_fifo": 6, "scope": 1, "script": [3, 4, 14], "search": 14, "second": [4, 10, 14, 23], "section": [1, 2, 14], "see": [1, 2, 3, 11, 14, 16, 18, 20], "segment": 20, "semant": [5, 16, 18], "semantic_compon": 4, "semi": 1, "sens": [2, 3, 16], "sensibl": 2, "sensor": [2, 3, 4, 8, 9, 13], "sensor_msg": 18, "sensor_nam": [16, 18], "sensorinterfac": 2, "sent": 4, "separ": [1, 2, 3, 19], "serv": [1, 3, 4], "server": 20, "servic": [3, 4, 6, 9], "set": [1, 2, 4, 5, 6, 8, 9, 10, 11, 15, 17, 19, 20, 21, 22], "set_controller_st": 11, "set_stat": 10, "setup": [3, 4, 14], "share": [5, 14], "shell": 14, "short": [1, 14, 23], "should": [1, 2, 4, 5, 6, 9, 10, 11, 14, 19], "show": [1, 3, 5, 6, 9, 10, 19], "showcas": [4, 5], "shown": 5, "side": [3, 4, 5], "signal": 4, "similar": [1, 3, 5], "similarli": 20, "simpl": [3, 4, 5, 11, 14], "simplecontrollermanag": 4, "simpli": [5, 20], "simplifi": [14, 23], "simul": [4, 8, 11], "singl": 5, "six": 16, "size": 4, "skeleton": 3, "skill": 4, "slightli": 19, "smooth": 23, "snake_cas": 14, "snippet": 2, "so": [3, 14], "softwar": [0, 3], "solut": [2, 5], "some": [1, 4, 5, 19, 20, 23], "sort": [13, 14], "sourc": [1, 3, 5, 14], "space": [12, 20], "specif": [4, 9, 19, 20], "specifi": [14, 20], "sphinx": 1, "spin": 10, "spin_tim": 10, "spline": 20, "squash": 1, "src": [3, 14], "srv": 3, "stabl": [1, 4], "stack": [3, 5], "stage": 1, "standard": [1, 2, 3, 4, 5, 10, 13, 16, 19], "start": [1, 2, 5, 6, 9, 10, 11, 14, 20, 23], "startup": 6, "state": [2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16, 19, 20], "state_interfac": [3, 20], "state_interface_configur": [2, 14], "state_publish_r": 20, "statu": [4, 9, 10, 20], "status_": 9, "std": 20, "step": [14, 20, 23], "still": [1, 2, 3], "stogl": 5, "stop": [2, 5, 6, 9, 10, 11, 12], "stopped_velocity_toler": 20, "store": 14, "strategi": [2, 20], "stream": [2, 5], "stretch": 4, "strict": 10, "strictli": 9, "string": [2, 8, 14, 19, 20], "struct": 4, "structur": [3, 4, 14, 20], "studi": 5, "style": [1, 14], "submit": [1, 5], "substanti": 9, "success": [9, 14], "suffici": [1, 16], "suit": 6, "suitabl": [2, 5], "summari": [1, 5, 23], "support": [0, 2, 3, 5, 8, 10, 14, 19, 20, 23], "sure": [1, 4, 23], "surround": 2, "switch": [4, 10], "switch_control": 11, "switch_timeout": 10, "symbol": 9, "sync": 1, "syscal": 6, "system": [2, 3, 4, 5, 9, 11, 20, 23], "systemcompon": 5, "systeminterfac": [2, 8], "s\u00f8e": 5, "t": [1, 6], "tag": [3, 14, 23], "take": [2, 4, 14, 19], "talk": 5, "target": [1, 13, 14, 20], "task": [4, 5, 12], "tcp_fts_sensor": 3, "teach": 5, "techniqu": 19, "teleoper": 5, "templat": [11, 14, 20], "term": [20, 23], "test": [1, 4, 8, 11, 14], "test_control": 10, "test_controller_nam": 10, "test_depend": 14, "test_load_": 14, "thank": 1, "thei": [1, 2, 3, 4, 5, 8, 10, 13, 14, 20], "them": [1, 3, 4, 6, 14, 19], "theori": [3, 23], "therefor": [4, 6, 14, 19, 20], "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 17, 20, 21, 22, 23], "thing": 1, "thoma": 1, "those": [1, 2, 3, 4, 8, 14, 16, 19, 20], "thread": [4, 6], "three": [1, 2, 3, 9, 14], "through": [3, 4, 10, 12, 13, 14, 20, 23], "throughput": 6, "time": [1, 2, 4, 5, 6, 8, 10, 12, 14, 16, 20, 23], "timeout": [6, 10], "tip": 5, "titl": 1, "togeth": 3, "toler": 20, "toni": 5, "took": 2, "tool": [2, 4, 5], "toolkit": 23, "top": 5, "topic": [4, 5, 20], "torqu": [3, 13], "torque_sensor": 19, "traceabl": 1, "track": [3, 23], "tracker": 23, "trajectori": [5, 13, 23], "trajectory_msg": 20, "translat": 12, "transmiss": 3, "tree": 4, "tri": 20, "trick": 4, "tricycl": 5, "trigger": 4, "trivial": [1, 8], "true": 20, "tutori": 1, "twist": 12, "two": [1, 3, 4, 6, 14, 16], "txt": [9, 14], "type": [1, 2, 3, 5, 6, 9, 10, 13, 14, 16, 18], "typic": [4, 19, 20], "u": [1, 6], "ubuntu": 6, "unclaim": [10, 11], "unconfigur": [6, 9], "undefin": 9, "under": [0, 5, 14, 23], "understand": [1, 4], "unifi": 5, "union": 0, "uniqu": 14, "unit": 4, "univers": [1, 4, 5], "unless": 19, "unload": [3, 6, 10], "unreleas": 23, "until": 6, "up": [1, 5, 11], "updat": [2, 3, 4, 14], "upgrad": 5, "ur": 5, "urdf": 2, "us": [1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 15, 16, 17, 18, 19, 21, 22, 23], "usabl": 3, "usag": [5, 6, 10], "use_local_top": 19, "usecas": 19, "user": 4, "usual": [2, 8, 14], "util": 5, "valu": [2, 3, 4, 8, 14, 19, 20], "valv": 3, "variabl": [2, 4, 14], "variou": 4, "vc": 3, "vector": 14, "veloc": [2, 3, 5, 11, 13, 19, 20, 21, 22], "velocity_control": 13, "veri": [1, 2, 4], "version": [1, 4], "via": 3, "virtual": 5, "visibility_control": 14, "visibl": 14, "visit": 3, "visual": 19, "vivid": 1, "wa": [4, 14], "wai": [1, 14, 16], "wait": [6, 10], "want": [3, 6], "warn": 19, "waypoint": [5, 13, 20], "we": [1, 4, 5, 9, 19], "wednesdai": 23, "weekend": 1, "welcom": 1, "well": [5, 6, 10, 20], "were": 4, "wg": 23, "wget": 3, "what": 5, "wheel": 12, "when": [1, 2, 3, 4, 6, 8, 10, 14, 20], "where": [1, 4, 14, 19], "which": [2, 3, 4, 5, 10, 12, 14, 16, 18, 19, 20], "while": [3, 4, 5, 11, 20], "wide": 23, "wikipedia": [3, 23], "wild": 5, "window": 14, "without": [2, 3, 8, 14], "work": [1, 4, 5, 12, 14, 15, 17, 19, 20, 21, 22, 23], "workspac": [3, 14], "world": [6, 8], "would": 19, "wrap": 20, "wrapper": [16, 18], "wrenchstamp": 16, "write": [2, 3, 4, 5, 13], "written": 14, "x": [12, 16, 18], "xacro": 3, "xml": [2, 9, 14], "y": 16, "yaml": [3, 4, 20], "yet": 20, "yield": 20, "you": [1, 2, 3, 5, 6, 8, 9, 14, 23], "your": [1, 2, 5, 8, 14, 23], "z": [12, 16], "zeleank": 5, "zelenak": 5, "\u0161togl": [4, 5]}, "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!"], "titleterms": {"": [2, 20], "02": 5, "05": 5, "06": 5, "07": 5, "10": 5, "12": 5, "13": 5, "2021": 5, "2022": [4, 5], "2023": 5, "5": 5, "about": 20, "access": 2, "acknowledg": 0, "add": 4, "api": 7, "architectur": 3, "asynchron": 4, "avail": 13, "best": 13, "broadcast": [13, 16, 18], "call": 9, "ci": 1, "class": 2, "command": [10, 12, 19], "commun": 23, "compil": 3, "compon": [2, 3, 4, 8, 9], "concept": 7, "confer": 5, "configur": 1, "control": [2, 3, 4, 6, 13, 14, 20], "core": 7, "demo": [4, 11], "descript": 3, "detail": 20, "determin": 6, "develop": 23, "diagram": 5, "diff_drive_control": 12, "differ": 2, "document": [1, 7, 23], "dure": 9, "effort_control": 15, "error": 9, "extern": 14, "fake": 8, "featur": [4, 7, 12, 20], "forc": 16, "forward_command_control": 17, "foxi": 9, "fr": 5, "framework": 3, "from": [4, 9], "function": 7, "galact": [9, 23], "gener": 8, "get": 3, "gsoc": 4, "guid": 2, "guidelin": 13, "handl": 9, "happen": 9, "hardwar": [2, 3, 4, 9, 12, 15, 17, 19, 20, 21, 22], "helper": 6, "idea": 4, "imag": 5, "imu": 18, "industri": 5, "interfac": [2, 3, 10, 12, 15, 17, 19, 20, 21, 22], "joint": [8, 20], "joint_state_broadcast": 19, "joint_trajectory_control": 20, "jointtrajectorycontrol": 20, "line": 10, "list_control": 10, "list_controller_typ": 10, "list_hardware_interfac": 10, "load_control": 10, "manag": [3, 6], "meetup": 5, "merg": 1, "migrat": [2, 9], "mission": 4, "mode": 11, "munich": 5, "new": 14, "nomenclatur": 13, "organ": 11, "organis": 23, "other": [12, 20], "overview": 23, "paramet": [8, 16, 18, 19, 20], "pariti": 4, "per": 8, "position_control": 21, "practic": 13, "present": 5, "process": 1, "project": 4, "pull": 1, "read": 9, "refer": 14, "reload_controller_librari": 10, "repositori": [1, 11], "represent": 20, "request": 1, "resourc": [3, 5], "ro": 5, "robot": [3, 5], "robothardwar": 2, "ros1": [2, 4], "ros2": 20, "ros2_control": [2, 4, 13, 23], "ros_control": 2, "roscon": 5, "rosdevdai": 5, "rule": 1, "run": 3, "script": 6, "semant": 4, "sensor": [16, 18], "set_controller_st": 10, "spawner": 6, "special": 20, "start": 3, "structur": [1, 2], "support": 4, "switch": 11, "switch_control": 10, "system": 8, "tbd": 20, "torqu": 16, "trajectori": 20, "tutori": 4, "type": [12, 15, 17, 19, 20, 21, 22], "unload_control": 10, "unspawn": 6, "urdf": 3, "us": [14, 20], "user": 3, "veloc": 12, "velocity_control": 22, "version": 20, "weekli": 5, "welcom": 23, "world": 5, "write": [1, 9, 14], "your": 3}}) \ No newline at end of file diff --git a/humble/.buildinfo b/humble/.buildinfo index 1bb7f07c10..6e4d57a3d2 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: 5ead842ff55eb12a3351c8891db23c1a +config: 6612478235fcb6e599e51e288b43ff60 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree b/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree index c59e698ea8..59ecdad956 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/api_list/api_list.doctree b/humble/.doctrees/doc/api_list/api_list.doctree index 68f04301c5..7b7c784755 100644 Binary files a/humble/.doctrees/doc/api_list/api_list.doctree and b/humble/.doctrees/doc/api_list/api_list.doctree differ diff --git a/humble/.doctrees/doc/contributing/contributing.doctree b/humble/.doctrees/doc/contributing/contributing.doctree index b197a09497..4c4abae176 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/gazebo_ros2_control/doc/index.doctree b/humble/.doctrees/doc/gazebo_ros2_control/doc/index.doctree index 92f74461d9..82861278a4 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 3cfe31d62a..aa80b57c4e 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 fe4485831b..41a2ebbb03 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/migration/differences_to_ros1.doctree b/humble/.doctrees/doc/migration/differences_to_ros1.doctree index 256ecade5a..85a2246cc2 100644 Binary files a/humble/.doctrees/doc/migration/differences_to_ros1.doctree and b/humble/.doctrees/doc/migration/differences_to_ros1.doctree differ diff --git a/humble/.doctrees/doc/migration/migration.doctree b/humble/.doctrees/doc/migration/migration.doctree index 2521994cf8..945f3bf41d 100644 Binary files a/humble/.doctrees/doc/migration/migration.doctree and b/humble/.doctrees/doc/migration/migration.doctree differ diff --git a/humble/.doctrees/doc/project_ideas.doctree b/humble/.doctrees/doc/project_ideas.doctree index 95cf660ba3..a0079bb80c 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/release_notes/release_notes.doctree b/humble/.doctrees/doc/release_notes/release_notes.doctree index 4948603b9b..4b262f2f4a 100644 Binary files a/humble/.doctrees/doc/release_notes/release_notes.doctree and b/humble/.doctrees/doc/release_notes/release_notes.doctree differ diff --git a/humble/.doctrees/doc/resources/resources.doctree b/humble/.doctrees/doc/resources/resources.doctree index 2713d0d01f..4912a2a054 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 13a0b51705..2233db50f3 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 c7009b41b7..7086a53607 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/debugging.doctree b/humble/.doctrees/doc/ros2_control/doc/debugging.doctree index afd249207a..1210c0353e 100644 Binary files a/humble/.doctrees/doc/ros2_control/doc/debugging.doctree and b/humble/.doctrees/doc/ros2_control/doc/debugging.doctree differ diff --git a/humble/.doctrees/doc/ros2_control/doc/index.doctree b/humble/.doctrees/doc/ros2_control/doc/index.doctree index 9f532a0e77..c60fa73e92 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/doc/migration.doctree b/humble/.doctrees/doc/ros2_control/doc/migration.doctree index 0fcc484fc4..32125e309d 100644 Binary files a/humble/.doctrees/doc/ros2_control/doc/migration.doctree and b/humble/.doctrees/doc/ros2_control/doc/migration.doctree differ diff --git a/humble/.doctrees/doc/ros2_control/doc/release_notes.doctree b/humble/.doctrees/doc/ros2_control/doc/release_notes.doctree index 2910313237..43a9a4d854 100644 Binary files a/humble/.doctrees/doc/ros2_control/doc/release_notes.doctree and b/humble/.doctrees/doc/ros2_control/doc/release_notes.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 5e636a7f75..70001b07e2 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 afb7f3aa9c..0e4f84df71 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 bae0a3ff9b..ecca9e278a 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/joints_userdoc.doctree b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/joints_userdoc.doctree index 51942d34a4..86666e16b4 100644 Binary files a/humble/.doctrees/doc/ros2_control/hardware_interface/doc/joints_userdoc.doctree and b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/joints_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 3d14004e2c..fa573ce19e 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 e582c339fc..2c17f2418a 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 76f544209a..c91f2eebea 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 5cdc4ce356..ad6edd46be 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 2bc9927bf4..95241d42a5 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 5386a3e06c..b53cfa84f4 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 2a2a2eae30..9a0854b1bc 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 8698ed10d3..1c4b0da5c0 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 e2613917de..963fa1e9eb 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_13/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_13/doc/userdoc.doctree index db3026c934..03d617fef0 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_13/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_13/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 0d38aa77e2..2bc7dd5365 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_15/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_15/doc/userdoc.doctree index b8eb14827f..b0855512b9 100644 Binary files a/humble/.doctrees/doc/ros2_control_demos/example_15/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_control_demos/example_15/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 33a67c2442..d3a00054b7 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 72da5c3e4d..6971a8223a 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 55620c7fe3..eafb5a1f01 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 82bbb2ee2e..af72bd71d6 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 a059213e0a..f844801b20 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 bb33b87c67..33ad753666 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 99ff9ff4a7..89e69b83da 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 ae19fe9141..b80b3bb8ab 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 5f3537a106..8c912e08e1 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 3c397c29f9..2f2680ff3a 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 8ff5a8c9e3..b7e97ceb6e 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 54ef58b58f..7d079bf798 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 5a4221eb2f..809324c100 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/migration.doctree b/humble/.doctrees/doc/ros2_controllers/doc/migration.doctree index 859fab081b..7116fdca90 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/doc/migration.doctree and b/humble/.doctrees/doc/ros2_controllers/doc/migration.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/doc/mobile_robot_kinematics.doctree b/humble/.doctrees/doc/ros2_controllers/doc/mobile_robot_kinematics.doctree index 137cc2afd5..9be8df38ac 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/doc/mobile_robot_kinematics.doctree and b/humble/.doctrees/doc/ros2_controllers/doc/mobile_robot_kinematics.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/doc/release_notes.doctree b/humble/.doctrees/doc/ros2_controllers/doc/release_notes.doctree index 9b18d81b27..c7220014a4 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/doc/release_notes.doctree and b/humble/.doctrees/doc/ros2_controllers/doc/release_notes.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 d1d95eeaa9..5639e4403f 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 d41c2da89d..50668b8e0d 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 5a3a6b53c5..e98209ef5d 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 83f6d2b474..baff4048c1 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 238d355dbb..eb3e10dd1c 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 90b5aec64d..f584a4c687 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 d786cb185f..b870920d3f 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 bc0be6f29c..f6be850d64 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 b459600fbd..df786c3be8 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 3010b41f8a..3ddd043d69 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/pid_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/pid_controller/doc/userdoc.doctree index 12eae8152d..643403b158 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/pid_controller/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/pid_controller/doc/userdoc.doctree differ diff --git a/humble/.doctrees/doc/ros2_controllers/pose_broadcaster/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/pose_broadcaster/doc/userdoc.doctree index a469849112..5a8938cc91 100644 Binary files a/humble/.doctrees/doc/ros2_controllers/pose_broadcaster/doc/userdoc.doctree and b/humble/.doctrees/doc/ros2_controllers/pose_broadcaster/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 45d2a74e7a..fcb920a6c3 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 29315404e9..587d7e6947 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 f941ce1938..a6ebd360ec 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 81601c073f..130eefd710 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 ef25849ca2..147ed2aff6 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 2ecacddcbe..46225a23d2 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 687a535e97..a5a73309b6 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 3f929d515a..1e4d814d9f 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 69ff71ed49..c2bc37b804 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 f4dfccb734..9779ab1a8a 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 1a522db771..fc29184ed7 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 c435f24913..72dfdb1488 100644 --- a/humble/doc/acknowledgements/acknowledgements.html +++ b/humble/doc/acknowledgements/acknowledgements.html @@ -154,11 +154,11 @@

Maintainers
- 55908 + 55992
@@ -181,13 +181,13 @@

Maintainers -
+
- 21679 + 21170
-
+
@@ -210,11 +210,11 @@

Maintainers -
+
9895
-
+
@@ -237,11 +237,11 @@

Maintainers -
+
7199
-
+
@@ -249,7 +249,7 @@

Maintainers -
+
- 99153 + 99237
@@ -332,7 +332,7 @@

Maintainers -
+
@@ -359,7 +359,7 @@

Maintainers -
+
@@ -386,7 +386,7 @@

Maintainers -
+
@@ -394,7 +394,7 @@

Maintainers
0.95
-
+
- + @@ -477,7 +477,7 @@

Maintainers -
+
0.60 @@ -503,18 +503,18 @@

Maintainers -
+
- 0.92 + 0.91
-
+
- + @@ -532,15 +532,15 @@

Maintainers -
+
- 0.19 + 0.18
-
+
@@ -548,7 +548,7 @@

Maintainers
@@ -636,7 +636,7 @@

Maintainers -
+
@@ -657,18 +657,18 @@

Maintainers -
+
0.93
-
+
- + @@ -686,23 +686,23 @@

Maintainers -
+
0.92
-
+
- + - Fetched on 2024-12-02 03:47:42 UTC + Fetched on 2024-12-03 03:47:05 UTC