From 8bb9c4253c02bb47a73786abb15791b936c88b0a Mon Sep 17 00:00:00 2001 From: bmagyar Date: Tue, 9 Apr 2024 05:32:59 +0000 Subject: [PATCH] deploy: 0433b9d034c822674218716e83a93d2069ac474f --- 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 1211507 -> 1211507 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 3559048 -> 3559048 bytes humble/.doctrees/index.doctree | Bin 27593 -> 27593 bytes humble/index.html | 2 +- humble/searchindex.js | 2 +- iron/.buildinfo | 2 +- .../acknowledgements/acknowledgements.doctree | Bin 1211507 -> 1211507 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 3595437 -> 3595437 bytes iron/.doctrees/index.doctree | Bin 27549 -> 27549 bytes iron/index.html | 2 +- iron/searchindex.js | 2 +- master/.buildinfo | 2 +- .../acknowledgements/acknowledgements.doctree | Bin 1211507 -> 1211507 bytes .../doc/contributing/contributing.doctree | Bin 25325 -> 25325 bytes .../doc/gazebo_ros2_control/doc/index.doctree | Bin 41073 -> 41073 bytes .../getting_started/getting_started.doctree | Bin 52209 -> 52209 bytes .../doc/gz_ros2_control/doc/index.doctree | Bin 38642 -> 38642 bytes .../doc/migration/differences_to_ros1.doctree | Bin 34666 -> 34666 bytes .../.doctrees/doc/migration/migration.doctree | Bin 4874 -> 4874 bytes master/.doctrees/doc/project_ideas.doctree | Bin 29987 -> 29987 bytes .../.doctrees/doc/resources/resources.doctree | Bin 85475 -> 85475 bytes .../doc/resources/roscon2023_workshop.doctree | Bin 15191 -> 15191 bytes .../doc/controller_chaining.doctree | Bin 27598 -> 27598 bytes .../controller_manager/doc/userdoc.doctree | Bin 36515 -> 36515 bytes .../doc/ros2_control/doc/index.doctree | Bin 6372 -> 6372 bytes .../ros2_control/doc/migration/Foxy.doctree | Bin 15311 -> 15311 bytes .../ros2_control/doc/migration/Iron.doctree | Bin 10674 -> 10674 bytes .../different_update_rates_userdoc.doctree | Bin 29658 -> 29658 bytes .../doc/hardware_components_userdoc.doctree | Bin 8564 -> 8564 bytes .../hardware_interface_types_userdoc.doctree | Bin 28533 -> 28533 bytes .../doc/mock_components_userdoc.doctree | Bin 17549 -> 17549 bytes .../writing_new_hardware_component.doctree | Bin 65671 -> 65671 bytes .../ros2controlcli/doc/userdoc.doctree | Bin 31078 -> 31078 bytes .../doc/ros2_control_demos/doc/index.doctree | Bin 50243 -> 50243 bytes .../doc/run_from_docker.doctree | Bin 3337 -> 3337 bytes .../example_1/doc/userdoc.doctree | Bin 82059 -> 82059 bytes .../example_10/doc/userdoc.doctree | Bin 36838 -> 36838 bytes .../example_11/doc/userdoc.doctree | Bin 34101 -> 34101 bytes .../example_12/doc/userdoc.doctree | Bin 48925 -> 48925 bytes .../example_14/doc/userdoc.doctree | Bin 37903 -> 37903 bytes .../example_2/doc/userdoc.doctree | Bin 38580 -> 38580 bytes .../example_3/doc/userdoc.doctree | Bin 46764 -> 46764 bytes .../example_4/doc/userdoc.doctree | Bin 37786 -> 37786 bytes .../example_5/doc/userdoc.doctree | Bin 41016 -> 41016 bytes .../example_6/doc/userdoc.doctree | Bin 33191 -> 33191 bytes .../example_7/doc/userdoc.doctree | Bin 106731 -> 106731 bytes .../example_8/doc/userdoc.doctree | Bin 31438 -> 31438 bytes .../example_9/doc/userdoc.doctree | Bin 31614 -> 31614 bytes .../doc/userdoc.doctree | Bin 11532 -> 11532 bytes .../admittance_controller/doc/userdoc.doctree | Bin 48384 -> 48384 bytes .../doc/userdoc.doctree | Bin 9921 -> 9921 bytes .../diff_drive_controller/doc/userdoc.doctree | Bin 51387 -> 51387 bytes .../doc/controllers_index.doctree | Bin 16068 -> 16068 bytes .../doc/writing_new_controller.doctree | Bin 60989 -> 60989 bytes .../effort_controllers/doc/userdoc.doctree | Bin 8222 -> 8222 bytes .../doc/userdoc.doctree | Bin 18515 -> 18515 bytes .../doc/userdoc.doctree | Bin 12877 -> 12877 bytes .../gripper_controllers/doc/userdoc.doctree | Bin 13842 -> 13842 bytes .../doc/userdoc.doctree | Bin 16591 -> 16591 bytes .../doc/userdoc.doctree | Bin 24581 -> 24581 bytes .../doc/parameters.doctree | Bin 41661 -> 41661 bytes .../doc/trajectory.doctree | Bin 38596 -> 38596 bytes .../doc/userdoc.doctree | Bin 44037 -> 44037 bytes .../pid_controller/doc/userdoc.doctree | Bin 34883 -> 34883 bytes .../position_controllers/doc/userdoc.doctree | Bin 8292 -> 8292 bytes .../doc/userdoc.doctree | Bin 14796 -> 14796 bytes .../doc/userdoc.doctree | Bin 3871 -> 3871 bytes .../doc/userdoc.doctree | Bin 39929 -> 39929 bytes .../tricycle_controller/doc/userdoc.doctree | Bin 30728 -> 30728 bytes .../doc/userdoc.doctree | Bin 10475 -> 10475 bytes .../velocity_controllers/doc/userdoc.doctree | Bin 8292 -> 8292 bytes .../doc/simulators/simulators.doctree | Bin 7042 -> 7042 bytes .../supported_robots/supported_robots.doctree | Bin 23621 -> 23621 bytes master/.doctrees/environment.pickle | Bin 3697912 -> 3697912 bytes master/.doctrees/index.doctree | Bin 27539 -> 27539 bytes master/index.html | 2 +- master/searchindex.js | 2 +- 245 files changed, 15 insertions(+), 15 deletions(-) diff --git a/foxy/.buildinfo b/foxy/.buildinfo index 384b8615bf0..1fc422dc988 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: 010b96172a1cad17bade23de8fa9bbfa +config: e65e5fd9bcf8b4c1e26ff7b89b798f1d tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree b/foxy/.doctrees/doc/acknowledgements/acknowledgements.doctree index ea1959fbd140bb651da9a2ea5b90c9fb738fff70..5917a171064bdc72b3957f132af87f3fa8ca9eab 100644 GIT binary patch delta 66 zcmeCO>ayBk#Aujfl$n~IVU(k9mS|vNW@egdm}X*TVs31hVr*oQW}cd6WMQ6YV31~% VWSE?mVw`F^*^otSb0yayBk#AujbR9I$|os^?*nUa=hnrvojk!+D@YG`I;W?^V(U}BhJk!qZpl4y}+ VVs2(;mSk=`*^otSb0y6%NgcuWM delta 64 zcmdnf&$OqXX@eG{VSZ6znNfC9j=p6|TB2#PnW;sxMWU&pnUR@=p`n3^VTwhnacWAU TMUsiRnVDIVx$)*`#>6%Np^g)t diff --git a/foxy/.doctrees/doc/getting_started/getting_started.doctree b/foxy/.doctrees/doc/getting_started/getting_started.doctree index e634a2f90aa881808ac42801225ba66681faec50..477a2510937d03c16c411e2a6415af8506a58da2 100644 GIT binary patch delta 64 zcmez0#r(gEd4mC?VUAH|YI=rIj=ouWk%UaIr^33;4QD$m-hEa~bS)zf7nVD&-VVa4ViMg?1im{PJnt5uPk%f7pfkB#4 Rl3{XMigBvx=5odsB>;jK6Gs35 delta 62 zcmezE{@Z3-)A9iw56QD$m-hEa~bS)zf7nVD&-VVa4ViMg?1im{PJnt5uPk%f7pfkB#4 Rl3{XMigBvx=6uH6q5xgK672v0 delta 62 zcmX@5cS>)A9iw4>QDK=;c2bVMWlCD2X|kEAMY2VrsiB#XnT4UDfr(*?MXGUXN}@%Q RiMg4XS(3T&=6uH6q5yj|6D0ru 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 8c738d55efcef81e2f7745e219d7c233b637fe41..2827cbbee1216bfc71da1e152de2ea4ba8570eb6 100644 GIT binary patch delta 62 zcmcbcc{g)|1EXP%QD$m-hEa~bS)zf7nVD&-VVa4ViMg?1im{PJnt5uPk%f7pfkB#4 Rl3{XMigBvx=0e6CV*r9K6FdL_ delta 62 zcmcbcc{g)|1EXPnQDK=;c2bVMWlCD2X|kEAMY2VrsiB#XnT4UDfr(*?MXGUXN}@%Q RiMg4XS(3T&=0e6CV*sC|6LbIo diff --git a/foxy/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/foxy/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index b81823d789bdd748903e9008c92f49793d031238..4e33ff40deb12a10f40dfebece7be453bf4472ff 100644 GIT binary patch delta 64 zcmdmYka6EZ#tn9ihB-!=sp%O;Ir?Ua1}0`^rm2Q$CT1q)#)c`zMiy!2scA+Q=7|Od TX+}wg$!RIZsivFr8U5n{p%@dp delta 64 zcmdmYka6EZ#tn9ihWSN>Wk%UaIr^3~ diff --git a/foxy/.doctrees/doc/ros2_control_demos/doc/index.doctree b/foxy/.doctrees/doc/ros2_control_demos/doc/index.doctree index 99c5a0dfba562771b5f520bd898b3f22d0a74ed5..66f19379ea5f86ee8a357b8a97b2bff9b2ee8f2b 100644 GIT binary patch delta 62 zcmV~$+YNvq3;@6|k$us!4we>8_;fH6$6*=owr_v6;G#R`MeEQGqFMt}RE%*jwX{fT P)&Y`E^c)=Zo8^HYd=(QN delta 62 zcmcbed^>rA8KYr-QDK=;c2bVMWlCD2X|kEAMY2VrsiB#XnT4UDfr(*?MXGUXN}@%Q RiMg4XS(3T&=5)pq0|1$e6IB2J 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 b5ed94ea5895c7553aae73032eca8fa502407eff..d57174cd7de04340800e550e59fe6b32aa082031 100644 GIT binary patch delta 62 zcmdn4vt4I{52Im@QD$m-hEa~bS)zf7nVD&-VVa4ViMg?1im{PJnt5uPk%f7pfkB#4 Rl3{XMigBvx=32&GA^=v?61@Nb delta 62 zcmdn4vt4I{52ImzQDK=;c2bVMWlCD2X|kEAMY2VrsiB#XnT4UDfr(*?MXGUXN}@%Q RiMg4XS(3T&=32&GA^>zr67>K8 diff --git a/foxy/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/foxy/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index c3493c3a8b410df826a28f2cf1344f4292772414..e3b174d104484fd37d8c11b143aee2d08dd53a49 100644 GIT binary patch delta 71 zcmdm$vMXhS2BT4qQD$m-hEa~bS)zf7nVD&-VVa4ViMg?1im{PJnt5uPk%f7pfkB#4 bl3{XMigBu`{$vLw(a95}MK`xFZZiM?9>W#8 delta 71 zcmdm$vMXhS2BT4aQDK=;c2bVMWlCD2X|kEAMY2VrsiB#XnT4UDfr(*?MXGUXN}@%Q biMg4XS(3T2{$vLw(a95}MK`xFZZiM?J~0*Z 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 0ddc1336223db170392fe133f9417343b82612ed..8a5b210bc9f375c62c25b4f3662f3c922eb22455 100644 GIT binary patch delta 64 zcmbPwg?Z`~<_!*vhB-!=sp%O;Ir?Ua1}0`^rm2Q$CT1q)#)c`zMiy!2scA+Q=7|Od UX+}wg$!RIZsivC?8JD~O0GQJhbpQYW delta 64 zcmbPwg?Z`~<_!*vhWSN>Wk%UaIr^33;4QD$m-hEa~bS)zf7nVD&-VVa4ViMg?1im{PJnt5uPk%f7pfkB#4 Rl3{XMigBvx=5ofRd;mhX5=a05 delta 62 zcmbQEFh^m78>3-SpZn@5=a05 delta 62 zcmZ2&yV`a`0Ha}kQDK=;c2bVMWlCD2X|kEAMY2VrsiB#XnT4UDfr(*?MXGUXN}@%Q RiMg4XS(3T&=0-*>Spars5`X{z 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 a91be10dd9c0d6df65d6fccb56b96146368bea37..8ecbaacf14e1c76efff0917b110d2c91ddcb44a2 100644 GIT binary patch delta 62 zcmaE<@ls=hAERN8QD$m-hEa~bS)zf7nVD&-VVa4ViMg?1im{PJnt5uPk%f7pfkB#4 Rl3{XMigBvx=6c3gLI7=_6H5R9 delta 62 zcmaE<@ls=hAERM@QDK=;c2bVMWlCD2X|kEAMY2VrsiB#XnT4UDfr(*?MXGUXN}@%Q RiMg4XS(3T&=6c3gLI8^u6N3N% 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 48fa1599daeef9bf946e2d1227f9588d105dcb4c..e7339077987744f871cee0c316688e2b94219a10 100644 GIT binary patch delta 64 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 delta 13782 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 diff --git a/foxy/.doctrees/index.doctree b/foxy/.doctrees/index.doctree index 3caccc65f968574b9029a84e3bf3c5b983bf0b3f..50bb18fa8a95d0a7f10c96f053951b0b20d2c4f8 100644 GIT binary patch delta 87 zcmdmZpK;@T#tmkShB-!=sp%O;Ir?Ua1}0`^rm2Q$CT1q)#)c`zMiy!2scA+Q=7|Od pX+}wg$!RIZsivFL89hRojEyF54EqV9&WB4+ZU|@Hd?x&Wk%UaIr^3Development Organisation and Communication -

Built on 2024-04-09 at 05:14 GMT

+

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

diff --git a/foxy/searchindex.js b/foxy/searchindex.js index 029e01c6fea..73338c8f225 100644 --- a/foxy/searchindex.js +++ b/foxy/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/getting_started/getting_started", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_controller/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/getting_started/getting_started.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_controller/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "index.rst"], "titles": ["Acknowledgements", "Pull Requests", "Differences to ros_control (ROS1)", "Getting Started", "Project Ideas for GSoC 2022", "Resources", "Controller Manager", "API Documentation", "Fake Components", "Command Line Interface", "Demos", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "joint_state_controller", "joint_trajectory_controller", "position_controllers", "tricycle_controller", "velocity_controllers", "Welcome to the ros2_control documentation - Foxy!"], "terms": {"The": [0, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 20, 22, 24], "project": [0, 1, 24], "ha": [0, 1, 3, 4, 5, 13, 19], "receiv": [0, 2], "major": 0, "contribut": [0, 1, 5], "from": [0, 1, 2, 3, 5, 6, 8, 9, 11, 13, 15, 17, 20, 22, 24], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 12, 13, 20, 24], "compani": [0, 5], "institut": 0, "support": [0, 2, 3, 5, 8, 9, 13, 20, 24], "rosin": 0, "ro": [0, 1, 3, 4, 6, 8, 9, 19, 24], "industri": [0, 3, 4], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 10, 11, 15, 22, 24], "softwar": [0, 3], "compon": [0, 5, 6, 7, 11, 15, 17, 22, 24], "more": [0, 1, 2, 3, 4, 8, 13], "inform": [0, 8, 13, 24], "http": [0, 1, 3, 4], "eu": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 14, 15, 16, 18, 19, 20, 21, 23, 24], "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 4, 5, 10, 13, 24], "horizon": 0, "2020": 0, "research": [0, 5], "innov": 0, "programm": 0, "under": [0, 5, 13, 24], "grant": 0, "agreement": 0, "732287": 0, "first": [1, 2, 13], "thank": 1, "you": [1, 2, 3, 5, 8, 13, 24], "consid": [1, 9], "ros2_control": [1, 3, 5, 6, 8, 10, 13], "As": [1, 13], "an": [1, 2, 3, 4, 5, 8, 9, 13, 20], "open": [1, 20], "sourc": [1, 3, 5, 13], "we": [1, 4, 5], "welcom": 1, "each": [1, 3, 4], "contributor": 1, "regardless": 1, "background": 1, "experi": 1, "To": [1, 2, 3, 24], "reduc": [1, 8], "entropi": 1, "univers": [1, 4, 5], "our": [1, 3, 4, 5], "vivid": 1, "collabor": 1, "environ": [1, 3, 5], "have": [1, 2, 3, 4, 8, 10, 13, 20], "set": [1, 2, 4, 5, 8, 9, 14, 16, 18, 20, 21, 23], "up": [1, 5, 10], "some": [1, 4, 5, 20, 24], "standard": [1, 2, 3, 4, 5, 9, 12, 15], "method": [1, 2, 3, 13], "requir": [1, 2, 3, 4, 13], "ar": [1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 17, 18, 20, 22, 24], "limit": [1, 4, 5, 11, 22], "scope": 1, "your": [1, 2, 5, 8, 13, 24], "pr": 1, "should": [1, 2, 4, 5, 6, 9, 10, 13, 18], "do": [1, 2, 3, 4, 5, 6, 13, 20], "one": [1, 2, 3, 4, 5, 13, 15, 24], "thing": 1, "avoid": [1, 13], "ad": [1, 4, 8, 13, 18], "random": 1, "fix": [1, 2], "put": [1, 13], "those": [1, 2, 3, 4, 8, 13, 15, 20], "separ": [1, 2, 3], "give": [1, 3, 5, 24], "descript": [1, 2, 5, 13], "titl": 1, "add": [1, 2, 13], "short": [1, 13, 24], "summari": [1, 5, 24], "make": [1, 2, 4, 5, 24], "sure": [1, 4, 24], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 23, 24], "green": 1, "don": 1, "t": [1, 6], "afraid": 1, "review": [1, 4, 24], "maintain": [1, 3, 4], "new": [1, 5, 12, 20, 24], "code": [1, 2, 4, 5, 13], "test": [1, 4, 8, 10, 13], "If": [1, 2, 3, 6, 13, 15, 20, 24], "function": [1, 2, 3, 4, 5], "alwai": 1, "exercis": 1, "serv": [1, 3, 4], "live": [1, 5], "origin": [1, 5], "intent": [1, 8], "section": [1, 2, 13], "target": [1, 12, 13, 20], "also": [1, 2, 3, 4, 5, 13], "read": [1, 2, 3, 13, 18, 20], "understand": [1, 4], "how": [1, 4, 5, 13], "handl": [1, 2, 4, 5, 20], "organ": [1, 5, 24], "guidelin": 1, "especi": [1, 2], "applic": [1, 3, 5, 6], "ros2_control_demo": [1, 3, 24], "pleas": [1, 24], "keep": [1, 13], "mind": [1, 13], "work": [1, 4, 5, 11, 13, 14, 16, 20, 21, 22, 23, 24], "fork": 1, "when": [1, 2, 3, 4, 8, 9, 13, 20], "submit": [1, 5], "That": [1, 13], "wai": [1, 13, 15], "main": [1, 3, 4, 5, 6, 8, 13, 24], "repo": [1, 3], "clean": [1, 4], "featur": [1, 5, 8, 24], "branch": 1, "all": [1, 2, 3, 4, 5, 8, 10, 13, 18, 20], "check": [1, 2, 3, 4, 8, 10, 13, 20, 24], "satisfi": 1, "befor": [1, 2, 6, 13], "thei": [1, 2, 3, 4, 5, 8, 9, 12, 13, 20], "can": [1, 2, 3, 4, 5, 7, 8, 13, 15, 19, 20, 24], "must": 1, "approv": 1, "two": [1, 3, 4, 6, 13, 15], "explicitli": 1, "onli": [1, 2, 3, 4, 5, 6, 9, 13, 15, 20], "except": 1, "other": [1, 2, 3, 5, 13], "activ": [1, 2, 3, 9], "where": [1, 4, 13], "back": 1, "traceabl": 1, "discuss": [1, 5, 24], "suffici": [1, 15], "note": [1, 3, 10, 24], "still": [1, 2, 3], "encourag": 1, "help": [1, 6, 9, 13], "u": [1, 6], "increas": 1, "pace": 1, "veri": [1, 2, 4], "like": [1, 2, 3, 4, 5], "find": 1, "issu": [1, 4, 24], "nobodi": 1, "els": 1, "see": [1, 2, 3, 10, 13, 15, 17, 20], "squash": 1, "commit": 1, "messag": [1, 4, 6, 9, 15, 17, 18, 20, 24], "comment": 1, "fixup": 1, "linter": 1, "us": [1, 2, 3, 4, 5, 8, 9, 12, 14, 15, 16, 17, 18, 19, 21, 23, 24], "pre": 1, "correct": [1, 2, 20], "header": [1, 13], "address": [1, 4], "similar": [1, 3, 5], "mean": [1, 2, 8], "result": [1, 3], "exactli": 1, "1": [1, 3, 4, 5, 8, 13], "cowboi": 1, "style": [1, 13], "over": [1, 4], "weekend": 1, "It": [1, 2, 3, 4, 6, 15], "doesn": 1, "matter": 1, "trivial": [1, 8], "peopl": 1, "chanc": 1, "proper": [1, 20], "Be": 1, "awar": 1, "impact": 1, "time": [1, 2, 4, 5, 6, 8, 9, 11, 13, 15, 20, 24], "proport": 1, "its": [1, 2, 3, 4, 5, 15, 17], "ping": 1, "them": [1, 3, 4, 6, 13, 18], "necessari": 1, "repeatedli": 1, "start": [1, 2, 5, 6, 9, 10, 13, 20, 24], "part": [1, 4, 5, 13], "For": [1, 3, 4, 5, 8, 13, 20], "detail": [1, 2, 3, 8, 13], "thoma": 1, "cokela": 1, "info": 1, "tutori": 1, "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 5, 6, 9, 12, 13, 15, 17], "develop": [1, 5, 8, 10, 13], "stabl": [1, 4], "against": 1, "accept": [1, 13, 14, 16, 21, 23], "api": [1, 4], "abi": 1, "chang": [1, 2, 3, 5, 9, 13, 20], "e": [1, 2, 3, 4, 5, 8, 13, 14, 15, 16, 18, 20, 21, 23, 24], "name": [1, 2, 3, 5, 6, 8, 9, 13, 15, 17, 18, 20], "convent": 1, "master": [1, 3, 4], "semi": 1, "binari": 1, "good": [1, 4], "same": [1, 3, 4, 15], "build": [1, 13], "dai": 1, "2": [1, 3, 5, 8], "ros_distro": 1, "g": [1, 2, 3, 4, 5, 8, 13, 14, 16, 18, 21, 23, 24], "foxi": [1, 3, 5], "galact": 1, "releas": [1, 3, 5], "version": [1, 4], "non": [1, 5, 15], "brake": 1, "distribut": [1, 24], "three": [1, 2, 3, 13], "stage": 1, "current": [1, 4, 9, 20], "futur": [1, 5], "compat": [1, 2, 5], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 24], "packag": [1, 2, 3, 10, 13, 15, 17, 19, 20, 24], "show": [1, 3, 5, 6, 9], "direct": [1, 2, 4, 13], "local": [1, 18], "possibl": [1, 3, 4, 13, 20], "core": 1, "immedi": 1, "depend": [1, 3, 13, 20], "fail": 1, "expect": [1, 4, 20], "after": [1, 11, 13, 22], "next": [1, 20], "sync": 1, "abl": 1, "potenti": [1, 13], "mid": 1, "robothw": 2, "rigid": 2, "ani": [2, 3, 5, 13], "imposs": 2, "extend": [2, 3, 4, 13], "exist": [2, 3, 4, 6, 13], "addit": [2, 4], "sensor": [2, 3, 4, 8, 12], "actuat": [2, 3, 4, 8], "tool": [2, 4, 5], "without": [2, 3, 8, 13], "combinedrobothardwar": 2, "drawback": [2, 24], "solut": [2, 5], "optim": 2, "combin": [2, 8, 20], "extern": [2, 3, 4, 8], "defin": [2, 3, 4, 8, 12, 13, 15, 17, 18, 20], "system": [2, 3, 4, 5, 10, 20, 24], "composit": [2, 5], "basic": [2, 3, 4, 5, 13], "physic": [2, 3, 8], "cell": [2, 15], "surround": 2, "describ": [2, 3], "multi": [2, 3, 4, 5, 10], "gripper": [2, 3, 8], "out": [2, 11], "box": 2, "allow": [2, 20], "joint": [2, 3, 5, 11, 12, 13, 14, 16, 18, 21, 23, 24], "posit": [2, 3, 5, 6, 9, 10, 12, 14, 16, 20, 21, 23], "veloc": [2, 3, 5, 10, 12, 20, 21, 23], "effort": [2, 12, 14, 16, 20], "hard": [2, 4], "data": [2, 3, 4, 8, 19], "approach": 2, "doe": [2, 13, 20], "enforc": [2, 20], "string": [2, 8, 13, 18, 20], "ensur": [2, 5], "constant": 2, "hardware_interfac": [2, 3, 8, 12, 13], "In": [2, 3, 4, 5, 13], "had": 2, "request": [2, 24], "itself": 2, "took": 2, "care": [2, 4, 13], "regist": 2, "resourc": 2, "conflict": [2, 3, 4], "resourcemanag": 2, "take": [2, 4, 13, 18], "state": [2, 3, 4, 5, 8, 9, 10, 12, 13, 15, 18, 20], "avail": [2, 3, 5, 9, 10, 13, 18, 20], "enabl": [2, 3, 4, 5, 10, 15], "anymor": 2, "controllermanag": 2, "implement": [2, 3, 4, 5, 8, 10, 11, 12, 13, 20, 22, 24], "systeminterfac": [2, 8], "granular": 2, "sensorinterfac": 2, "actuatorinterfac": 2, "abov": [2, 20], "choos": 2, "suitabl": [2, 5], "strategi": [2, 20], "decid": 2, "which": [2, 3, 4, 5, 9, 11, 13, 15, 17, 20, 22], "case": [2, 4, 5, 13, 20, 24], "mayb": 2, "sens": [2, 3, 15], "multipl": [2, 3, 20], "constructor": [2, 13], "initi": [2, 13], "variabl": [2, 4, 13], "need": [2, 3, 4, 5, 13], "commun": [2, 3, 4, 5], "default": [2, 3, 8, 18, 20], "configur": [2, 3, 4, 5, 6, 9, 10, 13, 20], "paramet": [2, 5, 13], "pars": [2, 7], "urdf": 2, "snippet": 2, "hardwareinfo": 2, "here": [2, 7, 13, 19, 20], "cross": 2, "valu": [2, 3, 4, 8, 13, 20], "export_": 2, "_interfac": 2, "joint_a2": 2, "extract": [2, 11, 22], "sensibl": 2, "stop": [2, 5, 6, 9, 10, 11, 22], "usual": [2, 8, 13], "includ": [2, 4, 9, 13], "command": [2, 3, 4, 5, 7, 8, 10, 12, 13, 14, 16, 20, 21, 23, 24], "safe": [2, 11, 13, 20, 22], "interrupt": [2, 6], "stream": [2, 5], "write": [2, 3, 4, 5, 12], "exchang": [2, 4], "equival": 2, "forget": 2, "pluginlib_export_class": [2, 13], "macro": [2, 3, 13], "end": [2, 3, 13, 20], "cpp": [2, 13], "file": [2, 3, 4, 5, 6, 8, 13, 20], "creat": [2, 3, 5, 8, 13], "xml": [2, 13], "librari": [2, 3, 4, 9, 13], "pluginlib": [2, 3, 13], "exampl": [2, 3, 4, 5, 8, 9, 10, 15, 20, 24], "rrbotsystempositiononlyhardwar": [2, 3], "excel": 2, "jointtrajectorycontrol": [2, 9], "real": [2, 4, 5, 8, 13, 18, 20, 24], "critic": [2, 4], "mark": 2, "controllerinterfac": [2, 3, 9, 13], "member": [2, 13], "init": [2, 13], "call": [2, 3, 13], "lifecycl": [2, 3, 5, 6], "declar": [2, 13], "state_interface_configur": [2, 13], "command_interface_configur": [2, 13], "design": [2, 3, 4, 5, 24], "updat": [2, 3, 4, 13], "manag": [2, 4, 5, 7, 9, 13, 24], "option": [2, 6, 8, 9, 13, 15, 18, 20], "on_configur": [2, 13], "on_activ": [2, 13], "on_deactiv": [2, 13], "deactiv": [2, 3], "final": [2, 5], "joint_trajectory_plugin": 2, "ros2": [3, 4, 5, 6, 9, 10, 13, 24], "instal": [3, 13], "automat": [3, 11, 22], "want": 3, "workspac": [3, 13], "folder": [3, 5, 13], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 4], "vc": 3, "import": [3, 13, 20], "src": [3, 13], "found": [3, 7, 13, 19, 20, 24], "github": [3, 4, 7, 12, 24], "repositori": [3, 4, 7, 12, 24], "figur": 3, "cm": 3, "connect": 3, "abstract": [3, 5], "side": [3, 4, 5], "entri": [3, 13], "point": [3, 12, 13, 24], "through": [3, 4, 9, 11, 12, 13, 20, 24], "servic": [3, 4, 6], "node": [3, 6, 8, 9, 10, 13], "executor": 3, "so": [3, 13], "integr": [3, 4, 5, 8, 10, 20, 24], "custom": [3, 8, 15], "setup": [3, 4, 13], "recommend": [3, 5], "ros2_control_nod": 3, "controller_manag": [3, 4, 6, 9, 13, 20], "manual": [3, 4, 13, 24], "assum": 3, "On": 3, "load": [3, 6, 9, 10, 13], "unload": [3, 6, 9], "access": [3, 4, 5, 6, 8, 13], "match": 3, "provid": [3, 4, 5, 6, 8, 10, 12, 13, 20, 24], "report": [3, 4, 18, 24], "error": [3, 4, 13, 20], "execut": [3, 13, 20], "loop": [3, 5, 13, 20], "output": [3, 4, 5, 9, 15, 17, 20], "rm": 3, "driver": [3, 5], "re": 3, "usabl": 3, "flexibl": 3, "motor": [3, 4], "encod": 3, "deal": 3, "theori": [3, 24], "compar": [3, 4, 5], "refer": 3, "measur": [3, 8, 15], "base": [3, 5, 9, 11, 13, 22], "calcul": 3, "input": [3, 4, 5, 11, 20, 22], "visit": 3, "wikipedia": [3, 24], "object": 3, "deriv": 3, "controller_interfac": [3, 4, 9, 13, 15, 17], "export": [3, 13], "plugin": [3, 13], "forwardcommandcontrol": 3, "lifecyclenod": 3, "class": [3, 5, 9, 13], "machin": [3, 4], "document": [3, 4, 5, 8, 19], "latest": 3, "interact": [3, 5, 6, 9], "list": [3, 5, 9, 10, 12, 13, 20, 24], "definit": [3, 12, 13, 15], "srv": 3, "controller_manager_msg": 3, "while": [3, 4, 5, 10, 20], "directli": [3, 24], "line": [3, 7, 13], "via": 3, "friendli": 3, "cli": [3, 7, 9], "auto": 3, "complet": [3, 12], "rang": 3, "common": [3, 4, 12, 24], "capabl": [3, 4], "readm": 3, "md": 3, "ros2controlcli": 3, "realiz": [3, 5], "repres": 3, "dynam": [3, 13], "There": [3, 6, 13], "complex": [3, 4, 5], "dof": 3, "differ": [3, 4, 5, 14, 15, 16, 21, 23], "between": [3, 4, 19, 20], "transmiss": 3, "humanoid": 3, "hand": 3, "logic": 3, "channel": 3, "kuka": 3, "rsi": 3, "A": [3, 5, 13, 20], "relat": [3, 4, 5], "link": [3, 5], "forc": [3, 5, 9, 12], "torqu": [3, 12], "simpl": [3, 4, 5, 10, 13, 19], "valv": 3, "mandatori": [3, 15, 17, 20], "dc": 3, "arduino": 3, "board": 3, "modular": [3, 5], "independ": 3, "explan": 3, "given": [3, 20], "tag": [3, 13, 24], "chosen": 3, "structur": [3, 4, 13, 20], "track": [3, 24], "togeth": 3, "xacro": 3, "hereund": 3, "rrbot": [3, 10], "parallel": [3, 8], "effector": 3, "rrbotsystempositiononli": 3, "ros2_control_demo_hardwar": [3, 10], "param": [3, 6, 8], "example_param_write_for_sec": 3, "example_param_read_for_sec": 3, "joint1": [3, 8, 9, 10, 20], "command_interfac": [3, 20], "min": 3, "max": 3, "state_interfac": [3, 20], "joint2": [3, 9, 10, 20], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "0": [3, 8, 18, 20], "43": 3, "tcp_fts_sensor": 3, "frame_id": [3, 15, 17], "rrbot_tcp": 3, "min_forc": 3, "100": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "23": 3, "3": [3, 4], "gripper_joint": 3, "50": [3, 20], "yaml": [3, 4, 20], "instead": [3, 8, 19, 20], "pure": [3, 20], "launch": [3, 6, 8, 10], "stack": [3, 5], "could": [3, 5, 13, 20], "altern": [3, 20], "script": [3, 4, 13], "skeleton": 3, "orbit": 4, "around": [4, 15, 17], "everyth": [4, 13], "goal": [4, 5, 20, 24], "long": 4, "run": [4, 5, 6, 9], "task": [4, 5, 11], "interfac": [4, 5, 6, 7, 8, 10, 12, 13, 15, 17, 24], "user": 4, "thread": 4, "protect": [4, 13], "memori": [4, 13], "buffer": [4, 24], "control_toolbox": [4, 24], "second": [4, 9, 13, 24], "frequenc": 4, "high": 4, "rate": [4, 20], "khz": 4, "variou": 4, "anoth": 4, "heartbeat": 4, "signal": 4, "sent": 4, "onc": [4, 5], "per": [4, 15], "500": 4, "hz": 4, "failur": 4, "relev": [4, 24], "draft": 4, "trigger": 4, "skill": 4, "prefer": 4, "c": [4, 6, 9, 13], "trick": 4, "mentor": 4, "benc": [4, 5], "magyar": [4, 5], "deni": [4, 5], "\u0161togl": [4, 5], "size": 4, "350": 4, "hour": 4, "difficulti": 4, "about": [4, 8, 24], "org": 4, "gener": [4, 5, 13, 20, 24], "envis": 4, "simul": [4, 8, 10], "gazebo": 4, "ignit": 4, "showcas": [4, 5], "grace": 4, "degrad": 4, "architectur": [4, 5], "roadmap": [4, 24], "place": [4, 13, 20], "gpio": 4, "mode": [4, 20], "switch": [4, 9], "movement": 4, "safeti": 4, "familiar": [4, 24], "medium": 4, "focus": [4, 5], "although": 4, "easi": 4, "therefor": [4, 13, 18, 20], "often": [4, 8, 13], "orchestr": 4, "purpos": 4, "conductor": 4, "scenario": 4, "appropri": 4, "moment": 4, "right": 4, "replac": 4, "level": [4, 5, 14, 16, 20, 21, 23], "moveit2": [4, 5], "simplecontrollermanag": 4, "form": 4, "behavior": [4, 8], "benchmark": 4, "statu": [4, 9, 20], "publish": [4, 11, 15, 17, 18, 20, 22, 24], "topic": [4, 5, 20], "format": 4, "preset": 4, "modul": 4, "specif": [4, 20], "reli": 4, "doubl": [4, 8, 20], "desir": [4, 20], "howev": [4, 6], "both": [4, 5], "improv": 4, "readabl": 4, "earlier": 4, "concept": [4, 5, 8, 10], "were": 4, "introduc": [4, 5], "essenti": 4, "group": [4, 20, 24], "instanc": 4, "imu": [4, 12], "typic": [4, 20], "9": 4, "axi": [4, 15], "aceleromet": 4, "gyroscop": 4, "compass": 4, "respect": [4, 5], "Such": 4, "struct": 4, "low": [4, 5], "profil": 4, "intern": [4, 20], "addition": [4, 24], "few": [4, 5], "pull": 4, "45": 4, "tree": 4, "semantic_compon": 4, "175": 4, "rewrit": [4, 24], "ros_control": [4, 5, 24], "rich": 4, "wa": [4, 13], "motiv": 4, "adopt": 4, "port": 4, "most": [4, 13], "quit": 4, "miss": 4, "diff_drive_control": [4, 9], "joint_trajectory_control": [4, 9], "consist": [4, 20, 24], "identifi": 4, "much": [4, 13], "303": 4, "304": 4, "stretch": 4, "realtime_tool": [4, 24], "81": 4, "302": 4, "unit": 4, "gmock": 4, "cc": 5, "BY": 5, "licens": 5, "author": 5, "either": 5, "down": 5, "below": 5, "my": 5, "company_nam": 5, "tricycl": [5, 12, 22], "control": [5, 7, 8, 9, 10, 11, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24], "event": 5, "pixel": 5, "prefac": 5, "introduct": [5, 20], "johann": 5, "plapp": 5, "toni": 5, "najjar": 5, "kernel": 5, "hardwar": [5, 6, 8, 10, 12, 13, 22, 24], "agnost": 5, "share": [5, 13], "well": [5, 9, 20], "perform": 5, "heavi": 5, "dr": 5, "stogl": 5, "consult": 5, "practition": 5, "guid": [5, 13], "top": 5, "virtual": 5, "talk": 5, "delv": 5, "deeper": 5, "what": 5, "explicit": [5, 20], "chain": 5, "emerg": 5, "handler": 5, "mock": 5, "usag": [5, 6, 9], "openli": 5, "record": 5, "fiveai": 5, "ltd": 5, "best": [5, 13], "focu": 5, "becom": 5, "util": 5, "3rd": 5, "parti": 5, "nav2": 5, "practic": 5, "tip": 5, "hot": 5, "shown": 5, "furthermor": 5, "get": [5, 24], "reus": 5, "inject": 5, "offer": [5, 6], "expos": 5, "problem": [5, 24], "manipul": [5, 20], "path": 5, "plan": [5, 24], "autonom": 5, "navig": 5, "ideal": [5, 8], "made": 5, "mobil": [5, 11, 22], "arm": 5, "extra": [5, 18], "readi": [5, 13], "power": 5, "studi": 5, "ur": 5, "With": 5, "moveit": [5, 8], "ingredi": 5, "scale": 5, "factor": 5, "teach": 5, "pendant": 5, "influenc": 5, "picknik": 5, "inc": 5, "nathan": 5, "brook": 5, "lovro": 5, "ivanov": 5, "andi": 5, "zelenak": 5, "rune": 5, "s\u00f8e": 5, "knudsen": 5, "onlin": [5, 13], "trajectori": [5, 12, 24], "admitt": 5, "One": 5, "reason": 5, "upgrad": 5, "ros1": 5, "better": 5, "realtim": [5, 11, 20, 22, 24], "contact": 5, "insert": 5, "singl": 5, "waypoint": [5, 12, 20], "mani": [5, 13], "teleoper": 5, "involv": 5, "kinemat": 5, "acceler": [5, 10, 11, 12, 20, 22], "jerk": [5, 11, 22], "obei": 5, "demo": 5, "booth": 5, "zeleank": 5, "unifi": 5, "life": 5, "cycl": 5, "go": [5, 13], "_control": 5, "wild": 5, "materi": 5, "quick": 5, "overview": 5, "layer": 5, "aka": 5, "systemcompon": 5, "forward": [5, 8, 12, 20, 24], "done": [5, 13], "look": 5, "modifi": 5, "simpli": [5, 20], "net": 5, "edit": 5, "collect": [5, 14, 16, 21, 23], "semant": [5, 15, 17], "world": [6, 8], "startup": 6, "h": [6, 9, 13, 19], "p": 6, "param_fil": 6, "controller_typ": 6, "timeout": [6, 9, 22], "controller_manager_timeout": 6, "controller_nam": [6, 9, 13], "argument": [6, 9], "exit": [6, 9], "leav": 6, "unconfigur": 6, "namespac": [6, 12, 13, 18, 20], "kill": [6, 9], "wait": [6, 9], "until": 6, "doxygen": 7, "fake": 7, "mirror": 8, "correspond": [8, 13, 24], "offlin": 8, "advantag": 8, "pipe": 8, "insid": 8, "broadcast": [8, 18, 19], "even": 8, "debug": 8, "boost": 8, "mimic": 8, "offset": [8, 20], "fake_sensor_command": 8, "boolean": [8, 18, 20], "fals": [8, 18, 20], "position_state_following_offset": 8, "custom_interface_with_following_offset": 8, "map": [8, 20], "multipli": 8, "mimick": 8, "deprec": [9, 12], "configure_control": 9, "configure_start_control": 9, "load_configure_control": 9, "load_start_control": 9, "spin": 9, "spin_tim": 9, "hidden": 9, "discoveri": 9, "appli": 9, "alreadi": [9, 13, 20], "daemon": 9, "test_controller_nam": 9, "test_control": 9, "diffdrivecontrol": 9, "joint_state_control": [9, 10], "jointstatecontrol": 9, "unclaim": [9, 10], "set_stat": 9, "reload": 9, "adjust": 9, "strict": 9, "asap": 9, "switch_timeout": 9, "templat": [10, 13, 20], "demonstr": 10, "prove": 10, "comprehens": 10, "ros2_control_demo_bringup": 10, "gui": 10, "ros2_control_test_nod": 10, "rrbot_system_multi_interfac": 10, "py": 10, "list_hardware_interfac": 10, "load_control": 10, "forward_command_controller_posit": 10, "forward_command_controller_veloc": 10, "forward_command_controller_acceler": 10, "forward_command_controller_illegal1": 10, "forward_command_controller_illegal2": 10, "set_controller_st": 10, "claim": 10, "now": [10, 13], "let": 10, "switch_control": 10, "again": 10, "inde": 10, "been": [10, 19], "differenti": [11, 12, 19, 24], "drive": [11, 12, 22, 24], "bodi": 11, "translat": [11, 22], "wheel": 11, "odometri": [11, 22], "comput": [11, 22], "feedback": [11, 20, 22], "twist": [11, 22], "x": [11, 15, 17, 22], "linear": [11, 20, 22], "z": [11, 15, 22], "angular": [11, 22], "ignor": [11, 20, 22], "space": [11, 20], "sort": [12, 13], "accord": [12, 20], "position_control": [12, 20], "hw_if_posit": 12, "velocity_control": 12, "hw_if_veloc": 12, "effort_control": 12, "hw_if_effort": 12, "interpol": [12, 20], "step": [13, 20, 24], "compil": 13, "rule": 13, "prepar": 13, "ament_cmak": 13, "easiest": 13, "search": 13, "recent": 13, "process": 13, "pkg": 13, "flag": [13, 20], "least": [13, 20], "cmakelist": 13, "txt": 13, "package_nam": 13, "hpp": 13, "visibility_control": 13, "window": 13, "copi": 13, "prefix": [13, 15, 17], "guard": 13, "ifndef": 13, "preprocessor": 13, "engin": 13, "friend": 13, "uniqu": 13, "written": 13, "snake_cas": 13, "controllernam": 13, "public": 13, "overrid": 13, "exact": 13, "vector": 13, "store": 13, "simplifi": [13, 24], "further": 13, "parent": 13, "reserv": 13, "importantli": 13, "fine": 13, "return": 13, "return_typ": 13, "ok": 13, "otherwis": 13, "individu": 13, "none": 13, "ask": 13, "full": 13, "joint_nam": [13, 20], "interface_typ": 13, "assign": 13, "opposit": 13, "empti": 13, "constraint": [13, 20], "At": 13, "close": 13, "class_list_macro": 13, "controller_name_namespac": 13, "visibl": 13, "controller_name_packag": 13, "bottom": 13, "test_load_": 13, "content": 13, "last": [13, 20], "specifi": [13, 20], "find_packag": 13, "rclcpp": 13, "rclcpp_lifecycl": 13, "directori": 13, "ament": 13, "cmake": 13, "pluginlib_export_plugin_description_fil": 13, "ament_cmake_gmock": 13, "ros2_control_test_asset": 13, "ament_add_gmock": 13, "ament_export_librari": 13, "ament_packag": 13, "test_depend": 13, "colcon": 13, "rememb": 13, "root": 13, "success": 13, "bash": 13, "enjoi": 13, "great": 13, "shell": 13, "mai": [14, 16, 21, 23], "certain": [14, 16, 21, 23], "achiev": [14, 16, 21, 23], "These": [14, 16, 21, 23], "geometry_msg": 15, "msg": [15, 17, 20], "wrenchstamp": 15, "wrapper": [15, 17], "forcetorquesensor": 15, "sensor_nam": [15, 17], "interface_nam": 15, "frame": [15, 17], "6d": 15, "ft": 15, "y": 15, "less": 15, "six": 15, "ax": 15, "example_nam": 15, "example_interfac": 15, "sensor_msg": 17, "imusensor": 17, "orient": 17, "angular_veloc": 17, "linear_acceler": 17, "joint_stat": 18, "dynamic_joint_st": 18, "use_local_top": 18, "my_state_broadcast": 18, "extra_joint": 18, "arrai": 18, "renam": 19, "joint_state_broadcast": 19, "order": 19, "true": [19, 20], "remov": 19, "turtl": 19, "reach": 20, "instant": 20, "attempt": 20, "mechan": 20, "By": 20, "spline": 20, "guarante": 20, "continu": 20, "discourag": 20, "becaus": 20, "yield": 20, "discontinu": 20, "cubic": 20, "quintic": 20, "pid": [20, 24], "similarli": 20, "eg": 20, "proxi": 20, "wrap": 20, "robust": 20, "clock": 20, "caus": 20, "queu": 20, "segment": 20, "ros__paramet": 20, "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "state_publish_r": 20, "action_monitor_r": 20, "20": 20, "allow_partial_joints_go": 20, "open_loop_control": 20, "stopped_velocity_toler": 20, "01": 20, "goal_tim": 20, "05": [20, 24], "03": 20, "monitor": 20, "action": 20, "control_msg": [20, 24], "followjointtrajectori": 20, "hydraul": 20, "tri": 20, "numer": 20, "nan": 20, "std": 20, "numeric_limit": 20, "quiet_nan": 20, "toler": 20, "jointtrajectori": 20, "deviat": 20, "maxim": 20, "predefin": 20, "joint_trajectori": 20, "trajectory_msg": 20, "jointtrajectorycontrollerst": 20, "follow_joint_trajectori": 20, "server": 20, "position_velocity_control": 20, "position_velocity_acceleration_control": 20, "Not": 20, "yet": 20, "feedforward": 20, "term": [20, 24], "plu": 20, "171": 20, "base_link": 22, "traction": 22, "steer": 22, "Its": 24, "oper": 24, "overcom": 24, "idea": 24, "wide": 24, "toolkit": 24, "unreleas": 24, "smooth": 24, "doc": 24, "wg": 24, "meet": 24, "everi": 24, "wednesdai": 24, "join": 24, "announc": 24, "discours": 24, "googl": 24, "propos": 24, "previou": 24, "bug": 24, "tracker": 24, "minim": 24, "reproduc": 24, "regard": 24, "etc": 24, "question": 24, "answer": 24, "2024": 24, "04": 24, "09": 24, "14": 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, "09": 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 f1158f1884b..b8f65cdec59 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: 9927b3e01118c7a75a2a2683971e1c88 +config: e0f8ee2318b52773ea8a26bac350d833 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree b/galactic/.doctrees/doc/acknowledgements/acknowledgements.doctree index 5053c45a1dbf2e9a78ac6eefd35d88e8fc9b40f3..a6e11e8c5e929ac82f140097464cbd5244f54df0 100644 GIT binary patch delta 66 zcmeCO>ayBk#Aujfl$n~IVU(k9l4fdQVUe7an3iN{Y;2U4WMPt+l#*hUYGG<>Zj_pq VVw7xPY++$G*^otSb0yayBk#AujbR9I$|os^?*nrxJ2VrFELn4Dr{Vwh@VWMN=oW?^ocXp(G{YLIN1 VnwFSikZ6%Q*^otSb0ypHkEmAi>V|I=P0L{u3ApigX 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 26b461785f282975ada8e6bf51fb0e026b8aadf2..f454334b5af63617f4d2fd337cc01c987b044c8c 100644 GIT binary patch delta 64 zcmdnf&$OqXX@eG{VUAH|YI=rIj=o8nsfC3_a#CVilA*D&QCgCPNn%n;iczYCsj0b9 TYFdg>vVpOMh1uq4#>6%NqTLh$ delta 64 zcmdnf&$OqXX@eG{VSZ6znNfC9j=pKKQJRUFkx625ijj$7s*#a}frXicxoM(FvQer* TvSn&oVv0ecMe62g#>6%NpT`s$ diff --git a/galactic/.doctrees/doc/getting_started/getting_started.doctree b/galactic/.doctrees/doc/getting_started/getting_started.doctree index 99db3b58c5a5778fa1ec7f7a5f6571e55d09dabd..eb6c6df2c0a2daa27adf96adf8a391fd43a797d3 100644 GIT binary patch delta 64 zcmez0#r(gEd4mC?VUAH|YI=rIj=o8nsfC3_a#CVilA*D&QCgCPNn%n;iczYCsj0b9 TYFdg>vVpOMh1uprM!6#Z!pszg delta 64 zcmez0#r(gEd4mC?VSZ6znNfC9j=pKKQJRUFkx625ijj$7s*#a}frXicxoM(FvQer* TvSn&oVv0ecMe626M!6#ZzqS;g diff --git a/galactic/.doctrees/doc/project_ideas.doctree b/galactic/.doctrees/doc/project_ideas.doctree index e1bbbae7f474f604597c4e45ed3d84caf6a817b7..baeaba6cc2f99ccf11ac5e753aa7e90fc37c390f 100644 GIT binary patch delta 64 zcmeyeis{QLrVTobhB-!=sp%O;Ir=7PrWO_!$w`T6NruM8MrlbFCW%QYDMqOlrl#gb Usc9)j$p*$27G|4c8O5gn0Lvm2ZvX%Q delta 64 zcmeyeis{QLrVTobhWSN>Wk%UaIr^r_MrkHyMka~LDMluSsYXT?1{P)(=B9}z$wsLL U$(E^Ui75t&7O9(K8O5gn0LTm!hyVZp diff --git a/galactic/.doctrees/doc/resources/resources.doctree b/galactic/.doctrees/doc/resources/resources.doctree index bb4b6ed260ce3f5799e8e93c3bc236af7be6004d..4bd07f0b3450b6a7f39f21e71e22b12c1cba60ce 100644 GIT binary patch delta 68 zcmX@v!*a5RWrGT%VUAH|YI=rIj=o8nsfC3_a#CVilA*D&QCgCPNn%n;iczYCsj0b9 XYFdg>vVpOMg;{eb>abu?;&8>3;4QD$m-hEa~bNt&sJg++2wVp@`+v9VEFl7&fPQc8+Zs)ebkxlw9b RiczwGv4w@%=5oe!+5nKH6Yl^3 delta 62 zcmX>abu?;&8>3-QDK=;c2bVMX|hq8iJ6f}VseU+iD9adk%fVUnT5G&qDit*szI`4 RYFc87L83+K=6ptHF#v5w65Id) diff --git a/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/fake_components_userdoc.doctree b/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/fake_components_userdoc.doctree index f020d10697ae7543b2095ae365db06a7bfc901cc..8a58fdaa19793114ec8b439ab475040f0773ec90 100644 GIT binary patch delta 62 zcmcbcc{g)|1EXP%QD$m-hEa~bNt&sJg++2wVp@`+v9VEFl7&fPQc8+Zs)ebkxlw9b RiczwGv4w@%=0e6CV*sG@6W0I$ delta 62 zcmcbcc{g)|1EXPnQDK=;c2bVMX|hq8iJ6f}VseU+iD9adk%fVUnT5G&qDit*szI`4 RYFc87L83+K=0e6CV*s7q6Yu~4 diff --git a/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree b/galactic/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree index 2aa45ef1c2d3c7dd7b3ee33f9738b62fa4a3c94d..542aa8a99bfe965a52a80a68b7377c7d72a2988b 100644 GIT binary patch delta 64 zcmZpl%h*1baf1h=VUAH|YI=rIj=o8nsfC3_a#CVilA*D&QCgCPNn%n;iczYCsj0b9 TYFdg>vVpOMh1upxMm}Evm4p*v delta 64 zcmZpl%h*1baf1h=VSZ6znNfC9j=pKKQJRUFkx625ijj$7s*#a}frXicxoM(FvQer* TvSn&oVv0ecMe62CMm}Evl5P`v diff --git a/galactic/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index 28179f633abfb630ca20f59c48de17d6dc217cb1..edaf5c2035ea43e579897347f0e0113ecfd2fb01 100644 GIT binary patch delta 64 zcmcb)jq&C-#tn9ihB-!=sp%O;Ir=7PrWO_!$w`T6NruM8MrlbFCW%QYDMqOlrl#gb Usc9)j$p*$27G|6C8DB*L0Lb$d3jhEB delta 64 zcmcb)jq&C-#tn9ihWSN>Wk%UaIr^r_MrkHyMka~LDMluSsYXT?1{P)(=B9}z$wsLL U$(E^Ui75t&7O9)_8DB*L0L9%EBme*a diff --git a/galactic/.doctrees/doc/ros2_control_demos/doc/index.doctree b/galactic/.doctrees/doc/ros2_control_demos/doc/index.doctree index 33c4334015b04871f7a4732efcaa76bbfeb76b69..ef4dd1cc10baf418560bc0cfaece4267af8d0981 100644 GIT binary patch delta 62 zcmV~$fenBl3%m6IcKM delta 62 zcmdn4vt4I{52ImzQDK=;c2bVMX|hq8iJ6f}VseU+iD9adk%fVUnT5G&qDit*szI`4 RYFc87L83+K=32&GA^>uN6LA0l diff --git a/galactic/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/galactic/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index f8d9cc39984a2926630012d7e5dfedbb8b788ac2..f4d26ed039f501290b4fc6e8474600e6a686c752 100644 GIT binary patch delta 66 zcmX?Wk%UaIr^r_MrkHyMka~LDMluSsYXT?1{P)(=B9}z$wsLL U$(E^Ui75t&7O9&H8F#z@0KRS&WdHyG diff --git a/galactic/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree index daf41dd06dfb3f9cbc28491daf7ff08e62bbc059..96cacc4d5de290d3bf490e3b749098bd0eac408a 100644 GIT binary patch delta 62 zcmbQEFh^m78>3;4QD$m-hEa~bNt&sJg++2wVp@`+v9VEFl7&fPQc8+Zs)ebkxlw9b RiczwGv4w@%=5ofRd;np565{{> delta 62 zcmbQEFh^m78>3- diff --git a/galactic/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree index aa0537de6b37017cf19da3b12ddce5f930f00a32..599ed941802b5d49416512d82c0fce337a598cfe 100644 GIT binary patch delta 62 zcmaE&@I+xl7^7j1QD$m-hEa~bNt&sJg++2wVp@`+v9VEFl7&fPQc8+Zs)ebkxlw9b RiczwGv4w@%=61%rd;o|H6UzVq delta 62 zcmaE&@I+xl7^7i+QDK=;c2bVMX|hq8iJ6f}VseU+iD9adk%fVUnT5G&qDit*szI`4 RYFc87L83+K=61%rd;o;@6XXB@ diff --git a/galactic/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree index cb63b57f75ea4d5030722ed4aa491e80b0d960c9..97101eeab32f3976d1361dbc95fa2b9b381d72ca 100644 GIT binary patch delta 62 zcmZqIYuDT0$7q;il$n~IVU(k9l4fdQVUe7an3iN{Y;2U4WMPt+l#*hUYGG<>Zj_pq RVw7xPY++%xxt_5@6aZhp63+kt delta 62 zcmZqIYuDT0$7q;eR9I$|os^?*nrxJ2VrFELn4Dr{Vwh@VWMN=oW?^ocXp(G{YLIN1 RnwFSikZ6&*xt_5@6aZYQ66gQ` diff --git a/galactic/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree index bdbfd6c7145bc96974c966fcb55afeb8b3b440c7..72270357b67ee892a997d34709f35598fbf0df7f 100644 GIT binary patch delta 64 zcmZpfz}PZ@aYF#3VUAH|YI=rIj=o8nsfC3_a#CVilA*D&QCgCPNn%n;iczYCsj0b9 TYFdg>vVpOMh1upt#%4DFkeL&| delta 64 zcmZpfz}PZ@aYF#3VSZ6znNfC9j=pKKQJRUFkx625ijj$7s*#a}frXicxoM(FvQer* TvSn&oVv0ecMe628#%4DFje`@| diff --git a/galactic/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree index 4ee46d3f047821c31d28a96b2d2ec1b4573eba21..fb3fab047590e300a4cef100f36eca4dca613b76 100644 GIT binary patch delta 64 zcmccD&UCMxX+s2~VUAH|YI=rIj=o8nsfC3_a#CVilA*D&QCgCPNn%n;iczYCsj0b9 TYFdg>vVpOMh1up##?U4Jx_K0V delta 64 zcmccD&UCMxX+s2~VSZ6znNfC9j=pKKQJRUFkx625ijj$7s*#a}frXicxoM(FvQer* TvSn&oVv0ecMe62G#?U4Jw__BV diff --git a/galactic/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree index ca0155bb56fb9d45e79e777577402c8a98aa998f..6f0ba4c113e5edc897a42e911357525c5f4c053a 100644 GIT binary patch delta 62 zcmdm`uuEZs7o%a0QD$m-hEa~bNt&sJg++2wVp@`+v9VEFl7&fPQc8+Zs)ebkxlw9b RiczwGv4w@%=4!_Md;oCp6F~p~ delta 62 zcmdm`uuEZs7o%Z*QDK=;c2bVMX|hq8iJ6f}VseU+iD9adk%fVUnT5G&qDit*szI`4 RYFc87L83+K=4!_Md;o3Q6IuWO diff --git a/galactic/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree b/galactic/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree index 81ac3519830d5df17357d55a851c6c50f7c66e36..2d7e368f3267da85555e86842e12561dda8d3556 100644 GIT binary patch delta 62 zcmdm`uuEZs7o%a0QD$m-hEa~bNt&sJg++2wVp@`+v9VEFl7&fPQc8+Zs)ebkxlw9b RiczwGv4w@%=4!_Md;oCp6F~p~ delta 62 zcmdm`uuEZs7o%Z*QDK=;c2bVMX|hq8iJ6f}VseU+iD9adk%fVUnT5G&qDit*szI`4 RYFc87L83+K=4!_Md;o3Q6IuWO diff --git a/galactic/.doctrees/environment.pickle b/galactic/.doctrees/environment.pickle index 174981a10523d43f0eccb05c13a5ec4e2d40a301..966622719dd5d47d590dbae47ee6e02fce3ae31d 100644 GIT binary patch delta 14614 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 delta 14365 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 diff --git a/galactic/.doctrees/index.doctree b/galactic/.doctrees/index.doctree index 43fabd0bb27b475a14d17cb1956506b6424538ab..81654756258a622e6cc05f590a0de7076f1344c6 100644 GIT binary patch delta 87 zcmX?jpYh;*#tmkShB-!=sp%O;Ir=7PrWO_!$w`T6NruM8MrlbFCW%QYDMqOlrl#gb psc9)j$p*$27G|5%86!fOjEyEA4EqV9?uScHo)FHu`A+y#aR3p>9z6g6 delta 87 zcmX?jpYh;*#tmkShWSN>Wk%UaIr^r_MrkHyMka~LDMluSsYXT?1{P)(=B9}z$wsLL p$(E^Ui75t&7O9)l86!fO3{55<4EqV9?uScHo)FHu`A+y#aR3nQ9##MV diff --git a/galactic/index.html b/galactic/index.html index daeab670ffd..f7da6fcdc4e 100644 --- a/galactic/index.html +++ b/galactic/index.html @@ -152,7 +152,7 @@

Development Organisation and Communication -

Built on 2024-04-09 at 05:14 GMT

+

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

diff --git a/galactic/searchindex.js b/galactic/searchindex.js index 61c592649d5..1ac25929e2a 100644 --- a/galactic/searchindex.js +++ b/galactic/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/getting_started/getting_started", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/getting_started/getting_started.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/fake_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "index.rst"], "titles": ["Acknowledgements", "Pull Requests", "Differences to ros_control (ROS1)", "Getting Started", "Project Ideas for GSoC 2022", "Resources", "Controller Manager", "API Documentation", "Fake Components", "Hardware Components", "Command Line Interface", "Demos", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "joint_trajectory_controller", "position_controllers", "velocity_controllers", "Welcome to the ros2_control documentation - Galactic!"], "terms": {"The": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 23], "project": [0, 1, 23], "ha": [0, 1, 3, 4, 5, 14, 19], "receiv": [0, 2], "major": 0, "contribut": [0, 1, 5], "from": [0, 1, 2, 3, 5, 6, 8, 10, 12, 14, 16, 18, 20, 23], "follow": [0, 1, 2, 3, 4, 8, 9, 10, 11, 13, 14, 20, 23], "compani": [0, 5], "institut": 0, "support": [0, 2, 3, 5, 8, 10, 14, 19, 20, 23], "rosin": 0, "ro": [0, 1, 3, 4, 6, 8, 10, 23], "industri": [0, 3, 4], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 11, 12, 16, 19, 23], "softwar": [0, 3], "compon": [0, 5, 6, 7, 12, 16, 18, 23], "more": [0, 1, 2, 3, 4, 8, 14], "inform": [0, 8, 14, 23], "http": [0, 1, 3, 4, 6], "eu": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 14, 15, 16, 17, 20, 21, 22, 23], "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 4, 5, 11, 14, 23], "horizon": 0, "2020": 0, "research": [0, 5], "innov": 0, "programm": 0, "under": [0, 5, 14, 23], "grant": 0, "agreement": 0, "732287": 0, "first": [1, 2, 9, 14], "thank": 1, "you": [1, 2, 3, 5, 6, 8, 9, 14, 23], "consid": [1, 10], "ros2_control": [1, 3, 5, 6, 8, 9, 11, 14], "As": [1, 14], "an": [1, 2, 3, 4, 5, 8, 10, 14, 19, 20], "open": [1, 19, 20], "sourc": [1, 3, 5, 14], "we": [1, 4, 5, 9, 19], "welcom": 1, "each": [1, 3, 4, 9, 19], "contributor": 1, "regardless": 1, "background": 1, "experi": 1, "To": [1, 2, 3, 6, 19, 23], "reduc": [1, 8], "entropi": 1, "univers": [1, 4, 5], "our": [1, 3, 4, 5], "vivid": 1, "collabor": 1, "environ": [1, 3, 5], "have": [1, 2, 3, 4, 6, 8, 9, 11, 14, 19, 20], "set": [1, 2, 4, 5, 6, 8, 9, 10, 11, 15, 17, 19, 20, 21, 22], "up": [1, 5, 11], "some": [1, 4, 5, 19, 20, 23], "standard": [1, 2, 3, 4, 5, 10, 13, 16, 19], "method": [1, 2, 3, 9, 14], "requir": [1, 2, 3, 4, 14], "ar": [1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 18, 19, 20, 23], "limit": [1, 4, 5, 12], "scope": 1, "your": [1, 2, 5, 8, 14, 23], "pr": 1, "should": [1, 2, 4, 5, 6, 9, 10, 11, 14, 19], "do": [1, 2, 3, 4, 5, 6, 14, 20], "one": [1, 2, 3, 4, 5, 14, 16, 19, 23], "thing": 1, "avoid": [1, 14], "ad": [1, 4, 8, 14, 19], "random": 1, "fix": [1, 2], "put": [1, 14], "those": [1, 2, 3, 4, 8, 14, 16, 19, 20], "separ": [1, 2, 3, 19], "give": [1, 3, 5, 23], "descript": [1, 2, 5, 9, 14], "titl": 1, "add": [1, 2, 9, 14], "short": [1, 14, 23], "summari": [1, 5, 23], "make": [1, 2, 4, 5, 6, 23], "sure": [1, 4, 23], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23], "green": 1, "don": 1, "t": [1, 6], "afraid": 1, "review": [1, 4, 23], "maintain": [1, 3, 4], "new": [1, 5, 13, 20, 23], "code": [1, 2, 4, 5, 14], "test": [1, 4, 8, 11, 14], "If": [1, 2, 3, 6, 9, 14, 16, 19, 20, 23], "function": [1, 2, 3, 4, 5, 6], "alwai": 1, "exercis": 1, "serv": [1, 3, 4], "live": [1, 5], "origin": [1, 5], "intent": [1, 8], "section": [1, 2, 14], "target": [1, 13, 14, 20], "also": [1, 2, 3, 4, 5, 14], "read": [1, 2, 3, 14, 19, 20], "understand": [1, 4], "how": [1, 4, 5, 14], "handl": [1, 2, 4, 5, 20], "organ": [1, 5, 23], "guidelin": 1, "especi": [1, 2], "applic": [1, 3, 5, 6], "ros2_control_demo": [1, 3, 23], "pleas": [1, 23], "keep": [1, 14], "mind": [1, 14], "work": [1, 4, 5, 12, 14, 15, 17, 19, 20, 21, 22, 23], "fork": 1, "when": [1, 2, 3, 4, 6, 8, 10, 14, 20], "submit": [1, 5], "That": [1, 14], "wai": [1, 14, 16], "main": [1, 3, 4, 5, 6, 8, 14, 23], "repo": [1, 3], "clean": [1, 4], "featur": [1, 5, 8, 23], "branch": 1, "all": [1, 2, 3, 4, 5, 8, 9, 11, 14, 19, 20], "check": [1, 2, 3, 4, 8, 9, 11, 14, 20, 23], "satisfi": 1, "befor": [1, 2, 6, 14], "thei": [1, 2, 3, 4, 5, 8, 10, 13, 14, 20], "can": [1, 2, 3, 4, 5, 7, 8, 9, 14, 16, 20, 23], "must": 1, "approv": 1, "two": [1, 3, 4, 6, 14, 16], "explicitli": 1, "onli": [1, 2, 3, 4, 5, 6, 9, 10, 14, 16, 19, 20], "except": 1, "other": [1, 2, 3, 5, 14, 19], "activ": [1, 2, 3, 10, 19], "where": [1, 4, 14, 19], "back": 1, "traceabl": 1, "discuss": [1, 5, 23], "suffici": [1, 16], "note": [1, 3, 11, 23], "still": [1, 2, 3], "encourag": 1, "help": [1, 6, 10, 14], "u": [1, 6], "increas": 1, "pace": 1, "veri": [1, 2, 4], "like": [1, 2, 3, 4, 5], "find": 1, "issu": [1, 4, 23], "nobodi": 1, "els": 1, "see": [1, 2, 3, 11, 14, 16, 18, 20], "squash": 1, "commit": 1, "messag": [1, 4, 6, 10, 16, 18, 19, 20, 23], "comment": 1, "fixup": 1, "linter": 1, "us": [1, 2, 3, 4, 5, 6, 8, 9, 10, 13, 15, 16, 17, 18, 19, 21, 22, 23], "pre": 1, "correct": [1, 2, 20], "header": [1, 9, 14], "address": [1, 4], "similar": [1, 3, 5], "mean": [1, 2, 8], "result": [1, 3, 19], "exactli": 1, "1": [1, 3, 4, 5, 8, 14], "cowboi": 1, "style": [1, 14], "over": [1, 4], "weekend": 1, "It": [1, 2, 3, 4, 6, 16, 19], "doesn": 1, "matter": 1, "trivial": [1, 8], "peopl": 1, "chanc": 1, "proper": [1, 20], "Be": 1, "awar": 1, "impact": 1, "time": [1, 2, 4, 5, 6, 8, 10, 12, 14, 16, 20, 23], "proport": 1, "its": [1, 2, 3, 4, 5, 6, 16, 18, 19], "ping": 1, "them": [1, 3, 4, 6, 14, 19], "necessari": [1, 9], "repeatedli": 1, "start": [1, 2, 5, 6, 9, 10, 11, 14, 20, 23], "part": [1, 4, 5, 14], "For": [1, 3, 4, 5, 6, 8, 9, 14, 20], "detail": [1, 2, 3, 8, 9, 14], "thoma": 1, "cokela": 1, "info": [1, 9], "tutori": 1, "sphinx": 1, "rest_syntax": 1, "html": 1, "id8": 1, "type": [1, 2, 3, 5, 6, 9, 10, 13, 14, 16, 18], "develop": [1, 5, 8, 11, 14], "stabl": [1, 4], "against": 1, "accept": [1, 14, 15, 17, 21, 22], "api": [1, 4], "abi": 1, "chang": [1, 2, 3, 5, 9, 10, 14, 20], "e": [1, 2, 3, 4, 5, 8, 14, 15, 16, 17, 19, 20, 21, 22, 23], "name": [1, 2, 3, 5, 6, 8, 10, 14, 16, 18, 19, 20], "convent": 1, "master": [1, 3, 4], "semi": 1, "binari": 1, "good": [1, 4], "same": [1, 3, 4, 16], "build": [1, 14], "dai": 1, "2": [1, 3, 5, 8], "ros_distro": 1, "g": [1, 2, 3, 4, 5, 8, 14, 15, 17, 19, 21, 22, 23], "foxi": [1, 3, 5], "galact": 1, "releas": [1, 3, 5, 6], "version": [1, 4], "non": [1, 5, 16], "brake": 1, "distribut": [1, 23], "three": [1, 2, 3, 9, 14], "stage": 1, "current": [1, 4, 9, 10, 20], "futur": [1, 5], "compat": [1, 2, 5], "framework": [1, 2, 4, 5, 6, 8, 9, 10, 11, 13, 14, 19, 23], "packag": [1, 2, 3, 6, 9, 11, 14, 16, 18, 20, 23], "show": [1, 3, 5, 6, 9, 10, 19], "direct": [1, 2, 4, 14], "local": [1, 19], "possibl": [1, 3, 4, 6, 14, 20], "core": 1, "immedi": 1, "depend": [1, 3, 9, 14, 20], "fail": 1, "expect": [1, 4, 20], "after": [1, 12, 14], "next": [1, 20], "sync": 1, "abl": 1, "potenti": [1, 14], "mid": 1, "robothw": 2, "rigid": 2, "ani": [2, 3, 5, 9, 14], "imposs": 2, "extend": [2, 3, 4, 14], "exist": [2, 3, 4, 6, 9, 14], "addit": [2, 4], "sensor": [2, 3, 4, 8, 9, 13], "actuat": [2, 3, 4, 8, 9], "tool": [2, 4, 5], "without": [2, 3, 8, 14], "combinedrobothardwar": 2, "drawback": [2, 23], "solut": [2, 5], "optim": [2, 6], "combin": [2, 8, 19, 20], "extern": [2, 3, 4, 8], "defin": [2, 3, 4, 8, 13, 14, 16, 18, 19, 20], "system": [2, 3, 4, 5, 9, 11, 20, 23], "composit": [2, 5], "basic": [2, 3, 4, 5, 14], "physic": [2, 3, 8, 9], "cell": [2, 16], "surround": 2, "describ": [2, 3], "multi": [2, 3, 4, 5, 11], "gripper": [2, 3, 8], "out": [2, 12], "box": 2, "allow": [2, 20], "joint": [2, 3, 5, 12, 13, 14, 15, 17, 19, 21, 22, 23], "posit": [2, 3, 5, 6, 10, 11, 13, 15, 17, 19, 20, 21, 22], "veloc": [2, 3, 5, 11, 13, 19, 20, 21, 22], "effort": [2, 13, 15, 17, 19, 20], "hard": [2, 4], "data": [2, 3, 4, 8, 19], "approach": 2, "doe": [2, 14, 20], "enforc": [2, 20], "string": [2, 8, 14, 19, 20], "ensur": [2, 5], "constant": 2, "hardware_interfac": [2, 3, 8, 9, 13, 14], "In": [2, 3, 4, 5, 14, 19], "had": 2, "request": [2, 19, 23], "itself": 2, "took": 2, "care": [2, 4, 14], "regist": 2, "resourc": 2, "conflict": [2, 3, 4], "resourcemanag": 2, "take": [2, 4, 14, 19], "state": [2, 3, 4, 5, 8, 9, 10, 11, 13, 14, 16, 19, 20], "avail": [2, 3, 5, 10, 11, 14, 19, 20], "enabl": [2, 3, 4, 5, 6, 9, 11, 16], "anymor": 2, "controllermanag": 2, "implement": [2, 3, 4, 5, 8, 11, 12, 13, 14, 20, 23], "systeminterfac": [2, 8], "granular": 2, "sensorinterfac": 2, "actuatorinterfac": 2, "abov": [2, 20], "choos": 2, "suitabl": [2, 5], "strategi": [2, 20], "decid": 2, "which": [2, 3, 4, 5, 10, 12, 14, 16, 18, 19, 20], "case": [2, 4, 5, 14, 19, 20, 23], "mayb": 2, "sens": [2, 3, 16], "multipl": [2, 3, 19, 20], "constructor": [2, 14], "initi": [2, 14], "variabl": [2, 4, 14], "need": [2, 3, 4, 5, 14], "commun": [2, 3, 4, 5], "default": [2, 3, 8, 19, 20], "configur": [2, 3, 4, 5, 6, 9, 10, 11, 14, 19, 20], "paramet": [2, 5, 14], "pars": [2, 7], "urdf": 2, "snippet": 2, "hardwareinfo": 2, "here": [2, 7, 14, 20], "cross": [2, 19], "valu": [2, 3, 4, 8, 14, 19, 20], "export_": 2, "_interfac": 2, "joint_a2": 2, "extract": [2, 12], "sensibl": 2, "stop": [2, 5, 6, 9, 10, 11, 12], "usual": [2, 8, 14], "includ": [2, 4, 9, 10, 14], "command": [2, 3, 4, 5, 7, 8, 11, 13, 14, 15, 17, 20, 21, 22, 23], "safe": [2, 12, 14, 20], "interrupt": [2, 6], "stream": [2, 5], "write": [2, 3, 4, 5, 13], "exchang": [2, 4], "equival": 2, "forget": 2, "pluginlib_export_class": [2, 14], "macro": [2, 3, 14], "end": [2, 3, 9, 14, 20], "cpp": [2, 14], "file": [2, 3, 4, 5, 6, 8, 14, 20], "creat": [2, 3, 5, 8, 14], "xml": [2, 9, 14], "librari": [2, 3, 4, 10, 14], "pluginlib": [2, 3, 14], "exampl": [2, 3, 4, 5, 8, 10, 11, 16, 19, 20, 23], "rrbotsystempositiononlyhardwar": [2, 3], "excel": 2, "jointtrajectorycontrol": [2, 10], "real": [2, 4, 5, 6, 8, 14, 19, 20, 23], "critic": [2, 4], "mark": 2, "controllerinterfac": [2, 3, 10, 14], "member": [2, 14], "init": [2, 14], "call": [2, 3, 14], "lifecycl": [2, 3, 5, 6, 9], "declar": [2, 14], "state_interface_configur": [2, 14], "command_interface_configur": [2, 14], "design": [2, 3, 4, 5, 23], "updat": [2, 3, 4, 14], "manag": [2, 4, 5, 7, 9, 10, 14, 23], "option": [2, 6, 8, 9, 10, 14, 16, 19, 20], "on_configur": [2, 14], "on_activ": [2, 9, 14], "on_deactiv": [2, 9, 14], "deactiv": [2, 3], "final": [2, 5, 9], "joint_trajectory_plugin": 2, "ros2": [3, 4, 5, 6, 10, 11, 14, 23], "instal": [3, 6, 14], "automat": [3, 12], "want": [3, 6], "workspac": [3, 14], "folder": [3, 5, 14], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 4, 6], "vc": 3, "import": [3, 14, 20], "src": [3, 14], "found": [3, 7, 14, 20, 23], "github": [3, 4, 7, 13, 23], "repositori": [3, 4, 7, 13, 23], "figur": 3, "cm": 3, "connect": 3, "abstract": [3, 5, 9], "side": [3, 4, 5], "entri": [3, 14], "point": [3, 13, 14, 23], "through": [3, 4, 10, 12, 13, 14, 20, 23], "servic": [3, 4, 6, 9], "node": [3, 6, 8, 9, 10, 11, 14], "executor": 3, "so": [3, 14], "integr": [3, 4, 5, 8, 11, 20, 23], "custom": [3, 8, 16, 19], "setup": [3, 4, 14], "recommend": [3, 5], "ros2_control_nod": 3, "controller_manag": [3, 4, 6, 10, 14, 20], "manual": [3, 4, 14, 23], "assum": 3, "On": 3, "load": [3, 6, 10, 11, 14], "unload": [3, 6, 10], "access": [3, 4, 5, 6, 8, 14, 19], "match": 3, "provid": [3, 4, 5, 6, 8, 11, 13, 14, 19, 20, 23], "report": [3, 4, 19, 23], "error": [3, 4, 14, 19, 20], "execut": [3, 14, 20], "loop": [3, 5, 6, 14, 19, 20], "output": [3, 4, 5, 10, 16, 18, 20], "rm": 3, "driver": [3, 5], "re": 3, "usabl": 3, "flexibl": 3, "motor": [3, 4], "encod": 3, "deal": 3, "theori": [3, 23], "compar": [3, 4, 5], "refer": 3, "measur": [3, 8, 16, 19], "base": [3, 5, 9, 10, 12, 14], "calcul": 3, "input": [3, 4, 5, 12, 20], "visit": 3, "wikipedia": [3, 23], "object": 3, "deriv": 3, "controller_interfac": [3, 4, 10, 14, 16, 18], "export": [3, 14], "plugin": [3, 9, 14], "forwardcommandcontrol": 3, "lifecyclenod": 3, "class": [3, 5, 9, 10, 14], "machin": [3, 4], "document": [3, 4, 5, 8], "latest": 3, "interact": [3, 5, 6, 10], "list": [3, 5, 9, 10, 11, 13, 14, 20, 23], "definit": [3, 13, 14, 16], "srv": 3, "controller_manager_msg": 3, "while": [3, 4, 5, 11, 20], "directli": [3, 23], "line": [3, 7, 9, 14, 19], "via": 3, "friendli": 3, "cli": [3, 7, 10], "auto": 3, "complet": [3, 9, 13], "rang": 3, "common": [3, 4, 13, 19, 23], "capabl": [3, 4], "readm": 3, "md": 3, "ros2controlcli": 3, "realiz": [3, 5], "repres": [3, 9], "dynam": [3, 14], "There": [3, 6, 9, 14], "complex": [3, 4, 5], "dof": 3, "differ": [3, 4, 5, 15, 16, 17, 19, 21, 22], "between": [3, 4, 9, 19, 20], "transmiss": 3, "humanoid": 3, "hand": 3, "logic": 3, "channel": 3, "kuka": 3, "rsi": 3, "A": [3, 5, 14, 19, 20], "relat": [3, 4, 5], "link": [3, 5, 9], "forc": [3, 5, 10, 13], "torqu": [3, 13], "simpl": [3, 4, 5, 11, 14], "valv": 3, "mandatori": [3, 16, 18, 20], "dc": 3, "arduino": 3, "board": 3, "modular": [3, 5], "independ": 3, "explan": 3, "given": [3, 20], "tag": [3, 14, 23], "chosen": 3, "structur": [3, 4, 14, 20], "track": [3, 23], "togeth": 3, "xacro": 3, "hereund": 3, "rrbot": [3, 11], "parallel": [3, 8], "effector": 3, "rrbotsystempositiononli": 3, "ros2_control_demo_hardwar": [3, 11], "param": [3, 6, 8], "example_param_write_for_sec": 3, "example_param_read_for_sec": 3, "joint1": [3, 8, 10, 11, 20], "command_interfac": [3, 20], "min": 3, "max": 3, "state_interfac": [3, 20], "joint2": [3, 10, 11, 20], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "0": [3, 8, 19, 20], "43": 3, "tcp_fts_sensor": 3, "frame_id": [3, 16, 18], "rrbot_tcp": 3, "min_forc": 3, "100": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "23": 3, "3": [3, 4], "gripper_joint": 3, "50": [3, 6, 20], "yaml": [3, 4, 20], "instead": [3, 8, 20], "pure": [3, 20], "launch": [3, 6, 8, 11], "stack": [3, 5], "could": [3, 5, 14, 19, 20], "altern": [3, 20], "script": [3, 4, 14], "skeleton": 3, "orbit": 4, "around": [4, 16, 18], "everyth": [4, 14], "goal": [4, 5, 20, 23], "long": 4, "run": [4, 5, 6, 10], "task": [4, 5, 12], "interfac": [4, 5, 6, 7, 8, 9, 11, 13, 14, 16, 18, 23], "user": 4, "thread": [4, 6], "protect": [4, 14], "memori": [4, 14], "buffer": [4, 23], "control_toolbox": [4, 23], "second": [4, 10, 14, 23], "frequenc": 4, "high": 4, "rate": [4, 20], "khz": 4, "variou": 4, "anoth": 4, "heartbeat": 4, "signal": 4, "sent": 4, "onc": [4, 5], "per": [4, 16], "500": 4, "hz": 4, "failur": [4, 9], "relev": [4, 23], "draft": 4, "trigger": 4, "skill": 4, "prefer": 4, "c": [4, 6, 10, 14], "trick": 4, "mentor": 4, "benc": [4, 5], "magyar": [4, 5], "deni": [4, 5], "\u0161togl": [4, 5], "size": 4, "350": 4, "hour": 4, "difficulti": 4, "about": [4, 8, 19, 23], "org": [4, 6], "gener": [4, 5, 14, 20, 23], "envis": 4, "simul": [4, 8, 11], "gazebo": 4, "ignit": 4, "showcas": [4, 5], "grace": 4, "degrad": 4, "architectur": [4, 5], "roadmap": [4, 23], "place": [4, 14, 20], "gpio": 4, "mode": [4, 20], "switch": [4, 10], "movement": 4, "safeti": 4, "familiar": [4, 23], "medium": 4, "focus": [4, 5], "although": [4, 9], "easi": 4, "therefor": [4, 6, 14, 19, 20], "often": [4, 8, 14, 19], "orchestr": 4, "purpos": 4, "conductor": 4, "scenario": 4, "appropri": 4, "moment": 4, "right": 4, "replac": [4, 9], "level": [4, 5, 15, 17, 20, 21, 22], "moveit2": [4, 5], "simplecontrollermanag": 4, "form": 4, "behavior": [4, 8], "benchmark": 4, "statu": [4, 9, 10, 20], "publish": [4, 12, 16, 18, 19, 20, 23], "topic": [4, 5, 20], "format": [4, 19], "preset": 4, "modul": 4, "specif": [4, 9, 19, 20], "reli": 4, "doubl": [4, 8, 20], "desir": [4, 20], "howev": [4, 6], "both": [4, 5, 19], "improv": 4, "readabl": 4, "earlier": 4, "concept": [4, 5, 8, 11], "were": 4, "introduc": [4, 5], "essenti": 4, "group": [4, 20, 23], "instanc": [4, 19], "imu": [4, 13], "typic": [4, 19, 20], "9": 4, "axi": [4, 16], "aceleromet": 4, "gyroscop": 4, "compass": 4, "respect": [4, 5], "Such": 4, "struct": 4, "low": [4, 5], "profil": 4, "intern": [4, 20], "addition": [4, 23], "few": [4, 5], "pull": 4, "45": 4, "tree": 4, "semantic_compon": 4, "175": 4, "rewrit": [4, 23], "ros_control": [4, 5, 23], "rich": 4, "wa": [4, 14], "motiv": 4, "adopt": 4, "port": [4, 9], "most": [4, 14], "quit": 4, "miss": [4, 19], "diff_drive_control": [4, 10], "joint_trajectory_control": [4, 10], "consist": [4, 20, 23], "identifi": 4, "much": [4, 14], "303": 4, "304": 4, "stretch": 4, "realtime_tool": [4, 23], "81": 4, "302": 4, "unit": 4, "gmock": 4, "cc": 5, "BY": 5, "licens": 5, "author": 5, "either": 5, "down": 5, "below": 5, "my": 5, "company_nam": 5, "tricycl": 5, "control": [5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 21, 22, 23], "event": 5, "pixel": 5, "prefac": 5, "introduct": [5, 20], "johann": 5, "plapp": 5, "toni": 5, "najjar": 5, "kernel": [5, 6], "hardwar": [5, 6, 7, 8, 11, 13, 14, 23], "agnost": 5, "share": [5, 14], "well": [5, 6, 10, 20], "perform": [5, 6], "heavi": 5, "dr": 5, "stogl": 5, "consult": 5, "practition": 5, "guid": [5, 14], "top": 5, "virtual": 5, "talk": 5, "delv": 5, "deeper": 5, "what": 5, "explicit": [5, 20], "chain": 5, "emerg": 5, "handler": 5, "mock": 5, "usag": [5, 6, 10], "openli": 5, "record": 5, "fiveai": 5, "ltd": 5, "best": [5, 6, 14], "focu": 5, "becom": 5, "util": 5, "3rd": 5, "parti": 5, "nav2": 5, "practic": 5, "tip": 5, "hot": 5, "shown": 5, "furthermor": 5, "get": [5, 9, 23], "reus": 5, "inject": 5, "offer": [5, 6], "expos": 5, "problem": [5, 23], "manipul": [5, 20], "path": 5, "plan": [5, 23], "autonom": 5, "navig": 5, "ideal": [5, 8], "made": [5, 9], "mobil": [5, 12], "arm": 5, "extra": [5, 19], "readi": [5, 14], "power": 5, "studi": 5, "ur": 5, "With": 5, "moveit": [5, 8], "ingredi": 5, "scale": 5, "factor": 5, "teach": 5, "pendant": 5, "influenc": 5, "picknik": 5, "inc": 5, "nathan": 5, "brook": 5, "lovro": 5, "ivanov": 5, "andi": 5, "zelenak": 5, "rune": 5, "s\u00f8e": 5, "knudsen": 5, "onlin": [5, 14], "trajectori": [5, 13, 23], "admitt": 5, "One": 5, "reason": 5, "upgrad": 5, "ros1": 5, "better": 5, "realtim": [5, 12, 20, 23], "contact": 5, "insert": 5, "singl": 5, "waypoint": [5, 13, 20], "mani": [5, 14], "teleoper": 5, "involv": 5, "kinemat": 5, "acceler": [5, 11, 12, 13, 20], "jerk": [5, 12], "obei": 5, "demo": 5, "booth": 5, "zeleank": 5, "unifi": 5, "life": 5, "cycl": 5, "go": [5, 14], "_control": 5, "wild": 5, "materi": 5, "quick": [5, 9], "overview": 5, "layer": 5, "aka": 5, "systemcompon": 5, "forward": [5, 8, 13, 20, 23], "done": [5, 14], "look": 5, "modifi": 5, "simpli": [5, 20], "net": 5, "edit": 5, "collect": [5, 15, 17, 21, 22], "semant": [5, 16, 18], "world": [6, 8], "littl": 6, "jitter": 6, "normal": 6, "linux": 6, "comput": [6, 12], "throughput": 6, "suit": 6, "attempt": [6, 20], "sched_fifo": 6, "prioriti": 6, "rt": 6, "permiss": 6, "syscal": 6, "easiest": [6, 14], "ubuntu": 6, "22": 6, "04": [6, 23], "lt": 6, "beta": 6, "blog": 6, "imag": 6, "amd64": 6, "debian": 6, "bullsey": 6, "startup": 6, "h": [6, 10, 14], "p": 6, "param_fil": 6, "controller_typ": 6, "timeout": [6, 10], "controller_manager_timeout": 6, "controller_nam": [6, 10, 14], "argument": [6, 10], "exit": [6, 10], "leav": 6, "unconfigur": [6, 9], "namespac": [6, 13, 14, 19, 20], "kill": [6, 10], "wait": [6, 10], "until": 6, "doxygen": 7, "fake": 7, "mirror": 8, "correspond": [8, 14, 23], "offlin": 8, "advantag": 8, "pipe": 8, "insid": 8, "broadcast": [8, 19], "even": 8, "debug": 8, "boost": 8, "mimic": 8, "offset": [8, 19, 20], "fake_sensor_command": 8, "boolean": [8, 19, 20], "fals": [8, 19, 20], "position_state_following_offset": 8, "custom_interface_with_following_offset": 8, "map": [8, 19, 20], "multipli": 8, "mimick": 8, "return_typ": [9, 14], "return": [9, 14, 19], "on_error": 9, "previous_st": 9, "success": [9, 14], "callbackreturn": 9, "again": [9, 11], "recov": 9, "reload": [9, 10], "substanti": 9, "renam": 9, "on_init": 9, "baseinterfac": 9, "remov": 9, "base_interfac": 9, "hpp": [9, 14], "hardware_interface_status_valu": 9, "rclcpp_lifecycl": [9, 14], "mai": [9, 15, 17, 21, 22], "strictli": 9, "last": [9, 14, 20], "status_": 9, "const": 9, "in_deactiv": 9, "undefin": 9, "refern": 9, "symbol": 9, "node_interfac": 9, "lifecyclenodeinterfac": 9, "rclcpp_lifecyl": 9, "cmakelist": [9, 14], "txt": [9, 14], "spin": 10, "spin_tim": 10, "hidden": 10, "discoveri": 10, "appli": 10, "alreadi": [10, 14, 20], "daemon": 10, "test_controller_nam": 10, "test_control": 10, "diffdrivecontrol": 10, "joint_state_control": 10, "jointstatecontrol": 10, "unclaim": [10, 11], "set_stat": 10, "adjust": 10, "strict": 10, "asap": 10, "switch_timeout": 10, "templat": [11, 14, 20], "demonstr": 11, "prove": 11, "comprehens": 11, "ros2_control_demo_bringup": 11, "gui": 11, "ros2_control_test_nod": 11, "rrbot_system_multi_interfac": 11, "py": 11, "list_hardware_interfac": 11, "load_control": 11, "forward_position_control": 11, "forward_velocity_control": 11, "forward_acceleration_control": 11, "forward_illegal1_control": 11, "forward_illegal2_control": 11, "joint_state_broadcast": 11, "set_controller_st": 11, "claim": 11, "now": [11, 14], "let": 11, "switch_control": 11, "inde": 11, "been": 11, "differenti": [12, 13, 23], "drive": [12, 13, 23], "bodi": 12, "translat": 12, "wheel": 12, "odometri": 12, "feedback": [12, 19, 20], "twist": 12, "x": [12, 16, 18], "linear": [12, 20], "z": [12, 16], "angular": 12, "ignor": [12, 20], "space": [12, 20], "sort": [13, 14], "accord": [13, 20], "position_control": [13, 20], "hw_if_posit": 13, "velocity_control": 13, "hw_if_veloc": 13, "effort_control": 13, "hw_if_acceler": 13, "hw_if_effort": 13, "interpol": [13, 20], "step": [14, 20, 23], "compil": 14, "rule": 14, "prepar": 14, "ament_cmak": 14, "search": 14, "recent": 14, "process": 14, "pkg": 14, "flag": [14, 20], "least": [14, 20], "package_nam": 14, "visibility_control": 14, "window": 14, "copi": 14, "prefix": [14, 16, 18], "guard": 14, "ifndef": 14, "preprocessor": 14, "engin": 14, "friend": 14, "uniqu": 14, "written": 14, "snake_cas": 14, "controllernam": 14, "public": 14, "overrid": 14, "exact": 14, "vector": 14, "store": 14, "simplifi": [14, 23], "further": 14, "parent": 14, "reserv": 14, "importantli": 14, "fine": 14, "ok": 14, "otherwis": [14, 19], "individu": 14, "none": [14, 19], "ask": [14, 19], "full": 14, "joint_nam": [14, 20], "interface_typ": 14, "assign": 14, "opposit": 14, "empti": 14, "constraint": [14, 20], "At": 14, "close": 14, "class_list_macro": 14, "controller_name_namespac": 14, "visibl": 14, "controller_name_packag": 14, "bottom": 14, "test_load_": 14, "content": 14, "specifi": [14, 20], "find_packag": 14, "rclcpp": 14, "directori": 14, "ament": 14, "cmake": 14, "pluginlib_export_plugin_description_fil": 14, "ament_cmake_gmock": 14, "ros2_control_test_asset": 14, "ament_add_gmock": 14, "ament_export_librari": 14, "ament_packag": 14, "test_depend": 14, "colcon": 14, "rememb": 14, "root": 14, "bash": 14, "enjoi": 14, "great": 14, "shell": 14, "certain": [15, 17, 21, 22], "achiev": [15, 17, 21, 22], "These": [15, 17, 21, 22], "geometry_msg": 16, "msg": [16, 18, 20], "wrenchstamp": 16, "wrapper": [16, 18], "forcetorquesensor": 16, "sensor_nam": [16, 18], "interface_nam": 16, "frame": [16, 18], "6d": 16, "ft": 16, "y": 16, "less": 16, "six": 16, "ax": 16, "example_nam": 16, "example_interfac": 16, "sensor_msg": 18, "imusensor": 18, "orient": 18, "angular_veloc": 18, "linear_acceler": 18, "joint_stat": 19, "dynamic_joint_st": 19, "By": [19, 20], "unless": 19, "latter": 19, "matrix": 19, "product": 19, "print": 19, "warn": 19, "use_local_top": 19, "my_state_broadcast": 19, "arrai": 19, "extra_joint": 19, "map_interface_to_joint_st": 19, "field": 19, "usecas": 19, "hydraul": [19, 20], "relianc": 19, "would": 19, "visual": 19, "robot_state_publish": 19, "rviz": 19, "techniqu": 19, "slightli": 19, "custom_interfac": 19, "kf_estimated_posit": 19, "derived_veloc": 19, "derived_effort": 19, "torque_sensor": 19, "current_sensor": 19, "reach": 20, "instant": 20, "mechan": 20, "spline": 20, "guarante": 20, "continu": 20, "discourag": 20, "becaus": 20, "yield": 20, "discontinu": 20, "cubic": 20, "quintic": 20, "pid": [20, 23], "similarli": 20, "eg": 20, "proxi": 20, "wrap": 20, "robust": 20, "clock": 20, "caus": 20, "queu": 20, "segment": 20, "ros__paramet": 20, "joint3": 20, "joint4": 20, "joint5": 20, "joint6": 20, "state_publish_r": 20, "action_monitor_r": 20, "20": 20, "allow_partial_joints_go": 20, "open_loop_control": 20, "true": 20, "stopped_velocity_toler": 20, "01": 20, "goal_tim": 20, "05": [20, 23], "03": 20, "monitor": 20, "action": 20, "control_msg": [20, 23], "followjointtrajectori": 20, "tri": 20, "numer": 20, "nan": 20, "std": 20, "numeric_limit": 20, "quiet_nan": 20, "toler": 20, "jointtrajectori": 20, "deviat": 20, "maxim": 20, "predefin": 20, "joint_trajectori": 20, "trajectory_msg": 20, "jointtrajectorycontrollerst": 20, "follow_joint_trajectori": 20, "server": 20, "position_velocity_control": 20, "position_velocity_acceleration_control": 20, "Not": 20, "yet": 20, "feedforward": 20, "term": [20, 23], "plu": 20, "171": 20, "Its": 23, "oper": 23, "overcom": 23, "idea": 23, "wide": 23, "toolkit": 23, "unreleas": 23, "smooth": 23, "doc": 23, "wg": 23, "meet": 23, "everi": 23, "wednesdai": 23, "join": 23, "announc": 23, "discours": 23, "googl": 23, "propos": 23, "previou": 23, "bug": 23, "tracker": 23, "minim": 23, "reproduc": 23, "regard": 23, "etc": 23, "question": 23, "answer": 23, "2024": 23, "09": 23, "14": 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, "09": 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 6e2d3c6a3c6..4065fcdf170 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: 856276baa73ea4977d10c52f508e81e1 +config: 4079d89f39a49f10b37c502d66c9336d tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree b/humble/.doctrees/doc/acknowledgements/acknowledgements.doctree index a69a2f94b9a9fd79d3454fa4f19f96dbb913b093..1ad743ad97022803e01268d6cadf3f4a7507e0c9 100644 GIT binary patch delta 146 zcmezT!}IeG&kaV5Mma{Asp%O;Ir$`-pL5UOhC*G#4JF}3dC$c%nrmHK+FlmTtLhX Z#5_RE3&eat%n!r@KrFbulTqkZ6#xs5E=B+V delta 146 zcmezT!}IeG&kaV5M)^gBWk%UaIr_=QX@+U3X30s3W`?P0MyAP@X$EO#$tj6xCT2#- zDJhm_7N#bqW@h@+Klt;CPS)8d(A>$`-pL5UOhC*G#4JF}3dC$c%nrmHK+FlmTtLhX Z#5_RE3&eat%n!r@KrFbulTqkZ6#!R=F2(== diff --git a/humble/.doctrees/doc/contributing/contributing.doctree b/humble/.doctrees/doc/contributing/contributing.doctree index acd31131dae3c9ef810b197c27c89b4e3dab7bde..2b83148cc3df9293b31ef42b96806382c1f9d58a 100644 GIT binary patch delta 63 zcmaERl=1CR#tq?&202EVsp%O;IrZfAU5NuFMb&3md<ZfAU5NuFMb&3md<~ug(~(nl3x diff --git a/humble/.doctrees/doc/resources/resources.doctree b/humble/.doctrees/doc/resources/resources.doctree index bca30de341a41da33e756dc7ad7f55dbefb9ce0b..1d29bd3030161d525cb3dea2fb17536115c24a43 100644 GIT binary patch delta 67 zcmZ41%et(Wb%P3{L5@*oYI=rIj=n`wvRRU)xuIclnwddrQgW)Lxn-(_rE!u)l6g|1 WrBRBpnR!x5a&rjd_7FzKAXfm?9~55z delta 67 zcmZ41%et(Wb%P3{L4HwTnNfC9j()OnnqgY1S#naMnPF<0k!iAJnn9Xba!O*FiJ4Jy WN{XeKg{g_DS#t>E_7FzKAXfnRm=xat diff --git a/humble/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree b/humble/.doctrees/doc/ros2_control/controller_manager/doc/controller_chaining.doctree index 5a057eccf821c34caccbdbf82ec30ee57bdb5c1a..4f1bbcbe416419996d51356a409c41cf9f34d060 100644 GIT binary patch delta 63 zcmex!jPcJg#tjyX202EVsp%O;IrSWTB=!cQlgn*YMPO0vSpenBC#tlJ?Mma{Asp%O;IrnBC#tlJ?M)^gBWk%UaIr_=QX@+U3X30s3W`?P0MyAP@X$EO#$tj6xCT2#- ZDJhm_7N#bqW@h@6PjY!|KEqg?0RUux7r6ic diff --git a/humble/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree b/humble/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree index a642352da4d3eb3140e56778516a9590b5921af4..46fcea08f93f750c7205580791583c5b79be333d 100644 GIT binary patch delta 63 zcmZ3|z__G=af1V+L5@*oYI=rIj=n`wvRRU)xuIclnwddrQgW)Lxn-(_rE!u)l6g|1 SrBRBpnR!x5^5z1@Ep`BcgcI)o delta 63 zcmZ3|z__G=af1V+L4HwTnNfC9j()OnnqgY1S#naMnPF<0k!iAJnn9Xba!O*FiJ4Jy SN{XeKg{g_D+2#VqEp`B;{SOvY?fqcZfKaCW@eC@l$>g5ZkcLfX`Ez{WS*30 SX_R7YW}cLiyt$5%^FIK2CKK-f delta 63 zcmZo~WNB|?+2F@$kY7|-W|WHZ diff --git a/humble/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index 9acfabfd5572e1d43dfa738ec8e66d4c9227350a..26b583d594e7cf1fa1f93d6c422a5ec62de533c2 100644 GIT binary patch delta 63 zcmezKh4If9#tn9i202EVsp%O;IrS`6>b87Zn%) delta 63 zcmezKh4If9#tn9i2KhyWWk%UaIr_=QX@+U3X30s3W`?P0MyAP@X$EO#$tj6xCT2#- SDJhm_7N#bqW}EXE`6>YfpB0z@ diff --git a/humble/.doctrees/doc/ros2_control_demos/doc/index.doctree b/humble/.doctrees/doc/ros2_control_demos/doc/index.doctree index 4466283ab28fbe507dc3eeab579609f434901c17..2fc6c1159fa79a6bad512311981a742bdc605094 100644 GIT binary patch delta 69 zcmX@u!F;fTd4n0FQI1h&YI=rIj=n`wvRRU)xuIclnwddrQgW)Lxn-(_rE!u)l6g|1 ZrBRBpnR!x5vYGzm37f<>*E1eE1OOC87bgG! delta 69 zcmX@u!F;fTd4n0FQGQWjnNfC9j()OnnqgY1S#naMnPF<0k!iAJnn9Xba!O*FiJ4Jy ZN{XeKg{g_DnVJ6N37f<>*E1eE1OPd{7pDLK 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 171eb435166273dc4c3c0aca94c04c94a77a7c22..a5df9842b7f7395e6c488a38586648983c428eef 100644 GIT binary patch delta 61 zcmeB_>Xh2h&ti~cl$n~IVU(k9k(6wfWNB__n4D&2keZa7YH4nnYGG-dWRYZ^lxS&` QVr*ufl#;x8KZ_R!096|j?*IS* delta 61 zcmeB_>Xh2h&ti~YR9I$|os^@WY@BA8mTH!qlxSv{nr390Y?)?|W|o|im}X*Tl$?@c QX=Y(+VrsT|KZ_R!0C$uVZvX%Q 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 be88bae36a8e87ad5df827ef174510902523932e..ab8279611753ab79be26ce016a18615f00c20517 100644 GIT binary patch delta 76 zcmeBfWbJNb-4MlSlw*{cnx0{lqi>OvY?fqcZfKaCW@eC@l$>g5ZkcLfX`Ez{WS*30 gX_R7YW}cLiY^FbnUwpExfN1j$#_c;8886!b0FX2neEW|Wz!cTVHkyqEF&6aaxa7^46H delta 73 zcmdn8mTAjcrVUYyM)^gBWk%UaIr_=QX@+U3X30s3W`?P0MyAP@X$EO#$tj6xCT2#- dDJhm_7N#bqW@h@69i>z!cTVHkyqEF&6ac8Q86yAy 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 8aeabae6d41c6fb5a8069dee0e6a53ce2a231e09..94605e02245cf6410fe7756ffe3d1919e016e649 100644 GIT binary patch delta 73 zcmZ4UmTApfrVUYyMma{Asp%O;Irxh` delta 73 zcmZ4UmTApfrVUYyM)^gBWk%UaIr_=QX@+U3X30s3W`?P0MyAP@X$EO#$tj6xCT2#- dDJhm_7N#bqW@h@61^L7$Z{-!;yo2$}768Hr84Umc diff --git a/humble/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree index be0f679deb1292bab7dabcc3604a40f362f17236..c093338ea9fc87bf93b722d07a30e0c1b2581ef7 100644 GIT binary patch delta 73 zcmbQWoN3l_rVUYyMma{Asp%O;IrSI7m)w} delta 73 zcmbQWoN3l_rVUYyM)^gBWk%UaIr_=QX@+U3X30s3W`?P0MyAP@X$EO#$tj6xCT2#- dDJhm_7N#bqW@h@675K#`_wtEu-of~2A^?!87!d#f 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 931c17f1668bfb70a3e228c437238ed7807f09d7..aae266ee547a92c3618933f42893c29e03e507b7 100644 GIT binary patch delta 73 zcmdmSfN948rVUYyMma{Asp%O;IrVV9Z)DuQk&)4SJ^-+}7`p%f delta 73 zcmaEHknP1mwhd8?M)^gBWk%UaIr_=QX@+U3X30s3W`?P0MyAP@X$EO#$tj6xCT2#- dDJhm_7N#bqW@h@6?>VV9Z)DuQk&)4SJ^=g<7{&kq delta 73 zcmX^2mGRtH#tl)7M)^gBWk%UaIr_=QX@+U3X30s3W`?P0MyAP@X$EO#$tj6xCT2#- dDJhm_7N#bqW@h@65Aujlo?0cfc`u`2B>>?#8AbpA 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 e4fee11586715f6396fa7f0ed00eda4462c5e486..e3a53e7a2911afb90f08d87f9cba20f517802f8e 100644 GIT binary patch delta 76 zcmex4kLl+;rVUYyra4BLsp%O;Ir delta 76 zcmex4kLl+;rVUYyrujvMWk%UaIr_=QX@+U3X30s3W`?P0MyAP@X$EO#$tj6xCT2#- gDJhm_7N#bqW@h>+`N@+%Mu<#4$Irca9pmX<03BHyAOHXW diff --git a/humble/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree index f80a1f59a8e5e6066105394a49a3f2ee1039db5d..2c3046738b6f2f0ace1453887ce7516a6a1e4f7b 100644 GIT binary patch delta 71 zcmeB)>WSJA!)TOal$n~IVU(k9k(6wfWNB__n4D&2keZa7YH4nnYGG-dWRYZ^lxS&` aVr*ufl#*3NfvPc delta 71 zcmeB)>WSJA!)TOWR9I$|os^@WY@BA8mTH!qlxSv{nr390Y?)?|W|o|im}X*Tl$?@c aX=Y(+VrpilKlviR=;Rn-xy=U|y|n>g!WQuW 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 f6507ffd4752f13ec13a957a25c011cd25d9449e..5687bf000ca3ef9d7640d4f15c8be60fb41e45f7 100644 GIT binary patch delta 125 zcmaFg!2G^}d4mt5L5@*oYI=rIj=n`wvRRU)xuIclnwddrQgW)Lxn-(_rE!u)l6g|1 irBRBpnR!x5^5z;w?GBQ4O|D_oog7~*wppqx)C>UW>L-~1 delta 125 zcmaFg!2G^}d4mt5L4HwTnNfC9j()OnnqgY1S#naMnPF<0k!iAJnn9Xba!O*FiJ4Jy iN{XeKg{g_D+2$HX?GBQ4O|D_oog7~*wppqx)C>So>nNE3 diff --git a/humble/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.doctree index 6e9d5865571f7f1b4a8e76ae4deab73569ade41f..3ab400273c309c33e421724a63ae43cfb19e1efc 100644 GIT binary patch delta 67 zcmX@;d(d}71fx-oQD$m-hEa~bMN+a^lBKz!VRD+8L26QRs-?MQs)eO-l0}kvQlh0% Wim{n_QcAL!{$xQx(arN2l~e)mP85y+ delta 67 zcmX@;d(d}71fx-YQDK=;c2bUhvT>SWTB=!cQlgn*YMPO0vSpeSWTB=!cQlgn*YMPO0vSpe2yvQD$m-hEa~bMN+a^lBKz!VRD+8L26QRs-?MQs)eO-l0}kvQlh0% Qim{n_QcCjXGR75h0AGI-K>z>% delta 61 zcmbQ|FwbFw8>2yfQDK=;c2bUhvT>SWTB=!cQlgn*YMPO0vSpeSWTB=!cQlgn*YMPO0vSpe diff --git a/humble/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree index 156bd890253fe2d8b490cf3c5b979465a7458a76..6a217b0b1cd3d69c45ccc12fcc59a0f8e4a234f7 100644 GIT binary patch delta 61 zcmbP~Gbv|-2ctobQD$m-hEa~bMN+a^lBKz!VRD+8L26QRs-?MQs)eO-l0}kvQlh0% Qim{n_QcCjX3dUI`0B)HRjQ{`u delta 61 zcmbP~Gbv|-2ctoLQDK=;c2bUhvT>SWTB=!cQlgn*YMPO0vSpe>NK7Hj|j delta 69 zcmZ2_m1*f!rVVP0M)^gBWk%UaIr_=QX@+U3X30s3W`?P0MyAP@X$EO#$tj6xCT2#- ZDJhm_7N#bqW@h@6{Y&jPPiN#?2>?p87VH23 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 b6ff4d6afb6fa2ba89095b5f81673959f66bc074..ebc30f2a7beeb06ef0a5c693e2d4a10011b509bf 100644 GIT binary patch delta 69 zcmX@Img&e^rVTZWMma{Asp%O;Ir&7+L@T diff --git a/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree b/humble/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree index 3ebc9ca87c2dae135b5ef5bc87c69a1d1cfb5ab7..19706c08178f27d0747a1e33a6fe3a7061720668 100644 GIT binary patch delta 69 zcmdmYgK6IlrVSB{Mma{Asp%O;IrSWTB=!cQlgn*YMPO0vSpe delta 131 zcmbQ9H$87d5Tj9kQDK=;c2bUhvT>SWTB=!cQlgn*YMPO0vSpe<{9 delta 61 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 delta 36197 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

Built on 2024-04-09 at 05:14 GMT

+

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

diff --git a/humble/searchindex.js b/humble/searchindex.js index 37ecfc197bf..c10f2d03035 100644 --- a/humble/searchindex.js +++ b/humble/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Humble!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45, 46], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48719": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "128": 0, "8600": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "35": [0, 50], "5628": 0, "09": [0, 56], "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 11], "04": [0, 9, 56], "03": [0, 21, 46], "27": 0, "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50], "01t10": 0, "36": 0, "22z": 0, "436": 0, "64382": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 44, 45, 46], "575": 0, "402": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 52], "70": 0, "03t11": 0, "19z": 0, "243": 0, "219": 0, "90": [0, 29], "08t21": 0, "46": 0, "52z": 0, "477": 0, "108": 0, "23": [0, 4, 33], "04t06": 0, "34": 0, "04z": 0, "1439": 0, "1147": 0, "80": 0, "1159": 0, "604": 0, "52": [0, 48], "268": 0, "244": 0, "91": 0, "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 20, 22, 24, 25, 29, 31, 32, 33, 34, 37, 43, 44, 46, 52], "develop": [0, 1, 4, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 46, 52], "inform": [0, 1, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 4, 9, 24, 35, 44, 46], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 35], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "06": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 50], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 3, 5], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 55], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "314": 0, "08t08": 0, "22": [0, 9], "manuel": 0, "muth": 0, "mamueluth": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": 0, "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "125": 0, "22t09": 0, "11z": 0, "github": [0, 4, 6, 10, 17, 29, 36, 54, 55, 56], "action": [0, 3, 5, 8, 44], "bot": 0, "123": 0, "11t09": 0, "03z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "25": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 35], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "bailac": 0, "68": 0, "08t11": 0, "14": [0, 17, 50, 55, 56], "49z": 0, "olivi": 0, "stass": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "49": 0, "26t02": 0, "31": 0, "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "28": [0, 50], "wiktor": 0, "bajor": 0, "99": [0, 9], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": 0, "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "26": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 17, 33], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 7], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "21z": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 16, 20, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "najjar": [0, 7], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 17], "56z": 0, "970": 0, "21t01": 0, "00": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 21, 41, 44, 46], "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "09t10": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "167": 0, "152": 0, "07t18": 0, "86": 0, "63": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "98": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "106": 0, "25t06": 0, "01t20": 0, "107": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "95": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "111": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "62": 0, "andr": 0, "montano": 0, "anfemosa": 0, "60": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "172": 0, "157": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "14t09": 0, "89": 0, "198": 0, "96": 0, "23t02": 0, "78": 0, "173": 0, "79": 0, "220": 0, "199": 0, "10t19": 0, "27t13": 0, "191": 0, "183": 0, "25t01": 0, "69": 0, "14t18": 0, "164": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "194": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "113": 0, "87": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 43, 44, 45], "receiv": [0, 2, 4, 20, 29, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 20, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 46, 56], "consid": [1, 16, 35, 44], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 37, 38, 39, 46, 47, 50, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 4, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 35, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 29, 33, 35, 38, 43, 44, 45, 46, 47, 48, 50, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 4, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43], "give": [1, 7, 9, 17, 19, 20, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 4, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 56], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 20, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 20, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44, 46], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 37, 41, 44, 46, 50], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 4, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 4, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 35, 37, 44, 46, 50], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 45, 46, 50, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 20, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 48, 50, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "sphinx": 1, "doc": [1, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "theme": 1, "gener": [1, 6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "locat": [1, 3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "control": [1, 7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "org": [1, 6, 11, 32, 34, 52], "while": [1, 4, 6, 7, 29, 33, 45], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "written": [1, 15, 23, 28, 29, 37], "respect": [1, 3, 4, 5, 6, 7, 20, 44, 45, 46], "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 20, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": [1, 4], "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 4, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 4, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 4, 7, 8, 45, 46], "compat": [1, 2, 4, 7, 15, 17], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 46, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "detail": [2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 49], "joint": [2, 4, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 47, 50, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 4, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 35, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 35, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 20, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 20, 24, 29, 36, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "start": [2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 56], "stop": [2, 7, 8, 9, 12, 16, 19, 20, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 20, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 20, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 20, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 4, 5, 9, 12, 14, 15, 16, 19, 20, 25, 33, 35, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 20, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 20, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 20, 29, 33, 44, 46], "initial_valu": [3, 5, 20, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37], "link": [3, 4, 5, 7, 8, 12, 29, 33, 35, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 4, 5, 17, 29, 35, 41], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 37, 44, 45, 46], "For": [3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 44, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 38, 47, 53], "100": [3, 4, 5, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 13, 14], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 46], "example_gripp": [3, 5], "humbl": [4, 17, 29], "bug": [4, 56], "want": [4, 8, 9, 17], "thrive": 4, "roll": [4, 29, 35], "stack": [4, 7, 56], "earlier": [4, 6], "done": [4, 7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "ros2_control_ci": 4, "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 35, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "figur": [4, 45], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29], "executor": [4, 9], "custom": [4, 13, 14, 17, 20, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 36, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 45], "dynam": [4, 15, 21, 29, 33, 37, 54], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "ros2_control_demo_hardwar": [4, 13, 16], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 13], "joint1": [4, 13, 14, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 20, 24, 29, 31, 33, 44], "pure": 4, "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "ign": 5, "meet": [5, 56], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 14, 15, 25, 35, 42, 43, 46, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 20, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 20, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 9, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "part": [6, 7, 13, 29, 37, 45, 46], "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "intern": [6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7], "175": 6, "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 20, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "81": [6, 33], "302": 6, "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 45, 50], "scale": [7, 44], "factor": [7, 35], "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 15, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8, 20], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irrelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 20, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 16, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50], "frequenc": 9, "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "info": [9, 11, 12, 15, 29], "std": [9, 29, 35, 44], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45, 46], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41, 46], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": 11, "int": [11, 35, 48, 50], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 20, 21, 24, 31, 33, 35, 44, 45, 46, 50], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33, 46], "vacuum": [13, 20], "flang": 13, "off": 13, "rrbotsystemmutiplegpio": 13, "example_param_hw_start_duration_sec": 13, "example_param_hw_stop_duration_sec": 13, "example_param_hw_slowdown": 13, "flange_digital_io": 13, "digital_output1": 13, "know": 13, "digital_output2": 13, "digital_input1": 13, "digital_input2": 13, "flange_analog_io": [13, 20], "analog_output1": [13, 20], "analog_input1": [13, 20], "analog_input2": [13, 20], "flange_vacuum": [13, 20], "suction": 13, "grasp": 13, "multimod": 13, "multimodalgripp": 13, "parallel_fing": 13, "temperatur": [13, 17], "feedback": [13, 14, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "choic": [13, 50], "matric": 13, "rrbotforcetorquesensor2d": 13, "forcetorquesensor2dhardwar": 13, "fx": 13, "tz": 13, "kuka_tcp": 13, "fx_rang": 13, "tz_rang": 13, "temp_feedback": 13, "calibration_matrix_nr": 13, "mirror": [14, 20], "correspond": [14, 15, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": 14, "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 20, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 20, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "hardware_component_nam": 16, "hardware_compon": 16, "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "diagram": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "tutori": 17, "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "interface_nam": [20, 39, 40], "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "list_hardware_compon": [20, 23, 24, 26, 27, 28], "faster": [20, 24, 35], "genericsystem": [20, 24], "use_mock_hardwar": [20, 24], "ident": [20, 22, 24, 29, 31, 45], "unless": [20, 43], "nan": [20, 26, 44], "generic_system": 20, "wheel": [21, 32, 34, 35, 50, 52], "front": [21, 32, 33, 34, 50, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": 22, "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35], "rotat": [29, 35, 44], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 37, 39, 41, 42, 44, 46, 50], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "214": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44], "wrong": 35, "behav": 35, "correctli": 35, "curv": 35, "wheels_per_sid": 35, "number": [35, 50], "slip": 35, "account": 35, "present": [35, 46], "enter": 35, "huski": [35, 55], "wheel_radiu": 35, "slower": [35, 45], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50], "odom_frame_id": [35, 50], "pose_covariance_diagon": [35, 50], "covari": [35, 42, 50], "tune": 35, "sampl": [35, 45, 50], "001": [35, 41], "twist_covariance_diagon": [35, 50], "speed": 35, "open_loop": [35, 50], "cmd_vel_timeout": 35, "stale": [35, 44], "velocity_rolling_window_s": [35, 50], "old": 35, "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": 35, "numeric_limit": [35, 44], "quiet_nan": [35, 44], "min_veloc": 35, "max_acceler": 35, "min_acceler": 35, "max_jerk": 35, "min_jerk": 35, "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "write_op_mod": 35, "motor_control": 35, "500": 35, "millisecond": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "state_publish_r": [44, 46], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "deprec": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "hold": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "cumbersom": 46, "controller_st": [46, 50], "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 48, "rqt": 49, "nomenclatur": 50, "unstamp": 50, "concret": 50, "tricylc": 50, "seer": 50, "front_steer": 50, "front_wheels_nam": 50, "rear_wheels_nam": 50, "traction_feedback_typ": 50, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "averag": 50, "diagon": 50, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "mujoco": 54, "algoryx": 54, "agx": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "kinova": 55, "kortex": 55, "gen3": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 56, "toolkit": 56, "unreleas": 56, "question": 56, "wg": 56, "wednesdai": 56, "announc": 56, "discours": 56, "googl": 56, "tracker": 56, "reproduc": 56, "regard": 56, "built": 56, "gmt": 56}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 12, 14, 15], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 17], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 17], "run": [3, 4, 5, 17], "demo": [3, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 17], "binari": 4, "packag": [4, 17], "from": [4, 6, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 55], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 22], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 46, 50, 51], "line": 16, "list_control": 16, "list_controller_typ": 16, "list_hardware_compon": 16, "list_hardware_interfac": 16, "load_control": 16, "reload_controller_librari": 16, "set_controller_st": 16, "set_hardware_component_st": 16, "switch_control": 16, "unload_control": 16, "view_controller_chain": 16, "what": 17, "you": 17, "can": 17, "find": 17, "thi": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "humbl": 56, "develop": 56, "organis": 56}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [17, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [12, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [52, "parameters"], [53, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[12, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[12, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[13, "ros2-control-hardware-interface-types"]], "Joints": [[13, "joints"]], "Sensors": [[13, "sensors"]], "GPIOs": [[13, "gpios"]], "Examples": [[13, "examples"], [17, "examples"]], "Mock Components": [[14, "mock-components"]], "Generic System": [[14, "generic-system"]], "Per-joint Parameters": [[14, "per-joint-parameters"]], "Writing a Hardware Component": [[15, "writing-a-hardware-component"]], "Useful External References": [[15, "useful-external-references"], [37, "useful-external-references"]], "Command Line Interface": [[16, "command-line-interface"]], "list_controllers": [[16, "list-controllers"]], "list_controller_types": [[16, "list-controller-types"]], "list_hardware_components": [[16, "list-hardware-components"]], "list_hardware_interfaces": [[16, "list-hardware-interfaces"]], "load_controller": [[16, "load-controller"]], "reload_controller_libraries": [[16, "reload-controller-libraries"]], "set_controller_state": [[16, "set-controller-state"]], "set_hardware_component_state": [[16, "set-hardware-component-state"]], "switch_controllers": [[16, "switch-controllers"]], "unload_controller": [[16, "unload-controller"]], "view_controller_chains": [[16, "view-controller-chains"]], "Demos": [[17, "demos"]], "What you can find in this repository": [[17, "what-you-can-find-in-this-repository"]], "Goals": [[17, "goals"]], "Examples Overview": [[17, "examples-overview"]], "Local installation": [[17, "local-installation"]], "Build from debian packages": [[17, "build-from-debian-packages"]], "Build from source": [[17, "build-from-source"]], "Using Docker": [[17, "using-docker"]], "To view the robot": [[17, "to-view-the-robot"]], "To run the ros2_control demos": [[17, "to-run-the-ros2-control-demos"]], "Quick Hints": [[17, "quick-hints"]], "Example 1: RRBot": [[19, "example-1-rrbot"]], "Tutorial steps": [[19, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"]], "Files used for this demos": [[19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "files-used-for-this-demos"]], "Controllers from this demo": [[19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "position_controllers": [[47, "position-controllers"]], "position_controllers/JointGroupPositionController": [[47, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[48, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[49, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[50, "steering-controllers-library"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "tricycle_controller": [[51, "tricycle-controller"]], "Velocity commands": [[51, "velocity-commands"]], "tricycle_steering_controller": [[52, "tricycle-steering-controller"]], "velocity_controllers": [[53, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[53, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[54, "simulator-integrations"]], "Hosted by ros-controls": [[54, "hosted-by-ros-controls"]], "Community": [[54, "community"]], "Supported Robots": [[55, "supported-robots"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Humble!": [[56, "welcome-to-the-ros2-control-documentation-humble"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Humble!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45, 46], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48719": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "128": 0, "8600": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": [0, 56], "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "35": [0, 50], "5628": 0, "09": [0, 56], "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 11], "04": [0, 9, 56], "03": [0, 21, 46], "27": 0, "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50], "01t10": 0, "36": 0, "22z": 0, "436": 0, "64382": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 44, 45, 46], "575": 0, "402": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 52], "70": 0, "03t11": 0, "19z": 0, "243": 0, "219": 0, "90": [0, 29], "08t21": 0, "46": 0, "52z": 0, "477": 0, "108": 0, "23": [0, 4, 33], "04t06": 0, "34": 0, "04z": 0, "1439": 0, "1147": 0, "80": 0, "1159": 0, "604": 0, "52": [0, 48], "268": 0, "244": 0, "91": 0, "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 20, 22, 24, 25, 29, 31, 32, 33, 34, 37, 43, 44, 46, 52], "develop": [0, 1, 4, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 46, 52], "inform": [0, 1, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 4, 9, 24, 35, 44, 46], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 35], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "06": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 50], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 3, 5], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 55], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "314": 0, "08t08": 0, "22": [0, 9], "manuel": 0, "muth": 0, "mamueluth": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": 0, "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "125": 0, "22t09": 0, "11z": 0, "github": [0, 4, 6, 10, 17, 29, 36, 54, 55, 56], "action": [0, 3, 5, 8, 44], "bot": 0, "123": 0, "11t09": 0, "03z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "25": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 35], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "bailac": 0, "68": 0, "08t11": 0, "14": [0, 17, 50, 55], "49z": 0, "olivi": 0, "stass": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "49": 0, "26t02": 0, "31": 0, "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "28": [0, 50], "wiktor": 0, "bajor": 0, "99": [0, 9], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": 0, "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "26": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 17, 33], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 7], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "21z": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 16, 20, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "najjar": [0, 7], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 17], "56z": 0, "970": 0, "21t01": 0, "00": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 21, 41, 44, 46], "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "09t10": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "167": 0, "152": 0, "07t18": 0, "86": 0, "63": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "98": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "106": 0, "25t06": 0, "01t20": 0, "107": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "95": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "111": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "62": 0, "andr": 0, "montano": 0, "anfemosa": 0, "60": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "172": 0, "157": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "14t09": 0, "89": 0, "198": 0, "96": 0, "23t02": 0, "78": 0, "173": 0, "79": 0, "220": 0, "199": 0, "10t19": 0, "27t13": 0, "191": 0, "183": 0, "25t01": 0, "69": 0, "14t18": 0, "164": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "194": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "113": 0, "87": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 43, 44, 45], "receiv": [0, 2, 4, 20, 29, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 20, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 46, 56], "consid": [1, 16, 35, 44], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 37, 38, 39, 46, 47, 50, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 4, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 35, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 29, 33, 35, 38, 43, 44, 45, 46, 47, 48, 50, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 4, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43], "give": [1, 7, 9, 17, 19, 20, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 4, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 56], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 20, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 20, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44, 46], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 37, 41, 44, 46, 50], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 4, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 4, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 35, 37, 44, 46, 50], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 45, 46, 50, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 20, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 48, 50, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "sphinx": 1, "doc": [1, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "theme": 1, "gener": [1, 6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "locat": [1, 3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "control": [1, 7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "org": [1, 6, 11, 32, 34, 52], "while": [1, 4, 6, 7, 29, 33, 45], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "written": [1, 15, 23, 28, 29, 37], "respect": [1, 3, 4, 5, 6, 7, 20, 44, 45, 46], "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 20, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": [1, 4], "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 4, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 4, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 4, 7, 8, 45, 46], "compat": [1, 2, 4, 7, 15, 17], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 46, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "detail": [2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 49], "joint": [2, 4, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 47, 50, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 4, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 35, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 35, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 20, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 20, 24, 29, 36, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "start": [2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 56], "stop": [2, 7, 8, 9, 12, 16, 19, 20, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 20, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 20, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 20, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 4, 5, 9, 12, 14, 15, 16, 19, 20, 25, 33, 35, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 20, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 20, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 20, 29, 33, 44, 46], "initial_valu": [3, 5, 20, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37], "link": [3, 4, 5, 7, 8, 12, 29, 33, 35, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 4, 5, 17, 29, 35, 41], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 37, 44, 45, 46], "For": [3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 44, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 38, 47, 53], "100": [3, 4, 5, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 13, 14], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 46], "example_gripp": [3, 5], "humbl": [4, 17, 29], "bug": [4, 56], "want": [4, 8, 9, 17], "thrive": 4, "roll": [4, 29, 35], "stack": [4, 7, 56], "earlier": [4, 6], "done": [4, 7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "ros2_control_ci": 4, "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 35, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "figur": [4, 45], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29], "executor": [4, 9], "custom": [4, 13, 14, 17, 20, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 36, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 45], "dynam": [4, 15, 21, 29, 33, 37, 54], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "ros2_control_demo_hardwar": [4, 13, 16], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 13], "joint1": [4, 13, 14, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 20, 24, 29, 31, 33, 44], "pure": 4, "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "ign": 5, "meet": [5, 56], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 14, 15, 25, 35, 42, 43, 46, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 20, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 20, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 9, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "part": [6, 7, 13, 29, 37, 45, 46], "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "intern": [6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7], "175": 6, "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 20, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "81": [6, 33], "302": 6, "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 45, 50], "scale": [7, 44], "factor": [7, 35], "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 15, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8, 20], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irrelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 20, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 16, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50], "frequenc": 9, "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "info": [9, 11, 12, 15, 29], "std": [9, 29, 35, 44], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45, 46], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41, 46], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": 11, "int": [11, 35, 48, 50], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 20, 21, 24, 31, 33, 35, 44, 45, 46, 50], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33, 46], "vacuum": [13, 20], "flang": 13, "off": 13, "rrbotsystemmutiplegpio": 13, "example_param_hw_start_duration_sec": 13, "example_param_hw_stop_duration_sec": 13, "example_param_hw_slowdown": 13, "flange_digital_io": 13, "digital_output1": 13, "know": 13, "digital_output2": 13, "digital_input1": 13, "digital_input2": 13, "flange_analog_io": [13, 20], "analog_output1": [13, 20], "analog_input1": [13, 20], "analog_input2": [13, 20], "flange_vacuum": [13, 20], "suction": 13, "grasp": 13, "multimod": 13, "multimodalgripp": 13, "parallel_fing": 13, "temperatur": [13, 17], "feedback": [13, 14, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "choic": [13, 50], "matric": 13, "rrbotforcetorquesensor2d": 13, "forcetorquesensor2dhardwar": 13, "fx": 13, "tz": 13, "kuka_tcp": 13, "fx_rang": 13, "tz_rang": 13, "temp_feedback": 13, "calibration_matrix_nr": 13, "mirror": [14, 20], "correspond": [14, 15, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": 14, "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 20, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 20, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "hardware_component_nam": 16, "hardware_compon": 16, "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "diagram": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "tutori": 17, "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "interface_nam": [20, 39, 40], "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "list_hardware_compon": [20, 23, 24, 26, 27, 28], "faster": [20, 24, 35], "genericsystem": [20, 24], "use_mock_hardwar": [20, 24], "ident": [20, 22, 24, 29, 31, 45], "unless": [20, 43], "nan": [20, 26, 44], "generic_system": 20, "wheel": [21, 32, 34, 35, 50, 52], "front": [21, 32, 33, 34, 50, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": 22, "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35], "rotat": [29, 35, 44], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 37, 39, 41, 42, 44, 46, 50], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "214": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44], "wrong": 35, "behav": 35, "correctli": 35, "curv": 35, "wheels_per_sid": 35, "number": [35, 50], "slip": 35, "account": 35, "present": [35, 46], "enter": 35, "huski": [35, 55], "wheel_radiu": 35, "slower": [35, 45], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50], "odom_frame_id": [35, 50], "pose_covariance_diagon": [35, 50], "covari": [35, 42, 50], "tune": 35, "sampl": [35, 45, 50], "001": [35, 41], "twist_covariance_diagon": [35, 50], "speed": 35, "open_loop": [35, 50], "cmd_vel_timeout": 35, "stale": [35, 44], "velocity_rolling_window_s": [35, 50], "old": 35, "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": 35, "numeric_limit": [35, 44], "quiet_nan": [35, 44], "min_veloc": 35, "max_acceler": 35, "min_acceler": 35, "max_jerk": 35, "min_jerk": 35, "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "write_op_mod": 35, "motor_control": 35, "500": 35, "millisecond": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "state_publish_r": [44, 46], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "deprec": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "hold": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "cumbersom": 46, "controller_st": [46, 50], "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 48, "rqt": 49, "nomenclatur": 50, "unstamp": 50, "concret": 50, "tricylc": 50, "seer": 50, "front_steer": 50, "front_wheels_nam": 50, "rear_wheels_nam": 50, "traction_feedback_typ": 50, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "averag": 50, "diagon": 50, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "mujoco": 54, "algoryx": 54, "agx": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "kinova": 55, "kortex": 55, "gen3": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 56, "toolkit": 56, "unreleas": 56, "question": 56, "wg": 56, "wednesdai": 56, "announc": 56, "discours": 56, "googl": 56, "tracker": 56, "reproduc": 56, "regard": 56, "built": 56, "gmt": 56}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 12, 14, 15], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 17], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 17], "run": [3, 4, 5, 17], "demo": [3, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 17], "binari": 4, "packag": [4, 17], "from": [4, 6, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 55], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 22], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 46, 50, 51], "line": 16, "list_control": 16, "list_controller_typ": 16, "list_hardware_compon": 16, "list_hardware_interfac": 16, "load_control": 16, "reload_controller_librari": 16, "set_controller_st": 16, "set_hardware_component_st": 16, "switch_control": 16, "unload_control": 16, "view_controller_chain": 16, "what": 17, "you": 17, "can": 17, "find": 17, "thi": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "humbl": 56, "develop": 56, "organis": 56}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [17, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [12, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [52, "parameters"], [53, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[12, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[12, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[13, "ros2-control-hardware-interface-types"]], "Joints": [[13, "joints"]], "Sensors": [[13, "sensors"]], "GPIOs": [[13, "gpios"]], "Examples": [[13, "examples"], [17, "examples"]], "Mock Components": [[14, "mock-components"]], "Generic System": [[14, "generic-system"]], "Per-joint Parameters": [[14, "per-joint-parameters"]], "Writing a Hardware Component": [[15, "writing-a-hardware-component"]], "Useful External References": [[15, "useful-external-references"], [37, "useful-external-references"]], "Command Line Interface": [[16, "command-line-interface"]], "list_controllers": [[16, "list-controllers"]], "list_controller_types": [[16, "list-controller-types"]], "list_hardware_components": [[16, "list-hardware-components"]], "list_hardware_interfaces": [[16, "list-hardware-interfaces"]], "load_controller": [[16, "load-controller"]], "reload_controller_libraries": [[16, "reload-controller-libraries"]], "set_controller_state": [[16, "set-controller-state"]], "set_hardware_component_state": [[16, "set-hardware-component-state"]], "switch_controllers": [[16, "switch-controllers"]], "unload_controller": [[16, "unload-controller"]], "view_controller_chains": [[16, "view-controller-chains"]], "Demos": [[17, "demos"]], "What you can find in this repository": [[17, "what-you-can-find-in-this-repository"]], "Goals": [[17, "goals"]], "Examples Overview": [[17, "examples-overview"]], "Local installation": [[17, "local-installation"]], "Build from debian packages": [[17, "build-from-debian-packages"]], "Build from source": [[17, "build-from-source"]], "Using Docker": [[17, "using-docker"]], "To view the robot": [[17, "to-view-the-robot"]], "To run the ros2_control demos": [[17, "to-run-the-ros2-control-demos"]], "Quick Hints": [[17, "quick-hints"]], "Example 1: RRBot": [[19, "example-1-rrbot"]], "Tutorial steps": [[19, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"]], "Files used for this demos": [[19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "files-used-for-this-demos"]], "Controllers from this demo": [[19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "position_controllers": [[47, "position-controllers"]], "position_controllers/JointGroupPositionController": [[47, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[48, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[49, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[50, "steering-controllers-library"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "tricycle_controller": [[51, "tricycle-controller"]], "Velocity commands": [[51, "velocity-commands"]], "tricycle_steering_controller": [[52, "tricycle-steering-controller"]], "velocity_controllers": [[53, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[53, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[54, "simulator-integrations"]], "Hosted by ros-controls": [[54, "hosted-by-ros-controls"]], "Community": [[54, "community"]], "Supported Robots": [[55, "supported-robots"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Humble!": [[56, "welcome-to-the-ros2-control-documentation-humble"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/iron/.buildinfo b/iron/.buildinfo index 922a5e01998..caad6dd224e 100644 --- a/iron/.buildinfo +++ b/iron/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 9e810801563c56810515e625669e7513 +config: 8a07d02385238900c35cfb2c8f8a503f tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/iron/.doctrees/doc/acknowledgements/acknowledgements.doctree b/iron/.doctrees/doc/acknowledgements/acknowledgements.doctree index 0c1ea6ab64ca642cc5349861699b05544f8cfb2b..065f20b6b5006fb1da570d39b4f35c93c3499504 100644 GIT binary patch delta 146 zcmezT!}IeG&kaV5Mma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT z*wQe?+&IbHM1T4Re_qkaIvWL=I~m(M89|r{h?#+y1&CRJm<@>8ftUk`If0l9h`E87 Y2Z(urm=B2gfmi^D1-ExH3cacV08#5Kg#Z8m delta 146 zcmezT!}IeG&kaV5M)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M zCdr9r#>vTs#;N+#Klt;CPS)8d(A>$`-pL5UOhC*G#4JF}3dC$c%nrmHK+FlmTtLhX Z#5_RE3&eat%n!r@KrFbulTqkZ6#)I_E+GH_ diff --git a/iron/.doctrees/doc/contributing/contributing.doctree b/iron/.doctrees/doc/contributing/contributing.doctree index fdcde862f065a678b8718d94df30268e591e6294..f488ed4334bea2e68e4dcb772881a3cc27255bbd 100644 GIT binary patch delta 64 zcmaERl=1CR#tq?&hB-!=sp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT S*wQe?+&IbHWOD~&Y9au&Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M TCdr9r#>vTs#;Kb-7*i7g-RKn{ diff --git a/iron/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree b/iron/.doctrees/doc/differences_to_ros1/differences_to_ros1.doctree index 197092c83b6e77d2ef59d17a9af7e9ef25c00ea3..3d764012c776393fe3cf76784cf9e7d2147008bc 100644 GIT binary patch delta 64 zcmey+$Mm6(X@eG{VUAH|YI=rIj=qt(frXi+X=-w!kvWhuNlGy?GcvSHGBzA)*&NL%+6DlUG!mHr delta 64 zcmey+$Mm6(X@eG{VSZ6znNfC9j=rg}Ns^_pVN#NXX-cArnMsn7iJ66&Noq<`YO<-R TNphl@adNVuaq8x1M$t9^x;GRx diff --git a/iron/.doctrees/doc/gazebo_ros2_control/doc/index.doctree b/iron/.doctrees/doc/gazebo_ros2_control/doc/index.doctree index 7995860b1f4ba5ff38a4b707140dfcf0a69b627b..b0ef588ad71a1fcff2083a7d6898080ccf11908f 100644 GIT binary patch delta 129 zcmaF3mFeMDrVSR1Mma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT g*wQe?+&IbHM1S%=4%yA^jIS%n(<`xgPqnH%00uTDQ~&?~ delta 129 zcmaF3mFeMDrVSR1M)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M hCdr9r#>vTs#;N*~_i@N>ZfAU5NuFMb&3md<KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT S*wQe?+&IbHWOE|p&bt7D%oA1s delta 64 zcmbQWk9pQU<_!jnhWSN>Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M UCdr9r#>vTs#;KbV8F$_V0IJUv@&Et; diff --git a/iron/.doctrees/doc/gz_ros2_control/doc/index.doctree b/iron/.doctrees/doc/gz_ros2_control/doc/index.doctree index b875236474aac0b7a04be6e1b69e5c5d53de32eb..2fd3904f75c526008850a69cb15279888ea0e080 100644 GIT binary patch delta 123 zcmdn8f@#YNrVR#+hB-!=sp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT e*wQe?+&IbHWOE|pwldPSO-^JK-5gtST^az#xFd-G delta 123 zcmdn8f@#YNrVR#+hWSN>Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M fCdr9r#>vTs#;KbV8Ml>@u5EH6qv+KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT S*wQe?+&IbHWOFRzv0?z49}`yq delta 64 zcmZ4digEEP#tk}*hWSN>Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M UCdr9r#>vTs#;KcQ8IKhM0Ky^^^8f$< diff --git a/iron/.doctrees/doc/resources/resources.doctree b/iron/.doctrees/doc/resources/resources.doctree index 23f994211fc55db61098b1888911f8d065339f48..404e3793a9af079cab6edc4c43d7ef35233f8897 100644 GIT binary patch delta 68 zcmZ41%et(Wb%P3{VUAH|YI=rIj=qt(frXi+X=-w!kvWhuNlGy?GcvSHGBzA)X%1!F9?HlV=n4S0of6gn delta 68 zcmZ41%et(Wb%P3{VSZ6znNfC9j=rg}Ns^_pVN#NXX-cArnMsn7iJ66&Noq<`YO<-R XNphl@adNVuacXlYKC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT S*wQe?+&IbHWOF7XYZ3siyAtaF delta 64 zcmaENjPczu#tjyXhWSN>Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M TCdr9r#>vTs#;Kb#8CjD6*1i;n diff --git a/iron/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control/controller_manager/doc/userdoc.doctree index ed0004a0f478bde1c1fc89cf1dd1b09d236bb662..bb1845d79e9397b079f1bc05644d6cabbf94fc8d 100644 GIT binary patch delta 69 zcmbRAlyTBi#tm+aMma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT X*wQe?+&IbHM1L|*n8xM>jGqbs_GA?P delta 69 zcmbRAlyTBi#tm+aM)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M ZCdr9r#>vTs#;N*~dBQX{FJSys001U}7McJ6 diff --git a/iron/.doctrees/doc/ros2_control/doc/index.doctree b/iron/.doctrees/doc/ros2_control/doc/index.doctree index b0affda04d957ce53f6a6adf01b91aee57094aaf..0b489c9a54026a4592392609c051b52ff5613635 100644 GIT binary patch delta 62 zcmaE2_{4C79iw56QD$m-hEa~bk-33|nWbrJa-xwrkTOY1F)}kUv`jKKF)*<-F)+3? QOfff3GB??r&sZuB0APy|+yDRo delta 62 zcmaE2_{4C79iw4>QDK=;c2bVMsj*3trLkdBl7(qXqKTPFl97p-g_%ieN>XaFsi{eF RqM31WvY~P6=6uFdaR7*p6LKC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT S*wQe?+&IbHWOF^EcM$-x+!JR2 delta 64 zcmX^0obl9i#tnXqhWSN>Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M TCdr9r#>vTs#;Kd@8NG`D+TRre diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree index fcc06abc5234864c50456f7a1929ea24eb3c1673..d130d9bbca100147abfd0aca719cff639f7d0323 100644 GIT binary patch delta 69 zcmZ3ol5xpO#tj~fMma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT X*wQe?+&IbHM1QhBtMlf)jL(Ar;q?@) delta 69 zcmZ3ol5xpO#tj~fM)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M ZCdr9r#>vTs#;N*~{aKwi?`3=*1OO5f7D)gA diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.doctree index 0cb195bdeb09838805cfbd34da135f90f2844ca7..325cf654dc95375799039bcfb2fa5e22de07bdbb 100644 GIT binary patch delta 69 zcmdmgg>nBC#tlJ?Mma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT X*wQe?+&IbHM1S&0E|1M;7>hFi41X1P delta 69 zcmdmgg>nBC#tlJ?M)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M ZCdr9r#>vTs#;N*~PjY!|KEqg?0RTLX7Zd;h diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree index cfe0e9038c07ab4e3f841583a145ac187d273c19..ecf7c9a8d1935b1f207e31356feedd589f4496dc 100644 GIT binary patch delta 62 zcmexg^1oz*1EXP%QD$m-hEa~bk-33|nWbrJa-xwrkTOY1F)}kUv`jKKF)*<-F)+3? QOfff3GB?>=$jE020F0j!R{#J2 delta 62 zcmexg^1oz*1EXPnQDK=;c2bVMsj*3trLkdBl7(qXqKTPFl97p-g_%ieN>XaFsi{eF RqM31WvY~P6=0Zk3O8~T@6Y~H7 diff --git a/iron/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree b/iron/.doctrees/doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.doctree index ded37c8e2e88904348f86bc36f7f9e1ed7a96c04..12fa068421c304b2e31dd115b3688e2e884f27cf 100644 GIT binary patch delta 64 zcmaFb!1A<#WrH81VUAH|YI=rIj=qt(frXi+X=-w!kvWhuNlGy?GcvSHGBzA)*<8=~>>mJ;yA%8X delta 64 zcmaFb!1A<#WrH81VSZ6znNfC9j=rg}Ns^_pVN#NXX-cArnMsn7iJ66&Noq<`YO<-R TNphl@adNVuaq8xJ#%KQkxxN*c diff --git a/iron/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index 4d71cd7449a2de978b4a8f50a14eb6f8258e6ba6..c85543dad5c692d518922ef0fe8c218244111cdf 100644 GIT binary patch delta 64 zcmaF%iSgMd#tn9ihB-!=sp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT S*wQe?+&IbHWOF{__i_NkUKBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M UCdr9r#>vTs#;Ke08NZhU0PA5D;s5{u diff --git a/iron/.doctrees/doc/ros2_control_demos/doc/index.doctree b/iron/.doctrees/doc/ros2_control_demos/doc/index.doctree index 5a9a8510d0d2e5d7b366e989bfabaf3ba74ad99b..001ce8f832218f5d99ed0508e6ee131e19563643 100644 GIT binary patch delta 69 zcmdng!Mv%1d4n0FQI1h&YI=rIj=qt(frXi+X=-w!kvWhuNlGy?GcvSHGBzA)(VyJ7NqloXlrs60ssk37RCSo diff --git a/iron/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree b/iron/.doctrees/doc/ros2_control_demos/doc/run_from_docker.doctree index d9ec3713bb188efc9d593a7b06b8eb8dafd80cd1..8673b671dee250996a4d64719cb8fa5ec79f029b 100644 GIT binary patch delta 62 zcmeB_>Xh2h&tjNkl$n~IVU(k9WNu(#W@(z5oM>bYq)d`hjLeJ-Et8B*3`{Id42&%e QQ_PK%%uO~QVDaPt06qK>WdHyG delta 62 zcmeB_>Xh2h&tjNgR9I$|os^?*YHX5ZX>6F3WMP_;XkuoPWMpDyVP=w=l9ZZkYHE_4 RXl9(8Y-pUi`2dS22LNUN69E7K diff --git a/iron/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree index 80e4be29f68c7f9f6ba27ebbf0f3356cfc40e52d..4d97c6530fbd8b44a52f2a133ab9040d4fd17750 100644 GIT binary patch delta 76 zcmezSpXKj=mJLyiMma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT f*wQe?+&IbHM1K;$_+(iD(dHeD+jlTBy4nE%+H4mL delta 76 zcmezSpXKj=mJLyiM)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M gCdr9r#>vTs#;N*~_{As73WzrEVBEfgkA)+1$(cw-*3*QWHV| delta 64 zcmeC0&(t-aX+sR7VSZ6znNfC9j=rg}Ns^_pVN#NXX-cArnMsn7iJ66&Noq<`YO<-R TNphl@adNVuaq8w?#=pG)o>dgy diff --git a/iron/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree index dd482ab6b8aa049470672a44dd6c49a40848eabd..e23b03c8e833314a2787a32cea0277c85f9c0edd 100644 GIT binary patch delta 73 zcmaFf$@ILFX+sR7QI1h&YI=rIj=qt(frXi+X=-w!kvWhuNlGy?GcvSHGBzA)(VuK6AU=6*i}dCLjOxt*PInd^ delta 73 zcmaFf$@ILFX+sR7QGQWjnNfC9j=rg}Ns^_pVN#NXX-cArnMsn7iJ66&Noq<`YO<-R dNphl@adNVuajO1gLjm#0Yg?o@A7E5(1^|Ti7r6ic diff --git a/iron/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_12/doc/userdoc.doctree index 51e5184b4b94c4cdbf3765900dc7a04bec793f9c..d33aff3a674dc86b06e96243e0b135b016d77847 100644 GIT binary patch delta 73 zcmX^7m+A0drVTNSMma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT c*wQe?+&IbHM1S%GF7e5o`=mD?U}WA40DjpQLI3~& delta 73 zcmX^7m+A0drVTNSM)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M dCdr9r#>vTs#;N*~Cvb^R?%XH6`2ZvHUI4XN7~TK? diff --git a/iron/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree index c05ff6b8f8fdc2fa98459fbf73cb4e0fda9c6fe9..1a4fccb2a047373524d61f4070f26bc9fbfdcae1 100644 GIT binary patch delta 73 zcmdn7oN32$rVTNSMma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT c*wQe?+&IbHM1Qg%zxd?3$vTs#;N*~1^LA%*G-n*e1P%CL;!kG7&QO@ diff --git a/iron/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_2/doc/userdoc.doctree index f4ec017ed46429c70452ff7ae0bdbdeeb28b0692..142d8cdb4803c41140652d19579c5a03c2e0e868 100644 GIT binary patch delta 69 zcmcb&hUwlKrVUYyMma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT Y*wQe?+&IbHM1QiQlvTs#;N*~9i>z^Z)99M1pqcA7Q6re diff --git a/iron/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree index f0bc2236c43402e2937e9547c0a1ca5853af3a17..b8f04db3005a4c3de6bb899774e0289f9f2c566c 100644 GIT binary patch delta 73 zcmaFxhUvi@rVUYyMma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT c*wQe?+&IbHM1Qg%pZH|;ZBm=}GA`Z%0DV9g1^@s6 delta 73 zcmaFxhUvi@rVUYyM)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M dCdr9r#>vTs#;N*~1^L7$t8bIqyq9tD767xq7@`0G diff --git a/iron/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree index 6bc3f18ebb5b5b7c9da61d0cd4f6c162332d0bb4..690b0f79cad4049691f2e3ec13d2e219934eb5ec 100644 GIT binary patch delta 73 zcmX@KjOoxarVUYyMma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT c*wQe?+&IbHM1QgZzxd={KGDrP7`r9{07SqQ#sB~S delta 73 zcmX@KjOoxarVUYyM)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M dCdr9r#>vTs#;N*~75K#`_wtEu-oe;45deEX7h(Va diff --git a/iron/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree index 49b457d5631f23d65c37383089fc35c1ceefb853..2b10e343cd095d08a72a45e73db82d286d1874cc 100644 GIT binary patch delta 69 zcmX@NpXuCwrVUYyMma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT Y*wQe?+&IbHM1S(c7}d=i8D-}I01CVnG5`Po delta 69 zcmX@NpXuCwrVUYyM)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M ZCdr9r#>vTs#;N*~C&s95-pD9B4*)vL7R~?w diff --git a/iron/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree index dab4231b7af8d054e05c2ebb32b97b492f0d88be..0524efbaad6bfcbccb2d4d1ff14183276abdd47d 100644 GIT binary patch delta 73 zcmccF#B{TXX+spFQI1h&YI=rIj=qt(frXi+X=-w!kvWhuNlGy?GcvSHGBzA)(Vra1BR*N7QEKyE#yRx>Kk*gn delta 73 zcmccF#B{TXX+spFQGQWjnNfC9j=rg}Ns^_pVN#NXX-cArnMsn7iJ66&Noq<`YO<-R dNphl@adNVuajO30KpyeQ3XM{m_cG3@2LN_(7lr@; diff --git a/iron/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_7/doc/userdoc.doctree index 3ee80ffb34685007da9557d2b43fc413b58d5e73..ba55ad6faeb88e23986f954fdfc557395e9ade9e 100644 GIT binary patch delta 73 zcmX?bknO-hwhd8?Mma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT c*wQe?+&IbHM1S%vTs#;N*~?>VV9Z)DuQk&%&qJ^+^l7#;us diff --git a/iron/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree index 58fd9673623aa94d505a1b0efcbe2c7d9c24f063..4f654d82234e0a58c9cfd9de8ae72c33f3a5c042 100644 GIT binary patch delta 73 zcmZqp%GmIgaYGcNQI1h&YI=rIj=qt(frXi+X=-w!kvWhuNlGy?GcvSHGBzA)(Vu*fM|`q-mDJ|FjE5@#QKC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT f*wQe?+&IbHL_Z}zc`{?T$mDbU+?&@iX7>UBahDd( delta 76 zcmbO^k7?#SrVUYyrujvMWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M gCdr9r#>vTs#;N)#`N@+R!$l^aWSJA!)TOal$n~IVU(k9WNu(#W@(z5oM>bYq)d`hjLeJ-Et8B*3`{Id42&%e ZQ_PK%%uVzsU*s2^93w2Z`5>dWHUR&w6tDmQ delta 71 zcmeB)>WSJA!)TOWR9I$|os^?*YHX5ZX>6F3WMP_;XkuoPWMpDyVP=w=l9ZZkYHE_4 aXl9(8Y-pUSKlviR=;Rn-xy=U|y|n>0JQhp< diff --git a/iron/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree index d55e413ba33cf5bae37f5bedc8fdec2127d9c5f8..84e506e1fd762f356771c532a632a81b1fb93e92 100644 GIT binary patch delta 127 zcmX@!zA)*<8yg)j_(p$+e6+lk18^H*XaFsi{eF WqM31WvY~OR{$xQx(arN2l~e)j)f8y} diff --git a/iron/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/diff_drive_controller/doc/userdoc.doctree index 9694c08df4feec8e870878ea9090c13de55cb17a..f02412932792822c58d3c7ec55e4339495dfdc4b 100644 GIT binary patch delta 123 zcmcb%konp|<_$iKhB-!=sp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT e*wQe?+&IbHWOFU!*F&Uhn_SDNv-$iHb{+s3GbEM( delta 123 zcmcb%konp|<_$iKhWSN>Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M gCdr9r#>vTs#;KcY8NVJPUEAbZMxD*)kFfIq0M4B!&Hw-a diff --git a/iron/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/iron/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index 08e0a3fb82a16c53f1f98dfdb6f044e86f2eb145..932c37083c4785adbe5890b94ce89d912e60419d 100644 GIT binary patch delta 67 zcmexZ^RZ@w2BT4qQD$m-hEa~bk-33|nWbrJa-xwrkTOY1F)}kUv`jKKF)*<-F)+3? VOfff3GB?qmT*xE3IiHcq769Y96Mg^y delta 67 zcmexZ^RZ@w2BT4aQDK=;c2bVMsj*3trLkdBl7(qXqKTPFl97p-g_%ieN>XaFsi{eF WqM31WvY~OR{^UX)(argcOtt_M*A*H7 diff --git a/iron/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree b/iron/.doctrees/doc/ros2_controllers/doc/writing_new_controller.doctree index c90b46e2e5156fc00e76da444ae79d07a9ae3840..0f92b04ebc0f2553c16b0b94508a1b70c8da32b9 100644 GIT binary patch delta 64 zcmZ2KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT S*wQe?+&IbHWOE_o#+Lw=2ot&h delta 64 zcmZ2Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M UCdr9r#>vTs#;KbN88^NJ0KN+qRsaA1 diff --git a/iron/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree index 32f1a6a34d3f176627c43e55268b4ca2dbc939b8..62ca146b6cbf5be4044dcac9fa417a6260d94e25 100644 GIT binary patch delta 62 zcmbQ|FwbFw8>3;4QD$m-hEa~bk-33|nWbrJa-xwrkTOY1F)}kUv`jKKF)*<-F)+3? QOfff3GB?>=&bV9-07!}vw*UYD delta 62 zcmbQ|FwbFw8>3-XaFsi{eF RqM31WvY~P6=5og6asY6R6H@>H diff --git a/iron/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.doctree index 764e3f69c969a5f8486c8fc8e6cba89fcc18712b..140a3ed2bbfada27d965e9399463662ac4acebca 100644 GIT binary patch delta 123 zcmX>+f${JJ#tjLKhB-!=sp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT e*wQe?+&IbHWb;JEa%+f${JJ#tjLKhWSN>Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M fCdr9r#>vTs#;KbpGL~DDu5I!}MzhWNwpX|SdS)i4 diff --git a/iron/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree index 27a10986c124e5a87432c238ed0a7a76e141e791..2e8e94630390dbddffcd91c0207ac41bdfd0f88e 100644 GIT binary patch delta 67 zcmX?`ayDf{7^6{+QD$m-hEa~bk-33|nWbrJa-xwrkTOY1F)}kUv`jKKF)*<-F)+3? VOfff3GB?qm+$m+Sc?aWE0|3+>6hr_3 delta 67 zcmX?`ayDf{7^6{sQDK=;c2bVMsj*3trLkdBl7(qXqKTPFl97p-g_%ieN>XaFsi{eF XqM31WvY~OR{^U+6gUve_ry2kN1Uwbs diff --git a/iron/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/gripper_controllers/doc/userdoc.doctree index 25e5fc774d476aca487e414d4d7c07404f6fe17d..2ede56169e3004ad9538aa4a260820ff1844936d 100644 GIT binary patch delta 67 zcmeCm>B`yQ!Dy6Yl$n~IVU(k9WNu(#W@(z5oM>bYq)d`hjLeJ-Et8B*3`{Id42&%e VQ_PK%%uVzs&lS+zyqGcF1OTzZ6NCT& delta 67 zcmeCm>B`yQ!Dy6UR9I$|os^?*YHX5ZX>6F3WMP_;XkuoPWMpDyVP=w=l9ZZkYHE_4 WXl9(8Y-pUSKY6Zz=H|tW=_UZ-(G?&7 diff --git a/iron/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree index acb510952483e4694a3c7b1747a9b09e667e79e0..e80c9b16c0b028dc1ab6915d86f37e3b6d28f8a2 100644 GIT binary patch delta 133 zcmdnr$hg0eaf2VDQI1h&YI=rIj=qt(frXi+X=-w!kvWhuNlGy?GcvSHGBzA)(Vr|RsIz$uqpvZUdMBSXQr}!>>c|ZM^Ccw} delta 133 zcmdnr$hg0eaf2VDQGQWjnNfC9j=rg}Ns^_pVN#NXX-cArnMsn7iJ66&Noq<`YO<-R kNphl@adNVuajO1gK|!6(YZ!fv$<#aftdaWWI#Wk(0Kmd1O#lD@ diff --git a/iron/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.doctree index 6f7b3d21240f898d7b52f4e4bea6ad1bac961341..6b242001189c6683dd9f202a84fb452b52b28ae0 100644 GIT binary patch delta 64 zcmeynpYiX0#ti|ChB-!=sp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT S*wQe?+&IbHWOE~9O&kEZQxl#5 delta 64 zcmeynpYiX0#ti|ChWSN>Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M TCdr9r#>vTs#;Kbd8EfJI;Z_wo diff --git a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/parameters.doctree index 1ccbb4087ce4b8d40cb9aec80349e7f13ec7a80f..5aff7d34ce4fe358a7f5d78c647c501ea5a6c72e 100644 GIT binary patch delta 69 zcmbPunQ7u>rVVP0Mma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT Y*wQe?+&IbHM1QhniT&p3jK7ux0O&0hQUCw| delta 69 zcmbPunQ7u>rVVP0M)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M ZCdr9r#>vTs#;N*~Elcb-PiOqK8~_+g7VZE5 diff --git a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree index 7fd83a2e1ad7832758bdab00dad516cda2f80026..7f868a9505048b4440479e958a282d8286f2cad6 100644 GIT binary patch delta 69 zcmX@Img&e^rVTZWMma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT Y*wQe?+&IbHM1OL8tNrG;jMt|C00!L_82|tP delta 69 zcmX@Img&e^rVTZWM)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M ZCdr9r#>vTs#;N*~<6G@Fzh%5W1pqee7qtKY diff --git a/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree index 0c5b0878f77eaa44fc707b2751f9dbfac1be4d5e..79e461ee5bf0130a9e0c017028d62134d077d43a 100644 GIT binary patch delta 69 zcmex+o$2p&rVSB{Mma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT X*wQe?+&IbHM1Qg)kIm*|jOMEVEAJI> delta 69 zcmex+o$2p&rVSB{M)^gBWk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M ZCdr9r#>vTs#;N*~9eHdvA7eCM1pr(A7YqOZ diff --git a/iron/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree index d8769e7ba87b5fefef5f440431b8df3d27da11fc..c5b1d4c167292b5af14e32f641d26260195656ca 100644 GIT binary patch delta 62 zcmaFj@Wf$*7o%a0QD$m-hEa~bk-33|nWbrJa-xwrkTOY1F)}kUv`jKKF)*<-F)+3? QOfff3GB?>=&G=Fd0Bc?njQ{`u delta 62 zcmaFj@Wf$*7o%Z*QDK=;c2bVMsj*3trLkdBl7(qXqKTPFl97p-g_%ieN>XaFsi{eF RqM31WvY~P6=4!^5asZQI6e$1z diff --git a/iron/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree index 9eb59dca7fdae741f505b015622cde0322931e78..73fd45c82b4c63ae47170fb7fea8d14abb838161 100644 GIT binary patch delta 121 zcmdl}yr+0W5Tjv^QD$m-hEa~bk-33|nWbrJa-xwrkTOY1F)}kUv`jKKF)*<-F)+3? cOfff3GB=s5r>DPp6Qj2d=~_4I>Gg2~0FW~xD*ylh delta 121 zcmdl}yr+0W5Tjv!QDK=;c2bVMsj*3trLkdBl7(qXqKTPFl97p-g_%ieN>XaFsi{eF dqM31WvY~P6WIa9o&6^m#bx7B`Sx>Kz8vs8%C1U^p diff --git a/iron/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree index d3f9f0e4f41f2bca1c97330117d6a4576f0139bb..2ce82ef6891f8883473832ec812acfb190cc5664 100644 GIT binary patch delta 62 zcmbO)H(zc;0;6G$QD$m-hEa~bk-33|nWbrJa-xwrkTOY1F)}kUv`jKKF)*<-F)+3? QOfff3GB?>gk+F{#06zl}e*gdg delta 62 zcmbO)H(zc;0;6GmQDK=;c2bVMsj*3trLkdBl7(qXqKTPFl97p-g_%ieN>XaFsi{eF RqM31WvY~P6=824byZ~ng6B_^k diff --git a/iron/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree index 0bd539df181d29cdf9746ba6a769ff249ae6a2f2..aae66f9d2a60324951c256d9605df212f21fd49e 100644 GIT binary patch delta 69 zcmeylo$2RxrVUYyMma{Asp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT X*wQe?+&IbHM1OLhuvTs#;N*~`-E*bpJX(c1prJ-7Y6_U diff --git a/iron/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree index 6ab9e3aaba5c6bdba62026bd369bb14e1e2f73cf..b788c81966e1e20061d4dcb6fe2849f0100ba968 100644 GIT binary patch delta 64 zcmeD9z}WGDaf1h=VUAH|YI=rIj=qt(frXi+X=-w!kvWhuNlGy?GcvSHGBzA)*<8ukUj_h{6B982 delta 64 zcmeD9z}WGDaf1h=VSZ6znNfC9j=rg}Ns^_pVN#NXX-cArnMsn7iJ66&Noq<`YO<-R TNphl@adNVuaq8wu#{Mz@z7`bC diff --git a/iron/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.doctree index ce9cb55f75de649259dd3398c04c10404696ed70..f7afe17e436358a834ecbd47e847c0afd0cfb2a7 100644 GIT binary patch delta 71 zcmaDI_&RVy6r)j&QD$m-hEa~bk-33|nWbrJa-xwrkTOY1F)}kUv`jKKF)*<-F)+3? ZOfff3GB?qm+|MsM`6s)^=97#{>Hsg*6^;M^ delta 71 zcmaDI_&RVy6r)joQDK=;c2bVMsj*3trLkdBl7(qXqKTPFl97p-g_%ieN>XaFsi{eF bqM31WvY~OR{^Wjs(aAsAH8!7QR8j{3W>gm{ diff --git a/iron/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree b/iron/.doctrees/doc/ros2_controllers/velocity_controllers/doc/userdoc.doctree index de1f3819007d04b9cf4cdb00e8b79244d48a7a05..64c0ec21b84f0feced9b87c2c4e0bb11c84e2688 100644 GIT binary patch delta 62 zcmaFj@Wf$*7o%a0QD$m-hEa~bk-33|nWbrJa-xwrkTOY1F)}kUv`jKKF)*<-F)+3? QOfff3GB?>=&G=Fd0Bc?njQ{`u delta 62 zcmaFj@Wf$*7o%Z*QDK=;c2bVMsj*3trLkdBl7(qXqKTPFl97p-g_%ieN>XaFsi{eF RqM31WvY~P6=4!^5asZQI6e$1z diff --git a/iron/.doctrees/doc/simulators/simulators.doctree b/iron/.doctrees/doc/simulators/simulators.doctree index c540bba1d54ecac75a537aaceca1158e660f783e..b3f017543ff3a4e49101ebd8197829dcbdc87086 100644 GIT binary patch delta 62 zcmZoNZ!+JY#%P#hl$n~IVU(k9WNu(#W@(z5oM>bYq)d`hjLeJ-Et8B*3`{Id42&%e QQ_PK%%uP0jGipl#04`n-tpET3 delta 62 zcmZoNZ!+JY#%P#dR9I$|os^?*YHX5ZX>6F3WMP_;XkuoPWMpDyVP=w=l9ZZkYHE_4 RXl9(8Y-pUiIh;{j3IJAN5=j66 diff --git a/iron/.doctrees/doc/supported_robots/supported_robots.doctree b/iron/.doctrees/doc/supported_robots/supported_robots.doctree index 6b466217773a3c8bf57f6c0b0e923f3efb4c3def..1b461bdd298a0a6e7f8ffe03275ce1cafd28d51b 100644 GIT binary patch delta 64 zcmX@QgYoDN#trd|hB-!=sp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT S*wQe?+&IbHWb*{Ztx*7;pA&Nc delta 64 zcmX@QgYoDN#trd|hWSN>Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M UCdr9r#>vTs#;KbpFm8aKdKx~4;QPftzn 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 VB_+Kmxk=Ldlyp=A&a*c){|jG2RO$c# delta 36141 zcmeIb2Xqui^DoLOts=_OD(9S5+S!)KA_oyf&Osm%mLL&L7T6fjB0w-QWxzz+7;JJH zW1D1x0RskX;{Z0`NHPd)Fv)PMx@QOU{l9zPhtB`Kd*3^cbJSJ!>+0&B?&_YNn%-g4 zo(sB7_*e0>sd&uj30cDjj;Jh8G@GP>bxfH92j-Xy3nV5D%#v6RlZpxl77a3+r9lPE zG-yz!sYnjc_0g;4c1+R@@#~l=)itun6eIqtEY}Y#7+X|0Y)oZ&os4lKOX$y5Nk*N* z!3E|)%$zeQr@)-avRF=Lrcuf)%qcPz6&BJug`HUDyZ}a^&UB(&cT1_2fU}0_4lF338)EZ`sS>C~u7kmw)V> zD$k3^mK)TGhc8E@1jq;41<1uK+~glCeB}YMLH;`?NWQ)(O_mdlx^%gqrJuYy!b{$q z<}T0A3qTXTa>PnE`JccB@_{guys?e99GMs)&u^q%M1cGl>nrIPD_?FADX;C|BUg2H zkc|WU5I4(^6eEufr3>_zQ$yTzj&g(CFzS#Hc|~70?2Ni{qqs~tBC4GuI#OnqJUYs^ zR2xR~psc|X%aRHP6=q49MOj%n#vGQDZ7z@oWfd6*)hQZWP-ra3DXJX0v%KDaak&4q zG&;f1-Q_JZh8B-3$`~_#l&nuP%Q?~hbzZt1Wa%TD7yaMnLD>2KJr1+j+Ty?4Y4Y{1?1{(*nL4^h6HG>KZ>#!WN zWM=H&`^SG;TKGq^=l*fAt68p}=KI_~Ud9slkE-tB^7vi>az*n{d0|60c|jn}%&cmw zh+IEXE;W0~Z>9X3)ucWy5VUB};z0|<3Mo?lVws2BJ>LK&XER;o{S|)P^2mYzWl`WO zmweldlOET!P$@t@la?$W$*v{r6*O1&gfG`IZ@zp~)r*!V zHxH0k=Y;d>E*g>`zdZ|-uhyjo@=1@YMii{-%{=54o$AY{yS0+@=O@OtSmybC=u28gOJH`Qk`x{GnjF8Q@6OkA#&u z;U4no{(5e{9}f0g3k+z=Z%L;#H@T!mG+aKLKyA#BO}I=OO}_Gn9sT5M4eH>9KVQlZ zCgy3Y^_nh`@}a!ePL9Jy6&6jD&ooSuOLOZx&`K{`*PypO*eNcehs0C)~?e`G3oVD;^Xpo2>s0ldiB& zq(h71iIe0-iMW|IdHrACi>E>d^0uxbwcG;odV>N$k_k0ZjJxvPt_e3i#0;_X%e8_cl*XPkkfG| zSCW}TyCiWBo|oY(?(K`~N7>eP+&0N3+$+#ti#98ozqFH61>aVQE!5)3 zWVt`?1!!Lv)+|7NyGIUI(SdKoUc95@t)Fic(|ghLpm;XGot)gHB1X15k_u}-V1e}5 znj&8+(#zeOM&PE2>W|$m-R)2Ktp6|=|B=q>uGrtSpNq%dM zx9uVh=H>=RJ>#*(QMgm`#D_m`+oqQ)$&phcGvp5Fq_m~FT+sx^ zc1vOMs*1+8K9gzVv$UB}p0O}Y9vv4XH-015$83U|&{0lbnyh;&&s^azU;Ze<&hkuNxHMa5zj#?3UzJq7+YYjB zS+>p(VeCj>IcHfsZd5&B;b9YAnw_Iuu`~w#%~$sq7LSFJpco%J%OAuqws@#rc#}kQ zLJ!Dj8RsM~SQ;m9S?(+Uv@DKXNUg|$o1)o(2CnlGrDhL!_L<31E?wcIYa$=aGRXsa zxye;;ImyPAj&jo#0Z=i8MG@c-K)tx;bz>ktA|w!^dn`9v(b&$#5oSJ�@q^TXIAF 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 diff --git a/iron/.doctrees/index.doctree b/iron/.doctrees/index.doctree index f8da658eac78acb073b5912774e51e08f6a822ae..c39911666c8e715b7eee20a6d9328bf20e522e62 100644 GIT binary patch delta 83 zcmbPxopJ7U#tmkShB-!=sp%O;Ir>KC1{P+Prm4w^M&>}uBq_zn%*fC($=Jle#L~pT j*wQe?+&IbHWOF*>q97(?qsiPMKS9*~5QWWZq2*!#GU*vE delta 83 zcmbPxopJ7U#tmkShWSN>Wk%UaIr^r?CP|jYhDk{lrYVUgW+q8SCT139CaEb&smZ3M lCdr9r#>vTs#;Kdr85adH8JbMy4*3b9_J=5JRtqf`0|0q^8p;3w diff --git a/iron/index.html b/iron/index.html index 09e4b55f0a0..fde1e8952dd 100644 --- a/iron/index.html +++ b/iron/index.html @@ -139,7 +139,7 @@

Development Organisation and Communication -

Built on 2024-04-09 at 05:14 GMT

+

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

diff --git a/iron/searchindex.js b/iron/searchindex.js index b6df70388ec..695c4b78904 100644 --- a/iron/searchindex.js +++ b/iron/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Iron!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45, 46], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48719": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46, 51], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "128": 0, "8600": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "35": [0, 50], "5628": 0, "09": [0, 56], "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 11], "04": [0, 9, 56], "03": [0, 21, 46], "27": 0, "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50, 51], "01t10": 0, "36": 0, "22z": 0, "436": 0, "64382": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 36, 44, 45, 46], "575": 0, "402": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52], "70": 0, "03t11": 0, "19z": 0, "243": 0, "219": 0, "90": [0, 29], "08t21": 0, "46": 0, "52z": 0, "477": 0, "108": 0, "23": [0, 4, 33], "04t06": 0, "34": 0, "04z": 0, "1439": 0, "1147": 0, "80": 0, "1159": 0, "604": 0, "52": [0, 48], "268": 0, "244": 0, "91": 0, "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 20, 22, 24, 25, 29, 31, 32, 33, 34, 36, 37, 43, 44, 46, 52], "develop": [0, 1, 4, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 46, 52], "inform": [0, 1, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 4, 9, 24, 35], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 35], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "06": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 50], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 3, 5], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 55], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "314": 0, "08t08": 0, "22": [0, 9], "manuel": 0, "muth": 0, "mamueluth": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": 0, "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "125": 0, "22t09": 0, "11z": 0, "github": [0, 4, 6, 10, 17, 29, 36, 54, 55, 56], "action": [0, 3, 5, 8, 44], "bot": 0, "123": 0, "11t09": 0, "03z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "25": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 35], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "bailac": 0, "68": 0, "08t11": 0, "14": [0, 17, 50, 55, 56], "49z": 0, "olivi": 0, "stass": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "49": 0, "26t02": 0, "31": 0, "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "28": [0, 50], "wiktor": 0, "bajor": 0, "99": [0, 9], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": 0, "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "26": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 17, 33], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 7], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "21z": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 36, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 16, 20, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "najjar": [0, 7], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 17], "56z": 0, "970": 0, "21t01": 0, "00": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 21, 41, 44, 46], "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "09t10": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "167": 0, "152": 0, "07t18": 0, "86": 0, "63": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "98": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "106": 0, "25t06": 0, "01t20": 0, "107": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "95": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "111": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "62": 0, "andr": 0, "montano": 0, "anfemosa": 0, "60": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "172": 0, "157": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "14t09": 0, "89": 0, "198": 0, "96": 0, "23t02": 0, "78": 0, "173": 0, "79": 0, "220": 0, "199": 0, "10t19": 0, "27t13": 0, "191": 0, "183": 0, "25t01": 0, "69": 0, "14t18": 0, "164": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "194": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "113": 0, "87": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37, 43, 44, 45], "receiv": [0, 2, 4, 20, 29, 44, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 20, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 51, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 44, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 37, 46, 56], "consid": [1, 16, 35, 44, 51], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 46, 47, 50, 51, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 4, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 29, 33, 35, 36, 38, 43, 44, 45, 46, 47, 48, 50, 51, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 51, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46, 51], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46, 51], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 4, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43, 51], "give": [1, 7, 9, 17, 19, 20, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 4, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 56], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 20, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 20, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 51, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44, 46], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37, 51], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 36, 37, 41, 44, 46, 50, 51], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 4, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 4, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 36, 37, 44, 46, 50], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 39, 45, 46, 50, 51, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 20, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 51, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 51, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46, 51], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 48, 50, 51, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "sphinx": 1, "doc": [1, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "theme": 1, "gener": [1, 6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "locat": [1, 3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "control": [1, 7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "org": [1, 6, 11, 32, 34, 52], "while": [1, 4, 6, 7, 29, 33, 45], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "written": [1, 15, 23, 28, 29, 37], "respect": [1, 3, 4, 5, 6, 7, 20, 44, 45, 46], "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 20, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": [1, 4], "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 51, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50, 51], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35, 51], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 4, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 4, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 4, 7, 8, 45, 46], "compat": [1, 2, 4, 7, 15, 17], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 51, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 46, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22, 51], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "detail": [2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 49], "joint": [2, 4, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 47, 50, 51, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45, 51], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50, 51], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 4, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 20, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 20, 24, 29, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50, 51], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "start": [2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 51, 56], "stop": [2, 7, 8, 9, 12, 16, 19, 20, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 51, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 20, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 51, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 20, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 20, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29, 36], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 36, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 4, 5, 9, 12, 14, 15, 16, 19, 20, 25, 33, 35, 36, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 51, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50, 51], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41, 51], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 20, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 20, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 20, 29, 33, 44, 46], "initial_valu": [3, 5, 20, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37, 51], "link": [3, 4, 5, 7, 8, 12, 29, 33, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35, 51], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35, 51], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 51, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 51], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 4, 5, 17, 29, 35, 41, 51], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 36, 37, 44, 45, 46], "For": [3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 51, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 36, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 36, 38, 47, 53], "100": [3, 4, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 13, 14], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 46], "example_gripp": [3, 5], "iron": [4, 17, 29], "bug": [4, 56], "want": [4, 8, 9, 17], "thrive": 4, "roll": [4, 29, 35, 51], "stack": [4, 7, 56], "earlier": [4, 6], "done": [4, 7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "ros2_control_ci": 4, "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "figur": [4, 45], "uml": 4, "diagram": [4, 16], "intern": [4, 6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29, 36], "executor": [4, 9], "custom": [4, 13, 14, 17, 20, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 51], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35, 51], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50, 51], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 36, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 36, 45], "dynam": [4, 15, 21, 29, 33, 37, 54], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "ros2_control_demo_hardwar": [4, 13, 16], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 13], "joint1": [4, 13, 14, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 20, 24, 29, 31, 33, 44], "pure": 4, "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "ign": 5, "meet": [5, 56], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 14, 15, 25, 35, 42, 43, 46, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 20, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37, 51], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48, 51], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 20, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 51, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "part": [6, 7, 13, 29, 37, 45, 46], "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7, 36], "175": 6, "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 20, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30, 36], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "81": [6, 33], "302": 6, "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 45, 50], "scale": [7, 44], "factor": [7, 35], "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 15, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8, 20], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41, 51], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29, 36], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50, 51], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35, 51], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irrelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 20, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 16, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29, 36], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50, 51], "integ": [9, 36], "frequenc": [9, 36], "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "n": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 44, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50, 51], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "info": [9, 11, 12, 15, 29], "std": [9, 29, 35, 44, 51], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45, 46], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41, 46], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": [11, 36], "int": [11, 35, 48, 50, 51], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 20, 21, 24, 31, 33, 35, 44, 45, 46, 50, 51], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33, 46], "vacuum": [13, 20], "flang": 13, "off": 13, "rrbotsystemmutiplegpio": 13, "example_param_hw_start_duration_sec": 13, "example_param_hw_stop_duration_sec": 13, "example_param_hw_slowdown": 13, "flange_digital_io": 13, "digital_output1": 13, "know": 13, "digital_output2": 13, "digital_input1": 13, "digital_input2": 13, "flange_analog_io": [13, 20], "analog_output1": [13, 20], "analog_input1": [13, 20], "analog_input2": [13, 20], "flange_vacuum": [13, 20], "suction": 13, "grasp": 13, "multimod": 13, "multimodalgripp": 13, "parallel_fing": 13, "temperatur": [13, 17], "feedback": [13, 14, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "choic": [13, 50], "matric": 13, "rrbotforcetorquesensor2d": 13, "forcetorquesensor2dhardwar": 13, "fx": 13, "tz": 13, "kuka_tcp": 13, "fx_rang": 13, "tz_rang": 13, "temp_feedback": 13, "calibration_matrix_nr": 13, "mirror": [14, 20], "correspond": [14, 15, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": [14, 36], "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 36, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37, 51], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 20, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 20, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "hardware_component_nam": 16, "hardware_compon": 16, "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "tutori": 17, "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 51], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50, 51], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 36, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "interface_nam": [20, 39, 40], "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "list_hardware_compon": [20, 23, 24, 26, 27, 28], "faster": [20, 24, 35, 51], "genericsystem": [20, 24], "use_mock_hardwar": [20, 24], "ident": [20, 22, 24, 29, 31, 45], "unless": [20, 43], "nan": [20, 26, 44], "generic_system": 20, "wheel": [21, 32, 34, 35, 50, 51, 52], "front": [21, 32, 33, 34, 50, 51, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 51, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50, 51], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": [22, 44], "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50, 51], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35, 51], "rotat": [29, 35, 44, 51], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 35, 37, 39, 41, 42, 44, 46, 50, 51], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 36, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 51, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 51, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 51, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 51, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50, 51], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44, 51], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "214": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50, 51], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50, 51], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44, 51], "wrong": [35, 51], "behav": [35, 51], "correctli": [35, 51], "curv": [35, 51], "wheel_radiu": [35, 51], "slower": [35, 45, 51], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50, 51], "odom_frame_id": [35, 50, 51], "pose_covariance_diagon": [35, 50, 51], "covari": [35, 42, 50, 51], "tune": [35, 51], "sampl": [35, 45, 50, 51], "001": [35, 41, 51], "twist_covariance_diagon": [35, 50, 51], "speed": [35, 51], "open_loop": [35, 50, 51], "cmd_vel_timeout": [35, 51], "stale": [35, 44, 51], "velocity_rolling_window_s": [35, 50, 51], "old": [35, 51], "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": [35, 51], "numeric_limit": [35, 44, 51], "quiet_nan": [35, 44, 51], "min_veloc": [35, 51], "max_acceler": [35, 51], "min_acceler": [35, 51], "max_jerk": [35, 51], "min_jerk": [35, 51], "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "wheels_per_sid": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "onconfigur": 36, "configure_control": 36, "unspecifi": 36, "is_async": 36, "asynchron": 36, "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "start_with_hold": 44, "deprec": 44, "hold": [44, 45], "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "present": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "controller_st": [46, 50], "cumbersom": 46, "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "varianc": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 48, "rqt": 49, "nomenclatur": 50, "unstamp": 50, "concret": 50, "tricylc": 50, "seer": 50, "front_steer": 50, "front_wheels_nam": 50, "rear_wheels_nam": 50, "traction_feedback_typ": 50, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "number": 50, "averag": 50, "diagon": 50, "trail": 51, "axl": 51, "traction_joint_nam": 51, "steering_joint_nam": 51, "odom_only_twist": 51, "millisecond": 51, "500": 51, "publish_ackermann_command": 51, "max_deceler": 51, "min_deceler": 51, "max_posit": 51, "min_posit": 51, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "mujoco": 54, "algoryx": 54, "agx": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "huski": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "kinova": 55, "kortex": 55, "gen3": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 56, "toolkit": 56, "unreleas": 56, "question": 56, "wg": 56, "wednesdai": 56, "announc": 56, "discours": 56, "googl": 56, "tracker": 56, "reproduc": 56, "regard": 56, "built": 56, "gmt": 56}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 12, 14, 15], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 17], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 17], "run": [3, 4, 5, 17], "demo": [3, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 17], "binari": 4, "packag": [4, 17], "from": [4, 6, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 55], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 22], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 51, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 46, 50, 51], "line": 16, "list_control": 16, "list_controller_typ": 16, "list_hardware_compon": 16, "list_hardware_interfac": 16, "load_control": 16, "reload_controller_librari": 16, "set_controller_st": 16, "set_hardware_component_st": 16, "switch_control": 16, "unload_control": 16, "view_controller_chain": 16, "what": 17, "you": 17, "can": 17, "find": 17, "thi": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "common": 36, "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "iron": 56, "develop": 56, "organis": 56}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [17, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [12, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [51, "parameters"], [52, "parameters"], [53, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[12, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[12, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[13, "ros2-control-hardware-interface-types"]], "Joints": [[13, "joints"]], "Sensors": [[13, "sensors"]], "GPIOs": [[13, "gpios"]], "Examples": [[13, "examples"], [17, "examples"]], "Mock Components": [[14, "mock-components"]], "Generic System": [[14, "generic-system"]], "Per-joint Parameters": [[14, "per-joint-parameters"]], "Writing a Hardware Component": [[15, "writing-a-hardware-component"]], "Useful External References": [[15, "useful-external-references"], [37, "useful-external-references"]], "Command Line Interface": [[16, "command-line-interface"]], "list_controllers": [[16, "list-controllers"]], "list_controller_types": [[16, "list-controller-types"]], "list_hardware_components": [[16, "list-hardware-components"]], "list_hardware_interfaces": [[16, "list-hardware-interfaces"]], "load_controller": [[16, "load-controller"]], "reload_controller_libraries": [[16, "reload-controller-libraries"]], "set_controller_state": [[16, "set-controller-state"]], "set_hardware_component_state": [[16, "set-hardware-component-state"]], "switch_controllers": [[16, "switch-controllers"]], "unload_controller": [[16, "unload-controller"]], "view_controller_chains": [[16, "view-controller-chains"]], "Demos": [[17, "demos"]], "What you can find in this repository": [[17, "what-you-can-find-in-this-repository"]], "Goals": [[17, "goals"]], "Examples Overview": [[17, "examples-overview"]], "Local installation": [[17, "local-installation"]], "Build from debian packages": [[17, "build-from-debian-packages"]], "Build from source": [[17, "build-from-source"]], "Using Docker": [[17, "using-docker"]], "To view the robot": [[17, "to-view-the-robot"]], "To run the ros2_control demos": [[17, "to-run-the-ros2-control-demos"]], "Quick Hints": [[17, "quick-hints"]], "Example 1: RRBot": [[19, "example-1-rrbot"]], "Tutorial steps": [[19, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"]], "Files used for this demos": [[19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "files-used-for-this-demos"]], "Controllers from this demo": [[19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Common Controller Parameters": [[36, "common-controller-parameters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "position_controllers": [[47, "position-controllers"]], "position_controllers/JointGroupPositionController": [[47, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[48, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[49, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[50, "steering-controllers-library"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "tricycle_controller": [[51, "tricycle-controller"]], "Velocity commands": [[51, "velocity-commands"]], "tricycle_steering_controller": [[52, "tricycle-steering-controller"]], "velocity_controllers": [[53, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[53, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[54, "simulator-integrations"]], "Hosted by ros-controls": [[54, "hosted-by-ros-controls"]], "Community": [[54, "community"]], "Supported Robots": [[55, "supported-robots"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Iron!": [[56, "welcome-to-the-ros2-control-documentation-iron"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/differences_to_ros1/differences_to_ros1", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/project_ideas", "doc/resources/resources", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/differences_to_ros1/differences_to_ros1.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "Differences to ros_control (ROS1)", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Project Ideas for GSoC 2024", "Resources", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation - Iron!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 56], "follow": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 44, 45, 46, 47, 52, 53, 56], "peopl": [0, 1], "were": [0, 6, 29, 35, 45, 46], "ros2_control": [0, 1, 4, 7, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 37, 54], "framework": [0, 1, 2, 6, 7, 9, 10, 12, 13, 14, 16, 17, 29, 36, 37, 43, 56], "show": [0, 1, 3, 4, 5, 7, 9, 12, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 43, 45], "review": [0, 1, 6, 56], "activ": [0, 1, 2, 4, 9, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 46], "contribut": [0, 4, 7], "recent": [0, 15, 37], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 39, 41, 42, 43, 44, 45, 46, 48, 55], "time": [0, 1, 2, 6, 7, 9, 14, 16, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 35, 37, 39, 44, 45, 46, 56], "contrib": 0, "dure": [0, 17, 29, 44, 46], "past": [0, 45], "12": [0, 17, 55], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 44], "line": [0, 4, 10, 12, 15, 19, 29, 37, 43, 45], "chang": [0, 1, 2, 4, 7, 9, 12, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 44, 45, 46, 48], "last": [0, 11, 12, 15, 29, 33, 37, 44, 45, 46], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48719": 0, "2024": [0, 56], "01": [0, 21, 33, 35, 41, 44, 46, 51], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 6, 7], "magyar": [0, 6, 7], "bmagyar": 0, "128": 0, "8600": 0, "2023": 0, "11": [0, 17], "16t23": 0, "32": [0, 56], "53z": 0, "dr": [0, 7], "deni": [0, 6, 7], "destogl": [0, 35], "35": [0, 50], "5628": 0, "09": [0, 56], "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 11], "04": [0, 9, 56], "03": [0, 21, 46], "27": 0, "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 3, 5, 17, 25, 33, 35, 48, 50, 51], "01t10": 0, "36": 0, "22z": 0, "436": 0, "64382": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 11, 37], "finish": 0, "rate": [0, 10, 12, 21, 24, 35, 36, 44, 45, 46], "575": 0, "402": 0, "0": [0, 3, 4, 5, 8, 11, 13, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52], "70": 0, "03t11": 0, "19z": 0, "243": 0, "219": 0, "90": [0, 29], "08t21": 0, "46": 0, "52z": 0, "477": 0, "108": 0, "23": [0, 4, 33], "04t06": 0, "34": 0, "04z": 0, "1439": 0, "1147": 0, "80": 0, "1159": 0, "604": 0, "52": [0, 48], "268": 0, "244": 0, "91": 0, "have": [0, 1, 2, 4, 6, 8, 9, 12, 13, 14, 15, 17, 19, 20, 22, 24, 25, 29, 31, 32, 33, 34, 36, 37, 43, 44, 46, 52], "develop": [0, 1, 4, 7, 14, 15, 17, 37], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 29, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56], "project": [0, 1, 56], "provid": [0, 3, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 22, 25, 26, 27, 28, 29, 30, 31, 33, 37, 43, 44, 45, 46, 50, 56], "valuabl": 0, "submit": [0, 1, 7, 54, 55], "pull": [0, 15], "request": [0, 2, 15, 29, 43, 56], "see": [0, 1, 2, 4, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 39, 42, 44, 46, 48, 50, 52], "more": [0, 2, 3, 4, 5, 6, 9, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 46, 52], "inform": [0, 1, 3, 5, 8, 14, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 37, 56], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 4, 9, 24, 35], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 5, 6, 7, 11, 13, 14, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 37, 41, 44, 45, 48, 50], "5774": 0, "05": [0, 33, 46, 56], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 35], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 6, 17, 33, 42], "2043": 0, "06": 0, "01t07": 0, "45": 0, "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 50], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 3, 5], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 8, 37, 43, 44, 46], "flochr": 0, "2": [0, 1, 3, 4, 5, 6, 7, 8, 11, 13, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 46, 50, 55, 56], "888": 0, "07t00": 0, "17": 0, "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 3, 5, 21, 24], "alex": 0, "moriarti": 0, "5": [0, 15, 17, 19, 20, 22, 23, 25, 26, 28, 29, 30, 31, 33, 35, 45, 50, 55], "581": 0, "07t20": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 55], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "314": 0, "08t08": 0, "22": [0, 9], "manuel": 0, "muth": 0, "mamueluth": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": 0, "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 17, 20, 24, 33, 48, 50, 55], "125": 0, "22t09": 0, "11z": 0, "github": [0, 4, 6, 10, 17, 29, 36, 54, 55, 56], "action": [0, 3, 5, 8, 44], "bot": 0, "123": 0, "11t09": 0, "03z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "25": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 35], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 3, 5], "bailac": 0, "68": 0, "08t11": 0, "14": [0, 17, 50, 55], "49z": 0, "olivi": 0, "stass": 0, "3": [0, 3, 4, 5, 6, 13, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 30, 33, 45, 46], "49": 0, "26t02": 0, "31": 0, "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 13, 17, 21, 23, 25, 27, 30, 33, 48], "43": [0, 4, 13, 24], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "28": [0, 50], "wiktor": 0, "bajor": 0, "99": [0, 9], "12t15": 0, "johann": [0, 7], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": 0, "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "26": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 17, 33], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 7], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "21z": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 17, 19, 29, 33], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 6, 9, 13, 15, 16, 19, 29], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 4, 5, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 33, 37, 38, 43, 47, 50, 53, 56], "A": [0, 4, 7, 13, 15, 17, 26, 27, 36, 37, 43, 45, 46], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 16, 20, 26, 33, 44], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 3, 4, 5, 13, 29, 41], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "najjar": [0, 7], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 17], "56z": 0, "970": 0, "21t01": 0, "00": 0, "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 17, 19, 31, 33, 44], "547": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": 0, "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 7], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 21, 41, 44, 46], "01t09": 0, "svnrk": 0, "nathan": [0, 7], "brook": [0, 7], "nbbrook": 0, "13t14": 0, "18": [0, 29], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 4, 7, 9, 16, 20, 29, 31], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "09t10": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "167": 0, "152": 0, "07t18": 0, "86": 0, "63": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "98": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "106": 0, "25t06": 0, "01t20": 0, "107": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "95": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "111": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "62": 0, "andr": 0, "montano": 0, "anfemosa": 0, "60": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51, 55], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "172": 0, "157": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "14t09": 0, "89": 0, "198": 0, "96": 0, "23t02": 0, "78": 0, "173": 0, "79": 0, "220": 0, "199": 0, "10t19": 0, "27t13": 0, "191": 0, "183": 0, "25t01": 0, "69": 0, "14t18": 0, "164": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "194": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "113": 0, "87": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 21, 24, 26, 27, 29, 33, 35, 39, 42, 50, 51], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 3, 4, 5, 7, 11, 13, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37, 43, 44, 45], "receiv": [0, 2, 4, 20, 29, 44, 45], "major": [0, 42], "from": [0, 1, 2, 7, 8, 9, 11, 14, 15, 16, 18, 29, 33, 35, 36, 37, 38, 39, 42, 44, 45, 46, 47, 48, 51, 53, 56], "support": [0, 2, 3, 4, 5, 7, 14, 15, 16, 29, 33, 37, 43, 45, 46, 50, 54, 56], "rosin": 0, "ro": [0, 1, 2, 3, 4, 5, 6, 9, 11, 13, 14, 16, 17, 19, 20, 21, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 46, 56], "industri": [0, 4, 6, 17, 55], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 3, 5, 6, 8, 9, 11, 13, 19, 21, 22, 24, 31, 33, 35, 39, 43, 50, 51, 56], "softwar": [0, 4, 29], "compon": [0, 7, 9, 10, 13, 16, 17, 20, 23, 24, 25, 26, 27, 28, 29, 33, 35, 36, 39, 42, 48, 50, 51, 56], "http": [0, 4, 6, 11, 17, 29, 32, 34, 52], "www": [0, 11], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 4, 6, 7, 8, 9, 11, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 37, 39, 42, 44, 45, 48, 51, 52, 56], "horizon": 0, "research": [0, 7], "innov": 0, "programm": 0, "under": [0, 7, 15, 22, 37, 45, 46, 50, 56], "grant": [0, 4], "agreement": 0, "732287": 0, "first": [1, 2, 8, 11, 12, 15, 17, 29, 31, 37, 44, 45], "thank": 1, "you": [1, 2, 3, 4, 5, 7, 8, 9, 11, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 37, 46, 56], "consid": [1, 16, 35, 44, 51], "As": [1, 8, 13, 15, 19, 29, 35, 37], "an": [1, 2, 3, 4, 5, 6, 7, 8, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 27, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 46, 47, 50, 51, 52, 53], "open": [1, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 44, 50], "sourc": [1, 3, 5, 7, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "we": [1, 3, 4, 5, 6, 7, 8, 12, 17, 19, 21, 22, 24, 29, 30, 31, 43], "welcom": 1, "each": [1, 4, 6, 8, 9, 12, 13, 15, 17, 19, 23, 29, 32, 33, 43, 50, 52], "contributor": 1, "regardless": 1, "background": [1, 17], "experi": 1, "To": [1, 2, 4, 8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43, 45, 54, 55, 56], "reduc": [1, 14], "entropi": 1, "univers": [1, 7, 29, 55], "our": [1, 3, 4, 5, 6, 7, 17, 19, 29], "vivid": 1, "collabor": 1, "environ": [1, 4, 7, 17], "set": [1, 2, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 19, 20, 21, 29, 33, 35, 36, 38, 43, 44, 45, 46, 47, 48, 50, 51, 53], "up": [1, 7, 15, 17, 45], "some": [1, 3, 5, 6, 7, 11, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 43, 44, 46, 56], "standard": [1, 2, 6, 7, 15, 16, 23, 28, 29, 39, 43], "method": [1, 2, 4, 8, 9, 11, 12, 15, 29, 37, 50], "requir": [1, 2, 4, 6, 15, 29, 33, 37, 38, 46, 47, 53], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51, 52, 56], "limit": [1, 3, 5, 7, 9, 17, 29, 35, 51], "scope": 1, "your": [1, 2, 7, 9, 11, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 34, 35, 37, 51, 54, 55, 56], "pr": [1, 54, 55], "should": [1, 2, 3, 5, 6, 7, 8, 9, 11, 12, 15, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 43, 45, 46, 51], "do": [1, 2, 4, 6, 7, 8, 9, 15, 17, 33, 37, 46, 51], "one": [1, 2, 4, 6, 7, 8, 9, 11, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 38, 39, 43, 44, 45, 46, 47, 50, 52, 53, 56], "thing": [1, 3, 5, 17], "avoid": [1, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37], "ad": [1, 3, 5, 6, 9, 14, 15, 21, 22, 24, 29, 35, 37, 43], "random": [1, 23, 25, 26, 27, 28], "fix": [1, 2, 4, 21, 29, 32, 34, 52], "put": [1, 15, 37], "those": [1, 2, 4, 6, 8, 14, 15, 17, 29, 37, 39, 43, 44, 45, 48], "separ": [1, 2, 4, 17, 23, 35, 43, 51], "give": [1, 7, 9, 17, 19, 20, 24, 25, 45, 56], "descript": [1, 2, 7, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 39, 41, 42, 43, 44, 48], "titl": 1, "add": [1, 2, 8, 9, 11, 12, 15, 29, 32, 33, 34, 37, 52, 54, 55], "short": [1, 37, 56], "summari": [1, 7, 56], "make": [1, 2, 4, 5, 6, 7, 22, 29, 41, 56], "sure": [1, 5, 6, 19, 22, 23, 24, 25, 26, 27, 28, 30, 56], "pipelin": 1, "i": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 56], "green": [1, 45], "don": [1, 3, 8, 20, 24, 44, 46], "t": [1, 3, 5, 8, 9, 17, 20, 24, 44, 45, 46], "afraid": 1, "maintain": [1, 4, 6, 8, 17, 45], "new": [1, 7, 8, 15, 19, 22, 25, 29, 36, 45, 56], "code": [1, 2, 4, 6, 7, 15, 29], "test": [1, 3, 6, 14, 15, 17, 19, 24, 31, 32, 33, 34, 35, 37, 39, 42, 48, 50, 52], "If": [1, 2, 8, 9, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 43, 44, 45, 46, 50, 51, 56], "function": [1, 2, 6, 7, 22, 29, 33, 50], "alwai": [1, 29], "exercis": 1, "serv": [1, 4, 6], "live": [1, 7], "origin": [1, 3, 5, 7, 19, 29, 45, 46], "intent": [1, 8, 14], "section": [1, 2, 11, 13, 15, 37, 46], "target": [1, 9, 15, 33, 37, 40, 44, 46], "also": [1, 2, 3, 4, 5, 6, 7, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 46], "read": [1, 2, 3, 4, 5, 9, 11, 13, 15, 17, 22, 23, 26, 27, 29, 33, 37, 43, 44, 48, 50], "understand": [1, 6, 45], "how": [1, 6, 7, 13, 15, 17, 20, 21, 22, 23, 25, 26, 27, 28, 29, 31, 35, 37, 51], "handl": [1, 2, 4, 6, 7, 15, 26, 29, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 46, 48, 50, 51, 52], "organ": [1, 7, 56], "guidelin": 1, "especi": [1, 2, 17, 50], "applic": [1, 4, 7, 9, 13, 29], "ros2_control_demo": [1, 4, 17, 19, 29, 31, 56], "pleas": [1, 9, 28, 35, 56], "keep": [1, 29, 37], "mind": [1, 37], "work": [1, 6, 7, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 38, 43, 47, 51, 53, 56], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 14, 15, 16, 22, 25, 29, 33, 35, 36, 37, 41, 44, 46, 50, 51], "That": [1, 15, 37], "wai": [1, 9, 11, 15, 29, 37, 39, 46], "main": [1, 4, 6, 7, 9, 11, 14, 29, 37, 50, 56], "repo": [1, 4, 17], "clean": 1, "featur": [1, 4, 7, 14, 17, 19, 30, 50, 56], "branch": [1, 4, 17], "check": [1, 2, 4, 6, 8, 12, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 45, 46, 48, 52, 56], "satisfi": 1, "befor": [1, 2, 8, 9, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 35, 36, 37, 44, 45], "thei": [1, 2, 4, 6, 7, 8, 13, 14, 15, 16, 22, 36, 37, 44, 46, 50], "can": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 37, 39, 40, 42, 45, 46, 48, 50, 56], "must": [1, 3, 5, 8, 9, 13, 17, 29, 33, 42, 44, 46], "approv": 1, "two": [1, 4, 6, 8, 9, 15, 17, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 39, 45, 46, 50, 51, 52], "explicitli": 1, "onli": [1, 2, 4, 6, 7, 8, 9, 12, 15, 16, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 34, 35, 37, 38, 39, 43, 44, 45, 46, 47, 50, 53], "except": [1, 20, 29], "other": [1, 2, 3, 4, 7, 15, 17, 23, 28, 29, 32, 34, 37, 43, 45, 50, 52], "where": [1, 3, 6, 8, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 34, 35, 37, 43, 44, 45, 46, 50, 52], "back": 1, "traceabl": 1, "discuss": [1, 7, 22, 31, 45, 56], "suffici": [1, 3, 5, 8, 39], "note": [1, 4, 9, 19, 46, 56], "still": [1, 2, 19, 22, 23, 24, 25, 26, 27, 28, 30, 36, 45], "encourag": 1, "help": [1, 9, 11, 14, 15, 16, 35, 37], "u": [1, 3, 5, 9, 17, 44], "increas": [1, 24], "pace": 1, "veri": [1, 2, 3, 5, 6, 13], "like": [1, 2, 3, 4, 5, 6, 7, 15, 21, 22, 29], "find": [1, 3, 5, 11, 24], "issu": [1, 6, 56], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 6, 9, 16, 25, 26, 27, 29, 35, 39, 42, 43, 44, 45, 46, 48, 50, 51, 56], "comment": [1, 29], "fixup": 1, "linter": 1, "us": [1, 2, 4, 6, 7, 11, 12, 13, 14, 16, 18, 29, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 45, 47, 48, 50, 51, 52, 53, 56], "pre": 1, "correct": [1, 2, 35, 45], "header": [1, 12, 15, 26, 27, 37, 45], "address": [1, 29], "similar": [1, 4, 7, 13, 19, 21, 22, 29], "mean": [1, 2, 8, 13, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 45, 46, 51], "result": [1, 4, 8, 9, 19, 29, 43, 45], "exactli": 1, "cowboi": 1, "style": [1, 15, 37], "over": [1, 6, 8, 24, 29], "weekend": 1, "It": [1, 2, 3, 4, 6, 8, 9, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 39, 43, 44, 45], "doesn": [1, 8], "matter": 1, "trivial": [1, 14], "chanc": 1, "proper": [1, 8, 9, 46], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 44], "its": [1, 2, 3, 4, 5, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 39, 40, 41, 42, 43, 44, 45, 48, 50, 51, 52], "ping": 1, "them": [1, 6, 8, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 37, 43, 45, 55], "necessari": [1, 8, 12], "repeatedli": 1, "sphinx": 1, "doc": [1, 8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 56], "theme": 1, "gener": [1, 6, 7, 13, 15, 16, 21, 23, 24, 25, 26, 27, 28, 29, 36, 37, 46, 50, 56], "locat": [1, 3, 29, 33, 35, 39, 41, 42, 43, 44, 48], "control": [1, 7, 10, 11, 12, 13, 14, 15, 16, 17, 32, 34, 39, 42, 43, 44, 45, 48, 51, 52, 55, 56], "org": [1, 6, 11, 32, 34, 52], "while": [1, 4, 6, 7, 29, 33, 45], "packag": [1, 2, 3, 5, 12, 15, 29, 32, 33, 34, 35, 37, 38, 39, 42, 46, 47, 48, 50, 52, 53, 56], "written": [1, 15, 23, 28, 29, 37], "respect": [1, 3, 4, 5, 6, 7, 20, 44, 45, 46], "type": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 20, 23, 24, 26, 27, 28, 29, 35, 36, 37, 38, 39, 42, 44, 47, 48, 50, 53], "stabl": [1, 4], "against": 1, "accept": [1, 15, 25, 37, 38, 44, 45, 46, 47, 53], "api": [1, 3, 5, 6, 15, 19, 21, 23, 24, 25, 26, 27, 28, 30], "abi": 1, "e": [1, 2, 4, 6, 7, 8, 9, 13, 14, 15, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 35, 37, 38, 39, 43, 44, 45, 47, 50, 51, 53, 56], "name": [1, 2, 3, 4, 5, 7, 9, 11, 13, 14, 15, 16, 17, 19, 20, 22, 23, 24, 26, 27, 28, 29, 31, 33, 35, 37, 39, 40, 42, 43, 44, 48, 50, 51], "convent": [1, 29], "master": [1, 4], "semi": 1, "binari": 1, "good": [1, 3, 5, 6, 35, 51], "same": [1, 8, 11, 25, 29, 36, 39, 44, 45, 46], "build": [1, 15, 29, 33, 37], "dai": 1, "ros_distro": [1, 4, 17, 19], "foxi": [1, 7, 15], "galact": [1, 12, 15], "releas": [1, 4, 7, 17, 29], "version": [1, 4, 6, 11, 17, 46], "non": [1, 7, 22, 29, 39], "brake": 1, "distribut": [1, 4, 17, 56], "three": [1, 2, 4, 12, 13, 17, 29, 37, 45, 52], "stage": [1, 8, 22], "current": [1, 6, 11, 12, 13, 15, 16, 45, 46, 50], "futur": [1, 4, 7, 8, 45, 46], "compat": [1, 2, 4, 7, 15, 17], "direct": [1, 2, 6, 15, 29, 37, 44], "local": [1, 3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "possibl": [1, 4, 6, 9, 13, 17, 19, 21, 23, 24, 25, 26, 27, 28, 30, 33, 37, 45], "core": [1, 10, 29], "immedi": [1, 9, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "depend": [1, 4, 12, 13, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 45, 50], "fail": [1, 25, 29], "expect": [1, 6, 22, 29, 32, 34, 35, 46, 50, 51, 52], "after": [1, 8, 9, 15, 17, 19, 29, 35, 37, 44, 45, 46, 50, 51], "next": [1, 19, 29, 45], "sync": 1, "abl": 1, "potenti": [1, 37, 44], "mid": 1, "power": [1, 3, 5, 7, 15], "plausibl": 1, "analyt": 1, "robothw": 2, "rigid": 2, "ani": [2, 4, 7, 8, 9, 12, 13, 17, 22, 29, 37, 44, 46], "imposs": 2, "extend": [2, 4, 6, 8, 15, 37], "exist": [2, 4, 6, 8, 9, 12, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 37, 46], "addit": [2, 3, 5, 8, 17, 20, 24, 29], "sensor": [2, 4, 6, 12, 14, 15, 17, 23, 28, 29, 33, 36, 55], "actuat": [2, 4, 6, 12, 13, 14, 15, 17, 22, 51], "tool": [2, 3, 5, 6, 7, 29, 33], "without": [2, 3, 4, 5, 7, 9, 14, 15, 17, 22, 31, 37, 44, 45], "combinedrobothardwar": 2, "drawback": [2, 56], "solut": [2, 7], "optim": [2, 9], "combin": [2, 8, 13, 14, 17, 25, 43, 45, 46], "extern": [2, 4, 6, 8, 14, 17, 33], "defin": [2, 3, 5, 6, 9, 14, 15, 17, 29, 33, 37, 39, 42, 43, 44, 45, 46, 48, 50], "system": [2, 3, 4, 5, 6, 7, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 44, 46, 54, 55, 56], "composit": [2, 7], "basic": [2, 3, 4, 5, 6, 7, 15, 17, 24, 37], "physic": [2, 4, 12, 13, 14], "cell": [2, 39], "surround": 2, "describ": [2, 4, 8, 13, 17, 19, 25, 29, 31, 35, 45], "multi": [2, 4, 6, 7, 17, 25], "gripper": [2, 3, 4, 5, 7, 13, 14, 36], "out": [2, 3, 5, 9, 29, 35], "box": [2, 17, 19, 21, 24, 25, 26, 27, 30, 31], "detail": [2, 3, 4, 5, 9, 12, 13, 14, 15, 22, 29, 31, 32, 34, 35, 37, 45, 46, 52], "allow": [2, 3, 4, 5, 17, 29, 41, 44, 45, 46, 49], "joint": [2, 4, 7, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 43, 44, 45, 47, 50, 51, 52, 53, 56], "posit": [2, 3, 4, 5, 7, 9, 13, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 38, 43, 44, 45, 46, 47, 50, 53], "veloc": [2, 3, 4, 5, 7, 8, 17, 21, 23, 24, 25, 29, 33, 34, 35, 36, 41, 42, 43, 44, 45, 46, 47, 50, 53], "effort": [2, 3, 5, 17, 29, 36, 38, 41, 43, 44, 46], "hard": [2, 9], "data": [2, 4, 6, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 36, 43, 45, 51], "approach": [2, 8, 11], "doe": [2, 8, 9, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37, 45, 46], "enforc": [2, 25, 29], "string": [2, 9, 14, 17, 33, 35, 37, 39, 40, 41, 42, 43, 44, 48, 50, 51], "ensur": [2, 7, 9, 29, 45], "constant": [2, 17], "hardware_interfac": [2, 3, 4, 5, 11, 12, 14, 15, 17, 23, 26, 27, 28, 29, 33, 35, 36, 37], "In": [2, 3, 4, 5, 6, 7, 8, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 36, 37, 43, 45, 50], "had": 2, "itself": [2, 8], "took": 2, "care": [2, 6, 9, 15, 25, 37, 46], "regist": [2, 3, 5], "resourc": [2, 3, 5, 15, 25], "conflict": [2, 4, 6], "resourcemanag": [2, 8], "take": [2, 6, 8, 15, 22, 25, 35, 37, 43, 45], "state": [2, 3, 4, 5, 6, 7, 9, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 36, 37, 39, 43, 44], "avail": [2, 4, 7, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 46], "enabl": [2, 4, 6, 7, 12, 15, 16, 17, 24, 33, 35, 39, 50], "anymor": 2, "controllermanag": [2, 9], "implement": [2, 3, 4, 5, 6, 7, 9, 11, 13, 14, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 37, 40, 45, 46, 50, 51, 52, 56], "systeminterfac": [2, 3, 5, 11, 14, 26, 29], "granular": 2, "sensorinterfac": [2, 23, 27], "actuatorinterfac": [2, 23, 28], "abov": [2, 19, 20, 22, 23, 24, 25, 26, 27, 28, 30, 31, 36, 45], "choos": [2, 4, 17, 50], "suitabl": [2, 7], "strategi": [2, 17, 45], "decid": [2, 11], "which": [2, 3, 4, 5, 6, 7, 9, 11, 15, 16, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 39, 42, 43, 44, 45, 46, 48, 50, 51], "case": [2, 3, 5, 6, 7, 8, 17, 22, 29, 37, 43, 45, 46, 56], "mayb": [2, 8], "sens": [2, 4, 36, 39], "multipl": [2, 4, 7, 8, 13, 15, 17, 43], "constructor": [2, 15, 29, 37], "initi": [2, 15, 20, 29, 37, 45], "variabl": [2, 11, 15, 29, 37, 44], "need": [2, 3, 4, 5, 6, 7, 8, 13, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37, 45], "commun": [2, 4, 6, 7, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30], "default": [2, 4, 8, 9, 14, 21, 25, 32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 45, 46, 48, 50, 51, 52], "configur": [2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 45, 46, 50], "paramet": [2, 3, 5, 7, 11, 15, 17, 19, 20, 24, 29, 37, 46], "pars": [2, 3, 5, 9, 10, 13], "urdf": [2, 7, 9, 11, 13, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33], "snippet": 2, "hardwareinfo": [2, 11, 29], "here": [2, 10, 15, 29, 37, 38, 46, 47, 53], "cross": [2, 43], "valu": [2, 4, 6, 11, 13, 14, 15, 17, 19, 20, 22, 24, 26, 27, 29, 31, 33, 35, 37, 39, 42, 43, 44, 46, 48, 50, 51], "export_": 2, "_interfac": [2, 15], "joint_a2": 2, "extract": [2, 35, 51], "sensibl": 2, "start": [2, 3, 5, 7, 8, 9, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37, 44, 45, 51, 56], "stop": [2, 7, 8, 9, 12, 16, 19, 20, 24, 25, 29, 35, 44, 51], "usual": [2, 4, 9, 14, 15, 29, 33, 37], "includ": [2, 3, 5, 6, 12, 15, 16, 21, 29, 33, 37, 46, 51, 55], "command": [2, 3, 4, 5, 6, 7, 9, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 40, 41, 44, 45, 47, 49, 52, 53, 56], "safe": [2, 29, 35, 37, 46, 51], "interrupt": [2, 9], "stream": [2, 7], "write": [2, 4, 7, 8, 9, 10, 11, 20, 22, 23, 24, 28, 33, 36], "exchang": [2, 6, 19, 21, 23, 24, 25, 26, 27, 28, 30, 56], "equival": [2, 29], "forget": [2, 4, 17, 46], "pluginlib_export_class": [2, 15, 17, 29, 37], "macro": [2, 4, 11, 15, 17, 29, 37], "end": [2, 4, 12, 15, 29, 33, 37, 44], "cpp": [2, 15, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "file": [2, 3, 4, 5, 6, 7, 9, 11, 14, 15, 17, 33, 35, 37, 38, 39, 46, 47, 53], "creat": [2, 3, 4, 5, 7, 9, 14, 15, 17, 21, 29, 37], "xml": [2, 3, 5, 11, 12, 15, 29, 37], "librari": [2, 4, 15, 16, 21, 32, 34, 36, 37, 50, 52], "pluginlib": [2, 3, 4, 5, 9, 15, 29, 37], "exampl": [2, 3, 4, 5, 6, 7, 8, 9, 14, 16, 21, 24, 33, 35, 38, 39, 46, 47, 51, 53, 56], "rrbotsystempositiononlyhardwar": [2, 4, 13, 16, 19, 22, 27], "excel": 2, "jointtrajectorycontrol": [2, 3, 5, 16, 19, 33, 46], "real": [2, 6, 7, 9, 14, 20, 24, 37, 43, 44, 56], "critic": [2, 6], "mark": [2, 22], "controllerinterfac": [2, 4, 8, 16, 29, 37], "member": [2, 15, 29, 37, 45], "init": 2, "call": [2, 3, 4, 5, 8, 11, 15, 20, 24, 29, 37], "lifecycl": [2, 4, 7, 9, 12, 15, 29, 36], "declar": [2, 11, 15, 29, 37], "state_interface_configur": [2, 29, 37], "command_interface_configur": [2, 29, 37], "design": [2, 4, 6, 7, 8, 21, 29, 56], "updat": [2, 4, 8, 9, 10, 12, 17, 21, 29, 33, 36, 37, 46, 50], "manag": [2, 3, 5, 6, 7, 10, 12, 15, 16, 17, 29, 37, 46, 56], "option": [2, 3, 4, 5, 9, 12, 14, 15, 16, 19, 20, 25, 33, 35, 36, 37, 39, 43, 46, 50], "on_configur": [2, 15, 29, 37], "on_activ": [2, 11, 12, 15, 29, 37], "on_deactiv": [2, 12, 15, 29, 37], "deactiv": [2, 4, 16, 19, 44], "final": [2, 7, 12, 29], "joint_trajectory_plugin": 2, "integr": [3, 4, 5, 6, 7, 14, 17, 22, 24, 29, 44, 45, 46, 51, 56], "architectur": [3, 5, 6, 7], "gazebo": [3, 5, 6, 17, 19, 31, 54], "classic": [3, 17, 31, 54], "instanti": [3, 5, 9], "connect": [3, 4, 5, 14, 17, 26, 29], "model": [3, 5, 19, 21, 29], "cd": [3, 4, 5, 17, 29], "docker": [3, 5, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "gui": [3, 5, 17, 19, 22, 23, 25, 26, 27, 28, 30, 31, 49], "properli": [3, 5, 8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "rm": [3, 4, 5, 17, 19, 31], "net": [3, 5, 7, 17, 19, 31], "host": [3, 5, 17, 19, 31, 55], "ros2": [3, 4, 5, 7, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "launch": [3, 4, 5, 9, 14, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "cart_example_posit": [3, 5], "py": [3, 5, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "fals": [3, 5, 11, 14, 17, 19, 21, 31, 33, 35, 41, 43, 44, 46, 50, 51], "machin": [3, 4, 5, 6, 17, 31], "client": [3, 5, 31, 46], "gzclient": [3, 31], "rocker": [3, 5], "go": [3, 5, 7, 9, 15, 29, 37], "imag": [3, 5, 9, 31], "inject": [3, 5, 7], "nvidia": [3, 5], "And": 3, "user": [3, 5, 6, 9, 17, 29, 45], "id": [3, 5, 16, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 33, 35], "specif": [3, 5, 6, 8, 9, 11, 12, 13, 29, 31, 40, 43, 45, 46], "cleaner": [3, 5], "mount": [3, 5], "permiss": [3, 5, 9], "instal": [3, 5, 9, 15, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "instruct": [3, 5, 24, 29, 31], "x11": [3, 5], "latest": [3, 4, 5], "move": [3, 5, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 41, 51], "cart": [3, 5], "rail": [3, 5], "exec": [3, 5, 19], "bash": [3, 4, 5, 15, 17, 19, 29, 37], "home": [3, 5], "ros2_w": [3, 4, 5, 17], "example_posit": [3, 5], "element": [3, 5, 29, 33, 44], "access": [3, 4, 5, 7, 9, 14, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 43], "interfac": [3, 5, 6, 7, 8, 9, 10, 12, 14, 15, 17, 19, 21, 22, 23, 24, 26, 27, 28, 31, 32, 34, 36, 37, 39, 42, 44, 45, 48, 52, 54, 55, 56], "gazebosystem": 3, "hardwar": [3, 5, 7, 8, 10, 14, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 37, 44, 51, 56], "slider_to_cart": [3, 5, 38, 47, 53], "command_interfac": [3, 4, 5, 13, 20, 22, 29, 33, 44, 46], "param": [3, 4, 5, 9, 11, 13, 14, 20, 24, 29], "min": [3, 4, 5, 13, 29], "1000": [3, 5, 29], "state_interfac": [3, 4, 5, 13, 20, 29, 33, 44, 46], "initial_valu": [3, 5, 20, 29], "mimick": [3, 5, 14], "manual": [3, 4, 5, 6, 9, 15, 17, 19, 25, 26, 27, 28, 30, 31, 37, 56], "multipli": [3, 5, 14], "definit": [3, 4, 5, 9, 15, 29, 33, 35, 36, 37, 39, 41, 42, 43, 44, 48], "left_finger_joint": [3, 5], "prismat": [3, 5], "right_finger_joint": [3, 5], "axi": [3, 5, 6, 29, 32, 34, 35, 39, 52], "xyz": [3, 5, 29], "rpy": [3, 5, 29], "1415926535": [3, 5], "parent": [3, 5, 15, 29, 35, 37, 51], "link": [3, 4, 5, 7, 8, 12, 29, 33, 36], "base": [3, 4, 5, 7, 12, 15, 16, 17, 21, 23, 24, 28, 29, 33, 35, 37, 40, 50, 51, 54, 55], "child": [3, 5, 13, 29, 35, 51], "finger_left": [3, 5], "lower": [3, 5, 29], "upper": [3, 5, 29], "actual": [3, 5, 8, 35, 51], "load": [3, 4, 5, 9, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 37], "appropri": [3, 5, 6, 45], "By": [3, 5, 9, 21, 29, 43, 45], "though": [3, 5, 21, 22], "extens": [3, 5], "via": [3, 4, 5, 17, 19, 26, 27, 29, 31, 46, 55], "between": [3, 4, 5, 6, 12, 13, 17, 29, 32, 34, 35, 43, 44, 45, 46, 51, 52], "filenam": [3, 5, 29], "libgazebo_ros2_control": 3, "so": [3, 4, 5, 8, 9, 15, 29, 33, 37, 46], "robot_param": [3, 5], "robot_descript": [3, 5, 9, 19, 29, 33], "robot_param_nod": [3, 5], "robot_state_publish": [3, 5, 21, 43], "config": [3, 5, 17], "cart_control": [3, 5], "yaml": [3, 4, 5, 6, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 46], "server": [3, 41, 46], "node": [3, 4, 5, 9, 11, 12, 14, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 51], "attempt": [3, 5, 9, 46], "get": [3, 5, 7, 8, 9, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 56], "most": [3, 5, 6, 15, 17, 21, 29, 37], "least": [3, 5, 13, 15, 37, 46], "jointstateinterfac": [3, 5], "effortjointinterfac": [3, 5], "velocityjointinterfac": [3, 5], "complex": [3, 4, 5, 6, 7, 8], "mechan": [3, 5, 8, 46], "nonlinear": [3, 5], "spring": [3, 5], "linkag": [3, 5, 19, 22, 30], "etc": [3, 5, 9, 25, 29, 33, 56], "These": [3, 4, 5, 17, 29, 35, 41, 51], "inherit": [3, 5, 9, 29], "gazebosysteminterfac": 3, "level": [3, 5, 6, 7, 9, 22, 23, 28, 38, 45, 47, 53], "properti": [3, 5, 29], "sub": [3, 5, 21], "class": [3, 4, 5, 7, 9, 12, 15, 16, 29, 37, 40, 45], "specifi": [3, 5, 9, 15, 17, 29, 33, 36, 37, 44, 45, 46], "For": [3, 4, 5, 6, 7, 8, 9, 12, 14, 15, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 44, 46, 50, 52], "insid": [3, 5, 14, 17, 19], "joint_state_broadcast": [3, 5, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "publish": [3, 5, 6, 8, 13, 17, 20, 21, 29, 33, 36, 39, 42, 43, 45, 48, 51, 56], "stateinterfac": [3, 5, 29], "topic": [3, 5, 6, 7, 8, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 35, 36, 46, 51, 54], "sensor_msg": [3, 5, 42, 48], "msg": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 38, 39, 40, 42, 45, 46, 47, 48, 50, 53], "jointstat": [3, 5], "joint_trajectory_control": [3, 5, 6, 16, 19, 36, 44, 49], "follow_joint_trajectori": [3, 5, 46], "control_msg": [3, 5, 33, 44, 46, 50, 56], "followjointtrajectori": [3, 5, 44, 46], "controller_manag": [3, 4, 5, 6, 9, 16, 25, 36, 37, 38, 46, 47, 53], "ros__paramet": [3, 5, 33, 35, 38, 39, 41, 42, 43, 44, 46, 47, 48, 53], "update_r": [3, 5, 9, 36, 38, 47, 53], "100": [3, 4, 11, 13, 38, 47, 53], "hz": [3, 5, 35, 38, 41, 47, 53], "jointstatebroadcast": [3, 5, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "contain": [3, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 38, 39, 41, 42, 43, 44, 45, 47, 48, 50, 53], "content": [3, 15, 29, 37], "There": [3, 4, 5, 9, 12, 15, 17, 21, 23, 26, 27, 28, 37, 45, 46], "meter": [3, 5, 29], "cart_example_veloc": [3, 5], "cart_example_effort": [3, 5], "diff_driv": 3, "tricycle_dr": 3, "world": [3, 5, 9, 14, 21, 29, 33], "example_veloc": [3, 5], "example_effort": [3, 5], "example_diff_dr": [3, 5], "example_tricycle_dr": [3, 5], "parallel": [3, 4, 5, 13, 14], "gripper_mimic_joint_exampl": [3, 5], "send": [3, 5, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 45, 46], "example_gripp": [3, 5], "iron": [4, 17, 29], "bug": [4, 56], "want": [4, 8, 9, 17], "thrive": 4, "roll": [4, 29, 35, 51], "stack": [4, 7, 56], "earlier": [4, 6], "done": [4, 7, 8, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 36, 37], "download": [4, 17], "repositori": [4, 6, 10, 13, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 35, 36], "mkdir": [4, 17], "p": [4, 9, 17, 44], "src": [4, 15, 17, 19, 29, 31, 33, 35, 37, 39, 41, 42, 43, 44, 48], "wget": 4, "raw": 4, "githubusercont": 4, "com": [4, 6, 17, 29], "ros2_control_ci": 4, "ros_control": [4, 6, 7, 56], "vc": [4, 17], "import": [4, 15, 17, 29, 37, 44], "rosdep": [4, 17], "rosdistro": [4, 17], "sudo": [4, 9, 17], "apt": [4, 17], "path": [4, 7, 17, 29, 46], "ignor": [4, 9, 17, 35, 44, 50, 51], "r": [4, 17, 30], "y": [4, 17, 21, 24, 26, 27, 33, 39, 42], "everyth": [4, 15, 17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37], "opt": [4, 17, 19], "setup": [4, 14, 15, 17, 19, 24, 29, 31, 37, 45], "sh": [4, 17, 19, 31], "colcon": [4, 15, 17, 29, 37], "symlink": [4, 17, 29], "folder": [4, 7, 15, 17, 19, 20, 21, 24, 32, 33, 34, 35, 37, 39, 41, 42, 43, 44, 48, 50, 52], "found": [4, 9, 10, 15, 19, 20, 21, 24, 33, 35, 37, 39, 40, 42, 46, 48, 56], "figur": [4, 45], "uml": 4, "diagram": [4, 16], "intern": [4, 6, 8, 11, 13, 15, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 33, 45, 46], "cm": [4, 9], "abstract": [4, 7, 12, 29], "side": [4, 6, 7, 35], "entri": [4, 37], "point": [4, 29, 33, 37, 44, 45, 46, 56], "servic": [4, 6, 9, 12, 29, 36], "executor": [4, 9], "custom": [4, 13, 14, 17, 20, 23, 24, 39, 43, 44, 54], "howev": [4, 6, 8, 9, 17, 22, 29], "recommend": [4, 7, 15], "ros2_control_nod": [4, 25, 29], "assum": [4, 8, 33], "On": [4, 29], "hand": [4, 29, 55], "unload": [4, 9, 16], "match": [4, 17, 45], "report": [4, 6, 43, 56], "error": [4, 6, 9, 11, 15, 22, 25, 29, 33, 37, 43, 44, 46], "execut": [4, 11, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 41, 44, 45, 46, 52], "loop": [4, 7, 9, 14, 19, 25, 26, 27, 28, 29, 30, 31, 37, 43, 44, 46, 50], "output": [4, 6, 7, 13, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 51], "driver": [4, 7, 17, 29, 55], "reus": [4, 7, 8], "flexibl": 4, "motor": [4, 8, 55], "encod": [4, 29, 35, 51], "theori": [4, 56], "compar": [4, 6, 7], "refer": [4, 8, 21, 22, 29, 55], "measur": [4, 14, 23, 33, 39, 43, 44, 55], "calcul": [4, 21, 29, 33, 35, 45, 50, 51], "input": [4, 6, 7, 8, 13, 20, 22, 29, 33, 35, 38, 40, 44, 45, 47, 50, 51, 53], "object": [4, 29], "deriv": [4, 44, 45], "controller_interfac": [4, 16, 29, 33, 37, 39, 42, 48], "export": [4, 8, 9, 15, 17, 29, 33, 37], "plugin": [4, 9, 11, 12, 13, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 33, 37, 49], "forwardcommandcontrol": [4, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "lifecyclenod": 4, "document": [4, 6, 7, 13, 14, 15, 17, 24, 36, 45, 46], "list": [4, 7, 8, 9, 12, 15, 16, 22, 29, 37, 39, 54, 55, 56], "srv": [4, 46], "controller_manager_msg": 4, "directli": [4, 19, 22, 31, 56], "friendli": 4, "cli": [4, 9, 10, 16, 19, 20, 21, 24, 25, 26, 27, 28, 30, 31], "auto": [4, 9], "complet": [4, 12, 22, 29, 45], "rang": [4, 13, 36], "common": [4, 6, 17, 43, 56], "capabl": [4, 6], "realiz": [4, 7, 45, 46], "repres": [4, 12, 29, 35, 36, 45], "dynam": [4, 15, 21, 29, 33, 37, 54], "dof": [4, 13, 17, 29, 41], "differ": [4, 6, 7, 10, 12, 13, 15, 17, 19, 20, 24, 25, 29, 35, 38, 39, 43, 45, 47, 50, 53], "transmiss": [4, 17], "humanoid": 4, "logic": 4, "channel": [4, 55], "kuka": [4, 19, 25, 26, 27, 55], "rsi": [4, 19, 26, 27, 55], "relat": [4, 6, 7], "forc": [4, 7, 13, 16, 26, 27, 33, 36, 55], "torqu": [4, 13, 26, 27, 33, 36], "simpl": [4, 6, 7, 8, 15, 17, 19, 21, 22, 24, 29, 30, 37, 41], "valv": [4, 13], "mandatori": [4, 9], "dc": 4, "arduino": [4, 23, 28], "board": 4, "modular": [4, 7, 17, 29], "independ": [4, 7, 27], "explan": [4, 9, 15], "given": [4, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 38, 45, 46, 47, 53], "through": [4, 6, 7, 8, 9, 15, 16, 17, 22, 29, 37, 46, 56], "tag": [4, 9, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 37, 56], "chosen": [4, 13], "structur": [4, 6, 8, 9, 15, 29, 35, 37, 44, 45], "track": [4, 32, 52, 56], "togeth": [4, 8, 13, 24, 26, 50], "xacro": [4, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "hereund": 4, "rrbot": [4, 13, 16, 17, 20, 21, 23, 25, 26, 27, 28, 30], "effector": [4, 33], "site": 4, "rrbotsystempositiononli": [4, 27], "ros2_control_demo_hardwar": [4, 13, 16], "example_param_write_for_sec": 4, "example_param_read_for_sec": [4, 13], "joint1": [4, 13, 14, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "joint2": [4, 13, 16, 19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 33, 46], "rrbotforcetorquesensor1d": 4, "forcetorquesensor1dhardwar": 4, "tcp_fts_sensor": [4, 13, 26, 27], "frame_id": [4, 13, 26, 27, 39, 42, 48, 50], "rrbot_tcp": 4, "min_forc": 4, "max_forc": 4, "rrbotgripp": 4, "positionactuatorhardwar": 4, "gripper_joint": 4, "instead": [4, 14, 20, 24, 29, 31, 33, 44], "pure": 4, "could": [4, 7, 8, 17, 25, 37, 43, 46], "altern": [4, 19, 46], "script": [4, 6, 15, 37], "skeleton": 4, "sim": [5, 16, 54], "dockerfil": [5, 17], "Then": [5, 8, 17, 29, 31, 45], "ign": 5, "meet": [5, 56], "prerequisit": 5, "along": 5, "gazebosimsystem": 5, "libgz_ros2_control": 5, "gazebosimros2controlplugin": 5, "gazebosimsysteminterfac": 5, "controller_manager_prefix_node_nam": 5, "diff_drive_exampl": 5, "tricycle_drive_exampl": 5, "about": [6, 8, 14, 15, 25, 35, 42, 43, 46, 56], "task": [6, 7, 35], "envis": 6, "simul": [6, 14, 16, 17, 19, 20, 22, 24, 26, 27, 29], "ignit": 6, "showcas": [6, 7], "grace": 6, "degrad": 6, "roadmap": [6, 17, 56], "place": [6, 35, 37, 51], "draft": 6, "gpio": [6, 17, 29], "mode": [6, 8, 15, 22, 25, 33, 44, 45, 50], "switch": [6, 16, 17, 19, 25], "movement": [6, 44], "safeti": [6, 29], "skill": 6, "prefer": 6, "familiar": [6, 56], "mentor": 6, "\u0161togl": [6, 7], "size": [6, 35, 48, 51], "350": 6, "hour": 6, "difficulti": 6, "medium": 6, "focus": [6, 7, 8], "although": [6, 8, 12, 13, 46], "easi": 6, "therefor": [6, 8, 9, 17, 37, 43, 44, 46], "often": [6, 14, 20, 24, 37, 43], "orchestr": 6, "purpos": [6, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31], "conductor": 6, "scenario": [6, 45], "moment": [6, 8, 46], "right": [6, 17, 35], "replac": [6, 12, 36, 46], "high": [6, 9, 45], "moveit2": [6, 7, 36, 55], "simplecontrollermanag": 6, "goal": [6, 7, 13, 19, 25, 26, 27, 28, 30, 31, 41, 44, 46, 56], "form": [6, 17], "behavior": [6, 14, 29, 45], "benchmark": 6, "statu": [6, 8, 12, 16, 19, 44], "format": [6, 29, 33, 43, 46], "preset": 6, "modul": [6, 22], "reli": 6, "doubl": [6, 14, 19, 29, 32, 33, 34, 35, 41, 44, 48, 50, 51, 52], "desir": [6, 11, 44, 46], "both": [6, 7, 22, 29, 30, 35, 43, 44, 45, 46], "improv": 6, "readabl": [6, 29], "concept": [6, 7, 8, 14, 17, 19], "introduc": [6, 7, 8, 19, 29], "essenti": [6, 19], "group": [6, 8, 9, 13, 46, 56], "instanc": [6, 9, 22, 43], "imu": [6, 13, 36], "typic": [6, 13, 24, 43, 44], "acceleromet": 6, "gyroscop": 6, "compass": 6, "part": [6, 7, 13, 29, 37, 45, 46], "Such": [6, 22], "struct": 6, "low": [6, 7], "profil": 6, "relev": [6, 33, 44, 50, 56], "addition": [6, 29, 32, 34, 52, 56], "few": [6, 7, 36], "175": 6, "rewrit": [6, 56], "rich": 6, "wa": [6, 15, 19, 20, 24, 25, 29, 37, 45], "motiv": 6, "adopt": 6, "port": [6, 12, 13], "quit": 6, "miss": [6, 43, 45, 46], "diff_drive_control": [6, 8, 16, 24], "consist": [6, 46, 56], "onc": [6, 7, 19, 21, 24, 25, 26, 27, 29, 30, 36], "identifi": [6, 29], "much": [6, 8, 19, 21, 23, 24, 25, 26, 27, 28, 30, 37, 46], "303": 6, "304": 6, "stretch": 6, "realtime_tool": [6, 56], "81": [6, 33], "302": 6, "unit": 6, "gmock": 6, "cc": [7, 45, 46], "BY": [7, 45, 46], "licens": [7, 45, 46], "author": [7, 8], "either": [7, 19, 25, 26, 27, 28, 30, 31, 43, 45], "down": [7, 29, 33], "below": [7, 9, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 44, 45, 46], "compani": 7, "my": 7, "company_nam": 7, "tricycl": [7, 36, 51], "event": 7, "pixel": 7, "prefac": 7, "introduct": 7, "plapp": 7, "kernel": [7, 9], "agnost": [7, 29], "share": [7, 15, 29, 31, 37, 50], "well": [7, 9, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 46], "perform": [7, 9, 29], "heavi": 7, "stogl": 7, "consult": 7, "practition": 7, "guid": [7, 15, 37], "top": 7, "virtual": [7, 8, 21, 34], "talk": 7, "delv": 7, "deeper": 7, "what": [7, 19, 29], "explicit": [7, 9, 29, 44], "chain": [7, 10, 16, 17, 29, 33, 44, 50], "emerg": 7, "handler": 7, "mock": [7, 10, 15], "usag": [7, 8, 9, 13, 16, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "openli": 7, "record": 7, "fiveai": 7, "ltd": 7, "best": [7, 9, 37], "focu": [7, 8], "becom": [7, 22], "util": 7, "3rd": 7, "parti": 7, "nav2": [7, 36], "practic": 7, "tip": [7, 29, 33], "hot": 7, "shown": [7, 29, 45], "furthermor": [7, 24], "offer": [7, 9, 15, 29], "expos": [7, 17, 22], "problem": [7, 56], "manipul": [7, 17, 19, 22, 29, 30, 44, 55], "plan": [7, 56], "autonom": 7, "navig": 7, "ideal": [7, 14], "made": [7, 12], "mobil": [7, 17, 21, 24, 35, 50, 51, 55], "arm": [7, 19, 22, 30, 33], "extra": [7, 29, 43], "readi": [7, 15, 17, 22, 36, 37], "studi": 7, "ur": 7, "With": [7, 29, 31, 46], "moveit": [7, 14], "ingredi": 7, "run": [7, 8, 9, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 36, 45, 50], "scale": [7, 44], "factor": [7, 35], "teach": 7, "pendant": 7, "influenc": 7, "picknik": 7, "inc": 7, "lovro": 7, "ivanov": 7, "zelenak": 7, "rune": 7, "s\u00f8e": 7, "knudsen": 7, "onlin": [7, 15, 37], "trajectori": [7, 19, 29, 36, 44, 56], "admitt": [7, 36], "One": [7, 8, 20], "reason": [7, 8, 9, 29], "upgrad": 7, "ros1": [7, 17], "better": 7, "realtim": [7, 9, 29, 35, 46, 51, 56], "contact": 7, "insert": 7, "singl": [7, 26, 41, 51], "waypoint": [7, 45, 46], "mani": [7, 29, 36, 37], "teleoper": 7, "involv": 7, "kinemat": [7, 8, 17, 24, 29, 32, 33, 34, 50, 52], "acceler": [7, 17, 25, 29, 33, 35, 42, 44, 45, 46, 51], "jerk": [7, 35, 51], "obei": [7, 29], "demo": [7, 13], "booth": 7, "zeleank": 7, "unifi": 7, "life": [7, 29], "cycl": [7, 29, 36], "_control": [7, 17], "wild": 7, "materi": 7, "quick": [7, 12], "overview": 7, "layer": 7, "aka": 7, "systemcompon": 7, "forward": [7, 14, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 36, 44, 46, 56], "look": [7, 24], "modifi": 7, "simpli": [7, 9, 19, 45, 46], "edit": 7, "collect": [7, 38, 47, 53], "semant": [7, 13, 33, 39, 42, 48], "monolit": 7, "controlko": 7, "propos": [8, 56], "minim": [8, 33, 56], "viabl": [8, 29], "serial": [8, 29], "tri": [8, 44], "clariti": 8, "arbitrari": [8, 29, 46], "order": [8, 29], "nevertheless": 8, "convinc": 8, "would": [8, 43], "unnecessari": 8, "long": 8, "term": [8, 56], "clearer": 8, "let": [8, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "yet": [8, 9, 17, 22, 35, 45, 46], "controllers_chain": 8, "position_track": 8, "pid": [8, 44, 45, 46, 56], "now": [8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37, 45], "imagin": 8, "flexibli": 8, "preced": 8, "step": [8, 11, 15, 17, 37, 45, 56], "At": [8, 15, 22, 37], "attach": 8, "disabl": [8, 14, 35, 50], "subscrib": [8, 20, 21, 22, 29], "differenti": [8, 17, 24, 34, 35, 36, 55, 56], "interfaceconfigur": [8, 29], "input_interface_configur": 8, "const": [8, 11, 12, 29], "anoth": [8, 9, 11, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 46], "simplic": [8, 29], "try": [8, 29], "exclus": [8, 29], "rather": [8, 17, 45], "void": 8, "set_chained_mod": 8, "bool": [8, 11, 33, 35, 41, 43, 44, 50, 51], "flag": [8, 11, 15, 37, 44], "on_set_chained_mod": 8, "pid_refer": 8, "controller_nam": [8, 9, 16, 33, 37, 46, 50], "v_x": 8, "v_y": 8, "w_z": 8, "cmd_vel": [8, 24, 35, 51], "cmd_vel_unstamp": [8, 35], "Its": [8, 56], "continu": [8, 44, 45, 46], "chainabl": [8, 17, 22, 35, 46], "ownership": 8, "process": [8, 15, 29, 37, 45], "claim": [8, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33], "vector": [8, 22, 29, 37], "invers": [8, 29, 33], "rule": [8, 9, 15, 37], "think": [8, 17], "break": [8, 14], "middl": [8, 34], "unavail": [8, 21, 22], "anyth": 8, "confus": 8, "irrelev": 8, "feasibl": 8, "interface_configuration_typ": 8, "littl": 9, "jitter": 9, "normal": [9, 29, 33, 44], "linux": 9, "comput": [9, 17, 35, 50, 51], "throughput": 9, "suit": 9, "easiest": [9, 15, 37], "ubuntu": 9, "lt": 9, "beta": 9, "rt": 9, "amd64": 9, "debian": 9, "bullsey": 9, "thread": [9, 29], "sched_fifo": 9, "prioriti": 9, "addgroup": 9, "usermod": 9, "whoami": 9, "afterward": 9, "secur": 9, "conf": [9, 29], "soft": 9, "rtprio": 9, "memlock": 9, "102400": 9, "appli": [9, 16, 29, 33, 35, 46], "log": 9, "again": [9, 12, 19, 20, 24, 29], "hardware_components_initial_st": 9, "map": [9, 14, 43, 46], "attribut": [9, 29], "full": [9, 15, 17, 37, 39], "unconfigur": [9, 12, 16, 19, 29], "arm1": 9, "arm2": 9, "inact": [9, 16, 19, 25, 29, 36], "base3": 9, "empti": [9, 35, 37, 39, 42, 43, 46, 50, 51], "integ": [9, 36], "frequenc": [9, 36], "startup": 9, "h": [9, 15, 16, 37], "param_fil": 9, "n": 9, "namespac": [9, 11, 15, 29, 35, 36, 37, 43], "controller_typ": 9, "timeout": [9, 16, 35, 41, 44, 50, 51], "controller_manager_timeout": 9, "argument": [9, 15, 16, 19, 21, 23, 24, 25, 26, 27, 28, 30], "exit": [9, 16], "leav": 9, "kill": [9, 16, 29], "wait": [9, 16, 28, 44], "until": [9, 29, 44, 45], "mai": [9, 12, 26, 36, 38, 47, 53], "taken": [9, 50], "becaus": [9, 13, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 45], "rclcpp": [9, 11, 15, 29, 37], "than": [9, 33, 39, 41, 44, 46, 50, 51], "global": 9, "remap": [9, 21], "forcibli": 9, "lead": [9, 46], "duplic": [9, 44, 50], "occur": [9, 29], "whether": [9, 33], "sibl": 9, "hierarchi": 9, "workaround": 9, "nodeopt": 9, "pass": [9, 11, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30], "caus": [9, 45, 46, 50], "get_cm_node_opt": 9, "arg": 9, "_target_node_nam": 9, "__node": 9, "dst_node_nam": 9, "info": [9, 11, 12, 15, 29], "std": [9, 29, 35, 44, 51], "make_shar": 9, "some_optional_namespac": 9, "simplest": 9, "switch_control": [9, 19], "broadcast": [9, 13, 14, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 43], "achiev": [9, 11, 29, 38, 44, 47, 53], "return": [9, 11, 12, 15, 19, 29, 37, 41, 43, 45, 46], "NOT": 9, "FOR": 9, "detect": 9, "listen": [9, 44], "doxygen": [10, 15], "cascad": 10, "advic": 11, "xmln": 11, "wiki": [11, 32, 34, 45, 46, 52], "system_interfac": 11, "main_loop_update_r": 11, "desired_hw_update_r": 11, "my_system_interfac": 11, "mysystemhardwar": 11, "on_init": [11, 12, 15, 29, 37], "callbackreturn": [11, 12, 15, 29], "success": [11, 12, 15, 29, 37, 41, 46], "hpp": [11, 12, 15, 17, 29, 33, 37], "unsign": [11, 36], "int": [11, 35, 48, 50, 51], "main_loop_update_rate_": 11, "desired_hw_update_rate_": 11, "stoi": 11, "info_": [11, 29], "hardware_paramet": 11, "reset": [11, 29, 50], "counter": 11, "rclcpp_lifecycl": [11, 12, 15, 29, 37], "previous_st": [11, 12, 29], "update_loop_counter_": 11, "durat": [11, 29], "period": [11, 29, 44], "interfer": 11, "return_typ": [11, 12, 29, 37], "hardware_go": 11, "comm": 11, "oper": [11, 29, 56], "sinc": [11, 25, 29, 34], "indic": [11, 25, 29, 44], "first_read_pass_": 11, "first_write_pass_": 11, "true": [11, 20, 21, 24, 31, 33, 35, 44, 45, 46, 50, 51], "last_read_time_": 11, "desired_hw_update_period_": 11, "last_write_time_": 11, "previou": [11, 29, 45, 56], "on_error": [12, 15, 29], "failur": 12, "recov": 12, "reload": [12, 16], "substanti": 12, "renam": 12, "baseinterfac": 12, "remov": 12, "base_interfac": 12, "hardware_interface_status_valu": 12, "strictli": [12, 13], "status_": 12, "in_deactiv": 12, "undefin": 12, "refern": 12, "symbol": 12, "node_interfac": [12, 29], "lifecyclenodeinterfac": [12, 15, 29], "rclcpp_lifecyl": 12, "cmakelist": [12, 15, 29, 37], "txt": [12, 15, 29, 37], "devic": 13, "associ": 13, "coupl": 13, "ship": 13, "cannot": [13, 22, 29, 39, 46], "keyword": 13, "digit": 13, "signal": [13, 35], "electr": 13, "analog": 13, "within": [13, 19, 33, 46], "vacuum": [13, 20], "flang": 13, "off": 13, "rrbotsystemmutiplegpio": 13, "example_param_hw_start_duration_sec": 13, "example_param_hw_stop_duration_sec": 13, "example_param_hw_slowdown": 13, "flange_digital_io": 13, "digital_output1": 13, "know": 13, "digital_output2": 13, "digital_input1": 13, "digital_input2": 13, "flange_analog_io": [13, 20], "analog_output1": [13, 20], "analog_input1": [13, 20], "analog_input2": [13, 20], "flange_vacuum": [13, 20], "suction": 13, "grasp": 13, "multimod": 13, "multimodalgripp": 13, "parallel_fing": 13, "temperatur": [13, 17], "feedback": [13, 14, 23, 43, 44, 46, 50, 51], "adjust": [13, 16, 19, 29], "calibr": 13, "2d": [13, 26, 27], "ft": [13, 26, 27, 39], "choic": [13, 50], "matric": 13, "rrbotforcetorquesensor2d": 13, "forcetorquesensor2dhardwar": 13, "fx": 13, "tz": 13, "kuka_tcp": 13, "fx_rang": 13, "tz_rang": 13, "temp_feedback": 13, "calibration_matrix_nr": 13, "mirror": [14, 20], "correspond": [14, 15, 29, 37, 50, 56], "offlin": 14, "advantag": 14, "pipe": 14, "even": [14, 21, 22, 46], "debug": 14, "boost": 14, "mimic": [14, 21], "offset": [14, 43, 44], "fake": 14, "disable_command": 14, "boolean": [14, 36], "erron": [14, 29], "noth": 14, "suddenli": 14, "Or": [14, 19, 25, 26, 27, 28, 30, 31], "mock_sensor_command": 14, "position_state_following_offset": 14, "custom_interface_with_following_offset": 14, "compil": [15, 29, 31, 37], "prepar": [15, 25, 37], "ament_cmak": [15, 37], "search": [15, 37], "pkg": [15, 37], "package_nam": [15, 37], "alreadi": [15, 16, 17, 19, 22, 29, 31, 36, 37, 46], "robot_hardware_interface_nam": 15, "visibility_control": [15, 37], "window": [15, 35, 37, 51], "copi": [15, 37], "prefix": [15, 33, 35, 37, 39, 42, 48], "guard": [15, 37], "ifndef": [15, 37], "preprocessor": [15, 37], "engin": [15, 37], "friend": [15, 37], "interface_typ": [15, 37], "uniqu": [15, 29, 37], "snake_cas": [15, 37], "interfacetyp": 15, "hardwareinterfacenam": 15, "public": [15, 29, 37], "on_cleanup": [15, 29], "on_shutdown": [15, 29], "overrid": [15, 29, 37, 38, 46, 47, 53], "export_state_interfac": [15, 29], "export_command_interfac": [15, 29], "prepare_command_mode_switch": 15, "perform_command_mode_switch": 15, "further": [15, 37], "exact": [15, 37], "simplifi": [15, 29, 37, 56], "valid": [15, 17, 44, 48], "fine": [15, 21, 24, 37], "otherwis": [15, 17, 33, 37, 43, 44], "opposit": [15, 37], "remind": 15, "joint_nam": [15, 33, 37], "shutdown": [15, 29], "gracefulli": 15, "store": [15, 37], "close": [15, 37], "class_list_macro": [15, 29, 37], "my_hardware_interface_packag": 15, "robothardwareinterfacenam": 15, "second": [15, 16, 19, 22, 25, 26, 27, 28, 29, 30, 31, 35, 37, 45, 56], "visibl": [15, 37], "mock_compon": [15, 20, 24], "bottom": [15, 29, 37], "test_load_": [15, 37], "load_generic_system_2dof": 15, "test_generic_system": 15, "find_packag": [15, 37], "directori": [15, 35, 37, 39, 42, 48], "ament": [15, 37], "cmake": 15, "pluginlib_export_plugin_description_fil": [15, 29, 37], "ament_cmake_gmock": [15, 37], "ament_add_gmock": [15, 37], "ament_export_librari": [15, 37], "ament_packag": [15, 37], "test_depend": [15, 37], "rememb": [15, 37], "root": [15, 37], "workspac": [15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 37], "enjoi": [15, 37], "great": [15, 37], "templat": [15, 17, 29, 37], "shell": [15, 37], "onward": 15, "spin": 16, "spin_tim": 16, "hidden": 16, "discoveri": 16, "daemon": 16, "test_controller_nam": 16, "test_control": 16, "diffdrivecontrol": [16, 24], "verbos": 16, "label": [16, 20, 23, 24, 26, 27, 28, 45], "unclaim": [16, 21, 22, 25], "hardware_component_nam": 16, "hardware_compon": 16, "ctrl1": 16, "ctrl2": 16, "strict": 16, "asap": 16, "switch_timeout": 16, "tmp": 16, "controller_diagram": 16, "gv": 16, "pdf": [16, 29], "demonstr": [17, 19, 21, 22, 24, 25, 30, 31], "prove": 17, "checkout": 17, "roscon2022_workshop": 17, "hardwareinterfac": [17, 29], "diffbot": 17, "degre": [17, 29, 46, 50], "freedom": [17, 29, 50], "components_architecture_and_urdf_exampl": 17, "revolut": [17, 19, 22, 29, 30], "drive": [17, 21, 24, 32, 34, 35, 36, 50, 51, 52, 55, 56], "accord": [17, 24, 29], "tutori": 17, "intermedi": 17, "carlikebot": 17, "bicycl": [17, 21, 36, 50], "steer": [17, 21, 32, 34, 36, 50, 51, 52], "tba": 17, "tabl": 17, "offici": 17, "easili": 17, "aptitud": 17, "might": [17, 45], "own": [17, 19, 29], "git": [17, 29], "clone": [17, 29], "b": [17, 29], "merg": 17, "f": [17, 33], "procedur": 17, "rviz2": [17, 19, 31], "visual": [17, 19, 27, 29, 43], "joint_state_publisher_gui": [17, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "bring": 17, "ros2_control_demo_example_1": [17, 19], "view_robot": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "omit": 17, "termin": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "example_1": [17, 19, 20, 22, 31], "rviz": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 43], "slider": 17, "around": [17, 39, 42, 44, 48], "ros2_control_demo_example_2": [17, 24], "come": [17, 46], "categori": 17, "individu": [17, 37, 39, 48], "position_in_degre": 17, "hardware_interface_type_valu": [17, 33], "6dof": 17, "variou": [19, 30], "invert": 19, "pendulum": 19, "fun": 19, "proprietari": [19, 21, 23, 24, 25, 26, 27, 28, 30], "view": [19, 29], "recreat": 19, "robotmodel": 19, "displai": [19, 22, 23, 25, 26, 27, 28, 30, 31], "ros2_control_demo_descript": [19, 21], "ok": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 37], "warn": [19, 21, 23, 24, 25, 26, 27, 28, 30, 43], "invalid": [19, 21, 23, 24, 25, 26, 27, 28, 30], "frame": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 33, 35, 51], "odom": [19, 21, 23, 24, 25, 26, 27, 28, 30, 35, 50, 51], "cantransform": [19, 21, 23, 24, 25, 26, 27, 28, 30], "target_fram": [19, 21, 23, 24, 25, 26, 27, 28, 30], "happen": [19, 21, 23, 24, 25, 26, 27, 28, 29, 30], "ctrl": 19, "lot": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30], "exemplari": [19, 23, 25, 26, 27, 28, 30, 32, 34, 50, 52], "orang": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "yellow": [19, 22, 23, 25, 26, 27, 28, 30, 31], "rectangl": [19, 22, 23, 25, 26, 27, 28, 30], "introspect": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30], "list_hardware_interfac": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "entrypoint": 19, "nomin": [19, 35], "marker": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "list_control": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "forward_position_control": [19, 20, 22, 25, 26, 27, 28, 30, 31], "forward_command_control": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 47, 53], "pub": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "std_msg": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "float64multiarrai": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31, 38, 40, 47, 53], "everi": [19, 25, 26, 27, 28, 29, 30, 31, 36, 40, 44, 56], "test_forward_position_control": [19, 25, 26, 27, 28, 30, 31], "block": [19, 22, 23, 25, 26, 27, 28, 29, 30], "got": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28], "50000": [19, 22, 26, 27, 28], "echo": [19, 20, 22, 24, 26, 27, 31], "joint_stat": [19, 21, 22, 24, 31, 43], "dynamic_joint_st": [19, 22, 31, 43], "load_control": 19, "joint_trajectory_position_control": 19, "successfulli": [19, 23, 28], "set_controller_st": 19, "rrbot_control": [19, 20, 22, 30, 31], "four": [19, 21, 23, 32], "test_joint_trajectory_control": 19, "rrbot_joint_trajectory_publish": 19, "rrbot_descript": [19, 20, 22, 23, 25, 26, 27, 28, 30, 31], "rrbot_forward_position_publish": [19, 31], "ros2_control_demo_example_10": 20, "contrast": 20, "gpio_control": 20, "gpiocontrol": 20, "interface_nam": [20, 39, 40], "1199574016": 20, "1676318848": 20, "rrbotsystemwithgpiohardwar": 20, "gp": 20, "list_hardware_compon": [20, 23, 24, 26, 27, 28], "faster": [20, 24, 35, 51], "genericsystem": [20, 24], "use_mock_hardwar": [20, 24], "ident": [20, 22, 24, 29, 31, 45], "unless": [20, 43], "nan": [20, 26, 44], "generic_system": 20, "wheel": [21, 32, 34, 35, 50, 51, 52], "front": [21, 32, 33, 34, 50, 51, 52], "vehicl": [21, 34], "angl": [21, 29, 34, 50], "similarli": 21, "rear": [21, 32, 34, 50, 51, 52], "carlik": 21, "ros2_control_demo_example_11": 21, "remap_odometry_tf": 21, "excess": [21, 24], "print": [21, 24, 43], "being": 21, "tf": [21, 35, 50], "tree": [21, 29, 35], "pose": [21, 35, 50, 51], "coordin": 21, "odometri": [21, 35, 50, 51], "bicycle_steering_control": 21, "tf_odometri": [21, 50], "angular": [21, 24, 35, 42, 50, 51], "linear": [21, 24, 29, 35, 42, 45, 50, 51], "virtual_front_wheel_joint": 21, "virtual_rear_wheel_joint": 21, "bicyclesteeringcontrol": 21, "geometry_msg": [21, 24, 26, 27, 35, 39, 50], "twiststamp": [21, 24, 35, 50], "twist": [21, 24, 35, 50, 51], "circl": [21, 24], "carlikebotsystemhardwar": 21, "carlikebot_control": 21, "carlikebot_system": 21, "example_12": 22, "been": 22, "known": 22, "passthrough_control": 22, "ros2_control_demo_example_12": 22, "joint2_position_control": 22, "passthroughcontrol": 22, "joint1_position_control": 22, "someth": 22, "automat": [22, 29, 31, 35, 51], "appear": 22, "whose": [22, 45], "henc": [22, 29], "launch_chained_control": 22, "position_control": [22, 36, 40, 41], "streamlin": 22, "clearli": 22, "sent": [22, 44], "reflect": 22, "canopen_402": [23, 28], "modbu": [23, 28], "rs232": [23, 28], "rs485": [23, 28], "ros2_control_demo_example_14": 23, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 23, "rrbotmodularjoint2": [23, 28], "rrbotactuatorwithoutfeedback": 23, "rrbotmodularjoint1": [23, 28], "rrbotmodularpositionsensorjoint2": 23, "rrbotsensorpositionfeedback": 23, "rrbotmodularpositionsensorjoint1": 23, "forward_velocity_control": [23, 25], "000000": 23, "00000": [23, 24, 25], "25300": 23, "rrbot_actuator_without_feedback": 23, "rrbot_sensor_for_position_feedback": 23, "example_2": 24, "left_wheel_joint": 24, "right_wheel_joint": 24, "diffbot_base_control": 24, "diff": 24, "diffbotsystemhardwar": 24, "33333": 24, "calculate_dynam": 24, "diffbot_control": 24, "diffbot_descript": 24, "diffbot_system": 24, "example_3": 25, "fri": [25, 55], "abb": [25, 55], "yumi": 25, "schunk": [25, 55], "lwa4p": 25, "illeg": 25, "declin": 25, "faulti": 25, "ros2_control_demo_example_3": 25, "rrbot_system_multi_interfac": 25, "robot_control": [25, 29], "spawn": 25, "forward_acceleration_control": 25, "velocity_control": [25, 36, 40], "jointgroupvelocitycontrol": 25, "rrbotsystemmultiinterfacehardwar": 25, "po": [25, 33, 45], "78500": 25, "vel": [25, 50], "acc": 25, "control_lvl": 25, "forward_illegal1_control": 25, "forward_illegal2_control": 25, "1676209982": 25, "531163501": 25, "resource_manag": 25, "rrbotsystemmultiinterfac": 25, "did": 25, "531223835": 25, "reject": [25, 44, 45], "spawner": 25, "531717376": 25, "spawner_forward_illegal1_control": 25, "rrbot_multi_interface_forward_control": 25, "krc": 26, "prototyp": 26, "odri": [26, 55], "ros2_control_demo_example_4": 26, "rrbot_system_with_sensor": 26, "rrbotsystemwithsensor": 26, "rrbotsystemwithsensorhardwar": 26, "fts_broadcast": [26, 27], "force_torque_sensor_broadcast": [26, 27], "forcetorquesensorbroadcast": [26, 27], "wrench": [26, 27, 33], "republish": [26, 27], "wrenchstamp": [26, 27, 39], "stamp": [26, 27, 35, 50, 51], "sec": [26, 27], "1676444704": [26, 27], "nanosec": [26, 27], "332221422": [26, 27], "tool_link": [26, 27], "946532964706421": 26, "0540995597839355": 26, "rrbot_with_sensor_control": 26, "pc": 27, "3d": [27, 29], "ros2_control_demo_example_5": 27, "rrbot_system_with_external_sensor": 27, "externalrrbotftsensor": 27, "externalrrbotforcetorquesensorhardwar": 27, "2126582860946655": 27, "3202226161956787": 27, "4302282333374023": 27, "540233612060547": 27, "647800624370575": 27, "7602499723434448": 27, "rrbot_with_external_sensor_control": 27, "rrbot_system_position_onli": 27, "external_rrbot_force_torque_sensor": 27, "mara": 28, "ros2_control_demo_example_6": 28, "rrbot_modular_actu": 28, "rrbotmodularjoint": 28, "rrbot_actu": 28, "queri": [29, 46], "enhanc": 29, "deploi": 29, "pattern": 29, "vendor": 29, "runtim": 29, "program": 29, "conform": 29, "newest": 29, "characterist": 29, "primari": [29, 46], "commerci": 29, "scratch": 29, "illustr": 29, "stl": 29, "dae": 29, "coars": 29, "mesh": 29, "fast": [29, 55], "collis": 29, "express": 29, "vertic": 29, "transform": [29, 35, 51], "rotat": [29, 35, 44, 51], "translat": [29, 35, 51], "proxim": 29, "face": 29, "co": 29, "planer": 29, "xy": 29, "plane": 29, "align": 29, "blender": 29, "begin": 29, "neg": [29, 33, 44], "pitch": 29, "yaw": 29, "repeat": 29, "robot_6_dof": 29, "base_link": [29, 33, 35, 50, 51], "link_0": 29, "inerti": 29, "mass": [29, 33], "inertia": 29, "ixx": 29, "ixi": 29, "ixz": 29, "iyi": 29, "iyz": 29, "izz": 29, "tool0": [29, 33], "base_joint": 29, "joint_1": 29, "link_1": 29, "061584": 29, "141592653589793": 29, "name_spac": 29, "class_nam": 29, "pi": [29, 44], "enclos": 29, "previous": 29, "left": [29, 35, 43], "zero": [29, 33, 44, 45], "rel": [29, 45], "center": [29, 33], "uniform": 29, "consecut": 29, "motion": [29, 44], "subsequ": 29, "join": [29, 56], "speci": 29, "verifi": 29, "urdf_to_graphviz": 29, "r6bot": 29, "explain": 29, "robotsystem": 29, "ur5": 29, "five": 29, "hardware_interface_return_valu": 29, "hardware_interface_publ": 29, "commandinterfac": 29, "privat": 29, "memori": [29, 37], "alloc": 29, "establish": 29, "notabl": 29, "vari": 29, "fill": 29, "field": [29, 43, 45], "suppos": [29, 45], "tcp_force_torque_sensor": 29, "Their": 29, "pointer": 29, "state_interfaces_": 29, "nearli": 29, "command_interfaces_": 29, "constraint": [29, 33, 35, 37, 39, 41, 42, 44, 46, 50, 51], "respons": 29, "turn": 29, "oppos": [29, 46], "tcp": [29, 33], "packet": 29, "robot_6_dof_hardwar": 29, "discov": 29, "library_nam": 29, "base_class_typ": 29, "human": 29, "notic": [29, 45], "just": 29, "add_librari": 29, "robot_hardwar": 29, "unlik": 29, "finit": 29, "certain": [29, 38, 47, 53], "transit": [29, 36, 45], "robotcontrol": 29, "nine": 29, "six": [29, 39], "callback": 29, "lifetim": 29, "restart": 29, "reconfigur": 29, "buffer": [29, 56], "transfer": 29, "eventu": 29, "mutex": 29, "guarante": [29, 45], "never": 29, "release_interfac": 29, "shut": 29, "free": [29, 35], "cleanup": 29, "r6bot_control": 29, "view_r6bot": 29, "ros2_control_demo_example_7": 29, "send_trajectori": 29, "circular": 29, "ros2_control_demo_example_8": 30, "rrbot_transmissions_system_position_onli": 30, "rrbottransmissionssystempositiononlyhardwar": 30, "transmission1": 30, "actuator1": 30, "transmission2": 30, "actuator2": 30, "383253": 30, "766505": 30, "53301": 30, "example_9": 31, "later": [31, 45], "ros2_control_demo_example_9": 31, "rrbot_gazebo_class": 31, "gazebo_ros2_control": 31, "usr": 31, "ax": [32, 33, 34, 39, 42, 52], "traction": [32, 34, 50, 51, 52], "steerabl": [32, 34, 52], "generate_parameter_librari": [32, 33, 34, 35, 39, 40, 41, 42, 43, 44, 48, 50, 51, 52], "parameter": [32, 34, 50, 52], "front_wheel_track": 32, "length": [32, 33, 42, 50, 52], "en": [32, 34, 52], "wikipedia": [32, 34, 50, 52, 56], "wheelbas": [32, 34, 51, 52], "rear_wheel_track": 32, "distanc": [32, 34, 35, 46, 48, 51, 52], "front_wheels_radiu": [32, 52], "radiu": [32, 34, 35, 51, 52], "rear_wheels_radiu": [32, 52], "chainedcontrollerinterfac": 33, "kinematics_interfac": 33, "string_arrai": [33, 35, 40, 43, 44, 50], "command_joint": [33, 44], "chainable_command_interfac": 33, "plugin_nam": 33, "plugin_packag": 33, "alpha": 33, "damp": 33, "coeffici": 33, "jacobian": 33, "pseudo": 33, "ft_sensor": 33, "filter_coeffici": 33, "filter": 33, "exponenti": 33, "fixed_world_fram": 33, "graviti": 33, "gravity_compens": 33, "cog": 33, "double_arrai": [33, 35, 42, 50, 51], "compens": 33, "equal": [33, 41, 42, 44], "weight": 33, "selected_ax": 33, "bool_arrai": 33, "rx": 33, "ry": 33, "rz": 33, "arrai": 33, "bound": 33, "0001": 33, "damping_ratio": 33, "ratio": 33, "zeta": 33, "sqrt": 33, "m": [33, 48, 50], "stiff": 33, "joint_damp": 33, "greater": [33, 41, 44, 51], "enable_parameter_update_without_reactiv": 33, "load_admittance_control": 33, "test_admittance_control": 33, "kuka_kr6": 33, "joint3": [33, 46], "joint4": [33, 46], "joint5": [33, 46], "joint6": [33, 46], "kinematics_interface_kdl": 33, "kinematicsinterfacekdl": 33, "stationari": 33, "group_nam": 33, "0005": 33, "ft_sensor_nam": 33, "link_6": 33, "005": 33, "calc": 33, "displac": 33, "x_d": 33, "828427": 33, "214": 33, "joint_refer": 33, "trajectory_msg": [33, 45, 46], "jointtrajectorypoint": [33, 45], "admittancecontrollerst": 33, "sensor_nam": [33, 39, 42, 48], "ackermann": [34, 36, 50], "probabl": 34, "front_wheel_radiu": 34, "rear_wheel_radiu": 34, "bodi": 35, "space": [35, 46], "hw_if_posit": [35, 36, 50], "hw_if_veloc": [35, 36, 50], "position_feedback": [35, 50], "use_stamped_vel": [35, 50, 51], "nav_msg": [35, 50], "estim": 35, "tf2_msg": [35, 50], "tfmessag": [35, 50], "enable_odom_tf": [35, 50, 51], "cmd_vel_out": 35, "publish_limited_veloc": 35, "left_wheel_nam": 35, "right_wheel_nam": 35, "wheel_separ": 35, "shortest": [35, 44, 51], "wrong": [35, 51], "behav": [35, 51], "correctli": [35, 51], "curv": [35, 51], "wheel_radiu": [35, 51], "slower": [35, 45, 51], "wheel_separation_multipli": 35, "todo": 35, "me": 35, "left_wheel_radius_multipli": 35, "right_wheel_radius_multipli": 35, "tf_frame_prefix_en": 35, "append": [35, 45], "tf_prefix": 35, "tf_frame_prefix": 35, "odom_id": 35, "base_frame_id": [35, 50, 51], "odom_frame_id": [35, 50, 51], "pose_covariance_diagon": [35, 50, 51], "covari": [35, 42, 50, 51], "tune": [35, 51], "sampl": [35, 45, 50, 51], "001": [35, 41, 51], "twist_covariance_diagon": [35, 50, 51], "speed": [35, 51], "open_loop": [35, 50, 51], "cmd_vel_timeout": [35, 51], "stale": [35, 44, 51], "velocity_rolling_window_s": [35, 50, 51], "old": [35, 51], "publish_r": 35, "joint_limit": 35, "has_velocity_limit": 35, "has_acceleration_limit": 35, "has_jerk_limit": 35, "max_veloc": [35, 51], "numeric_limit": [35, 44, 51], "quiet_nan": [35, 44, 51], "min_veloc": [35, 51], "max_acceler": [35, 51], "min_acceler": [35, 51], "max_jerk": [35, 51], "min_jerk": [35, 51], "test_diff_drive_control": 35, "left_wheel": 35, "right_wheel": 35, "wheels_per_sid": 35, "commonli": 36, "effort_control": [36, 40, 41], "hw_if_acceler": 36, "hw_if_effort": 36, "represent": [36, 46], "rqt_joint_trajectory_control": [36, 46], "onconfigur": 36, "configure_control": 36, "unspecifi": 36, "is_async": 36, "asynchron": 36, "controllernam": 37, "protect": 37, "reserv": 37, "importantli": 37, "ask": [37, 43], "sort": 37, "controller_name_namespac": 37, "controller_name_packag": 37, "ros2_control_test_asset": 37, "special": [38, 45, 47, 53], "wrapper": [39, 42, 48], "forcetorquesensor": 39, "6d": 39, "per": [39, 44], "less": [39, 50], "example_nam": 39, "example_interfac": 39, "test_force_torque_sensor_broadcast": 39, "fts_sensor_fram": 39, "feedforward": 40, "multi_interface_forward_command_control": 40, "gripperactioncontrol": 41, "action_monitor_r": [41, 44, 46], "goal_toler": 41, "max_effort": 41, "allow_stal": 41, "stall": 41, "stall_velocity_threshold": 41, "threshold": 41, "stall_timeout": 41, "gripper_action_control": 41, "imusensor": 42, "orient": 42, "angular_veloc": 42, "linear_acceler": 42, "static_covariance_orient": 42, "static": 42, "row": 42, "static_covariance_angular_veloc": 42, "static_covariance_linear_acceler": 42, "test_imu_sensor_broadcast": 42, "imu_sensor": 42, "imu_sensor_fram": 42, "latter": 43, "matrix": [43, 50], "product": 43, "use_local_top": 43, "my_state_broadcast": 43, "extra_joint": 43, "map_interface_to_joint_st": 43, "usecas": 43, "hydraul": [43, 44], "relianc": 43, "techniqu": 43, "slightli": 43, "custom_interfac": 43, "kf_estimated_posit": 43, "derived_veloc": 43, "derived_effort": 43, "torque_sensor": 43, "current_sensor": 43, "jtc": 44, "command_interface_type_combin": 44, "state_interface_type_combin": 44, "allow_partial_joints_go": [44, 46], "open_loop_control": [44, 46], "interpol": [44, 46], "gain": 44, "numer": 44, "allow_integration_in_goal_trajectori": [44, 45], "monitor": [44, 46], "interpolation_method": 44, "spline": 44, "start_with_hold": 44, "deprec": 44, "hold": [44, 45], "allow_nonzero_velocity_at_trajectory_end": 44, "cmd_timeout": 44, "goal_tim": [44, 46], "toler": [44, 46], "jointtrajectori": [44, 45, 46], "stopped_velocity_toler": [44, 46], "infinit": 44, "amount": 44, "law": [44, 46], "k_": 44, "ff": 44, "v_d": 44, "k_p": 44, "k_i": 44, "sum": 44, "dt": 44, "k_d": 44, "angle_wraparound": 44, "i_clamp": 44, "clamp": 44, "symmetr": 44, "ff_velocity_scal": 44, "feed": 44, "normalize_error": 44, "wrap": [44, 46], "ie": [44, 45], "s_d": 44, "saniti": 45, "segment": [45, 46], "fault": 45, "reach": [45, 46], "datapoint": 45, "deduc": 45, "nor": 45, "discourag": 45, "yield": 45, "discontinu": [45, 46], "cubic": 45, "quintic": 45, "heun": 45, "grid": 45, "10m": 45, "deduct": 45, "nonzero": 45, "inconsist": 45, "overshoot": 45, "timestamp": 45, "arriv": 45, "necessarili": 45, "discard": 45, "substitut": 45, "smarter": 45, "preserv": 45, "flat": 45, "grei": 45, "red": 45, "traj": 45, "time_from_start": 45, "splice": 45, "held": [45, 46], "smooth": [45, 56], "longer": 45, "effect": 45, "Of": 45, "interest": 45, "adolfo": [45, 46], "rodriguez": [45, 46], "instant": 46, "citat": 46, "adapt": 46, "restrict": 46, "present": 46, "robust": 46, "clock": 46, "queu": 46, "preempt": 46, "cancel": 46, "notifi": 46, "abort": 46, "legal": 46, "subset": 46, "favor": 46, "violat": 46, "joint_trajectori": 46, "fire": 46, "sender": 46, "query_st": 46, "controller_st": [46, 50], "cumbersom": 46, "jointtrajectorycontrollerst": 46, "querytrajectoryst": 46, "footnot": 46, "rangesensor": 48, "radiation_typ": 48, "radiat": 48, "ultrason": 48, "infrar": 48, "field_of_view": 48, "arc": 48, "rad": [48, 50], "min_rang": 48, "minimum": 48, "max_rang": 48, "maximum": 48, "varianc": 48, "range_sensor_broadcast": 48, "test_range_sensor_broadcast": 48, "mendatori": 48, "range_sensor": 48, "range_sensor_fram": 48, "rqt": 49, "nomenclatur": 50, "unstamp": 50, "concret": 50, "tricylc": 50, "seer": 50, "front_steer": 50, "front_wheels_nam": 50, "rear_wheels_nam": 50, "traction_feedback_typ": 50, "in_chained_mod": 50, "reference_unstamp": 50, "steeringcontrollerstatu": 50, "reference_timeout": 50, "unwant": 50, "danger": 50, "behaviour": 50, "rear_wheels_state_nam": 50, "front_wheels_state_nam": 50, "number": 50, "averag": 50, "diagon": 50, "trail": 51, "axl": 51, "traction_joint_nam": 51, "steering_joint_nam": 51, "odom_only_twist": 51, "millisecond": 51, "500": 51, "publish_ackermann_command": 51, "max_deceler": 51, "min_deceler": 51, "max_posit": 51, "min_posit": 51, "wheel_track": 52, "page": [54, 55], "isaac": 54, "webot": 54, "mujoco": 54, "algoryx": 54, "agx": 54, "canopen": 55, "ethercat": 55, "svh": 55, "finger": 55, "dimens": 55, "haptic": 55, "hoverboard": 55, "ndi": 55, "odriv": 55, "pca9685": 55, "bit": 55, "pwm": 55, "servo": 55, "clearpath": 55, "huski": 55, "a200": 55, "jackal": 55, "j100": 55, "warthog": 55, "w200": 55, "flexiv": 55, "rizon": 55, "husarion": 55, "rosbot": 55, "2r": 55, "pro": 55, "xl": 55, "openmanipul": 55, "igu": 55, "commonplac": 55, "kinova": 55, "kortex": 55, "gen3": 55, "pmb2": 55, "tiago": 55, "xarm": 55, "egm": 55, "iiqka": 55, "eci": 55, "sunris": 55, "kss": 55, "iiwa": 55, "lbr": 55, "med": 55, "mitsubishi": 55, "rv1a": 55, "overcom": 56, "idea": 56, "wide": 56, "control_toolbox": 56, "toolkit": 56, "unreleas": 56, "question": 56, "wg": 56, "wednesdai": 56, "announc": 56, "discours": 56, "googl": 56, "tracker": 56, "reproduc": 56, "regard": 56, "built": 56, "gmt": 56}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 17, 56], "process": [1, 9], "merg": 1, "write": [1, 12, 15, 29, 37], "document": [1, 8, 10, 56], "structur": [1, 2], "ci": 1, "configur": 1, "usag": [1, 3, 5], "differ": [2, 11], "ros_control": 2, "ros1": [2, 6], "hardwar": [2, 4, 6, 9, 11, 12, 13, 15, 29, 40, 43, 46], "class": [2, 8], "interfac": [2, 4, 13, 16, 20, 25, 29, 30, 33, 35, 38, 40, 43, 46, 47, 50, 53], "control": [2, 3, 4, 5, 6, 8, 9, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37, 38, 40, 41, 46, 47, 50, 53, 54], "": [2, 35, 46, 50], "access": 2, "migrat": [2, 12], "guid": 2, "ros2_control": [2, 3, 5, 6, 10, 13, 17, 29, 33, 36, 56], "robothardwar": 2, "compon": [2, 4, 6, 11, 12, 14, 15], "gazebo_ros2_control": 3, "modifi": [3, 5], "build": [3, 4, 5, 17], "your": [3, 4, 5], "own": [3, 5], "To": [3, 5, 17], "run": [3, 4, 5, 17], "demo": [3, 5, 6, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "add": [3, 5, 6], "tag": [3, 5], "urdf": [3, 4, 5, 29], "simpl": [3, 5], "setup": [3, 5], "us": [3, 5, 8, 9, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 37, 46], "mimic": [3, 5], "joint": [3, 5, 13, 14, 46], "simul": [3, 5, 31, 54], "plugin": [3, 5, 29], "default": [3, 5], "behavior": [3, 5], "advanc": [3, 5], "custom": [3, 5], "set": [3, 5], "up": [3, 5], "gazebo_ros2_control_demo": 3, "get": 4, "start": 4, "instal": [4, 17], "binari": 4, "packag": [4, 17], "from": [4, 6, 12, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 50, 55], "sourc": [4, 17], "architectur": 4, "manag": [4, 8, 9], "resourc": [4, 7, 8], "user": 4, "descript": [4, 29, 35, 46, 50], "framework": 4, "robot": [4, 7, 17, 20, 23, 25, 26, 27, 28, 29, 30, 36, 55], "gz_ros2_control": 5, "gz_ros2_control_demo": 5, "project": 6, "idea": 6, "gsoc": 6, "2024": 6, "tutori": [6, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], "mission": 6, "support": [6, 55], "semant": 6, "featur": [6, 10, 35, 46, 51], "pariti": 6, "present": 7, "2023": 7, "02": 7, "ro": [7, 33, 35, 38, 40, 47, 53, 54], "meetup": 7, "munich": 7, "5": [7, 27], "2022": 7, "12": [7, 22], "industri": [7, 20, 26, 27, 30], "confer": 7, "10": [7, 20], "roscon": 7, "06": 7, "fr": 7, "2021": 7, "world": 7, "07": 7, "weekli": 7, "13": 7, "rosdevdai": 7, "05": 7, "diagram": 7, "imag": 7, "chain": [8, 22], "cascad": 8, "scope": 8, "background": 8, "knowledg": 8, "motiv": 8, "purpos": 8, "implement": 8, "A": 8, "base": 8, "chainablecontrol": 8, "inner": 8, "activ": 8, "deactiv": 8, "debug": 8, "output": [8, 35], "close": 8, "remark": 8, "determin": 9, "paramet": [9, 14, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 43, 44, 47, 48, 50, 51, 52, 53], "helper": 9, "script": 9, "spawner": 9, "unspawn": 9, "concept": [9, 10], "restart": 9, "all": 9, "api": 10, "updat": 11, "rate": 11, "By": 11, "count": 11, "loop": 11, "measur": 11, "elaps": 11, "time": 11, "guidelin": [12, 36], "best": [12, 36], "practic": [12, 36], "handl": 12, "error": 12, "happen": 12, "dure": 12, "read": 12, "call": 12, "foxi": 12, "newer": 12, "version": 12, "type": [13, 40, 43, 46], "sensor": [13, 26, 27, 39, 42, 48], "gpio": [13, 20], "exampl": [13, 17, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 45, 48], "mock": 14, "gener": 14, "system": 14, "per": 14, "extern": [15, 27, 37], "refer": [15, 33, 35, 37, 46, 50], "command": [16, 33, 43, 46, 50, 51], "line": 16, "list_control": 16, "list_controller_typ": 16, "list_hardware_compon": 16, "list_hardware_interfac": 16, "load_control": 16, "reload_controller_librari": 16, "set_controller_st": 16, "set_hardware_component_st": 16, "switch_control": 16, "unload_control": 16, "view_controller_chain": 16, "what": 17, "you": 17, "can": 17, "find": 17, "thi": [17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "goal": 17, "overview": [17, 29], "local": 17, "debian": 17, "docker": 17, "view": 17, "quick": 17, "hint": 17, "1": [19, 46], "rrbot": [19, 22, 31], "step": [19, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31], "file": [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 41, 42, 43, 44, 48], "carlikebot": 21, "14": 23, "modular": [23, 28], "actuat": [23, 28], "provid": 23, "state": [23, 33, 46, 50], "diffbot": 24, "3": 25, "multipl": 25, "4": 26, "integr": [26, 54], "connect": 27, "6": 28, "separ": 28, "commun": [28, 54, 55, 56], "each": 28, "7": 29, "full": 29, "6dof": 29, "geometri": 29, "cmake": 29, "librari": 29, "launch": 29, "8": 30, "an": [30, 41, 42, 43, 44, 48], "expos": 30, "transmiss": 30, "9": 31, "ackermann_steering_control": 32, "admitt": 33, "2": [33, 35, 38, 40, 47, 53], "topic": [33, 38, 40, 47, 53], "bicycle_steering_control": 34, "diff_drive_control": 35, "other": [35, 36, 46, 51], "feedback": 35, "subscrib": [35, 46, 50], "publish": [35, 46, 50], "mobil": 36, "manipul": 36, "broadcast": [36, 39, 42, 48], "common": 36, "new": 37, "effort_control": 38, "jointgroupeffortcontrol": 38, "forc": 39, "torqu": 39, "forward_command_control": 40, "gripper": 41, "action": [41, 46], "list": [41, 42, 43, 44, 48], "imu": 42, "joint_state_broadcast": 43, "detail": 44, "about": 44, "trajectori": [45, 46], "represent": 45, "interpol": 45, "method": 45, "none": 45, "spline": 45, "visual": 45, "replac": 45, "joint_trajectory_control": 46, "preemption": 46, "polici": 46, "servic": 46, "further": 46, "inform": 46, "position_control": 47, "jointgrouppositioncontrol": 47, "rang": 48, "rqt_joint_trajectory_control": 49, "steering_controllers_librari": 50, "execut": 50, "logic": 50, "preced": 50, "tricycle_control": 51, "veloc": 51, "tricycle_steering_control": 52, "velocity_control": 53, "jointgroupvelocitycontrol": 53, "host": 54, "protocol": 55, "end": 55, "effector": 55, "non": 55, "devic": 55, "offici": 55, "manufactur": 55, "unoffici": 55, "welcom": 56, "iron": 56, "develop": 56, "organis": 56}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "Differences to ros_control (ROS1)": [[2, "differences-to-ros-control-ros1"]], "Hardware Structures - classes": [[2, "hardware-structures-classes"]], "Hardware Interfaces": [[2, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[2, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[2, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[2, "robothardware-to-components"]], "Controller Migration": [[2, "controller-migration"]], "gazebo_ros2_control": [[3, "gazebo-ros2-control"]], "Usage": [[3, "usage"], [5, "usage"]], "Modifying or building your own": [[3, "modifying-or-building-your-own"], [5, "modifying-or-building-your-own"]], "To run the demo": [[3, "to-run-the-demo"], [5, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[3, "add-ros2-control-tag-to-a-urdf"], [5, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[3, "simple-setup"], [5, "simple-setup"]], "Using mimic joints in simulation": [[3, "using-mimic-joints-in-simulation"], [5, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[3, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[3, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[3, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[3, "set-up-controllers"], [5, "set-up-controllers"]], "gazebo_ros2_control_demos": [[3, "gazebo-ros2-control-demos"]], "Getting Started": [[4, "getting-started"]], "Installation": [[4, "installation"], [17, "installation"]], "Binary packages": [[4, "binary-packages"]], "Building from Source": [[4, "building-from-source"]], "Architecture": [[4, "architecture"]], "Controller Manager": [[4, "controller-manager"], [9, "controller-manager"]], "Resource Manager": [[4, "resource-manager"]], "Controllers": [[4, "controllers"]], "User Interfaces": [[4, "user-interfaces"]], "Hardware Components": [[4, "hardware-components"], [12, "hardware-components"]], "Hardware Description in URDF": [[4, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[4, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[5, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[5, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[5, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[5, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[5, "gz-ros2-control-demos"]], "Project Ideas for GSoC 2024": [[6, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[6, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[6, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[6, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[6, "feature-parity-for-controllers-from-ros1"]], "Resources": [[7, "resources"]], "Presentations": [[7, "presentations"]], "2023-02 ROS Meetup Munich #5": [[7, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[7, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[7, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[7, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[7, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[7, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[7, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[7, "roscon-fr-2021"]], "Diagrams": [[7, "diagrams"]], "Images": [[7, "images"]], "Controller Chaining / Cascade Control": [[8, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[8, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[8, "motivation-purpose-and-use"]], "Implementation": [[8, "implementation"]], "A Controller Base-Class: ChainableController": [[8, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[8, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[8, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[8, "debugging-outputs"]], "Closing remarks": [[8, "closing-remarks"]], "Determinism": [[9, "determinism"]], "Parameters": [[9, "parameters"], [14, "parameters"], [32, "parameters"], [33, "parameters"], [34, "parameters"], [35, "parameters"], [38, "parameters"], [39, "parameters"], [40, "parameters"], [41, "parameters"], [42, "parameters"], [43, "parameters"], [47, "parameters"], [48, "parameters"], [50, "parameters"], [51, "parameters"], [52, "parameters"], [53, "parameters"]], "Helper scripts": [[9, "helper-scripts"]], "spawner": [[9, "spawner"]], "unspawner": [[9, "unspawner"]], "Using the Controller Manager in a Process": [[9, "using-the-controller-manager-in-a-process"]], "Concepts": [[9, "concepts"], [10, "concepts"]], "Restarting all controllers": [[9, "restarting-all-controllers"]], "Restarting hardware": [[9, "restarting-hardware"]], "ros2_control": [[10, "ros2-control"]], "API Documentation": [[10, "api-documentation"]], "Features": [[10, "features"]], "Different update rates for Hardware Components": [[11, "different-update-rates-for-hardware-components"]], "By counting loops": [[11, "by-counting-loops"]], "By measuring elapsed time": [[11, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[12, "guidelines-and-best-practices"], [36, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[12, "handling-of-errors-that-happen-during-read-and-write-calls"]], "Migration from Foxy to newer versions": [[12, "migration-from-foxy-to-newer-versions"]], "ros2_control hardware interface types": [[13, "ros2-control-hardware-interface-types"]], "Joints": [[13, "joints"]], "Sensors": [[13, "sensors"]], "GPIOs": [[13, "gpios"]], "Examples": [[13, "examples"], [17, "examples"]], "Mock Components": [[14, "mock-components"]], "Generic System": [[14, "generic-system"]], "Per-joint Parameters": [[14, "per-joint-parameters"]], "Writing a Hardware Component": [[15, "writing-a-hardware-component"]], "Useful External References": [[15, "useful-external-references"], [37, "useful-external-references"]], "Command Line Interface": [[16, "command-line-interface"]], "list_controllers": [[16, "list-controllers"]], "list_controller_types": [[16, "list-controller-types"]], "list_hardware_components": [[16, "list-hardware-components"]], "list_hardware_interfaces": [[16, "list-hardware-interfaces"]], "load_controller": [[16, "load-controller"]], "reload_controller_libraries": [[16, "reload-controller-libraries"]], "set_controller_state": [[16, "set-controller-state"]], "set_hardware_component_state": [[16, "set-hardware-component-state"]], "switch_controllers": [[16, "switch-controllers"]], "unload_controller": [[16, "unload-controller"]], "view_controller_chains": [[16, "view-controller-chains"]], "Demos": [[17, "demos"]], "What you can find in this repository": [[17, "what-you-can-find-in-this-repository"]], "Goals": [[17, "goals"]], "Examples Overview": [[17, "examples-overview"]], "Local installation": [[17, "local-installation"]], "Build from debian packages": [[17, "build-from-debian-packages"]], "Build from source": [[17, "build-from-source"]], "Using Docker": [[17, "using-docker"]], "To view the robot": [[17, "to-view-the-robot"]], "To run the ros2_control demos": [[17, "to-run-the-ros2-control-demos"]], "Quick Hints": [[17, "quick-hints"]], "Example 1: RRBot": [[19, "example-1-rrbot"]], "Tutorial steps": [[19, "tutorial-steps"], [21, "tutorial-steps"], [22, "tutorial-steps"], [23, "tutorial-steps"], [24, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"]], "Files used for this demos": [[19, "files-used-for-this-demos"], [20, "files-used-for-this-demos"], [21, "files-used-for-this-demos"], [22, "files-used-for-this-demos"], [23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [30, "files-used-for-this-demos"], [31, "files-used-for-this-demos"]], "Controllers from this demo": [[19, "controllers-from-this-demo"], [20, "controllers-from-this-demo"], [21, "controllers-from-this-demo"], [22, "controllers-from-this-demo"], [23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[20, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[21, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[22, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[23, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[24, "diffbot"]], "Example 3: Robots with multiple interfaces": [[25, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[26, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[26, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[27, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[28, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[29, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[29, "ros2-control-overview"]], "Writing a URDF": [[29, "writing-a-urdf"]], "Geometry": [[29, "geometry"]], "URDF file": [[29, "urdf-file"]], "Writing a hardware interface": [[29, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[29, "plugin-description-file-hardware"]], "CMake library (hardware)": [[29, "cmake-library-hardware"]], "Writing a controller": [[29, "writing-a-controller"]], "Plugin description file (controller)": [[29, "plugin-description-file-controller"]], "CMake library (controller)": [[29, "cmake-library-controller"]], "Launching the example": [[29, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[30, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[31, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[32, "ackermann-steering-controller"]], "Admittance Controller": [[33, "admittance-controller"]], "ROS 2 interface of the controller": [[33, "ros-2-interface-of-the-controller"], [38, "ros-2-interface-of-the-controller"], [40, "ros-2-interface-of-the-controller"], [47, "ros-2-interface-of-the-controller"], [53, "ros-2-interface-of-the-controller"]], "Topics": [[33, "topics"], [38, "topics"], [40, "topics"], [47, "topics"], [53, "topics"]], "ros2_control interfaces": [[33, "ros2-control-interfaces"]], "References": [[33, "references"], [35, "references"], [46, "references"]], "States": [[33, "states"], [46, "states"], [50, "states"]], "Commands": [[33, "commands"], [43, "commands"], [46, "commands"], [50, "commands"]], "bicycle_steering_controller": [[34, "bicycle-steering-controller"]], "diff_drive_controller": [[35, "diff-drive-controller"]], "Other features": [[35, "other-features"], [46, "other-features"], [51, "other-features"]], "Description of controller\u2019s interfaces": [[35, "description-of-controller-s-interfaces"], [46, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"]], "Feedback": [[35, "feedback"]], "Output": [[35, "output"]], "ROS 2 Interfaces": [[35, "ros-2-interfaces"]], "Subscribers": [[35, "subscribers"], [50, "subscribers"]], "Publishers": [[35, "publishers"], [46, "publishers"], [50, "publishers"]], "ros2_controllers": [[36, "ros2-controllers"]], "Controllers for Mobile Robots": [[36, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[36, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[36, "broadcasters"]], "Common Controller Parameters": [[36, "common-controller-parameters"]], "Writing a new controller": [[37, "writing-a-new-controller"]], "effort_controllers": [[38, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[38, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[39, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[40, "forward-command-controller"]], "Hardware interface type": [[40, "hardware-interface-type"], [43, "hardware-interface-type"]], "Gripper Action Controller": [[41, "gripper-action-controller"]], "List of parameters": [[41, "list-of-parameters"], [42, "list-of-parameters"], [43, "list-of-parameters"], [44, "list-of-parameters"], [48, "list-of-parameters"]], "An example parameter file": [[41, "an-example-parameter-file"], [42, "an-example-parameter-file"], [43, "an-example-parameter-file"], [44, "an-example-parameter-file"], [48, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[42, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[43, "joint-state-broadcaster"]], "Details about parameters": [[44, "details-about-parameters"]], "Trajectory Representation": [[45, "trajectory-representation"]], "Interpolation Method none": [[45, "interpolation-method-none"]], "Interpolation Method spline": [[45, "interpolation-method-spline"]], "Visualized Examples": [[45, "visualized-examples"]], "Trajectory Replacement": [[45, "trajectory-replacement"]], "joint_trajectory_controller": [[46, "joint-trajectory-controller"]], "Hardware interface types": [[46, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[46, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[46, "preemption-policy"]], "Actions 1": [[46, "actions"]], "Subscriber 1": [[46, "subscriber"]], "Services": [[46, "services"]], "Further information": [[46, "further-information"]], "position_controllers": [[47, "position-controllers"]], "position_controllers/JointGroupPositionController": [[47, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[48, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[49, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[50, "steering-controllers-library"]], "Execution logic of the controller": [[50, "execution-logic-of-the-controller"]], "References (from a preceding controller)": [[50, "references-from-a-preceding-controller"]], "tricycle_controller": [[51, "tricycle-controller"]], "Velocity commands": [[51, "velocity-commands"]], "tricycle_steering_controller": [[52, "tricycle-steering-controller"]], "velocity_controllers": [[53, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[53, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[54, "simulator-integrations"]], "Hosted by ros-controls": [[54, "hosted-by-ros-controls"]], "Community": [[54, "community"]], "Supported Robots": [[55, "supported-robots"]], "Communication protocols": [[55, "communication-protocols"]], "End-effectors": [[55, "end-effectors"]], "Non robot-devices": [[55, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[55, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[55, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation - Iron!": [[56, "welcome-to-the-ros2-control-documentation-iron"]], "ros2_control Repositories": [[56, "ros2-control-repositories"]], "Development Organisation and Communication": [[56, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file diff --git a/master/.buildinfo b/master/.buildinfo index 065526ca189..9aeacd549ff 100644 --- a/master/.buildinfo +++ b/master/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: cf7b262918d946655c2ee5c15d8fefc2 +config: b3a26f55fbd2c875e427c083d3134469 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/master/.doctrees/doc/acknowledgements/acknowledgements.doctree b/master/.doctrees/doc/acknowledgements/acknowledgements.doctree index bcf499760d9eb0b5c2c4d325b99e75611d7e07eb..93911754c65e143b9549f05bc970978ad342fb02 100644 GIT binary patch delta 146 zcmezT!}IeG&kaV5Mma{Asp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> zmKMpzsYa=378d%`Klt;CPS)8d(A>$`-pL5UOhC*G#4JF}3dC$c%nrmHK+FlmTtLhX Z#5_RE3&eat%n!r@KrFbulTqkZ6#xZvE;;}J delta 146 zcmezT!}IeG&kaV5M)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 zCT2#a#wq3oCQ16!Klt;CPS)8d(A>$`-pL5UOhC*G#4JF}3dC$c%nrmHK+FlmTtLhX Z#5_RE3&eat%n!r@KrFbulTqkZ6##hwEXV)= diff --git a/master/.doctrees/doc/contributing/contributing.doctree b/master/.doctrees/doc/contributing/contributing.doctree index 865c0dfab21619adc781a8919bb87a097d24f058..6ef9ede25f817eb0e704dd7c88adc5ffed99f638 100644 GIT binary patch delta 64 zcmaERl=1CR#tq?&hB-!=sp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> TmKMpzsYa=378aX37*i7g-DMRy delta 64 zcmaERl=1CR#tq?&hWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 TCT2#a#wq3oCP|w+7*i7g$AuHe diff --git a/master/.doctrees/doc/gazebo_ros2_control/doc/index.doctree b/master/.doctrees/doc/gazebo_ros2_control/doc/index.doctree index 2400468b82f086811bd62d0d261e4b20e9861967..25b0e812c781f97404c9c01cba1a6ce170c47df2 100644 GIT binary patch delta 129 zcmex(fa&7_rVSR1Mma{Asp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> hmKMpzsYa=378d%G_i@N>ZfC5nCr_`$W}ik?c>v5KDIfp< delta 129 zcmex(fa&7_rVSR1M)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 hCT2#a#wq3oCQ15}_i@N>ZfC5nCr_`$W}ik?c>p^%COiND diff --git a/master/.doctrees/doc/getting_started/getting_started.doctree b/master/.doctrees/doc/getting_started/getting_started.doctree index a7d92df83dca4c481c626253f0eab3aab5ee3312..40602b72fee36672338a724eeaab80b5dc2620aa 100644 GIT binary patch delta 64 zcmex3o%!Q*<_!jnhB-!=sp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> UmKMpzsYa=378aWm87G_q0KugdF8}}l delta 64 zcmex3o%!Q*<_!jnhWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 UCT2#a#wq3oCP|wU87G_q0IS6ly#N3J diff --git a/master/.doctrees/doc/gz_ros2_control/doc/index.doctree b/master/.doctrees/doc/gz_ros2_control/doc/index.doctree index c97573a845aa70f64a7a14aa45008a37936e34a7..2aafa0e28dead7a37cc70403d3b1da18b89be24e 100644 GIT binary patch delta 123 zcmeygmg&=4rVR#+hB-!=sp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> fmKMpzsYa=378aWm8A~cj*ETtkQFOC(^>t|gvD_y6 delta 123 zcmeygmg&=4rVR#+hWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 fCT2#a#wq3oCP|wU8A~cj*ETtkQFOC(^>t|gD-I+V diff --git a/master/.doctrees/doc/migration/differences_to_ros1.doctree b/master/.doctrees/doc/migration/differences_to_ros1.doctree index d8037462492f7f73ce231602cce2c7e9c2b4545c..f06db028700b65e8c2ac56e5a153ee87b84b1dd8 100644 GIT binary patch delta 64 zcmaFW$MmX?X@eG{VUAH|YI=rIj()O%skud}QKCh1l3}umv2kLeS#nBhvZr&gG!f2Rdl$n~IVU(kvY+!0`k!qA^k(^|hY+`Jjm}r)qlA3I4W|?Sio@8l} RY@BM8nr30KIh1j$AOKQF63qYr delta 62 zcmeBD>r&gG!f2RZR9I$|os^@WW|(GVWRhxVVPceGW@=!WWSnSVXk=k*YLIARX=Y+( RWNMsZZeWtMIh1j$AOJjP5nBKN diff --git a/master/.doctrees/doc/project_ideas.doctree b/master/.doctrees/doc/project_ideas.doctree index b66baf6ceb91925dda3e0b0ec0d783b937452ec0..7d327658ac73dadb1cb1176935c0c779aada9a42 100644 GIT binary patch delta 64 zcmZ4digEEP#tk}*hB-!=sp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> UmKMpzsYa=378aXh8IKhM0KuOX3;+NC delta 64 zcmZ4digEEP#tk}*hWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 UCT2#a#wq3oCP|xP8IKhM0IRR<>X2~h3$);wOiRR`> XmKMpzsYa=378cE+jN3yQ8T)(y4O|sv delta 68 zcmaDnoAvQ*)(t9*hWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 XCT2#a#wq3oCP~eqjN3yQ8T)(y@ud^< diff --git a/master/.doctrees/doc/resources/roscon2023_workshop.doctree b/master/.doctrees/doc/resources/roscon2023_workshop.doctree index 1be1cfa30454738d281bf00ea6b8fae10d53dece..73ca3f940c4440b32c852caa05427cf54493ea50 100644 GIT binary patch delta 62 zcmca!cD-za1*2h(QD$m-hEa}wvVp0&MXFJvMRJm1vWc;AVxn1cN@}vHnPsB6d6K0? RvT>?WYMO<`=1j(SmH?sG6p#P_ delta 62 zcmca!cD-za1*2hpQDK=;c2bUhnqiuekx8ndg^5v$nW=$gl5wJep^=5LsX?NNrJ0GD Rk*RTtxq(U2=1j(SmH>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 TCT2#a#wq3oCP|w!8B?R<>X2~h3$);wOiRR`> ZmKMpzsYa=378d%G`wBERFJNTu1pp0`77+jd delta 69 zcmZ2Hmuc}_rVVb4M)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 ZCT2#a#wq3oCQ15}`wBERFJNTu1px4B6rTV9 diff --git a/master/.doctrees/doc/ros2_control/doc/index.doctree b/master/.doctrees/doc/ros2_control/doc/index.doctree index 99249669bc822bdb04a7075c6e3198bde6f4a8ce..0695b7dee6f1e1b6c76bab160dfb646d0b138326 100644 GIT binary patch delta 62 zcmaE2_{4C79iw56QD$m-hEa}wvVp0&MXFJvMRJm1vWc;AVxn1cN@}vHnPsB6d6K0? RvT>?WYMO<`=6uFdaR7)56OjM_ delta 62 zcmaE2_{4C79iw4>QDK=;c2bUhnqiuekx8ndg^5v$nW=$gl5wJep^=5LsX?NNrJ0GD Rk*RTtxq(U2=6uFdaR72F5+48n diff --git a/master/.doctrees/doc/ros2_control/doc/migration/Foxy.doctree b/master/.doctrees/doc/ros2_control/doc/migration/Foxy.doctree index 04e30f4f26031237777cd3074937eb10099c76ae..397f442ba6783ce32c24d6cd951de5672b61254a 100644 GIT binary patch delta 62 zcmX?Ke!hG|JfmTbQD$m-hEa}wvVp0&MXFJvMRJm1vWc;AVxn1cN@}vHnPsB6d6K0? RvT>?WYMO<`<_V1URsg1L6e0is delta 62 zcmX?Ke!hG|JfmTLQDK=;c2bUhnqiuekx8ndg^5v$nW=$gl5wJep^=5LsX?NNrJ0GD Rk*RTtxq(U2<_V1URsfKV60iUO diff --git a/master/.doctrees/doc/ros2_control/doc/migration/Iron.doctree b/master/.doctrees/doc/ros2_control/doc/migration/Iron.doctree index c0b306c9dcd835f564badfbb16a6b80feacdc49e..1fd462c61d7fc4699d1205bbd9eb105125302d42 100644 GIT binary patch delta 62 zcmdlKyeW7?B%@)DQD$m-hEa}wvVp0&MXFJvMRJm1vWc;AVxn1cN@}vHnPsB6d6K0? RvT>?WYMO<`<}OAJ4FHA>6Kenf delta 62 zcmdlKyeW7?B%@(|QDK=;c2bUhnqiuekx8ndg^5v$nW=$gl5wJep^=5LsX?NNrJ0GD Rk*RTtxq(U2<}OAJ4FGU05%~ZB diff --git a/master/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree b/master/.doctrees/doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.doctree index 4360ee64b27295d34223b106b16dcd3deba332a7..a8ba89324c0f17d6a6eb5ae796f7b9b66695b457 100644 GIT binary patch delta 64 zcmcchoblFk#tnXqhB-!=sp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> TmKMpzsYa=378aZ98Ka8;;!G7x delta 64 zcmcchoblFk#tnXqhWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 TCT2#a#wq3oCP|y?8Ka8;%xn|d diff --git a/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree b/master/.doctrees/doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.doctree index cfdb6eba04d268093ce5889b9408ab34881d7bc7..3afc3d294f5438e5a1b2e18b3886b61ff06135dc 100644 GIT binary patch delta 67 zcmez3^u=j|2cuDrQD$m-hEa}wvVp0&MXFJvMRJm1vWc;AVxn1cN@}vHnPsB6d6K0? XvT>?WYMOR<>X2~h3$);wOiRR`> ZmKMpzsYa=378d%G7jS!QKEt>&7XV#k7r+1j delta 69 zcmex*kMZk0#tlJ?M)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 ZCT2#a#wq3oCQ15}7jS!QKEt>&7XUy?7ES;F diff --git a/master/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree b/master/.doctrees/doc/ros2_control/hardware_interface/doc/mock_components_userdoc.doctree index cca14a357ae6c9401dffb543d13255a890d32085..99800eb0e4d64eafd65ed74cd2bc7958392ef43a 100644 GIT binary patch delta 64 zcmeC}WbEx^+~B}ym}8Wgnx0{lqn~VGYHpEglxUHhWSDGXY@C>AmYkBBY-(niXl|Zl TX_0K4YLuF0VX?W8QN|eni-r?y delta 64 zcmeC}WbEx^+~B}ym|s*_W|WAmYkBBY-(niXl|Zl TX_0K4YLuF0VX?WMk>fuAiWL+Z delta 64 zcmZo~WNB|?+2F@$m|s*_W|WfuAbTtyF diff --git a/master/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control/ros2controlcli/doc/userdoc.doctree index 97f1bc9b2a98b6b0d5a69bbf75e02c078b8e427b..9d39b1d7267558090f899f2ee581c2c46dcd983b 100644 GIT binary patch delta 64 zcmaF%iSgMd#tn9ihB-!=sp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> UmKMpzsYa=378aZH8NZhU0P5Zq`v3p{ delta 64 zcmaF%iSgMd#tn9ihWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 UCT2#a#wq3oCP|y~8NZhU0Mz~zi2wiq diff --git a/master/.doctrees/doc/ros2_control_demos/doc/index.doctree b/master/.doctrees/doc/ros2_control_demos/doc/index.doctree index 1e909b95db8aa67fc249ea60e1a2778e94a02119..8f100bf5893c69131b934cb5902743c685dbc4fd 100644 GIT binary patch delta 69 zcmX@y!F;%bd4n0FQI1h&YI=rIj()O%skud}QKCh1l3}umv2kLeS#nBhvZXh2h&tjNkl$n~IVU(kvY+!0`k!qA^k(^|hY+`Jjm}r)qlA3I4W|?Sio@8l} RY@BM8nr30K`2dS22LNS!6B+;j delta 62 zcmeB_>Xh2h&tjNgR9I$|os^@WW|(GVWRhxVVPceGW@=!WWSnSVXk=k*YLIARX=Y+( RWNMsZZeWtM`2dS22LMl;5vTwF diff --git a/master/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_1/doc/userdoc.doctree index 1c5063a505845f9d00654b80bdc615a5b9b96621..1e28350c444b6d3bba2f34f807a676f9ac1eec92 100644 GIT binary patch delta 76 zcmeBfWbJNb-4MlSlw*{cnx0{lqn~VGYHpEglxUHhWSDGXY@C>AmYkBBY-(niXl|Zl gX_0K4YLuF0VWB^XUwpExfN1j$#_c;8886!b0F7Z6aR2}S delta 76 zcmeBfWbJNb-4MlSlwVX>W|WR<>X2~h3$);wOiRR`> TmKMpzsYa=378aX(86*1u$#)eD delta 64 zcmaDhpXu3rrVTNShWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 TCT2#a#wq3oCP|xn86*1uvzHT^ diff --git a/master/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_11/doc/userdoc.doctree index 0db9073d367fc5aef71b2839ea263b3dec367b42..b0ff9e5aa09cb8316f6b9e811e3777173ed41eb4 100644 GIT binary patch delta 73 zcmdnm#k94HX+sR7QI1h&YI=rIj()O%skud}QKCh1l3}umv2kLeS#nBhvZR<>X2~h3$);wOiRR`> ZmKMpzsYa=378d%GCvb^xUdmXp7XUyo7ZLyf delta 69 zcmbRHk7@2drVTNSM)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 ZCT2#a#wq3oCQ15}Cvb^xUdmXp7XTv`6`%kB diff --git a/master/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_14/doc/userdoc.doctree index 17b47275eeda5e113e69ab4c65ea73b4b6e6a354..d7c69b906da6044c292bf2896aee799271473055 100644 GIT binary patch delta 73 zcmeBQ!PLKkX+sR7QI1h&YI=rIj()O%skud}QKCh1l3}umv2kLeS#nBhvZR<>X2~h3$);wOiRR`> dmKMpzsYa=378d%G9i>z!cTVHkyqEF&6aapT7?%J5 delta 73 zcmdn8mTAjcrVUYyM)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 dCT2#a#wq3oCQ15}9i>z!cTVHkyqEF&6aZVO7bO4y diff --git a/master/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_3/doc/userdoc.doctree index 4050e553cd516fa3d407aa92ba67d58191225001..fe82bf2194c5daff39a6b09f2079f9af63ddc037 100644 GIT binary patch delta 73 zcmZ4UmTApfrVUYyMma{Asp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> dmKMpzsYa=378d%G1^L7$Z{-!;yo2$}766yu7=Zu) delta 73 zcmZ4UmTApfrVUYyM)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 dCT2#a#wq3oCQ15}1^L7$Z{-!;yo2$}765ep7Y_gc diff --git a/master/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_4/doc/userdoc.doctree index 2e0d8938605d3ee832761807d6a94c24bf614fab..810c338a7516967f9f5c53e9607ddb74a33e6238 100644 GIT binary patch delta 73 zcmbQWoN3l_rVUYyMma{Asp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> dmKMpzsYa=378d%G75K#`_wtEu-of~2A^>KB7li-- delta 73 zcmbQWoN3l_rVUYyM)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 dCT2#a#wq3oCQ15}75K#`_wtEu-of~2A^=06783vf diff --git a/master/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_5/doc/userdoc.doctree index d31f9cabb2530847880d797871422ffabce81776..410621d9f45023b7bde9a0bb4ccf13053f3510c6 100644 GIT binary patch delta 73 zcmdmSfN948rVUYyMma{Asp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> dmKMpzsYa=378d%GC&s8w=3T(Ec`sx2JOGVL7;^vs delta 73 zcmdmSfN948rVUYyM)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 dCT2#a#wq3oCQ15}C&s8w=3T(Ec`sx2JOFBG7XbhO diff --git a/master/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_6/doc/userdoc.doctree index 11dae14ff61eb30898b8aa30a7490a757f5e2cb7..97b37bceaa8d32bc221edb2530818ec17fda0c24 100644 GIT binary patch delta 73 zcmZ49%(T3jX+spFQI1h&YI=rIj()O%skud}QKCh1l3}umv2kLeS#nBhvZR<>X2~h3$);wOiRR`> dmKMpzsYa=378d%G?>VV9Z)DuQk&)4AJ^-)17`Olc delta 73 zcmaETknQzBwhd8?M)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 dCT2#a#wq3oCQ15}?>VV9Z)DuQk&)4AJ^+l{7e)X8 diff --git a/master/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree b/master/.doctrees/doc/ros2_control_demos/example_8/doc/userdoc.doctree index 0e7aa316947521cf72d150c8435bd7281af7b066..8ea991181db39bd0de93d5e71d29da611efe575d 100644 GIT binary patch delta 73 zcmX^2mGRtH#tl)7Mma{Asp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> dmKMpzsYa=378d%G5Aujlo?0cfc`u`2B>=Y&7`gxe delta 73 zcmX^2mGRtH#tl)7M)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 dCT2#a#wq3oCQ15}5Aujlo?0cfc`u`2B>R<>X2~h3$);wOiRR`> gmKMpzsYa=378d#``N@+nI*3d@!Y;ab2jj6y03)Ls{Qv*} delta 76 zcmezOjq%?%#tl)7rujvMWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 gCT2#a#wq3oCQ14!`N@+nI*3d@!Y;ab2jj6y0Q_7TivR!s diff --git a/master/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.doctree index 86860e05033ab27deb130b1bf389d304a0d54fd2..4a13f861cee0df88e24f1632c2ff3e6d65ce4daa 100644 GIT binary patch delta 71 zcmeB)>WSJA!)TOal$n~IVU(kvY+!0`k!qA^k(^|hY+`Jjm}r)qlA3I4W|?Sio@8l} aY@BM8nr304KlviR=;Rn-xy=U|y|n>0nigdM delta 71 zcmeB)>WSJA!)TOWR9I$|os^@WW|(GVWRhxVVPceGW@=!WWSnSVXk=k*YLIARX=Y+( aWNMsZZeWt6KlviR=;Rn-xy=U|y|n=oxD@jM diff --git a/master/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/admittance_controller/doc/userdoc.doctree index 92ee9eede2fe368fb1fb995a1ed037d39b5a57b8..77be21eb1e89e1fd39232bd6d50b805ed85d792d 100644 GIT binary patch delta 127 zcmZqp#nkYNX@d`=VUAH|YI=rIj()O%skud}QKCh1l3}umv2kLeS#nBhvZ?WYMOR<>X2~h3$);wOiRR`> kmKMpzsYa=378aXp8E@?(UEAbZMxDtD8+0~5*mIj307Y9V@&Et; delta 127 zcmdlzk$Lw-<_$iKhWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 kCT2#a#wq3oCP|xX8E@?(UEAbZMxDtD8+0~5*mIj30J82U4gdfE diff --git a/master/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree b/master/.doctrees/doc/ros2_controllers/doc/controllers_index.doctree index ffae6aa89511fc2af807a19e335f1b824fabde0e..784c79ea62e9e9fc4db18a4fdbc78196a5feaad2 100644 GIT binary patch delta 67 zcmX?7d!%-Q2BT4qQD$m-hEa}wvVp0&MXFJvMRJm1vWc;AVxn1cN@}vHnPsB6d6K0? WvT>?WYMOR<>X2~h3$);wOiRR`> UmKMpzsYa=378aWe8PB`{0L{`B&j0`b delta 64 zcmdmchk5TE<_!*vhWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 UCT2#a#wq3oCP|wM8PB`{0JriKT>t<8 diff --git a/master/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/effort_controllers/doc/userdoc.doctree index f3af1a16d8932dda15f6e50d30815e75a20d559a..5d72cf996719a9308bf2b305856a54da1b4c01fa 100644 GIT binary patch delta 62 zcmbQ|FwbFw8>3;4QD$m-hEa}wvVp0&MXFJvMRJm1vWc;AVxn1cN@}vHnPsB6d6K0? RvT>?WYMO<`=5og6asY4&6Kntg delta 62 zcmbQ|FwbFw8>3-R<>X2~h3$);wOiRR`> kmKMpzsYa=378aW)GPYZju5I!}MzhHY76zNw+b-b(05LfzbN~PV delta 127 zcmcaSf${PL#tjLKhWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 kCT2#a#wq3oCP|woGPYZju5I!}MzhHY76zNw+b-b(0G`YxkN^Mx diff --git a/master/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/forward_command_controller/doc/userdoc.doctree index 74e203f227ff80a0f4a367782f072d1d03e760bf..46a7dc2deb363b9ae87deb4941926dc89af1cc46 100644 GIT binary patch delta 67 zcmX?`ayDf{7^6{+QD$m-hEa}wvVp0&MXFJvMRJm1vWc;AVxn1cN@}vHnPsB6d6K0? XvT>?WYMO?WYMO<`=1RtyCIEkC6Sx2X delta 62 zcmbP~Gbv|-2cuzrQDK=;c2bUhnqiuekx8ndg^5v$nW=$gl5wJep^=5LsX?NNrJ0GD Rk*RTtxq(U2=1RtyCID%M5=H<3 diff --git a/master/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.doctree index 0165dd7ebf7fa6c987ede24547ee3b4df25112b5..ec459cf13a68473c16c30dd2538f40d12a49024c 100644 GIT binary patch delta 127 zcmX@#$aubyaf2VDVUAH|YI=rIj()O%skud}QKCh1l3}umv2kLeS#nBhvZR<>X2~h3$);wOiRR`> ZmKMpzsYa=378d%G6=oQ2?qoDs2mmHY7G?kd delta 69 zcmdmclxgo#rVVP0M)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 ZCT2#a#wq3oCQ15}6=oQ2?qoDs2mlE$6!ZW9 diff --git a/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree b/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.doctree index a81ee28be17029875e582563fd63d0218a09e98f..b61e09c7c9e56760777ad91580ec9984ff9bd5c9 100644 GIT binary patch delta 69 zcmX@Img&e^rVTZWMma{Asp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> ZmKMpzsYa=378d%G<6G@Fzh%5W1pqeY7tR0x delta 69 zcmX@Img&e^rVTZWM)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 ZCT2#a#wq3oCQ15}<6G@Fzh%5W1ppb$7F+-T diff --git a/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.doctree index b220ce9bdb193804b49e5cf7567937b86f87c285..6fa90b117323e1208bfe5084475c55915a4a3c89 100644 GIT binary patch delta 69 zcmZp@!PI(#X+s2~QI1h&YI=rIj()O%skud}QKCh1l3}umv2kLeS#nBhvZ+f$8uBrVVzChB-!=sp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> UmKMpzsYa=378aZH8LzYf0IKs8-v9sr delta 64 zcmX>+f$8uBrVVzChWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 UCT2#a#wq3oCP|y~8LzYf0F@IHZ2$lO diff --git a/master/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/position_controllers/doc/userdoc.doctree index 20d3c326a51458b620e268f2b9c187f6ea418444..43d395974cff08ef4d4c27e082e0b0f989859fc8 100644 GIT binary patch delta 62 zcmaFj@Wf$*7o%a0QD$m-hEa}wvVp0&MXFJvMRJm1vWc;AVxn1cN@}vHnPsB6d6K0? RvT>?WYMO<`=4!^5asZOv6hZ(1 delta 62 zcmaFj@Wf$*7o%Z*QDK=;c2bUhnqiuekx8ndg^5v$nW=$gl5wJep^=5LsX?NNrJ0GD Rk*RTtxq(U2=4!^5asYh(63_qu diff --git a/master/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.doctree index 9521226bf30d0157f65eb02026c632c04a559845..31e609dda7474038106b40e3d6217da6c77dfb18 100644 GIT binary patch delta 121 zcmX?8e5QCq5Tjv^QD$m-hEa}wvVp0&MXFJvMRJm1vWc;AVxn1cN@}vHnPsB6d6K0? dvT>?WYMO<`WIH|m&6^mbbx7B`*-o#I8vt6lCFKAB delta 121 zcmX?8e5QCq5Tjv!QDK=;c2bUhnqiuekx8ndg^5v$nW=$gl5wJep^=5LsX?NNrJ0GD dk*RTtxq(U2WIH|m&6^mbbx7B`*-o#I8vxm)BLM&a diff --git a/master/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.doctree index 1457819ab0eee0aab437d4fd2e585cbfcf18e3a9..32af0bdd0a1364d6b710b1e5d5f0a37365844da5 100644 GIT binary patch delta 62 zcmbO)H(zc;0;6G$QD$m-hEa}wvVp0&MXFJvMRJm1vWc;AVxn1cN@}vHnPsB6d6K0? RvT>?WYMO<`=824byZ~l{6Epw- delta 62 zcmbO)H(zc;0;6GmQDK=;c2bUhnqiuekx8ndg^5v$nW=$gl5wJep^=5LsX?NNrJ0GD Rk*RTtxq(U2=824byZ}(65yAif diff --git a/master/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/steering_controllers_library/doc/userdoc.doctree index 218344acc6d3ef3be5608221b38ea031a32c63b8..a619a914e51fced93906228e633530ccba6dab8d 100644 GIT binary patch delta 69 zcmeylo$2RxrVUYyMma{Asp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> ZmKMpzsYa=378d%G`-E*bpJX(c1prJ%7a#xt delta 69 zcmeylo$2RxrVUYyM)^gBWk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 ZCT2#a#wq3oCQ15}`-E*bpJX(c1pqHA6|MjP diff --git a/master/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree b/master/.doctrees/doc/ros2_controllers/tricycle_controller/doc/userdoc.doctree index 1899e5f082326d4db8446e90080db1923275b463..f25890541d587e19f17e0a96a71c667d09dc8cc0 100644 GIT binary patch delta 64 zcmeD9z}WGDaf1h=VUAH|YI=rIj()O%skud}QKCh1l3}umv2kLeS#nBhvZ?WYMO?WYMO<`=4!^5asZOv6hZ(1 delta 62 zcmaFj@Wf$*7o%Z*QDK=;c2bUhnqiuekx8ndg^5v$nW=$gl5wJep^=5LsX?NNrJ0GD Rk*RTtxq(U2=4!^5asYh(63_qu diff --git a/master/.doctrees/doc/simulators/simulators.doctree b/master/.doctrees/doc/simulators/simulators.doctree index ada6863bcd89ad8c29c2283d22abf57b160ec924..6b677c4a9be043cb33a930207cbdfc737b45f39b 100644 GIT binary patch delta 62 zcmZoNZ!+JY#%P#hl$n~IVU(kvY+!0`k!qA^k(^|hY+`Jjm}r)qlA3I4W|?Sio@8l} RY@BM8nr30KIh;{j3IJ8!5@G-V delta 62 zcmZoNZ!+JY#%P#dR9I$|os^@WW|(GVWRhxVVPceGW@=!WWSnSVXk=k*YLIARX=Y+( RWNMsZZeWtMIh;{j3IIR;5byv1 diff --git a/master/.doctrees/doc/supported_robots/supported_robots.doctree b/master/.doctrees/doc/supported_robots/supported_robots.doctree index 857d45ece365ef3b1c19a373e82dd91a97ff86f3..88dc2a03af44ab7fbdc2da6178c6d69ecdbd15d3 100644 GIT binary patch delta 64 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 BTN(fW diff --git a/master/.doctrees/index.doctree b/master/.doctrees/index.doctree index fefe7bfb53b35d6a973e74ad336b7ec357d9ed86..9d9ed5669e674aa353613bbc87a7dbc2267e3669 100644 GIT binary patch delta 83 zcmbPyopJJY#tmkShB-!=sp%O;Ir_;4rsfu@Mu`^5NruTL#>R<>X2~h3$);wOiRR`> lmKMpzsYa=378aY+8J7ex85>RJ4fzS84u&Xf)(FiO0|0cw8p{9x delta 83 zcmbPyopJJY#tmkShWSN>Wk%UaIr?daX+}mSsfHFNMk!{d29`<2i3Wy77RIIqi6)k2 lCT2#a#wq3oCP|yq8J7ex8JbMy4fzS84u&Xf)(FiO0{}y48Cd`T diff --git a/master/index.html b/master/index.html index 7646624beee..418fe56dee7 100644 --- a/master/index.html +++ b/master/index.html @@ -147,7 +147,7 @@

Development Organisation and Communication -

Built on 2024-04-09 at 05:14 GMT

+

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

diff --git a/master/searchindex.js b/master/searchindex.js index 43113ed5dda..75f170545b6 100644 --- a/master/searchindex.js +++ b/master/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/migration/differences_to_ros1", "doc/migration/migration", "doc/project_ideas", "doc/resources/resources", "doc/resources/roscon2023_workshop", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/doc/migration/Foxy", "doc/ros2_control/doc/migration/Iron", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/pid_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/migration/differences_to_ros1.rst", "doc/migration/migration.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/resources/roscon2023_workshop.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/doc/migration/Foxy.rst", "doc/ros2_control/doc/migration/Iron.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/pid_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Differences to ros_control (ROS 1)", "Migration Guides", "Project Ideas for GSoC 2024", "Resources", "ROSCon 2023 Workshop", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Foxy to Galactic", "Iron to Jazzy", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "PID Controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 61], "follow": [0, 1, 2, 3, 4, 5, 7, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 48, 49, 50, 51, 52, 57, 58, 61], "peopl": [0, 1], "were": [0, 7, 33, 39, 49, 50], "ros2_control": [0, 1, 3, 11, 14, 15, 16, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 41, 59], "framework": [0, 1, 5, 7, 8, 9, 11, 12, 16, 17, 18, 20, 21, 33, 40, 41, 47, 61], "show": [0, 1, 2, 3, 4, 8, 9, 11, 13, 17, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 47, 49], "review": [0, 1, 7, 61], "activ": [0, 1, 2, 3, 4, 5, 11, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 48, 50, 51], "contribut": [0, 3, 8], "recent": [0, 19, 41], "all": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 13, 14, 17, 18, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 41, 43, 45, 46, 47, 48, 49, 50, 53, 60], "time": [0, 1, 5, 7, 8, 9, 11, 18, 20, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 39, 41, 43, 48, 49, 50, 61], "contrib": 0, "dure": [0, 21, 33, 48, 50], "past": [0, 49], "12": [0, 21, 60], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 48], "line": [0, 3, 12, 13, 19, 23, 33, 41, 47, 49], "chang": [0, 1, 3, 5, 8, 11, 13, 14, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 48, 49, 50, 53], "last": [0, 13, 15, 19, 33, 37, 41, 48, 49, 50], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48719": 0, "2024": [0, 61], "01": [0, 25, 37, 39, 45, 48, 50, 56], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 7, 8, 9], "magyar": [0, 7, 8, 9], "bmagyar": [0, 9], "128": 0, "8600": 0, "2023": 0, "11": [0, 21], "16t23": 0, "32": 0, "53z": 0, "dr": [0, 8], "deni": [0, 7, 8, 9], "destogl": [0, 39], "35": [0, 55], "5628": 0, "09": [0, 61], "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 15], "04": [0, 9, 11, 61], "03": [0, 25, 50], "27": 0, "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 2, 4, 14, 21, 29, 37, 39, 53, 55, 56], "01t10": 0, "36": 0, "22z": 0, "436": 0, "64382": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 15, 41], "finish": 0, "rate": [0, 12, 16, 25, 28, 39, 40, 48, 49, 50], "575": 0, "402": 0, "0": [0, 2, 3, 4, 10, 14, 15, 17, 18, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57], "70": 0, "03t11": 0, "19z": 0, "243": 0, "219": 0, "90": [0, 33], "08t21": 0, "46": 0, "52z": 0, "477": 0, "108": 0, "23": [0, 3, 37], "04t06": 0, "34": 0, "04z": 0, "1439": 0, "1147": 0, "80": 0, "1159": 0, "604": 0, "52": [0, 53], "268": 0, "244": 0, "91": 0, "have": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 17, 18, 19, 21, 23, 24, 26, 28, 29, 33, 36, 37, 38, 40, 41, 47, 48, 50, 51, 57], "develop": [0, 1, 8, 18, 19, 21, 41], "thi": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61], "project": [0, 1, 61], "provid": [0, 2, 3, 4, 7, 8, 10, 11, 17, 18, 19, 21, 23, 26, 29, 30, 31, 32, 33, 34, 35, 37, 41, 47, 48, 49, 50, 55, 61], "valuabl": 0, "submit": [0, 1, 8, 59, 60], "pull": [0, 9, 19], "request": [0, 5, 19, 33, 47, 61], "see": [0, 1, 3, 5, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 43, 46, 48, 50, 53, 55, 57], "more": [0, 2, 3, 4, 5, 7, 9, 11, 14, 18, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 50, 57], "inform": [0, 1, 2, 3, 4, 10, 18, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 41, 61], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 3, 11, 28, 39], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 7, 8, 14, 15, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 41, 45, 48, 49, 53, 55], "5774": 0, "05": [0, 37, 50, 61], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 39], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 7, 9, 21, 37, 46], "2043": 0, "06": 0, "01t07": 0, "45": [0, 18], "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 55], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 2, 4, 14], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 10, 41, 47, 48, 50], "flochr": 0, "2": [0, 1, 2, 3, 4, 7, 8, 9, 10, 15, 17, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 50, 55, 60, 61], "888": 0, "07t00": 0, "17": [0, 9], "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 2, 4, 25, 28], "alex": 0, "moriarti": 0, "5": [0, 19, 21, 23, 24, 26, 27, 29, 30, 32, 33, 34, 35, 37, 39, 49, 55, 60], "581": 0, "07t20": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 60], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "314": 0, "08t08": 0, "22": [0, 9, 11], "manuel": 0, "muth": 0, "mamueluth": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": [0, 8, 9], "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 8, 9, 21, 24, 28, 37, 53, 55, 60], "125": 0, "22t09": 0, "11z": 0, "github": [0, 3, 7, 9, 12, 21, 33, 40, 59, 60, 61], "action": [0, 2, 4, 10, 48], "bot": 0, "123": 0, "11t09": 0, "03z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "25": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 39], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 2, 4, 14], "bailac": 0, "68": 0, "08t11": 0, "14": [0, 21, 55, 60, 61], "49z": 0, "olivi": 0, "stass": 0, "3": [0, 2, 3, 4, 7, 14, 17, 18, 20, 21, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 37, 49, 50, 51], "49": 0, "26t02": 0, "31": 0, "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 17, 21, 25, 27, 29, 31, 34, 37, 53], "43": [0, 3, 17, 28], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "28": [0, 55], "wiktor": 0, "bajor": 0, "99": [0, 11], "12t15": 0, "johann": [0, 8], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": [0, 14], "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "26": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 21, 37], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 8], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "21z": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 21, 23, 33, 37], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 7, 11, 17, 19, 20, 23, 33], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 19, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 37, 41, 42, 47, 52, 55, 58, 61], "A": [0, 3, 8, 17, 19, 21, 30, 31, 40, 41, 47, 49, 50], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 20, 24, 30, 37, 48], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 2, 3, 4, 17, 33, 45], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "najjar": [0, 8], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 9, 21], "56z": 0, "970": 0, "21t01": 0, "00": [0, 9], "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 21, 23, 37, 48, 51], "547": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": [0, 51], "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 8], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 9, 25, 45, 48, 50], "01t09": 0, "svnrk": 0, "nathan": [0, 8], "brook": [0, 8], "nbbrook": 0, "13t14": 0, "18": [0, 9, 33], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 3, 8, 11, 20, 24, 33, 35], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "09t10": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "167": 0, "152": 0, "07t18": 0, "86": 0, "63": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "98": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "106": 0, "25t06": 0, "01t20": 0, "107": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "95": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "111": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "62": 0, "andr": 0, "montano": 0, "anfemosa": 0, "60": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 25, 28, 30, 31, 33, 37, 39, 43, 46, 55, 56, 60], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "172": 0, "157": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "14t09": 0, "89": 0, "198": 0, "96": 0, "23t02": 0, "78": 0, "173": 0, "79": 0, "220": 0, "199": 0, "10t19": 0, "27t13": 0, "191": 0, "183": 0, "25t01": 0, "69": 0, "14t18": 0, "164": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "194": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "113": 0, "87": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 25, 28, 30, 31, 33, 37, 39, 43, 46, 55, 56], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 2, 3, 4, 8, 15, 17, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 41, 47, 48, 49, 51], "receiv": [0, 5, 14, 17, 24, 33, 49], "major": [0, 46], "from": [0, 1, 5, 8, 9, 10, 11, 14, 15, 16, 18, 19, 20, 22, 33, 37, 39, 40, 41, 42, 43, 46, 48, 49, 50, 52, 53, 56, 58, 61], "support": [0, 2, 3, 4, 5, 8, 11, 14, 18, 19, 20, 33, 37, 41, 47, 49, 50, 55, 59, 61], "rosin": 0, "ro": [0, 1, 2, 3, 4, 7, 9, 11, 15, 17, 18, 20, 21, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 49, 50, 61], "industri": [0, 3, 7, 9, 21, 60], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 5, 7, 9, 10, 11, 15, 17, 23, 25, 26, 28, 35, 37, 39, 43, 47, 55, 56, 61], "softwar": [0, 3, 33], "compon": [0, 8, 11, 12, 13, 17, 20, 21, 24, 27, 28, 29, 30, 31, 32, 33, 37, 39, 40, 43, 46, 53, 55, 56, 61], "http": [0, 3, 7, 9, 15, 21, 33, 36, 38, 57], "www": [0, 15], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 7, 8, 10, 11, 15, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 41, 43, 46, 48, 49, 53, 56, 57, 61], "horizon": 0, "research": [0, 8], "innov": 0, "programm": 0, "under": [0, 8, 19, 26, 41, 49, 50, 55, 61], "grant": [0, 3], "agreement": 0, "732287": 0, "first": [1, 5, 10, 13, 15, 19, 21, 33, 35, 41, 49, 51], "thank": 1, "you": [1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 41, 50, 51, 61], "consid": [1, 20, 39, 48, 51, 56], "As": [1, 10, 17, 19, 23, 33, 39, 41], "an": [1, 2, 3, 4, 5, 7, 8, 10, 17, 18, 19, 20, 21, 23, 24, 25, 26, 28, 31, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 50, 52, 55, 56, 57, 58], "open": [1, 9, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 48, 55], "sourc": [1, 2, 4, 8, 9, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "we": [1, 2, 4, 7, 8, 9, 10, 13, 21, 23, 25, 26, 28, 33, 34, 35, 47], "welcom": 1, "each": [1, 3, 7, 10, 11, 16, 17, 19, 21, 23, 27, 33, 36, 37, 47, 55, 57], "contributor": 1, "regardless": 1, "background": [1, 21], "experi": 1, "To": [1, 3, 5, 10, 11, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 49, 59, 60, 61], "reduc": [1, 18], "entropi": 1, "univers": [1, 8, 33, 60], "our": [1, 2, 3, 4, 7, 8, 21, 23, 33], "vivid": 1, "collabor": 1, "environ": [1, 3, 8, 21], "set": [1, 5, 7, 8, 9, 10, 11, 13, 17, 18, 19, 20, 21, 23, 24, 25, 33, 37, 39, 40, 42, 47, 48, 49, 50, 52, 53, 55, 56, 58], "up": [1, 8, 9, 19, 21, 49], "some": [1, 2, 4, 7, 8, 15, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 47, 48, 50, 61], "standard": [1, 5, 7, 8, 11, 19, 20, 27, 32, 33, 43, 47], "method": [1, 3, 5, 10, 11, 15, 16, 19, 33, 41, 55], "requir": [1, 3, 5, 7, 19, 33, 37, 41, 42, 50, 52, 58], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57, 61], "limit": [1, 2, 4, 8, 11, 14, 21, 33, 39, 56], "scope": 1, "your": [1, 5, 8, 9, 11, 14, 15, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 41, 56, 59, 60, 61], "pr": [1, 14, 59, 60], "should": [1, 2, 4, 5, 7, 8, 10, 11, 13, 15, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 47, 49, 50, 51, 56], "do": [1, 3, 5, 7, 8, 10, 11, 19, 21, 37, 41, 50, 51, 56], "one": [1, 3, 5, 7, 8, 9, 10, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 42, 43, 47, 48, 49, 50, 51, 52, 55, 57, 58, 61], "thing": [1, 2, 4, 9, 11, 21], "avoid": [1, 23, 25, 27, 28, 29, 30, 31, 32, 34, 41], "ad": [1, 2, 4, 7, 11, 18, 19, 25, 26, 28, 33, 39, 41, 47], "random": [1, 27, 29, 30, 31, 32], "fix": [1, 5, 25, 33, 36, 38, 57], "put": [1, 19, 41], "those": [1, 3, 5, 7, 10, 18, 19, 21, 33, 41, 43, 47, 48, 49, 53], "separ": [1, 3, 5, 21, 27, 39, 47, 56], "give": [1, 8, 11, 21, 23, 24, 28, 29, 49, 61], "descript": [1, 5, 8, 11, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 43, 45, 46, 47, 48, 53], "titl": 1, "add": [1, 5, 10, 11, 13, 15, 19, 33, 36, 37, 38, 41, 57, 59, 60], "short": [1, 41, 61], "summari": [1, 8, 61], "make": [1, 4, 5, 7, 8, 26, 33, 45, 61], "sure": [1, 4, 7, 23, 26, 27, 28, 29, 30, 31, 32, 34, 61], "pipelin": 1, "i": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 61], "green": [1, 49], "don": [1, 2, 9, 10, 24, 28, 48, 50], "t": [1, 2, 4, 9, 10, 11, 21, 24, 28, 48, 49, 50, 51], "afraid": 1, "maintain": [1, 3, 7, 10, 21, 49], "new": [1, 8, 9, 10, 19, 23, 26, 29, 33, 40, 49, 61], "code": [1, 3, 5, 7, 8, 19, 33], "test": [1, 2, 7, 18, 19, 21, 23, 28, 35, 36, 37, 38, 39, 41, 43, 46, 53, 55, 57], "If": [1, 3, 5, 8, 9, 10, 11, 13, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 43, 47, 48, 49, 50, 51, 55, 56, 61], "function": [1, 5, 7, 8, 9, 26, 33, 37, 51, 55], "alwai": [1, 33], "exercis": 1, "serv": [1, 3, 7], "live": [1, 8], "origin": [1, 2, 4, 8, 14, 23, 33, 49, 50], "intent": [1, 10, 18], "section": [1, 5, 15, 17, 19, 41, 50], "target": [1, 11, 19, 37, 41, 44, 48, 50], "also": [1, 2, 3, 4, 5, 7, 8, 10, 11, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 50, 51], "read": [1, 2, 3, 4, 5, 11, 15, 17, 19, 21, 26, 27, 30, 31, 33, 37, 41, 47, 48, 51, 53, 55], "understand": [1, 7, 49], "how": [1, 7, 8, 17, 19, 21, 24, 25, 26, 27, 29, 30, 31, 32, 33, 35, 41, 56], "handl": [1, 3, 5, 7, 8, 19, 30, 33, 36, 37, 38, 39, 43, 44, 45, 46, 47, 48, 50, 51, 53, 55, 56, 57], "organ": [1, 8, 61], "guidelin": 1, "especi": [1, 5, 21, 55], "applic": [1, 3, 8, 9, 11, 17, 33], "ros2_control_demo": [1, 3, 21, 23, 33, 61], "pleas": [1, 11, 32, 39, 61], "keep": [1, 33, 41], "mind": [1, 41], "work": [1, 7, 8, 10, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41, 42, 47, 52, 56, 58, 61], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 10, 11, 18, 19, 20, 26, 29, 33, 37, 39, 40, 41, 45, 48, 50, 51, 55, 56], "That": [1, 19, 41], "wai": [1, 11, 15, 19, 33, 41, 43, 50], "main": [1, 3, 7, 8, 11, 15, 18, 33, 41, 55, 61], "repo": [1, 3, 9, 21], "clean": 1, "featur": [1, 8, 18, 21, 23, 34, 55, 61], "branch": [1, 3, 21], "check": [1, 3, 5, 7, 10, 16, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 49, 50, 53, 57, 61], "satisfi": 1, "befor": [1, 5, 10, 11, 19, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 39, 40, 41, 48, 49], "thei": [1, 3, 5, 7, 8, 10, 17, 18, 19, 20, 26, 40, 41, 48, 50, 55], "can": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 43, 44, 46, 49, 50, 51, 53, 55, 61], "must": [1, 2, 4, 10, 11, 17, 21, 33, 37, 46, 48, 50], "approv": 1, "two": [1, 3, 7, 10, 11, 19, 21, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 43, 49, 50, 51, 55, 56, 57], "explicitli": 1, "onli": [1, 3, 5, 7, 8, 10, 11, 16, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 41, 42, 43, 47, 48, 49, 50, 51, 52, 55, 58], "except": [1, 24, 33], "other": [1, 2, 3, 5, 8, 10, 19, 21, 27, 32, 33, 36, 38, 41, 47, 49, 55, 57], "where": [1, 2, 7, 9, 10, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 38, 39, 41, 47, 48, 49, 50, 51, 55, 57], "back": 1, "traceabl": 1, "discuss": [1, 8, 9, 26, 35, 49, 61], "suffici": [1, 2, 4, 10, 43], "note": [1, 3, 6, 11, 18, 23, 50, 51, 61], "still": [1, 5, 23, 26, 27, 28, 29, 30, 31, 32, 34, 40, 49], "encourag": 1, "help": [1, 11, 15, 18, 19, 20, 39, 41], "u": [1, 2, 4, 11, 21, 48], "increas": [1, 28, 51], "pace": 1, "veri": [1, 2, 4, 5, 7, 17], "like": [1, 2, 3, 4, 5, 7, 8, 9, 19, 25, 26, 33], "find": [1, 2, 3, 4, 15, 28], "issu": [1, 7, 8, 9, 61], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 7, 11, 20, 29, 30, 31, 33, 39, 43, 46, 47, 48, 49, 50, 53, 55, 56, 61], "comment": [1, 33], "fixup": 1, "linter": 1, "us": [1, 3, 5, 7, 8, 9, 13, 14, 15, 17, 18, 20, 22, 33, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 55, 56, 57, 58, 61], "pre": 1, "correct": [1, 5, 39, 49], "header": [1, 13, 19, 30, 31, 41, 49], "address": [1, 33], "similar": [1, 3, 8, 17, 23, 25, 26, 33], "mean": [1, 5, 10, 17, 18, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 49, 50, 56], "result": [1, 3, 10, 11, 23, 33, 47, 49], "exactli": 1, "cowboi": 1, "style": [1, 19, 41], "over": [1, 7, 10, 28, 33], "weekend": 1, "It": [1, 2, 3, 5, 7, 10, 11, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 43, 47, 48, 49, 51], "doesn": [1, 10, 51], "matter": 1, "trivial": [1, 18], "chanc": 1, "proper": [1, 10, 11, 50], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 48, 51], "its": [1, 2, 3, 4, 5, 7, 8, 10, 11, 17, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 49, 51, 53, 55, 56, 57], "ping": 1, "them": [1, 7, 10, 11, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 47, 49, 60], "necessari": [1, 10, 13], "repeatedli": 1, "sphinx": 1, "doc": [1, 10, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 61], "theme": 1, "gener": [1, 7, 8, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 40, 41, 50, 55, 61], "locat": [1, 2, 9, 33, 37, 39, 43, 45, 46, 47, 48, 53], "control": [1, 8, 9, 12, 14, 15, 16, 17, 18, 19, 20, 21, 36, 38, 43, 46, 47, 48, 49, 53, 56, 57, 60, 61], "org": [1, 7, 15, 36, 38, 57], "while": [1, 3, 7, 8, 33, 37, 49], "packag": [1, 2, 4, 5, 11, 13, 19, 33, 36, 37, 38, 39, 41, 42, 43, 46, 50, 51, 52, 53, 55, 57, 58, 61], "written": [1, 19, 27, 32, 33, 41], "respect": [1, 2, 3, 4, 7, 8, 24, 48, 49, 50], "type": [1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 24, 27, 28, 30, 31, 32, 33, 39, 40, 41, 42, 43, 46, 48, 51, 52, 53, 55, 58], "stabl": 1, "against": 1, "accept": [1, 19, 29, 41, 42, 48, 49, 50, 52, 58], "api": [1, 2, 4, 7, 19, 23, 25, 27, 28, 29, 30, 31, 32, 34], "abi": 1, "e": [1, 2, 3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 19, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 37, 39, 41, 42, 43, 47, 48, 49, 51, 52, 55, 56, 58, 61], "name": [1, 2, 3, 4, 5, 8, 11, 14, 15, 17, 18, 19, 20, 21, 23, 24, 26, 27, 28, 30, 31, 32, 33, 35, 37, 39, 41, 43, 44, 46, 47, 48, 51, 53, 55, 56], "convent": [1, 33], "master": [1, 3, 21, 33], "semi": 1, "binari": 1, "good": [1, 2, 4, 7, 39, 56], "same": [1, 9, 10, 11, 15, 29, 33, 40, 43, 48, 49, 50, 51], "build": [1, 9, 19, 33, 37, 41], "dai": 1, "ros_distro": [1, 3, 21, 23], "foxi": [1, 6, 8, 19], "galact": [1, 6, 19], "releas": [1, 3, 8, 21, 33], "version": [1, 3, 7, 9, 15, 21, 50], "non": [1, 8, 26, 33, 43], "brake": 1, "distribut": [1, 3, 21, 61], "three": [1, 3, 5, 13, 16, 17, 21, 33, 41, 49, 57], "stage": [1, 10, 26], "current": [1, 7, 15, 16, 17, 19, 20, 49, 50, 55], "futur": [1, 8, 10, 49, 50], "compat": [1, 3, 5, 8, 19, 21], "direct": [1, 5, 7, 19, 33, 41, 48], "local": [1, 2, 4, 9, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 47], "possibl": [1, 3, 7, 11, 17, 18, 21, 23, 25, 27, 28, 29, 30, 31, 32, 34, 37, 41, 49], "core": [1, 12, 33], "immedi": [1, 11, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 51], "depend": [1, 3, 9, 13, 17, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 49, 51, 55], "fail": [1, 29, 33], "expect": [1, 7, 8, 9, 26, 33, 36, 38, 39, 50, 55, 56, 57], "after": [1, 10, 11, 18, 19, 21, 23, 33, 39, 41, 48, 49, 50, 55, 56], "next": [1, 23, 33, 49], "sync": 1, "abl": 1, "potenti": [1, 8, 9, 41, 48], "mid": 1, "power": [1, 2, 4, 8, 19], "plausibl": 1, "analyt": 1, "integr": [2, 3, 4, 7, 8, 18, 21, 26, 28, 33, 48, 49, 50, 51, 56, 61], "architectur": [2, 4, 7, 8, 9], "gazebo": [2, 4, 7, 18, 21, 23, 35, 59], "classic": [2, 18, 21, 59], "which": [2, 3, 4, 5, 7, 8, 9, 11, 15, 18, 19, 20, 21, 23, 25, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 53, 55, 56], "instanti": [2, 4, 11], "manag": [2, 4, 5, 7, 8, 12, 13, 14, 16, 17, 19, 20, 21, 33, 41, 50, 61], "connect": [2, 3, 4, 18, 21, 30, 33], "model": [2, 4, 23, 25, 33], "cd": [2, 3, 4, 9, 21, 33], "docker": [2, 4, 9, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "allow": [2, 3, 4, 5, 11, 21, 33, 45, 48, 49, 50, 54], "without": [2, 3, 4, 5, 8, 11, 18, 19, 21, 26, 41, 48, 49], "gui": [2, 4, 21, 23, 26, 27, 29, 30, 31, 32, 34, 35, 54], "configur": [2, 3, 4, 5, 7, 8, 10, 11, 13, 14, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47, 48, 49, 50, 55], "properli": [2, 4, 10, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "command": [2, 3, 4, 5, 7, 8, 9, 11, 12, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 44, 45, 48, 49, 52, 54, 57, 58, 61], "rm": [2, 3, 4, 21, 23], "net": [2, 4, 8, 21, 23], "host": [2, 4, 21, 23, 60], "ros2": [2, 3, 4, 8, 11, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "launch": [2, 3, 4, 11, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "cart_example_posit": [2, 4], "py": [2, 4, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "fals": [2, 4, 15, 18, 21, 23, 25, 37, 39, 45, 47, 48, 50, 51, 55, 56], "machin": [2, 3, 4, 7, 21], "client": [2, 4, 50], "gzclient": 2, "rocker": [2, 4], "go": [2, 4, 8, 11, 19, 33, 41], "tool": [2, 4, 5, 7, 8, 9, 33, 37], "imag": [2, 4, 11], "inject": [2, 4, 8, 9], "nvidia": [2, 4], "And": 2, "user": [2, 4, 7, 11, 21, 33, 49], "id": [2, 4, 20, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 37, 39], "specif": [2, 4, 7, 10, 11, 13, 14, 15, 17, 33, 35, 44, 47, 49, 50], "file": [2, 3, 4, 5, 7, 8, 11, 15, 18, 19, 21, 37, 39, 41, 42, 43, 50, 52, 58], "cleaner": [2, 4], "mount": [2, 4], "permiss": [2, 4, 11], "instal": [2, 4, 9, 11, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "instruct": [2, 4, 9, 28, 33, 35], "x11": [2, 4], "latest": [2, 3, 4, 9], "move": [2, 4, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 45, 56], "cart": [2, 4], "rail": [2, 4], "exec": [2, 4, 23], "bash": [2, 3, 4, 9, 19, 21, 23, 33, 41], "home": [2, 4], "ros2_w": [2, 3, 4, 21], "example_posit": [2, 4], "need": [2, 3, 4, 5, 7, 8, 10, 17, 19, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 40, 41, 49, 51], "addit": [2, 4, 5, 10, 21, 24, 28, 33], "element": [2, 4, 33, 37, 48], "includ": [2, 4, 5, 7, 9, 11, 13, 19, 20, 25, 33, 37, 41, 50, 56, 60], "access": [2, 3, 4, 8, 11, 18, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47], "interfac": [2, 4, 7, 8, 10, 11, 12, 13, 16, 19, 21, 23, 25, 26, 27, 28, 30, 31, 32, 35, 36, 38, 40, 41, 43, 46, 48, 49, 53, 57, 59, 60, 61], "state": [2, 3, 4, 5, 7, 8, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 43, 47, 48], "gazebosystem": [2, 14], "system": [2, 3, 4, 5, 7, 8, 9, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 48, 50, 59, 60, 61], "hardwar": [2, 4, 8, 9, 10, 12, 13, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 40, 41, 48, 51, 56, 61], "slider_to_cart": [2, 4, 42, 52, 58], "command_interfac": [2, 3, 4, 14, 17, 24, 26, 33, 37, 48, 50, 51], "effort": [2, 4, 5, 14, 21, 33, 40, 42, 45, 47, 48, 50, 51], "param": [2, 3, 4, 11, 14, 15, 17, 18, 24, 28, 33], "min": [2, 3, 4, 17, 33], "1000": [2, 4, 14, 33], "state_interfac": [2, 3, 4, 14, 17, 18, 24, 33, 37, 48, 50], "posit": [2, 3, 4, 5, 8, 11, 14, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 42, 47, 48, 49, 50, 51, 52, 55, 58], "initial_valu": [2, 4, 14, 17, 18, 24, 33], "veloc": [2, 3, 4, 5, 8, 10, 14, 21, 25, 27, 28, 29, 33, 37, 38, 39, 40, 45, 46, 47, 48, 49, 50, 51, 52, 55, 58], "defin": [2, 4, 5, 7, 11, 14, 17, 19, 21, 33, 37, 41, 43, 46, 47, 48, 49, 50, 51, 53, 55], "paramet": [2, 4, 5, 8, 9, 14, 15, 19, 21, 23, 24, 28, 33, 41, 50], "mimick": [2, 4], "detail": [2, 3, 4, 5, 11, 16, 17, 18, 19, 26, 33, 35, 36, 38, 39, 41, 49, 50, 57], "manual": [2, 3, 4, 7, 11, 19, 21, 23, 29, 30, 31, 32, 34, 35, 41, 61], "multipli": [2, 4, 14], "definit": [2, 3, 4, 11, 14, 19, 33, 37, 39, 40, 41, 43, 45, 46, 47, 48, 53], "left_finger_joint": [2, 4, 14], "prismat": [2, 4, 14], "right_finger_joint": [2, 4, 14], "axi": [2, 4, 7, 14, 33, 36, 38, 39, 43, 57], "xyz": [2, 4, 14, 33], "rpy": [2, 4, 14, 33], "1415926535": [2, 4, 14], "parent": [2, 4, 14, 19, 33, 39, 41, 56], "link": [2, 3, 4, 8, 10, 13, 14, 33, 37, 40], "base": [2, 3, 4, 8, 13, 14, 19, 20, 21, 25, 27, 28, 32, 33, 37, 39, 41, 44, 55, 56, 59, 60], "child": [2, 4, 14, 17, 33, 39, 56], "finger_left": [2, 4, 14], "lower": [2, 4, 14, 33, 51], "upper": [2, 4, 14, 33, 51], "In": [2, 3, 4, 5, 7, 8, 10, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 40, 41, 47, 49, 55], "actual": [2, 4, 10, 39, 56], "pars": [2, 4, 5, 12, 17, 18], "load": [2, 3, 4, 11, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 41], "appropri": [2, 4, 7, 49], "By": [2, 4, 11, 25, 33, 47, 49], "though": [2, 4, 11, 25, 26], "extens": [2, 4], "via": [2, 3, 4, 21, 23, 30, 31, 33, 50, 60], "creat": [2, 3, 4, 5, 8, 11, 18, 19, 21, 25, 33, 41], "between": [2, 3, 4, 7, 13, 17, 21, 33, 36, 38, 39, 47, 48, 49, 50, 51, 56, 57], "filenam": [2, 4, 33], "libgazebo_ros2_control": 2, "so": [2, 3, 4, 10, 11, 19, 33, 37, 41, 50], "robot_param": [2, 4], "robot_descript": [2, 4, 11, 23, 33], "robot_param_nod": [2, 4], "robot_state_publish": [2, 4, 11, 25, 47], "config": [2, 4, 21], "cart_control": [2, 4], "yaml": [2, 3, 4, 7, 9, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 50], "controller_manager_nam": 2, "simulation_controller_manag": 2, "option": [2, 4, 5, 11, 16, 17, 18, 19, 20, 23, 24, 29, 37, 39, 40, 41, 43, 47, 50, 51, 55], "server": [2, 45, 50], "node": [2, 3, 4, 11, 15, 16, 18, 20, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 56], "hold_joint": [2, 4], "true": [2, 4, 15, 24, 25, 28, 35, 37, 39, 48, 49, 50, 51, 55, 56], "hold": [2, 4, 49], "wa": [2, 4, 7, 9, 19, 23, 24, 28, 29, 33, 41, 49], "claim": [2, 4, 10, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37], "hasn": [2, 4], "been": [2, 4, 26], "yet": [2, 4, 6, 10, 11, 21, 26, 39, 49, 50], "controller_manag": [2, 3, 4, 7, 11, 20, 29, 40, 41, 42, 50, 52, 58], "attempt": [2, 4, 11, 50], "get": [2, 4, 8, 9, 10, 11, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 49, 51, 61], "out": [2, 4, 5, 11, 33, 39], "most": [2, 4, 7, 19, 21, 25, 33, 41], "case": [2, 4, 5, 7, 8, 10, 21, 26, 33, 41, 47, 49, 50, 61], "least": [2, 4, 17, 19, 41, 50], "start": [2, 4, 5, 8, 10, 11, 13, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 41, 48, 49, 56, 61], "hardware_interfac": [2, 3, 4, 5, 15, 16, 18, 19, 21, 27, 30, 31, 32, 33, 37, 39, 40, 41], "jointstateinterfac": [2, 4], "effortjointinterfac": [2, 4], "velocityjointinterfac": [2, 4], "pluginlib": [2, 3, 4, 5, 11, 19, 33, 41, 51], "implement": [2, 3, 4, 5, 7, 8, 11, 15, 17, 18, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 41, 44, 49, 50, 51, 55, 56, 57, 61], "complex": [2, 3, 4, 7, 8, 9, 10], "mechan": [2, 4, 10, 50], "nonlinear": [2, 4], "spring": [2, 4], "linkag": [2, 4, 23, 26, 34], "etc": [2, 4, 11, 29, 33, 37, 61], "These": [2, 4, 21, 33, 39, 45, 56], "inherit": [2, 4, 11, 33], "gazebosysteminterfac": 2, "systeminterfac": [2, 4, 5, 15, 18, 30, 33], "level": [2, 4, 7, 8, 11, 26, 27, 32, 42, 49, 52, 58], "properti": [2, 4, 33], "sub": [2, 4, 25], "class": [2, 3, 4, 8, 11, 13, 16, 19, 20, 33, 41, 44, 49], "specifi": [2, 4, 11, 19, 21, 33, 37, 40, 41, 48, 49, 50, 51], "For": [2, 3, 4, 7, 8, 10, 11, 16, 18, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 48, 50, 51, 55, 57], "exampl": [2, 3, 4, 5, 7, 8, 10, 11, 18, 20, 25, 28, 37, 39, 42, 43, 50, 51, 52, 56, 58, 61], "xml": [2, 4, 5, 11, 13, 15, 19, 33, 41], "insid": [2, 4, 18, 21, 23], "basic": [2, 3, 4, 5, 7, 8, 19, 21, 28, 41], "joint_state_broadcast": [2, 4, 17, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "publish": [2, 4, 7, 10, 17, 21, 24, 25, 33, 37, 40, 43, 46, 47, 49, 53, 56, 61], "resourc": [2, 4, 5, 19, 29], "regist": [2, 4, 5], "stateinterfac": [2, 4, 33], "topic": [2, 4, 7, 8, 10, 11, 17, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 40, 50, 51, 56, 59], "sensor_msg": [2, 4, 46, 53], "msg": [2, 4, 11, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 42, 43, 44, 46, 49, 50, 51, 52, 53, 55, 58], "jointstat": [2, 4], "joint_trajectory_control": [2, 4, 7, 20, 23, 40, 48, 54], "call": [2, 3, 4, 5, 10, 15, 19, 24, 28, 33, 41], "follow_joint_trajectori": [2, 4, 50], "control_msg": [2, 4, 37, 48, 50, 51, 55, 61], "followjointtrajectori": [2, 4, 48, 50], "ros__paramet": [2, 4, 37, 39, 42, 43, 45, 46, 47, 48, 50, 52, 53, 58], "update_r": [2, 4, 11, 40, 42, 52, 58], "100": [2, 3, 15, 17, 42, 52, 58], "hz": [2, 4, 39, 42, 45, 52, 58], "jointtrajectorycontrol": [2, 4, 5, 20, 23, 37, 50], "jointstatebroadcast": [2, 4, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "contain": [2, 9, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 42, 43, 45, 46, 47, 48, 49, 51, 52, 53, 55, 58], "content": [2, 19, 33, 41], "There": [2, 3, 4, 6, 11, 16, 19, 21, 25, 27, 30, 31, 32, 41, 49, 50], "meter": [2, 4, 33], "cart_example_veloc": [2, 4], "cart_example_effort": [2, 4], "diff_driv": 2, "tricycle_dr": 2, "world": [2, 4, 11, 18, 25, 33, 37], "example_veloc": [2, 4], "example_effort": [2, 4], "example_diff_dr": [2, 4], "example_tricycle_dr": [2, 4], "parallel": [2, 3, 4, 17], "gripper": [2, 3, 4, 5, 8, 17, 40], "gripper_mimic_joint_exampl": [2, 4], "send": [2, 4, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 49, 50, 51], "example_gripp": [2, 4], "roll": [3, 9, 21, 33, 39, 56], "both": [3, 7, 8, 11, 26, 33, 34, 39, 47, 48, 49, 50], "humbl": 3, "iron": [3, 6], "about": [3, 7, 18, 19, 29, 39, 46, 47, 50, 61], "page": [3, 8, 59, 60], "want": [3, 9, 10, 11, 21], "download": [3, 21], "repositori": [3, 7, 12, 17, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 40], "mkdir": [3, 9, 21], "p": [3, 9, 11, 21, 48, 51], "src": [3, 9, 19, 21, 23, 33, 37, 39, 41, 43, 45, 46, 47, 48, 53], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 7, 9, 21, 33], "ros2_control_ci": 3, "ros_control": [3, 7, 8, 61], "vc": [3, 9, 21], "import": [3, 9, 19, 21, 33, 41, 48], "rosdep": [3, 21], "updat": [3, 5, 10, 11, 12, 16, 21, 25, 33, 37, 40, 41, 50, 55], "rosdistro": [3, 21], "sudo": [3, 9, 11, 21], "apt": [3, 9, 11, 21], "path": [3, 8, 21, 33, 50], "ignor": [3, 11, 21, 39, 48, 55, 56], "r": [3, 21, 34], "y": [3, 21, 25, 28, 30, 31, 37, 43, 46], "everyth": [3, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41], "opt": [3, 9, 21, 23], "setup": [3, 9, 18, 19, 21, 23, 28, 33, 41, 49, 51], "sh": [3, 21, 23], "colcon": [3, 9, 19, 21, 33, 41], "symlink": [3, 9, 21, 33], "forget": [3, 5, 21, 50], "folder": [3, 8, 19, 21, 23, 24, 25, 28, 36, 37, 38, 39, 41, 43, 45, 46, 47, 48, 53, 55, 57], "found": [3, 11, 12, 19, 23, 24, 25, 28, 37, 39, 41, 43, 44, 46, 50, 53, 61], "figur": [3, 49], "uml": 3, "diagram": [3, 20], "describ": [3, 5, 10, 17, 21, 23, 29, 33, 39, 49], "intern": [3, 7, 10, 15, 17, 19, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 49, 50], "cm": [3, 11], "abstract": [3, 8, 16, 33], "side": [3, 7, 8, 39], "entri": [3, 41], "point": [3, 33, 37, 41, 48, 49, 50, 51, 61], "servic": [3, 7, 11, 16, 33, 40], "executor": [3, 11], "custom": [3, 11, 17, 18, 21, 24, 27, 28, 43, 47, 48, 59], "howev": [3, 7, 10, 11, 21, 26, 33], "usual": [3, 5, 18, 19, 33, 37, 41], "recommend": [3, 8, 9, 19, 51], "default": [3, 5, 10, 11, 18, 25, 29, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57], "ros2_control_nod": [3, 11, 29, 33], "assum": [3, 10, 37], "On": [3, 8, 9, 33], "hand": [3, 33, 60], "deactiv": [3, 5, 20, 23, 48], "unload": [3, 11, 20], "match": [3, 21, 49], "enabl": [3, 5, 7, 8, 13, 19, 20, 21, 28, 37, 39, 43, 51, 55], "report": [3, 7, 47, 61], "error": [3, 7, 11, 13, 15, 19, 26, 29, 33, 37, 41, 47, 48, 50, 51], "conflict": [3, 5, 7], "execut": [3, 11, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 45, 48, 49, 50, 57], "loop": [3, 8, 11, 18, 23, 29, 30, 31, 32, 33, 34, 35, 41, 47, 48, 50, 55], "data": [3, 5, 7, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 40, 47, 49, 56], "output": [3, 7, 8, 11, 17, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 56], "write": [3, 5, 8, 10, 11, 12, 15, 24, 26, 27, 28, 32, 37, 40, 51], "physic": [3, 5, 16, 17, 18], "driver": [3, 8, 21, 33, 60], "librari": [3, 5, 19, 20, 25, 36, 38, 40, 41, 51, 55, 57], "lifecycl": [3, 5, 8, 11, 13, 16, 19, 33, 40], "reus": [3, 8, 10], "ani": [3, 5, 8, 10, 11, 13, 14, 16, 17, 21, 26, 33, 41, 48, 50], "flexibl": 3, "commun": [3, 5, 7, 8, 15, 19, 21, 23, 25, 27, 28, 29, 30, 31, 33, 34], "motor": [3, 10, 60], "encod": [3, 33, 39, 56], "theori": [3, 61], "compar": [3, 7, 8], "refer": [3, 10, 25, 26, 33, 60], "valu": [3, 5, 7, 15, 17, 18, 19, 21, 23, 24, 26, 28, 30, 31, 33, 35, 37, 39, 41, 43, 46, 47, 48, 50, 53, 55, 56], "measur": [3, 18, 27, 37, 43, 47, 48, 60], "calcul": [3, 25, 33, 37, 39, 49, 55, 56], "input": [3, 7, 8, 9, 10, 17, 24, 26, 33, 37, 39, 42, 44, 48, 49, 52, 55, 56, 58], "object": [3, 33], "deriv": [3, 48, 49, 51], "controllerinterfac": [3, 5, 10, 20, 33, 41], "controller_interfac": [3, 20, 33, 37, 41, 43, 46, 53], "export": [3, 10, 11, 19, 21, 33, 37, 41], "plugin": [3, 9, 11, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 51, 54], "forwardcommandcontrol": [3, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35], "lifecyclenod": [3, 41], "design": [3, 5, 7, 8, 10, 25, 33, 61], "document": [3, 7, 8, 17, 18, 19, 21, 28, 40, 49, 50], "list": [3, 8, 10, 11, 13, 19, 20, 26, 33, 41, 43, 59, 60, 61], "srv": [3, 50, 51], "controller_manager_msg": 3, "directli": [3, 14, 18, 23, 26, 51, 61], "exist": [3, 5, 7, 8, 9, 10, 11, 13, 17, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 41, 50], "friendli": 3, "cli": [3, 11, 12, 20, 23, 24, 25, 28, 29, 30, 31, 32, 34, 35], "auto": [3, 11], "complet": [3, 16, 26, 33, 49], "rang": [3, 17, 40], "common": [3, 7, 21, 47, 61], "avail": [3, 5, 8, 10, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47, 50], "capabl": [3, 7], "realiz": [3, 8, 49, 50], "repres": [3, 16, 33, 39, 40, 49], "dynam": [3, 19, 25, 33, 37, 41, 51, 59], "multi": [3, 5, 7, 8, 9, 21, 29], "dof": [3, 17, 21, 33, 45, 51], "differ": [3, 7, 8, 11, 12, 16, 17, 19, 21, 23, 24, 28, 29, 33, 39, 42, 43, 47, 49, 51, 52, 55, 58], "actuat": [3, 5, 7, 13, 16, 17, 18, 19, 21, 26, 56], "transmiss": [3, 21], "humanoid": 3, "logic": 3, "channel": [3, 60], "kuka": [3, 23, 29, 30, 31, 60], "rsi": [3, 23, 30, 31, 60], "sensor": [3, 5, 7, 13, 16, 18, 19, 21, 27, 32, 33, 37, 40, 60], "sens": [3, 5, 40, 43], "relat": [3, 7, 8], "joint": [3, 5, 8, 11, 14, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 47, 48, 49, 51, 52, 55, 56, 57, 58, 61], "forc": [3, 8, 17, 20, 30, 31, 37, 40, 60], "torqu": [3, 17, 30, 31, 37, 40], "simpl": [3, 7, 8, 10, 19, 21, 23, 25, 26, 28, 33, 34, 41, 45], "valv": [3, 17], "mandatori": [3, 11], "dc": 3, "arduino": [3, 27, 32], "board": 3, "modular": [3, 8, 9, 21, 33], "independ": [3, 8, 11, 31], "explan": [3, 11, 19], "given": [3, 11, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 42, 49, 50, 52, 58], "through": [3, 7, 8, 10, 11, 19, 20, 21, 26, 33, 41, 50, 51, 61], "tag": [3, 11, 14, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 41, 61], "chosen": [3, 17], "structur": [3, 7, 10, 11, 19, 33, 39, 41, 48, 49], "track": [3, 36, 57, 61], "togeth": [3, 10, 17, 28, 30, 55], "multipl": [3, 5, 8, 10, 17, 19, 21, 47], "xacro": [3, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "macro": [3, 5, 15, 19, 21, 33, 41], "hereund": 3, "rrbot": [3, 11, 17, 20, 21, 24, 25, 27, 29, 30, 31, 32, 34], "extern": [3, 5, 7, 10, 18, 21, 37, 51], "end": [3, 5, 16, 19, 33, 37, 41, 48], "effector": [3, 37], "site": 3, "rrbotsystempositiononli": [3, 31], "ros2_control_demo_hardwar": [3, 17, 20], "rrbotsystempositiononlyhardwar": [3, 5, 17, 20, 23, 26, 31], "example_param_write_for_sec": 3, "example_param_read_for_sec": [3, 17], "joint1": [3, 17, 20, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 50], "joint2": [3, 17, 20, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 50], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "tcp_fts_sensor": [3, 17, 30, 31], "frame_id": [3, 17, 30, 31, 43, 46, 53, 55], "rrbot_tcp": 3, "min_forc": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "gripper_joint": 3, "extend": [3, 5, 7, 10, 19, 41], "instead": [3, 14, 18, 24, 28, 33, 35, 37, 48, 51], "pure": 3, "stack": [3, 8, 61], "could": [3, 8, 10, 21, 29, 41, 47, 50], "altern": [3, 9, 11, 23, 50], "script": [3, 7, 19, 41], "skeleton": 3, "sim": [4, 20, 59], "dockerfil": [4, 21], "Then": [4, 10, 21, 33, 35, 49], "ign": 4, "meet": [4, 61], "prerequisit": 4, "along": 4, "gazebosimsystem": 4, "libgz_ros2_control": 4, "gazebosimros2controlplugin": 4, "gazebosimsysteminterfac": 4, "controller_manager_prefix_node_nam": 4, "diff_drive_exampl": 4, "tricycle_drive_exampl": 4, "robothw": 5, "rigid": 5, "imposs": 5, "combinedrobothardwar": 5, "drawback": [5, 61], "solut": [5, 8, 9], "optim": [5, 11], "combin": [5, 10, 17, 18, 21, 29, 47, 49, 50, 51], "composit": [5, 8], "cell": [5, 43], "surround": 5, "box": [5, 21, 23, 25, 28, 29, 30, 31, 34, 35], "hard": [5, 11], "approach": [5, 10, 15], "doe": [5, 11, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 41, 49, 50], "enforc": [5, 29, 33], "string": [5, 11, 18, 21, 37, 39, 41, 43, 44, 45, 46, 47, 48, 51, 53, 55, 56], "ensur": [5, 8, 11, 14, 33, 49], "constant": [5, 21], "had": 5, "itself": [5, 10], "took": 5, "care": [5, 7, 11, 19, 29, 41, 50], "resourcemanag": [5, 10], "take": [5, 7, 10, 19, 26, 29, 39, 41, 47, 49], "anymor": 5, "controllermanag": [5, 11], "granular": 5, "sensorinterfac": [5, 27, 31], "actuatorinterfac": [5, 27, 32], "abov": [5, 23, 24, 26, 27, 28, 29, 30, 31, 32, 34, 35, 40, 49], "choos": [5, 21, 55], "suitabl": [5, 8], "strategi": [5, 21, 49], "decid": [5, 15], "mayb": [5, 10], "constructor": [5, 19, 33, 41], "initi": [5, 17, 18, 19, 24, 33, 41, 49], "variabl": [5, 15, 19, 33, 41, 48], "urdf": [5, 8, 11, 14, 15, 17, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37], "snippet": 5, "hardwareinfo": [5, 15, 33], "here": [5, 12, 19, 33, 41, 42, 50, 52, 58], "cross": [5, 47], "export_": 5, "_interfac": [5, 19], "joint_a2": 5, "extract": [5, 39, 56], "sensibl": 5, "stop": [5, 8, 10, 11, 13, 20, 23, 24, 28, 29, 33, 39, 48, 56], "safe": [5, 33, 39, 41, 50, 56], "interrupt": [5, 11], "stream": [5, 8], "exchang": [5, 7, 23, 25, 27, 28, 29, 30, 31, 32, 34, 61], "equival": [5, 33], "pluginlib_export_class": [5, 19, 21, 33, 41], "cpp": [5, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "excel": 5, "real": [5, 7, 8, 11, 18, 24, 28, 41, 47, 48, 61], "critic": [5, 7], "mark": [5, 26], "member": [5, 19, 33, 41, 49], "init": 5, "declar": [5, 15, 19, 33, 41], "state_interface_configur": [5, 33, 41], "command_interface_configur": [5, 33, 41], "on_configur": [5, 19, 33, 41], "on_activ": [5, 13, 15, 19, 33, 41], "on_deactiv": [5, 13, 19, 33, 41], "final": [5, 8, 16, 33], "joint_trajectory_plugin": 5, "jazzi": 6, "task": [7, 8, 39], "envis": 7, "simul": [7, 18, 20, 21, 23, 24, 26, 28, 30, 31, 33], "ignit": 7, "showcas": [7, 8, 9], "grace": 7, "degrad": 7, "roadmap": [7, 21, 61], "place": [7, 9, 11, 39, 41, 56], "draft": 7, "gpio": [7, 14, 18, 21, 33], "mode": [7, 10, 19, 26, 29, 37, 48, 49, 51, 55], "switch": [7, 20, 21, 23, 29], "movement": [7, 48], "safeti": [7, 33], "skill": 7, "prefer": 7, "familiar": [7, 61], "mentor": 7, "\u0161togl": [7, 8], "size": [7, 39, 53, 56], "350": 7, "hour": 7, "difficulti": 7, "medium": 7, "focus": [7, 8, 10], "although": [7, 10, 13, 17, 50], "easi": [7, 11], "therefor": [7, 10, 11, 21, 41, 47, 48, 50], "often": [7, 24, 28, 41, 47], "orchestr": 7, "purpos": [7, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 51], "conductor": 7, "scenario": [7, 49], "moment": [7, 50], "right": [7, 21, 39], "replac": [7, 13, 40, 50], "high": [7, 11, 49], "moveit2": [7, 8, 40, 60], "simplecontrollermanag": 7, "goal": [7, 8, 17, 23, 29, 30, 31, 32, 34, 35, 45, 48, 50, 61], "form": [7, 21], "behavior": [7, 18, 33, 49], "benchmark": 7, "statu": [7, 10, 13, 20, 23, 48], "format": [7, 33, 37, 47, 50], "preset": 7, "modul": [7, 26], "reli": 7, "doubl": [7, 18, 23, 33, 36, 37, 38, 39, 45, 48, 51, 53, 55, 56, 57], "desir": [7, 15, 48, 50], "improv": [7, 11], "readabl": [7, 33], "earlier": 7, "concept": [7, 8, 9, 10, 21, 23], "introduc": [7, 8, 10, 23, 33], "essenti": [7, 23], "group": [7, 10, 11, 17, 50, 61], "instanc": [7, 11, 26, 47], "imu": [7, 17, 40], "typic": [7, 17, 28, 47, 48], "acceleromet": 7, "gyroscop": 7, "compass": 7, "part": [7, 8, 17, 33, 41, 49, 50, 51], "Such": [7, 26], "struct": 7, "low": [7, 8, 11], "profil": 7, "relev": [7, 37, 48, 51, 55, 61], "addition": [7, 33, 36, 38, 57, 61], "few": [7, 8, 40], "175": 7, "rewrit": [7, 61], "rich": 7, "motiv": 7, "adopt": 7, "port": [7, 13, 14, 17], "quit": 7, "miss": [7, 8, 9, 47, 49, 50], "diff_drive_control": [7, 10, 20, 28], "consist": [7, 14, 50, 61], "onc": [7, 8, 9, 23, 25, 28, 29, 30, 31, 33, 34, 40], "identifi": [7, 33], "much": [7, 23, 25, 27, 28, 29, 30, 31, 32, 34, 41, 50], "303": 7, "304": 7, "stretch": 7, "realtime_tool": [7, 61], "81": [7, 37], "302": 7, "unit": 7, "gmock": 7, "cc": [8, 49, 50], "BY": [8, 49, 50], "licens": [8, 49, 50], "author": [8, 10], "either": [8, 23, 29, 30, 31, 32, 34, 35, 47, 49], "down": [8, 33, 37], "below": [8, 11, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 48, 49, 50], "compani": 8, "my": 8, "company_nam": 8, "alreadi": [8, 9, 19, 20, 21, 23, 26, 33, 35, 40, 41, 50], "know": [8, 9, 17], "act": [8, 9], "kernel": [8, 9, 11], "struggl": [8, 9], "cover": [8, 9], "product": [8, 9, 47], "variou": [8, 9, 23, 34], "littl": [8, 9, 11], "run": [8, 9, 10, 11, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 49, 55], "practic": [8, 9], "overview": [8, 9], "chain": [8, 9, 12, 20, 21, 33, 37, 48, 51, 55], "debug": [8, 9, 18], "top": [8, 9], "involv": [8, 9, 11], "bring": [8, 9, 21], "locu": 8, "stogl": [8, 9], "consult": 8, "tricycl": [8, 40, 56], "event": 8, "pixel": 8, "prefac": 8, "introduct": 8, "plapp": 8, "agnost": [8, 33], "share": [8, 18, 19, 33, 41, 55], "well": [8, 11, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 50], "perform": [8, 11, 33], "heavi": 8, "practition": 8, "guid": [8, 19, 41], "virtual": [8, 10, 25, 38], "talk": 8, "delv": 8, "deeper": 8, "what": [8, 23, 33], "explicit": [8, 11, 33, 48], "emerg": 8, "handler": 8, "mock": [8, 12, 19], "usag": [8, 11, 17, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "openli": 8, "record": 8, "fiveai": 8, "ltd": 8, "best": [8, 11, 41], "focu": [8, 10], "becom": [8, 26], "util": 8, "3rd": 8, "parti": 8, "nav2": [8, 40], "tip": [8, 33, 37], "hot": 8, "shown": [8, 33, 49], "furthermor": [8, 28], "offer": [8, 11, 19, 33], "expos": [8, 21, 26], "problem": [8, 61], "manipul": [8, 21, 23, 26, 33, 34, 48, 60], "plan": [8, 61], "autonom": 8, "navig": [8, 9], "ideal": [8, 18], "made": [8, 13], "mobil": [8, 21, 25, 28, 39, 55, 56, 60], "arm": [8, 23, 26, 34, 37], "extra": [8, 33, 47], "readi": [8, 9, 19, 21, 26, 40, 41], "studi": 8, "ur": 8, "With": [8, 33, 35, 50], "moveit": [8, 18], "ingredi": 8, "scale": [8, 48], "factor": [8, 39], "teach": 8, "pendant": 8, "influenc": 8, "picknik": 8, "inc": 8, "lovro": 8, "ivanov": 8, "zelenak": 8, "rune": 8, "s\u00f8e": 8, "knudsen": 8, "onlin": [8, 19, 41], "trajectori": [8, 23, 33, 40, 48, 51, 61], "admitt": [8, 40], "One": [8, 10, 24], "reason": [8, 10, 11, 33], "upgrad": 8, "ros1": [8, 21], "better": 8, "realtim": [8, 11, 33, 39, 50, 56, 61], "contact": 8, "insert": 8, "singl": [8, 30, 45, 56], "waypoint": [8, 49, 50], "mani": [8, 33, 40, 41], "teleoper": 8, "kinemat": [8, 10, 21, 28, 33, 36, 37, 38, 55, 57], "acceler": [8, 21, 29, 33, 37, 39, 46, 48, 49, 50, 51, 56], "jerk": [8, 39, 56], "obei": [8, 33], "demo": [8, 17], "booth": 8, "zeleank": 8, "unifi": 8, "life": [8, 33], "cycl": [8, 33, 40], "_control": [8, 21], "wild": 8, "materi": 8, "quick": [8, 13], "layer": 8, "aka": 8, "systemcompon": 8, "forward": [8, 18, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 40, 48, 50, 51, 61], "done": [8, 9, 10, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 40, 41], "look": [8, 28], "modifi": 8, "simpli": [8, 11, 23, 49, 50], "edit": 8, "collect": [8, 42, 52, 58], "semant": [8, 17, 37, 43, 46, 53], "monolit": 8, "controlko": 8, "imperi": 9, "octob": 9, "present": [9, 11, 14, 17, 50], "ubuntu": [9, 11], "engin": [9, 19, 41], "compos": 9, "grab": 9, "roscon2023_workshop": 9, "now": [9, 10, 11, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 49], "workspac": [9, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "w": 9, "git": [9, 21, 33], "clone": [9, 21, 33], "roscon2023_control_workshop": 9, "ci": 9, "compil": [9, 19, 33, 41], "termin": [9, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "park": 9, "f": [9, 21, 37], "dev": 9, "tmux": 9, "ctrl": [9, 23], "b": [9, 21, 33], "arrow": 9, "kei": 9, "brought": 9, "propos": [10, 61], "minim": [10, 37, 61], "viabl": [10, 33], "serial": [10, 33], "tri": [10, 48], "clariti": 10, "arbitrari": [10, 33, 50], "order": [10, 33, 51], "nevertheless": [10, 51], "convinc": 10, "would": [10, 47, 51], "unnecessari": 10, "long": 10, "term": [10, 51, 61], "clearer": 10, "let": [10, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34], "controllers_chain": 10, "position_track": 10, "pid": [10, 40, 48, 49, 50, 61], "imagin": 10, "flexibli": 10, "preced": 10, "step": [10, 15, 19, 21, 41, 49, 61], "At": [10, 19, 26, 41], "attach": 10, "disabl": [10, 18, 39, 55], "subscrib": [10, 24, 25, 26, 33], "differenti": [10, 21, 28, 38, 39, 40, 60, 61], "interfaceconfigur": [10, 33], "input_interface_configur": 10, "const": [10, 13, 15, 33], "anoth": [10, 11, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 50], "simplic": [10, 33], "try": [10, 33], "exclus": [10, 33], "rather": [10, 21, 49], "void": 10, "set_chained_mod": 10, "bool": [10, 15, 37, 39, 45, 47, 48, 51, 55, 56], "flag": [10, 15, 19, 41, 48], "on_set_chained_mod": 10, "pid_refer": 10, "controller_nam": [10, 11, 20, 37, 41, 50, 51, 55], "v_x": 10, "v_y": 10, "w_z": 10, "cmd_vel": [10, 28, 39, 56], "cmd_vel_unstamp": 10, "Its": [10, 61], "continu": [10, 48, 49, 50, 51], "chainabl": [10, 21, 26, 39, 50], "ownership": 10, "process": [10, 19, 33, 41, 49], "vector": [10, 26, 33, 41], "invers": [10, 33, 37], "rule": [10, 11, 19, 41], "think": [10, 21], "break": [10, 18], "middl": [10, 38], "unavail": [10, 25, 26], "unclaim": [10, 20, 25, 26, 29], "inact": [10, 11, 20, 23, 29, 33, 40], "feasibl": 10, "interface_configuration_typ": 10, "jitter": 11, "thread": [11, 33], "sched_fifo": 11, "prioriti": 11, "addgroup": 11, "usermod": 11, "whoami": 11, "afterward": 11, "secur": 11, "conf": [11, 33], "soft": 11, "rtprio": 11, "memlock": 11, "102400": 11, "appli": [11, 20, 33, 37, 39, 50], "log": 11, "again": [11, 16, 23, 24, 28, 33], "normal": [11, 33, 37, 48, 51], "linux": 11, "comput": [11, 21, 39, 55, 56], "throughput": 11, "suit": 11, "lt": 11, "beta": 11, "rt": 11, "amd64": 11, "debian": 11, "bullsey": 11, "lowlat": 11, "come": [11, 21, 50], "lot": [11, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "being": [11, 25], "realli": 11, "std_msg": [11, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 44, 52, 58], "reload": [11, 16, 20], "hardware_components_initial_st": 11, "map": [11, 18, 47, 50], "attribut": [11, 33], "full": [11, 19, 21, 41, 43], "unconfigur": [11, 16, 20, 23, 33], "arm1": 11, "arm2": 11, "base3": 11, "empti": [11, 39, 41, 43, 46, 47, 50, 51, 55, 56], "integ": [11, 40], "frequenc": [11, 40], "deal": 11, "namespac": [11, 15, 19, 33, 39, 40, 41, 47], "control_nod": 11, "robot_control": [11, 29, 33], "robot_state_pub_nod": 11, "remap": [11, 25], "relai": 11, "startup": [11, 18], "h": [11, 19, 20, 41], "param_fil": 11, "n": 11, "controller_typ": 11, "timeout": [11, 20, 39, 45, 48, 55, 56], "controller_manager_timeout": 11, "argument": [11, 19, 20, 23, 25, 27, 28, 29, 30, 31, 32, 34], "exit": [11, 20], "leav": 11, "kill": [11, 20, 33], "wait": [11, 20, 32, 48], "until": [11, 33, 49], "mai": [11, 13, 30, 40, 42, 52, 58], "taken": [11, 55], "becaus": [11, 17, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 49], "rclcpp": [11, 15, 19, 33, 41], "than": [11, 37, 43, 45, 48, 50, 51, 55, 56], "global": 11, "forcibli": 11, "lead": [11, 50], "duplic": [11, 48, 51, 55], "occur": [11, 33], "whether": [11, 37], "sibl": 11, "hierarchi": 11, "workaround": 11, "nodeopt": [11, 41], "pass": [11, 15, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "caus": [11, 49, 50, 55], "get_cm_node_opt": 11, "arg": 11, "_target_node_nam": 11, "__node": 11, "dst_node_nam": 11, "info": [11, 13, 15, 19, 33], "std": [11, 14, 33, 39, 48, 56], "make_shar": 11, "some_optional_namespac": 11, "simplest": 11, "switch_control": [11, 23], "broadcast": [11, 17, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 47], "achiev": [11, 15, 33, 42, 48, 52, 58], "return": [11, 13, 15, 16, 19, 23, 33, 41, 45, 47, 49, 50], "NOT": 11, "FOR": 11, "detect": 11, "listen": [11, 48], "doxygen": [12, 19], "cascad": 12, "substanti": 13, "renam": 13, "on_init": [13, 15, 19, 33, 41], "callbackreturn": [13, 15, 16, 19, 33], "baseinterfac": 13, "remov": 13, "base_interfac": 13, "hpp": [13, 15, 19, 21, 33, 37, 41], "hardware_interface_status_valu": 13, "rclcpp_lifecycl": [13, 15, 19, 33, 41], "strictli": [13, 17], "success": [13, 15, 16, 19, 33, 41, 45, 50], "status_": 13, "previous_st": [13, 15, 16, 33], "return_typ": [13, 15, 16, 33, 41], "in_deactiv": 13, "undefin": 13, "refern": 13, "symbol": 13, "node_interfac": [13, 33], "lifecyclenodeinterfac": [13, 19, 33], "rclcpp_lifecyl": 13, "cmakelist": [13, 19, 33, 41], "txt": [13, 19, 33, 41], "1256": 14, "otherwis": [14, 19, 21, 37, 41, 47, 48], "runtime_error": 14, "thrown": 14, "syntax": 14, "mimic": [14, 18, 25], "offici": [14, 21], "within": [14, 17, 23, 37, 50], "finger_right": 14, "offset": [14, 18, 47, 48], "advic": 15, "xmln": 15, "wiki": [15, 18, 36, 38, 49, 50, 57], "system_interfac": 15, "main_loop_update_r": 15, "desired_hw_update_r": 15, "my_system_interfac": 15, "mysystemhardwar": 15, "unsign": [15, 40], "int": [15, 39, 53, 55, 56], "main_loop_update_rate_": 15, "desired_hw_update_rate_": 15, "stoi": 15, "info_": [15, 33], "hardware_paramet": 15, "reset": [15, 33, 55], "counter": 15, "update_loop_counter_": 15, "durat": [15, 33], "period": [15, 33, 48], "interfer": 15, "hardware_go": 15, "comm": 15, "oper": [15, 33, 61], "sinc": [15, 29, 33, 38], "indic": [15, 29, 33, 48], "first_read_pass_": 15, "first_write_pass_": 15, "last_read_time_": 15, "desired_hw_update_period_": 15, "last_write_time_": 15, "previou": [15, 33, 49, 61], "on_error": [16, 19, 33], "failur": 16, "recov": 16, "devic": 17, "associ": 17, "coupl": 17, "ship": 17, "cannot": [17, 26, 33, 43, 50], "keyword": 17, "digit": 17, "signal": [17, 39], "electr": 17, "analog": 17, "vacuum": [17, 24], "flang": 17, "off": 17, "rrbotsystemmutiplegpio": 17, "example_param_hw_start_duration_sec": 17, "example_param_hw_stop_duration_sec": 17, "example_param_hw_slowdown": 17, "flange_digital_io": 17, "digital_output1": 17, "digital_output2": 17, "digital_input1": 17, "digital_input2": 17, "flange_analog_io": [17, 24], "analog_output1": [17, 24], "mock_hardwar": 17, "analog_input1": [17, 24], "analog_input2": [17, 24], "flange_vacuum": [17, 24], "suction": 17, "grasp": 17, "multimod": 17, "multimodalgripp": 17, "parallel_fing": 17, "temperatur": [17, 21], "feedback": [17, 18, 27, 47, 48, 50, 51, 55, 56], "adjust": [17, 20, 23, 33], "calibr": 17, "2d": [17, 30, 31], "ft": [17, 30, 31, 43], "choic": [17, 55], "matric": 17, "rrbotforcetorquesensor2d": 17, "forcetorquesensor2dhardwar": 17, "fx": 17, "tz": 17, "kuka_tcp": 17, "fx_rang": 17, "tz_rang": 17, "temp_feedback": 17, "calibration_matrix_nr": 17, "mirror": [18, 24], "correspond": [18, 19, 33, 41, 55, 61], "offlin": 18, "advantag": 18, "pipe": 18, "even": [18, 25, 26, 50], "boost": 18, "fake": 18, "disable_command": 18, "boolean": [18, 40], "erron": [18, 33], "noth": 18, "suddenli": 18, "Or": [18, 23, 29, 30, 31, 32, 34, 35], "mock_sensor_command": 18, "mock_gpio_command": 18, "position_state_following_offset": 18, "custom_interface_with_following_offset": 18, "certain": [18, 33, 42, 52, 58], "prepar": [19, 29, 41], "ament_cmak": [19, 41], "easiest": [19, 41], "search": [19, 41], "pkg": [19, 41], "package_nam": [19, 41], "robot_hardware_interface_nam": 19, "visibility_control": [19, 41], "window": [19, 39, 41, 56], "copi": [19, 41], "prefix": [19, 37, 39, 41, 43, 46, 53], "guard": [19, 41], "ifndef": [19, 41], "preprocessor": [19, 41], "friend": [19, 41], "interface_typ": [19, 41], "uniqu": [19, 33, 41], "snake_cas": [19, 41], "interfacetyp": 19, "hardwareinterfacenam": 19, "public": [19, 33, 41], "on_cleanup": [19, 33], "on_shutdown": [19, 33], "overrid": [19, 33, 41, 42, 50, 52, 58], "export_state_interfac": [19, 33], "export_command_interfac": [19, 33], "prepare_command_mode_switch": 19, "perform_command_mode_switch": 19, "further": [19, 41], "exact": [19, 41], "simplifi": [19, 33, 41, 61], "valid": [19, 21, 48, 51, 53], "fine": [19, 25, 28, 41], "opposit": [19, 41], "remind": 19, "joint_nam": [19, 37, 41], "shutdown": [19, 33], "gracefulli": 19, "store": [19, 41], "close": [19, 41], "class_list_macro": [19, 33, 41], "my_hardware_interface_packag": 19, "robothardwareinterfacenam": 19, "second": [19, 20, 23, 26, 29, 30, 31, 32, 33, 34, 35, 39, 41, 49, 51, 61], "visibl": [19, 41], "mock_compon": [19, 24, 28], "bottom": [19, 33, 41], "test_load_": [19, 41], "load_generic_system_2dof": 19, "test_generic_system": 19, "find_packag": [19, 41], "directori": [19, 39, 41, 43, 46, 53], "ament": [19, 41], "cmake": 19, "pluginlib_export_plugin_description_fil": [19, 33, 41], "ament_cmake_gmock": [19, 41], "ament_add_gmock": [19, 41], "ament_export_librari": [19, 41], "ament_packag": [19, 41], "test_depend": [19, 41], "rememb": [19, 41], "root": [19, 41], "enjoi": [19, 41], "great": [19, 41], "templat": [19, 21, 33, 41], "shell": [19, 41], "onward": 19, "spin": 20, "spin_tim": 20, "hidden": 20, "discoveri": 20, "daemon": 20, "test_controller_nam": 20, "test_control": 20, "diffdrivecontrol": [20, 28], "verbos": 20, "label": [20, 24, 27, 28, 30, 31, 32, 49], "hardware_component_nam": 20, "hardware_compon": 20, "ctrl1": 20, "ctrl2": 20, "strict": 20, "asap": 20, "switch_timeout": 20, "tmp": 20, "controller_diagram": 20, "gv": 20, "pdf": [20, 33], "demonstr": [21, 23, 25, 26, 28, 29, 34, 35], "prove": 21, "checkout": 21, "roscon2022_workshop": 21, "hardwareinterfac": [21, 33], "diffbot": 21, "degre": [21, 33, 50, 55], "freedom": [21, 33, 55], "components_architecture_and_urdf_exampl": 21, "revolut": [21, 23, 26, 33, 34], "drive": [21, 25, 28, 36, 38, 39, 40, 55, 56, 57, 60, 61], "accord": [21, 28, 33], "tutori": 21, "intermedi": 21, "carlikebot": 21, "bicycl": [21, 25, 40, 55], "steer": [21, 25, 36, 38, 40, 55, 56, 57], "tba": 21, "tabl": 21, "easili": 21, "aptitud": 21, "might": [21, 49], "own": [21, 23, 33], "merg": 21, "procedur": 21, "rviz2": [21, 23], "visual": [21, 23, 31, 33, 47], "joint_state_publisher_gui": [21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "ros2_control_demo_example_1": [21, 23], "view_robot": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "omit": 21, "example_1": [21, 23, 24, 26, 35], "rviz": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47], "slider": 21, "around": [21, 43, 46, 48, 51, 53], "ros2_control_demo_example_2": [21, 28], "categori": 21, "individu": [21, 41, 43, 53], "position_in_degre": 21, "hardware_interface_type_valu": [21, 37], "6dof": 21, "invert": 23, "pendulum": 23, "fun": 23, "proprietari": [23, 25, 27, 28, 29, 30, 31, 32, 34], "view": [23, 33], "recreat": 23, "robotmodel": 23, "displai": [23, 26, 27, 29, 30, 31, 32, 34, 35], "ros2_control_demo_descript": [23, 25], "ok": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 41], "warn": [23, 25, 27, 28, 29, 30, 31, 32, 34, 47], "invalid": [23, 25, 27, 28, 29, 30, 31, 32, 34], "frame": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 56], "odom": [23, 25, 27, 28, 29, 30, 31, 32, 34, 39, 55, 56], "cantransform": [23, 25, 27, 28, 29, 30, 31, 32, 34], "target_fram": [23, 25, 27, 28, 29, 30, 31, 32, 34], "happen": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34], "exemplari": [23, 27, 29, 30, 31, 32, 34, 36, 38, 55, 57], "orang": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "yellow": [23, 26, 27, 29, 30, 31, 32, 34, 35], "rectangl": [23, 26, 27, 29, 30, 31, 32, 34], "introspect": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34], "list_hardware_interfac": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "entrypoint": 23, "nomin": [23, 39], "marker": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "list_control": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "forward_position_control": [23, 24, 26, 29, 30, 31, 32, 34, 35], "forward_command_control": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 52, 58], "pub": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "float64multiarrai": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 44, 52, 58], "everi": [23, 29, 30, 31, 32, 33, 34, 35, 40, 44, 48, 61], "test_forward_position_control": [23, 29, 30, 31, 32, 34, 35], "block": [23, 26, 27, 29, 30, 31, 32, 33, 34], "got": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "50000": [23, 26, 30, 31, 32], "echo": [23, 24, 26, 28, 30, 31, 35], "joint_stat": [23, 25, 26, 28, 35, 47], "dynamic_joint_st": [23, 26, 35, 47], "load_control": 23, "joint_trajectory_position_control": 23, "successfulli": [23, 27, 32], "set_controller_st": 23, "rrbot_control": [23, 24, 26, 34, 35], "four": [23, 25, 27, 36], "test_joint_trajectory_control": 23, "rrbot_joint_trajectory_publish": 23, "rrbot_descript": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35], "rrbot_forward_position_publish": [23, 35], "ros2_control_demo_example_10": 24, "contrast": 24, "gpio_control": 24, "gpiocontrol": 24, "interface_nam": [24, 43, 44], "1199574016": 24, "1676318848": 24, "rrbotsystemwithgpiohardwar": 24, "gp": 24, "list_hardware_compon": [24, 27, 28, 30, 31, 32], "faster": [24, 28, 39, 56], "genericsystem": [24, 28], "use_mock_hardwar": [24, 28], "ident": [24, 26, 28, 33, 35, 49], "unless": [24, 47], "nan": [24, 30, 48], "generic_system": 24, "wheel": [25, 36, 38, 39, 55, 56, 57], "front": [25, 36, 37, 38, 55, 56, 57], "vehicl": [25, 38], "angl": [25, 33, 38, 55], "similarli": 25, "rear": [25, 36, 38, 55, 56, 57], "carlik": 25, "ros2_control_demo_example_11": 25, "remap_odometry_tf": 25, "excess": [25, 28], "print": [25, 28, 47], "tf": [25, 39, 55], "tree": [25, 33, 39], "pose": [25, 39, 55, 56], "coordin": 25, "odometri": [25, 39, 55, 56], "bicycle_steering_control": 25, "tf_odometri": [25, 55], "angular": [25, 28, 39, 46, 55, 56], "linear": [25, 28, 33, 39, 46, 49, 51, 55, 56], "virtual_front_wheel_joint": 25, "virtual_rear_wheel_joint": 25, "bicyclesteeringcontrol": 25, "geometry_msg": [25, 28, 30, 31, 39, 43, 55], "twiststamp": [25, 28, 39, 55], "twist": [25, 28, 55, 56], "circl": [25, 28], "carlikebotsystemhardwar": 25, "carlikebot_control": 25, "carlikebot_system": 25, "example_12": 26, "known": 26, "passthrough_control": 26, "ros2_control_demo_example_12": 26, "joint2_position_control": 26, "passthroughcontrol": 26, "joint1_position_control": 26, "someth": 26, "automat": [26, 33, 35, 39, 56], "appear": 26, "whose": [26, 49], "henc": [26, 33], "launch_chained_control": 26, "position_control": [26, 40, 44, 45], "streamlin": 26, "clearli": 26, "sent": 26, "reflect": 26, "canopen_402": [27, 32], "modbu": [27, 32], "rs232": [27, 32], "rs485": [27, 32], "ros2_control_demo_example_14": 27, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 27, "rrbotmodularjoint2": [27, 32], "rrbotactuatorwithoutfeedback": 27, "rrbotmodularjoint1": [27, 32], "rrbotmodularpositionsensorjoint2": 27, "rrbotsensorpositionfeedback": 27, "rrbotmodularpositionsensorjoint1": 27, "forward_velocity_control": [27, 29], "000000": 27, "00000": [27, 28, 29], "25300": 27, "rrbot_actuator_without_feedback": 27, "rrbot_sensor_for_position_feedback": 27, "example_2": 28, "left_wheel_joint": 28, "right_wheel_joint": 28, "diffbot_base_control": 28, "diff": 28, "diffbotsystemhardwar": 28, "33333": 28, "calculate_dynam": 28, "diffbot_control": 28, "diffbot_descript": 28, "diffbot_system": 28, "example_3": 29, "fri": [29, 60], "abb": [29, 60], "yumi": 29, "schunk": [29, 60], "lwa4p": 29, "illeg": 29, "declin": 29, "faulti": 29, "ros2_control_demo_example_3": 29, "rrbot_system_multi_interfac": 29, "spawn": 29, "forward_acceleration_control": 29, "velocity_control": [29, 40, 44], "jointgroupvelocitycontrol": 29, "rrbotsystemmultiinterfacehardwar": 29, "po": [29, 37, 49], "78500": 29, "vel": [29, 55], "acc": 29, "control_lvl": 29, "forward_illegal1_control": 29, "forward_illegal2_control": 29, "1676209982": 29, "531163501": 29, "resource_manag": 29, "rrbotsystemmultiinterfac": 29, "did": 29, "531223835": 29, "reject": [29, 48, 49], "spawner": 29, "531717376": 29, "spawner_forward_illegal1_control": 29, "rrbot_multi_interface_forward_control": 29, "krc": 30, "prototyp": 30, "odri": [30, 60], "ros2_control_demo_example_4": 30, "rrbot_system_with_sensor": 30, "rrbotsystemwithsensor": 30, "rrbotsystemwithsensorhardwar": 30, "fts_broadcast": [30, 31], "force_torque_sensor_broadcast": [30, 31], "forcetorquesensorbroadcast": [30, 31], "wrench": [30, 31, 37], "republish": [30, 31], "wrenchstamp": [30, 31, 43], "stamp": [30, 31, 55, 56], "sec": [30, 31], "1676444704": [30, 31], "nanosec": [30, 31], "332221422": [30, 31], "tool_link": [30, 31], "946532964706421": 30, "0540995597839355": 30, "rrbot_with_sensor_control": 30, "pc": 31, "3d": [31, 33], "ros2_control_demo_example_5": 31, "rrbot_system_with_external_sensor": 31, "externalrrbotftsensor": 31, "externalrrbotforcetorquesensorhardwar": 31, "2126582860946655": 31, "3202226161956787": 31, "4302282333374023": 31, "540233612060547": 31, "647800624370575": 31, "7602499723434448": 31, "rrbot_with_external_sensor_control": 31, "rrbot_system_position_onli": 31, "external_rrbot_force_torque_sensor": 31, "mara": 32, "ros2_control_demo_example_6": 32, "rrbot_modular_actu": 32, "rrbotmodularjoint": 32, "rrbot_actu": 32, "queri": [33, 50], "enhanc": 33, "deploi": 33, "pattern": 33, "vendor": 33, "runtim": 33, "program": 33, "conform": 33, "newest": 33, "characterist": 33, "primari": [33, 50], "commerci": 33, "scratch": 33, "illustr": 33, "stl": 33, "dae": 33, "coars": 33, "mesh": 33, "fast": [33, 60], "collis": 33, "express": 33, "vertic": 33, "transform": [33, 39, 56], "rotat": [33, 39, 48, 56], "translat": [33, 39, 56], "proxim": 33, "face": 33, "co": 33, "planer": 33, "xy": 33, "plane": 33, "align": 33, "blender": 33, "begin": 33, "neg": [33, 37, 48], "pitch": 33, "yaw": 33, "repeat": 33, "robot_6_dof": 33, "base_link": [33, 37, 39, 55, 56], "link_0": 33, "inerti": 33, "mass": [33, 37], "inertia": 33, "ixx": 33, "ixi": 33, "ixz": 33, "iyi": 33, "iyz": 33, "izz": 33, "tool0": [33, 37], "base_joint": 33, "joint_1": 33, "link_1": 33, "061584": 33, "141592653589793": 33, "name_spac": 33, "class_nam": 33, "pi": [33, 48, 51], "enclos": 33, "previous": 33, "left": [33, 39, 47], "zero": [33, 37, 48, 49], "rel": [33, 49], "center": [33, 37], "uniform": 33, "consecut": 33, "motion": [33, 48], "subsequ": 33, "join": [33, 61], "speci": 33, "verifi": 33, "urdf_to_graphviz": 33, "r6bot": 33, "explain": 33, "robotsystem": 33, "ur5": 33, "five": 33, "hardware_interface_return_valu": 33, "hardware_interface_publ": 33, "commandinterfac": 33, "privat": 33, "memori": [33, 41], "alloc": 33, "establish": 33, "notabl": 33, "vari": 33, "fill": 33, "field": [33, 47, 49], "suppos": [33, 49], "tcp_force_torque_sensor": 33, "Their": 33, "pointer": 33, "state_interfaces_": 33, "nearli": 33, "command_interfaces_": 33, "constraint": [33, 37, 39, 41, 43, 45, 46, 48, 50, 51, 55, 56], "respons": 33, "turn": 33, "oppos": [33, 50], "tcp": [33, 37], "packet": 33, "robot_6_dof_hardwar": 33, "discov": 33, "library_nam": 33, "base_class_typ": 33, "human": 33, "notic": [33, 49], "just": 33, "add_librari": 33, "robot_hardwar": 33, "unlik": 33, "finit": 33, "transit": [33, 40, 49], "robotcontrol": 33, "nine": 33, "six": [33, 43], "callback": 33, "lifetim": 33, "restart": 33, "reconfigur": 33, "buffer": [33, 61], "transfer": 33, "eventu": 33, "mutex": 33, "guarante": [33, 49], "never": 33, "release_interfac": 33, "shut": 33, "free": [33, 39], "cleanup": 33, "r6bot_control": 33, "view_r6bot": 33, "ros2_control_demo_example_7": 33, "send_trajectori": 33, "circular": 33, "ros2_control_demo_example_8": 34, "rrbot_transmissions_system_position_onli": 34, "rrbottransmissionssystempositiononlyhardwar": 34, "transmission1": 34, "actuator1": 34, "transmission2": 34, "actuator2": 34, "383253": 34, "766505": 34, "53301": 34, "example_9": 35, "gz_ros2_control": 35, "ros2_control_demo_example_9": 35, "rrbot_gazebo": 35, "ax": [36, 37, 38, 43, 46, 51, 57], "traction": [36, 38, 55, 56, 57], "steerabl": [36, 38, 57], "generate_parameter_librari": [36, 37, 38, 39, 43, 44, 45, 46, 47, 48, 51, 53, 55, 56, 57], "parameter": [36, 38, 55, 57], "front_wheel_track": 36, "length": [36, 37, 46, 51, 55, 57], "en": [36, 38, 57], "wikipedia": [36, 38, 55, 57, 61], "wheelbas": [36, 38, 56, 57], "rear_wheel_track": 36, "distanc": [36, 38, 39, 50, 53, 56, 57], "front_wheels_radiu": [36, 57], "radiu": [36, 38, 39, 56, 57], "rear_wheels_radiu": [36, 57], "chainedcontrollerinterfac": 37, "kinematics_interfac": 37, "string_arrai": [37, 39, 44, 47, 48, 51, 55], "command_joint": [37, 48], "chainable_command_interfac": 37, "plugin_nam": 37, "plugin_packag": 37, "alpha": 37, "damp": 37, "coeffici": 37, "jacobian": 37, "pseudo": 37, "ft_sensor": 37, "filter_coeffici": 37, "filter": 37, "exponenti": 37, "fixed_world_fram": 37, "graviti": 37, "gravity_compens": 37, "cog": 37, "double_arrai": [37, 39, 46, 55, 56], "compens": 37, "equal": [37, 45, 46, 48], "weight": 37, "selected_ax": 37, "bool_arrai": 37, "rx": 37, "ry": 37, "rz": 37, "arrai": 37, "bound": 37, "0001": 37, "damping_ratio": 37, "ratio": 37, "zeta": 37, "sqrt": 37, "m": [37, 53, 55], "stiff": 37, "joint_damp": 37, "greater": [37, 45, 48, 56], "enable_parameter_update_without_reactiv": 37, "load_admittance_control": 37, "test_admittance_control": 37, "kuka_kr6": 37, "joint3": [37, 50], "joint4": [37, 50], "joint5": [37, 50], "joint6": [37, 50], "kinematics_interface_kdl": 37, "kinematicsinterfacekdl": 37, "stationari": 37, "group_nam": 37, "0005": 37, "ft_sensor_nam": 37, "link_6": 37, "005": 37, "calc": 37, "displac": 37, "x_d": 37, "828427": 37, "214": 37, "joint_refer": 37, "trajectory_msg": [37, 49, 50], "jointtrajectorypoint": [37, 49], "admittancecontrollerst": 37, "sensor_nam": [37, 43, 46, 53], "ackermann": [38, 40, 55], "probabl": 38, "front_wheel_radiu": 38, "rear_wheel_radiu": 38, "bodi": 39, "space": [39, 50], "hw_if_posit": [39, 40, 55], "hw_if_veloc": [39, 40, 55], "position_feedback": [39, 55], "use_stamped_vel": [39, 55, 56], "nav_msg": [39, 55], "estim": 39, "tf2_msg": [39, 55], "tfmessag": [39, 55], "enable_odom_tf": [39, 55, 56], "cmd_vel_out": 39, "publish_limited_veloc": 39, "left_wheel_nam": 39, "right_wheel_nam": 39, "wheel_separ": 39, "shortest": [39, 48, 56], "wrong": [39, 56], "behav": [39, 56], "correctli": [39, 56], "curv": [39, 56], "wheel_radiu": [39, 56], "slower": [39, 49, 56], "wheel_separation_multipli": 39, "todo": 39, "me": 39, "left_wheel_radius_multipli": 39, "right_wheel_radius_multipli": 39, "tf_frame_prefix_en": 39, "append": [39, 49], "tf_prefix": 39, "tf_frame_prefix": 39, "odom_id": 39, "base_frame_id": [39, 55, 56], "odom_frame_id": [39, 55, 56], "pose_covariance_diagon": [39, 55, 56], "covari": [39, 46, 55, 56], "tune": [39, 56], "sampl": [39, 49, 55, 56], "001": [39, 45, 56], "twist_covariance_diagon": [39, 55, 56], "speed": [39, 56], "open_loop": [39, 55, 56], "cmd_vel_timeout": [39, 56], "stale": [39, 48, 56], "velocity_rolling_window_s": [39, 55, 56], "publish_r": 39, "joint_limit": 39, "has_velocity_limit": 39, "has_acceleration_limit": 39, "has_jerk_limit": 39, "max_veloc": [39, 56], "numeric_limit": [39, 48, 56], "quiet_nan": [39, 48, 56], "min_veloc": [39, 56], "max_acceler": [39, 56], "min_acceler": [39, 56], "max_jerk": [39, 56], "min_jerk": [39, 56], "test_diff_drive_control": 39, "left_wheel": 39, "right_wheel": 39, "wheels_per_sid": 39, "commonli": 40, "effort_control": [40, 44, 45], "hw_if_acceler": 40, "hw_if_effort": 40, "represent": [40, 50], "rqt_joint_trajectory_control": [40, 50], "onconfigur": 40, "configure_control": 40, "unspecifi": 40, "is_async": 40, "asynchron": 40, "controllernam": 41, "person": 41, "get_node_opt": 41, "protect": 41, "reserv": 41, "importantli": 41, "ask": [41, 47], "sort": 41, "controller_name_namespac": 41, "controller_name_packag": 41, "ros2_control_test_asset": 41, "special": [42, 49, 52, 58], "wrapper": [43, 46, 53], "forcetorquesensor": 43, "6d": 43, "per": [43, 48], "less": [43, 51, 55], "example_nam": 43, "example_interfac": 43, "test_force_torque_sensor_broadcast": 43, "fts_sensor_fram": 43, "feedforward": 44, "multi_interface_forward_command_control": 44, "gripperactioncontrol": 45, "action_monitor_r": [45, 48, 50], "goal_toler": 45, "max_effort": 45, "allow_stal": 45, "stall": 45, "stall_velocity_threshold": 45, "threshold": 45, "stall_timeout": 45, "gripper_action_control": 45, "imusensor": 46, "orient": 46, "angular_veloc": 46, "linear_acceler": 46, "static_covariance_orient": 46, "static": 46, "row": 46, "static_covariance_angular_veloc": 46, "static_covariance_linear_acceler": 46, "test_imu_sensor_broadcast": 46, "imu_sensor": 46, "imu_sensor_fram": 46, "latter": 47, "matrix": [47, 55], "use_local_top": 47, "my_state_broadcast": 47, "extra_joint": 47, "map_interface_to_joint_st": 47, "usecas": 47, "hydraul": [47, 48], "relianc": 47, "techniqu": 47, "slightli": 47, "custom_interfac": 47, "kf_estimated_posit": 47, "derived_veloc": 47, "derived_effort": 47, "torque_sensor": 47, "current_sensor": 47, "jtc": [48, 51], "command_interface_type_combin": 48, "state_interface_type_combin": 48, "allow_partial_joints_go": [48, 50], "open_loop_control": [48, 50], "interpol": [48, 50, 51], "gain": [48, 51], "numer": 48, "allow_integration_in_goal_trajectori": [48, 49], "monitor": [48, 50], "interpolation_method": 48, "spline": 48, "allow_nonzero_velocity_at_trajectory_end": 48, "cmd_timeout": 48, "goal_tim": [48, 50], "toler": [48, 50], "jointtrajectori": [48, 49, 50], "stopped_velocity_toler": [48, 50], "infinit": 48, "amount": 48, "law": [48, 50], "k_": 48, "ff": 48, "v_d": 48, "k_p": 48, "k_i": 48, "sum": 48, "dt": 48, "k_d": 48, "s_d": 48, "i_clamp": 48, "clamp": [48, 51], "symmetr": 48, "ff_velocity_scal": 48, "feed": [48, 51], "angle_wraparound": [48, 51], "deprec": 48, "wrap": [48, 50, 51], "ie": [48, 49], "saniti": 49, "segment": [49, 50], "fault": 49, "reach": [49, 50], "datapoint": 49, "deduc": 49, "nor": 49, "discourag": 49, "yield": 49, "discontinu": [49, 50], "cubic": [49, 51], "quintic": [49, 51], "heun": 49, "grid": 49, "10m": 49, "deduct": 49, "nonzero": 49, "inconsist": 49, "overshoot": 49, "timestamp": 49, "arriv": 49, "necessarili": 49, "discard": 49, "substitut": 49, "smarter": 49, "preserv": 49, "later": 49, "flat": 49, "grei": 49, "red": 49, "traj": 49, "time_from_start": 49, "splice": 49, "held": [49, 50], "smooth": [49, 61], "longer": 49, "effect": 49, "Of": 49, "interest": 49, "adolfo": [49, 50], "rodriguez": [49, 50], "instant": 50, "citat": 50, "adapt": 50, "restrict": 50, "robust": 50, "clock": 50, "queu": 50, "preempt": 50, "cancel": 50, "notifi": 50, "abort": 50, "legal": 50, "subset": 50, "favor": 50, "violat": 50, "joint_trajectori": 50, "fire": 50, "sender": 50, "query_st": 50, "controller_st": [50, 51, 55], "cumbersom": 50, "jointtrajectorycontrollerst": 50, "querytrajectoryst": 50, "footnot": 50, "pidro": 51, "control_toolbox": [51, 61], "pd": 51, "theoret": 51, "misus": 51, "pid_control": 51, "pidcontrol": 51, "reference_and_state_dof_nam": 51, "reference_and_state_interfac": 51, "dof_nam": 51, "in_chained_mod": [51, 55], "multidofcommand": 51, "use_external_measured_st": 51, "measured_st": 51, "set_feedforward_control": 51, "std_srv": 51, "setbool": 51, "multidofstatestamp": 51, "antiwindup": 51, "i_clamp_max": 51, "i_clamp_min": 51, "feedforward_gain": 51, "rangesensor": 53, "radiation_typ": 53, "radiat": 53, "ultrason": 53, "infrar": 53, "field_of_view": 53, "arc": 53, "rad": [53, 55], "min_rang": 53, "minimum": 53, "max_rang": 53, "maximum": 53, "varianc": 53, "range_sensor_broadcast": 53, "test_range_sensor_broadcast": 53, "mendatori": 53, "range_sensor": 53, "range_sensor_fram": 53, "rqt": 54, "nomenclatur": 55, "unstamp": 55, "concret": 55, "tricylc": 55, "seer": 55, "front_steer": 55, "front_wheels_nam": 55, "rear_wheels_nam": 55, "traction_feedback_typ": 55, "reference_unstamp": 55, "steeringcontrollerstatu": 55, "reference_timeout": 55, "unwant": 55, "danger": 55, "behaviour": 55, "rear_wheels_state_nam": 55, "front_wheels_state_nam": 55, "number": 55, "averag": 55, "diagon": 55, "trail": 56, "axl": 56, "traction_joint_nam": 56, "steering_joint_nam": 56, "odom_only_twist": 56, "millisecond": 56, "500": 56, "publish_ackermann_command": 56, "old": 56, "max_deceler": 56, "min_deceler": 56, "max_posit": 56, "min_posit": 56, "wheel_track": 57, "isaac": 59, "webot": 59, "mujoco": 59, "algoryx": 59, "agx": 59, "canopen": 60, "ethercat": 60, "svh": 60, "finger": 60, "dimens": 60, "haptic": 60, "hoverboard": 60, "ndi": 60, "odriv": 60, "pca9685": 60, "bit": 60, "pwm": 60, "servo": 60, "clearpath": 60, "huski": 60, "a200": 60, "jackal": 60, "j100": 60, "warthog": 60, "w200": 60, "flexiv": 60, "rizon": 60, "husarion": 60, "rosbot": 60, "2r": 60, "pro": 60, "xl": 60, "openmanipul": 60, "igu": 60, "commonplac": 60, "kinova": 60, "kortex": 60, "gen3": 60, "pmb2": 60, "tiago": 60, "xarm": 60, "egm": 60, "iiqka": 60, "eci": 60, "sunris": 60, "kss": 60, "iiwa": 60, "lbr": 60, "med": 60, "mitsubishi": 60, "rv1a": 60, "overcom": 61, "idea": 61, "wide": 61, "toolkit": 61, "unreleas": 61, "question": 61, "wg": 61, "wednesdai": 61, "announc": 61, "discours": 61, "googl": 61, "bug": 61, "tracker": 61, "reproduc": 61, "regard": 61, "built": 61, "gmt": 61}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 21, 61], "process": [1, 11], "merg": 1, "write": [1, 16, 19, 33, 41], "document": [1, 10, 12, 61], "structur": [1, 5], "ci": 1, "configur": 1, "usag": [1, 2, 4], "gazebo_ros2_control": 2, "modifi": [2, 4], "build": [2, 3, 4, 21], "your": [2, 3, 4], "own": [2, 4], "To": [2, 4, 21], "run": [2, 3, 4, 21], "demo": [2, 4, 7, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "add": [2, 4, 7], "ros2_control": [2, 4, 5, 6, 7, 8, 9, 12, 17, 21, 33, 37, 40, 61], "tag": [2, 4], "urdf": [2, 3, 4, 33], "simpl": [2, 4], "setup": [2, 4], "us": [2, 4, 10, 11, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41, 50, 51], "mimic": [2, 4], "joint": [2, 4, 17, 50], "simul": [2, 4, 35, 59], "plugin": [2, 4, 33], "default": [2, 4], "behavior": [2, 4], "advanc": [2, 4], "custom": [2, 4], "set": [2, 4], "up": [2, 4], "control": [2, 3, 4, 5, 7, 10, 11, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 42, 44, 45, 50, 51, 52, 55, 58, 59], "gazebo_ros2_control_demo": 2, "get": 3, "start": 3, "instal": [3, 21], "binari": 3, "packag": [3, 21], "from": [3, 6, 7, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 51, 55, 60], "sourc": [3, 21], "architectur": 3, "manag": [3, 10, 11], "resourc": [3, 8, 10], "user": 3, "interfac": [3, 5, 17, 18, 20, 24, 29, 33, 34, 37, 39, 42, 44, 47, 50, 51, 52, 55, 58], "hardwar": [3, 5, 7, 11, 15, 16, 17, 19, 33, 44, 47, 50], "compon": [3, 5, 7, 14, 15, 16, 18, 19], "descript": [3, 33, 39, 50, 51, 55], "framework": 3, "robot": [3, 8, 21, 24, 27, 29, 30, 31, 32, 33, 34, 40, 60], "gz_ros2_control": 4, "gz_ros2_control_demo": 4, "differ": [5, 6, 15], "ros_control": [5, 6], "ro": [5, 6, 8, 37, 39, 42, 44, 52, 58, 59], "1": [5, 6, 23, 50], "class": [5, 10], "": [5, 39, 50, 51, 55], "access": 5, "migrat": [5, 6], "guid": [5, 6], "robothardwar": 5, "come": [6, 9], "between": 6, "2": [6, 37, 39, 42, 44, 52, 58], "distribut": 6, "project": 7, "idea": 7, "gsoc": 7, "2024": 7, "tutori": [7, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "mission": 7, "support": [7, 60], "semant": 7, "featur": [7, 12, 39, 50, 56], "pariti": 7, "ros1": 7, "present": 8, "2023": [8, 9], "10": [8, 24], "18": 8, "roscon": [8, 9], "workshop": [8, 9], "steroid": [8, 9], "02": 8, "meetup": 8, "munich": 8, "5": [8, 31], "2022": 8, "12": [8, 26], "industri": [8, 24, 30, 31, 34], "confer": [8, 9], "06": 8, "fr": 8, "2021": 8, "world": 8, "07": 8, "weekli": 8, "13": 8, "rosdevdai": 8, "05": 8, "diagram": 8, "imag": 8, "summari": 9, "slide": 9, "befor": 9, "peopl": 9, "chain": [10, 26], "cascad": 10, "scope": 10, "background": 10, "knowledg": 10, "motiv": 10, "purpos": 10, "implement": 10, "A": 10, "base": 10, "chainablecontrol": 10, "inner": 10, "activ": 10, "deactiv": 10, "debug": 10, "output": [10, 39], "close": 10, "remark": 10, "determin": 11, "subscrib": [11, 39, 50, 51, 55], "paramet": [11, 18, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 51, 52, 53, 55, 56, 57, 58], "handl": [11, 16], "multipl": [11, 29], "helper": 11, "script": 11, "spawner": 11, "unspawn": 11, "concept": [11, 12], "restart": 11, "all": 11, "api": 12, "foxi": 13, "galact": 13, "hardware_interfac": 13, "iron": 14, "jazzi": 14, "parser": 14, "updat": 15, "rate": 15, "By": 15, "count": 15, "loop": 15, "measur": 15, "elaps": 15, "time": 15, "guidelin": [16, 40], "best": [16, 40], "practic": [16, 40], "error": 16, "happen": 16, "dure": 16, "read": 16, "call": 16, "type": [17, 44, 47, 50], "sensor": [17, 30, 31, 43, 46, 53], "gpio": [17, 24], "exampl": [17, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 45, 46, 47, 48, 49, 53], "mock": 18, "gener": 18, "system": 18, "per": 18, "extern": [19, 31, 41], "refer": [19, 37, 39, 41, 50, 51, 55], "command": [20, 37, 47, 50, 51, 55, 56], "line": 20, "list_control": 20, "list_controller_typ": 20, "list_hardware_compon": 20, "list_hardware_interfac": 20, "load_control": 20, "reload_controller_librari": 20, "set_controller_st": 20, "set_hardware_component_st": 20, "switch_control": 20, "unload_control": 20, "view_controller_chain": 20, "what": 21, "you": 21, "can": 21, "find": 21, "thi": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "goal": 21, "overview": [21, 33], "local": 21, "debian": 21, "docker": 21, "view": 21, "quick": 21, "hint": 21, "rrbot": [23, 26, 35], "step": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "file": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 45, 46, 47, 48, 53], "carlikebot": 25, "14": 27, "modular": [27, 32], "actuat": [27, 32], "provid": 27, "state": [27, 37, 50, 51, 55], "diffbot": 28, "3": 29, "4": 30, "integr": [30, 59], "connect": 31, "6": 32, "separ": 32, "commun": [32, 59, 60, 61], "each": 32, "7": 33, "full": 33, "6dof": 33, "geometri": 33, "cmake": 33, "librari": 33, "launch": 33, "8": 34, "an": [34, 45, 46, 47, 48, 53], "expos": 34, "transmiss": 34, "9": 35, "ackermann_steering_control": 36, "admitt": 37, "topic": [37, 42, 44, 52, 58], "bicycle_steering_control": 38, "diff_drive_control": 39, "other": [39, 40, 50, 56], "feedback": 39, "publish": [39, 50, 51, 55], "mobil": 40, "manipul": 40, "broadcast": [40, 43, 46, 53], "common": 40, "new": 41, "effort_control": 42, "jointgroupeffortcontrol": 42, "forc": 43, "torqu": 43, "forward_command_control": 44, "gripper": 45, "action": [45, 50], "list": [45, 46, 47, 48, 53], "imu": 46, "joint_state_broadcast": 47, "detail": 48, "about": 48, "trajectori": [49, 50], "represent": 49, "interpol": 49, "method": 49, "none": 49, "spline": 49, "visual": 49, "replac": 49, "joint_trajectory_control": 50, "preemption": 50, "polici": 50, "servic": [50, 51], "further": 50, "inform": 50, "pid": 51, "execut": [51, 55], "logic": [51, 55], "preced": [51, 55], "position_control": 52, "jointgrouppositioncontrol": 52, "rang": 53, "rqt_joint_trajectory_control": 54, "steering_controllers_librari": 55, "tricycle_control": 56, "veloc": 56, "tricycle_steering_control": 57, "velocity_control": 58, "jointgroupvelocitycontrol": 58, "host": 59, "protocol": 60, "end": 60, "effector": 60, "non": 60, "devic": 60, "offici": 60, "manufactur": 60, "unoffici": 60, "welcom": 61, "develop": 61, "organis": 61}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "gazebo_ros2_control": [[2, "gazebo-ros2-control"]], "Usage": [[2, "usage"], [4, "usage"]], "Modifying or building your own": [[2, "modifying-or-building-your-own"], [4, "modifying-or-building-your-own"]], "To run the demo": [[2, "to-run-the-demo"], [4, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[2, "add-ros2-control-tag-to-a-urdf"], [4, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[2, "simple-setup"], [4, "simple-setup"]], "Using mimic joints in simulation": [[2, "using-mimic-joints-in-simulation"], [4, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[2, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[2, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[2, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[2, "set-up-controllers"], [4, "set-up-controllers"]], "gazebo_ros2_control_demos": [[2, "gazebo-ros2-control-demos"]], "Getting Started": [[3, "getting-started"]], "Installation": [[3, "installation"], [21, "installation"]], "Binary packages": [[3, "binary-packages"]], "Building from Source": [[3, "building-from-source"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [11, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"], [16, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[4, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[4, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[4, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[4, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[4, "gz-ros2-control-demos"]], "Differences to ros_control (ROS 1)": [[5, "differences-to-ros-control-ros-1"]], "Hardware Structures - classes": [[5, "hardware-structures-classes"]], "Hardware Interfaces": [[5, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[5, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[5, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[5, "robothardware-to-components"]], "Controller Migration": [[5, "controller-migration"]], "Migration Guides": [[6, "migration-guides"]], "Coming from ros_control (ROS 1)": [[6, "coming-from-ros-control-ros-1"]], "Between different ROS 2 distributions": [[6, "between-different-ros-2-distributions"]], "ros2_control": [[6, "ros2-control"], [12, "ros2-control"]], "ros2_controllers": [[6, "ros2-controllers"], [40, "ros2-controllers"]], "Project Ideas for GSoC 2024": [[7, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[7, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[7, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[7, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[7, "feature-parity-for-controllers-from-ros1"]], "Resources": [[8, "resources"]], "Presentations": [[8, "presentations"]], "2023-10-18 ROSCon Workshop: ros2_control on Steroids": [[8, "roscon-workshop-ros2-control-on-steroids"]], "2023-02 ROS Meetup Munich #5": [[8, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[8, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[8, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[8, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[8, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[8, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[8, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[8, "roscon-fr-2021"]], "Diagrams": [[8, "diagrams"]], "Images": [[8, "images"]], "ROSCon 2023 Workshop": [[9, "roscon-2023-workshop"]], "ros2_control on Steroids": [[9, "ros2-control-on-steroids"]], "Summary": [[9, "summary"]], "Slides": [[9, "slides"]], "Before coming to the conference": [[9, "before-coming-to-the-conference"]], "People": [[9, "people"]], "Controller Chaining / Cascade Control": [[10, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[10, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[10, "motivation-purpose-and-use"]], "Implementation": [[10, "implementation"]], "A Controller Base-Class: ChainableController": [[10, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[10, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[10, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[10, "debugging-outputs"]], "Closing remarks": [[10, "closing-remarks"]], "Determinism": [[11, "determinism"]], "Subscribers": [[11, "subscribers"], [39, "subscribers"], [51, "subscribers"], [55, "subscribers"]], "Parameters": [[11, "parameters"], [18, "parameters"], [36, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [42, "parameters"], [43, "parameters"], [44, "parameters"], [45, "parameters"], [46, "parameters"], [47, "parameters"], [51, "parameters"], [52, "parameters"], [53, "parameters"], [55, "parameters"], [56, "parameters"], [57, "parameters"], [58, "parameters"]], "Handling Multiple Controller Managers": [[11, "handling-multiple-controller-managers"]], "Helper scripts": [[11, "helper-scripts"]], "spawner": [[11, "spawner"]], "unspawner": [[11, "unspawner"]], "Using the Controller Manager in a Process": [[11, "using-the-controller-manager-in-a-process"]], "Concepts": [[11, "concepts"], [12, "concepts"]], "Restarting all controllers": [[11, "restarting-all-controllers"]], "Restarting hardware": [[11, "restarting-hardware"]], "API Documentation": [[12, "api-documentation"]], "Features": [[12, "features"]], "Foxy to Galactic": [[13, "foxy-to-galactic"]], "hardware_interface": [[13, "hardware-interface"]], "Iron to Jazzy": [[14, "iron-to-jazzy"]], "component parser": [[14, "component-parser"]], "Different update rates for Hardware Components": [[15, "different-update-rates-for-hardware-components"]], "By counting loops": [[15, "by-counting-loops"]], "By measuring elapsed time": [[15, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[16, "guidelines-and-best-practices"], [40, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[16, "handling-of-errors-that-happen-during-read-and-write-calls"]], "ros2_control hardware interface types": [[17, "ros2-control-hardware-interface-types"]], "Joints": [[17, "joints"]], "Sensors": [[17, "sensors"]], "GPIOs": [[17, "gpios"]], "Examples": [[17, "examples"], [21, "examples"]], "Mock Components": [[18, "mock-components"]], "Generic System": [[18, "generic-system"]], "Per-interface Parameters": [[18, "per-interface-parameters"]], "Writing a Hardware Component": [[19, "writing-a-hardware-component"]], "Useful External References": [[19, "useful-external-references"], [41, "useful-external-references"]], "Command Line Interface": [[20, "command-line-interface"]], "list_controllers": [[20, "list-controllers"]], "list_controller_types": [[20, "list-controller-types"]], "list_hardware_components": [[20, "list-hardware-components"]], "list_hardware_interfaces": [[20, "list-hardware-interfaces"]], "load_controller": [[20, "load-controller"]], "reload_controller_libraries": [[20, "reload-controller-libraries"]], "set_controller_state": [[20, "set-controller-state"]], "set_hardware_component_state": [[20, "set-hardware-component-state"]], "switch_controllers": [[20, "switch-controllers"]], "unload_controller": [[20, "unload-controller"]], "view_controller_chains": [[20, "view-controller-chains"]], "Demos": [[21, "demos"]], "What you can find in this repository": [[21, "what-you-can-find-in-this-repository"]], "Goals": [[21, "goals"]], "Examples Overview": [[21, "examples-overview"]], "Local installation": [[21, "local-installation"]], "Build from debian packages": [[21, "build-from-debian-packages"]], "Build from source": [[21, "build-from-source"]], "Using Docker": [[21, "using-docker"]], "To view the robot": [[21, "to-view-the-robot"]], "To run the ros2_control demos": [[21, "to-run-the-ros2-control-demos"]], "Quick Hints": [[21, "quick-hints"]], "Example 1: RRBot": [[23, "example-1-rrbot"]], "Tutorial steps": [[23, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [29, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"], [32, "tutorial-steps"], [34, "tutorial-steps"], [35, "tutorial-steps"]], "Files used for this demos": [[23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [29, "files-used-for-this-demos"], [31, "files-used-for-this-demos"], [32, "files-used-for-this-demos"], [34, "files-used-for-this-demos"], [35, "files-used-for-this-demos"]], "Controllers from this demo": [[23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [29, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"], [32, "controllers-from-this-demo"], [34, "controllers-from-this-demo"], [35, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[24, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[25, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[26, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[27, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[28, "diffbot"]], "Example 3: Robots with multiple interfaces": [[29, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[30, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[30, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[31, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[32, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[33, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[33, "ros2-control-overview"]], "Writing a URDF": [[33, "writing-a-urdf"]], "Geometry": [[33, "geometry"]], "URDF file": [[33, "urdf-file"]], "Writing a hardware interface": [[33, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[33, "plugin-description-file-hardware"]], "CMake library (hardware)": [[33, "cmake-library-hardware"]], "Writing a controller": [[33, "writing-a-controller"]], "Plugin description file (controller)": [[33, "plugin-description-file-controller"]], "CMake library (controller)": [[33, "cmake-library-controller"]], "Launching the example": [[33, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[34, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[35, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[36, "ackermann-steering-controller"]], "Admittance Controller": [[37, "admittance-controller"]], "ROS 2 interface of the controller": [[37, "ros-2-interface-of-the-controller"], [42, "ros-2-interface-of-the-controller"], [44, "ros-2-interface-of-the-controller"], [52, "ros-2-interface-of-the-controller"], [58, "ros-2-interface-of-the-controller"]], "Topics": [[37, "topics"], [42, "topics"], [44, "topics"], [52, "topics"], [58, "topics"]], "ros2_control interfaces": [[37, "ros2-control-interfaces"]], "References": [[37, "references"], [39, "references"], [50, "references"]], "States": [[37, "states"], [50, "states"], [51, "states"], [55, "states"]], "Commands": [[37, "commands"], [47, "commands"], [50, "commands"], [51, "commands"], [55, "commands"]], "bicycle_steering_controller": [[38, "bicycle-steering-controller"]], "diff_drive_controller": [[39, "diff-drive-controller"]], "Other features": [[39, "other-features"], [50, "other-features"], [56, "other-features"]], "Description of controller\u2019s interfaces": [[39, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"], [51, "description-of-controller-s-interfaces"], [55, "description-of-controller-s-interfaces"]], "Feedback": [[39, "feedback"]], "Output": [[39, "output"]], "ROS 2 Interfaces": [[39, "ros-2-interfaces"]], "Publishers": [[39, "publishers"], [50, "publishers"], [51, "publishers"], [55, "publishers"]], "Controllers for Mobile Robots": [[40, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[40, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[40, "broadcasters"]], "Common Controller Parameters": [[40, "common-controller-parameters"]], "Writing a new controller": [[41, "writing-a-new-controller"]], "effort_controllers": [[42, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[42, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[43, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[44, "forward-command-controller"]], "Hardware interface type": [[44, "hardware-interface-type"], [47, "hardware-interface-type"]], "Gripper Action Controller": [[45, "gripper-action-controller"]], "List of parameters": [[45, "list-of-parameters"], [46, "list-of-parameters"], [47, "list-of-parameters"], [48, "list-of-parameters"], [53, "list-of-parameters"]], "An example parameter file": [[45, "an-example-parameter-file"], [46, "an-example-parameter-file"], [47, "an-example-parameter-file"], [48, "an-example-parameter-file"], [53, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[46, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[47, "joint-state-broadcaster"]], "Details about parameters": [[48, "details-about-parameters"]], "Trajectory Representation": [[49, "trajectory-representation"]], "Interpolation Method none": [[49, "interpolation-method-none"]], "Interpolation Method spline": [[49, "interpolation-method-spline"]], "Visualized Examples": [[49, "visualized-examples"]], "Trajectory Replacement": [[49, "trajectory-replacement"]], "joint_trajectory_controller": [[50, "joint-trajectory-controller"]], "Hardware interface types": [[50, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[50, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[50, "preemption-policy"]], "Actions 1": [[50, "actions"]], "Subscriber 1": [[50, "subscriber"]], "Services": [[50, "services"], [51, "services"]], "Further information": [[50, "further-information"]], "PID Controller": [[51, "pid-controller"]], "Execution logic of the controller": [[51, "execution-logic-of-the-controller"], [55, "execution-logic-of-the-controller"]], "Using the controller": [[51, "using-the-controller"]], "References (from a preceding controller)": [[51, "references-from-a-preceding-controller"], [55, "references-from-a-preceding-controller"]], "position_controllers": [[52, "position-controllers"]], "position_controllers/JointGroupPositionController": [[52, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[53, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[54, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[55, "steering-controllers-library"]], "tricycle_controller": [[56, "tricycle-controller"]], "Velocity commands": [[56, "velocity-commands"]], "tricycle_steering_controller": [[57, "tricycle-steering-controller"]], "velocity_controllers": [[58, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[58, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[59, "simulator-integrations"]], "Hosted by ros-controls": [[59, "hosted-by-ros-controls"]], "Community": [[59, "community"]], "Supported Robots": [[60, "supported-robots"]], "Communication protocols": [[60, "communication-protocols"]], "End-effectors": [[60, "end-effectors"]], "Non robot-devices": [[60, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[60, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[60, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation!": [[61, "welcome-to-the-ros2-control-documentation"]], "ros2_control Repositories": [[61, "ros2-control-repositories"]], "Development Organisation and Communication": [[61, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file +Search.setIndex({"docnames": ["doc/acknowledgements/acknowledgements", "doc/contributing/contributing", "doc/gazebo_ros2_control/doc/index", "doc/getting_started/getting_started", "doc/gz_ros2_control/doc/index", "doc/migration/differences_to_ros1", "doc/migration/migration", "doc/project_ideas", "doc/resources/resources", "doc/resources/roscon2023_workshop", "doc/ros2_control/controller_manager/doc/controller_chaining", "doc/ros2_control/controller_manager/doc/userdoc", "doc/ros2_control/doc/index", "doc/ros2_control/doc/migration/Foxy", "doc/ros2_control/doc/migration/Iron", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component", "doc/ros2_control/ros2controlcli/doc/userdoc", "doc/ros2_control_demos/doc/index", "doc/ros2_control_demos/doc/run_from_docker", "doc/ros2_control_demos/example_1/doc/userdoc", "doc/ros2_control_demos/example_10/doc/userdoc", "doc/ros2_control_demos/example_11/doc/userdoc", "doc/ros2_control_demos/example_12/doc/userdoc", "doc/ros2_control_demos/example_14/doc/userdoc", "doc/ros2_control_demos/example_2/doc/userdoc", "doc/ros2_control_demos/example_3/doc/userdoc", "doc/ros2_control_demos/example_4/doc/userdoc", "doc/ros2_control_demos/example_5/doc/userdoc", "doc/ros2_control_demos/example_6/doc/userdoc", "doc/ros2_control_demos/example_7/doc/userdoc", "doc/ros2_control_demos/example_8/doc/userdoc", "doc/ros2_control_demos/example_9/doc/userdoc", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc", "doc/ros2_controllers/admittance_controller/doc/userdoc", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc", "doc/ros2_controllers/diff_drive_controller/doc/userdoc", "doc/ros2_controllers/doc/controllers_index", "doc/ros2_controllers/doc/writing_new_controller", "doc/ros2_controllers/effort_controllers/doc/userdoc", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/forward_command_controller/doc/userdoc", "doc/ros2_controllers/gripper_controllers/doc/userdoc", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/pid_controller/doc/userdoc", "doc/ros2_controllers/position_controllers/doc/userdoc", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc", "doc/ros2_controllers/steering_controllers_library/doc/userdoc", "doc/ros2_controllers/tricycle_controller/doc/userdoc", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc", "doc/ros2_controllers/velocity_controllers/doc/userdoc", "doc/simulators/simulators", "doc/supported_robots/supported_robots", "index"], "filenames": ["doc/acknowledgements/acknowledgements.rst", "doc/contributing/contributing.rst", "doc/gazebo_ros2_control/doc/index.rst", "doc/getting_started/getting_started.rst", "doc/gz_ros2_control/doc/index.rst", "doc/migration/differences_to_ros1.rst", "doc/migration/migration.rst", "doc/project_ideas.rst", "doc/resources/resources.rst", "doc/resources/roscon2023_workshop.rst", "doc/ros2_control/controller_manager/doc/controller_chaining.rst", "doc/ros2_control/controller_manager/doc/userdoc.rst", "doc/ros2_control/doc/index.rst", "doc/ros2_control/doc/migration/Foxy.rst", "doc/ros2_control/doc/migration/Iron.rst", "doc/ros2_control/hardware_interface/doc/different_update_rates_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/hardware_interface_types_userdoc.rst", "doc/ros2_control/hardware_interface/doc/mock_components_userdoc.rst", "doc/ros2_control/hardware_interface/doc/writing_new_hardware_component.rst", "doc/ros2_control/ros2controlcli/doc/userdoc.rst", "doc/ros2_control_demos/doc/index.rst", "doc/ros2_control_demos/doc/run_from_docker.rst", "doc/ros2_control_demos/example_1/doc/userdoc.rst", "doc/ros2_control_demos/example_10/doc/userdoc.rst", "doc/ros2_control_demos/example_11/doc/userdoc.rst", "doc/ros2_control_demos/example_12/doc/userdoc.rst", "doc/ros2_control_demos/example_14/doc/userdoc.rst", "doc/ros2_control_demos/example_2/doc/userdoc.rst", "doc/ros2_control_demos/example_3/doc/userdoc.rst", "doc/ros2_control_demos/example_4/doc/userdoc.rst", "doc/ros2_control_demos/example_5/doc/userdoc.rst", "doc/ros2_control_demos/example_6/doc/userdoc.rst", "doc/ros2_control_demos/example_7/doc/userdoc.rst", "doc/ros2_control_demos/example_8/doc/userdoc.rst", "doc/ros2_control_demos/example_9/doc/userdoc.rst", "doc/ros2_controllers/ackermann_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/admittance_controller/doc/userdoc.rst", "doc/ros2_controllers/bicycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/diff_drive_controller/doc/userdoc.rst", "doc/ros2_controllers/doc/controllers_index.rst", "doc/ros2_controllers/doc/writing_new_controller.rst", "doc/ros2_controllers/effort_controllers/doc/userdoc.rst", "doc/ros2_controllers/force_torque_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/forward_command_controller/doc/userdoc.rst", "doc/ros2_controllers/gripper_controllers/doc/userdoc.rst", "doc/ros2_controllers/imu_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_state_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/parameters.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/trajectory.rst", "doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/pid_controller/doc/userdoc.rst", "doc/ros2_controllers/position_controllers/doc/userdoc.rst", "doc/ros2_controllers/range_sensor_broadcaster/doc/userdoc.rst", "doc/ros2_controllers/rqt_joint_trajectory_controller/doc/userdoc.rst", "doc/ros2_controllers/steering_controllers_library/doc/userdoc.rst", "doc/ros2_controllers/tricycle_controller/doc/userdoc.rst", "doc/ros2_controllers/tricycle_steering_controller/doc/userdoc.rst", "doc/ros2_controllers/velocity_controllers/doc/userdoc.rst", "doc/simulators/simulators.rst", "doc/supported_robots/supported_robots.rst", "index.rst"], "titles": ["Acknowledgements", "Contributing", "gazebo_ros2_control", "Getting Started", "gz_ros2_control", "Differences to ros_control (ROS 1)", "Migration Guides", "Project Ideas for GSoC 2024", "Resources", "ROSCon 2023 Workshop", "Controller Chaining / Cascade Control", "Controller Manager", "ros2_control", "Foxy to Galactic", "Iron to Jazzy", "Different update rates for Hardware Components", "Hardware Components", "ros2_control hardware interface types", "Mock Components", "Writing a Hardware Component", "Command Line Interface", "Demos", "<no title>", "Example 1: RRBot", "Example 10: Industrial robot with GPIO interfaces", "CarlikeBot", "Example 12: Controller chaining with RRBot", "Example 14: Modular robot with actuators not providing states", "DiffBot", "Example 3: Robots with multiple interfaces", "Example 4: Industrial robot with integrated sensor", "Example 5: Industrial robot with externally connected sensor", "Example 6: Modular Robots with separate communication to each actuator", "Example 7: Full tutorial with a 6DOF robot", "Example 8: Industrial Robots with an exposed transmission interface", "Example 9: Simulation with RRBot", "ackermann_steering_controller", "Admittance Controller", "bicycle_steering_controller", "diff_drive_controller", "ros2_controllers", "Writing a new controller", "effort_controllers", "Force Torque Sensor Broadcaster", "forward_command_controller", "Gripper Action Controller", "IMU Sensor Broadcaster", "joint_state_broadcaster", "Details about parameters", "Trajectory Representation", "joint_trajectory_controller", "PID Controller", "position_controllers", "Range Sensor Broadcaster", "rqt_joint_trajectory_controller", "steering_controllers_library", "tricycle_controller", "tricycle_steering_controller", "velocity_controllers", "Simulator Integrations", "Supported Robots", "Welcome to the ros2_control documentation!"], "terms": {"The": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 61], "follow": [0, 1, 2, 3, 4, 5, 7, 9, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 40, 41, 42, 48, 49, 50, 51, 52, 57, 58, 61], "peopl": [0, 1], "were": [0, 7, 33, 39, 49, 50], "ros2_control": [0, 1, 3, 11, 14, 15, 16, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 41, 59], "framework": [0, 1, 5, 7, 8, 9, 11, 12, 16, 17, 18, 20, 21, 33, 40, 41, 47, 61], "show": [0, 1, 2, 3, 4, 8, 9, 11, 13, 17, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 47, 49], "review": [0, 1, 7, 61], "activ": [0, 1, 2, 3, 4, 5, 11, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 48, 50, 51], "contribut": [0, 3, 8], "recent": [0, 19, 41], "all": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 13, 14, 17, 18, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 41, 43, 45, 46, 47, 48, 49, 50, 53, 60], "time": [0, 1, 5, 7, 8, 9, 11, 18, 20, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 39, 41, 43, 48, 49, 50, 61], "contrib": 0, "dure": [0, 21, 33, 48, 50], "past": [0, 49], "12": [0, 21, 60], "month": 0, "stat": [0, 1], "commit": [0, 1], "count": [0, 48], "line": [0, 3, 12, 13, 19, 23, 33, 41, 47, 49], "chang": [0, 1, 3, 5, 8, 11, 13, 14, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 48, 49, 50, 53], "last": [0, 13, 15, 19, 33, 37, 41, 48, 49, 50], "date": 0, "christoph": 0, "fr\u00f6hlich": 0, "christophfroehlich": 0, "399": 0, "48719": 0, "2024": [0, 61], "01": [0, 25, 37, 39, 45, 48, 50, 56], "16t20": 0, "37": 0, "24z": 0, "benc": [0, 7, 8, 9], "magyar": [0, 7, 8, 9], "bmagyar": [0, 9], "128": 0, "8600": 0, "2023": 0, "11": [0, 21], "16t23": 0, "32": [0, 61], "53z": 0, "dr": [0, 8], "deni": [0, 7, 8, 9], "destogl": [0, 39], "35": [0, 55], "5628": 0, "09": [0, 61], "26t19": 0, "07": 0, "58z": 0, "fetch": [0, 15], "04": [0, 9, 11, 61], "03": [0, 25, 50], "27": 0, "utc": 0, "369": 0, "77494": 0, "2022": 0, "10": [0, 2, 4, 14, 21, 29, 37, 39, 53, 55, 56], "01t10": 0, "36": 0, "22z": 0, "436": 0, "64382": 0, "671": 0, "58546": 0, "05t16": 0, "42": 0, "05z": 0, "assign": [0, 15, 41], "finish": 0, "rate": [0, 12, 16, 25, 28, 39, 40, 48, 49, 50], "575": 0, "402": 0, "0": [0, 2, 3, 4, 10, 14, 15, 17, 18, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57], "70": 0, "03t11": 0, "19z": 0, "243": 0, "219": 0, "90": [0, 33], "08t21": 0, "46": 0, "52z": 0, "477": 0, "108": 0, "23": [0, 3, 37], "04t06": 0, "34": 0, "04z": 0, "1439": 0, "1147": 0, "80": 0, "1159": 0, "604": 0, "52": [0, 53], "268": 0, "244": 0, "91": 0, "have": [0, 1, 3, 5, 7, 9, 10, 11, 13, 14, 17, 18, 19, 21, 23, 24, 26, 28, 29, 33, 36, 37, 38, 40, 41, 47, 48, 50, 51, 57], "develop": [0, 1, 8, 18, 19, 21, 41], "thi": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61], "project": [0, 1, 61], "provid": [0, 2, 3, 4, 7, 8, 10, 11, 17, 18, 19, 21, 23, 26, 29, 30, 31, 32, 33, 34, 35, 37, 41, 47, 48, 49, 50, 55, 61], "valuabl": 0, "submit": [0, 1, 8, 59, 60], "pull": [0, 9, 19], "request": [0, 5, 19, 33, 47, 61], "see": [0, 1, 3, 5, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 43, 46, 48, 50, 53, 55, 57], "more": [0, 2, 3, 4, 5, 7, 9, 11, 14, 18, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 50, 57], "inform": [0, 1, 2, 3, 4, 10, 18, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 41, 61], "sai": 0, "kishor": 0, "kothakota": 0, "saikishor": 0, "50": [0, 3, 11, 28, 39], "9190": 0, "24t09": 0, "29": 0, "50z": 0, "tomislav": 0, "petkovi\u0107": 0, "petkovich": 0, "1": [0, 1, 2, 3, 4, 7, 8, 14, 15, 17, 19, 21, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 41, 45, 48, 49, 53, 55], "5774": 0, "05": [0, 37, 50, 61], "26t21": 0, "42z": 0, "paul": 0, "gesel": 0, "pac48": 0, "2933": 0, "08": 0, "04t08": 0, "02": [0, 39], "27z": 0, "reza": 0, "kermani": 0, "ark3r": 0, "9": [0, 7, 9, 21, 37, 46], "2043": 0, "06": 0, "01t07": 0, "45": [0, 18], "felix": 0, "exner": 0, "fexner": 0, "fmauch": 0, "19": 0, "1328": 0, "16t15": 0, "21": [0, 55], "48z": 0, "alejandro": 0, "hern\u00e1ndez": 0, "cordero": 0, "ahcord": 0, "48": [0, 2, 4, 14], "1313": 0, "15t14": 0, "06z": 0, "none": [0, 10, 41, 47, 48, 50], "flochr": 0, "2": [0, 1, 2, 3, 4, 7, 8, 9, 10, 15, 17, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 50, 55, 60, 61], "888": 0, "07t00": 0, "17": [0, 9], "30z": 0, "guihom": 0, "guihomework": 0, "692": 0, "08t10": 0, "30": [0, 2, 4, 25, 28], "alex": 0, "moriarti": 0, "5": [0, 19, 21, 23, 24, 26, 27, 29, 30, 32, 33, 34, 35, 37, 39, 49, 55, 60], "581": 0, "07t20": 0, "00z": 0, "lennart": 0, "nachtigal": 0, "firesurf": 0, "417": 0, "04t19": 0, "55z": 0, "m\u00e1rk": 0, "szitan": 0, "vx792": 0, "351": 0, "17t20": 0, "16": [0, 60], "26z": 0, "maximilian": 0, "schik": 0, "tadach": 0, "337": 0, "20t19": 0, "40z": 0, "mateu": 0, "menez": 0, "mateusmenezes95": 0, "314": 0, "08t08": 0, "22": [0, 9, 11], "manuel": 0, "muth": 0, "mamueluth": 0, "07t21": 0, "ben": 0, "holden": 0, "bobblebal": 0, "267": 0, "01t15": 0, "24": [0, 8, 9], "34z": 0, "thibault": 0, "poignonec": 0, "tpoignonec": 0, "145": 0, "44z": 0, "chama1176": 0, "140": 0, "06t18": 0, "41z": 0, "noel": 0, "jim\u00e9nez": 0, "garc\u00eda": 0, "noel215": 0, "7": [0, 8, 9, 21, 24, 28, 37, 53, 55, 60], "125": 0, "22t09": 0, "11z": 0, "github": [0, 3, 7, 9, 12, 21, 33, 40, 59, 60, 61], "action": [0, 2, 4, 10, 48], "bot": 0, "123": 0, "11t09": 0, "03z": 0, "franz": 0, "rammerstorf": 0, "franzrammerstorf": 0, "117": 0, "30t20": 0, "25": 0, "35z": 0, "gwalck": 0, "109": 0, "23t08": 0, "40": [0, 39], "ethan": 0, "k": 0, "gordon": 0, "egordon": 0, "102": 0, "26t17": 0, "38": [0, 2, 4, 14], "bailac": 0, "68": 0, "08t11": 0, "14": [0, 21, 55, 60], "49z": 0, "olivi": 0, "stass": 0, "3": [0, 2, 3, 4, 7, 14, 17, 18, 20, 21, 23, 24, 26, 27, 28, 30, 31, 32, 33, 34, 37, 49, 50, 51], "49": 0, "26t02": 0, "31": 0, "nil": 0, "christian": 0, "isek": 0, "christianisek": 0, "27t11": 0, "31z": 0, "silvio": 0, "traversaro": 0, "4": [0, 17, 21, 25, 27, 29, 31, 34, 37, 53], "43": [0, 3, 17, 28], "16t22": 0, "08z": 0, "abishalini": 0, "sivaraman": 0, "27t20": 0, "28": [0, 55], "wiktor": 0, "bajor": 0, "99": [0, 11], "12t15": 0, "johann": [0, 8], "huemer": 0, "huemerj": 0, "16t14": 0, "bordallo": 0, "greatalexand": 0, "10t22": 0, "bijoua29": 0, "09t16": 0, "39": 0, "39z": 0, "graziato": 0, "david": 0, "fixit": 0, "mosfet80": 0, "14t06": 0, "patrick": 0, "roncagliolo": 0, "roncapat": 0, "15": [0, 14], "28t16": 0, "chri": 0, "lalancett": 0, "clalancett": 0, "21t06": 0, "wecht": 0, "cwecht": 0, "04t13": 0, "26": 0, "57z": 0, "lui": 0, "camero": 0, "16t19": 0, "55": 0, "soham": 0, "patil": 0, "soham2560": 0, "29t16": 0, "51": 0, "33z": 0, "ruddick": 0, "lawrenc": 0, "mrjogo": 0, "26t09": 0, "andyz": 0, "8": [0, 21, 37], "31t19": 0, "47": 0, "lar": 0, "tingelstad": 0, "tingelst": 0, "17t10": 0, "38z": 0, "toni": [0, 8], "baltovski": 0, "tonybaltovski": 0, "19t11": 0, "21z": 0, "marq": 0, "rasmussen": 0, "marqrazz": 0, "6": [0, 21, 23, 33, 37], "02t17": 0, "25z": 0, "sangtaekle": 0, "sangteak601": 0, "17t21": 0, "58": 0, "stephani": 0, "eng": 0, "19t21": 0, "mauric": 0, "mauricesvp": 0, "07t10": 0, "mhubii": 0, "19t14": 0, "tobia": 0, "fischer": 0, "14t08": 0, "51z": 0, "carlo": 0, "rizzardo": 0, "c": [0, 7, 11, 17, 19, 20, 23, 33], "rizz": 0, "12t12": 0, "scott": 0, "logan": 0, "cottsai": 0, "dominik": 0, "nowak": 0, "dominikn": 0, "05t08": 0, "yasushi": 0, "shoji": 0, "yashi": 0, "27t09": 0, "g": [0, 1, 2, 3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 19, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 37, 41, 42, 47, 52, 55, 58, 61], "A": [0, 3, 8, 17, 19, 21, 30, 31, 40, 41, 47, 49, 50], "vd": 0, "hoorn": 0, "gavanderhoorn": 0, "16t21": 0, "54": 0, "16z": 0, "jule": 0, "carpenti": 0, "julescarpenti": 0, "02t23": 0, "daniel": 0, "azanov": 0, "muritan": 0, "erik": 0, "ecmjohnson": 0, "16t08": 0, "mike": 0, "emeri": 0, "emereum": 0, "20t12": 0, "02z": 0, "v": [0, 20, 24, 30, 37, 48], "lu": 0, "dlu": 0, "15t07": 0, "09z": 0, "han": 0, "martin": 0, "duringhof": 0, "13t17": 0, "45z": 0, "max": [0, 2, 3, 4, 17, 33, 45], "polzin": 0, "maxpolzin": 0, "13t08": 0, "tam\u00e1": 0, "pep\u00f3": 0, "groebehavn": 0, "30t21": 0, "reuter": 0, "cpr": 0, "fer": 0, "27t10": 0, "karsten": 0, "knese": 0, "karsten1987": 0, "104": 0, "20686": 0, "2021": 0, "19t06": 0, "57": 0, "223": 0, "20655": 0, "13t22": 0, "56": 0, "jordan": 0, "palacio": 0, "10498": 0, "16t18": 0, "10393": 0, "15t18": 0, "9259": 0, "victor": 0, "lopez": 0, "8797": 0, "28t08": 0, "32z": 0, "5796": 0, "18t10": 0, "tyler": 0, "weaver": 0, "tylerjw": 0, "3929": 0, "54z": 0, "jaron": 0, "l": 0, "41": 0, "3906": 0, "29t19": 0, "colin": 0, "mackenzi": 0, "guru": 0, "florida": 0, "3385": 0, "2020": 0, "10t09": 0, "53": 0, "najjar": [0, 8], "tonynajjar": 0, "3260": 0, "19t13": 0, "59": 0, "36z": 0, "mahaarbo": 0, "2753": 0, "07t12": 0, "2734": 0, "03t12": 0, "2725": 0, "05t11": 0, "37z": 0, "shane": 0, "loretz": 0, "sloretz": 0, "2661": 0, "2019": 0, "22t23": 0, "44": 0, "2549": 0, "ddengster": 0, "2476": 0, "01t16": 0, "dave": 0, "coleman": 0, "davetcoleman": 0, "1818": 0, "2014": 0, "28t00": 0, "12z": 0, "1444": 0, "jafar": 0, "uru\u00e7": 0, "jafarabdi": 0, "1438": 0, "12t07": 0, "1403": 0, "19t09": 0, "jonathan": 0, "bohren": 0, "jbohren": 0, "1365": 0, "2013": 0, "03t20": 0, "13z": 0, "jo\u00e3o": 0, "torr": 0, "borg": 0, "borgesjvt": 0, "1211": 0, "matt": 0, "reynold": 0, "matthew": 0, "1201": 0, "2018": 0, "14t20": 0, "13": [0, 9, 21], "56z": 0, "970": 0, "21t01": 0, "00": [0, 9], "livanov93": 0, "916": 0, "23t07": 0, "891": 0, "kenji": 0, "brameld": 0, "ijnek": 0, "749": 0, "720": 0, "2015": 0, "22t20": 0, "nour": 0, "saeed": 0, "d": [0, 21, 23, 37, 48, 51], "547": 0, "17z": 0, "bilal": 0, "gill": 0, "bgill92": 0, "376": 0, "08t09": 0, "18z": 0, "august": 0, "bourgoi": 0, "augustebourgoi": 0, "21t09": 0, "ana": 0, "abou": 0, "allaban": 0, "piraka9011": 0, "306": 0, "18t01": 0, "michael": 0, "wiznitz": 0, "mechwiz": 0, "294": 0, "24t06": 0, "j": [0, 51], "rosal": 0, "carlosjoserg": 0, "23t16": 0, "yutaka": 0, "kondo": 0, "youtalk": 0, "256": 0, "14t05": 0, "akash": 0, "ace314159": 0, "247": 0, "aliasgar": 0, "khimani": 0, "novusedg": 0, "240": 0, "29t10": 0, "ikamii": 0, "235": 0, "21t08": 0, "xi": 0, "huang": 0, "hhhm": 0, "229": 0, "parth": 0, "chopra": 0, "parthc": 0, "rob": 0, "224": 0, "12t20": 0, "b\u0142a\u017cej": 0, "sowa": 0, "bjsowa": 0, "213": 0, "21t18": 0, "mikael": 0, "argueda": 0, "mikaelargueda": 0, "212": 0, "17t18": 0, "195": 0, "amarant": 0, "192": 0, "26t07": 0, "23z": 0, "andi": [0, 8], "mcevoi": 0, "mcevoyandi": 0, "190": 0, "14t07": 0, "28z": 0, "giovanni": 0, "kineticsystem": 0, "188": 0, "12t19": 0, "mathia": 0, "l\u00fcdtke": 0, "luedtk": 0, "187": 0, "2017": 0, "20t23": 0, "austin": 0, "deric": 0, "austinder": 0, "155": 0, "03t19": 0, "kvk": 0, "praneeth": 0, "kvkpraneeth": 0, "143": 0, "02t18": 0, "schulz": 0, "schulze18": 0, "02t22": 0, "33": 0, "15z": 0, "kenneth": 0, "bogert": 0, "kbogert": 0, "hendrix": 0, "ahendrix": 0, "28t10": 0, "ari": 0, "synodino": 0, "progtologist": 0, "115": 0, "30t16": 0, "yoav": 0, "feket": 0, "yoavfeket": 0, "112": 0, "01t08": 0, "46z": 0, "robotgir": 0, "16t05": 0, "sean": 0, "yen": 0, "seanyen": 0, "04t23": 0, "mattnd": 0, "94": 0, "12t22": 0, "85": 0, "14z": 0, "tim": 0, "clepha": 0, "timpl": 0, "20t22": 0, "erick": 0, "isla": 0, "osuna": 0, "erickiso": 0, "25t07": 0, "hen": 0, "kayser": 0, "henningkays": 0, "72": 0, "24t17": 0, "melvin": 0, "wang": 0, "wmmc88": 0, "71": 0, "dmitri": 0, "dignakov": 0, "20t06": 0, "jame": 0, "xu": 0, "kejxu": 0, "04t22": 0, "cesc": 0, "folch": 0, "aldehuelo": 0, "65": 0, "05t07": 0, "gennaro": 0, "raiola": 0, "graiola": 0, "04t14": 0, "benjamin": 0, "hug": 0, "benjaminhug8": 0, "64": 0, "10t16": 0, "keegan": 0, "soteb": 0, "ksoteb": 0, "chen": 0, "jun": 0, "chenjunnn": 0, "11t04": 0, "47z": 0, "sgmurrai": 0, "18t16": 0, "dinh": 0, "pauldinh": 0, "07t23": 0, "ramon": 0, "wijnand": 0, "rayman": 0, "methyldragon": 0, "20t17": 0, "jonatan": 0, "olofsson": 0, "jonatanolofsson": 0, "14t13": 0, "achinta": 0, "choudhuri": 0, "27t22": 0, "06t11": 0, "terzer": 0, "fmro": 0, "27t06": 0, "sp": 0, "sophia": 0, "lab": 0, "12t10": 0, "matthia": 0, "gruhler": 0, "mgruhler": 0, "2016": 0, "maciej": 0, "bednarczyk": 0, "mcbed": 0, "25t15": 0, "igor": 0, "napolskikh": 0, "nap": 0, "24t19": 0, "joseph": 0, "schornak": 0, "schornakj": 0, "20t10": 0, "el": 0, "jawad": 0, "alaa": 0, "ejalaa12": 0, "11t17": 0, "sachin": 0, "kumar": 0, "sachinkum0009": 0, "19t12": 0, "bedard": 0, "christophebedard": 0, "cong": 0, "liu": 0, "onionsfli": 0, "16t11": 0, "roni": 0, "kreinin": 0, "dirk": 0, "thoma": 0, "2012": 0, "14t02": 0, "nick": 0, "lamprianidi": 0, "nlamprian": 0, "01t13": 0, "leander": 0, "stephen": 0, "souza": 0, "dsouza": 0, "messmer": 0, "fmessmer": 0, "andrea": 0, "klintberg": 0, "klintan": 0, "18t12": 0, "suab321321": 0, "11t07": 0, "29z": 0, "louis": 0, "poubel": 0, "chapulina": 0, "22t15": 0, "miguel": 0, "prada": 0, "miguelprada": 0, "28t12": 0, "shota": 0, "aoki": 0, "shotaak": 0, "20": [0, 9, 25, 45, 48, 50], "01t09": 0, "svnrk": 0, "nathan": [0, 8], "brook": [0, 8], "nbbrook": 0, "13t14": 0, "18": [0, 9, 33], "joshua": 0, "liushuya7": 0, "28t07": 0, "darko": 0, "luki\u0107": 0, "lukicdarkoo": 0, "21t20": 0, "59z": 0, "jack": 0, "jackcent": 0, "shonigmann": 0, "josh": 0, "newan": 0, "joshnewan": 0, "luka": 0, "bulwahn": 0, "14t16": 0, "nisala": 0, "kalupahana": 0, "nkalupahana": 0, "30t18": 0, "02t20": 0, "adrian": 0, "zwiener": 0, "adrianzw": 0, "21t21": 0, "rufu": 0, "wong": 0, "rcywongaa": 0, "mansolino": 0, "davidmansolino": 0, "marcu": 0, "scheunemann": 0, "18t19": 0, "abrar": 0, "rahman": 0, "protyasha": 0, "aprotya": 0, "03t10": 0, "borong": 0, "yuan": 0, "borongyuan": 0, "19t18": 0, "light": 0, "tech": 0, "17t22": 0, "interact": [0, 3, 8, 11, 20, 24, 33, 35], "21t16": 0, "andrew": 0, "lyca": 0, "andrewlyca": 0, "06t19": 0, "dan": 0, "wahl": 0, "danwahl": 0, "26t10": 0, "georg": 0, "stavrino": 0, "gstavrino": 0, "09t10": 0, "wudenka": 0, "hobbeshunt": 0, "17t19": 0, "krzysztof": 0, "wojciechowski": 0, "kotochleb": 0, "tomoya": 0, "fujita": 0, "fujitatomoya": 0, "arshad": 0, "mehmood": 0, "arshadlab": 0, "07t17": 0, "purvi": 0, "mikepurvi": 0, "08t19": 0, "dzywat": 0, "07t09": 0, "omri": 0, "bassat": 0, "betab0t": 0, "01z": 0, "timon": 0, "engelk": 0, "timonegk": 0, "30t08": 0, "jacob": 0, "perron": 0, "jacobperron": 0, "18t00": 0, "nestor": 0, "gonzalez": 0, "nzlz": 0, "13t10": 0, "jakub": 0, "deli": 0, "delicat": 0, "delipl": 0, "bainian": 0, "briancbn": 0, "15t08": 0, "guillaum": 0, "beuzeboc": 0, "guillaumebeuzeboc": 0, "06t17": 0, "st\u0119pie\u0144": 0, "macstepien": 0, "gilmar": 0, "correia": 0, "gilmarcorreia": 0, "06t07": 0, "andrej": 0, "orsula": 0, "andrejorsula": 0, "niiquay": 0, "corinn": 0, "kenwood": 0, "ckenwood": 0, "10t20": 0, "solomon": 0, "swiz23": 0, "delihu": 0, "dasroteskelett": 0, "verhoeckx": 0, "paulverhoeckx": 0, "05t13": 0, "hang": 0, "hangst": 0, "t3ch9": 0, "husamzain": 0, "15t13": 0, "kiji": 0, "marudan": 0, "merdanbai": 0, "steven": 0, "ragnar\u00f6k": 0, "nuclearsandwich": 0, "04t07": 0, "adampetting": 0, "02t13": 0, "rauch": 0, "christianrauch": 0, "29t22": 0, "tianyu": 0, "li": 0, "tonylitianyu": 0, "macha": 0, "lukasmacha97": 0, "17t16": 0, "noe\u00ebl": 0, "moeskop": 0, "noeelmoeskop": 0, "eslam": 0, "salah": 0, "eslamsalahelsheikh": 0, "28t13": 0, "10z": 0, "ron": 0, "marrero": 0, "csharpron": 0, "10t14": 0, "167": 0, "152": 0, "07t18": 0, "86": 0, "63": 0, "105": 0, "18t06": 0, "01t22": 0, "16t12": 0, "13t18": 0, "98": 0, "19t20": 0, "07z": 0, "16t13": 0, "arn": 0, "hitzmann": 0, "arne48": 0, "106": 0, "25t06": 0, "01t20": 0, "107": 0, "07t07": 0, "22t08": 0, "97": 0, "114": 0, "22t06": 0, "vansh": 0, "gehlot": 0, "eth": 0, "vanshgehlot": 0, "13t11": 0, "21t13": 0, "yackzan": 0, "dyackzan": 0, "05t19": 0, "24t23": 0, "73": 0, "29t21": 0, "qiayuanliao": 0, "qiayuanl": 0, "25t05": 0, "15t15": 0, "sebastian": 0, "jahr": 0, "sjahr": 0, "18t22": 0, "castro": 0, "sea": 0, "bass": 0, "27t12": 0, "27t14": 0, "ramcharanthota": 0, "23t11": 0, "24t18": 0, "23t00": 0, "reframesystem": 0, "20z": 0, "09t08": 0, "0000": 0, "00t00": 0, "95": 0, "peter": 0, "fagan": 0, "peterdavidfagan": 0, "111": 0, "richard": 0, "osterloh": 0, "rosterloh": 0, "62": 0, "andr": 0, "montano": 0, "anfemosa": 0, "60": 0, "brewmast": 0, "harderthan": 0, "homalozoa": 0, "x": [0, 25, 28, 30, 31, 33, 37, 39, 43, 46, 55, 56, 60], "mrl1kor": 0, "malapatiravi": 0, "adam": 0, "serafin": 0, "serafadam": 0, "172": 0, "157": 0, "186": 0, "118": 0, "07t16": 0, "93": 0, "14t09": 0, "89": 0, "198": 0, "96": 0, "23t02": 0, "78": 0, "173": 0, "79": 0, "220": 0, "199": 0, "10t19": 0, "27t13": 0, "191": 0, "183": 0, "25t01": 0, "69": 0, "14t18": 0, "164": 0, "25t18": 0, "01t03": 0, "135": 0, "29t15": 0, "131": 0, "01t11": 0, "09t00": 0, "28t09": 0, "126": 0, "26t15": 0, "132": 0, "02t15": 0, "147": 0, "05t22": 0, "19t23": 0, "thrasher": 0, "christhrash": 0, "22t14": 0, "149": 0, "12t18": 0, "22t13": 0, "13t07": 0, "22t00": 0, "17t15": 0, "jose": 0, "rivero": 0, "75": 0, "26t13": 0, "194": 0, "23t22": 0, "134": 0, "27t03": 0, "31t17": 0, "05t12": 0, "01t12": 0, "carrol": 0, "mjcarrol": 0, "28t21": 0, "113": 0, "87": 0, "18t14": 0, "08t14": 0, "05t10": 0, "cian": 0, "donovan": 0, "ciandonovan": 0, "26t23": 0, "27t21": 0, "shawn": 0, "schaerer": 0, "shawnschaer": 0, "14t15": 0, "fjp": 0, "vatan": 0, "aksoi": 0, "tezer": 0, "vatanaksoytez": 0, "13t16": 0, "ken551": 0, "05t14": 0, "27t18": 0, "21t14": 0, "Will": 0, "baker": 0, "willcbak": 0, "ros2tori": 0, "28t15": 0, "kevin": 0, "demarco": 0, "syllogismrx": 0, "19t16": 0, "18t09": 0, "emiliano": 0, "borghi": 0, "eborghi10": 0, "29t20": 0, "haider8645": 0, "street": 0, "sgstreet": 0, "05t20": 0, "09t06": 0, "zumkel": 0, "dzumkel": 0, "31t15": 0, "ag\u00fcero": 0, "caguero": 0, "26t11": 0, "09t18": 0, "12t08": 0, "addisu": 0, "z": [0, 25, 28, 30, 31, 33, 37, 39, 43, 46, 55, 56], "taddes": 0, "azeei": 0, "kelli": 0, "kellyprankin": 0, "kasiceo": 0, "a10263790": 0, "tomoyafujita2016": 0, "usama": 0, "hamayun": 0, "ghouri": 0, "usamahamayun1": 0, "ha": [0, 1, 2, 3, 4, 8, 15, 17, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 41, 47, 48, 49, 51], "receiv": [0, 5, 14, 17, 24, 33, 49], "major": [0, 46], "from": [0, 1, 5, 8, 9, 10, 11, 14, 15, 16, 18, 19, 20, 22, 33, 37, 39, 40, 41, 42, 43, 46, 48, 49, 50, 52, 53, 56, 58, 61], "support": [0, 2, 3, 4, 5, 8, 11, 14, 18, 19, 20, 33, 37, 41, 47, 49, 50, 55, 59, 61], "rosin": 0, "ro": [0, 1, 2, 3, 4, 7, 9, 11, 15, 17, 18, 20, 21, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 49, 50, 61], "industri": [0, 3, 7, 9, 21, 60], "qualiti": [0, 1], "assur": 0, "robot": [0, 2, 4, 5, 7, 9, 10, 11, 15, 17, 23, 25, 26, 28, 35, 37, 39, 43, 47, 55, 56, 61], "softwar": [0, 3, 33], "compon": [0, 8, 11, 12, 13, 17, 20, 21, 24, 27, 28, 29, 30, 31, 32, 33, 37, 39, 40, 43, 46, 53, 55, 56, 61], "http": [0, 3, 7, 9, 15, 21, 33, 36, 38, 57], "www": [0, 15], "eu": 0, "fund": 0, "european": 0, "union": 0, "": [0, 1, 3, 7, 8, 10, 11, 15, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 41, 43, 46, 48, 49, 53, 56, 57, 61], "horizon": 0, "research": [0, 8], "innov": 0, "programm": 0, "under": [0, 8, 19, 26, 41, 49, 50, 55, 61], "grant": [0, 3], "agreement": 0, "732287": 0, "first": [1, 5, 10, 13, 15, 19, 21, 33, 35, 41, 49, 51], "thank": 1, "you": [1, 2, 3, 4, 5, 8, 9, 10, 11, 13, 15, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 41, 50, 51, 61], "consid": [1, 20, 39, 48, 51, 56], "As": [1, 10, 17, 19, 23, 33, 39, 41], "an": [1, 2, 3, 4, 5, 7, 8, 10, 17, 18, 19, 20, 21, 23, 24, 25, 26, 28, 31, 33, 35, 36, 37, 38, 39, 40, 41, 42, 43, 50, 52, 55, 56, 57, 58], "open": [1, 9, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 48, 55], "sourc": [1, 2, 4, 8, 9, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "we": [1, 2, 4, 7, 8, 9, 10, 13, 21, 23, 25, 26, 28, 33, 34, 35, 47], "welcom": 1, "each": [1, 3, 7, 10, 11, 16, 17, 19, 21, 23, 27, 33, 36, 37, 47, 55, 57], "contributor": 1, "regardless": 1, "background": [1, 21], "experi": 1, "To": [1, 3, 5, 10, 11, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47, 49, 59, 60, 61], "reduc": [1, 18], "entropi": 1, "univers": [1, 8, 33, 60], "our": [1, 2, 3, 4, 7, 8, 21, 23, 33], "vivid": 1, "collabor": 1, "environ": [1, 3, 8, 21], "set": [1, 5, 7, 8, 9, 10, 11, 13, 17, 18, 19, 20, 21, 23, 24, 25, 33, 37, 39, 40, 42, 47, 48, 49, 50, 52, 53, 55, 56, 58], "up": [1, 8, 9, 19, 21, 49], "some": [1, 2, 4, 7, 8, 15, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 47, 48, 50, 61], "standard": [1, 5, 7, 8, 11, 19, 20, 27, 32, 33, 43, 47], "method": [1, 3, 5, 10, 11, 15, 16, 19, 33, 41, 55], "requir": [1, 3, 5, 7, 19, 33, 37, 41, 42, 50, 52, 58], "ar": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57, 61], "limit": [1, 2, 4, 8, 11, 14, 21, 33, 39, 56], "scope": 1, "your": [1, 5, 8, 9, 11, 14, 15, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 38, 39, 41, 56, 59, 60, 61], "pr": [1, 14, 59, 60], "should": [1, 2, 4, 5, 7, 8, 10, 11, 13, 15, 19, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 47, 49, 50, 51, 56], "do": [1, 3, 5, 7, 8, 10, 11, 19, 21, 37, 41, 50, 51, 56], "one": [1, 3, 5, 7, 8, 9, 10, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 42, 43, 47, 48, 49, 50, 51, 52, 55, 57, 58, 61], "thing": [1, 2, 4, 9, 11, 21], "avoid": [1, 23, 25, 27, 28, 29, 30, 31, 32, 34, 41], "ad": [1, 2, 4, 7, 11, 18, 19, 25, 26, 28, 33, 39, 41, 47], "random": [1, 27, 29, 30, 31, 32], "fix": [1, 5, 25, 33, 36, 38, 57], "put": [1, 19, 41], "those": [1, 3, 5, 7, 10, 18, 19, 21, 33, 41, 43, 47, 48, 49, 53], "separ": [1, 3, 5, 21, 27, 39, 47, 56], "give": [1, 8, 11, 21, 23, 24, 28, 29, 49, 61], "descript": [1, 5, 8, 11, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 43, 45, 46, 47, 48, 53], "titl": 1, "add": [1, 5, 10, 11, 13, 15, 19, 33, 36, 37, 38, 41, 57, 59, 60], "short": [1, 41, 61], "summari": [1, 8, 61], "make": [1, 4, 5, 7, 8, 26, 33, 45, 61], "sure": [1, 4, 7, 23, 26, 27, 28, 29, 30, 31, 32, 34, 61], "pipelin": 1, "i": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 40, 41, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 61], "green": [1, 49], "don": [1, 2, 9, 10, 24, 28, 48, 50], "t": [1, 2, 4, 9, 10, 11, 21, 24, 28, 48, 49, 50, 51], "afraid": 1, "maintain": [1, 3, 7, 10, 21, 49], "new": [1, 8, 9, 10, 19, 23, 26, 29, 33, 40, 49, 61], "code": [1, 3, 5, 7, 8, 19, 33], "test": [1, 2, 7, 18, 19, 21, 23, 28, 35, 36, 37, 38, 39, 41, 43, 46, 53, 55, 57], "If": [1, 3, 5, 8, 9, 10, 11, 13, 16, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 43, 47, 48, 49, 50, 51, 55, 56, 61], "function": [1, 5, 7, 8, 9, 26, 33, 37, 51, 55], "alwai": [1, 33], "exercis": 1, "serv": [1, 3, 7], "live": [1, 8], "origin": [1, 2, 4, 8, 14, 23, 33, 49, 50], "intent": [1, 10, 18], "section": [1, 5, 15, 17, 19, 41, 50], "target": [1, 11, 19, 37, 41, 44, 48, 50], "also": [1, 2, 3, 4, 5, 7, 8, 10, 11, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 50, 51], "read": [1, 2, 3, 4, 5, 11, 15, 17, 19, 21, 26, 27, 30, 31, 33, 37, 41, 47, 48, 51, 53, 55], "understand": [1, 7, 49], "how": [1, 7, 8, 17, 19, 21, 24, 25, 26, 27, 29, 30, 31, 32, 33, 35, 41, 56], "handl": [1, 3, 5, 7, 8, 19, 30, 33, 36, 37, 38, 39, 43, 44, 45, 46, 47, 48, 50, 51, 53, 55, 56, 57], "organ": [1, 8, 61], "guidelin": 1, "especi": [1, 5, 21, 55], "applic": [1, 3, 8, 9, 11, 17, 33], "ros2_control_demo": [1, 3, 21, 23, 33, 61], "pleas": [1, 11, 32, 39, 61], "keep": [1, 33, 41], "mind": [1, 41], "work": [1, 7, 8, 10, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41, 42, 47, 52, 56, 58, 61], "fork": 1, "when": [1, 2, 3, 4, 5, 8, 9, 10, 11, 18, 19, 20, 26, 29, 33, 37, 39, 40, 41, 45, 48, 50, 51, 55, 56], "That": [1, 19, 41], "wai": [1, 11, 15, 19, 33, 41, 43, 50], "main": [1, 3, 7, 8, 11, 15, 18, 33, 41, 55, 61], "repo": [1, 3, 9, 21], "clean": 1, "featur": [1, 8, 18, 21, 23, 34, 55, 61], "branch": [1, 3, 21], "check": [1, 3, 5, 7, 10, 16, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 49, 50, 53, 57, 61], "satisfi": 1, "befor": [1, 5, 10, 11, 19, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 39, 40, 41, 48, 49], "thei": [1, 3, 5, 7, 8, 10, 17, 18, 19, 20, 26, 40, 41, 48, 50, 55], "can": [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 15, 16, 17, 18, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 38, 39, 41, 43, 44, 46, 49, 50, 51, 53, 55, 61], "must": [1, 2, 4, 10, 11, 17, 21, 33, 37, 46, 48, 50], "approv": 1, "two": [1, 3, 7, 10, 11, 19, 21, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 43, 49, 50, 51, 55, 56, 57], "explicitli": 1, "onli": [1, 3, 5, 7, 8, 10, 11, 16, 19, 20, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 41, 42, 43, 47, 48, 49, 50, 51, 52, 55, 58], "except": [1, 24, 33], "other": [1, 2, 3, 5, 8, 10, 19, 21, 27, 32, 33, 36, 38, 41, 47, 49, 55, 57], "where": [1, 2, 7, 9, 10, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 36, 38, 39, 41, 47, 48, 49, 50, 51, 55, 57], "back": 1, "traceabl": 1, "discuss": [1, 8, 9, 26, 35, 49, 61], "suffici": [1, 2, 4, 10, 43], "note": [1, 3, 6, 11, 18, 23, 50, 51, 61], "still": [1, 5, 23, 26, 27, 28, 29, 30, 31, 32, 34, 40, 49], "encourag": 1, "help": [1, 11, 15, 18, 19, 20, 39, 41], "u": [1, 2, 4, 11, 21, 48], "increas": [1, 28, 51], "pace": 1, "veri": [1, 2, 4, 5, 7, 17], "like": [1, 2, 3, 4, 5, 7, 8, 9, 19, 25, 26, 33], "find": [1, 2, 3, 4, 15, 28], "issu": [1, 7, 8, 9, 61], "nobodi": 1, "els": 1, "squash": 1, "messag": [1, 7, 11, 20, 29, 30, 31, 33, 39, 43, 46, 47, 48, 49, 50, 53, 55, 56, 61], "comment": [1, 33], "fixup": 1, "linter": 1, "us": [1, 3, 5, 7, 8, 9, 13, 14, 15, 17, 18, 20, 22, 33, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 49, 52, 53, 55, 56, 57, 58, 61], "pre": 1, "correct": [1, 5, 39, 49], "header": [1, 13, 19, 30, 31, 41, 49], "address": [1, 33], "similar": [1, 3, 8, 17, 23, 25, 26, 33], "mean": [1, 5, 10, 17, 18, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 49, 50, 56], "result": [1, 3, 10, 11, 23, 33, 47, 49], "exactli": 1, "cowboi": 1, "style": [1, 19, 41], "over": [1, 7, 10, 28, 33], "weekend": 1, "It": [1, 2, 3, 5, 7, 10, 11, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 43, 47, 48, 49, 51], "doesn": [1, 10, 51], "matter": 1, "trivial": [1, 18], "chanc": 1, "proper": [1, 10, 11, 50], "Be": 1, "awar": 1, "impact": 1, "proport": [1, 48, 51], "its": [1, 2, 3, 4, 5, 7, 8, 10, 11, 17, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 43, 44, 45, 46, 47, 48, 49, 51, 53, 55, 56, 57], "ping": 1, "them": [1, 7, 10, 11, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 47, 49, 60], "necessari": [1, 10, 13], "repeatedli": 1, "sphinx": 1, "doc": [1, 10, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 61], "theme": 1, "gener": [1, 7, 8, 17, 19, 20, 25, 27, 28, 29, 30, 31, 32, 33, 40, 41, 50, 55, 61], "locat": [1, 2, 9, 33, 37, 39, 43, 45, 46, 47, 48, 53], "control": [1, 8, 9, 12, 14, 15, 16, 17, 18, 19, 20, 21, 36, 38, 43, 46, 47, 48, 49, 53, 56, 57, 60, 61], "org": [1, 7, 15, 36, 38, 57], "while": [1, 3, 7, 8, 33, 37, 49], "packag": [1, 2, 4, 5, 11, 13, 19, 33, 36, 37, 38, 39, 41, 42, 43, 46, 50, 51, 52, 53, 55, 57, 58, 61], "written": [1, 19, 27, 32, 33, 41], "respect": [1, 2, 3, 4, 7, 8, 24, 48, 49, 50], "type": [1, 2, 3, 4, 5, 8, 10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 24, 27, 28, 30, 31, 32, 33, 39, 40, 41, 42, 43, 46, 48, 51, 52, 53, 55, 58], "stabl": 1, "against": 1, "accept": [1, 19, 29, 41, 42, 48, 49, 50, 52, 58], "api": [1, 2, 4, 7, 19, 23, 25, 27, 28, 29, 30, 31, 32, 34], "abi": 1, "e": [1, 2, 3, 4, 5, 7, 8, 10, 11, 14, 17, 18, 19, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 37, 39, 41, 42, 43, 47, 48, 49, 51, 52, 55, 56, 58, 61], "name": [1, 2, 3, 4, 5, 8, 11, 14, 15, 17, 18, 19, 20, 21, 23, 24, 26, 27, 28, 30, 31, 32, 33, 35, 37, 39, 41, 43, 44, 46, 47, 48, 51, 53, 55, 56], "convent": [1, 33], "master": [1, 3, 21, 33], "semi": 1, "binari": 1, "good": [1, 2, 4, 7, 39, 56], "same": [1, 9, 10, 11, 15, 29, 33, 40, 43, 48, 49, 50, 51], "build": [1, 9, 19, 33, 37, 41], "dai": 1, "ros_distro": [1, 3, 21, 23], "foxi": [1, 6, 8, 19], "galact": [1, 6, 19], "releas": [1, 3, 8, 21, 33], "version": [1, 3, 7, 9, 15, 21, 50], "non": [1, 8, 26, 33, 43], "brake": 1, "distribut": [1, 3, 21, 61], "three": [1, 3, 5, 13, 16, 17, 21, 33, 41, 49, 57], "stage": [1, 10, 26], "current": [1, 7, 15, 16, 17, 19, 20, 49, 50, 55], "futur": [1, 8, 10, 49, 50], "compat": [1, 3, 5, 8, 19, 21], "direct": [1, 5, 7, 19, 33, 41, 48], "local": [1, 2, 4, 9, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 47], "possibl": [1, 3, 7, 11, 17, 18, 21, 23, 25, 27, 28, 29, 30, 31, 32, 34, 37, 41, 49], "core": [1, 12, 33], "immedi": [1, 11, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 51], "depend": [1, 3, 9, 13, 17, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 49, 51, 55], "fail": [1, 29, 33], "expect": [1, 7, 8, 9, 26, 33, 36, 38, 39, 50, 55, 56, 57], "after": [1, 10, 11, 18, 19, 21, 23, 33, 39, 41, 48, 49, 50, 55, 56], "next": [1, 23, 33, 49], "sync": 1, "abl": 1, "potenti": [1, 8, 9, 41, 48], "mid": 1, "power": [1, 2, 4, 8, 19], "plausibl": 1, "analyt": 1, "integr": [2, 3, 4, 7, 8, 18, 21, 26, 28, 33, 48, 49, 50, 51, 56, 61], "architectur": [2, 4, 7, 8, 9], "gazebo": [2, 4, 7, 18, 21, 23, 35, 59], "classic": [2, 18, 21, 59], "which": [2, 3, 4, 5, 7, 8, 9, 11, 15, 18, 19, 20, 21, 23, 25, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 43, 46, 47, 48, 49, 50, 53, 55, 56], "instanti": [2, 4, 11], "manag": [2, 4, 5, 7, 8, 12, 13, 14, 16, 17, 19, 20, 21, 33, 41, 50, 61], "connect": [2, 3, 4, 18, 21, 30, 33], "model": [2, 4, 23, 25, 33], "cd": [2, 3, 4, 9, 21, 33], "docker": [2, 4, 9, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "allow": [2, 3, 4, 5, 11, 21, 33, 45, 48, 49, 50, 54], "without": [2, 3, 4, 5, 8, 11, 18, 19, 21, 26, 41, 48, 49], "gui": [2, 4, 21, 23, 26, 27, 29, 30, 31, 32, 34, 35, 54], "configur": [2, 3, 4, 5, 7, 8, 10, 11, 13, 14, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47, 48, 49, 50, 55], "properli": [2, 4, 10, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "command": [2, 3, 4, 5, 7, 8, 9, 11, 12, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 41, 42, 44, 45, 48, 49, 52, 54, 57, 58, 61], "rm": [2, 3, 4, 21, 23], "net": [2, 4, 8, 21, 23], "host": [2, 4, 21, 23, 60], "ros2": [2, 3, 4, 8, 11, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "launch": [2, 3, 4, 11, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "cart_example_posit": [2, 4], "py": [2, 4, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "fals": [2, 4, 15, 18, 21, 23, 25, 37, 39, 45, 47, 48, 50, 51, 55, 56], "machin": [2, 3, 4, 7, 21], "client": [2, 4, 50], "gzclient": 2, "rocker": [2, 4], "go": [2, 4, 8, 11, 19, 33, 41], "tool": [2, 4, 5, 7, 8, 9, 33, 37], "imag": [2, 4, 11], "inject": [2, 4, 8, 9], "nvidia": [2, 4], "And": 2, "user": [2, 4, 7, 11, 21, 33, 49], "id": [2, 4, 20, 23, 24, 25, 27, 28, 29, 30, 31, 32, 34, 37, 39], "specif": [2, 4, 7, 10, 11, 13, 14, 15, 17, 33, 35, 44, 47, 49, 50], "file": [2, 3, 4, 5, 7, 8, 11, 15, 18, 19, 21, 37, 39, 41, 42, 43, 50, 52, 58], "cleaner": [2, 4], "mount": [2, 4], "permiss": [2, 4, 11], "instal": [2, 4, 9, 11, 19, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "instruct": [2, 4, 9, 28, 33, 35], "x11": [2, 4], "latest": [2, 3, 4, 9], "move": [2, 4, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 45, 56], "cart": [2, 4], "rail": [2, 4], "exec": [2, 4, 23], "bash": [2, 3, 4, 9, 19, 21, 23, 33, 41], "home": [2, 4], "ros2_w": [2, 3, 4, 21], "example_posit": [2, 4], "need": [2, 3, 4, 5, 7, 8, 10, 17, 19, 21, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 40, 41, 49, 51], "addit": [2, 4, 5, 10, 21, 24, 28, 33], "element": [2, 4, 33, 37, 48], "includ": [2, 4, 5, 7, 9, 11, 13, 19, 20, 25, 33, 37, 41, 50, 56, 60], "access": [2, 3, 4, 8, 11, 18, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47], "interfac": [2, 4, 7, 8, 10, 11, 12, 13, 16, 19, 21, 23, 25, 26, 27, 28, 30, 31, 32, 35, 36, 38, 40, 41, 43, 46, 48, 49, 53, 57, 59, 60, 61], "state": [2, 3, 4, 5, 7, 8, 10, 11, 13, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 43, 47, 48], "gazebosystem": [2, 14], "system": [2, 3, 4, 5, 7, 8, 9, 13, 14, 15, 16, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 48, 50, 59, 60, 61], "hardwar": [2, 4, 8, 9, 10, 12, 13, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 40, 41, 48, 51, 56, 61], "slider_to_cart": [2, 4, 42, 52, 58], "command_interfac": [2, 3, 4, 14, 17, 24, 26, 33, 37, 48, 50, 51], "effort": [2, 4, 5, 14, 21, 33, 40, 42, 45, 47, 48, 50, 51], "param": [2, 3, 4, 11, 14, 15, 17, 18, 24, 28, 33], "min": [2, 3, 4, 17, 33], "1000": [2, 4, 14, 33], "state_interfac": [2, 3, 4, 14, 17, 18, 24, 33, 37, 48, 50], "posit": [2, 3, 4, 5, 8, 11, 14, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 42, 47, 48, 49, 50, 51, 52, 55, 58], "initial_valu": [2, 4, 14, 17, 18, 24, 33], "veloc": [2, 3, 4, 5, 8, 10, 14, 21, 25, 27, 28, 29, 33, 37, 38, 39, 40, 45, 46, 47, 48, 49, 50, 51, 52, 55, 58], "defin": [2, 4, 5, 7, 11, 14, 17, 19, 21, 33, 37, 41, 43, 46, 47, 48, 49, 50, 51, 53, 55], "paramet": [2, 4, 5, 8, 9, 14, 15, 19, 21, 23, 24, 28, 33, 41, 50], "mimick": [2, 4], "detail": [2, 3, 4, 5, 11, 16, 17, 18, 19, 26, 33, 35, 36, 38, 39, 41, 49, 50, 57], "manual": [2, 3, 4, 7, 11, 19, 21, 23, 29, 30, 31, 32, 34, 35, 41, 61], "multipli": [2, 4, 14], "definit": [2, 3, 4, 11, 14, 19, 33, 37, 39, 40, 41, 43, 45, 46, 47, 48, 53], "left_finger_joint": [2, 4, 14], "prismat": [2, 4, 14], "right_finger_joint": [2, 4, 14], "axi": [2, 4, 7, 14, 33, 36, 38, 39, 43, 57], "xyz": [2, 4, 14, 33], "rpy": [2, 4, 14, 33], "1415926535": [2, 4, 14], "parent": [2, 4, 14, 19, 33, 39, 41, 56], "link": [2, 3, 4, 8, 10, 13, 14, 33, 37, 40], "base": [2, 3, 4, 8, 13, 14, 19, 20, 21, 25, 27, 28, 32, 33, 37, 39, 41, 44, 55, 56, 59, 60], "child": [2, 4, 14, 17, 33, 39, 56], "finger_left": [2, 4, 14], "lower": [2, 4, 14, 33, 51], "upper": [2, 4, 14, 33, 51], "In": [2, 3, 4, 5, 7, 8, 10, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 40, 41, 47, 49, 55], "actual": [2, 4, 10, 39, 56], "pars": [2, 4, 5, 12, 17, 18], "load": [2, 3, 4, 11, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 41], "appropri": [2, 4, 7, 49], "By": [2, 4, 11, 25, 33, 47, 49], "though": [2, 4, 11, 25, 26], "extens": [2, 4], "via": [2, 3, 4, 21, 23, 30, 31, 33, 50, 60], "creat": [2, 3, 4, 5, 8, 11, 18, 19, 21, 25, 33, 41], "between": [2, 3, 4, 7, 13, 17, 21, 33, 36, 38, 39, 47, 48, 49, 50, 51, 56, 57], "filenam": [2, 4, 33], "libgazebo_ros2_control": 2, "so": [2, 3, 4, 10, 11, 19, 33, 37, 41, 50], "robot_param": [2, 4], "robot_descript": [2, 4, 11, 23, 33], "robot_param_nod": [2, 4], "robot_state_publish": [2, 4, 11, 25, 47], "config": [2, 4, 21], "cart_control": [2, 4], "yaml": [2, 3, 4, 7, 9, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 50], "controller_manager_nam": 2, "simulation_controller_manag": 2, "option": [2, 4, 5, 11, 16, 17, 18, 19, 20, 23, 24, 29, 37, 39, 40, 41, 43, 47, 50, 51, 55], "server": [2, 45, 50], "node": [2, 3, 4, 11, 15, 16, 18, 20, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 56], "hold_joint": [2, 4], "true": [2, 4, 15, 24, 25, 28, 35, 37, 39, 48, 49, 50, 51, 55, 56], "hold": [2, 4, 49], "wa": [2, 4, 7, 9, 19, 23, 24, 28, 29, 33, 41, 49], "claim": [2, 4, 10, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37], "hasn": [2, 4], "been": [2, 4, 26], "yet": [2, 4, 6, 10, 11, 21, 26, 39, 49, 50], "controller_manag": [2, 3, 4, 7, 11, 20, 29, 40, 41, 42, 50, 52, 58], "attempt": [2, 4, 11, 50], "get": [2, 4, 8, 9, 10, 11, 13, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 49, 51, 61], "out": [2, 4, 5, 11, 33, 39], "most": [2, 4, 7, 19, 21, 25, 33, 41], "case": [2, 4, 5, 7, 8, 10, 21, 26, 33, 41, 47, 49, 50, 61], "least": [2, 4, 17, 19, 41, 50], "start": [2, 4, 5, 8, 10, 11, 13, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 41, 48, 49, 56, 61], "hardware_interfac": [2, 3, 4, 5, 15, 16, 18, 19, 21, 27, 30, 31, 32, 33, 37, 39, 40, 41], "jointstateinterfac": [2, 4], "effortjointinterfac": [2, 4], "velocityjointinterfac": [2, 4], "pluginlib": [2, 3, 4, 5, 11, 19, 33, 41, 51], "implement": [2, 3, 4, 5, 7, 8, 11, 15, 17, 18, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 41, 44, 49, 50, 51, 55, 56, 57, 61], "complex": [2, 3, 4, 7, 8, 9, 10], "mechan": [2, 4, 10, 50], "nonlinear": [2, 4], "spring": [2, 4], "linkag": [2, 4, 23, 26, 34], "etc": [2, 4, 11, 29, 33, 37, 61], "These": [2, 4, 21, 33, 39, 45, 56], "inherit": [2, 4, 11, 33], "gazebosysteminterfac": 2, "systeminterfac": [2, 4, 5, 15, 18, 30, 33], "level": [2, 4, 7, 8, 11, 26, 27, 32, 42, 49, 52, 58], "properti": [2, 4, 33], "sub": [2, 4, 25], "class": [2, 3, 4, 8, 11, 13, 16, 19, 20, 33, 41, 44, 49], "specifi": [2, 4, 11, 19, 21, 33, 37, 40, 41, 48, 49, 50, 51], "For": [2, 3, 4, 7, 8, 10, 11, 16, 18, 19, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 41, 48, 50, 51, 55, 57], "exampl": [2, 3, 4, 5, 7, 8, 10, 11, 18, 20, 25, 28, 37, 39, 42, 43, 50, 51, 52, 56, 58, 61], "xml": [2, 4, 5, 11, 13, 15, 19, 33, 41], "insid": [2, 4, 18, 21, 23], "basic": [2, 3, 4, 5, 7, 8, 19, 21, 28, 41], "joint_state_broadcast": [2, 4, 17, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "publish": [2, 4, 7, 10, 17, 21, 24, 25, 33, 37, 40, 43, 46, 47, 49, 53, 56, 61], "resourc": [2, 4, 5, 19, 29], "regist": [2, 4, 5], "stateinterfac": [2, 4, 33], "topic": [2, 4, 7, 8, 10, 11, 17, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 40, 50, 51, 56, 59], "sensor_msg": [2, 4, 46, 53], "msg": [2, 4, 11, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 42, 43, 44, 46, 49, 50, 51, 52, 53, 55, 58], "jointstat": [2, 4], "joint_trajectory_control": [2, 4, 7, 20, 23, 40, 48, 54], "call": [2, 3, 4, 5, 10, 15, 19, 24, 28, 33, 41], "follow_joint_trajectori": [2, 4, 50], "control_msg": [2, 4, 37, 48, 50, 51, 55, 61], "followjointtrajectori": [2, 4, 48, 50], "ros__paramet": [2, 4, 37, 39, 42, 43, 45, 46, 47, 48, 50, 52, 53, 58], "update_r": [2, 4, 11, 40, 42, 52, 58], "100": [2, 3, 15, 17, 42, 52, 58], "hz": [2, 4, 39, 42, 45, 52, 58], "jointtrajectorycontrol": [2, 4, 5, 20, 23, 37, 50], "jointstatebroadcast": [2, 4, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "contain": [2, 9, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 42, 43, 45, 46, 47, 48, 49, 51, 52, 53, 55, 58], "content": [2, 19, 33, 41], "There": [2, 3, 4, 6, 11, 16, 19, 21, 25, 27, 30, 31, 32, 41, 49, 50], "meter": [2, 4, 33], "cart_example_veloc": [2, 4], "cart_example_effort": [2, 4], "diff_driv": 2, "tricycle_dr": 2, "world": [2, 4, 11, 18, 25, 33, 37], "example_veloc": [2, 4], "example_effort": [2, 4], "example_diff_dr": [2, 4], "example_tricycle_dr": [2, 4], "parallel": [2, 3, 4, 17], "gripper": [2, 3, 4, 5, 8, 17, 40], "gripper_mimic_joint_exampl": [2, 4], "send": [2, 4, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 49, 50, 51], "example_gripp": [2, 4], "roll": [3, 9, 21, 33, 39, 56], "both": [3, 7, 8, 11, 26, 33, 34, 39, 47, 48, 49, 50], "humbl": 3, "iron": [3, 6], "about": [3, 7, 18, 19, 29, 39, 46, 47, 50, 61], "page": [3, 8, 59, 60], "want": [3, 9, 10, 11, 21], "download": [3, 21], "repositori": [3, 7, 12, 17, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 39, 40], "mkdir": [3, 9, 21], "p": [3, 9, 11, 21, 48, 51], "src": [3, 9, 19, 21, 23, 33, 37, 39, 41, 43, 45, 46, 47, 48, 53], "wget": 3, "raw": 3, "githubusercont": 3, "com": [3, 7, 9, 21, 33], "ros2_control_ci": 3, "ros_control": [3, 7, 8, 61], "vc": [3, 9, 21], "import": [3, 9, 19, 21, 33, 41, 48], "rosdep": [3, 21], "updat": [3, 5, 10, 11, 12, 16, 21, 25, 33, 37, 40, 41, 50, 55], "rosdistro": [3, 21], "sudo": [3, 9, 11, 21], "apt": [3, 9, 11, 21], "path": [3, 8, 21, 33, 50], "ignor": [3, 11, 21, 39, 48, 55, 56], "r": [3, 21, 34], "y": [3, 21, 25, 28, 30, 31, 37, 43, 46], "everyth": [3, 19, 21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41], "opt": [3, 9, 21, 23], "setup": [3, 9, 18, 19, 21, 23, 28, 33, 41, 49, 51], "sh": [3, 21, 23], "colcon": [3, 9, 19, 21, 33, 41], "symlink": [3, 9, 21, 33], "forget": [3, 5, 21, 50], "folder": [3, 8, 19, 21, 23, 24, 25, 28, 36, 37, 38, 39, 41, 43, 45, 46, 47, 48, 53, 55, 57], "found": [3, 11, 12, 19, 23, 24, 25, 28, 37, 39, 41, 43, 44, 46, 50, 53, 61], "figur": [3, 49], "uml": 3, "diagram": [3, 20], "describ": [3, 5, 10, 17, 21, 23, 29, 33, 39, 49], "intern": [3, 7, 10, 15, 17, 19, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 37, 49, 50], "cm": [3, 11], "abstract": [3, 8, 16, 33], "side": [3, 7, 8, 39], "entri": [3, 41], "point": [3, 33, 37, 41, 48, 49, 50, 51, 61], "servic": [3, 7, 11, 16, 33, 40], "executor": [3, 11], "custom": [3, 11, 17, 18, 21, 24, 27, 28, 43, 47, 48, 59], "howev": [3, 7, 10, 11, 21, 26, 33], "usual": [3, 5, 18, 19, 33, 37, 41], "recommend": [3, 8, 9, 19, 51], "default": [3, 5, 10, 11, 18, 25, 29, 36, 37, 38, 39, 41, 43, 44, 45, 46, 47, 48, 49, 50, 51, 53, 55, 56, 57], "ros2_control_nod": [3, 11, 29, 33], "assum": [3, 10, 37], "On": [3, 8, 9, 33], "hand": [3, 33, 60], "deactiv": [3, 5, 20, 23, 48], "unload": [3, 11, 20], "match": [3, 21, 49], "enabl": [3, 5, 7, 8, 13, 19, 20, 21, 28, 37, 39, 43, 51, 55], "report": [3, 7, 47, 61], "error": [3, 7, 11, 13, 15, 19, 26, 29, 33, 37, 41, 47, 48, 50, 51], "conflict": [3, 5, 7], "execut": [3, 11, 15, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 41, 45, 48, 49, 50, 57], "loop": [3, 8, 11, 18, 23, 29, 30, 31, 32, 33, 34, 35, 41, 47, 48, 50, 55], "data": [3, 5, 7, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 39, 40, 47, 49, 56], "output": [3, 7, 8, 11, 17, 20, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 56], "write": [3, 5, 8, 10, 11, 12, 15, 24, 26, 27, 28, 32, 37, 40, 51], "physic": [3, 5, 16, 17, 18], "driver": [3, 8, 21, 33, 60], "librari": [3, 5, 19, 20, 25, 36, 38, 40, 41, 51, 55, 57], "lifecycl": [3, 5, 8, 11, 13, 16, 19, 33, 40], "reus": [3, 8, 10], "ani": [3, 5, 8, 10, 11, 13, 14, 16, 17, 21, 26, 33, 41, 48, 50], "flexibl": 3, "commun": [3, 5, 7, 8, 15, 19, 21, 23, 25, 27, 28, 29, 30, 31, 33, 34], "motor": [3, 10, 60], "encod": [3, 33, 39, 56], "theori": [3, 61], "compar": [3, 7, 8], "refer": [3, 10, 25, 26, 33, 60], "valu": [3, 5, 7, 15, 17, 18, 19, 21, 23, 24, 26, 28, 30, 31, 33, 35, 37, 39, 41, 43, 46, 47, 48, 50, 53, 55, 56], "measur": [3, 18, 27, 37, 43, 47, 48, 60], "calcul": [3, 25, 33, 37, 39, 49, 55, 56], "input": [3, 7, 8, 9, 10, 17, 24, 26, 33, 37, 39, 42, 44, 48, 49, 52, 55, 56, 58], "object": [3, 33], "deriv": [3, 48, 49, 51], "controllerinterfac": [3, 5, 10, 20, 33, 41], "controller_interfac": [3, 20, 33, 37, 41, 43, 46, 53], "export": [3, 10, 11, 19, 21, 33, 37, 41], "plugin": [3, 9, 11, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37, 41, 51, 54], "forwardcommandcontrol": [3, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35], "lifecyclenod": [3, 41], "design": [3, 5, 7, 8, 10, 25, 33, 61], "document": [3, 7, 8, 17, 18, 19, 21, 28, 40, 49, 50], "list": [3, 8, 10, 11, 13, 19, 20, 26, 33, 41, 43, 59, 60, 61], "srv": [3, 50, 51], "controller_manager_msg": 3, "directli": [3, 14, 18, 23, 26, 51, 61], "exist": [3, 5, 7, 8, 9, 10, 11, 13, 17, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 41, 50], "friendli": 3, "cli": [3, 11, 12, 20, 23, 24, 25, 28, 29, 30, 31, 32, 34, 35], "auto": [3, 11], "complet": [3, 16, 26, 33, 49], "rang": [3, 17, 40], "common": [3, 7, 21, 47, 61], "avail": [3, 5, 8, 10, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 47, 50], "capabl": [3, 7], "realiz": [3, 8, 49, 50], "repres": [3, 16, 33, 39, 40, 49], "dynam": [3, 19, 25, 33, 37, 41, 51, 59], "multi": [3, 5, 7, 8, 9, 21, 29], "dof": [3, 17, 21, 33, 45, 51], "differ": [3, 7, 8, 11, 12, 16, 17, 19, 21, 23, 24, 28, 29, 33, 39, 42, 43, 47, 49, 51, 52, 55, 58], "actuat": [3, 5, 7, 13, 16, 17, 18, 19, 21, 26, 56], "transmiss": [3, 21], "humanoid": 3, "logic": 3, "channel": [3, 60], "kuka": [3, 23, 29, 30, 31, 60], "rsi": [3, 23, 30, 31, 60], "sensor": [3, 5, 7, 13, 16, 18, 19, 21, 27, 32, 33, 37, 40, 60], "sens": [3, 5, 40, 43], "relat": [3, 7, 8], "joint": [3, 5, 8, 11, 14, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 45, 47, 48, 49, 51, 52, 55, 56, 57, 58, 61], "forc": [3, 8, 17, 20, 30, 31, 37, 40, 60], "torqu": [3, 17, 30, 31, 37, 40], "simpl": [3, 7, 8, 10, 19, 21, 23, 25, 26, 28, 33, 34, 41, 45], "valv": [3, 17], "mandatori": [3, 11], "dc": 3, "arduino": [3, 27, 32], "board": 3, "modular": [3, 8, 9, 21, 33], "independ": [3, 8, 11, 31], "explan": [3, 11, 19], "given": [3, 11, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 42, 49, 50, 52, 58], "through": [3, 7, 8, 10, 11, 19, 20, 21, 26, 33, 41, 50, 51, 61], "tag": [3, 11, 14, 17, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 41, 61], "chosen": [3, 17], "structur": [3, 7, 10, 11, 19, 33, 39, 41, 48, 49], "track": [3, 36, 57, 61], "togeth": [3, 10, 17, 28, 30, 55], "multipl": [3, 5, 8, 10, 17, 19, 21, 47], "xacro": [3, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "macro": [3, 5, 15, 19, 21, 33, 41], "hereund": 3, "rrbot": [3, 11, 17, 20, 21, 24, 25, 27, 29, 30, 31, 32, 34], "extern": [3, 5, 7, 10, 18, 21, 37, 51], "end": [3, 5, 16, 19, 33, 37, 41, 48], "effector": [3, 37], "site": 3, "rrbotsystempositiononli": [3, 31], "ros2_control_demo_hardwar": [3, 17, 20], "rrbotsystempositiononlyhardwar": [3, 5, 17, 20, 23, 26, 31], "example_param_write_for_sec": 3, "example_param_read_for_sec": [3, 17], "joint1": [3, 17, 20, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 50], "joint2": [3, 17, 20, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 37, 50], "rrbotforcetorquesensor1d": 3, "forcetorquesensor1dhardwar": 3, "tcp_fts_sensor": [3, 17, 30, 31], "frame_id": [3, 17, 30, 31, 43, 46, 53, 55], "rrbot_tcp": 3, "min_forc": 3, "max_forc": 3, "rrbotgripp": 3, "positionactuatorhardwar": 3, "gripper_joint": 3, "extend": [3, 5, 7, 10, 19, 41], "instead": [3, 14, 18, 24, 28, 33, 35, 37, 48, 51], "pure": 3, "stack": [3, 8, 61], "could": [3, 8, 10, 21, 29, 41, 47, 50], "altern": [3, 9, 11, 23, 50], "script": [3, 7, 19, 41], "skeleton": 3, "sim": [4, 20, 59], "dockerfil": [4, 21], "Then": [4, 10, 21, 33, 35, 49], "ign": 4, "meet": [4, 61], "prerequisit": 4, "along": 4, "gazebosimsystem": 4, "libgz_ros2_control": 4, "gazebosimros2controlplugin": 4, "gazebosimsysteminterfac": 4, "controller_manager_prefix_node_nam": 4, "diff_drive_exampl": 4, "tricycle_drive_exampl": 4, "robothw": 5, "rigid": 5, "imposs": 5, "combinedrobothardwar": 5, "drawback": [5, 61], "solut": [5, 8, 9], "optim": [5, 11], "combin": [5, 10, 17, 18, 21, 29, 47, 49, 50, 51], "composit": [5, 8], "cell": [5, 43], "surround": 5, "box": [5, 21, 23, 25, 28, 29, 30, 31, 34, 35], "hard": [5, 11], "approach": [5, 10, 15], "doe": [5, 11, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 41, 49, 50], "enforc": [5, 29, 33], "string": [5, 11, 18, 21, 37, 39, 41, 43, 44, 45, 46, 47, 48, 51, 53, 55, 56], "ensur": [5, 8, 11, 14, 33, 49], "constant": [5, 21], "had": 5, "itself": [5, 10], "took": 5, "care": [5, 7, 11, 19, 29, 41, 50], "resourcemanag": [5, 10], "take": [5, 7, 10, 19, 26, 29, 39, 41, 47, 49], "anymor": 5, "controllermanag": [5, 11], "granular": 5, "sensorinterfac": [5, 27, 31], "actuatorinterfac": [5, 27, 32], "abov": [5, 23, 24, 26, 27, 28, 29, 30, 31, 32, 34, 35, 40, 49], "choos": [5, 21, 55], "suitabl": [5, 8], "strategi": [5, 21, 49], "decid": [5, 15], "mayb": [5, 10], "constructor": [5, 19, 33, 41], "initi": [5, 17, 18, 19, 24, 33, 41, 49], "variabl": [5, 15, 19, 33, 41, 48], "urdf": [5, 8, 11, 14, 15, 17, 18, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 37], "snippet": 5, "hardwareinfo": [5, 15, 33], "here": [5, 12, 19, 33, 41, 42, 50, 52, 58], "cross": [5, 47], "export_": 5, "_interfac": [5, 19], "joint_a2": 5, "extract": [5, 39, 56], "sensibl": 5, "stop": [5, 8, 10, 11, 13, 20, 23, 24, 28, 29, 33, 39, 48, 56], "safe": [5, 33, 39, 41, 50, 56], "interrupt": [5, 11], "stream": [5, 8], "exchang": [5, 7, 23, 25, 27, 28, 29, 30, 31, 32, 34, 61], "equival": [5, 33], "pluginlib_export_class": [5, 19, 21, 33, 41], "cpp": [5, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "excel": 5, "real": [5, 7, 8, 11, 18, 24, 28, 41, 47, 48, 61], "critic": [5, 7], "mark": [5, 26], "member": [5, 19, 33, 41, 49], "init": 5, "declar": [5, 15, 19, 33, 41], "state_interface_configur": [5, 33, 41], "command_interface_configur": [5, 33, 41], "on_configur": [5, 19, 33, 41], "on_activ": [5, 13, 15, 19, 33, 41], "on_deactiv": [5, 13, 19, 33, 41], "final": [5, 8, 16, 33], "joint_trajectory_plugin": 5, "jazzi": 6, "task": [7, 8, 39], "envis": 7, "simul": [7, 18, 20, 21, 23, 24, 26, 28, 30, 31, 33], "ignit": 7, "showcas": [7, 8, 9], "grace": 7, "degrad": 7, "roadmap": [7, 21, 61], "place": [7, 9, 11, 39, 41, 56], "draft": 7, "gpio": [7, 14, 18, 21, 33], "mode": [7, 10, 19, 26, 29, 37, 48, 49, 51, 55], "switch": [7, 20, 21, 23, 29], "movement": [7, 48], "safeti": [7, 33], "skill": 7, "prefer": 7, "familiar": [7, 61], "mentor": 7, "\u0161togl": [7, 8], "size": [7, 39, 53, 56], "350": 7, "hour": 7, "difficulti": 7, "medium": 7, "focus": [7, 8, 10], "although": [7, 10, 13, 17, 50], "easi": [7, 11], "therefor": [7, 10, 11, 21, 41, 47, 48, 50], "often": [7, 24, 28, 41, 47], "orchestr": 7, "purpos": [7, 23, 26, 27, 29, 30, 31, 32, 33, 34, 35, 51], "conductor": 7, "scenario": [7, 49], "moment": [7, 50], "right": [7, 21, 39], "replac": [7, 13, 40, 50], "high": [7, 11, 49], "moveit2": [7, 8, 40, 60], "simplecontrollermanag": 7, "goal": [7, 8, 17, 23, 29, 30, 31, 32, 34, 35, 45, 48, 50, 61], "form": [7, 21], "behavior": [7, 18, 33, 49], "benchmark": 7, "statu": [7, 10, 13, 20, 23, 48], "format": [7, 33, 37, 47, 50], "preset": 7, "modul": [7, 26], "reli": 7, "doubl": [7, 18, 23, 33, 36, 37, 38, 39, 45, 48, 51, 53, 55, 56, 57], "desir": [7, 15, 48, 50], "improv": [7, 11], "readabl": [7, 33], "earlier": 7, "concept": [7, 8, 9, 10, 21, 23], "introduc": [7, 8, 10, 23, 33], "essenti": [7, 23], "group": [7, 10, 11, 17, 50, 61], "instanc": [7, 11, 26, 47], "imu": [7, 17, 40], "typic": [7, 17, 28, 47, 48], "acceleromet": 7, "gyroscop": 7, "compass": 7, "part": [7, 8, 17, 33, 41, 49, 50, 51], "Such": [7, 26], "struct": 7, "low": [7, 8, 11], "profil": 7, "relev": [7, 37, 48, 51, 55, 61], "addition": [7, 33, 36, 38, 57, 61], "few": [7, 8, 40], "175": 7, "rewrit": [7, 61], "rich": 7, "motiv": 7, "adopt": 7, "port": [7, 13, 14, 17], "quit": 7, "miss": [7, 8, 9, 47, 49, 50], "diff_drive_control": [7, 10, 20, 28], "consist": [7, 14, 50, 61], "onc": [7, 8, 9, 23, 25, 28, 29, 30, 31, 33, 34, 40], "identifi": [7, 33], "much": [7, 23, 25, 27, 28, 29, 30, 31, 32, 34, 41, 50], "303": 7, "304": 7, "stretch": 7, "realtime_tool": [7, 61], "81": [7, 37], "302": 7, "unit": 7, "gmock": 7, "cc": [8, 49, 50], "BY": [8, 49, 50], "licens": [8, 49, 50], "author": [8, 10], "either": [8, 23, 29, 30, 31, 32, 34, 35, 47, 49], "down": [8, 33, 37], "below": [8, 11, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 48, 49, 50], "compani": 8, "my": 8, "company_nam": 8, "alreadi": [8, 9, 19, 20, 21, 23, 26, 33, 35, 40, 41, 50], "know": [8, 9, 17], "act": [8, 9], "kernel": [8, 9, 11], "struggl": [8, 9], "cover": [8, 9], "product": [8, 9, 47], "variou": [8, 9, 23, 34], "littl": [8, 9, 11], "run": [8, 9, 10, 11, 18, 20, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 40, 49, 55], "practic": [8, 9], "overview": [8, 9], "chain": [8, 9, 12, 20, 21, 33, 37, 48, 51, 55], "debug": [8, 9, 18], "top": [8, 9], "involv": [8, 9, 11], "bring": [8, 9, 21], "locu": 8, "stogl": [8, 9], "consult": 8, "tricycl": [8, 40, 56], "event": 8, "pixel": 8, "prefac": 8, "introduct": 8, "plapp": 8, "agnost": [8, 33], "share": [8, 18, 19, 33, 41, 55], "well": [8, 11, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 50], "perform": [8, 11, 33], "heavi": 8, "practition": 8, "guid": [8, 19, 41], "virtual": [8, 10, 25, 38], "talk": 8, "delv": 8, "deeper": 8, "what": [8, 23, 33], "explicit": [8, 11, 33, 48], "emerg": 8, "handler": 8, "mock": [8, 12, 19], "usag": [8, 11, 17, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "openli": 8, "record": 8, "fiveai": 8, "ltd": 8, "best": [8, 11, 41], "focu": [8, 10], "becom": [8, 26], "util": 8, "3rd": 8, "parti": 8, "nav2": [8, 40], "tip": [8, 33, 37], "hot": 8, "shown": [8, 33, 49], "furthermor": [8, 28], "offer": [8, 11, 19, 33], "expos": [8, 21, 26], "problem": [8, 61], "manipul": [8, 21, 23, 26, 33, 34, 48, 60], "plan": [8, 61], "autonom": 8, "navig": [8, 9], "ideal": [8, 18], "made": [8, 13], "mobil": [8, 21, 25, 28, 39, 55, 56, 60], "arm": [8, 23, 26, 34, 37], "extra": [8, 33, 47], "readi": [8, 9, 19, 21, 26, 40, 41], "studi": 8, "ur": 8, "With": [8, 33, 35, 50], "moveit": [8, 18], "ingredi": 8, "scale": [8, 48], "factor": [8, 39], "teach": 8, "pendant": 8, "influenc": 8, "picknik": 8, "inc": 8, "lovro": 8, "ivanov": 8, "zelenak": 8, "rune": 8, "s\u00f8e": 8, "knudsen": 8, "onlin": [8, 19, 41], "trajectori": [8, 23, 33, 40, 48, 51, 61], "admitt": [8, 40], "One": [8, 10, 24], "reason": [8, 10, 11, 33], "upgrad": 8, "ros1": [8, 21], "better": 8, "realtim": [8, 11, 33, 39, 50, 56, 61], "contact": 8, "insert": 8, "singl": [8, 30, 45, 56], "waypoint": [8, 49, 50], "mani": [8, 33, 40, 41], "teleoper": 8, "kinemat": [8, 10, 21, 28, 33, 36, 37, 38, 55, 57], "acceler": [8, 21, 29, 33, 37, 39, 46, 48, 49, 50, 51, 56], "jerk": [8, 39, 56], "obei": [8, 33], "demo": [8, 17], "booth": 8, "zeleank": 8, "unifi": 8, "life": [8, 33], "cycl": [8, 33, 40], "_control": [8, 21], "wild": 8, "materi": 8, "quick": [8, 13], "layer": 8, "aka": 8, "systemcompon": 8, "forward": [8, 18, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 40, 48, 50, 51, 61], "done": [8, 9, 10, 19, 23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 40, 41], "look": [8, 28], "modifi": 8, "simpli": [8, 11, 23, 49, 50], "edit": 8, "collect": [8, 42, 52, 58], "semant": [8, 17, 37, 43, 46, 53], "monolit": 8, "controlko": 8, "imperi": 9, "octob": 9, "present": [9, 11, 14, 17, 50], "ubuntu": [9, 11], "engin": [9, 19, 41], "compos": 9, "grab": 9, "roscon2023_workshop": 9, "now": [9, 10, 11, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41, 49], "workspac": [9, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 41], "w": 9, "git": [9, 21, 33], "clone": [9, 21, 33], "roscon2023_control_workshop": 9, "ci": 9, "compil": [9, 19, 33, 41], "termin": [9, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "park": 9, "f": [9, 21, 37], "dev": 9, "tmux": 9, "ctrl": [9, 23], "b": [9, 21, 33], "arrow": 9, "kei": 9, "brought": 9, "propos": [10, 61], "minim": [10, 37, 61], "viabl": [10, 33], "serial": [10, 33], "tri": [10, 48], "clariti": 10, "arbitrari": [10, 33, 50], "order": [10, 33, 51], "nevertheless": [10, 51], "convinc": 10, "would": [10, 47, 51], "unnecessari": 10, "long": 10, "term": [10, 51, 61], "clearer": 10, "let": [10, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34], "controllers_chain": 10, "position_track": 10, "pid": [10, 40, 48, 49, 50, 61], "imagin": 10, "flexibli": 10, "preced": 10, "step": [10, 15, 19, 21, 41, 49, 61], "At": [10, 19, 26, 41], "attach": 10, "disabl": [10, 18, 39, 55], "subscrib": [10, 24, 25, 26, 33], "differenti": [10, 21, 28, 38, 39, 40, 60, 61], "interfaceconfigur": [10, 33], "input_interface_configur": 10, "const": [10, 13, 15, 33], "anoth": [10, 11, 15, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 50], "simplic": [10, 33], "try": [10, 33], "exclus": [10, 33], "rather": [10, 21, 49], "void": 10, "set_chained_mod": 10, "bool": [10, 15, 37, 39, 45, 47, 48, 51, 55, 56], "flag": [10, 15, 19, 41, 48], "on_set_chained_mod": 10, "pid_refer": 10, "controller_nam": [10, 11, 20, 37, 41, 50, 51, 55], "v_x": 10, "v_y": 10, "w_z": 10, "cmd_vel": [10, 28, 39, 56], "cmd_vel_unstamp": 10, "Its": [10, 61], "continu": [10, 48, 49, 50, 51], "chainabl": [10, 21, 26, 39, 50], "ownership": 10, "process": [10, 19, 33, 41, 49], "vector": [10, 26, 33, 41], "invers": [10, 33, 37], "rule": [10, 11, 19, 41], "think": [10, 21], "break": [10, 18], "middl": [10, 38], "unavail": [10, 25, 26], "unclaim": [10, 20, 25, 26, 29], "inact": [10, 11, 20, 23, 29, 33, 40], "feasibl": 10, "interface_configuration_typ": 10, "jitter": 11, "thread": [11, 33], "sched_fifo": 11, "prioriti": 11, "addgroup": 11, "usermod": 11, "whoami": 11, "afterward": 11, "secur": 11, "conf": [11, 33], "soft": 11, "rtprio": 11, "memlock": 11, "102400": 11, "appli": [11, 20, 33, 37, 39, 50], "log": 11, "again": [11, 16, 23, 24, 28, 33], "normal": [11, 33, 37, 48, 51], "linux": 11, "comput": [11, 21, 39, 55, 56], "throughput": 11, "suit": 11, "lt": 11, "beta": 11, "rt": 11, "amd64": 11, "debian": 11, "bullsey": 11, "lowlat": 11, "come": [11, 21, 50], "lot": [11, 23, 25, 26, 27, 28, 29, 30, 31, 32, 34], "being": [11, 25], "realli": 11, "std_msg": [11, 23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 44, 52, 58], "reload": [11, 16, 20], "hardware_components_initial_st": 11, "map": [11, 18, 47, 50], "attribut": [11, 33], "full": [11, 19, 21, 41, 43], "unconfigur": [11, 16, 20, 23, 33], "arm1": 11, "arm2": 11, "base3": 11, "empti": [11, 39, 41, 43, 46, 47, 50, 51, 55, 56], "integ": [11, 40], "frequenc": [11, 40], "deal": 11, "namespac": [11, 15, 19, 33, 39, 40, 41, 47], "control_nod": 11, "robot_control": [11, 29, 33], "robot_state_pub_nod": 11, "remap": [11, 25], "relai": 11, "startup": [11, 18], "h": [11, 19, 20, 41], "param_fil": 11, "n": 11, "controller_typ": 11, "timeout": [11, 20, 39, 45, 48, 55, 56], "controller_manager_timeout": 11, "argument": [11, 19, 20, 23, 25, 27, 28, 29, 30, 31, 32, 34], "exit": [11, 20], "leav": 11, "kill": [11, 20, 33], "wait": [11, 20, 32, 48], "until": [11, 33, 49], "mai": [11, 13, 30, 40, 42, 52, 58], "taken": [11, 55], "becaus": [11, 17, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 49], "rclcpp": [11, 15, 19, 33, 41], "than": [11, 37, 43, 45, 48, 50, 51, 55, 56], "global": 11, "forcibli": 11, "lead": [11, 50], "duplic": [11, 48, 51, 55], "occur": [11, 33], "whether": [11, 37], "sibl": 11, "hierarchi": 11, "workaround": 11, "nodeopt": [11, 41], "pass": [11, 15, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "caus": [11, 49, 50, 55], "get_cm_node_opt": 11, "arg": 11, "_target_node_nam": 11, "__node": 11, "dst_node_nam": 11, "info": [11, 13, 15, 19, 33], "std": [11, 14, 33, 39, 48, 56], "make_shar": 11, "some_optional_namespac": 11, "simplest": 11, "switch_control": [11, 23], "broadcast": [11, 17, 18, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 47], "achiev": [11, 15, 33, 42, 48, 52, 58], "return": [11, 13, 15, 16, 19, 23, 33, 41, 45, 47, 49, 50], "NOT": 11, "FOR": 11, "detect": 11, "listen": [11, 48], "doxygen": [12, 19], "cascad": 12, "substanti": 13, "renam": 13, "on_init": [13, 15, 19, 33, 41], "callbackreturn": [13, 15, 16, 19, 33], "baseinterfac": 13, "remov": 13, "base_interfac": 13, "hpp": [13, 15, 19, 21, 33, 37, 41], "hardware_interface_status_valu": 13, "rclcpp_lifecycl": [13, 15, 19, 33, 41], "strictli": [13, 17], "success": [13, 15, 16, 19, 33, 41, 45, 50], "status_": 13, "previous_st": [13, 15, 16, 33], "return_typ": [13, 15, 16, 33, 41], "in_deactiv": 13, "undefin": 13, "refern": 13, "symbol": 13, "node_interfac": [13, 33], "lifecyclenodeinterfac": [13, 19, 33], "rclcpp_lifecyl": 13, "cmakelist": [13, 19, 33, 41], "txt": [13, 19, 33, 41], "1256": 14, "otherwis": [14, 19, 21, 37, 41, 47, 48], "runtime_error": 14, "thrown": 14, "syntax": 14, "mimic": [14, 18, 25], "offici": [14, 21], "within": [14, 17, 23, 37, 50], "finger_right": 14, "offset": [14, 18, 47, 48], "advic": 15, "xmln": 15, "wiki": [15, 18, 36, 38, 49, 50, 57], "system_interfac": 15, "main_loop_update_r": 15, "desired_hw_update_r": 15, "my_system_interfac": 15, "mysystemhardwar": 15, "unsign": [15, 40], "int": [15, 39, 53, 55, 56], "main_loop_update_rate_": 15, "desired_hw_update_rate_": 15, "stoi": 15, "info_": [15, 33], "hardware_paramet": 15, "reset": [15, 33, 55], "counter": 15, "update_loop_counter_": 15, "durat": [15, 33], "period": [15, 33, 48], "interfer": 15, "hardware_go": 15, "comm": 15, "oper": [15, 33, 61], "sinc": [15, 29, 33, 38], "indic": [15, 29, 33, 48], "first_read_pass_": 15, "first_write_pass_": 15, "last_read_time_": 15, "desired_hw_update_period_": 15, "last_write_time_": 15, "previou": [15, 33, 49, 61], "on_error": [16, 19, 33], "failur": 16, "recov": 16, "devic": 17, "associ": 17, "coupl": 17, "ship": 17, "cannot": [17, 26, 33, 43, 50], "keyword": 17, "digit": 17, "signal": [17, 39], "electr": 17, "analog": 17, "vacuum": [17, 24], "flang": 17, "off": 17, "rrbotsystemmutiplegpio": 17, "example_param_hw_start_duration_sec": 17, "example_param_hw_stop_duration_sec": 17, "example_param_hw_slowdown": 17, "flange_digital_io": 17, "digital_output1": 17, "digital_output2": 17, "digital_input1": 17, "digital_input2": 17, "flange_analog_io": [17, 24], "analog_output1": [17, 24], "mock_hardwar": 17, "analog_input1": [17, 24], "analog_input2": [17, 24], "flange_vacuum": [17, 24], "suction": 17, "grasp": 17, "multimod": 17, "multimodalgripp": 17, "parallel_fing": 17, "temperatur": [17, 21], "feedback": [17, 18, 27, 47, 48, 50, 51, 55, 56], "adjust": [17, 20, 23, 33], "calibr": 17, "2d": [17, 30, 31], "ft": [17, 30, 31, 43], "choic": [17, 55], "matric": 17, "rrbotforcetorquesensor2d": 17, "forcetorquesensor2dhardwar": 17, "fx": 17, "tz": 17, "kuka_tcp": 17, "fx_rang": 17, "tz_rang": 17, "temp_feedback": 17, "calibration_matrix_nr": 17, "mirror": [18, 24], "correspond": [18, 19, 33, 41, 55, 61], "offlin": 18, "advantag": 18, "pipe": 18, "even": [18, 25, 26, 50], "boost": 18, "fake": 18, "disable_command": 18, "boolean": [18, 40], "erron": [18, 33], "noth": 18, "suddenli": 18, "Or": [18, 23, 29, 30, 31, 32, 34, 35], "mock_sensor_command": 18, "mock_gpio_command": 18, "position_state_following_offset": 18, "custom_interface_with_following_offset": 18, "certain": [18, 33, 42, 52, 58], "prepar": [19, 29, 41], "ament_cmak": [19, 41], "easiest": [19, 41], "search": [19, 41], "pkg": [19, 41], "package_nam": [19, 41], "robot_hardware_interface_nam": 19, "visibility_control": [19, 41], "window": [19, 39, 41, 56], "copi": [19, 41], "prefix": [19, 37, 39, 41, 43, 46, 53], "guard": [19, 41], "ifndef": [19, 41], "preprocessor": [19, 41], "friend": [19, 41], "interface_typ": [19, 41], "uniqu": [19, 33, 41], "snake_cas": [19, 41], "interfacetyp": 19, "hardwareinterfacenam": 19, "public": [19, 33, 41], "on_cleanup": [19, 33], "on_shutdown": [19, 33], "overrid": [19, 33, 41, 42, 50, 52, 58], "export_state_interfac": [19, 33], "export_command_interfac": [19, 33], "prepare_command_mode_switch": 19, "perform_command_mode_switch": 19, "further": [19, 41], "exact": [19, 41], "simplifi": [19, 33, 41, 61], "valid": [19, 21, 48, 51, 53], "fine": [19, 25, 28, 41], "opposit": [19, 41], "remind": 19, "joint_nam": [19, 37, 41], "shutdown": [19, 33], "gracefulli": 19, "store": [19, 41], "close": [19, 41], "class_list_macro": [19, 33, 41], "my_hardware_interface_packag": 19, "robothardwareinterfacenam": 19, "second": [19, 20, 23, 26, 29, 30, 31, 32, 33, 34, 35, 39, 41, 49, 51, 61], "visibl": [19, 41], "mock_compon": [19, 24, 28], "bottom": [19, 33, 41], "test_load_": [19, 41], "load_generic_system_2dof": 19, "test_generic_system": 19, "find_packag": [19, 41], "directori": [19, 39, 41, 43, 46, 53], "ament": [19, 41], "cmake": 19, "pluginlib_export_plugin_description_fil": [19, 33, 41], "ament_cmake_gmock": [19, 41], "ament_add_gmock": [19, 41], "ament_export_librari": [19, 41], "ament_packag": [19, 41], "test_depend": [19, 41], "rememb": [19, 41], "root": [19, 41], "enjoi": [19, 41], "great": [19, 41], "templat": [19, 21, 33, 41], "shell": [19, 41], "onward": 19, "spin": 20, "spin_tim": 20, "hidden": 20, "discoveri": 20, "daemon": 20, "test_controller_nam": 20, "test_control": 20, "diffdrivecontrol": [20, 28], "verbos": 20, "label": [20, 24, 27, 28, 30, 31, 32, 49], "hardware_component_nam": 20, "hardware_compon": 20, "ctrl1": 20, "ctrl2": 20, "strict": 20, "asap": 20, "switch_timeout": 20, "tmp": 20, "controller_diagram": 20, "gv": 20, "pdf": [20, 33], "demonstr": [21, 23, 25, 26, 28, 29, 34, 35], "prove": 21, "checkout": 21, "roscon2022_workshop": 21, "hardwareinterfac": [21, 33], "diffbot": 21, "degre": [21, 33, 50, 55], "freedom": [21, 33, 55], "components_architecture_and_urdf_exampl": 21, "revolut": [21, 23, 26, 33, 34], "drive": [21, 25, 28, 36, 38, 39, 40, 55, 56, 57, 60, 61], "accord": [21, 28, 33], "tutori": 21, "intermedi": 21, "carlikebot": 21, "bicycl": [21, 25, 40, 55], "steer": [21, 25, 36, 38, 40, 55, 56, 57], "tba": 21, "tabl": 21, "easili": 21, "aptitud": 21, "might": [21, 49], "own": [21, 23, 33], "merg": 21, "procedur": 21, "rviz2": [21, 23], "visual": [21, 23, 31, 33, 47], "joint_state_publisher_gui": [21, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "ros2_control_demo_example_1": [21, 23], "view_robot": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "omit": 21, "example_1": [21, 23, 24, 26, 35], "rviz": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 47], "slider": 21, "around": [21, 43, 46, 48, 51, 53], "ros2_control_demo_example_2": [21, 28], "categori": 21, "individu": [21, 41, 43, 53], "position_in_degre": 21, "hardware_interface_type_valu": [21, 37], "6dof": 21, "invert": 23, "pendulum": 23, "fun": 23, "proprietari": [23, 25, 27, 28, 29, 30, 31, 32, 34], "view": [23, 33], "recreat": 23, "robotmodel": 23, "displai": [23, 26, 27, 29, 30, 31, 32, 34, 35], "ros2_control_demo_descript": [23, 25], "ok": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 41], "warn": [23, 25, 27, 28, 29, 30, 31, 32, 34, 47], "invalid": [23, 25, 27, 28, 29, 30, 31, 32, 34], "frame": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34, 37, 39, 56], "odom": [23, 25, 27, 28, 29, 30, 31, 32, 34, 39, 55, 56], "cantransform": [23, 25, 27, 28, 29, 30, 31, 32, 34], "target_fram": [23, 25, 27, 28, 29, 30, 31, 32, 34], "happen": [23, 25, 27, 28, 29, 30, 31, 32, 33, 34], "exemplari": [23, 27, 29, 30, 31, 32, 34, 36, 38, 55, 57], "orang": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "yellow": [23, 26, 27, 29, 30, 31, 32, 34, 35], "rectangl": [23, 26, 27, 29, 30, 31, 32, 34], "introspect": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34], "list_hardware_interfac": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "entrypoint": 23, "nomin": [23, 39], "marker": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "list_control": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "forward_position_control": [23, 24, 26, 29, 30, 31, 32, 34, 35], "forward_command_control": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 52, 58], "pub": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "float64multiarrai": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35, 42, 44, 52, 58], "everi": [23, 29, 30, 31, 32, 33, 34, 35, 40, 44, 48, 61], "test_forward_position_control": [23, 29, 30, 31, 32, 34, 35], "block": [23, 26, 27, 29, 30, 31, 32, 33, 34], "got": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32], "50000": [23, 26, 30, 31, 32], "echo": [23, 24, 26, 28, 30, 31, 35], "joint_stat": [23, 25, 26, 28, 35, 47], "dynamic_joint_st": [23, 26, 35, 47], "load_control": 23, "joint_trajectory_position_control": 23, "successfulli": [23, 27, 32], "set_controller_st": 23, "rrbot_control": [23, 24, 26, 34, 35], "four": [23, 25, 27, 36], "test_joint_trajectory_control": 23, "rrbot_joint_trajectory_publish": 23, "rrbot_descript": [23, 24, 26, 27, 29, 30, 31, 32, 34, 35], "rrbot_forward_position_publish": [23, 35], "ros2_control_demo_example_10": 24, "contrast": 24, "gpio_control": 24, "gpiocontrol": 24, "interface_nam": [24, 43, 44], "1199574016": 24, "1676318848": 24, "rrbotsystemwithgpiohardwar": 24, "gp": 24, "list_hardware_compon": [24, 27, 28, 30, 31, 32], "faster": [24, 28, 39, 56], "genericsystem": [24, 28], "use_mock_hardwar": [24, 28], "ident": [24, 26, 28, 33, 35, 49], "unless": [24, 47], "nan": [24, 30, 48], "generic_system": 24, "wheel": [25, 36, 38, 39, 55, 56, 57], "front": [25, 36, 37, 38, 55, 56, 57], "vehicl": [25, 38], "angl": [25, 33, 38, 55], "similarli": 25, "rear": [25, 36, 38, 55, 56, 57], "carlik": 25, "ros2_control_demo_example_11": 25, "remap_odometry_tf": 25, "excess": [25, 28], "print": [25, 28, 47], "tf": [25, 39, 55], "tree": [25, 33, 39], "pose": [25, 39, 55, 56], "coordin": 25, "odometri": [25, 39, 55, 56], "bicycle_steering_control": 25, "tf_odometri": [25, 55], "angular": [25, 28, 39, 46, 55, 56], "linear": [25, 28, 33, 39, 46, 49, 51, 55, 56], "virtual_front_wheel_joint": 25, "virtual_rear_wheel_joint": 25, "bicyclesteeringcontrol": 25, "geometry_msg": [25, 28, 30, 31, 39, 43, 55], "twiststamp": [25, 28, 39, 55], "twist": [25, 28, 55, 56], "circl": [25, 28], "carlikebotsystemhardwar": 25, "carlikebot_control": 25, "carlikebot_system": 25, "example_12": 26, "known": 26, "passthrough_control": 26, "ros2_control_demo_example_12": 26, "joint2_position_control": 26, "passthroughcontrol": 26, "joint1_position_control": 26, "someth": 26, "automat": [26, 33, 35, 39, 56], "appear": 26, "whose": [26, 49], "henc": [26, 33], "launch_chained_control": 26, "position_control": [26, 40, 44, 45], "streamlin": 26, "clearli": 26, "sent": 26, "reflect": 26, "canopen_402": [27, 32], "modbu": [27, 32], "rs232": [27, 32], "rs485": [27, 32], "ros2_control_demo_example_14": 27, "rrbot_modular_actuators_without_feedback_sensors_for_position_feedback": 27, "rrbotmodularjoint2": [27, 32], "rrbotactuatorwithoutfeedback": 27, "rrbotmodularjoint1": [27, 32], "rrbotmodularpositionsensorjoint2": 27, "rrbotsensorpositionfeedback": 27, "rrbotmodularpositionsensorjoint1": 27, "forward_velocity_control": [27, 29], "000000": 27, "00000": [27, 28, 29], "25300": 27, "rrbot_actuator_without_feedback": 27, "rrbot_sensor_for_position_feedback": 27, "example_2": 28, "left_wheel_joint": 28, "right_wheel_joint": 28, "diffbot_base_control": 28, "diff": 28, "diffbotsystemhardwar": 28, "33333": 28, "calculate_dynam": 28, "diffbot_control": 28, "diffbot_descript": 28, "diffbot_system": 28, "example_3": 29, "fri": [29, 60], "abb": [29, 60], "yumi": 29, "schunk": [29, 60], "lwa4p": 29, "illeg": 29, "declin": 29, "faulti": 29, "ros2_control_demo_example_3": 29, "rrbot_system_multi_interfac": 29, "spawn": 29, "forward_acceleration_control": 29, "velocity_control": [29, 40, 44], "jointgroupvelocitycontrol": 29, "rrbotsystemmultiinterfacehardwar": 29, "po": [29, 37, 49], "78500": 29, "vel": [29, 55], "acc": 29, "control_lvl": 29, "forward_illegal1_control": 29, "forward_illegal2_control": 29, "1676209982": 29, "531163501": 29, "resource_manag": 29, "rrbotsystemmultiinterfac": 29, "did": 29, "531223835": 29, "reject": [29, 48, 49], "spawner": 29, "531717376": 29, "spawner_forward_illegal1_control": 29, "rrbot_multi_interface_forward_control": 29, "krc": 30, "prototyp": 30, "odri": [30, 60], "ros2_control_demo_example_4": 30, "rrbot_system_with_sensor": 30, "rrbotsystemwithsensor": 30, "rrbotsystemwithsensorhardwar": 30, "fts_broadcast": [30, 31], "force_torque_sensor_broadcast": [30, 31], "forcetorquesensorbroadcast": [30, 31], "wrench": [30, 31, 37], "republish": [30, 31], "wrenchstamp": [30, 31, 43], "stamp": [30, 31, 55, 56], "sec": [30, 31], "1676444704": [30, 31], "nanosec": [30, 31], "332221422": [30, 31], "tool_link": [30, 31], "946532964706421": 30, "0540995597839355": 30, "rrbot_with_sensor_control": 30, "pc": 31, "3d": [31, 33], "ros2_control_demo_example_5": 31, "rrbot_system_with_external_sensor": 31, "externalrrbotftsensor": 31, "externalrrbotforcetorquesensorhardwar": 31, "2126582860946655": 31, "3202226161956787": 31, "4302282333374023": 31, "540233612060547": 31, "647800624370575": 31, "7602499723434448": 31, "rrbot_with_external_sensor_control": 31, "rrbot_system_position_onli": 31, "external_rrbot_force_torque_sensor": 31, "mara": 32, "ros2_control_demo_example_6": 32, "rrbot_modular_actu": 32, "rrbotmodularjoint": 32, "rrbot_actu": 32, "queri": [33, 50], "enhanc": 33, "deploi": 33, "pattern": 33, "vendor": 33, "runtim": 33, "program": 33, "conform": 33, "newest": 33, "characterist": 33, "primari": [33, 50], "commerci": 33, "scratch": 33, "illustr": 33, "stl": 33, "dae": 33, "coars": 33, "mesh": 33, "fast": [33, 60], "collis": 33, "express": 33, "vertic": 33, "transform": [33, 39, 56], "rotat": [33, 39, 48, 56], "translat": [33, 39, 56], "proxim": 33, "face": 33, "co": 33, "planer": 33, "xy": 33, "plane": 33, "align": 33, "blender": 33, "begin": 33, "neg": [33, 37, 48], "pitch": 33, "yaw": 33, "repeat": 33, "robot_6_dof": 33, "base_link": [33, 37, 39, 55, 56], "link_0": 33, "inerti": 33, "mass": [33, 37], "inertia": 33, "ixx": 33, "ixi": 33, "ixz": 33, "iyi": 33, "iyz": 33, "izz": 33, "tool0": [33, 37], "base_joint": 33, "joint_1": 33, "link_1": 33, "061584": 33, "141592653589793": 33, "name_spac": 33, "class_nam": 33, "pi": [33, 48, 51], "enclos": 33, "previous": 33, "left": [33, 39, 47], "zero": [33, 37, 48, 49], "rel": [33, 49], "center": [33, 37], "uniform": 33, "consecut": 33, "motion": [33, 48], "subsequ": 33, "join": [33, 61], "speci": 33, "verifi": 33, "urdf_to_graphviz": 33, "r6bot": 33, "explain": 33, "robotsystem": 33, "ur5": 33, "five": 33, "hardware_interface_return_valu": 33, "hardware_interface_publ": 33, "commandinterfac": 33, "privat": 33, "memori": [33, 41], "alloc": 33, "establish": 33, "notabl": 33, "vari": 33, "fill": 33, "field": [33, 47, 49], "suppos": [33, 49], "tcp_force_torque_sensor": 33, "Their": 33, "pointer": 33, "state_interfaces_": 33, "nearli": 33, "command_interfaces_": 33, "constraint": [33, 37, 39, 41, 43, 45, 46, 48, 50, 51, 55, 56], "respons": 33, "turn": 33, "oppos": [33, 50], "tcp": [33, 37], "packet": 33, "robot_6_dof_hardwar": 33, "discov": 33, "library_nam": 33, "base_class_typ": 33, "human": 33, "notic": [33, 49], "just": 33, "add_librari": 33, "robot_hardwar": 33, "unlik": 33, "finit": 33, "transit": [33, 40, 49], "robotcontrol": 33, "nine": 33, "six": [33, 43], "callback": 33, "lifetim": 33, "restart": 33, "reconfigur": 33, "buffer": [33, 61], "transfer": 33, "eventu": 33, "mutex": 33, "guarante": [33, 49], "never": 33, "release_interfac": 33, "shut": 33, "free": [33, 39], "cleanup": 33, "r6bot_control": 33, "view_r6bot": 33, "ros2_control_demo_example_7": 33, "send_trajectori": 33, "circular": 33, "ros2_control_demo_example_8": 34, "rrbot_transmissions_system_position_onli": 34, "rrbottransmissionssystempositiononlyhardwar": 34, "transmission1": 34, "actuator1": 34, "transmission2": 34, "actuator2": 34, "383253": 34, "766505": 34, "53301": 34, "example_9": 35, "gz_ros2_control": 35, "ros2_control_demo_example_9": 35, "rrbot_gazebo": 35, "ax": [36, 37, 38, 43, 46, 51, 57], "traction": [36, 38, 55, 56, 57], "steerabl": [36, 38, 57], "generate_parameter_librari": [36, 37, 38, 39, 43, 44, 45, 46, 47, 48, 51, 53, 55, 56, 57], "parameter": [36, 38, 55, 57], "front_wheel_track": 36, "length": [36, 37, 46, 51, 55, 57], "en": [36, 38, 57], "wikipedia": [36, 38, 55, 57, 61], "wheelbas": [36, 38, 56, 57], "rear_wheel_track": 36, "distanc": [36, 38, 39, 50, 53, 56, 57], "front_wheels_radiu": [36, 57], "radiu": [36, 38, 39, 56, 57], "rear_wheels_radiu": [36, 57], "chainedcontrollerinterfac": 37, "kinematics_interfac": 37, "string_arrai": [37, 39, 44, 47, 48, 51, 55], "command_joint": [37, 48], "chainable_command_interfac": 37, "plugin_nam": 37, "plugin_packag": 37, "alpha": 37, "damp": 37, "coeffici": 37, "jacobian": 37, "pseudo": 37, "ft_sensor": 37, "filter_coeffici": 37, "filter": 37, "exponenti": 37, "fixed_world_fram": 37, "graviti": 37, "gravity_compens": 37, "cog": 37, "double_arrai": [37, 39, 46, 55, 56], "compens": 37, "equal": [37, 45, 46, 48], "weight": 37, "selected_ax": 37, "bool_arrai": 37, "rx": 37, "ry": 37, "rz": 37, "arrai": 37, "bound": 37, "0001": 37, "damping_ratio": 37, "ratio": 37, "zeta": 37, "sqrt": 37, "m": [37, 53, 55], "stiff": 37, "joint_damp": 37, "greater": [37, 45, 48, 56], "enable_parameter_update_without_reactiv": 37, "load_admittance_control": 37, "test_admittance_control": 37, "kuka_kr6": 37, "joint3": [37, 50], "joint4": [37, 50], "joint5": [37, 50], "joint6": [37, 50], "kinematics_interface_kdl": 37, "kinematicsinterfacekdl": 37, "stationari": 37, "group_nam": 37, "0005": 37, "ft_sensor_nam": 37, "link_6": 37, "005": 37, "calc": 37, "displac": 37, "x_d": 37, "828427": 37, "214": 37, "joint_refer": 37, "trajectory_msg": [37, 49, 50], "jointtrajectorypoint": [37, 49], "admittancecontrollerst": 37, "sensor_nam": [37, 43, 46, 53], "ackermann": [38, 40, 55], "probabl": 38, "front_wheel_radiu": 38, "rear_wheel_radiu": 38, "bodi": 39, "space": [39, 50], "hw_if_posit": [39, 40, 55], "hw_if_veloc": [39, 40, 55], "position_feedback": [39, 55], "use_stamped_vel": [39, 55, 56], "nav_msg": [39, 55], "estim": 39, "tf2_msg": [39, 55], "tfmessag": [39, 55], "enable_odom_tf": [39, 55, 56], "cmd_vel_out": 39, "publish_limited_veloc": 39, "left_wheel_nam": 39, "right_wheel_nam": 39, "wheel_separ": 39, "shortest": [39, 48, 56], "wrong": [39, 56], "behav": [39, 56], "correctli": [39, 56], "curv": [39, 56], "wheel_radiu": [39, 56], "slower": [39, 49, 56], "wheel_separation_multipli": 39, "todo": 39, "me": 39, "left_wheel_radius_multipli": 39, "right_wheel_radius_multipli": 39, "tf_frame_prefix_en": 39, "append": [39, 49], "tf_prefix": 39, "tf_frame_prefix": 39, "odom_id": 39, "base_frame_id": [39, 55, 56], "odom_frame_id": [39, 55, 56], "pose_covariance_diagon": [39, 55, 56], "covari": [39, 46, 55, 56], "tune": [39, 56], "sampl": [39, 49, 55, 56], "001": [39, 45, 56], "twist_covariance_diagon": [39, 55, 56], "speed": [39, 56], "open_loop": [39, 55, 56], "cmd_vel_timeout": [39, 56], "stale": [39, 48, 56], "velocity_rolling_window_s": [39, 55, 56], "publish_r": 39, "joint_limit": 39, "has_velocity_limit": 39, "has_acceleration_limit": 39, "has_jerk_limit": 39, "max_veloc": [39, 56], "numeric_limit": [39, 48, 56], "quiet_nan": [39, 48, 56], "min_veloc": [39, 56], "max_acceler": [39, 56], "min_acceler": [39, 56], "max_jerk": [39, 56], "min_jerk": [39, 56], "test_diff_drive_control": 39, "left_wheel": 39, "right_wheel": 39, "wheels_per_sid": 39, "commonli": 40, "effort_control": [40, 44, 45], "hw_if_acceler": 40, "hw_if_effort": 40, "represent": [40, 50], "rqt_joint_trajectory_control": [40, 50], "onconfigur": 40, "configure_control": 40, "unspecifi": 40, "is_async": 40, "asynchron": 40, "controllernam": 41, "person": 41, "get_node_opt": 41, "protect": 41, "reserv": 41, "importantli": 41, "ask": [41, 47], "sort": 41, "controller_name_namespac": 41, "controller_name_packag": 41, "ros2_control_test_asset": 41, "special": [42, 49, 52, 58], "wrapper": [43, 46, 53], "forcetorquesensor": 43, "6d": 43, "per": [43, 48], "less": [43, 51, 55], "example_nam": 43, "example_interfac": 43, "test_force_torque_sensor_broadcast": 43, "fts_sensor_fram": 43, "feedforward": 44, "multi_interface_forward_command_control": 44, "gripperactioncontrol": 45, "action_monitor_r": [45, 48, 50], "goal_toler": 45, "max_effort": 45, "allow_stal": 45, "stall": 45, "stall_velocity_threshold": 45, "threshold": 45, "stall_timeout": 45, "gripper_action_control": 45, "imusensor": 46, "orient": 46, "angular_veloc": 46, "linear_acceler": 46, "static_covariance_orient": 46, "static": 46, "row": 46, "static_covariance_angular_veloc": 46, "static_covariance_linear_acceler": 46, "test_imu_sensor_broadcast": 46, "imu_sensor": 46, "imu_sensor_fram": 46, "latter": 47, "matrix": [47, 55], "use_local_top": 47, "my_state_broadcast": 47, "extra_joint": 47, "map_interface_to_joint_st": 47, "usecas": 47, "hydraul": [47, 48], "relianc": 47, "techniqu": 47, "slightli": 47, "custom_interfac": 47, "kf_estimated_posit": 47, "derived_veloc": 47, "derived_effort": 47, "torque_sensor": 47, "current_sensor": 47, "jtc": [48, 51], "command_interface_type_combin": 48, "state_interface_type_combin": 48, "allow_partial_joints_go": [48, 50], "open_loop_control": [48, 50], "interpol": [48, 50, 51], "gain": [48, 51], "numer": 48, "allow_integration_in_goal_trajectori": [48, 49], "monitor": [48, 50], "interpolation_method": 48, "spline": 48, "allow_nonzero_velocity_at_trajectory_end": 48, "cmd_timeout": 48, "goal_tim": [48, 50], "toler": [48, 50], "jointtrajectori": [48, 49, 50], "stopped_velocity_toler": [48, 50], "infinit": 48, "amount": 48, "law": [48, 50], "k_": 48, "ff": 48, "v_d": 48, "k_p": 48, "k_i": 48, "sum": 48, "dt": 48, "k_d": 48, "s_d": 48, "i_clamp": 48, "clamp": [48, 51], "symmetr": 48, "ff_velocity_scal": 48, "feed": [48, 51], "angle_wraparound": [48, 51], "deprec": 48, "wrap": [48, 50, 51], "ie": [48, 49], "saniti": 49, "segment": [49, 50], "fault": 49, "reach": [49, 50], "datapoint": 49, "deduc": 49, "nor": 49, "discourag": 49, "yield": 49, "discontinu": [49, 50], "cubic": [49, 51], "quintic": [49, 51], "heun": 49, "grid": 49, "10m": 49, "deduct": 49, "nonzero": 49, "inconsist": 49, "overshoot": 49, "timestamp": 49, "arriv": 49, "necessarili": 49, "discard": 49, "substitut": 49, "smarter": 49, "preserv": 49, "later": 49, "flat": 49, "grei": 49, "red": 49, "traj": 49, "time_from_start": 49, "splice": 49, "held": [49, 50], "smooth": [49, 61], "longer": 49, "effect": 49, "Of": 49, "interest": 49, "adolfo": [49, 50], "rodriguez": [49, 50], "instant": 50, "citat": 50, "adapt": 50, "restrict": 50, "robust": 50, "clock": 50, "queu": 50, "preempt": 50, "cancel": 50, "notifi": 50, "abort": 50, "legal": 50, "subset": 50, "favor": 50, "violat": 50, "joint_trajectori": 50, "fire": 50, "sender": 50, "query_st": 50, "controller_st": [50, 51, 55], "cumbersom": 50, "jointtrajectorycontrollerst": 50, "querytrajectoryst": 50, "footnot": 50, "pidro": 51, "control_toolbox": [51, 61], "pd": 51, "theoret": 51, "misus": 51, "pid_control": 51, "pidcontrol": 51, "reference_and_state_dof_nam": 51, "reference_and_state_interfac": 51, "dof_nam": 51, "in_chained_mod": [51, 55], "multidofcommand": 51, "use_external_measured_st": 51, "measured_st": 51, "set_feedforward_control": 51, "std_srv": 51, "setbool": 51, "multidofstatestamp": 51, "antiwindup": 51, "i_clamp_max": 51, "i_clamp_min": 51, "feedforward_gain": 51, "rangesensor": 53, "radiation_typ": 53, "radiat": 53, "ultrason": 53, "infrar": 53, "field_of_view": 53, "arc": 53, "rad": [53, 55], "min_rang": 53, "minimum": 53, "max_rang": 53, "maximum": 53, "varianc": 53, "range_sensor_broadcast": 53, "test_range_sensor_broadcast": 53, "mendatori": 53, "range_sensor": 53, "range_sensor_fram": 53, "rqt": 54, "nomenclatur": 55, "unstamp": 55, "concret": 55, "tricylc": 55, "seer": 55, "front_steer": 55, "front_wheels_nam": 55, "rear_wheels_nam": 55, "traction_feedback_typ": 55, "reference_unstamp": 55, "steeringcontrollerstatu": 55, "reference_timeout": 55, "unwant": 55, "danger": 55, "behaviour": 55, "rear_wheels_state_nam": 55, "front_wheels_state_nam": 55, "number": 55, "averag": 55, "diagon": 55, "trail": 56, "axl": 56, "traction_joint_nam": 56, "steering_joint_nam": 56, "odom_only_twist": 56, "millisecond": 56, "500": 56, "publish_ackermann_command": 56, "old": 56, "max_deceler": 56, "min_deceler": 56, "max_posit": 56, "min_posit": 56, "wheel_track": 57, "isaac": 59, "webot": 59, "mujoco": 59, "algoryx": 59, "agx": 59, "canopen": 60, "ethercat": 60, "svh": 60, "finger": 60, "dimens": 60, "haptic": 60, "hoverboard": 60, "ndi": 60, "odriv": 60, "pca9685": 60, "bit": 60, "pwm": 60, "servo": 60, "clearpath": 60, "huski": 60, "a200": 60, "jackal": 60, "j100": 60, "warthog": 60, "w200": 60, "flexiv": 60, "rizon": 60, "husarion": 60, "rosbot": 60, "2r": 60, "pro": 60, "xl": 60, "openmanipul": 60, "igu": 60, "commonplac": 60, "kinova": 60, "kortex": 60, "gen3": 60, "pmb2": 60, "tiago": 60, "xarm": 60, "egm": 60, "iiqka": 60, "eci": 60, "sunris": 60, "kss": 60, "iiwa": 60, "lbr": 60, "med": 60, "mitsubishi": 60, "rv1a": 60, "overcom": 61, "idea": 61, "wide": 61, "toolkit": 61, "unreleas": 61, "question": 61, "wg": 61, "wednesdai": 61, "announc": 61, "discours": 61, "googl": 61, "bug": 61, "tracker": 61, "reproduc": 61, "regard": 61, "built": 61, "gmt": 61}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"acknowledg": 0, "maintain": 0, "contributor": 0, "compani": 0, "institut": 0, "contribut": 1, "pull": 1, "request": 1, "rule": 1, "repositori": [1, 21, 61], "process": [1, 11], "merg": 1, "write": [1, 16, 19, 33, 41], "document": [1, 10, 12, 61], "structur": [1, 5], "ci": 1, "configur": 1, "usag": [1, 2, 4], "gazebo_ros2_control": 2, "modifi": [2, 4], "build": [2, 3, 4, 21], "your": [2, 3, 4], "own": [2, 4], "To": [2, 4, 21], "run": [2, 3, 4, 21], "demo": [2, 4, 7, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "add": [2, 4, 7], "ros2_control": [2, 4, 5, 6, 7, 8, 9, 12, 17, 21, 33, 37, 40, 61], "tag": [2, 4], "urdf": [2, 3, 4, 33], "simpl": [2, 4], "setup": [2, 4], "us": [2, 4, 10, 11, 19, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 41, 50, 51], "mimic": [2, 4], "joint": [2, 4, 17, 50], "simul": [2, 4, 35, 59], "plugin": [2, 4, 33], "default": [2, 4], "behavior": [2, 4], "advanc": [2, 4], "custom": [2, 4], "set": [2, 4], "up": [2, 4], "control": [2, 3, 4, 5, 7, 10, 11, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 37, 39, 40, 41, 42, 44, 45, 50, 51, 52, 55, 58, 59], "gazebo_ros2_control_demo": 2, "get": 3, "start": 3, "instal": [3, 21], "binari": 3, "packag": [3, 21], "from": [3, 6, 7, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 51, 55, 60], "sourc": [3, 21], "architectur": 3, "manag": [3, 10, 11], "resourc": [3, 8, 10], "user": 3, "interfac": [3, 5, 17, 18, 20, 24, 29, 33, 34, 37, 39, 42, 44, 47, 50, 51, 52, 55, 58], "hardwar": [3, 5, 7, 11, 15, 16, 17, 19, 33, 44, 47, 50], "compon": [3, 5, 7, 14, 15, 16, 18, 19], "descript": [3, 33, 39, 50, 51, 55], "framework": 3, "robot": [3, 8, 21, 24, 27, 29, 30, 31, 32, 33, 34, 40, 60], "gz_ros2_control": 4, "gz_ros2_control_demo": 4, "differ": [5, 6, 15], "ros_control": [5, 6], "ro": [5, 6, 8, 37, 39, 42, 44, 52, 58, 59], "1": [5, 6, 23, 50], "class": [5, 10], "": [5, 39, 50, 51, 55], "access": 5, "migrat": [5, 6], "guid": [5, 6], "robothardwar": 5, "come": [6, 9], "between": 6, "2": [6, 37, 39, 42, 44, 52, 58], "distribut": 6, "project": 7, "idea": 7, "gsoc": 7, "2024": 7, "tutori": [7, 23, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35], "mission": 7, "support": [7, 60], "semant": 7, "featur": [7, 12, 39, 50, 56], "pariti": 7, "ros1": 7, "present": 8, "2023": [8, 9], "10": [8, 24], "18": 8, "roscon": [8, 9], "workshop": [8, 9], "steroid": [8, 9], "02": 8, "meetup": 8, "munich": 8, "5": [8, 31], "2022": 8, "12": [8, 26], "industri": [8, 24, 30, 31, 34], "confer": [8, 9], "06": 8, "fr": 8, "2021": 8, "world": 8, "07": 8, "weekli": 8, "13": 8, "rosdevdai": 8, "05": 8, "diagram": 8, "imag": 8, "summari": 9, "slide": 9, "befor": 9, "peopl": 9, "chain": [10, 26], "cascad": 10, "scope": 10, "background": 10, "knowledg": 10, "motiv": 10, "purpos": 10, "implement": 10, "A": 10, "base": 10, "chainablecontrol": 10, "inner": 10, "activ": 10, "deactiv": 10, "debug": 10, "output": [10, 39], "close": 10, "remark": 10, "determin": 11, "subscrib": [11, 39, 50, 51, 55], "paramet": [11, 18, 36, 37, 38, 39, 40, 42, 43, 44, 45, 46, 47, 48, 51, 52, 53, 55, 56, 57, 58], "handl": [11, 16], "multipl": [11, 29], "helper": 11, "script": 11, "spawner": 11, "unspawn": 11, "concept": [11, 12], "restart": 11, "all": 11, "api": 12, "foxi": 13, "galact": 13, "hardware_interfac": 13, "iron": 14, "jazzi": 14, "parser": 14, "updat": 15, "rate": 15, "By": 15, "count": 15, "loop": 15, "measur": 15, "elaps": 15, "time": 15, "guidelin": [16, 40], "best": [16, 40], "practic": [16, 40], "error": 16, "happen": 16, "dure": 16, "read": 16, "call": 16, "type": [17, 44, 47, 50], "sensor": [17, 30, 31, 43, 46, 53], "gpio": [17, 24], "exampl": [17, 21, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34, 35, 45, 46, 47, 48, 49, 53], "mock": 18, "gener": 18, "system": 18, "per": 18, "extern": [19, 31, 41], "refer": [19, 37, 39, 41, 50, 51, 55], "command": [20, 37, 47, 50, 51, 55, 56], "line": 20, "list_control": 20, "list_controller_typ": 20, "list_hardware_compon": 20, "list_hardware_interfac": 20, "load_control": 20, "reload_controller_librari": 20, "set_controller_st": 20, "set_hardware_component_st": 20, "switch_control": 20, "unload_control": 20, "view_controller_chain": 20, "what": 21, "you": 21, "can": 21, "find": 21, "thi": [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "goal": 21, "overview": [21, 33], "local": 21, "debian": 21, "docker": 21, "view": 21, "quick": 21, "hint": 21, "rrbot": [23, 26, 35], "step": [23, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35], "file": [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 45, 46, 47, 48, 53], "carlikebot": 25, "14": 27, "modular": [27, 32], "actuat": [27, 32], "provid": 27, "state": [27, 37, 50, 51, 55], "diffbot": 28, "3": 29, "4": 30, "integr": [30, 59], "connect": 31, "6": 32, "separ": 32, "commun": [32, 59, 60, 61], "each": 32, "7": 33, "full": 33, "6dof": 33, "geometri": 33, "cmake": 33, "librari": 33, "launch": 33, "8": 34, "an": [34, 45, 46, 47, 48, 53], "expos": 34, "transmiss": 34, "9": 35, "ackermann_steering_control": 36, "admitt": 37, "topic": [37, 42, 44, 52, 58], "bicycle_steering_control": 38, "diff_drive_control": 39, "other": [39, 40, 50, 56], "feedback": 39, "publish": [39, 50, 51, 55], "mobil": 40, "manipul": 40, "broadcast": [40, 43, 46, 53], "common": 40, "new": 41, "effort_control": 42, "jointgroupeffortcontrol": 42, "forc": 43, "torqu": 43, "forward_command_control": 44, "gripper": 45, "action": [45, 50], "list": [45, 46, 47, 48, 53], "imu": 46, "joint_state_broadcast": 47, "detail": 48, "about": 48, "trajectori": [49, 50], "represent": 49, "interpol": 49, "method": 49, "none": 49, "spline": 49, "visual": 49, "replac": 49, "joint_trajectory_control": 50, "preemption": 50, "polici": 50, "servic": [50, 51], "further": 50, "inform": 50, "pid": 51, "execut": [51, 55], "logic": [51, 55], "preced": [51, 55], "position_control": 52, "jointgrouppositioncontrol": 52, "rang": 53, "rqt_joint_trajectory_control": 54, "steering_controllers_librari": 55, "tricycle_control": 56, "veloc": 56, "tricycle_steering_control": 57, "velocity_control": 58, "jointgroupvelocitycontrol": 58, "host": 59, "protocol": 60, "end": 60, "effector": 60, "non": 60, "devic": 60, "offici": 60, "manufactur": 60, "unoffici": 60, "welcom": 61, "develop": 61, "organis": 61}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinx": 60}, "alltitles": {"Acknowledgements": [[0, "acknowledgements"]], "Maintainers": [[0, "maintainers"]], "Contributors": [[0, "contributors"]], "Companies and Institutions": [[0, "companies-and-institutions"]], "Contributing": [[1, "contributing"]], "Pull Requests": [[1, "pull-requests"]], "Rules for the repositories and process of merging pull requests": [[1, "rules-for-the-repositories-and-process-of-merging-pull-requests"]], "Writing documentation": [[1, "writing-documentation"]], "Repository structure and CI configuration": [[1, "repository-structure-and-ci-configuration"]], "CI configuration": [[1, "ci-configuration"]], "Documentation Usage": [[1, "documentation-usage"]], "gazebo_ros2_control": [[2, "gazebo-ros2-control"]], "Usage": [[2, "usage"], [4, "usage"]], "Modifying or building your own": [[2, "modifying-or-building-your-own"], [4, "modifying-or-building-your-own"]], "To run the demo": [[2, "to-run-the-demo"], [4, "to-run-the-demo"]], "Add ros2_control tag to a URDF": [[2, "add-ros2-control-tag-to-a-urdf"], [4, "add-ros2-control-tag-to-a-urdf"]], "Simple setup": [[2, "simple-setup"], [4, "simple-setup"]], "Using mimic joints in simulation": [[2, "using-mimic-joints-in-simulation"], [4, "using-mimic-joints-in-simulation"]], "Add the gazebo_ros2_control plugin": [[2, "add-the-gazebo-ros2-control-plugin"]], "Default gazebo_ros2_control Behavior": [[2, "default-gazebo-ros2-control-behavior"]], "Advanced: custom gazebo_ros2_control Simulation Plugins": [[2, "advanced-custom-gazebo-ros2-control-simulation-plugins"]], "Set up controllers": [[2, "set-up-controllers"], [4, "set-up-controllers"]], "gazebo_ros2_control_demos": [[2, "gazebo-ros2-control-demos"]], "Getting Started": [[3, "getting-started"]], "Installation": [[3, "installation"], [21, "installation"]], "Binary packages": [[3, "binary-packages"]], "Building from Source": [[3, "building-from-source"]], "Architecture": [[3, "architecture"]], "Controller Manager": [[3, "controller-manager"], [11, "controller-manager"]], "Resource Manager": [[3, "resource-manager"]], "Controllers": [[3, "controllers"]], "User Interfaces": [[3, "user-interfaces"]], "Hardware Components": [[3, "hardware-components"], [16, "hardware-components"]], "Hardware Description in URDF": [[3, "hardware-description-in-urdf"]], "Running the Framework for Your Robot": [[3, "running-the-framework-for-your-robot"]], "gz_ros2_control": [[4, "gz-ros2-control"]], "Add the gz_ros2_control plugin": [[4, "add-the-gz-ros2-control-plugin"]], "Default gz_ros2_control Behavior": [[4, "default-gz-ros2-control-behavior"]], "Advanced: custom gz_ros2_control Simulation Plugins": [[4, "advanced-custom-gz-ros2-control-simulation-plugins"]], "gz_ros2_control_demos": [[4, "gz-ros2-control-demos"]], "Differences to ros_control (ROS 1)": [[5, "differences-to-ros-control-ros-1"]], "Hardware Structures - classes": [[5, "hardware-structures-classes"]], "Hardware Interfaces": [[5, "hardware-interfaces"]], "Controller\u2019s Access to Hardware": [[5, "controller-s-access-to-hardware"]], "Migration Guide to ros2_control": [[5, "migration-guide-to-ros2-control"]], "RobotHardware to Components": [[5, "robothardware-to-components"]], "Controller Migration": [[5, "controller-migration"]], "Migration Guides": [[6, "migration-guides"]], "Coming from ros_control (ROS 1)": [[6, "coming-from-ros-control-ros-1"]], "Between different ROS 2 distributions": [[6, "between-different-ros-2-distributions"]], "ros2_control": [[6, "ros2-control"], [12, "ros2-control"]], "ros2_controllers": [[6, "ros2-controllers"], [40, "ros2-controllers"]], "Project Ideas for GSoC 2024": [[7, "project-ideas-for-gsoc-2024"]], "Tutorials and Demos for ros2_control": [[7, "tutorials-and-demos-for-ros2-control"]], "Mission-Control for ros2_control": [[7, "mission-control-for-ros2-control"]], "Add support for hardware semantic components": [[7, "add-support-for-hardware-semantic-components"]], "Feature-parity for controllers from ROS1": [[7, "feature-parity-for-controllers-from-ros1"]], "Resources": [[8, "resources"]], "Presentations": [[8, "presentations"]], "2023-10-18 ROSCon Workshop: ros2_control on Steroids": [[8, "roscon-workshop-ros2-control-on-steroids"]], "2023-02 ROS Meetup Munich #5": [[8, "ros-meetup-munich-5"]], "2022-12 ROS-Industrial Conference 2022": [[8, "ros-industrial-conference-2022"]], "2022-10 ROSCon 2022": [[8, "roscon-2022"]], "2022-06 ROSCon Fr 2022": [[8, "roscon-fr-2022"]], "2021-10 ROS World 2021": [[8, "ros-world-2021"]], "2021-10-07 Weekly Robotics Meetup #13": [[8, "weekly-robotics-meetup-13"]], "2021-06 ROSDevDay 2021": [[8, "rosdevday-2021"]], "2021-05 ROSCon Fr 2021": [[8, "roscon-fr-2021"]], "Diagrams": [[8, "diagrams"]], "Images": [[8, "images"]], "ROSCon 2023 Workshop": [[9, "roscon-2023-workshop"]], "ros2_control on Steroids": [[9, "ros2-control-on-steroids"]], "Summary": [[9, "summary"]], "Slides": [[9, "slides"]], "Before coming to the conference": [[9, "before-coming-to-the-conference"]], "People": [[9, "people"]], "Controller Chaining / Cascade Control": [[10, "controller-chaining-cascade-control"]], "Scope of the Document and Background Knowledge": [[10, "scope-of-the-document-and-background-knowledge"]], "Motivation, Purpose and Use": [[10, "motivation-purpose-and-use"]], "Implementation": [[10, "implementation"]], "A Controller Base-Class: ChainableController": [[10, "a-controller-base-class-chainablecontroller"]], "Inner Resource Management": [[10, "inner-resource-management"]], "Activation and Deactivation Chained Controllers": [[10, "activation-and-deactivation-chained-controllers"]], "Debugging outputs": [[10, "debugging-outputs"]], "Closing remarks": [[10, "closing-remarks"]], "Determinism": [[11, "determinism"]], "Subscribers": [[11, "subscribers"], [39, "subscribers"], [51, "subscribers"], [55, "subscribers"]], "Parameters": [[11, "parameters"], [18, "parameters"], [36, "parameters"], [37, "parameters"], [38, "parameters"], [39, "parameters"], [42, "parameters"], [43, "parameters"], [44, "parameters"], [45, "parameters"], [46, "parameters"], [47, "parameters"], [51, "parameters"], [52, "parameters"], [53, "parameters"], [55, "parameters"], [56, "parameters"], [57, "parameters"], [58, "parameters"]], "Handling Multiple Controller Managers": [[11, "handling-multiple-controller-managers"]], "Helper scripts": [[11, "helper-scripts"]], "spawner": [[11, "spawner"]], "unspawner": [[11, "unspawner"]], "Using the Controller Manager in a Process": [[11, "using-the-controller-manager-in-a-process"]], "Concepts": [[11, "concepts"], [12, "concepts"]], "Restarting all controllers": [[11, "restarting-all-controllers"]], "Restarting hardware": [[11, "restarting-hardware"]], "API Documentation": [[12, "api-documentation"]], "Features": [[12, "features"]], "Foxy to Galactic": [[13, "foxy-to-galactic"]], "hardware_interface": [[13, "hardware-interface"]], "Iron to Jazzy": [[14, "iron-to-jazzy"]], "component parser": [[14, "component-parser"]], "Different update rates for Hardware Components": [[15, "different-update-rates-for-hardware-components"]], "By counting loops": [[15, "by-counting-loops"]], "By measuring elapsed time": [[15, "by-measuring-elapsed-time"]], "Guidelines and Best Practices": [[16, "guidelines-and-best-practices"], [40, "guidelines-and-best-practices"]], "Handling of errors that happen during read() and write() calls": [[16, "handling-of-errors-that-happen-during-read-and-write-calls"]], "ros2_control hardware interface types": [[17, "ros2-control-hardware-interface-types"]], "Joints": [[17, "joints"]], "Sensors": [[17, "sensors"]], "GPIOs": [[17, "gpios"]], "Examples": [[17, "examples"], [21, "examples"]], "Mock Components": [[18, "mock-components"]], "Generic System": [[18, "generic-system"]], "Per-interface Parameters": [[18, "per-interface-parameters"]], "Writing a Hardware Component": [[19, "writing-a-hardware-component"]], "Useful External References": [[19, "useful-external-references"], [41, "useful-external-references"]], "Command Line Interface": [[20, "command-line-interface"]], "list_controllers": [[20, "list-controllers"]], "list_controller_types": [[20, "list-controller-types"]], "list_hardware_components": [[20, "list-hardware-components"]], "list_hardware_interfaces": [[20, "list-hardware-interfaces"]], "load_controller": [[20, "load-controller"]], "reload_controller_libraries": [[20, "reload-controller-libraries"]], "set_controller_state": [[20, "set-controller-state"]], "set_hardware_component_state": [[20, "set-hardware-component-state"]], "switch_controllers": [[20, "switch-controllers"]], "unload_controller": [[20, "unload-controller"]], "view_controller_chains": [[20, "view-controller-chains"]], "Demos": [[21, "demos"]], "What you can find in this repository": [[21, "what-you-can-find-in-this-repository"]], "Goals": [[21, "goals"]], "Examples Overview": [[21, "examples-overview"]], "Local installation": [[21, "local-installation"]], "Build from debian packages": [[21, "build-from-debian-packages"]], "Build from source": [[21, "build-from-source"]], "Using Docker": [[21, "using-docker"]], "To view the robot": [[21, "to-view-the-robot"]], "To run the ros2_control demos": [[21, "to-run-the-ros2-control-demos"]], "Quick Hints": [[21, "quick-hints"]], "Example 1: RRBot": [[23, "example-1-rrbot"]], "Tutorial steps": [[23, "tutorial-steps"], [25, "tutorial-steps"], [26, "tutorial-steps"], [27, "tutorial-steps"], [28, "tutorial-steps"], [29, "tutorial-steps"], [30, "tutorial-steps"], [31, "tutorial-steps"], [32, "tutorial-steps"], [34, "tutorial-steps"], [35, "tutorial-steps"]], "Files used for this demos": [[23, "files-used-for-this-demos"], [24, "files-used-for-this-demos"], [25, "files-used-for-this-demos"], [26, "files-used-for-this-demos"], [27, "files-used-for-this-demos"], [28, "files-used-for-this-demos"], [29, "files-used-for-this-demos"], [31, "files-used-for-this-demos"], [32, "files-used-for-this-demos"], [34, "files-used-for-this-demos"], [35, "files-used-for-this-demos"]], "Controllers from this demo": [[23, "controllers-from-this-demo"], [24, "controllers-from-this-demo"], [25, "controllers-from-this-demo"], [26, "controllers-from-this-demo"], [27, "controllers-from-this-demo"], [28, "controllers-from-this-demo"], [29, "controllers-from-this-demo"], [30, "controllers-from-this-demo"], [31, "controllers-from-this-demo"], [32, "controllers-from-this-demo"], [34, "controllers-from-this-demo"], [35, "controllers-from-this-demo"]], "Example 10: Industrial robot with GPIO interfaces": [[24, "example-10-industrial-robot-with-gpio-interfaces"]], "CarlikeBot": [[25, "carlikebot"]], "Example 12: Controller chaining with RRBot": [[26, "example-12-controller-chaining-with-rrbot"]], "Example 14: Modular robot with actuators not providing states": [[27, "example-14-modular-robot-with-actuators-not-providing-states"]], "DiffBot": [[28, "diffbot"]], "Example 3: Robots with multiple interfaces": [[29, "example-3-robots-with-multiple-interfaces"]], "Example 4: Industrial robot with integrated sensor": [[30, "example-4-industrial-robot-with-integrated-sensor"]], "Files used for this demo": [[30, "files-used-for-this-demo"]], "Example 5: Industrial robot with externally connected sensor": [[31, "example-5-industrial-robot-with-externally-connected-sensor"]], "Example 6: Modular Robots with separate communication to each actuator": [[32, "example-6-modular-robots-with-separate-communication-to-each-actuator"]], "Example 7: Full tutorial with a 6DOF robot": [[33, "example-7-full-tutorial-with-a-6dof-robot"]], "ros2_control overview": [[33, "ros2-control-overview"]], "Writing a URDF": [[33, "writing-a-urdf"]], "Geometry": [[33, "geometry"]], "URDF file": [[33, "urdf-file"]], "Writing a hardware interface": [[33, "writing-a-hardware-interface"]], "Plugin description file (hardware)": [[33, "plugin-description-file-hardware"]], "CMake library (hardware)": [[33, "cmake-library-hardware"]], "Writing a controller": [[33, "writing-a-controller"]], "Plugin description file (controller)": [[33, "plugin-description-file-controller"]], "CMake library (controller)": [[33, "cmake-library-controller"]], "Launching the example": [[33, "launching-the-example"]], "Example 8: Industrial Robots with an exposed transmission interface": [[34, "example-8-industrial-robots-with-an-exposed-transmission-interface"]], "Example 9: Simulation with RRBot": [[35, "example-9-simulation-with-rrbot"]], "ackermann_steering_controller": [[36, "ackermann-steering-controller"]], "Admittance Controller": [[37, "admittance-controller"]], "ROS 2 interface of the controller": [[37, "ros-2-interface-of-the-controller"], [42, "ros-2-interface-of-the-controller"], [44, "ros-2-interface-of-the-controller"], [52, "ros-2-interface-of-the-controller"], [58, "ros-2-interface-of-the-controller"]], "Topics": [[37, "topics"], [42, "topics"], [44, "topics"], [52, "topics"], [58, "topics"]], "ros2_control interfaces": [[37, "ros2-control-interfaces"]], "References": [[37, "references"], [39, "references"], [50, "references"]], "States": [[37, "states"], [50, "states"], [51, "states"], [55, "states"]], "Commands": [[37, "commands"], [47, "commands"], [50, "commands"], [51, "commands"], [55, "commands"]], "bicycle_steering_controller": [[38, "bicycle-steering-controller"]], "diff_drive_controller": [[39, "diff-drive-controller"]], "Other features": [[39, "other-features"], [50, "other-features"], [56, "other-features"]], "Description of controller\u2019s interfaces": [[39, "description-of-controller-s-interfaces"], [50, "description-of-controller-s-interfaces"], [51, "description-of-controller-s-interfaces"], [55, "description-of-controller-s-interfaces"]], "Feedback": [[39, "feedback"]], "Output": [[39, "output"]], "ROS 2 Interfaces": [[39, "ros-2-interfaces"]], "Publishers": [[39, "publishers"], [50, "publishers"], [51, "publishers"], [55, "publishers"]], "Controllers for Mobile Robots": [[40, "controllers-for-mobile-robots"]], "Controllers for Manipulators and Other Robots": [[40, "controllers-for-manipulators-and-other-robots"]], "Broadcasters": [[40, "broadcasters"]], "Common Controller Parameters": [[40, "common-controller-parameters"]], "Writing a new controller": [[41, "writing-a-new-controller"]], "effort_controllers": [[42, "effort-controllers"]], "effort_controllers/JointGroupEffortController": [[42, "effort-controllers-jointgroupeffortcontroller"]], "Force Torque Sensor Broadcaster": [[43, "force-torque-sensor-broadcaster"]], "forward_command_controller": [[44, "forward-command-controller"]], "Hardware interface type": [[44, "hardware-interface-type"], [47, "hardware-interface-type"]], "Gripper Action Controller": [[45, "gripper-action-controller"]], "List of parameters": [[45, "list-of-parameters"], [46, "list-of-parameters"], [47, "list-of-parameters"], [48, "list-of-parameters"], [53, "list-of-parameters"]], "An example parameter file": [[45, "an-example-parameter-file"], [46, "an-example-parameter-file"], [47, "an-example-parameter-file"], [48, "an-example-parameter-file"], [53, "an-example-parameter-file"]], "IMU Sensor Broadcaster": [[46, "imu-sensor-broadcaster"]], "joint_state_broadcaster": [[47, "joint-state-broadcaster"]], "Details about parameters": [[48, "details-about-parameters"]], "Trajectory Representation": [[49, "trajectory-representation"]], "Interpolation Method none": [[49, "interpolation-method-none"]], "Interpolation Method spline": [[49, "interpolation-method-spline"]], "Visualized Examples": [[49, "visualized-examples"]], "Trajectory Replacement": [[49, "trajectory-replacement"]], "joint_trajectory_controller": [[50, "joint-trajectory-controller"]], "Hardware interface types": [[50, "hardware-interface-types"]], "Using Joint Trajectory Controller(s)": [[50, "using-joint-trajectory-controller-s"]], "Preemption policy 1": [[50, "preemption-policy"]], "Actions 1": [[50, "actions"]], "Subscriber 1": [[50, "subscriber"]], "Services": [[50, "services"], [51, "services"]], "Further information": [[50, "further-information"]], "PID Controller": [[51, "pid-controller"]], "Execution logic of the controller": [[51, "execution-logic-of-the-controller"], [55, "execution-logic-of-the-controller"]], "Using the controller": [[51, "using-the-controller"]], "References (from a preceding controller)": [[51, "references-from-a-preceding-controller"], [55, "references-from-a-preceding-controller"]], "position_controllers": [[52, "position-controllers"]], "position_controllers/JointGroupPositionController": [[52, "position-controllers-jointgrouppositioncontroller"]], "Range Sensor Broadcaster": [[53, "range-sensor-broadcaster"]], "rqt_joint_trajectory_controller": [[54, "rqt-joint-trajectory-controller"]], "steering_controllers_library": [[55, "steering-controllers-library"]], "tricycle_controller": [[56, "tricycle-controller"]], "Velocity commands": [[56, "velocity-commands"]], "tricycle_steering_controller": [[57, "tricycle-steering-controller"]], "velocity_controllers": [[58, "velocity-controllers"]], "velocity_controllers/JointGroupVelocityController": [[58, "velocity-controllers-jointgroupvelocitycontroller"]], "Simulator Integrations": [[59, "simulator-integrations"]], "Hosted by ros-controls": [[59, "hosted-by-ros-controls"]], "Community": [[59, "community"]], "Supported Robots": [[60, "supported-robots"]], "Communication protocols": [[60, "communication-protocols"]], "End-effectors": [[60, "end-effectors"]], "Non robot-devices": [[60, "non-robot-devices"]], "Official (supported by robot manufacturer)": [[60, "official-supported-by-robot-manufacturer"]], "Unofficial (from the community)": [[60, "unofficial-from-the-community"]], "Welcome to the ros2_control documentation!": [[61, "welcome-to-the-ros2-control-documentation"]], "ros2_control Repositories": [[61, "ros2-control-repositories"]], "Development Organisation and Communication": [[61, "development-organisation-and-communication"]]}, "indexentries": {}}) \ No newline at end of file

KCw**W+_b1-2 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 E7L7zA8vpDevelopment Organisation and Communication -