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