[{"data":1,"prerenderedAt":20578},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-gazebosim":3,"wiki-doc-items-2023-12-30-ros2-tutorial":20157,"wiki:author-members":20566},{"id":4,"title":5,"authors":6,"body":8,"chapterDepth":89,"chapterOrder":20145,"date":20146,"description":81,"docKey":20147,"docRoot":20148,"docTitle":20149,"extension":20150,"isWikiDoc":92,"isWikiIndex":20151,"meta":20152,"navigation":92,"path":20153,"seo":20154,"stem":20155,"wikiDepth":89,"__hash__":20156},"wiki\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-GazeboSim.md","Gz Sim（Gazebo Harmonic）",[7],"董佳辉",{"type":9,"value":10,"toc":20142},"minimark",[11,16,33,38,45,48,54,60,67,72,75,171,177,182,185,188,225,228,247,254,259,264,267,272,275,278,283,290,296,301,306,311,316,321,326,331,339,344,430,435,440,445,450,455,460,463,468,482,487,490,493,498,503,507,510,521,524,529,536,581,584,603,606,611,616,623,644,658,663,669,693,696,701,704,707,712,715,741,752,755,758,778,781,784,792,795,801,804,816,819,831,834,846,849,873,878,885,888,1339,1342,1478,1481,1506,1510,1517,1522,1525,1543,1548,1553,1556,1577,1580,1585,1590,1593,1598,1603,1610,1613,1618,1621,1642,1647,1652,1655,2273,2276,2281,2286,2289,2307,2312,2317,2320,2345,2348,2364,2367,2390,2395,2402,2405,2410,2457,2460,2465,2485,2490,2493,2645,2648,2834,2837,2998,3003,3010,3013,3016,3019,3024,3029,6241,6246,6325,6328,9210,9215,9218,9406,9411,9413,9427,9432,9434,9456,9459,9462,9467,9473,9476,9481,9484,9490,9493,9500,9505,9508,9552,9558,9563,9578,9583,9586,9589,13259,13263,13265,13279,13283,13285,13305,13307,13312,13316,13319,13326,13331,13337,13374,13380,13385,13391,13462,13468,13499,13514,13521,13526,13533,15374,15381,15461,15466,15469,15726,15729,15734,15737,16151,16155,16157,16175,16179,16182,16208,16210,16215,16219,16222,16228,16234,16239,16245,16256,16343,16346,16349,16467,16472,16479,16811,16816,17148,17155,17525,17530,17533,18086,18090,18092,18108,18112,18114,18135,18138,18152,18155,18158,18174,18177,18185,18190,18194,18200,18214,18288,18291,18296,18301,18304,19194,19197,19360,19367,19370,19418,19421,19426,19428,20025,20029,20031,20047,20051,20053,20073,20085,20099,20106,20108,20111,20125,20130,20135,20138],[12,13,15],"h3",{"id":14},"gz-simgazebo-harmonic-及之后的版本ros2-jazzy及之后的版本","Gz Sim（Gazebo Harmonic 及之后的版本（ROS2 Jazzy及之后的版本））",[17,18,19,20,24,25,32],"p",{},"新版Gazebo 是 ROS2 中使用的全新机器人仿真工具，",[21,22,23],"strong",{},"它是 Gazebo 的升级版本","。在Humble他叫Ignition Gazebo(也叫Gazebo Fortress)，在Jazzy中叫Gazebo Harmonic(去掉了Ignition的名字)(",[26,27,31],"a",{"href":28,"rel":29},"https:\u002F\u002Fcommunity.gazebosim.org\u002Ft\u002Fa-new-era-for-gazebo\u002F1356)%E3%80%82%E5%AE%83%E5%85%B7%E5%A4%87%E6%9B%B4%E5%A5%BD%E7%9A%84%E6%80%A7%E8%83%BD%E5%92%8C%E5%8F%AF%E7%94%A8%E6%80%A7%EF%BC%8C%E5%B9%B6%E9%80%9A%E8%BF%87%E7%B4%A7%E5%AF%86%E9%9B%86%E6%88%90",[30],"nofollow","https:\u002F\u002Fcommunity.gazebosim.org\u002Ft\u002Fa-new-era-for-gazebo\u002F1356)。它具备更好的性能和可用性，并通过紧密集成"," ROS2 来提供强大的仿真环境。",[34,35,37],"h4",{"id":36},"gazebo安装与运行","Gazebo安装与运行",[17,39,40,41],{},"官方教程：\n",[26,42,43],{"href":43,"rel":44},"https:\u002F\u002Fdocs.ros.org\u002Fen\u002Fjazzy\u002FTutorials\u002FAdvanced\u002FSimulators\u002FGazebo\u002FGazebo.html",[30],[17,46,47],{},"下面这个网站是官方教程(ROS2 Jazzy 的 Gazebo Harmonic)：",[17,49,50],{},[26,51,52],{"href":52,"rel":53},"https:\u002F\u002Fgazebosim.org\u002Fdocs\u002Fharmonic\u002Fgetstarted\u002F",[30],[17,55,56],{},[26,57,58],{"href":58,"rel":59},"https:\u002F\u002Fgazebosim.org\u002Fdocs\u002Fharmonic\u002Flibrary_reference_nav\u002F",[30],[17,61,62,63],{},"源码：",[26,64,65],{"href":65,"rel":66},"https:\u002F\u002Fgithub.com\u002Fgazebosim\u002Fdocs\u002Fblob\u002Fmaster\u002Fharmonic\u002Ftutorials",[30],[17,68,69],{},[21,70,71],{},"安装",[17,73,74],{},"Gazebo 是不依赖于ROS2的一个独立的项目，可以独自安装。但是如果安装了ROS2，在ROS2存储库中已经集成了对应版本的 Gazebo，可以调用如下指令直接安装：",[76,77,82],"pre",{"className":78,"code":79,"language":80,"meta":81,"style":81},"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","",[83,84,85,94,101,125,130,136,148,153,159],"code",{"__ignoreMap":81},[86,87,90],"span",{"class":88,"line":89},"line",1,[86,91,93],{"emptyLinePlaceholder":92},true,"\n",[86,95,97],{"class":88,"line":96},2,[86,98,100],{"class":99},"sJ8bj","# 通用命令\n",[86,102,104,108,112,115,118,122],{"class":88,"line":103},3,[86,105,107],{"class":106},"sScJk","sudo",[86,109,111],{"class":110},"sZZnC"," apt",[86,113,114],{"class":110}," install",[86,116,117],{"class":110}," ros-",[86,119,121],{"class":120},"sVt8B","${ROS_DISTRO}",[86,123,124],{"class":110},"-ros-gz\n",[86,126,128],{"class":88,"line":127},4,[86,129,93],{"emptyLinePlaceholder":92},[86,131,133],{"class":88,"line":132},5,[86,134,135],{"class":99},"# Humble版本\n",[86,137,139,141,143,145],{"class":88,"line":138},6,[86,140,107],{"class":106},[86,142,111],{"class":110},[86,144,114],{"class":110},[86,146,147],{"class":110}," ros-humble-ros-gz\n",[86,149,151],{"class":88,"line":150},7,[86,152,93],{"emptyLinePlaceholder":92},[86,154,156],{"class":88,"line":155},8,[86,157,158],{"class":99},"# Jazzy版本\n",[86,160,162,164,166,168],{"class":88,"line":161},9,[86,163,107],{"class":106},[86,165,111],{"class":110},[86,167,114],{"class":110},[86,169,170],{"class":110}," ros-jazzy-ros-gz\n",[17,172,173],{},[174,175],"img",{"alt":81,"src":176},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1705.webp",[17,178,179],{},[21,180,181],{},"运行",[17,183,184],{},"Gazebo 安装完毕之后，可以通过两种方式启动。",[17,186,187],{},"方式1，以Gazebo 的方式启动，指令如下：",[76,189,191],{"className":78,"code":190,"language":80,"meta":81,"style":81},"\n# Humble版本\nign gazebo\n\n# Jazzy版本\ngz sim\n",[83,192,193,197,201,209,213,217],{"__ignoreMap":81},[86,194,195],{"class":88,"line":89},[86,196,93],{"emptyLinePlaceholder":92},[86,198,199],{"class":88,"line":96},[86,200,135],{"class":99},[86,202,203,206],{"class":88,"line":103},[86,204,205],{"class":106},"ign",[86,207,208],{"class":110}," gazebo\n",[86,210,211],{"class":88,"line":127},[86,212,93],{"emptyLinePlaceholder":92},[86,214,215],{"class":88,"line":132},[86,216,158],{"class":99},[86,218,219,222],{"class":88,"line":138},[86,220,221],{"class":106},"gz",[86,223,224],{"class":110}," sim\n",[17,226,227],{},"方式2，以ROS2的方式 启动，指令如下 ：",[76,229,231],{"className":78,"code":230,"language":80,"meta":81,"style":81},"ros2 launch ros_gz_sim gz_sim.launch.py\n",[83,232,233],{"__ignoreMap":81},[86,234,235,238,241,244],{"class":88,"line":89},[86,236,237],{"class":106},"ros2",[86,239,240],{"class":110}," launch",[86,242,243],{"class":110}," ros_gz_sim",[86,245,246],{"class":110}," gz_sim.launch.py\n",[17,248,249,250,253],{},"二者运行结果一致，如下图所示：在弹出窗口中，选择仿真环境然后点击",[83,251,252],{},"run","按钮即可运行。",[17,255,256],{},[174,257],{"alt":81,"src":258},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1706.webp",[17,260,261],{},[21,262,263],{},"界面介绍",[17,265,266],{},"接下来以Empty仿真环境为例，介绍一下Gazebo的界面组成。",[17,268,269],{},[174,270],{"alt":81,"src":271},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1707.webp",[17,273,274],{},"注意：如果你的Gazebo不卡，但是Gazebo巨卡的话，请确认Gazebo是以独显打开的，而不是核显。",[17,276,277],{},"如果不会切换应用显卡，可以直接把核显关闭掉，从混合输出切换为独立显卡输出。",[17,279,280],{},[21,281,282],{},"工具栏",[284,285,286],"ul",{},[287,288,289],"li",{},"顶部的工具栏包含两个按钮，左侧的文件菜单按钮（水平条纹）和右侧的插件按钮（垂直省略号）。",[291,292,293],"ol",{},[287,294,295],{},"文件菜单按钮（水平条纹）",[17,297,298],{},[174,299],{"alt":81,"src":300},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1708.webp",[284,302,303],{},[287,304,305],{},"文件菜单按钮包含将仿真环境保存到文件、保存和加载界面配置以及自定义界面样式等设置。",[291,307,308],{"start":96},[287,309,310],{},"右侧的插件按钮（垂直省略号）",[17,312,313],{},[174,314],{"alt":81,"src":315},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1709.webp",[284,317,318],{},[287,319,320],{},"插件按钮列出了所有可用的插件。点击后会弹出插件列表，向下滚动此列表以查看所有插件。 当选择一个时，其界面将出现在右侧面板中。",[17,322,323],{},[21,324,325],{},"3D视窗",[284,327,328],{},[287,329,330],{},"左上方工具栏包含多种几何体（球体、框体、圆柱体）按钮和变换控件。通过集合体按钮可以直接将盒子、球体或圆柱体模型插入仿真环境。只需单击要插入的形状，然后将其放入环境中。该形状将自动捕捉到地平面上。",[17,332,333,336],{},[174,334],{"alt":81,"src":335},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1710.webp",[174,337],{"alt":81,"src":338},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1711.webp",[284,340,341],{},[287,342,343],{},"主视图会显示仿真环境，我们可以通过鼠标以不同方式来导航场景，相关操作如下：",[76,345,347],{"className":78,"code":346,"language":80,"meta":81,"style":81},"左键单击：选择实体\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滚轮向前\u002F向后：放大和缩小\n滚轮单击并拖动：旋转场景\n",[83,348,349,354,359,367,372,377,382,390,401,406,412,418,424],{"__ignoreMap":81},[86,350,351],{"class":88,"line":89},[86,352,353],{"class":106},"左键单击：选择实体\n",[86,355,356],{"class":88,"line":96},[86,357,358],{"class":106},"右键单击：打开带有选项的菜单：\n",[86,360,361,364],{"class":88,"line":103},[86,362,363],{"class":106},"   Move",[86,365,366],{"class":110}," to：移动到以实体为中心的场景\n",[86,368,369],{"class":88,"line":127},[86,370,371],{"class":106},"   Follow：选择一个实体让视图保持居中，无论是移动还是平移\n",[86,373,374],{"class":88,"line":132},[86,375,376],{"class":106},"   Remove：从模拟中删除实体\n",[86,378,379],{"class":88,"line":138},[86,380,381],{"class":106},"   Copy：复制实体\n",[86,383,384,387],{"class":88,"line":150},[86,385,386],{"class":106},"   Past:",[86,388,389],{"class":110}," 粘贴实体\n",[86,391,392,395,398],{"class":88,"line":155},[86,393,394],{"class":106},"   View：显示实体的重心（Center",[86,396,397],{"class":110}," of",[86,399,400],{"class":110}," Mass）、碰撞边界（Collisions）、惯性（Inertia）、\n",[86,402,403],{"class":88,"line":161},[86,404,405],{"class":106},"         关节（Joints）、坐标系（Frames）、透明度（Transparent）、线框（Wireframe）等属性\n",[86,407,409],{"class":88,"line":408},10,[86,410,411],{"class":106},"左键单击并拖动：在场景中平移\n",[86,413,415],{"class":88,"line":414},11,[86,416,417],{"class":106},"右键单击并拖动：放大和缩小\n",[86,419,421],{"class":88,"line":420},12,[86,422,423],{"class":106},"滚轮向前\u002F向后：放大和缩小\n",[86,425,427],{"class":88,"line":426},13,[86,428,429],{"class":106},"滚轮单击并拖动：旋转场景\n",[284,431,432],{},[287,433,434],{},"想移动这个球，需要点左上角的移动模式，再左键单击选中物体",[17,436,437],{},[174,438],{"alt":81,"src":439},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1712.webp",[17,441,442],{},[174,443],{"alt":81,"src":444},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1713.webp",[284,446,447],{},[287,448,449],{},"在视窗的底部，从左到右分别是是播放、步长按钮和实时因子（Real-Time Factor，RTF）。点击播放按钮将开始运行仿真环境， 再次点击可以暂停运行。步长按钮用于设置仿真时间的离散单位，可以通过将鼠标悬停在按钮上来自定义步长。实时因子表示仿真运行速度相对于真实时间的比例。",[17,451,452],{},[174,453],{"alt":81,"src":454},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1714.webp",[17,456,457],{},[21,458,459],{},"右侧面板",[17,461,462],{},"右侧面板用于显示插件，当前仿真环境默认包含两个插件：Model和Entity Tree。",[17,464,465],{},[174,466],{"alt":81,"src":467},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1715.webp",[284,469,470,473,476,479],{},[287,471,472],{},"Entity Tree 中会显示仿真环境中的实体列表；",[287,474,475],{},"点击Entity Tree中的实体后，可以在Model中显示该实体的相关信息。",[287,477,478],{},"也可以按住 Ctrl 并单击以选择多个实体；",[287,480,481],{},"还可以右键单击任何插件以打开基本设置或关闭。",[17,483,484],{},[174,485],{"alt":81,"src":486},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1716.webp",[17,488,489],{},"在Gazebo中内置了许多插件，可以点击工具栏的右侧按钮自行添加，比如：可以选择 Grid Config 插件调整世界网格的特征，包括单元格大小、网格位置、单元格计数、或颜色等。",[17,491,492],{},"后期随着应用的深入，也会陆续介绍其他一些插件。",[17,494,495],{},[174,496],{"alt":81,"src":497},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1717.webp",[17,499,500],{},[174,501],{"alt":81,"src":502},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1718.webp",[34,504,506],{"id":505},"与ros2集成","与ROS2集成",[17,508,509],{},"本节将介绍如何实现Ignition Gazebo与ROS2的集成，以实现二者之间的交互，比如，可以通过ROS2的键盘控制节点控制机器人运动，并且在rviz2中显示机器人的里程计(odom)数据。其流程大致如下：",[291,511,512,515,518],{},[287,513,514],{},"启动 Ignition Gazebo 仿真环境；",[287,516,517],{},"通过 ros_gz_bridge 建立 ROS2 与 Ignition Gazebo 的连接；",[287,519,520],{},"启动 ROS2 相关节点实现与 Ignition Gazebo 的数据收发。",[17,522,523],{},"Ignition Gazebo与ROS2的的所有集成实现，基本都遵循上述流程。",[17,525,526],{},[21,527,528],{},"启动仿真环境",[17,530,531,532,535],{},"在 Ignition Gazebo 安装时，已经内置了一些仿真环境，直接启动即可。在此我们可以使用名为",[83,533,534],{},"visualize_lidar.sdf","的仿真文件，该文件对应的仿真环境中包括了差速机器人以及激光雷达的仿真。启动指令如下：",[76,537,539],{"className":78,"code":538,"language":80,"meta":81,"style":81},"ign gazebo -v 4 -r visualize_lidar.sdf\n#或者\ngz sim -v 4 -r visualize_lidar.sdf\n",[83,540,541,561,566],{"__ignoreMap":81},[86,542,543,545,548,552,555,558],{"class":88,"line":89},[86,544,205],{"class":106},[86,546,547],{"class":110}," gazebo",[86,549,551],{"class":550},"sj4cs"," -v",[86,553,554],{"class":550}," 4",[86,556,557],{"class":550}," -r",[86,559,560],{"class":110}," visualize_lidar.sdf\n",[86,562,563],{"class":88,"line":96},[86,564,565],{"class":99},"#或者\n",[86,567,568,570,573,575,577,579],{"class":88,"line":103},[86,569,221],{"class":106},[86,571,572],{"class":110}," sim",[86,574,551],{"class":550},[86,576,554],{"class":550},[86,578,557],{"class":550},[86,580,560],{"class":110},[17,582,583],{},"或者也可以以ROS2 launch的方式启动，指令如下：",[76,585,587],{"className":78,"code":586,"language":80,"meta":81,"style":81},"ros2 launch ros_gz_sim gz_sim.launch.py gz_args:=\"-v 4 -r visualize_lidar.sdf\"\n",[83,588,589],{"__ignoreMap":81},[86,590,591,593,595,597,600],{"class":88,"line":89},[86,592,237],{"class":106},[86,594,240],{"class":110},[86,596,243],{"class":110},[86,598,599],{"class":110}," gz_sim.launch.py",[86,601,602],{"class":110}," gz_args:=\"-v 4 -r visualize_lidar.sdf\"\n",[17,604,605],{},"两种方式本质相同，都是启动了Ignition Gazebo并且加载了visualize_lidar.sdf文件。",[17,607,608],{},[174,609],{"alt":81,"src":610},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1719.webp",[17,612,613],{},[21,614,615],{},"建立连接",[17,617,618,619,622],{},"虽然仿真环境中的机器人已经配置了运动控制插件，可以通过",[83,620,621],{},"\u002Fmodel\u002Fvehicle_blue\u002Fcmd_vel","话题订阅速度指令并运动，但是Gazebo与ROS2中的消息格式并不一致，所以还需要通过ros_gz_bridge这一桥接功能包，实现二者之间消息的转换，调用指令如下：",[76,624,626],{"className":78,"code":625,"language":80,"meta":81,"style":81},"ros2 run ros_gz_bridge parameter_bridge \u002Fmodel\u002Fvehicle_blue\u002Fcmd_vel@geometry_msgs\u002Fmsg\u002FTwist]gz.msgs.Twist\n",[83,627,628],{"__ignoreMap":81},[86,629,630,632,635,638,641],{"class":88,"line":89},[86,631,237],{"class":106},[86,633,634],{"class":110}," run",[86,636,637],{"class":110}," ros_gz_bridge",[86,639,640],{"class":110}," parameter_bridge",[86,642,643],{"class":110}," \u002Fmodel\u002Fvehicle_blue\u002Fcmd_vel@geometry_msgs\u002Fmsg\u002FTwist]gz.msgs.Twist\n",[17,645,646,647,649,650,653,654,657],{},"通过该指令可以将发布在",[83,648,621],{},"话题上的",[83,651,652],{},"geometry_msgs\u002Fmsg\u002FTwist","类型的ROS2消息转换成可以被Gzebo识别的",[83,655,656],{},"gz.msgs.Twist","类型的消息。",[17,659,660],{},[21,661,662],{},"启动ROS2节点",[17,664,665,666,668],{},"启动ROS2的键盘控制节点，并将话题重映射为",[83,667,621],{},"，指令如下：",[76,670,672],{"className":78,"code":671,"language":80,"meta":81,"style":81},"ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r \u002Fcmd_vel:=\u002Fmodel\u002Fvehicle_blue\u002Fcmd_vel\n",[83,673,674],{"__ignoreMap":81},[86,675,676,678,680,683,685,688,690],{"class":88,"line":89},[86,677,237],{"class":106},[86,679,634],{"class":110},[86,681,682],{"class":110}," teleop_twist_keyboard",[86,684,682],{"class":110},[86,686,687],{"class":550}," --ros-args",[86,689,557],{"class":550},[86,691,692],{"class":110}," \u002Fcmd_vel:=\u002Fmodel\u002Fvehicle_blue\u002Fcmd_vel\n",[17,694,695],{},"接下来就可以使用键盘控制机器人运动了。",[17,697,698],{},[174,699],{"alt":81,"src":700},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1720.webp",[34,702,703],{"id":703},"ros_gz_bridge",[17,705,706],{},"ros_gz_bridge是连接ROS2与Gazebo的桥梁，ROS2与Gazebo使用的消息并不兼容，必须通过ros_gz_bridge进行转换。",[17,708,709],{},[21,710,711],{},"ros_gz_bridge使用语法",[17,713,714],{},"ROS2与Gazebo的桥接是通过ros_gz_bridge包中的parameter_bridge节点实现，其使用语法如下：",[76,716,718],{"className":78,"code":717,"language":80,"meta":81,"style":81},"parameter_bridge [\u003Ctopic@ROS2_type@Gz_type> ..]  [\u003Cservice@ROS2_srv_type[@Gz_req_type@Gz_rep_type]> ..]\n",[83,719,720],{"__ignoreMap":81},[86,721,722,725,728,731,734,738],{"class":88,"line":89},[86,723,724],{"class":106},"parameter_bridge",[86,726,727],{"class":120}," [\u003Ctopic@ROS2_type@Gz_type> ",[86,729,730],{"class":110},"..]",[86,732,733],{"class":120},"  [\u003Cservice@ROS2_srv_type[@Gz_req_type@Gz_rep_type]",[86,735,737],{"class":736},"szBVR",">",[86,739,740],{"class":120}," ..]\n",[17,742,743,744,747,748,751],{},"在话题Topic中， ",[21,745,746],{},"第一个@"," 符号是话题名称和消息类型的 ",[21,749,750],{},"分隔符"," 。",[17,753,754],{},"第一个@符号后面是ROS消息类型。",[17,756,757],{},"ROS消息类型后面是@、[或]符号：",[284,759,760,766,772],{},[287,761,762,765],{},[21,763,764],{},"@","  表示双向桥接；",[287,767,768,771],{},[21,769,770],{},"[","  表示从Gazebo到ROS的桥接；",[287,773,774,777],{},[21,775,776],{},"]","  表示从ROS到Gazebo的桥接。",[17,779,780],{},"方向符号后是Gazebo Transport消息类型。",[17,782,783],{},"（两个@不是同一个含义）",[17,785,786,787,789,790,751],{},"在服务Service中， ",[21,788,746],{}," 符号是服务名称和类型的 ",[21,791,750],{},[17,793,794],{},"第一个@符号后面是ROS服务类型。可以选择地包括Gazebo请求和响应类型，在它们之间用@符号分隔。",[17,796,797,800],{},[21,798,799],{},"仅"," 支持将Gazebo服务公开为ROS服务，即ROS服务将请求转发到Gazebo服务，然后将响应转发回ROS客户端。",[17,802,803],{},"双向桥接示例：",[76,805,807],{"className":78,"code":806,"language":80,"meta":81,"style":81},"parameter_bridge \u002Fchatter@std_msgs\u002Fmsg\u002FString@gz.msgs.StringMsg\n",[83,808,809],{"__ignoreMap":81},[86,810,811,813],{"class":88,"line":89},[86,812,724],{"class":106},[86,814,815],{"class":110}," \u002Fchatter@std_msgs\u002Fmsg\u002FString@gz.msgs.StringMsg\n",[17,817,818],{},"从Gazebo到ROS的桥接示例：",[76,820,822],{"className":78,"code":821,"language":80,"meta":81,"style":81},"parameter_bridge \u002Fchatter@std_msgs\u002Fmsg\u002FString[gz.msgs.StringMsg\n",[83,823,824],{"__ignoreMap":81},[86,825,826,828],{"class":88,"line":89},[86,827,724],{"class":106},[86,829,830],{"class":110}," \u002Fchatter@std_msgs\u002Fmsg\u002FString[gz.msgs.StringMsg\n",[17,832,833],{},"从ROS到Gazebo的桥接示例：",[76,835,837],{"className":78,"code":836,"language":80,"meta":81,"style":81},"parameter_bridge \u002Fchatter@std_msgs\u002Fmsg\u002FString]gz.msgs.StringMsg\n",[83,838,839],{"__ignoreMap":81},[86,840,841,843],{"class":88,"line":89},[86,842,724],{"class":106},[86,844,845],{"class":110}," \u002Fchatter@std_msgs\u002Fmsg\u002FString]gz.msgs.StringMsg\n",[17,847,848],{},"服务桥接示例：",[76,850,852],{"className":78,"code":851,"language":80,"meta":81,"style":81},"parameter_bridge \u002Fworld\u002Fdefault\u002Fcontrol@ros_gz_interfaces\u002Fsrv\u002FControlWorld\n或者：\nparameter_bridge \u002Fworld\u002Fdefault\u002Fcontrol@ros_gz_interfaces\u002Fsrv\u002FControlWorld@gz.msgs.WorldControl@gz.msgs.Boolean\n",[83,853,854,861,866],{"__ignoreMap":81},[86,855,856,858],{"class":88,"line":89},[86,857,724],{"class":106},[86,859,860],{"class":110}," \u002Fworld\u002Fdefault\u002Fcontrol@ros_gz_interfaces\u002Fsrv\u002FControlWorld\n",[86,862,863],{"class":88,"line":96},[86,864,865],{"class":106},"或者：\n",[86,867,868,870],{"class":88,"line":103},[86,869,724],{"class":106},[86,871,872],{"class":110}," \u002Fworld\u002Fdefault\u002Fcontrol@ros_gz_interfaces\u002Fsrv\u002FControlWorld@gz.msgs.WorldControl@gz.msgs.Boolean\n",[17,874,875],{},[21,876,877],{},"ros_gz_bridge支持的消息类型",[17,879,880,881,884],{},"以下列出 Jazzy 当前常用和官方文档中列出的部分映射；完整映射以 ",[83,882,883],{},"ros2 run ros_gz_bridge parameter_bridge -h"," 和 ROS2 对应版本的 ros_gz_bridge 文档为准。",[17,886,887],{},"以下是ROS2与Gazebo中话题消息类型对应表：",[889,890,891,905],"table",{},[892,893,894],"thead",{},[895,896,897,902],"tr",{},[898,899,901],"th",{"align":900},"left","ROS2消息类型",[898,903,904],{"align":900},"Gazebo Transport 类型",[906,907,908,917,925,933,941,948,956,964,971,978,984,992,999,1006,1014,1021,1029,1036,1044,1052,1060,1068,1076,1084,1092,1100,1108,1116,1124,1132,1140,1148,1156,1164,1172,1180,1188,1196,1204,1212,1220,1228,1236,1244,1252,1260,1268,1276,1284,1292,1300,1308,1316,1324,1331],"tbody",{},[895,909,910,914],{},[911,912,913],"td",{"align":900},"builtin_interfaces\u002Fmsg\u002FTime",[911,915,916],{"align":900},"gz.msgs.Time",[895,918,919,922],{},[911,920,921],{"align":900},"geometry_msgs\u002Fmsg\u002FPoint",[911,923,924],{"align":900},"gz.msgs.Vector3d",[895,926,927,930],{},[911,928,929],{"align":900},"geometry_msgs\u002Fmsg\u002FPose",[911,931,932],{"align":900},"gz.msgs.Pose",[895,934,935,938],{},[911,936,937],{"align":900},"geometry_msgs\u002Fmsg\u002FPoseArray",[911,939,940],{"align":900},"gz.msgs.Pose_V",[895,942,943,946],{},[911,944,945],{"align":900},"geometry_msgs\u002Fmsg\u002FPoseStamped",[911,947,932],{"align":900},[895,949,950,953],{},[911,951,952],{"align":900},"geometry_msgs\u002Fmsg\u002FPoseWithCovariance",[911,954,955],{"align":900},"gz.msgs.PoseWithCovariance",[895,957,958,961],{},[911,959,960],{"align":900},"geometry_msgs\u002Fmsg\u002FQuaternion",[911,962,963],{"align":900},"gz.msgs.Quaternion",[895,965,966,969],{},[911,967,968],{"align":900},"geometry_msgs\u002Fmsg\u002FTransform",[911,970,932],{"align":900},[895,972,973,976],{},[911,974,975],{"align":900},"geometry_msgs\u002Fmsg\u002FTransformStamped",[911,977,932],{"align":900},[895,979,980,982],{},[911,981,652],{"align":900},[911,983,656],{"align":900},[895,985,986,989],{},[911,987,988],{"align":900},"geometry_msgs\u002Fmsg\u002FTwistWithCovariance",[911,990,991],{"align":900},"gz.msgs.TwistWithCovariance",[895,993,994,997],{},[911,995,996],{"align":900},"geometry_msgs\u002Fmsg\u002FTwistWithCovarianceStamped",[911,998,991],{"align":900},[895,1000,1001,1004],{},[911,1002,1003],{"align":900},"geometry_msgs\u002Fmsg\u002FVector3",[911,1005,924],{"align":900},[895,1007,1008,1011],{},[911,1009,1010],{"align":900},"geometry_msgs\u002Fmsg\u002FWrench",[911,1012,1013],{"align":900},"gz.msgs.Wrench",[895,1015,1016,1019],{},[911,1017,1018],{"align":900},"geometry_msgs\u002Fmsg\u002FWrenchStamped",[911,1020,1013],{"align":900},[895,1022,1023,1026],{},[911,1024,1025],{"align":900},"nav_msgs\u002Fmsg\u002FOdometry",[911,1027,1028],{"align":900},"gz.msgs.Odometry",[895,1030,1031,1033],{},[911,1032,1025],{"align":900},[911,1034,1035],{"align":900},"gz.msgs.OdometryWithCovariance",[895,1037,1038,1041],{},[911,1039,1040],{"align":900},"rcl_interfaces\u002Fmsg\u002FParameterValue",[911,1042,1043],{"align":900},"gz.msgs.Any",[895,1045,1046,1049],{},[911,1047,1048],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FAltimeter",[911,1050,1051],{"align":900},"gz.msgs.Altimeter",[895,1053,1054,1057],{},[911,1055,1056],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FContact",[911,1058,1059],{"align":900},"gz.msgs.Contact",[895,1061,1062,1065],{},[911,1063,1064],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FContacts",[911,1066,1067],{"align":900},"gz.msgs.Contacts",[895,1069,1070,1073],{},[911,1071,1072],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FDataframe",[911,1074,1075],{"align":900},"gz.msgs.Dataframe",[895,1077,1078,1081],{},[911,1079,1080],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FEntity",[911,1082,1083],{"align":900},"gz.msgs.Entity",[895,1085,1086,1089],{},[911,1087,1088],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FFloat32Array",[911,1090,1091],{"align":900},"gz.msgs.Float_V",[895,1093,1094,1097],{},[911,1095,1096],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FGuiCamera",[911,1098,1099],{"align":900},"gz.msgs.GUICamera",[895,1101,1102,1105],{},[911,1103,1104],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FJointWrench",[911,1106,1107],{"align":900},"gz.msgs.JointWrench",[895,1109,1110,1113],{},[911,1111,1112],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FLight",[911,1114,1115],{"align":900},"gz.msgs.Light",[895,1117,1118,1121],{},[911,1119,1120],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FSensorNoise",[911,1122,1123],{"align":900},"gz.msgs.SensorNoise",[895,1125,1126,1129],{},[911,1127,1128],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FStringVec",[911,1130,1131],{"align":900},"gz.msgs.StringMsg_V",[895,1133,1134,1137],{},[911,1135,1136],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FTrackVisual",[911,1138,1139],{"align":900},"gz.msgs.TrackVisual",[895,1141,1142,1145],{},[911,1143,1144],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FVideoRecord",[911,1146,1147],{"align":900},"gz.msgs.VideoRecord",[895,1149,1150,1153],{},[911,1151,1152],{"align":900},"ros_gz_interfaces\u002Fmsg\u002FWorldControl",[911,1154,1155],{"align":900},"gz.msgs.WorldControl",[895,1157,1158,1161],{},[911,1159,1160],{"align":900},"rosgraph_msgs\u002Fmsg\u002FClock*",[911,1162,1163],{"align":900},"gz.msgs.Clock*",[895,1165,1166,1169],{},[911,1167,1168],{"align":900},"sensor_msgs\u002Fmsg\u002FBatteryState",[911,1170,1171],{"align":900},"gz.msgs.BatteryState",[895,1173,1174,1177],{},[911,1175,1176],{"align":900},"sensor_msgs\u002Fmsg\u002FCameraInfo",[911,1178,1179],{"align":900},"gz.msgs.CameraInfo",[895,1181,1182,1185],{},[911,1183,1184],{"align":900},"sensor_msgs\u002Fmsg\u002FFluidPressure",[911,1186,1187],{"align":900},"gz.msgs.FluidPressure",[895,1189,1190,1193],{},[911,1191,1192],{"align":900},"sensor_msgs\u002Fmsg\u002FImage",[911,1194,1195],{"align":900},"gz.msgs.Image",[895,1197,1198,1201],{},[911,1199,1200],{"align":900},"sensor_msgs\u002Fmsg\u002FImu",[911,1202,1203],{"align":900},"gz.msgs.IMU",[895,1205,1206,1209],{},[911,1207,1208],{"align":900},"sensor_msgs\u002Fmsg\u002FJointState",[911,1210,1211],{"align":900},"gz.msgs.Model",[895,1213,1214,1217],{},[911,1215,1216],{"align":900},"sensor_msgs\u002Fmsg\u002FJoy",[911,1218,1219],{"align":900},"gz.msgs.Joy",[895,1221,1222,1225],{},[911,1223,1224],{"align":900},"sensor_msgs\u002Fmsg\u002FLaserScan",[911,1226,1227],{"align":900},"gz.msgs.LaserScan",[895,1229,1230,1233],{},[911,1231,1232],{"align":900},"sensor_msgs\u002Fmsg\u002FMagneticField",[911,1234,1235],{"align":900},"gz.msgs.Magnetometer",[895,1237,1238,1241],{},[911,1239,1240],{"align":900},"sensor_msgs\u002Fmsg\u002FNavSatFix",[911,1242,1243],{"align":900},"gz.msgs.NavSat",[895,1245,1246,1249],{},[911,1247,1248],{"align":900},"sensor_msgs\u002Fmsg\u002FPointCloud2",[911,1250,1251],{"align":900},"gz.msgs.PointCloudPacked",[895,1253,1254,1257],{},[911,1255,1256],{"align":900},"std_msgs\u002Fmsg\u002FBool",[911,1258,1259],{"align":900},"gz.msgs.Boolean",[895,1261,1262,1265],{},[911,1263,1264],{"align":900},"std_msgs\u002Fmsg\u002FColorRGBA",[911,1266,1267],{"align":900},"gz.msgs.Color",[895,1269,1270,1273],{},[911,1271,1272],{"align":900},"std_msgs\u002Fmsg\u002FEmpty",[911,1274,1275],{"align":900},"gz.msgs.Empty",[895,1277,1278,1281],{},[911,1279,1280],{"align":900},"std_msgs\u002Fmsg\u002FFloat32",[911,1282,1283],{"align":900},"gz.msgs.Float",[895,1285,1286,1289],{},[911,1287,1288],{"align":900},"std_msgs\u002Fmsg\u002FFloat64",[911,1290,1291],{"align":900},"gz.msgs.Double",[895,1293,1294,1297],{},[911,1295,1296],{"align":900},"std_msgs\u002Fmsg\u002FHeader",[911,1298,1299],{"align":900},"gz.msgs.Header",[895,1301,1302,1305],{},[911,1303,1304],{"align":900},"std_msgs\u002Fmsg\u002FInt32",[911,1306,1307],{"align":900},"gz.msgs.Int32",[895,1309,1310,1313],{},[911,1311,1312],{"align":900},"std_msgs\u002Fmsg\u002FString",[911,1314,1315],{"align":900},"gz.msgs.StringMsg",[895,1317,1318,1321],{},[911,1319,1320],{"align":900},"std_msgs\u002Fmsg\u002FUInt32",[911,1322,1323],{"align":900},"gz.msgs.UInt32",[895,1325,1326,1329],{},[911,1327,1328],{"align":900},"tf2_msgs\u002Fmsg\u002FTFMessage",[911,1330,940],{"align":900},[895,1332,1333,1336],{},[911,1334,1335],{"align":900},"trajectory_msgs\u002Fmsg\u002FJointTrajectory",[911,1337,1338],{"align":900},"gz.msgs.JointTrajectory",[17,1340,1341],{},"还有一些增补的类型",[889,1343,1344,1353],{},[892,1345,1346],{},[895,1347,1348,1351],{},[898,1349,1350],{},"ROS 2 消息类型",[898,1352,904],{},[906,1354,1355,1363,1370,1377,1384,1392,1400,1408,1416,1424,1431,1439,1446,1454,1462,1470],{},[895,1356,1357,1360],{},[911,1358,1359],{},"actuator_msgs\u002Fmsg\u002FActuators",[911,1361,1362],{},"gz.msgs.Actuators",[895,1364,1365,1368],{},[911,1366,1367],{},"geometry_msgs\u002Fmsg\u002FPoseWithCovarianceStamped",[911,1369,955],{},[895,1371,1372,1375],{},[911,1373,1374],{},"geometry_msgs\u002Fmsg\u002FTwistStamped",[911,1376,656],{},[895,1378,1379,1382],{},[911,1380,1381],{},"gps_msgs\u002Fmsg\u002FGPSFix",[911,1383,1243],{},[895,1385,1386,1389],{},[911,1387,1388],{},"marine_acoustic_msgs\u002Fmsg\u002FDvl",[911,1390,1391],{},"gz.msgs.DVLVelocityTracking",[895,1393,1394,1397],{},[911,1395,1396],{},"ros_gz_interfaces\u002Fmsg\u002FEntityWrench",[911,1398,1399],{},"gz.msgs.EntityWrench",[895,1401,1402,1405],{},[911,1403,1404],{},"ros_gz_interfaces\u002Fmsg\u002FLogicalCameraImage",[911,1406,1407],{},"gz.msgs.LogicalCameraImage",[895,1409,1410,1413],{},[911,1411,1412],{},"ros_gz_interfaces\u002Fmsg\u002FLogPlaybackStatistics",[911,1414,1415],{},"gz.msgs.LogPlaybackStatistics",[895,1417,1418,1421],{},[911,1419,1420],{},"ros_gz_interfaces\u002Fmsg\u002FParamVec",[911,1422,1423],{},"gz.msgs.Param",[895,1425,1426,1428],{},[911,1427,1420],{},[911,1429,1430],{},"gz.msgs.Param_V",[895,1432,1433,1436],{},[911,1434,1435],{},"ros_gz_interfaces\u002Fmsg\u002FWorldStatistics",[911,1437,1438],{},"gz.msgs.WorldStatistics",[895,1440,1441,1444],{},[911,1442,1443],{},"sensor_msgs\u002Fmsg\u002FRange",[911,1445,1227],{},[895,1447,1448,1451],{},[911,1449,1450],{},"vision_msgs\u002Fmsg\u002FDetection2D",[911,1452,1453],{},"gz.msgs.AnnotatedAxisAligned2DBox",[895,1455,1456,1459],{},[911,1457,1458],{},"vision_msgs\u002Fmsg\u002FDetection2DArray",[911,1460,1461],{},"gz.msgs.AnnotatedAxisAligned2DBox_V",[895,1463,1464,1467],{},[911,1465,1466],{},"vision_msgs\u002Fmsg\u002FDetection3D",[911,1468,1469],{},"gz.msgs.AnnotatedOriented3DBox",[895,1471,1472,1475],{},[911,1473,1474],{},"vision_msgs\u002Fmsg\u002FDetection3DArray",[911,1476,1477],{},"gz.msgs.AnnotatedOriented3DBox_V",[17,1479,1480],{},"以及服务消息类型对应表：",[889,1482,1483,1495],{},[892,1484,1485],{},[895,1486,1487,1489,1492],{},[898,1488,901],{"align":900},[898,1490,1491],{"align":900},"Gazebo 请求",[898,1493,1494],{"align":900},"Gazebo 响应",[906,1496,1497],{},[895,1498,1499,1502,1504],{},[911,1500,1501],{"align":900},"ros_gz_interfaces\u002Fsrv\u002FControlWorld",[911,1503,1155],{"align":900},[911,1505,1259],{"align":900},[34,1507,1509],{"id":1508},"与ros2集成优化","与ROS2集成优化",[17,1511,1512,1513,1516],{},"在 ",[21,1514,1515],{},"Gazebo与ROS2集成"," 实现中需要在终端中使用不同的指令启动不同模块，该流程实现稍显复杂，本节将介绍如何以launch文件的方式进行优化。",[17,1518,1519],{},[21,1520,1521],{},"新建功能包",[17,1523,1524],{},"请首先调用如下指令创建一个功能包：",[76,1526,1528],{"className":78,"code":1527,"language":80,"meta":81,"style":81},"ros2 pkg create demo_gazebo_sim\n",[83,1529,1530],{"__ignoreMap":81},[86,1531,1532,1534,1537,1540],{"class":88,"line":89},[86,1533,237],{"class":106},[86,1535,1536],{"class":110}," pkg",[86,1538,1539],{"class":110}," create",[86,1541,1542],{"class":110}," demo_gazebo_sim\n",[17,1544,1545],{},[174,1546],{"alt":81,"src":1547},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1721.webp",[17,1549,1550],{},[21,1551,1552],{},"添加目录",[17,1554,1555],{},"在新建的功能包下添加目录： launch、rviz、world。并在CmakeLists.txt中添加如下代码：",[76,1557,1561],{"className":1558,"code":1559,"language":1560,"meta":81,"style":81},"language-cmake shiki shiki-themes github-light github-dark","install(DIRECTORY rviz world launch DESTINATION share\u002F${PROJECT_NAME})\n","cmake",[83,1562,1563],{"__ignoreMap":81},[86,1564,1565,1568,1571,1574],{"class":88,"line":89},[86,1566,1567],{"class":736},"install",[86,1569,1570],{"class":120},"(DIRECTORY rviz world launch DESTINATION share\u002F",[86,1572,1573],{"class":736},"${PROJECT_NAME}",[86,1575,1576],{"class":120},")\n",[17,1578,1579],{},"launch目录用于存储launch文件，rviz目录由于存储rviz2的配置文件，而world目录则用于存储Gazebo仿真环境的相关文件。",[17,1581,1582],{},[174,1583],{"alt":81,"src":1584},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1722.webp",[17,1586,1587],{},[21,1588,1589],{},"rviz目录中生成rviz2的配置文件",[17,1591,1592],{},"启动 rviz2，直接将默认配置保存至当前功能包的rviz目录，保存文件命名为sim.rviz。",[17,1594,1595],{},[174,1596],{"alt":81,"src":1597},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1723.webp",[17,1599,1600],{},[21,1601,1602],{},"复制world文件",[17,1604,1605,1606,1609],{},"在ros安装路径下的worlds目录（",[83,1607,1608],{},"\u002Fopt\u002Fros\u002Fjazzy\u002Fopt\u002Fgz_sim_vendor\u002Fshare\u002Fgz\u002Fgz-sim8\u002Fworlds\u002F","）中复制visualize_lidar.sdf文件至world目录。",[17,1611,1612],{},"如果以上路径下没有，那可能在ign(humble的)的安装路径下：",[17,1614,1615],{},[83,1616,1617],{},"\u002Fusr\u002Fshare\u002Fignition\u002Fignition-gazebo6\u002Fworlds",[17,1619,1620],{},"如果还没有的话，手动查找一下：",[76,1622,1624],{"className":78,"code":1623,"language":80,"meta":81,"style":81},"sudo find \u002F -name \"visualize_lidar.sdf\"\n",[83,1625,1626],{"__ignoreMap":81},[86,1627,1628,1630,1633,1636,1639],{"class":88,"line":89},[86,1629,107],{"class":106},[86,1631,1632],{"class":110}," find",[86,1634,1635],{"class":110}," \u002F",[86,1637,1638],{"class":550}," -name",[86,1640,1641],{"class":110}," \"visualize_lidar.sdf\"\n",[17,1643,1644],{},[174,1645],{"alt":81,"src":1646},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1724.webp",[17,1648,1649],{},[21,1650,1651],{},"编写launch文件",[17,1653,1654],{},"launch目录下新建launch文件gazebo_sim_demo.launch.py，并输入如下内容：",[76,1656,1660],{"className":1657,"code":1658,"language":1659,"meta":81,"style":81},"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=['\u002Fmodel\u002Fvehicle_blue\u002Fcmd_vel@geometry_msgs\u002Fmsg\u002FTwist@gz.msgs.Twist',\n                   '\u002Fmodel\u002Fvehicle_blue\u002Fodometry@nav_msgs\u002Fmsg\u002FOdometry@gz.msgs.Odometry',\n                   '\u002Fmodel\u002Fvehicle_blue\u002Ftf@tf2_msgs\u002Fmsg\u002FTFMessage[gz.msgs.Pose_V',\n                   ],\n        parameters=[{'qos_overrides.\u002Fmodel\u002Fvehicle_blue.subscriber.reliability': 'reliable'}],\n        remappings=[\n                ('\u002Fmodel\u002Fvehicle_blue\u002Ftf', '\u002Ftf'),\n                ('\u002Fmodel\u002Fvehicle_blue\u002Fcmd_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",[83,1661,1662,1670,1674,1687,1691,1703,1715,1726,1738,1750,1762,1766,1778,1782,1794,1799,1816,1831,1853,1858,1869,1875,1893,1905,1923,1929,1935,1940,1946,1957,1971,1983,2010,2026,2031,2036,2042,2052,2065,2078,2093,2101,2109,2115,2137,2148,2165,2180,2186,2197,2202,2207,2216,2222,2242,2255,2261,2267],{"__ignoreMap":81},[86,1663,1664,1667],{"class":88,"line":89},[86,1665,1666],{"class":736},"import",[86,1668,1669],{"class":120}," os\n",[86,1671,1672],{"class":88,"line":96},[86,1673,93],{"emptyLinePlaceholder":92},[86,1675,1676,1679,1682,1684],{"class":88,"line":103},[86,1677,1678],{"class":736},"from",[86,1680,1681],{"class":120}," ament_index_python.packages ",[86,1683,1666],{"class":736},[86,1685,1686],{"class":120}," get_package_share_directory\n",[86,1688,1689],{"class":88,"line":127},[86,1690,93],{"emptyLinePlaceholder":92},[86,1692,1693,1695,1698,1700],{"class":88,"line":132},[86,1694,1678],{"class":736},[86,1696,1697],{"class":120}," launch ",[86,1699,1666],{"class":736},[86,1701,1702],{"class":120}," LaunchDescription\n",[86,1704,1705,1707,1710,1712],{"class":88,"line":138},[86,1706,1678],{"class":736},[86,1708,1709],{"class":120}," launch.actions ",[86,1711,1666],{"class":736},[86,1713,1714],{"class":120}," DeclareLaunchArgument\n",[86,1716,1717,1719,1721,1723],{"class":88,"line":150},[86,1718,1678],{"class":736},[86,1720,1709],{"class":120},[86,1722,1666],{"class":736},[86,1724,1725],{"class":120}," IncludeLaunchDescription\n",[86,1727,1728,1730,1733,1735],{"class":88,"line":155},[86,1729,1678],{"class":736},[86,1731,1732],{"class":120}," launch.conditions ",[86,1734,1666],{"class":736},[86,1736,1737],{"class":120}," IfCondition\n",[86,1739,1740,1742,1745,1747],{"class":88,"line":161},[86,1741,1678],{"class":736},[86,1743,1744],{"class":120}," launch.launch_description_sources ",[86,1746,1666],{"class":736},[86,1748,1749],{"class":120}," PythonLaunchDescriptionSource\n",[86,1751,1752,1754,1757,1759],{"class":88,"line":408},[86,1753,1678],{"class":736},[86,1755,1756],{"class":120}," launch.substitutions ",[86,1758,1666],{"class":736},[86,1760,1761],{"class":120}," LaunchConfiguration\n",[86,1763,1764],{"class":88,"line":414},[86,1765,93],{"emptyLinePlaceholder":92},[86,1767,1768,1770,1773,1775],{"class":88,"line":420},[86,1769,1678],{"class":736},[86,1771,1772],{"class":120}," launch_ros.actions ",[86,1774,1666],{"class":736},[86,1776,1777],{"class":120}," Node\n",[86,1779,1780],{"class":88,"line":426},[86,1781,93],{"emptyLinePlaceholder":92},[86,1783,1785,1788,1791],{"class":88,"line":1784},14,[86,1786,1787],{"class":736},"def",[86,1789,1790],{"class":106}," generate_launch_description",[86,1792,1793],{"class":120},"():\n",[86,1795,1797],{"class":88,"line":1796},15,[86,1798,93],{"emptyLinePlaceholder":92},[86,1800,1802,1805,1808,1811,1814],{"class":88,"line":1801},16,[86,1803,1804],{"class":120},"    this_pkg ",[86,1806,1807],{"class":736},"=",[86,1809,1810],{"class":120}," get_package_share_directory(",[86,1812,1813],{"class":110},"'demo_gazebo_sim'",[86,1815,1576],{"class":120},[86,1817,1819,1822,1824,1826,1829],{"class":88,"line":1818},17,[86,1820,1821],{"class":120},"    pkg_ros_gz_sim ",[86,1823,1807],{"class":736},[86,1825,1810],{"class":120},[86,1827,1828],{"class":110},"'ros_gz_sim'",[86,1830,1576],{"class":120},[86,1832,1834,1837,1839,1842,1845,1848,1851],{"class":88,"line":1833},18,[86,1835,1836],{"class":120},"    world_file ",[86,1838,1807],{"class":736},[86,1840,1841],{"class":120}," os.path.join(this_pkg,",[86,1843,1844],{"class":110},"'world'",[86,1846,1847],{"class":120},",",[86,1849,1850],{"class":110},"'visualize_lidar.sdf'",[86,1852,1576],{"class":120},[86,1854,1856],{"class":88,"line":1855},19,[86,1857,93],{"emptyLinePlaceholder":92},[86,1859,1861,1864,1866],{"class":88,"line":1860},20,[86,1862,1863],{"class":120},"    gz_sim ",[86,1865,1807],{"class":736},[86,1867,1868],{"class":120}," IncludeLaunchDescription(\n",[86,1870,1872],{"class":88,"line":1871},21,[86,1873,1874],{"class":120},"        PythonLaunchDescriptionSource(\n",[86,1876,1878,1881,1884,1887,1890],{"class":88,"line":1877},22,[86,1879,1880],{"class":120},"            os.path.join(pkg_ros_gz_sim, ",[86,1882,1883],{"class":110},"'launch'",[86,1885,1886],{"class":120},", ",[86,1888,1889],{"class":110},"'gz_sim.launch.py'",[86,1891,1892],{"class":120},")),\n",[86,1894,1896,1900,1902],{"class":88,"line":1895},23,[86,1897,1899],{"class":1898},"s4XuR","        launch_arguments",[86,1901,1807],{"class":736},[86,1903,1904],{"class":120},"{\n",[86,1906,1908,1911,1914,1917,1920],{"class":88,"line":1907},24,[86,1909,1910],{"class":110},"            'gz_args'",[86,1912,1913],{"class":120},": ",[86,1915,1916],{"class":110},"'-r '",[86,1918,1919],{"class":736}," +",[86,1921,1922],{"class":120}," world_file\n",[86,1924,1926],{"class":88,"line":1925},25,[86,1927,1928],{"class":120},"        }.items(),\n",[86,1930,1932],{"class":88,"line":1931},26,[86,1933,1934],{"class":120},"    )\n",[86,1936,1938],{"class":88,"line":1937},27,[86,1939,93],{"emptyLinePlaceholder":92},[86,1941,1943],{"class":88,"line":1942},28,[86,1944,1945],{"class":99},"    # RViz\n",[86,1947,1949,1952,1954],{"class":88,"line":1948},29,[86,1950,1951],{"class":120},"    rviz ",[86,1953,1807],{"class":736},[86,1955,1956],{"class":120}," Node(\n",[86,1958,1960,1963,1965,1968],{"class":88,"line":1959},30,[86,1961,1962],{"class":1898},"       package",[86,1964,1807],{"class":736},[86,1966,1967],{"class":110},"'rviz2'",[86,1969,1970],{"class":120},",\n",[86,1972,1974,1977,1979,1981],{"class":88,"line":1973},31,[86,1975,1976],{"class":1898},"       executable",[86,1978,1807],{"class":736},[86,1980,1967],{"class":110},[86,1982,1970],{"class":120},[86,1984,1986,1989,1991,1993,1996,1999,2002,2004,2007],{"class":88,"line":1985},32,[86,1987,1988],{"class":1898},"       arguments",[86,1990,1807],{"class":736},[86,1992,770],{"class":120},[86,1994,1995],{"class":110},"'-d'",[86,1997,1998],{"class":120},", os.path.join(this_pkg, ",[86,2000,2001],{"class":110},"'rviz'",[86,2003,1886],{"class":120},[86,2005,2006],{"class":110},"'sim.rviz'",[86,2008,2009],{"class":120},")],\n",[86,2011,2013,2016,2018,2021,2023],{"class":88,"line":2012},33,[86,2014,2015],{"class":1898},"       condition",[86,2017,1807],{"class":736},[86,2019,2020],{"class":120},"IfCondition(LaunchConfiguration(",[86,2022,2001],{"class":110},[86,2024,2025],{"class":120},"))\n",[86,2027,2029],{"class":88,"line":2028},34,[86,2030,1934],{"class":120},[86,2032,2034],{"class":88,"line":2033},35,[86,2035,93],{"emptyLinePlaceholder":92},[86,2037,2039],{"class":88,"line":2038},36,[86,2040,2041],{"class":99},"    # Bridge\n",[86,2043,2045,2048,2050],{"class":88,"line":2044},37,[86,2046,2047],{"class":120},"    bridge ",[86,2049,1807],{"class":736},[86,2051,1956],{"class":120},[86,2053,2055,2058,2060,2063],{"class":88,"line":2054},38,[86,2056,2057],{"class":1898},"        package",[86,2059,1807],{"class":736},[86,2061,2062],{"class":110},"'ros_gz_bridge'",[86,2064,1970],{"class":120},[86,2066,2068,2071,2073,2076],{"class":88,"line":2067},39,[86,2069,2070],{"class":1898},"        executable",[86,2072,1807],{"class":736},[86,2074,2075],{"class":110},"'parameter_bridge'",[86,2077,1970],{"class":120},[86,2079,2081,2084,2086,2088,2091],{"class":88,"line":2080},40,[86,2082,2083],{"class":1898},"        arguments",[86,2085,1807],{"class":736},[86,2087,770],{"class":120},[86,2089,2090],{"class":110},"'\u002Fmodel\u002Fvehicle_blue\u002Fcmd_vel@geometry_msgs\u002Fmsg\u002FTwist@gz.msgs.Twist'",[86,2092,1970],{"class":120},[86,2094,2096,2099],{"class":88,"line":2095},41,[86,2097,2098],{"class":110},"                   '\u002Fmodel\u002Fvehicle_blue\u002Fodometry@nav_msgs\u002Fmsg\u002FOdometry@gz.msgs.Odometry'",[86,2100,1970],{"class":120},[86,2102,2104,2107],{"class":88,"line":2103},42,[86,2105,2106],{"class":110},"                   '\u002Fmodel\u002Fvehicle_blue\u002Ftf@tf2_msgs\u002Fmsg\u002FTFMessage[gz.msgs.Pose_V'",[86,2108,1970],{"class":120},[86,2110,2112],{"class":88,"line":2111},43,[86,2113,2114],{"class":120},"                   ],\n",[86,2116,2118,2121,2123,2126,2129,2131,2134],{"class":88,"line":2117},44,[86,2119,2120],{"class":1898},"        parameters",[86,2122,1807],{"class":736},[86,2124,2125],{"class":120},"[{",[86,2127,2128],{"class":110},"'qos_overrides.\u002Fmodel\u002Fvehicle_blue.subscriber.reliability'",[86,2130,1913],{"class":120},[86,2132,2133],{"class":110},"'reliable'",[86,2135,2136],{"class":120},"}],\n",[86,2138,2140,2143,2145],{"class":88,"line":2139},45,[86,2141,2142],{"class":1898},"        remappings",[86,2144,1807],{"class":736},[86,2146,2147],{"class":120},"[\n",[86,2149,2151,2154,2157,2159,2162],{"class":88,"line":2150},46,[86,2152,2153],{"class":120},"                (",[86,2155,2156],{"class":110},"'\u002Fmodel\u002Fvehicle_blue\u002Ftf'",[86,2158,1886],{"class":120},[86,2160,2161],{"class":110},"'\u002Ftf'",[86,2163,2164],{"class":120},"),\n",[86,2166,2168,2170,2173,2175,2178],{"class":88,"line":2167},47,[86,2169,2153],{"class":120},[86,2171,2172],{"class":110},"'\u002Fmodel\u002Fvehicle_blue\u002Fcmd_vel'",[86,2174,1847],{"class":120},[86,2176,2177],{"class":110},"'cmd_vel'",[86,2179,1576],{"class":120},[86,2181,2183],{"class":88,"line":2182},48,[86,2184,2185],{"class":120},"            ],\n",[86,2187,2189,2192,2194],{"class":88,"line":2188},49,[86,2190,2191],{"class":1898},"        output",[86,2193,1807],{"class":736},[86,2195,2196],{"class":110},"'screen'\n",[86,2198,2200],{"class":88,"line":2199},50,[86,2201,1934],{"class":120},[86,2203,2205],{"class":88,"line":2204},51,[86,2206,93],{"emptyLinePlaceholder":92},[86,2208,2210,2213],{"class":88,"line":2209},52,[86,2211,2212],{"class":736},"    return",[86,2214,2215],{"class":120}," LaunchDescription([\n",[86,2217,2219],{"class":88,"line":2218},53,[86,2220,2221],{"class":120},"        gz_sim,\n",[86,2223,2225,2228,2230,2232,2235,2237,2240],{"class":88,"line":2224},54,[86,2226,2227],{"class":120},"        DeclareLaunchArgument(",[86,2229,2001],{"class":110},[86,2231,1886],{"class":120},[86,2233,2234],{"class":1898},"default_value",[86,2236,1807],{"class":736},[86,2238,2239],{"class":110},"'true'",[86,2241,1970],{"class":120},[86,2243,2245,2248,2250,2253],{"class":88,"line":2244},55,[86,2246,2247],{"class":1898},"                              description",[86,2249,1807],{"class":736},[86,2251,2252],{"class":110},"'Open RViz.'",[86,2254,2164],{"class":120},[86,2256,2258],{"class":88,"line":2257},56,[86,2259,2260],{"class":120},"        bridge,\n",[86,2262,2264],{"class":88,"line":2263},57,[86,2265,2266],{"class":120},"        rviz\n",[86,2268,2270],{"class":88,"line":2269},58,[86,2271,2272],{"class":120},"    ])\n",[17,2274,2275],{},"该launch文件中，启动了Ignition Gazebo仿真环境、通过ros_gz_bridge建立了仿真与ROS2的连接，并且启动了rviz2节点。其中建立连接时，实现了速度指令、里程计以及坐标变换等消息的转换。",[17,2277,2278],{},[174,2279],{"alt":81,"src":2280},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1725.webp",[17,2282,2283],{},[21,2284,2285],{},"构建",[17,2287,2288],{},"终端中进入当前工作空间，编译功能包：",[76,2290,2292],{"className":78,"code":2291,"language":80,"meta":81,"style":81},"colcon build  --packages-select demo_gazebo_sim\n",[83,2293,2294],{"__ignoreMap":81},[86,2295,2296,2299,2302,2305],{"class":88,"line":89},[86,2297,2298],{"class":106},"colcon",[86,2300,2301],{"class":110}," build",[86,2303,2304],{"class":550},"  --packages-select",[86,2306,1542],{"class":110},[17,2308,2309],{},[174,2310],{"alt":81,"src":2311},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1726.webp",[17,2313,2314],{},[21,2315,2316],{},"执行",[17,2318,2319],{},"终端中进入当前工作空间，调用如下指令执行launch文件：",[76,2321,2323],{"className":78,"code":2322,"language":80,"meta":81,"style":81},". install\u002Fsetup.bash\nros2 launch demo_gazebo_sim gazebo_sim_demo.launch.py\n",[83,2324,2325,2333],{"__ignoreMap":81},[86,2326,2327,2330],{"class":88,"line":89},[86,2328,2329],{"class":550},".",[86,2331,2332],{"class":110}," install\u002Fsetup.bash\n",[86,2334,2335,2337,2339,2342],{"class":88,"line":96},[86,2336,237],{"class":106},[86,2338,240],{"class":110},[86,2340,2341],{"class":110}," demo_gazebo_sim",[86,2343,2344],{"class":110}," gazebo_sim_demo.launch.py\n",[17,2346,2347],{},"新开终端，启动键盘控制节点：",[76,2349,2351],{"className":78,"code":2350,"language":80,"meta":81,"style":81},"ros2 run teleop_twist_keyboard teleop_twist_keyboard\n",[83,2352,2353],{"__ignoreMap":81},[86,2354,2355,2357,2359,2361],{"class":88,"line":89},[86,2356,237],{"class":106},[86,2358,634],{"class":110},[86,2360,682],{"class":110},[86,2362,2363],{"class":110}," teleop_twist_keyboard\n",[17,2365,2366],{},"再配置rviz2，",[291,2368,2369,2380,2383],{},[287,2370,2371,2372,2375,2376,2379],{},"将",[83,2373,2374],{},"Fixed Frame","设置为",[83,2377,2378],{},"vehicle_blue\u002Fodom","，",[287,2381,2382],{},"添加TF插件，",[287,2384,2385,2386,2389],{},"添加Odometry插件并将话题设置为",[83,2387,2388],{},"\u002Fmodel\u002Fvehicle_blue\u002Fodometry","，\n当通过键盘控制发送速度指令时，仿真环境的机器人开始运动，并且在rviz2中可以回显坐标变换以及里程计等消息。",[17,2391,2392],{},[174,2393],{"alt":81,"src":2394},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1727.webp",[34,2396,2398,2399],{"id":2397},"仿真环境创建-sdf文件","仿真环境创建 ",[21,2400,2401],{},"SDF文件",[17,2403,2404],{},"前面几节内容我们使用的是Ignition Gazebo内置的仿真环境，本节开始将介绍如何自行搭建仿真环境。本节案例将仿真一个长10m宽5m的矩形房间。该案例可以先启动Ignition Gazebo以拖拽的方式搭建仿真环境，然后再修改仿真环境对应的文件以调整细节。",[17,2406,2407],{},[21,2408,2409],{},"SDF、URDF 和 Xacro 的关系：",[284,2411,2412,2447],{},[287,2413,2414,2417],{},[21,2415,2416],{},"URDF 和 SDF 的区别：",[284,2418,2419,2425,2431,2437],{},[287,2420,2421,2424],{},[21,2422,2423],{},"复杂性："," SDF 支持的功能更强大，能够描述完整的仿真环境；URDF 更适合定义机器人模型。",[287,2426,2427,2430],{},[21,2428,2429],{},"用途："," URDF 是 ROS 的标准；SDF 是 Gazebo 的标准。",[287,2432,2433,2436],{},[21,2434,2435],{},"物理引擎支持："," URDF 通过插件支持 Gazebo；SDF 原生支持 Gazebo。",[287,2438,2439,2442,2443,2446],{},[21,2440,2441],{},"格式转换："," URDF 可以转换为 SDF（通过 ROS 提供的工具",[83,2444,2445],{},"gz sdf -p","）。",[287,2448,2449,2452],{},[21,2450,2451],{},"Xacro 的作用：",[284,2453,2454],{},[287,2455,2456],{},"Xacro 是 URDF 的生成工具，帮助用户高效编写 URDF 文件，但它与 SDF 无直接关系。",[2458,2459],"hr",{},[17,2461,2462],{},[21,2463,2464],{},"实践建议",[284,2466,2467,2473,2479],{},[287,2468,2469,2472],{},[21,2470,2471],{},"在 Gazebo 仿真中："," 如果你用的是 ROS 2 和 Gazebo，可以直接使用 SDF 文件，功能更强大。",[287,2474,2475,2478],{},[21,2476,2477],{},"在 ROS 中："," 如果主要用于机器人控制和规划，推荐使用 URDF 或由 Xacro 生成的 URDF。",[287,2480,2481,2484],{},[21,2482,2483],{},"两者结合："," 使用 URDF 进行控制，使用 SDF 进行仿真。例如，使用 URDF 定义机器人结构后，借助 Gazebo 插件将其转换为 SDF。",[17,2486,2487],{},[21,2488,2489],{},"示例对比",[17,2491,2492],{},"URDF 示例：",[76,2494,2498],{"className":2495,"code":2496,"language":2497,"meta":81,"style":81},"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\" \u002F>\n      \u003Cinertia ixx=\"1.0\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"1.0\" iyz=\"0.0\" izz=\"1.0\" \u002F>\n    \u003C\u002Finertial>\n  \u003C\u002Flink>\n\u003C\u002Frobot>\n\n","xml",[83,2499,2500,2520,2537,2547,2566,2618,2627,2636],{"__ignoreMap":81},[86,2501,2502,2505,2509,2512,2514,2517],{"class":88,"line":89},[86,2503,2504],{"class":120},"\u003C",[86,2506,2508],{"class":2507},"s9eBZ","robot",[86,2510,2511],{"class":106}," name",[86,2513,1807],{"class":120},[86,2515,2516],{"class":110},"\"example_robot\"",[86,2518,2519],{"class":120},">\n",[86,2521,2522,2525,2528,2530,2532,2535],{"class":88,"line":96},[86,2523,2524],{"class":120},"  \u003C",[86,2526,2527],{"class":2507},"link",[86,2529,2511],{"class":106},[86,2531,1807],{"class":120},[86,2533,2534],{"class":110},"\"base_link\"",[86,2536,2519],{"class":120},[86,2538,2539,2542,2545],{"class":88,"line":103},[86,2540,2541],{"class":120},"    \u003C",[86,2543,2544],{"class":2507},"inertial",[86,2546,2519],{"class":120},[86,2548,2549,2552,2555,2558,2560,2563],{"class":88,"line":127},[86,2550,2551],{"class":120},"      \u003C",[86,2553,2554],{"class":2507},"mass",[86,2556,2557],{"class":106}," value",[86,2559,1807],{"class":120},[86,2561,2562],{"class":110},"\"1.0\"",[86,2564,2565],{"class":120}," \u002F>\n",[86,2567,2568,2570,2573,2576,2578,2580,2583,2585,2588,2591,2593,2595,2598,2600,2602,2605,2607,2609,2612,2614,2616],{"class":88,"line":132},[86,2569,2551],{"class":120},[86,2571,2572],{"class":2507},"inertia",[86,2574,2575],{"class":106}," ixx",[86,2577,1807],{"class":120},[86,2579,2562],{"class":110},[86,2581,2582],{"class":106}," ixy",[86,2584,1807],{"class":120},[86,2586,2587],{"class":110},"\"0.0\"",[86,2589,2590],{"class":106}," ixz",[86,2592,1807],{"class":120},[86,2594,2587],{"class":110},[86,2596,2597],{"class":106}," iyy",[86,2599,1807],{"class":120},[86,2601,2562],{"class":110},[86,2603,2604],{"class":106}," iyz",[86,2606,1807],{"class":120},[86,2608,2587],{"class":110},[86,2610,2611],{"class":106}," izz",[86,2613,1807],{"class":120},[86,2615,2562],{"class":110},[86,2617,2565],{"class":120},[86,2619,2620,2623,2625],{"class":88,"line":138},[86,2621,2622],{"class":120},"    \u003C\u002F",[86,2624,2544],{"class":2507},[86,2626,2519],{"class":120},[86,2628,2629,2632,2634],{"class":88,"line":150},[86,2630,2631],{"class":120},"  \u003C\u002F",[86,2633,2527],{"class":2507},[86,2635,2519],{"class":120},[86,2637,2638,2641,2643],{"class":88,"line":155},[86,2639,2640],{"class":120},"\u003C\u002F",[86,2642,2508],{"class":2507},[86,2644,2519],{"class":120},[17,2646,2647],{},"Xacro 示例（生成 URDF）：",[76,2649,2651],{"className":2495,"code":2650,"language":2497,"meta":81,"style":81},"\u003Cxacro:robot xmlns:xacro=\"http:\u002F\u002Fwww.ros.org\u002Fwiki\u002Fxacro\" name=\"example_robot\">\n  \u003Cxacro:macro name=\"base_link\" params=\"mass\">\n    \u003Clink name=\"base_link\">\n      \u003Cinertial>\n        \u003Cmass value=\"${mass}\" \u002F>\n        \u003Cinertia ixx=\"1.0\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"1.0\" iyz=\"0.0\" izz=\"1.0\" \u002F>\n      \u003C\u002Finertial>\n    \u003C\u002Flink>\n  \u003C\u002Fxacro:macro>\n\n  \u003Cxacro:base_link mass=\"1.0\" \u002F>\n\u003C\u002Fxacro:robot>\n",[83,2652,2653,2676,2699,2713,2721,2737,2781,2790,2798,2806,2810,2826],{"__ignoreMap":81},[86,2654,2655,2657,2660,2663,2665,2668,2670,2672,2674],{"class":88,"line":89},[86,2656,2504],{"class":120},[86,2658,2659],{"class":2507},"xacro:robot",[86,2661,2662],{"class":106}," xmlns:xacro",[86,2664,1807],{"class":120},[86,2666,2667],{"class":110},"\"http:\u002F\u002Fwww.ros.org\u002Fwiki\u002Fxacro\"",[86,2669,2511],{"class":106},[86,2671,1807],{"class":120},[86,2673,2516],{"class":110},[86,2675,2519],{"class":120},[86,2677,2678,2680,2683,2685,2687,2689,2692,2694,2697],{"class":88,"line":96},[86,2679,2524],{"class":120},[86,2681,2682],{"class":2507},"xacro:macro",[86,2684,2511],{"class":106},[86,2686,1807],{"class":120},[86,2688,2534],{"class":110},[86,2690,2691],{"class":106}," params",[86,2693,1807],{"class":120},[86,2695,2696],{"class":110},"\"mass\"",[86,2698,2519],{"class":120},[86,2700,2701,2703,2705,2707,2709,2711],{"class":88,"line":103},[86,2702,2541],{"class":120},[86,2704,2527],{"class":2507},[86,2706,2511],{"class":106},[86,2708,1807],{"class":120},[86,2710,2534],{"class":110},[86,2712,2519],{"class":120},[86,2714,2715,2717,2719],{"class":88,"line":127},[86,2716,2551],{"class":120},[86,2718,2544],{"class":2507},[86,2720,2519],{"class":120},[86,2722,2723,2726,2728,2730,2732,2735],{"class":88,"line":132},[86,2724,2725],{"class":120},"        \u003C",[86,2727,2554],{"class":2507},[86,2729,2557],{"class":106},[86,2731,1807],{"class":120},[86,2733,2734],{"class":110},"\"${mass}\"",[86,2736,2565],{"class":120},[86,2738,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757,2759,2761,2763,2765,2767,2769,2771,2773,2775,2777,2779],{"class":88,"line":138},[86,2740,2725],{"class":120},[86,2742,2572],{"class":2507},[86,2744,2575],{"class":106},[86,2746,1807],{"class":120},[86,2748,2562],{"class":110},[86,2750,2582],{"class":106},[86,2752,1807],{"class":120},[86,2754,2587],{"class":110},[86,2756,2590],{"class":106},[86,2758,1807],{"class":120},[86,2760,2587],{"class":110},[86,2762,2597],{"class":106},[86,2764,1807],{"class":120},[86,2766,2562],{"class":110},[86,2768,2604],{"class":106},[86,2770,1807],{"class":120},[86,2772,2587],{"class":110},[86,2774,2611],{"class":106},[86,2776,1807],{"class":120},[86,2778,2562],{"class":110},[86,2780,2565],{"class":120},[86,2782,2783,2786,2788],{"class":88,"line":150},[86,2784,2785],{"class":120},"      \u003C\u002F",[86,2787,2544],{"class":2507},[86,2789,2519],{"class":120},[86,2791,2792,2794,2796],{"class":88,"line":155},[86,2793,2622],{"class":120},[86,2795,2527],{"class":2507},[86,2797,2519],{"class":120},[86,2799,2800,2802,2804],{"class":88,"line":161},[86,2801,2631],{"class":120},[86,2803,2682],{"class":2507},[86,2805,2519],{"class":120},[86,2807,2808],{"class":88,"line":408},[86,2809,93],{"emptyLinePlaceholder":92},[86,2811,2812,2814,2817,2820,2822,2824],{"class":88,"line":414},[86,2813,2524],{"class":120},[86,2815,2816],{"class":2507},"xacro:base_link",[86,2818,2819],{"class":106}," mass",[86,2821,1807],{"class":120},[86,2823,2562],{"class":110},[86,2825,2565],{"class":120},[86,2827,2828,2830,2832],{"class":88,"line":420},[86,2829,2640],{"class":120},[86,2831,2659],{"class":2507},[86,2833,2519],{"class":120},[17,2835,2836],{},"SDF 示例：",[76,2838,2840],{"className":2495,"code":2839,"language":2497,"meta":81,"style":81},"\u003Csdf version=\"1.6\">\n  \u003Cmodel name=\"example_robot\">\n    \u003Clink name=\"base_link\">\n      \u003Cinertial>\n        \u003Cmass>1.0\u003C\u002Fmass>\n        \u003Cinertia>\n          \u003Cixx>1.0\u003C\u002Fixx>\n          \u003Ciyy>1.0\u003C\u002Fiyy>\n          \u003Cizz>1.0\u003C\u002Fizz>\n        \u003C\u002Finertia>\n      \u003C\u002Finertial>\n    \u003C\u002Flink>\n  \u003C\u002Fmodel>\n\u003C\u002Fsdf>\n\n",[83,2841,2842,2859,2874,2888,2896,2909,2917,2931,2944,2957,2966,2974,2982,2990],{"__ignoreMap":81},[86,2843,2844,2846,2849,2852,2854,2857],{"class":88,"line":89},[86,2845,2504],{"class":120},[86,2847,2848],{"class":2507},"sdf",[86,2850,2851],{"class":106}," version",[86,2853,1807],{"class":120},[86,2855,2856],{"class":110},"\"1.6\"",[86,2858,2519],{"class":120},[86,2860,2861,2863,2866,2868,2870,2872],{"class":88,"line":96},[86,2862,2524],{"class":120},[86,2864,2865],{"class":2507},"model",[86,2867,2511],{"class":106},[86,2869,1807],{"class":120},[86,2871,2516],{"class":110},[86,2873,2519],{"class":120},[86,2875,2876,2878,2880,2882,2884,2886],{"class":88,"line":103},[86,2877,2541],{"class":120},[86,2879,2527],{"class":2507},[86,2881,2511],{"class":106},[86,2883,1807],{"class":120},[86,2885,2534],{"class":110},[86,2887,2519],{"class":120},[86,2889,2890,2892,2894],{"class":88,"line":127},[86,2891,2551],{"class":120},[86,2893,2544],{"class":2507},[86,2895,2519],{"class":120},[86,2897,2898,2900,2902,2905,2907],{"class":88,"line":132},[86,2899,2725],{"class":120},[86,2901,2554],{"class":2507},[86,2903,2904],{"class":120},">1.0\u003C\u002F",[86,2906,2554],{"class":2507},[86,2908,2519],{"class":120},[86,2910,2911,2913,2915],{"class":88,"line":138},[86,2912,2725],{"class":120},[86,2914,2572],{"class":2507},[86,2916,2519],{"class":120},[86,2918,2919,2922,2925,2927,2929],{"class":88,"line":150},[86,2920,2921],{"class":120},"          \u003C",[86,2923,2924],{"class":2507},"ixx",[86,2926,2904],{"class":120},[86,2928,2924],{"class":2507},[86,2930,2519],{"class":120},[86,2932,2933,2935,2938,2940,2942],{"class":88,"line":155},[86,2934,2921],{"class":120},[86,2936,2937],{"class":2507},"iyy",[86,2939,2904],{"class":120},[86,2941,2937],{"class":2507},[86,2943,2519],{"class":120},[86,2945,2946,2948,2951,2953,2955],{"class":88,"line":161},[86,2947,2921],{"class":120},[86,2949,2950],{"class":2507},"izz",[86,2952,2904],{"class":120},[86,2954,2950],{"class":2507},[86,2956,2519],{"class":120},[86,2958,2959,2962,2964],{"class":88,"line":408},[86,2960,2961],{"class":120},"        \u003C\u002F",[86,2963,2572],{"class":2507},[86,2965,2519],{"class":120},[86,2967,2968,2970,2972],{"class":88,"line":414},[86,2969,2785],{"class":120},[86,2971,2544],{"class":2507},[86,2973,2519],{"class":120},[86,2975,2976,2978,2980],{"class":88,"line":420},[86,2977,2622],{"class":120},[86,2979,2527],{"class":2507},[86,2981,2519],{"class":120},[86,2983,2984,2986,2988],{"class":88,"line":426},[86,2985,2631],{"class":120},[86,2987,2865],{"class":2507},[86,2989,2519],{"class":120},[86,2991,2992,2994,2996],{"class":88,"line":1784},[86,2993,2640],{"class":120},[86,2995,2848],{"class":2507},[86,2997,2519],{"class":120},[17,2999,3000],{},[21,3001,3002],{},"1.创建sdf文件",[17,3004,3005,3006,3009],{},"首先请调用指令",[83,3007,3008],{},"gz sim","启动Gazebo，选择Empty仿真环境，然后添加立方体，每一个立方体都对应一堵墙。",[17,3011,3012],{},"上下左右立方体box、box_1、box_2、box_3对应的坐标分别为(5.0,0.0,0.5)、(-5.0,0.0,0.5)、(0.0,2.5,0.5)、(0.0,-2.5,0.5)。",[17,3014,3015],{},"（以上坐标是指X，Y，Z坐标，没有旋转度）",[17,3017,3018],{},"保存文件到功能包的world目录下，保存的文件名称需要以.sdf为后缀，此处文件名为house.sdf。",[17,3020,3021],{},[174,3022],{"alt":81,"src":3023},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1728.webp",[17,3025,3026],{},[174,3027],{"alt":81,"src":3028},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1729.webp",[76,3030,3032],{"className":2495,"code":3031,"language":2497,"meta":81,"style":81},"\u003Csdf version='1.10'>\n  \u003Cworld name='empty'>\n    \u003Cphysics name='1ms' type='ignored'>\n      \u003Cmax_step_size>0.001\u003C\u002Fmax_step_size>\n      \u003Creal_time_factor>1\u003C\u002Freal_time_factor>\n      \u003Creal_time_update_rate>1000\u003C\u002Freal_time_update_rate>\n    \u003C\u002Fphysics>\n    \u003Cplugin name='gz::sim::systems::Physics' filename='gz-sim-physics-system'\u002F>\n    \u003Cplugin name='gz::sim::systems::UserCommands' filename='gz-sim-user-commands-system'\u002F>\n    \u003Cplugin name='gz::sim::systems::SceneBroadcaster' filename='gz-sim-scene-broadcaster-system'\u002F>\n    \u003Cplugin name='gz::sim::systems::Contact' filename='gz-sim-contact-system'\u002F>\n    \u003Cgravity>0 0 -9.8\u003C\u002Fgravity>\n    \u003Cmagnetic_field>6e-06 2.3e-05 -4.2e-05\u003C\u002Fmagnetic_field>\n    \u003Catmosphere type='adiabatic'\u002F>\n    \u003Cscene>\n      \u003Cambient>0.4 0.4 0.4 1\u003C\u002Fambient>\n      \u003Cbackground>0.7 0.7 0.7 1\u003C\u002Fbackground>\n      \u003Cshadows>true\u003C\u002Fshadows>\n    \u003C\u002Fscene>\n    \u003Cmodel name='ground_plane'>\n      \u003Cstatic>true\u003C\u002Fstatic>\n      \u003Clink name='link'>\n        \u003Ccollision name='collision'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C\u002Fnormal>\n              \u003Csize>100 100\u003C\u002Fsize>\n            \u003C\u002Fplane>\n          \u003C\u002Fgeometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code\u002F>\n            \u003C\u002Ffriction>\n            \u003Cbounce\u002F>\n            \u003Ccontact\u002F>\n          \u003C\u002Fsurface>\n        \u003C\u002Fcollision>\n        \u003Cvisual name='visual'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C\u002Fnormal>\n              \u003Csize>100 100\u003C\u002Fsize>\n            \u003C\u002Fplane>\n          \u003C\u002Fgeometry>\n          \u003Cmaterial>\n            \u003Cambient>0.8 0.8 0.8 1\u003C\u002Fambient>\n            \u003Cdiffuse>0.8 0.8 0.8 1\u003C\u002Fdiffuse>\n            \u003Cspecular>0.8 0.8 0.8 1\u003C\u002Fspecular>\n          \u003C\u002Fmaterial>\n        \u003C\u002Fvisual>\n        \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003Cinertial>\n          \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n          \u003Cmass>100\u003C\u002Fmass>\n          \u003Cinertia>\n            \u003Cixx>1\u003C\u002Fixx>\n            \u003Cixy>0\u003C\u002Fixy>\n            \u003Cixz>0\u003C\u002Fixz>\n            \u003Ciyy>1\u003C\u002Fiyy>\n            \u003Ciyz>0\u003C\u002Fiyz>\n            \u003Cizz>1\u003C\u002Fizz>\n          \u003C\u002Finertia>\n        \u003C\u002Finertial>\n        \u003Cenable_wind>false\u003C\u002Fenable_wind>\n      \u003C\u002Flink>\n      \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n      \u003Cself_collide>false\u003C\u002Fself_collide>\n    \u003C\u002Fmodel>\n    \u003Cmodel name='box'>\n      \u003Cpose>5.0 0 0.5 -0 0 0\u003C\u002Fpose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C\u002Fixx>\n            \u003Cixy>0\u003C\u002Fixy>\n            \u003Cixz>0\u003C\u002Fixz>\n            \u003Ciyy>16.666\u003C\u002Fiyy>\n            \u003Ciyz>0\u003C\u002Fiyz>\n            \u003Cizz>16.666\u003C\u002Fizz>\n          \u003C\u002Finertia>\n          \u003Cmass>100\u003C\u002Fmass>\n          \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003C\u002Finertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code\u002F>\n            \u003C\u002Ffriction>\n            \u003Cbounce\u002F>\n            \u003Ccontact\u002F>\n          \u003C\u002Fsurface>\n        \u003C\u002Fcollision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C\u002Fambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C\u002Fdiffuse>\n            \u003Cspecular>1 1 1 1\u003C\u002Fspecular>\n          \u003C\u002Fmaterial>\n        \u003C\u002Fvisual>\n        \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003Cenable_wind>false\u003C\u002Fenable_wind>\n      \u003C\u002Flink>\n      \u003Cstatic>true\u003C\u002Fstatic>\n      \u003Cself_collide>false\u003C\u002Fself_collide>\n    \u003C\u002Fmodel>\n    \u003Cmodel name='box_0'>\n      \u003Cpose>-5.0 -0 0.50000 -0 0 0\u003C\u002Fpose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C\u002Fixx>\n            \u003Cixy>0\u003C\u002Fixy>\n            \u003Cixz>0\u003C\u002Fixz>\n            \u003Ciyy>16.666\u003C\u002Fiyy>\n            \u003Ciyz>0\u003C\u002Fiyz>\n            \u003Cizz>16.666\u003C\u002Fizz>\n          \u003C\u002Finertia>\n          \u003Cmass>100\u003C\u002Fmass>\n          \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003C\u002Finertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code\u002F>\n            \u003C\u002Ffriction>\n            \u003Cbounce\u002F>\n            \u003Ccontact\u002F>\n          \u003C\u002Fsurface>\n        \u003C\u002Fcollision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C\u002Fambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C\u002Fdiffuse>\n            \u003Cspecular>1 1 1 1\u003C\u002Fspecular>\n          \u003C\u002Fmaterial>\n        \u003C\u002Fvisual>\n        \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003Cenable_wind>false\u003C\u002Fenable_wind>\n      \u003C\u002Flink>\n      \u003Cstatic>true\u003C\u002Fstatic>\n      \u003Cself_collide>false\u003C\u002Fself_collide>\n    \u003C\u002Fmodel>\n    \u003Cmodel name='box_1'>\n      \u003Cpose>-0 -2.5 0.5 -0 -0 -0\u003C\u002Fpose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C\u002Fixx>\n            \u003Cixy>0\u003C\u002Fixy>\n            \u003Cixz>0\u003C\u002Fixz>\n            \u003Ciyy>16.666\u003C\u002Fiyy>\n            \u003Ciyz>0\u003C\u002Fiyz>\n            \u003Cizz>16.666\u003C\u002Fizz>\n          \u003C\u002Finertia>\n          \u003Cmass>100\u003C\u002Fmass>\n          \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003C\u002Finertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code\u002F>\n            \u003C\u002Ffriction>\n            \u003Cbounce\u002F>\n            \u003Ccontact\u002F>\n          \u003C\u002Fsurface>\n        \u003C\u002Fcollision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C\u002Fambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C\u002Fdiffuse>\n            \u003Cspecular>1 1 1 1\u003C\u002Fspecular>\n          \u003C\u002Fmaterial>\n        \u003C\u002Fvisual>\n        \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003Cenable_wind>false\u003C\u002Fenable_wind>\n      \u003C\u002Flink>\n      \u003Cstatic>true\u003C\u002Fstatic>\n      \u003Cself_collide>false\u003C\u002Fself_collide>\n    \u003C\u002Fmodel>\n    \u003Cmodel name='box_2'>\n      \u003Cpose>-0 2.5 0.5 0 -0 -0\u003C\u002Fpose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C\u002Fixx>\n            \u003Cixy>0\u003C\u002Fixy>\n            \u003Cixz>0\u003C\u002Fixz>\n            \u003Ciyy>16.666\u003C\u002Fiyy>\n            \u003Ciyz>0\u003C\u002Fiyz>\n            \u003Cizz>16.666\u003C\u002Fizz>\n          \u003C\u002Finertia>\n          \u003Cmass>100\u003C\u002Fmass>\n          \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003C\u002Finertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code\u002F>\n            \u003C\u002Ffriction>\n            \u003Cbounce\u002F>\n            \u003Ccontact\u002F>\n          \u003C\u002Fsurface>\n        \u003C\u002Fcollision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C\u002Fambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C\u002Fdiffuse>\n            \u003Cspecular>1 1 1 1\u003C\u002Fspecular>\n          \u003C\u002Fmaterial>\n        \u003C\u002Fvisual>\n        \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003Cenable_wind>false\u003C\u002Fenable_wind>\n      \u003C\u002Flink>\n      \u003Cstatic>true\u003C\u002Fstatic>\n      \u003Cself_collide>false\u003C\u002Fself_collide>\n    \u003C\u002Fmodel>\n    \u003Clight name='sun' type='directional'>\n      \u003Cpose>0 0 10 0 -0 0\u003C\u002Fpose>\n      \u003Ccast_shadows>true\u003C\u002Fcast_shadows>\n      \u003Cintensity>1\u003C\u002Fintensity>\n      \u003Cdirection>-0.5 0.1 -0.9\u003C\u002Fdirection>\n      \u003Cdiffuse>0.8 0.8 0.8 1\u003C\u002Fdiffuse>\n      \u003Cspecular>0.2 0.2 0.2 1\u003C\u002Fspecular>\n      \u003Cattenuation>\n        \u003Crange>1000\u003C\u002Frange>\n        \u003Clinear>0.01\u003C\u002Flinear>\n        \u003Cconstant>0.90000000000000002\u003C\u002Fconstant>\n        \u003Cquadratic>0.001\u003C\u002Fquadratic>\n      \u003C\u002Fattenuation>\n      \u003Cspot>\n        \u003Cinner_angle>0\u003C\u002Finner_angle>\n        \u003Couter_angle>0\u003C\u002Fouter_angle>\n        \u003Cfalloff>0\u003C\u002Ffalloff>\n      \u003C\u002Fspot>\n    \u003C\u002Flight>\n  \u003C\u002Fworld>\n\u003C\u002Fsdf>\n",[83,3033,3034,3049,3065,3089,3103,3117,3131,3139,3164,3186,3208,3230,3244,3258,3274,3283,3297,3311,3325,3333,3348,3361,3376,3392,3401,3411,3426,3440,3449,3458,3467,3476,3485,3493,3502,3511,3519,3527,3543,3551,3559,3571,3583,3591,3599,3608,3621,3634,3647,3655,3663,3677,3685,3697,3710,3718,3730,3744,3757,3770,3784,3797,3806,3815,3830,3839,3852,3866,3875,3891,3905,3921,3930,3939,3953,3966,3979,3992,4005,4018,4027,4040,4053,4062,4078,4087,4097,4111,4120,4129,4138,4147,4156,4165,4174,4183,4192,4201,4217,4226,4235,4248,4257,4266,4275,4289,4302,4316,4325,4334,4347,4360,4369,4382,4395,4404,4420,4434,4449,4458,4467,4480,4493,4506,4519,4532,4545,4554,4567,4580,4589,4604,4613,4622,4635,4644,4653,4662,4671,4680,4689,4698,4707,4716,4725,4740,4749,4758,4771,4780,4789,4798,4811,4824,4837,4846,4855,4868,4881,4890,4903,4916,4925,4941,4955,4970,4979,4988,5001,5014,5027,5040,5053,5066,5075,5088,5101,5110,5125,5134,5143,5157,5166,5175,5184,5193,5202,5211,5220,5229,5238,5247,5262,5271,5280,5293,5302,5311,5320,5333,5346,5359,5368,5377,5390,5403,5412,5425,5438,5447,5463,5477,5492,5501,5510,5523,5536,5549,5562,5575,5588,5597,5610,5623,5632,5647,5656,5665,5678,5687,5696,5705,5714,5723,5732,5741,5750,5759,5768,5783,5792,5801,5814,5823,5832,5841,5854,5867,5880,5889,5898,5911,5924,5933,5946,5959,5968,5992,6006,6020,6034,6049,6062,6076,6086,6100,6115,6130,6144,6153,6163,6177,6191,6205,6214,6223,6232],{"__ignoreMap":81},[86,3035,3036,3038,3040,3042,3044,3047],{"class":88,"line":89},[86,3037,2504],{"class":120},[86,3039,2848],{"class":2507},[86,3041,2851],{"class":106},[86,3043,1807],{"class":120},[86,3045,3046],{"class":110},"'1.10'",[86,3048,2519],{"class":120},[86,3050,3051,3053,3056,3058,3060,3063],{"class":88,"line":96},[86,3052,2524],{"class":120},[86,3054,3055],{"class":2507},"world",[86,3057,2511],{"class":106},[86,3059,1807],{"class":120},[86,3061,3062],{"class":110},"'empty'",[86,3064,2519],{"class":120},[86,3066,3067,3069,3072,3074,3076,3079,3082,3084,3087],{"class":88,"line":103},[86,3068,2541],{"class":120},[86,3070,3071],{"class":2507},"physics",[86,3073,2511],{"class":106},[86,3075,1807],{"class":120},[86,3077,3078],{"class":110},"'1ms'",[86,3080,3081],{"class":106}," type",[86,3083,1807],{"class":120},[86,3085,3086],{"class":110},"'ignored'",[86,3088,2519],{"class":120},[86,3090,3091,3093,3096,3099,3101],{"class":88,"line":127},[86,3092,2551],{"class":120},[86,3094,3095],{"class":2507},"max_step_size",[86,3097,3098],{"class":120},">0.001\u003C\u002F",[86,3100,3095],{"class":2507},[86,3102,2519],{"class":120},[86,3104,3105,3107,3110,3113,3115],{"class":88,"line":132},[86,3106,2551],{"class":120},[86,3108,3109],{"class":2507},"real_time_factor",[86,3111,3112],{"class":120},">1\u003C\u002F",[86,3114,3109],{"class":2507},[86,3116,2519],{"class":120},[86,3118,3119,3121,3124,3127,3129],{"class":88,"line":138},[86,3120,2551],{"class":120},[86,3122,3123],{"class":2507},"real_time_update_rate",[86,3125,3126],{"class":120},">1000\u003C\u002F",[86,3128,3123],{"class":2507},[86,3130,2519],{"class":120},[86,3132,3133,3135,3137],{"class":88,"line":150},[86,3134,2622],{"class":120},[86,3136,3071],{"class":2507},[86,3138,2519],{"class":120},[86,3140,3141,3143,3146,3148,3150,3153,3156,3158,3161],{"class":88,"line":155},[86,3142,2541],{"class":120},[86,3144,3145],{"class":2507},"plugin",[86,3147,2511],{"class":106},[86,3149,1807],{"class":120},[86,3151,3152],{"class":110},"'gz::sim::systems::Physics'",[86,3154,3155],{"class":106}," filename",[86,3157,1807],{"class":120},[86,3159,3160],{"class":110},"'gz-sim-physics-system'",[86,3162,3163],{"class":120},"\u002F>\n",[86,3165,3166,3168,3170,3172,3174,3177,3179,3181,3184],{"class":88,"line":161},[86,3167,2541],{"class":120},[86,3169,3145],{"class":2507},[86,3171,2511],{"class":106},[86,3173,1807],{"class":120},[86,3175,3176],{"class":110},"'gz::sim::systems::UserCommands'",[86,3178,3155],{"class":106},[86,3180,1807],{"class":120},[86,3182,3183],{"class":110},"'gz-sim-user-commands-system'",[86,3185,3163],{"class":120},[86,3187,3188,3190,3192,3194,3196,3199,3201,3203,3206],{"class":88,"line":408},[86,3189,2541],{"class":120},[86,3191,3145],{"class":2507},[86,3193,2511],{"class":106},[86,3195,1807],{"class":120},[86,3197,3198],{"class":110},"'gz::sim::systems::SceneBroadcaster'",[86,3200,3155],{"class":106},[86,3202,1807],{"class":120},[86,3204,3205],{"class":110},"'gz-sim-scene-broadcaster-system'",[86,3207,3163],{"class":120},[86,3209,3210,3212,3214,3216,3218,3221,3223,3225,3228],{"class":88,"line":414},[86,3211,2541],{"class":120},[86,3213,3145],{"class":2507},[86,3215,2511],{"class":106},[86,3217,1807],{"class":120},[86,3219,3220],{"class":110},"'gz::sim::systems::Contact'",[86,3222,3155],{"class":106},[86,3224,1807],{"class":120},[86,3226,3227],{"class":110},"'gz-sim-contact-system'",[86,3229,3163],{"class":120},[86,3231,3232,3234,3237,3240,3242],{"class":88,"line":420},[86,3233,2541],{"class":120},[86,3235,3236],{"class":2507},"gravity",[86,3238,3239],{"class":120},">0 0 -9.8\u003C\u002F",[86,3241,3236],{"class":2507},[86,3243,2519],{"class":120},[86,3245,3246,3248,3251,3254,3256],{"class":88,"line":426},[86,3247,2541],{"class":120},[86,3249,3250],{"class":2507},"magnetic_field",[86,3252,3253],{"class":120},">6e-06 2.3e-05 -4.2e-05\u003C\u002F",[86,3255,3250],{"class":2507},[86,3257,2519],{"class":120},[86,3259,3260,3262,3265,3267,3269,3272],{"class":88,"line":1784},[86,3261,2541],{"class":120},[86,3263,3264],{"class":2507},"atmosphere",[86,3266,3081],{"class":106},[86,3268,1807],{"class":120},[86,3270,3271],{"class":110},"'adiabatic'",[86,3273,3163],{"class":120},[86,3275,3276,3278,3281],{"class":88,"line":1796},[86,3277,2541],{"class":120},[86,3279,3280],{"class":2507},"scene",[86,3282,2519],{"class":120},[86,3284,3285,3287,3290,3293,3295],{"class":88,"line":1801},[86,3286,2551],{"class":120},[86,3288,3289],{"class":2507},"ambient",[86,3291,3292],{"class":120},">0.4 0.4 0.4 1\u003C\u002F",[86,3294,3289],{"class":2507},[86,3296,2519],{"class":120},[86,3298,3299,3301,3304,3307,3309],{"class":88,"line":1818},[86,3300,2551],{"class":120},[86,3302,3303],{"class":2507},"background",[86,3305,3306],{"class":120},">0.7 0.7 0.7 1\u003C\u002F",[86,3308,3303],{"class":2507},[86,3310,2519],{"class":120},[86,3312,3313,3315,3318,3321,3323],{"class":88,"line":1833},[86,3314,2551],{"class":120},[86,3316,3317],{"class":2507},"shadows",[86,3319,3320],{"class":120},">true\u003C\u002F",[86,3322,3317],{"class":2507},[86,3324,2519],{"class":120},[86,3326,3327,3329,3331],{"class":88,"line":1855},[86,3328,2622],{"class":120},[86,3330,3280],{"class":2507},[86,3332,2519],{"class":120},[86,3334,3335,3337,3339,3341,3343,3346],{"class":88,"line":1860},[86,3336,2541],{"class":120},[86,3338,2865],{"class":2507},[86,3340,2511],{"class":106},[86,3342,1807],{"class":120},[86,3344,3345],{"class":110},"'ground_plane'",[86,3347,2519],{"class":120},[86,3349,3350,3352,3355,3357,3359],{"class":88,"line":1871},[86,3351,2551],{"class":120},[86,3353,3354],{"class":2507},"static",[86,3356,3320],{"class":120},[86,3358,3354],{"class":2507},[86,3360,2519],{"class":120},[86,3362,3363,3365,3367,3369,3371,3374],{"class":88,"line":1877},[86,3364,2551],{"class":120},[86,3366,2527],{"class":2507},[86,3368,2511],{"class":106},[86,3370,1807],{"class":120},[86,3372,3373],{"class":110},"'link'",[86,3375,2519],{"class":120},[86,3377,3378,3380,3383,3385,3387,3390],{"class":88,"line":1895},[86,3379,2725],{"class":120},[86,3381,3382],{"class":2507},"collision",[86,3384,2511],{"class":106},[86,3386,1807],{"class":120},[86,3388,3389],{"class":110},"'collision'",[86,3391,2519],{"class":120},[86,3393,3394,3396,3399],{"class":88,"line":1907},[86,3395,2921],{"class":120},[86,3397,3398],{"class":2507},"geometry",[86,3400,2519],{"class":120},[86,3402,3403,3406,3409],{"class":88,"line":1925},[86,3404,3405],{"class":120},"            \u003C",[86,3407,3408],{"class":2507},"plane",[86,3410,2519],{"class":120},[86,3412,3413,3416,3419,3422,3424],{"class":88,"line":1931},[86,3414,3415],{"class":120},"              \u003C",[86,3417,3418],{"class":2507},"normal",[86,3420,3421],{"class":120},">0 0 1\u003C\u002F",[86,3423,3418],{"class":2507},[86,3425,2519],{"class":120},[86,3427,3428,3430,3433,3436,3438],{"class":88,"line":1937},[86,3429,3415],{"class":120},[86,3431,3432],{"class":2507},"size",[86,3434,3435],{"class":120},">100 100\u003C\u002F",[86,3437,3432],{"class":2507},[86,3439,2519],{"class":120},[86,3441,3442,3445,3447],{"class":88,"line":1942},[86,3443,3444],{"class":120},"            \u003C\u002F",[86,3446,3408],{"class":2507},[86,3448,2519],{"class":120},[86,3450,3451,3454,3456],{"class":88,"line":1948},[86,3452,3453],{"class":120},"          \u003C\u002F",[86,3455,3398],{"class":2507},[86,3457,2519],{"class":120},[86,3459,3460,3462,3465],{"class":88,"line":1959},[86,3461,2921],{"class":120},[86,3463,3464],{"class":2507},"surface",[86,3466,2519],{"class":120},[86,3468,3469,3471,3474],{"class":88,"line":1973},[86,3470,3405],{"class":120},[86,3472,3473],{"class":2507},"friction",[86,3475,2519],{"class":120},[86,3477,3478,3480,3483],{"class":88,"line":1985},[86,3479,3415],{"class":120},[86,3481,3482],{"class":2507},"ode",[86,3484,3163],{"class":120},[86,3486,3487,3489,3491],{"class":88,"line":2012},[86,3488,3444],{"class":120},[86,3490,3473],{"class":2507},[86,3492,2519],{"class":120},[86,3494,3495,3497,3500],{"class":88,"line":2028},[86,3496,3405],{"class":120},[86,3498,3499],{"class":2507},"bounce",[86,3501,3163],{"class":120},[86,3503,3504,3506,3509],{"class":88,"line":2033},[86,3505,3405],{"class":120},[86,3507,3508],{"class":2507},"contact",[86,3510,3163],{"class":120},[86,3512,3513,3515,3517],{"class":88,"line":2038},[86,3514,3453],{"class":120},[86,3516,3464],{"class":2507},[86,3518,2519],{"class":120},[86,3520,3521,3523,3525],{"class":88,"line":2044},[86,3522,2961],{"class":120},[86,3524,3382],{"class":2507},[86,3526,2519],{"class":120},[86,3528,3529,3531,3534,3536,3538,3541],{"class":88,"line":2054},[86,3530,2725],{"class":120},[86,3532,3533],{"class":2507},"visual",[86,3535,2511],{"class":106},[86,3537,1807],{"class":120},[86,3539,3540],{"class":110},"'visual'",[86,3542,2519],{"class":120},[86,3544,3545,3547,3549],{"class":88,"line":2067},[86,3546,2921],{"class":120},[86,3548,3398],{"class":2507},[86,3550,2519],{"class":120},[86,3552,3553,3555,3557],{"class":88,"line":2080},[86,3554,3405],{"class":120},[86,3556,3408],{"class":2507},[86,3558,2519],{"class":120},[86,3560,3561,3563,3565,3567,3569],{"class":88,"line":2095},[86,3562,3415],{"class":120},[86,3564,3418],{"class":2507},[86,3566,3421],{"class":120},[86,3568,3418],{"class":2507},[86,3570,2519],{"class":120},[86,3572,3573,3575,3577,3579,3581],{"class":88,"line":2103},[86,3574,3415],{"class":120},[86,3576,3432],{"class":2507},[86,3578,3435],{"class":120},[86,3580,3432],{"class":2507},[86,3582,2519],{"class":120},[86,3584,3585,3587,3589],{"class":88,"line":2111},[86,3586,3444],{"class":120},[86,3588,3408],{"class":2507},[86,3590,2519],{"class":120},[86,3592,3593,3595,3597],{"class":88,"line":2117},[86,3594,3453],{"class":120},[86,3596,3398],{"class":2507},[86,3598,2519],{"class":120},[86,3600,3601,3603,3606],{"class":88,"line":2139},[86,3602,2921],{"class":120},[86,3604,3605],{"class":2507},"material",[86,3607,2519],{"class":120},[86,3609,3610,3612,3614,3617,3619],{"class":88,"line":2150},[86,3611,3405],{"class":120},[86,3613,3289],{"class":2507},[86,3615,3616],{"class":120},">0.8 0.8 0.8 1\u003C\u002F",[86,3618,3289],{"class":2507},[86,3620,2519],{"class":120},[86,3622,3623,3625,3628,3630,3632],{"class":88,"line":2167},[86,3624,3405],{"class":120},[86,3626,3627],{"class":2507},"diffuse",[86,3629,3616],{"class":120},[86,3631,3627],{"class":2507},[86,3633,2519],{"class":120},[86,3635,3636,3638,3641,3643,3645],{"class":88,"line":2182},[86,3637,3405],{"class":120},[86,3639,3640],{"class":2507},"specular",[86,3642,3616],{"class":120},[86,3644,3640],{"class":2507},[86,3646,2519],{"class":120},[86,3648,3649,3651,3653],{"class":88,"line":2188},[86,3650,3453],{"class":120},[86,3652,3605],{"class":2507},[86,3654,2519],{"class":120},[86,3656,3657,3659,3661],{"class":88,"line":2199},[86,3658,2961],{"class":120},[86,3660,3533],{"class":2507},[86,3662,2519],{"class":120},[86,3664,3665,3667,3670,3673,3675],{"class":88,"line":2204},[86,3666,2725],{"class":120},[86,3668,3669],{"class":2507},"pose",[86,3671,3672],{"class":120},">0 0 0 0 -0 0\u003C\u002F",[86,3674,3669],{"class":2507},[86,3676,2519],{"class":120},[86,3678,3679,3681,3683],{"class":88,"line":2209},[86,3680,2725],{"class":120},[86,3682,2544],{"class":2507},[86,3684,2519],{"class":120},[86,3686,3687,3689,3691,3693,3695],{"class":88,"line":2218},[86,3688,2921],{"class":120},[86,3690,3669],{"class":2507},[86,3692,3672],{"class":120},[86,3694,3669],{"class":2507},[86,3696,2519],{"class":120},[86,3698,3699,3701,3703,3706,3708],{"class":88,"line":2224},[86,3700,2921],{"class":120},[86,3702,2554],{"class":2507},[86,3704,3705],{"class":120},">100\u003C\u002F",[86,3707,2554],{"class":2507},[86,3709,2519],{"class":120},[86,3711,3712,3714,3716],{"class":88,"line":2244},[86,3713,2921],{"class":120},[86,3715,2572],{"class":2507},[86,3717,2519],{"class":120},[86,3719,3720,3722,3724,3726,3728],{"class":88,"line":2257},[86,3721,3405],{"class":120},[86,3723,2924],{"class":2507},[86,3725,3112],{"class":120},[86,3727,2924],{"class":2507},[86,3729,2519],{"class":120},[86,3731,3732,3734,3737,3740,3742],{"class":88,"line":2263},[86,3733,3405],{"class":120},[86,3735,3736],{"class":2507},"ixy",[86,3738,3739],{"class":120},">0\u003C\u002F",[86,3741,3736],{"class":2507},[86,3743,2519],{"class":120},[86,3745,3746,3748,3751,3753,3755],{"class":88,"line":2269},[86,3747,3405],{"class":120},[86,3749,3750],{"class":2507},"ixz",[86,3752,3739],{"class":120},[86,3754,3750],{"class":2507},[86,3756,2519],{"class":120},[86,3758,3760,3762,3764,3766,3768],{"class":88,"line":3759},59,[86,3761,3405],{"class":120},[86,3763,2937],{"class":2507},[86,3765,3112],{"class":120},[86,3767,2937],{"class":2507},[86,3769,2519],{"class":120},[86,3771,3773,3775,3778,3780,3782],{"class":88,"line":3772},60,[86,3774,3405],{"class":120},[86,3776,3777],{"class":2507},"iyz",[86,3779,3739],{"class":120},[86,3781,3777],{"class":2507},[86,3783,2519],{"class":120},[86,3785,3787,3789,3791,3793,3795],{"class":88,"line":3786},61,[86,3788,3405],{"class":120},[86,3790,2950],{"class":2507},[86,3792,3112],{"class":120},[86,3794,2950],{"class":2507},[86,3796,2519],{"class":120},[86,3798,3800,3802,3804],{"class":88,"line":3799},62,[86,3801,3453],{"class":120},[86,3803,2572],{"class":2507},[86,3805,2519],{"class":120},[86,3807,3809,3811,3813],{"class":88,"line":3808},63,[86,3810,2961],{"class":120},[86,3812,2544],{"class":2507},[86,3814,2519],{"class":120},[86,3816,3818,3820,3823,3826,3828],{"class":88,"line":3817},64,[86,3819,2725],{"class":120},[86,3821,3822],{"class":2507},"enable_wind",[86,3824,3825],{"class":120},">false\u003C\u002F",[86,3827,3822],{"class":2507},[86,3829,2519],{"class":120},[86,3831,3833,3835,3837],{"class":88,"line":3832},65,[86,3834,2785],{"class":120},[86,3836,2527],{"class":2507},[86,3838,2519],{"class":120},[86,3840,3842,3844,3846,3848,3850],{"class":88,"line":3841},66,[86,3843,2551],{"class":120},[86,3845,3669],{"class":2507},[86,3847,3672],{"class":120},[86,3849,3669],{"class":2507},[86,3851,2519],{"class":120},[86,3853,3855,3857,3860,3862,3864],{"class":88,"line":3854},67,[86,3856,2551],{"class":120},[86,3858,3859],{"class":2507},"self_collide",[86,3861,3825],{"class":120},[86,3863,3859],{"class":2507},[86,3865,2519],{"class":120},[86,3867,3869,3871,3873],{"class":88,"line":3868},68,[86,3870,2622],{"class":120},[86,3872,2865],{"class":2507},[86,3874,2519],{"class":120},[86,3876,3878,3880,3882,3884,3886,3889],{"class":88,"line":3877},69,[86,3879,2541],{"class":120},[86,3881,2865],{"class":2507},[86,3883,2511],{"class":106},[86,3885,1807],{"class":120},[86,3887,3888],{"class":110},"'box'",[86,3890,2519],{"class":120},[86,3892,3894,3896,3898,3901,3903],{"class":88,"line":3893},70,[86,3895,2551],{"class":120},[86,3897,3669],{"class":2507},[86,3899,3900],{"class":120},">5.0 0 0.5 -0 0 0\u003C\u002F",[86,3902,3669],{"class":2507},[86,3904,2519],{"class":120},[86,3906,3908,3910,3912,3914,3916,3919],{"class":88,"line":3907},71,[86,3909,2551],{"class":120},[86,3911,2527],{"class":2507},[86,3913,2511],{"class":106},[86,3915,1807],{"class":120},[86,3917,3918],{"class":110},"'box_link'",[86,3920,2519],{"class":120},[86,3922,3924,3926,3928],{"class":88,"line":3923},72,[86,3925,2725],{"class":120},[86,3927,2544],{"class":2507},[86,3929,2519],{"class":120},[86,3931,3933,3935,3937],{"class":88,"line":3932},73,[86,3934,2921],{"class":120},[86,3936,2572],{"class":2507},[86,3938,2519],{"class":120},[86,3940,3942,3944,3946,3949,3951],{"class":88,"line":3941},74,[86,3943,3405],{"class":120},[86,3945,2924],{"class":2507},[86,3947,3948],{"class":120},">16.666\u003C\u002F",[86,3950,2924],{"class":2507},[86,3952,2519],{"class":120},[86,3954,3956,3958,3960,3962,3964],{"class":88,"line":3955},75,[86,3957,3405],{"class":120},[86,3959,3736],{"class":2507},[86,3961,3739],{"class":120},[86,3963,3736],{"class":2507},[86,3965,2519],{"class":120},[86,3967,3969,3971,3973,3975,3977],{"class":88,"line":3968},76,[86,3970,3405],{"class":120},[86,3972,3750],{"class":2507},[86,3974,3739],{"class":120},[86,3976,3750],{"class":2507},[86,3978,2519],{"class":120},[86,3980,3982,3984,3986,3988,3990],{"class":88,"line":3981},77,[86,3983,3405],{"class":120},[86,3985,2937],{"class":2507},[86,3987,3948],{"class":120},[86,3989,2937],{"class":2507},[86,3991,2519],{"class":120},[86,3993,3995,3997,3999,4001,4003],{"class":88,"line":3994},78,[86,3996,3405],{"class":120},[86,3998,3777],{"class":2507},[86,4000,3739],{"class":120},[86,4002,3777],{"class":2507},[86,4004,2519],{"class":120},[86,4006,4008,4010,4012,4014,4016],{"class":88,"line":4007},79,[86,4009,3405],{"class":120},[86,4011,2950],{"class":2507},[86,4013,3948],{"class":120},[86,4015,2950],{"class":2507},[86,4017,2519],{"class":120},[86,4019,4021,4023,4025],{"class":88,"line":4020},80,[86,4022,3453],{"class":120},[86,4024,2572],{"class":2507},[86,4026,2519],{"class":120},[86,4028,4030,4032,4034,4036,4038],{"class":88,"line":4029},81,[86,4031,2921],{"class":120},[86,4033,2554],{"class":2507},[86,4035,3705],{"class":120},[86,4037,2554],{"class":2507},[86,4039,2519],{"class":120},[86,4041,4043,4045,4047,4049,4051],{"class":88,"line":4042},82,[86,4044,2921],{"class":120},[86,4046,3669],{"class":2507},[86,4048,3672],{"class":120},[86,4050,3669],{"class":2507},[86,4052,2519],{"class":120},[86,4054,4056,4058,4060],{"class":88,"line":4055},83,[86,4057,2961],{"class":120},[86,4059,2544],{"class":2507},[86,4061,2519],{"class":120},[86,4063,4065,4067,4069,4071,4073,4076],{"class":88,"line":4064},84,[86,4066,2725],{"class":120},[86,4068,3382],{"class":2507},[86,4070,2511],{"class":106},[86,4072,1807],{"class":120},[86,4074,4075],{"class":110},"'box_collision'",[86,4077,2519],{"class":120},[86,4079,4081,4083,4085],{"class":88,"line":4080},85,[86,4082,2921],{"class":120},[86,4084,3398],{"class":2507},[86,4086,2519],{"class":120},[86,4088,4090,4092,4095],{"class":88,"line":4089},86,[86,4091,3405],{"class":120},[86,4093,4094],{"class":2507},"box",[86,4096,2519],{"class":120},[86,4098,4100,4102,4104,4107,4109],{"class":88,"line":4099},87,[86,4101,3415],{"class":120},[86,4103,3432],{"class":2507},[86,4105,4106],{"class":120},">0.1 5 1\u003C\u002F",[86,4108,3432],{"class":2507},[86,4110,2519],{"class":120},[86,4112,4114,4116,4118],{"class":88,"line":4113},88,[86,4115,3444],{"class":120},[86,4117,4094],{"class":2507},[86,4119,2519],{"class":120},[86,4121,4123,4125,4127],{"class":88,"line":4122},89,[86,4124,3453],{"class":120},[86,4126,3398],{"class":2507},[86,4128,2519],{"class":120},[86,4130,4132,4134,4136],{"class":88,"line":4131},90,[86,4133,2921],{"class":120},[86,4135,3464],{"class":2507},[86,4137,2519],{"class":120},[86,4139,4141,4143,4145],{"class":88,"line":4140},91,[86,4142,3405],{"class":120},[86,4144,3473],{"class":2507},[86,4146,2519],{"class":120},[86,4148,4150,4152,4154],{"class":88,"line":4149},92,[86,4151,3415],{"class":120},[86,4153,3482],{"class":2507},[86,4155,3163],{"class":120},[86,4157,4159,4161,4163],{"class":88,"line":4158},93,[86,4160,3444],{"class":120},[86,4162,3473],{"class":2507},[86,4164,2519],{"class":120},[86,4166,4168,4170,4172],{"class":88,"line":4167},94,[86,4169,3405],{"class":120},[86,4171,3499],{"class":2507},[86,4173,3163],{"class":120},[86,4175,4177,4179,4181],{"class":88,"line":4176},95,[86,4178,3405],{"class":120},[86,4180,3508],{"class":2507},[86,4182,3163],{"class":120},[86,4184,4186,4188,4190],{"class":88,"line":4185},96,[86,4187,3453],{"class":120},[86,4189,3464],{"class":2507},[86,4191,2519],{"class":120},[86,4193,4195,4197,4199],{"class":88,"line":4194},97,[86,4196,2961],{"class":120},[86,4198,3382],{"class":2507},[86,4200,2519],{"class":120},[86,4202,4204,4206,4208,4210,4212,4215],{"class":88,"line":4203},98,[86,4205,2725],{"class":120},[86,4207,3533],{"class":2507},[86,4209,2511],{"class":106},[86,4211,1807],{"class":120},[86,4213,4214],{"class":110},"'box_visual'",[86,4216,2519],{"class":120},[86,4218,4220,4222,4224],{"class":88,"line":4219},99,[86,4221,2921],{"class":120},[86,4223,3398],{"class":2507},[86,4225,2519],{"class":120},[86,4227,4229,4231,4233],{"class":88,"line":4228},100,[86,4230,3405],{"class":120},[86,4232,4094],{"class":2507},[86,4234,2519],{"class":120},[86,4236,4238,4240,4242,4244,4246],{"class":88,"line":4237},101,[86,4239,3415],{"class":120},[86,4241,3432],{"class":2507},[86,4243,4106],{"class":120},[86,4245,3432],{"class":2507},[86,4247,2519],{"class":120},[86,4249,4251,4253,4255],{"class":88,"line":4250},102,[86,4252,3444],{"class":120},[86,4254,4094],{"class":2507},[86,4256,2519],{"class":120},[86,4258,4260,4262,4264],{"class":88,"line":4259},103,[86,4261,3453],{"class":120},[86,4263,3398],{"class":2507},[86,4265,2519],{"class":120},[86,4267,4269,4271,4273],{"class":88,"line":4268},104,[86,4270,2921],{"class":120},[86,4272,3605],{"class":2507},[86,4274,2519],{"class":120},[86,4276,4278,4280,4282,4285,4287],{"class":88,"line":4277},105,[86,4279,3405],{"class":120},[86,4281,3289],{"class":2507},[86,4283,4284],{"class":120},">0.3 0.3 0.3 1\u003C\u002F",[86,4286,3289],{"class":2507},[86,4288,2519],{"class":120},[86,4290,4292,4294,4296,4298,4300],{"class":88,"line":4291},106,[86,4293,3405],{"class":120},[86,4295,3627],{"class":2507},[86,4297,3306],{"class":120},[86,4299,3627],{"class":2507},[86,4301,2519],{"class":120},[86,4303,4305,4307,4309,4312,4314],{"class":88,"line":4304},107,[86,4306,3405],{"class":120},[86,4308,3640],{"class":2507},[86,4310,4311],{"class":120},">1 1 1 1\u003C\u002F",[86,4313,3640],{"class":2507},[86,4315,2519],{"class":120},[86,4317,4319,4321,4323],{"class":88,"line":4318},108,[86,4320,3453],{"class":120},[86,4322,3605],{"class":2507},[86,4324,2519],{"class":120},[86,4326,4328,4330,4332],{"class":88,"line":4327},109,[86,4329,2961],{"class":120},[86,4331,3533],{"class":2507},[86,4333,2519],{"class":120},[86,4335,4337,4339,4341,4343,4345],{"class":88,"line":4336},110,[86,4338,2725],{"class":120},[86,4340,3669],{"class":2507},[86,4342,3672],{"class":120},[86,4344,3669],{"class":2507},[86,4346,2519],{"class":120},[86,4348,4350,4352,4354,4356,4358],{"class":88,"line":4349},111,[86,4351,2725],{"class":120},[86,4353,3822],{"class":2507},[86,4355,3825],{"class":120},[86,4357,3822],{"class":2507},[86,4359,2519],{"class":120},[86,4361,4363,4365,4367],{"class":88,"line":4362},112,[86,4364,2785],{"class":120},[86,4366,2527],{"class":2507},[86,4368,2519],{"class":120},[86,4370,4372,4374,4376,4378,4380],{"class":88,"line":4371},113,[86,4373,2551],{"class":120},[86,4375,3354],{"class":2507},[86,4377,3320],{"class":120},[86,4379,3354],{"class":2507},[86,4381,2519],{"class":120},[86,4383,4385,4387,4389,4391,4393],{"class":88,"line":4384},114,[86,4386,2551],{"class":120},[86,4388,3859],{"class":2507},[86,4390,3825],{"class":120},[86,4392,3859],{"class":2507},[86,4394,2519],{"class":120},[86,4396,4398,4400,4402],{"class":88,"line":4397},115,[86,4399,2622],{"class":120},[86,4401,2865],{"class":2507},[86,4403,2519],{"class":120},[86,4405,4407,4409,4411,4413,4415,4418],{"class":88,"line":4406},116,[86,4408,2541],{"class":120},[86,4410,2865],{"class":2507},[86,4412,2511],{"class":106},[86,4414,1807],{"class":120},[86,4416,4417],{"class":110},"'box_0'",[86,4419,2519],{"class":120},[86,4421,4423,4425,4427,4430,4432],{"class":88,"line":4422},117,[86,4424,2551],{"class":120},[86,4426,3669],{"class":2507},[86,4428,4429],{"class":120},">-5.0 -0 0.50000 -0 0 0\u003C\u002F",[86,4431,3669],{"class":2507},[86,4433,2519],{"class":120},[86,4435,4437,4439,4441,4443,4445,4447],{"class":88,"line":4436},118,[86,4438,2551],{"class":120},[86,4440,2527],{"class":2507},[86,4442,2511],{"class":106},[86,4444,1807],{"class":120},[86,4446,3918],{"class":110},[86,4448,2519],{"class":120},[86,4450,4452,4454,4456],{"class":88,"line":4451},119,[86,4453,2725],{"class":120},[86,4455,2544],{"class":2507},[86,4457,2519],{"class":120},[86,4459,4461,4463,4465],{"class":88,"line":4460},120,[86,4462,2921],{"class":120},[86,4464,2572],{"class":2507},[86,4466,2519],{"class":120},[86,4468,4470,4472,4474,4476,4478],{"class":88,"line":4469},121,[86,4471,3405],{"class":120},[86,4473,2924],{"class":2507},[86,4475,3948],{"class":120},[86,4477,2924],{"class":2507},[86,4479,2519],{"class":120},[86,4481,4483,4485,4487,4489,4491],{"class":88,"line":4482},122,[86,4484,3405],{"class":120},[86,4486,3736],{"class":2507},[86,4488,3739],{"class":120},[86,4490,3736],{"class":2507},[86,4492,2519],{"class":120},[86,4494,4496,4498,4500,4502,4504],{"class":88,"line":4495},123,[86,4497,3405],{"class":120},[86,4499,3750],{"class":2507},[86,4501,3739],{"class":120},[86,4503,3750],{"class":2507},[86,4505,2519],{"class":120},[86,4507,4509,4511,4513,4515,4517],{"class":88,"line":4508},124,[86,4510,3405],{"class":120},[86,4512,2937],{"class":2507},[86,4514,3948],{"class":120},[86,4516,2937],{"class":2507},[86,4518,2519],{"class":120},[86,4520,4522,4524,4526,4528,4530],{"class":88,"line":4521},125,[86,4523,3405],{"class":120},[86,4525,3777],{"class":2507},[86,4527,3739],{"class":120},[86,4529,3777],{"class":2507},[86,4531,2519],{"class":120},[86,4533,4535,4537,4539,4541,4543],{"class":88,"line":4534},126,[86,4536,3405],{"class":120},[86,4538,2950],{"class":2507},[86,4540,3948],{"class":120},[86,4542,2950],{"class":2507},[86,4544,2519],{"class":120},[86,4546,4548,4550,4552],{"class":88,"line":4547},127,[86,4549,3453],{"class":120},[86,4551,2572],{"class":2507},[86,4553,2519],{"class":120},[86,4555,4557,4559,4561,4563,4565],{"class":88,"line":4556},128,[86,4558,2921],{"class":120},[86,4560,2554],{"class":2507},[86,4562,3705],{"class":120},[86,4564,2554],{"class":2507},[86,4566,2519],{"class":120},[86,4568,4570,4572,4574,4576,4578],{"class":88,"line":4569},129,[86,4571,2921],{"class":120},[86,4573,3669],{"class":2507},[86,4575,3672],{"class":120},[86,4577,3669],{"class":2507},[86,4579,2519],{"class":120},[86,4581,4583,4585,4587],{"class":88,"line":4582},130,[86,4584,2961],{"class":120},[86,4586,2544],{"class":2507},[86,4588,2519],{"class":120},[86,4590,4592,4594,4596,4598,4600,4602],{"class":88,"line":4591},131,[86,4593,2725],{"class":120},[86,4595,3382],{"class":2507},[86,4597,2511],{"class":106},[86,4599,1807],{"class":120},[86,4601,4075],{"class":110},[86,4603,2519],{"class":120},[86,4605,4607,4609,4611],{"class":88,"line":4606},132,[86,4608,2921],{"class":120},[86,4610,3398],{"class":2507},[86,4612,2519],{"class":120},[86,4614,4616,4618,4620],{"class":88,"line":4615},133,[86,4617,3405],{"class":120},[86,4619,4094],{"class":2507},[86,4621,2519],{"class":120},[86,4623,4625,4627,4629,4631,4633],{"class":88,"line":4624},134,[86,4626,3415],{"class":120},[86,4628,3432],{"class":2507},[86,4630,4106],{"class":120},[86,4632,3432],{"class":2507},[86,4634,2519],{"class":120},[86,4636,4638,4640,4642],{"class":88,"line":4637},135,[86,4639,3444],{"class":120},[86,4641,4094],{"class":2507},[86,4643,2519],{"class":120},[86,4645,4647,4649,4651],{"class":88,"line":4646},136,[86,4648,3453],{"class":120},[86,4650,3398],{"class":2507},[86,4652,2519],{"class":120},[86,4654,4656,4658,4660],{"class":88,"line":4655},137,[86,4657,2921],{"class":120},[86,4659,3464],{"class":2507},[86,4661,2519],{"class":120},[86,4663,4665,4667,4669],{"class":88,"line":4664},138,[86,4666,3405],{"class":120},[86,4668,3473],{"class":2507},[86,4670,2519],{"class":120},[86,4672,4674,4676,4678],{"class":88,"line":4673},139,[86,4675,3415],{"class":120},[86,4677,3482],{"class":2507},[86,4679,3163],{"class":120},[86,4681,4683,4685,4687],{"class":88,"line":4682},140,[86,4684,3444],{"class":120},[86,4686,3473],{"class":2507},[86,4688,2519],{"class":120},[86,4690,4692,4694,4696],{"class":88,"line":4691},141,[86,4693,3405],{"class":120},[86,4695,3499],{"class":2507},[86,4697,3163],{"class":120},[86,4699,4701,4703,4705],{"class":88,"line":4700},142,[86,4702,3405],{"class":120},[86,4704,3508],{"class":2507},[86,4706,3163],{"class":120},[86,4708,4710,4712,4714],{"class":88,"line":4709},143,[86,4711,3453],{"class":120},[86,4713,3464],{"class":2507},[86,4715,2519],{"class":120},[86,4717,4719,4721,4723],{"class":88,"line":4718},144,[86,4720,2961],{"class":120},[86,4722,3382],{"class":2507},[86,4724,2519],{"class":120},[86,4726,4728,4730,4732,4734,4736,4738],{"class":88,"line":4727},145,[86,4729,2725],{"class":120},[86,4731,3533],{"class":2507},[86,4733,2511],{"class":106},[86,4735,1807],{"class":120},[86,4737,4214],{"class":110},[86,4739,2519],{"class":120},[86,4741,4743,4745,4747],{"class":88,"line":4742},146,[86,4744,2921],{"class":120},[86,4746,3398],{"class":2507},[86,4748,2519],{"class":120},[86,4750,4752,4754,4756],{"class":88,"line":4751},147,[86,4753,3405],{"class":120},[86,4755,4094],{"class":2507},[86,4757,2519],{"class":120},[86,4759,4761,4763,4765,4767,4769],{"class":88,"line":4760},148,[86,4762,3415],{"class":120},[86,4764,3432],{"class":2507},[86,4766,4106],{"class":120},[86,4768,3432],{"class":2507},[86,4770,2519],{"class":120},[86,4772,4774,4776,4778],{"class":88,"line":4773},149,[86,4775,3444],{"class":120},[86,4777,4094],{"class":2507},[86,4779,2519],{"class":120},[86,4781,4783,4785,4787],{"class":88,"line":4782},150,[86,4784,3453],{"class":120},[86,4786,3398],{"class":2507},[86,4788,2519],{"class":120},[86,4790,4792,4794,4796],{"class":88,"line":4791},151,[86,4793,2921],{"class":120},[86,4795,3605],{"class":2507},[86,4797,2519],{"class":120},[86,4799,4801,4803,4805,4807,4809],{"class":88,"line":4800},152,[86,4802,3405],{"class":120},[86,4804,3289],{"class":2507},[86,4806,4284],{"class":120},[86,4808,3289],{"class":2507},[86,4810,2519],{"class":120},[86,4812,4814,4816,4818,4820,4822],{"class":88,"line":4813},153,[86,4815,3405],{"class":120},[86,4817,3627],{"class":2507},[86,4819,3306],{"class":120},[86,4821,3627],{"class":2507},[86,4823,2519],{"class":120},[86,4825,4827,4829,4831,4833,4835],{"class":88,"line":4826},154,[86,4828,3405],{"class":120},[86,4830,3640],{"class":2507},[86,4832,4311],{"class":120},[86,4834,3640],{"class":2507},[86,4836,2519],{"class":120},[86,4838,4840,4842,4844],{"class":88,"line":4839},155,[86,4841,3453],{"class":120},[86,4843,3605],{"class":2507},[86,4845,2519],{"class":120},[86,4847,4849,4851,4853],{"class":88,"line":4848},156,[86,4850,2961],{"class":120},[86,4852,3533],{"class":2507},[86,4854,2519],{"class":120},[86,4856,4858,4860,4862,4864,4866],{"class":88,"line":4857},157,[86,4859,2725],{"class":120},[86,4861,3669],{"class":2507},[86,4863,3672],{"class":120},[86,4865,3669],{"class":2507},[86,4867,2519],{"class":120},[86,4869,4871,4873,4875,4877,4879],{"class":88,"line":4870},158,[86,4872,2725],{"class":120},[86,4874,3822],{"class":2507},[86,4876,3825],{"class":120},[86,4878,3822],{"class":2507},[86,4880,2519],{"class":120},[86,4882,4884,4886,4888],{"class":88,"line":4883},159,[86,4885,2785],{"class":120},[86,4887,2527],{"class":2507},[86,4889,2519],{"class":120},[86,4891,4893,4895,4897,4899,4901],{"class":88,"line":4892},160,[86,4894,2551],{"class":120},[86,4896,3354],{"class":2507},[86,4898,3320],{"class":120},[86,4900,3354],{"class":2507},[86,4902,2519],{"class":120},[86,4904,4906,4908,4910,4912,4914],{"class":88,"line":4905},161,[86,4907,2551],{"class":120},[86,4909,3859],{"class":2507},[86,4911,3825],{"class":120},[86,4913,3859],{"class":2507},[86,4915,2519],{"class":120},[86,4917,4919,4921,4923],{"class":88,"line":4918},162,[86,4920,2622],{"class":120},[86,4922,2865],{"class":2507},[86,4924,2519],{"class":120},[86,4926,4928,4930,4932,4934,4936,4939],{"class":88,"line":4927},163,[86,4929,2541],{"class":120},[86,4931,2865],{"class":2507},[86,4933,2511],{"class":106},[86,4935,1807],{"class":120},[86,4937,4938],{"class":110},"'box_1'",[86,4940,2519],{"class":120},[86,4942,4944,4946,4948,4951,4953],{"class":88,"line":4943},164,[86,4945,2551],{"class":120},[86,4947,3669],{"class":2507},[86,4949,4950],{"class":120},">-0 -2.5 0.5 -0 -0 -0\u003C\u002F",[86,4952,3669],{"class":2507},[86,4954,2519],{"class":120},[86,4956,4958,4960,4962,4964,4966,4968],{"class":88,"line":4957},165,[86,4959,2551],{"class":120},[86,4961,2527],{"class":2507},[86,4963,2511],{"class":106},[86,4965,1807],{"class":120},[86,4967,3918],{"class":110},[86,4969,2519],{"class":120},[86,4971,4973,4975,4977],{"class":88,"line":4972},166,[86,4974,2725],{"class":120},[86,4976,2544],{"class":2507},[86,4978,2519],{"class":120},[86,4980,4982,4984,4986],{"class":88,"line":4981},167,[86,4983,2921],{"class":120},[86,4985,2572],{"class":2507},[86,4987,2519],{"class":120},[86,4989,4991,4993,4995,4997,4999],{"class":88,"line":4990},168,[86,4992,3405],{"class":120},[86,4994,2924],{"class":2507},[86,4996,3948],{"class":120},[86,4998,2924],{"class":2507},[86,5000,2519],{"class":120},[86,5002,5004,5006,5008,5010,5012],{"class":88,"line":5003},169,[86,5005,3405],{"class":120},[86,5007,3736],{"class":2507},[86,5009,3739],{"class":120},[86,5011,3736],{"class":2507},[86,5013,2519],{"class":120},[86,5015,5017,5019,5021,5023,5025],{"class":88,"line":5016},170,[86,5018,3405],{"class":120},[86,5020,3750],{"class":2507},[86,5022,3739],{"class":120},[86,5024,3750],{"class":2507},[86,5026,2519],{"class":120},[86,5028,5030,5032,5034,5036,5038],{"class":88,"line":5029},171,[86,5031,3405],{"class":120},[86,5033,2937],{"class":2507},[86,5035,3948],{"class":120},[86,5037,2937],{"class":2507},[86,5039,2519],{"class":120},[86,5041,5043,5045,5047,5049,5051],{"class":88,"line":5042},172,[86,5044,3405],{"class":120},[86,5046,3777],{"class":2507},[86,5048,3739],{"class":120},[86,5050,3777],{"class":2507},[86,5052,2519],{"class":120},[86,5054,5056,5058,5060,5062,5064],{"class":88,"line":5055},173,[86,5057,3405],{"class":120},[86,5059,2950],{"class":2507},[86,5061,3948],{"class":120},[86,5063,2950],{"class":2507},[86,5065,2519],{"class":120},[86,5067,5069,5071,5073],{"class":88,"line":5068},174,[86,5070,3453],{"class":120},[86,5072,2572],{"class":2507},[86,5074,2519],{"class":120},[86,5076,5078,5080,5082,5084,5086],{"class":88,"line":5077},175,[86,5079,2921],{"class":120},[86,5081,2554],{"class":2507},[86,5083,3705],{"class":120},[86,5085,2554],{"class":2507},[86,5087,2519],{"class":120},[86,5089,5091,5093,5095,5097,5099],{"class":88,"line":5090},176,[86,5092,2921],{"class":120},[86,5094,3669],{"class":2507},[86,5096,3672],{"class":120},[86,5098,3669],{"class":2507},[86,5100,2519],{"class":120},[86,5102,5104,5106,5108],{"class":88,"line":5103},177,[86,5105,2961],{"class":120},[86,5107,2544],{"class":2507},[86,5109,2519],{"class":120},[86,5111,5113,5115,5117,5119,5121,5123],{"class":88,"line":5112},178,[86,5114,2725],{"class":120},[86,5116,3382],{"class":2507},[86,5118,2511],{"class":106},[86,5120,1807],{"class":120},[86,5122,4075],{"class":110},[86,5124,2519],{"class":120},[86,5126,5128,5130,5132],{"class":88,"line":5127},179,[86,5129,2921],{"class":120},[86,5131,3398],{"class":2507},[86,5133,2519],{"class":120},[86,5135,5137,5139,5141],{"class":88,"line":5136},180,[86,5138,3405],{"class":120},[86,5140,4094],{"class":2507},[86,5142,2519],{"class":120},[86,5144,5146,5148,5150,5153,5155],{"class":88,"line":5145},181,[86,5147,3415],{"class":120},[86,5149,3432],{"class":2507},[86,5151,5152],{"class":120},">10 0.1 1\u003C\u002F",[86,5154,3432],{"class":2507},[86,5156,2519],{"class":120},[86,5158,5160,5162,5164],{"class":88,"line":5159},182,[86,5161,3444],{"class":120},[86,5163,4094],{"class":2507},[86,5165,2519],{"class":120},[86,5167,5169,5171,5173],{"class":88,"line":5168},183,[86,5170,3453],{"class":120},[86,5172,3398],{"class":2507},[86,5174,2519],{"class":120},[86,5176,5178,5180,5182],{"class":88,"line":5177},184,[86,5179,2921],{"class":120},[86,5181,3464],{"class":2507},[86,5183,2519],{"class":120},[86,5185,5187,5189,5191],{"class":88,"line":5186},185,[86,5188,3405],{"class":120},[86,5190,3473],{"class":2507},[86,5192,2519],{"class":120},[86,5194,5196,5198,5200],{"class":88,"line":5195},186,[86,5197,3415],{"class":120},[86,5199,3482],{"class":2507},[86,5201,3163],{"class":120},[86,5203,5205,5207,5209],{"class":88,"line":5204},187,[86,5206,3444],{"class":120},[86,5208,3473],{"class":2507},[86,5210,2519],{"class":120},[86,5212,5214,5216,5218],{"class":88,"line":5213},188,[86,5215,3405],{"class":120},[86,5217,3499],{"class":2507},[86,5219,3163],{"class":120},[86,5221,5223,5225,5227],{"class":88,"line":5222},189,[86,5224,3405],{"class":120},[86,5226,3508],{"class":2507},[86,5228,3163],{"class":120},[86,5230,5232,5234,5236],{"class":88,"line":5231},190,[86,5233,3453],{"class":120},[86,5235,3464],{"class":2507},[86,5237,2519],{"class":120},[86,5239,5241,5243,5245],{"class":88,"line":5240},191,[86,5242,2961],{"class":120},[86,5244,3382],{"class":2507},[86,5246,2519],{"class":120},[86,5248,5250,5252,5254,5256,5258,5260],{"class":88,"line":5249},192,[86,5251,2725],{"class":120},[86,5253,3533],{"class":2507},[86,5255,2511],{"class":106},[86,5257,1807],{"class":120},[86,5259,4214],{"class":110},[86,5261,2519],{"class":120},[86,5263,5265,5267,5269],{"class":88,"line":5264},193,[86,5266,2921],{"class":120},[86,5268,3398],{"class":2507},[86,5270,2519],{"class":120},[86,5272,5274,5276,5278],{"class":88,"line":5273},194,[86,5275,3405],{"class":120},[86,5277,4094],{"class":2507},[86,5279,2519],{"class":120},[86,5281,5283,5285,5287,5289,5291],{"class":88,"line":5282},195,[86,5284,3415],{"class":120},[86,5286,3432],{"class":2507},[86,5288,5152],{"class":120},[86,5290,3432],{"class":2507},[86,5292,2519],{"class":120},[86,5294,5296,5298,5300],{"class":88,"line":5295},196,[86,5297,3444],{"class":120},[86,5299,4094],{"class":2507},[86,5301,2519],{"class":120},[86,5303,5305,5307,5309],{"class":88,"line":5304},197,[86,5306,3453],{"class":120},[86,5308,3398],{"class":2507},[86,5310,2519],{"class":120},[86,5312,5314,5316,5318],{"class":88,"line":5313},198,[86,5315,2921],{"class":120},[86,5317,3605],{"class":2507},[86,5319,2519],{"class":120},[86,5321,5323,5325,5327,5329,5331],{"class":88,"line":5322},199,[86,5324,3405],{"class":120},[86,5326,3289],{"class":2507},[86,5328,4284],{"class":120},[86,5330,3289],{"class":2507},[86,5332,2519],{"class":120},[86,5334,5336,5338,5340,5342,5344],{"class":88,"line":5335},200,[86,5337,3405],{"class":120},[86,5339,3627],{"class":2507},[86,5341,3306],{"class":120},[86,5343,3627],{"class":2507},[86,5345,2519],{"class":120},[86,5347,5349,5351,5353,5355,5357],{"class":88,"line":5348},201,[86,5350,3405],{"class":120},[86,5352,3640],{"class":2507},[86,5354,4311],{"class":120},[86,5356,3640],{"class":2507},[86,5358,2519],{"class":120},[86,5360,5362,5364,5366],{"class":88,"line":5361},202,[86,5363,3453],{"class":120},[86,5365,3605],{"class":2507},[86,5367,2519],{"class":120},[86,5369,5371,5373,5375],{"class":88,"line":5370},203,[86,5372,2961],{"class":120},[86,5374,3533],{"class":2507},[86,5376,2519],{"class":120},[86,5378,5380,5382,5384,5386,5388],{"class":88,"line":5379},204,[86,5381,2725],{"class":120},[86,5383,3669],{"class":2507},[86,5385,3672],{"class":120},[86,5387,3669],{"class":2507},[86,5389,2519],{"class":120},[86,5391,5393,5395,5397,5399,5401],{"class":88,"line":5392},205,[86,5394,2725],{"class":120},[86,5396,3822],{"class":2507},[86,5398,3825],{"class":120},[86,5400,3822],{"class":2507},[86,5402,2519],{"class":120},[86,5404,5406,5408,5410],{"class":88,"line":5405},206,[86,5407,2785],{"class":120},[86,5409,2527],{"class":2507},[86,5411,2519],{"class":120},[86,5413,5415,5417,5419,5421,5423],{"class":88,"line":5414},207,[86,5416,2551],{"class":120},[86,5418,3354],{"class":2507},[86,5420,3320],{"class":120},[86,5422,3354],{"class":2507},[86,5424,2519],{"class":120},[86,5426,5428,5430,5432,5434,5436],{"class":88,"line":5427},208,[86,5429,2551],{"class":120},[86,5431,3859],{"class":2507},[86,5433,3825],{"class":120},[86,5435,3859],{"class":2507},[86,5437,2519],{"class":120},[86,5439,5441,5443,5445],{"class":88,"line":5440},209,[86,5442,2622],{"class":120},[86,5444,2865],{"class":2507},[86,5446,2519],{"class":120},[86,5448,5450,5452,5454,5456,5458,5461],{"class":88,"line":5449},210,[86,5451,2541],{"class":120},[86,5453,2865],{"class":2507},[86,5455,2511],{"class":106},[86,5457,1807],{"class":120},[86,5459,5460],{"class":110},"'box_2'",[86,5462,2519],{"class":120},[86,5464,5466,5468,5470,5473,5475],{"class":88,"line":5465},211,[86,5467,2551],{"class":120},[86,5469,3669],{"class":2507},[86,5471,5472],{"class":120},">-0 2.5 0.5 0 -0 -0\u003C\u002F",[86,5474,3669],{"class":2507},[86,5476,2519],{"class":120},[86,5478,5480,5482,5484,5486,5488,5490],{"class":88,"line":5479},212,[86,5481,2551],{"class":120},[86,5483,2527],{"class":2507},[86,5485,2511],{"class":106},[86,5487,1807],{"class":120},[86,5489,3918],{"class":110},[86,5491,2519],{"class":120},[86,5493,5495,5497,5499],{"class":88,"line":5494},213,[86,5496,2725],{"class":120},[86,5498,2544],{"class":2507},[86,5500,2519],{"class":120},[86,5502,5504,5506,5508],{"class":88,"line":5503},214,[86,5505,2921],{"class":120},[86,5507,2572],{"class":2507},[86,5509,2519],{"class":120},[86,5511,5513,5515,5517,5519,5521],{"class":88,"line":5512},215,[86,5514,3405],{"class":120},[86,5516,2924],{"class":2507},[86,5518,3948],{"class":120},[86,5520,2924],{"class":2507},[86,5522,2519],{"class":120},[86,5524,5526,5528,5530,5532,5534],{"class":88,"line":5525},216,[86,5527,3405],{"class":120},[86,5529,3736],{"class":2507},[86,5531,3739],{"class":120},[86,5533,3736],{"class":2507},[86,5535,2519],{"class":120},[86,5537,5539,5541,5543,5545,5547],{"class":88,"line":5538},217,[86,5540,3405],{"class":120},[86,5542,3750],{"class":2507},[86,5544,3739],{"class":120},[86,5546,3750],{"class":2507},[86,5548,2519],{"class":120},[86,5550,5552,5554,5556,5558,5560],{"class":88,"line":5551},218,[86,5553,3405],{"class":120},[86,5555,2937],{"class":2507},[86,5557,3948],{"class":120},[86,5559,2937],{"class":2507},[86,5561,2519],{"class":120},[86,5563,5565,5567,5569,5571,5573],{"class":88,"line":5564},219,[86,5566,3405],{"class":120},[86,5568,3777],{"class":2507},[86,5570,3739],{"class":120},[86,5572,3777],{"class":2507},[86,5574,2519],{"class":120},[86,5576,5578,5580,5582,5584,5586],{"class":88,"line":5577},220,[86,5579,3405],{"class":120},[86,5581,2950],{"class":2507},[86,5583,3948],{"class":120},[86,5585,2950],{"class":2507},[86,5587,2519],{"class":120},[86,5589,5591,5593,5595],{"class":88,"line":5590},221,[86,5592,3453],{"class":120},[86,5594,2572],{"class":2507},[86,5596,2519],{"class":120},[86,5598,5600,5602,5604,5606,5608],{"class":88,"line":5599},222,[86,5601,2921],{"class":120},[86,5603,2554],{"class":2507},[86,5605,3705],{"class":120},[86,5607,2554],{"class":2507},[86,5609,2519],{"class":120},[86,5611,5613,5615,5617,5619,5621],{"class":88,"line":5612},223,[86,5614,2921],{"class":120},[86,5616,3669],{"class":2507},[86,5618,3672],{"class":120},[86,5620,3669],{"class":2507},[86,5622,2519],{"class":120},[86,5624,5626,5628,5630],{"class":88,"line":5625},224,[86,5627,2961],{"class":120},[86,5629,2544],{"class":2507},[86,5631,2519],{"class":120},[86,5633,5635,5637,5639,5641,5643,5645],{"class":88,"line":5634},225,[86,5636,2725],{"class":120},[86,5638,3382],{"class":2507},[86,5640,2511],{"class":106},[86,5642,1807],{"class":120},[86,5644,4075],{"class":110},[86,5646,2519],{"class":120},[86,5648,5650,5652,5654],{"class":88,"line":5649},226,[86,5651,2921],{"class":120},[86,5653,3398],{"class":2507},[86,5655,2519],{"class":120},[86,5657,5659,5661,5663],{"class":88,"line":5658},227,[86,5660,3405],{"class":120},[86,5662,4094],{"class":2507},[86,5664,2519],{"class":120},[86,5666,5668,5670,5672,5674,5676],{"class":88,"line":5667},228,[86,5669,3415],{"class":120},[86,5671,3432],{"class":2507},[86,5673,5152],{"class":120},[86,5675,3432],{"class":2507},[86,5677,2519],{"class":120},[86,5679,5681,5683,5685],{"class":88,"line":5680},229,[86,5682,3444],{"class":120},[86,5684,4094],{"class":2507},[86,5686,2519],{"class":120},[86,5688,5690,5692,5694],{"class":88,"line":5689},230,[86,5691,3453],{"class":120},[86,5693,3398],{"class":2507},[86,5695,2519],{"class":120},[86,5697,5699,5701,5703],{"class":88,"line":5698},231,[86,5700,2921],{"class":120},[86,5702,3464],{"class":2507},[86,5704,2519],{"class":120},[86,5706,5708,5710,5712],{"class":88,"line":5707},232,[86,5709,3405],{"class":120},[86,5711,3473],{"class":2507},[86,5713,2519],{"class":120},[86,5715,5717,5719,5721],{"class":88,"line":5716},233,[86,5718,3415],{"class":120},[86,5720,3482],{"class":2507},[86,5722,3163],{"class":120},[86,5724,5726,5728,5730],{"class":88,"line":5725},234,[86,5727,3444],{"class":120},[86,5729,3473],{"class":2507},[86,5731,2519],{"class":120},[86,5733,5735,5737,5739],{"class":88,"line":5734},235,[86,5736,3405],{"class":120},[86,5738,3499],{"class":2507},[86,5740,3163],{"class":120},[86,5742,5744,5746,5748],{"class":88,"line":5743},236,[86,5745,3405],{"class":120},[86,5747,3508],{"class":2507},[86,5749,3163],{"class":120},[86,5751,5753,5755,5757],{"class":88,"line":5752},237,[86,5754,3453],{"class":120},[86,5756,3464],{"class":2507},[86,5758,2519],{"class":120},[86,5760,5762,5764,5766],{"class":88,"line":5761},238,[86,5763,2961],{"class":120},[86,5765,3382],{"class":2507},[86,5767,2519],{"class":120},[86,5769,5771,5773,5775,5777,5779,5781],{"class":88,"line":5770},239,[86,5772,2725],{"class":120},[86,5774,3533],{"class":2507},[86,5776,2511],{"class":106},[86,5778,1807],{"class":120},[86,5780,4214],{"class":110},[86,5782,2519],{"class":120},[86,5784,5786,5788,5790],{"class":88,"line":5785},240,[86,5787,2921],{"class":120},[86,5789,3398],{"class":2507},[86,5791,2519],{"class":120},[86,5793,5795,5797,5799],{"class":88,"line":5794},241,[86,5796,3405],{"class":120},[86,5798,4094],{"class":2507},[86,5800,2519],{"class":120},[86,5802,5804,5806,5808,5810,5812],{"class":88,"line":5803},242,[86,5805,3415],{"class":120},[86,5807,3432],{"class":2507},[86,5809,5152],{"class":120},[86,5811,3432],{"class":2507},[86,5813,2519],{"class":120},[86,5815,5817,5819,5821],{"class":88,"line":5816},243,[86,5818,3444],{"class":120},[86,5820,4094],{"class":2507},[86,5822,2519],{"class":120},[86,5824,5826,5828,5830],{"class":88,"line":5825},244,[86,5827,3453],{"class":120},[86,5829,3398],{"class":2507},[86,5831,2519],{"class":120},[86,5833,5835,5837,5839],{"class":88,"line":5834},245,[86,5836,2921],{"class":120},[86,5838,3605],{"class":2507},[86,5840,2519],{"class":120},[86,5842,5844,5846,5848,5850,5852],{"class":88,"line":5843},246,[86,5845,3405],{"class":120},[86,5847,3289],{"class":2507},[86,5849,4284],{"class":120},[86,5851,3289],{"class":2507},[86,5853,2519],{"class":120},[86,5855,5857,5859,5861,5863,5865],{"class":88,"line":5856},247,[86,5858,3405],{"class":120},[86,5860,3627],{"class":2507},[86,5862,3306],{"class":120},[86,5864,3627],{"class":2507},[86,5866,2519],{"class":120},[86,5868,5870,5872,5874,5876,5878],{"class":88,"line":5869},248,[86,5871,3405],{"class":120},[86,5873,3640],{"class":2507},[86,5875,4311],{"class":120},[86,5877,3640],{"class":2507},[86,5879,2519],{"class":120},[86,5881,5883,5885,5887],{"class":88,"line":5882},249,[86,5884,3453],{"class":120},[86,5886,3605],{"class":2507},[86,5888,2519],{"class":120},[86,5890,5892,5894,5896],{"class":88,"line":5891},250,[86,5893,2961],{"class":120},[86,5895,3533],{"class":2507},[86,5897,2519],{"class":120},[86,5899,5901,5903,5905,5907,5909],{"class":88,"line":5900},251,[86,5902,2725],{"class":120},[86,5904,3669],{"class":2507},[86,5906,3672],{"class":120},[86,5908,3669],{"class":2507},[86,5910,2519],{"class":120},[86,5912,5914,5916,5918,5920,5922],{"class":88,"line":5913},252,[86,5915,2725],{"class":120},[86,5917,3822],{"class":2507},[86,5919,3825],{"class":120},[86,5921,3822],{"class":2507},[86,5923,2519],{"class":120},[86,5925,5927,5929,5931],{"class":88,"line":5926},253,[86,5928,2785],{"class":120},[86,5930,2527],{"class":2507},[86,5932,2519],{"class":120},[86,5934,5936,5938,5940,5942,5944],{"class":88,"line":5935},254,[86,5937,2551],{"class":120},[86,5939,3354],{"class":2507},[86,5941,3320],{"class":120},[86,5943,3354],{"class":2507},[86,5945,2519],{"class":120},[86,5947,5949,5951,5953,5955,5957],{"class":88,"line":5948},255,[86,5950,2551],{"class":120},[86,5952,3859],{"class":2507},[86,5954,3825],{"class":120},[86,5956,3859],{"class":2507},[86,5958,2519],{"class":120},[86,5960,5962,5964,5966],{"class":88,"line":5961},256,[86,5963,2622],{"class":120},[86,5965,2865],{"class":2507},[86,5967,2519],{"class":120},[86,5969,5971,5973,5976,5978,5980,5983,5985,5987,5990],{"class":88,"line":5970},257,[86,5972,2541],{"class":120},[86,5974,5975],{"class":2507},"light",[86,5977,2511],{"class":106},[86,5979,1807],{"class":120},[86,5981,5982],{"class":110},"'sun'",[86,5984,3081],{"class":106},[86,5986,1807],{"class":120},[86,5988,5989],{"class":110},"'directional'",[86,5991,2519],{"class":120},[86,5993,5995,5997,5999,6002,6004],{"class":88,"line":5994},258,[86,5996,2551],{"class":120},[86,5998,3669],{"class":2507},[86,6000,6001],{"class":120},">0 0 10 0 -0 0\u003C\u002F",[86,6003,3669],{"class":2507},[86,6005,2519],{"class":120},[86,6007,6009,6011,6014,6016,6018],{"class":88,"line":6008},259,[86,6010,2551],{"class":120},[86,6012,6013],{"class":2507},"cast_shadows",[86,6015,3320],{"class":120},[86,6017,6013],{"class":2507},[86,6019,2519],{"class":120},[86,6021,6023,6025,6028,6030,6032],{"class":88,"line":6022},260,[86,6024,2551],{"class":120},[86,6026,6027],{"class":2507},"intensity",[86,6029,3112],{"class":120},[86,6031,6027],{"class":2507},[86,6033,2519],{"class":120},[86,6035,6037,6039,6042,6045,6047],{"class":88,"line":6036},261,[86,6038,2551],{"class":120},[86,6040,6041],{"class":2507},"direction",[86,6043,6044],{"class":120},">-0.5 0.1 -0.9\u003C\u002F",[86,6046,6041],{"class":2507},[86,6048,2519],{"class":120},[86,6050,6052,6054,6056,6058,6060],{"class":88,"line":6051},262,[86,6053,2551],{"class":120},[86,6055,3627],{"class":2507},[86,6057,3616],{"class":120},[86,6059,3627],{"class":2507},[86,6061,2519],{"class":120},[86,6063,6065,6067,6069,6072,6074],{"class":88,"line":6064},263,[86,6066,2551],{"class":120},[86,6068,3640],{"class":2507},[86,6070,6071],{"class":120},">0.2 0.2 0.2 1\u003C\u002F",[86,6073,3640],{"class":2507},[86,6075,2519],{"class":120},[86,6077,6079,6081,6084],{"class":88,"line":6078},264,[86,6080,2551],{"class":120},[86,6082,6083],{"class":2507},"attenuation",[86,6085,2519],{"class":120},[86,6087,6089,6091,6094,6096,6098],{"class":88,"line":6088},265,[86,6090,2725],{"class":120},[86,6092,6093],{"class":2507},"range",[86,6095,3126],{"class":120},[86,6097,6093],{"class":2507},[86,6099,2519],{"class":120},[86,6101,6103,6105,6108,6111,6113],{"class":88,"line":6102},266,[86,6104,2725],{"class":120},[86,6106,6107],{"class":2507},"linear",[86,6109,6110],{"class":120},">0.01\u003C\u002F",[86,6112,6107],{"class":2507},[86,6114,2519],{"class":120},[86,6116,6118,6120,6123,6126,6128],{"class":88,"line":6117},267,[86,6119,2725],{"class":120},[86,6121,6122],{"class":2507},"constant",[86,6124,6125],{"class":120},">0.90000000000000002\u003C\u002F",[86,6127,6122],{"class":2507},[86,6129,2519],{"class":120},[86,6131,6133,6135,6138,6140,6142],{"class":88,"line":6132},268,[86,6134,2725],{"class":120},[86,6136,6137],{"class":2507},"quadratic",[86,6139,3098],{"class":120},[86,6141,6137],{"class":2507},[86,6143,2519],{"class":120},[86,6145,6147,6149,6151],{"class":88,"line":6146},269,[86,6148,2785],{"class":120},[86,6150,6083],{"class":2507},[86,6152,2519],{"class":120},[86,6154,6156,6158,6161],{"class":88,"line":6155},270,[86,6157,2551],{"class":120},[86,6159,6160],{"class":2507},"spot",[86,6162,2519],{"class":120},[86,6164,6166,6168,6171,6173,6175],{"class":88,"line":6165},271,[86,6167,2725],{"class":120},[86,6169,6170],{"class":2507},"inner_angle",[86,6172,3739],{"class":120},[86,6174,6170],{"class":2507},[86,6176,2519],{"class":120},[86,6178,6180,6182,6185,6187,6189],{"class":88,"line":6179},272,[86,6181,2725],{"class":120},[86,6183,6184],{"class":2507},"outer_angle",[86,6186,3739],{"class":120},[86,6188,6184],{"class":2507},[86,6190,2519],{"class":120},[86,6192,6194,6196,6199,6201,6203],{"class":88,"line":6193},273,[86,6195,2725],{"class":120},[86,6197,6198],{"class":2507},"falloff",[86,6200,3739],{"class":120},[86,6202,6198],{"class":2507},[86,6204,2519],{"class":120},[86,6206,6208,6210,6212],{"class":88,"line":6207},274,[86,6209,2785],{"class":120},[86,6211,6160],{"class":2507},[86,6213,2519],{"class":120},[86,6215,6217,6219,6221],{"class":88,"line":6216},275,[86,6218,2622],{"class":120},[86,6220,5975],{"class":2507},[86,6222,2519],{"class":120},[86,6224,6226,6228,6230],{"class":88,"line":6225},276,[86,6227,2631],{"class":120},[86,6229,3055],{"class":2507},[86,6231,2519],{"class":120},[86,6233,6235,6237,6239],{"class":88,"line":6234},277,[86,6236,2640],{"class":120},[86,6238,2848],{"class":2507},[86,6240,2519],{"class":120},[17,6242,6243],{},[21,6244,6245],{},"2.修改sdf文件",[17,6247,6248,6249,6252,6253,6256,6257,6259,6260,6259,6263,6259,6266,6269,6270,6272,6273,6275,6276,6279,6280,6269,6283,6272,6285,6275,6287,6279,6289,6292,6293,6297,6299,6302,6305,6308,6311,6314,6317,6320,6322,2446],{},"修改sdf文件，调整立方体的尺寸，实现墙体的合围。在sdf文件中，四个立方体分别对应了四个",[83,6250,6251],{},"\u003Cmodel>","标签，其",[83,6254,6255],{},"name","属性分别为",[83,6258,4094],{},"、",[83,6261,6262],{},"box_1",[83,6264,6265],{},"box_2",[83,6267,6268],{},"box_3","，将",[83,6271,4094],{},"和",[83,6274,6262],{},"中的",[83,6277,6278],{},"\u003Csize>1 1 1\u003C\u002Fsize>","修改为",[83,6281,6282],{},"\u003Csize>0.1 5 1\u003C\u002Fsize>",[83,6284,6265],{},[83,6286,6268],{},[83,6288,6278],{},[83,6290,6291],{},"\u003Csize>10 0.1 1\u003C\u002Fsize>","（",[6294,6295,6296],"em",{},"注意：每个",[83,6298,6251],{},[6294,6300,6301],{},"标签下，都包含两个",[83,6303,6304],{},"\u003Csize>",[6294,6306,6307],{},"标签，分别位于",[83,6309,6310],{},"\u003Ccollision>",[6294,6312,6313],{},"标签和",[83,6315,6316],{},"\u003Cvisual>",[6294,6318,6319],{},"标签下，两个",[83,6321,6304],{},[6294,6323,6324],{},"标签内容都需要修改",[17,6326,6327],{},"修改后与的house.sdf文件内容如下：",[76,6329,6330],{"className":2495,"code":3031,"language":2497,"meta":81,"style":81},[83,6331,6332,6346,6360,6380,6392,6404,6416,6424,6444,6464,6484,6504,6516,6528,6542,6550,6562,6574,6586,6594,6608,6620,6634,6648,6656,6664,6676,6688,6696,6704,6712,6720,6728,6736,6744,6752,6760,6768,6782,6790,6798,6810,6822,6830,6838,6846,6858,6870,6882,6890,6898,6910,6918,6930,6942,6950,6962,6974,6986,6998,7010,7022,7030,7038,7050,7058,7070,7082,7090,7104,7116,7130,7138,7146,7158,7170,7182,7194,7206,7218,7226,7238,7250,7258,7272,7280,7288,7300,7308,7316,7324,7332,7340,7348,7356,7364,7372,7380,7394,7402,7410,7422,7430,7438,7446,7458,7470,7482,7490,7498,7510,7522,7530,7542,7554,7562,7576,7588,7602,7610,7618,7630,7642,7654,7666,7678,7690,7698,7710,7722,7730,7744,7752,7760,7772,7780,7788,7796,7804,7812,7820,7828,7836,7844,7852,7866,7874,7882,7894,7902,7910,7918,7930,7942,7954,7962,7970,7982,7994,8002,8014,8026,8034,8048,8060,8074,8082,8090,8102,8114,8126,8138,8150,8162,8170,8182,8194,8202,8216,8224,8232,8244,8252,8260,8268,8276,8284,8292,8300,8308,8316,8324,8338,8346,8354,8366,8374,8382,8390,8402,8414,8426,8434,8442,8454,8466,8474,8486,8498,8506,8520,8532,8546,8554,8562,8574,8586,8598,8610,8622,8634,8642,8654,8666,8674,8688,8696,8704,8716,8724,8732,8740,8748,8756,8764,8772,8780,8788,8796,8810,8818,8826,8838,8846,8854,8862,8874,8886,8898,8906,8914,8926,8938,8946,8958,8970,8978,8998,9010,9022,9034,9046,9058,9070,9078,9090,9102,9114,9126,9134,9142,9154,9166,9178,9186,9194,9202],{"__ignoreMap":81},[86,6333,6334,6336,6338,6340,6342,6344],{"class":88,"line":89},[86,6335,2504],{"class":120},[86,6337,2848],{"class":2507},[86,6339,2851],{"class":106},[86,6341,1807],{"class":120},[86,6343,3046],{"class":110},[86,6345,2519],{"class":120},[86,6347,6348,6350,6352,6354,6356,6358],{"class":88,"line":96},[86,6349,2524],{"class":120},[86,6351,3055],{"class":2507},[86,6353,2511],{"class":106},[86,6355,1807],{"class":120},[86,6357,3062],{"class":110},[86,6359,2519],{"class":120},[86,6361,6362,6364,6366,6368,6370,6372,6374,6376,6378],{"class":88,"line":103},[86,6363,2541],{"class":120},[86,6365,3071],{"class":2507},[86,6367,2511],{"class":106},[86,6369,1807],{"class":120},[86,6371,3078],{"class":110},[86,6373,3081],{"class":106},[86,6375,1807],{"class":120},[86,6377,3086],{"class":110},[86,6379,2519],{"class":120},[86,6381,6382,6384,6386,6388,6390],{"class":88,"line":127},[86,6383,2551],{"class":120},[86,6385,3095],{"class":2507},[86,6387,3098],{"class":120},[86,6389,3095],{"class":2507},[86,6391,2519],{"class":120},[86,6393,6394,6396,6398,6400,6402],{"class":88,"line":132},[86,6395,2551],{"class":120},[86,6397,3109],{"class":2507},[86,6399,3112],{"class":120},[86,6401,3109],{"class":2507},[86,6403,2519],{"class":120},[86,6405,6406,6408,6410,6412,6414],{"class":88,"line":138},[86,6407,2551],{"class":120},[86,6409,3123],{"class":2507},[86,6411,3126],{"class":120},[86,6413,3123],{"class":2507},[86,6415,2519],{"class":120},[86,6417,6418,6420,6422],{"class":88,"line":150},[86,6419,2622],{"class":120},[86,6421,3071],{"class":2507},[86,6423,2519],{"class":120},[86,6425,6426,6428,6430,6432,6434,6436,6438,6440,6442],{"class":88,"line":155},[86,6427,2541],{"class":120},[86,6429,3145],{"class":2507},[86,6431,2511],{"class":106},[86,6433,1807],{"class":120},[86,6435,3152],{"class":110},[86,6437,3155],{"class":106},[86,6439,1807],{"class":120},[86,6441,3160],{"class":110},[86,6443,3163],{"class":120},[86,6445,6446,6448,6450,6452,6454,6456,6458,6460,6462],{"class":88,"line":161},[86,6447,2541],{"class":120},[86,6449,3145],{"class":2507},[86,6451,2511],{"class":106},[86,6453,1807],{"class":120},[86,6455,3176],{"class":110},[86,6457,3155],{"class":106},[86,6459,1807],{"class":120},[86,6461,3183],{"class":110},[86,6463,3163],{"class":120},[86,6465,6466,6468,6470,6472,6474,6476,6478,6480,6482],{"class":88,"line":408},[86,6467,2541],{"class":120},[86,6469,3145],{"class":2507},[86,6471,2511],{"class":106},[86,6473,1807],{"class":120},[86,6475,3198],{"class":110},[86,6477,3155],{"class":106},[86,6479,1807],{"class":120},[86,6481,3205],{"class":110},[86,6483,3163],{"class":120},[86,6485,6486,6488,6490,6492,6494,6496,6498,6500,6502],{"class":88,"line":414},[86,6487,2541],{"class":120},[86,6489,3145],{"class":2507},[86,6491,2511],{"class":106},[86,6493,1807],{"class":120},[86,6495,3220],{"class":110},[86,6497,3155],{"class":106},[86,6499,1807],{"class":120},[86,6501,3227],{"class":110},[86,6503,3163],{"class":120},[86,6505,6506,6508,6510,6512,6514],{"class":88,"line":420},[86,6507,2541],{"class":120},[86,6509,3236],{"class":2507},[86,6511,3239],{"class":120},[86,6513,3236],{"class":2507},[86,6515,2519],{"class":120},[86,6517,6518,6520,6522,6524,6526],{"class":88,"line":426},[86,6519,2541],{"class":120},[86,6521,3250],{"class":2507},[86,6523,3253],{"class":120},[86,6525,3250],{"class":2507},[86,6527,2519],{"class":120},[86,6529,6530,6532,6534,6536,6538,6540],{"class":88,"line":1784},[86,6531,2541],{"class":120},[86,6533,3264],{"class":2507},[86,6535,3081],{"class":106},[86,6537,1807],{"class":120},[86,6539,3271],{"class":110},[86,6541,3163],{"class":120},[86,6543,6544,6546,6548],{"class":88,"line":1796},[86,6545,2541],{"class":120},[86,6547,3280],{"class":2507},[86,6549,2519],{"class":120},[86,6551,6552,6554,6556,6558,6560],{"class":88,"line":1801},[86,6553,2551],{"class":120},[86,6555,3289],{"class":2507},[86,6557,3292],{"class":120},[86,6559,3289],{"class":2507},[86,6561,2519],{"class":120},[86,6563,6564,6566,6568,6570,6572],{"class":88,"line":1818},[86,6565,2551],{"class":120},[86,6567,3303],{"class":2507},[86,6569,3306],{"class":120},[86,6571,3303],{"class":2507},[86,6573,2519],{"class":120},[86,6575,6576,6578,6580,6582,6584],{"class":88,"line":1833},[86,6577,2551],{"class":120},[86,6579,3317],{"class":2507},[86,6581,3320],{"class":120},[86,6583,3317],{"class":2507},[86,6585,2519],{"class":120},[86,6587,6588,6590,6592],{"class":88,"line":1855},[86,6589,2622],{"class":120},[86,6591,3280],{"class":2507},[86,6593,2519],{"class":120},[86,6595,6596,6598,6600,6602,6604,6606],{"class":88,"line":1860},[86,6597,2541],{"class":120},[86,6599,2865],{"class":2507},[86,6601,2511],{"class":106},[86,6603,1807],{"class":120},[86,6605,3345],{"class":110},[86,6607,2519],{"class":120},[86,6609,6610,6612,6614,6616,6618],{"class":88,"line":1871},[86,6611,2551],{"class":120},[86,6613,3354],{"class":2507},[86,6615,3320],{"class":120},[86,6617,3354],{"class":2507},[86,6619,2519],{"class":120},[86,6621,6622,6624,6626,6628,6630,6632],{"class":88,"line":1877},[86,6623,2551],{"class":120},[86,6625,2527],{"class":2507},[86,6627,2511],{"class":106},[86,6629,1807],{"class":120},[86,6631,3373],{"class":110},[86,6633,2519],{"class":120},[86,6635,6636,6638,6640,6642,6644,6646],{"class":88,"line":1895},[86,6637,2725],{"class":120},[86,6639,3382],{"class":2507},[86,6641,2511],{"class":106},[86,6643,1807],{"class":120},[86,6645,3389],{"class":110},[86,6647,2519],{"class":120},[86,6649,6650,6652,6654],{"class":88,"line":1907},[86,6651,2921],{"class":120},[86,6653,3398],{"class":2507},[86,6655,2519],{"class":120},[86,6657,6658,6660,6662],{"class":88,"line":1925},[86,6659,3405],{"class":120},[86,6661,3408],{"class":2507},[86,6663,2519],{"class":120},[86,6665,6666,6668,6670,6672,6674],{"class":88,"line":1931},[86,6667,3415],{"class":120},[86,6669,3418],{"class":2507},[86,6671,3421],{"class":120},[86,6673,3418],{"class":2507},[86,6675,2519],{"class":120},[86,6677,6678,6680,6682,6684,6686],{"class":88,"line":1937},[86,6679,3415],{"class":120},[86,6681,3432],{"class":2507},[86,6683,3435],{"class":120},[86,6685,3432],{"class":2507},[86,6687,2519],{"class":120},[86,6689,6690,6692,6694],{"class":88,"line":1942},[86,6691,3444],{"class":120},[86,6693,3408],{"class":2507},[86,6695,2519],{"class":120},[86,6697,6698,6700,6702],{"class":88,"line":1948},[86,6699,3453],{"class":120},[86,6701,3398],{"class":2507},[86,6703,2519],{"class":120},[86,6705,6706,6708,6710],{"class":88,"line":1959},[86,6707,2921],{"class":120},[86,6709,3464],{"class":2507},[86,6711,2519],{"class":120},[86,6713,6714,6716,6718],{"class":88,"line":1973},[86,6715,3405],{"class":120},[86,6717,3473],{"class":2507},[86,6719,2519],{"class":120},[86,6721,6722,6724,6726],{"class":88,"line":1985},[86,6723,3415],{"class":120},[86,6725,3482],{"class":2507},[86,6727,3163],{"class":120},[86,6729,6730,6732,6734],{"class":88,"line":2012},[86,6731,3444],{"class":120},[86,6733,3473],{"class":2507},[86,6735,2519],{"class":120},[86,6737,6738,6740,6742],{"class":88,"line":2028},[86,6739,3405],{"class":120},[86,6741,3499],{"class":2507},[86,6743,3163],{"class":120},[86,6745,6746,6748,6750],{"class":88,"line":2033},[86,6747,3405],{"class":120},[86,6749,3508],{"class":2507},[86,6751,3163],{"class":120},[86,6753,6754,6756,6758],{"class":88,"line":2038},[86,6755,3453],{"class":120},[86,6757,3464],{"class":2507},[86,6759,2519],{"class":120},[86,6761,6762,6764,6766],{"class":88,"line":2044},[86,6763,2961],{"class":120},[86,6765,3382],{"class":2507},[86,6767,2519],{"class":120},[86,6769,6770,6772,6774,6776,6778,6780],{"class":88,"line":2054},[86,6771,2725],{"class":120},[86,6773,3533],{"class":2507},[86,6775,2511],{"class":106},[86,6777,1807],{"class":120},[86,6779,3540],{"class":110},[86,6781,2519],{"class":120},[86,6783,6784,6786,6788],{"class":88,"line":2067},[86,6785,2921],{"class":120},[86,6787,3398],{"class":2507},[86,6789,2519],{"class":120},[86,6791,6792,6794,6796],{"class":88,"line":2080},[86,6793,3405],{"class":120},[86,6795,3408],{"class":2507},[86,6797,2519],{"class":120},[86,6799,6800,6802,6804,6806,6808],{"class":88,"line":2095},[86,6801,3415],{"class":120},[86,6803,3418],{"class":2507},[86,6805,3421],{"class":120},[86,6807,3418],{"class":2507},[86,6809,2519],{"class":120},[86,6811,6812,6814,6816,6818,6820],{"class":88,"line":2103},[86,6813,3415],{"class":120},[86,6815,3432],{"class":2507},[86,6817,3435],{"class":120},[86,6819,3432],{"class":2507},[86,6821,2519],{"class":120},[86,6823,6824,6826,6828],{"class":88,"line":2111},[86,6825,3444],{"class":120},[86,6827,3408],{"class":2507},[86,6829,2519],{"class":120},[86,6831,6832,6834,6836],{"class":88,"line":2117},[86,6833,3453],{"class":120},[86,6835,3398],{"class":2507},[86,6837,2519],{"class":120},[86,6839,6840,6842,6844],{"class":88,"line":2139},[86,6841,2921],{"class":120},[86,6843,3605],{"class":2507},[86,6845,2519],{"class":120},[86,6847,6848,6850,6852,6854,6856],{"class":88,"line":2150},[86,6849,3405],{"class":120},[86,6851,3289],{"class":2507},[86,6853,3616],{"class":120},[86,6855,3289],{"class":2507},[86,6857,2519],{"class":120},[86,6859,6860,6862,6864,6866,6868],{"class":88,"line":2167},[86,6861,3405],{"class":120},[86,6863,3627],{"class":2507},[86,6865,3616],{"class":120},[86,6867,3627],{"class":2507},[86,6869,2519],{"class":120},[86,6871,6872,6874,6876,6878,6880],{"class":88,"line":2182},[86,6873,3405],{"class":120},[86,6875,3640],{"class":2507},[86,6877,3616],{"class":120},[86,6879,3640],{"class":2507},[86,6881,2519],{"class":120},[86,6883,6884,6886,6888],{"class":88,"line":2188},[86,6885,3453],{"class":120},[86,6887,3605],{"class":2507},[86,6889,2519],{"class":120},[86,6891,6892,6894,6896],{"class":88,"line":2199},[86,6893,2961],{"class":120},[86,6895,3533],{"class":2507},[86,6897,2519],{"class":120},[86,6899,6900,6902,6904,6906,6908],{"class":88,"line":2204},[86,6901,2725],{"class":120},[86,6903,3669],{"class":2507},[86,6905,3672],{"class":120},[86,6907,3669],{"class":2507},[86,6909,2519],{"class":120},[86,6911,6912,6914,6916],{"class":88,"line":2209},[86,6913,2725],{"class":120},[86,6915,2544],{"class":2507},[86,6917,2519],{"class":120},[86,6919,6920,6922,6924,6926,6928],{"class":88,"line":2218},[86,6921,2921],{"class":120},[86,6923,3669],{"class":2507},[86,6925,3672],{"class":120},[86,6927,3669],{"class":2507},[86,6929,2519],{"class":120},[86,6931,6932,6934,6936,6938,6940],{"class":88,"line":2224},[86,6933,2921],{"class":120},[86,6935,2554],{"class":2507},[86,6937,3705],{"class":120},[86,6939,2554],{"class":2507},[86,6941,2519],{"class":120},[86,6943,6944,6946,6948],{"class":88,"line":2244},[86,6945,2921],{"class":120},[86,6947,2572],{"class":2507},[86,6949,2519],{"class":120},[86,6951,6952,6954,6956,6958,6960],{"class":88,"line":2257},[86,6953,3405],{"class":120},[86,6955,2924],{"class":2507},[86,6957,3112],{"class":120},[86,6959,2924],{"class":2507},[86,6961,2519],{"class":120},[86,6963,6964,6966,6968,6970,6972],{"class":88,"line":2263},[86,6965,3405],{"class":120},[86,6967,3736],{"class":2507},[86,6969,3739],{"class":120},[86,6971,3736],{"class":2507},[86,6973,2519],{"class":120},[86,6975,6976,6978,6980,6982,6984],{"class":88,"line":2269},[86,6977,3405],{"class":120},[86,6979,3750],{"class":2507},[86,6981,3739],{"class":120},[86,6983,3750],{"class":2507},[86,6985,2519],{"class":120},[86,6987,6988,6990,6992,6994,6996],{"class":88,"line":3759},[86,6989,3405],{"class":120},[86,6991,2937],{"class":2507},[86,6993,3112],{"class":120},[86,6995,2937],{"class":2507},[86,6997,2519],{"class":120},[86,6999,7000,7002,7004,7006,7008],{"class":88,"line":3772},[86,7001,3405],{"class":120},[86,7003,3777],{"class":2507},[86,7005,3739],{"class":120},[86,7007,3777],{"class":2507},[86,7009,2519],{"class":120},[86,7011,7012,7014,7016,7018,7020],{"class":88,"line":3786},[86,7013,3405],{"class":120},[86,7015,2950],{"class":2507},[86,7017,3112],{"class":120},[86,7019,2950],{"class":2507},[86,7021,2519],{"class":120},[86,7023,7024,7026,7028],{"class":88,"line":3799},[86,7025,3453],{"class":120},[86,7027,2572],{"class":2507},[86,7029,2519],{"class":120},[86,7031,7032,7034,7036],{"class":88,"line":3808},[86,7033,2961],{"class":120},[86,7035,2544],{"class":2507},[86,7037,2519],{"class":120},[86,7039,7040,7042,7044,7046,7048],{"class":88,"line":3817},[86,7041,2725],{"class":120},[86,7043,3822],{"class":2507},[86,7045,3825],{"class":120},[86,7047,3822],{"class":2507},[86,7049,2519],{"class":120},[86,7051,7052,7054,7056],{"class":88,"line":3832},[86,7053,2785],{"class":120},[86,7055,2527],{"class":2507},[86,7057,2519],{"class":120},[86,7059,7060,7062,7064,7066,7068],{"class":88,"line":3841},[86,7061,2551],{"class":120},[86,7063,3669],{"class":2507},[86,7065,3672],{"class":120},[86,7067,3669],{"class":2507},[86,7069,2519],{"class":120},[86,7071,7072,7074,7076,7078,7080],{"class":88,"line":3854},[86,7073,2551],{"class":120},[86,7075,3859],{"class":2507},[86,7077,3825],{"class":120},[86,7079,3859],{"class":2507},[86,7081,2519],{"class":120},[86,7083,7084,7086,7088],{"class":88,"line":3868},[86,7085,2622],{"class":120},[86,7087,2865],{"class":2507},[86,7089,2519],{"class":120},[86,7091,7092,7094,7096,7098,7100,7102],{"class":88,"line":3877},[86,7093,2541],{"class":120},[86,7095,2865],{"class":2507},[86,7097,2511],{"class":106},[86,7099,1807],{"class":120},[86,7101,3888],{"class":110},[86,7103,2519],{"class":120},[86,7105,7106,7108,7110,7112,7114],{"class":88,"line":3893},[86,7107,2551],{"class":120},[86,7109,3669],{"class":2507},[86,7111,3900],{"class":120},[86,7113,3669],{"class":2507},[86,7115,2519],{"class":120},[86,7117,7118,7120,7122,7124,7126,7128],{"class":88,"line":3907},[86,7119,2551],{"class":120},[86,7121,2527],{"class":2507},[86,7123,2511],{"class":106},[86,7125,1807],{"class":120},[86,7127,3918],{"class":110},[86,7129,2519],{"class":120},[86,7131,7132,7134,7136],{"class":88,"line":3923},[86,7133,2725],{"class":120},[86,7135,2544],{"class":2507},[86,7137,2519],{"class":120},[86,7139,7140,7142,7144],{"class":88,"line":3932},[86,7141,2921],{"class":120},[86,7143,2572],{"class":2507},[86,7145,2519],{"class":120},[86,7147,7148,7150,7152,7154,7156],{"class":88,"line":3941},[86,7149,3405],{"class":120},[86,7151,2924],{"class":2507},[86,7153,3948],{"class":120},[86,7155,2924],{"class":2507},[86,7157,2519],{"class":120},[86,7159,7160,7162,7164,7166,7168],{"class":88,"line":3955},[86,7161,3405],{"class":120},[86,7163,3736],{"class":2507},[86,7165,3739],{"class":120},[86,7167,3736],{"class":2507},[86,7169,2519],{"class":120},[86,7171,7172,7174,7176,7178,7180],{"class":88,"line":3968},[86,7173,3405],{"class":120},[86,7175,3750],{"class":2507},[86,7177,3739],{"class":120},[86,7179,3750],{"class":2507},[86,7181,2519],{"class":120},[86,7183,7184,7186,7188,7190,7192],{"class":88,"line":3981},[86,7185,3405],{"class":120},[86,7187,2937],{"class":2507},[86,7189,3948],{"class":120},[86,7191,2937],{"class":2507},[86,7193,2519],{"class":120},[86,7195,7196,7198,7200,7202,7204],{"class":88,"line":3994},[86,7197,3405],{"class":120},[86,7199,3777],{"class":2507},[86,7201,3739],{"class":120},[86,7203,3777],{"class":2507},[86,7205,2519],{"class":120},[86,7207,7208,7210,7212,7214,7216],{"class":88,"line":4007},[86,7209,3405],{"class":120},[86,7211,2950],{"class":2507},[86,7213,3948],{"class":120},[86,7215,2950],{"class":2507},[86,7217,2519],{"class":120},[86,7219,7220,7222,7224],{"class":88,"line":4020},[86,7221,3453],{"class":120},[86,7223,2572],{"class":2507},[86,7225,2519],{"class":120},[86,7227,7228,7230,7232,7234,7236],{"class":88,"line":4029},[86,7229,2921],{"class":120},[86,7231,2554],{"class":2507},[86,7233,3705],{"class":120},[86,7235,2554],{"class":2507},[86,7237,2519],{"class":120},[86,7239,7240,7242,7244,7246,7248],{"class":88,"line":4042},[86,7241,2921],{"class":120},[86,7243,3669],{"class":2507},[86,7245,3672],{"class":120},[86,7247,3669],{"class":2507},[86,7249,2519],{"class":120},[86,7251,7252,7254,7256],{"class":88,"line":4055},[86,7253,2961],{"class":120},[86,7255,2544],{"class":2507},[86,7257,2519],{"class":120},[86,7259,7260,7262,7264,7266,7268,7270],{"class":88,"line":4064},[86,7261,2725],{"class":120},[86,7263,3382],{"class":2507},[86,7265,2511],{"class":106},[86,7267,1807],{"class":120},[86,7269,4075],{"class":110},[86,7271,2519],{"class":120},[86,7273,7274,7276,7278],{"class":88,"line":4080},[86,7275,2921],{"class":120},[86,7277,3398],{"class":2507},[86,7279,2519],{"class":120},[86,7281,7282,7284,7286],{"class":88,"line":4089},[86,7283,3405],{"class":120},[86,7285,4094],{"class":2507},[86,7287,2519],{"class":120},[86,7289,7290,7292,7294,7296,7298],{"class":88,"line":4099},[86,7291,3415],{"class":120},[86,7293,3432],{"class":2507},[86,7295,4106],{"class":120},[86,7297,3432],{"class":2507},[86,7299,2519],{"class":120},[86,7301,7302,7304,7306],{"class":88,"line":4113},[86,7303,3444],{"class":120},[86,7305,4094],{"class":2507},[86,7307,2519],{"class":120},[86,7309,7310,7312,7314],{"class":88,"line":4122},[86,7311,3453],{"class":120},[86,7313,3398],{"class":2507},[86,7315,2519],{"class":120},[86,7317,7318,7320,7322],{"class":88,"line":4131},[86,7319,2921],{"class":120},[86,7321,3464],{"class":2507},[86,7323,2519],{"class":120},[86,7325,7326,7328,7330],{"class":88,"line":4140},[86,7327,3405],{"class":120},[86,7329,3473],{"class":2507},[86,7331,2519],{"class":120},[86,7333,7334,7336,7338],{"class":88,"line":4149},[86,7335,3415],{"class":120},[86,7337,3482],{"class":2507},[86,7339,3163],{"class":120},[86,7341,7342,7344,7346],{"class":88,"line":4158},[86,7343,3444],{"class":120},[86,7345,3473],{"class":2507},[86,7347,2519],{"class":120},[86,7349,7350,7352,7354],{"class":88,"line":4167},[86,7351,3405],{"class":120},[86,7353,3499],{"class":2507},[86,7355,3163],{"class":120},[86,7357,7358,7360,7362],{"class":88,"line":4176},[86,7359,3405],{"class":120},[86,7361,3508],{"class":2507},[86,7363,3163],{"class":120},[86,7365,7366,7368,7370],{"class":88,"line":4185},[86,7367,3453],{"class":120},[86,7369,3464],{"class":2507},[86,7371,2519],{"class":120},[86,7373,7374,7376,7378],{"class":88,"line":4194},[86,7375,2961],{"class":120},[86,7377,3382],{"class":2507},[86,7379,2519],{"class":120},[86,7381,7382,7384,7386,7388,7390,7392],{"class":88,"line":4203},[86,7383,2725],{"class":120},[86,7385,3533],{"class":2507},[86,7387,2511],{"class":106},[86,7389,1807],{"class":120},[86,7391,4214],{"class":110},[86,7393,2519],{"class":120},[86,7395,7396,7398,7400],{"class":88,"line":4219},[86,7397,2921],{"class":120},[86,7399,3398],{"class":2507},[86,7401,2519],{"class":120},[86,7403,7404,7406,7408],{"class":88,"line":4228},[86,7405,3405],{"class":120},[86,7407,4094],{"class":2507},[86,7409,2519],{"class":120},[86,7411,7412,7414,7416,7418,7420],{"class":88,"line":4237},[86,7413,3415],{"class":120},[86,7415,3432],{"class":2507},[86,7417,4106],{"class":120},[86,7419,3432],{"class":2507},[86,7421,2519],{"class":120},[86,7423,7424,7426,7428],{"class":88,"line":4250},[86,7425,3444],{"class":120},[86,7427,4094],{"class":2507},[86,7429,2519],{"class":120},[86,7431,7432,7434,7436],{"class":88,"line":4259},[86,7433,3453],{"class":120},[86,7435,3398],{"class":2507},[86,7437,2519],{"class":120},[86,7439,7440,7442,7444],{"class":88,"line":4268},[86,7441,2921],{"class":120},[86,7443,3605],{"class":2507},[86,7445,2519],{"class":120},[86,7447,7448,7450,7452,7454,7456],{"class":88,"line":4277},[86,7449,3405],{"class":120},[86,7451,3289],{"class":2507},[86,7453,4284],{"class":120},[86,7455,3289],{"class":2507},[86,7457,2519],{"class":120},[86,7459,7460,7462,7464,7466,7468],{"class":88,"line":4291},[86,7461,3405],{"class":120},[86,7463,3627],{"class":2507},[86,7465,3306],{"class":120},[86,7467,3627],{"class":2507},[86,7469,2519],{"class":120},[86,7471,7472,7474,7476,7478,7480],{"class":88,"line":4304},[86,7473,3405],{"class":120},[86,7475,3640],{"class":2507},[86,7477,4311],{"class":120},[86,7479,3640],{"class":2507},[86,7481,2519],{"class":120},[86,7483,7484,7486,7488],{"class":88,"line":4318},[86,7485,3453],{"class":120},[86,7487,3605],{"class":2507},[86,7489,2519],{"class":120},[86,7491,7492,7494,7496],{"class":88,"line":4327},[86,7493,2961],{"class":120},[86,7495,3533],{"class":2507},[86,7497,2519],{"class":120},[86,7499,7500,7502,7504,7506,7508],{"class":88,"line":4336},[86,7501,2725],{"class":120},[86,7503,3669],{"class":2507},[86,7505,3672],{"class":120},[86,7507,3669],{"class":2507},[86,7509,2519],{"class":120},[86,7511,7512,7514,7516,7518,7520],{"class":88,"line":4349},[86,7513,2725],{"class":120},[86,7515,3822],{"class":2507},[86,7517,3825],{"class":120},[86,7519,3822],{"class":2507},[86,7521,2519],{"class":120},[86,7523,7524,7526,7528],{"class":88,"line":4362},[86,7525,2785],{"class":120},[86,7527,2527],{"class":2507},[86,7529,2519],{"class":120},[86,7531,7532,7534,7536,7538,7540],{"class":88,"line":4371},[86,7533,2551],{"class":120},[86,7535,3354],{"class":2507},[86,7537,3320],{"class":120},[86,7539,3354],{"class":2507},[86,7541,2519],{"class":120},[86,7543,7544,7546,7548,7550,7552],{"class":88,"line":4384},[86,7545,2551],{"class":120},[86,7547,3859],{"class":2507},[86,7549,3825],{"class":120},[86,7551,3859],{"class":2507},[86,7553,2519],{"class":120},[86,7555,7556,7558,7560],{"class":88,"line":4397},[86,7557,2622],{"class":120},[86,7559,2865],{"class":2507},[86,7561,2519],{"class":120},[86,7563,7564,7566,7568,7570,7572,7574],{"class":88,"line":4406},[86,7565,2541],{"class":120},[86,7567,2865],{"class":2507},[86,7569,2511],{"class":106},[86,7571,1807],{"class":120},[86,7573,4417],{"class":110},[86,7575,2519],{"class":120},[86,7577,7578,7580,7582,7584,7586],{"class":88,"line":4422},[86,7579,2551],{"class":120},[86,7581,3669],{"class":2507},[86,7583,4429],{"class":120},[86,7585,3669],{"class":2507},[86,7587,2519],{"class":120},[86,7589,7590,7592,7594,7596,7598,7600],{"class":88,"line":4436},[86,7591,2551],{"class":120},[86,7593,2527],{"class":2507},[86,7595,2511],{"class":106},[86,7597,1807],{"class":120},[86,7599,3918],{"class":110},[86,7601,2519],{"class":120},[86,7603,7604,7606,7608],{"class":88,"line":4451},[86,7605,2725],{"class":120},[86,7607,2544],{"class":2507},[86,7609,2519],{"class":120},[86,7611,7612,7614,7616],{"class":88,"line":4460},[86,7613,2921],{"class":120},[86,7615,2572],{"class":2507},[86,7617,2519],{"class":120},[86,7619,7620,7622,7624,7626,7628],{"class":88,"line":4469},[86,7621,3405],{"class":120},[86,7623,2924],{"class":2507},[86,7625,3948],{"class":120},[86,7627,2924],{"class":2507},[86,7629,2519],{"class":120},[86,7631,7632,7634,7636,7638,7640],{"class":88,"line":4482},[86,7633,3405],{"class":120},[86,7635,3736],{"class":2507},[86,7637,3739],{"class":120},[86,7639,3736],{"class":2507},[86,7641,2519],{"class":120},[86,7643,7644,7646,7648,7650,7652],{"class":88,"line":4495},[86,7645,3405],{"class":120},[86,7647,3750],{"class":2507},[86,7649,3739],{"class":120},[86,7651,3750],{"class":2507},[86,7653,2519],{"class":120},[86,7655,7656,7658,7660,7662,7664],{"class":88,"line":4508},[86,7657,3405],{"class":120},[86,7659,2937],{"class":2507},[86,7661,3948],{"class":120},[86,7663,2937],{"class":2507},[86,7665,2519],{"class":120},[86,7667,7668,7670,7672,7674,7676],{"class":88,"line":4521},[86,7669,3405],{"class":120},[86,7671,3777],{"class":2507},[86,7673,3739],{"class":120},[86,7675,3777],{"class":2507},[86,7677,2519],{"class":120},[86,7679,7680,7682,7684,7686,7688],{"class":88,"line":4534},[86,7681,3405],{"class":120},[86,7683,2950],{"class":2507},[86,7685,3948],{"class":120},[86,7687,2950],{"class":2507},[86,7689,2519],{"class":120},[86,7691,7692,7694,7696],{"class":88,"line":4547},[86,7693,3453],{"class":120},[86,7695,2572],{"class":2507},[86,7697,2519],{"class":120},[86,7699,7700,7702,7704,7706,7708],{"class":88,"line":4556},[86,7701,2921],{"class":120},[86,7703,2554],{"class":2507},[86,7705,3705],{"class":120},[86,7707,2554],{"class":2507},[86,7709,2519],{"class":120},[86,7711,7712,7714,7716,7718,7720],{"class":88,"line":4569},[86,7713,2921],{"class":120},[86,7715,3669],{"class":2507},[86,7717,3672],{"class":120},[86,7719,3669],{"class":2507},[86,7721,2519],{"class":120},[86,7723,7724,7726,7728],{"class":88,"line":4582},[86,7725,2961],{"class":120},[86,7727,2544],{"class":2507},[86,7729,2519],{"class":120},[86,7731,7732,7734,7736,7738,7740,7742],{"class":88,"line":4591},[86,7733,2725],{"class":120},[86,7735,3382],{"class":2507},[86,7737,2511],{"class":106},[86,7739,1807],{"class":120},[86,7741,4075],{"class":110},[86,7743,2519],{"class":120},[86,7745,7746,7748,7750],{"class":88,"line":4606},[86,7747,2921],{"class":120},[86,7749,3398],{"class":2507},[86,7751,2519],{"class":120},[86,7753,7754,7756,7758],{"class":88,"line":4615},[86,7755,3405],{"class":120},[86,7757,4094],{"class":2507},[86,7759,2519],{"class":120},[86,7761,7762,7764,7766,7768,7770],{"class":88,"line":4624},[86,7763,3415],{"class":120},[86,7765,3432],{"class":2507},[86,7767,4106],{"class":120},[86,7769,3432],{"class":2507},[86,7771,2519],{"class":120},[86,7773,7774,7776,7778],{"class":88,"line":4637},[86,7775,3444],{"class":120},[86,7777,4094],{"class":2507},[86,7779,2519],{"class":120},[86,7781,7782,7784,7786],{"class":88,"line":4646},[86,7783,3453],{"class":120},[86,7785,3398],{"class":2507},[86,7787,2519],{"class":120},[86,7789,7790,7792,7794],{"class":88,"line":4655},[86,7791,2921],{"class":120},[86,7793,3464],{"class":2507},[86,7795,2519],{"class":120},[86,7797,7798,7800,7802],{"class":88,"line":4664},[86,7799,3405],{"class":120},[86,7801,3473],{"class":2507},[86,7803,2519],{"class":120},[86,7805,7806,7808,7810],{"class":88,"line":4673},[86,7807,3415],{"class":120},[86,7809,3482],{"class":2507},[86,7811,3163],{"class":120},[86,7813,7814,7816,7818],{"class":88,"line":4682},[86,7815,3444],{"class":120},[86,7817,3473],{"class":2507},[86,7819,2519],{"class":120},[86,7821,7822,7824,7826],{"class":88,"line":4691},[86,7823,3405],{"class":120},[86,7825,3499],{"class":2507},[86,7827,3163],{"class":120},[86,7829,7830,7832,7834],{"class":88,"line":4700},[86,7831,3405],{"class":120},[86,7833,3508],{"class":2507},[86,7835,3163],{"class":120},[86,7837,7838,7840,7842],{"class":88,"line":4709},[86,7839,3453],{"class":120},[86,7841,3464],{"class":2507},[86,7843,2519],{"class":120},[86,7845,7846,7848,7850],{"class":88,"line":4718},[86,7847,2961],{"class":120},[86,7849,3382],{"class":2507},[86,7851,2519],{"class":120},[86,7853,7854,7856,7858,7860,7862,7864],{"class":88,"line":4727},[86,7855,2725],{"class":120},[86,7857,3533],{"class":2507},[86,7859,2511],{"class":106},[86,7861,1807],{"class":120},[86,7863,4214],{"class":110},[86,7865,2519],{"class":120},[86,7867,7868,7870,7872],{"class":88,"line":4742},[86,7869,2921],{"class":120},[86,7871,3398],{"class":2507},[86,7873,2519],{"class":120},[86,7875,7876,7878,7880],{"class":88,"line":4751},[86,7877,3405],{"class":120},[86,7879,4094],{"class":2507},[86,7881,2519],{"class":120},[86,7883,7884,7886,7888,7890,7892],{"class":88,"line":4760},[86,7885,3415],{"class":120},[86,7887,3432],{"class":2507},[86,7889,4106],{"class":120},[86,7891,3432],{"class":2507},[86,7893,2519],{"class":120},[86,7895,7896,7898,7900],{"class":88,"line":4773},[86,7897,3444],{"class":120},[86,7899,4094],{"class":2507},[86,7901,2519],{"class":120},[86,7903,7904,7906,7908],{"class":88,"line":4782},[86,7905,3453],{"class":120},[86,7907,3398],{"class":2507},[86,7909,2519],{"class":120},[86,7911,7912,7914,7916],{"class":88,"line":4791},[86,7913,2921],{"class":120},[86,7915,3605],{"class":2507},[86,7917,2519],{"class":120},[86,7919,7920,7922,7924,7926,7928],{"class":88,"line":4800},[86,7921,3405],{"class":120},[86,7923,3289],{"class":2507},[86,7925,4284],{"class":120},[86,7927,3289],{"class":2507},[86,7929,2519],{"class":120},[86,7931,7932,7934,7936,7938,7940],{"class":88,"line":4813},[86,7933,3405],{"class":120},[86,7935,3627],{"class":2507},[86,7937,3306],{"class":120},[86,7939,3627],{"class":2507},[86,7941,2519],{"class":120},[86,7943,7944,7946,7948,7950,7952],{"class":88,"line":4826},[86,7945,3405],{"class":120},[86,7947,3640],{"class":2507},[86,7949,4311],{"class":120},[86,7951,3640],{"class":2507},[86,7953,2519],{"class":120},[86,7955,7956,7958,7960],{"class":88,"line":4839},[86,7957,3453],{"class":120},[86,7959,3605],{"class":2507},[86,7961,2519],{"class":120},[86,7963,7964,7966,7968],{"class":88,"line":4848},[86,7965,2961],{"class":120},[86,7967,3533],{"class":2507},[86,7969,2519],{"class":120},[86,7971,7972,7974,7976,7978,7980],{"class":88,"line":4857},[86,7973,2725],{"class":120},[86,7975,3669],{"class":2507},[86,7977,3672],{"class":120},[86,7979,3669],{"class":2507},[86,7981,2519],{"class":120},[86,7983,7984,7986,7988,7990,7992],{"class":88,"line":4870},[86,7985,2725],{"class":120},[86,7987,3822],{"class":2507},[86,7989,3825],{"class":120},[86,7991,3822],{"class":2507},[86,7993,2519],{"class":120},[86,7995,7996,7998,8000],{"class":88,"line":4883},[86,7997,2785],{"class":120},[86,7999,2527],{"class":2507},[86,8001,2519],{"class":120},[86,8003,8004,8006,8008,8010,8012],{"class":88,"line":4892},[86,8005,2551],{"class":120},[86,8007,3354],{"class":2507},[86,8009,3320],{"class":120},[86,8011,3354],{"class":2507},[86,8013,2519],{"class":120},[86,8015,8016,8018,8020,8022,8024],{"class":88,"line":4905},[86,8017,2551],{"class":120},[86,8019,3859],{"class":2507},[86,8021,3825],{"class":120},[86,8023,3859],{"class":2507},[86,8025,2519],{"class":120},[86,8027,8028,8030,8032],{"class":88,"line":4918},[86,8029,2622],{"class":120},[86,8031,2865],{"class":2507},[86,8033,2519],{"class":120},[86,8035,8036,8038,8040,8042,8044,8046],{"class":88,"line":4927},[86,8037,2541],{"class":120},[86,8039,2865],{"class":2507},[86,8041,2511],{"class":106},[86,8043,1807],{"class":120},[86,8045,4938],{"class":110},[86,8047,2519],{"class":120},[86,8049,8050,8052,8054,8056,8058],{"class":88,"line":4943},[86,8051,2551],{"class":120},[86,8053,3669],{"class":2507},[86,8055,4950],{"class":120},[86,8057,3669],{"class":2507},[86,8059,2519],{"class":120},[86,8061,8062,8064,8066,8068,8070,8072],{"class":88,"line":4957},[86,8063,2551],{"class":120},[86,8065,2527],{"class":2507},[86,8067,2511],{"class":106},[86,8069,1807],{"class":120},[86,8071,3918],{"class":110},[86,8073,2519],{"class":120},[86,8075,8076,8078,8080],{"class":88,"line":4972},[86,8077,2725],{"class":120},[86,8079,2544],{"class":2507},[86,8081,2519],{"class":120},[86,8083,8084,8086,8088],{"class":88,"line":4981},[86,8085,2921],{"class":120},[86,8087,2572],{"class":2507},[86,8089,2519],{"class":120},[86,8091,8092,8094,8096,8098,8100],{"class":88,"line":4990},[86,8093,3405],{"class":120},[86,8095,2924],{"class":2507},[86,8097,3948],{"class":120},[86,8099,2924],{"class":2507},[86,8101,2519],{"class":120},[86,8103,8104,8106,8108,8110,8112],{"class":88,"line":5003},[86,8105,3405],{"class":120},[86,8107,3736],{"class":2507},[86,8109,3739],{"class":120},[86,8111,3736],{"class":2507},[86,8113,2519],{"class":120},[86,8115,8116,8118,8120,8122,8124],{"class":88,"line":5016},[86,8117,3405],{"class":120},[86,8119,3750],{"class":2507},[86,8121,3739],{"class":120},[86,8123,3750],{"class":2507},[86,8125,2519],{"class":120},[86,8127,8128,8130,8132,8134,8136],{"class":88,"line":5029},[86,8129,3405],{"class":120},[86,8131,2937],{"class":2507},[86,8133,3948],{"class":120},[86,8135,2937],{"class":2507},[86,8137,2519],{"class":120},[86,8139,8140,8142,8144,8146,8148],{"class":88,"line":5042},[86,8141,3405],{"class":120},[86,8143,3777],{"class":2507},[86,8145,3739],{"class":120},[86,8147,3777],{"class":2507},[86,8149,2519],{"class":120},[86,8151,8152,8154,8156,8158,8160],{"class":88,"line":5055},[86,8153,3405],{"class":120},[86,8155,2950],{"class":2507},[86,8157,3948],{"class":120},[86,8159,2950],{"class":2507},[86,8161,2519],{"class":120},[86,8163,8164,8166,8168],{"class":88,"line":5068},[86,8165,3453],{"class":120},[86,8167,2572],{"class":2507},[86,8169,2519],{"class":120},[86,8171,8172,8174,8176,8178,8180],{"class":88,"line":5077},[86,8173,2921],{"class":120},[86,8175,2554],{"class":2507},[86,8177,3705],{"class":120},[86,8179,2554],{"class":2507},[86,8181,2519],{"class":120},[86,8183,8184,8186,8188,8190,8192],{"class":88,"line":5090},[86,8185,2921],{"class":120},[86,8187,3669],{"class":2507},[86,8189,3672],{"class":120},[86,8191,3669],{"class":2507},[86,8193,2519],{"class":120},[86,8195,8196,8198,8200],{"class":88,"line":5103},[86,8197,2961],{"class":120},[86,8199,2544],{"class":2507},[86,8201,2519],{"class":120},[86,8203,8204,8206,8208,8210,8212,8214],{"class":88,"line":5112},[86,8205,2725],{"class":120},[86,8207,3382],{"class":2507},[86,8209,2511],{"class":106},[86,8211,1807],{"class":120},[86,8213,4075],{"class":110},[86,8215,2519],{"class":120},[86,8217,8218,8220,8222],{"class":88,"line":5127},[86,8219,2921],{"class":120},[86,8221,3398],{"class":2507},[86,8223,2519],{"class":120},[86,8225,8226,8228,8230],{"class":88,"line":5136},[86,8227,3405],{"class":120},[86,8229,4094],{"class":2507},[86,8231,2519],{"class":120},[86,8233,8234,8236,8238,8240,8242],{"class":88,"line":5145},[86,8235,3415],{"class":120},[86,8237,3432],{"class":2507},[86,8239,5152],{"class":120},[86,8241,3432],{"class":2507},[86,8243,2519],{"class":120},[86,8245,8246,8248,8250],{"class":88,"line":5159},[86,8247,3444],{"class":120},[86,8249,4094],{"class":2507},[86,8251,2519],{"class":120},[86,8253,8254,8256,8258],{"class":88,"line":5168},[86,8255,3453],{"class":120},[86,8257,3398],{"class":2507},[86,8259,2519],{"class":120},[86,8261,8262,8264,8266],{"class":88,"line":5177},[86,8263,2921],{"class":120},[86,8265,3464],{"class":2507},[86,8267,2519],{"class":120},[86,8269,8270,8272,8274],{"class":88,"line":5186},[86,8271,3405],{"class":120},[86,8273,3473],{"class":2507},[86,8275,2519],{"class":120},[86,8277,8278,8280,8282],{"class":88,"line":5195},[86,8279,3415],{"class":120},[86,8281,3482],{"class":2507},[86,8283,3163],{"class":120},[86,8285,8286,8288,8290],{"class":88,"line":5204},[86,8287,3444],{"class":120},[86,8289,3473],{"class":2507},[86,8291,2519],{"class":120},[86,8293,8294,8296,8298],{"class":88,"line":5213},[86,8295,3405],{"class":120},[86,8297,3499],{"class":2507},[86,8299,3163],{"class":120},[86,8301,8302,8304,8306],{"class":88,"line":5222},[86,8303,3405],{"class":120},[86,8305,3508],{"class":2507},[86,8307,3163],{"class":120},[86,8309,8310,8312,8314],{"class":88,"line":5231},[86,8311,3453],{"class":120},[86,8313,3464],{"class":2507},[86,8315,2519],{"class":120},[86,8317,8318,8320,8322],{"class":88,"line":5240},[86,8319,2961],{"class":120},[86,8321,3382],{"class":2507},[86,8323,2519],{"class":120},[86,8325,8326,8328,8330,8332,8334,8336],{"class":88,"line":5249},[86,8327,2725],{"class":120},[86,8329,3533],{"class":2507},[86,8331,2511],{"class":106},[86,8333,1807],{"class":120},[86,8335,4214],{"class":110},[86,8337,2519],{"class":120},[86,8339,8340,8342,8344],{"class":88,"line":5264},[86,8341,2921],{"class":120},[86,8343,3398],{"class":2507},[86,8345,2519],{"class":120},[86,8347,8348,8350,8352],{"class":88,"line":5273},[86,8349,3405],{"class":120},[86,8351,4094],{"class":2507},[86,8353,2519],{"class":120},[86,8355,8356,8358,8360,8362,8364],{"class":88,"line":5282},[86,8357,3415],{"class":120},[86,8359,3432],{"class":2507},[86,8361,5152],{"class":120},[86,8363,3432],{"class":2507},[86,8365,2519],{"class":120},[86,8367,8368,8370,8372],{"class":88,"line":5295},[86,8369,3444],{"class":120},[86,8371,4094],{"class":2507},[86,8373,2519],{"class":120},[86,8375,8376,8378,8380],{"class":88,"line":5304},[86,8377,3453],{"class":120},[86,8379,3398],{"class":2507},[86,8381,2519],{"class":120},[86,8383,8384,8386,8388],{"class":88,"line":5313},[86,8385,2921],{"class":120},[86,8387,3605],{"class":2507},[86,8389,2519],{"class":120},[86,8391,8392,8394,8396,8398,8400],{"class":88,"line":5322},[86,8393,3405],{"class":120},[86,8395,3289],{"class":2507},[86,8397,4284],{"class":120},[86,8399,3289],{"class":2507},[86,8401,2519],{"class":120},[86,8403,8404,8406,8408,8410,8412],{"class":88,"line":5335},[86,8405,3405],{"class":120},[86,8407,3627],{"class":2507},[86,8409,3306],{"class":120},[86,8411,3627],{"class":2507},[86,8413,2519],{"class":120},[86,8415,8416,8418,8420,8422,8424],{"class":88,"line":5348},[86,8417,3405],{"class":120},[86,8419,3640],{"class":2507},[86,8421,4311],{"class":120},[86,8423,3640],{"class":2507},[86,8425,2519],{"class":120},[86,8427,8428,8430,8432],{"class":88,"line":5361},[86,8429,3453],{"class":120},[86,8431,3605],{"class":2507},[86,8433,2519],{"class":120},[86,8435,8436,8438,8440],{"class":88,"line":5370},[86,8437,2961],{"class":120},[86,8439,3533],{"class":2507},[86,8441,2519],{"class":120},[86,8443,8444,8446,8448,8450,8452],{"class":88,"line":5379},[86,8445,2725],{"class":120},[86,8447,3669],{"class":2507},[86,8449,3672],{"class":120},[86,8451,3669],{"class":2507},[86,8453,2519],{"class":120},[86,8455,8456,8458,8460,8462,8464],{"class":88,"line":5392},[86,8457,2725],{"class":120},[86,8459,3822],{"class":2507},[86,8461,3825],{"class":120},[86,8463,3822],{"class":2507},[86,8465,2519],{"class":120},[86,8467,8468,8470,8472],{"class":88,"line":5405},[86,8469,2785],{"class":120},[86,8471,2527],{"class":2507},[86,8473,2519],{"class":120},[86,8475,8476,8478,8480,8482,8484],{"class":88,"line":5414},[86,8477,2551],{"class":120},[86,8479,3354],{"class":2507},[86,8481,3320],{"class":120},[86,8483,3354],{"class":2507},[86,8485,2519],{"class":120},[86,8487,8488,8490,8492,8494,8496],{"class":88,"line":5427},[86,8489,2551],{"class":120},[86,8491,3859],{"class":2507},[86,8493,3825],{"class":120},[86,8495,3859],{"class":2507},[86,8497,2519],{"class":120},[86,8499,8500,8502,8504],{"class":88,"line":5440},[86,8501,2622],{"class":120},[86,8503,2865],{"class":2507},[86,8505,2519],{"class":120},[86,8507,8508,8510,8512,8514,8516,8518],{"class":88,"line":5449},[86,8509,2541],{"class":120},[86,8511,2865],{"class":2507},[86,8513,2511],{"class":106},[86,8515,1807],{"class":120},[86,8517,5460],{"class":110},[86,8519,2519],{"class":120},[86,8521,8522,8524,8526,8528,8530],{"class":88,"line":5465},[86,8523,2551],{"class":120},[86,8525,3669],{"class":2507},[86,8527,5472],{"class":120},[86,8529,3669],{"class":2507},[86,8531,2519],{"class":120},[86,8533,8534,8536,8538,8540,8542,8544],{"class":88,"line":5479},[86,8535,2551],{"class":120},[86,8537,2527],{"class":2507},[86,8539,2511],{"class":106},[86,8541,1807],{"class":120},[86,8543,3918],{"class":110},[86,8545,2519],{"class":120},[86,8547,8548,8550,8552],{"class":88,"line":5494},[86,8549,2725],{"class":120},[86,8551,2544],{"class":2507},[86,8553,2519],{"class":120},[86,8555,8556,8558,8560],{"class":88,"line":5503},[86,8557,2921],{"class":120},[86,8559,2572],{"class":2507},[86,8561,2519],{"class":120},[86,8563,8564,8566,8568,8570,8572],{"class":88,"line":5512},[86,8565,3405],{"class":120},[86,8567,2924],{"class":2507},[86,8569,3948],{"class":120},[86,8571,2924],{"class":2507},[86,8573,2519],{"class":120},[86,8575,8576,8578,8580,8582,8584],{"class":88,"line":5525},[86,8577,3405],{"class":120},[86,8579,3736],{"class":2507},[86,8581,3739],{"class":120},[86,8583,3736],{"class":2507},[86,8585,2519],{"class":120},[86,8587,8588,8590,8592,8594,8596],{"class":88,"line":5538},[86,8589,3405],{"class":120},[86,8591,3750],{"class":2507},[86,8593,3739],{"class":120},[86,8595,3750],{"class":2507},[86,8597,2519],{"class":120},[86,8599,8600,8602,8604,8606,8608],{"class":88,"line":5551},[86,8601,3405],{"class":120},[86,8603,2937],{"class":2507},[86,8605,3948],{"class":120},[86,8607,2937],{"class":2507},[86,8609,2519],{"class":120},[86,8611,8612,8614,8616,8618,8620],{"class":88,"line":5564},[86,8613,3405],{"class":120},[86,8615,3777],{"class":2507},[86,8617,3739],{"class":120},[86,8619,3777],{"class":2507},[86,8621,2519],{"class":120},[86,8623,8624,8626,8628,8630,8632],{"class":88,"line":5577},[86,8625,3405],{"class":120},[86,8627,2950],{"class":2507},[86,8629,3948],{"class":120},[86,8631,2950],{"class":2507},[86,8633,2519],{"class":120},[86,8635,8636,8638,8640],{"class":88,"line":5590},[86,8637,3453],{"class":120},[86,8639,2572],{"class":2507},[86,8641,2519],{"class":120},[86,8643,8644,8646,8648,8650,8652],{"class":88,"line":5599},[86,8645,2921],{"class":120},[86,8647,2554],{"class":2507},[86,8649,3705],{"class":120},[86,8651,2554],{"class":2507},[86,8653,2519],{"class":120},[86,8655,8656,8658,8660,8662,8664],{"class":88,"line":5612},[86,8657,2921],{"class":120},[86,8659,3669],{"class":2507},[86,8661,3672],{"class":120},[86,8663,3669],{"class":2507},[86,8665,2519],{"class":120},[86,8667,8668,8670,8672],{"class":88,"line":5625},[86,8669,2961],{"class":120},[86,8671,2544],{"class":2507},[86,8673,2519],{"class":120},[86,8675,8676,8678,8680,8682,8684,8686],{"class":88,"line":5634},[86,8677,2725],{"class":120},[86,8679,3382],{"class":2507},[86,8681,2511],{"class":106},[86,8683,1807],{"class":120},[86,8685,4075],{"class":110},[86,8687,2519],{"class":120},[86,8689,8690,8692,8694],{"class":88,"line":5649},[86,8691,2921],{"class":120},[86,8693,3398],{"class":2507},[86,8695,2519],{"class":120},[86,8697,8698,8700,8702],{"class":88,"line":5658},[86,8699,3405],{"class":120},[86,8701,4094],{"class":2507},[86,8703,2519],{"class":120},[86,8705,8706,8708,8710,8712,8714],{"class":88,"line":5667},[86,8707,3415],{"class":120},[86,8709,3432],{"class":2507},[86,8711,5152],{"class":120},[86,8713,3432],{"class":2507},[86,8715,2519],{"class":120},[86,8717,8718,8720,8722],{"class":88,"line":5680},[86,8719,3444],{"class":120},[86,8721,4094],{"class":2507},[86,8723,2519],{"class":120},[86,8725,8726,8728,8730],{"class":88,"line":5689},[86,8727,3453],{"class":120},[86,8729,3398],{"class":2507},[86,8731,2519],{"class":120},[86,8733,8734,8736,8738],{"class":88,"line":5698},[86,8735,2921],{"class":120},[86,8737,3464],{"class":2507},[86,8739,2519],{"class":120},[86,8741,8742,8744,8746],{"class":88,"line":5707},[86,8743,3405],{"class":120},[86,8745,3473],{"class":2507},[86,8747,2519],{"class":120},[86,8749,8750,8752,8754],{"class":88,"line":5716},[86,8751,3415],{"class":120},[86,8753,3482],{"class":2507},[86,8755,3163],{"class":120},[86,8757,8758,8760,8762],{"class":88,"line":5725},[86,8759,3444],{"class":120},[86,8761,3473],{"class":2507},[86,8763,2519],{"class":120},[86,8765,8766,8768,8770],{"class":88,"line":5734},[86,8767,3405],{"class":120},[86,8769,3499],{"class":2507},[86,8771,3163],{"class":120},[86,8773,8774,8776,8778],{"class":88,"line":5743},[86,8775,3405],{"class":120},[86,8777,3508],{"class":2507},[86,8779,3163],{"class":120},[86,8781,8782,8784,8786],{"class":88,"line":5752},[86,8783,3453],{"class":120},[86,8785,3464],{"class":2507},[86,8787,2519],{"class":120},[86,8789,8790,8792,8794],{"class":88,"line":5761},[86,8791,2961],{"class":120},[86,8793,3382],{"class":2507},[86,8795,2519],{"class":120},[86,8797,8798,8800,8802,8804,8806,8808],{"class":88,"line":5770},[86,8799,2725],{"class":120},[86,8801,3533],{"class":2507},[86,8803,2511],{"class":106},[86,8805,1807],{"class":120},[86,8807,4214],{"class":110},[86,8809,2519],{"class":120},[86,8811,8812,8814,8816],{"class":88,"line":5785},[86,8813,2921],{"class":120},[86,8815,3398],{"class":2507},[86,8817,2519],{"class":120},[86,8819,8820,8822,8824],{"class":88,"line":5794},[86,8821,3405],{"class":120},[86,8823,4094],{"class":2507},[86,8825,2519],{"class":120},[86,8827,8828,8830,8832,8834,8836],{"class":88,"line":5803},[86,8829,3415],{"class":120},[86,8831,3432],{"class":2507},[86,8833,5152],{"class":120},[86,8835,3432],{"class":2507},[86,8837,2519],{"class":120},[86,8839,8840,8842,8844],{"class":88,"line":5816},[86,8841,3444],{"class":120},[86,8843,4094],{"class":2507},[86,8845,2519],{"class":120},[86,8847,8848,8850,8852],{"class":88,"line":5825},[86,8849,3453],{"class":120},[86,8851,3398],{"class":2507},[86,8853,2519],{"class":120},[86,8855,8856,8858,8860],{"class":88,"line":5834},[86,8857,2921],{"class":120},[86,8859,3605],{"class":2507},[86,8861,2519],{"class":120},[86,8863,8864,8866,8868,8870,8872],{"class":88,"line":5843},[86,8865,3405],{"class":120},[86,8867,3289],{"class":2507},[86,8869,4284],{"class":120},[86,8871,3289],{"class":2507},[86,8873,2519],{"class":120},[86,8875,8876,8878,8880,8882,8884],{"class":88,"line":5856},[86,8877,3405],{"class":120},[86,8879,3627],{"class":2507},[86,8881,3306],{"class":120},[86,8883,3627],{"class":2507},[86,8885,2519],{"class":120},[86,8887,8888,8890,8892,8894,8896],{"class":88,"line":5869},[86,8889,3405],{"class":120},[86,8891,3640],{"class":2507},[86,8893,4311],{"class":120},[86,8895,3640],{"class":2507},[86,8897,2519],{"class":120},[86,8899,8900,8902,8904],{"class":88,"line":5882},[86,8901,3453],{"class":120},[86,8903,3605],{"class":2507},[86,8905,2519],{"class":120},[86,8907,8908,8910,8912],{"class":88,"line":5891},[86,8909,2961],{"class":120},[86,8911,3533],{"class":2507},[86,8913,2519],{"class":120},[86,8915,8916,8918,8920,8922,8924],{"class":88,"line":5900},[86,8917,2725],{"class":120},[86,8919,3669],{"class":2507},[86,8921,3672],{"class":120},[86,8923,3669],{"class":2507},[86,8925,2519],{"class":120},[86,8927,8928,8930,8932,8934,8936],{"class":88,"line":5913},[86,8929,2725],{"class":120},[86,8931,3822],{"class":2507},[86,8933,3825],{"class":120},[86,8935,3822],{"class":2507},[86,8937,2519],{"class":120},[86,8939,8940,8942,8944],{"class":88,"line":5926},[86,8941,2785],{"class":120},[86,8943,2527],{"class":2507},[86,8945,2519],{"class":120},[86,8947,8948,8950,8952,8954,8956],{"class":88,"line":5935},[86,8949,2551],{"class":120},[86,8951,3354],{"class":2507},[86,8953,3320],{"class":120},[86,8955,3354],{"class":2507},[86,8957,2519],{"class":120},[86,8959,8960,8962,8964,8966,8968],{"class":88,"line":5948},[86,8961,2551],{"class":120},[86,8963,3859],{"class":2507},[86,8965,3825],{"class":120},[86,8967,3859],{"class":2507},[86,8969,2519],{"class":120},[86,8971,8972,8974,8976],{"class":88,"line":5961},[86,8973,2622],{"class":120},[86,8975,2865],{"class":2507},[86,8977,2519],{"class":120},[86,8979,8980,8982,8984,8986,8988,8990,8992,8994,8996],{"class":88,"line":5970},[86,8981,2541],{"class":120},[86,8983,5975],{"class":2507},[86,8985,2511],{"class":106},[86,8987,1807],{"class":120},[86,8989,5982],{"class":110},[86,8991,3081],{"class":106},[86,8993,1807],{"class":120},[86,8995,5989],{"class":110},[86,8997,2519],{"class":120},[86,8999,9000,9002,9004,9006,9008],{"class":88,"line":5994},[86,9001,2551],{"class":120},[86,9003,3669],{"class":2507},[86,9005,6001],{"class":120},[86,9007,3669],{"class":2507},[86,9009,2519],{"class":120},[86,9011,9012,9014,9016,9018,9020],{"class":88,"line":6008},[86,9013,2551],{"class":120},[86,9015,6013],{"class":2507},[86,9017,3320],{"class":120},[86,9019,6013],{"class":2507},[86,9021,2519],{"class":120},[86,9023,9024,9026,9028,9030,9032],{"class":88,"line":6022},[86,9025,2551],{"class":120},[86,9027,6027],{"class":2507},[86,9029,3112],{"class":120},[86,9031,6027],{"class":2507},[86,9033,2519],{"class":120},[86,9035,9036,9038,9040,9042,9044],{"class":88,"line":6036},[86,9037,2551],{"class":120},[86,9039,6041],{"class":2507},[86,9041,6044],{"class":120},[86,9043,6041],{"class":2507},[86,9045,2519],{"class":120},[86,9047,9048,9050,9052,9054,9056],{"class":88,"line":6051},[86,9049,2551],{"class":120},[86,9051,3627],{"class":2507},[86,9053,3616],{"class":120},[86,9055,3627],{"class":2507},[86,9057,2519],{"class":120},[86,9059,9060,9062,9064,9066,9068],{"class":88,"line":6064},[86,9061,2551],{"class":120},[86,9063,3640],{"class":2507},[86,9065,6071],{"class":120},[86,9067,3640],{"class":2507},[86,9069,2519],{"class":120},[86,9071,9072,9074,9076],{"class":88,"line":6078},[86,9073,2551],{"class":120},[86,9075,6083],{"class":2507},[86,9077,2519],{"class":120},[86,9079,9080,9082,9084,9086,9088],{"class":88,"line":6088},[86,9081,2725],{"class":120},[86,9083,6093],{"class":2507},[86,9085,3126],{"class":120},[86,9087,6093],{"class":2507},[86,9089,2519],{"class":120},[86,9091,9092,9094,9096,9098,9100],{"class":88,"line":6102},[86,9093,2725],{"class":120},[86,9095,6107],{"class":2507},[86,9097,6110],{"class":120},[86,9099,6107],{"class":2507},[86,9101,2519],{"class":120},[86,9103,9104,9106,9108,9110,9112],{"class":88,"line":6117},[86,9105,2725],{"class":120},[86,9107,6122],{"class":2507},[86,9109,6125],{"class":120},[86,9111,6122],{"class":2507},[86,9113,2519],{"class":120},[86,9115,9116,9118,9120,9122,9124],{"class":88,"line":6132},[86,9117,2725],{"class":120},[86,9119,6137],{"class":2507},[86,9121,3098],{"class":120},[86,9123,6137],{"class":2507},[86,9125,2519],{"class":120},[86,9127,9128,9130,9132],{"class":88,"line":6146},[86,9129,2785],{"class":120},[86,9131,6083],{"class":2507},[86,9133,2519],{"class":120},[86,9135,9136,9138,9140],{"class":88,"line":6155},[86,9137,2551],{"class":120},[86,9139,6160],{"class":2507},[86,9141,2519],{"class":120},[86,9143,9144,9146,9148,9150,9152],{"class":88,"line":6165},[86,9145,2725],{"class":120},[86,9147,6170],{"class":2507},[86,9149,3739],{"class":120},[86,9151,6170],{"class":2507},[86,9153,2519],{"class":120},[86,9155,9156,9158,9160,9162,9164],{"class":88,"line":6179},[86,9157,2725],{"class":120},[86,9159,6184],{"class":2507},[86,9161,3739],{"class":120},[86,9163,6184],{"class":2507},[86,9165,2519],{"class":120},[86,9167,9168,9170,9172,9174,9176],{"class":88,"line":6193},[86,9169,2725],{"class":120},[86,9171,6198],{"class":2507},[86,9173,3739],{"class":120},[86,9175,6198],{"class":2507},[86,9177,2519],{"class":120},[86,9179,9180,9182,9184],{"class":88,"line":6207},[86,9181,2785],{"class":120},[86,9183,6160],{"class":2507},[86,9185,2519],{"class":120},[86,9187,9188,9190,9192],{"class":88,"line":6216},[86,9189,2622],{"class":120},[86,9191,5975],{"class":2507},[86,9193,2519],{"class":120},[86,9195,9196,9198,9200],{"class":88,"line":6225},[86,9197,2631],{"class":120},[86,9199,3055],{"class":2507},[86,9201,2519],{"class":120},[86,9203,9204,9206,9208],{"class":88,"line":6234},[86,9205,2640],{"class":120},[86,9207,2848],{"class":2507},[86,9209,2519],{"class":120},[17,9211,9212],{},[21,9213,9214],{},"3.编写launch文件",[17,9216,9217],{},"在launch目录下新建launch文件gazebo_sim_world.launch.py，并输入如下内容：",[76,9219,9221],{"className":1657,"code":9220,"language":1659,"meta":81,"style":81},"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",[83,9222,9223,9229,9233,9243,9247,9257,9267,9277,9281,9289,9293,9305,9317,9335,9339,9347,9351,9363,9371,9383,9387,9391,9397,9402],{"__ignoreMap":81},[86,9224,9225,9227],{"class":88,"line":89},[86,9226,1666],{"class":736},[86,9228,1669],{"class":120},[86,9230,9231],{"class":88,"line":96},[86,9232,93],{"emptyLinePlaceholder":92},[86,9234,9235,9237,9239,9241],{"class":88,"line":103},[86,9236,1678],{"class":736},[86,9238,1681],{"class":120},[86,9240,1666],{"class":736},[86,9242,1686],{"class":120},[86,9244,9245],{"class":88,"line":127},[86,9246,93],{"emptyLinePlaceholder":92},[86,9248,9249,9251,9253,9255],{"class":88,"line":132},[86,9250,1678],{"class":736},[86,9252,1697],{"class":120},[86,9254,1666],{"class":736},[86,9256,1702],{"class":120},[86,9258,9259,9261,9263,9265],{"class":88,"line":138},[86,9260,1678],{"class":736},[86,9262,1709],{"class":120},[86,9264,1666],{"class":736},[86,9266,1725],{"class":120},[86,9268,9269,9271,9273,9275],{"class":88,"line":150},[86,9270,1678],{"class":736},[86,9272,1744],{"class":120},[86,9274,1666],{"class":736},[86,9276,1749],{"class":120},[86,9278,9279],{"class":88,"line":155},[86,9280,93],{"emptyLinePlaceholder":92},[86,9282,9283,9285,9287],{"class":88,"line":161},[86,9284,1787],{"class":736},[86,9286,1790],{"class":106},[86,9288,1793],{"class":120},[86,9290,9291],{"class":88,"line":408},[86,9292,93],{"emptyLinePlaceholder":92},[86,9294,9295,9297,9299,9301,9303],{"class":88,"line":414},[86,9296,1804],{"class":120},[86,9298,1807],{"class":736},[86,9300,1810],{"class":120},[86,9302,1813],{"class":110},[86,9304,1576],{"class":120},[86,9306,9307,9309,9311,9313,9315],{"class":88,"line":420},[86,9308,1821],{"class":120},[86,9310,1807],{"class":736},[86,9312,1810],{"class":120},[86,9314,1828],{"class":110},[86,9316,1576],{"class":120},[86,9318,9319,9321,9323,9325,9328,9330,9333],{"class":88,"line":426},[86,9320,1836],{"class":120},[86,9322,1807],{"class":736},[86,9324,1841],{"class":120},[86,9326,9327],{"class":110},"\"world\"",[86,9329,1847],{"class":120},[86,9331,9332],{"class":110},"\"house.sdf\"",[86,9334,1576],{"class":120},[86,9336,9337],{"class":88,"line":1784},[86,9338,93],{"emptyLinePlaceholder":92},[86,9340,9341,9343,9345],{"class":88,"line":1796},[86,9342,1863],{"class":120},[86,9344,1807],{"class":736},[86,9346,1868],{"class":120},[86,9348,9349],{"class":88,"line":1801},[86,9350,1874],{"class":120},[86,9352,9353,9355,9357,9359,9361],{"class":88,"line":1818},[86,9354,1880],{"class":120},[86,9356,1883],{"class":110},[86,9358,1886],{"class":120},[86,9360,1889],{"class":110},[86,9362,1892],{"class":120},[86,9364,9365,9367,9369],{"class":88,"line":1833},[86,9366,1899],{"class":1898},[86,9368,1807],{"class":736},[86,9370,1904],{"class":120},[86,9372,9373,9375,9377,9379,9381],{"class":88,"line":1855},[86,9374,1910],{"class":110},[86,9376,1913],{"class":120},[86,9378,1916],{"class":110},[86,9380,1919],{"class":736},[86,9382,1922],{"class":120},[86,9384,9385],{"class":88,"line":1860},[86,9386,1928],{"class":120},[86,9388,9389],{"class":88,"line":1871},[86,9390,1934],{"class":120},[86,9392,9393,9395],{"class":88,"line":1877},[86,9394,2212],{"class":736},[86,9396,2215],{"class":120},[86,9398,9399],{"class":88,"line":1895},[86,9400,9401],{"class":120},"        gz_sim\n",[86,9403,9404],{"class":88,"line":1907},[86,9405,2272],{"class":120},[17,9407,9408],{},[21,9409,9410],{},"4.构建",[17,9412,2288],{},[76,9414,9415],{"className":78,"code":2291,"language":80,"meta":81,"style":81},[83,9416,9417],{"__ignoreMap":81},[86,9418,9419,9421,9423,9425],{"class":88,"line":89},[86,9420,2298],{"class":106},[86,9422,2301],{"class":110},[86,9424,2304],{"class":550},[86,9426,1542],{"class":110},[17,9428,9429],{},[21,9430,9431],{},"5.执行",[17,9433,2319],{},[76,9435,9437],{"className":78,"code":9436,"language":80,"meta":81,"style":81},". install\u002Fsetup.bash\nros2 launch demo_gazebo_sim gazebo_sim_world.launch.py\n",[83,9438,9439,9445],{"__ignoreMap":81},[86,9440,9441,9443],{"class":88,"line":89},[86,9442,2329],{"class":550},[86,9444,2332],{"class":110},[86,9446,9447,9449,9451,9453],{"class":88,"line":96},[86,9448,237],{"class":106},[86,9450,240],{"class":110},[86,9452,2341],{"class":110},[86,9454,9455],{"class":110}," gazebo_sim_world.launch.py\n",[17,9457,9458],{},"运行结果如下图所示。",[17,9460,9461],{},"也可以根据个人喜好，继续设计房间模型。",[17,9463,9464],{},[174,9465],{"alt":81,"src":9466},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1730.webp",[34,9468,9470],{"id":9469},"gz-sim添加模型",[21,9471,9472],{},"Gz Sim添加模型",[17,9474,9475],{},"在Gazebo官网提供了许多仿真模型，可以自行下载并使用以优化仿真环境，使其更多样、美观且真实。",[17,9477,9478],{},[21,9479,9480],{},"资源下载",[17,9482,9483],{},"仿真Gazebo的官方模型链接：",[17,9485,9486],{},[26,9487,9488],{"href":9488,"rel":9489},"https:\u002F\u002Fapp.gazebosim.org\u002Ffuel\u002Fmodels",[30],[17,9491,9492],{},"自行选择仿真模型点击进入详情页面，然后点击下载按钮即可将模型资源保存到本地。",[17,9494,9495,9496,9499],{},"在用户目录下新建",[83,9497,9498],{},"ign_models","目录，将下载的资源解压缩到该目录以作备用。\n这个目录的名字随便起，你想起什么起什么，但是前提是纯英文，符合Linux命名规则，别有非法。",[17,9501,9502],{},[21,9503,9504],{},"资源配置",[17,9506,9507],{},"为了可以让Gazebo识别到模型资源，下一步还需要修改用户目录下的 .bashrc 文件，添加如下代码：",[76,9509,9511],{"className":78,"code":9510,"language":80,"meta":81,"style":81},"# Jazzy版本的宏如下：\nexport GZ_SIM_RESOURCE_PATH=~\u002Fign_models\n\n# Humble版本一般是下面的\nexport IGN_GAZEBO_RESOURCE_PATH=~\u002Fign_models\n",[83,9512,9513,9518,9532,9536,9541],{"__ignoreMap":81},[86,9514,9515],{"class":88,"line":89},[86,9516,9517],{"class":99},"# Jazzy版本的宏如下：\n",[86,9519,9520,9523,9526,9529],{"class":88,"line":96},[86,9521,9522],{"class":736},"export",[86,9524,9525],{"class":120}," GZ_SIM_RESOURCE_PATH",[86,9527,9528],{"class":736},"=~",[86,9530,9531],{"class":120},"\u002Fign_models\n",[86,9533,9534],{"class":88,"line":103},[86,9535,93],{"emptyLinePlaceholder":92},[86,9537,9538],{"class":88,"line":127},[86,9539,9540],{"class":99},"# Humble版本一般是下面的\n",[86,9542,9543,9545,9548,9550],{"class":88,"line":132},[86,9544,9522],{"class":736},[86,9546,9547],{"class":120}," IGN_GAZEBO_RESOURCE_PATH",[86,9549,9528],{"class":736},[86,9551,9531],{"class":120},[17,9553,9554],{},[26,9555,9556],{"href":9556,"rel":9557},"https:\u002F\u002Fgazebosim.org\u002Fdocs\u002Flatest\u002Ffuel_insert\u002F",[30],[17,9559,9560],{},[21,9561,9562],{},"模型添加",[17,9564,9565,9566,9569,9570,9573,9574,9577],{},"终端下进入功能包demo_gazebo_sim的world目录，使用指令",[83,9567,9568],{},"gz sim house.sdf","启动仿真环境，点击窗口右上的折叠按钮，搜索",[83,9571,9572],{},"Resource Spawner","并打开，点击",[83,9575,9576],{},"Local resources","并选择模型拖拽至仿真环境中。将修改后的内容保存至house.sdf文件。",[17,9579,9580],{},[174,9581],{"alt":81,"src":9582},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1731.webp",[17,9584,9585],{},"正常下载资源后，这个local resources这里就会显示了",[17,9587,9588],{},"house.sdf文件示例内容如下：",[76,9590,9592],{"className":2495,"code":9591,"language":2497,"meta":81,"style":81},"\u003Csdf version='1.10'>\n  \u003Cworld name='empty'>\n    \u003Cphysics name='1ms' type='ignored'>\n      \u003Cmax_step_size>0.001\u003C\u002Fmax_step_size>\n      \u003Creal_time_factor>1\u003C\u002Freal_time_factor>\n      \u003Creal_time_update_rate>1000\u003C\u002Freal_time_update_rate>\n    \u003C\u002Fphysics>\n    \u003Cplugin name='gz::sim::systems::Physics' filename='gz-sim-physics-system'\u002F>\n    \u003Cplugin name='gz::sim::systems::UserCommands' filename='gz-sim-user-commands-system'\u002F>\n    \u003Cplugin name='gz::sim::systems::SceneBroadcaster' filename='gz-sim-scene-broadcaster-system'\u002F>\n    \u003Cplugin name='gz::sim::systems::Contact' filename='gz-sim-contact-system'\u002F>\n    \u003Cgravity>0 0 -9.8\u003C\u002Fgravity>\n    \u003Cmagnetic_field>6e-06 2.3e-05 -4.2e-05\u003C\u002Fmagnetic_field>\n    \u003Catmosphere type='adiabatic'\u002F>\n    \u003Cscene>\n      \u003Cambient>0.4 0.4 0.4 1\u003C\u002Fambient>\n      \u003Cbackground>0.7 0.7 0.7 1\u003C\u002Fbackground>\n      \u003Cshadows>true\u003C\u002Fshadows>\n    \u003C\u002Fscene>\n    \u003Cmodel name='ground_plane'>\n      \u003Cstatic>true\u003C\u002Fstatic>\n      \u003Clink name='link'>\n        \u003Ccollision name='collision'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C\u002Fnormal>\n              \u003Csize>100 100\u003C\u002Fsize>\n            \u003C\u002Fplane>\n          \u003C\u002Fgeometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code\u002F>\n            \u003C\u002Ffriction>\n            \u003Cbounce\u002F>\n            \u003Ccontact\u002F>\n          \u003C\u002Fsurface>\n        \u003C\u002Fcollision>\n        \u003Cvisual name='visual'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C\u002Fnormal>\n              \u003Csize>100 100\u003C\u002Fsize>\n            \u003C\u002Fplane>\n          \u003C\u002Fgeometry>\n          \u003Cmaterial>\n            \u003Cambient>0.8 0.8 0.8 1\u003C\u002Fambient>\n            \u003Cdiffuse>0.8 0.8 0.8 1\u003C\u002Fdiffuse>\n            \u003Cspecular>0.8 0.8 0.8 1\u003C\u002Fspecular>\n          \u003C\u002Fmaterial>\n        \u003C\u002Fvisual>\n        \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003Cinertial>\n          \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n          \u003Cmass>100\u003C\u002Fmass>\n          \u003Cinertia>\n            \u003Cixx>1\u003C\u002Fixx>\n            \u003Cixy>0\u003C\u002Fixy>\n            \u003Cixz>0\u003C\u002Fixz>\n            \u003Ciyy>1\u003C\u002Fiyy>\n            \u003Ciyz>0\u003C\u002Fiyz>\n            \u003Cizz>1\u003C\u002Fizz>\n          \u003C\u002Finertia>\n        \u003C\u002Finertial>\n        \u003Cenable_wind>false\u003C\u002Fenable_wind>\n      \u003C\u002Flink>\n      \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n      \u003Cself_collide>false\u003C\u002Fself_collide>\n    \u003C\u002Fmodel>\n    \u003Cmodel name='box'>\n      \u003Cpose>5.05017 0 0.5 -0 0 3e-05\u003C\u002Fpose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C\u002Fixx>\n            \u003Cixy>0\u003C\u002Fixy>\n            \u003Cixz>0\u003C\u002Fixz>\n            \u003Ciyy>16.666\u003C\u002Fiyy>\n            \u003Ciyz>0\u003C\u002Fiyz>\n            \u003Cizz>16.666\u003C\u002Fizz>\n          \u003C\u002Finertia>\n          \u003Cmass>100\u003C\u002Fmass>\n          \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003C\u002Finertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code\u002F>\n            \u003C\u002Ffriction>\n            \u003Cbounce\u002F>\n            \u003Ccontact\u002F>\n          \u003C\u002Fsurface>\n        \u003C\u002Fcollision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C\u002Fambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C\u002Fdiffuse>\n            \u003Cspecular>1 1 1 1\u003C\u002Fspecular>\n          \u003C\u002Fmaterial>\n        \u003C\u002Fvisual>\n        \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003Cenable_wind>false\u003C\u002Fenable_wind>\n      \u003C\u002Flink>\n      \u003Cstatic>true\u003C\u002Fstatic>\n      \u003Cself_collide>false\u003C\u002Fself_collide>\n    \u003C\u002Fmodel>\n    \u003Cmodel name='box_0'>\n      \u003Cpose>-5.05003 -7.8e-05 0.5 -0 -0 1.8e-05\u003C\u002Fpose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C\u002Fixx>\n            \u003Cixy>0\u003C\u002Fixy>\n            \u003Cixz>0\u003C\u002Fixz>\n            \u003Ciyy>16.666\u003C\u002Fiyy>\n            \u003Ciyz>0\u003C\u002Fiyz>\n            \u003Cizz>16.666\u003C\u002Fizz>\n          \u003C\u002Finertia>\n          \u003Cmass>100\u003C\u002Fmass>\n          \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003C\u002Finertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code\u002F>\n            \u003C\u002Ffriction>\n            \u003Cbounce\u002F>\n            \u003Ccontact\u002F>\n          \u003C\u002Fsurface>\n        \u003C\u002Fcollision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C\u002Fambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C\u002Fdiffuse>\n            \u003Cspecular>1 1 1 1\u003C\u002Fspecular>\n          \u003C\u002Fmaterial>\n        \u003C\u002Fvisual>\n        \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003Cenable_wind>false\u003C\u002Fenable_wind>\n      \u003C\u002Flink>\n      \u003Cstatic>true\u003C\u002Fstatic>\n      \u003Cself_collide>false\u003C\u002Fself_collide>\n    \u003C\u002Fmodel>\n    \u003Cmodel name='box_1'>\n      \u003Cpose>0.000162 -2.53144 0.499999 0 -0 -0.001876\u003C\u002Fpose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C\u002Fixx>\n            \u003Cixy>0\u003C\u002Fixy>\n            \u003Cixz>0\u003C\u002Fixz>\n            \u003Ciyy>16.666\u003C\u002Fiyy>\n            \u003Ciyz>0\u003C\u002Fiyz>\n            \u003Cizz>16.666\u003C\u002Fizz>\n          \u003C\u002Finertia>\n          \u003Cmass>100\u003C\u002Fmass>\n          \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003C\u002Finertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code\u002F>\n            \u003C\u002Ffriction>\n            \u003Cbounce\u002F>\n            \u003Ccontact\u002F>\n          \u003C\u002Fsurface>\n        \u003C\u002Fcollision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C\u002Fambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C\u002Fdiffuse>\n            \u003Cspecular>1 1 1 1\u003C\u002Fspecular>\n          \u003C\u002Fmaterial>\n        \u003C\u002Fvisual>\n        \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003Cenable_wind>false\u003C\u002Fenable_wind>\n      \u003C\u002Flink>\n      \u003Cstatic>true\u003C\u002Fstatic>\n      \u003Cself_collide>false\u003C\u002Fself_collide>\n    \u003C\u002Fmodel>\n    \u003Cmodel name='box_2'>\n      \u003Cpose>0.00012 2.51517 0.499999 0 -0 -0.00303\u003C\u002Fpose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C\u002Fixx>\n            \u003Cixy>0\u003C\u002Fixy>\n            \u003Cixz>0\u003C\u002Fixz>\n            \u003Ciyy>16.666\u003C\u002Fiyy>\n            \u003Ciyz>0\u003C\u002Fiyz>\n            \u003Cizz>16.666\u003C\u002Fizz>\n          \u003C\u002Finertia>\n          \u003Cmass>100\u003C\u002Fmass>\n          \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003C\u002Finertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code\u002F>\n            \u003C\u002Ffriction>\n            \u003Cbounce\u002F>\n            \u003Ccontact\u002F>\n          \u003C\u002Fsurface>\n        \u003C\u002Fcollision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C\u002Fsize>\n            \u003C\u002Fbox>\n          \u003C\u002Fgeometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C\u002Fambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C\u002Fdiffuse>\n            \u003Cspecular>1 1 1 1\u003C\u002Fspecular>\n          \u003C\u002Fmaterial>\n        \u003C\u002Fvisual>\n        \u003Cpose>0 0 0 0 -0 0\u003C\u002Fpose>\n        \u003Cenable_wind>false\u003C\u002Fenable_wind>\n      \u003C\u002Flink>\n      \u003Cstatic>true\u003C\u002Fstatic>\n      \u003Cself_collide>false\u003C\u002Fself_collide>\n    \u003C\u002Fmodel>\n    \u003C!-- Jazzy 迁移说明开始：下面是本机 file:\u002F\u002F 模型目录，ign_models 只是文件夹名，不属于 Gazebo API，因此保留不改。 -->\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002Fbed\u003C\u002Furi>\n      \u003Cname>Bed\u003C\u002Fname>\n      \u003Cpose>2.11564 -0.080355 0 0 -0 0\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet\u003C\u002Fname>\n      \u003Cpose>-1.69505 1.99357 0 0 0 -1.59625\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet_1\u003C\u002Fname>\n      \u003Cpose>-1.71706 1.10132 0 0 0 -1.59625\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet_2\u003C\u002Fname>\n      \u003Cpose>-1.74096 0.206747 0 0 0 -1.59625\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet_3\u003C\u002Fname>\n      \u003Cpose>-1.76908 -0.654114 0 0 0 -1.59625\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet_4\u003C\u002Fname>\n      \u003Cpose>-3.54096 -1.97391 0 0 0 -1.59625\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet_4_1\u003C\u002Fname>\n      \u003Cpose>-3.51784 -1.10026 0 0 0 -1.59625\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet_4_1_1\u003C\u002Fname>\n      \u003Cpose>-3.44853 2.02068 0 0 0 -1.59625\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet_4_1_1_1\u003C\u002Fname>\n      \u003Cpose>-3.499 -0.197449 0 0 0 -1.59625\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet_3_1\u003C\u002Fname>\n      \u003Cpose>-0.465147 -0.678914 0 0 0 -1.59625\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet_3_1_1\u003C\u002Fname>\n      \u003Cpose>-1.12325 -0.88551 0 0 0 -0.016899\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet_3_1_2\u003C\u002Fname>\n      \u003Cpose>-0.445223 0.182127 0 0 0 -1.59625\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003Cinclude>\n      \u003Curi>file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002Furi>\n      \u003Cname>WhiteCabinet_3_1_2_1\u003C\u002Fname>\n      \u003Cpose>-0.422109 1.02215 0 0 0 -1.59625\u003C\u002Fpose>\n    \u003C\u002Finclude>\n    \u003C!-- Jazzy 迁移说明结束：如果以后重命名本机模型目录，需要同步修改这些 file:\u002F\u002F 路径。 -->\n    \u003Clight name='sun' type='directional'>\n      \u003Cpose>0 0 10 0 -0 0\u003C\u002Fpose>\n      \u003Ccast_shadows>true\u003C\u002Fcast_shadows>\n      \u003Cintensity>1\u003C\u002Fintensity>\n      \u003Cdirection>-0.5 0.1 -0.9\u003C\u002Fdirection>\n      \u003Cdiffuse>0.8 0.8 0.8 1\u003C\u002Fdiffuse>\n      \u003Cspecular>0.2 0.2 0.2 1\u003C\u002Fspecular>\n      \u003Cattenuation>\n        \u003Crange>1000\u003C\u002Frange>\n        \u003Clinear>0.01\u003C\u002Flinear>\n        \u003Cconstant>0.90000000000000002\u003C\u002Fconstant>\n        \u003Cquadratic>0.001\u003C\u002Fquadratic>\n      \u003C\u002Fattenuation>\n      \u003Cspot>\n        \u003Cinner_angle>0\u003C\u002Finner_angle>\n        \u003Couter_angle>0\u003C\u002Fouter_angle>\n        \u003Cfalloff>0\u003C\u002Ffalloff>\n      \u003C\u002Fspot>\n    \u003C\u002Flight>\n  \u003C\u002Fworld>\n\u003C\u002Fsdf>\n\n",[83,9593,9594,9608,9622,9642,9654,9666,9678,9686,9706,9726,9746,9766,9778,9790,9804,9812,9824,9836,9848,9856,9870,9882,9896,9910,9918,9926,9938,9950,9958,9966,9974,9982,9990,9998,10006,10014,10022,10030,10044,10052,10060,10072,10084,10092,10100,10108,10120,10132,10144,10152,10160,10172,10180,10192,10204,10212,10224,10236,10248,10260,10272,10284,10292,10300,10312,10320,10332,10344,10352,10366,10379,10393,10401,10409,10421,10433,10445,10457,10469,10481,10489,10501,10513,10521,10535,10543,10551,10563,10571,10579,10587,10595,10603,10611,10619,10627,10635,10643,10657,10665,10673,10685,10693,10701,10709,10721,10733,10745,10753,10761,10773,10785,10793,10805,10817,10825,10839,10852,10866,10874,10882,10894,10906,10918,10930,10942,10954,10962,10974,10986,10994,11008,11016,11024,11036,11044,11052,11060,11068,11076,11084,11092,11100,11108,11116,11130,11138,11146,11158,11166,11174,11182,11194,11206,11218,11226,11234,11246,11258,11266,11278,11290,11298,11312,11325,11339,11347,11355,11367,11379,11391,11403,11415,11427,11435,11447,11459,11467,11481,11489,11497,11509,11517,11525,11533,11541,11549,11557,11565,11573,11581,11589,11603,11611,11619,11631,11639,11647,11655,11667,11679,11691,11699,11707,11719,11731,11739,11751,11763,11771,11785,11798,11812,11820,11828,11840,11852,11864,11876,11888,11900,11908,11920,11932,11940,11954,11962,11970,11982,11990,11998,12006,12014,12022,12030,12038,12046,12054,12062,12076,12084,12092,12104,12112,12120,12128,12140,12152,12164,12172,12180,12192,12204,12212,12224,12236,12244,12249,12258,12272,12285,12298,12306,12314,12327,12340,12353,12361,12369,12381,12394,12407,12415,12423,12435,12448,12461,12469,12478,12491,12505,12519,12528,12537,12550,12564,12578,12587,12596,12609,12623,12637,12646,12655,12668,12682,12696,12705,12714,12727,12741,12755,12764,12773,12786,12800,12814,12823,12832,12845,12859,12873,12882,12891,12904,12918,12932,12941,12950,12963,12977,12991,13000,13006,13027,13040,13053,13066,13079,13092,13105,13114,13127,13140,13153,13166,13175,13184,13197,13210,13223,13232,13241,13250],{"__ignoreMap":81},[86,9595,9596,9598,9600,9602,9604,9606],{"class":88,"line":89},[86,9597,2504],{"class":120},[86,9599,2848],{"class":2507},[86,9601,2851],{"class":106},[86,9603,1807],{"class":120},[86,9605,3046],{"class":110},[86,9607,2519],{"class":120},[86,9609,9610,9612,9614,9616,9618,9620],{"class":88,"line":96},[86,9611,2524],{"class":120},[86,9613,3055],{"class":2507},[86,9615,2511],{"class":106},[86,9617,1807],{"class":120},[86,9619,3062],{"class":110},[86,9621,2519],{"class":120},[86,9623,9624,9626,9628,9630,9632,9634,9636,9638,9640],{"class":88,"line":103},[86,9625,2541],{"class":120},[86,9627,3071],{"class":2507},[86,9629,2511],{"class":106},[86,9631,1807],{"class":120},[86,9633,3078],{"class":110},[86,9635,3081],{"class":106},[86,9637,1807],{"class":120},[86,9639,3086],{"class":110},[86,9641,2519],{"class":120},[86,9643,9644,9646,9648,9650,9652],{"class":88,"line":127},[86,9645,2551],{"class":120},[86,9647,3095],{"class":2507},[86,9649,3098],{"class":120},[86,9651,3095],{"class":2507},[86,9653,2519],{"class":120},[86,9655,9656,9658,9660,9662,9664],{"class":88,"line":132},[86,9657,2551],{"class":120},[86,9659,3109],{"class":2507},[86,9661,3112],{"class":120},[86,9663,3109],{"class":2507},[86,9665,2519],{"class":120},[86,9667,9668,9670,9672,9674,9676],{"class":88,"line":138},[86,9669,2551],{"class":120},[86,9671,3123],{"class":2507},[86,9673,3126],{"class":120},[86,9675,3123],{"class":2507},[86,9677,2519],{"class":120},[86,9679,9680,9682,9684],{"class":88,"line":150},[86,9681,2622],{"class":120},[86,9683,3071],{"class":2507},[86,9685,2519],{"class":120},[86,9687,9688,9690,9692,9694,9696,9698,9700,9702,9704],{"class":88,"line":155},[86,9689,2541],{"class":120},[86,9691,3145],{"class":2507},[86,9693,2511],{"class":106},[86,9695,1807],{"class":120},[86,9697,3152],{"class":110},[86,9699,3155],{"class":106},[86,9701,1807],{"class":120},[86,9703,3160],{"class":110},[86,9705,3163],{"class":120},[86,9707,9708,9710,9712,9714,9716,9718,9720,9722,9724],{"class":88,"line":161},[86,9709,2541],{"class":120},[86,9711,3145],{"class":2507},[86,9713,2511],{"class":106},[86,9715,1807],{"class":120},[86,9717,3176],{"class":110},[86,9719,3155],{"class":106},[86,9721,1807],{"class":120},[86,9723,3183],{"class":110},[86,9725,3163],{"class":120},[86,9727,9728,9730,9732,9734,9736,9738,9740,9742,9744],{"class":88,"line":408},[86,9729,2541],{"class":120},[86,9731,3145],{"class":2507},[86,9733,2511],{"class":106},[86,9735,1807],{"class":120},[86,9737,3198],{"class":110},[86,9739,3155],{"class":106},[86,9741,1807],{"class":120},[86,9743,3205],{"class":110},[86,9745,3163],{"class":120},[86,9747,9748,9750,9752,9754,9756,9758,9760,9762,9764],{"class":88,"line":414},[86,9749,2541],{"class":120},[86,9751,3145],{"class":2507},[86,9753,2511],{"class":106},[86,9755,1807],{"class":120},[86,9757,3220],{"class":110},[86,9759,3155],{"class":106},[86,9761,1807],{"class":120},[86,9763,3227],{"class":110},[86,9765,3163],{"class":120},[86,9767,9768,9770,9772,9774,9776],{"class":88,"line":420},[86,9769,2541],{"class":120},[86,9771,3236],{"class":2507},[86,9773,3239],{"class":120},[86,9775,3236],{"class":2507},[86,9777,2519],{"class":120},[86,9779,9780,9782,9784,9786,9788],{"class":88,"line":426},[86,9781,2541],{"class":120},[86,9783,3250],{"class":2507},[86,9785,3253],{"class":120},[86,9787,3250],{"class":2507},[86,9789,2519],{"class":120},[86,9791,9792,9794,9796,9798,9800,9802],{"class":88,"line":1784},[86,9793,2541],{"class":120},[86,9795,3264],{"class":2507},[86,9797,3081],{"class":106},[86,9799,1807],{"class":120},[86,9801,3271],{"class":110},[86,9803,3163],{"class":120},[86,9805,9806,9808,9810],{"class":88,"line":1796},[86,9807,2541],{"class":120},[86,9809,3280],{"class":2507},[86,9811,2519],{"class":120},[86,9813,9814,9816,9818,9820,9822],{"class":88,"line":1801},[86,9815,2551],{"class":120},[86,9817,3289],{"class":2507},[86,9819,3292],{"class":120},[86,9821,3289],{"class":2507},[86,9823,2519],{"class":120},[86,9825,9826,9828,9830,9832,9834],{"class":88,"line":1818},[86,9827,2551],{"class":120},[86,9829,3303],{"class":2507},[86,9831,3306],{"class":120},[86,9833,3303],{"class":2507},[86,9835,2519],{"class":120},[86,9837,9838,9840,9842,9844,9846],{"class":88,"line":1833},[86,9839,2551],{"class":120},[86,9841,3317],{"class":2507},[86,9843,3320],{"class":120},[86,9845,3317],{"class":2507},[86,9847,2519],{"class":120},[86,9849,9850,9852,9854],{"class":88,"line":1855},[86,9851,2622],{"class":120},[86,9853,3280],{"class":2507},[86,9855,2519],{"class":120},[86,9857,9858,9860,9862,9864,9866,9868],{"class":88,"line":1860},[86,9859,2541],{"class":120},[86,9861,2865],{"class":2507},[86,9863,2511],{"class":106},[86,9865,1807],{"class":120},[86,9867,3345],{"class":110},[86,9869,2519],{"class":120},[86,9871,9872,9874,9876,9878,9880],{"class":88,"line":1871},[86,9873,2551],{"class":120},[86,9875,3354],{"class":2507},[86,9877,3320],{"class":120},[86,9879,3354],{"class":2507},[86,9881,2519],{"class":120},[86,9883,9884,9886,9888,9890,9892,9894],{"class":88,"line":1877},[86,9885,2551],{"class":120},[86,9887,2527],{"class":2507},[86,9889,2511],{"class":106},[86,9891,1807],{"class":120},[86,9893,3373],{"class":110},[86,9895,2519],{"class":120},[86,9897,9898,9900,9902,9904,9906,9908],{"class":88,"line":1895},[86,9899,2725],{"class":120},[86,9901,3382],{"class":2507},[86,9903,2511],{"class":106},[86,9905,1807],{"class":120},[86,9907,3389],{"class":110},[86,9909,2519],{"class":120},[86,9911,9912,9914,9916],{"class":88,"line":1907},[86,9913,2921],{"class":120},[86,9915,3398],{"class":2507},[86,9917,2519],{"class":120},[86,9919,9920,9922,9924],{"class":88,"line":1925},[86,9921,3405],{"class":120},[86,9923,3408],{"class":2507},[86,9925,2519],{"class":120},[86,9927,9928,9930,9932,9934,9936],{"class":88,"line":1931},[86,9929,3415],{"class":120},[86,9931,3418],{"class":2507},[86,9933,3421],{"class":120},[86,9935,3418],{"class":2507},[86,9937,2519],{"class":120},[86,9939,9940,9942,9944,9946,9948],{"class":88,"line":1937},[86,9941,3415],{"class":120},[86,9943,3432],{"class":2507},[86,9945,3435],{"class":120},[86,9947,3432],{"class":2507},[86,9949,2519],{"class":120},[86,9951,9952,9954,9956],{"class":88,"line":1942},[86,9953,3444],{"class":120},[86,9955,3408],{"class":2507},[86,9957,2519],{"class":120},[86,9959,9960,9962,9964],{"class":88,"line":1948},[86,9961,3453],{"class":120},[86,9963,3398],{"class":2507},[86,9965,2519],{"class":120},[86,9967,9968,9970,9972],{"class":88,"line":1959},[86,9969,2921],{"class":120},[86,9971,3464],{"class":2507},[86,9973,2519],{"class":120},[86,9975,9976,9978,9980],{"class":88,"line":1973},[86,9977,3405],{"class":120},[86,9979,3473],{"class":2507},[86,9981,2519],{"class":120},[86,9983,9984,9986,9988],{"class":88,"line":1985},[86,9985,3415],{"class":120},[86,9987,3482],{"class":2507},[86,9989,3163],{"class":120},[86,9991,9992,9994,9996],{"class":88,"line":2012},[86,9993,3444],{"class":120},[86,9995,3473],{"class":2507},[86,9997,2519],{"class":120},[86,9999,10000,10002,10004],{"class":88,"line":2028},[86,10001,3405],{"class":120},[86,10003,3499],{"class":2507},[86,10005,3163],{"class":120},[86,10007,10008,10010,10012],{"class":88,"line":2033},[86,10009,3405],{"class":120},[86,10011,3508],{"class":2507},[86,10013,3163],{"class":120},[86,10015,10016,10018,10020],{"class":88,"line":2038},[86,10017,3453],{"class":120},[86,10019,3464],{"class":2507},[86,10021,2519],{"class":120},[86,10023,10024,10026,10028],{"class":88,"line":2044},[86,10025,2961],{"class":120},[86,10027,3382],{"class":2507},[86,10029,2519],{"class":120},[86,10031,10032,10034,10036,10038,10040,10042],{"class":88,"line":2054},[86,10033,2725],{"class":120},[86,10035,3533],{"class":2507},[86,10037,2511],{"class":106},[86,10039,1807],{"class":120},[86,10041,3540],{"class":110},[86,10043,2519],{"class":120},[86,10045,10046,10048,10050],{"class":88,"line":2067},[86,10047,2921],{"class":120},[86,10049,3398],{"class":2507},[86,10051,2519],{"class":120},[86,10053,10054,10056,10058],{"class":88,"line":2080},[86,10055,3405],{"class":120},[86,10057,3408],{"class":2507},[86,10059,2519],{"class":120},[86,10061,10062,10064,10066,10068,10070],{"class":88,"line":2095},[86,10063,3415],{"class":120},[86,10065,3418],{"class":2507},[86,10067,3421],{"class":120},[86,10069,3418],{"class":2507},[86,10071,2519],{"class":120},[86,10073,10074,10076,10078,10080,10082],{"class":88,"line":2103},[86,10075,3415],{"class":120},[86,10077,3432],{"class":2507},[86,10079,3435],{"class":120},[86,10081,3432],{"class":2507},[86,10083,2519],{"class":120},[86,10085,10086,10088,10090],{"class":88,"line":2111},[86,10087,3444],{"class":120},[86,10089,3408],{"class":2507},[86,10091,2519],{"class":120},[86,10093,10094,10096,10098],{"class":88,"line":2117},[86,10095,3453],{"class":120},[86,10097,3398],{"class":2507},[86,10099,2519],{"class":120},[86,10101,10102,10104,10106],{"class":88,"line":2139},[86,10103,2921],{"class":120},[86,10105,3605],{"class":2507},[86,10107,2519],{"class":120},[86,10109,10110,10112,10114,10116,10118],{"class":88,"line":2150},[86,10111,3405],{"class":120},[86,10113,3289],{"class":2507},[86,10115,3616],{"class":120},[86,10117,3289],{"class":2507},[86,10119,2519],{"class":120},[86,10121,10122,10124,10126,10128,10130],{"class":88,"line":2167},[86,10123,3405],{"class":120},[86,10125,3627],{"class":2507},[86,10127,3616],{"class":120},[86,10129,3627],{"class":2507},[86,10131,2519],{"class":120},[86,10133,10134,10136,10138,10140,10142],{"class":88,"line":2182},[86,10135,3405],{"class":120},[86,10137,3640],{"class":2507},[86,10139,3616],{"class":120},[86,10141,3640],{"class":2507},[86,10143,2519],{"class":120},[86,10145,10146,10148,10150],{"class":88,"line":2188},[86,10147,3453],{"class":120},[86,10149,3605],{"class":2507},[86,10151,2519],{"class":120},[86,10153,10154,10156,10158],{"class":88,"line":2199},[86,10155,2961],{"class":120},[86,10157,3533],{"class":2507},[86,10159,2519],{"class":120},[86,10161,10162,10164,10166,10168,10170],{"class":88,"line":2204},[86,10163,2725],{"class":120},[86,10165,3669],{"class":2507},[86,10167,3672],{"class":120},[86,10169,3669],{"class":2507},[86,10171,2519],{"class":120},[86,10173,10174,10176,10178],{"class":88,"line":2209},[86,10175,2725],{"class":120},[86,10177,2544],{"class":2507},[86,10179,2519],{"class":120},[86,10181,10182,10184,10186,10188,10190],{"class":88,"line":2218},[86,10183,2921],{"class":120},[86,10185,3669],{"class":2507},[86,10187,3672],{"class":120},[86,10189,3669],{"class":2507},[86,10191,2519],{"class":120},[86,10193,10194,10196,10198,10200,10202],{"class":88,"line":2224},[86,10195,2921],{"class":120},[86,10197,2554],{"class":2507},[86,10199,3705],{"class":120},[86,10201,2554],{"class":2507},[86,10203,2519],{"class":120},[86,10205,10206,10208,10210],{"class":88,"line":2244},[86,10207,2921],{"class":120},[86,10209,2572],{"class":2507},[86,10211,2519],{"class":120},[86,10213,10214,10216,10218,10220,10222],{"class":88,"line":2257},[86,10215,3405],{"class":120},[86,10217,2924],{"class":2507},[86,10219,3112],{"class":120},[86,10221,2924],{"class":2507},[86,10223,2519],{"class":120},[86,10225,10226,10228,10230,10232,10234],{"class":88,"line":2263},[86,10227,3405],{"class":120},[86,10229,3736],{"class":2507},[86,10231,3739],{"class":120},[86,10233,3736],{"class":2507},[86,10235,2519],{"class":120},[86,10237,10238,10240,10242,10244,10246],{"class":88,"line":2269},[86,10239,3405],{"class":120},[86,10241,3750],{"class":2507},[86,10243,3739],{"class":120},[86,10245,3750],{"class":2507},[86,10247,2519],{"class":120},[86,10249,10250,10252,10254,10256,10258],{"class":88,"line":3759},[86,10251,3405],{"class":120},[86,10253,2937],{"class":2507},[86,10255,3112],{"class":120},[86,10257,2937],{"class":2507},[86,10259,2519],{"class":120},[86,10261,10262,10264,10266,10268,10270],{"class":88,"line":3772},[86,10263,3405],{"class":120},[86,10265,3777],{"class":2507},[86,10267,3739],{"class":120},[86,10269,3777],{"class":2507},[86,10271,2519],{"class":120},[86,10273,10274,10276,10278,10280,10282],{"class":88,"line":3786},[86,10275,3405],{"class":120},[86,10277,2950],{"class":2507},[86,10279,3112],{"class":120},[86,10281,2950],{"class":2507},[86,10283,2519],{"class":120},[86,10285,10286,10288,10290],{"class":88,"line":3799},[86,10287,3453],{"class":120},[86,10289,2572],{"class":2507},[86,10291,2519],{"class":120},[86,10293,10294,10296,10298],{"class":88,"line":3808},[86,10295,2961],{"class":120},[86,10297,2544],{"class":2507},[86,10299,2519],{"class":120},[86,10301,10302,10304,10306,10308,10310],{"class":88,"line":3817},[86,10303,2725],{"class":120},[86,10305,3822],{"class":2507},[86,10307,3825],{"class":120},[86,10309,3822],{"class":2507},[86,10311,2519],{"class":120},[86,10313,10314,10316,10318],{"class":88,"line":3832},[86,10315,2785],{"class":120},[86,10317,2527],{"class":2507},[86,10319,2519],{"class":120},[86,10321,10322,10324,10326,10328,10330],{"class":88,"line":3841},[86,10323,2551],{"class":120},[86,10325,3669],{"class":2507},[86,10327,3672],{"class":120},[86,10329,3669],{"class":2507},[86,10331,2519],{"class":120},[86,10333,10334,10336,10338,10340,10342],{"class":88,"line":3854},[86,10335,2551],{"class":120},[86,10337,3859],{"class":2507},[86,10339,3825],{"class":120},[86,10341,3859],{"class":2507},[86,10343,2519],{"class":120},[86,10345,10346,10348,10350],{"class":88,"line":3868},[86,10347,2622],{"class":120},[86,10349,2865],{"class":2507},[86,10351,2519],{"class":120},[86,10353,10354,10356,10358,10360,10362,10364],{"class":88,"line":3877},[86,10355,2541],{"class":120},[86,10357,2865],{"class":2507},[86,10359,2511],{"class":106},[86,10361,1807],{"class":120},[86,10363,3888],{"class":110},[86,10365,2519],{"class":120},[86,10367,10368,10370,10372,10375,10377],{"class":88,"line":3893},[86,10369,2551],{"class":120},[86,10371,3669],{"class":2507},[86,10373,10374],{"class":120},">5.05017 0 0.5 -0 0 3e-05\u003C\u002F",[86,10376,3669],{"class":2507},[86,10378,2519],{"class":120},[86,10380,10381,10383,10385,10387,10389,10391],{"class":88,"line":3907},[86,10382,2551],{"class":120},[86,10384,2527],{"class":2507},[86,10386,2511],{"class":106},[86,10388,1807],{"class":120},[86,10390,3918],{"class":110},[86,10392,2519],{"class":120},[86,10394,10395,10397,10399],{"class":88,"line":3923},[86,10396,2725],{"class":120},[86,10398,2544],{"class":2507},[86,10400,2519],{"class":120},[86,10402,10403,10405,10407],{"class":88,"line":3932},[86,10404,2921],{"class":120},[86,10406,2572],{"class":2507},[86,10408,2519],{"class":120},[86,10410,10411,10413,10415,10417,10419],{"class":88,"line":3941},[86,10412,3405],{"class":120},[86,10414,2924],{"class":2507},[86,10416,3948],{"class":120},[86,10418,2924],{"class":2507},[86,10420,2519],{"class":120},[86,10422,10423,10425,10427,10429,10431],{"class":88,"line":3955},[86,10424,3405],{"class":120},[86,10426,3736],{"class":2507},[86,10428,3739],{"class":120},[86,10430,3736],{"class":2507},[86,10432,2519],{"class":120},[86,10434,10435,10437,10439,10441,10443],{"class":88,"line":3968},[86,10436,3405],{"class":120},[86,10438,3750],{"class":2507},[86,10440,3739],{"class":120},[86,10442,3750],{"class":2507},[86,10444,2519],{"class":120},[86,10446,10447,10449,10451,10453,10455],{"class":88,"line":3981},[86,10448,3405],{"class":120},[86,10450,2937],{"class":2507},[86,10452,3948],{"class":120},[86,10454,2937],{"class":2507},[86,10456,2519],{"class":120},[86,10458,10459,10461,10463,10465,10467],{"class":88,"line":3994},[86,10460,3405],{"class":120},[86,10462,3777],{"class":2507},[86,10464,3739],{"class":120},[86,10466,3777],{"class":2507},[86,10468,2519],{"class":120},[86,10470,10471,10473,10475,10477,10479],{"class":88,"line":4007},[86,10472,3405],{"class":120},[86,10474,2950],{"class":2507},[86,10476,3948],{"class":120},[86,10478,2950],{"class":2507},[86,10480,2519],{"class":120},[86,10482,10483,10485,10487],{"class":88,"line":4020},[86,10484,3453],{"class":120},[86,10486,2572],{"class":2507},[86,10488,2519],{"class":120},[86,10490,10491,10493,10495,10497,10499],{"class":88,"line":4029},[86,10492,2921],{"class":120},[86,10494,2554],{"class":2507},[86,10496,3705],{"class":120},[86,10498,2554],{"class":2507},[86,10500,2519],{"class":120},[86,10502,10503,10505,10507,10509,10511],{"class":88,"line":4042},[86,10504,2921],{"class":120},[86,10506,3669],{"class":2507},[86,10508,3672],{"class":120},[86,10510,3669],{"class":2507},[86,10512,2519],{"class":120},[86,10514,10515,10517,10519],{"class":88,"line":4055},[86,10516,2961],{"class":120},[86,10518,2544],{"class":2507},[86,10520,2519],{"class":120},[86,10522,10523,10525,10527,10529,10531,10533],{"class":88,"line":4064},[86,10524,2725],{"class":120},[86,10526,3382],{"class":2507},[86,10528,2511],{"class":106},[86,10530,1807],{"class":120},[86,10532,4075],{"class":110},[86,10534,2519],{"class":120},[86,10536,10537,10539,10541],{"class":88,"line":4080},[86,10538,2921],{"class":120},[86,10540,3398],{"class":2507},[86,10542,2519],{"class":120},[86,10544,10545,10547,10549],{"class":88,"line":4089},[86,10546,3405],{"class":120},[86,10548,4094],{"class":2507},[86,10550,2519],{"class":120},[86,10552,10553,10555,10557,10559,10561],{"class":88,"line":4099},[86,10554,3415],{"class":120},[86,10556,3432],{"class":2507},[86,10558,4106],{"class":120},[86,10560,3432],{"class":2507},[86,10562,2519],{"class":120},[86,10564,10565,10567,10569],{"class":88,"line":4113},[86,10566,3444],{"class":120},[86,10568,4094],{"class":2507},[86,10570,2519],{"class":120},[86,10572,10573,10575,10577],{"class":88,"line":4122},[86,10574,3453],{"class":120},[86,10576,3398],{"class":2507},[86,10578,2519],{"class":120},[86,10580,10581,10583,10585],{"class":88,"line":4131},[86,10582,2921],{"class":120},[86,10584,3464],{"class":2507},[86,10586,2519],{"class":120},[86,10588,10589,10591,10593],{"class":88,"line":4140},[86,10590,3405],{"class":120},[86,10592,3473],{"class":2507},[86,10594,2519],{"class":120},[86,10596,10597,10599,10601],{"class":88,"line":4149},[86,10598,3415],{"class":120},[86,10600,3482],{"class":2507},[86,10602,3163],{"class":120},[86,10604,10605,10607,10609],{"class":88,"line":4158},[86,10606,3444],{"class":120},[86,10608,3473],{"class":2507},[86,10610,2519],{"class":120},[86,10612,10613,10615,10617],{"class":88,"line":4167},[86,10614,3405],{"class":120},[86,10616,3499],{"class":2507},[86,10618,3163],{"class":120},[86,10620,10621,10623,10625],{"class":88,"line":4176},[86,10622,3405],{"class":120},[86,10624,3508],{"class":2507},[86,10626,3163],{"class":120},[86,10628,10629,10631,10633],{"class":88,"line":4185},[86,10630,3453],{"class":120},[86,10632,3464],{"class":2507},[86,10634,2519],{"class":120},[86,10636,10637,10639,10641],{"class":88,"line":4194},[86,10638,2961],{"class":120},[86,10640,3382],{"class":2507},[86,10642,2519],{"class":120},[86,10644,10645,10647,10649,10651,10653,10655],{"class":88,"line":4203},[86,10646,2725],{"class":120},[86,10648,3533],{"class":2507},[86,10650,2511],{"class":106},[86,10652,1807],{"class":120},[86,10654,4214],{"class":110},[86,10656,2519],{"class":120},[86,10658,10659,10661,10663],{"class":88,"line":4219},[86,10660,2921],{"class":120},[86,10662,3398],{"class":2507},[86,10664,2519],{"class":120},[86,10666,10667,10669,10671],{"class":88,"line":4228},[86,10668,3405],{"class":120},[86,10670,4094],{"class":2507},[86,10672,2519],{"class":120},[86,10674,10675,10677,10679,10681,10683],{"class":88,"line":4237},[86,10676,3415],{"class":120},[86,10678,3432],{"class":2507},[86,10680,4106],{"class":120},[86,10682,3432],{"class":2507},[86,10684,2519],{"class":120},[86,10686,10687,10689,10691],{"class":88,"line":4250},[86,10688,3444],{"class":120},[86,10690,4094],{"class":2507},[86,10692,2519],{"class":120},[86,10694,10695,10697,10699],{"class":88,"line":4259},[86,10696,3453],{"class":120},[86,10698,3398],{"class":2507},[86,10700,2519],{"class":120},[86,10702,10703,10705,10707],{"class":88,"line":4268},[86,10704,2921],{"class":120},[86,10706,3605],{"class":2507},[86,10708,2519],{"class":120},[86,10710,10711,10713,10715,10717,10719],{"class":88,"line":4277},[86,10712,3405],{"class":120},[86,10714,3289],{"class":2507},[86,10716,4284],{"class":120},[86,10718,3289],{"class":2507},[86,10720,2519],{"class":120},[86,10722,10723,10725,10727,10729,10731],{"class":88,"line":4291},[86,10724,3405],{"class":120},[86,10726,3627],{"class":2507},[86,10728,3306],{"class":120},[86,10730,3627],{"class":2507},[86,10732,2519],{"class":120},[86,10734,10735,10737,10739,10741,10743],{"class":88,"line":4304},[86,10736,3405],{"class":120},[86,10738,3640],{"class":2507},[86,10740,4311],{"class":120},[86,10742,3640],{"class":2507},[86,10744,2519],{"class":120},[86,10746,10747,10749,10751],{"class":88,"line":4318},[86,10748,3453],{"class":120},[86,10750,3605],{"class":2507},[86,10752,2519],{"class":120},[86,10754,10755,10757,10759],{"class":88,"line":4327},[86,10756,2961],{"class":120},[86,10758,3533],{"class":2507},[86,10760,2519],{"class":120},[86,10762,10763,10765,10767,10769,10771],{"class":88,"line":4336},[86,10764,2725],{"class":120},[86,10766,3669],{"class":2507},[86,10768,3672],{"class":120},[86,10770,3669],{"class":2507},[86,10772,2519],{"class":120},[86,10774,10775,10777,10779,10781,10783],{"class":88,"line":4349},[86,10776,2725],{"class":120},[86,10778,3822],{"class":2507},[86,10780,3825],{"class":120},[86,10782,3822],{"class":2507},[86,10784,2519],{"class":120},[86,10786,10787,10789,10791],{"class":88,"line":4362},[86,10788,2785],{"class":120},[86,10790,2527],{"class":2507},[86,10792,2519],{"class":120},[86,10794,10795,10797,10799,10801,10803],{"class":88,"line":4371},[86,10796,2551],{"class":120},[86,10798,3354],{"class":2507},[86,10800,3320],{"class":120},[86,10802,3354],{"class":2507},[86,10804,2519],{"class":120},[86,10806,10807,10809,10811,10813,10815],{"class":88,"line":4384},[86,10808,2551],{"class":120},[86,10810,3859],{"class":2507},[86,10812,3825],{"class":120},[86,10814,3859],{"class":2507},[86,10816,2519],{"class":120},[86,10818,10819,10821,10823],{"class":88,"line":4397},[86,10820,2622],{"class":120},[86,10822,2865],{"class":2507},[86,10824,2519],{"class":120},[86,10826,10827,10829,10831,10833,10835,10837],{"class":88,"line":4406},[86,10828,2541],{"class":120},[86,10830,2865],{"class":2507},[86,10832,2511],{"class":106},[86,10834,1807],{"class":120},[86,10836,4417],{"class":110},[86,10838,2519],{"class":120},[86,10840,10841,10843,10845,10848,10850],{"class":88,"line":4422},[86,10842,2551],{"class":120},[86,10844,3669],{"class":2507},[86,10846,10847],{"class":120},">-5.05003 -7.8e-05 0.5 -0 -0 1.8e-05\u003C\u002F",[86,10849,3669],{"class":2507},[86,10851,2519],{"class":120},[86,10853,10854,10856,10858,10860,10862,10864],{"class":88,"line":4436},[86,10855,2551],{"class":120},[86,10857,2527],{"class":2507},[86,10859,2511],{"class":106},[86,10861,1807],{"class":120},[86,10863,3918],{"class":110},[86,10865,2519],{"class":120},[86,10867,10868,10870,10872],{"class":88,"line":4451},[86,10869,2725],{"class":120},[86,10871,2544],{"class":2507},[86,10873,2519],{"class":120},[86,10875,10876,10878,10880],{"class":88,"line":4460},[86,10877,2921],{"class":120},[86,10879,2572],{"class":2507},[86,10881,2519],{"class":120},[86,10883,10884,10886,10888,10890,10892],{"class":88,"line":4469},[86,10885,3405],{"class":120},[86,10887,2924],{"class":2507},[86,10889,3948],{"class":120},[86,10891,2924],{"class":2507},[86,10893,2519],{"class":120},[86,10895,10896,10898,10900,10902,10904],{"class":88,"line":4482},[86,10897,3405],{"class":120},[86,10899,3736],{"class":2507},[86,10901,3739],{"class":120},[86,10903,3736],{"class":2507},[86,10905,2519],{"class":120},[86,10907,10908,10910,10912,10914,10916],{"class":88,"line":4495},[86,10909,3405],{"class":120},[86,10911,3750],{"class":2507},[86,10913,3739],{"class":120},[86,10915,3750],{"class":2507},[86,10917,2519],{"class":120},[86,10919,10920,10922,10924,10926,10928],{"class":88,"line":4508},[86,10921,3405],{"class":120},[86,10923,2937],{"class":2507},[86,10925,3948],{"class":120},[86,10927,2937],{"class":2507},[86,10929,2519],{"class":120},[86,10931,10932,10934,10936,10938,10940],{"class":88,"line":4521},[86,10933,3405],{"class":120},[86,10935,3777],{"class":2507},[86,10937,3739],{"class":120},[86,10939,3777],{"class":2507},[86,10941,2519],{"class":120},[86,10943,10944,10946,10948,10950,10952],{"class":88,"line":4534},[86,10945,3405],{"class":120},[86,10947,2950],{"class":2507},[86,10949,3948],{"class":120},[86,10951,2950],{"class":2507},[86,10953,2519],{"class":120},[86,10955,10956,10958,10960],{"class":88,"line":4547},[86,10957,3453],{"class":120},[86,10959,2572],{"class":2507},[86,10961,2519],{"class":120},[86,10963,10964,10966,10968,10970,10972],{"class":88,"line":4556},[86,10965,2921],{"class":120},[86,10967,2554],{"class":2507},[86,10969,3705],{"class":120},[86,10971,2554],{"class":2507},[86,10973,2519],{"class":120},[86,10975,10976,10978,10980,10982,10984],{"class":88,"line":4569},[86,10977,2921],{"class":120},[86,10979,3669],{"class":2507},[86,10981,3672],{"class":120},[86,10983,3669],{"class":2507},[86,10985,2519],{"class":120},[86,10987,10988,10990,10992],{"class":88,"line":4582},[86,10989,2961],{"class":120},[86,10991,2544],{"class":2507},[86,10993,2519],{"class":120},[86,10995,10996,10998,11000,11002,11004,11006],{"class":88,"line":4591},[86,10997,2725],{"class":120},[86,10999,3382],{"class":2507},[86,11001,2511],{"class":106},[86,11003,1807],{"class":120},[86,11005,4075],{"class":110},[86,11007,2519],{"class":120},[86,11009,11010,11012,11014],{"class":88,"line":4606},[86,11011,2921],{"class":120},[86,11013,3398],{"class":2507},[86,11015,2519],{"class":120},[86,11017,11018,11020,11022],{"class":88,"line":4615},[86,11019,3405],{"class":120},[86,11021,4094],{"class":2507},[86,11023,2519],{"class":120},[86,11025,11026,11028,11030,11032,11034],{"class":88,"line":4624},[86,11027,3415],{"class":120},[86,11029,3432],{"class":2507},[86,11031,4106],{"class":120},[86,11033,3432],{"class":2507},[86,11035,2519],{"class":120},[86,11037,11038,11040,11042],{"class":88,"line":4637},[86,11039,3444],{"class":120},[86,11041,4094],{"class":2507},[86,11043,2519],{"class":120},[86,11045,11046,11048,11050],{"class":88,"line":4646},[86,11047,3453],{"class":120},[86,11049,3398],{"class":2507},[86,11051,2519],{"class":120},[86,11053,11054,11056,11058],{"class":88,"line":4655},[86,11055,2921],{"class":120},[86,11057,3464],{"class":2507},[86,11059,2519],{"class":120},[86,11061,11062,11064,11066],{"class":88,"line":4664},[86,11063,3405],{"class":120},[86,11065,3473],{"class":2507},[86,11067,2519],{"class":120},[86,11069,11070,11072,11074],{"class":88,"line":4673},[86,11071,3415],{"class":120},[86,11073,3482],{"class":2507},[86,11075,3163],{"class":120},[86,11077,11078,11080,11082],{"class":88,"line":4682},[86,11079,3444],{"class":120},[86,11081,3473],{"class":2507},[86,11083,2519],{"class":120},[86,11085,11086,11088,11090],{"class":88,"line":4691},[86,11087,3405],{"class":120},[86,11089,3499],{"class":2507},[86,11091,3163],{"class":120},[86,11093,11094,11096,11098],{"class":88,"line":4700},[86,11095,3405],{"class":120},[86,11097,3508],{"class":2507},[86,11099,3163],{"class":120},[86,11101,11102,11104,11106],{"class":88,"line":4709},[86,11103,3453],{"class":120},[86,11105,3464],{"class":2507},[86,11107,2519],{"class":120},[86,11109,11110,11112,11114],{"class":88,"line":4718},[86,11111,2961],{"class":120},[86,11113,3382],{"class":2507},[86,11115,2519],{"class":120},[86,11117,11118,11120,11122,11124,11126,11128],{"class":88,"line":4727},[86,11119,2725],{"class":120},[86,11121,3533],{"class":2507},[86,11123,2511],{"class":106},[86,11125,1807],{"class":120},[86,11127,4214],{"class":110},[86,11129,2519],{"class":120},[86,11131,11132,11134,11136],{"class":88,"line":4742},[86,11133,2921],{"class":120},[86,11135,3398],{"class":2507},[86,11137,2519],{"class":120},[86,11139,11140,11142,11144],{"class":88,"line":4751},[86,11141,3405],{"class":120},[86,11143,4094],{"class":2507},[86,11145,2519],{"class":120},[86,11147,11148,11150,11152,11154,11156],{"class":88,"line":4760},[86,11149,3415],{"class":120},[86,11151,3432],{"class":2507},[86,11153,4106],{"class":120},[86,11155,3432],{"class":2507},[86,11157,2519],{"class":120},[86,11159,11160,11162,11164],{"class":88,"line":4773},[86,11161,3444],{"class":120},[86,11163,4094],{"class":2507},[86,11165,2519],{"class":120},[86,11167,11168,11170,11172],{"class":88,"line":4782},[86,11169,3453],{"class":120},[86,11171,3398],{"class":2507},[86,11173,2519],{"class":120},[86,11175,11176,11178,11180],{"class":88,"line":4791},[86,11177,2921],{"class":120},[86,11179,3605],{"class":2507},[86,11181,2519],{"class":120},[86,11183,11184,11186,11188,11190,11192],{"class":88,"line":4800},[86,11185,3405],{"class":120},[86,11187,3289],{"class":2507},[86,11189,4284],{"class":120},[86,11191,3289],{"class":2507},[86,11193,2519],{"class":120},[86,11195,11196,11198,11200,11202,11204],{"class":88,"line":4813},[86,11197,3405],{"class":120},[86,11199,3627],{"class":2507},[86,11201,3306],{"class":120},[86,11203,3627],{"class":2507},[86,11205,2519],{"class":120},[86,11207,11208,11210,11212,11214,11216],{"class":88,"line":4826},[86,11209,3405],{"class":120},[86,11211,3640],{"class":2507},[86,11213,4311],{"class":120},[86,11215,3640],{"class":2507},[86,11217,2519],{"class":120},[86,11219,11220,11222,11224],{"class":88,"line":4839},[86,11221,3453],{"class":120},[86,11223,3605],{"class":2507},[86,11225,2519],{"class":120},[86,11227,11228,11230,11232],{"class":88,"line":4848},[86,11229,2961],{"class":120},[86,11231,3533],{"class":2507},[86,11233,2519],{"class":120},[86,11235,11236,11238,11240,11242,11244],{"class":88,"line":4857},[86,11237,2725],{"class":120},[86,11239,3669],{"class":2507},[86,11241,3672],{"class":120},[86,11243,3669],{"class":2507},[86,11245,2519],{"class":120},[86,11247,11248,11250,11252,11254,11256],{"class":88,"line":4870},[86,11249,2725],{"class":120},[86,11251,3822],{"class":2507},[86,11253,3825],{"class":120},[86,11255,3822],{"class":2507},[86,11257,2519],{"class":120},[86,11259,11260,11262,11264],{"class":88,"line":4883},[86,11261,2785],{"class":120},[86,11263,2527],{"class":2507},[86,11265,2519],{"class":120},[86,11267,11268,11270,11272,11274,11276],{"class":88,"line":4892},[86,11269,2551],{"class":120},[86,11271,3354],{"class":2507},[86,11273,3320],{"class":120},[86,11275,3354],{"class":2507},[86,11277,2519],{"class":120},[86,11279,11280,11282,11284,11286,11288],{"class":88,"line":4905},[86,11281,2551],{"class":120},[86,11283,3859],{"class":2507},[86,11285,3825],{"class":120},[86,11287,3859],{"class":2507},[86,11289,2519],{"class":120},[86,11291,11292,11294,11296],{"class":88,"line":4918},[86,11293,2622],{"class":120},[86,11295,2865],{"class":2507},[86,11297,2519],{"class":120},[86,11299,11300,11302,11304,11306,11308,11310],{"class":88,"line":4927},[86,11301,2541],{"class":120},[86,11303,2865],{"class":2507},[86,11305,2511],{"class":106},[86,11307,1807],{"class":120},[86,11309,4938],{"class":110},[86,11311,2519],{"class":120},[86,11313,11314,11316,11318,11321,11323],{"class":88,"line":4943},[86,11315,2551],{"class":120},[86,11317,3669],{"class":2507},[86,11319,11320],{"class":120},">0.000162 -2.53144 0.499999 0 -0 -0.001876\u003C\u002F",[86,11322,3669],{"class":2507},[86,11324,2519],{"class":120},[86,11326,11327,11329,11331,11333,11335,11337],{"class":88,"line":4957},[86,11328,2551],{"class":120},[86,11330,2527],{"class":2507},[86,11332,2511],{"class":106},[86,11334,1807],{"class":120},[86,11336,3918],{"class":110},[86,11338,2519],{"class":120},[86,11340,11341,11343,11345],{"class":88,"line":4972},[86,11342,2725],{"class":120},[86,11344,2544],{"class":2507},[86,11346,2519],{"class":120},[86,11348,11349,11351,11353],{"class":88,"line":4981},[86,11350,2921],{"class":120},[86,11352,2572],{"class":2507},[86,11354,2519],{"class":120},[86,11356,11357,11359,11361,11363,11365],{"class":88,"line":4990},[86,11358,3405],{"class":120},[86,11360,2924],{"class":2507},[86,11362,3948],{"class":120},[86,11364,2924],{"class":2507},[86,11366,2519],{"class":120},[86,11368,11369,11371,11373,11375,11377],{"class":88,"line":5003},[86,11370,3405],{"class":120},[86,11372,3736],{"class":2507},[86,11374,3739],{"class":120},[86,11376,3736],{"class":2507},[86,11378,2519],{"class":120},[86,11380,11381,11383,11385,11387,11389],{"class":88,"line":5016},[86,11382,3405],{"class":120},[86,11384,3750],{"class":2507},[86,11386,3739],{"class":120},[86,11388,3750],{"class":2507},[86,11390,2519],{"class":120},[86,11392,11393,11395,11397,11399,11401],{"class":88,"line":5029},[86,11394,3405],{"class":120},[86,11396,2937],{"class":2507},[86,11398,3948],{"class":120},[86,11400,2937],{"class":2507},[86,11402,2519],{"class":120},[86,11404,11405,11407,11409,11411,11413],{"class":88,"line":5042},[86,11406,3405],{"class":120},[86,11408,3777],{"class":2507},[86,11410,3739],{"class":120},[86,11412,3777],{"class":2507},[86,11414,2519],{"class":120},[86,11416,11417,11419,11421,11423,11425],{"class":88,"line":5055},[86,11418,3405],{"class":120},[86,11420,2950],{"class":2507},[86,11422,3948],{"class":120},[86,11424,2950],{"class":2507},[86,11426,2519],{"class":120},[86,11428,11429,11431,11433],{"class":88,"line":5068},[86,11430,3453],{"class":120},[86,11432,2572],{"class":2507},[86,11434,2519],{"class":120},[86,11436,11437,11439,11441,11443,11445],{"class":88,"line":5077},[86,11438,2921],{"class":120},[86,11440,2554],{"class":2507},[86,11442,3705],{"class":120},[86,11444,2554],{"class":2507},[86,11446,2519],{"class":120},[86,11448,11449,11451,11453,11455,11457],{"class":88,"line":5090},[86,11450,2921],{"class":120},[86,11452,3669],{"class":2507},[86,11454,3672],{"class":120},[86,11456,3669],{"class":2507},[86,11458,2519],{"class":120},[86,11460,11461,11463,11465],{"class":88,"line":5103},[86,11462,2961],{"class":120},[86,11464,2544],{"class":2507},[86,11466,2519],{"class":120},[86,11468,11469,11471,11473,11475,11477,11479],{"class":88,"line":5112},[86,11470,2725],{"class":120},[86,11472,3382],{"class":2507},[86,11474,2511],{"class":106},[86,11476,1807],{"class":120},[86,11478,4075],{"class":110},[86,11480,2519],{"class":120},[86,11482,11483,11485,11487],{"class":88,"line":5127},[86,11484,2921],{"class":120},[86,11486,3398],{"class":2507},[86,11488,2519],{"class":120},[86,11490,11491,11493,11495],{"class":88,"line":5136},[86,11492,3405],{"class":120},[86,11494,4094],{"class":2507},[86,11496,2519],{"class":120},[86,11498,11499,11501,11503,11505,11507],{"class":88,"line":5145},[86,11500,3415],{"class":120},[86,11502,3432],{"class":2507},[86,11504,5152],{"class":120},[86,11506,3432],{"class":2507},[86,11508,2519],{"class":120},[86,11510,11511,11513,11515],{"class":88,"line":5159},[86,11512,3444],{"class":120},[86,11514,4094],{"class":2507},[86,11516,2519],{"class":120},[86,11518,11519,11521,11523],{"class":88,"line":5168},[86,11520,3453],{"class":120},[86,11522,3398],{"class":2507},[86,11524,2519],{"class":120},[86,11526,11527,11529,11531],{"class":88,"line":5177},[86,11528,2921],{"class":120},[86,11530,3464],{"class":2507},[86,11532,2519],{"class":120},[86,11534,11535,11537,11539],{"class":88,"line":5186},[86,11536,3405],{"class":120},[86,11538,3473],{"class":2507},[86,11540,2519],{"class":120},[86,11542,11543,11545,11547],{"class":88,"line":5195},[86,11544,3415],{"class":120},[86,11546,3482],{"class":2507},[86,11548,3163],{"class":120},[86,11550,11551,11553,11555],{"class":88,"line":5204},[86,11552,3444],{"class":120},[86,11554,3473],{"class":2507},[86,11556,2519],{"class":120},[86,11558,11559,11561,11563],{"class":88,"line":5213},[86,11560,3405],{"class":120},[86,11562,3499],{"class":2507},[86,11564,3163],{"class":120},[86,11566,11567,11569,11571],{"class":88,"line":5222},[86,11568,3405],{"class":120},[86,11570,3508],{"class":2507},[86,11572,3163],{"class":120},[86,11574,11575,11577,11579],{"class":88,"line":5231},[86,11576,3453],{"class":120},[86,11578,3464],{"class":2507},[86,11580,2519],{"class":120},[86,11582,11583,11585,11587],{"class":88,"line":5240},[86,11584,2961],{"class":120},[86,11586,3382],{"class":2507},[86,11588,2519],{"class":120},[86,11590,11591,11593,11595,11597,11599,11601],{"class":88,"line":5249},[86,11592,2725],{"class":120},[86,11594,3533],{"class":2507},[86,11596,2511],{"class":106},[86,11598,1807],{"class":120},[86,11600,4214],{"class":110},[86,11602,2519],{"class":120},[86,11604,11605,11607,11609],{"class":88,"line":5264},[86,11606,2921],{"class":120},[86,11608,3398],{"class":2507},[86,11610,2519],{"class":120},[86,11612,11613,11615,11617],{"class":88,"line":5273},[86,11614,3405],{"class":120},[86,11616,4094],{"class":2507},[86,11618,2519],{"class":120},[86,11620,11621,11623,11625,11627,11629],{"class":88,"line":5282},[86,11622,3415],{"class":120},[86,11624,3432],{"class":2507},[86,11626,5152],{"class":120},[86,11628,3432],{"class":2507},[86,11630,2519],{"class":120},[86,11632,11633,11635,11637],{"class":88,"line":5295},[86,11634,3444],{"class":120},[86,11636,4094],{"class":2507},[86,11638,2519],{"class":120},[86,11640,11641,11643,11645],{"class":88,"line":5304},[86,11642,3453],{"class":120},[86,11644,3398],{"class":2507},[86,11646,2519],{"class":120},[86,11648,11649,11651,11653],{"class":88,"line":5313},[86,11650,2921],{"class":120},[86,11652,3605],{"class":2507},[86,11654,2519],{"class":120},[86,11656,11657,11659,11661,11663,11665],{"class":88,"line":5322},[86,11658,3405],{"class":120},[86,11660,3289],{"class":2507},[86,11662,4284],{"class":120},[86,11664,3289],{"class":2507},[86,11666,2519],{"class":120},[86,11668,11669,11671,11673,11675,11677],{"class":88,"line":5335},[86,11670,3405],{"class":120},[86,11672,3627],{"class":2507},[86,11674,3306],{"class":120},[86,11676,3627],{"class":2507},[86,11678,2519],{"class":120},[86,11680,11681,11683,11685,11687,11689],{"class":88,"line":5348},[86,11682,3405],{"class":120},[86,11684,3640],{"class":2507},[86,11686,4311],{"class":120},[86,11688,3640],{"class":2507},[86,11690,2519],{"class":120},[86,11692,11693,11695,11697],{"class":88,"line":5361},[86,11694,3453],{"class":120},[86,11696,3605],{"class":2507},[86,11698,2519],{"class":120},[86,11700,11701,11703,11705],{"class":88,"line":5370},[86,11702,2961],{"class":120},[86,11704,3533],{"class":2507},[86,11706,2519],{"class":120},[86,11708,11709,11711,11713,11715,11717],{"class":88,"line":5379},[86,11710,2725],{"class":120},[86,11712,3669],{"class":2507},[86,11714,3672],{"class":120},[86,11716,3669],{"class":2507},[86,11718,2519],{"class":120},[86,11720,11721,11723,11725,11727,11729],{"class":88,"line":5392},[86,11722,2725],{"class":120},[86,11724,3822],{"class":2507},[86,11726,3825],{"class":120},[86,11728,3822],{"class":2507},[86,11730,2519],{"class":120},[86,11732,11733,11735,11737],{"class":88,"line":5405},[86,11734,2785],{"class":120},[86,11736,2527],{"class":2507},[86,11738,2519],{"class":120},[86,11740,11741,11743,11745,11747,11749],{"class":88,"line":5414},[86,11742,2551],{"class":120},[86,11744,3354],{"class":2507},[86,11746,3320],{"class":120},[86,11748,3354],{"class":2507},[86,11750,2519],{"class":120},[86,11752,11753,11755,11757,11759,11761],{"class":88,"line":5427},[86,11754,2551],{"class":120},[86,11756,3859],{"class":2507},[86,11758,3825],{"class":120},[86,11760,3859],{"class":2507},[86,11762,2519],{"class":120},[86,11764,11765,11767,11769],{"class":88,"line":5440},[86,11766,2622],{"class":120},[86,11768,2865],{"class":2507},[86,11770,2519],{"class":120},[86,11772,11773,11775,11777,11779,11781,11783],{"class":88,"line":5449},[86,11774,2541],{"class":120},[86,11776,2865],{"class":2507},[86,11778,2511],{"class":106},[86,11780,1807],{"class":120},[86,11782,5460],{"class":110},[86,11784,2519],{"class":120},[86,11786,11787,11789,11791,11794,11796],{"class":88,"line":5465},[86,11788,2551],{"class":120},[86,11790,3669],{"class":2507},[86,11792,11793],{"class":120},">0.00012 2.51517 0.499999 0 -0 -0.00303\u003C\u002F",[86,11795,3669],{"class":2507},[86,11797,2519],{"class":120},[86,11799,11800,11802,11804,11806,11808,11810],{"class":88,"line":5479},[86,11801,2551],{"class":120},[86,11803,2527],{"class":2507},[86,11805,2511],{"class":106},[86,11807,1807],{"class":120},[86,11809,3918],{"class":110},[86,11811,2519],{"class":120},[86,11813,11814,11816,11818],{"class":88,"line":5494},[86,11815,2725],{"class":120},[86,11817,2544],{"class":2507},[86,11819,2519],{"class":120},[86,11821,11822,11824,11826],{"class":88,"line":5503},[86,11823,2921],{"class":120},[86,11825,2572],{"class":2507},[86,11827,2519],{"class":120},[86,11829,11830,11832,11834,11836,11838],{"class":88,"line":5512},[86,11831,3405],{"class":120},[86,11833,2924],{"class":2507},[86,11835,3948],{"class":120},[86,11837,2924],{"class":2507},[86,11839,2519],{"class":120},[86,11841,11842,11844,11846,11848,11850],{"class":88,"line":5525},[86,11843,3405],{"class":120},[86,11845,3736],{"class":2507},[86,11847,3739],{"class":120},[86,11849,3736],{"class":2507},[86,11851,2519],{"class":120},[86,11853,11854,11856,11858,11860,11862],{"class":88,"line":5538},[86,11855,3405],{"class":120},[86,11857,3750],{"class":2507},[86,11859,3739],{"class":120},[86,11861,3750],{"class":2507},[86,11863,2519],{"class":120},[86,11865,11866,11868,11870,11872,11874],{"class":88,"line":5551},[86,11867,3405],{"class":120},[86,11869,2937],{"class":2507},[86,11871,3948],{"class":120},[86,11873,2937],{"class":2507},[86,11875,2519],{"class":120},[86,11877,11878,11880,11882,11884,11886],{"class":88,"line":5564},[86,11879,3405],{"class":120},[86,11881,3777],{"class":2507},[86,11883,3739],{"class":120},[86,11885,3777],{"class":2507},[86,11887,2519],{"class":120},[86,11889,11890,11892,11894,11896,11898],{"class":88,"line":5577},[86,11891,3405],{"class":120},[86,11893,2950],{"class":2507},[86,11895,3948],{"class":120},[86,11897,2950],{"class":2507},[86,11899,2519],{"class":120},[86,11901,11902,11904,11906],{"class":88,"line":5590},[86,11903,3453],{"class":120},[86,11905,2572],{"class":2507},[86,11907,2519],{"class":120},[86,11909,11910,11912,11914,11916,11918],{"class":88,"line":5599},[86,11911,2921],{"class":120},[86,11913,2554],{"class":2507},[86,11915,3705],{"class":120},[86,11917,2554],{"class":2507},[86,11919,2519],{"class":120},[86,11921,11922,11924,11926,11928,11930],{"class":88,"line":5612},[86,11923,2921],{"class":120},[86,11925,3669],{"class":2507},[86,11927,3672],{"class":120},[86,11929,3669],{"class":2507},[86,11931,2519],{"class":120},[86,11933,11934,11936,11938],{"class":88,"line":5625},[86,11935,2961],{"class":120},[86,11937,2544],{"class":2507},[86,11939,2519],{"class":120},[86,11941,11942,11944,11946,11948,11950,11952],{"class":88,"line":5634},[86,11943,2725],{"class":120},[86,11945,3382],{"class":2507},[86,11947,2511],{"class":106},[86,11949,1807],{"class":120},[86,11951,4075],{"class":110},[86,11953,2519],{"class":120},[86,11955,11956,11958,11960],{"class":88,"line":5649},[86,11957,2921],{"class":120},[86,11959,3398],{"class":2507},[86,11961,2519],{"class":120},[86,11963,11964,11966,11968],{"class":88,"line":5658},[86,11965,3405],{"class":120},[86,11967,4094],{"class":2507},[86,11969,2519],{"class":120},[86,11971,11972,11974,11976,11978,11980],{"class":88,"line":5667},[86,11973,3415],{"class":120},[86,11975,3432],{"class":2507},[86,11977,5152],{"class":120},[86,11979,3432],{"class":2507},[86,11981,2519],{"class":120},[86,11983,11984,11986,11988],{"class":88,"line":5680},[86,11985,3444],{"class":120},[86,11987,4094],{"class":2507},[86,11989,2519],{"class":120},[86,11991,11992,11994,11996],{"class":88,"line":5689},[86,11993,3453],{"class":120},[86,11995,3398],{"class":2507},[86,11997,2519],{"class":120},[86,11999,12000,12002,12004],{"class":88,"line":5698},[86,12001,2921],{"class":120},[86,12003,3464],{"class":2507},[86,12005,2519],{"class":120},[86,12007,12008,12010,12012],{"class":88,"line":5707},[86,12009,3405],{"class":120},[86,12011,3473],{"class":2507},[86,12013,2519],{"class":120},[86,12015,12016,12018,12020],{"class":88,"line":5716},[86,12017,3415],{"class":120},[86,12019,3482],{"class":2507},[86,12021,3163],{"class":120},[86,12023,12024,12026,12028],{"class":88,"line":5725},[86,12025,3444],{"class":120},[86,12027,3473],{"class":2507},[86,12029,2519],{"class":120},[86,12031,12032,12034,12036],{"class":88,"line":5734},[86,12033,3405],{"class":120},[86,12035,3499],{"class":2507},[86,12037,3163],{"class":120},[86,12039,12040,12042,12044],{"class":88,"line":5743},[86,12041,3405],{"class":120},[86,12043,3508],{"class":2507},[86,12045,3163],{"class":120},[86,12047,12048,12050,12052],{"class":88,"line":5752},[86,12049,3453],{"class":120},[86,12051,3464],{"class":2507},[86,12053,2519],{"class":120},[86,12055,12056,12058,12060],{"class":88,"line":5761},[86,12057,2961],{"class":120},[86,12059,3382],{"class":2507},[86,12061,2519],{"class":120},[86,12063,12064,12066,12068,12070,12072,12074],{"class":88,"line":5770},[86,12065,2725],{"class":120},[86,12067,3533],{"class":2507},[86,12069,2511],{"class":106},[86,12071,1807],{"class":120},[86,12073,4214],{"class":110},[86,12075,2519],{"class":120},[86,12077,12078,12080,12082],{"class":88,"line":5785},[86,12079,2921],{"class":120},[86,12081,3398],{"class":2507},[86,12083,2519],{"class":120},[86,12085,12086,12088,12090],{"class":88,"line":5794},[86,12087,3405],{"class":120},[86,12089,4094],{"class":2507},[86,12091,2519],{"class":120},[86,12093,12094,12096,12098,12100,12102],{"class":88,"line":5803},[86,12095,3415],{"class":120},[86,12097,3432],{"class":2507},[86,12099,5152],{"class":120},[86,12101,3432],{"class":2507},[86,12103,2519],{"class":120},[86,12105,12106,12108,12110],{"class":88,"line":5816},[86,12107,3444],{"class":120},[86,12109,4094],{"class":2507},[86,12111,2519],{"class":120},[86,12113,12114,12116,12118],{"class":88,"line":5825},[86,12115,3453],{"class":120},[86,12117,3398],{"class":2507},[86,12119,2519],{"class":120},[86,12121,12122,12124,12126],{"class":88,"line":5834},[86,12123,2921],{"class":120},[86,12125,3605],{"class":2507},[86,12127,2519],{"class":120},[86,12129,12130,12132,12134,12136,12138],{"class":88,"line":5843},[86,12131,3405],{"class":120},[86,12133,3289],{"class":2507},[86,12135,4284],{"class":120},[86,12137,3289],{"class":2507},[86,12139,2519],{"class":120},[86,12141,12142,12144,12146,12148,12150],{"class":88,"line":5856},[86,12143,3405],{"class":120},[86,12145,3627],{"class":2507},[86,12147,3306],{"class":120},[86,12149,3627],{"class":2507},[86,12151,2519],{"class":120},[86,12153,12154,12156,12158,12160,12162],{"class":88,"line":5869},[86,12155,3405],{"class":120},[86,12157,3640],{"class":2507},[86,12159,4311],{"class":120},[86,12161,3640],{"class":2507},[86,12163,2519],{"class":120},[86,12165,12166,12168,12170],{"class":88,"line":5882},[86,12167,3453],{"class":120},[86,12169,3605],{"class":2507},[86,12171,2519],{"class":120},[86,12173,12174,12176,12178],{"class":88,"line":5891},[86,12175,2961],{"class":120},[86,12177,3533],{"class":2507},[86,12179,2519],{"class":120},[86,12181,12182,12184,12186,12188,12190],{"class":88,"line":5900},[86,12183,2725],{"class":120},[86,12185,3669],{"class":2507},[86,12187,3672],{"class":120},[86,12189,3669],{"class":2507},[86,12191,2519],{"class":120},[86,12193,12194,12196,12198,12200,12202],{"class":88,"line":5913},[86,12195,2725],{"class":120},[86,12197,3822],{"class":2507},[86,12199,3825],{"class":120},[86,12201,3822],{"class":2507},[86,12203,2519],{"class":120},[86,12205,12206,12208,12210],{"class":88,"line":5926},[86,12207,2785],{"class":120},[86,12209,2527],{"class":2507},[86,12211,2519],{"class":120},[86,12213,12214,12216,12218,12220,12222],{"class":88,"line":5935},[86,12215,2551],{"class":120},[86,12217,3354],{"class":2507},[86,12219,3320],{"class":120},[86,12221,3354],{"class":2507},[86,12223,2519],{"class":120},[86,12225,12226,12228,12230,12232,12234],{"class":88,"line":5948},[86,12227,2551],{"class":120},[86,12229,3859],{"class":2507},[86,12231,3825],{"class":120},[86,12233,3859],{"class":2507},[86,12235,2519],{"class":120},[86,12237,12238,12240,12242],{"class":88,"line":5961},[86,12239,2622],{"class":120},[86,12241,2865],{"class":2507},[86,12243,2519],{"class":120},[86,12245,12246],{"class":88,"line":5970},[86,12247,12248],{"class":99},"    \u003C!-- Jazzy 迁移说明开始：下面是本机 file:\u002F\u002F 模型目录，ign_models 只是文件夹名，不属于 Gazebo API，因此保留不改。 -->\n",[86,12250,12251,12253,12256],{"class":88,"line":5994},[86,12252,2541],{"class":120},[86,12254,12255],{"class":2507},"include",[86,12257,2519],{"class":120},[86,12259,12260,12262,12265,12268,12270],{"class":88,"line":6008},[86,12261,2551],{"class":120},[86,12263,12264],{"class":2507},"uri",[86,12266,12267],{"class":120},">file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002Fbed\u003C\u002F",[86,12269,12264],{"class":2507},[86,12271,2519],{"class":120},[86,12273,12274,12276,12278,12281,12283],{"class":88,"line":6022},[86,12275,2551],{"class":120},[86,12277,6255],{"class":2507},[86,12279,12280],{"class":120},">Bed\u003C\u002F",[86,12282,6255],{"class":2507},[86,12284,2519],{"class":120},[86,12286,12287,12289,12291,12294,12296],{"class":88,"line":6036},[86,12288,2551],{"class":120},[86,12290,3669],{"class":2507},[86,12292,12293],{"class":120},">2.11564 -0.080355 0 0 -0 0\u003C\u002F",[86,12295,3669],{"class":2507},[86,12297,2519],{"class":120},[86,12299,12300,12302,12304],{"class":88,"line":6051},[86,12301,2622],{"class":120},[86,12303,12255],{"class":2507},[86,12305,2519],{"class":120},[86,12307,12308,12310,12312],{"class":88,"line":6064},[86,12309,2541],{"class":120},[86,12311,12255],{"class":2507},[86,12313,2519],{"class":120},[86,12315,12316,12318,12320,12323,12325],{"class":88,"line":6078},[86,12317,2551],{"class":120},[86,12319,12264],{"class":2507},[86,12321,12322],{"class":120},">file:\u002F\u002F\u002Fhome\u002Ftungchiahui\u002FUserFolder\u002FMySource\u002FROS_WS\u002Fign_models\u002FWhiteCabinet\u003C\u002F",[86,12324,12264],{"class":2507},[86,12326,2519],{"class":120},[86,12328,12329,12331,12333,12336,12338],{"class":88,"line":6088},[86,12330,2551],{"class":120},[86,12332,6255],{"class":2507},[86,12334,12335],{"class":120},">WhiteCabinet\u003C\u002F",[86,12337,6255],{"class":2507},[86,12339,2519],{"class":120},[86,12341,12342,12344,12346,12349,12351],{"class":88,"line":6102},[86,12343,2551],{"class":120},[86,12345,3669],{"class":2507},[86,12347,12348],{"class":120},">-1.69505 1.99357 0 0 0 -1.59625\u003C\u002F",[86,12350,3669],{"class":2507},[86,12352,2519],{"class":120},[86,12354,12355,12357,12359],{"class":88,"line":6117},[86,12356,2622],{"class":120},[86,12358,12255],{"class":2507},[86,12360,2519],{"class":120},[86,12362,12363,12365,12367],{"class":88,"line":6132},[86,12364,2541],{"class":120},[86,12366,12255],{"class":2507},[86,12368,2519],{"class":120},[86,12370,12371,12373,12375,12377,12379],{"class":88,"line":6146},[86,12372,2551],{"class":120},[86,12374,12264],{"class":2507},[86,12376,12322],{"class":120},[86,12378,12264],{"class":2507},[86,12380,2519],{"class":120},[86,12382,12383,12385,12387,12390,12392],{"class":88,"line":6155},[86,12384,2551],{"class":120},[86,12386,6255],{"class":2507},[86,12388,12389],{"class":120},">WhiteCabinet_1\u003C\u002F",[86,12391,6255],{"class":2507},[86,12393,2519],{"class":120},[86,12395,12396,12398,12400,12403,12405],{"class":88,"line":6165},[86,12397,2551],{"class":120},[86,12399,3669],{"class":2507},[86,12401,12402],{"class":120},">-1.71706 1.10132 0 0 0 -1.59625\u003C\u002F",[86,12404,3669],{"class":2507},[86,12406,2519],{"class":120},[86,12408,12409,12411,12413],{"class":88,"line":6179},[86,12410,2622],{"class":120},[86,12412,12255],{"class":2507},[86,12414,2519],{"class":120},[86,12416,12417,12419,12421],{"class":88,"line":6193},[86,12418,2541],{"class":120},[86,12420,12255],{"class":2507},[86,12422,2519],{"class":120},[86,12424,12425,12427,12429,12431,12433],{"class":88,"line":6207},[86,12426,2551],{"class":120},[86,12428,12264],{"class":2507},[86,12430,12322],{"class":120},[86,12432,12264],{"class":2507},[86,12434,2519],{"class":120},[86,12436,12437,12439,12441,12444,12446],{"class":88,"line":6216},[86,12438,2551],{"class":120},[86,12440,6255],{"class":2507},[86,12442,12443],{"class":120},">WhiteCabinet_2\u003C\u002F",[86,12445,6255],{"class":2507},[86,12447,2519],{"class":120},[86,12449,12450,12452,12454,12457,12459],{"class":88,"line":6225},[86,12451,2551],{"class":120},[86,12453,3669],{"class":2507},[86,12455,12456],{"class":120},">-1.74096 0.206747 0 0 0 -1.59625\u003C\u002F",[86,12458,3669],{"class":2507},[86,12460,2519],{"class":120},[86,12462,12463,12465,12467],{"class":88,"line":6234},[86,12464,2622],{"class":120},[86,12466,12255],{"class":2507},[86,12468,2519],{"class":120},[86,12470,12472,12474,12476],{"class":88,"line":12471},278,[86,12473,2541],{"class":120},[86,12475,12255],{"class":2507},[86,12477,2519],{"class":120},[86,12479,12481,12483,12485,12487,12489],{"class":88,"line":12480},279,[86,12482,2551],{"class":120},[86,12484,12264],{"class":2507},[86,12486,12322],{"class":120},[86,12488,12264],{"class":2507},[86,12490,2519],{"class":120},[86,12492,12494,12496,12498,12501,12503],{"class":88,"line":12493},280,[86,12495,2551],{"class":120},[86,12497,6255],{"class":2507},[86,12499,12500],{"class":120},">WhiteCabinet_3\u003C\u002F",[86,12502,6255],{"class":2507},[86,12504,2519],{"class":120},[86,12506,12508,12510,12512,12515,12517],{"class":88,"line":12507},281,[86,12509,2551],{"class":120},[86,12511,3669],{"class":2507},[86,12513,12514],{"class":120},">-1.76908 -0.654114 0 0 0 -1.59625\u003C\u002F",[86,12516,3669],{"class":2507},[86,12518,2519],{"class":120},[86,12520,12522,12524,12526],{"class":88,"line":12521},282,[86,12523,2622],{"class":120},[86,12525,12255],{"class":2507},[86,12527,2519],{"class":120},[86,12529,12531,12533,12535],{"class":88,"line":12530},283,[86,12532,2541],{"class":120},[86,12534,12255],{"class":2507},[86,12536,2519],{"class":120},[86,12538,12540,12542,12544,12546,12548],{"class":88,"line":12539},284,[86,12541,2551],{"class":120},[86,12543,12264],{"class":2507},[86,12545,12322],{"class":120},[86,12547,12264],{"class":2507},[86,12549,2519],{"class":120},[86,12551,12553,12555,12557,12560,12562],{"class":88,"line":12552},285,[86,12554,2551],{"class":120},[86,12556,6255],{"class":2507},[86,12558,12559],{"class":120},">WhiteCabinet_4\u003C\u002F",[86,12561,6255],{"class":2507},[86,12563,2519],{"class":120},[86,12565,12567,12569,12571,12574,12576],{"class":88,"line":12566},286,[86,12568,2551],{"class":120},[86,12570,3669],{"class":2507},[86,12572,12573],{"class":120},">-3.54096 -1.97391 0 0 0 -1.59625\u003C\u002F",[86,12575,3669],{"class":2507},[86,12577,2519],{"class":120},[86,12579,12581,12583,12585],{"class":88,"line":12580},287,[86,12582,2622],{"class":120},[86,12584,12255],{"class":2507},[86,12586,2519],{"class":120},[86,12588,12590,12592,12594],{"class":88,"line":12589},288,[86,12591,2541],{"class":120},[86,12593,12255],{"class":2507},[86,12595,2519],{"class":120},[86,12597,12599,12601,12603,12605,12607],{"class":88,"line":12598},289,[86,12600,2551],{"class":120},[86,12602,12264],{"class":2507},[86,12604,12322],{"class":120},[86,12606,12264],{"class":2507},[86,12608,2519],{"class":120},[86,12610,12612,12614,12616,12619,12621],{"class":88,"line":12611},290,[86,12613,2551],{"class":120},[86,12615,6255],{"class":2507},[86,12617,12618],{"class":120},">WhiteCabinet_4_1\u003C\u002F",[86,12620,6255],{"class":2507},[86,12622,2519],{"class":120},[86,12624,12626,12628,12630,12633,12635],{"class":88,"line":12625},291,[86,12627,2551],{"class":120},[86,12629,3669],{"class":2507},[86,12631,12632],{"class":120},">-3.51784 -1.10026 0 0 0 -1.59625\u003C\u002F",[86,12634,3669],{"class":2507},[86,12636,2519],{"class":120},[86,12638,12640,12642,12644],{"class":88,"line":12639},292,[86,12641,2622],{"class":120},[86,12643,12255],{"class":2507},[86,12645,2519],{"class":120},[86,12647,12649,12651,12653],{"class":88,"line":12648},293,[86,12650,2541],{"class":120},[86,12652,12255],{"class":2507},[86,12654,2519],{"class":120},[86,12656,12658,12660,12662,12664,12666],{"class":88,"line":12657},294,[86,12659,2551],{"class":120},[86,12661,12264],{"class":2507},[86,12663,12322],{"class":120},[86,12665,12264],{"class":2507},[86,12667,2519],{"class":120},[86,12669,12671,12673,12675,12678,12680],{"class":88,"line":12670},295,[86,12672,2551],{"class":120},[86,12674,6255],{"class":2507},[86,12676,12677],{"class":120},">WhiteCabinet_4_1_1\u003C\u002F",[86,12679,6255],{"class":2507},[86,12681,2519],{"class":120},[86,12683,12685,12687,12689,12692,12694],{"class":88,"line":12684},296,[86,12686,2551],{"class":120},[86,12688,3669],{"class":2507},[86,12690,12691],{"class":120},">-3.44853 2.02068 0 0 0 -1.59625\u003C\u002F",[86,12693,3669],{"class":2507},[86,12695,2519],{"class":120},[86,12697,12699,12701,12703],{"class":88,"line":12698},297,[86,12700,2622],{"class":120},[86,12702,12255],{"class":2507},[86,12704,2519],{"class":120},[86,12706,12708,12710,12712],{"class":88,"line":12707},298,[86,12709,2541],{"class":120},[86,12711,12255],{"class":2507},[86,12713,2519],{"class":120},[86,12715,12717,12719,12721,12723,12725],{"class":88,"line":12716},299,[86,12718,2551],{"class":120},[86,12720,12264],{"class":2507},[86,12722,12322],{"class":120},[86,12724,12264],{"class":2507},[86,12726,2519],{"class":120},[86,12728,12730,12732,12734,12737,12739],{"class":88,"line":12729},300,[86,12731,2551],{"class":120},[86,12733,6255],{"class":2507},[86,12735,12736],{"class":120},">WhiteCabinet_4_1_1_1\u003C\u002F",[86,12738,6255],{"class":2507},[86,12740,2519],{"class":120},[86,12742,12744,12746,12748,12751,12753],{"class":88,"line":12743},301,[86,12745,2551],{"class":120},[86,12747,3669],{"class":2507},[86,12749,12750],{"class":120},">-3.499 -0.197449 0 0 0 -1.59625\u003C\u002F",[86,12752,3669],{"class":2507},[86,12754,2519],{"class":120},[86,12756,12758,12760,12762],{"class":88,"line":12757},302,[86,12759,2622],{"class":120},[86,12761,12255],{"class":2507},[86,12763,2519],{"class":120},[86,12765,12767,12769,12771],{"class":88,"line":12766},303,[86,12768,2541],{"class":120},[86,12770,12255],{"class":2507},[86,12772,2519],{"class":120},[86,12774,12776,12778,12780,12782,12784],{"class":88,"line":12775},304,[86,12777,2551],{"class":120},[86,12779,12264],{"class":2507},[86,12781,12322],{"class":120},[86,12783,12264],{"class":2507},[86,12785,2519],{"class":120},[86,12787,12789,12791,12793,12796,12798],{"class":88,"line":12788},305,[86,12790,2551],{"class":120},[86,12792,6255],{"class":2507},[86,12794,12795],{"class":120},">WhiteCabinet_3_1\u003C\u002F",[86,12797,6255],{"class":2507},[86,12799,2519],{"class":120},[86,12801,12803,12805,12807,12810,12812],{"class":88,"line":12802},306,[86,12804,2551],{"class":120},[86,12806,3669],{"class":2507},[86,12808,12809],{"class":120},">-0.465147 -0.678914 0 0 0 -1.59625\u003C\u002F",[86,12811,3669],{"class":2507},[86,12813,2519],{"class":120},[86,12815,12817,12819,12821],{"class":88,"line":12816},307,[86,12818,2622],{"class":120},[86,12820,12255],{"class":2507},[86,12822,2519],{"class":120},[86,12824,12826,12828,12830],{"class":88,"line":12825},308,[86,12827,2541],{"class":120},[86,12829,12255],{"class":2507},[86,12831,2519],{"class":120},[86,12833,12835,12837,12839,12841,12843],{"class":88,"line":12834},309,[86,12836,2551],{"class":120},[86,12838,12264],{"class":2507},[86,12840,12322],{"class":120},[86,12842,12264],{"class":2507},[86,12844,2519],{"class":120},[86,12846,12848,12850,12852,12855,12857],{"class":88,"line":12847},310,[86,12849,2551],{"class":120},[86,12851,6255],{"class":2507},[86,12853,12854],{"class":120},">WhiteCabinet_3_1_1\u003C\u002F",[86,12856,6255],{"class":2507},[86,12858,2519],{"class":120},[86,12860,12862,12864,12866,12869,12871],{"class":88,"line":12861},311,[86,12863,2551],{"class":120},[86,12865,3669],{"class":2507},[86,12867,12868],{"class":120},">-1.12325 -0.88551 0 0 0 -0.016899\u003C\u002F",[86,12870,3669],{"class":2507},[86,12872,2519],{"class":120},[86,12874,12876,12878,12880],{"class":88,"line":12875},312,[86,12877,2622],{"class":120},[86,12879,12255],{"class":2507},[86,12881,2519],{"class":120},[86,12883,12885,12887,12889],{"class":88,"line":12884},313,[86,12886,2541],{"class":120},[86,12888,12255],{"class":2507},[86,12890,2519],{"class":120},[86,12892,12894,12896,12898,12900,12902],{"class":88,"line":12893},314,[86,12895,2551],{"class":120},[86,12897,12264],{"class":2507},[86,12899,12322],{"class":120},[86,12901,12264],{"class":2507},[86,12903,2519],{"class":120},[86,12905,12907,12909,12911,12914,12916],{"class":88,"line":12906},315,[86,12908,2551],{"class":120},[86,12910,6255],{"class":2507},[86,12912,12913],{"class":120},">WhiteCabinet_3_1_2\u003C\u002F",[86,12915,6255],{"class":2507},[86,12917,2519],{"class":120},[86,12919,12921,12923,12925,12928,12930],{"class":88,"line":12920},316,[86,12922,2551],{"class":120},[86,12924,3669],{"class":2507},[86,12926,12927],{"class":120},">-0.445223 0.182127 0 0 0 -1.59625\u003C\u002F",[86,12929,3669],{"class":2507},[86,12931,2519],{"class":120},[86,12933,12935,12937,12939],{"class":88,"line":12934},317,[86,12936,2622],{"class":120},[86,12938,12255],{"class":2507},[86,12940,2519],{"class":120},[86,12942,12944,12946,12948],{"class":88,"line":12943},318,[86,12945,2541],{"class":120},[86,12947,12255],{"class":2507},[86,12949,2519],{"class":120},[86,12951,12953,12955,12957,12959,12961],{"class":88,"line":12952},319,[86,12954,2551],{"class":120},[86,12956,12264],{"class":2507},[86,12958,12322],{"class":120},[86,12960,12264],{"class":2507},[86,12962,2519],{"class":120},[86,12964,12966,12968,12970,12973,12975],{"class":88,"line":12965},320,[86,12967,2551],{"class":120},[86,12969,6255],{"class":2507},[86,12971,12972],{"class":120},">WhiteCabinet_3_1_2_1\u003C\u002F",[86,12974,6255],{"class":2507},[86,12976,2519],{"class":120},[86,12978,12980,12982,12984,12987,12989],{"class":88,"line":12979},321,[86,12981,2551],{"class":120},[86,12983,3669],{"class":2507},[86,12985,12986],{"class":120},">-0.422109 1.02215 0 0 0 -1.59625\u003C\u002F",[86,12988,3669],{"class":2507},[86,12990,2519],{"class":120},[86,12992,12994,12996,12998],{"class":88,"line":12993},322,[86,12995,2622],{"class":120},[86,12997,12255],{"class":2507},[86,12999,2519],{"class":120},[86,13001,13003],{"class":88,"line":13002},323,[86,13004,13005],{"class":99},"    \u003C!-- Jazzy 迁移说明结束：如果以后重命名本机模型目录，需要同步修改这些 file:\u002F\u002F 路径。 -->\n",[86,13007,13009,13011,13013,13015,13017,13019,13021,13023,13025],{"class":88,"line":13008},324,[86,13010,2541],{"class":120},[86,13012,5975],{"class":2507},[86,13014,2511],{"class":106},[86,13016,1807],{"class":120},[86,13018,5982],{"class":110},[86,13020,3081],{"class":106},[86,13022,1807],{"class":120},[86,13024,5989],{"class":110},[86,13026,2519],{"class":120},[86,13028,13030,13032,13034,13036,13038],{"class":88,"line":13029},325,[86,13031,2551],{"class":120},[86,13033,3669],{"class":2507},[86,13035,6001],{"class":120},[86,13037,3669],{"class":2507},[86,13039,2519],{"class":120},[86,13041,13043,13045,13047,13049,13051],{"class":88,"line":13042},326,[86,13044,2551],{"class":120},[86,13046,6013],{"class":2507},[86,13048,3320],{"class":120},[86,13050,6013],{"class":2507},[86,13052,2519],{"class":120},[86,13054,13056,13058,13060,13062,13064],{"class":88,"line":13055},327,[86,13057,2551],{"class":120},[86,13059,6027],{"class":2507},[86,13061,3112],{"class":120},[86,13063,6027],{"class":2507},[86,13065,2519],{"class":120},[86,13067,13069,13071,13073,13075,13077],{"class":88,"line":13068},328,[86,13070,2551],{"class":120},[86,13072,6041],{"class":2507},[86,13074,6044],{"class":120},[86,13076,6041],{"class":2507},[86,13078,2519],{"class":120},[86,13080,13082,13084,13086,13088,13090],{"class":88,"line":13081},329,[86,13083,2551],{"class":120},[86,13085,3627],{"class":2507},[86,13087,3616],{"class":120},[86,13089,3627],{"class":2507},[86,13091,2519],{"class":120},[86,13093,13095,13097,13099,13101,13103],{"class":88,"line":13094},330,[86,13096,2551],{"class":120},[86,13098,3640],{"class":2507},[86,13100,6071],{"class":120},[86,13102,3640],{"class":2507},[86,13104,2519],{"class":120},[86,13106,13108,13110,13112],{"class":88,"line":13107},331,[86,13109,2551],{"class":120},[86,13111,6083],{"class":2507},[86,13113,2519],{"class":120},[86,13115,13117,13119,13121,13123,13125],{"class":88,"line":13116},332,[86,13118,2725],{"class":120},[86,13120,6093],{"class":2507},[86,13122,3126],{"class":120},[86,13124,6093],{"class":2507},[86,13126,2519],{"class":120},[86,13128,13130,13132,13134,13136,13138],{"class":88,"line":13129},333,[86,13131,2725],{"class":120},[86,13133,6107],{"class":2507},[86,13135,6110],{"class":120},[86,13137,6107],{"class":2507},[86,13139,2519],{"class":120},[86,13141,13143,13145,13147,13149,13151],{"class":88,"line":13142},334,[86,13144,2725],{"class":120},[86,13146,6122],{"class":2507},[86,13148,6125],{"class":120},[86,13150,6122],{"class":2507},[86,13152,2519],{"class":120},[86,13154,13156,13158,13160,13162,13164],{"class":88,"line":13155},335,[86,13157,2725],{"class":120},[86,13159,6137],{"class":2507},[86,13161,3098],{"class":120},[86,13163,6137],{"class":2507},[86,13165,2519],{"class":120},[86,13167,13169,13171,13173],{"class":88,"line":13168},336,[86,13170,2785],{"class":120},[86,13172,6083],{"class":2507},[86,13174,2519],{"class":120},[86,13176,13178,13180,13182],{"class":88,"line":13177},337,[86,13179,2551],{"class":120},[86,13181,6160],{"class":2507},[86,13183,2519],{"class":120},[86,13185,13187,13189,13191,13193,13195],{"class":88,"line":13186},338,[86,13188,2725],{"class":120},[86,13190,6170],{"class":2507},[86,13192,3739],{"class":120},[86,13194,6170],{"class":2507},[86,13196,2519],{"class":120},[86,13198,13200,13202,13204,13206,13208],{"class":88,"line":13199},339,[86,13201,2725],{"class":120},[86,13203,6184],{"class":2507},[86,13205,3739],{"class":120},[86,13207,6184],{"class":2507},[86,13209,2519],{"class":120},[86,13211,13213,13215,13217,13219,13221],{"class":88,"line":13212},340,[86,13214,2725],{"class":120},[86,13216,6198],{"class":2507},[86,13218,3739],{"class":120},[86,13220,6198],{"class":2507},[86,13222,2519],{"class":120},[86,13224,13226,13228,13230],{"class":88,"line":13225},341,[86,13227,2785],{"class":120},[86,13229,6160],{"class":2507},[86,13231,2519],{"class":120},[86,13233,13235,13237,13239],{"class":88,"line":13234},342,[86,13236,2622],{"class":120},[86,13238,5975],{"class":2507},[86,13240,2519],{"class":120},[86,13242,13244,13246,13248],{"class":88,"line":13243},343,[86,13245,2631],{"class":120},[86,13247,3055],{"class":2507},[86,13249,2519],{"class":120},[86,13251,13253,13255,13257],{"class":88,"line":13252},344,[86,13254,2640],{"class":120},[86,13256,2848],{"class":2507},[86,13258,2519],{"class":120},[17,13260,13261],{},[21,13262,2285],{},[17,13264,2288],{},[76,13266,13267],{"className":78,"code":2291,"language":80,"meta":81,"style":81},[83,13268,13269],{"__ignoreMap":81},[86,13270,13271,13273,13275,13277],{"class":88,"line":89},[86,13272,2298],{"class":106},[86,13274,2301],{"class":110},[86,13276,2304],{"class":550},[86,13278,1542],{"class":110},[17,13280,13281],{},[21,13282,2316],{},[17,13284,2319],{},[76,13286,13287],{"className":78,"code":9436,"language":80,"meta":81,"style":81},[83,13288,13289,13295],{"__ignoreMap":81},[86,13290,13291,13293],{"class":88,"line":89},[86,13292,2329],{"class":550},[86,13294,2332],{"class":110},[86,13296,13297,13299,13301,13303],{"class":88,"line":96},[86,13298,237],{"class":106},[86,13300,240],{"class":110},[86,13302,2341],{"class":110},[86,13304,9455],{"class":110},[17,13306,9458],{},[17,13308,13309],{},[174,13310],{"alt":81,"src":13311},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1732.webp",[34,13313,13315],{"id":13314},"gazebo添加机器人","Gazebo添加机器人",[17,13317,13318],{},"Gazebo中可以直接创建机器人模型，或者也可以加载ROS2中URDF格式的机器人模型，此处我们使用后者（也可以选择用自己的urdf小车，但是注意修改launch的路径）。",[17,13320,13321,13322,13325],{},"咱们可以用之前创建的",[83,13323,13324],{},"cpp06_urdf","里的模型。",[17,13327,13328],{},[21,13329,13330],{},"准备机器人模型功能包",[17,13332,13333,13334],{},"在工作空间中输入以下命令从而去创建功能包",[83,13335,13336],{},"mycar_description",[76,13338,13340],{"className":78,"code":13339,"language":80,"meta":81,"style":81},"cd .\u002Fsrc\nros2 pkg create mycar_description --build-type ament_cmake\ncd ..\n",[83,13341,13342,13350,13367],{"__ignoreMap":81},[86,13343,13344,13347],{"class":88,"line":89},[86,13345,13346],{"class":550},"cd",[86,13348,13349],{"class":110}," .\u002Fsrc\n",[86,13351,13352,13354,13356,13358,13361,13364],{"class":88,"line":96},[86,13353,237],{"class":106},[86,13355,1536],{"class":110},[86,13357,1539],{"class":110},[86,13359,13360],{"class":110}," mycar_description",[86,13362,13363],{"class":550}," --build-type",[86,13365,13366],{"class":110}," ament_cmake\n",[86,13368,13369,13371],{"class":88,"line":103},[86,13370,13346],{"class":550},[86,13372,13373],{"class":110}," ..\n",[17,13375,13376,13377],{},"在功能包下创建以下文件夹",[83,13378,13379],{},"launch，urdf，rviz，meshes",[17,13381,13382],{},[21,13383,13384],{},"修改以下配置文件：",[17,13386,13387,13390],{},[21,13388,13389],{},"1. package.xml：","\n在 package.xml 中需要手动添加一些执行时依赖，核心内容如下：",[76,13392,13394],{"className":2495,"code":13393,"language":2497,"meta":81,"style":81},"\u003Cexec_depend>rviz2\u003C\u002Fexec_depend>\n\u003Cexec_depend>xacro\u003C\u002Fexec_depend>\n\u003Cexec_depend>robot_state_publisher\u003C\u002Fexec_depend>\n\u003Cexec_depend>joint_state_publisher\u003C\u002Fexec_depend>\n\u003Cexec_depend>ros2launch\u003C\u002Fexec_depend>\n",[83,13395,13396,13410,13423,13436,13449],{"__ignoreMap":81},[86,13397,13398,13400,13403,13406,13408],{"class":88,"line":89},[86,13399,2504],{"class":120},[86,13401,13402],{"class":2507},"exec_depend",[86,13404,13405],{"class":120},">rviz2\u003C\u002F",[86,13407,13402],{"class":2507},[86,13409,2519],{"class":120},[86,13411,13412,13414,13416,13419,13421],{"class":88,"line":96},[86,13413,2504],{"class":120},[86,13415,13402],{"class":2507},[86,13417,13418],{"class":120},">xacro\u003C\u002F",[86,13420,13402],{"class":2507},[86,13422,2519],{"class":120},[86,13424,13425,13427,13429,13432,13434],{"class":88,"line":103},[86,13426,2504],{"class":120},[86,13428,13402],{"class":2507},[86,13430,13431],{"class":120},">robot_state_publisher\u003C\u002F",[86,13433,13402],{"class":2507},[86,13435,2519],{"class":120},[86,13437,13438,13440,13442,13445,13447],{"class":88,"line":127},[86,13439,2504],{"class":120},[86,13441,13402],{"class":2507},[86,13443,13444],{"class":120},">joint_state_publisher\u003C\u002F",[86,13446,13402],{"class":2507},[86,13448,2519],{"class":120},[86,13450,13451,13453,13455,13458,13460],{"class":88,"line":132},[86,13452,2504],{"class":120},[86,13454,13402],{"class":2507},[86,13456,13457],{"class":120},">ros2launch\u003C\u002F",[86,13459,13402],{"class":2507},[86,13461,2519],{"class":120},[17,13463,13464,13467],{},[21,13465,13466],{},"2.CMakeLists.txt","\n在功能包下，新建了若干目录，需要为这些目录配置安装路径，核心内容如下：",[76,13469,13471],{"className":1558,"code":13470,"language":1560,"meta":81,"style":81},"install(\n  DIRECTORY launch urdf rviz meshes\n  DESTINATION share\u002F${PROJECT_NAME}  \n)\n",[83,13472,13473,13480,13485,13495],{"__ignoreMap":81},[86,13474,13475,13477],{"class":88,"line":89},[86,13476,1567],{"class":736},[86,13478,13479],{"class":120},"(\n",[86,13481,13482],{"class":88,"line":96},[86,13483,13484],{"class":120},"  DIRECTORY launch urdf rviz meshes\n",[86,13486,13487,13490,13492],{"class":88,"line":103},[86,13488,13489],{"class":120},"  DESTINATION share\u002F",[86,13491,1573],{"class":736},[86,13493,13494],{"class":120},"  \n",[86,13496,13497],{"class":88,"line":127},[86,13498,1576],{"class":120},[17,13500,13501,13502,13504,13505,13508,13509,13504,13511,13513],{},"把之前",[83,13503,13324],{},"功能包中的",[83,13506,13507],{},"urdf","文件夹里的内容覆盖到",[83,13510,13336],{},[83,13512,13507],{},"文件夹中。",[17,13515,13516,13517,13520],{},"ign_models中新建mycar_description目录，并将功能包mycar_description下的mesh目录复制进ign_models中的mycar_description目录。（此时meshes里是空的，很正常，你后续用到其他模型的时候可能才会有",[83,13518,13519],{},".STL","文件）",[17,13522,13523],{},[21,13524,13525],{},"添加Gazebo需要的sdf特有的标签",[17,13527,13528,13529,13532],{},"先修改",[83,13530,13531],{},"car_base.urdf.xacro","，添加上各种惯性，碰撞，摩擦等等：",[76,13534,13536],{"className":2495,"code":13535,"language":2497,"meta":81,"style":81},"\u003Crobot xmlns:xacro=\"http:\u002F\u002Fwiki.ros.org\u002Fxacro\">\n    \u003C!-- PI 值 -->\n    \u003Cxacro:property name=\"PI\" value=\"3.1416\"\u002F>\n    \u003C!-- 定义车辆参数 -->\n    \u003C!-- 车体长宽高 -->\n    \u003Cxacro:property name=\"base_link_x\" value=\"0.2\"\u002F>\n    \u003Cxacro:property name=\"base_link_y\" value=\"0.12\"\u002F>\n    \u003Cxacro:property name=\"base_link_z\" value=\"0.07\"\u002F>\n    \u003C!-- 离地间距 -->\n    \u003Cxacro:property name=\"distance\" value=\"0.015\"\u002F>\n    \u003C!-- 车轮半径 宽度 -->\n    \u003Cxacro:property name=\"wheel_radius\" value=\"0.025\"\u002F>\n    \u003Cxacro:property name=\"wheel_length\" value=\"0.02\"\u002F>\n\n    \u003C!-- Gazebo 新增开始：Gazebo 物理参数，用于给 link 生成 inertial -->\n    \u003Cxacro:property name=\"base_footprint_radius\" value=\"0.001\"\u002F>\n    \u003Cxacro:property name=\"base_footprint_mass\" value=\"0.001\"\u002F>\n    \u003Cxacro:property name=\"base_link_mass\" value=\"1.0\"\u002F>\n    \u003Cxacro:property name=\"wheel_mass\" value=\"0.05\"\u002F>\n    \u003Cxacro:property name=\"wheel_mu1\" value=\"1.0\"\u002F>\n    \u003Cxacro:property name=\"wheel_mu2\" value=\"0.05\"\u002F>\n    \u003C!-- Gazebo 新增结束：Gazebo 物理参数 -->\n\n    \u003C!-- Gazebo 新增开始：球体惯性宏，给 base_footprint 使用 -->\n    \u003Cxacro:macro name=\"sphere_inertial\" params=\"mass radius\">\n        \u003Cinertial>\n            \u003Cmass value=\"${mass}\"\u002F>\n            \u003Cinertia\n                ixx=\"${2.0 \u002F 5.0 * mass * radius * radius}\" ixy=\"0.0\" ixz=\"0.0\"\n                iyy=\"${2.0 \u002F 5.0 * mass * radius * radius}\" iyz=\"0.0\"\n                izz=\"${2.0 \u002F 5.0 * mass * radius * radius}\"\u002F>\n        \u003C\u002Finertial>\n    \u003C\u002Fxacro:macro>\n    \u003C!-- Gazebo 新增结束：球体惯性宏 -->\n\n    \u003C!-- Gazebo 新增开始：长方体惯性宏，给 base_link 使用 -->\n    \u003Cxacro:macro name=\"box_inertial\" params=\"mass x y z\">\n        \u003Cinertial>\n            \u003Cmass value=\"${mass}\"\u002F>\n            \u003Cinertia\n                ixx=\"${mass \u002F 12.0 * (y * y + z * z)}\" ixy=\"0.0\" ixz=\"0.0\"\n                iyy=\"${mass \u002F 12.0 * (x * x + z * z)}\" iyz=\"0.0\"\n                izz=\"${mass \u002F 12.0 * (x * x + y * y)}\"\u002F>\n        \u003C\u002Finertial>\n    \u003C\u002Fxacro:macro>\n    \u003C!-- Gazebo 新增结束：长方体惯性宏 -->\n\n    \u003C!-- Gazebo 新增开始：圆柱车轮惯性宏，给四个轮子使用 -->\n    \u003Cxacro:macro name=\"wheel_inertial\" params=\"mass radius length\">\n        \u003Cinertial>\n            \u003Cmass value=\"${mass}\"\u002F>\n            \u003Cinertia\n                ixx=\"${mass \u002F 12.0 * (3.0 * radius * radius + length * length)}\" ixy=\"0.0\" ixz=\"0.0\"\n                iyy=\"${mass \u002F 2.0 * radius * radius}\" iyz=\"0.0\"\n                izz=\"${mass \u002F 12.0 * (3.0 * radius * radius + length * length)}\"\u002F>\n        \u003C\u002Finertial>\n    \u003C\u002Fxacro:macro>\n    \u003C!-- Gazebo 新增结束：圆柱车轮惯性宏 -->\n\n    \u003C!-- 定义颜色 -->\n    \u003Cmaterial name=\"yellow\">\n        \u003Ccolor rgba=\"0.7 0.7 0 0.8\" \u002F>\n    \u003C\u002Fmaterial>\n    \u003Cmaterial name=\"red\">\n        \u003Ccolor rgba=\"0.8 0.1 0.1 0.8\" \u002F>\n    \u003C\u002Fmaterial>\n    \u003Cmaterial name=\"gray\">\n        \u003Ccolor rgba=\"0.2 0.2 0.2 0.95\" \u002F>\n      \u003C\u002Fmaterial>\n    \u003C!-- 定义 base_footprint -->\n    \u003Clink name=\"base_footprint\">\n        \u003Cvisual>\n            \u003Cgeometry>\n                \u003C!-- Codex 修改：把原来的固定 0.001 改成上面新增的参数 -->\n                \u003Csphere radius=\"${base_footprint_radius}\"\u002F>\n            \u003C\u002Fgeometry>\n        \u003C\u002Fvisual>\n        \u003C!-- Gazebo 新增：base_footprint 的惯性，避免 Gazebo 转 SDF 时丢弃根 link -->\n        \u003Cxacro:sphere_inertial mass=\"${base_footprint_mass}\" radius=\"${base_footprint_radius}\"\u002F>\n    \u003C\u002Flink>\n\n    \u003C!-- 定义 base_link -->\n    \u003Clink name=\"base_link\">\n        \u003Cvisual>\n            \u003C!-- 形状 -->\n            \u003Cgeometry>\n                \u003Cbox size=\"${base_link_x} ${base_link_y} ${base_link_z}\" \u002F>\n            \u003C\u002Fgeometry>\n            \u003Corigin xyz=\"0 0 0\" rpy=\"0 0 0\" \u002F>\n            \u003Cmaterial name=\"yellow\"\u002F>\n        \u003C\u002Fvisual>\n        \u003C!-- Gazebo 新增开始：base_link 碰撞体，Gazebo 物理仿真需要 collision -->\n        \u003Ccollision>\n            \u003Cgeometry>\n                \u003Cbox size=\"${base_link_x} ${base_link_y} ${base_link_z}\" \u002F>\n            \u003C\u002Fgeometry>\n            \u003Corigin xyz=\"0 0 0\" rpy=\"0 0 0\" \u002F>\n        \u003C\u002Fcollision>\n        \u003C!-- Gazebo 新增结束：base_link 碰撞体 -->\n        \u003C!-- Gazebo 新增：base_link 惯性，Gazebo 物理仿真需要 inertial -->\n        \u003Cxacro:box_inertial mass=\"${base_link_mass}\" x=\"${base_link_x}\" y=\"${base_link_y}\" z=\"${base_link_z}\"\u002F>\n    \u003C\u002Flink>\n    \u003Cjoint name=\"baselink2basefootprint\" type=\"fixed\">\n        \u003Cparent link=\"base_footprint\"\u002F>\n        \u003Cchild link=\"base_link\"\u002F>\n        \u003Corigin xyz=\"0.0 0.0 ${distance + base_link_z \u002F 2}\"\u002F>\n    \u003C\u002Fjoint>\n    \u003C!-- 车轮宏定义 -->\n    \u003Cxacro:macro name=\"wheel_func\" params=\"wheel_name is_front is_left\" >\n        \u003Clink name=\"${wheel_name}_wheel\">\n            \u003Cvisual>\n                \u003Cgeometry>\n                    \u003Ccylinder radius=\"${wheel_radius}\" length=\"${wheel_length}\" \u002F>\n                \u003C\u002Fgeometry>\n                \u003Corigin xyz=\"0 0 0\" rpy=\"${PI \u002F 2} 0 0\" \u002F>\n                \u003Cmaterial name=\"gray\"\u002F>\n            \u003C\u002Fvisual>\n            \u003C!-- Gazebo 新增开始：车轮碰撞体，四个轮子都会通过这个宏生成 -->\n            \u003Ccollision>\n                \u003Cgeometry>\n                    \u003Ccylinder radius=\"${wheel_radius}\" length=\"${wheel_length}\" \u002F>\n                \u003C\u002Fgeometry>\n                \u003Corigin xyz=\"0 0 0\" rpy=\"${PI \u002F 2} 0 0\" \u002F>\n            \u003C\u002Fcollision>\n            \u003C!-- Gazebo 新增结束：车轮碰撞体 -->\n            \u003C!-- Gazebo 新增：车轮惯性，四个轮子都会通过这个宏生成 -->\n            \u003Cxacro:wheel_inertial mass=\"${wheel_mass}\" radius=\"${wheel_radius}\" length=\"${wheel_length}\"\u002F>\n        \u003C\u002Flink>\n        \u003Cjoint name=\"${wheel_name}2baselink\" type=\"continuous\">\n            \u003Cparent link=\"base_link\"  \u002F>\n            \u003Cchild link=\"${wheel_name}_wheel\" \u002F>\n            \u003Corigin xyz=\"${(base_link_x \u002F 2 - wheel_radius) * is_front} ${base_link_y \u002F 2 * is_left} ${(base_link_z \u002F 2 + distance - wheel_radius) * -1}\" rpy=\"0 0 0\" \u002F>\n            \u003Caxis xyz=\"0 1 0\" \u002F>\n        \u003C\u002Fjoint>\n        \u003C!-- Gazebo 新增：四轮差速原地转弯需要轮胎横向滑移；降低 mu2 可以减少 Gazebo 中的卡顿和抖动 -->\n        \u003Cgazebo reference=\"${wheel_name}_wheel\">\n            \u003Cmu1>${wheel_mu1}\u003C\u002Fmu1>\n            \u003Cmu2>${wheel_mu2}\u003C\u002Fmu2>\n            \u003Cfdir1>1 0 0\u003C\u002Ffdir1>\n        \u003C\u002Fgazebo>\n    \u003C\u002Fxacro:macro>\n    \u003C!-- 车轮宏调用 -->\n    \u003Cxacro:wheel_func wheel_name=\"left_front\" is_front=\"1\" is_left=\"1\" \u002F>\n    \u003Cxacro:wheel_func wheel_name=\"left_back\" is_front=\"-1\" is_left=\"1\" \u002F>\n    \u003Cxacro:wheel_func wheel_name=\"right_front\" is_front=\"1\" is_left=\"-1\" \u002F>\n    \u003Cxacro:wheel_func wheel_name=\"right_back\" is_front=\"-1\" is_left=\"-1\" \u002F>\n\u003C\u002Frobot>\n",[83,13537,13538,13553,13558,13581,13586,13591,13613,13635,13657,13662,13684,13689,13711,13733,13737,13742,13764,13785,13806,13828,13849,13870,13875,13879,13884,13906,13914,13928,13935,13958,13973,13984,13992,14000,14005,14009,14014,14036,14044,14058,14064,14085,14100,14111,14119,14127,14132,14136,14141,14163,14171,14185,14191,14212,14227,14237,14245,14253,14258,14262,14267,14282,14299,14307,14322,14337,14345,14360,14375,14383,14388,14403,14411,14419,14424,14442,14450,14458,14463,14485,14493,14497,14502,14516,14524,14529,14537,14553,14561,14585,14599,14607,14612,14620,14628,14642,14650,14670,14678,14683,14688,14728,14736,14759,14775,14790,14805,14813,14818,14841,14856,14864,14872,14897,14906,14927,14941,14949,14954,14962,14970,14990,14998,15018,15026,15031,15036,15064,15072,15094,15109,15123,15144,15160,15168,15173,15189,15203,15217,15231,15239,15247,15252,15284,15312,15339,15366],{"__ignoreMap":81},[86,13539,13540,13542,13544,13546,13548,13551],{"class":88,"line":89},[86,13541,2504],{"class":120},[86,13543,2508],{"class":2507},[86,13545,2662],{"class":106},[86,13547,1807],{"class":120},[86,13549,13550],{"class":110},"\"http:\u002F\u002Fwiki.ros.org\u002Fxacro\"",[86,13552,2519],{"class":120},[86,13554,13555],{"class":88,"line":96},[86,13556,13557],{"class":99},"    \u003C!-- PI 值 -->\n",[86,13559,13560,13562,13565,13567,13569,13572,13574,13576,13579],{"class":88,"line":103},[86,13561,2541],{"class":120},[86,13563,13564],{"class":2507},"xacro:property",[86,13566,2511],{"class":106},[86,13568,1807],{"class":120},[86,13570,13571],{"class":110},"\"PI\"",[86,13573,2557],{"class":106},[86,13575,1807],{"class":120},[86,13577,13578],{"class":110},"\"3.1416\"",[86,13580,3163],{"class":120},[86,13582,13583],{"class":88,"line":127},[86,13584,13585],{"class":99},"    \u003C!-- 定义车辆参数 -->\n",[86,13587,13588],{"class":88,"line":132},[86,13589,13590],{"class":99},"    \u003C!-- 车体长宽高 -->\n",[86,13592,13593,13595,13597,13599,13601,13604,13606,13608,13611],{"class":88,"line":138},[86,13594,2541],{"class":120},[86,13596,13564],{"class":2507},[86,13598,2511],{"class":106},[86,13600,1807],{"class":120},[86,13602,13603],{"class":110},"\"base_link_x\"",[86,13605,2557],{"class":106},[86,13607,1807],{"class":120},[86,13609,13610],{"class":110},"\"0.2\"",[86,13612,3163],{"class":120},[86,13614,13615,13617,13619,13621,13623,13626,13628,13630,13633],{"class":88,"line":150},[86,13616,2541],{"class":120},[86,13618,13564],{"class":2507},[86,13620,2511],{"class":106},[86,13622,1807],{"class":120},[86,13624,13625],{"class":110},"\"base_link_y\"",[86,13627,2557],{"class":106},[86,13629,1807],{"class":120},[86,13631,13632],{"class":110},"\"0.12\"",[86,13634,3163],{"class":120},[86,13636,13637,13639,13641,13643,13645,13648,13650,13652,13655],{"class":88,"line":155},[86,13638,2541],{"class":120},[86,13640,13564],{"class":2507},[86,13642,2511],{"class":106},[86,13644,1807],{"class":120},[86,13646,13647],{"class":110},"\"base_link_z\"",[86,13649,2557],{"class":106},[86,13651,1807],{"class":120},[86,13653,13654],{"class":110},"\"0.07\"",[86,13656,3163],{"class":120},[86,13658,13659],{"class":88,"line":161},[86,13660,13661],{"class":99},"    \u003C!-- 离地间距 -->\n",[86,13663,13664,13666,13668,13670,13672,13675,13677,13679,13682],{"class":88,"line":408},[86,13665,2541],{"class":120},[86,13667,13564],{"class":2507},[86,13669,2511],{"class":106},[86,13671,1807],{"class":120},[86,13673,13674],{"class":110},"\"distance\"",[86,13676,2557],{"class":106},[86,13678,1807],{"class":120},[86,13680,13681],{"class":110},"\"0.015\"",[86,13683,3163],{"class":120},[86,13685,13686],{"class":88,"line":414},[86,13687,13688],{"class":99},"    \u003C!-- 车轮半径 宽度 -->\n",[86,13690,13691,13693,13695,13697,13699,13702,13704,13706,13709],{"class":88,"line":420},[86,13692,2541],{"class":120},[86,13694,13564],{"class":2507},[86,13696,2511],{"class":106},[86,13698,1807],{"class":120},[86,13700,13701],{"class":110},"\"wheel_radius\"",[86,13703,2557],{"class":106},[86,13705,1807],{"class":120},[86,13707,13708],{"class":110},"\"0.025\"",[86,13710,3163],{"class":120},[86,13712,13713,13715,13717,13719,13721,13724,13726,13728,13731],{"class":88,"line":426},[86,13714,2541],{"class":120},[86,13716,13564],{"class":2507},[86,13718,2511],{"class":106},[86,13720,1807],{"class":120},[86,13722,13723],{"class":110},"\"wheel_length\"",[86,13725,2557],{"class":106},[86,13727,1807],{"class":120},[86,13729,13730],{"class":110},"\"0.02\"",[86,13732,3163],{"class":120},[86,13734,13735],{"class":88,"line":1784},[86,13736,93],{"emptyLinePlaceholder":92},[86,13738,13739],{"class":88,"line":1796},[86,13740,13741],{"class":99},"    \u003C!-- Gazebo 新增开始：Gazebo 物理参数，用于给 link 生成 inertial -->\n",[86,13743,13744,13746,13748,13750,13752,13755,13757,13759,13762],{"class":88,"line":1801},[86,13745,2541],{"class":120},[86,13747,13564],{"class":2507},[86,13749,2511],{"class":106},[86,13751,1807],{"class":120},[86,13753,13754],{"class":110},"\"base_footprint_radius\"",[86,13756,2557],{"class":106},[86,13758,1807],{"class":120},[86,13760,13761],{"class":110},"\"0.001\"",[86,13763,3163],{"class":120},[86,13765,13766,13768,13770,13772,13774,13777,13779,13781,13783],{"class":88,"line":1818},[86,13767,2541],{"class":120},[86,13769,13564],{"class":2507},[86,13771,2511],{"class":106},[86,13773,1807],{"class":120},[86,13775,13776],{"class":110},"\"base_footprint_mass\"",[86,13778,2557],{"class":106},[86,13780,1807],{"class":120},[86,13782,13761],{"class":110},[86,13784,3163],{"class":120},[86,13786,13787,13789,13791,13793,13795,13798,13800,13802,13804],{"class":88,"line":1833},[86,13788,2541],{"class":120},[86,13790,13564],{"class":2507},[86,13792,2511],{"class":106},[86,13794,1807],{"class":120},[86,13796,13797],{"class":110},"\"base_link_mass\"",[86,13799,2557],{"class":106},[86,13801,1807],{"class":120},[86,13803,2562],{"class":110},[86,13805,3163],{"class":120},[86,13807,13808,13810,13812,13814,13816,13819,13821,13823,13826],{"class":88,"line":1855},[86,13809,2541],{"class":120},[86,13811,13564],{"class":2507},[86,13813,2511],{"class":106},[86,13815,1807],{"class":120},[86,13817,13818],{"class":110},"\"wheel_mass\"",[86,13820,2557],{"class":106},[86,13822,1807],{"class":120},[86,13824,13825],{"class":110},"\"0.05\"",[86,13827,3163],{"class":120},[86,13829,13830,13832,13834,13836,13838,13841,13843,13845,13847],{"class":88,"line":1860},[86,13831,2541],{"class":120},[86,13833,13564],{"class":2507},[86,13835,2511],{"class":106},[86,13837,1807],{"class":120},[86,13839,13840],{"class":110},"\"wheel_mu1\"",[86,13842,2557],{"class":106},[86,13844,1807],{"class":120},[86,13846,2562],{"class":110},[86,13848,3163],{"class":120},[86,13850,13851,13853,13855,13857,13859,13862,13864,13866,13868],{"class":88,"line":1871},[86,13852,2541],{"class":120},[86,13854,13564],{"class":2507},[86,13856,2511],{"class":106},[86,13858,1807],{"class":120},[86,13860,13861],{"class":110},"\"wheel_mu2\"",[86,13863,2557],{"class":106},[86,13865,1807],{"class":120},[86,13867,13825],{"class":110},[86,13869,3163],{"class":120},[86,13871,13872],{"class":88,"line":1877},[86,13873,13874],{"class":99},"    \u003C!-- Gazebo 新增结束：Gazebo 物理参数 -->\n",[86,13876,13877],{"class":88,"line":1895},[86,13878,93],{"emptyLinePlaceholder":92},[86,13880,13881],{"class":88,"line":1907},[86,13882,13883],{"class":99},"    \u003C!-- Gazebo 新增开始：球体惯性宏，给 base_footprint 使用 -->\n",[86,13885,13886,13888,13890,13892,13894,13897,13899,13901,13904],{"class":88,"line":1925},[86,13887,2541],{"class":120},[86,13889,2682],{"class":2507},[86,13891,2511],{"class":106},[86,13893,1807],{"class":120},[86,13895,13896],{"class":110},"\"sphere_inertial\"",[86,13898,2691],{"class":106},[86,13900,1807],{"class":120},[86,13902,13903],{"class":110},"\"mass radius\"",[86,13905,2519],{"class":120},[86,13907,13908,13910,13912],{"class":88,"line":1931},[86,13909,2725],{"class":120},[86,13911,2544],{"class":2507},[86,13913,2519],{"class":120},[86,13915,13916,13918,13920,13922,13924,13926],{"class":88,"line":1937},[86,13917,3405],{"class":120},[86,13919,2554],{"class":2507},[86,13921,2557],{"class":106},[86,13923,1807],{"class":120},[86,13925,2734],{"class":110},[86,13927,3163],{"class":120},[86,13929,13930,13932],{"class":88,"line":1942},[86,13931,3405],{"class":120},[86,13933,13934],{"class":2507},"inertia\n",[86,13936,13937,13940,13942,13945,13947,13949,13951,13953,13955],{"class":88,"line":1948},[86,13938,13939],{"class":106},"                ixx",[86,13941,1807],{"class":120},[86,13943,13944],{"class":110},"\"${2.0 \u002F 5.0 * mass * radius * radius}\"",[86,13946,2582],{"class":106},[86,13948,1807],{"class":120},[86,13950,2587],{"class":110},[86,13952,2590],{"class":106},[86,13954,1807],{"class":120},[86,13956,13957],{"class":110},"\"0.0\"\n",[86,13959,13960,13963,13965,13967,13969,13971],{"class":88,"line":1959},[86,13961,13962],{"class":106},"                iyy",[86,13964,1807],{"class":120},[86,13966,13944],{"class":110},[86,13968,2604],{"class":106},[86,13970,1807],{"class":120},[86,13972,13957],{"class":110},[86,13974,13975,13978,13980,13982],{"class":88,"line":1973},[86,13976,13977],{"class":106},"                izz",[86,13979,1807],{"class":120},[86,13981,13944],{"class":110},[86,13983,3163],{"class":120},[86,13985,13986,13988,13990],{"class":88,"line":1985},[86,13987,2961],{"class":120},[86,13989,2544],{"class":2507},[86,13991,2519],{"class":120},[86,13993,13994,13996,13998],{"class":88,"line":2012},[86,13995,2622],{"class":120},[86,13997,2682],{"class":2507},[86,13999,2519],{"class":120},[86,14001,14002],{"class":88,"line":2028},[86,14003,14004],{"class":99},"    \u003C!-- Gazebo 新增结束：球体惯性宏 -->\n",[86,14006,14007],{"class":88,"line":2033},[86,14008,93],{"emptyLinePlaceholder":92},[86,14010,14011],{"class":88,"line":2038},[86,14012,14013],{"class":99},"    \u003C!-- Gazebo 新增开始：长方体惯性宏，给 base_link 使用 -->\n",[86,14015,14016,14018,14020,14022,14024,14027,14029,14031,14034],{"class":88,"line":2044},[86,14017,2541],{"class":120},[86,14019,2682],{"class":2507},[86,14021,2511],{"class":106},[86,14023,1807],{"class":120},[86,14025,14026],{"class":110},"\"box_inertial\"",[86,14028,2691],{"class":106},[86,14030,1807],{"class":120},[86,14032,14033],{"class":110},"\"mass x y z\"",[86,14035,2519],{"class":120},[86,14037,14038,14040,14042],{"class":88,"line":2054},[86,14039,2725],{"class":120},[86,14041,2544],{"class":2507},[86,14043,2519],{"class":120},[86,14045,14046,14048,14050,14052,14054,14056],{"class":88,"line":2067},[86,14047,3405],{"class":120},[86,14049,2554],{"class":2507},[86,14051,2557],{"class":106},[86,14053,1807],{"class":120},[86,14055,2734],{"class":110},[86,14057,3163],{"class":120},[86,14059,14060,14062],{"class":88,"line":2080},[86,14061,3405],{"class":120},[86,14063,13934],{"class":2507},[86,14065,14066,14068,14070,14073,14075,14077,14079,14081,14083],{"class":88,"line":2095},[86,14067,13939],{"class":106},[86,14069,1807],{"class":120},[86,14071,14072],{"class":110},"\"${mass \u002F 12.0 * (y * y + z * z)}\"",[86,14074,2582],{"class":106},[86,14076,1807],{"class":120},[86,14078,2587],{"class":110},[86,14080,2590],{"class":106},[86,14082,1807],{"class":120},[86,14084,13957],{"class":110},[86,14086,14087,14089,14091,14094,14096,14098],{"class":88,"line":2103},[86,14088,13962],{"class":106},[86,14090,1807],{"class":120},[86,14092,14093],{"class":110},"\"${mass \u002F 12.0 * (x * x + z * z)}\"",[86,14095,2604],{"class":106},[86,14097,1807],{"class":120},[86,14099,13957],{"class":110},[86,14101,14102,14104,14106,14109],{"class":88,"line":2111},[86,14103,13977],{"class":106},[86,14105,1807],{"class":120},[86,14107,14108],{"class":110},"\"${mass \u002F 12.0 * (x * x + y * y)}\"",[86,14110,3163],{"class":120},[86,14112,14113,14115,14117],{"class":88,"line":2117},[86,14114,2961],{"class":120},[86,14116,2544],{"class":2507},[86,14118,2519],{"class":120},[86,14120,14121,14123,14125],{"class":88,"line":2139},[86,14122,2622],{"class":120},[86,14124,2682],{"class":2507},[86,14126,2519],{"class":120},[86,14128,14129],{"class":88,"line":2150},[86,14130,14131],{"class":99},"    \u003C!-- Gazebo 新增结束：长方体惯性宏 -->\n",[86,14133,14134],{"class":88,"line":2167},[86,14135,93],{"emptyLinePlaceholder":92},[86,14137,14138],{"class":88,"line":2182},[86,14139,14140],{"class":99},"    \u003C!-- Gazebo 新增开始：圆柱车轮惯性宏，给四个轮子使用 -->\n",[86,14142,14143,14145,14147,14149,14151,14154,14156,14158,14161],{"class":88,"line":2188},[86,14144,2541],{"class":120},[86,14146,2682],{"class":2507},[86,14148,2511],{"class":106},[86,14150,1807],{"class":120},[86,14152,14153],{"class":110},"\"wheel_inertial\"",[86,14155,2691],{"class":106},[86,14157,1807],{"class":120},[86,14159,14160],{"class":110},"\"mass radius length\"",[86,14162,2519],{"class":120},[86,14164,14165,14167,14169],{"class":88,"line":2199},[86,14166,2725],{"class":120},[86,14168,2544],{"class":2507},[86,14170,2519],{"class":120},[86,14172,14173,14175,14177,14179,14181,14183],{"class":88,"line":2204},[86,14174,3405],{"class":120},[86,14176,2554],{"class":2507},[86,14178,2557],{"class":106},[86,14180,1807],{"class":120},[86,14182,2734],{"class":110},[86,14184,3163],{"class":120},[86,14186,14187,14189],{"class":88,"line":2209},[86,14188,3405],{"class":120},[86,14190,13934],{"class":2507},[86,14192,14193,14195,14197,14200,14202,14204,14206,14208,14210],{"class":88,"line":2218},[86,14194,13939],{"class":106},[86,14196,1807],{"class":120},[86,14198,14199],{"class":110},"\"${mass \u002F 12.0 * (3.0 * radius * radius + length * length)}\"",[86,14201,2582],{"class":106},[86,14203,1807],{"class":120},[86,14205,2587],{"class":110},[86,14207,2590],{"class":106},[86,14209,1807],{"class":120},[86,14211,13957],{"class":110},[86,14213,14214,14216,14218,14221,14223,14225],{"class":88,"line":2224},[86,14215,13962],{"class":106},[86,14217,1807],{"class":120},[86,14219,14220],{"class":110},"\"${mass \u002F 2.0 * radius * radius}\"",[86,14222,2604],{"class":106},[86,14224,1807],{"class":120},[86,14226,13957],{"class":110},[86,14228,14229,14231,14233,14235],{"class":88,"line":2244},[86,14230,13977],{"class":106},[86,14232,1807],{"class":120},[86,14234,14199],{"class":110},[86,14236,3163],{"class":120},[86,14238,14239,14241,14243],{"class":88,"line":2257},[86,14240,2961],{"class":120},[86,14242,2544],{"class":2507},[86,14244,2519],{"class":120},[86,14246,14247,14249,14251],{"class":88,"line":2263},[86,14248,2622],{"class":120},[86,14250,2682],{"class":2507},[86,14252,2519],{"class":120},[86,14254,14255],{"class":88,"line":2269},[86,14256,14257],{"class":99},"    \u003C!-- Gazebo 新增结束：圆柱车轮惯性宏 -->\n",[86,14259,14260],{"class":88,"line":3759},[86,14261,93],{"emptyLinePlaceholder":92},[86,14263,14264],{"class":88,"line":3772},[86,14265,14266],{"class":99},"    \u003C!-- 定义颜色 -->\n",[86,14268,14269,14271,14273,14275,14277,14280],{"class":88,"line":3786},[86,14270,2541],{"class":120},[86,14272,3605],{"class":2507},[86,14274,2511],{"class":106},[86,14276,1807],{"class":120},[86,14278,14279],{"class":110},"\"yellow\"",[86,14281,2519],{"class":120},[86,14283,14284,14286,14289,14292,14294,14297],{"class":88,"line":3799},[86,14285,2725],{"class":120},[86,14287,14288],{"class":2507},"color",[86,14290,14291],{"class":106}," rgba",[86,14293,1807],{"class":120},[86,14295,14296],{"class":110},"\"0.7 0.7 0 0.8\"",[86,14298,2565],{"class":120},[86,14300,14301,14303,14305],{"class":88,"line":3808},[86,14302,2622],{"class":120},[86,14304,3605],{"class":2507},[86,14306,2519],{"class":120},[86,14308,14309,14311,14313,14315,14317,14320],{"class":88,"line":3817},[86,14310,2541],{"class":120},[86,14312,3605],{"class":2507},[86,14314,2511],{"class":106},[86,14316,1807],{"class":120},[86,14318,14319],{"class":110},"\"red\"",[86,14321,2519],{"class":120},[86,14323,14324,14326,14328,14330,14332,14335],{"class":88,"line":3832},[86,14325,2725],{"class":120},[86,14327,14288],{"class":2507},[86,14329,14291],{"class":106},[86,14331,1807],{"class":120},[86,14333,14334],{"class":110},"\"0.8 0.1 0.1 0.8\"",[86,14336,2565],{"class":120},[86,14338,14339,14341,14343],{"class":88,"line":3841},[86,14340,2622],{"class":120},[86,14342,3605],{"class":2507},[86,14344,2519],{"class":120},[86,14346,14347,14349,14351,14353,14355,14358],{"class":88,"line":3854},[86,14348,2541],{"class":120},[86,14350,3605],{"class":2507},[86,14352,2511],{"class":106},[86,14354,1807],{"class":120},[86,14356,14357],{"class":110},"\"gray\"",[86,14359,2519],{"class":120},[86,14361,14362,14364,14366,14368,14370,14373],{"class":88,"line":3868},[86,14363,2725],{"class":120},[86,14365,14288],{"class":2507},[86,14367,14291],{"class":106},[86,14369,1807],{"class":120},[86,14371,14372],{"class":110},"\"0.2 0.2 0.2 0.95\"",[86,14374,2565],{"class":120},[86,14376,14377,14379,14381],{"class":88,"line":3877},[86,14378,2785],{"class":120},[86,14380,3605],{"class":2507},[86,14382,2519],{"class":120},[86,14384,14385],{"class":88,"line":3893},[86,14386,14387],{"class":99},"    \u003C!-- 定义 base_footprint -->\n",[86,14389,14390,14392,14394,14396,14398,14401],{"class":88,"line":3907},[86,14391,2541],{"class":120},[86,14393,2527],{"class":2507},[86,14395,2511],{"class":106},[86,14397,1807],{"class":120},[86,14399,14400],{"class":110},"\"base_footprint\"",[86,14402,2519],{"class":120},[86,14404,14405,14407,14409],{"class":88,"line":3923},[86,14406,2725],{"class":120},[86,14408,3533],{"class":2507},[86,14410,2519],{"class":120},[86,14412,14413,14415,14417],{"class":88,"line":3932},[86,14414,3405],{"class":120},[86,14416,3398],{"class":2507},[86,14418,2519],{"class":120},[86,14420,14421],{"class":88,"line":3941},[86,14422,14423],{"class":99},"                \u003C!-- Codex 修改：把原来的固定 0.001 改成上面新增的参数 -->\n",[86,14425,14426,14429,14432,14435,14437,14440],{"class":88,"line":3955},[86,14427,14428],{"class":120},"                \u003C",[86,14430,14431],{"class":2507},"sphere",[86,14433,14434],{"class":106}," radius",[86,14436,1807],{"class":120},[86,14438,14439],{"class":110},"\"${base_footprint_radius}\"",[86,14441,3163],{"class":120},[86,14443,14444,14446,14448],{"class":88,"line":3968},[86,14445,3444],{"class":120},[86,14447,3398],{"class":2507},[86,14449,2519],{"class":120},[86,14451,14452,14454,14456],{"class":88,"line":3981},[86,14453,2961],{"class":120},[86,14455,3533],{"class":2507},[86,14457,2519],{"class":120},[86,14459,14460],{"class":88,"line":3994},[86,14461,14462],{"class":99},"        \u003C!-- Gazebo 新增：base_footprint 的惯性，避免 Gazebo 转 SDF 时丢弃根 link -->\n",[86,14464,14465,14467,14470,14472,14474,14477,14479,14481,14483],{"class":88,"line":4007},[86,14466,2725],{"class":120},[86,14468,14469],{"class":2507},"xacro:sphere_inertial",[86,14471,2819],{"class":106},[86,14473,1807],{"class":120},[86,14475,14476],{"class":110},"\"${base_footprint_mass}\"",[86,14478,14434],{"class":106},[86,14480,1807],{"class":120},[86,14482,14439],{"class":110},[86,14484,3163],{"class":120},[86,14486,14487,14489,14491],{"class":88,"line":4020},[86,14488,2622],{"class":120},[86,14490,2527],{"class":2507},[86,14492,2519],{"class":120},[86,14494,14495],{"class":88,"line":4029},[86,14496,93],{"emptyLinePlaceholder":92},[86,14498,14499],{"class":88,"line":4042},[86,14500,14501],{"class":99},"    \u003C!-- 定义 base_link -->\n",[86,14503,14504,14506,14508,14510,14512,14514],{"class":88,"line":4055},[86,14505,2541],{"class":120},[86,14507,2527],{"class":2507},[86,14509,2511],{"class":106},[86,14511,1807],{"class":120},[86,14513,2534],{"class":110},[86,14515,2519],{"class":120},[86,14517,14518,14520,14522],{"class":88,"line":4064},[86,14519,2725],{"class":120},[86,14521,3533],{"class":2507},[86,14523,2519],{"class":120},[86,14525,14526],{"class":88,"line":4080},[86,14527,14528],{"class":99},"            \u003C!-- 形状 -->\n",[86,14530,14531,14533,14535],{"class":88,"line":4089},[86,14532,3405],{"class":120},[86,14534,3398],{"class":2507},[86,14536,2519],{"class":120},[86,14538,14539,14541,14543,14546,14548,14551],{"class":88,"line":4099},[86,14540,14428],{"class":120},[86,14542,4094],{"class":2507},[86,14544,14545],{"class":106}," size",[86,14547,1807],{"class":120},[86,14549,14550],{"class":110},"\"${base_link_x} ${base_link_y} ${base_link_z}\"",[86,14552,2565],{"class":120},[86,14554,14555,14557,14559],{"class":88,"line":4113},[86,14556,3444],{"class":120},[86,14558,3398],{"class":2507},[86,14560,2519],{"class":120},[86,14562,14563,14565,14568,14571,14573,14576,14579,14581,14583],{"class":88,"line":4122},[86,14564,3405],{"class":120},[86,14566,14567],{"class":2507},"origin",[86,14569,14570],{"class":106}," xyz",[86,14572,1807],{"class":120},[86,14574,14575],{"class":110},"\"0 0 0\"",[86,14577,14578],{"class":106}," rpy",[86,14580,1807],{"class":120},[86,14582,14575],{"class":110},[86,14584,2565],{"class":120},[86,14586,14587,14589,14591,14593,14595,14597],{"class":88,"line":4131},[86,14588,3405],{"class":120},[86,14590,3605],{"class":2507},[86,14592,2511],{"class":106},[86,14594,1807],{"class":120},[86,14596,14279],{"class":110},[86,14598,3163],{"class":120},[86,14600,14601,14603,14605],{"class":88,"line":4140},[86,14602,2961],{"class":120},[86,14604,3533],{"class":2507},[86,14606,2519],{"class":120},[86,14608,14609],{"class":88,"line":4149},[86,14610,14611],{"class":99},"        \u003C!-- Gazebo 新增开始：base_link 碰撞体，Gazebo 物理仿真需要 collision -->\n",[86,14613,14614,14616,14618],{"class":88,"line":4158},[86,14615,2725],{"class":120},[86,14617,3382],{"class":2507},[86,14619,2519],{"class":120},[86,14621,14622,14624,14626],{"class":88,"line":4167},[86,14623,3405],{"class":120},[86,14625,3398],{"class":2507},[86,14627,2519],{"class":120},[86,14629,14630,14632,14634,14636,14638,14640],{"class":88,"line":4176},[86,14631,14428],{"class":120},[86,14633,4094],{"class":2507},[86,14635,14545],{"class":106},[86,14637,1807],{"class":120},[86,14639,14550],{"class":110},[86,14641,2565],{"class":120},[86,14643,14644,14646,14648],{"class":88,"line":4185},[86,14645,3444],{"class":120},[86,14647,3398],{"class":2507},[86,14649,2519],{"class":120},[86,14651,14652,14654,14656,14658,14660,14662,14664,14666,14668],{"class":88,"line":4194},[86,14653,3405],{"class":120},[86,14655,14567],{"class":2507},[86,14657,14570],{"class":106},[86,14659,1807],{"class":120},[86,14661,14575],{"class":110},[86,14663,14578],{"class":106},[86,14665,1807],{"class":120},[86,14667,14575],{"class":110},[86,14669,2565],{"class":120},[86,14671,14672,14674,14676],{"class":88,"line":4203},[86,14673,2961],{"class":120},[86,14675,3382],{"class":2507},[86,14677,2519],{"class":120},[86,14679,14680],{"class":88,"line":4219},[86,14681,14682],{"class":99},"        \u003C!-- Gazebo 新增结束：base_link 碰撞体 -->\n",[86,14684,14685],{"class":88,"line":4228},[86,14686,14687],{"class":99},"        \u003C!-- Gazebo 新增：base_link 惯性，Gazebo 物理仿真需要 inertial -->\n",[86,14689,14690,14692,14695,14697,14699,14702,14705,14707,14710,14713,14715,14718,14721,14723,14726],{"class":88,"line":4237},[86,14691,2725],{"class":120},[86,14693,14694],{"class":2507},"xacro:box_inertial",[86,14696,2819],{"class":106},[86,14698,1807],{"class":120},[86,14700,14701],{"class":110},"\"${base_link_mass}\"",[86,14703,14704],{"class":106}," x",[86,14706,1807],{"class":120},[86,14708,14709],{"class":110},"\"${base_link_x}\"",[86,14711,14712],{"class":106}," y",[86,14714,1807],{"class":120},[86,14716,14717],{"class":110},"\"${base_link_y}\"",[86,14719,14720],{"class":106}," z",[86,14722,1807],{"class":120},[86,14724,14725],{"class":110},"\"${base_link_z}\"",[86,14727,3163],{"class":120},[86,14729,14730,14732,14734],{"class":88,"line":4250},[86,14731,2622],{"class":120},[86,14733,2527],{"class":2507},[86,14735,2519],{"class":120},[86,14737,14738,14740,14743,14745,14747,14750,14752,14754,14757],{"class":88,"line":4259},[86,14739,2541],{"class":120},[86,14741,14742],{"class":2507},"joint",[86,14744,2511],{"class":106},[86,14746,1807],{"class":120},[86,14748,14749],{"class":110},"\"baselink2basefootprint\"",[86,14751,3081],{"class":106},[86,14753,1807],{"class":120},[86,14755,14756],{"class":110},"\"fixed\"",[86,14758,2519],{"class":120},[86,14760,14761,14763,14766,14769,14771,14773],{"class":88,"line":4268},[86,14762,2725],{"class":120},[86,14764,14765],{"class":2507},"parent",[86,14767,14768],{"class":106}," link",[86,14770,1807],{"class":120},[86,14772,14400],{"class":110},[86,14774,3163],{"class":120},[86,14776,14777,14779,14782,14784,14786,14788],{"class":88,"line":4277},[86,14778,2725],{"class":120},[86,14780,14781],{"class":2507},"child",[86,14783,14768],{"class":106},[86,14785,1807],{"class":120},[86,14787,2534],{"class":110},[86,14789,3163],{"class":120},[86,14791,14792,14794,14796,14798,14800,14803],{"class":88,"line":4291},[86,14793,2725],{"class":120},[86,14795,14567],{"class":2507},[86,14797,14570],{"class":106},[86,14799,1807],{"class":120},[86,14801,14802],{"class":110},"\"0.0 0.0 ${distance + base_link_z \u002F 2}\"",[86,14804,3163],{"class":120},[86,14806,14807,14809,14811],{"class":88,"line":4304},[86,14808,2622],{"class":120},[86,14810,14742],{"class":2507},[86,14812,2519],{"class":120},[86,14814,14815],{"class":88,"line":4318},[86,14816,14817],{"class":99},"    \u003C!-- 车轮宏定义 -->\n",[86,14819,14820,14822,14824,14826,14828,14831,14833,14835,14838],{"class":88,"line":4327},[86,14821,2541],{"class":120},[86,14823,2682],{"class":2507},[86,14825,2511],{"class":106},[86,14827,1807],{"class":120},[86,14829,14830],{"class":110},"\"wheel_func\"",[86,14832,2691],{"class":106},[86,14834,1807],{"class":120},[86,14836,14837],{"class":110},"\"wheel_name is_front is_left\"",[86,14839,14840],{"class":120}," >\n",[86,14842,14843,14845,14847,14849,14851,14854],{"class":88,"line":4336},[86,14844,2725],{"class":120},[86,14846,2527],{"class":2507},[86,14848,2511],{"class":106},[86,14850,1807],{"class":120},[86,14852,14853],{"class":110},"\"${wheel_name}_wheel\"",[86,14855,2519],{"class":120},[86,14857,14858,14860,14862],{"class":88,"line":4349},[86,14859,3405],{"class":120},[86,14861,3533],{"class":2507},[86,14863,2519],{"class":120},[86,14865,14866,14868,14870],{"class":88,"line":4362},[86,14867,14428],{"class":120},[86,14869,3398],{"class":2507},[86,14871,2519],{"class":120},[86,14873,14874,14877,14880,14882,14884,14887,14890,14892,14895],{"class":88,"line":4371},[86,14875,14876],{"class":120},"                    \u003C",[86,14878,14879],{"class":2507},"cylinder",[86,14881,14434],{"class":106},[86,14883,1807],{"class":120},[86,14885,14886],{"class":110},"\"${wheel_radius}\"",[86,14888,14889],{"class":106}," length",[86,14891,1807],{"class":120},[86,14893,14894],{"class":110},"\"${wheel_length}\"",[86,14896,2565],{"class":120},[86,14898,14899,14902,14904],{"class":88,"line":4384},[86,14900,14901],{"class":120},"                \u003C\u002F",[86,14903,3398],{"class":2507},[86,14905,2519],{"class":120},[86,14907,14908,14910,14912,14914,14916,14918,14920,14922,14925],{"class":88,"line":4397},[86,14909,14428],{"class":120},[86,14911,14567],{"class":2507},[86,14913,14570],{"class":106},[86,14915,1807],{"class":120},[86,14917,14575],{"class":110},[86,14919,14578],{"class":106},[86,14921,1807],{"class":120},[86,14923,14924],{"class":110},"\"${PI \u002F 2} 0 0\"",[86,14926,2565],{"class":120},[86,14928,14929,14931,14933,14935,14937,14939],{"class":88,"line":4406},[86,14930,14428],{"class":120},[86,14932,3605],{"class":2507},[86,14934,2511],{"class":106},[86,14936,1807],{"class":120},[86,14938,14357],{"class":110},[86,14940,3163],{"class":120},[86,14942,14943,14945,14947],{"class":88,"line":4422},[86,14944,3444],{"class":120},[86,14946,3533],{"class":2507},[86,14948,2519],{"class":120},[86,14950,14951],{"class":88,"line":4436},[86,14952,14953],{"class":99},"            \u003C!-- Gazebo 新增开始：车轮碰撞体，四个轮子都会通过这个宏生成 -->\n",[86,14955,14956,14958,14960],{"class":88,"line":4451},[86,14957,3405],{"class":120},[86,14959,3382],{"class":2507},[86,14961,2519],{"class":120},[86,14963,14964,14966,14968],{"class":88,"line":4460},[86,14965,14428],{"class":120},[86,14967,3398],{"class":2507},[86,14969,2519],{"class":120},[86,14971,14972,14974,14976,14978,14980,14982,14984,14986,14988],{"class":88,"line":4469},[86,14973,14876],{"class":120},[86,14975,14879],{"class":2507},[86,14977,14434],{"class":106},[86,14979,1807],{"class":120},[86,14981,14886],{"class":110},[86,14983,14889],{"class":106},[86,14985,1807],{"class":120},[86,14987,14894],{"class":110},[86,14989,2565],{"class":120},[86,14991,14992,14994,14996],{"class":88,"line":4482},[86,14993,14901],{"class":120},[86,14995,3398],{"class":2507},[86,14997,2519],{"class":120},[86,14999,15000,15002,15004,15006,15008,15010,15012,15014,15016],{"class":88,"line":4495},[86,15001,14428],{"class":120},[86,15003,14567],{"class":2507},[86,15005,14570],{"class":106},[86,15007,1807],{"class":120},[86,15009,14575],{"class":110},[86,15011,14578],{"class":106},[86,15013,1807],{"class":120},[86,15015,14924],{"class":110},[86,15017,2565],{"class":120},[86,15019,15020,15022,15024],{"class":88,"line":4508},[86,15021,3444],{"class":120},[86,15023,3382],{"class":2507},[86,15025,2519],{"class":120},[86,15027,15028],{"class":88,"line":4521},[86,15029,15030],{"class":99},"            \u003C!-- Gazebo 新增结束：车轮碰撞体 -->\n",[86,15032,15033],{"class":88,"line":4534},[86,15034,15035],{"class":99},"            \u003C!-- Gazebo 新增：车轮惯性，四个轮子都会通过这个宏生成 -->\n",[86,15037,15038,15040,15043,15045,15047,15050,15052,15054,15056,15058,15060,15062],{"class":88,"line":4547},[86,15039,3405],{"class":120},[86,15041,15042],{"class":2507},"xacro:wheel_inertial",[86,15044,2819],{"class":106},[86,15046,1807],{"class":120},[86,15048,15049],{"class":110},"\"${wheel_mass}\"",[86,15051,14434],{"class":106},[86,15053,1807],{"class":120},[86,15055,14886],{"class":110},[86,15057,14889],{"class":106},[86,15059,1807],{"class":120},[86,15061,14894],{"class":110},[86,15063,3163],{"class":120},[86,15065,15066,15068,15070],{"class":88,"line":4556},[86,15067,2961],{"class":120},[86,15069,2527],{"class":2507},[86,15071,2519],{"class":120},[86,15073,15074,15076,15078,15080,15082,15085,15087,15089,15092],{"class":88,"line":4569},[86,15075,2725],{"class":120},[86,15077,14742],{"class":2507},[86,15079,2511],{"class":106},[86,15081,1807],{"class":120},[86,15083,15084],{"class":110},"\"${wheel_name}2baselink\"",[86,15086,3081],{"class":106},[86,15088,1807],{"class":120},[86,15090,15091],{"class":110},"\"continuous\"",[86,15093,2519],{"class":120},[86,15095,15096,15098,15100,15102,15104,15106],{"class":88,"line":4582},[86,15097,3405],{"class":120},[86,15099,14765],{"class":2507},[86,15101,14768],{"class":106},[86,15103,1807],{"class":120},[86,15105,2534],{"class":110},[86,15107,15108],{"class":120},"  \u002F>\n",[86,15110,15111,15113,15115,15117,15119,15121],{"class":88,"line":4591},[86,15112,3405],{"class":120},[86,15114,14781],{"class":2507},[86,15116,14768],{"class":106},[86,15118,1807],{"class":120},[86,15120,14853],{"class":110},[86,15122,2565],{"class":120},[86,15124,15125,15127,15129,15131,15133,15136,15138,15140,15142],{"class":88,"line":4606},[86,15126,3405],{"class":120},[86,15128,14567],{"class":2507},[86,15130,14570],{"class":106},[86,15132,1807],{"class":120},[86,15134,15135],{"class":110},"\"${(base_link_x \u002F 2 - wheel_radius) * is_front} ${base_link_y \u002F 2 * is_left} ${(base_link_z \u002F 2 + distance - wheel_radius) * -1}\"",[86,15137,14578],{"class":106},[86,15139,1807],{"class":120},[86,15141,14575],{"class":110},[86,15143,2565],{"class":120},[86,15145,15146,15148,15151,15153,15155,15158],{"class":88,"line":4615},[86,15147,3405],{"class":120},[86,15149,15150],{"class":2507},"axis",[86,15152,14570],{"class":106},[86,15154,1807],{"class":120},[86,15156,15157],{"class":110},"\"0 1 0\"",[86,15159,2565],{"class":120},[86,15161,15162,15164,15166],{"class":88,"line":4624},[86,15163,2961],{"class":120},[86,15165,14742],{"class":2507},[86,15167,2519],{"class":120},[86,15169,15170],{"class":88,"line":4637},[86,15171,15172],{"class":99},"        \u003C!-- Gazebo 新增：四轮差速原地转弯需要轮胎横向滑移；降低 mu2 可以减少 Gazebo 中的卡顿和抖动 -->\n",[86,15174,15175,15177,15180,15183,15185,15187],{"class":88,"line":4646},[86,15176,2725],{"class":120},[86,15178,15179],{"class":2507},"gazebo",[86,15181,15182],{"class":106}," reference",[86,15184,1807],{"class":120},[86,15186,14853],{"class":110},[86,15188,2519],{"class":120},[86,15190,15191,15193,15196,15199,15201],{"class":88,"line":4655},[86,15192,3405],{"class":120},[86,15194,15195],{"class":2507},"mu1",[86,15197,15198],{"class":120},">${wheel_mu1}\u003C\u002F",[86,15200,15195],{"class":2507},[86,15202,2519],{"class":120},[86,15204,15205,15207,15210,15213,15215],{"class":88,"line":4664},[86,15206,3405],{"class":120},[86,15208,15209],{"class":2507},"mu2",[86,15211,15212],{"class":120},">${wheel_mu2}\u003C\u002F",[86,15214,15209],{"class":2507},[86,15216,2519],{"class":120},[86,15218,15219,15221,15224,15227,15229],{"class":88,"line":4673},[86,15220,3405],{"class":120},[86,15222,15223],{"class":2507},"fdir1",[86,15225,15226],{"class":120},">1 0 0\u003C\u002F",[86,15228,15223],{"class":2507},[86,15230,2519],{"class":120},[86,15232,15233,15235,15237],{"class":88,"line":4682},[86,15234,2961],{"class":120},[86,15236,15179],{"class":2507},[86,15238,2519],{"class":120},[86,15240,15241,15243,15245],{"class":88,"line":4691},[86,15242,2622],{"class":120},[86,15244,2682],{"class":2507},[86,15246,2519],{"class":120},[86,15248,15249],{"class":88,"line":4700},[86,15250,15251],{"class":99},"    \u003C!-- 车轮宏调用 -->\n",[86,15253,15254,15256,15259,15262,15264,15267,15270,15272,15275,15278,15280,15282],{"class":88,"line":4709},[86,15255,2541],{"class":120},[86,15257,15258],{"class":2507},"xacro:wheel_func",[86,15260,15261],{"class":106}," wheel_name",[86,15263,1807],{"class":120},[86,15265,15266],{"class":110},"\"left_front\"",[86,15268,15269],{"class":106}," is_front",[86,15271,1807],{"class":120},[86,15273,15274],{"class":110},"\"1\"",[86,15276,15277],{"class":106}," is_left",[86,15279,1807],{"class":120},[86,15281,15274],{"class":110},[86,15283,2565],{"class":120},[86,15285,15286,15288,15290,15292,15294,15297,15299,15301,15304,15306,15308,15310],{"class":88,"line":4718},[86,15287,2541],{"class":120},[86,15289,15258],{"class":2507},[86,15291,15261],{"class":106},[86,15293,1807],{"class":120},[86,15295,15296],{"class":110},"\"left_back\"",[86,15298,15269],{"class":106},[86,15300,1807],{"class":120},[86,15302,15303],{"class":110},"\"-1\"",[86,15305,15277],{"class":106},[86,15307,1807],{"class":120},[86,15309,15274],{"class":110},[86,15311,2565],{"class":120},[86,15313,15314,15316,15318,15320,15322,15325,15327,15329,15331,15333,15335,15337],{"class":88,"line":4727},[86,15315,2541],{"class":120},[86,15317,15258],{"class":2507},[86,15319,15261],{"class":106},[86,15321,1807],{"class":120},[86,15323,15324],{"class":110},"\"right_front\"",[86,15326,15269],{"class":106},[86,15328,1807],{"class":120},[86,15330,15274],{"class":110},[86,15332,15277],{"class":106},[86,15334,1807],{"class":120},[86,15336,15303],{"class":110},[86,15338,2565],{"class":120},[86,15340,15341,15343,15345,15347,15349,15352,15354,15356,15358,15360,15362,15364],{"class":88,"line":4742},[86,15342,2541],{"class":120},[86,15344,15258],{"class":2507},[86,15346,15261],{"class":106},[86,15348,1807],{"class":120},[86,15350,15351],{"class":110},"\"right_back\"",[86,15353,15269],{"class":106},[86,15355,1807],{"class":120},[86,15357,15303],{"class":110},[86,15359,15277],{"class":106},[86,15361,1807],{"class":120},[86,15363,15303],{"class":110},[86,15365,2565],{"class":120},[86,15367,15368,15370,15372],{"class":88,"line":4751},[86,15369,2640],{"class":120},[86,15371,2508],{"class":2507},[86,15373,2519],{"class":120},[17,15375,15376,15377,15380],{},"修改",[83,15378,15379],{},"car.urdf.xacro","：",[76,15382,15384],{"className":2495,"code":15383,"language":2497,"meta":81,"style":81},"\u003Crobot name=\"car\" xmlns:xacro=\"http:\u002F\u002Fwiki.ros.org\u002Fxacro\">\n    \u003Cxacro:include filename=\"car_base.urdf.xacro\"\u002F>\n    \u003Cxacro:include filename=\"car_camera.urdf.xacro\"\u002F>\n    \u003Cxacro:include filename=\"car_laser.urdf.xacro\"\u002F>\n\u003C\u002Frobot>\n",[83,15385,15386,15407,15423,15438,15453],{"__ignoreMap":81},[86,15387,15388,15390,15392,15394,15396,15399,15401,15403,15405],{"class":88,"line":89},[86,15389,2504],{"class":120},[86,15391,2508],{"class":2507},[86,15393,2511],{"class":106},[86,15395,1807],{"class":120},[86,15397,15398],{"class":110},"\"car\"",[86,15400,2662],{"class":106},[86,15402,1807],{"class":120},[86,15404,13550],{"class":110},[86,15406,2519],{"class":120},[86,15408,15409,15411,15414,15416,15418,15421],{"class":88,"line":96},[86,15410,2541],{"class":120},[86,15412,15413],{"class":2507},"xacro:include",[86,15415,3155],{"class":106},[86,15417,1807],{"class":120},[86,15419,15420],{"class":110},"\"car_base.urdf.xacro\"",[86,15422,3163],{"class":120},[86,15424,15425,15427,15429,15431,15433,15436],{"class":88,"line":103},[86,15426,2541],{"class":120},[86,15428,15413],{"class":2507},[86,15430,3155],{"class":106},[86,15432,1807],{"class":120},[86,15434,15435],{"class":110},"\"car_camera.urdf.xacro\"",[86,15437,3163],{"class":120},[86,15439,15440,15442,15444,15446,15448,15451],{"class":88,"line":127},[86,15441,2541],{"class":120},[86,15443,15413],{"class":2507},[86,15445,3155],{"class":106},[86,15447,1807],{"class":120},[86,15449,15450],{"class":110},"\"car_laser.urdf.xacro\"",[86,15452,3163],{"class":120},[86,15454,15455,15457,15459],{"class":88,"line":132},[86,15456,2640],{"class":120},[86,15458,2508],{"class":2507},[86,15460,2519],{"class":120},[17,15462,15463],{},[21,15464,15465],{},"机器人模型功能包下新建launch文件",[17,15467,15468],{},"新建launch文件mycar_desc_sim.launch.py，并输入如下内容：",[76,15470,15472],{"className":1657,"code":15471,"language":1659,"meta":81,"style":81},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\nimport os\nfrom ament_index_python.packages import get_package_share_directory\nfrom launch_ros.parameter_descriptions import ParameterValue\nfrom launch.substitutions import Command,LaunchConfiguration\nfrom launch.actions import DeclareLaunchArgument\n\ndef generate_launch_description():\n\n    mycar_description = get_package_share_directory(\"mycar_description\")\n    default_model_path = os.path.join(mycar_description,\"urdf\u002Fxacro\",\"car.urdf.xacro\")\n    model = DeclareLaunchArgument(name=\"model\", default_value=default_model_path)\n\n    # 加载机器人模型\n    # 启动 robot_state_publisher 节点并以参数方式加载 urdf 文件\n    robot_description = ParameterValue(Command([\"xacro \",LaunchConfiguration(\"model\")]))\n    robot_state_publisher = Node(\n        package=\"robot_state_publisher\",\n        executable=\"robot_state_publisher\",\n        parameters=[{\"robot_description\": robot_description}]\n    )\n\n    return LaunchDescription([\n        model,\n        robot_state_publisher,\n    ])\n",[83,15473,15474,15484,15494,15500,15510,15522,15533,15543,15547,15555,15559,15573,15593,15619,15623,15628,15633,15654,15663,15674,15684,15698,15702,15706,15712,15717,15722],{"__ignoreMap":81},[86,15475,15476,15478,15480,15482],{"class":88,"line":89},[86,15477,1678],{"class":736},[86,15479,1697],{"class":120},[86,15481,1666],{"class":736},[86,15483,1702],{"class":120},[86,15485,15486,15488,15490,15492],{"class":88,"line":96},[86,15487,1678],{"class":736},[86,15489,1772],{"class":120},[86,15491,1666],{"class":736},[86,15493,1777],{"class":120},[86,15495,15496,15498],{"class":88,"line":103},[86,15497,1666],{"class":736},[86,15499,1669],{"class":120},[86,15501,15502,15504,15506,15508],{"class":88,"line":127},[86,15503,1678],{"class":736},[86,15505,1681],{"class":120},[86,15507,1666],{"class":736},[86,15509,1686],{"class":120},[86,15511,15512,15514,15517,15519],{"class":88,"line":132},[86,15513,1678],{"class":736},[86,15515,15516],{"class":120}," launch_ros.parameter_descriptions ",[86,15518,1666],{"class":736},[86,15520,15521],{"class":120}," ParameterValue\n",[86,15523,15524,15526,15528,15530],{"class":88,"line":138},[86,15525,1678],{"class":736},[86,15527,1756],{"class":120},[86,15529,1666],{"class":736},[86,15531,15532],{"class":120}," Command,LaunchConfiguration\n",[86,15534,15535,15537,15539,15541],{"class":88,"line":150},[86,15536,1678],{"class":736},[86,15538,1709],{"class":120},[86,15540,1666],{"class":736},[86,15542,1714],{"class":120},[86,15544,15545],{"class":88,"line":155},[86,15546,93],{"emptyLinePlaceholder":92},[86,15548,15549,15551,15553],{"class":88,"line":161},[86,15550,1787],{"class":736},[86,15552,1790],{"class":106},[86,15554,1793],{"class":120},[86,15556,15557],{"class":88,"line":408},[86,15558,93],{"emptyLinePlaceholder":92},[86,15560,15561,15564,15566,15568,15571],{"class":88,"line":414},[86,15562,15563],{"class":120},"    mycar_description ",[86,15565,1807],{"class":736},[86,15567,1810],{"class":120},[86,15569,15570],{"class":110},"\"mycar_description\"",[86,15572,1576],{"class":120},[86,15574,15575,15578,15580,15583,15586,15588,15591],{"class":88,"line":420},[86,15576,15577],{"class":120},"    default_model_path ",[86,15579,1807],{"class":736},[86,15581,15582],{"class":120}," os.path.join(mycar_description,",[86,15584,15585],{"class":110},"\"urdf\u002Fxacro\"",[86,15587,1847],{"class":120},[86,15589,15590],{"class":110},"\"car.urdf.xacro\"",[86,15592,1576],{"class":120},[86,15594,15595,15598,15600,15603,15605,15607,15610,15612,15614,15616],{"class":88,"line":426},[86,15596,15597],{"class":120},"    model ",[86,15599,1807],{"class":736},[86,15601,15602],{"class":120}," DeclareLaunchArgument(",[86,15604,6255],{"class":1898},[86,15606,1807],{"class":736},[86,15608,15609],{"class":110},"\"model\"",[86,15611,1886],{"class":120},[86,15613,2234],{"class":1898},[86,15615,1807],{"class":736},[86,15617,15618],{"class":120},"default_model_path)\n",[86,15620,15621],{"class":88,"line":1784},[86,15622,93],{"emptyLinePlaceholder":92},[86,15624,15625],{"class":88,"line":1796},[86,15626,15627],{"class":99},"    # 加载机器人模型\n",[86,15629,15630],{"class":88,"line":1801},[86,15631,15632],{"class":99},"    # 启动 robot_state_publisher 节点并以参数方式加载 urdf 文件\n",[86,15634,15635,15638,15640,15643,15646,15649,15651],{"class":88,"line":1818},[86,15636,15637],{"class":120},"    robot_description ",[86,15639,1807],{"class":736},[86,15641,15642],{"class":120}," ParameterValue(Command([",[86,15644,15645],{"class":110},"\"xacro \"",[86,15647,15648],{"class":120},",LaunchConfiguration(",[86,15650,15609],{"class":110},[86,15652,15653],{"class":120},")]))\n",[86,15655,15656,15659,15661],{"class":88,"line":1833},[86,15657,15658],{"class":120},"    robot_state_publisher ",[86,15660,1807],{"class":736},[86,15662,1956],{"class":120},[86,15664,15665,15667,15669,15672],{"class":88,"line":1855},[86,15666,2057],{"class":1898},[86,15668,1807],{"class":736},[86,15670,15671],{"class":110},"\"robot_state_publisher\"",[86,15673,1970],{"class":120},[86,15675,15676,15678,15680,15682],{"class":88,"line":1860},[86,15677,2070],{"class":1898},[86,15679,1807],{"class":736},[86,15681,15671],{"class":110},[86,15683,1970],{"class":120},[86,15685,15686,15688,15690,15692,15695],{"class":88,"line":1871},[86,15687,2120],{"class":1898},[86,15689,1807],{"class":736},[86,15691,2125],{"class":120},[86,15693,15694],{"class":110},"\"robot_description\"",[86,15696,15697],{"class":120},": robot_description}]\n",[86,15699,15700],{"class":88,"line":1877},[86,15701,1934],{"class":120},[86,15703,15704],{"class":88,"line":1895},[86,15705,93],{"emptyLinePlaceholder":92},[86,15707,15708,15710],{"class":88,"line":1907},[86,15709,2212],{"class":736},[86,15711,2215],{"class":120},[86,15713,15714],{"class":88,"line":1925},[86,15715,15716],{"class":120},"        model,\n",[86,15718,15719],{"class":88,"line":1931},[86,15720,15721],{"class":120},"        robot_state_publisher,\n",[86,15723,15724],{"class":88,"line":1937},[86,15725,2272],{"class":120},[17,15727,15728],{},"较之于以往该文件缺少了joint_state_publisher节点，该节点作用是发布活动关节状态，这一功能后续由ignition实现。",[17,15730,15731],{},[21,15732,15733],{},"添加机器人模型",[17,15735,15736],{},"创建gazebo_sim_robot_world.launch.py文件，包含机器人模型的发布文件并在Gazebo中生成机器人模型，修改后的代码如下：",[76,15738,15740],{"className":1657,"code":15739,"language":1659,"meta":81,"style":81},"import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory(\"demo_gazebo_sim\")\n    mycar_desc_pkg = get_package_share_directory(\"mycar_description\")\n    pkg_ros_gz_sim = get_package_share_directory(\"ros_gz_sim\")\n    world_file = os.path.join(this_pkg,\"world\",\"house.sdf\")\n\n    gz_sim = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(pkg_ros_gz_sim, \"launch\", \"gz_sim.launch.py\")),\n        launch_arguments={\n            \"gz_args\": \"-r \" + world_file\n        }.items(),\n    )\n    mycar_desc = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(mycar_desc_pkg,\"launch\",\"mycar_desc_sim.launch.py\")\n        )\n    )\n    spawn = Node(package=\"ros_gz_sim\", executable=\"create\",\n                arguments=[\n                \"-name\", \"mycar\",\n                \"-x\", \"0\",\n                \"-z\", \"0.01\", #设置为0,可能会陷进地里\n                \"-y\", \"0\",\n                \"-R\", \"0\",\n                \"-P\", \"0\",\n                \"-Y\", \"1.57\", # Yaw航向角逆时针旋转90度\n                \"-topic\", \"\u002Frobot_description\"],\n            output=\"screen\")\n\n    return LaunchDescription([\n        gz_sim,\n        spawn,\n        mycar_desc,\n    ])\n",[83,15741,15742,15748,15752,15762,15766,15776,15786,15796,15806,15810,15818,15822,15835,15848,15861,15877,15881,15889,15893,15907,15915,15929,15933,15937,15946,15950,15964,15969,15973,16002,16011,16023,16035,16050,16061,16072,16083,16098,16111,16123,16127,16133,16137,16142,16147],{"__ignoreMap":81},[86,15743,15744,15746],{"class":88,"line":89},[86,15745,1666],{"class":736},[86,15747,1669],{"class":120},[86,15749,15750],{"class":88,"line":96},[86,15751,93],{"emptyLinePlaceholder":92},[86,15753,15754,15756,15758,15760],{"class":88,"line":103},[86,15755,1678],{"class":736},[86,15757,1681],{"class":120},[86,15759,1666],{"class":736},[86,15761,1686],{"class":120},[86,15763,15764],{"class":88,"line":127},[86,15765,93],{"emptyLinePlaceholder":92},[86,15767,15768,15770,15772,15774],{"class":88,"line":132},[86,15769,1678],{"class":736},[86,15771,1697],{"class":120},[86,15773,1666],{"class":736},[86,15775,1702],{"class":120},[86,15777,15778,15780,15782,15784],{"class":88,"line":138},[86,15779,1678],{"class":736},[86,15781,1709],{"class":120},[86,15783,1666],{"class":736},[86,15785,1725],{"class":120},[86,15787,15788,15790,15792,15794],{"class":88,"line":150},[86,15789,1678],{"class":736},[86,15791,1744],{"class":120},[86,15793,1666],{"class":736},[86,15795,1749],{"class":120},[86,15797,15798,15800,15802,15804],{"class":88,"line":155},[86,15799,1678],{"class":736},[86,15801,1772],{"class":120},[86,15803,1666],{"class":736},[86,15805,1777],{"class":120},[86,15807,15808],{"class":88,"line":161},[86,15809,93],{"emptyLinePlaceholder":92},[86,15811,15812,15814,15816],{"class":88,"line":408},[86,15813,1787],{"class":736},[86,15815,1790],{"class":106},[86,15817,1793],{"class":120},[86,15819,15820],{"class":88,"line":414},[86,15821,93],{"emptyLinePlaceholder":92},[86,15823,15824,15826,15828,15830,15833],{"class":88,"line":420},[86,15825,1804],{"class":120},[86,15827,1807],{"class":736},[86,15829,1810],{"class":120},[86,15831,15832],{"class":110},"\"demo_gazebo_sim\"",[86,15834,1576],{"class":120},[86,15836,15837,15840,15842,15844,15846],{"class":88,"line":426},[86,15838,15839],{"class":120},"    mycar_desc_pkg ",[86,15841,1807],{"class":736},[86,15843,1810],{"class":120},[86,15845,15570],{"class":110},[86,15847,1576],{"class":120},[86,15849,15850,15852,15854,15856,15859],{"class":88,"line":1784},[86,15851,1821],{"class":120},[86,15853,1807],{"class":736},[86,15855,1810],{"class":120},[86,15857,15858],{"class":110},"\"ros_gz_sim\"",[86,15860,1576],{"class":120},[86,15862,15863,15865,15867,15869,15871,15873,15875],{"class":88,"line":1796},[86,15864,1836],{"class":120},[86,15866,1807],{"class":736},[86,15868,1841],{"class":120},[86,15870,9327],{"class":110},[86,15872,1847],{"class":120},[86,15874,9332],{"class":110},[86,15876,1576],{"class":120},[86,15878,15879],{"class":88,"line":1801},[86,15880,93],{"emptyLinePlaceholder":92},[86,15882,15883,15885,15887],{"class":88,"line":1818},[86,15884,1863],{"class":120},[86,15886,1807],{"class":736},[86,15888,1868],{"class":120},[86,15890,15891],{"class":88,"line":1833},[86,15892,1874],{"class":120},[86,15894,15895,15897,15900,15902,15905],{"class":88,"line":1855},[86,15896,1880],{"class":120},[86,15898,15899],{"class":110},"\"launch\"",[86,15901,1886],{"class":120},[86,15903,15904],{"class":110},"\"gz_sim.launch.py\"",[86,15906,1892],{"class":120},[86,15908,15909,15911,15913],{"class":88,"line":1860},[86,15910,1899],{"class":1898},[86,15912,1807],{"class":736},[86,15914,1904],{"class":120},[86,15916,15917,15920,15922,15925,15927],{"class":88,"line":1871},[86,15918,15919],{"class":110},"            \"gz_args\"",[86,15921,1913],{"class":120},[86,15923,15924],{"class":110},"\"-r \"",[86,15926,1919],{"class":736},[86,15928,1922],{"class":120},[86,15930,15931],{"class":88,"line":1877},[86,15932,1928],{"class":120},[86,15934,15935],{"class":88,"line":1895},[86,15936,1934],{"class":120},[86,15938,15939,15942,15944],{"class":88,"line":1907},[86,15940,15941],{"class":120},"    mycar_desc ",[86,15943,1807],{"class":736},[86,15945,1868],{"class":120},[86,15947,15948],{"class":88,"line":1925},[86,15949,1874],{"class":120},[86,15951,15952,15955,15957,15959,15962],{"class":88,"line":1931},[86,15953,15954],{"class":120},"            os.path.join(mycar_desc_pkg,",[86,15956,15899],{"class":110},[86,15958,1847],{"class":120},[86,15960,15961],{"class":110},"\"mycar_desc_sim.launch.py\"",[86,15963,1576],{"class":120},[86,15965,15966],{"class":88,"line":1937},[86,15967,15968],{"class":120},"        )\n",[86,15970,15971],{"class":88,"line":1942},[86,15972,1934],{"class":120},[86,15974,15975,15978,15980,15983,15986,15988,15990,15992,15995,15997,16000],{"class":88,"line":1948},[86,15976,15977],{"class":120},"    spawn ",[86,15979,1807],{"class":736},[86,15981,15982],{"class":120}," Node(",[86,15984,15985],{"class":1898},"package",[86,15987,1807],{"class":736},[86,15989,15858],{"class":110},[86,15991,1886],{"class":120},[86,15993,15994],{"class":1898},"executable",[86,15996,1807],{"class":736},[86,15998,15999],{"class":110},"\"create\"",[86,16001,1970],{"class":120},[86,16003,16004,16007,16009],{"class":88,"line":1959},[86,16005,16006],{"class":1898},"                arguments",[86,16008,1807],{"class":736},[86,16010,2147],{"class":120},[86,16012,16013,16016,16018,16021],{"class":88,"line":1973},[86,16014,16015],{"class":110},"                \"-name\"",[86,16017,1886],{"class":120},[86,16019,16020],{"class":110},"\"mycar\"",[86,16022,1970],{"class":120},[86,16024,16025,16028,16030,16033],{"class":88,"line":1985},[86,16026,16027],{"class":110},"                \"-x\"",[86,16029,1886],{"class":120},[86,16031,16032],{"class":110},"\"0\"",[86,16034,1970],{"class":120},[86,16036,16037,16040,16042,16045,16047],{"class":88,"line":2012},[86,16038,16039],{"class":110},"                \"-z\"",[86,16041,1886],{"class":120},[86,16043,16044],{"class":110},"\"0.01\"",[86,16046,1886],{"class":120},[86,16048,16049],{"class":99},"#设置为0,可能会陷进地里\n",[86,16051,16052,16055,16057,16059],{"class":88,"line":2028},[86,16053,16054],{"class":110},"                \"-y\"",[86,16056,1886],{"class":120},[86,16058,16032],{"class":110},[86,16060,1970],{"class":120},[86,16062,16063,16066,16068,16070],{"class":88,"line":2033},[86,16064,16065],{"class":110},"                \"-R\"",[86,16067,1886],{"class":120},[86,16069,16032],{"class":110},[86,16071,1970],{"class":120},[86,16073,16074,16077,16079,16081],{"class":88,"line":2038},[86,16075,16076],{"class":110},"                \"-P\"",[86,16078,1886],{"class":120},[86,16080,16032],{"class":110},[86,16082,1970],{"class":120},[86,16084,16085,16088,16090,16093,16095],{"class":88,"line":2044},[86,16086,16087],{"class":110},"                \"-Y\"",[86,16089,1886],{"class":120},[86,16091,16092],{"class":110},"\"1.57\"",[86,16094,1886],{"class":120},[86,16096,16097],{"class":99},"# Yaw航向角逆时针旋转90度\n",[86,16099,16100,16103,16105,16108],{"class":88,"line":2054},[86,16101,16102],{"class":110},"                \"-topic\"",[86,16104,1886],{"class":120},[86,16106,16107],{"class":110},"\"\u002Frobot_description\"",[86,16109,16110],{"class":120},"],\n",[86,16112,16113,16116,16118,16121],{"class":88,"line":2067},[86,16114,16115],{"class":1898},"            output",[86,16117,1807],{"class":736},[86,16119,16120],{"class":110},"\"screen\"",[86,16122,1576],{"class":120},[86,16124,16125],{"class":88,"line":2080},[86,16126,93],{"emptyLinePlaceholder":92},[86,16128,16129,16131],{"class":88,"line":2095},[86,16130,2212],{"class":736},[86,16132,2215],{"class":120},[86,16134,16135],{"class":88,"line":2103},[86,16136,2221],{"class":120},[86,16138,16139],{"class":88,"line":2111},[86,16140,16141],{"class":120},"        spawn,\n",[86,16143,16144],{"class":88,"line":2117},[86,16145,16146],{"class":120},"        mycar_desc,\n",[86,16148,16149],{"class":88,"line":2139},[86,16150,2272],{"class":120},[17,16152,16153],{},[21,16154,2285],{},[17,16156,2288],{},[76,16158,16160],{"className":78,"code":16159,"language":80,"meta":81,"style":81},"colcon build --packages-select mycar_description demo_gazebo_sim\n",[83,16161,16162],{"__ignoreMap":81},[86,16163,16164,16166,16168,16171,16173],{"class":88,"line":89},[86,16165,2298],{"class":106},[86,16167,2301],{"class":110},[86,16169,16170],{"class":550}," --packages-select",[86,16172,13360],{"class":110},[86,16174,1542],{"class":110},[17,16176,16177],{},[21,16178,2316],{},[17,16180,16181],{},"终端中进入当前工作空间，调用如下指令执行launch文件：（执行起来有问题的话，你只要学过urdf怎么跑，应该拥有自我寻找错误的能力了，自己找吧）",[76,16183,16185],{"className":78,"code":16184,"language":80,"meta":81,"style":81},". install\u002Fsetup.bash\n\nros2 launch demo_gazebo_sim gazebo_sim_robot_world.launch.py\n",[83,16186,16187,16193,16197],{"__ignoreMap":81},[86,16188,16189,16191],{"class":88,"line":89},[86,16190,2329],{"class":550},[86,16192,2332],{"class":110},[86,16194,16195],{"class":88,"line":96},[86,16196,93],{"emptyLinePlaceholder":92},[86,16198,16199,16201,16203,16205],{"class":88,"line":103},[86,16200,237],{"class":106},[86,16202,240],{"class":110},[86,16204,2341],{"class":110},[86,16206,16207],{"class":110}," gazebo_sim_robot_world.launch.py\n",[17,16209,9458],{},[17,16211,16212],{},[174,16213],{"alt":81,"src":16214},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1733.webp",[34,16216,16218],{"id":16217},"gz-sim运动控制器","Gz Sim运动控制器",[17,16220,16221],{},"本节将介绍如何让你的机器人动起来。",[17,16223,16224,16225],{},"原理就是给urdf或xacro等添加",[15179,16226,16227],{},"标签：",[17,16229,16230],{},[26,16231,16232],{"href":16232,"rel":16233},"http:\u002F\u002Fsdformat.org\u002Ftutorials?tut=sdformat_urdf_extensions&cat=specification&",[30],[17,16235,16236],{},[174,16237],{"alt":81,"src":16238},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1734.webp",[17,16240,16241],{},[26,16242,16243],{"href":16243,"rel":16244},"https:\u002F\u002Fgazebosim.org\u002Fapi\u002Fplugin\u002F2\u002Findex.html",[30],[17,16246,16247,16248,16251,16252],{},"安装库：\n官方教程：\n进入",[26,16249,58],{"href":58,"rel":16250},[30],"\n点击插件进入",[26,16253,16254],{"href":16254,"rel":16255},"https:\u002F\u002Fgazebosim.org\u002Fapi\u002Fplugin\u002F2\u002Finstallation.html",[30],[76,16257,16259],{"className":78,"code":16258,"language":80,"meta":81,"style":81},"sudo apt-get update\nsudo apt-get install lsb-release\nsudo sh -c 'echo \"deb http:\u002F\u002Fpackages.osrfoundation.org\u002Fgazebo\u002Fubuntu-stable `lsb_release -cs` main\" > \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fgazebo-stable.list'\nwget http:\u002F\u002Fpackages.osrfoundation.org\u002Fgazebo.key -O - | sudo apt-key add -\nsudo apt-get update\nsudo apt install libgz-plugin2-dev\n",[83,16260,16261,16271,16282,16295,16324,16332],{"__ignoreMap":81},[86,16262,16263,16265,16268],{"class":88,"line":89},[86,16264,107],{"class":106},[86,16266,16267],{"class":110}," apt-get",[86,16269,16270],{"class":110}," update\n",[86,16272,16273,16275,16277,16279],{"class":88,"line":96},[86,16274,107],{"class":106},[86,16276,16267],{"class":110},[86,16278,114],{"class":110},[86,16280,16281],{"class":110}," lsb-release\n",[86,16283,16284,16286,16289,16292],{"class":88,"line":103},[86,16285,107],{"class":106},[86,16287,16288],{"class":110}," sh",[86,16290,16291],{"class":550}," -c",[86,16293,16294],{"class":110}," 'echo \"deb http:\u002F\u002Fpackages.osrfoundation.org\u002Fgazebo\u002Fubuntu-stable `lsb_release -cs` main\" > \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fgazebo-stable.list'\n",[86,16296,16297,16300,16303,16306,16309,16312,16315,16318,16321],{"class":88,"line":127},[86,16298,16299],{"class":106},"wget",[86,16301,16302],{"class":110}," http:\u002F\u002Fpackages.osrfoundation.org\u002Fgazebo.key",[86,16304,16305],{"class":550}," -O",[86,16307,16308],{"class":110}," -",[86,16310,16311],{"class":736}," |",[86,16313,16314],{"class":106}," sudo",[86,16316,16317],{"class":110}," apt-key",[86,16319,16320],{"class":110}," add",[86,16322,16323],{"class":110}," -\n",[86,16325,16326,16328,16330],{"class":88,"line":132},[86,16327,107],{"class":106},[86,16329,16267],{"class":110},[86,16331,16270],{"class":110},[86,16333,16334,16336,16338,16340],{"class":88,"line":138},[86,16335,107],{"class":106},[86,16337,111],{"class":110},[86,16339,114],{"class":110},[86,16341,16342],{"class":110}," libgz-plugin2-dev\n",[17,16344,16345],{},"利用插件去让小车动，比如有两轮差速插件，四轮麦轮插件等等",[17,16347,16348],{},"同时该插件还提供了一些可以控制输出的选项，因为是仿真，所以还要告诉插件轮子对应的joint名称等信息，这样就有了下面这个参数表格：",[889,16350,16351,16361],{},[892,16352,16353],{},[895,16354,16355,16358],{},[898,16356,16357],{"align":900},"配置项",[898,16359,16360],{"align":900},"含义",[906,16362,16363,16371,16379,16387,16395,16403,16411,16419,16427,16435,16443,16451,16459],{},[895,16364,16365,16368],{},[911,16366,16367],{"align":900},"ros",[911,16369,16370],{"align":900},"ros相关配置，包含命名空间和话题重映射等",[895,16372,16373,16376],{},[911,16374,16375],{"align":900},"update_rate",[911,16377,16378],{"align":900},"数据更新速率",[895,16380,16381,16384],{},[911,16382,16383],{"align":900},"left_joint",[911,16385,16386],{"align":900},"左轮关节名称",[895,16388,16389,16392],{},[911,16390,16391],{"align":900},"right_joint",[911,16393,16394],{"align":900},"右轮关节名称",[895,16396,16397,16400],{},[911,16398,16399],{"align":900},"wheel_separation",[911,16401,16402],{"align":900},"左右轮子的间距",[895,16404,16405,16408],{},[911,16406,16407],{"align":900},"wheel_diameter",[911,16409,16410],{"align":900},"轮子的直径",[895,16412,16413,16416],{},[911,16414,16415],{"align":900},"max_wheel_torque",[911,16417,16418],{"align":900},"轮子最大的力矩",[895,16420,16421,16424],{},[911,16422,16423],{"align":900},"max_wheel_acceleration",[911,16425,16426],{"align":900},"轮子最大的加速度",[895,16428,16429,16432],{},[911,16430,16431],{"align":900},"publish_odom",[911,16433,16434],{"align":900},"是否发布里程计",[895,16436,16437,16440],{},[911,16438,16439],{"align":900},"publish_odom_tf",[911,16441,16442],{"align":900},"是否发布里程计的tf开关",[895,16444,16445,16448],{},[911,16446,16447],{"align":900},"publish_wheel_tf",[911,16449,16450],{"align":900},"是否发布轮子的tf数据开关",[895,16452,16453,16456],{},[911,16454,16455],{"align":900},"odometry_frame",[911,16457,16458],{"align":900},"里程计的framed ID，最终体现在话题和TF上",[895,16460,16461,16464],{},[911,16462,16463],{"align":900},"robot_base_frame",[911,16465,16466],{"align":900},"机器人的基础frame的ID",[17,16468,16469],{},[21,16470,16471],{},"修改URDF文件",[17,16473,16474,16475,16478],{},"2轮差速车的话，在",[83,16476,16477],{},"\u003Crobot>","根标签下添加如下代码：",[76,16480,16482],{"className":2495,"code":16481,"language":2497,"meta":81,"style":81},"\n  \u003Cgazebo>\n      \u003Cplugin filename=\"gz-sim-diff-drive-system\"\n        name=\"gz::sim::systems::DiffDrive\">\n        \u003Cleft_joint>left_joint\u003C\u002Fleft_joint>\n        \u003Cright_joint>right_joint\u003C\u002Fright_joint>\n        \u003Cwheel_separation>0.2097\u003C\u002Fwheel_separation>\n        \u003Cwheel_radius>0.03415\u003C\u002Fwheel_radius>\n        \u003Codom_publish_frequency>10\u003C\u002Fodom_publish_frequency>\n        \u003Cframe_id>odom\u003C\u002Fframe_id>\n        \u003Cchild_frame_id>base_footprint\u003C\u002Fchild_frame_id>\n        \u003Ctopic>\u002Fcmd_vel\u003C\u002Ftopic>\n        \u003Cmax_linear_acceleration>10\u003C\u002Fmax_linear_acceleration>\n        \u003Cmin_linear_acceleration>-10\u003C\u002Fmin_linear_acceleration>\n        \u003Cmax_angular_acceleration>10\u003C\u002Fmax_angular_acceleration>\n        \u003Cmin_angular_acceleration>-10\u003C\u002Fmin_angular_acceleration>\n        \u003Cmax_linear_velocity>0.5\u003C\u002Fmax_linear_velocity>\n        \u003Cmin_linear_velocity>-0.5\u003C\u002Fmin_linear_velocity>\n        \u003Cmax_angular_velocity>1\u003C\u002Fmax_angular_velocity>\n        \u003Cmin_angular_velocity>-1\u003C\u002Fmin_angular_velocity>\n      \u003C\u002Fplugin>\n\n  \u003C\u002Fgazebo>\n\n  \u003Cgazebo>\n    \u003Cplugin filename=\"gz-sim-joint-state-publisher-system\"\n      name=\"gz::sim::systems::JointStatePublisher\">\n    \u003C\u002Fplugin>\n  \u003C\u002Fgazebo>\n",[83,16483,16484,16488,16496,16509,16521,16534,16547,16560,16574,16588,16602,16616,16630,16643,16657,16670,16683,16697,16711,16724,16738,16746,16750,16758,16762,16770,16783,16795,16803],{"__ignoreMap":81},[86,16485,16486],{"class":88,"line":89},[86,16487,93],{"emptyLinePlaceholder":92},[86,16489,16490,16492,16494],{"class":88,"line":96},[86,16491,2524],{"class":120},[86,16493,15179],{"class":2507},[86,16495,2519],{"class":120},[86,16497,16498,16500,16502,16504,16506],{"class":88,"line":103},[86,16499,2551],{"class":120},[86,16501,3145],{"class":2507},[86,16503,3155],{"class":106},[86,16505,1807],{"class":120},[86,16507,16508],{"class":110},"\"gz-sim-diff-drive-system\"\n",[86,16510,16511,16514,16516,16519],{"class":88,"line":127},[86,16512,16513],{"class":106},"        name",[86,16515,1807],{"class":120},[86,16517,16518],{"class":110},"\"gz::sim::systems::DiffDrive\"",[86,16520,2519],{"class":120},[86,16522,16523,16525,16527,16530,16532],{"class":88,"line":132},[86,16524,2725],{"class":120},[86,16526,16383],{"class":2507},[86,16528,16529],{"class":120},">left_joint\u003C\u002F",[86,16531,16383],{"class":2507},[86,16533,2519],{"class":120},[86,16535,16536,16538,16540,16543,16545],{"class":88,"line":138},[86,16537,2725],{"class":120},[86,16539,16391],{"class":2507},[86,16541,16542],{"class":120},">right_joint\u003C\u002F",[86,16544,16391],{"class":2507},[86,16546,2519],{"class":120},[86,16548,16549,16551,16553,16556,16558],{"class":88,"line":150},[86,16550,2725],{"class":120},[86,16552,16399],{"class":2507},[86,16554,16555],{"class":120},">0.2097\u003C\u002F",[86,16557,16399],{"class":2507},[86,16559,2519],{"class":120},[86,16561,16562,16564,16567,16570,16572],{"class":88,"line":155},[86,16563,2725],{"class":120},[86,16565,16566],{"class":2507},"wheel_radius",[86,16568,16569],{"class":120},">0.03415\u003C\u002F",[86,16571,16566],{"class":2507},[86,16573,2519],{"class":120},[86,16575,16576,16578,16581,16584,16586],{"class":88,"line":161},[86,16577,2725],{"class":120},[86,16579,16580],{"class":2507},"odom_publish_frequency",[86,16582,16583],{"class":120},">10\u003C\u002F",[86,16585,16580],{"class":2507},[86,16587,2519],{"class":120},[86,16589,16590,16592,16595,16598,16600],{"class":88,"line":408},[86,16591,2725],{"class":120},[86,16593,16594],{"class":2507},"frame_id",[86,16596,16597],{"class":120},">odom\u003C\u002F",[86,16599,16594],{"class":2507},[86,16601,2519],{"class":120},[86,16603,16604,16606,16609,16612,16614],{"class":88,"line":414},[86,16605,2725],{"class":120},[86,16607,16608],{"class":2507},"child_frame_id",[86,16610,16611],{"class":120},">base_footprint\u003C\u002F",[86,16613,16608],{"class":2507},[86,16615,2519],{"class":120},[86,16617,16618,16620,16623,16626,16628],{"class":88,"line":420},[86,16619,2725],{"class":120},[86,16621,16622],{"class":2507},"topic",[86,16624,16625],{"class":120},">\u002Fcmd_vel\u003C\u002F",[86,16627,16622],{"class":2507},[86,16629,2519],{"class":120},[86,16631,16632,16634,16637,16639,16641],{"class":88,"line":426},[86,16633,2725],{"class":120},[86,16635,16636],{"class":2507},"max_linear_acceleration",[86,16638,16583],{"class":120},[86,16640,16636],{"class":2507},[86,16642,2519],{"class":120},[86,16644,16645,16647,16650,16653,16655],{"class":88,"line":1784},[86,16646,2725],{"class":120},[86,16648,16649],{"class":2507},"min_linear_acceleration",[86,16651,16652],{"class":120},">-10\u003C\u002F",[86,16654,16649],{"class":2507},[86,16656,2519],{"class":120},[86,16658,16659,16661,16664,16666,16668],{"class":88,"line":1796},[86,16660,2725],{"class":120},[86,16662,16663],{"class":2507},"max_angular_acceleration",[86,16665,16583],{"class":120},[86,16667,16663],{"class":2507},[86,16669,2519],{"class":120},[86,16671,16672,16674,16677,16679,16681],{"class":88,"line":1801},[86,16673,2725],{"class":120},[86,16675,16676],{"class":2507},"min_angular_acceleration",[86,16678,16652],{"class":120},[86,16680,16676],{"class":2507},[86,16682,2519],{"class":120},[86,16684,16685,16687,16690,16693,16695],{"class":88,"line":1818},[86,16686,2725],{"class":120},[86,16688,16689],{"class":2507},"max_linear_velocity",[86,16691,16692],{"class":120},">0.5\u003C\u002F",[86,16694,16689],{"class":2507},[86,16696,2519],{"class":120},[86,16698,16699,16701,16704,16707,16709],{"class":88,"line":1833},[86,16700,2725],{"class":120},[86,16702,16703],{"class":2507},"min_linear_velocity",[86,16705,16706],{"class":120},">-0.5\u003C\u002F",[86,16708,16703],{"class":2507},[86,16710,2519],{"class":120},[86,16712,16713,16715,16718,16720,16722],{"class":88,"line":1855},[86,16714,2725],{"class":120},[86,16716,16717],{"class":2507},"max_angular_velocity",[86,16719,3112],{"class":120},[86,16721,16717],{"class":2507},[86,16723,2519],{"class":120},[86,16725,16726,16728,16731,16734,16736],{"class":88,"line":1860},[86,16727,2725],{"class":120},[86,16729,16730],{"class":2507},"min_angular_velocity",[86,16732,16733],{"class":120},">-1\u003C\u002F",[86,16735,16730],{"class":2507},[86,16737,2519],{"class":120},[86,16739,16740,16742,16744],{"class":88,"line":1871},[86,16741,2785],{"class":120},[86,16743,3145],{"class":2507},[86,16745,2519],{"class":120},[86,16747,16748],{"class":88,"line":1877},[86,16749,93],{"emptyLinePlaceholder":92},[86,16751,16752,16754,16756],{"class":88,"line":1895},[86,16753,2631],{"class":120},[86,16755,15179],{"class":2507},[86,16757,2519],{"class":120},[86,16759,16760],{"class":88,"line":1907},[86,16761,93],{"emptyLinePlaceholder":92},[86,16763,16764,16766,16768],{"class":88,"line":1925},[86,16765,2524],{"class":120},[86,16767,15179],{"class":2507},[86,16769,2519],{"class":120},[86,16771,16772,16774,16776,16778,16780],{"class":88,"line":1931},[86,16773,2541],{"class":120},[86,16775,3145],{"class":2507},[86,16777,3155],{"class":106},[86,16779,1807],{"class":120},[86,16781,16782],{"class":110},"\"gz-sim-joint-state-publisher-system\"\n",[86,16784,16785,16788,16790,16793],{"class":88,"line":1937},[86,16786,16787],{"class":106},"      name",[86,16789,1807],{"class":120},[86,16791,16792],{"class":110},"\"gz::sim::systems::JointStatePublisher\"",[86,16794,2519],{"class":120},[86,16796,16797,16799,16801],{"class":88,"line":1942},[86,16798,2622],{"class":120},[86,16800,3145],{"class":2507},[86,16802,2519],{"class":120},[86,16804,16805,16807,16809],{"class":88,"line":1948},[86,16806,2631],{"class":120},[86,16808,15179],{"class":2507},[86,16810,2519],{"class":120},[17,16812,16813,16814,16478],{},"4轮差速车的话，在",[83,16815,16477],{},[76,16817,16819],{"className":2495,"code":16818,"language":2497,"meta":81,"style":81},"\n\u003Cgazebo>\n    \u003Cplugin\n        filename=\"gz-sim-diff-drive-system\"\n        name=\"gz::sim::systems::DiffDrive\">\n        \u003Cleft_joint>left_former_joint\u003C\u002Fleft_joint>\n        \u003Cleft_joint>left_rear_joint\u003C\u002Fleft_joint>\n        \u003Cright_joint>right_former_joint\u003C\u002Fright_joint>\n        \u003Cright_joint>right_rear_joint\u003C\u002Fright_joint>\n        \u003Cwheel_separation>0.4\u003C\u002Fwheel_separation>\n        \u003Cwheel_radius>0.0415\u003C\u002Fwheel_radius>\n        \u003Codom_publish_frequency>50\u003C\u002Fodom_publish_frequency>\n        \u003Cframe_id>odom\u003C\u002Fframe_id>\n        \u003Cchild_frame_id>base_footprint\u003C\u002Fchild_frame_id>\n        \u003Ctopic>\u002Fcmd_vel\u003C\u002Ftopic>\n        \u003Cmax_linear_acceleration>10\u003C\u002Fmax_linear_acceleration>\n        \u003Cmin_linear_acceleration>-10\u003C\u002Fmin_linear_acceleration>\n        \u003Cmax_angular_acceleration>10\u003C\u002Fmax_angular_acceleration>\n        \u003Cmin_angular_acceleration>-10\u003C\u002Fmin_angular_acceleration>\n        \u003Cmax_linear_velocity>0.5\u003C\u002Fmax_linear_velocity>\n        \u003Cmin_linear_velocity>-0.5\u003C\u002Fmin_linear_velocity>\n        \u003Cmax_angular_velocity>1\u003C\u002Fmax_angular_velocity>\n        \u003Cmin_angular_velocity>-1\u003C\u002Fmin_angular_velocity>\n      \u003C\u002Fplugin>\n  \u003C\u002Fgazebo>\n\n  \u003Cgazebo>\n    \u003Cplugin filename=\"gz-sim-joint-state-publisher-system\"\n      name=\"gz::sim::systems::JointStatePublisher\">\n    \u003C\u002Fplugin>\n  \u003C\u002Fgazebo>\n",[83,16820,16821,16825,16833,16840,16849,16859,16872,16885,16898,16911,16924,16937,16950,16962,16974,16986,16998,17010,17022,17034,17046,17058,17070,17082,17090,17098,17102,17110,17122,17132,17140],{"__ignoreMap":81},[86,16822,16823],{"class":88,"line":89},[86,16824,93],{"emptyLinePlaceholder":92},[86,16826,16827,16829,16831],{"class":88,"line":96},[86,16828,2504],{"class":120},[86,16830,15179],{"class":2507},[86,16832,2519],{"class":120},[86,16834,16835,16837],{"class":88,"line":103},[86,16836,2541],{"class":120},[86,16838,16839],{"class":2507},"plugin\n",[86,16841,16842,16845,16847],{"class":88,"line":127},[86,16843,16844],{"class":106},"        filename",[86,16846,1807],{"class":120},[86,16848,16508],{"class":110},[86,16850,16851,16853,16855,16857],{"class":88,"line":132},[86,16852,16513],{"class":106},[86,16854,1807],{"class":120},[86,16856,16518],{"class":110},[86,16858,2519],{"class":120},[86,16860,16861,16863,16865,16868,16870],{"class":88,"line":138},[86,16862,2725],{"class":120},[86,16864,16383],{"class":2507},[86,16866,16867],{"class":120},">left_former_joint\u003C\u002F",[86,16869,16383],{"class":2507},[86,16871,2519],{"class":120},[86,16873,16874,16876,16878,16881,16883],{"class":88,"line":150},[86,16875,2725],{"class":120},[86,16877,16383],{"class":2507},[86,16879,16880],{"class":120},">left_rear_joint\u003C\u002F",[86,16882,16383],{"class":2507},[86,16884,2519],{"class":120},[86,16886,16887,16889,16891,16894,16896],{"class":88,"line":155},[86,16888,2725],{"class":120},[86,16890,16391],{"class":2507},[86,16892,16893],{"class":120},">right_former_joint\u003C\u002F",[86,16895,16391],{"class":2507},[86,16897,2519],{"class":120},[86,16899,16900,16902,16904,16907,16909],{"class":88,"line":161},[86,16901,2725],{"class":120},[86,16903,16391],{"class":2507},[86,16905,16906],{"class":120},">right_rear_joint\u003C\u002F",[86,16908,16391],{"class":2507},[86,16910,2519],{"class":120},[86,16912,16913,16915,16917,16920,16922],{"class":88,"line":408},[86,16914,2725],{"class":120},[86,16916,16399],{"class":2507},[86,16918,16919],{"class":120},">0.4\u003C\u002F",[86,16921,16399],{"class":2507},[86,16923,2519],{"class":120},[86,16925,16926,16928,16930,16933,16935],{"class":88,"line":414},[86,16927,2725],{"class":120},[86,16929,16566],{"class":2507},[86,16931,16932],{"class":120},">0.0415\u003C\u002F",[86,16934,16566],{"class":2507},[86,16936,2519],{"class":120},[86,16938,16939,16941,16943,16946,16948],{"class":88,"line":420},[86,16940,2725],{"class":120},[86,16942,16580],{"class":2507},[86,16944,16945],{"class":120},">50\u003C\u002F",[86,16947,16580],{"class":2507},[86,16949,2519],{"class":120},[86,16951,16952,16954,16956,16958,16960],{"class":88,"line":426},[86,16953,2725],{"class":120},[86,16955,16594],{"class":2507},[86,16957,16597],{"class":120},[86,16959,16594],{"class":2507},[86,16961,2519],{"class":120},[86,16963,16964,16966,16968,16970,16972],{"class":88,"line":1784},[86,16965,2725],{"class":120},[86,16967,16608],{"class":2507},[86,16969,16611],{"class":120},[86,16971,16608],{"class":2507},[86,16973,2519],{"class":120},[86,16975,16976,16978,16980,16982,16984],{"class":88,"line":1796},[86,16977,2725],{"class":120},[86,16979,16622],{"class":2507},[86,16981,16625],{"class":120},[86,16983,16622],{"class":2507},[86,16985,2519],{"class":120},[86,16987,16988,16990,16992,16994,16996],{"class":88,"line":1801},[86,16989,2725],{"class":120},[86,16991,16636],{"class":2507},[86,16993,16583],{"class":120},[86,16995,16636],{"class":2507},[86,16997,2519],{"class":120},[86,16999,17000,17002,17004,17006,17008],{"class":88,"line":1818},[86,17001,2725],{"class":120},[86,17003,16649],{"class":2507},[86,17005,16652],{"class":120},[86,17007,16649],{"class":2507},[86,17009,2519],{"class":120},[86,17011,17012,17014,17016,17018,17020],{"class":88,"line":1833},[86,17013,2725],{"class":120},[86,17015,16663],{"class":2507},[86,17017,16583],{"class":120},[86,17019,16663],{"class":2507},[86,17021,2519],{"class":120},[86,17023,17024,17026,17028,17030,17032],{"class":88,"line":1855},[86,17025,2725],{"class":120},[86,17027,16676],{"class":2507},[86,17029,16652],{"class":120},[86,17031,16676],{"class":2507},[86,17033,2519],{"class":120},[86,17035,17036,17038,17040,17042,17044],{"class":88,"line":1860},[86,17037,2725],{"class":120},[86,17039,16689],{"class":2507},[86,17041,16692],{"class":120},[86,17043,16689],{"class":2507},[86,17045,2519],{"class":120},[86,17047,17048,17050,17052,17054,17056],{"class":88,"line":1871},[86,17049,2725],{"class":120},[86,17051,16703],{"class":2507},[86,17053,16706],{"class":120},[86,17055,16703],{"class":2507},[86,17057,2519],{"class":120},[86,17059,17060,17062,17064,17066,17068],{"class":88,"line":1877},[86,17061,2725],{"class":120},[86,17063,16717],{"class":2507},[86,17065,3112],{"class":120},[86,17067,16717],{"class":2507},[86,17069,2519],{"class":120},[86,17071,17072,17074,17076,17078,17080],{"class":88,"line":1895},[86,17073,2725],{"class":120},[86,17075,16730],{"class":2507},[86,17077,16733],{"class":120},[86,17079,16730],{"class":2507},[86,17081,2519],{"class":120},[86,17083,17084,17086,17088],{"class":88,"line":1907},[86,17085,2785],{"class":120},[86,17087,3145],{"class":2507},[86,17089,2519],{"class":120},[86,17091,17092,17094,17096],{"class":88,"line":1925},[86,17093,2631],{"class":120},[86,17095,15179],{"class":2507},[86,17097,2519],{"class":120},[86,17099,17100],{"class":88,"line":1931},[86,17101,93],{"emptyLinePlaceholder":92},[86,17103,17104,17106,17108],{"class":88,"line":1937},[86,17105,2524],{"class":120},[86,17107,15179],{"class":2507},[86,17109,2519],{"class":120},[86,17111,17112,17114,17116,17118,17120],{"class":88,"line":1942},[86,17113,2541],{"class":120},[86,17115,3145],{"class":2507},[86,17117,3155],{"class":106},[86,17119,1807],{"class":120},[86,17121,16782],{"class":110},[86,17123,17124,17126,17128,17130],{"class":88,"line":1948},[86,17125,16787],{"class":106},[86,17127,1807],{"class":120},[86,17129,16792],{"class":110},[86,17131,2519],{"class":120},[86,17133,17134,17136,17138],{"class":88,"line":1959},[86,17135,2622],{"class":120},[86,17137,3145],{"class":2507},[86,17139,2519],{"class":120},[86,17141,17142,17144,17146],{"class":88,"line":1973},[86,17143,2631],{"class":120},[86,17145,15179],{"class":2507},[86,17147,2519],{"class":120},[17,17149,17150,17151,17154],{},"我们这里肯定是4轮车，我创建了一个",[83,17152,17153],{},"move_control.urdf.xacro","专门存放运动控制类代码：",[76,17156,17158],{"className":2495,"code":17157,"language":2497,"meta":81,"style":81},"\n\u003Crobot name=\"car\" xmlns:xacro=\"http:\u002F\u002Fwiki.ros.org\u002Fxacro\">\n    \u003C!-- 运动控制插件 -->\n    \u003Cgazebo>\n        \u003Cplugin\n            filename=\"gz-sim-diff-drive-system\"\n            name=\"gz::sim::systems::DiffDrive\">\n            \u003Cleft_joint>left_front2baselink\u003C\u002Fleft_joint>\n            \u003Cleft_joint>left_back2baselink\u003C\u002Fleft_joint>\n            \u003Cright_joint>right_front2baselink\u003C\u002Fright_joint>\n            \u003Cright_joint>right_back2baselink\u003C\u002Fright_joint>\n            \u003C!-- wheel_separation轮距 是左右轮中心线之间的距离：0.06 - (-0.06) = 0.12m -->\n            \u003Cwheel_separation>0.12\u003C\u002Fwheel_separation>\n            \u003Cwheel_radius>0.025\u003C\u002Fwheel_radius>\n            \u003Codom_publish_frequency>50\u003C\u002Fodom_publish_frequency>\n            \u003Cframe_id>odom\u003C\u002Fframe_id>\n            \u003Cchild_frame_id>base_footprint\u003C\u002Fchild_frame_id>\n            \u003Ctopic>\u002Fcmd_vel\u003C\u002Ftopic>\n            \u003Cmax_linear_acceleration>10\u003C\u002Fmax_linear_acceleration>\n            \u003Cmin_linear_acceleration>-10\u003C\u002Fmin_linear_acceleration>\n            \u003Cmax_angular_acceleration>10\u003C\u002Fmax_angular_acceleration>\n            \u003Cmin_angular_acceleration>-10\u003C\u002Fmin_angular_acceleration>\n            \u003Cmax_linear_velocity>0.5\u003C\u002Fmax_linear_velocity>\n            \u003Cmin_linear_velocity>-0.5\u003C\u002Fmin_linear_velocity>\n            \u003Cmax_angular_velocity>1\u003C\u002Fmax_angular_velocity>\n            \u003Cmin_angular_velocity>-1\u003C\u002Fmin_angular_velocity>\n        \u003C\u002Fplugin>\n    \u003C\u002Fgazebo>\n    \u003C!-- 关节状态发布 -->\n    \u003Cgazebo>\n        \u003Cplugin filename=\"gz-sim-joint-state-publisher-system\"\n        name=\"gz::sim::systems::JointStatePublisher\">\n        \u003C\u002Fplugin>\n    \u003C\u002Fgazebo>\n\u003C\u002Frobot>\n\n\n",[83,17159,17160,17164,17184,17189,17197,17203,17212,17223,17236,17249,17262,17275,17280,17293,17306,17318,17330,17342,17354,17366,17378,17390,17402,17414,17426,17438,17450,17458,17466,17471,17479,17491,17501,17509,17517],{"__ignoreMap":81},[86,17161,17162],{"class":88,"line":89},[86,17163,93],{"emptyLinePlaceholder":92},[86,17165,17166,17168,17170,17172,17174,17176,17178,17180,17182],{"class":88,"line":96},[86,17167,2504],{"class":120},[86,17169,2508],{"class":2507},[86,17171,2511],{"class":106},[86,17173,1807],{"class":120},[86,17175,15398],{"class":110},[86,17177,2662],{"class":106},[86,17179,1807],{"class":120},[86,17181,13550],{"class":110},[86,17183,2519],{"class":120},[86,17185,17186],{"class":88,"line":103},[86,17187,17188],{"class":99},"    \u003C!-- 运动控制插件 -->\n",[86,17190,17191,17193,17195],{"class":88,"line":127},[86,17192,2541],{"class":120},[86,17194,15179],{"class":2507},[86,17196,2519],{"class":120},[86,17198,17199,17201],{"class":88,"line":132},[86,17200,2725],{"class":120},[86,17202,16839],{"class":2507},[86,17204,17205,17208,17210],{"class":88,"line":138},[86,17206,17207],{"class":106},"            filename",[86,17209,1807],{"class":120},[86,17211,16508],{"class":110},[86,17213,17214,17217,17219,17221],{"class":88,"line":150},[86,17215,17216],{"class":106},"            name",[86,17218,1807],{"class":120},[86,17220,16518],{"class":110},[86,17222,2519],{"class":120},[86,17224,17225,17227,17229,17232,17234],{"class":88,"line":155},[86,17226,3405],{"class":120},[86,17228,16383],{"class":2507},[86,17230,17231],{"class":120},">left_front2baselink\u003C\u002F",[86,17233,16383],{"class":2507},[86,17235,2519],{"class":120},[86,17237,17238,17240,17242,17245,17247],{"class":88,"line":161},[86,17239,3405],{"class":120},[86,17241,16383],{"class":2507},[86,17243,17244],{"class":120},">left_back2baselink\u003C\u002F",[86,17246,16383],{"class":2507},[86,17248,2519],{"class":120},[86,17250,17251,17253,17255,17258,17260],{"class":88,"line":408},[86,17252,3405],{"class":120},[86,17254,16391],{"class":2507},[86,17256,17257],{"class":120},">right_front2baselink\u003C\u002F",[86,17259,16391],{"class":2507},[86,17261,2519],{"class":120},[86,17263,17264,17266,17268,17271,17273],{"class":88,"line":414},[86,17265,3405],{"class":120},[86,17267,16391],{"class":2507},[86,17269,17270],{"class":120},">right_back2baselink\u003C\u002F",[86,17272,16391],{"class":2507},[86,17274,2519],{"class":120},[86,17276,17277],{"class":88,"line":420},[86,17278,17279],{"class":99},"            \u003C!-- wheel_separation轮距 是左右轮中心线之间的距离：0.06 - (-0.06) = 0.12m -->\n",[86,17281,17282,17284,17286,17289,17291],{"class":88,"line":426},[86,17283,3405],{"class":120},[86,17285,16399],{"class":2507},[86,17287,17288],{"class":120},">0.12\u003C\u002F",[86,17290,16399],{"class":2507},[86,17292,2519],{"class":120},[86,17294,17295,17297,17299,17302,17304],{"class":88,"line":1784},[86,17296,3405],{"class":120},[86,17298,16566],{"class":2507},[86,17300,17301],{"class":120},">0.025\u003C\u002F",[86,17303,16566],{"class":2507},[86,17305,2519],{"class":120},[86,17307,17308,17310,17312,17314,17316],{"class":88,"line":1796},[86,17309,3405],{"class":120},[86,17311,16580],{"class":2507},[86,17313,16945],{"class":120},[86,17315,16580],{"class":2507},[86,17317,2519],{"class":120},[86,17319,17320,17322,17324,17326,17328],{"class":88,"line":1801},[86,17321,3405],{"class":120},[86,17323,16594],{"class":2507},[86,17325,16597],{"class":120},[86,17327,16594],{"class":2507},[86,17329,2519],{"class":120},[86,17331,17332,17334,17336,17338,17340],{"class":88,"line":1818},[86,17333,3405],{"class":120},[86,17335,16608],{"class":2507},[86,17337,16611],{"class":120},[86,17339,16608],{"class":2507},[86,17341,2519],{"class":120},[86,17343,17344,17346,17348,17350,17352],{"class":88,"line":1833},[86,17345,3405],{"class":120},[86,17347,16622],{"class":2507},[86,17349,16625],{"class":120},[86,17351,16622],{"class":2507},[86,17353,2519],{"class":120},[86,17355,17356,17358,17360,17362,17364],{"class":88,"line":1855},[86,17357,3405],{"class":120},[86,17359,16636],{"class":2507},[86,17361,16583],{"class":120},[86,17363,16636],{"class":2507},[86,17365,2519],{"class":120},[86,17367,17368,17370,17372,17374,17376],{"class":88,"line":1860},[86,17369,3405],{"class":120},[86,17371,16649],{"class":2507},[86,17373,16652],{"class":120},[86,17375,16649],{"class":2507},[86,17377,2519],{"class":120},[86,17379,17380,17382,17384,17386,17388],{"class":88,"line":1871},[86,17381,3405],{"class":120},[86,17383,16663],{"class":2507},[86,17385,16583],{"class":120},[86,17387,16663],{"class":2507},[86,17389,2519],{"class":120},[86,17391,17392,17394,17396,17398,17400],{"class":88,"line":1877},[86,17393,3405],{"class":120},[86,17395,16676],{"class":2507},[86,17397,16652],{"class":120},[86,17399,16676],{"class":2507},[86,17401,2519],{"class":120},[86,17403,17404,17406,17408,17410,17412],{"class":88,"line":1895},[86,17405,3405],{"class":120},[86,17407,16689],{"class":2507},[86,17409,16692],{"class":120},[86,17411,16689],{"class":2507},[86,17413,2519],{"class":120},[86,17415,17416,17418,17420,17422,17424],{"class":88,"line":1907},[86,17417,3405],{"class":120},[86,17419,16703],{"class":2507},[86,17421,16706],{"class":120},[86,17423,16703],{"class":2507},[86,17425,2519],{"class":120},[86,17427,17428,17430,17432,17434,17436],{"class":88,"line":1925},[86,17429,3405],{"class":120},[86,17431,16717],{"class":2507},[86,17433,3112],{"class":120},[86,17435,16717],{"class":2507},[86,17437,2519],{"class":120},[86,17439,17440,17442,17444,17446,17448],{"class":88,"line":1931},[86,17441,3405],{"class":120},[86,17443,16730],{"class":2507},[86,17445,16733],{"class":120},[86,17447,16730],{"class":2507},[86,17449,2519],{"class":120},[86,17451,17452,17454,17456],{"class":88,"line":1937},[86,17453,2961],{"class":120},[86,17455,3145],{"class":2507},[86,17457,2519],{"class":120},[86,17459,17460,17462,17464],{"class":88,"line":1942},[86,17461,2622],{"class":120},[86,17463,15179],{"class":2507},[86,17465,2519],{"class":120},[86,17467,17468],{"class":88,"line":1948},[86,17469,17470],{"class":99},"    \u003C!-- 关节状态发布 -->\n",[86,17472,17473,17475,17477],{"class":88,"line":1959},[86,17474,2541],{"class":120},[86,17476,15179],{"class":2507},[86,17478,2519],{"class":120},[86,17480,17481,17483,17485,17487,17489],{"class":88,"line":1973},[86,17482,2725],{"class":120},[86,17484,3145],{"class":2507},[86,17486,3155],{"class":106},[86,17488,1807],{"class":120},[86,17490,16782],{"class":110},[86,17492,17493,17495,17497,17499],{"class":88,"line":1985},[86,17494,16513],{"class":106},[86,17496,1807],{"class":120},[86,17498,16792],{"class":110},[86,17500,2519],{"class":120},[86,17502,17503,17505,17507],{"class":88,"line":2012},[86,17504,2961],{"class":120},[86,17506,3145],{"class":2507},[86,17508,2519],{"class":120},[86,17510,17511,17513,17515],{"class":88,"line":2028},[86,17512,2622],{"class":120},[86,17514,15179],{"class":2507},[86,17516,2519],{"class":120},[86,17518,17519,17521,17523],{"class":88,"line":2033},[86,17520,2640],{"class":120},[86,17522,2508],{"class":2507},[86,17524,2519],{"class":120},[17,17526,17527],{},[21,17528,17529],{},"修改launch文件",[17,17531,17532],{},"修改gazebo_sim_robot_world.launch.py文件，修改后的代码如下：",[76,17534,17536],{"className":1657,"code":17535,"language":1659,"meta":81,"style":81},"import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory(\"demo_gazebo_sim\")\n    mycar_desc_pkg = get_package_share_directory(\"mycar_description\")\n    pkg_ros_gz_sim = get_package_share_directory(\"ros_gz_sim\")\n    world_file = os.path.join(this_pkg,\"world\",\"house.sdf\")\n\n    gz_sim = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(pkg_ros_gz_sim, \"launch\", \"gz_sim.launch.py\")),\n        launch_arguments={\n            \"gz_args\": \"-r \" + world_file\n        }.items(),\n    )\n    mycar_desc = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(mycar_desc_pkg,\"launch\",\"mycar_desc_sim.launch.py\")\n        )\n    )\n    spawn = Node(package=\"ros_gz_sim\", executable=\"create\",\n                arguments=[\n                \"-name\", \"mycar\",\n                \"-x\", \"-4\",\n                \"-z\", \"0.01\", #设置为0,可能会陷进地里\n                \"-y\", \"0\",\n                \"-R\", \"0\",\n                \"-P\", \"0\",\n                \"-Y\", \"1.57\",   #逆时针旋转90度\n                \"-topic\", \"\u002Frobot_description\"],\n            output=\"screen\")\n\n    # Bridge\n    bridge = Node(\n        package=\"ros_gz_bridge\",\n        executable=\"parameter_bridge\",\n        arguments=[\"\u002Fcmd_vel@geometry_msgs\u002Fmsg\u002FTwist@gz.msgs.Twist\",\n                   \"\u002Fmodel\u002Fmycar\u002Fodometry@nav_msgs\u002Fmsg\u002FOdometry@gz.msgs.Odometry\",\n                   \"\u002Fmodel\u002Fmycar\u002Ftf@tf2_msgs\u002Fmsg\u002FTFMessage[gz.msgs.Pose_V\",\n                   \"\u002Fclock@rosgraph_msgs\u002Fmsg\u002FClock[gz.msgs.Clock\",\n                   \"\u002Fworld\u002Fempty\u002Fmodel\u002Fmycar\u002Fjoint_state@sensor_msgs\u002Fmsg\u002FJointState[gz.msgs.Model\",\n                   ],\n        parameters=[{\"qos_overrides.\u002Fmodel\u002Fmycar.subscriber.reliability\": \"reliable\"}],\n        remappings=[\n                (\"\u002Fmodel\u002Fmycar\u002Ftf\", \"\u002Ftf\"),\n                (\"\u002Fworld\u002Fempty\u002Fmodel\u002Fmycar\u002Fjoint_state\",\"joint_states\"),\n                (\"\u002Fmodel\u002Fmycar\u002Fodometry\",\"\u002Fodom\")\n            ],\n        output=\"screen\"\n    )\n\n    return LaunchDescription([\n        gz_sim,\n        spawn,\n        mycar_desc,\n        bridge\n    ])\n",[83,17537,17538,17544,17548,17558,17562,17572,17582,17592,17602,17606,17614,17618,17630,17642,17654,17670,17674,17682,17686,17698,17706,17718,17722,17726,17734,17738,17750,17754,17758,17782,17790,17800,17811,17823,17833,17843,17853,17867,17877,17887,17891,17895,17903,17914,17925,17938,17945,17952,17959,17966,17970,17988,17996,18010,18024,18038,18042,18051,18055,18059,18065,18069,18073,18077,18082],{"__ignoreMap":81},[86,17539,17540,17542],{"class":88,"line":89},[86,17541,1666],{"class":736},[86,17543,1669],{"class":120},[86,17545,17546],{"class":88,"line":96},[86,17547,93],{"emptyLinePlaceholder":92},[86,17549,17550,17552,17554,17556],{"class":88,"line":103},[86,17551,1678],{"class":736},[86,17553,1681],{"class":120},[86,17555,1666],{"class":736},[86,17557,1686],{"class":120},[86,17559,17560],{"class":88,"line":127},[86,17561,93],{"emptyLinePlaceholder":92},[86,17563,17564,17566,17568,17570],{"class":88,"line":132},[86,17565,1678],{"class":736},[86,17567,1697],{"class":120},[86,17569,1666],{"class":736},[86,17571,1702],{"class":120},[86,17573,17574,17576,17578,17580],{"class":88,"line":138},[86,17575,1678],{"class":736},[86,17577,1709],{"class":120},[86,17579,1666],{"class":736},[86,17581,1725],{"class":120},[86,17583,17584,17586,17588,17590],{"class":88,"line":150},[86,17585,1678],{"class":736},[86,17587,1744],{"class":120},[86,17589,1666],{"class":736},[86,17591,1749],{"class":120},[86,17593,17594,17596,17598,17600],{"class":88,"line":155},[86,17595,1678],{"class":736},[86,17597,1772],{"class":120},[86,17599,1666],{"class":736},[86,17601,1777],{"class":120},[86,17603,17604],{"class":88,"line":161},[86,17605,93],{"emptyLinePlaceholder":92},[86,17607,17608,17610,17612],{"class":88,"line":408},[86,17609,1787],{"class":736},[86,17611,1790],{"class":106},[86,17613,1793],{"class":120},[86,17615,17616],{"class":88,"line":414},[86,17617,93],{"emptyLinePlaceholder":92},[86,17619,17620,17622,17624,17626,17628],{"class":88,"line":420},[86,17621,1804],{"class":120},[86,17623,1807],{"class":736},[86,17625,1810],{"class":120},[86,17627,15832],{"class":110},[86,17629,1576],{"class":120},[86,17631,17632,17634,17636,17638,17640],{"class":88,"line":426},[86,17633,15839],{"class":120},[86,17635,1807],{"class":736},[86,17637,1810],{"class":120},[86,17639,15570],{"class":110},[86,17641,1576],{"class":120},[86,17643,17644,17646,17648,17650,17652],{"class":88,"line":1784},[86,17645,1821],{"class":120},[86,17647,1807],{"class":736},[86,17649,1810],{"class":120},[86,17651,15858],{"class":110},[86,17653,1576],{"class":120},[86,17655,17656,17658,17660,17662,17664,17666,17668],{"class":88,"line":1796},[86,17657,1836],{"class":120},[86,17659,1807],{"class":736},[86,17661,1841],{"class":120},[86,17663,9327],{"class":110},[86,17665,1847],{"class":120},[86,17667,9332],{"class":110},[86,17669,1576],{"class":120},[86,17671,17672],{"class":88,"line":1801},[86,17673,93],{"emptyLinePlaceholder":92},[86,17675,17676,17678,17680],{"class":88,"line":1818},[86,17677,1863],{"class":120},[86,17679,1807],{"class":736},[86,17681,1868],{"class":120},[86,17683,17684],{"class":88,"line":1833},[86,17685,1874],{"class":120},[86,17687,17688,17690,17692,17694,17696],{"class":88,"line":1855},[86,17689,1880],{"class":120},[86,17691,15899],{"class":110},[86,17693,1886],{"class":120},[86,17695,15904],{"class":110},[86,17697,1892],{"class":120},[86,17699,17700,17702,17704],{"class":88,"line":1860},[86,17701,1899],{"class":1898},[86,17703,1807],{"class":736},[86,17705,1904],{"class":120},[86,17707,17708,17710,17712,17714,17716],{"class":88,"line":1871},[86,17709,15919],{"class":110},[86,17711,1913],{"class":120},[86,17713,15924],{"class":110},[86,17715,1919],{"class":736},[86,17717,1922],{"class":120},[86,17719,17720],{"class":88,"line":1877},[86,17721,1928],{"class":120},[86,17723,17724],{"class":88,"line":1895},[86,17725,1934],{"class":120},[86,17727,17728,17730,17732],{"class":88,"line":1907},[86,17729,15941],{"class":120},[86,17731,1807],{"class":736},[86,17733,1868],{"class":120},[86,17735,17736],{"class":88,"line":1925},[86,17737,1874],{"class":120},[86,17739,17740,17742,17744,17746,17748],{"class":88,"line":1931},[86,17741,15954],{"class":120},[86,17743,15899],{"class":110},[86,17745,1847],{"class":120},[86,17747,15961],{"class":110},[86,17749,1576],{"class":120},[86,17751,17752],{"class":88,"line":1937},[86,17753,15968],{"class":120},[86,17755,17756],{"class":88,"line":1942},[86,17757,1934],{"class":120},[86,17759,17760,17762,17764,17766,17768,17770,17772,17774,17776,17778,17780],{"class":88,"line":1948},[86,17761,15977],{"class":120},[86,17763,1807],{"class":736},[86,17765,15982],{"class":120},[86,17767,15985],{"class":1898},[86,17769,1807],{"class":736},[86,17771,15858],{"class":110},[86,17773,1886],{"class":120},[86,17775,15994],{"class":1898},[86,17777,1807],{"class":736},[86,17779,15999],{"class":110},[86,17781,1970],{"class":120},[86,17783,17784,17786,17788],{"class":88,"line":1959},[86,17785,16006],{"class":1898},[86,17787,1807],{"class":736},[86,17789,2147],{"class":120},[86,17791,17792,17794,17796,17798],{"class":88,"line":1973},[86,17793,16015],{"class":110},[86,17795,1886],{"class":120},[86,17797,16020],{"class":110},[86,17799,1970],{"class":120},[86,17801,17802,17804,17806,17809],{"class":88,"line":1985},[86,17803,16027],{"class":110},[86,17805,1886],{"class":120},[86,17807,17808],{"class":110},"\"-4\"",[86,17810,1970],{"class":120},[86,17812,17813,17815,17817,17819,17821],{"class":88,"line":2012},[86,17814,16039],{"class":110},[86,17816,1886],{"class":120},[86,17818,16044],{"class":110},[86,17820,1886],{"class":120},[86,17822,16049],{"class":99},[86,17824,17825,17827,17829,17831],{"class":88,"line":2028},[86,17826,16054],{"class":110},[86,17828,1886],{"class":120},[86,17830,16032],{"class":110},[86,17832,1970],{"class":120},[86,17834,17835,17837,17839,17841],{"class":88,"line":2033},[86,17836,16065],{"class":110},[86,17838,1886],{"class":120},[86,17840,16032],{"class":110},[86,17842,1970],{"class":120},[86,17844,17845,17847,17849,17851],{"class":88,"line":2038},[86,17846,16076],{"class":110},[86,17848,1886],{"class":120},[86,17850,16032],{"class":110},[86,17852,1970],{"class":120},[86,17854,17855,17857,17859,17861,17864],{"class":88,"line":2044},[86,17856,16087],{"class":110},[86,17858,1886],{"class":120},[86,17860,16092],{"class":110},[86,17862,17863],{"class":120},",   ",[86,17865,17866],{"class":99},"#逆时针旋转90度\n",[86,17868,17869,17871,17873,17875],{"class":88,"line":2054},[86,17870,16102],{"class":110},[86,17872,1886],{"class":120},[86,17874,16107],{"class":110},[86,17876,16110],{"class":120},[86,17878,17879,17881,17883,17885],{"class":88,"line":2067},[86,17880,16115],{"class":1898},[86,17882,1807],{"class":736},[86,17884,16120],{"class":110},[86,17886,1576],{"class":120},[86,17888,17889],{"class":88,"line":2080},[86,17890,93],{"emptyLinePlaceholder":92},[86,17892,17893],{"class":88,"line":2095},[86,17894,2041],{"class":99},[86,17896,17897,17899,17901],{"class":88,"line":2103},[86,17898,2047],{"class":120},[86,17900,1807],{"class":736},[86,17902,1956],{"class":120},[86,17904,17905,17907,17909,17912],{"class":88,"line":2111},[86,17906,2057],{"class":1898},[86,17908,1807],{"class":736},[86,17910,17911],{"class":110},"\"ros_gz_bridge\"",[86,17913,1970],{"class":120},[86,17915,17916,17918,17920,17923],{"class":88,"line":2117},[86,17917,2070],{"class":1898},[86,17919,1807],{"class":736},[86,17921,17922],{"class":110},"\"parameter_bridge\"",[86,17924,1970],{"class":120},[86,17926,17927,17929,17931,17933,17936],{"class":88,"line":2139},[86,17928,2083],{"class":1898},[86,17930,1807],{"class":736},[86,17932,770],{"class":120},[86,17934,17935],{"class":110},"\"\u002Fcmd_vel@geometry_msgs\u002Fmsg\u002FTwist@gz.msgs.Twist\"",[86,17937,1970],{"class":120},[86,17939,17940,17943],{"class":88,"line":2150},[86,17941,17942],{"class":110},"                   \"\u002Fmodel\u002Fmycar\u002Fodometry@nav_msgs\u002Fmsg\u002FOdometry@gz.msgs.Odometry\"",[86,17944,1970],{"class":120},[86,17946,17947,17950],{"class":88,"line":2167},[86,17948,17949],{"class":110},"                   \"\u002Fmodel\u002Fmycar\u002Ftf@tf2_msgs\u002Fmsg\u002FTFMessage[gz.msgs.Pose_V\"",[86,17951,1970],{"class":120},[86,17953,17954,17957],{"class":88,"line":2182},[86,17955,17956],{"class":110},"                   \"\u002Fclock@rosgraph_msgs\u002Fmsg\u002FClock[gz.msgs.Clock\"",[86,17958,1970],{"class":120},[86,17960,17961,17964],{"class":88,"line":2188},[86,17962,17963],{"class":110},"                   \"\u002Fworld\u002Fempty\u002Fmodel\u002Fmycar\u002Fjoint_state@sensor_msgs\u002Fmsg\u002FJointState[gz.msgs.Model\"",[86,17965,1970],{"class":120},[86,17967,17968],{"class":88,"line":2199},[86,17969,2114],{"class":120},[86,17971,17972,17974,17976,17978,17981,17983,17986],{"class":88,"line":2204},[86,17973,2120],{"class":1898},[86,17975,1807],{"class":736},[86,17977,2125],{"class":120},[86,17979,17980],{"class":110},"\"qos_overrides.\u002Fmodel\u002Fmycar.subscriber.reliability\"",[86,17982,1913],{"class":120},[86,17984,17985],{"class":110},"\"reliable\"",[86,17987,2136],{"class":120},[86,17989,17990,17992,17994],{"class":88,"line":2209},[86,17991,2142],{"class":1898},[86,17993,1807],{"class":736},[86,17995,2147],{"class":120},[86,17997,17998,18000,18003,18005,18008],{"class":88,"line":2218},[86,17999,2153],{"class":120},[86,18001,18002],{"class":110},"\"\u002Fmodel\u002Fmycar\u002Ftf\"",[86,18004,1886],{"class":120},[86,18006,18007],{"class":110},"\"\u002Ftf\"",[86,18009,2164],{"class":120},[86,18011,18012,18014,18017,18019,18022],{"class":88,"line":2224},[86,18013,2153],{"class":120},[86,18015,18016],{"class":110},"\"\u002Fworld\u002Fempty\u002Fmodel\u002Fmycar\u002Fjoint_state\"",[86,18018,1847],{"class":120},[86,18020,18021],{"class":110},"\"joint_states\"",[86,18023,2164],{"class":120},[86,18025,18026,18028,18031,18033,18036],{"class":88,"line":2244},[86,18027,2153],{"class":120},[86,18029,18030],{"class":110},"\"\u002Fmodel\u002Fmycar\u002Fodometry\"",[86,18032,1847],{"class":120},[86,18034,18035],{"class":110},"\"\u002Fodom\"",[86,18037,1576],{"class":120},[86,18039,18040],{"class":88,"line":2257},[86,18041,2185],{"class":120},[86,18043,18044,18046,18048],{"class":88,"line":2263},[86,18045,2191],{"class":1898},[86,18047,1807],{"class":736},[86,18049,18050],{"class":110},"\"screen\"\n",[86,18052,18053],{"class":88,"line":2269},[86,18054,1934],{"class":120},[86,18056,18057],{"class":88,"line":3759},[86,18058,93],{"emptyLinePlaceholder":92},[86,18060,18061,18063],{"class":88,"line":3772},[86,18062,2212],{"class":736},[86,18064,2215],{"class":120},[86,18066,18067],{"class":88,"line":3786},[86,18068,2221],{"class":120},[86,18070,18071],{"class":88,"line":3799},[86,18072,16141],{"class":120},[86,18074,18075],{"class":88,"line":3808},[86,18076,16146],{"class":120},[86,18078,18079],{"class":88,"line":3817},[86,18080,18081],{"class":120},"        bridge\n",[86,18083,18084],{"class":88,"line":3832},[86,18085,2272],{"class":120},[17,18087,18088],{},[21,18089,2285],{},[17,18091,2288],{},[76,18093,18094],{"className":78,"code":16159,"language":80,"meta":81,"style":81},[83,18095,18096],{"__ignoreMap":81},[86,18097,18098,18100,18102,18104,18106],{"class":88,"line":89},[86,18099,2298],{"class":106},[86,18101,2301],{"class":110},[86,18103,16170],{"class":550},[86,18105,13360],{"class":110},[86,18107,1542],{"class":110},[17,18109,18110],{},[21,18111,2316],{},[17,18113,2319],{},[76,18115,18117],{"className":78,"code":18116,"language":80,"meta":81,"style":81},". install\u002Fsetup.bash\nros2 launch demo_gazebo_sim gazebo_sim_robot_world.launch.py\n",[83,18118,18119,18125],{"__ignoreMap":81},[86,18120,18121,18123],{"class":88,"line":89},[86,18122,2329],{"class":550},[86,18124,2332],{"class":110},[86,18126,18127,18129,18131,18133],{"class":88,"line":96},[86,18128,237],{"class":106},[86,18130,240],{"class":110},[86,18132,2341],{"class":110},[86,18134,16207],{"class":110},[17,18136,18137],{},"再启动键盘控制节点，就可以控制机器人运动了。",[76,18139,18140],{"className":78,"code":2350,"language":80,"meta":81,"style":81},[83,18141,18142],{"__ignoreMap":81},[86,18143,18144,18146,18148,18150],{"class":88,"line":89},[86,18145,237],{"class":106},[86,18147,634],{"class":110},[86,18149,682],{"class":110},[86,18151,2363],{"class":110},[17,18153,18154],{},"还可以启动rviz2，以查看里程计消息以及坐标变换。终端中进入当前工作空间，调用如下指令执行launch文件：",[17,18156,18157],{},"启动rviz2",[76,18159,18161],{"className":78,"code":18160,"language":80,"meta":81,"style":81},". install\u002Fsetup.bash\nrviz2\n",[83,18162,18163,18169],{"__ignoreMap":81},[86,18164,18165,18167],{"class":88,"line":89},[86,18166,2329],{"class":550},[86,18168,2332],{"class":110},[86,18170,18171],{"class":88,"line":96},[86,18172,18173],{"class":106},"rviz2\n",[17,18175,18176],{},"RVIZ2软件配置如下图所示：",[17,18178,18179,18182],{},[174,18180],{"alt":81,"src":18181},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1735.webp",[174,18183],{"alt":81,"src":18184},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1736.webp",[17,18186,18187],{},[174,18188],{"alt":81,"src":18189},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1737.webp",[34,18191,18193],{"id":18192},"gz-sim仿真之传感器","Gz Sim仿真之传感器",[17,18195,18196,18197],{},"本节将介绍如何为仿真机器人添加雷达、相机等传感器。\n",[21,18198,18199],{},"添加传感器插件",[17,18201,18202,18203,18206,18207,18209,18210,18213],{},"在进行传感器模拟之前，需要先添加一个名为",[83,18204,18205],{},"gz-sim-sensors-system","的插件，打开urdf文件，在",[83,18208,16477],{},"根标签内添加如下代码：\n（建议创建一个",[83,18211,18212],{},"gazebo_sensor.urdf.xacro","专门存放）",[76,18215,18217],{"className":2495,"code":18216,"language":2497,"meta":81,"style":81},"\n\u003Cgazebo>\n    \u003Cplugin\n      filename=\"gz-sim-sensors-system\"\n      name=\"gz::sim::systems::Sensors\">\n      \u003Crender_engine>ogre2\u003C\u002Frender_engine>\n    \u003C\u002Fplugin>\n  \u003C\u002Fgazebo>\n",[83,18218,18219,18223,18231,18237,18247,18258,18272,18280],{"__ignoreMap":81},[86,18220,18221],{"class":88,"line":89},[86,18222,93],{"emptyLinePlaceholder":92},[86,18224,18225,18227,18229],{"class":88,"line":96},[86,18226,2504],{"class":120},[86,18228,15179],{"class":2507},[86,18230,2519],{"class":120},[86,18232,18233,18235],{"class":88,"line":103},[86,18234,2541],{"class":120},[86,18236,16839],{"class":2507},[86,18238,18239,18242,18244],{"class":88,"line":127},[86,18240,18241],{"class":106},"      filename",[86,18243,1807],{"class":120},[86,18245,18246],{"class":110},"\"gz-sim-sensors-system\"\n",[86,18248,18249,18251,18253,18256],{"class":88,"line":132},[86,18250,16787],{"class":106},[86,18252,1807],{"class":120},[86,18254,18255],{"class":110},"\"gz::sim::systems::Sensors\"",[86,18257,2519],{"class":120},[86,18259,18260,18262,18265,18268,18270],{"class":88,"line":138},[86,18261,2551],{"class":120},[86,18263,18264],{"class":2507},"render_engine",[86,18266,18267],{"class":120},">ogre2\u003C\u002F",[86,18269,18264],{"class":2507},[86,18271,2519],{"class":120},[86,18273,18274,18276,18278],{"class":88,"line":150},[86,18275,2622],{"class":120},[86,18277,3145],{"class":2507},[86,18279,2519],{"class":120},[86,18281,18282,18284,18286],{"class":88,"line":155},[86,18283,2631],{"class":120},[86,18285,15179],{"class":2507},[86,18287,2519],{"class":120},[17,18289,18290],{},"gz-sim-sensors-system是Gazebo仿真环境的插件，提供传感器模型和相关功能，用于创建、模拟和测试各种传感器设备。它包含常见传感器模型，如摄像头、激光雷达等。",[17,18292,18293],{},[21,18294,18295],{},"添加各种传感器",[17,18297,18298],{},[21,18299,18300],{},"(注意，你的模型一定要有以下几个传感器的模型)",[17,18302,18303],{},"雷达的模型不需要collision，请删掉，否则会挡激光射出。",[76,18305,18307],{"className":2495,"code":18306,"language":2497,"meta":81,"style":81},"\n  \u003Cgazebo reference=\"laser\">\n    \u003Csensor name='gpu_lidar' type='gpu_lidar'>\n      \u003Ctopic>scan\u003C\u002Ftopic>\n      \u003Cupdate_rate>30\u003C\u002Fupdate_rate>\n      \u003Clidar>\n        \u003Cscan>\n          \u003Chorizontal>\n            \u003Csamples>640\u003C\u002Fsamples>\n            \u003Cresolution>1\u003C\u002Fresolution>\n            \u003Cmin_angle>-3.1415926\u003C\u002Fmin_angle>\n            \u003Cmax_angle>3.1415926\u003C\u002Fmax_angle>\n          \u003C\u002Fhorizontal>\n          \u003Cvertical>\n            \u003Csamples>16\u003C\u002Fsamples>\n            \u003Cresolution>1\u003C\u002Fresolution>\n            \u003Cmin_angle>-0.261799\u003C\u002Fmin_angle>\n            \u003Cmax_angle>0.261799\u003C\u002Fmax_angle>\n          \u003C\u002Fvertical>\n        \u003C\u002Fscan>\n        \u003Crange>\n          \u003Cmin>0.08\u003C\u002Fmin>\n          \u003Cmax>10.0\u003C\u002Fmax>\n          \u003Cresolution>0.01\u003C\u002Fresolution>\n        \u003C\u002Frange>\n      \u003C\u002Flidar>\n      \u003Cvisualize>true\u003C\u002Fvisualize>\n      \u003Cgz_frame_id>laser\u003Cgz_frame_id>\n      \u003Cpose relative_to=\"laser\">0 0 0 0 0 0\u003C\u002Fpose>\n    \u003C\u002Fsensor>\n  \u003C\u002Fgazebo>\n\n  \u003Cgazebo reference=\"camera\" >\n    \u003Csensor name=\"cam_link\" type=\"camera\">\n      \u003Cupdate_rate>10.0\u003C\u002Fupdate_rate>\n      \u003Calways_on>true\u003C\u002Falways_on>\n      \u003Cgz_frame_id>camera\u003C\u002Fgz_frame_id>\n      \u003Cpose relative_to=\"camera\">0 0 0 0 0 0\u003C\u002Fpose>\n      \u003Cpose>0 0 0 0 0 0\u003C\u002Fpose>\n      \u003Ctopic>\u002Fimage_raw\u003C\u002Ftopic>\n      \u003Ccamera name=\"my_camera\">\n        \u003Chorizontal_fov>1.3962634\u003C\u002Fhorizontal_fov>\n        \u003Cimage>\n           \u003Cwidth>600\u003C\u002Fwidth>\n           \u003Cheight>600\u003C\u002Fheight>\n           \u003Cformat>R8G8B8\u003C\u002Fformat>\n        \u003C\u002Fimage>\n        \u003Cclip>\n          \u003Cnear>0.02\u003C\u002Fnear>\n          \u003Cfar>300\u003C\u002Ffar>\n        \u003C\u002Fclip>\n      \u003C\u002Fcamera>\n    \u003C\u002Fsensor>\n  \u003C\u002Fgazebo>\n\n  \u003Cgazebo reference=\"camera\">\n    \u003Csensor name=\"depth_camera\" type=\"depth_camera\">\n          \u003Cupdate_rate>10\u003C\u002Fupdate_rate>\n          \u003Ctopic>depth_camera\u003C\u002Ftopic>\n          \u003Ccamera>\n            \u003Chorizontal_fov>1.05\u003C\u002Fhorizontal_fov>\n            \u003Cimage>\n              \u003Cwidth>256\u003C\u002Fwidth>\n              \u003Cheight>256\u003C\u002Fheight>\n              \u003Cformat>R_FLOAT32\u003C\u002Fformat>\n            \u003C\u002Fimage>\n            \u003Cclip>\n              \u003Cnear>0.1\u003C\u002Fnear>\n              \u003Cfar>10.0\u003C\u002Ffar>\n            \u003C\u002Fclip>\n          \u003C\u002Fcamera>\n          \u003Calways_on>1\u003C\u002Falways_on>\n          \u003Cgz_frame_id>camera\u003C\u002Fgz_frame_id>\n          \u003Cpose relative_to=\"camera\">0 0 0 0 0 0\u003C\u002Fpose>\n      \u003C\u002Fsensor>\n  \u003C\u002Fgazebo>\n",[83,18308,18309,18313,18328,18350,18363,18376,18385,18394,18403,18417,18430,18444,18458,18466,18475,18488,18500,18513,18526,18534,18542,18550,18564,18578,18590,18598,18606,18619,18633,18653,18661,18669,18673,18688,18709,18721,18734,18747,18765,18777,18790,18806,18820,18829,18844,18857,18871,18879,18888,18902,18916,18924,18932,18940,18948,18952,18966,18987,18999,19012,19020,19033,19041,19054,19066,19079,19087,19095,19108,19120,19128,19136,19148,19160,19178,19186],{"__ignoreMap":81},[86,18310,18311],{"class":88,"line":89},[86,18312,93],{"emptyLinePlaceholder":92},[86,18314,18315,18317,18319,18321,18323,18326],{"class":88,"line":96},[86,18316,2524],{"class":120},[86,18318,15179],{"class":2507},[86,18320,15182],{"class":106},[86,18322,1807],{"class":120},[86,18324,18325],{"class":110},"\"laser\"",[86,18327,2519],{"class":120},[86,18329,18330,18332,18335,18337,18339,18342,18344,18346,18348],{"class":88,"line":103},[86,18331,2541],{"class":120},[86,18333,18334],{"class":2507},"sensor",[86,18336,2511],{"class":106},[86,18338,1807],{"class":120},[86,18340,18341],{"class":110},"'gpu_lidar'",[86,18343,3081],{"class":106},[86,18345,1807],{"class":120},[86,18347,18341],{"class":110},[86,18349,2519],{"class":120},[86,18351,18352,18354,18356,18359,18361],{"class":88,"line":127},[86,18353,2551],{"class":120},[86,18355,16622],{"class":2507},[86,18357,18358],{"class":120},">scan\u003C\u002F",[86,18360,16622],{"class":2507},[86,18362,2519],{"class":120},[86,18364,18365,18367,18369,18372,18374],{"class":88,"line":132},[86,18366,2551],{"class":120},[86,18368,16375],{"class":2507},[86,18370,18371],{"class":120},">30\u003C\u002F",[86,18373,16375],{"class":2507},[86,18375,2519],{"class":120},[86,18377,18378,18380,18383],{"class":88,"line":138},[86,18379,2551],{"class":120},[86,18381,18382],{"class":2507},"lidar",[86,18384,2519],{"class":120},[86,18386,18387,18389,18392],{"class":88,"line":150},[86,18388,2725],{"class":120},[86,18390,18391],{"class":2507},"scan",[86,18393,2519],{"class":120},[86,18395,18396,18398,18401],{"class":88,"line":155},[86,18397,2921],{"class":120},[86,18399,18400],{"class":2507},"horizontal",[86,18402,2519],{"class":120},[86,18404,18405,18407,18410,18413,18415],{"class":88,"line":161},[86,18406,3405],{"class":120},[86,18408,18409],{"class":2507},"samples",[86,18411,18412],{"class":120},">640\u003C\u002F",[86,18414,18409],{"class":2507},[86,18416,2519],{"class":120},[86,18418,18419,18421,18424,18426,18428],{"class":88,"line":408},[86,18420,3405],{"class":120},[86,18422,18423],{"class":2507},"resolution",[86,18425,3112],{"class":120},[86,18427,18423],{"class":2507},[86,18429,2519],{"class":120},[86,18431,18432,18434,18437,18440,18442],{"class":88,"line":414},[86,18433,3405],{"class":120},[86,18435,18436],{"class":2507},"min_angle",[86,18438,18439],{"class":120},">-3.1415926\u003C\u002F",[86,18441,18436],{"class":2507},[86,18443,2519],{"class":120},[86,18445,18446,18448,18451,18454,18456],{"class":88,"line":420},[86,18447,3405],{"class":120},[86,18449,18450],{"class":2507},"max_angle",[86,18452,18453],{"class":120},">3.1415926\u003C\u002F",[86,18455,18450],{"class":2507},[86,18457,2519],{"class":120},[86,18459,18460,18462,18464],{"class":88,"line":426},[86,18461,3453],{"class":120},[86,18463,18400],{"class":2507},[86,18465,2519],{"class":120},[86,18467,18468,18470,18473],{"class":88,"line":1784},[86,18469,2921],{"class":120},[86,18471,18472],{"class":2507},"vertical",[86,18474,2519],{"class":120},[86,18476,18477,18479,18481,18484,18486],{"class":88,"line":1796},[86,18478,3405],{"class":120},[86,18480,18409],{"class":2507},[86,18482,18483],{"class":120},">16\u003C\u002F",[86,18485,18409],{"class":2507},[86,18487,2519],{"class":120},[86,18489,18490,18492,18494,18496,18498],{"class":88,"line":1801},[86,18491,3405],{"class":120},[86,18493,18423],{"class":2507},[86,18495,3112],{"class":120},[86,18497,18423],{"class":2507},[86,18499,2519],{"class":120},[86,18501,18502,18504,18506,18509,18511],{"class":88,"line":1818},[86,18503,3405],{"class":120},[86,18505,18436],{"class":2507},[86,18507,18508],{"class":120},">-0.261799\u003C\u002F",[86,18510,18436],{"class":2507},[86,18512,2519],{"class":120},[86,18514,18515,18517,18519,18522,18524],{"class":88,"line":1833},[86,18516,3405],{"class":120},[86,18518,18450],{"class":2507},[86,18520,18521],{"class":120},">0.261799\u003C\u002F",[86,18523,18450],{"class":2507},[86,18525,2519],{"class":120},[86,18527,18528,18530,18532],{"class":88,"line":1855},[86,18529,3453],{"class":120},[86,18531,18472],{"class":2507},[86,18533,2519],{"class":120},[86,18535,18536,18538,18540],{"class":88,"line":1860},[86,18537,2961],{"class":120},[86,18539,18391],{"class":2507},[86,18541,2519],{"class":120},[86,18543,18544,18546,18548],{"class":88,"line":1871},[86,18545,2725],{"class":120},[86,18547,6093],{"class":2507},[86,18549,2519],{"class":120},[86,18551,18552,18554,18557,18560,18562],{"class":88,"line":1877},[86,18553,2921],{"class":120},[86,18555,18556],{"class":2507},"min",[86,18558,18559],{"class":120},">0.08\u003C\u002F",[86,18561,18556],{"class":2507},[86,18563,2519],{"class":120},[86,18565,18566,18568,18571,18574,18576],{"class":88,"line":1895},[86,18567,2921],{"class":120},[86,18569,18570],{"class":2507},"max",[86,18572,18573],{"class":120},">10.0\u003C\u002F",[86,18575,18570],{"class":2507},[86,18577,2519],{"class":120},[86,18579,18580,18582,18584,18586,18588],{"class":88,"line":1907},[86,18581,2921],{"class":120},[86,18583,18423],{"class":2507},[86,18585,6110],{"class":120},[86,18587,18423],{"class":2507},[86,18589,2519],{"class":120},[86,18591,18592,18594,18596],{"class":88,"line":1925},[86,18593,2961],{"class":120},[86,18595,6093],{"class":2507},[86,18597,2519],{"class":120},[86,18599,18600,18602,18604],{"class":88,"line":1931},[86,18601,2785],{"class":120},[86,18603,18382],{"class":2507},[86,18605,2519],{"class":120},[86,18607,18608,18610,18613,18615,18617],{"class":88,"line":1937},[86,18609,2551],{"class":120},[86,18611,18612],{"class":2507},"visualize",[86,18614,3320],{"class":120},[86,18616,18612],{"class":2507},[86,18618,2519],{"class":120},[86,18620,18621,18623,18626,18629,18631],{"class":88,"line":1942},[86,18622,2551],{"class":120},[86,18624,18625],{"class":2507},"gz_frame_id",[86,18627,18628],{"class":120},">laser\u003C",[86,18630,18625],{"class":2507},[86,18632,2519],{"class":120},[86,18634,18635,18637,18639,18642,18644,18646,18649,18651],{"class":88,"line":1948},[86,18636,2551],{"class":120},[86,18638,3669],{"class":2507},[86,18640,18641],{"class":106}," relative_to",[86,18643,1807],{"class":120},[86,18645,18325],{"class":110},[86,18647,18648],{"class":120},">0 0 0 0 0 0\u003C\u002F",[86,18650,3669],{"class":2507},[86,18652,2519],{"class":120},[86,18654,18655,18657,18659],{"class":88,"line":1959},[86,18656,2622],{"class":120},[86,18658,18334],{"class":2507},[86,18660,2519],{"class":120},[86,18662,18663,18665,18667],{"class":88,"line":1973},[86,18664,2631],{"class":120},[86,18666,15179],{"class":2507},[86,18668,2519],{"class":120},[86,18670,18671],{"class":88,"line":1985},[86,18672,93],{"emptyLinePlaceholder":92},[86,18674,18675,18677,18679,18681,18683,18686],{"class":88,"line":2012},[86,18676,2524],{"class":120},[86,18678,15179],{"class":2507},[86,18680,15182],{"class":106},[86,18682,1807],{"class":120},[86,18684,18685],{"class":110},"\"camera\"",[86,18687,14840],{"class":120},[86,18689,18690,18692,18694,18696,18698,18701,18703,18705,18707],{"class":88,"line":2028},[86,18691,2541],{"class":120},[86,18693,18334],{"class":2507},[86,18695,2511],{"class":106},[86,18697,1807],{"class":120},[86,18699,18700],{"class":110},"\"cam_link\"",[86,18702,3081],{"class":106},[86,18704,1807],{"class":120},[86,18706,18685],{"class":110},[86,18708,2519],{"class":120},[86,18710,18711,18713,18715,18717,18719],{"class":88,"line":2033},[86,18712,2551],{"class":120},[86,18714,16375],{"class":2507},[86,18716,18573],{"class":120},[86,18718,16375],{"class":2507},[86,18720,2519],{"class":120},[86,18722,18723,18725,18728,18730,18732],{"class":88,"line":2038},[86,18724,2551],{"class":120},[86,18726,18727],{"class":2507},"always_on",[86,18729,3320],{"class":120},[86,18731,18727],{"class":2507},[86,18733,2519],{"class":120},[86,18735,18736,18738,18740,18743,18745],{"class":88,"line":2044},[86,18737,2551],{"class":120},[86,18739,18625],{"class":2507},[86,18741,18742],{"class":120},">camera\u003C\u002F",[86,18744,18625],{"class":2507},[86,18746,2519],{"class":120},[86,18748,18749,18751,18753,18755,18757,18759,18761,18763],{"class":88,"line":2054},[86,18750,2551],{"class":120},[86,18752,3669],{"class":2507},[86,18754,18641],{"class":106},[86,18756,1807],{"class":120},[86,18758,18685],{"class":110},[86,18760,18648],{"class":120},[86,18762,3669],{"class":2507},[86,18764,2519],{"class":120},[86,18766,18767,18769,18771,18773,18775],{"class":88,"line":2067},[86,18768,2551],{"class":120},[86,18770,3669],{"class":2507},[86,18772,18648],{"class":120},[86,18774,3669],{"class":2507},[86,18776,2519],{"class":120},[86,18778,18779,18781,18783,18786,18788],{"class":88,"line":2080},[86,18780,2551],{"class":120},[86,18782,16622],{"class":2507},[86,18784,18785],{"class":120},">\u002Fimage_raw\u003C\u002F",[86,18787,16622],{"class":2507},[86,18789,2519],{"class":120},[86,18791,18792,18794,18797,18799,18801,18804],{"class":88,"line":2095},[86,18793,2551],{"class":120},[86,18795,18796],{"class":2507},"camera",[86,18798,2511],{"class":106},[86,18800,1807],{"class":120},[86,18802,18803],{"class":110},"\"my_camera\"",[86,18805,2519],{"class":120},[86,18807,18808,18810,18813,18816,18818],{"class":88,"line":2103},[86,18809,2725],{"class":120},[86,18811,18812],{"class":2507},"horizontal_fov",[86,18814,18815],{"class":120},">1.3962634\u003C\u002F",[86,18817,18812],{"class":2507},[86,18819,2519],{"class":120},[86,18821,18822,18824,18827],{"class":88,"line":2111},[86,18823,2725],{"class":120},[86,18825,18826],{"class":2507},"image",[86,18828,2519],{"class":120},[86,18830,18831,18834,18837,18840,18842],{"class":88,"line":2117},[86,18832,18833],{"class":120},"           \u003C",[86,18835,18836],{"class":2507},"width",[86,18838,18839],{"class":120},">600\u003C\u002F",[86,18841,18836],{"class":2507},[86,18843,2519],{"class":120},[86,18845,18846,18848,18851,18853,18855],{"class":88,"line":2139},[86,18847,18833],{"class":120},[86,18849,18850],{"class":2507},"height",[86,18852,18839],{"class":120},[86,18854,18850],{"class":2507},[86,18856,2519],{"class":120},[86,18858,18859,18861,18864,18867,18869],{"class":88,"line":2150},[86,18860,18833],{"class":120},[86,18862,18863],{"class":2507},"format",[86,18865,18866],{"class":120},">R8G8B8\u003C\u002F",[86,18868,18863],{"class":2507},[86,18870,2519],{"class":120},[86,18872,18873,18875,18877],{"class":88,"line":2167},[86,18874,2961],{"class":120},[86,18876,18826],{"class":2507},[86,18878,2519],{"class":120},[86,18880,18881,18883,18886],{"class":88,"line":2182},[86,18882,2725],{"class":120},[86,18884,18885],{"class":2507},"clip",[86,18887,2519],{"class":120},[86,18889,18890,18892,18895,18898,18900],{"class":88,"line":2188},[86,18891,2921],{"class":120},[86,18893,18894],{"class":2507},"near",[86,18896,18897],{"class":120},">0.02\u003C\u002F",[86,18899,18894],{"class":2507},[86,18901,2519],{"class":120},[86,18903,18904,18906,18909,18912,18914],{"class":88,"line":2199},[86,18905,2921],{"class":120},[86,18907,18908],{"class":2507},"far",[86,18910,18911],{"class":120},">300\u003C\u002F",[86,18913,18908],{"class":2507},[86,18915,2519],{"class":120},[86,18917,18918,18920,18922],{"class":88,"line":2204},[86,18919,2961],{"class":120},[86,18921,18885],{"class":2507},[86,18923,2519],{"class":120},[86,18925,18926,18928,18930],{"class":88,"line":2209},[86,18927,2785],{"class":120},[86,18929,18796],{"class":2507},[86,18931,2519],{"class":120},[86,18933,18934,18936,18938],{"class":88,"line":2218},[86,18935,2622],{"class":120},[86,18937,18334],{"class":2507},[86,18939,2519],{"class":120},[86,18941,18942,18944,18946],{"class":88,"line":2224},[86,18943,2631],{"class":120},[86,18945,15179],{"class":2507},[86,18947,2519],{"class":120},[86,18949,18950],{"class":88,"line":2244},[86,18951,93],{"emptyLinePlaceholder":92},[86,18953,18954,18956,18958,18960,18962,18964],{"class":88,"line":2257},[86,18955,2524],{"class":120},[86,18957,15179],{"class":2507},[86,18959,15182],{"class":106},[86,18961,1807],{"class":120},[86,18963,18685],{"class":110},[86,18965,2519],{"class":120},[86,18967,18968,18970,18972,18974,18976,18979,18981,18983,18985],{"class":88,"line":2263},[86,18969,2541],{"class":120},[86,18971,18334],{"class":2507},[86,18973,2511],{"class":106},[86,18975,1807],{"class":120},[86,18977,18978],{"class":110},"\"depth_camera\"",[86,18980,3081],{"class":106},[86,18982,1807],{"class":120},[86,18984,18978],{"class":110},[86,18986,2519],{"class":120},[86,18988,18989,18991,18993,18995,18997],{"class":88,"line":2269},[86,18990,2921],{"class":120},[86,18992,16375],{"class":2507},[86,18994,16583],{"class":120},[86,18996,16375],{"class":2507},[86,18998,2519],{"class":120},[86,19000,19001,19003,19005,19008,19010],{"class":88,"line":3759},[86,19002,2921],{"class":120},[86,19004,16622],{"class":2507},[86,19006,19007],{"class":120},">depth_camera\u003C\u002F",[86,19009,16622],{"class":2507},[86,19011,2519],{"class":120},[86,19013,19014,19016,19018],{"class":88,"line":3772},[86,19015,2921],{"class":120},[86,19017,18796],{"class":2507},[86,19019,2519],{"class":120},[86,19021,19022,19024,19026,19029,19031],{"class":88,"line":3786},[86,19023,3405],{"class":120},[86,19025,18812],{"class":2507},[86,19027,19028],{"class":120},">1.05\u003C\u002F",[86,19030,18812],{"class":2507},[86,19032,2519],{"class":120},[86,19034,19035,19037,19039],{"class":88,"line":3799},[86,19036,3405],{"class":120},[86,19038,18826],{"class":2507},[86,19040,2519],{"class":120},[86,19042,19043,19045,19047,19050,19052],{"class":88,"line":3808},[86,19044,3415],{"class":120},[86,19046,18836],{"class":2507},[86,19048,19049],{"class":120},">256\u003C\u002F",[86,19051,18836],{"class":2507},[86,19053,2519],{"class":120},[86,19055,19056,19058,19060,19062,19064],{"class":88,"line":3817},[86,19057,3415],{"class":120},[86,19059,18850],{"class":2507},[86,19061,19049],{"class":120},[86,19063,18850],{"class":2507},[86,19065,2519],{"class":120},[86,19067,19068,19070,19072,19075,19077],{"class":88,"line":3832},[86,19069,3415],{"class":120},[86,19071,18863],{"class":2507},[86,19073,19074],{"class":120},">R_FLOAT32\u003C\u002F",[86,19076,18863],{"class":2507},[86,19078,2519],{"class":120},[86,19080,19081,19083,19085],{"class":88,"line":3841},[86,19082,3444],{"class":120},[86,19084,18826],{"class":2507},[86,19086,2519],{"class":120},[86,19088,19089,19091,19093],{"class":88,"line":3854},[86,19090,3405],{"class":120},[86,19092,18885],{"class":2507},[86,19094,2519],{"class":120},[86,19096,19097,19099,19101,19104,19106],{"class":88,"line":3868},[86,19098,3415],{"class":120},[86,19100,18894],{"class":2507},[86,19102,19103],{"class":120},">0.1\u003C\u002F",[86,19105,18894],{"class":2507},[86,19107,2519],{"class":120},[86,19109,19110,19112,19114,19116,19118],{"class":88,"line":3877},[86,19111,3415],{"class":120},[86,19113,18908],{"class":2507},[86,19115,18573],{"class":120},[86,19117,18908],{"class":2507},[86,19119,2519],{"class":120},[86,19121,19122,19124,19126],{"class":88,"line":3893},[86,19123,3444],{"class":120},[86,19125,18885],{"class":2507},[86,19127,2519],{"class":120},[86,19129,19130,19132,19134],{"class":88,"line":3907},[86,19131,3453],{"class":120},[86,19133,18796],{"class":2507},[86,19135,2519],{"class":120},[86,19137,19138,19140,19142,19144,19146],{"class":88,"line":3923},[86,19139,2921],{"class":120},[86,19141,18727],{"class":2507},[86,19143,3112],{"class":120},[86,19145,18727],{"class":2507},[86,19147,2519],{"class":120},[86,19149,19150,19152,19154,19156,19158],{"class":88,"line":3932},[86,19151,2921],{"class":120},[86,19153,18625],{"class":2507},[86,19155,18742],{"class":120},[86,19157,18625],{"class":2507},[86,19159,2519],{"class":120},[86,19161,19162,19164,19166,19168,19170,19172,19174,19176],{"class":88,"line":3941},[86,19163,2921],{"class":120},[86,19165,3669],{"class":2507},[86,19167,18641],{"class":106},[86,19169,1807],{"class":120},[86,19171,18685],{"class":110},[86,19173,18648],{"class":120},[86,19175,3669],{"class":2507},[86,19177,2519],{"class":120},[86,19179,19180,19182,19184],{"class":88,"line":3955},[86,19181,2785],{"class":120},[86,19183,18334],{"class":2507},[86,19185,2519],{"class":120},[86,19187,19188,19190,19192],{"class":88,"line":3968},[86,19189,2631],{"class":120},[86,19191,15179],{"class":2507},[86,19193,2519],{"class":120},[17,19195,19196],{},"从官网找到的imu传感器的",[76,19198,19200],{"className":2495,"code":19199,"language":2497,"meta":81,"style":81},"\n    \u003Cgazebo>\n        \u003Cplugin filename=\"gz-sim-imu-system\"\n                name=\"gz::sim::systems::Imu\">\n        \u003C\u002Fplugin>\n    \u003C\u002Fgazebo>\n\n    \u003Cgazebo reference=\"base_link\">\n        \u003Csensor name=\"imu_sensor\" type=\"imu\">\n            \u003Calways_on>1\u003C\u002Falways_on>\n            \u003Cupdate_rate>30\u003C\u002Fupdate_rate>\n            \u003Cvisualize>true\u003C\u002Fvisualize>\n            \u003Ctopic>imu\u003C\u002Ftopic>\n        \u003C\u002Fsensor>\n    \u003C\u002Fgazebo>\n",[83,19201,19202,19206,19214,19227,19239,19247,19255,19259,19273,19295,19307,19319,19331,19344,19352],{"__ignoreMap":81},[86,19203,19204],{"class":88,"line":89},[86,19205,93],{"emptyLinePlaceholder":92},[86,19207,19208,19210,19212],{"class":88,"line":96},[86,19209,2541],{"class":120},[86,19211,15179],{"class":2507},[86,19213,2519],{"class":120},[86,19215,19216,19218,19220,19222,19224],{"class":88,"line":103},[86,19217,2725],{"class":120},[86,19219,3145],{"class":2507},[86,19221,3155],{"class":106},[86,19223,1807],{"class":120},[86,19225,19226],{"class":110},"\"gz-sim-imu-system\"\n",[86,19228,19229,19232,19234,19237],{"class":88,"line":127},[86,19230,19231],{"class":106},"                name",[86,19233,1807],{"class":120},[86,19235,19236],{"class":110},"\"gz::sim::systems::Imu\"",[86,19238,2519],{"class":120},[86,19240,19241,19243,19245],{"class":88,"line":132},[86,19242,2961],{"class":120},[86,19244,3145],{"class":2507},[86,19246,2519],{"class":120},[86,19248,19249,19251,19253],{"class":88,"line":138},[86,19250,2622],{"class":120},[86,19252,15179],{"class":2507},[86,19254,2519],{"class":120},[86,19256,19257],{"class":88,"line":150},[86,19258,93],{"emptyLinePlaceholder":92},[86,19260,19261,19263,19265,19267,19269,19271],{"class":88,"line":155},[86,19262,2541],{"class":120},[86,19264,15179],{"class":2507},[86,19266,15182],{"class":106},[86,19268,1807],{"class":120},[86,19270,2534],{"class":110},[86,19272,2519],{"class":120},[86,19274,19275,19277,19279,19281,19283,19286,19288,19290,19293],{"class":88,"line":161},[86,19276,2725],{"class":120},[86,19278,18334],{"class":2507},[86,19280,2511],{"class":106},[86,19282,1807],{"class":120},[86,19284,19285],{"class":110},"\"imu_sensor\"",[86,19287,3081],{"class":106},[86,19289,1807],{"class":120},[86,19291,19292],{"class":110},"\"imu\"",[86,19294,2519],{"class":120},[86,19296,19297,19299,19301,19303,19305],{"class":88,"line":408},[86,19298,3405],{"class":120},[86,19300,18727],{"class":2507},[86,19302,3112],{"class":120},[86,19304,18727],{"class":2507},[86,19306,2519],{"class":120},[86,19308,19309,19311,19313,19315,19317],{"class":88,"line":414},[86,19310,3405],{"class":120},[86,19312,16375],{"class":2507},[86,19314,18371],{"class":120},[86,19316,16375],{"class":2507},[86,19318,2519],{"class":120},[86,19320,19321,19323,19325,19327,19329],{"class":88,"line":420},[86,19322,3405],{"class":120},[86,19324,18612],{"class":2507},[86,19326,3320],{"class":120},[86,19328,18612],{"class":2507},[86,19330,2519],{"class":120},[86,19332,19333,19335,19337,19340,19342],{"class":88,"line":426},[86,19334,3405],{"class":120},[86,19336,16622],{"class":2507},[86,19338,19339],{"class":120},">imu\u003C\u002F",[86,19341,16622],{"class":2507},[86,19343,2519],{"class":120},[86,19345,19346,19348,19350],{"class":88,"line":1784},[86,19347,2961],{"class":120},[86,19349,18334],{"class":2507},[86,19351,2519],{"class":120},[86,19353,19354,19356,19358],{"class":88,"line":1796},[86,19355,2622],{"class":120},[86,19357,15179],{"class":2507},[86,19359,2519],{"class":120},[17,19361,19362,19363,19366],{},"可以用",[83,19364,19365],{},"ign topic -e -t \u002Fimu","测试gazebo是否发布了话题，后面再用gazebo_bridge把话题给ROS2就行了。",[17,19368,19369],{},"默认情况下，rviz2没有显示imu消息的插件，需要自行安装相关插件，具体安装指令如下：",[76,19371,19375],{"className":19372,"code":19373,"language":19374,"meta":81,"style":81},"language-cpp shiki shiki-themes github-light github-dark","sudo apt install ros-${ROS_DISTRO}-imu-tools\n\nsudo apt install ros-jazzy-imu-tools\n","cpp",[83,19376,19377,19397,19401],{"__ignoreMap":81},[86,19378,19379,19382,19385,19387,19389,19392,19394],{"class":88,"line":89},[86,19380,19381],{"class":120},"sudo apt install ros",[86,19383,19384],{"class":736},"-",[86,19386,121],{"class":120},[86,19388,19384],{"class":736},[86,19390,19391],{"class":120},"imu",[86,19393,19384],{"class":736},[86,19395,19396],{"class":120},"tools\n",[86,19398,19399],{"class":88,"line":96},[86,19400,93],{"emptyLinePlaceholder":92},[86,19402,19403,19405,19407,19410,19412,19414,19416],{"class":88,"line":103},[86,19404,19381],{"class":120},[86,19406,19384],{"class":736},[86,19408,19409],{"class":120},"jazzy",[86,19411,19384],{"class":736},[86,19413,19391],{"class":120},[86,19415,19384],{"class":736},[86,19417,19396],{"class":120},[17,19419,19420],{},"SolidWorks自动生成的模型可能翻转了laser_joint,请你修改回正，这样可能rivz2就有激光了，然后修改一下可视化的模型，让模型正常，不要给碰撞，不然可能会遮挡激光。",[17,19422,19423],{},[174,19424],{"alt":81,"src":19425},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1738.webp",[17,19427,17532],{},[76,19429,19431],{"className":1657,"code":19430,"language":1659,"meta":81,"style":81},"import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory(\"demo_gazebo_sim\")\n    mycar_desc_pkg = get_package_share_directory(\"mycar_description\")\n    pkg_ros_gz_sim = get_package_share_directory(\"ros_gz_sim\")\n    world_file = os.path.join(this_pkg,\"world\",\"house.sdf\")\n\n    gz_sim = IncludeLaunchDescription(\n    PythonLaunchDescriptionSource(\n        os.path.join(pkg_ros_gz_sim, \"launch\", \"gz_sim.launch.py\")),\n        launch_arguments={\n        \"gz_args\": \"-r \" + world_file\n        }.items(),\n    )\n    mycar_desc = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(mycar_desc_pkg,\"launch\",\"mycar_desc_sim.launch.py\")\n        )\n    )\n    spawn = Node(package=\"ros_gz_sim\", executable=\"create\",\n        arguments=[\n            \"-name\", \"mycar\",\n            \"-x\", \"-4\",\n            \"-z\", \"0.01\", #设置为0,可能会陷进地里\n            \"-y\", \"0\",\n            \"-R\", \"0\",\n            \"-P\", \"0\",\n            \"-Y\", \"1.57\",   #逆时针旋转90度\n            \"-topic\", \"\u002Frobot_description\"],\n        output=\"screen\")\n\n    # Bridge\n    bridge = Node(\n        package=\"ros_gz_bridge\",\n        executable=\"parameter_bridge\",\n        arguments=[\"\u002Fcmd_vel@geometry_msgs\u002Fmsg\u002FTwist@gz.msgs.Twist\",\n            \"\u002Fmodel\u002Fmycar\u002Fodometry@nav_msgs\u002Fmsg\u002FOdometry@gz.msgs.Odometry\",\n            \"\u002Fmodel\u002Fmycar\u002Ftf@tf2_msgs\u002Fmsg\u002FTFMessage[gz.msgs.Pose_V\",\n            \"\u002Fclock@rosgraph_msgs\u002Fmsg\u002FClock[gz.msgs.Clock\",\n            \"\u002Fworld\u002Fempty\u002Fmodel\u002Fmycar\u002Fjoint_state@sensor_msgs\u002Fmsg\u002FJointState[gz.msgs.Model\",\n            \"\u002Fscan@sensor_msgs\u002Fmsg\u002FLaserScan@gz.msgs.LaserScan\",\n            \"\u002Fscan\u002Fpoints@sensor_msgs\u002Fmsg\u002FPointCloud2@gz.msgs.PointCloudPacked\",\n            \"\u002Fimage_raw@sensor_msgs\u002Fmsg\u002FImage@gz.msgs.Image\",\n            \"\u002Fcamera_info@sensor_msgs\u002Fmsg\u002FCameraInfo@gz.msgs.CameraInfo\",\n            \"\u002Fdepth_camera@sensor_msgs\u002Fmsg\u002FImage@gz.msgs.Image\",\n            \"\u002Fimu@sensor_msgs\u002Fmsg\u002FImu[gz.msgs.IMU\",\n            \"\u002Fimu\u002Fangular_velocity@geometry_msgs\u002Fmsg\u002FVector3[gz.msgs.Vector3d\"\n        ],\n        parameters=[{\"qos_overrides.\u002Fmodel\u002Fmycar.subscriber.reliability\": \"reliable\"}],\n        remappings=[\n            (\"\u002Fmodel\u002Fmycar\u002Ftf\", \"\u002Ftf\"),\n            (\"\u002Fworld\u002Fempty\u002Fmodel\u002Fmycar\u002Fjoint_state\",\"joint_states\"),\n            (\"\u002Fmodel\u002Fmycar\u002Fodometry\",\"\u002Fodom\")\n        ],\n        output=\"screen\"\n    )\n\n    return LaunchDescription([\n        gz_sim,\n        spawn,\n        mycar_desc,\n        bridge\n    ])\n",[83,19432,19433,19439,19443,19453,19457,19467,19477,19487,19497,19501,19509,19513,19525,19537,19549,19565,19569,19577,19582,19595,19603,19616,19620,19624,19632,19636,19648,19652,19656,19680,19688,19699,19710,19723,19734,19745,19756,19769,19780,19790,19794,19798,19806,19816,19826,19838,19845,19852,19859,19866,19873,19880,19887,19894,19901,19908,19913,19918,19934,19942,19955,19967,19979,19983,19991,19995,19999,20005,20009,20013,20017,20021],{"__ignoreMap":81},[86,19434,19435,19437],{"class":88,"line":89},[86,19436,1666],{"class":736},[86,19438,1669],{"class":120},[86,19440,19441],{"class":88,"line":96},[86,19442,93],{"emptyLinePlaceholder":92},[86,19444,19445,19447,19449,19451],{"class":88,"line":103},[86,19446,1678],{"class":736},[86,19448,1681],{"class":120},[86,19450,1666],{"class":736},[86,19452,1686],{"class":120},[86,19454,19455],{"class":88,"line":127},[86,19456,93],{"emptyLinePlaceholder":92},[86,19458,19459,19461,19463,19465],{"class":88,"line":132},[86,19460,1678],{"class":736},[86,19462,1697],{"class":120},[86,19464,1666],{"class":736},[86,19466,1702],{"class":120},[86,19468,19469,19471,19473,19475],{"class":88,"line":138},[86,19470,1678],{"class":736},[86,19472,1709],{"class":120},[86,19474,1666],{"class":736},[86,19476,1725],{"class":120},[86,19478,19479,19481,19483,19485],{"class":88,"line":150},[86,19480,1678],{"class":736},[86,19482,1744],{"class":120},[86,19484,1666],{"class":736},[86,19486,1749],{"class":120},[86,19488,19489,19491,19493,19495],{"class":88,"line":155},[86,19490,1678],{"class":736},[86,19492,1772],{"class":120},[86,19494,1666],{"class":736},[86,19496,1777],{"class":120},[86,19498,19499],{"class":88,"line":161},[86,19500,93],{"emptyLinePlaceholder":92},[86,19502,19503,19505,19507],{"class":88,"line":408},[86,19504,1787],{"class":736},[86,19506,1790],{"class":106},[86,19508,1793],{"class":120},[86,19510,19511],{"class":88,"line":414},[86,19512,93],{"emptyLinePlaceholder":92},[86,19514,19515,19517,19519,19521,19523],{"class":88,"line":420},[86,19516,1804],{"class":120},[86,19518,1807],{"class":736},[86,19520,1810],{"class":120},[86,19522,15832],{"class":110},[86,19524,1576],{"class":120},[86,19526,19527,19529,19531,19533,19535],{"class":88,"line":426},[86,19528,15839],{"class":120},[86,19530,1807],{"class":736},[86,19532,1810],{"class":120},[86,19534,15570],{"class":110},[86,19536,1576],{"class":120},[86,19538,19539,19541,19543,19545,19547],{"class":88,"line":1784},[86,19540,1821],{"class":120},[86,19542,1807],{"class":736},[86,19544,1810],{"class":120},[86,19546,15858],{"class":110},[86,19548,1576],{"class":120},[86,19550,19551,19553,19555,19557,19559,19561,19563],{"class":88,"line":1796},[86,19552,1836],{"class":120},[86,19554,1807],{"class":736},[86,19556,1841],{"class":120},[86,19558,9327],{"class":110},[86,19560,1847],{"class":120},[86,19562,9332],{"class":110},[86,19564,1576],{"class":120},[86,19566,19567],{"class":88,"line":1801},[86,19568,93],{"emptyLinePlaceholder":92},[86,19570,19571,19573,19575],{"class":88,"line":1818},[86,19572,1863],{"class":120},[86,19574,1807],{"class":736},[86,19576,1868],{"class":120},[86,19578,19579],{"class":88,"line":1833},[86,19580,19581],{"class":120},"    PythonLaunchDescriptionSource(\n",[86,19583,19584,19587,19589,19591,19593],{"class":88,"line":1855},[86,19585,19586],{"class":120},"        os.path.join(pkg_ros_gz_sim, ",[86,19588,15899],{"class":110},[86,19590,1886],{"class":120},[86,19592,15904],{"class":110},[86,19594,1892],{"class":120},[86,19596,19597,19599,19601],{"class":88,"line":1860},[86,19598,1899],{"class":1898},[86,19600,1807],{"class":736},[86,19602,1904],{"class":120},[86,19604,19605,19608,19610,19612,19614],{"class":88,"line":1871},[86,19606,19607],{"class":110},"        \"gz_args\"",[86,19609,1913],{"class":120},[86,19611,15924],{"class":110},[86,19613,1919],{"class":736},[86,19615,1922],{"class":120},[86,19617,19618],{"class":88,"line":1877},[86,19619,1928],{"class":120},[86,19621,19622],{"class":88,"line":1895},[86,19623,1934],{"class":120},[86,19625,19626,19628,19630],{"class":88,"line":1907},[86,19627,15941],{"class":120},[86,19629,1807],{"class":736},[86,19631,1868],{"class":120},[86,19633,19634],{"class":88,"line":1925},[86,19635,1874],{"class":120},[86,19637,19638,19640,19642,19644,19646],{"class":88,"line":1931},[86,19639,15954],{"class":120},[86,19641,15899],{"class":110},[86,19643,1847],{"class":120},[86,19645,15961],{"class":110},[86,19647,1576],{"class":120},[86,19649,19650],{"class":88,"line":1937},[86,19651,15968],{"class":120},[86,19653,19654],{"class":88,"line":1942},[86,19655,1934],{"class":120},[86,19657,19658,19660,19662,19664,19666,19668,19670,19672,19674,19676,19678],{"class":88,"line":1948},[86,19659,15977],{"class":120},[86,19661,1807],{"class":736},[86,19663,15982],{"class":120},[86,19665,15985],{"class":1898},[86,19667,1807],{"class":736},[86,19669,15858],{"class":110},[86,19671,1886],{"class":120},[86,19673,15994],{"class":1898},[86,19675,1807],{"class":736},[86,19677,15999],{"class":110},[86,19679,1970],{"class":120},[86,19681,19682,19684,19686],{"class":88,"line":1959},[86,19683,2083],{"class":1898},[86,19685,1807],{"class":736},[86,19687,2147],{"class":120},[86,19689,19690,19693,19695,19697],{"class":88,"line":1973},[86,19691,19692],{"class":110},"            \"-name\"",[86,19694,1886],{"class":120},[86,19696,16020],{"class":110},[86,19698,1970],{"class":120},[86,19700,19701,19704,19706,19708],{"class":88,"line":1985},[86,19702,19703],{"class":110},"            \"-x\"",[86,19705,1886],{"class":120},[86,19707,17808],{"class":110},[86,19709,1970],{"class":120},[86,19711,19712,19715,19717,19719,19721],{"class":88,"line":2012},[86,19713,19714],{"class":110},"            \"-z\"",[86,19716,1886],{"class":120},[86,19718,16044],{"class":110},[86,19720,1886],{"class":120},[86,19722,16049],{"class":99},[86,19724,19725,19728,19730,19732],{"class":88,"line":2028},[86,19726,19727],{"class":110},"            \"-y\"",[86,19729,1886],{"class":120},[86,19731,16032],{"class":110},[86,19733,1970],{"class":120},[86,19735,19736,19739,19741,19743],{"class":88,"line":2033},[86,19737,19738],{"class":110},"            \"-R\"",[86,19740,1886],{"class":120},[86,19742,16032],{"class":110},[86,19744,1970],{"class":120},[86,19746,19747,19750,19752,19754],{"class":88,"line":2038},[86,19748,19749],{"class":110},"            \"-P\"",[86,19751,1886],{"class":120},[86,19753,16032],{"class":110},[86,19755,1970],{"class":120},[86,19757,19758,19761,19763,19765,19767],{"class":88,"line":2044},[86,19759,19760],{"class":110},"            \"-Y\"",[86,19762,1886],{"class":120},[86,19764,16092],{"class":110},[86,19766,17863],{"class":120},[86,19768,17866],{"class":99},[86,19770,19771,19774,19776,19778],{"class":88,"line":2054},[86,19772,19773],{"class":110},"            \"-topic\"",[86,19775,1886],{"class":120},[86,19777,16107],{"class":110},[86,19779,16110],{"class":120},[86,19781,19782,19784,19786,19788],{"class":88,"line":2067},[86,19783,2191],{"class":1898},[86,19785,1807],{"class":736},[86,19787,16120],{"class":110},[86,19789,1576],{"class":120},[86,19791,19792],{"class":88,"line":2080},[86,19793,93],{"emptyLinePlaceholder":92},[86,19795,19796],{"class":88,"line":2095},[86,19797,2041],{"class":99},[86,19799,19800,19802,19804],{"class":88,"line":2103},[86,19801,2047],{"class":120},[86,19803,1807],{"class":736},[86,19805,1956],{"class":120},[86,19807,19808,19810,19812,19814],{"class":88,"line":2111},[86,19809,2057],{"class":1898},[86,19811,1807],{"class":736},[86,19813,17911],{"class":110},[86,19815,1970],{"class":120},[86,19817,19818,19820,19822,19824],{"class":88,"line":2117},[86,19819,2070],{"class":1898},[86,19821,1807],{"class":736},[86,19823,17922],{"class":110},[86,19825,1970],{"class":120},[86,19827,19828,19830,19832,19834,19836],{"class":88,"line":2139},[86,19829,2083],{"class":1898},[86,19831,1807],{"class":736},[86,19833,770],{"class":120},[86,19835,17935],{"class":110},[86,19837,1970],{"class":120},[86,19839,19840,19843],{"class":88,"line":2150},[86,19841,19842],{"class":110},"            \"\u002Fmodel\u002Fmycar\u002Fodometry@nav_msgs\u002Fmsg\u002FOdometry@gz.msgs.Odometry\"",[86,19844,1970],{"class":120},[86,19846,19847,19850],{"class":88,"line":2167},[86,19848,19849],{"class":110},"            \"\u002Fmodel\u002Fmycar\u002Ftf@tf2_msgs\u002Fmsg\u002FTFMessage[gz.msgs.Pose_V\"",[86,19851,1970],{"class":120},[86,19853,19854,19857],{"class":88,"line":2182},[86,19855,19856],{"class":110},"            \"\u002Fclock@rosgraph_msgs\u002Fmsg\u002FClock[gz.msgs.Clock\"",[86,19858,1970],{"class":120},[86,19860,19861,19864],{"class":88,"line":2188},[86,19862,19863],{"class":110},"            \"\u002Fworld\u002Fempty\u002Fmodel\u002Fmycar\u002Fjoint_state@sensor_msgs\u002Fmsg\u002FJointState[gz.msgs.Model\"",[86,19865,1970],{"class":120},[86,19867,19868,19871],{"class":88,"line":2199},[86,19869,19870],{"class":110},"            \"\u002Fscan@sensor_msgs\u002Fmsg\u002FLaserScan@gz.msgs.LaserScan\"",[86,19872,1970],{"class":120},[86,19874,19875,19878],{"class":88,"line":2204},[86,19876,19877],{"class":110},"            \"\u002Fscan\u002Fpoints@sensor_msgs\u002Fmsg\u002FPointCloud2@gz.msgs.PointCloudPacked\"",[86,19879,1970],{"class":120},[86,19881,19882,19885],{"class":88,"line":2209},[86,19883,19884],{"class":110},"            \"\u002Fimage_raw@sensor_msgs\u002Fmsg\u002FImage@gz.msgs.Image\"",[86,19886,1970],{"class":120},[86,19888,19889,19892],{"class":88,"line":2218},[86,19890,19891],{"class":110},"            \"\u002Fcamera_info@sensor_msgs\u002Fmsg\u002FCameraInfo@gz.msgs.CameraInfo\"",[86,19893,1970],{"class":120},[86,19895,19896,19899],{"class":88,"line":2224},[86,19897,19898],{"class":110},"            \"\u002Fdepth_camera@sensor_msgs\u002Fmsg\u002FImage@gz.msgs.Image\"",[86,19900,1970],{"class":120},[86,19902,19903,19906],{"class":88,"line":2244},[86,19904,19905],{"class":110},"            \"\u002Fimu@sensor_msgs\u002Fmsg\u002FImu[gz.msgs.IMU\"",[86,19907,1970],{"class":120},[86,19909,19910],{"class":88,"line":2257},[86,19911,19912],{"class":110},"            \"\u002Fimu\u002Fangular_velocity@geometry_msgs\u002Fmsg\u002FVector3[gz.msgs.Vector3d\"\n",[86,19914,19915],{"class":88,"line":2263},[86,19916,19917],{"class":120},"        ],\n",[86,19919,19920,19922,19924,19926,19928,19930,19932],{"class":88,"line":2269},[86,19921,2120],{"class":1898},[86,19923,1807],{"class":736},[86,19925,2125],{"class":120},[86,19927,17980],{"class":110},[86,19929,1913],{"class":120},[86,19931,17985],{"class":110},[86,19933,2136],{"class":120},[86,19935,19936,19938,19940],{"class":88,"line":3759},[86,19937,2142],{"class":1898},[86,19939,1807],{"class":736},[86,19941,2147],{"class":120},[86,19943,19944,19947,19949,19951,19953],{"class":88,"line":3772},[86,19945,19946],{"class":120},"            (",[86,19948,18002],{"class":110},[86,19950,1886],{"class":120},[86,19952,18007],{"class":110},[86,19954,2164],{"class":120},[86,19956,19957,19959,19961,19963,19965],{"class":88,"line":3786},[86,19958,19946],{"class":120},[86,19960,18016],{"class":110},[86,19962,1847],{"class":120},[86,19964,18021],{"class":110},[86,19966,2164],{"class":120},[86,19968,19969,19971,19973,19975,19977],{"class":88,"line":3799},[86,19970,19946],{"class":120},[86,19972,18030],{"class":110},[86,19974,1847],{"class":120},[86,19976,18035],{"class":110},[86,19978,1576],{"class":120},[86,19980,19981],{"class":88,"line":3808},[86,19982,19917],{"class":120},[86,19984,19985,19987,19989],{"class":88,"line":3817},[86,19986,2191],{"class":1898},[86,19988,1807],{"class":736},[86,19990,18050],{"class":110},[86,19992,19993],{"class":88,"line":3832},[86,19994,1934],{"class":120},[86,19996,19997],{"class":88,"line":3841},[86,19998,93],{"emptyLinePlaceholder":92},[86,20000,20001,20003],{"class":88,"line":3854},[86,20002,2212],{"class":736},[86,20004,2215],{"class":120},[86,20006,20007],{"class":88,"line":3868},[86,20008,2221],{"class":120},[86,20010,20011],{"class":88,"line":3877},[86,20012,16141],{"class":120},[86,20014,20015],{"class":88,"line":3893},[86,20016,16146],{"class":120},[86,20018,20019],{"class":88,"line":3907},[86,20020,18081],{"class":120},[86,20022,20023],{"class":88,"line":3923},[86,20024,2272],{"class":120},[17,20026,20027],{},[21,20028,2285],{},[17,20030,2288],{},[76,20032,20033],{"className":78,"code":16159,"language":80,"meta":81,"style":81},[83,20034,20035],{"__ignoreMap":81},[86,20036,20037,20039,20041,20043,20045],{"class":88,"line":89},[86,20038,2298],{"class":106},[86,20040,2301],{"class":110},[86,20042,16170],{"class":550},[86,20044,13360],{"class":110},[86,20046,1542],{"class":110},[17,20048,20049],{},[21,20050,2316],{},[17,20052,2319],{},[76,20054,20055],{"className":78,"code":18116,"language":80,"meta":81,"style":81},[83,20056,20057,20063],{"__ignoreMap":81},[86,20058,20059,20061],{"class":88,"line":89},[86,20060,2329],{"class":550},[86,20062,2332],{"class":110},[86,20064,20065,20067,20069,20071],{"class":88,"line":96},[86,20066,237],{"class":106},[86,20068,240],{"class":110},[86,20070,2341],{"class":110},[86,20072,16207],{"class":110},[17,20074,20075,20076,20078,20079,20081,20082,20084],{},"这里",[83,20077,18625],{},"可能会被sdf1.10规范误报警告，不用管这个警告。实际上，这个版本的Gazebo会读取这个自定义标签",[83,20080,18625],{},"。\n在sdf1.12上貌似被改成了",[83,20083,16594],{},"。",[17,20086,20087,20088,20091,20092,20095,20096,20084],{},"你可以通过",[83,20089,20090],{},"ros2 topic echo \u002Fscan --once | grep frame_id","来查看scan的frame_id是否被修改成功了，修改成功会变成",[83,20093,20094],{},"laser","，否则会变成gazebo默认的",[83,20097,20098],{},"mycar\u002Fbase_footprint\u002Fgpu_lidar",[17,20100,20101,20102],{},"问题解决参考：",[26,20103,20104],{"href":20104,"rel":20105},"https:\u002F\u002Fgithub.com\u002Fgazebosim\u002Fgz-sensors\u002Fissues\u002F306",[30],[17,20107,18137],{},[17,20109,20110],{},"还可以启动rviz2，以查看机器人发布的诸多数据。终端中进入当前工作空间，调用如下指令执行launch文件：",[76,20112,20113],{"className":78,"code":18160,"language":80,"meta":81,"style":81},[83,20114,20115,20121],{"__ignoreMap":81},[86,20116,20117,20119],{"class":88,"line":89},[86,20118,2329],{"class":550},[86,20120,2332],{"class":110},[86,20122,20123],{"class":88,"line":96},[86,20124,18173],{"class":106},[17,20126,20127],{},[174,20128],{"alt":81,"src":20129},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1739.webp",[17,20131,20132],{},[174,20133],{"alt":81,"src":20134},"https:\u002F\u002Fcdn.tungchiahui.cn\u002Ftungwebsite\u002Fassets\u002Fimages\u002F2023\u002F12\u002F30\u002Fimage1740.webp",[17,20136,20137],{},"(把上面的全部复现，才能够进行下一章导航，下一章导航依然基于仿真)",[20139,20140,20141],"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":81,"searchDepth":96,"depth":96,"links":20143},[20144],{"id":14,"depth":103,"text":15},"1100-0300","2023-12-30","2023-12-30-ros2-tutorial","\u002Fwiki\u002F2023-12-30-ros2-tutorial","Ros2 Tutorial","md",false,{},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-gazebosim",{"title":5,"description":81},"wiki\u002F2023-12-30-ros2-tutorial\u002F1100-0300-GazeboSim","cs6EUjs8-rsqWaw3E1hQ3nsBQDfYpVd-p3hzsgPdaIU",[20158,20165,20171,20177,20183,20189,20195,20201,20207,20213,20219,20225,20231,20233,20239,20245,20251,20257,20263,20269,20275,20281,20287,20293,20299,20305,20311,20317,20323,20329,20335,20341,20347,20353,20359,20364,20370,20375,20381,20387,20393,20399,20405,20411,20417,20423,20429,20435,20441,20447,20453,20459,20465,20471,20477,20483,20489,20495,20501,20507,20513,20519,20525,20531,20537,20543,20549,20555,20561],{"path":20159,"stem":20160,"title":20161,"authors":20162,"date":20146,"chapterOrder":20163,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0100-ros2-jie-shao","wiki\u002F2023-12-30-ros2-tutorial\u002F0100-ROS2介绍","ROS2介绍",[7],"0100",0,{"path":20166,"stem":20167,"title":20168,"authors":20169,"date":20146,"chapterOrder":20170,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0200-ru-men-cao-zuo","wiki\u002F2023-12-30-ros2-tutorial\u002F0200-入门操作","入门操作",[7],"0200",{"path":20172,"stem":20173,"title":20174,"authors":20175,"date":20146,"chapterOrder":20176,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0300-gong-zuo-kong-jian-yu-gong-neng-bao","wiki\u002F2023-12-30-ros2-tutorial\u002F0300-工作空间与功能包","工作空间与功能包",[7],"0300",{"path":20178,"stem":20179,"title":20180,"authors":20181,"date":20146,"chapterOrder":20182,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0400-si-da-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F0400-四大通信","四大通信",[7],"0400",{"path":20184,"stem":20185,"title":20186,"authors":20187,"date":20146,"chapterOrder":20188,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0500-ros2-qi-ta-tong-xin-ji-zhi","wiki\u002F2023-12-30-ros2-tutorial\u002F0500-ROS2其他通信机制","ROS2其他通信机制",[7],"0500",{"path":20190,"stem":20191,"title":20192,"authors":20193,"date":20146,"chapterOrder":20194,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0600-launch","wiki\u002F2023-12-30-ros2-tutorial\u002F0600-Launch","Launch",[7],"0600",{"path":20196,"stem":20197,"title":20198,"authors":20199,"date":20146,"chapterOrder":20200,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0700-hui-su-rosbag2","wiki\u002F2023-12-30-ros2-tutorial\u002F0700-回溯rosbag2","回溯rosbag2",[7],"0700",{"path":20202,"stem":20203,"title":20204,"authors":20205,"date":20146,"chapterOrder":20206,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0800-zuo-biao-bian-huan-tf","wiki\u002F2023-12-30-ros2-tutorial\u002F0800-坐标变换TF","坐标变换TF",[7],"0800",{"path":20208,"stem":20209,"title":20210,"authors":20211,"date":20146,"chapterOrder":20212,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F0900-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","wiki\u002F2023-12-30-ros2-tutorial\u002F0900-可视化平台RVIZ2与URDF建模语言","可视化平台RVIZ2与URDF建模语言",[7],"0900",{"path":20214,"stem":20215,"title":20216,"authors":20217,"date":20146,"chapterOrder":20218,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1000-stage-ros2-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1000-Stage_Ros2仿真平台","Stage_Ros2仿真平台",[7],"1000",{"path":20220,"stem":20221,"title":20222,"authors":20223,"date":20146,"chapterOrder":20224,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-gazeboclassic","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-0100-GazeboClassic","Gezebo Classic",[7],"1100-0100",{"path":20226,"stem":20227,"title":20228,"authors":20229,"date":20146,"chapterOrder":20230,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0200-ignitiongazebo","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-0200-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）",[7],"1100-0200",{"path":20153,"stem":20155,"title":5,"authors":20232,"date":20146,"chapterOrder":20145,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},[7],{"path":20234,"stem":20235,"title":20236,"authors":20237,"date":20146,"chapterOrder":20238,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-0400-igngz2gzsim","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-0400-Igngz2gzsim","将Ign Gazebo迁移至Gz Sim",[7],"1100-0400",{"path":20240,"stem":20241,"title":20242,"authors":20243,"date":20146,"chapterOrder":20244,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1100-gezebo-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1100-Gezebo仿真平台","Gezebo仿真平台",[7],"1100",{"path":20246,"stem":20247,"title":20248,"authors":20249,"date":20146,"chapterOrder":20250,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0100-humble-ban-ben","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0100-Humble版本","Humble导航仿真",[7],"1200-0100",{"path":20252,"stem":20253,"title":20254,"authors":20255,"date":20146,"chapterOrder":20256,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0200-jazzy-ban-ben","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0200-Jazzy版本","Jazzy导航仿真",[7],"1200-0200",{"path":20258,"stem":20259,"title":20260,"authors":20261,"date":20146,"chapterOrder":20262,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-humble2jazzy","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0300-Humble2Jazzy","Humble与Jazzy导航的差异",[7],"1200-0300",{"path":20264,"stem":20265,"title":20266,"authors":20267,"date":20146,"chapterOrder":20268,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0100-you-xian-zhuang-tai-ji-fsm","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0100-有限状态机FSM","有限状态机（Finite State Machine）",[7],"1200-0400-0100",{"path":20270,"stem":20271,"title":20272,"authors":20273,"date":20146,"chapterOrder":20274,"chapterDepth":103,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0100-ji-ben-gai-nian","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0100-基本概念","基本概念",[7],"1200-0400-0200-0100",{"path":20276,"stem":20277,"title":20278,"authors":20279,"date":20146,"chapterOrder":20280,"chapterDepth":103,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0200-kong-zhi-yu-zhuang-shi-gui-ze","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0200-控制与装饰规则","控制与装饰规则",[7],"1200-0400-0200-0200",{"path":20282,"stem":20283,"title":20284,"authors":20285,"date":20146,"chapterOrder":20286,"chapterDepth":103,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0300-di-yi-ge-wan-zheng-cheng-xu","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0300-第一个完整程序","第一个完整程序",[7],"1200-0400-0200-0300",{"path":20288,"stem":20289,"title":20290,"authors":20291,"date":20146,"chapterOrder":20292,"chapterDepth":103,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0400-jie-dian-zhi-jian-chuan-shu-ju","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0400-节点之间传数据","节点之间传数据",[7],"1200-0400-0200-0400",{"path":20294,"stem":20295,"title":20296,"authors":20297,"date":20146,"chapterOrder":20298,"chapterDepth":103,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0500-chi-xu-ren-wu-yu-zhong-zhi","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0500-持续任务与中止","持续任务与中止",[7],"1200-0400-0200-0500",{"path":20300,"stem":20301,"title":20302,"authors":20303,"date":20146,"chapterOrder":20304,"chapterDepth":103,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0600-zu-he-shi-ji-ren-wu","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-0600-组合实际任务","组合实际任务",[7],"1200-0400-0200-0600",{"path":20306,"stem":20307,"title":20308,"authors":20309,"date":20146,"chapterOrder":20310,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-xing-wei-shu-bt","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-0200-行为树BT","行为树（BehaviorTree.CPP）",[7],"1200-0400-0200",{"path":20312,"stem":20313,"title":20314,"authors":20315,"date":20146,"chapterOrder":20316,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-fsm-yu-bt","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-0400-FSM与BT","有限状态机FSM与行为树BT",[7],"1200-0400",{"path":20318,"stem":20319,"title":20320,"authors":20321,"date":20146,"chapterOrder":20322,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1200-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","wiki\u002F2023-12-30-ros2-tutorial\u002F1200-机器人导航Navigation2(仿真篇)","机器人导航Navigation2(仿真篇)",[7],"1200",{"path":20324,"stem":20325,"title":20326,"authors":20327,"date":20146,"chapterOrder":20328,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0100-boost-aiso","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0100-Boost.Aiso","Boost.Asio库",[7],"1300-0100-0100",{"path":20330,"stem":20331,"title":20332,"authors":20333,"date":20146,"chapterOrder":20334,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0200-ros2-serial-driver","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-0200-ros2_serial_driver","ROS2 Serial Driver库",[7],"1300-0100-0200",{"path":20336,"stem":20337,"title":20338,"authors":20339,"date":20146,"chapterOrder":20340,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-chuan-kou-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0100-串口通信","UART串口通信",[7],"1300-0100",{"path":20342,"stem":20343,"title":20344,"authors":20345,"date":20146,"chapterOrder":20346,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0100-socketcan","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0100-socketcan","SocketCAN",[7],"1300-0200-0100",{"path":20348,"stem":20349,"title":20350,"authors":20351,"date":20146,"chapterOrder":20352,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0200-ros2-socketcan","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-0200-ros2_socketcan","ROS2_SocketCAN",[7],"1300-0200-0200",{"path":20354,"stem":20355,"title":20356,"authors":20357,"date":20146,"chapterOrder":20358,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-can-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0200-CAN通信","CAN通信",[7],"1300-0200",{"path":20360,"stem":20361,"title":20326,"authors":20362,"date":20146,"chapterOrder":20363,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-0100-boost-aiso","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-0100-Boost.Aiso",[7],"1300-0300-0100",{"path":20365,"stem":20366,"title":20367,"authors":20368,"date":20146,"chapterOrder":20369,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-tcp-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0300-TCP通信","TCP通信",[7],"1300-0300",{"path":20371,"stem":20372,"title":20326,"authors":20373,"date":20146,"chapterOrder":20374,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-0100-boost-aiso","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-0100-Boost.Aiso",[7],"1300-0400-0100",{"path":20376,"stem":20377,"title":20378,"authors":20379,"date":20146,"chapterOrder":20380,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-udp-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-0400-UDP通信","UDP通信",[7],"1300-0400",{"path":20382,"stem":20383,"title":20384,"authors":20385,"date":20146,"chapterOrder":20386,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1300-linux-ying-jian-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002F1300-Linux硬件通信","Linux硬件通信",[7],"1300",{"path":20388,"stem":20389,"title":20390,"authors":20391,"date":20146,"chapterOrder":20392,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0100-ji-qi-ren-zu-cheng","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0100-机器人组成","机器人组成",[7],"1400-0100",{"path":20394,"stem":20395,"title":20396,"authors":20397,"date":20146,"chapterOrder":20398,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0100-yuan-cheng-kai-fa-ssh","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0100-远程开发SSH","远程开发SSH",[7],"1400-0200-0100",{"path":20400,"stem":20401,"title":20402,"authors":20403,"date":20146,"chapterOrder":20404,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0200-yuan-cheng-fang-wen-zhuo-mian","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-0200-远程访问桌面","远程访问桌面",[7],"1400-0200-0200",{"path":20406,"stem":20407,"title":20408,"authors":20409,"date":20146,"chapterOrder":20410,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-gong-kong-ji-zhi-yuan-cheng-kai-fa-huan-jing","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0200-工控机之远程开发环境","工控机之远程开发环境",[7],"1400-0200",{"path":20412,"stem":20413,"title":20414,"authors":20415,"date":20146,"chapterOrder":20416,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0300-gong-kong-ji-zhi-wai-jie-usb-she-bei","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0300-工控机之外接USB设备","工控机之外接USB设备",[7],"1400-0300",{"path":20418,"stem":20419,"title":20420,"authors":20421,"date":20146,"chapterOrder":20422,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0400-fen-bu-shi-da-jian","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0400-分布式搭建","分布式搭建",[7],"1400-0400",{"path":20424,"stem":20425,"title":20426,"authors":20427,"date":20146,"chapterOrder":20428,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-you-hua-ri-zhi","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0500-优化日志","优化日志",[7],"1400-0500",{"path":20430,"stem":20431,"title":20432,"authors":20433,"date":20146,"chapterOrder":20434,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0100-li-cheng-ji-odom","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0100-里程计Odom","里程计Odom",[7],"1400-0600-0100",{"path":20436,"stem":20437,"title":20438,"authors":20439,"date":20146,"chapterOrder":20440,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0200-guan-xing-ji-imu","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0200-惯性计IMU","惯性计IMU",[7],"1400-0600-0200",{"path":20442,"stem":20443,"title":20444,"authors":20445,"date":20146,"chapterOrder":20446,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0300-ji-guang-lei-da-lidar","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0300-激光雷达LiDAR","激光雷达LiDAR",[7],"1400-0600-0300",{"path":20448,"stem":20449,"title":20450,"authors":20451,"date":20146,"chapterOrder":20452,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0400-xiang-ji-camera","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0400-相机Camera","相机Camera",[7],"1400-0600-0400",{"path":20454,"stem":20455,"title":20456,"authors":20457,"date":20146,"chapterOrder":20458,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0500-quan-qiu-ding-wei-gnss","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0500-全球定位GNSS","全球定位GNSS",[7],"1400-0600-0500",{"path":20460,"stem":20461,"title":20462,"authors":20463,"date":20146,"chapterOrder":20464,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0600-shou-bing-joy","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0600-手柄joy","手柄JOY",[7],"1400-0600-0600",{"path":20466,"stem":20467,"title":20468,"authors":20469,"date":20146,"chapterOrder":20470,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0700-jian-pan-kong-zhi-jie-dian","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-0700-键盘控制节点","键盘控制节点",[7],"1400-0600-0700",{"path":20472,"stem":20473,"title":20474,"authors":20475,"date":20146,"chapterOrder":20476,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-ying-jian-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0600-硬件平台","硬件平台",[7],"1400-0600",{"path":20478,"stem":20479,"title":20480,"authors":20481,"date":20146,"chapterOrder":20482,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0700-zuo-biao-xi-yu-hua-ti-guan-xi","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0700-坐标系与话题关系","坐标系与话题关系",[7],"1400-0700",{"path":20484,"stem":20485,"title":20486,"authors":20487,"date":20146,"chapterOrder":20488,"chapterDepth":103,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0100-lun-shi-li-cheng-ji-biao-ding","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0100-轮式里程计标定","轮式里程计标定",[7],"1400-0800-0100-0100",{"path":20490,"stem":20491,"title":20492,"authors":20493,"date":20146,"chapterOrder":20494,"chapterDepth":103,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0200-lun-shi-li-cheng-ji-yu-imu-rong-he","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-0200-轮式里程计与IMU融合","轮式里程计与IMU融合",[7],"1400-0800-0100-0200",{"path":20496,"stem":20497,"title":20498,"authors":20499,"date":20146,"chapterOrder":20500,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-lun-shi-li-cheng-ji-biao-ding-yu-rong-he","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0100-轮式里程计标定与融合","轮式里程计标定与融合",[7],"1400-0800-0100",{"path":20502,"stem":20503,"title":20504,"authors":20505,"date":20146,"chapterOrder":20506,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0200-ji-guang-lei-da-gong-ju","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0200-激光雷达工具","激光雷达工具",[7],"1400-0800-0200",{"path":20508,"stem":20509,"title":20510,"authors":20511,"date":20146,"chapterOrder":20512,"chapterDepth":96,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0300-xiang-ji-shi-yong-jin-jie","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-0300-相机使用进阶","相机使用进阶",[7],"1400-0800-0300",{"path":20514,"stem":20515,"title":20516,"authors":20517,"date":20146,"chapterOrder":20518,"chapterDepth":89,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-ying-jian-ping-tai-jin-jie","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-0800-硬件平台进阶","硬件平台进阶",[7],"1400-0800",{"path":20520,"stem":20521,"title":20522,"authors":20523,"date":20146,"chapterOrder":20524,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1400-ji-qi-ren-ying-jian","wiki\u002F2023-12-30-ros2-tutorial\u002F1400-机器人硬件","机器人硬件",[7],"1400",{"path":20526,"stem":20527,"title":20528,"authors":20529,"date":20146,"chapterOrder":20530,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1500-ros2-control","wiki\u002F2023-12-30-ros2-tutorial\u002F1500-ROS2_Control","ROS2_Control",[7],"1500",{"path":20532,"stem":20533,"title":20534,"authors":20535,"date":20146,"chapterOrder":20536,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1600-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","wiki\u002F2023-12-30-ros2-tutorial\u002F1600-Moveit2工业机器人机械臂","Moveit2工业机器人机械臂",[7],"1600",{"path":20538,"stem":20539,"title":20540,"authors":20541,"date":20146,"chapterOrder":20542,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1700-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","wiki\u002F2023-12-30-ros2-tutorial\u002F1700-机器人导航Navigation2(实体篇)","机器人导航Navigation2(实体篇)",[7],"1700",{"path":20544,"stem":20545,"title":20546,"authors":20547,"date":20146,"chapterOrder":20548,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1800-microros","wiki\u002F2023-12-30-ros2-tutorial\u002F1800-MicroROS","MicroROS",[7],"1800",{"path":20550,"stem":20551,"title":20552,"authors":20553,"date":20146,"chapterOrder":20554,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F1900-webots-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002F1900-Webots仿真平台","Webots仿真平台",[7],"1900",{"path":20556,"stem":20557,"title":20558,"authors":20559,"date":20146,"chapterOrder":20560,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":20151},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002F2000-opencv","wiki\u002F2023-12-30-ros2-tutorial\u002F2000-OpenCV","OpenCV",[7],"2000",{"path":20148,"stem":20562,"title":20563,"authors":20564,"date":20146,"chapterOrder":20565,"chapterDepth":20164,"docKey":20147,"docRoot":20148,"docTitle":20149,"isWikiDoc":92,"isWikiIndex":92},"wiki\u002F2023-12-30-ros2-tutorial\u002Findex","ROS2机器人操作系统教程",[7],null,[20567,20569,20572,20575],{"name":7,"image":20568},"\u002Fimages\u002Fmember_photo\u002F董佳辉.jpg",{"name":20570,"image":20571},"宫金良","\u002Fimages\u002Fmember_photo\u002F宫金良.jpg",{"name":20573,"image":20574},"巩丽","\u002Fimages\u002Fmember_photo\u002F巩丽.png",{"name":20576,"image":20577},"张彦斐","\u002Fimages\u002Fmember_photo\u002F张彦斐.jpg",1792431902124]