机器人模拟器(Robotics simulator)用于为物理机器人创建应用程序,而不依赖于实际机器,从而节省了成本和时间。在某些情况下,这些应用程序可以无需修改即可转移到物理机器人(或重建)上。
机器人模拟器这个术语可以指几种不同的机器人模拟应用。例如,在移动机器人应用中,基于行为的机器人模拟器允许用户创建刚性物体和光源的简单世界,并对机器人进行编程以与这些世界进行交互。与更二元或计算的模拟器相比,基于行为的模拟允许更具生物性的动作。此外,基于行为的模拟器可以从错误中“学习”并且能够证明韧性的拟人化质量。
机器人模拟器最受欢迎的应用之一是用于机器人及其环境的3D建模和渲染。这种类型的机器人软件具有模拟器,该模拟器是虚拟机器人,其能够模拟真实机器人在真实工作范围内的运动。一些机器人模拟器使用物理引擎来生成更逼真的机器人运动。无论实际的机器人是否可用,强烈建议使用机器人模拟器开发机器人控制程序。模拟器允许在实际机器人上测试程序的最终版本,方便地编写和调试机器人程序。这主要适用于工业机器人应用,
由于机器人的运动取决于现实世界中的瞬时传感器读数,因此基于传感器的机器人动作更难以模拟和/或离线编程。
功能
现代模拟器倾向于提供以下功能:
快速机器人原型设计
使用自己的模拟器作为创建工具(虚拟机器人实验平台,Webots,R-Station,Marilou,4DV-Sim)。
使用外部工具。
用于逼真运动的物理引擎。大多数模拟器使用ODE(Gazebo,LpzRobots,Marilou,Webots)或PhysX(Microsoft Robotics Studio,4DV-Sim)。
现实3d渲染。标准的3D建模工具或第三方工具可用于构建环境。
带脚本的动态机器人体。C,C ++,Perl,Python,Java,URBI,Webots使用的MATLAB语言,Gazebo使用的Python。
模拟器
当今可用于编程的最新技术包括使用虚拟模拟的技术。使用工作环境的虚拟模型和机器人本身的模拟可以为公司和程序员提供优势。通过使用模拟,可以降低成本,并且可以离线编程机器人,从而消除装配线的任何停机时间。在原型制作之前的几个月,机器人动作和装配部件可以在三维虚拟环境中可视化。编写模拟代码也比为物理机器人编写代码更容易。虽然向编程机器人进行虚拟模拟的转变是用户界面设计的一个进步,但许多此类应用程序仅处于初期阶段。
一般信息
软件 | 开发商 | 发展现状 | 执照 | 3D渲染引擎 | 物理引擎 | 3D建模师 | 平台支持 |
---|---|---|---|---|---|---|---|
肌动蛋白 | Energid Technologies | 活性 | 所有权 | OpenGL的 | 所有权 | 所有权 | Windows,macOS,Linux,RTLinux,VxWorks,RTOS-32和RTX。(QNX计划) |
ARS | RAL | 待用 | BSD | VTK | 颂 | 没有 | Linux,macOS,Windows |
AUTOMAPPPS | Convergent Information Technologies GmbH | 活性 | 所有权 | OpenGL的 | 未知 | 内部 | Linux,Windows |
凉亭 | 开源机器人基金会(OSRF) | 活性 | Apache 2.0 | OGRE | ODE /子弹/ Simbody / DART | 内部 | Linux的 |
莫尔斯 | 学术界 | 活性 | BSD | 搅拌机游戏引擎 | 子弹 | 搅拌机 | Linux,BSD *,macOS |
OpenHRP | AIST | 活性 | 日食 | Java3D的 | ODE /内部 | 内部 | Linux,Windows |
RoboDK | RoboDK | 活性 | 所有权 | OpenGL的 | 没有 | 内部 | Linux,macOS,Windows,Android |
SimSpark | O. Obst等人。(26) | 活性 | GNU GPL(v2) | 内部 | 颂 | 没有 | Linux,macOS,Windows |
V-代表 | Coppelia Robotics | 活性 | 专有/ GNU GPL | 内部 | ODE /子弹/涡/牛顿 | 内部 | Linux,macOS,Windows |
Webots | Cyberbotics Ltd. | 活性 | 所有权 | 所有权 | 所有权(基于ODE) | 所有权 | Linux,macOS,Windows |
4DV-SIM卡 | 4D Virtualiz | 活性 | 所有权 | OGRE | PhysX物理 | 内部 | Linux的 |
OpenRAVE | OpenRAVE社区 | 活性 | GNU LGPL | Coin3D / OpenSceneGraph的 | ODE /子弹 | 内部 | Linux,macOS,Windows |
软件 | 开发商 | 发展现状 | 执照 | 3D渲染引擎 | 物理引擎 | 3D建模师 | 平台支持 |
技术信息
软件 | 主要编程语言 | 格式支持 | 可扩展性 | 外部API | 机器人中间件支持 | 主要用户界面 | 无头模拟 |
---|---|---|---|---|---|---|---|
肌动蛋白 | C ++ | SLDPRT,SLDASM,STEP,OBJ,STL,3DS,Collada,VRML,URDF,XML,ECD,ECP,ECW,ECX,ECZ, | 插件(C ++),API | 未知 | ROS | GUI | 是(ActinRT) |
ARS | 蟒蛇 | 未知 | 蟒蛇 | 未知 | 没有 | 未知 | 未知 |
AUTOMAPPPS | C ++,Python | STEP,IGES,STL | 插件(C),API | XML,C | 插座 | GUI | 是 |
凉亭 | C ++ | SDF / URDF,OBJ,STL,Collada | 插件(C ++) | C ++ | ROS,播放器,套接字(protobuf消息) | GUI | 是 |
莫尔斯 | 蟒蛇 | 未知 | 蟒蛇 | 蟒蛇 | 套接字,YARP,ROS,Pocolibs,MOOS | 命令行 | 是 |
OpenHRP | C ++ | VRML | 插件(C ++),API | C / C ++,Python,Java | OpenRTM-AIST | GUI | 未知 |
RoboDK | 蟒蛇 | STEP,IGES,STL,WRML | 插件(C ++),API | C / C ++,Python,Matlab | 插座 | GUI | 未知 |
SimSpark | C ++,Ruby | Ruby场景图 | Mods(C ++) | 网络(sexpr) | 套接字(sexpr) | GUI,套接字 | 未知 |
V-代表 | LUA | OBJ,STL,DXF,3DS,Collada,URDF | API,附加组件,插件 | C / C ++,Python,Java,Urbi,Matlab / Octave | 插座,ROS | GUI | 是 |
Webots | C ++ | WBT,VRML,X3D | API,PROTO,插件(C / C ++) | C,C ++,Python,Java,Matlab,ROS | 插座,ROS,NaoQI | GUI | 是 |
4DV-SIM卡 | C ++ | 3DS,OBJ,Mesh | 插件(C ++),API | FMI / FMU,Matlab | ROS,套接字,即插即用接口 | GUI | 是 |
OpenRAVE | C ++,Python | XML,VRML,OBJ,Collada | 插件(C ++),API | C / C ++,Python,Matlab | 插座,ROS,YARP | GUI,套接字 | 是 |
软件 | 主要编程语言 | 格式支持 | 可扩展性 | 外部API | 机器人中间件支持 | 主要用户界面 | 无头模拟 |
基础设施支持
软件 | 邮件列表 | API文档 | 公共论坛/帮助系统 | 用户手册 | 问题跟踪器 | 维基 |
---|---|---|---|---|---|---|
肌动蛋白 | 没有 | 是 | 没有 | 是 | 是(内部) | 没有 |
ARS | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |
AUTOMAPPPS | 是 | 是 | 没有 | 是 | 是 | 没有 |
凉亭 | 是 | 是 | 是 | 是 | 是 | 是 |
莫尔斯 | 是 | 是 | 没有 | 是 | 是 | 没有 |
OpenHRP | 是 | 是 | 没有 | 是 | 是 | 没有 |
RoboDK | 是 | 是 | 没有 | 是 | 没有 | 没有 |
SimSpark | 是 | 是 | 没有 | 是 | 是 | 是 |
V-代表 | 没有 | 是 | 是 | 是 | 未知 | 没有 |
Webots | 没有 | 是 | 是 | 是 | 是 | 是 |
4DV-SIM卡 | 是 | 没有 | 是 | 是 | 是 | 没有 |
OpenRAVE | 是 | 是 | 是 | 是 | 是 | 是 |
软件 | 邮件列表 | API文档 | 公共论坛/帮助系统 | 用户手册 | 问题跟踪器 | 维基 |
代码质量
软件 | 静态代码检查器 | 风格检查器 | 测试系统 | 测试功能覆盖 | 测试科覆盖范围 | 代码行 | 意见线 | 持续集成 |
---|---|---|---|---|---|---|---|---|
肌动蛋白 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 詹金斯 |
ARS | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |
AUTOMAPPPS | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |
凉亭 | cppcheck | cpplint | gtest和qtest | 46.1% | 34.3% | 190.7k | 60.45k | 詹金斯 |
莫尔斯 | N / A | pylint的 | Python单元测试 | 未知 | 未知 | 31.4k | 9.0k | 詹金斯,特拉维斯 |
OpenHRP | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |
RoboDK | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |
SimSpark | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |
V-代表 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |
Webots | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |
4DV-SIM卡 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 |
OpenRAVE | 未知 | 未知 | Python鼻子 | 未知 | 未知 | 未知 | 未知 | 詹金斯 |
软件 | 静态代码检查器 | 风格检查器 | 测试系统 | 测试功能覆盖 | 测试科覆盖范围 | 代码行 | 意见线 | 持续集成 |
特征
软件 | CAD到Motion | 动态碰撞避免 | 相对末端效应器 | 离线编程 | 硬件的实时流控制 |
---|---|---|---|---|---|
肌动蛋白 | 是(工具路径) | 是 | 是 | 是 | 是 |
ARS | 未知 | 没有 | 未知 | 没有 | 没有 |
凉亭 | 未知 | 是 | 是 | 是 | 是 |
莫尔斯 | 未知 | 没有 | 未知 | 没有 | 没有 |
OpenHRP | 未知 | 没有 | 未知 | 没有 | 没有 |
RoboDK | 未知 | 没有 | 未知 | 是 | 没有 |
SimSpark | 未知 | 没有 | 未知 | 没有 | 没有 |
V-代表 | 未知 | 没有 | 未知 | 没有 | 没有 |
Webots | 未知 | 是 | 是 | 是 | 是 |
4DV-SIM卡 | 未知 | 没有 | 未知 | 没有 | 没有 |
OpenRAVE | 未知 | 没有 | 未知 | 没有 | 没有 |
软件 | CAD到Motion | 动态碰撞避免 | 相对末端效应器 | 离线编程 | 实时流控制 |
机器人家庭
软件 | UGV(地面移动机器人) | 无人机(空中机器人) | AUV(水下机器人) | 机械臂 | 机器人手(抓模拟) | 人形机器人 | 人类头像 | 完整清单 |
---|---|---|---|---|---|---|---|---|
肌动蛋白 | 是(可以包括操纵器) | 是(可以包括操纵器) | 是(可以包括操纵器) | 是 | 是 | 是 | 是 | |
ARS | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | |
凉亭 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | |
莫尔斯 | 是 | 是 | 局部 | 一些 | 没有 | 没有 | 是 | |
OpenHRP | 是 | 没有 | 没有 | 是 | 是 | 是 | 是 | |
RoboDK | 没有 | 没有 | 没有 | 是 | 没有 | 没有 | 没有 | |
SimSpark | 是 | 没有 | 没有 | 也许 | 也许 | 是 | 没有 | |
V-代表 | 是 | 是 | 没有 | 是 | 是 | 是 | 是 | |
Webots | 是 | 是 | 是 | 是 | 是 | 是 | 是 | Webots机器人模型 |
4DV-SIM卡 | 是 | 是 | 没有 | 是 | 也许 | 没有 | 是 | |
OpenRAVE | 是 | 未知 | 未知 | 是 | 是 | 是 | 是 | |
软件 | UGV(地面移动机器人) | 无人机(空中机器人) | AUV(水下机器人) | 机械臂 | 机器人手(抓模拟) | 人形机器人 | 人类头像 | 完整清单 |
支持的执行器
软件 | 通用运动链 | 力控运动 | 完整清单 | 圆形运动链 | 运动学冗余链 | 分叉运动链 |
---|---|---|---|---|---|---|
肌动蛋白 | 是 | 是 | 运动约束 | 是 | 是 | 是 |
ARS | 未知 | 未知 | 未知 | 未知 | 未知 | |
凉亭 | 是 | 是 | 是 | 是 | 是 | |
莫尔斯 | 是 | 是 | MORSE执行器 | 未知 | 未知 | 未知 |
OpenHRP | 是 | 是 | 未知 | 未知 | 未知 | |
RoboDK | 未知 | 未知 | 未知 | 未知 | 未知 | |
SimSpark | 是 | 没有 | SimSpark效应器 | 未知 | 未知 | 未知 |
V-代表 | 是 | 是 | 未知 | 未知 | 未知 | |
Webots | 是 | 是 | Webots执行器 | 是 | 是 | 是 |
4DV-SIM卡 | 是 | 是 | 未知 | 未知 | 未知 | |
OpenRAVE | 是 | 是 | 关节,额外执行器 | 是 | 是 | 是 |
软件 | 通用运动链 | 力控运动 | 完整清单 | 圆形运动链 | 运动学冗余链 | 分叉运动链 |
支持传感器
软件 | 里程计 | IMU | 碰撞 | 全球定位系统 | 单目相机 | 立体相机 | 深度相机 | 全向摄像头 | 2D激光扫描仪 | 3D激光扫描仪 | 完整清单 |
---|---|---|---|---|---|---|---|---|---|---|---|
肌动蛋白 | 是 | 是 | 是 | 未知 | 是 | 是 | 是 | 是 | 是 | 是 | |
ARS | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | |
AUTOMAPPPS | 未知 | 未知 | 未知 | 未知 | 是 | 是 | 是 | 未知 | 是 | 是 | |
凉亭 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | |
莫尔斯 | 是 | 是 | 是 | 是 | 是 | 未知 | 是 | 未知 | 是 | 是 | MORSE传感器 |
OpenHRP | 未知 | 是 | 是 | 未知 | 是 | 未知 | 是 | 未知 | 是 | 是 | OpenHRP传感器 |
RoboDK | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | |
SimSpark | 是 | 是 | 是 | 局部 | 是 | 局部 | 未知 | 未知 | 没有 | 没有 | SimSpark感知器 |
V-代表 | 未知 | 是 | 是 | 是 | 是 | 是 | 是 | 未知 | 是 | 是 | |
Webots | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | Webots传感器 |
4DV-SIM卡 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 是 | |
OpenRAVE | 是 | 是 | 是 | 是 | 是 | 是 | 是 | 未知 | 是 | 是 | |
软件 | 里程计 | IMU | 碰撞 | 全球定位系统 | 单目相机 | 立体相机 | 深度相机 | 全向摄像头 | 2D激光扫描仪 | 3D激光扫描仪 | 完整清单 |
其他模拟器
开源模拟器
breve:Python中的3D世界多代理模拟器。
EZPhysics:结合Ogre3D和ODE物理,GUI可以通过Matlab / Simulink公开所有ODE的对象数据,网络闭环遥控器。
Khepera Simulator是一个用于Khepera机器人的开源Windows模拟器,它早于Webots。
Klamp’t:2013年推出的模拟器,专门用于稳定的trimesh-trimesh接触。支持腿部运动和操纵。
LpzRobots:莱比锡大学开发的3D物理机器人模拟器。
miniBloq:这款Arduino主板的机器人编程软件有一个新的模拟器。
Moby:用C ++编写的刚体动力学库。
OpenSim仿真器,用于铰接式和轮式机器人,具有广泛的特性。2006年停止了进一步的开发。
用于MATLAB的Robotics Toolbox是自由软件,提供表示姿势(均匀变换,欧拉和RPY角度,四元数),臂机器人(正向/反向运动学,动力学,模拟,动画)和移动机器人的功能。 (控制,本地化,规划和动画)。
ARTE A Robotics Toolbox for Education(ARTE)是一款基于Matlab的自由软件教育工具。它提供了表示位置和方向的功能。同样,包括模拟机器人手臂的功能(直接/反向运动学,动力学,路径规划等)。该工具箱包括一组可在机器人单元内查看和模拟的3D机器人模型。
Simbad 3D Robot Simulator基于Java的模拟器
SimRobot:在不来梅大学和德国人工智能研究中心开发的机器人模拟器软件包。
阶段:2.5D模拟器经常与Player一起使用以形成播放器/舞台系统。玩家项目的一部分
STDR模拟器一种简单,灵活,可扩展的2D多机器人模拟器,可在机器人操作系统中使用。
UCHILSIM:2004年RoboCup上推出的基于物理的AIBO机器人模拟器
.UWSim:用于海洋机器人研究和开发的UnderWater SIMulator,它结合了传感器,动态和物理模拟。
闭源和专有模拟器
anyKode Marilou
ORCA-Sim:使用Newton Game Dynamics物理引擎的(Windows)3D机器人模拟器。