[{"data":1,"prerenderedAt":863},["ShallowReactive",2],{"wiki-page-/en-us/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy":3,"wiki-doc-items-/en-us/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy":495,"language-switcher-data-/en-us/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy":847,"wiki-i18n-paths-/en-us/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy":862},{"id":4,"title":5,"body":6,"canonicalPath":475,"chapter":476,"chapterSort":477,"date":478,"description":263,"docI18nKey":479,"docKey":480,"docRoot":481,"docTitle":482,"extension":483,"i18nKey":484,"isBlogPost":485,"isWikiDoc":486,"isWikiIndex":485,"layout":487,"legacyPath":487,"locale":488,"localeSlug":489,"meta":490,"navigation":486,"path":475,"seo":491,"sourcePath":492,"sourceStem":484,"stem":493,"wikiDepth":293,"__hash__":494},"content/_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-3-Humble2Jazzy.md","Differences in Navigation between Humble and Jazzy",{"type":7,"value":8,"toc":468},"minimark",[9,14,34,38,46,249,253,256,266,275,279,282,321,324,346,350,353,397,403,419,422,464],[10,11,13],"h2",{"id":12},"refer-to-the-official-jazzy-example","Refer to the official Jazzy example",[15,16,17,24,29],"ul",{},[18,19,20],"li",{},[21,22,23],"code",{},"/opt/ros/jazzy/share/nav2_bringup/params/nav2_params.yaml",[18,25,26],{},[21,27,28],{},"/opt/ros/jazzy/share/nav2_bt_navigator/behavior_trees/navigate_to_pose_w_replanning_and_recovery.xml",[18,30,31],{},[21,32,33],{},"/opt/ros/jazzy/share/nav2_bt_navigator/behavior_trees/navigate_through_poses_w_replanning_and_recovery.xml",[10,35,37],{"id":36},"modified-content","Modified content",[39,40,41,42,45],"p",{},"Copy a humble package, name it ",[21,43,44],{},"mycar_navigation2_jazzy",", and then modify it.",[47,48,49,67,94,143,168,212,225],"ol",{},[18,50,51,52,54,55],{},"Keep the package name as ",[21,53,44],{},", and add or modify boundary comments in the relevant locations.",[15,56,57,62],{},[18,58,59],{},[21,60,61],{},"package.xml",[18,63,64],{},[21,65,66],{},"CMakeLists.txt",[18,68,69,70,73,74,76,77],{},"Keep the package path query for the launch file inside the ",[21,71,72],{},"_jazzy"," package as ",[21,75,44],{},", and add boundary comments for the modifications.",[15,78,79,84,89],{},[18,80,81],{},[21,82,83],{},"launch/nav2.launch.py",[18,85,86],{},[21,87,88],{},"launch/bringup.launch.py",[18,90,91],{},[21,92,93],{},"launch/auto_slam.launch.py",[18,95,96,97,100,101,104,105],{},"Updated ",[21,98,99],{},"params/bt.yaml"," to align with the official Jazzy ",[21,102,103],{},"bt_navigator"," example.",[15,106,107,110,117,123,137],{},[18,108,109],{},"Delete the list of Nav2 built-in BT plugins listed in the Humble era.",[18,111,112,113,116],{},"Jazzy will automatically load Nav2's built-in BT plugins, ",[21,114,115],{},"plugin_lib_names"," only keep custom BT plugins.",[18,118,119,120,122],{},"Do not pass ",[21,121,115],{}," when there is no custom BT plugin, to prevent an empty list from being parsed as an untyped parameter.",[18,124,125,126,129,130,129,133,136],{},"Added ",[21,127,128],{},"navigators",", ",[21,131,132],{},"navigate_to_pose",[21,134,135],{},"navigate_through_poses",".",[18,138,125,139,142],{},[21,140,141],{},"error_code_names"," to work with the error code blackboard variable in the official Jazzy behavior tree.",[18,144,145,146],{},"Update the planner and behavior plugins to match the Jazzy official pluginlib class names.",[15,147,148,157],{},[18,149,150,153,154],{},[21,151,152],{},"nav2_navfn_planner/NavfnPlanner"," changed to ",[21,155,156],{},"nav2_navfn_planner::NavfnPlanner",[18,158,159,160,163,164,167],{},"Change ",[21,161,162],{},"nav2_behaviors/Spin"," etc. to ",[21,165,166],{},"nav2_behaviors::Spin"," etc.",[18,169,170,171],{},"Update custom BT XML according to the official Jazzy behavior tree.",[15,172,173,179,188,204],{},[18,174,175,176,136],{},"Add ",[21,177,178],{},"BTCPP_format=\"4\"",[18,180,175,181,184,185,136],{},[21,182,183],{},"PlannerSelector"," and ",[21,186,187],{},"ControllerSelector",[18,189,190,129,193,196,197,200,201,136],{},[21,191,192],{},"ComputePathToPose",[21,194,195],{},"ComputePathThroughPoses",", and ",[21,198,199],{},"FollowPath"," added ",[21,202,203],{},"error_code_id",[18,205,175,206,184,209,136],{},[21,207,208],{},"WouldAPlannerRecoveryHelp",[21,210,211],{},"WouldAControllerRecoveryHelp",[18,213,214,215],{},"Updated the progress checker parameters to match the Jazzy official controller parameter names.",[15,216,217],{},[18,218,219,153,222],{},[21,220,221],{},"progress_checker_plugin",[21,223,224],{},"progress_checker_plugins: [\"progress_checker\"]",[18,226,227,228],{},"Organize the YAML structure of the planner/controller parameter file.",[15,229,230,237],{},[18,231,232,233,236],{},"Merge the duplicate ",[21,234,235],{},"/**"," top-level keys into one.",[18,238,239,184,242,245,246,248],{},[21,240,241],{},"global_costmap",[21,243,244],{},"local_costmap"," are placed under the same ",[21,247,235],{}," root key to avoid overwriting the server parameters during parameter parsing.",[10,250,252],{"id":251},"main-issues-fixed","Main issues fixed",[39,254,255],{},"Startup error:",[257,258,264],"pre",{"className":259,"code":261,"language":262,"meta":263},[260],"language-text","Failed to create navigator id navigate_to_pose. Exception: ID [ComputePathToPose] already registered\n","text","",[21,265,261],{"__ignoreMap":263},[39,267,268,269,271,272,274],{},"The reason is that the Humble configuration manually listed the built-in Nav2 BT plugins in ",[21,270,115],{},", while Jazzy automatically loads these built-in plugins, causing ",[21,273,192],{}," to be registered twice.",[10,276,278],{"id":277},"usage-instructions","Usage Instructions",[39,280,281],{},"Rebuild and source:",[257,283,287],{"className":284,"code":285,"language":286,"meta":263,"style":263},"language-bash shiki shiki-themes github-light github-dark","colcon build --symlink-install --packages-select mycar_navigation2_jazzy\nsource install/setup.bash\n","bash",[21,288,289,312],{"__ignoreMap":263},[290,291,294,298,302,306,309],"span",{"class":292,"line":293},"line",1,[290,295,297],{"class":296},"sScJk","colcon",[290,299,301],{"class":300},"sZZnC"," build",[290,303,305],{"class":304},"sj4cs"," --symlink-install",[290,307,308],{"class":304}," --packages-select",[290,310,311],{"class":300}," mycar_navigation2_jazzy\n",[290,313,315,318],{"class":292,"line":314},2,[290,316,317],{"class":304},"source",[290,319,320],{"class":300}," install/setup.bash\n",[39,322,323],{},"Launching the Jazzy version:",[257,325,327],{"className":284,"code":326,"language":286,"meta":263,"style":263},"ros2 launch mycar_navigation2_jazzy bringup.launch.py use_sim_time:=True\n",[21,328,329],{"__ignoreMap":263},[290,330,331,334,337,340,343],{"class":292,"line":293},[290,332,333],{"class":296},"ros2",[290,335,336],{"class":300}," launch",[290,338,339],{"class":300}," mycar_navigation2_jazzy",[290,341,342],{"class":300}," bringup.launch.py",[290,344,345],{"class":300}," use_sim_time:=True\n",[10,347,349],{"id":348},"verified","Verified",[39,351,352],{},"Executed",[257,354,356],{"className":284,"code":355,"language":286,"meta":263,"style":263},"colcon build --symlink-install --packages-select mycar_navigation2_jazzy\nros2 launch mycar_navigation2_jazzy nav2.launch.py --show-args\nros2 launch mycar_navigation2_jazzy bringup.launch.py --show-args\n",[21,357,358,370,384],{"__ignoreMap":263},[290,359,360,362,364,366,368],{"class":292,"line":293},[290,361,297],{"class":296},[290,363,301],{"class":300},[290,365,305],{"class":304},[290,367,308],{"class":304},[290,369,311],{"class":300},[290,371,372,374,376,378,381],{"class":292,"line":314},[290,373,333],{"class":296},[290,375,336],{"class":300},[290,377,339],{"class":300},[290,379,380],{"class":300}," nav2.launch.py",[290,382,383],{"class":304}," --show-args\n",[290,385,387,389,391,393,395],{"class":292,"line":386},3,[290,388,333],{"class":296},[290,390,336],{"class":300},[290,392,339],{"class":300},[290,394,342],{"class":300},[290,396,383],{"class":304},[39,398,399,400,136],{},"Additionally, a short startup check was performed using ",[21,401,402],{},"timeout",[257,404,405],{"className":284,"code":326,"language":286,"meta":263,"style":263},[21,406,407],{"__ignoreMap":263},[290,408,409,411,413,415,417],{"class":292,"line":293},[290,410,333],{"class":296},[290,412,336],{"class":300},[290,414,339],{"class":300},[290,416,342],{"class":300},[290,418,345],{"class":300},[39,420,421],{},"Result:",[15,423,424,433,441,447,457],{},[18,425,426,428,429,184,431,136],{},[21,427,103],{}," successfully created ",[21,430,132],{},[21,432,135],{},[18,434,435,438,439,136],{},[21,436,437],{},"planner_server"," successfully loaded ",[21,440,156],{},[18,442,443,446],{},[21,444,445],{},"controller_server"," successfully loaded DWB and all critics.",[18,448,449,452,453,456],{},[21,450,451],{},"behavior_server"," successfully loaded the ",[21,454,455],{},"nav2_behaviors::..."," plugin.",[18,458,459,460,463],{},"In a short startup environment without Gazebo/robot_state_publisher/TF, it eventually stops waiting for ",[21,461,462],{},"base_link -> map"," TF. This is an expected missing runtime environment, not a configuration fatal error.",[465,466,467],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":263,"searchDepth":314,"depth":314,"links":469},[470,471,472,473,474],{"id":12,"depth":314,"text":13},{"id":36,"depth":314,"text":37},{"id":251,"depth":314,"text":252},{"id":277,"depth":314,"text":278},{"id":348,"depth":314,"text":349},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy","12.3",12030000,"2023-12-30","wiki/2023-12-30-ros2-tutorial","en-us:2023-12-30-ros2-tutorial","/en-us/wiki/2023-12-30-ros2-tutorial","Ros2 Tutorial","md","wiki/2023-12-30-ros2-tutorial/ch12-3-Humble2Jazzy",false,true,null,"en-US","en-us",{},{"title":5,"description":263},"/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-3-Humble2Jazzy","g4wO6NXLXfnpsenPGgVPX4jeWh6x25oP_0w_Co1yMhI",[496,502,508,514,520,526,532,538,544,550,551,557,563,569,575,581,587,593,598,604,609,615,621,627,633,639,645,651,657,663,669,675,681,687,693,699,705,711,717,723,729,735,741,747,753,759,765,771,777,783,789,795,801,807,813,819,825,831,837,843],{"path":497,"stem":498,"title":499,"date":478,"chapter":500,"chapterSort":501,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch1-ros2-jie-shao","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch1-ROS2介绍","Introduction to ROS2","1",1000000,{"path":503,"stem":504,"title":505,"date":478,"chapter":506,"chapterSort":507,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch10-stage-ros2-fang-zhen-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch10-Stage_Ros2仿真平台","Stage_Ros2 Simulation Platform","10",10000000,{"path":509,"stem":510,"title":511,"date":478,"chapter":512,"chapterSort":513,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-1-gazeboclassic","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-1-GazeboClassic","Gezebo Classic","11.1",11010000,{"path":515,"stem":516,"title":517,"date":478,"chapter":518,"chapterSort":519,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）","11.2",11020000,{"path":521,"stem":522,"title":523,"date":478,"chapter":524,"chapterSort":525,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-GazeboSim","Gz Sim（Gazebo Harmonic）","11.3",11030000,{"path":527,"stem":528,"title":529,"date":478,"chapter":530,"chapterSort":531,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-4-igngz2gzsim","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-4-Igngz2gzsim","Migrate Ign Gazebo to Gz Sim","11.4",11040000,{"path":533,"stem":534,"title":535,"date":478,"chapter":536,"chapterSort":537,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-gezebo-fang-zhen-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-Gezebo仿真平台","Gazebo simulation platform","11",11000000,{"path":539,"stem":540,"title":541,"date":478,"chapter":542,"chapterSort":543,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-1-humble-ban-ben","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-1-Humble版本","Humble Navigation Simulation","12.1",12010000,{"path":545,"stem":546,"title":547,"date":478,"chapter":548,"chapterSort":549,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-2-jazzy-ban-ben","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-2-Jazzy版本","Jazzy Navigation Simulation","12.2",12020000,{"path":475,"stem":493,"title":5,"date":478,"chapter":476,"chapterSort":477,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},{"path":552,"stem":553,"title":554,"date":478,"chapter":555,"chapterSort":556,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch12-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch12-机器人导航Navigation2(仿真篇)","Robot Navigation with Navigation2 (Simulation)","12",12000000,{"path":558,"stem":559,"title":560,"date":478,"chapter":561,"chapterSort":562,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-1-boost-aiso","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-1-Boost.Aiso","Boost.Asio库","13.1.1",13010100,{"path":564,"stem":565,"title":566,"date":478,"chapter":567,"chapterSort":568,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-2-ros2-serial-driver","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-2-ros2_serial_driver","ROS2 Serial Driver Library","13.1.2",13010200,{"path":570,"stem":571,"title":572,"date":478,"chapter":573,"chapterSort":574,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-chuan-kou-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-1-串口通信","UART serial communication","13.1",13010000,{"path":576,"stem":577,"title":578,"date":478,"chapter":579,"chapterSort":580,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-1-socketcan","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-1-socketcan","SocketCAN","13.2.1",13020100,{"path":582,"stem":583,"title":584,"date":478,"chapter":585,"chapterSort":586,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-2-ros2-socketcan","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-2-ros2_socketcan","ROS2_SocketCAN","13.2.2",13020200,{"path":588,"stem":589,"title":590,"date":478,"chapter":591,"chapterSort":592,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-can-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-2-CAN通信","CAN communication","13.2",13020000,{"path":594,"stem":595,"title":560,"date":478,"chapter":596,"chapterSort":597,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-1-boost-aiso","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-1-Boost.Aiso","13.3.1",13030100,{"path":599,"stem":600,"title":601,"date":478,"chapter":602,"chapterSort":603,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-tcp-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-3-TCP通信","TCP communication","13.3",13030000,{"path":605,"stem":606,"title":560,"date":478,"chapter":607,"chapterSort":608,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-1-boost-aiso","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-1-Boost.Aiso","13.4.1",13040100,{"path":610,"stem":611,"title":612,"date":478,"chapter":613,"chapterSort":614,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-udp-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-4-UDP通信","UDP communication","13.4",13040000,{"path":616,"stem":617,"title":618,"date":478,"chapter":619,"chapterSort":620,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch13-linux-ying-jian-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch13-Linux硬件通信","Linux hardware communication","13",13000000,{"path":622,"stem":623,"title":624,"date":478,"chapter":625,"chapterSort":626,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-1-ji-qi-ren-zu-cheng","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-1-机器人组成","Robot Composition","14.1",14010000,{"path":628,"stem":629,"title":630,"date":478,"chapter":631,"chapterSort":632,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-1-yuan-cheng-kai-fa-ssh","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-1-远程开发SSH","Remote Development SSH","14.2.1",14020100,{"path":634,"stem":635,"title":636,"date":478,"chapter":637,"chapterSort":638,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-2-yuan-cheng-fang-wen-zhuo-mian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-2-远程访问桌面","Remote Desktop Access","14.2.2",14020200,{"path":640,"stem":641,"title":642,"date":478,"chapter":643,"chapterSort":644,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-gong-kong-ji-zhi-yuan-cheng-kai-fa-huan-jing","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-2-工控机之远程开发环境","Remote Development Environment for Industrial PC","14.2",14020000,{"path":646,"stem":647,"title":648,"date":478,"chapter":649,"chapterSort":650,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-3-gong-kong-ji-zhi-wai-jie-usb-she-bei","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-3-工控机之外接USB设备","External USB Devices for the Industrial PC","14.3",14030000,{"path":652,"stem":653,"title":654,"date":478,"chapter":655,"chapterSort":656,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-4-fen-bu-shi-da-jian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-4-分布式搭建","Distributed setup","14.4",14040000,{"path":658,"stem":659,"title":660,"date":478,"chapter":661,"chapterSort":662,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-5-you-hua-ri-zhi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-5-优化日志","Optimize logs","14.5",14050000,{"path":664,"stem":665,"title":666,"date":478,"chapter":667,"chapterSort":668,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-1-li-cheng-ji-odom","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-1-里程计Odom","odometry","14.6.1",14060100,{"path":670,"stem":671,"title":672,"date":478,"chapter":673,"chapterSort":674,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-2-guan-xing-ji-imu","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-2-惯性计IMU","Inertial Measurement Unit (IMU)","14.6.2",14060200,{"path":676,"stem":677,"title":678,"date":478,"chapter":679,"chapterSort":680,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-3-ji-guang-lei-da-lidar","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-3-激光雷达LiDAR","LiDAR","14.6.3",14060300,{"path":682,"stem":683,"title":684,"date":478,"chapter":685,"chapterSort":686,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-4-xiang-ji-camera","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-4-相机Camera","Camera","14.6.4",14060400,{"path":688,"stem":689,"title":690,"date":478,"chapter":691,"chapterSort":692,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-5-quan-qiu-ding-wei-gnss","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-5-全球定位GNSS","Global Navigation Satellite System (GNSS)","14.6.5",14060500,{"path":694,"stem":695,"title":696,"date":478,"chapter":697,"chapterSort":698,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-6-shou-bing-joy","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-6-手柄joy","The query \"手柄JOY\" is a bit ambiguous. To help you better, could you please provide more details? For example:","14.6.6",14060600,{"path":700,"stem":701,"title":702,"date":478,"chapter":703,"chapterSort":704,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-7-jian-pan-kong-zhi-jie-dian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-7-键盘控制节点","Keyboard control node","14.6.7",14060700,{"path":706,"stem":707,"title":708,"date":478,"chapter":709,"chapterSort":710,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-ying-jian-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-6-硬件平台","Hardware platform","14.6",14060000,{"path":712,"stem":713,"title":714,"date":478,"chapter":715,"chapterSort":716,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-7-zuo-biao-xi-yu-hua-ti-guan-xi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-7-坐标系与话题关系","Coordinate System and Topic Relationship","14.7",14070000,{"path":718,"stem":719,"title":720,"date":478,"chapter":721,"chapterSort":722,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-lun-shi-li-cheng-ji-biao-ding","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-1-轮式里程计标定","Wheel odometry calibration","14.8.1.1",14080101,{"path":724,"stem":725,"title":726,"date":478,"chapter":727,"chapterSort":728,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-2-lun-shi-li-cheng-ji-yu-imu-rong-he","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-2-轮式里程计与IMU融合","Fusion of Wheel Odometry and IMU","14.8.1.2",14080102,{"path":730,"stem":731,"title":732,"date":478,"chapter":733,"chapterSort":734,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-lun-shi-li-cheng-ji-biao-ding-yu-rong-he","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-1-轮式里程计标定与融合","Wheel odometry calibration and fusion","14.8.1",14080100,{"path":736,"stem":737,"title":738,"date":478,"chapter":739,"chapterSort":740,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-2-ji-guang-lei-da-gong-ju","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-2-激光雷达工具","Lidar Tool","14.8.2",14080200,{"path":742,"stem":743,"title":744,"date":478,"chapter":745,"chapterSort":746,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-3-xiang-ji-shi-yong-jin-jie","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-3-相机使用进阶","Advanced Camera Usage","14.8.3",14080300,{"path":748,"stem":749,"title":750,"date":478,"chapter":751,"chapterSort":752,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-ying-jian-ping-tai-jin-jie","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-8-硬件平台进阶","Advanced Hardware Platform","14.8",14080000,{"path":754,"stem":755,"title":756,"date":478,"chapter":757,"chapterSort":758,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch14-ji-qi-ren-ying-jian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch14-机器人硬件","Robot hardware","14",14000000,{"path":760,"stem":761,"title":762,"date":478,"chapter":763,"chapterSort":764,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch15-ros2-control","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch15-ROS2_Control","ROS2_Control","15",15000000,{"path":766,"stem":767,"title":768,"date":478,"chapter":769,"chapterSort":770,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch16-Moveit2工业机器人机械臂","MoveIt2 industrial robot arm","16",16000000,{"path":772,"stem":773,"title":774,"date":478,"chapter":775,"chapterSort":776,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch17-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch17-机器人导航Navigation2(实体篇)","Robot Navigation with Navigation2 (Physical Robot)","17",17000000,{"path":778,"stem":779,"title":780,"date":478,"chapter":781,"chapterSort":782,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch18-microros","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch18-MicroROS","MicroROS","18",18000000,{"path":784,"stem":785,"title":786,"date":478,"chapter":787,"chapterSort":788,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch19-webots-fang-zhen-ping-tai","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch19-Webots仿真平台","Webots simulation platform","19",19000000,{"path":790,"stem":791,"title":792,"date":478,"chapter":793,"chapterSort":794,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch2-ru-men-cao-zuo","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch2-入门操作","Getting Started","2",2000000,{"path":796,"stem":797,"title":798,"date":478,"chapter":799,"chapterSort":800,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch20-opencv","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch20-OpenCV","OpenCV","20",20000000,{"path":802,"stem":803,"title":804,"date":478,"chapter":805,"chapterSort":806,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch3-gong-zuo-kong-jian-yu-gong-neng-bao","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch3-工作空间与功能包","Workspace and Function Packages","3",3000000,{"path":808,"stem":809,"title":810,"date":478,"chapter":811,"chapterSort":812,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch4-si-da-tong-xin","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch4-四大通信","Four Major Communications","4",4000000,{"path":814,"stem":815,"title":816,"date":478,"chapter":817,"chapterSort":818,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch5-ros2-qi-ta-tong-xin-ji-zhi","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch5-ROS2其他通信机制","ROS2 Other Communication Mechanisms","5",5000000,{"path":820,"stem":821,"title":822,"date":478,"chapter":823,"chapterSort":824,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch6-launch","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch6-Launch","Launch","6",6000000,{"path":826,"stem":827,"title":828,"date":478,"chapter":829,"chapterSort":830,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch7-hui-su-rosbag2","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch7-回溯rosbag2","Replaying rosbag2","7",7000000,{"path":832,"stem":833,"title":834,"date":478,"chapter":835,"chapterSort":836,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch8-zuo-biao-bian-huan-tf","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch8-坐标变换TF","Coordinate Transformation TF","8",8000000,{"path":838,"stem":839,"title":840,"date":478,"chapter":841,"chapterSort":842,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":485},"/en-us/wiki/2023-12-30-ros2-tutorial/ch9-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch9-可视化平台RVIZ2与URDF建模语言","Visualization Platform RVIZ2 and URDF Modeling Language","9",9000000,{"path":481,"stem":844,"title":845,"date":478,"chapter":487,"chapterSort":846,"docKey":480,"docRoot":481,"docTitle":482,"isWikiDoc":486,"isWikiIndex":486},"_i18n/en-us/wiki/2023-12-30-ros2-tutorial/index","ROS2 Robot Operating System Tutorial",0,{"variants":848},[849,850,853,856,859],{"path":475,"localeSlug":489,"i18nKey":484},{"path":851,"localeSlug":852,"i18nKey":484},"/zh-hant/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy","zh-hant",{"path":854,"localeSlug":855,"i18nKey":484},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy","zh-hk",{"path":857,"localeSlug":858,"i18nKey":484},"/zh-tw/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy","zh-tw",{"path":860,"localeSlug":861,"i18nKey":484},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch12-3-humble2jazzy","zh-cn",[475,492,851,492,854,492,857,492,860,492],1780671801265]