[{"data":1,"prerenderedAt":18084},["ShallowReactive",2],{"wiki-page-/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo":3,"wiki-doc-items-/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo":17716,"language-switcher-data-/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo":18068,"wiki-i18n-paths-/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo":18083},{"id":4,"title":5,"body":6,"canonicalPath":17697,"chapter":17698,"chapterSort":17699,"date":17700,"description":106,"docI18nKey":17701,"docKey":17702,"docRoot":17703,"docTitle":17704,"extension":17705,"i18nKey":17706,"isBlogPost":17707,"isWikiDoc":117,"isWikiIndex":17707,"layout":17708,"legacyPath":17708,"locale":17709,"localeSlug":17710,"meta":17711,"navigation":117,"path":17697,"seo":17712,"sourcePath":17713,"sourceStem":17706,"stem":17714,"wikiDepth":114,"__hash__":17715},"content/_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-IgnitionGazebo.md","Ignition Gazebo（Gazebo Fortress）",{"type":7,"value":8,"toc":17694},"minimark",[9,14,18,26,31,34,37,40,43,46,61,64,70,73,79,85,92,97,100,196,202,207,210,213,250,253,272,279,284,289,292,297,300,303,308,315,321,326,331,336,341,346,351,356,364,369,455,460,465,470,475,480,485,488,493,507,512,515,518,523,528,532,535,546,549,554,561,606,609,631,634,639,644,651,672,686,691,697,721,724,729,732,735,740,750,775,786,789,796,816,819,822,831,834,840,843,855,858,870,873,885,888,912,919,924,927,1378,1381,1406,1410,1417,1422,1425,1443,1448,1453,1456,1477,1492,1497,1502,1505,1510,1515,1532,1535,1540,1543,1564,1569,1574,1581,2199,2202,2207,2212,2215,2233,2238,2243,2246,2271,2274,2290,2305,2310,2317,2320,2325,2372,2375,2380,2400,2405,2408,2560,2563,2749,2752,2913,2918,2925,2928,2931,2944,2949,2954,6165,6170,6251,6257,9144,9149,9154,9342,9347,9349,9363,9368,9370,9392,9395,9398,9403,9409,9412,9417,9420,9426,9429,9436,9441,9448,9496,9502,9507,9536,9541,9544,9550,12918,12922,12924,12938,12942,12944,12964,12966,12971,12975,12978,12981,12988,12993,13022,13027,13030,13322,13325,13330,13333,13710,13714,13716,13735,13739,13742,13784,13786,13791,13799,13802,13808,13814,13819,13825,13828,13834,13921,13924,13927,14045,14050,14064,14397,14405,14738,14741,15194,15199,15205,15725,15729,15731,15747,15751,15753,15787,15790,15804,15807,15810,15826,15829,15837,15842,15846,15849,15854,15863,15937,15940,15945,15950,15953,16803,16806,16969,16976,16979,17006,17017,17022,17026,17588,17592,17594,17610,17614,17616,17650,17652,17655,17669,17674,17679,17681,17687,17690],[10,11,13],"h3",{"id":12},"ignition-gazebo-gazebo-fortress-based-on-ros2-humble","Ignition Gazebo (Gazebo Fortress, based on ROS2 Humble)",[15,16,17],"p",{},"** It is recommended to use ROS2 Jazzy. This ROS2 Humble Gazebo version feels like a transitional release, and the code may conflict with future versions! **\n(This version of the tutorial is no longer being updated. Future updates will focus on ROS2 Jazzy and later versions, as well as Gazebo Harmonic and subsequent releases.)",[15,19,20,21],{},"See the ",[22,23,25],"nuxt-link",{"to":24},"/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim#Gz Sim（Gazebo Harmonic 及之后的版本（ROS2 Jazzy及之后的版本））","Gz Sim tutorial",[27,28,30],"h4",{"id":29},"ign-gazebo-installation-and-running","Ign Gazebo Installation and Running",[15,32,33],{},"Gazebo changes significantly with each version.",[15,35,36],{},"In particular, the older version of Gazebo (black interface) used with ROS1 and the newer version of Gazebo (white interface) used with ROS2.",[15,38,39],{},"ROS2's different versions of Gazebo also vary significantly. For example, there are many notable differences in tags between Humble, Jazzy, and versions after Jazzy.",[15,41,42],{},"This tutorial uses the Humble version (i.e., Ignition Gazebo).",[15,44,45],{},"Of course, to ensure compatibility with future versions of Gazebo, there will also be a tutorial below on how to migrate from Ign Gazebo to Gazebo Sim (the very latest version of Gazebo).",[15,47,48,49,53,54,60],{},"Ignition Gazebo is a brand-new robot simulation tool used in ROS2, ",[50,51,52],"strong",{},"and it is an upgraded version of Gazebo",". In Humble, it is still called Ignition Gazebo (also known as Gazebo Fortress), while in Jazzy it is called Gazebo Harmonic (with the \"Ignition\" name removed) (",[55,56,57],"a",{"href":57,"rel":58},"https://community.gazebosim.org/t/a-new-era-for-gazebo/1356",[59],"nofollow","). It offers better performance and usability, and provides a powerful simulation environment through tight integration with ROS2. Ignition Gazebo supports a variety of robot platforms and sensors, and offers flexible configuration options along with an easy-to-use interface. Its physics engine and sensor models help developers with the development, testing, and validation of robotic systems. Whether for research or education, Ignition Gazebo is a powerful tool.",[15,62,63],{},"If you want to migrate from Ignition Gazebo (ROS2 Humble) to Gazebo (ROS2 Jazzy), scroll down — there's a section below on how to migrate.",[15,65,66],{},[55,67,68],{"href":68,"rel":69},"https://docs.ros.org/en/humble/Tutorials/Advanced/Simulators/Gazebo/Gazebo.html",[59],[15,71,72],{},"The following website is the official tutorial (ROS2 Humble with Ignition Gazebo Fortress):",[15,74,75],{},[55,76,77],{"href":77,"rel":78},"https://gazebosim.org/docs/fortress/getstarted/",[59],[15,80,81],{},[55,82,83],{"href":83,"rel":84},"https://gazebosim.org/docs/fortress/library_reference_nav/",[59],[15,86,87,88],{},"Source code: ",[55,89,90],{"href":90,"rel":91},"https://github.com/gazebosim/docs/blob/master/fortress/tutorials",[59],[15,93,94],{},[50,95,96],{},"Installation",[15,98,99],{},"Ignition 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 Ignition Gazebo is integrated into the ROS2 repositories, and it can be installed directly using the following command:",[101,102,107],"pre",{"className":103,"code":104,"language":105,"meta":106,"style":106},"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","",[108,109,110,119,126,150,155,161,173,178,184],"code",{"__ignoreMap":106},[111,112,115],"span",{"class":113,"line":114},"line",1,[111,116,118],{"emptyLinePlaceholder":117},true,"\n",[111,120,122],{"class":113,"line":121},2,[111,123,125],{"class":124},"sJ8bj","# 通用命令\n",[111,127,129,133,137,140,143,147],{"class":113,"line":128},3,[111,130,132],{"class":131},"sScJk","sudo",[111,134,136],{"class":135},"sZZnC"," apt",[111,138,139],{"class":135}," install",[111,141,142],{"class":135}," ros-",[111,144,146],{"class":145},"sVt8B","${ROS_DISTRO}",[111,148,149],{"class":135},"-ros-gz\n",[111,151,153],{"class":113,"line":152},4,[111,154,118],{"emptyLinePlaceholder":117},[111,156,158],{"class":113,"line":157},5,[111,159,160],{"class":124},"# Humble版本\n",[111,162,164,166,168,170],{"class":113,"line":163},6,[111,165,132],{"class":131},[111,167,136],{"class":135},[111,169,139],{"class":135},[111,171,172],{"class":135}," ros-humble-ros-gz\n",[111,174,176],{"class":113,"line":175},7,[111,177,118],{"emptyLinePlaceholder":117},[111,179,181],{"class":113,"line":180},8,[111,182,183],{"class":124},"# Jazzy版本\n",[111,185,187,189,191,193],{"class":113,"line":186},9,[111,188,132],{"class":131},[111,190,136],{"class":135},[111,192,139],{"class":135},[111,194,195],{"class":135}," ros-jazzy-ros-gz\n",[15,197,198],{},[199,200],"img",{"alt":106,"src":201},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1705.webp",[15,203,204],{},[50,205,206],{},"Running",[15,208,209],{},"After Ignition Gazebo is installed, it can be launched in two ways.",[15,211,212],{},"Method 1: Start with Ignition Gazebo, using the following command:",[101,214,216],{"className":103,"code":215,"language":105,"meta":106,"style":106},"\n# Humble版本\nign gazebo\n\n# Jazzy版本\ngz sim\n",[108,217,218,222,226,234,238,242],{"__ignoreMap":106},[111,219,220],{"class":113,"line":114},[111,221,118],{"emptyLinePlaceholder":117},[111,223,224],{"class":113,"line":121},[111,225,160],{"class":124},[111,227,228,231],{"class":113,"line":128},[111,229,230],{"class":131},"ign",[111,232,233],{"class":135}," gazebo\n",[111,235,236],{"class":113,"line":152},[111,237,118],{"emptyLinePlaceholder":117},[111,239,240],{"class":113,"line":157},[111,241,183],{"class":124},[111,243,244,247],{"class":113,"line":163},[111,245,246],{"class":131},"gz",[111,248,249],{"class":135}," sim\n",[15,251,252],{},"Method 2: Start using ROS2. The command is as follows:",[101,254,256],{"className":103,"code":255,"language":105,"meta":106,"style":106},"ros2 launch ros_gz_sim gz_sim.launch.py\n",[108,257,258],{"__ignoreMap":106},[111,259,260,263,266,269],{"class":113,"line":114},[111,261,262],{"class":131},"ros2",[111,264,265],{"class":135}," launch",[111,267,268],{"class":135}," ros_gz_sim",[111,270,271],{"class":135}," gz_sim.launch.py\n",[15,273,274,275,278],{},"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 ",[108,276,277],{},"run"," button to run.",[15,280,281],{},[199,282],{"alt":106,"src":283},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1706.webp",[15,285,286],{},[50,287,288],{},"Interface Introduction",[15,290,291],{},"Next, using the Empty simulation environment as an example, let's introduce the interface components of Ignition Gazebo.",[15,293,294],{},[199,295],{"alt":106,"src":296},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1707.webp",[15,298,299],{},"Note: If your Gazebo is not lagging, but Ignition Gazebo is extremely laggy, please confirm that Ignition Gazebo is running with the dedicated graphics card, not the integrated graphics.",[15,301,302],{},"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,304,305],{},[50,306,307],{},"Toolbar",[309,310,311],"ul",{},[312,313,314],"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.",[316,317,318],"ol",{},[312,319,320],{},"File menu button (horizontal lines)",[15,322,323],{},[199,324],{"alt":106,"src":325},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1708.webp",[309,327,328],{},[312,329,330],{},"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.",[316,332,333],{"start":121},[312,334,335],{},"The plugin button on the right (vertical ellipsis)",[15,337,338],{},[199,339],{"alt":106,"src":340},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1709.webp",[309,342,343],{},[312,344,345],{},"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,347,348],{},[50,349,350],{},"3D viewport",[309,352,353],{},[312,354,355],{},"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,357,358,361],{},[199,359],{"alt":106,"src":360},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1710.webp",[199,362],{"alt":106,"src":363},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1711.webp",[309,365,366],{},[312,367,368],{},"The main view displays the simulation environment. We can navigate the scene using the mouse in different ways, with the relevant operations as follows:",[101,370,372],{"className":103,"code":371,"language":105,"meta":106,"style":106},"左键单击：选择实体\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",[108,373,374,379,384,392,397,402,407,415,426,431,437,443,449],{"__ignoreMap":106},[111,375,376],{"class":113,"line":114},[111,377,378],{"class":131},"左键单击：选择实体\n",[111,380,381],{"class":113,"line":121},[111,382,383],{"class":131},"右键单击：打开带有选项的菜单：\n",[111,385,386,389],{"class":113,"line":128},[111,387,388],{"class":131},"   Move",[111,390,391],{"class":135}," to：移动到以实体为中心的场景\n",[111,393,394],{"class":113,"line":152},[111,395,396],{"class":131},"   Follow：选择一个实体让视图保持居中，无论是移动还是平移\n",[111,398,399],{"class":113,"line":157},[111,400,401],{"class":131},"   Remove：从模拟中删除实体\n",[111,403,404],{"class":113,"line":163},[111,405,406],{"class":131},"   Copy：复制实体\n",[111,408,409,412],{"class":113,"line":175},[111,410,411],{"class":131},"   Past:",[111,413,414],{"class":135}," 粘贴实体\n",[111,416,417,420,423],{"class":113,"line":180},[111,418,419],{"class":131},"   View：显示实体的重心（Center",[111,421,422],{"class":135}," of",[111,424,425],{"class":135}," Mass）、碰撞边界（Collisions）、惯性（Inertia）、\n",[111,427,428],{"class":113,"line":186},[111,429,430],{"class":131},"         关节（Joints）、坐标系（Frames）、透明度（Transparent）、线框（Wireframe）等属性\n",[111,432,434],{"class":113,"line":433},10,[111,435,436],{"class":131},"左键单击并拖动：在场景中平移\n",[111,438,440],{"class":113,"line":439},11,[111,441,442],{"class":131},"右键单击并拖动：放大和缩小\n",[111,444,446],{"class":113,"line":445},12,[111,447,448],{"class":131},"滚轮向前/向后：放大和缩小\n",[111,450,452],{"class":113,"line":451},13,[111,453,454],{"class":131},"滚轮单击并拖动：旋转场景\n",[309,456,457],{},[312,458,459],{},"To move this ball, click the Move mode in the top-left corner, then left-click to select the object.",[15,461,462],{},[199,463],{"alt":106,"src":464},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1712.webp",[15,466,467],{},[199,468],{"alt":106,"src":469},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1713.webp",[309,471,472],{},[312,473,474],{},"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,476,477],{},[199,478],{"alt":106,"src":479},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1714.webp",[15,481,482],{},[50,483,484],{},"Right panel",[15,486,487],{},"The right panel is used to display plugins. The current simulation environment includes two plugins by default: Model and Entity Tree.",[15,489,490],{},[199,491],{"alt":106,"src":492},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1715.webp",[309,494,495,498,501,504],{},[312,496,497],{},"The Entity Tree displays a list of entities in the simulation environment.",[312,499,500],{},"After clicking an entity in the Entity Tree, its related information can be displayed in the Model.",[312,502,503],{},"You can also hold Ctrl and click to select multiple entities.",[312,505,506],{},"You can also right-click any plugin to open its basic settings or disable it.",[15,508,509],{},[199,510],{"alt":106,"src":511},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1716.webp",[15,513,514],{},"Ignition 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 properties, including cell size, grid position, cell count, or color.",[15,516,517],{},"As the application deepens, other plugins will be introduced over time.",[15,519,520],{},[199,521],{"alt":106,"src":522},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1717.webp",[15,524,525],{},[199,526],{"alt":106,"src":527},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1718.webp",[27,529,531],{"id":530},"integration-with-ros2","Integration with ROS2",[15,533,534],{},"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:",[316,536,537,540,543],{},[312,538,539],{},"Start the Ignition Gazebo simulation environment.",[312,541,542],{},"Establish the connection between ROS2 and Ignition Gazebo via ros_gz_bridge;",[312,544,545],{},"Start the ROS2-related nodes to enable data transmission and reception with Ignition Gazebo.",[15,547,548],{},"All integration implementations between Ignition Gazebo and ROS2 basically follow the above workflow.",[15,550,551],{},[50,552,553],{},"Launch the Simulation Environment",[15,555,556,557,560],{},"When installing Ignition Gazebo, some simulation environments are already built in and can be launched directly. Here, we can use the simulation file named ",[108,558,559],{},"visualize_lidar.sdf",", which includes a differential drive robot and a LiDAR simulation. The launch command is as follows:",[101,562,564],{"className":103,"code":563,"language":105,"meta":106,"style":106},"ign gazebo -v 4 -r visualize_lidar.sdf\n#或者\ngz sim -v 4 -r visualize_lidar.sdf\n",[108,565,566,586,591],{"__ignoreMap":106},[111,567,568,570,573,577,580,583],{"class":113,"line":114},[111,569,230],{"class":131},[111,571,572],{"class":135}," gazebo",[111,574,576],{"class":575},"sj4cs"," -v",[111,578,579],{"class":575}," 4",[111,581,582],{"class":575}," -r",[111,584,585],{"class":135}," visualize_lidar.sdf\n",[111,587,588],{"class":113,"line":121},[111,589,590],{"class":124},"#或者\n",[111,592,593,595,598,600,602,604],{"class":113,"line":128},[111,594,246],{"class":131},[111,596,597],{"class":135}," sim",[111,599,576],{"class":575},[111,601,579],{"class":575},[111,603,582],{"class":575},[111,605,585],{"class":135},[15,607,608],{},"Alternatively, it can also be launched using ROS2 launch, with the following command:",[101,610,612],{"className":103,"code":611,"language":105,"meta":106,"style":106},"ros2 launch ros_gz_sim gz_sim.launch.py gz_args:=\"-v 4 -r visualize_lidar.sdf\" # 启动状态\n",[108,613,614],{"__ignoreMap":106},[111,615,616,618,620,622,625,628],{"class":113,"line":114},[111,617,262],{"class":131},[111,619,265],{"class":135},[111,621,268],{"class":135},[111,623,624],{"class":135}," gz_sim.launch.py",[111,626,627],{"class":135}," gz_args:=\"-v 4 -r visualize_lidar.sdf\"",[111,629,630],{"class":124}," # 启动状态\n",[15,632,633],{},"Both methods are essentially the same: they start Ignition Gazebo and load the visualize_lidar.sdf file.",[15,635,636],{},[199,637],{"alt":106,"src":638},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1719.webp",[15,640,641],{},[50,642,643],{},"Establishing a Connection",[15,645,646,647,650],{},"Although the robot in the simulation environment has been configured with a motion control plugin and can subscribe to velocity commands via the ",[108,648,649],{},"/model/vehicle_blue/cmd_vel"," topic to move, the message formats in Ignition Gazebo and ROS 2 are not consistent. Therefore, the ros_gz_bridge bridging package is needed to convert messages between the two. The command to invoke it is as follows:",[101,652,654],{"className":103,"code":653,"language":105,"meta":106,"style":106},"ros2 run ros_gz_bridge parameter_bridge /model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist]gz.msgs.Twist\n",[108,655,656],{"__ignoreMap":106},[111,657,658,660,663,666,669],{"class":113,"line":114},[111,659,262],{"class":131},[111,661,662],{"class":135}," run",[111,664,665],{"class":135}," ros_gz_bridge",[111,667,668],{"class":135}," parameter_bridge",[111,670,671],{"class":135}," /model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist]gz.msgs.Twist\n",[15,673,674,675,678,679,681,682,685],{},"This instruction can convert ROS2 messages of type ",[108,676,677],{},"geometry_msgs/msg/Twist"," published on the ",[108,680,649],{}," topic into messages of type ",[108,683,684],{},"gz.msgs.Twist"," that can be recognized by Ignition Gazebo.",[15,687,688],{},[50,689,690],{},"Starting a ROS2 Node",[15,692,693,694,696],{},"Start the ROS2 keyboard control node and remap the topic to ",[108,695,649],{},", using the following command:",[101,698,700],{"className":103,"code":699,"language":105,"meta":106,"style":106},"ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r /cmd_vel:=/model/vehicle_blue/cmd_vel\n",[108,701,702],{"__ignoreMap":106},[111,703,704,706,708,711,713,716,718],{"class":113,"line":114},[111,705,262],{"class":131},[111,707,662],{"class":135},[111,709,710],{"class":135}," teleop_twist_keyboard",[111,712,710],{"class":135},[111,714,715],{"class":575}," --ros-args",[111,717,582],{"class":575},[111,719,720],{"class":135}," /cmd_vel:=/model/vehicle_blue/cmd_vel\n",[15,722,723],{},"Now you can use the keyboard to control the robot's movement.",[15,725,726],{},[199,727],{"alt":106,"src":728},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1720.webp",[27,730,731],{"id":731},"ros_gz_bridge",[15,733,734],{},"ros_gz_bridge is the bridge connecting ROS2 and Ignition Gazebo. The messages used by ROS2 and Ignition Gazebo are not compatible and must be converted through ros_gz_bridge.",[15,736,737],{},[50,738,739],{},"ros_gz_bridge Usage Syntax",[15,741,742,743,746,747,749],{},"The bridging between ROS2 and Ignition Gazebo is implemented through the ",[108,744,745],{},"parameter_bridge"," node in the ",[108,748,731],{}," package, with the following usage syntax:",[101,751,753],{"className":103,"code":752,"language":105,"meta":106,"style":106},"parameter_bridge [\u003Ctopic@ROS2_type@Gz_type> ..]  [\u003Cservice@ROS2_srv_type[@Gz_req_type@Gz_rep_type]> ..]\n",[108,754,755],{"__ignoreMap":106},[111,756,757,759,762,765,768,772],{"class":113,"line":114},[111,758,745],{"class":131},[111,760,761],{"class":145}," [\u003Ctopic@ROS2_type@Gz_type> ",[111,763,764],{"class":135},"..]",[111,766,767],{"class":145},"  [\u003Cservice@ROS2_srv_type[@Gz_req_type@Gz_rep_type]",[111,769,771],{"class":770},"szBVR",">",[111,773,774],{"class":145}," ..]\n",[15,776,777,778,781,782,785],{},"In the topic, the ",[50,779,780],{},"first @"," symbol serves as the ",[50,783,784],{},"separator"," between the topic name and the message type.",[15,787,788],{},"The first @ symbol is followed by a ROS message type.",[15,790,791,792,795],{},"ROS message types are followed by the @, ",[111,793,794],{},", or"," symbols:",[309,797,798,804,810],{},[312,799,800,803],{},[50,801,802],{},"@"," indicates a bidirectional bridge;",[312,805,806,809],{},[50,807,808],{},"["," indicates the bridge from Ignition Gazebo to ROS;",[312,811,812,815],{},[50,813,814],{},"]"," indicates the bridge from ROS to Ignition Gazebo.",[15,817,818],{},"After the direction symbol is the Gazebo Transport message type.",[15,820,821],{},"(The two @ symbols do not have the same meaning.)",[15,823,824,825,827,828,830],{},"In a Service, the ",[50,826,780],{}," symbol is the ",[50,829,784],{}," between the service name and type.",[15,832,833],{},"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,835,836,839],{},[50,837,838],{},"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,841,842],{},"Bidirectional Bridging Example:",[101,844,846],{"className":103,"code":845,"language":105,"meta":106,"style":106},"parameter_bridge /chatter@std_msgs/String@gz.msgs.StringMsg\n",[108,847,848],{"__ignoreMap":106},[111,849,850,852],{"class":113,"line":114},[111,851,745],{"class":131},[111,853,854],{"class":135}," /chatter@std_msgs/String@gz.msgs.StringMsg\n",[15,856,857],{},"Bridge example from Gazebo to ROS:",[101,859,861],{"className":103,"code":860,"language":105,"meta":106,"style":106},"parameter_bridge /chatter@std_msgs/String[gz.msgs.StringMsg\n",[108,862,863],{"__ignoreMap":106},[111,864,865,867],{"class":113,"line":114},[111,866,745],{"class":131},[111,868,869],{"class":135}," /chatter@std_msgs/String[gz.msgs.StringMsg\n",[15,871,872],{},"Bridge example from ROS to Gazebo:",[101,874,876],{"className":103,"code":875,"language":105,"meta":106,"style":106},"parameter_bridge /chatter@std_msgs/String]gz.msgs.StringMsg\n",[108,877,878],{"__ignoreMap":106},[111,879,880,882],{"class":113,"line":114},[111,881,745],{"class":131},[111,883,884],{"class":135}," /chatter@std_msgs/String]gz.msgs.StringMsg\n",[15,886,887],{},"Service Bridging Example:",[101,889,891],{"className":103,"code":890,"language":105,"meta":106,"style":106},"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",[108,892,893,900,905],{"__ignoreMap":106},[111,894,895,897],{"class":113,"line":114},[111,896,745],{"class":131},[111,898,899],{"class":135}," /world/default/control@ros_gz_interfaces/srv/ControlWorld\n",[111,901,902],{"class":113,"line":121},[111,903,904],{"class":131},"或者：\n",[111,906,907,909],{"class":113,"line":128},[111,908,745],{"class":131},[111,910,911],{"class":135}," /world/default/control@ros_gz_interfaces/srv/ControlWorld@gz.msgs.WorldControl@gz.msgs.Boolean\n",[15,913,914,915,918],{},"You can also run the ",[108,916,917],{},"ros2 run ros_gz_bridge parameter_bridge -h"," command to view the official documentation.",[15,920,921],{},[50,922,923],{},"Message types supported by ros_gz_bridge",[15,925,926],{},"Here is the correspondence table of topic message types in ROS2 and Ignition Gazebo:",[928,929,930,944],"table",{},[931,932,933],"thead",{},[934,935,936,941],"tr",{},[937,938,940],"th",{"align":939},"left","ROS2 message types",[937,942,943],{"align":939},"Gazebo Transport types",[945,946,947,956,964,972,980,987,995,1003,1010,1017,1023,1031,1038,1045,1053,1060,1068,1075,1083,1091,1099,1107,1115,1123,1131,1139,1147,1155,1163,1171,1179,1187,1195,1203,1211,1219,1227,1235,1243,1251,1259,1267,1275,1283,1291,1299,1307,1315,1323,1331,1339,1347,1355,1363,1370],"tbody",{},[934,948,949,953],{},[950,951,952],"td",{"align":939},"builtin_interfaces/msg/Time",[950,954,955],{"align":939},"gz.msgs.Time",[934,957,958,961],{},[950,959,960],{"align":939},"geometry_msgs/msg/Point",[950,962,963],{"align":939},"gz.msgs.Vector3d",[934,965,966,969],{},[950,967,968],{"align":939},"geometry_msgs/msg/Pose",[950,970,971],{"align":939},"gz.msgs.Pose",[934,973,974,977],{},[950,975,976],{"align":939},"geometry_msgs/msg/PoseArray",[950,978,979],{"align":939},"gz.msgs.Pose_V",[934,981,982,985],{},[950,983,984],{"align":939},"geometry_msgs/msg/PoseStamped",[950,986,971],{"align":939},[934,988,989,992],{},[950,990,991],{"align":939},"geometry_msgs/msg/PoseWithCovariance",[950,993,994],{"align":939},"gz.msgs.PoseWithCovariance",[934,996,997,1000],{},[950,998,999],{"align":939},"geometry_msgs/msg/Quaternion",[950,1001,1002],{"align":939},"gz.msgs.Quaternion",[934,1004,1005,1008],{},[950,1006,1007],{"align":939},"geometry_msgs/msg/Transform",[950,1009,971],{"align":939},[934,1011,1012,1015],{},[950,1013,1014],{"align":939},"geometry_msgs/msg/TransformStamped",[950,1016,971],{"align":939},[934,1018,1019,1021],{},[950,1020,677],{"align":939},[950,1022,684],{"align":939},[934,1024,1025,1028],{},[950,1026,1027],{"align":939},"geometry_msgs/msg/TwistWithCovariance",[950,1029,1030],{"align":939},"gz.msgs.TwistWithCovariance",[934,1032,1033,1036],{},[950,1034,1035],{"align":939},"geometry_msgs/msg/TwistWithCovarianceStamped",[950,1037,1030],{"align":939},[934,1039,1040,1043],{},[950,1041,1042],{"align":939},"geometry_msgs/msg/Vector3",[950,1044,963],{"align":939},[934,1046,1047,1050],{},[950,1048,1049],{"align":939},"geometry_msgs/msg/Wrench",[950,1051,1052],{"align":939},"gz.msgs.Wrench",[934,1054,1055,1058],{},[950,1056,1057],{"align":939},"geometry_msgs/msg/WrenchStamped",[950,1059,1052],{"align":939},[934,1061,1062,1065],{},[950,1063,1064],{"align":939},"nav_msgs/msg/Odometry",[950,1066,1067],{"align":939},"gz.msgs.Odometry",[934,1069,1070,1072],{},[950,1071,1064],{"align":939},[950,1073,1074],{"align":939},"gz.msgs.OdometryWithCovariance",[934,1076,1077,1080],{},[950,1078,1079],{"align":939},"rcl_interfaces/msg/ParameterValue",[950,1081,1082],{"align":939},"gz.msgs.Any",[934,1084,1085,1088],{},[950,1086,1087],{"align":939},"ros_gz_interfaces/msg/Altimeter",[950,1089,1090],{"align":939},"gz.msgs.Altimeter",[934,1092,1093,1096],{},[950,1094,1095],{"align":939},"ros_gz_interfaces/msg/Contact",[950,1097,1098],{"align":939},"gz.msgs.Contact",[934,1100,1101,1104],{},[950,1102,1103],{"align":939},"ros_gz_interfaces/msg/Contacts",[950,1105,1106],{"align":939},"gz.msgs.Contacts",[934,1108,1109,1112],{},[950,1110,1111],{"align":939},"ros_gz_interfaces/msg/Dataframe",[950,1113,1114],{"align":939},"gz.msgs.Dataframe",[934,1116,1117,1120],{},[950,1118,1119],{"align":939},"ros_gz_interfaces/msg/Entity",[950,1121,1122],{"align":939},"gz.msgs.Entity",[934,1124,1125,1128],{},[950,1126,1127],{"align":939},"ros_gz_interfaces/msg/Float32Array",[950,1129,1130],{"align":939},"gz.msgs.Float_V",[934,1132,1133,1136],{},[950,1134,1135],{"align":939},"ros_gz_interfaces/msg/GuiCamera",[950,1137,1138],{"align":939},"gz.msgs.GUICamera",[934,1140,1141,1144],{},[950,1142,1143],{"align":939},"ros_gz_interfaces/msg/JointWrench",[950,1145,1146],{"align":939},"gz.msgs.JointWrench",[934,1148,1149,1152],{},[950,1150,1151],{"align":939},"ros_gz_interfaces/msg/Light",[950,1153,1154],{"align":939},"gz.msgs.Light",[934,1156,1157,1160],{},[950,1158,1159],{"align":939},"ros_gz_interfaces/msg/SensorNoise",[950,1161,1162],{"align":939},"gz.msgs.SensorNoise",[934,1164,1165,1168],{},[950,1166,1167],{"align":939},"ros_gz_interfaces/msg/StringVec",[950,1169,1170],{"align":939},"gz.msgs.StringMsg_V",[934,1172,1173,1176],{},[950,1174,1175],{"align":939},"ros_gz_interfaces/msg/TrackVisual",[950,1177,1178],{"align":939},"gz.msgs.TrackVisual",[934,1180,1181,1184],{},[950,1182,1183],{"align":939},"ros_gz_interfaces/msg/VideoRecord",[950,1185,1186],{"align":939},"gz.msgs.VideoRecord",[934,1188,1189,1192],{},[950,1190,1191],{"align":939},"ros_gz_interfaces/msg/WorldControl",[950,1193,1194],{"align":939},"gz.msgs.WorldControl",[934,1196,1197,1200],{},[950,1198,1199],{"align":939},"rosgraph_msgs/msg/Clock*",[950,1201,1202],{"align":939},"gz.msgs.Clock*",[934,1204,1205,1208],{},[950,1206,1207],{"align":939},"sensor_msgs/msg/BatteryState",[950,1209,1210],{"align":939},"gz.msgs.BatteryState",[934,1212,1213,1216],{},[950,1214,1215],{"align":939},"sensor_msgs/msg/CameraInfo",[950,1217,1218],{"align":939},"gz.msgs.CameraInfo",[934,1220,1221,1224],{},[950,1222,1223],{"align":939},"sensor_msgs/msg/FluidPressure",[950,1225,1226],{"align":939},"gz.msgs.FluidPressure",[934,1228,1229,1232],{},[950,1230,1231],{"align":939},"sensor_msgs/msg/Image",[950,1233,1234],{"align":939},"gz.msgs.Image",[934,1236,1237,1240],{},[950,1238,1239],{"align":939},"sensor_msgs/msg/Imu",[950,1241,1242],{"align":939},"gz.msgs.IMU",[934,1244,1245,1248],{},[950,1246,1247],{"align":939},"sensor_msgs/msg/JointState",[950,1249,1250],{"align":939},"gz.msgs.Model",[934,1252,1253,1256],{},[950,1254,1255],{"align":939},"sensor_msgs/msg/Joy",[950,1257,1258],{"align":939},"gz.msgs.Joy",[934,1260,1261,1264],{},[950,1262,1263],{"align":939},"sensor_msgs/msg/LaserScan",[950,1265,1266],{"align":939},"gz.msgs.LaserScan",[934,1268,1269,1272],{},[950,1270,1271],{"align":939},"sensor_msgs/msg/MagneticField",[950,1273,1274],{"align":939},"gz.msgs.Magnetometer",[934,1276,1277,1280],{},[950,1278,1279],{"align":939},"sensor_msgs/msg/NavSatFix",[950,1281,1282],{"align":939},"gz.msgs.NavSat",[934,1284,1285,1288],{},[950,1286,1287],{"align":939},"sensor_msgs/msg/PointCloud2",[950,1289,1290],{"align":939},"gz.msgs.PointCloudPacked",[934,1292,1293,1296],{},[950,1294,1295],{"align":939},"std_msgs/msg/Bool",[950,1297,1298],{"align":939},"gz.msgs.Boolean",[934,1300,1301,1304],{},[950,1302,1303],{"align":939},"std_msgs/msg/ColorRGBA",[950,1305,1306],{"align":939},"gz.msgs.Color",[934,1308,1309,1312],{},[950,1310,1311],{"align":939},"std_msgs/msg/Empty",[950,1313,1314],{"align":939},"gz.msgs.Empty",[934,1316,1317,1320],{},[950,1318,1319],{"align":939},"std_msgs/msg/Float32",[950,1321,1322],{"align":939},"gz.msgs.Float",[934,1324,1325,1328],{},[950,1326,1327],{"align":939},"std_msgs/msg/Float64",[950,1329,1330],{"align":939},"gz.msgs.Double",[934,1332,1333,1336],{},[950,1334,1335],{"align":939},"std_msgs/msg/Header",[950,1337,1338],{"align":939},"gz.msgs.Header",[934,1340,1341,1344],{},[950,1342,1343],{"align":939},"std_msgs/msg/Int32",[950,1345,1346],{"align":939},"gz.msgs.Int32",[934,1348,1349,1352],{},[950,1350,1351],{"align":939},"std_msgs/msg/String",[950,1353,1354],{"align":939},"gz.msgs.StringMsg",[934,1356,1357,1360],{},[950,1358,1359],{"align":939},"std_msgs/msg/UInt32",[950,1361,1362],{"align":939},"gz.msgs.UInt32",[934,1364,1365,1368],{},[950,1366,1367],{"align":939},"tf2_msgs/msg/TFMessage",[950,1369,979],{"align":939},[934,1371,1372,1375],{},[950,1373,1374],{"align":939},"trajectory_msgs/msg/JointTrajectory",[950,1376,1377],{"align":939},"gz.msgs.JointTrajectory",[15,1379,1380],{},"And the service message type correspondence table:",[928,1382,1383,1395],{},[931,1384,1385],{},[934,1386,1387,1389,1392],{},[937,1388,940],{"align":939},[937,1390,1391],{"align":939},"Gazebo request",[937,1393,1394],{"align":939},"Gazebo response",[945,1396,1397],{},[934,1398,1399,1402,1404],{},[950,1400,1401],{"align":939},"ros_gz_interfaces/srv/ControlWorld",[950,1403,1194],{"align":939},[950,1405,1298],{"align":939},[27,1407,1409],{"id":1408},"optimized-integration-with-ros2","Optimized integration with ROS2",[15,1411,1412,1413,1416],{},"In the implementation of ",[50,1414,1415],{},"Ignition Gazebo and ROS2 Integration",", different commands need to be used in the terminal to start different modules. This process is somewhat complex. This section will introduce how to optimize it using launch files.",[15,1418,1419],{},[50,1420,1421],{},"Create a New Package",[15,1423,1424],{},"First, call the following command to create a function package:",[101,1426,1428],{"className":103,"code":1427,"language":105,"meta":106,"style":106},"ros2 pkg create demo_gazebo_sim\n",[108,1429,1430],{"__ignoreMap":106},[111,1431,1432,1434,1437,1440],{"class":113,"line":114},[111,1433,262],{"class":131},[111,1435,1436],{"class":135}," pkg",[111,1438,1439],{"class":135}," create",[111,1441,1442],{"class":135}," demo_gazebo_sim\n",[15,1444,1445],{},[199,1446],{"alt":106,"src":1447},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1721.webp",[15,1449,1450],{},[50,1451,1452],{},"Add Table of Contents",[15,1454,1455],{},"Add the following directories under the newly created package: launch, rviz, world. Then add the following code to CMakeLists.txt:",[101,1457,1461],{"className":1458,"code":1459,"language":1460,"meta":106,"style":106},"language-cmake shiki shiki-themes github-light github-dark","install(DIRECTORY rviz world launch DESTINATION share/${PROJECT_NAME})\n","cmake",[108,1462,1463],{"__ignoreMap":106},[111,1464,1465,1468,1471,1474],{"class":113,"line":114},[111,1466,1467],{"class":770},"install",[111,1469,1470],{"class":145},"(DIRECTORY rviz world launch DESTINATION share/",[111,1472,1473],{"class":770},"${PROJECT_NAME}",[111,1475,1476],{"class":145},")\n",[15,1478,1479,1480,1483,1484,1487,1488,1491],{},"The ",[108,1481,1482],{},"launch"," directory is used to store launch files, the ",[108,1485,1486],{},"rviz"," directory is used to store RViz2 configuration files, and the ",[108,1489,1490],{},"world"," directory is used to store files related to the Ignition Gazebo simulation environment.",[15,1493,1494],{},[199,1495],{"alt":106,"src":1496},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1722.webp",[15,1498,1499],{},[50,1500,1501],{},"Generate rviz2 configuration files in the rviz directory",[15,1503,1504],{},"Launch rviz2, save the default configuration directly to the rviz directory of the current package, and name the saved file sim.rviz.",[15,1506,1507],{},[199,1508],{"alt":106,"src":1509},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1723.webp",[15,1511,1512],{},[50,1513,1514],{},"Copy the world file",[15,1516,1517,1518,1520,1521,1524,1525,1528,1529,1531],{},"Copy the ",[108,1519,559],{}," file from the ",[108,1522,1523],{},"worlds"," directory in the ignition installation path (",[108,1526,1527],{},"/usr/share/ignition/ignition-gazebo6/worlds",") to the ",[108,1530,1490],{}," directory.",[15,1533,1534],{},"If it is not found under that path, it may be located under the ROS installation path:",[15,1536,1537],{},[108,1538,1539],{},"/opt/ros/jazzy/opt/gz_sim_vendor/share/gz/gz-sim8/worlds/",[15,1541,1542],{},"If you haven't already, manually search for it:",[101,1544,1546],{"className":103,"code":1545,"language":105,"meta":106,"style":106},"sudo find / -name \"visualize_lidar.sdf\"\n",[108,1547,1548],{"__ignoreMap":106},[111,1549,1550,1552,1555,1558,1561],{"class":113,"line":114},[111,1551,132],{"class":131},[111,1553,1554],{"class":135}," find",[111,1556,1557],{"class":135}," /",[111,1559,1560],{"class":575}," -name",[111,1562,1563],{"class":135}," \"visualize_lidar.sdf\"\n",[15,1565,1566],{},[199,1567],{"alt":106,"src":1568},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1724.webp",[15,1570,1571],{},[50,1572,1573],{},"Writing a launch file",[15,1575,1576,1577,1580],{},"Create a new launch file ",[108,1578,1579],{},"gazebo_sim_demo.launch.py"," in the launch directory, and enter the following content:",[101,1582,1586],{"className":1583,"code":1584,"language":1585,"meta":106,"style":106},"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",[108,1587,1588,1596,1600,1613,1617,1629,1641,1652,1664,1676,1688,1692,1704,1708,1720,1725,1742,1757,1779,1784,1795,1801,1819,1831,1849,1855,1861,1866,1872,1883,1897,1909,1936,1952,1957,1962,1968,1978,1991,2004,2019,2027,2035,2041,2063,2074,2091,2106,2112,2123,2128,2133,2142,2148,2168,2181,2187,2193],{"__ignoreMap":106},[111,1589,1590,1593],{"class":113,"line":114},[111,1591,1592],{"class":770},"import",[111,1594,1595],{"class":145}," os\n",[111,1597,1598],{"class":113,"line":121},[111,1599,118],{"emptyLinePlaceholder":117},[111,1601,1602,1605,1608,1610],{"class":113,"line":128},[111,1603,1604],{"class":770},"from",[111,1606,1607],{"class":145}," ament_index_python.packages ",[111,1609,1592],{"class":770},[111,1611,1612],{"class":145}," get_package_share_directory\n",[111,1614,1615],{"class":113,"line":152},[111,1616,118],{"emptyLinePlaceholder":117},[111,1618,1619,1621,1624,1626],{"class":113,"line":157},[111,1620,1604],{"class":770},[111,1622,1623],{"class":145}," launch ",[111,1625,1592],{"class":770},[111,1627,1628],{"class":145}," LaunchDescription\n",[111,1630,1631,1633,1636,1638],{"class":113,"line":163},[111,1632,1604],{"class":770},[111,1634,1635],{"class":145}," launch.actions ",[111,1637,1592],{"class":770},[111,1639,1640],{"class":145}," DeclareLaunchArgument\n",[111,1642,1643,1645,1647,1649],{"class":113,"line":175},[111,1644,1604],{"class":770},[111,1646,1635],{"class":145},[111,1648,1592],{"class":770},[111,1650,1651],{"class":145}," IncludeLaunchDescription\n",[111,1653,1654,1656,1659,1661],{"class":113,"line":180},[111,1655,1604],{"class":770},[111,1657,1658],{"class":145}," launch.conditions ",[111,1660,1592],{"class":770},[111,1662,1663],{"class":145}," IfCondition\n",[111,1665,1666,1668,1671,1673],{"class":113,"line":186},[111,1667,1604],{"class":770},[111,1669,1670],{"class":145}," launch.launch_description_sources ",[111,1672,1592],{"class":770},[111,1674,1675],{"class":145}," PythonLaunchDescriptionSource\n",[111,1677,1678,1680,1683,1685],{"class":113,"line":433},[111,1679,1604],{"class":770},[111,1681,1682],{"class":145}," launch.substitutions ",[111,1684,1592],{"class":770},[111,1686,1687],{"class":145}," LaunchConfiguration\n",[111,1689,1690],{"class":113,"line":439},[111,1691,118],{"emptyLinePlaceholder":117},[111,1693,1694,1696,1699,1701],{"class":113,"line":445},[111,1695,1604],{"class":770},[111,1697,1698],{"class":145}," launch_ros.actions ",[111,1700,1592],{"class":770},[111,1702,1703],{"class":145}," Node\n",[111,1705,1706],{"class":113,"line":451},[111,1707,118],{"emptyLinePlaceholder":117},[111,1709,1711,1714,1717],{"class":113,"line":1710},14,[111,1712,1713],{"class":770},"def",[111,1715,1716],{"class":131}," generate_launch_description",[111,1718,1719],{"class":145},"():\n",[111,1721,1723],{"class":113,"line":1722},15,[111,1724,118],{"emptyLinePlaceholder":117},[111,1726,1728,1731,1734,1737,1740],{"class":113,"line":1727},16,[111,1729,1730],{"class":145},"    this_pkg ",[111,1732,1733],{"class":770},"=",[111,1735,1736],{"class":145}," get_package_share_directory(",[111,1738,1739],{"class":135},"'demo_gazebo_sim'",[111,1741,1476],{"class":145},[111,1743,1745,1748,1750,1752,1755],{"class":113,"line":1744},17,[111,1746,1747],{"class":145},"    pkg_ros_gz_sim ",[111,1749,1733],{"class":770},[111,1751,1736],{"class":145},[111,1753,1754],{"class":135},"'ros_gz_sim'",[111,1756,1476],{"class":145},[111,1758,1760,1763,1765,1768,1771,1774,1777],{"class":113,"line":1759},18,[111,1761,1762],{"class":145},"    world_file ",[111,1764,1733],{"class":770},[111,1766,1767],{"class":145}," os.path.join(this_pkg,",[111,1769,1770],{"class":135},"'world'",[111,1772,1773],{"class":145},",",[111,1775,1776],{"class":135},"'visualize_lidar.sdf'",[111,1778,1476],{"class":145},[111,1780,1782],{"class":113,"line":1781},19,[111,1783,118],{"emptyLinePlaceholder":117},[111,1785,1787,1790,1792],{"class":113,"line":1786},20,[111,1788,1789],{"class":145},"    gz_sim ",[111,1791,1733],{"class":770},[111,1793,1794],{"class":145}," IncludeLaunchDescription(\n",[111,1796,1798],{"class":113,"line":1797},21,[111,1799,1800],{"class":145},"        PythonLaunchDescriptionSource(\n",[111,1802,1804,1807,1810,1813,1816],{"class":113,"line":1803},22,[111,1805,1806],{"class":145},"            os.path.join(pkg_ros_gz_sim, ",[111,1808,1809],{"class":135},"'launch'",[111,1811,1812],{"class":145},", ",[111,1814,1815],{"class":135},"'gz_sim.launch.py'",[111,1817,1818],{"class":145},")),\n",[111,1820,1822,1826,1828],{"class":113,"line":1821},23,[111,1823,1825],{"class":1824},"s4XuR","        launch_arguments",[111,1827,1733],{"class":770},[111,1829,1830],{"class":145},"{\n",[111,1832,1834,1837,1840,1843,1846],{"class":113,"line":1833},24,[111,1835,1836],{"class":135},"            'gz_args'",[111,1838,1839],{"class":145},": ",[111,1841,1842],{"class":135},"'-r '",[111,1844,1845],{"class":770}," +",[111,1847,1848],{"class":145}," world_file\n",[111,1850,1852],{"class":113,"line":1851},25,[111,1853,1854],{"class":145},"        }.items(),\n",[111,1856,1858],{"class":113,"line":1857},26,[111,1859,1860],{"class":145},"    )\n",[111,1862,1864],{"class":113,"line":1863},27,[111,1865,118],{"emptyLinePlaceholder":117},[111,1867,1869],{"class":113,"line":1868},28,[111,1870,1871],{"class":124},"    # RViz\n",[111,1873,1875,1878,1880],{"class":113,"line":1874},29,[111,1876,1877],{"class":145},"    rviz ",[111,1879,1733],{"class":770},[111,1881,1882],{"class":145}," Node(\n",[111,1884,1886,1889,1891,1894],{"class":113,"line":1885},30,[111,1887,1888],{"class":1824},"       package",[111,1890,1733],{"class":770},[111,1892,1893],{"class":135},"'rviz2'",[111,1895,1896],{"class":145},",\n",[111,1898,1900,1903,1905,1907],{"class":113,"line":1899},31,[111,1901,1902],{"class":1824},"       executable",[111,1904,1733],{"class":770},[111,1906,1893],{"class":135},[111,1908,1896],{"class":145},[111,1910,1912,1915,1917,1919,1922,1925,1928,1930,1933],{"class":113,"line":1911},32,[111,1913,1914],{"class":1824},"       arguments",[111,1916,1733],{"class":770},[111,1918,808],{"class":145},[111,1920,1921],{"class":135},"'-d'",[111,1923,1924],{"class":145},", os.path.join(this_pkg, ",[111,1926,1927],{"class":135},"'rviz'",[111,1929,1812],{"class":145},[111,1931,1932],{"class":135},"'sim.rviz'",[111,1934,1935],{"class":145},")],\n",[111,1937,1939,1942,1944,1947,1949],{"class":113,"line":1938},33,[111,1940,1941],{"class":1824},"       condition",[111,1943,1733],{"class":770},[111,1945,1946],{"class":145},"IfCondition(LaunchConfiguration(",[111,1948,1927],{"class":135},[111,1950,1951],{"class":145},"))\n",[111,1953,1955],{"class":113,"line":1954},34,[111,1956,1860],{"class":145},[111,1958,1960],{"class":113,"line":1959},35,[111,1961,118],{"emptyLinePlaceholder":117},[111,1963,1965],{"class":113,"line":1964},36,[111,1966,1967],{"class":124},"    # Bridge\n",[111,1969,1971,1974,1976],{"class":113,"line":1970},37,[111,1972,1973],{"class":145},"    bridge ",[111,1975,1733],{"class":770},[111,1977,1882],{"class":145},[111,1979,1981,1984,1986,1989],{"class":113,"line":1980},38,[111,1982,1983],{"class":1824},"        package",[111,1985,1733],{"class":770},[111,1987,1988],{"class":135},"'ros_gz_bridge'",[111,1990,1896],{"class":145},[111,1992,1994,1997,1999,2002],{"class":113,"line":1993},39,[111,1995,1996],{"class":1824},"        executable",[111,1998,1733],{"class":770},[111,2000,2001],{"class":135},"'parameter_bridge'",[111,2003,1896],{"class":145},[111,2005,2007,2010,2012,2014,2017],{"class":113,"line":2006},40,[111,2008,2009],{"class":1824},"        arguments",[111,2011,1733],{"class":770},[111,2013,808],{"class":145},[111,2015,2016],{"class":135},"'/model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist'",[111,2018,1896],{"class":145},[111,2020,2022,2025],{"class":113,"line":2021},41,[111,2023,2024],{"class":135},"                   '/model/vehicle_blue/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry'",[111,2026,1896],{"class":145},[111,2028,2030,2033],{"class":113,"line":2029},42,[111,2031,2032],{"class":135},"                   '/model/vehicle_blue/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V'",[111,2034,1896],{"class":145},[111,2036,2038],{"class":113,"line":2037},43,[111,2039,2040],{"class":145},"                   ],\n",[111,2042,2044,2047,2049,2052,2055,2057,2060],{"class":113,"line":2043},44,[111,2045,2046],{"class":1824},"        parameters",[111,2048,1733],{"class":770},[111,2050,2051],{"class":145},"[{",[111,2053,2054],{"class":135},"'qos_overrides./model/vehicle_blue.subscriber.reliability'",[111,2056,1839],{"class":145},[111,2058,2059],{"class":135},"'reliable'",[111,2061,2062],{"class":145},"}],\n",[111,2064,2066,2069,2071],{"class":113,"line":2065},45,[111,2067,2068],{"class":1824},"        remappings",[111,2070,1733],{"class":770},[111,2072,2073],{"class":145},"[\n",[111,2075,2077,2080,2083,2085,2088],{"class":113,"line":2076},46,[111,2078,2079],{"class":145},"                (",[111,2081,2082],{"class":135},"'/model/vehicle_blue/tf'",[111,2084,1812],{"class":145},[111,2086,2087],{"class":135},"'/tf'",[111,2089,2090],{"class":145},"),\n",[111,2092,2094,2096,2099,2101,2104],{"class":113,"line":2093},47,[111,2095,2079],{"class":145},[111,2097,2098],{"class":135},"'/model/vehicle_blue/cmd_vel'",[111,2100,1773],{"class":145},[111,2102,2103],{"class":135},"'cmd_vel'",[111,2105,1476],{"class":145},[111,2107,2109],{"class":113,"line":2108},48,[111,2110,2111],{"class":145},"            ],\n",[111,2113,2115,2118,2120],{"class":113,"line":2114},49,[111,2116,2117],{"class":1824},"        output",[111,2119,1733],{"class":770},[111,2121,2122],{"class":135},"'screen'\n",[111,2124,2126],{"class":113,"line":2125},50,[111,2127,1860],{"class":145},[111,2129,2131],{"class":113,"line":2130},51,[111,2132,118],{"emptyLinePlaceholder":117},[111,2134,2136,2139],{"class":113,"line":2135},52,[111,2137,2138],{"class":770},"    return",[111,2140,2141],{"class":145}," LaunchDescription([\n",[111,2143,2145],{"class":113,"line":2144},53,[111,2146,2147],{"class":145},"        gz_sim,\n",[111,2149,2151,2154,2156,2158,2161,2163,2166],{"class":113,"line":2150},54,[111,2152,2153],{"class":145},"        DeclareLaunchArgument(",[111,2155,1927],{"class":135},[111,2157,1812],{"class":145},[111,2159,2160],{"class":1824},"default_value",[111,2162,1733],{"class":770},[111,2164,2165],{"class":135},"'true'",[111,2167,1896],{"class":145},[111,2169,2171,2174,2176,2179],{"class":113,"line":2170},55,[111,2172,2173],{"class":1824},"                              description",[111,2175,1733],{"class":770},[111,2177,2178],{"class":135},"'Open RViz.'",[111,2180,2090],{"class":145},[111,2182,2184],{"class":113,"line":2183},56,[111,2185,2186],{"class":145},"        bridge,\n",[111,2188,2190],{"class":113,"line":2189},57,[111,2191,2192],{"class":145},"        rviz\n",[111,2194,2196],{"class":113,"line":2195},58,[111,2197,2198],{"class":145},"    ])\n",[15,2200,2201],{},"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,2203,2204],{},[199,2205],{"alt":106,"src":2206},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1725.webp",[15,2208,2209],{},[50,2210,2211],{},"Build",[15,2213,2214],{},"In the terminal, navigate to the current workspace and compile the package:",[101,2216,2218],{"className":103,"code":2217,"language":105,"meta":106,"style":106},"colcon build  --packages-select demo_gazebo_sim\n",[108,2219,2220],{"__ignoreMap":106},[111,2221,2222,2225,2228,2231],{"class":113,"line":114},[111,2223,2224],{"class":131},"colcon",[111,2226,2227],{"class":135}," build",[111,2229,2230],{"class":575},"  --packages-select",[111,2232,1442],{"class":135},[15,2234,2235],{},[199,2236],{"alt":106,"src":2237},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1726.webp",[15,2239,2240],{},[50,2241,2242],{},"Execute",[15,2244,2245],{},"In the terminal, navigate to the current workspace and run the following command to execute the launch file:",[101,2247,2249],{"className":103,"code":2248,"language":105,"meta":106,"style":106},". install/setup.bash\nros2 launch demo_gazebo_sim gazebo_sim_demo.launch.py\n",[108,2250,2251,2259],{"__ignoreMap":106},[111,2252,2253,2256],{"class":113,"line":114},[111,2254,2255],{"class":575},".",[111,2257,2258],{"class":135}," install/setup.bash\n",[111,2260,2261,2263,2265,2268],{"class":113,"line":121},[111,2262,262],{"class":131},[111,2264,265],{"class":135},[111,2266,2267],{"class":135}," demo_gazebo_sim",[111,2269,2270],{"class":135}," gazebo_sim_demo.launch.py\n",[15,2272,2273],{},"Open a new terminal and start the keyboard control node:",[101,2275,2277],{"className":103,"code":2276,"language":105,"meta":106,"style":106},"ros2 run teleop_twist_keyboard teleop_twist_keyboard\n",[108,2278,2279],{"__ignoreMap":106},[111,2280,2281,2283,2285,2287],{"class":113,"line":114},[111,2282,262],{"class":131},[111,2284,662],{"class":135},[111,2286,710],{"class":135},[111,2288,2289],{"class":135}," teleop_twist_keyboard\n",[15,2291,2292,2293,2296,2297,2300,2301,2304],{},"Reconfigure rviz2, set ",[108,2294,2295],{},"Fixed Frame"," to ",[108,2298,2299],{},"vehicle_blue/odom",", add the TF plugin, add the Odometry plugin and set the topic to ",[108,2302,2303],{},"/model/vehicle_blue/odometry",". When sending velocity commands via keyboard control, the robot in the simulation environment starts moving, and coordinate transforms as well as odometry messages can be displayed in rviz2.",[15,2306,2307],{},[199,2308],{"alt":106,"src":2309},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1727.webp",[27,2311,2313,2314],{"id":2312},"creating-a-simulation-environment-sdf-file","Creating a Simulation Environment ",[50,2315,2316],{},"SDF File",[15,2318,2319],{},"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,2321,2322],{},[50,2323,2324],{},"Relationship between SDF, URDF, and Xacro:",[309,2326,2327,2362],{},[312,2328,2329,2332],{},[50,2330,2331],{},"Difference between URDF and SDF:",[309,2333,2334,2340,2346,2352],{},[312,2335,2336,2339],{},[50,2337,2338],{},"Complexity:"," SDF supports more powerful features and can describe a complete simulation environment; URDF is better suited for defining robot models.",[312,2341,2342,2345],{},[50,2343,2344],{},"Purpose:"," URDF is the standard for ROS; SDF is the standard for Gazebo.",[312,2347,2348,2351],{},[50,2349,2350],{},"Physics Engine Support:"," URDF supports Gazebo through plugins; SDF natively supports Gazebo.",[312,2353,2354,2357,2358,2361],{},[50,2355,2356],{},"Format Conversion:"," URDF can be converted to SDF (via the tool ",[108,2359,2360],{},"gz sdf -p"," provided by ROS).",[312,2363,2364,2367],{},[50,2365,2366],{},"The Role of Xacro:",[309,2368,2369],{},[312,2370,2371],{},"Xacro is a URDF generation tool that helps users efficiently write URDF files, but it has no direct relationship with SDF.",[2373,2374],"hr",{},[15,2376,2377],{},[50,2378,2379],{},"Practical Advice",[309,2381,2382,2388,2394],{},[312,2383,2384,2387],{},[50,2385,2386],{},"In the Gazebo simulation:"," If you are using ROS 2 and Gazebo, you can directly use SDF files, which offer more powerful functionality.",[312,2389,2390,2393],{},[50,2391,2392],{},"In ROS:"," If primarily used for robot control and planning, URDF or URDF generated by Xacro is recommended.",[312,2395,2396,2399],{},[50,2397,2398],{},"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,2401,2402],{},[50,2403,2404],{},"Example Comparison",[15,2406,2407],{},"URDF Example:",[101,2409,2413],{"className":2410,"code":2411,"language":2412,"meta":106,"style":106},"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",[108,2414,2415,2435,2452,2462,2481,2533,2542,2551],{"__ignoreMap":106},[111,2416,2417,2420,2424,2427,2429,2432],{"class":113,"line":114},[111,2418,2419],{"class":145},"\u003C",[111,2421,2423],{"class":2422},"s9eBZ","robot",[111,2425,2426],{"class":131}," name",[111,2428,1733],{"class":145},[111,2430,2431],{"class":135},"\"example_robot\"",[111,2433,2434],{"class":145},">\n",[111,2436,2437,2440,2443,2445,2447,2450],{"class":113,"line":121},[111,2438,2439],{"class":145},"  \u003C",[111,2441,2442],{"class":2422},"link",[111,2444,2426],{"class":131},[111,2446,1733],{"class":145},[111,2448,2449],{"class":135},"\"base_link\"",[111,2451,2434],{"class":145},[111,2453,2454,2457,2460],{"class":113,"line":128},[111,2455,2456],{"class":145},"    \u003C",[111,2458,2459],{"class":2422},"inertial",[111,2461,2434],{"class":145},[111,2463,2464,2467,2470,2473,2475,2478],{"class":113,"line":152},[111,2465,2466],{"class":145},"      \u003C",[111,2468,2469],{"class":2422},"mass",[111,2471,2472],{"class":131}," value",[111,2474,1733],{"class":145},[111,2476,2477],{"class":135},"\"1.0\"",[111,2479,2480],{"class":145}," />\n",[111,2482,2483,2485,2488,2491,2493,2495,2498,2500,2503,2506,2508,2510,2513,2515,2517,2520,2522,2524,2527,2529,2531],{"class":113,"line":157},[111,2484,2466],{"class":145},[111,2486,2487],{"class":2422},"inertia",[111,2489,2490],{"class":131}," ixx",[111,2492,1733],{"class":145},[111,2494,2477],{"class":135},[111,2496,2497],{"class":131}," ixy",[111,2499,1733],{"class":145},[111,2501,2502],{"class":135},"\"0.0\"",[111,2504,2505],{"class":131}," ixz",[111,2507,1733],{"class":145},[111,2509,2502],{"class":135},[111,2511,2512],{"class":131}," iyy",[111,2514,1733],{"class":145},[111,2516,2477],{"class":135},[111,2518,2519],{"class":131}," iyz",[111,2521,1733],{"class":145},[111,2523,2502],{"class":135},[111,2525,2526],{"class":131}," izz",[111,2528,1733],{"class":145},[111,2530,2477],{"class":135},[111,2532,2480],{"class":145},[111,2534,2535,2538,2540],{"class":113,"line":163},[111,2536,2537],{"class":145},"    \u003C/",[111,2539,2459],{"class":2422},[111,2541,2434],{"class":145},[111,2543,2544,2547,2549],{"class":113,"line":175},[111,2545,2546],{"class":145},"  \u003C/",[111,2548,2442],{"class":2422},[111,2550,2434],{"class":145},[111,2552,2553,2556,2558],{"class":113,"line":180},[111,2554,2555],{"class":145},"\u003C/",[111,2557,2423],{"class":2422},[111,2559,2434],{"class":145},[15,2561,2562],{},"Xacro example (generating URDF):",[101,2564,2566],{"className":2410,"code":2565,"language":2412,"meta":106,"style":106},"\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",[108,2567,2568,2591,2614,2628,2636,2652,2696,2705,2713,2721,2725,2741],{"__ignoreMap":106},[111,2569,2570,2572,2575,2578,2580,2583,2585,2587,2589],{"class":113,"line":114},[111,2571,2419],{"class":145},[111,2573,2574],{"class":2422},"xacro:robot",[111,2576,2577],{"class":131}," xmlns:xacro",[111,2579,1733],{"class":145},[111,2581,2582],{"class":135},"\"http://www.ros.org/wiki/xacro\"",[111,2584,2426],{"class":131},[111,2586,1733],{"class":145},[111,2588,2431],{"class":135},[111,2590,2434],{"class":145},[111,2592,2593,2595,2598,2600,2602,2604,2607,2609,2612],{"class":113,"line":121},[111,2594,2439],{"class":145},[111,2596,2597],{"class":2422},"xacro:macro",[111,2599,2426],{"class":131},[111,2601,1733],{"class":145},[111,2603,2449],{"class":135},[111,2605,2606],{"class":131}," params",[111,2608,1733],{"class":145},[111,2610,2611],{"class":135},"\"mass\"",[111,2613,2434],{"class":145},[111,2615,2616,2618,2620,2622,2624,2626],{"class":113,"line":128},[111,2617,2456],{"class":145},[111,2619,2442],{"class":2422},[111,2621,2426],{"class":131},[111,2623,1733],{"class":145},[111,2625,2449],{"class":135},[111,2627,2434],{"class":145},[111,2629,2630,2632,2634],{"class":113,"line":152},[111,2631,2466],{"class":145},[111,2633,2459],{"class":2422},[111,2635,2434],{"class":145},[111,2637,2638,2641,2643,2645,2647,2650],{"class":113,"line":157},[111,2639,2640],{"class":145},"        \u003C",[111,2642,2469],{"class":2422},[111,2644,2472],{"class":131},[111,2646,1733],{"class":145},[111,2648,2649],{"class":135},"\"${mass}\"",[111,2651,2480],{"class":145},[111,2653,2654,2656,2658,2660,2662,2664,2666,2668,2670,2672,2674,2676,2678,2680,2682,2684,2686,2688,2690,2692,2694],{"class":113,"line":163},[111,2655,2640],{"class":145},[111,2657,2487],{"class":2422},[111,2659,2490],{"class":131},[111,2661,1733],{"class":145},[111,2663,2477],{"class":135},[111,2665,2497],{"class":131},[111,2667,1733],{"class":145},[111,2669,2502],{"class":135},[111,2671,2505],{"class":131},[111,2673,1733],{"class":145},[111,2675,2502],{"class":135},[111,2677,2512],{"class":131},[111,2679,1733],{"class":145},[111,2681,2477],{"class":135},[111,2683,2519],{"class":131},[111,2685,1733],{"class":145},[111,2687,2502],{"class":135},[111,2689,2526],{"class":131},[111,2691,1733],{"class":145},[111,2693,2477],{"class":135},[111,2695,2480],{"class":145},[111,2697,2698,2701,2703],{"class":113,"line":175},[111,2699,2700],{"class":145},"      \u003C/",[111,2702,2459],{"class":2422},[111,2704,2434],{"class":145},[111,2706,2707,2709,2711],{"class":113,"line":180},[111,2708,2537],{"class":145},[111,2710,2442],{"class":2422},[111,2712,2434],{"class":145},[111,2714,2715,2717,2719],{"class":113,"line":186},[111,2716,2546],{"class":145},[111,2718,2597],{"class":2422},[111,2720,2434],{"class":145},[111,2722,2723],{"class":113,"line":433},[111,2724,118],{"emptyLinePlaceholder":117},[111,2726,2727,2729,2732,2735,2737,2739],{"class":113,"line":439},[111,2728,2439],{"class":145},[111,2730,2731],{"class":2422},"xacro:base_link",[111,2733,2734],{"class":131}," mass",[111,2736,1733],{"class":145},[111,2738,2477],{"class":135},[111,2740,2480],{"class":145},[111,2742,2743,2745,2747],{"class":113,"line":445},[111,2744,2555],{"class":145},[111,2746,2574],{"class":2422},[111,2748,2434],{"class":145},[15,2750,2751],{},"SDF example:",[101,2753,2755],{"className":2410,"code":2754,"language":2412,"meta":106,"style":106},"\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",[108,2756,2757,2774,2789,2803,2811,2824,2832,2846,2859,2872,2881,2889,2897,2905],{"__ignoreMap":106},[111,2758,2759,2761,2764,2767,2769,2772],{"class":113,"line":114},[111,2760,2419],{"class":145},[111,2762,2763],{"class":2422},"sdf",[111,2765,2766],{"class":131}," version",[111,2768,1733],{"class":145},[111,2770,2771],{"class":135},"\"1.6\"",[111,2773,2434],{"class":145},[111,2775,2776,2778,2781,2783,2785,2787],{"class":113,"line":121},[111,2777,2439],{"class":145},[111,2779,2780],{"class":2422},"model",[111,2782,2426],{"class":131},[111,2784,1733],{"class":145},[111,2786,2431],{"class":135},[111,2788,2434],{"class":145},[111,2790,2791,2793,2795,2797,2799,2801],{"class":113,"line":128},[111,2792,2456],{"class":145},[111,2794,2442],{"class":2422},[111,2796,2426],{"class":131},[111,2798,1733],{"class":145},[111,2800,2449],{"class":135},[111,2802,2434],{"class":145},[111,2804,2805,2807,2809],{"class":113,"line":152},[111,2806,2466],{"class":145},[111,2808,2459],{"class":2422},[111,2810,2434],{"class":145},[111,2812,2813,2815,2817,2820,2822],{"class":113,"line":157},[111,2814,2640],{"class":145},[111,2816,2469],{"class":2422},[111,2818,2819],{"class":145},">1.0\u003C/",[111,2821,2469],{"class":2422},[111,2823,2434],{"class":145},[111,2825,2826,2828,2830],{"class":113,"line":163},[111,2827,2640],{"class":145},[111,2829,2487],{"class":2422},[111,2831,2434],{"class":145},[111,2833,2834,2837,2840,2842,2844],{"class":113,"line":175},[111,2835,2836],{"class":145},"          \u003C",[111,2838,2839],{"class":2422},"ixx",[111,2841,2819],{"class":145},[111,2843,2839],{"class":2422},[111,2845,2434],{"class":145},[111,2847,2848,2850,2853,2855,2857],{"class":113,"line":180},[111,2849,2836],{"class":145},[111,2851,2852],{"class":2422},"iyy",[111,2854,2819],{"class":145},[111,2856,2852],{"class":2422},[111,2858,2434],{"class":145},[111,2860,2861,2863,2866,2868,2870],{"class":113,"line":186},[111,2862,2836],{"class":145},[111,2864,2865],{"class":2422},"izz",[111,2867,2819],{"class":145},[111,2869,2865],{"class":2422},[111,2871,2434],{"class":145},[111,2873,2874,2877,2879],{"class":113,"line":433},[111,2875,2876],{"class":145},"        \u003C/",[111,2878,2487],{"class":2422},[111,2880,2434],{"class":145},[111,2882,2883,2885,2887],{"class":113,"line":439},[111,2884,2700],{"class":145},[111,2886,2459],{"class":2422},[111,2888,2434],{"class":145},[111,2890,2891,2893,2895],{"class":113,"line":445},[111,2892,2537],{"class":145},[111,2894,2442],{"class":2422},[111,2896,2434],{"class":145},[111,2898,2899,2901,2903],{"class":113,"line":451},[111,2900,2546],{"class":145},[111,2902,2780],{"class":2422},[111,2904,2434],{"class":145},[111,2906,2907,2909,2911],{"class":113,"line":1710},[111,2908,2555],{"class":145},[111,2910,2763],{"class":2422},[111,2912,2434],{"class":145},[15,2914,2915],{},[50,2916,2917],{},"1. Create an sdf file",[15,2919,2920,2921,2924],{},"First, call the command ",[108,2922,2923],{},"ign gazebo"," to launch Gazebo, select the Empty simulation environment, then add cubes, with each cube corresponding to a wall.",[15,2926,2927],{},"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,2929,2930],{},"(The coordinates above refer to X, Y, Z coordinates, with no rotation.)",[15,2932,2933,2934,2936,2937,2940,2941,2255],{},"Save the file to the ",[108,2935,1490],{}," directory of the function package. The saved file must have the ",[108,2938,2939],{},".sdf"," extension; here, the file name is ",[108,2942,2943],{},"house.sdf",[15,2945,2946],{},[199,2947],{"alt":106,"src":2948},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1728.webp",[15,2950,2951],{},[199,2952],{"alt":106,"src":2953},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1729.webp",[101,2955,2957],{"className":2410,"code":2956,"language":2412,"meta":106,"style":106},"\u003Csdf version='1.9'>\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='ignition-gazebo-physics-system'/>\n    \u003Cplugin name='gz::sim::systems::UserCommands' filename='ignition-gazebo-user-commands-system'/>\n    \u003Cplugin name='gz::sim::systems::SceneBroadcaster' filename='ignition-gazebo-scene-broadcaster-system'/>\n    \u003Cplugin name='gz::sim::systems::Contact' filename='ignition-gazebo-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>false\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>false\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>false\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>false\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",[108,2958,2959,2974,2989,3013,3027,3041,3055,3063,3088,3110,3132,3154,3168,3182,3198,3207,3221,3235,3249,3257,3272,3285,3300,3316,3325,3335,3350,3364,3373,3382,3391,3400,3409,3417,3426,3435,3443,3451,3467,3475,3483,3495,3507,3515,3523,3532,3545,3558,3571,3579,3587,3601,3609,3621,3634,3642,3654,3668,3681,3694,3708,3721,3730,3739,3754,3763,3776,3790,3799,3815,3829,3845,3854,3863,3877,3890,3903,3916,3929,3942,3951,3964,3977,3986,4002,4011,4021,4035,4044,4053,4062,4071,4080,4089,4098,4107,4116,4125,4141,4150,4159,4172,4181,4190,4199,4213,4226,4240,4249,4258,4271,4284,4293,4306,4319,4328,4344,4358,4373,4382,4391,4404,4417,4430,4443,4456,4469,4478,4491,4504,4513,4528,4537,4546,4559,4568,4577,4586,4595,4604,4613,4622,4631,4640,4649,4664,4673,4682,4695,4704,4713,4722,4735,4748,4761,4770,4779,4792,4805,4814,4827,4840,4849,4865,4879,4894,4903,4912,4925,4938,4951,4964,4977,4990,4999,5012,5025,5034,5049,5058,5067,5081,5090,5099,5108,5117,5126,5135,5144,5153,5162,5171,5186,5195,5204,5217,5226,5235,5244,5257,5270,5283,5292,5301,5314,5327,5336,5349,5362,5371,5387,5401,5416,5425,5434,5447,5460,5473,5486,5499,5512,5521,5534,5547,5556,5571,5580,5589,5602,5611,5620,5629,5638,5647,5656,5665,5674,5683,5692,5707,5716,5725,5738,5747,5756,5765,5778,5791,5804,5813,5822,5835,5848,5857,5870,5883,5892,5916,5930,5944,5958,5973,5986,6000,6010,6024,6039,6054,6068,6077,6087,6101,6115,6129,6138,6147,6156],{"__ignoreMap":106},[111,2960,2961,2963,2965,2967,2969,2972],{"class":113,"line":114},[111,2962,2419],{"class":145},[111,2964,2763],{"class":2422},[111,2966,2766],{"class":131},[111,2968,1733],{"class":145},[111,2970,2971],{"class":135},"'1.9'",[111,2973,2434],{"class":145},[111,2975,2976,2978,2980,2982,2984,2987],{"class":113,"line":121},[111,2977,2439],{"class":145},[111,2979,1490],{"class":2422},[111,2981,2426],{"class":131},[111,2983,1733],{"class":145},[111,2985,2986],{"class":135},"'empty'",[111,2988,2434],{"class":145},[111,2990,2991,2993,2996,2998,3000,3003,3006,3008,3011],{"class":113,"line":128},[111,2992,2456],{"class":145},[111,2994,2995],{"class":2422},"physics",[111,2997,2426],{"class":131},[111,2999,1733],{"class":145},[111,3001,3002],{"class":135},"'1ms'",[111,3004,3005],{"class":131}," type",[111,3007,1733],{"class":145},[111,3009,3010],{"class":135},"'ignored'",[111,3012,2434],{"class":145},[111,3014,3015,3017,3020,3023,3025],{"class":113,"line":152},[111,3016,2466],{"class":145},[111,3018,3019],{"class":2422},"max_step_size",[111,3021,3022],{"class":145},">0.001\u003C/",[111,3024,3019],{"class":2422},[111,3026,2434],{"class":145},[111,3028,3029,3031,3034,3037,3039],{"class":113,"line":157},[111,3030,2466],{"class":145},[111,3032,3033],{"class":2422},"real_time_factor",[111,3035,3036],{"class":145},">1\u003C/",[111,3038,3033],{"class":2422},[111,3040,2434],{"class":145},[111,3042,3043,3045,3048,3051,3053],{"class":113,"line":163},[111,3044,2466],{"class":145},[111,3046,3047],{"class":2422},"real_time_update_rate",[111,3049,3050],{"class":145},">1000\u003C/",[111,3052,3047],{"class":2422},[111,3054,2434],{"class":145},[111,3056,3057,3059,3061],{"class":113,"line":175},[111,3058,2537],{"class":145},[111,3060,2995],{"class":2422},[111,3062,2434],{"class":145},[111,3064,3065,3067,3070,3072,3074,3077,3080,3082,3085],{"class":113,"line":180},[111,3066,2456],{"class":145},[111,3068,3069],{"class":2422},"plugin",[111,3071,2426],{"class":131},[111,3073,1733],{"class":145},[111,3075,3076],{"class":135},"'gz::sim::systems::Physics'",[111,3078,3079],{"class":131}," filename",[111,3081,1733],{"class":145},[111,3083,3084],{"class":135},"'ignition-gazebo-physics-system'",[111,3086,3087],{"class":145},"/>\n",[111,3089,3090,3092,3094,3096,3098,3101,3103,3105,3108],{"class":113,"line":186},[111,3091,2456],{"class":145},[111,3093,3069],{"class":2422},[111,3095,2426],{"class":131},[111,3097,1733],{"class":145},[111,3099,3100],{"class":135},"'gz::sim::systems::UserCommands'",[111,3102,3079],{"class":131},[111,3104,1733],{"class":145},[111,3106,3107],{"class":135},"'ignition-gazebo-user-commands-system'",[111,3109,3087],{"class":145},[111,3111,3112,3114,3116,3118,3120,3123,3125,3127,3130],{"class":113,"line":433},[111,3113,2456],{"class":145},[111,3115,3069],{"class":2422},[111,3117,2426],{"class":131},[111,3119,1733],{"class":145},[111,3121,3122],{"class":135},"'gz::sim::systems::SceneBroadcaster'",[111,3124,3079],{"class":131},[111,3126,1733],{"class":145},[111,3128,3129],{"class":135},"'ignition-gazebo-scene-broadcaster-system'",[111,3131,3087],{"class":145},[111,3133,3134,3136,3138,3140,3142,3145,3147,3149,3152],{"class":113,"line":439},[111,3135,2456],{"class":145},[111,3137,3069],{"class":2422},[111,3139,2426],{"class":131},[111,3141,1733],{"class":145},[111,3143,3144],{"class":135},"'gz::sim::systems::Contact'",[111,3146,3079],{"class":131},[111,3148,1733],{"class":145},[111,3150,3151],{"class":135},"'ignition-gazebo-contact-system'",[111,3153,3087],{"class":145},[111,3155,3156,3158,3161,3164,3166],{"class":113,"line":445},[111,3157,2456],{"class":145},[111,3159,3160],{"class":2422},"gravity",[111,3162,3163],{"class":145},">0 0 -9.8\u003C/",[111,3165,3160],{"class":2422},[111,3167,2434],{"class":145},[111,3169,3170,3172,3175,3178,3180],{"class":113,"line":451},[111,3171,2456],{"class":145},[111,3173,3174],{"class":2422},"magnetic_field",[111,3176,3177],{"class":145},">6e-06 2.3e-05 -4.2e-05\u003C/",[111,3179,3174],{"class":2422},[111,3181,2434],{"class":145},[111,3183,3184,3186,3189,3191,3193,3196],{"class":113,"line":1710},[111,3185,2456],{"class":145},[111,3187,3188],{"class":2422},"atmosphere",[111,3190,3005],{"class":131},[111,3192,1733],{"class":145},[111,3194,3195],{"class":135},"'adiabatic'",[111,3197,3087],{"class":145},[111,3199,3200,3202,3205],{"class":113,"line":1722},[111,3201,2456],{"class":145},[111,3203,3204],{"class":2422},"scene",[111,3206,2434],{"class":145},[111,3208,3209,3211,3214,3217,3219],{"class":113,"line":1727},[111,3210,2466],{"class":145},[111,3212,3213],{"class":2422},"ambient",[111,3215,3216],{"class":145},">0.4 0.4 0.4 1\u003C/",[111,3218,3213],{"class":2422},[111,3220,2434],{"class":145},[111,3222,3223,3225,3228,3231,3233],{"class":113,"line":1744},[111,3224,2466],{"class":145},[111,3226,3227],{"class":2422},"background",[111,3229,3230],{"class":145},">0.7 0.7 0.7 1\u003C/",[111,3232,3227],{"class":2422},[111,3234,2434],{"class":145},[111,3236,3237,3239,3242,3245,3247],{"class":113,"line":1759},[111,3238,2466],{"class":145},[111,3240,3241],{"class":2422},"shadows",[111,3243,3244],{"class":145},">true\u003C/",[111,3246,3241],{"class":2422},[111,3248,2434],{"class":145},[111,3250,3251,3253,3255],{"class":113,"line":1781},[111,3252,2537],{"class":145},[111,3254,3204],{"class":2422},[111,3256,2434],{"class":145},[111,3258,3259,3261,3263,3265,3267,3270],{"class":113,"line":1786},[111,3260,2456],{"class":145},[111,3262,2780],{"class":2422},[111,3264,2426],{"class":131},[111,3266,1733],{"class":145},[111,3268,3269],{"class":135},"'ground_plane'",[111,3271,2434],{"class":145},[111,3273,3274,3276,3279,3281,3283],{"class":113,"line":1797},[111,3275,2466],{"class":145},[111,3277,3278],{"class":2422},"static",[111,3280,3244],{"class":145},[111,3282,3278],{"class":2422},[111,3284,2434],{"class":145},[111,3286,3287,3289,3291,3293,3295,3298],{"class":113,"line":1803},[111,3288,2466],{"class":145},[111,3290,2442],{"class":2422},[111,3292,2426],{"class":131},[111,3294,1733],{"class":145},[111,3296,3297],{"class":135},"'link'",[111,3299,2434],{"class":145},[111,3301,3302,3304,3307,3309,3311,3314],{"class":113,"line":1821},[111,3303,2640],{"class":145},[111,3305,3306],{"class":2422},"collision",[111,3308,2426],{"class":131},[111,3310,1733],{"class":145},[111,3312,3313],{"class":135},"'collision'",[111,3315,2434],{"class":145},[111,3317,3318,3320,3323],{"class":113,"line":1833},[111,3319,2836],{"class":145},[111,3321,3322],{"class":2422},"geometry",[111,3324,2434],{"class":145},[111,3326,3327,3330,3333],{"class":113,"line":1851},[111,3328,3329],{"class":145},"            \u003C",[111,3331,3332],{"class":2422},"plane",[111,3334,2434],{"class":145},[111,3336,3337,3340,3343,3346,3348],{"class":113,"line":1857},[111,3338,3339],{"class":145},"              \u003C",[111,3341,3342],{"class":2422},"normal",[111,3344,3345],{"class":145},">0 0 1\u003C/",[111,3347,3342],{"class":2422},[111,3349,2434],{"class":145},[111,3351,3352,3354,3357,3360,3362],{"class":113,"line":1863},[111,3353,3339],{"class":145},[111,3355,3356],{"class":2422},"size",[111,3358,3359],{"class":145},">100 100\u003C/",[111,3361,3356],{"class":2422},[111,3363,2434],{"class":145},[111,3365,3366,3369,3371],{"class":113,"line":1868},[111,3367,3368],{"class":145},"            \u003C/",[111,3370,3332],{"class":2422},[111,3372,2434],{"class":145},[111,3374,3375,3378,3380],{"class":113,"line":1874},[111,3376,3377],{"class":145},"          \u003C/",[111,3379,3322],{"class":2422},[111,3381,2434],{"class":145},[111,3383,3384,3386,3389],{"class":113,"line":1885},[111,3385,2836],{"class":145},[111,3387,3388],{"class":2422},"surface",[111,3390,2434],{"class":145},[111,3392,3393,3395,3398],{"class":113,"line":1899},[111,3394,3329],{"class":145},[111,3396,3397],{"class":2422},"friction",[111,3399,2434],{"class":145},[111,3401,3402,3404,3407],{"class":113,"line":1911},[111,3403,3339],{"class":145},[111,3405,3406],{"class":2422},"ode",[111,3408,3087],{"class":145},[111,3410,3411,3413,3415],{"class":113,"line":1938},[111,3412,3368],{"class":145},[111,3414,3397],{"class":2422},[111,3416,2434],{"class":145},[111,3418,3419,3421,3424],{"class":113,"line":1954},[111,3420,3329],{"class":145},[111,3422,3423],{"class":2422},"bounce",[111,3425,3087],{"class":145},[111,3427,3428,3430,3433],{"class":113,"line":1959},[111,3429,3329],{"class":145},[111,3431,3432],{"class":2422},"contact",[111,3434,3087],{"class":145},[111,3436,3437,3439,3441],{"class":113,"line":1964},[111,3438,3377],{"class":145},[111,3440,3388],{"class":2422},[111,3442,2434],{"class":145},[111,3444,3445,3447,3449],{"class":113,"line":1970},[111,3446,2876],{"class":145},[111,3448,3306],{"class":2422},[111,3450,2434],{"class":145},[111,3452,3453,3455,3458,3460,3462,3465],{"class":113,"line":1980},[111,3454,2640],{"class":145},[111,3456,3457],{"class":2422},"visual",[111,3459,2426],{"class":131},[111,3461,1733],{"class":145},[111,3463,3464],{"class":135},"'visual'",[111,3466,2434],{"class":145},[111,3468,3469,3471,3473],{"class":113,"line":1993},[111,3470,2836],{"class":145},[111,3472,3322],{"class":2422},[111,3474,2434],{"class":145},[111,3476,3477,3479,3481],{"class":113,"line":2006},[111,3478,3329],{"class":145},[111,3480,3332],{"class":2422},[111,3482,2434],{"class":145},[111,3484,3485,3487,3489,3491,3493],{"class":113,"line":2021},[111,3486,3339],{"class":145},[111,3488,3342],{"class":2422},[111,3490,3345],{"class":145},[111,3492,3342],{"class":2422},[111,3494,2434],{"class":145},[111,3496,3497,3499,3501,3503,3505],{"class":113,"line":2029},[111,3498,3339],{"class":145},[111,3500,3356],{"class":2422},[111,3502,3359],{"class":145},[111,3504,3356],{"class":2422},[111,3506,2434],{"class":145},[111,3508,3509,3511,3513],{"class":113,"line":2037},[111,3510,3368],{"class":145},[111,3512,3332],{"class":2422},[111,3514,2434],{"class":145},[111,3516,3517,3519,3521],{"class":113,"line":2043},[111,3518,3377],{"class":145},[111,3520,3322],{"class":2422},[111,3522,2434],{"class":145},[111,3524,3525,3527,3530],{"class":113,"line":2065},[111,3526,2836],{"class":145},[111,3528,3529],{"class":2422},"material",[111,3531,2434],{"class":145},[111,3533,3534,3536,3538,3541,3543],{"class":113,"line":2076},[111,3535,3329],{"class":145},[111,3537,3213],{"class":2422},[111,3539,3540],{"class":145},">0.8 0.8 0.8 1\u003C/",[111,3542,3213],{"class":2422},[111,3544,2434],{"class":145},[111,3546,3547,3549,3552,3554,3556],{"class":113,"line":2093},[111,3548,3329],{"class":145},[111,3550,3551],{"class":2422},"diffuse",[111,3553,3540],{"class":145},[111,3555,3551],{"class":2422},[111,3557,2434],{"class":145},[111,3559,3560,3562,3565,3567,3569],{"class":113,"line":2108},[111,3561,3329],{"class":145},[111,3563,3564],{"class":2422},"specular",[111,3566,3540],{"class":145},[111,3568,3564],{"class":2422},[111,3570,2434],{"class":145},[111,3572,3573,3575,3577],{"class":113,"line":2114},[111,3574,3377],{"class":145},[111,3576,3529],{"class":2422},[111,3578,2434],{"class":145},[111,3580,3581,3583,3585],{"class":113,"line":2125},[111,3582,2876],{"class":145},[111,3584,3457],{"class":2422},[111,3586,2434],{"class":145},[111,3588,3589,3591,3594,3597,3599],{"class":113,"line":2130},[111,3590,2640],{"class":145},[111,3592,3593],{"class":2422},"pose",[111,3595,3596],{"class":145},">0 0 0 0 -0 0\u003C/",[111,3598,3593],{"class":2422},[111,3600,2434],{"class":145},[111,3602,3603,3605,3607],{"class":113,"line":2135},[111,3604,2640],{"class":145},[111,3606,2459],{"class":2422},[111,3608,2434],{"class":145},[111,3610,3611,3613,3615,3617,3619],{"class":113,"line":2144},[111,3612,2836],{"class":145},[111,3614,3593],{"class":2422},[111,3616,3596],{"class":145},[111,3618,3593],{"class":2422},[111,3620,2434],{"class":145},[111,3622,3623,3625,3627,3630,3632],{"class":113,"line":2150},[111,3624,2836],{"class":145},[111,3626,2469],{"class":2422},[111,3628,3629],{"class":145},">100\u003C/",[111,3631,2469],{"class":2422},[111,3633,2434],{"class":145},[111,3635,3636,3638,3640],{"class":113,"line":2170},[111,3637,2836],{"class":145},[111,3639,2487],{"class":2422},[111,3641,2434],{"class":145},[111,3643,3644,3646,3648,3650,3652],{"class":113,"line":2183},[111,3645,3329],{"class":145},[111,3647,2839],{"class":2422},[111,3649,3036],{"class":145},[111,3651,2839],{"class":2422},[111,3653,2434],{"class":145},[111,3655,3656,3658,3661,3664,3666],{"class":113,"line":2189},[111,3657,3329],{"class":145},[111,3659,3660],{"class":2422},"ixy",[111,3662,3663],{"class":145},">0\u003C/",[111,3665,3660],{"class":2422},[111,3667,2434],{"class":145},[111,3669,3670,3672,3675,3677,3679],{"class":113,"line":2195},[111,3671,3329],{"class":145},[111,3673,3674],{"class":2422},"ixz",[111,3676,3663],{"class":145},[111,3678,3674],{"class":2422},[111,3680,2434],{"class":145},[111,3682,3684,3686,3688,3690,3692],{"class":113,"line":3683},59,[111,3685,3329],{"class":145},[111,3687,2852],{"class":2422},[111,3689,3036],{"class":145},[111,3691,2852],{"class":2422},[111,3693,2434],{"class":145},[111,3695,3697,3699,3702,3704,3706],{"class":113,"line":3696},60,[111,3698,3329],{"class":145},[111,3700,3701],{"class":2422},"iyz",[111,3703,3663],{"class":145},[111,3705,3701],{"class":2422},[111,3707,2434],{"class":145},[111,3709,3711,3713,3715,3717,3719],{"class":113,"line":3710},61,[111,3712,3329],{"class":145},[111,3714,2865],{"class":2422},[111,3716,3036],{"class":145},[111,3718,2865],{"class":2422},[111,3720,2434],{"class":145},[111,3722,3724,3726,3728],{"class":113,"line":3723},62,[111,3725,3377],{"class":145},[111,3727,2487],{"class":2422},[111,3729,2434],{"class":145},[111,3731,3733,3735,3737],{"class":113,"line":3732},63,[111,3734,2876],{"class":145},[111,3736,2459],{"class":2422},[111,3738,2434],{"class":145},[111,3740,3742,3744,3747,3750,3752],{"class":113,"line":3741},64,[111,3743,2640],{"class":145},[111,3745,3746],{"class":2422},"enable_wind",[111,3748,3749],{"class":145},">false\u003C/",[111,3751,3746],{"class":2422},[111,3753,2434],{"class":145},[111,3755,3757,3759,3761],{"class":113,"line":3756},65,[111,3758,2700],{"class":145},[111,3760,2442],{"class":2422},[111,3762,2434],{"class":145},[111,3764,3766,3768,3770,3772,3774],{"class":113,"line":3765},66,[111,3767,2466],{"class":145},[111,3769,3593],{"class":2422},[111,3771,3596],{"class":145},[111,3773,3593],{"class":2422},[111,3775,2434],{"class":145},[111,3777,3779,3781,3784,3786,3788],{"class":113,"line":3778},67,[111,3780,2466],{"class":145},[111,3782,3783],{"class":2422},"self_collide",[111,3785,3749],{"class":145},[111,3787,3783],{"class":2422},[111,3789,2434],{"class":145},[111,3791,3793,3795,3797],{"class":113,"line":3792},68,[111,3794,2537],{"class":145},[111,3796,2780],{"class":2422},[111,3798,2434],{"class":145},[111,3800,3802,3804,3806,3808,3810,3813],{"class":113,"line":3801},69,[111,3803,2456],{"class":145},[111,3805,2780],{"class":2422},[111,3807,2426],{"class":131},[111,3809,1733],{"class":145},[111,3811,3812],{"class":135},"'box'",[111,3814,2434],{"class":145},[111,3816,3818,3820,3822,3825,3827],{"class":113,"line":3817},70,[111,3819,2466],{"class":145},[111,3821,3593],{"class":2422},[111,3823,3824],{"class":145},">5.0 0 0.5 -0 0 0\u003C/",[111,3826,3593],{"class":2422},[111,3828,2434],{"class":145},[111,3830,3832,3834,3836,3838,3840,3843],{"class":113,"line":3831},71,[111,3833,2466],{"class":145},[111,3835,2442],{"class":2422},[111,3837,2426],{"class":131},[111,3839,1733],{"class":145},[111,3841,3842],{"class":135},"'box_link'",[111,3844,2434],{"class":145},[111,3846,3848,3850,3852],{"class":113,"line":3847},72,[111,3849,2640],{"class":145},[111,3851,2459],{"class":2422},[111,3853,2434],{"class":145},[111,3855,3857,3859,3861],{"class":113,"line":3856},73,[111,3858,2836],{"class":145},[111,3860,2487],{"class":2422},[111,3862,2434],{"class":145},[111,3864,3866,3868,3870,3873,3875],{"class":113,"line":3865},74,[111,3867,3329],{"class":145},[111,3869,2839],{"class":2422},[111,3871,3872],{"class":145},">16.666\u003C/",[111,3874,2839],{"class":2422},[111,3876,2434],{"class":145},[111,3878,3880,3882,3884,3886,3888],{"class":113,"line":3879},75,[111,3881,3329],{"class":145},[111,3883,3660],{"class":2422},[111,3885,3663],{"class":145},[111,3887,3660],{"class":2422},[111,3889,2434],{"class":145},[111,3891,3893,3895,3897,3899,3901],{"class":113,"line":3892},76,[111,3894,3329],{"class":145},[111,3896,3674],{"class":2422},[111,3898,3663],{"class":145},[111,3900,3674],{"class":2422},[111,3902,2434],{"class":145},[111,3904,3906,3908,3910,3912,3914],{"class":113,"line":3905},77,[111,3907,3329],{"class":145},[111,3909,2852],{"class":2422},[111,3911,3872],{"class":145},[111,3913,2852],{"class":2422},[111,3915,2434],{"class":145},[111,3917,3919,3921,3923,3925,3927],{"class":113,"line":3918},78,[111,3920,3329],{"class":145},[111,3922,3701],{"class":2422},[111,3924,3663],{"class":145},[111,3926,3701],{"class":2422},[111,3928,2434],{"class":145},[111,3930,3932,3934,3936,3938,3940],{"class":113,"line":3931},79,[111,3933,3329],{"class":145},[111,3935,2865],{"class":2422},[111,3937,3872],{"class":145},[111,3939,2865],{"class":2422},[111,3941,2434],{"class":145},[111,3943,3945,3947,3949],{"class":113,"line":3944},80,[111,3946,3377],{"class":145},[111,3948,2487],{"class":2422},[111,3950,2434],{"class":145},[111,3952,3954,3956,3958,3960,3962],{"class":113,"line":3953},81,[111,3955,2836],{"class":145},[111,3957,2469],{"class":2422},[111,3959,3629],{"class":145},[111,3961,2469],{"class":2422},[111,3963,2434],{"class":145},[111,3965,3967,3969,3971,3973,3975],{"class":113,"line":3966},82,[111,3968,2836],{"class":145},[111,3970,3593],{"class":2422},[111,3972,3596],{"class":145},[111,3974,3593],{"class":2422},[111,3976,2434],{"class":145},[111,3978,3980,3982,3984],{"class":113,"line":3979},83,[111,3981,2876],{"class":145},[111,3983,2459],{"class":2422},[111,3985,2434],{"class":145},[111,3987,3989,3991,3993,3995,3997,4000],{"class":113,"line":3988},84,[111,3990,2640],{"class":145},[111,3992,3306],{"class":2422},[111,3994,2426],{"class":131},[111,3996,1733],{"class":145},[111,3998,3999],{"class":135},"'box_collision'",[111,4001,2434],{"class":145},[111,4003,4005,4007,4009],{"class":113,"line":4004},85,[111,4006,2836],{"class":145},[111,4008,3322],{"class":2422},[111,4010,2434],{"class":145},[111,4012,4014,4016,4019],{"class":113,"line":4013},86,[111,4015,3329],{"class":145},[111,4017,4018],{"class":2422},"box",[111,4020,2434],{"class":145},[111,4022,4024,4026,4028,4031,4033],{"class":113,"line":4023},87,[111,4025,3339],{"class":145},[111,4027,3356],{"class":2422},[111,4029,4030],{"class":145},">0.1 5 1\u003C/",[111,4032,3356],{"class":2422},[111,4034,2434],{"class":145},[111,4036,4038,4040,4042],{"class":113,"line":4037},88,[111,4039,3368],{"class":145},[111,4041,4018],{"class":2422},[111,4043,2434],{"class":145},[111,4045,4047,4049,4051],{"class":113,"line":4046},89,[111,4048,3377],{"class":145},[111,4050,3322],{"class":2422},[111,4052,2434],{"class":145},[111,4054,4056,4058,4060],{"class":113,"line":4055},90,[111,4057,2836],{"class":145},[111,4059,3388],{"class":2422},[111,4061,2434],{"class":145},[111,4063,4065,4067,4069],{"class":113,"line":4064},91,[111,4066,3329],{"class":145},[111,4068,3397],{"class":2422},[111,4070,2434],{"class":145},[111,4072,4074,4076,4078],{"class":113,"line":4073},92,[111,4075,3339],{"class":145},[111,4077,3406],{"class":2422},[111,4079,3087],{"class":145},[111,4081,4083,4085,4087],{"class":113,"line":4082},93,[111,4084,3368],{"class":145},[111,4086,3397],{"class":2422},[111,4088,2434],{"class":145},[111,4090,4092,4094,4096],{"class":113,"line":4091},94,[111,4093,3329],{"class":145},[111,4095,3423],{"class":2422},[111,4097,3087],{"class":145},[111,4099,4101,4103,4105],{"class":113,"line":4100},95,[111,4102,3329],{"class":145},[111,4104,3432],{"class":2422},[111,4106,3087],{"class":145},[111,4108,4110,4112,4114],{"class":113,"line":4109},96,[111,4111,3377],{"class":145},[111,4113,3388],{"class":2422},[111,4115,2434],{"class":145},[111,4117,4119,4121,4123],{"class":113,"line":4118},97,[111,4120,2876],{"class":145},[111,4122,3306],{"class":2422},[111,4124,2434],{"class":145},[111,4126,4128,4130,4132,4134,4136,4139],{"class":113,"line":4127},98,[111,4129,2640],{"class":145},[111,4131,3457],{"class":2422},[111,4133,2426],{"class":131},[111,4135,1733],{"class":145},[111,4137,4138],{"class":135},"'box_visual'",[111,4140,2434],{"class":145},[111,4142,4144,4146,4148],{"class":113,"line":4143},99,[111,4145,2836],{"class":145},[111,4147,3322],{"class":2422},[111,4149,2434],{"class":145},[111,4151,4153,4155,4157],{"class":113,"line":4152},100,[111,4154,3329],{"class":145},[111,4156,4018],{"class":2422},[111,4158,2434],{"class":145},[111,4160,4162,4164,4166,4168,4170],{"class":113,"line":4161},101,[111,4163,3339],{"class":145},[111,4165,3356],{"class":2422},[111,4167,4030],{"class":145},[111,4169,3356],{"class":2422},[111,4171,2434],{"class":145},[111,4173,4175,4177,4179],{"class":113,"line":4174},102,[111,4176,3368],{"class":145},[111,4178,4018],{"class":2422},[111,4180,2434],{"class":145},[111,4182,4184,4186,4188],{"class":113,"line":4183},103,[111,4185,3377],{"class":145},[111,4187,3322],{"class":2422},[111,4189,2434],{"class":145},[111,4191,4193,4195,4197],{"class":113,"line":4192},104,[111,4194,2836],{"class":145},[111,4196,3529],{"class":2422},[111,4198,2434],{"class":145},[111,4200,4202,4204,4206,4209,4211],{"class":113,"line":4201},105,[111,4203,3329],{"class":145},[111,4205,3213],{"class":2422},[111,4207,4208],{"class":145},">0.3 0.3 0.3 1\u003C/",[111,4210,3213],{"class":2422},[111,4212,2434],{"class":145},[111,4214,4216,4218,4220,4222,4224],{"class":113,"line":4215},106,[111,4217,3329],{"class":145},[111,4219,3551],{"class":2422},[111,4221,3230],{"class":145},[111,4223,3551],{"class":2422},[111,4225,2434],{"class":145},[111,4227,4229,4231,4233,4236,4238],{"class":113,"line":4228},107,[111,4230,3329],{"class":145},[111,4232,3564],{"class":2422},[111,4234,4235],{"class":145},">1 1 1 1\u003C/",[111,4237,3564],{"class":2422},[111,4239,2434],{"class":145},[111,4241,4243,4245,4247],{"class":113,"line":4242},108,[111,4244,3377],{"class":145},[111,4246,3529],{"class":2422},[111,4248,2434],{"class":145},[111,4250,4252,4254,4256],{"class":113,"line":4251},109,[111,4253,2876],{"class":145},[111,4255,3457],{"class":2422},[111,4257,2434],{"class":145},[111,4259,4261,4263,4265,4267,4269],{"class":113,"line":4260},110,[111,4262,2640],{"class":145},[111,4264,3593],{"class":2422},[111,4266,3596],{"class":145},[111,4268,3593],{"class":2422},[111,4270,2434],{"class":145},[111,4272,4274,4276,4278,4280,4282],{"class":113,"line":4273},111,[111,4275,2640],{"class":145},[111,4277,3746],{"class":2422},[111,4279,3749],{"class":145},[111,4281,3746],{"class":2422},[111,4283,2434],{"class":145},[111,4285,4287,4289,4291],{"class":113,"line":4286},112,[111,4288,2700],{"class":145},[111,4290,2442],{"class":2422},[111,4292,2434],{"class":145},[111,4294,4296,4298,4300,4302,4304],{"class":113,"line":4295},113,[111,4297,2466],{"class":145},[111,4299,3278],{"class":2422},[111,4301,3749],{"class":145},[111,4303,3278],{"class":2422},[111,4305,2434],{"class":145},[111,4307,4309,4311,4313,4315,4317],{"class":113,"line":4308},114,[111,4310,2466],{"class":145},[111,4312,3783],{"class":2422},[111,4314,3749],{"class":145},[111,4316,3783],{"class":2422},[111,4318,2434],{"class":145},[111,4320,4322,4324,4326],{"class":113,"line":4321},115,[111,4323,2537],{"class":145},[111,4325,2780],{"class":2422},[111,4327,2434],{"class":145},[111,4329,4331,4333,4335,4337,4339,4342],{"class":113,"line":4330},116,[111,4332,2456],{"class":145},[111,4334,2780],{"class":2422},[111,4336,2426],{"class":131},[111,4338,1733],{"class":145},[111,4340,4341],{"class":135},"'box_0'",[111,4343,2434],{"class":145},[111,4345,4347,4349,4351,4354,4356],{"class":113,"line":4346},117,[111,4348,2466],{"class":145},[111,4350,3593],{"class":2422},[111,4352,4353],{"class":145},">-5.0 -0 0.50000 -0 0 0\u003C/",[111,4355,3593],{"class":2422},[111,4357,2434],{"class":145},[111,4359,4361,4363,4365,4367,4369,4371],{"class":113,"line":4360},118,[111,4362,2466],{"class":145},[111,4364,2442],{"class":2422},[111,4366,2426],{"class":131},[111,4368,1733],{"class":145},[111,4370,3842],{"class":135},[111,4372,2434],{"class":145},[111,4374,4376,4378,4380],{"class":113,"line":4375},119,[111,4377,2640],{"class":145},[111,4379,2459],{"class":2422},[111,4381,2434],{"class":145},[111,4383,4385,4387,4389],{"class":113,"line":4384},120,[111,4386,2836],{"class":145},[111,4388,2487],{"class":2422},[111,4390,2434],{"class":145},[111,4392,4394,4396,4398,4400,4402],{"class":113,"line":4393},121,[111,4395,3329],{"class":145},[111,4397,2839],{"class":2422},[111,4399,3872],{"class":145},[111,4401,2839],{"class":2422},[111,4403,2434],{"class":145},[111,4405,4407,4409,4411,4413,4415],{"class":113,"line":4406},122,[111,4408,3329],{"class":145},[111,4410,3660],{"class":2422},[111,4412,3663],{"class":145},[111,4414,3660],{"class":2422},[111,4416,2434],{"class":145},[111,4418,4420,4422,4424,4426,4428],{"class":113,"line":4419},123,[111,4421,3329],{"class":145},[111,4423,3674],{"class":2422},[111,4425,3663],{"class":145},[111,4427,3674],{"class":2422},[111,4429,2434],{"class":145},[111,4431,4433,4435,4437,4439,4441],{"class":113,"line":4432},124,[111,4434,3329],{"class":145},[111,4436,2852],{"class":2422},[111,4438,3872],{"class":145},[111,4440,2852],{"class":2422},[111,4442,2434],{"class":145},[111,4444,4446,4448,4450,4452,4454],{"class":113,"line":4445},125,[111,4447,3329],{"class":145},[111,4449,3701],{"class":2422},[111,4451,3663],{"class":145},[111,4453,3701],{"class":2422},[111,4455,2434],{"class":145},[111,4457,4459,4461,4463,4465,4467],{"class":113,"line":4458},126,[111,4460,3329],{"class":145},[111,4462,2865],{"class":2422},[111,4464,3872],{"class":145},[111,4466,2865],{"class":2422},[111,4468,2434],{"class":145},[111,4470,4472,4474,4476],{"class":113,"line":4471},127,[111,4473,3377],{"class":145},[111,4475,2487],{"class":2422},[111,4477,2434],{"class":145},[111,4479,4481,4483,4485,4487,4489],{"class":113,"line":4480},128,[111,4482,2836],{"class":145},[111,4484,2469],{"class":2422},[111,4486,3629],{"class":145},[111,4488,2469],{"class":2422},[111,4490,2434],{"class":145},[111,4492,4494,4496,4498,4500,4502],{"class":113,"line":4493},129,[111,4495,2836],{"class":145},[111,4497,3593],{"class":2422},[111,4499,3596],{"class":145},[111,4501,3593],{"class":2422},[111,4503,2434],{"class":145},[111,4505,4507,4509,4511],{"class":113,"line":4506},130,[111,4508,2876],{"class":145},[111,4510,2459],{"class":2422},[111,4512,2434],{"class":145},[111,4514,4516,4518,4520,4522,4524,4526],{"class":113,"line":4515},131,[111,4517,2640],{"class":145},[111,4519,3306],{"class":2422},[111,4521,2426],{"class":131},[111,4523,1733],{"class":145},[111,4525,3999],{"class":135},[111,4527,2434],{"class":145},[111,4529,4531,4533,4535],{"class":113,"line":4530},132,[111,4532,2836],{"class":145},[111,4534,3322],{"class":2422},[111,4536,2434],{"class":145},[111,4538,4540,4542,4544],{"class":113,"line":4539},133,[111,4541,3329],{"class":145},[111,4543,4018],{"class":2422},[111,4545,2434],{"class":145},[111,4547,4549,4551,4553,4555,4557],{"class":113,"line":4548},134,[111,4550,3339],{"class":145},[111,4552,3356],{"class":2422},[111,4554,4030],{"class":145},[111,4556,3356],{"class":2422},[111,4558,2434],{"class":145},[111,4560,4562,4564,4566],{"class":113,"line":4561},135,[111,4563,3368],{"class":145},[111,4565,4018],{"class":2422},[111,4567,2434],{"class":145},[111,4569,4571,4573,4575],{"class":113,"line":4570},136,[111,4572,3377],{"class":145},[111,4574,3322],{"class":2422},[111,4576,2434],{"class":145},[111,4578,4580,4582,4584],{"class":113,"line":4579},137,[111,4581,2836],{"class":145},[111,4583,3388],{"class":2422},[111,4585,2434],{"class":145},[111,4587,4589,4591,4593],{"class":113,"line":4588},138,[111,4590,3329],{"class":145},[111,4592,3397],{"class":2422},[111,4594,2434],{"class":145},[111,4596,4598,4600,4602],{"class":113,"line":4597},139,[111,4599,3339],{"class":145},[111,4601,3406],{"class":2422},[111,4603,3087],{"class":145},[111,4605,4607,4609,4611],{"class":113,"line":4606},140,[111,4608,3368],{"class":145},[111,4610,3397],{"class":2422},[111,4612,2434],{"class":145},[111,4614,4616,4618,4620],{"class":113,"line":4615},141,[111,4617,3329],{"class":145},[111,4619,3423],{"class":2422},[111,4621,3087],{"class":145},[111,4623,4625,4627,4629],{"class":113,"line":4624},142,[111,4626,3329],{"class":145},[111,4628,3432],{"class":2422},[111,4630,3087],{"class":145},[111,4632,4634,4636,4638],{"class":113,"line":4633},143,[111,4635,3377],{"class":145},[111,4637,3388],{"class":2422},[111,4639,2434],{"class":145},[111,4641,4643,4645,4647],{"class":113,"line":4642},144,[111,4644,2876],{"class":145},[111,4646,3306],{"class":2422},[111,4648,2434],{"class":145},[111,4650,4652,4654,4656,4658,4660,4662],{"class":113,"line":4651},145,[111,4653,2640],{"class":145},[111,4655,3457],{"class":2422},[111,4657,2426],{"class":131},[111,4659,1733],{"class":145},[111,4661,4138],{"class":135},[111,4663,2434],{"class":145},[111,4665,4667,4669,4671],{"class":113,"line":4666},146,[111,4668,2836],{"class":145},[111,4670,3322],{"class":2422},[111,4672,2434],{"class":145},[111,4674,4676,4678,4680],{"class":113,"line":4675},147,[111,4677,3329],{"class":145},[111,4679,4018],{"class":2422},[111,4681,2434],{"class":145},[111,4683,4685,4687,4689,4691,4693],{"class":113,"line":4684},148,[111,4686,3339],{"class":145},[111,4688,3356],{"class":2422},[111,4690,4030],{"class":145},[111,4692,3356],{"class":2422},[111,4694,2434],{"class":145},[111,4696,4698,4700,4702],{"class":113,"line":4697},149,[111,4699,3368],{"class":145},[111,4701,4018],{"class":2422},[111,4703,2434],{"class":145},[111,4705,4707,4709,4711],{"class":113,"line":4706},150,[111,4708,3377],{"class":145},[111,4710,3322],{"class":2422},[111,4712,2434],{"class":145},[111,4714,4716,4718,4720],{"class":113,"line":4715},151,[111,4717,2836],{"class":145},[111,4719,3529],{"class":2422},[111,4721,2434],{"class":145},[111,4723,4725,4727,4729,4731,4733],{"class":113,"line":4724},152,[111,4726,3329],{"class":145},[111,4728,3213],{"class":2422},[111,4730,4208],{"class":145},[111,4732,3213],{"class":2422},[111,4734,2434],{"class":145},[111,4736,4738,4740,4742,4744,4746],{"class":113,"line":4737},153,[111,4739,3329],{"class":145},[111,4741,3551],{"class":2422},[111,4743,3230],{"class":145},[111,4745,3551],{"class":2422},[111,4747,2434],{"class":145},[111,4749,4751,4753,4755,4757,4759],{"class":113,"line":4750},154,[111,4752,3329],{"class":145},[111,4754,3564],{"class":2422},[111,4756,4235],{"class":145},[111,4758,3564],{"class":2422},[111,4760,2434],{"class":145},[111,4762,4764,4766,4768],{"class":113,"line":4763},155,[111,4765,3377],{"class":145},[111,4767,3529],{"class":2422},[111,4769,2434],{"class":145},[111,4771,4773,4775,4777],{"class":113,"line":4772},156,[111,4774,2876],{"class":145},[111,4776,3457],{"class":2422},[111,4778,2434],{"class":145},[111,4780,4782,4784,4786,4788,4790],{"class":113,"line":4781},157,[111,4783,2640],{"class":145},[111,4785,3593],{"class":2422},[111,4787,3596],{"class":145},[111,4789,3593],{"class":2422},[111,4791,2434],{"class":145},[111,4793,4795,4797,4799,4801,4803],{"class":113,"line":4794},158,[111,4796,2640],{"class":145},[111,4798,3746],{"class":2422},[111,4800,3749],{"class":145},[111,4802,3746],{"class":2422},[111,4804,2434],{"class":145},[111,4806,4808,4810,4812],{"class":113,"line":4807},159,[111,4809,2700],{"class":145},[111,4811,2442],{"class":2422},[111,4813,2434],{"class":145},[111,4815,4817,4819,4821,4823,4825],{"class":113,"line":4816},160,[111,4818,2466],{"class":145},[111,4820,3278],{"class":2422},[111,4822,3749],{"class":145},[111,4824,3278],{"class":2422},[111,4826,2434],{"class":145},[111,4828,4830,4832,4834,4836,4838],{"class":113,"line":4829},161,[111,4831,2466],{"class":145},[111,4833,3783],{"class":2422},[111,4835,3749],{"class":145},[111,4837,3783],{"class":2422},[111,4839,2434],{"class":145},[111,4841,4843,4845,4847],{"class":113,"line":4842},162,[111,4844,2537],{"class":145},[111,4846,2780],{"class":2422},[111,4848,2434],{"class":145},[111,4850,4852,4854,4856,4858,4860,4863],{"class":113,"line":4851},163,[111,4853,2456],{"class":145},[111,4855,2780],{"class":2422},[111,4857,2426],{"class":131},[111,4859,1733],{"class":145},[111,4861,4862],{"class":135},"'box_1'",[111,4864,2434],{"class":145},[111,4866,4868,4870,4872,4875,4877],{"class":113,"line":4867},164,[111,4869,2466],{"class":145},[111,4871,3593],{"class":2422},[111,4873,4874],{"class":145},">-0 -2.5 0.5 -0 -0 -0\u003C/",[111,4876,3593],{"class":2422},[111,4878,2434],{"class":145},[111,4880,4882,4884,4886,4888,4890,4892],{"class":113,"line":4881},165,[111,4883,2466],{"class":145},[111,4885,2442],{"class":2422},[111,4887,2426],{"class":131},[111,4889,1733],{"class":145},[111,4891,3842],{"class":135},[111,4893,2434],{"class":145},[111,4895,4897,4899,4901],{"class":113,"line":4896},166,[111,4898,2640],{"class":145},[111,4900,2459],{"class":2422},[111,4902,2434],{"class":145},[111,4904,4906,4908,4910],{"class":113,"line":4905},167,[111,4907,2836],{"class":145},[111,4909,2487],{"class":2422},[111,4911,2434],{"class":145},[111,4913,4915,4917,4919,4921,4923],{"class":113,"line":4914},168,[111,4916,3329],{"class":145},[111,4918,2839],{"class":2422},[111,4920,3872],{"class":145},[111,4922,2839],{"class":2422},[111,4924,2434],{"class":145},[111,4926,4928,4930,4932,4934,4936],{"class":113,"line":4927},169,[111,4929,3329],{"class":145},[111,4931,3660],{"class":2422},[111,4933,3663],{"class":145},[111,4935,3660],{"class":2422},[111,4937,2434],{"class":145},[111,4939,4941,4943,4945,4947,4949],{"class":113,"line":4940},170,[111,4942,3329],{"class":145},[111,4944,3674],{"class":2422},[111,4946,3663],{"class":145},[111,4948,3674],{"class":2422},[111,4950,2434],{"class":145},[111,4952,4954,4956,4958,4960,4962],{"class":113,"line":4953},171,[111,4955,3329],{"class":145},[111,4957,2852],{"class":2422},[111,4959,3872],{"class":145},[111,4961,2852],{"class":2422},[111,4963,2434],{"class":145},[111,4965,4967,4969,4971,4973,4975],{"class":113,"line":4966},172,[111,4968,3329],{"class":145},[111,4970,3701],{"class":2422},[111,4972,3663],{"class":145},[111,4974,3701],{"class":2422},[111,4976,2434],{"class":145},[111,4978,4980,4982,4984,4986,4988],{"class":113,"line":4979},173,[111,4981,3329],{"class":145},[111,4983,2865],{"class":2422},[111,4985,3872],{"class":145},[111,4987,2865],{"class":2422},[111,4989,2434],{"class":145},[111,4991,4993,4995,4997],{"class":113,"line":4992},174,[111,4994,3377],{"class":145},[111,4996,2487],{"class":2422},[111,4998,2434],{"class":145},[111,5000,5002,5004,5006,5008,5010],{"class":113,"line":5001},175,[111,5003,2836],{"class":145},[111,5005,2469],{"class":2422},[111,5007,3629],{"class":145},[111,5009,2469],{"class":2422},[111,5011,2434],{"class":145},[111,5013,5015,5017,5019,5021,5023],{"class":113,"line":5014},176,[111,5016,2836],{"class":145},[111,5018,3593],{"class":2422},[111,5020,3596],{"class":145},[111,5022,3593],{"class":2422},[111,5024,2434],{"class":145},[111,5026,5028,5030,5032],{"class":113,"line":5027},177,[111,5029,2876],{"class":145},[111,5031,2459],{"class":2422},[111,5033,2434],{"class":145},[111,5035,5037,5039,5041,5043,5045,5047],{"class":113,"line":5036},178,[111,5038,2640],{"class":145},[111,5040,3306],{"class":2422},[111,5042,2426],{"class":131},[111,5044,1733],{"class":145},[111,5046,3999],{"class":135},[111,5048,2434],{"class":145},[111,5050,5052,5054,5056],{"class":113,"line":5051},179,[111,5053,2836],{"class":145},[111,5055,3322],{"class":2422},[111,5057,2434],{"class":145},[111,5059,5061,5063,5065],{"class":113,"line":5060},180,[111,5062,3329],{"class":145},[111,5064,4018],{"class":2422},[111,5066,2434],{"class":145},[111,5068,5070,5072,5074,5077,5079],{"class":113,"line":5069},181,[111,5071,3339],{"class":145},[111,5073,3356],{"class":2422},[111,5075,5076],{"class":145},">10 0.1 1\u003C/",[111,5078,3356],{"class":2422},[111,5080,2434],{"class":145},[111,5082,5084,5086,5088],{"class":113,"line":5083},182,[111,5085,3368],{"class":145},[111,5087,4018],{"class":2422},[111,5089,2434],{"class":145},[111,5091,5093,5095,5097],{"class":113,"line":5092},183,[111,5094,3377],{"class":145},[111,5096,3322],{"class":2422},[111,5098,2434],{"class":145},[111,5100,5102,5104,5106],{"class":113,"line":5101},184,[111,5103,2836],{"class":145},[111,5105,3388],{"class":2422},[111,5107,2434],{"class":145},[111,5109,5111,5113,5115],{"class":113,"line":5110},185,[111,5112,3329],{"class":145},[111,5114,3397],{"class":2422},[111,5116,2434],{"class":145},[111,5118,5120,5122,5124],{"class":113,"line":5119},186,[111,5121,3339],{"class":145},[111,5123,3406],{"class":2422},[111,5125,3087],{"class":145},[111,5127,5129,5131,5133],{"class":113,"line":5128},187,[111,5130,3368],{"class":145},[111,5132,3397],{"class":2422},[111,5134,2434],{"class":145},[111,5136,5138,5140,5142],{"class":113,"line":5137},188,[111,5139,3329],{"class":145},[111,5141,3423],{"class":2422},[111,5143,3087],{"class":145},[111,5145,5147,5149,5151],{"class":113,"line":5146},189,[111,5148,3329],{"class":145},[111,5150,3432],{"class":2422},[111,5152,3087],{"class":145},[111,5154,5156,5158,5160],{"class":113,"line":5155},190,[111,5157,3377],{"class":145},[111,5159,3388],{"class":2422},[111,5161,2434],{"class":145},[111,5163,5165,5167,5169],{"class":113,"line":5164},191,[111,5166,2876],{"class":145},[111,5168,3306],{"class":2422},[111,5170,2434],{"class":145},[111,5172,5174,5176,5178,5180,5182,5184],{"class":113,"line":5173},192,[111,5175,2640],{"class":145},[111,5177,3457],{"class":2422},[111,5179,2426],{"class":131},[111,5181,1733],{"class":145},[111,5183,4138],{"class":135},[111,5185,2434],{"class":145},[111,5187,5189,5191,5193],{"class":113,"line":5188},193,[111,5190,2836],{"class":145},[111,5192,3322],{"class":2422},[111,5194,2434],{"class":145},[111,5196,5198,5200,5202],{"class":113,"line":5197},194,[111,5199,3329],{"class":145},[111,5201,4018],{"class":2422},[111,5203,2434],{"class":145},[111,5205,5207,5209,5211,5213,5215],{"class":113,"line":5206},195,[111,5208,3339],{"class":145},[111,5210,3356],{"class":2422},[111,5212,5076],{"class":145},[111,5214,3356],{"class":2422},[111,5216,2434],{"class":145},[111,5218,5220,5222,5224],{"class":113,"line":5219},196,[111,5221,3368],{"class":145},[111,5223,4018],{"class":2422},[111,5225,2434],{"class":145},[111,5227,5229,5231,5233],{"class":113,"line":5228},197,[111,5230,3377],{"class":145},[111,5232,3322],{"class":2422},[111,5234,2434],{"class":145},[111,5236,5238,5240,5242],{"class":113,"line":5237},198,[111,5239,2836],{"class":145},[111,5241,3529],{"class":2422},[111,5243,2434],{"class":145},[111,5245,5247,5249,5251,5253,5255],{"class":113,"line":5246},199,[111,5248,3329],{"class":145},[111,5250,3213],{"class":2422},[111,5252,4208],{"class":145},[111,5254,3213],{"class":2422},[111,5256,2434],{"class":145},[111,5258,5260,5262,5264,5266,5268],{"class":113,"line":5259},200,[111,5261,3329],{"class":145},[111,5263,3551],{"class":2422},[111,5265,3230],{"class":145},[111,5267,3551],{"class":2422},[111,5269,2434],{"class":145},[111,5271,5273,5275,5277,5279,5281],{"class":113,"line":5272},201,[111,5274,3329],{"class":145},[111,5276,3564],{"class":2422},[111,5278,4235],{"class":145},[111,5280,3564],{"class":2422},[111,5282,2434],{"class":145},[111,5284,5286,5288,5290],{"class":113,"line":5285},202,[111,5287,3377],{"class":145},[111,5289,3529],{"class":2422},[111,5291,2434],{"class":145},[111,5293,5295,5297,5299],{"class":113,"line":5294},203,[111,5296,2876],{"class":145},[111,5298,3457],{"class":2422},[111,5300,2434],{"class":145},[111,5302,5304,5306,5308,5310,5312],{"class":113,"line":5303},204,[111,5305,2640],{"class":145},[111,5307,3593],{"class":2422},[111,5309,3596],{"class":145},[111,5311,3593],{"class":2422},[111,5313,2434],{"class":145},[111,5315,5317,5319,5321,5323,5325],{"class":113,"line":5316},205,[111,5318,2640],{"class":145},[111,5320,3746],{"class":2422},[111,5322,3749],{"class":145},[111,5324,3746],{"class":2422},[111,5326,2434],{"class":145},[111,5328,5330,5332,5334],{"class":113,"line":5329},206,[111,5331,2700],{"class":145},[111,5333,2442],{"class":2422},[111,5335,2434],{"class":145},[111,5337,5339,5341,5343,5345,5347],{"class":113,"line":5338},207,[111,5340,2466],{"class":145},[111,5342,3278],{"class":2422},[111,5344,3749],{"class":145},[111,5346,3278],{"class":2422},[111,5348,2434],{"class":145},[111,5350,5352,5354,5356,5358,5360],{"class":113,"line":5351},208,[111,5353,2466],{"class":145},[111,5355,3783],{"class":2422},[111,5357,3749],{"class":145},[111,5359,3783],{"class":2422},[111,5361,2434],{"class":145},[111,5363,5365,5367,5369],{"class":113,"line":5364},209,[111,5366,2537],{"class":145},[111,5368,2780],{"class":2422},[111,5370,2434],{"class":145},[111,5372,5374,5376,5378,5380,5382,5385],{"class":113,"line":5373},210,[111,5375,2456],{"class":145},[111,5377,2780],{"class":2422},[111,5379,2426],{"class":131},[111,5381,1733],{"class":145},[111,5383,5384],{"class":135},"'box_2'",[111,5386,2434],{"class":145},[111,5388,5390,5392,5394,5397,5399],{"class":113,"line":5389},211,[111,5391,2466],{"class":145},[111,5393,3593],{"class":2422},[111,5395,5396],{"class":145},">-0 2.5 0.5 0 -0 -0\u003C/",[111,5398,3593],{"class":2422},[111,5400,2434],{"class":145},[111,5402,5404,5406,5408,5410,5412,5414],{"class":113,"line":5403},212,[111,5405,2466],{"class":145},[111,5407,2442],{"class":2422},[111,5409,2426],{"class":131},[111,5411,1733],{"class":145},[111,5413,3842],{"class":135},[111,5415,2434],{"class":145},[111,5417,5419,5421,5423],{"class":113,"line":5418},213,[111,5420,2640],{"class":145},[111,5422,2459],{"class":2422},[111,5424,2434],{"class":145},[111,5426,5428,5430,5432],{"class":113,"line":5427},214,[111,5429,2836],{"class":145},[111,5431,2487],{"class":2422},[111,5433,2434],{"class":145},[111,5435,5437,5439,5441,5443,5445],{"class":113,"line":5436},215,[111,5438,3329],{"class":145},[111,5440,2839],{"class":2422},[111,5442,3872],{"class":145},[111,5444,2839],{"class":2422},[111,5446,2434],{"class":145},[111,5448,5450,5452,5454,5456,5458],{"class":113,"line":5449},216,[111,5451,3329],{"class":145},[111,5453,3660],{"class":2422},[111,5455,3663],{"class":145},[111,5457,3660],{"class":2422},[111,5459,2434],{"class":145},[111,5461,5463,5465,5467,5469,5471],{"class":113,"line":5462},217,[111,5464,3329],{"class":145},[111,5466,3674],{"class":2422},[111,5468,3663],{"class":145},[111,5470,3674],{"class":2422},[111,5472,2434],{"class":145},[111,5474,5476,5478,5480,5482,5484],{"class":113,"line":5475},218,[111,5477,3329],{"class":145},[111,5479,2852],{"class":2422},[111,5481,3872],{"class":145},[111,5483,2852],{"class":2422},[111,5485,2434],{"class":145},[111,5487,5489,5491,5493,5495,5497],{"class":113,"line":5488},219,[111,5490,3329],{"class":145},[111,5492,3701],{"class":2422},[111,5494,3663],{"class":145},[111,5496,3701],{"class":2422},[111,5498,2434],{"class":145},[111,5500,5502,5504,5506,5508,5510],{"class":113,"line":5501},220,[111,5503,3329],{"class":145},[111,5505,2865],{"class":2422},[111,5507,3872],{"class":145},[111,5509,2865],{"class":2422},[111,5511,2434],{"class":145},[111,5513,5515,5517,5519],{"class":113,"line":5514},221,[111,5516,3377],{"class":145},[111,5518,2487],{"class":2422},[111,5520,2434],{"class":145},[111,5522,5524,5526,5528,5530,5532],{"class":113,"line":5523},222,[111,5525,2836],{"class":145},[111,5527,2469],{"class":2422},[111,5529,3629],{"class":145},[111,5531,2469],{"class":2422},[111,5533,2434],{"class":145},[111,5535,5537,5539,5541,5543,5545],{"class":113,"line":5536},223,[111,5538,2836],{"class":145},[111,5540,3593],{"class":2422},[111,5542,3596],{"class":145},[111,5544,3593],{"class":2422},[111,5546,2434],{"class":145},[111,5548,5550,5552,5554],{"class":113,"line":5549},224,[111,5551,2876],{"class":145},[111,5553,2459],{"class":2422},[111,5555,2434],{"class":145},[111,5557,5559,5561,5563,5565,5567,5569],{"class":113,"line":5558},225,[111,5560,2640],{"class":145},[111,5562,3306],{"class":2422},[111,5564,2426],{"class":131},[111,5566,1733],{"class":145},[111,5568,3999],{"class":135},[111,5570,2434],{"class":145},[111,5572,5574,5576,5578],{"class":113,"line":5573},226,[111,5575,2836],{"class":145},[111,5577,3322],{"class":2422},[111,5579,2434],{"class":145},[111,5581,5583,5585,5587],{"class":113,"line":5582},227,[111,5584,3329],{"class":145},[111,5586,4018],{"class":2422},[111,5588,2434],{"class":145},[111,5590,5592,5594,5596,5598,5600],{"class":113,"line":5591},228,[111,5593,3339],{"class":145},[111,5595,3356],{"class":2422},[111,5597,5076],{"class":145},[111,5599,3356],{"class":2422},[111,5601,2434],{"class":145},[111,5603,5605,5607,5609],{"class":113,"line":5604},229,[111,5606,3368],{"class":145},[111,5608,4018],{"class":2422},[111,5610,2434],{"class":145},[111,5612,5614,5616,5618],{"class":113,"line":5613},230,[111,5615,3377],{"class":145},[111,5617,3322],{"class":2422},[111,5619,2434],{"class":145},[111,5621,5623,5625,5627],{"class":113,"line":5622},231,[111,5624,2836],{"class":145},[111,5626,3388],{"class":2422},[111,5628,2434],{"class":145},[111,5630,5632,5634,5636],{"class":113,"line":5631},232,[111,5633,3329],{"class":145},[111,5635,3397],{"class":2422},[111,5637,2434],{"class":145},[111,5639,5641,5643,5645],{"class":113,"line":5640},233,[111,5642,3339],{"class":145},[111,5644,3406],{"class":2422},[111,5646,3087],{"class":145},[111,5648,5650,5652,5654],{"class":113,"line":5649},234,[111,5651,3368],{"class":145},[111,5653,3397],{"class":2422},[111,5655,2434],{"class":145},[111,5657,5659,5661,5663],{"class":113,"line":5658},235,[111,5660,3329],{"class":145},[111,5662,3423],{"class":2422},[111,5664,3087],{"class":145},[111,5666,5668,5670,5672],{"class":113,"line":5667},236,[111,5669,3329],{"class":145},[111,5671,3432],{"class":2422},[111,5673,3087],{"class":145},[111,5675,5677,5679,5681],{"class":113,"line":5676},237,[111,5678,3377],{"class":145},[111,5680,3388],{"class":2422},[111,5682,2434],{"class":145},[111,5684,5686,5688,5690],{"class":113,"line":5685},238,[111,5687,2876],{"class":145},[111,5689,3306],{"class":2422},[111,5691,2434],{"class":145},[111,5693,5695,5697,5699,5701,5703,5705],{"class":113,"line":5694},239,[111,5696,2640],{"class":145},[111,5698,3457],{"class":2422},[111,5700,2426],{"class":131},[111,5702,1733],{"class":145},[111,5704,4138],{"class":135},[111,5706,2434],{"class":145},[111,5708,5710,5712,5714],{"class":113,"line":5709},240,[111,5711,2836],{"class":145},[111,5713,3322],{"class":2422},[111,5715,2434],{"class":145},[111,5717,5719,5721,5723],{"class":113,"line":5718},241,[111,5720,3329],{"class":145},[111,5722,4018],{"class":2422},[111,5724,2434],{"class":145},[111,5726,5728,5730,5732,5734,5736],{"class":113,"line":5727},242,[111,5729,3339],{"class":145},[111,5731,3356],{"class":2422},[111,5733,5076],{"class":145},[111,5735,3356],{"class":2422},[111,5737,2434],{"class":145},[111,5739,5741,5743,5745],{"class":113,"line":5740},243,[111,5742,3368],{"class":145},[111,5744,4018],{"class":2422},[111,5746,2434],{"class":145},[111,5748,5750,5752,5754],{"class":113,"line":5749},244,[111,5751,3377],{"class":145},[111,5753,3322],{"class":2422},[111,5755,2434],{"class":145},[111,5757,5759,5761,5763],{"class":113,"line":5758},245,[111,5760,2836],{"class":145},[111,5762,3529],{"class":2422},[111,5764,2434],{"class":145},[111,5766,5768,5770,5772,5774,5776],{"class":113,"line":5767},246,[111,5769,3329],{"class":145},[111,5771,3213],{"class":2422},[111,5773,4208],{"class":145},[111,5775,3213],{"class":2422},[111,5777,2434],{"class":145},[111,5779,5781,5783,5785,5787,5789],{"class":113,"line":5780},247,[111,5782,3329],{"class":145},[111,5784,3551],{"class":2422},[111,5786,3230],{"class":145},[111,5788,3551],{"class":2422},[111,5790,2434],{"class":145},[111,5792,5794,5796,5798,5800,5802],{"class":113,"line":5793},248,[111,5795,3329],{"class":145},[111,5797,3564],{"class":2422},[111,5799,4235],{"class":145},[111,5801,3564],{"class":2422},[111,5803,2434],{"class":145},[111,5805,5807,5809,5811],{"class":113,"line":5806},249,[111,5808,3377],{"class":145},[111,5810,3529],{"class":2422},[111,5812,2434],{"class":145},[111,5814,5816,5818,5820],{"class":113,"line":5815},250,[111,5817,2876],{"class":145},[111,5819,3457],{"class":2422},[111,5821,2434],{"class":145},[111,5823,5825,5827,5829,5831,5833],{"class":113,"line":5824},251,[111,5826,2640],{"class":145},[111,5828,3593],{"class":2422},[111,5830,3596],{"class":145},[111,5832,3593],{"class":2422},[111,5834,2434],{"class":145},[111,5836,5838,5840,5842,5844,5846],{"class":113,"line":5837},252,[111,5839,2640],{"class":145},[111,5841,3746],{"class":2422},[111,5843,3749],{"class":145},[111,5845,3746],{"class":2422},[111,5847,2434],{"class":145},[111,5849,5851,5853,5855],{"class":113,"line":5850},253,[111,5852,2700],{"class":145},[111,5854,2442],{"class":2422},[111,5856,2434],{"class":145},[111,5858,5860,5862,5864,5866,5868],{"class":113,"line":5859},254,[111,5861,2466],{"class":145},[111,5863,3278],{"class":2422},[111,5865,3749],{"class":145},[111,5867,3278],{"class":2422},[111,5869,2434],{"class":145},[111,5871,5873,5875,5877,5879,5881],{"class":113,"line":5872},255,[111,5874,2466],{"class":145},[111,5876,3783],{"class":2422},[111,5878,3749],{"class":145},[111,5880,3783],{"class":2422},[111,5882,2434],{"class":145},[111,5884,5886,5888,5890],{"class":113,"line":5885},256,[111,5887,2537],{"class":145},[111,5889,2780],{"class":2422},[111,5891,2434],{"class":145},[111,5893,5895,5897,5900,5902,5904,5907,5909,5911,5914],{"class":113,"line":5894},257,[111,5896,2456],{"class":145},[111,5898,5899],{"class":2422},"light",[111,5901,2426],{"class":131},[111,5903,1733],{"class":145},[111,5905,5906],{"class":135},"'sun'",[111,5908,3005],{"class":131},[111,5910,1733],{"class":145},[111,5912,5913],{"class":135},"'directional'",[111,5915,2434],{"class":145},[111,5917,5919,5921,5923,5926,5928],{"class":113,"line":5918},258,[111,5920,2466],{"class":145},[111,5922,3593],{"class":2422},[111,5924,5925],{"class":145},">0 0 10 0 -0 0\u003C/",[111,5927,3593],{"class":2422},[111,5929,2434],{"class":145},[111,5931,5933,5935,5938,5940,5942],{"class":113,"line":5932},259,[111,5934,2466],{"class":145},[111,5936,5937],{"class":2422},"cast_shadows",[111,5939,3244],{"class":145},[111,5941,5937],{"class":2422},[111,5943,2434],{"class":145},[111,5945,5947,5949,5952,5954,5956],{"class":113,"line":5946},260,[111,5948,2466],{"class":145},[111,5950,5951],{"class":2422},"intensity",[111,5953,3036],{"class":145},[111,5955,5951],{"class":2422},[111,5957,2434],{"class":145},[111,5959,5961,5963,5966,5969,5971],{"class":113,"line":5960},261,[111,5962,2466],{"class":145},[111,5964,5965],{"class":2422},"direction",[111,5967,5968],{"class":145},">-0.5 0.1 -0.9\u003C/",[111,5970,5965],{"class":2422},[111,5972,2434],{"class":145},[111,5974,5976,5978,5980,5982,5984],{"class":113,"line":5975},262,[111,5977,2466],{"class":145},[111,5979,3551],{"class":2422},[111,5981,3540],{"class":145},[111,5983,3551],{"class":2422},[111,5985,2434],{"class":145},[111,5987,5989,5991,5993,5996,5998],{"class":113,"line":5988},263,[111,5990,2466],{"class":145},[111,5992,3564],{"class":2422},[111,5994,5995],{"class":145},">0.2 0.2 0.2 1\u003C/",[111,5997,3564],{"class":2422},[111,5999,2434],{"class":145},[111,6001,6003,6005,6008],{"class":113,"line":6002},264,[111,6004,2466],{"class":145},[111,6006,6007],{"class":2422},"attenuation",[111,6009,2434],{"class":145},[111,6011,6013,6015,6018,6020,6022],{"class":113,"line":6012},265,[111,6014,2640],{"class":145},[111,6016,6017],{"class":2422},"range",[111,6019,3050],{"class":145},[111,6021,6017],{"class":2422},[111,6023,2434],{"class":145},[111,6025,6027,6029,6032,6035,6037],{"class":113,"line":6026},266,[111,6028,2640],{"class":145},[111,6030,6031],{"class":2422},"linear",[111,6033,6034],{"class":145},">0.01\u003C/",[111,6036,6031],{"class":2422},[111,6038,2434],{"class":145},[111,6040,6042,6044,6047,6050,6052],{"class":113,"line":6041},267,[111,6043,2640],{"class":145},[111,6045,6046],{"class":2422},"constant",[111,6048,6049],{"class":145},">0.90000000000000002\u003C/",[111,6051,6046],{"class":2422},[111,6053,2434],{"class":145},[111,6055,6057,6059,6062,6064,6066],{"class":113,"line":6056},268,[111,6058,2640],{"class":145},[111,6060,6061],{"class":2422},"quadratic",[111,6063,3022],{"class":145},[111,6065,6061],{"class":2422},[111,6067,2434],{"class":145},[111,6069,6071,6073,6075],{"class":113,"line":6070},269,[111,6072,2700],{"class":145},[111,6074,6007],{"class":2422},[111,6076,2434],{"class":145},[111,6078,6080,6082,6085],{"class":113,"line":6079},270,[111,6081,2466],{"class":145},[111,6083,6084],{"class":2422},"spot",[111,6086,2434],{"class":145},[111,6088,6090,6092,6095,6097,6099],{"class":113,"line":6089},271,[111,6091,2640],{"class":145},[111,6093,6094],{"class":2422},"inner_angle",[111,6096,3663],{"class":145},[111,6098,6094],{"class":2422},[111,6100,2434],{"class":145},[111,6102,6104,6106,6109,6111,6113],{"class":113,"line":6103},272,[111,6105,2640],{"class":145},[111,6107,6108],{"class":2422},"outer_angle",[111,6110,3663],{"class":145},[111,6112,6108],{"class":2422},[111,6114,2434],{"class":145},[111,6116,6118,6120,6123,6125,6127],{"class":113,"line":6117},273,[111,6119,2640],{"class":145},[111,6121,6122],{"class":2422},"falloff",[111,6124,3663],{"class":145},[111,6126,6122],{"class":2422},[111,6128,2434],{"class":145},[111,6130,6132,6134,6136],{"class":113,"line":6131},274,[111,6133,2700],{"class":145},[111,6135,6084],{"class":2422},[111,6137,2434],{"class":145},[111,6139,6141,6143,6145],{"class":113,"line":6140},275,[111,6142,2537],{"class":145},[111,6144,5899],{"class":2422},[111,6146,2434],{"class":145},[111,6148,6150,6152,6154],{"class":113,"line":6149},276,[111,6151,2546],{"class":145},[111,6153,1490],{"class":2422},[111,6155,2434],{"class":145},[111,6157,6159,6161,6163],{"class":113,"line":6158},277,[111,6160,2555],{"class":145},[111,6162,2763],{"class":2422},[111,6164,2434],{"class":145},[15,6166,6167],{},[50,6168,6169],{},"2. Modify the sdf file",[15,6171,6172,6173,6176,6177,6180,6181,1812,6183,1812,6186,6189,6190,6193,6194,6197,6198,6200,6201,2296,6203,6206,6207,6197,6209,6200,6211,2296,6213,6216,6217,6221,6222,6221,6224,6221,6227,6221,6230,6221,6233,6221,6236,6221,6239,6221,6242,6221,6245,6221,6247,6250],{},"Modify the SDF file to adjust the cube dimensions and enclose the walls. In the SDF file, the four cubes correspond to four ",[108,6174,6175],{},"\u003Cmodel>"," tags, whose ",[108,6178,6179],{},"name"," attributes are ",[108,6182,4018],{},[108,6184,6185],{},"box_1",[108,6187,6188],{},"box_2",", and ",[108,6191,6192],{},"box_3",". Change the ",[108,6195,6196],{},"\u003Csize>1 1 1\u003C/size>"," in ",[108,6199,4018],{}," and ",[108,6202,6185],{},[108,6204,6205],{},"\u003Csize>0.1 5 1\u003C/size>",", and change the ",[108,6208,6196],{},[108,6210,6188],{},[108,6212,6192],{},[108,6214,6215],{},"\u003Csize>10 0.1 1\u003C/size>"," (",[6218,6219,6220],"em",{},"Note: Each"," ",[108,6223,6175],{},[6218,6225,6226],{},"tag contains two",[108,6228,6229],{},"\u003Csize>",[6218,6231,6232],{},"tags, located under the",[108,6234,6235],{},"\u003Ccollision>",[6218,6237,6238],{},"tag and the",[108,6240,6241],{},"\u003Cvisual>",[6218,6243,6244],{},"tag respectively; both",[108,6246,6229],{},[6218,6248,6249],{},"tag contents need to be modified",").",[15,6252,6253,6254,6256],{},"The modified content of the ",[108,6255,2943],{}," file is as follows:",[101,6258,6260],{"className":2410,"code":6259,"language":2412,"meta":106,"style":106},"\u003Csdf version='1.9'>\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='ign::gazebo::systems::Physics' filename='ignition-gazebo-physics-system'/>\n    \u003Cplugin name='ign::gazebo::systems::UserCommands' filename='ignition-gazebo-user-commands-system'/>\n    \u003Cplugin name='ign::gazebo::systems::SceneBroadcaster' filename='ignition-gazebo-scene-broadcaster-system'/>\n    \u003Cplugin name='ign::gazebo::systems::Contact' filename='ignition-gazebo-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>false\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>false\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>false\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>false\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",[108,6261,6262,6276,6290,6310,6322,6334,6346,6354,6375,6396,6417,6438,6450,6462,6476,6484,6496,6508,6520,6528,6542,6554,6568,6582,6590,6598,6610,6622,6630,6638,6646,6654,6662,6670,6678,6686,6694,6702,6716,6724,6732,6744,6756,6764,6772,6780,6792,6804,6816,6824,6832,6844,6852,6864,6876,6884,6896,6908,6920,6932,6944,6956,6964,6972,6984,6992,7004,7016,7024,7038,7050,7064,7072,7080,7092,7104,7116,7128,7140,7152,7160,7172,7184,7192,7206,7214,7222,7234,7242,7250,7258,7266,7274,7282,7290,7298,7306,7314,7328,7336,7344,7356,7364,7372,7380,7392,7404,7416,7424,7432,7444,7456,7464,7476,7488,7496,7510,7522,7536,7544,7552,7564,7576,7588,7600,7612,7624,7632,7644,7656,7664,7678,7686,7694,7706,7714,7722,7730,7738,7746,7754,7762,7770,7778,7786,7800,7808,7816,7828,7836,7844,7852,7864,7876,7888,7896,7904,7916,7928,7936,7948,7960,7968,7982,7994,8008,8016,8024,8036,8048,8060,8072,8084,8096,8104,8116,8128,8136,8150,8158,8166,8178,8186,8194,8202,8210,8218,8226,8234,8242,8250,8258,8272,8280,8288,8300,8308,8316,8324,8336,8348,8360,8368,8376,8388,8400,8408,8420,8432,8440,8454,8466,8480,8488,8496,8508,8520,8532,8544,8556,8568,8576,8588,8600,8608,8622,8630,8638,8650,8658,8666,8674,8682,8690,8698,8706,8714,8722,8730,8744,8752,8760,8772,8780,8788,8796,8808,8820,8832,8840,8848,8860,8872,8880,8892,8904,8912,8932,8944,8956,8968,8980,8992,9004,9012,9024,9036,9048,9060,9068,9076,9088,9100,9112,9120,9128,9136],{"__ignoreMap":106},[111,6263,6264,6266,6268,6270,6272,6274],{"class":113,"line":114},[111,6265,2419],{"class":145},[111,6267,2763],{"class":2422},[111,6269,2766],{"class":131},[111,6271,1733],{"class":145},[111,6273,2971],{"class":135},[111,6275,2434],{"class":145},[111,6277,6278,6280,6282,6284,6286,6288],{"class":113,"line":121},[111,6279,2439],{"class":145},[111,6281,1490],{"class":2422},[111,6283,2426],{"class":131},[111,6285,1733],{"class":145},[111,6287,2986],{"class":135},[111,6289,2434],{"class":145},[111,6291,6292,6294,6296,6298,6300,6302,6304,6306,6308],{"class":113,"line":128},[111,6293,2456],{"class":145},[111,6295,2995],{"class":2422},[111,6297,2426],{"class":131},[111,6299,1733],{"class":145},[111,6301,3002],{"class":135},[111,6303,3005],{"class":131},[111,6305,1733],{"class":145},[111,6307,3010],{"class":135},[111,6309,2434],{"class":145},[111,6311,6312,6314,6316,6318,6320],{"class":113,"line":152},[111,6313,2466],{"class":145},[111,6315,3019],{"class":2422},[111,6317,3022],{"class":145},[111,6319,3019],{"class":2422},[111,6321,2434],{"class":145},[111,6323,6324,6326,6328,6330,6332],{"class":113,"line":157},[111,6325,2466],{"class":145},[111,6327,3033],{"class":2422},[111,6329,3036],{"class":145},[111,6331,3033],{"class":2422},[111,6333,2434],{"class":145},[111,6335,6336,6338,6340,6342,6344],{"class":113,"line":163},[111,6337,2466],{"class":145},[111,6339,3047],{"class":2422},[111,6341,3050],{"class":145},[111,6343,3047],{"class":2422},[111,6345,2434],{"class":145},[111,6347,6348,6350,6352],{"class":113,"line":175},[111,6349,2537],{"class":145},[111,6351,2995],{"class":2422},[111,6353,2434],{"class":145},[111,6355,6356,6358,6360,6362,6364,6367,6369,6371,6373],{"class":113,"line":180},[111,6357,2456],{"class":145},[111,6359,3069],{"class":2422},[111,6361,2426],{"class":131},[111,6363,1733],{"class":145},[111,6365,6366],{"class":135},"'ign::gazebo::systems::Physics'",[111,6368,3079],{"class":131},[111,6370,1733],{"class":145},[111,6372,3084],{"class":135},[111,6374,3087],{"class":145},[111,6376,6377,6379,6381,6383,6385,6388,6390,6392,6394],{"class":113,"line":186},[111,6378,2456],{"class":145},[111,6380,3069],{"class":2422},[111,6382,2426],{"class":131},[111,6384,1733],{"class":145},[111,6386,6387],{"class":135},"'ign::gazebo::systems::UserCommands'",[111,6389,3079],{"class":131},[111,6391,1733],{"class":145},[111,6393,3107],{"class":135},[111,6395,3087],{"class":145},[111,6397,6398,6400,6402,6404,6406,6409,6411,6413,6415],{"class":113,"line":433},[111,6399,2456],{"class":145},[111,6401,3069],{"class":2422},[111,6403,2426],{"class":131},[111,6405,1733],{"class":145},[111,6407,6408],{"class":135},"'ign::gazebo::systems::SceneBroadcaster'",[111,6410,3079],{"class":131},[111,6412,1733],{"class":145},[111,6414,3129],{"class":135},[111,6416,3087],{"class":145},[111,6418,6419,6421,6423,6425,6427,6430,6432,6434,6436],{"class":113,"line":439},[111,6420,2456],{"class":145},[111,6422,3069],{"class":2422},[111,6424,2426],{"class":131},[111,6426,1733],{"class":145},[111,6428,6429],{"class":135},"'ign::gazebo::systems::Contact'",[111,6431,3079],{"class":131},[111,6433,1733],{"class":145},[111,6435,3151],{"class":135},[111,6437,3087],{"class":145},[111,6439,6440,6442,6444,6446,6448],{"class":113,"line":445},[111,6441,2456],{"class":145},[111,6443,3160],{"class":2422},[111,6445,3163],{"class":145},[111,6447,3160],{"class":2422},[111,6449,2434],{"class":145},[111,6451,6452,6454,6456,6458,6460],{"class":113,"line":451},[111,6453,2456],{"class":145},[111,6455,3174],{"class":2422},[111,6457,3177],{"class":145},[111,6459,3174],{"class":2422},[111,6461,2434],{"class":145},[111,6463,6464,6466,6468,6470,6472,6474],{"class":113,"line":1710},[111,6465,2456],{"class":145},[111,6467,3188],{"class":2422},[111,6469,3005],{"class":131},[111,6471,1733],{"class":145},[111,6473,3195],{"class":135},[111,6475,3087],{"class":145},[111,6477,6478,6480,6482],{"class":113,"line":1722},[111,6479,2456],{"class":145},[111,6481,3204],{"class":2422},[111,6483,2434],{"class":145},[111,6485,6486,6488,6490,6492,6494],{"class":113,"line":1727},[111,6487,2466],{"class":145},[111,6489,3213],{"class":2422},[111,6491,3216],{"class":145},[111,6493,3213],{"class":2422},[111,6495,2434],{"class":145},[111,6497,6498,6500,6502,6504,6506],{"class":113,"line":1744},[111,6499,2466],{"class":145},[111,6501,3227],{"class":2422},[111,6503,3230],{"class":145},[111,6505,3227],{"class":2422},[111,6507,2434],{"class":145},[111,6509,6510,6512,6514,6516,6518],{"class":113,"line":1759},[111,6511,2466],{"class":145},[111,6513,3241],{"class":2422},[111,6515,3244],{"class":145},[111,6517,3241],{"class":2422},[111,6519,2434],{"class":145},[111,6521,6522,6524,6526],{"class":113,"line":1781},[111,6523,2537],{"class":145},[111,6525,3204],{"class":2422},[111,6527,2434],{"class":145},[111,6529,6530,6532,6534,6536,6538,6540],{"class":113,"line":1786},[111,6531,2456],{"class":145},[111,6533,2780],{"class":2422},[111,6535,2426],{"class":131},[111,6537,1733],{"class":145},[111,6539,3269],{"class":135},[111,6541,2434],{"class":145},[111,6543,6544,6546,6548,6550,6552],{"class":113,"line":1797},[111,6545,2466],{"class":145},[111,6547,3278],{"class":2422},[111,6549,3244],{"class":145},[111,6551,3278],{"class":2422},[111,6553,2434],{"class":145},[111,6555,6556,6558,6560,6562,6564,6566],{"class":113,"line":1803},[111,6557,2466],{"class":145},[111,6559,2442],{"class":2422},[111,6561,2426],{"class":131},[111,6563,1733],{"class":145},[111,6565,3297],{"class":135},[111,6567,2434],{"class":145},[111,6569,6570,6572,6574,6576,6578,6580],{"class":113,"line":1821},[111,6571,2640],{"class":145},[111,6573,3306],{"class":2422},[111,6575,2426],{"class":131},[111,6577,1733],{"class":145},[111,6579,3313],{"class":135},[111,6581,2434],{"class":145},[111,6583,6584,6586,6588],{"class":113,"line":1833},[111,6585,2836],{"class":145},[111,6587,3322],{"class":2422},[111,6589,2434],{"class":145},[111,6591,6592,6594,6596],{"class":113,"line":1851},[111,6593,3329],{"class":145},[111,6595,3332],{"class":2422},[111,6597,2434],{"class":145},[111,6599,6600,6602,6604,6606,6608],{"class":113,"line":1857},[111,6601,3339],{"class":145},[111,6603,3342],{"class":2422},[111,6605,3345],{"class":145},[111,6607,3342],{"class":2422},[111,6609,2434],{"class":145},[111,6611,6612,6614,6616,6618,6620],{"class":113,"line":1863},[111,6613,3339],{"class":145},[111,6615,3356],{"class":2422},[111,6617,3359],{"class":145},[111,6619,3356],{"class":2422},[111,6621,2434],{"class":145},[111,6623,6624,6626,6628],{"class":113,"line":1868},[111,6625,3368],{"class":145},[111,6627,3332],{"class":2422},[111,6629,2434],{"class":145},[111,6631,6632,6634,6636],{"class":113,"line":1874},[111,6633,3377],{"class":145},[111,6635,3322],{"class":2422},[111,6637,2434],{"class":145},[111,6639,6640,6642,6644],{"class":113,"line":1885},[111,6641,2836],{"class":145},[111,6643,3388],{"class":2422},[111,6645,2434],{"class":145},[111,6647,6648,6650,6652],{"class":113,"line":1899},[111,6649,3329],{"class":145},[111,6651,3397],{"class":2422},[111,6653,2434],{"class":145},[111,6655,6656,6658,6660],{"class":113,"line":1911},[111,6657,3339],{"class":145},[111,6659,3406],{"class":2422},[111,6661,3087],{"class":145},[111,6663,6664,6666,6668],{"class":113,"line":1938},[111,6665,3368],{"class":145},[111,6667,3397],{"class":2422},[111,6669,2434],{"class":145},[111,6671,6672,6674,6676],{"class":113,"line":1954},[111,6673,3329],{"class":145},[111,6675,3423],{"class":2422},[111,6677,3087],{"class":145},[111,6679,6680,6682,6684],{"class":113,"line":1959},[111,6681,3329],{"class":145},[111,6683,3432],{"class":2422},[111,6685,3087],{"class":145},[111,6687,6688,6690,6692],{"class":113,"line":1964},[111,6689,3377],{"class":145},[111,6691,3388],{"class":2422},[111,6693,2434],{"class":145},[111,6695,6696,6698,6700],{"class":113,"line":1970},[111,6697,2876],{"class":145},[111,6699,3306],{"class":2422},[111,6701,2434],{"class":145},[111,6703,6704,6706,6708,6710,6712,6714],{"class":113,"line":1980},[111,6705,2640],{"class":145},[111,6707,3457],{"class":2422},[111,6709,2426],{"class":131},[111,6711,1733],{"class":145},[111,6713,3464],{"class":135},[111,6715,2434],{"class":145},[111,6717,6718,6720,6722],{"class":113,"line":1993},[111,6719,2836],{"class":145},[111,6721,3322],{"class":2422},[111,6723,2434],{"class":145},[111,6725,6726,6728,6730],{"class":113,"line":2006},[111,6727,3329],{"class":145},[111,6729,3332],{"class":2422},[111,6731,2434],{"class":145},[111,6733,6734,6736,6738,6740,6742],{"class":113,"line":2021},[111,6735,3339],{"class":145},[111,6737,3342],{"class":2422},[111,6739,3345],{"class":145},[111,6741,3342],{"class":2422},[111,6743,2434],{"class":145},[111,6745,6746,6748,6750,6752,6754],{"class":113,"line":2029},[111,6747,3339],{"class":145},[111,6749,3356],{"class":2422},[111,6751,3359],{"class":145},[111,6753,3356],{"class":2422},[111,6755,2434],{"class":145},[111,6757,6758,6760,6762],{"class":113,"line":2037},[111,6759,3368],{"class":145},[111,6761,3332],{"class":2422},[111,6763,2434],{"class":145},[111,6765,6766,6768,6770],{"class":113,"line":2043},[111,6767,3377],{"class":145},[111,6769,3322],{"class":2422},[111,6771,2434],{"class":145},[111,6773,6774,6776,6778],{"class":113,"line":2065},[111,6775,2836],{"class":145},[111,6777,3529],{"class":2422},[111,6779,2434],{"class":145},[111,6781,6782,6784,6786,6788,6790],{"class":113,"line":2076},[111,6783,3329],{"class":145},[111,6785,3213],{"class":2422},[111,6787,3540],{"class":145},[111,6789,3213],{"class":2422},[111,6791,2434],{"class":145},[111,6793,6794,6796,6798,6800,6802],{"class":113,"line":2093},[111,6795,3329],{"class":145},[111,6797,3551],{"class":2422},[111,6799,3540],{"class":145},[111,6801,3551],{"class":2422},[111,6803,2434],{"class":145},[111,6805,6806,6808,6810,6812,6814],{"class":113,"line":2108},[111,6807,3329],{"class":145},[111,6809,3564],{"class":2422},[111,6811,3540],{"class":145},[111,6813,3564],{"class":2422},[111,6815,2434],{"class":145},[111,6817,6818,6820,6822],{"class":113,"line":2114},[111,6819,3377],{"class":145},[111,6821,3529],{"class":2422},[111,6823,2434],{"class":145},[111,6825,6826,6828,6830],{"class":113,"line":2125},[111,6827,2876],{"class":145},[111,6829,3457],{"class":2422},[111,6831,2434],{"class":145},[111,6833,6834,6836,6838,6840,6842],{"class":113,"line":2130},[111,6835,2640],{"class":145},[111,6837,3593],{"class":2422},[111,6839,3596],{"class":145},[111,6841,3593],{"class":2422},[111,6843,2434],{"class":145},[111,6845,6846,6848,6850],{"class":113,"line":2135},[111,6847,2640],{"class":145},[111,6849,2459],{"class":2422},[111,6851,2434],{"class":145},[111,6853,6854,6856,6858,6860,6862],{"class":113,"line":2144},[111,6855,2836],{"class":145},[111,6857,3593],{"class":2422},[111,6859,3596],{"class":145},[111,6861,3593],{"class":2422},[111,6863,2434],{"class":145},[111,6865,6866,6868,6870,6872,6874],{"class":113,"line":2150},[111,6867,2836],{"class":145},[111,6869,2469],{"class":2422},[111,6871,3629],{"class":145},[111,6873,2469],{"class":2422},[111,6875,2434],{"class":145},[111,6877,6878,6880,6882],{"class":113,"line":2170},[111,6879,2836],{"class":145},[111,6881,2487],{"class":2422},[111,6883,2434],{"class":145},[111,6885,6886,6888,6890,6892,6894],{"class":113,"line":2183},[111,6887,3329],{"class":145},[111,6889,2839],{"class":2422},[111,6891,3036],{"class":145},[111,6893,2839],{"class":2422},[111,6895,2434],{"class":145},[111,6897,6898,6900,6902,6904,6906],{"class":113,"line":2189},[111,6899,3329],{"class":145},[111,6901,3660],{"class":2422},[111,6903,3663],{"class":145},[111,6905,3660],{"class":2422},[111,6907,2434],{"class":145},[111,6909,6910,6912,6914,6916,6918],{"class":113,"line":2195},[111,6911,3329],{"class":145},[111,6913,3674],{"class":2422},[111,6915,3663],{"class":145},[111,6917,3674],{"class":2422},[111,6919,2434],{"class":145},[111,6921,6922,6924,6926,6928,6930],{"class":113,"line":3683},[111,6923,3329],{"class":145},[111,6925,2852],{"class":2422},[111,6927,3036],{"class":145},[111,6929,2852],{"class":2422},[111,6931,2434],{"class":145},[111,6933,6934,6936,6938,6940,6942],{"class":113,"line":3696},[111,6935,3329],{"class":145},[111,6937,3701],{"class":2422},[111,6939,3663],{"class":145},[111,6941,3701],{"class":2422},[111,6943,2434],{"class":145},[111,6945,6946,6948,6950,6952,6954],{"class":113,"line":3710},[111,6947,3329],{"class":145},[111,6949,2865],{"class":2422},[111,6951,3036],{"class":145},[111,6953,2865],{"class":2422},[111,6955,2434],{"class":145},[111,6957,6958,6960,6962],{"class":113,"line":3723},[111,6959,3377],{"class":145},[111,6961,2487],{"class":2422},[111,6963,2434],{"class":145},[111,6965,6966,6968,6970],{"class":113,"line":3732},[111,6967,2876],{"class":145},[111,6969,2459],{"class":2422},[111,6971,2434],{"class":145},[111,6973,6974,6976,6978,6980,6982],{"class":113,"line":3741},[111,6975,2640],{"class":145},[111,6977,3746],{"class":2422},[111,6979,3749],{"class":145},[111,6981,3746],{"class":2422},[111,6983,2434],{"class":145},[111,6985,6986,6988,6990],{"class":113,"line":3756},[111,6987,2700],{"class":145},[111,6989,2442],{"class":2422},[111,6991,2434],{"class":145},[111,6993,6994,6996,6998,7000,7002],{"class":113,"line":3765},[111,6995,2466],{"class":145},[111,6997,3593],{"class":2422},[111,6999,3596],{"class":145},[111,7001,3593],{"class":2422},[111,7003,2434],{"class":145},[111,7005,7006,7008,7010,7012,7014],{"class":113,"line":3778},[111,7007,2466],{"class":145},[111,7009,3783],{"class":2422},[111,7011,3749],{"class":145},[111,7013,3783],{"class":2422},[111,7015,2434],{"class":145},[111,7017,7018,7020,7022],{"class":113,"line":3792},[111,7019,2537],{"class":145},[111,7021,2780],{"class":2422},[111,7023,2434],{"class":145},[111,7025,7026,7028,7030,7032,7034,7036],{"class":113,"line":3801},[111,7027,2456],{"class":145},[111,7029,2780],{"class":2422},[111,7031,2426],{"class":131},[111,7033,1733],{"class":145},[111,7035,3812],{"class":135},[111,7037,2434],{"class":145},[111,7039,7040,7042,7044,7046,7048],{"class":113,"line":3817},[111,7041,2466],{"class":145},[111,7043,3593],{"class":2422},[111,7045,3824],{"class":145},[111,7047,3593],{"class":2422},[111,7049,2434],{"class":145},[111,7051,7052,7054,7056,7058,7060,7062],{"class":113,"line":3831},[111,7053,2466],{"class":145},[111,7055,2442],{"class":2422},[111,7057,2426],{"class":131},[111,7059,1733],{"class":145},[111,7061,3842],{"class":135},[111,7063,2434],{"class":145},[111,7065,7066,7068,7070],{"class":113,"line":3847},[111,7067,2640],{"class":145},[111,7069,2459],{"class":2422},[111,7071,2434],{"class":145},[111,7073,7074,7076,7078],{"class":113,"line":3856},[111,7075,2836],{"class":145},[111,7077,2487],{"class":2422},[111,7079,2434],{"class":145},[111,7081,7082,7084,7086,7088,7090],{"class":113,"line":3865},[111,7083,3329],{"class":145},[111,7085,2839],{"class":2422},[111,7087,3872],{"class":145},[111,7089,2839],{"class":2422},[111,7091,2434],{"class":145},[111,7093,7094,7096,7098,7100,7102],{"class":113,"line":3879},[111,7095,3329],{"class":145},[111,7097,3660],{"class":2422},[111,7099,3663],{"class":145},[111,7101,3660],{"class":2422},[111,7103,2434],{"class":145},[111,7105,7106,7108,7110,7112,7114],{"class":113,"line":3892},[111,7107,3329],{"class":145},[111,7109,3674],{"class":2422},[111,7111,3663],{"class":145},[111,7113,3674],{"class":2422},[111,7115,2434],{"class":145},[111,7117,7118,7120,7122,7124,7126],{"class":113,"line":3905},[111,7119,3329],{"class":145},[111,7121,2852],{"class":2422},[111,7123,3872],{"class":145},[111,7125,2852],{"class":2422},[111,7127,2434],{"class":145},[111,7129,7130,7132,7134,7136,7138],{"class":113,"line":3918},[111,7131,3329],{"class":145},[111,7133,3701],{"class":2422},[111,7135,3663],{"class":145},[111,7137,3701],{"class":2422},[111,7139,2434],{"class":145},[111,7141,7142,7144,7146,7148,7150],{"class":113,"line":3931},[111,7143,3329],{"class":145},[111,7145,2865],{"class":2422},[111,7147,3872],{"class":145},[111,7149,2865],{"class":2422},[111,7151,2434],{"class":145},[111,7153,7154,7156,7158],{"class":113,"line":3944},[111,7155,3377],{"class":145},[111,7157,2487],{"class":2422},[111,7159,2434],{"class":145},[111,7161,7162,7164,7166,7168,7170],{"class":113,"line":3953},[111,7163,2836],{"class":145},[111,7165,2469],{"class":2422},[111,7167,3629],{"class":145},[111,7169,2469],{"class":2422},[111,7171,2434],{"class":145},[111,7173,7174,7176,7178,7180,7182],{"class":113,"line":3966},[111,7175,2836],{"class":145},[111,7177,3593],{"class":2422},[111,7179,3596],{"class":145},[111,7181,3593],{"class":2422},[111,7183,2434],{"class":145},[111,7185,7186,7188,7190],{"class":113,"line":3979},[111,7187,2876],{"class":145},[111,7189,2459],{"class":2422},[111,7191,2434],{"class":145},[111,7193,7194,7196,7198,7200,7202,7204],{"class":113,"line":3988},[111,7195,2640],{"class":145},[111,7197,3306],{"class":2422},[111,7199,2426],{"class":131},[111,7201,1733],{"class":145},[111,7203,3999],{"class":135},[111,7205,2434],{"class":145},[111,7207,7208,7210,7212],{"class":113,"line":4004},[111,7209,2836],{"class":145},[111,7211,3322],{"class":2422},[111,7213,2434],{"class":145},[111,7215,7216,7218,7220],{"class":113,"line":4013},[111,7217,3329],{"class":145},[111,7219,4018],{"class":2422},[111,7221,2434],{"class":145},[111,7223,7224,7226,7228,7230,7232],{"class":113,"line":4023},[111,7225,3339],{"class":145},[111,7227,3356],{"class":2422},[111,7229,4030],{"class":145},[111,7231,3356],{"class":2422},[111,7233,2434],{"class":145},[111,7235,7236,7238,7240],{"class":113,"line":4037},[111,7237,3368],{"class":145},[111,7239,4018],{"class":2422},[111,7241,2434],{"class":145},[111,7243,7244,7246,7248],{"class":113,"line":4046},[111,7245,3377],{"class":145},[111,7247,3322],{"class":2422},[111,7249,2434],{"class":145},[111,7251,7252,7254,7256],{"class":113,"line":4055},[111,7253,2836],{"class":145},[111,7255,3388],{"class":2422},[111,7257,2434],{"class":145},[111,7259,7260,7262,7264],{"class":113,"line":4064},[111,7261,3329],{"class":145},[111,7263,3397],{"class":2422},[111,7265,2434],{"class":145},[111,7267,7268,7270,7272],{"class":113,"line":4073},[111,7269,3339],{"class":145},[111,7271,3406],{"class":2422},[111,7273,3087],{"class":145},[111,7275,7276,7278,7280],{"class":113,"line":4082},[111,7277,3368],{"class":145},[111,7279,3397],{"class":2422},[111,7281,2434],{"class":145},[111,7283,7284,7286,7288],{"class":113,"line":4091},[111,7285,3329],{"class":145},[111,7287,3423],{"class":2422},[111,7289,3087],{"class":145},[111,7291,7292,7294,7296],{"class":113,"line":4100},[111,7293,3329],{"class":145},[111,7295,3432],{"class":2422},[111,7297,3087],{"class":145},[111,7299,7300,7302,7304],{"class":113,"line":4109},[111,7301,3377],{"class":145},[111,7303,3388],{"class":2422},[111,7305,2434],{"class":145},[111,7307,7308,7310,7312],{"class":113,"line":4118},[111,7309,2876],{"class":145},[111,7311,3306],{"class":2422},[111,7313,2434],{"class":145},[111,7315,7316,7318,7320,7322,7324,7326],{"class":113,"line":4127},[111,7317,2640],{"class":145},[111,7319,3457],{"class":2422},[111,7321,2426],{"class":131},[111,7323,1733],{"class":145},[111,7325,4138],{"class":135},[111,7327,2434],{"class":145},[111,7329,7330,7332,7334],{"class":113,"line":4143},[111,7331,2836],{"class":145},[111,7333,3322],{"class":2422},[111,7335,2434],{"class":145},[111,7337,7338,7340,7342],{"class":113,"line":4152},[111,7339,3329],{"class":145},[111,7341,4018],{"class":2422},[111,7343,2434],{"class":145},[111,7345,7346,7348,7350,7352,7354],{"class":113,"line":4161},[111,7347,3339],{"class":145},[111,7349,3356],{"class":2422},[111,7351,4030],{"class":145},[111,7353,3356],{"class":2422},[111,7355,2434],{"class":145},[111,7357,7358,7360,7362],{"class":113,"line":4174},[111,7359,3368],{"class":145},[111,7361,4018],{"class":2422},[111,7363,2434],{"class":145},[111,7365,7366,7368,7370],{"class":113,"line":4183},[111,7367,3377],{"class":145},[111,7369,3322],{"class":2422},[111,7371,2434],{"class":145},[111,7373,7374,7376,7378],{"class":113,"line":4192},[111,7375,2836],{"class":145},[111,7377,3529],{"class":2422},[111,7379,2434],{"class":145},[111,7381,7382,7384,7386,7388,7390],{"class":113,"line":4201},[111,7383,3329],{"class":145},[111,7385,3213],{"class":2422},[111,7387,4208],{"class":145},[111,7389,3213],{"class":2422},[111,7391,2434],{"class":145},[111,7393,7394,7396,7398,7400,7402],{"class":113,"line":4215},[111,7395,3329],{"class":145},[111,7397,3551],{"class":2422},[111,7399,3230],{"class":145},[111,7401,3551],{"class":2422},[111,7403,2434],{"class":145},[111,7405,7406,7408,7410,7412,7414],{"class":113,"line":4228},[111,7407,3329],{"class":145},[111,7409,3564],{"class":2422},[111,7411,4235],{"class":145},[111,7413,3564],{"class":2422},[111,7415,2434],{"class":145},[111,7417,7418,7420,7422],{"class":113,"line":4242},[111,7419,3377],{"class":145},[111,7421,3529],{"class":2422},[111,7423,2434],{"class":145},[111,7425,7426,7428,7430],{"class":113,"line":4251},[111,7427,2876],{"class":145},[111,7429,3457],{"class":2422},[111,7431,2434],{"class":145},[111,7433,7434,7436,7438,7440,7442],{"class":113,"line":4260},[111,7435,2640],{"class":145},[111,7437,3593],{"class":2422},[111,7439,3596],{"class":145},[111,7441,3593],{"class":2422},[111,7443,2434],{"class":145},[111,7445,7446,7448,7450,7452,7454],{"class":113,"line":4273},[111,7447,2640],{"class":145},[111,7449,3746],{"class":2422},[111,7451,3749],{"class":145},[111,7453,3746],{"class":2422},[111,7455,2434],{"class":145},[111,7457,7458,7460,7462],{"class":113,"line":4286},[111,7459,2700],{"class":145},[111,7461,2442],{"class":2422},[111,7463,2434],{"class":145},[111,7465,7466,7468,7470,7472,7474],{"class":113,"line":4295},[111,7467,2466],{"class":145},[111,7469,3278],{"class":2422},[111,7471,3749],{"class":145},[111,7473,3278],{"class":2422},[111,7475,2434],{"class":145},[111,7477,7478,7480,7482,7484,7486],{"class":113,"line":4308},[111,7479,2466],{"class":145},[111,7481,3783],{"class":2422},[111,7483,3749],{"class":145},[111,7485,3783],{"class":2422},[111,7487,2434],{"class":145},[111,7489,7490,7492,7494],{"class":113,"line":4321},[111,7491,2537],{"class":145},[111,7493,2780],{"class":2422},[111,7495,2434],{"class":145},[111,7497,7498,7500,7502,7504,7506,7508],{"class":113,"line":4330},[111,7499,2456],{"class":145},[111,7501,2780],{"class":2422},[111,7503,2426],{"class":131},[111,7505,1733],{"class":145},[111,7507,4341],{"class":135},[111,7509,2434],{"class":145},[111,7511,7512,7514,7516,7518,7520],{"class":113,"line":4346},[111,7513,2466],{"class":145},[111,7515,3593],{"class":2422},[111,7517,4353],{"class":145},[111,7519,3593],{"class":2422},[111,7521,2434],{"class":145},[111,7523,7524,7526,7528,7530,7532,7534],{"class":113,"line":4360},[111,7525,2466],{"class":145},[111,7527,2442],{"class":2422},[111,7529,2426],{"class":131},[111,7531,1733],{"class":145},[111,7533,3842],{"class":135},[111,7535,2434],{"class":145},[111,7537,7538,7540,7542],{"class":113,"line":4375},[111,7539,2640],{"class":145},[111,7541,2459],{"class":2422},[111,7543,2434],{"class":145},[111,7545,7546,7548,7550],{"class":113,"line":4384},[111,7547,2836],{"class":145},[111,7549,2487],{"class":2422},[111,7551,2434],{"class":145},[111,7553,7554,7556,7558,7560,7562],{"class":113,"line":4393},[111,7555,3329],{"class":145},[111,7557,2839],{"class":2422},[111,7559,3872],{"class":145},[111,7561,2839],{"class":2422},[111,7563,2434],{"class":145},[111,7565,7566,7568,7570,7572,7574],{"class":113,"line":4406},[111,7567,3329],{"class":145},[111,7569,3660],{"class":2422},[111,7571,3663],{"class":145},[111,7573,3660],{"class":2422},[111,7575,2434],{"class":145},[111,7577,7578,7580,7582,7584,7586],{"class":113,"line":4419},[111,7579,3329],{"class":145},[111,7581,3674],{"class":2422},[111,7583,3663],{"class":145},[111,7585,3674],{"class":2422},[111,7587,2434],{"class":145},[111,7589,7590,7592,7594,7596,7598],{"class":113,"line":4432},[111,7591,3329],{"class":145},[111,7593,2852],{"class":2422},[111,7595,3872],{"class":145},[111,7597,2852],{"class":2422},[111,7599,2434],{"class":145},[111,7601,7602,7604,7606,7608,7610],{"class":113,"line":4445},[111,7603,3329],{"class":145},[111,7605,3701],{"class":2422},[111,7607,3663],{"class":145},[111,7609,3701],{"class":2422},[111,7611,2434],{"class":145},[111,7613,7614,7616,7618,7620,7622],{"class":113,"line":4458},[111,7615,3329],{"class":145},[111,7617,2865],{"class":2422},[111,7619,3872],{"class":145},[111,7621,2865],{"class":2422},[111,7623,2434],{"class":145},[111,7625,7626,7628,7630],{"class":113,"line":4471},[111,7627,3377],{"class":145},[111,7629,2487],{"class":2422},[111,7631,2434],{"class":145},[111,7633,7634,7636,7638,7640,7642],{"class":113,"line":4480},[111,7635,2836],{"class":145},[111,7637,2469],{"class":2422},[111,7639,3629],{"class":145},[111,7641,2469],{"class":2422},[111,7643,2434],{"class":145},[111,7645,7646,7648,7650,7652,7654],{"class":113,"line":4493},[111,7647,2836],{"class":145},[111,7649,3593],{"class":2422},[111,7651,3596],{"class":145},[111,7653,3593],{"class":2422},[111,7655,2434],{"class":145},[111,7657,7658,7660,7662],{"class":113,"line":4506},[111,7659,2876],{"class":145},[111,7661,2459],{"class":2422},[111,7663,2434],{"class":145},[111,7665,7666,7668,7670,7672,7674,7676],{"class":113,"line":4515},[111,7667,2640],{"class":145},[111,7669,3306],{"class":2422},[111,7671,2426],{"class":131},[111,7673,1733],{"class":145},[111,7675,3999],{"class":135},[111,7677,2434],{"class":145},[111,7679,7680,7682,7684],{"class":113,"line":4530},[111,7681,2836],{"class":145},[111,7683,3322],{"class":2422},[111,7685,2434],{"class":145},[111,7687,7688,7690,7692],{"class":113,"line":4539},[111,7689,3329],{"class":145},[111,7691,4018],{"class":2422},[111,7693,2434],{"class":145},[111,7695,7696,7698,7700,7702,7704],{"class":113,"line":4548},[111,7697,3339],{"class":145},[111,7699,3356],{"class":2422},[111,7701,4030],{"class":145},[111,7703,3356],{"class":2422},[111,7705,2434],{"class":145},[111,7707,7708,7710,7712],{"class":113,"line":4561},[111,7709,3368],{"class":145},[111,7711,4018],{"class":2422},[111,7713,2434],{"class":145},[111,7715,7716,7718,7720],{"class":113,"line":4570},[111,7717,3377],{"class":145},[111,7719,3322],{"class":2422},[111,7721,2434],{"class":145},[111,7723,7724,7726,7728],{"class":113,"line":4579},[111,7725,2836],{"class":145},[111,7727,3388],{"class":2422},[111,7729,2434],{"class":145},[111,7731,7732,7734,7736],{"class":113,"line":4588},[111,7733,3329],{"class":145},[111,7735,3397],{"class":2422},[111,7737,2434],{"class":145},[111,7739,7740,7742,7744],{"class":113,"line":4597},[111,7741,3339],{"class":145},[111,7743,3406],{"class":2422},[111,7745,3087],{"class":145},[111,7747,7748,7750,7752],{"class":113,"line":4606},[111,7749,3368],{"class":145},[111,7751,3397],{"class":2422},[111,7753,2434],{"class":145},[111,7755,7756,7758,7760],{"class":113,"line":4615},[111,7757,3329],{"class":145},[111,7759,3423],{"class":2422},[111,7761,3087],{"class":145},[111,7763,7764,7766,7768],{"class":113,"line":4624},[111,7765,3329],{"class":145},[111,7767,3432],{"class":2422},[111,7769,3087],{"class":145},[111,7771,7772,7774,7776],{"class":113,"line":4633},[111,7773,3377],{"class":145},[111,7775,3388],{"class":2422},[111,7777,2434],{"class":145},[111,7779,7780,7782,7784],{"class":113,"line":4642},[111,7781,2876],{"class":145},[111,7783,3306],{"class":2422},[111,7785,2434],{"class":145},[111,7787,7788,7790,7792,7794,7796,7798],{"class":113,"line":4651},[111,7789,2640],{"class":145},[111,7791,3457],{"class":2422},[111,7793,2426],{"class":131},[111,7795,1733],{"class":145},[111,7797,4138],{"class":135},[111,7799,2434],{"class":145},[111,7801,7802,7804,7806],{"class":113,"line":4666},[111,7803,2836],{"class":145},[111,7805,3322],{"class":2422},[111,7807,2434],{"class":145},[111,7809,7810,7812,7814],{"class":113,"line":4675},[111,7811,3329],{"class":145},[111,7813,4018],{"class":2422},[111,7815,2434],{"class":145},[111,7817,7818,7820,7822,7824,7826],{"class":113,"line":4684},[111,7819,3339],{"class":145},[111,7821,3356],{"class":2422},[111,7823,4030],{"class":145},[111,7825,3356],{"class":2422},[111,7827,2434],{"class":145},[111,7829,7830,7832,7834],{"class":113,"line":4697},[111,7831,3368],{"class":145},[111,7833,4018],{"class":2422},[111,7835,2434],{"class":145},[111,7837,7838,7840,7842],{"class":113,"line":4706},[111,7839,3377],{"class":145},[111,7841,3322],{"class":2422},[111,7843,2434],{"class":145},[111,7845,7846,7848,7850],{"class":113,"line":4715},[111,7847,2836],{"class":145},[111,7849,3529],{"class":2422},[111,7851,2434],{"class":145},[111,7853,7854,7856,7858,7860,7862],{"class":113,"line":4724},[111,7855,3329],{"class":145},[111,7857,3213],{"class":2422},[111,7859,4208],{"class":145},[111,7861,3213],{"class":2422},[111,7863,2434],{"class":145},[111,7865,7866,7868,7870,7872,7874],{"class":113,"line":4737},[111,7867,3329],{"class":145},[111,7869,3551],{"class":2422},[111,7871,3230],{"class":145},[111,7873,3551],{"class":2422},[111,7875,2434],{"class":145},[111,7877,7878,7880,7882,7884,7886],{"class":113,"line":4750},[111,7879,3329],{"class":145},[111,7881,3564],{"class":2422},[111,7883,4235],{"class":145},[111,7885,3564],{"class":2422},[111,7887,2434],{"class":145},[111,7889,7890,7892,7894],{"class":113,"line":4763},[111,7891,3377],{"class":145},[111,7893,3529],{"class":2422},[111,7895,2434],{"class":145},[111,7897,7898,7900,7902],{"class":113,"line":4772},[111,7899,2876],{"class":145},[111,7901,3457],{"class":2422},[111,7903,2434],{"class":145},[111,7905,7906,7908,7910,7912,7914],{"class":113,"line":4781},[111,7907,2640],{"class":145},[111,7909,3593],{"class":2422},[111,7911,3596],{"class":145},[111,7913,3593],{"class":2422},[111,7915,2434],{"class":145},[111,7917,7918,7920,7922,7924,7926],{"class":113,"line":4794},[111,7919,2640],{"class":145},[111,7921,3746],{"class":2422},[111,7923,3749],{"class":145},[111,7925,3746],{"class":2422},[111,7927,2434],{"class":145},[111,7929,7930,7932,7934],{"class":113,"line":4807},[111,7931,2700],{"class":145},[111,7933,2442],{"class":2422},[111,7935,2434],{"class":145},[111,7937,7938,7940,7942,7944,7946],{"class":113,"line":4816},[111,7939,2466],{"class":145},[111,7941,3278],{"class":2422},[111,7943,3749],{"class":145},[111,7945,3278],{"class":2422},[111,7947,2434],{"class":145},[111,7949,7950,7952,7954,7956,7958],{"class":113,"line":4829},[111,7951,2466],{"class":145},[111,7953,3783],{"class":2422},[111,7955,3749],{"class":145},[111,7957,3783],{"class":2422},[111,7959,2434],{"class":145},[111,7961,7962,7964,7966],{"class":113,"line":4842},[111,7963,2537],{"class":145},[111,7965,2780],{"class":2422},[111,7967,2434],{"class":145},[111,7969,7970,7972,7974,7976,7978,7980],{"class":113,"line":4851},[111,7971,2456],{"class":145},[111,7973,2780],{"class":2422},[111,7975,2426],{"class":131},[111,7977,1733],{"class":145},[111,7979,4862],{"class":135},[111,7981,2434],{"class":145},[111,7983,7984,7986,7988,7990,7992],{"class":113,"line":4867},[111,7985,2466],{"class":145},[111,7987,3593],{"class":2422},[111,7989,4874],{"class":145},[111,7991,3593],{"class":2422},[111,7993,2434],{"class":145},[111,7995,7996,7998,8000,8002,8004,8006],{"class":113,"line":4881},[111,7997,2466],{"class":145},[111,7999,2442],{"class":2422},[111,8001,2426],{"class":131},[111,8003,1733],{"class":145},[111,8005,3842],{"class":135},[111,8007,2434],{"class":145},[111,8009,8010,8012,8014],{"class":113,"line":4896},[111,8011,2640],{"class":145},[111,8013,2459],{"class":2422},[111,8015,2434],{"class":145},[111,8017,8018,8020,8022],{"class":113,"line":4905},[111,8019,2836],{"class":145},[111,8021,2487],{"class":2422},[111,8023,2434],{"class":145},[111,8025,8026,8028,8030,8032,8034],{"class":113,"line":4914},[111,8027,3329],{"class":145},[111,8029,2839],{"class":2422},[111,8031,3872],{"class":145},[111,8033,2839],{"class":2422},[111,8035,2434],{"class":145},[111,8037,8038,8040,8042,8044,8046],{"class":113,"line":4927},[111,8039,3329],{"class":145},[111,8041,3660],{"class":2422},[111,8043,3663],{"class":145},[111,8045,3660],{"class":2422},[111,8047,2434],{"class":145},[111,8049,8050,8052,8054,8056,8058],{"class":113,"line":4940},[111,8051,3329],{"class":145},[111,8053,3674],{"class":2422},[111,8055,3663],{"class":145},[111,8057,3674],{"class":2422},[111,8059,2434],{"class":145},[111,8061,8062,8064,8066,8068,8070],{"class":113,"line":4953},[111,8063,3329],{"class":145},[111,8065,2852],{"class":2422},[111,8067,3872],{"class":145},[111,8069,2852],{"class":2422},[111,8071,2434],{"class":145},[111,8073,8074,8076,8078,8080,8082],{"class":113,"line":4966},[111,8075,3329],{"class":145},[111,8077,3701],{"class":2422},[111,8079,3663],{"class":145},[111,8081,3701],{"class":2422},[111,8083,2434],{"class":145},[111,8085,8086,8088,8090,8092,8094],{"class":113,"line":4979},[111,8087,3329],{"class":145},[111,8089,2865],{"class":2422},[111,8091,3872],{"class":145},[111,8093,2865],{"class":2422},[111,8095,2434],{"class":145},[111,8097,8098,8100,8102],{"class":113,"line":4992},[111,8099,3377],{"class":145},[111,8101,2487],{"class":2422},[111,8103,2434],{"class":145},[111,8105,8106,8108,8110,8112,8114],{"class":113,"line":5001},[111,8107,2836],{"class":145},[111,8109,2469],{"class":2422},[111,8111,3629],{"class":145},[111,8113,2469],{"class":2422},[111,8115,2434],{"class":145},[111,8117,8118,8120,8122,8124,8126],{"class":113,"line":5014},[111,8119,2836],{"class":145},[111,8121,3593],{"class":2422},[111,8123,3596],{"class":145},[111,8125,3593],{"class":2422},[111,8127,2434],{"class":145},[111,8129,8130,8132,8134],{"class":113,"line":5027},[111,8131,2876],{"class":145},[111,8133,2459],{"class":2422},[111,8135,2434],{"class":145},[111,8137,8138,8140,8142,8144,8146,8148],{"class":113,"line":5036},[111,8139,2640],{"class":145},[111,8141,3306],{"class":2422},[111,8143,2426],{"class":131},[111,8145,1733],{"class":145},[111,8147,3999],{"class":135},[111,8149,2434],{"class":145},[111,8151,8152,8154,8156],{"class":113,"line":5051},[111,8153,2836],{"class":145},[111,8155,3322],{"class":2422},[111,8157,2434],{"class":145},[111,8159,8160,8162,8164],{"class":113,"line":5060},[111,8161,3329],{"class":145},[111,8163,4018],{"class":2422},[111,8165,2434],{"class":145},[111,8167,8168,8170,8172,8174,8176],{"class":113,"line":5069},[111,8169,3339],{"class":145},[111,8171,3356],{"class":2422},[111,8173,5076],{"class":145},[111,8175,3356],{"class":2422},[111,8177,2434],{"class":145},[111,8179,8180,8182,8184],{"class":113,"line":5083},[111,8181,3368],{"class":145},[111,8183,4018],{"class":2422},[111,8185,2434],{"class":145},[111,8187,8188,8190,8192],{"class":113,"line":5092},[111,8189,3377],{"class":145},[111,8191,3322],{"class":2422},[111,8193,2434],{"class":145},[111,8195,8196,8198,8200],{"class":113,"line":5101},[111,8197,2836],{"class":145},[111,8199,3388],{"class":2422},[111,8201,2434],{"class":145},[111,8203,8204,8206,8208],{"class":113,"line":5110},[111,8205,3329],{"class":145},[111,8207,3397],{"class":2422},[111,8209,2434],{"class":145},[111,8211,8212,8214,8216],{"class":113,"line":5119},[111,8213,3339],{"class":145},[111,8215,3406],{"class":2422},[111,8217,3087],{"class":145},[111,8219,8220,8222,8224],{"class":113,"line":5128},[111,8221,3368],{"class":145},[111,8223,3397],{"class":2422},[111,8225,2434],{"class":145},[111,8227,8228,8230,8232],{"class":113,"line":5137},[111,8229,3329],{"class":145},[111,8231,3423],{"class":2422},[111,8233,3087],{"class":145},[111,8235,8236,8238,8240],{"class":113,"line":5146},[111,8237,3329],{"class":145},[111,8239,3432],{"class":2422},[111,8241,3087],{"class":145},[111,8243,8244,8246,8248],{"class":113,"line":5155},[111,8245,3377],{"class":145},[111,8247,3388],{"class":2422},[111,8249,2434],{"class":145},[111,8251,8252,8254,8256],{"class":113,"line":5164},[111,8253,2876],{"class":145},[111,8255,3306],{"class":2422},[111,8257,2434],{"class":145},[111,8259,8260,8262,8264,8266,8268,8270],{"class":113,"line":5173},[111,8261,2640],{"class":145},[111,8263,3457],{"class":2422},[111,8265,2426],{"class":131},[111,8267,1733],{"class":145},[111,8269,4138],{"class":135},[111,8271,2434],{"class":145},[111,8273,8274,8276,8278],{"class":113,"line":5188},[111,8275,2836],{"class":145},[111,8277,3322],{"class":2422},[111,8279,2434],{"class":145},[111,8281,8282,8284,8286],{"class":113,"line":5197},[111,8283,3329],{"class":145},[111,8285,4018],{"class":2422},[111,8287,2434],{"class":145},[111,8289,8290,8292,8294,8296,8298],{"class":113,"line":5206},[111,8291,3339],{"class":145},[111,8293,3356],{"class":2422},[111,8295,5076],{"class":145},[111,8297,3356],{"class":2422},[111,8299,2434],{"class":145},[111,8301,8302,8304,8306],{"class":113,"line":5219},[111,8303,3368],{"class":145},[111,8305,4018],{"class":2422},[111,8307,2434],{"class":145},[111,8309,8310,8312,8314],{"class":113,"line":5228},[111,8311,3377],{"class":145},[111,8313,3322],{"class":2422},[111,8315,2434],{"class":145},[111,8317,8318,8320,8322],{"class":113,"line":5237},[111,8319,2836],{"class":145},[111,8321,3529],{"class":2422},[111,8323,2434],{"class":145},[111,8325,8326,8328,8330,8332,8334],{"class":113,"line":5246},[111,8327,3329],{"class":145},[111,8329,3213],{"class":2422},[111,8331,4208],{"class":145},[111,8333,3213],{"class":2422},[111,8335,2434],{"class":145},[111,8337,8338,8340,8342,8344,8346],{"class":113,"line":5259},[111,8339,3329],{"class":145},[111,8341,3551],{"class":2422},[111,8343,3230],{"class":145},[111,8345,3551],{"class":2422},[111,8347,2434],{"class":145},[111,8349,8350,8352,8354,8356,8358],{"class":113,"line":5272},[111,8351,3329],{"class":145},[111,8353,3564],{"class":2422},[111,8355,4235],{"class":145},[111,8357,3564],{"class":2422},[111,8359,2434],{"class":145},[111,8361,8362,8364,8366],{"class":113,"line":5285},[111,8363,3377],{"class":145},[111,8365,3529],{"class":2422},[111,8367,2434],{"class":145},[111,8369,8370,8372,8374],{"class":113,"line":5294},[111,8371,2876],{"class":145},[111,8373,3457],{"class":2422},[111,8375,2434],{"class":145},[111,8377,8378,8380,8382,8384,8386],{"class":113,"line":5303},[111,8379,2640],{"class":145},[111,8381,3593],{"class":2422},[111,8383,3596],{"class":145},[111,8385,3593],{"class":2422},[111,8387,2434],{"class":145},[111,8389,8390,8392,8394,8396,8398],{"class":113,"line":5316},[111,8391,2640],{"class":145},[111,8393,3746],{"class":2422},[111,8395,3749],{"class":145},[111,8397,3746],{"class":2422},[111,8399,2434],{"class":145},[111,8401,8402,8404,8406],{"class":113,"line":5329},[111,8403,2700],{"class":145},[111,8405,2442],{"class":2422},[111,8407,2434],{"class":145},[111,8409,8410,8412,8414,8416,8418],{"class":113,"line":5338},[111,8411,2466],{"class":145},[111,8413,3278],{"class":2422},[111,8415,3749],{"class":145},[111,8417,3278],{"class":2422},[111,8419,2434],{"class":145},[111,8421,8422,8424,8426,8428,8430],{"class":113,"line":5351},[111,8423,2466],{"class":145},[111,8425,3783],{"class":2422},[111,8427,3749],{"class":145},[111,8429,3783],{"class":2422},[111,8431,2434],{"class":145},[111,8433,8434,8436,8438],{"class":113,"line":5364},[111,8435,2537],{"class":145},[111,8437,2780],{"class":2422},[111,8439,2434],{"class":145},[111,8441,8442,8444,8446,8448,8450,8452],{"class":113,"line":5373},[111,8443,2456],{"class":145},[111,8445,2780],{"class":2422},[111,8447,2426],{"class":131},[111,8449,1733],{"class":145},[111,8451,5384],{"class":135},[111,8453,2434],{"class":145},[111,8455,8456,8458,8460,8462,8464],{"class":113,"line":5389},[111,8457,2466],{"class":145},[111,8459,3593],{"class":2422},[111,8461,5396],{"class":145},[111,8463,3593],{"class":2422},[111,8465,2434],{"class":145},[111,8467,8468,8470,8472,8474,8476,8478],{"class":113,"line":5403},[111,8469,2466],{"class":145},[111,8471,2442],{"class":2422},[111,8473,2426],{"class":131},[111,8475,1733],{"class":145},[111,8477,3842],{"class":135},[111,8479,2434],{"class":145},[111,8481,8482,8484,8486],{"class":113,"line":5418},[111,8483,2640],{"class":145},[111,8485,2459],{"class":2422},[111,8487,2434],{"class":145},[111,8489,8490,8492,8494],{"class":113,"line":5427},[111,8491,2836],{"class":145},[111,8493,2487],{"class":2422},[111,8495,2434],{"class":145},[111,8497,8498,8500,8502,8504,8506],{"class":113,"line":5436},[111,8499,3329],{"class":145},[111,8501,2839],{"class":2422},[111,8503,3872],{"class":145},[111,8505,2839],{"class":2422},[111,8507,2434],{"class":145},[111,8509,8510,8512,8514,8516,8518],{"class":113,"line":5449},[111,8511,3329],{"class":145},[111,8513,3660],{"class":2422},[111,8515,3663],{"class":145},[111,8517,3660],{"class":2422},[111,8519,2434],{"class":145},[111,8521,8522,8524,8526,8528,8530],{"class":113,"line":5462},[111,8523,3329],{"class":145},[111,8525,3674],{"class":2422},[111,8527,3663],{"class":145},[111,8529,3674],{"class":2422},[111,8531,2434],{"class":145},[111,8533,8534,8536,8538,8540,8542],{"class":113,"line":5475},[111,8535,3329],{"class":145},[111,8537,2852],{"class":2422},[111,8539,3872],{"class":145},[111,8541,2852],{"class":2422},[111,8543,2434],{"class":145},[111,8545,8546,8548,8550,8552,8554],{"class":113,"line":5488},[111,8547,3329],{"class":145},[111,8549,3701],{"class":2422},[111,8551,3663],{"class":145},[111,8553,3701],{"class":2422},[111,8555,2434],{"class":145},[111,8557,8558,8560,8562,8564,8566],{"class":113,"line":5501},[111,8559,3329],{"class":145},[111,8561,2865],{"class":2422},[111,8563,3872],{"class":145},[111,8565,2865],{"class":2422},[111,8567,2434],{"class":145},[111,8569,8570,8572,8574],{"class":113,"line":5514},[111,8571,3377],{"class":145},[111,8573,2487],{"class":2422},[111,8575,2434],{"class":145},[111,8577,8578,8580,8582,8584,8586],{"class":113,"line":5523},[111,8579,2836],{"class":145},[111,8581,2469],{"class":2422},[111,8583,3629],{"class":145},[111,8585,2469],{"class":2422},[111,8587,2434],{"class":145},[111,8589,8590,8592,8594,8596,8598],{"class":113,"line":5536},[111,8591,2836],{"class":145},[111,8593,3593],{"class":2422},[111,8595,3596],{"class":145},[111,8597,3593],{"class":2422},[111,8599,2434],{"class":145},[111,8601,8602,8604,8606],{"class":113,"line":5549},[111,8603,2876],{"class":145},[111,8605,2459],{"class":2422},[111,8607,2434],{"class":145},[111,8609,8610,8612,8614,8616,8618,8620],{"class":113,"line":5558},[111,8611,2640],{"class":145},[111,8613,3306],{"class":2422},[111,8615,2426],{"class":131},[111,8617,1733],{"class":145},[111,8619,3999],{"class":135},[111,8621,2434],{"class":145},[111,8623,8624,8626,8628],{"class":113,"line":5573},[111,8625,2836],{"class":145},[111,8627,3322],{"class":2422},[111,8629,2434],{"class":145},[111,8631,8632,8634,8636],{"class":113,"line":5582},[111,8633,3329],{"class":145},[111,8635,4018],{"class":2422},[111,8637,2434],{"class":145},[111,8639,8640,8642,8644,8646,8648],{"class":113,"line":5591},[111,8641,3339],{"class":145},[111,8643,3356],{"class":2422},[111,8645,5076],{"class":145},[111,8647,3356],{"class":2422},[111,8649,2434],{"class":145},[111,8651,8652,8654,8656],{"class":113,"line":5604},[111,8653,3368],{"class":145},[111,8655,4018],{"class":2422},[111,8657,2434],{"class":145},[111,8659,8660,8662,8664],{"class":113,"line":5613},[111,8661,3377],{"class":145},[111,8663,3322],{"class":2422},[111,8665,2434],{"class":145},[111,8667,8668,8670,8672],{"class":113,"line":5622},[111,8669,2836],{"class":145},[111,8671,3388],{"class":2422},[111,8673,2434],{"class":145},[111,8675,8676,8678,8680],{"class":113,"line":5631},[111,8677,3329],{"class":145},[111,8679,3397],{"class":2422},[111,8681,2434],{"class":145},[111,8683,8684,8686,8688],{"class":113,"line":5640},[111,8685,3339],{"class":145},[111,8687,3406],{"class":2422},[111,8689,3087],{"class":145},[111,8691,8692,8694,8696],{"class":113,"line":5649},[111,8693,3368],{"class":145},[111,8695,3397],{"class":2422},[111,8697,2434],{"class":145},[111,8699,8700,8702,8704],{"class":113,"line":5658},[111,8701,3329],{"class":145},[111,8703,3423],{"class":2422},[111,8705,3087],{"class":145},[111,8707,8708,8710,8712],{"class":113,"line":5667},[111,8709,3329],{"class":145},[111,8711,3432],{"class":2422},[111,8713,3087],{"class":145},[111,8715,8716,8718,8720],{"class":113,"line":5676},[111,8717,3377],{"class":145},[111,8719,3388],{"class":2422},[111,8721,2434],{"class":145},[111,8723,8724,8726,8728],{"class":113,"line":5685},[111,8725,2876],{"class":145},[111,8727,3306],{"class":2422},[111,8729,2434],{"class":145},[111,8731,8732,8734,8736,8738,8740,8742],{"class":113,"line":5694},[111,8733,2640],{"class":145},[111,8735,3457],{"class":2422},[111,8737,2426],{"class":131},[111,8739,1733],{"class":145},[111,8741,4138],{"class":135},[111,8743,2434],{"class":145},[111,8745,8746,8748,8750],{"class":113,"line":5709},[111,8747,2836],{"class":145},[111,8749,3322],{"class":2422},[111,8751,2434],{"class":145},[111,8753,8754,8756,8758],{"class":113,"line":5718},[111,8755,3329],{"class":145},[111,8757,4018],{"class":2422},[111,8759,2434],{"class":145},[111,8761,8762,8764,8766,8768,8770],{"class":113,"line":5727},[111,8763,3339],{"class":145},[111,8765,3356],{"class":2422},[111,8767,5076],{"class":145},[111,8769,3356],{"class":2422},[111,8771,2434],{"class":145},[111,8773,8774,8776,8778],{"class":113,"line":5740},[111,8775,3368],{"class":145},[111,8777,4018],{"class":2422},[111,8779,2434],{"class":145},[111,8781,8782,8784,8786],{"class":113,"line":5749},[111,8783,3377],{"class":145},[111,8785,3322],{"class":2422},[111,8787,2434],{"class":145},[111,8789,8790,8792,8794],{"class":113,"line":5758},[111,8791,2836],{"class":145},[111,8793,3529],{"class":2422},[111,8795,2434],{"class":145},[111,8797,8798,8800,8802,8804,8806],{"class":113,"line":5767},[111,8799,3329],{"class":145},[111,8801,3213],{"class":2422},[111,8803,4208],{"class":145},[111,8805,3213],{"class":2422},[111,8807,2434],{"class":145},[111,8809,8810,8812,8814,8816,8818],{"class":113,"line":5780},[111,8811,3329],{"class":145},[111,8813,3551],{"class":2422},[111,8815,3230],{"class":145},[111,8817,3551],{"class":2422},[111,8819,2434],{"class":145},[111,8821,8822,8824,8826,8828,8830],{"class":113,"line":5793},[111,8823,3329],{"class":145},[111,8825,3564],{"class":2422},[111,8827,4235],{"class":145},[111,8829,3564],{"class":2422},[111,8831,2434],{"class":145},[111,8833,8834,8836,8838],{"class":113,"line":5806},[111,8835,3377],{"class":145},[111,8837,3529],{"class":2422},[111,8839,2434],{"class":145},[111,8841,8842,8844,8846],{"class":113,"line":5815},[111,8843,2876],{"class":145},[111,8845,3457],{"class":2422},[111,8847,2434],{"class":145},[111,8849,8850,8852,8854,8856,8858],{"class":113,"line":5824},[111,8851,2640],{"class":145},[111,8853,3593],{"class":2422},[111,8855,3596],{"class":145},[111,8857,3593],{"class":2422},[111,8859,2434],{"class":145},[111,8861,8862,8864,8866,8868,8870],{"class":113,"line":5837},[111,8863,2640],{"class":145},[111,8865,3746],{"class":2422},[111,8867,3749],{"class":145},[111,8869,3746],{"class":2422},[111,8871,2434],{"class":145},[111,8873,8874,8876,8878],{"class":113,"line":5850},[111,8875,2700],{"class":145},[111,8877,2442],{"class":2422},[111,8879,2434],{"class":145},[111,8881,8882,8884,8886,8888,8890],{"class":113,"line":5859},[111,8883,2466],{"class":145},[111,8885,3278],{"class":2422},[111,8887,3749],{"class":145},[111,8889,3278],{"class":2422},[111,8891,2434],{"class":145},[111,8893,8894,8896,8898,8900,8902],{"class":113,"line":5872},[111,8895,2466],{"class":145},[111,8897,3783],{"class":2422},[111,8899,3749],{"class":145},[111,8901,3783],{"class":2422},[111,8903,2434],{"class":145},[111,8905,8906,8908,8910],{"class":113,"line":5885},[111,8907,2537],{"class":145},[111,8909,2780],{"class":2422},[111,8911,2434],{"class":145},[111,8913,8914,8916,8918,8920,8922,8924,8926,8928,8930],{"class":113,"line":5894},[111,8915,2456],{"class":145},[111,8917,5899],{"class":2422},[111,8919,2426],{"class":131},[111,8921,1733],{"class":145},[111,8923,5906],{"class":135},[111,8925,3005],{"class":131},[111,8927,1733],{"class":145},[111,8929,5913],{"class":135},[111,8931,2434],{"class":145},[111,8933,8934,8936,8938,8940,8942],{"class":113,"line":5918},[111,8935,2466],{"class":145},[111,8937,3593],{"class":2422},[111,8939,5925],{"class":145},[111,8941,3593],{"class":2422},[111,8943,2434],{"class":145},[111,8945,8946,8948,8950,8952,8954],{"class":113,"line":5932},[111,8947,2466],{"class":145},[111,8949,5937],{"class":2422},[111,8951,3244],{"class":145},[111,8953,5937],{"class":2422},[111,8955,2434],{"class":145},[111,8957,8958,8960,8962,8964,8966],{"class":113,"line":5946},[111,8959,2466],{"class":145},[111,8961,5951],{"class":2422},[111,8963,3036],{"class":145},[111,8965,5951],{"class":2422},[111,8967,2434],{"class":145},[111,8969,8970,8972,8974,8976,8978],{"class":113,"line":5960},[111,8971,2466],{"class":145},[111,8973,5965],{"class":2422},[111,8975,5968],{"class":145},[111,8977,5965],{"class":2422},[111,8979,2434],{"class":145},[111,8981,8982,8984,8986,8988,8990],{"class":113,"line":5975},[111,8983,2466],{"class":145},[111,8985,3551],{"class":2422},[111,8987,3540],{"class":145},[111,8989,3551],{"class":2422},[111,8991,2434],{"class":145},[111,8993,8994,8996,8998,9000,9002],{"class":113,"line":5988},[111,8995,2466],{"class":145},[111,8997,3564],{"class":2422},[111,8999,5995],{"class":145},[111,9001,3564],{"class":2422},[111,9003,2434],{"class":145},[111,9005,9006,9008,9010],{"class":113,"line":6002},[111,9007,2466],{"class":145},[111,9009,6007],{"class":2422},[111,9011,2434],{"class":145},[111,9013,9014,9016,9018,9020,9022],{"class":113,"line":6012},[111,9015,2640],{"class":145},[111,9017,6017],{"class":2422},[111,9019,3050],{"class":145},[111,9021,6017],{"class":2422},[111,9023,2434],{"class":145},[111,9025,9026,9028,9030,9032,9034],{"class":113,"line":6026},[111,9027,2640],{"class":145},[111,9029,6031],{"class":2422},[111,9031,6034],{"class":145},[111,9033,6031],{"class":2422},[111,9035,2434],{"class":145},[111,9037,9038,9040,9042,9044,9046],{"class":113,"line":6041},[111,9039,2640],{"class":145},[111,9041,6046],{"class":2422},[111,9043,6049],{"class":145},[111,9045,6046],{"class":2422},[111,9047,2434],{"class":145},[111,9049,9050,9052,9054,9056,9058],{"class":113,"line":6056},[111,9051,2640],{"class":145},[111,9053,6061],{"class":2422},[111,9055,3022],{"class":145},[111,9057,6061],{"class":2422},[111,9059,2434],{"class":145},[111,9061,9062,9064,9066],{"class":113,"line":6070},[111,9063,2700],{"class":145},[111,9065,6007],{"class":2422},[111,9067,2434],{"class":145},[111,9069,9070,9072,9074],{"class":113,"line":6079},[111,9071,2466],{"class":145},[111,9073,6084],{"class":2422},[111,9075,2434],{"class":145},[111,9077,9078,9080,9082,9084,9086],{"class":113,"line":6089},[111,9079,2640],{"class":145},[111,9081,6094],{"class":2422},[111,9083,3663],{"class":145},[111,9085,6094],{"class":2422},[111,9087,2434],{"class":145},[111,9089,9090,9092,9094,9096,9098],{"class":113,"line":6103},[111,9091,2640],{"class":145},[111,9093,6108],{"class":2422},[111,9095,3663],{"class":145},[111,9097,6108],{"class":2422},[111,9099,2434],{"class":145},[111,9101,9102,9104,9106,9108,9110],{"class":113,"line":6117},[111,9103,2640],{"class":145},[111,9105,6122],{"class":2422},[111,9107,3663],{"class":145},[111,9109,6122],{"class":2422},[111,9111,2434],{"class":145},[111,9113,9114,9116,9118],{"class":113,"line":6131},[111,9115,2700],{"class":145},[111,9117,6084],{"class":2422},[111,9119,2434],{"class":145},[111,9121,9122,9124,9126],{"class":113,"line":6140},[111,9123,2537],{"class":145},[111,9125,5899],{"class":2422},[111,9127,2434],{"class":145},[111,9129,9130,9132,9134],{"class":113,"line":6149},[111,9131,2546],{"class":145},[111,9133,1490],{"class":2422},[111,9135,2434],{"class":145},[111,9137,9138,9140,9142],{"class":113,"line":6158},[111,9139,2555],{"class":145},[111,9141,2763],{"class":2422},[111,9143,2434],{"class":145},[15,9145,9146],{},[50,9147,9148],{},"3. Write the launch file",[15,9150,1576,9151,1580],{},[108,9152,9153],{},"gazebo_sim_world.launch.py",[101,9155,9157],{"className":1583,"code":9156,"language":1585,"meta":106,"style":106},"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",[108,9158,9159,9165,9169,9179,9183,9193,9203,9213,9217,9225,9229,9241,9253,9271,9275,9283,9287,9299,9307,9319,9323,9327,9333,9338],{"__ignoreMap":106},[111,9160,9161,9163],{"class":113,"line":114},[111,9162,1592],{"class":770},[111,9164,1595],{"class":145},[111,9166,9167],{"class":113,"line":121},[111,9168,118],{"emptyLinePlaceholder":117},[111,9170,9171,9173,9175,9177],{"class":113,"line":128},[111,9172,1604],{"class":770},[111,9174,1607],{"class":145},[111,9176,1592],{"class":770},[111,9178,1612],{"class":145},[111,9180,9181],{"class":113,"line":152},[111,9182,118],{"emptyLinePlaceholder":117},[111,9184,9185,9187,9189,9191],{"class":113,"line":157},[111,9186,1604],{"class":770},[111,9188,1623],{"class":145},[111,9190,1592],{"class":770},[111,9192,1628],{"class":145},[111,9194,9195,9197,9199,9201],{"class":113,"line":163},[111,9196,1604],{"class":770},[111,9198,1635],{"class":145},[111,9200,1592],{"class":770},[111,9202,1651],{"class":145},[111,9204,9205,9207,9209,9211],{"class":113,"line":175},[111,9206,1604],{"class":770},[111,9208,1670],{"class":145},[111,9210,1592],{"class":770},[111,9212,1675],{"class":145},[111,9214,9215],{"class":113,"line":180},[111,9216,118],{"emptyLinePlaceholder":117},[111,9218,9219,9221,9223],{"class":113,"line":186},[111,9220,1713],{"class":770},[111,9222,1716],{"class":131},[111,9224,1719],{"class":145},[111,9226,9227],{"class":113,"line":433},[111,9228,118],{"emptyLinePlaceholder":117},[111,9230,9231,9233,9235,9237,9239],{"class":113,"line":439},[111,9232,1730],{"class":145},[111,9234,1733],{"class":770},[111,9236,1736],{"class":145},[111,9238,1739],{"class":135},[111,9240,1476],{"class":145},[111,9242,9243,9245,9247,9249,9251],{"class":113,"line":445},[111,9244,1747],{"class":145},[111,9246,1733],{"class":770},[111,9248,1736],{"class":145},[111,9250,1754],{"class":135},[111,9252,1476],{"class":145},[111,9254,9255,9257,9259,9261,9264,9266,9269],{"class":113,"line":451},[111,9256,1762],{"class":145},[111,9258,1733],{"class":770},[111,9260,1767],{"class":145},[111,9262,9263],{"class":135},"\"world\"",[111,9265,1773],{"class":145},[111,9267,9268],{"class":135},"\"house.sdf\"",[111,9270,1476],{"class":145},[111,9272,9273],{"class":113,"line":1710},[111,9274,118],{"emptyLinePlaceholder":117},[111,9276,9277,9279,9281],{"class":113,"line":1722},[111,9278,1789],{"class":145},[111,9280,1733],{"class":770},[111,9282,1794],{"class":145},[111,9284,9285],{"class":113,"line":1727},[111,9286,1800],{"class":145},[111,9288,9289,9291,9293,9295,9297],{"class":113,"line":1744},[111,9290,1806],{"class":145},[111,9292,1809],{"class":135},[111,9294,1812],{"class":145},[111,9296,1815],{"class":135},[111,9298,1818],{"class":145},[111,9300,9301,9303,9305],{"class":113,"line":1759},[111,9302,1825],{"class":1824},[111,9304,1733],{"class":770},[111,9306,1830],{"class":145},[111,9308,9309,9311,9313,9315,9317],{"class":113,"line":1781},[111,9310,1836],{"class":135},[111,9312,1839],{"class":145},[111,9314,1842],{"class":135},[111,9316,1845],{"class":770},[111,9318,1848],{"class":145},[111,9320,9321],{"class":113,"line":1786},[111,9322,1854],{"class":145},[111,9324,9325],{"class":113,"line":1797},[111,9326,1860],{"class":145},[111,9328,9329,9331],{"class":113,"line":1803},[111,9330,2138],{"class":770},[111,9332,2141],{"class":145},[111,9334,9335],{"class":113,"line":1821},[111,9336,9337],{"class":145},"        gz_sim\n",[111,9339,9340],{"class":113,"line":1833},[111,9341,2198],{"class":145},[15,9343,9344],{},[50,9345,9346],{},"4. Build",[15,9348,2214],{},[101,9350,9351],{"className":103,"code":2217,"language":105,"meta":106,"style":106},[108,9352,9353],{"__ignoreMap":106},[111,9354,9355,9357,9359,9361],{"class":113,"line":114},[111,9356,2224],{"class":131},[111,9358,2227],{"class":135},[111,9360,2230],{"class":575},[111,9362,1442],{"class":135},[15,9364,9365],{},[50,9366,9367],{},"5. Execution",[15,9369,2245],{},[101,9371,9373],{"className":103,"code":9372,"language":105,"meta":106,"style":106},". install/setup.bash\nros2 launch demo_gazebo_sim gazebo_sim_world.launch.py\n",[108,9374,9375,9381],{"__ignoreMap":106},[111,9376,9377,9379],{"class":113,"line":114},[111,9378,2255],{"class":575},[111,9380,2258],{"class":135},[111,9382,9383,9385,9387,9389],{"class":113,"line":121},[111,9384,262],{"class":131},[111,9386,265],{"class":135},[111,9388,2267],{"class":135},[111,9390,9391],{"class":135}," gazebo_sim_world.launch.py\n",[15,9393,9394],{},"The running result is shown in the figure below.",[15,9396,9397],{},"You can also continue designing the room model according to personal preference.",[15,9399,9400],{},[199,9401],{"alt":106,"src":9402},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1730.webp",[27,9404,9406],{"id":9405},"adding-a-model-to-igng",[50,9407,9408],{},"Adding a Model to IgnG",[15,9410,9411],{},"The Ignition 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,9413,9414],{},[50,9415,9416],{},"Resource Download",[15,9418,9419],{},"Official model links for Ignition Gazebo simulation:",[15,9421,9422],{},[55,9423,9424],{"href":9424,"rel":9425},"http://app.ignitionrobotics.org/fuel/models",[59],[15,9427,9428],{},"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,9430,9431,9432,9435],{},"Create a new ",[108,9433,9434],{},"ign_models"," directory in the user directory, and extract the downloaded resources into this directory for later use.",[15,9437,9438],{},[50,9439,9440],{},"Resource Allocation",[15,9442,9443,9444,9447],{},"To allow Ignition Gazebo to recognize model resources, the next step is to modify the ",[108,9445,9446],{},".bashrc"," file in the user directory by adding the following code:",[101,9449,9451],{"className":103,"code":9450,"language":105,"meta":106,"style":106},"\n# Humble版本一般是下面的，但是有可能会更新，如果不生效，请尝试Jazzy的宏\nexport IGN_GAZEBO_RESOURCE_PATH=~/ign_models\n\n# Jazzy版本的宏改了，如下：\nexport GZ_SIM_RESOURCE_PATH=~/ign_models\n",[108,9452,9453,9457,9462,9476,9480,9485],{"__ignoreMap":106},[111,9454,9455],{"class":113,"line":114},[111,9456,118],{"emptyLinePlaceholder":117},[111,9458,9459],{"class":113,"line":121},[111,9460,9461],{"class":124},"# Humble版本一般是下面的，但是有可能会更新，如果不生效，请尝试Jazzy的宏\n",[111,9463,9464,9467,9470,9473],{"class":113,"line":128},[111,9465,9466],{"class":770},"export",[111,9468,9469],{"class":145}," IGN_GAZEBO_RESOURCE_PATH",[111,9471,9472],{"class":770},"=~",[111,9474,9475],{"class":145},"/ign_models\n",[111,9477,9478],{"class":113,"line":152},[111,9479,118],{"emptyLinePlaceholder":117},[111,9481,9482],{"class":113,"line":157},[111,9483,9484],{"class":124},"# Jazzy版本的宏改了，如下：\n",[111,9486,9487,9489,9492,9494],{"class":113,"line":163},[111,9488,9466],{"class":770},[111,9490,9491],{"class":145}," GZ_SIM_RESOURCE_PATH",[111,9493,9472],{"class":770},[111,9495,9475],{"class":145},[15,9497,9498],{},[55,9499,9500],{"href":9500,"rel":9501},"https://gazebosim.org/docs/latest/fuel_insert/",[59],[15,9503,9504],{},[50,9505,9506],{},"Model Addition",[15,9508,9509,9510,9512,9513,9516,9517,9520,9521,9524,9525,9528,9529,9532,9533,9535],{},"In the terminal, navigate to the ",[108,9511,1490],{}," directory of the ",[108,9514,9515],{},"demo_gazebo_sim"," package. Use the command ",[108,9518,9519],{},"ign gazebo house.sdf"," or ",[108,9522,9523],{},"gz sim house.sdf"," to launch the simulation environment. Click the collapse button in the upper right corner of the window, search for ",[108,9526,9527],{},"Resource Spawner"," and open it. Click ",[108,9530,9531],{},"Local resources"," and select a model to drag into the simulation environment. Save the modified content to the ",[108,9534,2943],{}," file.",[15,9537,9538],{},[199,9539],{"alt":106,"src":9540},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1731.webp",[15,9542,9543],{},"After downloading the resources normally, they will appear here in the local resources section.",[15,9545,9546,9547,9549],{},"Here is an example of the contents of the ",[108,9548,2943],{}," file:",[101,9551,9553],{"className":2410,"code":9552,"language":2412,"meta":106,"style":106},"\u003Csdf version='1.9'>\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='ignition-gazebo-physics-system'/>\n    \u003Cplugin name='gz::sim::systems::UserCommands' filename='ignition-gazebo-user-commands-system'/>\n    \u003Cplugin name='gz::sim::systems::SceneBroadcaster' filename='ignition-gazebo-scene-broadcaster-system'/>\n    \u003Cplugin name='gz::sim::systems::Contact' filename='ignition-gazebo-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.02632 -2e-06 0.500002 -0 4.4e-05 4.6e-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>false\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_0'>\n      \u003Cpose>-5.01336 -0.00029 0.500002 0 -4.2e-05 -0.005335\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>false\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_1'>\n      \u003Cpose>-0 -2.5 0.5 1e-06 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>false\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_2'>\n      \u003Cpose>-0.000154 2.52488 0.500821 -0.018068 -0 -0.003156\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>false\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cinclude>\n      \u003Curi>file://Bed\u003C/uri>\n      \u003Cname>Bed\u003C/name>\n      \u003Cpose>2.82155 1.18752 0 0 -0 0\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file://Office Desk\u003C/uri>\n      \u003Cname>Desk\u003C/name>\n      \u003Cpose>2.78306 -1.97796 0 0 -0 1.57\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file://Bathtub\u003C/uri>\n      \u003Cname>Bathtub\u003C/name>\n      \u003Cpose>-3.87509 1.82783 0 0 -0 0\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file://Vanity\u003C/uri>\n      \u003Cname>Vanity\u003C/name>\n      \u003Cpose>-2.5974 1.85613 -0.010992 0.021648 0 -1.57\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file://Vanity\u003C/uri>\n      \u003Cname>Vanity_1\u003C/name>\n      \u003Cpose>-2.5974 0.634325 -0.010992 0.021648 0 -1.57\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file://Dining Table\u003C/uri>\n      \u003Cname>DiningTable\u003C/name>\n      \u003Cpose>-0.374337 1.33602 0 0 0 -1.57\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file://Chair\u003C/uri>\n      \u003Cname>Chair\u003C/name>\n      \u003Cpose>2.79762 -1.26474 -0 -0 0 -2.3062\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file://Sofa\u003C/uri>\n      \u003Cname>Sofa\u003C/name>\n      \u003Cpose>-0.546136 -1.92328 0.000119 -0 0 1.57\u003C/pose>\n    \u003C/include>\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",[108,9554,9555,9569,9583,9603,9615,9627,9639,9647,9667,9687,9707,9727,9739,9751,9765,9773,9785,9797,9809,9817,9831,9843,9857,9871,9879,9887,9899,9911,9919,9927,9935,9943,9951,9959,9967,9975,9983,9991,10005,10013,10021,10033,10045,10053,10061,10069,10081,10093,10105,10113,10121,10133,10141,10153,10165,10173,10185,10197,10209,10221,10233,10245,10253,10261,10273,10281,10293,10305,10313,10327,10340,10354,10362,10370,10382,10394,10406,10418,10430,10442,10450,10462,10474,10482,10496,10504,10512,10524,10532,10540,10548,10556,10564,10572,10580,10588,10596,10604,10618,10626,10634,10646,10654,10662,10670,10682,10694,10706,10714,10722,10734,10746,10754,10766,10778,10786,10800,10813,10827,10835,10843,10855,10867,10879,10891,10903,10915,10923,10935,10947,10955,10969,10977,10985,10997,11005,11013,11021,11029,11037,11045,11053,11061,11069,11077,11091,11099,11107,11119,11127,11135,11143,11155,11167,11179,11187,11195,11207,11219,11227,11239,11251,11259,11273,11286,11300,11308,11316,11328,11340,11352,11364,11376,11388,11396,11408,11420,11428,11442,11450,11458,11470,11478,11486,11494,11502,11510,11518,11526,11534,11542,11550,11564,11572,11580,11592,11600,11608,11616,11628,11640,11652,11660,11668,11680,11692,11700,11712,11724,11732,11746,11759,11773,11781,11789,11801,11813,11825,11837,11849,11861,11869,11881,11893,11901,11915,11923,11931,11943,11951,11959,11967,11975,11983,11991,11999,12007,12015,12023,12037,12045,12053,12065,12073,12081,12089,12101,12113,12125,12133,12141,12153,12165,12173,12185,12197,12205,12214,12228,12241,12254,12262,12270,12283,12296,12309,12317,12325,12338,12351,12364,12372,12380,12393,12406,12419,12427,12435,12448,12462,12476,12485,12494,12508,12522,12536,12545,12554,12568,12582,12596,12605,12614,12628,12642,12656,12665,12686,12699,12712,12725,12738,12751,12764,12773,12786,12799,12812,12825,12834,12843,12856,12869,12882,12891,12900,12909],{"__ignoreMap":106},[111,9556,9557,9559,9561,9563,9565,9567],{"class":113,"line":114},[111,9558,2419],{"class":145},[111,9560,2763],{"class":2422},[111,9562,2766],{"class":131},[111,9564,1733],{"class":145},[111,9566,2971],{"class":135},[111,9568,2434],{"class":145},[111,9570,9571,9573,9575,9577,9579,9581],{"class":113,"line":121},[111,9572,2439],{"class":145},[111,9574,1490],{"class":2422},[111,9576,2426],{"class":131},[111,9578,1733],{"class":145},[111,9580,2986],{"class":135},[111,9582,2434],{"class":145},[111,9584,9585,9587,9589,9591,9593,9595,9597,9599,9601],{"class":113,"line":128},[111,9586,2456],{"class":145},[111,9588,2995],{"class":2422},[111,9590,2426],{"class":131},[111,9592,1733],{"class":145},[111,9594,3002],{"class":135},[111,9596,3005],{"class":131},[111,9598,1733],{"class":145},[111,9600,3010],{"class":135},[111,9602,2434],{"class":145},[111,9604,9605,9607,9609,9611,9613],{"class":113,"line":152},[111,9606,2466],{"class":145},[111,9608,3019],{"class":2422},[111,9610,3022],{"class":145},[111,9612,3019],{"class":2422},[111,9614,2434],{"class":145},[111,9616,9617,9619,9621,9623,9625],{"class":113,"line":157},[111,9618,2466],{"class":145},[111,9620,3033],{"class":2422},[111,9622,3036],{"class":145},[111,9624,3033],{"class":2422},[111,9626,2434],{"class":145},[111,9628,9629,9631,9633,9635,9637],{"class":113,"line":163},[111,9630,2466],{"class":145},[111,9632,3047],{"class":2422},[111,9634,3050],{"class":145},[111,9636,3047],{"class":2422},[111,9638,2434],{"class":145},[111,9640,9641,9643,9645],{"class":113,"line":175},[111,9642,2537],{"class":145},[111,9644,2995],{"class":2422},[111,9646,2434],{"class":145},[111,9648,9649,9651,9653,9655,9657,9659,9661,9663,9665],{"class":113,"line":180},[111,9650,2456],{"class":145},[111,9652,3069],{"class":2422},[111,9654,2426],{"class":131},[111,9656,1733],{"class":145},[111,9658,3076],{"class":135},[111,9660,3079],{"class":131},[111,9662,1733],{"class":145},[111,9664,3084],{"class":135},[111,9666,3087],{"class":145},[111,9668,9669,9671,9673,9675,9677,9679,9681,9683,9685],{"class":113,"line":186},[111,9670,2456],{"class":145},[111,9672,3069],{"class":2422},[111,9674,2426],{"class":131},[111,9676,1733],{"class":145},[111,9678,3100],{"class":135},[111,9680,3079],{"class":131},[111,9682,1733],{"class":145},[111,9684,3107],{"class":135},[111,9686,3087],{"class":145},[111,9688,9689,9691,9693,9695,9697,9699,9701,9703,9705],{"class":113,"line":433},[111,9690,2456],{"class":145},[111,9692,3069],{"class":2422},[111,9694,2426],{"class":131},[111,9696,1733],{"class":145},[111,9698,3122],{"class":135},[111,9700,3079],{"class":131},[111,9702,1733],{"class":145},[111,9704,3129],{"class":135},[111,9706,3087],{"class":145},[111,9708,9709,9711,9713,9715,9717,9719,9721,9723,9725],{"class":113,"line":439},[111,9710,2456],{"class":145},[111,9712,3069],{"class":2422},[111,9714,2426],{"class":131},[111,9716,1733],{"class":145},[111,9718,3144],{"class":135},[111,9720,3079],{"class":131},[111,9722,1733],{"class":145},[111,9724,3151],{"class":135},[111,9726,3087],{"class":145},[111,9728,9729,9731,9733,9735,9737],{"class":113,"line":445},[111,9730,2456],{"class":145},[111,9732,3160],{"class":2422},[111,9734,3163],{"class":145},[111,9736,3160],{"class":2422},[111,9738,2434],{"class":145},[111,9740,9741,9743,9745,9747,9749],{"class":113,"line":451},[111,9742,2456],{"class":145},[111,9744,3174],{"class":2422},[111,9746,3177],{"class":145},[111,9748,3174],{"class":2422},[111,9750,2434],{"class":145},[111,9752,9753,9755,9757,9759,9761,9763],{"class":113,"line":1710},[111,9754,2456],{"class":145},[111,9756,3188],{"class":2422},[111,9758,3005],{"class":131},[111,9760,1733],{"class":145},[111,9762,3195],{"class":135},[111,9764,3087],{"class":145},[111,9766,9767,9769,9771],{"class":113,"line":1722},[111,9768,2456],{"class":145},[111,9770,3204],{"class":2422},[111,9772,2434],{"class":145},[111,9774,9775,9777,9779,9781,9783],{"class":113,"line":1727},[111,9776,2466],{"class":145},[111,9778,3213],{"class":2422},[111,9780,3216],{"class":145},[111,9782,3213],{"class":2422},[111,9784,2434],{"class":145},[111,9786,9787,9789,9791,9793,9795],{"class":113,"line":1744},[111,9788,2466],{"class":145},[111,9790,3227],{"class":2422},[111,9792,3230],{"class":145},[111,9794,3227],{"class":2422},[111,9796,2434],{"class":145},[111,9798,9799,9801,9803,9805,9807],{"class":113,"line":1759},[111,9800,2466],{"class":145},[111,9802,3241],{"class":2422},[111,9804,3244],{"class":145},[111,9806,3241],{"class":2422},[111,9808,2434],{"class":145},[111,9810,9811,9813,9815],{"class":113,"line":1781},[111,9812,2537],{"class":145},[111,9814,3204],{"class":2422},[111,9816,2434],{"class":145},[111,9818,9819,9821,9823,9825,9827,9829],{"class":113,"line":1786},[111,9820,2456],{"class":145},[111,9822,2780],{"class":2422},[111,9824,2426],{"class":131},[111,9826,1733],{"class":145},[111,9828,3269],{"class":135},[111,9830,2434],{"class":145},[111,9832,9833,9835,9837,9839,9841],{"class":113,"line":1797},[111,9834,2466],{"class":145},[111,9836,3278],{"class":2422},[111,9838,3244],{"class":145},[111,9840,3278],{"class":2422},[111,9842,2434],{"class":145},[111,9844,9845,9847,9849,9851,9853,9855],{"class":113,"line":1803},[111,9846,2466],{"class":145},[111,9848,2442],{"class":2422},[111,9850,2426],{"class":131},[111,9852,1733],{"class":145},[111,9854,3297],{"class":135},[111,9856,2434],{"class":145},[111,9858,9859,9861,9863,9865,9867,9869],{"class":113,"line":1821},[111,9860,2640],{"class":145},[111,9862,3306],{"class":2422},[111,9864,2426],{"class":131},[111,9866,1733],{"class":145},[111,9868,3313],{"class":135},[111,9870,2434],{"class":145},[111,9872,9873,9875,9877],{"class":113,"line":1833},[111,9874,2836],{"class":145},[111,9876,3322],{"class":2422},[111,9878,2434],{"class":145},[111,9880,9881,9883,9885],{"class":113,"line":1851},[111,9882,3329],{"class":145},[111,9884,3332],{"class":2422},[111,9886,2434],{"class":145},[111,9888,9889,9891,9893,9895,9897],{"class":113,"line":1857},[111,9890,3339],{"class":145},[111,9892,3342],{"class":2422},[111,9894,3345],{"class":145},[111,9896,3342],{"class":2422},[111,9898,2434],{"class":145},[111,9900,9901,9903,9905,9907,9909],{"class":113,"line":1863},[111,9902,3339],{"class":145},[111,9904,3356],{"class":2422},[111,9906,3359],{"class":145},[111,9908,3356],{"class":2422},[111,9910,2434],{"class":145},[111,9912,9913,9915,9917],{"class":113,"line":1868},[111,9914,3368],{"class":145},[111,9916,3332],{"class":2422},[111,9918,2434],{"class":145},[111,9920,9921,9923,9925],{"class":113,"line":1874},[111,9922,3377],{"class":145},[111,9924,3322],{"class":2422},[111,9926,2434],{"class":145},[111,9928,9929,9931,9933],{"class":113,"line":1885},[111,9930,2836],{"class":145},[111,9932,3388],{"class":2422},[111,9934,2434],{"class":145},[111,9936,9937,9939,9941],{"class":113,"line":1899},[111,9938,3329],{"class":145},[111,9940,3397],{"class":2422},[111,9942,2434],{"class":145},[111,9944,9945,9947,9949],{"class":113,"line":1911},[111,9946,3339],{"class":145},[111,9948,3406],{"class":2422},[111,9950,3087],{"class":145},[111,9952,9953,9955,9957],{"class":113,"line":1938},[111,9954,3368],{"class":145},[111,9956,3397],{"class":2422},[111,9958,2434],{"class":145},[111,9960,9961,9963,9965],{"class":113,"line":1954},[111,9962,3329],{"class":145},[111,9964,3423],{"class":2422},[111,9966,3087],{"class":145},[111,9968,9969,9971,9973],{"class":113,"line":1959},[111,9970,3329],{"class":145},[111,9972,3432],{"class":2422},[111,9974,3087],{"class":145},[111,9976,9977,9979,9981],{"class":113,"line":1964},[111,9978,3377],{"class":145},[111,9980,3388],{"class":2422},[111,9982,2434],{"class":145},[111,9984,9985,9987,9989],{"class":113,"line":1970},[111,9986,2876],{"class":145},[111,9988,3306],{"class":2422},[111,9990,2434],{"class":145},[111,9992,9993,9995,9997,9999,10001,10003],{"class":113,"line":1980},[111,9994,2640],{"class":145},[111,9996,3457],{"class":2422},[111,9998,2426],{"class":131},[111,10000,1733],{"class":145},[111,10002,3464],{"class":135},[111,10004,2434],{"class":145},[111,10006,10007,10009,10011],{"class":113,"line":1993},[111,10008,2836],{"class":145},[111,10010,3322],{"class":2422},[111,10012,2434],{"class":145},[111,10014,10015,10017,10019],{"class":113,"line":2006},[111,10016,3329],{"class":145},[111,10018,3332],{"class":2422},[111,10020,2434],{"class":145},[111,10022,10023,10025,10027,10029,10031],{"class":113,"line":2021},[111,10024,3339],{"class":145},[111,10026,3342],{"class":2422},[111,10028,3345],{"class":145},[111,10030,3342],{"class":2422},[111,10032,2434],{"class":145},[111,10034,10035,10037,10039,10041,10043],{"class":113,"line":2029},[111,10036,3339],{"class":145},[111,10038,3356],{"class":2422},[111,10040,3359],{"class":145},[111,10042,3356],{"class":2422},[111,10044,2434],{"class":145},[111,10046,10047,10049,10051],{"class":113,"line":2037},[111,10048,3368],{"class":145},[111,10050,3332],{"class":2422},[111,10052,2434],{"class":145},[111,10054,10055,10057,10059],{"class":113,"line":2043},[111,10056,3377],{"class":145},[111,10058,3322],{"class":2422},[111,10060,2434],{"class":145},[111,10062,10063,10065,10067],{"class":113,"line":2065},[111,10064,2836],{"class":145},[111,10066,3529],{"class":2422},[111,10068,2434],{"class":145},[111,10070,10071,10073,10075,10077,10079],{"class":113,"line":2076},[111,10072,3329],{"class":145},[111,10074,3213],{"class":2422},[111,10076,3540],{"class":145},[111,10078,3213],{"class":2422},[111,10080,2434],{"class":145},[111,10082,10083,10085,10087,10089,10091],{"class":113,"line":2093},[111,10084,3329],{"class":145},[111,10086,3551],{"class":2422},[111,10088,3540],{"class":145},[111,10090,3551],{"class":2422},[111,10092,2434],{"class":145},[111,10094,10095,10097,10099,10101,10103],{"class":113,"line":2108},[111,10096,3329],{"class":145},[111,10098,3564],{"class":2422},[111,10100,3540],{"class":145},[111,10102,3564],{"class":2422},[111,10104,2434],{"class":145},[111,10106,10107,10109,10111],{"class":113,"line":2114},[111,10108,3377],{"class":145},[111,10110,3529],{"class":2422},[111,10112,2434],{"class":145},[111,10114,10115,10117,10119],{"class":113,"line":2125},[111,10116,2876],{"class":145},[111,10118,3457],{"class":2422},[111,10120,2434],{"class":145},[111,10122,10123,10125,10127,10129,10131],{"class":113,"line":2130},[111,10124,2640],{"class":145},[111,10126,3593],{"class":2422},[111,10128,3596],{"class":145},[111,10130,3593],{"class":2422},[111,10132,2434],{"class":145},[111,10134,10135,10137,10139],{"class":113,"line":2135},[111,10136,2640],{"class":145},[111,10138,2459],{"class":2422},[111,10140,2434],{"class":145},[111,10142,10143,10145,10147,10149,10151],{"class":113,"line":2144},[111,10144,2836],{"class":145},[111,10146,3593],{"class":2422},[111,10148,3596],{"class":145},[111,10150,3593],{"class":2422},[111,10152,2434],{"class":145},[111,10154,10155,10157,10159,10161,10163],{"class":113,"line":2150},[111,10156,2836],{"class":145},[111,10158,2469],{"class":2422},[111,10160,3629],{"class":145},[111,10162,2469],{"class":2422},[111,10164,2434],{"class":145},[111,10166,10167,10169,10171],{"class":113,"line":2170},[111,10168,2836],{"class":145},[111,10170,2487],{"class":2422},[111,10172,2434],{"class":145},[111,10174,10175,10177,10179,10181,10183],{"class":113,"line":2183},[111,10176,3329],{"class":145},[111,10178,2839],{"class":2422},[111,10180,3036],{"class":145},[111,10182,2839],{"class":2422},[111,10184,2434],{"class":145},[111,10186,10187,10189,10191,10193,10195],{"class":113,"line":2189},[111,10188,3329],{"class":145},[111,10190,3660],{"class":2422},[111,10192,3663],{"class":145},[111,10194,3660],{"class":2422},[111,10196,2434],{"class":145},[111,10198,10199,10201,10203,10205,10207],{"class":113,"line":2195},[111,10200,3329],{"class":145},[111,10202,3674],{"class":2422},[111,10204,3663],{"class":145},[111,10206,3674],{"class":2422},[111,10208,2434],{"class":145},[111,10210,10211,10213,10215,10217,10219],{"class":113,"line":3683},[111,10212,3329],{"class":145},[111,10214,2852],{"class":2422},[111,10216,3036],{"class":145},[111,10218,2852],{"class":2422},[111,10220,2434],{"class":145},[111,10222,10223,10225,10227,10229,10231],{"class":113,"line":3696},[111,10224,3329],{"class":145},[111,10226,3701],{"class":2422},[111,10228,3663],{"class":145},[111,10230,3701],{"class":2422},[111,10232,2434],{"class":145},[111,10234,10235,10237,10239,10241,10243],{"class":113,"line":3710},[111,10236,3329],{"class":145},[111,10238,2865],{"class":2422},[111,10240,3036],{"class":145},[111,10242,2865],{"class":2422},[111,10244,2434],{"class":145},[111,10246,10247,10249,10251],{"class":113,"line":3723},[111,10248,3377],{"class":145},[111,10250,2487],{"class":2422},[111,10252,2434],{"class":145},[111,10254,10255,10257,10259],{"class":113,"line":3732},[111,10256,2876],{"class":145},[111,10258,2459],{"class":2422},[111,10260,2434],{"class":145},[111,10262,10263,10265,10267,10269,10271],{"class":113,"line":3741},[111,10264,2640],{"class":145},[111,10266,3746],{"class":2422},[111,10268,3749],{"class":145},[111,10270,3746],{"class":2422},[111,10272,2434],{"class":145},[111,10274,10275,10277,10279],{"class":113,"line":3756},[111,10276,2700],{"class":145},[111,10278,2442],{"class":2422},[111,10280,2434],{"class":145},[111,10282,10283,10285,10287,10289,10291],{"class":113,"line":3765},[111,10284,2466],{"class":145},[111,10286,3593],{"class":2422},[111,10288,3596],{"class":145},[111,10290,3593],{"class":2422},[111,10292,2434],{"class":145},[111,10294,10295,10297,10299,10301,10303],{"class":113,"line":3778},[111,10296,2466],{"class":145},[111,10298,3783],{"class":2422},[111,10300,3749],{"class":145},[111,10302,3783],{"class":2422},[111,10304,2434],{"class":145},[111,10306,10307,10309,10311],{"class":113,"line":3792},[111,10308,2537],{"class":145},[111,10310,2780],{"class":2422},[111,10312,2434],{"class":145},[111,10314,10315,10317,10319,10321,10323,10325],{"class":113,"line":3801},[111,10316,2456],{"class":145},[111,10318,2780],{"class":2422},[111,10320,2426],{"class":131},[111,10322,1733],{"class":145},[111,10324,3812],{"class":135},[111,10326,2434],{"class":145},[111,10328,10329,10331,10333,10336,10338],{"class":113,"line":3817},[111,10330,2466],{"class":145},[111,10332,3593],{"class":2422},[111,10334,10335],{"class":145},">5.02632 -2e-06 0.500002 -0 4.4e-05 4.6e-05\u003C/",[111,10337,3593],{"class":2422},[111,10339,2434],{"class":145},[111,10341,10342,10344,10346,10348,10350,10352],{"class":113,"line":3831},[111,10343,2466],{"class":145},[111,10345,2442],{"class":2422},[111,10347,2426],{"class":131},[111,10349,1733],{"class":145},[111,10351,3842],{"class":135},[111,10353,2434],{"class":145},[111,10355,10356,10358,10360],{"class":113,"line":3847},[111,10357,2640],{"class":145},[111,10359,2459],{"class":2422},[111,10361,2434],{"class":145},[111,10363,10364,10366,10368],{"class":113,"line":3856},[111,10365,2836],{"class":145},[111,10367,2487],{"class":2422},[111,10369,2434],{"class":145},[111,10371,10372,10374,10376,10378,10380],{"class":113,"line":3865},[111,10373,3329],{"class":145},[111,10375,2839],{"class":2422},[111,10377,3872],{"class":145},[111,10379,2839],{"class":2422},[111,10381,2434],{"class":145},[111,10383,10384,10386,10388,10390,10392],{"class":113,"line":3879},[111,10385,3329],{"class":145},[111,10387,3660],{"class":2422},[111,10389,3663],{"class":145},[111,10391,3660],{"class":2422},[111,10393,2434],{"class":145},[111,10395,10396,10398,10400,10402,10404],{"class":113,"line":3892},[111,10397,3329],{"class":145},[111,10399,3674],{"class":2422},[111,10401,3663],{"class":145},[111,10403,3674],{"class":2422},[111,10405,2434],{"class":145},[111,10407,10408,10410,10412,10414,10416],{"class":113,"line":3905},[111,10409,3329],{"class":145},[111,10411,2852],{"class":2422},[111,10413,3872],{"class":145},[111,10415,2852],{"class":2422},[111,10417,2434],{"class":145},[111,10419,10420,10422,10424,10426,10428],{"class":113,"line":3918},[111,10421,3329],{"class":145},[111,10423,3701],{"class":2422},[111,10425,3663],{"class":145},[111,10427,3701],{"class":2422},[111,10429,2434],{"class":145},[111,10431,10432,10434,10436,10438,10440],{"class":113,"line":3931},[111,10433,3329],{"class":145},[111,10435,2865],{"class":2422},[111,10437,3872],{"class":145},[111,10439,2865],{"class":2422},[111,10441,2434],{"class":145},[111,10443,10444,10446,10448],{"class":113,"line":3944},[111,10445,3377],{"class":145},[111,10447,2487],{"class":2422},[111,10449,2434],{"class":145},[111,10451,10452,10454,10456,10458,10460],{"class":113,"line":3953},[111,10453,2836],{"class":145},[111,10455,2469],{"class":2422},[111,10457,3629],{"class":145},[111,10459,2469],{"class":2422},[111,10461,2434],{"class":145},[111,10463,10464,10466,10468,10470,10472],{"class":113,"line":3966},[111,10465,2836],{"class":145},[111,10467,3593],{"class":2422},[111,10469,3596],{"class":145},[111,10471,3593],{"class":2422},[111,10473,2434],{"class":145},[111,10475,10476,10478,10480],{"class":113,"line":3979},[111,10477,2876],{"class":145},[111,10479,2459],{"class":2422},[111,10481,2434],{"class":145},[111,10483,10484,10486,10488,10490,10492,10494],{"class":113,"line":3988},[111,10485,2640],{"class":145},[111,10487,3306],{"class":2422},[111,10489,2426],{"class":131},[111,10491,1733],{"class":145},[111,10493,3999],{"class":135},[111,10495,2434],{"class":145},[111,10497,10498,10500,10502],{"class":113,"line":4004},[111,10499,2836],{"class":145},[111,10501,3322],{"class":2422},[111,10503,2434],{"class":145},[111,10505,10506,10508,10510],{"class":113,"line":4013},[111,10507,3329],{"class":145},[111,10509,4018],{"class":2422},[111,10511,2434],{"class":145},[111,10513,10514,10516,10518,10520,10522],{"class":113,"line":4023},[111,10515,3339],{"class":145},[111,10517,3356],{"class":2422},[111,10519,4030],{"class":145},[111,10521,3356],{"class":2422},[111,10523,2434],{"class":145},[111,10525,10526,10528,10530],{"class":113,"line":4037},[111,10527,3368],{"class":145},[111,10529,4018],{"class":2422},[111,10531,2434],{"class":145},[111,10533,10534,10536,10538],{"class":113,"line":4046},[111,10535,3377],{"class":145},[111,10537,3322],{"class":2422},[111,10539,2434],{"class":145},[111,10541,10542,10544,10546],{"class":113,"line":4055},[111,10543,2836],{"class":145},[111,10545,3388],{"class":2422},[111,10547,2434],{"class":145},[111,10549,10550,10552,10554],{"class":113,"line":4064},[111,10551,3329],{"class":145},[111,10553,3397],{"class":2422},[111,10555,2434],{"class":145},[111,10557,10558,10560,10562],{"class":113,"line":4073},[111,10559,3339],{"class":145},[111,10561,3406],{"class":2422},[111,10563,3087],{"class":145},[111,10565,10566,10568,10570],{"class":113,"line":4082},[111,10567,3368],{"class":145},[111,10569,3397],{"class":2422},[111,10571,2434],{"class":145},[111,10573,10574,10576,10578],{"class":113,"line":4091},[111,10575,3329],{"class":145},[111,10577,3423],{"class":2422},[111,10579,3087],{"class":145},[111,10581,10582,10584,10586],{"class":113,"line":4100},[111,10583,3329],{"class":145},[111,10585,3432],{"class":2422},[111,10587,3087],{"class":145},[111,10589,10590,10592,10594],{"class":113,"line":4109},[111,10591,3377],{"class":145},[111,10593,3388],{"class":2422},[111,10595,2434],{"class":145},[111,10597,10598,10600,10602],{"class":113,"line":4118},[111,10599,2876],{"class":145},[111,10601,3306],{"class":2422},[111,10603,2434],{"class":145},[111,10605,10606,10608,10610,10612,10614,10616],{"class":113,"line":4127},[111,10607,2640],{"class":145},[111,10609,3457],{"class":2422},[111,10611,2426],{"class":131},[111,10613,1733],{"class":145},[111,10615,4138],{"class":135},[111,10617,2434],{"class":145},[111,10619,10620,10622,10624],{"class":113,"line":4143},[111,10621,2836],{"class":145},[111,10623,3322],{"class":2422},[111,10625,2434],{"class":145},[111,10627,10628,10630,10632],{"class":113,"line":4152},[111,10629,3329],{"class":145},[111,10631,4018],{"class":2422},[111,10633,2434],{"class":145},[111,10635,10636,10638,10640,10642,10644],{"class":113,"line":4161},[111,10637,3339],{"class":145},[111,10639,3356],{"class":2422},[111,10641,4030],{"class":145},[111,10643,3356],{"class":2422},[111,10645,2434],{"class":145},[111,10647,10648,10650,10652],{"class":113,"line":4174},[111,10649,3368],{"class":145},[111,10651,4018],{"class":2422},[111,10653,2434],{"class":145},[111,10655,10656,10658,10660],{"class":113,"line":4183},[111,10657,3377],{"class":145},[111,10659,3322],{"class":2422},[111,10661,2434],{"class":145},[111,10663,10664,10666,10668],{"class":113,"line":4192},[111,10665,2836],{"class":145},[111,10667,3529],{"class":2422},[111,10669,2434],{"class":145},[111,10671,10672,10674,10676,10678,10680],{"class":113,"line":4201},[111,10673,3329],{"class":145},[111,10675,3213],{"class":2422},[111,10677,4208],{"class":145},[111,10679,3213],{"class":2422},[111,10681,2434],{"class":145},[111,10683,10684,10686,10688,10690,10692],{"class":113,"line":4215},[111,10685,3329],{"class":145},[111,10687,3551],{"class":2422},[111,10689,3230],{"class":145},[111,10691,3551],{"class":2422},[111,10693,2434],{"class":145},[111,10695,10696,10698,10700,10702,10704],{"class":113,"line":4228},[111,10697,3329],{"class":145},[111,10699,3564],{"class":2422},[111,10701,4235],{"class":145},[111,10703,3564],{"class":2422},[111,10705,2434],{"class":145},[111,10707,10708,10710,10712],{"class":113,"line":4242},[111,10709,3377],{"class":145},[111,10711,3529],{"class":2422},[111,10713,2434],{"class":145},[111,10715,10716,10718,10720],{"class":113,"line":4251},[111,10717,2876],{"class":145},[111,10719,3457],{"class":2422},[111,10721,2434],{"class":145},[111,10723,10724,10726,10728,10730,10732],{"class":113,"line":4260},[111,10725,2640],{"class":145},[111,10727,3593],{"class":2422},[111,10729,3596],{"class":145},[111,10731,3593],{"class":2422},[111,10733,2434],{"class":145},[111,10735,10736,10738,10740,10742,10744],{"class":113,"line":4273},[111,10737,2640],{"class":145},[111,10739,3746],{"class":2422},[111,10741,3749],{"class":145},[111,10743,3746],{"class":2422},[111,10745,2434],{"class":145},[111,10747,10748,10750,10752],{"class":113,"line":4286},[111,10749,2700],{"class":145},[111,10751,2442],{"class":2422},[111,10753,2434],{"class":145},[111,10755,10756,10758,10760,10762,10764],{"class":113,"line":4295},[111,10757,2466],{"class":145},[111,10759,3278],{"class":2422},[111,10761,3749],{"class":145},[111,10763,3278],{"class":2422},[111,10765,2434],{"class":145},[111,10767,10768,10770,10772,10774,10776],{"class":113,"line":4308},[111,10769,2466],{"class":145},[111,10771,3783],{"class":2422},[111,10773,3749],{"class":145},[111,10775,3783],{"class":2422},[111,10777,2434],{"class":145},[111,10779,10780,10782,10784],{"class":113,"line":4321},[111,10781,2537],{"class":145},[111,10783,2780],{"class":2422},[111,10785,2434],{"class":145},[111,10787,10788,10790,10792,10794,10796,10798],{"class":113,"line":4330},[111,10789,2456],{"class":145},[111,10791,2780],{"class":2422},[111,10793,2426],{"class":131},[111,10795,1733],{"class":145},[111,10797,4341],{"class":135},[111,10799,2434],{"class":145},[111,10801,10802,10804,10806,10809,10811],{"class":113,"line":4346},[111,10803,2466],{"class":145},[111,10805,3593],{"class":2422},[111,10807,10808],{"class":145},">-5.01336 -0.00029 0.500002 0 -4.2e-05 -0.005335\u003C/",[111,10810,3593],{"class":2422},[111,10812,2434],{"class":145},[111,10814,10815,10817,10819,10821,10823,10825],{"class":113,"line":4360},[111,10816,2466],{"class":145},[111,10818,2442],{"class":2422},[111,10820,2426],{"class":131},[111,10822,1733],{"class":145},[111,10824,3842],{"class":135},[111,10826,2434],{"class":145},[111,10828,10829,10831,10833],{"class":113,"line":4375},[111,10830,2640],{"class":145},[111,10832,2459],{"class":2422},[111,10834,2434],{"class":145},[111,10836,10837,10839,10841],{"class":113,"line":4384},[111,10838,2836],{"class":145},[111,10840,2487],{"class":2422},[111,10842,2434],{"class":145},[111,10844,10845,10847,10849,10851,10853],{"class":113,"line":4393},[111,10846,3329],{"class":145},[111,10848,2839],{"class":2422},[111,10850,3872],{"class":145},[111,10852,2839],{"class":2422},[111,10854,2434],{"class":145},[111,10856,10857,10859,10861,10863,10865],{"class":113,"line":4406},[111,10858,3329],{"class":145},[111,10860,3660],{"class":2422},[111,10862,3663],{"class":145},[111,10864,3660],{"class":2422},[111,10866,2434],{"class":145},[111,10868,10869,10871,10873,10875,10877],{"class":113,"line":4419},[111,10870,3329],{"class":145},[111,10872,3674],{"class":2422},[111,10874,3663],{"class":145},[111,10876,3674],{"class":2422},[111,10878,2434],{"class":145},[111,10880,10881,10883,10885,10887,10889],{"class":113,"line":4432},[111,10882,3329],{"class":145},[111,10884,2852],{"class":2422},[111,10886,3872],{"class":145},[111,10888,2852],{"class":2422},[111,10890,2434],{"class":145},[111,10892,10893,10895,10897,10899,10901],{"class":113,"line":4445},[111,10894,3329],{"class":145},[111,10896,3701],{"class":2422},[111,10898,3663],{"class":145},[111,10900,3701],{"class":2422},[111,10902,2434],{"class":145},[111,10904,10905,10907,10909,10911,10913],{"class":113,"line":4458},[111,10906,3329],{"class":145},[111,10908,2865],{"class":2422},[111,10910,3872],{"class":145},[111,10912,2865],{"class":2422},[111,10914,2434],{"class":145},[111,10916,10917,10919,10921],{"class":113,"line":4471},[111,10918,3377],{"class":145},[111,10920,2487],{"class":2422},[111,10922,2434],{"class":145},[111,10924,10925,10927,10929,10931,10933],{"class":113,"line":4480},[111,10926,2836],{"class":145},[111,10928,2469],{"class":2422},[111,10930,3629],{"class":145},[111,10932,2469],{"class":2422},[111,10934,2434],{"class":145},[111,10936,10937,10939,10941,10943,10945],{"class":113,"line":4493},[111,10938,2836],{"class":145},[111,10940,3593],{"class":2422},[111,10942,3596],{"class":145},[111,10944,3593],{"class":2422},[111,10946,2434],{"class":145},[111,10948,10949,10951,10953],{"class":113,"line":4506},[111,10950,2876],{"class":145},[111,10952,2459],{"class":2422},[111,10954,2434],{"class":145},[111,10956,10957,10959,10961,10963,10965,10967],{"class":113,"line":4515},[111,10958,2640],{"class":145},[111,10960,3306],{"class":2422},[111,10962,2426],{"class":131},[111,10964,1733],{"class":145},[111,10966,3999],{"class":135},[111,10968,2434],{"class":145},[111,10970,10971,10973,10975],{"class":113,"line":4530},[111,10972,2836],{"class":145},[111,10974,3322],{"class":2422},[111,10976,2434],{"class":145},[111,10978,10979,10981,10983],{"class":113,"line":4539},[111,10980,3329],{"class":145},[111,10982,4018],{"class":2422},[111,10984,2434],{"class":145},[111,10986,10987,10989,10991,10993,10995],{"class":113,"line":4548},[111,10988,3339],{"class":145},[111,10990,3356],{"class":2422},[111,10992,4030],{"class":145},[111,10994,3356],{"class":2422},[111,10996,2434],{"class":145},[111,10998,10999,11001,11003],{"class":113,"line":4561},[111,11000,3368],{"class":145},[111,11002,4018],{"class":2422},[111,11004,2434],{"class":145},[111,11006,11007,11009,11011],{"class":113,"line":4570},[111,11008,3377],{"class":145},[111,11010,3322],{"class":2422},[111,11012,2434],{"class":145},[111,11014,11015,11017,11019],{"class":113,"line":4579},[111,11016,2836],{"class":145},[111,11018,3388],{"class":2422},[111,11020,2434],{"class":145},[111,11022,11023,11025,11027],{"class":113,"line":4588},[111,11024,3329],{"class":145},[111,11026,3397],{"class":2422},[111,11028,2434],{"class":145},[111,11030,11031,11033,11035],{"class":113,"line":4597},[111,11032,3339],{"class":145},[111,11034,3406],{"class":2422},[111,11036,3087],{"class":145},[111,11038,11039,11041,11043],{"class":113,"line":4606},[111,11040,3368],{"class":145},[111,11042,3397],{"class":2422},[111,11044,2434],{"class":145},[111,11046,11047,11049,11051],{"class":113,"line":4615},[111,11048,3329],{"class":145},[111,11050,3423],{"class":2422},[111,11052,3087],{"class":145},[111,11054,11055,11057,11059],{"class":113,"line":4624},[111,11056,3329],{"class":145},[111,11058,3432],{"class":2422},[111,11060,3087],{"class":145},[111,11062,11063,11065,11067],{"class":113,"line":4633},[111,11064,3377],{"class":145},[111,11066,3388],{"class":2422},[111,11068,2434],{"class":145},[111,11070,11071,11073,11075],{"class":113,"line":4642},[111,11072,2876],{"class":145},[111,11074,3306],{"class":2422},[111,11076,2434],{"class":145},[111,11078,11079,11081,11083,11085,11087,11089],{"class":113,"line":4651},[111,11080,2640],{"class":145},[111,11082,3457],{"class":2422},[111,11084,2426],{"class":131},[111,11086,1733],{"class":145},[111,11088,4138],{"class":135},[111,11090,2434],{"class":145},[111,11092,11093,11095,11097],{"class":113,"line":4666},[111,11094,2836],{"class":145},[111,11096,3322],{"class":2422},[111,11098,2434],{"class":145},[111,11100,11101,11103,11105],{"class":113,"line":4675},[111,11102,3329],{"class":145},[111,11104,4018],{"class":2422},[111,11106,2434],{"class":145},[111,11108,11109,11111,11113,11115,11117],{"class":113,"line":4684},[111,11110,3339],{"class":145},[111,11112,3356],{"class":2422},[111,11114,4030],{"class":145},[111,11116,3356],{"class":2422},[111,11118,2434],{"class":145},[111,11120,11121,11123,11125],{"class":113,"line":4697},[111,11122,3368],{"class":145},[111,11124,4018],{"class":2422},[111,11126,2434],{"class":145},[111,11128,11129,11131,11133],{"class":113,"line":4706},[111,11130,3377],{"class":145},[111,11132,3322],{"class":2422},[111,11134,2434],{"class":145},[111,11136,11137,11139,11141],{"class":113,"line":4715},[111,11138,2836],{"class":145},[111,11140,3529],{"class":2422},[111,11142,2434],{"class":145},[111,11144,11145,11147,11149,11151,11153],{"class":113,"line":4724},[111,11146,3329],{"class":145},[111,11148,3213],{"class":2422},[111,11150,4208],{"class":145},[111,11152,3213],{"class":2422},[111,11154,2434],{"class":145},[111,11156,11157,11159,11161,11163,11165],{"class":113,"line":4737},[111,11158,3329],{"class":145},[111,11160,3551],{"class":2422},[111,11162,3230],{"class":145},[111,11164,3551],{"class":2422},[111,11166,2434],{"class":145},[111,11168,11169,11171,11173,11175,11177],{"class":113,"line":4750},[111,11170,3329],{"class":145},[111,11172,3564],{"class":2422},[111,11174,4235],{"class":145},[111,11176,3564],{"class":2422},[111,11178,2434],{"class":145},[111,11180,11181,11183,11185],{"class":113,"line":4763},[111,11182,3377],{"class":145},[111,11184,3529],{"class":2422},[111,11186,2434],{"class":145},[111,11188,11189,11191,11193],{"class":113,"line":4772},[111,11190,2876],{"class":145},[111,11192,3457],{"class":2422},[111,11194,2434],{"class":145},[111,11196,11197,11199,11201,11203,11205],{"class":113,"line":4781},[111,11198,2640],{"class":145},[111,11200,3593],{"class":2422},[111,11202,3596],{"class":145},[111,11204,3593],{"class":2422},[111,11206,2434],{"class":145},[111,11208,11209,11211,11213,11215,11217],{"class":113,"line":4794},[111,11210,2640],{"class":145},[111,11212,3746],{"class":2422},[111,11214,3749],{"class":145},[111,11216,3746],{"class":2422},[111,11218,2434],{"class":145},[111,11220,11221,11223,11225],{"class":113,"line":4807},[111,11222,2700],{"class":145},[111,11224,2442],{"class":2422},[111,11226,2434],{"class":145},[111,11228,11229,11231,11233,11235,11237],{"class":113,"line":4816},[111,11230,2466],{"class":145},[111,11232,3278],{"class":2422},[111,11234,3749],{"class":145},[111,11236,3278],{"class":2422},[111,11238,2434],{"class":145},[111,11240,11241,11243,11245,11247,11249],{"class":113,"line":4829},[111,11242,2466],{"class":145},[111,11244,3783],{"class":2422},[111,11246,3749],{"class":145},[111,11248,3783],{"class":2422},[111,11250,2434],{"class":145},[111,11252,11253,11255,11257],{"class":113,"line":4842},[111,11254,2537],{"class":145},[111,11256,2780],{"class":2422},[111,11258,2434],{"class":145},[111,11260,11261,11263,11265,11267,11269,11271],{"class":113,"line":4851},[111,11262,2456],{"class":145},[111,11264,2780],{"class":2422},[111,11266,2426],{"class":131},[111,11268,1733],{"class":145},[111,11270,4862],{"class":135},[111,11272,2434],{"class":145},[111,11274,11275,11277,11279,11282,11284],{"class":113,"line":4867},[111,11276,2466],{"class":145},[111,11278,3593],{"class":2422},[111,11280,11281],{"class":145},">-0 -2.5 0.5 1e-06 0 0\u003C/",[111,11283,3593],{"class":2422},[111,11285,2434],{"class":145},[111,11287,11288,11290,11292,11294,11296,11298],{"class":113,"line":4881},[111,11289,2466],{"class":145},[111,11291,2442],{"class":2422},[111,11293,2426],{"class":131},[111,11295,1733],{"class":145},[111,11297,3842],{"class":135},[111,11299,2434],{"class":145},[111,11301,11302,11304,11306],{"class":113,"line":4896},[111,11303,2640],{"class":145},[111,11305,2459],{"class":2422},[111,11307,2434],{"class":145},[111,11309,11310,11312,11314],{"class":113,"line":4905},[111,11311,2836],{"class":145},[111,11313,2487],{"class":2422},[111,11315,2434],{"class":145},[111,11317,11318,11320,11322,11324,11326],{"class":113,"line":4914},[111,11319,3329],{"class":145},[111,11321,2839],{"class":2422},[111,11323,3872],{"class":145},[111,11325,2839],{"class":2422},[111,11327,2434],{"class":145},[111,11329,11330,11332,11334,11336,11338],{"class":113,"line":4927},[111,11331,3329],{"class":145},[111,11333,3660],{"class":2422},[111,11335,3663],{"class":145},[111,11337,3660],{"class":2422},[111,11339,2434],{"class":145},[111,11341,11342,11344,11346,11348,11350],{"class":113,"line":4940},[111,11343,3329],{"class":145},[111,11345,3674],{"class":2422},[111,11347,3663],{"class":145},[111,11349,3674],{"class":2422},[111,11351,2434],{"class":145},[111,11353,11354,11356,11358,11360,11362],{"class":113,"line":4953},[111,11355,3329],{"class":145},[111,11357,2852],{"class":2422},[111,11359,3872],{"class":145},[111,11361,2852],{"class":2422},[111,11363,2434],{"class":145},[111,11365,11366,11368,11370,11372,11374],{"class":113,"line":4966},[111,11367,3329],{"class":145},[111,11369,3701],{"class":2422},[111,11371,3663],{"class":145},[111,11373,3701],{"class":2422},[111,11375,2434],{"class":145},[111,11377,11378,11380,11382,11384,11386],{"class":113,"line":4979},[111,11379,3329],{"class":145},[111,11381,2865],{"class":2422},[111,11383,3872],{"class":145},[111,11385,2865],{"class":2422},[111,11387,2434],{"class":145},[111,11389,11390,11392,11394],{"class":113,"line":4992},[111,11391,3377],{"class":145},[111,11393,2487],{"class":2422},[111,11395,2434],{"class":145},[111,11397,11398,11400,11402,11404,11406],{"class":113,"line":5001},[111,11399,2836],{"class":145},[111,11401,2469],{"class":2422},[111,11403,3629],{"class":145},[111,11405,2469],{"class":2422},[111,11407,2434],{"class":145},[111,11409,11410,11412,11414,11416,11418],{"class":113,"line":5014},[111,11411,2836],{"class":145},[111,11413,3593],{"class":2422},[111,11415,3596],{"class":145},[111,11417,3593],{"class":2422},[111,11419,2434],{"class":145},[111,11421,11422,11424,11426],{"class":113,"line":5027},[111,11423,2876],{"class":145},[111,11425,2459],{"class":2422},[111,11427,2434],{"class":145},[111,11429,11430,11432,11434,11436,11438,11440],{"class":113,"line":5036},[111,11431,2640],{"class":145},[111,11433,3306],{"class":2422},[111,11435,2426],{"class":131},[111,11437,1733],{"class":145},[111,11439,3999],{"class":135},[111,11441,2434],{"class":145},[111,11443,11444,11446,11448],{"class":113,"line":5051},[111,11445,2836],{"class":145},[111,11447,3322],{"class":2422},[111,11449,2434],{"class":145},[111,11451,11452,11454,11456],{"class":113,"line":5060},[111,11453,3329],{"class":145},[111,11455,4018],{"class":2422},[111,11457,2434],{"class":145},[111,11459,11460,11462,11464,11466,11468],{"class":113,"line":5069},[111,11461,3339],{"class":145},[111,11463,3356],{"class":2422},[111,11465,5076],{"class":145},[111,11467,3356],{"class":2422},[111,11469,2434],{"class":145},[111,11471,11472,11474,11476],{"class":113,"line":5083},[111,11473,3368],{"class":145},[111,11475,4018],{"class":2422},[111,11477,2434],{"class":145},[111,11479,11480,11482,11484],{"class":113,"line":5092},[111,11481,3377],{"class":145},[111,11483,3322],{"class":2422},[111,11485,2434],{"class":145},[111,11487,11488,11490,11492],{"class":113,"line":5101},[111,11489,2836],{"class":145},[111,11491,3388],{"class":2422},[111,11493,2434],{"class":145},[111,11495,11496,11498,11500],{"class":113,"line":5110},[111,11497,3329],{"class":145},[111,11499,3397],{"class":2422},[111,11501,2434],{"class":145},[111,11503,11504,11506,11508],{"class":113,"line":5119},[111,11505,3339],{"class":145},[111,11507,3406],{"class":2422},[111,11509,3087],{"class":145},[111,11511,11512,11514,11516],{"class":113,"line":5128},[111,11513,3368],{"class":145},[111,11515,3397],{"class":2422},[111,11517,2434],{"class":145},[111,11519,11520,11522,11524],{"class":113,"line":5137},[111,11521,3329],{"class":145},[111,11523,3423],{"class":2422},[111,11525,3087],{"class":145},[111,11527,11528,11530,11532],{"class":113,"line":5146},[111,11529,3329],{"class":145},[111,11531,3432],{"class":2422},[111,11533,3087],{"class":145},[111,11535,11536,11538,11540],{"class":113,"line":5155},[111,11537,3377],{"class":145},[111,11539,3388],{"class":2422},[111,11541,2434],{"class":145},[111,11543,11544,11546,11548],{"class":113,"line":5164},[111,11545,2876],{"class":145},[111,11547,3306],{"class":2422},[111,11549,2434],{"class":145},[111,11551,11552,11554,11556,11558,11560,11562],{"class":113,"line":5173},[111,11553,2640],{"class":145},[111,11555,3457],{"class":2422},[111,11557,2426],{"class":131},[111,11559,1733],{"class":145},[111,11561,4138],{"class":135},[111,11563,2434],{"class":145},[111,11565,11566,11568,11570],{"class":113,"line":5188},[111,11567,2836],{"class":145},[111,11569,3322],{"class":2422},[111,11571,2434],{"class":145},[111,11573,11574,11576,11578],{"class":113,"line":5197},[111,11575,3329],{"class":145},[111,11577,4018],{"class":2422},[111,11579,2434],{"class":145},[111,11581,11582,11584,11586,11588,11590],{"class":113,"line":5206},[111,11583,3339],{"class":145},[111,11585,3356],{"class":2422},[111,11587,5076],{"class":145},[111,11589,3356],{"class":2422},[111,11591,2434],{"class":145},[111,11593,11594,11596,11598],{"class":113,"line":5219},[111,11595,3368],{"class":145},[111,11597,4018],{"class":2422},[111,11599,2434],{"class":145},[111,11601,11602,11604,11606],{"class":113,"line":5228},[111,11603,3377],{"class":145},[111,11605,3322],{"class":2422},[111,11607,2434],{"class":145},[111,11609,11610,11612,11614],{"class":113,"line":5237},[111,11611,2836],{"class":145},[111,11613,3529],{"class":2422},[111,11615,2434],{"class":145},[111,11617,11618,11620,11622,11624,11626],{"class":113,"line":5246},[111,11619,3329],{"class":145},[111,11621,3213],{"class":2422},[111,11623,4208],{"class":145},[111,11625,3213],{"class":2422},[111,11627,2434],{"class":145},[111,11629,11630,11632,11634,11636,11638],{"class":113,"line":5259},[111,11631,3329],{"class":145},[111,11633,3551],{"class":2422},[111,11635,3230],{"class":145},[111,11637,3551],{"class":2422},[111,11639,2434],{"class":145},[111,11641,11642,11644,11646,11648,11650],{"class":113,"line":5272},[111,11643,3329],{"class":145},[111,11645,3564],{"class":2422},[111,11647,4235],{"class":145},[111,11649,3564],{"class":2422},[111,11651,2434],{"class":145},[111,11653,11654,11656,11658],{"class":113,"line":5285},[111,11655,3377],{"class":145},[111,11657,3529],{"class":2422},[111,11659,2434],{"class":145},[111,11661,11662,11664,11666],{"class":113,"line":5294},[111,11663,2876],{"class":145},[111,11665,3457],{"class":2422},[111,11667,2434],{"class":145},[111,11669,11670,11672,11674,11676,11678],{"class":113,"line":5303},[111,11671,2640],{"class":145},[111,11673,3593],{"class":2422},[111,11675,3596],{"class":145},[111,11677,3593],{"class":2422},[111,11679,2434],{"class":145},[111,11681,11682,11684,11686,11688,11690],{"class":113,"line":5316},[111,11683,2640],{"class":145},[111,11685,3746],{"class":2422},[111,11687,3749],{"class":145},[111,11689,3746],{"class":2422},[111,11691,2434],{"class":145},[111,11693,11694,11696,11698],{"class":113,"line":5329},[111,11695,2700],{"class":145},[111,11697,2442],{"class":2422},[111,11699,2434],{"class":145},[111,11701,11702,11704,11706,11708,11710],{"class":113,"line":5338},[111,11703,2466],{"class":145},[111,11705,3278],{"class":2422},[111,11707,3749],{"class":145},[111,11709,3278],{"class":2422},[111,11711,2434],{"class":145},[111,11713,11714,11716,11718,11720,11722],{"class":113,"line":5351},[111,11715,2466],{"class":145},[111,11717,3783],{"class":2422},[111,11719,3749],{"class":145},[111,11721,3783],{"class":2422},[111,11723,2434],{"class":145},[111,11725,11726,11728,11730],{"class":113,"line":5364},[111,11727,2537],{"class":145},[111,11729,2780],{"class":2422},[111,11731,2434],{"class":145},[111,11733,11734,11736,11738,11740,11742,11744],{"class":113,"line":5373},[111,11735,2456],{"class":145},[111,11737,2780],{"class":2422},[111,11739,2426],{"class":131},[111,11741,1733],{"class":145},[111,11743,5384],{"class":135},[111,11745,2434],{"class":145},[111,11747,11748,11750,11752,11755,11757],{"class":113,"line":5389},[111,11749,2466],{"class":145},[111,11751,3593],{"class":2422},[111,11753,11754],{"class":145},">-0.000154 2.52488 0.500821 -0.018068 -0 -0.003156\u003C/",[111,11756,3593],{"class":2422},[111,11758,2434],{"class":145},[111,11760,11761,11763,11765,11767,11769,11771],{"class":113,"line":5403},[111,11762,2466],{"class":145},[111,11764,2442],{"class":2422},[111,11766,2426],{"class":131},[111,11768,1733],{"class":145},[111,11770,3842],{"class":135},[111,11772,2434],{"class":145},[111,11774,11775,11777,11779],{"class":113,"line":5418},[111,11776,2640],{"class":145},[111,11778,2459],{"class":2422},[111,11780,2434],{"class":145},[111,11782,11783,11785,11787],{"class":113,"line":5427},[111,11784,2836],{"class":145},[111,11786,2487],{"class":2422},[111,11788,2434],{"class":145},[111,11790,11791,11793,11795,11797,11799],{"class":113,"line":5436},[111,11792,3329],{"class":145},[111,11794,2839],{"class":2422},[111,11796,3872],{"class":145},[111,11798,2839],{"class":2422},[111,11800,2434],{"class":145},[111,11802,11803,11805,11807,11809,11811],{"class":113,"line":5449},[111,11804,3329],{"class":145},[111,11806,3660],{"class":2422},[111,11808,3663],{"class":145},[111,11810,3660],{"class":2422},[111,11812,2434],{"class":145},[111,11814,11815,11817,11819,11821,11823],{"class":113,"line":5462},[111,11816,3329],{"class":145},[111,11818,3674],{"class":2422},[111,11820,3663],{"class":145},[111,11822,3674],{"class":2422},[111,11824,2434],{"class":145},[111,11826,11827,11829,11831,11833,11835],{"class":113,"line":5475},[111,11828,3329],{"class":145},[111,11830,2852],{"class":2422},[111,11832,3872],{"class":145},[111,11834,2852],{"class":2422},[111,11836,2434],{"class":145},[111,11838,11839,11841,11843,11845,11847],{"class":113,"line":5488},[111,11840,3329],{"class":145},[111,11842,3701],{"class":2422},[111,11844,3663],{"class":145},[111,11846,3701],{"class":2422},[111,11848,2434],{"class":145},[111,11850,11851,11853,11855,11857,11859],{"class":113,"line":5501},[111,11852,3329],{"class":145},[111,11854,2865],{"class":2422},[111,11856,3872],{"class":145},[111,11858,2865],{"class":2422},[111,11860,2434],{"class":145},[111,11862,11863,11865,11867],{"class":113,"line":5514},[111,11864,3377],{"class":145},[111,11866,2487],{"class":2422},[111,11868,2434],{"class":145},[111,11870,11871,11873,11875,11877,11879],{"class":113,"line":5523},[111,11872,2836],{"class":145},[111,11874,2469],{"class":2422},[111,11876,3629],{"class":145},[111,11878,2469],{"class":2422},[111,11880,2434],{"class":145},[111,11882,11883,11885,11887,11889,11891],{"class":113,"line":5536},[111,11884,2836],{"class":145},[111,11886,3593],{"class":2422},[111,11888,3596],{"class":145},[111,11890,3593],{"class":2422},[111,11892,2434],{"class":145},[111,11894,11895,11897,11899],{"class":113,"line":5549},[111,11896,2876],{"class":145},[111,11898,2459],{"class":2422},[111,11900,2434],{"class":145},[111,11902,11903,11905,11907,11909,11911,11913],{"class":113,"line":5558},[111,11904,2640],{"class":145},[111,11906,3306],{"class":2422},[111,11908,2426],{"class":131},[111,11910,1733],{"class":145},[111,11912,3999],{"class":135},[111,11914,2434],{"class":145},[111,11916,11917,11919,11921],{"class":113,"line":5573},[111,11918,2836],{"class":145},[111,11920,3322],{"class":2422},[111,11922,2434],{"class":145},[111,11924,11925,11927,11929],{"class":113,"line":5582},[111,11926,3329],{"class":145},[111,11928,4018],{"class":2422},[111,11930,2434],{"class":145},[111,11932,11933,11935,11937,11939,11941],{"class":113,"line":5591},[111,11934,3339],{"class":145},[111,11936,3356],{"class":2422},[111,11938,5076],{"class":145},[111,11940,3356],{"class":2422},[111,11942,2434],{"class":145},[111,11944,11945,11947,11949],{"class":113,"line":5604},[111,11946,3368],{"class":145},[111,11948,4018],{"class":2422},[111,11950,2434],{"class":145},[111,11952,11953,11955,11957],{"class":113,"line":5613},[111,11954,3377],{"class":145},[111,11956,3322],{"class":2422},[111,11958,2434],{"class":145},[111,11960,11961,11963,11965],{"class":113,"line":5622},[111,11962,2836],{"class":145},[111,11964,3388],{"class":2422},[111,11966,2434],{"class":145},[111,11968,11969,11971,11973],{"class":113,"line":5631},[111,11970,3329],{"class":145},[111,11972,3397],{"class":2422},[111,11974,2434],{"class":145},[111,11976,11977,11979,11981],{"class":113,"line":5640},[111,11978,3339],{"class":145},[111,11980,3406],{"class":2422},[111,11982,3087],{"class":145},[111,11984,11985,11987,11989],{"class":113,"line":5649},[111,11986,3368],{"class":145},[111,11988,3397],{"class":2422},[111,11990,2434],{"class":145},[111,11992,11993,11995,11997],{"class":113,"line":5658},[111,11994,3329],{"class":145},[111,11996,3423],{"class":2422},[111,11998,3087],{"class":145},[111,12000,12001,12003,12005],{"class":113,"line":5667},[111,12002,3329],{"class":145},[111,12004,3432],{"class":2422},[111,12006,3087],{"class":145},[111,12008,12009,12011,12013],{"class":113,"line":5676},[111,12010,3377],{"class":145},[111,12012,3388],{"class":2422},[111,12014,2434],{"class":145},[111,12016,12017,12019,12021],{"class":113,"line":5685},[111,12018,2876],{"class":145},[111,12020,3306],{"class":2422},[111,12022,2434],{"class":145},[111,12024,12025,12027,12029,12031,12033,12035],{"class":113,"line":5694},[111,12026,2640],{"class":145},[111,12028,3457],{"class":2422},[111,12030,2426],{"class":131},[111,12032,1733],{"class":145},[111,12034,4138],{"class":135},[111,12036,2434],{"class":145},[111,12038,12039,12041,12043],{"class":113,"line":5709},[111,12040,2836],{"class":145},[111,12042,3322],{"class":2422},[111,12044,2434],{"class":145},[111,12046,12047,12049,12051],{"class":113,"line":5718},[111,12048,3329],{"class":145},[111,12050,4018],{"class":2422},[111,12052,2434],{"class":145},[111,12054,12055,12057,12059,12061,12063],{"class":113,"line":5727},[111,12056,3339],{"class":145},[111,12058,3356],{"class":2422},[111,12060,5076],{"class":145},[111,12062,3356],{"class":2422},[111,12064,2434],{"class":145},[111,12066,12067,12069,12071],{"class":113,"line":5740},[111,12068,3368],{"class":145},[111,12070,4018],{"class":2422},[111,12072,2434],{"class":145},[111,12074,12075,12077,12079],{"class":113,"line":5749},[111,12076,3377],{"class":145},[111,12078,3322],{"class":2422},[111,12080,2434],{"class":145},[111,12082,12083,12085,12087],{"class":113,"line":5758},[111,12084,2836],{"class":145},[111,12086,3529],{"class":2422},[111,12088,2434],{"class":145},[111,12090,12091,12093,12095,12097,12099],{"class":113,"line":5767},[111,12092,3329],{"class":145},[111,12094,3213],{"class":2422},[111,12096,4208],{"class":145},[111,12098,3213],{"class":2422},[111,12100,2434],{"class":145},[111,12102,12103,12105,12107,12109,12111],{"class":113,"line":5780},[111,12104,3329],{"class":145},[111,12106,3551],{"class":2422},[111,12108,3230],{"class":145},[111,12110,3551],{"class":2422},[111,12112,2434],{"class":145},[111,12114,12115,12117,12119,12121,12123],{"class":113,"line":5793},[111,12116,3329],{"class":145},[111,12118,3564],{"class":2422},[111,12120,4235],{"class":145},[111,12122,3564],{"class":2422},[111,12124,2434],{"class":145},[111,12126,12127,12129,12131],{"class":113,"line":5806},[111,12128,3377],{"class":145},[111,12130,3529],{"class":2422},[111,12132,2434],{"class":145},[111,12134,12135,12137,12139],{"class":113,"line":5815},[111,12136,2876],{"class":145},[111,12138,3457],{"class":2422},[111,12140,2434],{"class":145},[111,12142,12143,12145,12147,12149,12151],{"class":113,"line":5824},[111,12144,2640],{"class":145},[111,12146,3593],{"class":2422},[111,12148,3596],{"class":145},[111,12150,3593],{"class":2422},[111,12152,2434],{"class":145},[111,12154,12155,12157,12159,12161,12163],{"class":113,"line":5837},[111,12156,2640],{"class":145},[111,12158,3746],{"class":2422},[111,12160,3749],{"class":145},[111,12162,3746],{"class":2422},[111,12164,2434],{"class":145},[111,12166,12167,12169,12171],{"class":113,"line":5850},[111,12168,2700],{"class":145},[111,12170,2442],{"class":2422},[111,12172,2434],{"class":145},[111,12174,12175,12177,12179,12181,12183],{"class":113,"line":5859},[111,12176,2466],{"class":145},[111,12178,3278],{"class":2422},[111,12180,3749],{"class":145},[111,12182,3278],{"class":2422},[111,12184,2434],{"class":145},[111,12186,12187,12189,12191,12193,12195],{"class":113,"line":5872},[111,12188,2466],{"class":145},[111,12190,3783],{"class":2422},[111,12192,3749],{"class":145},[111,12194,3783],{"class":2422},[111,12196,2434],{"class":145},[111,12198,12199,12201,12203],{"class":113,"line":5885},[111,12200,2537],{"class":145},[111,12202,2780],{"class":2422},[111,12204,2434],{"class":145},[111,12206,12207,12209,12212],{"class":113,"line":5894},[111,12208,2456],{"class":145},[111,12210,12211],{"class":2422},"include",[111,12213,2434],{"class":145},[111,12215,12216,12218,12221,12224,12226],{"class":113,"line":5918},[111,12217,2466],{"class":145},[111,12219,12220],{"class":2422},"uri",[111,12222,12223],{"class":145},">file://Bed\u003C/",[111,12225,12220],{"class":2422},[111,12227,2434],{"class":145},[111,12229,12230,12232,12234,12237,12239],{"class":113,"line":5932},[111,12231,2466],{"class":145},[111,12233,6179],{"class":2422},[111,12235,12236],{"class":145},">Bed\u003C/",[111,12238,6179],{"class":2422},[111,12240,2434],{"class":145},[111,12242,12243,12245,12247,12250,12252],{"class":113,"line":5946},[111,12244,2466],{"class":145},[111,12246,3593],{"class":2422},[111,12248,12249],{"class":145},">2.82155 1.18752 0 0 -0 0\u003C/",[111,12251,3593],{"class":2422},[111,12253,2434],{"class":145},[111,12255,12256,12258,12260],{"class":113,"line":5960},[111,12257,2537],{"class":145},[111,12259,12211],{"class":2422},[111,12261,2434],{"class":145},[111,12263,12264,12266,12268],{"class":113,"line":5975},[111,12265,2456],{"class":145},[111,12267,12211],{"class":2422},[111,12269,2434],{"class":145},[111,12271,12272,12274,12276,12279,12281],{"class":113,"line":5988},[111,12273,2466],{"class":145},[111,12275,12220],{"class":2422},[111,12277,12278],{"class":145},">file://Office Desk\u003C/",[111,12280,12220],{"class":2422},[111,12282,2434],{"class":145},[111,12284,12285,12287,12289,12292,12294],{"class":113,"line":6002},[111,12286,2466],{"class":145},[111,12288,6179],{"class":2422},[111,12290,12291],{"class":145},">Desk\u003C/",[111,12293,6179],{"class":2422},[111,12295,2434],{"class":145},[111,12297,12298,12300,12302,12305,12307],{"class":113,"line":6012},[111,12299,2466],{"class":145},[111,12301,3593],{"class":2422},[111,12303,12304],{"class":145},">2.78306 -1.97796 0 0 -0 1.57\u003C/",[111,12306,3593],{"class":2422},[111,12308,2434],{"class":145},[111,12310,12311,12313,12315],{"class":113,"line":6026},[111,12312,2537],{"class":145},[111,12314,12211],{"class":2422},[111,12316,2434],{"class":145},[111,12318,12319,12321,12323],{"class":113,"line":6041},[111,12320,2456],{"class":145},[111,12322,12211],{"class":2422},[111,12324,2434],{"class":145},[111,12326,12327,12329,12331,12334,12336],{"class":113,"line":6056},[111,12328,2466],{"class":145},[111,12330,12220],{"class":2422},[111,12332,12333],{"class":145},">file://Bathtub\u003C/",[111,12335,12220],{"class":2422},[111,12337,2434],{"class":145},[111,12339,12340,12342,12344,12347,12349],{"class":113,"line":6070},[111,12341,2466],{"class":145},[111,12343,6179],{"class":2422},[111,12345,12346],{"class":145},">Bathtub\u003C/",[111,12348,6179],{"class":2422},[111,12350,2434],{"class":145},[111,12352,12353,12355,12357,12360,12362],{"class":113,"line":6079},[111,12354,2466],{"class":145},[111,12356,3593],{"class":2422},[111,12358,12359],{"class":145},">-3.87509 1.82783 0 0 -0 0\u003C/",[111,12361,3593],{"class":2422},[111,12363,2434],{"class":145},[111,12365,12366,12368,12370],{"class":113,"line":6089},[111,12367,2537],{"class":145},[111,12369,12211],{"class":2422},[111,12371,2434],{"class":145},[111,12373,12374,12376,12378],{"class":113,"line":6103},[111,12375,2456],{"class":145},[111,12377,12211],{"class":2422},[111,12379,2434],{"class":145},[111,12381,12382,12384,12386,12389,12391],{"class":113,"line":6117},[111,12383,2466],{"class":145},[111,12385,12220],{"class":2422},[111,12387,12388],{"class":145},">file://Vanity\u003C/",[111,12390,12220],{"class":2422},[111,12392,2434],{"class":145},[111,12394,12395,12397,12399,12402,12404],{"class":113,"line":6131},[111,12396,2466],{"class":145},[111,12398,6179],{"class":2422},[111,12400,12401],{"class":145},">Vanity\u003C/",[111,12403,6179],{"class":2422},[111,12405,2434],{"class":145},[111,12407,12408,12410,12412,12415,12417],{"class":113,"line":6140},[111,12409,2466],{"class":145},[111,12411,3593],{"class":2422},[111,12413,12414],{"class":145},">-2.5974 1.85613 -0.010992 0.021648 0 -1.57\u003C/",[111,12416,3593],{"class":2422},[111,12418,2434],{"class":145},[111,12420,12421,12423,12425],{"class":113,"line":6149},[111,12422,2537],{"class":145},[111,12424,12211],{"class":2422},[111,12426,2434],{"class":145},[111,12428,12429,12431,12433],{"class":113,"line":6158},[111,12430,2456],{"class":145},[111,12432,12211],{"class":2422},[111,12434,2434],{"class":145},[111,12436,12438,12440,12442,12444,12446],{"class":113,"line":12437},278,[111,12439,2466],{"class":145},[111,12441,12220],{"class":2422},[111,12443,12388],{"class":145},[111,12445,12220],{"class":2422},[111,12447,2434],{"class":145},[111,12449,12451,12453,12455,12458,12460],{"class":113,"line":12450},279,[111,12452,2466],{"class":145},[111,12454,6179],{"class":2422},[111,12456,12457],{"class":145},">Vanity_1\u003C/",[111,12459,6179],{"class":2422},[111,12461,2434],{"class":145},[111,12463,12465,12467,12469,12472,12474],{"class":113,"line":12464},280,[111,12466,2466],{"class":145},[111,12468,3593],{"class":2422},[111,12470,12471],{"class":145},">-2.5974 0.634325 -0.010992 0.021648 0 -1.57\u003C/",[111,12473,3593],{"class":2422},[111,12475,2434],{"class":145},[111,12477,12479,12481,12483],{"class":113,"line":12478},281,[111,12480,2537],{"class":145},[111,12482,12211],{"class":2422},[111,12484,2434],{"class":145},[111,12486,12488,12490,12492],{"class":113,"line":12487},282,[111,12489,2456],{"class":145},[111,12491,12211],{"class":2422},[111,12493,2434],{"class":145},[111,12495,12497,12499,12501,12504,12506],{"class":113,"line":12496},283,[111,12498,2466],{"class":145},[111,12500,12220],{"class":2422},[111,12502,12503],{"class":145},">file://Dining Table\u003C/",[111,12505,12220],{"class":2422},[111,12507,2434],{"class":145},[111,12509,12511,12513,12515,12518,12520],{"class":113,"line":12510},284,[111,12512,2466],{"class":145},[111,12514,6179],{"class":2422},[111,12516,12517],{"class":145},">DiningTable\u003C/",[111,12519,6179],{"class":2422},[111,12521,2434],{"class":145},[111,12523,12525,12527,12529,12532,12534],{"class":113,"line":12524},285,[111,12526,2466],{"class":145},[111,12528,3593],{"class":2422},[111,12530,12531],{"class":145},">-0.374337 1.33602 0 0 0 -1.57\u003C/",[111,12533,3593],{"class":2422},[111,12535,2434],{"class":145},[111,12537,12539,12541,12543],{"class":113,"line":12538},286,[111,12540,2537],{"class":145},[111,12542,12211],{"class":2422},[111,12544,2434],{"class":145},[111,12546,12548,12550,12552],{"class":113,"line":12547},287,[111,12549,2456],{"class":145},[111,12551,12211],{"class":2422},[111,12553,2434],{"class":145},[111,12555,12557,12559,12561,12564,12566],{"class":113,"line":12556},288,[111,12558,2466],{"class":145},[111,12560,12220],{"class":2422},[111,12562,12563],{"class":145},">file://Chair\u003C/",[111,12565,12220],{"class":2422},[111,12567,2434],{"class":145},[111,12569,12571,12573,12575,12578,12580],{"class":113,"line":12570},289,[111,12572,2466],{"class":145},[111,12574,6179],{"class":2422},[111,12576,12577],{"class":145},">Chair\u003C/",[111,12579,6179],{"class":2422},[111,12581,2434],{"class":145},[111,12583,12585,12587,12589,12592,12594],{"class":113,"line":12584},290,[111,12586,2466],{"class":145},[111,12588,3593],{"class":2422},[111,12590,12591],{"class":145},">2.79762 -1.26474 -0 -0 0 -2.3062\u003C/",[111,12593,3593],{"class":2422},[111,12595,2434],{"class":145},[111,12597,12599,12601,12603],{"class":113,"line":12598},291,[111,12600,2537],{"class":145},[111,12602,12211],{"class":2422},[111,12604,2434],{"class":145},[111,12606,12608,12610,12612],{"class":113,"line":12607},292,[111,12609,2456],{"class":145},[111,12611,12211],{"class":2422},[111,12613,2434],{"class":145},[111,12615,12617,12619,12621,12624,12626],{"class":113,"line":12616},293,[111,12618,2466],{"class":145},[111,12620,12220],{"class":2422},[111,12622,12623],{"class":145},">file://Sofa\u003C/",[111,12625,12220],{"class":2422},[111,12627,2434],{"class":145},[111,12629,12631,12633,12635,12638,12640],{"class":113,"line":12630},294,[111,12632,2466],{"class":145},[111,12634,6179],{"class":2422},[111,12636,12637],{"class":145},">Sofa\u003C/",[111,12639,6179],{"class":2422},[111,12641,2434],{"class":145},[111,12643,12645,12647,12649,12652,12654],{"class":113,"line":12644},295,[111,12646,2466],{"class":145},[111,12648,3593],{"class":2422},[111,12650,12651],{"class":145},">-0.546136 -1.92328 0.000119 -0 0 1.57\u003C/",[111,12653,3593],{"class":2422},[111,12655,2434],{"class":145},[111,12657,12659,12661,12663],{"class":113,"line":12658},296,[111,12660,2537],{"class":145},[111,12662,12211],{"class":2422},[111,12664,2434],{"class":145},[111,12666,12668,12670,12672,12674,12676,12678,12680,12682,12684],{"class":113,"line":12667},297,[111,12669,2456],{"class":145},[111,12671,5899],{"class":2422},[111,12673,2426],{"class":131},[111,12675,1733],{"class":145},[111,12677,5906],{"class":135},[111,12679,3005],{"class":131},[111,12681,1733],{"class":145},[111,12683,5913],{"class":135},[111,12685,2434],{"class":145},[111,12687,12689,12691,12693,12695,12697],{"class":113,"line":12688},298,[111,12690,2466],{"class":145},[111,12692,3593],{"class":2422},[111,12694,5925],{"class":145},[111,12696,3593],{"class":2422},[111,12698,2434],{"class":145},[111,12700,12702,12704,12706,12708,12710],{"class":113,"line":12701},299,[111,12703,2466],{"class":145},[111,12705,5937],{"class":2422},[111,12707,3244],{"class":145},[111,12709,5937],{"class":2422},[111,12711,2434],{"class":145},[111,12713,12715,12717,12719,12721,12723],{"class":113,"line":12714},300,[111,12716,2466],{"class":145},[111,12718,5951],{"class":2422},[111,12720,3036],{"class":145},[111,12722,5951],{"class":2422},[111,12724,2434],{"class":145},[111,12726,12728,12730,12732,12734,12736],{"class":113,"line":12727},301,[111,12729,2466],{"class":145},[111,12731,5965],{"class":2422},[111,12733,5968],{"class":145},[111,12735,5965],{"class":2422},[111,12737,2434],{"class":145},[111,12739,12741,12743,12745,12747,12749],{"class":113,"line":12740},302,[111,12742,2466],{"class":145},[111,12744,3551],{"class":2422},[111,12746,3540],{"class":145},[111,12748,3551],{"class":2422},[111,12750,2434],{"class":145},[111,12752,12754,12756,12758,12760,12762],{"class":113,"line":12753},303,[111,12755,2466],{"class":145},[111,12757,3564],{"class":2422},[111,12759,5995],{"class":145},[111,12761,3564],{"class":2422},[111,12763,2434],{"class":145},[111,12765,12767,12769,12771],{"class":113,"line":12766},304,[111,12768,2466],{"class":145},[111,12770,6007],{"class":2422},[111,12772,2434],{"class":145},[111,12774,12776,12778,12780,12782,12784],{"class":113,"line":12775},305,[111,12777,2640],{"class":145},[111,12779,6017],{"class":2422},[111,12781,3050],{"class":145},[111,12783,6017],{"class":2422},[111,12785,2434],{"class":145},[111,12787,12789,12791,12793,12795,12797],{"class":113,"line":12788},306,[111,12790,2640],{"class":145},[111,12792,6031],{"class":2422},[111,12794,6034],{"class":145},[111,12796,6031],{"class":2422},[111,12798,2434],{"class":145},[111,12800,12802,12804,12806,12808,12810],{"class":113,"line":12801},307,[111,12803,2640],{"class":145},[111,12805,6046],{"class":2422},[111,12807,6049],{"class":145},[111,12809,6046],{"class":2422},[111,12811,2434],{"class":145},[111,12813,12815,12817,12819,12821,12823],{"class":113,"line":12814},308,[111,12816,2640],{"class":145},[111,12818,6061],{"class":2422},[111,12820,3022],{"class":145},[111,12822,6061],{"class":2422},[111,12824,2434],{"class":145},[111,12826,12828,12830,12832],{"class":113,"line":12827},309,[111,12829,2700],{"class":145},[111,12831,6007],{"class":2422},[111,12833,2434],{"class":145},[111,12835,12837,12839,12841],{"class":113,"line":12836},310,[111,12838,2466],{"class":145},[111,12840,6084],{"class":2422},[111,12842,2434],{"class":145},[111,12844,12846,12848,12850,12852,12854],{"class":113,"line":12845},311,[111,12847,2640],{"class":145},[111,12849,6094],{"class":2422},[111,12851,3663],{"class":145},[111,12853,6094],{"class":2422},[111,12855,2434],{"class":145},[111,12857,12859,12861,12863,12865,12867],{"class":113,"line":12858},312,[111,12860,2640],{"class":145},[111,12862,6108],{"class":2422},[111,12864,3663],{"class":145},[111,12866,6108],{"class":2422},[111,12868,2434],{"class":145},[111,12870,12872,12874,12876,12878,12880],{"class":113,"line":12871},313,[111,12873,2640],{"class":145},[111,12875,6122],{"class":2422},[111,12877,3663],{"class":145},[111,12879,6122],{"class":2422},[111,12881,2434],{"class":145},[111,12883,12885,12887,12889],{"class":113,"line":12884},314,[111,12886,2700],{"class":145},[111,12888,6084],{"class":2422},[111,12890,2434],{"class":145},[111,12892,12894,12896,12898],{"class":113,"line":12893},315,[111,12895,2537],{"class":145},[111,12897,5899],{"class":2422},[111,12899,2434],{"class":145},[111,12901,12903,12905,12907],{"class":113,"line":12902},316,[111,12904,2546],{"class":145},[111,12906,1490],{"class":2422},[111,12908,2434],{"class":145},[111,12910,12912,12914,12916],{"class":113,"line":12911},317,[111,12913,2555],{"class":145},[111,12915,2763],{"class":2422},[111,12917,2434],{"class":145},[15,12919,12920],{},[50,12921,2211],{},[15,12923,2214],{},[101,12925,12926],{"className":103,"code":2217,"language":105,"meta":106,"style":106},[108,12927,12928],{"__ignoreMap":106},[111,12929,12930,12932,12934,12936],{"class":113,"line":114},[111,12931,2224],{"class":131},[111,12933,2227],{"class":135},[111,12935,2230],{"class":575},[111,12937,1442],{"class":135},[15,12939,12940],{},[50,12941,2242],{},[15,12943,2245],{},[101,12945,12946],{"className":103,"code":9372,"language":105,"meta":106,"style":106},[108,12947,12948,12954],{"__ignoreMap":106},[111,12949,12950,12952],{"class":113,"line":114},[111,12951,2255],{"class":575},[111,12953,2258],{"class":135},[111,12955,12956,12958,12960,12962],{"class":113,"line":121},[111,12957,262],{"class":131},[111,12959,265],{"class":135},[111,12961,2267],{"class":135},[111,12963,9391],{"class":135},[15,12965,9394],{},[15,12967,12968],{},[199,12969],{"alt":106,"src":12970},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1732.webp",[27,12972,12974],{"id":12973},"igng-adds-a-robot","IgnG adds a robot",[15,12976,12977],{},"In Ignition Gazebo, you can directly create robot models, or load robot models 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 path).",[15,12979,12980],{},"I didn't use Teacher Zhao Xuzuo's mycar_description; instead, I used my own car model. All the subsequent source code is in the GitHub repository below. Feel free to clone it if needed.",[15,12982,12983],{},[55,12984,12987],{"href":12985,"rel":12986},"https://github.com/tungchiahui/ROS2%5C_WS/tree/main/6.ws%5C_simulations",[59],"https://github.com/tungchiahui/ROS2\\_WS/tree/main/6.ws\\_simulations",[15,12989,12990],{},[50,12991,12992],{},"Prepare Robot Model Function Package",[15,12994,12995,12996,12999,13000,13003,13004,13006,13007,13009,13010,13013,13014,13016,13017,13019,13020,2255],{},"Copy the robot description package ",[108,12997,12998],{},"mycar_description"," to the ",[108,13001,13002],{},"src"," directory of the workspace, create a new ",[108,13005,12998],{}," directory in ",[108,13008,9434],{},", and copy the ",[108,13011,13012],{},"mesh"," directory from the ",[108,13015,12998],{}," package into the ",[108,13018,12998],{}," directory within ",[108,13021,9434],{},[15,13023,13024],{},[50,13025,13026],{},"Create a launch file under the robot model function package",[15,13028,13029],{},"Create a new launch file mycar_desc_sim.launch.py and enter the following content:",[101,13031,13033],{"className":1583,"code":13032,"language":1585,"meta":106,"style":106},"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\n#示例： ros2 launch cpp06_urdf display.launch.py model:=`ros2 pkg prefix --share cpp06_urdf`/urdf/urdf/demo01_helloworld.urdf\ndef generate_launch_description():\n\n    MYCAR_MODEL = os.environ['MYCAR_MODEL']\n\n    mycar_description = get_package_share_directory(\"mycar_description\")\n    default_model_path = os.path.join(mycar_description,\"urdf\",MYCAR_MODEL + \".urdf\")\n    model = DeclareLaunchArgument(name=\"model\", default_value=default_model_path)\n\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",[108,13034,13035,13045,13055,13061,13071,13083,13094,13104,13108,13113,13121,13125,13142,13146,13160,13185,13211,13215,13220,13224,13229,13250,13259,13270,13280,13294,13298,13302,13308,13313,13318],{"__ignoreMap":106},[111,13036,13037,13039,13041,13043],{"class":113,"line":114},[111,13038,1604],{"class":770},[111,13040,1623],{"class":145},[111,13042,1592],{"class":770},[111,13044,1628],{"class":145},[111,13046,13047,13049,13051,13053],{"class":113,"line":121},[111,13048,1604],{"class":770},[111,13050,1698],{"class":145},[111,13052,1592],{"class":770},[111,13054,1703],{"class":145},[111,13056,13057,13059],{"class":113,"line":128},[111,13058,1592],{"class":770},[111,13060,1595],{"class":145},[111,13062,13063,13065,13067,13069],{"class":113,"line":152},[111,13064,1604],{"class":770},[111,13066,1607],{"class":145},[111,13068,1592],{"class":770},[111,13070,1612],{"class":145},[111,13072,13073,13075,13078,13080],{"class":113,"line":157},[111,13074,1604],{"class":770},[111,13076,13077],{"class":145}," launch_ros.parameter_descriptions ",[111,13079,1592],{"class":770},[111,13081,13082],{"class":145}," ParameterValue\n",[111,13084,13085,13087,13089,13091],{"class":113,"line":163},[111,13086,1604],{"class":770},[111,13088,1682],{"class":145},[111,13090,1592],{"class":770},[111,13092,13093],{"class":145}," Command,LaunchConfiguration\n",[111,13095,13096,13098,13100,13102],{"class":113,"line":175},[111,13097,1604],{"class":770},[111,13099,1635],{"class":145},[111,13101,1592],{"class":770},[111,13103,1640],{"class":145},[111,13105,13106],{"class":113,"line":180},[111,13107,118],{"emptyLinePlaceholder":117},[111,13109,13110],{"class":113,"line":186},[111,13111,13112],{"class":124},"#示例： ros2 launch cpp06_urdf display.launch.py model:=`ros2 pkg prefix --share cpp06_urdf`/urdf/urdf/demo01_helloworld.urdf\n",[111,13114,13115,13117,13119],{"class":113,"line":433},[111,13116,1713],{"class":770},[111,13118,1716],{"class":131},[111,13120,1719],{"class":145},[111,13122,13123],{"class":113,"line":439},[111,13124,118],{"emptyLinePlaceholder":117},[111,13126,13127,13130,13133,13136,13139],{"class":113,"line":445},[111,13128,13129],{"class":575},"    MYCAR_MODEL",[111,13131,13132],{"class":770}," =",[111,13134,13135],{"class":145}," os.environ[",[111,13137,13138],{"class":135},"'MYCAR_MODEL'",[111,13140,13141],{"class":145},"]\n",[111,13143,13144],{"class":113,"line":451},[111,13145,118],{"emptyLinePlaceholder":117},[111,13147,13148,13151,13153,13155,13158],{"class":113,"line":1710},[111,13149,13150],{"class":145},"    mycar_description ",[111,13152,1733],{"class":770},[111,13154,1736],{"class":145},[111,13156,13157],{"class":135},"\"mycar_description\"",[111,13159,1476],{"class":145},[111,13161,13162,13165,13167,13170,13173,13175,13178,13180,13183],{"class":113,"line":1722},[111,13163,13164],{"class":145},"    default_model_path ",[111,13166,1733],{"class":770},[111,13168,13169],{"class":145}," os.path.join(mycar_description,",[111,13171,13172],{"class":135},"\"urdf\"",[111,13174,1773],{"class":145},[111,13176,13177],{"class":575},"MYCAR_MODEL",[111,13179,1845],{"class":770},[111,13181,13182],{"class":135}," \".urdf\"",[111,13184,1476],{"class":145},[111,13186,13187,13190,13192,13195,13197,13199,13202,13204,13206,13208],{"class":113,"line":1727},[111,13188,13189],{"class":145},"    model ",[111,13191,1733],{"class":770},[111,13193,13194],{"class":145}," DeclareLaunchArgument(",[111,13196,6179],{"class":1824},[111,13198,1733],{"class":770},[111,13200,13201],{"class":135},"\"model\"",[111,13203,1812],{"class":145},[111,13205,2160],{"class":1824},[111,13207,1733],{"class":770},[111,13209,13210],{"class":145},"default_model_path)\n",[111,13212,13213],{"class":113,"line":1744},[111,13214,118],{"emptyLinePlaceholder":117},[111,13216,13217],{"class":113,"line":1759},[111,13218,13219],{"class":124},"    # 加载机器人模型\n",[111,13221,13222],{"class":113,"line":1781},[111,13223,118],{"emptyLinePlaceholder":117},[111,13225,13226],{"class":113,"line":1786},[111,13227,13228],{"class":124},"    # 启动 robot_state_publisher 节点并以参数方式加载 urdf 文件\n",[111,13230,13231,13234,13236,13239,13242,13245,13247],{"class":113,"line":1797},[111,13232,13233],{"class":145},"    robot_description ",[111,13235,1733],{"class":770},[111,13237,13238],{"class":145}," ParameterValue(Command([",[111,13240,13241],{"class":135},"\"xacro \"",[111,13243,13244],{"class":145},",LaunchConfiguration(",[111,13246,13201],{"class":135},[111,13248,13249],{"class":145},")]))\n",[111,13251,13252,13255,13257],{"class":113,"line":1803},[111,13253,13254],{"class":145},"    robot_state_publisher ",[111,13256,1733],{"class":770},[111,13258,1882],{"class":145},[111,13260,13261,13263,13265,13268],{"class":113,"line":1821},[111,13262,1983],{"class":1824},[111,13264,1733],{"class":770},[111,13266,13267],{"class":135},"\"robot_state_publisher\"",[111,13269,1896],{"class":145},[111,13271,13272,13274,13276,13278],{"class":113,"line":1833},[111,13273,1996],{"class":1824},[111,13275,1733],{"class":770},[111,13277,13267],{"class":135},[111,13279,1896],{"class":145},[111,13281,13282,13284,13286,13288,13291],{"class":113,"line":1851},[111,13283,2046],{"class":1824},[111,13285,1733],{"class":770},[111,13287,2051],{"class":145},[111,13289,13290],{"class":135},"\"robot_description\"",[111,13292,13293],{"class":145},": robot_description}]\n",[111,13295,13296],{"class":113,"line":1857},[111,13297,1860],{"class":145},[111,13299,13300],{"class":113,"line":1863},[111,13301,118],{"emptyLinePlaceholder":117},[111,13303,13304,13306],{"class":113,"line":1868},[111,13305,2138],{"class":770},[111,13307,2141],{"class":145},[111,13309,13310],{"class":113,"line":1874},[111,13311,13312],{"class":145},"        model,\n",[111,13314,13315],{"class":113,"line":1885},[111,13316,13317],{"class":145},"        robot_state_publisher,\n",[111,13319,13320],{"class":113,"line":1899},[111,13321,2198],{"class":145},[15,13323,13324],{},"Compared to previous versions, this file is missing the joint_state_publisher node, which is responsible for publishing active joint states. This functionality will be implemented later by Ignition.",[15,13326,13327],{},[50,13328,13329],{},"Adding a Robot Model",[15,13331,13332],{},"Modify the gazebo_sim_world.launch.py file to include the robot model publishing file and spawn the robot model in Gazebo. The modified code is as follows:",[101,13334,13336],{"className":1583,"code":13335,"language":1585,"meta":106,"style":106},"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                \"-topic\", \"/robot_description\"],\n            output=\"screen\")\n\n    return LaunchDescription([\n        gz_sim,\n        spawn,\n        mycar_desc,\n    ])\n",[108,13337,13338,13344,13348,13358,13362,13372,13382,13392,13402,13406,13414,13418,13431,13444,13457,13473,13477,13485,13489,13503,13511,13525,13529,13533,13542,13546,13560,13565,13569,13598,13607,13619,13631,13646,13657,13670,13682,13686,13692,13696,13701,13706],{"__ignoreMap":106},[111,13339,13340,13342],{"class":113,"line":114},[111,13341,1592],{"class":770},[111,13343,1595],{"class":145},[111,13345,13346],{"class":113,"line":121},[111,13347,118],{"emptyLinePlaceholder":117},[111,13349,13350,13352,13354,13356],{"class":113,"line":128},[111,13351,1604],{"class":770},[111,13353,1607],{"class":145},[111,13355,1592],{"class":770},[111,13357,1612],{"class":145},[111,13359,13360],{"class":113,"line":152},[111,13361,118],{"emptyLinePlaceholder":117},[111,13363,13364,13366,13368,13370],{"class":113,"line":157},[111,13365,1604],{"class":770},[111,13367,1623],{"class":145},[111,13369,1592],{"class":770},[111,13371,1628],{"class":145},[111,13373,13374,13376,13378,13380],{"class":113,"line":163},[111,13375,1604],{"class":770},[111,13377,1635],{"class":145},[111,13379,1592],{"class":770},[111,13381,1651],{"class":145},[111,13383,13384,13386,13388,13390],{"class":113,"line":175},[111,13385,1604],{"class":770},[111,13387,1670],{"class":145},[111,13389,1592],{"class":770},[111,13391,1675],{"class":145},[111,13393,13394,13396,13398,13400],{"class":113,"line":180},[111,13395,1604],{"class":770},[111,13397,1698],{"class":145},[111,13399,1592],{"class":770},[111,13401,1703],{"class":145},[111,13403,13404],{"class":113,"line":186},[111,13405,118],{"emptyLinePlaceholder":117},[111,13407,13408,13410,13412],{"class":113,"line":433},[111,13409,1713],{"class":770},[111,13411,1716],{"class":131},[111,13413,1719],{"class":145},[111,13415,13416],{"class":113,"line":439},[111,13417,118],{"emptyLinePlaceholder":117},[111,13419,13420,13422,13424,13426,13429],{"class":113,"line":445},[111,13421,1730],{"class":145},[111,13423,1733],{"class":770},[111,13425,1736],{"class":145},[111,13427,13428],{"class":135},"\"demo_gazebo_sim\"",[111,13430,1476],{"class":145},[111,13432,13433,13436,13438,13440,13442],{"class":113,"line":451},[111,13434,13435],{"class":145},"    mycar_desc_pkg ",[111,13437,1733],{"class":770},[111,13439,1736],{"class":145},[111,13441,13157],{"class":135},[111,13443,1476],{"class":145},[111,13445,13446,13448,13450,13452,13455],{"class":113,"line":1710},[111,13447,1747],{"class":145},[111,13449,1733],{"class":770},[111,13451,1736],{"class":145},[111,13453,13454],{"class":135},"\"ros_gz_sim\"",[111,13456,1476],{"class":145},[111,13458,13459,13461,13463,13465,13467,13469,13471],{"class":113,"line":1722},[111,13460,1762],{"class":145},[111,13462,1733],{"class":770},[111,13464,1767],{"class":145},[111,13466,9263],{"class":135},[111,13468,1773],{"class":145},[111,13470,9268],{"class":135},[111,13472,1476],{"class":145},[111,13474,13475],{"class":113,"line":1727},[111,13476,118],{"emptyLinePlaceholder":117},[111,13478,13479,13481,13483],{"class":113,"line":1744},[111,13480,1789],{"class":145},[111,13482,1733],{"class":770},[111,13484,1794],{"class":145},[111,13486,13487],{"class":113,"line":1759},[111,13488,1800],{"class":145},[111,13490,13491,13493,13496,13498,13501],{"class":113,"line":1781},[111,13492,1806],{"class":145},[111,13494,13495],{"class":135},"\"launch\"",[111,13497,1812],{"class":145},[111,13499,13500],{"class":135},"\"gz_sim.launch.py\"",[111,13502,1818],{"class":145},[111,13504,13505,13507,13509],{"class":113,"line":1786},[111,13506,1825],{"class":1824},[111,13508,1733],{"class":770},[111,13510,1830],{"class":145},[111,13512,13513,13516,13518,13521,13523],{"class":113,"line":1797},[111,13514,13515],{"class":135},"            \"gz_args\"",[111,13517,1839],{"class":145},[111,13519,13520],{"class":135},"\"-r \"",[111,13522,1845],{"class":770},[111,13524,1848],{"class":145},[111,13526,13527],{"class":113,"line":1803},[111,13528,1854],{"class":145},[111,13530,13531],{"class":113,"line":1821},[111,13532,1860],{"class":145},[111,13534,13535,13538,13540],{"class":113,"line":1833},[111,13536,13537],{"class":145},"    mycar_desc ",[111,13539,1733],{"class":770},[111,13541,1794],{"class":145},[111,13543,13544],{"class":113,"line":1851},[111,13545,1800],{"class":145},[111,13547,13548,13551,13553,13555,13558],{"class":113,"line":1857},[111,13549,13550],{"class":145},"            os.path.join(mycar_desc_pkg,",[111,13552,13495],{"class":135},[111,13554,1773],{"class":145},[111,13556,13557],{"class":135},"\"mycar_desc_sim.launch.py\"",[111,13559,1476],{"class":145},[111,13561,13562],{"class":113,"line":1863},[111,13563,13564],{"class":145},"        )\n",[111,13566,13567],{"class":113,"line":1868},[111,13568,1860],{"class":145},[111,13570,13571,13574,13576,13579,13582,13584,13586,13588,13591,13593,13596],{"class":113,"line":1874},[111,13572,13573],{"class":145},"    spawn ",[111,13575,1733],{"class":770},[111,13577,13578],{"class":145}," Node(",[111,13580,13581],{"class":1824},"package",[111,13583,1733],{"class":770},[111,13585,13454],{"class":135},[111,13587,1812],{"class":145},[111,13589,13590],{"class":1824},"executable",[111,13592,1733],{"class":770},[111,13594,13595],{"class":135},"\"create\"",[111,13597,1896],{"class":145},[111,13599,13600,13603,13605],{"class":113,"line":1885},[111,13601,13602],{"class":1824},"                arguments",[111,13604,1733],{"class":770},[111,13606,2073],{"class":145},[111,13608,13609,13612,13614,13617],{"class":113,"line":1899},[111,13610,13611],{"class":135},"                \"-name\"",[111,13613,1812],{"class":145},[111,13615,13616],{"class":135},"\"mycar\"",[111,13618,1896],{"class":145},[111,13620,13621,13624,13626,13629],{"class":113,"line":1911},[111,13622,13623],{"class":135},"                \"-x\"",[111,13625,1812],{"class":145},[111,13627,13628],{"class":135},"\"0\"",[111,13630,1896],{"class":145},[111,13632,13633,13636,13638,13641,13643],{"class":113,"line":1938},[111,13634,13635],{"class":135},"                \"-z\"",[111,13637,1812],{"class":145},[111,13639,13640],{"class":135},"\"0.01\"",[111,13642,1812],{"class":145},[111,13644,13645],{"class":124},"#设置为0,可能会陷进地里\n",[111,13647,13648,13651,13653,13655],{"class":113,"line":1954},[111,13649,13650],{"class":135},"                \"-y\"",[111,13652,1812],{"class":145},[111,13654,13628],{"class":135},[111,13656,1896],{"class":145},[111,13658,13659,13662,13664,13667],{"class":113,"line":1959},[111,13660,13661],{"class":135},"                \"-topic\"",[111,13663,1812],{"class":145},[111,13665,13666],{"class":135},"\"/robot_description\"",[111,13668,13669],{"class":145},"],\n",[111,13671,13672,13675,13677,13680],{"class":113,"line":1964},[111,13673,13674],{"class":1824},"            output",[111,13676,1733],{"class":770},[111,13678,13679],{"class":135},"\"screen\"",[111,13681,1476],{"class":145},[111,13683,13684],{"class":113,"line":1970},[111,13685,118],{"emptyLinePlaceholder":117},[111,13687,13688,13690],{"class":113,"line":1980},[111,13689,2138],{"class":770},[111,13691,2141],{"class":145},[111,13693,13694],{"class":113,"line":1993},[111,13695,2147],{"class":145},[111,13697,13698],{"class":113,"line":2006},[111,13699,13700],{"class":145},"        spawn,\n",[111,13702,13703],{"class":113,"line":2021},[111,13704,13705],{"class":145},"        mycar_desc,\n",[111,13707,13708],{"class":113,"line":2029},[111,13709,2198],{"class":145},[15,13711,13712],{},[50,13713,2211],{},[15,13715,2214],{},[101,13717,13719],{"className":103,"code":13718,"language":105,"meta":106,"style":106},"colcon build --packages-select mycar_description demo_gazebo_sim\n",[108,13720,13721],{"__ignoreMap":106},[111,13722,13723,13725,13727,13730,13733],{"class":113,"line":114},[111,13724,2224],{"class":131},[111,13726,2227],{"class":135},[111,13728,13729],{"class":575}," --packages-select",[111,13731,13732],{"class":135}," mycar_description",[111,13734,1442],{"class":135},[15,13736,13737],{},[50,13738,2242],{},[15,13740,13741],{},"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.)",[101,13743,13745],{"className":103,"code":13744,"language":105,"meta":106,"style":106},". install/setup.bash\n\n# MYCAR_MODEL值可以设置为arduino、stm32_2w 或stm32_4w（这个是具体的urdf文件名，在mycar_description包下的）\nexport MYCAR_MODEL=stm32_4w\nros2 launch demo_gazebo_sim gazebo_sim_world.launch.py\n",[108,13746,13747,13753,13757,13762,13774],{"__ignoreMap":106},[111,13748,13749,13751],{"class":113,"line":114},[111,13750,2255],{"class":575},[111,13752,2258],{"class":135},[111,13754,13755],{"class":113,"line":121},[111,13756,118],{"emptyLinePlaceholder":117},[111,13758,13759],{"class":113,"line":128},[111,13760,13761],{"class":124},"# MYCAR_MODEL值可以设置为arduino、stm32_2w 或stm32_4w（这个是具体的urdf文件名，在mycar_description包下的）\n",[111,13763,13764,13766,13769,13771],{"class":113,"line":152},[111,13765,9466],{"class":770},[111,13767,13768],{"class":145}," MYCAR_MODEL",[111,13770,1733],{"class":770},[111,13772,13773],{"class":145},"stm32_4w\n",[111,13775,13776,13778,13780,13782],{"class":113,"line":157},[111,13777,262],{"class":131},[111,13779,265],{"class":135},[111,13781,2267],{"class":135},[111,13783,9391],{"class":135},[15,13785,9394],{},[15,13787,13788],{},[199,13789],{"alt":106,"src":13790},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1733.webp",[27,13792,13794,13795,13798],{"id":13793},"igng-motion-controller-essentially-the-gazebo-tag","   IgnG motion controller (essentially the ",[108,13796,13797],{},"\u003Cgazebo>"," tag)",[15,13800,13801],{},"This section will introduce how to make your robot move.",[15,13803,13804,13805,13807],{},"The principle is to add ",[108,13806,13797],{}," tags to URDF, Xacro, or similar files:",[15,13809,13810],{},[55,13811,13812],{"href":13812,"rel":13813},"http://sdformat.org/tutorials?tut=sdformat_urdf_extensions&cat=specification&",[59],[15,13815,13816],{},[199,13817],{"alt":106,"src":13818},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1734.webp",[15,13820,13821],{},[55,13822,13823],{"href":13823,"rel":13824},"https://gazebosim.org/api/plugin/2/index.html",[59],[15,13826,13827],{},"Install the library:",[15,13829,13830],{},[55,13831,13832],{"href":13832,"rel":13833},"https://gazebosim.org/api/plugin/2/installation.html",[59],[101,13835,13837],{"className":103,"code":13836,"language":105,"meta":106,"style":106},"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",[108,13838,13839,13849,13860,13873,13902,13910],{"__ignoreMap":106},[111,13840,13841,13843,13846],{"class":113,"line":114},[111,13842,132],{"class":131},[111,13844,13845],{"class":135}," apt-get",[111,13847,13848],{"class":135}," update\n",[111,13850,13851,13853,13855,13857],{"class":113,"line":121},[111,13852,132],{"class":131},[111,13854,13845],{"class":135},[111,13856,139],{"class":135},[111,13858,13859],{"class":135}," lsb-release\n",[111,13861,13862,13864,13867,13870],{"class":113,"line":128},[111,13863,132],{"class":131},[111,13865,13866],{"class":135}," sh",[111,13868,13869],{"class":575}," -c",[111,13871,13872],{"class":135}," 'echo \"deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main\" > /etc/apt/sources.list.d/gazebo-stable.list'\n",[111,13874,13875,13878,13881,13884,13887,13890,13893,13896,13899],{"class":113,"line":152},[111,13876,13877],{"class":131},"wget",[111,13879,13880],{"class":135}," http://packages.osrfoundation.org/gazebo.key",[111,13882,13883],{"class":575}," -O",[111,13885,13886],{"class":135}," -",[111,13888,13889],{"class":770}," |",[111,13891,13892],{"class":131}," sudo",[111,13894,13895],{"class":135}," apt-key",[111,13897,13898],{"class":135}," add",[111,13900,13901],{"class":135}," -\n",[111,13903,13904,13906,13908],{"class":113,"line":157},[111,13905,132],{"class":131},[111,13907,13845],{"class":135},[111,13909,13848],{"class":135},[111,13911,13912,13914,13916,13918],{"class":113,"line":163},[111,13913,132],{"class":131},[111,13915,136],{"class":135},[111,13917,139],{"class":135},[111,13919,13920],{"class":135}," libgz-plugin2-dev\n",[15,13922,13923],{},"Using plugins to make the car move, such as two-wheel differential plugins, four-wheel Mecanum wheel plugins, and so on.",[15,13925,13926],{},"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:",[928,13928,13929,13939],{},[931,13930,13931],{},[934,13932,13933,13936],{},[937,13934,13935],{"align":939},"Configuration item",[937,13937,13938],{"align":939},"Meaning",[945,13940,13941,13949,13957,13965,13973,13981,13989,13997,14005,14013,14021,14029,14037],{},[934,13942,13943,13946],{},[950,13944,13945],{"align":939},"ros",[950,13947,13948],{"align":939},"ROS-related configuration, including namespaces and topic remapping, among others.",[934,13950,13951,13954],{},[950,13952,13953],{"align":939},"update_rate",[950,13955,13956],{"align":939},"Data update rate",[934,13958,13959,13962],{},[950,13960,13961],{"align":939},"left_joint",[950,13963,13964],{"align":939},"Left wheel joint name",[934,13966,13967,13970],{},[950,13968,13969],{"align":939},"right_joint",[950,13971,13972],{"align":939},"Right wheel joint name",[934,13974,13975,13978],{},[950,13976,13977],{"align":939},"wheel_separation",[950,13979,13980],{"align":939},"Distance between the left and right wheels",[934,13982,13983,13986],{},[950,13984,13985],{"align":939},"wheel_diameter",[950,13987,13988],{"align":939},"The diameter of the wheel",[934,13990,13991,13994],{},[950,13992,13993],{"align":939},"max_wheel_torque",[950,13995,13996],{"align":939},"The wheel's maximum torque",[934,13998,13999,14002],{},[950,14000,14001],{"align":939},"max_wheel_acceleration",[950,14003,14004],{"align":939},"The maximum acceleration of the wheel",[934,14006,14007,14010],{},[950,14008,14009],{"align":939},"publish_odom",[950,14011,14012],{"align":939},"Publish odometry",[934,14014,14015,14018],{},[950,14016,14017],{"align":939},"publish_odom_tf",[950,14019,14020],{"align":939},"Whether to publish the odometry tf switch",[934,14022,14023,14026],{},[950,14024,14025],{"align":939},"publish_wheel_tf",[950,14027,14028],{"align":939},"Switch for publishing wheel tf data",[934,14030,14031,14034],{},[950,14032,14033],{"align":939},"odometry_frame",[950,14035,14036],{"align":939},"The framed ID of the odometer is ultimately reflected in the topic and TF.",[934,14038,14039,14042],{},[950,14040,14041],{"align":939},"robot_base_frame",[950,14043,14044],{"align":939},"The robot's base frame ID",[15,14046,14047],{},[50,14048,14049],{},"Modifying the URDF File",[15,14051,14052,14053,6200,14056,14059,14060,14063],{},"In the ",[108,14054,14055],{},"arduino.urdf",[108,14057,14058],{},"stm32_2w.urdf"," files, add the following code under the ",[108,14061,14062],{},"\u003Crobot>"," root tag:",[101,14065,14067],{"className":2410,"code":14066,"language":2412,"meta":106,"style":106},"\n  \u003Cgazebo>\n      \u003Cplugin filename=\"libignition-gazebo-diff-drive-system.so\"\n        name=\"ignition::gazebo::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=\"ignition-gazebo-joint-state-publisher-system\"\n      name=\"ignition::gazebo::systems::JointStatePublisher\">\n    \u003C/plugin>\n  \u003C/gazebo>\n",[108,14068,14069,14073,14082,14095,14107,14120,14133,14146,14160,14174,14188,14202,14216,14229,14243,14256,14269,14283,14297,14310,14324,14332,14336,14344,14348,14356,14369,14381,14389],{"__ignoreMap":106},[111,14070,14071],{"class":113,"line":114},[111,14072,118],{"emptyLinePlaceholder":117},[111,14074,14075,14077,14080],{"class":113,"line":121},[111,14076,2439],{"class":145},[111,14078,14079],{"class":2422},"gazebo",[111,14081,2434],{"class":145},[111,14083,14084,14086,14088,14090,14092],{"class":113,"line":128},[111,14085,2466],{"class":145},[111,14087,3069],{"class":2422},[111,14089,3079],{"class":131},[111,14091,1733],{"class":145},[111,14093,14094],{"class":135},"\"libignition-gazebo-diff-drive-system.so\"\n",[111,14096,14097,14100,14102,14105],{"class":113,"line":152},[111,14098,14099],{"class":131},"        name",[111,14101,1733],{"class":145},[111,14103,14104],{"class":135},"\"ignition::gazebo::systems::DiffDrive\"",[111,14106,2434],{"class":145},[111,14108,14109,14111,14113,14116,14118],{"class":113,"line":157},[111,14110,2640],{"class":145},[111,14112,13961],{"class":2422},[111,14114,14115],{"class":145},">left_joint\u003C/",[111,14117,13961],{"class":2422},[111,14119,2434],{"class":145},[111,14121,14122,14124,14126,14129,14131],{"class":113,"line":163},[111,14123,2640],{"class":145},[111,14125,13969],{"class":2422},[111,14127,14128],{"class":145},">right_joint\u003C/",[111,14130,13969],{"class":2422},[111,14132,2434],{"class":145},[111,14134,14135,14137,14139,14142,14144],{"class":113,"line":175},[111,14136,2640],{"class":145},[111,14138,13977],{"class":2422},[111,14140,14141],{"class":145},">0.2097\u003C/",[111,14143,13977],{"class":2422},[111,14145,2434],{"class":145},[111,14147,14148,14150,14153,14156,14158],{"class":113,"line":180},[111,14149,2640],{"class":145},[111,14151,14152],{"class":2422},"wheel_radius",[111,14154,14155],{"class":145},">0.03415\u003C/",[111,14157,14152],{"class":2422},[111,14159,2434],{"class":145},[111,14161,14162,14164,14167,14170,14172],{"class":113,"line":186},[111,14163,2640],{"class":145},[111,14165,14166],{"class":2422},"odom_publish_frequency",[111,14168,14169],{"class":145},">10\u003C/",[111,14171,14166],{"class":2422},[111,14173,2434],{"class":145},[111,14175,14176,14178,14181,14184,14186],{"class":113,"line":433},[111,14177,2640],{"class":145},[111,14179,14180],{"class":2422},"frame_id",[111,14182,14183],{"class":145},">odom\u003C/",[111,14185,14180],{"class":2422},[111,14187,2434],{"class":145},[111,14189,14190,14192,14195,14198,14200],{"class":113,"line":439},[111,14191,2640],{"class":145},[111,14193,14194],{"class":2422},"child_frame_id",[111,14196,14197],{"class":145},">base_footprint\u003C/",[111,14199,14194],{"class":2422},[111,14201,2434],{"class":145},[111,14203,14204,14206,14209,14212,14214],{"class":113,"line":445},[111,14205,2640],{"class":145},[111,14207,14208],{"class":2422},"topic",[111,14210,14211],{"class":145},">/cmd_vel\u003C/",[111,14213,14208],{"class":2422},[111,14215,2434],{"class":145},[111,14217,14218,14220,14223,14225,14227],{"class":113,"line":451},[111,14219,2640],{"class":145},[111,14221,14222],{"class":2422},"max_linear_acceleration",[111,14224,14169],{"class":145},[111,14226,14222],{"class":2422},[111,14228,2434],{"class":145},[111,14230,14231,14233,14236,14239,14241],{"class":113,"line":1710},[111,14232,2640],{"class":145},[111,14234,14235],{"class":2422},"min_linear_acceleration",[111,14237,14238],{"class":145},">-10\u003C/",[111,14240,14235],{"class":2422},[111,14242,2434],{"class":145},[111,14244,14245,14247,14250,14252,14254],{"class":113,"line":1722},[111,14246,2640],{"class":145},[111,14248,14249],{"class":2422},"max_angular_acceleration",[111,14251,14169],{"class":145},[111,14253,14249],{"class":2422},[111,14255,2434],{"class":145},[111,14257,14258,14260,14263,14265,14267],{"class":113,"line":1727},[111,14259,2640],{"class":145},[111,14261,14262],{"class":2422},"min_angular_acceleration",[111,14264,14238],{"class":145},[111,14266,14262],{"class":2422},[111,14268,2434],{"class":145},[111,14270,14271,14273,14276,14279,14281],{"class":113,"line":1744},[111,14272,2640],{"class":145},[111,14274,14275],{"class":2422},"max_linear_velocity",[111,14277,14278],{"class":145},">0.5\u003C/",[111,14280,14275],{"class":2422},[111,14282,2434],{"class":145},[111,14284,14285,14287,14290,14293,14295],{"class":113,"line":1759},[111,14286,2640],{"class":145},[111,14288,14289],{"class":2422},"min_linear_velocity",[111,14291,14292],{"class":145},">-0.5\u003C/",[111,14294,14289],{"class":2422},[111,14296,2434],{"class":145},[111,14298,14299,14301,14304,14306,14308],{"class":113,"line":1781},[111,14300,2640],{"class":145},[111,14302,14303],{"class":2422},"max_angular_velocity",[111,14305,3036],{"class":145},[111,14307,14303],{"class":2422},[111,14309,2434],{"class":145},[111,14311,14312,14314,14317,14320,14322],{"class":113,"line":1786},[111,14313,2640],{"class":145},[111,14315,14316],{"class":2422},"min_angular_velocity",[111,14318,14319],{"class":145},">-1\u003C/",[111,14321,14316],{"class":2422},[111,14323,2434],{"class":145},[111,14325,14326,14328,14330],{"class":113,"line":1797},[111,14327,2700],{"class":145},[111,14329,3069],{"class":2422},[111,14331,2434],{"class":145},[111,14333,14334],{"class":113,"line":1803},[111,14335,118],{"emptyLinePlaceholder":117},[111,14337,14338,14340,14342],{"class":113,"line":1821},[111,14339,2546],{"class":145},[111,14341,14079],{"class":2422},[111,14343,2434],{"class":145},[111,14345,14346],{"class":113,"line":1833},[111,14347,118],{"emptyLinePlaceholder":117},[111,14349,14350,14352,14354],{"class":113,"line":1851},[111,14351,2439],{"class":145},[111,14353,14079],{"class":2422},[111,14355,2434],{"class":145},[111,14357,14358,14360,14362,14364,14366],{"class":113,"line":1857},[111,14359,2456],{"class":145},[111,14361,3069],{"class":2422},[111,14363,3079],{"class":131},[111,14365,1733],{"class":145},[111,14367,14368],{"class":135},"\"ignition-gazebo-joint-state-publisher-system\"\n",[111,14370,14371,14374,14376,14379],{"class":113,"line":1863},[111,14372,14373],{"class":131},"      name",[111,14375,1733],{"class":145},[111,14377,14378],{"class":135},"\"ignition::gazebo::systems::JointStatePublisher\"",[111,14380,2434],{"class":145},[111,14382,14383,14385,14387],{"class":113,"line":1868},[111,14384,2537],{"class":145},[111,14386,3069],{"class":2422},[111,14388,2434],{"class":145},[111,14390,14391,14393,14395],{"class":113,"line":1874},[111,14392,2546],{"class":145},[111,14394,14079],{"class":2422},[111,14396,2434],{"class":145},[15,14398,14052,14399,14402,14403,14063],{},[108,14400,14401],{},"stm32_4w.urdf"," file, add the following code under the ",[108,14404,14062],{},[101,14406,14408],{"className":2410,"code":14407,"language":2412,"meta":106,"style":106},"\n\u003Cgazebo>\n    \u003Cplugin\n        filename=\"ignition-gazebo-diff-drive-system\"\n        name=\"ignition::gazebo::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=\"ignition-gazebo-joint-state-publisher-system\"\n      name=\"ignition::gazebo::systems::JointStatePublisher\">\n    \u003C/plugin>\n  \u003C/gazebo>\n",[108,14409,14410,14414,14422,14429,14439,14449,14462,14475,14488,14501,14514,14527,14540,14552,14564,14576,14588,14600,14612,14624,14636,14648,14660,14672,14680,14688,14692,14700,14712,14722,14730],{"__ignoreMap":106},[111,14411,14412],{"class":113,"line":114},[111,14413,118],{"emptyLinePlaceholder":117},[111,14415,14416,14418,14420],{"class":113,"line":121},[111,14417,2419],{"class":145},[111,14419,14079],{"class":2422},[111,14421,2434],{"class":145},[111,14423,14424,14426],{"class":113,"line":128},[111,14425,2456],{"class":145},[111,14427,14428],{"class":2422},"plugin\n",[111,14430,14431,14434,14436],{"class":113,"line":152},[111,14432,14433],{"class":131},"        filename",[111,14435,1733],{"class":145},[111,14437,14438],{"class":135},"\"ignition-gazebo-diff-drive-system\"\n",[111,14440,14441,14443,14445,14447],{"class":113,"line":157},[111,14442,14099],{"class":131},[111,14444,1733],{"class":145},[111,14446,14104],{"class":135},[111,14448,2434],{"class":145},[111,14450,14451,14453,14455,14458,14460],{"class":113,"line":163},[111,14452,2640],{"class":145},[111,14454,13961],{"class":2422},[111,14456,14457],{"class":145},">left_former_joint\u003C/",[111,14459,13961],{"class":2422},[111,14461,2434],{"class":145},[111,14463,14464,14466,14468,14471,14473],{"class":113,"line":175},[111,14465,2640],{"class":145},[111,14467,13961],{"class":2422},[111,14469,14470],{"class":145},">left_rear_joint\u003C/",[111,14472,13961],{"class":2422},[111,14474,2434],{"class":145},[111,14476,14477,14479,14481,14484,14486],{"class":113,"line":180},[111,14478,2640],{"class":145},[111,14480,13969],{"class":2422},[111,14482,14483],{"class":145},">right_former_joint\u003C/",[111,14485,13969],{"class":2422},[111,14487,2434],{"class":145},[111,14489,14490,14492,14494,14497,14499],{"class":113,"line":186},[111,14491,2640],{"class":145},[111,14493,13969],{"class":2422},[111,14495,14496],{"class":145},">right_rear_joint\u003C/",[111,14498,13969],{"class":2422},[111,14500,2434],{"class":145},[111,14502,14503,14505,14507,14510,14512],{"class":113,"line":433},[111,14504,2640],{"class":145},[111,14506,13977],{"class":2422},[111,14508,14509],{"class":145},">0.4\u003C/",[111,14511,13977],{"class":2422},[111,14513,2434],{"class":145},[111,14515,14516,14518,14520,14523,14525],{"class":113,"line":439},[111,14517,2640],{"class":145},[111,14519,14152],{"class":2422},[111,14521,14522],{"class":145},">0.0415\u003C/",[111,14524,14152],{"class":2422},[111,14526,2434],{"class":145},[111,14528,14529,14531,14533,14536,14538],{"class":113,"line":445},[111,14530,2640],{"class":145},[111,14532,14166],{"class":2422},[111,14534,14535],{"class":145},">50\u003C/",[111,14537,14166],{"class":2422},[111,14539,2434],{"class":145},[111,14541,14542,14544,14546,14548,14550],{"class":113,"line":451},[111,14543,2640],{"class":145},[111,14545,14180],{"class":2422},[111,14547,14183],{"class":145},[111,14549,14180],{"class":2422},[111,14551,2434],{"class":145},[111,14553,14554,14556,14558,14560,14562],{"class":113,"line":1710},[111,14555,2640],{"class":145},[111,14557,14194],{"class":2422},[111,14559,14197],{"class":145},[111,14561,14194],{"class":2422},[111,14563,2434],{"class":145},[111,14565,14566,14568,14570,14572,14574],{"class":113,"line":1722},[111,14567,2640],{"class":145},[111,14569,14208],{"class":2422},[111,14571,14211],{"class":145},[111,14573,14208],{"class":2422},[111,14575,2434],{"class":145},[111,14577,14578,14580,14582,14584,14586],{"class":113,"line":1727},[111,14579,2640],{"class":145},[111,14581,14222],{"class":2422},[111,14583,14169],{"class":145},[111,14585,14222],{"class":2422},[111,14587,2434],{"class":145},[111,14589,14590,14592,14594,14596,14598],{"class":113,"line":1744},[111,14591,2640],{"class":145},[111,14593,14235],{"class":2422},[111,14595,14238],{"class":145},[111,14597,14235],{"class":2422},[111,14599,2434],{"class":145},[111,14601,14602,14604,14606,14608,14610],{"class":113,"line":1759},[111,14603,2640],{"class":145},[111,14605,14249],{"class":2422},[111,14607,14169],{"class":145},[111,14609,14249],{"class":2422},[111,14611,2434],{"class":145},[111,14613,14614,14616,14618,14620,14622],{"class":113,"line":1781},[111,14615,2640],{"class":145},[111,14617,14262],{"class":2422},[111,14619,14238],{"class":145},[111,14621,14262],{"class":2422},[111,14623,2434],{"class":145},[111,14625,14626,14628,14630,14632,14634],{"class":113,"line":1786},[111,14627,2640],{"class":145},[111,14629,14275],{"class":2422},[111,14631,14278],{"class":145},[111,14633,14275],{"class":2422},[111,14635,2434],{"class":145},[111,14637,14638,14640,14642,14644,14646],{"class":113,"line":1797},[111,14639,2640],{"class":145},[111,14641,14289],{"class":2422},[111,14643,14292],{"class":145},[111,14645,14289],{"class":2422},[111,14647,2434],{"class":145},[111,14649,14650,14652,14654,14656,14658],{"class":113,"line":1803},[111,14651,2640],{"class":145},[111,14653,14303],{"class":2422},[111,14655,3036],{"class":145},[111,14657,14303],{"class":2422},[111,14659,2434],{"class":145},[111,14661,14662,14664,14666,14668,14670],{"class":113,"line":1821},[111,14663,2640],{"class":145},[111,14665,14316],{"class":2422},[111,14667,14319],{"class":145},[111,14669,14316],{"class":2422},[111,14671,2434],{"class":145},[111,14673,14674,14676,14678],{"class":113,"line":1833},[111,14675,2700],{"class":145},[111,14677,3069],{"class":2422},[111,14679,2434],{"class":145},[111,14681,14682,14684,14686],{"class":113,"line":1851},[111,14683,2546],{"class":145},[111,14685,14079],{"class":2422},[111,14687,2434],{"class":145},[111,14689,14690],{"class":113,"line":1857},[111,14691,118],{"emptyLinePlaceholder":117},[111,14693,14694,14696,14698],{"class":113,"line":1863},[111,14695,2439],{"class":145},[111,14697,14079],{"class":2422},[111,14699,2434],{"class":145},[111,14701,14702,14704,14706,14708,14710],{"class":113,"line":1868},[111,14703,2456],{"class":145},[111,14705,3069],{"class":2422},[111,14707,3079],{"class":131},[111,14709,1733],{"class":145},[111,14711,14368],{"class":135},[111,14713,14714,14716,14718,14720],{"class":113,"line":1874},[111,14715,14373],{"class":131},[111,14717,1733],{"class":145},[111,14719,14378],{"class":135},[111,14721,2434],{"class":145},[111,14723,14724,14726,14728],{"class":113,"line":1885},[111,14725,2537],{"class":145},[111,14727,3069],{"class":2422},[111,14729,2434],{"class":145},[111,14731,14732,14734,14736],{"class":113,"line":1899},[111,14733,2546],{"class":145},[111,14735,14079],{"class":2422},[111,14737,2434],{"class":145},[15,14739,14740],{},"If using Mecanum wheels (for ROS1; ROS2 version pending update — just set the wheel joint names to your own wheel joint names):",[101,14742,14744],{"className":2410,"code":14743,"language":2412,"meta":106,"style":106},"\u003Crobot name=\"mycar\" xmlns:xacro=\"http://wiki.ros.org/xacro\">\n\n    \u003Cxacro:macro name=\"joint_trans\" params=\"joint_name\">\n\n        \u003Ctransmission name=\"${joint_name}_trans\">\n            \u003Ctype>transmission_interface/SimpleTransmission\u003C/type>\n            \u003Cjoint name=\"${joint_name}\">\n                \u003ChardwareInterface>hardware_interface/VelocityJointInterface\u003C/hardwareInterface>\n            \u003C/joint>\n            \u003Cactuator name=\"${joint_name}_motor\">\n                \u003ChardwareInterface>hardware_interface/VelocityJointInterface\u003C/hardwareInterface>\n                \u003CmechanicalReduction>1\u003C/mechanicalReduction>\n            \u003C/actuator>\n        \u003C/transmission>\n    \u003C/xacro:macro>\n\n    \u003Cxacro:joint_trans joint_name=\"LeftFrontwheelToBase\" />\n    \u003Cxacro:joint_trans joint_name=\"LeftBackwheelToBase\" />\n    \u003Cxacro:joint_trans joint_name=\"RightFrontwheelToBase\" />\n    \u003Cxacro:joint_trans joint_name=\"RightBackwheelToBase\" />\n\n    \u003Cgazebo>\n        \u003Cplugin name=\"mecanum_controller\" filename=\"libgazebo_ros_planar_move.so\">\n            \u003CcommandTopic>cmd_vel\u003C/commandTopic>\n            \u003CodometryTopic>odom\u003C/odometryTopic>\n            \u003CodometryFrame>odom\u003C/odometryFrame>\n            \u003CleftFrontJoint>LeftFrontwheelToBase\u003C/leftFrontJoint>\n            \u003CrightFrontJoint>RightFrontwheelToBase\u003C/rightFrontJoint>\n            \u003CleftRearJoint>LeftBackwheelToBase\u003C/leftRearJoint>\n            \u003CrightRearJoint>RightBackwheelToBase\u003C/rightRearJoint>\n            \u003CodometryRate>100\u003C/odometryRate>\n            \u003CrobotBaseFrame>base_footprint\u003C/robotBaseFrame>\n            \u003CbroadcastTF>1\u003C/broadcastTF>\n        \u003C/plugin>\n    \u003C/gazebo>\n\n\u003C/robot>\n",[108,14745,14746,14767,14771,14793,14797,14813,14827,14843,14858,14866,14882,14894,14907,14915,14923,14931,14935,14952,14967,14982,14997,15001,15009,15031,15045,15058,15071,15085,15099,15113,15127,15140,15153,15166,15174,15182,15186],{"__ignoreMap":106},[111,14747,14748,14750,14752,14754,14756,14758,14760,14762,14765],{"class":113,"line":114},[111,14749,2419],{"class":145},[111,14751,2423],{"class":2422},[111,14753,2426],{"class":131},[111,14755,1733],{"class":145},[111,14757,13616],{"class":135},[111,14759,2577],{"class":131},[111,14761,1733],{"class":145},[111,14763,14764],{"class":135},"\"http://wiki.ros.org/xacro\"",[111,14766,2434],{"class":145},[111,14768,14769],{"class":113,"line":121},[111,14770,118],{"emptyLinePlaceholder":117},[111,14772,14773,14775,14777,14779,14781,14784,14786,14788,14791],{"class":113,"line":128},[111,14774,2456],{"class":145},[111,14776,2597],{"class":2422},[111,14778,2426],{"class":131},[111,14780,1733],{"class":145},[111,14782,14783],{"class":135},"\"joint_trans\"",[111,14785,2606],{"class":131},[111,14787,1733],{"class":145},[111,14789,14790],{"class":135},"\"joint_name\"",[111,14792,2434],{"class":145},[111,14794,14795],{"class":113,"line":152},[111,14796,118],{"emptyLinePlaceholder":117},[111,14798,14799,14801,14804,14806,14808,14811],{"class":113,"line":157},[111,14800,2640],{"class":145},[111,14802,14803],{"class":2422},"transmission",[111,14805,2426],{"class":131},[111,14807,1733],{"class":145},[111,14809,14810],{"class":135},"\"${joint_name}_trans\"",[111,14812,2434],{"class":145},[111,14814,14815,14817,14820,14823,14825],{"class":113,"line":163},[111,14816,3329],{"class":145},[111,14818,14819],{"class":2422},"type",[111,14821,14822],{"class":145},">transmission_interface/SimpleTransmission\u003C/",[111,14824,14819],{"class":2422},[111,14826,2434],{"class":145},[111,14828,14829,14831,14834,14836,14838,14841],{"class":113,"line":175},[111,14830,3329],{"class":145},[111,14832,14833],{"class":2422},"joint",[111,14835,2426],{"class":131},[111,14837,1733],{"class":145},[111,14839,14840],{"class":135},"\"${joint_name}\"",[111,14842,2434],{"class":145},[111,14844,14845,14848,14851,14854,14856],{"class":113,"line":180},[111,14846,14847],{"class":145},"                \u003C",[111,14849,14850],{"class":2422},"hardwareInterface",[111,14852,14853],{"class":145},">hardware_interface/VelocityJointInterface\u003C/",[111,14855,14850],{"class":2422},[111,14857,2434],{"class":145},[111,14859,14860,14862,14864],{"class":113,"line":186},[111,14861,3368],{"class":145},[111,14863,14833],{"class":2422},[111,14865,2434],{"class":145},[111,14867,14868,14870,14873,14875,14877,14880],{"class":113,"line":433},[111,14869,3329],{"class":145},[111,14871,14872],{"class":2422},"actuator",[111,14874,2426],{"class":131},[111,14876,1733],{"class":145},[111,14878,14879],{"class":135},"\"${joint_name}_motor\"",[111,14881,2434],{"class":145},[111,14883,14884,14886,14888,14890,14892],{"class":113,"line":439},[111,14885,14847],{"class":145},[111,14887,14850],{"class":2422},[111,14889,14853],{"class":145},[111,14891,14850],{"class":2422},[111,14893,2434],{"class":145},[111,14895,14896,14898,14901,14903,14905],{"class":113,"line":445},[111,14897,14847],{"class":145},[111,14899,14900],{"class":2422},"mechanicalReduction",[111,14902,3036],{"class":145},[111,14904,14900],{"class":2422},[111,14906,2434],{"class":145},[111,14908,14909,14911,14913],{"class":113,"line":451},[111,14910,3368],{"class":145},[111,14912,14872],{"class":2422},[111,14914,2434],{"class":145},[111,14916,14917,14919,14921],{"class":113,"line":1710},[111,14918,2876],{"class":145},[111,14920,14803],{"class":2422},[111,14922,2434],{"class":145},[111,14924,14925,14927,14929],{"class":113,"line":1722},[111,14926,2537],{"class":145},[111,14928,2597],{"class":2422},[111,14930,2434],{"class":145},[111,14932,14933],{"class":113,"line":1727},[111,14934,118],{"emptyLinePlaceholder":117},[111,14936,14937,14939,14942,14945,14947,14950],{"class":113,"line":1744},[111,14938,2456],{"class":145},[111,14940,14941],{"class":2422},"xacro:joint_trans",[111,14943,14944],{"class":131}," joint_name",[111,14946,1733],{"class":145},[111,14948,14949],{"class":135},"\"LeftFrontwheelToBase\"",[111,14951,2480],{"class":145},[111,14953,14954,14956,14958,14960,14962,14965],{"class":113,"line":1759},[111,14955,2456],{"class":145},[111,14957,14941],{"class":2422},[111,14959,14944],{"class":131},[111,14961,1733],{"class":145},[111,14963,14964],{"class":135},"\"LeftBackwheelToBase\"",[111,14966,2480],{"class":145},[111,14968,14969,14971,14973,14975,14977,14980],{"class":113,"line":1781},[111,14970,2456],{"class":145},[111,14972,14941],{"class":2422},[111,14974,14944],{"class":131},[111,14976,1733],{"class":145},[111,14978,14979],{"class":135},"\"RightFrontwheelToBase\"",[111,14981,2480],{"class":145},[111,14983,14984,14986,14988,14990,14992,14995],{"class":113,"line":1786},[111,14985,2456],{"class":145},[111,14987,14941],{"class":2422},[111,14989,14944],{"class":131},[111,14991,1733],{"class":145},[111,14993,14994],{"class":135},"\"RightBackwheelToBase\"",[111,14996,2480],{"class":145},[111,14998,14999],{"class":113,"line":1797},[111,15000,118],{"emptyLinePlaceholder":117},[111,15002,15003,15005,15007],{"class":113,"line":1803},[111,15004,2456],{"class":145},[111,15006,14079],{"class":2422},[111,15008,2434],{"class":145},[111,15010,15011,15013,15015,15017,15019,15022,15024,15026,15029],{"class":113,"line":1821},[111,15012,2640],{"class":145},[111,15014,3069],{"class":2422},[111,15016,2426],{"class":131},[111,15018,1733],{"class":145},[111,15020,15021],{"class":135},"\"mecanum_controller\"",[111,15023,3079],{"class":131},[111,15025,1733],{"class":145},[111,15027,15028],{"class":135},"\"libgazebo_ros_planar_move.so\"",[111,15030,2434],{"class":145},[111,15032,15033,15035,15038,15041,15043],{"class":113,"line":1833},[111,15034,3329],{"class":145},[111,15036,15037],{"class":2422},"commandTopic",[111,15039,15040],{"class":145},">cmd_vel\u003C/",[111,15042,15037],{"class":2422},[111,15044,2434],{"class":145},[111,15046,15047,15049,15052,15054,15056],{"class":113,"line":1851},[111,15048,3329],{"class":145},[111,15050,15051],{"class":2422},"odometryTopic",[111,15053,14183],{"class":145},[111,15055,15051],{"class":2422},[111,15057,2434],{"class":145},[111,15059,15060,15062,15065,15067,15069],{"class":113,"line":1857},[111,15061,3329],{"class":145},[111,15063,15064],{"class":2422},"odometryFrame",[111,15066,14183],{"class":145},[111,15068,15064],{"class":2422},[111,15070,2434],{"class":145},[111,15072,15073,15075,15078,15081,15083],{"class":113,"line":1863},[111,15074,3329],{"class":145},[111,15076,15077],{"class":2422},"leftFrontJoint",[111,15079,15080],{"class":145},">LeftFrontwheelToBase\u003C/",[111,15082,15077],{"class":2422},[111,15084,2434],{"class":145},[111,15086,15087,15089,15092,15095,15097],{"class":113,"line":1868},[111,15088,3329],{"class":145},[111,15090,15091],{"class":2422},"rightFrontJoint",[111,15093,15094],{"class":145},">RightFrontwheelToBase\u003C/",[111,15096,15091],{"class":2422},[111,15098,2434],{"class":145},[111,15100,15101,15103,15106,15109,15111],{"class":113,"line":1874},[111,15102,3329],{"class":145},[111,15104,15105],{"class":2422},"leftRearJoint",[111,15107,15108],{"class":145},">LeftBackwheelToBase\u003C/",[111,15110,15105],{"class":2422},[111,15112,2434],{"class":145},[111,15114,15115,15117,15120,15123,15125],{"class":113,"line":1885},[111,15116,3329],{"class":145},[111,15118,15119],{"class":2422},"rightRearJoint",[111,15121,15122],{"class":145},">RightBackwheelToBase\u003C/",[111,15124,15119],{"class":2422},[111,15126,2434],{"class":145},[111,15128,15129,15131,15134,15136,15138],{"class":113,"line":1899},[111,15130,3329],{"class":145},[111,15132,15133],{"class":2422},"odometryRate",[111,15135,3629],{"class":145},[111,15137,15133],{"class":2422},[111,15139,2434],{"class":145},[111,15141,15142,15144,15147,15149,15151],{"class":113,"line":1911},[111,15143,3329],{"class":145},[111,15145,15146],{"class":2422},"robotBaseFrame",[111,15148,14197],{"class":145},[111,15150,15146],{"class":2422},[111,15152,2434],{"class":145},[111,15154,15155,15157,15160,15162,15164],{"class":113,"line":1938},[111,15156,3329],{"class":145},[111,15158,15159],{"class":2422},"broadcastTF",[111,15161,3036],{"class":145},[111,15163,15159],{"class":2422},[111,15165,2434],{"class":145},[111,15167,15168,15170,15172],{"class":113,"line":1954},[111,15169,2876],{"class":145},[111,15171,3069],{"class":2422},[111,15173,2434],{"class":145},[111,15175,15176,15178,15180],{"class":113,"line":1959},[111,15177,2537],{"class":145},[111,15179,14079],{"class":2422},[111,15181,2434],{"class":145},[111,15183,15184],{"class":113,"line":1964},[111,15185,118],{"emptyLinePlaceholder":117},[111,15187,15188,15190,15192],{"class":113,"line":1970},[111,15189,2555],{"class":145},[111,15191,2423],{"class":2422},[111,15193,2434],{"class":145},[15,15195,15196],{},[50,15197,15198],{},"Modify the launch file",[15,15200,15201,15202,15204],{},"Modify the ",[108,15203,9153],{}," file. The modified code is as follows:",[101,15206,15208],{"className":1583,"code":15207,"language":1585,"meta":106,"style":106},"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\",\"base.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                \"-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",[108,15209,15210,15216,15220,15230,15234,15244,15254,15264,15274,15278,15286,15290,15302,15314,15326,15343,15347,15355,15359,15371,15379,15391,15395,15399,15407,15411,15423,15427,15431,15455,15463,15473,15484,15496,15506,15516,15526,15530,15534,15542,15553,15564,15577,15584,15591,15598,15605,15609,15627,15635,15649,15663,15677,15681,15690,15694,15698,15704,15708,15712,15716,15721],{"__ignoreMap":106},[111,15211,15212,15214],{"class":113,"line":114},[111,15213,1592],{"class":770},[111,15215,1595],{"class":145},[111,15217,15218],{"class":113,"line":121},[111,15219,118],{"emptyLinePlaceholder":117},[111,15221,15222,15224,15226,15228],{"class":113,"line":128},[111,15223,1604],{"class":770},[111,15225,1607],{"class":145},[111,15227,1592],{"class":770},[111,15229,1612],{"class":145},[111,15231,15232],{"class":113,"line":152},[111,15233,118],{"emptyLinePlaceholder":117},[111,15235,15236,15238,15240,15242],{"class":113,"line":157},[111,15237,1604],{"class":770},[111,15239,1623],{"class":145},[111,15241,1592],{"class":770},[111,15243,1628],{"class":145},[111,15245,15246,15248,15250,15252],{"class":113,"line":163},[111,15247,1604],{"class":770},[111,15249,1635],{"class":145},[111,15251,1592],{"class":770},[111,15253,1651],{"class":145},[111,15255,15256,15258,15260,15262],{"class":113,"line":175},[111,15257,1604],{"class":770},[111,15259,1670],{"class":145},[111,15261,1592],{"class":770},[111,15263,1675],{"class":145},[111,15265,15266,15268,15270,15272],{"class":113,"line":180},[111,15267,1604],{"class":770},[111,15269,1698],{"class":145},[111,15271,1592],{"class":770},[111,15273,1703],{"class":145},[111,15275,15276],{"class":113,"line":186},[111,15277,118],{"emptyLinePlaceholder":117},[111,15279,15280,15282,15284],{"class":113,"line":433},[111,15281,1713],{"class":770},[111,15283,1716],{"class":131},[111,15285,1719],{"class":145},[111,15287,15288],{"class":113,"line":439},[111,15289,118],{"emptyLinePlaceholder":117},[111,15291,15292,15294,15296,15298,15300],{"class":113,"line":445},[111,15293,1730],{"class":145},[111,15295,1733],{"class":770},[111,15297,1736],{"class":145},[111,15299,13428],{"class":135},[111,15301,1476],{"class":145},[111,15303,15304,15306,15308,15310,15312],{"class":113,"line":451},[111,15305,13435],{"class":145},[111,15307,1733],{"class":770},[111,15309,1736],{"class":145},[111,15311,13157],{"class":135},[111,15313,1476],{"class":145},[111,15315,15316,15318,15320,15322,15324],{"class":113,"line":1710},[111,15317,1747],{"class":145},[111,15319,1733],{"class":770},[111,15321,1736],{"class":145},[111,15323,13454],{"class":135},[111,15325,1476],{"class":145},[111,15327,15328,15330,15332,15334,15336,15338,15341],{"class":113,"line":1722},[111,15329,1762],{"class":145},[111,15331,1733],{"class":770},[111,15333,1767],{"class":145},[111,15335,9263],{"class":135},[111,15337,1773],{"class":145},[111,15339,15340],{"class":135},"\"base.sdf\"",[111,15342,1476],{"class":145},[111,15344,15345],{"class":113,"line":1727},[111,15346,118],{"emptyLinePlaceholder":117},[111,15348,15349,15351,15353],{"class":113,"line":1744},[111,15350,1789],{"class":145},[111,15352,1733],{"class":770},[111,15354,1794],{"class":145},[111,15356,15357],{"class":113,"line":1759},[111,15358,1800],{"class":145},[111,15360,15361,15363,15365,15367,15369],{"class":113,"line":1781},[111,15362,1806],{"class":145},[111,15364,13495],{"class":135},[111,15366,1812],{"class":145},[111,15368,13500],{"class":135},[111,15370,1818],{"class":145},[111,15372,15373,15375,15377],{"class":113,"line":1786},[111,15374,1825],{"class":1824},[111,15376,1733],{"class":770},[111,15378,1830],{"class":145},[111,15380,15381,15383,15385,15387,15389],{"class":113,"line":1797},[111,15382,13515],{"class":135},[111,15384,1839],{"class":145},[111,15386,13520],{"class":135},[111,15388,1845],{"class":770},[111,15390,1848],{"class":145},[111,15392,15393],{"class":113,"line":1803},[111,15394,1854],{"class":145},[111,15396,15397],{"class":113,"line":1821},[111,15398,1860],{"class":145},[111,15400,15401,15403,15405],{"class":113,"line":1833},[111,15402,13537],{"class":145},[111,15404,1733],{"class":770},[111,15406,1794],{"class":145},[111,15408,15409],{"class":113,"line":1851},[111,15410,1800],{"class":145},[111,15412,15413,15415,15417,15419,15421],{"class":113,"line":1857},[111,15414,13550],{"class":145},[111,15416,13495],{"class":135},[111,15418,1773],{"class":145},[111,15420,13557],{"class":135},[111,15422,1476],{"class":145},[111,15424,15425],{"class":113,"line":1863},[111,15426,13564],{"class":145},[111,15428,15429],{"class":113,"line":1868},[111,15430,1860],{"class":145},[111,15432,15433,15435,15437,15439,15441,15443,15445,15447,15449,15451,15453],{"class":113,"line":1874},[111,15434,13573],{"class":145},[111,15436,1733],{"class":770},[111,15438,13578],{"class":145},[111,15440,13581],{"class":1824},[111,15442,1733],{"class":770},[111,15444,13454],{"class":135},[111,15446,1812],{"class":145},[111,15448,13590],{"class":1824},[111,15450,1733],{"class":770},[111,15452,13595],{"class":135},[111,15454,1896],{"class":145},[111,15456,15457,15459,15461],{"class":113,"line":1885},[111,15458,13602],{"class":1824},[111,15460,1733],{"class":770},[111,15462,2073],{"class":145},[111,15464,15465,15467,15469,15471],{"class":113,"line":1899},[111,15466,13611],{"class":135},[111,15468,1812],{"class":145},[111,15470,13616],{"class":135},[111,15472,1896],{"class":145},[111,15474,15475,15477,15479,15482],{"class":113,"line":1911},[111,15476,13623],{"class":135},[111,15478,1812],{"class":145},[111,15480,15481],{"class":135},"\"-4\"",[111,15483,1896],{"class":145},[111,15485,15486,15488,15490,15492,15494],{"class":113,"line":1938},[111,15487,13635],{"class":135},[111,15489,1812],{"class":145},[111,15491,13640],{"class":135},[111,15493,1812],{"class":145},[111,15495,13645],{"class":124},[111,15497,15498,15500,15502,15504],{"class":113,"line":1954},[111,15499,13650],{"class":135},[111,15501,1812],{"class":145},[111,15503,13628],{"class":135},[111,15505,1896],{"class":145},[111,15507,15508,15510,15512,15514],{"class":113,"line":1959},[111,15509,13661],{"class":135},[111,15511,1812],{"class":145},[111,15513,13666],{"class":135},[111,15515,13669],{"class":145},[111,15517,15518,15520,15522,15524],{"class":113,"line":1964},[111,15519,13674],{"class":1824},[111,15521,1733],{"class":770},[111,15523,13679],{"class":135},[111,15525,1476],{"class":145},[111,15527,15528],{"class":113,"line":1970},[111,15529,118],{"emptyLinePlaceholder":117},[111,15531,15532],{"class":113,"line":1980},[111,15533,1967],{"class":124},[111,15535,15536,15538,15540],{"class":113,"line":1993},[111,15537,1973],{"class":145},[111,15539,1733],{"class":770},[111,15541,1882],{"class":145},[111,15543,15544,15546,15548,15551],{"class":113,"line":2006},[111,15545,1983],{"class":1824},[111,15547,1733],{"class":770},[111,15549,15550],{"class":135},"\"ros_gz_bridge\"",[111,15552,1896],{"class":145},[111,15554,15555,15557,15559,15562],{"class":113,"line":2021},[111,15556,1996],{"class":1824},[111,15558,1733],{"class":770},[111,15560,15561],{"class":135},"\"parameter_bridge\"",[111,15563,1896],{"class":145},[111,15565,15566,15568,15570,15572,15575],{"class":113,"line":2029},[111,15567,2009],{"class":1824},[111,15569,1733],{"class":770},[111,15571,808],{"class":145},[111,15573,15574],{"class":135},"\"/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist\"",[111,15576,1896],{"class":145},[111,15578,15579,15582],{"class":113,"line":2037},[111,15580,15581],{"class":135},"                   \"/model/mycar/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry\"",[111,15583,1896],{"class":145},[111,15585,15586,15589],{"class":113,"line":2043},[111,15587,15588],{"class":135},"                   \"/model/mycar/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V\"",[111,15590,1896],{"class":145},[111,15592,15593,15596],{"class":113,"line":2065},[111,15594,15595],{"class":135},"                   \"/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock\"",[111,15597,1896],{"class":145},[111,15599,15600,15603],{"class":113,"line":2076},[111,15601,15602],{"class":135},"                   \"/world/empty/model/mycar/joint_state@sensor_msgs/msg/JointState[gz.msgs.Model\"",[111,15604,1896],{"class":145},[111,15606,15607],{"class":113,"line":2093},[111,15608,2040],{"class":145},[111,15610,15611,15613,15615,15617,15620,15622,15625],{"class":113,"line":2108},[111,15612,2046],{"class":1824},[111,15614,1733],{"class":770},[111,15616,2051],{"class":145},[111,15618,15619],{"class":135},"\"qos_overrides./model/mycar.subscriber.reliability\"",[111,15621,1839],{"class":145},[111,15623,15624],{"class":135},"\"reliable\"",[111,15626,2062],{"class":145},[111,15628,15629,15631,15633],{"class":113,"line":2114},[111,15630,2068],{"class":1824},[111,15632,1733],{"class":770},[111,15634,2073],{"class":145},[111,15636,15637,15639,15642,15644,15647],{"class":113,"line":2125},[111,15638,2079],{"class":145},[111,15640,15641],{"class":135},"\"/model/mycar/tf\"",[111,15643,1812],{"class":145},[111,15645,15646],{"class":135},"\"/tf\"",[111,15648,2090],{"class":145},[111,15650,15651,15653,15656,15658,15661],{"class":113,"line":2130},[111,15652,2079],{"class":145},[111,15654,15655],{"class":135},"\"/world/empty/model/mycar/joint_state\"",[111,15657,1773],{"class":145},[111,15659,15660],{"class":135},"\"joint_states\"",[111,15662,2090],{"class":145},[111,15664,15665,15667,15670,15672,15675],{"class":113,"line":2135},[111,15666,2079],{"class":145},[111,15668,15669],{"class":135},"\"/model/mycar/odometry\"",[111,15671,1773],{"class":145},[111,15673,15674],{"class":135},"\"/odom\"",[111,15676,1476],{"class":145},[111,15678,15679],{"class":113,"line":2144},[111,15680,2111],{"class":145},[111,15682,15683,15685,15687],{"class":113,"line":2150},[111,15684,2117],{"class":1824},[111,15686,1733],{"class":770},[111,15688,15689],{"class":135},"\"screen\"\n",[111,15691,15692],{"class":113,"line":2170},[111,15693,1860],{"class":145},[111,15695,15696],{"class":113,"line":2183},[111,15697,118],{"emptyLinePlaceholder":117},[111,15699,15700,15702],{"class":113,"line":2189},[111,15701,2138],{"class":770},[111,15703,2141],{"class":145},[111,15705,15706],{"class":113,"line":2195},[111,15707,2147],{"class":145},[111,15709,15710],{"class":113,"line":3683},[111,15711,13700],{"class":145},[111,15713,15714],{"class":113,"line":3696},[111,15715,13705],{"class":145},[111,15717,15718],{"class":113,"line":3710},[111,15719,15720],{"class":145},"        bridge\n",[111,15722,15723],{"class":113,"line":3723},[111,15724,2198],{"class":145},[15,15726,15727],{},[50,15728,2211],{},[15,15730,2214],{},[101,15732,15733],{"className":103,"code":13718,"language":105,"meta":106,"style":106},[108,15734,15735],{"__ignoreMap":106},[111,15736,15737,15739,15741,15743,15745],{"class":113,"line":114},[111,15738,2224],{"class":131},[111,15740,2227],{"class":135},[111,15742,13729],{"class":575},[111,15744,13732],{"class":135},[111,15746,1442],{"class":135},[15,15748,15749],{},[50,15750,2242],{},[15,15752,2245],{},[101,15754,15756],{"className":103,"code":15755,"language":105,"meta":106,"style":106},". install/setup.bash\nexport MYCAR_MODEL=stm32_4w # MYCAR_MODEL值可以设置为arduino、stm32_2w 或stm32_4w（这个是具体的urdf文件名，在mycar_description包下的）\nros2 launch demo_gazebo_sim gazebo_sim_world.launch.py\n",[108,15757,15758,15764,15777],{"__ignoreMap":106},[111,15759,15760,15762],{"class":113,"line":114},[111,15761,2255],{"class":575},[111,15763,2258],{"class":135},[111,15765,15766,15768,15770,15772,15775],{"class":113,"line":121},[111,15767,9466],{"class":770},[111,15769,13768],{"class":145},[111,15771,1733],{"class":770},[111,15773,15774],{"class":145},"stm32_4w ",[111,15776,13761],{"class":124},[111,15778,15779,15781,15783,15785],{"class":113,"line":128},[111,15780,262],{"class":131},[111,15782,265],{"class":135},[111,15784,2267],{"class":135},[111,15786,9391],{"class":135},[15,15788,15789],{},"Restart the keyboard control node, and you can control the robot's movement.",[101,15791,15792],{"className":103,"code":2276,"language":105,"meta":106,"style":106},[108,15793,15794],{"__ignoreMap":106},[111,15795,15796,15798,15800,15802],{"class":113,"line":114},[111,15797,262],{"class":131},[111,15799,662],{"class":135},[111,15801,710],{"class":135},[111,15803,2289],{"class":135},[15,15805,15806],{},"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,15808,15809],{},"Start rviz2",[101,15811,15813],{"className":103,"code":15812,"language":105,"meta":106,"style":106},". install/setup.bash\nrviz2\n",[108,15814,15815,15821],{"__ignoreMap":106},[111,15816,15817,15819],{"class":113,"line":114},[111,15818,2255],{"class":575},[111,15820,2258],{"class":135},[111,15822,15823],{"class":113,"line":121},[111,15824,15825],{"class":131},"rviz2\n",[15,15827,15828],{},"The RVIZ2 software configuration is shown in the following image:",[15,15830,15831,15834],{},[199,15832],{"alt":106,"src":15833},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1735.webp",[199,15835],{"alt":106,"src":15836},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1736.webp",[15,15838,15839],{},[199,15840],{"alt":106,"src":15841},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1737.webp",[27,15843,15845],{"id":15844},"ignition-gazebo-simulation-sensors","Ignition Gazebo Simulation: Sensors",[15,15847,15848],{},"This section will introduce how to add sensors such as LiDAR and cameras to a simulated robot. The code in this section is fully universal for the robot models covered in our tutorial, including Arduino, STM32_2W, and STM32_4W.",[15,15850,15851],{},[50,15852,15853],{},"Adding Sensor Plugins",[15,15855,15856,15857,15860,15861,14063],{},"Before simulating the sensor, you need to add a plugin named ",[108,15858,15859],{},"ignition-gazebo-sensors-system",". Open the URDF file and add the following code inside the ",[108,15862,14062],{},[101,15864,15866],{"className":2410,"code":15865,"language":2412,"meta":106,"style":106},"\n\u003Cgazebo>\n    \u003Cplugin\n      filename=\"ignition-gazebo-sensors-system\"\n      name=\"ignition::gazebo::systems::Sensors\">\n      \u003Crender_engine>ogre2\u003C/render_engine>\n    \u003C/plugin>\n  \u003C/gazebo>\n",[108,15867,15868,15872,15880,15886,15896,15907,15921,15929],{"__ignoreMap":106},[111,15869,15870],{"class":113,"line":114},[111,15871,118],{"emptyLinePlaceholder":117},[111,15873,15874,15876,15878],{"class":113,"line":121},[111,15875,2419],{"class":145},[111,15877,14079],{"class":2422},[111,15879,2434],{"class":145},[111,15881,15882,15884],{"class":113,"line":128},[111,15883,2456],{"class":145},[111,15885,14428],{"class":2422},[111,15887,15888,15891,15893],{"class":113,"line":152},[111,15889,15890],{"class":131},"      filename",[111,15892,1733],{"class":145},[111,15894,15895],{"class":135},"\"ignition-gazebo-sensors-system\"\n",[111,15897,15898,15900,15902,15905],{"class":113,"line":157},[111,15899,14373],{"class":131},[111,15901,1733],{"class":145},[111,15903,15904],{"class":135},"\"ignition::gazebo::systems::Sensors\"",[111,15906,2434],{"class":145},[111,15908,15909,15911,15914,15917,15919],{"class":113,"line":163},[111,15910,2466],{"class":145},[111,15912,15913],{"class":2422},"render_engine",[111,15915,15916],{"class":145},">ogre2\u003C/",[111,15918,15913],{"class":2422},[111,15920,2434],{"class":145},[111,15922,15923,15925,15927],{"class":113,"line":175},[111,15924,2537],{"class":145},[111,15926,3069],{"class":2422},[111,15928,2434],{"class":145},[111,15930,15931,15933,15935],{"class":113,"line":180},[111,15932,2546],{"class":145},[111,15934,14079],{"class":2422},[111,15936,2434],{"class":145},[15,15938,15939],{},"The ignition-gazebo-sensors-system is a plugin for the Ignition Gazebo simulation environment, providing 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,15941,15942],{},[50,15943,15944],{},"Adding Various Sensors",[15,15946,15947],{},[50,15948,15949],{},"(Note: Your model must include models for the following sensors)",[15,15951,15952],{},"The radar model does not need collision. Please delete it, otherwise it will block the laser emission.",[101,15954,15956],{"className":2410,"code":15955,"language":2412,"meta":106,"style":106},"\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      \u003CalwaysOn>1\u003C/alwaysOn>\n      \u003Cvisualize>true\u003C/visualize>\n      \u003Cignition_frame_id>laser\u003C/ignition_frame_id>\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      \u003Cignition_frame_id>camera\u003C/ignition_frame_id>\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          \u003CalwaysOn>1\u003C/alwaysOn>\n          \u003Cignition_frame_id>camera\u003C/ignition_frame_id>\n      \u003C/sensor>\n  \u003C/gazebo>\n",[108,15957,15958,15962,15978,16000,16013,16026,16035,16044,16053,16067,16080,16094,16108,16116,16125,16138,16150,16163,16176,16184,16192,16200,16214,16228,16240,16248,16256,16269,16282,16296,16304,16312,16316,16332,16353,16365,16378,16391,16404,16417,16433,16447,16456,16471,16484,16498,16506,16515,16529,16543,16551,16559,16567,16575,16579,16593,16614,16626,16639,16647,16660,16668,16681,16693,16706,16714,16722,16735,16747,16755,16763,16775,16787,16795],{"__ignoreMap":106},[111,15959,15960],{"class":113,"line":114},[111,15961,118],{"emptyLinePlaceholder":117},[111,15963,15964,15966,15968,15971,15973,15976],{"class":113,"line":121},[111,15965,2439],{"class":145},[111,15967,14079],{"class":2422},[111,15969,15970],{"class":131}," reference",[111,15972,1733],{"class":145},[111,15974,15975],{"class":135},"\"laser\"",[111,15977,2434],{"class":145},[111,15979,15980,15982,15985,15987,15989,15992,15994,15996,15998],{"class":113,"line":128},[111,15981,2456],{"class":145},[111,15983,15984],{"class":2422},"sensor",[111,15986,2426],{"class":131},[111,15988,1733],{"class":145},[111,15990,15991],{"class":135},"'gpu_lidar'",[111,15993,3005],{"class":131},[111,15995,1733],{"class":145},[111,15997,15991],{"class":135},[111,15999,2434],{"class":145},[111,16001,16002,16004,16006,16009,16011],{"class":113,"line":152},[111,16003,2466],{"class":145},[111,16005,14208],{"class":2422},[111,16007,16008],{"class":145},">scan\u003C/",[111,16010,14208],{"class":2422},[111,16012,2434],{"class":145},[111,16014,16015,16017,16019,16022,16024],{"class":113,"line":157},[111,16016,2466],{"class":145},[111,16018,13953],{"class":2422},[111,16020,16021],{"class":145},">30\u003C/",[111,16023,13953],{"class":2422},[111,16025,2434],{"class":145},[111,16027,16028,16030,16033],{"class":113,"line":163},[111,16029,2466],{"class":145},[111,16031,16032],{"class":2422},"lidar",[111,16034,2434],{"class":145},[111,16036,16037,16039,16042],{"class":113,"line":175},[111,16038,2640],{"class":145},[111,16040,16041],{"class":2422},"scan",[111,16043,2434],{"class":145},[111,16045,16046,16048,16051],{"class":113,"line":180},[111,16047,2836],{"class":145},[111,16049,16050],{"class":2422},"horizontal",[111,16052,2434],{"class":145},[111,16054,16055,16057,16060,16063,16065],{"class":113,"line":186},[111,16056,3329],{"class":145},[111,16058,16059],{"class":2422},"samples",[111,16061,16062],{"class":145},">640\u003C/",[111,16064,16059],{"class":2422},[111,16066,2434],{"class":145},[111,16068,16069,16071,16074,16076,16078],{"class":113,"line":433},[111,16070,3329],{"class":145},[111,16072,16073],{"class":2422},"resolution",[111,16075,3036],{"class":145},[111,16077,16073],{"class":2422},[111,16079,2434],{"class":145},[111,16081,16082,16084,16087,16090,16092],{"class":113,"line":439},[111,16083,3329],{"class":145},[111,16085,16086],{"class":2422},"min_angle",[111,16088,16089],{"class":145},">-3.1415926\u003C/",[111,16091,16086],{"class":2422},[111,16093,2434],{"class":145},[111,16095,16096,16098,16101,16104,16106],{"class":113,"line":445},[111,16097,3329],{"class":145},[111,16099,16100],{"class":2422},"max_angle",[111,16102,16103],{"class":145},">3.1415926\u003C/",[111,16105,16100],{"class":2422},[111,16107,2434],{"class":145},[111,16109,16110,16112,16114],{"class":113,"line":451},[111,16111,3377],{"class":145},[111,16113,16050],{"class":2422},[111,16115,2434],{"class":145},[111,16117,16118,16120,16123],{"class":113,"line":1710},[111,16119,2836],{"class":145},[111,16121,16122],{"class":2422},"vertical",[111,16124,2434],{"class":145},[111,16126,16127,16129,16131,16134,16136],{"class":113,"line":1722},[111,16128,3329],{"class":145},[111,16130,16059],{"class":2422},[111,16132,16133],{"class":145},">16\u003C/",[111,16135,16059],{"class":2422},[111,16137,2434],{"class":145},[111,16139,16140,16142,16144,16146,16148],{"class":113,"line":1727},[111,16141,3329],{"class":145},[111,16143,16073],{"class":2422},[111,16145,3036],{"class":145},[111,16147,16073],{"class":2422},[111,16149,2434],{"class":145},[111,16151,16152,16154,16156,16159,16161],{"class":113,"line":1744},[111,16153,3329],{"class":145},[111,16155,16086],{"class":2422},[111,16157,16158],{"class":145},">-0.261799\u003C/",[111,16160,16086],{"class":2422},[111,16162,2434],{"class":145},[111,16164,16165,16167,16169,16172,16174],{"class":113,"line":1759},[111,16166,3329],{"class":145},[111,16168,16100],{"class":2422},[111,16170,16171],{"class":145},">0.261799\u003C/",[111,16173,16100],{"class":2422},[111,16175,2434],{"class":145},[111,16177,16178,16180,16182],{"class":113,"line":1781},[111,16179,3377],{"class":145},[111,16181,16122],{"class":2422},[111,16183,2434],{"class":145},[111,16185,16186,16188,16190],{"class":113,"line":1786},[111,16187,2876],{"class":145},[111,16189,16041],{"class":2422},[111,16191,2434],{"class":145},[111,16193,16194,16196,16198],{"class":113,"line":1797},[111,16195,2640],{"class":145},[111,16197,6017],{"class":2422},[111,16199,2434],{"class":145},[111,16201,16202,16204,16207,16210,16212],{"class":113,"line":1803},[111,16203,2836],{"class":145},[111,16205,16206],{"class":2422},"min",[111,16208,16209],{"class":145},">0.08\u003C/",[111,16211,16206],{"class":2422},[111,16213,2434],{"class":145},[111,16215,16216,16218,16221,16224,16226],{"class":113,"line":1821},[111,16217,2836],{"class":145},[111,16219,16220],{"class":2422},"max",[111,16222,16223],{"class":145},">10.0\u003C/",[111,16225,16220],{"class":2422},[111,16227,2434],{"class":145},[111,16229,16230,16232,16234,16236,16238],{"class":113,"line":1833},[111,16231,2836],{"class":145},[111,16233,16073],{"class":2422},[111,16235,6034],{"class":145},[111,16237,16073],{"class":2422},[111,16239,2434],{"class":145},[111,16241,16242,16244,16246],{"class":113,"line":1851},[111,16243,2876],{"class":145},[111,16245,6017],{"class":2422},[111,16247,2434],{"class":145},[111,16249,16250,16252,16254],{"class":113,"line":1857},[111,16251,2700],{"class":145},[111,16253,16032],{"class":2422},[111,16255,2434],{"class":145},[111,16257,16258,16260,16263,16265,16267],{"class":113,"line":1863},[111,16259,2466],{"class":145},[111,16261,16262],{"class":2422},"alwaysOn",[111,16264,3036],{"class":145},[111,16266,16262],{"class":2422},[111,16268,2434],{"class":145},[111,16270,16271,16273,16276,16278,16280],{"class":113,"line":1868},[111,16272,2466],{"class":145},[111,16274,16275],{"class":2422},"visualize",[111,16277,3244],{"class":145},[111,16279,16275],{"class":2422},[111,16281,2434],{"class":145},[111,16283,16284,16286,16289,16292,16294],{"class":113,"line":1874},[111,16285,2466],{"class":145},[111,16287,16288],{"class":2422},"ignition_frame_id",[111,16290,16291],{"class":145},">laser\u003C/",[111,16293,16288],{"class":2422},[111,16295,2434],{"class":145},[111,16297,16298,16300,16302],{"class":113,"line":1885},[111,16299,2537],{"class":145},[111,16301,15984],{"class":2422},[111,16303,2434],{"class":145},[111,16305,16306,16308,16310],{"class":113,"line":1899},[111,16307,2546],{"class":145},[111,16309,14079],{"class":2422},[111,16311,2434],{"class":145},[111,16313,16314],{"class":113,"line":1911},[111,16315,118],{"emptyLinePlaceholder":117},[111,16317,16318,16320,16322,16324,16326,16329],{"class":113,"line":1938},[111,16319,2439],{"class":145},[111,16321,14079],{"class":2422},[111,16323,15970],{"class":131},[111,16325,1733],{"class":145},[111,16327,16328],{"class":135},"\"camera\"",[111,16330,16331],{"class":145}," >\n",[111,16333,16334,16336,16338,16340,16342,16345,16347,16349,16351],{"class":113,"line":1954},[111,16335,2456],{"class":145},[111,16337,15984],{"class":2422},[111,16339,2426],{"class":131},[111,16341,1733],{"class":145},[111,16343,16344],{"class":135},"\"cam_link\"",[111,16346,3005],{"class":131},[111,16348,1733],{"class":145},[111,16350,16328],{"class":135},[111,16352,2434],{"class":145},[111,16354,16355,16357,16359,16361,16363],{"class":113,"line":1959},[111,16356,2466],{"class":145},[111,16358,13953],{"class":2422},[111,16360,16223],{"class":145},[111,16362,13953],{"class":2422},[111,16364,2434],{"class":145},[111,16366,16367,16369,16372,16374,16376],{"class":113,"line":1964},[111,16368,2466],{"class":145},[111,16370,16371],{"class":2422},"always_on",[111,16373,3244],{"class":145},[111,16375,16371],{"class":2422},[111,16377,2434],{"class":145},[111,16379,16380,16382,16384,16387,16389],{"class":113,"line":1970},[111,16381,2466],{"class":145},[111,16383,16288],{"class":2422},[111,16385,16386],{"class":145},">camera\u003C/",[111,16388,16288],{"class":2422},[111,16390,2434],{"class":145},[111,16392,16393,16395,16397,16400,16402],{"class":113,"line":1980},[111,16394,2466],{"class":145},[111,16396,3593],{"class":2422},[111,16398,16399],{"class":145},">0 0 0 0 0 0\u003C/",[111,16401,3593],{"class":2422},[111,16403,2434],{"class":145},[111,16405,16406,16408,16410,16413,16415],{"class":113,"line":1993},[111,16407,2466],{"class":145},[111,16409,14208],{"class":2422},[111,16411,16412],{"class":145},">/image_raw\u003C/",[111,16414,14208],{"class":2422},[111,16416,2434],{"class":145},[111,16418,16419,16421,16424,16426,16428,16431],{"class":113,"line":2006},[111,16420,2466],{"class":145},[111,16422,16423],{"class":2422},"camera",[111,16425,2426],{"class":131},[111,16427,1733],{"class":145},[111,16429,16430],{"class":135},"\"my_camera\"",[111,16432,2434],{"class":145},[111,16434,16435,16437,16440,16443,16445],{"class":113,"line":2021},[111,16436,2640],{"class":145},[111,16438,16439],{"class":2422},"horizontal_fov",[111,16441,16442],{"class":145},">1.3962634\u003C/",[111,16444,16439],{"class":2422},[111,16446,2434],{"class":145},[111,16448,16449,16451,16454],{"class":113,"line":2029},[111,16450,2640],{"class":145},[111,16452,16453],{"class":2422},"image",[111,16455,2434],{"class":145},[111,16457,16458,16461,16464,16467,16469],{"class":113,"line":2037},[111,16459,16460],{"class":145},"           \u003C",[111,16462,16463],{"class":2422},"width",[111,16465,16466],{"class":145},">600\u003C/",[111,16468,16463],{"class":2422},[111,16470,2434],{"class":145},[111,16472,16473,16475,16478,16480,16482],{"class":113,"line":2043},[111,16474,16460],{"class":145},[111,16476,16477],{"class":2422},"height",[111,16479,16466],{"class":145},[111,16481,16477],{"class":2422},[111,16483,2434],{"class":145},[111,16485,16486,16488,16491,16494,16496],{"class":113,"line":2065},[111,16487,16460],{"class":145},[111,16489,16490],{"class":2422},"format",[111,16492,16493],{"class":145},">R8G8B8\u003C/",[111,16495,16490],{"class":2422},[111,16497,2434],{"class":145},[111,16499,16500,16502,16504],{"class":113,"line":2076},[111,16501,2876],{"class":145},[111,16503,16453],{"class":2422},[111,16505,2434],{"class":145},[111,16507,16508,16510,16513],{"class":113,"line":2093},[111,16509,2640],{"class":145},[111,16511,16512],{"class":2422},"clip",[111,16514,2434],{"class":145},[111,16516,16517,16519,16522,16525,16527],{"class":113,"line":2108},[111,16518,2836],{"class":145},[111,16520,16521],{"class":2422},"near",[111,16523,16524],{"class":145},">0.02\u003C/",[111,16526,16521],{"class":2422},[111,16528,2434],{"class":145},[111,16530,16531,16533,16536,16539,16541],{"class":113,"line":2114},[111,16532,2836],{"class":145},[111,16534,16535],{"class":2422},"far",[111,16537,16538],{"class":145},">300\u003C/",[111,16540,16535],{"class":2422},[111,16542,2434],{"class":145},[111,16544,16545,16547,16549],{"class":113,"line":2125},[111,16546,2876],{"class":145},[111,16548,16512],{"class":2422},[111,16550,2434],{"class":145},[111,16552,16553,16555,16557],{"class":113,"line":2130},[111,16554,2700],{"class":145},[111,16556,16423],{"class":2422},[111,16558,2434],{"class":145},[111,16560,16561,16563,16565],{"class":113,"line":2135},[111,16562,2537],{"class":145},[111,16564,15984],{"class":2422},[111,16566,2434],{"class":145},[111,16568,16569,16571,16573],{"class":113,"line":2144},[111,16570,2546],{"class":145},[111,16572,14079],{"class":2422},[111,16574,2434],{"class":145},[111,16576,16577],{"class":113,"line":2150},[111,16578,118],{"emptyLinePlaceholder":117},[111,16580,16581,16583,16585,16587,16589,16591],{"class":113,"line":2170},[111,16582,2439],{"class":145},[111,16584,14079],{"class":2422},[111,16586,15970],{"class":131},[111,16588,1733],{"class":145},[111,16590,16328],{"class":135},[111,16592,2434],{"class":145},[111,16594,16595,16597,16599,16601,16603,16606,16608,16610,16612],{"class":113,"line":2183},[111,16596,2456],{"class":145},[111,16598,15984],{"class":2422},[111,16600,2426],{"class":131},[111,16602,1733],{"class":145},[111,16604,16605],{"class":135},"\"depth_camera\"",[111,16607,3005],{"class":131},[111,16609,1733],{"class":145},[111,16611,16605],{"class":135},[111,16613,2434],{"class":145},[111,16615,16616,16618,16620,16622,16624],{"class":113,"line":2189},[111,16617,2836],{"class":145},[111,16619,13953],{"class":2422},[111,16621,14169],{"class":145},[111,16623,13953],{"class":2422},[111,16625,2434],{"class":145},[111,16627,16628,16630,16632,16635,16637],{"class":113,"line":2195},[111,16629,2836],{"class":145},[111,16631,14208],{"class":2422},[111,16633,16634],{"class":145},">depth_camera\u003C/",[111,16636,14208],{"class":2422},[111,16638,2434],{"class":145},[111,16640,16641,16643,16645],{"class":113,"line":3683},[111,16642,2836],{"class":145},[111,16644,16423],{"class":2422},[111,16646,2434],{"class":145},[111,16648,16649,16651,16653,16656,16658],{"class":113,"line":3696},[111,16650,3329],{"class":145},[111,16652,16439],{"class":2422},[111,16654,16655],{"class":145},">1.05\u003C/",[111,16657,16439],{"class":2422},[111,16659,2434],{"class":145},[111,16661,16662,16664,16666],{"class":113,"line":3710},[111,16663,3329],{"class":145},[111,16665,16453],{"class":2422},[111,16667,2434],{"class":145},[111,16669,16670,16672,16674,16677,16679],{"class":113,"line":3723},[111,16671,3339],{"class":145},[111,16673,16463],{"class":2422},[111,16675,16676],{"class":145},">256\u003C/",[111,16678,16463],{"class":2422},[111,16680,2434],{"class":145},[111,16682,16683,16685,16687,16689,16691],{"class":113,"line":3732},[111,16684,3339],{"class":145},[111,16686,16477],{"class":2422},[111,16688,16676],{"class":145},[111,16690,16477],{"class":2422},[111,16692,2434],{"class":145},[111,16694,16695,16697,16699,16702,16704],{"class":113,"line":3741},[111,16696,3339],{"class":145},[111,16698,16490],{"class":2422},[111,16700,16701],{"class":145},">R_FLOAT32\u003C/",[111,16703,16490],{"class":2422},[111,16705,2434],{"class":145},[111,16707,16708,16710,16712],{"class":113,"line":3756},[111,16709,3368],{"class":145},[111,16711,16453],{"class":2422},[111,16713,2434],{"class":145},[111,16715,16716,16718,16720],{"class":113,"line":3765},[111,16717,3329],{"class":145},[111,16719,16512],{"class":2422},[111,16721,2434],{"class":145},[111,16723,16724,16726,16728,16731,16733],{"class":113,"line":3778},[111,16725,3339],{"class":145},[111,16727,16521],{"class":2422},[111,16729,16730],{"class":145},">0.1\u003C/",[111,16732,16521],{"class":2422},[111,16734,2434],{"class":145},[111,16736,16737,16739,16741,16743,16745],{"class":113,"line":3792},[111,16738,3339],{"class":145},[111,16740,16535],{"class":2422},[111,16742,16223],{"class":145},[111,16744,16535],{"class":2422},[111,16746,2434],{"class":145},[111,16748,16749,16751,16753],{"class":113,"line":3801},[111,16750,3368],{"class":145},[111,16752,16512],{"class":2422},[111,16754,2434],{"class":145},[111,16756,16757,16759,16761],{"class":113,"line":3817},[111,16758,3377],{"class":145},[111,16760,16423],{"class":2422},[111,16762,2434],{"class":145},[111,16764,16765,16767,16769,16771,16773],{"class":113,"line":3831},[111,16766,2836],{"class":145},[111,16768,16262],{"class":2422},[111,16770,3036],{"class":145},[111,16772,16262],{"class":2422},[111,16774,2434],{"class":145},[111,16776,16777,16779,16781,16783,16785],{"class":113,"line":3847},[111,16778,2836],{"class":145},[111,16780,16288],{"class":2422},[111,16782,16386],{"class":145},[111,16784,16288],{"class":2422},[111,16786,2434],{"class":145},[111,16788,16789,16791,16793],{"class":113,"line":3856},[111,16790,2700],{"class":145},[111,16792,15984],{"class":2422},[111,16794,2434],{"class":145},[111,16796,16797,16799,16801],{"class":113,"line":3865},[111,16798,2546],{"class":145},[111,16800,14079],{"class":2422},[111,16802,2434],{"class":145},[15,16804,16805],{},"IMU sensor found on the official website",[101,16807,16809],{"className":2410,"code":16808,"language":2412,"meta":106,"style":106},"\n    \u003Cgazebo>\n        \u003Cplugin filename=\"libignition-gazebo-imu-system.so\"\n                name=\"ignition::gazebo::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",[108,16810,16811,16815,16823,16836,16848,16856,16864,16868,16882,16904,16916,16928,16940,16953,16961],{"__ignoreMap":106},[111,16812,16813],{"class":113,"line":114},[111,16814,118],{"emptyLinePlaceholder":117},[111,16816,16817,16819,16821],{"class":113,"line":121},[111,16818,2456],{"class":145},[111,16820,14079],{"class":2422},[111,16822,2434],{"class":145},[111,16824,16825,16827,16829,16831,16833],{"class":113,"line":128},[111,16826,2640],{"class":145},[111,16828,3069],{"class":2422},[111,16830,3079],{"class":131},[111,16832,1733],{"class":145},[111,16834,16835],{"class":135},"\"libignition-gazebo-imu-system.so\"\n",[111,16837,16838,16841,16843,16846],{"class":113,"line":152},[111,16839,16840],{"class":131},"                name",[111,16842,1733],{"class":145},[111,16844,16845],{"class":135},"\"ignition::gazebo::systems::Imu\"",[111,16847,2434],{"class":145},[111,16849,16850,16852,16854],{"class":113,"line":157},[111,16851,2876],{"class":145},[111,16853,3069],{"class":2422},[111,16855,2434],{"class":145},[111,16857,16858,16860,16862],{"class":113,"line":163},[111,16859,2537],{"class":145},[111,16861,14079],{"class":2422},[111,16863,2434],{"class":145},[111,16865,16866],{"class":113,"line":175},[111,16867,118],{"emptyLinePlaceholder":117},[111,16869,16870,16872,16874,16876,16878,16880],{"class":113,"line":180},[111,16871,2456],{"class":145},[111,16873,14079],{"class":2422},[111,16875,15970],{"class":131},[111,16877,1733],{"class":145},[111,16879,2449],{"class":135},[111,16881,2434],{"class":145},[111,16883,16884,16886,16888,16890,16892,16895,16897,16899,16902],{"class":113,"line":186},[111,16885,2640],{"class":145},[111,16887,15984],{"class":2422},[111,16889,2426],{"class":131},[111,16891,1733],{"class":145},[111,16893,16894],{"class":135},"\"imu_sensor\"",[111,16896,3005],{"class":131},[111,16898,1733],{"class":145},[111,16900,16901],{"class":135},"\"imu\"",[111,16903,2434],{"class":145},[111,16905,16906,16908,16910,16912,16914],{"class":113,"line":433},[111,16907,3329],{"class":145},[111,16909,16371],{"class":2422},[111,16911,3036],{"class":145},[111,16913,16371],{"class":2422},[111,16915,2434],{"class":145},[111,16917,16918,16920,16922,16924,16926],{"class":113,"line":439},[111,16919,3329],{"class":145},[111,16921,13953],{"class":2422},[111,16923,16021],{"class":145},[111,16925,13953],{"class":2422},[111,16927,2434],{"class":145},[111,16929,16930,16932,16934,16936,16938],{"class":113,"line":445},[111,16931,3329],{"class":145},[111,16933,16275],{"class":2422},[111,16935,3244],{"class":145},[111,16937,16275],{"class":2422},[111,16939,2434],{"class":145},[111,16941,16942,16944,16946,16949,16951],{"class":113,"line":451},[111,16943,3329],{"class":145},[111,16945,14208],{"class":2422},[111,16947,16948],{"class":145},">imu\u003C/",[111,16950,14208],{"class":2422},[111,16952,2434],{"class":145},[111,16954,16955,16957,16959],{"class":113,"line":1710},[111,16956,2876],{"class":145},[111,16958,15984],{"class":2422},[111,16960,2434],{"class":145},[111,16962,16963,16965,16967],{"class":113,"line":1722},[111,16964,2537],{"class":145},[111,16966,14079],{"class":2422},[111,16968,2434],{"class":145},[15,16970,16971,16972,16975],{},"You can use ",[108,16973,16974],{},"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,16977,16978],{},"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:",[101,16980,16984],{"className":16981,"code":16982,"language":16983,"meta":106,"style":106},"language-cpp shiki shiki-themes github-light github-dark","sudo apt install ros-${ROS_DISTRO}-imu-tools\n","cpp",[108,16985,16986],{"__ignoreMap":106},[111,16987,16988,16991,16994,16996,16998,17001,17003],{"class":113,"line":114},[111,16989,16990],{"class":145},"sudo apt install ros",[111,16992,16993],{"class":770},"-",[111,16995,146],{"class":145},[111,16997,16993],{"class":770},[111,16999,17000],{"class":145},"imu",[111,17002,16993],{"class":770},[111,17004,17005],{"class":145},"tools\n",[15,17007,17008,17009,17012,17013,17016],{},"The model automatically generated by SolidWorks may have flipped the ",[108,17010,17011],{},"laser_joint",". Please correct it so that ",[108,17014,17015],{},"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,17018,17019],{},[199,17020],{"alt":106,"src":17021},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1738.webp",[15,17023,15201,17024,15204],{},[108,17025,9153],{},[101,17027,17029],{"className":1583,"code":17028,"language":1585,"meta":106,"style":106},"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            \"-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",[108,17030,17031,17037,17041,17051,17055,17065,17075,17085,17095,17099,17107,17111,17123,17135,17147,17163,17167,17175,17180,17193,17201,17214,17218,17222,17230,17234,17246,17250,17254,17278,17286,17297,17308,17321,17332,17343,17353,17357,17361,17369,17379,17389,17401,17408,17415,17422,17429,17436,17443,17450,17457,17464,17471,17476,17481,17497,17505,17518,17530,17542,17546,17554,17558,17562,17568,17572,17576,17580,17584],{"__ignoreMap":106},[111,17032,17033,17035],{"class":113,"line":114},[111,17034,1592],{"class":770},[111,17036,1595],{"class":145},[111,17038,17039],{"class":113,"line":121},[111,17040,118],{"emptyLinePlaceholder":117},[111,17042,17043,17045,17047,17049],{"class":113,"line":128},[111,17044,1604],{"class":770},[111,17046,1607],{"class":145},[111,17048,1592],{"class":770},[111,17050,1612],{"class":145},[111,17052,17053],{"class":113,"line":152},[111,17054,118],{"emptyLinePlaceholder":117},[111,17056,17057,17059,17061,17063],{"class":113,"line":157},[111,17058,1604],{"class":770},[111,17060,1623],{"class":145},[111,17062,1592],{"class":770},[111,17064,1628],{"class":145},[111,17066,17067,17069,17071,17073],{"class":113,"line":163},[111,17068,1604],{"class":770},[111,17070,1635],{"class":145},[111,17072,1592],{"class":770},[111,17074,1651],{"class":145},[111,17076,17077,17079,17081,17083],{"class":113,"line":175},[111,17078,1604],{"class":770},[111,17080,1670],{"class":145},[111,17082,1592],{"class":770},[111,17084,1675],{"class":145},[111,17086,17087,17089,17091,17093],{"class":113,"line":180},[111,17088,1604],{"class":770},[111,17090,1698],{"class":145},[111,17092,1592],{"class":770},[111,17094,1703],{"class":145},[111,17096,17097],{"class":113,"line":186},[111,17098,118],{"emptyLinePlaceholder":117},[111,17100,17101,17103,17105],{"class":113,"line":433},[111,17102,1713],{"class":770},[111,17104,1716],{"class":131},[111,17106,1719],{"class":145},[111,17108,17109],{"class":113,"line":439},[111,17110,118],{"emptyLinePlaceholder":117},[111,17112,17113,17115,17117,17119,17121],{"class":113,"line":445},[111,17114,1730],{"class":145},[111,17116,1733],{"class":770},[111,17118,1736],{"class":145},[111,17120,13428],{"class":135},[111,17122,1476],{"class":145},[111,17124,17125,17127,17129,17131,17133],{"class":113,"line":451},[111,17126,13435],{"class":145},[111,17128,1733],{"class":770},[111,17130,1736],{"class":145},[111,17132,13157],{"class":135},[111,17134,1476],{"class":145},[111,17136,17137,17139,17141,17143,17145],{"class":113,"line":1710},[111,17138,1747],{"class":145},[111,17140,1733],{"class":770},[111,17142,1736],{"class":145},[111,17144,13454],{"class":135},[111,17146,1476],{"class":145},[111,17148,17149,17151,17153,17155,17157,17159,17161],{"class":113,"line":1722},[111,17150,1762],{"class":145},[111,17152,1733],{"class":770},[111,17154,1767],{"class":145},[111,17156,9263],{"class":135},[111,17158,1773],{"class":145},[111,17160,9268],{"class":135},[111,17162,1476],{"class":145},[111,17164,17165],{"class":113,"line":1727},[111,17166,118],{"emptyLinePlaceholder":117},[111,17168,17169,17171,17173],{"class":113,"line":1744},[111,17170,1789],{"class":145},[111,17172,1733],{"class":770},[111,17174,1794],{"class":145},[111,17176,17177],{"class":113,"line":1759},[111,17178,17179],{"class":145},"    PythonLaunchDescriptionSource(\n",[111,17181,17182,17185,17187,17189,17191],{"class":113,"line":1781},[111,17183,17184],{"class":145},"        os.path.join(pkg_ros_gz_sim, ",[111,17186,13495],{"class":135},[111,17188,1812],{"class":145},[111,17190,13500],{"class":135},[111,17192,1818],{"class":145},[111,17194,17195,17197,17199],{"class":113,"line":1786},[111,17196,1825],{"class":1824},[111,17198,1733],{"class":770},[111,17200,1830],{"class":145},[111,17202,17203,17206,17208,17210,17212],{"class":113,"line":1797},[111,17204,17205],{"class":135},"        \"gz_args\"",[111,17207,1839],{"class":145},[111,17209,13520],{"class":135},[111,17211,1845],{"class":770},[111,17213,1848],{"class":145},[111,17215,17216],{"class":113,"line":1803},[111,17217,1854],{"class":145},[111,17219,17220],{"class":113,"line":1821},[111,17221,1860],{"class":145},[111,17223,17224,17226,17228],{"class":113,"line":1833},[111,17225,13537],{"class":145},[111,17227,1733],{"class":770},[111,17229,1794],{"class":145},[111,17231,17232],{"class":113,"line":1851},[111,17233,1800],{"class":145},[111,17235,17236,17238,17240,17242,17244],{"class":113,"line":1857},[111,17237,13550],{"class":145},[111,17239,13495],{"class":135},[111,17241,1773],{"class":145},[111,17243,13557],{"class":135},[111,17245,1476],{"class":145},[111,17247,17248],{"class":113,"line":1863},[111,17249,13564],{"class":145},[111,17251,17252],{"class":113,"line":1868},[111,17253,1860],{"class":145},[111,17255,17256,17258,17260,17262,17264,17266,17268,17270,17272,17274,17276],{"class":113,"line":1874},[111,17257,13573],{"class":145},[111,17259,1733],{"class":770},[111,17261,13578],{"class":145},[111,17263,13581],{"class":1824},[111,17265,1733],{"class":770},[111,17267,13454],{"class":135},[111,17269,1812],{"class":145},[111,17271,13590],{"class":1824},[111,17273,1733],{"class":770},[111,17275,13595],{"class":135},[111,17277,1896],{"class":145},[111,17279,17280,17282,17284],{"class":113,"line":1885},[111,17281,2009],{"class":1824},[111,17283,1733],{"class":770},[111,17285,2073],{"class":145},[111,17287,17288,17291,17293,17295],{"class":113,"line":1899},[111,17289,17290],{"class":135},"            \"-name\"",[111,17292,1812],{"class":145},[111,17294,13616],{"class":135},[111,17296,1896],{"class":145},[111,17298,17299,17302,17304,17306],{"class":113,"line":1911},[111,17300,17301],{"class":135},"            \"-x\"",[111,17303,1812],{"class":145},[111,17305,15481],{"class":135},[111,17307,1896],{"class":145},[111,17309,17310,17313,17315,17317,17319],{"class":113,"line":1938},[111,17311,17312],{"class":135},"            \"-z\"",[111,17314,1812],{"class":145},[111,17316,13640],{"class":135},[111,17318,1812],{"class":145},[111,17320,13645],{"class":124},[111,17322,17323,17326,17328,17330],{"class":113,"line":1954},[111,17324,17325],{"class":135},"            \"-y\"",[111,17327,1812],{"class":145},[111,17329,13628],{"class":135},[111,17331,1896],{"class":145},[111,17333,17334,17337,17339,17341],{"class":113,"line":1959},[111,17335,17336],{"class":135},"            \"-topic\"",[111,17338,1812],{"class":145},[111,17340,13666],{"class":135},[111,17342,13669],{"class":145},[111,17344,17345,17347,17349,17351],{"class":113,"line":1964},[111,17346,2117],{"class":1824},[111,17348,1733],{"class":770},[111,17350,13679],{"class":135},[111,17352,1476],{"class":145},[111,17354,17355],{"class":113,"line":1970},[111,17356,118],{"emptyLinePlaceholder":117},[111,17358,17359],{"class":113,"line":1980},[111,17360,1967],{"class":124},[111,17362,17363,17365,17367],{"class":113,"line":1993},[111,17364,1973],{"class":145},[111,17366,1733],{"class":770},[111,17368,1882],{"class":145},[111,17370,17371,17373,17375,17377],{"class":113,"line":2006},[111,17372,1983],{"class":1824},[111,17374,1733],{"class":770},[111,17376,15550],{"class":135},[111,17378,1896],{"class":145},[111,17380,17381,17383,17385,17387],{"class":113,"line":2021},[111,17382,1996],{"class":1824},[111,17384,1733],{"class":770},[111,17386,15561],{"class":135},[111,17388,1896],{"class":145},[111,17390,17391,17393,17395,17397,17399],{"class":113,"line":2029},[111,17392,2009],{"class":1824},[111,17394,1733],{"class":770},[111,17396,808],{"class":145},[111,17398,15574],{"class":135},[111,17400,1896],{"class":145},[111,17402,17403,17406],{"class":113,"line":2037},[111,17404,17405],{"class":135},"            \"/model/mycar/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry\"",[111,17407,1896],{"class":145},[111,17409,17410,17413],{"class":113,"line":2043},[111,17411,17412],{"class":135},"            \"/model/mycar/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V\"",[111,17414,1896],{"class":145},[111,17416,17417,17420],{"class":113,"line":2065},[111,17418,17419],{"class":135},"            \"/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock\"",[111,17421,1896],{"class":145},[111,17423,17424,17427],{"class":113,"line":2076},[111,17425,17426],{"class":135},"            \"/world/empty/model/mycar/joint_state@sensor_msgs/msg/JointState[gz.msgs.Model\"",[111,17428,1896],{"class":145},[111,17430,17431,17434],{"class":113,"line":2093},[111,17432,17433],{"class":135},"            \"/scan@sensor_msgs/msg/LaserScan@gz.msgs.LaserScan\"",[111,17435,1896],{"class":145},[111,17437,17438,17441],{"class":113,"line":2108},[111,17439,17440],{"class":135},"            \"/scan/points@sensor_msgs/msg/PointCloud2@gz.msgs.PointCloudPacked\"",[111,17442,1896],{"class":145},[111,17444,17445,17448],{"class":113,"line":2114},[111,17446,17447],{"class":135},"            \"/image_raw@sensor_msgs/msg/Image@gz.msgs.Image\"",[111,17449,1896],{"class":145},[111,17451,17452,17455],{"class":113,"line":2125},[111,17453,17454],{"class":135},"            \"/camera_info@sensor_msgs/msg/CameraInfo@gz.msgs.CameraInfo\"",[111,17456,1896],{"class":145},[111,17458,17459,17462],{"class":113,"line":2130},[111,17460,17461],{"class":135},"            \"/depth_camera@sensor_msgs/msg/Image@gz.msgs.Image\"",[111,17463,1896],{"class":145},[111,17465,17466,17469],{"class":113,"line":2135},[111,17467,17468],{"class":135},"            \"/imu@sensor_msgs/msg/Imu[gz.msgs.IMU\"",[111,17470,1896],{"class":145},[111,17472,17473],{"class":113,"line":2144},[111,17474,17475],{"class":135},"            \"/imu/angular_velocity@geometry_msgs/msg/Vector3[gz.msgs.Vector3d\"\n",[111,17477,17478],{"class":113,"line":2150},[111,17479,17480],{"class":145},"        ],\n",[111,17482,17483,17485,17487,17489,17491,17493,17495],{"class":113,"line":2170},[111,17484,2046],{"class":1824},[111,17486,1733],{"class":770},[111,17488,2051],{"class":145},[111,17490,15619],{"class":135},[111,17492,1839],{"class":145},[111,17494,15624],{"class":135},[111,17496,2062],{"class":145},[111,17498,17499,17501,17503],{"class":113,"line":2183},[111,17500,2068],{"class":1824},[111,17502,1733],{"class":770},[111,17504,2073],{"class":145},[111,17506,17507,17510,17512,17514,17516],{"class":113,"line":2189},[111,17508,17509],{"class":145},"            (",[111,17511,15641],{"class":135},[111,17513,1812],{"class":145},[111,17515,15646],{"class":135},[111,17517,2090],{"class":145},[111,17519,17520,17522,17524,17526,17528],{"class":113,"line":2195},[111,17521,17509],{"class":145},[111,17523,15655],{"class":135},[111,17525,1773],{"class":145},[111,17527,15660],{"class":135},[111,17529,2090],{"class":145},[111,17531,17532,17534,17536,17538,17540],{"class":113,"line":3683},[111,17533,17509],{"class":145},[111,17535,15669],{"class":135},[111,17537,1773],{"class":145},[111,17539,15674],{"class":135},[111,17541,1476],{"class":145},[111,17543,17544],{"class":113,"line":3696},[111,17545,17480],{"class":145},[111,17547,17548,17550,17552],{"class":113,"line":3710},[111,17549,2117],{"class":1824},[111,17551,1733],{"class":770},[111,17553,15689],{"class":135},[111,17555,17556],{"class":113,"line":3723},[111,17557,1860],{"class":145},[111,17559,17560],{"class":113,"line":3732},[111,17561,118],{"emptyLinePlaceholder":117},[111,17563,17564,17566],{"class":113,"line":3741},[111,17565,2138],{"class":770},[111,17567,2141],{"class":145},[111,17569,17570],{"class":113,"line":3756},[111,17571,2147],{"class":145},[111,17573,17574],{"class":113,"line":3765},[111,17575,13700],{"class":145},[111,17577,17578],{"class":113,"line":3778},[111,17579,13705],{"class":145},[111,17581,17582],{"class":113,"line":3792},[111,17583,15720],{"class":145},[111,17585,17586],{"class":113,"line":3801},[111,17587,2198],{"class":145},[15,17589,17590],{},[50,17591,2211],{},[15,17593,2214],{},[101,17595,17596],{"className":103,"code":13718,"language":105,"meta":106,"style":106},[108,17597,17598],{"__ignoreMap":106},[111,17599,17600,17602,17604,17606,17608],{"class":113,"line":114},[111,17601,2224],{"class":131},[111,17603,2227],{"class":135},[111,17605,13729],{"class":575},[111,17607,13732],{"class":135},[111,17609,1442],{"class":135},[15,17611,17612],{},[50,17613,2242],{},[15,17615,2245],{},[101,17617,17619],{"className":103,"code":17618,"language":105,"meta":106,"style":106},". install/setup.bash\nexport MYCAR_MODEL=stm32_4w # MYCAR_MODEL值可以设置为arduino、stm32_2w 或stm32_4w\nros2 launch demo_gazebo_sim gazebo_sim_world.launch.py\n",[108,17620,17621,17627,17640],{"__ignoreMap":106},[111,17622,17623,17625],{"class":113,"line":114},[111,17624,2255],{"class":575},[111,17626,2258],{"class":135},[111,17628,17629,17631,17633,17635,17637],{"class":113,"line":121},[111,17630,9466],{"class":770},[111,17632,13768],{"class":145},[111,17634,1733],{"class":770},[111,17636,15774],{"class":145},[111,17638,17639],{"class":124},"# MYCAR_MODEL值可以设置为arduino、stm32_2w 或stm32_4w\n",[111,17641,17642,17644,17646,17648],{"class":113,"line":128},[111,17643,262],{"class":131},[111,17645,265],{"class":135},[111,17647,2267],{"class":135},[111,17649,9391],{"class":135},[15,17651,15789],{},[15,17653,17654],{},"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:",[101,17656,17657],{"className":103,"code":15812,"language":105,"meta":106,"style":106},[108,17658,17659,17665],{"__ignoreMap":106},[111,17660,17661,17663],{"class":113,"line":114},[111,17662,2255],{"class":575},[111,17664,2258],{"class":135},[111,17666,17667],{"class":113,"line":121},[111,17668,15825],{"class":131},[15,17670,17671],{},[199,17672],{"alt":106,"src":17673},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1739.webp",[15,17675,17676],{},[199,17677],{"alt":106,"src":17678},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1740.webp",[15,17680,12980],{},[15,17682,17683],{},[55,17684,17685],{"href":17685,"rel":17686},"https://github.com/tungchiahui/ROS2_WS/tree/main/6.ws_simulations",[59],[15,17688,17689],{},"(Reproduce everything above to proceed to the next chapter navigation. The next chapter navigation is still based on simulation.)",[17691,17692,17693],"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":106,"searchDepth":121,"depth":121,"links":17695},[17696],{"id":12,"depth":128,"text":13},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","11.2",11020000,"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-2-IgnitionGazebo",false,null,"en-US","en-us",{},{"title":5,"description":106},"/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-2-IgnitionGazebo","yuYT7QWKwowuI0UkCQwC8cGbUaHXLPeGoMpyJSVNM3o",[17717,17723,17729,17735,17736,17742,17748,17754,17760,17766,17772,17778,17784,17790,17796,17802,17808,17814,17819,17825,17830,17836,17842,17848,17854,17860,17866,17872,17878,17884,17890,17896,17902,17908,17914,17920,17926,17932,17938,17944,17950,17956,17962,17968,17974,17980,17986,17992,17998,18004,18010,18016,18022,18028,18034,18040,18046,18052,18058,18064],{"path":17718,"stem":17719,"title":17720,"date":17700,"chapter":17721,"chapterSort":17722,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17724,"stem":17725,"title":17726,"date":17700,"chapter":17727,"chapterSort":17728,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17730,"stem":17731,"title":17732,"date":17700,"chapter":17733,"chapterSort":17734,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17697,"stem":17714,"title":5,"date":17700,"chapter":17698,"chapterSort":17699,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},{"path":17737,"stem":17738,"title":17739,"date":17700,"chapter":17740,"chapterSort":17741,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim","_i18n/en-us/wiki/2023-12-30-ros2-tutorial/ch11-3-GazeboSim","Gz Sim（Gazebo Harmonic）","11.3",11030000,{"path":17743,"stem":17744,"title":17745,"date":17700,"chapter":17746,"chapterSort":17747,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17749,"stem":17750,"title":17751,"date":17700,"chapter":17752,"chapterSort":17753,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17755,"stem":17756,"title":17757,"date":17700,"chapter":17758,"chapterSort":17759,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17761,"stem":17762,"title":17763,"date":17700,"chapter":17764,"chapterSort":17765,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17767,"stem":17768,"title":17769,"date":17700,"chapter":17770,"chapterSort":17771,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17773,"stem":17774,"title":17775,"date":17700,"chapter":17776,"chapterSort":17777,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17779,"stem":17780,"title":17781,"date":17700,"chapter":17782,"chapterSort":17783,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17785,"stem":17786,"title":17787,"date":17700,"chapter":17788,"chapterSort":17789,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17791,"stem":17792,"title":17793,"date":17700,"chapter":17794,"chapterSort":17795,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17797,"stem":17798,"title":17799,"date":17700,"chapter":17800,"chapterSort":17801,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17803,"stem":17804,"title":17805,"date":17700,"chapter":17806,"chapterSort":17807,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17809,"stem":17810,"title":17811,"date":17700,"chapter":17812,"chapterSort":17813,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17815,"stem":17816,"title":17781,"date":17700,"chapter":17817,"chapterSort":17818,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17820,"stem":17821,"title":17822,"date":17700,"chapter":17823,"chapterSort":17824,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17826,"stem":17827,"title":17781,"date":17700,"chapter":17828,"chapterSort":17829,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17831,"stem":17832,"title":17833,"date":17700,"chapter":17834,"chapterSort":17835,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17837,"stem":17838,"title":17839,"date":17700,"chapter":17840,"chapterSort":17841,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17843,"stem":17844,"title":17845,"date":17700,"chapter":17846,"chapterSort":17847,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17849,"stem":17850,"title":17851,"date":17700,"chapter":17852,"chapterSort":17853,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17855,"stem":17856,"title":17857,"date":17700,"chapter":17858,"chapterSort":17859,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17861,"stem":17862,"title":17863,"date":17700,"chapter":17864,"chapterSort":17865,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17867,"stem":17868,"title":17869,"date":17700,"chapter":17870,"chapterSort":17871,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17873,"stem":17874,"title":17875,"date":17700,"chapter":17876,"chapterSort":17877,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17879,"stem":17880,"title":17881,"date":17700,"chapter":17882,"chapterSort":17883,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17885,"stem":17886,"title":17887,"date":17700,"chapter":17888,"chapterSort":17889,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17891,"stem":17892,"title":17893,"date":17700,"chapter":17894,"chapterSort":17895,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17897,"stem":17898,"title":17899,"date":17700,"chapter":17900,"chapterSort":17901,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17903,"stem":17904,"title":17905,"date":17700,"chapter":17906,"chapterSort":17907,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17909,"stem":17910,"title":17911,"date":17700,"chapter":17912,"chapterSort":17913,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17915,"stem":17916,"title":17917,"date":17700,"chapter":17918,"chapterSort":17919,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17921,"stem":17922,"title":17923,"date":17700,"chapter":17924,"chapterSort":17925,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17927,"stem":17928,"title":17929,"date":17700,"chapter":17930,"chapterSort":17931,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17933,"stem":17934,"title":17935,"date":17700,"chapter":17936,"chapterSort":17937,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17939,"stem":17940,"title":17941,"date":17700,"chapter":17942,"chapterSort":17943,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17945,"stem":17946,"title":17947,"date":17700,"chapter":17948,"chapterSort":17949,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17951,"stem":17952,"title":17953,"date":17700,"chapter":17954,"chapterSort":17955,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17957,"stem":17958,"title":17959,"date":17700,"chapter":17960,"chapterSort":17961,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17963,"stem":17964,"title":17965,"date":17700,"chapter":17966,"chapterSort":17967,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17969,"stem":17970,"title":17971,"date":17700,"chapter":17972,"chapterSort":17973,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17975,"stem":17976,"title":17977,"date":17700,"chapter":17978,"chapterSort":17979,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17981,"stem":17982,"title":17983,"date":17700,"chapter":17984,"chapterSort":17985,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17987,"stem":17988,"title":17989,"date":17700,"chapter":17990,"chapterSort":17991,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17993,"stem":17994,"title":17995,"date":17700,"chapter":17996,"chapterSort":17997,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17999,"stem":18000,"title":18001,"date":17700,"chapter":18002,"chapterSort":18003,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":18005,"stem":18006,"title":18007,"date":17700,"chapter":18008,"chapterSort":18009,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":18011,"stem":18012,"title":18013,"date":17700,"chapter":18014,"chapterSort":18015,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":18017,"stem":18018,"title":18019,"date":17700,"chapter":18020,"chapterSort":18021,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":18023,"stem":18024,"title":18025,"date":17700,"chapter":18026,"chapterSort":18027,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":18029,"stem":18030,"title":18031,"date":17700,"chapter":18032,"chapterSort":18033,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":18035,"stem":18036,"title":18037,"date":17700,"chapter":18038,"chapterSort":18039,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":18041,"stem":18042,"title":18043,"date":17700,"chapter":18044,"chapterSort":18045,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":18047,"stem":18048,"title":18049,"date":17700,"chapter":18050,"chapterSort":18051,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":18053,"stem":18054,"title":18055,"date":17700,"chapter":18056,"chapterSort":18057,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":18059,"stem":18060,"title":18061,"date":17700,"chapter":18062,"chapterSort":18063,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":17707},"/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":17703,"stem":18065,"title":18066,"date":17700,"chapter":17708,"chapterSort":18067,"docKey":17702,"docRoot":17703,"docTitle":17704,"isWikiDoc":117,"isWikiIndex":117},"_i18n/en-us/wiki/2023-12-30-ros2-tutorial/index","ROS2 Robot Operating System Tutorial",0,{"variants":18069},[18070,18071,18074,18077,18080],{"path":17697,"localeSlug":17710,"i18nKey":17706},{"path":18072,"localeSlug":18073,"i18nKey":17706},"/zh-hant/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","zh-hant",{"path":18075,"localeSlug":18076,"i18nKey":17706},"/zh-hk/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","zh-hk",{"path":18078,"localeSlug":18079,"i18nKey":17706},"/zh-tw/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","zh-tw",{"path":18081,"localeSlug":18082,"i18nKey":17706},"/zh-cn/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","zh-cn",[17697,17713,18072,17713,18075,17713,18078,17713,18081,17713],1780671799717]