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