[{"data":1,"prerenderedAt":5041},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1700-ji-qi-ren-dao-hang-navigation2-shi-ti-pian":3,"wiki-doc-items-2023-12-30-ros2-tutorial":4621,"wiki:author-members":5029},{"id":4,"title":5,"authors":6,"body":8,"chapterDepth":4608,"chapterOrder":4609,"date":4610,"description":86,"docKey":4611,"docRoot":4612,"docTitle":4613,"extension":4614,"isWikiDoc":968,"isWikiIndex":4615,"meta":4616,"navigation":968,"path":4617,"seo":4618,"stem":4619,"wikiDepth":136,"__hash__":4620},"wiki\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1700-机器人导航Navigation2(实体篇).md","机器人导航Navigation2(实体篇)",[7],"董佳辉",{"type":9,"value":10,"toc":4599},"minimark",[11,15,34,38,46,52,55,61,65,69,72,75,78,81,88,91,96,99,104,107,112,115,120,123,158,163,168,173,176,179,182,187,190,195,200,203,208,211,216,219,224,227,232,235,243,246,250,283,288,293,297,302,319,323,326,329,332,335,340,343,346,352,357,360,365,368,371,376,381,386,391,396,399,402,407,669,674,937,940,947,1384,1391,1654,1660,4592,4595],[12,13,14],"h3",{"id":14},"准备工作",[16,17,18,22,25,28,31],"ol",{},[19,20,21],"li",{},"实物",[19,23,24],{},"已经跑过一遍机器人导航Navigation2(仿真篇)",[19,26,27],{},"本章只讲大体思路实现，一般只要你仿真篇搞明白了，实体篇看看大体思路就懂怎么实现了。",[19,29,30],{},"本章非赵虚左教程，是自己的实现思路，仅供参考，可能赵老师有更好的办法，不过他还没出实体篇教程。",[19,32,33],{},"本章用的是4轮麦克纳姆轮实现的，仅供参考。",[35,36,37],"p",{},"以下代码都在下方这个github仓库里：",[35,39,40],{},[41,42,43],"a",{"href":43,"rel":44},"https:\u002F\u002Fgithub.com\u002FCyberNaviRobot\u002FCyberRobot_ROS2_WS",[45],"nofollow",[35,47,48],{},[49,50,51],"em",{},"下方的教程只有实现思路，不会放源码，所以建议克隆一下这个仓库，看看源码。",[12,53,54],{"id":54},"导航参数参考",[35,56,57],{},[41,58,59],{"href":59,"rel":60},"https:\u002F\u002Fdocs.nav2.org\u002Fconfiguration\u002Findex.html",[45],[12,62,64],{"id":63},"slam-定位与建图","SLAM 定位与建图",[66,67,68],"h4",{"id":68},"slam_toolbox",[35,70,71],{},"根据上方的节点说明，我们要订阅\u002Fscan和\u002Ftf。",[35,73,74],{},"一般激光雷达的说明书都会提供源码去发布\u002Fscan,所以这个请看你硬件的说明书。",[35,76,77],{},"\u002Ftf则需要我们发布odom_frame到base_frame的转换，我们必须使用C++代码去动态发布odom的坐标变换。",[35,79,80],{},"但是这里你需要发布\u002Fodom,以便于知道机器人的位置和姿态，这样才能够够推算出机器人在map中的位置。",[35,82,83],{},[84,85],"img",{"alt":86,"src":87},"","https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1806.webp",[35,89,90],{},"确保slam toolbox各项参数没有设置错，特别是坐标系等等，其他参数可以看着说明微调。",[35,92,93],{},[84,94],{"alt":86,"src":95},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1807.webp",[35,97,98],{},"确保激光雷达发布的话题是\u002Fscan。",[35,100,101],{},[84,102],{"alt":86,"src":103},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1808.webp",[35,105,106],{},"先启动激光雷达",[35,108,109],{},[84,110],{"alt":86,"src":111},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1809.webp",[35,113,114],{},"再启动urdf模型，同时发布tf。",[35,116,117],{},[84,118],{"alt":86,"src":119},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1810.webp",[35,121,122],{},"最后开启slam",[124,125,129],"pre",{"className":126,"code":127,"language":128,"meta":86,"style":86},"language-bash shiki shiki-themes github-light github-dark","ros2 launch mycar_slam_slam_toolbox online_sync_launch.py use_sim_time:=false\n","bash",[130,131,132],"code",{"__ignoreMap":86},[133,134,137,141,145,148,151,154],"span",{"class":135,"line":136},"line",1,[133,138,140],{"class":139},"sScJk","ros2",[133,142,144],{"class":143},"sZZnC"," launch",[133,146,147],{"class":143}," mycar_slam_slam_toolbox",[133,149,150],{"class":143}," online_sync_launch.py",[133,152,153],{"class":143}," use_sim_time:=",[133,155,157],{"class":156},"sj4cs","false\n",[35,159,160],{},[84,161],{"alt":86,"src":162},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1811.webp",[35,164,165],{},[84,166],{"alt":86,"src":167},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1812.webp",[35,169,170],{},[84,171],{"alt":86,"src":172},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1813.webp",[66,174,175],{"id":175},"cartographer",[35,177,178],{},"根据cartographer说明，我们需要\u002Fscan和\u002Fodom即可。",[35,180,181],{},"先打开串口接收节点，接收stm32传过来的数据。",[35,183,184],{},[84,185],{"alt":86,"src":186},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1814.webp",[35,188,189],{},"然后再打开里程计节点，发布odom话题",[35,191,192],{},[84,193],{"alt":86,"src":194},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1815.webp",[35,196,197],{},[84,198],{"alt":86,"src":199},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1816.webp",[35,201,202],{},"再发布一下TF，可以直接用launch开启robot_state_publisher和joint_state_publisher,并打开urdf模型来发布TF。",[35,204,205],{},[84,206],{"alt":86,"src":207},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1817.webp",[35,209,210],{},"打开激光雷达的节点，发布scan话题",[35,212,213],{},[84,214],{"alt":86,"src":215},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1818.webp",[35,217,218],{},"等\u002Fodom,\u002Fscan和TF全发了之后，再打开cartographer建图，然后可以检查map的TF是否发布。",[35,220,221],{},[84,222],{"alt":86,"src":223},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1819.webp",[35,225,226],{},"检查TF树如下：",[35,228,229],{},[84,230],{"alt":86,"src":231},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1820.webp",[35,233,234],{},"建图如下",[35,236,237,240],{},[84,238],{"alt":86,"src":239},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1821.webp",[84,241],{"alt":86,"src":242},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1822.webp",[12,244,245],{"id":245},"地图服务",[66,247,249],{"id":248},"保存地图序列化","保存地图(序列化)",[124,251,253],{"className":126,"code":252,"language":128,"meta":86,"style":86},"mkdir .\u002Fmap\nros2 run nav2_map_server map_saver_cli -f map\u002Fmy_map\n",[130,254,255,263],{"__ignoreMap":86},[133,256,257,260],{"class":135,"line":136},[133,258,259],{"class":139},"mkdir",[133,261,262],{"class":143}," .\u002Fmap\n",[133,264,266,268,271,274,277,280],{"class":135,"line":265},2,[133,267,140],{"class":139},[133,269,270],{"class":143}," run",[133,272,273],{"class":143}," nav2_map_server",[133,275,276],{"class":143}," map_saver_cli",[133,278,279],{"class":156}," -f",[133,281,282],{"class":143}," map\u002Fmy_map\n",[35,284,285],{},[84,286],{"alt":86,"src":287},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1823.webp",[35,289,290],{},[84,291],{"alt":86,"src":292},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1824.webp",[66,294,296],{"id":295},"读取地图反序列化","读取地图(反序列化)",[35,298,299],{},[84,300],{"alt":86,"src":301},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1825.webp",[124,303,305],{"className":126,"code":304,"language":128,"meta":86,"style":86},"ros2 launch mycar_map_server map_server.launch.py\n",[130,306,307],{"__ignoreMap":86},[133,308,309,311,313,316],{"class":135,"line":136},[133,310,140],{"class":139},[133,312,144],{"class":143},[133,314,315],{"class":143}," mycar_map_server",[133,317,318],{"class":143}," map_server.launch.py\n",[12,320,322],{"id":321},"amcl自适应蒙特卡洛定位","AMCL自适应蒙特卡洛定位",[35,324,325],{},"首先需要地图的数据，发布\u002Fmap话题。",[35,327,328],{},"其次需要激光雷达数据，即\u002Fscan话题。",[35,330,331],{},"然后需要坐标变换消息，即\u002Ftf话题。",[35,333,334],{},"然后那个\u002Finitial_pose话题，是2D地图上的初始位置，可以用rviz2发布，也可以用C++代码发布。",[35,336,337],{},[84,338],{"alt":86,"src":339},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1826.webp",[35,341,342],{},"然后需要修改一下参数：",[35,344,345],{},"这个是参数的官方网站：",[35,347,348],{},[41,349,350],{"href":350,"rel":351},"https:\u002F\u002Fdocs.nav2.org\u002Fconfiguration\u002Fpackages\u002Fconfiguring-amcl.html#",[45],[35,353,354],{},[84,355],{"alt":86,"src":356},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1827.webp",[35,358,359],{},"修改完Launch后，再修改params参数。",[35,361,362],{},[84,363],{"alt":86,"src":364},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1828.webp",[35,366,367],{},"这里的OmniChassis不止指全向轮底盘，而是广义的全向轮底盘，像全向轮底盘，麦轮底盘都是全向轮底盘。当然也可以自定义底盘类型。",[35,369,370],{},"这个配置文件最顶上的那个use_sim_time设置为False。",[35,372,373],{},[84,374],{"alt":86,"src":375},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1829.webp",[35,377,378],{},[84,379],{"alt":86,"src":380},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1830.webp",[35,382,383],{},[84,384],{"alt":86,"src":385},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1831.webp",[35,387,388],{},[84,389],{"alt":86,"src":390},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1832.webp",[35,392,393],{},[84,394],{"alt":86,"src":395},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1833.webp",[12,397,398],{"id":398},"导航服务器",[35,400,401],{},"涉及的话题太多了，所以我们列出来了一个表：",[16,403,404],{},[19,405,406],{},"订阅的话题",[408,409,410,427],"table",{},[411,412,413],"thead",{},[414,415,416,421,424],"tr",{},[417,418,420],"th",{"align":419},"left","话题",[417,422,423],{"align":419},"接口",[417,425,426],{"align":419},"描述",[428,429,430,442,453,464,472,483,494,505,513,522,533,541,551,560,568,579,590,601,612,623,631,641,651,659],"tbody",{},[414,431,432,436,439],{},[433,434,435],"td",{"align":419},"\u002Fgoal_pose",[433,437,438],{"align":419},"geometry_msgs\u002Fmsg\u002FPoseStamped",[433,440,441],{"align":419},"导航目标点，用于触发导航任务",[414,443,444,447,450],{},[433,445,446],{"align":419},"\u002Ftf",[433,448,449],{"align":419},"tf2_msgs\u002Fmsg\u002FTFMessage",[433,451,452],{"align":419},"坐标变换消息，用于不同坐标系之间的转换",[414,454,455,458,461],{},[433,456,457],{"align":419},"\u002Fodom",[433,459,460],{"align":419},"nav_msgs\u002Fmsg\u002FOdometry",[433,462,463],{"align":419},"里程计数据，提供机器人位置和运动信息",[414,465,466,468,470],{},[433,467,420],{"align":419},[433,469,423],{"align":419},[433,471,426],{"align":419},[414,473,474,477,480],{},[433,475,476],{"align":419},"\u002Fglobal_costmap\u002Ffootprint",[433,478,479],{"align":419},"geometry_msgs\u002Fmsg\u002FPolygon",[433,481,482],{"align":419},"机器人（或任何移动平台）的足迹（footprint）信息。足迹是机器人在地图上占据的空间形状，通常用多边形表示。",[414,484,485,488,491],{},[433,486,487],{"align":419},"\u002Fmap",[433,489,490],{"align":419},"nav_msgs\u002Fmsg\u002FOccupancyGrid",[433,492,493],{"align":419},"发布环境地图，特别是用于导航的占用网格图（Occupancy Grid Map）。",[414,495,496,499,502],{},[433,497,498],{"align":419},"\u002Fscan",[433,500,501],{"align":419},"sensor_msgs\u002Fmsg\u002FLaserScan",[433,503,504],{"align":419},"激光扫描数据。",[414,506,507,509,511],{},[433,508,420],{"align":419},[433,510,423],{"align":419},[433,512,426],{"align":419},[414,514,515,517,519],{},[433,516,457],{"align":419},[433,518,460],{"align":419},[433,520,521],{"align":419},"机器人的里程计信息，包含位置、速度和姿态",[414,523,524,527,530],{},[433,525,526],{"align":419},"\u002Fspeed_limit",[433,528,529],{"align":419},"nav2_msgs\u002Fmsg\u002FSpeedLimit",[433,531,532],{"align":419},"导航过程中的速度限制信息，用于动态调整机器人的移动速度",[414,534,535,537,539],{},[433,536,420],{"align":419},[433,538,423],{"align":419},[433,540,426],{"align":419},[414,542,543,546,548],{},[433,544,545],{"align":419},"\u002Flocal_costmap\u002Ffootprint",[433,547,479],{"align":419},[433,549,550],{"align":419},"机器人或移动平台的足迹多边形，用于本地代价地图的计算",[414,552,553,555,557],{},[433,554,498],{"align":419},[433,556,501],{"align":419},[433,558,559],{"align":419},"激光扫描仪的扫描数据，用于环境感知和避障",[414,561,562,564,566],{},[433,563,420],{"align":419},[433,565,423],{"align":419},[433,567,426],{"align":419},[414,569,570,573,576],{},[433,571,572],{"align":419},"\u002Fclock",[433,574,575],{"align":419},"rosgraph_msgs\u002Fmsg\u002FClock",[433,577,578],{"align":419},"ROS系统时间",[414,580,581,584,587],{},[433,582,583],{"align":419},"\u002Fcmd_vel_teleop",[433,585,586],{"align":419},"geometry_msgs\u002Fmsg\u002FTwist",[433,588,589],{"align":419},"遥操作命令，用于控制机器人的线性和角速度",[414,591,592,595,598],{},[433,593,594],{"align":419},"\u002Flocal_costmap\u002Fcostmap_raw",[433,596,597],{"align":419},"nav2_msgs\u002Fmsg\u002FCostmap",[433,599,600],{"align":419},"局部代价地图的原始数据",[414,602,603,606,609],{},[433,604,605],{"align":419},"\u002Flocal_costmap\u002Fpublished_footprint",[433,607,608],{"align":419},"geometry_msgs\u002Fmsg\u002FPolygonStamped",[433,610,611],{"align":419},"机器人在局部代价地图中的已发布足迹",[414,613,614,617,620],{},[433,615,616],{"align":419},"\u002Fpreempt_teleop",[433,618,619],{"align":419},"std_msgs\u002Fmsg\u002FEmpty",[433,621,622],{"align":419},"遥操作抢占信号，用于中断当前遥操作",[414,624,625,627,629],{},[433,626,420],{"align":419},[433,628,423],{"align":419},[433,630,426],{"align":419},[414,632,633,636,638],{},[433,634,635],{"align":419},"\u002Fglobal_costmap\u002Fcostmap_raw",[433,637,597],{"align":419},[433,639,640],{"align":419},"全局代价地图的原始数据，用于路径规划",[414,642,643,646,648],{},[433,644,645],{"align":419},"\u002Fglobal_costmap\u002Fpublished_footprint",[433,647,608],{"align":419},[433,649,650],{"align":419},"机器人在全局代价地图中的足迹表示",[414,652,653,655,657],{},[433,654,420],{"align":419},[433,656,423],{"align":419},[433,658,426],{"align":419},[414,660,661,664,666],{},[433,662,663],{"align":419},"\u002Fcmd_vel_nav",[433,665,586],{"align":419},[433,667,668],{"align":419},"接收来自其他节点的速度控制指令的话题",[16,670,671],{"start":265},[19,672,673],{},"发布的话题",[408,675,676,686],{},[411,677,678],{},[414,679,680,682,684],{},[417,681,420],{"align":419},[417,683,423],{"align":419},[417,685,426],{"align":419},[428,687,688,699,707,717,726,737,746,756,765,776,786,797,807,817,825,835,845,854,864,873,884,892,902,910,920,928],{},[414,689,690,693,696],{},[433,691,692],{"align":419},"\u002Fplan",[433,694,695],{"align":419},"nav_msgs\u002Fmsg\u002FPath",[433,697,698],{"align":419},"当前位置到目标点的全局路径",[414,700,701,703,705],{},[433,702,420],{"align":419},[433,704,423],{"align":419},[433,706,426],{"align":419},[414,708,709,712,714],{},[433,710,711],{"align":419},"\u002Fglobal_costmap\u002Fcostmap",[433,713,490],{"align":419},[433,715,716],{"align":419},"发布全局代价地图的当前状态。",[414,718,719,721,723],{},[433,720,635],{"align":419},[433,722,597],{"align":419},[433,724,725],{"align":419},"未经进一步处理的原始代价地图数据。",[414,727,728,731,734],{},[433,729,730],{"align":419},"\u002Fglobal_costmap\u002Fcostmap_updates",[433,732,733],{"align":419},"map_msgs\u002Fmsg\u002FOccupancyGridUpdate",[433,735,736],{"align":419},"全局代价地图的更新，该消息可以高效更新地图。",[414,738,739,741,743],{},[433,740,645],{"align":419},[433,742,608],{"align":419},[433,744,745],{"align":419},"发布机器人的足迹（footprint），即机器人在地图上占据的空间形状。",[414,747,748,751,754],{},[433,749,750],{"align":419},"话题名称",[433,752,753],{"align":419},"消息类型",[433,755,426],{"align":419},[414,757,758,760,762],{},[433,759,663],{"align":419},[433,761,586],{"align":419},[433,763,764],{"align":419},"发布控制命令，包括线性和角速度，用于控制机器人按照规划路径移动。",[414,766,767,770,773],{},[433,768,769],{"align":419},"\u002Fcost_cloud",[433,771,772],{"align":419},"sensor_msgs\u002Fmsg\u002FPointCloud2",[433,774,775],{"align":419},"发布成本地图中的点云数据，用于避障和路径规划。",[414,777,778,781,783],{},[433,779,780],{"align":419},"\u002Flocal_plan",[433,782,695],{"align":419},[433,784,785],{"align":419},"发布局部路径规划结果，即机器人应如何到达当前目标点附近的一个点。",[414,787,788,791,794],{},[433,789,790],{"align":419},"\u002Fmarker",[433,792,793],{"align":419},"visualization_msgs\u002Fmsg\u002FMarkerArray",[433,795,796],{"align":419},"发布可视化标记，用于在RViz等可视化工具中显示路径、障碍物等信息。",[414,798,799,802,804],{},[433,800,801],{"align":419},"\u002Freceived_global_plan",[433,803,695],{"align":419},[433,805,806],{"align":419},"发布从全局规划器接收到的全局路径，即当前位置到目标点的路径。",[414,808,809,812,814],{},[433,810,811],{"align":419},"\u002Ftransformed_global_plan",[433,813,695],{"align":419},[433,815,816],{"align":419},"发布经过坐标变换的全局路径，确保路径与机器人的当前坐标系一致。",[414,818,819,821,823],{},[433,820,420],{"align":419},[433,822,423],{"align":419},[433,824,426],{"align":419},[414,826,827,830,832],{},[433,828,829],{"align":419},"\u002Flocal_costmap\u002Fclearing_endpoints",[433,831,772],{"align":419},[433,833,834],{"align":419},"清除成本图上的障碍物点云数据，通常用于动态障碍物处理",[414,836,837,840,842],{},[433,838,839],{"align":419},"\u002Flocal_costmap\u002Fcostmap",[433,841,490],{"align":419},[433,843,844],{"align":419},"本地成本图，表示机器人周围环境的可通行性",[414,846,847,849,851],{},[433,848,594],{"align":419},[433,850,597],{"align":419},[433,852,853],{"align":419},"未经处理的本地成本图，可能包含更详细的信息",[414,855,856,859,861],{},[433,857,858],{"align":419},"\u002Flocal_costmap\u002Fcostmap_updates",[433,860,733],{"align":419},[433,862,863],{"align":419},"本地成本图的更新信息，包括哪些区域发生了变化",[414,865,866,868,870],{},[433,867,605],{"align":419},[433,869,608],{"align":419},[433,871,872],{"align":419},"发布的机器人足迹多边形，时间戳表示发布时间",[414,874,875,878,881],{},[433,876,877],{"align":419},"\u002Flocal_costmap\u002Fvoxel_grid",[433,879,880],{"align":419},"nav2_msgs\u002Fmsg\u002FVoxelGrid",[433,882,883],{"align":419},"体素网格数据，用于成本图生成中的空间划分和优化",[414,885,886,888,890],{},[433,887,420],{"align":419},[433,889,423],{"align":419},[433,891,426],{"align":419},[414,893,894,897,899],{},[433,895,896],{"align":419},"\u002Fcmd_vel",[433,898,586],{"align":419},[433,900,901],{"align":419},"发送给底层控制器的速度命令",[414,903,904,906,908],{},[433,905,420],{"align":419},[433,907,423],{"align":419},[433,909,426],{"align":419},[414,911,912,915,917],{},[433,913,914],{"align":419},"\u002Fplan_smoothed",[433,916,695],{"align":419},[433,918,919],{"align":419},"经过平滑处理后的全局路径",[414,921,922,924,926],{},[433,923,420],{"align":419},[433,925,423],{"align":419},[433,927,426],{"align":419},[414,929,930,932,934],{},[433,931,896],{"align":419},[433,933,586],{"align":419},[433,935,936],{"align":419},"发布经过处理或平滑后的速度控制指令的话题",[35,938,939],{},"由于赵虚左是把官方的源码重新写在了WS里，这样对于初学者来说会比较麻烦，对于初学者来说建议使用官方写好的bringup节点，以下是我根据官方Wiki总结出来的使用方法：（这里选择使用官方的bringup节点，而不是赵虚左老师的节点。）",[35,941,942,943,946],{},"以下是配置的",[130,944,945],{},"nav2.launch.py","文件：",[124,948,952],{"className":949,"code":950,"language":951,"meta":86,"style":86},"language-python shiki shiki-themes github-light github-dark","import os\n\nfrom ament_index_python.packages import get_package_share_directory\nfrom launch import LaunchDescription\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch.substitutions import LaunchConfiguration\n\n# from launch_ros.actions import Node\n\ndef generate_launch_description():\n    navigation2_dir = get_package_share_directory('nav05_navigation2')\n    nav2_bringup_dir = get_package_share_directory('nav2_bringup')\n\n    # launch的参数的优先级比yaml的参数优先级高\n    use_sim_time = LaunchConfiguration('use_sim_time', default='flase')\n    map_yaml_path = LaunchConfiguration('map',default=os.path.join(navigation2_dir,'map','house.yaml'))\n    nav2_param_path = LaunchConfiguration('params_file',default=os.path.join(navigation2_dir,'params','nav2.yaml'))\n\n    return LaunchDescription([\n        DeclareLaunchArgument('use_sim_time',default_value=use_sim_time,description='Use simulation (Gazebo) clock if true'),\n        DeclareLaunchArgument('map',default_value=map_yaml_path,description='Full path to map file to load'),\n        DeclareLaunchArgument('params_file',default_value=nav2_param_path,description='Full path to param file to load'),\n\n        IncludeLaunchDescription(\n            PythonLaunchDescriptionSource([nav2_bringup_dir,'\u002Flaunch','\u002Fbringup_launch.py']),\n            launch_arguments={\n                'map': map_yaml_path,\n                'use_sim_time': use_sim_time,\n                'params_file': nav2_param_path}.items(),\n        ),\n    ])\n","python",[130,953,954,964,970,984,997,1010,1022,1035,1048,1053,1060,1065,1077,1095,1110,1115,1121,1149,1182,1213,1218,1227,1256,1281,1306,1311,1317,1334,1345,1354,1363,1372,1378],{"__ignoreMap":86},[133,955,956,960],{"class":135,"line":136},[133,957,959],{"class":958},"szBVR","import",[133,961,963],{"class":962},"sVt8B"," os\n",[133,965,966],{"class":135,"line":265},[133,967,969],{"emptyLinePlaceholder":968},true,"\n",[133,971,973,976,979,981],{"class":135,"line":972},3,[133,974,975],{"class":958},"from",[133,977,978],{"class":962}," ament_index_python.packages ",[133,980,959],{"class":958},[133,982,983],{"class":962}," get_package_share_directory\n",[133,985,987,989,992,994],{"class":135,"line":986},4,[133,988,975],{"class":958},[133,990,991],{"class":962}," launch ",[133,993,959],{"class":958},[133,995,996],{"class":962}," LaunchDescription\n",[133,998,1000,1002,1005,1007],{"class":135,"line":999},5,[133,1001,975],{"class":958},[133,1003,1004],{"class":962}," launch.actions ",[133,1006,959],{"class":958},[133,1008,1009],{"class":962}," DeclareLaunchArgument\n",[133,1011,1013,1015,1017,1019],{"class":135,"line":1012},6,[133,1014,975],{"class":958},[133,1016,1004],{"class":962},[133,1018,959],{"class":958},[133,1020,1021],{"class":962}," IncludeLaunchDescription\n",[133,1023,1025,1027,1030,1032],{"class":135,"line":1024},7,[133,1026,975],{"class":958},[133,1028,1029],{"class":962}," launch.launch_description_sources ",[133,1031,959],{"class":958},[133,1033,1034],{"class":962}," PythonLaunchDescriptionSource\n",[133,1036,1038,1040,1043,1045],{"class":135,"line":1037},8,[133,1039,975],{"class":958},[133,1041,1042],{"class":962}," launch.substitutions ",[133,1044,959],{"class":958},[133,1046,1047],{"class":962}," LaunchConfiguration\n",[133,1049,1051],{"class":135,"line":1050},9,[133,1052,969],{"emptyLinePlaceholder":968},[133,1054,1056],{"class":135,"line":1055},10,[133,1057,1059],{"class":1058},"sJ8bj","# from launch_ros.actions import Node\n",[133,1061,1063],{"class":135,"line":1062},11,[133,1064,969],{"emptyLinePlaceholder":968},[133,1066,1068,1071,1074],{"class":135,"line":1067},12,[133,1069,1070],{"class":958},"def",[133,1072,1073],{"class":139}," generate_launch_description",[133,1075,1076],{"class":962},"():\n",[133,1078,1080,1083,1086,1089,1092],{"class":135,"line":1079},13,[133,1081,1082],{"class":962},"    navigation2_dir ",[133,1084,1085],{"class":958},"=",[133,1087,1088],{"class":962}," get_package_share_directory(",[133,1090,1091],{"class":143},"'nav05_navigation2'",[133,1093,1094],{"class":962},")\n",[133,1096,1098,1101,1103,1105,1108],{"class":135,"line":1097},14,[133,1099,1100],{"class":962},"    nav2_bringup_dir ",[133,1102,1085],{"class":958},[133,1104,1088],{"class":962},[133,1106,1107],{"class":143},"'nav2_bringup'",[133,1109,1094],{"class":962},[133,1111,1113],{"class":135,"line":1112},15,[133,1114,969],{"emptyLinePlaceholder":968},[133,1116,1118],{"class":135,"line":1117},16,[133,1119,1120],{"class":1058},"    # launch的参数的优先级比yaml的参数优先级高\n",[133,1122,1124,1127,1129,1132,1135,1138,1142,1144,1147],{"class":135,"line":1123},17,[133,1125,1126],{"class":962},"    use_sim_time ",[133,1128,1085],{"class":958},[133,1130,1131],{"class":962}," LaunchConfiguration(",[133,1133,1134],{"class":143},"'use_sim_time'",[133,1136,1137],{"class":962},", ",[133,1139,1141],{"class":1140},"s4XuR","default",[133,1143,1085],{"class":958},[133,1145,1146],{"class":143},"'flase'",[133,1148,1094],{"class":962},[133,1150,1152,1155,1157,1159,1162,1165,1167,1169,1172,1174,1176,1179],{"class":135,"line":1151},18,[133,1153,1154],{"class":962},"    map_yaml_path ",[133,1156,1085],{"class":958},[133,1158,1131],{"class":962},[133,1160,1161],{"class":143},"'map'",[133,1163,1164],{"class":962},",",[133,1166,1141],{"class":1140},[133,1168,1085],{"class":958},[133,1170,1171],{"class":962},"os.path.join(navigation2_dir,",[133,1173,1161],{"class":143},[133,1175,1164],{"class":962},[133,1177,1178],{"class":143},"'house.yaml'",[133,1180,1181],{"class":962},"))\n",[133,1183,1185,1188,1190,1192,1195,1197,1199,1201,1203,1206,1208,1211],{"class":135,"line":1184},19,[133,1186,1187],{"class":962},"    nav2_param_path ",[133,1189,1085],{"class":958},[133,1191,1131],{"class":962},[133,1193,1194],{"class":143},"'params_file'",[133,1196,1164],{"class":962},[133,1198,1141],{"class":1140},[133,1200,1085],{"class":958},[133,1202,1171],{"class":962},[133,1204,1205],{"class":143},"'params'",[133,1207,1164],{"class":962},[133,1209,1210],{"class":143},"'nav2.yaml'",[133,1212,1181],{"class":962},[133,1214,1216],{"class":135,"line":1215},20,[133,1217,969],{"emptyLinePlaceholder":968},[133,1219,1221,1224],{"class":135,"line":1220},21,[133,1222,1223],{"class":958},"    return",[133,1225,1226],{"class":962}," LaunchDescription([\n",[133,1228,1230,1233,1235,1237,1240,1242,1245,1248,1250,1253],{"class":135,"line":1229},22,[133,1231,1232],{"class":962},"        DeclareLaunchArgument(",[133,1234,1134],{"class":143},[133,1236,1164],{"class":962},[133,1238,1239],{"class":1140},"default_value",[133,1241,1085],{"class":958},[133,1243,1244],{"class":962},"use_sim_time,",[133,1246,1247],{"class":1140},"description",[133,1249,1085],{"class":958},[133,1251,1252],{"class":143},"'Use simulation (Gazebo) clock if true'",[133,1254,1255],{"class":962},"),\n",[133,1257,1259,1261,1263,1265,1267,1269,1272,1274,1276,1279],{"class":135,"line":1258},23,[133,1260,1232],{"class":962},[133,1262,1161],{"class":143},[133,1264,1164],{"class":962},[133,1266,1239],{"class":1140},[133,1268,1085],{"class":958},[133,1270,1271],{"class":962},"map_yaml_path,",[133,1273,1247],{"class":1140},[133,1275,1085],{"class":958},[133,1277,1278],{"class":143},"'Full path to map file to load'",[133,1280,1255],{"class":962},[133,1282,1284,1286,1288,1290,1292,1294,1297,1299,1301,1304],{"class":135,"line":1283},24,[133,1285,1232],{"class":962},[133,1287,1194],{"class":143},[133,1289,1164],{"class":962},[133,1291,1239],{"class":1140},[133,1293,1085],{"class":958},[133,1295,1296],{"class":962},"nav2_param_path,",[133,1298,1247],{"class":1140},[133,1300,1085],{"class":958},[133,1302,1303],{"class":143},"'Full path to param file to load'",[133,1305,1255],{"class":962},[133,1307,1309],{"class":135,"line":1308},25,[133,1310,969],{"emptyLinePlaceholder":968},[133,1312,1314],{"class":135,"line":1313},26,[133,1315,1316],{"class":962},"        IncludeLaunchDescription(\n",[133,1318,1320,1323,1326,1328,1331],{"class":135,"line":1319},27,[133,1321,1322],{"class":962},"            PythonLaunchDescriptionSource([nav2_bringup_dir,",[133,1324,1325],{"class":143},"'\u002Flaunch'",[133,1327,1164],{"class":962},[133,1329,1330],{"class":143},"'\u002Fbringup_launch.py'",[133,1332,1333],{"class":962},"]),\n",[133,1335,1337,1340,1342],{"class":135,"line":1336},28,[133,1338,1339],{"class":1140},"            launch_arguments",[133,1341,1085],{"class":958},[133,1343,1344],{"class":962},"{\n",[133,1346,1348,1351],{"class":135,"line":1347},29,[133,1349,1350],{"class":143},"                'map'",[133,1352,1353],{"class":962},": map_yaml_path,\n",[133,1355,1357,1360],{"class":135,"line":1356},30,[133,1358,1359],{"class":143},"                'use_sim_time'",[133,1361,1362],{"class":962},": use_sim_time,\n",[133,1364,1366,1369],{"class":135,"line":1365},31,[133,1367,1368],{"class":143},"                'params_file'",[133,1370,1371],{"class":962},": nav2_param_path}.items(),\n",[133,1373,1375],{"class":135,"line":1374},32,[133,1376,1377],{"class":962},"        ),\n",[133,1379,1381],{"class":135,"line":1380},33,[133,1382,1383],{"class":962},"    ])\n",[35,1385,1386,1387,1390],{},"以下是",[130,1388,1389],{},"rviz2.launch.py","：",[124,1392,1394],{"className":949,"code":1393,"language":951,"meta":86,"style":86},"import os\n\nfrom ament_index_python.packages import get_package_share_directory\nfrom launch import LaunchDescription\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.substitutions import LaunchConfiguration\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n    navigation2_dir = get_package_share_directory('nav05_navigation2')\n\n    use_sim_time = LaunchConfiguration('use_sim_time', default='false')\n\n    rviz_config_dir = os.path.join(navigation2_dir,'rviz','nav2.rviz')\n\n    return LaunchDescription([\n        DeclareLaunchArgument('use_sim_time',default_value=use_sim_time,description='Use simulation (Gazebo) clock if true'),\n\n        Node(\n            package='rviz2',\n            executable='rviz2',\n            name='rviz2',\n            arguments=['-d', rviz_config_dir],\n            parameters=[{'use_sim_time': use_sim_time}],\n            output='screen'),\n    ])\n",[130,1395,1396,1402,1406,1416,1426,1436,1446,1458,1462,1470,1482,1486,1507,1511,1531,1535,1541,1563,1567,1572,1585,1596,1607,1623,1638,1650],{"__ignoreMap":86},[133,1397,1398,1400],{"class":135,"line":136},[133,1399,959],{"class":958},[133,1401,963],{"class":962},[133,1403,1404],{"class":135,"line":265},[133,1405,969],{"emptyLinePlaceholder":968},[133,1407,1408,1410,1412,1414],{"class":135,"line":972},[133,1409,975],{"class":958},[133,1411,978],{"class":962},[133,1413,959],{"class":958},[133,1415,983],{"class":962},[133,1417,1418,1420,1422,1424],{"class":135,"line":986},[133,1419,975],{"class":958},[133,1421,991],{"class":962},[133,1423,959],{"class":958},[133,1425,996],{"class":962},[133,1427,1428,1430,1432,1434],{"class":135,"line":999},[133,1429,975],{"class":958},[133,1431,1004],{"class":962},[133,1433,959],{"class":958},[133,1435,1009],{"class":962},[133,1437,1438,1440,1442,1444],{"class":135,"line":1012},[133,1439,975],{"class":958},[133,1441,1042],{"class":962},[133,1443,959],{"class":958},[133,1445,1047],{"class":962},[133,1447,1448,1450,1453,1455],{"class":135,"line":1024},[133,1449,975],{"class":958},[133,1451,1452],{"class":962}," launch_ros.actions ",[133,1454,959],{"class":958},[133,1456,1457],{"class":962}," Node\n",[133,1459,1460],{"class":135,"line":1037},[133,1461,969],{"emptyLinePlaceholder":968},[133,1463,1464,1466,1468],{"class":135,"line":1050},[133,1465,1070],{"class":958},[133,1467,1073],{"class":139},[133,1469,1076],{"class":962},[133,1471,1472,1474,1476,1478,1480],{"class":135,"line":1055},[133,1473,1082],{"class":962},[133,1475,1085],{"class":958},[133,1477,1088],{"class":962},[133,1479,1091],{"class":143},[133,1481,1094],{"class":962},[133,1483,1484],{"class":135,"line":1062},[133,1485,969],{"emptyLinePlaceholder":968},[133,1487,1488,1490,1492,1494,1496,1498,1500,1502,1505],{"class":135,"line":1067},[133,1489,1126],{"class":962},[133,1491,1085],{"class":958},[133,1493,1131],{"class":962},[133,1495,1134],{"class":143},[133,1497,1137],{"class":962},[133,1499,1141],{"class":1140},[133,1501,1085],{"class":958},[133,1503,1504],{"class":143},"'false'",[133,1506,1094],{"class":962},[133,1508,1509],{"class":135,"line":1079},[133,1510,969],{"emptyLinePlaceholder":968},[133,1512,1513,1516,1518,1521,1524,1526,1529],{"class":135,"line":1097},[133,1514,1515],{"class":962},"    rviz_config_dir ",[133,1517,1085],{"class":958},[133,1519,1520],{"class":962}," os.path.join(navigation2_dir,",[133,1522,1523],{"class":143},"'rviz'",[133,1525,1164],{"class":962},[133,1527,1528],{"class":143},"'nav2.rviz'",[133,1530,1094],{"class":962},[133,1532,1533],{"class":135,"line":1112},[133,1534,969],{"emptyLinePlaceholder":968},[133,1536,1537,1539],{"class":135,"line":1117},[133,1538,1223],{"class":958},[133,1540,1226],{"class":962},[133,1542,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561],{"class":135,"line":1123},[133,1544,1232],{"class":962},[133,1546,1134],{"class":143},[133,1548,1164],{"class":962},[133,1550,1239],{"class":1140},[133,1552,1085],{"class":958},[133,1554,1244],{"class":962},[133,1556,1247],{"class":1140},[133,1558,1085],{"class":958},[133,1560,1252],{"class":143},[133,1562,1255],{"class":962},[133,1564,1565],{"class":135,"line":1151},[133,1566,969],{"emptyLinePlaceholder":968},[133,1568,1569],{"class":135,"line":1184},[133,1570,1571],{"class":962},"        Node(\n",[133,1573,1574,1577,1579,1582],{"class":135,"line":1215},[133,1575,1576],{"class":1140},"            package",[133,1578,1085],{"class":958},[133,1580,1581],{"class":143},"'rviz2'",[133,1583,1584],{"class":962},",\n",[133,1586,1587,1590,1592,1594],{"class":135,"line":1220},[133,1588,1589],{"class":1140},"            executable",[133,1591,1085],{"class":958},[133,1593,1581],{"class":143},[133,1595,1584],{"class":962},[133,1597,1598,1601,1603,1605],{"class":135,"line":1229},[133,1599,1600],{"class":1140},"            name",[133,1602,1085],{"class":958},[133,1604,1581],{"class":143},[133,1606,1584],{"class":962},[133,1608,1609,1612,1614,1617,1620],{"class":135,"line":1258},[133,1610,1611],{"class":1140},"            arguments",[133,1613,1085],{"class":958},[133,1615,1616],{"class":962},"[",[133,1618,1619],{"class":143},"'-d'",[133,1621,1622],{"class":962},", rviz_config_dir],\n",[133,1624,1625,1628,1630,1633,1635],{"class":135,"line":1283},[133,1626,1627],{"class":1140},"            parameters",[133,1629,1085],{"class":958},[133,1631,1632],{"class":962},"[{",[133,1634,1134],{"class":143},[133,1636,1637],{"class":962},": use_sim_time}],\n",[133,1639,1640,1643,1645,1648],{"class":135,"line":1308},[133,1641,1642],{"class":1140},"            output",[133,1644,1085],{"class":958},[133,1646,1647],{"class":143},"'screen'",[133,1649,1255],{"class":962},[133,1651,1652],{"class":135,"line":1313},[133,1653,1383],{"class":962},[35,1655,1386,1656,1659],{},[130,1657,1658],{},"nav2.yaml","配置文件（差速模型+DWE局部规划器）：",[124,1661,1663],{"className":949,"code":1662,"language":951,"meta":86,"style":86},"amcl:\n  ros__parameters:\n    use_sim_time: false\n    alpha1: 0.2\n    alpha2: 0.2\n    alpha3: 0.2\n    alpha4: 0.2\n    alpha5: 0.2\n    base_frame_id: \"base_link\"\n    beam_skip_distance: 0.5\n    beam_skip_error_threshold: 0.9\n    beam_skip_threshold: 0.3\n    do_beamskip: false\n    global_frame_id: \"map\"\n    lambda_short: 0.1\n    laser_likelihood_max_dist: 2.0\n    laser_max_range: 100.0\n    laser_min_range: -1.0\n    laser_model_type: \"likelihood_field\"\n    max_beams: 60\n    max_particles: 2000\n    min_particles: 500\n    odom_frame_id: \"odom\"\n    pf_err: 0.05\n    pf_z: 0.99\n    recovery_alpha_fast: 0.0\n    recovery_alpha_slow: 0.0\n    resample_interval: 1\n    robot_model_type: \"nav2_amcl::DifferentialMotionModel\"\n    save_pose_rate: 0.5\n    sigma_hit: 0.2\n    tf_broadcast: true\n    transform_tolerance: 1.0\n    update_min_a: 0.2\n    update_min_d: 0.25\n    z_hit: 0.5\n    z_max: 0.05\n    z_rand: 0.5\n    z_short: 0.05\n    scan_topic: scan\n\namcl_map_client:\n  ros__parameters:\n    use_sim_time: false\n\namcl_rclcpp_node:\n  ros__parameters:\n    use_sim_time: false\n\nbt_navigator:\n  ros__parameters:\n    use_sim_time: false\n    global_frame: map\n    robot_base_frame: base_link\n    odom_topic: \u002Fodom\n    bt_loop_duration: 10\n    default_server_timeout: 20\n\n    # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:\n\n    # nav2_bt_navigator\u002Fnavigate_to_pose_w_replanning_and_recovery.xml\n\n    # nav2_bt_navigator\u002Fnavigate_through_poses_w_replanning_and_recovery.xml\n\n    # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.\n    plugin_lib_names:\n    - nav2_compute_path_to_pose_action_bt_node\n    - nav2_compute_path_through_poses_action_bt_node\n    - nav2_smooth_path_action_bt_node\n    - nav2_follow_path_action_bt_node\n    - nav2_spin_action_bt_node\n    - nav2_wait_action_bt_node\n    - nav2_back_up_action_bt_node\n    - nav2_drive_on_heading_bt_node\n    - nav2_clear_costmap_service_bt_node\n    - nav2_is_stuck_condition_bt_node\n    - nav2_goal_reached_condition_bt_node\n    - nav2_goal_updated_condition_bt_node\n    - nav2_globally_updated_goal_condition_bt_node\n    - nav2_is_path_valid_condition_bt_node\n    - nav2_initial_pose_received_condition_bt_node\n    - nav2_reinitialize_global_localization_service_bt_node\n    - nav2_rate_controller_bt_node\n    - nav2_distance_controller_bt_node\n    - nav2_speed_controller_bt_node\n    - nav2_truncate_path_action_bt_node\n    - nav2_truncate_path_local_action_bt_node\n    - nav2_goal_updater_node_bt_node\n    - nav2_recovery_node_bt_node\n    - nav2_pipeline_sequence_bt_node\n    - nav2_round_robin_node_bt_node\n    - nav2_transform_available_condition_bt_node\n    - nav2_time_expired_condition_bt_node\n    - nav2_path_expiring_timer_condition\n    - nav2_distance_traveled_condition_bt_node\n    - nav2_single_trigger_bt_node\n    - nav2_is_battery_low_condition_bt_node\n    - nav2_navigate_through_poses_action_bt_node\n    - nav2_navigate_to_pose_action_bt_node\n    - nav2_remove_passed_goals_action_bt_node\n    - nav2_planner_selector_bt_node\n    - nav2_controller_selector_bt_node\n    - nav2_goal_checker_selector_bt_node\n    - nav2_controller_cancel_bt_node\n    - nav2_path_longer_on_approach_bt_node\n    - nav2_wait_cancel_bt_node\n    - nav2_spin_cancel_bt_node\n    - nav2_back_up_cancel_bt_node\n    - nav2_drive_on_heading_cancel_bt_node\n\nbt_navigator_rclcpp_node:\n  ros__parameters:\n    use_sim_time: false\n\ncontroller_server:\n  ros__parameters:\n    use_sim_time: false\n    controller_frequency: 20.0\n    min_x_velocity_threshold: 0.001\n    min_y_velocity_threshold: 0.5\n    min_theta_velocity_threshold: 0.001\n    failure_tolerance: 0.3\n    progress_checker_plugin: \"progress_checker\"\n    goal_checker_plugins: [\"general_goal_checker\"] # \"precise_goal_checker\"\n    controller_plugins: [\"FollowPath\"]\n\n    # Progress checker parameters\n    progress_checker:\n      plugin: \"nav2_controller::SimpleProgressChecker\"\n      required_movement_radius: 0.5\n      movement_time_allowance: 10.0\n\n    # Goal checker parameters\n    #precise_goal_checker:\n\n    #  plugin: \"nav2_controller::SimpleGoalChecker\"\n\n    #  xy_goal_tolerance: 0.25\n\n    #  yaw_goal_tolerance: 0.25\n\n    #  stateful: True\n    general_goal_checker:\n      stateful: True\n      plugin: \"nav2_controller::SimpleGoalChecker\"\n      xy_goal_tolerance: 0.25\n      yaw_goal_tolerance: 0.25\n\n    # DWB parameters\n    FollowPath:\n      plugin: \"dwb_core::DWBLocalPlanner\"\n      debug_trajectory_details: True\n      min_vel_x: 0.0\n      min_vel_y: 0.0\n      max_vel_x: 0.26\n      max_vel_y: 0.0\n      max_vel_theta: 1.0\n      min_speed_xy: 0.0\n      max_speed_xy: 0.26\n      min_speed_theta: 0.0\n\n      # Add high threshold velocity for turtlebot 3 issue.\n\n      # https:\u002F\u002Fgithub.com\u002FROBOTIS-GIT\u002Fturtlebot3_simulations\u002Fissues\u002F75\n      acc_lim_x: 2.5\n      acc_lim_y: 0.0\n      acc_lim_theta: 3.2\n      decel_lim_x: -2.5\n      decel_lim_y: 0.0\n      decel_lim_theta: -3.2\n      vx_samples: 20\n      vy_samples: 5\n      vtheta_samples: 20\n      sim_time: 1.7\n      linear_granularity: 0.05\n      angular_granularity: 0.025\n      transform_tolerance: 0.2\n      xy_goal_tolerance: 0.25\n      trans_stopped_velocity: 0.25\n      short_circuit_trajectory_evaluation: True\n      stateful: True\n      critics: [\"RotateToGoal\", \"Oscillation\", \"BaseObstacle\", \"GoalAlign\", \"PathAlign\", \"PathDist\", \"GoalDist\"]\n      BaseObstacle.scale: 0.02\n      PathAlign.scale: 32.0\n      PathAlign.forward_point_distance: 0.1\n      GoalAlign.scale: 24.0\n      GoalAlign.forward_point_distance: 0.1\n      PathDist.scale: 32.0\n      GoalDist.scale: 24.0\n      RotateToGoal.scale: 32.0\n      RotateToGoal.slowing_factor: 5.0\n      RotateToGoal.lookahead_time: -1.0\n\ncontroller_server_rclcpp_node:\n  ros__parameters:\n    use_sim_time: false\n\nlocal_costmap:\n  local_costmap:\n    ros__parameters:\n      update_frequency: 5.0\n      publish_frequency: 2.0\n      global_frame: odom\n      robot_base_frame: base_link\n      use_sim_time: false\n      rolling_window: true\n      width: 3\n      height: 3\n      resolution: 0.05\n      robot_radius: 0.22\n      plugins: [\"static_layer\", \"obstacle_layer\", \"voxel_layer\", \"inflation_layer\"]\n      inflation_layer:\n        plugin: \"nav2_costmap_2d::InflationLayer\"\n        cost_scaling_factor: 3.0\n        inflation_radius: 0.55\n      obstacle_layer:\n        plugin: \"nav2_costmap_2d::ObstacleLayer\"\n        enabled: True\n        observation_sources: scan\n        scan:\n          topic: \u002Fscan\n          max_obstacle_height: 2.0\n          clearing: True\n          marking: True\n          data_type: \"LaserScan\"\n          raytrace_max_range: 3.0\n          raytrace_min_range: 0.0\n          obstacle_max_range: 2.5\n          obstacle_min_range: 0.0\n      voxel_layer:\n        plugin: \"nav2_costmap_2d::VoxelLayer\"\n        enabled: True\n        publish_voxel_map: True\n        origin_z: 0.0\n        z_resolution: 0.05\n        z_voxels: 16\n        max_obstacle_height: 2.0\n        mark_threshold: 0\n        observation_sources: scan\n        scan:\n          topic: \u002Fscan\n          max_obstacle_height: 2.0\n          clearing: True\n          marking: True\n          data_type: \"LaserScan\"\n          raytrace_max_range: 3.0\n          raytrace_min_range: 0.0\n          obstacle_max_range: 2.5\n          obstacle_min_range: 0.0\n      static_layer:\n        plugin: \"nav2_costmap_2d::StaticLayer\"\n        map_subscribe_transient_local: True\n      always_send_full_costmap: True\n\n  local_costmap_client:\n    ros__parameters:\n      use_sim_time: false\n  local_costmap_rclcpp_node:\n    ros__parameters:\n      use_sim_time: false\n\nglobal_costmap:\n  global_costmap:\n    ros__parameters:\n      update_frequency: 1.0\n      publish_frequency: 1.0\n      global_frame: map\n      robot_base_frame: base_link\n      use_sim_time: false\n      robot_radius: 0.22\n      resolution: 0.05\n      track_unknown_space: true\n      plugins: [\"static_layer\", \"obstacle_layer\", \"inflation_layer\"]\n      obstacle_layer:\n        plugin: \"nav2_costmap_2d::ObstacleLayer\"\n        enabled: True\n        observation_sources: scan\n        scan:\n          topic: \u002Fscan\n          max_obstacle_height: 2.0\n          clearing: True\n          marking: True\n          data_type: \"LaserScan\"\n          raytrace_max_range: 3.0\n          raytrace_min_range: 0.0\n          obstacle_max_range: 2.5\n          obstacle_min_range: 0.0\n      static_layer:\n        plugin: \"nav2_costmap_2d::StaticLayer\"\n        map_subscribe_transient_local: True\n      inflation_layer:\n        plugin: \"nav2_costmap_2d::InflationLayer\"\n        cost_scaling_factor: 3.0\n        inflation_radius: 0.55\n      always_send_full_costmap: True\n\n  global_costmap_client:\n    ros__parameters:\n      use_sim_time: false\n  global_costmap_rclcpp_node:\n    ros__parameters:\n      use_sim_time: false\n\nmap_server:\n  ros__parameters:\n    use_sim_time: false\n    yaml_filename: \"house.yaml\"\n\nmap_saver:\n  ros__parameters:\n    use_sim_time: false\n    save_map_timeout: 5.0\n    free_thresh_default: 0.25\n    occupied_thresh_default: 0.65\n    map_subscribe_transient_local: True\n\nplanner_server:\n  ros__parameters:\n    expected_planner_frequency: 20.0\n    use_sim_time: false\n    planner_plugins: [\"GridBased\"]\n    GridBased:\n      plugin: \"nav2_navfn_planner\u002FNavfnPlanner\"\n      tolerance: 0.5\n      use_astar: false\n      allow_unknown: true\n\nplanner_server_rclcpp_node:\n  ros__parameters:\n    use_sim_time: false\n\nsmoother_server:\n  ros__parameters:\n    use_sim_time: false\n    smoother_plugins: [\"simple_smoother\"]\n    simple_smoother:\n      plugin: \"nav2_smoother::SimpleSmoother\"\n      tolerance: 1.0e-10\n      max_its: 1000\n      do_refinement: True\n\nbehavior_server:\n  ros__parameters:\n    costmap_topic: local_costmap\u002Fcostmap_raw\n    footprint_topic: local_costmap\u002Fpublished_footprint\n    cycle_frequency: 10.0\n    behavior_plugins: [\"spin\", \"backup\", \"drive_on_heading\", \"wait\"]\n    spin:\n      plugin: \"nav2_behaviors\u002FSpin\"\n    backup:\n      plugin: \"nav2_behaviors\u002FBackUp\"\n    drive_on_heading:\n      plugin: \"nav2_behaviors\u002FDriveOnHeading\"\n    wait:\n      plugin: \"nav2_behaviors\u002FWait\"\n    global_frame: odom\n    robot_base_frame: base_link\n    transform_tolerance: 0.1\n    use_sim_time: false\n    simulate_ahead_time: 2.0\n    max_rotational_vel: 1.0\n    min_rotational_vel: 0.4\n    rotational_acc_lim: 3.2\n\nrobot_state_publisher:\n  ros__parameters:\n    use_sim_time: false\n\nwaypoint_follower:\n  ros__parameters:\n    loop_rate: 20\n    stop_on_failure: false\n    waypoint_task_executor_plugin: \"wait_at_waypoint\"\n    wait_at_waypoint:\n      plugin: \"nav2_waypoint_follower::WaitAtWaypoint\"\n      enabled: True\n      waypoint_pause_duration: 200\n\nvelocity_smoother:\n  ros__parameters:\n    use_sim_time: false\n    smoothing_frequency: 20.0\n    scale_velocities: False\n    feedback: \"OPEN_LOOP\"\n    max_velocity: [0.26, 0.0, 1.0]\n    min_velocity: [-0.26, 0.0, -1.0]\n    max_accel: [2.5, 0.0, 3.2]\n    max_decel: [-2.5, 0.0, -3.2]\n    odom_topic: \"odom\"\n    odom_duration: 0.1\n    deadband_velocity: [0.0, 0.0, 0.0]\n    velocity_timeout: 1.0\n",[130,1664,1665,1670,1675,1680,1688,1695,1702,1709,1716,1724,1732,1740,1748,1753,1761,1769,1777,1785,1796,1804,1812,1820,1828,1836,1844,1852,1860,1867,1875,1883,1890,1897,1902,1909,1917,1926,1934,1942,1950,1958,1964,1969,1975,1980,1985,1990,1996,2001,2006,2011,2017,2022,2027,2036,2042,2054,2063,2072,2077,2083,2088,2094,2099,2105,2110,2116,2122,2131,2139,2147,2155,2163,2171,2179,2187,2195,2203,2211,2219,2227,2235,2243,2251,2259,2267,2275,2283,2291,2299,2307,2315,2323,2331,2339,2347,2355,2363,2371,2379,2387,2395,2403,2411,2419,2427,2435,2443,2451,2459,2467,2472,2478,2483,2488,2493,2499,2504,2509,2518,2527,2535,2543,2551,2560,2575,2587,2592,2598,2604,2613,2621,2630,2635,2641,2647,2652,2658,2663,2669,2674,2680,2685,2691,2697,2706,2714,2722,2730,2735,2741,2747,2755,2763,2771,2779,2788,2796,2804,2812,2820,2828,2833,2839,2844,2850,2859,2867,2876,2886,2894,2904,2912,2921,2929,2938,2946,2955,2963,2970,2978,2986,2993,3034,3043,3052,3060,3069,3077,3085,3093,3101,3110,3120,3125,3131,3136,3141,3146,3152,3158,3164,3172,3180,3186,3192,3198,3204,3213,3221,3229,3238,3264,3270,3279,3288,3297,3303,3311,3319,3325,3331,3342,3350,3358,3366,3375,3383,3391,3399,3407,3413,3421,3428,3436,3444,3452,3461,3469,3478,3483,3488,3497,3504,3511,3518,3525,3532,3539,3546,3553,3559,3567,3575,3583,3588,3594,3599,3604,3610,3615,3620,3625,3631,3637,3642,3649,3656,3664,3669,3674,3681,3688,3694,3711,3716,3723,3730,3735,3740,3749,3756,3763,3770,3777,3784,3791,3798,3805,3810,3817,3824,3829,3836,3843,3850,3857,3862,3868,3873,3878,3884,3889,3894,3899,3905,3910,3915,3924,3929,3935,3940,3945,3953,3961,3970,3978,3983,3989,3994,4002,4007,4018,4024,4032,4040,4046,4052,4057,4063,4068,4073,4078,4084,4089,4094,4105,4111,4119,4127,4136,4144,4149,4155,4160,4171,4182,4190,4216,4222,4230,4236,4244,4250,4258,4264,4272,4278,4283,4290,4295,4303,4311,4320,4328,4333,4339,4344,4349,4354,4360,4365,4373,4379,4388,4394,4402,4410,4419,4424,4430,4435,4440,4448,4457,4466,4487,4509,4529,4551,4558,4566,4584],{"__ignoreMap":86},[133,1666,1667],{"class":135,"line":136},[133,1668,1669],{"class":962},"amcl:\n",[133,1671,1672],{"class":135,"line":265},[133,1673,1674],{"class":962},"  ros__parameters:\n",[133,1676,1677],{"class":135,"line":972},[133,1678,1679],{"class":962},"    use_sim_time: false\n",[133,1681,1682,1685],{"class":135,"line":986},[133,1683,1684],{"class":962},"    alpha1: ",[133,1686,1687],{"class":156},"0.2\n",[133,1689,1690,1693],{"class":135,"line":999},[133,1691,1692],{"class":962},"    alpha2: ",[133,1694,1687],{"class":156},[133,1696,1697,1700],{"class":135,"line":1012},[133,1698,1699],{"class":962},"    alpha3: ",[133,1701,1687],{"class":156},[133,1703,1704,1707],{"class":135,"line":1024},[133,1705,1706],{"class":962},"    alpha4: ",[133,1708,1687],{"class":156},[133,1710,1711,1714],{"class":135,"line":1037},[133,1712,1713],{"class":962},"    alpha5: ",[133,1715,1687],{"class":156},[133,1717,1718,1721],{"class":135,"line":1050},[133,1719,1720],{"class":962},"    base_frame_id: ",[133,1722,1723],{"class":143},"\"base_link\"\n",[133,1725,1726,1729],{"class":135,"line":1055},[133,1727,1728],{"class":962},"    beam_skip_distance: ",[133,1730,1731],{"class":156},"0.5\n",[133,1733,1734,1737],{"class":135,"line":1062},[133,1735,1736],{"class":962},"    beam_skip_error_threshold: ",[133,1738,1739],{"class":156},"0.9\n",[133,1741,1742,1745],{"class":135,"line":1067},[133,1743,1744],{"class":962},"    beam_skip_threshold: ",[133,1746,1747],{"class":156},"0.3\n",[133,1749,1750],{"class":135,"line":1079},[133,1751,1752],{"class":962},"    do_beamskip: false\n",[133,1754,1755,1758],{"class":135,"line":1097},[133,1756,1757],{"class":962},"    global_frame_id: ",[133,1759,1760],{"class":143},"\"map\"\n",[133,1762,1763,1766],{"class":135,"line":1112},[133,1764,1765],{"class":962},"    lambda_short: ",[133,1767,1768],{"class":156},"0.1\n",[133,1770,1771,1774],{"class":135,"line":1117},[133,1772,1773],{"class":962},"    laser_likelihood_max_dist: ",[133,1775,1776],{"class":156},"2.0\n",[133,1778,1779,1782],{"class":135,"line":1123},[133,1780,1781],{"class":962},"    laser_max_range: ",[133,1783,1784],{"class":156},"100.0\n",[133,1786,1787,1790,1793],{"class":135,"line":1151},[133,1788,1789],{"class":962},"    laser_min_range: ",[133,1791,1792],{"class":958},"-",[133,1794,1795],{"class":156},"1.0\n",[133,1797,1798,1801],{"class":135,"line":1184},[133,1799,1800],{"class":962},"    laser_model_type: ",[133,1802,1803],{"class":143},"\"likelihood_field\"\n",[133,1805,1806,1809],{"class":135,"line":1215},[133,1807,1808],{"class":962},"    max_beams: ",[133,1810,1811],{"class":156},"60\n",[133,1813,1814,1817],{"class":135,"line":1220},[133,1815,1816],{"class":962},"    max_particles: ",[133,1818,1819],{"class":156},"2000\n",[133,1821,1822,1825],{"class":135,"line":1229},[133,1823,1824],{"class":962},"    min_particles: ",[133,1826,1827],{"class":156},"500\n",[133,1829,1830,1833],{"class":135,"line":1258},[133,1831,1832],{"class":962},"    odom_frame_id: ",[133,1834,1835],{"class":143},"\"odom\"\n",[133,1837,1838,1841],{"class":135,"line":1283},[133,1839,1840],{"class":962},"    pf_err: ",[133,1842,1843],{"class":156},"0.05\n",[133,1845,1846,1849],{"class":135,"line":1308},[133,1847,1848],{"class":962},"    pf_z: ",[133,1850,1851],{"class":156},"0.99\n",[133,1853,1854,1857],{"class":135,"line":1313},[133,1855,1856],{"class":962},"    recovery_alpha_fast: ",[133,1858,1859],{"class":156},"0.0\n",[133,1861,1862,1865],{"class":135,"line":1319},[133,1863,1864],{"class":962},"    recovery_alpha_slow: ",[133,1866,1859],{"class":156},[133,1868,1869,1872],{"class":135,"line":1336},[133,1870,1871],{"class":962},"    resample_interval: ",[133,1873,1874],{"class":156},"1\n",[133,1876,1877,1880],{"class":135,"line":1347},[133,1878,1879],{"class":962},"    robot_model_type: ",[133,1881,1882],{"class":143},"\"nav2_amcl::DifferentialMotionModel\"\n",[133,1884,1885,1888],{"class":135,"line":1356},[133,1886,1887],{"class":962},"    save_pose_rate: ",[133,1889,1731],{"class":156},[133,1891,1892,1895],{"class":135,"line":1365},[133,1893,1894],{"class":962},"    sigma_hit: ",[133,1896,1687],{"class":156},[133,1898,1899],{"class":135,"line":1374},[133,1900,1901],{"class":962},"    tf_broadcast: true\n",[133,1903,1904,1907],{"class":135,"line":1380},[133,1905,1906],{"class":962},"    transform_tolerance: ",[133,1908,1795],{"class":156},[133,1910,1912,1915],{"class":135,"line":1911},34,[133,1913,1914],{"class":962},"    update_min_a: ",[133,1916,1687],{"class":156},[133,1918,1920,1923],{"class":135,"line":1919},35,[133,1921,1922],{"class":962},"    update_min_d: ",[133,1924,1925],{"class":156},"0.25\n",[133,1927,1929,1932],{"class":135,"line":1928},36,[133,1930,1931],{"class":962},"    z_hit: ",[133,1933,1731],{"class":156},[133,1935,1937,1940],{"class":135,"line":1936},37,[133,1938,1939],{"class":962},"    z_max: ",[133,1941,1843],{"class":156},[133,1943,1945,1948],{"class":135,"line":1944},38,[133,1946,1947],{"class":962},"    z_rand: ",[133,1949,1731],{"class":156},[133,1951,1953,1956],{"class":135,"line":1952},39,[133,1954,1955],{"class":962},"    z_short: ",[133,1957,1843],{"class":156},[133,1959,1961],{"class":135,"line":1960},40,[133,1962,1963],{"class":962},"    scan_topic: scan\n",[133,1965,1967],{"class":135,"line":1966},41,[133,1968,969],{"emptyLinePlaceholder":968},[133,1970,1972],{"class":135,"line":1971},42,[133,1973,1974],{"class":962},"amcl_map_client:\n",[133,1976,1978],{"class":135,"line":1977},43,[133,1979,1674],{"class":962},[133,1981,1983],{"class":135,"line":1982},44,[133,1984,1679],{"class":962},[133,1986,1988],{"class":135,"line":1987},45,[133,1989,969],{"emptyLinePlaceholder":968},[133,1991,1993],{"class":135,"line":1992},46,[133,1994,1995],{"class":962},"amcl_rclcpp_node:\n",[133,1997,1999],{"class":135,"line":1998},47,[133,2000,1674],{"class":962},[133,2002,2004],{"class":135,"line":2003},48,[133,2005,1679],{"class":962},[133,2007,2009],{"class":135,"line":2008},49,[133,2010,969],{"emptyLinePlaceholder":968},[133,2012,2014],{"class":135,"line":2013},50,[133,2015,2016],{"class":962},"bt_navigator:\n",[133,2018,2020],{"class":135,"line":2019},51,[133,2021,1674],{"class":962},[133,2023,2025],{"class":135,"line":2024},52,[133,2026,1679],{"class":962},[133,2028,2030,2033],{"class":135,"line":2029},53,[133,2031,2032],{"class":962},"    global_frame: ",[133,2034,2035],{"class":156},"map\n",[133,2037,2039],{"class":135,"line":2038},54,[133,2040,2041],{"class":962},"    robot_base_frame: base_link\n",[133,2043,2045,2048,2051],{"class":135,"line":2044},55,[133,2046,2047],{"class":962},"    odom_topic: ",[133,2049,2050],{"class":958},"\u002F",[133,2052,2053],{"class":962},"odom\n",[133,2055,2057,2060],{"class":135,"line":2056},56,[133,2058,2059],{"class":962},"    bt_loop_duration: ",[133,2061,2062],{"class":156},"10\n",[133,2064,2066,2069],{"class":135,"line":2065},57,[133,2067,2068],{"class":962},"    default_server_timeout: ",[133,2070,2071],{"class":156},"20\n",[133,2073,2075],{"class":135,"line":2074},58,[133,2076,969],{"emptyLinePlaceholder":968},[133,2078,2080],{"class":135,"line":2079},59,[133,2081,2082],{"class":1058},"    # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:\n",[133,2084,2086],{"class":135,"line":2085},60,[133,2087,969],{"emptyLinePlaceholder":968},[133,2089,2091],{"class":135,"line":2090},61,[133,2092,2093],{"class":1058},"    # nav2_bt_navigator\u002Fnavigate_to_pose_w_replanning_and_recovery.xml\n",[133,2095,2097],{"class":135,"line":2096},62,[133,2098,969],{"emptyLinePlaceholder":968},[133,2100,2102],{"class":135,"line":2101},63,[133,2103,2104],{"class":1058},"    # nav2_bt_navigator\u002Fnavigate_through_poses_w_replanning_and_recovery.xml\n",[133,2106,2108],{"class":135,"line":2107},64,[133,2109,969],{"emptyLinePlaceholder":968},[133,2111,2113],{"class":135,"line":2112},65,[133,2114,2115],{"class":1058},"    # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.\n",[133,2117,2119],{"class":135,"line":2118},66,[133,2120,2121],{"class":962},"    plugin_lib_names:\n",[133,2123,2125,2128],{"class":135,"line":2124},67,[133,2126,2127],{"class":958},"    -",[133,2129,2130],{"class":962}," nav2_compute_path_to_pose_action_bt_node\n",[133,2132,2134,2136],{"class":135,"line":2133},68,[133,2135,2127],{"class":958},[133,2137,2138],{"class":962}," nav2_compute_path_through_poses_action_bt_node\n",[133,2140,2142,2144],{"class":135,"line":2141},69,[133,2143,2127],{"class":958},[133,2145,2146],{"class":962}," nav2_smooth_path_action_bt_node\n",[133,2148,2150,2152],{"class":135,"line":2149},70,[133,2151,2127],{"class":958},[133,2153,2154],{"class":962}," nav2_follow_path_action_bt_node\n",[133,2156,2158,2160],{"class":135,"line":2157},71,[133,2159,2127],{"class":958},[133,2161,2162],{"class":962}," nav2_spin_action_bt_node\n",[133,2164,2166,2168],{"class":135,"line":2165},72,[133,2167,2127],{"class":958},[133,2169,2170],{"class":962}," nav2_wait_action_bt_node\n",[133,2172,2174,2176],{"class":135,"line":2173},73,[133,2175,2127],{"class":958},[133,2177,2178],{"class":962}," nav2_back_up_action_bt_node\n",[133,2180,2182,2184],{"class":135,"line":2181},74,[133,2183,2127],{"class":958},[133,2185,2186],{"class":962}," nav2_drive_on_heading_bt_node\n",[133,2188,2190,2192],{"class":135,"line":2189},75,[133,2191,2127],{"class":958},[133,2193,2194],{"class":962}," nav2_clear_costmap_service_bt_node\n",[133,2196,2198,2200],{"class":135,"line":2197},76,[133,2199,2127],{"class":958},[133,2201,2202],{"class":962}," nav2_is_stuck_condition_bt_node\n",[133,2204,2206,2208],{"class":135,"line":2205},77,[133,2207,2127],{"class":958},[133,2209,2210],{"class":962}," nav2_goal_reached_condition_bt_node\n",[133,2212,2214,2216],{"class":135,"line":2213},78,[133,2215,2127],{"class":958},[133,2217,2218],{"class":962}," nav2_goal_updated_condition_bt_node\n",[133,2220,2222,2224],{"class":135,"line":2221},79,[133,2223,2127],{"class":958},[133,2225,2226],{"class":962}," nav2_globally_updated_goal_condition_bt_node\n",[133,2228,2230,2232],{"class":135,"line":2229},80,[133,2231,2127],{"class":958},[133,2233,2234],{"class":962}," nav2_is_path_valid_condition_bt_node\n",[133,2236,2238,2240],{"class":135,"line":2237},81,[133,2239,2127],{"class":958},[133,2241,2242],{"class":962}," nav2_initial_pose_received_condition_bt_node\n",[133,2244,2246,2248],{"class":135,"line":2245},82,[133,2247,2127],{"class":958},[133,2249,2250],{"class":962}," nav2_reinitialize_global_localization_service_bt_node\n",[133,2252,2254,2256],{"class":135,"line":2253},83,[133,2255,2127],{"class":958},[133,2257,2258],{"class":962}," nav2_rate_controller_bt_node\n",[133,2260,2262,2264],{"class":135,"line":2261},84,[133,2263,2127],{"class":958},[133,2265,2266],{"class":962}," nav2_distance_controller_bt_node\n",[133,2268,2270,2272],{"class":135,"line":2269},85,[133,2271,2127],{"class":958},[133,2273,2274],{"class":962}," nav2_speed_controller_bt_node\n",[133,2276,2278,2280],{"class":135,"line":2277},86,[133,2279,2127],{"class":958},[133,2281,2282],{"class":962}," nav2_truncate_path_action_bt_node\n",[133,2284,2286,2288],{"class":135,"line":2285},87,[133,2287,2127],{"class":958},[133,2289,2290],{"class":962}," nav2_truncate_path_local_action_bt_node\n",[133,2292,2294,2296],{"class":135,"line":2293},88,[133,2295,2127],{"class":958},[133,2297,2298],{"class":962}," nav2_goal_updater_node_bt_node\n",[133,2300,2302,2304],{"class":135,"line":2301},89,[133,2303,2127],{"class":958},[133,2305,2306],{"class":962}," nav2_recovery_node_bt_node\n",[133,2308,2310,2312],{"class":135,"line":2309},90,[133,2311,2127],{"class":958},[133,2313,2314],{"class":962}," nav2_pipeline_sequence_bt_node\n",[133,2316,2318,2320],{"class":135,"line":2317},91,[133,2319,2127],{"class":958},[133,2321,2322],{"class":962}," nav2_round_robin_node_bt_node\n",[133,2324,2326,2328],{"class":135,"line":2325},92,[133,2327,2127],{"class":958},[133,2329,2330],{"class":962}," nav2_transform_available_condition_bt_node\n",[133,2332,2334,2336],{"class":135,"line":2333},93,[133,2335,2127],{"class":958},[133,2337,2338],{"class":962}," nav2_time_expired_condition_bt_node\n",[133,2340,2342,2344],{"class":135,"line":2341},94,[133,2343,2127],{"class":958},[133,2345,2346],{"class":962}," nav2_path_expiring_timer_condition\n",[133,2348,2350,2352],{"class":135,"line":2349},95,[133,2351,2127],{"class":958},[133,2353,2354],{"class":962}," nav2_distance_traveled_condition_bt_node\n",[133,2356,2358,2360],{"class":135,"line":2357},96,[133,2359,2127],{"class":958},[133,2361,2362],{"class":962}," nav2_single_trigger_bt_node\n",[133,2364,2366,2368],{"class":135,"line":2365},97,[133,2367,2127],{"class":958},[133,2369,2370],{"class":962}," nav2_is_battery_low_condition_bt_node\n",[133,2372,2374,2376],{"class":135,"line":2373},98,[133,2375,2127],{"class":958},[133,2377,2378],{"class":962}," nav2_navigate_through_poses_action_bt_node\n",[133,2380,2382,2384],{"class":135,"line":2381},99,[133,2383,2127],{"class":958},[133,2385,2386],{"class":962}," nav2_navigate_to_pose_action_bt_node\n",[133,2388,2390,2392],{"class":135,"line":2389},100,[133,2391,2127],{"class":958},[133,2393,2394],{"class":962}," nav2_remove_passed_goals_action_bt_node\n",[133,2396,2398,2400],{"class":135,"line":2397},101,[133,2399,2127],{"class":958},[133,2401,2402],{"class":962}," nav2_planner_selector_bt_node\n",[133,2404,2406,2408],{"class":135,"line":2405},102,[133,2407,2127],{"class":958},[133,2409,2410],{"class":962}," nav2_controller_selector_bt_node\n",[133,2412,2414,2416],{"class":135,"line":2413},103,[133,2415,2127],{"class":958},[133,2417,2418],{"class":962}," nav2_goal_checker_selector_bt_node\n",[133,2420,2422,2424],{"class":135,"line":2421},104,[133,2423,2127],{"class":958},[133,2425,2426],{"class":962}," nav2_controller_cancel_bt_node\n",[133,2428,2430,2432],{"class":135,"line":2429},105,[133,2431,2127],{"class":958},[133,2433,2434],{"class":962}," nav2_path_longer_on_approach_bt_node\n",[133,2436,2438,2440],{"class":135,"line":2437},106,[133,2439,2127],{"class":958},[133,2441,2442],{"class":962}," nav2_wait_cancel_bt_node\n",[133,2444,2446,2448],{"class":135,"line":2445},107,[133,2447,2127],{"class":958},[133,2449,2450],{"class":962}," nav2_spin_cancel_bt_node\n",[133,2452,2454,2456],{"class":135,"line":2453},108,[133,2455,2127],{"class":958},[133,2457,2458],{"class":962}," nav2_back_up_cancel_bt_node\n",[133,2460,2462,2464],{"class":135,"line":2461},109,[133,2463,2127],{"class":958},[133,2465,2466],{"class":962}," nav2_drive_on_heading_cancel_bt_node\n",[133,2468,2470],{"class":135,"line":2469},110,[133,2471,969],{"emptyLinePlaceholder":968},[133,2473,2475],{"class":135,"line":2474},111,[133,2476,2477],{"class":962},"bt_navigator_rclcpp_node:\n",[133,2479,2481],{"class":135,"line":2480},112,[133,2482,1674],{"class":962},[133,2484,2486],{"class":135,"line":2485},113,[133,2487,1679],{"class":962},[133,2489,2491],{"class":135,"line":2490},114,[133,2492,969],{"emptyLinePlaceholder":968},[133,2494,2496],{"class":135,"line":2495},115,[133,2497,2498],{"class":962},"controller_server:\n",[133,2500,2502],{"class":135,"line":2501},116,[133,2503,1674],{"class":962},[133,2505,2507],{"class":135,"line":2506},117,[133,2508,1679],{"class":962},[133,2510,2512,2515],{"class":135,"line":2511},118,[133,2513,2514],{"class":962},"    controller_frequency: ",[133,2516,2517],{"class":156},"20.0\n",[133,2519,2521,2524],{"class":135,"line":2520},119,[133,2522,2523],{"class":962},"    min_x_velocity_threshold: ",[133,2525,2526],{"class":156},"0.001\n",[133,2528,2530,2533],{"class":135,"line":2529},120,[133,2531,2532],{"class":962},"    min_y_velocity_threshold: ",[133,2534,1731],{"class":156},[133,2536,2538,2541],{"class":135,"line":2537},121,[133,2539,2540],{"class":962},"    min_theta_velocity_threshold: ",[133,2542,2526],{"class":156},[133,2544,2546,2549],{"class":135,"line":2545},122,[133,2547,2548],{"class":962},"    failure_tolerance: ",[133,2550,1747],{"class":156},[133,2552,2554,2557],{"class":135,"line":2553},123,[133,2555,2556],{"class":962},"    progress_checker_plugin: ",[133,2558,2559],{"class":143},"\"progress_checker\"\n",[133,2561,2563,2566,2569,2572],{"class":135,"line":2562},124,[133,2564,2565],{"class":962},"    goal_checker_plugins: [",[133,2567,2568],{"class":143},"\"general_goal_checker\"",[133,2570,2571],{"class":962},"] ",[133,2573,2574],{"class":1058},"# \"precise_goal_checker\"\n",[133,2576,2578,2581,2584],{"class":135,"line":2577},125,[133,2579,2580],{"class":962},"    controller_plugins: [",[133,2582,2583],{"class":143},"\"FollowPath\"",[133,2585,2586],{"class":962},"]\n",[133,2588,2590],{"class":135,"line":2589},126,[133,2591,969],{"emptyLinePlaceholder":968},[133,2593,2595],{"class":135,"line":2594},127,[133,2596,2597],{"class":1058},"    # Progress checker parameters\n",[133,2599,2601],{"class":135,"line":2600},128,[133,2602,2603],{"class":962},"    progress_checker:\n",[133,2605,2607,2610],{"class":135,"line":2606},129,[133,2608,2609],{"class":962},"      plugin: ",[133,2611,2612],{"class":143},"\"nav2_controller::SimpleProgressChecker\"\n",[133,2614,2616,2619],{"class":135,"line":2615},130,[133,2617,2618],{"class":962},"      required_movement_radius: ",[133,2620,1731],{"class":156},[133,2622,2624,2627],{"class":135,"line":2623},131,[133,2625,2626],{"class":962},"      movement_time_allowance: ",[133,2628,2629],{"class":156},"10.0\n",[133,2631,2633],{"class":135,"line":2632},132,[133,2634,969],{"emptyLinePlaceholder":968},[133,2636,2638],{"class":135,"line":2637},133,[133,2639,2640],{"class":1058},"    # Goal checker parameters\n",[133,2642,2644],{"class":135,"line":2643},134,[133,2645,2646],{"class":1058},"    #precise_goal_checker:\n",[133,2648,2650],{"class":135,"line":2649},135,[133,2651,969],{"emptyLinePlaceholder":968},[133,2653,2655],{"class":135,"line":2654},136,[133,2656,2657],{"class":1058},"    #  plugin: \"nav2_controller::SimpleGoalChecker\"\n",[133,2659,2661],{"class":135,"line":2660},137,[133,2662,969],{"emptyLinePlaceholder":968},[133,2664,2666],{"class":135,"line":2665},138,[133,2667,2668],{"class":1058},"    #  xy_goal_tolerance: 0.25\n",[133,2670,2672],{"class":135,"line":2671},139,[133,2673,969],{"emptyLinePlaceholder":968},[133,2675,2677],{"class":135,"line":2676},140,[133,2678,2679],{"class":1058},"    #  yaw_goal_tolerance: 0.25\n",[133,2681,2683],{"class":135,"line":2682},141,[133,2684,969],{"emptyLinePlaceholder":968},[133,2686,2688],{"class":135,"line":2687},142,[133,2689,2690],{"class":1058},"    #  stateful: True\n",[133,2692,2694],{"class":135,"line":2693},143,[133,2695,2696],{"class":962},"    general_goal_checker:\n",[133,2698,2700,2703],{"class":135,"line":2699},144,[133,2701,2702],{"class":962},"      stateful: ",[133,2704,2705],{"class":156},"True\n",[133,2707,2709,2711],{"class":135,"line":2708},145,[133,2710,2609],{"class":962},[133,2712,2713],{"class":143},"\"nav2_controller::SimpleGoalChecker\"\n",[133,2715,2717,2720],{"class":135,"line":2716},146,[133,2718,2719],{"class":962},"      xy_goal_tolerance: ",[133,2721,1925],{"class":156},[133,2723,2725,2728],{"class":135,"line":2724},147,[133,2726,2727],{"class":962},"      yaw_goal_tolerance: ",[133,2729,1925],{"class":156},[133,2731,2733],{"class":135,"line":2732},148,[133,2734,969],{"emptyLinePlaceholder":968},[133,2736,2738],{"class":135,"line":2737},149,[133,2739,2740],{"class":1058},"    # DWB parameters\n",[133,2742,2744],{"class":135,"line":2743},150,[133,2745,2746],{"class":962},"    FollowPath:\n",[133,2748,2750,2752],{"class":135,"line":2749},151,[133,2751,2609],{"class":962},[133,2753,2754],{"class":143},"\"dwb_core::DWBLocalPlanner\"\n",[133,2756,2758,2761],{"class":135,"line":2757},152,[133,2759,2760],{"class":962},"      debug_trajectory_details: ",[133,2762,2705],{"class":156},[133,2764,2766,2769],{"class":135,"line":2765},153,[133,2767,2768],{"class":962},"      min_vel_x: ",[133,2770,1859],{"class":156},[133,2772,2774,2777],{"class":135,"line":2773},154,[133,2775,2776],{"class":962},"      min_vel_y: ",[133,2778,1859],{"class":156},[133,2780,2782,2785],{"class":135,"line":2781},155,[133,2783,2784],{"class":962},"      max_vel_x: ",[133,2786,2787],{"class":156},"0.26\n",[133,2789,2791,2794],{"class":135,"line":2790},156,[133,2792,2793],{"class":962},"      max_vel_y: ",[133,2795,1859],{"class":156},[133,2797,2799,2802],{"class":135,"line":2798},157,[133,2800,2801],{"class":962},"      max_vel_theta: ",[133,2803,1795],{"class":156},[133,2805,2807,2810],{"class":135,"line":2806},158,[133,2808,2809],{"class":962},"      min_speed_xy: ",[133,2811,1859],{"class":156},[133,2813,2815,2818],{"class":135,"line":2814},159,[133,2816,2817],{"class":962},"      max_speed_xy: ",[133,2819,2787],{"class":156},[133,2821,2823,2826],{"class":135,"line":2822},160,[133,2824,2825],{"class":962},"      min_speed_theta: ",[133,2827,1859],{"class":156},[133,2829,2831],{"class":135,"line":2830},161,[133,2832,969],{"emptyLinePlaceholder":968},[133,2834,2836],{"class":135,"line":2835},162,[133,2837,2838],{"class":1058},"      # Add high threshold velocity for turtlebot 3 issue.\n",[133,2840,2842],{"class":135,"line":2841},163,[133,2843,969],{"emptyLinePlaceholder":968},[133,2845,2847],{"class":135,"line":2846},164,[133,2848,2849],{"class":1058},"      # https:\u002F\u002Fgithub.com\u002FROBOTIS-GIT\u002Fturtlebot3_simulations\u002Fissues\u002F75\n",[133,2851,2853,2856],{"class":135,"line":2852},165,[133,2854,2855],{"class":962},"      acc_lim_x: ",[133,2857,2858],{"class":156},"2.5\n",[133,2860,2862,2865],{"class":135,"line":2861},166,[133,2863,2864],{"class":962},"      acc_lim_y: ",[133,2866,1859],{"class":156},[133,2868,2870,2873],{"class":135,"line":2869},167,[133,2871,2872],{"class":962},"      acc_lim_theta: ",[133,2874,2875],{"class":156},"3.2\n",[133,2877,2879,2882,2884],{"class":135,"line":2878},168,[133,2880,2881],{"class":962},"      decel_lim_x: ",[133,2883,1792],{"class":958},[133,2885,2858],{"class":156},[133,2887,2889,2892],{"class":135,"line":2888},169,[133,2890,2891],{"class":962},"      decel_lim_y: ",[133,2893,1859],{"class":156},[133,2895,2897,2900,2902],{"class":135,"line":2896},170,[133,2898,2899],{"class":962},"      decel_lim_theta: ",[133,2901,1792],{"class":958},[133,2903,2875],{"class":156},[133,2905,2907,2910],{"class":135,"line":2906},171,[133,2908,2909],{"class":962},"      vx_samples: ",[133,2911,2071],{"class":156},[133,2913,2915,2918],{"class":135,"line":2914},172,[133,2916,2917],{"class":962},"      vy_samples: ",[133,2919,2920],{"class":156},"5\n",[133,2922,2924,2927],{"class":135,"line":2923},173,[133,2925,2926],{"class":962},"      vtheta_samples: ",[133,2928,2071],{"class":156},[133,2930,2932,2935],{"class":135,"line":2931},174,[133,2933,2934],{"class":962},"      sim_time: ",[133,2936,2937],{"class":156},"1.7\n",[133,2939,2941,2944],{"class":135,"line":2940},175,[133,2942,2943],{"class":962},"      linear_granularity: ",[133,2945,1843],{"class":156},[133,2947,2949,2952],{"class":135,"line":2948},176,[133,2950,2951],{"class":962},"      angular_granularity: ",[133,2953,2954],{"class":156},"0.025\n",[133,2956,2958,2961],{"class":135,"line":2957},177,[133,2959,2960],{"class":962},"      transform_tolerance: ",[133,2962,1687],{"class":156},[133,2964,2966,2968],{"class":135,"line":2965},178,[133,2967,2719],{"class":962},[133,2969,1925],{"class":156},[133,2971,2973,2976],{"class":135,"line":2972},179,[133,2974,2975],{"class":962},"      trans_stopped_velocity: ",[133,2977,1925],{"class":156},[133,2979,2981,2984],{"class":135,"line":2980},180,[133,2982,2983],{"class":962},"      short_circuit_trajectory_evaluation: ",[133,2985,2705],{"class":156},[133,2987,2989,2991],{"class":135,"line":2988},181,[133,2990,2702],{"class":962},[133,2992,2705],{"class":156},[133,2994,2996,2999,3002,3004,3007,3009,3012,3014,3017,3019,3022,3024,3027,3029,3032],{"class":135,"line":2995},182,[133,2997,2998],{"class":962},"      critics: [",[133,3000,3001],{"class":143},"\"RotateToGoal\"",[133,3003,1137],{"class":962},[133,3005,3006],{"class":143},"\"Oscillation\"",[133,3008,1137],{"class":962},[133,3010,3011],{"class":143},"\"BaseObstacle\"",[133,3013,1137],{"class":962},[133,3015,3016],{"class":143},"\"GoalAlign\"",[133,3018,1137],{"class":962},[133,3020,3021],{"class":143},"\"PathAlign\"",[133,3023,1137],{"class":962},[133,3025,3026],{"class":143},"\"PathDist\"",[133,3028,1137],{"class":962},[133,3030,3031],{"class":143},"\"GoalDist\"",[133,3033,2586],{"class":962},[133,3035,3037,3040],{"class":135,"line":3036},183,[133,3038,3039],{"class":962},"      BaseObstacle.scale: ",[133,3041,3042],{"class":156},"0.02\n",[133,3044,3046,3049],{"class":135,"line":3045},184,[133,3047,3048],{"class":962},"      PathAlign.scale: ",[133,3050,3051],{"class":156},"32.0\n",[133,3053,3055,3058],{"class":135,"line":3054},185,[133,3056,3057],{"class":962},"      PathAlign.forward_point_distance: ",[133,3059,1768],{"class":156},[133,3061,3063,3066],{"class":135,"line":3062},186,[133,3064,3065],{"class":962},"      GoalAlign.scale: ",[133,3067,3068],{"class":156},"24.0\n",[133,3070,3072,3075],{"class":135,"line":3071},187,[133,3073,3074],{"class":962},"      GoalAlign.forward_point_distance: ",[133,3076,1768],{"class":156},[133,3078,3080,3083],{"class":135,"line":3079},188,[133,3081,3082],{"class":962},"      PathDist.scale: ",[133,3084,3051],{"class":156},[133,3086,3088,3091],{"class":135,"line":3087},189,[133,3089,3090],{"class":962},"      GoalDist.scale: ",[133,3092,3068],{"class":156},[133,3094,3096,3099],{"class":135,"line":3095},190,[133,3097,3098],{"class":962},"      RotateToGoal.scale: ",[133,3100,3051],{"class":156},[133,3102,3104,3107],{"class":135,"line":3103},191,[133,3105,3106],{"class":962},"      RotateToGoal.slowing_factor: ",[133,3108,3109],{"class":156},"5.0\n",[133,3111,3113,3116,3118],{"class":135,"line":3112},192,[133,3114,3115],{"class":962},"      RotateToGoal.lookahead_time: ",[133,3117,1792],{"class":958},[133,3119,1795],{"class":156},[133,3121,3123],{"class":135,"line":3122},193,[133,3124,969],{"emptyLinePlaceholder":968},[133,3126,3128],{"class":135,"line":3127},194,[133,3129,3130],{"class":962},"controller_server_rclcpp_node:\n",[133,3132,3134],{"class":135,"line":3133},195,[133,3135,1674],{"class":962},[133,3137,3139],{"class":135,"line":3138},196,[133,3140,1679],{"class":962},[133,3142,3144],{"class":135,"line":3143},197,[133,3145,969],{"emptyLinePlaceholder":968},[133,3147,3149],{"class":135,"line":3148},198,[133,3150,3151],{"class":962},"local_costmap:\n",[133,3153,3155],{"class":135,"line":3154},199,[133,3156,3157],{"class":962},"  local_costmap:\n",[133,3159,3161],{"class":135,"line":3160},200,[133,3162,3163],{"class":962},"    ros__parameters:\n",[133,3165,3167,3170],{"class":135,"line":3166},201,[133,3168,3169],{"class":962},"      update_frequency: ",[133,3171,3109],{"class":156},[133,3173,3175,3178],{"class":135,"line":3174},202,[133,3176,3177],{"class":962},"      publish_frequency: ",[133,3179,1776],{"class":156},[133,3181,3183],{"class":135,"line":3182},203,[133,3184,3185],{"class":962},"      global_frame: odom\n",[133,3187,3189],{"class":135,"line":3188},204,[133,3190,3191],{"class":962},"      robot_base_frame: base_link\n",[133,3193,3195],{"class":135,"line":3194},205,[133,3196,3197],{"class":962},"      use_sim_time: false\n",[133,3199,3201],{"class":135,"line":3200},206,[133,3202,3203],{"class":962},"      rolling_window: true\n",[133,3205,3207,3210],{"class":135,"line":3206},207,[133,3208,3209],{"class":962},"      width: ",[133,3211,3212],{"class":156},"3\n",[133,3214,3216,3219],{"class":135,"line":3215},208,[133,3217,3218],{"class":962},"      height: ",[133,3220,3212],{"class":156},[133,3222,3224,3227],{"class":135,"line":3223},209,[133,3225,3226],{"class":962},"      resolution: ",[133,3228,1843],{"class":156},[133,3230,3232,3235],{"class":135,"line":3231},210,[133,3233,3234],{"class":962},"      robot_radius: ",[133,3236,3237],{"class":156},"0.22\n",[133,3239,3241,3244,3247,3249,3252,3254,3257,3259,3262],{"class":135,"line":3240},211,[133,3242,3243],{"class":962},"      plugins: [",[133,3245,3246],{"class":143},"\"static_layer\"",[133,3248,1137],{"class":962},[133,3250,3251],{"class":143},"\"obstacle_layer\"",[133,3253,1137],{"class":962},[133,3255,3256],{"class":143},"\"voxel_layer\"",[133,3258,1137],{"class":962},[133,3260,3261],{"class":143},"\"inflation_layer\"",[133,3263,2586],{"class":962},[133,3265,3267],{"class":135,"line":3266},212,[133,3268,3269],{"class":962},"      inflation_layer:\n",[133,3271,3273,3276],{"class":135,"line":3272},213,[133,3274,3275],{"class":962},"        plugin: ",[133,3277,3278],{"class":143},"\"nav2_costmap_2d::InflationLayer\"\n",[133,3280,3282,3285],{"class":135,"line":3281},214,[133,3283,3284],{"class":962},"        cost_scaling_factor: ",[133,3286,3287],{"class":156},"3.0\n",[133,3289,3291,3294],{"class":135,"line":3290},215,[133,3292,3293],{"class":962},"        inflation_radius: ",[133,3295,3296],{"class":156},"0.55\n",[133,3298,3300],{"class":135,"line":3299},216,[133,3301,3302],{"class":962},"      obstacle_layer:\n",[133,3304,3306,3308],{"class":135,"line":3305},217,[133,3307,3275],{"class":962},[133,3309,3310],{"class":143},"\"nav2_costmap_2d::ObstacleLayer\"\n",[133,3312,3314,3317],{"class":135,"line":3313},218,[133,3315,3316],{"class":962},"        enabled: ",[133,3318,2705],{"class":156},[133,3320,3322],{"class":135,"line":3321},219,[133,3323,3324],{"class":962},"        observation_sources: scan\n",[133,3326,3328],{"class":135,"line":3327},220,[133,3329,3330],{"class":962},"        scan:\n",[133,3332,3334,3337,3339],{"class":135,"line":3333},221,[133,3335,3336],{"class":962},"          topic: ",[133,3338,2050],{"class":958},[133,3340,3341],{"class":962},"scan\n",[133,3343,3345,3348],{"class":135,"line":3344},222,[133,3346,3347],{"class":962},"          max_obstacle_height: ",[133,3349,1776],{"class":156},[133,3351,3353,3356],{"class":135,"line":3352},223,[133,3354,3355],{"class":962},"          clearing: ",[133,3357,2705],{"class":156},[133,3359,3361,3364],{"class":135,"line":3360},224,[133,3362,3363],{"class":962},"          marking: ",[133,3365,2705],{"class":156},[133,3367,3369,3372],{"class":135,"line":3368},225,[133,3370,3371],{"class":962},"          data_type: ",[133,3373,3374],{"class":143},"\"LaserScan\"\n",[133,3376,3378,3381],{"class":135,"line":3377},226,[133,3379,3380],{"class":962},"          raytrace_max_range: ",[133,3382,3287],{"class":156},[133,3384,3386,3389],{"class":135,"line":3385},227,[133,3387,3388],{"class":962},"          raytrace_min_range: ",[133,3390,1859],{"class":156},[133,3392,3394,3397],{"class":135,"line":3393},228,[133,3395,3396],{"class":962},"          obstacle_max_range: ",[133,3398,2858],{"class":156},[133,3400,3402,3405],{"class":135,"line":3401},229,[133,3403,3404],{"class":962},"          obstacle_min_range: ",[133,3406,1859],{"class":156},[133,3408,3410],{"class":135,"line":3409},230,[133,3411,3412],{"class":962},"      voxel_layer:\n",[133,3414,3416,3418],{"class":135,"line":3415},231,[133,3417,3275],{"class":962},[133,3419,3420],{"class":143},"\"nav2_costmap_2d::VoxelLayer\"\n",[133,3422,3424,3426],{"class":135,"line":3423},232,[133,3425,3316],{"class":962},[133,3427,2705],{"class":156},[133,3429,3431,3434],{"class":135,"line":3430},233,[133,3432,3433],{"class":962},"        publish_voxel_map: ",[133,3435,2705],{"class":156},[133,3437,3439,3442],{"class":135,"line":3438},234,[133,3440,3441],{"class":962},"        origin_z: ",[133,3443,1859],{"class":156},[133,3445,3447,3450],{"class":135,"line":3446},235,[133,3448,3449],{"class":962},"        z_resolution: ",[133,3451,1843],{"class":156},[133,3453,3455,3458],{"class":135,"line":3454},236,[133,3456,3457],{"class":962},"        z_voxels: ",[133,3459,3460],{"class":156},"16\n",[133,3462,3464,3467],{"class":135,"line":3463},237,[133,3465,3466],{"class":962},"        max_obstacle_height: ",[133,3468,1776],{"class":156},[133,3470,3472,3475],{"class":135,"line":3471},238,[133,3473,3474],{"class":962},"        mark_threshold: ",[133,3476,3477],{"class":156},"0\n",[133,3479,3481],{"class":135,"line":3480},239,[133,3482,3324],{"class":962},[133,3484,3486],{"class":135,"line":3485},240,[133,3487,3330],{"class":962},[133,3489,3491,3493,3495],{"class":135,"line":3490},241,[133,3492,3336],{"class":962},[133,3494,2050],{"class":958},[133,3496,3341],{"class":962},[133,3498,3500,3502],{"class":135,"line":3499},242,[133,3501,3347],{"class":962},[133,3503,1776],{"class":156},[133,3505,3507,3509],{"class":135,"line":3506},243,[133,3508,3355],{"class":962},[133,3510,2705],{"class":156},[133,3512,3514,3516],{"class":135,"line":3513},244,[133,3515,3363],{"class":962},[133,3517,2705],{"class":156},[133,3519,3521,3523],{"class":135,"line":3520},245,[133,3522,3371],{"class":962},[133,3524,3374],{"class":143},[133,3526,3528,3530],{"class":135,"line":3527},246,[133,3529,3380],{"class":962},[133,3531,3287],{"class":156},[133,3533,3535,3537],{"class":135,"line":3534},247,[133,3536,3388],{"class":962},[133,3538,1859],{"class":156},[133,3540,3542,3544],{"class":135,"line":3541},248,[133,3543,3396],{"class":962},[133,3545,2858],{"class":156},[133,3547,3549,3551],{"class":135,"line":3548},249,[133,3550,3404],{"class":962},[133,3552,1859],{"class":156},[133,3554,3556],{"class":135,"line":3555},250,[133,3557,3558],{"class":962},"      static_layer:\n",[133,3560,3562,3564],{"class":135,"line":3561},251,[133,3563,3275],{"class":962},[133,3565,3566],{"class":143},"\"nav2_costmap_2d::StaticLayer\"\n",[133,3568,3570,3573],{"class":135,"line":3569},252,[133,3571,3572],{"class":962},"        map_subscribe_transient_local: ",[133,3574,2705],{"class":156},[133,3576,3578,3581],{"class":135,"line":3577},253,[133,3579,3580],{"class":962},"      always_send_full_costmap: ",[133,3582,2705],{"class":156},[133,3584,3586],{"class":135,"line":3585},254,[133,3587,969],{"emptyLinePlaceholder":968},[133,3589,3591],{"class":135,"line":3590},255,[133,3592,3593],{"class":962},"  local_costmap_client:\n",[133,3595,3597],{"class":135,"line":3596},256,[133,3598,3163],{"class":962},[133,3600,3602],{"class":135,"line":3601},257,[133,3603,3197],{"class":962},[133,3605,3607],{"class":135,"line":3606},258,[133,3608,3609],{"class":962},"  local_costmap_rclcpp_node:\n",[133,3611,3613],{"class":135,"line":3612},259,[133,3614,3163],{"class":962},[133,3616,3618],{"class":135,"line":3617},260,[133,3619,3197],{"class":962},[133,3621,3623],{"class":135,"line":3622},261,[133,3624,969],{"emptyLinePlaceholder":968},[133,3626,3628],{"class":135,"line":3627},262,[133,3629,3630],{"class":962},"global_costmap:\n",[133,3632,3634],{"class":135,"line":3633},263,[133,3635,3636],{"class":962},"  global_costmap:\n",[133,3638,3640],{"class":135,"line":3639},264,[133,3641,3163],{"class":962},[133,3643,3645,3647],{"class":135,"line":3644},265,[133,3646,3169],{"class":962},[133,3648,1795],{"class":156},[133,3650,3652,3654],{"class":135,"line":3651},266,[133,3653,3177],{"class":962},[133,3655,1795],{"class":156},[133,3657,3659,3662],{"class":135,"line":3658},267,[133,3660,3661],{"class":962},"      global_frame: ",[133,3663,2035],{"class":156},[133,3665,3667],{"class":135,"line":3666},268,[133,3668,3191],{"class":962},[133,3670,3672],{"class":135,"line":3671},269,[133,3673,3197],{"class":962},[133,3675,3677,3679],{"class":135,"line":3676},270,[133,3678,3234],{"class":962},[133,3680,3237],{"class":156},[133,3682,3684,3686],{"class":135,"line":3683},271,[133,3685,3226],{"class":962},[133,3687,1843],{"class":156},[133,3689,3691],{"class":135,"line":3690},272,[133,3692,3693],{"class":962},"      track_unknown_space: true\n",[133,3695,3697,3699,3701,3703,3705,3707,3709],{"class":135,"line":3696},273,[133,3698,3243],{"class":962},[133,3700,3246],{"class":143},[133,3702,1137],{"class":962},[133,3704,3251],{"class":143},[133,3706,1137],{"class":962},[133,3708,3261],{"class":143},[133,3710,2586],{"class":962},[133,3712,3714],{"class":135,"line":3713},274,[133,3715,3302],{"class":962},[133,3717,3719,3721],{"class":135,"line":3718},275,[133,3720,3275],{"class":962},[133,3722,3310],{"class":143},[133,3724,3726,3728],{"class":135,"line":3725},276,[133,3727,3316],{"class":962},[133,3729,2705],{"class":156},[133,3731,3733],{"class":135,"line":3732},277,[133,3734,3324],{"class":962},[133,3736,3738],{"class":135,"line":3737},278,[133,3739,3330],{"class":962},[133,3741,3743,3745,3747],{"class":135,"line":3742},279,[133,3744,3336],{"class":962},[133,3746,2050],{"class":958},[133,3748,3341],{"class":962},[133,3750,3752,3754],{"class":135,"line":3751},280,[133,3753,3347],{"class":962},[133,3755,1776],{"class":156},[133,3757,3759,3761],{"class":135,"line":3758},281,[133,3760,3355],{"class":962},[133,3762,2705],{"class":156},[133,3764,3766,3768],{"class":135,"line":3765},282,[133,3767,3363],{"class":962},[133,3769,2705],{"class":156},[133,3771,3773,3775],{"class":135,"line":3772},283,[133,3774,3371],{"class":962},[133,3776,3374],{"class":143},[133,3778,3780,3782],{"class":135,"line":3779},284,[133,3781,3380],{"class":962},[133,3783,3287],{"class":156},[133,3785,3787,3789],{"class":135,"line":3786},285,[133,3788,3388],{"class":962},[133,3790,1859],{"class":156},[133,3792,3794,3796],{"class":135,"line":3793},286,[133,3795,3396],{"class":962},[133,3797,2858],{"class":156},[133,3799,3801,3803],{"class":135,"line":3800},287,[133,3802,3404],{"class":962},[133,3804,1859],{"class":156},[133,3806,3808],{"class":135,"line":3807},288,[133,3809,3558],{"class":962},[133,3811,3813,3815],{"class":135,"line":3812},289,[133,3814,3275],{"class":962},[133,3816,3566],{"class":143},[133,3818,3820,3822],{"class":135,"line":3819},290,[133,3821,3572],{"class":962},[133,3823,2705],{"class":156},[133,3825,3827],{"class":135,"line":3826},291,[133,3828,3269],{"class":962},[133,3830,3832,3834],{"class":135,"line":3831},292,[133,3833,3275],{"class":962},[133,3835,3278],{"class":143},[133,3837,3839,3841],{"class":135,"line":3838},293,[133,3840,3284],{"class":962},[133,3842,3287],{"class":156},[133,3844,3846,3848],{"class":135,"line":3845},294,[133,3847,3293],{"class":962},[133,3849,3296],{"class":156},[133,3851,3853,3855],{"class":135,"line":3852},295,[133,3854,3580],{"class":962},[133,3856,2705],{"class":156},[133,3858,3860],{"class":135,"line":3859},296,[133,3861,969],{"emptyLinePlaceholder":968},[133,3863,3865],{"class":135,"line":3864},297,[133,3866,3867],{"class":962},"  global_costmap_client:\n",[133,3869,3871],{"class":135,"line":3870},298,[133,3872,3163],{"class":962},[133,3874,3876],{"class":135,"line":3875},299,[133,3877,3197],{"class":962},[133,3879,3881],{"class":135,"line":3880},300,[133,3882,3883],{"class":962},"  global_costmap_rclcpp_node:\n",[133,3885,3887],{"class":135,"line":3886},301,[133,3888,3163],{"class":962},[133,3890,3892],{"class":135,"line":3891},302,[133,3893,3197],{"class":962},[133,3895,3897],{"class":135,"line":3896},303,[133,3898,969],{"emptyLinePlaceholder":968},[133,3900,3902],{"class":135,"line":3901},304,[133,3903,3904],{"class":962},"map_server:\n",[133,3906,3908],{"class":135,"line":3907},305,[133,3909,1674],{"class":962},[133,3911,3913],{"class":135,"line":3912},306,[133,3914,1679],{"class":962},[133,3916,3918,3921],{"class":135,"line":3917},307,[133,3919,3920],{"class":962},"    yaml_filename: ",[133,3922,3923],{"class":143},"\"house.yaml\"\n",[133,3925,3927],{"class":135,"line":3926},308,[133,3928,969],{"emptyLinePlaceholder":968},[133,3930,3932],{"class":135,"line":3931},309,[133,3933,3934],{"class":962},"map_saver:\n",[133,3936,3938],{"class":135,"line":3937},310,[133,3939,1674],{"class":962},[133,3941,3943],{"class":135,"line":3942},311,[133,3944,1679],{"class":962},[133,3946,3948,3951],{"class":135,"line":3947},312,[133,3949,3950],{"class":962},"    save_map_timeout: ",[133,3952,3109],{"class":156},[133,3954,3956,3959],{"class":135,"line":3955},313,[133,3957,3958],{"class":962},"    free_thresh_default: ",[133,3960,1925],{"class":156},[133,3962,3964,3967],{"class":135,"line":3963},314,[133,3965,3966],{"class":962},"    occupied_thresh_default: ",[133,3968,3969],{"class":156},"0.65\n",[133,3971,3973,3976],{"class":135,"line":3972},315,[133,3974,3975],{"class":962},"    map_subscribe_transient_local: ",[133,3977,2705],{"class":156},[133,3979,3981],{"class":135,"line":3980},316,[133,3982,969],{"emptyLinePlaceholder":968},[133,3984,3986],{"class":135,"line":3985},317,[133,3987,3988],{"class":962},"planner_server:\n",[133,3990,3992],{"class":135,"line":3991},318,[133,3993,1674],{"class":962},[133,3995,3997,4000],{"class":135,"line":3996},319,[133,3998,3999],{"class":962},"    expected_planner_frequency: ",[133,4001,2517],{"class":156},[133,4003,4005],{"class":135,"line":4004},320,[133,4006,1679],{"class":962},[133,4008,4010,4013,4016],{"class":135,"line":4009},321,[133,4011,4012],{"class":962},"    planner_plugins: [",[133,4014,4015],{"class":143},"\"GridBased\"",[133,4017,2586],{"class":962},[133,4019,4021],{"class":135,"line":4020},322,[133,4022,4023],{"class":962},"    GridBased:\n",[133,4025,4027,4029],{"class":135,"line":4026},323,[133,4028,2609],{"class":962},[133,4030,4031],{"class":143},"\"nav2_navfn_planner\u002FNavfnPlanner\"\n",[133,4033,4035,4038],{"class":135,"line":4034},324,[133,4036,4037],{"class":962},"      tolerance: ",[133,4039,1731],{"class":156},[133,4041,4043],{"class":135,"line":4042},325,[133,4044,4045],{"class":962},"      use_astar: false\n",[133,4047,4049],{"class":135,"line":4048},326,[133,4050,4051],{"class":962},"      allow_unknown: true\n",[133,4053,4055],{"class":135,"line":4054},327,[133,4056,969],{"emptyLinePlaceholder":968},[133,4058,4060],{"class":135,"line":4059},328,[133,4061,4062],{"class":962},"planner_server_rclcpp_node:\n",[133,4064,4066],{"class":135,"line":4065},329,[133,4067,1674],{"class":962},[133,4069,4071],{"class":135,"line":4070},330,[133,4072,1679],{"class":962},[133,4074,4076],{"class":135,"line":4075},331,[133,4077,969],{"emptyLinePlaceholder":968},[133,4079,4081],{"class":135,"line":4080},332,[133,4082,4083],{"class":962},"smoother_server:\n",[133,4085,4087],{"class":135,"line":4086},333,[133,4088,1674],{"class":962},[133,4090,4092],{"class":135,"line":4091},334,[133,4093,1679],{"class":962},[133,4095,4097,4100,4103],{"class":135,"line":4096},335,[133,4098,4099],{"class":962},"    smoother_plugins: [",[133,4101,4102],{"class":143},"\"simple_smoother\"",[133,4104,2586],{"class":962},[133,4106,4108],{"class":135,"line":4107},336,[133,4109,4110],{"class":962},"    simple_smoother:\n",[133,4112,4114,4116],{"class":135,"line":4113},337,[133,4115,2609],{"class":962},[133,4117,4118],{"class":143},"\"nav2_smoother::SimpleSmoother\"\n",[133,4120,4122,4124],{"class":135,"line":4121},338,[133,4123,4037],{"class":962},[133,4125,4126],{"class":156},"1.0e-10\n",[133,4128,4130,4133],{"class":135,"line":4129},339,[133,4131,4132],{"class":962},"      max_its: ",[133,4134,4135],{"class":156},"1000\n",[133,4137,4139,4142],{"class":135,"line":4138},340,[133,4140,4141],{"class":962},"      do_refinement: ",[133,4143,2705],{"class":156},[133,4145,4147],{"class":135,"line":4146},341,[133,4148,969],{"emptyLinePlaceholder":968},[133,4150,4152],{"class":135,"line":4151},342,[133,4153,4154],{"class":962},"behavior_server:\n",[133,4156,4158],{"class":135,"line":4157},343,[133,4159,1674],{"class":962},[133,4161,4163,4166,4168],{"class":135,"line":4162},344,[133,4164,4165],{"class":962},"    costmap_topic: local_costmap",[133,4167,2050],{"class":958},[133,4169,4170],{"class":962},"costmap_raw\n",[133,4172,4174,4177,4179],{"class":135,"line":4173},345,[133,4175,4176],{"class":962},"    footprint_topic: local_costmap",[133,4178,2050],{"class":958},[133,4180,4181],{"class":962},"published_footprint\n",[133,4183,4185,4188],{"class":135,"line":4184},346,[133,4186,4187],{"class":962},"    cycle_frequency: ",[133,4189,2629],{"class":156},[133,4191,4193,4196,4199,4201,4204,4206,4209,4211,4214],{"class":135,"line":4192},347,[133,4194,4195],{"class":962},"    behavior_plugins: [",[133,4197,4198],{"class":143},"\"spin\"",[133,4200,1137],{"class":962},[133,4202,4203],{"class":143},"\"backup\"",[133,4205,1137],{"class":962},[133,4207,4208],{"class":143},"\"drive_on_heading\"",[133,4210,1137],{"class":962},[133,4212,4213],{"class":143},"\"wait\"",[133,4215,2586],{"class":962},[133,4217,4219],{"class":135,"line":4218},348,[133,4220,4221],{"class":962},"    spin:\n",[133,4223,4225,4227],{"class":135,"line":4224},349,[133,4226,2609],{"class":962},[133,4228,4229],{"class":143},"\"nav2_behaviors\u002FSpin\"\n",[133,4231,4233],{"class":135,"line":4232},350,[133,4234,4235],{"class":962},"    backup:\n",[133,4237,4239,4241],{"class":135,"line":4238},351,[133,4240,2609],{"class":962},[133,4242,4243],{"class":143},"\"nav2_behaviors\u002FBackUp\"\n",[133,4245,4247],{"class":135,"line":4246},352,[133,4248,4249],{"class":962},"    drive_on_heading:\n",[133,4251,4253,4255],{"class":135,"line":4252},353,[133,4254,2609],{"class":962},[133,4256,4257],{"class":143},"\"nav2_behaviors\u002FDriveOnHeading\"\n",[133,4259,4261],{"class":135,"line":4260},354,[133,4262,4263],{"class":962},"    wait:\n",[133,4265,4267,4269],{"class":135,"line":4266},355,[133,4268,2609],{"class":962},[133,4270,4271],{"class":143},"\"nav2_behaviors\u002FWait\"\n",[133,4273,4275],{"class":135,"line":4274},356,[133,4276,4277],{"class":962},"    global_frame: odom\n",[133,4279,4281],{"class":135,"line":4280},357,[133,4282,2041],{"class":962},[133,4284,4286,4288],{"class":135,"line":4285},358,[133,4287,1906],{"class":962},[133,4289,1768],{"class":156},[133,4291,4293],{"class":135,"line":4292},359,[133,4294,1679],{"class":962},[133,4296,4298,4301],{"class":135,"line":4297},360,[133,4299,4300],{"class":962},"    simulate_ahead_time: ",[133,4302,1776],{"class":156},[133,4304,4306,4309],{"class":135,"line":4305},361,[133,4307,4308],{"class":962},"    max_rotational_vel: ",[133,4310,1795],{"class":156},[133,4312,4314,4317],{"class":135,"line":4313},362,[133,4315,4316],{"class":962},"    min_rotational_vel: ",[133,4318,4319],{"class":156},"0.4\n",[133,4321,4323,4326],{"class":135,"line":4322},363,[133,4324,4325],{"class":962},"    rotational_acc_lim: ",[133,4327,2875],{"class":156},[133,4329,4331],{"class":135,"line":4330},364,[133,4332,969],{"emptyLinePlaceholder":968},[133,4334,4336],{"class":135,"line":4335},365,[133,4337,4338],{"class":962},"robot_state_publisher:\n",[133,4340,4342],{"class":135,"line":4341},366,[133,4343,1674],{"class":962},[133,4345,4347],{"class":135,"line":4346},367,[133,4348,1679],{"class":962},[133,4350,4352],{"class":135,"line":4351},368,[133,4353,969],{"emptyLinePlaceholder":968},[133,4355,4357],{"class":135,"line":4356},369,[133,4358,4359],{"class":962},"waypoint_follower:\n",[133,4361,4363],{"class":135,"line":4362},370,[133,4364,1674],{"class":962},[133,4366,4368,4371],{"class":135,"line":4367},371,[133,4369,4370],{"class":962},"    loop_rate: ",[133,4372,2071],{"class":156},[133,4374,4376],{"class":135,"line":4375},372,[133,4377,4378],{"class":962},"    stop_on_failure: false\n",[133,4380,4382,4385],{"class":135,"line":4381},373,[133,4383,4384],{"class":962},"    waypoint_task_executor_plugin: ",[133,4386,4387],{"class":143},"\"wait_at_waypoint\"\n",[133,4389,4391],{"class":135,"line":4390},374,[133,4392,4393],{"class":962},"    wait_at_waypoint:\n",[133,4395,4397,4399],{"class":135,"line":4396},375,[133,4398,2609],{"class":962},[133,4400,4401],{"class":143},"\"nav2_waypoint_follower::WaitAtWaypoint\"\n",[133,4403,4405,4408],{"class":135,"line":4404},376,[133,4406,4407],{"class":962},"      enabled: ",[133,4409,2705],{"class":156},[133,4411,4413,4416],{"class":135,"line":4412},377,[133,4414,4415],{"class":962},"      waypoint_pause_duration: ",[133,4417,4418],{"class":156},"200\n",[133,4420,4422],{"class":135,"line":4421},378,[133,4423,969],{"emptyLinePlaceholder":968},[133,4425,4427],{"class":135,"line":4426},379,[133,4428,4429],{"class":962},"velocity_smoother:\n",[133,4431,4433],{"class":135,"line":4432},380,[133,4434,1674],{"class":962},[133,4436,4438],{"class":135,"line":4437},381,[133,4439,1679],{"class":962},[133,4441,4443,4446],{"class":135,"line":4442},382,[133,4444,4445],{"class":962},"    smoothing_frequency: ",[133,4447,2517],{"class":156},[133,4449,4451,4454],{"class":135,"line":4450},383,[133,4452,4453],{"class":962},"    scale_velocities: ",[133,4455,4456],{"class":156},"False\n",[133,4458,4460,4463],{"class":135,"line":4459},384,[133,4461,4462],{"class":962},"    feedback: ",[133,4464,4465],{"class":143},"\"OPEN_LOOP\"\n",[133,4467,4469,4472,4475,4477,4480,4482,4485],{"class":135,"line":4468},385,[133,4470,4471],{"class":962},"    max_velocity: [",[133,4473,4474],{"class":156},"0.26",[133,4476,1137],{"class":962},[133,4478,4479],{"class":156},"0.0",[133,4481,1137],{"class":962},[133,4483,4484],{"class":156},"1.0",[133,4486,2586],{"class":962},[133,4488,4490,4493,4495,4497,4499,4501,4503,4505,4507],{"class":135,"line":4489},386,[133,4491,4492],{"class":962},"    min_velocity: [",[133,4494,1792],{"class":958},[133,4496,4474],{"class":156},[133,4498,1137],{"class":962},[133,4500,4479],{"class":156},[133,4502,1137],{"class":962},[133,4504,1792],{"class":958},[133,4506,4484],{"class":156},[133,4508,2586],{"class":962},[133,4510,4512,4515,4518,4520,4522,4524,4527],{"class":135,"line":4511},387,[133,4513,4514],{"class":962},"    max_accel: [",[133,4516,4517],{"class":156},"2.5",[133,4519,1137],{"class":962},[133,4521,4479],{"class":156},[133,4523,1137],{"class":962},[133,4525,4526],{"class":156},"3.2",[133,4528,2586],{"class":962},[133,4530,4532,4535,4537,4539,4541,4543,4545,4547,4549],{"class":135,"line":4531},388,[133,4533,4534],{"class":962},"    max_decel: [",[133,4536,1792],{"class":958},[133,4538,4517],{"class":156},[133,4540,1137],{"class":962},[133,4542,4479],{"class":156},[133,4544,1137],{"class":962},[133,4546,1792],{"class":958},[133,4548,4526],{"class":156},[133,4550,2586],{"class":962},[133,4552,4554,4556],{"class":135,"line":4553},389,[133,4555,2047],{"class":962},[133,4557,1835],{"class":143},[133,4559,4561,4564],{"class":135,"line":4560},390,[133,4562,4563],{"class":962},"    odom_duration: ",[133,4565,1768],{"class":156},[133,4567,4569,4572,4574,4576,4578,4580,4582],{"class":135,"line":4568},391,[133,4570,4571],{"class":962},"    deadband_velocity: [",[133,4573,4479],{"class":156},[133,4575,1137],{"class":962},[133,4577,4479],{"class":156},[133,4579,1137],{"class":962},[133,4581,4479],{"class":156},[133,4583,2586],{"class":962},[133,4585,4587,4590],{"class":135,"line":4586},392,[133,4588,4589],{"class":962},"    velocity_timeout: ",[133,4591,1795],{"class":156},[12,4593,4594],{"id":4594},"多车编队",[4596,4597,4598],"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);}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":86,"searchDepth":265,"depth":265,"links":4600},[4601,4602,4603,4604,4605,4606,4607],{"id":14,"depth":972,"text":14},{"id":54,"depth":972,"text":54},{"id":63,"depth":972,"text":64},{"id":245,"depth":972,"text":245},{"id":321,"depth":972,"text":322},{"id":398,"depth":972,"text":398},{"id":4594,"depth":972,"text":4594},0,"1700","2023-12-30","2023-12-30-ros2-tutorial","\u002Fwiki\u002F2023-12-30-ros2-tutorial","Ros2 Tutorial","md",false,{},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1700-ji-qi-ren-dao-hang-navigation2-shi-ti-pian",{"title":5,"description":86},"wiki\u002F2023-12-30-ros2-tutorial\u002F1700-机器人导航Navigation2(实体篇)","PK7TyuE745BRr3Cs5tqqAxGmkgSOuIIWt4Q_BY43h9w",[4622,4628,4634,4640,4646,4652,4658,4664,4670,4676,4682,4688,4694,4700,4706,4712,4718,4724,4730,4736,4742,4748,4754,4760,4766,4772,4778,4784,4790,4796,4802,4808,4814,4820,4826,4831,4837,4842,4848,4854,4860,4866,4872,4878,4884,4890,4896,4902,4908,4914,4920,4926,4932,4938,4944,4950,4956,4962,4968,4974,4980,4986,4992,4998,5004,5006,5012,5018,5024],{"path":4623,"stem":4624,"title":4625,"authors":4626,"date":4610,"chapterOrder":4627,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0100-ros2-jie-shao","wiki\u002F2023-12-30-ros2-tutorial\u002F0100-ROS2介绍","ROS2介绍",[7],"0100",{"path":4629,"stem":4630,"title":4631,"authors":4632,"date":4610,"chapterOrder":4633,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0200-ru-men-cao-zuo","wiki\u002F2023-12-30-ros2-tutorial\u002F0200-入门操作","入门操作",[7],"0200",{"path":4635,"stem":4636,"title":4637,"authors":4638,"date":4610,"chapterOrder":4639,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4641,"stem":4642,"title":4643,"authors":4644,"date":4610,"chapterOrder":4645,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0400-si-da-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F0400-四大通信","四大通信",[7],"0400",{"path":4647,"stem":4648,"title":4649,"authors":4650,"date":4610,"chapterOrder":4651,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4653,"stem":4654,"title":4655,"authors":4656,"date":4610,"chapterOrder":4657,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0600-launch","wiki\u002F2023-12-30-ros2-tutorial\u002F0600-Launch","Launch",[7],"0600",{"path":4659,"stem":4660,"title":4661,"authors":4662,"date":4610,"chapterOrder":4663,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0700-hui-su-rosbag2","wiki\u002F2023-12-30-ros2-tutorial\u002F0700-回溯rosbag2","回溯rosbag2",[7],"0700",{"path":4665,"stem":4666,"title":4667,"authors":4668,"date":4610,"chapterOrder":4669,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0800-zuo-biao-bian-huan-tf","wiki\u002F2023-12-30-ros2-tutorial\u002F0800-坐标变换TF","坐标变换TF",[7],"0800",{"path":4671,"stem":4672,"title":4673,"authors":4674,"date":4610,"chapterOrder":4675,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4677,"stem":4678,"title":4679,"authors":4680,"date":4610,"chapterOrder":4681,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4683,"stem":4684,"title":4685,"authors":4686,"date":4610,"chapterOrder":4687,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-gazeboclassic","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-GazeboClassic","Gezebo Classic",[7],"1100-0100",{"path":4689,"stem":4690,"title":4691,"authors":4692,"date":4610,"chapterOrder":4693,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4695,"stem":4696,"title":4697,"authors":4698,"date":4610,"chapterOrder":4699,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4701,"stem":4702,"title":4703,"authors":4704,"date":4610,"chapterOrder":4705,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4707,"stem":4708,"title":4709,"authors":4710,"date":4610,"chapterOrder":4711,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-gezebo-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-Gezebo仿真平台","Gezebo仿真平台",[7],"1100",{"path":4713,"stem":4714,"title":4715,"authors":4716,"date":4610,"chapterOrder":4717,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4719,"stem":4720,"title":4721,"authors":4722,"date":4610,"chapterOrder":4723,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4725,"stem":4726,"title":4727,"authors":4728,"date":4610,"chapterOrder":4729,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-Humble2Jazzy","Humble与Jazzy导航的差异",[7],"1200-0300",{"path":4731,"stem":4732,"title":4733,"authors":4734,"date":4610,"chapterOrder":4735,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4737,"stem":4738,"title":4739,"authors":4740,"date":4610,"chapterOrder":4741,"chapterDepth":972,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4743,"stem":4744,"title":4745,"authors":4746,"date":4610,"chapterOrder":4747,"chapterDepth":972,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4749,"stem":4750,"title":4751,"authors":4752,"date":4610,"chapterOrder":4753,"chapterDepth":972,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4755,"stem":4756,"title":4757,"authors":4758,"date":4610,"chapterOrder":4759,"chapterDepth":972,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4761,"stem":4762,"title":4763,"authors":4764,"date":4610,"chapterOrder":4765,"chapterDepth":972,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4767,"stem":4768,"title":4769,"authors":4770,"date":4610,"chapterOrder":4771,"chapterDepth":972,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4773,"stem":4774,"title":4775,"authors":4776,"date":4610,"chapterOrder":4777,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4779,"stem":4780,"title":4781,"authors":4782,"date":4610,"chapterOrder":4783,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4785,"stem":4786,"title":4787,"authors":4788,"date":4610,"chapterOrder":4789,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4791,"stem":4792,"title":4793,"authors":4794,"date":4610,"chapterOrder":4795,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4797,"stem":4798,"title":4799,"authors":4800,"date":4610,"chapterOrder":4801,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4803,"stem":4804,"title":4805,"authors":4806,"date":4610,"chapterOrder":4807,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4809,"stem":4810,"title":4811,"authors":4812,"date":4610,"chapterOrder":4813,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4815,"stem":4816,"title":4817,"authors":4818,"date":4610,"chapterOrder":4819,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4821,"stem":4822,"title":4823,"authors":4824,"date":4610,"chapterOrder":4825,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4827,"stem":4828,"title":4793,"authors":4829,"date":4610,"chapterOrder":4830,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4832,"stem":4833,"title":4834,"authors":4835,"date":4610,"chapterOrder":4836,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4838,"stem":4839,"title":4793,"authors":4840,"date":4610,"chapterOrder":4841,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4843,"stem":4844,"title":4845,"authors":4846,"date":4610,"chapterOrder":4847,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4849,"stem":4850,"title":4851,"authors":4852,"date":4610,"chapterOrder":4853,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-linux-ying-jian-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-Linux硬件通信","Linux硬件通信",[7],"1300",{"path":4855,"stem":4856,"title":4857,"authors":4858,"date":4610,"chapterOrder":4859,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4861,"stem":4862,"title":4863,"authors":4864,"date":4610,"chapterOrder":4865,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4867,"stem":4868,"title":4869,"authors":4870,"date":4610,"chapterOrder":4871,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4873,"stem":4874,"title":4875,"authors":4876,"date":4610,"chapterOrder":4877,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4879,"stem":4880,"title":4881,"authors":4882,"date":4610,"chapterOrder":4883,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4885,"stem":4886,"title":4887,"authors":4888,"date":4610,"chapterOrder":4889,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4891,"stem":4892,"title":4893,"authors":4894,"date":4610,"chapterOrder":4895,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-you-hua-ri-zhi","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-优化日志","优化日志",[7],"1400-0500",{"path":4897,"stem":4898,"title":4899,"authors":4900,"date":4610,"chapterOrder":4901,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4903,"stem":4904,"title":4905,"authors":4906,"date":4610,"chapterOrder":4907,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4909,"stem":4910,"title":4911,"authors":4912,"date":4610,"chapterOrder":4913,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4915,"stem":4916,"title":4917,"authors":4918,"date":4610,"chapterOrder":4919,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4921,"stem":4922,"title":4923,"authors":4924,"date":4610,"chapterOrder":4925,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4927,"stem":4928,"title":4929,"authors":4930,"date":4610,"chapterOrder":4931,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4933,"stem":4934,"title":4935,"authors":4936,"date":4610,"chapterOrder":4937,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4939,"stem":4940,"title":4941,"authors":4942,"date":4610,"chapterOrder":4943,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-ying-jian-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-硬件平台","硬件平台",[7],"1400-0600",{"path":4945,"stem":4946,"title":4947,"authors":4948,"date":4610,"chapterOrder":4949,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4951,"stem":4952,"title":4953,"authors":4954,"date":4610,"chapterOrder":4955,"chapterDepth":972,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4957,"stem":4958,"title":4959,"authors":4960,"date":4610,"chapterOrder":4961,"chapterDepth":972,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4963,"stem":4964,"title":4965,"authors":4966,"date":4610,"chapterOrder":4967,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4969,"stem":4970,"title":4971,"authors":4972,"date":4610,"chapterOrder":4973,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4975,"stem":4976,"title":4977,"authors":4978,"date":4610,"chapterOrder":4979,"chapterDepth":265,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4981,"stem":4982,"title":4983,"authors":4984,"date":4610,"chapterOrder":4985,"chapterDepth":136,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4987,"stem":4988,"title":4989,"authors":4990,"date":4610,"chapterOrder":4991,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-ji-qi-ren-ying-jian","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-机器人硬件","机器人硬件",[7],"1400",{"path":4993,"stem":4994,"title":4995,"authors":4996,"date":4610,"chapterOrder":4997,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1500-ros2-control","wiki\u002F2023-12-30-ros2-tutorial\u002F1500-ROS2_Control","ROS2_Control",[7],"1500",{"path":4999,"stem":5000,"title":5001,"authors":5002,"date":4610,"chapterOrder":5003,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\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":4617,"stem":4619,"title":5,"authors":5005,"date":4610,"chapterOrder":4609,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},[7],{"path":5007,"stem":5008,"title":5009,"authors":5010,"date":4610,"chapterOrder":5011,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1800-microros","wiki\u002F2023-12-30-ros2-tutorial\u002F1800-MicroROS","MicroROS",[7],"1800",{"path":5013,"stem":5014,"title":5015,"authors":5016,"date":4610,"chapterOrder":5017,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1900-Webots仿真平台","Webots仿真平台",[7],"1900",{"path":5019,"stem":5020,"title":5021,"authors":5022,"date":4610,"chapterOrder":5023,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":4615},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F2000-opencv","wiki\u002F2023-12-30-ros2-tutorial\u002F2000-OpenCV","OpenCV",[7],"2000",{"path":4612,"stem":5025,"title":5026,"authors":5027,"date":4610,"chapterOrder":5028,"chapterDepth":4608,"docKey":4611,"docRoot":4612,"docTitle":4613,"isWikiDoc":968,"isWikiIndex":968},"wiki\u002F2023-12-30-ros2-tutorial\u002Findex","ROS2机器人操作系统教程",[7],null,[5030,5032,5035,5038],{"name":7,"image":5031},"\u002Fimages\u002Fmember_photo\u002F董佳辉.jpg",{"name":5033,"image":5034},"宫金良","\u002Fimages\u002Fmember_photo\u002F宫金良.jpg",{"name":5036,"image":5037},"巩丽","\u002Fimages\u002Fmember_photo\u002F巩丽.png",{"name":5039,"image":5040},"张彦斐","\u002Fimages\u002Fmember_photo\u002F张彦斐.jpg",1792431904577]