From 3ccce13f3ee7e5c03e1333e6ec7a0f68c51755d6 Mon Sep 17 00:00:00 2001 From: bmagyar Date: Thu, 4 Apr 2024 05:33:02 +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 1211571 -> 1211485 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 3559112 -> 3559026 bytes humble/.doctrees/index.doctree | Bin 27593 -> 27593 bytes .../acknowledgements/acknowledgements.html | 444 +++++++++--------- humble/index.html | 2 +- humble/searchindex.js | 2 +- iron/.buildinfo | 2 +- .../acknowledgements/acknowledgements.doctree | Bin 1211571 -> 1211485 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 3595501 -> 3595415 bytes iron/.doctrees/index.doctree | Bin 27549 -> 27549 bytes .../acknowledgements/acknowledgements.html | 444 +++++++++--------- iron/index.html | 2 +- iron/searchindex.js | 2 +- master/.buildinfo | 2 +- .../acknowledgements/acknowledgements.doctree | Bin 1211571 -> 1211485 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 50251 -> 50251 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 36729 -> 36729 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 3703987 -> 3703901 bytes master/.doctrees/index.doctree | Bin 27539 -> 27539 bytes .../acknowledgements/acknowledgements.html | 444 +++++++++--------- master/index.html | 2 +- master/searchindex.js | 2 +- 248 files changed, 681 insertions(+), 681 deletions(-) diff --git a/foxy/.buildinfo b/foxy/.buildinfo index 34f700ba731..291cbf3ed7b 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: 4501bc3e35b8ed7b2c1c116d4d7cba7e +config: 93b756673fb4fb8a555b3bfa238e41f8 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree b/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree index e6c133af211c188c26d4d8d6394b7345fa526877..5ba69058b6743f40b60bfe76459945bfdfac808c 100644 GIT binary patch delta 66 zcmeCO>ayBk#AsMhnN?+OQC6m(WNB)gW}0YhW|5p|VwhrSX>4dayBk#AsNYlAD)WX_&2Vk&s?06Q%Jh>gO^wq`6OGL*k`qk~Q!Fiw4GqjwlPt_q%}h-b U4N^_a42>6%No2e6# delta 64 zcmdnf&$OqXX@eG{VR1@sUTURbw!TG5vSCu1L7GK!s)a>zl7*3pajL0Vs)bpap@o^D Sk)@f5g$YoN(dKBz#5Mq~pA**r diff --git a/foxy/.doctrees/doc/getting_started/getting_started.doctree b/foxy/.doctrees/doc/getting_started/getting_started.doctree index d63c787fc15d8d0b19776a0d7f7d56b6bb273ae6..dbb09f3229205a5625157fc375a57c1067521771 100644 GIT binary patch delta 64 zcmez0#r(gEd4mC?VL@e9mAOS(nSPR`sd1WVqOqApa-xZ0ilwEop@Dg7l7(5SnW<@_ TL8^(Fp|OQoQtIYJM!6#ZyOzl7*3pajL0Vs)bpap@o^D Sk)@f5g$YoN(dI-(xg!A1jucz~ diff --git a/foxy/.doctrees/doc/project_ideas.doctree b/foxy/.doctrees/doc/project_ideas.doctree index c38f701b356ac49c6fc4833f099529225efc2c4b..f55d8cec6c75a2a32b30bc8ca7af1c2377334c98 100644 GIT binary patch delta 64 zcmeyeis{QLrVTobh6R;bRpu6DW%@~$rp9TeiNeK$%aX325A<_sTLN=Nft&X#;K-esTO8wh8AXq TMwVtK7A8P7Mw??9#isxO*5njL diff --git a/foxy/.doctrees/doc/resources/resources.doctree b/foxy/.doctrees/doc/resources/resources.doctree index 8e12953da7ceff090b8986ef2b321e11687d52fc..b1eae9cd972164a56716d9576d789983c1dec7f5 100644 GIT binary patch delta 68 zcmX@v!*a5RWrGT%VL@e9mAOS(nSPR`sd1WVqOqApa-xZ0ilwEop@Dg7l7(5SnW<@_ XL8^(Fp|OQoQfhN3zl7*3pajL0Vs)bpap@o^D Wk)@f5g$YoNQFAEc_E1K~FDw89_!QCr diff --git a/foxy/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree index a2cc5fd358bdbf569185cb67b77c08b5a3bd90a3..d0bbaf8c5b3cd87c1e113241184496340dda28c6 100644 GIT binary patch delta 62 zcmezE{@Z3-CWmc8BMOm4ClBKC}nrWi3nMHD3-yN^V|irD3+dMM|<^Qkp@UMRKZzMRJmbk%@7tsadLpS(>4RnW2%T QnTdr7P>s>%a>f=V0IZ%9xBvhE diff --git a/foxy/.doctrees/doc/ros2_control/doc/index.doctree b/foxy/.doctrees/doc/ros2_control/doc/index.doctree index 23e8c9163784f7dff9af07c684c0e2e40148aab0..0a6a85ee4804d5ddfc22ef0cac66e8ad0a549ae6 100644 GIT binary patch delta 62 zcmX@5cS>)A9iw4EWmc8BMOm4ClBKC}nrWi3nMHD)A9iw4!N^V|irD3+dMM|<^Qkp@UMRKZzMRJmbk%@7tsadLpS(>4RnW2%T QnTdr7P>s>%e8$_N0Ek5sUH||9 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 264c5b373dc206114f485556ab8f70382b4db2e6..23072083506c5909d2a02337fad65bd978c42b5e 100644 GIT binary patch delta 62 zcmcbcc{g)|1EXO4RnW2%T QnTdr7P>s>%LdG0p0IanWtpET3 diff --git a/foxy/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index 3d7d511e9af18daf3db80a5538d4c4aff5a5cec1..fbbd45f6c5a9b1580bb4577d3614d92fe60c760d 100644 GIT binary patch delta 64 zcmdmYka6EZ#tn9ih6R;bRpu6DW%@~$rp9TeiNeK$%aX325A<_sTLN=Nft&X#;K-esTO8wh8AXq SMwVtK7A8P7Mw{~){o?`4pA;+r diff --git a/foxy/.doctrees/doc/ros2_control_demos/doc/index.doctree b/foxy/.doctrees/doc/ros2_control_demos/doc/index.doctree index 56dc29b269888d322e6915bc10591a8e0cdbd7b2..818b15bcc99df2d107682399f24c53f2dbf608d1 100644 GIT binary patch delta 62 zcmcbed^>rA8KYrAWmc8BMOm4ClBKC}nrWi3nMHDrA8KYrwN^V|irD3+dMM|<^Qkp@UMRKZzMRJmbk%@7tsadLpS(>4RnW2%T QnTdr7P>s>%bjA_`0H&N1jsO4v 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 aad67ca98704bc0312e41f6691a38ca0397e233a..e6f89eec8b5c0c6cea638841b5bdca87211f9c07 100644 GIT binary patch delta 62 zcmdn4vt4I{52Im0Wmc8BMOm4ClBKC}nrWi3nMHDh=66gQ` delta 62 zcmdn4vt4I{52ImmN^V|irD3+dMM|<^Qkp@UMRKZzMRJmbk%@7tsadLpS(>4RnW2%T QnTdr7P>s>%TE<->0D)Q)E&u=k diff --git a/foxy/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/foxy/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index e41fda70fe41c562e25c89376d479ac65ff26037..4babfb1ffe4da5acda7d62537fdbfaa86f5d0b83 100644 GIT binary patch delta 71 zcmdm$vMXhS2BT3yWmc8BMOm4ClBKC}nrWi3nMHD4RnW2%T anTdr7P>qrPWCtbD$rGeSH@7fuGXMZhLl!Im 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 526ef6e951217d57039582bdbab2aef2d7c538e9..48cf2cc1a8578a67909e6c648adf5f6504cf97a1 100644 GIT binary patch delta 64 zcmbPwg?Z`~<_!*vh6R;bRpu6DW%@~$rp9TeiN delta 64 zcmbPwg?Z`~<_!*vhQ%qld8w6#+4>eK$%aX325A<_sTLN=Nft&X#;K-esTO8wh8AXq TMwVtK7A8P7Mw<&6m%IP~!&(&P 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 29fde0b8eec4496b0abdbe99c52b7ff8a048f176..830dea2d19f6f7eee8ceedde36234815d6535dbf 100644 GIT binary patch delta 62 zcmbQEFh^m78>3-CWmc8BMOm4ClBKC}nrWi3nMHD3-yN^V|irD3+dMM|<^Qkp@UMRKZzMRJmbk%@7tsadLpS(>4RnW2%T QnTdr7P>s>%a>k{60Bt@Jxc~qF 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 031010f074b84d56e43d1583c8b352da05bd9b04..f5a03239076fb39d48bdfae6bedc4a2db29a6cdb 100644 GIT binary patch delta 62 zcmccUe9?JB0;6F;Wmc8BMOm4ClBKC}nrWi3nMHD4RnW2%T QnTdr7P>s>%iHr^k0GwhIN&o-= 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 82376ebf435e896fbb4af520a9b6d2864ef28cbc..7a5891423f7d0b06fd87d43b77f6e4658bc84c3e 100644 GIT binary patch delta 62 zcmaE&@I+xl7^7i9Wmc8BMOm4ClBKC}nrWi3nMHD4RnW2%T QnTdr7P>s>%cE-DW0F%xWp#T5? 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 11822a2073f8c47bd976b5969d90c103b4d39d31..122a1a4be178ddbf3fcee01d611bccf819d3ce47 100644 GIT binary patch delta 62 zcmZqIYuDT0$7onknN?+OQC6m(WNB)gW}0YhW|5p|VwhrSX>4dSpaZ>5_13m delta 62 zcmZ2&yV`a`0Ha}XN^V|irD3+dMM|<^Qkp@UMRKZzMRJmbk%@7tsadLpS(>4RnW2%T QnTdr7P>s>%Mn)}J0E2fDxc~qF 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 5245183f6f06cd8bc3db9bc5bf116258cc6b631a..1afc6999773c7a05ed868567b370613b7017ac41 100644 GIT binary patch delta 62 zcmaE<@ls=hAERMGWmc8BMOm4ClBKC}nrWi3nMHD4RnW2%T QnTdr7P>s>%dd62m0GK8dyZ`_I 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 4fd92d08f106ee3083bfffc467133fe6d21e310d..f0fe78bc10be8d1b9bb4705124a28b9aa6242454 100644 GIT binary patch delta 64 zcmccD&UCMxX+s2~VL@e9mAOS(nSPR`sd1WVqOqApa-xZ0ilwEop@Dg7l7(5SnW<@_ TL8^(Fp|OQoQtIYT#?U4JvqcmU delta 64 zcmccD&UCMxX+s2~VR1@sUTURbw!TG5vSCu1L7GK!s)a>zl7*3pajL0Vs)bpap@o^D Sk)@f5g$YoN(dJIZ&?W%JI}}#{ 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 a2e680f3cff76976ee09f7dab487dd96617e9cc5..16dbf4855de1c41d3676d76db64180f392ef5c06 100644 GIT binary patch delta 62 zcmdm`uuEZs7o%Z8Wmc8BMOm4ClBKC}nrWi3nMHD@643wv delta 62 zcmdm`uuEZs7o%ZuN^V|irD3+dMM|<^Qkp@UMRKZzMRJmbk%@7tsadLpS(>4RnW2%T QnTdr7P>s>%YR3J10DQ6&7XSbN 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 b42642edb8f060f477d88f9b196bae83eb032712..5279a01f76806bbb49df1f2840ce8b0111c91137 100644 GIT binary patch delta 62 zcmbQMF;`=Q2cuy@Wmc8BMOm4ClBKC}nrWi3nMHD4RnW2%T QnTdr7P>s>%O2#EZ0CDsZ(f|Me 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 46780f65869d68065cf845b4aa6d530b56faf99f..28ed403d05d1d5f1f90a54c3897f8c3e345fa97a 100644 GIT binary patch delta 62 zcmdm`uuEZs7o%Z8Wmc8BMOm4ClBKC}nrWi3nMHD@643wv delta 62 zcmdm`uuEZs7o%ZuN^V|irD3+dMM|<^Qkp@UMRKZzMRJmbk%@7tsadLpS(>4RnW2%T QnTdr7P>s>%YR3J10DQ6&7XSbN diff --git a/foxy/.doctrees/environment.pickle b/foxy/.doctrees/environment.pickle index 0267bac73748ce354d8af723f714d97c92004615..d234c8949ed12404538bcf4605d68366f90392be 100644 GIT binary patch delta 14354 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 He+l?6XP5>e delta 14504 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 diff --git a/foxy/index.html b/foxy/index.html index 6d89606ef1b..9c01225eee3 100644 --- a/foxy/index.html +++ b/foxy/index.html @@ -152,7 +152,7 @@

Development Organisation and Communication -

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

+

Built on 2024-04-04 at 05:32 GMT

diff --git a/foxy/searchindex.js b/foxy/searchindex.js index c303655749b..51c060fda12 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, 24], "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, "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, "32": 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 5a261feff74..a4d32228c95 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: 707c2d5c1d3ffbb7813f19850e5557b0 +config: 90fd1e14fd146ce2ac44d8ed6b7ba795 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree b/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree index 2fb6cad4503667ae5627ef23c1dd4c39b1dc22c7..cd01128ec3c7706cbd9d9fda4837af2b11eb949f 100644 GIT binary patch delta 66 zcmeCO>ayBk#AsMhnN?+OQC6mJU}$M!kZP8aVwh@dW?^V)nQUQfoSc?sVv=l>oSc@L VoNStGW@MB!*^otSb0yayBk#AsNYlAD)WX_&2VW@eFQVUS{(XkeCRmXeZWXs?06Q%JdBkEiDXE%~DbfQ;p3m3@t5_EsTwm)6z^#l8us+ U(^8X@O_R-xjFL7#V|I=P0MFGGQUCw| delta 64 zcmZ3vk8$Nb#tmDU4U1E9^HM7fv-Qo)EYd6tQY;e<%+kzKQj#n!%u|ibjf@OT(=3wB UOiT=n42_H|OpP}`V|I=P0LJMQ5C8xG diff --git a/galactic/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree b/galactic/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree index 7f86b9a2c07ee8bb89cb00ab1671671201dbcfec..23fd72b6e3190bb373f6f1fb10c3211ac6991bb2 100644 GIT binary patch delta 64 zcmdnf&$OqXX@eG{VL@e9mAOS(nZALcrG-JNSxSmws6%Nq0$sf delta 64 zcmdnf&$OqXX@eG{VR1@sUTURbw!WE}MVf^{ie;jKS(;f&N|L38d8(1Qk&%IEnnkji TiHU)cp^=e=sqyA$#>6%NnC24+ diff --git a/galactic/.doctrees/doc/getting_started/getting_started.doctree b/galactic/.doctrees/doc/getting_started/getting_started.doctree index 703148f6c0e346e5bb1735596a77fb46fd23c66c..092e4afb634d4ced4d5bc3fe6b5d6057a285c016 100644 GIT binary patch delta 64 zcmez0#r(gEd4mC?VL@e9mAOS(nZALcrG-JNSxSmwsq&mKFx7W+^F#sm5j&hL)De7RJWOX=x@V$wtY^ UX{pJ{rpabTMoF7v8O5gn0Lm8>xc~qF delta 64 zcmeyeis{QLrVTobhQ%qld8w6#+4^Q?7HJj+DVB)_W@%i84{ diff --git a/galactic/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree index 973cebfaa2ed6759f8b62f4366eb8fad37e3a19e..0ccef9a6840a8579676f418b1ef0ea45bd0031a8 100644 GIT binary patch delta 62 zcmX>abu?;&8>3-CWmc8BMOm4?fuW^^L8@6wieaj;nT4UHWwM2_adKLkiAl0ia&lT~ Raabu?;&8>3-yN^V|irD3+dnVChJg+YpCqJdeOSxQQhrGG688WA diff --git a/galactic/.doctrees/doc/ros2_control/doc/index.doctree b/galactic/.doctrees/doc/ros2_control/doc/index.doctree index a4539e4bb63a93bfecf61b0495dff3f17094a656..9e9c66c27ab7152401d5742584a78beb07b9d489 100644 GIT binary patch delta 62 zcmdm_ze#_C9iw4EWmc8BMOm4?fuW^^L8@6wieaj;nT4UHWwM2_adKLkiAl0ia&lT~ Raq&mKFx7W+^F#sm5j&hL)De7RJWOX=x@V$wtY^ UX{pJ{rpabTMoF9V8DB*L0LSPRRR910 delta 64 zcmcb)jq&C-#tn9ihQ%qld8w6#+4^Q?7HJj+DVB)_W@%!a6QTeB delta 62 zcmdn4vt4I{52ImmN^V|irD3+dnVChJg+YpCqJdeOSxQQhrGZl5?}xT diff --git a/galactic/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/galactic/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index 77139ff9588137957024703aa59ace9b30e2d717..237c10dafcd0b35670a831735353c468b1309575 100644 GIT binary patch delta 66 zcmX?q&mKFx7W+^F#sm5j&hL)De7RJWOX=x@V$wtY^ UX{pJ{rpabTMoF6s8F#z@0Kj<_mH+?% delta 64 zcmZ2^g?Z%_<_!*vhQ%qld8w6#+4^Q?7HJj+DVB)_W@%3-CWmc8BMOm4?fuW^^L8@6wieaj;nT4UHWwM2_adKLkiAl0ia&lT~ Ra3-yN^V|irD3+dnVChJg+YpCqJdeOSxQQhrGoSc@L RoNStGW@MDKxt_5@6aZed6Bz&i delta 62 zcmZqIYuDT0$7ooblAD)WX_&2VW@eFQVUS{(XkeCRmXeZWX-< delta 62 zcmdm`uuEZs7o%ZuN^V|irD3+dnVChJg+YpCqJdeOSxQQhrG-< delta 62 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 YAAgSG&+GW}3I6QGpSSEgrVuLq2ixB9NdN!< delta 13577 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 diff --git a/galactic/index.html b/galactic/index.html index be774e495e3..0138375f293 100644 --- a/galactic/index.html +++ b/galactic/index.html @@ -152,7 +152,7 @@

Development Organisation and Communication -

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

+

Built on 2024-04-04 at 05:32 GMT

diff --git a/galactic/searchindex.js b/galactic/searchindex.js index 46ed833ff97..0fa37d1dca9 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, 23], "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, "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, "32": 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 617e0aeeb6a..09829e00882 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: d851537d9478619df055750b00fa98d3 +config: aa91f72e5f7d68a30eb87f5a4809a460 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree b/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree index 76a5a155c517d7c5fa0cb9e06a69b65449ba53f8..f368e3b1ec197d88d993bb0964c2d175f2819db1 100644 GIT binary patch delta 9614 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 TCduZO7N!OUsRo-n7*i7g?8y}x delta 64 zcmaERl=1CR#tq?&hQ%qld8w6#+4_dbW@d)wsU`+#DF$ZA29{qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 hCduZO7N!OUsRsI!_i@N>ZfAU5NuFMb&3md<ZfAU5NuFMb&3md<qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 UCduZO7N!OUsRo-98Ch=u0NIHYy#N3J delta 64 zcmaF1jrrL&<_!jnhQ%qld8w6#+4_dbW@d)wsU`+#DF$ZA29{qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 fCduZO7N!OUsRo-98Ml;?u5EH6qv+=7iW|}Zm diff --git a/humble/.doctrees/doc/project_ideas.doctree b/humble/.doctrees/doc/project_ideas.doctree index cbb65a44554ad2cb3574a05655e5b232da9cc201..246ac612f6fdfb0054703d59b7eaf10b12f58495 100644 GIT binary patch delta 64 zcmZ4digEEP#tk}*h6R;bRpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 UCduZO7N!OUsRo;48IKhM0MP>!?EnA( delta 64 zcmZ4digEEP#tk}*hQ%qld8w6#+4_dbW@d)wsU`+#DF$ZA29{qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 TCduZO7N!OUsRo-f8HJMo?2#0! delta 64 zcmex!jPcJg#tjyXhQ%qld8w6#+4_dbW@d)wsU`+#DF$ZA29{qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 TCduZO7N!OUsRoqbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 TCduZO7N!OUsRoqbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 ZCduZO7N!OUsRsI!{aKwi?`3=*1OOn`7DE64 delta 69 zcmZ3ol5xpO#tj~fM#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{nBC#tlJ?Mg^5wRpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 ZCduZO7N!OUsRsI!PjY!|KEqg?0RT%;7Y+ab delta 69 zcmdmgg>nBC#tlJ?M#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{fuAnRyfY delta 64 zcmZo~WNB|?+2F@$Se%lZms)9fuAjaL)_ diff --git a/humble/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index dc2a699f6ecb2b0406ce6519588e1cc5e0166a09..0184c121ad64d8a007f1a800cee52e38ad2f3eca 100644 GIT binary patch delta 64 zcmezKh4If9#tn9ih6R;bRpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 TCduZO7N!OUsRo<#8F?!K1Tz&R delta 64 zcmezKh4If9#tn9ihQ%qld8w6#+4_dbW@d)wsU`+#DF$ZA29{*E1eE1OOn97W@DJ delta 69 zcmX@u!F;fTd4n0FQE^IcUTURbw!UGqnVF$^s)<2bih)_Ofu&henqhLXVWLTzxrL!+ Znn9vvszF+!g@yj)37f<>*E1eE1OOC^7XknP 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 21cd93f6f6cc9131ee3e8ffa8a7b2a33ef41cad3..3cdfb0d0cb3af9c7da63fdc92ba9754d1f35fbd2 100644 GIT binary patch delta 62 zcmeB_>Xh2h&th0mnN?+OQC6mJkY;3=oRVT{kz$%;Zj_j2n38H>kY<@^l5Ap@YGRUX RZfRj^V32CC`2dS22LN>768iuE delta 62 zcmeB_>Xh2h&th1dlAD)WX_&2Vm~3WdXr5|fkd|U#mTX{YmXv0goNSnAl4fpUXqje^ RXqjq|mS|zI`2dS22LNck69E7K 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 3319e5820b062e7294872801536b63cab92fa75b..d6030d73c481fe2fcf44e62915e2134e6ba65421 100644 GIT binary patch delta 76 zcmeBfWbJNb-4MlSR8W~!Wo}Vcrf-mDWSN|jVrr3Mnq+R2m}Z!gYG9CNnP`%1VwP%R gl5B2iVQOHIYM?)fUwpExfN1j$#_c;8886!b0Gm-4QUCw| delta 76 zcmeBfWbJNb-4MlSRGgBVms)9qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 TCduZO7N!OUsRo;S86*1u*xMBC delta 64 zcmaDhpXu3rrVTNShQ%qld8w6#+4_dbW@d)wsU`+#DF$ZA29{qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 ZCduZO7N!OUsRsI!Cvb^xUdmXp7XVKA7V`iA delta 69 zcmbRHk7@2drVTNSM#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{7P0^U 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 43c07df341e66bd1ab0e4b9b93be56d14eb60c8b..501dab16b4c97143acc6b689f5e763f9ae7f212b 100644 GIT binary patch delta 73 zcmdn8mTAjcrVUYyMg^5wRpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 dCduZO7N!OUsRsI!9i>z!cTVHkyqEF&6ab9Z7z!cTVHkyqEF&6aawh7=8c% 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 2a61915632cb180ebcafd469ec1b3e5dc9b313ca..ab818afea3356e077dbfe60397ce15b3b5145117 100644 GIT binary patch delta 73 zcmZ4UmTApfrVUYyMg^5wRpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 dCduZO7N!OUsRsI!1^L7$Z{-!;yo2$}767I!7-9eb delta 73 zcmZ4UmTApfrVUYyM#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 dCduZO7N!OUsRsI!75K#`_wtEu-of~2A^>#H7iIte delta 73 zcmbQWoN3l_rVUYyM#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{RP7i<6k diff --git a/humble/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree index c42278fad450ed5b113d77531b451a5115707c91..9940fb1006ebb118af2aa93ebe80125aa6f9d550 100644 GIT binary patch delta 73 zcmdmSfN948rVUYyMg^5wRpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 dCduZO7N!OUsRsI!C&s8w=3T(Ec`sx2JOG=R7*qfN delta 73 zcmdmSfN948rVUYyM#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 dCduZO7N!OUsRsI!?>VV9Z)DuQk&)4SJ^;K|7?1z} delta 73 zcmaEHknP1mwhd8?M#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{VV9Z)DuQk&)4SJ^-+57?uD4 diff --git a/humble/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree index 5c62edb406c3cef616ab8ee7aed098e8e67a6cb3..53486564b79e84c16cc7fbee980e7d505849570b 100644 GIT binary patch delta 73 zcmX^2mGRtH#tl)7Mg^5wRpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 dCduZO7N!OUsRsI!5Aujlo?0cfc`u`2B>=@;7@Gh9 delta 73 zcmX^2mGRtH#tl)7M#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{=f`7@+_F 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 7723d4f6b6d8390b8a2f98c780d6f284a6dcbb4c..3a9b1557944ca95799ebda9303e0d8e2a65028b1 100644 GIT binary patch delta 76 zcmex4kLl+;rVUYyrUjK*Rpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 gCduZO7N!OUsRsHf`N@+%Mu<#4$Irca9pmX<0RL_pbpQYW delta 76 zcmex4kLl+;rVUYyro}0_d8w6#+4_dbW@d)wsU`+#DF$ZA29{WSJA!)R1cnN?+OQC6mJkY;3=oRVT{kz$%;Zj_j2n38H>kY<@^l5Ap@YGRUX aZfRj^V32B{KlviR=;Rn-xy=U|y|n>E=N3i) delta 71 zcmeB)>WSJA!)R2TlAD)WX_&2Vm~3WdXr5|fkd|U#mTX{YmXv0goNSnAl4fpUXqje^ aXqjq|mS|z2KlviR=;Rn-xy=U|y|n>2`xZ<9 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 ae52afc9db30a6b5beba43460737b94d7c88d552..1fb7e9aa6139cbe071254c05168e3733c11151ed 100644 GIT binary patch delta 127 zcmaFg!2G^}d4mt5VL@e9mAOS(nZ7}qk!5m9im644X_C27Vwzz}s)0e8Wui&4iCLR diff --git a/humble/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/humble/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index 18dfccacc91df45c2b3de4a9033d092d3fafdca1..2229d06cfe9ac7975b8ea95ccdf2258506520bff 100644 GIT binary patch delta 67 zcmcbVaw%nl2BT3yWmc8BMOm4?L7I_ea!QJ+MT%*Xxlv-8VM?ljL7HWvNwSGqs)qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 UCduZO7N!OUsRo-18F#(}0MO(WXaE2J delta 64 zcmZ2=jd|5I<_!*vhQ%qld8w6#+4_dbW@d)wsU`+#DF$ZA29{3-CWmc8BMOm4?L7I_ea!QJ+MT%*Xxlv-8VM?ljL7HWvNwSGqs)3-yN^V|irD3+dVX~Q-p?Ru_L0XD|S+aqpSyGx|aH 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 70b7713499f650956859206b1da00f3e2b9cea55..5379494949662e9dd3c7491542ad8113b7de84e2 100644 GIT binary patch delta 127 zcmcaSf${PL#tjLKh6R;bRpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 kCduZO7N!OUsRo-TGPYZju5I!}MzhHY76zNw+b-b(07qyjHUIzs delta 127 zcmcaSf${PL#tjLKhQ%qld8w6#+4_dbW@d)wsU`+#DF$ZA29{qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 ZCduZO7N!OUsRsI!{Y&jPPiN#?2>>yL7C`_2 delta 69 zcmZ2_m1*f!rVVP0M#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{>O57DoU8 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 6ef7ea168a6172708bdb2e2c6c47b33edea02687..c233f1020c164c496ed557ceb9fa8a98356d3309 100644 GIT binary patch delta 69 zcmX@Img&e^rVTZWMg^5wRpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 ZCduZO7N!OUsRsI!<6G@Fzh%5W1pq~_7q0*S delta 69 zcmX@Img&e^rVTZWM#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 ZCduZO7N!OUsRsI!9eHdvA7iXo1prEq7Rvwt delta 69 zcmdmYgK6IlrVSB{M#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 ZCduZO7N!OUsRsI!`-E*bpJX(c1pr$P7XbhO delta 69 zcmeylo$2RxrVUYyM#U+)d8w6#+4_dbW@d)wsU`+#DF$ZA29{kY<@^l5Ap@YGRUX RZfRj^V32CCIh;{j3IJt75<>t0 delta 62 zcmZoNZ!+JY#%NfalAD)WX_&2Vm~3WdXr5|fkd|U#mTX{YmXv0goNSnAl4fpUXqje^ RXqjq|mS|zIIh;{j3IJIk5=j66 diff --git a/humble/.doctrees/doc/supported_robots/supported_robots.doctree b/humble/.doctrees/doc/supported_robots/supported_robots.doctree index 588c93c3492e9271dbe13b28ecb2b82ba1bbeb4d..94f2f16d9cc60ee35a94acbf41bf03ecb89dd609 100644 GIT binary patch delta 64 zcmX@QgYoDN#trd|h6R;bRpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 UCduZO7N!OUsRo-TFm8<{9 delta 64 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 diff --git a/humble/.doctrees/index.doctree b/humble/.doctrees/index.doctree index 466e5b938d7f3b2c71c771ad1808dc6e45e35284..31fd9e814d76c184cfc590bdf4d0da4b94739c2f 100644 GIT binary patch delta 113 zcmX?ko$=&##tmkSh6R;bRpu6DW%>qbMwZDbDW(=Frb*^TiD`x@sRjmVmWd|GCT6K7 zCduZO7N!OUsRo64A P)n+sTu{L{#Hi!WLmG~v% delta 113 zcmX?ko$=&##tmkShQ%qld8w6#+4_dbW@d)wsU`+#DF$ZA29{64A P)n+sVu{L{#Hi!WLii9QP diff --git a/humble/doc/acknowledgements/acknowledgements.html b/humble/doc/acknowledgements/acknowledgements.html index b0a3369a52c..d3bda2f003a 100644 --- a/humble/doc/acknowledgements/acknowledgements.html +++ b/humble/doc/acknowledgements/acknowledgements.html @@ -209,13 +209,13 @@

Maintainers -
+
- 5921 + 5648
-
+
@@ -223,7 +223,7 @@

Maintainers
0.71
-
+
- + @@ -421,18 +421,18 @@

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

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

Maintainers
0.80
-
+
- + @@ -546,15 +546,15 @@

Maintainers -
+
0.52
-
+
@@ -575,23 +575,23 @@

Maintainers -
+
0.91
-
+
- + - Fetched on 2024-04-03 03:26:29 UTC + Fetched on 2024-04-04 03:27:44 UTC