[{"data":1,"prerenderedAt":904},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy":3,"wiki-doc-items-2023-12-30-ros2-tutorial":483,"wiki:author-members":892},{"id":4,"title":5,"authors":6,"body":8,"chapterDepth":289,"chapterOrder":470,"date":471,"description":260,"docKey":472,"docRoot":473,"docTitle":474,"extension":475,"isWikiDoc":476,"isWikiIndex":477,"meta":478,"navigation":476,"path":479,"seo":480,"stem":481,"wikiDepth":289,"__hash__":482},"wiki\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-Humble2Jazzy.md","Humble与Jazzy导航的差异",[7],"董佳辉",{"type":9,"value":10,"toc":463},"minimark",[11,16,36,39,47,247,250,253,263,272,275,278,317,320,342,345,348,392,399,415,418,459],[12,13,15],"h2",{"id":14},"参考的官方-jazzy-示例","参考的官方 Jazzy 示例",[17,18,19,26,31],"ul",{},[20,21,22],"li",{},[23,24,25],"code",{},"\u002Fopt\u002Fros\u002Fjazzy\u002Fshare\u002Fnav2_bringup\u002Fparams\u002Fnav2_params.yaml",[20,27,28],{},[23,29,30],{},"\u002Fopt\u002Fros\u002Fjazzy\u002Fshare\u002Fnav2_bt_navigator\u002Fbehavior_trees\u002Fnavigate_to_pose_w_replanning_and_recovery.xml",[20,32,33],{},[23,34,35],{},"\u002Fopt\u002Fros\u002Fjazzy\u002Fshare\u002Fnav2_bt_navigator\u002Fbehavior_trees\u002Fnavigate_through_poses_w_replanning_and_recovery.xml",[12,37,38],{"id":38},"修改内容",[40,41,42,43,46],"p",{},"可以复制一个humble的功能包并命名为 ",[23,44,45],{},"mycar_navigation2_jazzy",",然后拿这个功能包进行改动.",[48,49,50,68,95,143,167,210,223],"ol",{},[20,51,52,53,55,56],{},"将功能包名保持为 ",[23,54,45],{},"，并在相关位置补充修改边界注释。",[17,57,58,63],{},[20,59,60],{},[23,61,62],{},"package.xml",[20,64,65],{},[23,66,67],{},"CMakeLists.txt",[20,69,70,71,74,75,77,78],{},"将 ",[23,72,73],{},"_jazzy"," 包内 launch 文件的包路径查询保持为 ",[23,76,45],{},"，并补充修改边界注释。",[17,79,80,85,90],{},[20,81,82],{},[23,83,84],{},"launch\u002Fnav2.launch.py",[20,86,87],{},[23,88,89],{},"launch\u002Fbringup.launch.py",[20,91,92],{},[23,93,94],{},"launch\u002Fauto_slam.launch.py",[20,96,97,98,101,102,105,106],{},"对照 Jazzy 官方 ",[23,99,100],{},"bt_navigator"," 示例更新 ",[23,103,104],{},"params\u002Fbt.yaml","。",[17,107,108,111,118,124,137],{},[20,109,110],{},"删除 Humble 时代列出的 Nav2 内置 BT 插件列表。",[20,112,113,114,117],{},"Jazzy 会自动加载 Nav2 内置 BT 插件，",[23,115,116],{},"plugin_lib_names"," 只保留自定义 BT 插件。",[20,119,120,121,123],{},"没有自定义 BT 插件时不传 ",[23,122,116],{},"，避免空列表被解析成无类型参数。",[20,125,126,127,130,131,130,134,105],{},"新增 ",[23,128,129],{},"navigators","、",[23,132,133],{},"navigate_to_pose",[23,135,136],{},"navigate_through_poses",[20,138,126,139,142],{},[23,140,141],{},"error_code_names","，用于配合 Jazzy 官方行为树里的 error code blackboard 变量。",[20,144,145,146],{},"对照 Jazzy 官方 pluginlib 类名更新 planner 和 behavior 插件。",[17,147,148,157],{},[20,149,150,153,154],{},[23,151,152],{},"nav2_navfn_planner\u002FNavfnPlanner"," 改为 ",[23,155,156],{},"nav2_navfn_planner::NavfnPlanner",[20,158,159,162,163,166],{},[23,160,161],{},"nav2_behaviors\u002FSpin"," 等改为 ",[23,164,165],{},"nav2_behaviors::Spin"," 等",[20,168,169,170],{},"对照 Jazzy 官方行为树更新自定义 BT XML。",[17,171,172,178,187,202],{},[20,173,174,175,105],{},"添加 ",[23,176,177],{},"BTCPP_format=\"4\"",[20,179,174,180,183,184,105],{},[23,181,182],{},"PlannerSelector"," 和 ",[23,185,186],{},"ControllerSelector",[20,188,189,130,192,130,195,198,199,105],{},[23,190,191],{},"ComputePathToPose",[23,193,194],{},"ComputePathThroughPoses",[23,196,197],{},"FollowPath"," 添加 ",[23,200,201],{},"error_code_id",[20,203,174,204,183,207,105],{},[23,205,206],{},"WouldAPlannerRecoveryHelp",[23,208,209],{},"WouldAControllerRecoveryHelp",[20,211,212,213],{},"对照 Jazzy 官方 controller 参数名更新进度检查器参数。",[17,214,215],{},[20,216,217,153,220],{},[23,218,219],{},"progress_checker_plugin",[23,221,222],{},"progress_checker_plugins: [\"progress_checker\"]",[20,224,225,226],{},"整理 planner\u002Fcontroller 参数文件的 YAML 结构。",[17,227,228,235],{},[20,229,230,231,234],{},"将重复的 ",[23,232,233],{},"\u002F**"," 顶层键合并成一个。",[20,236,237,183,240,243,244,246],{},[23,238,239],{},"global_costmap",[23,241,242],{},"local_costmap"," 挂在同一个 ",[23,245,233],{}," 根键下，避免参数解析时覆盖 server 参数。",[12,248,249],{"id":249},"主要修复的问题",[40,251,252],{},"启动时报错：",[254,255,261],"pre",{"className":256,"code":258,"language":259,"meta":260},[257],"language-text","Failed to create navigator id navigate_to_pose. Exception: ID [ComputePathToPose] already registered\n","text","",[23,262,258],{"__ignoreMap":260},[40,264,265,266,268,269,271],{},"原因是 Humble 配置在 ",[23,267,116],{}," 中手动列出了 Nav2 内置 BT 插件，而 Jazzy 已经自动加载这些内置插件，导致 ",[23,270,191],{}," 被重复注册。",[12,273,274],{"id":274},"使用方式",[40,276,277],{},"重新构建并 source：",[254,279,283],{"className":280,"code":281,"language":282,"meta":260,"style":260},"language-bash shiki shiki-themes github-light github-dark","colcon build --symlink-install --packages-select mycar_navigation2_jazzy\nsource install\u002Fsetup.bash\n","bash",[23,284,285,308],{"__ignoreMap":260},[286,287,290,294,298,302,305],"span",{"class":288,"line":289},"line",1,[286,291,293],{"class":292},"sScJk","colcon",[286,295,297],{"class":296},"sZZnC"," build",[286,299,301],{"class":300},"sj4cs"," --symlink-install",[286,303,304],{"class":300}," --packages-select",[286,306,307],{"class":296}," mycar_navigation2_jazzy\n",[286,309,311,314],{"class":288,"line":310},2,[286,312,313],{"class":300},"source",[286,315,316],{"class":296}," install\u002Fsetup.bash\n",[40,318,319],{},"启动 Jazzy 版本：",[254,321,323],{"className":280,"code":322,"language":282,"meta":260,"style":260},"ros2 launch mycar_navigation2_jazzy bringup.launch.py use_sim_time:=True\n",[23,324,325],{"__ignoreMap":260},[286,326,327,330,333,336,339],{"class":288,"line":289},[286,328,329],{"class":292},"ros2",[286,331,332],{"class":296}," launch",[286,334,335],{"class":296}," mycar_navigation2_jazzy",[286,337,338],{"class":296}," bringup.launch.py",[286,340,341],{"class":296}," use_sim_time:=True\n",[12,343,344],{"id":344},"已验证",[40,346,347],{},"已执行：",[254,349,351],{"className":280,"code":350,"language":282,"meta":260,"style":260},"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",[23,352,353,365,379],{"__ignoreMap":260},[286,354,355,357,359,361,363],{"class":288,"line":289},[286,356,293],{"class":292},[286,358,297],{"class":296},[286,360,301],{"class":300},[286,362,304],{"class":300},[286,364,307],{"class":296},[286,366,367,369,371,373,376],{"class":288,"line":310},[286,368,329],{"class":292},[286,370,332],{"class":296},[286,372,335],{"class":296},[286,374,375],{"class":296}," nav2.launch.py",[286,377,378],{"class":300}," --show-args\n",[286,380,382,384,386,388,390],{"class":288,"line":381},3,[286,383,329],{"class":292},[286,385,332],{"class":296},[286,387,335],{"class":296},[286,389,338],{"class":296},[286,391,378],{"class":300},[40,393,394,395,398],{},"另外用 ",[23,396,397],{},"timeout"," 做过短启动检查：",[254,400,401],{"className":280,"code":322,"language":282,"meta":260,"style":260},[23,402,403],{"__ignoreMap":260},[286,404,405,407,409,411,413],{"class":288,"line":289},[286,406,329],{"class":292},[286,408,332],{"class":296},[286,410,335],{"class":296},[286,412,338],{"class":296},[286,414,341],{"class":296},[40,416,417],{},"结果：",[17,419,420,429,437,443,452],{},[20,421,422,424,425,183,427,105],{},[23,423,100],{}," 成功创建 ",[23,426,133],{},[23,428,136],{},[20,430,431,434,435,105],{},[23,432,433],{},"planner_server"," 成功加载 ",[23,436,156],{},[20,438,439,442],{},[23,440,441],{},"controller_server"," 成功加载 DWB 和所有 critics。",[20,444,445,434,448,451],{},[23,446,447],{},"behavior_server",[23,449,450],{},"nav2_behaviors::..."," 插件。",[20,453,454,455,458],{},"在没有 Gazebo\u002Frobot_state_publisher\u002FTF 的短启动环境里，最后停在等待 ",[23,456,457],{},"base_link -> map"," TF，这是预期的运行环境缺失，不是配置 fatal。",[460,461,462],"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":260,"searchDepth":310,"depth":310,"links":464},[465,466,467,468,469],{"id":14,"depth":310,"text":15},{"id":38,"depth":310,"text":38},{"id":249,"depth":310,"text":249},{"id":274,"depth":310,"text":274},{"id":344,"depth":310,"text":344},"1200-0300","2023-12-30","2023-12-30-ros2-tutorial","\u002Fwiki\u002F2023-12-30-ros2-tutorial","Ros2 Tutorial","md",true,false,{},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy",{"title":5,"description":260},"wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-Humble2Jazzy","d_j6C8glNQj992doAv8VOtdKL7b7IM9VxPnKkKAIL3Y",[484,491,497,503,509,515,521,527,533,539,545,551,557,563,569,575,581,587,589,595,601,607,613,619,625,631,637,643,649,655,661,667,673,679,685,690,696,701,707,713,719,725,731,737,743,749,755,761,767,773,779,785,791,797,803,809,815,821,827,833,839,845,851,857,863,869,875,881,887],{"path":485,"stem":486,"title":487,"authors":488,"date":471,"chapterOrder":489,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0100-ros2-jie-shao","wiki\u002F2023-12-30-ros2-tutorial\u002F0100-ROS2介绍","ROS2介绍",[7],"0100",0,{"path":492,"stem":493,"title":494,"authors":495,"date":471,"chapterOrder":496,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0200-ru-men-cao-zuo","wiki\u002F2023-12-30-ros2-tutorial\u002F0200-入门操作","入门操作",[7],"0200",{"path":498,"stem":499,"title":500,"authors":501,"date":471,"chapterOrder":502,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0300-gong-zuo-kong-jian-yu-gong-neng-bao","wiki\u002F2023-12-30-ros2-tutorial\u002F0300-工作空间与功能包","工作空间与功能包",[7],"0300",{"path":504,"stem":505,"title":506,"authors":507,"date":471,"chapterOrder":508,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0400-si-da-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F0400-四大通信","四大通信",[7],"0400",{"path":510,"stem":511,"title":512,"authors":513,"date":471,"chapterOrder":514,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0500-ros2-qi-ta-tong-xin-ji-zhi","wiki\u002F2023-12-30-ros2-tutorial\u002F0500-ROS2其他通信机制","ROS2其他通信机制",[7],"0500",{"path":516,"stem":517,"title":518,"authors":519,"date":471,"chapterOrder":520,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0600-launch","wiki\u002F2023-12-30-ros2-tutorial\u002F0600-Launch","Launch",[7],"0600",{"path":522,"stem":523,"title":524,"authors":525,"date":471,"chapterOrder":526,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0700-hui-su-rosbag2","wiki\u002F2023-12-30-ros2-tutorial\u002F0700-回溯rosbag2","回溯rosbag2",[7],"0700",{"path":528,"stem":529,"title":530,"authors":531,"date":471,"chapterOrder":532,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0800-zuo-biao-bian-huan-tf","wiki\u002F2023-12-30-ros2-tutorial\u002F0800-坐标变换TF","坐标变换TF",[7],"0800",{"path":534,"stem":535,"title":536,"authors":537,"date":471,"chapterOrder":538,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0900-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","wiki\u002F2023-12-30-ros2-tutorial\u002F0900-可视化平台RVIZ2与URDF建模语言","可视化平台RVIZ2与URDF建模语言",[7],"0900",{"path":540,"stem":541,"title":542,"authors":543,"date":471,"chapterOrder":544,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1000-stage-ros2-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1000-Stage_Ros2仿真平台","Stage_Ros2仿真平台",[7],"1000",{"path":546,"stem":547,"title":548,"authors":549,"date":471,"chapterOrder":550,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-gazeboclassic","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-GazeboClassic","Gezebo Classic",[7],"1100-0100",{"path":552,"stem":553,"title":554,"authors":555,"date":471,"chapterOrder":556,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0200-ignitiongazebo","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-0200-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）",[7],"1100-0200",{"path":558,"stem":559,"title":560,"authors":561,"date":471,"chapterOrder":562,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-gazebosim","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-GazeboSim","Gz Sim（Gazebo Harmonic）",[7],"1100-0300",{"path":564,"stem":565,"title":566,"authors":567,"date":471,"chapterOrder":568,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0400-igngz2gzsim","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-0400-Igngz2gzsim","将Ign Gazebo迁移至Gz Sim",[7],"1100-0400",{"path":570,"stem":571,"title":572,"authors":573,"date":471,"chapterOrder":574,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-gezebo-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-Gezebo仿真平台","Gezebo仿真平台",[7],"1100",{"path":576,"stem":577,"title":578,"authors":579,"date":471,"chapterOrder":580,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0100-humble-ban-ben","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0100-Humble版本","Humble导航仿真",[7],"1200-0100",{"path":582,"stem":583,"title":584,"authors":585,"date":471,"chapterOrder":586,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0200-jazzy-ban-ben","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0200-Jazzy版本","Jazzy导航仿真",[7],"1200-0200",{"path":479,"stem":481,"title":5,"authors":588,"date":471,"chapterOrder":470,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},[7],{"path":590,"stem":591,"title":592,"authors":593,"date":471,"chapterOrder":594,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0100-you-xian-zhuang-tai-ji-fsm","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0100-有限状态机FSM","有限状态机（Finite State Machine）",[7],"1200-0400-0100",{"path":596,"stem":597,"title":598,"authors":599,"date":471,"chapterOrder":600,"chapterDepth":381,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0100-ji-ben-gai-nian","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0100-基本概念","基本概念",[7],"1200-0400-0200-0100",{"path":602,"stem":603,"title":604,"authors":605,"date":471,"chapterOrder":606,"chapterDepth":381,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0200-kong-zhi-yu-zhuang-shi-gui-ze","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0200-控制与装饰规则","控制与装饰规则",[7],"1200-0400-0200-0200",{"path":608,"stem":609,"title":610,"authors":611,"date":471,"chapterOrder":612,"chapterDepth":381,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0300-di-yi-ge-wan-zheng-cheng-xu","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0300-第一个完整程序","第一个完整程序",[7],"1200-0400-0200-0300",{"path":614,"stem":615,"title":616,"authors":617,"date":471,"chapterOrder":618,"chapterDepth":381,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0400-jie-dian-zhi-jian-chuan-shu-ju","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0400-节点之间传数据","节点之间传数据",[7],"1200-0400-0200-0400",{"path":620,"stem":621,"title":622,"authors":623,"date":471,"chapterOrder":624,"chapterDepth":381,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0500-chi-xu-ren-wu-yu-zhong-zhi","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0500-持续任务与中止","持续任务与中止",[7],"1200-0400-0200-0500",{"path":626,"stem":627,"title":628,"authors":629,"date":471,"chapterOrder":630,"chapterDepth":381,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0600-zu-he-shi-ji-ren-wu","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0600-组合实际任务","组合实际任务",[7],"1200-0400-0200-0600",{"path":632,"stem":633,"title":634,"authors":635,"date":471,"chapterOrder":636,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-xing-wei-shu-bt","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-行为树BT","行为树（BehaviorTree.CPP）",[7],"1200-0400-0200",{"path":638,"stem":639,"title":640,"authors":641,"date":471,"chapterOrder":642,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-fsm-yu-bt","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-FSM与BT","有限状态机FSM与行为树BT",[7],"1200-0400",{"path":644,"stem":645,"title":646,"authors":647,"date":471,"chapterOrder":648,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-机器人导航Navigation2(仿真篇)","机器人导航Navigation2(仿真篇)",[7],"1200",{"path":650,"stem":651,"title":652,"authors":653,"date":471,"chapterOrder":654,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0100-boost-aiso","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0100-Boost.Aiso","Boost.Asio库",[7],"1300-0100-0100",{"path":656,"stem":657,"title":658,"authors":659,"date":471,"chapterOrder":660,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0200-ros2-serial-driver","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0200-ros2_serial_driver","ROS2 Serial Driver库",[7],"1300-0100-0200",{"path":662,"stem":663,"title":664,"authors":665,"date":471,"chapterOrder":666,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-chuan-kou-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-串口通信","UART串口通信",[7],"1300-0100",{"path":668,"stem":669,"title":670,"authors":671,"date":471,"chapterOrder":672,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0100-socketcan","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0100-socketcan","SocketCAN",[7],"1300-0200-0100",{"path":674,"stem":675,"title":676,"authors":677,"date":471,"chapterOrder":678,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0200-ros2-socketcan","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0200-ros2_socketcan","ROS2_SocketCAN",[7],"1300-0200-0200",{"path":680,"stem":681,"title":682,"authors":683,"date":471,"chapterOrder":684,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-can-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-CAN通信","CAN通信",[7],"1300-0200",{"path":686,"stem":687,"title":652,"authors":688,"date":471,"chapterOrder":689,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-0100-boost-aiso","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-0100-Boost.Aiso",[7],"1300-0300-0100",{"path":691,"stem":692,"title":693,"authors":694,"date":471,"chapterOrder":695,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-tcp-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-TCP通信","TCP通信",[7],"1300-0300",{"path":697,"stem":698,"title":652,"authors":699,"date":471,"chapterOrder":700,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-0100-boost-aiso","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-0100-Boost.Aiso",[7],"1300-0400-0100",{"path":702,"stem":703,"title":704,"authors":705,"date":471,"chapterOrder":706,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-UDP通信","UDP通信",[7],"1300-0400",{"path":708,"stem":709,"title":710,"authors":711,"date":471,"chapterOrder":712,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-linux-ying-jian-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-Linux硬件通信","Linux硬件通信",[7],"1300",{"path":714,"stem":715,"title":716,"authors":717,"date":471,"chapterOrder":718,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0100-ji-qi-ren-zu-cheng","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0100-机器人组成","机器人组成",[7],"1400-0100",{"path":720,"stem":721,"title":722,"authors":723,"date":471,"chapterOrder":724,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0100-yuan-cheng-kai-fa-ssh","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0100-远程开发SSH","远程开发SSH",[7],"1400-0200-0100",{"path":726,"stem":727,"title":728,"authors":729,"date":471,"chapterOrder":730,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0200-yuan-cheng-fang-wen-zhuo-mian","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0200-远程访问桌面","远程访问桌面",[7],"1400-0200-0200",{"path":732,"stem":733,"title":734,"authors":735,"date":471,"chapterOrder":736,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-gong-kong-ji-zhi-yuan-cheng-kai-fa-huan-jing","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-工控机之远程开发环境","工控机之远程开发环境",[7],"1400-0200",{"path":738,"stem":739,"title":740,"authors":741,"date":471,"chapterOrder":742,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0300-gong-kong-ji-zhi-wai-jie-usb-she-bei","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0300-工控机之外接USB设备","工控机之外接USB设备",[7],"1400-0300",{"path":744,"stem":745,"title":746,"authors":747,"date":471,"chapterOrder":748,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0400-fen-bu-shi-da-jian","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0400-分布式搭建","分布式搭建",[7],"1400-0400",{"path":750,"stem":751,"title":752,"authors":753,"date":471,"chapterOrder":754,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-you-hua-ri-zhi","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-优化日志","优化日志",[7],"1400-0500",{"path":756,"stem":757,"title":758,"authors":759,"date":471,"chapterOrder":760,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0100-li-cheng-ji-odom","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0100-里程计Odom","里程计Odom",[7],"1400-0600-0100",{"path":762,"stem":763,"title":764,"authors":765,"date":471,"chapterOrder":766,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0200-guan-xing-ji-imu","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0200-惯性计IMU","惯性计IMU",[7],"1400-0600-0200",{"path":768,"stem":769,"title":770,"authors":771,"date":471,"chapterOrder":772,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0300-ji-guang-lei-da-lidar","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0300-激光雷达LiDAR","激光雷达LiDAR",[7],"1400-0600-0300",{"path":774,"stem":775,"title":776,"authors":777,"date":471,"chapterOrder":778,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0400-xiang-ji-camera","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0400-相机Camera","相机Camera",[7],"1400-0600-0400",{"path":780,"stem":781,"title":782,"authors":783,"date":471,"chapterOrder":784,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0500-quan-qiu-ding-wei-gnss","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0500-全球定位GNSS","全球定位GNSS",[7],"1400-0600-0500",{"path":786,"stem":787,"title":788,"authors":789,"date":471,"chapterOrder":790,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0600-shou-bing-joy","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0600-手柄joy","手柄JOY",[7],"1400-0600-0600",{"path":792,"stem":793,"title":794,"authors":795,"date":471,"chapterOrder":796,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0700-jian-pan-kong-zhi-jie-dian","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0700-键盘控制节点","键盘控制节点",[7],"1400-0600-0700",{"path":798,"stem":799,"title":800,"authors":801,"date":471,"chapterOrder":802,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-ying-jian-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-硬件平台","硬件平台",[7],"1400-0600",{"path":804,"stem":805,"title":806,"authors":807,"date":471,"chapterOrder":808,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0700-zuo-biao-xi-yu-hua-ti-guan-xi","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0700-坐标系与话题关系","坐标系与话题关系",[7],"1400-0700",{"path":810,"stem":811,"title":812,"authors":813,"date":471,"chapterOrder":814,"chapterDepth":381,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0100-lun-shi-li-cheng-ji-biao-ding","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0100-轮式里程计标定","轮式里程计标定",[7],"1400-0800-0100-0100",{"path":816,"stem":817,"title":818,"authors":819,"date":471,"chapterOrder":820,"chapterDepth":381,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0200-lun-shi-li-cheng-ji-yu-imu-rong-he","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0200-轮式里程计与IMU融合","轮式里程计与IMU融合",[7],"1400-0800-0100-0200",{"path":822,"stem":823,"title":824,"authors":825,"date":471,"chapterOrder":826,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-lun-shi-li-cheng-ji-biao-ding-yu-rong-he","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-轮式里程计标定与融合","轮式里程计标定与融合",[7],"1400-0800-0100",{"path":828,"stem":829,"title":830,"authors":831,"date":471,"chapterOrder":832,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0200-ji-guang-lei-da-gong-ju","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0200-激光雷达工具","激光雷达工具",[7],"1400-0800-0200",{"path":834,"stem":835,"title":836,"authors":837,"date":471,"chapterOrder":838,"chapterDepth":310,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0300-xiang-ji-shi-yong-jin-jie","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0300-相机使用进阶","相机使用进阶",[7],"1400-0800-0300",{"path":840,"stem":841,"title":842,"authors":843,"date":471,"chapterOrder":844,"chapterDepth":289,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-ying-jian-ping-tai-jin-jie","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-硬件平台进阶","硬件平台进阶",[7],"1400-0800",{"path":846,"stem":847,"title":848,"authors":849,"date":471,"chapterOrder":850,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-ji-qi-ren-ying-jian","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-机器人硬件","机器人硬件",[7],"1400",{"path":852,"stem":853,"title":854,"authors":855,"date":471,"chapterOrder":856,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1500-ros2-control","wiki\u002F2023-12-30-ros2-tutorial\u002F1500-ROS2_Control","ROS2_Control",[7],"1500",{"path":858,"stem":859,"title":860,"authors":861,"date":471,"chapterOrder":862,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1600-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","wiki\u002F2023-12-30-ros2-tutorial\u002F1600-Moveit2工业机器人机械臂","Moveit2工业机器人机械臂",[7],"1600",{"path":864,"stem":865,"title":866,"authors":867,"date":471,"chapterOrder":868,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1700-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","wiki\u002F2023-12-30-ros2-tutorial\u002F1700-机器人导航Navigation2(实体篇)","机器人导航Navigation2(实体篇)",[7],"1700",{"path":870,"stem":871,"title":872,"authors":873,"date":471,"chapterOrder":874,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1800-microros","wiki\u002F2023-12-30-ros2-tutorial\u002F1800-MicroROS","MicroROS",[7],"1800",{"path":876,"stem":877,"title":878,"authors":879,"date":471,"chapterOrder":880,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1900-Webots仿真平台","Webots仿真平台",[7],"1900",{"path":882,"stem":883,"title":884,"authors":885,"date":471,"chapterOrder":886,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":477},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F2000-opencv","wiki\u002F2023-12-30-ros2-tutorial\u002F2000-OpenCV","OpenCV",[7],"2000",{"path":473,"stem":888,"title":889,"authors":890,"date":471,"chapterOrder":891,"chapterDepth":490,"docKey":472,"docRoot":473,"docTitle":474,"isWikiDoc":476,"isWikiIndex":476},"wiki\u002F2023-12-30-ros2-tutorial\u002Findex","ROS2机器人操作系统教程",[7],null,[893,895,898,901],{"name":7,"image":894},"\u002Fimages\u002Fmember_photo\u002F董佳辉.jpg",{"name":896,"image":897},"宫金良","\u002Fimages\u002Fmember_photo\u002F宫金良.jpg",{"name":899,"image":900},"巩丽","\u002Fimages\u002Fmember_photo\u002F巩丽.png",{"name":902,"image":903},"张彦斐","\u002Fimages\u002Fmember_photo\u002F张彦斐.jpg",1792431902901]