仿真系统简介
机器人的开发需要很多的测试。而测试就需要搭建场地。测试项目一多,需要的场地的形式也会更多。搭建这样的场地不仅成本高,耗费的人力和物力都相当可观。有些场景在真实环境中不容易出现,但却可以在仿真环境中制造出来。
通过对静态环境的模拟和动态环境的模拟,仿真系统可以帮助开发人员和测试人员触及到很多长尾的情况。而做到这些的代价要比在真实环境中的测试低很多,效率也更高。不管是服务机器人领域还是自动驾驶,仿真技术已经成为一项不可或缺的关键技术。这里对仿真系统做如下简单的定义以方便大家有个整体的概念。
1)仿真系统是通过计算机仿真技术对真实环境的数学建模。它需要模拟重力,碰撞,摩擦,机器人的动力学等等基础物理现象。
2)仿真技术的基本原理是在仿真场景内,将真实控制器变成算法,结合传感器仿真等技术,完成对算法的测试和验证。
仿真软件
目前中存在、、三种仿真环境。
Webots
是一个开源的三维移动机器人模拟器,它与类似都是中仿真环境。在2018年以前是一款商业软件,商业软件的好处就是安装简单,在和上都可以实现一键安装,对用户很友好,从2018年以后进行了开源(自2018年12月起,作为开放源码软件在许可下发布。)。
支持、、、、和等多种方式实现模型的仿真控制。内置了接近100种机器人模型,包括轮式机器人、人形机器人、爬行移动机器人、单臂移动机器人、双臂移动机器人、无人机、大狗、飞艇等等,其中就包括大家比较熟悉的、、、、、、等机器人。当然还有我们需要的自动驾驶环境,还提供有火星车的模型可以让大家使用。
的一些关键功能包括:
- 跨平台(,和)。
- 稳定的物理引擎。
- 可重现性。
- 使用基于物理的渲染获得逼真的图像的高效渲染引擎。
- 简单直观的用户界面。
- 模拟各种传感器和执行器可供选择并可以工作。
- 可用的机器人模型范围很广,可以投入使用。
- 范围广泛的文件样本。
目前是通过功能包来和集成的。
是一系列包。如下:
-
:开发插件的依赖
-
:定义了和之间的数据接口定义,主要是的自定义数据结构。
-
:提供了一些方便自定义插件调用的函数和类,同时也提供一些测试程序。
-
:一系列 插件,模拟传感器和控制器并与ROS进行数据对接。如果想自定义一些功能就可以在这里编写自己的插件。
在这里可以绘制简单的环境模型,但无法绘制曲线。
model editor
这里可以绘制基本的规则模型,但复杂的模型通常还是用专业的三维软件导出来。然后修改成能识别的文件。下面会着重介绍。
仿真模型描述文件
world文件
的仿真环境配置会保存为后缀的文件。文件其实是语言书写的文件。里面包含了对三维环境的描述。下面是一个简单的示例:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!