[{"data":1,"prerenderedAt":20301},["ShallowReactive",2],{"wiki-page-/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim":3,"wiki-doc-items-/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim":20157},{"id":4,"title":5,"body":6,"chapter":20143,"chapterSort":20144,"date":20145,"description":79,"docKey":20146,"docRoot":20147,"docTitle":20148,"extension":20149,"isWikiDoc":90,"isWikiIndex":20150,"layout":20151,"meta":20152,"navigation":90,"path":20153,"seo":20154,"stem":20155,"wikiDepth":87,"__hash__":20156},"content/wiki/2023-12-30-ros2-tutorial/ch11-3-GazeboSim.md","Gz Sim（Gazebo Harmonic）",{"type":7,"value":8,"toc":20140},"minimark",[9,14,31,36,43,46,52,58,65,70,73,169,175,180,183,186,223,226,245,252,257,262,265,270,273,276,281,288,294,299,304,309,314,319,324,329,337,342,428,433,438,443,448,453,458,461,466,480,485,488,491,496,501,505,508,519,522,527,534,579,582,601,604,609,614,621,642,656,661,667,691,694,699,702,705,710,713,739,750,753,756,776,779,782,790,793,799,802,814,817,829,832,844,847,871,876,883,886,1337,1340,1476,1479,1504,1508,1515,1520,1523,1541,1546,1551,1554,1575,1578,1583,1588,1591,1596,1601,1608,1611,1616,1619,1640,1645,1650,1653,2271,2274,2279,2284,2287,2305,2310,2315,2318,2343,2346,2362,2365,2388,2393,2400,2403,2408,2455,2458,2463,2483,2488,2491,2643,2646,2832,2835,2996,3001,3008,3011,3014,3017,3022,3027,6239,6244,6323,6326,9208,9213,9216,9404,9409,9411,9425,9430,9432,9454,9457,9460,9465,9471,9474,9479,9482,9488,9491,9498,9503,9506,9550,9556,9561,9576,9581,9584,9587,13257,13261,13263,13277,13281,13283,13303,13305,13310,13314,13317,13324,13329,13335,13372,13378,13383,13389,13460,13466,13497,13512,13519,13524,13531,15372,15379,15459,15464,15467,15724,15727,15732,15735,16149,16153,16155,16173,16177,16180,16206,16208,16213,16217,16220,16226,16232,16237,16243,16254,16341,16344,16347,16465,16470,16477,16809,16814,17146,17153,17523,17528,17531,18084,18088,18090,18106,18110,18112,18133,18136,18150,18153,18156,18172,18175,18183,18188,18192,18198,18212,18286,18289,18294,18299,18302,19192,19195,19358,19365,19368,19416,19419,19424,19426,20023,20027,20029,20045,20049,20051,20071,20083,20097,20104,20106,20109,20123,20128,20133,20136],[10,11,13],"h3",{"id":12},"gz-simgazebo-harmonic-及之后的版本ros2-jazzy及之后的版本","Gz Sim（Gazebo Harmonic 及之后的版本（ROS2 Jazzy及之后的版本））",[15,16,17,18,22,23,30],"p",{},"新版Gazebo 是 ROS2 中使用的全新机器人仿真工具，",[19,20,21],"strong",{},"它是 Gazebo 的升级版本","。在Humble他叫Ignition Gazebo(也叫Gazebo Fortress)，在Jazzy中叫Gazebo Harmonic(去掉了Ignition的名字)(",[24,25,29],"a",{"href":26,"rel":27},"https://community.gazebosim.org/t/a-new-era-for-gazebo/1356)%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",[28],"nofollow","https://community.gazebosim.org/t/a-new-era-for-gazebo/1356)。它具备更好的性能和可用性，并通过紧密集成"," ROS2 来提供强大的仿真环境。",[32,33,35],"h4",{"id":34},"gazebo安装与运行","Gazebo安装与运行",[15,37,38,39],{},"官方教程：\n",[24,40,41],{"href":41,"rel":42},"https://docs.ros.org/en/jazzy/Tutorials/Advanced/Simulators/Gazebo/Gazebo.html",[28],[15,44,45],{},"下面这个网站是官方教程(ROS2 Jazzy 的 Gazebo Harmonic)：",[15,47,48],{},[24,49,50],{"href":50,"rel":51},"https://gazebosim.org/docs/harmonic/getstarted/",[28],[15,53,54],{},[24,55,56],{"href":56,"rel":57},"https://gazebosim.org/docs/harmonic/library_reference_nav/",[28],[15,59,60,61],{},"源码：",[24,62,63],{"href":63,"rel":64},"https://github.com/gazebosim/docs/blob/master/harmonic/tutorials",[28],[15,66,67],{},[19,68,69],{},"安装",[15,71,72],{},"Gazebo 是不依赖于ROS2的一个独立的项目，可以独自安装。但是如果安装了ROS2，在ROS2存储库中已经集成了对应版本的 Gazebo，可以调用如下指令直接安装：",[74,75,80],"pre",{"className":76,"code":77,"language":78,"meta":79,"style":79},"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","",[81,82,83,92,99,123,128,134,146,151,157],"code",{"__ignoreMap":79},[84,85,88],"span",{"class":86,"line":87},"line",1,[84,89,91],{"emptyLinePlaceholder":90},true,"\n",[84,93,95],{"class":86,"line":94},2,[84,96,98],{"class":97},"sJ8bj","# 通用命令\n",[84,100,102,106,110,113,116,120],{"class":86,"line":101},3,[84,103,105],{"class":104},"sScJk","sudo",[84,107,109],{"class":108},"sZZnC"," apt",[84,111,112],{"class":108}," install",[84,114,115],{"class":108}," ros-",[84,117,119],{"class":118},"sVt8B","${ROS_DISTRO}",[84,121,122],{"class":108},"-ros-gz\n",[84,124,126],{"class":86,"line":125},4,[84,127,91],{"emptyLinePlaceholder":90},[84,129,131],{"class":86,"line":130},5,[84,132,133],{"class":97},"# Humble版本\n",[84,135,137,139,141,143],{"class":86,"line":136},6,[84,138,105],{"class":104},[84,140,109],{"class":108},[84,142,112],{"class":108},[84,144,145],{"class":108}," ros-humble-ros-gz\n",[84,147,149],{"class":86,"line":148},7,[84,150,91],{"emptyLinePlaceholder":90},[84,152,154],{"class":86,"line":153},8,[84,155,156],{"class":97},"# Jazzy版本\n",[84,158,160,162,164,166],{"class":86,"line":159},9,[84,161,105],{"class":104},[84,163,109],{"class":108},[84,165,112],{"class":108},[84,167,168],{"class":108}," ros-jazzy-ros-gz\n",[15,170,171],{},[172,173],"img",{"alt":79,"src":174},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1705.webp",[15,176,177],{},[19,178,179],{},"运行",[15,181,182],{},"Gazebo 安装完毕之后，可以通过两种方式启动。",[15,184,185],{},"方式1，以Gazebo 的方式启动，指令如下：",[74,187,189],{"className":76,"code":188,"language":78,"meta":79,"style":79},"\n# Humble版本\nign gazebo\n\n# Jazzy版本\ngz sim\n",[81,190,191,195,199,207,211,215],{"__ignoreMap":79},[84,192,193],{"class":86,"line":87},[84,194,91],{"emptyLinePlaceholder":90},[84,196,197],{"class":86,"line":94},[84,198,133],{"class":97},[84,200,201,204],{"class":86,"line":101},[84,202,203],{"class":104},"ign",[84,205,206],{"class":108}," gazebo\n",[84,208,209],{"class":86,"line":125},[84,210,91],{"emptyLinePlaceholder":90},[84,212,213],{"class":86,"line":130},[84,214,156],{"class":97},[84,216,217,220],{"class":86,"line":136},[84,218,219],{"class":104},"gz",[84,221,222],{"class":108}," sim\n",[15,224,225],{},"方式2，以ROS2的方式 启动，指令如下 ：",[74,227,229],{"className":76,"code":228,"language":78,"meta":79,"style":79},"ros2 launch ros_gz_sim gz_sim.launch.py\n",[81,230,231],{"__ignoreMap":79},[84,232,233,236,239,242],{"class":86,"line":87},[84,234,235],{"class":104},"ros2",[84,237,238],{"class":108}," launch",[84,240,241],{"class":108}," ros_gz_sim",[84,243,244],{"class":108}," gz_sim.launch.py\n",[15,246,247,248,251],{},"二者运行结果一致，如下图所示：在弹出窗口中，选择仿真环境然后点击",[81,249,250],{},"run","按钮即可运行。",[15,253,254],{},[172,255],{"alt":79,"src":256},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1706.webp",[15,258,259],{},[19,260,261],{},"界面介绍",[15,263,264],{},"接下来以Empty仿真环境为例，介绍一下Gazebo的界面组成。",[15,266,267],{},[172,268],{"alt":79,"src":269},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1707.webp",[15,271,272],{},"注意：如果你的Gazebo不卡，但是Gazebo巨卡的话，请确认Gazebo是以独显打开的，而不是核显。",[15,274,275],{},"如果不会切换应用显卡，可以直接把核显关闭掉，从混合输出切换为独立显卡输出。",[15,277,278],{},[19,279,280],{},"工具栏",[282,283,284],"ul",{},[285,286,287],"li",{},"顶部的工具栏包含两个按钮，左侧的文件菜单按钮（水平条纹）和右侧的插件按钮（垂直省略号）。",[289,290,291],"ol",{},[285,292,293],{},"文件菜单按钮（水平条纹）",[15,295,296],{},[172,297],{"alt":79,"src":298},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1708.webp",[282,300,301],{},[285,302,303],{},"文件菜单按钮包含将仿真环境保存到文件、保存和加载界面配置以及自定义界面样式等设置。",[289,305,306],{"start":94},[285,307,308],{},"右侧的插件按钮（垂直省略号）",[15,310,311],{},[172,312],{"alt":79,"src":313},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1709.webp",[282,315,316],{},[285,317,318],{},"插件按钮列出了所有可用的插件。点击后会弹出插件列表，向下滚动此列表以查看所有插件。 当选择一个时，其界面将出现在右侧面板中。",[15,320,321],{},[19,322,323],{},"3D视窗",[282,325,326],{},[285,327,328],{},"左上方工具栏包含多种几何体（球体、框体、圆柱体）按钮和变换控件。通过集合体按钮可以直接将盒子、球体或圆柱体模型插入仿真环境。只需单击要插入的形状，然后将其放入环境中。该形状将自动捕捉到地平面上。",[15,330,331,334],{},[172,332],{"alt":79,"src":333},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1710.webp",[172,335],{"alt":79,"src":336},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1711.webp",[282,338,339],{},[285,340,341],{},"主视图会显示仿真环境，我们可以通过鼠标以不同方式来导航场景，相关操作如下：",[74,343,345],{"className":76,"code":344,"language":78,"meta":79,"style":79},"左键单击：选择实体\n右键单击：打开带有选项的菜单：\n   Move to：移动到以实体为中心的场景\n   Follow：选择一个实体让视图保持居中，无论是移动还是平移\n   Remove：从模拟中删除实体\n   Copy：复制实体\n   Past: 粘贴实体\n   View：显示实体的重心（Center of Mass）、碰撞边界（Collisions）、惯性（Inertia）、\n         关节（Joints）、坐标系（Frames）、透明度（Transparent）、线框（Wireframe）等属性\n左键单击并拖动：在场景中平移\n右键单击并拖动：放大和缩小\n滚轮向前/向后：放大和缩小\n滚轮单击并拖动：旋转场景\n",[81,346,347,352,357,365,370,375,380,388,399,404,410,416,422],{"__ignoreMap":79},[84,348,349],{"class":86,"line":87},[84,350,351],{"class":104},"左键单击：选择实体\n",[84,353,354],{"class":86,"line":94},[84,355,356],{"class":104},"右键单击：打开带有选项的菜单：\n",[84,358,359,362],{"class":86,"line":101},[84,360,361],{"class":104},"   Move",[84,363,364],{"class":108}," to：移动到以实体为中心的场景\n",[84,366,367],{"class":86,"line":125},[84,368,369],{"class":104},"   Follow：选择一个实体让视图保持居中，无论是移动还是平移\n",[84,371,372],{"class":86,"line":130},[84,373,374],{"class":104},"   Remove：从模拟中删除实体\n",[84,376,377],{"class":86,"line":136},[84,378,379],{"class":104},"   Copy：复制实体\n",[84,381,382,385],{"class":86,"line":148},[84,383,384],{"class":104},"   Past:",[84,386,387],{"class":108}," 粘贴实体\n",[84,389,390,393,396],{"class":86,"line":153},[84,391,392],{"class":104},"   View：显示实体的重心（Center",[84,394,395],{"class":108}," of",[84,397,398],{"class":108}," Mass）、碰撞边界（Collisions）、惯性（Inertia）、\n",[84,400,401],{"class":86,"line":159},[84,402,403],{"class":104},"         关节（Joints）、坐标系（Frames）、透明度（Transparent）、线框（Wireframe）等属性\n",[84,405,407],{"class":86,"line":406},10,[84,408,409],{"class":104},"左键单击并拖动：在场景中平移\n",[84,411,413],{"class":86,"line":412},11,[84,414,415],{"class":104},"右键单击并拖动：放大和缩小\n",[84,417,419],{"class":86,"line":418},12,[84,420,421],{"class":104},"滚轮向前/向后：放大和缩小\n",[84,423,425],{"class":86,"line":424},13,[84,426,427],{"class":104},"滚轮单击并拖动：旋转场景\n",[282,429,430],{},[285,431,432],{},"想移动这个球，需要点左上角的移动模式，再左键单击选中物体",[15,434,435],{},[172,436],{"alt":79,"src":437},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1712.webp",[15,439,440],{},[172,441],{"alt":79,"src":442},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1713.webp",[282,444,445],{},[285,446,447],{},"在视窗的底部，从左到右分别是是播放、步长按钮和实时因子（Real-Time Factor，RTF）。点击播放按钮将开始运行仿真环境， 再次点击可以暂停运行。步长按钮用于设置仿真时间的离散单位，可以通过将鼠标悬停在按钮上来自定义步长。实时因子表示仿真运行速度相对于真实时间的比例。",[15,449,450],{},[172,451],{"alt":79,"src":452},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1714.webp",[15,454,455],{},[19,456,457],{},"右侧面板",[15,459,460],{},"右侧面板用于显示插件，当前仿真环境默认包含两个插件：Model和Entity Tree。",[15,462,463],{},[172,464],{"alt":79,"src":465},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1715.webp",[282,467,468,471,474,477],{},[285,469,470],{},"Entity Tree 中会显示仿真环境中的实体列表；",[285,472,473],{},"点击Entity Tree中的实体后，可以在Model中显示该实体的相关信息。",[285,475,476],{},"也可以按住 Ctrl 并单击以选择多个实体；",[285,478,479],{},"还可以右键单击任何插件以打开基本设置或关闭。",[15,481,482],{},[172,483],{"alt":79,"src":484},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1716.webp",[15,486,487],{},"在Gazebo中内置了许多插件，可以点击工具栏的右侧按钮自行添加，比如：可以选择 Grid Config 插件调整世界网格的特征，包括单元格大小、网格位置、单元格计数、或颜色等。",[15,489,490],{},"后期随着应用的深入，也会陆续介绍其他一些插件。",[15,492,493],{},[172,494],{"alt":79,"src":495},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1717.webp",[15,497,498],{},[172,499],{"alt":79,"src":500},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1718.webp",[32,502,504],{"id":503},"与ros2集成","与ROS2集成",[15,506,507],{},"本节将介绍如何实现Ignition Gazebo与ROS2的集成，以实现二者之间的交互，比如，可以通过ROS2的键盘控制节点控制机器人运动，并且在rviz2中显示机器人的里程计(odom)数据。其流程大致如下：",[289,509,510,513,516],{},[285,511,512],{},"启动 Ignition Gazebo 仿真环境；",[285,514,515],{},"通过 ros_gz_bridge 建立 ROS2 与 Ignition Gazebo 的连接；",[285,517,518],{},"启动 ROS2 相关节点实现与 Ignition Gazebo 的数据收发。",[15,520,521],{},"Ignition Gazebo与ROS2的的所有集成实现，基本都遵循上述流程。",[15,523,524],{},[19,525,526],{},"启动仿真环境",[15,528,529,530,533],{},"在 Ignition Gazebo 安装时，已经内置了一些仿真环境，直接启动即可。在此我们可以使用名为",[81,531,532],{},"visualize_lidar.sdf","的仿真文件，该文件对应的仿真环境中包括了差速机器人以及激光雷达的仿真。启动指令如下：",[74,535,537],{"className":76,"code":536,"language":78,"meta":79,"style":79},"ign gazebo -v 4 -r visualize_lidar.sdf\n#或者\ngz sim -v 4 -r visualize_lidar.sdf\n",[81,538,539,559,564],{"__ignoreMap":79},[84,540,541,543,546,550,553,556],{"class":86,"line":87},[84,542,203],{"class":104},[84,544,545],{"class":108}," gazebo",[84,547,549],{"class":548},"sj4cs"," -v",[84,551,552],{"class":548}," 4",[84,554,555],{"class":548}," -r",[84,557,558],{"class":108}," visualize_lidar.sdf\n",[84,560,561],{"class":86,"line":94},[84,562,563],{"class":97},"#或者\n",[84,565,566,568,571,573,575,577],{"class":86,"line":101},[84,567,219],{"class":104},[84,569,570],{"class":108}," sim",[84,572,549],{"class":548},[84,574,552],{"class":548},[84,576,555],{"class":548},[84,578,558],{"class":108},[15,580,581],{},"或者也可以以ROS2 launch的方式启动，指令如下：",[74,583,585],{"className":76,"code":584,"language":78,"meta":79,"style":79},"ros2 launch ros_gz_sim gz_sim.launch.py gz_args:=\"-v 4 -r visualize_lidar.sdf\"\n",[81,586,587],{"__ignoreMap":79},[84,588,589,591,593,595,598],{"class":86,"line":87},[84,590,235],{"class":104},[84,592,238],{"class":108},[84,594,241],{"class":108},[84,596,597],{"class":108}," gz_sim.launch.py",[84,599,600],{"class":108}," gz_args:=\"-v 4 -r visualize_lidar.sdf\"\n",[15,602,603],{},"两种方式本质相同，都是启动了Ignition Gazebo并且加载了visualize_lidar.sdf文件。",[15,605,606],{},[172,607],{"alt":79,"src":608},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1719.webp",[15,610,611],{},[19,612,613],{},"建立连接",[15,615,616,617,620],{},"虽然仿真环境中的机器人已经配置了运动控制插件，可以通过",[81,618,619],{},"/model/vehicle_blue/cmd_vel","话题订阅速度指令并运动，但是Gazebo与ROS2中的消息格式并不一致，所以还需要通过ros_gz_bridge这一桥接功能包，实现二者之间消息的转换，调用指令如下：",[74,622,624],{"className":76,"code":623,"language":78,"meta":79,"style":79},"ros2 run ros_gz_bridge parameter_bridge /model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist]gz.msgs.Twist\n",[81,625,626],{"__ignoreMap":79},[84,627,628,630,633,636,639],{"class":86,"line":87},[84,629,235],{"class":104},[84,631,632],{"class":108}," run",[84,634,635],{"class":108}," ros_gz_bridge",[84,637,638],{"class":108}," parameter_bridge",[84,640,641],{"class":108}," /model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist]gz.msgs.Twist\n",[15,643,644,645,647,648,651,652,655],{},"通过该指令可以将发布在",[81,646,619],{},"话题上的",[81,649,650],{},"geometry_msgs/msg/Twist","类型的ROS2消息转换成可以被Gzebo识别的",[81,653,654],{},"gz.msgs.Twist","类型的消息。",[15,657,658],{},[19,659,660],{},"启动ROS2节点",[15,662,663,664,666],{},"启动ROS2的键盘控制节点，并将话题重映射为",[81,665,619],{},"，指令如下：",[74,668,670],{"className":76,"code":669,"language":78,"meta":79,"style":79},"ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -r /cmd_vel:=/model/vehicle_blue/cmd_vel\n",[81,671,672],{"__ignoreMap":79},[84,673,674,676,678,681,683,686,688],{"class":86,"line":87},[84,675,235],{"class":104},[84,677,632],{"class":108},[84,679,680],{"class":108}," teleop_twist_keyboard",[84,682,680],{"class":108},[84,684,685],{"class":548}," --ros-args",[84,687,555],{"class":548},[84,689,690],{"class":108}," /cmd_vel:=/model/vehicle_blue/cmd_vel\n",[15,692,693],{},"接下来就可以使用键盘控制机器人运动了。",[15,695,696],{},[172,697],{"alt":79,"src":698},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1720.webp",[32,700,701],{"id":701},"ros_gz_bridge",[15,703,704],{},"ros_gz_bridge是连接ROS2与Gazebo的桥梁，ROS2与Gazebo使用的消息并不兼容，必须通过ros_gz_bridge进行转换。",[15,706,707],{},[19,708,709],{},"ros_gz_bridge使用语法",[15,711,712],{},"ROS2与Gazebo的桥接是通过ros_gz_bridge包中的parameter_bridge节点实现，其使用语法如下：",[74,714,716],{"className":76,"code":715,"language":78,"meta":79,"style":79},"parameter_bridge [\u003Ctopic@ROS2_type@Gz_type> ..]  [\u003Cservice@ROS2_srv_type[@Gz_req_type@Gz_rep_type]> ..]\n",[81,717,718],{"__ignoreMap":79},[84,719,720,723,726,729,732,736],{"class":86,"line":87},[84,721,722],{"class":104},"parameter_bridge",[84,724,725],{"class":118}," [\u003Ctopic@ROS2_type@Gz_type> ",[84,727,728],{"class":108},"..]",[84,730,731],{"class":118},"  [\u003Cservice@ROS2_srv_type[@Gz_req_type@Gz_rep_type]",[84,733,735],{"class":734},"szBVR",">",[84,737,738],{"class":118}," ..]\n",[15,740,741,742,745,746,749],{},"在话题Topic中， ",[19,743,744],{},"第一个@"," 符号是话题名称和消息类型的 ",[19,747,748],{},"分隔符"," 。",[15,751,752],{},"第一个@符号后面是ROS消息类型。",[15,754,755],{},"ROS消息类型后面是@、[或]符号：",[282,757,758,764,770],{},[285,759,760,763],{},[19,761,762],{},"@","  表示双向桥接；",[285,765,766,769],{},[19,767,768],{},"[","  表示从Gazebo到ROS的桥接；",[285,771,772,775],{},[19,773,774],{},"]","  表示从ROS到Gazebo的桥接。",[15,777,778],{},"方向符号后是Gazebo Transport消息类型。",[15,780,781],{},"（两个@不是同一个含义）",[15,783,784,785,787,788,749],{},"在服务Service中， ",[19,786,744],{}," 符号是服务名称和类型的 ",[19,789,748],{},[15,791,792],{},"第一个@符号后面是ROS服务类型。可以选择地包括Gazebo请求和响应类型，在它们之间用@符号分隔。",[15,794,795,798],{},[19,796,797],{},"仅"," 支持将Gazebo服务公开为ROS服务，即ROS服务将请求转发到Gazebo服务，然后将响应转发回ROS客户端。",[15,800,801],{},"双向桥接示例：",[74,803,805],{"className":76,"code":804,"language":78,"meta":79,"style":79},"parameter_bridge /chatter@std_msgs/msg/String@gz.msgs.StringMsg\n",[81,806,807],{"__ignoreMap":79},[84,808,809,811],{"class":86,"line":87},[84,810,722],{"class":104},[84,812,813],{"class":108}," /chatter@std_msgs/msg/String@gz.msgs.StringMsg\n",[15,815,816],{},"从Gazebo到ROS的桥接示例：",[74,818,820],{"className":76,"code":819,"language":78,"meta":79,"style":79},"parameter_bridge /chatter@std_msgs/msg/String[gz.msgs.StringMsg\n",[81,821,822],{"__ignoreMap":79},[84,823,824,826],{"class":86,"line":87},[84,825,722],{"class":104},[84,827,828],{"class":108}," /chatter@std_msgs/msg/String[gz.msgs.StringMsg\n",[15,830,831],{},"从ROS到Gazebo的桥接示例：",[74,833,835],{"className":76,"code":834,"language":78,"meta":79,"style":79},"parameter_bridge /chatter@std_msgs/msg/String]gz.msgs.StringMsg\n",[81,836,837],{"__ignoreMap":79},[84,838,839,841],{"class":86,"line":87},[84,840,722],{"class":104},[84,842,843],{"class":108}," /chatter@std_msgs/msg/String]gz.msgs.StringMsg\n",[15,845,846],{},"服务桥接示例：",[74,848,850],{"className":76,"code":849,"language":78,"meta":79,"style":79},"parameter_bridge /world/default/control@ros_gz_interfaces/srv/ControlWorld\n或者：\nparameter_bridge /world/default/control@ros_gz_interfaces/srv/ControlWorld@gz.msgs.WorldControl@gz.msgs.Boolean\n",[81,851,852,859,864],{"__ignoreMap":79},[84,853,854,856],{"class":86,"line":87},[84,855,722],{"class":104},[84,857,858],{"class":108}," /world/default/control@ros_gz_interfaces/srv/ControlWorld\n",[84,860,861],{"class":86,"line":94},[84,862,863],{"class":104},"或者：\n",[84,865,866,868],{"class":86,"line":101},[84,867,722],{"class":104},[84,869,870],{"class":108}," /world/default/control@ros_gz_interfaces/srv/ControlWorld@gz.msgs.WorldControl@gz.msgs.Boolean\n",[15,872,873],{},[19,874,875],{},"ros_gz_bridge支持的消息类型",[15,877,878,879,882],{},"以下列出 Jazzy 当前常用和官方文档中列出的部分映射；完整映射以 ",[81,880,881],{},"ros2 run ros_gz_bridge parameter_bridge -h"," 和 ROS2 对应版本的 ros_gz_bridge 文档为准。",[15,884,885],{},"以下是ROS2与Gazebo中话题消息类型对应表：",[887,888,889,903],"table",{},[890,891,892],"thead",{},[893,894,895,900],"tr",{},[896,897,899],"th",{"align":898},"left","ROS2消息类型",[896,901,902],{"align":898},"Gazebo Transport 类型",[904,905,906,915,923,931,939,946,954,962,969,976,982,990,997,1004,1012,1019,1027,1034,1042,1050,1058,1066,1074,1082,1090,1098,1106,1114,1122,1130,1138,1146,1154,1162,1170,1178,1186,1194,1202,1210,1218,1226,1234,1242,1250,1258,1266,1274,1282,1290,1298,1306,1314,1322,1329],"tbody",{},[893,907,908,912],{},[909,910,911],"td",{"align":898},"builtin_interfaces/msg/Time",[909,913,914],{"align":898},"gz.msgs.Time",[893,916,917,920],{},[909,918,919],{"align":898},"geometry_msgs/msg/Point",[909,921,922],{"align":898},"gz.msgs.Vector3d",[893,924,925,928],{},[909,926,927],{"align":898},"geometry_msgs/msg/Pose",[909,929,930],{"align":898},"gz.msgs.Pose",[893,932,933,936],{},[909,934,935],{"align":898},"geometry_msgs/msg/PoseArray",[909,937,938],{"align":898},"gz.msgs.Pose_V",[893,940,941,944],{},[909,942,943],{"align":898},"geometry_msgs/msg/PoseStamped",[909,945,930],{"align":898},[893,947,948,951],{},[909,949,950],{"align":898},"geometry_msgs/msg/PoseWithCovariance",[909,952,953],{"align":898},"gz.msgs.PoseWithCovariance",[893,955,956,959],{},[909,957,958],{"align":898},"geometry_msgs/msg/Quaternion",[909,960,961],{"align":898},"gz.msgs.Quaternion",[893,963,964,967],{},[909,965,966],{"align":898},"geometry_msgs/msg/Transform",[909,968,930],{"align":898},[893,970,971,974],{},[909,972,973],{"align":898},"geometry_msgs/msg/TransformStamped",[909,975,930],{"align":898},[893,977,978,980],{},[909,979,650],{"align":898},[909,981,654],{"align":898},[893,983,984,987],{},[909,985,986],{"align":898},"geometry_msgs/msg/TwistWithCovariance",[909,988,989],{"align":898},"gz.msgs.TwistWithCovariance",[893,991,992,995],{},[909,993,994],{"align":898},"geometry_msgs/msg/TwistWithCovarianceStamped",[909,996,989],{"align":898},[893,998,999,1002],{},[909,1000,1001],{"align":898},"geometry_msgs/msg/Vector3",[909,1003,922],{"align":898},[893,1005,1006,1009],{},[909,1007,1008],{"align":898},"geometry_msgs/msg/Wrench",[909,1010,1011],{"align":898},"gz.msgs.Wrench",[893,1013,1014,1017],{},[909,1015,1016],{"align":898},"geometry_msgs/msg/WrenchStamped",[909,1018,1011],{"align":898},[893,1020,1021,1024],{},[909,1022,1023],{"align":898},"nav_msgs/msg/Odometry",[909,1025,1026],{"align":898},"gz.msgs.Odometry",[893,1028,1029,1031],{},[909,1030,1023],{"align":898},[909,1032,1033],{"align":898},"gz.msgs.OdometryWithCovariance",[893,1035,1036,1039],{},[909,1037,1038],{"align":898},"rcl_interfaces/msg/ParameterValue",[909,1040,1041],{"align":898},"gz.msgs.Any",[893,1043,1044,1047],{},[909,1045,1046],{"align":898},"ros_gz_interfaces/msg/Altimeter",[909,1048,1049],{"align":898},"gz.msgs.Altimeter",[893,1051,1052,1055],{},[909,1053,1054],{"align":898},"ros_gz_interfaces/msg/Contact",[909,1056,1057],{"align":898},"gz.msgs.Contact",[893,1059,1060,1063],{},[909,1061,1062],{"align":898},"ros_gz_interfaces/msg/Contacts",[909,1064,1065],{"align":898},"gz.msgs.Contacts",[893,1067,1068,1071],{},[909,1069,1070],{"align":898},"ros_gz_interfaces/msg/Dataframe",[909,1072,1073],{"align":898},"gz.msgs.Dataframe",[893,1075,1076,1079],{},[909,1077,1078],{"align":898},"ros_gz_interfaces/msg/Entity",[909,1080,1081],{"align":898},"gz.msgs.Entity",[893,1083,1084,1087],{},[909,1085,1086],{"align":898},"ros_gz_interfaces/msg/Float32Array",[909,1088,1089],{"align":898},"gz.msgs.Float_V",[893,1091,1092,1095],{},[909,1093,1094],{"align":898},"ros_gz_interfaces/msg/GuiCamera",[909,1096,1097],{"align":898},"gz.msgs.GUICamera",[893,1099,1100,1103],{},[909,1101,1102],{"align":898},"ros_gz_interfaces/msg/JointWrench",[909,1104,1105],{"align":898},"gz.msgs.JointWrench",[893,1107,1108,1111],{},[909,1109,1110],{"align":898},"ros_gz_interfaces/msg/Light",[909,1112,1113],{"align":898},"gz.msgs.Light",[893,1115,1116,1119],{},[909,1117,1118],{"align":898},"ros_gz_interfaces/msg/SensorNoise",[909,1120,1121],{"align":898},"gz.msgs.SensorNoise",[893,1123,1124,1127],{},[909,1125,1126],{"align":898},"ros_gz_interfaces/msg/StringVec",[909,1128,1129],{"align":898},"gz.msgs.StringMsg_V",[893,1131,1132,1135],{},[909,1133,1134],{"align":898},"ros_gz_interfaces/msg/TrackVisual",[909,1136,1137],{"align":898},"gz.msgs.TrackVisual",[893,1139,1140,1143],{},[909,1141,1142],{"align":898},"ros_gz_interfaces/msg/VideoRecord",[909,1144,1145],{"align":898},"gz.msgs.VideoRecord",[893,1147,1148,1151],{},[909,1149,1150],{"align":898},"ros_gz_interfaces/msg/WorldControl",[909,1152,1153],{"align":898},"gz.msgs.WorldControl",[893,1155,1156,1159],{},[909,1157,1158],{"align":898},"rosgraph_msgs/msg/Clock*",[909,1160,1161],{"align":898},"gz.msgs.Clock*",[893,1163,1164,1167],{},[909,1165,1166],{"align":898},"sensor_msgs/msg/BatteryState",[909,1168,1169],{"align":898},"gz.msgs.BatteryState",[893,1171,1172,1175],{},[909,1173,1174],{"align":898},"sensor_msgs/msg/CameraInfo",[909,1176,1177],{"align":898},"gz.msgs.CameraInfo",[893,1179,1180,1183],{},[909,1181,1182],{"align":898},"sensor_msgs/msg/FluidPressure",[909,1184,1185],{"align":898},"gz.msgs.FluidPressure",[893,1187,1188,1191],{},[909,1189,1190],{"align":898},"sensor_msgs/msg/Image",[909,1192,1193],{"align":898},"gz.msgs.Image",[893,1195,1196,1199],{},[909,1197,1198],{"align":898},"sensor_msgs/msg/Imu",[909,1200,1201],{"align":898},"gz.msgs.IMU",[893,1203,1204,1207],{},[909,1205,1206],{"align":898},"sensor_msgs/msg/JointState",[909,1208,1209],{"align":898},"gz.msgs.Model",[893,1211,1212,1215],{},[909,1213,1214],{"align":898},"sensor_msgs/msg/Joy",[909,1216,1217],{"align":898},"gz.msgs.Joy",[893,1219,1220,1223],{},[909,1221,1222],{"align":898},"sensor_msgs/msg/LaserScan",[909,1224,1225],{"align":898},"gz.msgs.LaserScan",[893,1227,1228,1231],{},[909,1229,1230],{"align":898},"sensor_msgs/msg/MagneticField",[909,1232,1233],{"align":898},"gz.msgs.Magnetometer",[893,1235,1236,1239],{},[909,1237,1238],{"align":898},"sensor_msgs/msg/NavSatFix",[909,1240,1241],{"align":898},"gz.msgs.NavSat",[893,1243,1244,1247],{},[909,1245,1246],{"align":898},"sensor_msgs/msg/PointCloud2",[909,1248,1249],{"align":898},"gz.msgs.PointCloudPacked",[893,1251,1252,1255],{},[909,1253,1254],{"align":898},"std_msgs/msg/Bool",[909,1256,1257],{"align":898},"gz.msgs.Boolean",[893,1259,1260,1263],{},[909,1261,1262],{"align":898},"std_msgs/msg/ColorRGBA",[909,1264,1265],{"align":898},"gz.msgs.Color",[893,1267,1268,1271],{},[909,1269,1270],{"align":898},"std_msgs/msg/Empty",[909,1272,1273],{"align":898},"gz.msgs.Empty",[893,1275,1276,1279],{},[909,1277,1278],{"align":898},"std_msgs/msg/Float32",[909,1280,1281],{"align":898},"gz.msgs.Float",[893,1283,1284,1287],{},[909,1285,1286],{"align":898},"std_msgs/msg/Float64",[909,1288,1289],{"align":898},"gz.msgs.Double",[893,1291,1292,1295],{},[909,1293,1294],{"align":898},"std_msgs/msg/Header",[909,1296,1297],{"align":898},"gz.msgs.Header",[893,1299,1300,1303],{},[909,1301,1302],{"align":898},"std_msgs/msg/Int32",[909,1304,1305],{"align":898},"gz.msgs.Int32",[893,1307,1308,1311],{},[909,1309,1310],{"align":898},"std_msgs/msg/String",[909,1312,1313],{"align":898},"gz.msgs.StringMsg",[893,1315,1316,1319],{},[909,1317,1318],{"align":898},"std_msgs/msg/UInt32",[909,1320,1321],{"align":898},"gz.msgs.UInt32",[893,1323,1324,1327],{},[909,1325,1326],{"align":898},"tf2_msgs/msg/TFMessage",[909,1328,938],{"align":898},[893,1330,1331,1334],{},[909,1332,1333],{"align":898},"trajectory_msgs/msg/JointTrajectory",[909,1335,1336],{"align":898},"gz.msgs.JointTrajectory",[15,1338,1339],{},"还有一些增补的类型",[887,1341,1342,1351],{},[890,1343,1344],{},[893,1345,1346,1349],{},[896,1347,1348],{},"ROS 2 消息类型",[896,1350,902],{},[904,1352,1353,1361,1368,1375,1382,1390,1398,1406,1414,1422,1429,1437,1444,1452,1460,1468],{},[893,1354,1355,1358],{},[909,1356,1357],{},"actuator_msgs/msg/Actuators",[909,1359,1360],{},"gz.msgs.Actuators",[893,1362,1363,1366],{},[909,1364,1365],{},"geometry_msgs/msg/PoseWithCovarianceStamped",[909,1367,953],{},[893,1369,1370,1373],{},[909,1371,1372],{},"geometry_msgs/msg/TwistStamped",[909,1374,654],{},[893,1376,1377,1380],{},[909,1378,1379],{},"gps_msgs/msg/GPSFix",[909,1381,1241],{},[893,1383,1384,1387],{},[909,1385,1386],{},"marine_acoustic_msgs/msg/Dvl",[909,1388,1389],{},"gz.msgs.DVLVelocityTracking",[893,1391,1392,1395],{},[909,1393,1394],{},"ros_gz_interfaces/msg/EntityWrench",[909,1396,1397],{},"gz.msgs.EntityWrench",[893,1399,1400,1403],{},[909,1401,1402],{},"ros_gz_interfaces/msg/LogicalCameraImage",[909,1404,1405],{},"gz.msgs.LogicalCameraImage",[893,1407,1408,1411],{},[909,1409,1410],{},"ros_gz_interfaces/msg/LogPlaybackStatistics",[909,1412,1413],{},"gz.msgs.LogPlaybackStatistics",[893,1415,1416,1419],{},[909,1417,1418],{},"ros_gz_interfaces/msg/ParamVec",[909,1420,1421],{},"gz.msgs.Param",[893,1423,1424,1426],{},[909,1425,1418],{},[909,1427,1428],{},"gz.msgs.Param_V",[893,1430,1431,1434],{},[909,1432,1433],{},"ros_gz_interfaces/msg/WorldStatistics",[909,1435,1436],{},"gz.msgs.WorldStatistics",[893,1438,1439,1442],{},[909,1440,1441],{},"sensor_msgs/msg/Range",[909,1443,1225],{},[893,1445,1446,1449],{},[909,1447,1448],{},"vision_msgs/msg/Detection2D",[909,1450,1451],{},"gz.msgs.AnnotatedAxisAligned2DBox",[893,1453,1454,1457],{},[909,1455,1456],{},"vision_msgs/msg/Detection2DArray",[909,1458,1459],{},"gz.msgs.AnnotatedAxisAligned2DBox_V",[893,1461,1462,1465],{},[909,1463,1464],{},"vision_msgs/msg/Detection3D",[909,1466,1467],{},"gz.msgs.AnnotatedOriented3DBox",[893,1469,1470,1473],{},[909,1471,1472],{},"vision_msgs/msg/Detection3DArray",[909,1474,1475],{},"gz.msgs.AnnotatedOriented3DBox_V",[15,1477,1478],{},"以及服务消息类型对应表：",[887,1480,1481,1493],{},[890,1482,1483],{},[893,1484,1485,1487,1490],{},[896,1486,899],{"align":898},[896,1488,1489],{"align":898},"Gazebo 请求",[896,1491,1492],{"align":898},"Gazebo 响应",[904,1494,1495],{},[893,1496,1497,1500,1502],{},[909,1498,1499],{"align":898},"ros_gz_interfaces/srv/ControlWorld",[909,1501,1153],{"align":898},[909,1503,1257],{"align":898},[32,1505,1507],{"id":1506},"与ros2集成优化","与ROS2集成优化",[15,1509,1510,1511,1514],{},"在 ",[19,1512,1513],{},"Gazebo与ROS2集成"," 实现中需要在终端中使用不同的指令启动不同模块，该流程实现稍显复杂，本节将介绍如何以launch文件的方式进行优化。",[15,1516,1517],{},[19,1518,1519],{},"新建功能包",[15,1521,1522],{},"请首先调用如下指令创建一个功能包：",[74,1524,1526],{"className":76,"code":1525,"language":78,"meta":79,"style":79},"ros2 pkg create demo_gazebo_sim\n",[81,1527,1528],{"__ignoreMap":79},[84,1529,1530,1532,1535,1538],{"class":86,"line":87},[84,1531,235],{"class":104},[84,1533,1534],{"class":108}," pkg",[84,1536,1537],{"class":108}," create",[84,1539,1540],{"class":108}," demo_gazebo_sim\n",[15,1542,1543],{},[172,1544],{"alt":79,"src":1545},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1721.webp",[15,1547,1548],{},[19,1549,1550],{},"添加目录",[15,1552,1553],{},"在新建的功能包下添加目录： launch、rviz、world。并在CmakeLists.txt中添加如下代码：",[74,1555,1559],{"className":1556,"code":1557,"language":1558,"meta":79,"style":79},"language-cmake shiki shiki-themes github-light github-dark","install(DIRECTORY rviz world launch DESTINATION share/${PROJECT_NAME})\n","cmake",[81,1560,1561],{"__ignoreMap":79},[84,1562,1563,1566,1569,1572],{"class":86,"line":87},[84,1564,1565],{"class":734},"install",[84,1567,1568],{"class":118},"(DIRECTORY rviz world launch DESTINATION share/",[84,1570,1571],{"class":734},"${PROJECT_NAME}",[84,1573,1574],{"class":118},")\n",[15,1576,1577],{},"launch目录用于存储launch文件，rviz目录由于存储rviz2的配置文件，而world目录则用于存储Gazebo仿真环境的相关文件。",[15,1579,1580],{},[172,1581],{"alt":79,"src":1582},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1722.webp",[15,1584,1585],{},[19,1586,1587],{},"rviz目录中生成rviz2的配置文件",[15,1589,1590],{},"启动 rviz2，直接将默认配置保存至当前功能包的rviz目录，保存文件命名为sim.rviz。",[15,1592,1593],{},[172,1594],{"alt":79,"src":1595},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1723.webp",[15,1597,1598],{},[19,1599,1600],{},"复制world文件",[15,1602,1603,1604,1607],{},"在ros安装路径下的worlds目录（",[81,1605,1606],{},"/opt/ros/jazzy/opt/gz_sim_vendor/share/gz/gz-sim8/worlds/","）中复制visualize_lidar.sdf文件至world目录。",[15,1609,1610],{},"如果以上路径下没有，那可能在ign(humble的)的安装路径下：",[15,1612,1613],{},[81,1614,1615],{},"/usr/share/ignition/ignition-gazebo6/worlds",[15,1617,1618],{},"如果还没有的话，手动查找一下：",[74,1620,1622],{"className":76,"code":1621,"language":78,"meta":79,"style":79},"sudo find / -name \"visualize_lidar.sdf\"\n",[81,1623,1624],{"__ignoreMap":79},[84,1625,1626,1628,1631,1634,1637],{"class":86,"line":87},[84,1627,105],{"class":104},[84,1629,1630],{"class":108}," find",[84,1632,1633],{"class":108}," /",[84,1635,1636],{"class":548}," -name",[84,1638,1639],{"class":108}," \"visualize_lidar.sdf\"\n",[15,1641,1642],{},[172,1643],{"alt":79,"src":1644},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1724.webp",[15,1646,1647],{},[19,1648,1649],{},"编写launch文件",[15,1651,1652],{},"launch目录下新建launch文件gazebo_sim_demo.launch.py，并输入如下内容：",[74,1654,1658],{"className":1655,"code":1656,"language":1657,"meta":79,"style":79},"language-python shiki shiki-themes github-light github-dark","import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import DeclareLaunchArgument\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.conditions import IfCondition\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch.substitutions import LaunchConfiguration\n\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory('demo_gazebo_sim')\n    pkg_ros_gz_sim = get_package_share_directory('ros_gz_sim')\n    world_file = os.path.join(this_pkg,'world','visualize_lidar.sdf')\n\n    gz_sim = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(pkg_ros_gz_sim, 'launch', 'gz_sim.launch.py')),\n        launch_arguments={\n            'gz_args': '-r ' + world_file\n        }.items(),\n    )\n\n    # RViz\n    rviz = Node(\n       package='rviz2',\n       executable='rviz2',\n       arguments=['-d', os.path.join(this_pkg, 'rviz', 'sim.rviz')],\n       condition=IfCondition(LaunchConfiguration('rviz'))\n    )\n\n    # Bridge\n    bridge = Node(\n        package='ros_gz_bridge',\n        executable='parameter_bridge',\n        arguments=['/model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist',\n                   '/model/vehicle_blue/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry',\n                   '/model/vehicle_blue/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V',\n                   ],\n        parameters=[{'qos_overrides./model/vehicle_blue.subscriber.reliability': 'reliable'}],\n        remappings=[\n                ('/model/vehicle_blue/tf', '/tf'),\n                ('/model/vehicle_blue/cmd_vel','cmd_vel')\n            ],\n        output='screen'\n    )\n\n    return LaunchDescription([\n        gz_sim,\n        DeclareLaunchArgument('rviz', default_value='true',\n                              description='Open RViz.'),\n        bridge,\n        rviz\n    ])\n","python",[81,1659,1660,1668,1672,1685,1689,1701,1713,1724,1736,1748,1760,1764,1776,1780,1792,1797,1814,1829,1851,1856,1867,1873,1891,1903,1921,1927,1933,1938,1944,1955,1969,1981,2008,2024,2029,2034,2040,2050,2063,2076,2091,2099,2107,2113,2135,2146,2163,2178,2184,2195,2200,2205,2214,2220,2240,2253,2259,2265],{"__ignoreMap":79},[84,1661,1662,1665],{"class":86,"line":87},[84,1663,1664],{"class":734},"import",[84,1666,1667],{"class":118}," os\n",[84,1669,1670],{"class":86,"line":94},[84,1671,91],{"emptyLinePlaceholder":90},[84,1673,1674,1677,1680,1682],{"class":86,"line":101},[84,1675,1676],{"class":734},"from",[84,1678,1679],{"class":118}," ament_index_python.packages ",[84,1681,1664],{"class":734},[84,1683,1684],{"class":118}," get_package_share_directory\n",[84,1686,1687],{"class":86,"line":125},[84,1688,91],{"emptyLinePlaceholder":90},[84,1690,1691,1693,1696,1698],{"class":86,"line":130},[84,1692,1676],{"class":734},[84,1694,1695],{"class":118}," launch ",[84,1697,1664],{"class":734},[84,1699,1700],{"class":118}," LaunchDescription\n",[84,1702,1703,1705,1708,1710],{"class":86,"line":136},[84,1704,1676],{"class":734},[84,1706,1707],{"class":118}," launch.actions ",[84,1709,1664],{"class":734},[84,1711,1712],{"class":118}," DeclareLaunchArgument\n",[84,1714,1715,1717,1719,1721],{"class":86,"line":148},[84,1716,1676],{"class":734},[84,1718,1707],{"class":118},[84,1720,1664],{"class":734},[84,1722,1723],{"class":118}," IncludeLaunchDescription\n",[84,1725,1726,1728,1731,1733],{"class":86,"line":153},[84,1727,1676],{"class":734},[84,1729,1730],{"class":118}," launch.conditions ",[84,1732,1664],{"class":734},[84,1734,1735],{"class":118}," IfCondition\n",[84,1737,1738,1740,1743,1745],{"class":86,"line":159},[84,1739,1676],{"class":734},[84,1741,1742],{"class":118}," launch.launch_description_sources ",[84,1744,1664],{"class":734},[84,1746,1747],{"class":118}," PythonLaunchDescriptionSource\n",[84,1749,1750,1752,1755,1757],{"class":86,"line":406},[84,1751,1676],{"class":734},[84,1753,1754],{"class":118}," launch.substitutions ",[84,1756,1664],{"class":734},[84,1758,1759],{"class":118}," LaunchConfiguration\n",[84,1761,1762],{"class":86,"line":412},[84,1763,91],{"emptyLinePlaceholder":90},[84,1765,1766,1768,1771,1773],{"class":86,"line":418},[84,1767,1676],{"class":734},[84,1769,1770],{"class":118}," launch_ros.actions ",[84,1772,1664],{"class":734},[84,1774,1775],{"class":118}," Node\n",[84,1777,1778],{"class":86,"line":424},[84,1779,91],{"emptyLinePlaceholder":90},[84,1781,1783,1786,1789],{"class":86,"line":1782},14,[84,1784,1785],{"class":734},"def",[84,1787,1788],{"class":104}," generate_launch_description",[84,1790,1791],{"class":118},"():\n",[84,1793,1795],{"class":86,"line":1794},15,[84,1796,91],{"emptyLinePlaceholder":90},[84,1798,1800,1803,1806,1809,1812],{"class":86,"line":1799},16,[84,1801,1802],{"class":118},"    this_pkg ",[84,1804,1805],{"class":734},"=",[84,1807,1808],{"class":118}," get_package_share_directory(",[84,1810,1811],{"class":108},"'demo_gazebo_sim'",[84,1813,1574],{"class":118},[84,1815,1817,1820,1822,1824,1827],{"class":86,"line":1816},17,[84,1818,1819],{"class":118},"    pkg_ros_gz_sim ",[84,1821,1805],{"class":734},[84,1823,1808],{"class":118},[84,1825,1826],{"class":108},"'ros_gz_sim'",[84,1828,1574],{"class":118},[84,1830,1832,1835,1837,1840,1843,1846,1849],{"class":86,"line":1831},18,[84,1833,1834],{"class":118},"    world_file ",[84,1836,1805],{"class":734},[84,1838,1839],{"class":118}," os.path.join(this_pkg,",[84,1841,1842],{"class":108},"'world'",[84,1844,1845],{"class":118},",",[84,1847,1848],{"class":108},"'visualize_lidar.sdf'",[84,1850,1574],{"class":118},[84,1852,1854],{"class":86,"line":1853},19,[84,1855,91],{"emptyLinePlaceholder":90},[84,1857,1859,1862,1864],{"class":86,"line":1858},20,[84,1860,1861],{"class":118},"    gz_sim ",[84,1863,1805],{"class":734},[84,1865,1866],{"class":118}," IncludeLaunchDescription(\n",[84,1868,1870],{"class":86,"line":1869},21,[84,1871,1872],{"class":118},"        PythonLaunchDescriptionSource(\n",[84,1874,1876,1879,1882,1885,1888],{"class":86,"line":1875},22,[84,1877,1878],{"class":118},"            os.path.join(pkg_ros_gz_sim, ",[84,1880,1881],{"class":108},"'launch'",[84,1883,1884],{"class":118},", ",[84,1886,1887],{"class":108},"'gz_sim.launch.py'",[84,1889,1890],{"class":118},")),\n",[84,1892,1894,1898,1900],{"class":86,"line":1893},23,[84,1895,1897],{"class":1896},"s4XuR","        launch_arguments",[84,1899,1805],{"class":734},[84,1901,1902],{"class":118},"{\n",[84,1904,1906,1909,1912,1915,1918],{"class":86,"line":1905},24,[84,1907,1908],{"class":108},"            'gz_args'",[84,1910,1911],{"class":118},": ",[84,1913,1914],{"class":108},"'-r '",[84,1916,1917],{"class":734}," +",[84,1919,1920],{"class":118}," world_file\n",[84,1922,1924],{"class":86,"line":1923},25,[84,1925,1926],{"class":118},"        }.items(),\n",[84,1928,1930],{"class":86,"line":1929},26,[84,1931,1932],{"class":118},"    )\n",[84,1934,1936],{"class":86,"line":1935},27,[84,1937,91],{"emptyLinePlaceholder":90},[84,1939,1941],{"class":86,"line":1940},28,[84,1942,1943],{"class":97},"    # RViz\n",[84,1945,1947,1950,1952],{"class":86,"line":1946},29,[84,1948,1949],{"class":118},"    rviz ",[84,1951,1805],{"class":734},[84,1953,1954],{"class":118}," Node(\n",[84,1956,1958,1961,1963,1966],{"class":86,"line":1957},30,[84,1959,1960],{"class":1896},"       package",[84,1962,1805],{"class":734},[84,1964,1965],{"class":108},"'rviz2'",[84,1967,1968],{"class":118},",\n",[84,1970,1972,1975,1977,1979],{"class":86,"line":1971},31,[84,1973,1974],{"class":1896},"       executable",[84,1976,1805],{"class":734},[84,1978,1965],{"class":108},[84,1980,1968],{"class":118},[84,1982,1984,1987,1989,1991,1994,1997,2000,2002,2005],{"class":86,"line":1983},32,[84,1985,1986],{"class":1896},"       arguments",[84,1988,1805],{"class":734},[84,1990,768],{"class":118},[84,1992,1993],{"class":108},"'-d'",[84,1995,1996],{"class":118},", os.path.join(this_pkg, ",[84,1998,1999],{"class":108},"'rviz'",[84,2001,1884],{"class":118},[84,2003,2004],{"class":108},"'sim.rviz'",[84,2006,2007],{"class":118},")],\n",[84,2009,2011,2014,2016,2019,2021],{"class":86,"line":2010},33,[84,2012,2013],{"class":1896},"       condition",[84,2015,1805],{"class":734},[84,2017,2018],{"class":118},"IfCondition(LaunchConfiguration(",[84,2020,1999],{"class":108},[84,2022,2023],{"class":118},"))\n",[84,2025,2027],{"class":86,"line":2026},34,[84,2028,1932],{"class":118},[84,2030,2032],{"class":86,"line":2031},35,[84,2033,91],{"emptyLinePlaceholder":90},[84,2035,2037],{"class":86,"line":2036},36,[84,2038,2039],{"class":97},"    # Bridge\n",[84,2041,2043,2046,2048],{"class":86,"line":2042},37,[84,2044,2045],{"class":118},"    bridge ",[84,2047,1805],{"class":734},[84,2049,1954],{"class":118},[84,2051,2053,2056,2058,2061],{"class":86,"line":2052},38,[84,2054,2055],{"class":1896},"        package",[84,2057,1805],{"class":734},[84,2059,2060],{"class":108},"'ros_gz_bridge'",[84,2062,1968],{"class":118},[84,2064,2066,2069,2071,2074],{"class":86,"line":2065},39,[84,2067,2068],{"class":1896},"        executable",[84,2070,1805],{"class":734},[84,2072,2073],{"class":108},"'parameter_bridge'",[84,2075,1968],{"class":118},[84,2077,2079,2082,2084,2086,2089],{"class":86,"line":2078},40,[84,2080,2081],{"class":1896},"        arguments",[84,2083,1805],{"class":734},[84,2085,768],{"class":118},[84,2087,2088],{"class":108},"'/model/vehicle_blue/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist'",[84,2090,1968],{"class":118},[84,2092,2094,2097],{"class":86,"line":2093},41,[84,2095,2096],{"class":108},"                   '/model/vehicle_blue/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry'",[84,2098,1968],{"class":118},[84,2100,2102,2105],{"class":86,"line":2101},42,[84,2103,2104],{"class":108},"                   '/model/vehicle_blue/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V'",[84,2106,1968],{"class":118},[84,2108,2110],{"class":86,"line":2109},43,[84,2111,2112],{"class":118},"                   ],\n",[84,2114,2116,2119,2121,2124,2127,2129,2132],{"class":86,"line":2115},44,[84,2117,2118],{"class":1896},"        parameters",[84,2120,1805],{"class":734},[84,2122,2123],{"class":118},"[{",[84,2125,2126],{"class":108},"'qos_overrides./model/vehicle_blue.subscriber.reliability'",[84,2128,1911],{"class":118},[84,2130,2131],{"class":108},"'reliable'",[84,2133,2134],{"class":118},"}],\n",[84,2136,2138,2141,2143],{"class":86,"line":2137},45,[84,2139,2140],{"class":1896},"        remappings",[84,2142,1805],{"class":734},[84,2144,2145],{"class":118},"[\n",[84,2147,2149,2152,2155,2157,2160],{"class":86,"line":2148},46,[84,2150,2151],{"class":118},"                (",[84,2153,2154],{"class":108},"'/model/vehicle_blue/tf'",[84,2156,1884],{"class":118},[84,2158,2159],{"class":108},"'/tf'",[84,2161,2162],{"class":118},"),\n",[84,2164,2166,2168,2171,2173,2176],{"class":86,"line":2165},47,[84,2167,2151],{"class":118},[84,2169,2170],{"class":108},"'/model/vehicle_blue/cmd_vel'",[84,2172,1845],{"class":118},[84,2174,2175],{"class":108},"'cmd_vel'",[84,2177,1574],{"class":118},[84,2179,2181],{"class":86,"line":2180},48,[84,2182,2183],{"class":118},"            ],\n",[84,2185,2187,2190,2192],{"class":86,"line":2186},49,[84,2188,2189],{"class":1896},"        output",[84,2191,1805],{"class":734},[84,2193,2194],{"class":108},"'screen'\n",[84,2196,2198],{"class":86,"line":2197},50,[84,2199,1932],{"class":118},[84,2201,2203],{"class":86,"line":2202},51,[84,2204,91],{"emptyLinePlaceholder":90},[84,2206,2208,2211],{"class":86,"line":2207},52,[84,2209,2210],{"class":734},"    return",[84,2212,2213],{"class":118}," LaunchDescription([\n",[84,2215,2217],{"class":86,"line":2216},53,[84,2218,2219],{"class":118},"        gz_sim,\n",[84,2221,2223,2226,2228,2230,2233,2235,2238],{"class":86,"line":2222},54,[84,2224,2225],{"class":118},"        DeclareLaunchArgument(",[84,2227,1999],{"class":108},[84,2229,1884],{"class":118},[84,2231,2232],{"class":1896},"default_value",[84,2234,1805],{"class":734},[84,2236,2237],{"class":108},"'true'",[84,2239,1968],{"class":118},[84,2241,2243,2246,2248,2251],{"class":86,"line":2242},55,[84,2244,2245],{"class":1896},"                              description",[84,2247,1805],{"class":734},[84,2249,2250],{"class":108},"'Open RViz.'",[84,2252,2162],{"class":118},[84,2254,2256],{"class":86,"line":2255},56,[84,2257,2258],{"class":118},"        bridge,\n",[84,2260,2262],{"class":86,"line":2261},57,[84,2263,2264],{"class":118},"        rviz\n",[84,2266,2268],{"class":86,"line":2267},58,[84,2269,2270],{"class":118},"    ])\n",[15,2272,2273],{},"该launch文件中，启动了Ignition Gazebo仿真环境、通过ros_gz_bridge建立了仿真与ROS2的连接，并且启动了rviz2节点。其中建立连接时，实现了速度指令、里程计以及坐标变换等消息的转换。",[15,2275,2276],{},[172,2277],{"alt":79,"src":2278},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1725.webp",[15,2280,2281],{},[19,2282,2283],{},"构建",[15,2285,2286],{},"终端中进入当前工作空间，编译功能包：",[74,2288,2290],{"className":76,"code":2289,"language":78,"meta":79,"style":79},"colcon build  --packages-select demo_gazebo_sim\n",[81,2291,2292],{"__ignoreMap":79},[84,2293,2294,2297,2300,2303],{"class":86,"line":87},[84,2295,2296],{"class":104},"colcon",[84,2298,2299],{"class":108}," build",[84,2301,2302],{"class":548},"  --packages-select",[84,2304,1540],{"class":108},[15,2306,2307],{},[172,2308],{"alt":79,"src":2309},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1726.webp",[15,2311,2312],{},[19,2313,2314],{},"执行",[15,2316,2317],{},"终端中进入当前工作空间，调用如下指令执行launch文件：",[74,2319,2321],{"className":76,"code":2320,"language":78,"meta":79,"style":79},". install/setup.bash\nros2 launch demo_gazebo_sim gazebo_sim_demo.launch.py\n",[81,2322,2323,2331],{"__ignoreMap":79},[84,2324,2325,2328],{"class":86,"line":87},[84,2326,2327],{"class":548},".",[84,2329,2330],{"class":108}," install/setup.bash\n",[84,2332,2333,2335,2337,2340],{"class":86,"line":94},[84,2334,235],{"class":104},[84,2336,238],{"class":108},[84,2338,2339],{"class":108}," demo_gazebo_sim",[84,2341,2342],{"class":108}," gazebo_sim_demo.launch.py\n",[15,2344,2345],{},"新开终端，启动键盘控制节点：",[74,2347,2349],{"className":76,"code":2348,"language":78,"meta":79,"style":79},"ros2 run teleop_twist_keyboard teleop_twist_keyboard\n",[81,2350,2351],{"__ignoreMap":79},[84,2352,2353,2355,2357,2359],{"class":86,"line":87},[84,2354,235],{"class":104},[84,2356,632],{"class":108},[84,2358,680],{"class":108},[84,2360,2361],{"class":108}," teleop_twist_keyboard\n",[15,2363,2364],{},"再配置rviz2，",[289,2366,2367,2378,2381],{},[285,2368,2369,2370,2373,2374,2377],{},"将",[81,2371,2372],{},"Fixed Frame","设置为",[81,2375,2376],{},"vehicle_blue/odom","，",[285,2379,2380],{},"添加TF插件，",[285,2382,2383,2384,2387],{},"添加Odometry插件并将话题设置为",[81,2385,2386],{},"/model/vehicle_blue/odometry","，\n当通过键盘控制发送速度指令时，仿真环境的机器人开始运动，并且在rviz2中可以回显坐标变换以及里程计等消息。",[15,2389,2390],{},[172,2391],{"alt":79,"src":2392},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1727.webp",[32,2394,2396,2397],{"id":2395},"仿真环境创建-sdf文件","仿真环境创建 ",[19,2398,2399],{},"SDF文件",[15,2401,2402],{},"前面几节内容我们使用的是Ignition Gazebo内置的仿真环境，本节开始将介绍如何自行搭建仿真环境。本节案例将仿真一个长10m宽5m的矩形房间。该案例可以先启动Ignition Gazebo以拖拽的方式搭建仿真环境，然后再修改仿真环境对应的文件以调整细节。",[15,2404,2405],{},[19,2406,2407],{},"SDF、URDF 和 Xacro 的关系：",[282,2409,2410,2445],{},[285,2411,2412,2415],{},[19,2413,2414],{},"URDF 和 SDF 的区别：",[282,2416,2417,2423,2429,2435],{},[285,2418,2419,2422],{},[19,2420,2421],{},"复杂性："," SDF 支持的功能更强大，能够描述完整的仿真环境；URDF 更适合定义机器人模型。",[285,2424,2425,2428],{},[19,2426,2427],{},"用途："," URDF 是 ROS 的标准；SDF 是 Gazebo 的标准。",[285,2430,2431,2434],{},[19,2432,2433],{},"物理引擎支持："," URDF 通过插件支持 Gazebo；SDF 原生支持 Gazebo。",[285,2436,2437,2440,2441,2444],{},[19,2438,2439],{},"格式转换："," URDF 可以转换为 SDF（通过 ROS 提供的工具",[81,2442,2443],{},"gz sdf -p","）。",[285,2446,2447,2450],{},[19,2448,2449],{},"Xacro 的作用：",[282,2451,2452],{},[285,2453,2454],{},"Xacro 是 URDF 的生成工具，帮助用户高效编写 URDF 文件，但它与 SDF 无直接关系。",[2456,2457],"hr",{},[15,2459,2460],{},[19,2461,2462],{},"实践建议",[282,2464,2465,2471,2477],{},[285,2466,2467,2470],{},[19,2468,2469],{},"在 Gazebo 仿真中："," 如果你用的是 ROS 2 和 Gazebo，可以直接使用 SDF 文件，功能更强大。",[285,2472,2473,2476],{},[19,2474,2475],{},"在 ROS 中："," 如果主要用于机器人控制和规划，推荐使用 URDF 或由 Xacro 生成的 URDF。",[285,2478,2479,2482],{},[19,2480,2481],{},"两者结合："," 使用 URDF 进行控制，使用 SDF 进行仿真。例如，使用 URDF 定义机器人结构后，借助 Gazebo 插件将其转换为 SDF。",[15,2484,2485],{},[19,2486,2487],{},"示例对比",[15,2489,2490],{},"URDF 示例：",[74,2492,2496],{"className":2493,"code":2494,"language":2495,"meta":79,"style":79},"language-xml shiki shiki-themes github-light github-dark","\u003Crobot name=\"example_robot\">\n  \u003Clink name=\"base_link\">\n    \u003Cinertial>\n      \u003Cmass value=\"1.0\" />\n      \u003Cinertia ixx=\"1.0\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"1.0\" iyz=\"0.0\" izz=\"1.0\" />\n    \u003C/inertial>\n  \u003C/link>\n\u003C/robot>\n\n","xml",[81,2497,2498,2518,2535,2545,2564,2616,2625,2634],{"__ignoreMap":79},[84,2499,2500,2503,2507,2510,2512,2515],{"class":86,"line":87},[84,2501,2502],{"class":118},"\u003C",[84,2504,2506],{"class":2505},"s9eBZ","robot",[84,2508,2509],{"class":104}," name",[84,2511,1805],{"class":118},[84,2513,2514],{"class":108},"\"example_robot\"",[84,2516,2517],{"class":118},">\n",[84,2519,2520,2523,2526,2528,2530,2533],{"class":86,"line":94},[84,2521,2522],{"class":118},"  \u003C",[84,2524,2525],{"class":2505},"link",[84,2527,2509],{"class":104},[84,2529,1805],{"class":118},[84,2531,2532],{"class":108},"\"base_link\"",[84,2534,2517],{"class":118},[84,2536,2537,2540,2543],{"class":86,"line":101},[84,2538,2539],{"class":118},"    \u003C",[84,2541,2542],{"class":2505},"inertial",[84,2544,2517],{"class":118},[84,2546,2547,2550,2553,2556,2558,2561],{"class":86,"line":125},[84,2548,2549],{"class":118},"      \u003C",[84,2551,2552],{"class":2505},"mass",[84,2554,2555],{"class":104}," value",[84,2557,1805],{"class":118},[84,2559,2560],{"class":108},"\"1.0\"",[84,2562,2563],{"class":118}," />\n",[84,2565,2566,2568,2571,2574,2576,2578,2581,2583,2586,2589,2591,2593,2596,2598,2600,2603,2605,2607,2610,2612,2614],{"class":86,"line":130},[84,2567,2549],{"class":118},[84,2569,2570],{"class":2505},"inertia",[84,2572,2573],{"class":104}," ixx",[84,2575,1805],{"class":118},[84,2577,2560],{"class":108},[84,2579,2580],{"class":104}," ixy",[84,2582,1805],{"class":118},[84,2584,2585],{"class":108},"\"0.0\"",[84,2587,2588],{"class":104}," ixz",[84,2590,1805],{"class":118},[84,2592,2585],{"class":108},[84,2594,2595],{"class":104}," iyy",[84,2597,1805],{"class":118},[84,2599,2560],{"class":108},[84,2601,2602],{"class":104}," iyz",[84,2604,1805],{"class":118},[84,2606,2585],{"class":108},[84,2608,2609],{"class":104}," izz",[84,2611,1805],{"class":118},[84,2613,2560],{"class":108},[84,2615,2563],{"class":118},[84,2617,2618,2621,2623],{"class":86,"line":136},[84,2619,2620],{"class":118},"    \u003C/",[84,2622,2542],{"class":2505},[84,2624,2517],{"class":118},[84,2626,2627,2630,2632],{"class":86,"line":148},[84,2628,2629],{"class":118},"  \u003C/",[84,2631,2525],{"class":2505},[84,2633,2517],{"class":118},[84,2635,2636,2639,2641],{"class":86,"line":153},[84,2637,2638],{"class":118},"\u003C/",[84,2640,2506],{"class":2505},[84,2642,2517],{"class":118},[15,2644,2645],{},"Xacro 示例（生成 URDF）：",[74,2647,2649],{"className":2493,"code":2648,"language":2495,"meta":79,"style":79},"\u003Cxacro:robot xmlns:xacro=\"http://www.ros.org/wiki/xacro\" name=\"example_robot\">\n  \u003Cxacro:macro name=\"base_link\" params=\"mass\">\n    \u003Clink name=\"base_link\">\n      \u003Cinertial>\n        \u003Cmass value=\"${mass}\" />\n        \u003Cinertia ixx=\"1.0\" ixy=\"0.0\" ixz=\"0.0\" iyy=\"1.0\" iyz=\"0.0\" izz=\"1.0\" />\n      \u003C/inertial>\n    \u003C/link>\n  \u003C/xacro:macro>\n\n  \u003Cxacro:base_link mass=\"1.0\" />\n\u003C/xacro:robot>\n",[81,2650,2651,2674,2697,2711,2719,2735,2779,2788,2796,2804,2808,2824],{"__ignoreMap":79},[84,2652,2653,2655,2658,2661,2663,2666,2668,2670,2672],{"class":86,"line":87},[84,2654,2502],{"class":118},[84,2656,2657],{"class":2505},"xacro:robot",[84,2659,2660],{"class":104}," xmlns:xacro",[84,2662,1805],{"class":118},[84,2664,2665],{"class":108},"\"http://www.ros.org/wiki/xacro\"",[84,2667,2509],{"class":104},[84,2669,1805],{"class":118},[84,2671,2514],{"class":108},[84,2673,2517],{"class":118},[84,2675,2676,2678,2681,2683,2685,2687,2690,2692,2695],{"class":86,"line":94},[84,2677,2522],{"class":118},[84,2679,2680],{"class":2505},"xacro:macro",[84,2682,2509],{"class":104},[84,2684,1805],{"class":118},[84,2686,2532],{"class":108},[84,2688,2689],{"class":104}," params",[84,2691,1805],{"class":118},[84,2693,2694],{"class":108},"\"mass\"",[84,2696,2517],{"class":118},[84,2698,2699,2701,2703,2705,2707,2709],{"class":86,"line":101},[84,2700,2539],{"class":118},[84,2702,2525],{"class":2505},[84,2704,2509],{"class":104},[84,2706,1805],{"class":118},[84,2708,2532],{"class":108},[84,2710,2517],{"class":118},[84,2712,2713,2715,2717],{"class":86,"line":125},[84,2714,2549],{"class":118},[84,2716,2542],{"class":2505},[84,2718,2517],{"class":118},[84,2720,2721,2724,2726,2728,2730,2733],{"class":86,"line":130},[84,2722,2723],{"class":118},"        \u003C",[84,2725,2552],{"class":2505},[84,2727,2555],{"class":104},[84,2729,1805],{"class":118},[84,2731,2732],{"class":108},"\"${mass}\"",[84,2734,2563],{"class":118},[84,2736,2737,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757,2759,2761,2763,2765,2767,2769,2771,2773,2775,2777],{"class":86,"line":136},[84,2738,2723],{"class":118},[84,2740,2570],{"class":2505},[84,2742,2573],{"class":104},[84,2744,1805],{"class":118},[84,2746,2560],{"class":108},[84,2748,2580],{"class":104},[84,2750,1805],{"class":118},[84,2752,2585],{"class":108},[84,2754,2588],{"class":104},[84,2756,1805],{"class":118},[84,2758,2585],{"class":108},[84,2760,2595],{"class":104},[84,2762,1805],{"class":118},[84,2764,2560],{"class":108},[84,2766,2602],{"class":104},[84,2768,1805],{"class":118},[84,2770,2585],{"class":108},[84,2772,2609],{"class":104},[84,2774,1805],{"class":118},[84,2776,2560],{"class":108},[84,2778,2563],{"class":118},[84,2780,2781,2784,2786],{"class":86,"line":148},[84,2782,2783],{"class":118},"      \u003C/",[84,2785,2542],{"class":2505},[84,2787,2517],{"class":118},[84,2789,2790,2792,2794],{"class":86,"line":153},[84,2791,2620],{"class":118},[84,2793,2525],{"class":2505},[84,2795,2517],{"class":118},[84,2797,2798,2800,2802],{"class":86,"line":159},[84,2799,2629],{"class":118},[84,2801,2680],{"class":2505},[84,2803,2517],{"class":118},[84,2805,2806],{"class":86,"line":406},[84,2807,91],{"emptyLinePlaceholder":90},[84,2809,2810,2812,2815,2818,2820,2822],{"class":86,"line":412},[84,2811,2522],{"class":118},[84,2813,2814],{"class":2505},"xacro:base_link",[84,2816,2817],{"class":104}," mass",[84,2819,1805],{"class":118},[84,2821,2560],{"class":108},[84,2823,2563],{"class":118},[84,2825,2826,2828,2830],{"class":86,"line":418},[84,2827,2638],{"class":118},[84,2829,2657],{"class":2505},[84,2831,2517],{"class":118},[15,2833,2834],{},"SDF 示例：",[74,2836,2838],{"className":2493,"code":2837,"language":2495,"meta":79,"style":79},"\u003Csdf version=\"1.6\">\n  \u003Cmodel name=\"example_robot\">\n    \u003Clink name=\"base_link\">\n      \u003Cinertial>\n        \u003Cmass>1.0\u003C/mass>\n        \u003Cinertia>\n          \u003Cixx>1.0\u003C/ixx>\n          \u003Ciyy>1.0\u003C/iyy>\n          \u003Cizz>1.0\u003C/izz>\n        \u003C/inertia>\n      \u003C/inertial>\n    \u003C/link>\n  \u003C/model>\n\u003C/sdf>\n\n",[81,2839,2840,2857,2872,2886,2894,2907,2915,2929,2942,2955,2964,2972,2980,2988],{"__ignoreMap":79},[84,2841,2842,2844,2847,2850,2852,2855],{"class":86,"line":87},[84,2843,2502],{"class":118},[84,2845,2846],{"class":2505},"sdf",[84,2848,2849],{"class":104}," version",[84,2851,1805],{"class":118},[84,2853,2854],{"class":108},"\"1.6\"",[84,2856,2517],{"class":118},[84,2858,2859,2861,2864,2866,2868,2870],{"class":86,"line":94},[84,2860,2522],{"class":118},[84,2862,2863],{"class":2505},"model",[84,2865,2509],{"class":104},[84,2867,1805],{"class":118},[84,2869,2514],{"class":108},[84,2871,2517],{"class":118},[84,2873,2874,2876,2878,2880,2882,2884],{"class":86,"line":101},[84,2875,2539],{"class":118},[84,2877,2525],{"class":2505},[84,2879,2509],{"class":104},[84,2881,1805],{"class":118},[84,2883,2532],{"class":108},[84,2885,2517],{"class":118},[84,2887,2888,2890,2892],{"class":86,"line":125},[84,2889,2549],{"class":118},[84,2891,2542],{"class":2505},[84,2893,2517],{"class":118},[84,2895,2896,2898,2900,2903,2905],{"class":86,"line":130},[84,2897,2723],{"class":118},[84,2899,2552],{"class":2505},[84,2901,2902],{"class":118},">1.0\u003C/",[84,2904,2552],{"class":2505},[84,2906,2517],{"class":118},[84,2908,2909,2911,2913],{"class":86,"line":136},[84,2910,2723],{"class":118},[84,2912,2570],{"class":2505},[84,2914,2517],{"class":118},[84,2916,2917,2920,2923,2925,2927],{"class":86,"line":148},[84,2918,2919],{"class":118},"          \u003C",[84,2921,2922],{"class":2505},"ixx",[84,2924,2902],{"class":118},[84,2926,2922],{"class":2505},[84,2928,2517],{"class":118},[84,2930,2931,2933,2936,2938,2940],{"class":86,"line":153},[84,2932,2919],{"class":118},[84,2934,2935],{"class":2505},"iyy",[84,2937,2902],{"class":118},[84,2939,2935],{"class":2505},[84,2941,2517],{"class":118},[84,2943,2944,2946,2949,2951,2953],{"class":86,"line":159},[84,2945,2919],{"class":118},[84,2947,2948],{"class":2505},"izz",[84,2950,2902],{"class":118},[84,2952,2948],{"class":2505},[84,2954,2517],{"class":118},[84,2956,2957,2960,2962],{"class":86,"line":406},[84,2958,2959],{"class":118},"        \u003C/",[84,2961,2570],{"class":2505},[84,2963,2517],{"class":118},[84,2965,2966,2968,2970],{"class":86,"line":412},[84,2967,2783],{"class":118},[84,2969,2542],{"class":2505},[84,2971,2517],{"class":118},[84,2973,2974,2976,2978],{"class":86,"line":418},[84,2975,2620],{"class":118},[84,2977,2525],{"class":2505},[84,2979,2517],{"class":118},[84,2981,2982,2984,2986],{"class":86,"line":424},[84,2983,2629],{"class":118},[84,2985,2863],{"class":2505},[84,2987,2517],{"class":118},[84,2989,2990,2992,2994],{"class":86,"line":1782},[84,2991,2638],{"class":118},[84,2993,2846],{"class":2505},[84,2995,2517],{"class":118},[15,2997,2998],{},[19,2999,3000],{},"1.创建sdf文件",[15,3002,3003,3004,3007],{},"首先请调用指令",[81,3005,3006],{},"gz sim","启动Gazebo，选择Empty仿真环境，然后添加立方体，每一个立方体都对应一堵墙。",[15,3009,3010],{},"上下左右立方体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)。",[15,3012,3013],{},"（以上坐标是指X，Y，Z坐标，没有旋转度）",[15,3015,3016],{},"保存文件到功能包的world目录下，保存的文件名称需要以.sdf为后缀，此处文件名为house.sdf。",[15,3018,3019],{},[172,3020],{"alt":79,"src":3021},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1728.webp",[15,3023,3024],{},[172,3025],{"alt":79,"src":3026},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1729.webp",[74,3028,3030],{"className":2493,"code":3029,"language":2495,"meta":79,"style":79},"\u003Csdf version='1.10'>\n  \u003Cworld name='empty'>\n    \u003Cphysics name='1ms' type='ignored'>\n      \u003Cmax_step_size>0.001\u003C/max_step_size>\n      \u003Creal_time_factor>1\u003C/real_time_factor>\n      \u003Creal_time_update_rate>1000\u003C/real_time_update_rate>\n    \u003C/physics>\n    \u003Cplugin name='gz::sim::systems::Physics' filename='gz-sim-physics-system'/>\n    \u003Cplugin name='gz::sim::systems::UserCommands' filename='gz-sim-user-commands-system'/>\n    \u003Cplugin name='gz::sim::systems::SceneBroadcaster' filename='gz-sim-scene-broadcaster-system'/>\n    \u003Cplugin name='gz::sim::systems::Contact' filename='gz-sim-contact-system'/>\n    \u003Cgravity>0 0 -9.8\u003C/gravity>\n    \u003Cmagnetic_field>6e-06 2.3e-05 -4.2e-05\u003C/magnetic_field>\n    \u003Catmosphere type='adiabatic'/>\n    \u003Cscene>\n      \u003Cambient>0.4 0.4 0.4 1\u003C/ambient>\n      \u003Cbackground>0.7 0.7 0.7 1\u003C/background>\n      \u003Cshadows>true\u003C/shadows>\n    \u003C/scene>\n    \u003Cmodel name='ground_plane'>\n      \u003Cstatic>true\u003C/static>\n      \u003Clink name='link'>\n        \u003Ccollision name='collision'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C/normal>\n              \u003Csize>100 100\u003C/size>\n            \u003C/plane>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='visual'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C/normal>\n              \u003Csize>100 100\u003C/size>\n            \u003C/plane>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.8 0.8 0.8 1\u003C/ambient>\n            \u003Cdiffuse>0.8 0.8 0.8 1\u003C/diffuse>\n            \u003Cspecular>0.8 0.8 0.8 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cinertial>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n          \u003Cmass>100\u003C/mass>\n          \u003Cinertia>\n            \u003Cixx>1\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>1\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>1\u003C/izz>\n          \u003C/inertia>\n        \u003C/inertial>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box'>\n      \u003Cpose>5.0 0 0.5 -0 0 0\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_0'>\n      \u003Cpose>-5.0 -0 0.50000 -0 0 0\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_1'>\n      \u003Cpose>-0 -2.5 0.5 -0 -0 -0\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_2'>\n      \u003Cpose>-0 2.5 0.5 0 -0 -0\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Clight name='sun' type='directional'>\n      \u003Cpose>0 0 10 0 -0 0\u003C/pose>\n      \u003Ccast_shadows>true\u003C/cast_shadows>\n      \u003Cintensity>1\u003C/intensity>\n      \u003Cdirection>-0.5 0.1 -0.9\u003C/direction>\n      \u003Cdiffuse>0.8 0.8 0.8 1\u003C/diffuse>\n      \u003Cspecular>0.2 0.2 0.2 1\u003C/specular>\n      \u003Cattenuation>\n        \u003Crange>1000\u003C/range>\n        \u003Clinear>0.01\u003C/linear>\n        \u003Cconstant>0.90000000000000002\u003C/constant>\n        \u003Cquadratic>0.001\u003C/quadratic>\n      \u003C/attenuation>\n      \u003Cspot>\n        \u003Cinner_angle>0\u003C/inner_angle>\n        \u003Couter_angle>0\u003C/outer_angle>\n        \u003Cfalloff>0\u003C/falloff>\n      \u003C/spot>\n    \u003C/light>\n  \u003C/world>\n\u003C/sdf>\n",[81,3031,3032,3047,3063,3087,3101,3115,3129,3137,3162,3184,3206,3228,3242,3256,3272,3281,3295,3309,3323,3331,3346,3359,3374,3390,3399,3409,3424,3438,3447,3456,3465,3474,3483,3491,3500,3509,3517,3525,3541,3549,3557,3569,3581,3589,3597,3606,3619,3632,3645,3653,3661,3675,3683,3695,3708,3716,3728,3742,3755,3768,3782,3795,3804,3813,3828,3837,3850,3864,3873,3889,3903,3919,3928,3937,3951,3964,3977,3990,4003,4016,4025,4038,4051,4060,4076,4085,4095,4109,4118,4127,4136,4145,4154,4163,4172,4181,4190,4199,4215,4224,4233,4246,4255,4264,4273,4287,4300,4314,4323,4332,4345,4358,4367,4380,4393,4402,4418,4432,4447,4456,4465,4478,4491,4504,4517,4530,4543,4552,4565,4578,4587,4602,4611,4620,4633,4642,4651,4660,4669,4678,4687,4696,4705,4714,4723,4738,4747,4756,4769,4778,4787,4796,4809,4822,4835,4844,4853,4866,4879,4888,4901,4914,4923,4939,4953,4968,4977,4986,4999,5012,5025,5038,5051,5064,5073,5086,5099,5108,5123,5132,5141,5155,5164,5173,5182,5191,5200,5209,5218,5227,5236,5245,5260,5269,5278,5291,5300,5309,5318,5331,5344,5357,5366,5375,5388,5401,5410,5423,5436,5445,5461,5475,5490,5499,5508,5521,5534,5547,5560,5573,5586,5595,5608,5621,5630,5645,5654,5663,5676,5685,5694,5703,5712,5721,5730,5739,5748,5757,5766,5781,5790,5799,5812,5821,5830,5839,5852,5865,5878,5887,5896,5909,5922,5931,5944,5957,5966,5990,6004,6018,6032,6047,6060,6074,6084,6098,6113,6128,6142,6151,6161,6175,6189,6203,6212,6221,6230],{"__ignoreMap":79},[84,3033,3034,3036,3038,3040,3042,3045],{"class":86,"line":87},[84,3035,2502],{"class":118},[84,3037,2846],{"class":2505},[84,3039,2849],{"class":104},[84,3041,1805],{"class":118},[84,3043,3044],{"class":108},"'1.10'",[84,3046,2517],{"class":118},[84,3048,3049,3051,3054,3056,3058,3061],{"class":86,"line":94},[84,3050,2522],{"class":118},[84,3052,3053],{"class":2505},"world",[84,3055,2509],{"class":104},[84,3057,1805],{"class":118},[84,3059,3060],{"class":108},"'empty'",[84,3062,2517],{"class":118},[84,3064,3065,3067,3070,3072,3074,3077,3080,3082,3085],{"class":86,"line":101},[84,3066,2539],{"class":118},[84,3068,3069],{"class":2505},"physics",[84,3071,2509],{"class":104},[84,3073,1805],{"class":118},[84,3075,3076],{"class":108},"'1ms'",[84,3078,3079],{"class":104}," type",[84,3081,1805],{"class":118},[84,3083,3084],{"class":108},"'ignored'",[84,3086,2517],{"class":118},[84,3088,3089,3091,3094,3097,3099],{"class":86,"line":125},[84,3090,2549],{"class":118},[84,3092,3093],{"class":2505},"max_step_size",[84,3095,3096],{"class":118},">0.001\u003C/",[84,3098,3093],{"class":2505},[84,3100,2517],{"class":118},[84,3102,3103,3105,3108,3111,3113],{"class":86,"line":130},[84,3104,2549],{"class":118},[84,3106,3107],{"class":2505},"real_time_factor",[84,3109,3110],{"class":118},">1\u003C/",[84,3112,3107],{"class":2505},[84,3114,2517],{"class":118},[84,3116,3117,3119,3122,3125,3127],{"class":86,"line":136},[84,3118,2549],{"class":118},[84,3120,3121],{"class":2505},"real_time_update_rate",[84,3123,3124],{"class":118},">1000\u003C/",[84,3126,3121],{"class":2505},[84,3128,2517],{"class":118},[84,3130,3131,3133,3135],{"class":86,"line":148},[84,3132,2620],{"class":118},[84,3134,3069],{"class":2505},[84,3136,2517],{"class":118},[84,3138,3139,3141,3144,3146,3148,3151,3154,3156,3159],{"class":86,"line":153},[84,3140,2539],{"class":118},[84,3142,3143],{"class":2505},"plugin",[84,3145,2509],{"class":104},[84,3147,1805],{"class":118},[84,3149,3150],{"class":108},"'gz::sim::systems::Physics'",[84,3152,3153],{"class":104}," filename",[84,3155,1805],{"class":118},[84,3157,3158],{"class":108},"'gz-sim-physics-system'",[84,3160,3161],{"class":118},"/>\n",[84,3163,3164,3166,3168,3170,3172,3175,3177,3179,3182],{"class":86,"line":159},[84,3165,2539],{"class":118},[84,3167,3143],{"class":2505},[84,3169,2509],{"class":104},[84,3171,1805],{"class":118},[84,3173,3174],{"class":108},"'gz::sim::systems::UserCommands'",[84,3176,3153],{"class":104},[84,3178,1805],{"class":118},[84,3180,3181],{"class":108},"'gz-sim-user-commands-system'",[84,3183,3161],{"class":118},[84,3185,3186,3188,3190,3192,3194,3197,3199,3201,3204],{"class":86,"line":406},[84,3187,2539],{"class":118},[84,3189,3143],{"class":2505},[84,3191,2509],{"class":104},[84,3193,1805],{"class":118},[84,3195,3196],{"class":108},"'gz::sim::systems::SceneBroadcaster'",[84,3198,3153],{"class":104},[84,3200,1805],{"class":118},[84,3202,3203],{"class":108},"'gz-sim-scene-broadcaster-system'",[84,3205,3161],{"class":118},[84,3207,3208,3210,3212,3214,3216,3219,3221,3223,3226],{"class":86,"line":412},[84,3209,2539],{"class":118},[84,3211,3143],{"class":2505},[84,3213,2509],{"class":104},[84,3215,1805],{"class":118},[84,3217,3218],{"class":108},"'gz::sim::systems::Contact'",[84,3220,3153],{"class":104},[84,3222,1805],{"class":118},[84,3224,3225],{"class":108},"'gz-sim-contact-system'",[84,3227,3161],{"class":118},[84,3229,3230,3232,3235,3238,3240],{"class":86,"line":418},[84,3231,2539],{"class":118},[84,3233,3234],{"class":2505},"gravity",[84,3236,3237],{"class":118},">0 0 -9.8\u003C/",[84,3239,3234],{"class":2505},[84,3241,2517],{"class":118},[84,3243,3244,3246,3249,3252,3254],{"class":86,"line":424},[84,3245,2539],{"class":118},[84,3247,3248],{"class":2505},"magnetic_field",[84,3250,3251],{"class":118},">6e-06 2.3e-05 -4.2e-05\u003C/",[84,3253,3248],{"class":2505},[84,3255,2517],{"class":118},[84,3257,3258,3260,3263,3265,3267,3270],{"class":86,"line":1782},[84,3259,2539],{"class":118},[84,3261,3262],{"class":2505},"atmosphere",[84,3264,3079],{"class":104},[84,3266,1805],{"class":118},[84,3268,3269],{"class":108},"'adiabatic'",[84,3271,3161],{"class":118},[84,3273,3274,3276,3279],{"class":86,"line":1794},[84,3275,2539],{"class":118},[84,3277,3278],{"class":2505},"scene",[84,3280,2517],{"class":118},[84,3282,3283,3285,3288,3291,3293],{"class":86,"line":1799},[84,3284,2549],{"class":118},[84,3286,3287],{"class":2505},"ambient",[84,3289,3290],{"class":118},">0.4 0.4 0.4 1\u003C/",[84,3292,3287],{"class":2505},[84,3294,2517],{"class":118},[84,3296,3297,3299,3302,3305,3307],{"class":86,"line":1816},[84,3298,2549],{"class":118},[84,3300,3301],{"class":2505},"background",[84,3303,3304],{"class":118},">0.7 0.7 0.7 1\u003C/",[84,3306,3301],{"class":2505},[84,3308,2517],{"class":118},[84,3310,3311,3313,3316,3319,3321],{"class":86,"line":1831},[84,3312,2549],{"class":118},[84,3314,3315],{"class":2505},"shadows",[84,3317,3318],{"class":118},">true\u003C/",[84,3320,3315],{"class":2505},[84,3322,2517],{"class":118},[84,3324,3325,3327,3329],{"class":86,"line":1853},[84,3326,2620],{"class":118},[84,3328,3278],{"class":2505},[84,3330,2517],{"class":118},[84,3332,3333,3335,3337,3339,3341,3344],{"class":86,"line":1858},[84,3334,2539],{"class":118},[84,3336,2863],{"class":2505},[84,3338,2509],{"class":104},[84,3340,1805],{"class":118},[84,3342,3343],{"class":108},"'ground_plane'",[84,3345,2517],{"class":118},[84,3347,3348,3350,3353,3355,3357],{"class":86,"line":1869},[84,3349,2549],{"class":118},[84,3351,3352],{"class":2505},"static",[84,3354,3318],{"class":118},[84,3356,3352],{"class":2505},[84,3358,2517],{"class":118},[84,3360,3361,3363,3365,3367,3369,3372],{"class":86,"line":1875},[84,3362,2549],{"class":118},[84,3364,2525],{"class":2505},[84,3366,2509],{"class":104},[84,3368,1805],{"class":118},[84,3370,3371],{"class":108},"'link'",[84,3373,2517],{"class":118},[84,3375,3376,3378,3381,3383,3385,3388],{"class":86,"line":1893},[84,3377,2723],{"class":118},[84,3379,3380],{"class":2505},"collision",[84,3382,2509],{"class":104},[84,3384,1805],{"class":118},[84,3386,3387],{"class":108},"'collision'",[84,3389,2517],{"class":118},[84,3391,3392,3394,3397],{"class":86,"line":1905},[84,3393,2919],{"class":118},[84,3395,3396],{"class":2505},"geometry",[84,3398,2517],{"class":118},[84,3400,3401,3404,3407],{"class":86,"line":1923},[84,3402,3403],{"class":118},"            \u003C",[84,3405,3406],{"class":2505},"plane",[84,3408,2517],{"class":118},[84,3410,3411,3414,3417,3420,3422],{"class":86,"line":1929},[84,3412,3413],{"class":118},"              \u003C",[84,3415,3416],{"class":2505},"normal",[84,3418,3419],{"class":118},">0 0 1\u003C/",[84,3421,3416],{"class":2505},[84,3423,2517],{"class":118},[84,3425,3426,3428,3431,3434,3436],{"class":86,"line":1935},[84,3427,3413],{"class":118},[84,3429,3430],{"class":2505},"size",[84,3432,3433],{"class":118},">100 100\u003C/",[84,3435,3430],{"class":2505},[84,3437,2517],{"class":118},[84,3439,3440,3443,3445],{"class":86,"line":1940},[84,3441,3442],{"class":118},"            \u003C/",[84,3444,3406],{"class":2505},[84,3446,2517],{"class":118},[84,3448,3449,3452,3454],{"class":86,"line":1946},[84,3450,3451],{"class":118},"          \u003C/",[84,3453,3396],{"class":2505},[84,3455,2517],{"class":118},[84,3457,3458,3460,3463],{"class":86,"line":1957},[84,3459,2919],{"class":118},[84,3461,3462],{"class":2505},"surface",[84,3464,2517],{"class":118},[84,3466,3467,3469,3472],{"class":86,"line":1971},[84,3468,3403],{"class":118},[84,3470,3471],{"class":2505},"friction",[84,3473,2517],{"class":118},[84,3475,3476,3478,3481],{"class":86,"line":1983},[84,3477,3413],{"class":118},[84,3479,3480],{"class":2505},"ode",[84,3482,3161],{"class":118},[84,3484,3485,3487,3489],{"class":86,"line":2010},[84,3486,3442],{"class":118},[84,3488,3471],{"class":2505},[84,3490,2517],{"class":118},[84,3492,3493,3495,3498],{"class":86,"line":2026},[84,3494,3403],{"class":118},[84,3496,3497],{"class":2505},"bounce",[84,3499,3161],{"class":118},[84,3501,3502,3504,3507],{"class":86,"line":2031},[84,3503,3403],{"class":118},[84,3505,3506],{"class":2505},"contact",[84,3508,3161],{"class":118},[84,3510,3511,3513,3515],{"class":86,"line":2036},[84,3512,3451],{"class":118},[84,3514,3462],{"class":2505},[84,3516,2517],{"class":118},[84,3518,3519,3521,3523],{"class":86,"line":2042},[84,3520,2959],{"class":118},[84,3522,3380],{"class":2505},[84,3524,2517],{"class":118},[84,3526,3527,3529,3532,3534,3536,3539],{"class":86,"line":2052},[84,3528,2723],{"class":118},[84,3530,3531],{"class":2505},"visual",[84,3533,2509],{"class":104},[84,3535,1805],{"class":118},[84,3537,3538],{"class":108},"'visual'",[84,3540,2517],{"class":118},[84,3542,3543,3545,3547],{"class":86,"line":2065},[84,3544,2919],{"class":118},[84,3546,3396],{"class":2505},[84,3548,2517],{"class":118},[84,3550,3551,3553,3555],{"class":86,"line":2078},[84,3552,3403],{"class":118},[84,3554,3406],{"class":2505},[84,3556,2517],{"class":118},[84,3558,3559,3561,3563,3565,3567],{"class":86,"line":2093},[84,3560,3413],{"class":118},[84,3562,3416],{"class":2505},[84,3564,3419],{"class":118},[84,3566,3416],{"class":2505},[84,3568,2517],{"class":118},[84,3570,3571,3573,3575,3577,3579],{"class":86,"line":2101},[84,3572,3413],{"class":118},[84,3574,3430],{"class":2505},[84,3576,3433],{"class":118},[84,3578,3430],{"class":2505},[84,3580,2517],{"class":118},[84,3582,3583,3585,3587],{"class":86,"line":2109},[84,3584,3442],{"class":118},[84,3586,3406],{"class":2505},[84,3588,2517],{"class":118},[84,3590,3591,3593,3595],{"class":86,"line":2115},[84,3592,3451],{"class":118},[84,3594,3396],{"class":2505},[84,3596,2517],{"class":118},[84,3598,3599,3601,3604],{"class":86,"line":2137},[84,3600,2919],{"class":118},[84,3602,3603],{"class":2505},"material",[84,3605,2517],{"class":118},[84,3607,3608,3610,3612,3615,3617],{"class":86,"line":2148},[84,3609,3403],{"class":118},[84,3611,3287],{"class":2505},[84,3613,3614],{"class":118},">0.8 0.8 0.8 1\u003C/",[84,3616,3287],{"class":2505},[84,3618,2517],{"class":118},[84,3620,3621,3623,3626,3628,3630],{"class":86,"line":2165},[84,3622,3403],{"class":118},[84,3624,3625],{"class":2505},"diffuse",[84,3627,3614],{"class":118},[84,3629,3625],{"class":2505},[84,3631,2517],{"class":118},[84,3633,3634,3636,3639,3641,3643],{"class":86,"line":2180},[84,3635,3403],{"class":118},[84,3637,3638],{"class":2505},"specular",[84,3640,3614],{"class":118},[84,3642,3638],{"class":2505},[84,3644,2517],{"class":118},[84,3646,3647,3649,3651],{"class":86,"line":2186},[84,3648,3451],{"class":118},[84,3650,3603],{"class":2505},[84,3652,2517],{"class":118},[84,3654,3655,3657,3659],{"class":86,"line":2197},[84,3656,2959],{"class":118},[84,3658,3531],{"class":2505},[84,3660,2517],{"class":118},[84,3662,3663,3665,3668,3671,3673],{"class":86,"line":2202},[84,3664,2723],{"class":118},[84,3666,3667],{"class":2505},"pose",[84,3669,3670],{"class":118},">0 0 0 0 -0 0\u003C/",[84,3672,3667],{"class":2505},[84,3674,2517],{"class":118},[84,3676,3677,3679,3681],{"class":86,"line":2207},[84,3678,2723],{"class":118},[84,3680,2542],{"class":2505},[84,3682,2517],{"class":118},[84,3684,3685,3687,3689,3691,3693],{"class":86,"line":2216},[84,3686,2919],{"class":118},[84,3688,3667],{"class":2505},[84,3690,3670],{"class":118},[84,3692,3667],{"class":2505},[84,3694,2517],{"class":118},[84,3696,3697,3699,3701,3704,3706],{"class":86,"line":2222},[84,3698,2919],{"class":118},[84,3700,2552],{"class":2505},[84,3702,3703],{"class":118},">100\u003C/",[84,3705,2552],{"class":2505},[84,3707,2517],{"class":118},[84,3709,3710,3712,3714],{"class":86,"line":2242},[84,3711,2919],{"class":118},[84,3713,2570],{"class":2505},[84,3715,2517],{"class":118},[84,3717,3718,3720,3722,3724,3726],{"class":86,"line":2255},[84,3719,3403],{"class":118},[84,3721,2922],{"class":2505},[84,3723,3110],{"class":118},[84,3725,2922],{"class":2505},[84,3727,2517],{"class":118},[84,3729,3730,3732,3735,3738,3740],{"class":86,"line":2261},[84,3731,3403],{"class":118},[84,3733,3734],{"class":2505},"ixy",[84,3736,3737],{"class":118},">0\u003C/",[84,3739,3734],{"class":2505},[84,3741,2517],{"class":118},[84,3743,3744,3746,3749,3751,3753],{"class":86,"line":2267},[84,3745,3403],{"class":118},[84,3747,3748],{"class":2505},"ixz",[84,3750,3737],{"class":118},[84,3752,3748],{"class":2505},[84,3754,2517],{"class":118},[84,3756,3758,3760,3762,3764,3766],{"class":86,"line":3757},59,[84,3759,3403],{"class":118},[84,3761,2935],{"class":2505},[84,3763,3110],{"class":118},[84,3765,2935],{"class":2505},[84,3767,2517],{"class":118},[84,3769,3771,3773,3776,3778,3780],{"class":86,"line":3770},60,[84,3772,3403],{"class":118},[84,3774,3775],{"class":2505},"iyz",[84,3777,3737],{"class":118},[84,3779,3775],{"class":2505},[84,3781,2517],{"class":118},[84,3783,3785,3787,3789,3791,3793],{"class":86,"line":3784},61,[84,3786,3403],{"class":118},[84,3788,2948],{"class":2505},[84,3790,3110],{"class":118},[84,3792,2948],{"class":2505},[84,3794,2517],{"class":118},[84,3796,3798,3800,3802],{"class":86,"line":3797},62,[84,3799,3451],{"class":118},[84,3801,2570],{"class":2505},[84,3803,2517],{"class":118},[84,3805,3807,3809,3811],{"class":86,"line":3806},63,[84,3808,2959],{"class":118},[84,3810,2542],{"class":2505},[84,3812,2517],{"class":118},[84,3814,3816,3818,3821,3824,3826],{"class":86,"line":3815},64,[84,3817,2723],{"class":118},[84,3819,3820],{"class":2505},"enable_wind",[84,3822,3823],{"class":118},">false\u003C/",[84,3825,3820],{"class":2505},[84,3827,2517],{"class":118},[84,3829,3831,3833,3835],{"class":86,"line":3830},65,[84,3832,2783],{"class":118},[84,3834,2525],{"class":2505},[84,3836,2517],{"class":118},[84,3838,3840,3842,3844,3846,3848],{"class":86,"line":3839},66,[84,3841,2549],{"class":118},[84,3843,3667],{"class":2505},[84,3845,3670],{"class":118},[84,3847,3667],{"class":2505},[84,3849,2517],{"class":118},[84,3851,3853,3855,3858,3860,3862],{"class":86,"line":3852},67,[84,3854,2549],{"class":118},[84,3856,3857],{"class":2505},"self_collide",[84,3859,3823],{"class":118},[84,3861,3857],{"class":2505},[84,3863,2517],{"class":118},[84,3865,3867,3869,3871],{"class":86,"line":3866},68,[84,3868,2620],{"class":118},[84,3870,2863],{"class":2505},[84,3872,2517],{"class":118},[84,3874,3876,3878,3880,3882,3884,3887],{"class":86,"line":3875},69,[84,3877,2539],{"class":118},[84,3879,2863],{"class":2505},[84,3881,2509],{"class":104},[84,3883,1805],{"class":118},[84,3885,3886],{"class":108},"'box'",[84,3888,2517],{"class":118},[84,3890,3892,3894,3896,3899,3901],{"class":86,"line":3891},70,[84,3893,2549],{"class":118},[84,3895,3667],{"class":2505},[84,3897,3898],{"class":118},">5.0 0 0.5 -0 0 0\u003C/",[84,3900,3667],{"class":2505},[84,3902,2517],{"class":118},[84,3904,3906,3908,3910,3912,3914,3917],{"class":86,"line":3905},71,[84,3907,2549],{"class":118},[84,3909,2525],{"class":2505},[84,3911,2509],{"class":104},[84,3913,1805],{"class":118},[84,3915,3916],{"class":108},"'box_link'",[84,3918,2517],{"class":118},[84,3920,3922,3924,3926],{"class":86,"line":3921},72,[84,3923,2723],{"class":118},[84,3925,2542],{"class":2505},[84,3927,2517],{"class":118},[84,3929,3931,3933,3935],{"class":86,"line":3930},73,[84,3932,2919],{"class":118},[84,3934,2570],{"class":2505},[84,3936,2517],{"class":118},[84,3938,3940,3942,3944,3947,3949],{"class":86,"line":3939},74,[84,3941,3403],{"class":118},[84,3943,2922],{"class":2505},[84,3945,3946],{"class":118},">16.666\u003C/",[84,3948,2922],{"class":2505},[84,3950,2517],{"class":118},[84,3952,3954,3956,3958,3960,3962],{"class":86,"line":3953},75,[84,3955,3403],{"class":118},[84,3957,3734],{"class":2505},[84,3959,3737],{"class":118},[84,3961,3734],{"class":2505},[84,3963,2517],{"class":118},[84,3965,3967,3969,3971,3973,3975],{"class":86,"line":3966},76,[84,3968,3403],{"class":118},[84,3970,3748],{"class":2505},[84,3972,3737],{"class":118},[84,3974,3748],{"class":2505},[84,3976,2517],{"class":118},[84,3978,3980,3982,3984,3986,3988],{"class":86,"line":3979},77,[84,3981,3403],{"class":118},[84,3983,2935],{"class":2505},[84,3985,3946],{"class":118},[84,3987,2935],{"class":2505},[84,3989,2517],{"class":118},[84,3991,3993,3995,3997,3999,4001],{"class":86,"line":3992},78,[84,3994,3403],{"class":118},[84,3996,3775],{"class":2505},[84,3998,3737],{"class":118},[84,4000,3775],{"class":2505},[84,4002,2517],{"class":118},[84,4004,4006,4008,4010,4012,4014],{"class":86,"line":4005},79,[84,4007,3403],{"class":118},[84,4009,2948],{"class":2505},[84,4011,3946],{"class":118},[84,4013,2948],{"class":2505},[84,4015,2517],{"class":118},[84,4017,4019,4021,4023],{"class":86,"line":4018},80,[84,4020,3451],{"class":118},[84,4022,2570],{"class":2505},[84,4024,2517],{"class":118},[84,4026,4028,4030,4032,4034,4036],{"class":86,"line":4027},81,[84,4029,2919],{"class":118},[84,4031,2552],{"class":2505},[84,4033,3703],{"class":118},[84,4035,2552],{"class":2505},[84,4037,2517],{"class":118},[84,4039,4041,4043,4045,4047,4049],{"class":86,"line":4040},82,[84,4042,2919],{"class":118},[84,4044,3667],{"class":2505},[84,4046,3670],{"class":118},[84,4048,3667],{"class":2505},[84,4050,2517],{"class":118},[84,4052,4054,4056,4058],{"class":86,"line":4053},83,[84,4055,2959],{"class":118},[84,4057,2542],{"class":2505},[84,4059,2517],{"class":118},[84,4061,4063,4065,4067,4069,4071,4074],{"class":86,"line":4062},84,[84,4064,2723],{"class":118},[84,4066,3380],{"class":2505},[84,4068,2509],{"class":104},[84,4070,1805],{"class":118},[84,4072,4073],{"class":108},"'box_collision'",[84,4075,2517],{"class":118},[84,4077,4079,4081,4083],{"class":86,"line":4078},85,[84,4080,2919],{"class":118},[84,4082,3396],{"class":2505},[84,4084,2517],{"class":118},[84,4086,4088,4090,4093],{"class":86,"line":4087},86,[84,4089,3403],{"class":118},[84,4091,4092],{"class":2505},"box",[84,4094,2517],{"class":118},[84,4096,4098,4100,4102,4105,4107],{"class":86,"line":4097},87,[84,4099,3413],{"class":118},[84,4101,3430],{"class":2505},[84,4103,4104],{"class":118},">0.1 5 1\u003C/",[84,4106,3430],{"class":2505},[84,4108,2517],{"class":118},[84,4110,4112,4114,4116],{"class":86,"line":4111},88,[84,4113,3442],{"class":118},[84,4115,4092],{"class":2505},[84,4117,2517],{"class":118},[84,4119,4121,4123,4125],{"class":86,"line":4120},89,[84,4122,3451],{"class":118},[84,4124,3396],{"class":2505},[84,4126,2517],{"class":118},[84,4128,4130,4132,4134],{"class":86,"line":4129},90,[84,4131,2919],{"class":118},[84,4133,3462],{"class":2505},[84,4135,2517],{"class":118},[84,4137,4139,4141,4143],{"class":86,"line":4138},91,[84,4140,3403],{"class":118},[84,4142,3471],{"class":2505},[84,4144,2517],{"class":118},[84,4146,4148,4150,4152],{"class":86,"line":4147},92,[84,4149,3413],{"class":118},[84,4151,3480],{"class":2505},[84,4153,3161],{"class":118},[84,4155,4157,4159,4161],{"class":86,"line":4156},93,[84,4158,3442],{"class":118},[84,4160,3471],{"class":2505},[84,4162,2517],{"class":118},[84,4164,4166,4168,4170],{"class":86,"line":4165},94,[84,4167,3403],{"class":118},[84,4169,3497],{"class":2505},[84,4171,3161],{"class":118},[84,4173,4175,4177,4179],{"class":86,"line":4174},95,[84,4176,3403],{"class":118},[84,4178,3506],{"class":2505},[84,4180,3161],{"class":118},[84,4182,4184,4186,4188],{"class":86,"line":4183},96,[84,4185,3451],{"class":118},[84,4187,3462],{"class":2505},[84,4189,2517],{"class":118},[84,4191,4193,4195,4197],{"class":86,"line":4192},97,[84,4194,2959],{"class":118},[84,4196,3380],{"class":2505},[84,4198,2517],{"class":118},[84,4200,4202,4204,4206,4208,4210,4213],{"class":86,"line":4201},98,[84,4203,2723],{"class":118},[84,4205,3531],{"class":2505},[84,4207,2509],{"class":104},[84,4209,1805],{"class":118},[84,4211,4212],{"class":108},"'box_visual'",[84,4214,2517],{"class":118},[84,4216,4218,4220,4222],{"class":86,"line":4217},99,[84,4219,2919],{"class":118},[84,4221,3396],{"class":2505},[84,4223,2517],{"class":118},[84,4225,4227,4229,4231],{"class":86,"line":4226},100,[84,4228,3403],{"class":118},[84,4230,4092],{"class":2505},[84,4232,2517],{"class":118},[84,4234,4236,4238,4240,4242,4244],{"class":86,"line":4235},101,[84,4237,3413],{"class":118},[84,4239,3430],{"class":2505},[84,4241,4104],{"class":118},[84,4243,3430],{"class":2505},[84,4245,2517],{"class":118},[84,4247,4249,4251,4253],{"class":86,"line":4248},102,[84,4250,3442],{"class":118},[84,4252,4092],{"class":2505},[84,4254,2517],{"class":118},[84,4256,4258,4260,4262],{"class":86,"line":4257},103,[84,4259,3451],{"class":118},[84,4261,3396],{"class":2505},[84,4263,2517],{"class":118},[84,4265,4267,4269,4271],{"class":86,"line":4266},104,[84,4268,2919],{"class":118},[84,4270,3603],{"class":2505},[84,4272,2517],{"class":118},[84,4274,4276,4278,4280,4283,4285],{"class":86,"line":4275},105,[84,4277,3403],{"class":118},[84,4279,3287],{"class":2505},[84,4281,4282],{"class":118},">0.3 0.3 0.3 1\u003C/",[84,4284,3287],{"class":2505},[84,4286,2517],{"class":118},[84,4288,4290,4292,4294,4296,4298],{"class":86,"line":4289},106,[84,4291,3403],{"class":118},[84,4293,3625],{"class":2505},[84,4295,3304],{"class":118},[84,4297,3625],{"class":2505},[84,4299,2517],{"class":118},[84,4301,4303,4305,4307,4310,4312],{"class":86,"line":4302},107,[84,4304,3403],{"class":118},[84,4306,3638],{"class":2505},[84,4308,4309],{"class":118},">1 1 1 1\u003C/",[84,4311,3638],{"class":2505},[84,4313,2517],{"class":118},[84,4315,4317,4319,4321],{"class":86,"line":4316},108,[84,4318,3451],{"class":118},[84,4320,3603],{"class":2505},[84,4322,2517],{"class":118},[84,4324,4326,4328,4330],{"class":86,"line":4325},109,[84,4327,2959],{"class":118},[84,4329,3531],{"class":2505},[84,4331,2517],{"class":118},[84,4333,4335,4337,4339,4341,4343],{"class":86,"line":4334},110,[84,4336,2723],{"class":118},[84,4338,3667],{"class":2505},[84,4340,3670],{"class":118},[84,4342,3667],{"class":2505},[84,4344,2517],{"class":118},[84,4346,4348,4350,4352,4354,4356],{"class":86,"line":4347},111,[84,4349,2723],{"class":118},[84,4351,3820],{"class":2505},[84,4353,3823],{"class":118},[84,4355,3820],{"class":2505},[84,4357,2517],{"class":118},[84,4359,4361,4363,4365],{"class":86,"line":4360},112,[84,4362,2783],{"class":118},[84,4364,2525],{"class":2505},[84,4366,2517],{"class":118},[84,4368,4370,4372,4374,4376,4378],{"class":86,"line":4369},113,[84,4371,2549],{"class":118},[84,4373,3352],{"class":2505},[84,4375,3318],{"class":118},[84,4377,3352],{"class":2505},[84,4379,2517],{"class":118},[84,4381,4383,4385,4387,4389,4391],{"class":86,"line":4382},114,[84,4384,2549],{"class":118},[84,4386,3857],{"class":2505},[84,4388,3823],{"class":118},[84,4390,3857],{"class":2505},[84,4392,2517],{"class":118},[84,4394,4396,4398,4400],{"class":86,"line":4395},115,[84,4397,2620],{"class":118},[84,4399,2863],{"class":2505},[84,4401,2517],{"class":118},[84,4403,4405,4407,4409,4411,4413,4416],{"class":86,"line":4404},116,[84,4406,2539],{"class":118},[84,4408,2863],{"class":2505},[84,4410,2509],{"class":104},[84,4412,1805],{"class":118},[84,4414,4415],{"class":108},"'box_0'",[84,4417,2517],{"class":118},[84,4419,4421,4423,4425,4428,4430],{"class":86,"line":4420},117,[84,4422,2549],{"class":118},[84,4424,3667],{"class":2505},[84,4426,4427],{"class":118},">-5.0 -0 0.50000 -0 0 0\u003C/",[84,4429,3667],{"class":2505},[84,4431,2517],{"class":118},[84,4433,4435,4437,4439,4441,4443,4445],{"class":86,"line":4434},118,[84,4436,2549],{"class":118},[84,4438,2525],{"class":2505},[84,4440,2509],{"class":104},[84,4442,1805],{"class":118},[84,4444,3916],{"class":108},[84,4446,2517],{"class":118},[84,4448,4450,4452,4454],{"class":86,"line":4449},119,[84,4451,2723],{"class":118},[84,4453,2542],{"class":2505},[84,4455,2517],{"class":118},[84,4457,4459,4461,4463],{"class":86,"line":4458},120,[84,4460,2919],{"class":118},[84,4462,2570],{"class":2505},[84,4464,2517],{"class":118},[84,4466,4468,4470,4472,4474,4476],{"class":86,"line":4467},121,[84,4469,3403],{"class":118},[84,4471,2922],{"class":2505},[84,4473,3946],{"class":118},[84,4475,2922],{"class":2505},[84,4477,2517],{"class":118},[84,4479,4481,4483,4485,4487,4489],{"class":86,"line":4480},122,[84,4482,3403],{"class":118},[84,4484,3734],{"class":2505},[84,4486,3737],{"class":118},[84,4488,3734],{"class":2505},[84,4490,2517],{"class":118},[84,4492,4494,4496,4498,4500,4502],{"class":86,"line":4493},123,[84,4495,3403],{"class":118},[84,4497,3748],{"class":2505},[84,4499,3737],{"class":118},[84,4501,3748],{"class":2505},[84,4503,2517],{"class":118},[84,4505,4507,4509,4511,4513,4515],{"class":86,"line":4506},124,[84,4508,3403],{"class":118},[84,4510,2935],{"class":2505},[84,4512,3946],{"class":118},[84,4514,2935],{"class":2505},[84,4516,2517],{"class":118},[84,4518,4520,4522,4524,4526,4528],{"class":86,"line":4519},125,[84,4521,3403],{"class":118},[84,4523,3775],{"class":2505},[84,4525,3737],{"class":118},[84,4527,3775],{"class":2505},[84,4529,2517],{"class":118},[84,4531,4533,4535,4537,4539,4541],{"class":86,"line":4532},126,[84,4534,3403],{"class":118},[84,4536,2948],{"class":2505},[84,4538,3946],{"class":118},[84,4540,2948],{"class":2505},[84,4542,2517],{"class":118},[84,4544,4546,4548,4550],{"class":86,"line":4545},127,[84,4547,3451],{"class":118},[84,4549,2570],{"class":2505},[84,4551,2517],{"class":118},[84,4553,4555,4557,4559,4561,4563],{"class":86,"line":4554},128,[84,4556,2919],{"class":118},[84,4558,2552],{"class":2505},[84,4560,3703],{"class":118},[84,4562,2552],{"class":2505},[84,4564,2517],{"class":118},[84,4566,4568,4570,4572,4574,4576],{"class":86,"line":4567},129,[84,4569,2919],{"class":118},[84,4571,3667],{"class":2505},[84,4573,3670],{"class":118},[84,4575,3667],{"class":2505},[84,4577,2517],{"class":118},[84,4579,4581,4583,4585],{"class":86,"line":4580},130,[84,4582,2959],{"class":118},[84,4584,2542],{"class":2505},[84,4586,2517],{"class":118},[84,4588,4590,4592,4594,4596,4598,4600],{"class":86,"line":4589},131,[84,4591,2723],{"class":118},[84,4593,3380],{"class":2505},[84,4595,2509],{"class":104},[84,4597,1805],{"class":118},[84,4599,4073],{"class":108},[84,4601,2517],{"class":118},[84,4603,4605,4607,4609],{"class":86,"line":4604},132,[84,4606,2919],{"class":118},[84,4608,3396],{"class":2505},[84,4610,2517],{"class":118},[84,4612,4614,4616,4618],{"class":86,"line":4613},133,[84,4615,3403],{"class":118},[84,4617,4092],{"class":2505},[84,4619,2517],{"class":118},[84,4621,4623,4625,4627,4629,4631],{"class":86,"line":4622},134,[84,4624,3413],{"class":118},[84,4626,3430],{"class":2505},[84,4628,4104],{"class":118},[84,4630,3430],{"class":2505},[84,4632,2517],{"class":118},[84,4634,4636,4638,4640],{"class":86,"line":4635},135,[84,4637,3442],{"class":118},[84,4639,4092],{"class":2505},[84,4641,2517],{"class":118},[84,4643,4645,4647,4649],{"class":86,"line":4644},136,[84,4646,3451],{"class":118},[84,4648,3396],{"class":2505},[84,4650,2517],{"class":118},[84,4652,4654,4656,4658],{"class":86,"line":4653},137,[84,4655,2919],{"class":118},[84,4657,3462],{"class":2505},[84,4659,2517],{"class":118},[84,4661,4663,4665,4667],{"class":86,"line":4662},138,[84,4664,3403],{"class":118},[84,4666,3471],{"class":2505},[84,4668,2517],{"class":118},[84,4670,4672,4674,4676],{"class":86,"line":4671},139,[84,4673,3413],{"class":118},[84,4675,3480],{"class":2505},[84,4677,3161],{"class":118},[84,4679,4681,4683,4685],{"class":86,"line":4680},140,[84,4682,3442],{"class":118},[84,4684,3471],{"class":2505},[84,4686,2517],{"class":118},[84,4688,4690,4692,4694],{"class":86,"line":4689},141,[84,4691,3403],{"class":118},[84,4693,3497],{"class":2505},[84,4695,3161],{"class":118},[84,4697,4699,4701,4703],{"class":86,"line":4698},142,[84,4700,3403],{"class":118},[84,4702,3506],{"class":2505},[84,4704,3161],{"class":118},[84,4706,4708,4710,4712],{"class":86,"line":4707},143,[84,4709,3451],{"class":118},[84,4711,3462],{"class":2505},[84,4713,2517],{"class":118},[84,4715,4717,4719,4721],{"class":86,"line":4716},144,[84,4718,2959],{"class":118},[84,4720,3380],{"class":2505},[84,4722,2517],{"class":118},[84,4724,4726,4728,4730,4732,4734,4736],{"class":86,"line":4725},145,[84,4727,2723],{"class":118},[84,4729,3531],{"class":2505},[84,4731,2509],{"class":104},[84,4733,1805],{"class":118},[84,4735,4212],{"class":108},[84,4737,2517],{"class":118},[84,4739,4741,4743,4745],{"class":86,"line":4740},146,[84,4742,2919],{"class":118},[84,4744,3396],{"class":2505},[84,4746,2517],{"class":118},[84,4748,4750,4752,4754],{"class":86,"line":4749},147,[84,4751,3403],{"class":118},[84,4753,4092],{"class":2505},[84,4755,2517],{"class":118},[84,4757,4759,4761,4763,4765,4767],{"class":86,"line":4758},148,[84,4760,3413],{"class":118},[84,4762,3430],{"class":2505},[84,4764,4104],{"class":118},[84,4766,3430],{"class":2505},[84,4768,2517],{"class":118},[84,4770,4772,4774,4776],{"class":86,"line":4771},149,[84,4773,3442],{"class":118},[84,4775,4092],{"class":2505},[84,4777,2517],{"class":118},[84,4779,4781,4783,4785],{"class":86,"line":4780},150,[84,4782,3451],{"class":118},[84,4784,3396],{"class":2505},[84,4786,2517],{"class":118},[84,4788,4790,4792,4794],{"class":86,"line":4789},151,[84,4791,2919],{"class":118},[84,4793,3603],{"class":2505},[84,4795,2517],{"class":118},[84,4797,4799,4801,4803,4805,4807],{"class":86,"line":4798},152,[84,4800,3403],{"class":118},[84,4802,3287],{"class":2505},[84,4804,4282],{"class":118},[84,4806,3287],{"class":2505},[84,4808,2517],{"class":118},[84,4810,4812,4814,4816,4818,4820],{"class":86,"line":4811},153,[84,4813,3403],{"class":118},[84,4815,3625],{"class":2505},[84,4817,3304],{"class":118},[84,4819,3625],{"class":2505},[84,4821,2517],{"class":118},[84,4823,4825,4827,4829,4831,4833],{"class":86,"line":4824},154,[84,4826,3403],{"class":118},[84,4828,3638],{"class":2505},[84,4830,4309],{"class":118},[84,4832,3638],{"class":2505},[84,4834,2517],{"class":118},[84,4836,4838,4840,4842],{"class":86,"line":4837},155,[84,4839,3451],{"class":118},[84,4841,3603],{"class":2505},[84,4843,2517],{"class":118},[84,4845,4847,4849,4851],{"class":86,"line":4846},156,[84,4848,2959],{"class":118},[84,4850,3531],{"class":2505},[84,4852,2517],{"class":118},[84,4854,4856,4858,4860,4862,4864],{"class":86,"line":4855},157,[84,4857,2723],{"class":118},[84,4859,3667],{"class":2505},[84,4861,3670],{"class":118},[84,4863,3667],{"class":2505},[84,4865,2517],{"class":118},[84,4867,4869,4871,4873,4875,4877],{"class":86,"line":4868},158,[84,4870,2723],{"class":118},[84,4872,3820],{"class":2505},[84,4874,3823],{"class":118},[84,4876,3820],{"class":2505},[84,4878,2517],{"class":118},[84,4880,4882,4884,4886],{"class":86,"line":4881},159,[84,4883,2783],{"class":118},[84,4885,2525],{"class":2505},[84,4887,2517],{"class":118},[84,4889,4891,4893,4895,4897,4899],{"class":86,"line":4890},160,[84,4892,2549],{"class":118},[84,4894,3352],{"class":2505},[84,4896,3318],{"class":118},[84,4898,3352],{"class":2505},[84,4900,2517],{"class":118},[84,4902,4904,4906,4908,4910,4912],{"class":86,"line":4903},161,[84,4905,2549],{"class":118},[84,4907,3857],{"class":2505},[84,4909,3823],{"class":118},[84,4911,3857],{"class":2505},[84,4913,2517],{"class":118},[84,4915,4917,4919,4921],{"class":86,"line":4916},162,[84,4918,2620],{"class":118},[84,4920,2863],{"class":2505},[84,4922,2517],{"class":118},[84,4924,4926,4928,4930,4932,4934,4937],{"class":86,"line":4925},163,[84,4927,2539],{"class":118},[84,4929,2863],{"class":2505},[84,4931,2509],{"class":104},[84,4933,1805],{"class":118},[84,4935,4936],{"class":108},"'box_1'",[84,4938,2517],{"class":118},[84,4940,4942,4944,4946,4949,4951],{"class":86,"line":4941},164,[84,4943,2549],{"class":118},[84,4945,3667],{"class":2505},[84,4947,4948],{"class":118},">-0 -2.5 0.5 -0 -0 -0\u003C/",[84,4950,3667],{"class":2505},[84,4952,2517],{"class":118},[84,4954,4956,4958,4960,4962,4964,4966],{"class":86,"line":4955},165,[84,4957,2549],{"class":118},[84,4959,2525],{"class":2505},[84,4961,2509],{"class":104},[84,4963,1805],{"class":118},[84,4965,3916],{"class":108},[84,4967,2517],{"class":118},[84,4969,4971,4973,4975],{"class":86,"line":4970},166,[84,4972,2723],{"class":118},[84,4974,2542],{"class":2505},[84,4976,2517],{"class":118},[84,4978,4980,4982,4984],{"class":86,"line":4979},167,[84,4981,2919],{"class":118},[84,4983,2570],{"class":2505},[84,4985,2517],{"class":118},[84,4987,4989,4991,4993,4995,4997],{"class":86,"line":4988},168,[84,4990,3403],{"class":118},[84,4992,2922],{"class":2505},[84,4994,3946],{"class":118},[84,4996,2922],{"class":2505},[84,4998,2517],{"class":118},[84,5000,5002,5004,5006,5008,5010],{"class":86,"line":5001},169,[84,5003,3403],{"class":118},[84,5005,3734],{"class":2505},[84,5007,3737],{"class":118},[84,5009,3734],{"class":2505},[84,5011,2517],{"class":118},[84,5013,5015,5017,5019,5021,5023],{"class":86,"line":5014},170,[84,5016,3403],{"class":118},[84,5018,3748],{"class":2505},[84,5020,3737],{"class":118},[84,5022,3748],{"class":2505},[84,5024,2517],{"class":118},[84,5026,5028,5030,5032,5034,5036],{"class":86,"line":5027},171,[84,5029,3403],{"class":118},[84,5031,2935],{"class":2505},[84,5033,3946],{"class":118},[84,5035,2935],{"class":2505},[84,5037,2517],{"class":118},[84,5039,5041,5043,5045,5047,5049],{"class":86,"line":5040},172,[84,5042,3403],{"class":118},[84,5044,3775],{"class":2505},[84,5046,3737],{"class":118},[84,5048,3775],{"class":2505},[84,5050,2517],{"class":118},[84,5052,5054,5056,5058,5060,5062],{"class":86,"line":5053},173,[84,5055,3403],{"class":118},[84,5057,2948],{"class":2505},[84,5059,3946],{"class":118},[84,5061,2948],{"class":2505},[84,5063,2517],{"class":118},[84,5065,5067,5069,5071],{"class":86,"line":5066},174,[84,5068,3451],{"class":118},[84,5070,2570],{"class":2505},[84,5072,2517],{"class":118},[84,5074,5076,5078,5080,5082,5084],{"class":86,"line":5075},175,[84,5077,2919],{"class":118},[84,5079,2552],{"class":2505},[84,5081,3703],{"class":118},[84,5083,2552],{"class":2505},[84,5085,2517],{"class":118},[84,5087,5089,5091,5093,5095,5097],{"class":86,"line":5088},176,[84,5090,2919],{"class":118},[84,5092,3667],{"class":2505},[84,5094,3670],{"class":118},[84,5096,3667],{"class":2505},[84,5098,2517],{"class":118},[84,5100,5102,5104,5106],{"class":86,"line":5101},177,[84,5103,2959],{"class":118},[84,5105,2542],{"class":2505},[84,5107,2517],{"class":118},[84,5109,5111,5113,5115,5117,5119,5121],{"class":86,"line":5110},178,[84,5112,2723],{"class":118},[84,5114,3380],{"class":2505},[84,5116,2509],{"class":104},[84,5118,1805],{"class":118},[84,5120,4073],{"class":108},[84,5122,2517],{"class":118},[84,5124,5126,5128,5130],{"class":86,"line":5125},179,[84,5127,2919],{"class":118},[84,5129,3396],{"class":2505},[84,5131,2517],{"class":118},[84,5133,5135,5137,5139],{"class":86,"line":5134},180,[84,5136,3403],{"class":118},[84,5138,4092],{"class":2505},[84,5140,2517],{"class":118},[84,5142,5144,5146,5148,5151,5153],{"class":86,"line":5143},181,[84,5145,3413],{"class":118},[84,5147,3430],{"class":2505},[84,5149,5150],{"class":118},">10 0.1 1\u003C/",[84,5152,3430],{"class":2505},[84,5154,2517],{"class":118},[84,5156,5158,5160,5162],{"class":86,"line":5157},182,[84,5159,3442],{"class":118},[84,5161,4092],{"class":2505},[84,5163,2517],{"class":118},[84,5165,5167,5169,5171],{"class":86,"line":5166},183,[84,5168,3451],{"class":118},[84,5170,3396],{"class":2505},[84,5172,2517],{"class":118},[84,5174,5176,5178,5180],{"class":86,"line":5175},184,[84,5177,2919],{"class":118},[84,5179,3462],{"class":2505},[84,5181,2517],{"class":118},[84,5183,5185,5187,5189],{"class":86,"line":5184},185,[84,5186,3403],{"class":118},[84,5188,3471],{"class":2505},[84,5190,2517],{"class":118},[84,5192,5194,5196,5198],{"class":86,"line":5193},186,[84,5195,3413],{"class":118},[84,5197,3480],{"class":2505},[84,5199,3161],{"class":118},[84,5201,5203,5205,5207],{"class":86,"line":5202},187,[84,5204,3442],{"class":118},[84,5206,3471],{"class":2505},[84,5208,2517],{"class":118},[84,5210,5212,5214,5216],{"class":86,"line":5211},188,[84,5213,3403],{"class":118},[84,5215,3497],{"class":2505},[84,5217,3161],{"class":118},[84,5219,5221,5223,5225],{"class":86,"line":5220},189,[84,5222,3403],{"class":118},[84,5224,3506],{"class":2505},[84,5226,3161],{"class":118},[84,5228,5230,5232,5234],{"class":86,"line":5229},190,[84,5231,3451],{"class":118},[84,5233,3462],{"class":2505},[84,5235,2517],{"class":118},[84,5237,5239,5241,5243],{"class":86,"line":5238},191,[84,5240,2959],{"class":118},[84,5242,3380],{"class":2505},[84,5244,2517],{"class":118},[84,5246,5248,5250,5252,5254,5256,5258],{"class":86,"line":5247},192,[84,5249,2723],{"class":118},[84,5251,3531],{"class":2505},[84,5253,2509],{"class":104},[84,5255,1805],{"class":118},[84,5257,4212],{"class":108},[84,5259,2517],{"class":118},[84,5261,5263,5265,5267],{"class":86,"line":5262},193,[84,5264,2919],{"class":118},[84,5266,3396],{"class":2505},[84,5268,2517],{"class":118},[84,5270,5272,5274,5276],{"class":86,"line":5271},194,[84,5273,3403],{"class":118},[84,5275,4092],{"class":2505},[84,5277,2517],{"class":118},[84,5279,5281,5283,5285,5287,5289],{"class":86,"line":5280},195,[84,5282,3413],{"class":118},[84,5284,3430],{"class":2505},[84,5286,5150],{"class":118},[84,5288,3430],{"class":2505},[84,5290,2517],{"class":118},[84,5292,5294,5296,5298],{"class":86,"line":5293},196,[84,5295,3442],{"class":118},[84,5297,4092],{"class":2505},[84,5299,2517],{"class":118},[84,5301,5303,5305,5307],{"class":86,"line":5302},197,[84,5304,3451],{"class":118},[84,5306,3396],{"class":2505},[84,5308,2517],{"class":118},[84,5310,5312,5314,5316],{"class":86,"line":5311},198,[84,5313,2919],{"class":118},[84,5315,3603],{"class":2505},[84,5317,2517],{"class":118},[84,5319,5321,5323,5325,5327,5329],{"class":86,"line":5320},199,[84,5322,3403],{"class":118},[84,5324,3287],{"class":2505},[84,5326,4282],{"class":118},[84,5328,3287],{"class":2505},[84,5330,2517],{"class":118},[84,5332,5334,5336,5338,5340,5342],{"class":86,"line":5333},200,[84,5335,3403],{"class":118},[84,5337,3625],{"class":2505},[84,5339,3304],{"class":118},[84,5341,3625],{"class":2505},[84,5343,2517],{"class":118},[84,5345,5347,5349,5351,5353,5355],{"class":86,"line":5346},201,[84,5348,3403],{"class":118},[84,5350,3638],{"class":2505},[84,5352,4309],{"class":118},[84,5354,3638],{"class":2505},[84,5356,2517],{"class":118},[84,5358,5360,5362,5364],{"class":86,"line":5359},202,[84,5361,3451],{"class":118},[84,5363,3603],{"class":2505},[84,5365,2517],{"class":118},[84,5367,5369,5371,5373],{"class":86,"line":5368},203,[84,5370,2959],{"class":118},[84,5372,3531],{"class":2505},[84,5374,2517],{"class":118},[84,5376,5378,5380,5382,5384,5386],{"class":86,"line":5377},204,[84,5379,2723],{"class":118},[84,5381,3667],{"class":2505},[84,5383,3670],{"class":118},[84,5385,3667],{"class":2505},[84,5387,2517],{"class":118},[84,5389,5391,5393,5395,5397,5399],{"class":86,"line":5390},205,[84,5392,2723],{"class":118},[84,5394,3820],{"class":2505},[84,5396,3823],{"class":118},[84,5398,3820],{"class":2505},[84,5400,2517],{"class":118},[84,5402,5404,5406,5408],{"class":86,"line":5403},206,[84,5405,2783],{"class":118},[84,5407,2525],{"class":2505},[84,5409,2517],{"class":118},[84,5411,5413,5415,5417,5419,5421],{"class":86,"line":5412},207,[84,5414,2549],{"class":118},[84,5416,3352],{"class":2505},[84,5418,3318],{"class":118},[84,5420,3352],{"class":2505},[84,5422,2517],{"class":118},[84,5424,5426,5428,5430,5432,5434],{"class":86,"line":5425},208,[84,5427,2549],{"class":118},[84,5429,3857],{"class":2505},[84,5431,3823],{"class":118},[84,5433,3857],{"class":2505},[84,5435,2517],{"class":118},[84,5437,5439,5441,5443],{"class":86,"line":5438},209,[84,5440,2620],{"class":118},[84,5442,2863],{"class":2505},[84,5444,2517],{"class":118},[84,5446,5448,5450,5452,5454,5456,5459],{"class":86,"line":5447},210,[84,5449,2539],{"class":118},[84,5451,2863],{"class":2505},[84,5453,2509],{"class":104},[84,5455,1805],{"class":118},[84,5457,5458],{"class":108},"'box_2'",[84,5460,2517],{"class":118},[84,5462,5464,5466,5468,5471,5473],{"class":86,"line":5463},211,[84,5465,2549],{"class":118},[84,5467,3667],{"class":2505},[84,5469,5470],{"class":118},">-0 2.5 0.5 0 -0 -0\u003C/",[84,5472,3667],{"class":2505},[84,5474,2517],{"class":118},[84,5476,5478,5480,5482,5484,5486,5488],{"class":86,"line":5477},212,[84,5479,2549],{"class":118},[84,5481,2525],{"class":2505},[84,5483,2509],{"class":104},[84,5485,1805],{"class":118},[84,5487,3916],{"class":108},[84,5489,2517],{"class":118},[84,5491,5493,5495,5497],{"class":86,"line":5492},213,[84,5494,2723],{"class":118},[84,5496,2542],{"class":2505},[84,5498,2517],{"class":118},[84,5500,5502,5504,5506],{"class":86,"line":5501},214,[84,5503,2919],{"class":118},[84,5505,2570],{"class":2505},[84,5507,2517],{"class":118},[84,5509,5511,5513,5515,5517,5519],{"class":86,"line":5510},215,[84,5512,3403],{"class":118},[84,5514,2922],{"class":2505},[84,5516,3946],{"class":118},[84,5518,2922],{"class":2505},[84,5520,2517],{"class":118},[84,5522,5524,5526,5528,5530,5532],{"class":86,"line":5523},216,[84,5525,3403],{"class":118},[84,5527,3734],{"class":2505},[84,5529,3737],{"class":118},[84,5531,3734],{"class":2505},[84,5533,2517],{"class":118},[84,5535,5537,5539,5541,5543,5545],{"class":86,"line":5536},217,[84,5538,3403],{"class":118},[84,5540,3748],{"class":2505},[84,5542,3737],{"class":118},[84,5544,3748],{"class":2505},[84,5546,2517],{"class":118},[84,5548,5550,5552,5554,5556,5558],{"class":86,"line":5549},218,[84,5551,3403],{"class":118},[84,5553,2935],{"class":2505},[84,5555,3946],{"class":118},[84,5557,2935],{"class":2505},[84,5559,2517],{"class":118},[84,5561,5563,5565,5567,5569,5571],{"class":86,"line":5562},219,[84,5564,3403],{"class":118},[84,5566,3775],{"class":2505},[84,5568,3737],{"class":118},[84,5570,3775],{"class":2505},[84,5572,2517],{"class":118},[84,5574,5576,5578,5580,5582,5584],{"class":86,"line":5575},220,[84,5577,3403],{"class":118},[84,5579,2948],{"class":2505},[84,5581,3946],{"class":118},[84,5583,2948],{"class":2505},[84,5585,2517],{"class":118},[84,5587,5589,5591,5593],{"class":86,"line":5588},221,[84,5590,3451],{"class":118},[84,5592,2570],{"class":2505},[84,5594,2517],{"class":118},[84,5596,5598,5600,5602,5604,5606],{"class":86,"line":5597},222,[84,5599,2919],{"class":118},[84,5601,2552],{"class":2505},[84,5603,3703],{"class":118},[84,5605,2552],{"class":2505},[84,5607,2517],{"class":118},[84,5609,5611,5613,5615,5617,5619],{"class":86,"line":5610},223,[84,5612,2919],{"class":118},[84,5614,3667],{"class":2505},[84,5616,3670],{"class":118},[84,5618,3667],{"class":2505},[84,5620,2517],{"class":118},[84,5622,5624,5626,5628],{"class":86,"line":5623},224,[84,5625,2959],{"class":118},[84,5627,2542],{"class":2505},[84,5629,2517],{"class":118},[84,5631,5633,5635,5637,5639,5641,5643],{"class":86,"line":5632},225,[84,5634,2723],{"class":118},[84,5636,3380],{"class":2505},[84,5638,2509],{"class":104},[84,5640,1805],{"class":118},[84,5642,4073],{"class":108},[84,5644,2517],{"class":118},[84,5646,5648,5650,5652],{"class":86,"line":5647},226,[84,5649,2919],{"class":118},[84,5651,3396],{"class":2505},[84,5653,2517],{"class":118},[84,5655,5657,5659,5661],{"class":86,"line":5656},227,[84,5658,3403],{"class":118},[84,5660,4092],{"class":2505},[84,5662,2517],{"class":118},[84,5664,5666,5668,5670,5672,5674],{"class":86,"line":5665},228,[84,5667,3413],{"class":118},[84,5669,3430],{"class":2505},[84,5671,5150],{"class":118},[84,5673,3430],{"class":2505},[84,5675,2517],{"class":118},[84,5677,5679,5681,5683],{"class":86,"line":5678},229,[84,5680,3442],{"class":118},[84,5682,4092],{"class":2505},[84,5684,2517],{"class":118},[84,5686,5688,5690,5692],{"class":86,"line":5687},230,[84,5689,3451],{"class":118},[84,5691,3396],{"class":2505},[84,5693,2517],{"class":118},[84,5695,5697,5699,5701],{"class":86,"line":5696},231,[84,5698,2919],{"class":118},[84,5700,3462],{"class":2505},[84,5702,2517],{"class":118},[84,5704,5706,5708,5710],{"class":86,"line":5705},232,[84,5707,3403],{"class":118},[84,5709,3471],{"class":2505},[84,5711,2517],{"class":118},[84,5713,5715,5717,5719],{"class":86,"line":5714},233,[84,5716,3413],{"class":118},[84,5718,3480],{"class":2505},[84,5720,3161],{"class":118},[84,5722,5724,5726,5728],{"class":86,"line":5723},234,[84,5725,3442],{"class":118},[84,5727,3471],{"class":2505},[84,5729,2517],{"class":118},[84,5731,5733,5735,5737],{"class":86,"line":5732},235,[84,5734,3403],{"class":118},[84,5736,3497],{"class":2505},[84,5738,3161],{"class":118},[84,5740,5742,5744,5746],{"class":86,"line":5741},236,[84,5743,3403],{"class":118},[84,5745,3506],{"class":2505},[84,5747,3161],{"class":118},[84,5749,5751,5753,5755],{"class":86,"line":5750},237,[84,5752,3451],{"class":118},[84,5754,3462],{"class":2505},[84,5756,2517],{"class":118},[84,5758,5760,5762,5764],{"class":86,"line":5759},238,[84,5761,2959],{"class":118},[84,5763,3380],{"class":2505},[84,5765,2517],{"class":118},[84,5767,5769,5771,5773,5775,5777,5779],{"class":86,"line":5768},239,[84,5770,2723],{"class":118},[84,5772,3531],{"class":2505},[84,5774,2509],{"class":104},[84,5776,1805],{"class":118},[84,5778,4212],{"class":108},[84,5780,2517],{"class":118},[84,5782,5784,5786,5788],{"class":86,"line":5783},240,[84,5785,2919],{"class":118},[84,5787,3396],{"class":2505},[84,5789,2517],{"class":118},[84,5791,5793,5795,5797],{"class":86,"line":5792},241,[84,5794,3403],{"class":118},[84,5796,4092],{"class":2505},[84,5798,2517],{"class":118},[84,5800,5802,5804,5806,5808,5810],{"class":86,"line":5801},242,[84,5803,3413],{"class":118},[84,5805,3430],{"class":2505},[84,5807,5150],{"class":118},[84,5809,3430],{"class":2505},[84,5811,2517],{"class":118},[84,5813,5815,5817,5819],{"class":86,"line":5814},243,[84,5816,3442],{"class":118},[84,5818,4092],{"class":2505},[84,5820,2517],{"class":118},[84,5822,5824,5826,5828],{"class":86,"line":5823},244,[84,5825,3451],{"class":118},[84,5827,3396],{"class":2505},[84,5829,2517],{"class":118},[84,5831,5833,5835,5837],{"class":86,"line":5832},245,[84,5834,2919],{"class":118},[84,5836,3603],{"class":2505},[84,5838,2517],{"class":118},[84,5840,5842,5844,5846,5848,5850],{"class":86,"line":5841},246,[84,5843,3403],{"class":118},[84,5845,3287],{"class":2505},[84,5847,4282],{"class":118},[84,5849,3287],{"class":2505},[84,5851,2517],{"class":118},[84,5853,5855,5857,5859,5861,5863],{"class":86,"line":5854},247,[84,5856,3403],{"class":118},[84,5858,3625],{"class":2505},[84,5860,3304],{"class":118},[84,5862,3625],{"class":2505},[84,5864,2517],{"class":118},[84,5866,5868,5870,5872,5874,5876],{"class":86,"line":5867},248,[84,5869,3403],{"class":118},[84,5871,3638],{"class":2505},[84,5873,4309],{"class":118},[84,5875,3638],{"class":2505},[84,5877,2517],{"class":118},[84,5879,5881,5883,5885],{"class":86,"line":5880},249,[84,5882,3451],{"class":118},[84,5884,3603],{"class":2505},[84,5886,2517],{"class":118},[84,5888,5890,5892,5894],{"class":86,"line":5889},250,[84,5891,2959],{"class":118},[84,5893,3531],{"class":2505},[84,5895,2517],{"class":118},[84,5897,5899,5901,5903,5905,5907],{"class":86,"line":5898},251,[84,5900,2723],{"class":118},[84,5902,3667],{"class":2505},[84,5904,3670],{"class":118},[84,5906,3667],{"class":2505},[84,5908,2517],{"class":118},[84,5910,5912,5914,5916,5918,5920],{"class":86,"line":5911},252,[84,5913,2723],{"class":118},[84,5915,3820],{"class":2505},[84,5917,3823],{"class":118},[84,5919,3820],{"class":2505},[84,5921,2517],{"class":118},[84,5923,5925,5927,5929],{"class":86,"line":5924},253,[84,5926,2783],{"class":118},[84,5928,2525],{"class":2505},[84,5930,2517],{"class":118},[84,5932,5934,5936,5938,5940,5942],{"class":86,"line":5933},254,[84,5935,2549],{"class":118},[84,5937,3352],{"class":2505},[84,5939,3318],{"class":118},[84,5941,3352],{"class":2505},[84,5943,2517],{"class":118},[84,5945,5947,5949,5951,5953,5955],{"class":86,"line":5946},255,[84,5948,2549],{"class":118},[84,5950,3857],{"class":2505},[84,5952,3823],{"class":118},[84,5954,3857],{"class":2505},[84,5956,2517],{"class":118},[84,5958,5960,5962,5964],{"class":86,"line":5959},256,[84,5961,2620],{"class":118},[84,5963,2863],{"class":2505},[84,5965,2517],{"class":118},[84,5967,5969,5971,5974,5976,5978,5981,5983,5985,5988],{"class":86,"line":5968},257,[84,5970,2539],{"class":118},[84,5972,5973],{"class":2505},"light",[84,5975,2509],{"class":104},[84,5977,1805],{"class":118},[84,5979,5980],{"class":108},"'sun'",[84,5982,3079],{"class":104},[84,5984,1805],{"class":118},[84,5986,5987],{"class":108},"'directional'",[84,5989,2517],{"class":118},[84,5991,5993,5995,5997,6000,6002],{"class":86,"line":5992},258,[84,5994,2549],{"class":118},[84,5996,3667],{"class":2505},[84,5998,5999],{"class":118},">0 0 10 0 -0 0\u003C/",[84,6001,3667],{"class":2505},[84,6003,2517],{"class":118},[84,6005,6007,6009,6012,6014,6016],{"class":86,"line":6006},259,[84,6008,2549],{"class":118},[84,6010,6011],{"class":2505},"cast_shadows",[84,6013,3318],{"class":118},[84,6015,6011],{"class":2505},[84,6017,2517],{"class":118},[84,6019,6021,6023,6026,6028,6030],{"class":86,"line":6020},260,[84,6022,2549],{"class":118},[84,6024,6025],{"class":2505},"intensity",[84,6027,3110],{"class":118},[84,6029,6025],{"class":2505},[84,6031,2517],{"class":118},[84,6033,6035,6037,6040,6043,6045],{"class":86,"line":6034},261,[84,6036,2549],{"class":118},[84,6038,6039],{"class":2505},"direction",[84,6041,6042],{"class":118},">-0.5 0.1 -0.9\u003C/",[84,6044,6039],{"class":2505},[84,6046,2517],{"class":118},[84,6048,6050,6052,6054,6056,6058],{"class":86,"line":6049},262,[84,6051,2549],{"class":118},[84,6053,3625],{"class":2505},[84,6055,3614],{"class":118},[84,6057,3625],{"class":2505},[84,6059,2517],{"class":118},[84,6061,6063,6065,6067,6070,6072],{"class":86,"line":6062},263,[84,6064,2549],{"class":118},[84,6066,3638],{"class":2505},[84,6068,6069],{"class":118},">0.2 0.2 0.2 1\u003C/",[84,6071,3638],{"class":2505},[84,6073,2517],{"class":118},[84,6075,6077,6079,6082],{"class":86,"line":6076},264,[84,6078,2549],{"class":118},[84,6080,6081],{"class":2505},"attenuation",[84,6083,2517],{"class":118},[84,6085,6087,6089,6092,6094,6096],{"class":86,"line":6086},265,[84,6088,2723],{"class":118},[84,6090,6091],{"class":2505},"range",[84,6093,3124],{"class":118},[84,6095,6091],{"class":2505},[84,6097,2517],{"class":118},[84,6099,6101,6103,6106,6109,6111],{"class":86,"line":6100},266,[84,6102,2723],{"class":118},[84,6104,6105],{"class":2505},"linear",[84,6107,6108],{"class":118},">0.01\u003C/",[84,6110,6105],{"class":2505},[84,6112,2517],{"class":118},[84,6114,6116,6118,6121,6124,6126],{"class":86,"line":6115},267,[84,6117,2723],{"class":118},[84,6119,6120],{"class":2505},"constant",[84,6122,6123],{"class":118},">0.90000000000000002\u003C/",[84,6125,6120],{"class":2505},[84,6127,2517],{"class":118},[84,6129,6131,6133,6136,6138,6140],{"class":86,"line":6130},268,[84,6132,2723],{"class":118},[84,6134,6135],{"class":2505},"quadratic",[84,6137,3096],{"class":118},[84,6139,6135],{"class":2505},[84,6141,2517],{"class":118},[84,6143,6145,6147,6149],{"class":86,"line":6144},269,[84,6146,2783],{"class":118},[84,6148,6081],{"class":2505},[84,6150,2517],{"class":118},[84,6152,6154,6156,6159],{"class":86,"line":6153},270,[84,6155,2549],{"class":118},[84,6157,6158],{"class":2505},"spot",[84,6160,2517],{"class":118},[84,6162,6164,6166,6169,6171,6173],{"class":86,"line":6163},271,[84,6165,2723],{"class":118},[84,6167,6168],{"class":2505},"inner_angle",[84,6170,3737],{"class":118},[84,6172,6168],{"class":2505},[84,6174,2517],{"class":118},[84,6176,6178,6180,6183,6185,6187],{"class":86,"line":6177},272,[84,6179,2723],{"class":118},[84,6181,6182],{"class":2505},"outer_angle",[84,6184,3737],{"class":118},[84,6186,6182],{"class":2505},[84,6188,2517],{"class":118},[84,6190,6192,6194,6197,6199,6201],{"class":86,"line":6191},273,[84,6193,2723],{"class":118},[84,6195,6196],{"class":2505},"falloff",[84,6198,3737],{"class":118},[84,6200,6196],{"class":2505},[84,6202,2517],{"class":118},[84,6204,6206,6208,6210],{"class":86,"line":6205},274,[84,6207,2783],{"class":118},[84,6209,6158],{"class":2505},[84,6211,2517],{"class":118},[84,6213,6215,6217,6219],{"class":86,"line":6214},275,[84,6216,2620],{"class":118},[84,6218,5973],{"class":2505},[84,6220,2517],{"class":118},[84,6222,6224,6226,6228],{"class":86,"line":6223},276,[84,6225,2629],{"class":118},[84,6227,3053],{"class":2505},[84,6229,2517],{"class":118},[84,6231,6233,6235,6237],{"class":86,"line":6232},277,[84,6234,2638],{"class":118},[84,6236,2846],{"class":2505},[84,6238,2517],{"class":118},[15,6240,6241],{},[19,6242,6243],{},"2.修改sdf文件",[15,6245,6246,6247,6250,6251,6254,6255,6257,6258,6257,6261,6257,6264,6267,6268,6270,6271,6273,6274,6277,6278,6267,6281,6270,6283,6273,6285,6277,6287,6290,6291,6295,6297,6300,6303,6306,6309,6312,6315,6318,6320,2444],{},"修改sdf文件，调整立方体的尺寸，实现墙体的合围。在sdf文件中，四个立方体分别对应了四个",[81,6248,6249],{},"\u003Cmodel>","标签，其",[81,6252,6253],{},"name","属性分别为",[81,6256,4092],{},"、",[81,6259,6260],{},"box_1",[81,6262,6263],{},"box_2",[81,6265,6266],{},"box_3","，将",[81,6269,4092],{},"和",[81,6272,6260],{},"中的",[81,6275,6276],{},"\u003Csize>1 1 1\u003C/size>","修改为",[81,6279,6280],{},"\u003Csize>0.1 5 1\u003C/size>",[81,6282,6263],{},[81,6284,6266],{},[81,6286,6276],{},[81,6288,6289],{},"\u003Csize>10 0.1 1\u003C/size>","（",[6292,6293,6294],"em",{},"注意：每个",[81,6296,6249],{},[6292,6298,6299],{},"标签下，都包含两个",[81,6301,6302],{},"\u003Csize>",[6292,6304,6305],{},"标签，分别位于",[81,6307,6308],{},"\u003Ccollision>",[6292,6310,6311],{},"标签和",[81,6313,6314],{},"\u003Cvisual>",[6292,6316,6317],{},"标签下，两个",[81,6319,6302],{},[6292,6321,6322],{},"标签内容都需要修改",[15,6324,6325],{},"修改后与的house.sdf文件内容如下：",[74,6327,6328],{"className":2493,"code":3029,"language":2495,"meta":79,"style":79},[81,6329,6330,6344,6358,6378,6390,6402,6414,6422,6442,6462,6482,6502,6514,6526,6540,6548,6560,6572,6584,6592,6606,6618,6632,6646,6654,6662,6674,6686,6694,6702,6710,6718,6726,6734,6742,6750,6758,6766,6780,6788,6796,6808,6820,6828,6836,6844,6856,6868,6880,6888,6896,6908,6916,6928,6940,6948,6960,6972,6984,6996,7008,7020,7028,7036,7048,7056,7068,7080,7088,7102,7114,7128,7136,7144,7156,7168,7180,7192,7204,7216,7224,7236,7248,7256,7270,7278,7286,7298,7306,7314,7322,7330,7338,7346,7354,7362,7370,7378,7392,7400,7408,7420,7428,7436,7444,7456,7468,7480,7488,7496,7508,7520,7528,7540,7552,7560,7574,7586,7600,7608,7616,7628,7640,7652,7664,7676,7688,7696,7708,7720,7728,7742,7750,7758,7770,7778,7786,7794,7802,7810,7818,7826,7834,7842,7850,7864,7872,7880,7892,7900,7908,7916,7928,7940,7952,7960,7968,7980,7992,8000,8012,8024,8032,8046,8058,8072,8080,8088,8100,8112,8124,8136,8148,8160,8168,8180,8192,8200,8214,8222,8230,8242,8250,8258,8266,8274,8282,8290,8298,8306,8314,8322,8336,8344,8352,8364,8372,8380,8388,8400,8412,8424,8432,8440,8452,8464,8472,8484,8496,8504,8518,8530,8544,8552,8560,8572,8584,8596,8608,8620,8632,8640,8652,8664,8672,8686,8694,8702,8714,8722,8730,8738,8746,8754,8762,8770,8778,8786,8794,8808,8816,8824,8836,8844,8852,8860,8872,8884,8896,8904,8912,8924,8936,8944,8956,8968,8976,8996,9008,9020,9032,9044,9056,9068,9076,9088,9100,9112,9124,9132,9140,9152,9164,9176,9184,9192,9200],{"__ignoreMap":79},[84,6331,6332,6334,6336,6338,6340,6342],{"class":86,"line":87},[84,6333,2502],{"class":118},[84,6335,2846],{"class":2505},[84,6337,2849],{"class":104},[84,6339,1805],{"class":118},[84,6341,3044],{"class":108},[84,6343,2517],{"class":118},[84,6345,6346,6348,6350,6352,6354,6356],{"class":86,"line":94},[84,6347,2522],{"class":118},[84,6349,3053],{"class":2505},[84,6351,2509],{"class":104},[84,6353,1805],{"class":118},[84,6355,3060],{"class":108},[84,6357,2517],{"class":118},[84,6359,6360,6362,6364,6366,6368,6370,6372,6374,6376],{"class":86,"line":101},[84,6361,2539],{"class":118},[84,6363,3069],{"class":2505},[84,6365,2509],{"class":104},[84,6367,1805],{"class":118},[84,6369,3076],{"class":108},[84,6371,3079],{"class":104},[84,6373,1805],{"class":118},[84,6375,3084],{"class":108},[84,6377,2517],{"class":118},[84,6379,6380,6382,6384,6386,6388],{"class":86,"line":125},[84,6381,2549],{"class":118},[84,6383,3093],{"class":2505},[84,6385,3096],{"class":118},[84,6387,3093],{"class":2505},[84,6389,2517],{"class":118},[84,6391,6392,6394,6396,6398,6400],{"class":86,"line":130},[84,6393,2549],{"class":118},[84,6395,3107],{"class":2505},[84,6397,3110],{"class":118},[84,6399,3107],{"class":2505},[84,6401,2517],{"class":118},[84,6403,6404,6406,6408,6410,6412],{"class":86,"line":136},[84,6405,2549],{"class":118},[84,6407,3121],{"class":2505},[84,6409,3124],{"class":118},[84,6411,3121],{"class":2505},[84,6413,2517],{"class":118},[84,6415,6416,6418,6420],{"class":86,"line":148},[84,6417,2620],{"class":118},[84,6419,3069],{"class":2505},[84,6421,2517],{"class":118},[84,6423,6424,6426,6428,6430,6432,6434,6436,6438,6440],{"class":86,"line":153},[84,6425,2539],{"class":118},[84,6427,3143],{"class":2505},[84,6429,2509],{"class":104},[84,6431,1805],{"class":118},[84,6433,3150],{"class":108},[84,6435,3153],{"class":104},[84,6437,1805],{"class":118},[84,6439,3158],{"class":108},[84,6441,3161],{"class":118},[84,6443,6444,6446,6448,6450,6452,6454,6456,6458,6460],{"class":86,"line":159},[84,6445,2539],{"class":118},[84,6447,3143],{"class":2505},[84,6449,2509],{"class":104},[84,6451,1805],{"class":118},[84,6453,3174],{"class":108},[84,6455,3153],{"class":104},[84,6457,1805],{"class":118},[84,6459,3181],{"class":108},[84,6461,3161],{"class":118},[84,6463,6464,6466,6468,6470,6472,6474,6476,6478,6480],{"class":86,"line":406},[84,6465,2539],{"class":118},[84,6467,3143],{"class":2505},[84,6469,2509],{"class":104},[84,6471,1805],{"class":118},[84,6473,3196],{"class":108},[84,6475,3153],{"class":104},[84,6477,1805],{"class":118},[84,6479,3203],{"class":108},[84,6481,3161],{"class":118},[84,6483,6484,6486,6488,6490,6492,6494,6496,6498,6500],{"class":86,"line":412},[84,6485,2539],{"class":118},[84,6487,3143],{"class":2505},[84,6489,2509],{"class":104},[84,6491,1805],{"class":118},[84,6493,3218],{"class":108},[84,6495,3153],{"class":104},[84,6497,1805],{"class":118},[84,6499,3225],{"class":108},[84,6501,3161],{"class":118},[84,6503,6504,6506,6508,6510,6512],{"class":86,"line":418},[84,6505,2539],{"class":118},[84,6507,3234],{"class":2505},[84,6509,3237],{"class":118},[84,6511,3234],{"class":2505},[84,6513,2517],{"class":118},[84,6515,6516,6518,6520,6522,6524],{"class":86,"line":424},[84,6517,2539],{"class":118},[84,6519,3248],{"class":2505},[84,6521,3251],{"class":118},[84,6523,3248],{"class":2505},[84,6525,2517],{"class":118},[84,6527,6528,6530,6532,6534,6536,6538],{"class":86,"line":1782},[84,6529,2539],{"class":118},[84,6531,3262],{"class":2505},[84,6533,3079],{"class":104},[84,6535,1805],{"class":118},[84,6537,3269],{"class":108},[84,6539,3161],{"class":118},[84,6541,6542,6544,6546],{"class":86,"line":1794},[84,6543,2539],{"class":118},[84,6545,3278],{"class":2505},[84,6547,2517],{"class":118},[84,6549,6550,6552,6554,6556,6558],{"class":86,"line":1799},[84,6551,2549],{"class":118},[84,6553,3287],{"class":2505},[84,6555,3290],{"class":118},[84,6557,3287],{"class":2505},[84,6559,2517],{"class":118},[84,6561,6562,6564,6566,6568,6570],{"class":86,"line":1816},[84,6563,2549],{"class":118},[84,6565,3301],{"class":2505},[84,6567,3304],{"class":118},[84,6569,3301],{"class":2505},[84,6571,2517],{"class":118},[84,6573,6574,6576,6578,6580,6582],{"class":86,"line":1831},[84,6575,2549],{"class":118},[84,6577,3315],{"class":2505},[84,6579,3318],{"class":118},[84,6581,3315],{"class":2505},[84,6583,2517],{"class":118},[84,6585,6586,6588,6590],{"class":86,"line":1853},[84,6587,2620],{"class":118},[84,6589,3278],{"class":2505},[84,6591,2517],{"class":118},[84,6593,6594,6596,6598,6600,6602,6604],{"class":86,"line":1858},[84,6595,2539],{"class":118},[84,6597,2863],{"class":2505},[84,6599,2509],{"class":104},[84,6601,1805],{"class":118},[84,6603,3343],{"class":108},[84,6605,2517],{"class":118},[84,6607,6608,6610,6612,6614,6616],{"class":86,"line":1869},[84,6609,2549],{"class":118},[84,6611,3352],{"class":2505},[84,6613,3318],{"class":118},[84,6615,3352],{"class":2505},[84,6617,2517],{"class":118},[84,6619,6620,6622,6624,6626,6628,6630],{"class":86,"line":1875},[84,6621,2549],{"class":118},[84,6623,2525],{"class":2505},[84,6625,2509],{"class":104},[84,6627,1805],{"class":118},[84,6629,3371],{"class":108},[84,6631,2517],{"class":118},[84,6633,6634,6636,6638,6640,6642,6644],{"class":86,"line":1893},[84,6635,2723],{"class":118},[84,6637,3380],{"class":2505},[84,6639,2509],{"class":104},[84,6641,1805],{"class":118},[84,6643,3387],{"class":108},[84,6645,2517],{"class":118},[84,6647,6648,6650,6652],{"class":86,"line":1905},[84,6649,2919],{"class":118},[84,6651,3396],{"class":2505},[84,6653,2517],{"class":118},[84,6655,6656,6658,6660],{"class":86,"line":1923},[84,6657,3403],{"class":118},[84,6659,3406],{"class":2505},[84,6661,2517],{"class":118},[84,6663,6664,6666,6668,6670,6672],{"class":86,"line":1929},[84,6665,3413],{"class":118},[84,6667,3416],{"class":2505},[84,6669,3419],{"class":118},[84,6671,3416],{"class":2505},[84,6673,2517],{"class":118},[84,6675,6676,6678,6680,6682,6684],{"class":86,"line":1935},[84,6677,3413],{"class":118},[84,6679,3430],{"class":2505},[84,6681,3433],{"class":118},[84,6683,3430],{"class":2505},[84,6685,2517],{"class":118},[84,6687,6688,6690,6692],{"class":86,"line":1940},[84,6689,3442],{"class":118},[84,6691,3406],{"class":2505},[84,6693,2517],{"class":118},[84,6695,6696,6698,6700],{"class":86,"line":1946},[84,6697,3451],{"class":118},[84,6699,3396],{"class":2505},[84,6701,2517],{"class":118},[84,6703,6704,6706,6708],{"class":86,"line":1957},[84,6705,2919],{"class":118},[84,6707,3462],{"class":2505},[84,6709,2517],{"class":118},[84,6711,6712,6714,6716],{"class":86,"line":1971},[84,6713,3403],{"class":118},[84,6715,3471],{"class":2505},[84,6717,2517],{"class":118},[84,6719,6720,6722,6724],{"class":86,"line":1983},[84,6721,3413],{"class":118},[84,6723,3480],{"class":2505},[84,6725,3161],{"class":118},[84,6727,6728,6730,6732],{"class":86,"line":2010},[84,6729,3442],{"class":118},[84,6731,3471],{"class":2505},[84,6733,2517],{"class":118},[84,6735,6736,6738,6740],{"class":86,"line":2026},[84,6737,3403],{"class":118},[84,6739,3497],{"class":2505},[84,6741,3161],{"class":118},[84,6743,6744,6746,6748],{"class":86,"line":2031},[84,6745,3403],{"class":118},[84,6747,3506],{"class":2505},[84,6749,3161],{"class":118},[84,6751,6752,6754,6756],{"class":86,"line":2036},[84,6753,3451],{"class":118},[84,6755,3462],{"class":2505},[84,6757,2517],{"class":118},[84,6759,6760,6762,6764],{"class":86,"line":2042},[84,6761,2959],{"class":118},[84,6763,3380],{"class":2505},[84,6765,2517],{"class":118},[84,6767,6768,6770,6772,6774,6776,6778],{"class":86,"line":2052},[84,6769,2723],{"class":118},[84,6771,3531],{"class":2505},[84,6773,2509],{"class":104},[84,6775,1805],{"class":118},[84,6777,3538],{"class":108},[84,6779,2517],{"class":118},[84,6781,6782,6784,6786],{"class":86,"line":2065},[84,6783,2919],{"class":118},[84,6785,3396],{"class":2505},[84,6787,2517],{"class":118},[84,6789,6790,6792,6794],{"class":86,"line":2078},[84,6791,3403],{"class":118},[84,6793,3406],{"class":2505},[84,6795,2517],{"class":118},[84,6797,6798,6800,6802,6804,6806],{"class":86,"line":2093},[84,6799,3413],{"class":118},[84,6801,3416],{"class":2505},[84,6803,3419],{"class":118},[84,6805,3416],{"class":2505},[84,6807,2517],{"class":118},[84,6809,6810,6812,6814,6816,6818],{"class":86,"line":2101},[84,6811,3413],{"class":118},[84,6813,3430],{"class":2505},[84,6815,3433],{"class":118},[84,6817,3430],{"class":2505},[84,6819,2517],{"class":118},[84,6821,6822,6824,6826],{"class":86,"line":2109},[84,6823,3442],{"class":118},[84,6825,3406],{"class":2505},[84,6827,2517],{"class":118},[84,6829,6830,6832,6834],{"class":86,"line":2115},[84,6831,3451],{"class":118},[84,6833,3396],{"class":2505},[84,6835,2517],{"class":118},[84,6837,6838,6840,6842],{"class":86,"line":2137},[84,6839,2919],{"class":118},[84,6841,3603],{"class":2505},[84,6843,2517],{"class":118},[84,6845,6846,6848,6850,6852,6854],{"class":86,"line":2148},[84,6847,3403],{"class":118},[84,6849,3287],{"class":2505},[84,6851,3614],{"class":118},[84,6853,3287],{"class":2505},[84,6855,2517],{"class":118},[84,6857,6858,6860,6862,6864,6866],{"class":86,"line":2165},[84,6859,3403],{"class":118},[84,6861,3625],{"class":2505},[84,6863,3614],{"class":118},[84,6865,3625],{"class":2505},[84,6867,2517],{"class":118},[84,6869,6870,6872,6874,6876,6878],{"class":86,"line":2180},[84,6871,3403],{"class":118},[84,6873,3638],{"class":2505},[84,6875,3614],{"class":118},[84,6877,3638],{"class":2505},[84,6879,2517],{"class":118},[84,6881,6882,6884,6886],{"class":86,"line":2186},[84,6883,3451],{"class":118},[84,6885,3603],{"class":2505},[84,6887,2517],{"class":118},[84,6889,6890,6892,6894],{"class":86,"line":2197},[84,6891,2959],{"class":118},[84,6893,3531],{"class":2505},[84,6895,2517],{"class":118},[84,6897,6898,6900,6902,6904,6906],{"class":86,"line":2202},[84,6899,2723],{"class":118},[84,6901,3667],{"class":2505},[84,6903,3670],{"class":118},[84,6905,3667],{"class":2505},[84,6907,2517],{"class":118},[84,6909,6910,6912,6914],{"class":86,"line":2207},[84,6911,2723],{"class":118},[84,6913,2542],{"class":2505},[84,6915,2517],{"class":118},[84,6917,6918,6920,6922,6924,6926],{"class":86,"line":2216},[84,6919,2919],{"class":118},[84,6921,3667],{"class":2505},[84,6923,3670],{"class":118},[84,6925,3667],{"class":2505},[84,6927,2517],{"class":118},[84,6929,6930,6932,6934,6936,6938],{"class":86,"line":2222},[84,6931,2919],{"class":118},[84,6933,2552],{"class":2505},[84,6935,3703],{"class":118},[84,6937,2552],{"class":2505},[84,6939,2517],{"class":118},[84,6941,6942,6944,6946],{"class":86,"line":2242},[84,6943,2919],{"class":118},[84,6945,2570],{"class":2505},[84,6947,2517],{"class":118},[84,6949,6950,6952,6954,6956,6958],{"class":86,"line":2255},[84,6951,3403],{"class":118},[84,6953,2922],{"class":2505},[84,6955,3110],{"class":118},[84,6957,2922],{"class":2505},[84,6959,2517],{"class":118},[84,6961,6962,6964,6966,6968,6970],{"class":86,"line":2261},[84,6963,3403],{"class":118},[84,6965,3734],{"class":2505},[84,6967,3737],{"class":118},[84,6969,3734],{"class":2505},[84,6971,2517],{"class":118},[84,6973,6974,6976,6978,6980,6982],{"class":86,"line":2267},[84,6975,3403],{"class":118},[84,6977,3748],{"class":2505},[84,6979,3737],{"class":118},[84,6981,3748],{"class":2505},[84,6983,2517],{"class":118},[84,6985,6986,6988,6990,6992,6994],{"class":86,"line":3757},[84,6987,3403],{"class":118},[84,6989,2935],{"class":2505},[84,6991,3110],{"class":118},[84,6993,2935],{"class":2505},[84,6995,2517],{"class":118},[84,6997,6998,7000,7002,7004,7006],{"class":86,"line":3770},[84,6999,3403],{"class":118},[84,7001,3775],{"class":2505},[84,7003,3737],{"class":118},[84,7005,3775],{"class":2505},[84,7007,2517],{"class":118},[84,7009,7010,7012,7014,7016,7018],{"class":86,"line":3784},[84,7011,3403],{"class":118},[84,7013,2948],{"class":2505},[84,7015,3110],{"class":118},[84,7017,2948],{"class":2505},[84,7019,2517],{"class":118},[84,7021,7022,7024,7026],{"class":86,"line":3797},[84,7023,3451],{"class":118},[84,7025,2570],{"class":2505},[84,7027,2517],{"class":118},[84,7029,7030,7032,7034],{"class":86,"line":3806},[84,7031,2959],{"class":118},[84,7033,2542],{"class":2505},[84,7035,2517],{"class":118},[84,7037,7038,7040,7042,7044,7046],{"class":86,"line":3815},[84,7039,2723],{"class":118},[84,7041,3820],{"class":2505},[84,7043,3823],{"class":118},[84,7045,3820],{"class":2505},[84,7047,2517],{"class":118},[84,7049,7050,7052,7054],{"class":86,"line":3830},[84,7051,2783],{"class":118},[84,7053,2525],{"class":2505},[84,7055,2517],{"class":118},[84,7057,7058,7060,7062,7064,7066],{"class":86,"line":3839},[84,7059,2549],{"class":118},[84,7061,3667],{"class":2505},[84,7063,3670],{"class":118},[84,7065,3667],{"class":2505},[84,7067,2517],{"class":118},[84,7069,7070,7072,7074,7076,7078],{"class":86,"line":3852},[84,7071,2549],{"class":118},[84,7073,3857],{"class":2505},[84,7075,3823],{"class":118},[84,7077,3857],{"class":2505},[84,7079,2517],{"class":118},[84,7081,7082,7084,7086],{"class":86,"line":3866},[84,7083,2620],{"class":118},[84,7085,2863],{"class":2505},[84,7087,2517],{"class":118},[84,7089,7090,7092,7094,7096,7098,7100],{"class":86,"line":3875},[84,7091,2539],{"class":118},[84,7093,2863],{"class":2505},[84,7095,2509],{"class":104},[84,7097,1805],{"class":118},[84,7099,3886],{"class":108},[84,7101,2517],{"class":118},[84,7103,7104,7106,7108,7110,7112],{"class":86,"line":3891},[84,7105,2549],{"class":118},[84,7107,3667],{"class":2505},[84,7109,3898],{"class":118},[84,7111,3667],{"class":2505},[84,7113,2517],{"class":118},[84,7115,7116,7118,7120,7122,7124,7126],{"class":86,"line":3905},[84,7117,2549],{"class":118},[84,7119,2525],{"class":2505},[84,7121,2509],{"class":104},[84,7123,1805],{"class":118},[84,7125,3916],{"class":108},[84,7127,2517],{"class":118},[84,7129,7130,7132,7134],{"class":86,"line":3921},[84,7131,2723],{"class":118},[84,7133,2542],{"class":2505},[84,7135,2517],{"class":118},[84,7137,7138,7140,7142],{"class":86,"line":3930},[84,7139,2919],{"class":118},[84,7141,2570],{"class":2505},[84,7143,2517],{"class":118},[84,7145,7146,7148,7150,7152,7154],{"class":86,"line":3939},[84,7147,3403],{"class":118},[84,7149,2922],{"class":2505},[84,7151,3946],{"class":118},[84,7153,2922],{"class":2505},[84,7155,2517],{"class":118},[84,7157,7158,7160,7162,7164,7166],{"class":86,"line":3953},[84,7159,3403],{"class":118},[84,7161,3734],{"class":2505},[84,7163,3737],{"class":118},[84,7165,3734],{"class":2505},[84,7167,2517],{"class":118},[84,7169,7170,7172,7174,7176,7178],{"class":86,"line":3966},[84,7171,3403],{"class":118},[84,7173,3748],{"class":2505},[84,7175,3737],{"class":118},[84,7177,3748],{"class":2505},[84,7179,2517],{"class":118},[84,7181,7182,7184,7186,7188,7190],{"class":86,"line":3979},[84,7183,3403],{"class":118},[84,7185,2935],{"class":2505},[84,7187,3946],{"class":118},[84,7189,2935],{"class":2505},[84,7191,2517],{"class":118},[84,7193,7194,7196,7198,7200,7202],{"class":86,"line":3992},[84,7195,3403],{"class":118},[84,7197,3775],{"class":2505},[84,7199,3737],{"class":118},[84,7201,3775],{"class":2505},[84,7203,2517],{"class":118},[84,7205,7206,7208,7210,7212,7214],{"class":86,"line":4005},[84,7207,3403],{"class":118},[84,7209,2948],{"class":2505},[84,7211,3946],{"class":118},[84,7213,2948],{"class":2505},[84,7215,2517],{"class":118},[84,7217,7218,7220,7222],{"class":86,"line":4018},[84,7219,3451],{"class":118},[84,7221,2570],{"class":2505},[84,7223,2517],{"class":118},[84,7225,7226,7228,7230,7232,7234],{"class":86,"line":4027},[84,7227,2919],{"class":118},[84,7229,2552],{"class":2505},[84,7231,3703],{"class":118},[84,7233,2552],{"class":2505},[84,7235,2517],{"class":118},[84,7237,7238,7240,7242,7244,7246],{"class":86,"line":4040},[84,7239,2919],{"class":118},[84,7241,3667],{"class":2505},[84,7243,3670],{"class":118},[84,7245,3667],{"class":2505},[84,7247,2517],{"class":118},[84,7249,7250,7252,7254],{"class":86,"line":4053},[84,7251,2959],{"class":118},[84,7253,2542],{"class":2505},[84,7255,2517],{"class":118},[84,7257,7258,7260,7262,7264,7266,7268],{"class":86,"line":4062},[84,7259,2723],{"class":118},[84,7261,3380],{"class":2505},[84,7263,2509],{"class":104},[84,7265,1805],{"class":118},[84,7267,4073],{"class":108},[84,7269,2517],{"class":118},[84,7271,7272,7274,7276],{"class":86,"line":4078},[84,7273,2919],{"class":118},[84,7275,3396],{"class":2505},[84,7277,2517],{"class":118},[84,7279,7280,7282,7284],{"class":86,"line":4087},[84,7281,3403],{"class":118},[84,7283,4092],{"class":2505},[84,7285,2517],{"class":118},[84,7287,7288,7290,7292,7294,7296],{"class":86,"line":4097},[84,7289,3413],{"class":118},[84,7291,3430],{"class":2505},[84,7293,4104],{"class":118},[84,7295,3430],{"class":2505},[84,7297,2517],{"class":118},[84,7299,7300,7302,7304],{"class":86,"line":4111},[84,7301,3442],{"class":118},[84,7303,4092],{"class":2505},[84,7305,2517],{"class":118},[84,7307,7308,7310,7312],{"class":86,"line":4120},[84,7309,3451],{"class":118},[84,7311,3396],{"class":2505},[84,7313,2517],{"class":118},[84,7315,7316,7318,7320],{"class":86,"line":4129},[84,7317,2919],{"class":118},[84,7319,3462],{"class":2505},[84,7321,2517],{"class":118},[84,7323,7324,7326,7328],{"class":86,"line":4138},[84,7325,3403],{"class":118},[84,7327,3471],{"class":2505},[84,7329,2517],{"class":118},[84,7331,7332,7334,7336],{"class":86,"line":4147},[84,7333,3413],{"class":118},[84,7335,3480],{"class":2505},[84,7337,3161],{"class":118},[84,7339,7340,7342,7344],{"class":86,"line":4156},[84,7341,3442],{"class":118},[84,7343,3471],{"class":2505},[84,7345,2517],{"class":118},[84,7347,7348,7350,7352],{"class":86,"line":4165},[84,7349,3403],{"class":118},[84,7351,3497],{"class":2505},[84,7353,3161],{"class":118},[84,7355,7356,7358,7360],{"class":86,"line":4174},[84,7357,3403],{"class":118},[84,7359,3506],{"class":2505},[84,7361,3161],{"class":118},[84,7363,7364,7366,7368],{"class":86,"line":4183},[84,7365,3451],{"class":118},[84,7367,3462],{"class":2505},[84,7369,2517],{"class":118},[84,7371,7372,7374,7376],{"class":86,"line":4192},[84,7373,2959],{"class":118},[84,7375,3380],{"class":2505},[84,7377,2517],{"class":118},[84,7379,7380,7382,7384,7386,7388,7390],{"class":86,"line":4201},[84,7381,2723],{"class":118},[84,7383,3531],{"class":2505},[84,7385,2509],{"class":104},[84,7387,1805],{"class":118},[84,7389,4212],{"class":108},[84,7391,2517],{"class":118},[84,7393,7394,7396,7398],{"class":86,"line":4217},[84,7395,2919],{"class":118},[84,7397,3396],{"class":2505},[84,7399,2517],{"class":118},[84,7401,7402,7404,7406],{"class":86,"line":4226},[84,7403,3403],{"class":118},[84,7405,4092],{"class":2505},[84,7407,2517],{"class":118},[84,7409,7410,7412,7414,7416,7418],{"class":86,"line":4235},[84,7411,3413],{"class":118},[84,7413,3430],{"class":2505},[84,7415,4104],{"class":118},[84,7417,3430],{"class":2505},[84,7419,2517],{"class":118},[84,7421,7422,7424,7426],{"class":86,"line":4248},[84,7423,3442],{"class":118},[84,7425,4092],{"class":2505},[84,7427,2517],{"class":118},[84,7429,7430,7432,7434],{"class":86,"line":4257},[84,7431,3451],{"class":118},[84,7433,3396],{"class":2505},[84,7435,2517],{"class":118},[84,7437,7438,7440,7442],{"class":86,"line":4266},[84,7439,2919],{"class":118},[84,7441,3603],{"class":2505},[84,7443,2517],{"class":118},[84,7445,7446,7448,7450,7452,7454],{"class":86,"line":4275},[84,7447,3403],{"class":118},[84,7449,3287],{"class":2505},[84,7451,4282],{"class":118},[84,7453,3287],{"class":2505},[84,7455,2517],{"class":118},[84,7457,7458,7460,7462,7464,7466],{"class":86,"line":4289},[84,7459,3403],{"class":118},[84,7461,3625],{"class":2505},[84,7463,3304],{"class":118},[84,7465,3625],{"class":2505},[84,7467,2517],{"class":118},[84,7469,7470,7472,7474,7476,7478],{"class":86,"line":4302},[84,7471,3403],{"class":118},[84,7473,3638],{"class":2505},[84,7475,4309],{"class":118},[84,7477,3638],{"class":2505},[84,7479,2517],{"class":118},[84,7481,7482,7484,7486],{"class":86,"line":4316},[84,7483,3451],{"class":118},[84,7485,3603],{"class":2505},[84,7487,2517],{"class":118},[84,7489,7490,7492,7494],{"class":86,"line":4325},[84,7491,2959],{"class":118},[84,7493,3531],{"class":2505},[84,7495,2517],{"class":118},[84,7497,7498,7500,7502,7504,7506],{"class":86,"line":4334},[84,7499,2723],{"class":118},[84,7501,3667],{"class":2505},[84,7503,3670],{"class":118},[84,7505,3667],{"class":2505},[84,7507,2517],{"class":118},[84,7509,7510,7512,7514,7516,7518],{"class":86,"line":4347},[84,7511,2723],{"class":118},[84,7513,3820],{"class":2505},[84,7515,3823],{"class":118},[84,7517,3820],{"class":2505},[84,7519,2517],{"class":118},[84,7521,7522,7524,7526],{"class":86,"line":4360},[84,7523,2783],{"class":118},[84,7525,2525],{"class":2505},[84,7527,2517],{"class":118},[84,7529,7530,7532,7534,7536,7538],{"class":86,"line":4369},[84,7531,2549],{"class":118},[84,7533,3352],{"class":2505},[84,7535,3318],{"class":118},[84,7537,3352],{"class":2505},[84,7539,2517],{"class":118},[84,7541,7542,7544,7546,7548,7550],{"class":86,"line":4382},[84,7543,2549],{"class":118},[84,7545,3857],{"class":2505},[84,7547,3823],{"class":118},[84,7549,3857],{"class":2505},[84,7551,2517],{"class":118},[84,7553,7554,7556,7558],{"class":86,"line":4395},[84,7555,2620],{"class":118},[84,7557,2863],{"class":2505},[84,7559,2517],{"class":118},[84,7561,7562,7564,7566,7568,7570,7572],{"class":86,"line":4404},[84,7563,2539],{"class":118},[84,7565,2863],{"class":2505},[84,7567,2509],{"class":104},[84,7569,1805],{"class":118},[84,7571,4415],{"class":108},[84,7573,2517],{"class":118},[84,7575,7576,7578,7580,7582,7584],{"class":86,"line":4420},[84,7577,2549],{"class":118},[84,7579,3667],{"class":2505},[84,7581,4427],{"class":118},[84,7583,3667],{"class":2505},[84,7585,2517],{"class":118},[84,7587,7588,7590,7592,7594,7596,7598],{"class":86,"line":4434},[84,7589,2549],{"class":118},[84,7591,2525],{"class":2505},[84,7593,2509],{"class":104},[84,7595,1805],{"class":118},[84,7597,3916],{"class":108},[84,7599,2517],{"class":118},[84,7601,7602,7604,7606],{"class":86,"line":4449},[84,7603,2723],{"class":118},[84,7605,2542],{"class":2505},[84,7607,2517],{"class":118},[84,7609,7610,7612,7614],{"class":86,"line":4458},[84,7611,2919],{"class":118},[84,7613,2570],{"class":2505},[84,7615,2517],{"class":118},[84,7617,7618,7620,7622,7624,7626],{"class":86,"line":4467},[84,7619,3403],{"class":118},[84,7621,2922],{"class":2505},[84,7623,3946],{"class":118},[84,7625,2922],{"class":2505},[84,7627,2517],{"class":118},[84,7629,7630,7632,7634,7636,7638],{"class":86,"line":4480},[84,7631,3403],{"class":118},[84,7633,3734],{"class":2505},[84,7635,3737],{"class":118},[84,7637,3734],{"class":2505},[84,7639,2517],{"class":118},[84,7641,7642,7644,7646,7648,7650],{"class":86,"line":4493},[84,7643,3403],{"class":118},[84,7645,3748],{"class":2505},[84,7647,3737],{"class":118},[84,7649,3748],{"class":2505},[84,7651,2517],{"class":118},[84,7653,7654,7656,7658,7660,7662],{"class":86,"line":4506},[84,7655,3403],{"class":118},[84,7657,2935],{"class":2505},[84,7659,3946],{"class":118},[84,7661,2935],{"class":2505},[84,7663,2517],{"class":118},[84,7665,7666,7668,7670,7672,7674],{"class":86,"line":4519},[84,7667,3403],{"class":118},[84,7669,3775],{"class":2505},[84,7671,3737],{"class":118},[84,7673,3775],{"class":2505},[84,7675,2517],{"class":118},[84,7677,7678,7680,7682,7684,7686],{"class":86,"line":4532},[84,7679,3403],{"class":118},[84,7681,2948],{"class":2505},[84,7683,3946],{"class":118},[84,7685,2948],{"class":2505},[84,7687,2517],{"class":118},[84,7689,7690,7692,7694],{"class":86,"line":4545},[84,7691,3451],{"class":118},[84,7693,2570],{"class":2505},[84,7695,2517],{"class":118},[84,7697,7698,7700,7702,7704,7706],{"class":86,"line":4554},[84,7699,2919],{"class":118},[84,7701,2552],{"class":2505},[84,7703,3703],{"class":118},[84,7705,2552],{"class":2505},[84,7707,2517],{"class":118},[84,7709,7710,7712,7714,7716,7718],{"class":86,"line":4567},[84,7711,2919],{"class":118},[84,7713,3667],{"class":2505},[84,7715,3670],{"class":118},[84,7717,3667],{"class":2505},[84,7719,2517],{"class":118},[84,7721,7722,7724,7726],{"class":86,"line":4580},[84,7723,2959],{"class":118},[84,7725,2542],{"class":2505},[84,7727,2517],{"class":118},[84,7729,7730,7732,7734,7736,7738,7740],{"class":86,"line":4589},[84,7731,2723],{"class":118},[84,7733,3380],{"class":2505},[84,7735,2509],{"class":104},[84,7737,1805],{"class":118},[84,7739,4073],{"class":108},[84,7741,2517],{"class":118},[84,7743,7744,7746,7748],{"class":86,"line":4604},[84,7745,2919],{"class":118},[84,7747,3396],{"class":2505},[84,7749,2517],{"class":118},[84,7751,7752,7754,7756],{"class":86,"line":4613},[84,7753,3403],{"class":118},[84,7755,4092],{"class":2505},[84,7757,2517],{"class":118},[84,7759,7760,7762,7764,7766,7768],{"class":86,"line":4622},[84,7761,3413],{"class":118},[84,7763,3430],{"class":2505},[84,7765,4104],{"class":118},[84,7767,3430],{"class":2505},[84,7769,2517],{"class":118},[84,7771,7772,7774,7776],{"class":86,"line":4635},[84,7773,3442],{"class":118},[84,7775,4092],{"class":2505},[84,7777,2517],{"class":118},[84,7779,7780,7782,7784],{"class":86,"line":4644},[84,7781,3451],{"class":118},[84,7783,3396],{"class":2505},[84,7785,2517],{"class":118},[84,7787,7788,7790,7792],{"class":86,"line":4653},[84,7789,2919],{"class":118},[84,7791,3462],{"class":2505},[84,7793,2517],{"class":118},[84,7795,7796,7798,7800],{"class":86,"line":4662},[84,7797,3403],{"class":118},[84,7799,3471],{"class":2505},[84,7801,2517],{"class":118},[84,7803,7804,7806,7808],{"class":86,"line":4671},[84,7805,3413],{"class":118},[84,7807,3480],{"class":2505},[84,7809,3161],{"class":118},[84,7811,7812,7814,7816],{"class":86,"line":4680},[84,7813,3442],{"class":118},[84,7815,3471],{"class":2505},[84,7817,2517],{"class":118},[84,7819,7820,7822,7824],{"class":86,"line":4689},[84,7821,3403],{"class":118},[84,7823,3497],{"class":2505},[84,7825,3161],{"class":118},[84,7827,7828,7830,7832],{"class":86,"line":4698},[84,7829,3403],{"class":118},[84,7831,3506],{"class":2505},[84,7833,3161],{"class":118},[84,7835,7836,7838,7840],{"class":86,"line":4707},[84,7837,3451],{"class":118},[84,7839,3462],{"class":2505},[84,7841,2517],{"class":118},[84,7843,7844,7846,7848],{"class":86,"line":4716},[84,7845,2959],{"class":118},[84,7847,3380],{"class":2505},[84,7849,2517],{"class":118},[84,7851,7852,7854,7856,7858,7860,7862],{"class":86,"line":4725},[84,7853,2723],{"class":118},[84,7855,3531],{"class":2505},[84,7857,2509],{"class":104},[84,7859,1805],{"class":118},[84,7861,4212],{"class":108},[84,7863,2517],{"class":118},[84,7865,7866,7868,7870],{"class":86,"line":4740},[84,7867,2919],{"class":118},[84,7869,3396],{"class":2505},[84,7871,2517],{"class":118},[84,7873,7874,7876,7878],{"class":86,"line":4749},[84,7875,3403],{"class":118},[84,7877,4092],{"class":2505},[84,7879,2517],{"class":118},[84,7881,7882,7884,7886,7888,7890],{"class":86,"line":4758},[84,7883,3413],{"class":118},[84,7885,3430],{"class":2505},[84,7887,4104],{"class":118},[84,7889,3430],{"class":2505},[84,7891,2517],{"class":118},[84,7893,7894,7896,7898],{"class":86,"line":4771},[84,7895,3442],{"class":118},[84,7897,4092],{"class":2505},[84,7899,2517],{"class":118},[84,7901,7902,7904,7906],{"class":86,"line":4780},[84,7903,3451],{"class":118},[84,7905,3396],{"class":2505},[84,7907,2517],{"class":118},[84,7909,7910,7912,7914],{"class":86,"line":4789},[84,7911,2919],{"class":118},[84,7913,3603],{"class":2505},[84,7915,2517],{"class":118},[84,7917,7918,7920,7922,7924,7926],{"class":86,"line":4798},[84,7919,3403],{"class":118},[84,7921,3287],{"class":2505},[84,7923,4282],{"class":118},[84,7925,3287],{"class":2505},[84,7927,2517],{"class":118},[84,7929,7930,7932,7934,7936,7938],{"class":86,"line":4811},[84,7931,3403],{"class":118},[84,7933,3625],{"class":2505},[84,7935,3304],{"class":118},[84,7937,3625],{"class":2505},[84,7939,2517],{"class":118},[84,7941,7942,7944,7946,7948,7950],{"class":86,"line":4824},[84,7943,3403],{"class":118},[84,7945,3638],{"class":2505},[84,7947,4309],{"class":118},[84,7949,3638],{"class":2505},[84,7951,2517],{"class":118},[84,7953,7954,7956,7958],{"class":86,"line":4837},[84,7955,3451],{"class":118},[84,7957,3603],{"class":2505},[84,7959,2517],{"class":118},[84,7961,7962,7964,7966],{"class":86,"line":4846},[84,7963,2959],{"class":118},[84,7965,3531],{"class":2505},[84,7967,2517],{"class":118},[84,7969,7970,7972,7974,7976,7978],{"class":86,"line":4855},[84,7971,2723],{"class":118},[84,7973,3667],{"class":2505},[84,7975,3670],{"class":118},[84,7977,3667],{"class":2505},[84,7979,2517],{"class":118},[84,7981,7982,7984,7986,7988,7990],{"class":86,"line":4868},[84,7983,2723],{"class":118},[84,7985,3820],{"class":2505},[84,7987,3823],{"class":118},[84,7989,3820],{"class":2505},[84,7991,2517],{"class":118},[84,7993,7994,7996,7998],{"class":86,"line":4881},[84,7995,2783],{"class":118},[84,7997,2525],{"class":2505},[84,7999,2517],{"class":118},[84,8001,8002,8004,8006,8008,8010],{"class":86,"line":4890},[84,8003,2549],{"class":118},[84,8005,3352],{"class":2505},[84,8007,3318],{"class":118},[84,8009,3352],{"class":2505},[84,8011,2517],{"class":118},[84,8013,8014,8016,8018,8020,8022],{"class":86,"line":4903},[84,8015,2549],{"class":118},[84,8017,3857],{"class":2505},[84,8019,3823],{"class":118},[84,8021,3857],{"class":2505},[84,8023,2517],{"class":118},[84,8025,8026,8028,8030],{"class":86,"line":4916},[84,8027,2620],{"class":118},[84,8029,2863],{"class":2505},[84,8031,2517],{"class":118},[84,8033,8034,8036,8038,8040,8042,8044],{"class":86,"line":4925},[84,8035,2539],{"class":118},[84,8037,2863],{"class":2505},[84,8039,2509],{"class":104},[84,8041,1805],{"class":118},[84,8043,4936],{"class":108},[84,8045,2517],{"class":118},[84,8047,8048,8050,8052,8054,8056],{"class":86,"line":4941},[84,8049,2549],{"class":118},[84,8051,3667],{"class":2505},[84,8053,4948],{"class":118},[84,8055,3667],{"class":2505},[84,8057,2517],{"class":118},[84,8059,8060,8062,8064,8066,8068,8070],{"class":86,"line":4955},[84,8061,2549],{"class":118},[84,8063,2525],{"class":2505},[84,8065,2509],{"class":104},[84,8067,1805],{"class":118},[84,8069,3916],{"class":108},[84,8071,2517],{"class":118},[84,8073,8074,8076,8078],{"class":86,"line":4970},[84,8075,2723],{"class":118},[84,8077,2542],{"class":2505},[84,8079,2517],{"class":118},[84,8081,8082,8084,8086],{"class":86,"line":4979},[84,8083,2919],{"class":118},[84,8085,2570],{"class":2505},[84,8087,2517],{"class":118},[84,8089,8090,8092,8094,8096,8098],{"class":86,"line":4988},[84,8091,3403],{"class":118},[84,8093,2922],{"class":2505},[84,8095,3946],{"class":118},[84,8097,2922],{"class":2505},[84,8099,2517],{"class":118},[84,8101,8102,8104,8106,8108,8110],{"class":86,"line":5001},[84,8103,3403],{"class":118},[84,8105,3734],{"class":2505},[84,8107,3737],{"class":118},[84,8109,3734],{"class":2505},[84,8111,2517],{"class":118},[84,8113,8114,8116,8118,8120,8122],{"class":86,"line":5014},[84,8115,3403],{"class":118},[84,8117,3748],{"class":2505},[84,8119,3737],{"class":118},[84,8121,3748],{"class":2505},[84,8123,2517],{"class":118},[84,8125,8126,8128,8130,8132,8134],{"class":86,"line":5027},[84,8127,3403],{"class":118},[84,8129,2935],{"class":2505},[84,8131,3946],{"class":118},[84,8133,2935],{"class":2505},[84,8135,2517],{"class":118},[84,8137,8138,8140,8142,8144,8146],{"class":86,"line":5040},[84,8139,3403],{"class":118},[84,8141,3775],{"class":2505},[84,8143,3737],{"class":118},[84,8145,3775],{"class":2505},[84,8147,2517],{"class":118},[84,8149,8150,8152,8154,8156,8158],{"class":86,"line":5053},[84,8151,3403],{"class":118},[84,8153,2948],{"class":2505},[84,8155,3946],{"class":118},[84,8157,2948],{"class":2505},[84,8159,2517],{"class":118},[84,8161,8162,8164,8166],{"class":86,"line":5066},[84,8163,3451],{"class":118},[84,8165,2570],{"class":2505},[84,8167,2517],{"class":118},[84,8169,8170,8172,8174,8176,8178],{"class":86,"line":5075},[84,8171,2919],{"class":118},[84,8173,2552],{"class":2505},[84,8175,3703],{"class":118},[84,8177,2552],{"class":2505},[84,8179,2517],{"class":118},[84,8181,8182,8184,8186,8188,8190],{"class":86,"line":5088},[84,8183,2919],{"class":118},[84,8185,3667],{"class":2505},[84,8187,3670],{"class":118},[84,8189,3667],{"class":2505},[84,8191,2517],{"class":118},[84,8193,8194,8196,8198],{"class":86,"line":5101},[84,8195,2959],{"class":118},[84,8197,2542],{"class":2505},[84,8199,2517],{"class":118},[84,8201,8202,8204,8206,8208,8210,8212],{"class":86,"line":5110},[84,8203,2723],{"class":118},[84,8205,3380],{"class":2505},[84,8207,2509],{"class":104},[84,8209,1805],{"class":118},[84,8211,4073],{"class":108},[84,8213,2517],{"class":118},[84,8215,8216,8218,8220],{"class":86,"line":5125},[84,8217,2919],{"class":118},[84,8219,3396],{"class":2505},[84,8221,2517],{"class":118},[84,8223,8224,8226,8228],{"class":86,"line":5134},[84,8225,3403],{"class":118},[84,8227,4092],{"class":2505},[84,8229,2517],{"class":118},[84,8231,8232,8234,8236,8238,8240],{"class":86,"line":5143},[84,8233,3413],{"class":118},[84,8235,3430],{"class":2505},[84,8237,5150],{"class":118},[84,8239,3430],{"class":2505},[84,8241,2517],{"class":118},[84,8243,8244,8246,8248],{"class":86,"line":5157},[84,8245,3442],{"class":118},[84,8247,4092],{"class":2505},[84,8249,2517],{"class":118},[84,8251,8252,8254,8256],{"class":86,"line":5166},[84,8253,3451],{"class":118},[84,8255,3396],{"class":2505},[84,8257,2517],{"class":118},[84,8259,8260,8262,8264],{"class":86,"line":5175},[84,8261,2919],{"class":118},[84,8263,3462],{"class":2505},[84,8265,2517],{"class":118},[84,8267,8268,8270,8272],{"class":86,"line":5184},[84,8269,3403],{"class":118},[84,8271,3471],{"class":2505},[84,8273,2517],{"class":118},[84,8275,8276,8278,8280],{"class":86,"line":5193},[84,8277,3413],{"class":118},[84,8279,3480],{"class":2505},[84,8281,3161],{"class":118},[84,8283,8284,8286,8288],{"class":86,"line":5202},[84,8285,3442],{"class":118},[84,8287,3471],{"class":2505},[84,8289,2517],{"class":118},[84,8291,8292,8294,8296],{"class":86,"line":5211},[84,8293,3403],{"class":118},[84,8295,3497],{"class":2505},[84,8297,3161],{"class":118},[84,8299,8300,8302,8304],{"class":86,"line":5220},[84,8301,3403],{"class":118},[84,8303,3506],{"class":2505},[84,8305,3161],{"class":118},[84,8307,8308,8310,8312],{"class":86,"line":5229},[84,8309,3451],{"class":118},[84,8311,3462],{"class":2505},[84,8313,2517],{"class":118},[84,8315,8316,8318,8320],{"class":86,"line":5238},[84,8317,2959],{"class":118},[84,8319,3380],{"class":2505},[84,8321,2517],{"class":118},[84,8323,8324,8326,8328,8330,8332,8334],{"class":86,"line":5247},[84,8325,2723],{"class":118},[84,8327,3531],{"class":2505},[84,8329,2509],{"class":104},[84,8331,1805],{"class":118},[84,8333,4212],{"class":108},[84,8335,2517],{"class":118},[84,8337,8338,8340,8342],{"class":86,"line":5262},[84,8339,2919],{"class":118},[84,8341,3396],{"class":2505},[84,8343,2517],{"class":118},[84,8345,8346,8348,8350],{"class":86,"line":5271},[84,8347,3403],{"class":118},[84,8349,4092],{"class":2505},[84,8351,2517],{"class":118},[84,8353,8354,8356,8358,8360,8362],{"class":86,"line":5280},[84,8355,3413],{"class":118},[84,8357,3430],{"class":2505},[84,8359,5150],{"class":118},[84,8361,3430],{"class":2505},[84,8363,2517],{"class":118},[84,8365,8366,8368,8370],{"class":86,"line":5293},[84,8367,3442],{"class":118},[84,8369,4092],{"class":2505},[84,8371,2517],{"class":118},[84,8373,8374,8376,8378],{"class":86,"line":5302},[84,8375,3451],{"class":118},[84,8377,3396],{"class":2505},[84,8379,2517],{"class":118},[84,8381,8382,8384,8386],{"class":86,"line":5311},[84,8383,2919],{"class":118},[84,8385,3603],{"class":2505},[84,8387,2517],{"class":118},[84,8389,8390,8392,8394,8396,8398],{"class":86,"line":5320},[84,8391,3403],{"class":118},[84,8393,3287],{"class":2505},[84,8395,4282],{"class":118},[84,8397,3287],{"class":2505},[84,8399,2517],{"class":118},[84,8401,8402,8404,8406,8408,8410],{"class":86,"line":5333},[84,8403,3403],{"class":118},[84,8405,3625],{"class":2505},[84,8407,3304],{"class":118},[84,8409,3625],{"class":2505},[84,8411,2517],{"class":118},[84,8413,8414,8416,8418,8420,8422],{"class":86,"line":5346},[84,8415,3403],{"class":118},[84,8417,3638],{"class":2505},[84,8419,4309],{"class":118},[84,8421,3638],{"class":2505},[84,8423,2517],{"class":118},[84,8425,8426,8428,8430],{"class":86,"line":5359},[84,8427,3451],{"class":118},[84,8429,3603],{"class":2505},[84,8431,2517],{"class":118},[84,8433,8434,8436,8438],{"class":86,"line":5368},[84,8435,2959],{"class":118},[84,8437,3531],{"class":2505},[84,8439,2517],{"class":118},[84,8441,8442,8444,8446,8448,8450],{"class":86,"line":5377},[84,8443,2723],{"class":118},[84,8445,3667],{"class":2505},[84,8447,3670],{"class":118},[84,8449,3667],{"class":2505},[84,8451,2517],{"class":118},[84,8453,8454,8456,8458,8460,8462],{"class":86,"line":5390},[84,8455,2723],{"class":118},[84,8457,3820],{"class":2505},[84,8459,3823],{"class":118},[84,8461,3820],{"class":2505},[84,8463,2517],{"class":118},[84,8465,8466,8468,8470],{"class":86,"line":5403},[84,8467,2783],{"class":118},[84,8469,2525],{"class":2505},[84,8471,2517],{"class":118},[84,8473,8474,8476,8478,8480,8482],{"class":86,"line":5412},[84,8475,2549],{"class":118},[84,8477,3352],{"class":2505},[84,8479,3318],{"class":118},[84,8481,3352],{"class":2505},[84,8483,2517],{"class":118},[84,8485,8486,8488,8490,8492,8494],{"class":86,"line":5425},[84,8487,2549],{"class":118},[84,8489,3857],{"class":2505},[84,8491,3823],{"class":118},[84,8493,3857],{"class":2505},[84,8495,2517],{"class":118},[84,8497,8498,8500,8502],{"class":86,"line":5438},[84,8499,2620],{"class":118},[84,8501,2863],{"class":2505},[84,8503,2517],{"class":118},[84,8505,8506,8508,8510,8512,8514,8516],{"class":86,"line":5447},[84,8507,2539],{"class":118},[84,8509,2863],{"class":2505},[84,8511,2509],{"class":104},[84,8513,1805],{"class":118},[84,8515,5458],{"class":108},[84,8517,2517],{"class":118},[84,8519,8520,8522,8524,8526,8528],{"class":86,"line":5463},[84,8521,2549],{"class":118},[84,8523,3667],{"class":2505},[84,8525,5470],{"class":118},[84,8527,3667],{"class":2505},[84,8529,2517],{"class":118},[84,8531,8532,8534,8536,8538,8540,8542],{"class":86,"line":5477},[84,8533,2549],{"class":118},[84,8535,2525],{"class":2505},[84,8537,2509],{"class":104},[84,8539,1805],{"class":118},[84,8541,3916],{"class":108},[84,8543,2517],{"class":118},[84,8545,8546,8548,8550],{"class":86,"line":5492},[84,8547,2723],{"class":118},[84,8549,2542],{"class":2505},[84,8551,2517],{"class":118},[84,8553,8554,8556,8558],{"class":86,"line":5501},[84,8555,2919],{"class":118},[84,8557,2570],{"class":2505},[84,8559,2517],{"class":118},[84,8561,8562,8564,8566,8568,8570],{"class":86,"line":5510},[84,8563,3403],{"class":118},[84,8565,2922],{"class":2505},[84,8567,3946],{"class":118},[84,8569,2922],{"class":2505},[84,8571,2517],{"class":118},[84,8573,8574,8576,8578,8580,8582],{"class":86,"line":5523},[84,8575,3403],{"class":118},[84,8577,3734],{"class":2505},[84,8579,3737],{"class":118},[84,8581,3734],{"class":2505},[84,8583,2517],{"class":118},[84,8585,8586,8588,8590,8592,8594],{"class":86,"line":5536},[84,8587,3403],{"class":118},[84,8589,3748],{"class":2505},[84,8591,3737],{"class":118},[84,8593,3748],{"class":2505},[84,8595,2517],{"class":118},[84,8597,8598,8600,8602,8604,8606],{"class":86,"line":5549},[84,8599,3403],{"class":118},[84,8601,2935],{"class":2505},[84,8603,3946],{"class":118},[84,8605,2935],{"class":2505},[84,8607,2517],{"class":118},[84,8609,8610,8612,8614,8616,8618],{"class":86,"line":5562},[84,8611,3403],{"class":118},[84,8613,3775],{"class":2505},[84,8615,3737],{"class":118},[84,8617,3775],{"class":2505},[84,8619,2517],{"class":118},[84,8621,8622,8624,8626,8628,8630],{"class":86,"line":5575},[84,8623,3403],{"class":118},[84,8625,2948],{"class":2505},[84,8627,3946],{"class":118},[84,8629,2948],{"class":2505},[84,8631,2517],{"class":118},[84,8633,8634,8636,8638],{"class":86,"line":5588},[84,8635,3451],{"class":118},[84,8637,2570],{"class":2505},[84,8639,2517],{"class":118},[84,8641,8642,8644,8646,8648,8650],{"class":86,"line":5597},[84,8643,2919],{"class":118},[84,8645,2552],{"class":2505},[84,8647,3703],{"class":118},[84,8649,2552],{"class":2505},[84,8651,2517],{"class":118},[84,8653,8654,8656,8658,8660,8662],{"class":86,"line":5610},[84,8655,2919],{"class":118},[84,8657,3667],{"class":2505},[84,8659,3670],{"class":118},[84,8661,3667],{"class":2505},[84,8663,2517],{"class":118},[84,8665,8666,8668,8670],{"class":86,"line":5623},[84,8667,2959],{"class":118},[84,8669,2542],{"class":2505},[84,8671,2517],{"class":118},[84,8673,8674,8676,8678,8680,8682,8684],{"class":86,"line":5632},[84,8675,2723],{"class":118},[84,8677,3380],{"class":2505},[84,8679,2509],{"class":104},[84,8681,1805],{"class":118},[84,8683,4073],{"class":108},[84,8685,2517],{"class":118},[84,8687,8688,8690,8692],{"class":86,"line":5647},[84,8689,2919],{"class":118},[84,8691,3396],{"class":2505},[84,8693,2517],{"class":118},[84,8695,8696,8698,8700],{"class":86,"line":5656},[84,8697,3403],{"class":118},[84,8699,4092],{"class":2505},[84,8701,2517],{"class":118},[84,8703,8704,8706,8708,8710,8712],{"class":86,"line":5665},[84,8705,3413],{"class":118},[84,8707,3430],{"class":2505},[84,8709,5150],{"class":118},[84,8711,3430],{"class":2505},[84,8713,2517],{"class":118},[84,8715,8716,8718,8720],{"class":86,"line":5678},[84,8717,3442],{"class":118},[84,8719,4092],{"class":2505},[84,8721,2517],{"class":118},[84,8723,8724,8726,8728],{"class":86,"line":5687},[84,8725,3451],{"class":118},[84,8727,3396],{"class":2505},[84,8729,2517],{"class":118},[84,8731,8732,8734,8736],{"class":86,"line":5696},[84,8733,2919],{"class":118},[84,8735,3462],{"class":2505},[84,8737,2517],{"class":118},[84,8739,8740,8742,8744],{"class":86,"line":5705},[84,8741,3403],{"class":118},[84,8743,3471],{"class":2505},[84,8745,2517],{"class":118},[84,8747,8748,8750,8752],{"class":86,"line":5714},[84,8749,3413],{"class":118},[84,8751,3480],{"class":2505},[84,8753,3161],{"class":118},[84,8755,8756,8758,8760],{"class":86,"line":5723},[84,8757,3442],{"class":118},[84,8759,3471],{"class":2505},[84,8761,2517],{"class":118},[84,8763,8764,8766,8768],{"class":86,"line":5732},[84,8765,3403],{"class":118},[84,8767,3497],{"class":2505},[84,8769,3161],{"class":118},[84,8771,8772,8774,8776],{"class":86,"line":5741},[84,8773,3403],{"class":118},[84,8775,3506],{"class":2505},[84,8777,3161],{"class":118},[84,8779,8780,8782,8784],{"class":86,"line":5750},[84,8781,3451],{"class":118},[84,8783,3462],{"class":2505},[84,8785,2517],{"class":118},[84,8787,8788,8790,8792],{"class":86,"line":5759},[84,8789,2959],{"class":118},[84,8791,3380],{"class":2505},[84,8793,2517],{"class":118},[84,8795,8796,8798,8800,8802,8804,8806],{"class":86,"line":5768},[84,8797,2723],{"class":118},[84,8799,3531],{"class":2505},[84,8801,2509],{"class":104},[84,8803,1805],{"class":118},[84,8805,4212],{"class":108},[84,8807,2517],{"class":118},[84,8809,8810,8812,8814],{"class":86,"line":5783},[84,8811,2919],{"class":118},[84,8813,3396],{"class":2505},[84,8815,2517],{"class":118},[84,8817,8818,8820,8822],{"class":86,"line":5792},[84,8819,3403],{"class":118},[84,8821,4092],{"class":2505},[84,8823,2517],{"class":118},[84,8825,8826,8828,8830,8832,8834],{"class":86,"line":5801},[84,8827,3413],{"class":118},[84,8829,3430],{"class":2505},[84,8831,5150],{"class":118},[84,8833,3430],{"class":2505},[84,8835,2517],{"class":118},[84,8837,8838,8840,8842],{"class":86,"line":5814},[84,8839,3442],{"class":118},[84,8841,4092],{"class":2505},[84,8843,2517],{"class":118},[84,8845,8846,8848,8850],{"class":86,"line":5823},[84,8847,3451],{"class":118},[84,8849,3396],{"class":2505},[84,8851,2517],{"class":118},[84,8853,8854,8856,8858],{"class":86,"line":5832},[84,8855,2919],{"class":118},[84,8857,3603],{"class":2505},[84,8859,2517],{"class":118},[84,8861,8862,8864,8866,8868,8870],{"class":86,"line":5841},[84,8863,3403],{"class":118},[84,8865,3287],{"class":2505},[84,8867,4282],{"class":118},[84,8869,3287],{"class":2505},[84,8871,2517],{"class":118},[84,8873,8874,8876,8878,8880,8882],{"class":86,"line":5854},[84,8875,3403],{"class":118},[84,8877,3625],{"class":2505},[84,8879,3304],{"class":118},[84,8881,3625],{"class":2505},[84,8883,2517],{"class":118},[84,8885,8886,8888,8890,8892,8894],{"class":86,"line":5867},[84,8887,3403],{"class":118},[84,8889,3638],{"class":2505},[84,8891,4309],{"class":118},[84,8893,3638],{"class":2505},[84,8895,2517],{"class":118},[84,8897,8898,8900,8902],{"class":86,"line":5880},[84,8899,3451],{"class":118},[84,8901,3603],{"class":2505},[84,8903,2517],{"class":118},[84,8905,8906,8908,8910],{"class":86,"line":5889},[84,8907,2959],{"class":118},[84,8909,3531],{"class":2505},[84,8911,2517],{"class":118},[84,8913,8914,8916,8918,8920,8922],{"class":86,"line":5898},[84,8915,2723],{"class":118},[84,8917,3667],{"class":2505},[84,8919,3670],{"class":118},[84,8921,3667],{"class":2505},[84,8923,2517],{"class":118},[84,8925,8926,8928,8930,8932,8934],{"class":86,"line":5911},[84,8927,2723],{"class":118},[84,8929,3820],{"class":2505},[84,8931,3823],{"class":118},[84,8933,3820],{"class":2505},[84,8935,2517],{"class":118},[84,8937,8938,8940,8942],{"class":86,"line":5924},[84,8939,2783],{"class":118},[84,8941,2525],{"class":2505},[84,8943,2517],{"class":118},[84,8945,8946,8948,8950,8952,8954],{"class":86,"line":5933},[84,8947,2549],{"class":118},[84,8949,3352],{"class":2505},[84,8951,3318],{"class":118},[84,8953,3352],{"class":2505},[84,8955,2517],{"class":118},[84,8957,8958,8960,8962,8964,8966],{"class":86,"line":5946},[84,8959,2549],{"class":118},[84,8961,3857],{"class":2505},[84,8963,3823],{"class":118},[84,8965,3857],{"class":2505},[84,8967,2517],{"class":118},[84,8969,8970,8972,8974],{"class":86,"line":5959},[84,8971,2620],{"class":118},[84,8973,2863],{"class":2505},[84,8975,2517],{"class":118},[84,8977,8978,8980,8982,8984,8986,8988,8990,8992,8994],{"class":86,"line":5968},[84,8979,2539],{"class":118},[84,8981,5973],{"class":2505},[84,8983,2509],{"class":104},[84,8985,1805],{"class":118},[84,8987,5980],{"class":108},[84,8989,3079],{"class":104},[84,8991,1805],{"class":118},[84,8993,5987],{"class":108},[84,8995,2517],{"class":118},[84,8997,8998,9000,9002,9004,9006],{"class":86,"line":5992},[84,8999,2549],{"class":118},[84,9001,3667],{"class":2505},[84,9003,5999],{"class":118},[84,9005,3667],{"class":2505},[84,9007,2517],{"class":118},[84,9009,9010,9012,9014,9016,9018],{"class":86,"line":6006},[84,9011,2549],{"class":118},[84,9013,6011],{"class":2505},[84,9015,3318],{"class":118},[84,9017,6011],{"class":2505},[84,9019,2517],{"class":118},[84,9021,9022,9024,9026,9028,9030],{"class":86,"line":6020},[84,9023,2549],{"class":118},[84,9025,6025],{"class":2505},[84,9027,3110],{"class":118},[84,9029,6025],{"class":2505},[84,9031,2517],{"class":118},[84,9033,9034,9036,9038,9040,9042],{"class":86,"line":6034},[84,9035,2549],{"class":118},[84,9037,6039],{"class":2505},[84,9039,6042],{"class":118},[84,9041,6039],{"class":2505},[84,9043,2517],{"class":118},[84,9045,9046,9048,9050,9052,9054],{"class":86,"line":6049},[84,9047,2549],{"class":118},[84,9049,3625],{"class":2505},[84,9051,3614],{"class":118},[84,9053,3625],{"class":2505},[84,9055,2517],{"class":118},[84,9057,9058,9060,9062,9064,9066],{"class":86,"line":6062},[84,9059,2549],{"class":118},[84,9061,3638],{"class":2505},[84,9063,6069],{"class":118},[84,9065,3638],{"class":2505},[84,9067,2517],{"class":118},[84,9069,9070,9072,9074],{"class":86,"line":6076},[84,9071,2549],{"class":118},[84,9073,6081],{"class":2505},[84,9075,2517],{"class":118},[84,9077,9078,9080,9082,9084,9086],{"class":86,"line":6086},[84,9079,2723],{"class":118},[84,9081,6091],{"class":2505},[84,9083,3124],{"class":118},[84,9085,6091],{"class":2505},[84,9087,2517],{"class":118},[84,9089,9090,9092,9094,9096,9098],{"class":86,"line":6100},[84,9091,2723],{"class":118},[84,9093,6105],{"class":2505},[84,9095,6108],{"class":118},[84,9097,6105],{"class":2505},[84,9099,2517],{"class":118},[84,9101,9102,9104,9106,9108,9110],{"class":86,"line":6115},[84,9103,2723],{"class":118},[84,9105,6120],{"class":2505},[84,9107,6123],{"class":118},[84,9109,6120],{"class":2505},[84,9111,2517],{"class":118},[84,9113,9114,9116,9118,9120,9122],{"class":86,"line":6130},[84,9115,2723],{"class":118},[84,9117,6135],{"class":2505},[84,9119,3096],{"class":118},[84,9121,6135],{"class":2505},[84,9123,2517],{"class":118},[84,9125,9126,9128,9130],{"class":86,"line":6144},[84,9127,2783],{"class":118},[84,9129,6081],{"class":2505},[84,9131,2517],{"class":118},[84,9133,9134,9136,9138],{"class":86,"line":6153},[84,9135,2549],{"class":118},[84,9137,6158],{"class":2505},[84,9139,2517],{"class":118},[84,9141,9142,9144,9146,9148,9150],{"class":86,"line":6163},[84,9143,2723],{"class":118},[84,9145,6168],{"class":2505},[84,9147,3737],{"class":118},[84,9149,6168],{"class":2505},[84,9151,2517],{"class":118},[84,9153,9154,9156,9158,9160,9162],{"class":86,"line":6177},[84,9155,2723],{"class":118},[84,9157,6182],{"class":2505},[84,9159,3737],{"class":118},[84,9161,6182],{"class":2505},[84,9163,2517],{"class":118},[84,9165,9166,9168,9170,9172,9174],{"class":86,"line":6191},[84,9167,2723],{"class":118},[84,9169,6196],{"class":2505},[84,9171,3737],{"class":118},[84,9173,6196],{"class":2505},[84,9175,2517],{"class":118},[84,9177,9178,9180,9182],{"class":86,"line":6205},[84,9179,2783],{"class":118},[84,9181,6158],{"class":2505},[84,9183,2517],{"class":118},[84,9185,9186,9188,9190],{"class":86,"line":6214},[84,9187,2620],{"class":118},[84,9189,5973],{"class":2505},[84,9191,2517],{"class":118},[84,9193,9194,9196,9198],{"class":86,"line":6223},[84,9195,2629],{"class":118},[84,9197,3053],{"class":2505},[84,9199,2517],{"class":118},[84,9201,9202,9204,9206],{"class":86,"line":6232},[84,9203,2638],{"class":118},[84,9205,2846],{"class":2505},[84,9207,2517],{"class":118},[15,9209,9210],{},[19,9211,9212],{},"3.编写launch文件",[15,9214,9215],{},"在launch目录下新建launch文件gazebo_sim_world.launch.py，并输入如下内容：",[74,9217,9219],{"className":1655,"code":9218,"language":1657,"meta":79,"style":79},"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",[81,9220,9221,9227,9231,9241,9245,9255,9265,9275,9279,9287,9291,9303,9315,9333,9337,9345,9349,9361,9369,9381,9385,9389,9395,9400],{"__ignoreMap":79},[84,9222,9223,9225],{"class":86,"line":87},[84,9224,1664],{"class":734},[84,9226,1667],{"class":118},[84,9228,9229],{"class":86,"line":94},[84,9230,91],{"emptyLinePlaceholder":90},[84,9232,9233,9235,9237,9239],{"class":86,"line":101},[84,9234,1676],{"class":734},[84,9236,1679],{"class":118},[84,9238,1664],{"class":734},[84,9240,1684],{"class":118},[84,9242,9243],{"class":86,"line":125},[84,9244,91],{"emptyLinePlaceholder":90},[84,9246,9247,9249,9251,9253],{"class":86,"line":130},[84,9248,1676],{"class":734},[84,9250,1695],{"class":118},[84,9252,1664],{"class":734},[84,9254,1700],{"class":118},[84,9256,9257,9259,9261,9263],{"class":86,"line":136},[84,9258,1676],{"class":734},[84,9260,1707],{"class":118},[84,9262,1664],{"class":734},[84,9264,1723],{"class":118},[84,9266,9267,9269,9271,9273],{"class":86,"line":148},[84,9268,1676],{"class":734},[84,9270,1742],{"class":118},[84,9272,1664],{"class":734},[84,9274,1747],{"class":118},[84,9276,9277],{"class":86,"line":153},[84,9278,91],{"emptyLinePlaceholder":90},[84,9280,9281,9283,9285],{"class":86,"line":159},[84,9282,1785],{"class":734},[84,9284,1788],{"class":104},[84,9286,1791],{"class":118},[84,9288,9289],{"class":86,"line":406},[84,9290,91],{"emptyLinePlaceholder":90},[84,9292,9293,9295,9297,9299,9301],{"class":86,"line":412},[84,9294,1802],{"class":118},[84,9296,1805],{"class":734},[84,9298,1808],{"class":118},[84,9300,1811],{"class":108},[84,9302,1574],{"class":118},[84,9304,9305,9307,9309,9311,9313],{"class":86,"line":418},[84,9306,1819],{"class":118},[84,9308,1805],{"class":734},[84,9310,1808],{"class":118},[84,9312,1826],{"class":108},[84,9314,1574],{"class":118},[84,9316,9317,9319,9321,9323,9326,9328,9331],{"class":86,"line":424},[84,9318,1834],{"class":118},[84,9320,1805],{"class":734},[84,9322,1839],{"class":118},[84,9324,9325],{"class":108},"\"world\"",[84,9327,1845],{"class":118},[84,9329,9330],{"class":108},"\"house.sdf\"",[84,9332,1574],{"class":118},[84,9334,9335],{"class":86,"line":1782},[84,9336,91],{"emptyLinePlaceholder":90},[84,9338,9339,9341,9343],{"class":86,"line":1794},[84,9340,1861],{"class":118},[84,9342,1805],{"class":734},[84,9344,1866],{"class":118},[84,9346,9347],{"class":86,"line":1799},[84,9348,1872],{"class":118},[84,9350,9351,9353,9355,9357,9359],{"class":86,"line":1816},[84,9352,1878],{"class":118},[84,9354,1881],{"class":108},[84,9356,1884],{"class":118},[84,9358,1887],{"class":108},[84,9360,1890],{"class":118},[84,9362,9363,9365,9367],{"class":86,"line":1831},[84,9364,1897],{"class":1896},[84,9366,1805],{"class":734},[84,9368,1902],{"class":118},[84,9370,9371,9373,9375,9377,9379],{"class":86,"line":1853},[84,9372,1908],{"class":108},[84,9374,1911],{"class":118},[84,9376,1914],{"class":108},[84,9378,1917],{"class":734},[84,9380,1920],{"class":118},[84,9382,9383],{"class":86,"line":1858},[84,9384,1926],{"class":118},[84,9386,9387],{"class":86,"line":1869},[84,9388,1932],{"class":118},[84,9390,9391,9393],{"class":86,"line":1875},[84,9392,2210],{"class":734},[84,9394,2213],{"class":118},[84,9396,9397],{"class":86,"line":1893},[84,9398,9399],{"class":118},"        gz_sim\n",[84,9401,9402],{"class":86,"line":1905},[84,9403,2270],{"class":118},[15,9405,9406],{},[19,9407,9408],{},"4.构建",[15,9410,2286],{},[74,9412,9413],{"className":76,"code":2289,"language":78,"meta":79,"style":79},[81,9414,9415],{"__ignoreMap":79},[84,9416,9417,9419,9421,9423],{"class":86,"line":87},[84,9418,2296],{"class":104},[84,9420,2299],{"class":108},[84,9422,2302],{"class":548},[84,9424,1540],{"class":108},[15,9426,9427],{},[19,9428,9429],{},"5.执行",[15,9431,2317],{},[74,9433,9435],{"className":76,"code":9434,"language":78,"meta":79,"style":79},". install/setup.bash\nros2 launch demo_gazebo_sim gazebo_sim_world.launch.py\n",[81,9436,9437,9443],{"__ignoreMap":79},[84,9438,9439,9441],{"class":86,"line":87},[84,9440,2327],{"class":548},[84,9442,2330],{"class":108},[84,9444,9445,9447,9449,9451],{"class":86,"line":94},[84,9446,235],{"class":104},[84,9448,238],{"class":108},[84,9450,2339],{"class":108},[84,9452,9453],{"class":108}," gazebo_sim_world.launch.py\n",[15,9455,9456],{},"运行结果如下图所示。",[15,9458,9459],{},"也可以根据个人喜好，继续设计房间模型。",[15,9461,9462],{},[172,9463],{"alt":79,"src":9464},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1730.webp",[32,9466,9468],{"id":9467},"gz-sim添加模型",[19,9469,9470],{},"Gz Sim添加模型",[15,9472,9473],{},"在Gazebo官网提供了许多仿真模型，可以自行下载并使用以优化仿真环境，使其更多样、美观且真实。",[15,9475,9476],{},[19,9477,9478],{},"资源下载",[15,9480,9481],{},"仿真Gazebo的官方模型链接：",[15,9483,9484],{},[24,9485,9486],{"href":9486,"rel":9487},"https://app.gazebosim.org/fuel/models",[28],[15,9489,9490],{},"自行选择仿真模型点击进入详情页面，然后点击下载按钮即可将模型资源保存到本地。",[15,9492,9493,9494,9497],{},"在用户目录下新建",[81,9495,9496],{},"ign_models","目录，将下载的资源解压缩到该目录以作备用。\n这个目录的名字随便起，你想起什么起什么，但是前提是纯英文，符合Linux命名规则，别有非法。",[15,9499,9500],{},[19,9501,9502],{},"资源配置",[15,9504,9505],{},"为了可以让Gazebo识别到模型资源，下一步还需要修改用户目录下的 .bashrc 文件，添加如下代码：",[74,9507,9509],{"className":76,"code":9508,"language":78,"meta":79,"style":79},"# Jazzy版本的宏如下：\nexport GZ_SIM_RESOURCE_PATH=~/ign_models\n\n# Humble版本一般是下面的\nexport IGN_GAZEBO_RESOURCE_PATH=~/ign_models\n",[81,9510,9511,9516,9530,9534,9539],{"__ignoreMap":79},[84,9512,9513],{"class":86,"line":87},[84,9514,9515],{"class":97},"# Jazzy版本的宏如下：\n",[84,9517,9518,9521,9524,9527],{"class":86,"line":94},[84,9519,9520],{"class":734},"export",[84,9522,9523],{"class":118}," GZ_SIM_RESOURCE_PATH",[84,9525,9526],{"class":734},"=~",[84,9528,9529],{"class":118},"/ign_models\n",[84,9531,9532],{"class":86,"line":101},[84,9533,91],{"emptyLinePlaceholder":90},[84,9535,9536],{"class":86,"line":125},[84,9537,9538],{"class":97},"# Humble版本一般是下面的\n",[84,9540,9541,9543,9546,9548],{"class":86,"line":130},[84,9542,9520],{"class":734},[84,9544,9545],{"class":118}," IGN_GAZEBO_RESOURCE_PATH",[84,9547,9526],{"class":734},[84,9549,9529],{"class":118},[15,9551,9552],{},[24,9553,9554],{"href":9554,"rel":9555},"https://gazebosim.org/docs/latest/fuel_insert/",[28],[15,9557,9558],{},[19,9559,9560],{},"模型添加",[15,9562,9563,9564,9567,9568,9571,9572,9575],{},"终端下进入功能包demo_gazebo_sim的world目录，使用指令",[81,9565,9566],{},"gz sim house.sdf","启动仿真环境，点击窗口右上的折叠按钮，搜索",[81,9569,9570],{},"Resource Spawner","并打开，点击",[81,9573,9574],{},"Local resources","并选择模型拖拽至仿真环境中。将修改后的内容保存至house.sdf文件。",[15,9577,9578],{},[172,9579],{"alt":79,"src":9580},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1731.webp",[15,9582,9583],{},"正常下载资源后，这个local resources这里就会显示了",[15,9585,9586],{},"house.sdf文件示例内容如下：",[74,9588,9590],{"className":2493,"code":9589,"language":2495,"meta":79,"style":79},"\u003Csdf version='1.10'>\n  \u003Cworld name='empty'>\n    \u003Cphysics name='1ms' type='ignored'>\n      \u003Cmax_step_size>0.001\u003C/max_step_size>\n      \u003Creal_time_factor>1\u003C/real_time_factor>\n      \u003Creal_time_update_rate>1000\u003C/real_time_update_rate>\n    \u003C/physics>\n    \u003Cplugin name='gz::sim::systems::Physics' filename='gz-sim-physics-system'/>\n    \u003Cplugin name='gz::sim::systems::UserCommands' filename='gz-sim-user-commands-system'/>\n    \u003Cplugin name='gz::sim::systems::SceneBroadcaster' filename='gz-sim-scene-broadcaster-system'/>\n    \u003Cplugin name='gz::sim::systems::Contact' filename='gz-sim-contact-system'/>\n    \u003Cgravity>0 0 -9.8\u003C/gravity>\n    \u003Cmagnetic_field>6e-06 2.3e-05 -4.2e-05\u003C/magnetic_field>\n    \u003Catmosphere type='adiabatic'/>\n    \u003Cscene>\n      \u003Cambient>0.4 0.4 0.4 1\u003C/ambient>\n      \u003Cbackground>0.7 0.7 0.7 1\u003C/background>\n      \u003Cshadows>true\u003C/shadows>\n    \u003C/scene>\n    \u003Cmodel name='ground_plane'>\n      \u003Cstatic>true\u003C/static>\n      \u003Clink name='link'>\n        \u003Ccollision name='collision'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C/normal>\n              \u003Csize>100 100\u003C/size>\n            \u003C/plane>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='visual'>\n          \u003Cgeometry>\n            \u003Cplane>\n              \u003Cnormal>0 0 1\u003C/normal>\n              \u003Csize>100 100\u003C/size>\n            \u003C/plane>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.8 0.8 0.8 1\u003C/ambient>\n            \u003Cdiffuse>0.8 0.8 0.8 1\u003C/diffuse>\n            \u003Cspecular>0.8 0.8 0.8 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cinertial>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n          \u003Cmass>100\u003C/mass>\n          \u003Cinertia>\n            \u003Cixx>1\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>1\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>1\u003C/izz>\n          \u003C/inertia>\n        \u003C/inertial>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box'>\n      \u003Cpose>5.05017 0 0.5 -0 0 3e-05\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_0'>\n      \u003Cpose>-5.05003 -7.8e-05 0.5 -0 -0 1.8e-05\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>0.1 5 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_1'>\n      \u003Cpose>0.000162 -2.53144 0.499999 0 -0 -0.001876\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003Cmodel name='box_2'>\n      \u003Cpose>0.00012 2.51517 0.499999 0 -0 -0.00303\u003C/pose>\n      \u003Clink name='box_link'>\n        \u003Cinertial>\n          \u003Cinertia>\n            \u003Cixx>16.666\u003C/ixx>\n            \u003Cixy>0\u003C/ixy>\n            \u003Cixz>0\u003C/ixz>\n            \u003Ciyy>16.666\u003C/iyy>\n            \u003Ciyz>0\u003C/iyz>\n            \u003Cizz>16.666\u003C/izz>\n          \u003C/inertia>\n          \u003Cmass>100\u003C/mass>\n          \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003C/inertial>\n        \u003Ccollision name='box_collision'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Csurface>\n            \u003Cfriction>\n              \u003Code/>\n            \u003C/friction>\n            \u003Cbounce/>\n            \u003Ccontact/>\n          \u003C/surface>\n        \u003C/collision>\n        \u003Cvisual name='box_visual'>\n          \u003Cgeometry>\n            \u003Cbox>\n              \u003Csize>10 0.1 1\u003C/size>\n            \u003C/box>\n          \u003C/geometry>\n          \u003Cmaterial>\n            \u003Cambient>0.3 0.3 0.3 1\u003C/ambient>\n            \u003Cdiffuse>0.7 0.7 0.7 1\u003C/diffuse>\n            \u003Cspecular>1 1 1 1\u003C/specular>\n          \u003C/material>\n        \u003C/visual>\n        \u003Cpose>0 0 0 0 -0 0\u003C/pose>\n        \u003Cenable_wind>false\u003C/enable_wind>\n      \u003C/link>\n      \u003Cstatic>true\u003C/static>\n      \u003Cself_collide>false\u003C/self_collide>\n    \u003C/model>\n    \u003C!-- Jazzy 迁移说明开始：下面是本机 file:// 模型目录，ign_models 只是文件夹名，不属于 Gazebo API，因此保留不改。 -->\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/bed\u003C/uri>\n      \u003Cname>Bed\u003C/name>\n      \u003Cpose>2.11564 -0.080355 0 0 -0 0\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet\u003C/name>\n      \u003Cpose>-1.69505 1.99357 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_1\u003C/name>\n      \u003Cpose>-1.71706 1.10132 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_2\u003C/name>\n      \u003Cpose>-1.74096 0.206747 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_3\u003C/name>\n      \u003Cpose>-1.76908 -0.654114 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_4\u003C/name>\n      \u003Cpose>-3.54096 -1.97391 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_4_1\u003C/name>\n      \u003Cpose>-3.51784 -1.10026 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_4_1_1\u003C/name>\n      \u003Cpose>-3.44853 2.02068 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_4_1_1_1\u003C/name>\n      \u003Cpose>-3.499 -0.197449 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_3_1\u003C/name>\n      \u003Cpose>-0.465147 -0.678914 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_3_1_1\u003C/name>\n      \u003Cpose>-1.12325 -0.88551 0 0 0 -0.016899\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_3_1_2\u003C/name>\n      \u003Cpose>-0.445223 0.182127 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003Cinclude>\n      \u003Curi>file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/uri>\n      \u003Cname>WhiteCabinet_3_1_2_1\u003C/name>\n      \u003Cpose>-0.422109 1.02215 0 0 0 -1.59625\u003C/pose>\n    \u003C/include>\n    \u003C!-- Jazzy 迁移说明结束：如果以后重命名本机模型目录，需要同步修改这些 file:// 路径。 -->\n    \u003Clight name='sun' type='directional'>\n      \u003Cpose>0 0 10 0 -0 0\u003C/pose>\n      \u003Ccast_shadows>true\u003C/cast_shadows>\n      \u003Cintensity>1\u003C/intensity>\n      \u003Cdirection>-0.5 0.1 -0.9\u003C/direction>\n      \u003Cdiffuse>0.8 0.8 0.8 1\u003C/diffuse>\n      \u003Cspecular>0.2 0.2 0.2 1\u003C/specular>\n      \u003Cattenuation>\n        \u003Crange>1000\u003C/range>\n        \u003Clinear>0.01\u003C/linear>\n        \u003Cconstant>0.90000000000000002\u003C/constant>\n        \u003Cquadratic>0.001\u003C/quadratic>\n      \u003C/attenuation>\n      \u003Cspot>\n        \u003Cinner_angle>0\u003C/inner_angle>\n        \u003Couter_angle>0\u003C/outer_angle>\n        \u003Cfalloff>0\u003C/falloff>\n      \u003C/spot>\n    \u003C/light>\n  \u003C/world>\n\u003C/sdf>\n\n",[81,9591,9592,9606,9620,9640,9652,9664,9676,9684,9704,9724,9744,9764,9776,9788,9802,9810,9822,9834,9846,9854,9868,9880,9894,9908,9916,9924,9936,9948,9956,9964,9972,9980,9988,9996,10004,10012,10020,10028,10042,10050,10058,10070,10082,10090,10098,10106,10118,10130,10142,10150,10158,10170,10178,10190,10202,10210,10222,10234,10246,10258,10270,10282,10290,10298,10310,10318,10330,10342,10350,10364,10377,10391,10399,10407,10419,10431,10443,10455,10467,10479,10487,10499,10511,10519,10533,10541,10549,10561,10569,10577,10585,10593,10601,10609,10617,10625,10633,10641,10655,10663,10671,10683,10691,10699,10707,10719,10731,10743,10751,10759,10771,10783,10791,10803,10815,10823,10837,10850,10864,10872,10880,10892,10904,10916,10928,10940,10952,10960,10972,10984,10992,11006,11014,11022,11034,11042,11050,11058,11066,11074,11082,11090,11098,11106,11114,11128,11136,11144,11156,11164,11172,11180,11192,11204,11216,11224,11232,11244,11256,11264,11276,11288,11296,11310,11323,11337,11345,11353,11365,11377,11389,11401,11413,11425,11433,11445,11457,11465,11479,11487,11495,11507,11515,11523,11531,11539,11547,11555,11563,11571,11579,11587,11601,11609,11617,11629,11637,11645,11653,11665,11677,11689,11697,11705,11717,11729,11737,11749,11761,11769,11783,11796,11810,11818,11826,11838,11850,11862,11874,11886,11898,11906,11918,11930,11938,11952,11960,11968,11980,11988,11996,12004,12012,12020,12028,12036,12044,12052,12060,12074,12082,12090,12102,12110,12118,12126,12138,12150,12162,12170,12178,12190,12202,12210,12222,12234,12242,12247,12256,12270,12283,12296,12304,12312,12325,12338,12351,12359,12367,12379,12392,12405,12413,12421,12433,12446,12459,12467,12476,12489,12503,12517,12526,12535,12548,12562,12576,12585,12594,12607,12621,12635,12644,12653,12666,12680,12694,12703,12712,12725,12739,12753,12762,12771,12784,12798,12812,12821,12830,12843,12857,12871,12880,12889,12902,12916,12930,12939,12948,12961,12975,12989,12998,13004,13025,13038,13051,13064,13077,13090,13103,13112,13125,13138,13151,13164,13173,13182,13195,13208,13221,13230,13239,13248],{"__ignoreMap":79},[84,9593,9594,9596,9598,9600,9602,9604],{"class":86,"line":87},[84,9595,2502],{"class":118},[84,9597,2846],{"class":2505},[84,9599,2849],{"class":104},[84,9601,1805],{"class":118},[84,9603,3044],{"class":108},[84,9605,2517],{"class":118},[84,9607,9608,9610,9612,9614,9616,9618],{"class":86,"line":94},[84,9609,2522],{"class":118},[84,9611,3053],{"class":2505},[84,9613,2509],{"class":104},[84,9615,1805],{"class":118},[84,9617,3060],{"class":108},[84,9619,2517],{"class":118},[84,9621,9622,9624,9626,9628,9630,9632,9634,9636,9638],{"class":86,"line":101},[84,9623,2539],{"class":118},[84,9625,3069],{"class":2505},[84,9627,2509],{"class":104},[84,9629,1805],{"class":118},[84,9631,3076],{"class":108},[84,9633,3079],{"class":104},[84,9635,1805],{"class":118},[84,9637,3084],{"class":108},[84,9639,2517],{"class":118},[84,9641,9642,9644,9646,9648,9650],{"class":86,"line":125},[84,9643,2549],{"class":118},[84,9645,3093],{"class":2505},[84,9647,3096],{"class":118},[84,9649,3093],{"class":2505},[84,9651,2517],{"class":118},[84,9653,9654,9656,9658,9660,9662],{"class":86,"line":130},[84,9655,2549],{"class":118},[84,9657,3107],{"class":2505},[84,9659,3110],{"class":118},[84,9661,3107],{"class":2505},[84,9663,2517],{"class":118},[84,9665,9666,9668,9670,9672,9674],{"class":86,"line":136},[84,9667,2549],{"class":118},[84,9669,3121],{"class":2505},[84,9671,3124],{"class":118},[84,9673,3121],{"class":2505},[84,9675,2517],{"class":118},[84,9677,9678,9680,9682],{"class":86,"line":148},[84,9679,2620],{"class":118},[84,9681,3069],{"class":2505},[84,9683,2517],{"class":118},[84,9685,9686,9688,9690,9692,9694,9696,9698,9700,9702],{"class":86,"line":153},[84,9687,2539],{"class":118},[84,9689,3143],{"class":2505},[84,9691,2509],{"class":104},[84,9693,1805],{"class":118},[84,9695,3150],{"class":108},[84,9697,3153],{"class":104},[84,9699,1805],{"class":118},[84,9701,3158],{"class":108},[84,9703,3161],{"class":118},[84,9705,9706,9708,9710,9712,9714,9716,9718,9720,9722],{"class":86,"line":159},[84,9707,2539],{"class":118},[84,9709,3143],{"class":2505},[84,9711,2509],{"class":104},[84,9713,1805],{"class":118},[84,9715,3174],{"class":108},[84,9717,3153],{"class":104},[84,9719,1805],{"class":118},[84,9721,3181],{"class":108},[84,9723,3161],{"class":118},[84,9725,9726,9728,9730,9732,9734,9736,9738,9740,9742],{"class":86,"line":406},[84,9727,2539],{"class":118},[84,9729,3143],{"class":2505},[84,9731,2509],{"class":104},[84,9733,1805],{"class":118},[84,9735,3196],{"class":108},[84,9737,3153],{"class":104},[84,9739,1805],{"class":118},[84,9741,3203],{"class":108},[84,9743,3161],{"class":118},[84,9745,9746,9748,9750,9752,9754,9756,9758,9760,9762],{"class":86,"line":412},[84,9747,2539],{"class":118},[84,9749,3143],{"class":2505},[84,9751,2509],{"class":104},[84,9753,1805],{"class":118},[84,9755,3218],{"class":108},[84,9757,3153],{"class":104},[84,9759,1805],{"class":118},[84,9761,3225],{"class":108},[84,9763,3161],{"class":118},[84,9765,9766,9768,9770,9772,9774],{"class":86,"line":418},[84,9767,2539],{"class":118},[84,9769,3234],{"class":2505},[84,9771,3237],{"class":118},[84,9773,3234],{"class":2505},[84,9775,2517],{"class":118},[84,9777,9778,9780,9782,9784,9786],{"class":86,"line":424},[84,9779,2539],{"class":118},[84,9781,3248],{"class":2505},[84,9783,3251],{"class":118},[84,9785,3248],{"class":2505},[84,9787,2517],{"class":118},[84,9789,9790,9792,9794,9796,9798,9800],{"class":86,"line":1782},[84,9791,2539],{"class":118},[84,9793,3262],{"class":2505},[84,9795,3079],{"class":104},[84,9797,1805],{"class":118},[84,9799,3269],{"class":108},[84,9801,3161],{"class":118},[84,9803,9804,9806,9808],{"class":86,"line":1794},[84,9805,2539],{"class":118},[84,9807,3278],{"class":2505},[84,9809,2517],{"class":118},[84,9811,9812,9814,9816,9818,9820],{"class":86,"line":1799},[84,9813,2549],{"class":118},[84,9815,3287],{"class":2505},[84,9817,3290],{"class":118},[84,9819,3287],{"class":2505},[84,9821,2517],{"class":118},[84,9823,9824,9826,9828,9830,9832],{"class":86,"line":1816},[84,9825,2549],{"class":118},[84,9827,3301],{"class":2505},[84,9829,3304],{"class":118},[84,9831,3301],{"class":2505},[84,9833,2517],{"class":118},[84,9835,9836,9838,9840,9842,9844],{"class":86,"line":1831},[84,9837,2549],{"class":118},[84,9839,3315],{"class":2505},[84,9841,3318],{"class":118},[84,9843,3315],{"class":2505},[84,9845,2517],{"class":118},[84,9847,9848,9850,9852],{"class":86,"line":1853},[84,9849,2620],{"class":118},[84,9851,3278],{"class":2505},[84,9853,2517],{"class":118},[84,9855,9856,9858,9860,9862,9864,9866],{"class":86,"line":1858},[84,9857,2539],{"class":118},[84,9859,2863],{"class":2505},[84,9861,2509],{"class":104},[84,9863,1805],{"class":118},[84,9865,3343],{"class":108},[84,9867,2517],{"class":118},[84,9869,9870,9872,9874,9876,9878],{"class":86,"line":1869},[84,9871,2549],{"class":118},[84,9873,3352],{"class":2505},[84,9875,3318],{"class":118},[84,9877,3352],{"class":2505},[84,9879,2517],{"class":118},[84,9881,9882,9884,9886,9888,9890,9892],{"class":86,"line":1875},[84,9883,2549],{"class":118},[84,9885,2525],{"class":2505},[84,9887,2509],{"class":104},[84,9889,1805],{"class":118},[84,9891,3371],{"class":108},[84,9893,2517],{"class":118},[84,9895,9896,9898,9900,9902,9904,9906],{"class":86,"line":1893},[84,9897,2723],{"class":118},[84,9899,3380],{"class":2505},[84,9901,2509],{"class":104},[84,9903,1805],{"class":118},[84,9905,3387],{"class":108},[84,9907,2517],{"class":118},[84,9909,9910,9912,9914],{"class":86,"line":1905},[84,9911,2919],{"class":118},[84,9913,3396],{"class":2505},[84,9915,2517],{"class":118},[84,9917,9918,9920,9922],{"class":86,"line":1923},[84,9919,3403],{"class":118},[84,9921,3406],{"class":2505},[84,9923,2517],{"class":118},[84,9925,9926,9928,9930,9932,9934],{"class":86,"line":1929},[84,9927,3413],{"class":118},[84,9929,3416],{"class":2505},[84,9931,3419],{"class":118},[84,9933,3416],{"class":2505},[84,9935,2517],{"class":118},[84,9937,9938,9940,9942,9944,9946],{"class":86,"line":1935},[84,9939,3413],{"class":118},[84,9941,3430],{"class":2505},[84,9943,3433],{"class":118},[84,9945,3430],{"class":2505},[84,9947,2517],{"class":118},[84,9949,9950,9952,9954],{"class":86,"line":1940},[84,9951,3442],{"class":118},[84,9953,3406],{"class":2505},[84,9955,2517],{"class":118},[84,9957,9958,9960,9962],{"class":86,"line":1946},[84,9959,3451],{"class":118},[84,9961,3396],{"class":2505},[84,9963,2517],{"class":118},[84,9965,9966,9968,9970],{"class":86,"line":1957},[84,9967,2919],{"class":118},[84,9969,3462],{"class":2505},[84,9971,2517],{"class":118},[84,9973,9974,9976,9978],{"class":86,"line":1971},[84,9975,3403],{"class":118},[84,9977,3471],{"class":2505},[84,9979,2517],{"class":118},[84,9981,9982,9984,9986],{"class":86,"line":1983},[84,9983,3413],{"class":118},[84,9985,3480],{"class":2505},[84,9987,3161],{"class":118},[84,9989,9990,9992,9994],{"class":86,"line":2010},[84,9991,3442],{"class":118},[84,9993,3471],{"class":2505},[84,9995,2517],{"class":118},[84,9997,9998,10000,10002],{"class":86,"line":2026},[84,9999,3403],{"class":118},[84,10001,3497],{"class":2505},[84,10003,3161],{"class":118},[84,10005,10006,10008,10010],{"class":86,"line":2031},[84,10007,3403],{"class":118},[84,10009,3506],{"class":2505},[84,10011,3161],{"class":118},[84,10013,10014,10016,10018],{"class":86,"line":2036},[84,10015,3451],{"class":118},[84,10017,3462],{"class":2505},[84,10019,2517],{"class":118},[84,10021,10022,10024,10026],{"class":86,"line":2042},[84,10023,2959],{"class":118},[84,10025,3380],{"class":2505},[84,10027,2517],{"class":118},[84,10029,10030,10032,10034,10036,10038,10040],{"class":86,"line":2052},[84,10031,2723],{"class":118},[84,10033,3531],{"class":2505},[84,10035,2509],{"class":104},[84,10037,1805],{"class":118},[84,10039,3538],{"class":108},[84,10041,2517],{"class":118},[84,10043,10044,10046,10048],{"class":86,"line":2065},[84,10045,2919],{"class":118},[84,10047,3396],{"class":2505},[84,10049,2517],{"class":118},[84,10051,10052,10054,10056],{"class":86,"line":2078},[84,10053,3403],{"class":118},[84,10055,3406],{"class":2505},[84,10057,2517],{"class":118},[84,10059,10060,10062,10064,10066,10068],{"class":86,"line":2093},[84,10061,3413],{"class":118},[84,10063,3416],{"class":2505},[84,10065,3419],{"class":118},[84,10067,3416],{"class":2505},[84,10069,2517],{"class":118},[84,10071,10072,10074,10076,10078,10080],{"class":86,"line":2101},[84,10073,3413],{"class":118},[84,10075,3430],{"class":2505},[84,10077,3433],{"class":118},[84,10079,3430],{"class":2505},[84,10081,2517],{"class":118},[84,10083,10084,10086,10088],{"class":86,"line":2109},[84,10085,3442],{"class":118},[84,10087,3406],{"class":2505},[84,10089,2517],{"class":118},[84,10091,10092,10094,10096],{"class":86,"line":2115},[84,10093,3451],{"class":118},[84,10095,3396],{"class":2505},[84,10097,2517],{"class":118},[84,10099,10100,10102,10104],{"class":86,"line":2137},[84,10101,2919],{"class":118},[84,10103,3603],{"class":2505},[84,10105,2517],{"class":118},[84,10107,10108,10110,10112,10114,10116],{"class":86,"line":2148},[84,10109,3403],{"class":118},[84,10111,3287],{"class":2505},[84,10113,3614],{"class":118},[84,10115,3287],{"class":2505},[84,10117,2517],{"class":118},[84,10119,10120,10122,10124,10126,10128],{"class":86,"line":2165},[84,10121,3403],{"class":118},[84,10123,3625],{"class":2505},[84,10125,3614],{"class":118},[84,10127,3625],{"class":2505},[84,10129,2517],{"class":118},[84,10131,10132,10134,10136,10138,10140],{"class":86,"line":2180},[84,10133,3403],{"class":118},[84,10135,3638],{"class":2505},[84,10137,3614],{"class":118},[84,10139,3638],{"class":2505},[84,10141,2517],{"class":118},[84,10143,10144,10146,10148],{"class":86,"line":2186},[84,10145,3451],{"class":118},[84,10147,3603],{"class":2505},[84,10149,2517],{"class":118},[84,10151,10152,10154,10156],{"class":86,"line":2197},[84,10153,2959],{"class":118},[84,10155,3531],{"class":2505},[84,10157,2517],{"class":118},[84,10159,10160,10162,10164,10166,10168],{"class":86,"line":2202},[84,10161,2723],{"class":118},[84,10163,3667],{"class":2505},[84,10165,3670],{"class":118},[84,10167,3667],{"class":2505},[84,10169,2517],{"class":118},[84,10171,10172,10174,10176],{"class":86,"line":2207},[84,10173,2723],{"class":118},[84,10175,2542],{"class":2505},[84,10177,2517],{"class":118},[84,10179,10180,10182,10184,10186,10188],{"class":86,"line":2216},[84,10181,2919],{"class":118},[84,10183,3667],{"class":2505},[84,10185,3670],{"class":118},[84,10187,3667],{"class":2505},[84,10189,2517],{"class":118},[84,10191,10192,10194,10196,10198,10200],{"class":86,"line":2222},[84,10193,2919],{"class":118},[84,10195,2552],{"class":2505},[84,10197,3703],{"class":118},[84,10199,2552],{"class":2505},[84,10201,2517],{"class":118},[84,10203,10204,10206,10208],{"class":86,"line":2242},[84,10205,2919],{"class":118},[84,10207,2570],{"class":2505},[84,10209,2517],{"class":118},[84,10211,10212,10214,10216,10218,10220],{"class":86,"line":2255},[84,10213,3403],{"class":118},[84,10215,2922],{"class":2505},[84,10217,3110],{"class":118},[84,10219,2922],{"class":2505},[84,10221,2517],{"class":118},[84,10223,10224,10226,10228,10230,10232],{"class":86,"line":2261},[84,10225,3403],{"class":118},[84,10227,3734],{"class":2505},[84,10229,3737],{"class":118},[84,10231,3734],{"class":2505},[84,10233,2517],{"class":118},[84,10235,10236,10238,10240,10242,10244],{"class":86,"line":2267},[84,10237,3403],{"class":118},[84,10239,3748],{"class":2505},[84,10241,3737],{"class":118},[84,10243,3748],{"class":2505},[84,10245,2517],{"class":118},[84,10247,10248,10250,10252,10254,10256],{"class":86,"line":3757},[84,10249,3403],{"class":118},[84,10251,2935],{"class":2505},[84,10253,3110],{"class":118},[84,10255,2935],{"class":2505},[84,10257,2517],{"class":118},[84,10259,10260,10262,10264,10266,10268],{"class":86,"line":3770},[84,10261,3403],{"class":118},[84,10263,3775],{"class":2505},[84,10265,3737],{"class":118},[84,10267,3775],{"class":2505},[84,10269,2517],{"class":118},[84,10271,10272,10274,10276,10278,10280],{"class":86,"line":3784},[84,10273,3403],{"class":118},[84,10275,2948],{"class":2505},[84,10277,3110],{"class":118},[84,10279,2948],{"class":2505},[84,10281,2517],{"class":118},[84,10283,10284,10286,10288],{"class":86,"line":3797},[84,10285,3451],{"class":118},[84,10287,2570],{"class":2505},[84,10289,2517],{"class":118},[84,10291,10292,10294,10296],{"class":86,"line":3806},[84,10293,2959],{"class":118},[84,10295,2542],{"class":2505},[84,10297,2517],{"class":118},[84,10299,10300,10302,10304,10306,10308],{"class":86,"line":3815},[84,10301,2723],{"class":118},[84,10303,3820],{"class":2505},[84,10305,3823],{"class":118},[84,10307,3820],{"class":2505},[84,10309,2517],{"class":118},[84,10311,10312,10314,10316],{"class":86,"line":3830},[84,10313,2783],{"class":118},[84,10315,2525],{"class":2505},[84,10317,2517],{"class":118},[84,10319,10320,10322,10324,10326,10328],{"class":86,"line":3839},[84,10321,2549],{"class":118},[84,10323,3667],{"class":2505},[84,10325,3670],{"class":118},[84,10327,3667],{"class":2505},[84,10329,2517],{"class":118},[84,10331,10332,10334,10336,10338,10340],{"class":86,"line":3852},[84,10333,2549],{"class":118},[84,10335,3857],{"class":2505},[84,10337,3823],{"class":118},[84,10339,3857],{"class":2505},[84,10341,2517],{"class":118},[84,10343,10344,10346,10348],{"class":86,"line":3866},[84,10345,2620],{"class":118},[84,10347,2863],{"class":2505},[84,10349,2517],{"class":118},[84,10351,10352,10354,10356,10358,10360,10362],{"class":86,"line":3875},[84,10353,2539],{"class":118},[84,10355,2863],{"class":2505},[84,10357,2509],{"class":104},[84,10359,1805],{"class":118},[84,10361,3886],{"class":108},[84,10363,2517],{"class":118},[84,10365,10366,10368,10370,10373,10375],{"class":86,"line":3891},[84,10367,2549],{"class":118},[84,10369,3667],{"class":2505},[84,10371,10372],{"class":118},">5.05017 0 0.5 -0 0 3e-05\u003C/",[84,10374,3667],{"class":2505},[84,10376,2517],{"class":118},[84,10378,10379,10381,10383,10385,10387,10389],{"class":86,"line":3905},[84,10380,2549],{"class":118},[84,10382,2525],{"class":2505},[84,10384,2509],{"class":104},[84,10386,1805],{"class":118},[84,10388,3916],{"class":108},[84,10390,2517],{"class":118},[84,10392,10393,10395,10397],{"class":86,"line":3921},[84,10394,2723],{"class":118},[84,10396,2542],{"class":2505},[84,10398,2517],{"class":118},[84,10400,10401,10403,10405],{"class":86,"line":3930},[84,10402,2919],{"class":118},[84,10404,2570],{"class":2505},[84,10406,2517],{"class":118},[84,10408,10409,10411,10413,10415,10417],{"class":86,"line":3939},[84,10410,3403],{"class":118},[84,10412,2922],{"class":2505},[84,10414,3946],{"class":118},[84,10416,2922],{"class":2505},[84,10418,2517],{"class":118},[84,10420,10421,10423,10425,10427,10429],{"class":86,"line":3953},[84,10422,3403],{"class":118},[84,10424,3734],{"class":2505},[84,10426,3737],{"class":118},[84,10428,3734],{"class":2505},[84,10430,2517],{"class":118},[84,10432,10433,10435,10437,10439,10441],{"class":86,"line":3966},[84,10434,3403],{"class":118},[84,10436,3748],{"class":2505},[84,10438,3737],{"class":118},[84,10440,3748],{"class":2505},[84,10442,2517],{"class":118},[84,10444,10445,10447,10449,10451,10453],{"class":86,"line":3979},[84,10446,3403],{"class":118},[84,10448,2935],{"class":2505},[84,10450,3946],{"class":118},[84,10452,2935],{"class":2505},[84,10454,2517],{"class":118},[84,10456,10457,10459,10461,10463,10465],{"class":86,"line":3992},[84,10458,3403],{"class":118},[84,10460,3775],{"class":2505},[84,10462,3737],{"class":118},[84,10464,3775],{"class":2505},[84,10466,2517],{"class":118},[84,10468,10469,10471,10473,10475,10477],{"class":86,"line":4005},[84,10470,3403],{"class":118},[84,10472,2948],{"class":2505},[84,10474,3946],{"class":118},[84,10476,2948],{"class":2505},[84,10478,2517],{"class":118},[84,10480,10481,10483,10485],{"class":86,"line":4018},[84,10482,3451],{"class":118},[84,10484,2570],{"class":2505},[84,10486,2517],{"class":118},[84,10488,10489,10491,10493,10495,10497],{"class":86,"line":4027},[84,10490,2919],{"class":118},[84,10492,2552],{"class":2505},[84,10494,3703],{"class":118},[84,10496,2552],{"class":2505},[84,10498,2517],{"class":118},[84,10500,10501,10503,10505,10507,10509],{"class":86,"line":4040},[84,10502,2919],{"class":118},[84,10504,3667],{"class":2505},[84,10506,3670],{"class":118},[84,10508,3667],{"class":2505},[84,10510,2517],{"class":118},[84,10512,10513,10515,10517],{"class":86,"line":4053},[84,10514,2959],{"class":118},[84,10516,2542],{"class":2505},[84,10518,2517],{"class":118},[84,10520,10521,10523,10525,10527,10529,10531],{"class":86,"line":4062},[84,10522,2723],{"class":118},[84,10524,3380],{"class":2505},[84,10526,2509],{"class":104},[84,10528,1805],{"class":118},[84,10530,4073],{"class":108},[84,10532,2517],{"class":118},[84,10534,10535,10537,10539],{"class":86,"line":4078},[84,10536,2919],{"class":118},[84,10538,3396],{"class":2505},[84,10540,2517],{"class":118},[84,10542,10543,10545,10547],{"class":86,"line":4087},[84,10544,3403],{"class":118},[84,10546,4092],{"class":2505},[84,10548,2517],{"class":118},[84,10550,10551,10553,10555,10557,10559],{"class":86,"line":4097},[84,10552,3413],{"class":118},[84,10554,3430],{"class":2505},[84,10556,4104],{"class":118},[84,10558,3430],{"class":2505},[84,10560,2517],{"class":118},[84,10562,10563,10565,10567],{"class":86,"line":4111},[84,10564,3442],{"class":118},[84,10566,4092],{"class":2505},[84,10568,2517],{"class":118},[84,10570,10571,10573,10575],{"class":86,"line":4120},[84,10572,3451],{"class":118},[84,10574,3396],{"class":2505},[84,10576,2517],{"class":118},[84,10578,10579,10581,10583],{"class":86,"line":4129},[84,10580,2919],{"class":118},[84,10582,3462],{"class":2505},[84,10584,2517],{"class":118},[84,10586,10587,10589,10591],{"class":86,"line":4138},[84,10588,3403],{"class":118},[84,10590,3471],{"class":2505},[84,10592,2517],{"class":118},[84,10594,10595,10597,10599],{"class":86,"line":4147},[84,10596,3413],{"class":118},[84,10598,3480],{"class":2505},[84,10600,3161],{"class":118},[84,10602,10603,10605,10607],{"class":86,"line":4156},[84,10604,3442],{"class":118},[84,10606,3471],{"class":2505},[84,10608,2517],{"class":118},[84,10610,10611,10613,10615],{"class":86,"line":4165},[84,10612,3403],{"class":118},[84,10614,3497],{"class":2505},[84,10616,3161],{"class":118},[84,10618,10619,10621,10623],{"class":86,"line":4174},[84,10620,3403],{"class":118},[84,10622,3506],{"class":2505},[84,10624,3161],{"class":118},[84,10626,10627,10629,10631],{"class":86,"line":4183},[84,10628,3451],{"class":118},[84,10630,3462],{"class":2505},[84,10632,2517],{"class":118},[84,10634,10635,10637,10639],{"class":86,"line":4192},[84,10636,2959],{"class":118},[84,10638,3380],{"class":2505},[84,10640,2517],{"class":118},[84,10642,10643,10645,10647,10649,10651,10653],{"class":86,"line":4201},[84,10644,2723],{"class":118},[84,10646,3531],{"class":2505},[84,10648,2509],{"class":104},[84,10650,1805],{"class":118},[84,10652,4212],{"class":108},[84,10654,2517],{"class":118},[84,10656,10657,10659,10661],{"class":86,"line":4217},[84,10658,2919],{"class":118},[84,10660,3396],{"class":2505},[84,10662,2517],{"class":118},[84,10664,10665,10667,10669],{"class":86,"line":4226},[84,10666,3403],{"class":118},[84,10668,4092],{"class":2505},[84,10670,2517],{"class":118},[84,10672,10673,10675,10677,10679,10681],{"class":86,"line":4235},[84,10674,3413],{"class":118},[84,10676,3430],{"class":2505},[84,10678,4104],{"class":118},[84,10680,3430],{"class":2505},[84,10682,2517],{"class":118},[84,10684,10685,10687,10689],{"class":86,"line":4248},[84,10686,3442],{"class":118},[84,10688,4092],{"class":2505},[84,10690,2517],{"class":118},[84,10692,10693,10695,10697],{"class":86,"line":4257},[84,10694,3451],{"class":118},[84,10696,3396],{"class":2505},[84,10698,2517],{"class":118},[84,10700,10701,10703,10705],{"class":86,"line":4266},[84,10702,2919],{"class":118},[84,10704,3603],{"class":2505},[84,10706,2517],{"class":118},[84,10708,10709,10711,10713,10715,10717],{"class":86,"line":4275},[84,10710,3403],{"class":118},[84,10712,3287],{"class":2505},[84,10714,4282],{"class":118},[84,10716,3287],{"class":2505},[84,10718,2517],{"class":118},[84,10720,10721,10723,10725,10727,10729],{"class":86,"line":4289},[84,10722,3403],{"class":118},[84,10724,3625],{"class":2505},[84,10726,3304],{"class":118},[84,10728,3625],{"class":2505},[84,10730,2517],{"class":118},[84,10732,10733,10735,10737,10739,10741],{"class":86,"line":4302},[84,10734,3403],{"class":118},[84,10736,3638],{"class":2505},[84,10738,4309],{"class":118},[84,10740,3638],{"class":2505},[84,10742,2517],{"class":118},[84,10744,10745,10747,10749],{"class":86,"line":4316},[84,10746,3451],{"class":118},[84,10748,3603],{"class":2505},[84,10750,2517],{"class":118},[84,10752,10753,10755,10757],{"class":86,"line":4325},[84,10754,2959],{"class":118},[84,10756,3531],{"class":2505},[84,10758,2517],{"class":118},[84,10760,10761,10763,10765,10767,10769],{"class":86,"line":4334},[84,10762,2723],{"class":118},[84,10764,3667],{"class":2505},[84,10766,3670],{"class":118},[84,10768,3667],{"class":2505},[84,10770,2517],{"class":118},[84,10772,10773,10775,10777,10779,10781],{"class":86,"line":4347},[84,10774,2723],{"class":118},[84,10776,3820],{"class":2505},[84,10778,3823],{"class":118},[84,10780,3820],{"class":2505},[84,10782,2517],{"class":118},[84,10784,10785,10787,10789],{"class":86,"line":4360},[84,10786,2783],{"class":118},[84,10788,2525],{"class":2505},[84,10790,2517],{"class":118},[84,10792,10793,10795,10797,10799,10801],{"class":86,"line":4369},[84,10794,2549],{"class":118},[84,10796,3352],{"class":2505},[84,10798,3318],{"class":118},[84,10800,3352],{"class":2505},[84,10802,2517],{"class":118},[84,10804,10805,10807,10809,10811,10813],{"class":86,"line":4382},[84,10806,2549],{"class":118},[84,10808,3857],{"class":2505},[84,10810,3823],{"class":118},[84,10812,3857],{"class":2505},[84,10814,2517],{"class":118},[84,10816,10817,10819,10821],{"class":86,"line":4395},[84,10818,2620],{"class":118},[84,10820,2863],{"class":2505},[84,10822,2517],{"class":118},[84,10824,10825,10827,10829,10831,10833,10835],{"class":86,"line":4404},[84,10826,2539],{"class":118},[84,10828,2863],{"class":2505},[84,10830,2509],{"class":104},[84,10832,1805],{"class":118},[84,10834,4415],{"class":108},[84,10836,2517],{"class":118},[84,10838,10839,10841,10843,10846,10848],{"class":86,"line":4420},[84,10840,2549],{"class":118},[84,10842,3667],{"class":2505},[84,10844,10845],{"class":118},">-5.05003 -7.8e-05 0.5 -0 -0 1.8e-05\u003C/",[84,10847,3667],{"class":2505},[84,10849,2517],{"class":118},[84,10851,10852,10854,10856,10858,10860,10862],{"class":86,"line":4434},[84,10853,2549],{"class":118},[84,10855,2525],{"class":2505},[84,10857,2509],{"class":104},[84,10859,1805],{"class":118},[84,10861,3916],{"class":108},[84,10863,2517],{"class":118},[84,10865,10866,10868,10870],{"class":86,"line":4449},[84,10867,2723],{"class":118},[84,10869,2542],{"class":2505},[84,10871,2517],{"class":118},[84,10873,10874,10876,10878],{"class":86,"line":4458},[84,10875,2919],{"class":118},[84,10877,2570],{"class":2505},[84,10879,2517],{"class":118},[84,10881,10882,10884,10886,10888,10890],{"class":86,"line":4467},[84,10883,3403],{"class":118},[84,10885,2922],{"class":2505},[84,10887,3946],{"class":118},[84,10889,2922],{"class":2505},[84,10891,2517],{"class":118},[84,10893,10894,10896,10898,10900,10902],{"class":86,"line":4480},[84,10895,3403],{"class":118},[84,10897,3734],{"class":2505},[84,10899,3737],{"class":118},[84,10901,3734],{"class":2505},[84,10903,2517],{"class":118},[84,10905,10906,10908,10910,10912,10914],{"class":86,"line":4493},[84,10907,3403],{"class":118},[84,10909,3748],{"class":2505},[84,10911,3737],{"class":118},[84,10913,3748],{"class":2505},[84,10915,2517],{"class":118},[84,10917,10918,10920,10922,10924,10926],{"class":86,"line":4506},[84,10919,3403],{"class":118},[84,10921,2935],{"class":2505},[84,10923,3946],{"class":118},[84,10925,2935],{"class":2505},[84,10927,2517],{"class":118},[84,10929,10930,10932,10934,10936,10938],{"class":86,"line":4519},[84,10931,3403],{"class":118},[84,10933,3775],{"class":2505},[84,10935,3737],{"class":118},[84,10937,3775],{"class":2505},[84,10939,2517],{"class":118},[84,10941,10942,10944,10946,10948,10950],{"class":86,"line":4532},[84,10943,3403],{"class":118},[84,10945,2948],{"class":2505},[84,10947,3946],{"class":118},[84,10949,2948],{"class":2505},[84,10951,2517],{"class":118},[84,10953,10954,10956,10958],{"class":86,"line":4545},[84,10955,3451],{"class":118},[84,10957,2570],{"class":2505},[84,10959,2517],{"class":118},[84,10961,10962,10964,10966,10968,10970],{"class":86,"line":4554},[84,10963,2919],{"class":118},[84,10965,2552],{"class":2505},[84,10967,3703],{"class":118},[84,10969,2552],{"class":2505},[84,10971,2517],{"class":118},[84,10973,10974,10976,10978,10980,10982],{"class":86,"line":4567},[84,10975,2919],{"class":118},[84,10977,3667],{"class":2505},[84,10979,3670],{"class":118},[84,10981,3667],{"class":2505},[84,10983,2517],{"class":118},[84,10985,10986,10988,10990],{"class":86,"line":4580},[84,10987,2959],{"class":118},[84,10989,2542],{"class":2505},[84,10991,2517],{"class":118},[84,10993,10994,10996,10998,11000,11002,11004],{"class":86,"line":4589},[84,10995,2723],{"class":118},[84,10997,3380],{"class":2505},[84,10999,2509],{"class":104},[84,11001,1805],{"class":118},[84,11003,4073],{"class":108},[84,11005,2517],{"class":118},[84,11007,11008,11010,11012],{"class":86,"line":4604},[84,11009,2919],{"class":118},[84,11011,3396],{"class":2505},[84,11013,2517],{"class":118},[84,11015,11016,11018,11020],{"class":86,"line":4613},[84,11017,3403],{"class":118},[84,11019,4092],{"class":2505},[84,11021,2517],{"class":118},[84,11023,11024,11026,11028,11030,11032],{"class":86,"line":4622},[84,11025,3413],{"class":118},[84,11027,3430],{"class":2505},[84,11029,4104],{"class":118},[84,11031,3430],{"class":2505},[84,11033,2517],{"class":118},[84,11035,11036,11038,11040],{"class":86,"line":4635},[84,11037,3442],{"class":118},[84,11039,4092],{"class":2505},[84,11041,2517],{"class":118},[84,11043,11044,11046,11048],{"class":86,"line":4644},[84,11045,3451],{"class":118},[84,11047,3396],{"class":2505},[84,11049,2517],{"class":118},[84,11051,11052,11054,11056],{"class":86,"line":4653},[84,11053,2919],{"class":118},[84,11055,3462],{"class":2505},[84,11057,2517],{"class":118},[84,11059,11060,11062,11064],{"class":86,"line":4662},[84,11061,3403],{"class":118},[84,11063,3471],{"class":2505},[84,11065,2517],{"class":118},[84,11067,11068,11070,11072],{"class":86,"line":4671},[84,11069,3413],{"class":118},[84,11071,3480],{"class":2505},[84,11073,3161],{"class":118},[84,11075,11076,11078,11080],{"class":86,"line":4680},[84,11077,3442],{"class":118},[84,11079,3471],{"class":2505},[84,11081,2517],{"class":118},[84,11083,11084,11086,11088],{"class":86,"line":4689},[84,11085,3403],{"class":118},[84,11087,3497],{"class":2505},[84,11089,3161],{"class":118},[84,11091,11092,11094,11096],{"class":86,"line":4698},[84,11093,3403],{"class":118},[84,11095,3506],{"class":2505},[84,11097,3161],{"class":118},[84,11099,11100,11102,11104],{"class":86,"line":4707},[84,11101,3451],{"class":118},[84,11103,3462],{"class":2505},[84,11105,2517],{"class":118},[84,11107,11108,11110,11112],{"class":86,"line":4716},[84,11109,2959],{"class":118},[84,11111,3380],{"class":2505},[84,11113,2517],{"class":118},[84,11115,11116,11118,11120,11122,11124,11126],{"class":86,"line":4725},[84,11117,2723],{"class":118},[84,11119,3531],{"class":2505},[84,11121,2509],{"class":104},[84,11123,1805],{"class":118},[84,11125,4212],{"class":108},[84,11127,2517],{"class":118},[84,11129,11130,11132,11134],{"class":86,"line":4740},[84,11131,2919],{"class":118},[84,11133,3396],{"class":2505},[84,11135,2517],{"class":118},[84,11137,11138,11140,11142],{"class":86,"line":4749},[84,11139,3403],{"class":118},[84,11141,4092],{"class":2505},[84,11143,2517],{"class":118},[84,11145,11146,11148,11150,11152,11154],{"class":86,"line":4758},[84,11147,3413],{"class":118},[84,11149,3430],{"class":2505},[84,11151,4104],{"class":118},[84,11153,3430],{"class":2505},[84,11155,2517],{"class":118},[84,11157,11158,11160,11162],{"class":86,"line":4771},[84,11159,3442],{"class":118},[84,11161,4092],{"class":2505},[84,11163,2517],{"class":118},[84,11165,11166,11168,11170],{"class":86,"line":4780},[84,11167,3451],{"class":118},[84,11169,3396],{"class":2505},[84,11171,2517],{"class":118},[84,11173,11174,11176,11178],{"class":86,"line":4789},[84,11175,2919],{"class":118},[84,11177,3603],{"class":2505},[84,11179,2517],{"class":118},[84,11181,11182,11184,11186,11188,11190],{"class":86,"line":4798},[84,11183,3403],{"class":118},[84,11185,3287],{"class":2505},[84,11187,4282],{"class":118},[84,11189,3287],{"class":2505},[84,11191,2517],{"class":118},[84,11193,11194,11196,11198,11200,11202],{"class":86,"line":4811},[84,11195,3403],{"class":118},[84,11197,3625],{"class":2505},[84,11199,3304],{"class":118},[84,11201,3625],{"class":2505},[84,11203,2517],{"class":118},[84,11205,11206,11208,11210,11212,11214],{"class":86,"line":4824},[84,11207,3403],{"class":118},[84,11209,3638],{"class":2505},[84,11211,4309],{"class":118},[84,11213,3638],{"class":2505},[84,11215,2517],{"class":118},[84,11217,11218,11220,11222],{"class":86,"line":4837},[84,11219,3451],{"class":118},[84,11221,3603],{"class":2505},[84,11223,2517],{"class":118},[84,11225,11226,11228,11230],{"class":86,"line":4846},[84,11227,2959],{"class":118},[84,11229,3531],{"class":2505},[84,11231,2517],{"class":118},[84,11233,11234,11236,11238,11240,11242],{"class":86,"line":4855},[84,11235,2723],{"class":118},[84,11237,3667],{"class":2505},[84,11239,3670],{"class":118},[84,11241,3667],{"class":2505},[84,11243,2517],{"class":118},[84,11245,11246,11248,11250,11252,11254],{"class":86,"line":4868},[84,11247,2723],{"class":118},[84,11249,3820],{"class":2505},[84,11251,3823],{"class":118},[84,11253,3820],{"class":2505},[84,11255,2517],{"class":118},[84,11257,11258,11260,11262],{"class":86,"line":4881},[84,11259,2783],{"class":118},[84,11261,2525],{"class":2505},[84,11263,2517],{"class":118},[84,11265,11266,11268,11270,11272,11274],{"class":86,"line":4890},[84,11267,2549],{"class":118},[84,11269,3352],{"class":2505},[84,11271,3318],{"class":118},[84,11273,3352],{"class":2505},[84,11275,2517],{"class":118},[84,11277,11278,11280,11282,11284,11286],{"class":86,"line":4903},[84,11279,2549],{"class":118},[84,11281,3857],{"class":2505},[84,11283,3823],{"class":118},[84,11285,3857],{"class":2505},[84,11287,2517],{"class":118},[84,11289,11290,11292,11294],{"class":86,"line":4916},[84,11291,2620],{"class":118},[84,11293,2863],{"class":2505},[84,11295,2517],{"class":118},[84,11297,11298,11300,11302,11304,11306,11308],{"class":86,"line":4925},[84,11299,2539],{"class":118},[84,11301,2863],{"class":2505},[84,11303,2509],{"class":104},[84,11305,1805],{"class":118},[84,11307,4936],{"class":108},[84,11309,2517],{"class":118},[84,11311,11312,11314,11316,11319,11321],{"class":86,"line":4941},[84,11313,2549],{"class":118},[84,11315,3667],{"class":2505},[84,11317,11318],{"class":118},">0.000162 -2.53144 0.499999 0 -0 -0.001876\u003C/",[84,11320,3667],{"class":2505},[84,11322,2517],{"class":118},[84,11324,11325,11327,11329,11331,11333,11335],{"class":86,"line":4955},[84,11326,2549],{"class":118},[84,11328,2525],{"class":2505},[84,11330,2509],{"class":104},[84,11332,1805],{"class":118},[84,11334,3916],{"class":108},[84,11336,2517],{"class":118},[84,11338,11339,11341,11343],{"class":86,"line":4970},[84,11340,2723],{"class":118},[84,11342,2542],{"class":2505},[84,11344,2517],{"class":118},[84,11346,11347,11349,11351],{"class":86,"line":4979},[84,11348,2919],{"class":118},[84,11350,2570],{"class":2505},[84,11352,2517],{"class":118},[84,11354,11355,11357,11359,11361,11363],{"class":86,"line":4988},[84,11356,3403],{"class":118},[84,11358,2922],{"class":2505},[84,11360,3946],{"class":118},[84,11362,2922],{"class":2505},[84,11364,2517],{"class":118},[84,11366,11367,11369,11371,11373,11375],{"class":86,"line":5001},[84,11368,3403],{"class":118},[84,11370,3734],{"class":2505},[84,11372,3737],{"class":118},[84,11374,3734],{"class":2505},[84,11376,2517],{"class":118},[84,11378,11379,11381,11383,11385,11387],{"class":86,"line":5014},[84,11380,3403],{"class":118},[84,11382,3748],{"class":2505},[84,11384,3737],{"class":118},[84,11386,3748],{"class":2505},[84,11388,2517],{"class":118},[84,11390,11391,11393,11395,11397,11399],{"class":86,"line":5027},[84,11392,3403],{"class":118},[84,11394,2935],{"class":2505},[84,11396,3946],{"class":118},[84,11398,2935],{"class":2505},[84,11400,2517],{"class":118},[84,11402,11403,11405,11407,11409,11411],{"class":86,"line":5040},[84,11404,3403],{"class":118},[84,11406,3775],{"class":2505},[84,11408,3737],{"class":118},[84,11410,3775],{"class":2505},[84,11412,2517],{"class":118},[84,11414,11415,11417,11419,11421,11423],{"class":86,"line":5053},[84,11416,3403],{"class":118},[84,11418,2948],{"class":2505},[84,11420,3946],{"class":118},[84,11422,2948],{"class":2505},[84,11424,2517],{"class":118},[84,11426,11427,11429,11431],{"class":86,"line":5066},[84,11428,3451],{"class":118},[84,11430,2570],{"class":2505},[84,11432,2517],{"class":118},[84,11434,11435,11437,11439,11441,11443],{"class":86,"line":5075},[84,11436,2919],{"class":118},[84,11438,2552],{"class":2505},[84,11440,3703],{"class":118},[84,11442,2552],{"class":2505},[84,11444,2517],{"class":118},[84,11446,11447,11449,11451,11453,11455],{"class":86,"line":5088},[84,11448,2919],{"class":118},[84,11450,3667],{"class":2505},[84,11452,3670],{"class":118},[84,11454,3667],{"class":2505},[84,11456,2517],{"class":118},[84,11458,11459,11461,11463],{"class":86,"line":5101},[84,11460,2959],{"class":118},[84,11462,2542],{"class":2505},[84,11464,2517],{"class":118},[84,11466,11467,11469,11471,11473,11475,11477],{"class":86,"line":5110},[84,11468,2723],{"class":118},[84,11470,3380],{"class":2505},[84,11472,2509],{"class":104},[84,11474,1805],{"class":118},[84,11476,4073],{"class":108},[84,11478,2517],{"class":118},[84,11480,11481,11483,11485],{"class":86,"line":5125},[84,11482,2919],{"class":118},[84,11484,3396],{"class":2505},[84,11486,2517],{"class":118},[84,11488,11489,11491,11493],{"class":86,"line":5134},[84,11490,3403],{"class":118},[84,11492,4092],{"class":2505},[84,11494,2517],{"class":118},[84,11496,11497,11499,11501,11503,11505],{"class":86,"line":5143},[84,11498,3413],{"class":118},[84,11500,3430],{"class":2505},[84,11502,5150],{"class":118},[84,11504,3430],{"class":2505},[84,11506,2517],{"class":118},[84,11508,11509,11511,11513],{"class":86,"line":5157},[84,11510,3442],{"class":118},[84,11512,4092],{"class":2505},[84,11514,2517],{"class":118},[84,11516,11517,11519,11521],{"class":86,"line":5166},[84,11518,3451],{"class":118},[84,11520,3396],{"class":2505},[84,11522,2517],{"class":118},[84,11524,11525,11527,11529],{"class":86,"line":5175},[84,11526,2919],{"class":118},[84,11528,3462],{"class":2505},[84,11530,2517],{"class":118},[84,11532,11533,11535,11537],{"class":86,"line":5184},[84,11534,3403],{"class":118},[84,11536,3471],{"class":2505},[84,11538,2517],{"class":118},[84,11540,11541,11543,11545],{"class":86,"line":5193},[84,11542,3413],{"class":118},[84,11544,3480],{"class":2505},[84,11546,3161],{"class":118},[84,11548,11549,11551,11553],{"class":86,"line":5202},[84,11550,3442],{"class":118},[84,11552,3471],{"class":2505},[84,11554,2517],{"class":118},[84,11556,11557,11559,11561],{"class":86,"line":5211},[84,11558,3403],{"class":118},[84,11560,3497],{"class":2505},[84,11562,3161],{"class":118},[84,11564,11565,11567,11569],{"class":86,"line":5220},[84,11566,3403],{"class":118},[84,11568,3506],{"class":2505},[84,11570,3161],{"class":118},[84,11572,11573,11575,11577],{"class":86,"line":5229},[84,11574,3451],{"class":118},[84,11576,3462],{"class":2505},[84,11578,2517],{"class":118},[84,11580,11581,11583,11585],{"class":86,"line":5238},[84,11582,2959],{"class":118},[84,11584,3380],{"class":2505},[84,11586,2517],{"class":118},[84,11588,11589,11591,11593,11595,11597,11599],{"class":86,"line":5247},[84,11590,2723],{"class":118},[84,11592,3531],{"class":2505},[84,11594,2509],{"class":104},[84,11596,1805],{"class":118},[84,11598,4212],{"class":108},[84,11600,2517],{"class":118},[84,11602,11603,11605,11607],{"class":86,"line":5262},[84,11604,2919],{"class":118},[84,11606,3396],{"class":2505},[84,11608,2517],{"class":118},[84,11610,11611,11613,11615],{"class":86,"line":5271},[84,11612,3403],{"class":118},[84,11614,4092],{"class":2505},[84,11616,2517],{"class":118},[84,11618,11619,11621,11623,11625,11627],{"class":86,"line":5280},[84,11620,3413],{"class":118},[84,11622,3430],{"class":2505},[84,11624,5150],{"class":118},[84,11626,3430],{"class":2505},[84,11628,2517],{"class":118},[84,11630,11631,11633,11635],{"class":86,"line":5293},[84,11632,3442],{"class":118},[84,11634,4092],{"class":2505},[84,11636,2517],{"class":118},[84,11638,11639,11641,11643],{"class":86,"line":5302},[84,11640,3451],{"class":118},[84,11642,3396],{"class":2505},[84,11644,2517],{"class":118},[84,11646,11647,11649,11651],{"class":86,"line":5311},[84,11648,2919],{"class":118},[84,11650,3603],{"class":2505},[84,11652,2517],{"class":118},[84,11654,11655,11657,11659,11661,11663],{"class":86,"line":5320},[84,11656,3403],{"class":118},[84,11658,3287],{"class":2505},[84,11660,4282],{"class":118},[84,11662,3287],{"class":2505},[84,11664,2517],{"class":118},[84,11666,11667,11669,11671,11673,11675],{"class":86,"line":5333},[84,11668,3403],{"class":118},[84,11670,3625],{"class":2505},[84,11672,3304],{"class":118},[84,11674,3625],{"class":2505},[84,11676,2517],{"class":118},[84,11678,11679,11681,11683,11685,11687],{"class":86,"line":5346},[84,11680,3403],{"class":118},[84,11682,3638],{"class":2505},[84,11684,4309],{"class":118},[84,11686,3638],{"class":2505},[84,11688,2517],{"class":118},[84,11690,11691,11693,11695],{"class":86,"line":5359},[84,11692,3451],{"class":118},[84,11694,3603],{"class":2505},[84,11696,2517],{"class":118},[84,11698,11699,11701,11703],{"class":86,"line":5368},[84,11700,2959],{"class":118},[84,11702,3531],{"class":2505},[84,11704,2517],{"class":118},[84,11706,11707,11709,11711,11713,11715],{"class":86,"line":5377},[84,11708,2723],{"class":118},[84,11710,3667],{"class":2505},[84,11712,3670],{"class":118},[84,11714,3667],{"class":2505},[84,11716,2517],{"class":118},[84,11718,11719,11721,11723,11725,11727],{"class":86,"line":5390},[84,11720,2723],{"class":118},[84,11722,3820],{"class":2505},[84,11724,3823],{"class":118},[84,11726,3820],{"class":2505},[84,11728,2517],{"class":118},[84,11730,11731,11733,11735],{"class":86,"line":5403},[84,11732,2783],{"class":118},[84,11734,2525],{"class":2505},[84,11736,2517],{"class":118},[84,11738,11739,11741,11743,11745,11747],{"class":86,"line":5412},[84,11740,2549],{"class":118},[84,11742,3352],{"class":2505},[84,11744,3318],{"class":118},[84,11746,3352],{"class":2505},[84,11748,2517],{"class":118},[84,11750,11751,11753,11755,11757,11759],{"class":86,"line":5425},[84,11752,2549],{"class":118},[84,11754,3857],{"class":2505},[84,11756,3823],{"class":118},[84,11758,3857],{"class":2505},[84,11760,2517],{"class":118},[84,11762,11763,11765,11767],{"class":86,"line":5438},[84,11764,2620],{"class":118},[84,11766,2863],{"class":2505},[84,11768,2517],{"class":118},[84,11770,11771,11773,11775,11777,11779,11781],{"class":86,"line":5447},[84,11772,2539],{"class":118},[84,11774,2863],{"class":2505},[84,11776,2509],{"class":104},[84,11778,1805],{"class":118},[84,11780,5458],{"class":108},[84,11782,2517],{"class":118},[84,11784,11785,11787,11789,11792,11794],{"class":86,"line":5463},[84,11786,2549],{"class":118},[84,11788,3667],{"class":2505},[84,11790,11791],{"class":118},">0.00012 2.51517 0.499999 0 -0 -0.00303\u003C/",[84,11793,3667],{"class":2505},[84,11795,2517],{"class":118},[84,11797,11798,11800,11802,11804,11806,11808],{"class":86,"line":5477},[84,11799,2549],{"class":118},[84,11801,2525],{"class":2505},[84,11803,2509],{"class":104},[84,11805,1805],{"class":118},[84,11807,3916],{"class":108},[84,11809,2517],{"class":118},[84,11811,11812,11814,11816],{"class":86,"line":5492},[84,11813,2723],{"class":118},[84,11815,2542],{"class":2505},[84,11817,2517],{"class":118},[84,11819,11820,11822,11824],{"class":86,"line":5501},[84,11821,2919],{"class":118},[84,11823,2570],{"class":2505},[84,11825,2517],{"class":118},[84,11827,11828,11830,11832,11834,11836],{"class":86,"line":5510},[84,11829,3403],{"class":118},[84,11831,2922],{"class":2505},[84,11833,3946],{"class":118},[84,11835,2922],{"class":2505},[84,11837,2517],{"class":118},[84,11839,11840,11842,11844,11846,11848],{"class":86,"line":5523},[84,11841,3403],{"class":118},[84,11843,3734],{"class":2505},[84,11845,3737],{"class":118},[84,11847,3734],{"class":2505},[84,11849,2517],{"class":118},[84,11851,11852,11854,11856,11858,11860],{"class":86,"line":5536},[84,11853,3403],{"class":118},[84,11855,3748],{"class":2505},[84,11857,3737],{"class":118},[84,11859,3748],{"class":2505},[84,11861,2517],{"class":118},[84,11863,11864,11866,11868,11870,11872],{"class":86,"line":5549},[84,11865,3403],{"class":118},[84,11867,2935],{"class":2505},[84,11869,3946],{"class":118},[84,11871,2935],{"class":2505},[84,11873,2517],{"class":118},[84,11875,11876,11878,11880,11882,11884],{"class":86,"line":5562},[84,11877,3403],{"class":118},[84,11879,3775],{"class":2505},[84,11881,3737],{"class":118},[84,11883,3775],{"class":2505},[84,11885,2517],{"class":118},[84,11887,11888,11890,11892,11894,11896],{"class":86,"line":5575},[84,11889,3403],{"class":118},[84,11891,2948],{"class":2505},[84,11893,3946],{"class":118},[84,11895,2948],{"class":2505},[84,11897,2517],{"class":118},[84,11899,11900,11902,11904],{"class":86,"line":5588},[84,11901,3451],{"class":118},[84,11903,2570],{"class":2505},[84,11905,2517],{"class":118},[84,11907,11908,11910,11912,11914,11916],{"class":86,"line":5597},[84,11909,2919],{"class":118},[84,11911,2552],{"class":2505},[84,11913,3703],{"class":118},[84,11915,2552],{"class":2505},[84,11917,2517],{"class":118},[84,11919,11920,11922,11924,11926,11928],{"class":86,"line":5610},[84,11921,2919],{"class":118},[84,11923,3667],{"class":2505},[84,11925,3670],{"class":118},[84,11927,3667],{"class":2505},[84,11929,2517],{"class":118},[84,11931,11932,11934,11936],{"class":86,"line":5623},[84,11933,2959],{"class":118},[84,11935,2542],{"class":2505},[84,11937,2517],{"class":118},[84,11939,11940,11942,11944,11946,11948,11950],{"class":86,"line":5632},[84,11941,2723],{"class":118},[84,11943,3380],{"class":2505},[84,11945,2509],{"class":104},[84,11947,1805],{"class":118},[84,11949,4073],{"class":108},[84,11951,2517],{"class":118},[84,11953,11954,11956,11958],{"class":86,"line":5647},[84,11955,2919],{"class":118},[84,11957,3396],{"class":2505},[84,11959,2517],{"class":118},[84,11961,11962,11964,11966],{"class":86,"line":5656},[84,11963,3403],{"class":118},[84,11965,4092],{"class":2505},[84,11967,2517],{"class":118},[84,11969,11970,11972,11974,11976,11978],{"class":86,"line":5665},[84,11971,3413],{"class":118},[84,11973,3430],{"class":2505},[84,11975,5150],{"class":118},[84,11977,3430],{"class":2505},[84,11979,2517],{"class":118},[84,11981,11982,11984,11986],{"class":86,"line":5678},[84,11983,3442],{"class":118},[84,11985,4092],{"class":2505},[84,11987,2517],{"class":118},[84,11989,11990,11992,11994],{"class":86,"line":5687},[84,11991,3451],{"class":118},[84,11993,3396],{"class":2505},[84,11995,2517],{"class":118},[84,11997,11998,12000,12002],{"class":86,"line":5696},[84,11999,2919],{"class":118},[84,12001,3462],{"class":2505},[84,12003,2517],{"class":118},[84,12005,12006,12008,12010],{"class":86,"line":5705},[84,12007,3403],{"class":118},[84,12009,3471],{"class":2505},[84,12011,2517],{"class":118},[84,12013,12014,12016,12018],{"class":86,"line":5714},[84,12015,3413],{"class":118},[84,12017,3480],{"class":2505},[84,12019,3161],{"class":118},[84,12021,12022,12024,12026],{"class":86,"line":5723},[84,12023,3442],{"class":118},[84,12025,3471],{"class":2505},[84,12027,2517],{"class":118},[84,12029,12030,12032,12034],{"class":86,"line":5732},[84,12031,3403],{"class":118},[84,12033,3497],{"class":2505},[84,12035,3161],{"class":118},[84,12037,12038,12040,12042],{"class":86,"line":5741},[84,12039,3403],{"class":118},[84,12041,3506],{"class":2505},[84,12043,3161],{"class":118},[84,12045,12046,12048,12050],{"class":86,"line":5750},[84,12047,3451],{"class":118},[84,12049,3462],{"class":2505},[84,12051,2517],{"class":118},[84,12053,12054,12056,12058],{"class":86,"line":5759},[84,12055,2959],{"class":118},[84,12057,3380],{"class":2505},[84,12059,2517],{"class":118},[84,12061,12062,12064,12066,12068,12070,12072],{"class":86,"line":5768},[84,12063,2723],{"class":118},[84,12065,3531],{"class":2505},[84,12067,2509],{"class":104},[84,12069,1805],{"class":118},[84,12071,4212],{"class":108},[84,12073,2517],{"class":118},[84,12075,12076,12078,12080],{"class":86,"line":5783},[84,12077,2919],{"class":118},[84,12079,3396],{"class":2505},[84,12081,2517],{"class":118},[84,12083,12084,12086,12088],{"class":86,"line":5792},[84,12085,3403],{"class":118},[84,12087,4092],{"class":2505},[84,12089,2517],{"class":118},[84,12091,12092,12094,12096,12098,12100],{"class":86,"line":5801},[84,12093,3413],{"class":118},[84,12095,3430],{"class":2505},[84,12097,5150],{"class":118},[84,12099,3430],{"class":2505},[84,12101,2517],{"class":118},[84,12103,12104,12106,12108],{"class":86,"line":5814},[84,12105,3442],{"class":118},[84,12107,4092],{"class":2505},[84,12109,2517],{"class":118},[84,12111,12112,12114,12116],{"class":86,"line":5823},[84,12113,3451],{"class":118},[84,12115,3396],{"class":2505},[84,12117,2517],{"class":118},[84,12119,12120,12122,12124],{"class":86,"line":5832},[84,12121,2919],{"class":118},[84,12123,3603],{"class":2505},[84,12125,2517],{"class":118},[84,12127,12128,12130,12132,12134,12136],{"class":86,"line":5841},[84,12129,3403],{"class":118},[84,12131,3287],{"class":2505},[84,12133,4282],{"class":118},[84,12135,3287],{"class":2505},[84,12137,2517],{"class":118},[84,12139,12140,12142,12144,12146,12148],{"class":86,"line":5854},[84,12141,3403],{"class":118},[84,12143,3625],{"class":2505},[84,12145,3304],{"class":118},[84,12147,3625],{"class":2505},[84,12149,2517],{"class":118},[84,12151,12152,12154,12156,12158,12160],{"class":86,"line":5867},[84,12153,3403],{"class":118},[84,12155,3638],{"class":2505},[84,12157,4309],{"class":118},[84,12159,3638],{"class":2505},[84,12161,2517],{"class":118},[84,12163,12164,12166,12168],{"class":86,"line":5880},[84,12165,3451],{"class":118},[84,12167,3603],{"class":2505},[84,12169,2517],{"class":118},[84,12171,12172,12174,12176],{"class":86,"line":5889},[84,12173,2959],{"class":118},[84,12175,3531],{"class":2505},[84,12177,2517],{"class":118},[84,12179,12180,12182,12184,12186,12188],{"class":86,"line":5898},[84,12181,2723],{"class":118},[84,12183,3667],{"class":2505},[84,12185,3670],{"class":118},[84,12187,3667],{"class":2505},[84,12189,2517],{"class":118},[84,12191,12192,12194,12196,12198,12200],{"class":86,"line":5911},[84,12193,2723],{"class":118},[84,12195,3820],{"class":2505},[84,12197,3823],{"class":118},[84,12199,3820],{"class":2505},[84,12201,2517],{"class":118},[84,12203,12204,12206,12208],{"class":86,"line":5924},[84,12205,2783],{"class":118},[84,12207,2525],{"class":2505},[84,12209,2517],{"class":118},[84,12211,12212,12214,12216,12218,12220],{"class":86,"line":5933},[84,12213,2549],{"class":118},[84,12215,3352],{"class":2505},[84,12217,3318],{"class":118},[84,12219,3352],{"class":2505},[84,12221,2517],{"class":118},[84,12223,12224,12226,12228,12230,12232],{"class":86,"line":5946},[84,12225,2549],{"class":118},[84,12227,3857],{"class":2505},[84,12229,3823],{"class":118},[84,12231,3857],{"class":2505},[84,12233,2517],{"class":118},[84,12235,12236,12238,12240],{"class":86,"line":5959},[84,12237,2620],{"class":118},[84,12239,2863],{"class":2505},[84,12241,2517],{"class":118},[84,12243,12244],{"class":86,"line":5968},[84,12245,12246],{"class":97},"    \u003C!-- Jazzy 迁移说明开始：下面是本机 file:// 模型目录，ign_models 只是文件夹名，不属于 Gazebo API，因此保留不改。 -->\n",[84,12248,12249,12251,12254],{"class":86,"line":5992},[84,12250,2539],{"class":118},[84,12252,12253],{"class":2505},"include",[84,12255,2517],{"class":118},[84,12257,12258,12260,12263,12266,12268],{"class":86,"line":6006},[84,12259,2549],{"class":118},[84,12261,12262],{"class":2505},"uri",[84,12264,12265],{"class":118},">file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/bed\u003C/",[84,12267,12262],{"class":2505},[84,12269,2517],{"class":118},[84,12271,12272,12274,12276,12279,12281],{"class":86,"line":6020},[84,12273,2549],{"class":118},[84,12275,6253],{"class":2505},[84,12277,12278],{"class":118},">Bed\u003C/",[84,12280,6253],{"class":2505},[84,12282,2517],{"class":118},[84,12284,12285,12287,12289,12292,12294],{"class":86,"line":6034},[84,12286,2549],{"class":118},[84,12288,3667],{"class":2505},[84,12290,12291],{"class":118},">2.11564 -0.080355 0 0 -0 0\u003C/",[84,12293,3667],{"class":2505},[84,12295,2517],{"class":118},[84,12297,12298,12300,12302],{"class":86,"line":6049},[84,12299,2620],{"class":118},[84,12301,12253],{"class":2505},[84,12303,2517],{"class":118},[84,12305,12306,12308,12310],{"class":86,"line":6062},[84,12307,2539],{"class":118},[84,12309,12253],{"class":2505},[84,12311,2517],{"class":118},[84,12313,12314,12316,12318,12321,12323],{"class":86,"line":6076},[84,12315,2549],{"class":118},[84,12317,12262],{"class":2505},[84,12319,12320],{"class":118},">file:///home/tungchiahui/UserFolder/MySource/ROS_WS/ign_models/WhiteCabinet\u003C/",[84,12322,12262],{"class":2505},[84,12324,2517],{"class":118},[84,12326,12327,12329,12331,12334,12336],{"class":86,"line":6086},[84,12328,2549],{"class":118},[84,12330,6253],{"class":2505},[84,12332,12333],{"class":118},">WhiteCabinet\u003C/",[84,12335,6253],{"class":2505},[84,12337,2517],{"class":118},[84,12339,12340,12342,12344,12347,12349],{"class":86,"line":6100},[84,12341,2549],{"class":118},[84,12343,3667],{"class":2505},[84,12345,12346],{"class":118},">-1.69505 1.99357 0 0 0 -1.59625\u003C/",[84,12348,3667],{"class":2505},[84,12350,2517],{"class":118},[84,12352,12353,12355,12357],{"class":86,"line":6115},[84,12354,2620],{"class":118},[84,12356,12253],{"class":2505},[84,12358,2517],{"class":118},[84,12360,12361,12363,12365],{"class":86,"line":6130},[84,12362,2539],{"class":118},[84,12364,12253],{"class":2505},[84,12366,2517],{"class":118},[84,12368,12369,12371,12373,12375,12377],{"class":86,"line":6144},[84,12370,2549],{"class":118},[84,12372,12262],{"class":2505},[84,12374,12320],{"class":118},[84,12376,12262],{"class":2505},[84,12378,2517],{"class":118},[84,12380,12381,12383,12385,12388,12390],{"class":86,"line":6153},[84,12382,2549],{"class":118},[84,12384,6253],{"class":2505},[84,12386,12387],{"class":118},">WhiteCabinet_1\u003C/",[84,12389,6253],{"class":2505},[84,12391,2517],{"class":118},[84,12393,12394,12396,12398,12401,12403],{"class":86,"line":6163},[84,12395,2549],{"class":118},[84,12397,3667],{"class":2505},[84,12399,12400],{"class":118},">-1.71706 1.10132 0 0 0 -1.59625\u003C/",[84,12402,3667],{"class":2505},[84,12404,2517],{"class":118},[84,12406,12407,12409,12411],{"class":86,"line":6177},[84,12408,2620],{"class":118},[84,12410,12253],{"class":2505},[84,12412,2517],{"class":118},[84,12414,12415,12417,12419],{"class":86,"line":6191},[84,12416,2539],{"class":118},[84,12418,12253],{"class":2505},[84,12420,2517],{"class":118},[84,12422,12423,12425,12427,12429,12431],{"class":86,"line":6205},[84,12424,2549],{"class":118},[84,12426,12262],{"class":2505},[84,12428,12320],{"class":118},[84,12430,12262],{"class":2505},[84,12432,2517],{"class":118},[84,12434,12435,12437,12439,12442,12444],{"class":86,"line":6214},[84,12436,2549],{"class":118},[84,12438,6253],{"class":2505},[84,12440,12441],{"class":118},">WhiteCabinet_2\u003C/",[84,12443,6253],{"class":2505},[84,12445,2517],{"class":118},[84,12447,12448,12450,12452,12455,12457],{"class":86,"line":6223},[84,12449,2549],{"class":118},[84,12451,3667],{"class":2505},[84,12453,12454],{"class":118},">-1.74096 0.206747 0 0 0 -1.59625\u003C/",[84,12456,3667],{"class":2505},[84,12458,2517],{"class":118},[84,12460,12461,12463,12465],{"class":86,"line":6232},[84,12462,2620],{"class":118},[84,12464,12253],{"class":2505},[84,12466,2517],{"class":118},[84,12468,12470,12472,12474],{"class":86,"line":12469},278,[84,12471,2539],{"class":118},[84,12473,12253],{"class":2505},[84,12475,2517],{"class":118},[84,12477,12479,12481,12483,12485,12487],{"class":86,"line":12478},279,[84,12480,2549],{"class":118},[84,12482,12262],{"class":2505},[84,12484,12320],{"class":118},[84,12486,12262],{"class":2505},[84,12488,2517],{"class":118},[84,12490,12492,12494,12496,12499,12501],{"class":86,"line":12491},280,[84,12493,2549],{"class":118},[84,12495,6253],{"class":2505},[84,12497,12498],{"class":118},">WhiteCabinet_3\u003C/",[84,12500,6253],{"class":2505},[84,12502,2517],{"class":118},[84,12504,12506,12508,12510,12513,12515],{"class":86,"line":12505},281,[84,12507,2549],{"class":118},[84,12509,3667],{"class":2505},[84,12511,12512],{"class":118},">-1.76908 -0.654114 0 0 0 -1.59625\u003C/",[84,12514,3667],{"class":2505},[84,12516,2517],{"class":118},[84,12518,12520,12522,12524],{"class":86,"line":12519},282,[84,12521,2620],{"class":118},[84,12523,12253],{"class":2505},[84,12525,2517],{"class":118},[84,12527,12529,12531,12533],{"class":86,"line":12528},283,[84,12530,2539],{"class":118},[84,12532,12253],{"class":2505},[84,12534,2517],{"class":118},[84,12536,12538,12540,12542,12544,12546],{"class":86,"line":12537},284,[84,12539,2549],{"class":118},[84,12541,12262],{"class":2505},[84,12543,12320],{"class":118},[84,12545,12262],{"class":2505},[84,12547,2517],{"class":118},[84,12549,12551,12553,12555,12558,12560],{"class":86,"line":12550},285,[84,12552,2549],{"class":118},[84,12554,6253],{"class":2505},[84,12556,12557],{"class":118},">WhiteCabinet_4\u003C/",[84,12559,6253],{"class":2505},[84,12561,2517],{"class":118},[84,12563,12565,12567,12569,12572,12574],{"class":86,"line":12564},286,[84,12566,2549],{"class":118},[84,12568,3667],{"class":2505},[84,12570,12571],{"class":118},">-3.54096 -1.97391 0 0 0 -1.59625\u003C/",[84,12573,3667],{"class":2505},[84,12575,2517],{"class":118},[84,12577,12579,12581,12583],{"class":86,"line":12578},287,[84,12580,2620],{"class":118},[84,12582,12253],{"class":2505},[84,12584,2517],{"class":118},[84,12586,12588,12590,12592],{"class":86,"line":12587},288,[84,12589,2539],{"class":118},[84,12591,12253],{"class":2505},[84,12593,2517],{"class":118},[84,12595,12597,12599,12601,12603,12605],{"class":86,"line":12596},289,[84,12598,2549],{"class":118},[84,12600,12262],{"class":2505},[84,12602,12320],{"class":118},[84,12604,12262],{"class":2505},[84,12606,2517],{"class":118},[84,12608,12610,12612,12614,12617,12619],{"class":86,"line":12609},290,[84,12611,2549],{"class":118},[84,12613,6253],{"class":2505},[84,12615,12616],{"class":118},">WhiteCabinet_4_1\u003C/",[84,12618,6253],{"class":2505},[84,12620,2517],{"class":118},[84,12622,12624,12626,12628,12631,12633],{"class":86,"line":12623},291,[84,12625,2549],{"class":118},[84,12627,3667],{"class":2505},[84,12629,12630],{"class":118},">-3.51784 -1.10026 0 0 0 -1.59625\u003C/",[84,12632,3667],{"class":2505},[84,12634,2517],{"class":118},[84,12636,12638,12640,12642],{"class":86,"line":12637},292,[84,12639,2620],{"class":118},[84,12641,12253],{"class":2505},[84,12643,2517],{"class":118},[84,12645,12647,12649,12651],{"class":86,"line":12646},293,[84,12648,2539],{"class":118},[84,12650,12253],{"class":2505},[84,12652,2517],{"class":118},[84,12654,12656,12658,12660,12662,12664],{"class":86,"line":12655},294,[84,12657,2549],{"class":118},[84,12659,12262],{"class":2505},[84,12661,12320],{"class":118},[84,12663,12262],{"class":2505},[84,12665,2517],{"class":118},[84,12667,12669,12671,12673,12676,12678],{"class":86,"line":12668},295,[84,12670,2549],{"class":118},[84,12672,6253],{"class":2505},[84,12674,12675],{"class":118},">WhiteCabinet_4_1_1\u003C/",[84,12677,6253],{"class":2505},[84,12679,2517],{"class":118},[84,12681,12683,12685,12687,12690,12692],{"class":86,"line":12682},296,[84,12684,2549],{"class":118},[84,12686,3667],{"class":2505},[84,12688,12689],{"class":118},">-3.44853 2.02068 0 0 0 -1.59625\u003C/",[84,12691,3667],{"class":2505},[84,12693,2517],{"class":118},[84,12695,12697,12699,12701],{"class":86,"line":12696},297,[84,12698,2620],{"class":118},[84,12700,12253],{"class":2505},[84,12702,2517],{"class":118},[84,12704,12706,12708,12710],{"class":86,"line":12705},298,[84,12707,2539],{"class":118},[84,12709,12253],{"class":2505},[84,12711,2517],{"class":118},[84,12713,12715,12717,12719,12721,12723],{"class":86,"line":12714},299,[84,12716,2549],{"class":118},[84,12718,12262],{"class":2505},[84,12720,12320],{"class":118},[84,12722,12262],{"class":2505},[84,12724,2517],{"class":118},[84,12726,12728,12730,12732,12735,12737],{"class":86,"line":12727},300,[84,12729,2549],{"class":118},[84,12731,6253],{"class":2505},[84,12733,12734],{"class":118},">WhiteCabinet_4_1_1_1\u003C/",[84,12736,6253],{"class":2505},[84,12738,2517],{"class":118},[84,12740,12742,12744,12746,12749,12751],{"class":86,"line":12741},301,[84,12743,2549],{"class":118},[84,12745,3667],{"class":2505},[84,12747,12748],{"class":118},">-3.499 -0.197449 0 0 0 -1.59625\u003C/",[84,12750,3667],{"class":2505},[84,12752,2517],{"class":118},[84,12754,12756,12758,12760],{"class":86,"line":12755},302,[84,12757,2620],{"class":118},[84,12759,12253],{"class":2505},[84,12761,2517],{"class":118},[84,12763,12765,12767,12769],{"class":86,"line":12764},303,[84,12766,2539],{"class":118},[84,12768,12253],{"class":2505},[84,12770,2517],{"class":118},[84,12772,12774,12776,12778,12780,12782],{"class":86,"line":12773},304,[84,12775,2549],{"class":118},[84,12777,12262],{"class":2505},[84,12779,12320],{"class":118},[84,12781,12262],{"class":2505},[84,12783,2517],{"class":118},[84,12785,12787,12789,12791,12794,12796],{"class":86,"line":12786},305,[84,12788,2549],{"class":118},[84,12790,6253],{"class":2505},[84,12792,12793],{"class":118},">WhiteCabinet_3_1\u003C/",[84,12795,6253],{"class":2505},[84,12797,2517],{"class":118},[84,12799,12801,12803,12805,12808,12810],{"class":86,"line":12800},306,[84,12802,2549],{"class":118},[84,12804,3667],{"class":2505},[84,12806,12807],{"class":118},">-0.465147 -0.678914 0 0 0 -1.59625\u003C/",[84,12809,3667],{"class":2505},[84,12811,2517],{"class":118},[84,12813,12815,12817,12819],{"class":86,"line":12814},307,[84,12816,2620],{"class":118},[84,12818,12253],{"class":2505},[84,12820,2517],{"class":118},[84,12822,12824,12826,12828],{"class":86,"line":12823},308,[84,12825,2539],{"class":118},[84,12827,12253],{"class":2505},[84,12829,2517],{"class":118},[84,12831,12833,12835,12837,12839,12841],{"class":86,"line":12832},309,[84,12834,2549],{"class":118},[84,12836,12262],{"class":2505},[84,12838,12320],{"class":118},[84,12840,12262],{"class":2505},[84,12842,2517],{"class":118},[84,12844,12846,12848,12850,12853,12855],{"class":86,"line":12845},310,[84,12847,2549],{"class":118},[84,12849,6253],{"class":2505},[84,12851,12852],{"class":118},">WhiteCabinet_3_1_1\u003C/",[84,12854,6253],{"class":2505},[84,12856,2517],{"class":118},[84,12858,12860,12862,12864,12867,12869],{"class":86,"line":12859},311,[84,12861,2549],{"class":118},[84,12863,3667],{"class":2505},[84,12865,12866],{"class":118},">-1.12325 -0.88551 0 0 0 -0.016899\u003C/",[84,12868,3667],{"class":2505},[84,12870,2517],{"class":118},[84,12872,12874,12876,12878],{"class":86,"line":12873},312,[84,12875,2620],{"class":118},[84,12877,12253],{"class":2505},[84,12879,2517],{"class":118},[84,12881,12883,12885,12887],{"class":86,"line":12882},313,[84,12884,2539],{"class":118},[84,12886,12253],{"class":2505},[84,12888,2517],{"class":118},[84,12890,12892,12894,12896,12898,12900],{"class":86,"line":12891},314,[84,12893,2549],{"class":118},[84,12895,12262],{"class":2505},[84,12897,12320],{"class":118},[84,12899,12262],{"class":2505},[84,12901,2517],{"class":118},[84,12903,12905,12907,12909,12912,12914],{"class":86,"line":12904},315,[84,12906,2549],{"class":118},[84,12908,6253],{"class":2505},[84,12910,12911],{"class":118},">WhiteCabinet_3_1_2\u003C/",[84,12913,6253],{"class":2505},[84,12915,2517],{"class":118},[84,12917,12919,12921,12923,12926,12928],{"class":86,"line":12918},316,[84,12920,2549],{"class":118},[84,12922,3667],{"class":2505},[84,12924,12925],{"class":118},">-0.445223 0.182127 0 0 0 -1.59625\u003C/",[84,12927,3667],{"class":2505},[84,12929,2517],{"class":118},[84,12931,12933,12935,12937],{"class":86,"line":12932},317,[84,12934,2620],{"class":118},[84,12936,12253],{"class":2505},[84,12938,2517],{"class":118},[84,12940,12942,12944,12946],{"class":86,"line":12941},318,[84,12943,2539],{"class":118},[84,12945,12253],{"class":2505},[84,12947,2517],{"class":118},[84,12949,12951,12953,12955,12957,12959],{"class":86,"line":12950},319,[84,12952,2549],{"class":118},[84,12954,12262],{"class":2505},[84,12956,12320],{"class":118},[84,12958,12262],{"class":2505},[84,12960,2517],{"class":118},[84,12962,12964,12966,12968,12971,12973],{"class":86,"line":12963},320,[84,12965,2549],{"class":118},[84,12967,6253],{"class":2505},[84,12969,12970],{"class":118},">WhiteCabinet_3_1_2_1\u003C/",[84,12972,6253],{"class":2505},[84,12974,2517],{"class":118},[84,12976,12978,12980,12982,12985,12987],{"class":86,"line":12977},321,[84,12979,2549],{"class":118},[84,12981,3667],{"class":2505},[84,12983,12984],{"class":118},">-0.422109 1.02215 0 0 0 -1.59625\u003C/",[84,12986,3667],{"class":2505},[84,12988,2517],{"class":118},[84,12990,12992,12994,12996],{"class":86,"line":12991},322,[84,12993,2620],{"class":118},[84,12995,12253],{"class":2505},[84,12997,2517],{"class":118},[84,12999,13001],{"class":86,"line":13000},323,[84,13002,13003],{"class":97},"    \u003C!-- Jazzy 迁移说明结束：如果以后重命名本机模型目录，需要同步修改这些 file:// 路径。 -->\n",[84,13005,13007,13009,13011,13013,13015,13017,13019,13021,13023],{"class":86,"line":13006},324,[84,13008,2539],{"class":118},[84,13010,5973],{"class":2505},[84,13012,2509],{"class":104},[84,13014,1805],{"class":118},[84,13016,5980],{"class":108},[84,13018,3079],{"class":104},[84,13020,1805],{"class":118},[84,13022,5987],{"class":108},[84,13024,2517],{"class":118},[84,13026,13028,13030,13032,13034,13036],{"class":86,"line":13027},325,[84,13029,2549],{"class":118},[84,13031,3667],{"class":2505},[84,13033,5999],{"class":118},[84,13035,3667],{"class":2505},[84,13037,2517],{"class":118},[84,13039,13041,13043,13045,13047,13049],{"class":86,"line":13040},326,[84,13042,2549],{"class":118},[84,13044,6011],{"class":2505},[84,13046,3318],{"class":118},[84,13048,6011],{"class":2505},[84,13050,2517],{"class":118},[84,13052,13054,13056,13058,13060,13062],{"class":86,"line":13053},327,[84,13055,2549],{"class":118},[84,13057,6025],{"class":2505},[84,13059,3110],{"class":118},[84,13061,6025],{"class":2505},[84,13063,2517],{"class":118},[84,13065,13067,13069,13071,13073,13075],{"class":86,"line":13066},328,[84,13068,2549],{"class":118},[84,13070,6039],{"class":2505},[84,13072,6042],{"class":118},[84,13074,6039],{"class":2505},[84,13076,2517],{"class":118},[84,13078,13080,13082,13084,13086,13088],{"class":86,"line":13079},329,[84,13081,2549],{"class":118},[84,13083,3625],{"class":2505},[84,13085,3614],{"class":118},[84,13087,3625],{"class":2505},[84,13089,2517],{"class":118},[84,13091,13093,13095,13097,13099,13101],{"class":86,"line":13092},330,[84,13094,2549],{"class":118},[84,13096,3638],{"class":2505},[84,13098,6069],{"class":118},[84,13100,3638],{"class":2505},[84,13102,2517],{"class":118},[84,13104,13106,13108,13110],{"class":86,"line":13105},331,[84,13107,2549],{"class":118},[84,13109,6081],{"class":2505},[84,13111,2517],{"class":118},[84,13113,13115,13117,13119,13121,13123],{"class":86,"line":13114},332,[84,13116,2723],{"class":118},[84,13118,6091],{"class":2505},[84,13120,3124],{"class":118},[84,13122,6091],{"class":2505},[84,13124,2517],{"class":118},[84,13126,13128,13130,13132,13134,13136],{"class":86,"line":13127},333,[84,13129,2723],{"class":118},[84,13131,6105],{"class":2505},[84,13133,6108],{"class":118},[84,13135,6105],{"class":2505},[84,13137,2517],{"class":118},[84,13139,13141,13143,13145,13147,13149],{"class":86,"line":13140},334,[84,13142,2723],{"class":118},[84,13144,6120],{"class":2505},[84,13146,6123],{"class":118},[84,13148,6120],{"class":2505},[84,13150,2517],{"class":118},[84,13152,13154,13156,13158,13160,13162],{"class":86,"line":13153},335,[84,13155,2723],{"class":118},[84,13157,6135],{"class":2505},[84,13159,3096],{"class":118},[84,13161,6135],{"class":2505},[84,13163,2517],{"class":118},[84,13165,13167,13169,13171],{"class":86,"line":13166},336,[84,13168,2783],{"class":118},[84,13170,6081],{"class":2505},[84,13172,2517],{"class":118},[84,13174,13176,13178,13180],{"class":86,"line":13175},337,[84,13177,2549],{"class":118},[84,13179,6158],{"class":2505},[84,13181,2517],{"class":118},[84,13183,13185,13187,13189,13191,13193],{"class":86,"line":13184},338,[84,13186,2723],{"class":118},[84,13188,6168],{"class":2505},[84,13190,3737],{"class":118},[84,13192,6168],{"class":2505},[84,13194,2517],{"class":118},[84,13196,13198,13200,13202,13204,13206],{"class":86,"line":13197},339,[84,13199,2723],{"class":118},[84,13201,6182],{"class":2505},[84,13203,3737],{"class":118},[84,13205,6182],{"class":2505},[84,13207,2517],{"class":118},[84,13209,13211,13213,13215,13217,13219],{"class":86,"line":13210},340,[84,13212,2723],{"class":118},[84,13214,6196],{"class":2505},[84,13216,3737],{"class":118},[84,13218,6196],{"class":2505},[84,13220,2517],{"class":118},[84,13222,13224,13226,13228],{"class":86,"line":13223},341,[84,13225,2783],{"class":118},[84,13227,6158],{"class":2505},[84,13229,2517],{"class":118},[84,13231,13233,13235,13237],{"class":86,"line":13232},342,[84,13234,2620],{"class":118},[84,13236,5973],{"class":2505},[84,13238,2517],{"class":118},[84,13240,13242,13244,13246],{"class":86,"line":13241},343,[84,13243,2629],{"class":118},[84,13245,3053],{"class":2505},[84,13247,2517],{"class":118},[84,13249,13251,13253,13255],{"class":86,"line":13250},344,[84,13252,2638],{"class":118},[84,13254,2846],{"class":2505},[84,13256,2517],{"class":118},[15,13258,13259],{},[19,13260,2283],{},[15,13262,2286],{},[74,13264,13265],{"className":76,"code":2289,"language":78,"meta":79,"style":79},[81,13266,13267],{"__ignoreMap":79},[84,13268,13269,13271,13273,13275],{"class":86,"line":87},[84,13270,2296],{"class":104},[84,13272,2299],{"class":108},[84,13274,2302],{"class":548},[84,13276,1540],{"class":108},[15,13278,13279],{},[19,13280,2314],{},[15,13282,2317],{},[74,13284,13285],{"className":76,"code":9434,"language":78,"meta":79,"style":79},[81,13286,13287,13293],{"__ignoreMap":79},[84,13288,13289,13291],{"class":86,"line":87},[84,13290,2327],{"class":548},[84,13292,2330],{"class":108},[84,13294,13295,13297,13299,13301],{"class":86,"line":94},[84,13296,235],{"class":104},[84,13298,238],{"class":108},[84,13300,2339],{"class":108},[84,13302,9453],{"class":108},[15,13304,9456],{},[15,13306,13307],{},[172,13308],{"alt":79,"src":13309},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1732.webp",[32,13311,13313],{"id":13312},"gazebo添加机器人","Gazebo添加机器人",[15,13315,13316],{},"Gazebo中可以直接创建机器人模型，或者也可以加载ROS2中URDF格式的机器人模型，此处我们使用后者（也可以选择用自己的urdf小车，但是注意修改launch的路径）。",[15,13318,13319,13320,13323],{},"咱们可以用之前创建的",[81,13321,13322],{},"cpp06_urdf","里的模型。",[15,13325,13326],{},[19,13327,13328],{},"准备机器人模型功能包",[15,13330,13331,13332],{},"在工作空间中输入以下命令从而去创建功能包",[81,13333,13334],{},"mycar_description",[74,13336,13338],{"className":76,"code":13337,"language":78,"meta":79,"style":79},"cd ./src\nros2 pkg create mycar_description --build-type ament_cmake\ncd ..\n",[81,13339,13340,13348,13365],{"__ignoreMap":79},[84,13341,13342,13345],{"class":86,"line":87},[84,13343,13344],{"class":548},"cd",[84,13346,13347],{"class":108}," ./src\n",[84,13349,13350,13352,13354,13356,13359,13362],{"class":86,"line":94},[84,13351,235],{"class":104},[84,13353,1534],{"class":108},[84,13355,1537],{"class":108},[84,13357,13358],{"class":108}," mycar_description",[84,13360,13361],{"class":548}," --build-type",[84,13363,13364],{"class":108}," ament_cmake\n",[84,13366,13367,13369],{"class":86,"line":101},[84,13368,13344],{"class":548},[84,13370,13371],{"class":108}," ..\n",[15,13373,13374,13375],{},"在功能包下创建以下文件夹",[81,13376,13377],{},"launch，urdf，rviz，meshes",[15,13379,13380],{},[19,13381,13382],{},"修改以下配置文件：",[15,13384,13385,13388],{},[19,13386,13387],{},"1. package.xml：","\n在 package.xml 中需要手动添加一些执行时依赖，核心内容如下：",[74,13390,13392],{"className":2493,"code":13391,"language":2495,"meta":79,"style":79},"\u003Cexec_depend>rviz2\u003C/exec_depend>\n\u003Cexec_depend>xacro\u003C/exec_depend>\n\u003Cexec_depend>robot_state_publisher\u003C/exec_depend>\n\u003Cexec_depend>joint_state_publisher\u003C/exec_depend>\n\u003Cexec_depend>ros2launch\u003C/exec_depend>\n",[81,13393,13394,13408,13421,13434,13447],{"__ignoreMap":79},[84,13395,13396,13398,13401,13404,13406],{"class":86,"line":87},[84,13397,2502],{"class":118},[84,13399,13400],{"class":2505},"exec_depend",[84,13402,13403],{"class":118},">rviz2\u003C/",[84,13405,13400],{"class":2505},[84,13407,2517],{"class":118},[84,13409,13410,13412,13414,13417,13419],{"class":86,"line":94},[84,13411,2502],{"class":118},[84,13413,13400],{"class":2505},[84,13415,13416],{"class":118},">xacro\u003C/",[84,13418,13400],{"class":2505},[84,13420,2517],{"class":118},[84,13422,13423,13425,13427,13430,13432],{"class":86,"line":101},[84,13424,2502],{"class":118},[84,13426,13400],{"class":2505},[84,13428,13429],{"class":118},">robot_state_publisher\u003C/",[84,13431,13400],{"class":2505},[84,13433,2517],{"class":118},[84,13435,13436,13438,13440,13443,13445],{"class":86,"line":125},[84,13437,2502],{"class":118},[84,13439,13400],{"class":2505},[84,13441,13442],{"class":118},">joint_state_publisher\u003C/",[84,13444,13400],{"class":2505},[84,13446,2517],{"class":118},[84,13448,13449,13451,13453,13456,13458],{"class":86,"line":130},[84,13450,2502],{"class":118},[84,13452,13400],{"class":2505},[84,13454,13455],{"class":118},">ros2launch\u003C/",[84,13457,13400],{"class":2505},[84,13459,2517],{"class":118},[15,13461,13462,13465],{},[19,13463,13464],{},"2.CMakeLists.txt","\n在功能包下，新建了若干目录，需要为这些目录配置安装路径，核心内容如下：",[74,13467,13469],{"className":1556,"code":13468,"language":1558,"meta":79,"style":79},"install(\n  DIRECTORY launch urdf rviz meshes\n  DESTINATION share/${PROJECT_NAME}  \n)\n",[81,13470,13471,13478,13483,13493],{"__ignoreMap":79},[84,13472,13473,13475],{"class":86,"line":87},[84,13474,1565],{"class":734},[84,13476,13477],{"class":118},"(\n",[84,13479,13480],{"class":86,"line":94},[84,13481,13482],{"class":118},"  DIRECTORY launch urdf rviz meshes\n",[84,13484,13485,13488,13490],{"class":86,"line":101},[84,13486,13487],{"class":118},"  DESTINATION share/",[84,13489,1571],{"class":734},[84,13491,13492],{"class":118},"  \n",[84,13494,13495],{"class":86,"line":125},[84,13496,1574],{"class":118},[15,13498,13499,13500,13502,13503,13506,13507,13502,13509,13511],{},"把之前",[81,13501,13322],{},"功能包中的",[81,13504,13505],{},"urdf","文件夹里的内容覆盖到",[81,13508,13334],{},[81,13510,13505],{},"文件夹中。",[15,13513,13514,13515,13518],{},"ign_models中新建mycar_description目录，并将功能包mycar_description下的mesh目录复制进ign_models中的mycar_description目录。（此时meshes里是空的，很正常，你后续用到其他模型的时候可能才会有",[81,13516,13517],{},".STL","文件）",[15,13520,13521],{},[19,13522,13523],{},"添加Gazebo需要的sdf特有的标签",[15,13525,13526,13527,13530],{},"先修改",[81,13528,13529],{},"car_base.urdf.xacro","，添加上各种惯性，碰撞，摩擦等等：",[74,13532,13534],{"className":2493,"code":13533,"language":2495,"meta":79,"style":79},"\u003Crobot xmlns:xacro=\"http://wiki.ros.org/xacro\">\n    \u003C!-- PI 值 -->\n    \u003Cxacro:property name=\"PI\" value=\"3.1416\"/>\n    \u003C!-- 定义车辆参数 -->\n    \u003C!-- 车体长宽高 -->\n    \u003Cxacro:property name=\"base_link_x\" value=\"0.2\"/>\n    \u003Cxacro:property name=\"base_link_y\" value=\"0.12\"/>\n    \u003Cxacro:property name=\"base_link_z\" value=\"0.07\"/>\n    \u003C!-- 离地间距 -->\n    \u003Cxacro:property name=\"distance\" value=\"0.015\"/>\n    \u003C!-- 车轮半径 宽度 -->\n    \u003Cxacro:property name=\"wheel_radius\" value=\"0.025\"/>\n    \u003Cxacro:property name=\"wheel_length\" value=\"0.02\"/>\n\n    \u003C!-- Gazebo 新增开始：Gazebo 物理参数，用于给 link 生成 inertial -->\n    \u003Cxacro:property name=\"base_footprint_radius\" value=\"0.001\"/>\n    \u003Cxacro:property name=\"base_footprint_mass\" value=\"0.001\"/>\n    \u003Cxacro:property name=\"base_link_mass\" value=\"1.0\"/>\n    \u003Cxacro:property name=\"wheel_mass\" value=\"0.05\"/>\n    \u003Cxacro:property name=\"wheel_mu1\" value=\"1.0\"/>\n    \u003Cxacro:property name=\"wheel_mu2\" value=\"0.05\"/>\n    \u003C!-- Gazebo 新增结束：Gazebo 物理参数 -->\n\n    \u003C!-- Gazebo 新增开始：球体惯性宏，给 base_footprint 使用 -->\n    \u003Cxacro:macro name=\"sphere_inertial\" params=\"mass radius\">\n        \u003Cinertial>\n            \u003Cmass value=\"${mass}\"/>\n            \u003Cinertia\n                ixx=\"${2.0 / 5.0 * mass * radius * radius}\" ixy=\"0.0\" ixz=\"0.0\"\n                iyy=\"${2.0 / 5.0 * mass * radius * radius}\" iyz=\"0.0\"\n                izz=\"${2.0 / 5.0 * mass * radius * radius}\"/>\n        \u003C/inertial>\n    \u003C/xacro:macro>\n    \u003C!-- Gazebo 新增结束：球体惯性宏 -->\n\n    \u003C!-- Gazebo 新增开始：长方体惯性宏，给 base_link 使用 -->\n    \u003Cxacro:macro name=\"box_inertial\" params=\"mass x y z\">\n        \u003Cinertial>\n            \u003Cmass value=\"${mass}\"/>\n            \u003Cinertia\n                ixx=\"${mass / 12.0 * (y * y + z * z)}\" ixy=\"0.0\" ixz=\"0.0\"\n                iyy=\"${mass / 12.0 * (x * x + z * z)}\" iyz=\"0.0\"\n                izz=\"${mass / 12.0 * (x * x + y * y)}\"/>\n        \u003C/inertial>\n    \u003C/xacro:macro>\n    \u003C!-- Gazebo 新增结束：长方体惯性宏 -->\n\n    \u003C!-- Gazebo 新增开始：圆柱车轮惯性宏，给四个轮子使用 -->\n    \u003Cxacro:macro name=\"wheel_inertial\" params=\"mass radius length\">\n        \u003Cinertial>\n            \u003Cmass value=\"${mass}\"/>\n            \u003Cinertia\n                ixx=\"${mass / 12.0 * (3.0 * radius * radius + length * length)}\" ixy=\"0.0\" ixz=\"0.0\"\n                iyy=\"${mass / 2.0 * radius * radius}\" iyz=\"0.0\"\n                izz=\"${mass / 12.0 * (3.0 * radius * radius + length * length)}\"/>\n        \u003C/inertial>\n    \u003C/xacro:macro>\n    \u003C!-- Gazebo 新增结束：圆柱车轮惯性宏 -->\n\n    \u003C!-- 定义颜色 -->\n    \u003Cmaterial name=\"yellow\">\n        \u003Ccolor rgba=\"0.7 0.7 0 0.8\" />\n    \u003C/material>\n    \u003Cmaterial name=\"red\">\n        \u003Ccolor rgba=\"0.8 0.1 0.1 0.8\" />\n    \u003C/material>\n    \u003Cmaterial name=\"gray\">\n        \u003Ccolor rgba=\"0.2 0.2 0.2 0.95\" />\n      \u003C/material>\n    \u003C!-- 定义 base_footprint -->\n    \u003Clink name=\"base_footprint\">\n        \u003Cvisual>\n            \u003Cgeometry>\n                \u003C!-- Codex 修改：把原来的固定 0.001 改成上面新增的参数 -->\n                \u003Csphere radius=\"${base_footprint_radius}\"/>\n            \u003C/geometry>\n        \u003C/visual>\n        \u003C!-- Gazebo 新增：base_footprint 的惯性，避免 Gazebo 转 SDF 时丢弃根 link -->\n        \u003Cxacro:sphere_inertial mass=\"${base_footprint_mass}\" radius=\"${base_footprint_radius}\"/>\n    \u003C/link>\n\n    \u003C!-- 定义 base_link -->\n    \u003Clink name=\"base_link\">\n        \u003Cvisual>\n            \u003C!-- 形状 -->\n            \u003Cgeometry>\n                \u003Cbox size=\"${base_link_x} ${base_link_y} ${base_link_z}\" />\n            \u003C/geometry>\n            \u003Corigin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n            \u003Cmaterial name=\"yellow\"/>\n        \u003C/visual>\n        \u003C!-- Gazebo 新增开始：base_link 碰撞体，Gazebo 物理仿真需要 collision -->\n        \u003Ccollision>\n            \u003Cgeometry>\n                \u003Cbox size=\"${base_link_x} ${base_link_y} ${base_link_z}\" />\n            \u003C/geometry>\n            \u003Corigin xyz=\"0 0 0\" rpy=\"0 0 0\" />\n        \u003C/collision>\n        \u003C!-- Gazebo 新增结束：base_link 碰撞体 -->\n        \u003C!-- Gazebo 新增：base_link 惯性，Gazebo 物理仿真需要 inertial -->\n        \u003Cxacro:box_inertial mass=\"${base_link_mass}\" x=\"${base_link_x}\" y=\"${base_link_y}\" z=\"${base_link_z}\"/>\n    \u003C/link>\n    \u003Cjoint name=\"baselink2basefootprint\" type=\"fixed\">\n        \u003Cparent link=\"base_footprint\"/>\n        \u003Cchild link=\"base_link\"/>\n        \u003Corigin xyz=\"0.0 0.0 ${distance + base_link_z / 2}\"/>\n    \u003C/joint>\n    \u003C!-- 车轮宏定义 -->\n    \u003Cxacro:macro name=\"wheel_func\" params=\"wheel_name is_front is_left\" >\n        \u003Clink name=\"${wheel_name}_wheel\">\n            \u003Cvisual>\n                \u003Cgeometry>\n                    \u003Ccylinder radius=\"${wheel_radius}\" length=\"${wheel_length}\" />\n                \u003C/geometry>\n                \u003Corigin xyz=\"0 0 0\" rpy=\"${PI / 2} 0 0\" />\n                \u003Cmaterial name=\"gray\"/>\n            \u003C/visual>\n            \u003C!-- Gazebo 新增开始：车轮碰撞体，四个轮子都会通过这个宏生成 -->\n            \u003Ccollision>\n                \u003Cgeometry>\n                    \u003Ccylinder radius=\"${wheel_radius}\" length=\"${wheel_length}\" />\n                \u003C/geometry>\n                \u003Corigin xyz=\"0 0 0\" rpy=\"${PI / 2} 0 0\" />\n            \u003C/collision>\n            \u003C!-- Gazebo 新增结束：车轮碰撞体 -->\n            \u003C!-- Gazebo 新增：车轮惯性，四个轮子都会通过这个宏生成 -->\n            \u003Cxacro:wheel_inertial mass=\"${wheel_mass}\" radius=\"${wheel_radius}\" length=\"${wheel_length}\"/>\n        \u003C/link>\n        \u003Cjoint name=\"${wheel_name}2baselink\" type=\"continuous\">\n            \u003Cparent link=\"base_link\"  />\n            \u003Cchild link=\"${wheel_name}_wheel\" />\n            \u003Corigin xyz=\"${(base_link_x / 2 - wheel_radius) * is_front} ${base_link_y / 2 * is_left} ${(base_link_z / 2 + distance - wheel_radius) * -1}\" rpy=\"0 0 0\" />\n            \u003Caxis xyz=\"0 1 0\" />\n        \u003C/joint>\n        \u003C!-- Gazebo 新增：四轮差速原地转弯需要轮胎横向滑移；降低 mu2 可以减少 Gazebo 中的卡顿和抖动 -->\n        \u003Cgazebo reference=\"${wheel_name}_wheel\">\n            \u003Cmu1>${wheel_mu1}\u003C/mu1>\n            \u003Cmu2>${wheel_mu2}\u003C/mu2>\n            \u003Cfdir1>1 0 0\u003C/fdir1>\n        \u003C/gazebo>\n    \u003C/xacro:macro>\n    \u003C!-- 车轮宏调用 -->\n    \u003Cxacro:wheel_func wheel_name=\"left_front\" is_front=\"1\" is_left=\"1\" />\n    \u003Cxacro:wheel_func wheel_name=\"left_back\" is_front=\"-1\" is_left=\"1\" />\n    \u003Cxacro:wheel_func wheel_name=\"right_front\" is_front=\"1\" is_left=\"-1\" />\n    \u003Cxacro:wheel_func wheel_name=\"right_back\" is_front=\"-1\" is_left=\"-1\" />\n\u003C/robot>\n",[81,13535,13536,13551,13556,13579,13584,13589,13611,13633,13655,13660,13682,13687,13709,13731,13735,13740,13762,13783,13804,13826,13847,13868,13873,13877,13882,13904,13912,13926,13933,13956,13971,13982,13990,13998,14003,14007,14012,14034,14042,14056,14062,14083,14098,14109,14117,14125,14130,14134,14139,14161,14169,14183,14189,14210,14225,14235,14243,14251,14256,14260,14265,14280,14297,14305,14320,14335,14343,14358,14373,14381,14386,14401,14409,14417,14422,14440,14448,14456,14461,14483,14491,14495,14500,14514,14522,14527,14535,14551,14559,14583,14597,14605,14610,14618,14626,14640,14648,14668,14676,14681,14686,14726,14734,14757,14773,14788,14803,14811,14816,14839,14854,14862,14870,14895,14904,14925,14939,14947,14952,14960,14968,14988,14996,15016,15024,15029,15034,15062,15070,15092,15107,15121,15142,15158,15166,15171,15187,15201,15215,15229,15237,15245,15250,15282,15310,15337,15364],{"__ignoreMap":79},[84,13537,13538,13540,13542,13544,13546,13549],{"class":86,"line":87},[84,13539,2502],{"class":118},[84,13541,2506],{"class":2505},[84,13543,2660],{"class":104},[84,13545,1805],{"class":118},[84,13547,13548],{"class":108},"\"http://wiki.ros.org/xacro\"",[84,13550,2517],{"class":118},[84,13552,13553],{"class":86,"line":94},[84,13554,13555],{"class":97},"    \u003C!-- PI 值 -->\n",[84,13557,13558,13560,13563,13565,13567,13570,13572,13574,13577],{"class":86,"line":101},[84,13559,2539],{"class":118},[84,13561,13562],{"class":2505},"xacro:property",[84,13564,2509],{"class":104},[84,13566,1805],{"class":118},[84,13568,13569],{"class":108},"\"PI\"",[84,13571,2555],{"class":104},[84,13573,1805],{"class":118},[84,13575,13576],{"class":108},"\"3.1416\"",[84,13578,3161],{"class":118},[84,13580,13581],{"class":86,"line":125},[84,13582,13583],{"class":97},"    \u003C!-- 定义车辆参数 -->\n",[84,13585,13586],{"class":86,"line":130},[84,13587,13588],{"class":97},"    \u003C!-- 车体长宽高 -->\n",[84,13590,13591,13593,13595,13597,13599,13602,13604,13606,13609],{"class":86,"line":136},[84,13592,2539],{"class":118},[84,13594,13562],{"class":2505},[84,13596,2509],{"class":104},[84,13598,1805],{"class":118},[84,13600,13601],{"class":108},"\"base_link_x\"",[84,13603,2555],{"class":104},[84,13605,1805],{"class":118},[84,13607,13608],{"class":108},"\"0.2\"",[84,13610,3161],{"class":118},[84,13612,13613,13615,13617,13619,13621,13624,13626,13628,13631],{"class":86,"line":148},[84,13614,2539],{"class":118},[84,13616,13562],{"class":2505},[84,13618,2509],{"class":104},[84,13620,1805],{"class":118},[84,13622,13623],{"class":108},"\"base_link_y\"",[84,13625,2555],{"class":104},[84,13627,1805],{"class":118},[84,13629,13630],{"class":108},"\"0.12\"",[84,13632,3161],{"class":118},[84,13634,13635,13637,13639,13641,13643,13646,13648,13650,13653],{"class":86,"line":153},[84,13636,2539],{"class":118},[84,13638,13562],{"class":2505},[84,13640,2509],{"class":104},[84,13642,1805],{"class":118},[84,13644,13645],{"class":108},"\"base_link_z\"",[84,13647,2555],{"class":104},[84,13649,1805],{"class":118},[84,13651,13652],{"class":108},"\"0.07\"",[84,13654,3161],{"class":118},[84,13656,13657],{"class":86,"line":159},[84,13658,13659],{"class":97},"    \u003C!-- 离地间距 -->\n",[84,13661,13662,13664,13666,13668,13670,13673,13675,13677,13680],{"class":86,"line":406},[84,13663,2539],{"class":118},[84,13665,13562],{"class":2505},[84,13667,2509],{"class":104},[84,13669,1805],{"class":118},[84,13671,13672],{"class":108},"\"distance\"",[84,13674,2555],{"class":104},[84,13676,1805],{"class":118},[84,13678,13679],{"class":108},"\"0.015\"",[84,13681,3161],{"class":118},[84,13683,13684],{"class":86,"line":412},[84,13685,13686],{"class":97},"    \u003C!-- 车轮半径 宽度 -->\n",[84,13688,13689,13691,13693,13695,13697,13700,13702,13704,13707],{"class":86,"line":418},[84,13690,2539],{"class":118},[84,13692,13562],{"class":2505},[84,13694,2509],{"class":104},[84,13696,1805],{"class":118},[84,13698,13699],{"class":108},"\"wheel_radius\"",[84,13701,2555],{"class":104},[84,13703,1805],{"class":118},[84,13705,13706],{"class":108},"\"0.025\"",[84,13708,3161],{"class":118},[84,13710,13711,13713,13715,13717,13719,13722,13724,13726,13729],{"class":86,"line":424},[84,13712,2539],{"class":118},[84,13714,13562],{"class":2505},[84,13716,2509],{"class":104},[84,13718,1805],{"class":118},[84,13720,13721],{"class":108},"\"wheel_length\"",[84,13723,2555],{"class":104},[84,13725,1805],{"class":118},[84,13727,13728],{"class":108},"\"0.02\"",[84,13730,3161],{"class":118},[84,13732,13733],{"class":86,"line":1782},[84,13734,91],{"emptyLinePlaceholder":90},[84,13736,13737],{"class":86,"line":1794},[84,13738,13739],{"class":97},"    \u003C!-- Gazebo 新增开始：Gazebo 物理参数，用于给 link 生成 inertial -->\n",[84,13741,13742,13744,13746,13748,13750,13753,13755,13757,13760],{"class":86,"line":1799},[84,13743,2539],{"class":118},[84,13745,13562],{"class":2505},[84,13747,2509],{"class":104},[84,13749,1805],{"class":118},[84,13751,13752],{"class":108},"\"base_footprint_radius\"",[84,13754,2555],{"class":104},[84,13756,1805],{"class":118},[84,13758,13759],{"class":108},"\"0.001\"",[84,13761,3161],{"class":118},[84,13763,13764,13766,13768,13770,13772,13775,13777,13779,13781],{"class":86,"line":1816},[84,13765,2539],{"class":118},[84,13767,13562],{"class":2505},[84,13769,2509],{"class":104},[84,13771,1805],{"class":118},[84,13773,13774],{"class":108},"\"base_footprint_mass\"",[84,13776,2555],{"class":104},[84,13778,1805],{"class":118},[84,13780,13759],{"class":108},[84,13782,3161],{"class":118},[84,13784,13785,13787,13789,13791,13793,13796,13798,13800,13802],{"class":86,"line":1831},[84,13786,2539],{"class":118},[84,13788,13562],{"class":2505},[84,13790,2509],{"class":104},[84,13792,1805],{"class":118},[84,13794,13795],{"class":108},"\"base_link_mass\"",[84,13797,2555],{"class":104},[84,13799,1805],{"class":118},[84,13801,2560],{"class":108},[84,13803,3161],{"class":118},[84,13805,13806,13808,13810,13812,13814,13817,13819,13821,13824],{"class":86,"line":1853},[84,13807,2539],{"class":118},[84,13809,13562],{"class":2505},[84,13811,2509],{"class":104},[84,13813,1805],{"class":118},[84,13815,13816],{"class":108},"\"wheel_mass\"",[84,13818,2555],{"class":104},[84,13820,1805],{"class":118},[84,13822,13823],{"class":108},"\"0.05\"",[84,13825,3161],{"class":118},[84,13827,13828,13830,13832,13834,13836,13839,13841,13843,13845],{"class":86,"line":1858},[84,13829,2539],{"class":118},[84,13831,13562],{"class":2505},[84,13833,2509],{"class":104},[84,13835,1805],{"class":118},[84,13837,13838],{"class":108},"\"wheel_mu1\"",[84,13840,2555],{"class":104},[84,13842,1805],{"class":118},[84,13844,2560],{"class":108},[84,13846,3161],{"class":118},[84,13848,13849,13851,13853,13855,13857,13860,13862,13864,13866],{"class":86,"line":1869},[84,13850,2539],{"class":118},[84,13852,13562],{"class":2505},[84,13854,2509],{"class":104},[84,13856,1805],{"class":118},[84,13858,13859],{"class":108},"\"wheel_mu2\"",[84,13861,2555],{"class":104},[84,13863,1805],{"class":118},[84,13865,13823],{"class":108},[84,13867,3161],{"class":118},[84,13869,13870],{"class":86,"line":1875},[84,13871,13872],{"class":97},"    \u003C!-- Gazebo 新增结束：Gazebo 物理参数 -->\n",[84,13874,13875],{"class":86,"line":1893},[84,13876,91],{"emptyLinePlaceholder":90},[84,13878,13879],{"class":86,"line":1905},[84,13880,13881],{"class":97},"    \u003C!-- Gazebo 新增开始：球体惯性宏，给 base_footprint 使用 -->\n",[84,13883,13884,13886,13888,13890,13892,13895,13897,13899,13902],{"class":86,"line":1923},[84,13885,2539],{"class":118},[84,13887,2680],{"class":2505},[84,13889,2509],{"class":104},[84,13891,1805],{"class":118},[84,13893,13894],{"class":108},"\"sphere_inertial\"",[84,13896,2689],{"class":104},[84,13898,1805],{"class":118},[84,13900,13901],{"class":108},"\"mass radius\"",[84,13903,2517],{"class":118},[84,13905,13906,13908,13910],{"class":86,"line":1929},[84,13907,2723],{"class":118},[84,13909,2542],{"class":2505},[84,13911,2517],{"class":118},[84,13913,13914,13916,13918,13920,13922,13924],{"class":86,"line":1935},[84,13915,3403],{"class":118},[84,13917,2552],{"class":2505},[84,13919,2555],{"class":104},[84,13921,1805],{"class":118},[84,13923,2732],{"class":108},[84,13925,3161],{"class":118},[84,13927,13928,13930],{"class":86,"line":1940},[84,13929,3403],{"class":118},[84,13931,13932],{"class":2505},"inertia\n",[84,13934,13935,13938,13940,13943,13945,13947,13949,13951,13953],{"class":86,"line":1946},[84,13936,13937],{"class":104},"                ixx",[84,13939,1805],{"class":118},[84,13941,13942],{"class":108},"\"${2.0 / 5.0 * mass * radius * radius}\"",[84,13944,2580],{"class":104},[84,13946,1805],{"class":118},[84,13948,2585],{"class":108},[84,13950,2588],{"class":104},[84,13952,1805],{"class":118},[84,13954,13955],{"class":108},"\"0.0\"\n",[84,13957,13958,13961,13963,13965,13967,13969],{"class":86,"line":1957},[84,13959,13960],{"class":104},"                iyy",[84,13962,1805],{"class":118},[84,13964,13942],{"class":108},[84,13966,2602],{"class":104},[84,13968,1805],{"class":118},[84,13970,13955],{"class":108},[84,13972,13973,13976,13978,13980],{"class":86,"line":1971},[84,13974,13975],{"class":104},"                izz",[84,13977,1805],{"class":118},[84,13979,13942],{"class":108},[84,13981,3161],{"class":118},[84,13983,13984,13986,13988],{"class":86,"line":1983},[84,13985,2959],{"class":118},[84,13987,2542],{"class":2505},[84,13989,2517],{"class":118},[84,13991,13992,13994,13996],{"class":86,"line":2010},[84,13993,2620],{"class":118},[84,13995,2680],{"class":2505},[84,13997,2517],{"class":118},[84,13999,14000],{"class":86,"line":2026},[84,14001,14002],{"class":97},"    \u003C!-- Gazebo 新增结束：球体惯性宏 -->\n",[84,14004,14005],{"class":86,"line":2031},[84,14006,91],{"emptyLinePlaceholder":90},[84,14008,14009],{"class":86,"line":2036},[84,14010,14011],{"class":97},"    \u003C!-- Gazebo 新增开始：长方体惯性宏，给 base_link 使用 -->\n",[84,14013,14014,14016,14018,14020,14022,14025,14027,14029,14032],{"class":86,"line":2042},[84,14015,2539],{"class":118},[84,14017,2680],{"class":2505},[84,14019,2509],{"class":104},[84,14021,1805],{"class":118},[84,14023,14024],{"class":108},"\"box_inertial\"",[84,14026,2689],{"class":104},[84,14028,1805],{"class":118},[84,14030,14031],{"class":108},"\"mass x y z\"",[84,14033,2517],{"class":118},[84,14035,14036,14038,14040],{"class":86,"line":2052},[84,14037,2723],{"class":118},[84,14039,2542],{"class":2505},[84,14041,2517],{"class":118},[84,14043,14044,14046,14048,14050,14052,14054],{"class":86,"line":2065},[84,14045,3403],{"class":118},[84,14047,2552],{"class":2505},[84,14049,2555],{"class":104},[84,14051,1805],{"class":118},[84,14053,2732],{"class":108},[84,14055,3161],{"class":118},[84,14057,14058,14060],{"class":86,"line":2078},[84,14059,3403],{"class":118},[84,14061,13932],{"class":2505},[84,14063,14064,14066,14068,14071,14073,14075,14077,14079,14081],{"class":86,"line":2093},[84,14065,13937],{"class":104},[84,14067,1805],{"class":118},[84,14069,14070],{"class":108},"\"${mass / 12.0 * (y * y + z * z)}\"",[84,14072,2580],{"class":104},[84,14074,1805],{"class":118},[84,14076,2585],{"class":108},[84,14078,2588],{"class":104},[84,14080,1805],{"class":118},[84,14082,13955],{"class":108},[84,14084,14085,14087,14089,14092,14094,14096],{"class":86,"line":2101},[84,14086,13960],{"class":104},[84,14088,1805],{"class":118},[84,14090,14091],{"class":108},"\"${mass / 12.0 * (x * x + z * z)}\"",[84,14093,2602],{"class":104},[84,14095,1805],{"class":118},[84,14097,13955],{"class":108},[84,14099,14100,14102,14104,14107],{"class":86,"line":2109},[84,14101,13975],{"class":104},[84,14103,1805],{"class":118},[84,14105,14106],{"class":108},"\"${mass / 12.0 * (x * x + y * y)}\"",[84,14108,3161],{"class":118},[84,14110,14111,14113,14115],{"class":86,"line":2115},[84,14112,2959],{"class":118},[84,14114,2542],{"class":2505},[84,14116,2517],{"class":118},[84,14118,14119,14121,14123],{"class":86,"line":2137},[84,14120,2620],{"class":118},[84,14122,2680],{"class":2505},[84,14124,2517],{"class":118},[84,14126,14127],{"class":86,"line":2148},[84,14128,14129],{"class":97},"    \u003C!-- Gazebo 新增结束：长方体惯性宏 -->\n",[84,14131,14132],{"class":86,"line":2165},[84,14133,91],{"emptyLinePlaceholder":90},[84,14135,14136],{"class":86,"line":2180},[84,14137,14138],{"class":97},"    \u003C!-- Gazebo 新增开始：圆柱车轮惯性宏，给四个轮子使用 -->\n",[84,14140,14141,14143,14145,14147,14149,14152,14154,14156,14159],{"class":86,"line":2186},[84,14142,2539],{"class":118},[84,14144,2680],{"class":2505},[84,14146,2509],{"class":104},[84,14148,1805],{"class":118},[84,14150,14151],{"class":108},"\"wheel_inertial\"",[84,14153,2689],{"class":104},[84,14155,1805],{"class":118},[84,14157,14158],{"class":108},"\"mass radius length\"",[84,14160,2517],{"class":118},[84,14162,14163,14165,14167],{"class":86,"line":2197},[84,14164,2723],{"class":118},[84,14166,2542],{"class":2505},[84,14168,2517],{"class":118},[84,14170,14171,14173,14175,14177,14179,14181],{"class":86,"line":2202},[84,14172,3403],{"class":118},[84,14174,2552],{"class":2505},[84,14176,2555],{"class":104},[84,14178,1805],{"class":118},[84,14180,2732],{"class":108},[84,14182,3161],{"class":118},[84,14184,14185,14187],{"class":86,"line":2207},[84,14186,3403],{"class":118},[84,14188,13932],{"class":2505},[84,14190,14191,14193,14195,14198,14200,14202,14204,14206,14208],{"class":86,"line":2216},[84,14192,13937],{"class":104},[84,14194,1805],{"class":118},[84,14196,14197],{"class":108},"\"${mass / 12.0 * (3.0 * radius * radius + length * length)}\"",[84,14199,2580],{"class":104},[84,14201,1805],{"class":118},[84,14203,2585],{"class":108},[84,14205,2588],{"class":104},[84,14207,1805],{"class":118},[84,14209,13955],{"class":108},[84,14211,14212,14214,14216,14219,14221,14223],{"class":86,"line":2222},[84,14213,13960],{"class":104},[84,14215,1805],{"class":118},[84,14217,14218],{"class":108},"\"${mass / 2.0 * radius * radius}\"",[84,14220,2602],{"class":104},[84,14222,1805],{"class":118},[84,14224,13955],{"class":108},[84,14226,14227,14229,14231,14233],{"class":86,"line":2242},[84,14228,13975],{"class":104},[84,14230,1805],{"class":118},[84,14232,14197],{"class":108},[84,14234,3161],{"class":118},[84,14236,14237,14239,14241],{"class":86,"line":2255},[84,14238,2959],{"class":118},[84,14240,2542],{"class":2505},[84,14242,2517],{"class":118},[84,14244,14245,14247,14249],{"class":86,"line":2261},[84,14246,2620],{"class":118},[84,14248,2680],{"class":2505},[84,14250,2517],{"class":118},[84,14252,14253],{"class":86,"line":2267},[84,14254,14255],{"class":97},"    \u003C!-- Gazebo 新增结束：圆柱车轮惯性宏 -->\n",[84,14257,14258],{"class":86,"line":3757},[84,14259,91],{"emptyLinePlaceholder":90},[84,14261,14262],{"class":86,"line":3770},[84,14263,14264],{"class":97},"    \u003C!-- 定义颜色 -->\n",[84,14266,14267,14269,14271,14273,14275,14278],{"class":86,"line":3784},[84,14268,2539],{"class":118},[84,14270,3603],{"class":2505},[84,14272,2509],{"class":104},[84,14274,1805],{"class":118},[84,14276,14277],{"class":108},"\"yellow\"",[84,14279,2517],{"class":118},[84,14281,14282,14284,14287,14290,14292,14295],{"class":86,"line":3797},[84,14283,2723],{"class":118},[84,14285,14286],{"class":2505},"color",[84,14288,14289],{"class":104}," rgba",[84,14291,1805],{"class":118},[84,14293,14294],{"class":108},"\"0.7 0.7 0 0.8\"",[84,14296,2563],{"class":118},[84,14298,14299,14301,14303],{"class":86,"line":3806},[84,14300,2620],{"class":118},[84,14302,3603],{"class":2505},[84,14304,2517],{"class":118},[84,14306,14307,14309,14311,14313,14315,14318],{"class":86,"line":3815},[84,14308,2539],{"class":118},[84,14310,3603],{"class":2505},[84,14312,2509],{"class":104},[84,14314,1805],{"class":118},[84,14316,14317],{"class":108},"\"red\"",[84,14319,2517],{"class":118},[84,14321,14322,14324,14326,14328,14330,14333],{"class":86,"line":3830},[84,14323,2723],{"class":118},[84,14325,14286],{"class":2505},[84,14327,14289],{"class":104},[84,14329,1805],{"class":118},[84,14331,14332],{"class":108},"\"0.8 0.1 0.1 0.8\"",[84,14334,2563],{"class":118},[84,14336,14337,14339,14341],{"class":86,"line":3839},[84,14338,2620],{"class":118},[84,14340,3603],{"class":2505},[84,14342,2517],{"class":118},[84,14344,14345,14347,14349,14351,14353,14356],{"class":86,"line":3852},[84,14346,2539],{"class":118},[84,14348,3603],{"class":2505},[84,14350,2509],{"class":104},[84,14352,1805],{"class":118},[84,14354,14355],{"class":108},"\"gray\"",[84,14357,2517],{"class":118},[84,14359,14360,14362,14364,14366,14368,14371],{"class":86,"line":3866},[84,14361,2723],{"class":118},[84,14363,14286],{"class":2505},[84,14365,14289],{"class":104},[84,14367,1805],{"class":118},[84,14369,14370],{"class":108},"\"0.2 0.2 0.2 0.95\"",[84,14372,2563],{"class":118},[84,14374,14375,14377,14379],{"class":86,"line":3875},[84,14376,2783],{"class":118},[84,14378,3603],{"class":2505},[84,14380,2517],{"class":118},[84,14382,14383],{"class":86,"line":3891},[84,14384,14385],{"class":97},"    \u003C!-- 定义 base_footprint -->\n",[84,14387,14388,14390,14392,14394,14396,14399],{"class":86,"line":3905},[84,14389,2539],{"class":118},[84,14391,2525],{"class":2505},[84,14393,2509],{"class":104},[84,14395,1805],{"class":118},[84,14397,14398],{"class":108},"\"base_footprint\"",[84,14400,2517],{"class":118},[84,14402,14403,14405,14407],{"class":86,"line":3921},[84,14404,2723],{"class":118},[84,14406,3531],{"class":2505},[84,14408,2517],{"class":118},[84,14410,14411,14413,14415],{"class":86,"line":3930},[84,14412,3403],{"class":118},[84,14414,3396],{"class":2505},[84,14416,2517],{"class":118},[84,14418,14419],{"class":86,"line":3939},[84,14420,14421],{"class":97},"                \u003C!-- Codex 修改：把原来的固定 0.001 改成上面新增的参数 -->\n",[84,14423,14424,14427,14430,14433,14435,14438],{"class":86,"line":3953},[84,14425,14426],{"class":118},"                \u003C",[84,14428,14429],{"class":2505},"sphere",[84,14431,14432],{"class":104}," radius",[84,14434,1805],{"class":118},[84,14436,14437],{"class":108},"\"${base_footprint_radius}\"",[84,14439,3161],{"class":118},[84,14441,14442,14444,14446],{"class":86,"line":3966},[84,14443,3442],{"class":118},[84,14445,3396],{"class":2505},[84,14447,2517],{"class":118},[84,14449,14450,14452,14454],{"class":86,"line":3979},[84,14451,2959],{"class":118},[84,14453,3531],{"class":2505},[84,14455,2517],{"class":118},[84,14457,14458],{"class":86,"line":3992},[84,14459,14460],{"class":97},"        \u003C!-- Gazebo 新增：base_footprint 的惯性，避免 Gazebo 转 SDF 时丢弃根 link -->\n",[84,14462,14463,14465,14468,14470,14472,14475,14477,14479,14481],{"class":86,"line":4005},[84,14464,2723],{"class":118},[84,14466,14467],{"class":2505},"xacro:sphere_inertial",[84,14469,2817],{"class":104},[84,14471,1805],{"class":118},[84,14473,14474],{"class":108},"\"${base_footprint_mass}\"",[84,14476,14432],{"class":104},[84,14478,1805],{"class":118},[84,14480,14437],{"class":108},[84,14482,3161],{"class":118},[84,14484,14485,14487,14489],{"class":86,"line":4018},[84,14486,2620],{"class":118},[84,14488,2525],{"class":2505},[84,14490,2517],{"class":118},[84,14492,14493],{"class":86,"line":4027},[84,14494,91],{"emptyLinePlaceholder":90},[84,14496,14497],{"class":86,"line":4040},[84,14498,14499],{"class":97},"    \u003C!-- 定义 base_link -->\n",[84,14501,14502,14504,14506,14508,14510,14512],{"class":86,"line":4053},[84,14503,2539],{"class":118},[84,14505,2525],{"class":2505},[84,14507,2509],{"class":104},[84,14509,1805],{"class":118},[84,14511,2532],{"class":108},[84,14513,2517],{"class":118},[84,14515,14516,14518,14520],{"class":86,"line":4062},[84,14517,2723],{"class":118},[84,14519,3531],{"class":2505},[84,14521,2517],{"class":118},[84,14523,14524],{"class":86,"line":4078},[84,14525,14526],{"class":97},"            \u003C!-- 形状 -->\n",[84,14528,14529,14531,14533],{"class":86,"line":4087},[84,14530,3403],{"class":118},[84,14532,3396],{"class":2505},[84,14534,2517],{"class":118},[84,14536,14537,14539,14541,14544,14546,14549],{"class":86,"line":4097},[84,14538,14426],{"class":118},[84,14540,4092],{"class":2505},[84,14542,14543],{"class":104}," size",[84,14545,1805],{"class":118},[84,14547,14548],{"class":108},"\"${base_link_x} ${base_link_y} ${base_link_z}\"",[84,14550,2563],{"class":118},[84,14552,14553,14555,14557],{"class":86,"line":4111},[84,14554,3442],{"class":118},[84,14556,3396],{"class":2505},[84,14558,2517],{"class":118},[84,14560,14561,14563,14566,14569,14571,14574,14577,14579,14581],{"class":86,"line":4120},[84,14562,3403],{"class":118},[84,14564,14565],{"class":2505},"origin",[84,14567,14568],{"class":104}," xyz",[84,14570,1805],{"class":118},[84,14572,14573],{"class":108},"\"0 0 0\"",[84,14575,14576],{"class":104}," rpy",[84,14578,1805],{"class":118},[84,14580,14573],{"class":108},[84,14582,2563],{"class":118},[84,14584,14585,14587,14589,14591,14593,14595],{"class":86,"line":4129},[84,14586,3403],{"class":118},[84,14588,3603],{"class":2505},[84,14590,2509],{"class":104},[84,14592,1805],{"class":118},[84,14594,14277],{"class":108},[84,14596,3161],{"class":118},[84,14598,14599,14601,14603],{"class":86,"line":4138},[84,14600,2959],{"class":118},[84,14602,3531],{"class":2505},[84,14604,2517],{"class":118},[84,14606,14607],{"class":86,"line":4147},[84,14608,14609],{"class":97},"        \u003C!-- Gazebo 新增开始：base_link 碰撞体，Gazebo 物理仿真需要 collision -->\n",[84,14611,14612,14614,14616],{"class":86,"line":4156},[84,14613,2723],{"class":118},[84,14615,3380],{"class":2505},[84,14617,2517],{"class":118},[84,14619,14620,14622,14624],{"class":86,"line":4165},[84,14621,3403],{"class":118},[84,14623,3396],{"class":2505},[84,14625,2517],{"class":118},[84,14627,14628,14630,14632,14634,14636,14638],{"class":86,"line":4174},[84,14629,14426],{"class":118},[84,14631,4092],{"class":2505},[84,14633,14543],{"class":104},[84,14635,1805],{"class":118},[84,14637,14548],{"class":108},[84,14639,2563],{"class":118},[84,14641,14642,14644,14646],{"class":86,"line":4183},[84,14643,3442],{"class":118},[84,14645,3396],{"class":2505},[84,14647,2517],{"class":118},[84,14649,14650,14652,14654,14656,14658,14660,14662,14664,14666],{"class":86,"line":4192},[84,14651,3403],{"class":118},[84,14653,14565],{"class":2505},[84,14655,14568],{"class":104},[84,14657,1805],{"class":118},[84,14659,14573],{"class":108},[84,14661,14576],{"class":104},[84,14663,1805],{"class":118},[84,14665,14573],{"class":108},[84,14667,2563],{"class":118},[84,14669,14670,14672,14674],{"class":86,"line":4201},[84,14671,2959],{"class":118},[84,14673,3380],{"class":2505},[84,14675,2517],{"class":118},[84,14677,14678],{"class":86,"line":4217},[84,14679,14680],{"class":97},"        \u003C!-- Gazebo 新增结束：base_link 碰撞体 -->\n",[84,14682,14683],{"class":86,"line":4226},[84,14684,14685],{"class":97},"        \u003C!-- Gazebo 新增：base_link 惯性，Gazebo 物理仿真需要 inertial -->\n",[84,14687,14688,14690,14693,14695,14697,14700,14703,14705,14708,14711,14713,14716,14719,14721,14724],{"class":86,"line":4235},[84,14689,2723],{"class":118},[84,14691,14692],{"class":2505},"xacro:box_inertial",[84,14694,2817],{"class":104},[84,14696,1805],{"class":118},[84,14698,14699],{"class":108},"\"${base_link_mass}\"",[84,14701,14702],{"class":104}," x",[84,14704,1805],{"class":118},[84,14706,14707],{"class":108},"\"${base_link_x}\"",[84,14709,14710],{"class":104}," y",[84,14712,1805],{"class":118},[84,14714,14715],{"class":108},"\"${base_link_y}\"",[84,14717,14718],{"class":104}," z",[84,14720,1805],{"class":118},[84,14722,14723],{"class":108},"\"${base_link_z}\"",[84,14725,3161],{"class":118},[84,14727,14728,14730,14732],{"class":86,"line":4248},[84,14729,2620],{"class":118},[84,14731,2525],{"class":2505},[84,14733,2517],{"class":118},[84,14735,14736,14738,14741,14743,14745,14748,14750,14752,14755],{"class":86,"line":4257},[84,14737,2539],{"class":118},[84,14739,14740],{"class":2505},"joint",[84,14742,2509],{"class":104},[84,14744,1805],{"class":118},[84,14746,14747],{"class":108},"\"baselink2basefootprint\"",[84,14749,3079],{"class":104},[84,14751,1805],{"class":118},[84,14753,14754],{"class":108},"\"fixed\"",[84,14756,2517],{"class":118},[84,14758,14759,14761,14764,14767,14769,14771],{"class":86,"line":4266},[84,14760,2723],{"class":118},[84,14762,14763],{"class":2505},"parent",[84,14765,14766],{"class":104}," link",[84,14768,1805],{"class":118},[84,14770,14398],{"class":108},[84,14772,3161],{"class":118},[84,14774,14775,14777,14780,14782,14784,14786],{"class":86,"line":4275},[84,14776,2723],{"class":118},[84,14778,14779],{"class":2505},"child",[84,14781,14766],{"class":104},[84,14783,1805],{"class":118},[84,14785,2532],{"class":108},[84,14787,3161],{"class":118},[84,14789,14790,14792,14794,14796,14798,14801],{"class":86,"line":4289},[84,14791,2723],{"class":118},[84,14793,14565],{"class":2505},[84,14795,14568],{"class":104},[84,14797,1805],{"class":118},[84,14799,14800],{"class":108},"\"0.0 0.0 ${distance + base_link_z / 2}\"",[84,14802,3161],{"class":118},[84,14804,14805,14807,14809],{"class":86,"line":4302},[84,14806,2620],{"class":118},[84,14808,14740],{"class":2505},[84,14810,2517],{"class":118},[84,14812,14813],{"class":86,"line":4316},[84,14814,14815],{"class":97},"    \u003C!-- 车轮宏定义 -->\n",[84,14817,14818,14820,14822,14824,14826,14829,14831,14833,14836],{"class":86,"line":4325},[84,14819,2539],{"class":118},[84,14821,2680],{"class":2505},[84,14823,2509],{"class":104},[84,14825,1805],{"class":118},[84,14827,14828],{"class":108},"\"wheel_func\"",[84,14830,2689],{"class":104},[84,14832,1805],{"class":118},[84,14834,14835],{"class":108},"\"wheel_name is_front is_left\"",[84,14837,14838],{"class":118}," >\n",[84,14840,14841,14843,14845,14847,14849,14852],{"class":86,"line":4334},[84,14842,2723],{"class":118},[84,14844,2525],{"class":2505},[84,14846,2509],{"class":104},[84,14848,1805],{"class":118},[84,14850,14851],{"class":108},"\"${wheel_name}_wheel\"",[84,14853,2517],{"class":118},[84,14855,14856,14858,14860],{"class":86,"line":4347},[84,14857,3403],{"class":118},[84,14859,3531],{"class":2505},[84,14861,2517],{"class":118},[84,14863,14864,14866,14868],{"class":86,"line":4360},[84,14865,14426],{"class":118},[84,14867,3396],{"class":2505},[84,14869,2517],{"class":118},[84,14871,14872,14875,14878,14880,14882,14885,14888,14890,14893],{"class":86,"line":4369},[84,14873,14874],{"class":118},"                    \u003C",[84,14876,14877],{"class":2505},"cylinder",[84,14879,14432],{"class":104},[84,14881,1805],{"class":118},[84,14883,14884],{"class":108},"\"${wheel_radius}\"",[84,14886,14887],{"class":104}," length",[84,14889,1805],{"class":118},[84,14891,14892],{"class":108},"\"${wheel_length}\"",[84,14894,2563],{"class":118},[84,14896,14897,14900,14902],{"class":86,"line":4382},[84,14898,14899],{"class":118},"                \u003C/",[84,14901,3396],{"class":2505},[84,14903,2517],{"class":118},[84,14905,14906,14908,14910,14912,14914,14916,14918,14920,14923],{"class":86,"line":4395},[84,14907,14426],{"class":118},[84,14909,14565],{"class":2505},[84,14911,14568],{"class":104},[84,14913,1805],{"class":118},[84,14915,14573],{"class":108},[84,14917,14576],{"class":104},[84,14919,1805],{"class":118},[84,14921,14922],{"class":108},"\"${PI / 2} 0 0\"",[84,14924,2563],{"class":118},[84,14926,14927,14929,14931,14933,14935,14937],{"class":86,"line":4404},[84,14928,14426],{"class":118},[84,14930,3603],{"class":2505},[84,14932,2509],{"class":104},[84,14934,1805],{"class":118},[84,14936,14355],{"class":108},[84,14938,3161],{"class":118},[84,14940,14941,14943,14945],{"class":86,"line":4420},[84,14942,3442],{"class":118},[84,14944,3531],{"class":2505},[84,14946,2517],{"class":118},[84,14948,14949],{"class":86,"line":4434},[84,14950,14951],{"class":97},"            \u003C!-- Gazebo 新增开始：车轮碰撞体，四个轮子都会通过这个宏生成 -->\n",[84,14953,14954,14956,14958],{"class":86,"line":4449},[84,14955,3403],{"class":118},[84,14957,3380],{"class":2505},[84,14959,2517],{"class":118},[84,14961,14962,14964,14966],{"class":86,"line":4458},[84,14963,14426],{"class":118},[84,14965,3396],{"class":2505},[84,14967,2517],{"class":118},[84,14969,14970,14972,14974,14976,14978,14980,14982,14984,14986],{"class":86,"line":4467},[84,14971,14874],{"class":118},[84,14973,14877],{"class":2505},[84,14975,14432],{"class":104},[84,14977,1805],{"class":118},[84,14979,14884],{"class":108},[84,14981,14887],{"class":104},[84,14983,1805],{"class":118},[84,14985,14892],{"class":108},[84,14987,2563],{"class":118},[84,14989,14990,14992,14994],{"class":86,"line":4480},[84,14991,14899],{"class":118},[84,14993,3396],{"class":2505},[84,14995,2517],{"class":118},[84,14997,14998,15000,15002,15004,15006,15008,15010,15012,15014],{"class":86,"line":4493},[84,14999,14426],{"class":118},[84,15001,14565],{"class":2505},[84,15003,14568],{"class":104},[84,15005,1805],{"class":118},[84,15007,14573],{"class":108},[84,15009,14576],{"class":104},[84,15011,1805],{"class":118},[84,15013,14922],{"class":108},[84,15015,2563],{"class":118},[84,15017,15018,15020,15022],{"class":86,"line":4506},[84,15019,3442],{"class":118},[84,15021,3380],{"class":2505},[84,15023,2517],{"class":118},[84,15025,15026],{"class":86,"line":4519},[84,15027,15028],{"class":97},"            \u003C!-- Gazebo 新增结束：车轮碰撞体 -->\n",[84,15030,15031],{"class":86,"line":4532},[84,15032,15033],{"class":97},"            \u003C!-- Gazebo 新增：车轮惯性，四个轮子都会通过这个宏生成 -->\n",[84,15035,15036,15038,15041,15043,15045,15048,15050,15052,15054,15056,15058,15060],{"class":86,"line":4545},[84,15037,3403],{"class":118},[84,15039,15040],{"class":2505},"xacro:wheel_inertial",[84,15042,2817],{"class":104},[84,15044,1805],{"class":118},[84,15046,15047],{"class":108},"\"${wheel_mass}\"",[84,15049,14432],{"class":104},[84,15051,1805],{"class":118},[84,15053,14884],{"class":108},[84,15055,14887],{"class":104},[84,15057,1805],{"class":118},[84,15059,14892],{"class":108},[84,15061,3161],{"class":118},[84,15063,15064,15066,15068],{"class":86,"line":4554},[84,15065,2959],{"class":118},[84,15067,2525],{"class":2505},[84,15069,2517],{"class":118},[84,15071,15072,15074,15076,15078,15080,15083,15085,15087,15090],{"class":86,"line":4567},[84,15073,2723],{"class":118},[84,15075,14740],{"class":2505},[84,15077,2509],{"class":104},[84,15079,1805],{"class":118},[84,15081,15082],{"class":108},"\"${wheel_name}2baselink\"",[84,15084,3079],{"class":104},[84,15086,1805],{"class":118},[84,15088,15089],{"class":108},"\"continuous\"",[84,15091,2517],{"class":118},[84,15093,15094,15096,15098,15100,15102,15104],{"class":86,"line":4580},[84,15095,3403],{"class":118},[84,15097,14763],{"class":2505},[84,15099,14766],{"class":104},[84,15101,1805],{"class":118},[84,15103,2532],{"class":108},[84,15105,15106],{"class":118},"  />\n",[84,15108,15109,15111,15113,15115,15117,15119],{"class":86,"line":4589},[84,15110,3403],{"class":118},[84,15112,14779],{"class":2505},[84,15114,14766],{"class":104},[84,15116,1805],{"class":118},[84,15118,14851],{"class":108},[84,15120,2563],{"class":118},[84,15122,15123,15125,15127,15129,15131,15134,15136,15138,15140],{"class":86,"line":4604},[84,15124,3403],{"class":118},[84,15126,14565],{"class":2505},[84,15128,14568],{"class":104},[84,15130,1805],{"class":118},[84,15132,15133],{"class":108},"\"${(base_link_x / 2 - wheel_radius) * is_front} ${base_link_y / 2 * is_left} ${(base_link_z / 2 + distance - wheel_radius) * -1}\"",[84,15135,14576],{"class":104},[84,15137,1805],{"class":118},[84,15139,14573],{"class":108},[84,15141,2563],{"class":118},[84,15143,15144,15146,15149,15151,15153,15156],{"class":86,"line":4613},[84,15145,3403],{"class":118},[84,15147,15148],{"class":2505},"axis",[84,15150,14568],{"class":104},[84,15152,1805],{"class":118},[84,15154,15155],{"class":108},"\"0 1 0\"",[84,15157,2563],{"class":118},[84,15159,15160,15162,15164],{"class":86,"line":4622},[84,15161,2959],{"class":118},[84,15163,14740],{"class":2505},[84,15165,2517],{"class":118},[84,15167,15168],{"class":86,"line":4635},[84,15169,15170],{"class":97},"        \u003C!-- Gazebo 新增：四轮差速原地转弯需要轮胎横向滑移；降低 mu2 可以减少 Gazebo 中的卡顿和抖动 -->\n",[84,15172,15173,15175,15178,15181,15183,15185],{"class":86,"line":4644},[84,15174,2723],{"class":118},[84,15176,15177],{"class":2505},"gazebo",[84,15179,15180],{"class":104}," reference",[84,15182,1805],{"class":118},[84,15184,14851],{"class":108},[84,15186,2517],{"class":118},[84,15188,15189,15191,15194,15197,15199],{"class":86,"line":4653},[84,15190,3403],{"class":118},[84,15192,15193],{"class":2505},"mu1",[84,15195,15196],{"class":118},">${wheel_mu1}\u003C/",[84,15198,15193],{"class":2505},[84,15200,2517],{"class":118},[84,15202,15203,15205,15208,15211,15213],{"class":86,"line":4662},[84,15204,3403],{"class":118},[84,15206,15207],{"class":2505},"mu2",[84,15209,15210],{"class":118},">${wheel_mu2}\u003C/",[84,15212,15207],{"class":2505},[84,15214,2517],{"class":118},[84,15216,15217,15219,15222,15225,15227],{"class":86,"line":4671},[84,15218,3403],{"class":118},[84,15220,15221],{"class":2505},"fdir1",[84,15223,15224],{"class":118},">1 0 0\u003C/",[84,15226,15221],{"class":2505},[84,15228,2517],{"class":118},[84,15230,15231,15233,15235],{"class":86,"line":4680},[84,15232,2959],{"class":118},[84,15234,15177],{"class":2505},[84,15236,2517],{"class":118},[84,15238,15239,15241,15243],{"class":86,"line":4689},[84,15240,2620],{"class":118},[84,15242,2680],{"class":2505},[84,15244,2517],{"class":118},[84,15246,15247],{"class":86,"line":4698},[84,15248,15249],{"class":97},"    \u003C!-- 车轮宏调用 -->\n",[84,15251,15252,15254,15257,15260,15262,15265,15268,15270,15273,15276,15278,15280],{"class":86,"line":4707},[84,15253,2539],{"class":118},[84,15255,15256],{"class":2505},"xacro:wheel_func",[84,15258,15259],{"class":104}," wheel_name",[84,15261,1805],{"class":118},[84,15263,15264],{"class":108},"\"left_front\"",[84,15266,15267],{"class":104}," is_front",[84,15269,1805],{"class":118},[84,15271,15272],{"class":108},"\"1\"",[84,15274,15275],{"class":104}," is_left",[84,15277,1805],{"class":118},[84,15279,15272],{"class":108},[84,15281,2563],{"class":118},[84,15283,15284,15286,15288,15290,15292,15295,15297,15299,15302,15304,15306,15308],{"class":86,"line":4716},[84,15285,2539],{"class":118},[84,15287,15256],{"class":2505},[84,15289,15259],{"class":104},[84,15291,1805],{"class":118},[84,15293,15294],{"class":108},"\"left_back\"",[84,15296,15267],{"class":104},[84,15298,1805],{"class":118},[84,15300,15301],{"class":108},"\"-1\"",[84,15303,15275],{"class":104},[84,15305,1805],{"class":118},[84,15307,15272],{"class":108},[84,15309,2563],{"class":118},[84,15311,15312,15314,15316,15318,15320,15323,15325,15327,15329,15331,15333,15335],{"class":86,"line":4725},[84,15313,2539],{"class":118},[84,15315,15256],{"class":2505},[84,15317,15259],{"class":104},[84,15319,1805],{"class":118},[84,15321,15322],{"class":108},"\"right_front\"",[84,15324,15267],{"class":104},[84,15326,1805],{"class":118},[84,15328,15272],{"class":108},[84,15330,15275],{"class":104},[84,15332,1805],{"class":118},[84,15334,15301],{"class":108},[84,15336,2563],{"class":118},[84,15338,15339,15341,15343,15345,15347,15350,15352,15354,15356,15358,15360,15362],{"class":86,"line":4740},[84,15340,2539],{"class":118},[84,15342,15256],{"class":2505},[84,15344,15259],{"class":104},[84,15346,1805],{"class":118},[84,15348,15349],{"class":108},"\"right_back\"",[84,15351,15267],{"class":104},[84,15353,1805],{"class":118},[84,15355,15301],{"class":108},[84,15357,15275],{"class":104},[84,15359,1805],{"class":118},[84,15361,15301],{"class":108},[84,15363,2563],{"class":118},[84,15365,15366,15368,15370],{"class":86,"line":4749},[84,15367,2638],{"class":118},[84,15369,2506],{"class":2505},[84,15371,2517],{"class":118},[15,15373,15374,15375,15378],{},"修改",[81,15376,15377],{},"car.urdf.xacro","：",[74,15380,15382],{"className":2493,"code":15381,"language":2495,"meta":79,"style":79},"\u003Crobot name=\"car\" xmlns:xacro=\"http://wiki.ros.org/xacro\">\n    \u003Cxacro:include filename=\"car_base.urdf.xacro\"/>\n    \u003Cxacro:include filename=\"car_camera.urdf.xacro\"/>\n    \u003Cxacro:include filename=\"car_laser.urdf.xacro\"/>\n\u003C/robot>\n",[81,15383,15384,15405,15421,15436,15451],{"__ignoreMap":79},[84,15385,15386,15388,15390,15392,15394,15397,15399,15401,15403],{"class":86,"line":87},[84,15387,2502],{"class":118},[84,15389,2506],{"class":2505},[84,15391,2509],{"class":104},[84,15393,1805],{"class":118},[84,15395,15396],{"class":108},"\"car\"",[84,15398,2660],{"class":104},[84,15400,1805],{"class":118},[84,15402,13548],{"class":108},[84,15404,2517],{"class":118},[84,15406,15407,15409,15412,15414,15416,15419],{"class":86,"line":94},[84,15408,2539],{"class":118},[84,15410,15411],{"class":2505},"xacro:include",[84,15413,3153],{"class":104},[84,15415,1805],{"class":118},[84,15417,15418],{"class":108},"\"car_base.urdf.xacro\"",[84,15420,3161],{"class":118},[84,15422,15423,15425,15427,15429,15431,15434],{"class":86,"line":101},[84,15424,2539],{"class":118},[84,15426,15411],{"class":2505},[84,15428,3153],{"class":104},[84,15430,1805],{"class":118},[84,15432,15433],{"class":108},"\"car_camera.urdf.xacro\"",[84,15435,3161],{"class":118},[84,15437,15438,15440,15442,15444,15446,15449],{"class":86,"line":125},[84,15439,2539],{"class":118},[84,15441,15411],{"class":2505},[84,15443,3153],{"class":104},[84,15445,1805],{"class":118},[84,15447,15448],{"class":108},"\"car_laser.urdf.xacro\"",[84,15450,3161],{"class":118},[84,15452,15453,15455,15457],{"class":86,"line":130},[84,15454,2638],{"class":118},[84,15456,2506],{"class":2505},[84,15458,2517],{"class":118},[15,15460,15461],{},[19,15462,15463],{},"机器人模型功能包下新建launch文件",[15,15465,15466],{},"新建launch文件mycar_desc_sim.launch.py，并输入如下内容：",[74,15468,15470],{"className":1655,"code":15469,"language":1657,"meta":79,"style":79},"from launch import LaunchDescription\nfrom launch_ros.actions import Node\nimport os\nfrom ament_index_python.packages import get_package_share_directory\nfrom launch_ros.parameter_descriptions import ParameterValue\nfrom launch.substitutions import Command,LaunchConfiguration\nfrom launch.actions import DeclareLaunchArgument\n\ndef generate_launch_description():\n\n    mycar_description = get_package_share_directory(\"mycar_description\")\n    default_model_path = os.path.join(mycar_description,\"urdf/xacro\",\"car.urdf.xacro\")\n    model = DeclareLaunchArgument(name=\"model\", default_value=default_model_path)\n\n    # 加载机器人模型\n    # 启动 robot_state_publisher 节点并以参数方式加载 urdf 文件\n    robot_description = ParameterValue(Command([\"xacro \",LaunchConfiguration(\"model\")]))\n    robot_state_publisher = Node(\n        package=\"robot_state_publisher\",\n        executable=\"robot_state_publisher\",\n        parameters=[{\"robot_description\": robot_description}]\n    )\n\n    return LaunchDescription([\n        model,\n        robot_state_publisher,\n    ])\n",[81,15471,15472,15482,15492,15498,15508,15520,15531,15541,15545,15553,15557,15571,15591,15617,15621,15626,15631,15652,15661,15672,15682,15696,15700,15704,15710,15715,15720],{"__ignoreMap":79},[84,15473,15474,15476,15478,15480],{"class":86,"line":87},[84,15475,1676],{"class":734},[84,15477,1695],{"class":118},[84,15479,1664],{"class":734},[84,15481,1700],{"class":118},[84,15483,15484,15486,15488,15490],{"class":86,"line":94},[84,15485,1676],{"class":734},[84,15487,1770],{"class":118},[84,15489,1664],{"class":734},[84,15491,1775],{"class":118},[84,15493,15494,15496],{"class":86,"line":101},[84,15495,1664],{"class":734},[84,15497,1667],{"class":118},[84,15499,15500,15502,15504,15506],{"class":86,"line":125},[84,15501,1676],{"class":734},[84,15503,1679],{"class":118},[84,15505,1664],{"class":734},[84,15507,1684],{"class":118},[84,15509,15510,15512,15515,15517],{"class":86,"line":130},[84,15511,1676],{"class":734},[84,15513,15514],{"class":118}," launch_ros.parameter_descriptions ",[84,15516,1664],{"class":734},[84,15518,15519],{"class":118}," ParameterValue\n",[84,15521,15522,15524,15526,15528],{"class":86,"line":136},[84,15523,1676],{"class":734},[84,15525,1754],{"class":118},[84,15527,1664],{"class":734},[84,15529,15530],{"class":118}," Command,LaunchConfiguration\n",[84,15532,15533,15535,15537,15539],{"class":86,"line":148},[84,15534,1676],{"class":734},[84,15536,1707],{"class":118},[84,15538,1664],{"class":734},[84,15540,1712],{"class":118},[84,15542,15543],{"class":86,"line":153},[84,15544,91],{"emptyLinePlaceholder":90},[84,15546,15547,15549,15551],{"class":86,"line":159},[84,15548,1785],{"class":734},[84,15550,1788],{"class":104},[84,15552,1791],{"class":118},[84,15554,15555],{"class":86,"line":406},[84,15556,91],{"emptyLinePlaceholder":90},[84,15558,15559,15562,15564,15566,15569],{"class":86,"line":412},[84,15560,15561],{"class":118},"    mycar_description ",[84,15563,1805],{"class":734},[84,15565,1808],{"class":118},[84,15567,15568],{"class":108},"\"mycar_description\"",[84,15570,1574],{"class":118},[84,15572,15573,15576,15578,15581,15584,15586,15589],{"class":86,"line":418},[84,15574,15575],{"class":118},"    default_model_path ",[84,15577,1805],{"class":734},[84,15579,15580],{"class":118}," os.path.join(mycar_description,",[84,15582,15583],{"class":108},"\"urdf/xacro\"",[84,15585,1845],{"class":118},[84,15587,15588],{"class":108},"\"car.urdf.xacro\"",[84,15590,1574],{"class":118},[84,15592,15593,15596,15598,15601,15603,15605,15608,15610,15612,15614],{"class":86,"line":424},[84,15594,15595],{"class":118},"    model ",[84,15597,1805],{"class":734},[84,15599,15600],{"class":118}," DeclareLaunchArgument(",[84,15602,6253],{"class":1896},[84,15604,1805],{"class":734},[84,15606,15607],{"class":108},"\"model\"",[84,15609,1884],{"class":118},[84,15611,2232],{"class":1896},[84,15613,1805],{"class":734},[84,15615,15616],{"class":118},"default_model_path)\n",[84,15618,15619],{"class":86,"line":1782},[84,15620,91],{"emptyLinePlaceholder":90},[84,15622,15623],{"class":86,"line":1794},[84,15624,15625],{"class":97},"    # 加载机器人模型\n",[84,15627,15628],{"class":86,"line":1799},[84,15629,15630],{"class":97},"    # 启动 robot_state_publisher 节点并以参数方式加载 urdf 文件\n",[84,15632,15633,15636,15638,15641,15644,15647,15649],{"class":86,"line":1816},[84,15634,15635],{"class":118},"    robot_description ",[84,15637,1805],{"class":734},[84,15639,15640],{"class":118}," ParameterValue(Command([",[84,15642,15643],{"class":108},"\"xacro \"",[84,15645,15646],{"class":118},",LaunchConfiguration(",[84,15648,15607],{"class":108},[84,15650,15651],{"class":118},")]))\n",[84,15653,15654,15657,15659],{"class":86,"line":1831},[84,15655,15656],{"class":118},"    robot_state_publisher ",[84,15658,1805],{"class":734},[84,15660,1954],{"class":118},[84,15662,15663,15665,15667,15670],{"class":86,"line":1853},[84,15664,2055],{"class":1896},[84,15666,1805],{"class":734},[84,15668,15669],{"class":108},"\"robot_state_publisher\"",[84,15671,1968],{"class":118},[84,15673,15674,15676,15678,15680],{"class":86,"line":1858},[84,15675,2068],{"class":1896},[84,15677,1805],{"class":734},[84,15679,15669],{"class":108},[84,15681,1968],{"class":118},[84,15683,15684,15686,15688,15690,15693],{"class":86,"line":1869},[84,15685,2118],{"class":1896},[84,15687,1805],{"class":734},[84,15689,2123],{"class":118},[84,15691,15692],{"class":108},"\"robot_description\"",[84,15694,15695],{"class":118},": robot_description}]\n",[84,15697,15698],{"class":86,"line":1875},[84,15699,1932],{"class":118},[84,15701,15702],{"class":86,"line":1893},[84,15703,91],{"emptyLinePlaceholder":90},[84,15705,15706,15708],{"class":86,"line":1905},[84,15707,2210],{"class":734},[84,15709,2213],{"class":118},[84,15711,15712],{"class":86,"line":1923},[84,15713,15714],{"class":118},"        model,\n",[84,15716,15717],{"class":86,"line":1929},[84,15718,15719],{"class":118},"        robot_state_publisher,\n",[84,15721,15722],{"class":86,"line":1935},[84,15723,2270],{"class":118},[15,15725,15726],{},"较之于以往该文件缺少了joint_state_publisher节点，该节点作用是发布活动关节状态，这一功能后续由ignition实现。",[15,15728,15729],{},[19,15730,15731],{},"添加机器人模型",[15,15733,15734],{},"创建gazebo_sim_robot_world.launch.py文件，包含机器人模型的发布文件并在Gazebo中生成机器人模型，修改后的代码如下：",[74,15736,15738],{"className":1655,"code":15737,"language":1657,"meta":79,"style":79},"import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory(\"demo_gazebo_sim\")\n    mycar_desc_pkg = get_package_share_directory(\"mycar_description\")\n    pkg_ros_gz_sim = get_package_share_directory(\"ros_gz_sim\")\n    world_file = os.path.join(this_pkg,\"world\",\"house.sdf\")\n\n    gz_sim = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(pkg_ros_gz_sim, \"launch\", \"gz_sim.launch.py\")),\n        launch_arguments={\n            \"gz_args\": \"-r \" + world_file\n        }.items(),\n    )\n    mycar_desc = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(mycar_desc_pkg,\"launch\",\"mycar_desc_sim.launch.py\")\n        )\n    )\n    spawn = Node(package=\"ros_gz_sim\", executable=\"create\",\n                arguments=[\n                \"-name\", \"mycar\",\n                \"-x\", \"0\",\n                \"-z\", \"0.01\", #设置为0,可能会陷进地里\n                \"-y\", \"0\",\n                \"-R\", \"0\",\n                \"-P\", \"0\",\n                \"-Y\", \"1.57\", # Yaw航向角逆时针旋转90度\n                \"-topic\", \"/robot_description\"],\n            output=\"screen\")\n\n    return LaunchDescription([\n        gz_sim,\n        spawn,\n        mycar_desc,\n    ])\n",[81,15739,15740,15746,15750,15760,15764,15774,15784,15794,15804,15808,15816,15820,15833,15846,15859,15875,15879,15887,15891,15905,15913,15927,15931,15935,15944,15948,15962,15967,15971,16000,16009,16021,16033,16048,16059,16070,16081,16096,16109,16121,16125,16131,16135,16140,16145],{"__ignoreMap":79},[84,15741,15742,15744],{"class":86,"line":87},[84,15743,1664],{"class":734},[84,15745,1667],{"class":118},[84,15747,15748],{"class":86,"line":94},[84,15749,91],{"emptyLinePlaceholder":90},[84,15751,15752,15754,15756,15758],{"class":86,"line":101},[84,15753,1676],{"class":734},[84,15755,1679],{"class":118},[84,15757,1664],{"class":734},[84,15759,1684],{"class":118},[84,15761,15762],{"class":86,"line":125},[84,15763,91],{"emptyLinePlaceholder":90},[84,15765,15766,15768,15770,15772],{"class":86,"line":130},[84,15767,1676],{"class":734},[84,15769,1695],{"class":118},[84,15771,1664],{"class":734},[84,15773,1700],{"class":118},[84,15775,15776,15778,15780,15782],{"class":86,"line":136},[84,15777,1676],{"class":734},[84,15779,1707],{"class":118},[84,15781,1664],{"class":734},[84,15783,1723],{"class":118},[84,15785,15786,15788,15790,15792],{"class":86,"line":148},[84,15787,1676],{"class":734},[84,15789,1742],{"class":118},[84,15791,1664],{"class":734},[84,15793,1747],{"class":118},[84,15795,15796,15798,15800,15802],{"class":86,"line":153},[84,15797,1676],{"class":734},[84,15799,1770],{"class":118},[84,15801,1664],{"class":734},[84,15803,1775],{"class":118},[84,15805,15806],{"class":86,"line":159},[84,15807,91],{"emptyLinePlaceholder":90},[84,15809,15810,15812,15814],{"class":86,"line":406},[84,15811,1785],{"class":734},[84,15813,1788],{"class":104},[84,15815,1791],{"class":118},[84,15817,15818],{"class":86,"line":412},[84,15819,91],{"emptyLinePlaceholder":90},[84,15821,15822,15824,15826,15828,15831],{"class":86,"line":418},[84,15823,1802],{"class":118},[84,15825,1805],{"class":734},[84,15827,1808],{"class":118},[84,15829,15830],{"class":108},"\"demo_gazebo_sim\"",[84,15832,1574],{"class":118},[84,15834,15835,15838,15840,15842,15844],{"class":86,"line":424},[84,15836,15837],{"class":118},"    mycar_desc_pkg ",[84,15839,1805],{"class":734},[84,15841,1808],{"class":118},[84,15843,15568],{"class":108},[84,15845,1574],{"class":118},[84,15847,15848,15850,15852,15854,15857],{"class":86,"line":1782},[84,15849,1819],{"class":118},[84,15851,1805],{"class":734},[84,15853,1808],{"class":118},[84,15855,15856],{"class":108},"\"ros_gz_sim\"",[84,15858,1574],{"class":118},[84,15860,15861,15863,15865,15867,15869,15871,15873],{"class":86,"line":1794},[84,15862,1834],{"class":118},[84,15864,1805],{"class":734},[84,15866,1839],{"class":118},[84,15868,9325],{"class":108},[84,15870,1845],{"class":118},[84,15872,9330],{"class":108},[84,15874,1574],{"class":118},[84,15876,15877],{"class":86,"line":1799},[84,15878,91],{"emptyLinePlaceholder":90},[84,15880,15881,15883,15885],{"class":86,"line":1816},[84,15882,1861],{"class":118},[84,15884,1805],{"class":734},[84,15886,1866],{"class":118},[84,15888,15889],{"class":86,"line":1831},[84,15890,1872],{"class":118},[84,15892,15893,15895,15898,15900,15903],{"class":86,"line":1853},[84,15894,1878],{"class":118},[84,15896,15897],{"class":108},"\"launch\"",[84,15899,1884],{"class":118},[84,15901,15902],{"class":108},"\"gz_sim.launch.py\"",[84,15904,1890],{"class":118},[84,15906,15907,15909,15911],{"class":86,"line":1858},[84,15908,1897],{"class":1896},[84,15910,1805],{"class":734},[84,15912,1902],{"class":118},[84,15914,15915,15918,15920,15923,15925],{"class":86,"line":1869},[84,15916,15917],{"class":108},"            \"gz_args\"",[84,15919,1911],{"class":118},[84,15921,15922],{"class":108},"\"-r \"",[84,15924,1917],{"class":734},[84,15926,1920],{"class":118},[84,15928,15929],{"class":86,"line":1875},[84,15930,1926],{"class":118},[84,15932,15933],{"class":86,"line":1893},[84,15934,1932],{"class":118},[84,15936,15937,15940,15942],{"class":86,"line":1905},[84,15938,15939],{"class":118},"    mycar_desc ",[84,15941,1805],{"class":734},[84,15943,1866],{"class":118},[84,15945,15946],{"class":86,"line":1923},[84,15947,1872],{"class":118},[84,15949,15950,15953,15955,15957,15960],{"class":86,"line":1929},[84,15951,15952],{"class":118},"            os.path.join(mycar_desc_pkg,",[84,15954,15897],{"class":108},[84,15956,1845],{"class":118},[84,15958,15959],{"class":108},"\"mycar_desc_sim.launch.py\"",[84,15961,1574],{"class":118},[84,15963,15964],{"class":86,"line":1935},[84,15965,15966],{"class":118},"        )\n",[84,15968,15969],{"class":86,"line":1940},[84,15970,1932],{"class":118},[84,15972,15973,15976,15978,15981,15984,15986,15988,15990,15993,15995,15998],{"class":86,"line":1946},[84,15974,15975],{"class":118},"    spawn ",[84,15977,1805],{"class":734},[84,15979,15980],{"class":118}," Node(",[84,15982,15983],{"class":1896},"package",[84,15985,1805],{"class":734},[84,15987,15856],{"class":108},[84,15989,1884],{"class":118},[84,15991,15992],{"class":1896},"executable",[84,15994,1805],{"class":734},[84,15996,15997],{"class":108},"\"create\"",[84,15999,1968],{"class":118},[84,16001,16002,16005,16007],{"class":86,"line":1957},[84,16003,16004],{"class":1896},"                arguments",[84,16006,1805],{"class":734},[84,16008,2145],{"class":118},[84,16010,16011,16014,16016,16019],{"class":86,"line":1971},[84,16012,16013],{"class":108},"                \"-name\"",[84,16015,1884],{"class":118},[84,16017,16018],{"class":108},"\"mycar\"",[84,16020,1968],{"class":118},[84,16022,16023,16026,16028,16031],{"class":86,"line":1983},[84,16024,16025],{"class":108},"                \"-x\"",[84,16027,1884],{"class":118},[84,16029,16030],{"class":108},"\"0\"",[84,16032,1968],{"class":118},[84,16034,16035,16038,16040,16043,16045],{"class":86,"line":2010},[84,16036,16037],{"class":108},"                \"-z\"",[84,16039,1884],{"class":118},[84,16041,16042],{"class":108},"\"0.01\"",[84,16044,1884],{"class":118},[84,16046,16047],{"class":97},"#设置为0,可能会陷进地里\n",[84,16049,16050,16053,16055,16057],{"class":86,"line":2026},[84,16051,16052],{"class":108},"                \"-y\"",[84,16054,1884],{"class":118},[84,16056,16030],{"class":108},[84,16058,1968],{"class":118},[84,16060,16061,16064,16066,16068],{"class":86,"line":2031},[84,16062,16063],{"class":108},"                \"-R\"",[84,16065,1884],{"class":118},[84,16067,16030],{"class":108},[84,16069,1968],{"class":118},[84,16071,16072,16075,16077,16079],{"class":86,"line":2036},[84,16073,16074],{"class":108},"                \"-P\"",[84,16076,1884],{"class":118},[84,16078,16030],{"class":108},[84,16080,1968],{"class":118},[84,16082,16083,16086,16088,16091,16093],{"class":86,"line":2042},[84,16084,16085],{"class":108},"                \"-Y\"",[84,16087,1884],{"class":118},[84,16089,16090],{"class":108},"\"1.57\"",[84,16092,1884],{"class":118},[84,16094,16095],{"class":97},"# Yaw航向角逆时针旋转90度\n",[84,16097,16098,16101,16103,16106],{"class":86,"line":2052},[84,16099,16100],{"class":108},"                \"-topic\"",[84,16102,1884],{"class":118},[84,16104,16105],{"class":108},"\"/robot_description\"",[84,16107,16108],{"class":118},"],\n",[84,16110,16111,16114,16116,16119],{"class":86,"line":2065},[84,16112,16113],{"class":1896},"            output",[84,16115,1805],{"class":734},[84,16117,16118],{"class":108},"\"screen\"",[84,16120,1574],{"class":118},[84,16122,16123],{"class":86,"line":2078},[84,16124,91],{"emptyLinePlaceholder":90},[84,16126,16127,16129],{"class":86,"line":2093},[84,16128,2210],{"class":734},[84,16130,2213],{"class":118},[84,16132,16133],{"class":86,"line":2101},[84,16134,2219],{"class":118},[84,16136,16137],{"class":86,"line":2109},[84,16138,16139],{"class":118},"        spawn,\n",[84,16141,16142],{"class":86,"line":2115},[84,16143,16144],{"class":118},"        mycar_desc,\n",[84,16146,16147],{"class":86,"line":2137},[84,16148,2270],{"class":118},[15,16150,16151],{},[19,16152,2283],{},[15,16154,2286],{},[74,16156,16158],{"className":76,"code":16157,"language":78,"meta":79,"style":79},"colcon build --packages-select mycar_description demo_gazebo_sim\n",[81,16159,16160],{"__ignoreMap":79},[84,16161,16162,16164,16166,16169,16171],{"class":86,"line":87},[84,16163,2296],{"class":104},[84,16165,2299],{"class":108},[84,16167,16168],{"class":548}," --packages-select",[84,16170,13358],{"class":108},[84,16172,1540],{"class":108},[15,16174,16175],{},[19,16176,2314],{},[15,16178,16179],{},"终端中进入当前工作空间，调用如下指令执行launch文件：（执行起来有问题的话，你只要学过urdf怎么跑，应该拥有自我寻找错误的能力了，自己找吧）",[74,16181,16183],{"className":76,"code":16182,"language":78,"meta":79,"style":79},". install/setup.bash\n\nros2 launch demo_gazebo_sim gazebo_sim_robot_world.launch.py\n",[81,16184,16185,16191,16195],{"__ignoreMap":79},[84,16186,16187,16189],{"class":86,"line":87},[84,16188,2327],{"class":548},[84,16190,2330],{"class":108},[84,16192,16193],{"class":86,"line":94},[84,16194,91],{"emptyLinePlaceholder":90},[84,16196,16197,16199,16201,16203],{"class":86,"line":101},[84,16198,235],{"class":104},[84,16200,238],{"class":108},[84,16202,2339],{"class":108},[84,16204,16205],{"class":108}," gazebo_sim_robot_world.launch.py\n",[15,16207,9456],{},[15,16209,16210],{},[172,16211],{"alt":79,"src":16212},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1733.webp",[32,16214,16216],{"id":16215},"gz-sim运动控制器","Gz Sim运动控制器",[15,16218,16219],{},"本节将介绍如何让你的机器人动起来。",[15,16221,16222,16223],{},"原理就是给urdf或xacro等添加",[15177,16224,16225],{},"标签：",[15,16227,16228],{},[24,16229,16230],{"href":16230,"rel":16231},"http://sdformat.org/tutorials?tut=sdformat_urdf_extensions&cat=specification&",[28],[15,16233,16234],{},[172,16235],{"alt":79,"src":16236},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1734.webp",[15,16238,16239],{},[24,16240,16241],{"href":16241,"rel":16242},"https://gazebosim.org/api/plugin/2/index.html",[28],[15,16244,16245,16246,16249,16250],{},"安装库：\n官方教程：\n进入",[24,16247,56],{"href":56,"rel":16248},[28],"\n点击插件进入",[24,16251,16252],{"href":16252,"rel":16253},"https://gazebosim.org/api/plugin/2/installation.html",[28],[74,16255,16257],{"className":76,"code":16256,"language":78,"meta":79,"style":79},"sudo apt-get update\nsudo apt-get install lsb-release\nsudo sh -c 'echo \"deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main\" > /etc/apt/sources.list.d/gazebo-stable.list'\nwget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -\nsudo apt-get update\nsudo apt install libgz-plugin2-dev\n",[81,16258,16259,16269,16280,16293,16322,16330],{"__ignoreMap":79},[84,16260,16261,16263,16266],{"class":86,"line":87},[84,16262,105],{"class":104},[84,16264,16265],{"class":108}," apt-get",[84,16267,16268],{"class":108}," update\n",[84,16270,16271,16273,16275,16277],{"class":86,"line":94},[84,16272,105],{"class":104},[84,16274,16265],{"class":108},[84,16276,112],{"class":108},[84,16278,16279],{"class":108}," lsb-release\n",[84,16281,16282,16284,16287,16290],{"class":86,"line":101},[84,16283,105],{"class":104},[84,16285,16286],{"class":108}," sh",[84,16288,16289],{"class":548}," -c",[84,16291,16292],{"class":108}," 'echo \"deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main\" > /etc/apt/sources.list.d/gazebo-stable.list'\n",[84,16294,16295,16298,16301,16304,16307,16310,16313,16316,16319],{"class":86,"line":125},[84,16296,16297],{"class":104},"wget",[84,16299,16300],{"class":108}," http://packages.osrfoundation.org/gazebo.key",[84,16302,16303],{"class":548}," -O",[84,16305,16306],{"class":108}," -",[84,16308,16309],{"class":734}," |",[84,16311,16312],{"class":104}," sudo",[84,16314,16315],{"class":108}," apt-key",[84,16317,16318],{"class":108}," add",[84,16320,16321],{"class":108}," -\n",[84,16323,16324,16326,16328],{"class":86,"line":130},[84,16325,105],{"class":104},[84,16327,16265],{"class":108},[84,16329,16268],{"class":108},[84,16331,16332,16334,16336,16338],{"class":86,"line":136},[84,16333,105],{"class":104},[84,16335,109],{"class":108},[84,16337,112],{"class":108},[84,16339,16340],{"class":108}," libgz-plugin2-dev\n",[15,16342,16343],{},"利用插件去让小车动，比如有两轮差速插件，四轮麦轮插件等等",[15,16345,16346],{},"同时该插件还提供了一些可以控制输出的选项，因为是仿真，所以还要告诉插件轮子对应的joint名称等信息，这样就有了下面这个参数表格：",[887,16348,16349,16359],{},[890,16350,16351],{},[893,16352,16353,16356],{},[896,16354,16355],{"align":898},"配置项",[896,16357,16358],{"align":898},"含义",[904,16360,16361,16369,16377,16385,16393,16401,16409,16417,16425,16433,16441,16449,16457],{},[893,16362,16363,16366],{},[909,16364,16365],{"align":898},"ros",[909,16367,16368],{"align":898},"ros相关配置，包含命名空间和话题重映射等",[893,16370,16371,16374],{},[909,16372,16373],{"align":898},"update_rate",[909,16375,16376],{"align":898},"数据更新速率",[893,16378,16379,16382],{},[909,16380,16381],{"align":898},"left_joint",[909,16383,16384],{"align":898},"左轮关节名称",[893,16386,16387,16390],{},[909,16388,16389],{"align":898},"right_joint",[909,16391,16392],{"align":898},"右轮关节名称",[893,16394,16395,16398],{},[909,16396,16397],{"align":898},"wheel_separation",[909,16399,16400],{"align":898},"左右轮子的间距",[893,16402,16403,16406],{},[909,16404,16405],{"align":898},"wheel_diameter",[909,16407,16408],{"align":898},"轮子的直径",[893,16410,16411,16414],{},[909,16412,16413],{"align":898},"max_wheel_torque",[909,16415,16416],{"align":898},"轮子最大的力矩",[893,16418,16419,16422],{},[909,16420,16421],{"align":898},"max_wheel_acceleration",[909,16423,16424],{"align":898},"轮子最大的加速度",[893,16426,16427,16430],{},[909,16428,16429],{"align":898},"publish_odom",[909,16431,16432],{"align":898},"是否发布里程计",[893,16434,16435,16438],{},[909,16436,16437],{"align":898},"publish_odom_tf",[909,16439,16440],{"align":898},"是否发布里程计的tf开关",[893,16442,16443,16446],{},[909,16444,16445],{"align":898},"publish_wheel_tf",[909,16447,16448],{"align":898},"是否发布轮子的tf数据开关",[893,16450,16451,16454],{},[909,16452,16453],{"align":898},"odometry_frame",[909,16455,16456],{"align":898},"里程计的framed ID，最终体现在话题和TF上",[893,16458,16459,16462],{},[909,16460,16461],{"align":898},"robot_base_frame",[909,16463,16464],{"align":898},"机器人的基础frame的ID",[15,16466,16467],{},[19,16468,16469],{},"修改URDF文件",[15,16471,16472,16473,16476],{},"2轮差速车的话，在",[81,16474,16475],{},"\u003Crobot>","根标签下添加如下代码：",[74,16478,16480],{"className":2493,"code":16479,"language":2495,"meta":79,"style":79},"\n  \u003Cgazebo>\n      \u003Cplugin filename=\"gz-sim-diff-drive-system\"\n        name=\"gz::sim::systems::DiffDrive\">\n        \u003Cleft_joint>left_joint\u003C/left_joint>\n        \u003Cright_joint>right_joint\u003C/right_joint>\n        \u003Cwheel_separation>0.2097\u003C/wheel_separation>\n        \u003Cwheel_radius>0.03415\u003C/wheel_radius>\n        \u003Codom_publish_frequency>10\u003C/odom_publish_frequency>\n        \u003Cframe_id>odom\u003C/frame_id>\n        \u003Cchild_frame_id>base_footprint\u003C/child_frame_id>\n        \u003Ctopic>/cmd_vel\u003C/topic>\n        \u003Cmax_linear_acceleration>10\u003C/max_linear_acceleration>\n        \u003Cmin_linear_acceleration>-10\u003C/min_linear_acceleration>\n        \u003Cmax_angular_acceleration>10\u003C/max_angular_acceleration>\n        \u003Cmin_angular_acceleration>-10\u003C/min_angular_acceleration>\n        \u003Cmax_linear_velocity>0.5\u003C/max_linear_velocity>\n        \u003Cmin_linear_velocity>-0.5\u003C/min_linear_velocity>\n        \u003Cmax_angular_velocity>1\u003C/max_angular_velocity>\n        \u003Cmin_angular_velocity>-1\u003C/min_angular_velocity>\n      \u003C/plugin>\n\n  \u003C/gazebo>\n\n  \u003Cgazebo>\n    \u003Cplugin filename=\"gz-sim-joint-state-publisher-system\"\n      name=\"gz::sim::systems::JointStatePublisher\">\n    \u003C/plugin>\n  \u003C/gazebo>\n",[81,16481,16482,16486,16494,16507,16519,16532,16545,16558,16572,16586,16600,16614,16628,16641,16655,16668,16681,16695,16709,16722,16736,16744,16748,16756,16760,16768,16781,16793,16801],{"__ignoreMap":79},[84,16483,16484],{"class":86,"line":87},[84,16485,91],{"emptyLinePlaceholder":90},[84,16487,16488,16490,16492],{"class":86,"line":94},[84,16489,2522],{"class":118},[84,16491,15177],{"class":2505},[84,16493,2517],{"class":118},[84,16495,16496,16498,16500,16502,16504],{"class":86,"line":101},[84,16497,2549],{"class":118},[84,16499,3143],{"class":2505},[84,16501,3153],{"class":104},[84,16503,1805],{"class":118},[84,16505,16506],{"class":108},"\"gz-sim-diff-drive-system\"\n",[84,16508,16509,16512,16514,16517],{"class":86,"line":125},[84,16510,16511],{"class":104},"        name",[84,16513,1805],{"class":118},[84,16515,16516],{"class":108},"\"gz::sim::systems::DiffDrive\"",[84,16518,2517],{"class":118},[84,16520,16521,16523,16525,16528,16530],{"class":86,"line":130},[84,16522,2723],{"class":118},[84,16524,16381],{"class":2505},[84,16526,16527],{"class":118},">left_joint\u003C/",[84,16529,16381],{"class":2505},[84,16531,2517],{"class":118},[84,16533,16534,16536,16538,16541,16543],{"class":86,"line":136},[84,16535,2723],{"class":118},[84,16537,16389],{"class":2505},[84,16539,16540],{"class":118},">right_joint\u003C/",[84,16542,16389],{"class":2505},[84,16544,2517],{"class":118},[84,16546,16547,16549,16551,16554,16556],{"class":86,"line":148},[84,16548,2723],{"class":118},[84,16550,16397],{"class":2505},[84,16552,16553],{"class":118},">0.2097\u003C/",[84,16555,16397],{"class":2505},[84,16557,2517],{"class":118},[84,16559,16560,16562,16565,16568,16570],{"class":86,"line":153},[84,16561,2723],{"class":118},[84,16563,16564],{"class":2505},"wheel_radius",[84,16566,16567],{"class":118},">0.03415\u003C/",[84,16569,16564],{"class":2505},[84,16571,2517],{"class":118},[84,16573,16574,16576,16579,16582,16584],{"class":86,"line":159},[84,16575,2723],{"class":118},[84,16577,16578],{"class":2505},"odom_publish_frequency",[84,16580,16581],{"class":118},">10\u003C/",[84,16583,16578],{"class":2505},[84,16585,2517],{"class":118},[84,16587,16588,16590,16593,16596,16598],{"class":86,"line":406},[84,16589,2723],{"class":118},[84,16591,16592],{"class":2505},"frame_id",[84,16594,16595],{"class":118},">odom\u003C/",[84,16597,16592],{"class":2505},[84,16599,2517],{"class":118},[84,16601,16602,16604,16607,16610,16612],{"class":86,"line":412},[84,16603,2723],{"class":118},[84,16605,16606],{"class":2505},"child_frame_id",[84,16608,16609],{"class":118},">base_footprint\u003C/",[84,16611,16606],{"class":2505},[84,16613,2517],{"class":118},[84,16615,16616,16618,16621,16624,16626],{"class":86,"line":418},[84,16617,2723],{"class":118},[84,16619,16620],{"class":2505},"topic",[84,16622,16623],{"class":118},">/cmd_vel\u003C/",[84,16625,16620],{"class":2505},[84,16627,2517],{"class":118},[84,16629,16630,16632,16635,16637,16639],{"class":86,"line":424},[84,16631,2723],{"class":118},[84,16633,16634],{"class":2505},"max_linear_acceleration",[84,16636,16581],{"class":118},[84,16638,16634],{"class":2505},[84,16640,2517],{"class":118},[84,16642,16643,16645,16648,16651,16653],{"class":86,"line":1782},[84,16644,2723],{"class":118},[84,16646,16647],{"class":2505},"min_linear_acceleration",[84,16649,16650],{"class":118},">-10\u003C/",[84,16652,16647],{"class":2505},[84,16654,2517],{"class":118},[84,16656,16657,16659,16662,16664,16666],{"class":86,"line":1794},[84,16658,2723],{"class":118},[84,16660,16661],{"class":2505},"max_angular_acceleration",[84,16663,16581],{"class":118},[84,16665,16661],{"class":2505},[84,16667,2517],{"class":118},[84,16669,16670,16672,16675,16677,16679],{"class":86,"line":1799},[84,16671,2723],{"class":118},[84,16673,16674],{"class":2505},"min_angular_acceleration",[84,16676,16650],{"class":118},[84,16678,16674],{"class":2505},[84,16680,2517],{"class":118},[84,16682,16683,16685,16688,16691,16693],{"class":86,"line":1816},[84,16684,2723],{"class":118},[84,16686,16687],{"class":2505},"max_linear_velocity",[84,16689,16690],{"class":118},">0.5\u003C/",[84,16692,16687],{"class":2505},[84,16694,2517],{"class":118},[84,16696,16697,16699,16702,16705,16707],{"class":86,"line":1831},[84,16698,2723],{"class":118},[84,16700,16701],{"class":2505},"min_linear_velocity",[84,16703,16704],{"class":118},">-0.5\u003C/",[84,16706,16701],{"class":2505},[84,16708,2517],{"class":118},[84,16710,16711,16713,16716,16718,16720],{"class":86,"line":1853},[84,16712,2723],{"class":118},[84,16714,16715],{"class":2505},"max_angular_velocity",[84,16717,3110],{"class":118},[84,16719,16715],{"class":2505},[84,16721,2517],{"class":118},[84,16723,16724,16726,16729,16732,16734],{"class":86,"line":1858},[84,16725,2723],{"class":118},[84,16727,16728],{"class":2505},"min_angular_velocity",[84,16730,16731],{"class":118},">-1\u003C/",[84,16733,16728],{"class":2505},[84,16735,2517],{"class":118},[84,16737,16738,16740,16742],{"class":86,"line":1869},[84,16739,2783],{"class":118},[84,16741,3143],{"class":2505},[84,16743,2517],{"class":118},[84,16745,16746],{"class":86,"line":1875},[84,16747,91],{"emptyLinePlaceholder":90},[84,16749,16750,16752,16754],{"class":86,"line":1893},[84,16751,2629],{"class":118},[84,16753,15177],{"class":2505},[84,16755,2517],{"class":118},[84,16757,16758],{"class":86,"line":1905},[84,16759,91],{"emptyLinePlaceholder":90},[84,16761,16762,16764,16766],{"class":86,"line":1923},[84,16763,2522],{"class":118},[84,16765,15177],{"class":2505},[84,16767,2517],{"class":118},[84,16769,16770,16772,16774,16776,16778],{"class":86,"line":1929},[84,16771,2539],{"class":118},[84,16773,3143],{"class":2505},[84,16775,3153],{"class":104},[84,16777,1805],{"class":118},[84,16779,16780],{"class":108},"\"gz-sim-joint-state-publisher-system\"\n",[84,16782,16783,16786,16788,16791],{"class":86,"line":1935},[84,16784,16785],{"class":104},"      name",[84,16787,1805],{"class":118},[84,16789,16790],{"class":108},"\"gz::sim::systems::JointStatePublisher\"",[84,16792,2517],{"class":118},[84,16794,16795,16797,16799],{"class":86,"line":1940},[84,16796,2620],{"class":118},[84,16798,3143],{"class":2505},[84,16800,2517],{"class":118},[84,16802,16803,16805,16807],{"class":86,"line":1946},[84,16804,2629],{"class":118},[84,16806,15177],{"class":2505},[84,16808,2517],{"class":118},[15,16810,16811,16812,16476],{},"4轮差速车的话，在",[81,16813,16475],{},[74,16815,16817],{"className":2493,"code":16816,"language":2495,"meta":79,"style":79},"\n\u003Cgazebo>\n    \u003Cplugin\n        filename=\"gz-sim-diff-drive-system\"\n        name=\"gz::sim::systems::DiffDrive\">\n        \u003Cleft_joint>left_former_joint\u003C/left_joint>\n        \u003Cleft_joint>left_rear_joint\u003C/left_joint>\n        \u003Cright_joint>right_former_joint\u003C/right_joint>\n        \u003Cright_joint>right_rear_joint\u003C/right_joint>\n        \u003Cwheel_separation>0.4\u003C/wheel_separation>\n        \u003Cwheel_radius>0.0415\u003C/wheel_radius>\n        \u003Codom_publish_frequency>50\u003C/odom_publish_frequency>\n        \u003Cframe_id>odom\u003C/frame_id>\n        \u003Cchild_frame_id>base_footprint\u003C/child_frame_id>\n        \u003Ctopic>/cmd_vel\u003C/topic>\n        \u003Cmax_linear_acceleration>10\u003C/max_linear_acceleration>\n        \u003Cmin_linear_acceleration>-10\u003C/min_linear_acceleration>\n        \u003Cmax_angular_acceleration>10\u003C/max_angular_acceleration>\n        \u003Cmin_angular_acceleration>-10\u003C/min_angular_acceleration>\n        \u003Cmax_linear_velocity>0.5\u003C/max_linear_velocity>\n        \u003Cmin_linear_velocity>-0.5\u003C/min_linear_velocity>\n        \u003Cmax_angular_velocity>1\u003C/max_angular_velocity>\n        \u003Cmin_angular_velocity>-1\u003C/min_angular_velocity>\n      \u003C/plugin>\n  \u003C/gazebo>\n\n  \u003Cgazebo>\n    \u003Cplugin filename=\"gz-sim-joint-state-publisher-system\"\n      name=\"gz::sim::systems::JointStatePublisher\">\n    \u003C/plugin>\n  \u003C/gazebo>\n",[81,16818,16819,16823,16831,16838,16847,16857,16870,16883,16896,16909,16922,16935,16948,16960,16972,16984,16996,17008,17020,17032,17044,17056,17068,17080,17088,17096,17100,17108,17120,17130,17138],{"__ignoreMap":79},[84,16820,16821],{"class":86,"line":87},[84,16822,91],{"emptyLinePlaceholder":90},[84,16824,16825,16827,16829],{"class":86,"line":94},[84,16826,2502],{"class":118},[84,16828,15177],{"class":2505},[84,16830,2517],{"class":118},[84,16832,16833,16835],{"class":86,"line":101},[84,16834,2539],{"class":118},[84,16836,16837],{"class":2505},"plugin\n",[84,16839,16840,16843,16845],{"class":86,"line":125},[84,16841,16842],{"class":104},"        filename",[84,16844,1805],{"class":118},[84,16846,16506],{"class":108},[84,16848,16849,16851,16853,16855],{"class":86,"line":130},[84,16850,16511],{"class":104},[84,16852,1805],{"class":118},[84,16854,16516],{"class":108},[84,16856,2517],{"class":118},[84,16858,16859,16861,16863,16866,16868],{"class":86,"line":136},[84,16860,2723],{"class":118},[84,16862,16381],{"class":2505},[84,16864,16865],{"class":118},">left_former_joint\u003C/",[84,16867,16381],{"class":2505},[84,16869,2517],{"class":118},[84,16871,16872,16874,16876,16879,16881],{"class":86,"line":148},[84,16873,2723],{"class":118},[84,16875,16381],{"class":2505},[84,16877,16878],{"class":118},">left_rear_joint\u003C/",[84,16880,16381],{"class":2505},[84,16882,2517],{"class":118},[84,16884,16885,16887,16889,16892,16894],{"class":86,"line":153},[84,16886,2723],{"class":118},[84,16888,16389],{"class":2505},[84,16890,16891],{"class":118},">right_former_joint\u003C/",[84,16893,16389],{"class":2505},[84,16895,2517],{"class":118},[84,16897,16898,16900,16902,16905,16907],{"class":86,"line":159},[84,16899,2723],{"class":118},[84,16901,16389],{"class":2505},[84,16903,16904],{"class":118},">right_rear_joint\u003C/",[84,16906,16389],{"class":2505},[84,16908,2517],{"class":118},[84,16910,16911,16913,16915,16918,16920],{"class":86,"line":406},[84,16912,2723],{"class":118},[84,16914,16397],{"class":2505},[84,16916,16917],{"class":118},">0.4\u003C/",[84,16919,16397],{"class":2505},[84,16921,2517],{"class":118},[84,16923,16924,16926,16928,16931,16933],{"class":86,"line":412},[84,16925,2723],{"class":118},[84,16927,16564],{"class":2505},[84,16929,16930],{"class":118},">0.0415\u003C/",[84,16932,16564],{"class":2505},[84,16934,2517],{"class":118},[84,16936,16937,16939,16941,16944,16946],{"class":86,"line":418},[84,16938,2723],{"class":118},[84,16940,16578],{"class":2505},[84,16942,16943],{"class":118},">50\u003C/",[84,16945,16578],{"class":2505},[84,16947,2517],{"class":118},[84,16949,16950,16952,16954,16956,16958],{"class":86,"line":424},[84,16951,2723],{"class":118},[84,16953,16592],{"class":2505},[84,16955,16595],{"class":118},[84,16957,16592],{"class":2505},[84,16959,2517],{"class":118},[84,16961,16962,16964,16966,16968,16970],{"class":86,"line":1782},[84,16963,2723],{"class":118},[84,16965,16606],{"class":2505},[84,16967,16609],{"class":118},[84,16969,16606],{"class":2505},[84,16971,2517],{"class":118},[84,16973,16974,16976,16978,16980,16982],{"class":86,"line":1794},[84,16975,2723],{"class":118},[84,16977,16620],{"class":2505},[84,16979,16623],{"class":118},[84,16981,16620],{"class":2505},[84,16983,2517],{"class":118},[84,16985,16986,16988,16990,16992,16994],{"class":86,"line":1799},[84,16987,2723],{"class":118},[84,16989,16634],{"class":2505},[84,16991,16581],{"class":118},[84,16993,16634],{"class":2505},[84,16995,2517],{"class":118},[84,16997,16998,17000,17002,17004,17006],{"class":86,"line":1816},[84,16999,2723],{"class":118},[84,17001,16647],{"class":2505},[84,17003,16650],{"class":118},[84,17005,16647],{"class":2505},[84,17007,2517],{"class":118},[84,17009,17010,17012,17014,17016,17018],{"class":86,"line":1831},[84,17011,2723],{"class":118},[84,17013,16661],{"class":2505},[84,17015,16581],{"class":118},[84,17017,16661],{"class":2505},[84,17019,2517],{"class":118},[84,17021,17022,17024,17026,17028,17030],{"class":86,"line":1853},[84,17023,2723],{"class":118},[84,17025,16674],{"class":2505},[84,17027,16650],{"class":118},[84,17029,16674],{"class":2505},[84,17031,2517],{"class":118},[84,17033,17034,17036,17038,17040,17042],{"class":86,"line":1858},[84,17035,2723],{"class":118},[84,17037,16687],{"class":2505},[84,17039,16690],{"class":118},[84,17041,16687],{"class":2505},[84,17043,2517],{"class":118},[84,17045,17046,17048,17050,17052,17054],{"class":86,"line":1869},[84,17047,2723],{"class":118},[84,17049,16701],{"class":2505},[84,17051,16704],{"class":118},[84,17053,16701],{"class":2505},[84,17055,2517],{"class":118},[84,17057,17058,17060,17062,17064,17066],{"class":86,"line":1875},[84,17059,2723],{"class":118},[84,17061,16715],{"class":2505},[84,17063,3110],{"class":118},[84,17065,16715],{"class":2505},[84,17067,2517],{"class":118},[84,17069,17070,17072,17074,17076,17078],{"class":86,"line":1893},[84,17071,2723],{"class":118},[84,17073,16728],{"class":2505},[84,17075,16731],{"class":118},[84,17077,16728],{"class":2505},[84,17079,2517],{"class":118},[84,17081,17082,17084,17086],{"class":86,"line":1905},[84,17083,2783],{"class":118},[84,17085,3143],{"class":2505},[84,17087,2517],{"class":118},[84,17089,17090,17092,17094],{"class":86,"line":1923},[84,17091,2629],{"class":118},[84,17093,15177],{"class":2505},[84,17095,2517],{"class":118},[84,17097,17098],{"class":86,"line":1929},[84,17099,91],{"emptyLinePlaceholder":90},[84,17101,17102,17104,17106],{"class":86,"line":1935},[84,17103,2522],{"class":118},[84,17105,15177],{"class":2505},[84,17107,2517],{"class":118},[84,17109,17110,17112,17114,17116,17118],{"class":86,"line":1940},[84,17111,2539],{"class":118},[84,17113,3143],{"class":2505},[84,17115,3153],{"class":104},[84,17117,1805],{"class":118},[84,17119,16780],{"class":108},[84,17121,17122,17124,17126,17128],{"class":86,"line":1946},[84,17123,16785],{"class":104},[84,17125,1805],{"class":118},[84,17127,16790],{"class":108},[84,17129,2517],{"class":118},[84,17131,17132,17134,17136],{"class":86,"line":1957},[84,17133,2620],{"class":118},[84,17135,3143],{"class":2505},[84,17137,2517],{"class":118},[84,17139,17140,17142,17144],{"class":86,"line":1971},[84,17141,2629],{"class":118},[84,17143,15177],{"class":2505},[84,17145,2517],{"class":118},[15,17147,17148,17149,17152],{},"我们这里肯定是4轮车，我创建了一个",[81,17150,17151],{},"move_control.urdf.xacro","专门存放运动控制类代码：",[74,17154,17156],{"className":2493,"code":17155,"language":2495,"meta":79,"style":79},"\n\u003Crobot name=\"car\" xmlns:xacro=\"http://wiki.ros.org/xacro\">\n    \u003C!-- 运动控制插件 -->\n    \u003Cgazebo>\n        \u003Cplugin\n            filename=\"gz-sim-diff-drive-system\"\n            name=\"gz::sim::systems::DiffDrive\">\n            \u003Cleft_joint>left_front2baselink\u003C/left_joint>\n            \u003Cleft_joint>left_back2baselink\u003C/left_joint>\n            \u003Cright_joint>right_front2baselink\u003C/right_joint>\n            \u003Cright_joint>right_back2baselink\u003C/right_joint>\n            \u003C!-- wheel_separation轮距 是左右轮中心线之间的距离：0.06 - (-0.06) = 0.12m -->\n            \u003Cwheel_separation>0.12\u003C/wheel_separation>\n            \u003Cwheel_radius>0.025\u003C/wheel_radius>\n            \u003Codom_publish_frequency>50\u003C/odom_publish_frequency>\n            \u003Cframe_id>odom\u003C/frame_id>\n            \u003Cchild_frame_id>base_footprint\u003C/child_frame_id>\n            \u003Ctopic>/cmd_vel\u003C/topic>\n            \u003Cmax_linear_acceleration>10\u003C/max_linear_acceleration>\n            \u003Cmin_linear_acceleration>-10\u003C/min_linear_acceleration>\n            \u003Cmax_angular_acceleration>10\u003C/max_angular_acceleration>\n            \u003Cmin_angular_acceleration>-10\u003C/min_angular_acceleration>\n            \u003Cmax_linear_velocity>0.5\u003C/max_linear_velocity>\n            \u003Cmin_linear_velocity>-0.5\u003C/min_linear_velocity>\n            \u003Cmax_angular_velocity>1\u003C/max_angular_velocity>\n            \u003Cmin_angular_velocity>-1\u003C/min_angular_velocity>\n        \u003C/plugin>\n    \u003C/gazebo>\n    \u003C!-- 关节状态发布 -->\n    \u003Cgazebo>\n        \u003Cplugin filename=\"gz-sim-joint-state-publisher-system\"\n        name=\"gz::sim::systems::JointStatePublisher\">\n        \u003C/plugin>\n    \u003C/gazebo>\n\u003C/robot>\n\n\n",[81,17157,17158,17162,17182,17187,17195,17201,17210,17221,17234,17247,17260,17273,17278,17291,17304,17316,17328,17340,17352,17364,17376,17388,17400,17412,17424,17436,17448,17456,17464,17469,17477,17489,17499,17507,17515],{"__ignoreMap":79},[84,17159,17160],{"class":86,"line":87},[84,17161,91],{"emptyLinePlaceholder":90},[84,17163,17164,17166,17168,17170,17172,17174,17176,17178,17180],{"class":86,"line":94},[84,17165,2502],{"class":118},[84,17167,2506],{"class":2505},[84,17169,2509],{"class":104},[84,17171,1805],{"class":118},[84,17173,15396],{"class":108},[84,17175,2660],{"class":104},[84,17177,1805],{"class":118},[84,17179,13548],{"class":108},[84,17181,2517],{"class":118},[84,17183,17184],{"class":86,"line":101},[84,17185,17186],{"class":97},"    \u003C!-- 运动控制插件 -->\n",[84,17188,17189,17191,17193],{"class":86,"line":125},[84,17190,2539],{"class":118},[84,17192,15177],{"class":2505},[84,17194,2517],{"class":118},[84,17196,17197,17199],{"class":86,"line":130},[84,17198,2723],{"class":118},[84,17200,16837],{"class":2505},[84,17202,17203,17206,17208],{"class":86,"line":136},[84,17204,17205],{"class":104},"            filename",[84,17207,1805],{"class":118},[84,17209,16506],{"class":108},[84,17211,17212,17215,17217,17219],{"class":86,"line":148},[84,17213,17214],{"class":104},"            name",[84,17216,1805],{"class":118},[84,17218,16516],{"class":108},[84,17220,2517],{"class":118},[84,17222,17223,17225,17227,17230,17232],{"class":86,"line":153},[84,17224,3403],{"class":118},[84,17226,16381],{"class":2505},[84,17228,17229],{"class":118},">left_front2baselink\u003C/",[84,17231,16381],{"class":2505},[84,17233,2517],{"class":118},[84,17235,17236,17238,17240,17243,17245],{"class":86,"line":159},[84,17237,3403],{"class":118},[84,17239,16381],{"class":2505},[84,17241,17242],{"class":118},">left_back2baselink\u003C/",[84,17244,16381],{"class":2505},[84,17246,2517],{"class":118},[84,17248,17249,17251,17253,17256,17258],{"class":86,"line":406},[84,17250,3403],{"class":118},[84,17252,16389],{"class":2505},[84,17254,17255],{"class":118},">right_front2baselink\u003C/",[84,17257,16389],{"class":2505},[84,17259,2517],{"class":118},[84,17261,17262,17264,17266,17269,17271],{"class":86,"line":412},[84,17263,3403],{"class":118},[84,17265,16389],{"class":2505},[84,17267,17268],{"class":118},">right_back2baselink\u003C/",[84,17270,16389],{"class":2505},[84,17272,2517],{"class":118},[84,17274,17275],{"class":86,"line":418},[84,17276,17277],{"class":97},"            \u003C!-- wheel_separation轮距 是左右轮中心线之间的距离：0.06 - (-0.06) = 0.12m -->\n",[84,17279,17280,17282,17284,17287,17289],{"class":86,"line":424},[84,17281,3403],{"class":118},[84,17283,16397],{"class":2505},[84,17285,17286],{"class":118},">0.12\u003C/",[84,17288,16397],{"class":2505},[84,17290,2517],{"class":118},[84,17292,17293,17295,17297,17300,17302],{"class":86,"line":1782},[84,17294,3403],{"class":118},[84,17296,16564],{"class":2505},[84,17298,17299],{"class":118},">0.025\u003C/",[84,17301,16564],{"class":2505},[84,17303,2517],{"class":118},[84,17305,17306,17308,17310,17312,17314],{"class":86,"line":1794},[84,17307,3403],{"class":118},[84,17309,16578],{"class":2505},[84,17311,16943],{"class":118},[84,17313,16578],{"class":2505},[84,17315,2517],{"class":118},[84,17317,17318,17320,17322,17324,17326],{"class":86,"line":1799},[84,17319,3403],{"class":118},[84,17321,16592],{"class":2505},[84,17323,16595],{"class":118},[84,17325,16592],{"class":2505},[84,17327,2517],{"class":118},[84,17329,17330,17332,17334,17336,17338],{"class":86,"line":1816},[84,17331,3403],{"class":118},[84,17333,16606],{"class":2505},[84,17335,16609],{"class":118},[84,17337,16606],{"class":2505},[84,17339,2517],{"class":118},[84,17341,17342,17344,17346,17348,17350],{"class":86,"line":1831},[84,17343,3403],{"class":118},[84,17345,16620],{"class":2505},[84,17347,16623],{"class":118},[84,17349,16620],{"class":2505},[84,17351,2517],{"class":118},[84,17353,17354,17356,17358,17360,17362],{"class":86,"line":1853},[84,17355,3403],{"class":118},[84,17357,16634],{"class":2505},[84,17359,16581],{"class":118},[84,17361,16634],{"class":2505},[84,17363,2517],{"class":118},[84,17365,17366,17368,17370,17372,17374],{"class":86,"line":1858},[84,17367,3403],{"class":118},[84,17369,16647],{"class":2505},[84,17371,16650],{"class":118},[84,17373,16647],{"class":2505},[84,17375,2517],{"class":118},[84,17377,17378,17380,17382,17384,17386],{"class":86,"line":1869},[84,17379,3403],{"class":118},[84,17381,16661],{"class":2505},[84,17383,16581],{"class":118},[84,17385,16661],{"class":2505},[84,17387,2517],{"class":118},[84,17389,17390,17392,17394,17396,17398],{"class":86,"line":1875},[84,17391,3403],{"class":118},[84,17393,16674],{"class":2505},[84,17395,16650],{"class":118},[84,17397,16674],{"class":2505},[84,17399,2517],{"class":118},[84,17401,17402,17404,17406,17408,17410],{"class":86,"line":1893},[84,17403,3403],{"class":118},[84,17405,16687],{"class":2505},[84,17407,16690],{"class":118},[84,17409,16687],{"class":2505},[84,17411,2517],{"class":118},[84,17413,17414,17416,17418,17420,17422],{"class":86,"line":1905},[84,17415,3403],{"class":118},[84,17417,16701],{"class":2505},[84,17419,16704],{"class":118},[84,17421,16701],{"class":2505},[84,17423,2517],{"class":118},[84,17425,17426,17428,17430,17432,17434],{"class":86,"line":1923},[84,17427,3403],{"class":118},[84,17429,16715],{"class":2505},[84,17431,3110],{"class":118},[84,17433,16715],{"class":2505},[84,17435,2517],{"class":118},[84,17437,17438,17440,17442,17444,17446],{"class":86,"line":1929},[84,17439,3403],{"class":118},[84,17441,16728],{"class":2505},[84,17443,16731],{"class":118},[84,17445,16728],{"class":2505},[84,17447,2517],{"class":118},[84,17449,17450,17452,17454],{"class":86,"line":1935},[84,17451,2959],{"class":118},[84,17453,3143],{"class":2505},[84,17455,2517],{"class":118},[84,17457,17458,17460,17462],{"class":86,"line":1940},[84,17459,2620],{"class":118},[84,17461,15177],{"class":2505},[84,17463,2517],{"class":118},[84,17465,17466],{"class":86,"line":1946},[84,17467,17468],{"class":97},"    \u003C!-- 关节状态发布 -->\n",[84,17470,17471,17473,17475],{"class":86,"line":1957},[84,17472,2539],{"class":118},[84,17474,15177],{"class":2505},[84,17476,2517],{"class":118},[84,17478,17479,17481,17483,17485,17487],{"class":86,"line":1971},[84,17480,2723],{"class":118},[84,17482,3143],{"class":2505},[84,17484,3153],{"class":104},[84,17486,1805],{"class":118},[84,17488,16780],{"class":108},[84,17490,17491,17493,17495,17497],{"class":86,"line":1983},[84,17492,16511],{"class":104},[84,17494,1805],{"class":118},[84,17496,16790],{"class":108},[84,17498,2517],{"class":118},[84,17500,17501,17503,17505],{"class":86,"line":2010},[84,17502,2959],{"class":118},[84,17504,3143],{"class":2505},[84,17506,2517],{"class":118},[84,17508,17509,17511,17513],{"class":86,"line":2026},[84,17510,2620],{"class":118},[84,17512,15177],{"class":2505},[84,17514,2517],{"class":118},[84,17516,17517,17519,17521],{"class":86,"line":2031},[84,17518,2638],{"class":118},[84,17520,2506],{"class":2505},[84,17522,2517],{"class":118},[15,17524,17525],{},[19,17526,17527],{},"修改launch文件",[15,17529,17530],{},"修改gazebo_sim_robot_world.launch.py文件，修改后的代码如下：",[74,17532,17534],{"className":1655,"code":17533,"language":1657,"meta":79,"style":79},"import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory(\"demo_gazebo_sim\")\n    mycar_desc_pkg = get_package_share_directory(\"mycar_description\")\n    pkg_ros_gz_sim = get_package_share_directory(\"ros_gz_sim\")\n    world_file = os.path.join(this_pkg,\"world\",\"house.sdf\")\n\n    gz_sim = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(pkg_ros_gz_sim, \"launch\", \"gz_sim.launch.py\")),\n        launch_arguments={\n            \"gz_args\": \"-r \" + world_file\n        }.items(),\n    )\n    mycar_desc = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(mycar_desc_pkg,\"launch\",\"mycar_desc_sim.launch.py\")\n        )\n    )\n    spawn = Node(package=\"ros_gz_sim\", executable=\"create\",\n                arguments=[\n                \"-name\", \"mycar\",\n                \"-x\", \"-4\",\n                \"-z\", \"0.01\", #设置为0,可能会陷进地里\n                \"-y\", \"0\",\n                \"-R\", \"0\",\n                \"-P\", \"0\",\n                \"-Y\", \"1.57\",   #逆时针旋转90度\n                \"-topic\", \"/robot_description\"],\n            output=\"screen\")\n\n    # Bridge\n    bridge = Node(\n        package=\"ros_gz_bridge\",\n        executable=\"parameter_bridge\",\n        arguments=[\"/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist\",\n                   \"/model/mycar/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry\",\n                   \"/model/mycar/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V\",\n                   \"/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock\",\n                   \"/world/empty/model/mycar/joint_state@sensor_msgs/msg/JointState[gz.msgs.Model\",\n                   ],\n        parameters=[{\"qos_overrides./model/mycar.subscriber.reliability\": \"reliable\"}],\n        remappings=[\n                (\"/model/mycar/tf\", \"/tf\"),\n                (\"/world/empty/model/mycar/joint_state\",\"joint_states\"),\n                (\"/model/mycar/odometry\",\"/odom\")\n            ],\n        output=\"screen\"\n    )\n\n    return LaunchDescription([\n        gz_sim,\n        spawn,\n        mycar_desc,\n        bridge\n    ])\n",[81,17535,17536,17542,17546,17556,17560,17570,17580,17590,17600,17604,17612,17616,17628,17640,17652,17668,17672,17680,17684,17696,17704,17716,17720,17724,17732,17736,17748,17752,17756,17780,17788,17798,17809,17821,17831,17841,17851,17865,17875,17885,17889,17893,17901,17912,17923,17936,17943,17950,17957,17964,17968,17986,17994,18008,18022,18036,18040,18049,18053,18057,18063,18067,18071,18075,18080],{"__ignoreMap":79},[84,17537,17538,17540],{"class":86,"line":87},[84,17539,1664],{"class":734},[84,17541,1667],{"class":118},[84,17543,17544],{"class":86,"line":94},[84,17545,91],{"emptyLinePlaceholder":90},[84,17547,17548,17550,17552,17554],{"class":86,"line":101},[84,17549,1676],{"class":734},[84,17551,1679],{"class":118},[84,17553,1664],{"class":734},[84,17555,1684],{"class":118},[84,17557,17558],{"class":86,"line":125},[84,17559,91],{"emptyLinePlaceholder":90},[84,17561,17562,17564,17566,17568],{"class":86,"line":130},[84,17563,1676],{"class":734},[84,17565,1695],{"class":118},[84,17567,1664],{"class":734},[84,17569,1700],{"class":118},[84,17571,17572,17574,17576,17578],{"class":86,"line":136},[84,17573,1676],{"class":734},[84,17575,1707],{"class":118},[84,17577,1664],{"class":734},[84,17579,1723],{"class":118},[84,17581,17582,17584,17586,17588],{"class":86,"line":148},[84,17583,1676],{"class":734},[84,17585,1742],{"class":118},[84,17587,1664],{"class":734},[84,17589,1747],{"class":118},[84,17591,17592,17594,17596,17598],{"class":86,"line":153},[84,17593,1676],{"class":734},[84,17595,1770],{"class":118},[84,17597,1664],{"class":734},[84,17599,1775],{"class":118},[84,17601,17602],{"class":86,"line":159},[84,17603,91],{"emptyLinePlaceholder":90},[84,17605,17606,17608,17610],{"class":86,"line":406},[84,17607,1785],{"class":734},[84,17609,1788],{"class":104},[84,17611,1791],{"class":118},[84,17613,17614],{"class":86,"line":412},[84,17615,91],{"emptyLinePlaceholder":90},[84,17617,17618,17620,17622,17624,17626],{"class":86,"line":418},[84,17619,1802],{"class":118},[84,17621,1805],{"class":734},[84,17623,1808],{"class":118},[84,17625,15830],{"class":108},[84,17627,1574],{"class":118},[84,17629,17630,17632,17634,17636,17638],{"class":86,"line":424},[84,17631,15837],{"class":118},[84,17633,1805],{"class":734},[84,17635,1808],{"class":118},[84,17637,15568],{"class":108},[84,17639,1574],{"class":118},[84,17641,17642,17644,17646,17648,17650],{"class":86,"line":1782},[84,17643,1819],{"class":118},[84,17645,1805],{"class":734},[84,17647,1808],{"class":118},[84,17649,15856],{"class":108},[84,17651,1574],{"class":118},[84,17653,17654,17656,17658,17660,17662,17664,17666],{"class":86,"line":1794},[84,17655,1834],{"class":118},[84,17657,1805],{"class":734},[84,17659,1839],{"class":118},[84,17661,9325],{"class":108},[84,17663,1845],{"class":118},[84,17665,9330],{"class":108},[84,17667,1574],{"class":118},[84,17669,17670],{"class":86,"line":1799},[84,17671,91],{"emptyLinePlaceholder":90},[84,17673,17674,17676,17678],{"class":86,"line":1816},[84,17675,1861],{"class":118},[84,17677,1805],{"class":734},[84,17679,1866],{"class":118},[84,17681,17682],{"class":86,"line":1831},[84,17683,1872],{"class":118},[84,17685,17686,17688,17690,17692,17694],{"class":86,"line":1853},[84,17687,1878],{"class":118},[84,17689,15897],{"class":108},[84,17691,1884],{"class":118},[84,17693,15902],{"class":108},[84,17695,1890],{"class":118},[84,17697,17698,17700,17702],{"class":86,"line":1858},[84,17699,1897],{"class":1896},[84,17701,1805],{"class":734},[84,17703,1902],{"class":118},[84,17705,17706,17708,17710,17712,17714],{"class":86,"line":1869},[84,17707,15917],{"class":108},[84,17709,1911],{"class":118},[84,17711,15922],{"class":108},[84,17713,1917],{"class":734},[84,17715,1920],{"class":118},[84,17717,17718],{"class":86,"line":1875},[84,17719,1926],{"class":118},[84,17721,17722],{"class":86,"line":1893},[84,17723,1932],{"class":118},[84,17725,17726,17728,17730],{"class":86,"line":1905},[84,17727,15939],{"class":118},[84,17729,1805],{"class":734},[84,17731,1866],{"class":118},[84,17733,17734],{"class":86,"line":1923},[84,17735,1872],{"class":118},[84,17737,17738,17740,17742,17744,17746],{"class":86,"line":1929},[84,17739,15952],{"class":118},[84,17741,15897],{"class":108},[84,17743,1845],{"class":118},[84,17745,15959],{"class":108},[84,17747,1574],{"class":118},[84,17749,17750],{"class":86,"line":1935},[84,17751,15966],{"class":118},[84,17753,17754],{"class":86,"line":1940},[84,17755,1932],{"class":118},[84,17757,17758,17760,17762,17764,17766,17768,17770,17772,17774,17776,17778],{"class":86,"line":1946},[84,17759,15975],{"class":118},[84,17761,1805],{"class":734},[84,17763,15980],{"class":118},[84,17765,15983],{"class":1896},[84,17767,1805],{"class":734},[84,17769,15856],{"class":108},[84,17771,1884],{"class":118},[84,17773,15992],{"class":1896},[84,17775,1805],{"class":734},[84,17777,15997],{"class":108},[84,17779,1968],{"class":118},[84,17781,17782,17784,17786],{"class":86,"line":1957},[84,17783,16004],{"class":1896},[84,17785,1805],{"class":734},[84,17787,2145],{"class":118},[84,17789,17790,17792,17794,17796],{"class":86,"line":1971},[84,17791,16013],{"class":108},[84,17793,1884],{"class":118},[84,17795,16018],{"class":108},[84,17797,1968],{"class":118},[84,17799,17800,17802,17804,17807],{"class":86,"line":1983},[84,17801,16025],{"class":108},[84,17803,1884],{"class":118},[84,17805,17806],{"class":108},"\"-4\"",[84,17808,1968],{"class":118},[84,17810,17811,17813,17815,17817,17819],{"class":86,"line":2010},[84,17812,16037],{"class":108},[84,17814,1884],{"class":118},[84,17816,16042],{"class":108},[84,17818,1884],{"class":118},[84,17820,16047],{"class":97},[84,17822,17823,17825,17827,17829],{"class":86,"line":2026},[84,17824,16052],{"class":108},[84,17826,1884],{"class":118},[84,17828,16030],{"class":108},[84,17830,1968],{"class":118},[84,17832,17833,17835,17837,17839],{"class":86,"line":2031},[84,17834,16063],{"class":108},[84,17836,1884],{"class":118},[84,17838,16030],{"class":108},[84,17840,1968],{"class":118},[84,17842,17843,17845,17847,17849],{"class":86,"line":2036},[84,17844,16074],{"class":108},[84,17846,1884],{"class":118},[84,17848,16030],{"class":108},[84,17850,1968],{"class":118},[84,17852,17853,17855,17857,17859,17862],{"class":86,"line":2042},[84,17854,16085],{"class":108},[84,17856,1884],{"class":118},[84,17858,16090],{"class":108},[84,17860,17861],{"class":118},",   ",[84,17863,17864],{"class":97},"#逆时针旋转90度\n",[84,17866,17867,17869,17871,17873],{"class":86,"line":2052},[84,17868,16100],{"class":108},[84,17870,1884],{"class":118},[84,17872,16105],{"class":108},[84,17874,16108],{"class":118},[84,17876,17877,17879,17881,17883],{"class":86,"line":2065},[84,17878,16113],{"class":1896},[84,17880,1805],{"class":734},[84,17882,16118],{"class":108},[84,17884,1574],{"class":118},[84,17886,17887],{"class":86,"line":2078},[84,17888,91],{"emptyLinePlaceholder":90},[84,17890,17891],{"class":86,"line":2093},[84,17892,2039],{"class":97},[84,17894,17895,17897,17899],{"class":86,"line":2101},[84,17896,2045],{"class":118},[84,17898,1805],{"class":734},[84,17900,1954],{"class":118},[84,17902,17903,17905,17907,17910],{"class":86,"line":2109},[84,17904,2055],{"class":1896},[84,17906,1805],{"class":734},[84,17908,17909],{"class":108},"\"ros_gz_bridge\"",[84,17911,1968],{"class":118},[84,17913,17914,17916,17918,17921],{"class":86,"line":2115},[84,17915,2068],{"class":1896},[84,17917,1805],{"class":734},[84,17919,17920],{"class":108},"\"parameter_bridge\"",[84,17922,1968],{"class":118},[84,17924,17925,17927,17929,17931,17934],{"class":86,"line":2137},[84,17926,2081],{"class":1896},[84,17928,1805],{"class":734},[84,17930,768],{"class":118},[84,17932,17933],{"class":108},"\"/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist\"",[84,17935,1968],{"class":118},[84,17937,17938,17941],{"class":86,"line":2148},[84,17939,17940],{"class":108},"                   \"/model/mycar/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry\"",[84,17942,1968],{"class":118},[84,17944,17945,17948],{"class":86,"line":2165},[84,17946,17947],{"class":108},"                   \"/model/mycar/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V\"",[84,17949,1968],{"class":118},[84,17951,17952,17955],{"class":86,"line":2180},[84,17953,17954],{"class":108},"                   \"/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock\"",[84,17956,1968],{"class":118},[84,17958,17959,17962],{"class":86,"line":2186},[84,17960,17961],{"class":108},"                   \"/world/empty/model/mycar/joint_state@sensor_msgs/msg/JointState[gz.msgs.Model\"",[84,17963,1968],{"class":118},[84,17965,17966],{"class":86,"line":2197},[84,17967,2112],{"class":118},[84,17969,17970,17972,17974,17976,17979,17981,17984],{"class":86,"line":2202},[84,17971,2118],{"class":1896},[84,17973,1805],{"class":734},[84,17975,2123],{"class":118},[84,17977,17978],{"class":108},"\"qos_overrides./model/mycar.subscriber.reliability\"",[84,17980,1911],{"class":118},[84,17982,17983],{"class":108},"\"reliable\"",[84,17985,2134],{"class":118},[84,17987,17988,17990,17992],{"class":86,"line":2207},[84,17989,2140],{"class":1896},[84,17991,1805],{"class":734},[84,17993,2145],{"class":118},[84,17995,17996,17998,18001,18003,18006],{"class":86,"line":2216},[84,17997,2151],{"class":118},[84,17999,18000],{"class":108},"\"/model/mycar/tf\"",[84,18002,1884],{"class":118},[84,18004,18005],{"class":108},"\"/tf\"",[84,18007,2162],{"class":118},[84,18009,18010,18012,18015,18017,18020],{"class":86,"line":2222},[84,18011,2151],{"class":118},[84,18013,18014],{"class":108},"\"/world/empty/model/mycar/joint_state\"",[84,18016,1845],{"class":118},[84,18018,18019],{"class":108},"\"joint_states\"",[84,18021,2162],{"class":118},[84,18023,18024,18026,18029,18031,18034],{"class":86,"line":2242},[84,18025,2151],{"class":118},[84,18027,18028],{"class":108},"\"/model/mycar/odometry\"",[84,18030,1845],{"class":118},[84,18032,18033],{"class":108},"\"/odom\"",[84,18035,1574],{"class":118},[84,18037,18038],{"class":86,"line":2255},[84,18039,2183],{"class":118},[84,18041,18042,18044,18046],{"class":86,"line":2261},[84,18043,2189],{"class":1896},[84,18045,1805],{"class":734},[84,18047,18048],{"class":108},"\"screen\"\n",[84,18050,18051],{"class":86,"line":2267},[84,18052,1932],{"class":118},[84,18054,18055],{"class":86,"line":3757},[84,18056,91],{"emptyLinePlaceholder":90},[84,18058,18059,18061],{"class":86,"line":3770},[84,18060,2210],{"class":734},[84,18062,2213],{"class":118},[84,18064,18065],{"class":86,"line":3784},[84,18066,2219],{"class":118},[84,18068,18069],{"class":86,"line":3797},[84,18070,16139],{"class":118},[84,18072,18073],{"class":86,"line":3806},[84,18074,16144],{"class":118},[84,18076,18077],{"class":86,"line":3815},[84,18078,18079],{"class":118},"        bridge\n",[84,18081,18082],{"class":86,"line":3830},[84,18083,2270],{"class":118},[15,18085,18086],{},[19,18087,2283],{},[15,18089,2286],{},[74,18091,18092],{"className":76,"code":16157,"language":78,"meta":79,"style":79},[81,18093,18094],{"__ignoreMap":79},[84,18095,18096,18098,18100,18102,18104],{"class":86,"line":87},[84,18097,2296],{"class":104},[84,18099,2299],{"class":108},[84,18101,16168],{"class":548},[84,18103,13358],{"class":108},[84,18105,1540],{"class":108},[15,18107,18108],{},[19,18109,2314],{},[15,18111,2317],{},[74,18113,18115],{"className":76,"code":18114,"language":78,"meta":79,"style":79},". install/setup.bash\nros2 launch demo_gazebo_sim gazebo_sim_robot_world.launch.py\n",[81,18116,18117,18123],{"__ignoreMap":79},[84,18118,18119,18121],{"class":86,"line":87},[84,18120,2327],{"class":548},[84,18122,2330],{"class":108},[84,18124,18125,18127,18129,18131],{"class":86,"line":94},[84,18126,235],{"class":104},[84,18128,238],{"class":108},[84,18130,2339],{"class":108},[84,18132,16205],{"class":108},[15,18134,18135],{},"再启动键盘控制节点，就可以控制机器人运动了。",[74,18137,18138],{"className":76,"code":2348,"language":78,"meta":79,"style":79},[81,18139,18140],{"__ignoreMap":79},[84,18141,18142,18144,18146,18148],{"class":86,"line":87},[84,18143,235],{"class":104},[84,18145,632],{"class":108},[84,18147,680],{"class":108},[84,18149,2361],{"class":108},[15,18151,18152],{},"还可以启动rviz2，以查看里程计消息以及坐标变换。终端中进入当前工作空间，调用如下指令执行launch文件：",[15,18154,18155],{},"启动rviz2",[74,18157,18159],{"className":76,"code":18158,"language":78,"meta":79,"style":79},". install/setup.bash\nrviz2\n",[81,18160,18161,18167],{"__ignoreMap":79},[84,18162,18163,18165],{"class":86,"line":87},[84,18164,2327],{"class":548},[84,18166,2330],{"class":108},[84,18168,18169],{"class":86,"line":94},[84,18170,18171],{"class":104},"rviz2\n",[15,18173,18174],{},"RVIZ2软件配置如下图所示：",[15,18176,18177,18180],{},[172,18178],{"alt":79,"src":18179},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1735.webp",[172,18181],{"alt":79,"src":18182},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1736.webp",[15,18184,18185],{},[172,18186],{"alt":79,"src":18187},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1737.webp",[32,18189,18191],{"id":18190},"gz-sim仿真之传感器","Gz Sim仿真之传感器",[15,18193,18194,18195],{},"本节将介绍如何为仿真机器人添加雷达、相机等传感器。\n",[19,18196,18197],{},"添加传感器插件",[15,18199,18200,18201,18204,18205,18207,18208,18211],{},"在进行传感器模拟之前，需要先添加一个名为",[81,18202,18203],{},"gz-sim-sensors-system","的插件，打开urdf文件，在",[81,18206,16475],{},"根标签内添加如下代码：\n（建议创建一个",[81,18209,18210],{},"gazebo_sensor.urdf.xacro","专门存放）",[74,18213,18215],{"className":2493,"code":18214,"language":2495,"meta":79,"style":79},"\n\u003Cgazebo>\n    \u003Cplugin\n      filename=\"gz-sim-sensors-system\"\n      name=\"gz::sim::systems::Sensors\">\n      \u003Crender_engine>ogre2\u003C/render_engine>\n    \u003C/plugin>\n  \u003C/gazebo>\n",[81,18216,18217,18221,18229,18235,18245,18256,18270,18278],{"__ignoreMap":79},[84,18218,18219],{"class":86,"line":87},[84,18220,91],{"emptyLinePlaceholder":90},[84,18222,18223,18225,18227],{"class":86,"line":94},[84,18224,2502],{"class":118},[84,18226,15177],{"class":2505},[84,18228,2517],{"class":118},[84,18230,18231,18233],{"class":86,"line":101},[84,18232,2539],{"class":118},[84,18234,16837],{"class":2505},[84,18236,18237,18240,18242],{"class":86,"line":125},[84,18238,18239],{"class":104},"      filename",[84,18241,1805],{"class":118},[84,18243,18244],{"class":108},"\"gz-sim-sensors-system\"\n",[84,18246,18247,18249,18251,18254],{"class":86,"line":130},[84,18248,16785],{"class":104},[84,18250,1805],{"class":118},[84,18252,18253],{"class":108},"\"gz::sim::systems::Sensors\"",[84,18255,2517],{"class":118},[84,18257,18258,18260,18263,18266,18268],{"class":86,"line":136},[84,18259,2549],{"class":118},[84,18261,18262],{"class":2505},"render_engine",[84,18264,18265],{"class":118},">ogre2\u003C/",[84,18267,18262],{"class":2505},[84,18269,2517],{"class":118},[84,18271,18272,18274,18276],{"class":86,"line":148},[84,18273,2620],{"class":118},[84,18275,3143],{"class":2505},[84,18277,2517],{"class":118},[84,18279,18280,18282,18284],{"class":86,"line":153},[84,18281,2629],{"class":118},[84,18283,15177],{"class":2505},[84,18285,2517],{"class":118},[15,18287,18288],{},"gz-sim-sensors-system是Gazebo仿真环境的插件，提供传感器模型和相关功能，用于创建、模拟和测试各种传感器设备。它包含常见传感器模型，如摄像头、激光雷达等。",[15,18290,18291],{},[19,18292,18293],{},"添加各种传感器",[15,18295,18296],{},[19,18297,18298],{},"(注意，你的模型一定要有以下几个传感器的模型)",[15,18300,18301],{},"雷达的模型不需要collision，请删掉，否则会挡激光射出。",[74,18303,18305],{"className":2493,"code":18304,"language":2495,"meta":79,"style":79},"\n  \u003Cgazebo reference=\"laser\">\n    \u003Csensor name='gpu_lidar' type='gpu_lidar'>\n      \u003Ctopic>scan\u003C/topic>\n      \u003Cupdate_rate>30\u003C/update_rate>\n      \u003Clidar>\n        \u003Cscan>\n          \u003Chorizontal>\n            \u003Csamples>640\u003C/samples>\n            \u003Cresolution>1\u003C/resolution>\n            \u003Cmin_angle>-3.1415926\u003C/min_angle>\n            \u003Cmax_angle>3.1415926\u003C/max_angle>\n          \u003C/horizontal>\n          \u003Cvertical>\n            \u003Csamples>16\u003C/samples>\n            \u003Cresolution>1\u003C/resolution>\n            \u003Cmin_angle>-0.261799\u003C/min_angle>\n            \u003Cmax_angle>0.261799\u003C/max_angle>\n          \u003C/vertical>\n        \u003C/scan>\n        \u003Crange>\n          \u003Cmin>0.08\u003C/min>\n          \u003Cmax>10.0\u003C/max>\n          \u003Cresolution>0.01\u003C/resolution>\n        \u003C/range>\n      \u003C/lidar>\n      \u003Cvisualize>true\u003C/visualize>\n      \u003Cgz_frame_id>laser\u003Cgz_frame_id>\n      \u003Cpose relative_to=\"laser\">0 0 0 0 0 0\u003C/pose>\n    \u003C/sensor>\n  \u003C/gazebo>\n\n  \u003Cgazebo reference=\"camera\" >\n    \u003Csensor name=\"cam_link\" type=\"camera\">\n      \u003Cupdate_rate>10.0\u003C/update_rate>\n      \u003Calways_on>true\u003C/always_on>\n      \u003Cgz_frame_id>camera\u003C/gz_frame_id>\n      \u003Cpose relative_to=\"camera\">0 0 0 0 0 0\u003C/pose>\n      \u003Cpose>0 0 0 0 0 0\u003C/pose>\n      \u003Ctopic>/image_raw\u003C/topic>\n      \u003Ccamera name=\"my_camera\">\n        \u003Chorizontal_fov>1.3962634\u003C/horizontal_fov>\n        \u003Cimage>\n           \u003Cwidth>600\u003C/width>\n           \u003Cheight>600\u003C/height>\n           \u003Cformat>R8G8B8\u003C/format>\n        \u003C/image>\n        \u003Cclip>\n          \u003Cnear>0.02\u003C/near>\n          \u003Cfar>300\u003C/far>\n        \u003C/clip>\n      \u003C/camera>\n    \u003C/sensor>\n  \u003C/gazebo>\n\n  \u003Cgazebo reference=\"camera\">\n    \u003Csensor name=\"depth_camera\" type=\"depth_camera\">\n          \u003Cupdate_rate>10\u003C/update_rate>\n          \u003Ctopic>depth_camera\u003C/topic>\n          \u003Ccamera>\n            \u003Chorizontal_fov>1.05\u003C/horizontal_fov>\n            \u003Cimage>\n              \u003Cwidth>256\u003C/width>\n              \u003Cheight>256\u003C/height>\n              \u003Cformat>R_FLOAT32\u003C/format>\n            \u003C/image>\n            \u003Cclip>\n              \u003Cnear>0.1\u003C/near>\n              \u003Cfar>10.0\u003C/far>\n            \u003C/clip>\n          \u003C/camera>\n          \u003Calways_on>1\u003C/always_on>\n          \u003Cgz_frame_id>camera\u003C/gz_frame_id>\n          \u003Cpose relative_to=\"camera\">0 0 0 0 0 0\u003C/pose>\n      \u003C/sensor>\n  \u003C/gazebo>\n",[81,18306,18307,18311,18326,18348,18361,18374,18383,18392,18401,18415,18428,18442,18456,18464,18473,18486,18498,18511,18524,18532,18540,18548,18562,18576,18588,18596,18604,18617,18631,18651,18659,18667,18671,18686,18707,18719,18732,18745,18763,18775,18788,18804,18818,18827,18842,18855,18869,18877,18886,18900,18914,18922,18930,18938,18946,18950,18964,18985,18997,19010,19018,19031,19039,19052,19064,19077,19085,19093,19106,19118,19126,19134,19146,19158,19176,19184],{"__ignoreMap":79},[84,18308,18309],{"class":86,"line":87},[84,18310,91],{"emptyLinePlaceholder":90},[84,18312,18313,18315,18317,18319,18321,18324],{"class":86,"line":94},[84,18314,2522],{"class":118},[84,18316,15177],{"class":2505},[84,18318,15180],{"class":104},[84,18320,1805],{"class":118},[84,18322,18323],{"class":108},"\"laser\"",[84,18325,2517],{"class":118},[84,18327,18328,18330,18333,18335,18337,18340,18342,18344,18346],{"class":86,"line":101},[84,18329,2539],{"class":118},[84,18331,18332],{"class":2505},"sensor",[84,18334,2509],{"class":104},[84,18336,1805],{"class":118},[84,18338,18339],{"class":108},"'gpu_lidar'",[84,18341,3079],{"class":104},[84,18343,1805],{"class":118},[84,18345,18339],{"class":108},[84,18347,2517],{"class":118},[84,18349,18350,18352,18354,18357,18359],{"class":86,"line":125},[84,18351,2549],{"class":118},[84,18353,16620],{"class":2505},[84,18355,18356],{"class":118},">scan\u003C/",[84,18358,16620],{"class":2505},[84,18360,2517],{"class":118},[84,18362,18363,18365,18367,18370,18372],{"class":86,"line":130},[84,18364,2549],{"class":118},[84,18366,16373],{"class":2505},[84,18368,18369],{"class":118},">30\u003C/",[84,18371,16373],{"class":2505},[84,18373,2517],{"class":118},[84,18375,18376,18378,18381],{"class":86,"line":136},[84,18377,2549],{"class":118},[84,18379,18380],{"class":2505},"lidar",[84,18382,2517],{"class":118},[84,18384,18385,18387,18390],{"class":86,"line":148},[84,18386,2723],{"class":118},[84,18388,18389],{"class":2505},"scan",[84,18391,2517],{"class":118},[84,18393,18394,18396,18399],{"class":86,"line":153},[84,18395,2919],{"class":118},[84,18397,18398],{"class":2505},"horizontal",[84,18400,2517],{"class":118},[84,18402,18403,18405,18408,18411,18413],{"class":86,"line":159},[84,18404,3403],{"class":118},[84,18406,18407],{"class":2505},"samples",[84,18409,18410],{"class":118},">640\u003C/",[84,18412,18407],{"class":2505},[84,18414,2517],{"class":118},[84,18416,18417,18419,18422,18424,18426],{"class":86,"line":406},[84,18418,3403],{"class":118},[84,18420,18421],{"class":2505},"resolution",[84,18423,3110],{"class":118},[84,18425,18421],{"class":2505},[84,18427,2517],{"class":118},[84,18429,18430,18432,18435,18438,18440],{"class":86,"line":412},[84,18431,3403],{"class":118},[84,18433,18434],{"class":2505},"min_angle",[84,18436,18437],{"class":118},">-3.1415926\u003C/",[84,18439,18434],{"class":2505},[84,18441,2517],{"class":118},[84,18443,18444,18446,18449,18452,18454],{"class":86,"line":418},[84,18445,3403],{"class":118},[84,18447,18448],{"class":2505},"max_angle",[84,18450,18451],{"class":118},">3.1415926\u003C/",[84,18453,18448],{"class":2505},[84,18455,2517],{"class":118},[84,18457,18458,18460,18462],{"class":86,"line":424},[84,18459,3451],{"class":118},[84,18461,18398],{"class":2505},[84,18463,2517],{"class":118},[84,18465,18466,18468,18471],{"class":86,"line":1782},[84,18467,2919],{"class":118},[84,18469,18470],{"class":2505},"vertical",[84,18472,2517],{"class":118},[84,18474,18475,18477,18479,18482,18484],{"class":86,"line":1794},[84,18476,3403],{"class":118},[84,18478,18407],{"class":2505},[84,18480,18481],{"class":118},">16\u003C/",[84,18483,18407],{"class":2505},[84,18485,2517],{"class":118},[84,18487,18488,18490,18492,18494,18496],{"class":86,"line":1799},[84,18489,3403],{"class":118},[84,18491,18421],{"class":2505},[84,18493,3110],{"class":118},[84,18495,18421],{"class":2505},[84,18497,2517],{"class":118},[84,18499,18500,18502,18504,18507,18509],{"class":86,"line":1816},[84,18501,3403],{"class":118},[84,18503,18434],{"class":2505},[84,18505,18506],{"class":118},">-0.261799\u003C/",[84,18508,18434],{"class":2505},[84,18510,2517],{"class":118},[84,18512,18513,18515,18517,18520,18522],{"class":86,"line":1831},[84,18514,3403],{"class":118},[84,18516,18448],{"class":2505},[84,18518,18519],{"class":118},">0.261799\u003C/",[84,18521,18448],{"class":2505},[84,18523,2517],{"class":118},[84,18525,18526,18528,18530],{"class":86,"line":1853},[84,18527,3451],{"class":118},[84,18529,18470],{"class":2505},[84,18531,2517],{"class":118},[84,18533,18534,18536,18538],{"class":86,"line":1858},[84,18535,2959],{"class":118},[84,18537,18389],{"class":2505},[84,18539,2517],{"class":118},[84,18541,18542,18544,18546],{"class":86,"line":1869},[84,18543,2723],{"class":118},[84,18545,6091],{"class":2505},[84,18547,2517],{"class":118},[84,18549,18550,18552,18555,18558,18560],{"class":86,"line":1875},[84,18551,2919],{"class":118},[84,18553,18554],{"class":2505},"min",[84,18556,18557],{"class":118},">0.08\u003C/",[84,18559,18554],{"class":2505},[84,18561,2517],{"class":118},[84,18563,18564,18566,18569,18572,18574],{"class":86,"line":1893},[84,18565,2919],{"class":118},[84,18567,18568],{"class":2505},"max",[84,18570,18571],{"class":118},">10.0\u003C/",[84,18573,18568],{"class":2505},[84,18575,2517],{"class":118},[84,18577,18578,18580,18582,18584,18586],{"class":86,"line":1905},[84,18579,2919],{"class":118},[84,18581,18421],{"class":2505},[84,18583,6108],{"class":118},[84,18585,18421],{"class":2505},[84,18587,2517],{"class":118},[84,18589,18590,18592,18594],{"class":86,"line":1923},[84,18591,2959],{"class":118},[84,18593,6091],{"class":2505},[84,18595,2517],{"class":118},[84,18597,18598,18600,18602],{"class":86,"line":1929},[84,18599,2783],{"class":118},[84,18601,18380],{"class":2505},[84,18603,2517],{"class":118},[84,18605,18606,18608,18611,18613,18615],{"class":86,"line":1935},[84,18607,2549],{"class":118},[84,18609,18610],{"class":2505},"visualize",[84,18612,3318],{"class":118},[84,18614,18610],{"class":2505},[84,18616,2517],{"class":118},[84,18618,18619,18621,18624,18627,18629],{"class":86,"line":1940},[84,18620,2549],{"class":118},[84,18622,18623],{"class":2505},"gz_frame_id",[84,18625,18626],{"class":118},">laser\u003C",[84,18628,18623],{"class":2505},[84,18630,2517],{"class":118},[84,18632,18633,18635,18637,18640,18642,18644,18647,18649],{"class":86,"line":1946},[84,18634,2549],{"class":118},[84,18636,3667],{"class":2505},[84,18638,18639],{"class":104}," relative_to",[84,18641,1805],{"class":118},[84,18643,18323],{"class":108},[84,18645,18646],{"class":118},">0 0 0 0 0 0\u003C/",[84,18648,3667],{"class":2505},[84,18650,2517],{"class":118},[84,18652,18653,18655,18657],{"class":86,"line":1957},[84,18654,2620],{"class":118},[84,18656,18332],{"class":2505},[84,18658,2517],{"class":118},[84,18660,18661,18663,18665],{"class":86,"line":1971},[84,18662,2629],{"class":118},[84,18664,15177],{"class":2505},[84,18666,2517],{"class":118},[84,18668,18669],{"class":86,"line":1983},[84,18670,91],{"emptyLinePlaceholder":90},[84,18672,18673,18675,18677,18679,18681,18684],{"class":86,"line":2010},[84,18674,2522],{"class":118},[84,18676,15177],{"class":2505},[84,18678,15180],{"class":104},[84,18680,1805],{"class":118},[84,18682,18683],{"class":108},"\"camera\"",[84,18685,14838],{"class":118},[84,18687,18688,18690,18692,18694,18696,18699,18701,18703,18705],{"class":86,"line":2026},[84,18689,2539],{"class":118},[84,18691,18332],{"class":2505},[84,18693,2509],{"class":104},[84,18695,1805],{"class":118},[84,18697,18698],{"class":108},"\"cam_link\"",[84,18700,3079],{"class":104},[84,18702,1805],{"class":118},[84,18704,18683],{"class":108},[84,18706,2517],{"class":118},[84,18708,18709,18711,18713,18715,18717],{"class":86,"line":2031},[84,18710,2549],{"class":118},[84,18712,16373],{"class":2505},[84,18714,18571],{"class":118},[84,18716,16373],{"class":2505},[84,18718,2517],{"class":118},[84,18720,18721,18723,18726,18728,18730],{"class":86,"line":2036},[84,18722,2549],{"class":118},[84,18724,18725],{"class":2505},"always_on",[84,18727,3318],{"class":118},[84,18729,18725],{"class":2505},[84,18731,2517],{"class":118},[84,18733,18734,18736,18738,18741,18743],{"class":86,"line":2042},[84,18735,2549],{"class":118},[84,18737,18623],{"class":2505},[84,18739,18740],{"class":118},">camera\u003C/",[84,18742,18623],{"class":2505},[84,18744,2517],{"class":118},[84,18746,18747,18749,18751,18753,18755,18757,18759,18761],{"class":86,"line":2052},[84,18748,2549],{"class":118},[84,18750,3667],{"class":2505},[84,18752,18639],{"class":104},[84,18754,1805],{"class":118},[84,18756,18683],{"class":108},[84,18758,18646],{"class":118},[84,18760,3667],{"class":2505},[84,18762,2517],{"class":118},[84,18764,18765,18767,18769,18771,18773],{"class":86,"line":2065},[84,18766,2549],{"class":118},[84,18768,3667],{"class":2505},[84,18770,18646],{"class":118},[84,18772,3667],{"class":2505},[84,18774,2517],{"class":118},[84,18776,18777,18779,18781,18784,18786],{"class":86,"line":2078},[84,18778,2549],{"class":118},[84,18780,16620],{"class":2505},[84,18782,18783],{"class":118},">/image_raw\u003C/",[84,18785,16620],{"class":2505},[84,18787,2517],{"class":118},[84,18789,18790,18792,18795,18797,18799,18802],{"class":86,"line":2093},[84,18791,2549],{"class":118},[84,18793,18794],{"class":2505},"camera",[84,18796,2509],{"class":104},[84,18798,1805],{"class":118},[84,18800,18801],{"class":108},"\"my_camera\"",[84,18803,2517],{"class":118},[84,18805,18806,18808,18811,18814,18816],{"class":86,"line":2101},[84,18807,2723],{"class":118},[84,18809,18810],{"class":2505},"horizontal_fov",[84,18812,18813],{"class":118},">1.3962634\u003C/",[84,18815,18810],{"class":2505},[84,18817,2517],{"class":118},[84,18819,18820,18822,18825],{"class":86,"line":2109},[84,18821,2723],{"class":118},[84,18823,18824],{"class":2505},"image",[84,18826,2517],{"class":118},[84,18828,18829,18832,18835,18838,18840],{"class":86,"line":2115},[84,18830,18831],{"class":118},"           \u003C",[84,18833,18834],{"class":2505},"width",[84,18836,18837],{"class":118},">600\u003C/",[84,18839,18834],{"class":2505},[84,18841,2517],{"class":118},[84,18843,18844,18846,18849,18851,18853],{"class":86,"line":2137},[84,18845,18831],{"class":118},[84,18847,18848],{"class":2505},"height",[84,18850,18837],{"class":118},[84,18852,18848],{"class":2505},[84,18854,2517],{"class":118},[84,18856,18857,18859,18862,18865,18867],{"class":86,"line":2148},[84,18858,18831],{"class":118},[84,18860,18861],{"class":2505},"format",[84,18863,18864],{"class":118},">R8G8B8\u003C/",[84,18866,18861],{"class":2505},[84,18868,2517],{"class":118},[84,18870,18871,18873,18875],{"class":86,"line":2165},[84,18872,2959],{"class":118},[84,18874,18824],{"class":2505},[84,18876,2517],{"class":118},[84,18878,18879,18881,18884],{"class":86,"line":2180},[84,18880,2723],{"class":118},[84,18882,18883],{"class":2505},"clip",[84,18885,2517],{"class":118},[84,18887,18888,18890,18893,18896,18898],{"class":86,"line":2186},[84,18889,2919],{"class":118},[84,18891,18892],{"class":2505},"near",[84,18894,18895],{"class":118},">0.02\u003C/",[84,18897,18892],{"class":2505},[84,18899,2517],{"class":118},[84,18901,18902,18904,18907,18910,18912],{"class":86,"line":2197},[84,18903,2919],{"class":118},[84,18905,18906],{"class":2505},"far",[84,18908,18909],{"class":118},">300\u003C/",[84,18911,18906],{"class":2505},[84,18913,2517],{"class":118},[84,18915,18916,18918,18920],{"class":86,"line":2202},[84,18917,2959],{"class":118},[84,18919,18883],{"class":2505},[84,18921,2517],{"class":118},[84,18923,18924,18926,18928],{"class":86,"line":2207},[84,18925,2783],{"class":118},[84,18927,18794],{"class":2505},[84,18929,2517],{"class":118},[84,18931,18932,18934,18936],{"class":86,"line":2216},[84,18933,2620],{"class":118},[84,18935,18332],{"class":2505},[84,18937,2517],{"class":118},[84,18939,18940,18942,18944],{"class":86,"line":2222},[84,18941,2629],{"class":118},[84,18943,15177],{"class":2505},[84,18945,2517],{"class":118},[84,18947,18948],{"class":86,"line":2242},[84,18949,91],{"emptyLinePlaceholder":90},[84,18951,18952,18954,18956,18958,18960,18962],{"class":86,"line":2255},[84,18953,2522],{"class":118},[84,18955,15177],{"class":2505},[84,18957,15180],{"class":104},[84,18959,1805],{"class":118},[84,18961,18683],{"class":108},[84,18963,2517],{"class":118},[84,18965,18966,18968,18970,18972,18974,18977,18979,18981,18983],{"class":86,"line":2261},[84,18967,2539],{"class":118},[84,18969,18332],{"class":2505},[84,18971,2509],{"class":104},[84,18973,1805],{"class":118},[84,18975,18976],{"class":108},"\"depth_camera\"",[84,18978,3079],{"class":104},[84,18980,1805],{"class":118},[84,18982,18976],{"class":108},[84,18984,2517],{"class":118},[84,18986,18987,18989,18991,18993,18995],{"class":86,"line":2267},[84,18988,2919],{"class":118},[84,18990,16373],{"class":2505},[84,18992,16581],{"class":118},[84,18994,16373],{"class":2505},[84,18996,2517],{"class":118},[84,18998,18999,19001,19003,19006,19008],{"class":86,"line":3757},[84,19000,2919],{"class":118},[84,19002,16620],{"class":2505},[84,19004,19005],{"class":118},">depth_camera\u003C/",[84,19007,16620],{"class":2505},[84,19009,2517],{"class":118},[84,19011,19012,19014,19016],{"class":86,"line":3770},[84,19013,2919],{"class":118},[84,19015,18794],{"class":2505},[84,19017,2517],{"class":118},[84,19019,19020,19022,19024,19027,19029],{"class":86,"line":3784},[84,19021,3403],{"class":118},[84,19023,18810],{"class":2505},[84,19025,19026],{"class":118},">1.05\u003C/",[84,19028,18810],{"class":2505},[84,19030,2517],{"class":118},[84,19032,19033,19035,19037],{"class":86,"line":3797},[84,19034,3403],{"class":118},[84,19036,18824],{"class":2505},[84,19038,2517],{"class":118},[84,19040,19041,19043,19045,19048,19050],{"class":86,"line":3806},[84,19042,3413],{"class":118},[84,19044,18834],{"class":2505},[84,19046,19047],{"class":118},">256\u003C/",[84,19049,18834],{"class":2505},[84,19051,2517],{"class":118},[84,19053,19054,19056,19058,19060,19062],{"class":86,"line":3815},[84,19055,3413],{"class":118},[84,19057,18848],{"class":2505},[84,19059,19047],{"class":118},[84,19061,18848],{"class":2505},[84,19063,2517],{"class":118},[84,19065,19066,19068,19070,19073,19075],{"class":86,"line":3830},[84,19067,3413],{"class":118},[84,19069,18861],{"class":2505},[84,19071,19072],{"class":118},">R_FLOAT32\u003C/",[84,19074,18861],{"class":2505},[84,19076,2517],{"class":118},[84,19078,19079,19081,19083],{"class":86,"line":3839},[84,19080,3442],{"class":118},[84,19082,18824],{"class":2505},[84,19084,2517],{"class":118},[84,19086,19087,19089,19091],{"class":86,"line":3852},[84,19088,3403],{"class":118},[84,19090,18883],{"class":2505},[84,19092,2517],{"class":118},[84,19094,19095,19097,19099,19102,19104],{"class":86,"line":3866},[84,19096,3413],{"class":118},[84,19098,18892],{"class":2505},[84,19100,19101],{"class":118},">0.1\u003C/",[84,19103,18892],{"class":2505},[84,19105,2517],{"class":118},[84,19107,19108,19110,19112,19114,19116],{"class":86,"line":3875},[84,19109,3413],{"class":118},[84,19111,18906],{"class":2505},[84,19113,18571],{"class":118},[84,19115,18906],{"class":2505},[84,19117,2517],{"class":118},[84,19119,19120,19122,19124],{"class":86,"line":3891},[84,19121,3442],{"class":118},[84,19123,18883],{"class":2505},[84,19125,2517],{"class":118},[84,19127,19128,19130,19132],{"class":86,"line":3905},[84,19129,3451],{"class":118},[84,19131,18794],{"class":2505},[84,19133,2517],{"class":118},[84,19135,19136,19138,19140,19142,19144],{"class":86,"line":3921},[84,19137,2919],{"class":118},[84,19139,18725],{"class":2505},[84,19141,3110],{"class":118},[84,19143,18725],{"class":2505},[84,19145,2517],{"class":118},[84,19147,19148,19150,19152,19154,19156],{"class":86,"line":3930},[84,19149,2919],{"class":118},[84,19151,18623],{"class":2505},[84,19153,18740],{"class":118},[84,19155,18623],{"class":2505},[84,19157,2517],{"class":118},[84,19159,19160,19162,19164,19166,19168,19170,19172,19174],{"class":86,"line":3939},[84,19161,2919],{"class":118},[84,19163,3667],{"class":2505},[84,19165,18639],{"class":104},[84,19167,1805],{"class":118},[84,19169,18683],{"class":108},[84,19171,18646],{"class":118},[84,19173,3667],{"class":2505},[84,19175,2517],{"class":118},[84,19177,19178,19180,19182],{"class":86,"line":3953},[84,19179,2783],{"class":118},[84,19181,18332],{"class":2505},[84,19183,2517],{"class":118},[84,19185,19186,19188,19190],{"class":86,"line":3966},[84,19187,2629],{"class":118},[84,19189,15177],{"class":2505},[84,19191,2517],{"class":118},[15,19193,19194],{},"从官网找到的imu传感器的",[74,19196,19198],{"className":2493,"code":19197,"language":2495,"meta":79,"style":79},"\n    \u003Cgazebo>\n        \u003Cplugin filename=\"gz-sim-imu-system\"\n                name=\"gz::sim::systems::Imu\">\n        \u003C/plugin>\n    \u003C/gazebo>\n\n    \u003Cgazebo reference=\"base_link\">\n        \u003Csensor name=\"imu_sensor\" type=\"imu\">\n            \u003Calways_on>1\u003C/always_on>\n            \u003Cupdate_rate>30\u003C/update_rate>\n            \u003Cvisualize>true\u003C/visualize>\n            \u003Ctopic>imu\u003C/topic>\n        \u003C/sensor>\n    \u003C/gazebo>\n",[81,19199,19200,19204,19212,19225,19237,19245,19253,19257,19271,19293,19305,19317,19329,19342,19350],{"__ignoreMap":79},[84,19201,19202],{"class":86,"line":87},[84,19203,91],{"emptyLinePlaceholder":90},[84,19205,19206,19208,19210],{"class":86,"line":94},[84,19207,2539],{"class":118},[84,19209,15177],{"class":2505},[84,19211,2517],{"class":118},[84,19213,19214,19216,19218,19220,19222],{"class":86,"line":101},[84,19215,2723],{"class":118},[84,19217,3143],{"class":2505},[84,19219,3153],{"class":104},[84,19221,1805],{"class":118},[84,19223,19224],{"class":108},"\"gz-sim-imu-system\"\n",[84,19226,19227,19230,19232,19235],{"class":86,"line":125},[84,19228,19229],{"class":104},"                name",[84,19231,1805],{"class":118},[84,19233,19234],{"class":108},"\"gz::sim::systems::Imu\"",[84,19236,2517],{"class":118},[84,19238,19239,19241,19243],{"class":86,"line":130},[84,19240,2959],{"class":118},[84,19242,3143],{"class":2505},[84,19244,2517],{"class":118},[84,19246,19247,19249,19251],{"class":86,"line":136},[84,19248,2620],{"class":118},[84,19250,15177],{"class":2505},[84,19252,2517],{"class":118},[84,19254,19255],{"class":86,"line":148},[84,19256,91],{"emptyLinePlaceholder":90},[84,19258,19259,19261,19263,19265,19267,19269],{"class":86,"line":153},[84,19260,2539],{"class":118},[84,19262,15177],{"class":2505},[84,19264,15180],{"class":104},[84,19266,1805],{"class":118},[84,19268,2532],{"class":108},[84,19270,2517],{"class":118},[84,19272,19273,19275,19277,19279,19281,19284,19286,19288,19291],{"class":86,"line":159},[84,19274,2723],{"class":118},[84,19276,18332],{"class":2505},[84,19278,2509],{"class":104},[84,19280,1805],{"class":118},[84,19282,19283],{"class":108},"\"imu_sensor\"",[84,19285,3079],{"class":104},[84,19287,1805],{"class":118},[84,19289,19290],{"class":108},"\"imu\"",[84,19292,2517],{"class":118},[84,19294,19295,19297,19299,19301,19303],{"class":86,"line":406},[84,19296,3403],{"class":118},[84,19298,18725],{"class":2505},[84,19300,3110],{"class":118},[84,19302,18725],{"class":2505},[84,19304,2517],{"class":118},[84,19306,19307,19309,19311,19313,19315],{"class":86,"line":412},[84,19308,3403],{"class":118},[84,19310,16373],{"class":2505},[84,19312,18369],{"class":118},[84,19314,16373],{"class":2505},[84,19316,2517],{"class":118},[84,19318,19319,19321,19323,19325,19327],{"class":86,"line":418},[84,19320,3403],{"class":118},[84,19322,18610],{"class":2505},[84,19324,3318],{"class":118},[84,19326,18610],{"class":2505},[84,19328,2517],{"class":118},[84,19330,19331,19333,19335,19338,19340],{"class":86,"line":424},[84,19332,3403],{"class":118},[84,19334,16620],{"class":2505},[84,19336,19337],{"class":118},">imu\u003C/",[84,19339,16620],{"class":2505},[84,19341,2517],{"class":118},[84,19343,19344,19346,19348],{"class":86,"line":1782},[84,19345,2959],{"class":118},[84,19347,18332],{"class":2505},[84,19349,2517],{"class":118},[84,19351,19352,19354,19356],{"class":86,"line":1794},[84,19353,2620],{"class":118},[84,19355,15177],{"class":2505},[84,19357,2517],{"class":118},[15,19359,19360,19361,19364],{},"可以用",[81,19362,19363],{},"ign topic -e -t /imu","测试gazebo是否发布了话题，后面再用gazebo_bridge把话题给ROS2就行了。",[15,19366,19367],{},"默认情况下，rviz2没有显示imu消息的插件，需要自行安装相关插件，具体安装指令如下：",[74,19369,19373],{"className":19370,"code":19371,"language":19372,"meta":79,"style":79},"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",[81,19374,19375,19395,19399],{"__ignoreMap":79},[84,19376,19377,19380,19383,19385,19387,19390,19392],{"class":86,"line":87},[84,19378,19379],{"class":118},"sudo apt install ros",[84,19381,19382],{"class":734},"-",[84,19384,119],{"class":118},[84,19386,19382],{"class":734},[84,19388,19389],{"class":118},"imu",[84,19391,19382],{"class":734},[84,19393,19394],{"class":118},"tools\n",[84,19396,19397],{"class":86,"line":94},[84,19398,91],{"emptyLinePlaceholder":90},[84,19400,19401,19403,19405,19408,19410,19412,19414],{"class":86,"line":101},[84,19402,19379],{"class":118},[84,19404,19382],{"class":734},[84,19406,19407],{"class":118},"jazzy",[84,19409,19382],{"class":734},[84,19411,19389],{"class":118},[84,19413,19382],{"class":734},[84,19415,19394],{"class":118},[15,19417,19418],{},"SolidWorks自动生成的模型可能翻转了laser_joint,请你修改回正，这样可能rivz2就有激光了，然后修改一下可视化的模型，让模型正常，不要给碰撞，不然可能会遮挡激光。",[15,19420,19421],{},[172,19422],{"alt":79,"src":19423},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1738.webp",[15,19425,17530],{},[74,19427,19429],{"className":1655,"code":19428,"language":1657,"meta":79,"style":79},"import os\n\nfrom ament_index_python.packages import get_package_share_directory\n\nfrom launch import LaunchDescription\nfrom launch.actions import IncludeLaunchDescription\nfrom launch.launch_description_sources import PythonLaunchDescriptionSource\nfrom launch_ros.actions import Node\n\ndef generate_launch_description():\n\n    this_pkg = get_package_share_directory(\"demo_gazebo_sim\")\n    mycar_desc_pkg = get_package_share_directory(\"mycar_description\")\n    pkg_ros_gz_sim = get_package_share_directory(\"ros_gz_sim\")\n    world_file = os.path.join(this_pkg,\"world\",\"house.sdf\")\n\n    gz_sim = IncludeLaunchDescription(\n    PythonLaunchDescriptionSource(\n        os.path.join(pkg_ros_gz_sim, \"launch\", \"gz_sim.launch.py\")),\n        launch_arguments={\n        \"gz_args\": \"-r \" + world_file\n        }.items(),\n    )\n    mycar_desc = IncludeLaunchDescription(\n        PythonLaunchDescriptionSource(\n            os.path.join(mycar_desc_pkg,\"launch\",\"mycar_desc_sim.launch.py\")\n        )\n    )\n    spawn = Node(package=\"ros_gz_sim\", executable=\"create\",\n        arguments=[\n            \"-name\", \"mycar\",\n            \"-x\", \"-4\",\n            \"-z\", \"0.01\", #设置为0,可能会陷进地里\n            \"-y\", \"0\",\n            \"-R\", \"0\",\n            \"-P\", \"0\",\n            \"-Y\", \"1.57\",   #逆时针旋转90度\n            \"-topic\", \"/robot_description\"],\n        output=\"screen\")\n\n    # Bridge\n    bridge = Node(\n        package=\"ros_gz_bridge\",\n        executable=\"parameter_bridge\",\n        arguments=[\"/cmd_vel@geometry_msgs/msg/Twist@gz.msgs.Twist\",\n            \"/model/mycar/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry\",\n            \"/model/mycar/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V\",\n            \"/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock\",\n            \"/world/empty/model/mycar/joint_state@sensor_msgs/msg/JointState[gz.msgs.Model\",\n            \"/scan@sensor_msgs/msg/LaserScan@gz.msgs.LaserScan\",\n            \"/scan/points@sensor_msgs/msg/PointCloud2@gz.msgs.PointCloudPacked\",\n            \"/image_raw@sensor_msgs/msg/Image@gz.msgs.Image\",\n            \"/camera_info@sensor_msgs/msg/CameraInfo@gz.msgs.CameraInfo\",\n            \"/depth_camera@sensor_msgs/msg/Image@gz.msgs.Image\",\n            \"/imu@sensor_msgs/msg/Imu[gz.msgs.IMU\",\n            \"/imu/angular_velocity@geometry_msgs/msg/Vector3[gz.msgs.Vector3d\"\n        ],\n        parameters=[{\"qos_overrides./model/mycar.subscriber.reliability\": \"reliable\"}],\n        remappings=[\n            (\"/model/mycar/tf\", \"/tf\"),\n            (\"/world/empty/model/mycar/joint_state\",\"joint_states\"),\n            (\"/model/mycar/odometry\",\"/odom\")\n        ],\n        output=\"screen\"\n    )\n\n    return LaunchDescription([\n        gz_sim,\n        spawn,\n        mycar_desc,\n        bridge\n    ])\n",[81,19430,19431,19437,19441,19451,19455,19465,19475,19485,19495,19499,19507,19511,19523,19535,19547,19563,19567,19575,19580,19593,19601,19614,19618,19622,19630,19634,19646,19650,19654,19678,19686,19697,19708,19721,19732,19743,19754,19767,19778,19788,19792,19796,19804,19814,19824,19836,19843,19850,19857,19864,19871,19878,19885,19892,19899,19906,19911,19916,19932,19940,19953,19965,19977,19981,19989,19993,19997,20003,20007,20011,20015,20019],{"__ignoreMap":79},[84,19432,19433,19435],{"class":86,"line":87},[84,19434,1664],{"class":734},[84,19436,1667],{"class":118},[84,19438,19439],{"class":86,"line":94},[84,19440,91],{"emptyLinePlaceholder":90},[84,19442,19443,19445,19447,19449],{"class":86,"line":101},[84,19444,1676],{"class":734},[84,19446,1679],{"class":118},[84,19448,1664],{"class":734},[84,19450,1684],{"class":118},[84,19452,19453],{"class":86,"line":125},[84,19454,91],{"emptyLinePlaceholder":90},[84,19456,19457,19459,19461,19463],{"class":86,"line":130},[84,19458,1676],{"class":734},[84,19460,1695],{"class":118},[84,19462,1664],{"class":734},[84,19464,1700],{"class":118},[84,19466,19467,19469,19471,19473],{"class":86,"line":136},[84,19468,1676],{"class":734},[84,19470,1707],{"class":118},[84,19472,1664],{"class":734},[84,19474,1723],{"class":118},[84,19476,19477,19479,19481,19483],{"class":86,"line":148},[84,19478,1676],{"class":734},[84,19480,1742],{"class":118},[84,19482,1664],{"class":734},[84,19484,1747],{"class":118},[84,19486,19487,19489,19491,19493],{"class":86,"line":153},[84,19488,1676],{"class":734},[84,19490,1770],{"class":118},[84,19492,1664],{"class":734},[84,19494,1775],{"class":118},[84,19496,19497],{"class":86,"line":159},[84,19498,91],{"emptyLinePlaceholder":90},[84,19500,19501,19503,19505],{"class":86,"line":406},[84,19502,1785],{"class":734},[84,19504,1788],{"class":104},[84,19506,1791],{"class":118},[84,19508,19509],{"class":86,"line":412},[84,19510,91],{"emptyLinePlaceholder":90},[84,19512,19513,19515,19517,19519,19521],{"class":86,"line":418},[84,19514,1802],{"class":118},[84,19516,1805],{"class":734},[84,19518,1808],{"class":118},[84,19520,15830],{"class":108},[84,19522,1574],{"class":118},[84,19524,19525,19527,19529,19531,19533],{"class":86,"line":424},[84,19526,15837],{"class":118},[84,19528,1805],{"class":734},[84,19530,1808],{"class":118},[84,19532,15568],{"class":108},[84,19534,1574],{"class":118},[84,19536,19537,19539,19541,19543,19545],{"class":86,"line":1782},[84,19538,1819],{"class":118},[84,19540,1805],{"class":734},[84,19542,1808],{"class":118},[84,19544,15856],{"class":108},[84,19546,1574],{"class":118},[84,19548,19549,19551,19553,19555,19557,19559,19561],{"class":86,"line":1794},[84,19550,1834],{"class":118},[84,19552,1805],{"class":734},[84,19554,1839],{"class":118},[84,19556,9325],{"class":108},[84,19558,1845],{"class":118},[84,19560,9330],{"class":108},[84,19562,1574],{"class":118},[84,19564,19565],{"class":86,"line":1799},[84,19566,91],{"emptyLinePlaceholder":90},[84,19568,19569,19571,19573],{"class":86,"line":1816},[84,19570,1861],{"class":118},[84,19572,1805],{"class":734},[84,19574,1866],{"class":118},[84,19576,19577],{"class":86,"line":1831},[84,19578,19579],{"class":118},"    PythonLaunchDescriptionSource(\n",[84,19581,19582,19585,19587,19589,19591],{"class":86,"line":1853},[84,19583,19584],{"class":118},"        os.path.join(pkg_ros_gz_sim, ",[84,19586,15897],{"class":108},[84,19588,1884],{"class":118},[84,19590,15902],{"class":108},[84,19592,1890],{"class":118},[84,19594,19595,19597,19599],{"class":86,"line":1858},[84,19596,1897],{"class":1896},[84,19598,1805],{"class":734},[84,19600,1902],{"class":118},[84,19602,19603,19606,19608,19610,19612],{"class":86,"line":1869},[84,19604,19605],{"class":108},"        \"gz_args\"",[84,19607,1911],{"class":118},[84,19609,15922],{"class":108},[84,19611,1917],{"class":734},[84,19613,1920],{"class":118},[84,19615,19616],{"class":86,"line":1875},[84,19617,1926],{"class":118},[84,19619,19620],{"class":86,"line":1893},[84,19621,1932],{"class":118},[84,19623,19624,19626,19628],{"class":86,"line":1905},[84,19625,15939],{"class":118},[84,19627,1805],{"class":734},[84,19629,1866],{"class":118},[84,19631,19632],{"class":86,"line":1923},[84,19633,1872],{"class":118},[84,19635,19636,19638,19640,19642,19644],{"class":86,"line":1929},[84,19637,15952],{"class":118},[84,19639,15897],{"class":108},[84,19641,1845],{"class":118},[84,19643,15959],{"class":108},[84,19645,1574],{"class":118},[84,19647,19648],{"class":86,"line":1935},[84,19649,15966],{"class":118},[84,19651,19652],{"class":86,"line":1940},[84,19653,1932],{"class":118},[84,19655,19656,19658,19660,19662,19664,19666,19668,19670,19672,19674,19676],{"class":86,"line":1946},[84,19657,15975],{"class":118},[84,19659,1805],{"class":734},[84,19661,15980],{"class":118},[84,19663,15983],{"class":1896},[84,19665,1805],{"class":734},[84,19667,15856],{"class":108},[84,19669,1884],{"class":118},[84,19671,15992],{"class":1896},[84,19673,1805],{"class":734},[84,19675,15997],{"class":108},[84,19677,1968],{"class":118},[84,19679,19680,19682,19684],{"class":86,"line":1957},[84,19681,2081],{"class":1896},[84,19683,1805],{"class":734},[84,19685,2145],{"class":118},[84,19687,19688,19691,19693,19695],{"class":86,"line":1971},[84,19689,19690],{"class":108},"            \"-name\"",[84,19692,1884],{"class":118},[84,19694,16018],{"class":108},[84,19696,1968],{"class":118},[84,19698,19699,19702,19704,19706],{"class":86,"line":1983},[84,19700,19701],{"class":108},"            \"-x\"",[84,19703,1884],{"class":118},[84,19705,17806],{"class":108},[84,19707,1968],{"class":118},[84,19709,19710,19713,19715,19717,19719],{"class":86,"line":2010},[84,19711,19712],{"class":108},"            \"-z\"",[84,19714,1884],{"class":118},[84,19716,16042],{"class":108},[84,19718,1884],{"class":118},[84,19720,16047],{"class":97},[84,19722,19723,19726,19728,19730],{"class":86,"line":2026},[84,19724,19725],{"class":108},"            \"-y\"",[84,19727,1884],{"class":118},[84,19729,16030],{"class":108},[84,19731,1968],{"class":118},[84,19733,19734,19737,19739,19741],{"class":86,"line":2031},[84,19735,19736],{"class":108},"            \"-R\"",[84,19738,1884],{"class":118},[84,19740,16030],{"class":108},[84,19742,1968],{"class":118},[84,19744,19745,19748,19750,19752],{"class":86,"line":2036},[84,19746,19747],{"class":108},"            \"-P\"",[84,19749,1884],{"class":118},[84,19751,16030],{"class":108},[84,19753,1968],{"class":118},[84,19755,19756,19759,19761,19763,19765],{"class":86,"line":2042},[84,19757,19758],{"class":108},"            \"-Y\"",[84,19760,1884],{"class":118},[84,19762,16090],{"class":108},[84,19764,17861],{"class":118},[84,19766,17864],{"class":97},[84,19768,19769,19772,19774,19776],{"class":86,"line":2052},[84,19770,19771],{"class":108},"            \"-topic\"",[84,19773,1884],{"class":118},[84,19775,16105],{"class":108},[84,19777,16108],{"class":118},[84,19779,19780,19782,19784,19786],{"class":86,"line":2065},[84,19781,2189],{"class":1896},[84,19783,1805],{"class":734},[84,19785,16118],{"class":108},[84,19787,1574],{"class":118},[84,19789,19790],{"class":86,"line":2078},[84,19791,91],{"emptyLinePlaceholder":90},[84,19793,19794],{"class":86,"line":2093},[84,19795,2039],{"class":97},[84,19797,19798,19800,19802],{"class":86,"line":2101},[84,19799,2045],{"class":118},[84,19801,1805],{"class":734},[84,19803,1954],{"class":118},[84,19805,19806,19808,19810,19812],{"class":86,"line":2109},[84,19807,2055],{"class":1896},[84,19809,1805],{"class":734},[84,19811,17909],{"class":108},[84,19813,1968],{"class":118},[84,19815,19816,19818,19820,19822],{"class":86,"line":2115},[84,19817,2068],{"class":1896},[84,19819,1805],{"class":734},[84,19821,17920],{"class":108},[84,19823,1968],{"class":118},[84,19825,19826,19828,19830,19832,19834],{"class":86,"line":2137},[84,19827,2081],{"class":1896},[84,19829,1805],{"class":734},[84,19831,768],{"class":118},[84,19833,17933],{"class":108},[84,19835,1968],{"class":118},[84,19837,19838,19841],{"class":86,"line":2148},[84,19839,19840],{"class":108},"            \"/model/mycar/odometry@nav_msgs/msg/Odometry@gz.msgs.Odometry\"",[84,19842,1968],{"class":118},[84,19844,19845,19848],{"class":86,"line":2165},[84,19846,19847],{"class":108},"            \"/model/mycar/tf@tf2_msgs/msg/TFMessage[gz.msgs.Pose_V\"",[84,19849,1968],{"class":118},[84,19851,19852,19855],{"class":86,"line":2180},[84,19853,19854],{"class":108},"            \"/clock@rosgraph_msgs/msg/Clock[gz.msgs.Clock\"",[84,19856,1968],{"class":118},[84,19858,19859,19862],{"class":86,"line":2186},[84,19860,19861],{"class":108},"            \"/world/empty/model/mycar/joint_state@sensor_msgs/msg/JointState[gz.msgs.Model\"",[84,19863,1968],{"class":118},[84,19865,19866,19869],{"class":86,"line":2197},[84,19867,19868],{"class":108},"            \"/scan@sensor_msgs/msg/LaserScan@gz.msgs.LaserScan\"",[84,19870,1968],{"class":118},[84,19872,19873,19876],{"class":86,"line":2202},[84,19874,19875],{"class":108},"            \"/scan/points@sensor_msgs/msg/PointCloud2@gz.msgs.PointCloudPacked\"",[84,19877,1968],{"class":118},[84,19879,19880,19883],{"class":86,"line":2207},[84,19881,19882],{"class":108},"            \"/image_raw@sensor_msgs/msg/Image@gz.msgs.Image\"",[84,19884,1968],{"class":118},[84,19886,19887,19890],{"class":86,"line":2216},[84,19888,19889],{"class":108},"            \"/camera_info@sensor_msgs/msg/CameraInfo@gz.msgs.CameraInfo\"",[84,19891,1968],{"class":118},[84,19893,19894,19897],{"class":86,"line":2222},[84,19895,19896],{"class":108},"            \"/depth_camera@sensor_msgs/msg/Image@gz.msgs.Image\"",[84,19898,1968],{"class":118},[84,19900,19901,19904],{"class":86,"line":2242},[84,19902,19903],{"class":108},"            \"/imu@sensor_msgs/msg/Imu[gz.msgs.IMU\"",[84,19905,1968],{"class":118},[84,19907,19908],{"class":86,"line":2255},[84,19909,19910],{"class":108},"            \"/imu/angular_velocity@geometry_msgs/msg/Vector3[gz.msgs.Vector3d\"\n",[84,19912,19913],{"class":86,"line":2261},[84,19914,19915],{"class":118},"        ],\n",[84,19917,19918,19920,19922,19924,19926,19928,19930],{"class":86,"line":2267},[84,19919,2118],{"class":1896},[84,19921,1805],{"class":734},[84,19923,2123],{"class":118},[84,19925,17978],{"class":108},[84,19927,1911],{"class":118},[84,19929,17983],{"class":108},[84,19931,2134],{"class":118},[84,19933,19934,19936,19938],{"class":86,"line":3757},[84,19935,2140],{"class":1896},[84,19937,1805],{"class":734},[84,19939,2145],{"class":118},[84,19941,19942,19945,19947,19949,19951],{"class":86,"line":3770},[84,19943,19944],{"class":118},"            (",[84,19946,18000],{"class":108},[84,19948,1884],{"class":118},[84,19950,18005],{"class":108},[84,19952,2162],{"class":118},[84,19954,19955,19957,19959,19961,19963],{"class":86,"line":3784},[84,19956,19944],{"class":118},[84,19958,18014],{"class":108},[84,19960,1845],{"class":118},[84,19962,18019],{"class":108},[84,19964,2162],{"class":118},[84,19966,19967,19969,19971,19973,19975],{"class":86,"line":3797},[84,19968,19944],{"class":118},[84,19970,18028],{"class":108},[84,19972,1845],{"class":118},[84,19974,18033],{"class":108},[84,19976,1574],{"class":118},[84,19978,19979],{"class":86,"line":3806},[84,19980,19915],{"class":118},[84,19982,19983,19985,19987],{"class":86,"line":3815},[84,19984,2189],{"class":1896},[84,19986,1805],{"class":734},[84,19988,18048],{"class":108},[84,19990,19991],{"class":86,"line":3830},[84,19992,1932],{"class":118},[84,19994,19995],{"class":86,"line":3839},[84,19996,91],{"emptyLinePlaceholder":90},[84,19998,19999,20001],{"class":86,"line":3852},[84,20000,2210],{"class":734},[84,20002,2213],{"class":118},[84,20004,20005],{"class":86,"line":3866},[84,20006,2219],{"class":118},[84,20008,20009],{"class":86,"line":3875},[84,20010,16139],{"class":118},[84,20012,20013],{"class":86,"line":3891},[84,20014,16144],{"class":118},[84,20016,20017],{"class":86,"line":3905},[84,20018,18079],{"class":118},[84,20020,20021],{"class":86,"line":3921},[84,20022,2270],{"class":118},[15,20024,20025],{},[19,20026,2283],{},[15,20028,2286],{},[74,20030,20031],{"className":76,"code":16157,"language":78,"meta":79,"style":79},[81,20032,20033],{"__ignoreMap":79},[84,20034,20035,20037,20039,20041,20043],{"class":86,"line":87},[84,20036,2296],{"class":104},[84,20038,2299],{"class":108},[84,20040,16168],{"class":548},[84,20042,13358],{"class":108},[84,20044,1540],{"class":108},[15,20046,20047],{},[19,20048,2314],{},[15,20050,2317],{},[74,20052,20053],{"className":76,"code":18114,"language":78,"meta":79,"style":79},[81,20054,20055,20061],{"__ignoreMap":79},[84,20056,20057,20059],{"class":86,"line":87},[84,20058,2327],{"class":548},[84,20060,2330],{"class":108},[84,20062,20063,20065,20067,20069],{"class":86,"line":94},[84,20064,235],{"class":104},[84,20066,238],{"class":108},[84,20068,2339],{"class":108},[84,20070,16205],{"class":108},[15,20072,20073,20074,20076,20077,20079,20080,20082],{},"这里",[81,20075,18623],{},"可能会被sdf1.10规范误报警告，不用管这个警告。实际上，这个版本的Gazebo会读取这个自定义标签",[81,20078,18623],{},"。\n在sdf1.12上貌似被改成了",[81,20081,16592],{},"。",[15,20084,20085,20086,20089,20090,20093,20094,20082],{},"你可以通过",[81,20087,20088],{},"ros2 topic echo /scan --once | grep frame_id","来查看scan的frame_id是否被修改成功了，修改成功会变成",[81,20091,20092],{},"laser","，否则会变成gazebo默认的",[81,20095,20096],{},"mycar/base_footprint/gpu_lidar",[15,20098,20099,20100],{},"问题解决参考：",[24,20101,20102],{"href":20102,"rel":20103},"https://github.com/gazebosim/gz-sensors/issues/306",[28],[15,20105,18135],{},[15,20107,20108],{},"还可以启动rviz2，以查看机器人发布的诸多数据。终端中进入当前工作空间，调用如下指令执行launch文件：",[74,20110,20111],{"className":76,"code":18158,"language":78,"meta":79,"style":79},[81,20112,20113,20119],{"__ignoreMap":79},[84,20114,20115,20117],{"class":86,"line":87},[84,20116,2327],{"class":548},[84,20118,2330],{"class":108},[84,20120,20121],{"class":86,"line":94},[84,20122,18171],{"class":104},[15,20124,20125],{},[172,20126],{"alt":79,"src":20127},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1739.webp",[15,20129,20130],{},[172,20131],{"alt":79,"src":20132},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2023/12/30/image1740.webp",[15,20134,20135],{},"(把上面的全部复现，才能够进行下一章导航，下一章导航依然基于仿真)",[20137,20138,20139],"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":79,"searchDepth":94,"depth":94,"links":20141},[20142],{"id":12,"depth":101,"text":13},"11.3",11030000,"2023-12-30","2023-12-30-ros2-tutorial","/wiki/2023-12-30-ros2-tutorial","Ros2 Tutorial","md",false,null,{},"/wiki/2023-12-30-ros2-tutorial/ch11-3-gazebosim",{"title":5,"description":79},"wiki/2023-12-30-ros2-tutorial/ch11-3-GazeboSim","EPEbi9Xc9v5oAO_9XZHoY6-aiQXPYLaCO2Golhq-ibA",[20158,20164,20170,20176,20182,20183,20189,20195,20201,20207,20213,20219,20225,20231,20237,20243,20249,20255,20261,20267,20273,20279,20285,20291,20297],{"path":20159,"stem":20160,"title":20161,"date":20145,"chapter":20162,"chapterSort":20163,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch1-ros2-jie-shao","wiki/2023-12-30-ros2-tutorial/ch1-ROS2介绍","ROS2介绍","1",1000000,{"path":20165,"stem":20166,"title":20167,"date":20145,"chapter":20168,"chapterSort":20169,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch10-stage-ros2-fang-zhen-ping-tai","wiki/2023-12-30-ros2-tutorial/ch10-Stage_Ros2仿真平台","Stage_Ros2仿真平台","10",10000000,{"path":20171,"stem":20172,"title":20173,"date":20145,"chapter":20174,"chapterSort":20175,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch11-1-gazeboclassic","wiki/2023-12-30-ros2-tutorial/ch11-1-GazeboClassic","Gezebo Classic","11.1",11010000,{"path":20177,"stem":20178,"title":20179,"date":20145,"chapter":20180,"chapterSort":20181,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch11-2-ignitiongazebo","wiki/2023-12-30-ros2-tutorial/ch11-2-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）","11.2",11020000,{"path":20153,"stem":20155,"title":5,"date":20145,"chapter":20143,"chapterSort":20144,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},{"path":20184,"stem":20185,"title":20186,"date":20145,"chapter":20187,"chapterSort":20188,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch11-4-igngz2gzsim","wiki/2023-12-30-ros2-tutorial/ch11-4-Igngz2gzsim","将Ign Gazebo迁移至Gz Sim","11.4",11040000,{"path":20190,"stem":20191,"title":20192,"date":20145,"chapter":20193,"chapterSort":20194,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch11-gezebo-fang-zhen-ping-tai","wiki/2023-12-30-ros2-tutorial/ch11-Gezebo仿真平台","Gezebo仿真平台","11",11000000,{"path":20196,"stem":20197,"title":20198,"date":20145,"chapter":20199,"chapterSort":20200,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch12-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","wiki/2023-12-30-ros2-tutorial/ch12-机器人导航Navigation2(仿真篇)","机器人导航Navigation2(仿真篇)","12",12000000,{"path":20202,"stem":20203,"title":20204,"date":20145,"chapter":20205,"chapterSort":20206,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch13-ros2serial","wiki/2023-12-30-ros2-tutorial/ch13-ROS2Serial","ROS2 Serial","13",13000000,{"path":20208,"stem":20209,"title":20210,"date":20145,"chapter":20211,"chapterSort":20212,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch14-ji-qi-ren-ying-jian","wiki/2023-12-30-ros2-tutorial/ch14-机器人硬件","机器人硬件","14",14000000,{"path":20214,"stem":20215,"title":20216,"date":20145,"chapter":20217,"chapterSort":20218,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch15-ros2-control","wiki/2023-12-30-ros2-tutorial/ch15-ROS2_Control","ROS2_Control","15",15000000,{"path":20220,"stem":20221,"title":20222,"date":20145,"chapter":20223,"chapterSort":20224,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","wiki/2023-12-30-ros2-tutorial/ch16-Moveit2工业机器人机械臂","Moveit2工业机器人机械臂","16",16000000,{"path":20226,"stem":20227,"title":20228,"date":20145,"chapter":20229,"chapterSort":20230,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch17-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","wiki/2023-12-30-ros2-tutorial/ch17-机器人导航Navigation2(实体篇)","机器人导航Navigation2(实体篇)","17",17000000,{"path":20232,"stem":20233,"title":20234,"date":20145,"chapter":20235,"chapterSort":20236,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch18-microros","wiki/2023-12-30-ros2-tutorial/ch18-MicroROS","MicroROS","18",18000000,{"path":20238,"stem":20239,"title":20240,"date":20145,"chapter":20241,"chapterSort":20242,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch19-webots-fang-zhen-ping-tai","wiki/2023-12-30-ros2-tutorial/ch19-Webots仿真平台","Webots仿真平台","19",19000000,{"path":20244,"stem":20245,"title":20246,"date":20145,"chapter":20247,"chapterSort":20248,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch2-ru-men-cao-zuo","wiki/2023-12-30-ros2-tutorial/ch2-入门操作","入门操作","2",2000000,{"path":20250,"stem":20251,"title":20252,"date":20145,"chapter":20253,"chapterSort":20254,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch20-opencv","wiki/2023-12-30-ros2-tutorial/ch20-OpenCV","OpenCV","20",20000000,{"path":20256,"stem":20257,"title":20258,"date":20145,"chapter":20259,"chapterSort":20260,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch3-gong-zuo-kong-jian-yu-gong-neng-bao","wiki/2023-12-30-ros2-tutorial/ch3-工作空间与功能包","工作空间与功能包","3",3000000,{"path":20262,"stem":20263,"title":20264,"date":20145,"chapter":20265,"chapterSort":20266,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch4-si-da-tong-xin","wiki/2023-12-30-ros2-tutorial/ch4-四大通信","四大通信","4",4000000,{"path":20268,"stem":20269,"title":20270,"date":20145,"chapter":20271,"chapterSort":20272,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch5-ros2-qi-ta-tong-xin-ji-zhi","wiki/2023-12-30-ros2-tutorial/ch5-ROS2其他通信机制","ROS2其他通信机制","5",5000000,{"path":20274,"stem":20275,"title":20276,"date":20145,"chapter":20277,"chapterSort":20278,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch6-launch","wiki/2023-12-30-ros2-tutorial/ch6-Launch","Launch","6",6000000,{"path":20280,"stem":20281,"title":20282,"date":20145,"chapter":20283,"chapterSort":20284,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch7-hui-su-rosbag2","wiki/2023-12-30-ros2-tutorial/ch7-回溯rosbag2","回溯rosbag2","7",7000000,{"path":20286,"stem":20287,"title":20288,"date":20145,"chapter":20289,"chapterSort":20290,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch8-zuo-biao-bian-huan-tf","wiki/2023-12-30-ros2-tutorial/ch8-坐标变换TF","坐标变换TF","8",8000000,{"path":20292,"stem":20293,"title":20294,"date":20145,"chapter":20295,"chapterSort":20296,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":20150},"/wiki/2023-12-30-ros2-tutorial/ch9-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","wiki/2023-12-30-ros2-tutorial/ch9-可视化平台RVIZ2与URDF建模语言","可视化平台RVIZ2与URDF建模语言","9",9000000,{"path":20147,"stem":20298,"title":20299,"date":20145,"chapter":20151,"chapterSort":20300,"docKey":20146,"docRoot":20147,"docTitle":20148,"isWikiDoc":90,"isWikiIndex":90},"wiki/2023-12-30-ros2-tutorial/index","ROS2机器人操作系统教程",0,1778560329367]