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