[{"data":1,"prerenderedAt":20636},["ShallowReactive",2],{"wiki-page-/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim":3,"wiki-doc-items-/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim":20268,"language-switcher-data-/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim":20620,"wiki-i18n-paths-/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim":20635},{"id":4,"title":5,"body":6,"canonicalPath":20249,"chapter":20250,"chapterSort":20251,"date":20252,"description":78,"docI18nKey":20253,"docKey":20254,"docRoot":20255,"docTitle":20256,"extension":20257,"i18nKey":20258,"isBlogPost":20259,"isWikiDoc":89,"isWikiIndex":20259,"layout":20260,"legacyPath":20260,"locale":20261,"localeSlug":20262,"meta":20263,"navigation":89,"path":20249,"seo":20264,"sourcePath":20265,"sourceStem":20258,"stem":20266,"wikiDepth":86,"__hash__":20267},"content/_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-GazeboSim.md","Gz Sim（Gazebo Harmonic）",{"type":7,"value":8,"toc":20246},"minimark",[9,14,30,35,42,45,51,57,64,69,72,168,174,179,182,185,222,225,244,251,256,261,264,269,272,275,280,287,293,298,303,308,313,318,323,328,336,341,427,432,437,442,447,452,457,460,465,479,484,487,490,495,500,504,507,518,521,526,533,578,581,600,606,611,616,623,644,658,663,669,693,696,701,704,707,712,722,747,758,761,768,788,791,794,803,806,812,815,827,830,842,845,857,860,884,889,896,899,1350,1353,1489,1492,1517,1521,1528,1533,1536,1554,1559,1564,1567,1588,1603,1608,1613,1616,1621,1626,1636,1639,1644,1647,1668,1673,1678,1685,2303,2306,2311,2316,2319,2337,2342,2347,2350,2375,2378,2394,2397,2419,2424,2431,2434,2439,2486,2489,2494,2514,2519,2522,2674,2677,2863,2866,3027,3032,3039,3042,3045,3058,3063,3068,6279,6284,6365,6371,9253,9258,9263,9451,9456,9458,9472,9477,9479,9501,9504,9507,9512,9518,9521,9526,9529,9535,9538,9545,9550,9557,9601,9607,9612,9636,9641,9644,9650,13320,13324,13326,13340,13344,13346,13366,13368,13373,13377,13380,13387,13392,13398,13435,13441,13446,13456,13527,13533,13564,13580,13609,13614,13621,15462,15469,15549,15554,15560,15817,15820,15825,15828,16242,16246,16248,16266,16270,16273,16299,16301,16306,16310,16313,16320,16326,16331,16337,16348,16435,16438,16441,16559,16564,16571,16903,16908,17240,17247,17617,17622,17629,18182,18186,18188,18204,18208,18210,18231,18234,18248,18251,18254,18270,18273,18281,18286,18290,18296,18310,18384,18387,18392,18397,18400,19290,19293,19456,19463,19466,19514,19525,19530,19534,20131,20135,20137,20153,20157,20159,20179,20190,20203,20210,20212,20215,20229,20234,20239,20242],[10,11,13],"h3",{"id":12},"gz-sim-gazebo-harmonic-and-later-versions-ros2-jazzy-and-later-versions","Gz Sim (Gazebo Harmonic and later versions (ROS2 Jazzy and later versions))",[15,16,17,18,22,23,29],"p",{},"The new version of Gazebo is a brand-new robot simulation tool used in ROS2. ",[19,20,21],"strong",{},"It is an upgraded version of Gazebo."," In Humble, it is called Ignition Gazebo (also known as Gazebo Fortress), and in Jazzy, it is called Gazebo Harmonic (with the Ignition name removed) (",[24,25,26],"a",{"href":26,"rel":27},"https://community.gazebosim.org/t/a-new-era-for-gazebo/1356",[28],"nofollow","). It offers better performance and usability, and provides a powerful simulation environment through tight integration with ROS2.",[31,32,34],"h4",{"id":33},"gazebo-installation-and-running","Gazebo Installation and Running",[15,36,37,38],{},"Official Tutorial\n",[24,39,40],{"href":40,"rel":41},"https://docs.ros.org/en/jazzy/Tutorials/Advanced/Simulators/Gazebo/Gazebo.html",[28],[15,43,44],{},"The following website is the official tutorial (Gazebo Harmonic for ROS2 Jazzy):",[15,46,47],{},[24,48,49],{"href":49,"rel":50},"https://gazebosim.org/docs/harmonic/getstarted/",[28],[15,52,53],{},[24,54,55],{"href":55,"rel":56},"https://gazebosim.org/docs/harmonic/library_reference_nav/",[28],[15,58,59,60],{},"Source code: ",[24,61,62],{"href":62,"rel":63},"https://github.com/gazebosim/docs/blob/master/harmonic/tutorials",[28],[15,65,66],{},[19,67,68],{},"Installation",[15,70,71],{},"Gazebo is an independent project that does not depend on ROS2 and can be installed on its own. However, if ROS2 is already installed, the corresponding version of Gazebo is integrated into the ROS2 repository, and you can install it directly by running the following command:",[73,74,79],"pre",{"className":75,"code":76,"language":77,"meta":78,"style":78},"language-bash shiki shiki-themes github-light github-dark","\n# 通用命令\nsudo apt install ros-${ROS_DISTRO}-ros-gz\n\n# Humble版本\nsudo apt install ros-humble-ros-gz\n\n# Jazzy版本\nsudo apt install ros-jazzy-ros-gz\n","bash","",[80,81,82,91,98,122,127,133,145,150,156],"code",{"__ignoreMap":78},[83,84,87],"span",{"class":85,"line":86},"line",1,[83,88,90],{"emptyLinePlaceholder":89},true,"\n",[83,92,94],{"class":85,"line":93},2,[83,95,97],{"class":96},"sJ8bj","# 通用命令\n",[83,99,101,105,109,112,115,119],{"class":85,"line":100},3,[83,102,104],{"class":103},"sScJk","sudo",[83,106,108],{"class":107},"sZZnC"," apt",[83,110,111],{"class":107}," install",[83,113,114],{"class":107}," ros-",[83,116,118],{"class":117},"sVt8B","${ROS_DISTRO}",[83,120,121],{"class":107},"-ros-gz\n",[83,123,125],{"class":85,"line":124},4,[83,126,90],{"emptyLinePlaceholder":89},[83,128,130],{"class":85,"line":129},5,[83,131,132],{"class":96},"# Humble版本\n",[83,134,136,138,140,142],{"class":85,"line":135},6,[83,137,104],{"class":103},[83,139,108],{"class":107},[83,141,111],{"class":107},[83,143,144],{"class":107}," ros-humble-ros-gz\n",[83,146,148],{"class":85,"line":147},7,[83,149,90],{"emptyLinePlaceholder":89},[83,151,153],{"class":85,"line":152},8,[83,154,155],{"class":96},"# Jazzy版本\n",[83,157,159,161,163,165],{"class":85,"line":158},9,[83,160,104],{"class":103},[83,162,108],{"class":107},[83,164,111],{"class":107},[83,166,167],{"class":107}," ros-jazzy-ros-gz\n",[15,169,170],{},[171,172],"img",{"alt":78,"src":173},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1705.webp",[15,175,176],{},[19,177,178],{},"Running",[15,180,181],{},"Once Gazebo is installed, it can be launched in two ways.",[15,183,184],{},"Method 1: Launch using Gazebo, with the following command:",[73,186,188],{"className":75,"code":187,"language":77,"meta":78,"style":78},"\n# Humble版本\nign gazebo\n\n# Jazzy版本\ngz sim\n",[80,189,190,194,198,206,210,214],{"__ignoreMap":78},[83,191,192],{"class":85,"line":86},[83,193,90],{"emptyLinePlaceholder":89},[83,195,196],{"class":85,"line":93},[83,197,132],{"class":96},[83,199,200,203],{"class":85,"line":100},[83,201,202],{"class":103},"ign",[83,204,205],{"class":107}," gazebo\n",[83,207,208],{"class":85,"line":124},[83,209,90],{"emptyLinePlaceholder":89},[83,211,212],{"class":85,"line":129},[83,213,155],{"class":96},[83,215,216,219],{"class":85,"line":135},[83,217,218],{"class":103},"gz",[83,220,221],{"class":107}," sim\n",[15,223,224],{},"Method 2: Start using ROS2. The command is as follows:",[73,226,228],{"className":75,"code":227,"language":77,"meta":78,"style":78},"ros2 launch ros_gz_sim gz_sim.launch.py\n",[80,229,230],{"__ignoreMap":78},[83,231,232,235,238,241],{"class":85,"line":86},[83,233,234],{"class":103},"ros2",[83,236,237],{"class":107}," launch",[83,239,240],{"class":107}," ros_gz_sim",[83,242,243],{"class":107}," gz_sim.launch.py\n",[15,245,246,247,250],{},"The execution results of both are the same, as shown in the figure below: In the pop-up window, select the simulation environment and then click the ",[80,248,249],{},"run"," button to run.",[15,252,253],{},[171,254],{"alt":78,"src":255},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1706.webp",[15,257,258],{},[19,259,260],{},"Interface Introduction",[15,262,263],{},"Next, using the Empty simulation environment as an example, let's introduce the interface components of Gazebo.",[15,265,266],{},[171,267],{"alt":78,"src":268},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1707.webp",[15,270,271],{},"Note: If your Gazebo isn't lagging, but Gazebo is extremely laggy, please make sure Gazebo is running with the dedicated graphics card, not the integrated graphics.",[15,273,274],{},"If you don't know how to switch the application graphics card, you can simply disable the integrated graphics and switch from hybrid output to dedicated graphics output.",[15,276,277],{},[19,278,279],{},"Toolbar",[281,282,283],"ul",{},[284,285,286],"li",{},"The toolbar at the top contains two buttons: the file menu button (horizontal stripes) on the left and the plugin button (vertical ellipsis) on the right.",[288,289,290],"ol",{},[284,291,292],{},"File menu button (horizontal lines)",[15,294,295],{},[171,296],{"alt":78,"src":297},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1708.webp",[281,299,300],{},[284,301,302],{},"The File menu button includes settings such as saving the simulation environment to a file, saving and loading interface configurations, and customizing the interface style.",[288,304,305],{"start":93},[284,306,307],{},"The plugin button on the right (vertical ellipsis)",[15,309,310],{},[171,311],{"alt":78,"src":312},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1709.webp",[281,314,315],{},[284,316,317],{},"The plugin button lists all available plugins. Clicking it will bring up the plugin list; scroll down this list to view all plugins. When one is selected, its interface will appear in the right panel.",[15,319,320],{},[19,321,322],{},"3D viewport",[281,324,325],{},[284,326,327],{},"The toolbar in the upper left contains buttons for various geometric shapes (sphere, box, cylinder) and transform controls. Using the shape buttons, you can directly insert box, sphere, or cylinder models into the simulation environment. Simply click the shape you want to insert, then place it into the environment. The shape will automatically snap to the ground plane.",[15,329,330,333],{},[171,331],{"alt":78,"src":332},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1710.webp",[171,334],{"alt":78,"src":335},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1711.webp",[281,337,338],{},[284,339,340],{},"The main view displays the simulation environment. We can navigate the scene using the mouse in different ways, with the relevant operations as follows:",[73,342,344],{"className":75,"code":343,"language":77,"meta":78,"style":78},"左键单击：选择实体\n右键单击：打开带有选项的菜单：\n   Move to：移动到以实体为中心的场景\n   Follow：选择一个实体让视图保持居中，无论是移动还是平移\n   Remove：从模拟中删除实体\n   Copy：复制实体\n   Past: 粘贴实体\n   View：显示实体的重心（Center of Mass）、碰撞边界（Collisions）、惯性（Inertia）、\n         关节（Joints）、坐标系（Frames）、透明度（Transparent）、线框（Wireframe）等属性\n左键单击并拖动：在场景中平移\n右键单击并拖动：放大和缩小\n滚轮向前/向后：放大和缩小\n滚轮单击并拖动：旋转场景\n",[80,345,346,351,356,364,369,374,379,387,398,403,409,415,421],{"__ignoreMap":78},[83,347,348],{"class":85,"line":86},[83,349,350],{"class":103},"左键单击：选择实体\n",[83,352,353],{"class":85,"line":93},[83,354,355],{"class":103},"右键单击：打开带有选项的菜单：\n",[83,357,358,361],{"class":85,"line":100},[83,359,360],{"class":103},"   Move",[83,362,363],{"class":107}," to：移动到以实体为中心的场景\n",[83,365,366],{"class":85,"line":124},[83,367,368],{"class":103},"   Follow：选择一个实体让视图保持居中，无论是移动还是平移\n",[83,370,371],{"class":85,"line":129},[83,372,373],{"class":103},"   Remove：从模拟中删除实体\n",[83,375,376],{"class":85,"line":135},[83,377,378],{"class":103},"   Copy：复制实体\n",[83,380,381,384],{"class":85,"line":147},[83,382,383],{"class":103},"   Past:",[83,385,386],{"class":107}," 粘贴实体\n",[83,388,389,392,395],{"class":85,"line":152},[83,390,391],{"class":103},"   View：显示实体的重心（Center",[83,393,394],{"class":107}," of",[83,396,397],{"class":107}," Mass）、碰撞边界（Collisions）、惯性（Inertia）、\n",[83,399,400],{"class":85,"line":158},[83,401,402],{"class":103},"         关节（Joints）、坐标系（Frames）、透明度（Transparent）、线框（Wireframe）等属性\n",[83,404,406],{"class":85,"line":405},10,[83,407,408],{"class":103},"左键单击并拖动：在场景中平移\n",[83,410,412],{"class":85,"line":411},11,[83,413,414],{"class":103},"右键单击并拖动：放大和缩小\n",[83,416,418],{"class":85,"line":417},12,[83,419,420],{"class":103},"滚轮向前/向后：放大和缩小\n",[83,422,424],{"class":85,"line":423},13,[83,425,426],{"class":103},"滚轮单击并拖动：旋转场景\n",[281,428,429],{},[284,430,431],{},"To move this ball, click the Move mode in the top-left corner, then left-click to select the object.",[15,433,434],{},[171,435],{"alt":78,"src":436},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1712.webp",[15,438,439],{},[171,440],{"alt":78,"src":441},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1713.webp",[281,443,444],{},[284,445,446],{},"At the bottom of the window, from left to right, are the Play button, Step button, and Real-Time Factor (RTF). Clicking the Play button starts the simulation environment; clicking it again pauses the simulation. The Step button sets the discrete unit of simulation time, and you can customize the step size by hovering your mouse over the button. The Real-Time Factor indicates the ratio of the simulation speed to real time.",[15,448,449],{},[171,450],{"alt":78,"src":451},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1714.webp",[15,453,454],{},[19,455,456],{},"Right panel",[15,458,459],{},"The right panel is used to display plugins. The current simulation environment includes two plugins by default: Model and Entity Tree.",[15,461,462],{},[171,463],{"alt":78,"src":464},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1715.webp",[281,466,467,470,473,476],{},[284,468,469],{},"The Entity Tree displays a list of entities in the simulation environment.",[284,471,472],{},"After clicking an entity in the Entity Tree, its related information can be displayed in the Model.",[284,474,475],{},"You can also hold Ctrl and click to select multiple entities.",[284,477,478],{},"You can also right-click any plugin to open its basic settings or disable it.",[15,480,481],{},[171,482],{"alt":78,"src":483},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1716.webp",[15,485,486],{},"Gazebo comes with many built-in plugins. You can click the button on the right side of the toolbar to add them yourself. For example, you can select the Grid Config plugin to adjust the world grid's features, including cell size, grid position, cell count, or color.",[15,488,489],{},"As the application deepens, other plugins will be introduced over time.",[15,491,492],{},[171,493],{"alt":78,"src":494},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1717.webp",[15,496,497],{},[171,498],{"alt":78,"src":499},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1718.webp",[31,501,503],{"id":502},"integration-with-ros2","Integration with ROS2",[15,505,506],{},"This section will introduce how to integrate Ignition Gazebo with ROS2 to enable interaction between the two. For example, you can control the robot's movement using a ROS2 keyboard control node and display the robot's odometry (odom) data in rviz2. The general workflow is as follows:",[288,508,509,512,515],{},[284,510,511],{},"Start the Ignition Gazebo simulation environment.",[284,513,514],{},"Establish the connection between ROS2 and Ignition Gazebo via ros_gz_bridge;",[284,516,517],{},"Start the ROS2-related nodes to enable data transmission and reception with Ignition Gazebo.",[15,519,520],{},"All integration implementations between Ignition Gazebo and ROS2 basically follow the above workflow.",[15,522,523],{},[19,524,525],{},"Launch the Simulation Environment",[15,527,528,529,532],{},"When installing Ignition Gazebo, some simulation environments are already built in and can be launched directly. Here, we can use the simulation file named ",[80,530,531],{},"visualize_lidar.sdf",", which includes a differential drive robot and a LiDAR simulation. The launch command is as follows:",[73,534,536],{"className":75,"code":535,"language":77,"meta":78,"style":78},"ign gazebo -v 4 -r visualize_lidar.sdf\n#或者\ngz sim -v 4 -r visualize_lidar.sdf\n",[80,537,538,558,563],{"__ignoreMap":78},[83,539,540,542,545,549,552,555],{"class":85,"line":86},[83,541,202],{"class":103},[83,543,544],{"class":107}," gazebo",[83,546,548],{"class":547},"sj4cs"," -v",[83,550,551],{"class":547}," 4",[83,553,554],{"class":547}," -r",[83,556,557],{"class":107}," visualize_lidar.sdf\n",[83,559,560],{"class":85,"line":93},[83,561,562],{"class":96},"#或者\n",[83,564,565,567,570,572,574,576],{"class":85,"line":100},[83,566,218],{"class":103},[83,568,569],{"class":107}," sim",[83,571,548],{"class":547},[83,573,551],{"class":547},[83,575,554],{"class":547},[83,577,557],{"class":107},[15,579,580],{},"Alternatively, it can also be launched using ROS2 launch, with the following command:",[73,582,584],{"className":75,"code":583,"language":77,"meta":78,"style":78},"ros2 launch ros_gz_sim gz_sim.launch.py gz_args:=\"-v 4 -r visualize_lidar.sdf\"\n",[80,585,586],{"__ignoreMap":78},[83,587,588,590,592,594,597],{"class":85,"line":86},[83,589,234],{"class":103},[83,591,237],{"class":107},[83,593,240],{"class":107},[83,595,596],{"class":107}," gz_sim.launch.py",[83,598,599],{"class":107}," gz_args:=\"-v 4 -r visualize_lidar.sdf\"\n",[15,601,602,603,605],{},"Both methods are essentially the same: they start Ignition Gazebo and load the ",[80,604,531],{}," file.",[15,607,608],{},[171,609],{"alt":78,"src":610},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1719.webp",[15,612,613],{},[19,614,615],{},"Establishing a Connection",[15,617,618,619,622],{},"Although the robot in the simulation environment has been configured with a motion control plugin and can subscribe to velocity commands via the ",[80,620,621],{},"/model/vehicle_blue/cmd_vel"," topic to move, the message formats in Gazebo and ROS2 are not consistent. Therefore, the ros_gz_bridge bridge package is needed to convert messages between the two. The command to invoke it is as follows:",[73,624,626],{"className":75,"code":625,"language":77,"meta":78,"style":78},"ros2 run ros_gz_bridge parameter_bridge /model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist]gz.msgs.Twist\n",[80,627,628],{"__ignoreMap":78},[83,629,630,632,635,638,641],{"class":85,"line":86},[83,631,234],{"class":103},[83,633,634],{"class":107}," run",[83,636,637],{"class":107}," ros_gz_bridge",[83,639,640],{"class":107}," parameter_bridge",[83,642,643],{"class":107}," /model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist]gz.msgs.Twist\n",[15,645,646,647,650,651,653,654,657],{},"This command can convert ROS2 messages of type ",[80,648,649],{},"geometry_msgs/msg/Twist"," published on the ",[80,652,621],{}," topic into messages of type ",[80,655,656],{},"gz.msgs.Twist"," that can be recognized by Gazebo.",[15,659,660],{},[19,661,662],{},"Starting a ROS2 Node",[15,664,665,666,668],{},"Start the ROS2 keyboard control node and remap the topic to ",[80,667,621],{},", using the following command:",[73,670,672],{"className":75,"code":671,"language":77,"meta":78,"style":78},"ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r /cmd_vel:=/model/vehicle_blue/cmd_vel\n",[80,673,674],{"__ignoreMap":78},[83,675,676,678,680,683,685,688,690],{"class":85,"line":86},[83,677,234],{"class":103},[83,679,634],{"class":107},[83,681,682],{"class":107}," teleop_twist_keyboard",[83,684,682],{"class":107},[83,686,687],{"class":547}," --ros-args",[83,689,554],{"class":547},[83,691,692],{"class":107}," /cmd_vel:=/model/vehicle_blue/cmd_vel\n",[15,694,695],{},"Now you can use the keyboard to control the robot's movement.",[15,697,698],{},[171,699],{"alt":78,"src":700},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1720.webp",[31,702,703],{"id":703},"ros_gz_bridge",[15,705,706],{},"ros_gz_bridge is the bridge connecting ROS2 and Gazebo. The messages used by ROS2 and Gazebo are not compatible, so they must be converted through ros_gz_bridge.",[15,708,709],{},[19,710,711],{},"ros_gz_bridge Usage Syntax",[15,713,714,715,718,719,721],{},"The bridge between ROS2 and Gazebo is implemented through the ",[80,716,717],{},"parameter_bridge"," node in the ",[80,720,703],{}," package, with the following usage syntax:",[73,723,725],{"className":75,"code":724,"language":77,"meta":78,"style":78},"parameter_bridge [\u003Ctopic@ROS2_type@Gz_type> ..]  [\u003Cservice@ROS2_srv_type[@Gz_req_type@Gz_rep_type]> ..]\n",[80,726,727],{"__ignoreMap":78},[83,728,729,731,734,737,740,744],{"class":85,"line":86},[83,730,717],{"class":103},[83,732,733],{"class":117}," [\u003Ctopic@ROS2_type@Gz_type> ",[83,735,736],{"class":107},"..]",[83,738,739],{"class":117},"  [\u003Cservice@ROS2_srv_type[@Gz_req_type@Gz_rep_type]",[83,741,743],{"class":742},"szBVR",">",[83,745,746],{"class":117}," ..]\n",[15,748,749,750,753,754,757],{},"In the topic, the ",[19,751,752],{},"first @"," symbol serves as the ",[19,755,756],{},"separator"," between the topic name and the message type.",[15,759,760],{},"The first @ symbol is followed by a ROS message type.",[15,762,763,764,767],{},"ROS message types are followed by the @, ",[83,765,766],{},", or"," symbols:",[281,769,770,776,782],{},[284,771,772,775],{},[19,773,774],{},"@"," indicates a bidirectional bridge;",[284,777,778,781],{},[19,779,780],{},"[","  Indicates the bridge from Gazebo to ROS;",[284,783,784,787],{},[19,785,786],{},"]"," indicates the bridge from ROS to Gazebo.",[15,789,790],{},"After the direction symbol is the Gazebo Transport message type.",[15,792,793],{},"(The two @ symbols do not have the same meaning.)",[15,795,796,797,799,800,802],{},"In a Service, the ",[19,798,752],{}," symbol is the ",[19,801,756],{}," between the service name and type.",[15,804,805],{},"The first @ symbol is followed by the ROS service type. Optionally, Gazebo request and response types can be included, separated by @ symbols between them.",[15,807,808,811],{},[19,809,810],{},"Only"," supports exposing Gazebo services as ROS services, meaning the ROS service forwards requests to the Gazebo service and then forwards the response back to the ROS client.",[15,813,814],{},"Bidirectional Bridging Example:",[73,816,818],{"className":75,"code":817,"language":77,"meta":78,"style":78},"parameter_bridge /chatter@std_msgs/msg/String@gz.msgs.StringMsg\n",[80,819,820],{"__ignoreMap":78},[83,821,822,824],{"class":85,"line":86},[83,823,717],{"class":103},[83,825,826],{"class":107}," /chatter@std_msgs/msg/String@gz.msgs.StringMsg\n",[15,828,829],{},"Bridge example from Gazebo to ROS:",[73,831,833],{"className":75,"code":832,"language":77,"meta":78,"style":78},"parameter_bridge /chatter@std_msgs/msg/String[gz.msgs.StringMsg\n",[80,834,835],{"__ignoreMap":78},[83,836,837,839],{"class":85,"line":86},[83,838,717],{"class":103},[83,840,841],{"class":107}," /chatter@std_msgs/msg/String[gz.msgs.StringMsg\n",[15,843,844],{},"Bridge example from ROS to Gazebo:",[73,846,848],{"className":75,"code":847,"language":77,"meta":78,"style":78},"parameter_bridge /chatter@std_msgs/msg/String]gz.msgs.StringMsg\n",[80,849,850],{"__ignoreMap":78},[83,851,852,854],{"class":85,"line":86},[83,853,717],{"class":103},[83,855,856],{"class":107}," /chatter@std_msgs/msg/String]gz.msgs.StringMsg\n",[15,858,859],{},"Service Bridging Example:",[73,861,863],{"className":75,"code":862,"language":77,"meta":78,"style":78},"parameter_bridge /world/default/control@ros_gz_interfaces/srv/ControlWorld\n或者：\nparameter_bridge /world/default/control@ros_gz_interfaces/srv/ControlWorld@gz.msgs.WorldControl@gz.msgs.Boolean\n",[80,864,865,872,877],{"__ignoreMap":78},[83,866,867,869],{"class":85,"line":86},[83,868,717],{"class":103},[83,870,871],{"class":107}," /world/default/control@ros_gz_interfaces/srv/ControlWorld\n",[83,873,874],{"class":85,"line":93},[83,875,876],{"class":103},"或者：\n",[83,878,879,881],{"class":85,"line":100},[83,880,717],{"class":103},[83,882,883],{"class":107}," /world/default/control@ros_gz_interfaces/srv/ControlWorld@gz.msgs.WorldControl@gz.msgs.Boolean\n",[15,885,886],{},[19,887,888],{},"Message types supported by ros_gz_bridge",[15,890,891,892,895],{},"The following lists some commonly used mappings in Jazzy and those listed in the official documentation; the complete mappings are subject to ",[80,893,894],{},"ros2 run ros_gz_bridge parameter_bridge -h"," and the ros_gz_bridge documentation for the corresponding ROS2 version.",[15,897,898],{},"Below is the correspondence table of topic message types in ROS2 and Gazebo:",[900,901,902,916],"table",{},[903,904,905],"thead",{},[906,907,908,913],"tr",{},[909,910,912],"th",{"align":911},"left","ROS2 message types",[909,914,915],{"align":911},"Gazebo Transport types",[917,918,919,928,936,944,952,959,967,975,982,989,995,1003,1010,1017,1025,1032,1040,1047,1055,1063,1071,1079,1087,1095,1103,1111,1119,1127,1135,1143,1151,1159,1167,1175,1183,1191,1199,1207,1215,1223,1231,1239,1247,1255,1263,1271,1279,1287,1295,1303,1311,1319,1327,1335,1342],"tbody",{},[906,920,921,925],{},[922,923,924],"td",{"align":911},"builtin_interfaces/msg/Time",[922,926,927],{"align":911},"gz.msgs.Time",[906,929,930,933],{},[922,931,932],{"align":911},"geometry_msgs/msg/Point",[922,934,935],{"align":911},"gz.msgs.Vector3d",[906,937,938,941],{},[922,939,940],{"align":911},"geometry_msgs/msg/Pose",[922,942,943],{"align":911},"gz.msgs.Pose",[906,945,946,949],{},[922,947,948],{"align":911},"geometry_msgs/msg/PoseArray",[922,950,951],{"align":911},"gz.msgs.Pose_V",[906,953,954,957],{},[922,955,956],{"align":911},"geometry_msgs/msg/PoseStamped",[922,958,943],{"align":911},[906,960,961,964],{},[922,962,963],{"align":911},"geometry_msgs/msg/PoseWithCovariance",[922,965,966],{"align":911},"gz.msgs.PoseWithCovariance",[906,968,969,972],{},[922,970,971],{"align":911},"geometry_msgs/msg/Quaternion",[922,973,974],{"align":911},"gz.msgs.Quaternion",[906,976,977,980],{},[922,978,979],{"align":911},"geometry_msgs/msg/Transform",[922,981,943],{"align":911},[906,983,984,987],{},[922,985,986],{"align":911},"geometry_msgs/msg/TransformStamped",[922,988,943],{"align":911},[906,990,991,993],{},[922,992,649],{"align":911},[922,994,656],{"align":911},[906,996,997,1000],{},[922,998,999],{"align":911},"geometry_msgs/msg/TwistWithCovariance",[922,1001,1002],{"align":911},"gz.msgs.TwistWithCovariance",[906,1004,1005,1008],{},[922,1006,1007],{"align":911},"geometry_msgs/msg/TwistWithCovarianceStamped",[922,1009,1002],{"align":911},[906,1011,1012,1015],{},[922,1013,1014],{"align":911},"geometry_msgs/msg/Vector3",[922,1016,935],{"align":911},[906,1018,1019,1022],{},[922,1020,1021],{"align":911},"geometry_msgs/msg/Wrench",[922,1023,1024],{"align":911},"gz.msgs.Wrench",[906,1026,1027,1030],{},[922,1028,1029],{"align":911},"geometry_msgs/msg/WrenchStamped",[922,1031,1024],{"align":911},[906,1033,1034,1037],{},[922,1035,1036],{"align":911},"nav_msgs/msg/Odometry",[922,1038,1039],{"align":911},"gz.msgs.Odometry",[906,1041,1042,1044],{},[922,1043,1036],{"align":911},[922,1045,1046],{"align":911},"gz.msgs.OdometryWithCovariance",[906,1048,1049,1052],{},[922,1050,1051],{"align":911},"rcl_interfaces/msg/ParameterValue",[922,1053,1054],{"align":911},"gz.msgs.Any",[906,1056,1057,1060],{},[922,1058,1059],{"align":911},"ros_gz_interfaces/msg/Altimeter",[922,1061,1062],{"align":911},"gz.msgs.Altimeter",[906,1064,1065,1068],{},[922,1066,1067],{"align":911},"ros_gz_interfaces/msg/Contact",[922,1069,1070],{"align":911},"gz.msgs.Contact",[906,1072,1073,1076],{},[922,1074,1075],{"align":911},"ros_gz_interfaces/msg/Contacts",[922,1077,1078],{"align":911},"gz.msgs.Contacts",[906,1080,1081,1084],{},[922,1082,1083],{"align":911},"ros_gz_interfaces/msg/Dataframe",[922,1085,1086],{"align":911},"gz.msgs.Dataframe",[906,1088,1089,1092],{},[922,1090,1091],{"align":911},"ros_gz_interfaces/msg/Entity",[922,1093,1094],{"align":911},"gz.msgs.Entity",[906,1096,1097,1100],{},[922,1098,1099],{"align":911},"ros_gz_interfaces/msg/Float32Array",[922,1101,1102],{"align":911},"gz.msgs.Float_V",[906,1104,1105,1108],{},[922,1106,1107],{"align":911},"ros_gz_interfaces/msg/GuiCamera",[922,1109,1110],{"align":911},"gz.msgs.GUICamera",[906,1112,1113,1116],{},[922,1114,1115],{"align":911},"ros_gz_interfaces/msg/JointWrench",[922,1117,1118],{"align":911},"gz.msgs.JointWrench",[906,1120,1121,1124],{},[922,1122,1123],{"align":911},"ros_gz_interfaces/msg/Light",[922,1125,1126],{"align":911},"gz.msgs.Light",[906,1128,1129,1132],{},[922,1130,1131],{"align":911},"ros_gz_interfaces/msg/SensorNoise",[922,1133,1134],{"align":911},"gz.msgs.SensorNoise",[906,1136,1137,1140],{},[922,1138,1139],{"align":911},"ros_gz_interfaces/msg/StringVec",[922,1141,1142],{"align":911},"gz.msgs.StringMsg_V",[906,1144,1145,1148],{},[922,1146,1147],{"align":911},"ros_gz_interfaces/msg/TrackVisual",[922,1149,1150],{"align":911},"gz.msgs.TrackVisual",[906,1152,1153,1156],{},[922,1154,1155],{"align":911},"ros_gz_interfaces/msg/VideoRecord",[922,1157,1158],{"align":911},"gz.msgs.VideoRecord",[906,1160,1161,1164],{},[922,1162,1163],{"align":911},"ros_gz_interfaces/msg/WorldControl",[922,1165,1166],{"align":911},"gz.msgs.WorldControl",[906,1168,1169,1172],{},[922,1170,1171],{"align":911},"rosgraph_msgs/msg/Clock*",[922,1173,1174],{"align":911},"gz.msgs.Clock*",[906,1176,1177,1180],{},[922,1178,1179],{"align":911},"sensor_msgs/msg/BatteryState",[922,1181,1182],{"align":911},"gz.msgs.BatteryState",[906,1184,1185,1188],{},[922,1186,1187],{"align":911},"sensor_msgs/msg/CameraInfo",[922,1189,1190],{"align":911},"gz.msgs.CameraInfo",[906,1192,1193,1196],{},[922,1194,1195],{"align":911},"sensor_msgs/msg/FluidPressure",[922,1197,1198],{"align":911},"gz.msgs.FluidPressure",[906,1200,1201,1204],{},[922,1202,1203],{"align":911},"sensor_msgs/msg/Image",[922,1205,1206],{"align":911},"gz.msgs.Image",[906,1208,1209,1212],{},[922,1210,1211],{"align":911},"sensor_msgs/msg/Imu",[922,1213,1214],{"align":911},"gz.msgs.IMU",[906,1216,1217,1220],{},[922,1218,1219],{"align":911},"sensor_msgs/msg/JointState",[922,1221,1222],{"align":911},"gz.msgs.Model",[906,1224,1225,1228],{},[922,1226,1227],{"align":911},"sensor_msgs/msg/Joy",[922,1229,1230],{"align":911},"gz.msgs.Joy",[906,1232,1233,1236],{},[922,1234,1235],{"align":911},"sensor_msgs/msg/LaserScan",[922,1237,1238],{"align":911},"gz.msgs.LaserScan",[906,1240,1241,1244],{},[922,1242,1243],{"align":911},"sensor_msgs/msg/MagneticField",[922,1245,1246],{"align":911},"gz.msgs.Magnetometer",[906,1248,1249,1252],{},[922,1250,1251],{"align":911},"sensor_msgs/msg/NavSatFix",[922,1253,1254],{"align":911},"gz.msgs.NavSat",[906,1256,1257,1260],{},[922,1258,1259],{"align":911},"sensor_msgs/msg/PointCloud2",[922,1261,1262],{"align":911},"gz.msgs.PointCloudPacked",[906,1264,1265,1268],{},[922,1266,1267],{"align":911},"std_msgs/msg/Bool",[922,1269,1270],{"align":911},"gz.msgs.Boolean",[906,1272,1273,1276],{},[922,1274,1275],{"align":911},"std_msgs/msg/ColorRGBA",[922,1277,1278],{"align":911},"gz.msgs.Color",[906,1280,1281,1284],{},[922,1282,1283],{"align":911},"std_msgs/msg/Empty",[922,1285,1286],{"align":911},"gz.msgs.Empty",[906,1288,1289,1292],{},[922,1290,1291],{"align":911},"std_msgs/msg/Float32",[922,1293,1294],{"align":911},"gz.msgs.Float",[906,1296,1297,1300],{},[922,1298,1299],{"align":911},"std_msgs/msg/Float64",[922,1301,1302],{"align":911},"gz.msgs.Double",[906,1304,1305,1308],{},[922,1306,1307],{"align":911},"std_msgs/msg/Header",[922,1309,1310],{"align":911},"gz.msgs.Header",[906,1312,1313,1316],{},[922,1314,1315],{"align":911},"std_msgs/msg/Int32",[922,1317,1318],{"align":911},"gz.msgs.Int32",[906,1320,1321,1324],{},[922,1322,1323],{"align":911},"std_msgs/msg/String",[922,1325,1326],{"align":911},"gz.msgs.StringMsg",[906,1328,1329,1332],{},[922,1330,1331],{"align":911},"std_msgs/msg/UInt32",[922,1333,1334],{"align":911},"gz.msgs.UInt32",[906,1336,1337,1340],{},[922,1338,1339],{"align":911},"tf2_msgs/msg/TFMessage",[922,1341,951],{"align":911},[906,1343,1344,1347],{},[922,1345,1346],{"align":911},"trajectory_msgs/msg/JointTrajectory",[922,1348,1349],{"align":911},"gz.msgs.JointTrajectory",[15,1351,1352],{},"There are also some supplementary types.",[900,1354,1355,1364],{},[903,1356,1357],{},[906,1358,1359,1362],{},[909,1360,1361],{},"ROS 2 message types",[909,1363,915],{},[917,1365,1366,1374,1381,1388,1395,1403,1411,1419,1427,1435,1442,1450,1457,1465,1473,1481],{},[906,1367,1368,1371],{},[922,1369,1370],{},"actuator_msgs/msg/Actuators",[922,1372,1373],{},"gz.msgs.Actuators",[906,1375,1376,1379],{},[922,1377,1378],{},"geometry_msgs/msg/PoseWithCovarianceStamped",[922,1380,966],{},[906,1382,1383,1386],{},[922,1384,1385],{},"geometry_msgs/msg/TwistStamped",[922,1387,656],{},[906,1389,1390,1393],{},[922,1391,1392],{},"gps_msgs/msg/GPSFix",[922,1394,1254],{},[906,1396,1397,1400],{},[922,1398,1399],{},"marine_acoustic_msgs/msg/Dvl",[922,1401,1402],{},"gz.msgs.DVLVelocityTracking",[906,1404,1405,1408],{},[922,1406,1407],{},"ros_gz_interfaces/msg/EntityWrench",[922,1409,1410],{},"gz.msgs.EntityWrench",[906,1412,1413,1416],{},[922,1414,1415],{},"ros_gz_interfaces/msg/LogicalCameraImage",[922,1417,1418],{},"gz.msgs.LogicalCameraImage",[906,1420,1421,1424],{},[922,1422,1423],{},"ros_gz_interfaces/msg/LogPlaybackStatistics",[922,1425,1426],{},"gz.msgs.LogPlaybackStatistics",[906,1428,1429,1432],{},[922,1430,1431],{},"ros_gz_interfaces/msg/ParamVec",[922,1433,1434],{},"gz.msgs.Param",[906,1436,1437,1439],{},[922,1438,1431],{},[922,1440,1441],{},"gz.msgs.Param_V",[906,1443,1444,1447],{},[922,1445,1446],{},"ros_gz_interfaces/msg/WorldStatistics",[922,1448,1449],{},"gz.msgs.WorldStatistics",[906,1451,1452,1455],{},[922,1453,1454],{},"sensor_msgs/msg/Range",[922,1456,1238],{},[906,1458,1459,1462],{},[922,1460,1461],{},"vision_msgs/msg/Detection2D",[922,1463,1464],{},"gz.msgs.AnnotatedAxisAligned2DBox",[906,1466,1467,1470],{},[922,1468,1469],{},"vision_msgs/msg/Detection2DArray",[922,1471,1472],{},"gz.msgs.AnnotatedAxisAligned2DBox_V",[906,1474,1475,1478],{},[922,1476,1477],{},"vision_msgs/msg/Detection3D",[922,1479,1480],{},"gz.msgs.AnnotatedOriented3DBox",[906,1482,1483,1486],{},[922,1484,1485],{},"vision_msgs/msg/Detection3DArray",[922,1487,1488],{},"gz.msgs.AnnotatedOriented3DBox_V",[15,1490,1491],{},"And the service message type correspondence table:",[900,1493,1494,1506],{},[903,1495,1496],{},[906,1497,1498,1500,1503],{},[909,1499,912],{"align":911},[909,1501,1502],{"align":911},"Gazebo request",[909,1504,1505],{"align":911},"Gazebo response",[917,1507,1508],{},[906,1509,1510,1513,1515],{},[922,1511,1512],{"align":911},"ros_gz_interfaces/srv/ControlWorld",[922,1514,1166],{"align":911},[922,1516,1270],{"align":911},[31,1518,1520],{"id":1519},"optimized-integration-with-ros2","Optimized integration with ROS2",[15,1522,1523,1524,1527],{},"In the implementation of ",[19,1525,1526],{},"Gazebo and ROS2 integration",", different commands need to be used in the terminal to start different modules, making the process somewhat complex. This section will introduce how to optimize it using launch files.",[15,1529,1530],{},[19,1531,1532],{},"Create a New Package",[15,1534,1535],{},"First, call the following command to create a function package:",[73,1537,1539],{"className":75,"code":1538,"language":77,"meta":78,"style":78},"ros2 pkg create demo_gazebo_sim\n",[80,1540,1541],{"__ignoreMap":78},[83,1542,1543,1545,1548,1551],{"class":85,"line":86},[83,1544,234],{"class":103},[83,1546,1547],{"class":107}," pkg",[83,1549,1550],{"class":107}," create",[83,1552,1553],{"class":107}," demo_gazebo_sim\n",[15,1555,1556],{},[171,1557],{"alt":78,"src":1558},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1721.webp",[15,1560,1561],{},[19,1562,1563],{},"Add Table of Contents",[15,1565,1566],{},"Add the following directories under the newly created package: launch, rviz, world. Then add the following code to CMakeLists.txt:",[73,1568,1572],{"className":1569,"code":1570,"language":1571,"meta":78,"style":78},"language-cmake shiki shiki-themes github-light github-dark","install(DIRECTORY rviz world launch DESTINATION share/${PROJECT_NAME})\n","cmake",[80,1573,1574],{"__ignoreMap":78},[83,1575,1576,1579,1582,1585],{"class":85,"line":86},[83,1577,1578],{"class":742},"install",[83,1580,1581],{"class":117},"(DIRECTORY rviz world launch DESTINATION share/",[83,1583,1584],{"class":742},"${PROJECT_NAME}",[83,1586,1587],{"class":117},")\n",[15,1589,1590,1591,1594,1595,1598,1599,1602],{},"The ",[80,1592,1593],{},"launch"," directory is used to store launch files, the ",[80,1596,1597],{},"rviz"," directory is used to store RViz2 configuration files, and the ",[80,1600,1601],{},"world"," directory is used to store files related to the Gazebo simulation environment.",[15,1604,1605],{},[171,1606],{"alt":78,"src":1607},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1722.webp",[15,1609,1610],{},[19,1611,1612],{},"Generate rviz2 configuration files in the rviz directory",[15,1614,1615],{},"Launch rviz2, save the default configuration directly to the rviz directory of the current package, and name the saved file sim.rviz.",[15,1617,1618],{},[171,1619],{"alt":78,"src":1620},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1723.webp",[15,1622,1623],{},[19,1624,1625],{},"Copy the world file",[15,1627,1628,1629,1631,1632,1635],{},"Copy the ",[80,1630,531],{}," file from the worlds directory under the ROS installation path (",[80,1633,1634],{},"/opt/ros/jazzy/opt/gz_sim_vendor/share/gz/gz-sim8/worlds/",") to the world directory.",[15,1637,1638],{},"If it is not found under the above path, it may be under the installation path of ign (Humble's).",[15,1640,1641],{},[80,1642,1643],{},"/usr/share/ignition/ignition-gazebo6/worlds",[15,1645,1646],{},"If you haven't already, manually search for it:",[73,1648,1650],{"className":75,"code":1649,"language":77,"meta":78,"style":78},"sudo find / -name \"visualize_lidar.sdf\"\n",[80,1651,1652],{"__ignoreMap":78},[83,1653,1654,1656,1659,1662,1665],{"class":85,"line":86},[83,1655,104],{"class":103},[83,1657,1658],{"class":107}," find",[83,1660,1661],{"class":107}," /",[83,1663,1664],{"class":547}," -name",[83,1666,1667],{"class":107}," \"visualize_lidar.sdf\"\n",[15,1669,1670],{},[171,1671],{"alt":78,"src":1672},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1724.webp",[15,1674,1675],{},[19,1676,1677],{},"Writing a launch file",[15,1679,1680,1681,1684],{},"Create a new launch file ",[80,1682,1683],{},"gazebo_sim_demo.launch.py"," in the launch directory, and enter the following content:",[73,1686,1690],{"className":1687,"code":1688,"language":1689,"meta":78,"style":78},"language-python shiki shiki-themes github-light github-dark","import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.conditions import IfCondition\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch.substitutions import LaunchConfiguration\n\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory('demo_gazebo_sim')\n    pkg_ros_gz_sim = get_package_share_directory('ros_gz_sim')\n    world_file = os.path.join(this_pkg,'world','visualize_lidar.sdf')\n\n    gz_sim = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(pkg_ros_gz_sim, 'launch', 'gz_sim.launch.py')),\n        launch_arguments={\n            'gz_args': '-r ' + world_file\n        }.items(),\n    )\n\n    # RViz\n    rviz = Node(\n       package='rviz2',\n       executable='rviz2',\n       arguments=['-d', os.path.join(this_pkg, 'rviz', 'sim.rviz')],\n       condition=IfCondition(LaunchConfiguration('rviz'))\n    )\n\n    # Bridge\n    bridge = Node(\n        package='ros_gz_bridge',\n        executable='parameter_bridge',\n        arguments=['/model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist',\n                   '/model/vehicle_blue/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry',\n                   '/model/vehicle_blue/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V',\n                   ],\n        parameters=[{'qos_overrides./model/vehicle_blue.subscriber.reliability': 'reliable'}],\n        remappings=[\n                ('/model/vehicle_blue/tf', '/tf'),\n                ('/model/vehicle_blue/cmd_vel','cmd_vel')\n            ],\n        output='screen'\n    )\n\n    return LaunchDescription([\n        gz_sim,\n        DeclareLaunchArgument('rviz', default_value='true',\n                              description='Open RViz.'),\n        bridge,\n        rviz\n    ])\n","python",[80,1691,1692,1700,1704,1717,1721,1733,1745,1756,1768,1780,1792,1796,1808,1812,1824,1829,1846,1861,1883,1888,1899,1905,1923,1935,1953,1959,1965,1970,1976,1987,2001,2013,2040,2056,2061,2066,2072,2082,2095,2108,2123,2131,2139,2145,2167,2178,2195,2210,2216,2227,2232,2237,2246,2252,2272,2285,2291,2297],{"__ignoreMap":78},[83,1693,1694,1697],{"class":85,"line":86},[83,1695,1696],{"class":742},"import",[83,1698,1699],{"class":117}," os\n",[83,1701,1702],{"class":85,"line":93},[83,1703,90],{"emptyLinePlaceholder":89},[83,1705,1706,1709,1712,1714],{"class":85,"line":100},[83,1707,1708],{"class":742},"from",[83,1710,1711],{"class":117}," ament_index_python.packages ",[83,1713,1696],{"class":742},[83,1715,1716],{"class":117}," get_package_share_directory\n",[83,1718,1719],{"class":85,"line":124},[83,1720,90],{"emptyLinePlaceholder":89},[83,1722,1723,1725,1728,1730],{"class":85,"line":129},[83,1724,1708],{"class":742},[83,1726,1727],{"class":117}," launch ",[83,1729,1696],{"class":742},[83,1731,1732],{"class":117}," LaunchDescription\n",[83,1734,1735,1737,1740,1742],{"class":85,"line":135},[83,1736,1708],{"class":742},[83,1738,1739],{"class":117}," launch.actions ",[83,1741,1696],{"class":742},[83,1743,1744],{"class":117}," DeclareLaunchArgument\n",[83,1746,1747,1749,1751,1753],{"class":85,"line":147},[83,1748,1708],{"class":742},[83,1750,1739],{"class":117},[83,1752,1696],{"class":742},[83,1754,1755],{"class":117}," IncludeLaunchDescription\n",[83,1757,1758,1760,1763,1765],{"class":85,"line":152},[83,1759,1708],{"class":742},[83,1761,1762],{"class":117}," launch.conditions ",[83,1764,1696],{"class":742},[83,1766,1767],{"class":117}," IfCondition\n",[83,1769,1770,1772,1775,1777],{"class":85,"line":158},[83,1771,1708],{"class":742},[83,1773,1774],{"class":117}," launch.launch_description_sources ",[83,1776,1696],{"class":742},[83,1778,1779],{"class":117}," PythonLaunchDescriptionSource\n",[83,1781,1782,1784,1787,1789],{"class":85,"line":405},[83,1783,1708],{"class":742},[83,1785,1786],{"class":117}," launch.substitutions ",[83,1788,1696],{"class":742},[83,1790,1791],{"class":117}," LaunchConfiguration\n",[83,1793,1794],{"class":85,"line":411},[83,1795,90],{"emptyLinePlaceholder":89},[83,1797,1798,1800,1803,1805],{"class":85,"line":417},[83,1799,1708],{"class":742},[83,1801,1802],{"class":117}," launch_ros.actions ",[83,1804,1696],{"class":742},[83,1806,1807],{"class":117}," Node\n",[83,1809,1810],{"class":85,"line":423},[83,1811,90],{"emptyLinePlaceholder":89},[83,1813,1815,1818,1821],{"class":85,"line":1814},14,[83,1816,1817],{"class":742},"def",[83,1819,1820],{"class":103}," generate_launch_description",[83,1822,1823],{"class":117},"():\n",[83,1825,1827],{"class":85,"line":1826},15,[83,1828,90],{"emptyLinePlaceholder":89},[83,1830,1832,1835,1838,1841,1844],{"class":85,"line":1831},16,[83,1833,1834],{"class":117},"    this_pkg ",[83,1836,1837],{"class":742},"=",[83,1839,1840],{"class":117}," get_package_share_directory(",[83,1842,1843],{"class":107},"'demo_gazebo_sim'",[83,1845,1587],{"class":117},[83,1847,1849,1852,1854,1856,1859],{"class":85,"line":1848},17,[83,1850,1851],{"class":117},"    pkg_ros_gz_sim ",[83,1853,1837],{"class":742},[83,1855,1840],{"class":117},[83,1857,1858],{"class":107},"'ros_gz_sim'",[83,1860,1587],{"class":117},[83,1862,1864,1867,1869,1872,1875,1878,1881],{"class":85,"line":1863},18,[83,1865,1866],{"class":117},"    world_file ",[83,1868,1837],{"class":742},[83,1870,1871],{"class":117}," os.path.join(this_pkg,",[83,1873,1874],{"class":107},"'world'",[83,1876,1877],{"class":117},",",[83,1879,1880],{"class":107},"'visualize_lidar.sdf'",[83,1882,1587],{"class":117},[83,1884,1886],{"class":85,"line":1885},19,[83,1887,90],{"emptyLinePlaceholder":89},[83,1889,1891,1894,1896],{"class":85,"line":1890},20,[83,1892,1893],{"class":117},"    gz_sim ",[83,1895,1837],{"class":742},[83,1897,1898],{"class":117}," IncludeLaunchDescription(\n",[83,1900,1902],{"class":85,"line":1901},21,[83,1903,1904],{"class":117},"        PythonLaunchDescriptionSource(\n",[83,1906,1908,1911,1914,1917,1920],{"class":85,"line":1907},22,[83,1909,1910],{"class":117},"            os.path.join(pkg_ros_gz_sim, ",[83,1912,1913],{"class":107},"'launch'",[83,1915,1916],{"class":117},", ",[83,1918,1919],{"class":107},"'gz_sim.launch.py'",[83,1921,1922],{"class":117},")),\n",[83,1924,1926,1930,1932],{"class":85,"line":1925},23,[83,1927,1929],{"class":1928},"s4XuR","        launch_arguments",[83,1931,1837],{"class":742},[83,1933,1934],{"class":117},"{\n",[83,1936,1938,1941,1944,1947,1950],{"class":85,"line":1937},24,[83,1939,1940],{"class":107},"            'gz_args'",[83,1942,1943],{"class":117},": ",[83,1945,1946],{"class":107},"'-r '",[83,1948,1949],{"class":742}," +",[83,1951,1952],{"class":117}," world_file\n",[83,1954,1956],{"class":85,"line":1955},25,[83,1957,1958],{"class":117},"        }.items(),\n",[83,1960,1962],{"class":85,"line":1961},26,[83,1963,1964],{"class":117},"    )\n",[83,1966,1968],{"class":85,"line":1967},27,[83,1969,90],{"emptyLinePlaceholder":89},[83,1971,1973],{"class":85,"line":1972},28,[83,1974,1975],{"class":96},"    # RViz\n",[83,1977,1979,1982,1984],{"class":85,"line":1978},29,[83,1980,1981],{"class":117},"    rviz ",[83,1983,1837],{"class":742},[83,1985,1986],{"class":117}," Node(\n",[83,1988,1990,1993,1995,1998],{"class":85,"line":1989},30,[83,1991,1992],{"class":1928},"       package",[83,1994,1837],{"class":742},[83,1996,1997],{"class":107},"'rviz2'",[83,1999,2000],{"class":117},",\n",[83,2002,2004,2007,2009,2011],{"class":85,"line":2003},31,[83,2005,2006],{"class":1928},"       executable",[83,2008,1837],{"class":742},[83,2010,1997],{"class":107},[83,2012,2000],{"class":117},[83,2014,2016,2019,2021,2023,2026,2029,2032,2034,2037],{"class":85,"line":2015},32,[83,2017,2018],{"class":1928},"       arguments",[83,2020,1837],{"class":742},[83,2022,780],{"class":117},[83,2024,2025],{"class":107},"'-d'",[83,2027,2028],{"class":117},", os.path.join(this_pkg, ",[83,2030,2031],{"class":107},"'rviz'",[83,2033,1916],{"class":117},[83,2035,2036],{"class":107},"'sim.rviz'",[83,2038,2039],{"class":117},")],\n",[83,2041,2043,2046,2048,2051,2053],{"class":85,"line":2042},33,[83,2044,2045],{"class":1928},"       condition",[83,2047,1837],{"class":742},[83,2049,2050],{"class":117},"IfCondition(LaunchConfiguration(",[83,2052,2031],{"class":107},[83,2054,2055],{"class":117},"))\n",[83,2057,2059],{"class":85,"line":2058},34,[83,2060,1964],{"class":117},[83,2062,2064],{"class":85,"line":2063},35,[83,2065,90],{"emptyLinePlaceholder":89},[83,2067,2069],{"class":85,"line":2068},36,[83,2070,2071],{"class":96},"    # Bridge\n",[83,2073,2075,2078,2080],{"class":85,"line":2074},37,[83,2076,2077],{"class":117},"    bridge ",[83,2079,1837],{"class":742},[83,2081,1986],{"class":117},[83,2083,2085,2088,2090,2093],{"class":85,"line":2084},38,[83,2086,2087],{"class":1928},"        package",[83,2089,1837],{"class":742},[83,2091,2092],{"class":107},"'ros_gz_bridge'",[83,2094,2000],{"class":117},[83,2096,2098,2101,2103,2106],{"class":85,"line":2097},39,[83,2099,2100],{"class":1928},"        executable",[83,2102,1837],{"class":742},[83,2104,2105],{"class":107},"'parameter_bridge'",[83,2107,2000],{"class":117},[83,2109,2111,2114,2116,2118,2121],{"class":85,"line":2110},40,[83,2112,2113],{"class":1928},"        arguments",[83,2115,1837],{"class":742},[83,2117,780],{"class":117},[83,2119,2120],{"class":107},"'/model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist'",[83,2122,2000],{"class":117},[83,2124,2126,2129],{"class":85,"line":2125},41,[83,2127,2128],{"class":107},"                   '/model/vehicle_blue/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry'",[83,2130,2000],{"class":117},[83,2132,2134,2137],{"class":85,"line":2133},42,[83,2135,2136],{"class":107},"                   '/model/vehicle_blue/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V'",[83,2138,2000],{"class":117},[83,2140,2142],{"class":85,"line":2141},43,[83,2143,2144],{"class":117},"                   ],\n",[83,2146,2148,2151,2153,2156,2159,2161,2164],{"class":85,"line":2147},44,[83,2149,2150],{"class":1928},"        parameters",[83,2152,1837],{"class":742},[83,2154,2155],{"class":117},"[{",[83,2157,2158],{"class":107},"'qos_overrides./model/vehicle_blue.subscriber.reliability'",[83,2160,1943],{"class":117},[83,2162,2163],{"class":107},"'reliable'",[83,2165,2166],{"class":117},"}],\n",[83,2168,2170,2173,2175],{"class":85,"line":2169},45,[83,2171,2172],{"class":1928},"        remappings",[83,2174,1837],{"class":742},[83,2176,2177],{"class":117},"[\n",[83,2179,2181,2184,2187,2189,2192],{"class":85,"line":2180},46,[83,2182,2183],{"class":117},"                (",[83,2185,2186],{"class":107},"'/model/vehicle_blue/tf'",[83,2188,1916],{"class":117},[83,2190,2191],{"class":107},"'/tf'",[83,2193,2194],{"class":117},"),\n",[83,2196,2198,2200,2203,2205,2208],{"class":85,"line":2197},47,[83,2199,2183],{"class":117},[83,2201,2202],{"class":107},"'/model/vehicle_blue/cmd_vel'",[83,2204,1877],{"class":117},[83,2206,2207],{"class":107},"'cmd_vel'",[83,2209,1587],{"class":117},[83,2211,2213],{"class":85,"line":2212},48,[83,2214,2215],{"class":117},"            ],\n",[83,2217,2219,2222,2224],{"class":85,"line":2218},49,[83,2220,2221],{"class":1928},"        output",[83,2223,1837],{"class":742},[83,2225,2226],{"class":107},"'screen'\n",[83,2228,2230],{"class":85,"line":2229},50,[83,2231,1964],{"class":117},[83,2233,2235],{"class":85,"line":2234},51,[83,2236,90],{"emptyLinePlaceholder":89},[83,2238,2240,2243],{"class":85,"line":2239},52,[83,2241,2242],{"class":742},"    return",[83,2244,2245],{"class":117}," LaunchDescription([\n",[83,2247,2249],{"class":85,"line":2248},53,[83,2250,2251],{"class":117},"        gz_sim,\n",[83,2253,2255,2258,2260,2262,2265,2267,2270],{"class":85,"line":2254},54,[83,2256,2257],{"class":117},"        DeclareLaunchArgument(",[83,2259,2031],{"class":107},[83,2261,1916],{"class":117},[83,2263,2264],{"class":1928},"default_value",[83,2266,1837],{"class":742},[83,2268,2269],{"class":107},"'true'",[83,2271,2000],{"class":117},[83,2273,2275,2278,2280,2283],{"class":85,"line":2274},55,[83,2276,2277],{"class":1928},"                              description",[83,2279,1837],{"class":742},[83,2281,2282],{"class":107},"'Open RViz.'",[83,2284,2194],{"class":117},[83,2286,2288],{"class":85,"line":2287},56,[83,2289,2290],{"class":117},"        bridge,\n",[83,2292,2294],{"class":85,"line":2293},57,[83,2295,2296],{"class":117},"        rviz\n",[83,2298,2300],{"class":85,"line":2299},58,[83,2301,2302],{"class":117},"    ])\n",[15,2304,2305],{},"In this launch file, the Ignition Gazebo simulation environment is started, a connection between the simulation and ROS2 is established via ros_gz_bridge, and the rviz2 node is launched. When establishing the connection, message conversion for velocity commands, odometry, and coordinate transforms is implemented.",[15,2307,2308],{},[171,2309],{"alt":78,"src":2310},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1725.webp",[15,2312,2313],{},[19,2314,2315],{},"Build",[15,2317,2318],{},"In the terminal, navigate to the current workspace and compile the package:",[73,2320,2322],{"className":75,"code":2321,"language":77,"meta":78,"style":78},"colcon build  --packages-select demo_gazebo_sim\n",[80,2323,2324],{"__ignoreMap":78},[83,2325,2326,2329,2332,2335],{"class":85,"line":86},[83,2327,2328],{"class":103},"colcon",[83,2330,2331],{"class":107}," build",[83,2333,2334],{"class":547},"  --packages-select",[83,2336,1553],{"class":107},[15,2338,2339],{},[171,2340],{"alt":78,"src":2341},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1726.webp",[15,2343,2344],{},[19,2345,2346],{},"Execute",[15,2348,2349],{},"In the terminal, navigate to the current workspace and run the following command to execute the launch file:",[73,2351,2353],{"className":75,"code":2352,"language":77,"meta":78,"style":78},". install/setup.bash\nros2 launch demo_gazebo_sim gazebo_sim_demo.launch.py\n",[80,2354,2355,2363],{"__ignoreMap":78},[83,2356,2357,2360],{"class":85,"line":86},[83,2358,2359],{"class":547},".",[83,2361,2362],{"class":107}," install/setup.bash\n",[83,2364,2365,2367,2369,2372],{"class":85,"line":93},[83,2366,234],{"class":103},[83,2368,237],{"class":107},[83,2370,2371],{"class":107}," demo_gazebo_sim",[83,2373,2374],{"class":107}," gazebo_sim_demo.launch.py\n",[15,2376,2377],{},"Open a new terminal and start the keyboard control node:",[73,2379,2381],{"className":75,"code":2380,"language":77,"meta":78,"style":78},"ros2 run teleop_twist_keyboard teleop_twist_keyboard\n",[80,2382,2383],{"__ignoreMap":78},[83,2384,2385,2387,2389,2391],{"class":85,"line":86},[83,2386,234],{"class":103},[83,2388,634],{"class":107},[83,2390,682],{"class":107},[83,2392,2393],{"class":107}," teleop_twist_keyboard\n",[15,2395,2396],{},"Reconfigure rviz2.",[288,2398,2399,2409,2412],{},[284,2400,2401,2402,2405,2406,2359],{},"Set ",[80,2403,2404],{},"Fixed Frame"," to ",[80,2407,2408],{},"vehicle_blue/odom",[284,2410,2411],{},"Add the TF plugin.",[284,2413,2414,2415,2418],{},"Add the Odometry plugin and set the topic to ",[80,2416,2417],{},"/model/vehicle_blue/odometry",".\nWhen sending speed commands via keyboard control, the robot in the simulation environment begins to move, and messages such as coordinate transformations and odometry can be echoed back in rviz2.",[15,2420,2421],{},[171,2422],{"alt":78,"src":2423},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1727.webp",[31,2425,2427,2428],{"id":2426},"creating-a-simulation-environment-sdf-file","Creating a Simulation Environment ",[19,2429,2430],{},"SDF File",[15,2432,2433],{},"In the previous sections, we used the built-in simulation environment of Ignition Gazebo. Starting from this section, we will introduce how to build your own simulation environment. The example in this section will simulate a rectangular room that is 10 meters long and 5 meters wide. For this example, you can first launch Ignition Gazebo and build the simulation environment by dragging and dropping, then modify the corresponding simulation environment files to adjust the details.",[15,2435,2436],{},[19,2437,2438],{},"Relationship between SDF, URDF, and Xacro:",[281,2440,2441,2476],{},[284,2442,2443,2446],{},[19,2444,2445],{},"Difference between URDF and SDF:",[281,2447,2448,2454,2460,2466],{},[284,2449,2450,2453],{},[19,2451,2452],{},"Complexity:"," SDF supports more powerful features and can describe a complete simulation environment; URDF is better suited for defining robot models.",[284,2455,2456,2459],{},[19,2457,2458],{},"Purpose:"," URDF is the standard for ROS; SDF is the standard for Gazebo.",[284,2461,2462,2465],{},[19,2463,2464],{},"Physics Engine Support:"," URDF supports Gazebo through plugins; SDF natively supports Gazebo.",[284,2467,2468,2471,2472,2475],{},[19,2469,2470],{},"Format Conversion:"," URDF can be converted to SDF (via the tool ",[80,2473,2474],{},"gz sdf -p"," provided by ROS).",[284,2477,2478,2481],{},[19,2479,2480],{},"The Role of Xacro:",[281,2482,2483],{},[284,2484,2485],{},"Xacro is a URDF generation tool that helps users efficiently write URDF files, but it has no direct relationship with SDF.",[2487,2488],"hr",{},[15,2490,2491],{},[19,2492,2493],{},"Practical Advice",[281,2495,2496,2502,2508],{},[284,2497,2498,2501],{},[19,2499,2500],{},"In the Gazebo simulation:"," If you are using ROS 2 and Gazebo, you can directly use SDF files, which offer more powerful functionality.",[284,2503,2504,2507],{},[19,2505,2506],{},"In ROS:"," If primarily used for robot control and planning, URDF or URDF generated by Xacro is recommended.",[284,2509,2510,2513],{},[19,2511,2512],{},"Combining the two:"," Use URDF for control and SDF for simulation. For example, after defining the robot structure with URDF, convert it to SDF using Gazebo plugins.",[15,2515,2516],{},[19,2517,2518],{},"Example Comparison",[15,2520,2521],{},"URDF Example:",[73,2523,2527],{"className":2524,"code":2525,"language":2526,"meta":78,"style":78},"language-xml shiki shiki-themes github-light github-dark","\u003Crobot name=\"example_robot\">\n  \u003Clink name=\"base_link\">\n    \u003Cinertial>\n      \u003Cmass value=\"1.0\" />\n      \u003Cinertia ixx=\"1.0\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"1.0\" iyz=\"0.0\" izz=\"1.0\" />\n    \u003C/inertial>\n  \u003C/link>\n\u003C/robot>\n\n","xml",[80,2528,2529,2549,2566,2576,2595,2647,2656,2665],{"__ignoreMap":78},[83,2530,2531,2534,2538,2541,2543,2546],{"class":85,"line":86},[83,2532,2533],{"class":117},"\u003C",[83,2535,2537],{"class":2536},"s9eBZ","robot",[83,2539,2540],{"class":103}," name",[83,2542,1837],{"class":117},[83,2544,2545],{"class":107},"\"example_robot\"",[83,2547,2548],{"class":117},">\n",[83,2550,2551,2554,2557,2559,2561,2564],{"class":85,"line":93},[83,2552,2553],{"class":117},"  \u003C",[83,2555,2556],{"class":2536},"link",[83,2558,2540],{"class":103},[83,2560,1837],{"class":117},[83,2562,2563],{"class":107},"\"base_link\"",[83,2565,2548],{"class":117},[83,2567,2568,2571,2574],{"class":85,"line":100},[83,2569,2570],{"class":117},"    \u003C",[83,2572,2573],{"class":2536},"inertial",[83,2575,2548],{"class":117},[83,2577,2578,2581,2584,2587,2589,2592],{"class":85,"line":124},[83,2579,2580],{"class":117},"      \u003C",[83,2582,2583],{"class":2536},"mass",[83,2585,2586],{"class":103}," value",[83,2588,1837],{"class":117},[83,2590,2591],{"class":107},"\"1.0\"",[83,2593,2594],{"class":117}," />\n",[83,2596,2597,2599,2602,2605,2607,2609,2612,2614,2617,2620,2622,2624,2627,2629,2631,2634,2636,2638,2641,2643,2645],{"class":85,"line":129},[83,2598,2580],{"class":117},[83,2600,2601],{"class":2536},"inertia",[83,2603,2604],{"class":103}," ixx",[83,2606,1837],{"class":117},[83,2608,2591],{"class":107},[83,2610,2611],{"class":103}," ixy",[83,2613,1837],{"class":117},[83,2615,2616],{"class":107},"\"0.0\"",[83,2618,2619],{"class":103}," ixz",[83,2621,1837],{"class":117},[83,2623,2616],{"class":107},[83,2625,2626],{"class":103}," iyy",[83,2628,1837],{"class":117},[83,2630,2591],{"class":107},[83,2632,2633],{"class":103}," iyz",[83,2635,1837],{"class":117},[83,2637,2616],{"class":107},[83,2639,2640],{"class":103}," izz",[83,2642,1837],{"class":117},[83,2644,2591],{"class":107},[83,2646,2594],{"class":117},[83,2648,2649,2652,2654],{"class":85,"line":135},[83,2650,2651],{"class":117},"    \u003C/",[83,2653,2573],{"class":2536},[83,2655,2548],{"class":117},[83,2657,2658,2661,2663],{"class":85,"line":147},[83,2659,2660],{"class":117},"  \u003C/",[83,2662,2556],{"class":2536},[83,2664,2548],{"class":117},[83,2666,2667,2670,2672],{"class":85,"line":152},[83,2668,2669],{"class":117},"\u003C/",[83,2671,2537],{"class":2536},[83,2673,2548],{"class":117},[15,2675,2676],{},"Xacro example (generating URDF):",[73,2678,2680],{"className":2524,"code":2679,"language":2526,"meta":78,"style":78},"\u003Cxacro:robot xmlns:xacro=\"http://www.ros.org/wiki/xacro\" name=\"example_robot\">\n  \u003Cxacro:macro name=\"base_link\" params=\"mass\">\n    \u003Clink name=\"base_link\">\n      \u003Cinertial>\n        \u003Cmass value=\"${mass}\" />\n        \u003Cinertia ixx=\"1.0\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"1.0\" iyz=\"0.0\" izz=\"1.0\" />\n      \u003C/inertial>\n    \u003C/link>\n  \u003C/xacro:macro>\n\n  \u003Cxacro:base_link mass=\"1.0\" />\n\u003C/xacro:robot>\n",[80,2681,2682,2705,2728,2742,2750,2766,2810,2819,2827,2835,2839,2855],{"__ignoreMap":78},[83,2683,2684,2686,2689,2692,2694,2697,2699,2701,2703],{"class":85,"line":86},[83,2685,2533],{"class":117},[83,2687,2688],{"class":2536},"xacro:robot",[83,2690,2691],{"class":103}," xmlns:xacro",[83,2693,1837],{"class":117},[83,2695,2696],{"class":107},"\"http://www.ros.org/wiki/xacro\"",[83,2698,2540],{"class":103},[83,2700,1837],{"class":117},[83,2702,2545],{"class":107},[83,2704,2548],{"class":117},[83,2706,2707,2709,2712,2714,2716,2718,2721,2723,2726],{"class":85,"line":93},[83,2708,2553],{"class":117},[83,2710,2711],{"class":2536},"xacro:macro",[83,2713,2540],{"class":103},[83,2715,1837],{"class":117},[83,2717,2563],{"class":107},[83,2719,2720],{"class":103}," params",[83,2722,1837],{"class":117},[83,2724,2725],{"class":107},"\"mass\"",[83,2727,2548],{"class":117},[83,2729,2730,2732,2734,2736,2738,2740],{"class":85,"line":100},[83,2731,2570],{"class":117},[83,2733,2556],{"class":2536},[83,2735,2540],{"class":103},[83,2737,1837],{"class":117},[83,2739,2563],{"class":107},[83,2741,2548],{"class":117},[83,2743,2744,2746,2748],{"class":85,"line":124},[83,2745,2580],{"class":117},[83,2747,2573],{"class":2536},[83,2749,2548],{"class":117},[83,2751,2752,2755,2757,2759,2761,2764],{"class":85,"line":129},[83,2753,2754],{"class":117},"        \u003C",[83,2756,2583],{"class":2536},[83,2758,2586],{"class":103},[83,2760,1837],{"class":117},[83,2762,2763],{"class":107},"\"${mass}\"",[83,2765,2594],{"class":117},[83,2767,2768,2770,2772,2774,2776,2778,2780,2782,2784,2786,2788,2790,2792,2794,2796,2798,2800,2802,2804,2806,2808],{"class":85,"line":135},[83,2769,2754],{"class":117},[83,2771,2601],{"class":2536},[83,2773,2604],{"class":103},[83,2775,1837],{"class":117},[83,2777,2591],{"class":107},[83,2779,2611],{"class":103},[83,2781,1837],{"class":117},[83,2783,2616],{"class":107},[83,2785,2619],{"class":103},[83,2787,1837],{"class":117},[83,2789,2616],{"class":107},[83,2791,2626],{"class":103},[83,2793,1837],{"class":117},[83,2795,2591],{"class":107},[83,2797,2633],{"class":103},[83,2799,1837],{"class":117},[83,2801,2616],{"class":107},[83,2803,2640],{"class":103},[83,2805,1837],{"class":117},[83,2807,2591],{"class":107},[83,2809,2594],{"class":117},[83,2811,2812,2815,2817],{"class":85,"line":147},[83,2813,2814],{"class":117},"      \u003C/",[83,2816,2573],{"class":2536},[83,2818,2548],{"class":117},[83,2820,2821,2823,2825],{"class":85,"line":152},[83,2822,2651],{"class":117},[83,2824,2556],{"class":2536},[83,2826,2548],{"class":117},[83,2828,2829,2831,2833],{"class":85,"line":158},[83,2830,2660],{"class":117},[83,2832,2711],{"class":2536},[83,2834,2548],{"class":117},[83,2836,2837],{"class":85,"line":405},[83,2838,90],{"emptyLinePlaceholder":89},[83,2840,2841,2843,2846,2849,2851,2853],{"class":85,"line":411},[83,2842,2553],{"class":117},[83,2844,2845],{"class":2536},"xacro:base_link",[83,2847,2848],{"class":103}," mass",[83,2850,1837],{"class":117},[83,2852,2591],{"class":107},[83,2854,2594],{"class":117},[83,2856,2857,2859,2861],{"class":85,"line":417},[83,2858,2669],{"class":117},[83,2860,2688],{"class":2536},[83,2862,2548],{"class":117},[15,2864,2865],{},"SDF example:",[73,2867,2869],{"className":2524,"code":2868,"language":2526,"meta":78,"style":78},"\u003Csdf version=\"1.6\">\n  \u003Cmodel name=\"example_robot\">\n    \u003Clink name=\"base_link\">\n      \u003Cinertial>\n        \u003Cmass>1.0\u003C/mass>\n        \u003Cinertia>\n          \u003Cixx>1.0\u003C/ixx>\n          \u003Ciyy>1.0\u003C/iyy>\n          \u003Cizz>1.0\u003C/izz>\n        \u003C/inertia>\n      \u003C/inertial>\n    \u003C/link>\n  \u003C/model>\n\u003C/sdf>\n\n",[80,2870,2871,2888,2903,2917,2925,2938,2946,2960,2973,2986,2995,3003,3011,3019],{"__ignoreMap":78},[83,2872,2873,2875,2878,2881,2883,2886],{"class":85,"line":86},[83,2874,2533],{"class":117},[83,2876,2877],{"class":2536},"sdf",[83,2879,2880],{"class":103}," version",[83,2882,1837],{"class":117},[83,2884,2885],{"class":107},"\"1.6\"",[83,2887,2548],{"class":117},[83,2889,2890,2892,2895,2897,2899,2901],{"class":85,"line":93},[83,2891,2553],{"class":117},[83,2893,2894],{"class":2536},"model",[83,2896,2540],{"class":103},[83,2898,1837],{"class":117},[83,2900,2545],{"class":107},[83,2902,2548],{"class":117},[83,2904,2905,2907,2909,2911,2913,2915],{"class":85,"line":100},[83,2906,2570],{"class":117},[83,2908,2556],{"class":2536},[83,2910,2540],{"class":103},[83,2912,1837],{"class":117},[83,2914,2563],{"class":107},[83,2916,2548],{"class":117},[83,2918,2919,2921,2923],{"class":85,"line":124},[83,2920,2580],{"class":117},[83,2922,2573],{"class":2536},[83,2924,2548],{"class":117},[83,2926,2927,2929,2931,2934,2936],{"class":85,"line":129},[83,2928,2754],{"class":117},[83,2930,2583],{"class":2536},[83,2932,2933],{"class":117},">1.0\u003C/",[83,2935,2583],{"class":2536},[83,2937,2548],{"class":117},[83,2939,2940,2942,2944],{"class":85,"line":135},[83,2941,2754],{"class":117},[83,2943,2601],{"class":2536},[83,2945,2548],{"class":117},[83,2947,2948,2951,2954,2956,2958],{"class":85,"line":147},[83,2949,2950],{"class":117},"          \u003C",[83,2952,2953],{"class":2536},"ixx",[83,2955,2933],{"class":117},[83,2957,2953],{"class":2536},[83,2959,2548],{"class":117},[83,2961,2962,2964,2967,2969,2971],{"class":85,"line":152},[83,2963,2950],{"class":117},[83,2965,2966],{"class":2536},"iyy",[83,2968,2933],{"class":117},[83,2970,2966],{"class":2536},[83,2972,2548],{"class":117},[83,2974,2975,2977,2980,2982,2984],{"class":85,"line":158},[83,2976,2950],{"class":117},[83,2978,2979],{"class":2536},"izz",[83,2981,2933],{"class":117},[83,2983,2979],{"class":2536},[83,2985,2548],{"class":117},[83,2987,2988,2991,2993],{"class":85,"line":405},[83,2989,2990],{"class":117},"        \u003C/",[83,2992,2601],{"class":2536},[83,2994,2548],{"class":117},[83,2996,2997,2999,3001],{"class":85,"line":411},[83,2998,2814],{"class":117},[83,3000,2573],{"class":2536},[83,3002,2548],{"class":117},[83,3004,3005,3007,3009],{"class":85,"line":417},[83,3006,2651],{"class":117},[83,3008,2556],{"class":2536},[83,3010,2548],{"class":117},[83,3012,3013,3015,3017],{"class":85,"line":423},[83,3014,2660],{"class":117},[83,3016,2894],{"class":2536},[83,3018,2548],{"class":117},[83,3020,3021,3023,3025],{"class":85,"line":1814},[83,3022,2669],{"class":117},[83,3024,2877],{"class":2536},[83,3026,2548],{"class":117},[15,3028,3029],{},[19,3030,3031],{},"1. Create an sdf file",[15,3033,3034,3035,3038],{},"First, call the command ",[80,3036,3037],{},"gz sim"," to launch Gazebo, select the Empty simulation environment, then add cubes, with each cube corresponding to a wall.",[15,3040,3041],{},"The coordinates corresponding to the up, down, left, and right cubes box, box_1, box_2, and box_3 are (5.0, 0.0, 0.5), (-5.0, 0.0, 0.5), (0.0, 2.5, 0.5), and (0.0, -2.5, 0.5), respectively.",[15,3043,3044],{},"(The coordinates above refer to X, Y, Z coordinates, with no rotation.)",[15,3046,3047,3048,3050,3051,3054,3055,2359],{},"Save the file to the ",[80,3049,1601],{}," directory of the function package. The saved file must have the ",[80,3052,3053],{},".sdf"," extension; here, the file name is ",[80,3056,3057],{},"house.sdf",[15,3059,3060],{},[171,3061],{"alt":78,"src":3062},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1728.webp",[15,3064,3065],{},[171,3066],{"alt":78,"src":3067},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1729.webp",[73,3069,3071],{"className":2524,"code":3070,"language":2526,"meta":78,"style":78},"\u003Csdf version='1.10'>\n  \u003Cworld name='empty'>\n    \u003Cphysics name='1ms' type='ignored'>\n      \u003Cmax_step_size>0.001\u003C/max_step_size>\n      \u003Creal_time_factor>1\u003C/real_time_factor>\n      \u003Creal_time_update_rate>1000\u003C/real_time_update_rate>\n    \u003C/physics>\n    \u003Cplugin name='gz::sim::systems::Physics' filename='gz-sim-physics-system'/>\n    \u003Cplugin name='gz::sim::systems::UserCommands' filename='gz-sim-user-commands-system'/>\n    \u003Cplugin name='gz::sim::systems::SceneBroadcaster' filename='gz-sim-scene-broadcaster-system'/>\n    \u003Cplugin name='gz::sim::systems::Contact' filename='gz-sim-contact-system'/>\n    \u003Cgravity>0 0 -9.8\u003C/gravity>\n    \u003Cmagnetic_field>6e-06 2.3e-05 -4.2e-05\u003C/magnetic_field>\n    \u003Catmosphere type='adiabatic'/>\n    \u003Cscene>\n      \u003Cambient>0.4 0.4 0.4 1\u003C/ambient>\n      \u003Cbackground>0.7 0.7 0.7 1\u003C/background>\n      \u003Cshadows>true\u003C/shadows>\n    \u003C/scene>\n    \u003Cmodel name='ground_plane'>\n      \u003Cstatic>true\u003C/static>\n      \u003Clink name='link'>\n        \u003Ccollision name='collision'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C/normal>\n              \u003Csize>100 100\u003C/size>\n            \u003C/plane>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='visual'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C/normal>\n              \u003Csize>100 100\u003C/size>\n            \u003C/plane>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.8 0.8 0.8 1\u003C/ambient>\n            \u003Cdiffuse>0.8 0.8 0.8 1\u003C/diffuse>\n            \u003Cspecular>0.8 0.8 0.8 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cinertial>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n          \u003Cmass>100\u003C/mass>\n          \u003Cinertia>\n            \u003Cixx>1\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>1\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>1\u003C/izz>\n          \u003C/inertia>\n        \u003C/inertial>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box'>\n      \u003Cpose>5.0 0 0.5 -0 0 0\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_0'>\n      \u003Cpose>-5.0 -0 0.50000 -0 0 0\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_1'>\n      \u003Cpose>-0 -2.5 0.5 -0 -0 -0\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_2'>\n      \u003Cpose>-0 2.5 0.5 0 -0 -0\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Clight name='sun' type='directional'>\n      \u003Cpose>0 0 10 0 -0 0\u003C/pose>\n      \u003Ccast_shadows>true\u003C/cast_shadows>\n      \u003Cintensity>1\u003C/intensity>\n      \u003Cdirection>-0.5 0.1 -0.9\u003C/direction>\n      \u003Cdiffuse>0.8 0.8 0.8 1\u003C/diffuse>\n      \u003Cspecular>0.2 0.2 0.2 1\u003C/specular>\n      \u003Cattenuation>\n        \u003Crange>1000\u003C/range>\n        \u003Clinear>0.01\u003C/linear>\n        \u003Cconstant>0.90000000000000002\u003C/constant>\n        \u003Cquadratic>0.001\u003C/quadratic>\n      \u003C/attenuation>\n      \u003Cspot>\n        \u003Cinner_angle>0\u003C/inner_angle>\n        \u003Couter_angle>0\u003C/outer_angle>\n        \u003Cfalloff>0\u003C/falloff>\n      \u003C/spot>\n    \u003C/light>\n  \u003C/world>\n\u003C/sdf>\n",[80,3072,3073,3088,3103,3127,3141,3155,3169,3177,3202,3224,3246,3268,3282,3296,3312,3321,3335,3349,3363,3371,3386,3399,3414,3430,3439,3449,3464,3478,3487,3496,3505,3514,3523,3531,3540,3549,3557,3565,3581,3589,3597,3609,3621,3629,3637,3646,3659,3672,3685,3693,3701,3715,3723,3735,3748,3756,3768,3782,3795,3808,3822,3835,3844,3853,3868,3877,3890,3904,3913,3929,3943,3959,3968,3977,3991,4004,4017,4030,4043,4056,4065,4078,4091,4100,4116,4125,4135,4149,4158,4167,4176,4185,4194,4203,4212,4221,4230,4239,4255,4264,4273,4286,4295,4304,4313,4327,4340,4354,4363,4372,4385,4398,4407,4420,4433,4442,4458,4472,4487,4496,4505,4518,4531,4544,4557,4570,4583,4592,4605,4618,4627,4642,4651,4660,4673,4682,4691,4700,4709,4718,4727,4736,4745,4754,4763,4778,4787,4796,4809,4818,4827,4836,4849,4862,4875,4884,4893,4906,4919,4928,4941,4954,4963,4979,4993,5008,5017,5026,5039,5052,5065,5078,5091,5104,5113,5126,5139,5148,5163,5172,5181,5195,5204,5213,5222,5231,5240,5249,5258,5267,5276,5285,5300,5309,5318,5331,5340,5349,5358,5371,5384,5397,5406,5415,5428,5441,5450,5463,5476,5485,5501,5515,5530,5539,5548,5561,5574,5587,5600,5613,5626,5635,5648,5661,5670,5685,5694,5703,5716,5725,5734,5743,5752,5761,5770,5779,5788,5797,5806,5821,5830,5839,5852,5861,5870,5879,5892,5905,5918,5927,5936,5949,5962,5971,5984,5997,6006,6030,6044,6058,6072,6087,6100,6114,6124,6138,6153,6168,6182,6191,6201,6215,6229,6243,6252,6261,6270],{"__ignoreMap":78},[83,3074,3075,3077,3079,3081,3083,3086],{"class":85,"line":86},[83,3076,2533],{"class":117},[83,3078,2877],{"class":2536},[83,3080,2880],{"class":103},[83,3082,1837],{"class":117},[83,3084,3085],{"class":107},"'1.10'",[83,3087,2548],{"class":117},[83,3089,3090,3092,3094,3096,3098,3101],{"class":85,"line":93},[83,3091,2553],{"class":117},[83,3093,1601],{"class":2536},[83,3095,2540],{"class":103},[83,3097,1837],{"class":117},[83,3099,3100],{"class":107},"'empty'",[83,3102,2548],{"class":117},[83,3104,3105,3107,3110,3112,3114,3117,3120,3122,3125],{"class":85,"line":100},[83,3106,2570],{"class":117},[83,3108,3109],{"class":2536},"physics",[83,3111,2540],{"class":103},[83,3113,1837],{"class":117},[83,3115,3116],{"class":107},"'1ms'",[83,3118,3119],{"class":103}," type",[83,3121,1837],{"class":117},[83,3123,3124],{"class":107},"'ignored'",[83,3126,2548],{"class":117},[83,3128,3129,3131,3134,3137,3139],{"class":85,"line":124},[83,3130,2580],{"class":117},[83,3132,3133],{"class":2536},"max_step_size",[83,3135,3136],{"class":117},">0.001\u003C/",[83,3138,3133],{"class":2536},[83,3140,2548],{"class":117},[83,3142,3143,3145,3148,3151,3153],{"class":85,"line":129},[83,3144,2580],{"class":117},[83,3146,3147],{"class":2536},"real_time_factor",[83,3149,3150],{"class":117},">1\u003C/",[83,3152,3147],{"class":2536},[83,3154,2548],{"class":117},[83,3156,3157,3159,3162,3165,3167],{"class":85,"line":135},[83,3158,2580],{"class":117},[83,3160,3161],{"class":2536},"real_time_update_rate",[83,3163,3164],{"class":117},">1000\u003C/",[83,3166,3161],{"class":2536},[83,3168,2548],{"class":117},[83,3170,3171,3173,3175],{"class":85,"line":147},[83,3172,2651],{"class":117},[83,3174,3109],{"class":2536},[83,3176,2548],{"class":117},[83,3178,3179,3181,3184,3186,3188,3191,3194,3196,3199],{"class":85,"line":152},[83,3180,2570],{"class":117},[83,3182,3183],{"class":2536},"plugin",[83,3185,2540],{"class":103},[83,3187,1837],{"class":117},[83,3189,3190],{"class":107},"'gz::sim::systems::Physics'",[83,3192,3193],{"class":103}," filename",[83,3195,1837],{"class":117},[83,3197,3198],{"class":107},"'gz-sim-physics-system'",[83,3200,3201],{"class":117},"/>\n",[83,3203,3204,3206,3208,3210,3212,3215,3217,3219,3222],{"class":85,"line":158},[83,3205,2570],{"class":117},[83,3207,3183],{"class":2536},[83,3209,2540],{"class":103},[83,3211,1837],{"class":117},[83,3213,3214],{"class":107},"'gz::sim::systems::UserCommands'",[83,3216,3193],{"class":103},[83,3218,1837],{"class":117},[83,3220,3221],{"class":107},"'gz-sim-user-commands-system'",[83,3223,3201],{"class":117},[83,3225,3226,3228,3230,3232,3234,3237,3239,3241,3244],{"class":85,"line":405},[83,3227,2570],{"class":117},[83,3229,3183],{"class":2536},[83,3231,2540],{"class":103},[83,3233,1837],{"class":117},[83,3235,3236],{"class":107},"'gz::sim::systems::SceneBroadcaster'",[83,3238,3193],{"class":103},[83,3240,1837],{"class":117},[83,3242,3243],{"class":107},"'gz-sim-scene-broadcaster-system'",[83,3245,3201],{"class":117},[83,3247,3248,3250,3252,3254,3256,3259,3261,3263,3266],{"class":85,"line":411},[83,3249,2570],{"class":117},[83,3251,3183],{"class":2536},[83,3253,2540],{"class":103},[83,3255,1837],{"class":117},[83,3257,3258],{"class":107},"'gz::sim::systems::Contact'",[83,3260,3193],{"class":103},[83,3262,1837],{"class":117},[83,3264,3265],{"class":107},"'gz-sim-contact-system'",[83,3267,3201],{"class":117},[83,3269,3270,3272,3275,3278,3280],{"class":85,"line":417},[83,3271,2570],{"class":117},[83,3273,3274],{"class":2536},"gravity",[83,3276,3277],{"class":117},">0 0 -9.8\u003C/",[83,3279,3274],{"class":2536},[83,3281,2548],{"class":117},[83,3283,3284,3286,3289,3292,3294],{"class":85,"line":423},[83,3285,2570],{"class":117},[83,3287,3288],{"class":2536},"magnetic_field",[83,3290,3291],{"class":117},">6e-06 2.3e-05 -4.2e-05\u003C/",[83,3293,3288],{"class":2536},[83,3295,2548],{"class":117},[83,3297,3298,3300,3303,3305,3307,3310],{"class":85,"line":1814},[83,3299,2570],{"class":117},[83,3301,3302],{"class":2536},"atmosphere",[83,3304,3119],{"class":103},[83,3306,1837],{"class":117},[83,3308,3309],{"class":107},"'adiabatic'",[83,3311,3201],{"class":117},[83,3313,3314,3316,3319],{"class":85,"line":1826},[83,3315,2570],{"class":117},[83,3317,3318],{"class":2536},"scene",[83,3320,2548],{"class":117},[83,3322,3323,3325,3328,3331,3333],{"class":85,"line":1831},[83,3324,2580],{"class":117},[83,3326,3327],{"class":2536},"ambient",[83,3329,3330],{"class":117},">0.4 0.4 0.4 1\u003C/",[83,3332,3327],{"class":2536},[83,3334,2548],{"class":117},[83,3336,3337,3339,3342,3345,3347],{"class":85,"line":1848},[83,3338,2580],{"class":117},[83,3340,3341],{"class":2536},"background",[83,3343,3344],{"class":117},">0.7 0.7 0.7 1\u003C/",[83,3346,3341],{"class":2536},[83,3348,2548],{"class":117},[83,3350,3351,3353,3356,3359,3361],{"class":85,"line":1863},[83,3352,2580],{"class":117},[83,3354,3355],{"class":2536},"shadows",[83,3357,3358],{"class":117},">true\u003C/",[83,3360,3355],{"class":2536},[83,3362,2548],{"class":117},[83,3364,3365,3367,3369],{"class":85,"line":1885},[83,3366,2651],{"class":117},[83,3368,3318],{"class":2536},[83,3370,2548],{"class":117},[83,3372,3373,3375,3377,3379,3381,3384],{"class":85,"line":1890},[83,3374,2570],{"class":117},[83,3376,2894],{"class":2536},[83,3378,2540],{"class":103},[83,3380,1837],{"class":117},[83,3382,3383],{"class":107},"'ground_plane'",[83,3385,2548],{"class":117},[83,3387,3388,3390,3393,3395,3397],{"class":85,"line":1901},[83,3389,2580],{"class":117},[83,3391,3392],{"class":2536},"static",[83,3394,3358],{"class":117},[83,3396,3392],{"class":2536},[83,3398,2548],{"class":117},[83,3400,3401,3403,3405,3407,3409,3412],{"class":85,"line":1907},[83,3402,2580],{"class":117},[83,3404,2556],{"class":2536},[83,3406,2540],{"class":103},[83,3408,1837],{"class":117},[83,3410,3411],{"class":107},"'link'",[83,3413,2548],{"class":117},[83,3415,3416,3418,3421,3423,3425,3428],{"class":85,"line":1925},[83,3417,2754],{"class":117},[83,3419,3420],{"class":2536},"collision",[83,3422,2540],{"class":103},[83,3424,1837],{"class":117},[83,3426,3427],{"class":107},"'collision'",[83,3429,2548],{"class":117},[83,3431,3432,3434,3437],{"class":85,"line":1937},[83,3433,2950],{"class":117},[83,3435,3436],{"class":2536},"geometry",[83,3438,2548],{"class":117},[83,3440,3441,3444,3447],{"class":85,"line":1955},[83,3442,3443],{"class":117},"            \u003C",[83,3445,3446],{"class":2536},"plane",[83,3448,2548],{"class":117},[83,3450,3451,3454,3457,3460,3462],{"class":85,"line":1961},[83,3452,3453],{"class":117},"              \u003C",[83,3455,3456],{"class":2536},"normal",[83,3458,3459],{"class":117},">0 0 1\u003C/",[83,3461,3456],{"class":2536},[83,3463,2548],{"class":117},[83,3465,3466,3468,3471,3474,3476],{"class":85,"line":1967},[83,3467,3453],{"class":117},[83,3469,3470],{"class":2536},"size",[83,3472,3473],{"class":117},">100 100\u003C/",[83,3475,3470],{"class":2536},[83,3477,2548],{"class":117},[83,3479,3480,3483,3485],{"class":85,"line":1972},[83,3481,3482],{"class":117},"            \u003C/",[83,3484,3446],{"class":2536},[83,3486,2548],{"class":117},[83,3488,3489,3492,3494],{"class":85,"line":1978},[83,3490,3491],{"class":117},"          \u003C/",[83,3493,3436],{"class":2536},[83,3495,2548],{"class":117},[83,3497,3498,3500,3503],{"class":85,"line":1989},[83,3499,2950],{"class":117},[83,3501,3502],{"class":2536},"surface",[83,3504,2548],{"class":117},[83,3506,3507,3509,3512],{"class":85,"line":2003},[83,3508,3443],{"class":117},[83,3510,3511],{"class":2536},"friction",[83,3513,2548],{"class":117},[83,3515,3516,3518,3521],{"class":85,"line":2015},[83,3517,3453],{"class":117},[83,3519,3520],{"class":2536},"ode",[83,3522,3201],{"class":117},[83,3524,3525,3527,3529],{"class":85,"line":2042},[83,3526,3482],{"class":117},[83,3528,3511],{"class":2536},[83,3530,2548],{"class":117},[83,3532,3533,3535,3538],{"class":85,"line":2058},[83,3534,3443],{"class":117},[83,3536,3537],{"class":2536},"bounce",[83,3539,3201],{"class":117},[83,3541,3542,3544,3547],{"class":85,"line":2063},[83,3543,3443],{"class":117},[83,3545,3546],{"class":2536},"contact",[83,3548,3201],{"class":117},[83,3550,3551,3553,3555],{"class":85,"line":2068},[83,3552,3491],{"class":117},[83,3554,3502],{"class":2536},[83,3556,2548],{"class":117},[83,3558,3559,3561,3563],{"class":85,"line":2074},[83,3560,2990],{"class":117},[83,3562,3420],{"class":2536},[83,3564,2548],{"class":117},[83,3566,3567,3569,3572,3574,3576,3579],{"class":85,"line":2084},[83,3568,2754],{"class":117},[83,3570,3571],{"class":2536},"visual",[83,3573,2540],{"class":103},[83,3575,1837],{"class":117},[83,3577,3578],{"class":107},"'visual'",[83,3580,2548],{"class":117},[83,3582,3583,3585,3587],{"class":85,"line":2097},[83,3584,2950],{"class":117},[83,3586,3436],{"class":2536},[83,3588,2548],{"class":117},[83,3590,3591,3593,3595],{"class":85,"line":2110},[83,3592,3443],{"class":117},[83,3594,3446],{"class":2536},[83,3596,2548],{"class":117},[83,3598,3599,3601,3603,3605,3607],{"class":85,"line":2125},[83,3600,3453],{"class":117},[83,3602,3456],{"class":2536},[83,3604,3459],{"class":117},[83,3606,3456],{"class":2536},[83,3608,2548],{"class":117},[83,3610,3611,3613,3615,3617,3619],{"class":85,"line":2133},[83,3612,3453],{"class":117},[83,3614,3470],{"class":2536},[83,3616,3473],{"class":117},[83,3618,3470],{"class":2536},[83,3620,2548],{"class":117},[83,3622,3623,3625,3627],{"class":85,"line":2141},[83,3624,3482],{"class":117},[83,3626,3446],{"class":2536},[83,3628,2548],{"class":117},[83,3630,3631,3633,3635],{"class":85,"line":2147},[83,3632,3491],{"class":117},[83,3634,3436],{"class":2536},[83,3636,2548],{"class":117},[83,3638,3639,3641,3644],{"class":85,"line":2169},[83,3640,2950],{"class":117},[83,3642,3643],{"class":2536},"material",[83,3645,2548],{"class":117},[83,3647,3648,3650,3652,3655,3657],{"class":85,"line":2180},[83,3649,3443],{"class":117},[83,3651,3327],{"class":2536},[83,3653,3654],{"class":117},">0.8 0.8 0.8 1\u003C/",[83,3656,3327],{"class":2536},[83,3658,2548],{"class":117},[83,3660,3661,3663,3666,3668,3670],{"class":85,"line":2197},[83,3662,3443],{"class":117},[83,3664,3665],{"class":2536},"diffuse",[83,3667,3654],{"class":117},[83,3669,3665],{"class":2536},[83,3671,2548],{"class":117},[83,3673,3674,3676,3679,3681,3683],{"class":85,"line":2212},[83,3675,3443],{"class":117},[83,3677,3678],{"class":2536},"specular",[83,3680,3654],{"class":117},[83,3682,3678],{"class":2536},[83,3684,2548],{"class":117},[83,3686,3687,3689,3691],{"class":85,"line":2218},[83,3688,3491],{"class":117},[83,3690,3643],{"class":2536},[83,3692,2548],{"class":117},[83,3694,3695,3697,3699],{"class":85,"line":2229},[83,3696,2990],{"class":117},[83,3698,3571],{"class":2536},[83,3700,2548],{"class":117},[83,3702,3703,3705,3708,3711,3713],{"class":85,"line":2234},[83,3704,2754],{"class":117},[83,3706,3707],{"class":2536},"pose",[83,3709,3710],{"class":117},">0 0 0 0 -0 0\u003C/",[83,3712,3707],{"class":2536},[83,3714,2548],{"class":117},[83,3716,3717,3719,3721],{"class":85,"line":2239},[83,3718,2754],{"class":117},[83,3720,2573],{"class":2536},[83,3722,2548],{"class":117},[83,3724,3725,3727,3729,3731,3733],{"class":85,"line":2248},[83,3726,2950],{"class":117},[83,3728,3707],{"class":2536},[83,3730,3710],{"class":117},[83,3732,3707],{"class":2536},[83,3734,2548],{"class":117},[83,3736,3737,3739,3741,3744,3746],{"class":85,"line":2254},[83,3738,2950],{"class":117},[83,3740,2583],{"class":2536},[83,3742,3743],{"class":117},">100\u003C/",[83,3745,2583],{"class":2536},[83,3747,2548],{"class":117},[83,3749,3750,3752,3754],{"class":85,"line":2274},[83,3751,2950],{"class":117},[83,3753,2601],{"class":2536},[83,3755,2548],{"class":117},[83,3757,3758,3760,3762,3764,3766],{"class":85,"line":2287},[83,3759,3443],{"class":117},[83,3761,2953],{"class":2536},[83,3763,3150],{"class":117},[83,3765,2953],{"class":2536},[83,3767,2548],{"class":117},[83,3769,3770,3772,3775,3778,3780],{"class":85,"line":2293},[83,3771,3443],{"class":117},[83,3773,3774],{"class":2536},"ixy",[83,3776,3777],{"class":117},">0\u003C/",[83,3779,3774],{"class":2536},[83,3781,2548],{"class":117},[83,3783,3784,3786,3789,3791,3793],{"class":85,"line":2299},[83,3785,3443],{"class":117},[83,3787,3788],{"class":2536},"ixz",[83,3790,3777],{"class":117},[83,3792,3788],{"class":2536},[83,3794,2548],{"class":117},[83,3796,3798,3800,3802,3804,3806],{"class":85,"line":3797},59,[83,3799,3443],{"class":117},[83,3801,2966],{"class":2536},[83,3803,3150],{"class":117},[83,3805,2966],{"class":2536},[83,3807,2548],{"class":117},[83,3809,3811,3813,3816,3818,3820],{"class":85,"line":3810},60,[83,3812,3443],{"class":117},[83,3814,3815],{"class":2536},"iyz",[83,3817,3777],{"class":117},[83,3819,3815],{"class":2536},[83,3821,2548],{"class":117},[83,3823,3825,3827,3829,3831,3833],{"class":85,"line":3824},61,[83,3826,3443],{"class":117},[83,3828,2979],{"class":2536},[83,3830,3150],{"class":117},[83,3832,2979],{"class":2536},[83,3834,2548],{"class":117},[83,3836,3838,3840,3842],{"class":85,"line":3837},62,[83,3839,3491],{"class":117},[83,3841,2601],{"class":2536},[83,3843,2548],{"class":117},[83,3845,3847,3849,3851],{"class":85,"line":3846},63,[83,3848,2990],{"class":117},[83,3850,2573],{"class":2536},[83,3852,2548],{"class":117},[83,3854,3856,3858,3861,3864,3866],{"class":85,"line":3855},64,[83,3857,2754],{"class":117},[83,3859,3860],{"class":2536},"enable_wind",[83,3862,3863],{"class":117},">false\u003C/",[83,3865,3860],{"class":2536},[83,3867,2548],{"class":117},[83,3869,3871,3873,3875],{"class":85,"line":3870},65,[83,3872,2814],{"class":117},[83,3874,2556],{"class":2536},[83,3876,2548],{"class":117},[83,3878,3880,3882,3884,3886,3888],{"class":85,"line":3879},66,[83,3881,2580],{"class":117},[83,3883,3707],{"class":2536},[83,3885,3710],{"class":117},[83,3887,3707],{"class":2536},[83,3889,2548],{"class":117},[83,3891,3893,3895,3898,3900,3902],{"class":85,"line":3892},67,[83,3894,2580],{"class":117},[83,3896,3897],{"class":2536},"self_collide",[83,3899,3863],{"class":117},[83,3901,3897],{"class":2536},[83,3903,2548],{"class":117},[83,3905,3907,3909,3911],{"class":85,"line":3906},68,[83,3908,2651],{"class":117},[83,3910,2894],{"class":2536},[83,3912,2548],{"class":117},[83,3914,3916,3918,3920,3922,3924,3927],{"class":85,"line":3915},69,[83,3917,2570],{"class":117},[83,3919,2894],{"class":2536},[83,3921,2540],{"class":103},[83,3923,1837],{"class":117},[83,3925,3926],{"class":107},"'box'",[83,3928,2548],{"class":117},[83,3930,3932,3934,3936,3939,3941],{"class":85,"line":3931},70,[83,3933,2580],{"class":117},[83,3935,3707],{"class":2536},[83,3937,3938],{"class":117},">5.0 0 0.5 -0 0 0\u003C/",[83,3940,3707],{"class":2536},[83,3942,2548],{"class":117},[83,3944,3946,3948,3950,3952,3954,3957],{"class":85,"line":3945},71,[83,3947,2580],{"class":117},[83,3949,2556],{"class":2536},[83,3951,2540],{"class":103},[83,3953,1837],{"class":117},[83,3955,3956],{"class":107},"'box_link'",[83,3958,2548],{"class":117},[83,3960,3962,3964,3966],{"class":85,"line":3961},72,[83,3963,2754],{"class":117},[83,3965,2573],{"class":2536},[83,3967,2548],{"class":117},[83,3969,3971,3973,3975],{"class":85,"line":3970},73,[83,3972,2950],{"class":117},[83,3974,2601],{"class":2536},[83,3976,2548],{"class":117},[83,3978,3980,3982,3984,3987,3989],{"class":85,"line":3979},74,[83,3981,3443],{"class":117},[83,3983,2953],{"class":2536},[83,3985,3986],{"class":117},">16.666\u003C/",[83,3988,2953],{"class":2536},[83,3990,2548],{"class":117},[83,3992,3994,3996,3998,4000,4002],{"class":85,"line":3993},75,[83,3995,3443],{"class":117},[83,3997,3774],{"class":2536},[83,3999,3777],{"class":117},[83,4001,3774],{"class":2536},[83,4003,2548],{"class":117},[83,4005,4007,4009,4011,4013,4015],{"class":85,"line":4006},76,[83,4008,3443],{"class":117},[83,4010,3788],{"class":2536},[83,4012,3777],{"class":117},[83,4014,3788],{"class":2536},[83,4016,2548],{"class":117},[83,4018,4020,4022,4024,4026,4028],{"class":85,"line":4019},77,[83,4021,3443],{"class":117},[83,4023,2966],{"class":2536},[83,4025,3986],{"class":117},[83,4027,2966],{"class":2536},[83,4029,2548],{"class":117},[83,4031,4033,4035,4037,4039,4041],{"class":85,"line":4032},78,[83,4034,3443],{"class":117},[83,4036,3815],{"class":2536},[83,4038,3777],{"class":117},[83,4040,3815],{"class":2536},[83,4042,2548],{"class":117},[83,4044,4046,4048,4050,4052,4054],{"class":85,"line":4045},79,[83,4047,3443],{"class":117},[83,4049,2979],{"class":2536},[83,4051,3986],{"class":117},[83,4053,2979],{"class":2536},[83,4055,2548],{"class":117},[83,4057,4059,4061,4063],{"class":85,"line":4058},80,[83,4060,3491],{"class":117},[83,4062,2601],{"class":2536},[83,4064,2548],{"class":117},[83,4066,4068,4070,4072,4074,4076],{"class":85,"line":4067},81,[83,4069,2950],{"class":117},[83,4071,2583],{"class":2536},[83,4073,3743],{"class":117},[83,4075,2583],{"class":2536},[83,4077,2548],{"class":117},[83,4079,4081,4083,4085,4087,4089],{"class":85,"line":4080},82,[83,4082,2950],{"class":117},[83,4084,3707],{"class":2536},[83,4086,3710],{"class":117},[83,4088,3707],{"class":2536},[83,4090,2548],{"class":117},[83,4092,4094,4096,4098],{"class":85,"line":4093},83,[83,4095,2990],{"class":117},[83,4097,2573],{"class":2536},[83,4099,2548],{"class":117},[83,4101,4103,4105,4107,4109,4111,4114],{"class":85,"line":4102},84,[83,4104,2754],{"class":117},[83,4106,3420],{"class":2536},[83,4108,2540],{"class":103},[83,4110,1837],{"class":117},[83,4112,4113],{"class":107},"'box_collision'",[83,4115,2548],{"class":117},[83,4117,4119,4121,4123],{"class":85,"line":4118},85,[83,4120,2950],{"class":117},[83,4122,3436],{"class":2536},[83,4124,2548],{"class":117},[83,4126,4128,4130,4133],{"class":85,"line":4127},86,[83,4129,3443],{"class":117},[83,4131,4132],{"class":2536},"box",[83,4134,2548],{"class":117},[83,4136,4138,4140,4142,4145,4147],{"class":85,"line":4137},87,[83,4139,3453],{"class":117},[83,4141,3470],{"class":2536},[83,4143,4144],{"class":117},">0.1 5 1\u003C/",[83,4146,3470],{"class":2536},[83,4148,2548],{"class":117},[83,4150,4152,4154,4156],{"class":85,"line":4151},88,[83,4153,3482],{"class":117},[83,4155,4132],{"class":2536},[83,4157,2548],{"class":117},[83,4159,4161,4163,4165],{"class":85,"line":4160},89,[83,4162,3491],{"class":117},[83,4164,3436],{"class":2536},[83,4166,2548],{"class":117},[83,4168,4170,4172,4174],{"class":85,"line":4169},90,[83,4171,2950],{"class":117},[83,4173,3502],{"class":2536},[83,4175,2548],{"class":117},[83,4177,4179,4181,4183],{"class":85,"line":4178},91,[83,4180,3443],{"class":117},[83,4182,3511],{"class":2536},[83,4184,2548],{"class":117},[83,4186,4188,4190,4192],{"class":85,"line":4187},92,[83,4189,3453],{"class":117},[83,4191,3520],{"class":2536},[83,4193,3201],{"class":117},[83,4195,4197,4199,4201],{"class":85,"line":4196},93,[83,4198,3482],{"class":117},[83,4200,3511],{"class":2536},[83,4202,2548],{"class":117},[83,4204,4206,4208,4210],{"class":85,"line":4205},94,[83,4207,3443],{"class":117},[83,4209,3537],{"class":2536},[83,4211,3201],{"class":117},[83,4213,4215,4217,4219],{"class":85,"line":4214},95,[83,4216,3443],{"class":117},[83,4218,3546],{"class":2536},[83,4220,3201],{"class":117},[83,4222,4224,4226,4228],{"class":85,"line":4223},96,[83,4225,3491],{"class":117},[83,4227,3502],{"class":2536},[83,4229,2548],{"class":117},[83,4231,4233,4235,4237],{"class":85,"line":4232},97,[83,4234,2990],{"class":117},[83,4236,3420],{"class":2536},[83,4238,2548],{"class":117},[83,4240,4242,4244,4246,4248,4250,4253],{"class":85,"line":4241},98,[83,4243,2754],{"class":117},[83,4245,3571],{"class":2536},[83,4247,2540],{"class":103},[83,4249,1837],{"class":117},[83,4251,4252],{"class":107},"'box_visual'",[83,4254,2548],{"class":117},[83,4256,4258,4260,4262],{"class":85,"line":4257},99,[83,4259,2950],{"class":117},[83,4261,3436],{"class":2536},[83,4263,2548],{"class":117},[83,4265,4267,4269,4271],{"class":85,"line":4266},100,[83,4268,3443],{"class":117},[83,4270,4132],{"class":2536},[83,4272,2548],{"class":117},[83,4274,4276,4278,4280,4282,4284],{"class":85,"line":4275},101,[83,4277,3453],{"class":117},[83,4279,3470],{"class":2536},[83,4281,4144],{"class":117},[83,4283,3470],{"class":2536},[83,4285,2548],{"class":117},[83,4287,4289,4291,4293],{"class":85,"line":4288},102,[83,4290,3482],{"class":117},[83,4292,4132],{"class":2536},[83,4294,2548],{"class":117},[83,4296,4298,4300,4302],{"class":85,"line":4297},103,[83,4299,3491],{"class":117},[83,4301,3436],{"class":2536},[83,4303,2548],{"class":117},[83,4305,4307,4309,4311],{"class":85,"line":4306},104,[83,4308,2950],{"class":117},[83,4310,3643],{"class":2536},[83,4312,2548],{"class":117},[83,4314,4316,4318,4320,4323,4325],{"class":85,"line":4315},105,[83,4317,3443],{"class":117},[83,4319,3327],{"class":2536},[83,4321,4322],{"class":117},">0.3 0.3 0.3 1\u003C/",[83,4324,3327],{"class":2536},[83,4326,2548],{"class":117},[83,4328,4330,4332,4334,4336,4338],{"class":85,"line":4329},106,[83,4331,3443],{"class":117},[83,4333,3665],{"class":2536},[83,4335,3344],{"class":117},[83,4337,3665],{"class":2536},[83,4339,2548],{"class":117},[83,4341,4343,4345,4347,4350,4352],{"class":85,"line":4342},107,[83,4344,3443],{"class":117},[83,4346,3678],{"class":2536},[83,4348,4349],{"class":117},">1 1 1 1\u003C/",[83,4351,3678],{"class":2536},[83,4353,2548],{"class":117},[83,4355,4357,4359,4361],{"class":85,"line":4356},108,[83,4358,3491],{"class":117},[83,4360,3643],{"class":2536},[83,4362,2548],{"class":117},[83,4364,4366,4368,4370],{"class":85,"line":4365},109,[83,4367,2990],{"class":117},[83,4369,3571],{"class":2536},[83,4371,2548],{"class":117},[83,4373,4375,4377,4379,4381,4383],{"class":85,"line":4374},110,[83,4376,2754],{"class":117},[83,4378,3707],{"class":2536},[83,4380,3710],{"class":117},[83,4382,3707],{"class":2536},[83,4384,2548],{"class":117},[83,4386,4388,4390,4392,4394,4396],{"class":85,"line":4387},111,[83,4389,2754],{"class":117},[83,4391,3860],{"class":2536},[83,4393,3863],{"class":117},[83,4395,3860],{"class":2536},[83,4397,2548],{"class":117},[83,4399,4401,4403,4405],{"class":85,"line":4400},112,[83,4402,2814],{"class":117},[83,4404,2556],{"class":2536},[83,4406,2548],{"class":117},[83,4408,4410,4412,4414,4416,4418],{"class":85,"line":4409},113,[83,4411,2580],{"class":117},[83,4413,3392],{"class":2536},[83,4415,3358],{"class":117},[83,4417,3392],{"class":2536},[83,4419,2548],{"class":117},[83,4421,4423,4425,4427,4429,4431],{"class":85,"line":4422},114,[83,4424,2580],{"class":117},[83,4426,3897],{"class":2536},[83,4428,3863],{"class":117},[83,4430,3897],{"class":2536},[83,4432,2548],{"class":117},[83,4434,4436,4438,4440],{"class":85,"line":4435},115,[83,4437,2651],{"class":117},[83,4439,2894],{"class":2536},[83,4441,2548],{"class":117},[83,4443,4445,4447,4449,4451,4453,4456],{"class":85,"line":4444},116,[83,4446,2570],{"class":117},[83,4448,2894],{"class":2536},[83,4450,2540],{"class":103},[83,4452,1837],{"class":117},[83,4454,4455],{"class":107},"'box_0'",[83,4457,2548],{"class":117},[83,4459,4461,4463,4465,4468,4470],{"class":85,"line":4460},117,[83,4462,2580],{"class":117},[83,4464,3707],{"class":2536},[83,4466,4467],{"class":117},">-5.0 -0 0.50000 -0 0 0\u003C/",[83,4469,3707],{"class":2536},[83,4471,2548],{"class":117},[83,4473,4475,4477,4479,4481,4483,4485],{"class":85,"line":4474},118,[83,4476,2580],{"class":117},[83,4478,2556],{"class":2536},[83,4480,2540],{"class":103},[83,4482,1837],{"class":117},[83,4484,3956],{"class":107},[83,4486,2548],{"class":117},[83,4488,4490,4492,4494],{"class":85,"line":4489},119,[83,4491,2754],{"class":117},[83,4493,2573],{"class":2536},[83,4495,2548],{"class":117},[83,4497,4499,4501,4503],{"class":85,"line":4498},120,[83,4500,2950],{"class":117},[83,4502,2601],{"class":2536},[83,4504,2548],{"class":117},[83,4506,4508,4510,4512,4514,4516],{"class":85,"line":4507},121,[83,4509,3443],{"class":117},[83,4511,2953],{"class":2536},[83,4513,3986],{"class":117},[83,4515,2953],{"class":2536},[83,4517,2548],{"class":117},[83,4519,4521,4523,4525,4527,4529],{"class":85,"line":4520},122,[83,4522,3443],{"class":117},[83,4524,3774],{"class":2536},[83,4526,3777],{"class":117},[83,4528,3774],{"class":2536},[83,4530,2548],{"class":117},[83,4532,4534,4536,4538,4540,4542],{"class":85,"line":4533},123,[83,4535,3443],{"class":117},[83,4537,3788],{"class":2536},[83,4539,3777],{"class":117},[83,4541,3788],{"class":2536},[83,4543,2548],{"class":117},[83,4545,4547,4549,4551,4553,4555],{"class":85,"line":4546},124,[83,4548,3443],{"class":117},[83,4550,2966],{"class":2536},[83,4552,3986],{"class":117},[83,4554,2966],{"class":2536},[83,4556,2548],{"class":117},[83,4558,4560,4562,4564,4566,4568],{"class":85,"line":4559},125,[83,4561,3443],{"class":117},[83,4563,3815],{"class":2536},[83,4565,3777],{"class":117},[83,4567,3815],{"class":2536},[83,4569,2548],{"class":117},[83,4571,4573,4575,4577,4579,4581],{"class":85,"line":4572},126,[83,4574,3443],{"class":117},[83,4576,2979],{"class":2536},[83,4578,3986],{"class":117},[83,4580,2979],{"class":2536},[83,4582,2548],{"class":117},[83,4584,4586,4588,4590],{"class":85,"line":4585},127,[83,4587,3491],{"class":117},[83,4589,2601],{"class":2536},[83,4591,2548],{"class":117},[83,4593,4595,4597,4599,4601,4603],{"class":85,"line":4594},128,[83,4596,2950],{"class":117},[83,4598,2583],{"class":2536},[83,4600,3743],{"class":117},[83,4602,2583],{"class":2536},[83,4604,2548],{"class":117},[83,4606,4608,4610,4612,4614,4616],{"class":85,"line":4607},129,[83,4609,2950],{"class":117},[83,4611,3707],{"class":2536},[83,4613,3710],{"class":117},[83,4615,3707],{"class":2536},[83,4617,2548],{"class":117},[83,4619,4621,4623,4625],{"class":85,"line":4620},130,[83,4622,2990],{"class":117},[83,4624,2573],{"class":2536},[83,4626,2548],{"class":117},[83,4628,4630,4632,4634,4636,4638,4640],{"class":85,"line":4629},131,[83,4631,2754],{"class":117},[83,4633,3420],{"class":2536},[83,4635,2540],{"class":103},[83,4637,1837],{"class":117},[83,4639,4113],{"class":107},[83,4641,2548],{"class":117},[83,4643,4645,4647,4649],{"class":85,"line":4644},132,[83,4646,2950],{"class":117},[83,4648,3436],{"class":2536},[83,4650,2548],{"class":117},[83,4652,4654,4656,4658],{"class":85,"line":4653},133,[83,4655,3443],{"class":117},[83,4657,4132],{"class":2536},[83,4659,2548],{"class":117},[83,4661,4663,4665,4667,4669,4671],{"class":85,"line":4662},134,[83,4664,3453],{"class":117},[83,4666,3470],{"class":2536},[83,4668,4144],{"class":117},[83,4670,3470],{"class":2536},[83,4672,2548],{"class":117},[83,4674,4676,4678,4680],{"class":85,"line":4675},135,[83,4677,3482],{"class":117},[83,4679,4132],{"class":2536},[83,4681,2548],{"class":117},[83,4683,4685,4687,4689],{"class":85,"line":4684},136,[83,4686,3491],{"class":117},[83,4688,3436],{"class":2536},[83,4690,2548],{"class":117},[83,4692,4694,4696,4698],{"class":85,"line":4693},137,[83,4695,2950],{"class":117},[83,4697,3502],{"class":2536},[83,4699,2548],{"class":117},[83,4701,4703,4705,4707],{"class":85,"line":4702},138,[83,4704,3443],{"class":117},[83,4706,3511],{"class":2536},[83,4708,2548],{"class":117},[83,4710,4712,4714,4716],{"class":85,"line":4711},139,[83,4713,3453],{"class":117},[83,4715,3520],{"class":2536},[83,4717,3201],{"class":117},[83,4719,4721,4723,4725],{"class":85,"line":4720},140,[83,4722,3482],{"class":117},[83,4724,3511],{"class":2536},[83,4726,2548],{"class":117},[83,4728,4730,4732,4734],{"class":85,"line":4729},141,[83,4731,3443],{"class":117},[83,4733,3537],{"class":2536},[83,4735,3201],{"class":117},[83,4737,4739,4741,4743],{"class":85,"line":4738},142,[83,4740,3443],{"class":117},[83,4742,3546],{"class":2536},[83,4744,3201],{"class":117},[83,4746,4748,4750,4752],{"class":85,"line":4747},143,[83,4749,3491],{"class":117},[83,4751,3502],{"class":2536},[83,4753,2548],{"class":117},[83,4755,4757,4759,4761],{"class":85,"line":4756},144,[83,4758,2990],{"class":117},[83,4760,3420],{"class":2536},[83,4762,2548],{"class":117},[83,4764,4766,4768,4770,4772,4774,4776],{"class":85,"line":4765},145,[83,4767,2754],{"class":117},[83,4769,3571],{"class":2536},[83,4771,2540],{"class":103},[83,4773,1837],{"class":117},[83,4775,4252],{"class":107},[83,4777,2548],{"class":117},[83,4779,4781,4783,4785],{"class":85,"line":4780},146,[83,4782,2950],{"class":117},[83,4784,3436],{"class":2536},[83,4786,2548],{"class":117},[83,4788,4790,4792,4794],{"class":85,"line":4789},147,[83,4791,3443],{"class":117},[83,4793,4132],{"class":2536},[83,4795,2548],{"class":117},[83,4797,4799,4801,4803,4805,4807],{"class":85,"line":4798},148,[83,4800,3453],{"class":117},[83,4802,3470],{"class":2536},[83,4804,4144],{"class":117},[83,4806,3470],{"class":2536},[83,4808,2548],{"class":117},[83,4810,4812,4814,4816],{"class":85,"line":4811},149,[83,4813,3482],{"class":117},[83,4815,4132],{"class":2536},[83,4817,2548],{"class":117},[83,4819,4821,4823,4825],{"class":85,"line":4820},150,[83,4822,3491],{"class":117},[83,4824,3436],{"class":2536},[83,4826,2548],{"class":117},[83,4828,4830,4832,4834],{"class":85,"line":4829},151,[83,4831,2950],{"class":117},[83,4833,3643],{"class":2536},[83,4835,2548],{"class":117},[83,4837,4839,4841,4843,4845,4847],{"class":85,"line":4838},152,[83,4840,3443],{"class":117},[83,4842,3327],{"class":2536},[83,4844,4322],{"class":117},[83,4846,3327],{"class":2536},[83,4848,2548],{"class":117},[83,4850,4852,4854,4856,4858,4860],{"class":85,"line":4851},153,[83,4853,3443],{"class":117},[83,4855,3665],{"class":2536},[83,4857,3344],{"class":117},[83,4859,3665],{"class":2536},[83,4861,2548],{"class":117},[83,4863,4865,4867,4869,4871,4873],{"class":85,"line":4864},154,[83,4866,3443],{"class":117},[83,4868,3678],{"class":2536},[83,4870,4349],{"class":117},[83,4872,3678],{"class":2536},[83,4874,2548],{"class":117},[83,4876,4878,4880,4882],{"class":85,"line":4877},155,[83,4879,3491],{"class":117},[83,4881,3643],{"class":2536},[83,4883,2548],{"class":117},[83,4885,4887,4889,4891],{"class":85,"line":4886},156,[83,4888,2990],{"class":117},[83,4890,3571],{"class":2536},[83,4892,2548],{"class":117},[83,4894,4896,4898,4900,4902,4904],{"class":85,"line":4895},157,[83,4897,2754],{"class":117},[83,4899,3707],{"class":2536},[83,4901,3710],{"class":117},[83,4903,3707],{"class":2536},[83,4905,2548],{"class":117},[83,4907,4909,4911,4913,4915,4917],{"class":85,"line":4908},158,[83,4910,2754],{"class":117},[83,4912,3860],{"class":2536},[83,4914,3863],{"class":117},[83,4916,3860],{"class":2536},[83,4918,2548],{"class":117},[83,4920,4922,4924,4926],{"class":85,"line":4921},159,[83,4923,2814],{"class":117},[83,4925,2556],{"class":2536},[83,4927,2548],{"class":117},[83,4929,4931,4933,4935,4937,4939],{"class":85,"line":4930},160,[83,4932,2580],{"class":117},[83,4934,3392],{"class":2536},[83,4936,3358],{"class":117},[83,4938,3392],{"class":2536},[83,4940,2548],{"class":117},[83,4942,4944,4946,4948,4950,4952],{"class":85,"line":4943},161,[83,4945,2580],{"class":117},[83,4947,3897],{"class":2536},[83,4949,3863],{"class":117},[83,4951,3897],{"class":2536},[83,4953,2548],{"class":117},[83,4955,4957,4959,4961],{"class":85,"line":4956},162,[83,4958,2651],{"class":117},[83,4960,2894],{"class":2536},[83,4962,2548],{"class":117},[83,4964,4966,4968,4970,4972,4974,4977],{"class":85,"line":4965},163,[83,4967,2570],{"class":117},[83,4969,2894],{"class":2536},[83,4971,2540],{"class":103},[83,4973,1837],{"class":117},[83,4975,4976],{"class":107},"'box_1'",[83,4978,2548],{"class":117},[83,4980,4982,4984,4986,4989,4991],{"class":85,"line":4981},164,[83,4983,2580],{"class":117},[83,4985,3707],{"class":2536},[83,4987,4988],{"class":117},">-0 -2.5 0.5 -0 -0 -0\u003C/",[83,4990,3707],{"class":2536},[83,4992,2548],{"class":117},[83,4994,4996,4998,5000,5002,5004,5006],{"class":85,"line":4995},165,[83,4997,2580],{"class":117},[83,4999,2556],{"class":2536},[83,5001,2540],{"class":103},[83,5003,1837],{"class":117},[83,5005,3956],{"class":107},[83,5007,2548],{"class":117},[83,5009,5011,5013,5015],{"class":85,"line":5010},166,[83,5012,2754],{"class":117},[83,5014,2573],{"class":2536},[83,5016,2548],{"class":117},[83,5018,5020,5022,5024],{"class":85,"line":5019},167,[83,5021,2950],{"class":117},[83,5023,2601],{"class":2536},[83,5025,2548],{"class":117},[83,5027,5029,5031,5033,5035,5037],{"class":85,"line":5028},168,[83,5030,3443],{"class":117},[83,5032,2953],{"class":2536},[83,5034,3986],{"class":117},[83,5036,2953],{"class":2536},[83,5038,2548],{"class":117},[83,5040,5042,5044,5046,5048,5050],{"class":85,"line":5041},169,[83,5043,3443],{"class":117},[83,5045,3774],{"class":2536},[83,5047,3777],{"class":117},[83,5049,3774],{"class":2536},[83,5051,2548],{"class":117},[83,5053,5055,5057,5059,5061,5063],{"class":85,"line":5054},170,[83,5056,3443],{"class":117},[83,5058,3788],{"class":2536},[83,5060,3777],{"class":117},[83,5062,3788],{"class":2536},[83,5064,2548],{"class":117},[83,5066,5068,5070,5072,5074,5076],{"class":85,"line":5067},171,[83,5069,3443],{"class":117},[83,5071,2966],{"class":2536},[83,5073,3986],{"class":117},[83,5075,2966],{"class":2536},[83,5077,2548],{"class":117},[83,5079,5081,5083,5085,5087,5089],{"class":85,"line":5080},172,[83,5082,3443],{"class":117},[83,5084,3815],{"class":2536},[83,5086,3777],{"class":117},[83,5088,3815],{"class":2536},[83,5090,2548],{"class":117},[83,5092,5094,5096,5098,5100,5102],{"class":85,"line":5093},173,[83,5095,3443],{"class":117},[83,5097,2979],{"class":2536},[83,5099,3986],{"class":117},[83,5101,2979],{"class":2536},[83,5103,2548],{"class":117},[83,5105,5107,5109,5111],{"class":85,"line":5106},174,[83,5108,3491],{"class":117},[83,5110,2601],{"class":2536},[83,5112,2548],{"class":117},[83,5114,5116,5118,5120,5122,5124],{"class":85,"line":5115},175,[83,5117,2950],{"class":117},[83,5119,2583],{"class":2536},[83,5121,3743],{"class":117},[83,5123,2583],{"class":2536},[83,5125,2548],{"class":117},[83,5127,5129,5131,5133,5135,5137],{"class":85,"line":5128},176,[83,5130,2950],{"class":117},[83,5132,3707],{"class":2536},[83,5134,3710],{"class":117},[83,5136,3707],{"class":2536},[83,5138,2548],{"class":117},[83,5140,5142,5144,5146],{"class":85,"line":5141},177,[83,5143,2990],{"class":117},[83,5145,2573],{"class":2536},[83,5147,2548],{"class":117},[83,5149,5151,5153,5155,5157,5159,5161],{"class":85,"line":5150},178,[83,5152,2754],{"class":117},[83,5154,3420],{"class":2536},[83,5156,2540],{"class":103},[83,5158,1837],{"class":117},[83,5160,4113],{"class":107},[83,5162,2548],{"class":117},[83,5164,5166,5168,5170],{"class":85,"line":5165},179,[83,5167,2950],{"class":117},[83,5169,3436],{"class":2536},[83,5171,2548],{"class":117},[83,5173,5175,5177,5179],{"class":85,"line":5174},180,[83,5176,3443],{"class":117},[83,5178,4132],{"class":2536},[83,5180,2548],{"class":117},[83,5182,5184,5186,5188,5191,5193],{"class":85,"line":5183},181,[83,5185,3453],{"class":117},[83,5187,3470],{"class":2536},[83,5189,5190],{"class":117},">10 0.1 1\u003C/",[83,5192,3470],{"class":2536},[83,5194,2548],{"class":117},[83,5196,5198,5200,5202],{"class":85,"line":5197},182,[83,5199,3482],{"class":117},[83,5201,4132],{"class":2536},[83,5203,2548],{"class":117},[83,5205,5207,5209,5211],{"class":85,"line":5206},183,[83,5208,3491],{"class":117},[83,5210,3436],{"class":2536},[83,5212,2548],{"class":117},[83,5214,5216,5218,5220],{"class":85,"line":5215},184,[83,5217,2950],{"class":117},[83,5219,3502],{"class":2536},[83,5221,2548],{"class":117},[83,5223,5225,5227,5229],{"class":85,"line":5224},185,[83,5226,3443],{"class":117},[83,5228,3511],{"class":2536},[83,5230,2548],{"class":117},[83,5232,5234,5236,5238],{"class":85,"line":5233},186,[83,5235,3453],{"class":117},[83,5237,3520],{"class":2536},[83,5239,3201],{"class":117},[83,5241,5243,5245,5247],{"class":85,"line":5242},187,[83,5244,3482],{"class":117},[83,5246,3511],{"class":2536},[83,5248,2548],{"class":117},[83,5250,5252,5254,5256],{"class":85,"line":5251},188,[83,5253,3443],{"class":117},[83,5255,3537],{"class":2536},[83,5257,3201],{"class":117},[83,5259,5261,5263,5265],{"class":85,"line":5260},189,[83,5262,3443],{"class":117},[83,5264,3546],{"class":2536},[83,5266,3201],{"class":117},[83,5268,5270,5272,5274],{"class":85,"line":5269},190,[83,5271,3491],{"class":117},[83,5273,3502],{"class":2536},[83,5275,2548],{"class":117},[83,5277,5279,5281,5283],{"class":85,"line":5278},191,[83,5280,2990],{"class":117},[83,5282,3420],{"class":2536},[83,5284,2548],{"class":117},[83,5286,5288,5290,5292,5294,5296,5298],{"class":85,"line":5287},192,[83,5289,2754],{"class":117},[83,5291,3571],{"class":2536},[83,5293,2540],{"class":103},[83,5295,1837],{"class":117},[83,5297,4252],{"class":107},[83,5299,2548],{"class":117},[83,5301,5303,5305,5307],{"class":85,"line":5302},193,[83,5304,2950],{"class":117},[83,5306,3436],{"class":2536},[83,5308,2548],{"class":117},[83,5310,5312,5314,5316],{"class":85,"line":5311},194,[83,5313,3443],{"class":117},[83,5315,4132],{"class":2536},[83,5317,2548],{"class":117},[83,5319,5321,5323,5325,5327,5329],{"class":85,"line":5320},195,[83,5322,3453],{"class":117},[83,5324,3470],{"class":2536},[83,5326,5190],{"class":117},[83,5328,3470],{"class":2536},[83,5330,2548],{"class":117},[83,5332,5334,5336,5338],{"class":85,"line":5333},196,[83,5335,3482],{"class":117},[83,5337,4132],{"class":2536},[83,5339,2548],{"class":117},[83,5341,5343,5345,5347],{"class":85,"line":5342},197,[83,5344,3491],{"class":117},[83,5346,3436],{"class":2536},[83,5348,2548],{"class":117},[83,5350,5352,5354,5356],{"class":85,"line":5351},198,[83,5353,2950],{"class":117},[83,5355,3643],{"class":2536},[83,5357,2548],{"class":117},[83,5359,5361,5363,5365,5367,5369],{"class":85,"line":5360},199,[83,5362,3443],{"class":117},[83,5364,3327],{"class":2536},[83,5366,4322],{"class":117},[83,5368,3327],{"class":2536},[83,5370,2548],{"class":117},[83,5372,5374,5376,5378,5380,5382],{"class":85,"line":5373},200,[83,5375,3443],{"class":117},[83,5377,3665],{"class":2536},[83,5379,3344],{"class":117},[83,5381,3665],{"class":2536},[83,5383,2548],{"class":117},[83,5385,5387,5389,5391,5393,5395],{"class":85,"line":5386},201,[83,5388,3443],{"class":117},[83,5390,3678],{"class":2536},[83,5392,4349],{"class":117},[83,5394,3678],{"class":2536},[83,5396,2548],{"class":117},[83,5398,5400,5402,5404],{"class":85,"line":5399},202,[83,5401,3491],{"class":117},[83,5403,3643],{"class":2536},[83,5405,2548],{"class":117},[83,5407,5409,5411,5413],{"class":85,"line":5408},203,[83,5410,2990],{"class":117},[83,5412,3571],{"class":2536},[83,5414,2548],{"class":117},[83,5416,5418,5420,5422,5424,5426],{"class":85,"line":5417},204,[83,5419,2754],{"class":117},[83,5421,3707],{"class":2536},[83,5423,3710],{"class":117},[83,5425,3707],{"class":2536},[83,5427,2548],{"class":117},[83,5429,5431,5433,5435,5437,5439],{"class":85,"line":5430},205,[83,5432,2754],{"class":117},[83,5434,3860],{"class":2536},[83,5436,3863],{"class":117},[83,5438,3860],{"class":2536},[83,5440,2548],{"class":117},[83,5442,5444,5446,5448],{"class":85,"line":5443},206,[83,5445,2814],{"class":117},[83,5447,2556],{"class":2536},[83,5449,2548],{"class":117},[83,5451,5453,5455,5457,5459,5461],{"class":85,"line":5452},207,[83,5454,2580],{"class":117},[83,5456,3392],{"class":2536},[83,5458,3358],{"class":117},[83,5460,3392],{"class":2536},[83,5462,2548],{"class":117},[83,5464,5466,5468,5470,5472,5474],{"class":85,"line":5465},208,[83,5467,2580],{"class":117},[83,5469,3897],{"class":2536},[83,5471,3863],{"class":117},[83,5473,3897],{"class":2536},[83,5475,2548],{"class":117},[83,5477,5479,5481,5483],{"class":85,"line":5478},209,[83,5480,2651],{"class":117},[83,5482,2894],{"class":2536},[83,5484,2548],{"class":117},[83,5486,5488,5490,5492,5494,5496,5499],{"class":85,"line":5487},210,[83,5489,2570],{"class":117},[83,5491,2894],{"class":2536},[83,5493,2540],{"class":103},[83,5495,1837],{"class":117},[83,5497,5498],{"class":107},"'box_2'",[83,5500,2548],{"class":117},[83,5502,5504,5506,5508,5511,5513],{"class":85,"line":5503},211,[83,5505,2580],{"class":117},[83,5507,3707],{"class":2536},[83,5509,5510],{"class":117},">-0 2.5 0.5 0 -0 -0\u003C/",[83,5512,3707],{"class":2536},[83,5514,2548],{"class":117},[83,5516,5518,5520,5522,5524,5526,5528],{"class":85,"line":5517},212,[83,5519,2580],{"class":117},[83,5521,2556],{"class":2536},[83,5523,2540],{"class":103},[83,5525,1837],{"class":117},[83,5527,3956],{"class":107},[83,5529,2548],{"class":117},[83,5531,5533,5535,5537],{"class":85,"line":5532},213,[83,5534,2754],{"class":117},[83,5536,2573],{"class":2536},[83,5538,2548],{"class":117},[83,5540,5542,5544,5546],{"class":85,"line":5541},214,[83,5543,2950],{"class":117},[83,5545,2601],{"class":2536},[83,5547,2548],{"class":117},[83,5549,5551,5553,5555,5557,5559],{"class":85,"line":5550},215,[83,5552,3443],{"class":117},[83,5554,2953],{"class":2536},[83,5556,3986],{"class":117},[83,5558,2953],{"class":2536},[83,5560,2548],{"class":117},[83,5562,5564,5566,5568,5570,5572],{"class":85,"line":5563},216,[83,5565,3443],{"class":117},[83,5567,3774],{"class":2536},[83,5569,3777],{"class":117},[83,5571,3774],{"class":2536},[83,5573,2548],{"class":117},[83,5575,5577,5579,5581,5583,5585],{"class":85,"line":5576},217,[83,5578,3443],{"class":117},[83,5580,3788],{"class":2536},[83,5582,3777],{"class":117},[83,5584,3788],{"class":2536},[83,5586,2548],{"class":117},[83,5588,5590,5592,5594,5596,5598],{"class":85,"line":5589},218,[83,5591,3443],{"class":117},[83,5593,2966],{"class":2536},[83,5595,3986],{"class":117},[83,5597,2966],{"class":2536},[83,5599,2548],{"class":117},[83,5601,5603,5605,5607,5609,5611],{"class":85,"line":5602},219,[83,5604,3443],{"class":117},[83,5606,3815],{"class":2536},[83,5608,3777],{"class":117},[83,5610,3815],{"class":2536},[83,5612,2548],{"class":117},[83,5614,5616,5618,5620,5622,5624],{"class":85,"line":5615},220,[83,5617,3443],{"class":117},[83,5619,2979],{"class":2536},[83,5621,3986],{"class":117},[83,5623,2979],{"class":2536},[83,5625,2548],{"class":117},[83,5627,5629,5631,5633],{"class":85,"line":5628},221,[83,5630,3491],{"class":117},[83,5632,2601],{"class":2536},[83,5634,2548],{"class":117},[83,5636,5638,5640,5642,5644,5646],{"class":85,"line":5637},222,[83,5639,2950],{"class":117},[83,5641,2583],{"class":2536},[83,5643,3743],{"class":117},[83,5645,2583],{"class":2536},[83,5647,2548],{"class":117},[83,5649,5651,5653,5655,5657,5659],{"class":85,"line":5650},223,[83,5652,2950],{"class":117},[83,5654,3707],{"class":2536},[83,5656,3710],{"class":117},[83,5658,3707],{"class":2536},[83,5660,2548],{"class":117},[83,5662,5664,5666,5668],{"class":85,"line":5663},224,[83,5665,2990],{"class":117},[83,5667,2573],{"class":2536},[83,5669,2548],{"class":117},[83,5671,5673,5675,5677,5679,5681,5683],{"class":85,"line":5672},225,[83,5674,2754],{"class":117},[83,5676,3420],{"class":2536},[83,5678,2540],{"class":103},[83,5680,1837],{"class":117},[83,5682,4113],{"class":107},[83,5684,2548],{"class":117},[83,5686,5688,5690,5692],{"class":85,"line":5687},226,[83,5689,2950],{"class":117},[83,5691,3436],{"class":2536},[83,5693,2548],{"class":117},[83,5695,5697,5699,5701],{"class":85,"line":5696},227,[83,5698,3443],{"class":117},[83,5700,4132],{"class":2536},[83,5702,2548],{"class":117},[83,5704,5706,5708,5710,5712,5714],{"class":85,"line":5705},228,[83,5707,3453],{"class":117},[83,5709,3470],{"class":2536},[83,5711,5190],{"class":117},[83,5713,3470],{"class":2536},[83,5715,2548],{"class":117},[83,5717,5719,5721,5723],{"class":85,"line":5718},229,[83,5720,3482],{"class":117},[83,5722,4132],{"class":2536},[83,5724,2548],{"class":117},[83,5726,5728,5730,5732],{"class":85,"line":5727},230,[83,5729,3491],{"class":117},[83,5731,3436],{"class":2536},[83,5733,2548],{"class":117},[83,5735,5737,5739,5741],{"class":85,"line":5736},231,[83,5738,2950],{"class":117},[83,5740,3502],{"class":2536},[83,5742,2548],{"class":117},[83,5744,5746,5748,5750],{"class":85,"line":5745},232,[83,5747,3443],{"class":117},[83,5749,3511],{"class":2536},[83,5751,2548],{"class":117},[83,5753,5755,5757,5759],{"class":85,"line":5754},233,[83,5756,3453],{"class":117},[83,5758,3520],{"class":2536},[83,5760,3201],{"class":117},[83,5762,5764,5766,5768],{"class":85,"line":5763},234,[83,5765,3482],{"class":117},[83,5767,3511],{"class":2536},[83,5769,2548],{"class":117},[83,5771,5773,5775,5777],{"class":85,"line":5772},235,[83,5774,3443],{"class":117},[83,5776,3537],{"class":2536},[83,5778,3201],{"class":117},[83,5780,5782,5784,5786],{"class":85,"line":5781},236,[83,5783,3443],{"class":117},[83,5785,3546],{"class":2536},[83,5787,3201],{"class":117},[83,5789,5791,5793,5795],{"class":85,"line":5790},237,[83,5792,3491],{"class":117},[83,5794,3502],{"class":2536},[83,5796,2548],{"class":117},[83,5798,5800,5802,5804],{"class":85,"line":5799},238,[83,5801,2990],{"class":117},[83,5803,3420],{"class":2536},[83,5805,2548],{"class":117},[83,5807,5809,5811,5813,5815,5817,5819],{"class":85,"line":5808},239,[83,5810,2754],{"class":117},[83,5812,3571],{"class":2536},[83,5814,2540],{"class":103},[83,5816,1837],{"class":117},[83,5818,4252],{"class":107},[83,5820,2548],{"class":117},[83,5822,5824,5826,5828],{"class":85,"line":5823},240,[83,5825,2950],{"class":117},[83,5827,3436],{"class":2536},[83,5829,2548],{"class":117},[83,5831,5833,5835,5837],{"class":85,"line":5832},241,[83,5834,3443],{"class":117},[83,5836,4132],{"class":2536},[83,5838,2548],{"class":117},[83,5840,5842,5844,5846,5848,5850],{"class":85,"line":5841},242,[83,5843,3453],{"class":117},[83,5845,3470],{"class":2536},[83,5847,5190],{"class":117},[83,5849,3470],{"class":2536},[83,5851,2548],{"class":117},[83,5853,5855,5857,5859],{"class":85,"line":5854},243,[83,5856,3482],{"class":117},[83,5858,4132],{"class":2536},[83,5860,2548],{"class":117},[83,5862,5864,5866,5868],{"class":85,"line":5863},244,[83,5865,3491],{"class":117},[83,5867,3436],{"class":2536},[83,5869,2548],{"class":117},[83,5871,5873,5875,5877],{"class":85,"line":5872},245,[83,5874,2950],{"class":117},[83,5876,3643],{"class":2536},[83,5878,2548],{"class":117},[83,5880,5882,5884,5886,5888,5890],{"class":85,"line":5881},246,[83,5883,3443],{"class":117},[83,5885,3327],{"class":2536},[83,5887,4322],{"class":117},[83,5889,3327],{"class":2536},[83,5891,2548],{"class":117},[83,5893,5895,5897,5899,5901,5903],{"class":85,"line":5894},247,[83,5896,3443],{"class":117},[83,5898,3665],{"class":2536},[83,5900,3344],{"class":117},[83,5902,3665],{"class":2536},[83,5904,2548],{"class":117},[83,5906,5908,5910,5912,5914,5916],{"class":85,"line":5907},248,[83,5909,3443],{"class":117},[83,5911,3678],{"class":2536},[83,5913,4349],{"class":117},[83,5915,3678],{"class":2536},[83,5917,2548],{"class":117},[83,5919,5921,5923,5925],{"class":85,"line":5920},249,[83,5922,3491],{"class":117},[83,5924,3643],{"class":2536},[83,5926,2548],{"class":117},[83,5928,5930,5932,5934],{"class":85,"line":5929},250,[83,5931,2990],{"class":117},[83,5933,3571],{"class":2536},[83,5935,2548],{"class":117},[83,5937,5939,5941,5943,5945,5947],{"class":85,"line":5938},251,[83,5940,2754],{"class":117},[83,5942,3707],{"class":2536},[83,5944,3710],{"class":117},[83,5946,3707],{"class":2536},[83,5948,2548],{"class":117},[83,5950,5952,5954,5956,5958,5960],{"class":85,"line":5951},252,[83,5953,2754],{"class":117},[83,5955,3860],{"class":2536},[83,5957,3863],{"class":117},[83,5959,3860],{"class":2536},[83,5961,2548],{"class":117},[83,5963,5965,5967,5969],{"class":85,"line":5964},253,[83,5966,2814],{"class":117},[83,5968,2556],{"class":2536},[83,5970,2548],{"class":117},[83,5972,5974,5976,5978,5980,5982],{"class":85,"line":5973},254,[83,5975,2580],{"class":117},[83,5977,3392],{"class":2536},[83,5979,3358],{"class":117},[83,5981,3392],{"class":2536},[83,5983,2548],{"class":117},[83,5985,5987,5989,5991,5993,5995],{"class":85,"line":5986},255,[83,5988,2580],{"class":117},[83,5990,3897],{"class":2536},[83,5992,3863],{"class":117},[83,5994,3897],{"class":2536},[83,5996,2548],{"class":117},[83,5998,6000,6002,6004],{"class":85,"line":5999},256,[83,6001,2651],{"class":117},[83,6003,2894],{"class":2536},[83,6005,2548],{"class":117},[83,6007,6009,6011,6014,6016,6018,6021,6023,6025,6028],{"class":85,"line":6008},257,[83,6010,2570],{"class":117},[83,6012,6013],{"class":2536},"light",[83,6015,2540],{"class":103},[83,6017,1837],{"class":117},[83,6019,6020],{"class":107},"'sun'",[83,6022,3119],{"class":103},[83,6024,1837],{"class":117},[83,6026,6027],{"class":107},"'directional'",[83,6029,2548],{"class":117},[83,6031,6033,6035,6037,6040,6042],{"class":85,"line":6032},258,[83,6034,2580],{"class":117},[83,6036,3707],{"class":2536},[83,6038,6039],{"class":117},">0 0 10 0 -0 0\u003C/",[83,6041,3707],{"class":2536},[83,6043,2548],{"class":117},[83,6045,6047,6049,6052,6054,6056],{"class":85,"line":6046},259,[83,6048,2580],{"class":117},[83,6050,6051],{"class":2536},"cast_shadows",[83,6053,3358],{"class":117},[83,6055,6051],{"class":2536},[83,6057,2548],{"class":117},[83,6059,6061,6063,6066,6068,6070],{"class":85,"line":6060},260,[83,6062,2580],{"class":117},[83,6064,6065],{"class":2536},"intensity",[83,6067,3150],{"class":117},[83,6069,6065],{"class":2536},[83,6071,2548],{"class":117},[83,6073,6075,6077,6080,6083,6085],{"class":85,"line":6074},261,[83,6076,2580],{"class":117},[83,6078,6079],{"class":2536},"direction",[83,6081,6082],{"class":117},">-0.5 0.1 -0.9\u003C/",[83,6084,6079],{"class":2536},[83,6086,2548],{"class":117},[83,6088,6090,6092,6094,6096,6098],{"class":85,"line":6089},262,[83,6091,2580],{"class":117},[83,6093,3665],{"class":2536},[83,6095,3654],{"class":117},[83,6097,3665],{"class":2536},[83,6099,2548],{"class":117},[83,6101,6103,6105,6107,6110,6112],{"class":85,"line":6102},263,[83,6104,2580],{"class":117},[83,6106,3678],{"class":2536},[83,6108,6109],{"class":117},">0.2 0.2 0.2 1\u003C/",[83,6111,3678],{"class":2536},[83,6113,2548],{"class":117},[83,6115,6117,6119,6122],{"class":85,"line":6116},264,[83,6118,2580],{"class":117},[83,6120,6121],{"class":2536},"attenuation",[83,6123,2548],{"class":117},[83,6125,6127,6129,6132,6134,6136],{"class":85,"line":6126},265,[83,6128,2754],{"class":117},[83,6130,6131],{"class":2536},"range",[83,6133,3164],{"class":117},[83,6135,6131],{"class":2536},[83,6137,2548],{"class":117},[83,6139,6141,6143,6146,6149,6151],{"class":85,"line":6140},266,[83,6142,2754],{"class":117},[83,6144,6145],{"class":2536},"linear",[83,6147,6148],{"class":117},">0.01\u003C/",[83,6150,6145],{"class":2536},[83,6152,2548],{"class":117},[83,6154,6156,6158,6161,6164,6166],{"class":85,"line":6155},267,[83,6157,2754],{"class":117},[83,6159,6160],{"class":2536},"constant",[83,6162,6163],{"class":117},">0.90000000000000002\u003C/",[83,6165,6160],{"class":2536},[83,6167,2548],{"class":117},[83,6169,6171,6173,6176,6178,6180],{"class":85,"line":6170},268,[83,6172,2754],{"class":117},[83,6174,6175],{"class":2536},"quadratic",[83,6177,3136],{"class":117},[83,6179,6175],{"class":2536},[83,6181,2548],{"class":117},[83,6183,6185,6187,6189],{"class":85,"line":6184},269,[83,6186,2814],{"class":117},[83,6188,6121],{"class":2536},[83,6190,2548],{"class":117},[83,6192,6194,6196,6199],{"class":85,"line":6193},270,[83,6195,2580],{"class":117},[83,6197,6198],{"class":2536},"spot",[83,6200,2548],{"class":117},[83,6202,6204,6206,6209,6211,6213],{"class":85,"line":6203},271,[83,6205,2754],{"class":117},[83,6207,6208],{"class":2536},"inner_angle",[83,6210,3777],{"class":117},[83,6212,6208],{"class":2536},[83,6214,2548],{"class":117},[83,6216,6218,6220,6223,6225,6227],{"class":85,"line":6217},272,[83,6219,2754],{"class":117},[83,6221,6222],{"class":2536},"outer_angle",[83,6224,3777],{"class":117},[83,6226,6222],{"class":2536},[83,6228,2548],{"class":117},[83,6230,6232,6234,6237,6239,6241],{"class":85,"line":6231},273,[83,6233,2754],{"class":117},[83,6235,6236],{"class":2536},"falloff",[83,6238,3777],{"class":117},[83,6240,6236],{"class":2536},[83,6242,2548],{"class":117},[83,6244,6246,6248,6250],{"class":85,"line":6245},274,[83,6247,2814],{"class":117},[83,6249,6198],{"class":2536},[83,6251,2548],{"class":117},[83,6253,6255,6257,6259],{"class":85,"line":6254},275,[83,6256,2651],{"class":117},[83,6258,6013],{"class":2536},[83,6260,2548],{"class":117},[83,6262,6264,6266,6268],{"class":85,"line":6263},276,[83,6265,2660],{"class":117},[83,6267,1601],{"class":2536},[83,6269,2548],{"class":117},[83,6271,6273,6275,6277],{"class":85,"line":6272},277,[83,6274,2669],{"class":117},[83,6276,2877],{"class":2536},[83,6278,2548],{"class":117},[15,6280,6281],{},[19,6282,6283],{},"2. Modify the sdf file",[15,6285,6286,6287,6290,6291,6294,6295,1916,6297,1916,6300,6303,6304,6307,6308,6311,6312,6314,6315,2405,6317,6320,6321,6311,6323,6314,6325,2405,6327,6330,6331,6335,6336,6335,6338,6335,6341,6335,6344,6335,6347,6335,6350,6335,6353,6335,6356,6335,6359,6335,6361,6364],{},"Modify the SDF file to adjust the cube dimensions and enclose the walls. In the SDF file, the four cubes correspond to four ",[80,6288,6289],{},"\u003Cmodel>"," tags, whose ",[80,6292,6293],{},"name"," attributes are ",[80,6296,4132],{},[80,6298,6299],{},"box_1",[80,6301,6302],{},"box_2",", and ",[80,6305,6306],{},"box_3",". Change the ",[80,6309,6310],{},"\u003Csize>1 1 1\u003C/size>"," in ",[80,6313,4132],{}," and ",[80,6316,6299],{},[80,6318,6319],{},"\u003Csize>0.1 5 1\u003C/size>",", and change the ",[80,6322,6310],{},[80,6324,6302],{},[80,6326,6306],{},[80,6328,6329],{},"\u003Csize>10 0.1 1\u003C/size>"," (",[6332,6333,6334],"em",{},"Note: Each"," ",[80,6337,6289],{},[6332,6339,6340],{},"tag contains two",[80,6342,6343],{},"\u003Csize>",[6332,6345,6346],{},"tags, located under the",[80,6348,6349],{},"\u003Ccollision>",[6332,6351,6352],{},"tag and the",[80,6354,6355],{},"\u003Cvisual>",[6332,6357,6358],{},"tag respectively; both",[80,6360,6343],{},[6332,6362,6363],{},"tag contents need to be modified",").",[15,6366,6367,6368,6370],{},"The modified content of the ",[80,6369,3057],{}," file is as follows:",[73,6372,6373],{"className":2524,"code":3070,"language":2526,"meta":78,"style":78},[80,6374,6375,6389,6403,6423,6435,6447,6459,6467,6487,6507,6527,6547,6559,6571,6585,6593,6605,6617,6629,6637,6651,6663,6677,6691,6699,6707,6719,6731,6739,6747,6755,6763,6771,6779,6787,6795,6803,6811,6825,6833,6841,6853,6865,6873,6881,6889,6901,6913,6925,6933,6941,6953,6961,6973,6985,6993,7005,7017,7029,7041,7053,7065,7073,7081,7093,7101,7113,7125,7133,7147,7159,7173,7181,7189,7201,7213,7225,7237,7249,7261,7269,7281,7293,7301,7315,7323,7331,7343,7351,7359,7367,7375,7383,7391,7399,7407,7415,7423,7437,7445,7453,7465,7473,7481,7489,7501,7513,7525,7533,7541,7553,7565,7573,7585,7597,7605,7619,7631,7645,7653,7661,7673,7685,7697,7709,7721,7733,7741,7753,7765,7773,7787,7795,7803,7815,7823,7831,7839,7847,7855,7863,7871,7879,7887,7895,7909,7917,7925,7937,7945,7953,7961,7973,7985,7997,8005,8013,8025,8037,8045,8057,8069,8077,8091,8103,8117,8125,8133,8145,8157,8169,8181,8193,8205,8213,8225,8237,8245,8259,8267,8275,8287,8295,8303,8311,8319,8327,8335,8343,8351,8359,8367,8381,8389,8397,8409,8417,8425,8433,8445,8457,8469,8477,8485,8497,8509,8517,8529,8541,8549,8563,8575,8589,8597,8605,8617,8629,8641,8653,8665,8677,8685,8697,8709,8717,8731,8739,8747,8759,8767,8775,8783,8791,8799,8807,8815,8823,8831,8839,8853,8861,8869,8881,8889,8897,8905,8917,8929,8941,8949,8957,8969,8981,8989,9001,9013,9021,9041,9053,9065,9077,9089,9101,9113,9121,9133,9145,9157,9169,9177,9185,9197,9209,9221,9229,9237,9245],{"__ignoreMap":78},[83,6376,6377,6379,6381,6383,6385,6387],{"class":85,"line":86},[83,6378,2533],{"class":117},[83,6380,2877],{"class":2536},[83,6382,2880],{"class":103},[83,6384,1837],{"class":117},[83,6386,3085],{"class":107},[83,6388,2548],{"class":117},[83,6390,6391,6393,6395,6397,6399,6401],{"class":85,"line":93},[83,6392,2553],{"class":117},[83,6394,1601],{"class":2536},[83,6396,2540],{"class":103},[83,6398,1837],{"class":117},[83,6400,3100],{"class":107},[83,6402,2548],{"class":117},[83,6404,6405,6407,6409,6411,6413,6415,6417,6419,6421],{"class":85,"line":100},[83,6406,2570],{"class":117},[83,6408,3109],{"class":2536},[83,6410,2540],{"class":103},[83,6412,1837],{"class":117},[83,6414,3116],{"class":107},[83,6416,3119],{"class":103},[83,6418,1837],{"class":117},[83,6420,3124],{"class":107},[83,6422,2548],{"class":117},[83,6424,6425,6427,6429,6431,6433],{"class":85,"line":124},[83,6426,2580],{"class":117},[83,6428,3133],{"class":2536},[83,6430,3136],{"class":117},[83,6432,3133],{"class":2536},[83,6434,2548],{"class":117},[83,6436,6437,6439,6441,6443,6445],{"class":85,"line":129},[83,6438,2580],{"class":117},[83,6440,3147],{"class":2536},[83,6442,3150],{"class":117},[83,6444,3147],{"class":2536},[83,6446,2548],{"class":117},[83,6448,6449,6451,6453,6455,6457],{"class":85,"line":135},[83,6450,2580],{"class":117},[83,6452,3161],{"class":2536},[83,6454,3164],{"class":117},[83,6456,3161],{"class":2536},[83,6458,2548],{"class":117},[83,6460,6461,6463,6465],{"class":85,"line":147},[83,6462,2651],{"class":117},[83,6464,3109],{"class":2536},[83,6466,2548],{"class":117},[83,6468,6469,6471,6473,6475,6477,6479,6481,6483,6485],{"class":85,"line":152},[83,6470,2570],{"class":117},[83,6472,3183],{"class":2536},[83,6474,2540],{"class":103},[83,6476,1837],{"class":117},[83,6478,3190],{"class":107},[83,6480,3193],{"class":103},[83,6482,1837],{"class":117},[83,6484,3198],{"class":107},[83,6486,3201],{"class":117},[83,6488,6489,6491,6493,6495,6497,6499,6501,6503,6505],{"class":85,"line":158},[83,6490,2570],{"class":117},[83,6492,3183],{"class":2536},[83,6494,2540],{"class":103},[83,6496,1837],{"class":117},[83,6498,3214],{"class":107},[83,6500,3193],{"class":103},[83,6502,1837],{"class":117},[83,6504,3221],{"class":107},[83,6506,3201],{"class":117},[83,6508,6509,6511,6513,6515,6517,6519,6521,6523,6525],{"class":85,"line":405},[83,6510,2570],{"class":117},[83,6512,3183],{"class":2536},[83,6514,2540],{"class":103},[83,6516,1837],{"class":117},[83,6518,3236],{"class":107},[83,6520,3193],{"class":103},[83,6522,1837],{"class":117},[83,6524,3243],{"class":107},[83,6526,3201],{"class":117},[83,6528,6529,6531,6533,6535,6537,6539,6541,6543,6545],{"class":85,"line":411},[83,6530,2570],{"class":117},[83,6532,3183],{"class":2536},[83,6534,2540],{"class":103},[83,6536,1837],{"class":117},[83,6538,3258],{"class":107},[83,6540,3193],{"class":103},[83,6542,1837],{"class":117},[83,6544,3265],{"class":107},[83,6546,3201],{"class":117},[83,6548,6549,6551,6553,6555,6557],{"class":85,"line":417},[83,6550,2570],{"class":117},[83,6552,3274],{"class":2536},[83,6554,3277],{"class":117},[83,6556,3274],{"class":2536},[83,6558,2548],{"class":117},[83,6560,6561,6563,6565,6567,6569],{"class":85,"line":423},[83,6562,2570],{"class":117},[83,6564,3288],{"class":2536},[83,6566,3291],{"class":117},[83,6568,3288],{"class":2536},[83,6570,2548],{"class":117},[83,6572,6573,6575,6577,6579,6581,6583],{"class":85,"line":1814},[83,6574,2570],{"class":117},[83,6576,3302],{"class":2536},[83,6578,3119],{"class":103},[83,6580,1837],{"class":117},[83,6582,3309],{"class":107},[83,6584,3201],{"class":117},[83,6586,6587,6589,6591],{"class":85,"line":1826},[83,6588,2570],{"class":117},[83,6590,3318],{"class":2536},[83,6592,2548],{"class":117},[83,6594,6595,6597,6599,6601,6603],{"class":85,"line":1831},[83,6596,2580],{"class":117},[83,6598,3327],{"class":2536},[83,6600,3330],{"class":117},[83,6602,3327],{"class":2536},[83,6604,2548],{"class":117},[83,6606,6607,6609,6611,6613,6615],{"class":85,"line":1848},[83,6608,2580],{"class":117},[83,6610,3341],{"class":2536},[83,6612,3344],{"class":117},[83,6614,3341],{"class":2536},[83,6616,2548],{"class":117},[83,6618,6619,6621,6623,6625,6627],{"class":85,"line":1863},[83,6620,2580],{"class":117},[83,6622,3355],{"class":2536},[83,6624,3358],{"class":117},[83,6626,3355],{"class":2536},[83,6628,2548],{"class":117},[83,6630,6631,6633,6635],{"class":85,"line":1885},[83,6632,2651],{"class":117},[83,6634,3318],{"class":2536},[83,6636,2548],{"class":117},[83,6638,6639,6641,6643,6645,6647,6649],{"class":85,"line":1890},[83,6640,2570],{"class":117},[83,6642,2894],{"class":2536},[83,6644,2540],{"class":103},[83,6646,1837],{"class":117},[83,6648,3383],{"class":107},[83,6650,2548],{"class":117},[83,6652,6653,6655,6657,6659,6661],{"class":85,"line":1901},[83,6654,2580],{"class":117},[83,6656,3392],{"class":2536},[83,6658,3358],{"class":117},[83,6660,3392],{"class":2536},[83,6662,2548],{"class":117},[83,6664,6665,6667,6669,6671,6673,6675],{"class":85,"line":1907},[83,6666,2580],{"class":117},[83,6668,2556],{"class":2536},[83,6670,2540],{"class":103},[83,6672,1837],{"class":117},[83,6674,3411],{"class":107},[83,6676,2548],{"class":117},[83,6678,6679,6681,6683,6685,6687,6689],{"class":85,"line":1925},[83,6680,2754],{"class":117},[83,6682,3420],{"class":2536},[83,6684,2540],{"class":103},[83,6686,1837],{"class":117},[83,6688,3427],{"class":107},[83,6690,2548],{"class":117},[83,6692,6693,6695,6697],{"class":85,"line":1937},[83,6694,2950],{"class":117},[83,6696,3436],{"class":2536},[83,6698,2548],{"class":117},[83,6700,6701,6703,6705],{"class":85,"line":1955},[83,6702,3443],{"class":117},[83,6704,3446],{"class":2536},[83,6706,2548],{"class":117},[83,6708,6709,6711,6713,6715,6717],{"class":85,"line":1961},[83,6710,3453],{"class":117},[83,6712,3456],{"class":2536},[83,6714,3459],{"class":117},[83,6716,3456],{"class":2536},[83,6718,2548],{"class":117},[83,6720,6721,6723,6725,6727,6729],{"class":85,"line":1967},[83,6722,3453],{"class":117},[83,6724,3470],{"class":2536},[83,6726,3473],{"class":117},[83,6728,3470],{"class":2536},[83,6730,2548],{"class":117},[83,6732,6733,6735,6737],{"class":85,"line":1972},[83,6734,3482],{"class":117},[83,6736,3446],{"class":2536},[83,6738,2548],{"class":117},[83,6740,6741,6743,6745],{"class":85,"line":1978},[83,6742,3491],{"class":117},[83,6744,3436],{"class":2536},[83,6746,2548],{"class":117},[83,6748,6749,6751,6753],{"class":85,"line":1989},[83,6750,2950],{"class":117},[83,6752,3502],{"class":2536},[83,6754,2548],{"class":117},[83,6756,6757,6759,6761],{"class":85,"line":2003},[83,6758,3443],{"class":117},[83,6760,3511],{"class":2536},[83,6762,2548],{"class":117},[83,6764,6765,6767,6769],{"class":85,"line":2015},[83,6766,3453],{"class":117},[83,6768,3520],{"class":2536},[83,6770,3201],{"class":117},[83,6772,6773,6775,6777],{"class":85,"line":2042},[83,6774,3482],{"class":117},[83,6776,3511],{"class":2536},[83,6778,2548],{"class":117},[83,6780,6781,6783,6785],{"class":85,"line":2058},[83,6782,3443],{"class":117},[83,6784,3537],{"class":2536},[83,6786,3201],{"class":117},[83,6788,6789,6791,6793],{"class":85,"line":2063},[83,6790,3443],{"class":117},[83,6792,3546],{"class":2536},[83,6794,3201],{"class":117},[83,6796,6797,6799,6801],{"class":85,"line":2068},[83,6798,3491],{"class":117},[83,6800,3502],{"class":2536},[83,6802,2548],{"class":117},[83,6804,6805,6807,6809],{"class":85,"line":2074},[83,6806,2990],{"class":117},[83,6808,3420],{"class":2536},[83,6810,2548],{"class":117},[83,6812,6813,6815,6817,6819,6821,6823],{"class":85,"line":2084},[83,6814,2754],{"class":117},[83,6816,3571],{"class":2536},[83,6818,2540],{"class":103},[83,6820,1837],{"class":117},[83,6822,3578],{"class":107},[83,6824,2548],{"class":117},[83,6826,6827,6829,6831],{"class":85,"line":2097},[83,6828,2950],{"class":117},[83,6830,3436],{"class":2536},[83,6832,2548],{"class":117},[83,6834,6835,6837,6839],{"class":85,"line":2110},[83,6836,3443],{"class":117},[83,6838,3446],{"class":2536},[83,6840,2548],{"class":117},[83,6842,6843,6845,6847,6849,6851],{"class":85,"line":2125},[83,6844,3453],{"class":117},[83,6846,3456],{"class":2536},[83,6848,3459],{"class":117},[83,6850,3456],{"class":2536},[83,6852,2548],{"class":117},[83,6854,6855,6857,6859,6861,6863],{"class":85,"line":2133},[83,6856,3453],{"class":117},[83,6858,3470],{"class":2536},[83,6860,3473],{"class":117},[83,6862,3470],{"class":2536},[83,6864,2548],{"class":117},[83,6866,6867,6869,6871],{"class":85,"line":2141},[83,6868,3482],{"class":117},[83,6870,3446],{"class":2536},[83,6872,2548],{"class":117},[83,6874,6875,6877,6879],{"class":85,"line":2147},[83,6876,3491],{"class":117},[83,6878,3436],{"class":2536},[83,6880,2548],{"class":117},[83,6882,6883,6885,6887],{"class":85,"line":2169},[83,6884,2950],{"class":117},[83,6886,3643],{"class":2536},[83,6888,2548],{"class":117},[83,6890,6891,6893,6895,6897,6899],{"class":85,"line":2180},[83,6892,3443],{"class":117},[83,6894,3327],{"class":2536},[83,6896,3654],{"class":117},[83,6898,3327],{"class":2536},[83,6900,2548],{"class":117},[83,6902,6903,6905,6907,6909,6911],{"class":85,"line":2197},[83,6904,3443],{"class":117},[83,6906,3665],{"class":2536},[83,6908,3654],{"class":117},[83,6910,3665],{"class":2536},[83,6912,2548],{"class":117},[83,6914,6915,6917,6919,6921,6923],{"class":85,"line":2212},[83,6916,3443],{"class":117},[83,6918,3678],{"class":2536},[83,6920,3654],{"class":117},[83,6922,3678],{"class":2536},[83,6924,2548],{"class":117},[83,6926,6927,6929,6931],{"class":85,"line":2218},[83,6928,3491],{"class":117},[83,6930,3643],{"class":2536},[83,6932,2548],{"class":117},[83,6934,6935,6937,6939],{"class":85,"line":2229},[83,6936,2990],{"class":117},[83,6938,3571],{"class":2536},[83,6940,2548],{"class":117},[83,6942,6943,6945,6947,6949,6951],{"class":85,"line":2234},[83,6944,2754],{"class":117},[83,6946,3707],{"class":2536},[83,6948,3710],{"class":117},[83,6950,3707],{"class":2536},[83,6952,2548],{"class":117},[83,6954,6955,6957,6959],{"class":85,"line":2239},[83,6956,2754],{"class":117},[83,6958,2573],{"class":2536},[83,6960,2548],{"class":117},[83,6962,6963,6965,6967,6969,6971],{"class":85,"line":2248},[83,6964,2950],{"class":117},[83,6966,3707],{"class":2536},[83,6968,3710],{"class":117},[83,6970,3707],{"class":2536},[83,6972,2548],{"class":117},[83,6974,6975,6977,6979,6981,6983],{"class":85,"line":2254},[83,6976,2950],{"class":117},[83,6978,2583],{"class":2536},[83,6980,3743],{"class":117},[83,6982,2583],{"class":2536},[83,6984,2548],{"class":117},[83,6986,6987,6989,6991],{"class":85,"line":2274},[83,6988,2950],{"class":117},[83,6990,2601],{"class":2536},[83,6992,2548],{"class":117},[83,6994,6995,6997,6999,7001,7003],{"class":85,"line":2287},[83,6996,3443],{"class":117},[83,6998,2953],{"class":2536},[83,7000,3150],{"class":117},[83,7002,2953],{"class":2536},[83,7004,2548],{"class":117},[83,7006,7007,7009,7011,7013,7015],{"class":85,"line":2293},[83,7008,3443],{"class":117},[83,7010,3774],{"class":2536},[83,7012,3777],{"class":117},[83,7014,3774],{"class":2536},[83,7016,2548],{"class":117},[83,7018,7019,7021,7023,7025,7027],{"class":85,"line":2299},[83,7020,3443],{"class":117},[83,7022,3788],{"class":2536},[83,7024,3777],{"class":117},[83,7026,3788],{"class":2536},[83,7028,2548],{"class":117},[83,7030,7031,7033,7035,7037,7039],{"class":85,"line":3797},[83,7032,3443],{"class":117},[83,7034,2966],{"class":2536},[83,7036,3150],{"class":117},[83,7038,2966],{"class":2536},[83,7040,2548],{"class":117},[83,7042,7043,7045,7047,7049,7051],{"class":85,"line":3810},[83,7044,3443],{"class":117},[83,7046,3815],{"class":2536},[83,7048,3777],{"class":117},[83,7050,3815],{"class":2536},[83,7052,2548],{"class":117},[83,7054,7055,7057,7059,7061,7063],{"class":85,"line":3824},[83,7056,3443],{"class":117},[83,7058,2979],{"class":2536},[83,7060,3150],{"class":117},[83,7062,2979],{"class":2536},[83,7064,2548],{"class":117},[83,7066,7067,7069,7071],{"class":85,"line":3837},[83,7068,3491],{"class":117},[83,7070,2601],{"class":2536},[83,7072,2548],{"class":117},[83,7074,7075,7077,7079],{"class":85,"line":3846},[83,7076,2990],{"class":117},[83,7078,2573],{"class":2536},[83,7080,2548],{"class":117},[83,7082,7083,7085,7087,7089,7091],{"class":85,"line":3855},[83,7084,2754],{"class":117},[83,7086,3860],{"class":2536},[83,7088,3863],{"class":117},[83,7090,3860],{"class":2536},[83,7092,2548],{"class":117},[83,7094,7095,7097,7099],{"class":85,"line":3870},[83,7096,2814],{"class":117},[83,7098,2556],{"class":2536},[83,7100,2548],{"class":117},[83,7102,7103,7105,7107,7109,7111],{"class":85,"line":3879},[83,7104,2580],{"class":117},[83,7106,3707],{"class":2536},[83,7108,3710],{"class":117},[83,7110,3707],{"class":2536},[83,7112,2548],{"class":117},[83,7114,7115,7117,7119,7121,7123],{"class":85,"line":3892},[83,7116,2580],{"class":117},[83,7118,3897],{"class":2536},[83,7120,3863],{"class":117},[83,7122,3897],{"class":2536},[83,7124,2548],{"class":117},[83,7126,7127,7129,7131],{"class":85,"line":3906},[83,7128,2651],{"class":117},[83,7130,2894],{"class":2536},[83,7132,2548],{"class":117},[83,7134,7135,7137,7139,7141,7143,7145],{"class":85,"line":3915},[83,7136,2570],{"class":117},[83,7138,2894],{"class":2536},[83,7140,2540],{"class":103},[83,7142,1837],{"class":117},[83,7144,3926],{"class":107},[83,7146,2548],{"class":117},[83,7148,7149,7151,7153,7155,7157],{"class":85,"line":3931},[83,7150,2580],{"class":117},[83,7152,3707],{"class":2536},[83,7154,3938],{"class":117},[83,7156,3707],{"class":2536},[83,7158,2548],{"class":117},[83,7160,7161,7163,7165,7167,7169,7171],{"class":85,"line":3945},[83,7162,2580],{"class":117},[83,7164,2556],{"class":2536},[83,7166,2540],{"class":103},[83,7168,1837],{"class":117},[83,7170,3956],{"class":107},[83,7172,2548],{"class":117},[83,7174,7175,7177,7179],{"class":85,"line":3961},[83,7176,2754],{"class":117},[83,7178,2573],{"class":2536},[83,7180,2548],{"class":117},[83,7182,7183,7185,7187],{"class":85,"line":3970},[83,7184,2950],{"class":117},[83,7186,2601],{"class":2536},[83,7188,2548],{"class":117},[83,7190,7191,7193,7195,7197,7199],{"class":85,"line":3979},[83,7192,3443],{"class":117},[83,7194,2953],{"class":2536},[83,7196,3986],{"class":117},[83,7198,2953],{"class":2536},[83,7200,2548],{"class":117},[83,7202,7203,7205,7207,7209,7211],{"class":85,"line":3993},[83,7204,3443],{"class":117},[83,7206,3774],{"class":2536},[83,7208,3777],{"class":117},[83,7210,3774],{"class":2536},[83,7212,2548],{"class":117},[83,7214,7215,7217,7219,7221,7223],{"class":85,"line":4006},[83,7216,3443],{"class":117},[83,7218,3788],{"class":2536},[83,7220,3777],{"class":117},[83,7222,3788],{"class":2536},[83,7224,2548],{"class":117},[83,7226,7227,7229,7231,7233,7235],{"class":85,"line":4019},[83,7228,3443],{"class":117},[83,7230,2966],{"class":2536},[83,7232,3986],{"class":117},[83,7234,2966],{"class":2536},[83,7236,2548],{"class":117},[83,7238,7239,7241,7243,7245,7247],{"class":85,"line":4032},[83,7240,3443],{"class":117},[83,7242,3815],{"class":2536},[83,7244,3777],{"class":117},[83,7246,3815],{"class":2536},[83,7248,2548],{"class":117},[83,7250,7251,7253,7255,7257,7259],{"class":85,"line":4045},[83,7252,3443],{"class":117},[83,7254,2979],{"class":2536},[83,7256,3986],{"class":117},[83,7258,2979],{"class":2536},[83,7260,2548],{"class":117},[83,7262,7263,7265,7267],{"class":85,"line":4058},[83,7264,3491],{"class":117},[83,7266,2601],{"class":2536},[83,7268,2548],{"class":117},[83,7270,7271,7273,7275,7277,7279],{"class":85,"line":4067},[83,7272,2950],{"class":117},[83,7274,2583],{"class":2536},[83,7276,3743],{"class":117},[83,7278,2583],{"class":2536},[83,7280,2548],{"class":117},[83,7282,7283,7285,7287,7289,7291],{"class":85,"line":4080},[83,7284,2950],{"class":117},[83,7286,3707],{"class":2536},[83,7288,3710],{"class":117},[83,7290,3707],{"class":2536},[83,7292,2548],{"class":117},[83,7294,7295,7297,7299],{"class":85,"line":4093},[83,7296,2990],{"class":117},[83,7298,2573],{"class":2536},[83,7300,2548],{"class":117},[83,7302,7303,7305,7307,7309,7311,7313],{"class":85,"line":4102},[83,7304,2754],{"class":117},[83,7306,3420],{"class":2536},[83,7308,2540],{"class":103},[83,7310,1837],{"class":117},[83,7312,4113],{"class":107},[83,7314,2548],{"class":117},[83,7316,7317,7319,7321],{"class":85,"line":4118},[83,7318,2950],{"class":117},[83,7320,3436],{"class":2536},[83,7322,2548],{"class":117},[83,7324,7325,7327,7329],{"class":85,"line":4127},[83,7326,3443],{"class":117},[83,7328,4132],{"class":2536},[83,7330,2548],{"class":117},[83,7332,7333,7335,7337,7339,7341],{"class":85,"line":4137},[83,7334,3453],{"class":117},[83,7336,3470],{"class":2536},[83,7338,4144],{"class":117},[83,7340,3470],{"class":2536},[83,7342,2548],{"class":117},[83,7344,7345,7347,7349],{"class":85,"line":4151},[83,7346,3482],{"class":117},[83,7348,4132],{"class":2536},[83,7350,2548],{"class":117},[83,7352,7353,7355,7357],{"class":85,"line":4160},[83,7354,3491],{"class":117},[83,7356,3436],{"class":2536},[83,7358,2548],{"class":117},[83,7360,7361,7363,7365],{"class":85,"line":4169},[83,7362,2950],{"class":117},[83,7364,3502],{"class":2536},[83,7366,2548],{"class":117},[83,7368,7369,7371,7373],{"class":85,"line":4178},[83,7370,3443],{"class":117},[83,7372,3511],{"class":2536},[83,7374,2548],{"class":117},[83,7376,7377,7379,7381],{"class":85,"line":4187},[83,7378,3453],{"class":117},[83,7380,3520],{"class":2536},[83,7382,3201],{"class":117},[83,7384,7385,7387,7389],{"class":85,"line":4196},[83,7386,3482],{"class":117},[83,7388,3511],{"class":2536},[83,7390,2548],{"class":117},[83,7392,7393,7395,7397],{"class":85,"line":4205},[83,7394,3443],{"class":117},[83,7396,3537],{"class":2536},[83,7398,3201],{"class":117},[83,7400,7401,7403,7405],{"class":85,"line":4214},[83,7402,3443],{"class":117},[83,7404,3546],{"class":2536},[83,7406,3201],{"class":117},[83,7408,7409,7411,7413],{"class":85,"line":4223},[83,7410,3491],{"class":117},[83,7412,3502],{"class":2536},[83,7414,2548],{"class":117},[83,7416,7417,7419,7421],{"class":85,"line":4232},[83,7418,2990],{"class":117},[83,7420,3420],{"class":2536},[83,7422,2548],{"class":117},[83,7424,7425,7427,7429,7431,7433,7435],{"class":85,"line":4241},[83,7426,2754],{"class":117},[83,7428,3571],{"class":2536},[83,7430,2540],{"class":103},[83,7432,1837],{"class":117},[83,7434,4252],{"class":107},[83,7436,2548],{"class":117},[83,7438,7439,7441,7443],{"class":85,"line":4257},[83,7440,2950],{"class":117},[83,7442,3436],{"class":2536},[83,7444,2548],{"class":117},[83,7446,7447,7449,7451],{"class":85,"line":4266},[83,7448,3443],{"class":117},[83,7450,4132],{"class":2536},[83,7452,2548],{"class":117},[83,7454,7455,7457,7459,7461,7463],{"class":85,"line":4275},[83,7456,3453],{"class":117},[83,7458,3470],{"class":2536},[83,7460,4144],{"class":117},[83,7462,3470],{"class":2536},[83,7464,2548],{"class":117},[83,7466,7467,7469,7471],{"class":85,"line":4288},[83,7468,3482],{"class":117},[83,7470,4132],{"class":2536},[83,7472,2548],{"class":117},[83,7474,7475,7477,7479],{"class":85,"line":4297},[83,7476,3491],{"class":117},[83,7478,3436],{"class":2536},[83,7480,2548],{"class":117},[83,7482,7483,7485,7487],{"class":85,"line":4306},[83,7484,2950],{"class":117},[83,7486,3643],{"class":2536},[83,7488,2548],{"class":117},[83,7490,7491,7493,7495,7497,7499],{"class":85,"line":4315},[83,7492,3443],{"class":117},[83,7494,3327],{"class":2536},[83,7496,4322],{"class":117},[83,7498,3327],{"class":2536},[83,7500,2548],{"class":117},[83,7502,7503,7505,7507,7509,7511],{"class":85,"line":4329},[83,7504,3443],{"class":117},[83,7506,3665],{"class":2536},[83,7508,3344],{"class":117},[83,7510,3665],{"class":2536},[83,7512,2548],{"class":117},[83,7514,7515,7517,7519,7521,7523],{"class":85,"line":4342},[83,7516,3443],{"class":117},[83,7518,3678],{"class":2536},[83,7520,4349],{"class":117},[83,7522,3678],{"class":2536},[83,7524,2548],{"class":117},[83,7526,7527,7529,7531],{"class":85,"line":4356},[83,7528,3491],{"class":117},[83,7530,3643],{"class":2536},[83,7532,2548],{"class":117},[83,7534,7535,7537,7539],{"class":85,"line":4365},[83,7536,2990],{"class":117},[83,7538,3571],{"class":2536},[83,7540,2548],{"class":117},[83,7542,7543,7545,7547,7549,7551],{"class":85,"line":4374},[83,7544,2754],{"class":117},[83,7546,3707],{"class":2536},[83,7548,3710],{"class":117},[83,7550,3707],{"class":2536},[83,7552,2548],{"class":117},[83,7554,7555,7557,7559,7561,7563],{"class":85,"line":4387},[83,7556,2754],{"class":117},[83,7558,3860],{"class":2536},[83,7560,3863],{"class":117},[83,7562,3860],{"class":2536},[83,7564,2548],{"class":117},[83,7566,7567,7569,7571],{"class":85,"line":4400},[83,7568,2814],{"class":117},[83,7570,2556],{"class":2536},[83,7572,2548],{"class":117},[83,7574,7575,7577,7579,7581,7583],{"class":85,"line":4409},[83,7576,2580],{"class":117},[83,7578,3392],{"class":2536},[83,7580,3358],{"class":117},[83,7582,3392],{"class":2536},[83,7584,2548],{"class":117},[83,7586,7587,7589,7591,7593,7595],{"class":85,"line":4422},[83,7588,2580],{"class":117},[83,7590,3897],{"class":2536},[83,7592,3863],{"class":117},[83,7594,3897],{"class":2536},[83,7596,2548],{"class":117},[83,7598,7599,7601,7603],{"class":85,"line":4435},[83,7600,2651],{"class":117},[83,7602,2894],{"class":2536},[83,7604,2548],{"class":117},[83,7606,7607,7609,7611,7613,7615,7617],{"class":85,"line":4444},[83,7608,2570],{"class":117},[83,7610,2894],{"class":2536},[83,7612,2540],{"class":103},[83,7614,1837],{"class":117},[83,7616,4455],{"class":107},[83,7618,2548],{"class":117},[83,7620,7621,7623,7625,7627,7629],{"class":85,"line":4460},[83,7622,2580],{"class":117},[83,7624,3707],{"class":2536},[83,7626,4467],{"class":117},[83,7628,3707],{"class":2536},[83,7630,2548],{"class":117},[83,7632,7633,7635,7637,7639,7641,7643],{"class":85,"line":4474},[83,7634,2580],{"class":117},[83,7636,2556],{"class":2536},[83,7638,2540],{"class":103},[83,7640,1837],{"class":117},[83,7642,3956],{"class":107},[83,7644,2548],{"class":117},[83,7646,7647,7649,7651],{"class":85,"line":4489},[83,7648,2754],{"class":117},[83,7650,2573],{"class":2536},[83,7652,2548],{"class":117},[83,7654,7655,7657,7659],{"class":85,"line":4498},[83,7656,2950],{"class":117},[83,7658,2601],{"class":2536},[83,7660,2548],{"class":117},[83,7662,7663,7665,7667,7669,7671],{"class":85,"line":4507},[83,7664,3443],{"class":117},[83,7666,2953],{"class":2536},[83,7668,3986],{"class":117},[83,7670,2953],{"class":2536},[83,7672,2548],{"class":117},[83,7674,7675,7677,7679,7681,7683],{"class":85,"line":4520},[83,7676,3443],{"class":117},[83,7678,3774],{"class":2536},[83,7680,3777],{"class":117},[83,7682,3774],{"class":2536},[83,7684,2548],{"class":117},[83,7686,7687,7689,7691,7693,7695],{"class":85,"line":4533},[83,7688,3443],{"class":117},[83,7690,3788],{"class":2536},[83,7692,3777],{"class":117},[83,7694,3788],{"class":2536},[83,7696,2548],{"class":117},[83,7698,7699,7701,7703,7705,7707],{"class":85,"line":4546},[83,7700,3443],{"class":117},[83,7702,2966],{"class":2536},[83,7704,3986],{"class":117},[83,7706,2966],{"class":2536},[83,7708,2548],{"class":117},[83,7710,7711,7713,7715,7717,7719],{"class":85,"line":4559},[83,7712,3443],{"class":117},[83,7714,3815],{"class":2536},[83,7716,3777],{"class":117},[83,7718,3815],{"class":2536},[83,7720,2548],{"class":117},[83,7722,7723,7725,7727,7729,7731],{"class":85,"line":4572},[83,7724,3443],{"class":117},[83,7726,2979],{"class":2536},[83,7728,3986],{"class":117},[83,7730,2979],{"class":2536},[83,7732,2548],{"class":117},[83,7734,7735,7737,7739],{"class":85,"line":4585},[83,7736,3491],{"class":117},[83,7738,2601],{"class":2536},[83,7740,2548],{"class":117},[83,7742,7743,7745,7747,7749,7751],{"class":85,"line":4594},[83,7744,2950],{"class":117},[83,7746,2583],{"class":2536},[83,7748,3743],{"class":117},[83,7750,2583],{"class":2536},[83,7752,2548],{"class":117},[83,7754,7755,7757,7759,7761,7763],{"class":85,"line":4607},[83,7756,2950],{"class":117},[83,7758,3707],{"class":2536},[83,7760,3710],{"class":117},[83,7762,3707],{"class":2536},[83,7764,2548],{"class":117},[83,7766,7767,7769,7771],{"class":85,"line":4620},[83,7768,2990],{"class":117},[83,7770,2573],{"class":2536},[83,7772,2548],{"class":117},[83,7774,7775,7777,7779,7781,7783,7785],{"class":85,"line":4629},[83,7776,2754],{"class":117},[83,7778,3420],{"class":2536},[83,7780,2540],{"class":103},[83,7782,1837],{"class":117},[83,7784,4113],{"class":107},[83,7786,2548],{"class":117},[83,7788,7789,7791,7793],{"class":85,"line":4644},[83,7790,2950],{"class":117},[83,7792,3436],{"class":2536},[83,7794,2548],{"class":117},[83,7796,7797,7799,7801],{"class":85,"line":4653},[83,7798,3443],{"class":117},[83,7800,4132],{"class":2536},[83,7802,2548],{"class":117},[83,7804,7805,7807,7809,7811,7813],{"class":85,"line":4662},[83,7806,3453],{"class":117},[83,7808,3470],{"class":2536},[83,7810,4144],{"class":117},[83,7812,3470],{"class":2536},[83,7814,2548],{"class":117},[83,7816,7817,7819,7821],{"class":85,"line":4675},[83,7818,3482],{"class":117},[83,7820,4132],{"class":2536},[83,7822,2548],{"class":117},[83,7824,7825,7827,7829],{"class":85,"line":4684},[83,7826,3491],{"class":117},[83,7828,3436],{"class":2536},[83,7830,2548],{"class":117},[83,7832,7833,7835,7837],{"class":85,"line":4693},[83,7834,2950],{"class":117},[83,7836,3502],{"class":2536},[83,7838,2548],{"class":117},[83,7840,7841,7843,7845],{"class":85,"line":4702},[83,7842,3443],{"class":117},[83,7844,3511],{"class":2536},[83,7846,2548],{"class":117},[83,7848,7849,7851,7853],{"class":85,"line":4711},[83,7850,3453],{"class":117},[83,7852,3520],{"class":2536},[83,7854,3201],{"class":117},[83,7856,7857,7859,7861],{"class":85,"line":4720},[83,7858,3482],{"class":117},[83,7860,3511],{"class":2536},[83,7862,2548],{"class":117},[83,7864,7865,7867,7869],{"class":85,"line":4729},[83,7866,3443],{"class":117},[83,7868,3537],{"class":2536},[83,7870,3201],{"class":117},[83,7872,7873,7875,7877],{"class":85,"line":4738},[83,7874,3443],{"class":117},[83,7876,3546],{"class":2536},[83,7878,3201],{"class":117},[83,7880,7881,7883,7885],{"class":85,"line":4747},[83,7882,3491],{"class":117},[83,7884,3502],{"class":2536},[83,7886,2548],{"class":117},[83,7888,7889,7891,7893],{"class":85,"line":4756},[83,7890,2990],{"class":117},[83,7892,3420],{"class":2536},[83,7894,2548],{"class":117},[83,7896,7897,7899,7901,7903,7905,7907],{"class":85,"line":4765},[83,7898,2754],{"class":117},[83,7900,3571],{"class":2536},[83,7902,2540],{"class":103},[83,7904,1837],{"class":117},[83,7906,4252],{"class":107},[83,7908,2548],{"class":117},[83,7910,7911,7913,7915],{"class":85,"line":4780},[83,7912,2950],{"class":117},[83,7914,3436],{"class":2536},[83,7916,2548],{"class":117},[83,7918,7919,7921,7923],{"class":85,"line":4789},[83,7920,3443],{"class":117},[83,7922,4132],{"class":2536},[83,7924,2548],{"class":117},[83,7926,7927,7929,7931,7933,7935],{"class":85,"line":4798},[83,7928,3453],{"class":117},[83,7930,3470],{"class":2536},[83,7932,4144],{"class":117},[83,7934,3470],{"class":2536},[83,7936,2548],{"class":117},[83,7938,7939,7941,7943],{"class":85,"line":4811},[83,7940,3482],{"class":117},[83,7942,4132],{"class":2536},[83,7944,2548],{"class":117},[83,7946,7947,7949,7951],{"class":85,"line":4820},[83,7948,3491],{"class":117},[83,7950,3436],{"class":2536},[83,7952,2548],{"class":117},[83,7954,7955,7957,7959],{"class":85,"line":4829},[83,7956,2950],{"class":117},[83,7958,3643],{"class":2536},[83,7960,2548],{"class":117},[83,7962,7963,7965,7967,7969,7971],{"class":85,"line":4838},[83,7964,3443],{"class":117},[83,7966,3327],{"class":2536},[83,7968,4322],{"class":117},[83,7970,3327],{"class":2536},[83,7972,2548],{"class":117},[83,7974,7975,7977,7979,7981,7983],{"class":85,"line":4851},[83,7976,3443],{"class":117},[83,7978,3665],{"class":2536},[83,7980,3344],{"class":117},[83,7982,3665],{"class":2536},[83,7984,2548],{"class":117},[83,7986,7987,7989,7991,7993,7995],{"class":85,"line":4864},[83,7988,3443],{"class":117},[83,7990,3678],{"class":2536},[83,7992,4349],{"class":117},[83,7994,3678],{"class":2536},[83,7996,2548],{"class":117},[83,7998,7999,8001,8003],{"class":85,"line":4877},[83,8000,3491],{"class":117},[83,8002,3643],{"class":2536},[83,8004,2548],{"class":117},[83,8006,8007,8009,8011],{"class":85,"line":4886},[83,8008,2990],{"class":117},[83,8010,3571],{"class":2536},[83,8012,2548],{"class":117},[83,8014,8015,8017,8019,8021,8023],{"class":85,"line":4895},[83,8016,2754],{"class":117},[83,8018,3707],{"class":2536},[83,8020,3710],{"class":117},[83,8022,3707],{"class":2536},[83,8024,2548],{"class":117},[83,8026,8027,8029,8031,8033,8035],{"class":85,"line":4908},[83,8028,2754],{"class":117},[83,8030,3860],{"class":2536},[83,8032,3863],{"class":117},[83,8034,3860],{"class":2536},[83,8036,2548],{"class":117},[83,8038,8039,8041,8043],{"class":85,"line":4921},[83,8040,2814],{"class":117},[83,8042,2556],{"class":2536},[83,8044,2548],{"class":117},[83,8046,8047,8049,8051,8053,8055],{"class":85,"line":4930},[83,8048,2580],{"class":117},[83,8050,3392],{"class":2536},[83,8052,3358],{"class":117},[83,8054,3392],{"class":2536},[83,8056,2548],{"class":117},[83,8058,8059,8061,8063,8065,8067],{"class":85,"line":4943},[83,8060,2580],{"class":117},[83,8062,3897],{"class":2536},[83,8064,3863],{"class":117},[83,8066,3897],{"class":2536},[83,8068,2548],{"class":117},[83,8070,8071,8073,8075],{"class":85,"line":4956},[83,8072,2651],{"class":117},[83,8074,2894],{"class":2536},[83,8076,2548],{"class":117},[83,8078,8079,8081,8083,8085,8087,8089],{"class":85,"line":4965},[83,8080,2570],{"class":117},[83,8082,2894],{"class":2536},[83,8084,2540],{"class":103},[83,8086,1837],{"class":117},[83,8088,4976],{"class":107},[83,8090,2548],{"class":117},[83,8092,8093,8095,8097,8099,8101],{"class":85,"line":4981},[83,8094,2580],{"class":117},[83,8096,3707],{"class":2536},[83,8098,4988],{"class":117},[83,8100,3707],{"class":2536},[83,8102,2548],{"class":117},[83,8104,8105,8107,8109,8111,8113,8115],{"class":85,"line":4995},[83,8106,2580],{"class":117},[83,8108,2556],{"class":2536},[83,8110,2540],{"class":103},[83,8112,1837],{"class":117},[83,8114,3956],{"class":107},[83,8116,2548],{"class":117},[83,8118,8119,8121,8123],{"class":85,"line":5010},[83,8120,2754],{"class":117},[83,8122,2573],{"class":2536},[83,8124,2548],{"class":117},[83,8126,8127,8129,8131],{"class":85,"line":5019},[83,8128,2950],{"class":117},[83,8130,2601],{"class":2536},[83,8132,2548],{"class":117},[83,8134,8135,8137,8139,8141,8143],{"class":85,"line":5028},[83,8136,3443],{"class":117},[83,8138,2953],{"class":2536},[83,8140,3986],{"class":117},[83,8142,2953],{"class":2536},[83,8144,2548],{"class":117},[83,8146,8147,8149,8151,8153,8155],{"class":85,"line":5041},[83,8148,3443],{"class":117},[83,8150,3774],{"class":2536},[83,8152,3777],{"class":117},[83,8154,3774],{"class":2536},[83,8156,2548],{"class":117},[83,8158,8159,8161,8163,8165,8167],{"class":85,"line":5054},[83,8160,3443],{"class":117},[83,8162,3788],{"class":2536},[83,8164,3777],{"class":117},[83,8166,3788],{"class":2536},[83,8168,2548],{"class":117},[83,8170,8171,8173,8175,8177,8179],{"class":85,"line":5067},[83,8172,3443],{"class":117},[83,8174,2966],{"class":2536},[83,8176,3986],{"class":117},[83,8178,2966],{"class":2536},[83,8180,2548],{"class":117},[83,8182,8183,8185,8187,8189,8191],{"class":85,"line":5080},[83,8184,3443],{"class":117},[83,8186,3815],{"class":2536},[83,8188,3777],{"class":117},[83,8190,3815],{"class":2536},[83,8192,2548],{"class":117},[83,8194,8195,8197,8199,8201,8203],{"class":85,"line":5093},[83,8196,3443],{"class":117},[83,8198,2979],{"class":2536},[83,8200,3986],{"class":117},[83,8202,2979],{"class":2536},[83,8204,2548],{"class":117},[83,8206,8207,8209,8211],{"class":85,"line":5106},[83,8208,3491],{"class":117},[83,8210,2601],{"class":2536},[83,8212,2548],{"class":117},[83,8214,8215,8217,8219,8221,8223],{"class":85,"line":5115},[83,8216,2950],{"class":117},[83,8218,2583],{"class":2536},[83,8220,3743],{"class":117},[83,8222,2583],{"class":2536},[83,8224,2548],{"class":117},[83,8226,8227,8229,8231,8233,8235],{"class":85,"line":5128},[83,8228,2950],{"class":117},[83,8230,3707],{"class":2536},[83,8232,3710],{"class":117},[83,8234,3707],{"class":2536},[83,8236,2548],{"class":117},[83,8238,8239,8241,8243],{"class":85,"line":5141},[83,8240,2990],{"class":117},[83,8242,2573],{"class":2536},[83,8244,2548],{"class":117},[83,8246,8247,8249,8251,8253,8255,8257],{"class":85,"line":5150},[83,8248,2754],{"class":117},[83,8250,3420],{"class":2536},[83,8252,2540],{"class":103},[83,8254,1837],{"class":117},[83,8256,4113],{"class":107},[83,8258,2548],{"class":117},[83,8260,8261,8263,8265],{"class":85,"line":5165},[83,8262,2950],{"class":117},[83,8264,3436],{"class":2536},[83,8266,2548],{"class":117},[83,8268,8269,8271,8273],{"class":85,"line":5174},[83,8270,3443],{"class":117},[83,8272,4132],{"class":2536},[83,8274,2548],{"class":117},[83,8276,8277,8279,8281,8283,8285],{"class":85,"line":5183},[83,8278,3453],{"class":117},[83,8280,3470],{"class":2536},[83,8282,5190],{"class":117},[83,8284,3470],{"class":2536},[83,8286,2548],{"class":117},[83,8288,8289,8291,8293],{"class":85,"line":5197},[83,8290,3482],{"class":117},[83,8292,4132],{"class":2536},[83,8294,2548],{"class":117},[83,8296,8297,8299,8301],{"class":85,"line":5206},[83,8298,3491],{"class":117},[83,8300,3436],{"class":2536},[83,8302,2548],{"class":117},[83,8304,8305,8307,8309],{"class":85,"line":5215},[83,8306,2950],{"class":117},[83,8308,3502],{"class":2536},[83,8310,2548],{"class":117},[83,8312,8313,8315,8317],{"class":85,"line":5224},[83,8314,3443],{"class":117},[83,8316,3511],{"class":2536},[83,8318,2548],{"class":117},[83,8320,8321,8323,8325],{"class":85,"line":5233},[83,8322,3453],{"class":117},[83,8324,3520],{"class":2536},[83,8326,3201],{"class":117},[83,8328,8329,8331,8333],{"class":85,"line":5242},[83,8330,3482],{"class":117},[83,8332,3511],{"class":2536},[83,8334,2548],{"class":117},[83,8336,8337,8339,8341],{"class":85,"line":5251},[83,8338,3443],{"class":117},[83,8340,3537],{"class":2536},[83,8342,3201],{"class":117},[83,8344,8345,8347,8349],{"class":85,"line":5260},[83,8346,3443],{"class":117},[83,8348,3546],{"class":2536},[83,8350,3201],{"class":117},[83,8352,8353,8355,8357],{"class":85,"line":5269},[83,8354,3491],{"class":117},[83,8356,3502],{"class":2536},[83,8358,2548],{"class":117},[83,8360,8361,8363,8365],{"class":85,"line":5278},[83,8362,2990],{"class":117},[83,8364,3420],{"class":2536},[83,8366,2548],{"class":117},[83,8368,8369,8371,8373,8375,8377,8379],{"class":85,"line":5287},[83,8370,2754],{"class":117},[83,8372,3571],{"class":2536},[83,8374,2540],{"class":103},[83,8376,1837],{"class":117},[83,8378,4252],{"class":107},[83,8380,2548],{"class":117},[83,8382,8383,8385,8387],{"class":85,"line":5302},[83,8384,2950],{"class":117},[83,8386,3436],{"class":2536},[83,8388,2548],{"class":117},[83,8390,8391,8393,8395],{"class":85,"line":5311},[83,8392,3443],{"class":117},[83,8394,4132],{"class":2536},[83,8396,2548],{"class":117},[83,8398,8399,8401,8403,8405,8407],{"class":85,"line":5320},[83,8400,3453],{"class":117},[83,8402,3470],{"class":2536},[83,8404,5190],{"class":117},[83,8406,3470],{"class":2536},[83,8408,2548],{"class":117},[83,8410,8411,8413,8415],{"class":85,"line":5333},[83,8412,3482],{"class":117},[83,8414,4132],{"class":2536},[83,8416,2548],{"class":117},[83,8418,8419,8421,8423],{"class":85,"line":5342},[83,8420,3491],{"class":117},[83,8422,3436],{"class":2536},[83,8424,2548],{"class":117},[83,8426,8427,8429,8431],{"class":85,"line":5351},[83,8428,2950],{"class":117},[83,8430,3643],{"class":2536},[83,8432,2548],{"class":117},[83,8434,8435,8437,8439,8441,8443],{"class":85,"line":5360},[83,8436,3443],{"class":117},[83,8438,3327],{"class":2536},[83,8440,4322],{"class":117},[83,8442,3327],{"class":2536},[83,8444,2548],{"class":117},[83,8446,8447,8449,8451,8453,8455],{"class":85,"line":5373},[83,8448,3443],{"class":117},[83,8450,3665],{"class":2536},[83,8452,3344],{"class":117},[83,8454,3665],{"class":2536},[83,8456,2548],{"class":117},[83,8458,8459,8461,8463,8465,8467],{"class":85,"line":5386},[83,8460,3443],{"class":117},[83,8462,3678],{"class":2536},[83,8464,4349],{"class":117},[83,8466,3678],{"class":2536},[83,8468,2548],{"class":117},[83,8470,8471,8473,8475],{"class":85,"line":5399},[83,8472,3491],{"class":117},[83,8474,3643],{"class":2536},[83,8476,2548],{"class":117},[83,8478,8479,8481,8483],{"class":85,"line":5408},[83,8480,2990],{"class":117},[83,8482,3571],{"class":2536},[83,8484,2548],{"class":117},[83,8486,8487,8489,8491,8493,8495],{"class":85,"line":5417},[83,8488,2754],{"class":117},[83,8490,3707],{"class":2536},[83,8492,3710],{"class":117},[83,8494,3707],{"class":2536},[83,8496,2548],{"class":117},[83,8498,8499,8501,8503,8505,8507],{"class":85,"line":5430},[83,8500,2754],{"class":117},[83,8502,3860],{"class":2536},[83,8504,3863],{"class":117},[83,8506,3860],{"class":2536},[83,8508,2548],{"class":117},[83,8510,8511,8513,8515],{"class":85,"line":5443},[83,8512,2814],{"class":117},[83,8514,2556],{"class":2536},[83,8516,2548],{"class":117},[83,8518,8519,8521,8523,8525,8527],{"class":85,"line":5452},[83,8520,2580],{"class":117},[83,8522,3392],{"class":2536},[83,8524,3358],{"class":117},[83,8526,3392],{"class":2536},[83,8528,2548],{"class":117},[83,8530,8531,8533,8535,8537,8539],{"class":85,"line":5465},[83,8532,2580],{"class":117},[83,8534,3897],{"class":2536},[83,8536,3863],{"class":117},[83,8538,3897],{"class":2536},[83,8540,2548],{"class":117},[83,8542,8543,8545,8547],{"class":85,"line":5478},[83,8544,2651],{"class":117},[83,8546,2894],{"class":2536},[83,8548,2548],{"class":117},[83,8550,8551,8553,8555,8557,8559,8561],{"class":85,"line":5487},[83,8552,2570],{"class":117},[83,8554,2894],{"class":2536},[83,8556,2540],{"class":103},[83,8558,1837],{"class":117},[83,8560,5498],{"class":107},[83,8562,2548],{"class":117},[83,8564,8565,8567,8569,8571,8573],{"class":85,"line":5503},[83,8566,2580],{"class":117},[83,8568,3707],{"class":2536},[83,8570,5510],{"class":117},[83,8572,3707],{"class":2536},[83,8574,2548],{"class":117},[83,8576,8577,8579,8581,8583,8585,8587],{"class":85,"line":5517},[83,8578,2580],{"class":117},[83,8580,2556],{"class":2536},[83,8582,2540],{"class":103},[83,8584,1837],{"class":117},[83,8586,3956],{"class":107},[83,8588,2548],{"class":117},[83,8590,8591,8593,8595],{"class":85,"line":5532},[83,8592,2754],{"class":117},[83,8594,2573],{"class":2536},[83,8596,2548],{"class":117},[83,8598,8599,8601,8603],{"class":85,"line":5541},[83,8600,2950],{"class":117},[83,8602,2601],{"class":2536},[83,8604,2548],{"class":117},[83,8606,8607,8609,8611,8613,8615],{"class":85,"line":5550},[83,8608,3443],{"class":117},[83,8610,2953],{"class":2536},[83,8612,3986],{"class":117},[83,8614,2953],{"class":2536},[83,8616,2548],{"class":117},[83,8618,8619,8621,8623,8625,8627],{"class":85,"line":5563},[83,8620,3443],{"class":117},[83,8622,3774],{"class":2536},[83,8624,3777],{"class":117},[83,8626,3774],{"class":2536},[83,8628,2548],{"class":117},[83,8630,8631,8633,8635,8637,8639],{"class":85,"line":5576},[83,8632,3443],{"class":117},[83,8634,3788],{"class":2536},[83,8636,3777],{"class":117},[83,8638,3788],{"class":2536},[83,8640,2548],{"class":117},[83,8642,8643,8645,8647,8649,8651],{"class":85,"line":5589},[83,8644,3443],{"class":117},[83,8646,2966],{"class":2536},[83,8648,3986],{"class":117},[83,8650,2966],{"class":2536},[83,8652,2548],{"class":117},[83,8654,8655,8657,8659,8661,8663],{"class":85,"line":5602},[83,8656,3443],{"class":117},[83,8658,3815],{"class":2536},[83,8660,3777],{"class":117},[83,8662,3815],{"class":2536},[83,8664,2548],{"class":117},[83,8666,8667,8669,8671,8673,8675],{"class":85,"line":5615},[83,8668,3443],{"class":117},[83,8670,2979],{"class":2536},[83,8672,3986],{"class":117},[83,8674,2979],{"class":2536},[83,8676,2548],{"class":117},[83,8678,8679,8681,8683],{"class":85,"line":5628},[83,8680,3491],{"class":117},[83,8682,2601],{"class":2536},[83,8684,2548],{"class":117},[83,8686,8687,8689,8691,8693,8695],{"class":85,"line":5637},[83,8688,2950],{"class":117},[83,8690,2583],{"class":2536},[83,8692,3743],{"class":117},[83,8694,2583],{"class":2536},[83,8696,2548],{"class":117},[83,8698,8699,8701,8703,8705,8707],{"class":85,"line":5650},[83,8700,2950],{"class":117},[83,8702,3707],{"class":2536},[83,8704,3710],{"class":117},[83,8706,3707],{"class":2536},[83,8708,2548],{"class":117},[83,8710,8711,8713,8715],{"class":85,"line":5663},[83,8712,2990],{"class":117},[83,8714,2573],{"class":2536},[83,8716,2548],{"class":117},[83,8718,8719,8721,8723,8725,8727,8729],{"class":85,"line":5672},[83,8720,2754],{"class":117},[83,8722,3420],{"class":2536},[83,8724,2540],{"class":103},[83,8726,1837],{"class":117},[83,8728,4113],{"class":107},[83,8730,2548],{"class":117},[83,8732,8733,8735,8737],{"class":85,"line":5687},[83,8734,2950],{"class":117},[83,8736,3436],{"class":2536},[83,8738,2548],{"class":117},[83,8740,8741,8743,8745],{"class":85,"line":5696},[83,8742,3443],{"class":117},[83,8744,4132],{"class":2536},[83,8746,2548],{"class":117},[83,8748,8749,8751,8753,8755,8757],{"class":85,"line":5705},[83,8750,3453],{"class":117},[83,8752,3470],{"class":2536},[83,8754,5190],{"class":117},[83,8756,3470],{"class":2536},[83,8758,2548],{"class":117},[83,8760,8761,8763,8765],{"class":85,"line":5718},[83,8762,3482],{"class":117},[83,8764,4132],{"class":2536},[83,8766,2548],{"class":117},[83,8768,8769,8771,8773],{"class":85,"line":5727},[83,8770,3491],{"class":117},[83,8772,3436],{"class":2536},[83,8774,2548],{"class":117},[83,8776,8777,8779,8781],{"class":85,"line":5736},[83,8778,2950],{"class":117},[83,8780,3502],{"class":2536},[83,8782,2548],{"class":117},[83,8784,8785,8787,8789],{"class":85,"line":5745},[83,8786,3443],{"class":117},[83,8788,3511],{"class":2536},[83,8790,2548],{"class":117},[83,8792,8793,8795,8797],{"class":85,"line":5754},[83,8794,3453],{"class":117},[83,8796,3520],{"class":2536},[83,8798,3201],{"class":117},[83,8800,8801,8803,8805],{"class":85,"line":5763},[83,8802,3482],{"class":117},[83,8804,3511],{"class":2536},[83,8806,2548],{"class":117},[83,8808,8809,8811,8813],{"class":85,"line":5772},[83,8810,3443],{"class":117},[83,8812,3537],{"class":2536},[83,8814,3201],{"class":117},[83,8816,8817,8819,8821],{"class":85,"line":5781},[83,8818,3443],{"class":117},[83,8820,3546],{"class":2536},[83,8822,3201],{"class":117},[83,8824,8825,8827,8829],{"class":85,"line":5790},[83,8826,3491],{"class":117},[83,8828,3502],{"class":2536},[83,8830,2548],{"class":117},[83,8832,8833,8835,8837],{"class":85,"line":5799},[83,8834,2990],{"class":117},[83,8836,3420],{"class":2536},[83,8838,2548],{"class":117},[83,8840,8841,8843,8845,8847,8849,8851],{"class":85,"line":5808},[83,8842,2754],{"class":117},[83,8844,3571],{"class":2536},[83,8846,2540],{"class":103},[83,8848,1837],{"class":117},[83,8850,4252],{"class":107},[83,8852,2548],{"class":117},[83,8854,8855,8857,8859],{"class":85,"line":5823},[83,8856,2950],{"class":117},[83,8858,3436],{"class":2536},[83,8860,2548],{"class":117},[83,8862,8863,8865,8867],{"class":85,"line":5832},[83,8864,3443],{"class":117},[83,8866,4132],{"class":2536},[83,8868,2548],{"class":117},[83,8870,8871,8873,8875,8877,8879],{"class":85,"line":5841},[83,8872,3453],{"class":117},[83,8874,3470],{"class":2536},[83,8876,5190],{"class":117},[83,8878,3470],{"class":2536},[83,8880,2548],{"class":117},[83,8882,8883,8885,8887],{"class":85,"line":5854},[83,8884,3482],{"class":117},[83,8886,4132],{"class":2536},[83,8888,2548],{"class":117},[83,8890,8891,8893,8895],{"class":85,"line":5863},[83,8892,3491],{"class":117},[83,8894,3436],{"class":2536},[83,8896,2548],{"class":117},[83,8898,8899,8901,8903],{"class":85,"line":5872},[83,8900,2950],{"class":117},[83,8902,3643],{"class":2536},[83,8904,2548],{"class":117},[83,8906,8907,8909,8911,8913,8915],{"class":85,"line":5881},[83,8908,3443],{"class":117},[83,8910,3327],{"class":2536},[83,8912,4322],{"class":117},[83,8914,3327],{"class":2536},[83,8916,2548],{"class":117},[83,8918,8919,8921,8923,8925,8927],{"class":85,"line":5894},[83,8920,3443],{"class":117},[83,8922,3665],{"class":2536},[83,8924,3344],{"class":117},[83,8926,3665],{"class":2536},[83,8928,2548],{"class":117},[83,8930,8931,8933,8935,8937,8939],{"class":85,"line":5907},[83,8932,3443],{"class":117},[83,8934,3678],{"class":2536},[83,8936,4349],{"class":117},[83,8938,3678],{"class":2536},[83,8940,2548],{"class":117},[83,8942,8943,8945,8947],{"class":85,"line":5920},[83,8944,3491],{"class":117},[83,8946,3643],{"class":2536},[83,8948,2548],{"class":117},[83,8950,8951,8953,8955],{"class":85,"line":5929},[83,8952,2990],{"class":117},[83,8954,3571],{"class":2536},[83,8956,2548],{"class":117},[83,8958,8959,8961,8963,8965,8967],{"class":85,"line":5938},[83,8960,2754],{"class":117},[83,8962,3707],{"class":2536},[83,8964,3710],{"class":117},[83,8966,3707],{"class":2536},[83,8968,2548],{"class":117},[83,8970,8971,8973,8975,8977,8979],{"class":85,"line":5951},[83,8972,2754],{"class":117},[83,8974,3860],{"class":2536},[83,8976,3863],{"class":117},[83,8978,3860],{"class":2536},[83,8980,2548],{"class":117},[83,8982,8983,8985,8987],{"class":85,"line":5964},[83,8984,2814],{"class":117},[83,8986,2556],{"class":2536},[83,8988,2548],{"class":117},[83,8990,8991,8993,8995,8997,8999],{"class":85,"line":5973},[83,8992,2580],{"class":117},[83,8994,3392],{"class":2536},[83,8996,3358],{"class":117},[83,8998,3392],{"class":2536},[83,9000,2548],{"class":117},[83,9002,9003,9005,9007,9009,9011],{"class":85,"line":5986},[83,9004,2580],{"class":117},[83,9006,3897],{"class":2536},[83,9008,3863],{"class":117},[83,9010,3897],{"class":2536},[83,9012,2548],{"class":117},[83,9014,9015,9017,9019],{"class":85,"line":5999},[83,9016,2651],{"class":117},[83,9018,2894],{"class":2536},[83,9020,2548],{"class":117},[83,9022,9023,9025,9027,9029,9031,9033,9035,9037,9039],{"class":85,"line":6008},[83,9024,2570],{"class":117},[83,9026,6013],{"class":2536},[83,9028,2540],{"class":103},[83,9030,1837],{"class":117},[83,9032,6020],{"class":107},[83,9034,3119],{"class":103},[83,9036,1837],{"class":117},[83,9038,6027],{"class":107},[83,9040,2548],{"class":117},[83,9042,9043,9045,9047,9049,9051],{"class":85,"line":6032},[83,9044,2580],{"class":117},[83,9046,3707],{"class":2536},[83,9048,6039],{"class":117},[83,9050,3707],{"class":2536},[83,9052,2548],{"class":117},[83,9054,9055,9057,9059,9061,9063],{"class":85,"line":6046},[83,9056,2580],{"class":117},[83,9058,6051],{"class":2536},[83,9060,3358],{"class":117},[83,9062,6051],{"class":2536},[83,9064,2548],{"class":117},[83,9066,9067,9069,9071,9073,9075],{"class":85,"line":6060},[83,9068,2580],{"class":117},[83,9070,6065],{"class":2536},[83,9072,3150],{"class":117},[83,9074,6065],{"class":2536},[83,9076,2548],{"class":117},[83,9078,9079,9081,9083,9085,9087],{"class":85,"line":6074},[83,9080,2580],{"class":117},[83,9082,6079],{"class":2536},[83,9084,6082],{"class":117},[83,9086,6079],{"class":2536},[83,9088,2548],{"class":117},[83,9090,9091,9093,9095,9097,9099],{"class":85,"line":6089},[83,9092,2580],{"class":117},[83,9094,3665],{"class":2536},[83,9096,3654],{"class":117},[83,9098,3665],{"class":2536},[83,9100,2548],{"class":117},[83,9102,9103,9105,9107,9109,9111],{"class":85,"line":6102},[83,9104,2580],{"class":117},[83,9106,3678],{"class":2536},[83,9108,6109],{"class":117},[83,9110,3678],{"class":2536},[83,9112,2548],{"class":117},[83,9114,9115,9117,9119],{"class":85,"line":6116},[83,9116,2580],{"class":117},[83,9118,6121],{"class":2536},[83,9120,2548],{"class":117},[83,9122,9123,9125,9127,9129,9131],{"class":85,"line":6126},[83,9124,2754],{"class":117},[83,9126,6131],{"class":2536},[83,9128,3164],{"class":117},[83,9130,6131],{"class":2536},[83,9132,2548],{"class":117},[83,9134,9135,9137,9139,9141,9143],{"class":85,"line":6140},[83,9136,2754],{"class":117},[83,9138,6145],{"class":2536},[83,9140,6148],{"class":117},[83,9142,6145],{"class":2536},[83,9144,2548],{"class":117},[83,9146,9147,9149,9151,9153,9155],{"class":85,"line":6155},[83,9148,2754],{"class":117},[83,9150,6160],{"class":2536},[83,9152,6163],{"class":117},[83,9154,6160],{"class":2536},[83,9156,2548],{"class":117},[83,9158,9159,9161,9163,9165,9167],{"class":85,"line":6170},[83,9160,2754],{"class":117},[83,9162,6175],{"class":2536},[83,9164,3136],{"class":117},[83,9166,6175],{"class":2536},[83,9168,2548],{"class":117},[83,9170,9171,9173,9175],{"class":85,"line":6184},[83,9172,2814],{"class":117},[83,9174,6121],{"class":2536},[83,9176,2548],{"class":117},[83,9178,9179,9181,9183],{"class":85,"line":6193},[83,9180,2580],{"class":117},[83,9182,6198],{"class":2536},[83,9184,2548],{"class":117},[83,9186,9187,9189,9191,9193,9195],{"class":85,"line":6203},[83,9188,2754],{"class":117},[83,9190,6208],{"class":2536},[83,9192,3777],{"class":117},[83,9194,6208],{"class":2536},[83,9196,2548],{"class":117},[83,9198,9199,9201,9203,9205,9207],{"class":85,"line":6217},[83,9200,2754],{"class":117},[83,9202,6222],{"class":2536},[83,9204,3777],{"class":117},[83,9206,6222],{"class":2536},[83,9208,2548],{"class":117},[83,9210,9211,9213,9215,9217,9219],{"class":85,"line":6231},[83,9212,2754],{"class":117},[83,9214,6236],{"class":2536},[83,9216,3777],{"class":117},[83,9218,6236],{"class":2536},[83,9220,2548],{"class":117},[83,9222,9223,9225,9227],{"class":85,"line":6245},[83,9224,2814],{"class":117},[83,9226,6198],{"class":2536},[83,9228,2548],{"class":117},[83,9230,9231,9233,9235],{"class":85,"line":6254},[83,9232,2651],{"class":117},[83,9234,6013],{"class":2536},[83,9236,2548],{"class":117},[83,9238,9239,9241,9243],{"class":85,"line":6263},[83,9240,2660],{"class":117},[83,9242,1601],{"class":2536},[83,9244,2548],{"class":117},[83,9246,9247,9249,9251],{"class":85,"line":6272},[83,9248,2669],{"class":117},[83,9250,2877],{"class":2536},[83,9252,2548],{"class":117},[15,9254,9255],{},[19,9256,9257],{},"3. Write the launch file",[15,9259,1680,9260,1684],{},[80,9261,9262],{},"gazebo_sim_world.launch.py",[73,9264,9266],{"className":1687,"code":9265,"language":1689,"meta":78,"style":78},"import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory('demo_gazebo_sim')\n    pkg_ros_gz_sim = get_package_share_directory('ros_gz_sim')\n    world_file = os.path.join(this_pkg,\"world\",\"house.sdf\")\n\n    gz_sim = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(pkg_ros_gz_sim, 'launch', 'gz_sim.launch.py')),\n        launch_arguments={\n            'gz_args': '-r ' + world_file\n        }.items(),\n    )\n    return LaunchDescription([\n        gz_sim\n    ])\n",[80,9267,9268,9274,9278,9288,9292,9302,9312,9322,9326,9334,9338,9350,9362,9380,9384,9392,9396,9408,9416,9428,9432,9436,9442,9447],{"__ignoreMap":78},[83,9269,9270,9272],{"class":85,"line":86},[83,9271,1696],{"class":742},[83,9273,1699],{"class":117},[83,9275,9276],{"class":85,"line":93},[83,9277,90],{"emptyLinePlaceholder":89},[83,9279,9280,9282,9284,9286],{"class":85,"line":100},[83,9281,1708],{"class":742},[83,9283,1711],{"class":117},[83,9285,1696],{"class":742},[83,9287,1716],{"class":117},[83,9289,9290],{"class":85,"line":124},[83,9291,90],{"emptyLinePlaceholder":89},[83,9293,9294,9296,9298,9300],{"class":85,"line":129},[83,9295,1708],{"class":742},[83,9297,1727],{"class":117},[83,9299,1696],{"class":742},[83,9301,1732],{"class":117},[83,9303,9304,9306,9308,9310],{"class":85,"line":135},[83,9305,1708],{"class":742},[83,9307,1739],{"class":117},[83,9309,1696],{"class":742},[83,9311,1755],{"class":117},[83,9313,9314,9316,9318,9320],{"class":85,"line":147},[83,9315,1708],{"class":742},[83,9317,1774],{"class":117},[83,9319,1696],{"class":742},[83,9321,1779],{"class":117},[83,9323,9324],{"class":85,"line":152},[83,9325,90],{"emptyLinePlaceholder":89},[83,9327,9328,9330,9332],{"class":85,"line":158},[83,9329,1817],{"class":742},[83,9331,1820],{"class":103},[83,9333,1823],{"class":117},[83,9335,9336],{"class":85,"line":405},[83,9337,90],{"emptyLinePlaceholder":89},[83,9339,9340,9342,9344,9346,9348],{"class":85,"line":411},[83,9341,1834],{"class":117},[83,9343,1837],{"class":742},[83,9345,1840],{"class":117},[83,9347,1843],{"class":107},[83,9349,1587],{"class":117},[83,9351,9352,9354,9356,9358,9360],{"class":85,"line":417},[83,9353,1851],{"class":117},[83,9355,1837],{"class":742},[83,9357,1840],{"class":117},[83,9359,1858],{"class":107},[83,9361,1587],{"class":117},[83,9363,9364,9366,9368,9370,9373,9375,9378],{"class":85,"line":423},[83,9365,1866],{"class":117},[83,9367,1837],{"class":742},[83,9369,1871],{"class":117},[83,9371,9372],{"class":107},"\"world\"",[83,9374,1877],{"class":117},[83,9376,9377],{"class":107},"\"house.sdf\"",[83,9379,1587],{"class":117},[83,9381,9382],{"class":85,"line":1814},[83,9383,90],{"emptyLinePlaceholder":89},[83,9385,9386,9388,9390],{"class":85,"line":1826},[83,9387,1893],{"class":117},[83,9389,1837],{"class":742},[83,9391,1898],{"class":117},[83,9393,9394],{"class":85,"line":1831},[83,9395,1904],{"class":117},[83,9397,9398,9400,9402,9404,9406],{"class":85,"line":1848},[83,9399,1910],{"class":117},[83,9401,1913],{"class":107},[83,9403,1916],{"class":117},[83,9405,1919],{"class":107},[83,9407,1922],{"class":117},[83,9409,9410,9412,9414],{"class":85,"line":1863},[83,9411,1929],{"class":1928},[83,9413,1837],{"class":742},[83,9415,1934],{"class":117},[83,9417,9418,9420,9422,9424,9426],{"class":85,"line":1885},[83,9419,1940],{"class":107},[83,9421,1943],{"class":117},[83,9423,1946],{"class":107},[83,9425,1949],{"class":742},[83,9427,1952],{"class":117},[83,9429,9430],{"class":85,"line":1890},[83,9431,1958],{"class":117},[83,9433,9434],{"class":85,"line":1901},[83,9435,1964],{"class":117},[83,9437,9438,9440],{"class":85,"line":1907},[83,9439,2242],{"class":742},[83,9441,2245],{"class":117},[83,9443,9444],{"class":85,"line":1925},[83,9445,9446],{"class":117},"        gz_sim\n",[83,9448,9449],{"class":85,"line":1937},[83,9450,2302],{"class":117},[15,9452,9453],{},[19,9454,9455],{},"4. Build",[15,9457,2318],{},[73,9459,9460],{"className":75,"code":2321,"language":77,"meta":78,"style":78},[80,9461,9462],{"__ignoreMap":78},[83,9463,9464,9466,9468,9470],{"class":85,"line":86},[83,9465,2328],{"class":103},[83,9467,2331],{"class":107},[83,9469,2334],{"class":547},[83,9471,1553],{"class":107},[15,9473,9474],{},[19,9475,9476],{},"5. Execution",[15,9478,2349],{},[73,9480,9482],{"className":75,"code":9481,"language":77,"meta":78,"style":78},". install/setup.bash\nros2 launch demo_gazebo_sim gazebo_sim_world.launch.py\n",[80,9483,9484,9490],{"__ignoreMap":78},[83,9485,9486,9488],{"class":85,"line":86},[83,9487,2359],{"class":547},[83,9489,2362],{"class":107},[83,9491,9492,9494,9496,9498],{"class":85,"line":93},[83,9493,234],{"class":103},[83,9495,237],{"class":107},[83,9497,2371],{"class":107},[83,9499,9500],{"class":107}," gazebo_sim_world.launch.py\n",[15,9502,9503],{},"The running result is shown in the figure below.",[15,9505,9506],{},"You can also continue designing the room model according to personal preference.",[15,9508,9509],{},[171,9510],{"alt":78,"src":9511},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1730.webp",[31,9513,9515],{"id":9514},"adding-models-to-gz-sim",[19,9516,9517],{},"Adding Models to Gz Sim",[15,9519,9520],{},"The Gazebo official website provides many simulation models that can be downloaded and used to optimize the simulation environment, making it more diverse, visually appealing, and realistic.",[15,9522,9523],{},[19,9524,9525],{},"Resource Download",[15,9527,9528],{},"Official Gazebo model link for simulation:",[15,9530,9531],{},[24,9532,9533],{"href":9533,"rel":9534},"https://app.gazebosim.org/fuel/models",[28],[15,9536,9537],{},"Select a simulation model, click to enter its details page, and then click the download button to save the model resource to your local device.",[15,9539,9540,9541,9544],{},"Create a new directory named ",[80,9542,9543],{},"ign_models"," in the user directory, and extract the downloaded resources into this directory for later use.\nYou can name this directory whatever you like, as long as it's in pure English, follows Linux naming conventions, and contains no illegal characters.",[15,9546,9547],{},[19,9548,9549],{},"Resource Allocation",[15,9551,9552,9553,9556],{},"To allow Gazebo to recognize the model resources, the next step is to modify the ",[80,9554,9555],{},".bashrc"," file in the user directory by adding the following code:",[73,9558,9560],{"className":75,"code":9559,"language":77,"meta":78,"style":78},"# Jazzy版本的宏如下：\nexport GZ_SIM_RESOURCE_PATH=~/ign_models\n\n# Humble版本一般是下面的\nexport IGN_GAZEBO_RESOURCE_PATH=~/ign_models\n",[80,9561,9562,9567,9581,9585,9590],{"__ignoreMap":78},[83,9563,9564],{"class":85,"line":86},[83,9565,9566],{"class":96},"# Jazzy版本的宏如下：\n",[83,9568,9569,9572,9575,9578],{"class":85,"line":93},[83,9570,9571],{"class":742},"export",[83,9573,9574],{"class":117}," GZ_SIM_RESOURCE_PATH",[83,9576,9577],{"class":742},"=~",[83,9579,9580],{"class":117},"/ign_models\n",[83,9582,9583],{"class":85,"line":100},[83,9584,90],{"emptyLinePlaceholder":89},[83,9586,9587],{"class":85,"line":124},[83,9588,9589],{"class":96},"# Humble版本一般是下面的\n",[83,9591,9592,9594,9597,9599],{"class":85,"line":129},[83,9593,9571],{"class":742},[83,9595,9596],{"class":117}," IGN_GAZEBO_RESOURCE_PATH",[83,9598,9577],{"class":742},[83,9600,9580],{"class":117},[15,9602,9603],{},[24,9604,9605],{"href":9605,"rel":9606},"https://gazebosim.org/docs/latest/fuel_insert/",[28],[15,9608,9609],{},[19,9610,9611],{},"Model Addition",[15,9613,9614,9615,9617,9618,9621,9622,9625,9626,9629,9630,9633,9634,605],{},"In the terminal, navigate to the ",[80,9616,1601],{}," directory of the package ",[80,9619,9620],{},"demo_gazebo_sim",", and use the command ",[80,9623,9624],{},"gz sim house.sdf"," to launch the simulation environment. Click the collapse button in the upper right corner of the window, search for ",[80,9627,9628],{},"Resource Spawner"," and open it, then click ",[80,9631,9632],{},"Local resources"," and select a model to drag into the simulation environment. Save the modified content to the ",[80,9635,3057],{},[15,9637,9638],{},[171,9639],{"alt":78,"src":9640},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1731.webp",[15,9642,9643],{},"After downloading the resources normally, they will appear here in the local resources section.",[15,9645,9646,9647,9649],{},"Here is an example of the contents of the ",[80,9648,3057],{}," file:",[73,9651,9653],{"className":2524,"code":9652,"language":2526,"meta":78,"style":78},"\u003Csdf version='1.10'>\n  \u003Cworld name='empty'>\n    \u003Cphysics name='1ms' type='ignored'>\n      \u003Cmax_step_size>0.001\u003C/max_step_size>\n      \u003Creal_time_factor>1\u003C/real_time_factor>\n      \u003Creal_time_update_rate>1000\u003C/real_time_update_rate>\n    \u003C/physics>\n    \u003Cplugin name='gz::sim::systems::Physics' filename='gz-sim-physics-system'/>\n    \u003Cplugin name='gz::sim::systems::UserCommands' filename='gz-sim-user-commands-system'/>\n    \u003Cplugin name='gz::sim::systems::SceneBroadcaster' filename='gz-sim-scene-broadcaster-system'/>\n    \u003Cplugin name='gz::sim::systems::Contact' filename='gz-sim-contact-system'/>\n    \u003Cgravity>0 0 -9.8\u003C/gravity>\n    \u003Cmagnetic_field>6e-06 2.3e-05 -4.2e-05\u003C/magnetic_field>\n    \u003Catmosphere type='adiabatic'/>\n    \u003Cscene>\n      \u003Cambient>0.4 0.4 0.4 1\u003C/ambient>\n      \u003Cbackground>0.7 0.7 0.7 1\u003C/background>\n      \u003Cshadows>true\u003C/shadows>\n    \u003C/scene>\n    \u003Cmodel name='ground_plane'>\n      \u003Cstatic>true\u003C/static>\n      \u003Clink name='link'>\n        \u003Ccollision name='collision'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C/normal>\n              \u003Csize>100 100\u003C/size>\n            \u003C/plane>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='visual'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C/normal>\n              \u003Csize>100 100\u003C/size>\n            \u003C/plane>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.8 0.8 0.8 1\u003C/ambient>\n            \u003Cdiffuse>0.8 0.8 0.8 1\u003C/diffuse>\n            \u003Cspecular>0.8 0.8 0.8 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cinertial>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n          \u003Cmass>100\u003C/mass>\n          \u003Cinertia>\n            \u003Cixx>1\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>1\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>1\u003C/izz>\n          \u003C/inertia>\n        \u003C/inertial>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box'>\n      \u003Cpose>5.05017 0 0.5 -0 0 3e-05\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_0'>\n      \u003Cpose>-5.05003 -7.8e-05 0.5 -0 -0 1.8e-05\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_1'>\n      \u003Cpose>0.000162 -2.53144 0.499999 0 -0 -0.001876\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_2'>\n      \u003Cpose>0.00012 2.51517 0.499999 0 -0 -0.00303\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003C!-- Jazzy 迁移说明开始：下面是本机 file:// 模型目录，ign_models 只是文件夹名，不属于 Gazebo API，因此保留不改。 -->\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/bed\u003C/uri>\n      \u003Cname>Bed\u003C/name>\n      \u003Cpose>2.11564 -0.080355 0 0 -0 0\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet\u003C/name>\n      \u003Cpose>-1.69505 1.99357 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_1\u003C/name>\n      \u003Cpose>-1.71706 1.10132 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_2\u003C/name>\n      \u003Cpose>-1.74096 0.206747 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_3\u003C/name>\n      \u003Cpose>-1.76908 -0.654114 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_4\u003C/name>\n      \u003Cpose>-3.54096 -1.97391 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_4_1\u003C/name>\n      \u003Cpose>-3.51784 -1.10026 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_4_1_1\u003C/name>\n      \u003Cpose>-3.44853 2.02068 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_4_1_1_1\u003C/name>\n      \u003Cpose>-3.499 -0.197449 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_3_1\u003C/name>\n      \u003Cpose>-0.465147 -0.678914 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_3_1_1\u003C/name>\n      \u003Cpose>-1.12325 -0.88551 0 0 0 -0.016899\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_3_1_2\u003C/name>\n      \u003Cpose>-0.445223 0.182127 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_3_1_2_1\u003C/name>\n      \u003Cpose>-0.422109 1.02215 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003C!-- Jazzy 迁移说明结束：如果以后重命名本机模型目录，需要同步修改这些 file:// 路径。 -->\n    \u003Clight name='sun' type='directional'>\n      \u003Cpose>0 0 10 0 -0 0\u003C/pose>\n      \u003Ccast_shadows>true\u003C/cast_shadows>\n      \u003Cintensity>1\u003C/intensity>\n      \u003Cdirection>-0.5 0.1 -0.9\u003C/direction>\n      \u003Cdiffuse>0.8 0.8 0.8 1\u003C/diffuse>\n      \u003Cspecular>0.2 0.2 0.2 1\u003C/specular>\n      \u003Cattenuation>\n        \u003Crange>1000\u003C/range>\n        \u003Clinear>0.01\u003C/linear>\n        \u003Cconstant>0.90000000000000002\u003C/constant>\n        \u003Cquadratic>0.001\u003C/quadratic>\n      \u003C/attenuation>\n      \u003Cspot>\n        \u003Cinner_angle>0\u003C/inner_angle>\n        \u003Couter_angle>0\u003C/outer_angle>\n        \u003Cfalloff>0\u003C/falloff>\n      \u003C/spot>\n    \u003C/light>\n  \u003C/world>\n\u003C/sdf>\n\n",[80,9654,9655,9669,9683,9703,9715,9727,9739,9747,9767,9787,9807,9827,9839,9851,9865,9873,9885,9897,9909,9917,9931,9943,9957,9971,9979,9987,9999,10011,10019,10027,10035,10043,10051,10059,10067,10075,10083,10091,10105,10113,10121,10133,10145,10153,10161,10169,10181,10193,10205,10213,10221,10233,10241,10253,10265,10273,10285,10297,10309,10321,10333,10345,10353,10361,10373,10381,10393,10405,10413,10427,10440,10454,10462,10470,10482,10494,10506,10518,10530,10542,10550,10562,10574,10582,10596,10604,10612,10624,10632,10640,10648,10656,10664,10672,10680,10688,10696,10704,10718,10726,10734,10746,10754,10762,10770,10782,10794,10806,10814,10822,10834,10846,10854,10866,10878,10886,10900,10913,10927,10935,10943,10955,10967,10979,10991,11003,11015,11023,11035,11047,11055,11069,11077,11085,11097,11105,11113,11121,11129,11137,11145,11153,11161,11169,11177,11191,11199,11207,11219,11227,11235,11243,11255,11267,11279,11287,11295,11307,11319,11327,11339,11351,11359,11373,11386,11400,11408,11416,11428,11440,11452,11464,11476,11488,11496,11508,11520,11528,11542,11550,11558,11570,11578,11586,11594,11602,11610,11618,11626,11634,11642,11650,11664,11672,11680,11692,11700,11708,11716,11728,11740,11752,11760,11768,11780,11792,11800,11812,11824,11832,11846,11859,11873,11881,11889,11901,11913,11925,11937,11949,11961,11969,11981,11993,12001,12015,12023,12031,12043,12051,12059,12067,12075,12083,12091,12099,12107,12115,12123,12137,12145,12153,12165,12173,12181,12189,12201,12213,12225,12233,12241,12253,12265,12273,12285,12297,12305,12310,12319,12333,12346,12359,12367,12375,12388,12401,12414,12422,12430,12442,12455,12468,12476,12484,12496,12509,12522,12530,12539,12552,12566,12580,12589,12598,12611,12625,12639,12648,12657,12670,12684,12698,12707,12716,12729,12743,12757,12766,12775,12788,12802,12816,12825,12834,12847,12861,12875,12884,12893,12906,12920,12934,12943,12952,12965,12979,12993,13002,13011,13024,13038,13052,13061,13067,13088,13101,13114,13127,13140,13153,13166,13175,13188,13201,13214,13227,13236,13245,13258,13271,13284,13293,13302,13311],{"__ignoreMap":78},[83,9656,9657,9659,9661,9663,9665,9667],{"class":85,"line":86},[83,9658,2533],{"class":117},[83,9660,2877],{"class":2536},[83,9662,2880],{"class":103},[83,9664,1837],{"class":117},[83,9666,3085],{"class":107},[83,9668,2548],{"class":117},[83,9670,9671,9673,9675,9677,9679,9681],{"class":85,"line":93},[83,9672,2553],{"class":117},[83,9674,1601],{"class":2536},[83,9676,2540],{"class":103},[83,9678,1837],{"class":117},[83,9680,3100],{"class":107},[83,9682,2548],{"class":117},[83,9684,9685,9687,9689,9691,9693,9695,9697,9699,9701],{"class":85,"line":100},[83,9686,2570],{"class":117},[83,9688,3109],{"class":2536},[83,9690,2540],{"class":103},[83,9692,1837],{"class":117},[83,9694,3116],{"class":107},[83,9696,3119],{"class":103},[83,9698,1837],{"class":117},[83,9700,3124],{"class":107},[83,9702,2548],{"class":117},[83,9704,9705,9707,9709,9711,9713],{"class":85,"line":124},[83,9706,2580],{"class":117},[83,9708,3133],{"class":2536},[83,9710,3136],{"class":117},[83,9712,3133],{"class":2536},[83,9714,2548],{"class":117},[83,9716,9717,9719,9721,9723,9725],{"class":85,"line":129},[83,9718,2580],{"class":117},[83,9720,3147],{"class":2536},[83,9722,3150],{"class":117},[83,9724,3147],{"class":2536},[83,9726,2548],{"class":117},[83,9728,9729,9731,9733,9735,9737],{"class":85,"line":135},[83,9730,2580],{"class":117},[83,9732,3161],{"class":2536},[83,9734,3164],{"class":117},[83,9736,3161],{"class":2536},[83,9738,2548],{"class":117},[83,9740,9741,9743,9745],{"class":85,"line":147},[83,9742,2651],{"class":117},[83,9744,3109],{"class":2536},[83,9746,2548],{"class":117},[83,9748,9749,9751,9753,9755,9757,9759,9761,9763,9765],{"class":85,"line":152},[83,9750,2570],{"class":117},[83,9752,3183],{"class":2536},[83,9754,2540],{"class":103},[83,9756,1837],{"class":117},[83,9758,3190],{"class":107},[83,9760,3193],{"class":103},[83,9762,1837],{"class":117},[83,9764,3198],{"class":107},[83,9766,3201],{"class":117},[83,9768,9769,9771,9773,9775,9777,9779,9781,9783,9785],{"class":85,"line":158},[83,9770,2570],{"class":117},[83,9772,3183],{"class":2536},[83,9774,2540],{"class":103},[83,9776,1837],{"class":117},[83,9778,3214],{"class":107},[83,9780,3193],{"class":103},[83,9782,1837],{"class":117},[83,9784,3221],{"class":107},[83,9786,3201],{"class":117},[83,9788,9789,9791,9793,9795,9797,9799,9801,9803,9805],{"class":85,"line":405},[83,9790,2570],{"class":117},[83,9792,3183],{"class":2536},[83,9794,2540],{"class":103},[83,9796,1837],{"class":117},[83,9798,3236],{"class":107},[83,9800,3193],{"class":103},[83,9802,1837],{"class":117},[83,9804,3243],{"class":107},[83,9806,3201],{"class":117},[83,9808,9809,9811,9813,9815,9817,9819,9821,9823,9825],{"class":85,"line":411},[83,9810,2570],{"class":117},[83,9812,3183],{"class":2536},[83,9814,2540],{"class":103},[83,9816,1837],{"class":117},[83,9818,3258],{"class":107},[83,9820,3193],{"class":103},[83,9822,1837],{"class":117},[83,9824,3265],{"class":107},[83,9826,3201],{"class":117},[83,9828,9829,9831,9833,9835,9837],{"class":85,"line":417},[83,9830,2570],{"class":117},[83,9832,3274],{"class":2536},[83,9834,3277],{"class":117},[83,9836,3274],{"class":2536},[83,9838,2548],{"class":117},[83,9840,9841,9843,9845,9847,9849],{"class":85,"line":423},[83,9842,2570],{"class":117},[83,9844,3288],{"class":2536},[83,9846,3291],{"class":117},[83,9848,3288],{"class":2536},[83,9850,2548],{"class":117},[83,9852,9853,9855,9857,9859,9861,9863],{"class":85,"line":1814},[83,9854,2570],{"class":117},[83,9856,3302],{"class":2536},[83,9858,3119],{"class":103},[83,9860,1837],{"class":117},[83,9862,3309],{"class":107},[83,9864,3201],{"class":117},[83,9866,9867,9869,9871],{"class":85,"line":1826},[83,9868,2570],{"class":117},[83,9870,3318],{"class":2536},[83,9872,2548],{"class":117},[83,9874,9875,9877,9879,9881,9883],{"class":85,"line":1831},[83,9876,2580],{"class":117},[83,9878,3327],{"class":2536},[83,9880,3330],{"class":117},[83,9882,3327],{"class":2536},[83,9884,2548],{"class":117},[83,9886,9887,9889,9891,9893,9895],{"class":85,"line":1848},[83,9888,2580],{"class":117},[83,9890,3341],{"class":2536},[83,9892,3344],{"class":117},[83,9894,3341],{"class":2536},[83,9896,2548],{"class":117},[83,9898,9899,9901,9903,9905,9907],{"class":85,"line":1863},[83,9900,2580],{"class":117},[83,9902,3355],{"class":2536},[83,9904,3358],{"class":117},[83,9906,3355],{"class":2536},[83,9908,2548],{"class":117},[83,9910,9911,9913,9915],{"class":85,"line":1885},[83,9912,2651],{"class":117},[83,9914,3318],{"class":2536},[83,9916,2548],{"class":117},[83,9918,9919,9921,9923,9925,9927,9929],{"class":85,"line":1890},[83,9920,2570],{"class":117},[83,9922,2894],{"class":2536},[83,9924,2540],{"class":103},[83,9926,1837],{"class":117},[83,9928,3383],{"class":107},[83,9930,2548],{"class":117},[83,9932,9933,9935,9937,9939,9941],{"class":85,"line":1901},[83,9934,2580],{"class":117},[83,9936,3392],{"class":2536},[83,9938,3358],{"class":117},[83,9940,3392],{"class":2536},[83,9942,2548],{"class":117},[83,9944,9945,9947,9949,9951,9953,9955],{"class":85,"line":1907},[83,9946,2580],{"class":117},[83,9948,2556],{"class":2536},[83,9950,2540],{"class":103},[83,9952,1837],{"class":117},[83,9954,3411],{"class":107},[83,9956,2548],{"class":117},[83,9958,9959,9961,9963,9965,9967,9969],{"class":85,"line":1925},[83,9960,2754],{"class":117},[83,9962,3420],{"class":2536},[83,9964,2540],{"class":103},[83,9966,1837],{"class":117},[83,9968,3427],{"class":107},[83,9970,2548],{"class":117},[83,9972,9973,9975,9977],{"class":85,"line":1937},[83,9974,2950],{"class":117},[83,9976,3436],{"class":2536},[83,9978,2548],{"class":117},[83,9980,9981,9983,9985],{"class":85,"line":1955},[83,9982,3443],{"class":117},[83,9984,3446],{"class":2536},[83,9986,2548],{"class":117},[83,9988,9989,9991,9993,9995,9997],{"class":85,"line":1961},[83,9990,3453],{"class":117},[83,9992,3456],{"class":2536},[83,9994,3459],{"class":117},[83,9996,3456],{"class":2536},[83,9998,2548],{"class":117},[83,10000,10001,10003,10005,10007,10009],{"class":85,"line":1967},[83,10002,3453],{"class":117},[83,10004,3470],{"class":2536},[83,10006,3473],{"class":117},[83,10008,3470],{"class":2536},[83,10010,2548],{"class":117},[83,10012,10013,10015,10017],{"class":85,"line":1972},[83,10014,3482],{"class":117},[83,10016,3446],{"class":2536},[83,10018,2548],{"class":117},[83,10020,10021,10023,10025],{"class":85,"line":1978},[83,10022,3491],{"class":117},[83,10024,3436],{"class":2536},[83,10026,2548],{"class":117},[83,10028,10029,10031,10033],{"class":85,"line":1989},[83,10030,2950],{"class":117},[83,10032,3502],{"class":2536},[83,10034,2548],{"class":117},[83,10036,10037,10039,10041],{"class":85,"line":2003},[83,10038,3443],{"class":117},[83,10040,3511],{"class":2536},[83,10042,2548],{"class":117},[83,10044,10045,10047,10049],{"class":85,"line":2015},[83,10046,3453],{"class":117},[83,10048,3520],{"class":2536},[83,10050,3201],{"class":117},[83,10052,10053,10055,10057],{"class":85,"line":2042},[83,10054,3482],{"class":117},[83,10056,3511],{"class":2536},[83,10058,2548],{"class":117},[83,10060,10061,10063,10065],{"class":85,"line":2058},[83,10062,3443],{"class":117},[83,10064,3537],{"class":2536},[83,10066,3201],{"class":117},[83,10068,10069,10071,10073],{"class":85,"line":2063},[83,10070,3443],{"class":117},[83,10072,3546],{"class":2536},[83,10074,3201],{"class":117},[83,10076,10077,10079,10081],{"class":85,"line":2068},[83,10078,3491],{"class":117},[83,10080,3502],{"class":2536},[83,10082,2548],{"class":117},[83,10084,10085,10087,10089],{"class":85,"line":2074},[83,10086,2990],{"class":117},[83,10088,3420],{"class":2536},[83,10090,2548],{"class":117},[83,10092,10093,10095,10097,10099,10101,10103],{"class":85,"line":2084},[83,10094,2754],{"class":117},[83,10096,3571],{"class":2536},[83,10098,2540],{"class":103},[83,10100,1837],{"class":117},[83,10102,3578],{"class":107},[83,10104,2548],{"class":117},[83,10106,10107,10109,10111],{"class":85,"line":2097},[83,10108,2950],{"class":117},[83,10110,3436],{"class":2536},[83,10112,2548],{"class":117},[83,10114,10115,10117,10119],{"class":85,"line":2110},[83,10116,3443],{"class":117},[83,10118,3446],{"class":2536},[83,10120,2548],{"class":117},[83,10122,10123,10125,10127,10129,10131],{"class":85,"line":2125},[83,10124,3453],{"class":117},[83,10126,3456],{"class":2536},[83,10128,3459],{"class":117},[83,10130,3456],{"class":2536},[83,10132,2548],{"class":117},[83,10134,10135,10137,10139,10141,10143],{"class":85,"line":2133},[83,10136,3453],{"class":117},[83,10138,3470],{"class":2536},[83,10140,3473],{"class":117},[83,10142,3470],{"class":2536},[83,10144,2548],{"class":117},[83,10146,10147,10149,10151],{"class":85,"line":2141},[83,10148,3482],{"class":117},[83,10150,3446],{"class":2536},[83,10152,2548],{"class":117},[83,10154,10155,10157,10159],{"class":85,"line":2147},[83,10156,3491],{"class":117},[83,10158,3436],{"class":2536},[83,10160,2548],{"class":117},[83,10162,10163,10165,10167],{"class":85,"line":2169},[83,10164,2950],{"class":117},[83,10166,3643],{"class":2536},[83,10168,2548],{"class":117},[83,10170,10171,10173,10175,10177,10179],{"class":85,"line":2180},[83,10172,3443],{"class":117},[83,10174,3327],{"class":2536},[83,10176,3654],{"class":117},[83,10178,3327],{"class":2536},[83,10180,2548],{"class":117},[83,10182,10183,10185,10187,10189,10191],{"class":85,"line":2197},[83,10184,3443],{"class":117},[83,10186,3665],{"class":2536},[83,10188,3654],{"class":117},[83,10190,3665],{"class":2536},[83,10192,2548],{"class":117},[83,10194,10195,10197,10199,10201,10203],{"class":85,"line":2212},[83,10196,3443],{"class":117},[83,10198,3678],{"class":2536},[83,10200,3654],{"class":117},[83,10202,3678],{"class":2536},[83,10204,2548],{"class":117},[83,10206,10207,10209,10211],{"class":85,"line":2218},[83,10208,3491],{"class":117},[83,10210,3643],{"class":2536},[83,10212,2548],{"class":117},[83,10214,10215,10217,10219],{"class":85,"line":2229},[83,10216,2990],{"class":117},[83,10218,3571],{"class":2536},[83,10220,2548],{"class":117},[83,10222,10223,10225,10227,10229,10231],{"class":85,"line":2234},[83,10224,2754],{"class":117},[83,10226,3707],{"class":2536},[83,10228,3710],{"class":117},[83,10230,3707],{"class":2536},[83,10232,2548],{"class":117},[83,10234,10235,10237,10239],{"class":85,"line":2239},[83,10236,2754],{"class":117},[83,10238,2573],{"class":2536},[83,10240,2548],{"class":117},[83,10242,10243,10245,10247,10249,10251],{"class":85,"line":2248},[83,10244,2950],{"class":117},[83,10246,3707],{"class":2536},[83,10248,3710],{"class":117},[83,10250,3707],{"class":2536},[83,10252,2548],{"class":117},[83,10254,10255,10257,10259,10261,10263],{"class":85,"line":2254},[83,10256,2950],{"class":117},[83,10258,2583],{"class":2536},[83,10260,3743],{"class":117},[83,10262,2583],{"class":2536},[83,10264,2548],{"class":117},[83,10266,10267,10269,10271],{"class":85,"line":2274},[83,10268,2950],{"class":117},[83,10270,2601],{"class":2536},[83,10272,2548],{"class":117},[83,10274,10275,10277,10279,10281,10283],{"class":85,"line":2287},[83,10276,3443],{"class":117},[83,10278,2953],{"class":2536},[83,10280,3150],{"class":117},[83,10282,2953],{"class":2536},[83,10284,2548],{"class":117},[83,10286,10287,10289,10291,10293,10295],{"class":85,"line":2293},[83,10288,3443],{"class":117},[83,10290,3774],{"class":2536},[83,10292,3777],{"class":117},[83,10294,3774],{"class":2536},[83,10296,2548],{"class":117},[83,10298,10299,10301,10303,10305,10307],{"class":85,"line":2299},[83,10300,3443],{"class":117},[83,10302,3788],{"class":2536},[83,10304,3777],{"class":117},[83,10306,3788],{"class":2536},[83,10308,2548],{"class":117},[83,10310,10311,10313,10315,10317,10319],{"class":85,"line":3797},[83,10312,3443],{"class":117},[83,10314,2966],{"class":2536},[83,10316,3150],{"class":117},[83,10318,2966],{"class":2536},[83,10320,2548],{"class":117},[83,10322,10323,10325,10327,10329,10331],{"class":85,"line":3810},[83,10324,3443],{"class":117},[83,10326,3815],{"class":2536},[83,10328,3777],{"class":117},[83,10330,3815],{"class":2536},[83,10332,2548],{"class":117},[83,10334,10335,10337,10339,10341,10343],{"class":85,"line":3824},[83,10336,3443],{"class":117},[83,10338,2979],{"class":2536},[83,10340,3150],{"class":117},[83,10342,2979],{"class":2536},[83,10344,2548],{"class":117},[83,10346,10347,10349,10351],{"class":85,"line":3837},[83,10348,3491],{"class":117},[83,10350,2601],{"class":2536},[83,10352,2548],{"class":117},[83,10354,10355,10357,10359],{"class":85,"line":3846},[83,10356,2990],{"class":117},[83,10358,2573],{"class":2536},[83,10360,2548],{"class":117},[83,10362,10363,10365,10367,10369,10371],{"class":85,"line":3855},[83,10364,2754],{"class":117},[83,10366,3860],{"class":2536},[83,10368,3863],{"class":117},[83,10370,3860],{"class":2536},[83,10372,2548],{"class":117},[83,10374,10375,10377,10379],{"class":85,"line":3870},[83,10376,2814],{"class":117},[83,10378,2556],{"class":2536},[83,10380,2548],{"class":117},[83,10382,10383,10385,10387,10389,10391],{"class":85,"line":3879},[83,10384,2580],{"class":117},[83,10386,3707],{"class":2536},[83,10388,3710],{"class":117},[83,10390,3707],{"class":2536},[83,10392,2548],{"class":117},[83,10394,10395,10397,10399,10401,10403],{"class":85,"line":3892},[83,10396,2580],{"class":117},[83,10398,3897],{"class":2536},[83,10400,3863],{"class":117},[83,10402,3897],{"class":2536},[83,10404,2548],{"class":117},[83,10406,10407,10409,10411],{"class":85,"line":3906},[83,10408,2651],{"class":117},[83,10410,2894],{"class":2536},[83,10412,2548],{"class":117},[83,10414,10415,10417,10419,10421,10423,10425],{"class":85,"line":3915},[83,10416,2570],{"class":117},[83,10418,2894],{"class":2536},[83,10420,2540],{"class":103},[83,10422,1837],{"class":117},[83,10424,3926],{"class":107},[83,10426,2548],{"class":117},[83,10428,10429,10431,10433,10436,10438],{"class":85,"line":3931},[83,10430,2580],{"class":117},[83,10432,3707],{"class":2536},[83,10434,10435],{"class":117},">5.05017 0 0.5 -0 0 3e-05\u003C/",[83,10437,3707],{"class":2536},[83,10439,2548],{"class":117},[83,10441,10442,10444,10446,10448,10450,10452],{"class":85,"line":3945},[83,10443,2580],{"class":117},[83,10445,2556],{"class":2536},[83,10447,2540],{"class":103},[83,10449,1837],{"class":117},[83,10451,3956],{"class":107},[83,10453,2548],{"class":117},[83,10455,10456,10458,10460],{"class":85,"line":3961},[83,10457,2754],{"class":117},[83,10459,2573],{"class":2536},[83,10461,2548],{"class":117},[83,10463,10464,10466,10468],{"class":85,"line":3970},[83,10465,2950],{"class":117},[83,10467,2601],{"class":2536},[83,10469,2548],{"class":117},[83,10471,10472,10474,10476,10478,10480],{"class":85,"line":3979},[83,10473,3443],{"class":117},[83,10475,2953],{"class":2536},[83,10477,3986],{"class":117},[83,10479,2953],{"class":2536},[83,10481,2548],{"class":117},[83,10483,10484,10486,10488,10490,10492],{"class":85,"line":3993},[83,10485,3443],{"class":117},[83,10487,3774],{"class":2536},[83,10489,3777],{"class":117},[83,10491,3774],{"class":2536},[83,10493,2548],{"class":117},[83,10495,10496,10498,10500,10502,10504],{"class":85,"line":4006},[83,10497,3443],{"class":117},[83,10499,3788],{"class":2536},[83,10501,3777],{"class":117},[83,10503,3788],{"class":2536},[83,10505,2548],{"class":117},[83,10507,10508,10510,10512,10514,10516],{"class":85,"line":4019},[83,10509,3443],{"class":117},[83,10511,2966],{"class":2536},[83,10513,3986],{"class":117},[83,10515,2966],{"class":2536},[83,10517,2548],{"class":117},[83,10519,10520,10522,10524,10526,10528],{"class":85,"line":4032},[83,10521,3443],{"class":117},[83,10523,3815],{"class":2536},[83,10525,3777],{"class":117},[83,10527,3815],{"class":2536},[83,10529,2548],{"class":117},[83,10531,10532,10534,10536,10538,10540],{"class":85,"line":4045},[83,10533,3443],{"class":117},[83,10535,2979],{"class":2536},[83,10537,3986],{"class":117},[83,10539,2979],{"class":2536},[83,10541,2548],{"class":117},[83,10543,10544,10546,10548],{"class":85,"line":4058},[83,10545,3491],{"class":117},[83,10547,2601],{"class":2536},[83,10549,2548],{"class":117},[83,10551,10552,10554,10556,10558,10560],{"class":85,"line":4067},[83,10553,2950],{"class":117},[83,10555,2583],{"class":2536},[83,10557,3743],{"class":117},[83,10559,2583],{"class":2536},[83,10561,2548],{"class":117},[83,10563,10564,10566,10568,10570,10572],{"class":85,"line":4080},[83,10565,2950],{"class":117},[83,10567,3707],{"class":2536},[83,10569,3710],{"class":117},[83,10571,3707],{"class":2536},[83,10573,2548],{"class":117},[83,10575,10576,10578,10580],{"class":85,"line":4093},[83,10577,2990],{"class":117},[83,10579,2573],{"class":2536},[83,10581,2548],{"class":117},[83,10583,10584,10586,10588,10590,10592,10594],{"class":85,"line":4102},[83,10585,2754],{"class":117},[83,10587,3420],{"class":2536},[83,10589,2540],{"class":103},[83,10591,1837],{"class":117},[83,10593,4113],{"class":107},[83,10595,2548],{"class":117},[83,10597,10598,10600,10602],{"class":85,"line":4118},[83,10599,2950],{"class":117},[83,10601,3436],{"class":2536},[83,10603,2548],{"class":117},[83,10605,10606,10608,10610],{"class":85,"line":4127},[83,10607,3443],{"class":117},[83,10609,4132],{"class":2536},[83,10611,2548],{"class":117},[83,10613,10614,10616,10618,10620,10622],{"class":85,"line":4137},[83,10615,3453],{"class":117},[83,10617,3470],{"class":2536},[83,10619,4144],{"class":117},[83,10621,3470],{"class":2536},[83,10623,2548],{"class":117},[83,10625,10626,10628,10630],{"class":85,"line":4151},[83,10627,3482],{"class":117},[83,10629,4132],{"class":2536},[83,10631,2548],{"class":117},[83,10633,10634,10636,10638],{"class":85,"line":4160},[83,10635,3491],{"class":117},[83,10637,3436],{"class":2536},[83,10639,2548],{"class":117},[83,10641,10642,10644,10646],{"class":85,"line":4169},[83,10643,2950],{"class":117},[83,10645,3502],{"class":2536},[83,10647,2548],{"class":117},[83,10649,10650,10652,10654],{"class":85,"line":4178},[83,10651,3443],{"class":117},[83,10653,3511],{"class":2536},[83,10655,2548],{"class":117},[83,10657,10658,10660,10662],{"class":85,"line":4187},[83,10659,3453],{"class":117},[83,10661,3520],{"class":2536},[83,10663,3201],{"class":117},[83,10665,10666,10668,10670],{"class":85,"line":4196},[83,10667,3482],{"class":117},[83,10669,3511],{"class":2536},[83,10671,2548],{"class":117},[83,10673,10674,10676,10678],{"class":85,"line":4205},[83,10675,3443],{"class":117},[83,10677,3537],{"class":2536},[83,10679,3201],{"class":117},[83,10681,10682,10684,10686],{"class":85,"line":4214},[83,10683,3443],{"class":117},[83,10685,3546],{"class":2536},[83,10687,3201],{"class":117},[83,10689,10690,10692,10694],{"class":85,"line":4223},[83,10691,3491],{"class":117},[83,10693,3502],{"class":2536},[83,10695,2548],{"class":117},[83,10697,10698,10700,10702],{"class":85,"line":4232},[83,10699,2990],{"class":117},[83,10701,3420],{"class":2536},[83,10703,2548],{"class":117},[83,10705,10706,10708,10710,10712,10714,10716],{"class":85,"line":4241},[83,10707,2754],{"class":117},[83,10709,3571],{"class":2536},[83,10711,2540],{"class":103},[83,10713,1837],{"class":117},[83,10715,4252],{"class":107},[83,10717,2548],{"class":117},[83,10719,10720,10722,10724],{"class":85,"line":4257},[83,10721,2950],{"class":117},[83,10723,3436],{"class":2536},[83,10725,2548],{"class":117},[83,10727,10728,10730,10732],{"class":85,"line":4266},[83,10729,3443],{"class":117},[83,10731,4132],{"class":2536},[83,10733,2548],{"class":117},[83,10735,10736,10738,10740,10742,10744],{"class":85,"line":4275},[83,10737,3453],{"class":117},[83,10739,3470],{"class":2536},[83,10741,4144],{"class":117},[83,10743,3470],{"class":2536},[83,10745,2548],{"class":117},[83,10747,10748,10750,10752],{"class":85,"line":4288},[83,10749,3482],{"class":117},[83,10751,4132],{"class":2536},[83,10753,2548],{"class":117},[83,10755,10756,10758,10760],{"class":85,"line":4297},[83,10757,3491],{"class":117},[83,10759,3436],{"class":2536},[83,10761,2548],{"class":117},[83,10763,10764,10766,10768],{"class":85,"line":4306},[83,10765,2950],{"class":117},[83,10767,3643],{"class":2536},[83,10769,2548],{"class":117},[83,10771,10772,10774,10776,10778,10780],{"class":85,"line":4315},[83,10773,3443],{"class":117},[83,10775,3327],{"class":2536},[83,10777,4322],{"class":117},[83,10779,3327],{"class":2536},[83,10781,2548],{"class":117},[83,10783,10784,10786,10788,10790,10792],{"class":85,"line":4329},[83,10785,3443],{"class":117},[83,10787,3665],{"class":2536},[83,10789,3344],{"class":117},[83,10791,3665],{"class":2536},[83,10793,2548],{"class":117},[83,10795,10796,10798,10800,10802,10804],{"class":85,"line":4342},[83,10797,3443],{"class":117},[83,10799,3678],{"class":2536},[83,10801,4349],{"class":117},[83,10803,3678],{"class":2536},[83,10805,2548],{"class":117},[83,10807,10808,10810,10812],{"class":85,"line":4356},[83,10809,3491],{"class":117},[83,10811,3643],{"class":2536},[83,10813,2548],{"class":117},[83,10815,10816,10818,10820],{"class":85,"line":4365},[83,10817,2990],{"class":117},[83,10819,3571],{"class":2536},[83,10821,2548],{"class":117},[83,10823,10824,10826,10828,10830,10832],{"class":85,"line":4374},[83,10825,2754],{"class":117},[83,10827,3707],{"class":2536},[83,10829,3710],{"class":117},[83,10831,3707],{"class":2536},[83,10833,2548],{"class":117},[83,10835,10836,10838,10840,10842,10844],{"class":85,"line":4387},[83,10837,2754],{"class":117},[83,10839,3860],{"class":2536},[83,10841,3863],{"class":117},[83,10843,3860],{"class":2536},[83,10845,2548],{"class":117},[83,10847,10848,10850,10852],{"class":85,"line":4400},[83,10849,2814],{"class":117},[83,10851,2556],{"class":2536},[83,10853,2548],{"class":117},[83,10855,10856,10858,10860,10862,10864],{"class":85,"line":4409},[83,10857,2580],{"class":117},[83,10859,3392],{"class":2536},[83,10861,3358],{"class":117},[83,10863,3392],{"class":2536},[83,10865,2548],{"class":117},[83,10867,10868,10870,10872,10874,10876],{"class":85,"line":4422},[83,10869,2580],{"class":117},[83,10871,3897],{"class":2536},[83,10873,3863],{"class":117},[83,10875,3897],{"class":2536},[83,10877,2548],{"class":117},[83,10879,10880,10882,10884],{"class":85,"line":4435},[83,10881,2651],{"class":117},[83,10883,2894],{"class":2536},[83,10885,2548],{"class":117},[83,10887,10888,10890,10892,10894,10896,10898],{"class":85,"line":4444},[83,10889,2570],{"class":117},[83,10891,2894],{"class":2536},[83,10893,2540],{"class":103},[83,10895,1837],{"class":117},[83,10897,4455],{"class":107},[83,10899,2548],{"class":117},[83,10901,10902,10904,10906,10909,10911],{"class":85,"line":4460},[83,10903,2580],{"class":117},[83,10905,3707],{"class":2536},[83,10907,10908],{"class":117},">-5.05003 -7.8e-05 0.5 -0 -0 1.8e-05\u003C/",[83,10910,3707],{"class":2536},[83,10912,2548],{"class":117},[83,10914,10915,10917,10919,10921,10923,10925],{"class":85,"line":4474},[83,10916,2580],{"class":117},[83,10918,2556],{"class":2536},[83,10920,2540],{"class":103},[83,10922,1837],{"class":117},[83,10924,3956],{"class":107},[83,10926,2548],{"class":117},[83,10928,10929,10931,10933],{"class":85,"line":4489},[83,10930,2754],{"class":117},[83,10932,2573],{"class":2536},[83,10934,2548],{"class":117},[83,10936,10937,10939,10941],{"class":85,"line":4498},[83,10938,2950],{"class":117},[83,10940,2601],{"class":2536},[83,10942,2548],{"class":117},[83,10944,10945,10947,10949,10951,10953],{"class":85,"line":4507},[83,10946,3443],{"class":117},[83,10948,2953],{"class":2536},[83,10950,3986],{"class":117},[83,10952,2953],{"class":2536},[83,10954,2548],{"class":117},[83,10956,10957,10959,10961,10963,10965],{"class":85,"line":4520},[83,10958,3443],{"class":117},[83,10960,3774],{"class":2536},[83,10962,3777],{"class":117},[83,10964,3774],{"class":2536},[83,10966,2548],{"class":117},[83,10968,10969,10971,10973,10975,10977],{"class":85,"line":4533},[83,10970,3443],{"class":117},[83,10972,3788],{"class":2536},[83,10974,3777],{"class":117},[83,10976,3788],{"class":2536},[83,10978,2548],{"class":117},[83,10980,10981,10983,10985,10987,10989],{"class":85,"line":4546},[83,10982,3443],{"class":117},[83,10984,2966],{"class":2536},[83,10986,3986],{"class":117},[83,10988,2966],{"class":2536},[83,10990,2548],{"class":117},[83,10992,10993,10995,10997,10999,11001],{"class":85,"line":4559},[83,10994,3443],{"class":117},[83,10996,3815],{"class":2536},[83,10998,3777],{"class":117},[83,11000,3815],{"class":2536},[83,11002,2548],{"class":117},[83,11004,11005,11007,11009,11011,11013],{"class":85,"line":4572},[83,11006,3443],{"class":117},[83,11008,2979],{"class":2536},[83,11010,3986],{"class":117},[83,11012,2979],{"class":2536},[83,11014,2548],{"class":117},[83,11016,11017,11019,11021],{"class":85,"line":4585},[83,11018,3491],{"class":117},[83,11020,2601],{"class":2536},[83,11022,2548],{"class":117},[83,11024,11025,11027,11029,11031,11033],{"class":85,"line":4594},[83,11026,2950],{"class":117},[83,11028,2583],{"class":2536},[83,11030,3743],{"class":117},[83,11032,2583],{"class":2536},[83,11034,2548],{"class":117},[83,11036,11037,11039,11041,11043,11045],{"class":85,"line":4607},[83,11038,2950],{"class":117},[83,11040,3707],{"class":2536},[83,11042,3710],{"class":117},[83,11044,3707],{"class":2536},[83,11046,2548],{"class":117},[83,11048,11049,11051,11053],{"class":85,"line":4620},[83,11050,2990],{"class":117},[83,11052,2573],{"class":2536},[83,11054,2548],{"class":117},[83,11056,11057,11059,11061,11063,11065,11067],{"class":85,"line":4629},[83,11058,2754],{"class":117},[83,11060,3420],{"class":2536},[83,11062,2540],{"class":103},[83,11064,1837],{"class":117},[83,11066,4113],{"class":107},[83,11068,2548],{"class":117},[83,11070,11071,11073,11075],{"class":85,"line":4644},[83,11072,2950],{"class":117},[83,11074,3436],{"class":2536},[83,11076,2548],{"class":117},[83,11078,11079,11081,11083],{"class":85,"line":4653},[83,11080,3443],{"class":117},[83,11082,4132],{"class":2536},[83,11084,2548],{"class":117},[83,11086,11087,11089,11091,11093,11095],{"class":85,"line":4662},[83,11088,3453],{"class":117},[83,11090,3470],{"class":2536},[83,11092,4144],{"class":117},[83,11094,3470],{"class":2536},[83,11096,2548],{"class":117},[83,11098,11099,11101,11103],{"class":85,"line":4675},[83,11100,3482],{"class":117},[83,11102,4132],{"class":2536},[83,11104,2548],{"class":117},[83,11106,11107,11109,11111],{"class":85,"line":4684},[83,11108,3491],{"class":117},[83,11110,3436],{"class":2536},[83,11112,2548],{"class":117},[83,11114,11115,11117,11119],{"class":85,"line":4693},[83,11116,2950],{"class":117},[83,11118,3502],{"class":2536},[83,11120,2548],{"class":117},[83,11122,11123,11125,11127],{"class":85,"line":4702},[83,11124,3443],{"class":117},[83,11126,3511],{"class":2536},[83,11128,2548],{"class":117},[83,11130,11131,11133,11135],{"class":85,"line":4711},[83,11132,3453],{"class":117},[83,11134,3520],{"class":2536},[83,11136,3201],{"class":117},[83,11138,11139,11141,11143],{"class":85,"line":4720},[83,11140,3482],{"class":117},[83,11142,3511],{"class":2536},[83,11144,2548],{"class":117},[83,11146,11147,11149,11151],{"class":85,"line":4729},[83,11148,3443],{"class":117},[83,11150,3537],{"class":2536},[83,11152,3201],{"class":117},[83,11154,11155,11157,11159],{"class":85,"line":4738},[83,11156,3443],{"class":117},[83,11158,3546],{"class":2536},[83,11160,3201],{"class":117},[83,11162,11163,11165,11167],{"class":85,"line":4747},[83,11164,3491],{"class":117},[83,11166,3502],{"class":2536},[83,11168,2548],{"class":117},[83,11170,11171,11173,11175],{"class":85,"line":4756},[83,11172,2990],{"class":117},[83,11174,3420],{"class":2536},[83,11176,2548],{"class":117},[83,11178,11179,11181,11183,11185,11187,11189],{"class":85,"line":4765},[83,11180,2754],{"class":117},[83,11182,3571],{"class":2536},[83,11184,2540],{"class":103},[83,11186,1837],{"class":117},[83,11188,4252],{"class":107},[83,11190,2548],{"class":117},[83,11192,11193,11195,11197],{"class":85,"line":4780},[83,11194,2950],{"class":117},[83,11196,3436],{"class":2536},[83,11198,2548],{"class":117},[83,11200,11201,11203,11205],{"class":85,"line":4789},[83,11202,3443],{"class":117},[83,11204,4132],{"class":2536},[83,11206,2548],{"class":117},[83,11208,11209,11211,11213,11215,11217],{"class":85,"line":4798},[83,11210,3453],{"class":117},[83,11212,3470],{"class":2536},[83,11214,4144],{"class":117},[83,11216,3470],{"class":2536},[83,11218,2548],{"class":117},[83,11220,11221,11223,11225],{"class":85,"line":4811},[83,11222,3482],{"class":117},[83,11224,4132],{"class":2536},[83,11226,2548],{"class":117},[83,11228,11229,11231,11233],{"class":85,"line":4820},[83,11230,3491],{"class":117},[83,11232,3436],{"class":2536},[83,11234,2548],{"class":117},[83,11236,11237,11239,11241],{"class":85,"line":4829},[83,11238,2950],{"class":117},[83,11240,3643],{"class":2536},[83,11242,2548],{"class":117},[83,11244,11245,11247,11249,11251,11253],{"class":85,"line":4838},[83,11246,3443],{"class":117},[83,11248,3327],{"class":2536},[83,11250,4322],{"class":117},[83,11252,3327],{"class":2536},[83,11254,2548],{"class":117},[83,11256,11257,11259,11261,11263,11265],{"class":85,"line":4851},[83,11258,3443],{"class":117},[83,11260,3665],{"class":2536},[83,11262,3344],{"class":117},[83,11264,3665],{"class":2536},[83,11266,2548],{"class":117},[83,11268,11269,11271,11273,11275,11277],{"class":85,"line":4864},[83,11270,3443],{"class":117},[83,11272,3678],{"class":2536},[83,11274,4349],{"class":117},[83,11276,3678],{"class":2536},[83,11278,2548],{"class":117},[83,11280,11281,11283,11285],{"class":85,"line":4877},[83,11282,3491],{"class":117},[83,11284,3643],{"class":2536},[83,11286,2548],{"class":117},[83,11288,11289,11291,11293],{"class":85,"line":4886},[83,11290,2990],{"class":117},[83,11292,3571],{"class":2536},[83,11294,2548],{"class":117},[83,11296,11297,11299,11301,11303,11305],{"class":85,"line":4895},[83,11298,2754],{"class":117},[83,11300,3707],{"class":2536},[83,11302,3710],{"class":117},[83,11304,3707],{"class":2536},[83,11306,2548],{"class":117},[83,11308,11309,11311,11313,11315,11317],{"class":85,"line":4908},[83,11310,2754],{"class":117},[83,11312,3860],{"class":2536},[83,11314,3863],{"class":117},[83,11316,3860],{"class":2536},[83,11318,2548],{"class":117},[83,11320,11321,11323,11325],{"class":85,"line":4921},[83,11322,2814],{"class":117},[83,11324,2556],{"class":2536},[83,11326,2548],{"class":117},[83,11328,11329,11331,11333,11335,11337],{"class":85,"line":4930},[83,11330,2580],{"class":117},[83,11332,3392],{"class":2536},[83,11334,3358],{"class":117},[83,11336,3392],{"class":2536},[83,11338,2548],{"class":117},[83,11340,11341,11343,11345,11347,11349],{"class":85,"line":4943},[83,11342,2580],{"class":117},[83,11344,3897],{"class":2536},[83,11346,3863],{"class":117},[83,11348,3897],{"class":2536},[83,11350,2548],{"class":117},[83,11352,11353,11355,11357],{"class":85,"line":4956},[83,11354,2651],{"class":117},[83,11356,2894],{"class":2536},[83,11358,2548],{"class":117},[83,11360,11361,11363,11365,11367,11369,11371],{"class":85,"line":4965},[83,11362,2570],{"class":117},[83,11364,2894],{"class":2536},[83,11366,2540],{"class":103},[83,11368,1837],{"class":117},[83,11370,4976],{"class":107},[83,11372,2548],{"class":117},[83,11374,11375,11377,11379,11382,11384],{"class":85,"line":4981},[83,11376,2580],{"class":117},[83,11378,3707],{"class":2536},[83,11380,11381],{"class":117},">0.000162 -2.53144 0.499999 0 -0 -0.001876\u003C/",[83,11383,3707],{"class":2536},[83,11385,2548],{"class":117},[83,11387,11388,11390,11392,11394,11396,11398],{"class":85,"line":4995},[83,11389,2580],{"class":117},[83,11391,2556],{"class":2536},[83,11393,2540],{"class":103},[83,11395,1837],{"class":117},[83,11397,3956],{"class":107},[83,11399,2548],{"class":117},[83,11401,11402,11404,11406],{"class":85,"line":5010},[83,11403,2754],{"class":117},[83,11405,2573],{"class":2536},[83,11407,2548],{"class":117},[83,11409,11410,11412,11414],{"class":85,"line":5019},[83,11411,2950],{"class":117},[83,11413,2601],{"class":2536},[83,11415,2548],{"class":117},[83,11417,11418,11420,11422,11424,11426],{"class":85,"line":5028},[83,11419,3443],{"class":117},[83,11421,2953],{"class":2536},[83,11423,3986],{"class":117},[83,11425,2953],{"class":2536},[83,11427,2548],{"class":117},[83,11429,11430,11432,11434,11436,11438],{"class":85,"line":5041},[83,11431,3443],{"class":117},[83,11433,3774],{"class":2536},[83,11435,3777],{"class":117},[83,11437,3774],{"class":2536},[83,11439,2548],{"class":117},[83,11441,11442,11444,11446,11448,11450],{"class":85,"line":5054},[83,11443,3443],{"class":117},[83,11445,3788],{"class":2536},[83,11447,3777],{"class":117},[83,11449,3788],{"class":2536},[83,11451,2548],{"class":117},[83,11453,11454,11456,11458,11460,11462],{"class":85,"line":5067},[83,11455,3443],{"class":117},[83,11457,2966],{"class":2536},[83,11459,3986],{"class":117},[83,11461,2966],{"class":2536},[83,11463,2548],{"class":117},[83,11465,11466,11468,11470,11472,11474],{"class":85,"line":5080},[83,11467,3443],{"class":117},[83,11469,3815],{"class":2536},[83,11471,3777],{"class":117},[83,11473,3815],{"class":2536},[83,11475,2548],{"class":117},[83,11477,11478,11480,11482,11484,11486],{"class":85,"line":5093},[83,11479,3443],{"class":117},[83,11481,2979],{"class":2536},[83,11483,3986],{"class":117},[83,11485,2979],{"class":2536},[83,11487,2548],{"class":117},[83,11489,11490,11492,11494],{"class":85,"line":5106},[83,11491,3491],{"class":117},[83,11493,2601],{"class":2536},[83,11495,2548],{"class":117},[83,11497,11498,11500,11502,11504,11506],{"class":85,"line":5115},[83,11499,2950],{"class":117},[83,11501,2583],{"class":2536},[83,11503,3743],{"class":117},[83,11505,2583],{"class":2536},[83,11507,2548],{"class":117},[83,11509,11510,11512,11514,11516,11518],{"class":85,"line":5128},[83,11511,2950],{"class":117},[83,11513,3707],{"class":2536},[83,11515,3710],{"class":117},[83,11517,3707],{"class":2536},[83,11519,2548],{"class":117},[83,11521,11522,11524,11526],{"class":85,"line":5141},[83,11523,2990],{"class":117},[83,11525,2573],{"class":2536},[83,11527,2548],{"class":117},[83,11529,11530,11532,11534,11536,11538,11540],{"class":85,"line":5150},[83,11531,2754],{"class":117},[83,11533,3420],{"class":2536},[83,11535,2540],{"class":103},[83,11537,1837],{"class":117},[83,11539,4113],{"class":107},[83,11541,2548],{"class":117},[83,11543,11544,11546,11548],{"class":85,"line":5165},[83,11545,2950],{"class":117},[83,11547,3436],{"class":2536},[83,11549,2548],{"class":117},[83,11551,11552,11554,11556],{"class":85,"line":5174},[83,11553,3443],{"class":117},[83,11555,4132],{"class":2536},[83,11557,2548],{"class":117},[83,11559,11560,11562,11564,11566,11568],{"class":85,"line":5183},[83,11561,3453],{"class":117},[83,11563,3470],{"class":2536},[83,11565,5190],{"class":117},[83,11567,3470],{"class":2536},[83,11569,2548],{"class":117},[83,11571,11572,11574,11576],{"class":85,"line":5197},[83,11573,3482],{"class":117},[83,11575,4132],{"class":2536},[83,11577,2548],{"class":117},[83,11579,11580,11582,11584],{"class":85,"line":5206},[83,11581,3491],{"class":117},[83,11583,3436],{"class":2536},[83,11585,2548],{"class":117},[83,11587,11588,11590,11592],{"class":85,"line":5215},[83,11589,2950],{"class":117},[83,11591,3502],{"class":2536},[83,11593,2548],{"class":117},[83,11595,11596,11598,11600],{"class":85,"line":5224},[83,11597,3443],{"class":117},[83,11599,3511],{"class":2536},[83,11601,2548],{"class":117},[83,11603,11604,11606,11608],{"class":85,"line":5233},[83,11605,3453],{"class":117},[83,11607,3520],{"class":2536},[83,11609,3201],{"class":117},[83,11611,11612,11614,11616],{"class":85,"line":5242},[83,11613,3482],{"class":117},[83,11615,3511],{"class":2536},[83,11617,2548],{"class":117},[83,11619,11620,11622,11624],{"class":85,"line":5251},[83,11621,3443],{"class":117},[83,11623,3537],{"class":2536},[83,11625,3201],{"class":117},[83,11627,11628,11630,11632],{"class":85,"line":5260},[83,11629,3443],{"class":117},[83,11631,3546],{"class":2536},[83,11633,3201],{"class":117},[83,11635,11636,11638,11640],{"class":85,"line":5269},[83,11637,3491],{"class":117},[83,11639,3502],{"class":2536},[83,11641,2548],{"class":117},[83,11643,11644,11646,11648],{"class":85,"line":5278},[83,11645,2990],{"class":117},[83,11647,3420],{"class":2536},[83,11649,2548],{"class":117},[83,11651,11652,11654,11656,11658,11660,11662],{"class":85,"line":5287},[83,11653,2754],{"class":117},[83,11655,3571],{"class":2536},[83,11657,2540],{"class":103},[83,11659,1837],{"class":117},[83,11661,4252],{"class":107},[83,11663,2548],{"class":117},[83,11665,11666,11668,11670],{"class":85,"line":5302},[83,11667,2950],{"class":117},[83,11669,3436],{"class":2536},[83,11671,2548],{"class":117},[83,11673,11674,11676,11678],{"class":85,"line":5311},[83,11675,3443],{"class":117},[83,11677,4132],{"class":2536},[83,11679,2548],{"class":117},[83,11681,11682,11684,11686,11688,11690],{"class":85,"line":5320},[83,11683,3453],{"class":117},[83,11685,3470],{"class":2536},[83,11687,5190],{"class":117},[83,11689,3470],{"class":2536},[83,11691,2548],{"class":117},[83,11693,11694,11696,11698],{"class":85,"line":5333},[83,11695,3482],{"class":117},[83,11697,4132],{"class":2536},[83,11699,2548],{"class":117},[83,11701,11702,11704,11706],{"class":85,"line":5342},[83,11703,3491],{"class":117},[83,11705,3436],{"class":2536},[83,11707,2548],{"class":117},[83,11709,11710,11712,11714],{"class":85,"line":5351},[83,11711,2950],{"class":117},[83,11713,3643],{"class":2536},[83,11715,2548],{"class":117},[83,11717,11718,11720,11722,11724,11726],{"class":85,"line":5360},[83,11719,3443],{"class":117},[83,11721,3327],{"class":2536},[83,11723,4322],{"class":117},[83,11725,3327],{"class":2536},[83,11727,2548],{"class":117},[83,11729,11730,11732,11734,11736,11738],{"class":85,"line":5373},[83,11731,3443],{"class":117},[83,11733,3665],{"class":2536},[83,11735,3344],{"class":117},[83,11737,3665],{"class":2536},[83,11739,2548],{"class":117},[83,11741,11742,11744,11746,11748,11750],{"class":85,"line":5386},[83,11743,3443],{"class":117},[83,11745,3678],{"class":2536},[83,11747,4349],{"class":117},[83,11749,3678],{"class":2536},[83,11751,2548],{"class":117},[83,11753,11754,11756,11758],{"class":85,"line":5399},[83,11755,3491],{"class":117},[83,11757,3643],{"class":2536},[83,11759,2548],{"class":117},[83,11761,11762,11764,11766],{"class":85,"line":5408},[83,11763,2990],{"class":117},[83,11765,3571],{"class":2536},[83,11767,2548],{"class":117},[83,11769,11770,11772,11774,11776,11778],{"class":85,"line":5417},[83,11771,2754],{"class":117},[83,11773,3707],{"class":2536},[83,11775,3710],{"class":117},[83,11777,3707],{"class":2536},[83,11779,2548],{"class":117},[83,11781,11782,11784,11786,11788,11790],{"class":85,"line":5430},[83,11783,2754],{"class":117},[83,11785,3860],{"class":2536},[83,11787,3863],{"class":117},[83,11789,3860],{"class":2536},[83,11791,2548],{"class":117},[83,11793,11794,11796,11798],{"class":85,"line":5443},[83,11795,2814],{"class":117},[83,11797,2556],{"class":2536},[83,11799,2548],{"class":117},[83,11801,11802,11804,11806,11808,11810],{"class":85,"line":5452},[83,11803,2580],{"class":117},[83,11805,3392],{"class":2536},[83,11807,3358],{"class":117},[83,11809,3392],{"class":2536},[83,11811,2548],{"class":117},[83,11813,11814,11816,11818,11820,11822],{"class":85,"line":5465},[83,11815,2580],{"class":117},[83,11817,3897],{"class":2536},[83,11819,3863],{"class":117},[83,11821,3897],{"class":2536},[83,11823,2548],{"class":117},[83,11825,11826,11828,11830],{"class":85,"line":5478},[83,11827,2651],{"class":117},[83,11829,2894],{"class":2536},[83,11831,2548],{"class":117},[83,11833,11834,11836,11838,11840,11842,11844],{"class":85,"line":5487},[83,11835,2570],{"class":117},[83,11837,2894],{"class":2536},[83,11839,2540],{"class":103},[83,11841,1837],{"class":117},[83,11843,5498],{"class":107},[83,11845,2548],{"class":117},[83,11847,11848,11850,11852,11855,11857],{"class":85,"line":5503},[83,11849,2580],{"class":117},[83,11851,3707],{"class":2536},[83,11853,11854],{"class":117},">0.00012 2.51517 0.499999 0 -0 -0.00303\u003C/",[83,11856,3707],{"class":2536},[83,11858,2548],{"class":117},[83,11860,11861,11863,11865,11867,11869,11871],{"class":85,"line":5517},[83,11862,2580],{"class":117},[83,11864,2556],{"class":2536},[83,11866,2540],{"class":103},[83,11868,1837],{"class":117},[83,11870,3956],{"class":107},[83,11872,2548],{"class":117},[83,11874,11875,11877,11879],{"class":85,"line":5532},[83,11876,2754],{"class":117},[83,11878,2573],{"class":2536},[83,11880,2548],{"class":117},[83,11882,11883,11885,11887],{"class":85,"line":5541},[83,11884,2950],{"class":117},[83,11886,2601],{"class":2536},[83,11888,2548],{"class":117},[83,11890,11891,11893,11895,11897,11899],{"class":85,"line":5550},[83,11892,3443],{"class":117},[83,11894,2953],{"class":2536},[83,11896,3986],{"class":117},[83,11898,2953],{"class":2536},[83,11900,2548],{"class":117},[83,11902,11903,11905,11907,11909,11911],{"class":85,"line":5563},[83,11904,3443],{"class":117},[83,11906,3774],{"class":2536},[83,11908,3777],{"class":117},[83,11910,3774],{"class":2536},[83,11912,2548],{"class":117},[83,11914,11915,11917,11919,11921,11923],{"class":85,"line":5576},[83,11916,3443],{"class":117},[83,11918,3788],{"class":2536},[83,11920,3777],{"class":117},[83,11922,3788],{"class":2536},[83,11924,2548],{"class":117},[83,11926,11927,11929,11931,11933,11935],{"class":85,"line":5589},[83,11928,3443],{"class":117},[83,11930,2966],{"class":2536},[83,11932,3986],{"class":117},[83,11934,2966],{"class":2536},[83,11936,2548],{"class":117},[83,11938,11939,11941,11943,11945,11947],{"class":85,"line":5602},[83,11940,3443],{"class":117},[83,11942,3815],{"class":2536},[83,11944,3777],{"class":117},[83,11946,3815],{"class":2536},[83,11948,2548],{"class":117},[83,11950,11951,11953,11955,11957,11959],{"class":85,"line":5615},[83,11952,3443],{"class":117},[83,11954,2979],{"class":2536},[83,11956,3986],{"class":117},[83,11958,2979],{"class":2536},[83,11960,2548],{"class":117},[83,11962,11963,11965,11967],{"class":85,"line":5628},[83,11964,3491],{"class":117},[83,11966,2601],{"class":2536},[83,11968,2548],{"class":117},[83,11970,11971,11973,11975,11977,11979],{"class":85,"line":5637},[83,11972,2950],{"class":117},[83,11974,2583],{"class":2536},[83,11976,3743],{"class":117},[83,11978,2583],{"class":2536},[83,11980,2548],{"class":117},[83,11982,11983,11985,11987,11989,11991],{"class":85,"line":5650},[83,11984,2950],{"class":117},[83,11986,3707],{"class":2536},[83,11988,3710],{"class":117},[83,11990,3707],{"class":2536},[83,11992,2548],{"class":117},[83,11994,11995,11997,11999],{"class":85,"line":5663},[83,11996,2990],{"class":117},[83,11998,2573],{"class":2536},[83,12000,2548],{"class":117},[83,12002,12003,12005,12007,12009,12011,12013],{"class":85,"line":5672},[83,12004,2754],{"class":117},[83,12006,3420],{"class":2536},[83,12008,2540],{"class":103},[83,12010,1837],{"class":117},[83,12012,4113],{"class":107},[83,12014,2548],{"class":117},[83,12016,12017,12019,12021],{"class":85,"line":5687},[83,12018,2950],{"class":117},[83,12020,3436],{"class":2536},[83,12022,2548],{"class":117},[83,12024,12025,12027,12029],{"class":85,"line":5696},[83,12026,3443],{"class":117},[83,12028,4132],{"class":2536},[83,12030,2548],{"class":117},[83,12032,12033,12035,12037,12039,12041],{"class":85,"line":5705},[83,12034,3453],{"class":117},[83,12036,3470],{"class":2536},[83,12038,5190],{"class":117},[83,12040,3470],{"class":2536},[83,12042,2548],{"class":117},[83,12044,12045,12047,12049],{"class":85,"line":5718},[83,12046,3482],{"class":117},[83,12048,4132],{"class":2536},[83,12050,2548],{"class":117},[83,12052,12053,12055,12057],{"class":85,"line":5727},[83,12054,3491],{"class":117},[83,12056,3436],{"class":2536},[83,12058,2548],{"class":117},[83,12060,12061,12063,12065],{"class":85,"line":5736},[83,12062,2950],{"class":117},[83,12064,3502],{"class":2536},[83,12066,2548],{"class":117},[83,12068,12069,12071,12073],{"class":85,"line":5745},[83,12070,3443],{"class":117},[83,12072,3511],{"class":2536},[83,12074,2548],{"class":117},[83,12076,12077,12079,12081],{"class":85,"line":5754},[83,12078,3453],{"class":117},[83,12080,3520],{"class":2536},[83,12082,3201],{"class":117},[83,12084,12085,12087,12089],{"class":85,"line":5763},[83,12086,3482],{"class":117},[83,12088,3511],{"class":2536},[83,12090,2548],{"class":117},[83,12092,12093,12095,12097],{"class":85,"line":5772},[83,12094,3443],{"class":117},[83,12096,3537],{"class":2536},[83,12098,3201],{"class":117},[83,12100,12101,12103,12105],{"class":85,"line":5781},[83,12102,3443],{"class":117},[83,12104,3546],{"class":2536},[83,12106,3201],{"class":117},[83,12108,12109,12111,12113],{"class":85,"line":5790},[83,12110,3491],{"class":117},[83,12112,3502],{"class":2536},[83,12114,2548],{"class":117},[83,12116,12117,12119,12121],{"class":85,"line":5799},[83,12118,2990],{"class":117},[83,12120,3420],{"class":2536},[83,12122,2548],{"class":117},[83,12124,12125,12127,12129,12131,12133,12135],{"class":85,"line":5808},[83,12126,2754],{"class":117},[83,12128,3571],{"class":2536},[83,12130,2540],{"class":103},[83,12132,1837],{"class":117},[83,12134,4252],{"class":107},[83,12136,2548],{"class":117},[83,12138,12139,12141,12143],{"class":85,"line":5823},[83,12140,2950],{"class":117},[83,12142,3436],{"class":2536},[83,12144,2548],{"class":117},[83,12146,12147,12149,12151],{"class":85,"line":5832},[83,12148,3443],{"class":117},[83,12150,4132],{"class":2536},[83,12152,2548],{"class":117},[83,12154,12155,12157,12159,12161,12163],{"class":85,"line":5841},[83,12156,3453],{"class":117},[83,12158,3470],{"class":2536},[83,12160,5190],{"class":117},[83,12162,3470],{"class":2536},[83,12164,2548],{"class":117},[83,12166,12167,12169,12171],{"class":85,"line":5854},[83,12168,3482],{"class":117},[83,12170,4132],{"class":2536},[83,12172,2548],{"class":117},[83,12174,12175,12177,12179],{"class":85,"line":5863},[83,12176,3491],{"class":117},[83,12178,3436],{"class":2536},[83,12180,2548],{"class":117},[83,12182,12183,12185,12187],{"class":85,"line":5872},[83,12184,2950],{"class":117},[83,12186,3643],{"class":2536},[83,12188,2548],{"class":117},[83,12190,12191,12193,12195,12197,12199],{"class":85,"line":5881},[83,12192,3443],{"class":117},[83,12194,3327],{"class":2536},[83,12196,4322],{"class":117},[83,12198,3327],{"class":2536},[83,12200,2548],{"class":117},[83,12202,12203,12205,12207,12209,12211],{"class":85,"line":5894},[83,12204,3443],{"class":117},[83,12206,3665],{"class":2536},[83,12208,3344],{"class":117},[83,12210,3665],{"class":2536},[83,12212,2548],{"class":117},[83,12214,12215,12217,12219,12221,12223],{"class":85,"line":5907},[83,12216,3443],{"class":117},[83,12218,3678],{"class":2536},[83,12220,4349],{"class":117},[83,12222,3678],{"class":2536},[83,12224,2548],{"class":117},[83,12226,12227,12229,12231],{"class":85,"line":5920},[83,12228,3491],{"class":117},[83,12230,3643],{"class":2536},[83,12232,2548],{"class":117},[83,12234,12235,12237,12239],{"class":85,"line":5929},[83,12236,2990],{"class":117},[83,12238,3571],{"class":2536},[83,12240,2548],{"class":117},[83,12242,12243,12245,12247,12249,12251],{"class":85,"line":5938},[83,12244,2754],{"class":117},[83,12246,3707],{"class":2536},[83,12248,3710],{"class":117},[83,12250,3707],{"class":2536},[83,12252,2548],{"class":117},[83,12254,12255,12257,12259,12261,12263],{"class":85,"line":5951},[83,12256,2754],{"class":117},[83,12258,3860],{"class":2536},[83,12260,3863],{"class":117},[83,12262,3860],{"class":2536},[83,12264,2548],{"class":117},[83,12266,12267,12269,12271],{"class":85,"line":5964},[83,12268,2814],{"class":117},[83,12270,2556],{"class":2536},[83,12272,2548],{"class":117},[83,12274,12275,12277,12279,12281,12283],{"class":85,"line":5973},[83,12276,2580],{"class":117},[83,12278,3392],{"class":2536},[83,12280,3358],{"class":117},[83,12282,3392],{"class":2536},[83,12284,2548],{"class":117},[83,12286,12287,12289,12291,12293,12295],{"class":85,"line":5986},[83,12288,2580],{"class":117},[83,12290,3897],{"class":2536},[83,12292,3863],{"class":117},[83,12294,3897],{"class":2536},[83,12296,2548],{"class":117},[83,12298,12299,12301,12303],{"class":85,"line":5999},[83,12300,2651],{"class":117},[83,12302,2894],{"class":2536},[83,12304,2548],{"class":117},[83,12306,12307],{"class":85,"line":6008},[83,12308,12309],{"class":96},"    \u003C!-- Jazzy 迁移说明开始：下面是本机 file:// 模型目录，ign_models 只是文件夹名，不属于 Gazebo API，因此保留不改。 -->\n",[83,12311,12312,12314,12317],{"class":85,"line":6032},[83,12313,2570],{"class":117},[83,12315,12316],{"class":2536},"include",[83,12318,2548],{"class":117},[83,12320,12321,12323,12326,12329,12331],{"class":85,"line":6046},[83,12322,2580],{"class":117},[83,12324,12325],{"class":2536},"uri",[83,12327,12328],{"class":117},">file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/bed\u003C/",[83,12330,12325],{"class":2536},[83,12332,2548],{"class":117},[83,12334,12335,12337,12339,12342,12344],{"class":85,"line":6060},[83,12336,2580],{"class":117},[83,12338,6293],{"class":2536},[83,12340,12341],{"class":117},">Bed\u003C/",[83,12343,6293],{"class":2536},[83,12345,2548],{"class":117},[83,12347,12348,12350,12352,12355,12357],{"class":85,"line":6074},[83,12349,2580],{"class":117},[83,12351,3707],{"class":2536},[83,12353,12354],{"class":117},">2.11564 -0.080355 0 0 -0 0\u003C/",[83,12356,3707],{"class":2536},[83,12358,2548],{"class":117},[83,12360,12361,12363,12365],{"class":85,"line":6089},[83,12362,2651],{"class":117},[83,12364,12316],{"class":2536},[83,12366,2548],{"class":117},[83,12368,12369,12371,12373],{"class":85,"line":6102},[83,12370,2570],{"class":117},[83,12372,12316],{"class":2536},[83,12374,2548],{"class":117},[83,12376,12377,12379,12381,12384,12386],{"class":85,"line":6116},[83,12378,2580],{"class":117},[83,12380,12325],{"class":2536},[83,12382,12383],{"class":117},">file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/",[83,12385,12325],{"class":2536},[83,12387,2548],{"class":117},[83,12389,12390,12392,12394,12397,12399],{"class":85,"line":6126},[83,12391,2580],{"class":117},[83,12393,6293],{"class":2536},[83,12395,12396],{"class":117},">WhiteCabinet\u003C/",[83,12398,6293],{"class":2536},[83,12400,2548],{"class":117},[83,12402,12403,12405,12407,12410,12412],{"class":85,"line":6140},[83,12404,2580],{"class":117},[83,12406,3707],{"class":2536},[83,12408,12409],{"class":117},">-1.69505 1.99357 0 0 0 -1.59625\u003C/",[83,12411,3707],{"class":2536},[83,12413,2548],{"class":117},[83,12415,12416,12418,12420],{"class":85,"line":6155},[83,12417,2651],{"class":117},[83,12419,12316],{"class":2536},[83,12421,2548],{"class":117},[83,12423,12424,12426,12428],{"class":85,"line":6170},[83,12425,2570],{"class":117},[83,12427,12316],{"class":2536},[83,12429,2548],{"class":117},[83,12431,12432,12434,12436,12438,12440],{"class":85,"line":6184},[83,12433,2580],{"class":117},[83,12435,12325],{"class":2536},[83,12437,12383],{"class":117},[83,12439,12325],{"class":2536},[83,12441,2548],{"class":117},[83,12443,12444,12446,12448,12451,12453],{"class":85,"line":6193},[83,12445,2580],{"class":117},[83,12447,6293],{"class":2536},[83,12449,12450],{"class":117},">WhiteCabinet_1\u003C/",[83,12452,6293],{"class":2536},[83,12454,2548],{"class":117},[83,12456,12457,12459,12461,12464,12466],{"class":85,"line":6203},[83,12458,2580],{"class":117},[83,12460,3707],{"class":2536},[83,12462,12463],{"class":117},">-1.71706 1.10132 0 0 0 -1.59625\u003C/",[83,12465,3707],{"class":2536},[83,12467,2548],{"class":117},[83,12469,12470,12472,12474],{"class":85,"line":6217},[83,12471,2651],{"class":117},[83,12473,12316],{"class":2536},[83,12475,2548],{"class":117},[83,12477,12478,12480,12482],{"class":85,"line":6231},[83,12479,2570],{"class":117},[83,12481,12316],{"class":2536},[83,12483,2548],{"class":117},[83,12485,12486,12488,12490,12492,12494],{"class":85,"line":6245},[83,12487,2580],{"class":117},[83,12489,12325],{"class":2536},[83,12491,12383],{"class":117},[83,12493,12325],{"class":2536},[83,12495,2548],{"class":117},[83,12497,12498,12500,12502,12505,12507],{"class":85,"line":6254},[83,12499,2580],{"class":117},[83,12501,6293],{"class":2536},[83,12503,12504],{"class":117},">WhiteCabinet_2\u003C/",[83,12506,6293],{"class":2536},[83,12508,2548],{"class":117},[83,12510,12511,12513,12515,12518,12520],{"class":85,"line":6263},[83,12512,2580],{"class":117},[83,12514,3707],{"class":2536},[83,12516,12517],{"class":117},">-1.74096 0.206747 0 0 0 -1.59625\u003C/",[83,12519,3707],{"class":2536},[83,12521,2548],{"class":117},[83,12523,12524,12526,12528],{"class":85,"line":6272},[83,12525,2651],{"class":117},[83,12527,12316],{"class":2536},[83,12529,2548],{"class":117},[83,12531,12533,12535,12537],{"class":85,"line":12532},278,[83,12534,2570],{"class":117},[83,12536,12316],{"class":2536},[83,12538,2548],{"class":117},[83,12540,12542,12544,12546,12548,12550],{"class":85,"line":12541},279,[83,12543,2580],{"class":117},[83,12545,12325],{"class":2536},[83,12547,12383],{"class":117},[83,12549,12325],{"class":2536},[83,12551,2548],{"class":117},[83,12553,12555,12557,12559,12562,12564],{"class":85,"line":12554},280,[83,12556,2580],{"class":117},[83,12558,6293],{"class":2536},[83,12560,12561],{"class":117},">WhiteCabinet_3\u003C/",[83,12563,6293],{"class":2536},[83,12565,2548],{"class":117},[83,12567,12569,12571,12573,12576,12578],{"class":85,"line":12568},281,[83,12570,2580],{"class":117},[83,12572,3707],{"class":2536},[83,12574,12575],{"class":117},">-1.76908 -0.654114 0 0 0 -1.59625\u003C/",[83,12577,3707],{"class":2536},[83,12579,2548],{"class":117},[83,12581,12583,12585,12587],{"class":85,"line":12582},282,[83,12584,2651],{"class":117},[83,12586,12316],{"class":2536},[83,12588,2548],{"class":117},[83,12590,12592,12594,12596],{"class":85,"line":12591},283,[83,12593,2570],{"class":117},[83,12595,12316],{"class":2536},[83,12597,2548],{"class":117},[83,12599,12601,12603,12605,12607,12609],{"class":85,"line":12600},284,[83,12602,2580],{"class":117},[83,12604,12325],{"class":2536},[83,12606,12383],{"class":117},[83,12608,12325],{"class":2536},[83,12610,2548],{"class":117},[83,12612,12614,12616,12618,12621,12623],{"class":85,"line":12613},285,[83,12615,2580],{"class":117},[83,12617,6293],{"class":2536},[83,12619,12620],{"class":117},">WhiteCabinet_4\u003C/",[83,12622,6293],{"class":2536},[83,12624,2548],{"class":117},[83,12626,12628,12630,12632,12635,12637],{"class":85,"line":12627},286,[83,12629,2580],{"class":117},[83,12631,3707],{"class":2536},[83,12633,12634],{"class":117},">-3.54096 -1.97391 0 0 0 -1.59625\u003C/",[83,12636,3707],{"class":2536},[83,12638,2548],{"class":117},[83,12640,12642,12644,12646],{"class":85,"line":12641},287,[83,12643,2651],{"class":117},[83,12645,12316],{"class":2536},[83,12647,2548],{"class":117},[83,12649,12651,12653,12655],{"class":85,"line":12650},288,[83,12652,2570],{"class":117},[83,12654,12316],{"class":2536},[83,12656,2548],{"class":117},[83,12658,12660,12662,12664,12666,12668],{"class":85,"line":12659},289,[83,12661,2580],{"class":117},[83,12663,12325],{"class":2536},[83,12665,12383],{"class":117},[83,12667,12325],{"class":2536},[83,12669,2548],{"class":117},[83,12671,12673,12675,12677,12680,12682],{"class":85,"line":12672},290,[83,12674,2580],{"class":117},[83,12676,6293],{"class":2536},[83,12678,12679],{"class":117},">WhiteCabinet_4_1\u003C/",[83,12681,6293],{"class":2536},[83,12683,2548],{"class":117},[83,12685,12687,12689,12691,12694,12696],{"class":85,"line":12686},291,[83,12688,2580],{"class":117},[83,12690,3707],{"class":2536},[83,12692,12693],{"class":117},">-3.51784 -1.10026 0 0 0 -1.59625\u003C/",[83,12695,3707],{"class":2536},[83,12697,2548],{"class":117},[83,12699,12701,12703,12705],{"class":85,"line":12700},292,[83,12702,2651],{"class":117},[83,12704,12316],{"class":2536},[83,12706,2548],{"class":117},[83,12708,12710,12712,12714],{"class":85,"line":12709},293,[83,12711,2570],{"class":117},[83,12713,12316],{"class":2536},[83,12715,2548],{"class":117},[83,12717,12719,12721,12723,12725,12727],{"class":85,"line":12718},294,[83,12720,2580],{"class":117},[83,12722,12325],{"class":2536},[83,12724,12383],{"class":117},[83,12726,12325],{"class":2536},[83,12728,2548],{"class":117},[83,12730,12732,12734,12736,12739,12741],{"class":85,"line":12731},295,[83,12733,2580],{"class":117},[83,12735,6293],{"class":2536},[83,12737,12738],{"class":117},">WhiteCabinet_4_1_1\u003C/",[83,12740,6293],{"class":2536},[83,12742,2548],{"class":117},[83,12744,12746,12748,12750,12753,12755],{"class":85,"line":12745},296,[83,12747,2580],{"class":117},[83,12749,3707],{"class":2536},[83,12751,12752],{"class":117},">-3.44853 2.02068 0 0 0 -1.59625\u003C/",[83,12754,3707],{"class":2536},[83,12756,2548],{"class":117},[83,12758,12760,12762,12764],{"class":85,"line":12759},297,[83,12761,2651],{"class":117},[83,12763,12316],{"class":2536},[83,12765,2548],{"class":117},[83,12767,12769,12771,12773],{"class":85,"line":12768},298,[83,12770,2570],{"class":117},[83,12772,12316],{"class":2536},[83,12774,2548],{"class":117},[83,12776,12778,12780,12782,12784,12786],{"class":85,"line":12777},299,[83,12779,2580],{"class":117},[83,12781,12325],{"class":2536},[83,12783,12383],{"class":117},[83,12785,12325],{"class":2536},[83,12787,2548],{"class":117},[83,12789,12791,12793,12795,12798,12800],{"class":85,"line":12790},300,[83,12792,2580],{"class":117},[83,12794,6293],{"class":2536},[83,12796,12797],{"class":117},">WhiteCabinet_4_1_1_1\u003C/",[83,12799,6293],{"class":2536},[83,12801,2548],{"class":117},[83,12803,12805,12807,12809,12812,12814],{"class":85,"line":12804},301,[83,12806,2580],{"class":117},[83,12808,3707],{"class":2536},[83,12810,12811],{"class":117},">-3.499 -0.197449 0 0 0 -1.59625\u003C/",[83,12813,3707],{"class":2536},[83,12815,2548],{"class":117},[83,12817,12819,12821,12823],{"class":85,"line":12818},302,[83,12820,2651],{"class":117},[83,12822,12316],{"class":2536},[83,12824,2548],{"class":117},[83,12826,12828,12830,12832],{"class":85,"line":12827},303,[83,12829,2570],{"class":117},[83,12831,12316],{"class":2536},[83,12833,2548],{"class":117},[83,12835,12837,12839,12841,12843,12845],{"class":85,"line":12836},304,[83,12838,2580],{"class":117},[83,12840,12325],{"class":2536},[83,12842,12383],{"class":117},[83,12844,12325],{"class":2536},[83,12846,2548],{"class":117},[83,12848,12850,12852,12854,12857,12859],{"class":85,"line":12849},305,[83,12851,2580],{"class":117},[83,12853,6293],{"class":2536},[83,12855,12856],{"class":117},">WhiteCabinet_3_1\u003C/",[83,12858,6293],{"class":2536},[83,12860,2548],{"class":117},[83,12862,12864,12866,12868,12871,12873],{"class":85,"line":12863},306,[83,12865,2580],{"class":117},[83,12867,3707],{"class":2536},[83,12869,12870],{"class":117},">-0.465147 -0.678914 0 0 0 -1.59625\u003C/",[83,12872,3707],{"class":2536},[83,12874,2548],{"class":117},[83,12876,12878,12880,12882],{"class":85,"line":12877},307,[83,12879,2651],{"class":117},[83,12881,12316],{"class":2536},[83,12883,2548],{"class":117},[83,12885,12887,12889,12891],{"class":85,"line":12886},308,[83,12888,2570],{"class":117},[83,12890,12316],{"class":2536},[83,12892,2548],{"class":117},[83,12894,12896,12898,12900,12902,12904],{"class":85,"line":12895},309,[83,12897,2580],{"class":117},[83,12899,12325],{"class":2536},[83,12901,12383],{"class":117},[83,12903,12325],{"class":2536},[83,12905,2548],{"class":117},[83,12907,12909,12911,12913,12916,12918],{"class":85,"line":12908},310,[83,12910,2580],{"class":117},[83,12912,6293],{"class":2536},[83,12914,12915],{"class":117},">WhiteCabinet_3_1_1\u003C/",[83,12917,6293],{"class":2536},[83,12919,2548],{"class":117},[83,12921,12923,12925,12927,12930,12932],{"class":85,"line":12922},311,[83,12924,2580],{"class":117},[83,12926,3707],{"class":2536},[83,12928,12929],{"class":117},">-1.12325 -0.88551 0 0 0 -0.016899\u003C/",[83,12931,3707],{"class":2536},[83,12933,2548],{"class":117},[83,12935,12937,12939,12941],{"class":85,"line":12936},312,[83,12938,2651],{"class":117},[83,12940,12316],{"class":2536},[83,12942,2548],{"class":117},[83,12944,12946,12948,12950],{"class":85,"line":12945},313,[83,12947,2570],{"class":117},[83,12949,12316],{"class":2536},[83,12951,2548],{"class":117},[83,12953,12955,12957,12959,12961,12963],{"class":85,"line":12954},314,[83,12956,2580],{"class":117},[83,12958,12325],{"class":2536},[83,12960,12383],{"class":117},[83,12962,12325],{"class":2536},[83,12964,2548],{"class":117},[83,12966,12968,12970,12972,12975,12977],{"class":85,"line":12967},315,[83,12969,2580],{"class":117},[83,12971,6293],{"class":2536},[83,12973,12974],{"class":117},">WhiteCabinet_3_1_2\u003C/",[83,12976,6293],{"class":2536},[83,12978,2548],{"class":117},[83,12980,12982,12984,12986,12989,12991],{"class":85,"line":12981},316,[83,12983,2580],{"class":117},[83,12985,3707],{"class":2536},[83,12987,12988],{"class":117},">-0.445223 0.182127 0 0 0 -1.59625\u003C/",[83,12990,3707],{"class":2536},[83,12992,2548],{"class":117},[83,12994,12996,12998,13000],{"class":85,"line":12995},317,[83,12997,2651],{"class":117},[83,12999,12316],{"class":2536},[83,13001,2548],{"class":117},[83,13003,13005,13007,13009],{"class":85,"line":13004},318,[83,13006,2570],{"class":117},[83,13008,12316],{"class":2536},[83,13010,2548],{"class":117},[83,13012,13014,13016,13018,13020,13022],{"class":85,"line":13013},319,[83,13015,2580],{"class":117},[83,13017,12325],{"class":2536},[83,13019,12383],{"class":117},[83,13021,12325],{"class":2536},[83,13023,2548],{"class":117},[83,13025,13027,13029,13031,13034,13036],{"class":85,"line":13026},320,[83,13028,2580],{"class":117},[83,13030,6293],{"class":2536},[83,13032,13033],{"class":117},">WhiteCabinet_3_1_2_1\u003C/",[83,13035,6293],{"class":2536},[83,13037,2548],{"class":117},[83,13039,13041,13043,13045,13048,13050],{"class":85,"line":13040},321,[83,13042,2580],{"class":117},[83,13044,3707],{"class":2536},[83,13046,13047],{"class":117},">-0.422109 1.02215 0 0 0 -1.59625\u003C/",[83,13049,3707],{"class":2536},[83,13051,2548],{"class":117},[83,13053,13055,13057,13059],{"class":85,"line":13054},322,[83,13056,2651],{"class":117},[83,13058,12316],{"class":2536},[83,13060,2548],{"class":117},[83,13062,13064],{"class":85,"line":13063},323,[83,13065,13066],{"class":96},"    \u003C!-- Jazzy 迁移说明结束：如果以后重命名本机模型目录，需要同步修改这些 file:// 路径。 -->\n",[83,13068,13070,13072,13074,13076,13078,13080,13082,13084,13086],{"class":85,"line":13069},324,[83,13071,2570],{"class":117},[83,13073,6013],{"class":2536},[83,13075,2540],{"class":103},[83,13077,1837],{"class":117},[83,13079,6020],{"class":107},[83,13081,3119],{"class":103},[83,13083,1837],{"class":117},[83,13085,6027],{"class":107},[83,13087,2548],{"class":117},[83,13089,13091,13093,13095,13097,13099],{"class":85,"line":13090},325,[83,13092,2580],{"class":117},[83,13094,3707],{"class":2536},[83,13096,6039],{"class":117},[83,13098,3707],{"class":2536},[83,13100,2548],{"class":117},[83,13102,13104,13106,13108,13110,13112],{"class":85,"line":13103},326,[83,13105,2580],{"class":117},[83,13107,6051],{"class":2536},[83,13109,3358],{"class":117},[83,13111,6051],{"class":2536},[83,13113,2548],{"class":117},[83,13115,13117,13119,13121,13123,13125],{"class":85,"line":13116},327,[83,13118,2580],{"class":117},[83,13120,6065],{"class":2536},[83,13122,3150],{"class":117},[83,13124,6065],{"class":2536},[83,13126,2548],{"class":117},[83,13128,13130,13132,13134,13136,13138],{"class":85,"line":13129},328,[83,13131,2580],{"class":117},[83,13133,6079],{"class":2536},[83,13135,6082],{"class":117},[83,13137,6079],{"class":2536},[83,13139,2548],{"class":117},[83,13141,13143,13145,13147,13149,13151],{"class":85,"line":13142},329,[83,13144,2580],{"class":117},[83,13146,3665],{"class":2536},[83,13148,3654],{"class":117},[83,13150,3665],{"class":2536},[83,13152,2548],{"class":117},[83,13154,13156,13158,13160,13162,13164],{"class":85,"line":13155},330,[83,13157,2580],{"class":117},[83,13159,3678],{"class":2536},[83,13161,6109],{"class":117},[83,13163,3678],{"class":2536},[83,13165,2548],{"class":117},[83,13167,13169,13171,13173],{"class":85,"line":13168},331,[83,13170,2580],{"class":117},[83,13172,6121],{"class":2536},[83,13174,2548],{"class":117},[83,13176,13178,13180,13182,13184,13186],{"class":85,"line":13177},332,[83,13179,2754],{"class":117},[83,13181,6131],{"class":2536},[83,13183,3164],{"class":117},[83,13185,6131],{"class":2536},[83,13187,2548],{"class":117},[83,13189,13191,13193,13195,13197,13199],{"class":85,"line":13190},333,[83,13192,2754],{"class":117},[83,13194,6145],{"class":2536},[83,13196,6148],{"class":117},[83,13198,6145],{"class":2536},[83,13200,2548],{"class":117},[83,13202,13204,13206,13208,13210,13212],{"class":85,"line":13203},334,[83,13205,2754],{"class":117},[83,13207,6160],{"class":2536},[83,13209,6163],{"class":117},[83,13211,6160],{"class":2536},[83,13213,2548],{"class":117},[83,13215,13217,13219,13221,13223,13225],{"class":85,"line":13216},335,[83,13218,2754],{"class":117},[83,13220,6175],{"class":2536},[83,13222,3136],{"class":117},[83,13224,6175],{"class":2536},[83,13226,2548],{"class":117},[83,13228,13230,13232,13234],{"class":85,"line":13229},336,[83,13231,2814],{"class":117},[83,13233,6121],{"class":2536},[83,13235,2548],{"class":117},[83,13237,13239,13241,13243],{"class":85,"line":13238},337,[83,13240,2580],{"class":117},[83,13242,6198],{"class":2536},[83,13244,2548],{"class":117},[83,13246,13248,13250,13252,13254,13256],{"class":85,"line":13247},338,[83,13249,2754],{"class":117},[83,13251,6208],{"class":2536},[83,13253,3777],{"class":117},[83,13255,6208],{"class":2536},[83,13257,2548],{"class":117},[83,13259,13261,13263,13265,13267,13269],{"class":85,"line":13260},339,[83,13262,2754],{"class":117},[83,13264,6222],{"class":2536},[83,13266,3777],{"class":117},[83,13268,6222],{"class":2536},[83,13270,2548],{"class":117},[83,13272,13274,13276,13278,13280,13282],{"class":85,"line":13273},340,[83,13275,2754],{"class":117},[83,13277,6236],{"class":2536},[83,13279,3777],{"class":117},[83,13281,6236],{"class":2536},[83,13283,2548],{"class":117},[83,13285,13287,13289,13291],{"class":85,"line":13286},341,[83,13288,2814],{"class":117},[83,13290,6198],{"class":2536},[83,13292,2548],{"class":117},[83,13294,13296,13298,13300],{"class":85,"line":13295},342,[83,13297,2651],{"class":117},[83,13299,6013],{"class":2536},[83,13301,2548],{"class":117},[83,13303,13305,13307,13309],{"class":85,"line":13304},343,[83,13306,2660],{"class":117},[83,13308,1601],{"class":2536},[83,13310,2548],{"class":117},[83,13312,13314,13316,13318],{"class":85,"line":13313},344,[83,13315,2669],{"class":117},[83,13317,2877],{"class":2536},[83,13319,2548],{"class":117},[15,13321,13322],{},[19,13323,2315],{},[15,13325,2318],{},[73,13327,13328],{"className":75,"code":2321,"language":77,"meta":78,"style":78},[80,13329,13330],{"__ignoreMap":78},[83,13331,13332,13334,13336,13338],{"class":85,"line":86},[83,13333,2328],{"class":103},[83,13335,2331],{"class":107},[83,13337,2334],{"class":547},[83,13339,1553],{"class":107},[15,13341,13342],{},[19,13343,2346],{},[15,13345,2349],{},[73,13347,13348],{"className":75,"code":9481,"language":77,"meta":78,"style":78},[80,13349,13350,13356],{"__ignoreMap":78},[83,13351,13352,13354],{"class":85,"line":86},[83,13353,2359],{"class":547},[83,13355,2362],{"class":107},[83,13357,13358,13360,13362,13364],{"class":85,"line":93},[83,13359,234],{"class":103},[83,13361,237],{"class":107},[83,13363,2371],{"class":107},[83,13365,9500],{"class":107},[15,13367,9503],{},[15,13369,13370],{},[171,13371],{"alt":78,"src":13372},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1732.webp",[31,13374,13376],{"id":13375},"add-a-robot-to-gazebo","Add a robot to Gazebo",[15,13378,13379],{},"In Gazebo, you can either directly create a robot model or load a robot model in URDF format from ROS2. Here we use the latter approach (you can also choose to use your own URDF car, but be sure to modify the launch file path).",[15,13381,13382,13383,13386],{},"We can use the model from the ",[80,13384,13385],{},"cpp06_urdf"," we created earlier.",[15,13388,13389],{},[19,13390,13391],{},"Prepare Robot Model Function Package",[15,13393,13394,13395,2359],{},"In the workspace, enter the following command to create the package ",[80,13396,13397],{},"mycar_description",[73,13399,13401],{"className":75,"code":13400,"language":77,"meta":78,"style":78},"cd ./src\nros2 pkg create mycar_description --build-type ament_cmake\ncd ..\n",[80,13402,13403,13411,13428],{"__ignoreMap":78},[83,13404,13405,13408],{"class":85,"line":86},[83,13406,13407],{"class":547},"cd",[83,13409,13410],{"class":107}," ./src\n",[83,13412,13413,13415,13417,13419,13422,13425],{"class":85,"line":93},[83,13414,234],{"class":103},[83,13416,1547],{"class":107},[83,13418,1550],{"class":107},[83,13420,13421],{"class":107}," mycar_description",[83,13423,13424],{"class":547}," --build-type",[83,13426,13427],{"class":107}," ament_cmake\n",[83,13429,13430,13432],{"class":85,"line":100},[83,13431,13407],{"class":547},[83,13433,13434],{"class":107}," ..\n",[15,13436,13437,13438],{},"Create the following folders under the function package ",[80,13439,13440],{},"launch，urdf，rviz，meshes",[15,13442,13443],{},[19,13444,13445],{},"Modify the following configuration file:",[15,13447,13448,13451,13452,13455],{},[19,13449,13450],{},"1. package.xml：","\nIn ",[80,13453,13454],{},"package.xml",", you need to manually add some runtime dependencies. The core content is as follows:",[73,13457,13459],{"className":2524,"code":13458,"language":2526,"meta":78,"style":78},"\u003Cexec_depend>rviz2\u003C/exec_depend>\n\u003Cexec_depend>xacro\u003C/exec_depend>\n\u003Cexec_depend>robot_state_publisher\u003C/exec_depend>\n\u003Cexec_depend>joint_state_publisher\u003C/exec_depend>\n\u003Cexec_depend>ros2launch\u003C/exec_depend>\n",[80,13460,13461,13475,13488,13501,13514],{"__ignoreMap":78},[83,13462,13463,13465,13468,13471,13473],{"class":85,"line":86},[83,13464,2533],{"class":117},[83,13466,13467],{"class":2536},"exec_depend",[83,13469,13470],{"class":117},">rviz2\u003C/",[83,13472,13467],{"class":2536},[83,13474,2548],{"class":117},[83,13476,13477,13479,13481,13484,13486],{"class":85,"line":93},[83,13478,2533],{"class":117},[83,13480,13467],{"class":2536},[83,13482,13483],{"class":117},">xacro\u003C/",[83,13485,13467],{"class":2536},[83,13487,2548],{"class":117},[83,13489,13490,13492,13494,13497,13499],{"class":85,"line":100},[83,13491,2533],{"class":117},[83,13493,13467],{"class":2536},[83,13495,13496],{"class":117},">robot_state_publisher\u003C/",[83,13498,13467],{"class":2536},[83,13500,2548],{"class":117},[83,13502,13503,13505,13507,13510,13512],{"class":85,"line":124},[83,13504,2533],{"class":117},[83,13506,13467],{"class":2536},[83,13508,13509],{"class":117},">joint_state_publisher\u003C/",[83,13511,13467],{"class":2536},[83,13513,2548],{"class":117},[83,13515,13516,13518,13520,13523,13525],{"class":85,"line":129},[83,13517,2533],{"class":117},[83,13519,13467],{"class":2536},[83,13521,13522],{"class":117},">ros2launch\u003C/",[83,13524,13467],{"class":2536},[83,13526,2548],{"class":117},[15,13528,13529,13532],{},[19,13530,13531],{},"2.CMakeLists.txt","\nUnder the function package, several directories were created. Installation paths need to be configured for these directories. The core content is as follows:",[73,13534,13536],{"className":1569,"code":13535,"language":1571,"meta":78,"style":78},"install(\n  DIRECTORY launch urdf rviz meshes\n  DESTINATION share/${PROJECT_NAME}  \n)\n",[80,13537,13538,13545,13550,13560],{"__ignoreMap":78},[83,13539,13540,13542],{"class":85,"line":86},[83,13541,1578],{"class":742},[83,13543,13544],{"class":117},"(\n",[83,13546,13547],{"class":85,"line":93},[83,13548,13549],{"class":117},"  DIRECTORY launch urdf rviz meshes\n",[83,13551,13552,13555,13557],{"class":85,"line":100},[83,13553,13554],{"class":117},"  DESTINATION share/",[83,13556,1584],{"class":742},[83,13558,13559],{"class":117},"  \n",[83,13561,13562],{"class":85,"line":124},[83,13563,1587],{"class":117},[15,13565,13566,13567,13570,13571,13573,13574,13576,13577,13579],{},"Overwrite the contents of the ",[80,13568,13569],{},"urdf"," folder in the previous ",[80,13572,13385],{}," package into the ",[80,13575,13569],{}," folder in the ",[80,13578,13397],{}," package.",[15,13581,13582,13583,13585,13586,13588,13589,13592,13593,13573,13595,13597,13598,13600,13601,13604,13605,13608],{},"Create a new ",[80,13584,13397],{}," directory in ",[80,13587,9543],{},", and copy the ",[80,13590,13591],{},"mesh"," directory from the ",[80,13594,13397],{},[80,13596,13397],{}," directory within ",[80,13599,9543],{},". (At this point, the ",[80,13602,13603],{},"meshes"," folder is empty, which is normal; you may only have ",[80,13606,13607],{},".STL"," files later when you use other models.)",[15,13610,13611],{},[19,13612,13613],{},"Add SDF-specific tags required by Gazebo",[15,13615,13616,13617,13620],{},"First, modify ",[80,13618,13619],{},"car_base.urdf.xacro"," by adding various factors such as inertia, collision, friction, and so on:",[73,13622,13624],{"className":2524,"code":13623,"language":2526,"meta":78,"style":78},"\u003Crobot xmlns:xacro=\"http://wiki.ros.org/xacro\">\n    \u003C!-- PI 值 -->\n    \u003Cxacro:property name=\"PI\" value=\"3.1416\"/>\n    \u003C!-- 定义车辆参数 -->\n    \u003C!-- 车体长宽高 -->\n    \u003Cxacro:property name=\"base_link_x\" value=\"0.2\"/>\n    \u003Cxacro:property name=\"base_link_y\" value=\"0.12\"/>\n    \u003Cxacro:property name=\"base_link_z\" value=\"0.07\"/>\n    \u003C!-- 离地间距 -->\n    \u003Cxacro:property name=\"distance\" value=\"0.015\"/>\n    \u003C!-- 车轮半径 宽度 -->\n    \u003Cxacro:property name=\"wheel_radius\" value=\"0.025\"/>\n    \u003Cxacro:property name=\"wheel_length\" value=\"0.02\"/>\n\n    \u003C!-- Gazebo 新增开始：Gazebo 物理参数，用于给 link 生成 inertial -->\n    \u003Cxacro:property name=\"base_footprint_radius\" value=\"0.001\"/>\n    \u003Cxacro:property name=\"base_footprint_mass\" value=\"0.001\"/>\n    \u003Cxacro:property name=\"base_link_mass\" value=\"1.0\"/>\n    \u003Cxacro:property name=\"wheel_mass\" value=\"0.05\"/>\n    \u003Cxacro:property name=\"wheel_mu1\" value=\"1.0\"/>\n    \u003Cxacro:property name=\"wheel_mu2\" value=\"0.05\"/>\n    \u003C!-- Gazebo 新增结束：Gazebo 物理参数 -->\n\n    \u003C!-- Gazebo 新增开始：球体惯性宏，给 base_footprint 使用 -->\n    \u003Cxacro:macro name=\"sphere_inertial\" params=\"mass radius\">\n        \u003Cinertial>\n            \u003Cmass value=\"${mass}\"/>\n            \u003Cinertia\n                ixx=\"${2.0 / 5.0 * mass * radius * radius}\" ixy=\"0.0\" ixz=\"0.0\"\n                iyy=\"${2.0 / 5.0 * mass * radius * radius}\" iyz=\"0.0\"\n                izz=\"${2.0 / 5.0 * mass * radius * radius}\"/>\n        \u003C/inertial>\n    \u003C/xacro:macro>\n    \u003C!-- Gazebo 新增结束：球体惯性宏 -->\n\n    \u003C!-- Gazebo 新增开始：长方体惯性宏，给 base_link 使用 -->\n    \u003Cxacro:macro name=\"box_inertial\" params=\"mass x y z\">\n        \u003Cinertial>\n            \u003Cmass value=\"${mass}\"/>\n            \u003Cinertia\n                ixx=\"${mass / 12.0 * (y * y + z * z)}\" ixy=\"0.0\" ixz=\"0.0\"\n                iyy=\"${mass / 12.0 * (x * x + z * z)}\" iyz=\"0.0\"\n                izz=\"${mass / 12.0 * (x * x + y * y)}\"/>\n        \u003C/inertial>\n    \u003C/xacro:macro>\n    \u003C!-- Gazebo 新增结束：长方体惯性宏 -->\n\n    \u003C!-- Gazebo 新增开始：圆柱车轮惯性宏，给四个轮子使用 -->\n    \u003Cxacro:macro name=\"wheel_inertial\" params=\"mass radius length\">\n        \u003Cinertial>\n            \u003Cmass value=\"${mass}\"/>\n            \u003Cinertia\n                ixx=\"${mass / 12.0 * (3.0 * radius * radius + length * length)}\" ixy=\"0.0\" ixz=\"0.0\"\n                iyy=\"${mass / 2.0 * radius * radius}\" iyz=\"0.0\"\n                izz=\"${mass / 12.0 * (3.0 * radius * radius + length * length)}\"/>\n        \u003C/inertial>\n    \u003C/xacro:macro>\n    \u003C!-- Gazebo 新增结束：圆柱车轮惯性宏 -->\n\n    \u003C!-- 定义颜色 -->\n    \u003Cmaterial name=\"yellow\">\n        \u003Ccolor rgba=\"0.7 0.7 0 0.8\" />\n    \u003C/material>\n    \u003Cmaterial name=\"red\">\n        \u003Ccolor rgba=\"0.8 0.1 0.1 0.8\" />\n    \u003C/material>\n    \u003Cmaterial name=\"gray\">\n        \u003Ccolor rgba=\"0.2 0.2 0.2 0.95\" />\n      \u003C/material>\n    \u003C!-- 定义 base_footprint -->\n    \u003Clink name=\"base_footprint\">\n        \u003Cvisual>\n            \u003Cgeometry>\n                \u003C!-- Codex 修改：把原来的固定 0.001 改成上面新增的参数 -->\n                \u003Csphere radius=\"${base_footprint_radius}\"/>\n            \u003C/geometry>\n        \u003C/visual>\n        \u003C!-- Gazebo 新增：base_footprint 的惯性，避免 Gazebo 转 SDF 时丢弃根 link -->\n        \u003Cxacro:sphere_inertial mass=\"${base_footprint_mass}\" radius=\"${base_footprint_radius}\"/>\n    \u003C/link>\n\n    \u003C!-- 定义 base_link -->\n    \u003Clink name=\"base_link\">\n        \u003Cvisual>\n            \u003C!-- 形状 -->\n            \u003Cgeometry>\n                \u003Cbox size=\"${base_link_x} ${base_link_y} ${base_link_z}\" />\n            \u003C/geometry>\n            \u003Corigin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n            \u003Cmaterial name=\"yellow\"/>\n        \u003C/visual>\n        \u003C!-- Gazebo 新增开始：base_link 碰撞体，Gazebo 物理仿真需要 collision -->\n        \u003Ccollision>\n            \u003Cgeometry>\n                \u003Cbox size=\"${base_link_x} ${base_link_y} ${base_link_z}\" />\n            \u003C/geometry>\n            \u003Corigin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n        \u003C/collision>\n        \u003C!-- Gazebo 新增结束：base_link 碰撞体 -->\n        \u003C!-- Gazebo 新增：base_link 惯性，Gazebo 物理仿真需要 inertial -->\n        \u003Cxacro:box_inertial mass=\"${base_link_mass}\" x=\"${base_link_x}\" y=\"${base_link_y}\" z=\"${base_link_z}\"/>\n    \u003C/link>\n    \u003Cjoint name=\"baselink2basefootprint\" type=\"fixed\">\n        \u003Cparent link=\"base_footprint\"/>\n        \u003Cchild link=\"base_link\"/>\n        \u003Corigin xyz=\"0.0 0.0 ${distance + base_link_z / 2}\"/>\n    \u003C/joint>\n    \u003C!-- 车轮宏定义 -->\n    \u003Cxacro:macro name=\"wheel_func\" params=\"wheel_name is_front is_left\" >\n        \u003Clink name=\"${wheel_name}_wheel\">\n            \u003Cvisual>\n                \u003Cgeometry>\n                    \u003Ccylinder radius=\"${wheel_radius}\" length=\"${wheel_length}\" />\n                \u003C/geometry>\n                \u003Corigin xyz=\"0 0 0\" rpy=\"${PI / 2} 0 0\" />\n                \u003Cmaterial name=\"gray\"/>\n            \u003C/visual>\n            \u003C!-- Gazebo 新增开始：车轮碰撞体，四个轮子都会通过这个宏生成 -->\n            \u003Ccollision>\n                \u003Cgeometry>\n                    \u003Ccylinder radius=\"${wheel_radius}\" length=\"${wheel_length}\" />\n                \u003C/geometry>\n                \u003Corigin xyz=\"0 0 0\" rpy=\"${PI / 2} 0 0\" />\n            \u003C/collision>\n            \u003C!-- Gazebo 新增结束：车轮碰撞体 -->\n            \u003C!-- Gazebo 新增：车轮惯性，四个轮子都会通过这个宏生成 -->\n            \u003Cxacro:wheel_inertial mass=\"${wheel_mass}\" radius=\"${wheel_radius}\" length=\"${wheel_length}\"/>\n        \u003C/link>\n        \u003Cjoint name=\"${wheel_name}2baselink\" type=\"continuous\">\n            \u003Cparent link=\"base_link\"  />\n            \u003Cchild link=\"${wheel_name}_wheel\" />\n            \u003Corigin xyz=\"${(base_link_x / 2 - wheel_radius) * is_front} ${base_link_y / 2 * is_left} ${(base_link_z / 2 + distance - wheel_radius) * -1}\" rpy=\"0 0 0\" />\n            \u003Caxis xyz=\"0 1 0\" />\n        \u003C/joint>\n        \u003C!-- Gazebo 新增：四轮差速原地转弯需要轮胎横向滑移；降低 mu2 可以减少 Gazebo 中的卡顿和抖动 -->\n        \u003Cgazebo reference=\"${wheel_name}_wheel\">\n            \u003Cmu1>${wheel_mu1}\u003C/mu1>\n            \u003Cmu2>${wheel_mu2}\u003C/mu2>\n            \u003Cfdir1>1 0 0\u003C/fdir1>\n        \u003C/gazebo>\n    \u003C/xacro:macro>\n    \u003C!-- 车轮宏调用 -->\n    \u003Cxacro:wheel_func wheel_name=\"left_front\" is_front=\"1\" is_left=\"1\" />\n    \u003Cxacro:wheel_func wheel_name=\"left_back\" is_front=\"-1\" is_left=\"1\" />\n    \u003Cxacro:wheel_func wheel_name=\"right_front\" is_front=\"1\" is_left=\"-1\" />\n    \u003Cxacro:wheel_func wheel_name=\"right_back\" is_front=\"-1\" is_left=\"-1\" />\n\u003C/robot>\n",[80,13625,13626,13641,13646,13669,13674,13679,13701,13723,13745,13750,13772,13777,13799,13821,13825,13830,13852,13873,13894,13916,13937,13958,13963,13967,13972,13994,14002,14016,14023,14046,14061,14072,14080,14088,14093,14097,14102,14124,14132,14146,14152,14173,14188,14199,14207,14215,14220,14224,14229,14251,14259,14273,14279,14300,14315,14325,14333,14341,14346,14350,14355,14370,14387,14395,14410,14425,14433,14448,14463,14471,14476,14491,14499,14507,14512,14530,14538,14546,14551,14573,14581,14585,14590,14604,14612,14617,14625,14641,14649,14673,14687,14695,14700,14708,14716,14730,14738,14758,14766,14771,14776,14816,14824,14847,14863,14878,14893,14901,14906,14929,14944,14952,14960,14985,14994,15015,15029,15037,15042,15050,15058,15078,15086,15106,15114,15119,15124,15152,15160,15182,15197,15211,15232,15248,15256,15261,15277,15291,15305,15319,15327,15335,15340,15372,15400,15427,15454],{"__ignoreMap":78},[83,13627,13628,13630,13632,13634,13636,13639],{"class":85,"line":86},[83,13629,2533],{"class":117},[83,13631,2537],{"class":2536},[83,13633,2691],{"class":103},[83,13635,1837],{"class":117},[83,13637,13638],{"class":107},"\"http://wiki.ros.org/xacro\"",[83,13640,2548],{"class":117},[83,13642,13643],{"class":85,"line":93},[83,13644,13645],{"class":96},"    \u003C!-- PI 值 -->\n",[83,13647,13648,13650,13653,13655,13657,13660,13662,13664,13667],{"class":85,"line":100},[83,13649,2570],{"class":117},[83,13651,13652],{"class":2536},"xacro:property",[83,13654,2540],{"class":103},[83,13656,1837],{"class":117},[83,13658,13659],{"class":107},"\"PI\"",[83,13661,2586],{"class":103},[83,13663,1837],{"class":117},[83,13665,13666],{"class":107},"\"3.1416\"",[83,13668,3201],{"class":117},[83,13670,13671],{"class":85,"line":124},[83,13672,13673],{"class":96},"    \u003C!-- 定义车辆参数 -->\n",[83,13675,13676],{"class":85,"line":129},[83,13677,13678],{"class":96},"    \u003C!-- 车体长宽高 -->\n",[83,13680,13681,13683,13685,13687,13689,13692,13694,13696,13699],{"class":85,"line":135},[83,13682,2570],{"class":117},[83,13684,13652],{"class":2536},[83,13686,2540],{"class":103},[83,13688,1837],{"class":117},[83,13690,13691],{"class":107},"\"base_link_x\"",[83,13693,2586],{"class":103},[83,13695,1837],{"class":117},[83,13697,13698],{"class":107},"\"0.2\"",[83,13700,3201],{"class":117},[83,13702,13703,13705,13707,13709,13711,13714,13716,13718,13721],{"class":85,"line":147},[83,13704,2570],{"class":117},[83,13706,13652],{"class":2536},[83,13708,2540],{"class":103},[83,13710,1837],{"class":117},[83,13712,13713],{"class":107},"\"base_link_y\"",[83,13715,2586],{"class":103},[83,13717,1837],{"class":117},[83,13719,13720],{"class":107},"\"0.12\"",[83,13722,3201],{"class":117},[83,13724,13725,13727,13729,13731,13733,13736,13738,13740,13743],{"class":85,"line":152},[83,13726,2570],{"class":117},[83,13728,13652],{"class":2536},[83,13730,2540],{"class":103},[83,13732,1837],{"class":117},[83,13734,13735],{"class":107},"\"base_link_z\"",[83,13737,2586],{"class":103},[83,13739,1837],{"class":117},[83,13741,13742],{"class":107},"\"0.07\"",[83,13744,3201],{"class":117},[83,13746,13747],{"class":85,"line":158},[83,13748,13749],{"class":96},"    \u003C!-- 离地间距 -->\n",[83,13751,13752,13754,13756,13758,13760,13763,13765,13767,13770],{"class":85,"line":405},[83,13753,2570],{"class":117},[83,13755,13652],{"class":2536},[83,13757,2540],{"class":103},[83,13759,1837],{"class":117},[83,13761,13762],{"class":107},"\"distance\"",[83,13764,2586],{"class":103},[83,13766,1837],{"class":117},[83,13768,13769],{"class":107},"\"0.015\"",[83,13771,3201],{"class":117},[83,13773,13774],{"class":85,"line":411},[83,13775,13776],{"class":96},"    \u003C!-- 车轮半径 宽度 -->\n",[83,13778,13779,13781,13783,13785,13787,13790,13792,13794,13797],{"class":85,"line":417},[83,13780,2570],{"class":117},[83,13782,13652],{"class":2536},[83,13784,2540],{"class":103},[83,13786,1837],{"class":117},[83,13788,13789],{"class":107},"\"wheel_radius\"",[83,13791,2586],{"class":103},[83,13793,1837],{"class":117},[83,13795,13796],{"class":107},"\"0.025\"",[83,13798,3201],{"class":117},[83,13800,13801,13803,13805,13807,13809,13812,13814,13816,13819],{"class":85,"line":423},[83,13802,2570],{"class":117},[83,13804,13652],{"class":2536},[83,13806,2540],{"class":103},[83,13808,1837],{"class":117},[83,13810,13811],{"class":107},"\"wheel_length\"",[83,13813,2586],{"class":103},[83,13815,1837],{"class":117},[83,13817,13818],{"class":107},"\"0.02\"",[83,13820,3201],{"class":117},[83,13822,13823],{"class":85,"line":1814},[83,13824,90],{"emptyLinePlaceholder":89},[83,13826,13827],{"class":85,"line":1826},[83,13828,13829],{"class":96},"    \u003C!-- Gazebo 新增开始：Gazebo 物理参数，用于给 link 生成 inertial -->\n",[83,13831,13832,13834,13836,13838,13840,13843,13845,13847,13850],{"class":85,"line":1831},[83,13833,2570],{"class":117},[83,13835,13652],{"class":2536},[83,13837,2540],{"class":103},[83,13839,1837],{"class":117},[83,13841,13842],{"class":107},"\"base_footprint_radius\"",[83,13844,2586],{"class":103},[83,13846,1837],{"class":117},[83,13848,13849],{"class":107},"\"0.001\"",[83,13851,3201],{"class":117},[83,13853,13854,13856,13858,13860,13862,13865,13867,13869,13871],{"class":85,"line":1848},[83,13855,2570],{"class":117},[83,13857,13652],{"class":2536},[83,13859,2540],{"class":103},[83,13861,1837],{"class":117},[83,13863,13864],{"class":107},"\"base_footprint_mass\"",[83,13866,2586],{"class":103},[83,13868,1837],{"class":117},[83,13870,13849],{"class":107},[83,13872,3201],{"class":117},[83,13874,13875,13877,13879,13881,13883,13886,13888,13890,13892],{"class":85,"line":1863},[83,13876,2570],{"class":117},[83,13878,13652],{"class":2536},[83,13880,2540],{"class":103},[83,13882,1837],{"class":117},[83,13884,13885],{"class":107},"\"base_link_mass\"",[83,13887,2586],{"class":103},[83,13889,1837],{"class":117},[83,13891,2591],{"class":107},[83,13893,3201],{"class":117},[83,13895,13896,13898,13900,13902,13904,13907,13909,13911,13914],{"class":85,"line":1885},[83,13897,2570],{"class":117},[83,13899,13652],{"class":2536},[83,13901,2540],{"class":103},[83,13903,1837],{"class":117},[83,13905,13906],{"class":107},"\"wheel_mass\"",[83,13908,2586],{"class":103},[83,13910,1837],{"class":117},[83,13912,13913],{"class":107},"\"0.05\"",[83,13915,3201],{"class":117},[83,13917,13918,13920,13922,13924,13926,13929,13931,13933,13935],{"class":85,"line":1890},[83,13919,2570],{"class":117},[83,13921,13652],{"class":2536},[83,13923,2540],{"class":103},[83,13925,1837],{"class":117},[83,13927,13928],{"class":107},"\"wheel_mu1\"",[83,13930,2586],{"class":103},[83,13932,1837],{"class":117},[83,13934,2591],{"class":107},[83,13936,3201],{"class":117},[83,13938,13939,13941,13943,13945,13947,13950,13952,13954,13956],{"class":85,"line":1901},[83,13940,2570],{"class":117},[83,13942,13652],{"class":2536},[83,13944,2540],{"class":103},[83,13946,1837],{"class":117},[83,13948,13949],{"class":107},"\"wheel_mu2\"",[83,13951,2586],{"class":103},[83,13953,1837],{"class":117},[83,13955,13913],{"class":107},[83,13957,3201],{"class":117},[83,13959,13960],{"class":85,"line":1907},[83,13961,13962],{"class":96},"    \u003C!-- Gazebo 新增结束：Gazebo 物理参数 -->\n",[83,13964,13965],{"class":85,"line":1925},[83,13966,90],{"emptyLinePlaceholder":89},[83,13968,13969],{"class":85,"line":1937},[83,13970,13971],{"class":96},"    \u003C!-- Gazebo 新增开始：球体惯性宏，给 base_footprint 使用 -->\n",[83,13973,13974,13976,13978,13980,13982,13985,13987,13989,13992],{"class":85,"line":1955},[83,13975,2570],{"class":117},[83,13977,2711],{"class":2536},[83,13979,2540],{"class":103},[83,13981,1837],{"class":117},[83,13983,13984],{"class":107},"\"sphere_inertial\"",[83,13986,2720],{"class":103},[83,13988,1837],{"class":117},[83,13990,13991],{"class":107},"\"mass radius\"",[83,13993,2548],{"class":117},[83,13995,13996,13998,14000],{"class":85,"line":1961},[83,13997,2754],{"class":117},[83,13999,2573],{"class":2536},[83,14001,2548],{"class":117},[83,14003,14004,14006,14008,14010,14012,14014],{"class":85,"line":1967},[83,14005,3443],{"class":117},[83,14007,2583],{"class":2536},[83,14009,2586],{"class":103},[83,14011,1837],{"class":117},[83,14013,2763],{"class":107},[83,14015,3201],{"class":117},[83,14017,14018,14020],{"class":85,"line":1972},[83,14019,3443],{"class":117},[83,14021,14022],{"class":2536},"inertia\n",[83,14024,14025,14028,14030,14033,14035,14037,14039,14041,14043],{"class":85,"line":1978},[83,14026,14027],{"class":103},"                ixx",[83,14029,1837],{"class":117},[83,14031,14032],{"class":107},"\"${2.0 / 5.0 * mass * radius * radius}\"",[83,14034,2611],{"class":103},[83,14036,1837],{"class":117},[83,14038,2616],{"class":107},[83,14040,2619],{"class":103},[83,14042,1837],{"class":117},[83,14044,14045],{"class":107},"\"0.0\"\n",[83,14047,14048,14051,14053,14055,14057,14059],{"class":85,"line":1989},[83,14049,14050],{"class":103},"                iyy",[83,14052,1837],{"class":117},[83,14054,14032],{"class":107},[83,14056,2633],{"class":103},[83,14058,1837],{"class":117},[83,14060,14045],{"class":107},[83,14062,14063,14066,14068,14070],{"class":85,"line":2003},[83,14064,14065],{"class":103},"                izz",[83,14067,1837],{"class":117},[83,14069,14032],{"class":107},[83,14071,3201],{"class":117},[83,14073,14074,14076,14078],{"class":85,"line":2015},[83,14075,2990],{"class":117},[83,14077,2573],{"class":2536},[83,14079,2548],{"class":117},[83,14081,14082,14084,14086],{"class":85,"line":2042},[83,14083,2651],{"class":117},[83,14085,2711],{"class":2536},[83,14087,2548],{"class":117},[83,14089,14090],{"class":85,"line":2058},[83,14091,14092],{"class":96},"    \u003C!-- Gazebo 新增结束：球体惯性宏 -->\n",[83,14094,14095],{"class":85,"line":2063},[83,14096,90],{"emptyLinePlaceholder":89},[83,14098,14099],{"class":85,"line":2068},[83,14100,14101],{"class":96},"    \u003C!-- Gazebo 新增开始：长方体惯性宏，给 base_link 使用 -->\n",[83,14103,14104,14106,14108,14110,14112,14115,14117,14119,14122],{"class":85,"line":2074},[83,14105,2570],{"class":117},[83,14107,2711],{"class":2536},[83,14109,2540],{"class":103},[83,14111,1837],{"class":117},[83,14113,14114],{"class":107},"\"box_inertial\"",[83,14116,2720],{"class":103},[83,14118,1837],{"class":117},[83,14120,14121],{"class":107},"\"mass x y z\"",[83,14123,2548],{"class":117},[83,14125,14126,14128,14130],{"class":85,"line":2084},[83,14127,2754],{"class":117},[83,14129,2573],{"class":2536},[83,14131,2548],{"class":117},[83,14133,14134,14136,14138,14140,14142,14144],{"class":85,"line":2097},[83,14135,3443],{"class":117},[83,14137,2583],{"class":2536},[83,14139,2586],{"class":103},[83,14141,1837],{"class":117},[83,14143,2763],{"class":107},[83,14145,3201],{"class":117},[83,14147,14148,14150],{"class":85,"line":2110},[83,14149,3443],{"class":117},[83,14151,14022],{"class":2536},[83,14153,14154,14156,14158,14161,14163,14165,14167,14169,14171],{"class":85,"line":2125},[83,14155,14027],{"class":103},[83,14157,1837],{"class":117},[83,14159,14160],{"class":107},"\"${mass / 12.0 * (y * y + z * z)}\"",[83,14162,2611],{"class":103},[83,14164,1837],{"class":117},[83,14166,2616],{"class":107},[83,14168,2619],{"class":103},[83,14170,1837],{"class":117},[83,14172,14045],{"class":107},[83,14174,14175,14177,14179,14182,14184,14186],{"class":85,"line":2133},[83,14176,14050],{"class":103},[83,14178,1837],{"class":117},[83,14180,14181],{"class":107},"\"${mass / 12.0 * (x * x + z * z)}\"",[83,14183,2633],{"class":103},[83,14185,1837],{"class":117},[83,14187,14045],{"class":107},[83,14189,14190,14192,14194,14197],{"class":85,"line":2141},[83,14191,14065],{"class":103},[83,14193,1837],{"class":117},[83,14195,14196],{"class":107},"\"${mass / 12.0 * (x * x + y * y)}\"",[83,14198,3201],{"class":117},[83,14200,14201,14203,14205],{"class":85,"line":2147},[83,14202,2990],{"class":117},[83,14204,2573],{"class":2536},[83,14206,2548],{"class":117},[83,14208,14209,14211,14213],{"class":85,"line":2169},[83,14210,2651],{"class":117},[83,14212,2711],{"class":2536},[83,14214,2548],{"class":117},[83,14216,14217],{"class":85,"line":2180},[83,14218,14219],{"class":96},"    \u003C!-- Gazebo 新增结束：长方体惯性宏 -->\n",[83,14221,14222],{"class":85,"line":2197},[83,14223,90],{"emptyLinePlaceholder":89},[83,14225,14226],{"class":85,"line":2212},[83,14227,14228],{"class":96},"    \u003C!-- Gazebo 新增开始：圆柱车轮惯性宏，给四个轮子使用 -->\n",[83,14230,14231,14233,14235,14237,14239,14242,14244,14246,14249],{"class":85,"line":2218},[83,14232,2570],{"class":117},[83,14234,2711],{"class":2536},[83,14236,2540],{"class":103},[83,14238,1837],{"class":117},[83,14240,14241],{"class":107},"\"wheel_inertial\"",[83,14243,2720],{"class":103},[83,14245,1837],{"class":117},[83,14247,14248],{"class":107},"\"mass radius length\"",[83,14250,2548],{"class":117},[83,14252,14253,14255,14257],{"class":85,"line":2229},[83,14254,2754],{"class":117},[83,14256,2573],{"class":2536},[83,14258,2548],{"class":117},[83,14260,14261,14263,14265,14267,14269,14271],{"class":85,"line":2234},[83,14262,3443],{"class":117},[83,14264,2583],{"class":2536},[83,14266,2586],{"class":103},[83,14268,1837],{"class":117},[83,14270,2763],{"class":107},[83,14272,3201],{"class":117},[83,14274,14275,14277],{"class":85,"line":2239},[83,14276,3443],{"class":117},[83,14278,14022],{"class":2536},[83,14280,14281,14283,14285,14288,14290,14292,14294,14296,14298],{"class":85,"line":2248},[83,14282,14027],{"class":103},[83,14284,1837],{"class":117},[83,14286,14287],{"class":107},"\"${mass / 12.0 * (3.0 * radius * radius + length * length)}\"",[83,14289,2611],{"class":103},[83,14291,1837],{"class":117},[83,14293,2616],{"class":107},[83,14295,2619],{"class":103},[83,14297,1837],{"class":117},[83,14299,14045],{"class":107},[83,14301,14302,14304,14306,14309,14311,14313],{"class":85,"line":2254},[83,14303,14050],{"class":103},[83,14305,1837],{"class":117},[83,14307,14308],{"class":107},"\"${mass / 2.0 * radius * radius}\"",[83,14310,2633],{"class":103},[83,14312,1837],{"class":117},[83,14314,14045],{"class":107},[83,14316,14317,14319,14321,14323],{"class":85,"line":2274},[83,14318,14065],{"class":103},[83,14320,1837],{"class":117},[83,14322,14287],{"class":107},[83,14324,3201],{"class":117},[83,14326,14327,14329,14331],{"class":85,"line":2287},[83,14328,2990],{"class":117},[83,14330,2573],{"class":2536},[83,14332,2548],{"class":117},[83,14334,14335,14337,14339],{"class":85,"line":2293},[83,14336,2651],{"class":117},[83,14338,2711],{"class":2536},[83,14340,2548],{"class":117},[83,14342,14343],{"class":85,"line":2299},[83,14344,14345],{"class":96},"    \u003C!-- Gazebo 新增结束：圆柱车轮惯性宏 -->\n",[83,14347,14348],{"class":85,"line":3797},[83,14349,90],{"emptyLinePlaceholder":89},[83,14351,14352],{"class":85,"line":3810},[83,14353,14354],{"class":96},"    \u003C!-- 定义颜色 -->\n",[83,14356,14357,14359,14361,14363,14365,14368],{"class":85,"line":3824},[83,14358,2570],{"class":117},[83,14360,3643],{"class":2536},[83,14362,2540],{"class":103},[83,14364,1837],{"class":117},[83,14366,14367],{"class":107},"\"yellow\"",[83,14369,2548],{"class":117},[83,14371,14372,14374,14377,14380,14382,14385],{"class":85,"line":3837},[83,14373,2754],{"class":117},[83,14375,14376],{"class":2536},"color",[83,14378,14379],{"class":103}," rgba",[83,14381,1837],{"class":117},[83,14383,14384],{"class":107},"\"0.7 0.7 0 0.8\"",[83,14386,2594],{"class":117},[83,14388,14389,14391,14393],{"class":85,"line":3846},[83,14390,2651],{"class":117},[83,14392,3643],{"class":2536},[83,14394,2548],{"class":117},[83,14396,14397,14399,14401,14403,14405,14408],{"class":85,"line":3855},[83,14398,2570],{"class":117},[83,14400,3643],{"class":2536},[83,14402,2540],{"class":103},[83,14404,1837],{"class":117},[83,14406,14407],{"class":107},"\"red\"",[83,14409,2548],{"class":117},[83,14411,14412,14414,14416,14418,14420,14423],{"class":85,"line":3870},[83,14413,2754],{"class":117},[83,14415,14376],{"class":2536},[83,14417,14379],{"class":103},[83,14419,1837],{"class":117},[83,14421,14422],{"class":107},"\"0.8 0.1 0.1 0.8\"",[83,14424,2594],{"class":117},[83,14426,14427,14429,14431],{"class":85,"line":3879},[83,14428,2651],{"class":117},[83,14430,3643],{"class":2536},[83,14432,2548],{"class":117},[83,14434,14435,14437,14439,14441,14443,14446],{"class":85,"line":3892},[83,14436,2570],{"class":117},[83,14438,3643],{"class":2536},[83,14440,2540],{"class":103},[83,14442,1837],{"class":117},[83,14444,14445],{"class":107},"\"gray\"",[83,14447,2548],{"class":117},[83,14449,14450,14452,14454,14456,14458,14461],{"class":85,"line":3906},[83,14451,2754],{"class":117},[83,14453,14376],{"class":2536},[83,14455,14379],{"class":103},[83,14457,1837],{"class":117},[83,14459,14460],{"class":107},"\"0.2 0.2 0.2 0.95\"",[83,14462,2594],{"class":117},[83,14464,14465,14467,14469],{"class":85,"line":3915},[83,14466,2814],{"class":117},[83,14468,3643],{"class":2536},[83,14470,2548],{"class":117},[83,14472,14473],{"class":85,"line":3931},[83,14474,14475],{"class":96},"    \u003C!-- 定义 base_footprint -->\n",[83,14477,14478,14480,14482,14484,14486,14489],{"class":85,"line":3945},[83,14479,2570],{"class":117},[83,14481,2556],{"class":2536},[83,14483,2540],{"class":103},[83,14485,1837],{"class":117},[83,14487,14488],{"class":107},"\"base_footprint\"",[83,14490,2548],{"class":117},[83,14492,14493,14495,14497],{"class":85,"line":3961},[83,14494,2754],{"class":117},[83,14496,3571],{"class":2536},[83,14498,2548],{"class":117},[83,14500,14501,14503,14505],{"class":85,"line":3970},[83,14502,3443],{"class":117},[83,14504,3436],{"class":2536},[83,14506,2548],{"class":117},[83,14508,14509],{"class":85,"line":3979},[83,14510,14511],{"class":96},"                \u003C!-- Codex 修改：把原来的固定 0.001 改成上面新增的参数 -->\n",[83,14513,14514,14517,14520,14523,14525,14528],{"class":85,"line":3993},[83,14515,14516],{"class":117},"                \u003C",[83,14518,14519],{"class":2536},"sphere",[83,14521,14522],{"class":103}," radius",[83,14524,1837],{"class":117},[83,14526,14527],{"class":107},"\"${base_footprint_radius}\"",[83,14529,3201],{"class":117},[83,14531,14532,14534,14536],{"class":85,"line":4006},[83,14533,3482],{"class":117},[83,14535,3436],{"class":2536},[83,14537,2548],{"class":117},[83,14539,14540,14542,14544],{"class":85,"line":4019},[83,14541,2990],{"class":117},[83,14543,3571],{"class":2536},[83,14545,2548],{"class":117},[83,14547,14548],{"class":85,"line":4032},[83,14549,14550],{"class":96},"        \u003C!-- Gazebo 新增：base_footprint 的惯性，避免 Gazebo 转 SDF 时丢弃根 link -->\n",[83,14552,14553,14555,14558,14560,14562,14565,14567,14569,14571],{"class":85,"line":4045},[83,14554,2754],{"class":117},[83,14556,14557],{"class":2536},"xacro:sphere_inertial",[83,14559,2848],{"class":103},[83,14561,1837],{"class":117},[83,14563,14564],{"class":107},"\"${base_footprint_mass}\"",[83,14566,14522],{"class":103},[83,14568,1837],{"class":117},[83,14570,14527],{"class":107},[83,14572,3201],{"class":117},[83,14574,14575,14577,14579],{"class":85,"line":4058},[83,14576,2651],{"class":117},[83,14578,2556],{"class":2536},[83,14580,2548],{"class":117},[83,14582,14583],{"class":85,"line":4067},[83,14584,90],{"emptyLinePlaceholder":89},[83,14586,14587],{"class":85,"line":4080},[83,14588,14589],{"class":96},"    \u003C!-- 定义 base_link -->\n",[83,14591,14592,14594,14596,14598,14600,14602],{"class":85,"line":4093},[83,14593,2570],{"class":117},[83,14595,2556],{"class":2536},[83,14597,2540],{"class":103},[83,14599,1837],{"class":117},[83,14601,2563],{"class":107},[83,14603,2548],{"class":117},[83,14605,14606,14608,14610],{"class":85,"line":4102},[83,14607,2754],{"class":117},[83,14609,3571],{"class":2536},[83,14611,2548],{"class":117},[83,14613,14614],{"class":85,"line":4118},[83,14615,14616],{"class":96},"            \u003C!-- 形状 -->\n",[83,14618,14619,14621,14623],{"class":85,"line":4127},[83,14620,3443],{"class":117},[83,14622,3436],{"class":2536},[83,14624,2548],{"class":117},[83,14626,14627,14629,14631,14634,14636,14639],{"class":85,"line":4137},[83,14628,14516],{"class":117},[83,14630,4132],{"class":2536},[83,14632,14633],{"class":103}," size",[83,14635,1837],{"class":117},[83,14637,14638],{"class":107},"\"${base_link_x} ${base_link_y} ${base_link_z}\"",[83,14640,2594],{"class":117},[83,14642,14643,14645,14647],{"class":85,"line":4151},[83,14644,3482],{"class":117},[83,14646,3436],{"class":2536},[83,14648,2548],{"class":117},[83,14650,14651,14653,14656,14659,14661,14664,14667,14669,14671],{"class":85,"line":4160},[83,14652,3443],{"class":117},[83,14654,14655],{"class":2536},"origin",[83,14657,14658],{"class":103}," xyz",[83,14660,1837],{"class":117},[83,14662,14663],{"class":107},"\"0 0 0\"",[83,14665,14666],{"class":103}," rpy",[83,14668,1837],{"class":117},[83,14670,14663],{"class":107},[83,14672,2594],{"class":117},[83,14674,14675,14677,14679,14681,14683,14685],{"class":85,"line":4169},[83,14676,3443],{"class":117},[83,14678,3643],{"class":2536},[83,14680,2540],{"class":103},[83,14682,1837],{"class":117},[83,14684,14367],{"class":107},[83,14686,3201],{"class":117},[83,14688,14689,14691,14693],{"class":85,"line":4178},[83,14690,2990],{"class":117},[83,14692,3571],{"class":2536},[83,14694,2548],{"class":117},[83,14696,14697],{"class":85,"line":4187},[83,14698,14699],{"class":96},"        \u003C!-- Gazebo 新增开始：base_link 碰撞体，Gazebo 物理仿真需要 collision -->\n",[83,14701,14702,14704,14706],{"class":85,"line":4196},[83,14703,2754],{"class":117},[83,14705,3420],{"class":2536},[83,14707,2548],{"class":117},[83,14709,14710,14712,14714],{"class":85,"line":4205},[83,14711,3443],{"class":117},[83,14713,3436],{"class":2536},[83,14715,2548],{"class":117},[83,14717,14718,14720,14722,14724,14726,14728],{"class":85,"line":4214},[83,14719,14516],{"class":117},[83,14721,4132],{"class":2536},[83,14723,14633],{"class":103},[83,14725,1837],{"class":117},[83,14727,14638],{"class":107},[83,14729,2594],{"class":117},[83,14731,14732,14734,14736],{"class":85,"line":4223},[83,14733,3482],{"class":117},[83,14735,3436],{"class":2536},[83,14737,2548],{"class":117},[83,14739,14740,14742,14744,14746,14748,14750,14752,14754,14756],{"class":85,"line":4232},[83,14741,3443],{"class":117},[83,14743,14655],{"class":2536},[83,14745,14658],{"class":103},[83,14747,1837],{"class":117},[83,14749,14663],{"class":107},[83,14751,14666],{"class":103},[83,14753,1837],{"class":117},[83,14755,14663],{"class":107},[83,14757,2594],{"class":117},[83,14759,14760,14762,14764],{"class":85,"line":4241},[83,14761,2990],{"class":117},[83,14763,3420],{"class":2536},[83,14765,2548],{"class":117},[83,14767,14768],{"class":85,"line":4257},[83,14769,14770],{"class":96},"        \u003C!-- Gazebo 新增结束：base_link 碰撞体 -->\n",[83,14772,14773],{"class":85,"line":4266},[83,14774,14775],{"class":96},"        \u003C!-- Gazebo 新增：base_link 惯性，Gazebo 物理仿真需要 inertial -->\n",[83,14777,14778,14780,14783,14785,14787,14790,14793,14795,14798,14801,14803,14806,14809,14811,14814],{"class":85,"line":4275},[83,14779,2754],{"class":117},[83,14781,14782],{"class":2536},"xacro:box_inertial",[83,14784,2848],{"class":103},[83,14786,1837],{"class":117},[83,14788,14789],{"class":107},"\"${base_link_mass}\"",[83,14791,14792],{"class":103}," x",[83,14794,1837],{"class":117},[83,14796,14797],{"class":107},"\"${base_link_x}\"",[83,14799,14800],{"class":103}," y",[83,14802,1837],{"class":117},[83,14804,14805],{"class":107},"\"${base_link_y}\"",[83,14807,14808],{"class":103}," z",[83,14810,1837],{"class":117},[83,14812,14813],{"class":107},"\"${base_link_z}\"",[83,14815,3201],{"class":117},[83,14817,14818,14820,14822],{"class":85,"line":4288},[83,14819,2651],{"class":117},[83,14821,2556],{"class":2536},[83,14823,2548],{"class":117},[83,14825,14826,14828,14831,14833,14835,14838,14840,14842,14845],{"class":85,"line":4297},[83,14827,2570],{"class":117},[83,14829,14830],{"class":2536},"joint",[83,14832,2540],{"class":103},[83,14834,1837],{"class":117},[83,14836,14837],{"class":107},"\"baselink2basefootprint\"",[83,14839,3119],{"class":103},[83,14841,1837],{"class":117},[83,14843,14844],{"class":107},"\"fixed\"",[83,14846,2548],{"class":117},[83,14848,14849,14851,14854,14857,14859,14861],{"class":85,"line":4306},[83,14850,2754],{"class":117},[83,14852,14853],{"class":2536},"parent",[83,14855,14856],{"class":103}," link",[83,14858,1837],{"class":117},[83,14860,14488],{"class":107},[83,14862,3201],{"class":117},[83,14864,14865,14867,14870,14872,14874,14876],{"class":85,"line":4315},[83,14866,2754],{"class":117},[83,14868,14869],{"class":2536},"child",[83,14871,14856],{"class":103},[83,14873,1837],{"class":117},[83,14875,2563],{"class":107},[83,14877,3201],{"class":117},[83,14879,14880,14882,14884,14886,14888,14891],{"class":85,"line":4329},[83,14881,2754],{"class":117},[83,14883,14655],{"class":2536},[83,14885,14658],{"class":103},[83,14887,1837],{"class":117},[83,14889,14890],{"class":107},"\"0.0 0.0 ${distance + base_link_z / 2}\"",[83,14892,3201],{"class":117},[83,14894,14895,14897,14899],{"class":85,"line":4342},[83,14896,2651],{"class":117},[83,14898,14830],{"class":2536},[83,14900,2548],{"class":117},[83,14902,14903],{"class":85,"line":4356},[83,14904,14905],{"class":96},"    \u003C!-- 车轮宏定义 -->\n",[83,14907,14908,14910,14912,14914,14916,14919,14921,14923,14926],{"class":85,"line":4365},[83,14909,2570],{"class":117},[83,14911,2711],{"class":2536},[83,14913,2540],{"class":103},[83,14915,1837],{"class":117},[83,14917,14918],{"class":107},"\"wheel_func\"",[83,14920,2720],{"class":103},[83,14922,1837],{"class":117},[83,14924,14925],{"class":107},"\"wheel_name is_front is_left\"",[83,14927,14928],{"class":117}," >\n",[83,14930,14931,14933,14935,14937,14939,14942],{"class":85,"line":4374},[83,14932,2754],{"class":117},[83,14934,2556],{"class":2536},[83,14936,2540],{"class":103},[83,14938,1837],{"class":117},[83,14940,14941],{"class":107},"\"${wheel_name}_wheel\"",[83,14943,2548],{"class":117},[83,14945,14946,14948,14950],{"class":85,"line":4387},[83,14947,3443],{"class":117},[83,14949,3571],{"class":2536},[83,14951,2548],{"class":117},[83,14953,14954,14956,14958],{"class":85,"line":4400},[83,14955,14516],{"class":117},[83,14957,3436],{"class":2536},[83,14959,2548],{"class":117},[83,14961,14962,14965,14968,14970,14972,14975,14978,14980,14983],{"class":85,"line":4409},[83,14963,14964],{"class":117},"                    \u003C",[83,14966,14967],{"class":2536},"cylinder",[83,14969,14522],{"class":103},[83,14971,1837],{"class":117},[83,14973,14974],{"class":107},"\"${wheel_radius}\"",[83,14976,14977],{"class":103}," length",[83,14979,1837],{"class":117},[83,14981,14982],{"class":107},"\"${wheel_length}\"",[83,14984,2594],{"class":117},[83,14986,14987,14990,14992],{"class":85,"line":4422},[83,14988,14989],{"class":117},"                \u003C/",[83,14991,3436],{"class":2536},[83,14993,2548],{"class":117},[83,14995,14996,14998,15000,15002,15004,15006,15008,15010,15013],{"class":85,"line":4435},[83,14997,14516],{"class":117},[83,14999,14655],{"class":2536},[83,15001,14658],{"class":103},[83,15003,1837],{"class":117},[83,15005,14663],{"class":107},[83,15007,14666],{"class":103},[83,15009,1837],{"class":117},[83,15011,15012],{"class":107},"\"${PI / 2} 0 0\"",[83,15014,2594],{"class":117},[83,15016,15017,15019,15021,15023,15025,15027],{"class":85,"line":4444},[83,15018,14516],{"class":117},[83,15020,3643],{"class":2536},[83,15022,2540],{"class":103},[83,15024,1837],{"class":117},[83,15026,14445],{"class":107},[83,15028,3201],{"class":117},[83,15030,15031,15033,15035],{"class":85,"line":4460},[83,15032,3482],{"class":117},[83,15034,3571],{"class":2536},[83,15036,2548],{"class":117},[83,15038,15039],{"class":85,"line":4474},[83,15040,15041],{"class":96},"            \u003C!-- Gazebo 新增开始：车轮碰撞体，四个轮子都会通过这个宏生成 -->\n",[83,15043,15044,15046,15048],{"class":85,"line":4489},[83,15045,3443],{"class":117},[83,15047,3420],{"class":2536},[83,15049,2548],{"class":117},[83,15051,15052,15054,15056],{"class":85,"line":4498},[83,15053,14516],{"class":117},[83,15055,3436],{"class":2536},[83,15057,2548],{"class":117},[83,15059,15060,15062,15064,15066,15068,15070,15072,15074,15076],{"class":85,"line":4507},[83,15061,14964],{"class":117},[83,15063,14967],{"class":2536},[83,15065,14522],{"class":103},[83,15067,1837],{"class":117},[83,15069,14974],{"class":107},[83,15071,14977],{"class":103},[83,15073,1837],{"class":117},[83,15075,14982],{"class":107},[83,15077,2594],{"class":117},[83,15079,15080,15082,15084],{"class":85,"line":4520},[83,15081,14989],{"class":117},[83,15083,3436],{"class":2536},[83,15085,2548],{"class":117},[83,15087,15088,15090,15092,15094,15096,15098,15100,15102,15104],{"class":85,"line":4533},[83,15089,14516],{"class":117},[83,15091,14655],{"class":2536},[83,15093,14658],{"class":103},[83,15095,1837],{"class":117},[83,15097,14663],{"class":107},[83,15099,14666],{"class":103},[83,15101,1837],{"class":117},[83,15103,15012],{"class":107},[83,15105,2594],{"class":117},[83,15107,15108,15110,15112],{"class":85,"line":4546},[83,15109,3482],{"class":117},[83,15111,3420],{"class":2536},[83,15113,2548],{"class":117},[83,15115,15116],{"class":85,"line":4559},[83,15117,15118],{"class":96},"            \u003C!-- Gazebo 新增结束：车轮碰撞体 -->\n",[83,15120,15121],{"class":85,"line":4572},[83,15122,15123],{"class":96},"            \u003C!-- Gazebo 新增：车轮惯性，四个轮子都会通过这个宏生成 -->\n",[83,15125,15126,15128,15131,15133,15135,15138,15140,15142,15144,15146,15148,15150],{"class":85,"line":4585},[83,15127,3443],{"class":117},[83,15129,15130],{"class":2536},"xacro:wheel_inertial",[83,15132,2848],{"class":103},[83,15134,1837],{"class":117},[83,15136,15137],{"class":107},"\"${wheel_mass}\"",[83,15139,14522],{"class":103},[83,15141,1837],{"class":117},[83,15143,14974],{"class":107},[83,15145,14977],{"class":103},[83,15147,1837],{"class":117},[83,15149,14982],{"class":107},[83,15151,3201],{"class":117},[83,15153,15154,15156,15158],{"class":85,"line":4594},[83,15155,2990],{"class":117},[83,15157,2556],{"class":2536},[83,15159,2548],{"class":117},[83,15161,15162,15164,15166,15168,15170,15173,15175,15177,15180],{"class":85,"line":4607},[83,15163,2754],{"class":117},[83,15165,14830],{"class":2536},[83,15167,2540],{"class":103},[83,15169,1837],{"class":117},[83,15171,15172],{"class":107},"\"${wheel_name}2baselink\"",[83,15174,3119],{"class":103},[83,15176,1837],{"class":117},[83,15178,15179],{"class":107},"\"continuous\"",[83,15181,2548],{"class":117},[83,15183,15184,15186,15188,15190,15192,15194],{"class":85,"line":4620},[83,15185,3443],{"class":117},[83,15187,14853],{"class":2536},[83,15189,14856],{"class":103},[83,15191,1837],{"class":117},[83,15193,2563],{"class":107},[83,15195,15196],{"class":117},"  />\n",[83,15198,15199,15201,15203,15205,15207,15209],{"class":85,"line":4629},[83,15200,3443],{"class":117},[83,15202,14869],{"class":2536},[83,15204,14856],{"class":103},[83,15206,1837],{"class":117},[83,15208,14941],{"class":107},[83,15210,2594],{"class":117},[83,15212,15213,15215,15217,15219,15221,15224,15226,15228,15230],{"class":85,"line":4644},[83,15214,3443],{"class":117},[83,15216,14655],{"class":2536},[83,15218,14658],{"class":103},[83,15220,1837],{"class":117},[83,15222,15223],{"class":107},"\"${(base_link_x / 2 - wheel_radius) * is_front} ${base_link_y / 2 * is_left} ${(base_link_z / 2 + distance - wheel_radius) * -1}\"",[83,15225,14666],{"class":103},[83,15227,1837],{"class":117},[83,15229,14663],{"class":107},[83,15231,2594],{"class":117},[83,15233,15234,15236,15239,15241,15243,15246],{"class":85,"line":4653},[83,15235,3443],{"class":117},[83,15237,15238],{"class":2536},"axis",[83,15240,14658],{"class":103},[83,15242,1837],{"class":117},[83,15244,15245],{"class":107},"\"0 1 0\"",[83,15247,2594],{"class":117},[83,15249,15250,15252,15254],{"class":85,"line":4662},[83,15251,2990],{"class":117},[83,15253,14830],{"class":2536},[83,15255,2548],{"class":117},[83,15257,15258],{"class":85,"line":4675},[83,15259,15260],{"class":96},"        \u003C!-- Gazebo 新增：四轮差速原地转弯需要轮胎横向滑移；降低 mu2 可以减少 Gazebo 中的卡顿和抖动 -->\n",[83,15262,15263,15265,15268,15271,15273,15275],{"class":85,"line":4684},[83,15264,2754],{"class":117},[83,15266,15267],{"class":2536},"gazebo",[83,15269,15270],{"class":103}," reference",[83,15272,1837],{"class":117},[83,15274,14941],{"class":107},[83,15276,2548],{"class":117},[83,15278,15279,15281,15284,15287,15289],{"class":85,"line":4693},[83,15280,3443],{"class":117},[83,15282,15283],{"class":2536},"mu1",[83,15285,15286],{"class":117},">${wheel_mu1}\u003C/",[83,15288,15283],{"class":2536},[83,15290,2548],{"class":117},[83,15292,15293,15295,15298,15301,15303],{"class":85,"line":4702},[83,15294,3443],{"class":117},[83,15296,15297],{"class":2536},"mu2",[83,15299,15300],{"class":117},">${wheel_mu2}\u003C/",[83,15302,15297],{"class":2536},[83,15304,2548],{"class":117},[83,15306,15307,15309,15312,15315,15317],{"class":85,"line":4711},[83,15308,3443],{"class":117},[83,15310,15311],{"class":2536},"fdir1",[83,15313,15314],{"class":117},">1 0 0\u003C/",[83,15316,15311],{"class":2536},[83,15318,2548],{"class":117},[83,15320,15321,15323,15325],{"class":85,"line":4720},[83,15322,2990],{"class":117},[83,15324,15267],{"class":2536},[83,15326,2548],{"class":117},[83,15328,15329,15331,15333],{"class":85,"line":4729},[83,15330,2651],{"class":117},[83,15332,2711],{"class":2536},[83,15334,2548],{"class":117},[83,15336,15337],{"class":85,"line":4738},[83,15338,15339],{"class":96},"    \u003C!-- 车轮宏调用 -->\n",[83,15341,15342,15344,15347,15350,15352,15355,15358,15360,15363,15366,15368,15370],{"class":85,"line":4747},[83,15343,2570],{"class":117},[83,15345,15346],{"class":2536},"xacro:wheel_func",[83,15348,15349],{"class":103}," wheel_name",[83,15351,1837],{"class":117},[83,15353,15354],{"class":107},"\"left_front\"",[83,15356,15357],{"class":103}," is_front",[83,15359,1837],{"class":117},[83,15361,15362],{"class":107},"\"1\"",[83,15364,15365],{"class":103}," is_left",[83,15367,1837],{"class":117},[83,15369,15362],{"class":107},[83,15371,2594],{"class":117},[83,15373,15374,15376,15378,15380,15382,15385,15387,15389,15392,15394,15396,15398],{"class":85,"line":4756},[83,15375,2570],{"class":117},[83,15377,15346],{"class":2536},[83,15379,15349],{"class":103},[83,15381,1837],{"class":117},[83,15383,15384],{"class":107},"\"left_back\"",[83,15386,15357],{"class":103},[83,15388,1837],{"class":117},[83,15390,15391],{"class":107},"\"-1\"",[83,15393,15365],{"class":103},[83,15395,1837],{"class":117},[83,15397,15362],{"class":107},[83,15399,2594],{"class":117},[83,15401,15402,15404,15406,15408,15410,15413,15415,15417,15419,15421,15423,15425],{"class":85,"line":4765},[83,15403,2570],{"class":117},[83,15405,15346],{"class":2536},[83,15407,15349],{"class":103},[83,15409,1837],{"class":117},[83,15411,15412],{"class":107},"\"right_front\"",[83,15414,15357],{"class":103},[83,15416,1837],{"class":117},[83,15418,15362],{"class":107},[83,15420,15365],{"class":103},[83,15422,1837],{"class":117},[83,15424,15391],{"class":107},[83,15426,2594],{"class":117},[83,15428,15429,15431,15433,15435,15437,15440,15442,15444,15446,15448,15450,15452],{"class":85,"line":4780},[83,15430,2570],{"class":117},[83,15432,15346],{"class":2536},[83,15434,15349],{"class":103},[83,15436,1837],{"class":117},[83,15438,15439],{"class":107},"\"right_back\"",[83,15441,15357],{"class":103},[83,15443,1837],{"class":117},[83,15445,15391],{"class":107},[83,15447,15365],{"class":103},[83,15449,1837],{"class":117},[83,15451,15391],{"class":107},[83,15453,2594],{"class":117},[83,15455,15456,15458,15460],{"class":85,"line":4789},[83,15457,2669],{"class":117},[83,15459,2537],{"class":2536},[83,15461,2548],{"class":117},[15,15463,15464,15465,15468],{},"Modify ",[80,15466,15467],{},"car.urdf.xacro",":",[73,15470,15472],{"className":2524,"code":15471,"language":2526,"meta":78,"style":78},"\u003Crobot name=\"car\" xmlns:xacro=\"http://wiki.ros.org/xacro\">\n    \u003Cxacro:include filename=\"car_base.urdf.xacro\"/>\n    \u003Cxacro:include filename=\"car_camera.urdf.xacro\"/>\n    \u003Cxacro:include filename=\"car_laser.urdf.xacro\"/>\n\u003C/robot>\n",[80,15473,15474,15495,15511,15526,15541],{"__ignoreMap":78},[83,15475,15476,15478,15480,15482,15484,15487,15489,15491,15493],{"class":85,"line":86},[83,15477,2533],{"class":117},[83,15479,2537],{"class":2536},[83,15481,2540],{"class":103},[83,15483,1837],{"class":117},[83,15485,15486],{"class":107},"\"car\"",[83,15488,2691],{"class":103},[83,15490,1837],{"class":117},[83,15492,13638],{"class":107},[83,15494,2548],{"class":117},[83,15496,15497,15499,15502,15504,15506,15509],{"class":85,"line":93},[83,15498,2570],{"class":117},[83,15500,15501],{"class":2536},"xacro:include",[83,15503,3193],{"class":103},[83,15505,1837],{"class":117},[83,15507,15508],{"class":107},"\"car_base.urdf.xacro\"",[83,15510,3201],{"class":117},[83,15512,15513,15515,15517,15519,15521,15524],{"class":85,"line":100},[83,15514,2570],{"class":117},[83,15516,15501],{"class":2536},[83,15518,3193],{"class":103},[83,15520,1837],{"class":117},[83,15522,15523],{"class":107},"\"car_camera.urdf.xacro\"",[83,15525,3201],{"class":117},[83,15527,15528,15530,15532,15534,15536,15539],{"class":85,"line":124},[83,15529,2570],{"class":117},[83,15531,15501],{"class":2536},[83,15533,3193],{"class":103},[83,15535,1837],{"class":117},[83,15537,15538],{"class":107},"\"car_laser.urdf.xacro\"",[83,15540,3201],{"class":117},[83,15542,15543,15545,15547],{"class":85,"line":129},[83,15544,2669],{"class":117},[83,15546,2537],{"class":2536},[83,15548,2548],{"class":117},[15,15550,15551],{},[19,15552,15553],{},"Create a launch file under the robot model function package",[15,15555,1680,15556,15559],{},[80,15557,15558],{},"mycar_desc_sim.launch.py"," and enter the following content:",[73,15561,15563],{"className":1687,"code":15562,"language":1689,"meta":78,"style":78},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\nimport os\nfrom ament_index_python.packages import get_package_share_directory\nfrom launch_ros.parameter_descriptions import ParameterValue\nfrom launch.substitutions import Command,LaunchConfiguration\nfrom launch.actions import DeclareLaunchArgument\n\ndef generate_launch_description():\n\n    mycar_description = get_package_share_directory(\"mycar_description\")\n    default_model_path = os.path.join(mycar_description,\"urdf/xacro\",\"car.urdf.xacro\")\n    model = DeclareLaunchArgument(name=\"model\", default_value=default_model_path)\n\n    # 加载机器人模型\n    # 启动 robot_state_publisher 节点并以参数方式加载 urdf 文件\n    robot_description = ParameterValue(Command([\"xacro \",LaunchConfiguration(\"model\")]))\n    robot_state_publisher = Node(\n        package=\"robot_state_publisher\",\n        executable=\"robot_state_publisher\",\n        parameters=[{\"robot_description\": robot_description}]\n    )\n\n    return LaunchDescription([\n        model,\n        robot_state_publisher,\n    ])\n",[80,15564,15565,15575,15585,15591,15601,15613,15624,15634,15638,15646,15650,15664,15684,15710,15714,15719,15724,15745,15754,15765,15775,15789,15793,15797,15803,15808,15813],{"__ignoreMap":78},[83,15566,15567,15569,15571,15573],{"class":85,"line":86},[83,15568,1708],{"class":742},[83,15570,1727],{"class":117},[83,15572,1696],{"class":742},[83,15574,1732],{"class":117},[83,15576,15577,15579,15581,15583],{"class":85,"line":93},[83,15578,1708],{"class":742},[83,15580,1802],{"class":117},[83,15582,1696],{"class":742},[83,15584,1807],{"class":117},[83,15586,15587,15589],{"class":85,"line":100},[83,15588,1696],{"class":742},[83,15590,1699],{"class":117},[83,15592,15593,15595,15597,15599],{"class":85,"line":124},[83,15594,1708],{"class":742},[83,15596,1711],{"class":117},[83,15598,1696],{"class":742},[83,15600,1716],{"class":117},[83,15602,15603,15605,15608,15610],{"class":85,"line":129},[83,15604,1708],{"class":742},[83,15606,15607],{"class":117}," launch_ros.parameter_descriptions ",[83,15609,1696],{"class":742},[83,15611,15612],{"class":117}," ParameterValue\n",[83,15614,15615,15617,15619,15621],{"class":85,"line":135},[83,15616,1708],{"class":742},[83,15618,1786],{"class":117},[83,15620,1696],{"class":742},[83,15622,15623],{"class":117}," Command,LaunchConfiguration\n",[83,15625,15626,15628,15630,15632],{"class":85,"line":147},[83,15627,1708],{"class":742},[83,15629,1739],{"class":117},[83,15631,1696],{"class":742},[83,15633,1744],{"class":117},[83,15635,15636],{"class":85,"line":152},[83,15637,90],{"emptyLinePlaceholder":89},[83,15639,15640,15642,15644],{"class":85,"line":158},[83,15641,1817],{"class":742},[83,15643,1820],{"class":103},[83,15645,1823],{"class":117},[83,15647,15648],{"class":85,"line":405},[83,15649,90],{"emptyLinePlaceholder":89},[83,15651,15652,15655,15657,15659,15662],{"class":85,"line":411},[83,15653,15654],{"class":117},"    mycar_description ",[83,15656,1837],{"class":742},[83,15658,1840],{"class":117},[83,15660,15661],{"class":107},"\"mycar_description\"",[83,15663,1587],{"class":117},[83,15665,15666,15669,15671,15674,15677,15679,15682],{"class":85,"line":417},[83,15667,15668],{"class":117},"    default_model_path ",[83,15670,1837],{"class":742},[83,15672,15673],{"class":117}," os.path.join(mycar_description,",[83,15675,15676],{"class":107},"\"urdf/xacro\"",[83,15678,1877],{"class":117},[83,15680,15681],{"class":107},"\"car.urdf.xacro\"",[83,15683,1587],{"class":117},[83,15685,15686,15689,15691,15694,15696,15698,15701,15703,15705,15707],{"class":85,"line":423},[83,15687,15688],{"class":117},"    model ",[83,15690,1837],{"class":742},[83,15692,15693],{"class":117}," DeclareLaunchArgument(",[83,15695,6293],{"class":1928},[83,15697,1837],{"class":742},[83,15699,15700],{"class":107},"\"model\"",[83,15702,1916],{"class":117},[83,15704,2264],{"class":1928},[83,15706,1837],{"class":742},[83,15708,15709],{"class":117},"default_model_path)\n",[83,15711,15712],{"class":85,"line":1814},[83,15713,90],{"emptyLinePlaceholder":89},[83,15715,15716],{"class":85,"line":1826},[83,15717,15718],{"class":96},"    # 加载机器人模型\n",[83,15720,15721],{"class":85,"line":1831},[83,15722,15723],{"class":96},"    # 启动 robot_state_publisher 节点并以参数方式加载 urdf 文件\n",[83,15725,15726,15729,15731,15734,15737,15740,15742],{"class":85,"line":1848},[83,15727,15728],{"class":117},"    robot_description ",[83,15730,1837],{"class":742},[83,15732,15733],{"class":117}," ParameterValue(Command([",[83,15735,15736],{"class":107},"\"xacro \"",[83,15738,15739],{"class":117},",LaunchConfiguration(",[83,15741,15700],{"class":107},[83,15743,15744],{"class":117},")]))\n",[83,15746,15747,15750,15752],{"class":85,"line":1863},[83,15748,15749],{"class":117},"    robot_state_publisher ",[83,15751,1837],{"class":742},[83,15753,1986],{"class":117},[83,15755,15756,15758,15760,15763],{"class":85,"line":1885},[83,15757,2087],{"class":1928},[83,15759,1837],{"class":742},[83,15761,15762],{"class":107},"\"robot_state_publisher\"",[83,15764,2000],{"class":117},[83,15766,15767,15769,15771,15773],{"class":85,"line":1890},[83,15768,2100],{"class":1928},[83,15770,1837],{"class":742},[83,15772,15762],{"class":107},[83,15774,2000],{"class":117},[83,15776,15777,15779,15781,15783,15786],{"class":85,"line":1901},[83,15778,2150],{"class":1928},[83,15780,1837],{"class":742},[83,15782,2155],{"class":117},[83,15784,15785],{"class":107},"\"robot_description\"",[83,15787,15788],{"class":117},": robot_description}]\n",[83,15790,15791],{"class":85,"line":1907},[83,15792,1964],{"class":117},[83,15794,15795],{"class":85,"line":1925},[83,15796,90],{"emptyLinePlaceholder":89},[83,15798,15799,15801],{"class":85,"line":1937},[83,15800,2242],{"class":742},[83,15802,2245],{"class":117},[83,15804,15805],{"class":85,"line":1955},[83,15806,15807],{"class":117},"        model,\n",[83,15809,15810],{"class":85,"line":1961},[83,15811,15812],{"class":117},"        robot_state_publisher,\n",[83,15814,15815],{"class":85,"line":1967},[83,15816,2302],{"class":117},[15,15818,15819],{},"Compared to previous versions, this file is missing the joint_state_publisher node, whose role is to publish active joint states. This functionality will later be implemented by Ignition.",[15,15821,15822],{},[19,15823,15824],{},"Adding a Robot Model",[15,15826,15827],{},"Create the gazebo_sim_robot_world.launch.py file, which includes the robot model publishing file and spawns the robot model in Gazebo. The modified code is as follows:",[73,15829,15831],{"className":1687,"code":15830,"language":1689,"meta":78,"style":78},"import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory(\"demo_gazebo_sim\")\n    mycar_desc_pkg = get_package_share_directory(\"mycar_description\")\n    pkg_ros_gz_sim = get_package_share_directory(\"ros_gz_sim\")\n    world_file = os.path.join(this_pkg,\"world\",\"house.sdf\")\n\n    gz_sim = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(pkg_ros_gz_sim, \"launch\", \"gz_sim.launch.py\")),\n        launch_arguments={\n            \"gz_args\": \"-r \" + world_file\n        }.items(),\n    )\n    mycar_desc = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(mycar_desc_pkg,\"launch\",\"mycar_desc_sim.launch.py\")\n        )\n    )\n    spawn = Node(package=\"ros_gz_sim\", executable=\"create\",\n                arguments=[\n                \"-name\", \"mycar\",\n                \"-x\", \"0\",\n                \"-z\", \"0.01\", #设置为0,可能会陷进地里\n                \"-y\", \"0\",\n                \"-R\", \"0\",\n                \"-P\", \"0\",\n                \"-Y\", \"1.57\", # Yaw航向角逆时针旋转90度\n                \"-topic\", \"/robot_description\"],\n            output=\"screen\")\n\n    return LaunchDescription([\n        gz_sim,\n        spawn,\n        mycar_desc,\n    ])\n",[80,15832,15833,15839,15843,15853,15857,15867,15877,15887,15897,15901,15909,15913,15926,15939,15952,15968,15972,15980,15984,15998,16006,16020,16024,16028,16037,16041,16055,16060,16064,16093,16102,16114,16126,16141,16152,16163,16174,16189,16202,16214,16218,16224,16228,16233,16238],{"__ignoreMap":78},[83,15834,15835,15837],{"class":85,"line":86},[83,15836,1696],{"class":742},[83,15838,1699],{"class":117},[83,15840,15841],{"class":85,"line":93},[83,15842,90],{"emptyLinePlaceholder":89},[83,15844,15845,15847,15849,15851],{"class":85,"line":100},[83,15846,1708],{"class":742},[83,15848,1711],{"class":117},[83,15850,1696],{"class":742},[83,15852,1716],{"class":117},[83,15854,15855],{"class":85,"line":124},[83,15856,90],{"emptyLinePlaceholder":89},[83,15858,15859,15861,15863,15865],{"class":85,"line":129},[83,15860,1708],{"class":742},[83,15862,1727],{"class":117},[83,15864,1696],{"class":742},[83,15866,1732],{"class":117},[83,15868,15869,15871,15873,15875],{"class":85,"line":135},[83,15870,1708],{"class":742},[83,15872,1739],{"class":117},[83,15874,1696],{"class":742},[83,15876,1755],{"class":117},[83,15878,15879,15881,15883,15885],{"class":85,"line":147},[83,15880,1708],{"class":742},[83,15882,1774],{"class":117},[83,15884,1696],{"class":742},[83,15886,1779],{"class":117},[83,15888,15889,15891,15893,15895],{"class":85,"line":152},[83,15890,1708],{"class":742},[83,15892,1802],{"class":117},[83,15894,1696],{"class":742},[83,15896,1807],{"class":117},[83,15898,15899],{"class":85,"line":158},[83,15900,90],{"emptyLinePlaceholder":89},[83,15902,15903,15905,15907],{"class":85,"line":405},[83,15904,1817],{"class":742},[83,15906,1820],{"class":103},[83,15908,1823],{"class":117},[83,15910,15911],{"class":85,"line":411},[83,15912,90],{"emptyLinePlaceholder":89},[83,15914,15915,15917,15919,15921,15924],{"class":85,"line":417},[83,15916,1834],{"class":117},[83,15918,1837],{"class":742},[83,15920,1840],{"class":117},[83,15922,15923],{"class":107},"\"demo_gazebo_sim\"",[83,15925,1587],{"class":117},[83,15927,15928,15931,15933,15935,15937],{"class":85,"line":423},[83,15929,15930],{"class":117},"    mycar_desc_pkg ",[83,15932,1837],{"class":742},[83,15934,1840],{"class":117},[83,15936,15661],{"class":107},[83,15938,1587],{"class":117},[83,15940,15941,15943,15945,15947,15950],{"class":85,"line":1814},[83,15942,1851],{"class":117},[83,15944,1837],{"class":742},[83,15946,1840],{"class":117},[83,15948,15949],{"class":107},"\"ros_gz_sim\"",[83,15951,1587],{"class":117},[83,15953,15954,15956,15958,15960,15962,15964,15966],{"class":85,"line":1826},[83,15955,1866],{"class":117},[83,15957,1837],{"class":742},[83,15959,1871],{"class":117},[83,15961,9372],{"class":107},[83,15963,1877],{"class":117},[83,15965,9377],{"class":107},[83,15967,1587],{"class":117},[83,15969,15970],{"class":85,"line":1831},[83,15971,90],{"emptyLinePlaceholder":89},[83,15973,15974,15976,15978],{"class":85,"line":1848},[83,15975,1893],{"class":117},[83,15977,1837],{"class":742},[83,15979,1898],{"class":117},[83,15981,15982],{"class":85,"line":1863},[83,15983,1904],{"class":117},[83,15985,15986,15988,15991,15993,15996],{"class":85,"line":1885},[83,15987,1910],{"class":117},[83,15989,15990],{"class":107},"\"launch\"",[83,15992,1916],{"class":117},[83,15994,15995],{"class":107},"\"gz_sim.launch.py\"",[83,15997,1922],{"class":117},[83,15999,16000,16002,16004],{"class":85,"line":1890},[83,16001,1929],{"class":1928},[83,16003,1837],{"class":742},[83,16005,1934],{"class":117},[83,16007,16008,16011,16013,16016,16018],{"class":85,"line":1901},[83,16009,16010],{"class":107},"            \"gz_args\"",[83,16012,1943],{"class":117},[83,16014,16015],{"class":107},"\"-r \"",[83,16017,1949],{"class":742},[83,16019,1952],{"class":117},[83,16021,16022],{"class":85,"line":1907},[83,16023,1958],{"class":117},[83,16025,16026],{"class":85,"line":1925},[83,16027,1964],{"class":117},[83,16029,16030,16033,16035],{"class":85,"line":1937},[83,16031,16032],{"class":117},"    mycar_desc ",[83,16034,1837],{"class":742},[83,16036,1898],{"class":117},[83,16038,16039],{"class":85,"line":1955},[83,16040,1904],{"class":117},[83,16042,16043,16046,16048,16050,16053],{"class":85,"line":1961},[83,16044,16045],{"class":117},"            os.path.join(mycar_desc_pkg,",[83,16047,15990],{"class":107},[83,16049,1877],{"class":117},[83,16051,16052],{"class":107},"\"mycar_desc_sim.launch.py\"",[83,16054,1587],{"class":117},[83,16056,16057],{"class":85,"line":1967},[83,16058,16059],{"class":117},"        )\n",[83,16061,16062],{"class":85,"line":1972},[83,16063,1964],{"class":117},[83,16065,16066,16069,16071,16074,16077,16079,16081,16083,16086,16088,16091],{"class":85,"line":1978},[83,16067,16068],{"class":117},"    spawn ",[83,16070,1837],{"class":742},[83,16072,16073],{"class":117}," Node(",[83,16075,16076],{"class":1928},"package",[83,16078,1837],{"class":742},[83,16080,15949],{"class":107},[83,16082,1916],{"class":117},[83,16084,16085],{"class":1928},"executable",[83,16087,1837],{"class":742},[83,16089,16090],{"class":107},"\"create\"",[83,16092,2000],{"class":117},[83,16094,16095,16098,16100],{"class":85,"line":1989},[83,16096,16097],{"class":1928},"                arguments",[83,16099,1837],{"class":742},[83,16101,2177],{"class":117},[83,16103,16104,16107,16109,16112],{"class":85,"line":2003},[83,16105,16106],{"class":107},"                \"-name\"",[83,16108,1916],{"class":117},[83,16110,16111],{"class":107},"\"mycar\"",[83,16113,2000],{"class":117},[83,16115,16116,16119,16121,16124],{"class":85,"line":2015},[83,16117,16118],{"class":107},"                \"-x\"",[83,16120,1916],{"class":117},[83,16122,16123],{"class":107},"\"0\"",[83,16125,2000],{"class":117},[83,16127,16128,16131,16133,16136,16138],{"class":85,"line":2042},[83,16129,16130],{"class":107},"                \"-z\"",[83,16132,1916],{"class":117},[83,16134,16135],{"class":107},"\"0.01\"",[83,16137,1916],{"class":117},[83,16139,16140],{"class":96},"#设置为0,可能会陷进地里\n",[83,16142,16143,16146,16148,16150],{"class":85,"line":2058},[83,16144,16145],{"class":107},"                \"-y\"",[83,16147,1916],{"class":117},[83,16149,16123],{"class":107},[83,16151,2000],{"class":117},[83,16153,16154,16157,16159,16161],{"class":85,"line":2063},[83,16155,16156],{"class":107},"                \"-R\"",[83,16158,1916],{"class":117},[83,16160,16123],{"class":107},[83,16162,2000],{"class":117},[83,16164,16165,16168,16170,16172],{"class":85,"line":2068},[83,16166,16167],{"class":107},"                \"-P\"",[83,16169,1916],{"class":117},[83,16171,16123],{"class":107},[83,16173,2000],{"class":117},[83,16175,16176,16179,16181,16184,16186],{"class":85,"line":2074},[83,16177,16178],{"class":107},"                \"-Y\"",[83,16180,1916],{"class":117},[83,16182,16183],{"class":107},"\"1.57\"",[83,16185,1916],{"class":117},[83,16187,16188],{"class":96},"# Yaw航向角逆时针旋转90度\n",[83,16190,16191,16194,16196,16199],{"class":85,"line":2084},[83,16192,16193],{"class":107},"                \"-topic\"",[83,16195,1916],{"class":117},[83,16197,16198],{"class":107},"\"/robot_description\"",[83,16200,16201],{"class":117},"],\n",[83,16203,16204,16207,16209,16212],{"class":85,"line":2097},[83,16205,16206],{"class":1928},"            output",[83,16208,1837],{"class":742},[83,16210,16211],{"class":107},"\"screen\"",[83,16213,1587],{"class":117},[83,16215,16216],{"class":85,"line":2110},[83,16217,90],{"emptyLinePlaceholder":89},[83,16219,16220,16222],{"class":85,"line":2125},[83,16221,2242],{"class":742},[83,16223,2245],{"class":117},[83,16225,16226],{"class":85,"line":2133},[83,16227,2251],{"class":117},[83,16229,16230],{"class":85,"line":2141},[83,16231,16232],{"class":117},"        spawn,\n",[83,16234,16235],{"class":85,"line":2147},[83,16236,16237],{"class":117},"        mycar_desc,\n",[83,16239,16240],{"class":85,"line":2169},[83,16241,2302],{"class":117},[15,16243,16244],{},[19,16245,2315],{},[15,16247,2318],{},[73,16249,16251],{"className":75,"code":16250,"language":77,"meta":78,"style":78},"colcon build --packages-select mycar_description demo_gazebo_sim\n",[80,16252,16253],{"__ignoreMap":78},[83,16254,16255,16257,16259,16262,16264],{"class":85,"line":86},[83,16256,2328],{"class":103},[83,16258,2331],{"class":107},[83,16260,16261],{"class":547}," --packages-select",[83,16263,13421],{"class":107},[83,16265,1553],{"class":107},[15,16267,16268],{},[19,16269,2346],{},[15,16271,16272],{},"In the terminal, navigate to the current workspace and run the following command to execute the launch file: (If there are issues during execution, as long as you've learned how to run URDF, you should have the ability to find and fix the errors yourself — go ahead and troubleshoot.)",[73,16274,16276],{"className":75,"code":16275,"language":77,"meta":78,"style":78},". install/setup.bash\n\nros2 launch demo_gazebo_sim gazebo_sim_robot_world.launch.py\n",[80,16277,16278,16284,16288],{"__ignoreMap":78},[83,16279,16280,16282],{"class":85,"line":86},[83,16281,2359],{"class":547},[83,16283,2362],{"class":107},[83,16285,16286],{"class":85,"line":93},[83,16287,90],{"emptyLinePlaceholder":89},[83,16289,16290,16292,16294,16296],{"class":85,"line":100},[83,16291,234],{"class":103},[83,16293,237],{"class":107},[83,16295,2371],{"class":107},[83,16297,16298],{"class":107}," gazebo_sim_robot_world.launch.py\n",[15,16300,9503],{},[15,16302,16303],{},[171,16304],{"alt":78,"src":16305},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1733.webp",[31,16307,16309],{"id":16308},"gz-sim-motion-controller","Gz Sim Motion Controller",[15,16311,16312],{},"This section will introduce how to make your robot move.",[15,16314,16315,16316,16319],{},"The principle is to add ",[80,16317,16318],{},"\u003Cgazebo>"," tags to URDF, Xacro, or similar files:",[15,16321,16322],{},[24,16323,16324],{"href":16324,"rel":16325},"http://sdformat.org/tutorials?tut=sdformat_urdf_extensions&cat=specification&",[28],[15,16327,16328],{},[171,16329],{"alt":78,"src":16330},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1734.webp",[15,16332,16333],{},[24,16334,16335],{"href":16335,"rel":16336},"https://gazebosim.org/api/plugin/2/index.html",[28],[15,16338,16339,16340,16343,16344,2359],{},"Install the library:\nOfficial Tutorial\nEnter ",[24,16341,55],{"href":55,"rel":16342},[28],"\nClick the plugin to enter ",[24,16345,16346],{"href":16346,"rel":16347},"https://gazebosim.org/api/plugin/2/installation.html",[28],[73,16349,16351],{"className":75,"code":16350,"language":77,"meta":78,"style":78},"sudo apt-get update\nsudo apt-get install lsb-release\nsudo sh -c 'echo \"deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main\" > /etc/apt/sources.list.d/gazebo-stable.list'\nwget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -\nsudo apt-get update\nsudo apt install libgz-plugin2-dev\n",[80,16352,16353,16363,16374,16387,16416,16424],{"__ignoreMap":78},[83,16354,16355,16357,16360],{"class":85,"line":86},[83,16356,104],{"class":103},[83,16358,16359],{"class":107}," apt-get",[83,16361,16362],{"class":107}," update\n",[83,16364,16365,16367,16369,16371],{"class":85,"line":93},[83,16366,104],{"class":103},[83,16368,16359],{"class":107},[83,16370,111],{"class":107},[83,16372,16373],{"class":107}," lsb-release\n",[83,16375,16376,16378,16381,16384],{"class":85,"line":100},[83,16377,104],{"class":103},[83,16379,16380],{"class":107}," sh",[83,16382,16383],{"class":547}," -c",[83,16385,16386],{"class":107}," 'echo \"deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main\" > /etc/apt/sources.list.d/gazebo-stable.list'\n",[83,16388,16389,16392,16395,16398,16401,16404,16407,16410,16413],{"class":85,"line":124},[83,16390,16391],{"class":103},"wget",[83,16393,16394],{"class":107}," http://packages.osrfoundation.org/gazebo.key",[83,16396,16397],{"class":547}," -O",[83,16399,16400],{"class":107}," -",[83,16402,16403],{"class":742}," |",[83,16405,16406],{"class":103}," sudo",[83,16408,16409],{"class":107}," apt-key",[83,16411,16412],{"class":107}," add",[83,16414,16415],{"class":107}," -\n",[83,16417,16418,16420,16422],{"class":85,"line":129},[83,16419,104],{"class":103},[83,16421,16359],{"class":107},[83,16423,16362],{"class":107},[83,16425,16426,16428,16430,16432],{"class":85,"line":135},[83,16427,104],{"class":103},[83,16429,108],{"class":107},[83,16431,111],{"class":107},[83,16433,16434],{"class":107}," libgz-plugin2-dev\n",[15,16436,16437],{},"Using plugins to make the car move, such as two-wheel differential plugins, four-wheel Mecanum wheel plugins, and so on.",[15,16439,16440],{},"Additionally, this plugin provides some options for controlling the output. Since it's a simulation, you also need to tell the plugin the corresponding joint names for the wheels and other information, resulting in the parameter table below:",[900,16442,16443,16453],{},[903,16444,16445],{},[906,16446,16447,16450],{},[909,16448,16449],{"align":911},"Configuration item",[909,16451,16452],{"align":911},"Meaning",[917,16454,16455,16463,16471,16479,16487,16495,16503,16511,16519,16527,16535,16543,16551],{},[906,16456,16457,16460],{},[922,16458,16459],{"align":911},"ros",[922,16461,16462],{"align":911},"ROS-related configuration, including namespaces and topic remapping, among others.",[906,16464,16465,16468],{},[922,16466,16467],{"align":911},"update_rate",[922,16469,16470],{"align":911},"Data update rate",[906,16472,16473,16476],{},[922,16474,16475],{"align":911},"left_joint",[922,16477,16478],{"align":911},"Left wheel joint name",[906,16480,16481,16484],{},[922,16482,16483],{"align":911},"right_joint",[922,16485,16486],{"align":911},"Right wheel joint name",[906,16488,16489,16492],{},[922,16490,16491],{"align":911},"wheel_separation",[922,16493,16494],{"align":911},"Distance between the left and right wheels",[906,16496,16497,16500],{},[922,16498,16499],{"align":911},"wheel_diameter",[922,16501,16502],{"align":911},"The diameter of the wheel",[906,16504,16505,16508],{},[922,16506,16507],{"align":911},"max_wheel_torque",[922,16509,16510],{"align":911},"The wheel's maximum torque",[906,16512,16513,16516],{},[922,16514,16515],{"align":911},"max_wheel_acceleration",[922,16517,16518],{"align":911},"The maximum acceleration of the wheel",[906,16520,16521,16524],{},[922,16522,16523],{"align":911},"publish_odom",[922,16525,16526],{"align":911},"Publish odometry",[906,16528,16529,16532],{},[922,16530,16531],{"align":911},"publish_odom_tf",[922,16533,16534],{"align":911},"Whether to publish the odometry tf switch",[906,16536,16537,16540],{},[922,16538,16539],{"align":911},"publish_wheel_tf",[922,16541,16542],{"align":911},"Switch for publishing wheel tf data",[906,16544,16545,16548],{},[922,16546,16547],{"align":911},"odometry_frame",[922,16549,16550],{"align":911},"The framed ID of the odometer is ultimately reflected in the topic and TF.",[906,16552,16553,16556],{},[922,16554,16555],{"align":911},"robot_base_frame",[922,16557,16558],{"align":911},"The robot's base frame ID",[15,16560,16561],{},[19,16562,16563],{},"Modifying the URDF File",[15,16565,16566,16567,16570],{},"For a 2-wheel differential drive vehicle, add the following code under the ",[80,16568,16569],{},"\u003Crobot>"," root tag:",[73,16572,16574],{"className":2524,"code":16573,"language":2526,"meta":78,"style":78},"\n  \u003Cgazebo>\n      \u003Cplugin filename=\"gz-sim-diff-drive-system\"\n        name=\"gz::sim::systems::DiffDrive\">\n        \u003Cleft_joint>left_joint\u003C/left_joint>\n        \u003Cright_joint>right_joint\u003C/right_joint>\n        \u003Cwheel_separation>0.2097\u003C/wheel_separation>\n        \u003Cwheel_radius>0.03415\u003C/wheel_radius>\n        \u003Codom_publish_frequency>10\u003C/odom_publish_frequency>\n        \u003Cframe_id>odom\u003C/frame_id>\n        \u003Cchild_frame_id>base_footprint\u003C/child_frame_id>\n        \u003Ctopic>/cmd_vel\u003C/topic>\n        \u003Cmax_linear_acceleration>10\u003C/max_linear_acceleration>\n        \u003Cmin_linear_acceleration>-10\u003C/min_linear_acceleration>\n        \u003Cmax_angular_acceleration>10\u003C/max_angular_acceleration>\n        \u003Cmin_angular_acceleration>-10\u003C/min_angular_acceleration>\n        \u003Cmax_linear_velocity>0.5\u003C/max_linear_velocity>\n        \u003Cmin_linear_velocity>-0.5\u003C/min_linear_velocity>\n        \u003Cmax_angular_velocity>1\u003C/max_angular_velocity>\n        \u003Cmin_angular_velocity>-1\u003C/min_angular_velocity>\n      \u003C/plugin>\n\n  \u003C/gazebo>\n\n  \u003Cgazebo>\n    \u003Cplugin filename=\"gz-sim-joint-state-publisher-system\"\n      name=\"gz::sim::systems::JointStatePublisher\">\n    \u003C/plugin>\n  \u003C/gazebo>\n",[80,16575,16576,16580,16588,16601,16613,16626,16639,16652,16666,16680,16694,16708,16722,16735,16749,16762,16775,16789,16803,16816,16830,16838,16842,16850,16854,16862,16875,16887,16895],{"__ignoreMap":78},[83,16577,16578],{"class":85,"line":86},[83,16579,90],{"emptyLinePlaceholder":89},[83,16581,16582,16584,16586],{"class":85,"line":93},[83,16583,2553],{"class":117},[83,16585,15267],{"class":2536},[83,16587,2548],{"class":117},[83,16589,16590,16592,16594,16596,16598],{"class":85,"line":100},[83,16591,2580],{"class":117},[83,16593,3183],{"class":2536},[83,16595,3193],{"class":103},[83,16597,1837],{"class":117},[83,16599,16600],{"class":107},"\"gz-sim-diff-drive-system\"\n",[83,16602,16603,16606,16608,16611],{"class":85,"line":124},[83,16604,16605],{"class":103},"        name",[83,16607,1837],{"class":117},[83,16609,16610],{"class":107},"\"gz::sim::systems::DiffDrive\"",[83,16612,2548],{"class":117},[83,16614,16615,16617,16619,16622,16624],{"class":85,"line":129},[83,16616,2754],{"class":117},[83,16618,16475],{"class":2536},[83,16620,16621],{"class":117},">left_joint\u003C/",[83,16623,16475],{"class":2536},[83,16625,2548],{"class":117},[83,16627,16628,16630,16632,16635,16637],{"class":85,"line":135},[83,16629,2754],{"class":117},[83,16631,16483],{"class":2536},[83,16633,16634],{"class":117},">right_joint\u003C/",[83,16636,16483],{"class":2536},[83,16638,2548],{"class":117},[83,16640,16641,16643,16645,16648,16650],{"class":85,"line":147},[83,16642,2754],{"class":117},[83,16644,16491],{"class":2536},[83,16646,16647],{"class":117},">0.2097\u003C/",[83,16649,16491],{"class":2536},[83,16651,2548],{"class":117},[83,16653,16654,16656,16659,16662,16664],{"class":85,"line":152},[83,16655,2754],{"class":117},[83,16657,16658],{"class":2536},"wheel_radius",[83,16660,16661],{"class":117},">0.03415\u003C/",[83,16663,16658],{"class":2536},[83,16665,2548],{"class":117},[83,16667,16668,16670,16673,16676,16678],{"class":85,"line":158},[83,16669,2754],{"class":117},[83,16671,16672],{"class":2536},"odom_publish_frequency",[83,16674,16675],{"class":117},">10\u003C/",[83,16677,16672],{"class":2536},[83,16679,2548],{"class":117},[83,16681,16682,16684,16687,16690,16692],{"class":85,"line":405},[83,16683,2754],{"class":117},[83,16685,16686],{"class":2536},"frame_id",[83,16688,16689],{"class":117},">odom\u003C/",[83,16691,16686],{"class":2536},[83,16693,2548],{"class":117},[83,16695,16696,16698,16701,16704,16706],{"class":85,"line":411},[83,16697,2754],{"class":117},[83,16699,16700],{"class":2536},"child_frame_id",[83,16702,16703],{"class":117},">base_footprint\u003C/",[83,16705,16700],{"class":2536},[83,16707,2548],{"class":117},[83,16709,16710,16712,16715,16718,16720],{"class":85,"line":417},[83,16711,2754],{"class":117},[83,16713,16714],{"class":2536},"topic",[83,16716,16717],{"class":117},">/cmd_vel\u003C/",[83,16719,16714],{"class":2536},[83,16721,2548],{"class":117},[83,16723,16724,16726,16729,16731,16733],{"class":85,"line":423},[83,16725,2754],{"class":117},[83,16727,16728],{"class":2536},"max_linear_acceleration",[83,16730,16675],{"class":117},[83,16732,16728],{"class":2536},[83,16734,2548],{"class":117},[83,16736,16737,16739,16742,16745,16747],{"class":85,"line":1814},[83,16738,2754],{"class":117},[83,16740,16741],{"class":2536},"min_linear_acceleration",[83,16743,16744],{"class":117},">-10\u003C/",[83,16746,16741],{"class":2536},[83,16748,2548],{"class":117},[83,16750,16751,16753,16756,16758,16760],{"class":85,"line":1826},[83,16752,2754],{"class":117},[83,16754,16755],{"class":2536},"max_angular_acceleration",[83,16757,16675],{"class":117},[83,16759,16755],{"class":2536},[83,16761,2548],{"class":117},[83,16763,16764,16766,16769,16771,16773],{"class":85,"line":1831},[83,16765,2754],{"class":117},[83,16767,16768],{"class":2536},"min_angular_acceleration",[83,16770,16744],{"class":117},[83,16772,16768],{"class":2536},[83,16774,2548],{"class":117},[83,16776,16777,16779,16782,16785,16787],{"class":85,"line":1848},[83,16778,2754],{"class":117},[83,16780,16781],{"class":2536},"max_linear_velocity",[83,16783,16784],{"class":117},">0.5\u003C/",[83,16786,16781],{"class":2536},[83,16788,2548],{"class":117},[83,16790,16791,16793,16796,16799,16801],{"class":85,"line":1863},[83,16792,2754],{"class":117},[83,16794,16795],{"class":2536},"min_linear_velocity",[83,16797,16798],{"class":117},">-0.5\u003C/",[83,16800,16795],{"class":2536},[83,16802,2548],{"class":117},[83,16804,16805,16807,16810,16812,16814],{"class":85,"line":1885},[83,16806,2754],{"class":117},[83,16808,16809],{"class":2536},"max_angular_velocity",[83,16811,3150],{"class":117},[83,16813,16809],{"class":2536},[83,16815,2548],{"class":117},[83,16817,16818,16820,16823,16826,16828],{"class":85,"line":1890},[83,16819,2754],{"class":117},[83,16821,16822],{"class":2536},"min_angular_velocity",[83,16824,16825],{"class":117},">-1\u003C/",[83,16827,16822],{"class":2536},[83,16829,2548],{"class":117},[83,16831,16832,16834,16836],{"class":85,"line":1901},[83,16833,2814],{"class":117},[83,16835,3183],{"class":2536},[83,16837,2548],{"class":117},[83,16839,16840],{"class":85,"line":1907},[83,16841,90],{"emptyLinePlaceholder":89},[83,16843,16844,16846,16848],{"class":85,"line":1925},[83,16845,2660],{"class":117},[83,16847,15267],{"class":2536},[83,16849,2548],{"class":117},[83,16851,16852],{"class":85,"line":1937},[83,16853,90],{"emptyLinePlaceholder":89},[83,16855,16856,16858,16860],{"class":85,"line":1955},[83,16857,2553],{"class":117},[83,16859,15267],{"class":2536},[83,16861,2548],{"class":117},[83,16863,16864,16866,16868,16870,16872],{"class":85,"line":1961},[83,16865,2570],{"class":117},[83,16867,3183],{"class":2536},[83,16869,3193],{"class":103},[83,16871,1837],{"class":117},[83,16873,16874],{"class":107},"\"gz-sim-joint-state-publisher-system\"\n",[83,16876,16877,16880,16882,16885],{"class":85,"line":1967},[83,16878,16879],{"class":103},"      name",[83,16881,1837],{"class":117},[83,16883,16884],{"class":107},"\"gz::sim::systems::JointStatePublisher\"",[83,16886,2548],{"class":117},[83,16888,16889,16891,16893],{"class":85,"line":1972},[83,16890,2651],{"class":117},[83,16892,3183],{"class":2536},[83,16894,2548],{"class":117},[83,16896,16897,16899,16901],{"class":85,"line":1978},[83,16898,2660],{"class":117},[83,16900,15267],{"class":2536},[83,16902,2548],{"class":117},[15,16904,16905,16906,16570],{},"For a 4-wheel differential drive vehicle, add the following code under the ",[80,16907,16569],{},[73,16909,16911],{"className":2524,"code":16910,"language":2526,"meta":78,"style":78},"\n\u003Cgazebo>\n    \u003Cplugin\n        filename=\"gz-sim-diff-drive-system\"\n        name=\"gz::sim::systems::DiffDrive\">\n        \u003Cleft_joint>left_former_joint\u003C/left_joint>\n        \u003Cleft_joint>left_rear_joint\u003C/left_joint>\n        \u003Cright_joint>right_former_joint\u003C/right_joint>\n        \u003Cright_joint>right_rear_joint\u003C/right_joint>\n        \u003Cwheel_separation>0.4\u003C/wheel_separation>\n        \u003Cwheel_radius>0.0415\u003C/wheel_radius>\n        \u003Codom_publish_frequency>50\u003C/odom_publish_frequency>\n        \u003Cframe_id>odom\u003C/frame_id>\n        \u003Cchild_frame_id>base_footprint\u003C/child_frame_id>\n        \u003Ctopic>/cmd_vel\u003C/topic>\n        \u003Cmax_linear_acceleration>10\u003C/max_linear_acceleration>\n        \u003Cmin_linear_acceleration>-10\u003C/min_linear_acceleration>\n        \u003Cmax_angular_acceleration>10\u003C/max_angular_acceleration>\n        \u003Cmin_angular_acceleration>-10\u003C/min_angular_acceleration>\n        \u003Cmax_linear_velocity>0.5\u003C/max_linear_velocity>\n        \u003Cmin_linear_velocity>-0.5\u003C/min_linear_velocity>\n        \u003Cmax_angular_velocity>1\u003C/max_angular_velocity>\n        \u003Cmin_angular_velocity>-1\u003C/min_angular_velocity>\n      \u003C/plugin>\n  \u003C/gazebo>\n\n  \u003Cgazebo>\n    \u003Cplugin filename=\"gz-sim-joint-state-publisher-system\"\n      name=\"gz::sim::systems::JointStatePublisher\">\n    \u003C/plugin>\n  \u003C/gazebo>\n",[80,16912,16913,16917,16925,16932,16941,16951,16964,16977,16990,17003,17016,17029,17042,17054,17066,17078,17090,17102,17114,17126,17138,17150,17162,17174,17182,17190,17194,17202,17214,17224,17232],{"__ignoreMap":78},[83,16914,16915],{"class":85,"line":86},[83,16916,90],{"emptyLinePlaceholder":89},[83,16918,16919,16921,16923],{"class":85,"line":93},[83,16920,2533],{"class":117},[83,16922,15267],{"class":2536},[83,16924,2548],{"class":117},[83,16926,16927,16929],{"class":85,"line":100},[83,16928,2570],{"class":117},[83,16930,16931],{"class":2536},"plugin\n",[83,16933,16934,16937,16939],{"class":85,"line":124},[83,16935,16936],{"class":103},"        filename",[83,16938,1837],{"class":117},[83,16940,16600],{"class":107},[83,16942,16943,16945,16947,16949],{"class":85,"line":129},[83,16944,16605],{"class":103},[83,16946,1837],{"class":117},[83,16948,16610],{"class":107},[83,16950,2548],{"class":117},[83,16952,16953,16955,16957,16960,16962],{"class":85,"line":135},[83,16954,2754],{"class":117},[83,16956,16475],{"class":2536},[83,16958,16959],{"class":117},">left_former_joint\u003C/",[83,16961,16475],{"class":2536},[83,16963,2548],{"class":117},[83,16965,16966,16968,16970,16973,16975],{"class":85,"line":147},[83,16967,2754],{"class":117},[83,16969,16475],{"class":2536},[83,16971,16972],{"class":117},">left_rear_joint\u003C/",[83,16974,16475],{"class":2536},[83,16976,2548],{"class":117},[83,16978,16979,16981,16983,16986,16988],{"class":85,"line":152},[83,16980,2754],{"class":117},[83,16982,16483],{"class":2536},[83,16984,16985],{"class":117},">right_former_joint\u003C/",[83,16987,16483],{"class":2536},[83,16989,2548],{"class":117},[83,16991,16992,16994,16996,16999,17001],{"class":85,"line":158},[83,16993,2754],{"class":117},[83,16995,16483],{"class":2536},[83,16997,16998],{"class":117},">right_rear_joint\u003C/",[83,17000,16483],{"class":2536},[83,17002,2548],{"class":117},[83,17004,17005,17007,17009,17012,17014],{"class":85,"line":405},[83,17006,2754],{"class":117},[83,17008,16491],{"class":2536},[83,17010,17011],{"class":117},">0.4\u003C/",[83,17013,16491],{"class":2536},[83,17015,2548],{"class":117},[83,17017,17018,17020,17022,17025,17027],{"class":85,"line":411},[83,17019,2754],{"class":117},[83,17021,16658],{"class":2536},[83,17023,17024],{"class":117},">0.0415\u003C/",[83,17026,16658],{"class":2536},[83,17028,2548],{"class":117},[83,17030,17031,17033,17035,17038,17040],{"class":85,"line":417},[83,17032,2754],{"class":117},[83,17034,16672],{"class":2536},[83,17036,17037],{"class":117},">50\u003C/",[83,17039,16672],{"class":2536},[83,17041,2548],{"class":117},[83,17043,17044,17046,17048,17050,17052],{"class":85,"line":423},[83,17045,2754],{"class":117},[83,17047,16686],{"class":2536},[83,17049,16689],{"class":117},[83,17051,16686],{"class":2536},[83,17053,2548],{"class":117},[83,17055,17056,17058,17060,17062,17064],{"class":85,"line":1814},[83,17057,2754],{"class":117},[83,17059,16700],{"class":2536},[83,17061,16703],{"class":117},[83,17063,16700],{"class":2536},[83,17065,2548],{"class":117},[83,17067,17068,17070,17072,17074,17076],{"class":85,"line":1826},[83,17069,2754],{"class":117},[83,17071,16714],{"class":2536},[83,17073,16717],{"class":117},[83,17075,16714],{"class":2536},[83,17077,2548],{"class":117},[83,17079,17080,17082,17084,17086,17088],{"class":85,"line":1831},[83,17081,2754],{"class":117},[83,17083,16728],{"class":2536},[83,17085,16675],{"class":117},[83,17087,16728],{"class":2536},[83,17089,2548],{"class":117},[83,17091,17092,17094,17096,17098,17100],{"class":85,"line":1848},[83,17093,2754],{"class":117},[83,17095,16741],{"class":2536},[83,17097,16744],{"class":117},[83,17099,16741],{"class":2536},[83,17101,2548],{"class":117},[83,17103,17104,17106,17108,17110,17112],{"class":85,"line":1863},[83,17105,2754],{"class":117},[83,17107,16755],{"class":2536},[83,17109,16675],{"class":117},[83,17111,16755],{"class":2536},[83,17113,2548],{"class":117},[83,17115,17116,17118,17120,17122,17124],{"class":85,"line":1885},[83,17117,2754],{"class":117},[83,17119,16768],{"class":2536},[83,17121,16744],{"class":117},[83,17123,16768],{"class":2536},[83,17125,2548],{"class":117},[83,17127,17128,17130,17132,17134,17136],{"class":85,"line":1890},[83,17129,2754],{"class":117},[83,17131,16781],{"class":2536},[83,17133,16784],{"class":117},[83,17135,16781],{"class":2536},[83,17137,2548],{"class":117},[83,17139,17140,17142,17144,17146,17148],{"class":85,"line":1901},[83,17141,2754],{"class":117},[83,17143,16795],{"class":2536},[83,17145,16798],{"class":117},[83,17147,16795],{"class":2536},[83,17149,2548],{"class":117},[83,17151,17152,17154,17156,17158,17160],{"class":85,"line":1907},[83,17153,2754],{"class":117},[83,17155,16809],{"class":2536},[83,17157,3150],{"class":117},[83,17159,16809],{"class":2536},[83,17161,2548],{"class":117},[83,17163,17164,17166,17168,17170,17172],{"class":85,"line":1925},[83,17165,2754],{"class":117},[83,17167,16822],{"class":2536},[83,17169,16825],{"class":117},[83,17171,16822],{"class":2536},[83,17173,2548],{"class":117},[83,17175,17176,17178,17180],{"class":85,"line":1937},[83,17177,2814],{"class":117},[83,17179,3183],{"class":2536},[83,17181,2548],{"class":117},[83,17183,17184,17186,17188],{"class":85,"line":1955},[83,17185,2660],{"class":117},[83,17187,15267],{"class":2536},[83,17189,2548],{"class":117},[83,17191,17192],{"class":85,"line":1961},[83,17193,90],{"emptyLinePlaceholder":89},[83,17195,17196,17198,17200],{"class":85,"line":1967},[83,17197,2553],{"class":117},[83,17199,15267],{"class":2536},[83,17201,2548],{"class":117},[83,17203,17204,17206,17208,17210,17212],{"class":85,"line":1972},[83,17205,2570],{"class":117},[83,17207,3183],{"class":2536},[83,17209,3193],{"class":103},[83,17211,1837],{"class":117},[83,17213,16874],{"class":107},[83,17215,17216,17218,17220,17222],{"class":85,"line":1978},[83,17217,16879],{"class":103},[83,17219,1837],{"class":117},[83,17221,16884],{"class":107},[83,17223,2548],{"class":117},[83,17225,17226,17228,17230],{"class":85,"line":1989},[83,17227,2651],{"class":117},[83,17229,3183],{"class":2536},[83,17231,2548],{"class":117},[83,17233,17234,17236,17238],{"class":85,"line":2003},[83,17235,2660],{"class":117},[83,17237,15267],{"class":2536},[83,17239,2548],{"class":117},[15,17241,17242,17243,17246],{},"We are definitely using a 4-wheel vehicle here. I created a ",[80,17244,17245],{},"move_control.urdf.xacro"," specifically to store motion control code:",[73,17248,17250],{"className":2524,"code":17249,"language":2526,"meta":78,"style":78},"\n\u003Crobot name=\"car\" xmlns:xacro=\"http://wiki.ros.org/xacro\">\n    \u003C!-- 运动控制插件 -->\n    \u003Cgazebo>\n        \u003Cplugin\n            filename=\"gz-sim-diff-drive-system\"\n            name=\"gz::sim::systems::DiffDrive\">\n            \u003Cleft_joint>left_front2baselink\u003C/left_joint>\n            \u003Cleft_joint>left_back2baselink\u003C/left_joint>\n            \u003Cright_joint>right_front2baselink\u003C/right_joint>\n            \u003Cright_joint>right_back2baselink\u003C/right_joint>\n            \u003C!-- wheel_separation轮距 是左右轮中心线之间的距离：0.06 - (-0.06) = 0.12m -->\n            \u003Cwheel_separation>0.12\u003C/wheel_separation>\n            \u003Cwheel_radius>0.025\u003C/wheel_radius>\n            \u003Codom_publish_frequency>50\u003C/odom_publish_frequency>\n            \u003Cframe_id>odom\u003C/frame_id>\n            \u003Cchild_frame_id>base_footprint\u003C/child_frame_id>\n            \u003Ctopic>/cmd_vel\u003C/topic>\n            \u003Cmax_linear_acceleration>10\u003C/max_linear_acceleration>\n            \u003Cmin_linear_acceleration>-10\u003C/min_linear_acceleration>\n            \u003Cmax_angular_acceleration>10\u003C/max_angular_acceleration>\n            \u003Cmin_angular_acceleration>-10\u003C/min_angular_acceleration>\n            \u003Cmax_linear_velocity>0.5\u003C/max_linear_velocity>\n            \u003Cmin_linear_velocity>-0.5\u003C/min_linear_velocity>\n            \u003Cmax_angular_velocity>1\u003C/max_angular_velocity>\n            \u003Cmin_angular_velocity>-1\u003C/min_angular_velocity>\n        \u003C/plugin>\n    \u003C/gazebo>\n    \u003C!-- 关节状态发布 -->\n    \u003Cgazebo>\n        \u003Cplugin filename=\"gz-sim-joint-state-publisher-system\"\n        name=\"gz::sim::systems::JointStatePublisher\">\n        \u003C/plugin>\n    \u003C/gazebo>\n\u003C/robot>\n\n\n",[80,17251,17252,17256,17276,17281,17289,17295,17304,17315,17328,17341,17354,17367,17372,17385,17398,17410,17422,17434,17446,17458,17470,17482,17494,17506,17518,17530,17542,17550,17558,17563,17571,17583,17593,17601,17609],{"__ignoreMap":78},[83,17253,17254],{"class":85,"line":86},[83,17255,90],{"emptyLinePlaceholder":89},[83,17257,17258,17260,17262,17264,17266,17268,17270,17272,17274],{"class":85,"line":93},[83,17259,2533],{"class":117},[83,17261,2537],{"class":2536},[83,17263,2540],{"class":103},[83,17265,1837],{"class":117},[83,17267,15486],{"class":107},[83,17269,2691],{"class":103},[83,17271,1837],{"class":117},[83,17273,13638],{"class":107},[83,17275,2548],{"class":117},[83,17277,17278],{"class":85,"line":100},[83,17279,17280],{"class":96},"    \u003C!-- 运动控制插件 -->\n",[83,17282,17283,17285,17287],{"class":85,"line":124},[83,17284,2570],{"class":117},[83,17286,15267],{"class":2536},[83,17288,2548],{"class":117},[83,17290,17291,17293],{"class":85,"line":129},[83,17292,2754],{"class":117},[83,17294,16931],{"class":2536},[83,17296,17297,17300,17302],{"class":85,"line":135},[83,17298,17299],{"class":103},"            filename",[83,17301,1837],{"class":117},[83,17303,16600],{"class":107},[83,17305,17306,17309,17311,17313],{"class":85,"line":147},[83,17307,17308],{"class":103},"            name",[83,17310,1837],{"class":117},[83,17312,16610],{"class":107},[83,17314,2548],{"class":117},[83,17316,17317,17319,17321,17324,17326],{"class":85,"line":152},[83,17318,3443],{"class":117},[83,17320,16475],{"class":2536},[83,17322,17323],{"class":117},">left_front2baselink\u003C/",[83,17325,16475],{"class":2536},[83,17327,2548],{"class":117},[83,17329,17330,17332,17334,17337,17339],{"class":85,"line":158},[83,17331,3443],{"class":117},[83,17333,16475],{"class":2536},[83,17335,17336],{"class":117},">left_back2baselink\u003C/",[83,17338,16475],{"class":2536},[83,17340,2548],{"class":117},[83,17342,17343,17345,17347,17350,17352],{"class":85,"line":405},[83,17344,3443],{"class":117},[83,17346,16483],{"class":2536},[83,17348,17349],{"class":117},">right_front2baselink\u003C/",[83,17351,16483],{"class":2536},[83,17353,2548],{"class":117},[83,17355,17356,17358,17360,17363,17365],{"class":85,"line":411},[83,17357,3443],{"class":117},[83,17359,16483],{"class":2536},[83,17361,17362],{"class":117},">right_back2baselink\u003C/",[83,17364,16483],{"class":2536},[83,17366,2548],{"class":117},[83,17368,17369],{"class":85,"line":417},[83,17370,17371],{"class":96},"            \u003C!-- wheel_separation轮距 是左右轮中心线之间的距离：0.06 - (-0.06) = 0.12m -->\n",[83,17373,17374,17376,17378,17381,17383],{"class":85,"line":423},[83,17375,3443],{"class":117},[83,17377,16491],{"class":2536},[83,17379,17380],{"class":117},">0.12\u003C/",[83,17382,16491],{"class":2536},[83,17384,2548],{"class":117},[83,17386,17387,17389,17391,17394,17396],{"class":85,"line":1814},[83,17388,3443],{"class":117},[83,17390,16658],{"class":2536},[83,17392,17393],{"class":117},">0.025\u003C/",[83,17395,16658],{"class":2536},[83,17397,2548],{"class":117},[83,17399,17400,17402,17404,17406,17408],{"class":85,"line":1826},[83,17401,3443],{"class":117},[83,17403,16672],{"class":2536},[83,17405,17037],{"class":117},[83,17407,16672],{"class":2536},[83,17409,2548],{"class":117},[83,17411,17412,17414,17416,17418,17420],{"class":85,"line":1831},[83,17413,3443],{"class":117},[83,17415,16686],{"class":2536},[83,17417,16689],{"class":117},[83,17419,16686],{"class":2536},[83,17421,2548],{"class":117},[83,17423,17424,17426,17428,17430,17432],{"class":85,"line":1848},[83,17425,3443],{"class":117},[83,17427,16700],{"class":2536},[83,17429,16703],{"class":117},[83,17431,16700],{"class":2536},[83,17433,2548],{"class":117},[83,17435,17436,17438,17440,17442,17444],{"class":85,"line":1863},[83,17437,3443],{"class":117},[83,17439,16714],{"class":2536},[83,17441,16717],{"class":117},[83,17443,16714],{"class":2536},[83,17445,2548],{"class":117},[83,17447,17448,17450,17452,17454,17456],{"class":85,"line":1885},[83,17449,3443],{"class":117},[83,17451,16728],{"class":2536},[83,17453,16675],{"class":117},[83,17455,16728],{"class":2536},[83,17457,2548],{"class":117},[83,17459,17460,17462,17464,17466,17468],{"class":85,"line":1890},[83,17461,3443],{"class":117},[83,17463,16741],{"class":2536},[83,17465,16744],{"class":117},[83,17467,16741],{"class":2536},[83,17469,2548],{"class":117},[83,17471,17472,17474,17476,17478,17480],{"class":85,"line":1901},[83,17473,3443],{"class":117},[83,17475,16755],{"class":2536},[83,17477,16675],{"class":117},[83,17479,16755],{"class":2536},[83,17481,2548],{"class":117},[83,17483,17484,17486,17488,17490,17492],{"class":85,"line":1907},[83,17485,3443],{"class":117},[83,17487,16768],{"class":2536},[83,17489,16744],{"class":117},[83,17491,16768],{"class":2536},[83,17493,2548],{"class":117},[83,17495,17496,17498,17500,17502,17504],{"class":85,"line":1925},[83,17497,3443],{"class":117},[83,17499,16781],{"class":2536},[83,17501,16784],{"class":117},[83,17503,16781],{"class":2536},[83,17505,2548],{"class":117},[83,17507,17508,17510,17512,17514,17516],{"class":85,"line":1937},[83,17509,3443],{"class":117},[83,17511,16795],{"class":2536},[83,17513,16798],{"class":117},[83,17515,16795],{"class":2536},[83,17517,2548],{"class":117},[83,17519,17520,17522,17524,17526,17528],{"class":85,"line":1955},[83,17521,3443],{"class":117},[83,17523,16809],{"class":2536},[83,17525,3150],{"class":117},[83,17527,16809],{"class":2536},[83,17529,2548],{"class":117},[83,17531,17532,17534,17536,17538,17540],{"class":85,"line":1961},[83,17533,3443],{"class":117},[83,17535,16822],{"class":2536},[83,17537,16825],{"class":117},[83,17539,16822],{"class":2536},[83,17541,2548],{"class":117},[83,17543,17544,17546,17548],{"class":85,"line":1967},[83,17545,2990],{"class":117},[83,17547,3183],{"class":2536},[83,17549,2548],{"class":117},[83,17551,17552,17554,17556],{"class":85,"line":1972},[83,17553,2651],{"class":117},[83,17555,15267],{"class":2536},[83,17557,2548],{"class":117},[83,17559,17560],{"class":85,"line":1978},[83,17561,17562],{"class":96},"    \u003C!-- 关节状态发布 -->\n",[83,17564,17565,17567,17569],{"class":85,"line":1989},[83,17566,2570],{"class":117},[83,17568,15267],{"class":2536},[83,17570,2548],{"class":117},[83,17572,17573,17575,17577,17579,17581],{"class":85,"line":2003},[83,17574,2754],{"class":117},[83,17576,3183],{"class":2536},[83,17578,3193],{"class":103},[83,17580,1837],{"class":117},[83,17582,16874],{"class":107},[83,17584,17585,17587,17589,17591],{"class":85,"line":2015},[83,17586,16605],{"class":103},[83,17588,1837],{"class":117},[83,17590,16884],{"class":107},[83,17592,2548],{"class":117},[83,17594,17595,17597,17599],{"class":85,"line":2042},[83,17596,2990],{"class":117},[83,17598,3183],{"class":2536},[83,17600,2548],{"class":117},[83,17602,17603,17605,17607],{"class":85,"line":2058},[83,17604,2651],{"class":117},[83,17606,15267],{"class":2536},[83,17608,2548],{"class":117},[83,17610,17611,17613,17615],{"class":85,"line":2063},[83,17612,2669],{"class":117},[83,17614,2537],{"class":2536},[83,17616,2548],{"class":117},[15,17618,17619],{},[19,17620,17621],{},"Modify the launch file",[15,17623,17624,17625,17628],{},"Modify the ",[80,17626,17627],{},"gazebo_sim_robot_world.launch.py"," file. The modified code is as follows:",[73,17630,17632],{"className":1687,"code":17631,"language":1689,"meta":78,"style":78},"import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory(\"demo_gazebo_sim\")\n    mycar_desc_pkg = get_package_share_directory(\"mycar_description\")\n    pkg_ros_gz_sim = get_package_share_directory(\"ros_gz_sim\")\n    world_file = os.path.join(this_pkg,\"world\",\"house.sdf\")\n\n    gz_sim = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(pkg_ros_gz_sim, \"launch\", \"gz_sim.launch.py\")),\n        launch_arguments={\n            \"gz_args\": \"-r \" + world_file\n        }.items(),\n    )\n    mycar_desc = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(mycar_desc_pkg,\"launch\",\"mycar_desc_sim.launch.py\")\n        )\n    )\n    spawn = Node(package=\"ros_gz_sim\", executable=\"create\",\n                arguments=[\n                \"-name\", \"mycar\",\n                \"-x\", \"-4\",\n                \"-z\", \"0.01\", #设置为0,可能会陷进地里\n                \"-y\", \"0\",\n                \"-R\", \"0\",\n                \"-P\", \"0\",\n                \"-Y\", \"1.57\",   #逆时针旋转90度\n                \"-topic\", \"/robot_description\"],\n            output=\"screen\")\n\n    # Bridge\n    bridge = Node(\n        package=\"ros_gz_bridge\",\n        executable=\"parameter_bridge\",\n        arguments=[\"/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist\",\n                   \"/model/mycar/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry\",\n                   \"/model/mycar/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V\",\n                   \"/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock\",\n                   \"/world/empty/model/mycar/joint_state@sensor_msgs/msg/JointState[gz.msgs.Model\",\n                   ],\n        parameters=[{\"qos_overrides./model/mycar.subscriber.reliability\": \"reliable\"}],\n        remappings=[\n                (\"/model/mycar/tf\", \"/tf\"),\n                (\"/world/empty/model/mycar/joint_state\",\"joint_states\"),\n                (\"/model/mycar/odometry\",\"/odom\")\n            ],\n        output=\"screen\"\n    )\n\n    return LaunchDescription([\n        gz_sim,\n        spawn,\n        mycar_desc,\n        bridge\n    ])\n",[80,17633,17634,17640,17644,17654,17658,17668,17678,17688,17698,17702,17710,17714,17726,17738,17750,17766,17770,17778,17782,17794,17802,17814,17818,17822,17830,17834,17846,17850,17854,17878,17886,17896,17907,17919,17929,17939,17949,17963,17973,17983,17987,17991,17999,18010,18021,18034,18041,18048,18055,18062,18066,18084,18092,18106,18120,18134,18138,18147,18151,18155,18161,18165,18169,18173,18178],{"__ignoreMap":78},[83,17635,17636,17638],{"class":85,"line":86},[83,17637,1696],{"class":742},[83,17639,1699],{"class":117},[83,17641,17642],{"class":85,"line":93},[83,17643,90],{"emptyLinePlaceholder":89},[83,17645,17646,17648,17650,17652],{"class":85,"line":100},[83,17647,1708],{"class":742},[83,17649,1711],{"class":117},[83,17651,1696],{"class":742},[83,17653,1716],{"class":117},[83,17655,17656],{"class":85,"line":124},[83,17657,90],{"emptyLinePlaceholder":89},[83,17659,17660,17662,17664,17666],{"class":85,"line":129},[83,17661,1708],{"class":742},[83,17663,1727],{"class":117},[83,17665,1696],{"class":742},[83,17667,1732],{"class":117},[83,17669,17670,17672,17674,17676],{"class":85,"line":135},[83,17671,1708],{"class":742},[83,17673,1739],{"class":117},[83,17675,1696],{"class":742},[83,17677,1755],{"class":117},[83,17679,17680,17682,17684,17686],{"class":85,"line":147},[83,17681,1708],{"class":742},[83,17683,1774],{"class":117},[83,17685,1696],{"class":742},[83,17687,1779],{"class":117},[83,17689,17690,17692,17694,17696],{"class":85,"line":152},[83,17691,1708],{"class":742},[83,17693,1802],{"class":117},[83,17695,1696],{"class":742},[83,17697,1807],{"class":117},[83,17699,17700],{"class":85,"line":158},[83,17701,90],{"emptyLinePlaceholder":89},[83,17703,17704,17706,17708],{"class":85,"line":405},[83,17705,1817],{"class":742},[83,17707,1820],{"class":103},[83,17709,1823],{"class":117},[83,17711,17712],{"class":85,"line":411},[83,17713,90],{"emptyLinePlaceholder":89},[83,17715,17716,17718,17720,17722,17724],{"class":85,"line":417},[83,17717,1834],{"class":117},[83,17719,1837],{"class":742},[83,17721,1840],{"class":117},[83,17723,15923],{"class":107},[83,17725,1587],{"class":117},[83,17727,17728,17730,17732,17734,17736],{"class":85,"line":423},[83,17729,15930],{"class":117},[83,17731,1837],{"class":742},[83,17733,1840],{"class":117},[83,17735,15661],{"class":107},[83,17737,1587],{"class":117},[83,17739,17740,17742,17744,17746,17748],{"class":85,"line":1814},[83,17741,1851],{"class":117},[83,17743,1837],{"class":742},[83,17745,1840],{"class":117},[83,17747,15949],{"class":107},[83,17749,1587],{"class":117},[83,17751,17752,17754,17756,17758,17760,17762,17764],{"class":85,"line":1826},[83,17753,1866],{"class":117},[83,17755,1837],{"class":742},[83,17757,1871],{"class":117},[83,17759,9372],{"class":107},[83,17761,1877],{"class":117},[83,17763,9377],{"class":107},[83,17765,1587],{"class":117},[83,17767,17768],{"class":85,"line":1831},[83,17769,90],{"emptyLinePlaceholder":89},[83,17771,17772,17774,17776],{"class":85,"line":1848},[83,17773,1893],{"class":117},[83,17775,1837],{"class":742},[83,17777,1898],{"class":117},[83,17779,17780],{"class":85,"line":1863},[83,17781,1904],{"class":117},[83,17783,17784,17786,17788,17790,17792],{"class":85,"line":1885},[83,17785,1910],{"class":117},[83,17787,15990],{"class":107},[83,17789,1916],{"class":117},[83,17791,15995],{"class":107},[83,17793,1922],{"class":117},[83,17795,17796,17798,17800],{"class":85,"line":1890},[83,17797,1929],{"class":1928},[83,17799,1837],{"class":742},[83,17801,1934],{"class":117},[83,17803,17804,17806,17808,17810,17812],{"class":85,"line":1901},[83,17805,16010],{"class":107},[83,17807,1943],{"class":117},[83,17809,16015],{"class":107},[83,17811,1949],{"class":742},[83,17813,1952],{"class":117},[83,17815,17816],{"class":85,"line":1907},[83,17817,1958],{"class":117},[83,17819,17820],{"class":85,"line":1925},[83,17821,1964],{"class":117},[83,17823,17824,17826,17828],{"class":85,"line":1937},[83,17825,16032],{"class":117},[83,17827,1837],{"class":742},[83,17829,1898],{"class":117},[83,17831,17832],{"class":85,"line":1955},[83,17833,1904],{"class":117},[83,17835,17836,17838,17840,17842,17844],{"class":85,"line":1961},[83,17837,16045],{"class":117},[83,17839,15990],{"class":107},[83,17841,1877],{"class":117},[83,17843,16052],{"class":107},[83,17845,1587],{"class":117},[83,17847,17848],{"class":85,"line":1967},[83,17849,16059],{"class":117},[83,17851,17852],{"class":85,"line":1972},[83,17853,1964],{"class":117},[83,17855,17856,17858,17860,17862,17864,17866,17868,17870,17872,17874,17876],{"class":85,"line":1978},[83,17857,16068],{"class":117},[83,17859,1837],{"class":742},[83,17861,16073],{"class":117},[83,17863,16076],{"class":1928},[83,17865,1837],{"class":742},[83,17867,15949],{"class":107},[83,17869,1916],{"class":117},[83,17871,16085],{"class":1928},[83,17873,1837],{"class":742},[83,17875,16090],{"class":107},[83,17877,2000],{"class":117},[83,17879,17880,17882,17884],{"class":85,"line":1989},[83,17881,16097],{"class":1928},[83,17883,1837],{"class":742},[83,17885,2177],{"class":117},[83,17887,17888,17890,17892,17894],{"class":85,"line":2003},[83,17889,16106],{"class":107},[83,17891,1916],{"class":117},[83,17893,16111],{"class":107},[83,17895,2000],{"class":117},[83,17897,17898,17900,17902,17905],{"class":85,"line":2015},[83,17899,16118],{"class":107},[83,17901,1916],{"class":117},[83,17903,17904],{"class":107},"\"-4\"",[83,17906,2000],{"class":117},[83,17908,17909,17911,17913,17915,17917],{"class":85,"line":2042},[83,17910,16130],{"class":107},[83,17912,1916],{"class":117},[83,17914,16135],{"class":107},[83,17916,1916],{"class":117},[83,17918,16140],{"class":96},[83,17920,17921,17923,17925,17927],{"class":85,"line":2058},[83,17922,16145],{"class":107},[83,17924,1916],{"class":117},[83,17926,16123],{"class":107},[83,17928,2000],{"class":117},[83,17930,17931,17933,17935,17937],{"class":85,"line":2063},[83,17932,16156],{"class":107},[83,17934,1916],{"class":117},[83,17936,16123],{"class":107},[83,17938,2000],{"class":117},[83,17940,17941,17943,17945,17947],{"class":85,"line":2068},[83,17942,16167],{"class":107},[83,17944,1916],{"class":117},[83,17946,16123],{"class":107},[83,17948,2000],{"class":117},[83,17950,17951,17953,17955,17957,17960],{"class":85,"line":2074},[83,17952,16178],{"class":107},[83,17954,1916],{"class":117},[83,17956,16183],{"class":107},[83,17958,17959],{"class":117},",   ",[83,17961,17962],{"class":96},"#逆时针旋转90度\n",[83,17964,17965,17967,17969,17971],{"class":85,"line":2084},[83,17966,16193],{"class":107},[83,17968,1916],{"class":117},[83,17970,16198],{"class":107},[83,17972,16201],{"class":117},[83,17974,17975,17977,17979,17981],{"class":85,"line":2097},[83,17976,16206],{"class":1928},[83,17978,1837],{"class":742},[83,17980,16211],{"class":107},[83,17982,1587],{"class":117},[83,17984,17985],{"class":85,"line":2110},[83,17986,90],{"emptyLinePlaceholder":89},[83,17988,17989],{"class":85,"line":2125},[83,17990,2071],{"class":96},[83,17992,17993,17995,17997],{"class":85,"line":2133},[83,17994,2077],{"class":117},[83,17996,1837],{"class":742},[83,17998,1986],{"class":117},[83,18000,18001,18003,18005,18008],{"class":85,"line":2141},[83,18002,2087],{"class":1928},[83,18004,1837],{"class":742},[83,18006,18007],{"class":107},"\"ros_gz_bridge\"",[83,18009,2000],{"class":117},[83,18011,18012,18014,18016,18019],{"class":85,"line":2147},[83,18013,2100],{"class":1928},[83,18015,1837],{"class":742},[83,18017,18018],{"class":107},"\"parameter_bridge\"",[83,18020,2000],{"class":117},[83,18022,18023,18025,18027,18029,18032],{"class":85,"line":2169},[83,18024,2113],{"class":1928},[83,18026,1837],{"class":742},[83,18028,780],{"class":117},[83,18030,18031],{"class":107},"\"/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist\"",[83,18033,2000],{"class":117},[83,18035,18036,18039],{"class":85,"line":2180},[83,18037,18038],{"class":107},"                   \"/model/mycar/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry\"",[83,18040,2000],{"class":117},[83,18042,18043,18046],{"class":85,"line":2197},[83,18044,18045],{"class":107},"                   \"/model/mycar/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V\"",[83,18047,2000],{"class":117},[83,18049,18050,18053],{"class":85,"line":2212},[83,18051,18052],{"class":107},"                   \"/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock\"",[83,18054,2000],{"class":117},[83,18056,18057,18060],{"class":85,"line":2218},[83,18058,18059],{"class":107},"                   \"/world/empty/model/mycar/joint_state@sensor_msgs/msg/JointState[gz.msgs.Model\"",[83,18061,2000],{"class":117},[83,18063,18064],{"class":85,"line":2229},[83,18065,2144],{"class":117},[83,18067,18068,18070,18072,18074,18077,18079,18082],{"class":85,"line":2234},[83,18069,2150],{"class":1928},[83,18071,1837],{"class":742},[83,18073,2155],{"class":117},[83,18075,18076],{"class":107},"\"qos_overrides./model/mycar.subscriber.reliability\"",[83,18078,1943],{"class":117},[83,18080,18081],{"class":107},"\"reliable\"",[83,18083,2166],{"class":117},[83,18085,18086,18088,18090],{"class":85,"line":2239},[83,18087,2172],{"class":1928},[83,18089,1837],{"class":742},[83,18091,2177],{"class":117},[83,18093,18094,18096,18099,18101,18104],{"class":85,"line":2248},[83,18095,2183],{"class":117},[83,18097,18098],{"class":107},"\"/model/mycar/tf\"",[83,18100,1916],{"class":117},[83,18102,18103],{"class":107},"\"/tf\"",[83,18105,2194],{"class":117},[83,18107,18108,18110,18113,18115,18118],{"class":85,"line":2254},[83,18109,2183],{"class":117},[83,18111,18112],{"class":107},"\"/world/empty/model/mycar/joint_state\"",[83,18114,1877],{"class":117},[83,18116,18117],{"class":107},"\"joint_states\"",[83,18119,2194],{"class":117},[83,18121,18122,18124,18127,18129,18132],{"class":85,"line":2274},[83,18123,2183],{"class":117},[83,18125,18126],{"class":107},"\"/model/mycar/odometry\"",[83,18128,1877],{"class":117},[83,18130,18131],{"class":107},"\"/odom\"",[83,18133,1587],{"class":117},[83,18135,18136],{"class":85,"line":2287},[83,18137,2215],{"class":117},[83,18139,18140,18142,18144],{"class":85,"line":2293},[83,18141,2221],{"class":1928},[83,18143,1837],{"class":742},[83,18145,18146],{"class":107},"\"screen\"\n",[83,18148,18149],{"class":85,"line":2299},[83,18150,1964],{"class":117},[83,18152,18153],{"class":85,"line":3797},[83,18154,90],{"emptyLinePlaceholder":89},[83,18156,18157,18159],{"class":85,"line":3810},[83,18158,2242],{"class":742},[83,18160,2245],{"class":117},[83,18162,18163],{"class":85,"line":3824},[83,18164,2251],{"class":117},[83,18166,18167],{"class":85,"line":3837},[83,18168,16232],{"class":117},[83,18170,18171],{"class":85,"line":3846},[83,18172,16237],{"class":117},[83,18174,18175],{"class":85,"line":3855},[83,18176,18177],{"class":117},"        bridge\n",[83,18179,18180],{"class":85,"line":3870},[83,18181,2302],{"class":117},[15,18183,18184],{},[19,18185,2315],{},[15,18187,2318],{},[73,18189,18190],{"className":75,"code":16250,"language":77,"meta":78,"style":78},[80,18191,18192],{"__ignoreMap":78},[83,18193,18194,18196,18198,18200,18202],{"class":85,"line":86},[83,18195,2328],{"class":103},[83,18197,2331],{"class":107},[83,18199,16261],{"class":547},[83,18201,13421],{"class":107},[83,18203,1553],{"class":107},[15,18205,18206],{},[19,18207,2346],{},[15,18209,2349],{},[73,18211,18213],{"className":75,"code":18212,"language":77,"meta":78,"style":78},". install/setup.bash\nros2 launch demo_gazebo_sim gazebo_sim_robot_world.launch.py\n",[80,18214,18215,18221],{"__ignoreMap":78},[83,18216,18217,18219],{"class":85,"line":86},[83,18218,2359],{"class":547},[83,18220,2362],{"class":107},[83,18222,18223,18225,18227,18229],{"class":85,"line":93},[83,18224,234],{"class":103},[83,18226,237],{"class":107},[83,18228,2371],{"class":107},[83,18230,16298],{"class":107},[15,18232,18233],{},"Restart the keyboard control node, and you can control the robot's movement.",[73,18235,18236],{"className":75,"code":2380,"language":77,"meta":78,"style":78},[80,18237,18238],{"__ignoreMap":78},[83,18239,18240,18242,18244,18246],{"class":85,"line":86},[83,18241,234],{"class":103},[83,18243,634],{"class":107},[83,18245,682],{"class":107},[83,18247,2393],{"class":107},[15,18249,18250],{},"You can also launch rviz2 to view odometry messages and coordinate transforms. In the terminal, navigate to the current workspace and execute the following command to run the launch file:",[15,18252,18253],{},"Start rviz2",[73,18255,18257],{"className":75,"code":18256,"language":77,"meta":78,"style":78},". install/setup.bash\nrviz2\n",[80,18258,18259,18265],{"__ignoreMap":78},[83,18260,18261,18263],{"class":85,"line":86},[83,18262,2359],{"class":547},[83,18264,2362],{"class":107},[83,18266,18267],{"class":85,"line":93},[83,18268,18269],{"class":103},"rviz2\n",[15,18271,18272],{},"The RVIZ2 software configuration is shown in the following image:",[15,18274,18275,18278],{},[171,18276],{"alt":78,"src":18277},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1735.webp",[171,18279],{"alt":78,"src":18280},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1736.webp",[15,18282,18283],{},[171,18284],{"alt":78,"src":18285},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1737.webp",[31,18287,18289],{"id":18288},"gz-sim-simulation-sensors","Gz Sim Simulation: Sensors",[15,18291,18292,18293],{},"This section will introduce how to add sensors such as LiDAR and cameras to the simulated robot.\n",[19,18294,18295],{},"Adding Sensor Plugins",[15,18297,18298,18299,18302,18303,18305,18306,18309],{},"Before simulating the sensor, you need to add a plugin named ",[80,18300,18301],{},"gz-sim-sensors-system",". Open the URDF file and add the following code inside the ",[80,18304,16569],{}," root tag:\n(It is recommended to create a dedicated ",[80,18307,18308],{},"gazebo_sensor.urdf.xacro"," for storage)",[73,18311,18313],{"className":2524,"code":18312,"language":2526,"meta":78,"style":78},"\n\u003Cgazebo>\n    \u003Cplugin\n      filename=\"gz-sim-sensors-system\"\n      name=\"gz::sim::systems::Sensors\">\n      \u003Crender_engine>ogre2\u003C/render_engine>\n    \u003C/plugin>\n  \u003C/gazebo>\n",[80,18314,18315,18319,18327,18333,18343,18354,18368,18376],{"__ignoreMap":78},[83,18316,18317],{"class":85,"line":86},[83,18318,90],{"emptyLinePlaceholder":89},[83,18320,18321,18323,18325],{"class":85,"line":93},[83,18322,2533],{"class":117},[83,18324,15267],{"class":2536},[83,18326,2548],{"class":117},[83,18328,18329,18331],{"class":85,"line":100},[83,18330,2570],{"class":117},[83,18332,16931],{"class":2536},[83,18334,18335,18338,18340],{"class":85,"line":124},[83,18336,18337],{"class":103},"      filename",[83,18339,1837],{"class":117},[83,18341,18342],{"class":107},"\"gz-sim-sensors-system\"\n",[83,18344,18345,18347,18349,18352],{"class":85,"line":129},[83,18346,16879],{"class":103},[83,18348,1837],{"class":117},[83,18350,18351],{"class":107},"\"gz::sim::systems::Sensors\"",[83,18353,2548],{"class":117},[83,18355,18356,18358,18361,18364,18366],{"class":85,"line":135},[83,18357,2580],{"class":117},[83,18359,18360],{"class":2536},"render_engine",[83,18362,18363],{"class":117},">ogre2\u003C/",[83,18365,18360],{"class":2536},[83,18367,2548],{"class":117},[83,18369,18370,18372,18374],{"class":85,"line":147},[83,18371,2651],{"class":117},[83,18373,3183],{"class":2536},[83,18375,2548],{"class":117},[83,18377,18378,18380,18382],{"class":85,"line":152},[83,18379,2660],{"class":117},[83,18381,15267],{"class":2536},[83,18383,2548],{"class":117},[15,18385,18386],{},"The gz-sim-sensors-system is a plugin for the Gazebo simulation environment that provides sensor models and related functionality for creating, simulating, and testing various sensor devices. It includes common sensor models such as cameras, LiDAR, and others.",[15,18388,18389],{},[19,18390,18391],{},"Adding Various Sensors",[15,18393,18394],{},[19,18395,18396],{},"(Note: Your model must include models for the following sensors)",[15,18398,18399],{},"The radar model does not need collision. Please delete it, otherwise it will block the laser emission.",[73,18401,18403],{"className":2524,"code":18402,"language":2526,"meta":78,"style":78},"\n  \u003Cgazebo reference=\"laser\">\n    \u003Csensor name='gpu_lidar' type='gpu_lidar'>\n      \u003Ctopic>scan\u003C/topic>\n      \u003Cupdate_rate>30\u003C/update_rate>\n      \u003Clidar>\n        \u003Cscan>\n          \u003Chorizontal>\n            \u003Csamples>640\u003C/samples>\n            \u003Cresolution>1\u003C/resolution>\n            \u003Cmin_angle>-3.1415926\u003C/min_angle>\n            \u003Cmax_angle>3.1415926\u003C/max_angle>\n          \u003C/horizontal>\n          \u003Cvertical>\n            \u003Csamples>16\u003C/samples>\n            \u003Cresolution>1\u003C/resolution>\n            \u003Cmin_angle>-0.261799\u003C/min_angle>\n            \u003Cmax_angle>0.261799\u003C/max_angle>\n          \u003C/vertical>\n        \u003C/scan>\n        \u003Crange>\n          \u003Cmin>0.08\u003C/min>\n          \u003Cmax>10.0\u003C/max>\n          \u003Cresolution>0.01\u003C/resolution>\n        \u003C/range>\n      \u003C/lidar>\n      \u003Cvisualize>true\u003C/visualize>\n      \u003Cgz_frame_id>laser\u003Cgz_frame_id>\n      \u003Cpose relative_to=\"laser\">0 0 0 0 0 0\u003C/pose>\n    \u003C/sensor>\n  \u003C/gazebo>\n\n  \u003Cgazebo reference=\"camera\" >\n    \u003Csensor name=\"cam_link\" type=\"camera\">\n      \u003Cupdate_rate>10.0\u003C/update_rate>\n      \u003Calways_on>true\u003C/always_on>\n      \u003Cgz_frame_id>camera\u003C/gz_frame_id>\n      \u003Cpose relative_to=\"camera\">0 0 0 0 0 0\u003C/pose>\n      \u003Cpose>0 0 0 0 0 0\u003C/pose>\n      \u003Ctopic>/image_raw\u003C/topic>\n      \u003Ccamera name=\"my_camera\">\n        \u003Chorizontal_fov>1.3962634\u003C/horizontal_fov>\n        \u003Cimage>\n           \u003Cwidth>600\u003C/width>\n           \u003Cheight>600\u003C/height>\n           \u003Cformat>R8G8B8\u003C/format>\n        \u003C/image>\n        \u003Cclip>\n          \u003Cnear>0.02\u003C/near>\n          \u003Cfar>300\u003C/far>\n        \u003C/clip>\n      \u003C/camera>\n    \u003C/sensor>\n  \u003C/gazebo>\n\n  \u003Cgazebo reference=\"camera\">\n    \u003Csensor name=\"depth_camera\" type=\"depth_camera\">\n          \u003Cupdate_rate>10\u003C/update_rate>\n          \u003Ctopic>depth_camera\u003C/topic>\n          \u003Ccamera>\n            \u003Chorizontal_fov>1.05\u003C/horizontal_fov>\n            \u003Cimage>\n              \u003Cwidth>256\u003C/width>\n              \u003Cheight>256\u003C/height>\n              \u003Cformat>R_FLOAT32\u003C/format>\n            \u003C/image>\n            \u003Cclip>\n              \u003Cnear>0.1\u003C/near>\n              \u003Cfar>10.0\u003C/far>\n            \u003C/clip>\n          \u003C/camera>\n          \u003Calways_on>1\u003C/always_on>\n          \u003Cgz_frame_id>camera\u003C/gz_frame_id>\n          \u003Cpose relative_to=\"camera\">0 0 0 0 0 0\u003C/pose>\n      \u003C/sensor>\n  \u003C/gazebo>\n",[80,18404,18405,18409,18424,18446,18459,18472,18481,18490,18499,18513,18526,18540,18554,18562,18571,18584,18596,18609,18622,18630,18638,18646,18660,18674,18686,18694,18702,18715,18729,18749,18757,18765,18769,18784,18805,18817,18830,18843,18861,18873,18886,18902,18916,18925,18940,18953,18967,18975,18984,18998,19012,19020,19028,19036,19044,19048,19062,19083,19095,19108,19116,19129,19137,19150,19162,19175,19183,19191,19204,19216,19224,19232,19244,19256,19274,19282],{"__ignoreMap":78},[83,18406,18407],{"class":85,"line":86},[83,18408,90],{"emptyLinePlaceholder":89},[83,18410,18411,18413,18415,18417,18419,18422],{"class":85,"line":93},[83,18412,2553],{"class":117},[83,18414,15267],{"class":2536},[83,18416,15270],{"class":103},[83,18418,1837],{"class":117},[83,18420,18421],{"class":107},"\"laser\"",[83,18423,2548],{"class":117},[83,18425,18426,18428,18431,18433,18435,18438,18440,18442,18444],{"class":85,"line":100},[83,18427,2570],{"class":117},[83,18429,18430],{"class":2536},"sensor",[83,18432,2540],{"class":103},[83,18434,1837],{"class":117},[83,18436,18437],{"class":107},"'gpu_lidar'",[83,18439,3119],{"class":103},[83,18441,1837],{"class":117},[83,18443,18437],{"class":107},[83,18445,2548],{"class":117},[83,18447,18448,18450,18452,18455,18457],{"class":85,"line":124},[83,18449,2580],{"class":117},[83,18451,16714],{"class":2536},[83,18453,18454],{"class":117},">scan\u003C/",[83,18456,16714],{"class":2536},[83,18458,2548],{"class":117},[83,18460,18461,18463,18465,18468,18470],{"class":85,"line":129},[83,18462,2580],{"class":117},[83,18464,16467],{"class":2536},[83,18466,18467],{"class":117},">30\u003C/",[83,18469,16467],{"class":2536},[83,18471,2548],{"class":117},[83,18473,18474,18476,18479],{"class":85,"line":135},[83,18475,2580],{"class":117},[83,18477,18478],{"class":2536},"lidar",[83,18480,2548],{"class":117},[83,18482,18483,18485,18488],{"class":85,"line":147},[83,18484,2754],{"class":117},[83,18486,18487],{"class":2536},"scan",[83,18489,2548],{"class":117},[83,18491,18492,18494,18497],{"class":85,"line":152},[83,18493,2950],{"class":117},[83,18495,18496],{"class":2536},"horizontal",[83,18498,2548],{"class":117},[83,18500,18501,18503,18506,18509,18511],{"class":85,"line":158},[83,18502,3443],{"class":117},[83,18504,18505],{"class":2536},"samples",[83,18507,18508],{"class":117},">640\u003C/",[83,18510,18505],{"class":2536},[83,18512,2548],{"class":117},[83,18514,18515,18517,18520,18522,18524],{"class":85,"line":405},[83,18516,3443],{"class":117},[83,18518,18519],{"class":2536},"resolution",[83,18521,3150],{"class":117},[83,18523,18519],{"class":2536},[83,18525,2548],{"class":117},[83,18527,18528,18530,18533,18536,18538],{"class":85,"line":411},[83,18529,3443],{"class":117},[83,18531,18532],{"class":2536},"min_angle",[83,18534,18535],{"class":117},">-3.1415926\u003C/",[83,18537,18532],{"class":2536},[83,18539,2548],{"class":117},[83,18541,18542,18544,18547,18550,18552],{"class":85,"line":417},[83,18543,3443],{"class":117},[83,18545,18546],{"class":2536},"max_angle",[83,18548,18549],{"class":117},">3.1415926\u003C/",[83,18551,18546],{"class":2536},[83,18553,2548],{"class":117},[83,18555,18556,18558,18560],{"class":85,"line":423},[83,18557,3491],{"class":117},[83,18559,18496],{"class":2536},[83,18561,2548],{"class":117},[83,18563,18564,18566,18569],{"class":85,"line":1814},[83,18565,2950],{"class":117},[83,18567,18568],{"class":2536},"vertical",[83,18570,2548],{"class":117},[83,18572,18573,18575,18577,18580,18582],{"class":85,"line":1826},[83,18574,3443],{"class":117},[83,18576,18505],{"class":2536},[83,18578,18579],{"class":117},">16\u003C/",[83,18581,18505],{"class":2536},[83,18583,2548],{"class":117},[83,18585,18586,18588,18590,18592,18594],{"class":85,"line":1831},[83,18587,3443],{"class":117},[83,18589,18519],{"class":2536},[83,18591,3150],{"class":117},[83,18593,18519],{"class":2536},[83,18595,2548],{"class":117},[83,18597,18598,18600,18602,18605,18607],{"class":85,"line":1848},[83,18599,3443],{"class":117},[83,18601,18532],{"class":2536},[83,18603,18604],{"class":117},">-0.261799\u003C/",[83,18606,18532],{"class":2536},[83,18608,2548],{"class":117},[83,18610,18611,18613,18615,18618,18620],{"class":85,"line":1863},[83,18612,3443],{"class":117},[83,18614,18546],{"class":2536},[83,18616,18617],{"class":117},">0.261799\u003C/",[83,18619,18546],{"class":2536},[83,18621,2548],{"class":117},[83,18623,18624,18626,18628],{"class":85,"line":1885},[83,18625,3491],{"class":117},[83,18627,18568],{"class":2536},[83,18629,2548],{"class":117},[83,18631,18632,18634,18636],{"class":85,"line":1890},[83,18633,2990],{"class":117},[83,18635,18487],{"class":2536},[83,18637,2548],{"class":117},[83,18639,18640,18642,18644],{"class":85,"line":1901},[83,18641,2754],{"class":117},[83,18643,6131],{"class":2536},[83,18645,2548],{"class":117},[83,18647,18648,18650,18653,18656,18658],{"class":85,"line":1907},[83,18649,2950],{"class":117},[83,18651,18652],{"class":2536},"min",[83,18654,18655],{"class":117},">0.08\u003C/",[83,18657,18652],{"class":2536},[83,18659,2548],{"class":117},[83,18661,18662,18664,18667,18670,18672],{"class":85,"line":1925},[83,18663,2950],{"class":117},[83,18665,18666],{"class":2536},"max",[83,18668,18669],{"class":117},">10.0\u003C/",[83,18671,18666],{"class":2536},[83,18673,2548],{"class":117},[83,18675,18676,18678,18680,18682,18684],{"class":85,"line":1937},[83,18677,2950],{"class":117},[83,18679,18519],{"class":2536},[83,18681,6148],{"class":117},[83,18683,18519],{"class":2536},[83,18685,2548],{"class":117},[83,18687,18688,18690,18692],{"class":85,"line":1955},[83,18689,2990],{"class":117},[83,18691,6131],{"class":2536},[83,18693,2548],{"class":117},[83,18695,18696,18698,18700],{"class":85,"line":1961},[83,18697,2814],{"class":117},[83,18699,18478],{"class":2536},[83,18701,2548],{"class":117},[83,18703,18704,18706,18709,18711,18713],{"class":85,"line":1967},[83,18705,2580],{"class":117},[83,18707,18708],{"class":2536},"visualize",[83,18710,3358],{"class":117},[83,18712,18708],{"class":2536},[83,18714,2548],{"class":117},[83,18716,18717,18719,18722,18725,18727],{"class":85,"line":1972},[83,18718,2580],{"class":117},[83,18720,18721],{"class":2536},"gz_frame_id",[83,18723,18724],{"class":117},">laser\u003C",[83,18726,18721],{"class":2536},[83,18728,2548],{"class":117},[83,18730,18731,18733,18735,18738,18740,18742,18745,18747],{"class":85,"line":1978},[83,18732,2580],{"class":117},[83,18734,3707],{"class":2536},[83,18736,18737],{"class":103}," relative_to",[83,18739,1837],{"class":117},[83,18741,18421],{"class":107},[83,18743,18744],{"class":117},">0 0 0 0 0 0\u003C/",[83,18746,3707],{"class":2536},[83,18748,2548],{"class":117},[83,18750,18751,18753,18755],{"class":85,"line":1989},[83,18752,2651],{"class":117},[83,18754,18430],{"class":2536},[83,18756,2548],{"class":117},[83,18758,18759,18761,18763],{"class":85,"line":2003},[83,18760,2660],{"class":117},[83,18762,15267],{"class":2536},[83,18764,2548],{"class":117},[83,18766,18767],{"class":85,"line":2015},[83,18768,90],{"emptyLinePlaceholder":89},[83,18770,18771,18773,18775,18777,18779,18782],{"class":85,"line":2042},[83,18772,2553],{"class":117},[83,18774,15267],{"class":2536},[83,18776,15270],{"class":103},[83,18778,1837],{"class":117},[83,18780,18781],{"class":107},"\"camera\"",[83,18783,14928],{"class":117},[83,18785,18786,18788,18790,18792,18794,18797,18799,18801,18803],{"class":85,"line":2058},[83,18787,2570],{"class":117},[83,18789,18430],{"class":2536},[83,18791,2540],{"class":103},[83,18793,1837],{"class":117},[83,18795,18796],{"class":107},"\"cam_link\"",[83,18798,3119],{"class":103},[83,18800,1837],{"class":117},[83,18802,18781],{"class":107},[83,18804,2548],{"class":117},[83,18806,18807,18809,18811,18813,18815],{"class":85,"line":2063},[83,18808,2580],{"class":117},[83,18810,16467],{"class":2536},[83,18812,18669],{"class":117},[83,18814,16467],{"class":2536},[83,18816,2548],{"class":117},[83,18818,18819,18821,18824,18826,18828],{"class":85,"line":2068},[83,18820,2580],{"class":117},[83,18822,18823],{"class":2536},"always_on",[83,18825,3358],{"class":117},[83,18827,18823],{"class":2536},[83,18829,2548],{"class":117},[83,18831,18832,18834,18836,18839,18841],{"class":85,"line":2074},[83,18833,2580],{"class":117},[83,18835,18721],{"class":2536},[83,18837,18838],{"class":117},">camera\u003C/",[83,18840,18721],{"class":2536},[83,18842,2548],{"class":117},[83,18844,18845,18847,18849,18851,18853,18855,18857,18859],{"class":85,"line":2084},[83,18846,2580],{"class":117},[83,18848,3707],{"class":2536},[83,18850,18737],{"class":103},[83,18852,1837],{"class":117},[83,18854,18781],{"class":107},[83,18856,18744],{"class":117},[83,18858,3707],{"class":2536},[83,18860,2548],{"class":117},[83,18862,18863,18865,18867,18869,18871],{"class":85,"line":2097},[83,18864,2580],{"class":117},[83,18866,3707],{"class":2536},[83,18868,18744],{"class":117},[83,18870,3707],{"class":2536},[83,18872,2548],{"class":117},[83,18874,18875,18877,18879,18882,18884],{"class":85,"line":2110},[83,18876,2580],{"class":117},[83,18878,16714],{"class":2536},[83,18880,18881],{"class":117},">/image_raw\u003C/",[83,18883,16714],{"class":2536},[83,18885,2548],{"class":117},[83,18887,18888,18890,18893,18895,18897,18900],{"class":85,"line":2125},[83,18889,2580],{"class":117},[83,18891,18892],{"class":2536},"camera",[83,18894,2540],{"class":103},[83,18896,1837],{"class":117},[83,18898,18899],{"class":107},"\"my_camera\"",[83,18901,2548],{"class":117},[83,18903,18904,18906,18909,18912,18914],{"class":85,"line":2133},[83,18905,2754],{"class":117},[83,18907,18908],{"class":2536},"horizontal_fov",[83,18910,18911],{"class":117},">1.3962634\u003C/",[83,18913,18908],{"class":2536},[83,18915,2548],{"class":117},[83,18917,18918,18920,18923],{"class":85,"line":2141},[83,18919,2754],{"class":117},[83,18921,18922],{"class":2536},"image",[83,18924,2548],{"class":117},[83,18926,18927,18930,18933,18936,18938],{"class":85,"line":2147},[83,18928,18929],{"class":117},"           \u003C",[83,18931,18932],{"class":2536},"width",[83,18934,18935],{"class":117},">600\u003C/",[83,18937,18932],{"class":2536},[83,18939,2548],{"class":117},[83,18941,18942,18944,18947,18949,18951],{"class":85,"line":2169},[83,18943,18929],{"class":117},[83,18945,18946],{"class":2536},"height",[83,18948,18935],{"class":117},[83,18950,18946],{"class":2536},[83,18952,2548],{"class":117},[83,18954,18955,18957,18960,18963,18965],{"class":85,"line":2180},[83,18956,18929],{"class":117},[83,18958,18959],{"class":2536},"format",[83,18961,18962],{"class":117},">R8G8B8\u003C/",[83,18964,18959],{"class":2536},[83,18966,2548],{"class":117},[83,18968,18969,18971,18973],{"class":85,"line":2197},[83,18970,2990],{"class":117},[83,18972,18922],{"class":2536},[83,18974,2548],{"class":117},[83,18976,18977,18979,18982],{"class":85,"line":2212},[83,18978,2754],{"class":117},[83,18980,18981],{"class":2536},"clip",[83,18983,2548],{"class":117},[83,18985,18986,18988,18991,18994,18996],{"class":85,"line":2218},[83,18987,2950],{"class":117},[83,18989,18990],{"class":2536},"near",[83,18992,18993],{"class":117},">0.02\u003C/",[83,18995,18990],{"class":2536},[83,18997,2548],{"class":117},[83,18999,19000,19002,19005,19008,19010],{"class":85,"line":2229},[83,19001,2950],{"class":117},[83,19003,19004],{"class":2536},"far",[83,19006,19007],{"class":117},">300\u003C/",[83,19009,19004],{"class":2536},[83,19011,2548],{"class":117},[83,19013,19014,19016,19018],{"class":85,"line":2234},[83,19015,2990],{"class":117},[83,19017,18981],{"class":2536},[83,19019,2548],{"class":117},[83,19021,19022,19024,19026],{"class":85,"line":2239},[83,19023,2814],{"class":117},[83,19025,18892],{"class":2536},[83,19027,2548],{"class":117},[83,19029,19030,19032,19034],{"class":85,"line":2248},[83,19031,2651],{"class":117},[83,19033,18430],{"class":2536},[83,19035,2548],{"class":117},[83,19037,19038,19040,19042],{"class":85,"line":2254},[83,19039,2660],{"class":117},[83,19041,15267],{"class":2536},[83,19043,2548],{"class":117},[83,19045,19046],{"class":85,"line":2274},[83,19047,90],{"emptyLinePlaceholder":89},[83,19049,19050,19052,19054,19056,19058,19060],{"class":85,"line":2287},[83,19051,2553],{"class":117},[83,19053,15267],{"class":2536},[83,19055,15270],{"class":103},[83,19057,1837],{"class":117},[83,19059,18781],{"class":107},[83,19061,2548],{"class":117},[83,19063,19064,19066,19068,19070,19072,19075,19077,19079,19081],{"class":85,"line":2293},[83,19065,2570],{"class":117},[83,19067,18430],{"class":2536},[83,19069,2540],{"class":103},[83,19071,1837],{"class":117},[83,19073,19074],{"class":107},"\"depth_camera\"",[83,19076,3119],{"class":103},[83,19078,1837],{"class":117},[83,19080,19074],{"class":107},[83,19082,2548],{"class":117},[83,19084,19085,19087,19089,19091,19093],{"class":85,"line":2299},[83,19086,2950],{"class":117},[83,19088,16467],{"class":2536},[83,19090,16675],{"class":117},[83,19092,16467],{"class":2536},[83,19094,2548],{"class":117},[83,19096,19097,19099,19101,19104,19106],{"class":85,"line":3797},[83,19098,2950],{"class":117},[83,19100,16714],{"class":2536},[83,19102,19103],{"class":117},">depth_camera\u003C/",[83,19105,16714],{"class":2536},[83,19107,2548],{"class":117},[83,19109,19110,19112,19114],{"class":85,"line":3810},[83,19111,2950],{"class":117},[83,19113,18892],{"class":2536},[83,19115,2548],{"class":117},[83,19117,19118,19120,19122,19125,19127],{"class":85,"line":3824},[83,19119,3443],{"class":117},[83,19121,18908],{"class":2536},[83,19123,19124],{"class":117},">1.05\u003C/",[83,19126,18908],{"class":2536},[83,19128,2548],{"class":117},[83,19130,19131,19133,19135],{"class":85,"line":3837},[83,19132,3443],{"class":117},[83,19134,18922],{"class":2536},[83,19136,2548],{"class":117},[83,19138,19139,19141,19143,19146,19148],{"class":85,"line":3846},[83,19140,3453],{"class":117},[83,19142,18932],{"class":2536},[83,19144,19145],{"class":117},">256\u003C/",[83,19147,18932],{"class":2536},[83,19149,2548],{"class":117},[83,19151,19152,19154,19156,19158,19160],{"class":85,"line":3855},[83,19153,3453],{"class":117},[83,19155,18946],{"class":2536},[83,19157,19145],{"class":117},[83,19159,18946],{"class":2536},[83,19161,2548],{"class":117},[83,19163,19164,19166,19168,19171,19173],{"class":85,"line":3870},[83,19165,3453],{"class":117},[83,19167,18959],{"class":2536},[83,19169,19170],{"class":117},">R_FLOAT32\u003C/",[83,19172,18959],{"class":2536},[83,19174,2548],{"class":117},[83,19176,19177,19179,19181],{"class":85,"line":3879},[83,19178,3482],{"class":117},[83,19180,18922],{"class":2536},[83,19182,2548],{"class":117},[83,19184,19185,19187,19189],{"class":85,"line":3892},[83,19186,3443],{"class":117},[83,19188,18981],{"class":2536},[83,19190,2548],{"class":117},[83,19192,19193,19195,19197,19200,19202],{"class":85,"line":3906},[83,19194,3453],{"class":117},[83,19196,18990],{"class":2536},[83,19198,19199],{"class":117},">0.1\u003C/",[83,19201,18990],{"class":2536},[83,19203,2548],{"class":117},[83,19205,19206,19208,19210,19212,19214],{"class":85,"line":3915},[83,19207,3453],{"class":117},[83,19209,19004],{"class":2536},[83,19211,18669],{"class":117},[83,19213,19004],{"class":2536},[83,19215,2548],{"class":117},[83,19217,19218,19220,19222],{"class":85,"line":3931},[83,19219,3482],{"class":117},[83,19221,18981],{"class":2536},[83,19223,2548],{"class":117},[83,19225,19226,19228,19230],{"class":85,"line":3945},[83,19227,3491],{"class":117},[83,19229,18892],{"class":2536},[83,19231,2548],{"class":117},[83,19233,19234,19236,19238,19240,19242],{"class":85,"line":3961},[83,19235,2950],{"class":117},[83,19237,18823],{"class":2536},[83,19239,3150],{"class":117},[83,19241,18823],{"class":2536},[83,19243,2548],{"class":117},[83,19245,19246,19248,19250,19252,19254],{"class":85,"line":3970},[83,19247,2950],{"class":117},[83,19249,18721],{"class":2536},[83,19251,18838],{"class":117},[83,19253,18721],{"class":2536},[83,19255,2548],{"class":117},[83,19257,19258,19260,19262,19264,19266,19268,19270,19272],{"class":85,"line":3979},[83,19259,2950],{"class":117},[83,19261,3707],{"class":2536},[83,19263,18737],{"class":103},[83,19265,1837],{"class":117},[83,19267,18781],{"class":107},[83,19269,18744],{"class":117},[83,19271,3707],{"class":2536},[83,19273,2548],{"class":117},[83,19275,19276,19278,19280],{"class":85,"line":3993},[83,19277,2814],{"class":117},[83,19279,18430],{"class":2536},[83,19281,2548],{"class":117},[83,19283,19284,19286,19288],{"class":85,"line":4006},[83,19285,2660],{"class":117},[83,19287,15267],{"class":2536},[83,19289,2548],{"class":117},[15,19291,19292],{},"IMU sensor found on the official website",[73,19294,19296],{"className":2524,"code":19295,"language":2526,"meta":78,"style":78},"\n    \u003Cgazebo>\n        \u003Cplugin filename=\"gz-sim-imu-system\"\n                name=\"gz::sim::systems::Imu\">\n        \u003C/plugin>\n    \u003C/gazebo>\n\n    \u003Cgazebo reference=\"base_link\">\n        \u003Csensor name=\"imu_sensor\" type=\"imu\">\n            \u003Calways_on>1\u003C/always_on>\n            \u003Cupdate_rate>30\u003C/update_rate>\n            \u003Cvisualize>true\u003C/visualize>\n            \u003Ctopic>imu\u003C/topic>\n        \u003C/sensor>\n    \u003C/gazebo>\n",[80,19297,19298,19302,19310,19323,19335,19343,19351,19355,19369,19391,19403,19415,19427,19440,19448],{"__ignoreMap":78},[83,19299,19300],{"class":85,"line":86},[83,19301,90],{"emptyLinePlaceholder":89},[83,19303,19304,19306,19308],{"class":85,"line":93},[83,19305,2570],{"class":117},[83,19307,15267],{"class":2536},[83,19309,2548],{"class":117},[83,19311,19312,19314,19316,19318,19320],{"class":85,"line":100},[83,19313,2754],{"class":117},[83,19315,3183],{"class":2536},[83,19317,3193],{"class":103},[83,19319,1837],{"class":117},[83,19321,19322],{"class":107},"\"gz-sim-imu-system\"\n",[83,19324,19325,19328,19330,19333],{"class":85,"line":124},[83,19326,19327],{"class":103},"                name",[83,19329,1837],{"class":117},[83,19331,19332],{"class":107},"\"gz::sim::systems::Imu\"",[83,19334,2548],{"class":117},[83,19336,19337,19339,19341],{"class":85,"line":129},[83,19338,2990],{"class":117},[83,19340,3183],{"class":2536},[83,19342,2548],{"class":117},[83,19344,19345,19347,19349],{"class":85,"line":135},[83,19346,2651],{"class":117},[83,19348,15267],{"class":2536},[83,19350,2548],{"class":117},[83,19352,19353],{"class":85,"line":147},[83,19354,90],{"emptyLinePlaceholder":89},[83,19356,19357,19359,19361,19363,19365,19367],{"class":85,"line":152},[83,19358,2570],{"class":117},[83,19360,15267],{"class":2536},[83,19362,15270],{"class":103},[83,19364,1837],{"class":117},[83,19366,2563],{"class":107},[83,19368,2548],{"class":117},[83,19370,19371,19373,19375,19377,19379,19382,19384,19386,19389],{"class":85,"line":158},[83,19372,2754],{"class":117},[83,19374,18430],{"class":2536},[83,19376,2540],{"class":103},[83,19378,1837],{"class":117},[83,19380,19381],{"class":107},"\"imu_sensor\"",[83,19383,3119],{"class":103},[83,19385,1837],{"class":117},[83,19387,19388],{"class":107},"\"imu\"",[83,19390,2548],{"class":117},[83,19392,19393,19395,19397,19399,19401],{"class":85,"line":405},[83,19394,3443],{"class":117},[83,19396,18823],{"class":2536},[83,19398,3150],{"class":117},[83,19400,18823],{"class":2536},[83,19402,2548],{"class":117},[83,19404,19405,19407,19409,19411,19413],{"class":85,"line":411},[83,19406,3443],{"class":117},[83,19408,16467],{"class":2536},[83,19410,18467],{"class":117},[83,19412,16467],{"class":2536},[83,19414,2548],{"class":117},[83,19416,19417,19419,19421,19423,19425],{"class":85,"line":417},[83,19418,3443],{"class":117},[83,19420,18708],{"class":2536},[83,19422,3358],{"class":117},[83,19424,18708],{"class":2536},[83,19426,2548],{"class":117},[83,19428,19429,19431,19433,19436,19438],{"class":85,"line":423},[83,19430,3443],{"class":117},[83,19432,16714],{"class":2536},[83,19434,19435],{"class":117},">imu\u003C/",[83,19437,16714],{"class":2536},[83,19439,2548],{"class":117},[83,19441,19442,19444,19446],{"class":85,"line":1814},[83,19443,2990],{"class":117},[83,19445,18430],{"class":2536},[83,19447,2548],{"class":117},[83,19449,19450,19452,19454],{"class":85,"line":1826},[83,19451,2651],{"class":117},[83,19453,15267],{"class":2536},[83,19455,2548],{"class":117},[15,19457,19458,19459,19462],{},"You can use ",[80,19460,19461],{},"ign topic -e -t /imu"," to test whether Gazebo has published a topic, and then use gazebo_bridge to pass the topic to ROS2.",[15,19464,19465],{},"By default, rviz2 does not include a plugin for displaying IMU messages. You need to install the relevant plugin yourself. The specific installation command is as follows:",[73,19467,19471],{"className":19468,"code":19469,"language":19470,"meta":78,"style":78},"language-cpp shiki shiki-themes github-light github-dark","sudo apt install ros-${ROS_DISTRO}-imu-tools\n\nsudo apt install ros-jazzy-imu-tools\n","cpp",[80,19472,19473,19493,19497],{"__ignoreMap":78},[83,19474,19475,19478,19481,19483,19485,19488,19490],{"class":85,"line":86},[83,19476,19477],{"class":117},"sudo apt install ros",[83,19479,19480],{"class":742},"-",[83,19482,118],{"class":117},[83,19484,19480],{"class":742},[83,19486,19487],{"class":117},"imu",[83,19489,19480],{"class":742},[83,19491,19492],{"class":117},"tools\n",[83,19494,19495],{"class":85,"line":93},[83,19496,90],{"emptyLinePlaceholder":89},[83,19498,19499,19501,19503,19506,19508,19510,19512],{"class":85,"line":100},[83,19500,19477],{"class":117},[83,19502,19480],{"class":742},[83,19504,19505],{"class":117},"jazzy",[83,19507,19480],{"class":742},[83,19509,19487],{"class":117},[83,19511,19480],{"class":742},[83,19513,19492],{"class":117},[15,19515,19516,19517,19520,19521,19524],{},"The model automatically generated by SolidWorks may have flipped the ",[80,19518,19519],{},"laser_joint",". Please correct it so that ",[80,19522,19523],{},"rivz2"," can have the laser. Then, modify the visualization model to make it display properly, and do not assign collision properties to it, as that might block the laser.",[15,19526,19527],{},[171,19528],{"alt":78,"src":19529},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1738.webp",[15,19531,17624,19532,17628],{},[80,19533,17627],{},[73,19535,19537],{"className":1687,"code":19536,"language":1689,"meta":78,"style":78},"import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory(\"demo_gazebo_sim\")\n    mycar_desc_pkg = get_package_share_directory(\"mycar_description\")\n    pkg_ros_gz_sim = get_package_share_directory(\"ros_gz_sim\")\n    world_file = os.path.join(this_pkg,\"world\",\"house.sdf\")\n\n    gz_sim = IncludeLaunchDescription(\n    PythonLaunchDescriptionSource(\n        os.path.join(pkg_ros_gz_sim, \"launch\", \"gz_sim.launch.py\")),\n        launch_arguments={\n        \"gz_args\": \"-r \" + world_file\n        }.items(),\n    )\n    mycar_desc = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(mycar_desc_pkg,\"launch\",\"mycar_desc_sim.launch.py\")\n        )\n    )\n    spawn = Node(package=\"ros_gz_sim\", executable=\"create\",\n        arguments=[\n            \"-name\", \"mycar\",\n            \"-x\", \"-4\",\n            \"-z\", \"0.01\", #设置为0,可能会陷进地里\n            \"-y\", \"0\",\n            \"-R\", \"0\",\n            \"-P\", \"0\",\n            \"-Y\", \"1.57\",   #逆时针旋转90度\n            \"-topic\", \"/robot_description\"],\n        output=\"screen\")\n\n    # Bridge\n    bridge = Node(\n        package=\"ros_gz_bridge\",\n        executable=\"parameter_bridge\",\n        arguments=[\"/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist\",\n            \"/model/mycar/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry\",\n            \"/model/mycar/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V\",\n            \"/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock\",\n            \"/world/empty/model/mycar/joint_state@sensor_msgs/msg/JointState[gz.msgs.Model\",\n            \"/scan@sensor_msgs/msg/LaserScan@gz.msgs.LaserScan\",\n            \"/scan/points@sensor_msgs/msg/PointCloud2@gz.msgs.PointCloudPacked\",\n            \"/image_raw@sensor_msgs/msg/Image@gz.msgs.Image\",\n            \"/camera_info@sensor_msgs/msg/CameraInfo@gz.msgs.CameraInfo\",\n            \"/depth_camera@sensor_msgs/msg/Image@gz.msgs.Image\",\n            \"/imu@sensor_msgs/msg/Imu[gz.msgs.IMU\",\n            \"/imu/angular_velocity@geometry_msgs/msg/Vector3[gz.msgs.Vector3d\"\n        ],\n        parameters=[{\"qos_overrides./model/mycar.subscriber.reliability\": \"reliable\"}],\n        remappings=[\n            (\"/model/mycar/tf\", \"/tf\"),\n            (\"/world/empty/model/mycar/joint_state\",\"joint_states\"),\n            (\"/model/mycar/odometry\",\"/odom\")\n        ],\n        output=\"screen\"\n    )\n\n    return LaunchDescription([\n        gz_sim,\n        spawn,\n        mycar_desc,\n        bridge\n    ])\n",[80,19538,19539,19545,19549,19559,19563,19573,19583,19593,19603,19607,19615,19619,19631,19643,19655,19671,19675,19683,19688,19701,19709,19722,19726,19730,19738,19742,19754,19758,19762,19786,19794,19805,19816,19829,19840,19851,19862,19875,19886,19896,19900,19904,19912,19922,19932,19944,19951,19958,19965,19972,19979,19986,19993,20000,20007,20014,20019,20024,20040,20048,20061,20073,20085,20089,20097,20101,20105,20111,20115,20119,20123,20127],{"__ignoreMap":78},[83,19540,19541,19543],{"class":85,"line":86},[83,19542,1696],{"class":742},[83,19544,1699],{"class":117},[83,19546,19547],{"class":85,"line":93},[83,19548,90],{"emptyLinePlaceholder":89},[83,19550,19551,19553,19555,19557],{"class":85,"line":100},[83,19552,1708],{"class":742},[83,19554,1711],{"class":117},[83,19556,1696],{"class":742},[83,19558,1716],{"class":117},[83,19560,19561],{"class":85,"line":124},[83,19562,90],{"emptyLinePlaceholder":89},[83,19564,19565,19567,19569,19571],{"class":85,"line":129},[83,19566,1708],{"class":742},[83,19568,1727],{"class":117},[83,19570,1696],{"class":742},[83,19572,1732],{"class":117},[83,19574,19575,19577,19579,19581],{"class":85,"line":135},[83,19576,1708],{"class":742},[83,19578,1739],{"class":117},[83,19580,1696],{"class":742},[83,19582,1755],{"class":117},[83,19584,19585,19587,19589,19591],{"class":85,"line":147},[83,19586,1708],{"class":742},[83,19588,1774],{"class":117},[83,19590,1696],{"class":742},[83,19592,1779],{"class":117},[83,19594,19595,19597,19599,19601],{"class":85,"line":152},[83,19596,1708],{"class":742},[83,19598,1802],{"class":117},[83,19600,1696],{"class":742},[83,19602,1807],{"class":117},[83,19604,19605],{"class":85,"line":158},[83,19606,90],{"emptyLinePlaceholder":89},[83,19608,19609,19611,19613],{"class":85,"line":405},[83,19610,1817],{"class":742},[83,19612,1820],{"class":103},[83,19614,1823],{"class":117},[83,19616,19617],{"class":85,"line":411},[83,19618,90],{"emptyLinePlaceholder":89},[83,19620,19621,19623,19625,19627,19629],{"class":85,"line":417},[83,19622,1834],{"class":117},[83,19624,1837],{"class":742},[83,19626,1840],{"class":117},[83,19628,15923],{"class":107},[83,19630,1587],{"class":117},[83,19632,19633,19635,19637,19639,19641],{"class":85,"line":423},[83,19634,15930],{"class":117},[83,19636,1837],{"class":742},[83,19638,1840],{"class":117},[83,19640,15661],{"class":107},[83,19642,1587],{"class":117},[83,19644,19645,19647,19649,19651,19653],{"class":85,"line":1814},[83,19646,1851],{"class":117},[83,19648,1837],{"class":742},[83,19650,1840],{"class":117},[83,19652,15949],{"class":107},[83,19654,1587],{"class":117},[83,19656,19657,19659,19661,19663,19665,19667,19669],{"class":85,"line":1826},[83,19658,1866],{"class":117},[83,19660,1837],{"class":742},[83,19662,1871],{"class":117},[83,19664,9372],{"class":107},[83,19666,1877],{"class":117},[83,19668,9377],{"class":107},[83,19670,1587],{"class":117},[83,19672,19673],{"class":85,"line":1831},[83,19674,90],{"emptyLinePlaceholder":89},[83,19676,19677,19679,19681],{"class":85,"line":1848},[83,19678,1893],{"class":117},[83,19680,1837],{"class":742},[83,19682,1898],{"class":117},[83,19684,19685],{"class":85,"line":1863},[83,19686,19687],{"class":117},"    PythonLaunchDescriptionSource(\n",[83,19689,19690,19693,19695,19697,19699],{"class":85,"line":1885},[83,19691,19692],{"class":117},"        os.path.join(pkg_ros_gz_sim, ",[83,19694,15990],{"class":107},[83,19696,1916],{"class":117},[83,19698,15995],{"class":107},[83,19700,1922],{"class":117},[83,19702,19703,19705,19707],{"class":85,"line":1890},[83,19704,1929],{"class":1928},[83,19706,1837],{"class":742},[83,19708,1934],{"class":117},[83,19710,19711,19714,19716,19718,19720],{"class":85,"line":1901},[83,19712,19713],{"class":107},"        \"gz_args\"",[83,19715,1943],{"class":117},[83,19717,16015],{"class":107},[83,19719,1949],{"class":742},[83,19721,1952],{"class":117},[83,19723,19724],{"class":85,"line":1907},[83,19725,1958],{"class":117},[83,19727,19728],{"class":85,"line":1925},[83,19729,1964],{"class":117},[83,19731,19732,19734,19736],{"class":85,"line":1937},[83,19733,16032],{"class":117},[83,19735,1837],{"class":742},[83,19737,1898],{"class":117},[83,19739,19740],{"class":85,"line":1955},[83,19741,1904],{"class":117},[83,19743,19744,19746,19748,19750,19752],{"class":85,"line":1961},[83,19745,16045],{"class":117},[83,19747,15990],{"class":107},[83,19749,1877],{"class":117},[83,19751,16052],{"class":107},[83,19753,1587],{"class":117},[83,19755,19756],{"class":85,"line":1967},[83,19757,16059],{"class":117},[83,19759,19760],{"class":85,"line":1972},[83,19761,1964],{"class":117},[83,19763,19764,19766,19768,19770,19772,19774,19776,19778,19780,19782,19784],{"class":85,"line":1978},[83,19765,16068],{"class":117},[83,19767,1837],{"class":742},[83,19769,16073],{"class":117},[83,19771,16076],{"class":1928},[83,19773,1837],{"class":742},[83,19775,15949],{"class":107},[83,19777,1916],{"class":117},[83,19779,16085],{"class":1928},[83,19781,1837],{"class":742},[83,19783,16090],{"class":107},[83,19785,2000],{"class":117},[83,19787,19788,19790,19792],{"class":85,"line":1989},[83,19789,2113],{"class":1928},[83,19791,1837],{"class":742},[83,19793,2177],{"class":117},[83,19795,19796,19799,19801,19803],{"class":85,"line":2003},[83,19797,19798],{"class":107},"            \"-name\"",[83,19800,1916],{"class":117},[83,19802,16111],{"class":107},[83,19804,2000],{"class":117},[83,19806,19807,19810,19812,19814],{"class":85,"line":2015},[83,19808,19809],{"class":107},"            \"-x\"",[83,19811,1916],{"class":117},[83,19813,17904],{"class":107},[83,19815,2000],{"class":117},[83,19817,19818,19821,19823,19825,19827],{"class":85,"line":2042},[83,19819,19820],{"class":107},"            \"-z\"",[83,19822,1916],{"class":117},[83,19824,16135],{"class":107},[83,19826,1916],{"class":117},[83,19828,16140],{"class":96},[83,19830,19831,19834,19836,19838],{"class":85,"line":2058},[83,19832,19833],{"class":107},"            \"-y\"",[83,19835,1916],{"class":117},[83,19837,16123],{"class":107},[83,19839,2000],{"class":117},[83,19841,19842,19845,19847,19849],{"class":85,"line":2063},[83,19843,19844],{"class":107},"            \"-R\"",[83,19846,1916],{"class":117},[83,19848,16123],{"class":107},[83,19850,2000],{"class":117},[83,19852,19853,19856,19858,19860],{"class":85,"line":2068},[83,19854,19855],{"class":107},"            \"-P\"",[83,19857,1916],{"class":117},[83,19859,16123],{"class":107},[83,19861,2000],{"class":117},[83,19863,19864,19867,19869,19871,19873],{"class":85,"line":2074},[83,19865,19866],{"class":107},"            \"-Y\"",[83,19868,1916],{"class":117},[83,19870,16183],{"class":107},[83,19872,17959],{"class":117},[83,19874,17962],{"class":96},[83,19876,19877,19880,19882,19884],{"class":85,"line":2084},[83,19878,19879],{"class":107},"            \"-topic\"",[83,19881,1916],{"class":117},[83,19883,16198],{"class":107},[83,19885,16201],{"class":117},[83,19887,19888,19890,19892,19894],{"class":85,"line":2097},[83,19889,2221],{"class":1928},[83,19891,1837],{"class":742},[83,19893,16211],{"class":107},[83,19895,1587],{"class":117},[83,19897,19898],{"class":85,"line":2110},[83,19899,90],{"emptyLinePlaceholder":89},[83,19901,19902],{"class":85,"line":2125},[83,19903,2071],{"class":96},[83,19905,19906,19908,19910],{"class":85,"line":2133},[83,19907,2077],{"class":117},[83,19909,1837],{"class":742},[83,19911,1986],{"class":117},[83,19913,19914,19916,19918,19920],{"class":85,"line":2141},[83,19915,2087],{"class":1928},[83,19917,1837],{"class":742},[83,19919,18007],{"class":107},[83,19921,2000],{"class":117},[83,19923,19924,19926,19928,19930],{"class":85,"line":2147},[83,19925,2100],{"class":1928},[83,19927,1837],{"class":742},[83,19929,18018],{"class":107},[83,19931,2000],{"class":117},[83,19933,19934,19936,19938,19940,19942],{"class":85,"line":2169},[83,19935,2113],{"class":1928},[83,19937,1837],{"class":742},[83,19939,780],{"class":117},[83,19941,18031],{"class":107},[83,19943,2000],{"class":117},[83,19945,19946,19949],{"class":85,"line":2180},[83,19947,19948],{"class":107},"            \"/model/mycar/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry\"",[83,19950,2000],{"class":117},[83,19952,19953,19956],{"class":85,"line":2197},[83,19954,19955],{"class":107},"            \"/model/mycar/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V\"",[83,19957,2000],{"class":117},[83,19959,19960,19963],{"class":85,"line":2212},[83,19961,19962],{"class":107},"            \"/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock\"",[83,19964,2000],{"class":117},[83,19966,19967,19970],{"class":85,"line":2218},[83,19968,19969],{"class":107},"            \"/world/empty/model/mycar/joint_state@sensor_msgs/msg/JointState[gz.msgs.Model\"",[83,19971,2000],{"class":117},[83,19973,19974,19977],{"class":85,"line":2229},[83,19975,19976],{"class":107},"            \"/scan@sensor_msgs/msg/LaserScan@gz.msgs.LaserScan\"",[83,19978,2000],{"class":117},[83,19980,19981,19984],{"class":85,"line":2234},[83,19982,19983],{"class":107},"            \"/scan/points@sensor_msgs/msg/PointCloud2@gz.msgs.PointCloudPacked\"",[83,19985,2000],{"class":117},[83,19987,19988,19991],{"class":85,"line":2239},[83,19989,19990],{"class":107},"            \"/image_raw@sensor_msgs/msg/Image@gz.msgs.Image\"",[83,19992,2000],{"class":117},[83,19994,19995,19998],{"class":85,"line":2248},[83,19996,19997],{"class":107},"            \"/camera_info@sensor_msgs/msg/CameraInfo@gz.msgs.CameraInfo\"",[83,19999,2000],{"class":117},[83,20001,20002,20005],{"class":85,"line":2254},[83,20003,20004],{"class":107},"            \"/depth_camera@sensor_msgs/msg/Image@gz.msgs.Image\"",[83,20006,2000],{"class":117},[83,20008,20009,20012],{"class":85,"line":2274},[83,20010,20011],{"class":107},"            \"/imu@sensor_msgs/msg/Imu[gz.msgs.IMU\"",[83,20013,2000],{"class":117},[83,20015,20016],{"class":85,"line":2287},[83,20017,20018],{"class":107},"            \"/imu/angular_velocity@geometry_msgs/msg/Vector3[gz.msgs.Vector3d\"\n",[83,20020,20021],{"class":85,"line":2293},[83,20022,20023],{"class":117},"        ],\n",[83,20025,20026,20028,20030,20032,20034,20036,20038],{"class":85,"line":2299},[83,20027,2150],{"class":1928},[83,20029,1837],{"class":742},[83,20031,2155],{"class":117},[83,20033,18076],{"class":107},[83,20035,1943],{"class":117},[83,20037,18081],{"class":107},[83,20039,2166],{"class":117},[83,20041,20042,20044,20046],{"class":85,"line":3797},[83,20043,2172],{"class":1928},[83,20045,1837],{"class":742},[83,20047,2177],{"class":117},[83,20049,20050,20053,20055,20057,20059],{"class":85,"line":3810},[83,20051,20052],{"class":117},"            (",[83,20054,18098],{"class":107},[83,20056,1916],{"class":117},[83,20058,18103],{"class":107},[83,20060,2194],{"class":117},[83,20062,20063,20065,20067,20069,20071],{"class":85,"line":3824},[83,20064,20052],{"class":117},[83,20066,18112],{"class":107},[83,20068,1877],{"class":117},[83,20070,18117],{"class":107},[83,20072,2194],{"class":117},[83,20074,20075,20077,20079,20081,20083],{"class":85,"line":3837},[83,20076,20052],{"class":117},[83,20078,18126],{"class":107},[83,20080,1877],{"class":117},[83,20082,18131],{"class":107},[83,20084,1587],{"class":117},[83,20086,20087],{"class":85,"line":3846},[83,20088,20023],{"class":117},[83,20090,20091,20093,20095],{"class":85,"line":3855},[83,20092,2221],{"class":1928},[83,20094,1837],{"class":742},[83,20096,18146],{"class":107},[83,20098,20099],{"class":85,"line":3870},[83,20100,1964],{"class":117},[83,20102,20103],{"class":85,"line":3879},[83,20104,90],{"emptyLinePlaceholder":89},[83,20106,20107,20109],{"class":85,"line":3892},[83,20108,2242],{"class":742},[83,20110,2245],{"class":117},[83,20112,20113],{"class":85,"line":3906},[83,20114,2251],{"class":117},[83,20116,20117],{"class":85,"line":3915},[83,20118,16232],{"class":117},[83,20120,20121],{"class":85,"line":3931},[83,20122,16237],{"class":117},[83,20124,20125],{"class":85,"line":3945},[83,20126,18177],{"class":117},[83,20128,20129],{"class":85,"line":3961},[83,20130,2302],{"class":117},[15,20132,20133],{},[19,20134,2315],{},[15,20136,2318],{},[73,20138,20139],{"className":75,"code":16250,"language":77,"meta":78,"style":78},[80,20140,20141],{"__ignoreMap":78},[83,20142,20143,20145,20147,20149,20151],{"class":85,"line":86},[83,20144,2328],{"class":103},[83,20146,2331],{"class":107},[83,20148,16261],{"class":547},[83,20150,13421],{"class":107},[83,20152,1553],{"class":107},[15,20154,20155],{},[19,20156,2346],{},[15,20158,2349],{},[73,20160,20161],{"className":75,"code":18212,"language":77,"meta":78,"style":78},[80,20162,20163,20169],{"__ignoreMap":78},[83,20164,20165,20167],{"class":85,"line":86},[83,20166,2359],{"class":547},[83,20168,2362],{"class":107},[83,20170,20171,20173,20175,20177],{"class":85,"line":93},[83,20172,234],{"class":103},[83,20174,237],{"class":107},[83,20176,2371],{"class":107},[83,20178,16298],{"class":107},[15,20180,20181,20182,20184,20185,20187,20188,2359],{},"Here ",[80,20183,18721],{}," might trigger a false alarm from the sdf1.10 specification, but you can ignore this warning. In fact, this version of Gazebo reads the custom tag ",[80,20186,18721],{},".\nOn sdf1.12, it appears to have been changed to ",[80,20189,16686],{},[15,20191,19458,20192,20195,20196,20199,20200,2359],{},[80,20193,20194],{},"ros2 topic echo /scan --once|grep frame_id","来查看scan的frame_id是否被修改成功了，修改成功会变成",[80,20197,20198],{},"laser","，否则会变成gazebo默认的",[80,20201,20202],{},"mycar/base_footprint/gpu_lidar",[15,20204,20205,20206],{},"Problem Solving Reference: ",[24,20207,20208],{"href":20208,"rel":20209},"https://github.com/gazebosim/gz-sensors/issues/306",[28],[15,20211,18233],{},[15,20213,20214],{},"You can also launch rviz2 to view the various data published by the robot. In the terminal, navigate to the current workspace and execute the following command to run the launch file:",[73,20216,20217],{"className":75,"code":18256,"language":77,"meta":78,"style":78},[80,20218,20219,20225],{"__ignoreMap":78},[83,20220,20221,20223],{"class":85,"line":86},[83,20222,2359],{"class":547},[83,20224,2362],{"class":107},[83,20226,20227],{"class":85,"line":93},[83,20228,18269],{"class":103},[15,20230,20231],{},[171,20232],{"alt":78,"src":20233},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1739.webp",[15,20235,20236],{},[171,20237],{"alt":78,"src":20238},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1740.webp",[15,20240,20241],{},"(Reproduce everything above to proceed to the next chapter navigation. The next chapter navigation is still based on simulation.)",[20243,20244,20245],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}",{"title":78,"searchDepth":93,"depth":93,"links":20247},[20248],{"id":12,"depth":100,"text":13},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","11.3",11030000,"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/ch11-3-GazeboSim",false,null,"en-US","en-us",{},{"title":5,"description":78},"/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-GazeboSim","grcYKz90yC-l12n7xQ8zistc90tkNNe3xnBapNOCtvQ",[20269,20275,20281,20287,20293,20294,20300,20306,20312,20318,20324,20330,20336,20342,20348,20354,20360,20366,20371,20377,20382,20388,20394,20400,20406,20412,20418,20424,20430,20436,20442,20448,20454,20460,20466,20472,20478,20484,20490,20496,20502,20508,20514,20520,20526,20532,20538,20544,20550,20556,20562,20568,20574,20580,20586,20592,20598,20604,20610,20616],{"path":20270,"stem":20271,"title":20272,"date":20252,"chapter":20273,"chapterSort":20274,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20276,"stem":20277,"title":20278,"date":20252,"chapter":20279,"chapterSort":20280,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20282,"stem":20283,"title":20284,"date":20252,"chapter":20285,"chapterSort":20286,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20288,"stem":20289,"title":20290,"date":20252,"chapter":20291,"chapterSort":20292,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20249,"stem":20266,"title":5,"date":20252,"chapter":20250,"chapterSort":20251,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},{"path":20295,"stem":20296,"title":20297,"date":20252,"chapter":20298,"chapterSort":20299,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20301,"stem":20302,"title":20303,"date":20252,"chapter":20304,"chapterSort":20305,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20307,"stem":20308,"title":20309,"date":20252,"chapter":20310,"chapterSort":20311,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20313,"stem":20314,"title":20315,"date":20252,"chapter":20316,"chapterSort":20317,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20319,"stem":20320,"title":20321,"date":20252,"chapter":20322,"chapterSort":20323,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20325,"stem":20326,"title":20327,"date":20252,"chapter":20328,"chapterSort":20329,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20331,"stem":20332,"title":20333,"date":20252,"chapter":20334,"chapterSort":20335,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20337,"stem":20338,"title":20339,"date":20252,"chapter":20340,"chapterSort":20341,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20343,"stem":20344,"title":20345,"date":20252,"chapter":20346,"chapterSort":20347,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20349,"stem":20350,"title":20351,"date":20252,"chapter":20352,"chapterSort":20353,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20355,"stem":20356,"title":20357,"date":20252,"chapter":20358,"chapterSort":20359,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20361,"stem":20362,"title":20363,"date":20252,"chapter":20364,"chapterSort":20365,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20367,"stem":20368,"title":20333,"date":20252,"chapter":20369,"chapterSort":20370,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20372,"stem":20373,"title":20374,"date":20252,"chapter":20375,"chapterSort":20376,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20378,"stem":20379,"title":20333,"date":20252,"chapter":20380,"chapterSort":20381,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20383,"stem":20384,"title":20385,"date":20252,"chapter":20386,"chapterSort":20387,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20389,"stem":20390,"title":20391,"date":20252,"chapter":20392,"chapterSort":20393,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20395,"stem":20396,"title":20397,"date":20252,"chapter":20398,"chapterSort":20399,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20401,"stem":20402,"title":20403,"date":20252,"chapter":20404,"chapterSort":20405,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20407,"stem":20408,"title":20409,"date":20252,"chapter":20410,"chapterSort":20411,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20413,"stem":20414,"title":20415,"date":20252,"chapter":20416,"chapterSort":20417,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20419,"stem":20420,"title":20421,"date":20252,"chapter":20422,"chapterSort":20423,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20425,"stem":20426,"title":20427,"date":20252,"chapter":20428,"chapterSort":20429,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20431,"stem":20432,"title":20433,"date":20252,"chapter":20434,"chapterSort":20435,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20437,"stem":20438,"title":20439,"date":20252,"chapter":20440,"chapterSort":20441,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20443,"stem":20444,"title":20445,"date":20252,"chapter":20446,"chapterSort":20447,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20449,"stem":20450,"title":20451,"date":20252,"chapter":20452,"chapterSort":20453,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20455,"stem":20456,"title":20457,"date":20252,"chapter":20458,"chapterSort":20459,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20461,"stem":20462,"title":20463,"date":20252,"chapter":20464,"chapterSort":20465,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20467,"stem":20468,"title":20469,"date":20252,"chapter":20470,"chapterSort":20471,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20473,"stem":20474,"title":20475,"date":20252,"chapter":20476,"chapterSort":20477,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20479,"stem":20480,"title":20481,"date":20252,"chapter":20482,"chapterSort":20483,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20485,"stem":20486,"title":20487,"date":20252,"chapter":20488,"chapterSort":20489,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20491,"stem":20492,"title":20493,"date":20252,"chapter":20494,"chapterSort":20495,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20497,"stem":20498,"title":20499,"date":20252,"chapter":20500,"chapterSort":20501,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20503,"stem":20504,"title":20505,"date":20252,"chapter":20506,"chapterSort":20507,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20509,"stem":20510,"title":20511,"date":20252,"chapter":20512,"chapterSort":20513,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20515,"stem":20516,"title":20517,"date":20252,"chapter":20518,"chapterSort":20519,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20521,"stem":20522,"title":20523,"date":20252,"chapter":20524,"chapterSort":20525,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20527,"stem":20528,"title":20529,"date":20252,"chapter":20530,"chapterSort":20531,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20533,"stem":20534,"title":20535,"date":20252,"chapter":20536,"chapterSort":20537,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20539,"stem":20540,"title":20541,"date":20252,"chapter":20542,"chapterSort":20543,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20545,"stem":20546,"title":20547,"date":20252,"chapter":20548,"chapterSort":20549,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/en-us/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(实体篇)","Robot Navigation with Navigation2 (Physical Robot)","17",17000000,{"path":20551,"stem":20552,"title":20553,"date":20252,"chapter":20554,"chapterSort":20555,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20557,"stem":20558,"title":20559,"date":20252,"chapter":20560,"chapterSort":20561,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20563,"stem":20564,"title":20565,"date":20252,"chapter":20566,"chapterSort":20567,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20569,"stem":20570,"title":20571,"date":20252,"chapter":20572,"chapterSort":20573,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20575,"stem":20576,"title":20577,"date":20252,"chapter":20578,"chapterSort":20579,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20581,"stem":20582,"title":20583,"date":20252,"chapter":20584,"chapterSort":20585,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20587,"stem":20588,"title":20589,"date":20252,"chapter":20590,"chapterSort":20591,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20593,"stem":20594,"title":20595,"date":20252,"chapter":20596,"chapterSort":20597,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20599,"stem":20600,"title":20601,"date":20252,"chapter":20602,"chapterSort":20603,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20605,"stem":20606,"title":20607,"date":20252,"chapter":20608,"chapterSort":20609,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20611,"stem":20612,"title":20613,"date":20252,"chapter":20614,"chapterSort":20615,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":20259},"/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":20255,"stem":20617,"title":20618,"date":20252,"chapter":20260,"chapterSort":20619,"docKey":20254,"docRoot":20255,"docTitle":20256,"isWikiDoc":89,"isWikiIndex":89},"_i18n/en-us/wiki/2023-12-30-ros2-tutorial/index","ROS2 Robot Operating System Tutorial",0,{"variants":20621},[20622,20623,20626,20629,20632],{"path":20249,"localeSlug":20262,"i18nKey":20258},{"path":20624,"localeSlug":20625,"i18nKey":20258},"/zh-hant/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","zh-hant",{"path":20627,"localeSlug":20628,"i18nKey":20258},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","zh-hk",{"path":20630,"localeSlug":20631,"i18nKey":20258},"/zh-tw/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","zh-tw",{"path":20633,"localeSlug":20634,"i18nKey":20258},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","zh-cn",[20249,20265,20624,20265,20627,20265,20630,20265,20633,20265],1780671800043]