From 5e8510f637aacd93eab49d72602c87ff9a66eaa7 Mon Sep 17 00:00:00 2001 From: bmagyar Date: Sun, 7 Apr 2024 05:32:23 +0000 Subject: [PATCH] deploy: 55de5eab39b383bd6e83d5d3a11943086b1101d8 --- foxy/.buildinfo | 2 +- .../acknowledgements/acknowledgements.doctree | Bin 7434 -> 7434 bytes .../doc/contributing/contributing.doctree | Bin 24361 -> 24361 bytes .../differences_to_ros1.doctree | Bin 34748 -> 34748 bytes .../getting_started/getting_started.doctree | Bin 50559 -> 50559 bytes foxy/.doctrees/doc/project_ideas.doctree | Bin 38260 -> 38260 bytes .../.doctrees/doc/resources/resources.doctree | Bin 67145 -> 67145 bytes .../controller_manager/doc/userdoc.doctree | Bin 9211 -> 9211 bytes .../doc/ros2_control/doc/index.doctree | Bin 5962 -> 5962 bytes .../doc/fake_components_userdoc.doctree | Bin 13533 -> 13533 bytes .../ros2controlcli/doc/userdoc.doctree | Bin 24766 -> 24766 bytes .../doc/ros2_control_demos/doc/index.doctree | Bin 12763 -> 12763 bytes .../diff_drive_controller/doc/userdoc.doctree | Bin 5687 -> 5687 bytes .../doc/controllers_index.doctree | Bin 12858 -> 12858 bytes .../doc/writing_new_controller.doctree | Bin 59925 -> 59925 bytes .../effort_controllers/doc/userdoc.doctree | Bin 4124 -> 4124 bytes .../doc/userdoc.doctree | Bin 8657 -> 8657 bytes .../doc/userdoc.doctree | Bin 4196 -> 4196 bytes .../doc/userdoc.doctree | Bin 5895 -> 5895 bytes .../doc/userdoc.doctree | Bin 7851 -> 7851 bytes .../doc/userdoc.doctree | Bin 5225 -> 5225 bytes .../doc/userdoc.doctree | Bin 33758 -> 33758 bytes .../position_controllers/doc/userdoc.doctree | Bin 4154 -> 4154 bytes .../tricycle_controller/doc/userdoc.doctree | Bin 5149 -> 5149 bytes .../velocity_controllers/doc/userdoc.doctree | Bin 4154 -> 4154 bytes foxy/.doctrees/environment.pickle | Bin 653946 -> 653946 bytes foxy/.doctrees/index.doctree | Bin 28593 -> 28593 bytes foxy/index.html | 2 +- foxy/searchindex.js | 2 +- galactic/.buildinfo | 2 +- .../acknowledgements/acknowledgements.doctree | Bin 7434 -> 7434 bytes .../doc/contributing/contributing.doctree | Bin 24361 -> 24361 bytes .../differences_to_ros1.doctree | Bin 34748 -> 34748 bytes .../getting_started/getting_started.doctree | Bin 50559 -> 50559 bytes galactic/.doctrees/doc/project_ideas.doctree | Bin 38260 -> 38260 bytes .../.doctrees/doc/resources/resources.doctree | Bin 67145 -> 67145 bytes .../controller_manager/doc/userdoc.doctree | Bin 11589 -> 11589 bytes .../doc/ros2_control/doc/index.doctree | Bin 6066 -> 6066 bytes .../doc/fake_components_userdoc.doctree | Bin 13533 -> 13533 bytes .../doc/hardware_components_userdoc.doctree | Bin 20103 -> 20103 bytes .../ros2controlcli/doc/userdoc.doctree | Bin 23385 -> 23385 bytes .../doc/ros2_control_demos/doc/index.doctree | Bin 12635 -> 12635 bytes .../diff_drive_controller/doc/userdoc.doctree | Bin 5687 -> 5687 bytes .../doc/controllers_index.doctree | Bin 13250 -> 13250 bytes .../doc/writing_new_controller.doctree | Bin 59945 -> 59945 bytes .../effort_controllers/doc/userdoc.doctree | Bin 4124 -> 4124 bytes .../doc/userdoc.doctree | Bin 8657 -> 8657 bytes .../doc/userdoc.doctree | Bin 4196 -> 4196 bytes .../doc/userdoc.doctree | Bin 5895 -> 5895 bytes .../doc/userdoc.doctree | Bin 18436 -> 18436 bytes .../doc/userdoc.doctree | Bin 33758 -> 33758 bytes .../position_controllers/doc/userdoc.doctree | Bin 4154 -> 4154 bytes .../velocity_controllers/doc/userdoc.doctree | Bin 4154 -> 4154 bytes galactic/.doctrees/environment.pickle | Bin 682309 -> 682309 bytes galactic/.doctrees/index.doctree | Bin 28609 -> 28609 bytes galactic/index.html | 2 +- galactic/searchindex.js | 2 +- humble/.buildinfo | 2 +- .../acknowledgements/acknowledgements.doctree | Bin 1211525 -> 1211543 bytes .../doc/contributing/contributing.doctree | Bin 25325 -> 25325 bytes .../differences_to_ros1.doctree | Bin 34672 -> 34672 bytes .../doc/gazebo_ros2_control/doc/index.doctree | Bin 39649 -> 39649 bytes .../getting_started/getting_started.doctree | Bin 56166 -> 56166 bytes .../doc/gz_ros2_control/doc/index.doctree | Bin 37939 -> 37939 bytes humble/.doctrees/doc/project_ideas.doctree | Bin 29987 -> 29987 bytes .../.doctrees/doc/resources/resources.doctree | Bin 83622 -> 83622 bytes .../doc/controller_chaining.doctree | Bin 25468 -> 25468 bytes .../controller_manager/doc/userdoc.doctree | Bin 29129 -> 29129 bytes .../doc/ros2_control/doc/index.doctree | Bin 6372 -> 6372 bytes .../different_update_rates_userdoc.doctree | Bin 29658 -> 29658 bytes .../doc/hardware_components_userdoc.doctree | Bin 21668 -> 21668 bytes .../hardware_interface_types_userdoc.doctree | Bin 27199 -> 27199 bytes .../doc/mock_components_userdoc.doctree | Bin 16420 -> 16420 bytes .../writing_new_hardware_component.doctree | Bin 65671 -> 65671 bytes .../ros2controlcli/doc/userdoc.doctree | Bin 31356 -> 31356 bytes .../doc/ros2_control_demos/doc/index.doctree | Bin 50241 -> 50241 bytes .../doc/run_from_docker.doctree | Bin 3337 -> 3337 bytes .../example_1/doc/userdoc.doctree | Bin 82059 -> 82059 bytes .../example_10/doc/userdoc.doctree | Bin 36838 -> 36838 bytes .../example_11/doc/userdoc.doctree | Bin 34101 -> 34101 bytes .../example_12/doc/userdoc.doctree | Bin 48925 -> 48925 bytes .../example_14/doc/userdoc.doctree | Bin 37903 -> 37903 bytes .../example_2/doc/userdoc.doctree | Bin 38580 -> 38580 bytes .../example_3/doc/userdoc.doctree | Bin 46764 -> 46764 bytes .../example_4/doc/userdoc.doctree | Bin 37786 -> 37786 bytes .../example_5/doc/userdoc.doctree | Bin 41016 -> 41016 bytes .../example_6/doc/userdoc.doctree | Bin 33191 -> 33191 bytes .../example_7/doc/userdoc.doctree | Bin 106728 -> 106728 bytes .../example_8/doc/userdoc.doctree | Bin 31438 -> 31438 bytes .../example_9/doc/userdoc.doctree | Bin 36729 -> 36729 bytes .../doc/userdoc.doctree | Bin 11532 -> 11532 bytes .../admittance_controller/doc/userdoc.doctree | Bin 49263 -> 49263 bytes .../doc/userdoc.doctree | Bin 9921 -> 9921 bytes .../diff_drive_controller/doc/userdoc.doctree | Bin 54156 -> 54156 bytes .../doc/controllers_index.doctree | Bin 12882 -> 12882 bytes .../doc/writing_new_controller.doctree | Bin 60202 -> 60202 bytes .../effort_controllers/doc/userdoc.doctree | Bin 8222 -> 8222 bytes .../doc/userdoc.doctree | Bin 18515 -> 18515 bytes .../doc/userdoc.doctree | Bin 12877 -> 12877 bytes .../gripper_controllers/doc/userdoc.doctree | Bin 13842 -> 13842 bytes .../doc/userdoc.doctree | Bin 16591 -> 16591 bytes .../doc/userdoc.doctree | Bin 24581 -> 24581 bytes .../doc/parameters.doctree | Bin 43685 -> 43685 bytes .../doc/trajectory.doctree | Bin 38596 -> 38596 bytes .../doc/userdoc.doctree | Bin 44094 -> 44094 bytes .../position_controllers/doc/userdoc.doctree | Bin 8292 -> 8292 bytes .../doc/userdoc.doctree | Bin 14103 -> 14103 bytes .../doc/userdoc.doctree | Bin 3871 -> 3871 bytes .../doc/userdoc.doctree | Bin 39929 -> 39929 bytes .../tricycle_controller/doc/userdoc.doctree | Bin 5149 -> 5149 bytes .../doc/userdoc.doctree | Bin 10475 -> 10475 bytes .../velocity_controllers/doc/userdoc.doctree | Bin 8292 -> 8292 bytes .../doc/simulators/simulators.doctree | Bin 7042 -> 7042 bytes .../supported_robots/supported_robots.doctree | Bin 23621 -> 23621 bytes humble/.doctrees/environment.pickle | Bin 3559066 -> 3559084 bytes humble/.doctrees/index.doctree | Bin 27593 -> 27593 bytes .../acknowledgements/acknowledgements.html | 50 +++++++++--------- humble/index.html | 2 +- humble/searchindex.js | 2 +- iron/.buildinfo | 2 +- .../acknowledgements/acknowledgements.doctree | Bin 1211525 -> 1211543 bytes .../doc/contributing/contributing.doctree | Bin 25325 -> 25325 bytes .../differences_to_ros1.doctree | Bin 34672 -> 34672 bytes .../doc/gazebo_ros2_control/doc/index.doctree | Bin 39649 -> 39649 bytes .../getting_started/getting_started.doctree | Bin 57114 -> 57114 bytes .../doc/gz_ros2_control/doc/index.doctree | Bin 37940 -> 37940 bytes iron/.doctrees/doc/project_ideas.doctree | Bin 29987 -> 29987 bytes .../.doctrees/doc/resources/resources.doctree | Bin 83622 -> 83622 bytes .../doc/controller_chaining.doctree | Bin 25454 -> 25454 bytes .../controller_manager/doc/userdoc.doctree | Bin 29330 -> 29330 bytes .../doc/ros2_control/doc/index.doctree | Bin 6372 -> 6372 bytes .../different_update_rates_userdoc.doctree | Bin 29642 -> 29642 bytes .../doc/hardware_components_userdoc.doctree | Bin 21668 -> 21668 bytes .../hardware_interface_types_userdoc.doctree | Bin 27199 -> 27199 bytes .../doc/mock_components_userdoc.doctree | Bin 14975 -> 14975 bytes .../writing_new_hardware_component.doctree | Bin 65637 -> 65637 bytes .../ros2controlcli/doc/userdoc.doctree | Bin 31078 -> 31078 bytes .../doc/ros2_control_demos/doc/index.doctree | Bin 50226 -> 50226 bytes .../doc/run_from_docker.doctree | Bin 3337 -> 3337 bytes .../example_1/doc/userdoc.doctree | Bin 81917 -> 81917 bytes .../example_10/doc/userdoc.doctree | Bin 36746 -> 36746 bytes .../example_11/doc/userdoc.doctree | Bin 34023 -> 34023 bytes .../example_12/doc/userdoc.doctree | Bin 48835 -> 48835 bytes .../example_14/doc/userdoc.doctree | Bin 37816 -> 37816 bytes .../example_2/doc/userdoc.doctree | Bin 38494 -> 38494 bytes .../example_3/doc/userdoc.doctree | Bin 46688 -> 46688 bytes .../example_4/doc/userdoc.doctree | Bin 37698 -> 37698 bytes .../example_5/doc/userdoc.doctree | Bin 40910 -> 40910 bytes .../example_6/doc/userdoc.doctree | Bin 33113 -> 33113 bytes .../example_7/doc/userdoc.doctree | Bin 106688 -> 106688 bytes .../example_8/doc/userdoc.doctree | Bin 31360 -> 31360 bytes .../example_9/doc/userdoc.doctree | Bin 36633 -> 36633 bytes .../doc/userdoc.doctree | Bin 11532 -> 11532 bytes .../admittance_controller/doc/userdoc.doctree | Bin 49223 -> 49223 bytes .../doc/userdoc.doctree | Bin 9921 -> 9921 bytes .../diff_drive_controller/doc/userdoc.doctree | Bin 53462 -> 53462 bytes .../doc/controllers_index.doctree | Bin 15985 -> 15985 bytes .../doc/writing_new_controller.doctree | Bin 60194 -> 60194 bytes .../effort_controllers/doc/userdoc.doctree | Bin 8222 -> 8222 bytes .../doc/userdoc.doctree | Bin 18499 -> 18499 bytes .../doc/userdoc.doctree | Bin 12877 -> 12877 bytes .../gripper_controllers/doc/userdoc.doctree | Bin 13834 -> 13834 bytes .../doc/userdoc.doctree | Bin 16575 -> 16575 bytes .../doc/userdoc.doctree | Bin 24573 -> 24573 bytes .../doc/parameters.doctree | Bin 43409 -> 43409 bytes .../doc/trajectory.doctree | Bin 38596 -> 38596 bytes .../doc/userdoc.doctree | Bin 44029 -> 44029 bytes .../position_controllers/doc/userdoc.doctree | Bin 8292 -> 8292 bytes .../doc/userdoc.doctree | Bin 14780 -> 14780 bytes .../doc/userdoc.doctree | Bin 3871 -> 3871 bytes .../doc/userdoc.doctree | Bin 39929 -> 39929 bytes .../tricycle_controller/doc/userdoc.doctree | Bin 30728 -> 30728 bytes .../doc/userdoc.doctree | Bin 10475 -> 10475 bytes .../velocity_controllers/doc/userdoc.doctree | Bin 8292 -> 8292 bytes .../doc/simulators/simulators.doctree | Bin 7042 -> 7042 bytes .../supported_robots/supported_robots.doctree | Bin 23621 -> 23621 bytes iron/.doctrees/environment.pickle | Bin 3595455 -> 3595473 bytes iron/.doctrees/index.doctree | Bin 27549 -> 27549 bytes .../acknowledgements/acknowledgements.html | 50 +++++++++--------- iron/index.html | 2 +- iron/searchindex.js | 2 +- master/.buildinfo | 2 +- .../acknowledgements/acknowledgements.doctree | Bin 1211525 -> 1211543 bytes .../doc/contributing/contributing.doctree | Bin 25325 -> 25325 bytes .../doc/gazebo_ros2_control/doc/index.doctree | Bin 41073 -> 41073 bytes .../getting_started/getting_started.doctree | Bin 52209 -> 52209 bytes .../doc/gz_ros2_control/doc/index.doctree | Bin 38642 -> 38642 bytes .../doc/migration/differences_to_ros1.doctree | Bin 34666 -> 34666 bytes .../.doctrees/doc/migration/migration.doctree | Bin 4874 -> 4874 bytes master/.doctrees/doc/project_ideas.doctree | Bin 29987 -> 29987 bytes .../.doctrees/doc/resources/resources.doctree | Bin 85475 -> 85475 bytes .../doc/resources/roscon2023_workshop.doctree | Bin 15191 -> 15191 bytes .../doc/controller_chaining.doctree | Bin 27598 -> 27598 bytes .../controller_manager/doc/userdoc.doctree | Bin 36515 -> 36515 bytes .../doc/ros2_control/doc/index.doctree | Bin 6372 -> 6372 bytes .../ros2_control/doc/migration/Foxy.doctree | Bin 15311 -> 15311 bytes .../ros2_control/doc/migration/Iron.doctree | Bin 10674 -> 10674 bytes .../different_update_rates_userdoc.doctree | Bin 29658 -> 29658 bytes .../doc/hardware_components_userdoc.doctree | Bin 8564 -> 8564 bytes .../hardware_interface_types_userdoc.doctree | Bin 28533 -> 28533 bytes .../doc/mock_components_userdoc.doctree | Bin 17549 -> 17549 bytes .../writing_new_hardware_component.doctree | Bin 65671 -> 65671 bytes .../ros2controlcli/doc/userdoc.doctree | Bin 31078 -> 31078 bytes .../doc/ros2_control_demos/doc/index.doctree | Bin 50243 -> 50243 bytes .../doc/run_from_docker.doctree | Bin 3337 -> 3337 bytes .../example_1/doc/userdoc.doctree | Bin 82059 -> 82059 bytes .../example_10/doc/userdoc.doctree | Bin 36838 -> 36838 bytes .../example_11/doc/userdoc.doctree | Bin 34101 -> 34101 bytes .../example_12/doc/userdoc.doctree | Bin 48925 -> 48925 bytes .../example_14/doc/userdoc.doctree | Bin 37903 -> 37903 bytes .../example_2/doc/userdoc.doctree | Bin 38580 -> 38580 bytes .../example_3/doc/userdoc.doctree | Bin 46764 -> 46764 bytes .../example_4/doc/userdoc.doctree | Bin 37786 -> 37786 bytes .../example_5/doc/userdoc.doctree | Bin 41016 -> 41016 bytes .../example_6/doc/userdoc.doctree | Bin 33191 -> 33191 bytes .../example_7/doc/userdoc.doctree | Bin 106731 -> 106731 bytes .../example_8/doc/userdoc.doctree | Bin 31438 -> 31438 bytes .../example_9/doc/userdoc.doctree | Bin 31614 -> 31614 bytes .../doc/userdoc.doctree | Bin 11532 -> 11532 bytes .../admittance_controller/doc/userdoc.doctree | Bin 48384 -> 48384 bytes .../doc/userdoc.doctree | Bin 9921 -> 9921 bytes .../diff_drive_controller/doc/userdoc.doctree | Bin 51387 -> 51387 bytes .../doc/controllers_index.doctree | Bin 16068 -> 16068 bytes .../doc/writing_new_controller.doctree | Bin 60989 -> 60989 bytes .../effort_controllers/doc/userdoc.doctree | Bin 8222 -> 8222 bytes .../doc/userdoc.doctree | Bin 18515 -> 18515 bytes .../doc/userdoc.doctree | Bin 12877 -> 12877 bytes .../gripper_controllers/doc/userdoc.doctree | Bin 13842 -> 13842 bytes .../doc/userdoc.doctree | Bin 16591 -> 16591 bytes .../doc/userdoc.doctree | Bin 24581 -> 24581 bytes .../doc/parameters.doctree | Bin 41661 -> 41661 bytes .../doc/trajectory.doctree | Bin 38596 -> 38596 bytes .../doc/userdoc.doctree | Bin 44037 -> 44037 bytes .../pid_controller/doc/userdoc.doctree | Bin 34883 -> 34883 bytes .../position_controllers/doc/userdoc.doctree | Bin 8292 -> 8292 bytes .../doc/userdoc.doctree | Bin 14796 -> 14796 bytes .../doc/userdoc.doctree | Bin 3871 -> 3871 bytes .../doc/userdoc.doctree | Bin 39929 -> 39929 bytes .../tricycle_controller/doc/userdoc.doctree | Bin 30728 -> 30728 bytes .../doc/userdoc.doctree | Bin 10475 -> 10475 bytes .../velocity_controllers/doc/userdoc.doctree | Bin 8292 -> 8292 bytes .../doc/simulators/simulators.doctree | Bin 7042 -> 7042 bytes .../supported_robots/supported_robots.doctree | Bin 23621 -> 23621 bytes master/.doctrees/environment.pickle | Bin 3697930 -> 3697948 bytes master/.doctrees/index.doctree | Bin 27539 -> 27539 bytes .../acknowledgements/acknowledgements.html | 50 +++++++++--------- master/index.html | 2 +- master/searchindex.js | 2 +- 248 files changed, 90 insertions(+), 90 deletions(-) diff --git a/foxy/.buildinfo b/foxy/.buildinfo index 6c2972de88e..dfc9c521e9f 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: fbae436f6336af0bc90676541c0dd330 +config: cf8ea50ca86ee4ad082bfcfc78073f9e tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree b/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree index 6cb364459d81da0bedd726168f80bbf01d749009..9eea66ebbd839b6785825d010dccc7cf951f1017 100644 GIT binary patch delta 66 zcmeCO>ayBk#As-eTvV8z6Q8Z0W@2b$VVq`}Y-*ZjXlQAcl9*~_lxS*hWRPr>l9*zV VWNctzo|0%e*^otSb0yayBk#As-kotvJSQkkirVvuTRVw9L{W^9?9l4f9(W@MR~YMN+ikY<=>VP*|(=3xsP16hwEzMFAQ;m!gP0fuAl8sUl UQ!J8<4J^!45-m4BV|I=P0LX9@+5i9m delta 64 zcmZ3vk8$Nb#tmDU4Gpt%(=$^lGxbvpQVmUv5|ho0Et6By42;r@EK^fW6D@~ 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 07748ad6bdabd774ac222058d12df11b7943fbfa..5b48eb730c4a45b153b54ac6fbfe3e7a1138319d 100644 GIT binary patch delta 64 zcmdnf&$OqXX@eG{p-FO4VR}w{wtkw4p^=4gnq{)7X_}#-rCCa1s*zEmskxCsvQbK6 TibayKfrWWWqUGjj#>6%Nnr#!) delta 64 zcmdnf&$OqXX@eG{p<#AzdS*&xrhbY+s-cNdVzQaBWpYZIfl-=~WooKvqNPEaVVZ@R TrBP~HvRPV+QPSpU#>6%NuO}3u diff --git a/foxy/.doctrees/doc/getting_started/getting_started.doctree b/foxy/.doctrees/doc/getting_started/getting_started.doctree index 60db33182dcbd00671a2929cabd14ddf3dc5c314..ac519312ddffe31ad5cd9822a7bd7770af9eb4f6 100644 GIT binary patch delta 64 zcmez0#r(gEd4mC?p-FO4VR}w{wtkw4p^=4gnq{)7X_}#-rCCa1s*zEmskxCsvQbK6 TibayKfrWWWqUGj9M!6#Zx?B`k delta 64 zcmez0#r(gEd4mC?p<#AzdS*&xrhbY+s-cNdVzQaBWpYZIfl-=~WooKvqNPEaVVZ@R TrBP~HvRPV+QPSo_M!6#Z&lVLY diff --git a/foxy/.doctrees/doc/project_ideas.doctree b/foxy/.doctrees/doc/project_ideas.doctree index 73b26bdcec3efeeddaee21f76adf8f7c602c1d93..bc4632ae9e6451477f74b30670618851cdad7a7e 100644 GIT binary patch delta 64 zcmeyeis{QLrVTobh9=2Hh3Pr*+4^ZFhDH{~X_m>RrfG(TmS!o5sYXVLrshTl$wn!O UDHch_1{UTiiI$sV8O5gn0K&2qK>z>% delta 64 zcmeyeis{QLrVTobhKAX>>6s~&nffUPsfH#-iOFWhmdPn;21aQ{mZ_b delta 68 zcmX@v!*a5RWrGT%p<#AzdS*&xrhbY+s-cNdVzQaBWpYZIfl-=~WooKvqNPEaVVZ@R XrBP~HvRPV+QBrd#68~a#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=5odsB>69Nc5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=5odsB>=4^6oUW& diff --git a/foxy/.doctrees/doc/ros2_control/doc/index.doctree b/foxy/.doctrees/doc/ros2_control/doc/index.doctree index df9a4e727b0d1d78febb6e94ffc3e7e6bc04dfb3..b856e6f7cbd5657bd35ca49c925b16a934bca19e 100644 GIT binary patch delta 62 zcmX@5cS>)A9iyR1a#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=6uH6q5yOg6IuWO delta 62 zcmX@5cS>)A9iyRPc5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=6uH6q5z1^6e$1z 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 d96cb283c511149dabb78fa1434aa18aebb4ec33..39e696d3d8c6d76c056f47ef8cb88b8326feaefd 100644 GIT binary patch delta 62 zcmcbcc{g)|1EZlya#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=0e6CV*r?g6R7|I delta 62 zcmcbcc{g)|1EZl~c5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=0e6CV*sr^6nFpt diff --git a/foxy/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index 97021232bc289914f4029f5c4fe2f03eaf8888e2..e13f07f6bad7270a32e682e35eeaaf4efbc165c5 100644 GIT binary patch delta 64 zcmdmYka6EZ#tn9ih9=2Hh3Pr*+4^ZFhDH{~X_m>RrfG(TmS!o5sYXVLrshTl$wn!O TDHch_1{UTiiI$u58U5n{w`~+C delta 64 zcmdmYka6EZ#tn9ihKAX>>6s~&nffUPsfH#-iOFWhmdPn;21aQ{mZ_rA8Ka>|a#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=5)pq0|1h06N&%; delta 62 zcmcbed^>rA8Ka?Lc5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=5)pq0|2Ka6j=ZO 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 41b8d091cbc5b5dfd0f4ec6e9cf4519e8d76453f..bc8fd45d2083611b66ceaa8c226ce3d4f37858aa 100644 GIT binary patch delta 62 zcmdn4vt4I{52K+;a#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=32&GA^>eD6Dj}z delta 62 zcmdn4vt4I{52K-Bc5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=32&GA^?Hn6ZrrD diff --git a/foxy/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/foxy/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index ba096e93cd77cf51e3350616779aaa5934a06cb2..f47e267882992233656dd0c18b624874f70c9f2c 100644 GIT binary patch delta 71 zcmdm$vMXhS2BVQla#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd blCgn>c}k+C{$vLw(a95}MK`xFZZiM?IPDfF delta 71 zcmdm$vMXhS2BVQ-c5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M bYFe^cT8dGU{$vLw(a95}MK`xFZZiM?RPGk{ 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 bc2027fd3a3ec02a9d89e4552d60a06dca10868e..28d815d9b477808d9965192b29a56fb7cb4b8efd 100644 GIT binary patch delta 64 zcmbPwg?Z`~<_!*vh9=2Hh3Pr*+4^ZFhDH{~X_m>RrfG(TmS!o5sYXVLrshTl$wn!O UDHch_1{UTiiI$rS8JD~O0Iw(%;s5{u delta 64 zcmbPwg?Z`~<_!*vhKAX>>6s~&nffUPsfH#-iOFWhmdPn;21aQ{mZ_b%7 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 68b7937026f7962c7f811a0ebe5926795635b06d..ae9c0707c05ececa68fd0c6b3a0df7ade0c3bf48 100644 GIT binary patch delta 62 zcmbQEFh^m78>68~a#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=5ofRd;nPt614yT delta 62 zcmbQEFh^m78>69Nc5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=5ofRd;o366NCT& 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 78af083872a0466b86d06b1649f2a34bcde7dbe1..50fcede42324f4ecda65bc4f9cfb4f94b91e8275 100644 GIT binary patch delta 62 zcmccUe9?JB0;8cxa#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=823B3IK>O6Gi|4 delta 62 zcmccUe9?JB0;8c}c5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=823B3ILqy6cqpf 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 d939dd0e983ebdfa859e5f5b45f001b3128271bd..c6ef41d81d8e6b66f0ca9ec4883a576a7b2cbd25 100644 GIT binary patch delta 62 zcmaE&@I+xl7^9&{a#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=61%rd;ou(6P*A6 delta 62 zcmaE&@I+xl7^9(Kc5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=61%rd;pYI6l?$h 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 f218aa84296c9ce292ae84504ddf7c47e38fee6f..0f000b901077bb514f5ff42b6ead78f783dc39f5 100644 GIT binary patch delta 62 zcmZqIYuDT0$7pDhTvV8z6Q8Z0W@2b$VVq`}Y-*ZjXlQAcl9*~_lxS*hWRPr>l9*zV RWNctzo|0&}xt_5@6aZIG5}^P9 delta 62 zcmZqIYuDT0$7pDnotvJSQkkirVvuTRVw9L{W^9?9l4f9(W@MR~YMN+ikY<=>VPjl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=0-*>SpaWE614yT delta 62 zcmZ2&yV`a`0HdK{c5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=0-*>Spb9o6NCT& 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 97f71619ca730d9f4ef44220b41393fb547d4a71..2fb6d36ee03efaa7a3ce5cff36720f72462823de 100644 GIT binary patch delta 62 zcmaE<@ls=hAETj3a#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=6c3gLI8vG6Sx2X delta 62 zcmaE<@ls=hAETjRc5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=6c3gLI9Yq6o&u+ 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 0242cf3a67300badff3dcecff1575daf95e125a9..f59089193e3f8f9d7a1402bcb026cd6cd535ba1e 100644 GIT binary patch delta 64 zcmccD&UCMxX+s2~p-FO4VR}w{wtkw4p^=4gnq{)7X_}#-rCCa1s*zEmskxCsvQbK6 TibayKfrWWWqUGjJ#?U4JvI!JZ delta 64 zcmccD&UCMxX+s2~p<#AzdS*&xrhbY+s-cNdVzQaBWpYZIfl-=~WooKvqNPEaVVZ@R TrBP~HvRPV+QPSp4#?U4J#={jN 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 19b358d3eee8061a91dafeb97373f3280202ff76..9612af69845bc52073f8665abdff0c7b6d27a9f0 100644 GIT binary patch delta 62 zcmdm`uuEZs7o(v`a#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=4!_Md;n;G6B7Uc delta 62 zcmdm`uuEZs7o(wJc5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=4!_Md;onq6XE~> 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 461160584bd5b04a4df3bad21e0af6089173eff9..3d4aaf910729e0fddddc10ba5818af1d6813c080 100644 GIT binary patch delta 62 zcmbQMF;`=Q2cw}$a#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=1RsTLI7RD63zes delta 62 zcmbQMF;`=Q2cw~3c5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=1RsTLI84n6P*A6 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 d76805567399e54483ac77649339725f0dc58fd2..4bca0768497cf3d6631191621f924aa76662d84e 100644 GIT binary patch delta 62 zcmdm`uuEZs7o(v`a#3M=PJFh0nu(#2g>jl?vZ-mBp`oQ&N@A*!QKG52kwLOiN@9vd RlCgn>c}k+?=4!_Md;n;G6B7Uc delta 62 zcmdm`uuEZs7o(wJc5ZrRN@b>gib1NOiBV#*nXzSZN}7RDnvrE{s%fI7L7HKjg_)&M RYFe^cT8dH9=4!_Md;onq6XE~> diff --git a/foxy/.doctrees/environment.pickle b/foxy/.doctrees/environment.pickle index b402a3162c3bb2c017f1168a54ef51929b0e4f5d..17d24cb0776ece58f718419f2cb5eddbe91ef40c 100644 GIT binary patch delta 14399 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 diff --git a/foxy/.doctrees/index.doctree b/foxy/.doctrees/index.doctree index 7f363b4cf58ed8f23734ffc3aeb770fcb3c0c954..56a514b3a8a9661459d5255e444fed71a28834c1 100644 GIT binary patch delta 82 zcmdmZpK;@T#tmkSh9=2Hh3Pr*+4^ZFhDH{~X_m>RrfG(TmS!o5sYXVLrshTl$wn!O mDHch_1{UTiiI$tw8IOf9ns3$%Gh<{lpL{-CdUHd#p#%V9F&ZlX delta 82 zcmdmZpK;@T#tmkShKAX>>6s~&nffUPsfH#-iOFWhmdPn;21aQ{mZ_Development Organisation and Communication -

Built on 2024-04-06 at 05:31 GMT

+

Built on 2024-04-07 at 05:31 GMT

diff --git a/foxy/searchindex.js b/foxy/searchindex.js index f68c12b9cc0..d9055edff9f 100644 --- a/foxy/searchindex.js +++ b/foxy/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/getting_started/getting_started", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_controller/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/getting_started/getting_started.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_controller/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "index.rst"], "titles": ["Acknowledgements", "Pull Requests", "Differences to ros_control (ROS1)", "Getting Started", "Project Ideas for GSoC 2022", "Resources", "Controller Manager", "API Documentation", "Fake Components", "Command Line Interface", "Demos", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "joint_state_controller", "joint_trajectory_controller", "position_controllers", "tricycle_controller", "velocity_controllers", "Welcome to the ros2_control documentation - Foxy!"], "terms": {"The": [0, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 20, 22, 24], "project": [0, 1, 24], "ha": [0, 1, 3, 4, 5, 13, 19], "receiv": [0, 2], "major": 0, "contribut": [0, 1, 5], "from": [0, 1, 2, 3, 5, 6, 8, 9, 11, 13, 15, 17, 20, 22, 24], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 12, 13, 20, 24], "compani": [0, 5], "institut": 0, "support": [0, 2, 3, 5, 8, 9, 13, 20, 24], "rosin": 0, "ro": [0, 1, 3, 4, 6, 8, 9, 19, 24], "industri": [0, 3, 4], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 10, 11, 15, 22, 24], "softwar": [0, 3], "compon": [0, 5, 6, 7, 11, 15, 17, 22, 24], "more": [0, 1, 2, 3, 4, 8, 13], "inform": [0, 8, 13, 24], "http": [0, 1, 3, 4], "eu": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24], "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 4, 5, 10, 13, 24], "horizon": 0, "2020": 0, "research": [0, 5], "innov": 0, "programm": 0, "under": [0, 5, 13, 24], "grant": 0, "agreement": 0, "732287": 0, "first": [1, 2, 13], "thank": 1, "you": [1, 2, 3, 5, 8, 13, 24], "consid": [1, 9], "ros2_control": [1, 3, 5, 6, 8, 10, 13], "As": [1, 13], "an": [1, 2, 3, 4, 5, 8, 9, 13, 20], "open": [1, 20], "sourc": [1, 3, 5, 13], "we": [1, 4, 5], "welcom": 1, "each": [1, 3, 4], "contributor": 1, "regardless": 1, "background": 1, "experi": 1, "To": [1, 2, 3, 24], "reduc": [1, 8], "entropi": 1, "univers": [1, 4, 5], "our": [1, 3, 4, 5], "vivid": 1, "collabor": 1, "environ": [1, 3, 5], "have": [1, 2, 3, 4, 8, 10, 13, 20], "set": [1, 2, 4, 5, 8, 9, 14, 16, 18, 20, 21, 23], "up": [1, 5, 10], "some": [1, 4, 5, 20, 24], "standard": [1, 2, 3, 4, 5, 9, 12, 15], "method": [1, 2, 3, 13], "requir": [1, 2, 3, 4, 13], "ar": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 17, 18, 20, 22, 24], "limit": [1, 4, 5, 11, 22], "scope": 1, "your": [1, 2, 5, 8, 13, 24], "pr": 1, "should": [1, 2, 4, 5, 6, 9, 10, 13, 18], "do": [1, 2, 3, 4, 5, 6, 13, 20], "one": [1, 2, 3, 4, 5, 13, 15, 24], "thing": 1, "avoid": [1, 13], "ad": [1, 4, 8, 13, 18], "random": 1, "fix": [1, 2], "put": [1, 13], "those": [1, 2, 3, 4, 8, 13, 15, 20], "separ": [1, 2, 3], "give": [1, 3, 5, 24], "descript": [1, 2, 5, 13], "titl": 1, "add": [1, 2, 13], "short": [1, 13, 24], "summari": [1, 5, 24], "make": [1, 2, 4, 5, 24], "sure": [1, 4, 24], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24], "green": 1, "don": 1, "t": [1, 6], "afraid": 1, "review": [1, 4, 24], "maintain": [1, 3, 4], "new": [1, 5, 12, 20, 24], "code": [1, 2, 4, 5, 13], "test": [1, 4, 8, 10, 13], "If": [1, 2, 3, 6, 13, 15, 20, 24], "function": [1, 2, 3, 4, 5], "alwai": 1, "exercis": 1, "serv": [1, 3, 4], "live": [1, 5], "origin": [1, 5], "intent": [1, 8], "section": [1, 2, 13], "target": [1, 12, 13, 20], "also": [1, 2, 3, 4, 5, 13], "read": [1, 2, 3, 13, 18, 20], "understand": [1, 4], "how": [1, 4, 5, 13], "handl": [1, 2, 4, 5, 20], "organ": [1, 5, 24], "guidelin": 1, "especi": [1, 2], "applic": [1, 3, 5, 6], "ros2_control_demo": [1, 3, 24], "pleas": [1, 24], "keep": [1, 13], "mind": [1, 13], "work": [1, 4, 5, 11, 13, 14, 16, 20, 21, 22, 23, 24], "fork": 1, "when": [1, 2, 3, 4, 8, 9, 13, 20], "submit": [1, 5], "That": [1, 13], "wai": [1, 13, 15], "main": [1, 3, 4, 5, 6, 8, 13, 24], "repo": [1, 3], "clean": [1, 4], "featur": [1, 5, 8, 24], "branch": 1, "all": [1, 2, 3, 4, 5, 8, 10, 13, 18, 20], "check": [1, 2, 3, 4, 8, 10, 13, 20, 24], "satisfi": 1, "befor": [1, 2, 6, 13], "thei": [1, 2, 3, 4, 5, 8, 9, 12, 13, 20], "can": [1, 2, 3, 4, 5, 7, 8, 13, 15, 19, 20, 24], "must": 1, "approv": 1, "two": [1, 3, 4, 6, 13, 15], "explicitli": 1, "onli": [1, 2, 3, 4, 5, 6, 9, 13, 15, 20], "except": 1, "other": [1, 2, 3, 5, 13], "activ": [1, 2, 3, 9], "where": [1, 4, 13], "back": 1, "traceabl": 1, "discuss": [1, 5, 24], "suffici": [1, 15], "note": [1, 3, 10, 24], "still": [1, 2, 3], "encourag": 1, "help": [1, 6, 9, 13], "u": [1, 6], "increas": 1, "pace": 1, "veri": [1, 2, 4], "like": [1, 2, 3, 4, 5], "find": 1, "issu": [1, 4, 24], "nobodi": 1, "els": 1, "see": [1, 2, 3, 10, 13, 15, 17, 20], "squash": 1, "commit": 1, "messag": [1, 4, 6, 9, 15, 17, 18, 20, 24], "comment": 1, "fixup": 1, "linter": 1, "us": [1, 2, 3, 4, 5, 8, 9, 12, 14, 15, 16, 17, 18, 19, 21, 23, 24], "pre": 1, "correct": [1, 2, 20], "header": [1, 13], "address": [1, 4], "similar": [1, 3, 5], "mean": [1, 2, 8], "result": [1, 3], "exactli": 1, "1": [1, 3, 4, 5, 8, 13], "cowboi": 1, "style": [1, 13], "over": [1, 4], "weekend": 1, "It": [1, 2, 3, 4, 6, 15], "doesn": 1, "matter": 1, "trivial": [1, 8], "peopl": 1, "chanc": 1, "proper": [1, 20], "Be": 1, "awar": 1, "impact": 1, "time": [1, 2, 4, 5, 6, 8, 9, 11, 13, 15, 20, 24], "proport": 1, "its": [1, 2, 3, 4, 5, 15, 17], "ping": 1, "them": [1, 3, 4, 6, 13, 18], "necessari": 1, "repeatedli": 1, "start": [1, 2, 5, 6, 9, 10, 13, 20, 24], "part": [1, 4, 5, 13], "For": [1, 3, 4, 5, 8, 13, 20], "detail": [1, 2, 3, 8, 13], "thoma": 1, "cokela": 1, "info": 1, "tutori": 1, "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 5, 6, 9, 12, 13, 15, 17], "develop": [1, 5, 8, 10, 13], "stabl": [1, 4], "against": 1, "accept": [1, 13, 14, 16, 21, 23], "api": [1, 4], "abi": 1, "chang": [1, 2, 3, 5, 9, 13, 20], "e": [1, 2, 3, 4, 5, 8, 13, 14, 15, 16, 18, 20, 21, 23, 24], "name": [1, 2, 3, 5, 6, 8, 9, 13, 15, 17, 18, 20], "convent": 1, "master": [1, 3, 4], "semi": 1, "binari": 1, "good": [1, 4], "same": [1, 3, 4, 15], "build": [1, 13], "dai": 1, "2": [1, 3, 5, 8], "ros_distro": 1, "g": [1, 2, 3, 4, 5, 8, 13, 14, 16, 18, 21, 23, 24], "foxi": [1, 3, 5], "galact": 1, "releas": [1, 3, 5], "version": [1, 4], "non": [1, 5, 15], "brake": 1, "distribut": [1, 24], "three": [1, 2, 3, 13], "stage": 1, "current": [1, 4, 9, 20], "futur": [1, 5], "compat": [1, 2, 5], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 24], "packag": [1, 2, 3, 10, 13, 15, 17, 19, 20, 24], "show": [1, 3, 5, 6, 9], "direct": [1, 2, 4, 13], "local": [1, 18], "possibl": [1, 3, 4, 13, 20], "core": 1, "immedi": 1, "depend": [1, 3, 13, 20], "fail": 1, "expect": [1, 4, 20], "after": [1, 11, 13, 22], "next": [1, 20], "sync": 1, "abl": 1, "potenti": [1, 13], "mid": 1, "robothw": 2, "rigid": 2, "ani": [2, 3, 5, 13], "imposs": 2, "extend": [2, 3, 4, 13], "exist": [2, 3, 4, 6, 13], "addit": [2, 4], "sensor": [2, 3, 4, 8, 12], "actuat": [2, 3, 4, 8], "tool": [2, 4, 5], "without": [2, 3, 8, 13], "combinedrobothardwar": 2, "drawback": [2, 24], "solut": [2, 5], "optim": 2, "combin": [2, 8, 20], "extern": [2, 3, 4, 8], "defin": [2, 3, 4, 8, 12, 13, 15, 17, 18, 20], "system": [2, 3, 4, 5, 10, 20, 24], "composit": [2, 5], "basic": [2, 3, 4, 5, 13], "physic": [2, 3, 8], "cell": [2, 15], "surround": 2, "describ": [2, 3], "multi": [2, 3, 4, 5, 10], "gripper": [2, 3, 8], "out": [2, 11], "box": 2, "allow": [2, 20], "joint": [2, 3, 5, 11, 12, 13, 14, 16, 18, 21, 23, 24], "posit": [2, 3, 5, 6, 9, 10, 12, 14, 16, 20, 21, 23], "veloc": [2, 3, 5, 10, 12, 20, 21, 23], "effort": [2, 12, 14, 16, 20], "hard": [2, 4], "data": [2, 3, 4, 8, 19], "approach": 2, "doe": [2, 13, 20], "enforc": [2, 20], "string": [2, 8, 13, 18, 20], "ensur": [2, 5], "constant": 2, "hardware_interfac": [2, 3, 8, 12, 13], "In": [2, 3, 4, 5, 13], "had": 2, "request": [2, 24], "itself": 2, "took": 2, "care": [2, 4, 13], "regist": 2, "resourc": 2, "conflict": [2, 3, 4], "resourcemanag": 2, "take": [2, 4, 13, 18], "state": [2, 3, 4, 5, 8, 9, 10, 12, 13, 15, 18, 20], "avail": [2, 3, 5, 9, 10, 13, 18, 20], "enabl": [2, 3, 4, 5, 10, 15], "anymor": 2, "controllermanag": 2, "implement": [2, 3, 4, 5, 8, 10, 11, 12, 13, 20, 22, 24], "systeminterfac": [2, 8], "granular": 2, "sensorinterfac": 2, "actuatorinterfac": 2, "abov": [2, 20], "choos": 2, "suitabl": [2, 5], "strategi": [2, 20], "decid": 2, "which": [2, 3, 4, 5, 9, 11, 13, 15, 17, 20, 22], "case": [2, 4, 5, 13, 20, 24], "mayb": 2, "sens": [2, 3, 15], "multipl": [2, 3, 20], "constructor": [2, 13], "initi": [2, 13], "variabl": [2, 4, 13], "need": [2, 3, 4, 5, 13], "commun": [2, 3, 4, 5], "default": [2, 3, 8, 18, 20], "configur": [2, 3, 4, 5, 6, 9, 10, 13, 20], "paramet": [2, 5, 13], "pars": [2, 7], "urdf": 2, "snippet": 2, "hardwareinfo": 2, "here": [2, 7, 13, 19, 20], "cross": 2, "valu": [2, 3, 4, 8, 13, 20], "export_": 2, "_interfac": 2, "joint_a2": 2, "extract": [2, 11, 22], "sensibl": 2, "stop": [2, 5, 6, 9, 10, 11, 22], "usual": [2, 8, 13], "includ": [2, 4, 9, 13], "command": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 16, 20, 21, 23, 24], "safe": [2, 11, 13, 20, 22], "interrupt": [2, 6], "stream": [2, 5], "write": [2, 3, 4, 5, 12], "exchang": [2, 4], "equival": 2, "forget": 2, "pluginlib_export_class": [2, 13], "macro": [2, 3, 13], "end": [2, 3, 13, 20], "cpp": [2, 13], "file": [2, 3, 4, 5, 6, 8, 13, 20], "creat": [2, 3, 5, 8, 13], "xml": [2, 13], "librari": [2, 3, 4, 9, 13], "pluginlib": [2, 3, 13], "exampl": [2, 3, 4, 5, 8, 9, 10, 15, 20, 24], "rrbotsystempositiononlyhardwar": [2, 3], "excel": 2, "jointtrajectorycontrol": [2, 9], "real": [2, 4, 5, 8, 13, 18, 20, 24], "critic": [2, 4], "mark": 2, "controllerinterfac": [2, 3, 9, 13], "member": [2, 13], "init": [2, 13], "call": [2, 3, 13], "lifecycl": [2, 3, 5, 6], "declar": [2, 13], "state_interface_configur": [2, 13], "command_interface_configur": [2, 13], "design": [2, 3, 4, 5, 24], "updat": [2, 3, 4, 13], "manag": [2, 4, 5, 7, 9, 13, 24], "option": [2, 6, 8, 9, 13, 15, 18, 20], "on_configur": [2, 13], "on_activ": [2, 13], "on_deactiv": [2, 13], "deactiv": [2, 3], "final": [2, 5], "joint_trajectory_plugin": 2, "ros2": [3, 4, 5, 6, 9, 10, 13, 24], "instal": [3, 13], "automat": [3, 11, 22], "want": 3, "workspac": [3, 13], "folder": [3, 5, 13], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 4], "vc": 3, "import": [3, 13, 20], "src": [3, 13], "found": [3, 7, 13, 19, 20, 24], "github": [3, 4, 7, 12, 24], "repositori": [3, 4, 7, 12, 24], "figur": 3, "cm": 3, "connect": 3, "abstract": [3, 5], "side": [3, 4, 5], "entri": [3, 13], "point": [3, 12, 13, 24], "through": [3, 4, 9, 11, 12, 13, 20, 24], "servic": [3, 4, 6], "node": [3, 6, 8, 9, 10, 13], "executor": 3, "so": [3, 13], "integr": [3, 4, 5, 8, 10, 20, 24], "custom": [3, 8, 15], "setup": [3, 4, 13], "recommend": [3, 5], "ros2_control_nod": 3, "controller_manag": [3, 4, 6, 9, 13, 20], "manual": [3, 4, 13, 24], "assum": 3, "On": 3, "load": [3, 6, 9, 10, 13], "unload": [3, 6, 9], "access": [3, 4, 5, 6, 8, 13], "match": 3, "provid": [3, 4, 5, 6, 8, 10, 12, 13, 20, 24], "report": [3, 4, 18, 24], "error": [3, 4, 13, 20], "execut": [3, 13, 20], "loop": [3, 5, 13, 20], "output": [3, 4, 5, 9, 15, 17, 20], "rm": 3, "driver": [3, 5], "re": 3, "usabl": 3, "flexibl": 3, "motor": [3, 4], "encod": 3, "deal": 3, "theori": [3, 24], "compar": [3, 4, 5], "refer": 3, "measur": [3, 8, 15], "base": [3, 5, 9, 11, 13, 22], "calcul": 3, "input": [3, 4, 5, 11, 20, 22], "visit": 3, "wikipedia": [3, 24], "object": 3, "deriv": 3, "controller_interfac": [3, 4, 9, 13, 15, 17], "export": [3, 13], "plugin": [3, 13], "forwardcommandcontrol": 3, "lifecyclenod": 3, "class": [3, 5, 9, 13], "machin": [3, 4], "document": [3, 4, 5, 8, 19], "latest": 3, "interact": [3, 5, 6, 9], "list": [3, 5, 9, 10, 12, 13, 20, 24], "definit": [3, 12, 13, 15], "srv": 3, "controller_manager_msg": 3, "while": [3, 4, 5, 10, 20], "directli": [3, 24], "line": [3, 7, 13], "via": 3, "friendli": 3, "cli": [3, 7, 9], "auto": 3, "complet": [3, 12], "rang": 3, "common": [3, 4, 12, 24], "capabl": [3, 4], "readm": 3, "md": 3, "ros2controlcli": 3, "realiz": [3, 5], "repres": 3, "dynam": [3, 13], "There": [3, 6, 13], "complex": [3, 4, 5], "dof": 3, "differ": [3, 4, 5, 14, 15, 16, 21, 23], "between": [3, 4, 19, 20], "transmiss": 3, "humanoid": 3, "hand": 3, "logic": 3, "channel": 3, "kuka": 3, "rsi": 3, "A": [3, 5, 13, 20], "relat": [3, 4, 5], "link": [3, 5], "forc": [3, 5, 9, 12], "torqu": [3, 12], "simpl": [3, 4, 5, 10, 13, 19], "valv": 3, "mandatori": [3, 15, 17, 20], "dc": 3, "arduino": 3, "board": 3, "modular": [3, 5], "independ": 3, "explan": 3, "given": [3, 20], "tag": [3, 13, 24], "chosen": 3, "structur": [3, 4, 13, 20], "track": [3, 24], "togeth": 3, "xacro": 3, "hereund": 3, "rrbot": [3, 10], "parallel": [3, 8], "effector": 3, "rrbotsystempositiononli": 3, "ros2_control_demo_hardwar": [3, 10], "param": [3, 6, 8], "example_param_write_for_sec": 3, "example_param_read_for_sec": 3, "joint1": [3, 8, 9, 10, 20], "command_interfac": [3, 20], "min": 3, "max": 3, "state_interfac": [3, 20], "joint2": [3, 9, 10, 20], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "0": [3, 8, 18, 20], "43": 3, "tcp_fts_sensor": 3, "frame_id": [3, 15, 17], "rrbot_tcp": 3, "min_forc": 3, "100": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "23": 3, "3": [3, 4], "gripper_joint": 3, "50": [3, 20], "yaml": [3, 4, 20], "instead": [3, 8, 19, 20], "pure": [3, 20], "launch": [3, 6, 8, 10], "stack": [3, 5], "could": [3, 5, 13, 20], "altern": [3, 20], "script": [3, 4, 13], "skeleton": 3, "orbit": 4, "around": [4, 15, 17], "everyth": [4, 13], "goal": [4, 5, 20, 24], "long": 4, "run": [4, 5, 6, 9], "task": [4, 5, 11], "interfac": [4, 5, 6, 7, 8, 10, 12, 13, 15, 17, 24], "user": 4, "thread": 4, "protect": [4, 13], "memori": [4, 13], "buffer": [4, 24], "control_toolbox": [4, 24], "second": [4, 9, 13, 24], "frequenc": 4, "high": 4, "rate": [4, 20], "khz": 4, "variou": 4, "anoth": 4, "heartbeat": 4, "signal": 4, "sent": 4, "onc": [4, 5], "per": [4, 15], "500": 4, "hz": 4, "failur": 4, "relev": [4, 24], "draft": 4, "trigger": 4, "skill": 4, "prefer": 4, "c": [4, 6, 9, 13], "trick": 4, "mentor": 4, "benc": [4, 5], "magyar": [4, 5], "deni": [4, 5], "\u0161togl": [4, 5], "size": 4, "350": 4, "hour": 4, "difficulti": 4, "about": [4, 8, 24], "org": 4, "gener": [4, 5, 13, 20, 24], "envis": 4, "simul": [4, 8, 10], "gazebo": 4, "ignit": 4, "showcas": [4, 5], "grace": 4, "degrad": 4, "architectur": [4, 5], "roadmap": [4, 24], "place": [4, 13, 20], "gpio": 4, "mode": [4, 20], "switch": [4, 9], "movement": 4, "safeti": 4, "familiar": [4, 24], "medium": 4, "focus": [4, 5], "although": 4, "easi": 4, "therefor": [4, 13, 18, 20], "often": [4, 8, 13], "orchestr": 4, "purpos": 4, "conductor": 4, "scenario": 4, "appropri": 4, "moment": 4, "right": 4, "replac": 4, "level": [4, 5, 14, 16, 20, 21, 23], "moveit2": [4, 5], "simplecontrollermanag": 4, "form": 4, "behavior": [4, 8], "benchmark": 4, "statu": [4, 9, 20], "publish": [4, 11, 15, 17, 18, 20, 22, 24], "topic": [4, 5, 20], "format": 4, "preset": 4, "modul": 4, "specif": [4, 20], "reli": 4, "doubl": [4, 8, 20], "desir": [4, 20], "howev": [4, 6], "both": [4, 5], "improv": 4, "readabl": 4, "earlier": 4, "concept": [4, 5, 8, 10], "were": 4, "introduc": [4, 5], "essenti": 4, "group": [4, 20, 24], "instanc": 4, "imu": [4, 12], "typic": [4, 20], "9": 4, "axi": [4, 15], "aceleromet": 4, "gyroscop": 4, "compass": 4, "respect": [4, 5], "Such": 4, "struct": 4, "low": [4, 5], "profil": 4, "intern": [4, 20], "addition": [4, 24], "few": [4, 5], "pull": 4, "45": 4, "tree": 4, "semantic_compon": 4, "175": 4, "rewrit": [4, 24], "ros_control": [4, 5, 24], "rich": 4, "wa": [4, 13], "motiv": 4, "adopt": 4, "port": 4, "most": [4, 13], "quit": 4, "miss": 4, "diff_drive_control": [4, 9], "joint_trajectory_control": [4, 9], "consist": [4, 20, 24], "identifi": 4, "much": [4, 13], "303": 4, "304": 4, "stretch": 4, "realtime_tool": [4, 24], "81": 4, "302": 4, "unit": 4, "gmock": 4, "cc": 5, "BY": 5, "licens": 5, "author": 5, "either": 5, "down": 5, "below": 5, "my": 5, "company_nam": 5, "tricycl": [5, 12, 22], "control": [5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24], "event": 5, "pixel": 5, "prefac": 5, "introduct": [5, 20], "johann": 5, "plapp": 5, "toni": 5, "najjar": 5, "kernel": 5, "hardwar": [5, 6, 8, 10, 12, 13, 22, 24], "agnost": 5, "share": [5, 13], "well": [5, 9, 20], "perform": 5, "heavi": 5, "dr": 5, "stogl": 5, "consult": 5, "practition": 5, "guid": [5, 13], "top": 5, "virtual": 5, "talk": 5, "delv": 5, "deeper": 5, "what": 5, "explicit": [5, 20], "chain": 5, "emerg": 5, "handler": 5, "mock": 5, "usag": [5, 6, 9], "openli": 5, "record": 5, "fiveai": 5, "ltd": 5, "best": [5, 13], "focu": 5, "becom": 5, "util": 5, "3rd": 5, "parti": 5, "nav2": 5, "practic": 5, "tip": 5, "hot": 5, "shown": 5, "furthermor": 5, "get": [5, 24], "reus": 5, "inject": 5, "offer": [5, 6], "expos": 5, "problem": [5, 24], "manipul": [5, 20], "path": 5, "plan": [5, 24], "autonom": 5, "navig": 5, "ideal": [5, 8], "made": 5, "mobil": [5, 11, 22], "arm": 5, "extra": [5, 18], "readi": [5, 13], "power": 5, "studi": 5, "ur": 5, "With": 5, "moveit": [5, 8], "ingredi": 5, "scale": 5, "factor": 5, "teach": 5, "pendant": 5, "influenc": 5, "picknik": 5, "inc": 5, "nathan": 5, "brook": 5, "lovro": 5, "ivanov": 5, "andi": 5, "zelenak": 5, "rune": 5, "s\u00f8e": 5, "knudsen": 5, "onlin": [5, 13], "trajectori": [5, 12, 24], "admitt": 5, "One": 5, "reason": 5, "upgrad": 5, "ros1": 5, "better": 5, "realtim": [5, 11, 20, 22, 24], "contact": 5, "insert": 5, "singl": 5, "waypoint": [5, 12, 20], "mani": [5, 13], "teleoper": 5, "involv": 5, "kinemat": 5, "acceler": [5, 10, 11, 12, 20, 22], "jerk": [5, 11, 22], "obei": 5, "demo": 5, "booth": 5, "zeleank": 5, "unifi": 5, "life": 5, "cycl": 5, "go": [5, 13], "_control": 5, "wild": 5, "materi": 5, "quick": 5, "overview": 5, "layer": 5, "aka": 5, "systemcompon": 5, "forward": [5, 8, 12, 20, 24], "done": [5, 13], "look": 5, "modifi": 5, "simpli": [5, 20], "net": 5, "edit": 5, "collect": [5, 14, 16, 21, 23], "semant": [5, 15, 17], "world": [6, 8], "startup": 6, "h": [6, 9, 13, 19], "p": 6, "param_fil": 6, "controller_typ": 6, "timeout": [6, 9, 22], "controller_manager_timeout": 6, "controller_nam": [6, 9, 13], "argument": [6, 9], "exit": [6, 9], "leav": 6, "unconfigur": 6, "namespac": [6, 12, 13, 18, 20], "kill": [6, 9], "wait": [6, 9], "until": 6, "doxygen": 7, "fake": 7, "mirror": 8, "correspond": [8, 13, 24], "offlin": 8, "advantag": 8, "pipe": 8, "insid": 8, "broadcast": [8, 18, 19], "even": 8, "debug": 8, "boost": 8, "mimic": 8, "offset": [8, 20], "fake_sensor_command": 8, "boolean": [8, 18, 20], "fals": [8, 18, 20], "position_state_following_offset": 8, "custom_interface_with_following_offset": 8, "map": [8, 20], "multipli": 8, "mimick": 8, "deprec": [9, 12], "configure_control": 9, "configure_start_control": 9, "load_configure_control": 9, "load_start_control": 9, "spin": 9, "spin_tim": 9, "hidden": 9, "discoveri": 9, "appli": 9, "alreadi": [9, 13, 20], "daemon": 9, "test_controller_nam": 9, "test_control": 9, "diffdrivecontrol": 9, "joint_state_control": [9, 10], "jointstatecontrol": 9, "unclaim": [9, 10], "set_stat": 9, "reload": 9, "adjust": 9, "strict": 9, "asap": 9, "switch_timeout": 9, "templat": [10, 13, 20], "demonstr": 10, "prove": 10, "comprehens": 10, "ros2_control_demo_bringup": 10, "gui": 10, "ros2_control_test_nod": 10, "rrbot_system_multi_interfac": 10, "py": 10, "list_hardware_interfac": 10, "load_control": 10, "forward_command_controller_posit": 10, "forward_command_controller_veloc": 10, "forward_command_controller_acceler": 10, "forward_command_controller_illegal1": 10, "forward_command_controller_illegal2": 10, "set_controller_st": 10, "claim": 10, "now": [10, 13], "let": 10, "switch_control": 10, "again": 10, "inde": 10, "been": [10, 19], "differenti": [11, 12, 19, 24], "drive": [11, 12, 22, 24], "bodi": 11, "translat": [11, 22], "wheel": 11, "odometri": [11, 22], "comput": [11, 22], "feedback": [11, 20, 22], "twist": [11, 22], "x": [11, 15, 17, 22], "linear": [11, 20, 22], "z": [11, 15, 22], "angular": [11, 22], "ignor": [11, 20, 22], "space": [11, 20], "sort": [12, 13], "accord": [12, 20], "position_control": [12, 20], "hw_if_posit": 12, "velocity_control": 12, "hw_if_veloc": 12, "effort_control": 12, "hw_if_effort": 12, "interpol": [12, 20], "step": [13, 20, 24], "compil": 13, "rule": 13, "prepar": 13, "ament_cmak": 13, "easiest": 13, "search": 13, "recent": 13, "process": 13, "pkg": 13, "flag": [13, 20], "least": [13, 20], "cmakelist": 13, "txt": 13, "package_nam": 13, "hpp": 13, "visibility_control": 13, "window": 13, "copi": 13, "prefix": [13, 15, 17], "guard": 13, "ifndef": 13, "preprocessor": 13, "engin": 13, "friend": 13, "uniqu": 13, "written": 13, "snake_cas": 13, "controllernam": 13, "public": 13, "overrid": 13, "exact": 13, "vector": 13, "store": 13, "simplifi": [13, 24], "further": 13, "parent": 13, "reserv": 13, "importantli": 13, "fine": 13, "return": 13, "return_typ": 13, "ok": 13, "otherwis": 13, "individu": 13, "none": 13, "ask": 13, "full": 13, "joint_nam": [13, 20], "interface_typ": 13, "assign": 13, "opposit": 13, "empti": 13, "constraint": [13, 20], "At": 13, "close": 13, "class_list_macro": 13, "controller_name_namespac": 13, "visibl": 13, "controller_name_packag": 13, "bottom": 13, "test_load_": 13, "content": 13, "last": [13, 20], "specifi": [13, 20], "find_packag": 13, "rclcpp": 13, "rclcpp_lifecycl": 13, "directori": 13, "ament": 13, "cmake": 13, "pluginlib_export_plugin_description_fil": 13, "ament_cmake_gmock": 13, "ros2_control_test_asset": 13, "ament_add_gmock": 13, "ament_export_librari": 13, "ament_packag": 13, "test_depend": 13, "colcon": 13, "rememb": 13, "root": 13, "success": 13, "bash": 13, "enjoi": 13, "great": 13, "shell": 13, "mai": [14, 16, 21, 23], "certain": [14, 16, 21, 23], "achiev": [14, 16, 21, 23], "These": [14, 16, 21, 23], "geometry_msg": 15, "msg": [15, 17, 20], "wrenchstamp": 15, "wrapper": [15, 17], "forcetorquesensor": 15, "sensor_nam": [15, 17], "interface_nam": 15, "frame": [15, 17], "6d": 15, "ft": 15, "y": 15, "less": 15, "six": 15, "ax": 15, "example_nam": 15, "example_interfac": 15, "sensor_msg": 17, "imusensor": 17, "orient": 17, "angular_veloc": 17, "linear_acceler": 17, "joint_stat": 18, "dynamic_joint_st": 18, "use_local_top": 18, "my_state_broadcast": 18, "extra_joint": 18, "arrai": 18, "renam": 19, "joint_state_broadcast": 19, "order": 19, "true": [19, 20], "remov": 19, "turtl": 19, "reach": 20, "instant": 20, "attempt": 20, "mechan": 20, "By": 20, "spline": 20, "guarante": 20, "continu": 20, "discourag": 20, "becaus": 20, "yield": 20, "discontinu": 20, "cubic": 20, "quintic": 20, "pid": [20, 24], "similarli": 20, "eg": 20, "proxi": 20, "wrap": 20, "robust": 20, "clock": 20, "caus": 20, "queu": 20, "segment": 20, "ros__paramet": 20, "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "state_publish_r": 20, "action_monitor_r": 20, "20": 20, "allow_partial_joints_go": 20, "open_loop_control": 20, "stopped_velocity_toler": 20, "01": 20, "goal_tim": 20, "05": [20, 24], "03": 20, "monitor": 20, "action": 20, "control_msg": [20, 24], "followjointtrajectori": 20, "hydraul": 20, "tri": 20, "numer": 20, "nan": 20, "std": 20, "numeric_limit": 20, "quiet_nan": 20, "toler": 20, "jointtrajectori": 20, "deviat": 20, "maxim": 20, "predefin": 20, "joint_trajectori": 20, "trajectory_msg": 20, "jointtrajectorycontrollerst": 20, "follow_joint_trajectori": 20, "server": 20, "position_velocity_control": 20, "position_velocity_acceleration_control": 20, "Not": 20, "yet": 20, "feedforward": 20, "term": [20, 24], "plu": 20, "171": 20, "base_link": 22, "traction": 22, "steer": 22, "Its": 24, "oper": 24, "overcom": 24, "idea": 24, "wide": 24, "toolkit": 24, "unreleas": 24, "smooth": 24, "doc": 24, "wg": 24, "meet": 24, "everi": 24, "wednesdai": 24, "join": 24, "announc": 24, "discours": 24, "googl": 24, "propos": 24, "previou": 24, "bug": 24, "tracker": 24, "minim": 24, "reproduc": 24, "regard": 24, "etc": 24, "question": 24, "answer": 24, "2024": 24, "04": 24, "06": 24, "31": 24, "built": 24, "gmt": 24}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 10], "process": 1, "merg": 1, "write": [1, 13], "document": [1, 7, 24], "structur": [1, 2], "ci": 1, "configur": 1, "differ": 2, "ros_control": 2, "ros1": [2, 4], "hardwar": [2, 3, 4, 11, 14, 16, 18, 20, 21, 23], "class": 2, "interfac": [2, 3, 9, 11, 14, 16, 18, 20, 21, 23], "control": [2, 3, 4, 6, 12, 13, 20], "": [2, 20], "access": 2, "migrat": 2, "guid": 2, "ros2_control": [2, 4, 12, 24], "robothardwar": 2, "compon": [2, 3, 4, 8], "get": 3, "start": 3, "compil": 3, "architectur": 3, "manag": [3, 6], "resourc": [3, 5], "user": 3, "descript": 3, "urdf": 3, "run": 3, "framework": 3, "your": 3, "robot": [3, 5], "project": 4, "idea": 4, "gsoc": 4, "2022": [4, 5], "asynchron": 4, "tutori": 4, "demo": [4, 10], "mission": 4, "add": 4, "support": 4, "semant": 4, "featur": [4, 7, 11, 20, 22], "pariti": 4, "from": 4, "present": 5, "2023": 5, "02": 5, "ro": 5, "meetup": 5, "munich": 5, "5": 5, "12": 5, "industri": 5, "confer": 5, "10": 5, "roscon": 5, "06": 5, "fr": 5, "2021": 5, "world": 5, "07": 5, "weekli": 5, "13": 5, "rosdevdai": 5, "05": 5, "diagram": 5, "imag": 5, "helper": 6, "script": 6, "spawner": 6, "py": 6, "unspawn": 6, "api": 7, "core": 7, "function": 7, "concept": 7, "fake": 8, "gener": 8, "system": 8, "paramet": [8, 15, 17, 18, 20], "per": 8, "joint": [8, 20], "command": [9, 11, 18, 22], "line": 9, "list_control": 9, "list_controller_typ": 9, "list_hardware_interfac": 9, "load_control": 9, "reload_controller_librari": 9, "set_controller_st": 9, "switch_control": 9, "unload_control": 9, "organ": 10, "mode": 10, "switch": 10, "diff_drive_control": 11, "veloc": [11, 22], "type": [11, 14, 16, 18, 20, 21, 23], "other": [11, 20, 22], "nomenclatur": 12, "guidelin": 12, "best": 12, "practic": 12, "avail": 12, "broadcast": [12, 15, 17], "new": 13, "us": [13, 20], "extern": 13, "refer": 13, "effort_control": 14, "forc": 15, "torqu": 15, "sensor": [15, 17], "forward_command_control": 16, "imu": 17, "joint_state_broadcast": 18, "joint_state_control": 19, "joint_trajectory_control": 20, "trajectori": 20, "represent": 20, "detail": 20, "about": 20, "ros2": 20, "special": 20, "version": 20, "jointtrajectorycontrol": 20, "tbd": 20, "position_control": 21, "tricycle_control": 22, "velocity_control": 23, "welcom": 24, "foxi": 24, "overview": 24, "develop": 24, "organis": 24, "commun": 24}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "Getting Started": [[3, "getting-started"]], "Compiling": [[3, "compiling"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"], [12, "id1"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Resources": [[5, "resources"]], "Presentations": [[5, "presentations"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "Diagrams": [[5, "diagrams"]], "Images": [[5, "images"]], "Helper scripts": [[6, "helper-scripts"]], "spawner.py": [[6, "spawner-py"]], "unspawner.py": [[6, "unspawner-py"]], "API Documentation": [[7, "api-documentation"]], "Core functionalities": [[7, "core-functionalities"]], "Features": [[7, "features"]], "Concepts": [[7, "concepts"]], "Fake Components": [[8, "fake-components"]], "Generic System": [[8, "generic-system"]], "Parameters": [[8, "parameters"], [15, "parameters"], [17, "parameters"], [18, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Command Line Interface": [[9, "command-line-interface"]], "list_controllers": [[9, "list-controllers"]], "list_controller_types": [[9, "list-controller-types"]], "list_hardware_interfaces": [[9, "list-hardware-interfaces"]], "load_controller": [[9, "load-controller"]], "reload_controller_libraries": [[9, "reload-controller-libraries"]], "set_controller_state": [[9, "set-controller-state"]], "switch_controllers": [[9, "switch-controllers"]], "unload_controller": [[9, "unload-controller"]], "Demos": [[10, "demos"]], "Repository organization": [[10, "repository-organization"]], "Mode switching demo": [[10, "mode-switching-demo"]], "diff_drive_controller": [[11, "diff-drive-controller"]], "Velocity commands": [[11, "velocity-commands"], [22, "velocity-commands"]], "Hardware interface type": [[11, "hardware-interface-type"], [14, "hardware-interface-type"], [16, "hardware-interface-type"], [18, "hardware-interface-type"], [20, "hardware-interface-type"], [21, "hardware-interface-type"], [23, "hardware-interface-type"]], "Other features": [[11, "other-features"], [20, "other-features"], [22, "other-features"]], "ros2_controllers": [[12, "ros2-controllers"]], "Nomenclature": [[12, "nomenclature"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"]], "Available Controllers": [[12, "available-controllers"]], "Available Broadcasters": [[12, "available-broadcasters"]], "Writing a new controller": [[13, "writing-a-new-controller"]], "Useful External References": [[13, "useful-external-references"]], "effort_controllers": [[14, "effort-controllers"]], "Force Torque Sensor Broadcaster": [[15, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[16, "forward-command-controller"]], "IMU Sensor Broadcaster": [[17, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[18, "joint-state-broadcaster"]], "Commands": [[18, "commands"]], "joint_state_controller": [[19, "joint-state-controller"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "Trajectory representation": [[20, "trajectory-representation"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Details about parameters": [[20, "details-about-parameters"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "position_controllers": [[21, "position-controllers"]], "tricycle_controller": [[22, "tricycle-controller"]], "velocity_controllers": [[23, "velocity-controllers"]], "Welcome to the ros2_control documentation - Foxy!": [[24, "welcome-to-the-ros2-control-documentation-foxy"]], "Overview": [[24, "overview"]], "Development Organisation and Communication": [[24, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/getting_started/getting_started", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_controller/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/getting_started/getting_started.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_controller/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "index.rst"], "titles": ["Acknowledgements", "Pull Requests", "Differences to ros_control (ROS1)", "Getting Started", "Project Ideas for GSoC 2022", "Resources", "Controller Manager", "API Documentation", "Fake Components", "Command Line Interface", "Demos", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "joint_state_controller", "joint_trajectory_controller", "position_controllers", "tricycle_controller", "velocity_controllers", "Welcome to the ros2_control documentation - Foxy!"], "terms": {"The": [0, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 20, 22, 24], "project": [0, 1, 24], "ha": [0, 1, 3, 4, 5, 13, 19], "receiv": [0, 2], "major": 0, "contribut": [0, 1, 5], "from": [0, 1, 2, 3, 5, 6, 8, 9, 11, 13, 15, 17, 20, 22, 24], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 12, 13, 20, 24], "compani": [0, 5], "institut": 0, "support": [0, 2, 3, 5, 8, 9, 13, 20, 24], "rosin": 0, "ro": [0, 1, 3, 4, 6, 8, 9, 19, 24], "industri": [0, 3, 4], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 10, 11, 15, 22, 24], "softwar": [0, 3], "compon": [0, 5, 6, 7, 11, 15, 17, 22, 24], "more": [0, 1, 2, 3, 4, 8, 13], "inform": [0, 8, 13, 24], "http": [0, 1, 3, 4], "eu": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24], "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 4, 5, 10, 13, 24], "horizon": 0, "2020": 0, "research": [0, 5], "innov": 0, "programm": 0, "under": [0, 5, 13, 24], "grant": 0, "agreement": 0, "732287": 0, "first": [1, 2, 13], "thank": 1, "you": [1, 2, 3, 5, 8, 13, 24], "consid": [1, 9], "ros2_control": [1, 3, 5, 6, 8, 10, 13], "As": [1, 13], "an": [1, 2, 3, 4, 5, 8, 9, 13, 20], "open": [1, 20], "sourc": [1, 3, 5, 13], "we": [1, 4, 5], "welcom": 1, "each": [1, 3, 4], "contributor": 1, "regardless": 1, "background": 1, "experi": 1, "To": [1, 2, 3, 24], "reduc": [1, 8], "entropi": 1, "univers": [1, 4, 5], "our": [1, 3, 4, 5], "vivid": 1, "collabor": 1, "environ": [1, 3, 5], "have": [1, 2, 3, 4, 8, 10, 13, 20], "set": [1, 2, 4, 5, 8, 9, 14, 16, 18, 20, 21, 23], "up": [1, 5, 10], "some": [1, 4, 5, 20, 24], "standard": [1, 2, 3, 4, 5, 9, 12, 15], "method": [1, 2, 3, 13], "requir": [1, 2, 3, 4, 13], "ar": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 17, 18, 20, 22, 24], "limit": [1, 4, 5, 11, 22], "scope": 1, "your": [1, 2, 5, 8, 13, 24], "pr": 1, "should": [1, 2, 4, 5, 6, 9, 10, 13, 18], "do": [1, 2, 3, 4, 5, 6, 13, 20], "one": [1, 2, 3, 4, 5, 13, 15, 24], "thing": 1, "avoid": [1, 13], "ad": [1, 4, 8, 13, 18], "random": 1, "fix": [1, 2], "put": [1, 13], "those": [1, 2, 3, 4, 8, 13, 15, 20], "separ": [1, 2, 3], "give": [1, 3, 5, 24], "descript": [1, 2, 5, 13], "titl": 1, "add": [1, 2, 13], "short": [1, 13, 24], "summari": [1, 5, 24], "make": [1, 2, 4, 5, 24], "sure": [1, 4, 24], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24], "green": 1, "don": 1, "t": [1, 6], "afraid": 1, "review": [1, 4, 24], "maintain": [1, 3, 4], "new": [1, 5, 12, 20, 24], "code": [1, 2, 4, 5, 13], "test": [1, 4, 8, 10, 13], "If": [1, 2, 3, 6, 13, 15, 20, 24], "function": [1, 2, 3, 4, 5], "alwai": 1, "exercis": 1, "serv": [1, 3, 4], "live": [1, 5], "origin": [1, 5], "intent": [1, 8], "section": [1, 2, 13], "target": [1, 12, 13, 20], "also": [1, 2, 3, 4, 5, 13], "read": [1, 2, 3, 13, 18, 20], "understand": [1, 4], "how": [1, 4, 5, 13], "handl": [1, 2, 4, 5, 20], "organ": [1, 5, 24], "guidelin": 1, "especi": [1, 2], "applic": [1, 3, 5, 6], "ros2_control_demo": [1, 3, 24], "pleas": [1, 24], "keep": [1, 13], "mind": [1, 13], "work": [1, 4, 5, 11, 13, 14, 16, 20, 21, 22, 23, 24], "fork": 1, "when": [1, 2, 3, 4, 8, 9, 13, 20], "submit": [1, 5], "That": [1, 13], "wai": [1, 13, 15], "main": [1, 3, 4, 5, 6, 8, 13, 24], "repo": [1, 3], "clean": [1, 4], "featur": [1, 5, 8, 24], "branch": 1, "all": [1, 2, 3, 4, 5, 8, 10, 13, 18, 20], "check": [1, 2, 3, 4, 8, 10, 13, 20, 24], "satisfi": 1, "befor": [1, 2, 6, 13], "thei": [1, 2, 3, 4, 5, 8, 9, 12, 13, 20], "can": [1, 2, 3, 4, 5, 7, 8, 13, 15, 19, 20, 24], "must": 1, "approv": 1, "two": [1, 3, 4, 6, 13, 15], "explicitli": 1, "onli": [1, 2, 3, 4, 5, 6, 9, 13, 15, 20], "except": 1, "other": [1, 2, 3, 5, 13], "activ": [1, 2, 3, 9], "where": [1, 4, 13], "back": 1, "traceabl": 1, "discuss": [1, 5, 24], "suffici": [1, 15], "note": [1, 3, 10, 24], "still": [1, 2, 3], "encourag": 1, "help": [1, 6, 9, 13], "u": [1, 6], "increas": 1, "pace": 1, "veri": [1, 2, 4], "like": [1, 2, 3, 4, 5], "find": 1, "issu": [1, 4, 24], "nobodi": 1, "els": 1, "see": [1, 2, 3, 10, 13, 15, 17, 20], "squash": 1, "commit": 1, "messag": [1, 4, 6, 9, 15, 17, 18, 20, 24], "comment": 1, "fixup": 1, "linter": 1, "us": [1, 2, 3, 4, 5, 8, 9, 12, 14, 15, 16, 17, 18, 19, 21, 23, 24], "pre": 1, "correct": [1, 2, 20], "header": [1, 13], "address": [1, 4], "similar": [1, 3, 5], "mean": [1, 2, 8], "result": [1, 3], "exactli": 1, "1": [1, 3, 4, 5, 8, 13], "cowboi": 1, "style": [1, 13], "over": [1, 4], "weekend": 1, "It": [1, 2, 3, 4, 6, 15], "doesn": 1, "matter": 1, "trivial": [1, 8], "peopl": 1, "chanc": 1, "proper": [1, 20], "Be": 1, "awar": 1, "impact": 1, "time": [1, 2, 4, 5, 6, 8, 9, 11, 13, 15, 20, 24], "proport": 1, "its": [1, 2, 3, 4, 5, 15, 17], "ping": 1, "them": [1, 3, 4, 6, 13, 18], "necessari": 1, "repeatedli": 1, "start": [1, 2, 5, 6, 9, 10, 13, 20, 24], "part": [1, 4, 5, 13], "For": [1, 3, 4, 5, 8, 13, 20], "detail": [1, 2, 3, 8, 13], "thoma": 1, "cokela": 1, "info": 1, "tutori": 1, "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 5, 6, 9, 12, 13, 15, 17], "develop": [1, 5, 8, 10, 13], "stabl": [1, 4], "against": 1, "accept": [1, 13, 14, 16, 21, 23], "api": [1, 4], "abi": 1, "chang": [1, 2, 3, 5, 9, 13, 20], "e": [1, 2, 3, 4, 5, 8, 13, 14, 15, 16, 18, 20, 21, 23, 24], "name": [1, 2, 3, 5, 6, 8, 9, 13, 15, 17, 18, 20], "convent": 1, "master": [1, 3, 4], "semi": 1, "binari": 1, "good": [1, 4], "same": [1, 3, 4, 15], "build": [1, 13], "dai": 1, "2": [1, 3, 5, 8], "ros_distro": 1, "g": [1, 2, 3, 4, 5, 8, 13, 14, 16, 18, 21, 23, 24], "foxi": [1, 3, 5], "galact": 1, "releas": [1, 3, 5], "version": [1, 4], "non": [1, 5, 15], "brake": 1, "distribut": [1, 24], "three": [1, 2, 3, 13], "stage": 1, "current": [1, 4, 9, 20], "futur": [1, 5], "compat": [1, 2, 5], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 24], "packag": [1, 2, 3, 10, 13, 15, 17, 19, 20, 24], "show": [1, 3, 5, 6, 9], "direct": [1, 2, 4, 13], "local": [1, 18], "possibl": [1, 3, 4, 13, 20], "core": 1, "immedi": 1, "depend": [1, 3, 13, 20], "fail": 1, "expect": [1, 4, 20], "after": [1, 11, 13, 22], "next": [1, 20], "sync": 1, "abl": 1, "potenti": [1, 13], "mid": 1, "robothw": 2, "rigid": 2, "ani": [2, 3, 5, 13], "imposs": 2, "extend": [2, 3, 4, 13], "exist": [2, 3, 4, 6, 13], "addit": [2, 4], "sensor": [2, 3, 4, 8, 12], "actuat": [2, 3, 4, 8], "tool": [2, 4, 5], "without": [2, 3, 8, 13], "combinedrobothardwar": 2, "drawback": [2, 24], "solut": [2, 5], "optim": 2, "combin": [2, 8, 20], "extern": [2, 3, 4, 8], "defin": [2, 3, 4, 8, 12, 13, 15, 17, 18, 20], "system": [2, 3, 4, 5, 10, 20, 24], "composit": [2, 5], "basic": [2, 3, 4, 5, 13], "physic": [2, 3, 8], "cell": [2, 15], "surround": 2, "describ": [2, 3], "multi": [2, 3, 4, 5, 10], "gripper": [2, 3, 8], "out": [2, 11], "box": 2, "allow": [2, 20], "joint": [2, 3, 5, 11, 12, 13, 14, 16, 18, 21, 23, 24], "posit": [2, 3, 5, 6, 9, 10, 12, 14, 16, 20, 21, 23], "veloc": [2, 3, 5, 10, 12, 20, 21, 23], "effort": [2, 12, 14, 16, 20], "hard": [2, 4], "data": [2, 3, 4, 8, 19], "approach": 2, "doe": [2, 13, 20], "enforc": [2, 20], "string": [2, 8, 13, 18, 20], "ensur": [2, 5], "constant": 2, "hardware_interfac": [2, 3, 8, 12, 13], "In": [2, 3, 4, 5, 13], "had": 2, "request": [2, 24], "itself": 2, "took": 2, "care": [2, 4, 13], "regist": 2, "resourc": 2, "conflict": [2, 3, 4], "resourcemanag": 2, "take": [2, 4, 13, 18], "state": [2, 3, 4, 5, 8, 9, 10, 12, 13, 15, 18, 20], "avail": [2, 3, 5, 9, 10, 13, 18, 20], "enabl": [2, 3, 4, 5, 10, 15], "anymor": 2, "controllermanag": 2, "implement": [2, 3, 4, 5, 8, 10, 11, 12, 13, 20, 22, 24], "systeminterfac": [2, 8], "granular": 2, "sensorinterfac": 2, "actuatorinterfac": 2, "abov": [2, 20], "choos": 2, "suitabl": [2, 5], "strategi": [2, 20], "decid": 2, "which": [2, 3, 4, 5, 9, 11, 13, 15, 17, 20, 22], "case": [2, 4, 5, 13, 20, 24], "mayb": 2, "sens": [2, 3, 15], "multipl": [2, 3, 20], "constructor": [2, 13], "initi": [2, 13], "variabl": [2, 4, 13], "need": [2, 3, 4, 5, 13], "commun": [2, 3, 4, 5], "default": [2, 3, 8, 18, 20], "configur": [2, 3, 4, 5, 6, 9, 10, 13, 20], "paramet": [2, 5, 13], "pars": [2, 7], "urdf": 2, "snippet": 2, "hardwareinfo": 2, "here": [2, 7, 13, 19, 20], "cross": 2, "valu": [2, 3, 4, 8, 13, 20], "export_": 2, "_interfac": 2, "joint_a2": 2, "extract": [2, 11, 22], "sensibl": 2, "stop": [2, 5, 6, 9, 10, 11, 22], "usual": [2, 8, 13], "includ": [2, 4, 9, 13], "command": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 16, 20, 21, 23, 24], "safe": [2, 11, 13, 20, 22], "interrupt": [2, 6], "stream": [2, 5], "write": [2, 3, 4, 5, 12], "exchang": [2, 4], "equival": 2, "forget": 2, "pluginlib_export_class": [2, 13], "macro": [2, 3, 13], "end": [2, 3, 13, 20], "cpp": [2, 13], "file": [2, 3, 4, 5, 6, 8, 13, 20], "creat": [2, 3, 5, 8, 13], "xml": [2, 13], "librari": [2, 3, 4, 9, 13], "pluginlib": [2, 3, 13], "exampl": [2, 3, 4, 5, 8, 9, 10, 15, 20, 24], "rrbotsystempositiononlyhardwar": [2, 3], "excel": 2, "jointtrajectorycontrol": [2, 9], "real": [2, 4, 5, 8, 13, 18, 20, 24], "critic": [2, 4], "mark": 2, "controllerinterfac": [2, 3, 9, 13], "member": [2, 13], "init": [2, 13], "call": [2, 3, 13], "lifecycl": [2, 3, 5, 6], "declar": [2, 13], "state_interface_configur": [2, 13], "command_interface_configur": [2, 13], "design": [2, 3, 4, 5, 24], "updat": [2, 3, 4, 13], "manag": [2, 4, 5, 7, 9, 13, 24], "option": [2, 6, 8, 9, 13, 15, 18, 20], "on_configur": [2, 13], "on_activ": [2, 13], "on_deactiv": [2, 13], "deactiv": [2, 3], "final": [2, 5], "joint_trajectory_plugin": 2, "ros2": [3, 4, 5, 6, 9, 10, 13, 24], "instal": [3, 13], "automat": [3, 11, 22], "want": 3, "workspac": [3, 13], "folder": [3, 5, 13], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 4], "vc": 3, "import": [3, 13, 20], "src": [3, 13], "found": [3, 7, 13, 19, 20, 24], "github": [3, 4, 7, 12, 24], "repositori": [3, 4, 7, 12, 24], "figur": 3, "cm": 3, "connect": 3, "abstract": [3, 5], "side": [3, 4, 5], "entri": [3, 13], "point": [3, 12, 13, 24], "through": [3, 4, 9, 11, 12, 13, 20, 24], "servic": [3, 4, 6], "node": [3, 6, 8, 9, 10, 13], "executor": 3, "so": [3, 13], "integr": [3, 4, 5, 8, 10, 20, 24], "custom": [3, 8, 15], "setup": [3, 4, 13], "recommend": [3, 5], "ros2_control_nod": 3, "controller_manag": [3, 4, 6, 9, 13, 20], "manual": [3, 4, 13, 24], "assum": 3, "On": 3, "load": [3, 6, 9, 10, 13], "unload": [3, 6, 9], "access": [3, 4, 5, 6, 8, 13], "match": 3, "provid": [3, 4, 5, 6, 8, 10, 12, 13, 20, 24], "report": [3, 4, 18, 24], "error": [3, 4, 13, 20], "execut": [3, 13, 20], "loop": [3, 5, 13, 20], "output": [3, 4, 5, 9, 15, 17, 20], "rm": 3, "driver": [3, 5], "re": 3, "usabl": 3, "flexibl": 3, "motor": [3, 4], "encod": 3, "deal": 3, "theori": [3, 24], "compar": [3, 4, 5], "refer": 3, "measur": [3, 8, 15], "base": [3, 5, 9, 11, 13, 22], "calcul": 3, "input": [3, 4, 5, 11, 20, 22], "visit": 3, "wikipedia": [3, 24], "object": 3, "deriv": 3, "controller_interfac": [3, 4, 9, 13, 15, 17], "export": [3, 13], "plugin": [3, 13], "forwardcommandcontrol": 3, "lifecyclenod": 3, "class": [3, 5, 9, 13], "machin": [3, 4], "document": [3, 4, 5, 8, 19], "latest": 3, "interact": [3, 5, 6, 9], "list": [3, 5, 9, 10, 12, 13, 20, 24], "definit": [3, 12, 13, 15], "srv": 3, "controller_manager_msg": 3, "while": [3, 4, 5, 10, 20], "directli": [3, 24], "line": [3, 7, 13], "via": 3, "friendli": 3, "cli": [3, 7, 9], "auto": 3, "complet": [3, 12], "rang": 3, "common": [3, 4, 12, 24], "capabl": [3, 4], "readm": 3, "md": 3, "ros2controlcli": 3, "realiz": [3, 5], "repres": 3, "dynam": [3, 13], "There": [3, 6, 13], "complex": [3, 4, 5], "dof": 3, "differ": [3, 4, 5, 14, 15, 16, 21, 23], "between": [3, 4, 19, 20], "transmiss": 3, "humanoid": 3, "hand": 3, "logic": 3, "channel": 3, "kuka": 3, "rsi": 3, "A": [3, 5, 13, 20], "relat": [3, 4, 5], "link": [3, 5], "forc": [3, 5, 9, 12], "torqu": [3, 12], "simpl": [3, 4, 5, 10, 13, 19], "valv": 3, "mandatori": [3, 15, 17, 20], "dc": 3, "arduino": 3, "board": 3, "modular": [3, 5], "independ": 3, "explan": 3, "given": [3, 20], "tag": [3, 13, 24], "chosen": 3, "structur": [3, 4, 13, 20], "track": [3, 24], "togeth": 3, "xacro": 3, "hereund": 3, "rrbot": [3, 10], "parallel": [3, 8], "effector": 3, "rrbotsystempositiononli": 3, "ros2_control_demo_hardwar": [3, 10], "param": [3, 6, 8], "example_param_write_for_sec": 3, "example_param_read_for_sec": 3, "joint1": [3, 8, 9, 10, 20], "command_interfac": [3, 20], "min": 3, "max": 3, "state_interfac": [3, 20], "joint2": [3, 9, 10, 20], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "0": [3, 8, 18, 20], "43": 3, "tcp_fts_sensor": 3, "frame_id": [3, 15, 17], "rrbot_tcp": 3, "min_forc": 3, "100": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "23": 3, "3": [3, 4], "gripper_joint": 3, "50": [3, 20], "yaml": [3, 4, 20], "instead": [3, 8, 19, 20], "pure": [3, 20], "launch": [3, 6, 8, 10], "stack": [3, 5], "could": [3, 5, 13, 20], "altern": [3, 20], "script": [3, 4, 13], "skeleton": 3, "orbit": 4, "around": [4, 15, 17], "everyth": [4, 13], "goal": [4, 5, 20, 24], "long": 4, "run": [4, 5, 6, 9], "task": [4, 5, 11], "interfac": [4, 5, 6, 7, 8, 10, 12, 13, 15, 17, 24], "user": 4, "thread": 4, "protect": [4, 13], "memori": [4, 13], "buffer": [4, 24], "control_toolbox": [4, 24], "second": [4, 9, 13, 24], "frequenc": 4, "high": 4, "rate": [4, 20], "khz": 4, "variou": 4, "anoth": 4, "heartbeat": 4, "signal": 4, "sent": 4, "onc": [4, 5], "per": [4, 15], "500": 4, "hz": 4, "failur": 4, "relev": [4, 24], "draft": 4, "trigger": 4, "skill": 4, "prefer": 4, "c": [4, 6, 9, 13], "trick": 4, "mentor": 4, "benc": [4, 5], "magyar": [4, 5], "deni": [4, 5], "\u0161togl": [4, 5], "size": 4, "350": 4, "hour": 4, "difficulti": 4, "about": [4, 8, 24], "org": 4, "gener": [4, 5, 13, 20, 24], "envis": 4, "simul": [4, 8, 10], "gazebo": 4, "ignit": 4, "showcas": [4, 5], "grace": 4, "degrad": 4, "architectur": [4, 5], "roadmap": [4, 24], "place": [4, 13, 20], "gpio": 4, "mode": [4, 20], "switch": [4, 9], "movement": 4, "safeti": 4, "familiar": [4, 24], "medium": 4, "focus": [4, 5], "although": 4, "easi": 4, "therefor": [4, 13, 18, 20], "often": [4, 8, 13], "orchestr": 4, "purpos": 4, "conductor": 4, "scenario": 4, "appropri": 4, "moment": 4, "right": 4, "replac": 4, "level": [4, 5, 14, 16, 20, 21, 23], "moveit2": [4, 5], "simplecontrollermanag": 4, "form": 4, "behavior": [4, 8], "benchmark": 4, "statu": [4, 9, 20], "publish": [4, 11, 15, 17, 18, 20, 22, 24], "topic": [4, 5, 20], "format": 4, "preset": 4, "modul": 4, "specif": [4, 20], "reli": 4, "doubl": [4, 8, 20], "desir": [4, 20], "howev": [4, 6], "both": [4, 5], "improv": 4, "readabl": 4, "earlier": 4, "concept": [4, 5, 8, 10], "were": 4, "introduc": [4, 5], "essenti": 4, "group": [4, 20, 24], "instanc": 4, "imu": [4, 12], "typic": [4, 20], "9": 4, "axi": [4, 15], "aceleromet": 4, "gyroscop": 4, "compass": 4, "respect": [4, 5], "Such": 4, "struct": 4, "low": [4, 5], "profil": 4, "intern": [4, 20], "addition": [4, 24], "few": [4, 5], "pull": 4, "45": 4, "tree": 4, "semantic_compon": 4, "175": 4, "rewrit": [4, 24], "ros_control": [4, 5, 24], "rich": 4, "wa": [4, 13], "motiv": 4, "adopt": 4, "port": 4, "most": [4, 13], "quit": 4, "miss": 4, "diff_drive_control": [4, 9], "joint_trajectory_control": [4, 9], "consist": [4, 20, 24], "identifi": 4, "much": [4, 13], "303": 4, "304": 4, "stretch": 4, "realtime_tool": [4, 24], "81": 4, "302": 4, "unit": 4, "gmock": 4, "cc": 5, "BY": 5, "licens": 5, "author": 5, "either": 5, "down": 5, "below": 5, "my": 5, "company_nam": 5, "tricycl": [5, 12, 22], "control": [5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24], "event": 5, "pixel": 5, "prefac": 5, "introduct": [5, 20], "johann": 5, "plapp": 5, "toni": 5, "najjar": 5, "kernel": 5, "hardwar": [5, 6, 8, 10, 12, 13, 22, 24], "agnost": 5, "share": [5, 13], "well": [5, 9, 20], "perform": 5, "heavi": 5, "dr": 5, "stogl": 5, "consult": 5, "practition": 5, "guid": [5, 13], "top": 5, "virtual": 5, "talk": 5, "delv": 5, "deeper": 5, "what": 5, "explicit": [5, 20], "chain": 5, "emerg": 5, "handler": 5, "mock": 5, "usag": [5, 6, 9], "openli": 5, "record": 5, "fiveai": 5, "ltd": 5, "best": [5, 13], "focu": 5, "becom": 5, "util": 5, "3rd": 5, "parti": 5, "nav2": 5, "practic": 5, "tip": 5, "hot": 5, "shown": 5, "furthermor": 5, "get": [5, 24], "reus": 5, "inject": 5, "offer": [5, 6], "expos": 5, "problem": [5, 24], "manipul": [5, 20], "path": 5, "plan": [5, 24], "autonom": 5, "navig": 5, "ideal": [5, 8], "made": 5, "mobil": [5, 11, 22], "arm": 5, "extra": [5, 18], "readi": [5, 13], "power": 5, "studi": 5, "ur": 5, "With": 5, "moveit": [5, 8], "ingredi": 5, "scale": 5, "factor": 5, "teach": 5, "pendant": 5, "influenc": 5, "picknik": 5, "inc": 5, "nathan": 5, "brook": 5, "lovro": 5, "ivanov": 5, "andi": 5, "zelenak": 5, "rune": 5, "s\u00f8e": 5, "knudsen": 5, "onlin": [5, 13], "trajectori": [5, 12, 24], "admitt": 5, "One": 5, "reason": 5, "upgrad": 5, "ros1": 5, "better": 5, "realtim": [5, 11, 20, 22, 24], "contact": 5, "insert": 5, "singl": 5, "waypoint": [5, 12, 20], "mani": [5, 13], "teleoper": 5, "involv": 5, "kinemat": 5, "acceler": [5, 10, 11, 12, 20, 22], "jerk": [5, 11, 22], "obei": 5, "demo": 5, "booth": 5, "zeleank": 5, "unifi": 5, "life": 5, "cycl": 5, "go": [5, 13], "_control": 5, "wild": 5, "materi": 5, "quick": 5, "overview": 5, "layer": 5, "aka": 5, "systemcompon": 5, "forward": [5, 8, 12, 20, 24], "done": [5, 13], "look": 5, "modifi": 5, "simpli": [5, 20], "net": 5, "edit": 5, "collect": [5, 14, 16, 21, 23], "semant": [5, 15, 17], "world": [6, 8], "startup": 6, "h": [6, 9, 13, 19], "p": 6, "param_fil": 6, "controller_typ": 6, "timeout": [6, 9, 22], "controller_manager_timeout": 6, "controller_nam": [6, 9, 13], "argument": [6, 9], "exit": [6, 9], "leav": 6, "unconfigur": 6, "namespac": [6, 12, 13, 18, 20], "kill": [6, 9], "wait": [6, 9], "until": 6, "doxygen": 7, "fake": 7, "mirror": 8, "correspond": [8, 13, 24], "offlin": 8, "advantag": 8, "pipe": 8, "insid": 8, "broadcast": [8, 18, 19], "even": 8, "debug": 8, "boost": 8, "mimic": 8, "offset": [8, 20], "fake_sensor_command": 8, "boolean": [8, 18, 20], "fals": [8, 18, 20], "position_state_following_offset": 8, "custom_interface_with_following_offset": 8, "map": [8, 20], "multipli": 8, "mimick": 8, "deprec": [9, 12], "configure_control": 9, "configure_start_control": 9, "load_configure_control": 9, "load_start_control": 9, "spin": 9, "spin_tim": 9, "hidden": 9, "discoveri": 9, "appli": 9, "alreadi": [9, 13, 20], "daemon": 9, "test_controller_nam": 9, "test_control": 9, "diffdrivecontrol": 9, "joint_state_control": [9, 10], "jointstatecontrol": 9, "unclaim": [9, 10], "set_stat": 9, "reload": 9, "adjust": 9, "strict": 9, "asap": 9, "switch_timeout": 9, "templat": [10, 13, 20], "demonstr": 10, "prove": 10, "comprehens": 10, "ros2_control_demo_bringup": 10, "gui": 10, "ros2_control_test_nod": 10, "rrbot_system_multi_interfac": 10, "py": 10, "list_hardware_interfac": 10, "load_control": 10, "forward_command_controller_posit": 10, "forward_command_controller_veloc": 10, "forward_command_controller_acceler": 10, "forward_command_controller_illegal1": 10, "forward_command_controller_illegal2": 10, "set_controller_st": 10, "claim": 10, "now": [10, 13], "let": 10, "switch_control": 10, "again": 10, "inde": 10, "been": [10, 19], "differenti": [11, 12, 19, 24], "drive": [11, 12, 22, 24], "bodi": 11, "translat": [11, 22], "wheel": 11, "odometri": [11, 22], "comput": [11, 22], "feedback": [11, 20, 22], "twist": [11, 22], "x": [11, 15, 17, 22], "linear": [11, 20, 22], "z": [11, 15, 22], "angular": [11, 22], "ignor": [11, 20, 22], "space": [11, 20], "sort": [12, 13], "accord": [12, 20], "position_control": [12, 20], "hw_if_posit": 12, "velocity_control": 12, "hw_if_veloc": 12, "effort_control": 12, "hw_if_effort": 12, "interpol": [12, 20], "step": [13, 20, 24], "compil": 13, "rule": 13, "prepar": 13, "ament_cmak": 13, "easiest": 13, "search": 13, "recent": 13, "process": 13, "pkg": 13, "flag": [13, 20], "least": [13, 20], "cmakelist": 13, "txt": 13, "package_nam": 13, "hpp": 13, "visibility_control": 13, "window": 13, "copi": 13, "prefix": [13, 15, 17], "guard": 13, "ifndef": 13, "preprocessor": 13, "engin": 13, "friend": 13, "uniqu": 13, "written": 13, "snake_cas": 13, "controllernam": 13, "public": 13, "overrid": 13, "exact": 13, "vector": 13, "store": 13, "simplifi": [13, 24], "further": 13, "parent": 13, "reserv": 13, "importantli": 13, "fine": 13, "return": 13, "return_typ": 13, "ok": 13, "otherwis": 13, "individu": 13, "none": 13, "ask": 13, "full": 13, "joint_nam": [13, 20], "interface_typ": 13, "assign": 13, "opposit": 13, "empti": 13, "constraint": [13, 20], "At": 13, "close": 13, "class_list_macro": 13, "controller_name_namespac": 13, "visibl": 13, "controller_name_packag": 13, "bottom": 13, "test_load_": 13, "content": 13, "last": [13, 20], "specifi": [13, 20], "find_packag": 13, "rclcpp": 13, "rclcpp_lifecycl": 13, "directori": 13, "ament": 13, "cmake": 13, "pluginlib_export_plugin_description_fil": 13, "ament_cmake_gmock": 13, "ros2_control_test_asset": 13, "ament_add_gmock": 13, "ament_export_librari": 13, "ament_packag": 13, "test_depend": 13, "colcon": 13, "rememb": 13, "root": 13, "success": 13, "bash": 13, "enjoi": 13, "great": 13, "shell": 13, "mai": [14, 16, 21, 23], "certain": [14, 16, 21, 23], "achiev": [14, 16, 21, 23], "These": [14, 16, 21, 23], "geometry_msg": 15, "msg": [15, 17, 20], "wrenchstamp": 15, "wrapper": [15, 17], "forcetorquesensor": 15, "sensor_nam": [15, 17], "interface_nam": 15, "frame": [15, 17], "6d": 15, "ft": 15, "y": 15, "less": 15, "six": 15, "ax": 15, "example_nam": 15, "example_interfac": 15, "sensor_msg": 17, "imusensor": 17, "orient": 17, "angular_veloc": 17, "linear_acceler": 17, "joint_stat": 18, "dynamic_joint_st": 18, "use_local_top": 18, "my_state_broadcast": 18, "extra_joint": 18, "arrai": 18, "renam": 19, "joint_state_broadcast": 19, "order": 19, "true": [19, 20], "remov": 19, "turtl": 19, "reach": 20, "instant": 20, "attempt": 20, "mechan": 20, "By": 20, "spline": 20, "guarante": 20, "continu": 20, "discourag": 20, "becaus": 20, "yield": 20, "discontinu": 20, "cubic": 20, "quintic": 20, "pid": [20, 24], "similarli": 20, "eg": 20, "proxi": 20, "wrap": 20, "robust": 20, "clock": 20, "caus": 20, "queu": 20, "segment": 20, "ros__paramet": 20, "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "state_publish_r": 20, "action_monitor_r": 20, "20": 20, "allow_partial_joints_go": 20, "open_loop_control": 20, "stopped_velocity_toler": 20, "01": 20, "goal_tim": 20, "05": [20, 24], "03": 20, "monitor": 20, "action": 20, "control_msg": [20, 24], "followjointtrajectori": 20, "hydraul": 20, "tri": 20, "numer": 20, "nan": 20, "std": 20, "numeric_limit": 20, "quiet_nan": 20, "toler": 20, "jointtrajectori": 20, "deviat": 20, "maxim": 20, "predefin": 20, "joint_trajectori": 20, "trajectory_msg": 20, "jointtrajectorycontrollerst": 20, "follow_joint_trajectori": 20, "server": 20, "position_velocity_control": 20, "position_velocity_acceleration_control": 20, "Not": 20, "yet": 20, "feedforward": 20, "term": [20, 24], "plu": 20, "171": 20, "base_link": 22, "traction": 22, "steer": 22, "Its": 24, "oper": 24, "overcom": 24, "idea": 24, "wide": 24, "toolkit": 24, "unreleas": 24, "smooth": 24, "doc": 24, "wg": 24, "meet": 24, "everi": 24, "wednesdai": 24, "join": 24, "announc": 24, "discours": 24, "googl": 24, "propos": 24, "previou": 24, "bug": 24, "tracker": 24, "minim": 24, "reproduc": 24, "regard": 24, "etc": 24, "question": 24, "answer": 24, "2024": 24, "04": 24, "07": 24, "31": 24, "built": 24, "gmt": 24}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 10], "process": 1, "merg": 1, "write": [1, 13], "document": [1, 7, 24], "structur": [1, 2], "ci": 1, "configur": 1, "differ": 2, "ros_control": 2, "ros1": [2, 4], "hardwar": [2, 3, 4, 11, 14, 16, 18, 20, 21, 23], "class": 2, "interfac": [2, 3, 9, 11, 14, 16, 18, 20, 21, 23], "control": [2, 3, 4, 6, 12, 13, 20], "": [2, 20], "access": 2, "migrat": 2, "guid": 2, "ros2_control": [2, 4, 12, 24], "robothardwar": 2, "compon": [2, 3, 4, 8], "get": 3, "start": 3, "compil": 3, "architectur": 3, "manag": [3, 6], "resourc": [3, 5], "user": 3, "descript": 3, "urdf": 3, "run": 3, "framework": 3, "your": 3, "robot": [3, 5], "project": 4, "idea": 4, "gsoc": 4, "2022": [4, 5], "asynchron": 4, "tutori": 4, "demo": [4, 10], "mission": 4, "add": 4, "support": 4, "semant": 4, "featur": [4, 7, 11, 20, 22], "pariti": 4, "from": 4, "present": 5, "2023": 5, "02": 5, "ro": 5, "meetup": 5, "munich": 5, "5": 5, "12": 5, "industri": 5, "confer": 5, "10": 5, "roscon": 5, "06": 5, "fr": 5, "2021": 5, "world": 5, "07": 5, "weekli": 5, "13": 5, "rosdevdai": 5, "05": 5, "diagram": 5, "imag": 5, "helper": 6, "script": 6, "spawner": 6, "py": 6, "unspawn": 6, "api": 7, "core": 7, "function": 7, "concept": 7, "fake": 8, "gener": 8, "system": 8, "paramet": [8, 15, 17, 18, 20], "per": 8, "joint": [8, 20], "command": [9, 11, 18, 22], "line": 9, "list_control": 9, "list_controller_typ": 9, "list_hardware_interfac": 9, "load_control": 9, "reload_controller_librari": 9, "set_controller_st": 9, "switch_control": 9, "unload_control": 9, "organ": 10, "mode": 10, "switch": 10, "diff_drive_control": 11, "veloc": [11, 22], "type": [11, 14, 16, 18, 20, 21, 23], "other": [11, 20, 22], "nomenclatur": 12, "guidelin": 12, "best": 12, "practic": 12, "avail": 12, "broadcast": [12, 15, 17], "new": 13, "us": [13, 20], "extern": 13, "refer": 13, "effort_control": 14, "forc": 15, "torqu": 15, "sensor": [15, 17], "forward_command_control": 16, "imu": 17, "joint_state_broadcast": 18, "joint_state_control": 19, "joint_trajectory_control": 20, "trajectori": 20, "represent": 20, "detail": 20, "about": 20, "ros2": 20, "special": 20, "version": 20, "jointtrajectorycontrol": 20, "tbd": 20, "position_control": 21, "tricycle_control": 22, "velocity_control": 23, "welcom": 24, "foxi": 24, "overview": 24, "develop": 24, "organis": 24, "commun": 24}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "Getting Started": [[3, "getting-started"]], "Compiling": [[3, "compiling"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"], [12, "id1"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Resources": [[5, "resources"]], "Presentations": [[5, "presentations"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "Diagrams": [[5, "diagrams"]], "Images": [[5, "images"]], "Helper scripts": [[6, "helper-scripts"]], "spawner.py": [[6, "spawner-py"]], "unspawner.py": [[6, "unspawner-py"]], "API Documentation": [[7, "api-documentation"]], "Core functionalities": [[7, "core-functionalities"]], "Features": [[7, "features"]], "Concepts": [[7, "concepts"]], "Fake Components": [[8, "fake-components"]], "Generic System": [[8, "generic-system"]], "Parameters": [[8, "parameters"], [15, "parameters"], [17, "parameters"], [18, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Command Line Interface": [[9, "command-line-interface"]], "list_controllers": [[9, "list-controllers"]], "list_controller_types": [[9, "list-controller-types"]], "list_hardware_interfaces": [[9, "list-hardware-interfaces"]], "load_controller": [[9, "load-controller"]], "reload_controller_libraries": [[9, "reload-controller-libraries"]], "set_controller_state": [[9, "set-controller-state"]], "switch_controllers": [[9, "switch-controllers"]], "unload_controller": [[9, "unload-controller"]], "Demos": [[10, "demos"]], "Repository organization": [[10, "repository-organization"]], "Mode switching demo": [[10, "mode-switching-demo"]], "diff_drive_controller": [[11, "diff-drive-controller"]], "Velocity commands": [[11, "velocity-commands"], [22, "velocity-commands"]], "Hardware interface type": [[11, "hardware-interface-type"], [14, "hardware-interface-type"], [16, "hardware-interface-type"], [18, "hardware-interface-type"], [20, "hardware-interface-type"], [21, "hardware-interface-type"], [23, "hardware-interface-type"]], "Other features": [[11, "other-features"], [20, "other-features"], [22, "other-features"]], "ros2_controllers": [[12, "ros2-controllers"]], "Nomenclature": [[12, "nomenclature"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"]], "Available Controllers": [[12, "available-controllers"]], "Available Broadcasters": [[12, "available-broadcasters"]], "Writing a new controller": [[13, "writing-a-new-controller"]], "Useful External References": [[13, "useful-external-references"]], "effort_controllers": [[14, "effort-controllers"]], "Force Torque Sensor Broadcaster": [[15, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[16, "forward-command-controller"]], "IMU Sensor Broadcaster": [[17, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[18, "joint-state-broadcaster"]], "Commands": [[18, "commands"]], "joint_state_controller": [[19, "joint-state-controller"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "Trajectory representation": [[20, "trajectory-representation"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Details about parameters": [[20, "details-about-parameters"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "position_controllers": [[21, "position-controllers"]], "tricycle_controller": [[22, "tricycle-controller"]], "velocity_controllers": [[23, "velocity-controllers"]], "Welcome to the ros2_control documentation - Foxy!": [[24, "welcome-to-the-ros2-control-documentation-foxy"]], "Overview": [[24, "overview"]], "Development Organisation and Communication": [[24, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/galactic/.buildinfo b/galactic/.buildinfo index feb189c864f..1c919f3e16d 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: dea0e5dfd9c957ed8fe2ff5f65785db6 +config: a6fd3698e7a48cf07c2173d7319441cc tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree b/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree index eb9fd3fbee4d4d72f9dc9c00e19e752e124b45c3..d72f117968bff68519b55d7664f90d5bb14b6d76 100644 GIT binary patch delta 66 zcmeCO>ayBk#As-eTvV8z6Q8YboNSh8kZ5XbVQHM0WNKk(W@4OTZk}e8WNBiYY-na_ Vl4NXYX_RO&*^otSb0yayBk#As-kotvJSQkkirY;Iwkl$x59YGjaXWNL11Vrpb;Ze(m`oMdQfXk=<) VY-D0?ZfKb_*^otSb0y}j8n|b(~OcVO^lNb U%`8olj4dsV5-m1AV|I=P0KI1vCjbBd delta 64 zcmZ3vk8$Nb#tmDU4Gpt%(=$^lGxd|rEsT>=Q6%Nk7N@d delta 64 zcmdnf&$OqXX@eG{p<#AzdS*&xrhc-yg>h19YEr6^L9&slxw(m{k+Hdvv6*p_p{b#f Tsfn?XiMhF6%NkXjPA diff --git a/galactic/.doctrees/doc/getting_started/getting_started.doctree b/galactic/.doctrees/doc/getting_started/getting_started.doctree index 2b2944cb6f3a8fe49040c99d74b235460722512a..d9f2a5f69221e4bdf2e49f3ca42922a925ab5708 100644 GIT binary patch delta 64 zcmez0#r(gEd4mC?p-FO4VR}w{w!U$)S)xIrsj-Enabl9Gg`t^=af-Qlno*LaiE*-_ TnWagRv8AO^qQ&M!M!6#ZuTvAH delta 64 zcmez0#r(gEd4mC?p<#AzdS*&xrhc-yg>h19YEr6^L9&slxw(m{k+Hdvv6*p_p{b#f Tsfn?XiMhF>6s~&nfl4*7RE`bsY$6u2FXUI=H@1*M#knw#%9JzhNgx_ UrY6QlCg$dbmPwmq8O5gn0JxtMB>(^b diff --git a/galactic/.doctrees/doc/resources/resources.doctree b/galactic/.doctrees/doc/resources/resources.doctree index aeb43ac310bad0cb07a19939d08e1baa11c983fc..de0959fa98d2c7479188432cda590430c7700d7e 100644 GIT binary patch delta 68 zcmX@v!*a5RWrGT%p-FO4VR}w{w!U$)S)xIrsj-Enabl9Gg`t^=af-Qlno*LaiE*-_ XnWagRv8AO^qD6Bkh19YEr6^L9&slxw(m{k+Hdvv6*p_p{b#f Xsfn?XiMhFabu?;&8>68~a#3M=PJFh$ak5#WL87U#g{5&~lBtEEnTc_Vxp|sVlBJ1pvZ0x! RNs_UprBR~A=5oe!+5mkl6Al0X delta 62 zcmX>abu?;&8>69Nc5ZrRN@b>gvblwEQfg{as*ypmk*T@4iK&sXxskD%agw2_p^>SH Rv5|?nxuIp!=5oe!+5mnc5~TnD diff --git a/galactic/.doctrees/doc/ros2_control/doc/index.doctree b/galactic/.doctrees/doc/ros2_control/doc/index.doctree index 91d91310b1817e7669fee16973661fa304bbefa6..4d3635551ac018742d178b09044bbeb15f0ef2a5 100644 GIT binary patch delta 62 zcmdm_ze#_C9iyR1a#3M=PJFh$ak5#WL87U#g{5&~lBtEEnTc_Vxp|sVlBJ1pvZ0x! RNs_UprBR~A=6ptHF#ufS5#j&< delta 62 zcmdm_ze#_C9iyRPc5ZrRN@b>gvblwEQfg{as*ypmk*T@4iK&sXxskD%agw2_p^>SH Rv5|?nxuIp!=6ptHF#uiJ5qSUr 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 7264f8ffe2faa88b2bd20430e7ad54629b7ee13f..f35e09aad2632f5beb6c51a3bf119106f53a5658 100644 GIT binary patch delta 62 zcmcbcc{g)|1EZlya#3M=PJFh$ak5#WL87U#g{5&~lBtEEnTc_Vxp|sVlBJ1pvZ0x! RNs_UprBR~A=0e6CV*rhM67~Q9 delta 62 zcmcbcc{g)|1EZl~c5ZrRN@b>gvblwEQfg{as*ypmk*T@4iK&sXxskD%agw2_p^>SH Rv5|?nxuIp!=0e6CV*rkD5{&== 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 51960fd12e1be475521acb6bbc9c6c91093040a5..ec1b76a8912ac3598dcc460cd6bc81354716965a 100644 GIT binary patch delta 64 zcmZpl%h*1baf1h=p-FO4VR}w{w!U$)S)xIrsj-Enabl9Gg`t^=af-Qlno*LaiE*-_ TnWagRv8AO^qQ&M)Mm}Evf(sIW delta 64 zcmZpl%h*1baf1h=p<#AzdS*&xrhc-yg>h19YEr6^L9&slxw(m{k+Hdvv6*p_p{b#f Tsfn?XiMhFp3 diff --git a/galactic/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index c5502d32b6ae87b75a431a0401243f4d0e468d76..727bf75d7733685c4bc19039d3225e79dab1f88f 100644 GIT binary patch delta 64 zcmcb)jq&C-#tn9ih9=2Hh3Pr*+4{!GW{C!grp6YQ#)(O$7KUaf#wq6JX+}wwCdSEz UW|k&N#+H^wi58pl8DB*L0JVA)DgXcg delta 64 zcmcb)jq&C-#tn9ihKAX>>6s~&nfl4*7RE`bsY$6u2FXUI=H@1*M#knw#%9JzhNgx_ UrY6QlCg$dbmPwoQ8DB*L0Jd-w!2kdN diff --git a/galactic/.doctrees/doc/ros2_control_demos/doc/index.doctree b/galactic/.doctrees/doc/ros2_control_demos/doc/index.doctree index 5dcb9fe9f41c00bfe8cd76bbf27d92bcb27b3d4a..1022ac262d9e5d082377598cab5dea88da3d9d43 100644 GIT binary patch delta 62 zcmcbebUSH-8Ka>|a#3M=PJFh$ak5#WL87U#g{5&~lBtEEnTc_Vxp|sVlBJ1pvZ0x! RNs_UprBR~A=5)p{`T&RM6I1{I delta 62 zcmcbebUSH-8Ka?Lc5ZrRN@b>gvblwEQfg{as*ypmk*T@4iK&sXxskD%agw2_p^>SH Rv5|?nxuIp!=5)p{`T&UD66*i} 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 4194d0dbabf813149929e0bd2d532ae68d255f80..06aad309d8b95e58055df191fdb8373f75925afb 100644 GIT binary patch delta 62 zcmdn4vt4I{52K+;a#3M=PJFh$ak5#WL87U#g{5&~lBtEEnTc_Vxp|sVlBJ1pvZ0x! RNs_UprBR~A=32&GA^>6^5_bRq delta 62 zcmdn4vt4I{52K-Bc5ZrRN@b>gvblwEQfg{as*ypmk*T@4iK&sXxskD%agw2_p^>SH Rv5|?nxuIp!=32&GA^>9*5)J?W diff --git a/galactic/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/galactic/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index fb13bfe91a85437771259482bf28bdf632359e87..915a58ea177c424be99bf22af84654db1511fc9a 100644 GIT binary patch delta 66 zcmX?2c5ZrRN@b>gvblwEQfg{as*ypmk*T@4iK&sXxskD%agw2_p^>SH Vv5|?nxuIp!WJWou&BcuVMgYT<66*i} 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 87168efc0dafec7251aab0b71d24e3fa4b652a62..72c5f6f0a34d42014cc14c6fcd0df58aa85e218c 100644 GIT binary patch delta 64 zcmZ2^g?Z%_<_!*vh9=2Hh3Pr*+4{!GW{C!grp6YQ#)(O$7KUaf#wq6JX+}wwCdSEz UW|k&N#+H^wi58m+8F#z@0ImxZYXATM delta 64 zcmZ2^g?Z%_<_!*vhKAX>>6s~&nfl4*7RE`bsY$6u2FXUI=H@1*M#knw#%9JzhNgx_ UrY6QlCg$dbmPwln8F#z@0IvZQ0ssI2 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 1b0b2a16bd17a93cdcae1d4eb144df332ab900de..8acda84f5f6fbc54d1cdc527a62a3532555ebd8c 100644 GIT binary patch delta 62 zcmbQEFh^m78>68~a#3M=PJFh$ak5#WL87U#g{5&~lBtEEnTc_Vxp|sVlBJ1pvZ0x! RNs_UprBR~A=5ofRd;m@Z5&{4K delta 62 zcmbQEFh^m78>69Nc5ZrRN@b>gvblwEQfg{as*ypmk*T@4iK&sXxskD%agw2_p^>SH Rv5|?nxuIp!=5ofRd;m`Q5t#r0 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 a334cb1103eac146b40ab8a7e45896d98128d162..05a75bc409687f068540a74230dbd00e5fd8c0ce 100644 GIT binary patch delta 62 zcmccUe9?JB0;8cxa#3M=PJFh$ak5#WL87U#g{5&~lBtEEnTc_Vxp|sVlBJ1pvZ0x! RNs_UprBR~A=823B3IKg45|aP` delta 62 zcmccUe9?JB0;8c}c5ZrRN@b>gvblwEQfg{as*ypmk*T@4iK&sXxskD%agw2_p^>SH Rv5|?nxuIp!=823B3IKi`5-I=y 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 5cb5e24798b6c3b12f3d8e64f15b52e468f0be49..68b590d12d839e634a9660e2b87f9616d08a3f39 100644 GIT binary patch delta 62 zcmaE&@I+xl7^9&{a#3M=PJFh$ak5#WL87U#g{5&~lBtEEnTc_Vxp|sVlBJ1pvZ0x! RNs_UprBR~A=61%rd;oNl66yc| delta 62 zcmaE&@I+xl7^9(Kc5ZrRN@b>gvblwEQfg{as*ypmk*T@4iK&sXxskD%agw2_p^>SH Rv5|?nxuIp!=61%rd;oQc5`h2! 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 4d9f7c7380c86c92a2b934f3512a5b1007b47cd4..c63eb5e471778c5bb7b6af9b58b2a2a131afb550 100644 GIT binary patch delta 62 zcmZqIYuDT0$7pDhTvV8z6Q8YboNSh8kZ5XbVQHM0WNKk(W@4OTZk}e8WNBiYY-na_ Rl4NXYX_RQOxt_5@6aY*{5$*s0 delta 62 zcmZqIYuDT0$7pDnotvJSQkkirY;Iwkl$x59YGjaXWNL11Vrpb;Ze(m`oMdQfXk=<) RY-D0?ZfKdbxt_5@6aY;;5rqH% 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 a9b7f143507b74bf2ce665b23b5e6f641f22e714..7ea919c605a1ef65804262378aef38286c63232b 100644 GIT binary patch delta 64 zcmZpfz}PZ@aYF#3p-FO4VR}w{w!U$)S)xIrsj-Enabl9Gg`t^=af-Qlno*LaiE*-_ TnWagRv8AO^qQ&M$#%4DFeIOFv delta 64 zcmZpfz}PZ@aYF#3p<#AzdS*&xrhc-yg>h19YEr6^L9&slxw(m{k+Hdvv6*p_p{b#f Tsfn?XiMhFh19YEr6^L9&slxw(m{k+Hdvv6*p_p{b#f Tsfn?XiMhFgvblwEQfg{as*ypmk*T@4iK&sXxskD%agw2_p^>SH Rv5|?nxuIp!=4!_Md;nf;5%&N9 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 87629d38d2660713b4c2bdb162648435aee9d585..a7945927516de597429549719aacb6cfd0b05c95 100644 GIT binary patch delta 62 zcmdm`uuEZs7o(v`a#3M=PJFh$ak5#WL87U#g{5&~lBtEEnTc_Vxp|sVlBJ1pvZ0x! RNs_UprBR~A=4!_Md;nc{5?}xT delta 62 zcmdm`uuEZs7o(wJc5ZrRN@b>gvblwEQfg{as*ypmk*T@4iK&sXxskD%agw2_p^>SH Rv5|?nxuIp!=4!_Md;nf;5%&N9 diff --git a/galactic/.doctrees/environment.pickle b/galactic/.doctrees/environment.pickle index 4c84d991482c0cb1eee737271d51f35f82afbe82..4c8ae3b8fcfaf948008b379dc8eb1978e61c3db4 100644 GIT binary patch delta 14240 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 N;?Miety2h<{vA-IiO&E4 delta 14278 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 LC(f;9gi8MjIRB{} diff --git a/galactic/.doctrees/index.doctree b/galactic/.doctrees/index.doctree index fe4338ffc6ca0b1977f7d158760f0dbb42350ecc..5ce0283cd0ad96a6fd37d8b4261255e230388095 100644 GIT binary patch delta 82 zcmX?jpYh;*#tmkSh9=2Hh3Pr*+4{!GW{C!grp6YQ#)(O$7KUaf#wq6JX+}wwCdSEz mW|k&N#+H^wi58pF8Lx#fns2rXGh<{lpL{=Ddh>*ELkR#_k{Q?l delta 82 zcmX?jpYh;*#tmkShKAX>>6s~&nfl4*7RE`bsY$6u2FXUI=H@1*M#knw#%9JzhNgx_ mrY6QlCg$dbmPwn_8Lx#fnr*fVGh<{ln|wc9dh>*ELkR#<3mI(y diff --git a/galactic/index.html b/galactic/index.html index 4f007492c3b..c5e2bba0ab7 100644 --- a/galactic/index.html +++ b/galactic/index.html @@ -152,7 +152,7 @@

Development Organisation and Communication -

Built on 2024-04-06 at 05:31 GMT

+

Built on 2024-04-07 at 05:31 GMT

diff --git a/galactic/searchindex.js b/galactic/searchindex.js index 4555d6c8956..fae82484c1d 100644 --- a/galactic/searchindex.js +++ b/galactic/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/getting_started/getting_started", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/getting_started/getting_started.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "index.rst"], "titles": ["Acknowledgements", "Pull Requests", "Differences to ros_control (ROS1)", "Getting Started", "Project Ideas for GSoC 2022", "Resources", "Controller Manager", "API Documentation", "Fake Components", "Hardware Components", "Command Line Interface", "Demos", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "joint_trajectory_controller", "position_controllers", "velocity_controllers", "Welcome to the ros2_control documentation - Galactic!"], "terms": {"The": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23], "project": [0, 1, 23], "ha": [0, 1, 3, 4, 5, 14, 19], "receiv": [0, 2], "major": 0, "contribut": [0, 1, 5], "from": [0, 1, 2, 3, 5, 6, 8, 10, 12, 14, 16, 18, 20, 23], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 11, 13, 14, 20, 23], "compani": [0, 5], "institut": 0, "support": [0, 2, 3, 5, 8, 10, 14, 19, 20, 23], "rosin": 0, "ro": [0, 1, 3, 4, 6, 8, 10, 23], "industri": [0, 3, 4], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 11, 12, 16, 19, 23], "softwar": [0, 3], "compon": [0, 5, 6, 7, 12, 16, 18, 23], "more": [0, 1, 2, 3, 4, 8, 14], "inform": [0, 8, 14, 23], "http": [0, 1, 3, 4, 6], "eu": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 17, 20, 21, 22, 23], "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 4, 5, 11, 14, 23], "horizon": 0, "2020": 0, "research": [0, 5], "innov": 0, "programm": 0, "under": [0, 5, 14, 23], "grant": 0, "agreement": 0, "732287": 0, "first": [1, 2, 9, 14], "thank": 1, "you": [1, 2, 3, 5, 6, 8, 9, 14, 23], "consid": [1, 10], "ros2_control": [1, 3, 5, 6, 8, 9, 11, 14], "As": [1, 14], "an": [1, 2, 3, 4, 5, 8, 10, 14, 19, 20], "open": [1, 19, 20], "sourc": [1, 3, 5, 14], "we": [1, 4, 5, 9, 19], "welcom": 1, "each": [1, 3, 4, 9, 19], "contributor": 1, "regardless": 1, "background": 1, "experi": 1, "To": [1, 2, 3, 6, 19, 23], "reduc": [1, 8], "entropi": 1, "univers": [1, 4, 5], "our": [1, 3, 4, 5], "vivid": 1, "collabor": 1, "environ": [1, 3, 5], "have": [1, 2, 3, 4, 6, 8, 9, 11, 14, 19, 20], "set": [1, 2, 4, 5, 6, 8, 9, 10, 11, 15, 17, 19, 20, 21, 22], "up": [1, 5, 11], "some": [1, 4, 5, 19, 20, 23], "standard": [1, 2, 3, 4, 5, 10, 13, 16, 19], "method": [1, 2, 3, 9, 14], "requir": [1, 2, 3, 4, 14], "ar": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 18, 19, 20, 23], "limit": [1, 4, 5, 12], "scope": 1, "your": [1, 2, 5, 8, 14, 23], "pr": 1, "should": [1, 2, 4, 5, 6, 9, 10, 11, 14, 19], "do": [1, 2, 3, 4, 5, 6, 14, 20], "one": [1, 2, 3, 4, 5, 14, 16, 19, 23], "thing": 1, "avoid": [1, 14], "ad": [1, 4, 8, 14, 19], "random": 1, "fix": [1, 2], "put": [1, 14], "those": [1, 2, 3, 4, 8, 14, 16, 19, 20], "separ": [1, 2, 3, 19], "give": [1, 3, 5, 23], "descript": [1, 2, 5, 9, 14], "titl": 1, "add": [1, 2, 9, 14], "short": [1, 14, 23], "summari": [1, 5, 23], "make": [1, 2, 4, 5, 6, 23], "sure": [1, 4, 23], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "green": 1, "don": 1, "t": [1, 6], "afraid": 1, "review": [1, 4, 23], "maintain": [1, 3, 4], "new": [1, 5, 13, 20, 23], "code": [1, 2, 4, 5, 14], "test": [1, 4, 8, 11, 14], "If": [1, 2, 3, 6, 9, 14, 16, 19, 20, 23], "function": [1, 2, 3, 4, 5, 6], "alwai": 1, "exercis": 1, "serv": [1, 3, 4], "live": [1, 5], "origin": [1, 5], "intent": [1, 8], "section": [1, 2, 14], "target": [1, 13, 14, 20], "also": [1, 2, 3, 4, 5, 14], "read": [1, 2, 3, 14, 19, 20], "understand": [1, 4], "how": [1, 4, 5, 14], "handl": [1, 2, 4, 5, 20], "organ": [1, 5, 23], "guidelin": 1, "especi": [1, 2], "applic": [1, 3, 5, 6], "ros2_control_demo": [1, 3, 23], "pleas": [1, 23], "keep": [1, 14], "mind": [1, 14], "work": [1, 4, 5, 12, 14, 15, 17, 19, 20, 21, 22, 23], "fork": 1, "when": [1, 2, 3, 4, 6, 8, 10, 14, 20], "submit": [1, 5], "That": [1, 14], "wai": [1, 14, 16], "main": [1, 3, 4, 5, 6, 8, 14, 23], "repo": [1, 3], "clean": [1, 4], "featur": [1, 5, 8, 23], "branch": 1, "all": [1, 2, 3, 4, 5, 8, 9, 11, 14, 19, 20], "check": [1, 2, 3, 4, 8, 9, 11, 14, 20, 23], "satisfi": 1, "befor": [1, 2, 6, 14], "thei": [1, 2, 3, 4, 5, 8, 10, 13, 14, 20], "can": [1, 2, 3, 4, 5, 7, 8, 9, 14, 16, 20, 23], "must": 1, "approv": 1, "two": [1, 3, 4, 6, 14, 16], "explicitli": 1, "onli": [1, 2, 3, 4, 5, 6, 9, 10, 14, 16, 19, 20], "except": 1, "other": [1, 2, 3, 5, 14, 19], "activ": [1, 2, 3, 10, 19], "where": [1, 4, 14, 19], "back": 1, "traceabl": 1, "discuss": [1, 5, 23], "suffici": [1, 16], "note": [1, 3, 11, 23], "still": [1, 2, 3], "encourag": 1, "help": [1, 6, 10, 14], "u": [1, 6], "increas": 1, "pace": 1, "veri": [1, 2, 4], "like": [1, 2, 3, 4, 5], "find": 1, "issu": [1, 4, 23], "nobodi": 1, "els": 1, "see": [1, 2, 3, 11, 14, 16, 18, 20], "squash": 1, "commit": 1, "messag": [1, 4, 6, 10, 16, 18, 19, 20, 23], "comment": 1, "fixup": 1, "linter": 1, "us": [1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 15, 16, 17, 18, 19, 21, 22, 23], "pre": 1, "correct": [1, 2, 20], "header": [1, 9, 14], "address": [1, 4], "similar": [1, 3, 5], "mean": [1, 2, 8], "result": [1, 3, 19], "exactli": 1, "1": [1, 3, 4, 5, 8, 14], "cowboi": 1, "style": [1, 14], "over": [1, 4], "weekend": 1, "It": [1, 2, 3, 4, 6, 16, 19], "doesn": 1, "matter": 1, "trivial": [1, 8], "peopl": 1, "chanc": 1, "proper": [1, 20], "Be": 1, "awar": 1, "impact": 1, "time": [1, 2, 4, 5, 6, 8, 10, 12, 14, 16, 20, 23], "proport": 1, "its": [1, 2, 3, 4, 5, 6, 16, 18, 19], "ping": 1, "them": [1, 3, 4, 6, 14, 19], "necessari": [1, 9], "repeatedli": 1, "start": [1, 2, 5, 6, 9, 10, 11, 14, 20, 23], "part": [1, 4, 5, 14], "For": [1, 3, 4, 5, 6, 8, 9, 14, 20], "detail": [1, 2, 3, 8, 9, 14], "thoma": 1, "cokela": 1, "info": [1, 9], "tutori": 1, "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 5, 6, 9, 10, 13, 14, 16, 18], "develop": [1, 5, 8, 11, 14], "stabl": [1, 4], "against": 1, "accept": [1, 14, 15, 17, 21, 22], "api": [1, 4], "abi": 1, "chang": [1, 2, 3, 5, 9, 10, 14, 20], "e": [1, 2, 3, 4, 5, 8, 14, 15, 16, 17, 19, 20, 21, 22, 23], "name": [1, 2, 3, 5, 6, 8, 10, 14, 16, 18, 19, 20], "convent": 1, "master": [1, 3, 4], "semi": 1, "binari": 1, "good": [1, 4], "same": [1, 3, 4, 16], "build": [1, 14], "dai": 1, "2": [1, 3, 5, 8], "ros_distro": 1, "g": [1, 2, 3, 4, 5, 8, 14, 15, 17, 19, 21, 22, 23], "foxi": [1, 3, 5], "galact": 1, "releas": [1, 3, 5, 6], "version": [1, 4], "non": [1, 5, 16], "brake": 1, "distribut": [1, 23], "three": [1, 2, 3, 9, 14], "stage": 1, "current": [1, 4, 9, 10, 20], "futur": [1, 5], "compat": [1, 2, 5], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 11, 13, 14, 19, 23], "packag": [1, 2, 3, 6, 9, 11, 14, 16, 18, 20, 23], "show": [1, 3, 5, 6, 9, 10, 19], "direct": [1, 2, 4, 14], "local": [1, 19], "possibl": [1, 3, 4, 6, 14, 20], "core": 1, "immedi": 1, "depend": [1, 3, 9, 14, 20], "fail": 1, "expect": [1, 4, 20], "after": [1, 12, 14], "next": [1, 20], "sync": 1, "abl": 1, "potenti": [1, 14], "mid": 1, "robothw": 2, "rigid": 2, "ani": [2, 3, 5, 9, 14], "imposs": 2, "extend": [2, 3, 4, 14], "exist": [2, 3, 4, 6, 9, 14], "addit": [2, 4], "sensor": [2, 3, 4, 8, 9, 13], "actuat": [2, 3, 4, 8, 9], "tool": [2, 4, 5], "without": [2, 3, 8, 14], "combinedrobothardwar": 2, "drawback": [2, 23], "solut": [2, 5], "optim": [2, 6], "combin": [2, 8, 19, 20], "extern": [2, 3, 4, 8], "defin": [2, 3, 4, 8, 13, 14, 16, 18, 19, 20], "system": [2, 3, 4, 5, 9, 11, 20, 23], "composit": [2, 5], "basic": [2, 3, 4, 5, 14], "physic": [2, 3, 8, 9], "cell": [2, 16], "surround": 2, "describ": [2, 3], "multi": [2, 3, 4, 5, 11], "gripper": [2, 3, 8], "out": [2, 12], "box": 2, "allow": [2, 20], "joint": [2, 3, 5, 12, 13, 14, 15, 17, 19, 21, 22, 23], "posit": [2, 3, 5, 6, 10, 11, 13, 15, 17, 19, 20, 21, 22], "veloc": [2, 3, 5, 11, 13, 19, 20, 21, 22], "effort": [2, 13, 15, 17, 19, 20], "hard": [2, 4], "data": [2, 3, 4, 8, 19], "approach": 2, "doe": [2, 14, 20], "enforc": [2, 20], "string": [2, 8, 14, 19, 20], "ensur": [2, 5], "constant": 2, "hardware_interfac": [2, 3, 8, 9, 13, 14], "In": [2, 3, 4, 5, 14, 19], "had": 2, "request": [2, 19, 23], "itself": 2, "took": 2, "care": [2, 4, 14], "regist": 2, "resourc": 2, "conflict": [2, 3, 4], "resourcemanag": 2, "take": [2, 4, 14, 19], "state": [2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16, 19, 20], "avail": [2, 3, 5, 10, 11, 14, 19, 20], "enabl": [2, 3, 4, 5, 6, 9, 11, 16], "anymor": 2, "controllermanag": 2, "implement": [2, 3, 4, 5, 8, 11, 12, 13, 14, 20, 23], "systeminterfac": [2, 8], "granular": 2, "sensorinterfac": 2, "actuatorinterfac": 2, "abov": [2, 20], "choos": 2, "suitabl": [2, 5], "strategi": [2, 20], "decid": 2, "which": [2, 3, 4, 5, 10, 12, 14, 16, 18, 19, 20], "case": [2, 4, 5, 14, 19, 20, 23], "mayb": 2, "sens": [2, 3, 16], "multipl": [2, 3, 19, 20], "constructor": [2, 14], "initi": [2, 14], "variabl": [2, 4, 14], "need": [2, 3, 4, 5, 14], "commun": [2, 3, 4, 5], "default": [2, 3, 8, 19, 20], "configur": [2, 3, 4, 5, 6, 9, 10, 11, 14, 19, 20], "paramet": [2, 5, 14], "pars": [2, 7], "urdf": 2, "snippet": 2, "hardwareinfo": 2, "here": [2, 7, 14, 20], "cross": [2, 19], "valu": [2, 3, 4, 8, 14, 19, 20], "export_": 2, "_interfac": 2, "joint_a2": 2, "extract": [2, 12], "sensibl": 2, "stop": [2, 5, 6, 9, 10, 11, 12], "usual": [2, 8, 14], "includ": [2, 4, 9, 10, 14], "command": [2, 3, 4, 5, 7, 8, 11, 13, 14, 15, 17, 20, 21, 22, 23], "safe": [2, 12, 14, 20], "interrupt": [2, 6], "stream": [2, 5], "write": [2, 3, 4, 5, 13], "exchang": [2, 4], "equival": 2, "forget": 2, "pluginlib_export_class": [2, 14], "macro": [2, 3, 14], "end": [2, 3, 9, 14, 20], "cpp": [2, 14], "file": [2, 3, 4, 5, 6, 8, 14, 20], "creat": [2, 3, 5, 8, 14], "xml": [2, 9, 14], "librari": [2, 3, 4, 10, 14], "pluginlib": [2, 3, 14], "exampl": [2, 3, 4, 5, 8, 10, 11, 16, 19, 20, 23], "rrbotsystempositiononlyhardwar": [2, 3], "excel": 2, "jointtrajectorycontrol": [2, 10], "real": [2, 4, 5, 6, 8, 14, 19, 20, 23], "critic": [2, 4], "mark": 2, "controllerinterfac": [2, 3, 10, 14], "member": [2, 14], "init": [2, 14], "call": [2, 3, 14], "lifecycl": [2, 3, 5, 6, 9], "declar": [2, 14], "state_interface_configur": [2, 14], "command_interface_configur": [2, 14], "design": [2, 3, 4, 5, 23], "updat": [2, 3, 4, 14], "manag": [2, 4, 5, 7, 9, 10, 14, 23], "option": [2, 6, 8, 9, 10, 14, 16, 19, 20], "on_configur": [2, 14], "on_activ": [2, 9, 14], "on_deactiv": [2, 9, 14], "deactiv": [2, 3], "final": [2, 5, 9], "joint_trajectory_plugin": 2, "ros2": [3, 4, 5, 6, 10, 11, 14, 23], "instal": [3, 6, 14], "automat": [3, 12], "want": [3, 6], "workspac": [3, 14], "folder": [3, 5, 14], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 4, 6], "vc": 3, "import": [3, 14, 20], "src": [3, 14], "found": [3, 7, 14, 20, 23], "github": [3, 4, 7, 13, 23], "repositori": [3, 4, 7, 13, 23], "figur": 3, "cm": 3, "connect": 3, "abstract": [3, 5, 9], "side": [3, 4, 5], "entri": [3, 14], "point": [3, 13, 14, 23], "through": [3, 4, 10, 12, 13, 14, 20, 23], "servic": [3, 4, 6, 9], "node": [3, 6, 8, 9, 10, 11, 14], "executor": 3, "so": [3, 14], "integr": [3, 4, 5, 8, 11, 20, 23], "custom": [3, 8, 16, 19], "setup": [3, 4, 14], "recommend": [3, 5], "ros2_control_nod": 3, "controller_manag": [3, 4, 6, 10, 14, 20], "manual": [3, 4, 14, 23], "assum": 3, "On": 3, "load": [3, 6, 10, 11, 14], "unload": [3, 6, 10], "access": [3, 4, 5, 6, 8, 14, 19], "match": 3, "provid": [3, 4, 5, 6, 8, 11, 13, 14, 19, 20, 23], "report": [3, 4, 19, 23], "error": [3, 4, 14, 19, 20], "execut": [3, 14, 20], "loop": [3, 5, 6, 14, 19, 20], "output": [3, 4, 5, 10, 16, 18, 20], "rm": 3, "driver": [3, 5], "re": 3, "usabl": 3, "flexibl": 3, "motor": [3, 4], "encod": 3, "deal": 3, "theori": [3, 23], "compar": [3, 4, 5], "refer": 3, "measur": [3, 8, 16, 19], "base": [3, 5, 9, 10, 12, 14], "calcul": 3, "input": [3, 4, 5, 12, 20], "visit": 3, "wikipedia": [3, 23], "object": 3, "deriv": 3, "controller_interfac": [3, 4, 10, 14, 16, 18], "export": [3, 14], "plugin": [3, 9, 14], "forwardcommandcontrol": 3, "lifecyclenod": 3, "class": [3, 5, 9, 10, 14], "machin": [3, 4], "document": [3, 4, 5, 8], "latest": 3, "interact": [3, 5, 6, 10], "list": [3, 5, 9, 10, 11, 13, 14, 20, 23], "definit": [3, 13, 14, 16], "srv": 3, "controller_manager_msg": 3, "while": [3, 4, 5, 11, 20], "directli": [3, 23], "line": [3, 7, 9, 14, 19], "via": 3, "friendli": 3, "cli": [3, 7, 10], "auto": 3, "complet": [3, 9, 13], "rang": 3, "common": [3, 4, 13, 19, 23], "capabl": [3, 4], "readm": 3, "md": 3, "ros2controlcli": 3, "realiz": [3, 5], "repres": [3, 9], "dynam": [3, 14], "There": [3, 6, 9, 14], "complex": [3, 4, 5], "dof": 3, "differ": [3, 4, 5, 15, 16, 17, 19, 21, 22], "between": [3, 4, 9, 19, 20], "transmiss": 3, "humanoid": 3, "hand": 3, "logic": 3, "channel": 3, "kuka": 3, "rsi": 3, "A": [3, 5, 14, 19, 20], "relat": [3, 4, 5], "link": [3, 5, 9], "forc": [3, 5, 10, 13], "torqu": [3, 13], "simpl": [3, 4, 5, 11, 14], "valv": 3, "mandatori": [3, 16, 18, 20], "dc": 3, "arduino": 3, "board": 3, "modular": [3, 5], "independ": 3, "explan": 3, "given": [3, 20], "tag": [3, 14, 23], "chosen": 3, "structur": [3, 4, 14, 20], "track": [3, 23], "togeth": 3, "xacro": 3, "hereund": 3, "rrbot": [3, 11], "parallel": [3, 8], "effector": 3, "rrbotsystempositiononli": 3, "ros2_control_demo_hardwar": [3, 11], "param": [3, 6, 8], "example_param_write_for_sec": 3, "example_param_read_for_sec": 3, "joint1": [3, 8, 10, 11, 20], "command_interfac": [3, 20], "min": 3, "max": 3, "state_interfac": [3, 20], "joint2": [3, 10, 11, 20], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "0": [3, 8, 19, 20], "43": 3, "tcp_fts_sensor": 3, "frame_id": [3, 16, 18], "rrbot_tcp": 3, "min_forc": 3, "100": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "23": 3, "3": [3, 4], "gripper_joint": 3, "50": [3, 6, 20], "yaml": [3, 4, 20], "instead": [3, 8, 20], "pure": [3, 20], "launch": [3, 6, 8, 11], "stack": [3, 5], "could": [3, 5, 14, 19, 20], "altern": [3, 20], "script": [3, 4, 14], "skeleton": 3, "orbit": 4, "around": [4, 16, 18], "everyth": [4, 14], "goal": [4, 5, 20, 23], "long": 4, "run": [4, 5, 6, 10], "task": [4, 5, 12], "interfac": [4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 18, 23], "user": 4, "thread": [4, 6], "protect": [4, 14], "memori": [4, 14], "buffer": [4, 23], "control_toolbox": [4, 23], "second": [4, 10, 14, 23], "frequenc": 4, "high": 4, "rate": [4, 20], "khz": 4, "variou": 4, "anoth": 4, "heartbeat": 4, "signal": 4, "sent": 4, "onc": [4, 5], "per": [4, 16], "500": 4, "hz": 4, "failur": [4, 9], "relev": [4, 23], "draft": 4, "trigger": 4, "skill": 4, "prefer": 4, "c": [4, 6, 10, 14], "trick": 4, "mentor": 4, "benc": [4, 5], "magyar": [4, 5], "deni": [4, 5], "\u0161togl": [4, 5], "size": 4, "350": 4, "hour": 4, "difficulti": 4, "about": [4, 8, 19, 23], "org": [4, 6], "gener": [4, 5, 14, 20, 23], "envis": 4, "simul": [4, 8, 11], "gazebo": 4, "ignit": 4, "showcas": [4, 5], "grace": 4, "degrad": 4, "architectur": [4, 5], "roadmap": [4, 23], "place": [4, 14, 20], "gpio": 4, "mode": [4, 20], "switch": [4, 10], "movement": 4, "safeti": 4, "familiar": [4, 23], "medium": 4, "focus": [4, 5], "although": [4, 9], "easi": 4, "therefor": [4, 6, 14, 19, 20], "often": [4, 8, 14, 19], "orchestr": 4, "purpos": 4, "conductor": 4, "scenario": 4, "appropri": 4, "moment": 4, "right": 4, "replac": [4, 9], "level": [4, 5, 15, 17, 20, 21, 22], "moveit2": [4, 5], "simplecontrollermanag": 4, "form": 4, "behavior": [4, 8], "benchmark": 4, "statu": [4, 9, 10, 20], "publish": [4, 12, 16, 18, 19, 20, 23], "topic": [4, 5, 20], "format": [4, 19], "preset": 4, "modul": 4, "specif": [4, 9, 19, 20], "reli": 4, "doubl": [4, 8, 20], "desir": [4, 20], "howev": [4, 6], "both": [4, 5, 19], "improv": 4, "readabl": 4, "earlier": 4, "concept": [4, 5, 8, 11], "were": 4, "introduc": [4, 5], "essenti": 4, "group": [4, 20, 23], "instanc": [4, 19], "imu": [4, 13], "typic": [4, 19, 20], "9": 4, "axi": [4, 16], "aceleromet": 4, "gyroscop": 4, "compass": 4, "respect": [4, 5], "Such": 4, "struct": 4, "low": [4, 5], "profil": 4, "intern": [4, 20], "addition": [4, 23], "few": [4, 5], "pull": 4, "45": 4, "tree": 4, "semantic_compon": 4, "175": 4, "rewrit": [4, 23], "ros_control": [4, 5, 23], "rich": 4, "wa": [4, 14], "motiv": 4, "adopt": 4, "port": [4, 9], "most": [4, 14], "quit": 4, "miss": [4, 19], "diff_drive_control": [4, 10], "joint_trajectory_control": [4, 10], "consist": [4, 20, 23], "identifi": 4, "much": [4, 14], "303": 4, "304": 4, "stretch": 4, "realtime_tool": [4, 23], "81": 4, "302": 4, "unit": 4, "gmock": 4, "cc": 5, "BY": 5, "licens": 5, "author": 5, "either": 5, "down": 5, "below": 5, "my": 5, "company_nam": 5, "tricycl": 5, "control": [5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 21, 22, 23], "event": 5, "pixel": 5, "prefac": 5, "introduct": [5, 20], "johann": 5, "plapp": 5, "toni": 5, "najjar": 5, "kernel": [5, 6], "hardwar": [5, 6, 7, 8, 11, 13, 14, 23], "agnost": 5, "share": [5, 14], "well": [5, 6, 10, 20], "perform": [5, 6], "heavi": 5, "dr": 5, "stogl": 5, "consult": 5, "practition": 5, "guid": [5, 14], "top": 5, "virtual": 5, "talk": 5, "delv": 5, "deeper": 5, "what": 5, "explicit": [5, 20], "chain": 5, "emerg": 5, "handler": 5, "mock": 5, "usag": [5, 6, 10], "openli": 5, "record": 5, "fiveai": 5, "ltd": 5, "best": [5, 6, 14], "focu": 5, "becom": 5, "util": 5, "3rd": 5, "parti": 5, "nav2": 5, "practic": 5, "tip": 5, "hot": 5, "shown": 5, "furthermor": 5, "get": [5, 9, 23], "reus": 5, "inject": 5, "offer": [5, 6], "expos": 5, "problem": [5, 23], "manipul": [5, 20], "path": 5, "plan": [5, 23], "autonom": 5, "navig": 5, "ideal": [5, 8], "made": [5, 9], "mobil": [5, 12], "arm": 5, "extra": [5, 19], "readi": [5, 14], "power": 5, "studi": 5, "ur": 5, "With": 5, "moveit": [5, 8], "ingredi": 5, "scale": 5, "factor": 5, "teach": 5, "pendant": 5, "influenc": 5, "picknik": 5, "inc": 5, "nathan": 5, "brook": 5, "lovro": 5, "ivanov": 5, "andi": 5, "zelenak": 5, "rune": 5, "s\u00f8e": 5, "knudsen": 5, "onlin": [5, 14], "trajectori": [5, 13, 23], "admitt": 5, "One": 5, "reason": 5, "upgrad": 5, "ros1": 5, "better": 5, "realtim": [5, 12, 20, 23], "contact": 5, "insert": 5, "singl": 5, "waypoint": [5, 13, 20], "mani": [5, 14], "teleoper": 5, "involv": 5, "kinemat": 5, "acceler": [5, 11, 12, 13, 20], "jerk": [5, 12], "obei": 5, "demo": 5, "booth": 5, "zeleank": 5, "unifi": 5, "life": 5, "cycl": 5, "go": [5, 14], "_control": 5, "wild": 5, "materi": 5, "quick": [5, 9], "overview": 5, "layer": 5, "aka": 5, "systemcompon": 5, "forward": [5, 8, 13, 20, 23], "done": [5, 14], "look": 5, "modifi": 5, "simpli": [5, 20], "net": 5, "edit": 5, "collect": [5, 15, 17, 21, 22], "semant": [5, 16, 18], "world": [6, 8], "littl": 6, "jitter": 6, "normal": 6, "linux": 6, "comput": [6, 12], "throughput": 6, "suit": 6, "attempt": [6, 20], "sched_fifo": 6, "prioriti": 6, "rt": 6, "permiss": 6, "syscal": 6, "easiest": [6, 14], "ubuntu": 6, "22": 6, "04": [6, 23], "lt": 6, "beta": 6, "blog": 6, "imag": 6, "amd64": 6, "debian": 6, "bullsey": 6, "startup": 6, "h": [6, 10, 14], "p": 6, "param_fil": 6, "controller_typ": 6, "timeout": [6, 10], "controller_manager_timeout": 6, "controller_nam": [6, 10, 14], "argument": [6, 10], "exit": [6, 10], "leav": 6, "unconfigur": [6, 9], "namespac": [6, 13, 14, 19, 20], "kill": [6, 10], "wait": [6, 10], "until": 6, "doxygen": 7, "fake": 7, "mirror": 8, "correspond": [8, 14, 23], "offlin": 8, "advantag": 8, "pipe": 8, "insid": 8, "broadcast": [8, 19], "even": 8, "debug": 8, "boost": 8, "mimic": 8, "offset": [8, 19, 20], "fake_sensor_command": 8, "boolean": [8, 19, 20], "fals": [8, 19, 20], "position_state_following_offset": 8, "custom_interface_with_following_offset": 8, "map": [8, 19, 20], "multipli": 8, "mimick": 8, "return_typ": [9, 14], "return": [9, 14, 19], "on_error": 9, "previous_st": 9, "success": [9, 14], "callbackreturn": 9, "again": [9, 11], "recov": 9, "reload": [9, 10], "substanti": 9, "renam": 9, "on_init": 9, "baseinterfac": 9, "remov": 9, "base_interfac": 9, "hpp": [9, 14], "hardware_interface_status_valu": 9, "rclcpp_lifecycl": [9, 14], "mai": [9, 15, 17, 21, 22], "strictli": 9, "last": [9, 14, 20], "status_": 9, "const": 9, "in_deactiv": 9, "undefin": 9, "refern": 9, "symbol": 9, "node_interfac": 9, "lifecyclenodeinterfac": 9, "rclcpp_lifecyl": 9, "cmakelist": [9, 14], "txt": [9, 14], "spin": 10, "spin_tim": 10, "hidden": 10, "discoveri": 10, "appli": 10, "alreadi": [10, 14, 20], "daemon": 10, "test_controller_nam": 10, "test_control": 10, "diffdrivecontrol": 10, "joint_state_control": 10, "jointstatecontrol": 10, "unclaim": [10, 11], "set_stat": 10, "adjust": 10, "strict": 10, "asap": 10, "switch_timeout": 10, "templat": [11, 14, 20], "demonstr": 11, "prove": 11, "comprehens": 11, "ros2_control_demo_bringup": 11, "gui": 11, "ros2_control_test_nod": 11, "rrbot_system_multi_interfac": 11, "py": 11, "list_hardware_interfac": 11, "load_control": 11, "forward_position_control": 11, "forward_velocity_control": 11, "forward_acceleration_control": 11, "forward_illegal1_control": 11, "forward_illegal2_control": 11, "joint_state_broadcast": 11, "set_controller_st": 11, "claim": 11, "now": [11, 14], "let": 11, "switch_control": 11, "inde": 11, "been": 11, "differenti": [12, 13, 23], "drive": [12, 13, 23], "bodi": 12, "translat": 12, "wheel": 12, "odometri": 12, "feedback": [12, 19, 20], "twist": 12, "x": [12, 16, 18], "linear": [12, 20], "z": [12, 16], "angular": 12, "ignor": [12, 20], "space": [12, 20], "sort": [13, 14], "accord": [13, 20], "position_control": [13, 20], "hw_if_posit": 13, "velocity_control": 13, "hw_if_veloc": 13, "effort_control": 13, "hw_if_acceler": 13, "hw_if_effort": 13, "interpol": [13, 20], "step": [14, 20, 23], "compil": 14, "rule": 14, "prepar": 14, "ament_cmak": 14, "search": 14, "recent": 14, "process": 14, "pkg": 14, "flag": [14, 20], "least": [14, 20], "package_nam": 14, "visibility_control": 14, "window": 14, "copi": 14, "prefix": [14, 16, 18], "guard": 14, "ifndef": 14, "preprocessor": 14, "engin": 14, "friend": 14, "uniqu": 14, "written": 14, "snake_cas": 14, "controllernam": 14, "public": 14, "overrid": 14, "exact": 14, "vector": 14, "store": 14, "simplifi": [14, 23], "further": 14, "parent": 14, "reserv": 14, "importantli": 14, "fine": 14, "ok": 14, "otherwis": [14, 19], "individu": 14, "none": [14, 19], "ask": [14, 19], "full": 14, "joint_nam": [14, 20], "interface_typ": 14, "assign": 14, "opposit": 14, "empti": 14, "constraint": [14, 20], "At": 14, "close": 14, "class_list_macro": 14, "controller_name_namespac": 14, "visibl": 14, "controller_name_packag": 14, "bottom": 14, "test_load_": 14, "content": 14, "specifi": [14, 20], "find_packag": 14, "rclcpp": 14, "directori": 14, "ament": 14, "cmake": 14, "pluginlib_export_plugin_description_fil": 14, "ament_cmake_gmock": 14, "ros2_control_test_asset": 14, "ament_add_gmock": 14, "ament_export_librari": 14, "ament_packag": 14, "test_depend": 14, "colcon": 14, "rememb": 14, "root": 14, "bash": 14, "enjoi": 14, "great": 14, "shell": 14, "certain": [15, 17, 21, 22], "achiev": [15, 17, 21, 22], "These": [15, 17, 21, 22], "geometry_msg": 16, "msg": [16, 18, 20], "wrenchstamp": 16, "wrapper": [16, 18], "forcetorquesensor": 16, "sensor_nam": [16, 18], "interface_nam": 16, "frame": [16, 18], "6d": 16, "ft": 16, "y": 16, "less": 16, "six": 16, "ax": 16, "example_nam": 16, "example_interfac": 16, "sensor_msg": 18, "imusensor": 18, "orient": 18, "angular_veloc": 18, "linear_acceler": 18, "joint_stat": 19, "dynamic_joint_st": 19, "By": [19, 20], "unless": 19, "latter": 19, "matrix": 19, "product": 19, "print": 19, "warn": 19, "use_local_top": 19, "my_state_broadcast": 19, "arrai": 19, "extra_joint": 19, "map_interface_to_joint_st": 19, "field": 19, "usecas": 19, "hydraul": [19, 20], "relianc": 19, "would": 19, "visual": 19, "robot_state_publish": 19, "rviz": 19, "techniqu": 19, "slightli": 19, "custom_interfac": 19, "kf_estimated_posit": 19, "derived_veloc": 19, "derived_effort": 19, "torque_sensor": 19, "current_sensor": 19, "reach": 20, "instant": 20, "mechan": 20, "spline": 20, "guarante": 20, "continu": 20, "discourag": 20, "becaus": 20, "yield": 20, "discontinu": 20, "cubic": 20, "quintic": 20, "pid": [20, 23], "similarli": 20, "eg": 20, "proxi": 20, "wrap": 20, "robust": 20, "clock": 20, "caus": 20, "queu": 20, "segment": 20, "ros__paramet": 20, "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "state_publish_r": 20, "action_monitor_r": 20, "20": 20, "allow_partial_joints_go": 20, "open_loop_control": 20, "true": 20, "stopped_velocity_toler": 20, "01": 20, "goal_tim": 20, "05": [20, 23], "03": 20, "monitor": 20, "action": 20, "control_msg": [20, 23], "followjointtrajectori": 20, "tri": 20, "numer": 20, "nan": 20, "std": 20, "numeric_limit": 20, "quiet_nan": 20, "toler": 20, "jointtrajectori": 20, "deviat": 20, "maxim": 20, "predefin": 20, "joint_trajectori": 20, "trajectory_msg": 20, "jointtrajectorycontrollerst": 20, "follow_joint_trajectori": 20, "server": 20, "position_velocity_control": 20, "position_velocity_acceleration_control": 20, "Not": 20, "yet": 20, "feedforward": 20, "term": [20, 23], "plu": 20, "171": 20, "Its": 23, "oper": 23, "overcom": 23, "idea": 23, "wide": 23, "toolkit": 23, "unreleas": 23, "smooth": 23, "doc": 23, "wg": 23, "meet": 23, "everi": 23, "wednesdai": 23, "join": 23, "announc": 23, "discours": 23, "googl": 23, "propos": 23, "previou": 23, "bug": 23, "tracker": 23, "minim": 23, "reproduc": 23, "regard": 23, "etc": 23, "question": 23, "answer": 23, "2024": 23, "06": 23, "31": 23, "built": 23, "gmt": 23}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 11], "process": 1, "merg": 1, "write": [1, 9, 14], "document": [1, 7, 23], "structur": [1, 2], "ci": 1, "configur": 1, "differ": 2, "ros_control": 2, "ros1": [2, 4], "hardwar": [2, 3, 4, 9, 12, 15, 17, 19, 20, 21, 22], "class": 2, "interfac": [2, 3, 10, 12, 15, 17, 19, 20, 21, 22], "control": [2, 3, 4, 6, 13, 14, 20], "": [2, 20], "access": 2, "migrat": [2, 9], "guid": 2, "ros2_control": [2, 4, 13, 23], "robothardwar": 2, "compon": [2, 3, 4, 8, 9], "get": 3, "start": 3, "compil": 3, "architectur": 3, "manag": [3, 6], "resourc": [3, 5], "user": 3, "descript": 3, "urdf": 3, "run": 3, "framework": 3, "your": 3, "robot": [3, 5], "project": 4, "idea": 4, "gsoc": 4, "2022": [4, 5], "asynchron": 4, "tutori": 4, "demo": [4, 11], "mission": 4, "add": 4, "support": 4, "semant": 4, "featur": [4, 7, 12, 20], "pariti": 4, "from": [4, 9], "present": 5, "2023": 5, "02": 5, "ro": 5, "meetup": 5, "munich": 5, "5": 5, "12": 5, "industri": 5, "confer": 5, "10": 5, "roscon": 5, "06": 5, "fr": 5, "2021": 5, "world": 5, "07": 5, "weekli": 5, "13": 5, "rosdevdai": 5, "05": 5, "diagram": 5, "imag": 5, "determin": 6, "helper": 6, "script": 6, "spawner": 6, "unspawn": 6, "api": 7, "core": 7, "function": 7, "concept": 7, "fake": 8, "gener": 8, "system": 8, "paramet": [8, 16, 18, 19, 20], "per": 8, "joint": [8, 20], "handl": 9, "error": 9, "happen": 9, "dure": 9, "read": 9, "call": 9, "foxi": 9, "galact": [9, 23], "command": [10, 12, 19], "line": 10, "list_control": 10, "list_controller_typ": 10, "list_hardware_interfac": 10, "load_control": 10, "reload_controller_librari": 10, "set_controller_st": 10, "switch_control": 10, "unload_control": 10, "organ": 11, "mode": 11, "switch": 11, "diff_drive_control": 12, "veloc": 12, "type": [12, 15, 17, 19, 20, 21, 22], "other": [12, 20], "nomenclatur": 13, "guidelin": 13, "best": 13, "practic": 13, "avail": 13, "broadcast": [13, 16, 18], "new": 14, "us": [14, 20], "extern": 14, "refer": 14, "effort_control": 15, "forc": 16, "torqu": 16, "sensor": [16, 18], "forward_command_control": 17, "imu": 18, "joint_state_broadcast": 19, "joint_trajectory_control": 20, "trajectori": 20, "represent": 20, "detail": 20, "about": 20, "ros2": 20, "special": 20, "version": 20, "jointtrajectorycontrol": 20, "tbd": 20, "position_control": 21, "velocity_control": 22, "welcom": 23, "overview": 23, "develop": 23, "organis": 23, "commun": 23}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "Getting Started": [[3, "getting-started"]], "Compiling": [[3, "compiling"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"], [13, "id1"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"], [9, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Resources": [[5, "resources"]], "Presentations": [[5, "presentations"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "Diagrams": [[5, "diagrams"]], "Images": [[5, "images"]], "Determinism": [[6, "determinism"]], "Helper scripts": [[6, "helper-scripts"]], "spawner": [[6, "spawner"]], "unspawner": [[6, "unspawner"]], "API Documentation": [[7, "api-documentation"]], "Core functionalities": [[7, "core-functionalities"]], "Features": [[7, "features"]], "Concepts": [[7, "concepts"]], "Fake Components": [[8, "fake-components"]], "Generic System": [[8, "generic-system"]], "Parameters": [[8, "parameters"], [16, "parameters"], [18, "parameters"], [19, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Handling of errors that happen during read() and write() calls": [[9, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to Galactic": [[9, "migration-from-foxy-to-galactic"]], "Command Line Interface": [[10, "command-line-interface"]], "list_controllers": [[10, "list-controllers"]], "list_controller_types": [[10, "list-controller-types"]], "list_hardware_interfaces": [[10, "list-hardware-interfaces"]], "load_controller": [[10, "load-controller"]], "reload_controller_libraries": [[10, "reload-controller-libraries"]], "set_controller_state": [[10, "set-controller-state"]], "switch_controllers": [[10, "switch-controllers"]], "unload_controller": [[10, "unload-controller"]], "Demos": [[11, "demos"]], "Repository organization": [[11, "repository-organization"]], "Mode switching demo": [[11, "mode-switching-demo"]], "diff_drive_controller": [[12, "diff-drive-controller"]], "Velocity commands": [[12, "velocity-commands"]], "Hardware interface type": [[12, "hardware-interface-type"], [15, "hardware-interface-type"], [17, "hardware-interface-type"], [19, "hardware-interface-type"], [20, "hardware-interface-type"], [21, "hardware-interface-type"], [22, "hardware-interface-type"]], "Other features": [[12, "other-features"], [20, "other-features"]], "ros2_controllers": [[13, "ros2-controllers"]], "Nomenclature": [[13, "nomenclature"]], "Guidelines and Best Practices": [[13, "guidelines-and-best-practices"]], "Available Controllers": [[13, "available-controllers"]], "Available Broadcasters": [[13, "available-broadcasters"]], "Writing a new controller": [[14, "writing-a-new-controller"]], "Useful External References": [[14, "useful-external-references"]], "effort_controllers": [[15, "effort-controllers"]], "Force Torque Sensor Broadcaster": [[16, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[17, "forward-command-controller"]], "IMU Sensor Broadcaster": [[18, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[19, "joint-state-broadcaster"]], "Commands": [[19, "commands"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "Trajectory representation": [[20, "trajectory-representation"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Details about parameters": [[20, "details-about-parameters"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "position_controllers": [[21, "position-controllers"]], "velocity_controllers": [[22, "velocity-controllers"]], "Welcome to the ros2_control documentation - Galactic!": [[23, "welcome-to-the-ros2-control-documentation-galactic"]], "Overview": [[23, "overview"]], "Development Organisation and Communication": [[23, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/getting_started/getting_started", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/getting_started/getting_started.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "index.rst"], "titles": ["Acknowledgements", "Pull Requests", "Differences to ros_control (ROS1)", "Getting Started", "Project Ideas for GSoC 2022", "Resources", "Controller Manager", "API Documentation", "Fake Components", "Hardware Components", "Command Line Interface", "Demos", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "joint_trajectory_controller", "position_controllers", "velocity_controllers", "Welcome to the ros2_control documentation - Galactic!"], "terms": {"The": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23], "project": [0, 1, 23], "ha": [0, 1, 3, 4, 5, 14, 19], "receiv": [0, 2], "major": 0, "contribut": [0, 1, 5], "from": [0, 1, 2, 3, 5, 6, 8, 10, 12, 14, 16, 18, 20, 23], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 11, 13, 14, 20, 23], "compani": [0, 5], "institut": 0, "support": [0, 2, 3, 5, 8, 10, 14, 19, 20, 23], "rosin": 0, "ro": [0, 1, 3, 4, 6, 8, 10, 23], "industri": [0, 3, 4], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 11, 12, 16, 19, 23], "softwar": [0, 3], "compon": [0, 5, 6, 7, 12, 16, 18, 23], "more": [0, 1, 2, 3, 4, 8, 14], "inform": [0, 8, 14, 23], "http": [0, 1, 3, 4, 6], "eu": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 17, 20, 21, 22, 23], "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 4, 5, 11, 14, 23], "horizon": 0, "2020": 0, "research": [0, 5], "innov": 0, "programm": 0, "under": [0, 5, 14, 23], "grant": 0, "agreement": 0, "732287": 0, "first": [1, 2, 9, 14], "thank": 1, "you": [1, 2, 3, 5, 6, 8, 9, 14, 23], "consid": [1, 10], "ros2_control": [1, 3, 5, 6, 8, 9, 11, 14], "As": [1, 14], "an": [1, 2, 3, 4, 5, 8, 10, 14, 19, 20], "open": [1, 19, 20], "sourc": [1, 3, 5, 14], "we": [1, 4, 5, 9, 19], "welcom": 1, "each": [1, 3, 4, 9, 19], "contributor": 1, "regardless": 1, "background": 1, "experi": 1, "To": [1, 2, 3, 6, 19, 23], "reduc": [1, 8], "entropi": 1, "univers": [1, 4, 5], "our": [1, 3, 4, 5], "vivid": 1, "collabor": 1, "environ": [1, 3, 5], "have": [1, 2, 3, 4, 6, 8, 9, 11, 14, 19, 20], "set": [1, 2, 4, 5, 6, 8, 9, 10, 11, 15, 17, 19, 20, 21, 22], "up": [1, 5, 11], "some": [1, 4, 5, 19, 20, 23], "standard": [1, 2, 3, 4, 5, 10, 13, 16, 19], "method": [1, 2, 3, 9, 14], "requir": [1, 2, 3, 4, 14], "ar": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 18, 19, 20, 23], "limit": [1, 4, 5, 12], "scope": 1, "your": [1, 2, 5, 8, 14, 23], "pr": 1, "should": [1, 2, 4, 5, 6, 9, 10, 11, 14, 19], "do": [1, 2, 3, 4, 5, 6, 14, 20], "one": [1, 2, 3, 4, 5, 14, 16, 19, 23], "thing": 1, "avoid": [1, 14], "ad": [1, 4, 8, 14, 19], "random": 1, "fix": [1, 2], "put": [1, 14], "those": [1, 2, 3, 4, 8, 14, 16, 19, 20], "separ": [1, 2, 3, 19], "give": [1, 3, 5, 23], "descript": [1, 2, 5, 9, 14], "titl": 1, "add": [1, 2, 9, 14], "short": [1, 14, 23], "summari": [1, 5, 23], "make": [1, 2, 4, 5, 6, 23], "sure": [1, 4, 23], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "green": 1, "don": 1, "t": [1, 6], "afraid": 1, "review": [1, 4, 23], "maintain": [1, 3, 4], "new": [1, 5, 13, 20, 23], "code": [1, 2, 4, 5, 14], "test": [1, 4, 8, 11, 14], "If": [1, 2, 3, 6, 9, 14, 16, 19, 20, 23], "function": [1, 2, 3, 4, 5, 6], "alwai": 1, "exercis": 1, "serv": [1, 3, 4], "live": [1, 5], "origin": [1, 5], "intent": [1, 8], "section": [1, 2, 14], "target": [1, 13, 14, 20], "also": [1, 2, 3, 4, 5, 14], "read": [1, 2, 3, 14, 19, 20], "understand": [1, 4], "how": [1, 4, 5, 14], "handl": [1, 2, 4, 5, 20], "organ": [1, 5, 23], "guidelin": 1, "especi": [1, 2], "applic": [1, 3, 5, 6], "ros2_control_demo": [1, 3, 23], "pleas": [1, 23], "keep": [1, 14], "mind": [1, 14], "work": [1, 4, 5, 12, 14, 15, 17, 19, 20, 21, 22, 23], "fork": 1, "when": [1, 2, 3, 4, 6, 8, 10, 14, 20], "submit": [1, 5], "That": [1, 14], "wai": [1, 14, 16], "main": [1, 3, 4, 5, 6, 8, 14, 23], "repo": [1, 3], "clean": [1, 4], "featur": [1, 5, 8, 23], "branch": 1, "all": [1, 2, 3, 4, 5, 8, 9, 11, 14, 19, 20], "check": [1, 2, 3, 4, 8, 9, 11, 14, 20, 23], "satisfi": 1, "befor": [1, 2, 6, 14], "thei": [1, 2, 3, 4, 5, 8, 10, 13, 14, 20], "can": [1, 2, 3, 4, 5, 7, 8, 9, 14, 16, 20, 23], "must": 1, "approv": 1, "two": [1, 3, 4, 6, 14, 16], "explicitli": 1, "onli": [1, 2, 3, 4, 5, 6, 9, 10, 14, 16, 19, 20], "except": 1, "other": [1, 2, 3, 5, 14, 19], "activ": [1, 2, 3, 10, 19], "where": [1, 4, 14, 19], "back": 1, "traceabl": 1, "discuss": [1, 5, 23], "suffici": [1, 16], "note": [1, 3, 11, 23], "still": [1, 2, 3], "encourag": 1, "help": [1, 6, 10, 14], "u": [1, 6], "increas": 1, "pace": 1, "veri": [1, 2, 4], "like": [1, 2, 3, 4, 5], "find": 1, "issu": [1, 4, 23], "nobodi": 1, "els": 1, "see": [1, 2, 3, 11, 14, 16, 18, 20], "squash": 1, "commit": 1, "messag": [1, 4, 6, 10, 16, 18, 19, 20, 23], "comment": 1, "fixup": 1, "linter": 1, "us": [1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 15, 16, 17, 18, 19, 21, 22, 23], "pre": 1, "correct": [1, 2, 20], "header": [1, 9, 14], "address": [1, 4], "similar": [1, 3, 5], "mean": [1, 2, 8], "result": [1, 3, 19], "exactli": 1, "1": [1, 3, 4, 5, 8, 14], "cowboi": 1, "style": [1, 14], "over": [1, 4], "weekend": 1, "It": [1, 2, 3, 4, 6, 16, 19], "doesn": 1, "matter": 1, "trivial": [1, 8], "peopl": 1, "chanc": 1, "proper": [1, 20], "Be": 1, "awar": 1, "impact": 1, "time": [1, 2, 4, 5, 6, 8, 10, 12, 14, 16, 20, 23], "proport": 1, "its": [1, 2, 3, 4, 5, 6, 16, 18, 19], "ping": 1, "them": [1, 3, 4, 6, 14, 19], "necessari": [1, 9], "repeatedli": 1, "start": [1, 2, 5, 6, 9, 10, 11, 14, 20, 23], "part": [1, 4, 5, 14], "For": [1, 3, 4, 5, 6, 8, 9, 14, 20], "detail": [1, 2, 3, 8, 9, 14], "thoma": 1, "cokela": 1, "info": [1, 9], "tutori": 1, "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 5, 6, 9, 10, 13, 14, 16, 18], "develop": [1, 5, 8, 11, 14], "stabl": [1, 4], "against": 1, "accept": [1, 14, 15, 17, 21, 22], "api": [1, 4], "abi": 1, "chang": [1, 2, 3, 5, 9, 10, 14, 20], "e": [1, 2, 3, 4, 5, 8, 14, 15, 16, 17, 19, 20, 21, 22, 23], "name": [1, 2, 3, 5, 6, 8, 10, 14, 16, 18, 19, 20], "convent": 1, "master": [1, 3, 4], "semi": 1, "binari": 1, "good": [1, 4], "same": [1, 3, 4, 16], "build": [1, 14], "dai": 1, "2": [1, 3, 5, 8], "ros_distro": 1, "g": [1, 2, 3, 4, 5, 8, 14, 15, 17, 19, 21, 22, 23], "foxi": [1, 3, 5], "galact": 1, "releas": [1, 3, 5, 6], "version": [1, 4], "non": [1, 5, 16], "brake": 1, "distribut": [1, 23], "three": [1, 2, 3, 9, 14], "stage": 1, "current": [1, 4, 9, 10, 20], "futur": [1, 5], "compat": [1, 2, 5], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 11, 13, 14, 19, 23], "packag": [1, 2, 3, 6, 9, 11, 14, 16, 18, 20, 23], "show": [1, 3, 5, 6, 9, 10, 19], "direct": [1, 2, 4, 14], "local": [1, 19], "possibl": [1, 3, 4, 6, 14, 20], "core": 1, "immedi": 1, "depend": [1, 3, 9, 14, 20], "fail": 1, "expect": [1, 4, 20], "after": [1, 12, 14], "next": [1, 20], "sync": 1, "abl": 1, "potenti": [1, 14], "mid": 1, "robothw": 2, "rigid": 2, "ani": [2, 3, 5, 9, 14], "imposs": 2, "extend": [2, 3, 4, 14], "exist": [2, 3, 4, 6, 9, 14], "addit": [2, 4], "sensor": [2, 3, 4, 8, 9, 13], "actuat": [2, 3, 4, 8, 9], "tool": [2, 4, 5], "without": [2, 3, 8, 14], "combinedrobothardwar": 2, "drawback": [2, 23], "solut": [2, 5], "optim": [2, 6], "combin": [2, 8, 19, 20], "extern": [2, 3, 4, 8], "defin": [2, 3, 4, 8, 13, 14, 16, 18, 19, 20], "system": [2, 3, 4, 5, 9, 11, 20, 23], "composit": [2, 5], "basic": [2, 3, 4, 5, 14], "physic": [2, 3, 8, 9], "cell": [2, 16], "surround": 2, "describ": [2, 3], "multi": [2, 3, 4, 5, 11], "gripper": [2, 3, 8], "out": [2, 12], "box": 2, "allow": [2, 20], "joint": [2, 3, 5, 12, 13, 14, 15, 17, 19, 21, 22, 23], "posit": [2, 3, 5, 6, 10, 11, 13, 15, 17, 19, 20, 21, 22], "veloc": [2, 3, 5, 11, 13, 19, 20, 21, 22], "effort": [2, 13, 15, 17, 19, 20], "hard": [2, 4], "data": [2, 3, 4, 8, 19], "approach": 2, "doe": [2, 14, 20], "enforc": [2, 20], "string": [2, 8, 14, 19, 20], "ensur": [2, 5], "constant": 2, "hardware_interfac": [2, 3, 8, 9, 13, 14], "In": [2, 3, 4, 5, 14, 19], "had": 2, "request": [2, 19, 23], "itself": 2, "took": 2, "care": [2, 4, 14], "regist": 2, "resourc": 2, "conflict": [2, 3, 4], "resourcemanag": 2, "take": [2, 4, 14, 19], "state": [2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16, 19, 20], "avail": [2, 3, 5, 10, 11, 14, 19, 20], "enabl": [2, 3, 4, 5, 6, 9, 11, 16], "anymor": 2, "controllermanag": 2, "implement": [2, 3, 4, 5, 8, 11, 12, 13, 14, 20, 23], "systeminterfac": [2, 8], "granular": 2, "sensorinterfac": 2, "actuatorinterfac": 2, "abov": [2, 20], "choos": 2, "suitabl": [2, 5], "strategi": [2, 20], "decid": 2, "which": [2, 3, 4, 5, 10, 12, 14, 16, 18, 19, 20], "case": [2, 4, 5, 14, 19, 20, 23], "mayb": 2, "sens": [2, 3, 16], "multipl": [2, 3, 19, 20], "constructor": [2, 14], "initi": [2, 14], "variabl": [2, 4, 14], "need": [2, 3, 4, 5, 14], "commun": [2, 3, 4, 5], "default": [2, 3, 8, 19, 20], "configur": [2, 3, 4, 5, 6, 9, 10, 11, 14, 19, 20], "paramet": [2, 5, 14], "pars": [2, 7], "urdf": 2, "snippet": 2, "hardwareinfo": 2, "here": [2, 7, 14, 20], "cross": [2, 19], "valu": [2, 3, 4, 8, 14, 19, 20], "export_": 2, "_interfac": 2, "joint_a2": 2, "extract": [2, 12], "sensibl": 2, "stop": [2, 5, 6, 9, 10, 11, 12], "usual": [2, 8, 14], "includ": [2, 4, 9, 10, 14], "command": [2, 3, 4, 5, 7, 8, 11, 13, 14, 15, 17, 20, 21, 22, 23], "safe": [2, 12, 14, 20], "interrupt": [2, 6], "stream": [2, 5], "write": [2, 3, 4, 5, 13], "exchang": [2, 4], "equival": 2, "forget": 2, "pluginlib_export_class": [2, 14], "macro": [2, 3, 14], "end": [2, 3, 9, 14, 20], "cpp": [2, 14], "file": [2, 3, 4, 5, 6, 8, 14, 20], "creat": [2, 3, 5, 8, 14], "xml": [2, 9, 14], "librari": [2, 3, 4, 10, 14], "pluginlib": [2, 3, 14], "exampl": [2, 3, 4, 5, 8, 10, 11, 16, 19, 20, 23], "rrbotsystempositiononlyhardwar": [2, 3], "excel": 2, "jointtrajectorycontrol": [2, 10], "real": [2, 4, 5, 6, 8, 14, 19, 20, 23], "critic": [2, 4], "mark": 2, "controllerinterfac": [2, 3, 10, 14], "member": [2, 14], "init": [2, 14], "call": [2, 3, 14], "lifecycl": [2, 3, 5, 6, 9], "declar": [2, 14], "state_interface_configur": [2, 14], "command_interface_configur": [2, 14], "design": [2, 3, 4, 5, 23], "updat": [2, 3, 4, 14], "manag": [2, 4, 5, 7, 9, 10, 14, 23], "option": [2, 6, 8, 9, 10, 14, 16, 19, 20], "on_configur": [2, 14], "on_activ": [2, 9, 14], "on_deactiv": [2, 9, 14], "deactiv": [2, 3], "final": [2, 5, 9], "joint_trajectory_plugin": 2, "ros2": [3, 4, 5, 6, 10, 11, 14, 23], "instal": [3, 6, 14], "automat": [3, 12], "want": [3, 6], "workspac": [3, 14], "folder": [3, 5, 14], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 4, 6], "vc": 3, "import": [3, 14, 20], "src": [3, 14], "found": [3, 7, 14, 20, 23], "github": [3, 4, 7, 13, 23], "repositori": [3, 4, 7, 13, 23], "figur": 3, "cm": 3, "connect": 3, "abstract": [3, 5, 9], "side": [3, 4, 5], "entri": [3, 14], "point": [3, 13, 14, 23], "through": [3, 4, 10, 12, 13, 14, 20, 23], "servic": [3, 4, 6, 9], "node": [3, 6, 8, 9, 10, 11, 14], "executor": 3, "so": [3, 14], "integr": [3, 4, 5, 8, 11, 20, 23], "custom": [3, 8, 16, 19], "setup": [3, 4, 14], "recommend": [3, 5], "ros2_control_nod": 3, "controller_manag": [3, 4, 6, 10, 14, 20], "manual": [3, 4, 14, 23], "assum": 3, "On": 3, "load": [3, 6, 10, 11, 14], "unload": [3, 6, 10], "access": [3, 4, 5, 6, 8, 14, 19], "match": 3, "provid": [3, 4, 5, 6, 8, 11, 13, 14, 19, 20, 23], "report": [3, 4, 19, 23], "error": [3, 4, 14, 19, 20], "execut": [3, 14, 20], "loop": [3, 5, 6, 14, 19, 20], "output": [3, 4, 5, 10, 16, 18, 20], "rm": 3, "driver": [3, 5], "re": 3, "usabl": 3, "flexibl": 3, "motor": [3, 4], "encod": 3, "deal": 3, "theori": [3, 23], "compar": [3, 4, 5], "refer": 3, "measur": [3, 8, 16, 19], "base": [3, 5, 9, 10, 12, 14], "calcul": 3, "input": [3, 4, 5, 12, 20], "visit": 3, "wikipedia": [3, 23], "object": 3, "deriv": 3, "controller_interfac": [3, 4, 10, 14, 16, 18], "export": [3, 14], "plugin": [3, 9, 14], "forwardcommandcontrol": 3, "lifecyclenod": 3, "class": [3, 5, 9, 10, 14], "machin": [3, 4], "document": [3, 4, 5, 8], "latest": 3, "interact": [3, 5, 6, 10], "list": [3, 5, 9, 10, 11, 13, 14, 20, 23], "definit": [3, 13, 14, 16], "srv": 3, "controller_manager_msg": 3, "while": [3, 4, 5, 11, 20], "directli": [3, 23], "line": [3, 7, 9, 14, 19], "via": 3, "friendli": 3, "cli": [3, 7, 10], "auto": 3, "complet": [3, 9, 13], "rang": 3, "common": [3, 4, 13, 19, 23], "capabl": [3, 4], "readm": 3, "md": 3, "ros2controlcli": 3, "realiz": [3, 5], "repres": [3, 9], "dynam": [3, 14], "There": [3, 6, 9, 14], "complex": [3, 4, 5], "dof": 3, "differ": [3, 4, 5, 15, 16, 17, 19, 21, 22], "between": [3, 4, 9, 19, 20], "transmiss": 3, "humanoid": 3, "hand": 3, "logic": 3, "channel": 3, "kuka": 3, "rsi": 3, "A": [3, 5, 14, 19, 20], "relat": [3, 4, 5], "link": [3, 5, 9], "forc": [3, 5, 10, 13], "torqu": [3, 13], "simpl": [3, 4, 5, 11, 14], "valv": 3, "mandatori": [3, 16, 18, 20], "dc": 3, "arduino": 3, "board": 3, "modular": [3, 5], "independ": 3, "explan": 3, "given": [3, 20], "tag": [3, 14, 23], "chosen": 3, "structur": [3, 4, 14, 20], "track": [3, 23], "togeth": 3, "xacro": 3, "hereund": 3, "rrbot": [3, 11], "parallel": [3, 8], "effector": 3, "rrbotsystempositiononli": 3, "ros2_control_demo_hardwar": [3, 11], "param": [3, 6, 8], "example_param_write_for_sec": 3, "example_param_read_for_sec": 3, "joint1": [3, 8, 10, 11, 20], "command_interfac": [3, 20], "min": 3, "max": 3, "state_interfac": [3, 20], "joint2": [3, 10, 11, 20], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "0": [3, 8, 19, 20], "43": 3, "tcp_fts_sensor": 3, "frame_id": [3, 16, 18], "rrbot_tcp": 3, "min_forc": 3, "100": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "23": 3, "3": [3, 4], "gripper_joint": 3, "50": [3, 6, 20], "yaml": [3, 4, 20], "instead": [3, 8, 20], "pure": [3, 20], "launch": [3, 6, 8, 11], "stack": [3, 5], "could": [3, 5, 14, 19, 20], "altern": [3, 20], "script": [3, 4, 14], "skeleton": 3, "orbit": 4, "around": [4, 16, 18], "everyth": [4, 14], "goal": [4, 5, 20, 23], "long": 4, "run": [4, 5, 6, 10], "task": [4, 5, 12], "interfac": [4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 18, 23], "user": 4, "thread": [4, 6], "protect": [4, 14], "memori": [4, 14], "buffer": [4, 23], "control_toolbox": [4, 23], "second": [4, 10, 14, 23], "frequenc": 4, "high": 4, "rate": [4, 20], "khz": 4, "variou": 4, "anoth": 4, "heartbeat": 4, "signal": 4, "sent": 4, "onc": [4, 5], "per": [4, 16], "500": 4, "hz": 4, "failur": [4, 9], "relev": [4, 23], "draft": 4, "trigger": 4, "skill": 4, "prefer": 4, "c": [4, 6, 10, 14], "trick": 4, "mentor": 4, "benc": [4, 5], "magyar": [4, 5], "deni": [4, 5], "\u0161togl": [4, 5], "size": 4, "350": 4, "hour": 4, "difficulti": 4, "about": [4, 8, 19, 23], "org": [4, 6], "gener": [4, 5, 14, 20, 23], "envis": 4, "simul": [4, 8, 11], "gazebo": 4, "ignit": 4, "showcas": [4, 5], "grace": 4, "degrad": 4, "architectur": [4, 5], "roadmap": [4, 23], "place": [4, 14, 20], "gpio": 4, "mode": [4, 20], "switch": [4, 10], "movement": 4, "safeti": 4, "familiar": [4, 23], "medium": 4, "focus": [4, 5], "although": [4, 9], "easi": 4, "therefor": [4, 6, 14, 19, 20], "often": [4, 8, 14, 19], "orchestr": 4, "purpos": 4, "conductor": 4, "scenario": 4, "appropri": 4, "moment": 4, "right": 4, "replac": [4, 9], "level": [4, 5, 15, 17, 20, 21, 22], "moveit2": [4, 5], "simplecontrollermanag": 4, "form": 4, "behavior": [4, 8], "benchmark": 4, "statu": [4, 9, 10, 20], "publish": [4, 12, 16, 18, 19, 20, 23], "topic": [4, 5, 20], "format": [4, 19], "preset": 4, "modul": 4, "specif": [4, 9, 19, 20], "reli": 4, "doubl": [4, 8, 20], "desir": [4, 20], "howev": [4, 6], "both": [4, 5, 19], "improv": 4, "readabl": 4, "earlier": 4, "concept": [4, 5, 8, 11], "were": 4, "introduc": [4, 5], "essenti": 4, "group": [4, 20, 23], "instanc": [4, 19], "imu": [4, 13], "typic": [4, 19, 20], "9": 4, "axi": [4, 16], "aceleromet": 4, "gyroscop": 4, "compass": 4, "respect": [4, 5], "Such": 4, "struct": 4, "low": [4, 5], "profil": 4, "intern": [4, 20], "addition": [4, 23], "few": [4, 5], "pull": 4, "45": 4, "tree": 4, "semantic_compon": 4, "175": 4, "rewrit": [4, 23], "ros_control": [4, 5, 23], "rich": 4, "wa": [4, 14], "motiv": 4, "adopt": 4, "port": [4, 9], "most": [4, 14], "quit": 4, "miss": [4, 19], "diff_drive_control": [4, 10], "joint_trajectory_control": [4, 10], "consist": [4, 20, 23], "identifi": 4, "much": [4, 14], "303": 4, "304": 4, "stretch": 4, "realtime_tool": [4, 23], "81": 4, "302": 4, "unit": 4, "gmock": 4, "cc": 5, "BY": 5, "licens": 5, "author": 5, "either": 5, "down": 5, "below": 5, "my": 5, "company_nam": 5, "tricycl": 5, "control": [5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 21, 22, 23], "event": 5, "pixel": 5, "prefac": 5, "introduct": [5, 20], "johann": 5, "plapp": 5, "toni": 5, "najjar": 5, "kernel": [5, 6], "hardwar": [5, 6, 7, 8, 11, 13, 14, 23], "agnost": 5, "share": [5, 14], "well": [5, 6, 10, 20], "perform": [5, 6], "heavi": 5, "dr": 5, "stogl": 5, "consult": 5, "practition": 5, "guid": [5, 14], "top": 5, "virtual": 5, "talk": 5, "delv": 5, "deeper": 5, "what": 5, "explicit": [5, 20], "chain": 5, "emerg": 5, "handler": 5, "mock": 5, "usag": [5, 6, 10], "openli": 5, "record": 5, "fiveai": 5, "ltd": 5, "best": [5, 6, 14], "focu": 5, "becom": 5, "util": 5, "3rd": 5, "parti": 5, "nav2": 5, "practic": 5, "tip": 5, "hot": 5, "shown": 5, "furthermor": 5, "get": [5, 9, 23], "reus": 5, "inject": 5, "offer": [5, 6], "expos": 5, "problem": [5, 23], "manipul": [5, 20], "path": 5, "plan": [5, 23], "autonom": 5, "navig": 5, "ideal": [5, 8], "made": [5, 9], "mobil": [5, 12], "arm": 5, "extra": [5, 19], "readi": [5, 14], "power": 5, "studi": 5, "ur": 5, "With": 5, "moveit": [5, 8], "ingredi": 5, "scale": 5, "factor": 5, "teach": 5, "pendant": 5, "influenc": 5, "picknik": 5, "inc": 5, "nathan": 5, "brook": 5, "lovro": 5, "ivanov": 5, "andi": 5, "zelenak": 5, "rune": 5, "s\u00f8e": 5, "knudsen": 5, "onlin": [5, 14], "trajectori": [5, 13, 23], "admitt": 5, "One": 5, "reason": 5, "upgrad": 5, "ros1": 5, "better": 5, "realtim": [5, 12, 20, 23], "contact": 5, "insert": 5, "singl": 5, "waypoint": [5, 13, 20], "mani": [5, 14], "teleoper": 5, "involv": 5, "kinemat": 5, "acceler": [5, 11, 12, 13, 20], "jerk": [5, 12], "obei": 5, "demo": 5, "booth": 5, "zeleank": 5, "unifi": 5, "life": 5, "cycl": 5, "go": [5, 14], "_control": 5, "wild": 5, "materi": 5, "quick": [5, 9], "overview": 5, "layer": 5, "aka": 5, "systemcompon": 5, "forward": [5, 8, 13, 20, 23], "done": [5, 14], "look": 5, "modifi": 5, "simpli": [5, 20], "net": 5, "edit": 5, "collect": [5, 15, 17, 21, 22], "semant": [5, 16, 18], "world": [6, 8], "littl": 6, "jitter": 6, "normal": 6, "linux": 6, "comput": [6, 12], "throughput": 6, "suit": 6, "attempt": [6, 20], "sched_fifo": 6, "prioriti": 6, "rt": 6, "permiss": 6, "syscal": 6, "easiest": [6, 14], "ubuntu": 6, "22": 6, "04": [6, 23], "lt": 6, "beta": 6, "blog": 6, "imag": 6, "amd64": 6, "debian": 6, "bullsey": 6, "startup": 6, "h": [6, 10, 14], "p": 6, "param_fil": 6, "controller_typ": 6, "timeout": [6, 10], "controller_manager_timeout": 6, "controller_nam": [6, 10, 14], "argument": [6, 10], "exit": [6, 10], "leav": 6, "unconfigur": [6, 9], "namespac": [6, 13, 14, 19, 20], "kill": [6, 10], "wait": [6, 10], "until": 6, "doxygen": 7, "fake": 7, "mirror": 8, "correspond": [8, 14, 23], "offlin": 8, "advantag": 8, "pipe": 8, "insid": 8, "broadcast": [8, 19], "even": 8, "debug": 8, "boost": 8, "mimic": 8, "offset": [8, 19, 20], "fake_sensor_command": 8, "boolean": [8, 19, 20], "fals": [8, 19, 20], "position_state_following_offset": 8, "custom_interface_with_following_offset": 8, "map": [8, 19, 20], "multipli": 8, "mimick": 8, "return_typ": [9, 14], "return": [9, 14, 19], "on_error": 9, "previous_st": 9, "success": [9, 14], "callbackreturn": 9, "again": [9, 11], "recov": 9, "reload": [9, 10], "substanti": 9, "renam": 9, "on_init": 9, "baseinterfac": 9, "remov": 9, "base_interfac": 9, "hpp": [9, 14], "hardware_interface_status_valu": 9, "rclcpp_lifecycl": [9, 14], "mai": [9, 15, 17, 21, 22], "strictli": 9, "last": [9, 14, 20], "status_": 9, "const": 9, "in_deactiv": 9, "undefin": 9, "refern": 9, "symbol": 9, "node_interfac": 9, "lifecyclenodeinterfac": 9, "rclcpp_lifecyl": 9, "cmakelist": [9, 14], "txt": [9, 14], "spin": 10, "spin_tim": 10, "hidden": 10, "discoveri": 10, "appli": 10, "alreadi": [10, 14, 20], "daemon": 10, "test_controller_nam": 10, "test_control": 10, "diffdrivecontrol": 10, "joint_state_control": 10, "jointstatecontrol": 10, "unclaim": [10, 11], "set_stat": 10, "adjust": 10, "strict": 10, "asap": 10, "switch_timeout": 10, "templat": [11, 14, 20], "demonstr": 11, "prove": 11, "comprehens": 11, "ros2_control_demo_bringup": 11, "gui": 11, "ros2_control_test_nod": 11, "rrbot_system_multi_interfac": 11, "py": 11, "list_hardware_interfac": 11, "load_control": 11, "forward_position_control": 11, "forward_velocity_control": 11, "forward_acceleration_control": 11, "forward_illegal1_control": 11, "forward_illegal2_control": 11, "joint_state_broadcast": 11, "set_controller_st": 11, "claim": 11, "now": [11, 14], "let": 11, "switch_control": 11, "inde": 11, "been": 11, "differenti": [12, 13, 23], "drive": [12, 13, 23], "bodi": 12, "translat": 12, "wheel": 12, "odometri": 12, "feedback": [12, 19, 20], "twist": 12, "x": [12, 16, 18], "linear": [12, 20], "z": [12, 16], "angular": 12, "ignor": [12, 20], "space": [12, 20], "sort": [13, 14], "accord": [13, 20], "position_control": [13, 20], "hw_if_posit": 13, "velocity_control": 13, "hw_if_veloc": 13, "effort_control": 13, "hw_if_acceler": 13, "hw_if_effort": 13, "interpol": [13, 20], "step": [14, 20, 23], "compil": 14, "rule": 14, "prepar": 14, "ament_cmak": 14, "search": 14, "recent": 14, "process": 14, "pkg": 14, "flag": [14, 20], "least": [14, 20], "package_nam": 14, "visibility_control": 14, "window": 14, "copi": 14, "prefix": [14, 16, 18], "guard": 14, "ifndef": 14, "preprocessor": 14, "engin": 14, "friend": 14, "uniqu": 14, "written": 14, "snake_cas": 14, "controllernam": 14, "public": 14, "overrid": 14, "exact": 14, "vector": 14, "store": 14, "simplifi": [14, 23], "further": 14, "parent": 14, "reserv": 14, "importantli": 14, "fine": 14, "ok": 14, "otherwis": [14, 19], "individu": 14, "none": [14, 19], "ask": [14, 19], "full": 14, "joint_nam": [14, 20], "interface_typ": 14, "assign": 14, "opposit": 14, "empti": 14, "constraint": [14, 20], "At": 14, "close": 14, "class_list_macro": 14, "controller_name_namespac": 14, "visibl": 14, "controller_name_packag": 14, "bottom": 14, "test_load_": 14, "content": 14, "specifi": [14, 20], "find_packag": 14, "rclcpp": 14, "directori": 14, "ament": 14, "cmake": 14, "pluginlib_export_plugin_description_fil": 14, "ament_cmake_gmock": 14, "ros2_control_test_asset": 14, "ament_add_gmock": 14, "ament_export_librari": 14, "ament_packag": 14, "test_depend": 14, "colcon": 14, "rememb": 14, "root": 14, "bash": 14, "enjoi": 14, "great": 14, "shell": 14, "certain": [15, 17, 21, 22], "achiev": [15, 17, 21, 22], "These": [15, 17, 21, 22], "geometry_msg": 16, "msg": [16, 18, 20], "wrenchstamp": 16, "wrapper": [16, 18], "forcetorquesensor": 16, "sensor_nam": [16, 18], "interface_nam": 16, "frame": [16, 18], "6d": 16, "ft": 16, "y": 16, "less": 16, "six": 16, "ax": 16, "example_nam": 16, "example_interfac": 16, "sensor_msg": 18, "imusensor": 18, "orient": 18, "angular_veloc": 18, "linear_acceler": 18, "joint_stat": 19, "dynamic_joint_st": 19, "By": [19, 20], "unless": 19, "latter": 19, "matrix": 19, "product": 19, "print": 19, "warn": 19, "use_local_top": 19, "my_state_broadcast": 19, "arrai": 19, "extra_joint": 19, "map_interface_to_joint_st": 19, "field": 19, "usecas": 19, "hydraul": [19, 20], "relianc": 19, "would": 19, "visual": 19, "robot_state_publish": 19, "rviz": 19, "techniqu": 19, "slightli": 19, "custom_interfac": 19, "kf_estimated_posit": 19, "derived_veloc": 19, "derived_effort": 19, "torque_sensor": 19, "current_sensor": 19, "reach": 20, "instant": 20, "mechan": 20, "spline": 20, "guarante": 20, "continu": 20, "discourag": 20, "becaus": 20, "yield": 20, "discontinu": 20, "cubic": 20, "quintic": 20, "pid": [20, 23], "similarli": 20, "eg": 20, "proxi": 20, "wrap": 20, "robust": 20, "clock": 20, "caus": 20, "queu": 20, "segment": 20, "ros__paramet": 20, "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "state_publish_r": 20, "action_monitor_r": 20, "20": 20, "allow_partial_joints_go": 20, "open_loop_control": 20, "true": 20, "stopped_velocity_toler": 20, "01": 20, "goal_tim": 20, "05": [20, 23], "03": 20, "monitor": 20, "action": 20, "control_msg": [20, 23], "followjointtrajectori": 20, "tri": 20, "numer": 20, "nan": 20, "std": 20, "numeric_limit": 20, "quiet_nan": 20, "toler": 20, "jointtrajectori": 20, "deviat": 20, "maxim": 20, "predefin": 20, "joint_trajectori": 20, "trajectory_msg": 20, "jointtrajectorycontrollerst": 20, "follow_joint_trajectori": 20, "server": 20, "position_velocity_control": 20, "position_velocity_acceleration_control": 20, "Not": 20, "yet": 20, "feedforward": 20, "term": [20, 23], "plu": 20, "171": 20, "Its": 23, "oper": 23, "overcom": 23, "idea": 23, "wide": 23, "toolkit": 23, "unreleas": 23, "smooth": 23, "doc": 23, "wg": 23, "meet": 23, "everi": 23, "wednesdai": 23, "join": 23, "announc": 23, "discours": 23, "googl": 23, "propos": 23, "previou": 23, "bug": 23, "tracker": 23, "minim": 23, "reproduc": 23, "regard": 23, "etc": 23, "question": 23, "answer": 23, "2024": 23, "07": 23, "31": 23, "built": 23, "gmt": 23}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 11], "process": 1, "merg": 1, "write": [1, 9, 14], "document": [1, 7, 23], "structur": [1, 2], "ci": 1, "configur": 1, "differ": 2, "ros_control": 2, "ros1": [2, 4], "hardwar": [2, 3, 4, 9, 12, 15, 17, 19, 20, 21, 22], "class": 2, "interfac": [2, 3, 10, 12, 15, 17, 19, 20, 21, 22], "control": [2, 3, 4, 6, 13, 14, 20], "": [2, 20], "access": 2, "migrat": [2, 9], "guid": 2, "ros2_control": [2, 4, 13, 23], "robothardwar": 2, "compon": [2, 3, 4, 8, 9], "get": 3, "start": 3, "compil": 3, "architectur": 3, "manag": [3, 6], "resourc": [3, 5], "user": 3, "descript": 3, "urdf": 3, "run": 3, "framework": 3, "your": 3, "robot": [3, 5], "project": 4, "idea": 4, "gsoc": 4, "2022": [4, 5], "asynchron": 4, "tutori": 4, "demo": [4, 11], "mission": 4, "add": 4, "support": 4, "semant": 4, "featur": [4, 7, 12, 20], "pariti": 4, "from": [4, 9], "present": 5, "2023": 5, "02": 5, "ro": 5, "meetup": 5, "munich": 5, "5": 5, "12": 5, "industri": 5, "confer": 5, "10": 5, "roscon": 5, "06": 5, "fr": 5, "2021": 5, "world": 5, "07": 5, "weekli": 5, "13": 5, "rosdevdai": 5, "05": 5, "diagram": 5, "imag": 5, "determin": 6, "helper": 6, "script": 6, "spawner": 6, "unspawn": 6, "api": 7, "core": 7, "function": 7, "concept": 7, "fake": 8, "gener": 8, "system": 8, "paramet": [8, 16, 18, 19, 20], "per": 8, "joint": [8, 20], "handl": 9, "error": 9, "happen": 9, "dure": 9, "read": 9, "call": 9, "foxi": 9, "galact": [9, 23], "command": [10, 12, 19], "line": 10, "list_control": 10, "list_controller_typ": 10, "list_hardware_interfac": 10, "load_control": 10, "reload_controller_librari": 10, "set_controller_st": 10, "switch_control": 10, "unload_control": 10, "organ": 11, "mode": 11, "switch": 11, "diff_drive_control": 12, "veloc": 12, "type": [12, 15, 17, 19, 20, 21, 22], "other": [12, 20], "nomenclatur": 13, "guidelin": 13, "best": 13, "practic": 13, "avail": 13, "broadcast": [13, 16, 18], "new": 14, "us": [14, 20], "extern": 14, "refer": 14, "effort_control": 15, "forc": 16, "torqu": 16, "sensor": [16, 18], "forward_command_control": 17, "imu": 18, "joint_state_broadcast": 19, "joint_trajectory_control": 20, "trajectori": 20, "represent": 20, "detail": 20, "about": 20, "ros2": 20, "special": 20, "version": 20, "jointtrajectorycontrol": 20, "tbd": 20, "position_control": 21, "velocity_control": 22, "welcom": 23, "overview": 23, "develop": 23, "organis": 23, "commun": 23}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "Getting Started": [[3, "getting-started"]], "Compiling": [[3, "compiling"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [6, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"], [13, "id1"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"], [9, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "Project Ideas for GSoC 2022": [[4, "project-ideas-for-gsoc-2022"]], "Asynchronous Control Components": [[4, "asynchronous-control-components"]], "Tutorials and Demos for ros2_control": [[4, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[4, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[4, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[4, "feature-parity-for-controllers-from-ros1"]], "Resources": [[5, "resources"]], "Presentations": [[5, "presentations"]], "2023-02 ROS Meetup Munich #5": [[5, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[5, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[5, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[5, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[5, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[5, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[5, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[5, "roscon-fr-2021"]], "Diagrams": [[5, "diagrams"]], "Images": [[5, "images"]], "Determinism": [[6, "determinism"]], "Helper scripts": [[6, "helper-scripts"]], "spawner": [[6, "spawner"]], "unspawner": [[6, "unspawner"]], "API Documentation": [[7, "api-documentation"]], "Core functionalities": [[7, "core-functionalities"]], "Features": [[7, "features"]], "Concepts": [[7, "concepts"]], "Fake Components": [[8, "fake-components"]], "Generic System": [[8, "generic-system"]], "Parameters": [[8, "parameters"], [16, "parameters"], [18, "parameters"], [19, "parameters"]], "Per-joint Parameters": [[8, "per-joint-parameters"]], "Handling of errors that happen during read() and write() calls": [[9, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to Galactic": [[9, "migration-from-foxy-to-galactic"]], "Command Line Interface": [[10, "command-line-interface"]], "list_controllers": [[10, "list-controllers"]], "list_controller_types": [[10, "list-controller-types"]], "list_hardware_interfaces": [[10, "list-hardware-interfaces"]], "load_controller": [[10, "load-controller"]], "reload_controller_libraries": [[10, "reload-controller-libraries"]], "set_controller_state": [[10, "set-controller-state"]], "switch_controllers": [[10, "switch-controllers"]], "unload_controller": [[10, "unload-controller"]], "Demos": [[11, "demos"]], "Repository organization": [[11, "repository-organization"]], "Mode switching demo": [[11, "mode-switching-demo"]], "diff_drive_controller": [[12, "diff-drive-controller"]], "Velocity commands": [[12, "velocity-commands"]], "Hardware interface type": [[12, "hardware-interface-type"], [15, "hardware-interface-type"], [17, "hardware-interface-type"], [19, "hardware-interface-type"], [20, "hardware-interface-type"], [21, "hardware-interface-type"], [22, "hardware-interface-type"]], "Other features": [[12, "other-features"], [20, "other-features"]], "ros2_controllers": [[13, "ros2-controllers"]], "Nomenclature": [[13, "nomenclature"]], "Guidelines and Best Practices": [[13, "guidelines-and-best-practices"]], "Available Controllers": [[13, "available-controllers"]], "Available Broadcasters": [[13, "available-broadcasters"]], "Writing a new controller": [[14, "writing-a-new-controller"]], "Useful External References": [[14, "useful-external-references"]], "effort_controllers": [[15, "effort-controllers"]], "Force Torque Sensor Broadcaster": [[16, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[17, "forward-command-controller"]], "IMU Sensor Broadcaster": [[18, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[19, "joint-state-broadcaster"]], "Commands": [[19, "commands"]], "joint_trajectory_controller": [[20, "joint-trajectory-controller"]], "Trajectory representation": [[20, "trajectory-representation"]], "Using Joint Trajectory Controller(s)": [[20, "using-joint-trajectory-controller-s"]], "Details about parameters": [[20, "details-about-parameters"]], "ROS2 interface of the controller": [[20, "ros2-interface-of-the-controller"]], "Specialized versions of JointTrajectoryController (TBD in \u2026)": [[20, "specialized-versions-of-jointtrajectorycontroller-tbd-in"]], "position_controllers": [[21, "position-controllers"]], "velocity_controllers": [[22, "velocity-controllers"]], "Welcome to the ros2_control documentation - Galactic!": [[23, "welcome-to-the-ros2-control-documentation-galactic"]], "Overview": [[23, "overview"]], "Development Organisation and Communication": [[23, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/humble/.buildinfo b/humble/.buildinfo index 2a5a8dcf00e..251b8c6cc73 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: 20880dbd0efc9138dbb947fe813fe010 +config: d663f52c8f7f353b94604f0a0b61ae39 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree b/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree index 27bc6f0ad94200406c9a2f77dc0b066951fb63b5..f4f8c34b8075f1921aed66b0a0c74fefa19f5c23 100644 GIT binary patch delta 1256 zcmdT@-AhzK6ld=4y1U-H?$xxY6%nGBgmv!c+`E13zGz9oN>CISTI!mp;3o94njdLv zpkxeoguuVR$mK%w(w7g?Q^8{4n?)dDFWO3=QqX8bo7ig<%nyb+zcceY=XYjgvko@v z+ykD;<%~OwRK59nvaPeRquNfGxW!0V7FNkstebX1u@%cAgqT{ZVYFxo8yn5osHWMW zGFqOIojYjEi*7jYmA8n-8j{YtiijU3iiF;vriL-U2V(;(s-c1M%ynF_Ovsi>30P|s z4g^WqG&Myfifv#+=ZtCZC73zu6P^0~DNiA(#9Bl(B0M*fL&vCGKKj>Q8l>YxKBpY_ zl#A<`qD*U621S zxsROjp_P1tcnMMGIn3|-y{strYsZpX(HRzY;%PoxERz#PPvjkL58P~e9lJQ( z93Hlg3tn&TV#MIvVX+-nBa)mRuJUsDIQ(q5s<3)vH={`N8V?Fv6?`uKTiMl_=R delta 1338 zcmdUvOGs2v7{|HSJ6^|`>)boqgB*0ARS4sKKQw#66lO7~8^Z+Wp=s)*6^M;lDmA?p z#=-d@BBMncle7yRX=Tx(h%gE41?7Mn7olZB22ppYKqhlr!TE2_`SG3qcm5v-mdnp9 zms6*0gU`n(A0Y}YZHJm8UCqUY5e^$+RWU+>Xz;qB8@v$F)KJ*aBC^`p5R~Px-Vh8G z!+f249rBH_=6T{0O?Kv@%h6hM)ZaxQuZKnl+Yg&>3rg(JQ9*aJlIT-(K~^MHl6hSb z;eLoRGLJ{L>8b$1J9LZ_G@q(Vs;X#$!ppj%!Ol1KT9~Y+vdqBxm@QlN@=}SYmIyK= zr(Hhyy4k@Xm*?DHySWz)^<|lx_+xp0^2VWe!_8>GLz~t9QTJNZQS(X72tg3$K(s0o zxD3_<+&I&SW_DG97cu$hUhpI%%A%NhLs8cR1CnFT8nga-C1Jh~&yh}zHzdVSdBqR} z;2zKcXdhv0=DyfoiqJtQV?F3<%PB^Z3@cDs({xExp#EjX4-Umzdk7J6-)f-#i_4CB zdYjViq6y%vWIO){lkMhE-`sDpm=iFayGmOptRU_EmA7!^Euv|6I*=MPH|$>`XjB+& zN|ZXec>f}S`xnVaTi0gel#pSGvSh=QkU6=$8XtrB3l|$t6w#KlEZK3QD7*M`I*TnI z3wu(tkq@JBG6v3W=Zs5Ngp~_AhKXAIw9Rp)8xCA_=HrD=jt?aEwB_s|;aVZ*No{;2 zaqA$HOX6`mBiRTAk_n4^Ht$#<@yIL2OX3ZA%!MsbF~$5WU~YfNl5qRA<5$7Qex|{m z=CBNHj2^jL>YVcb>n7u~0mf1eo(;Gb&#q`AZv8BlSe%^ZxRnQ~FXtw{QRiMN_zt~M B&A|Ww diff --git a/humble/.doctrees/doc/contributing/contributing.doctree b/humble/.doctrees/doc/contributing/contributing.doctree index d0493a6bc83d474d184d0327a073c1585837292e..27ad742336282f327bc072a0d18bdedcb6bac54c 100644 GIT binary patch delta 64 zcmaERl=1CR#tq?&h9=2Hh3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e TrYXj0mIkKD2Bw=k7*i7g!$}j{ delta 64 zcmaERl=1CR#tq?&hKAX>>6s~&nfjKN$;p<G5g{6h1fnkcdSyHm4d5Vcy TT56(+NwP(1V$$YlM$t9^v2YX_ diff --git a/humble/.doctrees/doc/gazebo_ros2_control/doc/index.doctree b/humble/.doctrees/doc/gazebo_ros2_control/doc/index.doctree index eaed99208cf3ceda5148ced7bb8051375625ecde..c5bddcd93d5351e3628a958dc66aca14842734ac 100644 GIT binary patch delta 129 zcmaF3mFeMDrVSR1MkdKch3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e hrYXj0mIkKD2B!Lx_i@N>ZfAU5NuFMb&3md<6s~&nfjKN$;p<ZfAU5NuFMb&3md<>6s~&nfjKN$;p<>6s~&nfjKN$;p<18IKhM0H=c!t^fc4 delta 64 zcmZ4digEEP#tk}*hKAX>>6s~&nfjKN$;p<G5g{6h1fnkcdSyHm4d5Vcy XT56(+NwP(1Vp4M`>6s~&nfjKN$;p<>6s~&nfjKN$;p<>6s~&nfjKN$;p<6s~&nfjKN$;p<nBC#tlJ?MkdKch3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e ZrYXj0mIkKD2B!LxPjY!|KEqg?0RS7870&nBC#tlJ?MuyqB>6s~&nfjKN$;p<G5g{6h1fnkcdSyHm4d5Vcy TT56(+NwP(1V$$Y9#?5vBi&GQj 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 b88d1eb760cc8c415a87dc13860e9d737dfaf41c..2848cda52d70a39961ef6ba268b99e9a88f6d6ab 100644 GIT binary patch delta 64 zcmZo~WNB|?+2F@$Xp&r1n4S}#t#6rTW{_ffuAZ}}3u delta 64 zcmZo~WNB|?+2F@$XqcUwo|#gasc&hSoNSqFW@?#aXk=+%VQFD$V3=ZVmXvI1o?>E_ TmYQf{l5CNhn6$Z`k>fuAfzcD? diff --git a/humble/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index a8390b7984afbf015fe162d8f805ad5e8c997e34..62553d49f7f4cf1907d58070e6cfcbaf2d30e723 100644 GIT binary patch delta 64 zcmezKh4If9#tn9ih9=2Hh3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e TrYXj0mIkKD2Bw?y8F?!K+N2ZZ delta 64 zcmezKh4If9#tn9ihKAX>>6s~&nfjKN$;p<*E1eE1OV{G6}G5g{6h1fnkcdSyHm4d5Vcy ZT56(+NwP(1Vv_#k37f<>*E1eE1ONzm7Ulo| 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 0f3d5cd69b0de26c949dcf4667a354467c5bc6a5..cafcd6e3d37231f21a6184c276404fec4f4c9c0e 100644 GIT binary patch delta 62 zcmeB_>Xh2h&thnjTvV8z6Q8YbnPz5?Vwz@QVPIsQWME=unPzBdXklS)Zf<6rYHFHd RoMvfYnrvXY`2dS22LMZ85xf8Z delta 62 zcmeB_>Xh2h&thnpotvJSQkki5X_=gCnQUfinPg~WX<%V#VQFBPVs4g{Y-yfiVwRSg RXkwCVk(!va`2dS22LN3-66F8@ 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 4c5f08b68cc9e7a9b66df0ffbf44283cc51b1341..8d3a4769c4ed1a576d1a23f53892def7a65c6442 100644 GIT binary patch delta 76 zcmeBfWbJNb-4MlSWRhG|n4S}#t#6rTW{_fE_ gmYQf{l5CNhn4~|6UwpExfN1j$#_c;8886!b0D_?xJOBUy 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 9e3bb4d77d72bd6700dd2a8f60c61ce5975ed3e7..23283d26269b14c1d14b595c1465895bcff65158 100644 GIT binary patch delta 64 zcmaDhpXu3rrVTNSh9=2Hh3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e TrYXj0mIkKD2Bw>P86*1uuUiwY delta 64 zcmaDhpXu3rrVTNShKAX>>6s~&nfjKN$;p<G5g{6h1fnkcdSyHm4d5Vcy dT56(+NwP(1Vv_!3Ljm#0zgwg?A7CtP1^{B-7uNs) 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 d2151c8b64c2650092025e87f6ef9440e54aeeef..c71866ca25a8188dbba4813f2b2ee64f9ef70c72 100644 GIT binary patch delta 69 zcmbRHk7@2drVTNSMkdKch3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e ZrYXj0mIkKD2B!LxCvb^xUdmXp7XTkV6|?{V delta 69 zcmbRHk7@2drVTNSMuyqB>6s~&nfjKN$;p<R_j delta 73 zcmeBQ!PLKkX+sR7kzsajdS*&xroN?RaG5g{6h1fnkcdSyHm4d5Vcy dT56(+NwP(1Vv_!3L4NVcwR~cmcQb}e0svJI7M1`2 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 a4210c4ce9f0aa439d786fca3508a19d6cf9a9d4..22fd4f948994d2d0105182a422521fd4b5e2e379 100644 GIT binary patch delta 73 zcmdn8mTAjcrVUYyMkdKch3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e drYXj0mIkKD2B!Lx9i>z!cTVHkyqEF&6aZKt7dZd` delta 73 zcmdn8mTAjcrVUYyMuyqB>6s~&nfjKN$;p<z!cTVHkyqEF&6aaK-7-9eb 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 e015b2b2a44afc41c1ee32888b06b1a628066669..639fe1dd954cf42c91d2fca1d0217c92a6848347 100644 GIT binary patch delta 73 zcmZ4UmTApfrVUYyMkdKch3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e drYXj0mIkKD2B!Lx1^L7$Z{-!;yo2$}765T|7b5@w delta 73 zcmZ4UmTApfrVUYyMuyqB>6s~&nfjKN$;p<6s~&nfjKN$;p<6s~&nfjKN$;p<G5g{6h1fnkcdSyHm4d5Vcy dT56(+NwP(1Vv_#kKpyeQ0=%M|cQC%M2LMhK7R>+v 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 5ace56deede094db621d8c366ec96f9161fb7abb..3ed5e82795f01f253144760047b56dbee39a8033 100644 GIT binary patch delta 73 zcmaEHknP1mwhd8?MkdKch3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e drYXj0mIkKD2B!Lx?>VV9Z)DuQk&)4SJ^+WH7f}EJ delta 73 zcmaEHknP1mwhd8?MuyqB>6s~&nfjKN$;p<VV9Z)DuQk&)4SJ^-WX7<477hC`U delta 73 zcmX^2mGRtH#tl)7MuyqB>6s~&nfjKN$;p<=4N7=-`; 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 5151556d5173daf72bebbab878dae93112abc53f..5a266bc50de93315c62108bd7d28e27c882bf863 100644 GIT binary patch delta 76 zcmex4kLl+;rVUYyrY6Znh3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e grYXj0mIkKD2B!Kc`N@+%Mu<#4$Irca9pmX<0LJ6s~&nfjKN$;p<WSJA!)RoZTvV8z6Q8YbnPz5?Vwz@QVPIsQWME=unPzBdXklS)Zf<6rYHFHd aoMvfYnrvXIKlviR=;Rn-xy=U|y|n=lFck*? delta 71 zcmeB)>WSJA!)RofotvJSQkki5X_=gCnQUfinPg~WX<%V#VQFBPVs4g{Y-yfiVwRSg aXkwCVk(!vKKlviR=;Rn-xy=U|y|n=>c@{7L 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 5de8ed49e66ce7438faa88cec0d348cc5cdb4c87..c76c655a59512a0fb25c82cd0703d943469e8462 100644 GIT binary patch delta 127 zcmaFg!2G^}d4mt5p-FO4VR}w{w!USWnL&zanuUddk$IAViJ4`Zp{1dPg}J%8nQ^MA jX^L^0rGaU(f$8R2My(FgwN0*N)R`P#EVfyyE7S}Clz$~N delta 127 zcmaFg!2G^}d4mt5p<#AzdS*&xroN?RaG5g{6h1fnkcdSyHm4d5Vcy jT56(+NwP(1V$$YXMy(FgwN0*N)R`P#EVfyyE7S}C3Y{l~ 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 0fc8a803eda0b6603fb6bb3ffce7133e81f2cacd..76d586c2fdf162c1e3bca62e186d606ac1cce1bd 100644 GIT binary patch delta 67 zcmX@;d(d}71f!8ja#3M=PJFh$Wty2mifNjKg@KWIl7WetWtyR-p@oIHxw)Bfs;Oy; Wahj!pX|jQ-{$xQx(arN2l~e)C-4i4L delta 67 zcmX@;d(d}71f!8*c5ZrRN@b?LrDbxmWwM#6Ws;$hrGbT|g{6UEin&=*vZZ;7iCJ1| WqKQeeMQUP_{$xQx(arN2l~e)af)q^v 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 4b458f6e8e962ae16411a0611439218743a8f1e3..63acc0619f7fa4cbc76ac6ce32ec93b51734820f 100644 GIT binary patch delta 127 zcmeBK&fK${d4mt5p-FO4VR}w{w!USWnL&zanuUddk$IAViJ4`Zp{1dPg}J%8nQ^MA kX^L^0rGaU(f$8R2#??nj*EYG9QD^du9om~W9KXX20FikoI{*Lx delta 127 zcmeBK&fK${d4mt5p<#AzdS*&xroN?RaG5g{6h1fnkcdSyHm4d5Vcy kT56(+NwP(1V$$YX#??nj*EYG9QD^du9om~W9KXX200);TjQ{`u diff --git a/humble/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/humble/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index 6e656d56fe3f0dee65c728557dcac1ff4bb18e00..eac60527ea165d96af9c0b5bdc7f85996d18516d 100644 GIT binary patch delta 67 zcmcbVaw%nl2BVQla#3M=PJFh$Wty2mifNjKg@KWIl7WetWtyR-p@oIHxw)Bfs;Oy; Wahj!pX|jQ-{^UX)(argcj|~9WSrj_} delta 67 zcmcbVaw%nl2BVQ-c5ZrRN@b?LrDbxmWwM#6Ws;$hrGbT|g{6UEin&=*vZZ;7iCJ1| WqKQeeMQUP_{^UX)(argcj|~9t{uN{Z 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 34fd38a16ca4fcd742b9855e88658f4f3e3cc002..4561dc49cc132148d583c4827234960d6b5cc628 100644 GIT binary patch delta 64 zcmZ2=jd|5I<_!*vh9=2Hh3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e UrYXj0mIkKD2Bw<}8F#(}0H>6s~&nfjKN$;p<68~a#3M=PJFh$Wty2mifNjKg@KWIl7WetWtyR-p@oIHxw)Bfs;Oy; Rahj!pX|jRo=5og6asXBC5)J?W delta 62 zcmbQ|FwbFw8>69Nc5ZrRN@b?LrDbxmWwM#6Ws;$hrGbT|g{6UEin&=*vZZ;7iCJ1| RqKQeeMQUQw=5og6asX$>6E^?= 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 db1d5e23189af1781ca6b65317e22f77a402a87a..64f8410ce3a3b7614c4cc9cc47fe28361c600067 100644 GIT binary patch delta 127 zcmcaSf${PL#tjLKh9=2Hh3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e krYXj0mIkKD2Bw=QGPYZju5I!}MzhHY76zNw+b-b(0Gr??xBvhE delta 127 zcmcaSf${PL#tjLKhKAX>>6s~&nfjKN$;p<G5g{6h1fnkcdSyHm4d5Vcy jT56(+NwP(1V$$Y%#x7&hwN0*P)SZ0SNPTmksUtT4@%|@+ 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 1dbffee27d2aead8f027c20563f42b8dc7812c46..06b7abf963b6696e9bc8afc0795bbc8a99ea6f20 100644 GIT binary patch delta 64 zcmZoYz}R|#aYF#3p-FO4VR}w{w!USWnL&zanuUddk$IAViJ4`Zp{1dPg}J%8nQ^MA TX^L^0rGaU(f$8Q(#+En$jH(k4 delta 64 zcmZoYz}R|#aYF#3p<#AzdS*&xroN?RaG5g{6h1fnkcdSyHm4d5Vcy TT56(+NwP(1V$$YD#+En$o`MuO 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 8384ffeabc3384bbacefb6d00ef677e593849810..49c25d84583bbe779024a058c47dc9fa66b5c33c 100644 GIT binary patch delta 69 zcmZ2_m1*f!rVVP0MkdKch3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e ZrYXj0mIkKD2B!Lx{Y&jPPiN#?2>=1g6#@VN delta 69 zcmZ2_m1*f!rVVP0MuyqB>6s~&nfjKN$;p<=;y7ApV% 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 7a15a40986d1c995558fb7a4a9f26224ea1e9c70..b1092ead2e74a43904f8c964b0b0de8d79003117 100644 GIT binary patch delta 69 zcmX@Img&e^rVTZWMkdKch3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e ZrYXj0mIkKD2B!Lx<6G@Fzh%5W1ppQF7H|Ln delta 69 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 QejQOmDR5D=`6gNTUv7;gcK`qY delta 37331 zcmeIb2Y6LQ*FVZWDJPYXe$r185)wk%*(D@ELT@2-kRC!vfFqDl1pyNUg~T9%9au^S zMGz^WZbiC+6lqp0G`oNh6j4Crt~Il>A-?bR|9|t{@80j;=laOZTEDesO`kn`&77T0 zD?S&N;y=eyr^Oo=I$jY|pBy)8%*g3usw(2r)ARGw^A$OLM5--4rFnYu^pw<*Y08NF z^t6$ZQdp2DN%_qS@WJ*D*WXsD} z#Ps};g(y_4JWKsV3ym1ASs)km@saG=6)n4URL4tFy$$n~eRFtX)2dLHv z4|T@~i`p(tR{PA4Q@UEhQq;I$8;n>f2dQ3>jn(Hm2BLD}qJf#}@E60> z{I0Fko|%ezGCWJY+&*6QiVqT+sHyS(YUxlHHOK0KsRPuWy&9=u2_C9v>y~IW0BVAi z2sPQFsOtlh)JDT>YFNi4wJ4pk#v%r>VnC_4VpVU2rlAFIwK619{kaRpe(L=(?&^?e zZ?&N%T0I*Yt@aB`RhL`*)UkO1OF|WYwK&3EJz;I8&JT@O)$jndQRgT%E-X>~wMnoL z4QJQL(JoaLPGiQ8ESRR+BD<6r1Esk&AqD@d8oi?;{a?B}KdreqqM%?zfh{H9Ca0xI zvQ130iHbNPRZg|Zl4z6C(o)k$RE^&CZwAXhr1q?nTs21xN;k&IKP0P@3dh*!cmDnG zfOf%(w|aJw{9hg$|2^YjNVN379tN{QBy|`L&7QrQs28$Q{x9qPjAkv3?zbub)cyav z3(>#t{(ngAS$7?~+^>V$Dbe@Q5cr3rby6Bbpv|yA==m3}4dDsyYDx1<>`G!kViS%Hvdr9*;;{o4YvuXzBhx*H+q`l*(JOntHNP!orBRX>md)bP=5j75PKghf5AxF|fO_Fo)is^F`E+ASkh zy(BuR)g#5fudOQ*WMj?5vO>=@vge{S3wXK3$EycoEW9AJa?(l}D79j%rFtdETfN*j zMKvjH)z%e>ICe?E7s3l2!qn10C-vs=a9oy9@1;;+2}(Ps;(GdMkniteg<+Sm(PTBo zSmg8t?a{0*SG%a9lF3&6-aT6zD?3%bc2y5))mVL1wnF9iXl+w6uCcZp_3}Pv7@r?! zR_AxJz~wa&A!=r8cXeO$bb1Kz)pyqDY_)BYq<+wXt=X<>){Bv^=ev1G# zYekbs3u;;GHjidh>OajWd1SgGrljSKlvDF;a`O}^uV6$<+6Y^Ix}0XqFA(!brsm}r z=H>tU8TAjTed;8qd7-Jx16r%g+IT;jR{xOxUy`$x_5aJ$3Z8pS_E$IMd#Mduc&Jwk z|NG|{+o05LM(Q=OQq>XJE!40AZyLL?>X7)X|KbcgyU?$8yYPQLyGCTksC)Ch)r+xw z|MdUREc5Eu;n6IU{%MveX=!=Q^G8Y}o2RGC%~K0)c{st+MvkbU~qsQ>6my*@+lr-GYG*^4~ zeC&anrbeqfGLqRl*2xhaRr>&MsJ<-+tEX`@XKXd}7c=$4s3hLt4_5@Mf?{Kvy88=4 zA8i1(1w|0Ux*vCT@X?fn0QOQyV}f>ZmqdDzvf{=dQ!N>dFLiCLYW|oO>Y84S)qlHj z3+dWgJvS;%9n!K3+aakTp{98nmr3ehnh9Pl9RNcCJ$m^%l&34qn_`=*-he~@+z2+MKP zd2ordU{;HkB$+Hu>Z&D8oFhmvL>-{AE|Tv{&}gt^P`i-E>K;V>l|Ry_z(I z+(UA0##fmwxN=DDs8_;?%t7hFP^`p#k~UV)g<93pSDZ~Xj*!z3i#p zc*R*TsjHX9@GiTy#$A1FDecNV)!|E>1s4(-dvh3nGSXRaMXb4Sk4&&0gPWnz&O)H- zy(~@e#jr7sDNi$R(1)m%CIk@5cd;KXO`vxLT^z~;v?0}j2drTFrqn~dxy)H;tF9TE zsaCFbb_}NKr*;nHF9L|D!>g;&eLNu9Me+WAkERK&v}s}fVf1r5;Xl!`{Vy7MV_ za#3z^-sI6$v#R3kG}Y|U6wth~HztZEls$$5no0Ip3TPhLn-FEDAdUhH1@RQnM6x%f zfM$?Afhe3cB@OJ&h_q6WNCC|mdlFGJUF^ve(DbmU5JfY?o=O4D2fK|Zng@1~0-6PO ziKrT)WTLJUr4VJJAdLb~3Yt?;;zD6M1+EliP;ifuv>+;wf|eBcQqYQmha}A;Du9A4 z3T_eBny63;+EDO-u(m{9BdQ%yG_vjODQHAN2d5GYLx}81fj~hg3T{)9&P3fMstZwJ z6m+G4hOs@HC>p%>ZWPdvwdYU}L_v27XnfjxP(b6--jjkml(rX9G$;qydlN}x(cXtB zM+*8<@FQXUh@v59?@s{@HTx4p(de=dAj*M)ffUfVvJWDvfzytNb-oTIG)~IRpL>4x zb)mmA8!P4J$g!NG@ltLsKF&EBGv(%?Jjh%AyqBeIY*EKIDNJFsPyzl_$XcU&4hecdwG8&2HW@RnsXf&3az5D}{(a0?~ulWHf?HuxA=wV=N70%wiemXegJP zHy_{}4d-&R&xq?xlZJG;`O`C;qhXENKlL+{(aaNk8rS%odHiUDuqN35)kyCTt?BYtZ zWIie5*YU!pdHDJ>i_e!<`lf^jN)`Yo_8(s4<05x)e8qtF{Ef ztRg=TwPZ^tHFZl*_12a|Oh(g=k}2dj_ft!^#<vQde{Hw; zL5gN^Q_t@#P@mt{3I9byqt`6qkaZ6CUT3!ls#~{5sYj|usL?z7qclKG+ny>kM>CRo za7Vss+dWE1LM{rdr4~<9#ZZ=6(P4{^dU~h3`q8djwTCuXjopSv7szj|4p7f+Uxej# zb5gfx-36=qKwDulIjIxgQPdCL5?yHyQcWdjb28GZCcWL+g(f0F5P80d6^5UTG^^|0 zZiQQ-;&;+b=+wica40moiQ09K2U_+eq`B~ri36O}hkJ_Euiwrv(_}+4@az@2iMn8K zkU6P%{HUsmR&eDTIR*hY2szcHA*7y_Y2)imh#I!nUER62y{h*0UUCK9H4FB7Ii*rM z_1UJrI^wV9@9pVOX@5W&szvX(s0a78G1C;q+*I$E0@0JLKHO0KSkS4@L;RQ@{0iOwd)44aaXD#5Mh zIB2`weF;{l3!eXdS?uU`cZ2`m^Mz(!!aN~J+vO#^=kxD`bD`lh!9!~wEp#&pg0?V5 z=o)soYq{l$*GWP z^XLQB*}^k$sF`^nB#VMG3?C|_L+K%t?Qf;t`~QkkZspB-JVz+`d!J;%nJ8fl8w{Fx zq|ndzZxv+nDO&I}A<7ww)~0yR&3Q)9a-K02wELSTjVe#5zGrsAM}!&nMl>7);rGn} zbDukG(w;l)aIEG3I>Gafj?X(fJ@4qe%h5dQ-oMkIiy7cQ7yRd{Ro`>l@yEZ@qGF8K z0&cr|cNUs2_I6kdR-4CVujX><73YZDB& zdokdaNxOI0qmx;XA##*wh-O{ZsK%t_obuS10G;E!Yjw_^H8nCpsb`~FAVTmgaQ%DP zw7qVg{W|`SDiUCkO6JB`8{$7NEymjDrMZ7EHFzZXPUC$!eM6(U(>Hi)(>M4Ge*W)z z8tUD45?%p8@(mPT(Sju3#ST8p@o8YsbZyXJR+YUqM)u{}!88;sk$fE+))6ezMz!!Q zcJNvB_Y{k?pE7;d_z2#RmlG5U>wEcrR-c6xy)W9S-oD>W68?ZSXM>X9%2D5!Qvc%> zT0^f*;VNjm)0PbKD8J?PC`zrb#|d)70ur_Uqy6TY;byU4DBLUZ`wh}v{6jVO34U`I z)YG;F?@k1(&8q{zIwinK^A`N$%swms-mELNY#0BPZg8>4FI02#^?%J%uuuyp!Fj8H zReiFi%MRM1NdKBrupSBV)()@rKNH8vwI}^w?b>%`*FJ z_UTM7vZbM0ioKDF#*4n*QXM6(M7{;rfaD18y_bFP6brfW1Iw?4%oIp_=(%N zJ2Y@!JxW84zqu!d1!^aTSz;o=e#(L)qtxQ;05?l4p%7hZ>7q@YZSiz~&D&A5>IF+f z2dFuV9g(}Nc2bi}9(`FpDB(se&#pI}J>FAr z~}P^zpOst~0I|XU+z#tg8Hl41ByLEGzNp8JQRwFOs$4$KmM ze)Q_Hl𝔨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
+
- 8610 + 8600
-
+
@@ -223,7 +223,7 @@

Maintainers
0.70
-
+
@@ -424,7 +424,7 @@

Maintainers -
+
0.90 @@ -450,15 +450,15 @@

Maintainers -
+
0.23
-
+
@@ -466,7 +466,7 @@

Maintainers
@@ -8098,7 +8098,7 @@

Contributors -
+
@@ -8786,7 +8786,7 @@

Contributors
@@ -8815,7 +8815,7 @@

Contributors
@@ -8873,7 +8873,7 @@

Contributors
@@ -9134,7 +9134,7 @@

Contributors
@@ -9237,7 +9237,7 @@

Contributors -

Built on 2024-04-06 at 05:31 GMT

+

Built on 2024-04-07 at 05:31 GMT

diff --git a/humble/searchindex.js b/humble/searchindex.js index c9e12790a21..6b7ac3e1315 100644 --- a/humble/searchindex.js +++ b/humble/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Humble!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45, 46], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48689": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "130": 0, "8610": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "35": [0, 50], "5628": 0, "09": 0, "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 11], "04": [0, 9, 56], "06": [0, 56], "03": [0, 21, 46], "26": 0, "14": [0, 17, 50, 55], "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50], "01t10": 0, "36": 0, "22z": 0, "435": 0, "64346": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 44, 45, 46], "578": 0, "406": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 52], "70": 0, "03t11": 0, "19z": 0, "238": 0, "214": [0, 33], "90": [0, 29], "05t08": 0, "25": 0, "35z": 0, "480": 0, "111": 0, "23": [0, 4, 33], "04t06": 0, "34": 0, "04z": 0, "1435": 0, "1147": 0, "80": 0, "1155": 0, "604": 0, "52": [0, 48], "261": 0, "237": 0, "91": 0, "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 20, 22, 24, 25, 29, 31, 32, 33, 34, 37, 43, 44, 46, 52], "develop": [0, 1, 4, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 46, 52], "inform": [0, 1, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 4, 9, 24, 35, 44, 46], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 35], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 50], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 3, 5], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "46": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 55], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 6], "09t10": 0, "21z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "268": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": 0, "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "125": 0, "22t09": 0, "27": 0, "11z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 35], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "github": [0, 4, 6, 10, 17, 29, 36, 54, 55, 56], "action": [0, 3, 5, 8, 44], "bot": 0, "28": [0, 50], "87": 0, "11t09": 0, "03z": 0, "bailac": 0, "68": 0, "08t11": 0, "49z": 0, "olivi": 0, "stass": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "49": 0, "26t02": 0, "31": [0, 56], "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "wiktor": 0, "bajor": 0, "99": [0, 9], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": 0, "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 17, 33], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 7], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "52z": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 16, 20, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "22": [0, 9], "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "najjar": [0, 7], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 17], "56z": 0, "970": 0, "21t01": 0, "00": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 21, 41, 44, 46], "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "166": 0, "151": 0, "03t06": 0, "04t20": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "96": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "124": 0, "01t20": 0, "108": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "107": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "103": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "andr": 0, "montano": 0, "anfemosa": 0, "63": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "171": 0, "156": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "60": 0, "14t09": 0, "88": 0, "196": 0, "23t02": 0, "78": 0, "79": 0, "219": 0, "199": 0, "10t19": 0, "210": 0, "27t13": 0, "181": 0, "25t01": 0, "69": 0, "14t18": 0, "163": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 43, 44, 45], "receiv": [0, 2, 4, 20, 29, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 20, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 46, 56], "consid": [1, 16, 35, 44], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 37, 38, 39, 46, 47, 50, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 4, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 35, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 29, 33, 35, 38, 43, 44, 45, 46, 47, 48, 50, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 4, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43], "give": [1, 7, 9, 17, 19, 20, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 4, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 56], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 20, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 20, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44, 46], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 37, 41, 44, 46, 50], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 4, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 4, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 35, 37, 44, 46, 50], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 45, 46, 50, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 20, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 48, 50, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "sphinx": 1, "doc": [1, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "theme": 1, "gener": [1, 6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "locat": [1, 3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "control": [1, 7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "org": [1, 6, 11, 32, 34, 52], "while": [1, 4, 6, 7, 29, 33, 45], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "written": [1, 15, 23, 28, 29, 37], "respect": [1, 3, 4, 5, 6, 7, 20, 44, 45, 46], "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 20, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": [1, 4], "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 4, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 4, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 4, 7, 8, 45, 46], "compat": [1, 2, 4, 7, 15, 17], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 46, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "detail": [2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 49], "joint": [2, 4, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 47, 50, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 4, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 35, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 35, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 20, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 20, 24, 29, 36, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "start": [2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 56], "stop": [2, 7, 8, 9, 12, 16, 19, 20, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 20, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 20, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 20, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 4, 5, 9, 12, 14, 15, 16, 19, 20, 25, 33, 35, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 20, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 20, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 20, 29, 33, 44, 46], "initial_valu": [3, 5, 20, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37], "link": [3, 4, 5, 7, 8, 12, 29, 33, 35, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 4, 5, 17, 29, 35, 41], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 37, 44, 45, 46], "For": [3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 44, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 38, 47, 53], "100": [3, 4, 5, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 13, 14], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 46], "example_gripp": [3, 5], "humbl": [4, 17, 29], "bug": [4, 56], "want": [4, 8, 9, 17], "thrive": 4, "roll": [4, 29, 35], "stack": [4, 7, 56], "earlier": [4, 6], "done": [4, 7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "ros2_control_ci": 4, "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 35, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "figur": [4, 45], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29], "executor": [4, 9], "custom": [4, 13, 14, 17, 20, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 36, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 45], "dynam": [4, 15, 21, 29, 33, 37, 54], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "ros2_control_demo_hardwar": [4, 13, 16], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 13], "joint1": [4, 13, 14, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 20, 24, 29, 31, 33, 44], "pure": 4, "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "ign": 5, "meet": [5, 56], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 14, 15, 25, 35, 42, 43, 46, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 20, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 20, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 9, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "part": [6, 7, 13, 29, 37, 45, 46], "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "intern": [6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7], "175": 6, "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 20, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "81": [6, 33], "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 45, 50], "scale": [7, 44], "factor": [7, 35], "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 15, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8, 20], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irrelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 20, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 16, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50], "frequenc": 9, "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "info": [9, 11, 12, 15, 29], "std": [9, 29, 35, 44], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45, 46], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41, 46], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": 11, "int": [11, 35, 48, 50], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 20, 21, 24, 31, 33, 35, 44, 45, 46, 50], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33, 46], "vacuum": [13, 20], "flang": 13, "off": 13, "rrbotsystemmutiplegpio": 13, "example_param_hw_start_duration_sec": 13, "example_param_hw_stop_duration_sec": 13, "example_param_hw_slowdown": 13, "flange_digital_io": 13, "digital_output1": 13, "know": 13, "digital_output2": 13, "digital_input1": 13, "digital_input2": 13, "flange_analog_io": [13, 20], "analog_output1": [13, 20], "analog_input1": [13, 20], "analog_input2": [13, 20], "flange_vacuum": [13, 20], "suction": 13, "grasp": 13, "multimod": 13, "multimodalgripp": 13, "parallel_fing": 13, "temperatur": [13, 17], "feedback": [13, 14, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "choic": [13, 50], "matric": 13, "rrbotforcetorquesensor2d": 13, "forcetorquesensor2dhardwar": 13, "fx": 13, "tz": 13, "kuka_tcp": 13, "fx_rang": 13, "tz_rang": 13, "temp_feedback": 13, "calibration_matrix_nr": 13, "mirror": [14, 20], "correspond": [14, 15, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": 14, "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 20, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 20, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "hardware_component_nam": 16, "hardware_compon": 16, "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "diagram": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "tutori": 17, "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "interface_nam": [20, 39, 40], "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "list_hardware_compon": [20, 23, 24, 26, 27, 28], "faster": [20, 24, 35], "genericsystem": [20, 24], "use_mock_hardwar": [20, 24], "ident": [20, 22, 24, 29, 31, 45], "unless": [20, 43], "nan": [20, 26, 44], "generic_system": 20, "wheel": [21, 32, 34, 35, 50, 52], "front": [21, 32, 33, 34, 50, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": 22, "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35], "rotat": [29, 35, 44], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 37, 39, 41, 42, 44, 46, 50], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44], "wrong": 35, "behav": 35, "correctli": 35, "curv": 35, "wheels_per_sid": 35, "number": [35, 50], "slip": 35, "account": 35, "present": [35, 46], "enter": 35, "huski": [35, 55], "wheel_radiu": 35, "slower": [35, 45], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50], "odom_frame_id": [35, 50], "pose_covariance_diagon": [35, 50], "covari": [35, 42, 50], "tune": 35, "sampl": [35, 45, 50], "001": [35, 41], "twist_covariance_diagon": [35, 50], "speed": 35, "open_loop": [35, 50], "cmd_vel_timeout": 35, "stale": [35, 44], "velocity_rolling_window_s": [35, 50], "old": 35, "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": 35, "numeric_limit": [35, 44], "quiet_nan": [35, 44], "min_veloc": 35, "max_acceler": 35, "min_acceler": 35, "max_jerk": 35, "min_jerk": 35, "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "write_op_mod": 35, "motor_control": 35, "500": 35, "millisecond": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "state_publish_r": [44, 46], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "deprec": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "hold": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "cumbersom": 46, "controller_st": [46, 50], "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 48, "rqt": 49, "nomenclatur": 50, "unstamp": 50, "concret": 50, "tricylc": 50, "seer": 50, "front_steer": 50, "front_wheels_nam": 50, "rear_wheels_nam": 50, "traction_feedback_typ": 50, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "averag": 50, "diagon": 50, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "mujoco": 54, "algoryx": 54, "agx": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "kinova": 55, "kortex": 55, "gen3": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 56, "toolkit": 56, "unreleas": 56, "question": 56, "wg": 56, "wednesdai": 56, "announc": 56, "discours": 56, "googl": 56, "tracker": 56, "reproduc": 56, "regard": 56, "built": 56, "gmt": 56}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 12, 14, 15], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 17], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 17], "run": [3, 4, 5, 17], "demo": [3, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 17], "binari": 4, "packag": [4, 17], "from": [4, 6, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 55], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 22], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 46, 50, 51], "line": 16, "list_control": 16, "list_controller_typ": 16, "list_hardware_compon": 16, "list_hardware_interfac": 16, "load_control": 16, "reload_controller_librari": 16, "set_controller_st": 16, "set_hardware_component_st": 16, "switch_control": 16, "unload_control": 16, "view_controller_chain": 16, "what": 17, "you": 17, "can": 17, "find": 17, "thi": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "humbl": 56, "develop": 56, "organis": 56}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [17, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [12, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [52, "parameters"], [53, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[12, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[12, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[13, "ros2-control-hardware-interface-types"]], "Joints": [[13, "joints"]], "Sensors": [[13, "sensors"]], "GPIOs": [[13, "gpios"]], "Examples": [[13, "examples"], [17, "examples"]], "Mock Components": [[14, "mock-components"]], "Generic System": [[14, "generic-system"]], "Per-joint Parameters": [[14, "per-joint-parameters"]], "Writing a Hardware Component": [[15, "writing-a-hardware-component"]], "Useful External References": [[15, "useful-external-references"], [37, "useful-external-references"]], "Command Line Interface": [[16, "command-line-interface"]], "list_controllers": [[16, "list-controllers"]], "list_controller_types": [[16, "list-controller-types"]], "list_hardware_components": [[16, "list-hardware-components"]], "list_hardware_interfaces": [[16, "list-hardware-interfaces"]], "load_controller": [[16, "load-controller"]], "reload_controller_libraries": [[16, "reload-controller-libraries"]], "set_controller_state": [[16, "set-controller-state"]], "set_hardware_component_state": [[16, "set-hardware-component-state"]], "switch_controllers": [[16, "switch-controllers"]], "unload_controller": [[16, "unload-controller"]], "view_controller_chains": [[16, "view-controller-chains"]], "Demos": [[17, "demos"]], "What you can find in this repository": [[17, "what-you-can-find-in-this-repository"]], "Goals": [[17, "goals"]], "Examples Overview": [[17, "examples-overview"]], "Local installation": [[17, "local-installation"]], "Build from debian packages": [[17, "build-from-debian-packages"]], "Build from source": [[17, "build-from-source"]], "Using Docker": [[17, "using-docker"]], "To view the robot": [[17, "to-view-the-robot"]], "To run the ros2_control demos": [[17, "to-run-the-ros2-control-demos"]], "Quick Hints": [[17, "quick-hints"]], "Example 1: RRBot": [[19, "example-1-rrbot"]], "Tutorial steps": [[19, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"]], "Files used for this demos": [[19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "files-used-for-this-demos"]], "Controllers from this demo": [[19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "position_controllers": [[47, "position-controllers"]], "position_controllers/JointGroupPositionController": [[47, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[48, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[49, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[50, "steering-controllers-library"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "tricycle_controller": [[51, "tricycle-controller"]], "Velocity commands": [[51, "velocity-commands"]], "tricycle_steering_controller": [[52, "tricycle-steering-controller"]], "velocity_controllers": [[53, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[53, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[54, "simulator-integrations"]], "Hosted by ros-controls": [[54, "hosted-by-ros-controls"]], "Community": [[54, "community"]], "Supported Robots": [[55, "supported-robots"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Humble!": [[56, "welcome-to-the-ros2-control-documentation-humble"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Humble!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45, 46], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48689": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "128": 0, "8600": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "35": [0, 50], "5628": 0, "09": 0, "26t19": 0, "07": [0, 56], "58z": 0, "fetch": [0, 11], "04": [0, 9, 56], "03": [0, 21, 46], "25": 0, "53": 0, "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50], "01t10": 0, "36": 0, "22z": 0, "435": 0, "64346": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 44, 45, 46], "577": 0, "405": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 52], "70": 0, "03t11": 0, "19z": 0, "238": 0, "214": [0, 33], "90": [0, 29], "05t08": 0, "35z": 0, "479": 0, "111": 0, "23": [0, 4, 33], "04t06": 0, "34": 0, "04z": 0, "1435": 0, "1147": 0, "80": 0, "1155": 0, "604": 0, "52": [0, 48], "261": 0, "237": 0, "91": 0, "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 20, 22, 24, 25, 29, 31, 32, 33, 34, 37, 43, 44, 46, 52], "develop": [0, 1, 4, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 46, 52], "inform": [0, 1, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 4, 9, 24, 35, 44, 46], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 35], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "06": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 50], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 3, 5], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "46": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 55], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 6], "09t10": 0, "21z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "268": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": 0, "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "125": 0, "22t09": 0, "27": 0, "11z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 35], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "github": [0, 4, 6, 10, 17, 29, 36, 54, 55, 56], "action": [0, 3, 5, 8, 44], "bot": 0, "28": [0, 50], "87": 0, "11t09": 0, "03z": 0, "bailac": 0, "68": 0, "08t11": 0, "14": [0, 17, 50, 55], "49z": 0, "olivi": 0, "stass": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "49": 0, "26t02": 0, "31": [0, 56], "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "wiktor": 0, "bajor": 0, "99": [0, 9], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": 0, "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "26": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 17, 33], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 7], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "52z": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 16, 20, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "22": [0, 9], "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "najjar": [0, 7], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 17], "56z": 0, "970": 0, "21t01": 0, "00": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 21, 41, 44, 46], "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "166": 0, "151": 0, "03t06": 0, "04t20": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "96": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "124": 0, "01t20": 0, "107": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "103": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "andr": 0, "montano": 0, "anfemosa": 0, "63": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "171": 0, "156": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "60": 0, "14t09": 0, "88": 0, "196": 0, "23t02": 0, "78": 0, "79": 0, "219": 0, "199": 0, "10t19": 0, "210": 0, "27t13": 0, "181": 0, "25t01": 0, "69": 0, "14t18": 0, "163": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 43, 44, 45], "receiv": [0, 2, 4, 20, 29, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 20, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 46, 56], "consid": [1, 16, 35, 44], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 37, 38, 39, 46, 47, 50, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 4, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 35, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 29, 33, 35, 38, 43, 44, 45, 46, 47, 48, 50, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 4, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43], "give": [1, 7, 9, 17, 19, 20, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 4, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 56], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 20, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 20, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44, 46], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 37, 41, 44, 46, 50], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 4, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 4, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 35, 37, 44, 46, 50], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 45, 46, 50, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 20, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 48, 50, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "sphinx": 1, "doc": [1, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "theme": 1, "gener": [1, 6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "locat": [1, 3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "control": [1, 7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "org": [1, 6, 11, 32, 34, 52], "while": [1, 4, 6, 7, 29, 33, 45], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "written": [1, 15, 23, 28, 29, 37], "respect": [1, 3, 4, 5, 6, 7, 20, 44, 45, 46], "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 20, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": [1, 4], "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 4, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 4, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 4, 7, 8, 45, 46], "compat": [1, 2, 4, 7, 15, 17], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 46, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "detail": [2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 49], "joint": [2, 4, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 47, 50, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 4, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 35, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 35, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 20, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 20, 24, 29, 36, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "start": [2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 56], "stop": [2, 7, 8, 9, 12, 16, 19, 20, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 20, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 20, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 20, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 4, 5, 9, 12, 14, 15, 16, 19, 20, 25, 33, 35, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 20, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 20, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 20, 29, 33, 44, 46], "initial_valu": [3, 5, 20, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37], "link": [3, 4, 5, 7, 8, 12, 29, 33, 35, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 4, 5, 17, 29, 35, 41], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 37, 44, 45, 46], "For": [3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 44, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 38, 47, 53], "100": [3, 4, 5, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 13, 14], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 46], "example_gripp": [3, 5], "humbl": [4, 17, 29], "bug": [4, 56], "want": [4, 8, 9, 17], "thrive": 4, "roll": [4, 29, 35], "stack": [4, 7, 56], "earlier": [4, 6], "done": [4, 7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "ros2_control_ci": 4, "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 35, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "figur": [4, 45], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29], "executor": [4, 9], "custom": [4, 13, 14, 17, 20, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 36, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 45], "dynam": [4, 15, 21, 29, 33, 37, 54], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "ros2_control_demo_hardwar": [4, 13, 16], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 13], "joint1": [4, 13, 14, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 20, 24, 29, 31, 33, 44], "pure": 4, "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "ign": 5, "meet": [5, 56], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 14, 15, 25, 35, 42, 43, 46, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 20, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 20, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 9, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "part": [6, 7, 13, 29, 37, 45, 46], "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "intern": [6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7], "175": 6, "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 20, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "81": [6, 33], "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 45, 50], "scale": [7, 44], "factor": [7, 35], "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 15, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8, 20], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irrelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 20, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 16, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50], "frequenc": 9, "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "info": [9, 11, 12, 15, 29], "std": [9, 29, 35, 44], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45, 46], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41, 46], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": 11, "int": [11, 35, 48, 50], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 20, 21, 24, 31, 33, 35, 44, 45, 46, 50], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33, 46], "vacuum": [13, 20], "flang": 13, "off": 13, "rrbotsystemmutiplegpio": 13, "example_param_hw_start_duration_sec": 13, "example_param_hw_stop_duration_sec": 13, "example_param_hw_slowdown": 13, "flange_digital_io": 13, "digital_output1": 13, "know": 13, "digital_output2": 13, "digital_input1": 13, "digital_input2": 13, "flange_analog_io": [13, 20], "analog_output1": [13, 20], "analog_input1": [13, 20], "analog_input2": [13, 20], "flange_vacuum": [13, 20], "suction": 13, "grasp": 13, "multimod": 13, "multimodalgripp": 13, "parallel_fing": 13, "temperatur": [13, 17], "feedback": [13, 14, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "choic": [13, 50], "matric": 13, "rrbotforcetorquesensor2d": 13, "forcetorquesensor2dhardwar": 13, "fx": 13, "tz": 13, "kuka_tcp": 13, "fx_rang": 13, "tz_rang": 13, "temp_feedback": 13, "calibration_matrix_nr": 13, "mirror": [14, 20], "correspond": [14, 15, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": 14, "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 20, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 20, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "hardware_component_nam": 16, "hardware_compon": 16, "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "diagram": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "tutori": 17, "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "interface_nam": [20, 39, 40], "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "list_hardware_compon": [20, 23, 24, 26, 27, 28], "faster": [20, 24, 35], "genericsystem": [20, 24], "use_mock_hardwar": [20, 24], "ident": [20, 22, 24, 29, 31, 45], "unless": [20, 43], "nan": [20, 26, 44], "generic_system": 20, "wheel": [21, 32, 34, 35, 50, 52], "front": [21, 32, 33, 34, 50, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": 22, "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35], "rotat": [29, 35, 44], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 37, 39, 41, 42, 44, 46, 50], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44], "wrong": 35, "behav": 35, "correctli": 35, "curv": 35, "wheels_per_sid": 35, "number": [35, 50], "slip": 35, "account": 35, "present": [35, 46], "enter": 35, "huski": [35, 55], "wheel_radiu": 35, "slower": [35, 45], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50], "odom_frame_id": [35, 50], "pose_covariance_diagon": [35, 50], "covari": [35, 42, 50], "tune": 35, "sampl": [35, 45, 50], "001": [35, 41], "twist_covariance_diagon": [35, 50], "speed": 35, "open_loop": [35, 50], "cmd_vel_timeout": 35, "stale": [35, 44], "velocity_rolling_window_s": [35, 50], "old": 35, "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": 35, "numeric_limit": [35, 44], "quiet_nan": [35, 44], "min_veloc": 35, "max_acceler": 35, "min_acceler": 35, "max_jerk": 35, "min_jerk": 35, "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "write_op_mod": 35, "motor_control": 35, "500": 35, "millisecond": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "state_publish_r": [44, 46], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "deprec": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "hold": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "cumbersom": 46, "controller_st": [46, 50], "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 48, "rqt": 49, "nomenclatur": 50, "unstamp": 50, "concret": 50, "tricylc": 50, "seer": 50, "front_steer": 50, "front_wheels_nam": 50, "rear_wheels_nam": 50, "traction_feedback_typ": 50, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "averag": 50, "diagon": 50, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "mujoco": 54, "algoryx": 54, "agx": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "kinova": 55, "kortex": 55, "gen3": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 56, "toolkit": 56, "unreleas": 56, "question": 56, "wg": 56, "wednesdai": 56, "announc": 56, "discours": 56, "googl": 56, "tracker": 56, "reproduc": 56, "regard": 56, "built": 56, "gmt": 56}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 12, 14, 15], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 17], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 17], "run": [3, 4, 5, 17], "demo": [3, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 17], "binari": 4, "packag": [4, 17], "from": [4, 6, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 55], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 22], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 46, 50, 51], "line": 16, "list_control": 16, "list_controller_typ": 16, "list_hardware_compon": 16, "list_hardware_interfac": 16, "load_control": 16, "reload_controller_librari": 16, "set_controller_st": 16, "set_hardware_component_st": 16, "switch_control": 16, "unload_control": 16, "view_controller_chain": 16, "what": 17, "you": 17, "can": 17, "find": 17, "thi": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "humbl": 56, "develop": 56, "organis": 56}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [17, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [12, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [52, "parameters"], [53, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[12, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[12, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[13, "ros2-control-hardware-interface-types"]], "Joints": [[13, "joints"]], "Sensors": [[13, "sensors"]], "GPIOs": [[13, "gpios"]], "Examples": [[13, "examples"], [17, "examples"]], "Mock Components": [[14, "mock-components"]], "Generic System": [[14, "generic-system"]], "Per-joint Parameters": [[14, "per-joint-parameters"]], "Writing a Hardware Component": [[15, "writing-a-hardware-component"]], "Useful External References": [[15, "useful-external-references"], [37, "useful-external-references"]], "Command Line Interface": [[16, "command-line-interface"]], "list_controllers": [[16, "list-controllers"]], "list_controller_types": [[16, "list-controller-types"]], "list_hardware_components": [[16, "list-hardware-components"]], "list_hardware_interfaces": [[16, "list-hardware-interfaces"]], "load_controller": [[16, "load-controller"]], "reload_controller_libraries": [[16, "reload-controller-libraries"]], "set_controller_state": [[16, "set-controller-state"]], "set_hardware_component_state": [[16, "set-hardware-component-state"]], "switch_controllers": [[16, "switch-controllers"]], "unload_controller": [[16, "unload-controller"]], "view_controller_chains": [[16, "view-controller-chains"]], "Demos": [[17, "demos"]], "What you can find in this repository": [[17, "what-you-can-find-in-this-repository"]], "Goals": [[17, "goals"]], "Examples Overview": [[17, "examples-overview"]], "Local installation": [[17, "local-installation"]], "Build from debian packages": [[17, "build-from-debian-packages"]], "Build from source": [[17, "build-from-source"]], "Using Docker": [[17, "using-docker"]], "To view the robot": [[17, "to-view-the-robot"]], "To run the ros2_control demos": [[17, "to-run-the-ros2-control-demos"]], "Quick Hints": [[17, "quick-hints"]], "Example 1: RRBot": [[19, "example-1-rrbot"]], "Tutorial steps": [[19, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"]], "Files used for this demos": [[19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "files-used-for-this-demos"]], "Controllers from this demo": [[19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "position_controllers": [[47, "position-controllers"]], "position_controllers/JointGroupPositionController": [[47, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[48, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[49, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[50, "steering-controllers-library"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "tricycle_controller": [[51, "tricycle-controller"]], "Velocity commands": [[51, "velocity-commands"]], "tricycle_steering_controller": [[52, "tricycle-steering-controller"]], "velocity_controllers": [[53, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[53, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[54, "simulator-integrations"]], "Hosted by ros-controls": [[54, "hosted-by-ros-controls"]], "Community": [[54, "community"]], "Supported Robots": [[55, "supported-robots"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Humble!": [[56, "welcome-to-the-ros2-control-documentation-humble"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/iron/.buildinfo b/iron/.buildinfo index 361599b3b7d..aa056f6f8db 100644 --- a/iron/.buildinfo +++ b/iron/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: eb1e110876dd00fbad3d4d8692ef3163 +config: 4e0983ebff3a05ac3c862c38c82f15f1 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/iron/.doctrees/doc/acknowledgements/acknowledgements.doctree b/iron/.doctrees/doc/acknowledgements/acknowledgements.doctree index 8ed5a33bb77e43bbfda34737ce6644cbf6d3c42f..7903c476d44b3494103879c7abae60714c66d784 100644 GIT binary patch delta 1256 zcmdT?TT4_?80DOqab`ScJV(=_Mns5S62^V5d!Okt^P(jMBSBGMc$?8g1t+1G(Y&OM zfs%2sPYC=4Mh*wsFWr2Qo(cvF-z)+Nd(lP$m4dcLG>N@N!CtW0-&*YTed`ELCF2fps@{4%+1}OISxu}s!WJS4jI6j8$ClF4YPI0Fst_|l)MgE7geVD8ZD)te z?DCB4+~LN(+zscw@|Lrs4N2!+Mc5CMMSP#6sUbv=ijaX6)zCnB<~qp}6SAdZ8>~0- zha?;_O-)g;Vj0NL8DqwK1!m9t1gHLB%2S9dkrq~sFw9p$t$VUP} z`$==Zs94C<6;;PX)9m^7MyGcC9OtaHuJQuW*mO(vP+tHNA9_YFmz?zD&$&{9%BbYzyB2fRapc2-J;Ik+1VYqwTtL8OeXS*N& zUv?ik6T_?d0kIY$&U08e@OxVkme+11w<5DNGRs}7&8w%`ZqZDRA3K%zxU+C`=?&y! za5H%51}b>HwTBUfZ%2g=SPP4CdZfzB;A8O9k*dP#&AnX8xXWjtY+DRY$;JKfH6<=f z#IzKH5KIiDn^^so(*0h+L!WjF(|xdfNeI%OPlD=!z!1Ae4~rW-oy!R|UYI{t6r}RD z@E`A96s=B#Dl`8eaHMAY1Rq$%9lREWcxED1_5j8Ra;s^AOO*9l6U7}BsJhU%qI7zINO z!B8PA)VMYf@3>RHNL^v+j%;!@Qmv2qJ1OFEv*d8wQT=URkrmp@*e<6eda;UpSdt~5 zpkfj3*D+f9$?y(UMi9KiMtP)oWmS@8tRO7-RII@6H`Z#Hs$??sz{aR0Q}zf_kti1- zA0%cRUiiAz#u116!e4v2hYa>+=v#ynIe+rTlXpW+q~FczmHsi;dem|KN!18NQF?!* zA|3cNryKYQu7S+%sQ?e*a>>2mX-@QsV)73~RY4jg#_d&l?agvZe;=Bs?TVmDSd#^; zAq4ybHUMoSoJBtn-Oo@epc1E>TyH+ZNs^`s$fqc(Bx0z2nf8Mt(UxvXB>cB3sQu!w zlJ1_yRJ&vnc(bz||AWakeXw`_x3=h$Fq6GTS*OfKTKmd}jq+itac?S+95fdkT&7r( zA8Cvi+xb}E5@qx)(T}#T&&C*(W{NRoF&LCSwXzl;h1d&+GZrskO=Xy}8u5b6!q2I! zVft9ymz<4U7>m(Suy@&K9V$kv53~Tup@{04&#-<$Z(l#iY=6)v7cRqB|F#6i|E8$~5 zS8q*mSVA^Oj@>P`Py7FMld-t~XDZ8>3pkd}uPP&EZWdEcBQeACs{_fEbKAI8<66%9 E4upQr8~^|S diff --git a/iron/.doctrees/doc/contributing/contributing.doctree b/iron/.doctrees/doc/contributing/contributing.doctree index e23bb1ed49f5a79e31ec53347f7a0e8e63d8c6bc..311578c85849f3b678fa9419238611d81e4d793b 100644 GIT binary patch delta 64 zcmaERl=1CR#tq?&h9=2Hh3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy TMv2A-#ugTasTP|%7*i7g%VHEZ delta 64 zcmaERl=1CR#tq?&hKAX>>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Tsm94EhKb2(iOHKg7*i7g*>n|O diff --git a/iron/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree b/iron/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree index 1af7928b606950f3c3b42fc2b07853b3020f6df8..4ac5904e849a16362aeec9fe229d20242ad56db0 100644 GIT binary patch delta 64 zcmey+$Mm6(X@eG{p-FO4VR}w{w!VdBih;SMfkmphfn|zuin*m>QnF=|d5V#tg;}bF TQKGSdv4w?Us>SALM$t9^r?C@D delta 64 zcmey+$Mm6(X@eG{p<#AzdS*&xroL&4rJ1pTd18vGVWN?#g@H+8YLbC@l2Njysku>d Ts&R6PVPbMxV)Eu_M$t9^wZjy2 diff --git a/iron/.doctrees/doc/gazebo_ros2_control/doc/index.doctree b/iron/.doctrees/doc/gazebo_ros2_control/doc/index.doctree index 06848d649d66659dcd291a4d93d08b2ca67c0232..633a7c88ece5fb496ad137b4e98d86e968baf38a 100644 GIT binary patch delta 129 zcmaF3mFeMDrVSR1MkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy hMv2A-#ugTasTTT^_i@N>ZfAU5NuFMb&3md<6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; hsm94EhKb2(iOKqt_i@N>ZfAU5NuFMb&3md<fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy UMv2A-#ugTasTP|P8F$_V0GLS>2mk;8 delta 64 zcmbQWk9pQU<_!jnhKAX>>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Usm94EhKb2(iOHK28F$_V0H#|NF#rGn diff --git a/iron/.doctrees/doc/gz_ros2_control/doc/index.doctree b/iron/.doctrees/doc/gz_ros2_control/doc/index.doctree index 76c500543b016b5777e920987d4dd8a20f160ba9..6548a59744aa22d4d46db79cdb75307c95168f89 100644 GIT binary patch delta 123 zcmdn8f@#YNrVR#+h9=2Hh3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy fMv2A-#ugTasTP|P8Ml>@u5EH6qv+>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; fsm94EhKb2(iOHK28Ml>@u5EH6qv+fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy UMv2A-#ugTasTP}K8IKhM0I!@B2><{9 delta 64 zcmZ4digEEP#tk}*hKAX>>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Usm94EhKb2(iOHK|8IKhM0KKjiG5`Po diff --git a/iron/.doctrees/doc/resources/resources.doctree b/iron/.doctrees/doc/resources/resources.doctree index a715536c0ccb1b998f2c65edb3198786c61dc09e..8f3665fe2fb13a3077042a9bf188d9e437867913 100644 GIT binary patch delta 68 zcmZ41%et(Wb%P3{p-FO4VR}w{w!VdBih;SMfkmphfn|zuin*m>QnF=|d5V#tg;}bF XQKGSdv4w?Uszq}sd Xs&R6PVPbMxVsdjRfiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy TMv2A-#ugTasTP|v8CjD6#5fb3 delta 64 zcmaENjPczu#tjyXhKAX>>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Tsm94EhKb2(iOHKY8CjD6(n=J@ diff --git a/iron/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree index bbf77e06a34119fd07994ae2b0c70e9c8998c605..5e273d28c9f94198beb548c12b9fd2a2d0049e1a 100644 GIT binary patch delta 69 zcmbRAlyTBi#tm+aMkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy ZMv2A-#ugTasTTT^dBQX{FJSys000ka6|evR delta 69 zcmbRAlyTBi#tm+aMuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Zsm94EhKb2(iOKqtdBQX{FJSys001LN7TEv* diff --git a/iron/.doctrees/doc/ros2_control/doc/index.doctree b/iron/.doctrees/doc/ros2_control/doc/index.doctree index d0c410038981fa1cc442d7f711bacab41cfd326f..d714f862ab388b4f6434c349f3a4aa49b0f401b8 100644 GIT binary patch delta 62 zcmaE2_{4C79iyR1a#3M=PJFh$g=LC?xutigAj$rD0OCWs-S{k)efIs)bRa Rv4OFLg<-12=6uFdaR7D*5{>`> delta 62 zcmaE2_{4C79iyRPc5ZrRN@b?LX^N$pv4MGFim73uk*S4&Nn&b}fq9ZqvZblHQF5wr Ra*APMa#~{Y=6uFdaR7uG6Sn{W diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree index 8cf6c5a0dc07c262fba7540012778f882aca66cf..2f386e743ff969ea3dbc6e26d330fd20e0ba2bc7 100644 GIT binary patch delta 64 zcmX^0obl9i#tnXqh9=2Hh3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy TMv2A-#ugTasTP~-8NG`D$XOH_ delta 64 zcmX^0obl9i#tnXqhKAX>>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Tsm94EhKb2(iOHMm8NG`D)@v0) diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree index ae3bc386b909b57807db66c108630cc31add357e..e72b26f17df5de9d3557b715d520cdac5d78d8c8 100644 GIT binary patch delta 69 zcmZ3ol5xpO#tj~fMkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy ZMv2A-#ugTasTTT^{aKwi?`3=*1OWQ%6<+`V delta 69 zcmZ3ol5xpO#tj~fMuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Zsm94EhKb2(iOKqt{aKwi?`3=*1ON`&7Ki`< diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree index 1aa3fb8d8be641c00dd79f5b174c418e8681cdda..157b039ef45c293994db3c5662f76cd324b77140 100644 GIT binary patch delta 69 zcmdmgg>nBC#tlJ?MkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy ZMv2A-#ugTasTTT^PjY!|KEqg?0RSa-7AgP$ delta 69 zcmdmgg>nBC#tlJ?MuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Zsm94EhKb2(iOKqtPjY!|KEqg?0RTBw7gGQL diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree index c9bfdfdba8d73e62633245071da6387c1b9fa065..9f73d5a55f27dfbe71e7d625a45c55d0274e14a6 100644 GIT binary patch delta 62 zcmexg^1oz*1EZlya#3M=PJFh$g=LC?xutigAj$rD0OCWs-S{k)efIs)bRa Rv4OFLg<-12=0Zk3O8}xA6A1tS delta 62 zcmexg^1oz*1EZl~c5ZrRN@b?LX^N$pv4MGFim73uk*S4&Nn&b}fq9ZqvZblHQF5wr Ra*APMa#~{Y=0Zk3O8~Gg6fyt+ diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree index 429f0d3813ff5dabe27f649df614e1e9c0375617..cdcda273aaac70cbf982a6f8380fc2c533277a08 100644 GIT binary patch delta 64 zcmaFb!1A<#WrH81p-FO4VR}w{w!VdBih;SMfkmphfn|zuin*m>QnF=|d5V#tg;}bF TQKGSdv4w?Us>SAd#%KQkr#KX@ delta 64 zcmaFb!1A<#WrH81p<#AzdS*&xroL&4rJ1pTd18vGVWN?#g@H+8YLbC@l2Njysku>d Ts&R6PVPbMxV)EvC#%KQkwMrG& diff --git a/iron/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index 4d8516dfdf4e8a878d2ff13751c66e22af40e87f..ce1addc53eed68de09611c003297cb56a1867f28 100644 GIT binary patch delta 64 zcmaF%iSgMd#tn9ih9=2Hh3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy UMv2A-#ugTasTP~_8NZhU0NC3U_y7O^ delta 64 zcmaF%iSgMd#tn9ihKAX>>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Usm94EhKb2(iOHMu8NZhU0Osu$ApigX diff --git a/iron/.doctrees/doc/ros2_control_demos/doc/index.doctree b/iron/.doctrees/doc/ros2_control_demos/doc/index.doctree index c23efe07be2b060e436e30786f77294883a7c630..85e48d58febd7072592587554903dd662c2d4626 100644 GIT binary patch delta 69 zcmdng!Mv%1d4n0Fkx6nQnF=|d5V#tg;}bF ZQKGSdv4w?Us)hdK#!cdz>lrs60s!(R72E&- delta 69 zcmdng!Mv%1d4n0FkzsajdS*&xroL&4rJ1pTd18vGVWN?#g@H+8YLbC@l2Njysku>d Zs&R6PVPbMxVzU0^#!cdz>lrs60ssaS7X<(S diff --git a/iron/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree b/iron/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree index 994beeac835cc1c3d99410a98d70cfe40852c740..90f17da7c95138d71781591e7bb7cd64520353e2 100644 GIT binary patch delta 62 zcmeB_>Xh2h&thnjTvV8z6Q8YbVVPoJZfRhVYHnbeVw_@bX_%C3nPi?~WN2ZQYGIUU RY+!6*VVG*M`2dS22LMxf5*Gjf delta 62 zcmeB_>Xh2h&thnpotvJSQkki5nqp~YY+#<4VrrOZWNKkxl9-xgV4h@@Y-wt4l$>gu RoMM=moR*lp`2dS22LNG<6F>j} diff --git a/iron/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree index 6871c5cf2465065ac263999dd44b6b506f2e3b1b..83ec3b8260aad354201c62a851b681976895e993 100644 GIT binary patch delta 76 zcmezSpXKj=mJLyiMkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy gMv2A-#ugTasTTT^_{As73WzrEVBEfgk6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; gsm94EhKb2(iOKqt_{As73WzrEVBEfgkQnF=|d5V#tg;}bF TQKGSdv4w?Us>SAB#=pG)i_a7E delta 64 zcmeC0&(t-aX+sR7p<#AzdS*&xroL&4rJ1pTd18vGVWN?#g@H+8YLbC@l2Njysku>d Ts&R6PVPbMxV)Eu*#=pG)nc)>3 diff --git a/iron/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree index dc3c2ab719a896029bcc26bc94583cba4102bae8..c7603e44a8e1fc9afa7ae431054542f920aa0ffc 100644 GIT binary patch delta 73 zcmaFf$@ILFX+sR7kx6nQnF=|d5V#tg;}bF dQKGSdv4w?Us)hb!Ljm#0Yg?o@A7E5(1^{X{7S8|x delta 73 zcmaFf$@ILFX+sR7kzsajdS*&xroL&4rJ1pTd18vGVWN?#g@H+8YLbC@l2Njysku>d ds&R6PVPbMxVzT~ZLjm#0Yg?o@A7E5(1^|M&7x(}G diff --git a/iron/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree index 3f7914150aaafd3443b5b58faefdfe3f22a006d2..65042c395a661a89882ba8d0cf8b7cb5748af902 100644 GIT binary patch delta 73 zcmX^7m+A0drVTNSMkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy dMv2A-#ugTasTTT^Cvb^R?%XH6`2ZvHUI3by7xVxC delta 73 zcmX^7m+A0drVTNSMuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; dsm94EhKb2(iOKqtCvb^R?%XH6`2ZvHUI4Qj865xs diff --git a/iron/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree index 21ccc65e6becec35bdc8504d2694c42be0047e0b..5bdac9f6bbbf73887369c04be06a58a5fcd80999 100644 GIT binary patch delta 73 zcmdn7oN32$rVTNSMkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy dMv2A-#ugTasTTT^1^LA%*G-n*e1P%CL;zor7fS#D delta 73 zcmdn7oN32$rVTNSMuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; dsm94EhKb2(iOKqt1^LA%*G-n*e1P%CL;!dc7<2#t diff --git a/iron/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree index 72301d4e7210ba6968f0665055590d042af8183e..88584d69062e870381d9263f54180cd05c2b5a8d 100644 GIT binary patch delta 69 zcmcb&hUwlKrVUYyMkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy ZMv2A-#ugTasTTT^9i>z^Z)99M1pprm7196z delta 69 zcmcb&hUwlKrVUYyMuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Zsm94EhKb2(iOKqt9i>z^Z)99M1pqSZ7W)7I diff --git a/iron/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree index adf095f88e3f615f1534083aac2f099135e74244..1ef3faa89113f95253c120c731681d3674c998a0 100644 GIT binary patch delta 73 zcmaFxhUvi@rVUYyMkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy dMv2A-#ugTasTTT^1^L7$t8bIqyq9tD766$47q|cb delta 73 zcmaFxhUvi@rVUYyMuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; dsm94EhKb2(iOKqt1^L7$t8bIqyq9tD767q=7~uc_ diff --git a/iron/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree index 0b7b6759c0fca1ed34e2c54539a2fed5599339ca..dcb3819dca70612a55091226beb5fc8ad1f3f1a3 100644 GIT binary patch delta 73 zcmX@KjOoxarVUYyMkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy dMv2A-#ugTasTTT^75K#`_wtEu-oe;45ddI+7I**v delta 73 zcmX@KjOoxarVUYyMuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; dsm94EhKb2(iOKqt75K#`_wtEu-oe;45de7t7oh+E diff --git a/iron/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree index 4ba3a6c640faae45b65e66a2a9b130ccde4f880d..26c41882c566058517441f0fddd42378e16202c1 100644 GIT binary patch delta 69 zcmX@NpXuCwrVUYyMkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy ZMv2A-#ugTasTTT^C&s95-pD9B4*(;x732T_ delta 69 zcmX@NpXuCwrVUYyMuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Zsm94EhKb2(iOKqtC&s95-pD9B4*)lk7YzUa diff --git a/iron/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree index 269ebfc8199c5041508c854ceb53295f4de462eb..3b7713eb95162f27961aa4328999655b44ece93b 100644 GIT binary patch delta 73 zcmccF#B{TXX+spFkx6nQnF=|d5V#tg;}bF dQKGSdv4w?Us)hdKKpyeQ3XM{m_cG3@2LM~J7MuV8 delta 73 zcmccF#B{TXX+spFkzsajdS*&xroL&4rJ1pTd18vGVWN?#g@H+8YLbC@l2Njysku>d ds&R6PVPbMxVzU0^KpyeQ3XM{m_cG3@2LN<47sUVo diff --git a/iron/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree index 77ecd64482dcd795206742f0ef5ce4311302f576..f4897395a698cacf3d9d7bde4dba57809c51b05e 100644 GIT binary patch delta 73 zcmX?bknO-hwhd8?MkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy dMv2A-#ugTasTTT^?>VV9Z)DuQk&%&qJ^*|~7c>9> delta 73 zcmX?bknO-hwhd8?MuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; dsm94EhKb2(iOKqt?>VV9Z)DuQk&%&qJ^+-*7+nAW diff --git a/iron/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree index ae7cec5130ecc7c865f6cc827beb822656fde948..abeae5cbaa1481b2a4b09c90b2dabf9bfbfb96d8 100644 GIT binary patch delta 73 zcmZqp%GmIgaYGcNkx6nQnF=|d5V#tg;}bF dQKGSdv4w?Us)hdKgFNDs-K(TF?`1q(0RV4P7k&T$ delta 73 zcmZqp%GmIgaYGcNkzsajdS*&xroL&4rJ1pTd18vGVWN?#g@H+8YLbC@l2Njysku>d ds&R6PVPbMxVzU0^gFNDs-K(TF?`1q(0RV^A7^eUL diff --git a/iron/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree index 8e2ab476ba7762bf355fad0f9b624bb7658b5f9b..84bc3222a7a22562212679808fe3fc49b5f86091 100644 GIT binary patch delta 76 zcmbO^k7?#SrVUYyrY6Znh3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy gMv2A-#ugTasTTSv`N@+R!$l^a6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; gsm94EhKb2(iOKpY`N@+R!$l^a@~ diff --git a/iron/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree index aac7d5301a1a601d3f46cdd7e3c0fb4b01d45efb..f37fddf76058414e32d69d0dbd451e3d6e8c5f62 100644 GIT binary patch delta 71 zcmeB)>WSJA!)RoZTvV8z6Q8YbVVPoJZfRhVYHnbeVw_@bX_%C3nPi?~WN2ZQYGIUU aY+!6*VVG*6KlviR=;Rn-xy=U|y|n=wd=+8< delta 71 zcmeB)>WSJA!)RofotvJSQkki5nqp~YY+#<4VrrOZWNKkxl9-xgV4h@@Y-wt4l$>gu aoMM=moR*lZKlviR=;Rn-xy=U|y|n=|{}zh? diff --git a/iron/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree index 7e075c58bb00d180760801f6d066abca6ef1d6a8..844c13f493ac549c6fd6c918ee19fa775e764a1c 100644 GIT binary patch delta 127 zcmX@!zQnF=|d5V#tg;}bF jQKGSdv4w?Us>SA7MyU?cwN0*N)R|mYB)XZi%gzh{lOH91 delta 127 zcmX@!zd js&R6PVPbMxV)Eu%MyU?cwN0*N)R|mYB)XZi%gzh{0kJ30 diff --git a/iron/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree index e0ff2405805ea66081263848c873628ee95ee38f..6240e421aa5dc6b2960078d09fcf7c4bd2c22414 100644 GIT binary patch delta 67 zcmX@;d(d}71f!8ja#3M=PJFh$g=LC?xutigAj$rD0OCWs-S{k)efIs)bRa Wv4OFLg<-0N{$xQx(arN2l~e)My%T=` delta 67 zcmX@;d(d}71f!8*c5ZrRN@b?LX^N$pv4MGFim73uk*S4&Nn&b}fq9ZqvZblHQF5wr Wa*APMa#~`t{$xQx(arN2l~e)goD`@4 diff --git a/iron/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree index eb102e5171fda9cc8679b3f3dcde73737314bac6..64dfd455db35a07280baa0338fb5335320434c83 100644 GIT binary patch delta 123 zcmcb%konp|<_$iKh9=2Hh3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy gMv2A-#ugTasTP}S8NVJPUEAbZMxD*)kFfIq0B`#x`Tzg` delta 123 zcmcb%konp|<_$iKhKAX>>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; gsm94EhKb2(iOHL58NVJPUEAbZMxD*)kFfIq0M#}qOaK4? diff --git a/iron/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/iron/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index 6df54c8142508ca2eb5bd384fb22b9253cf86806..e961a992f2ceb1c3a5d9173102bb63c89ccb4eb8 100644 GIT binary patch delta 67 zcmexZ^RZ@w2BVQla#3M=PJFh$g=LC?xutigAj$rD0OCWs-S{k)efIs)bRa Wv4OFLg<-0N{^UX)(argcOtt|0uoN%= delta 67 zcmexZ^RZ@w2BVQ-c5ZrRN@b?LX^N$pv4MGFim73uk*S4&Nn&b}fq9ZqvZblHQF5wr Wa*APMa#~`t{^UX)(argcOtt_Jo)uXD diff --git a/iron/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree b/iron/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree index 767c6d8f41e3d8dc5bfee232e84ee69a5cfde1eb..3645feaad49aa78e363778502ffa49386619f45d 100644 GIT binary patch delta 64 zcmZ2fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy UMv2A-#ugTasTP|H88^NJ0IP)*YybcN delta 64 zcmZ2>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Usm94EhKb2(iOHJ_88^NJ0J)bHl>h($ diff --git a/iron/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree index a83ca8d6fc9c0cb259432e542158542765f2c2a1..b4c45f41012c27f4be256f03b2b193343af1ac69 100644 GIT binary patch delta 62 zcmbQ|FwbFw8>68~a#3M=PJFh$g=LC?xutigAj$rD0OCWs-S{k)efIs)bRa Rv4OFLg<-12=5og6asXZj5@`Sc delta 62 zcmbQ|FwbFw8>69Nc5ZrRN@b?LX^N$pv4MGFim73uk*S4&Nn&b}fq9ZqvZblHQF5wr Ra*APMa#~{Y=5og6asX@@6OsS` diff --git a/iron/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree index b33e41ac246320dac807c199bb6ce3eed77faf19..dee9389da8b8614e5962d6bca0705d1c05750752 100644 GIT binary patch delta 123 zcmX>+f${JJ#tjLKh9=2Hh3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy fMv2A-#ugTasTP|jGL~DDu5I!}MzhWNwpX|S8^k2j delta 123 zcmX>+f${JJ#tjLKhKAX>>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; fsm94EhKb2(iOHKMGL~DDu5I!}MzhWNwpX|Sfd3~Y diff --git a/iron/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree index 03839bdbd5b2a953d28fcb4808ee1f90e9dcf805..d28626c2d0ca55fed55c80ab8a7611546c13bb94 100644 GIT binary patch delta 67 zcmX?`ayDf{7^9I%a#3M=PJFh$g=LC?xutigAj$rD0OCWs-S{k)efIs)bRa Xv4OFLg<-0N{^U+6gUve_ry2kN?G+UE delta 67 zcmX?`ayDf{7^9J4c5ZrRN@b?LX^N$pv4MGFim73uk*S4&Nn&b}fq9ZqvZblHQF5wr Xa*APMa#~`t{^U+6gUve_ry2kN0Rt8v diff --git a/iron/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree index e9166148048d8e3cb96b3c40c6aab9fbd379b9ab..cb573a4ad1a13862204181f359f7361a2a74e1d9 100644 GIT binary patch delta 67 zcmeCm>B`yQ!DwWXTvV8z6Q8YbVVPoJZfRhVYHnbeVw_@bX_%C3nPi?~WN2ZQYGIUU WY+!6*VVG*6KY6Zz=H|tW=_UZmxfC`4 delta 67 zcmeCm>B`yQ!DwWdotvJSQkki5nqp~YY+#<4VrrOZWNKkxl9-xgV4h@@Y-wt4l$>gu WoMM=moR*lZKY6Zz=H|tW=_UZ)m=#|D diff --git a/iron/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree index 34e74aedb8e2bab3dc17120954f579a6a83a4acd..59ea9a4dd53b872802aaa3bf857a4bfb9192d003 100644 GIT binary patch delta 133 zcmdnr$hg0eaf2VDkx6nQnF=|d5V#tg;}bF kQKGSdv4w?Us)hb!K|!6(YZ!fv$<#aftdaWWI#Wk(090xwc>n+a delta 133 zcmdnr$hg0eaf2VDkzsajdS*&xroL&4rJ1pTd18vGVWN?#g@H+8YLbC@l2Njysku>d ks&R6PVPbMxVzT~ZK|!6(YZ!fv$<#aftdaWWI#Wk(0Lu(0%K!iX diff --git a/iron/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree index 2df97ecd08f6a29e6ea49cc796c198d4e94cc71b..4585b73308b3acc21f60698cfbe45dddca9dab35 100644 GIT binary patch delta 64 zcmeynpYiX0#ti|Ch9=2Hh3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy TMv2A-#ugTasTP|X8EfJI&d?N4 delta 64 zcmeynpYiX0#ti|ChKAX>>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Tsm94EhKb2(iOHKA8EfJI+~O5^ diff --git a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree index e212100535d08e229a41a493835edfb45e2c8a92..6ff4dcea05edd79a50a7d532defcfbc844204170 100644 GIT binary patch delta 69 zcmbPunQ7u>rVVP0MkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy ZMv2A-#ugTasTTT^Elcb-PiOqK8~_0`76bqQ delta 69 zcmbPunQ7u>rVVP0MuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Zsm94EhKb2(iOKqtElcb-PiOqK8~_y(7cBq) diff --git a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree index 688f854b66d19beff93c24344013c3915388849a..04c46815af8a1c4a9e4c133eb8d5eb5a0d201c6f 100644 GIT binary patch delta 69 zcmX@Img&e^rVTZWMkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy ZMv2A-#ugTasTTT^<6G@Fzh%5W1ppt^7Rvwt delta 69 zcmX@Img&e^rVTZWMuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Zsm94EhKb2(iOKqt<6G@Fzh%5W1pqU%7xVxC diff --git a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree index d77249f109852b94c8986069fcc1fcc56a871a91..ab13871f601354284af743dc75c07f0969ece836 100644 GIT binary patch delta 69 zcmex+o$2p&rVSB{MkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy ZMv2A-#ugTasTTT^9eHdvA7eCM1pq|m79s!u delta 69 zcmex+o$2p&rVSB{MuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Zsm94EhKb2(iOKqt9eHdvA7eCM1prvZ7fS#D diff --git a/iron/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree index 382074d84b72fe5280658b3b93ac2b5a6627f0b5..7195b61d5ee260093077763c10ae55da8618c213 100644 GIT binary patch delta 62 zcmaFj@Wf$*7o(v`a#3M=PJFh$g=LC?xutigAj$rD0OCWs-S{k)efIs)bRa Rv4OFLg<-12=4!^5asYta6F&d| delta 62 zcmaFj@Wf$*7o(wJc5ZrRN@b?LX^N$pv4MGFim73uk*S4&Nn&b}fq9ZqvZblHQF5wr Ra*APMa#~{Y=4!^5asZC)6leed diff --git a/iron/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree index 4f4f5cb68b36782e53392c0adca2c89f9e58f2ba..c97c059dc7a0171a99169039be4980c78624f298 100644 GIT binary patch delta 121 zcmdl}yr+0W5Tl_igAj$rD0OCWs-S{k)efIs)bRa dv4OFLg<-12WIa9o&6^m#bx7B`Sx>Kz8vx`pBaZ+8 delta 121 zcmdl}yr+0W5Tl`Cc5ZrRN@b?LX^N$pv4MGFim73uk*S4&Nn&b}fq9ZqvZblHQF5wr da*APMa#~{YWIa9o&6^m#bx7B`Sx>Kz8vsPvCE)-7 diff --git a/iron/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree index ee5cbd4200c96fc7a0fc67c06c770c2a97deeba8..2a5a39684438c45c7fa7c6c39da41a9db219d8aa 100644 GIT binary patch delta 62 zcmbO)H(zc;0;8cxa#3M=PJFh$g=LC?xutigAj$rD0OCWs-S{k)efIs)bRa Rv4OFLg<-12=824byZ}^y5-|V( delta 62 zcmbO)H(zc;0;8c}c5ZrRN@b?LX^N$pv4MGFim73uk*S4&Nn&b}fq9ZqvZblHQF5wr Ra*APMa#~{Y=824byZ~a76IuWO diff --git a/iron/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree index 733dc04d11f024cf37ec3b1d202b6aa6970d93a5..e8bcfe900e725356f597b6824fcd8ff1fce6bc7a 100644 GIT binary patch delta 69 zcmeylo$2RxrVUYyMkdKch3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy ZMv2A-#ugTasTTT^`-E*bpJX(c1pqZO799Wp delta 69 zcmeylo$2RxrVUYyMuyqB>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Zsm94EhKb2(iOKqt`-E*bpJX(c1prAB7e)X8 diff --git a/iron/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree index 0ab4919d28d706687225fd6b66c0a7f4440ac3e5..1540424415c0ee78a0dbffe30e6603e8745969bd 100644 GIT binary patch delta 64 zcmeD9z}WGDaf1h=p-FO4VR}w{w!VdBih;SMfkmphfn|zuin*m>QnF=|d5V#tg;}bF TQKGSdv4w?Us>S9?#{Mz@tB@1p delta 64 zcmeD9z}WGDaf1h=p<#AzdS*&xroL&4rJ1pTd18vGVWN?#g@H+8YLbC@l2Njysku>d Ts&R6PVPbMxV)Eun#{Mz@xuO*e diff --git a/iron/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree index 1721b3e2f37614a02250bb5206624c00ab48aa3b..793dd09e895b05fc9271af058f67a7105ea5b012 100644 GIT binary patch delta 71 zcmaDI_&RVy6r+(za#3M=PJFh$g=LC?xutigAj$rD0OCWs-S{k)efIs)bRa bv4OFLg<-0N{^Wjs(aAsAH8!7QR8j{3OOzHs delta 71 zcmaDI_&RVy6r+)0c5ZrRN@b?LX^N$pv4MGFim73uk*S4&Nn&b}fq9ZqvZblHQF5wr ba*APMa#~`t{^Wjs(aAsAH8!7QR8j{3WEU4{ diff --git a/iron/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree index 10b2a1d4e0cd7fbb50437d62f06f62f62a0ca126..4ffbf7003c32fb94356a8a3642d6f4e6ffc04547 100644 GIT binary patch delta 62 zcmaFj@Wf$*7o(v`a#3M=PJFh$g=LC?xutigAj$rD0OCWs-S{k)efIs)bRa Rv4OFLg<-12=4!^5asYta6F&d| delta 62 zcmaFj@Wf$*7o(wJc5ZrRN@b?LX^N$pv4MGFim73uk*S4&Nn&b}fq9ZqvZblHQF5wr Ra*APMa#~{Y=4!^5asZC)6leed diff --git a/iron/.doctrees/doc/simulators/simulators.doctree b/iron/.doctrees/doc/simulators/simulators.doctree index 29d844dc8f9d08695448e8ccb988192f6638a096..b99c3ce0304e0837ac530d8a3620dc365564957e 100644 GIT binary patch delta 62 zcmZoNZ!+JY#%O4gTvV8z6Q8YbVVPoJZfRhVYHnbeVw_@bX_%C3nPi?~WN2ZQYGIUU RY+!6*VVG*MIh;{j3IIdf5nliR delta 62 zcmZoNZ!+JY#%O4motvJSQkki5nqp~YY+#<4VrrOZWNKkxl9-xgV4h@@Y-wt4l$>gu RoMM=moR*lpIh;{j3II{<5{Li* diff --git a/iron/.doctrees/doc/supported_robots/supported_robots.doctree b/iron/.doctrees/doc/supported_robots/supported_robots.doctree index d2cdc17ad37553777516cf81e31e8a1025e90130..124f5950b55e41990e58e1842a4f6a52ce1fea98 100644 GIT binary patch delta 64 zcmX@QgYoDN#trd|h9=2Hh3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy UMv2A-#ugTasTP|jFm8(^b delta 64 zcmX@QgYoDN#trd|hKAX>>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; Usm94EhKb2(iOHKMFm82~Cj}5D*dq1U9m$5>ybC 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 Z`IHn=@*C-861Rww8%NcQ^LVWD{{eplDYO6p delta 37009 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

Ju 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 diff --git a/iron/.doctrees/index.doctree b/iron/.doctrees/index.doctree index 2c820473eaa9315831fc0ad0ed9a2d5ddbc06aec..ad96b618f9cb55656c8081862bb00af6e1134919 100644 GIT binary patch delta 78 zcmbPxopJ7U#tmkSh9=2Hh3Pr*+4>fiDF)`21{SI229_ztDdv`jNy(N;<|#&o7G|jy gMv2A-#ugTasTP~l85M#U%{O-hn=t~Z{UP_n0MTR^6951J delta 78 zcmbPxopJ7U#tmkShKAX>>6s~&nfj(FmS)BV=7}k$hKWX|76vAXsYwRrNk++*rshV; gsm94EhKb2(iOHMO85M#U%{F%gn=t~Z{UP_n0Pmq0IsgCw diff --git a/iron/doc/acknowledgements/acknowledgements.html b/iron/doc/acknowledgements/acknowledgements.html index bc0b57f36b7..6bb56a08952 100644 --- a/iron/doc/acknowledgements/acknowledgements.html +++ b/iron/doc/acknowledgements/acknowledgements.html @@ -173,13 +173,13 @@

Maintainers -
+
- 8610 + 8600
-
+
@@ -214,7 +214,7 @@

Maintainers
0.70
-
+
@@ -415,7 +415,7 @@

Maintainers -
+
0.90 @@ -441,15 +441,15 @@

Maintainers -
+
0.23
-
+
@@ -457,7 +457,7 @@

Maintainers
@@ -8089,7 +8089,7 @@

Contributors -
+
@@ -8777,7 +8777,7 @@

Contributors
@@ -8806,7 +8806,7 @@

Contributors
@@ -8864,7 +8864,7 @@

Contributors
@@ -9125,7 +9125,7 @@

Contributors
@@ -9228,7 +9228,7 @@

Contributors -

Built on 2024-04-06 at 05:31 GMT

+

Built on 2024-04-07 at 05:31 GMT

diff --git a/iron/searchindex.js b/iron/searchindex.js index 7a60f6de852..25039180f61 100644 --- a/iron/searchindex.js +++ b/iron/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Iron!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45, 46], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48689": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46, 51], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "130": 0, "8610": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "35": [0, 50], "5628": 0, "09": 0, "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 11], "04": [0, 9, 56], "06": [0, 56], "03": [0, 21, 46], "26": 0, "14": [0, 17, 50, 55], "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50, 51], "01t10": 0, "36": 0, "22z": 0, "435": 0, "64346": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 36, 44, 45, 46], "578": 0, "406": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52], "70": 0, "03t11": 0, "19z": 0, "238": 0, "214": [0, 33], "90": [0, 29], "05t08": 0, "25": 0, "35z": 0, "480": 0, "111": 0, "23": [0, 4, 33], "04t06": 0, "34": 0, "04z": 0, "1435": 0, "1147": 0, "80": 0, "1155": 0, "604": 0, "52": [0, 48], "261": 0, "237": 0, "91": 0, "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 20, 22, 24, 25, 29, 31, 32, 33, 34, 36, 37, 43, 44, 46, 52], "develop": [0, 1, 4, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 46, 52], "inform": [0, 1, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 4, 9, 24, 35], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 35], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 50], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 3, 5], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "46": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 55], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 6], "09t10": 0, "21z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "268": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": 0, "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "125": 0, "22t09": 0, "27": 0, "11z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 35], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "github": [0, 4, 6, 10, 17, 29, 36, 54, 55, 56], "action": [0, 3, 5, 8, 44], "bot": 0, "28": [0, 50], "87": 0, "11t09": 0, "03z": 0, "bailac": 0, "68": 0, "08t11": 0, "49z": 0, "olivi": 0, "stass": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "49": 0, "26t02": 0, "31": [0, 56], "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "wiktor": 0, "bajor": 0, "99": [0, 9], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": 0, "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 17, 33], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 7], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "52z": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 36, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 16, 20, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "22": [0, 9], "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "najjar": [0, 7], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 17], "56z": 0, "970": 0, "21t01": 0, "00": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 21, 41, 44, 46], "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "166": 0, "151": 0, "03t06": 0, "04t20": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "96": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "124": 0, "01t20": 0, "108": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "107": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "103": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "andr": 0, "montano": 0, "anfemosa": 0, "63": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "171": 0, "156": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "60": 0, "14t09": 0, "88": 0, "196": 0, "23t02": 0, "78": 0, "79": 0, "219": 0, "199": 0, "10t19": 0, "210": 0, "27t13": 0, "181": 0, "25t01": 0, "69": 0, "14t18": 0, "163": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37, 43, 44, 45], "receiv": [0, 2, 4, 20, 29, 44, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 20, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 51, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 44, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 37, 46, 56], "consid": [1, 16, 35, 44, 51], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 46, 47, 50, 51, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 4, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 29, 33, 35, 36, 38, 43, 44, 45, 46, 47, 48, 50, 51, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 51, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46, 51], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46, 51], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 4, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43, 51], "give": [1, 7, 9, 17, 19, 20, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 4, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 56], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 20, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 20, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 51, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44, 46], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37, 51], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 36, 37, 41, 44, 46, 50, 51], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 4, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 4, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 36, 37, 44, 46, 50], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 39, 45, 46, 50, 51, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 20, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 51, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 51, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46, 51], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 48, 50, 51, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "sphinx": 1, "doc": [1, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "theme": 1, "gener": [1, 6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "locat": [1, 3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "control": [1, 7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "org": [1, 6, 11, 32, 34, 52], "while": [1, 4, 6, 7, 29, 33, 45], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "written": [1, 15, 23, 28, 29, 37], "respect": [1, 3, 4, 5, 6, 7, 20, 44, 45, 46], "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 20, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": [1, 4], "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 51, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50, 51], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35, 51], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 4, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 4, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 4, 7, 8, 45, 46], "compat": [1, 2, 4, 7, 15, 17], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 51, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 46, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22, 51], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "detail": [2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 49], "joint": [2, 4, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 47, 50, 51, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45, 51], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50, 51], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 4, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 20, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 20, 24, 29, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50, 51], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "start": [2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 51, 56], "stop": [2, 7, 8, 9, 12, 16, 19, 20, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 51, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 20, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 51, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 20, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 20, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29, 36], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 36, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 4, 5, 9, 12, 14, 15, 16, 19, 20, 25, 33, 35, 36, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 51, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50, 51], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41, 51], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 20, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 20, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 20, 29, 33, 44, 46], "initial_valu": [3, 5, 20, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37, 51], "link": [3, 4, 5, 7, 8, 12, 29, 33, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35, 51], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35, 51], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 51, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 51], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 4, 5, 17, 29, 35, 41, 51], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 36, 37, 44, 45, 46], "For": [3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 51, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 36, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 36, 38, 47, 53], "100": [3, 4, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 13, 14], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 46], "example_gripp": [3, 5], "iron": [4, 17, 29], "bug": [4, 56], "want": [4, 8, 9, 17], "thrive": 4, "roll": [4, 29, 35, 51], "stack": [4, 7, 56], "earlier": [4, 6], "done": [4, 7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "ros2_control_ci": 4, "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "figur": [4, 45], "uml": 4, "diagram": [4, 16], "intern": [4, 6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29, 36], "executor": [4, 9], "custom": [4, 13, 14, 17, 20, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 51], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35, 51], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50, 51], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 36, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 36, 45], "dynam": [4, 15, 21, 29, 33, 37, 54], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "ros2_control_demo_hardwar": [4, 13, 16], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 13], "joint1": [4, 13, 14, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 20, 24, 29, 31, 33, 44], "pure": 4, "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "ign": 5, "meet": [5, 56], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 14, 15, 25, 35, 42, 43, 46, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 20, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37, 51], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48, 51], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 20, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 51, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "part": [6, 7, 13, 29, 37, 45, 46], "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7, 36], "175": 6, "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 20, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30, 36], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "81": [6, 33], "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 45, 50], "scale": [7, 44], "factor": [7, 35], "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 15, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8, 20], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41, 51], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29, 36], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50, 51], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35, 51], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irrelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 20, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 16, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29, 36], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50, 51], "integ": [9, 36], "frequenc": [9, 36], "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "n": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 44, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50, 51], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "info": [9, 11, 12, 15, 29], "std": [9, 29, 35, 44, 51], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45, 46], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41, 46], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": [11, 36], "int": [11, 35, 48, 50, 51], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 20, 21, 24, 31, 33, 35, 44, 45, 46, 50, 51], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33, 46], "vacuum": [13, 20], "flang": 13, "off": 13, "rrbotsystemmutiplegpio": 13, "example_param_hw_start_duration_sec": 13, "example_param_hw_stop_duration_sec": 13, "example_param_hw_slowdown": 13, "flange_digital_io": 13, "digital_output1": 13, "know": 13, "digital_output2": 13, "digital_input1": 13, "digital_input2": 13, "flange_analog_io": [13, 20], "analog_output1": [13, 20], "analog_input1": [13, 20], "analog_input2": [13, 20], "flange_vacuum": [13, 20], "suction": 13, "grasp": 13, "multimod": 13, "multimodalgripp": 13, "parallel_fing": 13, "temperatur": [13, 17], "feedback": [13, 14, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "choic": [13, 50], "matric": 13, "rrbotforcetorquesensor2d": 13, "forcetorquesensor2dhardwar": 13, "fx": 13, "tz": 13, "kuka_tcp": 13, "fx_rang": 13, "tz_rang": 13, "temp_feedback": 13, "calibration_matrix_nr": 13, "mirror": [14, 20], "correspond": [14, 15, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": [14, 36], "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 36, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37, 51], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 20, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 20, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "hardware_component_nam": 16, "hardware_compon": 16, "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "tutori": 17, "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 51], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50, 51], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 36, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "interface_nam": [20, 39, 40], "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "list_hardware_compon": [20, 23, 24, 26, 27, 28], "faster": [20, 24, 35, 51], "genericsystem": [20, 24], "use_mock_hardwar": [20, 24], "ident": [20, 22, 24, 29, 31, 45], "unless": [20, 43], "nan": [20, 26, 44], "generic_system": 20, "wheel": [21, 32, 34, 35, 50, 51, 52], "front": [21, 32, 33, 34, 50, 51, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 51, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50, 51], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": [22, 44], "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50, 51], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35, 51], "rotat": [29, 35, 44, 51], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 35, 37, 39, 41, 42, 44, 46, 50, 51], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 36, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 51, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 51, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 51, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 51, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50, 51], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44, 51], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50, 51], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50, 51], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44, 51], "wrong": [35, 51], "behav": [35, 51], "correctli": [35, 51], "curv": [35, 51], "wheel_radiu": [35, 51], "slower": [35, 45, 51], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50, 51], "odom_frame_id": [35, 50, 51], "pose_covariance_diagon": [35, 50, 51], "covari": [35, 42, 50, 51], "tune": [35, 51], "sampl": [35, 45, 50, 51], "001": [35, 41, 51], "twist_covariance_diagon": [35, 50, 51], "speed": [35, 51], "open_loop": [35, 50, 51], "cmd_vel_timeout": [35, 51], "stale": [35, 44, 51], "velocity_rolling_window_s": [35, 50, 51], "old": [35, 51], "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": [35, 51], "numeric_limit": [35, 44, 51], "quiet_nan": [35, 44, 51], "min_veloc": [35, 51], "max_acceler": [35, 51], "min_acceler": [35, 51], "max_jerk": [35, 51], "min_jerk": [35, 51], "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "wheels_per_sid": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "onconfigur": 36, "configure_control": 36, "unspecifi": 36, "is_async": 36, "asynchron": 36, "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "start_with_hold": 44, "deprec": 44, "hold": [44, 45], "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "present": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "controller_st": [46, 50], "cumbersom": 46, "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "varianc": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 48, "rqt": 49, "nomenclatur": 50, "unstamp": 50, "concret": 50, "tricylc": 50, "seer": 50, "front_steer": 50, "front_wheels_nam": 50, "rear_wheels_nam": 50, "traction_feedback_typ": 50, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "number": 50, "averag": 50, "diagon": 50, "trail": 51, "axl": 51, "traction_joint_nam": 51, "steering_joint_nam": 51, "odom_only_twist": 51, "millisecond": 51, "500": 51, "publish_ackermann_command": 51, "max_deceler": 51, "min_deceler": 51, "max_posit": 51, "min_posit": 51, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "mujoco": 54, "algoryx": 54, "agx": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "huski": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "kinova": 55, "kortex": 55, "gen3": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 56, "toolkit": 56, "unreleas": 56, "question": 56, "wg": 56, "wednesdai": 56, "announc": 56, "discours": 56, "googl": 56, "tracker": 56, "reproduc": 56, "regard": 56, "built": 56, "gmt": 56}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 12, 14, 15], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 17], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 17], "run": [3, 4, 5, 17], "demo": [3, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 17], "binari": 4, "packag": [4, 17], "from": [4, 6, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 55], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 22], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 51, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 46, 50, 51], "line": 16, "list_control": 16, "list_controller_typ": 16, "list_hardware_compon": 16, "list_hardware_interfac": 16, "load_control": 16, "reload_controller_librari": 16, "set_controller_st": 16, "set_hardware_component_st": 16, "switch_control": 16, "unload_control": 16, "view_controller_chain": 16, "what": 17, "you": 17, "can": 17, "find": 17, "thi": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "common": 36, "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "iron": 56, "develop": 56, "organis": 56}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [17, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [12, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [51, "parameters"], [52, "parameters"], [53, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[12, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[12, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[13, "ros2-control-hardware-interface-types"]], "Joints": [[13, "joints"]], "Sensors": [[13, "sensors"]], "GPIOs": [[13, "gpios"]], "Examples": [[13, "examples"], [17, "examples"]], "Mock Components": [[14, "mock-components"]], "Generic System": [[14, "generic-system"]], "Per-joint Parameters": [[14, "per-joint-parameters"]], "Writing a Hardware Component": [[15, "writing-a-hardware-component"]], "Useful External References": [[15, "useful-external-references"], [37, "useful-external-references"]], "Command Line Interface": [[16, "command-line-interface"]], "list_controllers": [[16, "list-controllers"]], "list_controller_types": [[16, "list-controller-types"]], "list_hardware_components": [[16, "list-hardware-components"]], "list_hardware_interfaces": [[16, "list-hardware-interfaces"]], "load_controller": [[16, "load-controller"]], "reload_controller_libraries": [[16, "reload-controller-libraries"]], "set_controller_state": [[16, "set-controller-state"]], "set_hardware_component_state": [[16, "set-hardware-component-state"]], "switch_controllers": [[16, "switch-controllers"]], "unload_controller": [[16, "unload-controller"]], "view_controller_chains": [[16, "view-controller-chains"]], "Demos": [[17, "demos"]], "What you can find in this repository": [[17, "what-you-can-find-in-this-repository"]], "Goals": [[17, "goals"]], "Examples Overview": [[17, "examples-overview"]], "Local installation": [[17, "local-installation"]], "Build from debian packages": [[17, "build-from-debian-packages"]], "Build from source": [[17, "build-from-source"]], "Using Docker": [[17, "using-docker"]], "To view the robot": [[17, "to-view-the-robot"]], "To run the ros2_control demos": [[17, "to-run-the-ros2-control-demos"]], "Quick Hints": [[17, "quick-hints"]], "Example 1: RRBot": [[19, "example-1-rrbot"]], "Tutorial steps": [[19, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"]], "Files used for this demos": [[19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "files-used-for-this-demos"]], "Controllers from this demo": [[19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Common Controller Parameters": [[36, "common-controller-parameters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "position_controllers": [[47, "position-controllers"]], "position_controllers/JointGroupPositionController": [[47, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[48, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[49, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[50, "steering-controllers-library"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "tricycle_controller": [[51, "tricycle-controller"]], "Velocity commands": [[51, "velocity-commands"]], "tricycle_steering_controller": [[52, "tricycle-steering-controller"]], "velocity_controllers": [[53, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[53, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[54, "simulator-integrations"]], "Hosted by ros-controls": [[54, "hosted-by-ros-controls"]], "Community": [[54, "community"]], "Supported Robots": [[55, "supported-robots"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Iron!": [[56, "welcome-to-the-ros2-control-documentation-iron"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Iron!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45, 46], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48689": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46, 51], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "128": 0, "8600": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "35": [0, 50], "5628": 0, "09": 0, "26t19": 0, "07": [0, 56], "58z": 0, "fetch": [0, 11], "04": [0, 9, 56], "03": [0, 21, 46], "25": 0, "53": 0, "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50, 51], "01t10": 0, "36": 0, "22z": 0, "435": 0, "64346": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 36, 44, 45, 46], "577": 0, "405": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52], "70": 0, "03t11": 0, "19z": 0, "238": 0, "214": [0, 33], "90": [0, 29], "05t08": 0, "35z": 0, "479": 0, "111": 0, "23": [0, 4, 33], "04t06": 0, "34": 0, "04z": 0, "1435": 0, "1147": 0, "80": 0, "1155": 0, "604": 0, "52": [0, 48], "261": 0, "237": 0, "91": 0, "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 20, 22, 24, 25, 29, 31, 32, 33, 34, 36, 37, 43, 44, 46, 52], "develop": [0, 1, 4, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 46, 52], "inform": [0, 1, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 4, 9, 24, 35], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 35], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "06": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 50], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 3, 5], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "46": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 55], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 6], "09t10": 0, "21z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "268": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": 0, "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "125": 0, "22t09": 0, "27": 0, "11z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 35], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "github": [0, 4, 6, 10, 17, 29, 36, 54, 55, 56], "action": [0, 3, 5, 8, 44], "bot": 0, "28": [0, 50], "87": 0, "11t09": 0, "03z": 0, "bailac": 0, "68": 0, "08t11": 0, "14": [0, 17, 50, 55], "49z": 0, "olivi": 0, "stass": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "49": 0, "26t02": 0, "31": [0, 56], "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "wiktor": 0, "bajor": 0, "99": [0, 9], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": 0, "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "26": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 17, 33], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 7], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "52z": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 36, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 16, 20, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "22": [0, 9], "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "najjar": [0, 7], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 17], "56z": 0, "970": 0, "21t01": 0, "00": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 21, 41, 44, 46], "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "166": 0, "151": 0, "03t06": 0, "04t20": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "96": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "124": 0, "01t20": 0, "107": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "103": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "andr": 0, "montano": 0, "anfemosa": 0, "63": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "171": 0, "156": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "60": 0, "14t09": 0, "88": 0, "196": 0, "23t02": 0, "78": 0, "79": 0, "219": 0, "199": 0, "10t19": 0, "210": 0, "27t13": 0, "181": 0, "25t01": 0, "69": 0, "14t18": 0, "163": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37, 43, 44, 45], "receiv": [0, 2, 4, 20, 29, 44, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 20, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 51, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 44, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 37, 46, 56], "consid": [1, 16, 35, 44, 51], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 46, 47, 50, 51, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 4, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 29, 33, 35, 36, 38, 43, 44, 45, 46, 47, 48, 50, 51, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 51, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46, 51], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46, 51], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 4, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43, 51], "give": [1, 7, 9, 17, 19, 20, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 4, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 56], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 20, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 20, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 51, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44, 46], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37, 51], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 36, 37, 41, 44, 46, 50, 51], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 4, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 4, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 36, 37, 44, 46, 50], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 39, 45, 46, 50, 51, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 20, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 51, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 51, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46, 51], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 48, 50, 51, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "sphinx": 1, "doc": [1, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "theme": 1, "gener": [1, 6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "locat": [1, 3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "control": [1, 7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "org": [1, 6, 11, 32, 34, 52], "while": [1, 4, 6, 7, 29, 33, 45], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "written": [1, 15, 23, 28, 29, 37], "respect": [1, 3, 4, 5, 6, 7, 20, 44, 45, 46], "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 20, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": [1, 4], "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 51, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50, 51], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35, 51], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 4, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 4, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 4, 7, 8, 45, 46], "compat": [1, 2, 4, 7, 15, 17], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 51, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 46, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22, 51], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "detail": [2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 49], "joint": [2, 4, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 47, 50, 51, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45, 51], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50, 51], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 4, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 20, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 20, 24, 29, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50, 51], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "start": [2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 51, 56], "stop": [2, 7, 8, 9, 12, 16, 19, 20, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 51, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 20, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 51, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 20, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 20, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29, 36], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 36, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 4, 5, 9, 12, 14, 15, 16, 19, 20, 25, 33, 35, 36, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 51, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50, 51], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41, 51], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 20, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 20, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 20, 29, 33, 44, 46], "initial_valu": [3, 5, 20, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37, 51], "link": [3, 4, 5, 7, 8, 12, 29, 33, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35, 51], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35, 51], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 51, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 51], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 4, 5, 17, 29, 35, 41, 51], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 36, 37, 44, 45, 46], "For": [3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 51, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 36, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 36, 38, 47, 53], "100": [3, 4, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 13, 14], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 46], "example_gripp": [3, 5], "iron": [4, 17, 29], "bug": [4, 56], "want": [4, 8, 9, 17], "thrive": 4, "roll": [4, 29, 35, 51], "stack": [4, 7, 56], "earlier": [4, 6], "done": [4, 7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "ros2_control_ci": 4, "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "figur": [4, 45], "uml": 4, "diagram": [4, 16], "intern": [4, 6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29, 36], "executor": [4, 9], "custom": [4, 13, 14, 17, 20, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 51], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35, 51], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50, 51], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 36, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 36, 45], "dynam": [4, 15, 21, 29, 33, 37, 54], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "ros2_control_demo_hardwar": [4, 13, 16], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 13], "joint1": [4, 13, 14, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 20, 24, 29, 31, 33, 44], "pure": 4, "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "ign": 5, "meet": [5, 56], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 14, 15, 25, 35, 42, 43, 46, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 20, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37, 51], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48, 51], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 20, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 51, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "part": [6, 7, 13, 29, 37, 45, 46], "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7, 36], "175": 6, "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 20, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30, 36], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "81": [6, 33], "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 45, 50], "scale": [7, 44], "factor": [7, 35], "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 15, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8, 20], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41, 51], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29, 36], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50, 51], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35, 51], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irrelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 20, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 16, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29, 36], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50, 51], "integ": [9, 36], "frequenc": [9, 36], "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "n": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 44, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50, 51], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "info": [9, 11, 12, 15, 29], "std": [9, 29, 35, 44, 51], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45, 46], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41, 46], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": [11, 36], "int": [11, 35, 48, 50, 51], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 20, 21, 24, 31, 33, 35, 44, 45, 46, 50, 51], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33, 46], "vacuum": [13, 20], "flang": 13, "off": 13, "rrbotsystemmutiplegpio": 13, "example_param_hw_start_duration_sec": 13, "example_param_hw_stop_duration_sec": 13, "example_param_hw_slowdown": 13, "flange_digital_io": 13, "digital_output1": 13, "know": 13, "digital_output2": 13, "digital_input1": 13, "digital_input2": 13, "flange_analog_io": [13, 20], "analog_output1": [13, 20], "analog_input1": [13, 20], "analog_input2": [13, 20], "flange_vacuum": [13, 20], "suction": 13, "grasp": 13, "multimod": 13, "multimodalgripp": 13, "parallel_fing": 13, "temperatur": [13, 17], "feedback": [13, 14, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "choic": [13, 50], "matric": 13, "rrbotforcetorquesensor2d": 13, "forcetorquesensor2dhardwar": 13, "fx": 13, "tz": 13, "kuka_tcp": 13, "fx_rang": 13, "tz_rang": 13, "temp_feedback": 13, "calibration_matrix_nr": 13, "mirror": [14, 20], "correspond": [14, 15, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": [14, 36], "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 36, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37, 51], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 20, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 20, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "hardware_component_nam": 16, "hardware_compon": 16, "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "tutori": 17, "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 51], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50, 51], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 36, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "interface_nam": [20, 39, 40], "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "list_hardware_compon": [20, 23, 24, 26, 27, 28], "faster": [20, 24, 35, 51], "genericsystem": [20, 24], "use_mock_hardwar": [20, 24], "ident": [20, 22, 24, 29, 31, 45], "unless": [20, 43], "nan": [20, 26, 44], "generic_system": 20, "wheel": [21, 32, 34, 35, 50, 51, 52], "front": [21, 32, 33, 34, 50, 51, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 51, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50, 51], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": [22, 44], "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50, 51], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35, 51], "rotat": [29, 35, 44, 51], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 35, 37, 39, 41, 42, 44, 46, 50, 51], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 36, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 51, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 51, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 51, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 51, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50, 51], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44, 51], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50, 51], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50, 51], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44, 51], "wrong": [35, 51], "behav": [35, 51], "correctli": [35, 51], "curv": [35, 51], "wheel_radiu": [35, 51], "slower": [35, 45, 51], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50, 51], "odom_frame_id": [35, 50, 51], "pose_covariance_diagon": [35, 50, 51], "covari": [35, 42, 50, 51], "tune": [35, 51], "sampl": [35, 45, 50, 51], "001": [35, 41, 51], "twist_covariance_diagon": [35, 50, 51], "speed": [35, 51], "open_loop": [35, 50, 51], "cmd_vel_timeout": [35, 51], "stale": [35, 44, 51], "velocity_rolling_window_s": [35, 50, 51], "old": [35, 51], "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": [35, 51], "numeric_limit": [35, 44, 51], "quiet_nan": [35, 44, 51], "min_veloc": [35, 51], "max_acceler": [35, 51], "min_acceler": [35, 51], "max_jerk": [35, 51], "min_jerk": [35, 51], "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "wheels_per_sid": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "onconfigur": 36, "configure_control": 36, "unspecifi": 36, "is_async": 36, "asynchron": 36, "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "start_with_hold": 44, "deprec": 44, "hold": [44, 45], "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "present": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "controller_st": [46, 50], "cumbersom": 46, "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "varianc": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 48, "rqt": 49, "nomenclatur": 50, "unstamp": 50, "concret": 50, "tricylc": 50, "seer": 50, "front_steer": 50, "front_wheels_nam": 50, "rear_wheels_nam": 50, "traction_feedback_typ": 50, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "number": 50, "averag": 50, "diagon": 50, "trail": 51, "axl": 51, "traction_joint_nam": 51, "steering_joint_nam": 51, "odom_only_twist": 51, "millisecond": 51, "500": 51, "publish_ackermann_command": 51, "max_deceler": 51, "min_deceler": 51, "max_posit": 51, "min_posit": 51, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "mujoco": 54, "algoryx": 54, "agx": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "huski": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "kinova": 55, "kortex": 55, "gen3": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 56, "toolkit": 56, "unreleas": 56, "question": 56, "wg": 56, "wednesdai": 56, "announc": 56, "discours": 56, "googl": 56, "tracker": 56, "reproduc": 56, "regard": 56, "built": 56, "gmt": 56}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 12, 14, 15], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 17], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 17], "run": [3, 4, 5, 17], "demo": [3, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 17], "binari": 4, "packag": [4, 17], "from": [4, 6, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 55], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 22], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 51, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 46, 50, 51], "line": 16, "list_control": 16, "list_controller_typ": 16, "list_hardware_compon": 16, "list_hardware_interfac": 16, "load_control": 16, "reload_controller_librari": 16, "set_controller_st": 16, "set_hardware_component_st": 16, "switch_control": 16, "unload_control": 16, "view_controller_chain": 16, "what": 17, "you": 17, "can": 17, "find": 17, "thi": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "common": 36, "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "iron": 56, "develop": 56, "organis": 56}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [17, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [12, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [51, "parameters"], [52, "parameters"], [53, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[12, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[12, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[13, "ros2-control-hardware-interface-types"]], "Joints": [[13, "joints"]], "Sensors": [[13, "sensors"]], "GPIOs": [[13, "gpios"]], "Examples": [[13, "examples"], [17, "examples"]], "Mock Components": [[14, "mock-components"]], "Generic System": [[14, "generic-system"]], "Per-joint Parameters": [[14, "per-joint-parameters"]], "Writing a Hardware Component": [[15, "writing-a-hardware-component"]], "Useful External References": [[15, "useful-external-references"], [37, "useful-external-references"]], "Command Line Interface": [[16, "command-line-interface"]], "list_controllers": [[16, "list-controllers"]], "list_controller_types": [[16, "list-controller-types"]], "list_hardware_components": [[16, "list-hardware-components"]], "list_hardware_interfaces": [[16, "list-hardware-interfaces"]], "load_controller": [[16, "load-controller"]], "reload_controller_libraries": [[16, "reload-controller-libraries"]], "set_controller_state": [[16, "set-controller-state"]], "set_hardware_component_state": [[16, "set-hardware-component-state"]], "switch_controllers": [[16, "switch-controllers"]], "unload_controller": [[16, "unload-controller"]], "view_controller_chains": [[16, "view-controller-chains"]], "Demos": [[17, "demos"]], "What you can find in this repository": [[17, "what-you-can-find-in-this-repository"]], "Goals": [[17, "goals"]], "Examples Overview": [[17, "examples-overview"]], "Local installation": [[17, "local-installation"]], "Build from debian packages": [[17, "build-from-debian-packages"]], "Build from source": [[17, "build-from-source"]], "Using Docker": [[17, "using-docker"]], "To view the robot": [[17, "to-view-the-robot"]], "To run the ros2_control demos": [[17, "to-run-the-ros2-control-demos"]], "Quick Hints": [[17, "quick-hints"]], "Example 1: RRBot": [[19, "example-1-rrbot"]], "Tutorial steps": [[19, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"]], "Files used for this demos": [[19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "files-used-for-this-demos"]], "Controllers from this demo": [[19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Common Controller Parameters": [[36, "common-controller-parameters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "position_controllers": [[47, "position-controllers"]], "position_controllers/JointGroupPositionController": [[47, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[48, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[49, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[50, "steering-controllers-library"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "tricycle_controller": [[51, "tricycle-controller"]], "Velocity commands": [[51, "velocity-commands"]], "tricycle_steering_controller": [[52, "tricycle-steering-controller"]], "velocity_controllers": [[53, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[53, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[54, "simulator-integrations"]], "Hosted by ros-controls": [[54, "hosted-by-ros-controls"]], "Community": [[54, "community"]], "Supported Robots": [[55, "supported-robots"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Iron!": [[56, "welcome-to-the-ros2-control-documentation-iron"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/master/.buildinfo b/master/.buildinfo index f112880c481..d43b9811591 100644 --- a/master/.buildinfo +++ b/master/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 8eb21efb20c696a9d2c437e1cde18645 +config: 08d0bcc6e99851deb01fea499f631600 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/master/.doctrees/doc/acknowledgements/acknowledgements.doctree b/master/.doctrees/doc/acknowledgements/acknowledgements.doctree index 799fca065f31bdd8068d944eeaacef60ade87438..ee0051b1ffb1e8ad0f01fe3dd39e0b2e73cc22d4 100644 GIT binary patch delta 1256 zcmdT?-%C_M7-jD6y1U-H?$xxY6%nGBgmvcrnz`GL-4`t>SP7B>L)XM#tguQ4hfl5K65p80xQ7{LF`Oaa^_nmKayN+(x zIR{-+s~KkyC|dkRvc0RRvpRud7$K9y6*J!2ViIJwsVLT_VLgFhOjV%S5+kjIR9o5M zGOIiz+jqgZ8{D+tqqo3{G$!qL6(KL3EE4+ssuF|*DiG=rDY{D0bH{0c7&KcdCFn+z zaKw*;hM^(_BU6XE#u+p2t916FN3`n?r(A`&5~?9Z4{>cK2ToaX`Pg6kX~>!w_SogH zxAXuT#nwFSu`k!mmHeUD!PQ>-)s;s8h&G&F1a_ox!b#Dp7yudtAAAYgeAaP^%Ex>G z>uIcCLMAjcq-dC^s;g0QP!(O%RF7r(+iUeWxJpJ zUv?kc6T@ry0r3{X_B>rY^m|)jp4VO^x5Kk6JPWSZ=GD`Dw^$}8jGf7Q++Dc2^d@w0 zI5}Kw6BfMQ-p7d0Z^y+Bx*n3`^hlMP!^7caBUOdfTl=|;b63vMvK=WfB^US8uPJH8 zPYe_3gkYjW&A`g9lpgeoF7~WjobID54Pt=xd=eEG^$qcBETJ%~X$qk~OeEBR9K9W{=l(f|Me delta 1338 zcmdUvT}TvB6vvry)^Xh(cW1Q^a?ypJLRja{_h|M7TbPBYFNO(jyPBqMT7lS_rBd71 zgK=>WL}c{Pi%Qx+S9-GOp@=XE>{&Zu0_lnWa0j@s&u8IU4Asu+PilgKbC5w|PZ&XfI>C+>+?GlF5psO0u9U zBHTa380ja%+jJE{@D3a0k>*!*NmUgMDT1sk8ti;yuYt)bCc`XWAGKwwK0zuH)gmNA zV%p`0ubUklc6rbLwU>MFU~h)GNjRSKCvQA{H`Ijty{uUk81<}09W$R)k5Ck4_D3qy zflqULfgk4@@XW4C@L?_&-wU4NL|GJ*e<Zd51Vd5`RZt9s zfPcW2L)!>vGxtUJGL#Oe#O=k`noo0*WEcXHHBFa91?pa={oru4rJE8l|E(J8zPRkT zyQeYLE}j71>TJjVV6x2|?4A3qE#?GFXRlJ$Nvo0ezKUT|F-$e?P6d*K=7If76pQmC zjqze9AM0DBNZ%s;XzSW+j6rFZ7)v(7p!CV*)%YmHUbx(`cmZoE!;+oE3o;8or?SNI zv9KpO8@VtVqod&La?ZGP1+6^LK19`!r>%~wU2x!%GnXuUa(tkPw>4`A4cGH|Z}Q?J zOmmT#m=d~ziu)%Th3X^BD3YL#d9mlh*_J(lA9!^d46RexpHoio3);$yzf)y B&D{V1 diff --git a/master/.doctrees/doc/contributing/contributing.doctree b/master/.doctrees/doc/contributing/contributing.doctree index ea7dde5734c06e8f813430b1c029aa58aba43a3c..6e512633ade152af5c4df78728dd4f59af4762f2 100644 GIT binary patch delta 64 zcmaERl=1CR#tq?&h9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g T#zqE~Nr@II78aX37*i7g*PRrw delta 64 zcmaERl=1CR#tq?&hKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ThQ_Jpi6$lniKd%77*i7g;P(|E diff --git a/master/.doctrees/doc/gazebo_ros2_control/doc/index.doctree b/master/.doctrees/doc/gazebo_ros2_control/doc/index.doctree index fb5d7d27a7a44c6468f229a6152fc9470adf8f3f..c5cb04e35ce40ac392fecd00f3aeb6c9d2e24540 100644 GIT binary patch delta 129 zcmex(fa&7_rVSR1MkdKch3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g h#zqE~Nr@II78d%G_i@N>ZfC5nCr_`$W}ik?c>tRoC=LJs delta 129 zcmex(fa&7_rVSR1MuyqB>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ hhQ_Jpi6$lniKhCK_i@N>ZfC5nCr_`$W}ik?c>v6DDDD6N diff --git a/master/.doctrees/doc/getting_started/getting_started.doctree b/master/.doctrees/doc/getting_started/getting_started.doctree index e536bd3ece63a80aff059a5d25ab06c45e8b1e54..9f4b20fb5c94fe9164fb15cff675a24a96326c66 100644 GIT binary patch delta 64 zcmex3o%!Q*<_!jnh9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g U#zqE~Nr@II78aWm87G_q0K453rT_o{ delta 64 zcmex3o%!Q*<_!jnhKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ UhQ_Jpi6$lniKd$q87G_q0L3>I761SM diff --git a/master/.doctrees/doc/gz_ros2_control/doc/index.doctree b/master/.doctrees/doc/gz_ros2_control/doc/index.doctree index bbd3d1bbfb21d4c1a22759c69f51891c20bc3f9d..179bfa09f3acb4a8bf7d6ac07084d340154a88d0 100644 GIT binary patch delta 123 zcmeygmg&=4rVR#+h9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g f#zqE~Nr@II78aWm8A~cj*ETtkQFOC(^>t|ggq0=f delta 123 zcmeygmg&=4rVR#+hKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ fhQ_Jpi6$lniKd$q8A~cj*ETtkQFOC(^>t|gve_od diff --git a/master/.doctrees/doc/migration/differences_to_ros1.doctree b/master/.doctrees/doc/migration/differences_to_ros1.doctree index 1311f810ba577bcdaf40f67c2306e31c425b36f8..88fb833cbfcd6ac77c969b188832c38438e60cc5 100644 GIT binary patch delta 64 zcmaFW$MmX?X@eG{p-FO4VR}w{wtkvnqPd}=rA4xlWpYZArG=qosof Tp>e8tqKSz?qUq*nM*cPcx=a)! diff --git a/master/.doctrees/doc/migration/migration.doctree b/master/.doctrees/doc/migration/migration.doctree index 341462a426256ee2797059151755e20458552864..d0e5a6b9aa069a7dc97c9222aafaad261253d048 100644 GIT binary patch delta 62 zcmeBD>r&gG!f0rcTvV8z6Q8Z0W|(MhXlQAXY-E|7l4NONXqjqkn3!r}ZklFjkZ5dV RV40L?kz!%7Ih1j$AOK8%5<~z1 delta 62 zcmeBD>r&gG!f0riotvJSQkki5W^SHnk(^?ZVqs}%YGIgWlxUP}X`Yf|l#-TeoNQ>E RYMy9fVvuOMIh1j$AOKa_60`sS diff --git a/master/.doctrees/doc/project_ideas.doctree b/master/.doctrees/doc/project_ideas.doctree index 29571e996c86d7694152f4b1991601f0cdd60be5..78227dc2805d7f8cb193f5ad1438962402286435 100644 GIT binary patch delta 64 zcmZ4digEEP#tk}*h9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g U#zqE~Nr@II78aXh8IKhM0K3-|g8%>k delta 64 zcmZ4digEEP#tk}*hKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ UhQ_Jpi6$lniKd%l8IKhM0L3vB^8f$< diff --git a/master/.doctrees/doc/resources/resources.doctree b/master/.doctrees/doc/resources/resources.doctree index 9cce379eacfb9cd2e05bc19a9995202b2b8dc6f2..2c6311c68639a4a9aa2d85a97c0627e0f7128281 100644 GIT binary patch delta 68 zcmaDnoAvQ*)(t9*h9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g X#zqE~Nr@II78cE+jN3yQ8T)(y1#lGH delta 68 zcmaDnoAvQ*)(t9*hKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ XhQ_Jpi6$lniKfk=jN3yQ8T)(y5Q-H{ diff --git a/master/.doctrees/doc/resources/roscon2023_workshop.doctree b/master/.doctrees/doc/resources/roscon2023_workshop.doctree index 1eeae6edcf0ed6638ea1275f437ff2fda3bcd8d2..23c75d4277f91f2a915521a59e8e5da86a695e01 100644 GIT binary patch delta 62 zcmca!cD-za1*4%!a#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Rfn`#nMT&*R=1j(SmH?a&6bAqR delta 62 zcmca!cD-za1*4&1c5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot Rs(GS`i9w?2=1j(SmH?$`6n6js diff --git a/master/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree b/master/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree index 1a11c8c14b8dd6902068cdd315360ddfcc836d6a..22a24ff975d95e8568d7e71af706f743ed62122f 100644 GIT binary patch delta 64 zcmX?io$=gt#tjyXh9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g T#zqE~Nr@II78aW`8B?>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ThQ_Jpi6$lniKd$~8B?6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ZhQ_Jpi6$lniKhCK`wBERFJNTu1ppAJ75D%E diff --git a/master/.doctrees/doc/ros2_control/doc/index.doctree b/master/.doctrees/doc/ros2_control/doc/index.doctree index 4d1c090ec605118ed65da88d52d094d4ab325908..170b1423200b9d2786db79bb4136f93acd2b4db8 100644 GIT binary patch delta 62 zcmaE2_{4C79iyR1a#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Rfn`#nMT&*R=6uFdaR7ot69@nR delta 62 zcmaE2_{4C79iyRPc5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot Rs(GS`i9w?2=6uFdaR7^*6Lak8Ot Rs(GS`i9w?2<_V1URsgC06bS$T diff --git a/master/.doctrees/doc/ros2_control/doc/migration/Iron.doctree b/master/.doctrees/doc/ros2_control/doc/migration/Iron.doctree index 5485e5ea6a265ab83a10d91c6da7dc777d00e260..d1ac20449eea209de477c2f1e19fc871822322b9 100644 GIT binary patch delta 62 zcmdlKyeW7?B%`58a#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Rfn`#nMT&*R<}OAJ4FG^e65;>= delta 62 zcmdlKyeW7?B%`5Wc5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot Rs(GS`i9w?2<}OAJ4FHLs6H)*G diff --git a/master/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree b/master/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree index 69cc456af9cc4789b8a8953e933424638fd84af7..10ee1d6f0fcf517fcd139f9d69e74bc456d1c70b 100644 GIT binary patch delta 64 zcmcchoblFk#tnXqh9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g T#zqE~Nr@II78aZ98Ka8;+=LXv delta 64 zcmcchoblFk#tnXqhKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ThQ_Jpi6$lniKd(D8Ka8;<=z!D diff --git a/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree b/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree index c04ebbef7924832f38f0141862abb0e2bd96b9fd..961384b580a6895376891f7c21ed43d9e51ce0c7 100644 GIT binary patch delta 67 zcmez3^u=j|2cwZma#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Xfn`#nMT&)m{$zhv=goT=x61ak8Ot Xs(GS`i9w>N{$zhv=goT=x61&7XVc67dHR^ delta 69 zcmex*kMZk0#tlJ?MuyqB>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ZhQ_Jpi6$lniKhCK7jS!QKEt>&7XV;+7pDLK diff --git a/master/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree b/master/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree index 08ca966f79a33ec9452aaae5732a5ad338ad9d7f..927833baf5c32243a8f4b495bf312ed1746ec267 100644 GIT binary patch delta 64 zcmeC}WbEx^+~B}yXp&r1n4S}#t)FI?Xl`g|X_0JXnVgbjX<=xYYHXO8YGQ7hW@wOT TY-C`WlxUG+VX?W8QN|eng}xHw delta 64 zcmeC}WbEx^+~B}yXqcUwo|#gasc&X(o@kMrVv=HEX=!RfuAgiRBX delta 64 zcmZo~WNB|?+2F@$XqcUwo|#gasc&X(o@kMrVv=HEX=!RfuAji(d= diff --git a/master/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index a43905eb2ee6d3c914c480def9e6844c0b3893d5..231b5f1f5bbdd07998673dc5b140c8bbdc3268a6 100644 GIT binary patch delta 64 zcmaF%iSgMd#tn9ih9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g U#zqE~Nr@II78aZH8NZhU0Ob}HasU7T delta 64 zcmaF%iSgMd#tn9ihKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ UhQ_Jpi6$lniKd(L8NZhU0Pb)V;s5{u diff --git a/master/.doctrees/doc/ros2_control_demos/doc/index.doctree b/master/.doctrees/doc/ros2_control_demos/doc/index.doctree index 3288d1e18dba882ba1e50dc9c30def366711766f..9a20bfe2e07f960bd0ff1fbcb993002b7f71268b 100644 GIT binary patch delta 69 zcmX@y!F;%bd4n0Fkx6nof Zp>e8tqKSz?qN)C5!A%OAI~aE#0ss;{7Lot} diff --git a/master/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree b/master/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree index 3e385881e2bbbe30516a1300b3f36d4e1c71f80f..bca90a7e4a875a425e36f3ee4caf4e21d70d2846 100644 GIT binary patch delta 62 zcmeB_>Xh2h&thnjTvV8z6Q8Z0W|(MhXlQAXY-E|7l4NONXqjqkn3!r}ZklFjkZ5dV RV40L?kz!%7`2dS22LNBR5|ID^ delta 62 zcmeB_>Xh2h&thnpotvJSQkki5W^SHnk(^?ZVqs}%YGIgWlxUP}X`Yf|l#-TeoNQ>E RYMy9fVvuOM`2dS22LNdf69E7K diff --git a/master/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree index ce72bc5af9277979128ec2627db28b9cdc017967..c5b8217223fdf6d0ef771fbe41db9626fd768624 100644 GIT binary patch delta 76 zcmeBfWbJNb-4MlSWRhG|n4S}#t)FI?Xl`g|X_0JXnVgbjX<=xYYHXO8YGQ7hW@wOT gY-C`WlxUG+VWB^XUwpExfN1j$#_c;8886!b0D&zQ=l}o! delta 76 zcmeBfWbJNb-4MlSWSE_so|#gasc&X(o@kMrVv=HEX=!R<&B delta 64 zcmaDhpXu3rrVTNShKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ThQ_Jpi6$lniKd%-86*1u%?T9q diff --git a/master/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree index aa04e12556f375b775e8abad9efc9089118ff2ff..611b45a9801c9a2bc53cf206c535de493f407d0b 100644 GIT binary patch delta 73 zcmdnm#k94HX+sR7kx6nof dp>e8tqKSz?qN)C5Ljm#0zgwg?A7CtP1^{oc7xMrB diff --git a/master/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree index 6a8bd470611edfd4f5fbd461b4ec35e635fcac75..41bd803db2803d9e36a21f556a7f6a53d3e40d6a 100644 GIT binary patch delta 69 zcmbRHk7@2drVTNSMkdKch3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g Z#zqE~Nr@II78d%GCvb^xUdmXp7XUZA7Ks1= delta 69 zcmbRHk7@2drVTNSMuyqB>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ZhQ_Jpi6$lniKhCKCvb^xUdmXp7XU*=7Wn`G diff --git a/master/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree index c8c538652fd13eb3d978068dbb8e77a69d2dac11..11e03dde040c76182995edd237b510c68799fea6 100644 GIT binary patch delta 73 zcmeBQ!PLKkX+sR7kx6nof dp>e8tqKSz?qN)C5L4NVcwR~cmcQb}e0svv+7P0^U diff --git a/master/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree index 8560895dc14cb2e0e1a262938a88749f6b304039..c983c8bfd03a31305916f3023ed86936d205d284 100644 GIT binary patch delta 73 zcmdn8mTAjcrVUYyMkdKch3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g d#zqE~Nr@II78d%G9i>z!cTVHkyqEF&6aaJa7!Cjc delta 73 zcmdn8mTAjcrVUYyMuyqB>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ dhQ_Jpi6$lniKhCK9i>z!cTVHkyqEF&6aaxc7=8c% diff --git a/master/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree index cebb6287125521a4e85c8a851184ec9e3a34c6cc..360aa3e8c2f71e6161ba517992b3c7a4d3c7fa8e 100644 GIT binary patch delta 73 zcmZ4UmTApfrVUYyMkdKch3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g d#zqE~Nr@II78d%G1^L7$Z{-!;yo2$}766S#7x(}G delta 73 zcmZ4UmTApfrVUYyMuyqB>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ dhQ_Jpi6$lniKhCK1^L7$Z{-!;yo2$}766)%7-#?h diff --git a/master/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree index a00084a1a63f863855f136680066d1a7acc46d3a..e936addce1215ad52677a0ae086533bdc6c7195e 100644 GIT binary patch delta 73 zcmbQWoN3l_rVUYyMkdKch3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g d#zqE~Nr@II78d%G75K#`_wtEu-of~2A^=6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ dhQ_Jpi6$lniKhCK75K#`_wtEu-of~2A^>SK7i<6k diff --git a/master/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree index 14234959f6d567b2d72d2ac838fb5aeae1d24d7d..f0593d5e780d47740ef0b4d0dcb43d88c719a4a5 100644 GIT binary patch delta 73 zcmdmSfN948rVUYyMkdKch3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g d#zqE~Nr@II78d%GC&s8w=3T(Ec`sx2JOF~S7wP~2 delta 73 zcmdmSfN948rVUYyMuyqB>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ dhQ_Jpi6$lniKhCKC&s8w=3T(Ec`sx2JOGdU7+L@T diff --git a/master/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree index 66eccae02628cedbdcc6e840f2a299768a8ad846..3c41c73d3a03fb6a99da611a8a57610f682d2820 100644 GIT binary patch delta 73 zcmZ49%(T3jX+spFkx6nw delta 73 zcmZ49%(T3jX+spFkzsajdS*&xroNfEd7?#fib;xvrKPEbVVY5*QL?3ZN{UfRTB>of dp>e8tqKSz?qN)DmKpyeQ0=%M|cQC%M2LM{;7U=*0 diff --git a/master/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree index 951b840ad4852a7b5ced16a5e24e1a3aae1b97f3..d2b8c5b9a63399f3edba82b8da04615b2a10f76c 100644 GIT binary patch delta 73 zcmaETknQzBwhd8?MkdKch3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g d#zqE~Nr@II78d%G?>VV9Z)DuQk&)4AJ^-a87%u<- delta 73 zcmaETknQzBwhd8?MuyqB>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ dhQ_Jpi6$lniKhCK?>VV9Z)DuQk&)4AJ^-?A7@q(D diff --git a/master/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree index 6acc8ae16d946b3cfa7407b070a26e88e5b41c3d..ba9eebd5143078df0a6a86532916e7dc1a0d829f 100644 GIT binary patch delta 73 zcmX^2mGRtH#tl)7MkdKch3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g d#zqE~Nr@II78d%G5Aujlo?0cfc`u`2B>=2<7%>0< delta 73 zcmX^2mGRtH#tl)7MuyqB>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ dhQ_Jpi6$lniKhCK5Aujlo?0cfc`u`2B>=g>7@+_F diff --git a/master/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_9/doc/userdoc.doctree index 1f97cc7ddd97164fba0aeb43f836b56f9703ecce..0a21f927769cb19b39ee1bc02524b5b4c1b2587f 100644 GIT binary patch delta 76 zcmezOjq%?%#tl)7rY6Znh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g g#zqE~Nr@II78d#``N@+nI*3d@!Y;ab2jj6y02gl>bN~PV delta 76 zcmezOjq%?%#tl)7riR(M>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ghQ_Jpi6$lniKhA~`N@+nI*3d@!Y;ab2jj6y0450<WSJA!)RoZTvV8z6Q8Z0W|(MhXlQAXY-E|7l4NONXqjqkn3!r}ZklFjkZ5dV aV40L?kz!$?KlviR=;Rn-xy=U|y|n=>0TtW; delta 71 zcmeB)>WSJA!)RofotvJSQkki5W^SHnk(^?ZVqs}%YGIgWlxUP}X`Yf|l#-TeoNQ>E aYMy9fVvuO6KlviR=;Rn-xy=U|y|n>3OBPH3 diff --git a/master/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree index b261bdbc81fee63f4be7f186c7758ce0af112bc3..d4f960bb6da5db69cb7a8e89a4e8c284c7c17ef3 100644 GIT binary patch delta 127 zcmZqp#nkYNX@d`=p-FO4VR}w{wtkvnqPd}=rA4xlWpYZArG=qosof jp>e8tqKSz?qUq*Z#@#KXYnxols5ALPzS!o~ZJ}lWU0^AA diff --git a/master/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree index 2b88d07abe21494fcfaef67fd01b2e87a7c5e9a6..5b02d556577cec376b729c102bed336f9f37d9d3 100644 GIT binary patch delta 67 zcmX@;d(d}71f!8ja#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Wfn`#nMT&)m{$xQx(arN2l~e)bS`+yI delta 67 zcmX@;d(d}71f!8*c5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot Ws(GS`i9w>N{$xQx(arN2l~e)m

QD diff --git a/master/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree index ca87a76684d0ca9ba4b06d1637a8a627dd712be3..1e98425913efafa64aa1aa8cad650f0289d1216f 100644 GIT binary patch delta 127 zcmdlzk$Lw-<_$iKh9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g k#zqE~Nr@II78aXp8E@?(UEAbZMxDtD8+0~5*mIj3029n8-~a#s delta 127 zcmdlzk$Lw-<_$iKhKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ khQ_Jpi6$lniKd%t8E@?(UEAbZMxDtD8+0~5*mIj307Z}~zyJUM diff --git a/master/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/master/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index 09882b3a9656b259674fd5269883e1e91a625ca1..1a9fd937fe7f5640d0b0d1c2479f79781ef5b2dd 100644 GIT binary patch delta 67 zcmX?7d!%-Q2BVQla#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Wfn`#nMT&)m{^UX)(argcp|$|^K@_C` delta 67 zcmX?7d!%-Q2BVQ-c5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot Ws(GS`i9w>N{^UX)(argcp|$`3+7%T5 diff --git a/master/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree b/master/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree index 9ed03e1f71df21d77ab4e204dac6e89930f51ec0..43817eab2db1ed35b4dd9d766cdd9f3310361088 100644 GIT binary patch delta 64 zcmdmchk5TE<_!*vh9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g U#zqE~Nr@II78aWe8PB`{0LTgzMgRZ+ delta 64 zcmdmchk5TE<_!*vhKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ UhQ_Jpi6$lniKd$i8PB`{0MTR>wg3PC diff --git a/master/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree index 4ce8ea3f88a05b995cfdd837a7af033424de24bd..26924ce8854e12746252ad789bb770695e8e7700 100644 GIT binary patch delta 62 zcmbQ|FwbFw8>68~a#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Rfn`#nMT&*R=5og6asX;V65{{> delta 62 zcmbQ|FwbFw8>69Nc5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot Rs(GS`i9w?2=5og6asYFj6H@>H diff --git a/master/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree index 26d8148dee26a4fd3c03870ec10402a1718a1858..0bc74521d79de380af38de961e1495a423f7543d 100644 GIT binary patch delta 127 zcmcaSf${PL#tjLKh9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g k#zqE~Nr@II78aW)GPYZju5I!}MzhHY76zNw+b-b(0RNjOVgLXD delta 127 zcmcaSf${PL#tjLKhKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ khQ_Jpi6$lniKd$;GPYZju5I!}MzhHY76zNw+b-b(05NVTLI3~& diff --git a/master/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree index 4d7e1132e9741aa30a57a9845a89fc1fc1422de5..22aaff694a20d6d38972ffad4816b7d614ed7dd1 100644 GIT binary patch delta 67 zcmX?`ayDf{7^9I%a#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Xfn`#nMT&)m{^U+6gUve_ry2kN`?3{q delta 67 zcmX?`ayDf{7^9J4c5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot Xs(GS`i9w>N{^U+6gUve_ry2kN2TK*; diff --git a/master/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree index 9dd71338505d033b7847e422b467cc1defcb5765..559871abd7bba5b960d97c02d57676be9b3d9b11 100644 GIT binary patch delta 62 zcmbP~Gbv|-2cw}$a#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Rfn`#nMT&*R=1RtyCIES!6E6S& delta 62 zcmbP~Gbv|-2cw~3c5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot Rs(GS`i9w?2=1RtyCIEu?6Q2M8 diff --git a/master/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree index 6c60aa5ca9b777b30c3f04d70bb3f00df9394ace..8e8844f650d706e0ee908336206ae35f1776e267 100644 GIT binary patch delta 127 zcmX@#$aubyaf2VDp-FO4VR}w{wtkvnqPd}=rA4xlWpYZArG=qosN3t delta 127 zcmX@#$aubyaf2VDp<#AzdS*&xroNfEd7?#fib;xvrKPEbVVY5*QL?3ZN{UfRTB>of jp>e8tqKSz?qUq*(#x7&hwN0*P)SZ0SNPTmksUtT45q&4S diff --git a/master/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree index 4ba2c9762c55e5f8472312b0159d009271ad0a45..adafe1448763368cc5c4db528c052eb237ff5f32 100644 GIT binary patch delta 64 zcmZoYz}R|#aYF#3p-FO4VR}w{wtkvnqPd}=rA4xlWpYZArG=qosof Tp>e8tqKSz?qUq*F#+En$s#p|M diff --git a/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree b/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree index 90276769757a24f83e39602e5ba1e392c96d33d4..a13261516167dc53d03e122685c93b6e822414df 100644 GIT binary patch delta 69 zcmdmclxgo#rVVP0MkdKch3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g Z#zqE~Nr@II78d%G6=oQ2?qoDs2ml?_72N;; delta 69 zcmdmclxgo#rVVP0MuyqB>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ZhQ_Jpi6$lniKhCK6=oQ2?qoDs2mmQw7EJ&E diff --git a/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree b/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree index 4a39afd8ed563c72a6af2733a1069bbffbbf714e..b078ee3f63e21eb6774a1dddc1069ec8cba2f1d1 100644 GIT binary patch delta 69 zcmX@Img&e^rVTZWMkdKch3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g Z#zqE~Nr@II78d%G<6G@Fzh%5W1pqE_7exR7 delta 69 zcmX@Img&e^rVTZWMuyqB>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ZhQ_Jpi6$lniKhCK<6G@Fzh%5W1pqnw7qtKY diff --git a/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree index 451424c9abafc6ab1dd6e91a186aef9ac65a6561..d56f27d072156ca6b8e435b5004750c4f96c45f8 100644 GIT binary patch delta 69 zcmZp@!PI(#X+s2~kx6nof Zp>e8tqKSz?qN)C5M;@Ea#~AHb0RSLc7A61y diff --git a/master/.doctrees/doc/ros2_controllers/pid_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/pid_controller/doc/userdoc.doctree index 410b0c917ceb24261df6abbc84f0ea277d5ef454..ea19ca8ce45ed6221df7db12b13c6a5b414648ed 100644 GIT binary patch delta 64 zcmX>+f$8uBrVVzCh9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g U#zqE~Nr@II78aZH8LzYf0HrGwRsaA1 delta 64 zcmX>+f$8uBrVVzChKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ UhQ_Jpi6$lniKd(L8LzYf0Ir1;#sB~S diff --git a/master/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree index c66ef773be36c1f31afe3f9e5023cc327d0bf055..e15542f25454404c3498f12809873264543fe603 100644 GIT binary patch delta 62 zcmaFj@Wf$*7o(v`a#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Rfn`#nMT&*R=4!^5asZ7M6S)8Y delta 62 zcmaFj@Wf$*7o(wJc5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot Rs(GS`i9w?2=4!^5asZZa6e$1z diff --git a/master/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree index 57fac849b7b630b3b96ccdb8f7ae0833cbde4b82..e947cd4683a6af82f0ee486a17088659f6ff8d7b 100644 GIT binary patch delta 121 zcmX?8e5QCq5Tl_ak8Ot ds(GS`i9w?2WIH|m&6^mbbx7B`*-o#I8vtAyC9?nk diff --git a/master/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree index 039625f61b039184022409672bbfb8c99541e503..e79e0ccff1bd574a6df42338a491bfd7cbae8f25 100644 GIT binary patch delta 62 zcmbO)H(zc;0;8cxa#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Rfn`#nMT&*R=824byZ~Uk5~~0J delta 62 zcmbO)H(zc;0;8c}c5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot Rs(GS`i9w?2=824byZ~wy6B_^k diff --git a/master/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree index 52e4c1943bec58ec51280f50c7715f187cf18f74..aba90f41d31dcbf5868ed4344fac8e939cab87b1 100644 GIT binary patch delta 69 zcmeylo$2RxrVUYyMkdKch3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g Z#zqE~Nr@II78d%G`-E*bpJX(c1pq_P7MB13 delta 69 zcmeylo$2RxrVUYyMuyqB>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ZhQ_Jpi6$lniKhCK`-E*bpJX(c1prT47Y6_U diff --git a/master/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree index f9251eea247fbe1bbffc2d42fa550e2c5e3dac2d..554ae934d4bc79bddec07e788c96fe9c584735a4 100644 GIT binary patch delta 64 zcmeD9z}WGDaf1h=p-FO4VR}w{wtkvnqPd}=rA4xlWpYZArG=qosof Tp>e8tqKSz?qUq*J#{Mz@!6g*U diff --git a/master/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree index f3bbbd1651184057c42e3cde08e720234fd45cfa..b880648366f20d79d21c0c1f8cfac670c62df9d2 100644 GIT binary patch delta 71 zcmaDI_&RVy6r+(za#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd bfn`#nMT&)m{^Wjs(aAsAH8!7QR8j{3Tp1R+ delta 71 zcmaDI_&RVy6r+)0c5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot bs(GS`i9w>N{^Wjs(aAsAH8!7QR8j{3X=4{E diff --git a/master/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree index 0f717024a1102e4356caef34c5f4c928a1054e94..59f0ccfe41977df4968d0e7be5ea444157abdabd 100644 GIT binary patch delta 62 zcmaFj@Wf$*7o(v`a#3M=PJFh0nqi{3p`oQkvXNzSN|L38p=GMEVPdL@xoMiAL87sd Rfn`#nMT&*R=4!^5asZ7M6S)8Y delta 62 zcmaFj@Wf$*7o(wJc5ZrRN@b?LnYnqQMRJNsiiM@6sfA&hQKC_@rFlwak8Ot Rs(GS`i9w?2=4!^5asZZa6e$1z diff --git a/master/.doctrees/doc/simulators/simulators.doctree b/master/.doctrees/doc/simulators/simulators.doctree index 1b5f3fee92565ddf04de3e12c15c8ebb00c73455..03935630e608b3e6c6221bc1fec48fb568bd50ff 100644 GIT binary patch delta 62 zcmZoNZ!+JY#%O4gTvV8z6Q8Z0W|(MhXlQAXY-E|7l4NONXqjqkn3!r}ZklFjkZ5dV RV40L?kz!%7Ih;{j3II?R5!nC$ delta 62 zcmZoNZ!+JY#%O4motvJSQkki5W^SHnk(^?ZVqs}%YGIgWlxUP}X`Yf|l#-TeoNQ>E RYMy9fVvuOMIh;{j3IJJf5=j66 diff --git a/master/.doctrees/doc/supported_robots/supported_robots.doctree b/master/.doctrees/doc/supported_robots/supported_robots.doctree index c407ad97e59f6593d2d87179683c6fac885889c7..55faa191d6f9d8593bbcfb229fd3982635fc7b03 100644 GIT binary patch delta 64 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Ÿ-M(x;3rWJM&`;I9TFuxhL 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 diff --git a/master/.doctrees/index.doctree b/master/.doctrees/index.doctree index b165207795666dca28ef5672052e4fe30d09aa07..71e66d211be613cc4763d000b72662cc99def24e 100644 GIT binary patch delta 78 zcmbPyopJJY#tmkSh9=2Hh3Pr*+4^aQiROlemKMoImdPnemKKJVsm6whsV3&8X@&-g g#zqE~Nr@II78aY+8I^(<%{O-in=t~ZgCUp10N!^Pa{vGU delta 78 zcmbPyopJJY#tmkShKAX>>6s~&nfhkt=7|=`DJCfvmX@X#hG|BLM#+}uDJe!NX{pA^ ghQ_Jpi6$lniKd&=8I^(<%{F%hn=t~ZgCUp10PWrw;Q#;t diff --git a/master/doc/acknowledgements/acknowledgements.html b/master/doc/acknowledgements/acknowledgements.html index 5276f89b898..cf73801b14d 100644 --- a/master/doc/acknowledgements/acknowledgements.html +++ b/master/doc/acknowledgements/acknowledgements.html @@ -181,13 +181,13 @@

Maintainers -
+
- 8610 + 8600
-
+
@@ -222,7 +222,7 @@

Maintainers
0.70
-
+
@@ -423,7 +423,7 @@

Maintainers -
+
0.90 @@ -449,15 +449,15 @@

Maintainers -
+
0.23
-
+
@@ -465,7 +465,7 @@

Maintainers
@@ -8097,7 +8097,7 @@

Contributors -
+
@@ -8785,7 +8785,7 @@

Contributors
@@ -8814,7 +8814,7 @@

Contributors
@@ -8872,7 +8872,7 @@

Contributors
@@ -9133,7 +9133,7 @@

Contributors
@@ -9236,7 +9236,7 @@

Contributors -

Built on 2024-04-06 at 05:31 GMT

+

Built on 2024-04-07 at 05:31 GMT

diff --git a/master/searchindex.js b/master/searchindex.js index 5111aabb7b0..208c7a30f07 100644 --- a/master/searchindex.js +++ b/master/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/migration/differences_to_ros1", "doc/migration/migration", "doc/project_ideas", "doc/resources/resources", "doc/resources/roscon2023_workshop", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/doc/migration/Foxy", "doc/ros2_control/doc/migration/Iron", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/pid_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/migration/differences_to_ros1.rst", "doc/migration/migration.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/resources/roscon2023_workshop.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/doc/migration/Foxy.rst", "doc/ros2_control/doc/migration/Iron.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/pid_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Differences to ros_control (ROS 1)", "Migration Guides", "Project Ideas for GSoC 2024", "Resources", "ROSCon 2023 Workshop", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Foxy to Galactic", "Iron to Jazzy", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "PID Controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 61], "follow": [0, 1, 2, 3, 4, 5, 7, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 48, 49, 50, 51, 52, 57, 58, 61], "peopl": [0, 1], "were": [0, 7, 33, 39, 49, 50], "ros2_control": [0, 1, 3, 11, 14, 15, 16, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 41, 59], "framework": [0, 1, 5, 7, 8, 9, 11, 12, 16, 17, 18, 20, 21, 33, 40, 41, 47, 61], "show": [0, 1, 2, 3, 4, 8, 9, 11, 13, 17, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 47, 49], "review": [0, 1, 7, 61], "activ": [0, 1, 2, 3, 4, 5, 11, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 48, 50, 51], "contribut": [0, 3, 8], "recent": [0, 19, 41], "all": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 13, 14, 17, 18, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 41, 43, 45, 46, 47, 48, 49, 50, 53, 60], "time": [0, 1, 5, 7, 8, 9, 11, 18, 20, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 39, 41, 43, 48, 49, 50, 61], "contrib": 0, "dure": [0, 21, 33, 48, 50], "past": [0, 49], "12": [0, 21, 60], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 48], "line": [0, 3, 12, 13, 19, 23, 33, 41, 47, 49], "chang": [0, 1, 3, 5, 8, 11, 13, 14, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 48, 49, 50, 53], "last": [0, 13, 15, 19, 33, 37, 41, 48, 49, 50], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48689": 0, "2024": [0, 61], "01": [0, 25, 37, 39, 45, 48, 50, 56], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 7, 8, 9], "magyar": [0, 7, 8, 9], "bmagyar": [0, 9], "130": 0, "8610": 0, "2023": 0, "11": [0, 21], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 8], "deni": [0, 7, 8, 9], "destogl": [0, 39], "35": [0, 55], "5628": 0, "09": 0, "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 15], "04": [0, 9, 11, 61], "06": [0, 61], "03": [0, 25, 50], "26": 0, "14": [0, 21, 55, 60], "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 2, 4, 14, 21, 29, 37, 39, 53, 55, 56], "01t10": 0, "36": 0, "22z": 0, "435": 0, "64346": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 15, 41], "finish": 0, "rate": [0, 12, 16, 25, 28, 39, 40, 48, 49, 50], "578": 0, "406": 0, "0": [0, 2, 3, 4, 10, 14, 15, 17, 18, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57], "70": 0, "03t11": 0, "19z": 0, "238": 0, "214": [0, 37], "90": [0, 33], "05t08": 0, "25": 0, "35z": 0, "480": 0, "111": 0, "23": [0, 3, 37], "04t06": 0, "34": 0, "04z": 0, "1435": 0, "1147": 0, "80": 0, "1155": 0, "604": 0, "52": [0, 53], "261": 0, "237": 0, "91": 0, "have": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 17, 18, 19, 21, 23, 24, 26, 28, 29, 33, 36, 37, 38, 40, 41, 47, 48, 50, 51, 57], "develop": [0, 1, 8, 18, 19, 21, 41], "thi": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61], "project": [0, 1, 61], "provid": [0, 2, 3, 4, 7, 8, 10, 11, 17, 18, 19, 21, 23, 26, 29, 30, 31, 32, 33, 34, 35, 37, 41, 47, 48, 49, 50, 55, 61], "valuabl": 0, "submit": [0, 1, 8, 59, 60], "pull": [0, 9, 19], "request": [0, 5, 19, 33, 47, 61], "see": [0, 1, 3, 5, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 43, 46, 48, 50, 53, 55, 57], "more": [0, 2, 3, 4, 5, 7, 9, 11, 14, 18, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 50, 57], "inform": [0, 1, 2, 3, 4, 10, 18, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 41, 61], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 3, 11, 28, 39], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 7, 8, 14, 15, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 41, 45, 48, 49, 53, 55], "5774": 0, "05": [0, 37, 50, 61], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 39], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 7, 9, 21, 37, 46], "2043": 0, "01t07": 0, "45": [0, 18], "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 55], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 2, 4, 14], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 10, 41, 47, 48, 50], "flochr": 0, "2": [0, 1, 2, 3, 4, 7, 8, 9, 10, 15, 17, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 50, 55, 60, 61], "888": 0, "07t00": 0, "17": [0, 9], "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 2, 4, 25, 28], "alex": 0, "moriarti": 0, "5": [0, 19, 21, 23, 24, 26, 27, 29, 30, 32, 33, 34, 35, 37, 39, 49, 55, 60], "581": 0, "07t20": 0, "46": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 60], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 7], "09t10": 0, "21z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "268": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": [0, 8, 9], "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 8, 9, 21, 24, 28, 37, 53, 55, 60], "125": 0, "22t09": 0, "27": 0, "11z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 39], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 2, 4, 14], "github": [0, 3, 7, 9, 12, 21, 33, 40, 59, 60, 61], "action": [0, 2, 4, 10, 48], "bot": 0, "28": [0, 55], "87": 0, "11t09": 0, "03z": 0, "bailac": 0, "68": 0, "08t11": 0, "49z": 0, "olivi": 0, "stass": 0, "3": [0, 2, 3, 4, 7, 14, 17, 18, 20, 21, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 37, 49, 50, 51], "49": 0, "26t02": 0, "31": [0, 61], "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 17, 21, 25, 27, 29, 31, 34, 37, 53], "43": [0, 3, 17, 28], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "wiktor": 0, "bajor": 0, "99": [0, 11], "12t15": 0, "johann": [0, 8], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": [0, 14], "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 21, 37], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 8], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 21, 23, 33, 37], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "52z": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 7, 11, 17, 19, 20, 23, 33], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 19, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 37, 41, 42, 47, 52, 55, 58, 61], "A": [0, 3, 8, 17, 19, 21, 30, 31, 40, 41, 47, 49, 50], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 20, 24, 30, 37, 48], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 2, 3, 4, 17, 33, 45], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "22": [0, 9, 11], "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "najjar": [0, 8], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 9, 21], "56z": 0, "970": 0, "21t01": 0, "00": [0, 9], "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 21, 23, 37, 48, 51], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": [0, 51], "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 8], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 9, 25, 45, 48, 50], "01t09": 0, "svnrk": 0, "nathan": [0, 8], "brook": [0, 8], "nbbrook": 0, "13t14": 0, "18": [0, 9, 33], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 3, 8, 11, 20, 24, 33, 35], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "166": 0, "151": 0, "03t06": 0, "04t20": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "96": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "124": 0, "01t20": 0, "108": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "107": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "103": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "andr": 0, "montano": 0, "anfemosa": 0, "63": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 25, 28, 30, 31, 33, 37, 39, 43, 46, 55, 56, 60], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "171": 0, "156": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "60": 0, "14t09": 0, "88": 0, "196": 0, "23t02": 0, "78": 0, "79": 0, "219": 0, "199": 0, "10t19": 0, "210": 0, "27t13": 0, "181": 0, "25t01": 0, "69": 0, "14t18": 0, "163": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 25, 28, 30, 31, 33, 37, 39, 43, 46, 55, 56], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 2, 3, 4, 8, 15, 17, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 41, 47, 48, 49, 51], "receiv": [0, 5, 14, 17, 24, 33, 49], "major": [0, 46], "from": [0, 1, 5, 8, 9, 10, 11, 14, 15, 16, 18, 19, 20, 22, 33, 37, 39, 40, 41, 42, 43, 46, 48, 49, 50, 52, 53, 56, 58, 61], "support": [0, 2, 3, 4, 5, 8, 11, 14, 18, 19, 20, 33, 37, 41, 47, 49, 50, 55, 59, 61], "rosin": 0, "ro": [0, 1, 2, 3, 4, 7, 9, 11, 15, 17, 18, 20, 21, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 49, 50, 61], "industri": [0, 3, 7, 9, 21, 60], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 5, 7, 9, 10, 11, 15, 17, 23, 25, 26, 28, 35, 37, 39, 43, 47, 55, 56, 61], "softwar": [0, 3, 33], "compon": [0, 8, 11, 12, 13, 17, 20, 21, 24, 27, 28, 29, 30, 31, 32, 33, 37, 39, 40, 43, 46, 53, 55, 56, 61], "http": [0, 3, 7, 9, 15, 21, 33, 36, 38, 57], "www": [0, 15], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 7, 8, 10, 11, 15, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 41, 43, 46, 48, 49, 53, 56, 57, 61], "horizon": 0, "research": [0, 8], "innov": 0, "programm": 0, "under": [0, 8, 19, 26, 41, 49, 50, 55, 61], "grant": [0, 3], "agreement": 0, "732287": 0, "first": [1, 5, 10, 13, 15, 19, 21, 33, 35, 41, 49, 51], "thank": 1, "you": [1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 41, 50, 51, 61], "consid": [1, 20, 39, 48, 51, 56], "As": [1, 10, 17, 19, 23, 33, 39, 41], "an": [1, 2, 3, 4, 5, 7, 8, 10, 17, 18, 19, 20, 21, 23, 24, 25, 26, 28, 31, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 50, 52, 55, 56, 57, 58], "open": [1, 9, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 48, 55], "sourc": [1, 2, 4, 8, 9, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "we": [1, 2, 4, 7, 8, 9, 10, 13, 21, 23, 25, 26, 28, 33, 34, 35, 47], "welcom": 1, "each": [1, 3, 7, 10, 11, 16, 17, 19, 21, 23, 27, 33, 36, 37, 47, 55, 57], "contributor": 1, "regardless": 1, "background": [1, 21], "experi": 1, "To": [1, 3, 5, 10, 11, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 49, 59, 60, 61], "reduc": [1, 18], "entropi": 1, "univers": [1, 8, 33, 60], "our": [1, 2, 3, 4, 7, 8, 21, 23, 33], "vivid": 1, "collabor": 1, "environ": [1, 3, 8, 21], "set": [1, 5, 7, 8, 9, 10, 11, 13, 17, 18, 19, 20, 21, 23, 24, 25, 33, 37, 39, 40, 42, 47, 48, 49, 50, 52, 53, 55, 56, 58], "up": [1, 8, 9, 19, 21, 49], "some": [1, 2, 4, 7, 8, 15, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 47, 48, 50, 61], "standard": [1, 5, 7, 8, 11, 19, 20, 27, 32, 33, 43, 47], "method": [1, 3, 5, 10, 11, 15, 16, 19, 33, 41, 55], "requir": [1, 3, 5, 7, 19, 33, 37, 41, 42, 50, 52, 58], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57, 61], "limit": [1, 2, 4, 8, 11, 14, 21, 33, 39, 56], "scope": 1, "your": [1, 5, 8, 9, 11, 14, 15, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 41, 56, 59, 60, 61], "pr": [1, 14, 59, 60], "should": [1, 2, 4, 5, 7, 8, 10, 11, 13, 15, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 47, 49, 50, 51, 56], "do": [1, 3, 5, 7, 8, 10, 11, 19, 21, 37, 41, 50, 51, 56], "one": [1, 3, 5, 7, 8, 9, 10, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 42, 43, 47, 48, 49, 50, 51, 52, 55, 57, 58, 61], "thing": [1, 2, 4, 9, 11, 21], "avoid": [1, 23, 25, 27, 28, 29, 30, 31, 32, 34, 41], "ad": [1, 2, 4, 7, 11, 18, 19, 25, 26, 28, 33, 39, 41, 47], "random": [1, 27, 29, 30, 31, 32], "fix": [1, 5, 25, 33, 36, 38, 57], "put": [1, 19, 41], "those": [1, 3, 5, 7, 10, 18, 19, 21, 33, 41, 43, 47, 48, 49, 53], "separ": [1, 3, 5, 21, 27, 39, 47, 56], "give": [1, 8, 11, 21, 23, 24, 28, 29, 49, 61], "descript": [1, 5, 8, 11, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 43, 45, 46, 47, 48, 53], "titl": 1, "add": [1, 5, 10, 11, 13, 15, 19, 33, 36, 37, 38, 41, 57, 59, 60], "short": [1, 41, 61], "summari": [1, 8, 61], "make": [1, 4, 5, 7, 8, 26, 33, 45, 61], "sure": [1, 4, 7, 23, 26, 27, 28, 29, 30, 31, 32, 34, 61], "pipelin": 1, "i": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 61], "green": [1, 49], "don": [1, 2, 9, 10, 24, 28, 48, 50], "t": [1, 2, 4, 9, 10, 11, 21, 24, 28, 48, 49, 50, 51], "afraid": 1, "maintain": [1, 3, 7, 10, 21, 49], "new": [1, 8, 9, 10, 19, 23, 26, 29, 33, 40, 49, 61], "code": [1, 3, 5, 7, 8, 19, 33], "test": [1, 2, 7, 18, 19, 21, 23, 28, 35, 36, 37, 38, 39, 41, 43, 46, 53, 55, 57], "If": [1, 3, 5, 8, 9, 10, 11, 13, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 43, 47, 48, 49, 50, 51, 55, 56, 61], "function": [1, 5, 7, 8, 9, 26, 33, 37, 51, 55], "alwai": [1, 33], "exercis": 1, "serv": [1, 3, 7], "live": [1, 8], "origin": [1, 2, 4, 8, 14, 23, 33, 49, 50], "intent": [1, 10, 18], "section": [1, 5, 15, 17, 19, 41, 50], "target": [1, 11, 19, 37, 41, 44, 48, 50], "also": [1, 2, 3, 4, 5, 7, 8, 10, 11, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 50, 51], "read": [1, 2, 3, 4, 5, 11, 15, 17, 19, 21, 26, 27, 30, 31, 33, 37, 41, 47, 48, 51, 53, 55], "understand": [1, 7, 49], "how": [1, 7, 8, 17, 19, 21, 24, 25, 26, 27, 29, 30, 31, 32, 33, 35, 41, 56], "handl": [1, 3, 5, 7, 8, 19, 30, 33, 36, 37, 38, 39, 43, 44, 45, 46, 47, 48, 50, 51, 53, 55, 56, 57], "organ": [1, 8, 61], "guidelin": 1, "especi": [1, 5, 21, 55], "applic": [1, 3, 8, 9, 11, 17, 33], "ros2_control_demo": [1, 3, 21, 23, 33, 61], "pleas": [1, 11, 32, 39, 61], "keep": [1, 33, 41], "mind": [1, 41], "work": [1, 7, 8, 10, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41, 42, 47, 52, 56, 58, 61], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 10, 11, 18, 19, 20, 26, 29, 33, 37, 39, 40, 41, 45, 48, 50, 51, 55, 56], "That": [1, 19, 41], "wai": [1, 11, 15, 19, 33, 41, 43, 50], "main": [1, 3, 7, 8, 11, 15, 18, 33, 41, 55, 61], "repo": [1, 3, 9, 21], "clean": 1, "featur": [1, 8, 18, 21, 23, 34, 55, 61], "branch": [1, 3, 21], "check": [1, 3, 5, 7, 10, 16, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 49, 50, 53, 57, 61], "satisfi": 1, "befor": [1, 5, 10, 11, 19, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 39, 40, 41, 48, 49], "thei": [1, 3, 5, 7, 8, 10, 17, 18, 19, 20, 26, 40, 41, 48, 50, 55], "can": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 43, 44, 46, 49, 50, 51, 53, 55, 61], "must": [1, 2, 4, 10, 11, 17, 21, 33, 37, 46, 48, 50], "approv": 1, "two": [1, 3, 7, 10, 11, 19, 21, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 43, 49, 50, 51, 55, 56, 57], "explicitli": 1, "onli": [1, 3, 5, 7, 8, 10, 11, 16, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 41, 42, 43, 47, 48, 49, 50, 51, 52, 55, 58], "except": [1, 24, 33], "other": [1, 2, 3, 5, 8, 10, 19, 21, 27, 32, 33, 36, 38, 41, 47, 49, 55, 57], "where": [1, 2, 7, 9, 10, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 38, 39, 41, 47, 48, 49, 50, 51, 55, 57], "back": 1, "traceabl": 1, "discuss": [1, 8, 9, 26, 35, 49, 61], "suffici": [1, 2, 4, 10, 43], "note": [1, 3, 6, 11, 18, 23, 50, 51, 61], "still": [1, 5, 23, 26, 27, 28, 29, 30, 31, 32, 34, 40, 49], "encourag": 1, "help": [1, 11, 15, 18, 19, 20, 39, 41], "u": [1, 2, 4, 11, 21, 48], "increas": [1, 28, 51], "pace": 1, "veri": [1, 2, 4, 5, 7, 17], "like": [1, 2, 3, 4, 5, 7, 8, 9, 19, 25, 26, 33], "find": [1, 2, 3, 4, 15, 28], "issu": [1, 7, 8, 9, 61], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 7, 11, 20, 29, 30, 31, 33, 39, 43, 46, 47, 48, 49, 50, 53, 55, 56, 61], "comment": [1, 33], "fixup": 1, "linter": 1, "us": [1, 3, 5, 7, 8, 9, 13, 14, 15, 17, 18, 20, 22, 33, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 55, 56, 57, 58, 61], "pre": 1, "correct": [1, 5, 39, 49], "header": [1, 13, 19, 30, 31, 41, 49], "address": [1, 33], "similar": [1, 3, 8, 17, 23, 25, 26, 33], "mean": [1, 5, 10, 17, 18, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 49, 50, 56], "result": [1, 3, 10, 11, 23, 33, 47, 49], "exactli": 1, "cowboi": 1, "style": [1, 19, 41], "over": [1, 7, 10, 28, 33], "weekend": 1, "It": [1, 2, 3, 5, 7, 10, 11, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 43, 47, 48, 49, 51], "doesn": [1, 10, 51], "matter": 1, "trivial": [1, 18], "chanc": 1, "proper": [1, 10, 11, 50], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 48, 51], "its": [1, 2, 3, 4, 5, 7, 8, 10, 11, 17, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 49, 51, 53, 55, 56, 57], "ping": 1, "them": [1, 7, 10, 11, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 47, 49, 60], "necessari": [1, 10, 13], "repeatedli": 1, "sphinx": 1, "doc": [1, 10, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 61], "theme": 1, "gener": [1, 7, 8, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 40, 41, 50, 55, 61], "locat": [1, 2, 9, 33, 37, 39, 43, 45, 46, 47, 48, 53], "control": [1, 8, 9, 12, 14, 15, 16, 17, 18, 19, 20, 21, 36, 38, 43, 46, 47, 48, 49, 53, 56, 57, 60, 61], "org": [1, 7, 15, 36, 38, 57], "while": [1, 3, 7, 8, 33, 37, 49], "packag": [1, 2, 4, 5, 11, 13, 19, 33, 36, 37, 38, 39, 41, 42, 43, 46, 50, 51, 52, 53, 55, 57, 58, 61], "written": [1, 19, 27, 32, 33, 41], "respect": [1, 2, 3, 4, 7, 8, 24, 48, 49, 50], "type": [1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 24, 27, 28, 30, 31, 32, 33, 39, 40, 41, 42, 43, 46, 48, 51, 52, 53, 55, 58], "stabl": 1, "against": 1, "accept": [1, 19, 29, 41, 42, 48, 49, 50, 52, 58], "api": [1, 2, 4, 7, 19, 23, 25, 27, 28, 29, 30, 31, 32, 34], "abi": 1, "e": [1, 2, 3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 19, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 37, 39, 41, 42, 43, 47, 48, 49, 51, 52, 55, 56, 58, 61], "name": [1, 2, 3, 4, 5, 8, 11, 14, 15, 17, 18, 19, 20, 21, 23, 24, 26, 27, 28, 30, 31, 32, 33, 35, 37, 39, 41, 43, 44, 46, 47, 48, 51, 53, 55, 56], "convent": [1, 33], "master": [1, 3, 21, 33], "semi": 1, "binari": 1, "good": [1, 2, 4, 7, 39, 56], "same": [1, 9, 10, 11, 15, 29, 33, 40, 43, 48, 49, 50, 51], "build": [1, 9, 19, 33, 37, 41], "dai": 1, "ros_distro": [1, 3, 21, 23], "foxi": [1, 6, 8, 19], "galact": [1, 6, 19], "releas": [1, 3, 8, 21, 33], "version": [1, 3, 7, 9, 15, 21, 50], "non": [1, 8, 26, 33, 43], "brake": 1, "distribut": [1, 3, 21, 61], "three": [1, 3, 5, 13, 16, 17, 21, 33, 41, 49, 57], "stage": [1, 10, 26], "current": [1, 7, 15, 16, 17, 19, 20, 49, 50, 55], "futur": [1, 8, 10, 49, 50], "compat": [1, 3, 5, 8, 19, 21], "direct": [1, 5, 7, 19, 33, 41, 48], "local": [1, 2, 4, 9, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 47], "possibl": [1, 3, 7, 11, 17, 18, 21, 23, 25, 27, 28, 29, 30, 31, 32, 34, 37, 41, 49], "core": [1, 12, 33], "immedi": [1, 11, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 51], "depend": [1, 3, 9, 13, 17, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 49, 51, 55], "fail": [1, 29, 33], "expect": [1, 7, 8, 9, 26, 33, 36, 38, 39, 50, 55, 56, 57], "after": [1, 10, 11, 18, 19, 21, 23, 33, 39, 41, 48, 49, 50, 55, 56], "next": [1, 23, 33, 49], "sync": 1, "abl": 1, "potenti": [1, 8, 9, 41, 48], "mid": 1, "power": [1, 2, 4, 8, 19], "plausibl": 1, "analyt": 1, "integr": [2, 3, 4, 7, 8, 18, 21, 26, 28, 33, 48, 49, 50, 51, 56, 61], "architectur": [2, 4, 7, 8, 9], "gazebo": [2, 4, 7, 18, 21, 23, 35, 59], "classic": [2, 18, 21, 59], "which": [2, 3, 4, 5, 7, 8, 9, 11, 15, 18, 19, 20, 21, 23, 25, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 53, 55, 56], "instanti": [2, 4, 11], "manag": [2, 4, 5, 7, 8, 12, 13, 14, 16, 17, 19, 20, 21, 33, 41, 50, 61], "connect": [2, 3, 4, 18, 21, 30, 33], "model": [2, 4, 23, 25, 33], "cd": [2, 3, 4, 9, 21, 33], "docker": [2, 4, 9, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "allow": [2, 3, 4, 5, 11, 21, 33, 45, 48, 49, 50, 54], "without": [2, 3, 4, 5, 8, 11, 18, 19, 21, 26, 41, 48, 49], "gui": [2, 4, 21, 23, 26, 27, 29, 30, 31, 32, 34, 35, 54], "configur": [2, 3, 4, 5, 7, 8, 10, 11, 13, 14, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47, 48, 49, 50, 55], "properli": [2, 4, 10, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "command": [2, 3, 4, 5, 7, 8, 9, 11, 12, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 44, 45, 48, 49, 52, 54, 57, 58, 61], "rm": [2, 3, 4, 21, 23], "net": [2, 4, 8, 21, 23], "host": [2, 4, 21, 23, 60], "ros2": [2, 3, 4, 8, 11, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "launch": [2, 3, 4, 11, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "cart_example_posit": [2, 4], "py": [2, 4, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "fals": [2, 4, 15, 18, 21, 23, 25, 37, 39, 45, 47, 48, 50, 51, 55, 56], "machin": [2, 3, 4, 7, 21], "client": [2, 4, 50], "gzclient": 2, "rocker": [2, 4], "go": [2, 4, 8, 11, 19, 33, 41], "tool": [2, 4, 5, 7, 8, 9, 33, 37], "imag": [2, 4, 11], "inject": [2, 4, 8, 9], "nvidia": [2, 4], "And": 2, "user": [2, 4, 7, 11, 21, 33, 49], "id": [2, 4, 20, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 37, 39], "specif": [2, 4, 7, 10, 11, 13, 14, 15, 17, 33, 35, 44, 47, 49, 50], "file": [2, 3, 4, 5, 7, 8, 11, 15, 18, 19, 21, 37, 39, 41, 42, 43, 50, 52, 58], "cleaner": [2, 4], "mount": [2, 4], "permiss": [2, 4, 11], "instal": [2, 4, 9, 11, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "instruct": [2, 4, 9, 28, 33, 35], "x11": [2, 4], "latest": [2, 3, 4, 9], "move": [2, 4, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 45, 56], "cart": [2, 4], "rail": [2, 4], "exec": [2, 4, 23], "bash": [2, 3, 4, 9, 19, 21, 23, 33, 41], "home": [2, 4], "ros2_w": [2, 3, 4, 21], "example_posit": [2, 4], "need": [2, 3, 4, 5, 7, 8, 10, 17, 19, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 40, 41, 49, 51], "addit": [2, 4, 5, 10, 21, 24, 28, 33], "element": [2, 4, 33, 37, 48], "includ": [2, 4, 5, 7, 9, 11, 13, 19, 20, 25, 33, 37, 41, 50, 56, 60], "access": [2, 3, 4, 8, 11, 18, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47], "interfac": [2, 4, 7, 8, 10, 11, 12, 13, 16, 19, 21, 23, 25, 26, 27, 28, 30, 31, 32, 35, 36, 38, 40, 41, 43, 46, 48, 49, 53, 57, 59, 60, 61], "state": [2, 3, 4, 5, 7, 8, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 43, 47, 48], "gazebosystem": [2, 14], "system": [2, 3, 4, 5, 7, 8, 9, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 48, 50, 59, 60, 61], "hardwar": [2, 4, 8, 9, 10, 12, 13, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 40, 41, 48, 51, 56, 61], "slider_to_cart": [2, 4, 42, 52, 58], "command_interfac": [2, 3, 4, 14, 17, 24, 26, 33, 37, 48, 50, 51], "effort": [2, 4, 5, 14, 21, 33, 40, 42, 45, 47, 48, 50, 51], "param": [2, 3, 4, 11, 14, 15, 17, 18, 24, 28, 33], "min": [2, 3, 4, 17, 33], "1000": [2, 4, 14, 33], "state_interfac": [2, 3, 4, 14, 17, 18, 24, 33, 37, 48, 50], "posit": [2, 3, 4, 5, 8, 11, 14, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 42, 47, 48, 49, 50, 51, 52, 55, 58], "initial_valu": [2, 4, 14, 17, 18, 24, 33], "veloc": [2, 3, 4, 5, 8, 10, 14, 21, 25, 27, 28, 29, 33, 37, 38, 39, 40, 45, 46, 47, 48, 49, 50, 51, 52, 55, 58], "defin": [2, 4, 5, 7, 11, 14, 17, 19, 21, 33, 37, 41, 43, 46, 47, 48, 49, 50, 51, 53, 55], "paramet": [2, 4, 5, 8, 9, 14, 15, 19, 21, 23, 24, 28, 33, 41, 50], "mimick": [2, 4], "detail": [2, 3, 4, 5, 11, 16, 17, 18, 19, 26, 33, 35, 36, 38, 39, 41, 49, 50, 57], "manual": [2, 3, 4, 7, 11, 19, 21, 23, 29, 30, 31, 32, 34, 35, 41, 61], "multipli": [2, 4, 14], "definit": [2, 3, 4, 11, 14, 19, 33, 37, 39, 40, 41, 43, 45, 46, 47, 48, 53], "left_finger_joint": [2, 4, 14], "prismat": [2, 4, 14], "right_finger_joint": [2, 4, 14], "axi": [2, 4, 7, 14, 33, 36, 38, 39, 43, 57], "xyz": [2, 4, 14, 33], "rpy": [2, 4, 14, 33], "1415926535": [2, 4, 14], "parent": [2, 4, 14, 19, 33, 39, 41, 56], "link": [2, 3, 4, 8, 10, 13, 14, 33, 37, 40], "base": [2, 3, 4, 8, 13, 14, 19, 20, 21, 25, 27, 28, 32, 33, 37, 39, 41, 44, 55, 56, 59, 60], "child": [2, 4, 14, 17, 33, 39, 56], "finger_left": [2, 4, 14], "lower": [2, 4, 14, 33, 51], "upper": [2, 4, 14, 33, 51], "In": [2, 3, 4, 5, 7, 8, 10, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 40, 41, 47, 49, 55], "actual": [2, 4, 10, 39, 56], "pars": [2, 4, 5, 12, 17, 18], "load": [2, 3, 4, 11, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 41], "appropri": [2, 4, 7, 49], "By": [2, 4, 11, 25, 33, 47, 49], "though": [2, 4, 11, 25, 26], "extens": [2, 4], "via": [2, 3, 4, 21, 23, 30, 31, 33, 50, 60], "creat": [2, 3, 4, 5, 8, 11, 18, 19, 21, 25, 33, 41], "between": [2, 3, 4, 7, 13, 17, 21, 33, 36, 38, 39, 47, 48, 49, 50, 51, 56, 57], "filenam": [2, 4, 33], "libgazebo_ros2_control": 2, "so": [2, 3, 4, 10, 11, 19, 33, 37, 41, 50], "robot_param": [2, 4], "robot_descript": [2, 4, 11, 23, 33], "robot_param_nod": [2, 4], "robot_state_publish": [2, 4, 11, 25, 47], "config": [2, 4, 21], "cart_control": [2, 4], "yaml": [2, 3, 4, 7, 9, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 50], "controller_manager_nam": 2, "simulation_controller_manag": 2, "option": [2, 4, 5, 11, 16, 17, 18, 19, 20, 23, 24, 29, 37, 39, 40, 41, 43, 47, 50, 51, 55], "server": [2, 45, 50], "node": [2, 3, 4, 11, 15, 16, 18, 20, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 56], "hold_joint": [2, 4], "true": [2, 4, 15, 24, 25, 28, 35, 37, 39, 48, 49, 50, 51, 55, 56], "hold": [2, 4, 49], "wa": [2, 4, 7, 9, 19, 23, 24, 28, 29, 33, 41, 49], "claim": [2, 4, 10, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37], "hasn": [2, 4], "been": [2, 4, 26], "yet": [2, 4, 6, 10, 11, 21, 26, 39, 49, 50], "controller_manag": [2, 3, 4, 7, 11, 20, 29, 40, 41, 42, 50, 52, 58], "attempt": [2, 4, 11, 50], "get": [2, 4, 8, 9, 10, 11, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 49, 51, 61], "out": [2, 4, 5, 11, 33, 39], "most": [2, 4, 7, 19, 21, 25, 33, 41], "case": [2, 4, 5, 7, 8, 10, 21, 26, 33, 41, 47, 49, 50, 61], "least": [2, 4, 17, 19, 41, 50], "start": [2, 4, 5, 8, 10, 11, 13, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 41, 48, 49, 56, 61], "hardware_interfac": [2, 3, 4, 5, 15, 16, 18, 19, 21, 27, 30, 31, 32, 33, 37, 39, 40, 41], "jointstateinterfac": [2, 4], "effortjointinterfac": [2, 4], "velocityjointinterfac": [2, 4], "pluginlib": [2, 3, 4, 5, 11, 19, 33, 41, 51], "implement": [2, 3, 4, 5, 7, 8, 11, 15, 17, 18, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 41, 44, 49, 50, 51, 55, 56, 57, 61], "complex": [2, 3, 4, 7, 8, 9, 10], "mechan": [2, 4, 10, 50], "nonlinear": [2, 4], "spring": [2, 4], "linkag": [2, 4, 23, 26, 34], "etc": [2, 4, 11, 29, 33, 37, 61], "These": [2, 4, 21, 33, 39, 45, 56], "inherit": [2, 4, 11, 33], "gazebosysteminterfac": 2, "systeminterfac": [2, 4, 5, 15, 18, 30, 33], "level": [2, 4, 7, 8, 11, 26, 27, 32, 42, 49, 52, 58], "properti": [2, 4, 33], "sub": [2, 4, 25], "class": [2, 3, 4, 8, 11, 13, 16, 19, 20, 33, 41, 44, 49], "specifi": [2, 4, 11, 19, 21, 33, 37, 40, 41, 48, 49, 50, 51], "For": [2, 3, 4, 7, 8, 10, 11, 16, 18, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 48, 50, 51, 55, 57], "exampl": [2, 3, 4, 5, 7, 8, 10, 11, 18, 20, 25, 28, 37, 39, 42, 43, 50, 51, 52, 56, 58, 61], "xml": [2, 4, 5, 11, 13, 15, 19, 33, 41], "insid": [2, 4, 18, 21, 23], "basic": [2, 3, 4, 5, 7, 8, 19, 21, 28, 41], "joint_state_broadcast": [2, 4, 17, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "publish": [2, 4, 7, 10, 17, 21, 24, 25, 33, 37, 40, 43, 46, 47, 49, 53, 56, 61], "resourc": [2, 4, 5, 19, 29], "regist": [2, 4, 5], "stateinterfac": [2, 4, 33], "topic": [2, 4, 7, 8, 10, 11, 17, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 40, 50, 51, 56, 59], "sensor_msg": [2, 4, 46, 53], "msg": [2, 4, 11, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 42, 43, 44, 46, 49, 50, 51, 52, 53, 55, 58], "jointstat": [2, 4], "joint_trajectory_control": [2, 4, 7, 20, 23, 40, 48, 54], "call": [2, 3, 4, 5, 10, 15, 19, 24, 28, 33, 41], "follow_joint_trajectori": [2, 4, 50], "control_msg": [2, 4, 37, 48, 50, 51, 55, 61], "followjointtrajectori": [2, 4, 48, 50], "ros__paramet": [2, 4, 37, 39, 42, 43, 45, 46, 47, 48, 50, 52, 53, 58], "update_r": [2, 4, 11, 40, 42, 52, 58], "100": [2, 3, 15, 17, 42, 52, 58], "hz": [2, 4, 39, 42, 45, 52, 58], "jointtrajectorycontrol": [2, 4, 5, 20, 23, 37, 50], "jointstatebroadcast": [2, 4, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "contain": [2, 9, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 42, 43, 45, 46, 47, 48, 49, 51, 52, 53, 55, 58], "content": [2, 19, 33, 41], "There": [2, 3, 4, 6, 11, 16, 19, 21, 25, 27, 30, 31, 32, 41, 49, 50], "meter": [2, 4, 33], "cart_example_veloc": [2, 4], "cart_example_effort": [2, 4], "diff_driv": 2, "tricycle_dr": 2, "world": [2, 4, 11, 18, 25, 33, 37], "example_veloc": [2, 4], "example_effort": [2, 4], "example_diff_dr": [2, 4], "example_tricycle_dr": [2, 4], "parallel": [2, 3, 4, 17], "gripper": [2, 3, 4, 5, 8, 17, 40], "gripper_mimic_joint_exampl": [2, 4], "send": [2, 4, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 49, 50, 51], "example_gripp": [2, 4], "roll": [3, 9, 21, 33, 39, 56], "both": [3, 7, 8, 11, 26, 33, 34, 39, 47, 48, 49, 50], "humbl": 3, "iron": [3, 6], "about": [3, 7, 18, 19, 29, 39, 46, 47, 50, 61], "page": [3, 8, 59, 60], "want": [3, 9, 10, 11, 21], "download": [3, 21], "repositori": [3, 7, 12, 17, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 40], "mkdir": [3, 9, 21], "p": [3, 9, 11, 21, 48, 51], "src": [3, 9, 19, 21, 23, 33, 37, 39, 41, 43, 45, 46, 47, 48, 53], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 7, 9, 21, 33], "ros2_control_ci": 3, "ros_control": [3, 7, 8, 61], "vc": [3, 9, 21], "import": [3, 9, 19, 21, 33, 41, 48], "rosdep": [3, 21], "updat": [3, 5, 10, 11, 12, 16, 21, 25, 33, 37, 40, 41, 50, 55], "rosdistro": [3, 21], "sudo": [3, 9, 11, 21], "apt": [3, 9, 11, 21], "path": [3, 8, 21, 33, 50], "ignor": [3, 11, 21, 39, 48, 55, 56], "r": [3, 21, 34], "y": [3, 21, 25, 28, 30, 31, 37, 43, 46], "everyth": [3, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41], "opt": [3, 9, 21, 23], "setup": [3, 9, 18, 19, 21, 23, 28, 33, 41, 49, 51], "sh": [3, 21, 23], "colcon": [3, 9, 19, 21, 33, 41], "symlink": [3, 9, 21, 33], "forget": [3, 5, 21, 50], "folder": [3, 8, 19, 21, 23, 24, 25, 28, 36, 37, 38, 39, 41, 43, 45, 46, 47, 48, 53, 55, 57], "found": [3, 11, 12, 19, 23, 24, 25, 28, 37, 39, 41, 43, 44, 46, 50, 53, 61], "figur": [3, 49], "uml": 3, "diagram": [3, 20], "describ": [3, 5, 10, 17, 21, 23, 29, 33, 39, 49], "intern": [3, 7, 10, 15, 17, 19, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 49, 50], "cm": [3, 11], "abstract": [3, 8, 16, 33], "side": [3, 7, 8, 39], "entri": [3, 41], "point": [3, 33, 37, 41, 48, 49, 50, 51, 61], "servic": [3, 7, 11, 16, 33, 40], "executor": [3, 11], "custom": [3, 11, 17, 18, 21, 24, 27, 28, 43, 47, 48, 59], "howev": [3, 7, 10, 11, 21, 26, 33], "usual": [3, 5, 18, 19, 33, 37, 41], "recommend": [3, 8, 9, 19, 51], "default": [3, 5, 10, 11, 18, 25, 29, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57], "ros2_control_nod": [3, 11, 29, 33], "assum": [3, 10, 37], "On": [3, 8, 9, 33], "hand": [3, 33, 60], "deactiv": [3, 5, 20, 23, 48], "unload": [3, 11, 20], "match": [3, 21, 49], "enabl": [3, 5, 7, 8, 13, 19, 20, 21, 28, 37, 39, 43, 51, 55], "report": [3, 7, 47, 61], "error": [3, 7, 11, 13, 15, 19, 26, 29, 33, 37, 41, 47, 48, 50, 51], "conflict": [3, 5, 7], "execut": [3, 11, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 45, 48, 49, 50, 57], "loop": [3, 8, 11, 18, 23, 29, 30, 31, 32, 33, 34, 35, 41, 47, 48, 50, 55], "data": [3, 5, 7, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 40, 47, 49, 56], "output": [3, 7, 8, 11, 17, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 56], "write": [3, 5, 8, 10, 11, 12, 15, 24, 26, 27, 28, 32, 37, 40, 51], "physic": [3, 5, 16, 17, 18], "driver": [3, 8, 21, 33, 60], "librari": [3, 5, 19, 20, 25, 36, 38, 40, 41, 51, 55, 57], "lifecycl": [3, 5, 8, 11, 13, 16, 19, 33, 40], "reus": [3, 8, 10], "ani": [3, 5, 8, 10, 11, 13, 14, 16, 17, 21, 26, 33, 41, 48, 50], "flexibl": 3, "commun": [3, 5, 7, 8, 15, 19, 21, 23, 25, 27, 28, 29, 30, 31, 33, 34], "motor": [3, 10, 60], "encod": [3, 33, 39, 56], "theori": [3, 61], "compar": [3, 7, 8], "refer": [3, 10, 25, 26, 33, 60], "valu": [3, 5, 7, 15, 17, 18, 19, 21, 23, 24, 26, 28, 30, 31, 33, 35, 37, 39, 41, 43, 46, 47, 48, 50, 53, 55, 56], "measur": [3, 18, 27, 37, 43, 47, 48, 60], "calcul": [3, 25, 33, 37, 39, 49, 55, 56], "input": [3, 7, 8, 9, 10, 17, 24, 26, 33, 37, 39, 42, 44, 48, 49, 52, 55, 56, 58], "object": [3, 33], "deriv": [3, 48, 49, 51], "controllerinterfac": [3, 5, 10, 20, 33, 41], "controller_interfac": [3, 20, 33, 37, 41, 43, 46, 53], "export": [3, 10, 11, 19, 21, 33, 37, 41], "plugin": [3, 9, 11, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 51, 54], "forwardcommandcontrol": [3, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35], "lifecyclenod": [3, 41], "design": [3, 5, 7, 8, 10, 25, 33, 61], "document": [3, 7, 8, 17, 18, 19, 21, 28, 40, 49, 50], "list": [3, 8, 10, 11, 13, 19, 20, 26, 33, 41, 43, 59, 60, 61], "srv": [3, 50, 51], "controller_manager_msg": 3, "directli": [3, 14, 18, 23, 26, 51, 61], "exist": [3, 5, 7, 8, 9, 10, 11, 13, 17, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 41, 50], "friendli": 3, "cli": [3, 11, 12, 20, 23, 24, 25, 28, 29, 30, 31, 32, 34, 35], "auto": [3, 11], "complet": [3, 16, 26, 33, 49], "rang": [3, 17, 40], "common": [3, 7, 21, 47, 61], "avail": [3, 5, 8, 10, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47, 50], "capabl": [3, 7], "realiz": [3, 8, 49, 50], "repres": [3, 16, 33, 39, 40, 49], "dynam": [3, 19, 25, 33, 37, 41, 51, 59], "multi": [3, 5, 7, 8, 9, 21, 29], "dof": [3, 17, 21, 33, 45, 51], "differ": [3, 7, 8, 11, 12, 16, 17, 19, 21, 23, 24, 28, 29, 33, 39, 42, 43, 47, 49, 51, 52, 55, 58], "actuat": [3, 5, 7, 13, 16, 17, 18, 19, 21, 26, 56], "transmiss": [3, 21], "humanoid": 3, "logic": 3, "channel": [3, 60], "kuka": [3, 23, 29, 30, 31, 60], "rsi": [3, 23, 30, 31, 60], "sensor": [3, 5, 7, 13, 16, 18, 19, 21, 27, 32, 33, 37, 40, 60], "sens": [3, 5, 40, 43], "relat": [3, 7, 8], "joint": [3, 5, 8, 11, 14, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 47, 48, 49, 51, 52, 55, 56, 57, 58, 61], "forc": [3, 8, 17, 20, 30, 31, 37, 40, 60], "torqu": [3, 17, 30, 31, 37, 40], "simpl": [3, 7, 8, 10, 19, 21, 23, 25, 26, 28, 33, 34, 41, 45], "valv": [3, 17], "mandatori": [3, 11], "dc": 3, "arduino": [3, 27, 32], "board": 3, "modular": [3, 8, 9, 21, 33], "independ": [3, 8, 11, 31], "explan": [3, 11, 19], "given": [3, 11, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 42, 49, 50, 52, 58], "through": [3, 7, 8, 10, 11, 19, 20, 21, 26, 33, 41, 50, 51, 61], "tag": [3, 11, 14, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 41, 61], "chosen": [3, 17], "structur": [3, 7, 10, 11, 19, 33, 39, 41, 48, 49], "track": [3, 36, 57, 61], "togeth": [3, 10, 17, 28, 30, 55], "multipl": [3, 5, 8, 10, 17, 19, 21, 47], "xacro": [3, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "macro": [3, 5, 15, 19, 21, 33, 41], "hereund": 3, "rrbot": [3, 11, 17, 20, 21, 24, 25, 27, 29, 30, 31, 32, 34], "extern": [3, 5, 7, 10, 18, 21, 37, 51], "end": [3, 5, 16, 19, 33, 37, 41, 48], "effector": [3, 37], "site": 3, "rrbotsystempositiononli": [3, 31], "ros2_control_demo_hardwar": [3, 17, 20], "rrbotsystempositiononlyhardwar": [3, 5, 17, 20, 23, 26, 31], "example_param_write_for_sec": 3, "example_param_read_for_sec": [3, 17], "joint1": [3, 17, 20, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 50], "joint2": [3, 17, 20, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 50], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "tcp_fts_sensor": [3, 17, 30, 31], "frame_id": [3, 17, 30, 31, 43, 46, 53, 55], "rrbot_tcp": 3, "min_forc": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "gripper_joint": 3, "extend": [3, 5, 7, 10, 19, 41], "instead": [3, 14, 18, 24, 28, 33, 35, 37, 48, 51], "pure": 3, "stack": [3, 8, 61], "could": [3, 8, 10, 21, 29, 41, 47, 50], "altern": [3, 9, 11, 23, 50], "script": [3, 7, 19, 41], "skeleton": 3, "sim": [4, 20, 59], "dockerfil": [4, 21], "Then": [4, 10, 21, 33, 35, 49], "ign": 4, "meet": [4, 61], "prerequisit": 4, "along": 4, "gazebosimsystem": 4, "libgz_ros2_control": 4, "gazebosimros2controlplugin": 4, "gazebosimsysteminterfac": 4, "controller_manager_prefix_node_nam": 4, "diff_drive_exampl": 4, "tricycle_drive_exampl": 4, "robothw": 5, "rigid": 5, "imposs": 5, "combinedrobothardwar": 5, "drawback": [5, 61], "solut": [5, 8, 9], "optim": [5, 11], "combin": [5, 10, 17, 18, 21, 29, 47, 49, 50, 51], "composit": [5, 8], "cell": [5, 43], "surround": 5, "box": [5, 21, 23, 25, 28, 29, 30, 31, 34, 35], "hard": [5, 11], "approach": [5, 10, 15], "doe": [5, 11, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 41, 49, 50], "enforc": [5, 29, 33], "string": [5, 11, 18, 21, 37, 39, 41, 43, 44, 45, 46, 47, 48, 51, 53, 55, 56], "ensur": [5, 8, 11, 14, 33, 49], "constant": [5, 21], "had": 5, "itself": [5, 10], "took": 5, "care": [5, 7, 11, 19, 29, 41, 50], "resourcemanag": [5, 10], "take": [5, 7, 10, 19, 26, 29, 39, 41, 47, 49], "anymor": 5, "controllermanag": [5, 11], "granular": 5, "sensorinterfac": [5, 27, 31], "actuatorinterfac": [5, 27, 32], "abov": [5, 23, 24, 26, 27, 28, 29, 30, 31, 32, 34, 35, 40, 49], "choos": [5, 21, 55], "suitabl": [5, 8], "strategi": [5, 21, 49], "decid": [5, 15], "mayb": [5, 10], "constructor": [5, 19, 33, 41], "initi": [5, 17, 18, 19, 24, 33, 41, 49], "variabl": [5, 15, 19, 33, 41, 48], "urdf": [5, 8, 11, 14, 15, 17, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37], "snippet": 5, "hardwareinfo": [5, 15, 33], "here": [5, 12, 19, 33, 41, 42, 50, 52, 58], "cross": [5, 47], "export_": 5, "_interfac": [5, 19], "joint_a2": 5, "extract": [5, 39, 56], "sensibl": 5, "stop": [5, 8, 10, 11, 13, 20, 23, 24, 28, 29, 33, 39, 48, 56], "safe": [5, 33, 39, 41, 50, 56], "interrupt": [5, 11], "stream": [5, 8], "exchang": [5, 7, 23, 25, 27, 28, 29, 30, 31, 32, 34, 61], "equival": [5, 33], "pluginlib_export_class": [5, 19, 21, 33, 41], "cpp": [5, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "excel": 5, "real": [5, 7, 8, 11, 18, 24, 28, 41, 47, 48, 61], "critic": [5, 7], "mark": [5, 26], "member": [5, 19, 33, 41, 49], "init": 5, "declar": [5, 15, 19, 33, 41], "state_interface_configur": [5, 33, 41], "command_interface_configur": [5, 33, 41], "on_configur": [5, 19, 33, 41], "on_activ": [5, 13, 15, 19, 33, 41], "on_deactiv": [5, 13, 19, 33, 41], "final": [5, 8, 16, 33], "joint_trajectory_plugin": 5, "jazzi": 6, "task": [7, 8, 39], "envis": 7, "simul": [7, 18, 20, 21, 23, 24, 26, 28, 30, 31, 33], "ignit": 7, "showcas": [7, 8, 9], "grace": 7, "degrad": 7, "roadmap": [7, 21, 61], "place": [7, 9, 11, 39, 41, 56], "draft": 7, "gpio": [7, 14, 18, 21, 33], "mode": [7, 10, 19, 26, 29, 37, 48, 49, 51, 55], "switch": [7, 20, 21, 23, 29], "movement": [7, 48], "safeti": [7, 33], "skill": 7, "prefer": 7, "familiar": [7, 61], "mentor": 7, "\u0161togl": [7, 8], "size": [7, 39, 53, 56], "350": 7, "hour": 7, "difficulti": 7, "medium": 7, "focus": [7, 8, 10], "although": [7, 10, 13, 17, 50], "easi": [7, 11], "therefor": [7, 10, 11, 21, 41, 47, 48, 50], "often": [7, 24, 28, 41, 47], "orchestr": 7, "purpos": [7, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 51], "conductor": 7, "scenario": [7, 49], "moment": [7, 50], "right": [7, 21, 39], "replac": [7, 13, 40, 50], "high": [7, 11, 49], "moveit2": [7, 8, 40, 60], "simplecontrollermanag": 7, "goal": [7, 8, 17, 23, 29, 30, 31, 32, 34, 35, 45, 48, 50, 61], "form": [7, 21], "behavior": [7, 18, 33, 49], "benchmark": 7, "statu": [7, 10, 13, 20, 23, 48], "format": [7, 33, 37, 47, 50], "preset": 7, "modul": [7, 26], "reli": 7, "doubl": [7, 18, 23, 33, 36, 37, 38, 39, 45, 48, 51, 53, 55, 56, 57], "desir": [7, 15, 48, 50], "improv": [7, 11], "readabl": [7, 33], "earlier": 7, "concept": [7, 8, 9, 10, 21, 23], "introduc": [7, 8, 10, 23, 33], "essenti": [7, 23], "group": [7, 10, 11, 17, 50, 61], "instanc": [7, 11, 26, 47], "imu": [7, 17, 40], "typic": [7, 17, 28, 47, 48], "acceleromet": 7, "gyroscop": 7, "compass": 7, "part": [7, 8, 17, 33, 41, 49, 50, 51], "Such": [7, 26], "struct": 7, "low": [7, 8, 11], "profil": 7, "relev": [7, 37, 48, 51, 55, 61], "addition": [7, 33, 36, 38, 57, 61], "few": [7, 8, 40], "175": 7, "rewrit": [7, 61], "rich": 7, "motiv": 7, "adopt": 7, "port": [7, 13, 14, 17], "quit": 7, "miss": [7, 8, 9, 47, 49, 50], "diff_drive_control": [7, 10, 20, 28], "consist": [7, 14, 50, 61], "onc": [7, 8, 9, 23, 25, 28, 29, 30, 31, 33, 34, 40], "identifi": [7, 33], "much": [7, 23, 25, 27, 28, 29, 30, 31, 32, 34, 41, 50], "303": 7, "304": 7, "stretch": 7, "realtime_tool": [7, 61], "81": [7, 37], "unit": 7, "gmock": 7, "cc": [8, 49, 50], "BY": [8, 49, 50], "licens": [8, 49, 50], "author": [8, 10], "either": [8, 23, 29, 30, 31, 32, 34, 35, 47, 49], "down": [8, 33, 37], "below": [8, 11, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 48, 49, 50], "compani": 8, "my": 8, "company_nam": 8, "alreadi": [8, 9, 19, 20, 21, 23, 26, 33, 35, 40, 41, 50], "know": [8, 9, 17], "act": [8, 9], "kernel": [8, 9, 11], "struggl": [8, 9], "cover": [8, 9], "product": [8, 9, 47], "variou": [8, 9, 23, 34], "littl": [8, 9, 11], "run": [8, 9, 10, 11, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 49, 55], "practic": [8, 9], "overview": [8, 9], "chain": [8, 9, 12, 20, 21, 33, 37, 48, 51, 55], "debug": [8, 9, 18], "top": [8, 9], "involv": [8, 9, 11], "bring": [8, 9, 21], "locu": 8, "stogl": [8, 9], "consult": 8, "tricycl": [8, 40, 56], "event": 8, "pixel": 8, "prefac": 8, "introduct": 8, "plapp": 8, "agnost": [8, 33], "share": [8, 18, 19, 33, 41, 55], "well": [8, 11, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 50], "perform": [8, 11, 33], "heavi": 8, "practition": 8, "guid": [8, 19, 41], "virtual": [8, 10, 25, 38], "talk": 8, "delv": 8, "deeper": 8, "what": [8, 23, 33], "explicit": [8, 11, 33, 48], "emerg": 8, "handler": 8, "mock": [8, 12, 19], "usag": [8, 11, 17, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "openli": 8, "record": 8, "fiveai": 8, "ltd": 8, "best": [8, 11, 41], "focu": [8, 10], "becom": [8, 26], "util": 8, "3rd": 8, "parti": 8, "nav2": [8, 40], "tip": [8, 33, 37], "hot": 8, "shown": [8, 33, 49], "furthermor": [8, 28], "offer": [8, 11, 19, 33], "expos": [8, 21, 26], "problem": [8, 61], "manipul": [8, 21, 23, 26, 33, 34, 48, 60], "plan": [8, 61], "autonom": 8, "navig": [8, 9], "ideal": [8, 18], "made": [8, 13], "mobil": [8, 21, 25, 28, 39, 55, 56, 60], "arm": [8, 23, 26, 34, 37], "extra": [8, 33, 47], "readi": [8, 9, 19, 21, 26, 40, 41], "studi": 8, "ur": 8, "With": [8, 33, 35, 50], "moveit": [8, 18], "ingredi": 8, "scale": [8, 48], "factor": [8, 39], "teach": 8, "pendant": 8, "influenc": 8, "picknik": 8, "inc": 8, "lovro": 8, "ivanov": 8, "zelenak": 8, "rune": 8, "s\u00f8e": 8, "knudsen": 8, "onlin": [8, 19, 41], "trajectori": [8, 23, 33, 40, 48, 51, 61], "admitt": [8, 40], "One": [8, 10, 24], "reason": [8, 10, 11, 33], "upgrad": 8, "ros1": [8, 21], "better": 8, "realtim": [8, 11, 33, 39, 50, 56, 61], "contact": 8, "insert": 8, "singl": [8, 30, 45, 56], "waypoint": [8, 49, 50], "mani": [8, 33, 40, 41], "teleoper": 8, "kinemat": [8, 10, 21, 28, 33, 36, 37, 38, 55, 57], "acceler": [8, 21, 29, 33, 37, 39, 46, 48, 49, 50, 51, 56], "jerk": [8, 39, 56], "obei": [8, 33], "demo": [8, 17], "booth": 8, "zeleank": 8, "unifi": 8, "life": [8, 33], "cycl": [8, 33, 40], "_control": [8, 21], "wild": 8, "materi": 8, "quick": [8, 13], "layer": 8, "aka": 8, "systemcompon": 8, "forward": [8, 18, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 40, 48, 50, 51, 61], "done": [8, 9, 10, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 40, 41], "look": [8, 28], "modifi": 8, "simpli": [8, 11, 23, 49, 50], "edit": 8, "collect": [8, 42, 52, 58], "semant": [8, 17, 37, 43, 46, 53], "monolit": 8, "controlko": 8, "imperi": 9, "octob": 9, "present": [9, 11, 14, 17, 50], "ubuntu": [9, 11], "engin": [9, 19, 41], "compos": 9, "grab": 9, "roscon2023_workshop": 9, "now": [9, 10, 11, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 49], "workspac": [9, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "w": 9, "git": [9, 21, 33], "clone": [9, 21, 33], "roscon2023_control_workshop": 9, "ci": 9, "compil": [9, 19, 33, 41], "termin": [9, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "park": 9, "f": [9, 21, 37], "dev": 9, "tmux": 9, "ctrl": [9, 23], "b": [9, 21, 33], "arrow": 9, "kei": 9, "brought": 9, "propos": [10, 61], "minim": [10, 37, 61], "viabl": [10, 33], "serial": [10, 33], "tri": [10, 48], "clariti": 10, "arbitrari": [10, 33, 50], "order": [10, 33, 51], "nevertheless": [10, 51], "convinc": 10, "would": [10, 47, 51], "unnecessari": 10, "long": 10, "term": [10, 51, 61], "clearer": 10, "let": [10, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34], "controllers_chain": 10, "position_track": 10, "pid": [10, 40, 48, 49, 50, 61], "imagin": 10, "flexibli": 10, "preced": 10, "step": [10, 15, 19, 21, 41, 49, 61], "At": [10, 19, 26, 41], "attach": 10, "disabl": [10, 18, 39, 55], "subscrib": [10, 24, 25, 26, 33], "differenti": [10, 21, 28, 38, 39, 40, 60, 61], "interfaceconfigur": [10, 33], "input_interface_configur": 10, "const": [10, 13, 15, 33], "anoth": [10, 11, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 50], "simplic": [10, 33], "try": [10, 33], "exclus": [10, 33], "rather": [10, 21, 49], "void": 10, "set_chained_mod": 10, "bool": [10, 15, 37, 39, 45, 47, 48, 51, 55, 56], "flag": [10, 15, 19, 41, 48], "on_set_chained_mod": 10, "pid_refer": 10, "controller_nam": [10, 11, 20, 37, 41, 50, 51, 55], "v_x": 10, "v_y": 10, "w_z": 10, "cmd_vel": [10, 28, 39, 56], "cmd_vel_unstamp": 10, "Its": [10, 61], "continu": [10, 48, 49, 50, 51], "chainabl": [10, 21, 26, 39, 50], "ownership": 10, "process": [10, 19, 33, 41, 49], "vector": [10, 26, 33, 41], "invers": [10, 33, 37], "rule": [10, 11, 19, 41], "think": [10, 21], "break": [10, 18], "middl": [10, 38], "unavail": [10, 25, 26], "unclaim": [10, 20, 25, 26, 29], "inact": [10, 11, 20, 23, 29, 33, 40], "feasibl": 10, "interface_configuration_typ": 10, "jitter": 11, "thread": [11, 33], "sched_fifo": 11, "prioriti": 11, "addgroup": 11, "usermod": 11, "whoami": 11, "afterward": 11, "secur": 11, "conf": [11, 33], "soft": 11, "rtprio": 11, "memlock": 11, "102400": 11, "appli": [11, 20, 33, 37, 39, 50], "log": 11, "again": [11, 16, 23, 24, 28, 33], "normal": [11, 33, 37, 48, 51], "linux": 11, "comput": [11, 21, 39, 55, 56], "throughput": 11, "suit": 11, "lt": 11, "beta": 11, "rt": 11, "amd64": 11, "debian": 11, "bullsey": 11, "lowlat": 11, "come": [11, 21, 50], "lot": [11, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "being": [11, 25], "realli": 11, "std_msg": [11, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 44, 52, 58], "reload": [11, 16, 20], "hardware_components_initial_st": 11, "map": [11, 18, 47, 50], "attribut": [11, 33], "full": [11, 19, 21, 41, 43], "unconfigur": [11, 16, 20, 23, 33], "arm1": 11, "arm2": 11, "base3": 11, "empti": [11, 39, 41, 43, 46, 47, 50, 51, 55, 56], "integ": [11, 40], "frequenc": [11, 40], "deal": 11, "namespac": [11, 15, 19, 33, 39, 40, 41, 47], "control_nod": 11, "robot_control": [11, 29, 33], "robot_state_pub_nod": 11, "remap": [11, 25], "relai": 11, "startup": [11, 18], "h": [11, 19, 20, 41], "param_fil": 11, "n": 11, "controller_typ": 11, "timeout": [11, 20, 39, 45, 48, 55, 56], "controller_manager_timeout": 11, "argument": [11, 19, 20, 23, 25, 27, 28, 29, 30, 31, 32, 34], "exit": [11, 20], "leav": 11, "kill": [11, 20, 33], "wait": [11, 20, 32, 48], "until": [11, 33, 49], "mai": [11, 13, 30, 40, 42, 52, 58], "taken": [11, 55], "becaus": [11, 17, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 49], "rclcpp": [11, 15, 19, 33, 41], "than": [11, 37, 43, 45, 48, 50, 51, 55, 56], "global": 11, "forcibli": 11, "lead": [11, 50], "duplic": [11, 48, 51, 55], "occur": [11, 33], "whether": [11, 37], "sibl": 11, "hierarchi": 11, "workaround": 11, "nodeopt": [11, 41], "pass": [11, 15, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "caus": [11, 49, 50, 55], "get_cm_node_opt": 11, "arg": 11, "_target_node_nam": 11, "__node": 11, "dst_node_nam": 11, "info": [11, 13, 15, 19, 33], "std": [11, 14, 33, 39, 48, 56], "make_shar": 11, "some_optional_namespac": 11, "simplest": 11, "switch_control": [11, 23], "broadcast": [11, 17, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 47], "achiev": [11, 15, 33, 42, 48, 52, 58], "return": [11, 13, 15, 16, 19, 23, 33, 41, 45, 47, 49, 50], "NOT": 11, "FOR": 11, "detect": 11, "listen": [11, 48], "doxygen": [12, 19], "cascad": 12, "substanti": 13, "renam": 13, "on_init": [13, 15, 19, 33, 41], "callbackreturn": [13, 15, 16, 19, 33], "baseinterfac": 13, "remov": 13, "base_interfac": 13, "hpp": [13, 15, 19, 21, 33, 37, 41], "hardware_interface_status_valu": 13, "rclcpp_lifecycl": [13, 15, 19, 33, 41], "strictli": [13, 17], "success": [13, 15, 16, 19, 33, 41, 45, 50], "status_": 13, "previous_st": [13, 15, 16, 33], "return_typ": [13, 15, 16, 33, 41], "in_deactiv": 13, "undefin": 13, "refern": 13, "symbol": 13, "node_interfac": [13, 33], "lifecyclenodeinterfac": [13, 19, 33], "rclcpp_lifecyl": 13, "cmakelist": [13, 19, 33, 41], "txt": [13, 19, 33, 41], "1256": 14, "otherwis": [14, 19, 21, 37, 41, 47, 48], "runtime_error": 14, "thrown": 14, "syntax": 14, "mimic": [14, 18, 25], "offici": [14, 21], "within": [14, 17, 23, 37, 50], "finger_right": 14, "offset": [14, 18, 47, 48], "advic": 15, "xmln": 15, "wiki": [15, 18, 36, 38, 49, 50, 57], "system_interfac": 15, "main_loop_update_r": 15, "desired_hw_update_r": 15, "my_system_interfac": 15, "mysystemhardwar": 15, "unsign": [15, 40], "int": [15, 39, 53, 55, 56], "main_loop_update_rate_": 15, "desired_hw_update_rate_": 15, "stoi": 15, "info_": [15, 33], "hardware_paramet": 15, "reset": [15, 33, 55], "counter": 15, "update_loop_counter_": 15, "durat": [15, 33], "period": [15, 33, 48], "interfer": 15, "hardware_go": 15, "comm": 15, "oper": [15, 33, 61], "sinc": [15, 29, 33, 38], "indic": [15, 29, 33, 48], "first_read_pass_": 15, "first_write_pass_": 15, "last_read_time_": 15, "desired_hw_update_period_": 15, "last_write_time_": 15, "previou": [15, 33, 49, 61], "on_error": [16, 19, 33], "failur": 16, "recov": 16, "devic": 17, "associ": 17, "coupl": 17, "ship": 17, "cannot": [17, 26, 33, 43, 50], "keyword": 17, "digit": 17, "signal": [17, 39], "electr": 17, "analog": 17, "vacuum": [17, 24], "flang": 17, "off": 17, "rrbotsystemmutiplegpio": 17, "example_param_hw_start_duration_sec": 17, "example_param_hw_stop_duration_sec": 17, "example_param_hw_slowdown": 17, "flange_digital_io": 17, "digital_output1": 17, "digital_output2": 17, "digital_input1": 17, "digital_input2": 17, "flange_analog_io": [17, 24], "analog_output1": [17, 24], "mock_hardwar": 17, "analog_input1": [17, 24], "analog_input2": [17, 24], "flange_vacuum": [17, 24], "suction": 17, "grasp": 17, "multimod": 17, "multimodalgripp": 17, "parallel_fing": 17, "temperatur": [17, 21], "feedback": [17, 18, 27, 47, 48, 50, 51, 55, 56], "adjust": [17, 20, 23, 33], "calibr": 17, "2d": [17, 30, 31], "ft": [17, 30, 31, 43], "choic": [17, 55], "matric": 17, "rrbotforcetorquesensor2d": 17, "forcetorquesensor2dhardwar": 17, "fx": 17, "tz": 17, "kuka_tcp": 17, "fx_rang": 17, "tz_rang": 17, "temp_feedback": 17, "calibration_matrix_nr": 17, "mirror": [18, 24], "correspond": [18, 19, 33, 41, 55, 61], "offlin": 18, "advantag": 18, "pipe": 18, "even": [18, 25, 26, 50], "boost": 18, "fake": 18, "disable_command": 18, "boolean": [18, 40], "erron": [18, 33], "noth": 18, "suddenli": 18, "Or": [18, 23, 29, 30, 31, 32, 34, 35], "mock_sensor_command": 18, "mock_gpio_command": 18, "position_state_following_offset": 18, "custom_interface_with_following_offset": 18, "certain": [18, 33, 42, 52, 58], "prepar": [19, 29, 41], "ament_cmak": [19, 41], "easiest": [19, 41], "search": [19, 41], "pkg": [19, 41], "package_nam": [19, 41], "robot_hardware_interface_nam": 19, "visibility_control": [19, 41], "window": [19, 39, 41, 56], "copi": [19, 41], "prefix": [19, 37, 39, 41, 43, 46, 53], "guard": [19, 41], "ifndef": [19, 41], "preprocessor": [19, 41], "friend": [19, 41], "interface_typ": [19, 41], "uniqu": [19, 33, 41], "snake_cas": [19, 41], "interfacetyp": 19, "hardwareinterfacenam": 19, "public": [19, 33, 41], "on_cleanup": [19, 33], "on_shutdown": [19, 33], "overrid": [19, 33, 41, 42, 50, 52, 58], "export_state_interfac": [19, 33], "export_command_interfac": [19, 33], "prepare_command_mode_switch": 19, "perform_command_mode_switch": 19, "further": [19, 41], "exact": [19, 41], "simplifi": [19, 33, 41, 61], "valid": [19, 21, 48, 51, 53], "fine": [19, 25, 28, 41], "opposit": [19, 41], "remind": 19, "joint_nam": [19, 37, 41], "shutdown": [19, 33], "gracefulli": 19, "store": [19, 41], "close": [19, 41], "class_list_macro": [19, 33, 41], "my_hardware_interface_packag": 19, "robothardwareinterfacenam": 19, "second": [19, 20, 23, 26, 29, 30, 31, 32, 33, 34, 35, 39, 41, 49, 51, 61], "visibl": [19, 41], "mock_compon": [19, 24, 28], "bottom": [19, 33, 41], "test_load_": [19, 41], "load_generic_system_2dof": 19, "test_generic_system": 19, "find_packag": [19, 41], "directori": [19, 39, 41, 43, 46, 53], "ament": [19, 41], "cmake": 19, "pluginlib_export_plugin_description_fil": [19, 33, 41], "ament_cmake_gmock": [19, 41], "ament_add_gmock": [19, 41], "ament_export_librari": [19, 41], "ament_packag": [19, 41], "test_depend": [19, 41], "rememb": [19, 41], "root": [19, 41], "enjoi": [19, 41], "great": [19, 41], "templat": [19, 21, 33, 41], "shell": [19, 41], "onward": 19, "spin": 20, "spin_tim": 20, "hidden": 20, "discoveri": 20, "daemon": 20, "test_controller_nam": 20, "test_control": 20, "diffdrivecontrol": [20, 28], "verbos": 20, "label": [20, 24, 27, 28, 30, 31, 32, 49], "hardware_component_nam": 20, "hardware_compon": 20, "ctrl1": 20, "ctrl2": 20, "strict": 20, "asap": 20, "switch_timeout": 20, "tmp": 20, "controller_diagram": 20, "gv": 20, "pdf": [20, 33], "demonstr": [21, 23, 25, 26, 28, 29, 34, 35], "prove": 21, "checkout": 21, "roscon2022_workshop": 21, "hardwareinterfac": [21, 33], "diffbot": 21, "degre": [21, 33, 50, 55], "freedom": [21, 33, 55], "components_architecture_and_urdf_exampl": 21, "revolut": [21, 23, 26, 33, 34], "drive": [21, 25, 28, 36, 38, 39, 40, 55, 56, 57, 60, 61], "accord": [21, 28, 33], "tutori": 21, "intermedi": 21, "carlikebot": 21, "bicycl": [21, 25, 40, 55], "steer": [21, 25, 36, 38, 40, 55, 56, 57], "tba": 21, "tabl": 21, "easili": 21, "aptitud": 21, "might": [21, 49], "own": [21, 23, 33], "merg": 21, "procedur": 21, "rviz2": [21, 23], "visual": [21, 23, 31, 33, 47], "joint_state_publisher_gui": [21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "ros2_control_demo_example_1": [21, 23], "view_robot": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "omit": 21, "example_1": [21, 23, 24, 26, 35], "rviz": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47], "slider": 21, "around": [21, 43, 46, 48, 51, 53], "ros2_control_demo_example_2": [21, 28], "categori": 21, "individu": [21, 41, 43, 53], "position_in_degre": 21, "hardware_interface_type_valu": [21, 37], "6dof": 21, "invert": 23, "pendulum": 23, "fun": 23, "proprietari": [23, 25, 27, 28, 29, 30, 31, 32, 34], "view": [23, 33], "recreat": 23, "robotmodel": 23, "displai": [23, 26, 27, 29, 30, 31, 32, 34, 35], "ros2_control_demo_descript": [23, 25], "ok": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 41], "warn": [23, 25, 27, 28, 29, 30, 31, 32, 34, 47], "invalid": [23, 25, 27, 28, 29, 30, 31, 32, 34], "frame": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 56], "odom": [23, 25, 27, 28, 29, 30, 31, 32, 34, 39, 55, 56], "cantransform": [23, 25, 27, 28, 29, 30, 31, 32, 34], "target_fram": [23, 25, 27, 28, 29, 30, 31, 32, 34], "happen": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34], "exemplari": [23, 27, 29, 30, 31, 32, 34, 36, 38, 55, 57], "orang": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "yellow": [23, 26, 27, 29, 30, 31, 32, 34, 35], "rectangl": [23, 26, 27, 29, 30, 31, 32, 34], "introspect": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34], "list_hardware_interfac": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "entrypoint": 23, "nomin": [23, 39], "marker": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "list_control": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "forward_position_control": [23, 24, 26, 29, 30, 31, 32, 34, 35], "forward_command_control": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 52, 58], "pub": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "float64multiarrai": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 44, 52, 58], "everi": [23, 29, 30, 31, 32, 33, 34, 35, 40, 44, 48, 61], "test_forward_position_control": [23, 29, 30, 31, 32, 34, 35], "block": [23, 26, 27, 29, 30, 31, 32, 33, 34], "got": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "50000": [23, 26, 30, 31, 32], "echo": [23, 24, 26, 28, 30, 31, 35], "joint_stat": [23, 25, 26, 28, 35, 47], "dynamic_joint_st": [23, 26, 35, 47], "load_control": 23, "joint_trajectory_position_control": 23, "successfulli": [23, 27, 32], "set_controller_st": 23, "rrbot_control": [23, 24, 26, 34, 35], "four": [23, 25, 27, 36], "test_joint_trajectory_control": 23, "rrbot_joint_trajectory_publish": 23, "rrbot_descript": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35], "rrbot_forward_position_publish": [23, 35], "ros2_control_demo_example_10": 24, "contrast": 24, "gpio_control": 24, "gpiocontrol": 24, "interface_nam": [24, 43, 44], "1199574016": 24, "1676318848": 24, "rrbotsystemwithgpiohardwar": 24, "gp": 24, "list_hardware_compon": [24, 27, 28, 30, 31, 32], "faster": [24, 28, 39, 56], "genericsystem": [24, 28], "use_mock_hardwar": [24, 28], "ident": [24, 26, 28, 33, 35, 49], "unless": [24, 47], "nan": [24, 30, 48], "generic_system": 24, "wheel": [25, 36, 38, 39, 55, 56, 57], "front": [25, 36, 37, 38, 55, 56, 57], "vehicl": [25, 38], "angl": [25, 33, 38, 55], "similarli": 25, "rear": [25, 36, 38, 55, 56, 57], "carlik": 25, "ros2_control_demo_example_11": 25, "remap_odometry_tf": 25, "excess": [25, 28], "print": [25, 28, 47], "tf": [25, 39, 55], "tree": [25, 33, 39], "pose": [25, 39, 55, 56], "coordin": 25, "odometri": [25, 39, 55, 56], "bicycle_steering_control": 25, "tf_odometri": [25, 55], "angular": [25, 28, 39, 46, 55, 56], "linear": [25, 28, 33, 39, 46, 49, 51, 55, 56], "virtual_front_wheel_joint": 25, "virtual_rear_wheel_joint": 25, "bicyclesteeringcontrol": 25, "geometry_msg": [25, 28, 30, 31, 39, 43, 55], "twiststamp": [25, 28, 39, 55], "twist": [25, 28, 55, 56], "circl": [25, 28], "carlikebotsystemhardwar": 25, "carlikebot_control": 25, "carlikebot_system": 25, "example_12": 26, "known": 26, "passthrough_control": 26, "ros2_control_demo_example_12": 26, "joint2_position_control": 26, "passthroughcontrol": 26, "joint1_position_control": 26, "someth": 26, "automat": [26, 33, 35, 39, 56], "appear": 26, "whose": [26, 49], "henc": [26, 33], "launch_chained_control": 26, "position_control": [26, 40, 44, 45], "streamlin": 26, "clearli": 26, "sent": 26, "reflect": 26, "canopen_402": [27, 32], "modbu": [27, 32], "rs232": [27, 32], "rs485": [27, 32], "ros2_control_demo_example_14": 27, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 27, "rrbotmodularjoint2": [27, 32], "rrbotactuatorwithoutfeedback": 27, "rrbotmodularjoint1": [27, 32], "rrbotmodularpositionsensorjoint2": 27, "rrbotsensorpositionfeedback": 27, "rrbotmodularpositionsensorjoint1": 27, "forward_velocity_control": [27, 29], "000000": 27, "00000": [27, 28, 29], "25300": 27, "rrbot_actuator_without_feedback": 27, "rrbot_sensor_for_position_feedback": 27, "example_2": 28, "left_wheel_joint": 28, "right_wheel_joint": 28, "diffbot_base_control": 28, "diff": 28, "diffbotsystemhardwar": 28, "33333": 28, "calculate_dynam": 28, "diffbot_control": 28, "diffbot_descript": 28, "diffbot_system": 28, "example_3": 29, "fri": [29, 60], "abb": [29, 60], "yumi": 29, "schunk": [29, 60], "lwa4p": 29, "illeg": 29, "declin": 29, "faulti": 29, "ros2_control_demo_example_3": 29, "rrbot_system_multi_interfac": 29, "spawn": 29, "forward_acceleration_control": 29, "velocity_control": [29, 40, 44], "jointgroupvelocitycontrol": 29, "rrbotsystemmultiinterfacehardwar": 29, "po": [29, 37, 49], "78500": 29, "vel": [29, 55], "acc": 29, "control_lvl": 29, "forward_illegal1_control": 29, "forward_illegal2_control": 29, "1676209982": 29, "531163501": 29, "resource_manag": 29, "rrbotsystemmultiinterfac": 29, "did": 29, "531223835": 29, "reject": [29, 48, 49], "spawner": 29, "531717376": 29, "spawner_forward_illegal1_control": 29, "rrbot_multi_interface_forward_control": 29, "krc": 30, "prototyp": 30, "odri": [30, 60], "ros2_control_demo_example_4": 30, "rrbot_system_with_sensor": 30, "rrbotsystemwithsensor": 30, "rrbotsystemwithsensorhardwar": 30, "fts_broadcast": [30, 31], "force_torque_sensor_broadcast": [30, 31], "forcetorquesensorbroadcast": [30, 31], "wrench": [30, 31, 37], "republish": [30, 31], "wrenchstamp": [30, 31, 43], "stamp": [30, 31, 55, 56], "sec": [30, 31], "1676444704": [30, 31], "nanosec": [30, 31], "332221422": [30, 31], "tool_link": [30, 31], "946532964706421": 30, "0540995597839355": 30, "rrbot_with_sensor_control": 30, "pc": 31, "3d": [31, 33], "ros2_control_demo_example_5": 31, "rrbot_system_with_external_sensor": 31, "externalrrbotftsensor": 31, "externalrrbotforcetorquesensorhardwar": 31, "2126582860946655": 31, "3202226161956787": 31, "4302282333374023": 31, "540233612060547": 31, "647800624370575": 31, "7602499723434448": 31, "rrbot_with_external_sensor_control": 31, "rrbot_system_position_onli": 31, "external_rrbot_force_torque_sensor": 31, "mara": 32, "ros2_control_demo_example_6": 32, "rrbot_modular_actu": 32, "rrbotmodularjoint": 32, "rrbot_actu": 32, "queri": [33, 50], "enhanc": 33, "deploi": 33, "pattern": 33, "vendor": 33, "runtim": 33, "program": 33, "conform": 33, "newest": 33, "characterist": 33, "primari": [33, 50], "commerci": 33, "scratch": 33, "illustr": 33, "stl": 33, "dae": 33, "coars": 33, "mesh": 33, "fast": [33, 60], "collis": 33, "express": 33, "vertic": 33, "transform": [33, 39, 56], "rotat": [33, 39, 48, 56], "translat": [33, 39, 56], "proxim": 33, "face": 33, "co": 33, "planer": 33, "xy": 33, "plane": 33, "align": 33, "blender": 33, "begin": 33, "neg": [33, 37, 48], "pitch": 33, "yaw": 33, "repeat": 33, "robot_6_dof": 33, "base_link": [33, 37, 39, 55, 56], "link_0": 33, "inerti": 33, "mass": [33, 37], "inertia": 33, "ixx": 33, "ixi": 33, "ixz": 33, "iyi": 33, "iyz": 33, "izz": 33, "tool0": [33, 37], "base_joint": 33, "joint_1": 33, "link_1": 33, "061584": 33, "141592653589793": 33, "name_spac": 33, "class_nam": 33, "pi": [33, 48, 51], "enclos": 33, "previous": 33, "left": [33, 39, 47], "zero": [33, 37, 48, 49], "rel": [33, 49], "center": [33, 37], "uniform": 33, "consecut": 33, "motion": [33, 48], "subsequ": 33, "join": [33, 61], "speci": 33, "verifi": 33, "urdf_to_graphviz": 33, "r6bot": 33, "explain": 33, "robotsystem": 33, "ur5": 33, "five": 33, "hardware_interface_return_valu": 33, "hardware_interface_publ": 33, "commandinterfac": 33, "privat": 33, "memori": [33, 41], "alloc": 33, "establish": 33, "notabl": 33, "vari": 33, "fill": 33, "field": [33, 47, 49], "suppos": [33, 49], "tcp_force_torque_sensor": 33, "Their": 33, "pointer": 33, "state_interfaces_": 33, "nearli": 33, "command_interfaces_": 33, "constraint": [33, 37, 39, 41, 43, 45, 46, 48, 50, 51, 55, 56], "respons": 33, "turn": 33, "oppos": [33, 50], "tcp": [33, 37], "packet": 33, "robot_6_dof_hardwar": 33, "discov": 33, "library_nam": 33, "base_class_typ": 33, "human": 33, "notic": [33, 49], "just": 33, "add_librari": 33, "robot_hardwar": 33, "unlik": 33, "finit": 33, "transit": [33, 40, 49], "robotcontrol": 33, "nine": 33, "six": [33, 43], "callback": 33, "lifetim": 33, "restart": 33, "reconfigur": 33, "buffer": [33, 61], "transfer": 33, "eventu": 33, "mutex": 33, "guarante": [33, 49], "never": 33, "release_interfac": 33, "shut": 33, "free": [33, 39], "cleanup": 33, "r6bot_control": 33, "view_r6bot": 33, "ros2_control_demo_example_7": 33, "send_trajectori": 33, "circular": 33, "ros2_control_demo_example_8": 34, "rrbot_transmissions_system_position_onli": 34, "rrbottransmissionssystempositiononlyhardwar": 34, "transmission1": 34, "actuator1": 34, "transmission2": 34, "actuator2": 34, "383253": 34, "766505": 34, "53301": 34, "example_9": 35, "gz_ros2_control": 35, "ros2_control_demo_example_9": 35, "rrbot_gazebo": 35, "ax": [36, 37, 38, 43, 46, 51, 57], "traction": [36, 38, 55, 56, 57], "steerabl": [36, 38, 57], "generate_parameter_librari": [36, 37, 38, 39, 43, 44, 45, 46, 47, 48, 51, 53, 55, 56, 57], "parameter": [36, 38, 55, 57], "front_wheel_track": 36, "length": [36, 37, 46, 51, 55, 57], "en": [36, 38, 57], "wikipedia": [36, 38, 55, 57, 61], "wheelbas": [36, 38, 56, 57], "rear_wheel_track": 36, "distanc": [36, 38, 39, 50, 53, 56, 57], "front_wheels_radiu": [36, 57], "radiu": [36, 38, 39, 56, 57], "rear_wheels_radiu": [36, 57], "chainedcontrollerinterfac": 37, "kinematics_interfac": 37, "string_arrai": [37, 39, 44, 47, 48, 51, 55], "command_joint": [37, 48], "chainable_command_interfac": 37, "plugin_nam": 37, "plugin_packag": 37, "alpha": 37, "damp": 37, "coeffici": 37, "jacobian": 37, "pseudo": 37, "ft_sensor": 37, "filter_coeffici": 37, "filter": 37, "exponenti": 37, "fixed_world_fram": 37, "graviti": 37, "gravity_compens": 37, "cog": 37, "double_arrai": [37, 39, 46, 55, 56], "compens": 37, "equal": [37, 45, 46, 48], "weight": 37, "selected_ax": 37, "bool_arrai": 37, "rx": 37, "ry": 37, "rz": 37, "arrai": 37, "bound": 37, "0001": 37, "damping_ratio": 37, "ratio": 37, "zeta": 37, "sqrt": 37, "m": [37, 53, 55], "stiff": 37, "joint_damp": 37, "greater": [37, 45, 48, 56], "enable_parameter_update_without_reactiv": 37, "load_admittance_control": 37, "test_admittance_control": 37, "kuka_kr6": 37, "joint3": [37, 50], "joint4": [37, 50], "joint5": [37, 50], "joint6": [37, 50], "kinematics_interface_kdl": 37, "kinematicsinterfacekdl": 37, "stationari": 37, "group_nam": 37, "0005": 37, "ft_sensor_nam": 37, "link_6": 37, "005": 37, "calc": 37, "displac": 37, "x_d": 37, "828427": 37, "joint_refer": 37, "trajectory_msg": [37, 49, 50], "jointtrajectorypoint": [37, 49], "admittancecontrollerst": 37, "sensor_nam": [37, 43, 46, 53], "ackermann": [38, 40, 55], "probabl": 38, "front_wheel_radiu": 38, "rear_wheel_radiu": 38, "bodi": 39, "space": [39, 50], "hw_if_posit": [39, 40, 55], "hw_if_veloc": [39, 40, 55], "position_feedback": [39, 55], "use_stamped_vel": [39, 55, 56], "nav_msg": [39, 55], "estim": 39, "tf2_msg": [39, 55], "tfmessag": [39, 55], "enable_odom_tf": [39, 55, 56], "cmd_vel_out": 39, "publish_limited_veloc": 39, "left_wheel_nam": 39, "right_wheel_nam": 39, "wheel_separ": 39, "shortest": [39, 48, 56], "wrong": [39, 56], "behav": [39, 56], "correctli": [39, 56], "curv": [39, 56], "wheel_radiu": [39, 56], "slower": [39, 49, 56], "wheel_separation_multipli": 39, "todo": 39, "me": 39, "left_wheel_radius_multipli": 39, "right_wheel_radius_multipli": 39, "tf_frame_prefix_en": 39, "append": [39, 49], "tf_prefix": 39, "tf_frame_prefix": 39, "odom_id": 39, "base_frame_id": [39, 55, 56], "odom_frame_id": [39, 55, 56], "pose_covariance_diagon": [39, 55, 56], "covari": [39, 46, 55, 56], "tune": [39, 56], "sampl": [39, 49, 55, 56], "001": [39, 45, 56], "twist_covariance_diagon": [39, 55, 56], "speed": [39, 56], "open_loop": [39, 55, 56], "cmd_vel_timeout": [39, 56], "stale": [39, 48, 56], "velocity_rolling_window_s": [39, 55, 56], "publish_r": 39, "joint_limit": 39, "has_velocity_limit": 39, "has_acceleration_limit": 39, "has_jerk_limit": 39, "max_veloc": [39, 56], "numeric_limit": [39, 48, 56], "quiet_nan": [39, 48, 56], "min_veloc": [39, 56], "max_acceler": [39, 56], "min_acceler": [39, 56], "max_jerk": [39, 56], "min_jerk": [39, 56], "test_diff_drive_control": 39, "left_wheel": 39, "right_wheel": 39, "wheels_per_sid": 39, "commonli": 40, "effort_control": [40, 44, 45], "hw_if_acceler": 40, "hw_if_effort": 40, "represent": [40, 50], "rqt_joint_trajectory_control": [40, 50], "onconfigur": 40, "configure_control": 40, "unspecifi": 40, "is_async": 40, "asynchron": 40, "controllernam": 41, "person": 41, "get_node_opt": 41, "protect": 41, "reserv": 41, "importantli": 41, "ask": [41, 47], "sort": 41, "controller_name_namespac": 41, "controller_name_packag": 41, "ros2_control_test_asset": 41, "special": [42, 49, 52, 58], "wrapper": [43, 46, 53], "forcetorquesensor": 43, "6d": 43, "per": [43, 48], "less": [43, 51, 55], "example_nam": 43, "example_interfac": 43, "test_force_torque_sensor_broadcast": 43, "fts_sensor_fram": 43, "feedforward": 44, "multi_interface_forward_command_control": 44, "gripperactioncontrol": 45, "action_monitor_r": [45, 48, 50], "goal_toler": 45, "max_effort": 45, "allow_stal": 45, "stall": 45, "stall_velocity_threshold": 45, "threshold": 45, "stall_timeout": 45, "gripper_action_control": 45, "imusensor": 46, "orient": 46, "angular_veloc": 46, "linear_acceler": 46, "static_covariance_orient": 46, "static": 46, "row": 46, "static_covariance_angular_veloc": 46, "static_covariance_linear_acceler": 46, "test_imu_sensor_broadcast": 46, "imu_sensor": 46, "imu_sensor_fram": 46, "latter": 47, "matrix": [47, 55], "use_local_top": 47, "my_state_broadcast": 47, "extra_joint": 47, "map_interface_to_joint_st": 47, "usecas": 47, "hydraul": [47, 48], "relianc": 47, "techniqu": 47, "slightli": 47, "custom_interfac": 47, "kf_estimated_posit": 47, "derived_veloc": 47, "derived_effort": 47, "torque_sensor": 47, "current_sensor": 47, "jtc": [48, 51], "command_interface_type_combin": 48, "state_interface_type_combin": 48, "allow_partial_joints_go": [48, 50], "open_loop_control": [48, 50], "interpol": [48, 50, 51], "gain": [48, 51], "numer": 48, "allow_integration_in_goal_trajectori": [48, 49], "monitor": [48, 50], "interpolation_method": 48, "spline": 48, "allow_nonzero_velocity_at_trajectory_end": 48, "cmd_timeout": 48, "goal_tim": [48, 50], "toler": [48, 50], "jointtrajectori": [48, 49, 50], "stopped_velocity_toler": [48, 50], "infinit": 48, "amount": 48, "law": [48, 50], "k_": 48, "ff": 48, "v_d": 48, "k_p": 48, "k_i": 48, "sum": 48, "dt": 48, "k_d": 48, "s_d": 48, "i_clamp": 48, "clamp": [48, 51], "symmetr": 48, "ff_velocity_scal": 48, "feed": [48, 51], "angle_wraparound": [48, 51], "deprec": 48, "wrap": [48, 50, 51], "ie": [48, 49], "saniti": 49, "segment": [49, 50], "fault": 49, "reach": [49, 50], "datapoint": 49, "deduc": 49, "nor": 49, "discourag": 49, "yield": 49, "discontinu": [49, 50], "cubic": [49, 51], "quintic": [49, 51], "heun": 49, "grid": 49, "10m": 49, "deduct": 49, "nonzero": 49, "inconsist": 49, "overshoot": 49, "timestamp": 49, "arriv": 49, "necessarili": 49, "discard": 49, "substitut": 49, "smarter": 49, "preserv": 49, "later": 49, "flat": 49, "grei": 49, "red": 49, "traj": 49, "time_from_start": 49, "splice": 49, "held": [49, 50], "smooth": [49, 61], "longer": 49, "effect": 49, "Of": 49, "interest": 49, "adolfo": [49, 50], "rodriguez": [49, 50], "instant": 50, "citat": 50, "adapt": 50, "restrict": 50, "robust": 50, "clock": 50, "queu": 50, "preempt": 50, "cancel": 50, "notifi": 50, "abort": 50, "legal": 50, "subset": 50, "favor": 50, "violat": 50, "joint_trajectori": 50, "fire": 50, "sender": 50, "query_st": 50, "controller_st": [50, 51, 55], "cumbersom": 50, "jointtrajectorycontrollerst": 50, "querytrajectoryst": 50, "footnot": 50, "pidro": 51, "control_toolbox": [51, 61], "pd": 51, "theoret": 51, "misus": 51, "pid_control": 51, "pidcontrol": 51, "reference_and_state_dof_nam": 51, "reference_and_state_interfac": 51, "dof_nam": 51, "in_chained_mod": [51, 55], "multidofcommand": 51, "use_external_measured_st": 51, "measured_st": 51, "set_feedforward_control": 51, "std_srv": 51, "setbool": 51, "multidofstatestamp": 51, "antiwindup": 51, "i_clamp_max": 51, "i_clamp_min": 51, "feedforward_gain": 51, "rangesensor": 53, "radiation_typ": 53, "radiat": 53, "ultrason": 53, "infrar": 53, "field_of_view": 53, "arc": 53, "rad": [53, 55], "min_rang": 53, "minimum": 53, "max_rang": 53, "maximum": 53, "varianc": 53, "range_sensor_broadcast": 53, "test_range_sensor_broadcast": 53, "mendatori": 53, "range_sensor": 53, "range_sensor_fram": 53, "rqt": 54, "nomenclatur": 55, "unstamp": 55, "concret": 55, "tricylc": 55, "seer": 55, "front_steer": 55, "front_wheels_nam": 55, "rear_wheels_nam": 55, "traction_feedback_typ": 55, "reference_unstamp": 55, "steeringcontrollerstatu": 55, "reference_timeout": 55, "unwant": 55, "danger": 55, "behaviour": 55, "rear_wheels_state_nam": 55, "front_wheels_state_nam": 55, "number": 55, "averag": 55, "diagon": 55, "trail": 56, "axl": 56, "traction_joint_nam": 56, "steering_joint_nam": 56, "odom_only_twist": 56, "millisecond": 56, "500": 56, "publish_ackermann_command": 56, "old": 56, "max_deceler": 56, "min_deceler": 56, "max_posit": 56, "min_posit": 56, "wheel_track": 57, "isaac": 59, "webot": 59, "mujoco": 59, "algoryx": 59, "agx": 59, "canopen": 60, "ethercat": 60, "svh": 60, "finger": 60, "dimens": 60, "haptic": 60, "hoverboard": 60, "ndi": 60, "odriv": 60, "pca9685": 60, "bit": 60, "pwm": 60, "servo": 60, "clearpath": 60, "huski": 60, "a200": 60, "jackal": 60, "j100": 60, "warthog": 60, "w200": 60, "flexiv": 60, "rizon": 60, "husarion": 60, "rosbot": 60, "2r": 60, "pro": 60, "xl": 60, "openmanipul": 60, "igu": 60, "commonplac": 60, "kinova": 60, "kortex": 60, "gen3": 60, "pmb2": 60, "tiago": 60, "xarm": 60, "egm": 60, "iiqka": 60, "eci": 60, "sunris": 60, "kss": 60, "iiwa": 60, "lbr": 60, "med": 60, "mitsubishi": 60, "rv1a": 60, "overcom": 61, "idea": 61, "wide": 61, "toolkit": 61, "unreleas": 61, "question": 61, "wg": 61, "wednesdai": 61, "announc": 61, "discours": 61, "googl": 61, "bug": 61, "tracker": 61, "reproduc": 61, "regard": 61, "built": 61, "gmt": 61}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 21, 61], "process": [1, 11], "merg": 1, "write": [1, 16, 19, 33, 41], "document": [1, 10, 12, 61], "structur": [1, 5], "ci": 1, "configur": 1, "usag": [1, 2, 4], "gazebo_ros2_control": 2, "modifi": [2, 4], "build": [2, 3, 4, 21], "your": [2, 3, 4], "own": [2, 4], "To": [2, 4, 21], "run": [2, 3, 4, 21], "demo": [2, 4, 7, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "add": [2, 4, 7], "ros2_control": [2, 4, 5, 6, 7, 8, 9, 12, 17, 21, 33, 37, 40, 61], "tag": [2, 4], "urdf": [2, 3, 4, 33], "simpl": [2, 4], "setup": [2, 4], "us": [2, 4, 10, 11, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41, 50, 51], "mimic": [2, 4], "joint": [2, 4, 17, 50], "simul": [2, 4, 35, 59], "plugin": [2, 4, 33], "default": [2, 4], "behavior": [2, 4], "advanc": [2, 4], "custom": [2, 4], "set": [2, 4], "up": [2, 4], "control": [2, 3, 4, 5, 7, 10, 11, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 42, 44, 45, 50, 51, 52, 55, 58, 59], "gazebo_ros2_control_demo": 2, "get": 3, "start": 3, "instal": [3, 21], "binari": 3, "packag": [3, 21], "from": [3, 6, 7, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 51, 55, 60], "sourc": [3, 21], "architectur": 3, "manag": [3, 10, 11], "resourc": [3, 8, 10], "user": 3, "interfac": [3, 5, 17, 18, 20, 24, 29, 33, 34, 37, 39, 42, 44, 47, 50, 51, 52, 55, 58], "hardwar": [3, 5, 7, 11, 15, 16, 17, 19, 33, 44, 47, 50], "compon": [3, 5, 7, 14, 15, 16, 18, 19], "descript": [3, 33, 39, 50, 51, 55], "framework": 3, "robot": [3, 8, 21, 24, 27, 29, 30, 31, 32, 33, 34, 40, 60], "gz_ros2_control": 4, "gz_ros2_control_demo": 4, "differ": [5, 6, 15], "ros_control": [5, 6], "ro": [5, 6, 8, 37, 39, 42, 44, 52, 58, 59], "1": [5, 6, 23, 50], "class": [5, 10], "": [5, 39, 50, 51, 55], "access": 5, "migrat": [5, 6], "guid": [5, 6], "robothardwar": 5, "come": [6, 9], "between": 6, "2": [6, 37, 39, 42, 44, 52, 58], "distribut": 6, "project": 7, "idea": 7, "gsoc": 7, "2024": 7, "tutori": [7, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "mission": 7, "support": [7, 60], "semant": 7, "featur": [7, 12, 39, 50, 56], "pariti": 7, "ros1": 7, "present": 8, "2023": [8, 9], "10": [8, 24], "18": 8, "roscon": [8, 9], "workshop": [8, 9], "steroid": [8, 9], "02": 8, "meetup": 8, "munich": 8, "5": [8, 31], "2022": 8, "12": [8, 26], "industri": [8, 24, 30, 31, 34], "confer": [8, 9], "06": 8, "fr": 8, "2021": 8, "world": 8, "07": 8, "weekli": 8, "13": 8, "rosdevdai": 8, "05": 8, "diagram": 8, "imag": 8, "summari": 9, "slide": 9, "befor": 9, "peopl": 9, "chain": [10, 26], "cascad": 10, "scope": 10, "background": 10, "knowledg": 10, "motiv": 10, "purpos": 10, "implement": 10, "A": 10, "base": 10, "chainablecontrol": 10, "inner": 10, "activ": 10, "deactiv": 10, "debug": 10, "output": [10, 39], "close": 10, "remark": 10, "determin": 11, "subscrib": [11, 39, 50, 51, 55], "paramet": [11, 18, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 51, 52, 53, 55, 56, 57, 58], "handl": [11, 16], "multipl": [11, 29], "helper": 11, "script": 11, "spawner": 11, "unspawn": 11, "concept": [11, 12], "restart": 11, "all": 11, "api": 12, "foxi": 13, "galact": 13, "hardware_interfac": 13, "iron": 14, "jazzi": 14, "parser": 14, "updat": 15, "rate": 15, "By": 15, "count": 15, "loop": 15, "measur": 15, "elaps": 15, "time": 15, "guidelin": [16, 40], "best": [16, 40], "practic": [16, 40], "error": 16, "happen": 16, "dure": 16, "read": 16, "call": 16, "type": [17, 44, 47, 50], "sensor": [17, 30, 31, 43, 46, 53], "gpio": [17, 24], "exampl": [17, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 45, 46, 47, 48, 49, 53], "mock": 18, "gener": 18, "system": 18, "per": 18, "extern": [19, 31, 41], "refer": [19, 37, 39, 41, 50, 51, 55], "command": [20, 37, 47, 50, 51, 55, 56], "line": 20, "list_control": 20, "list_controller_typ": 20, "list_hardware_compon": 20, "list_hardware_interfac": 20, "load_control": 20, "reload_controller_librari": 20, "set_controller_st": 20, "set_hardware_component_st": 20, "switch_control": 20, "unload_control": 20, "view_controller_chain": 20, "what": 21, "you": 21, "can": 21, "find": 21, "thi": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "goal": 21, "overview": [21, 33], "local": 21, "debian": 21, "docker": 21, "view": 21, "quick": 21, "hint": 21, "rrbot": [23, 26, 35], "step": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "file": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 45, 46, 47, 48, 53], "carlikebot": 25, "14": 27, "modular": [27, 32], "actuat": [27, 32], "provid": 27, "state": [27, 37, 50, 51, 55], "diffbot": 28, "3": 29, "4": 30, "integr": [30, 59], "connect": 31, "6": 32, "separ": 32, "commun": [32, 59, 60, 61], "each": 32, "7": 33, "full": 33, "6dof": 33, "geometri": 33, "cmake": 33, "librari": 33, "launch": 33, "8": 34, "an": [34, 45, 46, 47, 48, 53], "expos": 34, "transmiss": 34, "9": 35, "ackermann_steering_control": 36, "admitt": 37, "topic": [37, 42, 44, 52, 58], "bicycle_steering_control": 38, "diff_drive_control": 39, "other": [39, 40, 50, 56], "feedback": 39, "publish": [39, 50, 51, 55], "mobil": 40, "manipul": 40, "broadcast": [40, 43, 46, 53], "common": 40, "new": 41, "effort_control": 42, "jointgroupeffortcontrol": 42, "forc": 43, "torqu": 43, "forward_command_control": 44, "gripper": 45, "action": [45, 50], "list": [45, 46, 47, 48, 53], "imu": 46, "joint_state_broadcast": 47, "detail": 48, "about": 48, "trajectori": [49, 50], "represent": 49, "interpol": 49, "method": 49, "none": 49, "spline": 49, "visual": 49, "replac": 49, "joint_trajectory_control": 50, "preemption": 50, "polici": 50, "servic": [50, 51], "further": 50, "inform": 50, "pid": 51, "execut": [51, 55], "logic": [51, 55], "preced": [51, 55], "position_control": 52, "jointgrouppositioncontrol": 52, "rang": 53, "rqt_joint_trajectory_control": 54, "steering_controllers_librari": 55, "tricycle_control": 56, "veloc": 56, "tricycle_steering_control": 57, "velocity_control": 58, "jointgroupvelocitycontrol": 58, "host": 59, "protocol": 60, "end": 60, "effector": 60, "non": 60, "devic": 60, "offici": 60, "manufactur": 60, "unoffici": 60, "welcom": 61, "develop": 61, "organis": 61}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "gazebo_ros2_control": [[2, "gazebo-ros2-control"]], "Usage": [[2, "usage"], [4, "usage"]], "Modifying or building your own": [[2, "modifying-or-building-your-own"], [4, "modifying-or-building-your-own"]], "To run the demo": [[2, "to-run-the-demo"], [4, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[2, "add-ros2-control-tag-to-a-urdf"], [4, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[2, "simple-setup"], [4, "simple-setup"]], "Using mimic joints in simulation": [[2, "using-mimic-joints-in-simulation"], [4, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[2, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[2, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[2, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[2, "set-up-controllers"], [4, "set-up-controllers"]], "gazebo_ros2_control_demos": [[2, "gazebo-ros2-control-demos"]], "Getting Started": [[3, "getting-started"]], "Installation": [[3, "installation"], [21, "installation"]], "Binary packages": [[3, "binary-packages"]], "Building from Source": [[3, "building-from-source"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [11, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"], [16, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[4, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[4, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[4, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[4, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[4, "gz-ros2-control-demos"]], "Differences to ros_control (ROS 1)": [[5, "differences-to-ros-control-ros-1"]], "Hardware Structures - classes": [[5, "hardware-structures-classes"]], "Hardware Interfaces": [[5, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[5, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[5, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[5, "robothardware-to-components"]], "Controller Migration": [[5, "controller-migration"]], "Migration Guides": [[6, "migration-guides"]], "Coming from ros_control (ROS 1)": [[6, "coming-from-ros-control-ros-1"]], "Between different ROS 2 distributions": [[6, "between-different-ros-2-distributions"]], "ros2_control": [[6, "ros2-control"], [12, "ros2-control"]], "ros2_controllers": [[6, "ros2-controllers"], [40, "ros2-controllers"]], "Project Ideas for GSoC 2024": [[7, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[7, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[7, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[7, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[7, "feature-parity-for-controllers-from-ros1"]], "Resources": [[8, "resources"]], "Presentations": [[8, "presentations"]], "2023-10-18 ROSCon Workshop: ros2_control on Steroids": [[8, "roscon-workshop-ros2-control-on-steroids"]], "2023-02 ROS Meetup Munich #5": [[8, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[8, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[8, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[8, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[8, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[8, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[8, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[8, "roscon-fr-2021"]], "Diagrams": [[8, "diagrams"]], "Images": [[8, "images"]], "ROSCon 2023 Workshop": [[9, "roscon-2023-workshop"]], "ros2_control on Steroids": [[9, "ros2-control-on-steroids"]], "Summary": [[9, "summary"]], "Slides": [[9, "slides"]], "Before coming to the conference": [[9, "before-coming-to-the-conference"]], "People": [[9, "people"]], "Controller Chaining / Cascade Control": [[10, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[10, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[10, "motivation-purpose-and-use"]], "Implementation": [[10, "implementation"]], "A Controller Base-Class: ChainableController": [[10, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[10, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[10, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[10, "debugging-outputs"]], "Closing remarks": [[10, "closing-remarks"]], "Determinism": [[11, "determinism"]], "Subscribers": [[11, "subscribers"], [39, "subscribers"], [51, "subscribers"], [55, "subscribers"]], "Parameters": [[11, "parameters"], [18, "parameters"], [36, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [42, "parameters"], [43, "parameters"], [44, "parameters"], [45, "parameters"], [46, "parameters"], [47, "parameters"], [51, "parameters"], [52, "parameters"], [53, "parameters"], [55, "parameters"], [56, "parameters"], [57, "parameters"], [58, "parameters"]], "Handling Multiple Controller Managers": [[11, "handling-multiple-controller-managers"]], "Helper scripts": [[11, "helper-scripts"]], "spawner": [[11, "spawner"]], "unspawner": [[11, "unspawner"]], "Using the Controller Manager in a Process": [[11, "using-the-controller-manager-in-a-process"]], "Concepts": [[11, "concepts"], [12, "concepts"]], "Restarting all controllers": [[11, "restarting-all-controllers"]], "Restarting hardware": [[11, "restarting-hardware"]], "API Documentation": [[12, "api-documentation"]], "Features": [[12, "features"]], "Foxy to Galactic": [[13, "foxy-to-galactic"]], "hardware_interface": [[13, "hardware-interface"]], "Iron to Jazzy": [[14, "iron-to-jazzy"]], "component parser": [[14, "component-parser"]], "Different update rates for Hardware Components": [[15, "different-update-rates-for-hardware-components"]], "By counting loops": [[15, "by-counting-loops"]], "By measuring elapsed time": [[15, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[16, "guidelines-and-best-practices"], [40, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[16, "handling-of-errors-that-happen-during-read-and-write-calls"]], "ros2_control hardware interface types": [[17, "ros2-control-hardware-interface-types"]], "Joints": [[17, "joints"]], "Sensors": [[17, "sensors"]], "GPIOs": [[17, "gpios"]], "Examples": [[17, "examples"], [21, "examples"]], "Mock Components": [[18, "mock-components"]], "Generic System": [[18, "generic-system"]], "Per-interface Parameters": [[18, "per-interface-parameters"]], "Writing a Hardware Component": [[19, "writing-a-hardware-component"]], "Useful External References": [[19, "useful-external-references"], [41, "useful-external-references"]], "Command Line Interface": [[20, "command-line-interface"]], "list_controllers": [[20, "list-controllers"]], "list_controller_types": [[20, "list-controller-types"]], "list_hardware_components": [[20, "list-hardware-components"]], "list_hardware_interfaces": [[20, "list-hardware-interfaces"]], "load_controller": [[20, "load-controller"]], "reload_controller_libraries": [[20, "reload-controller-libraries"]], "set_controller_state": [[20, "set-controller-state"]], "set_hardware_component_state": [[20, "set-hardware-component-state"]], "switch_controllers": [[20, "switch-controllers"]], "unload_controller": [[20, "unload-controller"]], "view_controller_chains": [[20, "view-controller-chains"]], "Demos": [[21, "demos"]], "What you can find in this repository": [[21, "what-you-can-find-in-this-repository"]], "Goals": [[21, "goals"]], "Examples Overview": [[21, "examples-overview"]], "Local installation": [[21, "local-installation"]], "Build from debian packages": [[21, "build-from-debian-packages"]], "Build from source": [[21, "build-from-source"]], "Using Docker": [[21, "using-docker"]], "To view the robot": [[21, "to-view-the-robot"]], "To run the ros2_control demos": [[21, "to-run-the-ros2-control-demos"]], "Quick Hints": [[21, "quick-hints"]], "Example 1: RRBot": [[23, "example-1-rrbot"]], "Tutorial steps": [[23, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [29, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"], [32, "tutorial-steps"], [34, "tutorial-steps"], [35, "tutorial-steps"]], "Files used for this demos": [[23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [29, "files-used-for-this-demos"], [31, "files-used-for-this-demos"], [32, "files-used-for-this-demos"], [34, "files-used-for-this-demos"], [35, "files-used-for-this-demos"]], "Controllers from this demo": [[23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [29, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"], [32, "controllers-from-this-demo"], [34, "controllers-from-this-demo"], [35, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[24, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[25, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[26, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[27, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[28, "diffbot"]], "Example 3: Robots with multiple interfaces": [[29, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[30, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[30, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[31, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[32, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[33, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[33, "ros2-control-overview"]], "Writing a URDF": [[33, "writing-a-urdf"]], "Geometry": [[33, "geometry"]], "URDF file": [[33, "urdf-file"]], "Writing a hardware interface": [[33, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[33, "plugin-description-file-hardware"]], "CMake library (hardware)": [[33, "cmake-library-hardware"]], "Writing a controller": [[33, "writing-a-controller"]], "Plugin description file (controller)": [[33, "plugin-description-file-controller"]], "CMake library (controller)": [[33, "cmake-library-controller"]], "Launching the example": [[33, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[34, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[35, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[36, "ackermann-steering-controller"]], "Admittance Controller": [[37, "admittance-controller"]], "ROS 2 interface of the controller": [[37, "ros-2-interface-of-the-controller"], [42, "ros-2-interface-of-the-controller"], [44, "ros-2-interface-of-the-controller"], [52, "ros-2-interface-of-the-controller"], [58, "ros-2-interface-of-the-controller"]], "Topics": [[37, "topics"], [42, "topics"], [44, "topics"], [52, "topics"], [58, "topics"]], "ros2_control interfaces": [[37, "ros2-control-interfaces"]], "References": [[37, "references"], [39, "references"], [50, "references"]], "States": [[37, "states"], [50, "states"], [51, "states"], [55, "states"]], "Commands": [[37, "commands"], [47, "commands"], [50, "commands"], [51, "commands"], [55, "commands"]], "bicycle_steering_controller": [[38, "bicycle-steering-controller"]], "diff_drive_controller": [[39, "diff-drive-controller"]], "Other features": [[39, "other-features"], [50, "other-features"], [56, "other-features"]], "Description of controller\u2019s interfaces": [[39, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"], [51, "description-of-controller-s-interfaces"], [55, "description-of-controller-s-interfaces"]], "Feedback": [[39, "feedback"]], "Output": [[39, "output"]], "ROS 2 Interfaces": [[39, "ros-2-interfaces"]], "Publishers": [[39, "publishers"], [50, "publishers"], [51, "publishers"], [55, "publishers"]], "Controllers for Mobile Robots": [[40, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[40, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[40, "broadcasters"]], "Common Controller Parameters": [[40, "common-controller-parameters"]], "Writing a new controller": [[41, "writing-a-new-controller"]], "effort_controllers": [[42, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[42, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[43, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[44, "forward-command-controller"]], "Hardware interface type": [[44, "hardware-interface-type"], [47, "hardware-interface-type"]], "Gripper Action Controller": [[45, "gripper-action-controller"]], "List of parameters": [[45, "list-of-parameters"], [46, "list-of-parameters"], [47, "list-of-parameters"], [48, "list-of-parameters"], [53, "list-of-parameters"]], "An example parameter file": [[45, "an-example-parameter-file"], [46, "an-example-parameter-file"], [47, "an-example-parameter-file"], [48, "an-example-parameter-file"], [53, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[46, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[47, "joint-state-broadcaster"]], "Details about parameters": [[48, "details-about-parameters"]], "Trajectory Representation": [[49, "trajectory-representation"]], "Interpolation Method none": [[49, "interpolation-method-none"]], "Interpolation Method spline": [[49, "interpolation-method-spline"]], "Visualized Examples": [[49, "visualized-examples"]], "Trajectory Replacement": [[49, "trajectory-replacement"]], "joint_trajectory_controller": [[50, "joint-trajectory-controller"]], "Hardware interface types": [[50, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[50, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[50, "preemption-policy"]], "Actions 1": [[50, "actions"]], "Subscriber 1": [[50, "subscriber"]], "Services": [[50, "services"], [51, "services"]], "Further information": [[50, "further-information"]], "PID Controller": [[51, "pid-controller"]], "Execution logic of the controller": [[51, "execution-logic-of-the-controller"], [55, "execution-logic-of-the-controller"]], "Using the controller": [[51, "using-the-controller"]], "References (from a preceding controller)": [[51, "references-from-a-preceding-controller"], [55, "references-from-a-preceding-controller"]], "position_controllers": [[52, "position-controllers"]], "position_controllers/JointGroupPositionController": [[52, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[53, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[54, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[55, "steering-controllers-library"]], "tricycle_controller": [[56, "tricycle-controller"]], "Velocity commands": [[56, "velocity-commands"]], "tricycle_steering_controller": [[57, "tricycle-steering-controller"]], "velocity_controllers": [[58, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[58, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[59, "simulator-integrations"]], "Hosted by ros-controls": [[59, "hosted-by-ros-controls"]], "Community": [[59, "community"]], "Supported Robots": [[60, "supported-robots"]], "Communication protocols": [[60, "communication-protocols"]], "End-effectors": [[60, "end-effectors"]], "Non robot-devices": [[60, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[60, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[60, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation!": [[61, "welcome-to-the-ros2-control-documentation"]], "ros2_control Repositories": [[61, "ros2-control-repositories"]], "Development Organisation and Communication": [[61, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/migration/differences_to_ros1", "doc/migration/migration", "doc/project_ideas", "doc/resources/resources", "doc/resources/roscon2023_workshop", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/doc/migration/Foxy", "doc/ros2_control/doc/migration/Iron", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/pid_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/migration/differences_to_ros1.rst", "doc/migration/migration.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/resources/roscon2023_workshop.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/doc/migration/Foxy.rst", "doc/ros2_control/doc/migration/Iron.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/pid_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Differences to ros_control (ROS 1)", "Migration Guides", "Project Ideas for GSoC 2024", "Resources", "ROSCon 2023 Workshop", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Foxy to Galactic", "Iron to Jazzy", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "PID Controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 61], "follow": [0, 1, 2, 3, 4, 5, 7, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 48, 49, 50, 51, 52, 57, 58, 61], "peopl": [0, 1], "were": [0, 7, 33, 39, 49, 50], "ros2_control": [0, 1, 3, 11, 14, 15, 16, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 41, 59], "framework": [0, 1, 5, 7, 8, 9, 11, 12, 16, 17, 18, 20, 21, 33, 40, 41, 47, 61], "show": [0, 1, 2, 3, 4, 8, 9, 11, 13, 17, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 47, 49], "review": [0, 1, 7, 61], "activ": [0, 1, 2, 3, 4, 5, 11, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 48, 50, 51], "contribut": [0, 3, 8], "recent": [0, 19, 41], "all": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 13, 14, 17, 18, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 41, 43, 45, 46, 47, 48, 49, 50, 53, 60], "time": [0, 1, 5, 7, 8, 9, 11, 18, 20, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 39, 41, 43, 48, 49, 50, 61], "contrib": 0, "dure": [0, 21, 33, 48, 50], "past": [0, 49], "12": [0, 21, 60], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 48], "line": [0, 3, 12, 13, 19, 23, 33, 41, 47, 49], "chang": [0, 1, 3, 5, 8, 11, 13, 14, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 48, 49, 50, 53], "last": [0, 13, 15, 19, 33, 37, 41, 48, 49, 50], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48689": 0, "2024": [0, 61], "01": [0, 25, 37, 39, 45, 48, 50, 56], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 7, 8, 9], "magyar": [0, 7, 8, 9], "bmagyar": [0, 9], "128": 0, "8600": 0, "2023": 0, "11": [0, 21], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 8], "deni": [0, 7, 8, 9], "destogl": [0, 39], "35": [0, 55], "5628": 0, "09": 0, "26t19": 0, "07": [0, 61], "58z": 0, "fetch": [0, 15], "04": [0, 9, 11, 61], "03": [0, 25, 50], "25": 0, "53": 0, "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 2, 4, 14, 21, 29, 37, 39, 53, 55, 56], "01t10": 0, "36": 0, "22z": 0, "435": 0, "64346": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 15, 41], "finish": 0, "rate": [0, 12, 16, 25, 28, 39, 40, 48, 49, 50], "577": 0, "405": 0, "0": [0, 2, 3, 4, 10, 14, 15, 17, 18, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57], "70": 0, "03t11": 0, "19z": 0, "238": 0, "214": [0, 37], "90": [0, 33], "05t08": 0, "35z": 0, "479": 0, "111": 0, "23": [0, 3, 37], "04t06": 0, "34": 0, "04z": 0, "1435": 0, "1147": 0, "80": 0, "1155": 0, "604": 0, "52": [0, 53], "261": 0, "237": 0, "91": 0, "have": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 17, 18, 19, 21, 23, 24, 26, 28, 29, 33, 36, 37, 38, 40, 41, 47, 48, 50, 51, 57], "develop": [0, 1, 8, 18, 19, 21, 41], "thi": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61], "project": [0, 1, 61], "provid": [0, 2, 3, 4, 7, 8, 10, 11, 17, 18, 19, 21, 23, 26, 29, 30, 31, 32, 33, 34, 35, 37, 41, 47, 48, 49, 50, 55, 61], "valuabl": 0, "submit": [0, 1, 8, 59, 60], "pull": [0, 9, 19], "request": [0, 5, 19, 33, 47, 61], "see": [0, 1, 3, 5, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 43, 46, 48, 50, 53, 55, 57], "more": [0, 2, 3, 4, 5, 7, 9, 11, 14, 18, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 50, 57], "inform": [0, 1, 2, 3, 4, 10, 18, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 41, 61], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 3, 11, 28, 39], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 7, 8, 14, 15, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 41, 45, 48, 49, 53, 55], "5774": 0, "05": [0, 37, 50, 61], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 39], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 7, 9, 21, 37, 46], "2043": 0, "06": 0, "01t07": 0, "45": [0, 18], "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 55], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 2, 4, 14], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 10, 41, 47, 48, 50], "flochr": 0, "2": [0, 1, 2, 3, 4, 7, 8, 9, 10, 15, 17, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 50, 55, 60, 61], "888": 0, "07t00": 0, "17": [0, 9], "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 2, 4, 25, 28], "alex": 0, "moriarti": 0, "5": [0, 19, 21, 23, 24, 26, 27, 29, 30, 32, 33, 34, 35, 37, 39, 49, 55, 60], "581": 0, "07t20": 0, "46": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 60], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "302": [0, 7], "09t10": 0, "21z": 0, "manuel": 0, "muth": 0, "mamueluth": 0, "268": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": [0, 8, 9], "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 8, 9, 21, 24, 28, 37, 53, 55, 60], "125": 0, "22t09": 0, "27": 0, "11z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 39], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 2, 4, 14], "github": [0, 3, 7, 9, 12, 21, 33, 40, 59, 60, 61], "action": [0, 2, 4, 10, 48], "bot": 0, "28": [0, 55], "87": 0, "11t09": 0, "03z": 0, "bailac": 0, "68": 0, "08t11": 0, "14": [0, 21, 55, 60], "49z": 0, "olivi": 0, "stass": 0, "3": [0, 2, 3, 4, 7, 14, 17, 18, 20, 21, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 37, 49, 50, 51], "49": 0, "26t02": 0, "31": [0, 61], "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 17, 21, 25, 27, 29, 31, 34, 37, 53], "43": [0, 3, 17, 28], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "wiktor": 0, "bajor": 0, "99": [0, 11], "12t15": 0, "johann": [0, 8], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": [0, 14], "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "26": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 21, 37], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 8], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 21, 23, 33, 37], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "52z": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 7, 11, 17, 19, 20, 23, 33], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 19, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 37, 41, 42, 47, 52, 55, 58, 61], "A": [0, 3, 8, 17, 19, 21, 30, 31, 40, 41, 47, 49, 50], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 20, 24, 30, 37, 48], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 2, 3, 4, 17, 33, 45], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "22": [0, 9, 11], "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "najjar": [0, 8], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 9, 21], "56z": 0, "970": 0, "21t01": 0, "00": [0, 9], "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "08t08": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 21, 23, 37, 48, 51], "547": 0, "08t21": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": [0, 51], "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 8], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "123": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 9, 25, 45, 48, 50], "01t09": 0, "svnrk": 0, "nathan": [0, 8], "brook": [0, 8], "nbbrook": 0, "13t14": 0, "18": [0, 9, 33], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 3, 8, 11, 20, 24, 33, 35], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "166": 0, "151": 0, "03t06": 0, "04t20": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "96": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "25t06": 0, "124": 0, "01t20": 0, "107": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "103": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "andr": 0, "montano": 0, "anfemosa": 0, "63": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 25, 28, 30, 31, 33, 37, 39, 43, 46, 55, 56, 60], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "171": 0, "156": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "60": 0, "14t09": 0, "88": 0, "196": 0, "23t02": 0, "78": 0, "79": 0, "219": 0, "199": 0, "10t19": 0, "210": 0, "27t13": 0, "181": 0, "25t01": 0, "69": 0, "14t18": 0, "163": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "07t18": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 25, 28, 30, 31, 33, 37, 39, 43, 46, 55, 56], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 2, 3, 4, 8, 15, 17, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 41, 47, 48, 49, 51], "receiv": [0, 5, 14, 17, 24, 33, 49], "major": [0, 46], "from": [0, 1, 5, 8, 9, 10, 11, 14, 15, 16, 18, 19, 20, 22, 33, 37, 39, 40, 41, 42, 43, 46, 48, 49, 50, 52, 53, 56, 58, 61], "support": [0, 2, 3, 4, 5, 8, 11, 14, 18, 19, 20, 33, 37, 41, 47, 49, 50, 55, 59, 61], "rosin": 0, "ro": [0, 1, 2, 3, 4, 7, 9, 11, 15, 17, 18, 20, 21, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 49, 50, 61], "industri": [0, 3, 7, 9, 21, 60], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 5, 7, 9, 10, 11, 15, 17, 23, 25, 26, 28, 35, 37, 39, 43, 47, 55, 56, 61], "softwar": [0, 3, 33], "compon": [0, 8, 11, 12, 13, 17, 20, 21, 24, 27, 28, 29, 30, 31, 32, 33, 37, 39, 40, 43, 46, 53, 55, 56, 61], "http": [0, 3, 7, 9, 15, 21, 33, 36, 38, 57], "www": [0, 15], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 7, 8, 10, 11, 15, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 41, 43, 46, 48, 49, 53, 56, 57, 61], "horizon": 0, "research": [0, 8], "innov": 0, "programm": 0, "under": [0, 8, 19, 26, 41, 49, 50, 55, 61], "grant": [0, 3], "agreement": 0, "732287": 0, "first": [1, 5, 10, 13, 15, 19, 21, 33, 35, 41, 49, 51], "thank": 1, "you": [1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 41, 50, 51, 61], "consid": [1, 20, 39, 48, 51, 56], "As": [1, 10, 17, 19, 23, 33, 39, 41], "an": [1, 2, 3, 4, 5, 7, 8, 10, 17, 18, 19, 20, 21, 23, 24, 25, 26, 28, 31, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 50, 52, 55, 56, 57, 58], "open": [1, 9, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 48, 55], "sourc": [1, 2, 4, 8, 9, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "we": [1, 2, 4, 7, 8, 9, 10, 13, 21, 23, 25, 26, 28, 33, 34, 35, 47], "welcom": 1, "each": [1, 3, 7, 10, 11, 16, 17, 19, 21, 23, 27, 33, 36, 37, 47, 55, 57], "contributor": 1, "regardless": 1, "background": [1, 21], "experi": 1, "To": [1, 3, 5, 10, 11, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 49, 59, 60, 61], "reduc": [1, 18], "entropi": 1, "univers": [1, 8, 33, 60], "our": [1, 2, 3, 4, 7, 8, 21, 23, 33], "vivid": 1, "collabor": 1, "environ": [1, 3, 8, 21], "set": [1, 5, 7, 8, 9, 10, 11, 13, 17, 18, 19, 20, 21, 23, 24, 25, 33, 37, 39, 40, 42, 47, 48, 49, 50, 52, 53, 55, 56, 58], "up": [1, 8, 9, 19, 21, 49], "some": [1, 2, 4, 7, 8, 15, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 47, 48, 50, 61], "standard": [1, 5, 7, 8, 11, 19, 20, 27, 32, 33, 43, 47], "method": [1, 3, 5, 10, 11, 15, 16, 19, 33, 41, 55], "requir": [1, 3, 5, 7, 19, 33, 37, 41, 42, 50, 52, 58], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57, 61], "limit": [1, 2, 4, 8, 11, 14, 21, 33, 39, 56], "scope": 1, "your": [1, 5, 8, 9, 11, 14, 15, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 41, 56, 59, 60, 61], "pr": [1, 14, 59, 60], "should": [1, 2, 4, 5, 7, 8, 10, 11, 13, 15, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 47, 49, 50, 51, 56], "do": [1, 3, 5, 7, 8, 10, 11, 19, 21, 37, 41, 50, 51, 56], "one": [1, 3, 5, 7, 8, 9, 10, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 42, 43, 47, 48, 49, 50, 51, 52, 55, 57, 58, 61], "thing": [1, 2, 4, 9, 11, 21], "avoid": [1, 23, 25, 27, 28, 29, 30, 31, 32, 34, 41], "ad": [1, 2, 4, 7, 11, 18, 19, 25, 26, 28, 33, 39, 41, 47], "random": [1, 27, 29, 30, 31, 32], "fix": [1, 5, 25, 33, 36, 38, 57], "put": [1, 19, 41], "those": [1, 3, 5, 7, 10, 18, 19, 21, 33, 41, 43, 47, 48, 49, 53], "separ": [1, 3, 5, 21, 27, 39, 47, 56], "give": [1, 8, 11, 21, 23, 24, 28, 29, 49, 61], "descript": [1, 5, 8, 11, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 43, 45, 46, 47, 48, 53], "titl": 1, "add": [1, 5, 10, 11, 13, 15, 19, 33, 36, 37, 38, 41, 57, 59, 60], "short": [1, 41, 61], "summari": [1, 8, 61], "make": [1, 4, 5, 7, 8, 26, 33, 45, 61], "sure": [1, 4, 7, 23, 26, 27, 28, 29, 30, 31, 32, 34, 61], "pipelin": 1, "i": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 61], "green": [1, 49], "don": [1, 2, 9, 10, 24, 28, 48, 50], "t": [1, 2, 4, 9, 10, 11, 21, 24, 28, 48, 49, 50, 51], "afraid": 1, "maintain": [1, 3, 7, 10, 21, 49], "new": [1, 8, 9, 10, 19, 23, 26, 29, 33, 40, 49, 61], "code": [1, 3, 5, 7, 8, 19, 33], "test": [1, 2, 7, 18, 19, 21, 23, 28, 35, 36, 37, 38, 39, 41, 43, 46, 53, 55, 57], "If": [1, 3, 5, 8, 9, 10, 11, 13, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 43, 47, 48, 49, 50, 51, 55, 56, 61], "function": [1, 5, 7, 8, 9, 26, 33, 37, 51, 55], "alwai": [1, 33], "exercis": 1, "serv": [1, 3, 7], "live": [1, 8], "origin": [1, 2, 4, 8, 14, 23, 33, 49, 50], "intent": [1, 10, 18], "section": [1, 5, 15, 17, 19, 41, 50], "target": [1, 11, 19, 37, 41, 44, 48, 50], "also": [1, 2, 3, 4, 5, 7, 8, 10, 11, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 50, 51], "read": [1, 2, 3, 4, 5, 11, 15, 17, 19, 21, 26, 27, 30, 31, 33, 37, 41, 47, 48, 51, 53, 55], "understand": [1, 7, 49], "how": [1, 7, 8, 17, 19, 21, 24, 25, 26, 27, 29, 30, 31, 32, 33, 35, 41, 56], "handl": [1, 3, 5, 7, 8, 19, 30, 33, 36, 37, 38, 39, 43, 44, 45, 46, 47, 48, 50, 51, 53, 55, 56, 57], "organ": [1, 8, 61], "guidelin": 1, "especi": [1, 5, 21, 55], "applic": [1, 3, 8, 9, 11, 17, 33], "ros2_control_demo": [1, 3, 21, 23, 33, 61], "pleas": [1, 11, 32, 39, 61], "keep": [1, 33, 41], "mind": [1, 41], "work": [1, 7, 8, 10, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41, 42, 47, 52, 56, 58, 61], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 10, 11, 18, 19, 20, 26, 29, 33, 37, 39, 40, 41, 45, 48, 50, 51, 55, 56], "That": [1, 19, 41], "wai": [1, 11, 15, 19, 33, 41, 43, 50], "main": [1, 3, 7, 8, 11, 15, 18, 33, 41, 55, 61], "repo": [1, 3, 9, 21], "clean": 1, "featur": [1, 8, 18, 21, 23, 34, 55, 61], "branch": [1, 3, 21], "check": [1, 3, 5, 7, 10, 16, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 49, 50, 53, 57, 61], "satisfi": 1, "befor": [1, 5, 10, 11, 19, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 39, 40, 41, 48, 49], "thei": [1, 3, 5, 7, 8, 10, 17, 18, 19, 20, 26, 40, 41, 48, 50, 55], "can": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 43, 44, 46, 49, 50, 51, 53, 55, 61], "must": [1, 2, 4, 10, 11, 17, 21, 33, 37, 46, 48, 50], "approv": 1, "two": [1, 3, 7, 10, 11, 19, 21, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 43, 49, 50, 51, 55, 56, 57], "explicitli": 1, "onli": [1, 3, 5, 7, 8, 10, 11, 16, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 41, 42, 43, 47, 48, 49, 50, 51, 52, 55, 58], "except": [1, 24, 33], "other": [1, 2, 3, 5, 8, 10, 19, 21, 27, 32, 33, 36, 38, 41, 47, 49, 55, 57], "where": [1, 2, 7, 9, 10, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 38, 39, 41, 47, 48, 49, 50, 51, 55, 57], "back": 1, "traceabl": 1, "discuss": [1, 8, 9, 26, 35, 49, 61], "suffici": [1, 2, 4, 10, 43], "note": [1, 3, 6, 11, 18, 23, 50, 51, 61], "still": [1, 5, 23, 26, 27, 28, 29, 30, 31, 32, 34, 40, 49], "encourag": 1, "help": [1, 11, 15, 18, 19, 20, 39, 41], "u": [1, 2, 4, 11, 21, 48], "increas": [1, 28, 51], "pace": 1, "veri": [1, 2, 4, 5, 7, 17], "like": [1, 2, 3, 4, 5, 7, 8, 9, 19, 25, 26, 33], "find": [1, 2, 3, 4, 15, 28], "issu": [1, 7, 8, 9, 61], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 7, 11, 20, 29, 30, 31, 33, 39, 43, 46, 47, 48, 49, 50, 53, 55, 56, 61], "comment": [1, 33], "fixup": 1, "linter": 1, "us": [1, 3, 5, 7, 8, 9, 13, 14, 15, 17, 18, 20, 22, 33, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 55, 56, 57, 58, 61], "pre": 1, "correct": [1, 5, 39, 49], "header": [1, 13, 19, 30, 31, 41, 49], "address": [1, 33], "similar": [1, 3, 8, 17, 23, 25, 26, 33], "mean": [1, 5, 10, 17, 18, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 49, 50, 56], "result": [1, 3, 10, 11, 23, 33, 47, 49], "exactli": 1, "cowboi": 1, "style": [1, 19, 41], "over": [1, 7, 10, 28, 33], "weekend": 1, "It": [1, 2, 3, 5, 7, 10, 11, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 43, 47, 48, 49, 51], "doesn": [1, 10, 51], "matter": 1, "trivial": [1, 18], "chanc": 1, "proper": [1, 10, 11, 50], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 48, 51], "its": [1, 2, 3, 4, 5, 7, 8, 10, 11, 17, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 49, 51, 53, 55, 56, 57], "ping": 1, "them": [1, 7, 10, 11, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 47, 49, 60], "necessari": [1, 10, 13], "repeatedli": 1, "sphinx": 1, "doc": [1, 10, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 61], "theme": 1, "gener": [1, 7, 8, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 40, 41, 50, 55, 61], "locat": [1, 2, 9, 33, 37, 39, 43, 45, 46, 47, 48, 53], "control": [1, 8, 9, 12, 14, 15, 16, 17, 18, 19, 20, 21, 36, 38, 43, 46, 47, 48, 49, 53, 56, 57, 60, 61], "org": [1, 7, 15, 36, 38, 57], "while": [1, 3, 7, 8, 33, 37, 49], "packag": [1, 2, 4, 5, 11, 13, 19, 33, 36, 37, 38, 39, 41, 42, 43, 46, 50, 51, 52, 53, 55, 57, 58, 61], "written": [1, 19, 27, 32, 33, 41], "respect": [1, 2, 3, 4, 7, 8, 24, 48, 49, 50], "type": [1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 24, 27, 28, 30, 31, 32, 33, 39, 40, 41, 42, 43, 46, 48, 51, 52, 53, 55, 58], "stabl": 1, "against": 1, "accept": [1, 19, 29, 41, 42, 48, 49, 50, 52, 58], "api": [1, 2, 4, 7, 19, 23, 25, 27, 28, 29, 30, 31, 32, 34], "abi": 1, "e": [1, 2, 3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 19, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 37, 39, 41, 42, 43, 47, 48, 49, 51, 52, 55, 56, 58, 61], "name": [1, 2, 3, 4, 5, 8, 11, 14, 15, 17, 18, 19, 20, 21, 23, 24, 26, 27, 28, 30, 31, 32, 33, 35, 37, 39, 41, 43, 44, 46, 47, 48, 51, 53, 55, 56], "convent": [1, 33], "master": [1, 3, 21, 33], "semi": 1, "binari": 1, "good": [1, 2, 4, 7, 39, 56], "same": [1, 9, 10, 11, 15, 29, 33, 40, 43, 48, 49, 50, 51], "build": [1, 9, 19, 33, 37, 41], "dai": 1, "ros_distro": [1, 3, 21, 23], "foxi": [1, 6, 8, 19], "galact": [1, 6, 19], "releas": [1, 3, 8, 21, 33], "version": [1, 3, 7, 9, 15, 21, 50], "non": [1, 8, 26, 33, 43], "brake": 1, "distribut": [1, 3, 21, 61], "three": [1, 3, 5, 13, 16, 17, 21, 33, 41, 49, 57], "stage": [1, 10, 26], "current": [1, 7, 15, 16, 17, 19, 20, 49, 50, 55], "futur": [1, 8, 10, 49, 50], "compat": [1, 3, 5, 8, 19, 21], "direct": [1, 5, 7, 19, 33, 41, 48], "local": [1, 2, 4, 9, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 47], "possibl": [1, 3, 7, 11, 17, 18, 21, 23, 25, 27, 28, 29, 30, 31, 32, 34, 37, 41, 49], "core": [1, 12, 33], "immedi": [1, 11, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 51], "depend": [1, 3, 9, 13, 17, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 49, 51, 55], "fail": [1, 29, 33], "expect": [1, 7, 8, 9, 26, 33, 36, 38, 39, 50, 55, 56, 57], "after": [1, 10, 11, 18, 19, 21, 23, 33, 39, 41, 48, 49, 50, 55, 56], "next": [1, 23, 33, 49], "sync": 1, "abl": 1, "potenti": [1, 8, 9, 41, 48], "mid": 1, "power": [1, 2, 4, 8, 19], "plausibl": 1, "analyt": 1, "integr": [2, 3, 4, 7, 8, 18, 21, 26, 28, 33, 48, 49, 50, 51, 56, 61], "architectur": [2, 4, 7, 8, 9], "gazebo": [2, 4, 7, 18, 21, 23, 35, 59], "classic": [2, 18, 21, 59], "which": [2, 3, 4, 5, 7, 8, 9, 11, 15, 18, 19, 20, 21, 23, 25, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 53, 55, 56], "instanti": [2, 4, 11], "manag": [2, 4, 5, 7, 8, 12, 13, 14, 16, 17, 19, 20, 21, 33, 41, 50, 61], "connect": [2, 3, 4, 18, 21, 30, 33], "model": [2, 4, 23, 25, 33], "cd": [2, 3, 4, 9, 21, 33], "docker": [2, 4, 9, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "allow": [2, 3, 4, 5, 11, 21, 33, 45, 48, 49, 50, 54], "without": [2, 3, 4, 5, 8, 11, 18, 19, 21, 26, 41, 48, 49], "gui": [2, 4, 21, 23, 26, 27, 29, 30, 31, 32, 34, 35, 54], "configur": [2, 3, 4, 5, 7, 8, 10, 11, 13, 14, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47, 48, 49, 50, 55], "properli": [2, 4, 10, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "command": [2, 3, 4, 5, 7, 8, 9, 11, 12, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 44, 45, 48, 49, 52, 54, 57, 58, 61], "rm": [2, 3, 4, 21, 23], "net": [2, 4, 8, 21, 23], "host": [2, 4, 21, 23, 60], "ros2": [2, 3, 4, 8, 11, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "launch": [2, 3, 4, 11, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "cart_example_posit": [2, 4], "py": [2, 4, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "fals": [2, 4, 15, 18, 21, 23, 25, 37, 39, 45, 47, 48, 50, 51, 55, 56], "machin": [2, 3, 4, 7, 21], "client": [2, 4, 50], "gzclient": 2, "rocker": [2, 4], "go": [2, 4, 8, 11, 19, 33, 41], "tool": [2, 4, 5, 7, 8, 9, 33, 37], "imag": [2, 4, 11], "inject": [2, 4, 8, 9], "nvidia": [2, 4], "And": 2, "user": [2, 4, 7, 11, 21, 33, 49], "id": [2, 4, 20, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 37, 39], "specif": [2, 4, 7, 10, 11, 13, 14, 15, 17, 33, 35, 44, 47, 49, 50], "file": [2, 3, 4, 5, 7, 8, 11, 15, 18, 19, 21, 37, 39, 41, 42, 43, 50, 52, 58], "cleaner": [2, 4], "mount": [2, 4], "permiss": [2, 4, 11], "instal": [2, 4, 9, 11, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "instruct": [2, 4, 9, 28, 33, 35], "x11": [2, 4], "latest": [2, 3, 4, 9], "move": [2, 4, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 45, 56], "cart": [2, 4], "rail": [2, 4], "exec": [2, 4, 23], "bash": [2, 3, 4, 9, 19, 21, 23, 33, 41], "home": [2, 4], "ros2_w": [2, 3, 4, 21], "example_posit": [2, 4], "need": [2, 3, 4, 5, 7, 8, 10, 17, 19, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 40, 41, 49, 51], "addit": [2, 4, 5, 10, 21, 24, 28, 33], "element": [2, 4, 33, 37, 48], "includ": [2, 4, 5, 7, 9, 11, 13, 19, 20, 25, 33, 37, 41, 50, 56, 60], "access": [2, 3, 4, 8, 11, 18, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47], "interfac": [2, 4, 7, 8, 10, 11, 12, 13, 16, 19, 21, 23, 25, 26, 27, 28, 30, 31, 32, 35, 36, 38, 40, 41, 43, 46, 48, 49, 53, 57, 59, 60, 61], "state": [2, 3, 4, 5, 7, 8, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 43, 47, 48], "gazebosystem": [2, 14], "system": [2, 3, 4, 5, 7, 8, 9, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 48, 50, 59, 60, 61], "hardwar": [2, 4, 8, 9, 10, 12, 13, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 40, 41, 48, 51, 56, 61], "slider_to_cart": [2, 4, 42, 52, 58], "command_interfac": [2, 3, 4, 14, 17, 24, 26, 33, 37, 48, 50, 51], "effort": [2, 4, 5, 14, 21, 33, 40, 42, 45, 47, 48, 50, 51], "param": [2, 3, 4, 11, 14, 15, 17, 18, 24, 28, 33], "min": [2, 3, 4, 17, 33], "1000": [2, 4, 14, 33], "state_interfac": [2, 3, 4, 14, 17, 18, 24, 33, 37, 48, 50], "posit": [2, 3, 4, 5, 8, 11, 14, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 42, 47, 48, 49, 50, 51, 52, 55, 58], "initial_valu": [2, 4, 14, 17, 18, 24, 33], "veloc": [2, 3, 4, 5, 8, 10, 14, 21, 25, 27, 28, 29, 33, 37, 38, 39, 40, 45, 46, 47, 48, 49, 50, 51, 52, 55, 58], "defin": [2, 4, 5, 7, 11, 14, 17, 19, 21, 33, 37, 41, 43, 46, 47, 48, 49, 50, 51, 53, 55], "paramet": [2, 4, 5, 8, 9, 14, 15, 19, 21, 23, 24, 28, 33, 41, 50], "mimick": [2, 4], "detail": [2, 3, 4, 5, 11, 16, 17, 18, 19, 26, 33, 35, 36, 38, 39, 41, 49, 50, 57], "manual": [2, 3, 4, 7, 11, 19, 21, 23, 29, 30, 31, 32, 34, 35, 41, 61], "multipli": [2, 4, 14], "definit": [2, 3, 4, 11, 14, 19, 33, 37, 39, 40, 41, 43, 45, 46, 47, 48, 53], "left_finger_joint": [2, 4, 14], "prismat": [2, 4, 14], "right_finger_joint": [2, 4, 14], "axi": [2, 4, 7, 14, 33, 36, 38, 39, 43, 57], "xyz": [2, 4, 14, 33], "rpy": [2, 4, 14, 33], "1415926535": [2, 4, 14], "parent": [2, 4, 14, 19, 33, 39, 41, 56], "link": [2, 3, 4, 8, 10, 13, 14, 33, 37, 40], "base": [2, 3, 4, 8, 13, 14, 19, 20, 21, 25, 27, 28, 32, 33, 37, 39, 41, 44, 55, 56, 59, 60], "child": [2, 4, 14, 17, 33, 39, 56], "finger_left": [2, 4, 14], "lower": [2, 4, 14, 33, 51], "upper": [2, 4, 14, 33, 51], "In": [2, 3, 4, 5, 7, 8, 10, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 40, 41, 47, 49, 55], "actual": [2, 4, 10, 39, 56], "pars": [2, 4, 5, 12, 17, 18], "load": [2, 3, 4, 11, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 41], "appropri": [2, 4, 7, 49], "By": [2, 4, 11, 25, 33, 47, 49], "though": [2, 4, 11, 25, 26], "extens": [2, 4], "via": [2, 3, 4, 21, 23, 30, 31, 33, 50, 60], "creat": [2, 3, 4, 5, 8, 11, 18, 19, 21, 25, 33, 41], "between": [2, 3, 4, 7, 13, 17, 21, 33, 36, 38, 39, 47, 48, 49, 50, 51, 56, 57], "filenam": [2, 4, 33], "libgazebo_ros2_control": 2, "so": [2, 3, 4, 10, 11, 19, 33, 37, 41, 50], "robot_param": [2, 4], "robot_descript": [2, 4, 11, 23, 33], "robot_param_nod": [2, 4], "robot_state_publish": [2, 4, 11, 25, 47], "config": [2, 4, 21], "cart_control": [2, 4], "yaml": [2, 3, 4, 7, 9, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 50], "controller_manager_nam": 2, "simulation_controller_manag": 2, "option": [2, 4, 5, 11, 16, 17, 18, 19, 20, 23, 24, 29, 37, 39, 40, 41, 43, 47, 50, 51, 55], "server": [2, 45, 50], "node": [2, 3, 4, 11, 15, 16, 18, 20, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 56], "hold_joint": [2, 4], "true": [2, 4, 15, 24, 25, 28, 35, 37, 39, 48, 49, 50, 51, 55, 56], "hold": [2, 4, 49], "wa": [2, 4, 7, 9, 19, 23, 24, 28, 29, 33, 41, 49], "claim": [2, 4, 10, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37], "hasn": [2, 4], "been": [2, 4, 26], "yet": [2, 4, 6, 10, 11, 21, 26, 39, 49, 50], "controller_manag": [2, 3, 4, 7, 11, 20, 29, 40, 41, 42, 50, 52, 58], "attempt": [2, 4, 11, 50], "get": [2, 4, 8, 9, 10, 11, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 49, 51, 61], "out": [2, 4, 5, 11, 33, 39], "most": [2, 4, 7, 19, 21, 25, 33, 41], "case": [2, 4, 5, 7, 8, 10, 21, 26, 33, 41, 47, 49, 50, 61], "least": [2, 4, 17, 19, 41, 50], "start": [2, 4, 5, 8, 10, 11, 13, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 41, 48, 49, 56, 61], "hardware_interfac": [2, 3, 4, 5, 15, 16, 18, 19, 21, 27, 30, 31, 32, 33, 37, 39, 40, 41], "jointstateinterfac": [2, 4], "effortjointinterfac": [2, 4], "velocityjointinterfac": [2, 4], "pluginlib": [2, 3, 4, 5, 11, 19, 33, 41, 51], "implement": [2, 3, 4, 5, 7, 8, 11, 15, 17, 18, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 41, 44, 49, 50, 51, 55, 56, 57, 61], "complex": [2, 3, 4, 7, 8, 9, 10], "mechan": [2, 4, 10, 50], "nonlinear": [2, 4], "spring": [2, 4], "linkag": [2, 4, 23, 26, 34], "etc": [2, 4, 11, 29, 33, 37, 61], "These": [2, 4, 21, 33, 39, 45, 56], "inherit": [2, 4, 11, 33], "gazebosysteminterfac": 2, "systeminterfac": [2, 4, 5, 15, 18, 30, 33], "level": [2, 4, 7, 8, 11, 26, 27, 32, 42, 49, 52, 58], "properti": [2, 4, 33], "sub": [2, 4, 25], "class": [2, 3, 4, 8, 11, 13, 16, 19, 20, 33, 41, 44, 49], "specifi": [2, 4, 11, 19, 21, 33, 37, 40, 41, 48, 49, 50, 51], "For": [2, 3, 4, 7, 8, 10, 11, 16, 18, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 48, 50, 51, 55, 57], "exampl": [2, 3, 4, 5, 7, 8, 10, 11, 18, 20, 25, 28, 37, 39, 42, 43, 50, 51, 52, 56, 58, 61], "xml": [2, 4, 5, 11, 13, 15, 19, 33, 41], "insid": [2, 4, 18, 21, 23], "basic": [2, 3, 4, 5, 7, 8, 19, 21, 28, 41], "joint_state_broadcast": [2, 4, 17, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "publish": [2, 4, 7, 10, 17, 21, 24, 25, 33, 37, 40, 43, 46, 47, 49, 53, 56, 61], "resourc": [2, 4, 5, 19, 29], "regist": [2, 4, 5], "stateinterfac": [2, 4, 33], "topic": [2, 4, 7, 8, 10, 11, 17, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 40, 50, 51, 56, 59], "sensor_msg": [2, 4, 46, 53], "msg": [2, 4, 11, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 42, 43, 44, 46, 49, 50, 51, 52, 53, 55, 58], "jointstat": [2, 4], "joint_trajectory_control": [2, 4, 7, 20, 23, 40, 48, 54], "call": [2, 3, 4, 5, 10, 15, 19, 24, 28, 33, 41], "follow_joint_trajectori": [2, 4, 50], "control_msg": [2, 4, 37, 48, 50, 51, 55, 61], "followjointtrajectori": [2, 4, 48, 50], "ros__paramet": [2, 4, 37, 39, 42, 43, 45, 46, 47, 48, 50, 52, 53, 58], "update_r": [2, 4, 11, 40, 42, 52, 58], "100": [2, 3, 15, 17, 42, 52, 58], "hz": [2, 4, 39, 42, 45, 52, 58], "jointtrajectorycontrol": [2, 4, 5, 20, 23, 37, 50], "jointstatebroadcast": [2, 4, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "contain": [2, 9, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 42, 43, 45, 46, 47, 48, 49, 51, 52, 53, 55, 58], "content": [2, 19, 33, 41], "There": [2, 3, 4, 6, 11, 16, 19, 21, 25, 27, 30, 31, 32, 41, 49, 50], "meter": [2, 4, 33], "cart_example_veloc": [2, 4], "cart_example_effort": [2, 4], "diff_driv": 2, "tricycle_dr": 2, "world": [2, 4, 11, 18, 25, 33, 37], "example_veloc": [2, 4], "example_effort": [2, 4], "example_diff_dr": [2, 4], "example_tricycle_dr": [2, 4], "parallel": [2, 3, 4, 17], "gripper": [2, 3, 4, 5, 8, 17, 40], "gripper_mimic_joint_exampl": [2, 4], "send": [2, 4, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 49, 50, 51], "example_gripp": [2, 4], "roll": [3, 9, 21, 33, 39, 56], "both": [3, 7, 8, 11, 26, 33, 34, 39, 47, 48, 49, 50], "humbl": 3, "iron": [3, 6], "about": [3, 7, 18, 19, 29, 39, 46, 47, 50, 61], "page": [3, 8, 59, 60], "want": [3, 9, 10, 11, 21], "download": [3, 21], "repositori": [3, 7, 12, 17, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 40], "mkdir": [3, 9, 21], "p": [3, 9, 11, 21, 48, 51], "src": [3, 9, 19, 21, 23, 33, 37, 39, 41, 43, 45, 46, 47, 48, 53], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 7, 9, 21, 33], "ros2_control_ci": 3, "ros_control": [3, 7, 8, 61], "vc": [3, 9, 21], "import": [3, 9, 19, 21, 33, 41, 48], "rosdep": [3, 21], "updat": [3, 5, 10, 11, 12, 16, 21, 25, 33, 37, 40, 41, 50, 55], "rosdistro": [3, 21], "sudo": [3, 9, 11, 21], "apt": [3, 9, 11, 21], "path": [3, 8, 21, 33, 50], "ignor": [3, 11, 21, 39, 48, 55, 56], "r": [3, 21, 34], "y": [3, 21, 25, 28, 30, 31, 37, 43, 46], "everyth": [3, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41], "opt": [3, 9, 21, 23], "setup": [3, 9, 18, 19, 21, 23, 28, 33, 41, 49, 51], "sh": [3, 21, 23], "colcon": [3, 9, 19, 21, 33, 41], "symlink": [3, 9, 21, 33], "forget": [3, 5, 21, 50], "folder": [3, 8, 19, 21, 23, 24, 25, 28, 36, 37, 38, 39, 41, 43, 45, 46, 47, 48, 53, 55, 57], "found": [3, 11, 12, 19, 23, 24, 25, 28, 37, 39, 41, 43, 44, 46, 50, 53, 61], "figur": [3, 49], "uml": 3, "diagram": [3, 20], "describ": [3, 5, 10, 17, 21, 23, 29, 33, 39, 49], "intern": [3, 7, 10, 15, 17, 19, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 49, 50], "cm": [3, 11], "abstract": [3, 8, 16, 33], "side": [3, 7, 8, 39], "entri": [3, 41], "point": [3, 33, 37, 41, 48, 49, 50, 51, 61], "servic": [3, 7, 11, 16, 33, 40], "executor": [3, 11], "custom": [3, 11, 17, 18, 21, 24, 27, 28, 43, 47, 48, 59], "howev": [3, 7, 10, 11, 21, 26, 33], "usual": [3, 5, 18, 19, 33, 37, 41], "recommend": [3, 8, 9, 19, 51], "default": [3, 5, 10, 11, 18, 25, 29, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57], "ros2_control_nod": [3, 11, 29, 33], "assum": [3, 10, 37], "On": [3, 8, 9, 33], "hand": [3, 33, 60], "deactiv": [3, 5, 20, 23, 48], "unload": [3, 11, 20], "match": [3, 21, 49], "enabl": [3, 5, 7, 8, 13, 19, 20, 21, 28, 37, 39, 43, 51, 55], "report": [3, 7, 47, 61], "error": [3, 7, 11, 13, 15, 19, 26, 29, 33, 37, 41, 47, 48, 50, 51], "conflict": [3, 5, 7], "execut": [3, 11, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 45, 48, 49, 50, 57], "loop": [3, 8, 11, 18, 23, 29, 30, 31, 32, 33, 34, 35, 41, 47, 48, 50, 55], "data": [3, 5, 7, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 40, 47, 49, 56], "output": [3, 7, 8, 11, 17, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 56], "write": [3, 5, 8, 10, 11, 12, 15, 24, 26, 27, 28, 32, 37, 40, 51], "physic": [3, 5, 16, 17, 18], "driver": [3, 8, 21, 33, 60], "librari": [3, 5, 19, 20, 25, 36, 38, 40, 41, 51, 55, 57], "lifecycl": [3, 5, 8, 11, 13, 16, 19, 33, 40], "reus": [3, 8, 10], "ani": [3, 5, 8, 10, 11, 13, 14, 16, 17, 21, 26, 33, 41, 48, 50], "flexibl": 3, "commun": [3, 5, 7, 8, 15, 19, 21, 23, 25, 27, 28, 29, 30, 31, 33, 34], "motor": [3, 10, 60], "encod": [3, 33, 39, 56], "theori": [3, 61], "compar": [3, 7, 8], "refer": [3, 10, 25, 26, 33, 60], "valu": [3, 5, 7, 15, 17, 18, 19, 21, 23, 24, 26, 28, 30, 31, 33, 35, 37, 39, 41, 43, 46, 47, 48, 50, 53, 55, 56], "measur": [3, 18, 27, 37, 43, 47, 48, 60], "calcul": [3, 25, 33, 37, 39, 49, 55, 56], "input": [3, 7, 8, 9, 10, 17, 24, 26, 33, 37, 39, 42, 44, 48, 49, 52, 55, 56, 58], "object": [3, 33], "deriv": [3, 48, 49, 51], "controllerinterfac": [3, 5, 10, 20, 33, 41], "controller_interfac": [3, 20, 33, 37, 41, 43, 46, 53], "export": [3, 10, 11, 19, 21, 33, 37, 41], "plugin": [3, 9, 11, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 51, 54], "forwardcommandcontrol": [3, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35], "lifecyclenod": [3, 41], "design": [3, 5, 7, 8, 10, 25, 33, 61], "document": [3, 7, 8, 17, 18, 19, 21, 28, 40, 49, 50], "list": [3, 8, 10, 11, 13, 19, 20, 26, 33, 41, 43, 59, 60, 61], "srv": [3, 50, 51], "controller_manager_msg": 3, "directli": [3, 14, 18, 23, 26, 51, 61], "exist": [3, 5, 7, 8, 9, 10, 11, 13, 17, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 41, 50], "friendli": 3, "cli": [3, 11, 12, 20, 23, 24, 25, 28, 29, 30, 31, 32, 34, 35], "auto": [3, 11], "complet": [3, 16, 26, 33, 49], "rang": [3, 17, 40], "common": [3, 7, 21, 47, 61], "avail": [3, 5, 8, 10, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47, 50], "capabl": [3, 7], "realiz": [3, 8, 49, 50], "repres": [3, 16, 33, 39, 40, 49], "dynam": [3, 19, 25, 33, 37, 41, 51, 59], "multi": [3, 5, 7, 8, 9, 21, 29], "dof": [3, 17, 21, 33, 45, 51], "differ": [3, 7, 8, 11, 12, 16, 17, 19, 21, 23, 24, 28, 29, 33, 39, 42, 43, 47, 49, 51, 52, 55, 58], "actuat": [3, 5, 7, 13, 16, 17, 18, 19, 21, 26, 56], "transmiss": [3, 21], "humanoid": 3, "logic": 3, "channel": [3, 60], "kuka": [3, 23, 29, 30, 31, 60], "rsi": [3, 23, 30, 31, 60], "sensor": [3, 5, 7, 13, 16, 18, 19, 21, 27, 32, 33, 37, 40, 60], "sens": [3, 5, 40, 43], "relat": [3, 7, 8], "joint": [3, 5, 8, 11, 14, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 47, 48, 49, 51, 52, 55, 56, 57, 58, 61], "forc": [3, 8, 17, 20, 30, 31, 37, 40, 60], "torqu": [3, 17, 30, 31, 37, 40], "simpl": [3, 7, 8, 10, 19, 21, 23, 25, 26, 28, 33, 34, 41, 45], "valv": [3, 17], "mandatori": [3, 11], "dc": 3, "arduino": [3, 27, 32], "board": 3, "modular": [3, 8, 9, 21, 33], "independ": [3, 8, 11, 31], "explan": [3, 11, 19], "given": [3, 11, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 42, 49, 50, 52, 58], "through": [3, 7, 8, 10, 11, 19, 20, 21, 26, 33, 41, 50, 51, 61], "tag": [3, 11, 14, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 41, 61], "chosen": [3, 17], "structur": [3, 7, 10, 11, 19, 33, 39, 41, 48, 49], "track": [3, 36, 57, 61], "togeth": [3, 10, 17, 28, 30, 55], "multipl": [3, 5, 8, 10, 17, 19, 21, 47], "xacro": [3, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "macro": [3, 5, 15, 19, 21, 33, 41], "hereund": 3, "rrbot": [3, 11, 17, 20, 21, 24, 25, 27, 29, 30, 31, 32, 34], "extern": [3, 5, 7, 10, 18, 21, 37, 51], "end": [3, 5, 16, 19, 33, 37, 41, 48], "effector": [3, 37], "site": 3, "rrbotsystempositiononli": [3, 31], "ros2_control_demo_hardwar": [3, 17, 20], "rrbotsystempositiononlyhardwar": [3, 5, 17, 20, 23, 26, 31], "example_param_write_for_sec": 3, "example_param_read_for_sec": [3, 17], "joint1": [3, 17, 20, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 50], "joint2": [3, 17, 20, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 50], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "tcp_fts_sensor": [3, 17, 30, 31], "frame_id": [3, 17, 30, 31, 43, 46, 53, 55], "rrbot_tcp": 3, "min_forc": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "gripper_joint": 3, "extend": [3, 5, 7, 10, 19, 41], "instead": [3, 14, 18, 24, 28, 33, 35, 37, 48, 51], "pure": 3, "stack": [3, 8, 61], "could": [3, 8, 10, 21, 29, 41, 47, 50], "altern": [3, 9, 11, 23, 50], "script": [3, 7, 19, 41], "skeleton": 3, "sim": [4, 20, 59], "dockerfil": [4, 21], "Then": [4, 10, 21, 33, 35, 49], "ign": 4, "meet": [4, 61], "prerequisit": 4, "along": 4, "gazebosimsystem": 4, "libgz_ros2_control": 4, "gazebosimros2controlplugin": 4, "gazebosimsysteminterfac": 4, "controller_manager_prefix_node_nam": 4, "diff_drive_exampl": 4, "tricycle_drive_exampl": 4, "robothw": 5, "rigid": 5, "imposs": 5, "combinedrobothardwar": 5, "drawback": [5, 61], "solut": [5, 8, 9], "optim": [5, 11], "combin": [5, 10, 17, 18, 21, 29, 47, 49, 50, 51], "composit": [5, 8], "cell": [5, 43], "surround": 5, "box": [5, 21, 23, 25, 28, 29, 30, 31, 34, 35], "hard": [5, 11], "approach": [5, 10, 15], "doe": [5, 11, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 41, 49, 50], "enforc": [5, 29, 33], "string": [5, 11, 18, 21, 37, 39, 41, 43, 44, 45, 46, 47, 48, 51, 53, 55, 56], "ensur": [5, 8, 11, 14, 33, 49], "constant": [5, 21], "had": 5, "itself": [5, 10], "took": 5, "care": [5, 7, 11, 19, 29, 41, 50], "resourcemanag": [5, 10], "take": [5, 7, 10, 19, 26, 29, 39, 41, 47, 49], "anymor": 5, "controllermanag": [5, 11], "granular": 5, "sensorinterfac": [5, 27, 31], "actuatorinterfac": [5, 27, 32], "abov": [5, 23, 24, 26, 27, 28, 29, 30, 31, 32, 34, 35, 40, 49], "choos": [5, 21, 55], "suitabl": [5, 8], "strategi": [5, 21, 49], "decid": [5, 15], "mayb": [5, 10], "constructor": [5, 19, 33, 41], "initi": [5, 17, 18, 19, 24, 33, 41, 49], "variabl": [5, 15, 19, 33, 41, 48], "urdf": [5, 8, 11, 14, 15, 17, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37], "snippet": 5, "hardwareinfo": [5, 15, 33], "here": [5, 12, 19, 33, 41, 42, 50, 52, 58], "cross": [5, 47], "export_": 5, "_interfac": [5, 19], "joint_a2": 5, "extract": [5, 39, 56], "sensibl": 5, "stop": [5, 8, 10, 11, 13, 20, 23, 24, 28, 29, 33, 39, 48, 56], "safe": [5, 33, 39, 41, 50, 56], "interrupt": [5, 11], "stream": [5, 8], "exchang": [5, 7, 23, 25, 27, 28, 29, 30, 31, 32, 34, 61], "equival": [5, 33], "pluginlib_export_class": [5, 19, 21, 33, 41], "cpp": [5, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "excel": 5, "real": [5, 7, 8, 11, 18, 24, 28, 41, 47, 48, 61], "critic": [5, 7], "mark": [5, 26], "member": [5, 19, 33, 41, 49], "init": 5, "declar": [5, 15, 19, 33, 41], "state_interface_configur": [5, 33, 41], "command_interface_configur": [5, 33, 41], "on_configur": [5, 19, 33, 41], "on_activ": [5, 13, 15, 19, 33, 41], "on_deactiv": [5, 13, 19, 33, 41], "final": [5, 8, 16, 33], "joint_trajectory_plugin": 5, "jazzi": 6, "task": [7, 8, 39], "envis": 7, "simul": [7, 18, 20, 21, 23, 24, 26, 28, 30, 31, 33], "ignit": 7, "showcas": [7, 8, 9], "grace": 7, "degrad": 7, "roadmap": [7, 21, 61], "place": [7, 9, 11, 39, 41, 56], "draft": 7, "gpio": [7, 14, 18, 21, 33], "mode": [7, 10, 19, 26, 29, 37, 48, 49, 51, 55], "switch": [7, 20, 21, 23, 29], "movement": [7, 48], "safeti": [7, 33], "skill": 7, "prefer": 7, "familiar": [7, 61], "mentor": 7, "\u0161togl": [7, 8], "size": [7, 39, 53, 56], "350": 7, "hour": 7, "difficulti": 7, "medium": 7, "focus": [7, 8, 10], "although": [7, 10, 13, 17, 50], "easi": [7, 11], "therefor": [7, 10, 11, 21, 41, 47, 48, 50], "often": [7, 24, 28, 41, 47], "orchestr": 7, "purpos": [7, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 51], "conductor": 7, "scenario": [7, 49], "moment": [7, 50], "right": [7, 21, 39], "replac": [7, 13, 40, 50], "high": [7, 11, 49], "moveit2": [7, 8, 40, 60], "simplecontrollermanag": 7, "goal": [7, 8, 17, 23, 29, 30, 31, 32, 34, 35, 45, 48, 50, 61], "form": [7, 21], "behavior": [7, 18, 33, 49], "benchmark": 7, "statu": [7, 10, 13, 20, 23, 48], "format": [7, 33, 37, 47, 50], "preset": 7, "modul": [7, 26], "reli": 7, "doubl": [7, 18, 23, 33, 36, 37, 38, 39, 45, 48, 51, 53, 55, 56, 57], "desir": [7, 15, 48, 50], "improv": [7, 11], "readabl": [7, 33], "earlier": 7, "concept": [7, 8, 9, 10, 21, 23], "introduc": [7, 8, 10, 23, 33], "essenti": [7, 23], "group": [7, 10, 11, 17, 50, 61], "instanc": [7, 11, 26, 47], "imu": [7, 17, 40], "typic": [7, 17, 28, 47, 48], "acceleromet": 7, "gyroscop": 7, "compass": 7, "part": [7, 8, 17, 33, 41, 49, 50, 51], "Such": [7, 26], "struct": 7, "low": [7, 8, 11], "profil": 7, "relev": [7, 37, 48, 51, 55, 61], "addition": [7, 33, 36, 38, 57, 61], "few": [7, 8, 40], "175": 7, "rewrit": [7, 61], "rich": 7, "motiv": 7, "adopt": 7, "port": [7, 13, 14, 17], "quit": 7, "miss": [7, 8, 9, 47, 49, 50], "diff_drive_control": [7, 10, 20, 28], "consist": [7, 14, 50, 61], "onc": [7, 8, 9, 23, 25, 28, 29, 30, 31, 33, 34, 40], "identifi": [7, 33], "much": [7, 23, 25, 27, 28, 29, 30, 31, 32, 34, 41, 50], "303": 7, "304": 7, "stretch": 7, "realtime_tool": [7, 61], "81": [7, 37], "unit": 7, "gmock": 7, "cc": [8, 49, 50], "BY": [8, 49, 50], "licens": [8, 49, 50], "author": [8, 10], "either": [8, 23, 29, 30, 31, 32, 34, 35, 47, 49], "down": [8, 33, 37], "below": [8, 11, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 48, 49, 50], "compani": 8, "my": 8, "company_nam": 8, "alreadi": [8, 9, 19, 20, 21, 23, 26, 33, 35, 40, 41, 50], "know": [8, 9, 17], "act": [8, 9], "kernel": [8, 9, 11], "struggl": [8, 9], "cover": [8, 9], "product": [8, 9, 47], "variou": [8, 9, 23, 34], "littl": [8, 9, 11], "run": [8, 9, 10, 11, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 49, 55], "practic": [8, 9], "overview": [8, 9], "chain": [8, 9, 12, 20, 21, 33, 37, 48, 51, 55], "debug": [8, 9, 18], "top": [8, 9], "involv": [8, 9, 11], "bring": [8, 9, 21], "locu": 8, "stogl": [8, 9], "consult": 8, "tricycl": [8, 40, 56], "event": 8, "pixel": 8, "prefac": 8, "introduct": 8, "plapp": 8, "agnost": [8, 33], "share": [8, 18, 19, 33, 41, 55], "well": [8, 11, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 50], "perform": [8, 11, 33], "heavi": 8, "practition": 8, "guid": [8, 19, 41], "virtual": [8, 10, 25, 38], "talk": 8, "delv": 8, "deeper": 8, "what": [8, 23, 33], "explicit": [8, 11, 33, 48], "emerg": 8, "handler": 8, "mock": [8, 12, 19], "usag": [8, 11, 17, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "openli": 8, "record": 8, "fiveai": 8, "ltd": 8, "best": [8, 11, 41], "focu": [8, 10], "becom": [8, 26], "util": 8, "3rd": 8, "parti": 8, "nav2": [8, 40], "tip": [8, 33, 37], "hot": 8, "shown": [8, 33, 49], "furthermor": [8, 28], "offer": [8, 11, 19, 33], "expos": [8, 21, 26], "problem": [8, 61], "manipul": [8, 21, 23, 26, 33, 34, 48, 60], "plan": [8, 61], "autonom": 8, "navig": [8, 9], "ideal": [8, 18], "made": [8, 13], "mobil": [8, 21, 25, 28, 39, 55, 56, 60], "arm": [8, 23, 26, 34, 37], "extra": [8, 33, 47], "readi": [8, 9, 19, 21, 26, 40, 41], "studi": 8, "ur": 8, "With": [8, 33, 35, 50], "moveit": [8, 18], "ingredi": 8, "scale": [8, 48], "factor": [8, 39], "teach": 8, "pendant": 8, "influenc": 8, "picknik": 8, "inc": 8, "lovro": 8, "ivanov": 8, "zelenak": 8, "rune": 8, "s\u00f8e": 8, "knudsen": 8, "onlin": [8, 19, 41], "trajectori": [8, 23, 33, 40, 48, 51, 61], "admitt": [8, 40], "One": [8, 10, 24], "reason": [8, 10, 11, 33], "upgrad": 8, "ros1": [8, 21], "better": 8, "realtim": [8, 11, 33, 39, 50, 56, 61], "contact": 8, "insert": 8, "singl": [8, 30, 45, 56], "waypoint": [8, 49, 50], "mani": [8, 33, 40, 41], "teleoper": 8, "kinemat": [8, 10, 21, 28, 33, 36, 37, 38, 55, 57], "acceler": [8, 21, 29, 33, 37, 39, 46, 48, 49, 50, 51, 56], "jerk": [8, 39, 56], "obei": [8, 33], "demo": [8, 17], "booth": 8, "zeleank": 8, "unifi": 8, "life": [8, 33], "cycl": [8, 33, 40], "_control": [8, 21], "wild": 8, "materi": 8, "quick": [8, 13], "layer": 8, "aka": 8, "systemcompon": 8, "forward": [8, 18, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 40, 48, 50, 51, 61], "done": [8, 9, 10, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 40, 41], "look": [8, 28], "modifi": 8, "simpli": [8, 11, 23, 49, 50], "edit": 8, "collect": [8, 42, 52, 58], "semant": [8, 17, 37, 43, 46, 53], "monolit": 8, "controlko": 8, "imperi": 9, "octob": 9, "present": [9, 11, 14, 17, 50], "ubuntu": [9, 11], "engin": [9, 19, 41], "compos": 9, "grab": 9, "roscon2023_workshop": 9, "now": [9, 10, 11, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 49], "workspac": [9, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "w": 9, "git": [9, 21, 33], "clone": [9, 21, 33], "roscon2023_control_workshop": 9, "ci": 9, "compil": [9, 19, 33, 41], "termin": [9, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "park": 9, "f": [9, 21, 37], "dev": 9, "tmux": 9, "ctrl": [9, 23], "b": [9, 21, 33], "arrow": 9, "kei": 9, "brought": 9, "propos": [10, 61], "minim": [10, 37, 61], "viabl": [10, 33], "serial": [10, 33], "tri": [10, 48], "clariti": 10, "arbitrari": [10, 33, 50], "order": [10, 33, 51], "nevertheless": [10, 51], "convinc": 10, "would": [10, 47, 51], "unnecessari": 10, "long": 10, "term": [10, 51, 61], "clearer": 10, "let": [10, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34], "controllers_chain": 10, "position_track": 10, "pid": [10, 40, 48, 49, 50, 61], "imagin": 10, "flexibli": 10, "preced": 10, "step": [10, 15, 19, 21, 41, 49, 61], "At": [10, 19, 26, 41], "attach": 10, "disabl": [10, 18, 39, 55], "subscrib": [10, 24, 25, 26, 33], "differenti": [10, 21, 28, 38, 39, 40, 60, 61], "interfaceconfigur": [10, 33], "input_interface_configur": 10, "const": [10, 13, 15, 33], "anoth": [10, 11, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 50], "simplic": [10, 33], "try": [10, 33], "exclus": [10, 33], "rather": [10, 21, 49], "void": 10, "set_chained_mod": 10, "bool": [10, 15, 37, 39, 45, 47, 48, 51, 55, 56], "flag": [10, 15, 19, 41, 48], "on_set_chained_mod": 10, "pid_refer": 10, "controller_nam": [10, 11, 20, 37, 41, 50, 51, 55], "v_x": 10, "v_y": 10, "w_z": 10, "cmd_vel": [10, 28, 39, 56], "cmd_vel_unstamp": 10, "Its": [10, 61], "continu": [10, 48, 49, 50, 51], "chainabl": [10, 21, 26, 39, 50], "ownership": 10, "process": [10, 19, 33, 41, 49], "vector": [10, 26, 33, 41], "invers": [10, 33, 37], "rule": [10, 11, 19, 41], "think": [10, 21], "break": [10, 18], "middl": [10, 38], "unavail": [10, 25, 26], "unclaim": [10, 20, 25, 26, 29], "inact": [10, 11, 20, 23, 29, 33, 40], "feasibl": 10, "interface_configuration_typ": 10, "jitter": 11, "thread": [11, 33], "sched_fifo": 11, "prioriti": 11, "addgroup": 11, "usermod": 11, "whoami": 11, "afterward": 11, "secur": 11, "conf": [11, 33], "soft": 11, "rtprio": 11, "memlock": 11, "102400": 11, "appli": [11, 20, 33, 37, 39, 50], "log": 11, "again": [11, 16, 23, 24, 28, 33], "normal": [11, 33, 37, 48, 51], "linux": 11, "comput": [11, 21, 39, 55, 56], "throughput": 11, "suit": 11, "lt": 11, "beta": 11, "rt": 11, "amd64": 11, "debian": 11, "bullsey": 11, "lowlat": 11, "come": [11, 21, 50], "lot": [11, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "being": [11, 25], "realli": 11, "std_msg": [11, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 44, 52, 58], "reload": [11, 16, 20], "hardware_components_initial_st": 11, "map": [11, 18, 47, 50], "attribut": [11, 33], "full": [11, 19, 21, 41, 43], "unconfigur": [11, 16, 20, 23, 33], "arm1": 11, "arm2": 11, "base3": 11, "empti": [11, 39, 41, 43, 46, 47, 50, 51, 55, 56], "integ": [11, 40], "frequenc": [11, 40], "deal": 11, "namespac": [11, 15, 19, 33, 39, 40, 41, 47], "control_nod": 11, "robot_control": [11, 29, 33], "robot_state_pub_nod": 11, "remap": [11, 25], "relai": 11, "startup": [11, 18], "h": [11, 19, 20, 41], "param_fil": 11, "n": 11, "controller_typ": 11, "timeout": [11, 20, 39, 45, 48, 55, 56], "controller_manager_timeout": 11, "argument": [11, 19, 20, 23, 25, 27, 28, 29, 30, 31, 32, 34], "exit": [11, 20], "leav": 11, "kill": [11, 20, 33], "wait": [11, 20, 32, 48], "until": [11, 33, 49], "mai": [11, 13, 30, 40, 42, 52, 58], "taken": [11, 55], "becaus": [11, 17, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 49], "rclcpp": [11, 15, 19, 33, 41], "than": [11, 37, 43, 45, 48, 50, 51, 55, 56], "global": 11, "forcibli": 11, "lead": [11, 50], "duplic": [11, 48, 51, 55], "occur": [11, 33], "whether": [11, 37], "sibl": 11, "hierarchi": 11, "workaround": 11, "nodeopt": [11, 41], "pass": [11, 15, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "caus": [11, 49, 50, 55], "get_cm_node_opt": 11, "arg": 11, "_target_node_nam": 11, "__node": 11, "dst_node_nam": 11, "info": [11, 13, 15, 19, 33], "std": [11, 14, 33, 39, 48, 56], "make_shar": 11, "some_optional_namespac": 11, "simplest": 11, "switch_control": [11, 23], "broadcast": [11, 17, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 47], "achiev": [11, 15, 33, 42, 48, 52, 58], "return": [11, 13, 15, 16, 19, 23, 33, 41, 45, 47, 49, 50], "NOT": 11, "FOR": 11, "detect": 11, "listen": [11, 48], "doxygen": [12, 19], "cascad": 12, "substanti": 13, "renam": 13, "on_init": [13, 15, 19, 33, 41], "callbackreturn": [13, 15, 16, 19, 33], "baseinterfac": 13, "remov": 13, "base_interfac": 13, "hpp": [13, 15, 19, 21, 33, 37, 41], "hardware_interface_status_valu": 13, "rclcpp_lifecycl": [13, 15, 19, 33, 41], "strictli": [13, 17], "success": [13, 15, 16, 19, 33, 41, 45, 50], "status_": 13, "previous_st": [13, 15, 16, 33], "return_typ": [13, 15, 16, 33, 41], "in_deactiv": 13, "undefin": 13, "refern": 13, "symbol": 13, "node_interfac": [13, 33], "lifecyclenodeinterfac": [13, 19, 33], "rclcpp_lifecyl": 13, "cmakelist": [13, 19, 33, 41], "txt": [13, 19, 33, 41], "1256": 14, "otherwis": [14, 19, 21, 37, 41, 47, 48], "runtime_error": 14, "thrown": 14, "syntax": 14, "mimic": [14, 18, 25], "offici": [14, 21], "within": [14, 17, 23, 37, 50], "finger_right": 14, "offset": [14, 18, 47, 48], "advic": 15, "xmln": 15, "wiki": [15, 18, 36, 38, 49, 50, 57], "system_interfac": 15, "main_loop_update_r": 15, "desired_hw_update_r": 15, "my_system_interfac": 15, "mysystemhardwar": 15, "unsign": [15, 40], "int": [15, 39, 53, 55, 56], "main_loop_update_rate_": 15, "desired_hw_update_rate_": 15, "stoi": 15, "info_": [15, 33], "hardware_paramet": 15, "reset": [15, 33, 55], "counter": 15, "update_loop_counter_": 15, "durat": [15, 33], "period": [15, 33, 48], "interfer": 15, "hardware_go": 15, "comm": 15, "oper": [15, 33, 61], "sinc": [15, 29, 33, 38], "indic": [15, 29, 33, 48], "first_read_pass_": 15, "first_write_pass_": 15, "last_read_time_": 15, "desired_hw_update_period_": 15, "last_write_time_": 15, "previou": [15, 33, 49, 61], "on_error": [16, 19, 33], "failur": 16, "recov": 16, "devic": 17, "associ": 17, "coupl": 17, "ship": 17, "cannot": [17, 26, 33, 43, 50], "keyword": 17, "digit": 17, "signal": [17, 39], "electr": 17, "analog": 17, "vacuum": [17, 24], "flang": 17, "off": 17, "rrbotsystemmutiplegpio": 17, "example_param_hw_start_duration_sec": 17, "example_param_hw_stop_duration_sec": 17, "example_param_hw_slowdown": 17, "flange_digital_io": 17, "digital_output1": 17, "digital_output2": 17, "digital_input1": 17, "digital_input2": 17, "flange_analog_io": [17, 24], "analog_output1": [17, 24], "mock_hardwar": 17, "analog_input1": [17, 24], "analog_input2": [17, 24], "flange_vacuum": [17, 24], "suction": 17, "grasp": 17, "multimod": 17, "multimodalgripp": 17, "parallel_fing": 17, "temperatur": [17, 21], "feedback": [17, 18, 27, 47, 48, 50, 51, 55, 56], "adjust": [17, 20, 23, 33], "calibr": 17, "2d": [17, 30, 31], "ft": [17, 30, 31, 43], "choic": [17, 55], "matric": 17, "rrbotforcetorquesensor2d": 17, "forcetorquesensor2dhardwar": 17, "fx": 17, "tz": 17, "kuka_tcp": 17, "fx_rang": 17, "tz_rang": 17, "temp_feedback": 17, "calibration_matrix_nr": 17, "mirror": [18, 24], "correspond": [18, 19, 33, 41, 55, 61], "offlin": 18, "advantag": 18, "pipe": 18, "even": [18, 25, 26, 50], "boost": 18, "fake": 18, "disable_command": 18, "boolean": [18, 40], "erron": [18, 33], "noth": 18, "suddenli": 18, "Or": [18, 23, 29, 30, 31, 32, 34, 35], "mock_sensor_command": 18, "mock_gpio_command": 18, "position_state_following_offset": 18, "custom_interface_with_following_offset": 18, "certain": [18, 33, 42, 52, 58], "prepar": [19, 29, 41], "ament_cmak": [19, 41], "easiest": [19, 41], "search": [19, 41], "pkg": [19, 41], "package_nam": [19, 41], "robot_hardware_interface_nam": 19, "visibility_control": [19, 41], "window": [19, 39, 41, 56], "copi": [19, 41], "prefix": [19, 37, 39, 41, 43, 46, 53], "guard": [19, 41], "ifndef": [19, 41], "preprocessor": [19, 41], "friend": [19, 41], "interface_typ": [19, 41], "uniqu": [19, 33, 41], "snake_cas": [19, 41], "interfacetyp": 19, "hardwareinterfacenam": 19, "public": [19, 33, 41], "on_cleanup": [19, 33], "on_shutdown": [19, 33], "overrid": [19, 33, 41, 42, 50, 52, 58], "export_state_interfac": [19, 33], "export_command_interfac": [19, 33], "prepare_command_mode_switch": 19, "perform_command_mode_switch": 19, "further": [19, 41], "exact": [19, 41], "simplifi": [19, 33, 41, 61], "valid": [19, 21, 48, 51, 53], "fine": [19, 25, 28, 41], "opposit": [19, 41], "remind": 19, "joint_nam": [19, 37, 41], "shutdown": [19, 33], "gracefulli": 19, "store": [19, 41], "close": [19, 41], "class_list_macro": [19, 33, 41], "my_hardware_interface_packag": 19, "robothardwareinterfacenam": 19, "second": [19, 20, 23, 26, 29, 30, 31, 32, 33, 34, 35, 39, 41, 49, 51, 61], "visibl": [19, 41], "mock_compon": [19, 24, 28], "bottom": [19, 33, 41], "test_load_": [19, 41], "load_generic_system_2dof": 19, "test_generic_system": 19, "find_packag": [19, 41], "directori": [19, 39, 41, 43, 46, 53], "ament": [19, 41], "cmake": 19, "pluginlib_export_plugin_description_fil": [19, 33, 41], "ament_cmake_gmock": [19, 41], "ament_add_gmock": [19, 41], "ament_export_librari": [19, 41], "ament_packag": [19, 41], "test_depend": [19, 41], "rememb": [19, 41], "root": [19, 41], "enjoi": [19, 41], "great": [19, 41], "templat": [19, 21, 33, 41], "shell": [19, 41], "onward": 19, "spin": 20, "spin_tim": 20, "hidden": 20, "discoveri": 20, "daemon": 20, "test_controller_nam": 20, "test_control": 20, "diffdrivecontrol": [20, 28], "verbos": 20, "label": [20, 24, 27, 28, 30, 31, 32, 49], "hardware_component_nam": 20, "hardware_compon": 20, "ctrl1": 20, "ctrl2": 20, "strict": 20, "asap": 20, "switch_timeout": 20, "tmp": 20, "controller_diagram": 20, "gv": 20, "pdf": [20, 33], "demonstr": [21, 23, 25, 26, 28, 29, 34, 35], "prove": 21, "checkout": 21, "roscon2022_workshop": 21, "hardwareinterfac": [21, 33], "diffbot": 21, "degre": [21, 33, 50, 55], "freedom": [21, 33, 55], "components_architecture_and_urdf_exampl": 21, "revolut": [21, 23, 26, 33, 34], "drive": [21, 25, 28, 36, 38, 39, 40, 55, 56, 57, 60, 61], "accord": [21, 28, 33], "tutori": 21, "intermedi": 21, "carlikebot": 21, "bicycl": [21, 25, 40, 55], "steer": [21, 25, 36, 38, 40, 55, 56, 57], "tba": 21, "tabl": 21, "easili": 21, "aptitud": 21, "might": [21, 49], "own": [21, 23, 33], "merg": 21, "procedur": 21, "rviz2": [21, 23], "visual": [21, 23, 31, 33, 47], "joint_state_publisher_gui": [21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "ros2_control_demo_example_1": [21, 23], "view_robot": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "omit": 21, "example_1": [21, 23, 24, 26, 35], "rviz": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47], "slider": 21, "around": [21, 43, 46, 48, 51, 53], "ros2_control_demo_example_2": [21, 28], "categori": 21, "individu": [21, 41, 43, 53], "position_in_degre": 21, "hardware_interface_type_valu": [21, 37], "6dof": 21, "invert": 23, "pendulum": 23, "fun": 23, "proprietari": [23, 25, 27, 28, 29, 30, 31, 32, 34], "view": [23, 33], "recreat": 23, "robotmodel": 23, "displai": [23, 26, 27, 29, 30, 31, 32, 34, 35], "ros2_control_demo_descript": [23, 25], "ok": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 41], "warn": [23, 25, 27, 28, 29, 30, 31, 32, 34, 47], "invalid": [23, 25, 27, 28, 29, 30, 31, 32, 34], "frame": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 56], "odom": [23, 25, 27, 28, 29, 30, 31, 32, 34, 39, 55, 56], "cantransform": [23, 25, 27, 28, 29, 30, 31, 32, 34], "target_fram": [23, 25, 27, 28, 29, 30, 31, 32, 34], "happen": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34], "exemplari": [23, 27, 29, 30, 31, 32, 34, 36, 38, 55, 57], "orang": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "yellow": [23, 26, 27, 29, 30, 31, 32, 34, 35], "rectangl": [23, 26, 27, 29, 30, 31, 32, 34], "introspect": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34], "list_hardware_interfac": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "entrypoint": 23, "nomin": [23, 39], "marker": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "list_control": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "forward_position_control": [23, 24, 26, 29, 30, 31, 32, 34, 35], "forward_command_control": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 52, 58], "pub": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "float64multiarrai": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 44, 52, 58], "everi": [23, 29, 30, 31, 32, 33, 34, 35, 40, 44, 48, 61], "test_forward_position_control": [23, 29, 30, 31, 32, 34, 35], "block": [23, 26, 27, 29, 30, 31, 32, 33, 34], "got": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "50000": [23, 26, 30, 31, 32], "echo": [23, 24, 26, 28, 30, 31, 35], "joint_stat": [23, 25, 26, 28, 35, 47], "dynamic_joint_st": [23, 26, 35, 47], "load_control": 23, "joint_trajectory_position_control": 23, "successfulli": [23, 27, 32], "set_controller_st": 23, "rrbot_control": [23, 24, 26, 34, 35], "four": [23, 25, 27, 36], "test_joint_trajectory_control": 23, "rrbot_joint_trajectory_publish": 23, "rrbot_descript": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35], "rrbot_forward_position_publish": [23, 35], "ros2_control_demo_example_10": 24, "contrast": 24, "gpio_control": 24, "gpiocontrol": 24, "interface_nam": [24, 43, 44], "1199574016": 24, "1676318848": 24, "rrbotsystemwithgpiohardwar": 24, "gp": 24, "list_hardware_compon": [24, 27, 28, 30, 31, 32], "faster": [24, 28, 39, 56], "genericsystem": [24, 28], "use_mock_hardwar": [24, 28], "ident": [24, 26, 28, 33, 35, 49], "unless": [24, 47], "nan": [24, 30, 48], "generic_system": 24, "wheel": [25, 36, 38, 39, 55, 56, 57], "front": [25, 36, 37, 38, 55, 56, 57], "vehicl": [25, 38], "angl": [25, 33, 38, 55], "similarli": 25, "rear": [25, 36, 38, 55, 56, 57], "carlik": 25, "ros2_control_demo_example_11": 25, "remap_odometry_tf": 25, "excess": [25, 28], "print": [25, 28, 47], "tf": [25, 39, 55], "tree": [25, 33, 39], "pose": [25, 39, 55, 56], "coordin": 25, "odometri": [25, 39, 55, 56], "bicycle_steering_control": 25, "tf_odometri": [25, 55], "angular": [25, 28, 39, 46, 55, 56], "linear": [25, 28, 33, 39, 46, 49, 51, 55, 56], "virtual_front_wheel_joint": 25, "virtual_rear_wheel_joint": 25, "bicyclesteeringcontrol": 25, "geometry_msg": [25, 28, 30, 31, 39, 43, 55], "twiststamp": [25, 28, 39, 55], "twist": [25, 28, 55, 56], "circl": [25, 28], "carlikebotsystemhardwar": 25, "carlikebot_control": 25, "carlikebot_system": 25, "example_12": 26, "known": 26, "passthrough_control": 26, "ros2_control_demo_example_12": 26, "joint2_position_control": 26, "passthroughcontrol": 26, "joint1_position_control": 26, "someth": 26, "automat": [26, 33, 35, 39, 56], "appear": 26, "whose": [26, 49], "henc": [26, 33], "launch_chained_control": 26, "position_control": [26, 40, 44, 45], "streamlin": 26, "clearli": 26, "sent": 26, "reflect": 26, "canopen_402": [27, 32], "modbu": [27, 32], "rs232": [27, 32], "rs485": [27, 32], "ros2_control_demo_example_14": 27, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 27, "rrbotmodularjoint2": [27, 32], "rrbotactuatorwithoutfeedback": 27, "rrbotmodularjoint1": [27, 32], "rrbotmodularpositionsensorjoint2": 27, "rrbotsensorpositionfeedback": 27, "rrbotmodularpositionsensorjoint1": 27, "forward_velocity_control": [27, 29], "000000": 27, "00000": [27, 28, 29], "25300": 27, "rrbot_actuator_without_feedback": 27, "rrbot_sensor_for_position_feedback": 27, "example_2": 28, "left_wheel_joint": 28, "right_wheel_joint": 28, "diffbot_base_control": 28, "diff": 28, "diffbotsystemhardwar": 28, "33333": 28, "calculate_dynam": 28, "diffbot_control": 28, "diffbot_descript": 28, "diffbot_system": 28, "example_3": 29, "fri": [29, 60], "abb": [29, 60], "yumi": 29, "schunk": [29, 60], "lwa4p": 29, "illeg": 29, "declin": 29, "faulti": 29, "ros2_control_demo_example_3": 29, "rrbot_system_multi_interfac": 29, "spawn": 29, "forward_acceleration_control": 29, "velocity_control": [29, 40, 44], "jointgroupvelocitycontrol": 29, "rrbotsystemmultiinterfacehardwar": 29, "po": [29, 37, 49], "78500": 29, "vel": [29, 55], "acc": 29, "control_lvl": 29, "forward_illegal1_control": 29, "forward_illegal2_control": 29, "1676209982": 29, "531163501": 29, "resource_manag": 29, "rrbotsystemmultiinterfac": 29, "did": 29, "531223835": 29, "reject": [29, 48, 49], "spawner": 29, "531717376": 29, "spawner_forward_illegal1_control": 29, "rrbot_multi_interface_forward_control": 29, "krc": 30, "prototyp": 30, "odri": [30, 60], "ros2_control_demo_example_4": 30, "rrbot_system_with_sensor": 30, "rrbotsystemwithsensor": 30, "rrbotsystemwithsensorhardwar": 30, "fts_broadcast": [30, 31], "force_torque_sensor_broadcast": [30, 31], "forcetorquesensorbroadcast": [30, 31], "wrench": [30, 31, 37], "republish": [30, 31], "wrenchstamp": [30, 31, 43], "stamp": [30, 31, 55, 56], "sec": [30, 31], "1676444704": [30, 31], "nanosec": [30, 31], "332221422": [30, 31], "tool_link": [30, 31], "946532964706421": 30, "0540995597839355": 30, "rrbot_with_sensor_control": 30, "pc": 31, "3d": [31, 33], "ros2_control_demo_example_5": 31, "rrbot_system_with_external_sensor": 31, "externalrrbotftsensor": 31, "externalrrbotforcetorquesensorhardwar": 31, "2126582860946655": 31, "3202226161956787": 31, "4302282333374023": 31, "540233612060547": 31, "647800624370575": 31, "7602499723434448": 31, "rrbot_with_external_sensor_control": 31, "rrbot_system_position_onli": 31, "external_rrbot_force_torque_sensor": 31, "mara": 32, "ros2_control_demo_example_6": 32, "rrbot_modular_actu": 32, "rrbotmodularjoint": 32, "rrbot_actu": 32, "queri": [33, 50], "enhanc": 33, "deploi": 33, "pattern": 33, "vendor": 33, "runtim": 33, "program": 33, "conform": 33, "newest": 33, "characterist": 33, "primari": [33, 50], "commerci": 33, "scratch": 33, "illustr": 33, "stl": 33, "dae": 33, "coars": 33, "mesh": 33, "fast": [33, 60], "collis": 33, "express": 33, "vertic": 33, "transform": [33, 39, 56], "rotat": [33, 39, 48, 56], "translat": [33, 39, 56], "proxim": 33, "face": 33, "co": 33, "planer": 33, "xy": 33, "plane": 33, "align": 33, "blender": 33, "begin": 33, "neg": [33, 37, 48], "pitch": 33, "yaw": 33, "repeat": 33, "robot_6_dof": 33, "base_link": [33, 37, 39, 55, 56], "link_0": 33, "inerti": 33, "mass": [33, 37], "inertia": 33, "ixx": 33, "ixi": 33, "ixz": 33, "iyi": 33, "iyz": 33, "izz": 33, "tool0": [33, 37], "base_joint": 33, "joint_1": 33, "link_1": 33, "061584": 33, "141592653589793": 33, "name_spac": 33, "class_nam": 33, "pi": [33, 48, 51], "enclos": 33, "previous": 33, "left": [33, 39, 47], "zero": [33, 37, 48, 49], "rel": [33, 49], "center": [33, 37], "uniform": 33, "consecut": 33, "motion": [33, 48], "subsequ": 33, "join": [33, 61], "speci": 33, "verifi": 33, "urdf_to_graphviz": 33, "r6bot": 33, "explain": 33, "robotsystem": 33, "ur5": 33, "five": 33, "hardware_interface_return_valu": 33, "hardware_interface_publ": 33, "commandinterfac": 33, "privat": 33, "memori": [33, 41], "alloc": 33, "establish": 33, "notabl": 33, "vari": 33, "fill": 33, "field": [33, 47, 49], "suppos": [33, 49], "tcp_force_torque_sensor": 33, "Their": 33, "pointer": 33, "state_interfaces_": 33, "nearli": 33, "command_interfaces_": 33, "constraint": [33, 37, 39, 41, 43, 45, 46, 48, 50, 51, 55, 56], "respons": 33, "turn": 33, "oppos": [33, 50], "tcp": [33, 37], "packet": 33, "robot_6_dof_hardwar": 33, "discov": 33, "library_nam": 33, "base_class_typ": 33, "human": 33, "notic": [33, 49], "just": 33, "add_librari": 33, "robot_hardwar": 33, "unlik": 33, "finit": 33, "transit": [33, 40, 49], "robotcontrol": 33, "nine": 33, "six": [33, 43], "callback": 33, "lifetim": 33, "restart": 33, "reconfigur": 33, "buffer": [33, 61], "transfer": 33, "eventu": 33, "mutex": 33, "guarante": [33, 49], "never": 33, "release_interfac": 33, "shut": 33, "free": [33, 39], "cleanup": 33, "r6bot_control": 33, "view_r6bot": 33, "ros2_control_demo_example_7": 33, "send_trajectori": 33, "circular": 33, "ros2_control_demo_example_8": 34, "rrbot_transmissions_system_position_onli": 34, "rrbottransmissionssystempositiononlyhardwar": 34, "transmission1": 34, "actuator1": 34, "transmission2": 34, "actuator2": 34, "383253": 34, "766505": 34, "53301": 34, "example_9": 35, "gz_ros2_control": 35, "ros2_control_demo_example_9": 35, "rrbot_gazebo": 35, "ax": [36, 37, 38, 43, 46, 51, 57], "traction": [36, 38, 55, 56, 57], "steerabl": [36, 38, 57], "generate_parameter_librari": [36, 37, 38, 39, 43, 44, 45, 46, 47, 48, 51, 53, 55, 56, 57], "parameter": [36, 38, 55, 57], "front_wheel_track": 36, "length": [36, 37, 46, 51, 55, 57], "en": [36, 38, 57], "wikipedia": [36, 38, 55, 57, 61], "wheelbas": [36, 38, 56, 57], "rear_wheel_track": 36, "distanc": [36, 38, 39, 50, 53, 56, 57], "front_wheels_radiu": [36, 57], "radiu": [36, 38, 39, 56, 57], "rear_wheels_radiu": [36, 57], "chainedcontrollerinterfac": 37, "kinematics_interfac": 37, "string_arrai": [37, 39, 44, 47, 48, 51, 55], "command_joint": [37, 48], "chainable_command_interfac": 37, "plugin_nam": 37, "plugin_packag": 37, "alpha": 37, "damp": 37, "coeffici": 37, "jacobian": 37, "pseudo": 37, "ft_sensor": 37, "filter_coeffici": 37, "filter": 37, "exponenti": 37, "fixed_world_fram": 37, "graviti": 37, "gravity_compens": 37, "cog": 37, "double_arrai": [37, 39, 46, 55, 56], "compens": 37, "equal": [37, 45, 46, 48], "weight": 37, "selected_ax": 37, "bool_arrai": 37, "rx": 37, "ry": 37, "rz": 37, "arrai": 37, "bound": 37, "0001": 37, "damping_ratio": 37, "ratio": 37, "zeta": 37, "sqrt": 37, "m": [37, 53, 55], "stiff": 37, "joint_damp": 37, "greater": [37, 45, 48, 56], "enable_parameter_update_without_reactiv": 37, "load_admittance_control": 37, "test_admittance_control": 37, "kuka_kr6": 37, "joint3": [37, 50], "joint4": [37, 50], "joint5": [37, 50], "joint6": [37, 50], "kinematics_interface_kdl": 37, "kinematicsinterfacekdl": 37, "stationari": 37, "group_nam": 37, "0005": 37, "ft_sensor_nam": 37, "link_6": 37, "005": 37, "calc": 37, "displac": 37, "x_d": 37, "828427": 37, "joint_refer": 37, "trajectory_msg": [37, 49, 50], "jointtrajectorypoint": [37, 49], "admittancecontrollerst": 37, "sensor_nam": [37, 43, 46, 53], "ackermann": [38, 40, 55], "probabl": 38, "front_wheel_radiu": 38, "rear_wheel_radiu": 38, "bodi": 39, "space": [39, 50], "hw_if_posit": [39, 40, 55], "hw_if_veloc": [39, 40, 55], "position_feedback": [39, 55], "use_stamped_vel": [39, 55, 56], "nav_msg": [39, 55], "estim": 39, "tf2_msg": [39, 55], "tfmessag": [39, 55], "enable_odom_tf": [39, 55, 56], "cmd_vel_out": 39, "publish_limited_veloc": 39, "left_wheel_nam": 39, "right_wheel_nam": 39, "wheel_separ": 39, "shortest": [39, 48, 56], "wrong": [39, 56], "behav": [39, 56], "correctli": [39, 56], "curv": [39, 56], "wheel_radiu": [39, 56], "slower": [39, 49, 56], "wheel_separation_multipli": 39, "todo": 39, "me": 39, "left_wheel_radius_multipli": 39, "right_wheel_radius_multipli": 39, "tf_frame_prefix_en": 39, "append": [39, 49], "tf_prefix": 39, "tf_frame_prefix": 39, "odom_id": 39, "base_frame_id": [39, 55, 56], "odom_frame_id": [39, 55, 56], "pose_covariance_diagon": [39, 55, 56], "covari": [39, 46, 55, 56], "tune": [39, 56], "sampl": [39, 49, 55, 56], "001": [39, 45, 56], "twist_covariance_diagon": [39, 55, 56], "speed": [39, 56], "open_loop": [39, 55, 56], "cmd_vel_timeout": [39, 56], "stale": [39, 48, 56], "velocity_rolling_window_s": [39, 55, 56], "publish_r": 39, "joint_limit": 39, "has_velocity_limit": 39, "has_acceleration_limit": 39, "has_jerk_limit": 39, "max_veloc": [39, 56], "numeric_limit": [39, 48, 56], "quiet_nan": [39, 48, 56], "min_veloc": [39, 56], "max_acceler": [39, 56], "min_acceler": [39, 56], "max_jerk": [39, 56], "min_jerk": [39, 56], "test_diff_drive_control": 39, "left_wheel": 39, "right_wheel": 39, "wheels_per_sid": 39, "commonli": 40, "effort_control": [40, 44, 45], "hw_if_acceler": 40, "hw_if_effort": 40, "represent": [40, 50], "rqt_joint_trajectory_control": [40, 50], "onconfigur": 40, "configure_control": 40, "unspecifi": 40, "is_async": 40, "asynchron": 40, "controllernam": 41, "person": 41, "get_node_opt": 41, "protect": 41, "reserv": 41, "importantli": 41, "ask": [41, 47], "sort": 41, "controller_name_namespac": 41, "controller_name_packag": 41, "ros2_control_test_asset": 41, "special": [42, 49, 52, 58], "wrapper": [43, 46, 53], "forcetorquesensor": 43, "6d": 43, "per": [43, 48], "less": [43, 51, 55], "example_nam": 43, "example_interfac": 43, "test_force_torque_sensor_broadcast": 43, "fts_sensor_fram": 43, "feedforward": 44, "multi_interface_forward_command_control": 44, "gripperactioncontrol": 45, "action_monitor_r": [45, 48, 50], "goal_toler": 45, "max_effort": 45, "allow_stal": 45, "stall": 45, "stall_velocity_threshold": 45, "threshold": 45, "stall_timeout": 45, "gripper_action_control": 45, "imusensor": 46, "orient": 46, "angular_veloc": 46, "linear_acceler": 46, "static_covariance_orient": 46, "static": 46, "row": 46, "static_covariance_angular_veloc": 46, "static_covariance_linear_acceler": 46, "test_imu_sensor_broadcast": 46, "imu_sensor": 46, "imu_sensor_fram": 46, "latter": 47, "matrix": [47, 55], "use_local_top": 47, "my_state_broadcast": 47, "extra_joint": 47, "map_interface_to_joint_st": 47, "usecas": 47, "hydraul": [47, 48], "relianc": 47, "techniqu": 47, "slightli": 47, "custom_interfac": 47, "kf_estimated_posit": 47, "derived_veloc": 47, "derived_effort": 47, "torque_sensor": 47, "current_sensor": 47, "jtc": [48, 51], "command_interface_type_combin": 48, "state_interface_type_combin": 48, "allow_partial_joints_go": [48, 50], "open_loop_control": [48, 50], "interpol": [48, 50, 51], "gain": [48, 51], "numer": 48, "allow_integration_in_goal_trajectori": [48, 49], "monitor": [48, 50], "interpolation_method": 48, "spline": 48, "allow_nonzero_velocity_at_trajectory_end": 48, "cmd_timeout": 48, "goal_tim": [48, 50], "toler": [48, 50], "jointtrajectori": [48, 49, 50], "stopped_velocity_toler": [48, 50], "infinit": 48, "amount": 48, "law": [48, 50], "k_": 48, "ff": 48, "v_d": 48, "k_p": 48, "k_i": 48, "sum": 48, "dt": 48, "k_d": 48, "s_d": 48, "i_clamp": 48, "clamp": [48, 51], "symmetr": 48, "ff_velocity_scal": 48, "feed": [48, 51], "angle_wraparound": [48, 51], "deprec": 48, "wrap": [48, 50, 51], "ie": [48, 49], "saniti": 49, "segment": [49, 50], "fault": 49, "reach": [49, 50], "datapoint": 49, "deduc": 49, "nor": 49, "discourag": 49, "yield": 49, "discontinu": [49, 50], "cubic": [49, 51], "quintic": [49, 51], "heun": 49, "grid": 49, "10m": 49, "deduct": 49, "nonzero": 49, "inconsist": 49, "overshoot": 49, "timestamp": 49, "arriv": 49, "necessarili": 49, "discard": 49, "substitut": 49, "smarter": 49, "preserv": 49, "later": 49, "flat": 49, "grei": 49, "red": 49, "traj": 49, "time_from_start": 49, "splice": 49, "held": [49, 50], "smooth": [49, 61], "longer": 49, "effect": 49, "Of": 49, "interest": 49, "adolfo": [49, 50], "rodriguez": [49, 50], "instant": 50, "citat": 50, "adapt": 50, "restrict": 50, "robust": 50, "clock": 50, "queu": 50, "preempt": 50, "cancel": 50, "notifi": 50, "abort": 50, "legal": 50, "subset": 50, "favor": 50, "violat": 50, "joint_trajectori": 50, "fire": 50, "sender": 50, "query_st": 50, "controller_st": [50, 51, 55], "cumbersom": 50, "jointtrajectorycontrollerst": 50, "querytrajectoryst": 50, "footnot": 50, "pidro": 51, "control_toolbox": [51, 61], "pd": 51, "theoret": 51, "misus": 51, "pid_control": 51, "pidcontrol": 51, "reference_and_state_dof_nam": 51, "reference_and_state_interfac": 51, "dof_nam": 51, "in_chained_mod": [51, 55], "multidofcommand": 51, "use_external_measured_st": 51, "measured_st": 51, "set_feedforward_control": 51, "std_srv": 51, "setbool": 51, "multidofstatestamp": 51, "antiwindup": 51, "i_clamp_max": 51, "i_clamp_min": 51, "feedforward_gain": 51, "rangesensor": 53, "radiation_typ": 53, "radiat": 53, "ultrason": 53, "infrar": 53, "field_of_view": 53, "arc": 53, "rad": [53, 55], "min_rang": 53, "minimum": 53, "max_rang": 53, "maximum": 53, "varianc": 53, "range_sensor_broadcast": 53, "test_range_sensor_broadcast": 53, "mendatori": 53, "range_sensor": 53, "range_sensor_fram": 53, "rqt": 54, "nomenclatur": 55, "unstamp": 55, "concret": 55, "tricylc": 55, "seer": 55, "front_steer": 55, "front_wheels_nam": 55, "rear_wheels_nam": 55, "traction_feedback_typ": 55, "reference_unstamp": 55, "steeringcontrollerstatu": 55, "reference_timeout": 55, "unwant": 55, "danger": 55, "behaviour": 55, "rear_wheels_state_nam": 55, "front_wheels_state_nam": 55, "number": 55, "averag": 55, "diagon": 55, "trail": 56, "axl": 56, "traction_joint_nam": 56, "steering_joint_nam": 56, "odom_only_twist": 56, "millisecond": 56, "500": 56, "publish_ackermann_command": 56, "old": 56, "max_deceler": 56, "min_deceler": 56, "max_posit": 56, "min_posit": 56, "wheel_track": 57, "isaac": 59, "webot": 59, "mujoco": 59, "algoryx": 59, "agx": 59, "canopen": 60, "ethercat": 60, "svh": 60, "finger": 60, "dimens": 60, "haptic": 60, "hoverboard": 60, "ndi": 60, "odriv": 60, "pca9685": 60, "bit": 60, "pwm": 60, "servo": 60, "clearpath": 60, "huski": 60, "a200": 60, "jackal": 60, "j100": 60, "warthog": 60, "w200": 60, "flexiv": 60, "rizon": 60, "husarion": 60, "rosbot": 60, "2r": 60, "pro": 60, "xl": 60, "openmanipul": 60, "igu": 60, "commonplac": 60, "kinova": 60, "kortex": 60, "gen3": 60, "pmb2": 60, "tiago": 60, "xarm": 60, "egm": 60, "iiqka": 60, "eci": 60, "sunris": 60, "kss": 60, "iiwa": 60, "lbr": 60, "med": 60, "mitsubishi": 60, "rv1a": 60, "overcom": 61, "idea": 61, "wide": 61, "toolkit": 61, "unreleas": 61, "question": 61, "wg": 61, "wednesdai": 61, "announc": 61, "discours": 61, "googl": 61, "bug": 61, "tracker": 61, "reproduc": 61, "regard": 61, "built": 61, "gmt": 61}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 21, 61], "process": [1, 11], "merg": 1, "write": [1, 16, 19, 33, 41], "document": [1, 10, 12, 61], "structur": [1, 5], "ci": 1, "configur": 1, "usag": [1, 2, 4], "gazebo_ros2_control": 2, "modifi": [2, 4], "build": [2, 3, 4, 21], "your": [2, 3, 4], "own": [2, 4], "To": [2, 4, 21], "run": [2, 3, 4, 21], "demo": [2, 4, 7, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "add": [2, 4, 7], "ros2_control": [2, 4, 5, 6, 7, 8, 9, 12, 17, 21, 33, 37, 40, 61], "tag": [2, 4], "urdf": [2, 3, 4, 33], "simpl": [2, 4], "setup": [2, 4], "us": [2, 4, 10, 11, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41, 50, 51], "mimic": [2, 4], "joint": [2, 4, 17, 50], "simul": [2, 4, 35, 59], "plugin": [2, 4, 33], "default": [2, 4], "behavior": [2, 4], "advanc": [2, 4], "custom": [2, 4], "set": [2, 4], "up": [2, 4], "control": [2, 3, 4, 5, 7, 10, 11, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 42, 44, 45, 50, 51, 52, 55, 58, 59], "gazebo_ros2_control_demo": 2, "get": 3, "start": 3, "instal": [3, 21], "binari": 3, "packag": [3, 21], "from": [3, 6, 7, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 51, 55, 60], "sourc": [3, 21], "architectur": 3, "manag": [3, 10, 11], "resourc": [3, 8, 10], "user": 3, "interfac": [3, 5, 17, 18, 20, 24, 29, 33, 34, 37, 39, 42, 44, 47, 50, 51, 52, 55, 58], "hardwar": [3, 5, 7, 11, 15, 16, 17, 19, 33, 44, 47, 50], "compon": [3, 5, 7, 14, 15, 16, 18, 19], "descript": [3, 33, 39, 50, 51, 55], "framework": 3, "robot": [3, 8, 21, 24, 27, 29, 30, 31, 32, 33, 34, 40, 60], "gz_ros2_control": 4, "gz_ros2_control_demo": 4, "differ": [5, 6, 15], "ros_control": [5, 6], "ro": [5, 6, 8, 37, 39, 42, 44, 52, 58, 59], "1": [5, 6, 23, 50], "class": [5, 10], "": [5, 39, 50, 51, 55], "access": 5, "migrat": [5, 6], "guid": [5, 6], "robothardwar": 5, "come": [6, 9], "between": 6, "2": [6, 37, 39, 42, 44, 52, 58], "distribut": 6, "project": 7, "idea": 7, "gsoc": 7, "2024": 7, "tutori": [7, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "mission": 7, "support": [7, 60], "semant": 7, "featur": [7, 12, 39, 50, 56], "pariti": 7, "ros1": 7, "present": 8, "2023": [8, 9], "10": [8, 24], "18": 8, "roscon": [8, 9], "workshop": [8, 9], "steroid": [8, 9], "02": 8, "meetup": 8, "munich": 8, "5": [8, 31], "2022": 8, "12": [8, 26], "industri": [8, 24, 30, 31, 34], "confer": [8, 9], "06": 8, "fr": 8, "2021": 8, "world": 8, "07": 8, "weekli": 8, "13": 8, "rosdevdai": 8, "05": 8, "diagram": 8, "imag": 8, "summari": 9, "slide": 9, "befor": 9, "peopl": 9, "chain": [10, 26], "cascad": 10, "scope": 10, "background": 10, "knowledg": 10, "motiv": 10, "purpos": 10, "implement": 10, "A": 10, "base": 10, "chainablecontrol": 10, "inner": 10, "activ": 10, "deactiv": 10, "debug": 10, "output": [10, 39], "close": 10, "remark": 10, "determin": 11, "subscrib": [11, 39, 50, 51, 55], "paramet": [11, 18, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 51, 52, 53, 55, 56, 57, 58], "handl": [11, 16], "multipl": [11, 29], "helper": 11, "script": 11, "spawner": 11, "unspawn": 11, "concept": [11, 12], "restart": 11, "all": 11, "api": 12, "foxi": 13, "galact": 13, "hardware_interfac": 13, "iron": 14, "jazzi": 14, "parser": 14, "updat": 15, "rate": 15, "By": 15, "count": 15, "loop": 15, "measur": 15, "elaps": 15, "time": 15, "guidelin": [16, 40], "best": [16, 40], "practic": [16, 40], "error": 16, "happen": 16, "dure": 16, "read": 16, "call": 16, "type": [17, 44, 47, 50], "sensor": [17, 30, 31, 43, 46, 53], "gpio": [17, 24], "exampl": [17, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 45, 46, 47, 48, 49, 53], "mock": 18, "gener": 18, "system": 18, "per": 18, "extern": [19, 31, 41], "refer": [19, 37, 39, 41, 50, 51, 55], "command": [20, 37, 47, 50, 51, 55, 56], "line": 20, "list_control": 20, "list_controller_typ": 20, "list_hardware_compon": 20, "list_hardware_interfac": 20, "load_control": 20, "reload_controller_librari": 20, "set_controller_st": 20, "set_hardware_component_st": 20, "switch_control": 20, "unload_control": 20, "view_controller_chain": 20, "what": 21, "you": 21, "can": 21, "find": 21, "thi": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "goal": 21, "overview": [21, 33], "local": 21, "debian": 21, "docker": 21, "view": 21, "quick": 21, "hint": 21, "rrbot": [23, 26, 35], "step": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "file": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 45, 46, 47, 48, 53], "carlikebot": 25, "14": 27, "modular": [27, 32], "actuat": [27, 32], "provid": 27, "state": [27, 37, 50, 51, 55], "diffbot": 28, "3": 29, "4": 30, "integr": [30, 59], "connect": 31, "6": 32, "separ": 32, "commun": [32, 59, 60, 61], "each": 32, "7": 33, "full": 33, "6dof": 33, "geometri": 33, "cmake": 33, "librari": 33, "launch": 33, "8": 34, "an": [34, 45, 46, 47, 48, 53], "expos": 34, "transmiss": 34, "9": 35, "ackermann_steering_control": 36, "admitt": 37, "topic": [37, 42, 44, 52, 58], "bicycle_steering_control": 38, "diff_drive_control": 39, "other": [39, 40, 50, 56], "feedback": 39, "publish": [39, 50, 51, 55], "mobil": 40, "manipul": 40, "broadcast": [40, 43, 46, 53], "common": 40, "new": 41, "effort_control": 42, "jointgroupeffortcontrol": 42, "forc": 43, "torqu": 43, "forward_command_control": 44, "gripper": 45, "action": [45, 50], "list": [45, 46, 47, 48, 53], "imu": 46, "joint_state_broadcast": 47, "detail": 48, "about": 48, "trajectori": [49, 50], "represent": 49, "interpol": 49, "method": 49, "none": 49, "spline": 49, "visual": 49, "replac": 49, "joint_trajectory_control": 50, "preemption": 50, "polici": 50, "servic": [50, 51], "further": 50, "inform": 50, "pid": 51, "execut": [51, 55], "logic": [51, 55], "preced": [51, 55], "position_control": 52, "jointgrouppositioncontrol": 52, "rang": 53, "rqt_joint_trajectory_control": 54, "steering_controllers_librari": 55, "tricycle_control": 56, "veloc": 56, "tricycle_steering_control": 57, "velocity_control": 58, "jointgroupvelocitycontrol": 58, "host": 59, "protocol": 60, "end": 60, "effector": 60, "non": 60, "devic": 60, "offici": 60, "manufactur": 60, "unoffici": 60, "welcom": 61, "develop": 61, "organis": 61}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "gazebo_ros2_control": [[2, "gazebo-ros2-control"]], "Usage": [[2, "usage"], [4, "usage"]], "Modifying or building your own": [[2, "modifying-or-building-your-own"], [4, "modifying-or-building-your-own"]], "To run the demo": [[2, "to-run-the-demo"], [4, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[2, "add-ros2-control-tag-to-a-urdf"], [4, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[2, "simple-setup"], [4, "simple-setup"]], "Using mimic joints in simulation": [[2, "using-mimic-joints-in-simulation"], [4, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[2, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[2, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[2, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[2, "set-up-controllers"], [4, "set-up-controllers"]], "gazebo_ros2_control_demos": [[2, "gazebo-ros2-control-demos"]], "Getting Started": [[3, "getting-started"]], "Installation": [[3, "installation"], [21, "installation"]], "Binary packages": [[3, "binary-packages"]], "Building from Source": [[3, "building-from-source"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [11, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"], [16, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[4, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[4, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[4, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[4, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[4, "gz-ros2-control-demos"]], "Differences to ros_control (ROS 1)": [[5, "differences-to-ros-control-ros-1"]], "Hardware Structures - classes": [[5, "hardware-structures-classes"]], "Hardware Interfaces": [[5, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[5, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[5, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[5, "robothardware-to-components"]], "Controller Migration": [[5, "controller-migration"]], "Migration Guides": [[6, "migration-guides"]], "Coming from ros_control (ROS 1)": [[6, "coming-from-ros-control-ros-1"]], "Between different ROS 2 distributions": [[6, "between-different-ros-2-distributions"]], "ros2_control": [[6, "ros2-control"], [12, "ros2-control"]], "ros2_controllers": [[6, "ros2-controllers"], [40, "ros2-controllers"]], "Project Ideas for GSoC 2024": [[7, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[7, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[7, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[7, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[7, "feature-parity-for-controllers-from-ros1"]], "Resources": [[8, "resources"]], "Presentations": [[8, "presentations"]], "2023-10-18 ROSCon Workshop: ros2_control on Steroids": [[8, "roscon-workshop-ros2-control-on-steroids"]], "2023-02 ROS Meetup Munich #5": [[8, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[8, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[8, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[8, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[8, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[8, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[8, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[8, "roscon-fr-2021"]], "Diagrams": [[8, "diagrams"]], "Images": [[8, "images"]], "ROSCon 2023 Workshop": [[9, "roscon-2023-workshop"]], "ros2_control on Steroids": [[9, "ros2-control-on-steroids"]], "Summary": [[9, "summary"]], "Slides": [[9, "slides"]], "Before coming to the conference": [[9, "before-coming-to-the-conference"]], "People": [[9, "people"]], "Controller Chaining / Cascade Control": [[10, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[10, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[10, "motivation-purpose-and-use"]], "Implementation": [[10, "implementation"]], "A Controller Base-Class: ChainableController": [[10, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[10, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[10, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[10, "debugging-outputs"]], "Closing remarks": [[10, "closing-remarks"]], "Determinism": [[11, "determinism"]], "Subscribers": [[11, "subscribers"], [39, "subscribers"], [51, "subscribers"], [55, "subscribers"]], "Parameters": [[11, "parameters"], [18, "parameters"], [36, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [42, "parameters"], [43, "parameters"], [44, "parameters"], [45, "parameters"], [46, "parameters"], [47, "parameters"], [51, "parameters"], [52, "parameters"], [53, "parameters"], [55, "parameters"], [56, "parameters"], [57, "parameters"], [58, "parameters"]], "Handling Multiple Controller Managers": [[11, "handling-multiple-controller-managers"]], "Helper scripts": [[11, "helper-scripts"]], "spawner": [[11, "spawner"]], "unspawner": [[11, "unspawner"]], "Using the Controller Manager in a Process": [[11, "using-the-controller-manager-in-a-process"]], "Concepts": [[11, "concepts"], [12, "concepts"]], "Restarting all controllers": [[11, "restarting-all-controllers"]], "Restarting hardware": [[11, "restarting-hardware"]], "API Documentation": [[12, "api-documentation"]], "Features": [[12, "features"]], "Foxy to Galactic": [[13, "foxy-to-galactic"]], "hardware_interface": [[13, "hardware-interface"]], "Iron to Jazzy": [[14, "iron-to-jazzy"]], "component parser": [[14, "component-parser"]], "Different update rates for Hardware Components": [[15, "different-update-rates-for-hardware-components"]], "By counting loops": [[15, "by-counting-loops"]], "By measuring elapsed time": [[15, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[16, "guidelines-and-best-practices"], [40, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[16, "handling-of-errors-that-happen-during-read-and-write-calls"]], "ros2_control hardware interface types": [[17, "ros2-control-hardware-interface-types"]], "Joints": [[17, "joints"]], "Sensors": [[17, "sensors"]], "GPIOs": [[17, "gpios"]], "Examples": [[17, "examples"], [21, "examples"]], "Mock Components": [[18, "mock-components"]], "Generic System": [[18, "generic-system"]], "Per-interface Parameters": [[18, "per-interface-parameters"]], "Writing a Hardware Component": [[19, "writing-a-hardware-component"]], "Useful External References": [[19, "useful-external-references"], [41, "useful-external-references"]], "Command Line Interface": [[20, "command-line-interface"]], "list_controllers": [[20, "list-controllers"]], "list_controller_types": [[20, "list-controller-types"]], "list_hardware_components": [[20, "list-hardware-components"]], "list_hardware_interfaces": [[20, "list-hardware-interfaces"]], "load_controller": [[20, "load-controller"]], "reload_controller_libraries": [[20, "reload-controller-libraries"]], "set_controller_state": [[20, "set-controller-state"]], "set_hardware_component_state": [[20, "set-hardware-component-state"]], "switch_controllers": [[20, "switch-controllers"]], "unload_controller": [[20, "unload-controller"]], "view_controller_chains": [[20, "view-controller-chains"]], "Demos": [[21, "demos"]], "What you can find in this repository": [[21, "what-you-can-find-in-this-repository"]], "Goals": [[21, "goals"]], "Examples Overview": [[21, "examples-overview"]], "Local installation": [[21, "local-installation"]], "Build from debian packages": [[21, "build-from-debian-packages"]], "Build from source": [[21, "build-from-source"]], "Using Docker": [[21, "using-docker"]], "To view the robot": [[21, "to-view-the-robot"]], "To run the ros2_control demos": [[21, "to-run-the-ros2-control-demos"]], "Quick Hints": [[21, "quick-hints"]], "Example 1: RRBot": [[23, "example-1-rrbot"]], "Tutorial steps": [[23, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [29, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"], [32, "tutorial-steps"], [34, "tutorial-steps"], [35, "tutorial-steps"]], "Files used for this demos": [[23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [29, "files-used-for-this-demos"], [31, "files-used-for-this-demos"], [32, "files-used-for-this-demos"], [34, "files-used-for-this-demos"], [35, "files-used-for-this-demos"]], "Controllers from this demo": [[23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [29, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"], [32, "controllers-from-this-demo"], [34, "controllers-from-this-demo"], [35, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[24, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[25, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[26, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[27, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[28, "diffbot"]], "Example 3: Robots with multiple interfaces": [[29, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[30, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[30, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[31, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[32, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[33, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[33, "ros2-control-overview"]], "Writing a URDF": [[33, "writing-a-urdf"]], "Geometry": [[33, "geometry"]], "URDF file": [[33, "urdf-file"]], "Writing a hardware interface": [[33, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[33, "plugin-description-file-hardware"]], "CMake library (hardware)": [[33, "cmake-library-hardware"]], "Writing a controller": [[33, "writing-a-controller"]], "Plugin description file (controller)": [[33, "plugin-description-file-controller"]], "CMake library (controller)": [[33, "cmake-library-controller"]], "Launching the example": [[33, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[34, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[35, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[36, "ackermann-steering-controller"]], "Admittance Controller": [[37, "admittance-controller"]], "ROS 2 interface of the controller": [[37, "ros-2-interface-of-the-controller"], [42, "ros-2-interface-of-the-controller"], [44, "ros-2-interface-of-the-controller"], [52, "ros-2-interface-of-the-controller"], [58, "ros-2-interface-of-the-controller"]], "Topics": [[37, "topics"], [42, "topics"], [44, "topics"], [52, "topics"], [58, "topics"]], "ros2_control interfaces": [[37, "ros2-control-interfaces"]], "References": [[37, "references"], [39, "references"], [50, "references"]], "States": [[37, "states"], [50, "states"], [51, "states"], [55, "states"]], "Commands": [[37, "commands"], [47, "commands"], [50, "commands"], [51, "commands"], [55, "commands"]], "bicycle_steering_controller": [[38, "bicycle-steering-controller"]], "diff_drive_controller": [[39, "diff-drive-controller"]], "Other features": [[39, "other-features"], [50, "other-features"], [56, "other-features"]], "Description of controller\u2019s interfaces": [[39, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"], [51, "description-of-controller-s-interfaces"], [55, "description-of-controller-s-interfaces"]], "Feedback": [[39, "feedback"]], "Output": [[39, "output"]], "ROS 2 Interfaces": [[39, "ros-2-interfaces"]], "Publishers": [[39, "publishers"], [50, "publishers"], [51, "publishers"], [55, "publishers"]], "Controllers for Mobile Robots": [[40, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[40, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[40, "broadcasters"]], "Common Controller Parameters": [[40, "common-controller-parameters"]], "Writing a new controller": [[41, "writing-a-new-controller"]], "effort_controllers": [[42, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[42, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[43, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[44, "forward-command-controller"]], "Hardware interface type": [[44, "hardware-interface-type"], [47, "hardware-interface-type"]], "Gripper Action Controller": [[45, "gripper-action-controller"]], "List of parameters": [[45, "list-of-parameters"], [46, "list-of-parameters"], [47, "list-of-parameters"], [48, "list-of-parameters"], [53, "list-of-parameters"]], "An example parameter file": [[45, "an-example-parameter-file"], [46, "an-example-parameter-file"], [47, "an-example-parameter-file"], [48, "an-example-parameter-file"], [53, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[46, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[47, "joint-state-broadcaster"]], "Details about parameters": [[48, "details-about-parameters"]], "Trajectory Representation": [[49, "trajectory-representation"]], "Interpolation Method none": [[49, "interpolation-method-none"]], "Interpolation Method spline": [[49, "interpolation-method-spline"]], "Visualized Examples": [[49, "visualized-examples"]], "Trajectory Replacement": [[49, "trajectory-replacement"]], "joint_trajectory_controller": [[50, "joint-trajectory-controller"]], "Hardware interface types": [[50, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[50, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[50, "preemption-policy"]], "Actions 1": [[50, "actions"]], "Subscriber 1": [[50, "subscriber"]], "Services": [[50, "services"], [51, "services"]], "Further information": [[50, "further-information"]], "PID Controller": [[51, "pid-controller"]], "Execution logic of the controller": [[51, "execution-logic-of-the-controller"], [55, "execution-logic-of-the-controller"]], "Using the controller": [[51, "using-the-controller"]], "References (from a preceding controller)": [[51, "references-from-a-preceding-controller"], [55, "references-from-a-preceding-controller"]], "position_controllers": [[52, "position-controllers"]], "position_controllers/JointGroupPositionController": [[52, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[53, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[54, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[55, "steering-controllers-library"]], "tricycle_controller": [[56, "tricycle-controller"]], "Velocity commands": [[56, "velocity-commands"]], "tricycle_steering_controller": [[57, "tricycle-steering-controller"]], "velocity_controllers": [[58, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[58, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[59, "simulator-integrations"]], "Hosted by ros-controls": [[59, "hosted-by-ros-controls"]], "Community": [[59, "community"]], "Supported Robots": [[60, "supported-robots"]], "Communication protocols": [[60, "communication-protocols"]], "End-effectors": [[60, "end-effectors"]], "Non robot-devices": [[60, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[60, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[60, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation!": [[61, "welcome-to-the-ros2-control-documentation"]], "ros2_control Repositories": [[61, "ros2-control-repositories"]], "Development Organisation and Communication": [[61, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file

Qz;1v{M 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 d*_uYwS_*t9@SqFjCY4AnC`VC+{{!D$Cp7>7 diff --git a/humble/.doctrees/index.doctree b/humble/.doctrees/index.doctree index 4e93809d1187e05871cdc373c509e2a37e2587ba..867223b3bf659567d7e4fa23418185169156cbfd 100644 GIT binary patch delta 82 zcmX?ko$=&##tmkSh9=2Hh3Pr*+4`1gW(FyyX%-d+M&?NdCT5mthL(mF7Ut&WX2z+e mrYXj0mIkKD2Bw?S89jm+%{OldHe+NopBxw}y_qTWxEKII1sLG~ delta 82 zcmX?ko$=&##tmkShKAX>>6s~&nfjKN$;p<Maintainers -