[{"data":1,"prerenderedAt":804},["ShallowReactive",2],{"wiki-page-\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy":3,"wiki-doc-items-\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy":494,"language-switcher-data-\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy":788,"wiki-i18n-paths-\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy":803},{"id":4,"title":5,"body":6,"canonicalPath":475,"chapterDepth":293,"chapterOrder":476,"date":477,"description":263,"docI18nKey":478,"docKey":479,"docRoot":480,"docTitle":481,"extension":482,"i18nKey":483,"isBlogPost":484,"isWikiDoc":485,"isWikiIndex":484,"layout":486,"legacyPath":486,"locale":487,"localeSlug":488,"meta":489,"navigation":485,"path":475,"seo":490,"sourcePath":491,"sourceStem":483,"stem":492,"wikiDepth":293,"__hash__":493},"content\u002F_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-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",{},"\u002Fopt\u002Fros\u002Fjazzy\u002Fshare\u002Fnav2_bringup\u002Fparams\u002Fnav2_params.yaml",[18,25,26],{},[21,27,28],{},"\u002Fopt\u002Fros\u002Fjazzy\u002Fshare\u002Fnav2_bt_navigator\u002Fbehavior_trees\u002Fnavigate_to_pose_w_replanning_and_recovery.xml",[18,30,31],{},[21,32,33],{},"\u002Fopt\u002Fros\u002Fjazzy\u002Fshare\u002Fnav2_bt_navigator\u002Fbehavior_trees\u002Fnavigate_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\u002Fnav2.launch.py",[18,85,86],{},[21,87,88],{},"launch\u002Fbringup.launch.py",[18,90,91],{},[21,92,93],{},"launch\u002Fauto_slam.launch.py",[18,95,96,97,100,101,104,105],{},"Updated ",[21,98,99],{},"params\u002Fbt.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\u002FNavfnPlanner"," changed to ",[21,155,156],{},"nav2_navfn_planner::NavfnPlanner",[18,158,159,160,163,164,167],{},"Change ",[21,161,162],{},"nav2_behaviors\u002FSpin"," 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\u002Fcontroller parameter file.",[15,229,230,237],{},[18,231,232,233,236],{},"Merge the duplicate ",[21,234,235],{},"\u002F**"," 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\u002Fsetup.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\u002Fsetup.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\u002Frobot_state_publisher\u002FTF, 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},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy","1200-0300","2023-12-30","wiki\u002F2023-12-30-ros2-tutorial","en-us:2023-12-30-ros2-tutorial","\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial","Ros2 Tutorial","md","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-Humble2Jazzy",false,true,null,"en-US","en-us",{},{"title":5,"description":263},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-Humble2Jazzy","UoYNZvjXpjWjlcd-0TXxuhwYYnMRKAiMhA_gY_POqPQ",[495,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,582,587,592,597,602,607,612,617,621,626,630,635,640,645,650,655,660,665,670,675,680,685,690,695,700,705,710,715,720,725,730,735,740,745,750,755,760,765,770,775,780,785],{"path":496,"stem":497,"title":498,"date":477,"chapterOrder":499,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0100-ros2-jie-shao","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0100-ROS2介绍","Introduction to ROS2","0100",0,{"path":502,"stem":503,"title":504,"date":477,"chapterOrder":505,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0200-ru-men-cao-zuo","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0200-入门操作","Getting Started","0200",{"path":507,"stem":508,"title":509,"date":477,"chapterOrder":510,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0300-gong-zuo-kong-jian-yu-gong-neng-bao","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0300-工作空间与功能包","Workspace and Function Packages","0300",{"path":512,"stem":513,"title":514,"date":477,"chapterOrder":515,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0400-si-da-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0400-四大通信","Four Major Communications","0400",{"path":517,"stem":518,"title":519,"date":477,"chapterOrder":520,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0500-ros2-qi-ta-tong-xin-ji-zhi","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0500-ROS2其他通信机制","ROS2 Other Communication Mechanisms","0500",{"path":522,"stem":523,"title":524,"date":477,"chapterOrder":525,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0600-launch","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0600-Launch","Launch","0600",{"path":527,"stem":528,"title":529,"date":477,"chapterOrder":530,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0700-hui-su-rosbag2","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0700-回溯rosbag2","Replaying rosbag2","0700",{"path":532,"stem":533,"title":534,"date":477,"chapterOrder":535,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0800-zuo-biao-bian-huan-tf","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0800-坐标变换TF","Coordinate Transformation TF","0800",{"path":537,"stem":538,"title":539,"date":477,"chapterOrder":540,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0900-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0900-可视化平台RVIZ2与URDF建模语言","Visualization Platform RVIZ2 and URDF Modeling Language","0900",{"path":542,"stem":543,"title":544,"date":477,"chapterOrder":545,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1000-stage-ros2-fang-zhen-ping-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1000-Stage_Ros2仿真平台","Stage_Ros2 Simulation Platform","1000",{"path":547,"stem":548,"title":549,"date":477,"chapterOrder":550,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-gazeboclassic","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-GazeboClassic","Gezebo Classic","1100-0100",{"path":552,"stem":553,"title":554,"date":477,"chapterOrder":555,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0200-ignitiongazebo","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0200-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）","1100-0200",{"path":557,"stem":558,"title":559,"date":477,"chapterOrder":560,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-gazebosim","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-GazeboSim","Gz Sim（Gazebo Harmonic）","1100-0300",{"path":562,"stem":563,"title":564,"date":477,"chapterOrder":565,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0400-igngz2gzsim","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0400-Igngz2gzsim","Migrate Ign Gazebo to Gz Sim","1100-0400",{"path":567,"stem":568,"title":569,"date":477,"chapterOrder":570,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-gezebo-fang-zhen-ping-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-Gezebo仿真平台","Gazebo simulation platform","1100",{"path":572,"stem":573,"title":574,"date":477,"chapterOrder":575,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0100-humble-ban-ben","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0100-Humble版本","Humble Navigation Simulation","1200-0100",{"path":577,"stem":578,"title":579,"date":477,"chapterOrder":580,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0200-jazzy-ban-ben","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0200-Jazzy版本","Jazzy Navigation Simulation","1200-0200",{"path":475,"stem":492,"title":5,"date":477,"chapterOrder":476,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},{"path":583,"stem":584,"title":585,"date":477,"chapterOrder":586,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-机器人导航Navigation2(仿真篇)","Robot Navigation with Navigation2 (Simulation)","1200",{"path":588,"stem":589,"title":590,"date":477,"chapterOrder":591,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0100-boost-aiso","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0100-Boost.Aiso","Boost.Asio库","1300-0100-0100",{"path":593,"stem":594,"title":595,"date":477,"chapterOrder":596,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0200-ros2-serial-driver","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0200-ros2_serial_driver","ROS2 Serial Driver Library","1300-0100-0200",{"path":598,"stem":599,"title":600,"date":477,"chapterOrder":601,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-chuan-kou-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-串口通信","UART serial communication","1300-0100",{"path":603,"stem":604,"title":605,"date":477,"chapterOrder":606,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0100-socketcan","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0100-socketcan","SocketCAN","1300-0200-0100",{"path":608,"stem":609,"title":610,"date":477,"chapterOrder":611,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0200-ros2-socketcan","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0200-ros2_socketcan","ROS2_SocketCAN","1300-0200-0200",{"path":613,"stem":614,"title":615,"date":477,"chapterOrder":616,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-can-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-CAN通信","CAN communication","1300-0200",{"path":618,"stem":619,"title":590,"date":477,"chapterOrder":620,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-0100-boost-aiso","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-0100-Boost.Aiso","1300-0300-0100",{"path":622,"stem":623,"title":624,"date":477,"chapterOrder":625,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-tcp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-TCP通信","TCP communication","1300-0300",{"path":627,"stem":628,"title":590,"date":477,"chapterOrder":629,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-0100-boost-aiso","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-0100-Boost.Aiso","1300-0400-0100",{"path":631,"stem":632,"title":633,"date":477,"chapterOrder":634,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-UDP通信","UDP communication","1300-0400",{"path":636,"stem":637,"title":638,"date":477,"chapterOrder":639,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-linux-ying-jian-tong-xin","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-Linux硬件通信","Linux hardware communication","1300",{"path":641,"stem":642,"title":643,"date":477,"chapterOrder":644,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0100-ji-qi-ren-zu-cheng","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0100-机器人组成","Robot Composition","1400-0100",{"path":646,"stem":647,"title":648,"date":477,"chapterOrder":649,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0100-yuan-cheng-kai-fa-ssh","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0100-远程开发SSH","Remote Development SSH","1400-0200-0100",{"path":651,"stem":652,"title":653,"date":477,"chapterOrder":654,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0200-yuan-cheng-fang-wen-zhuo-mian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0200-远程访问桌面","Remote Desktop Access","1400-0200-0200",{"path":656,"stem":657,"title":658,"date":477,"chapterOrder":659,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-gong-kong-ji-zhi-yuan-cheng-kai-fa-huan-jing","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-工控机之远程开发环境","Remote Development Environment for Industrial PC","1400-0200",{"path":661,"stem":662,"title":663,"date":477,"chapterOrder":664,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0300-gong-kong-ji-zhi-wai-jie-usb-she-bei","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0300-工控机之外接USB设备","External USB Devices for the Industrial PC","1400-0300",{"path":666,"stem":667,"title":668,"date":477,"chapterOrder":669,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0400-fen-bu-shi-da-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0400-分布式搭建","Distributed setup","1400-0400",{"path":671,"stem":672,"title":673,"date":477,"chapterOrder":674,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-you-hua-ri-zhi","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-优化日志","Optimize logs","1400-0500",{"path":676,"stem":677,"title":678,"date":477,"chapterOrder":679,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0100-li-cheng-ji-odom","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0100-里程计Odom","odometry","1400-0600-0100",{"path":681,"stem":682,"title":683,"date":477,"chapterOrder":684,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0200-guan-xing-ji-imu","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0200-惯性计IMU","Inertial Measurement Unit (IMU)","1400-0600-0200",{"path":686,"stem":687,"title":688,"date":477,"chapterOrder":689,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0300-ji-guang-lei-da-lidar","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0300-激光雷达LiDAR","LiDAR","1400-0600-0300",{"path":691,"stem":692,"title":693,"date":477,"chapterOrder":694,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0400-xiang-ji-camera","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0400-相机Camera","Camera","1400-0600-0400",{"path":696,"stem":697,"title":698,"date":477,"chapterOrder":699,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0500-quan-qiu-ding-wei-gnss","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0500-全球定位GNSS","Global Navigation Satellite System (GNSS)","1400-0600-0500",{"path":701,"stem":702,"title":703,"date":477,"chapterOrder":704,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0600-shou-bing-joy","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0600-手柄joy","The query \"手柄JOY\" is a bit ambiguous. To help you better, could you please provide more details? For example:","1400-0600-0600",{"path":706,"stem":707,"title":708,"date":477,"chapterOrder":709,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0700-jian-pan-kong-zhi-jie-dian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0700-键盘控制节点","Keyboard control node","1400-0600-0700",{"path":711,"stem":712,"title":713,"date":477,"chapterOrder":714,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-ying-jian-ping-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-硬件平台","Hardware platform","1400-0600",{"path":716,"stem":717,"title":718,"date":477,"chapterOrder":719,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0700-zuo-biao-xi-yu-hua-ti-guan-xi","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0700-坐标系与话题关系","Coordinate System and Topic Relationship","1400-0700",{"path":721,"stem":722,"title":723,"date":477,"chapterOrder":724,"chapterDepth":386,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0100-lun-shi-li-cheng-ji-biao-ding","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0100-轮式里程计标定","Wheel odometry calibration","1400-0800-0100-0100",{"path":726,"stem":727,"title":728,"date":477,"chapterOrder":729,"chapterDepth":386,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0200-lun-shi-li-cheng-ji-yu-imu-rong-he","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0200-轮式里程计与IMU融合","Fusion of Wheel Odometry and IMU","1400-0800-0100-0200",{"path":731,"stem":732,"title":733,"date":477,"chapterOrder":734,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-lun-shi-li-cheng-ji-biao-ding-yu-rong-he","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-轮式里程计标定与融合","Wheel odometry calibration and fusion","1400-0800-0100",{"path":736,"stem":737,"title":738,"date":477,"chapterOrder":739,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0200-ji-guang-lei-da-gong-ju","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0200-激光雷达工具","Lidar Tool","1400-0800-0200",{"path":741,"stem":742,"title":743,"date":477,"chapterOrder":744,"chapterDepth":314,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0300-xiang-ji-shi-yong-jin-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0300-相机使用进阶","Advanced Camera Usage","1400-0800-0300",{"path":746,"stem":747,"title":748,"date":477,"chapterOrder":749,"chapterDepth":293,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-ying-jian-ping-tai-jin-jie","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-硬件平台进阶","Advanced Hardware Platform","1400-0800",{"path":751,"stem":752,"title":753,"date":477,"chapterOrder":754,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-ji-qi-ren-ying-jian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-机器人硬件","Robot hardware","1400",{"path":756,"stem":757,"title":758,"date":477,"chapterOrder":759,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1500-ros2-control","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1500-ROS2_Control","ROS2_Control","1500",{"path":761,"stem":762,"title":763,"date":477,"chapterOrder":764,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1600-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1600-Moveit2工业机器人机械臂","MoveIt2 industrial robot arm","1600",{"path":766,"stem":767,"title":768,"date":477,"chapterOrder":769,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1700-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1700-机器人导航Navigation2(实体篇)","Robot Navigation with Navigation2 (Physical Robot)","1700",{"path":771,"stem":772,"title":773,"date":477,"chapterOrder":774,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1800-microros","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1800-MicroROS","MicroROS","1800",{"path":776,"stem":777,"title":778,"date":477,"chapterOrder":779,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-Webots仿真平台","Webots simulation platform","1900",{"path":781,"stem":782,"title":783,"date":477,"chapterOrder":784,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":484},"\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F2000-opencv","_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F2000-OpenCV","OpenCV","2000",{"path":480,"stem":786,"title":787,"date":477,"chapterOrder":486,"chapterDepth":500,"docKey":479,"docRoot":480,"docTitle":481,"isWikiDoc":485,"isWikiIndex":485},"_i18n\u002Fen-us\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Findex","ROS2 Robot Operating System Tutorial",{"variants":789},[790,791,794,797,800],{"path":475,"localeSlug":488,"i18nKey":483},{"path":792,"localeSlug":793,"i18nKey":483},"\u002Fzh-hant\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy","zh-hant",{"path":795,"localeSlug":796,"i18nKey":483},"\u002Fzh-hk\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy","zh-hk",{"path":798,"localeSlug":799,"i18nKey":483},"\u002Fzh-tw\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy","zh-tw",{"path":801,"localeSlug":802,"i18nKey":483},"\u002Fzh-cn\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy","zh-cn",[475,491,792,491,795,491,798,491,801,491],1784646854609]