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