仿真系统简介
机器人的开发需要很多的测试。而测试就需要搭建场地。测试项目一多,需要的场地的形式也会更多。搭建这样的场地不仅成本高,耗费的人力和物力都相当可观。有些场景在真实环境中不容易出现,但却可以在仿真环境中制造出来。
通过对静态环境的模拟和动态环境的模拟,仿真系统可以帮助开发人员和测试人员触及到很多长尾的情况。而做到这些的代价要比在真实环境中的测试低很多,效率也更高。不管是服务机器人领域还是自动驾驶,仿真技术已经成为一项不可或缺的关键技术。这里对仿真系统做如下简单的定义以方便大家有个整体的概念。
1)仿真系统是通过计算机仿真技术对真实环境的数学建模。它需要模拟重力,碰撞,摩擦,机器人的动力学等等基础物理现象。
2)仿真技术的基本原理是在仿真场景内,将真实控制器变成算法,结合传感器仿真等技术,完成对算法的测试和验证。
仿真软件
目前ROS
中存在webots
、gazebo
、stage
三种仿真环境。
Webots
Webots
是一个开源的三维移动机器人模拟器,它与gazebo
类似都是ros
中仿真环境。webots
在2018年以前是一款商业软件,商业软件的好处就是安装简单,在windows
和ubuntu
上都可以实现一键安装,对用户很友好,webots
从2018年以后webots
进行了开源(自2018年12月起,Webots
作为开放源码软件在Apache 2.0
许可下发布。)。
Webots
支持C/C++
、Python
、MATLAB
、Java
、ROS
和TCP/IP
等多种方式实现模型的仿真控制。Webots
内置了接近100种机器人模型,包括轮式机器人、人形机器人、爬行移动机器人、单臂移动机器人、双臂移动机器人、无人机、大狗、飞艇等等,其中就包括大家比较熟悉的Boston Dynamics Atlas
、DJI Mavic 2 PRO
、Nao
、PR2
、YouBot
、UR
、Turtlebot3 Burger
等机器人。当然还有我们需要的自动驾驶环境,webots
还提供有火星车的模型可以让大家使用。
Webots
的一些关键功能包括:
- 跨平台(
Windows
,Linux
和Mac
)。
- 稳定的物理引擎。
- 可重现性。
- 使用基于物理的渲染获得逼真的图像的高效渲染引擎。
- 简单直观的用户界面。
- 模拟各种传感器和执行器可供选择并可以工作。
- 可用的机器人模型范围很广,可以投入使用。
- 范围广泛的文件样本。
目前Webots
是通过webots_ros2
功能包来和ROS2
集成的。
