[{"data":1,"prerenderedAt":337},["ShallowReactive",2],{"wiki-page-\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-gezebo-fang-zhen-ping-tai":3,"wiki-doc-items-2023-12-30-ros2-tutorial":192},{"id":4,"title":5,"body":6,"chapter":177,"chapterSort":178,"date":179,"description":171,"docKey":180,"docRoot":181,"docTitle":182,"extension":183,"isWikiDoc":184,"isWikiIndex":185,"meta":186,"navigation":184,"path":187,"seo":188,"stem":189,"wikiDepth":190,"__hash__":191},"wiki\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-Gezebo仿真平台.md","Gezebo仿真平台",{"type":7,"value":8,"toc":170},"minimark",[9,13,17,20,23,26,32,35,54,57,62,68,73,76,81,84,104,107,112,115,123,126,129,132,135,147,150,153,167],[10,11,12],"h3",{"id":12},"简述",[14,15,16],"p",{},"Gazebo目前主要分为两个版本，",[14,18,19],{},"一个是旧版Gazebo Classic，一个是新版Ignition Gazebo（ Gazebo Fortress）。",[14,21,22],{},"本文中称呼的Gazebo均代指Gazebo Classic，而Ignition Gazebo会加以区别。",[14,24,25],{},"然后现在ROS2Humble自带的是Ignition Gazebo（ Gazebo Fortress），但是ROS2 Jazzy自带的是\tGazebo Harmonic，建议学习\tGazebo Harmonic ！",[14,27,28],{},[29,30,31],"strong",{},"场景",[14,33,34],{},"在ROS机器人开发中，实体机器人虽然具有直接性和真实性的优势，但也存在一些不足，比如：",[36,37,38],"blockquote",{},[39,40,41,45,48,51],"ol",{},[42,43,44],"li",{},"高昂的成本：研发一款自主移动机器人需要购买昂贵的硬件组件，如传感器、电机、控制器等，且这些硬件在研发初期可能需要频繁更换或升级，导致成本急剧上升。",[42,46,47],{},"资源限制：由于资金和资源有限，可能无法同时拥有多台实体机器人进行测试。这会导致测试周期延长，研发进度受阻。",[42,49,50],{},"环境的不确定性和复杂性：在真实环境中测试机器人时，可能会遇到各种不可预测的情况，如光线变化、地面不平整、电磁干扰等，这些因素都可能影响机器人的性能。",[42,52,53],{},"安全风险：在测试过程中，如果机器人的控制算法或硬件出现故障，可能会导致机器人失控，对人员或环境造成损害。",[14,55,56],{},"在ROS机器人开发的领域里，仿真技术被广泛应用以弥补实体机器人测试中的不足。",[14,58,59],{},[29,60,61],{},"概念",[14,63,64,67],{},[29,65,66],{},"机器人仿真"," 是一种利用计算机模型和仿真技术来模拟机器人在虚拟环境中的行为和性能的过程。它通过创建虚拟的机器人和环境模型，模拟机器人的感知、控制和运动能力，以及与环境和其他对象的交互。",[14,69,70],{},[29,71,72],{},"作用",[14,74,75],{},"通过仿真测试，可以降低机器人研发成本和风险，提高机器人系统的性能和可靠性，并为实际机器人部署提供参考和指导。",[14,77,78],{},[29,79,80],{},"仿真优势:",[14,82,83],{},"仿真在机器人系统研发过程中占有举足轻重的地位，在研发与测试中较之于实体机器人实现，仿真有如下几点的显著优势:",[39,85,86,92,98],{},[42,87,88,91],{},[29,89,90],{},"低成本:"," 当前机器人成本居高不下，动辄几十万，仿真可以大大降低成本，减小风险",[42,93,94,97],{},[29,95,96],{},"高效:"," 搭建的环境更为多样且灵活，可以提高测试效率以及测试覆盖率",[42,99,100,103],{},[29,101,102],{},"高安全性:"," 仿真环境下，无需考虑耗损问题",[14,105,106],{},"仿真技术为开发者构建了一个既高效又安全，且成本低廉的全方位测试和验证平台。",[14,108,109],{},[29,110,111],{},"仿真缺陷:",[14,113,114],{},"机器人在仿真环境与实际环境下的表现差异较大，换言之，仿真并不能完全做到模拟真实的物理世界，存在一些\"失真\"的情况，原因:",[39,116,117,120],{},[42,118,119],{},"仿真器所使用的物理引擎目前还不能够完全精确模拟真实世界的物理情况",[42,121,122],{},"仿真器构建的是关节驱动器（电机&齿轮箱）、传感器与信号通信的绝对理想情况，目前不支持模拟实际硬件缺陷或者一些临界状态等情形",[14,124,125],{},"总之，仿真技术虽然重要，但并不能完全替代实体测试。实体测试可以验证仿真结果的准确性，并发现仿真中可能忽略的问题。",[10,127,128],{"id":128},"本章小结",[14,130,131],{},"本章主要介绍了2D仿真工具stage_ros2以及3D仿真工具ignition gazebo在ROS2中的应用。",[14,133,134],{},"相关知识点如下：",[136,137,138,141,144],"ul",{},[42,139,140],{},"仿真的理论知识；",[42,142,143],{},"stage_ros2在ROS2中的使用；",[42,145,146],{},"ignition gazebo在ROS2中的使用。",[14,148,149],{},"通过上述内容我们介绍了仿真在ROS2中的应用场景、概念，以及较之于实体机器人，仿真的优势和不足。还学习了如何基于stage_ros2以及ignition gazebo分别搭建仿真环境并模拟机器人，为后续的学习奠定了基础。",[14,151,152],{},"另外，除了stage_ros2和ignition gazebo之外，还有其他一些可用于ROS2仿真的软件。以下是一些常见的选择：",[136,154,155,158,161,164],{},[42,156,157],{},"Webots: Webots是一个强大的开源多机器人仿真软件平台，它支持各种机器人硬件和传感器模拟，并且可以与ROS 2进行集成。",[42,159,160],{},"Gazebo Classic: Gazebo Classic是ROS 1中常用的仿真器，也可以通过ROS 2进行连接和使用。",[42,162,163],{},"MORSE: MORSE是一个基于Python的开源仿真器，可以用于ROS 2仿真和机器人开发，支持多种传感器和行为模型。",[42,165,166],{},"V-REP: V-REP是一个强大的多机器人仿真平台，它支持ROS 2与其进行通信，可以实现各种机器人模型和场景的仿真。",[14,168,169],{},"这些都是一些常见的ROS 2仿真软件，你可以根据具体的需求选择合适的软件来进行仿真和开发。请注意，某些仿真器可能需要进行适配和配置以与ROS 2兼容。",{"title":171,"searchDepth":172,"depth":172,"links":173},"",2,[174,176],{"id":12,"depth":175,"text":12},3,{"id":128,"depth":175,"text":128},"11",11000000,"2023-12-30","2023-12-30-ros2-tutorial","\u002Fwiki\u002F2023-12-30-ros2-tutorial","Ros2 Tutorial","md",true,false,{},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-gezebo-fang-zhen-ping-tai",{"title":5,"description":171},"wiki\u002F2023-12-30-ros2-tutorial\u002Fch11-Gezebo仿真平台",1,"mbOM4lXZKTjSzQC4yI6yPWRRf1AF-ge8QhbUw_7hSGI",[193,199,205,211,217,223,229,230,236,242,248,254,260,266,272,278,284,290,296,302,308,314,320,326,332],{"path":194,"stem":195,"title":196,"date":179,"chapter":197,"chapterSort":198,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch1-ros2-jie-shao","wiki\u002F2023-12-30-ros2-tutorial\u002Fch1-ROS2介绍","ROS2介绍","1",1000000,{"path":200,"stem":201,"title":202,"date":179,"chapter":203,"chapterSort":204,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch10-stage-ros2-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002Fch10-Stage_Ros2仿真平台","Stage_Ros2仿真平台","10",10000000,{"path":206,"stem":207,"title":208,"date":179,"chapter":209,"chapterSort":210,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-1-gazeboclassic","wiki\u002F2023-12-30-ros2-tutorial\u002Fch11-1-GazeboClassic","Gezebo Classic","11.1",11010000,{"path":212,"stem":213,"title":214,"date":179,"chapter":215,"chapterSort":216,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-2-ignitiongazebo","wiki\u002F2023-12-30-ros2-tutorial\u002Fch11-2-IgnitionGazebo","Ignition Gazebo（Gazebo Fortress）","11.2",11020000,{"path":218,"stem":219,"title":220,"date":179,"chapter":221,"chapterSort":222,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-3-gazebosim","wiki\u002F2023-12-30-ros2-tutorial\u002Fch11-3-GazeboSim","Gz Sim（Gazebo Harmonic）","11.3",11030000,{"path":224,"stem":225,"title":226,"date":179,"chapter":227,"chapterSort":228,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch11-4-igngz2gzsim","wiki\u002F2023-12-30-ros2-tutorial\u002Fch11-4-Igngz2gzsim","将Ign Gazebo迁移至Gz Sim","11.4",11040000,{"path":187,"stem":189,"title":5,"date":179,"chapter":177,"chapterSort":178,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},{"path":231,"stem":232,"title":233,"date":179,"chapter":234,"chapterSort":235,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch12-ji-qi-ren-dao-hang-navigation2-fang-zhen-pian","wiki\u002F2023-12-30-ros2-tutorial\u002Fch12-机器人导航Navigation2(仿真篇)","机器人导航Navigation2(仿真篇)","12",12000000,{"path":237,"stem":238,"title":239,"date":179,"chapter":240,"chapterSort":241,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch13-ros2serial","wiki\u002F2023-12-30-ros2-tutorial\u002Fch13-ROS2Serial","ROS2 Serial","13",13000000,{"path":243,"stem":244,"title":245,"date":179,"chapter":246,"chapterSort":247,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch14-ji-qi-ren-ying-jian","wiki\u002F2023-12-30-ros2-tutorial\u002Fch14-机器人硬件","机器人硬件","14",14000000,{"path":249,"stem":250,"title":251,"date":179,"chapter":252,"chapterSort":253,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch15-ros2-control","wiki\u002F2023-12-30-ros2-tutorial\u002Fch15-ROS2_Control","ROS2_Control","15",15000000,{"path":255,"stem":256,"title":257,"date":179,"chapter":258,"chapterSort":259,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch16-moveit2-gong-ye-ji-qi-ren-ji-xie-bi","wiki\u002F2023-12-30-ros2-tutorial\u002Fch16-Moveit2工业机器人机械臂","Moveit2工业机器人机械臂","16",16000000,{"path":261,"stem":262,"title":263,"date":179,"chapter":264,"chapterSort":265,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch17-ji-qi-ren-dao-hang-navigation2-shi-ti-pian","wiki\u002F2023-12-30-ros2-tutorial\u002Fch17-机器人导航Navigation2(实体篇)","机器人导航Navigation2(实体篇)","17",17000000,{"path":267,"stem":268,"title":269,"date":179,"chapter":270,"chapterSort":271,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch18-microros","wiki\u002F2023-12-30-ros2-tutorial\u002Fch18-MicroROS","MicroROS","18",18000000,{"path":273,"stem":274,"title":275,"date":179,"chapter":276,"chapterSort":277,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch19-webots-fang-zhen-ping-tai","wiki\u002F2023-12-30-ros2-tutorial\u002Fch19-Webots仿真平台","Webots仿真平台","19",19000000,{"path":279,"stem":280,"title":281,"date":179,"chapter":282,"chapterSort":283,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch2-ru-men-cao-zuo","wiki\u002F2023-12-30-ros2-tutorial\u002Fch2-入门操作","入门操作","2",2000000,{"path":285,"stem":286,"title":287,"date":179,"chapter":288,"chapterSort":289,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch20-opencv","wiki\u002F2023-12-30-ros2-tutorial\u002Fch20-OpenCV","OpenCV","20",20000000,{"path":291,"stem":292,"title":293,"date":179,"chapter":294,"chapterSort":295,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch3-gong-zuo-kong-jian-yu-gong-neng-bao","wiki\u002F2023-12-30-ros2-tutorial\u002Fch3-工作空间与功能包","工作空间与功能包","3",3000000,{"path":297,"stem":298,"title":299,"date":179,"chapter":300,"chapterSort":301,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch4-si-da-tong-xin","wiki\u002F2023-12-30-ros2-tutorial\u002Fch4-四大通信","四大通信","4",4000000,{"path":303,"stem":304,"title":305,"date":179,"chapter":306,"chapterSort":307,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch5-ros2-qi-ta-tong-xin-ji-zhi","wiki\u002F2023-12-30-ros2-tutorial\u002Fch5-ROS2其他通信机制","ROS2其他通信机制","5",5000000,{"path":309,"stem":310,"title":311,"date":179,"chapter":312,"chapterSort":313,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch6-launch","wiki\u002F2023-12-30-ros2-tutorial\u002Fch6-Launch","Launch","6",6000000,{"path":315,"stem":316,"title":317,"date":179,"chapter":318,"chapterSort":319,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch7-hui-su-rosbag2","wiki\u002F2023-12-30-ros2-tutorial\u002Fch7-回溯rosbag2","回溯rosbag2","7",7000000,{"path":321,"stem":322,"title":323,"date":179,"chapter":324,"chapterSort":325,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch8-zuo-biao-bian-huan-tf","wiki\u002F2023-12-30-ros2-tutorial\u002Fch8-坐标变换TF","坐标变换TF","8",8000000,{"path":327,"stem":328,"title":329,"date":179,"chapter":330,"chapterSort":331,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":185},"\u002Fwiki\u002F2023-12-30-ros2-tutorial\u002Fch9-ke-shi-hua-ping-tai-rviz2-yu-urdf-jian-mo-yu-yan","wiki\u002F2023-12-30-ros2-tutorial\u002Fch9-可视化平台RVIZ2与URDF建模语言","可视化平台RVIZ2与URDF建模语言","9",9000000,{"path":181,"stem":333,"title":334,"date":179,"chapter":335,"chapterSort":336,"docKey":180,"docRoot":181,"docTitle":182,"isWikiDoc":184,"isWikiIndex":184},"wiki\u002F2023-12-30-ros2-tutorial\u002Findex","ROS2机器人操作系统教程",null,0,1778666545084]