主流仿真平台——18种具身智能机器人仿真平台汇总发表时间:2024-12-08 21:51
▍模型描述目前业界主要使用URDF(Unified Robot Description Format)和SDF(Simulation Description Format)文件来描述机器人模型,他们都是XML语法框架下用来描述机器人的语言格式。虽然URDF是ROS中的标准格式,但它缺乏许多功能来描述更复杂的场景。例如,URDF只能指定单个机器人的运动学和动力学特性,它无法指定摩擦特性和处理闭链结构。此外,它不能指定环境信息,例如灯光、高度图等。SDF的提出就是为了解决URDF的缺点,它可以实现对机器人所有内容的完整描述,其可扩展性更适合于复杂的仿真。 ▍动力学引擎可以根据物体的物理属性计算运动、旋转和碰撞。动力学引擎的基础是系统动力学,动力学是对现实世界中物体运动规律的数学描述,这种数学描述主要是基于常微分方程的,物理引擎核心的任务就在于求解常微分方程。▍渲染引擎1)Isaac SimNVIDIA Isaac Sim是一款参考应用程序,它使开发人员能够在基于物理的虚拟环境中设计、模拟、测试和训练基于人工智能的机器人和自主机器。Isaac Sim 建立在 NVIDIA Omniverse 的基础上,具有完全的可扩展性,使开发人员能够构建基于通用场景描述(OpenUSD)的自定义模拟器,或者将 Isaac Sim 的核心技术集成到他们现有的测试和验证流程中。
项目主页:https://developer.nvidia.com/isaac/sim 2)AirSim2017年,微软研究院创建了AirSim,作为一个用于人工智能研究和实验的模拟平台。AirSim 是一款基于 Unreal Engine的无人机、汽车等多种设备的模拟器。它是开源的、跨平台的,并支持与流行的飞行控制器(如 PX4 和 ArduPilot)进行软件在环(Software-in-the-Loop, SIL)模拟,以及与 PX4 进行硬件在环(Hardware-in-the-Loop, HIL)模拟,以实现物理和视觉上逼真的模拟。AirSim 被开发为一个 Unreal 插件,可以简单地插入到任何 Unreal 环境中。同样也为 Unity 插件提供了一个实验性版本。AirSim 作为一个 AI 研究平台,主要用于实验深度学习、计算机视觉和强化学习算法在自动驾驶车辆中的应用。为此,AirSim 还提供了 API,以便以平台无关的方式检索数据和控制车辆。 项目链接:https://github.com/microsoft/AirSim ![]() 3)V-REPV-REP(Virtual Robot Experimentation Platform,现已更名为CoppeliaSim)是一款功能强大的机器人仿真软件,为开发者提供了一个集成的3D开发环境,用于快速原型验证、远程监控、快速算法开发、机器人相关教育和工厂自动化系统仿真。这款软件因其全面的功能和用户友好的界面,在机器人研究和教育领域广受好评。 V-REP具备几个核心特点,首先是其跨平台的能力,支持Windows、MacOS和Linux操作系统,为不同用户提供了灵活的选择。其次,V-REP提供了多种编程方法和编程语言支持,包括嵌入式脚本(支持Lua)、插件、附加组件、ROS节点、远程客户端应用编程接口等,且支持C/C++、Python、Java、Matlab、Octave等多种编程语言,极大地方便了不同技术背景的开发者。 在物理仿真方面,V-REP集成了多个物理引擎,包括ODE、Bullet、Vortex和Newton,能够根据物体的物理属性计算运动、旋转和碰撞,提供逼真的仿真效果。此外,V-REP还提供了完整的运动学解算器,支持任何机构的逆运动学和正运动学计算,使得仿真结果更加准确。 V-REP在机器人仿真方面的功能也十分强大,内置了丰富的机器人模型和控制接口,支持路径规划、图像处理、动态颗粒仿真等多种高级功能。通过详细的API和脚本功能,用户可以轻松地将各种功能集成和组合,实现复杂的机器人仿真任务。 除了上述功能外,V-REP还提供了丰富的视觉化工具,如数据记录与可视化(时距图、X/Y图或三维曲线)、图形编辑模式等,方便用户实时查看和分析仿真结果。此外,V-REP还支持多层取消/重做、影像记录、油漆仿真等功能,提高了用户的操作效率。 ![]() 项目主页:https://www.coppeliarobotics.com/ 4)UnityUnity机器学习agent工具包(ML-Agents)是一个开源项目,它使游戏和模拟能够作为训练智能agent的环境。我们提供了基于PyTorch的***算法的实现,使游戏开发者和爱好者能够轻松地为2D、3D以及VR/AR游戏训练智能agent。研究人员还可以使用提供的易于使用的Python API,通过强化学习、模仿学习、神经进化或任何其他方法来训练agent。这些训练好的agent可用于多种目的,包括控制NPC行为(在各种设置中,如多agent和对抗性)、游戏构建的自动化测试以及在发布前评估不同的游戏设计决策。ML-Agents工具包对游戏开发者和AI研究人员来说是互惠互利的,因为它提供了一个中心平台,可以在Unity的丰富环境中评估AI的进步,然后将这些进步提供给更广泛的研究和游戏开发者社区。 项目主页:https://github.com/Unity-Technologies/ml-agents 5)PybulletPyBullet 是一个用于机器人学、游戏开发和图形研究的开源物理仿真库。它是基于 Bullet Physics SDK,这是一个成熟的、广泛使用的开源物理引擎。PyBullet 提供了 Python 接口,使得开发者能够利用 Bullet 强大的物理仿真能力,同时享受 Python 的易用性。 主要优势:多体动力学仿真: PyBullet 能够精确模拟多体系统的动态行为,包括刚体和软体动力学。 机器人学支持: 它支持加载 URDF(统一机器人描述格式)文件,这是一种在机器人学中广泛使用的标准格式。 逆向动力学和运动规划: PyBullet 提供了逆向动力学求解器和运动规划算法,这对于机器人的路径规划至关重要。 渲染和可视化: 它包括一个简单的直接渲染器,也可以通过 VR 接口进行更高级的渲染。 强化学习环境: PyBullet 与 OpenAI Gym 兼容,为强化学习提供了标准化的环境和接口。 跨平台: 它可以在 Windows、Linux 和 macOS 上运行。 项目主页:https://github.com/bulletphysics/bullet3 6)PhyScenePhyScene是一种新颖的方法,用于生成具有真实布局、可移动目标和丰富物理交互性的交互式3D场景,这些特性专为具身agent量身定制。基于条件扩散模型来捕获场景布局,并设计了新颖的基于物理和交互性的引导函数,这些函数包含了来自物体碰撞、房间布局以及agent交互性的约束。 ![]() 项目主页:https://physcene.github.io/ 7)RoboGenRoboGen,这是一种生成式机器人agent,它通过生成式模拟自动学习多样化的机器人技能。RoboGen利用了基础和生成模型领域的最新进展,并没有直接使用或调整这些模型来生成策略或低级动作,而是倡导一种生成式方案,该方案利用这些模型自动生成多样化的任务、场景和训练监督,从而在最小人为监督的情况下扩大机器人技能学习的规模。RoboGen方法使机器人agent具备了自我引导的“提出-生成-学习”循环:agent首先提出有趣的任务和技能来开发,然后通过填充相关目标和资产以适当的空间配置来生成相应的模拟环境。之后,agent将提出的高级任务分解为子任务,选择**学习方法(强化学习、运动规划或轨迹优化),生成所需的训练监督,然后学习策略以获得所提出的技能。这项工作试图提取大规模模型中嵌入的广泛且多功能的知识,并将其转移到机器人领域。我们的完全生成式流程可以反复查询,产生与各种任务和环境相关的无穷无尽的技能演示。 ![]() 项目主页:https://robogen-ai.github.io/ 8)ThreeDWorldThreeDWorld(TDW)是一个用于交互式多模态物理模拟的平台。TDW能够在丰富的3D环境中模拟移动agent与物体之间的高保真感官数据和物理交互。其独特属性包括:实时接近照片级真实的图像渲染;目标和环境的库,以及用于自定义它们的例程;用于高效构建新环境类别的生成程序;高保真音频渲染;包括布料、液体和可变形物体在内的多种材料类型的真实物理交互;体现AIagent的可定制agent;以及对人类与VR设备交互的支持。TDW的API允许多个agent在模拟中交互,并返回一系列代表世界状态的传感器和物理数据。 ![]() 项目主页:https://www.threedworld.org/ 9)iGibson 1.0iGibson是一个基于Bullet的快速视觉渲染和物理模拟环境。iGibson配备了十五个完全可交互的高质量场景,数百个从真实家庭和办公室重建的大型3D场景,并且与CubiCasa5K和3D-Front等数据集兼容,提供了12000多个额外的可交互场景。iGibson的一些特点包括领域随机化、与运动规划器的集成以及易于使用的工具来收集人类演示。通过这些场景和功能,iGibson允许研究人员训练和评估使用视觉信号来解决导航和操纵任务的机器人agent,如开门、拿起和放置物体或在柜子里搜索。 ![]() 项目主页:https://svl.stanford.edu/igibson/ 10)SAPIENSAPIEN模拟器为机器人、刚体和铰接物体提供物理模拟。它通过纯Python接口支持强化学习和机器人技术。此外,它还提供了多种渲染模式,包括深度图、法线图、光流、活动光和光线追踪。 ![]() 项目主页:https://sapien.ucsd.edu/ 11)HabitatHabitat是一个用于研究具身人工智能(AI)的平台。Habitat能够在高度逼真的3D模拟环境中训练具身agent(虚拟机器人)。具体来说,Habitat由以下部分组成: (i)Habitat-Sim:一个灵活、高性能的3D模拟器,具有可配置的agent、传感器和通用的3D数据集处理能力。Habitat-Sim运行速度快—在渲染Matterport3D场景时,它能够在单线程下达到数千帧每秒(fps)的速度,而在单个GPU上进行多进程处理时,速度可超过10,000 fps。 (ii)Habitat-API:一个模块化的高级库,用于具身AI算法的端到端开发——定义任务(如导航、指令跟随、问题回答)、配置、训练和评估具身agent。 ![]() 项目主页:https://github.com/facebookresearch/habitat-sim 12)Open Dynamics Engine (ODE)介绍:ODE[3](Open Dynamics Engine,开源动力学引擎)是一个**免费的具有工业品质的用于模拟关节连接的刚体动力学的库,由Russell Smith在一些贡献者的帮助下开发而成。经过验证的应用场景包括在虚拟显示环境中模拟地面车辆,足式生物和移动物体。它具有快速、灵活、健壮的特点,并具有内置的碰撞检测功能。特点:支持具有任意质量分布的刚体;关节类型:球副、转动副、移动副、固定副、旋转电机、直线电机、万向节;碰撞基本体:球体、长方体、圆柱体、胶囊体、平面和三角形网格、凸面体;碰撞空间:四叉树、哈希空间和简单空间;模拟方法:根据Trinkle/Stuwart和Anitescu/Potra的拉格朗日乘子速度模型推导出运动方程;使用一阶积分器,速度很快但还不够准确,稍后将推出更高阶的积分器;时间步长方法的选择:可以使用标准的“大矩阵”方法或较新的迭代QuickStep方法;接触和摩擦模型:基于Baraff的Dantzig LCP求解器,尽管ODE实现了对Coloumb摩擦模型的更快近似;开放原生的C接口(尽管ODE大部分是用C++编写的)和基于C++接口。
13)Dynamic Animation and Robotics Toolkit (DART) 介绍:DART[5](动态动画和机器人工具箱)是由乔治亚理工学院的图形实验室和仿人机器人实验室创建的一个协作、跨平台的开放源码库。该库为机器人技术和计算机动画中的运动学和动力学应用提供数据结构和算法。由于DART使用广义坐标来表示铰接刚体系统,并使用Featherstone的铰接体算法来计算运动动力学,因此它的精度和稳定性得到了显著的提高。DART在机器人学和计算机动画中有着广泛的应用,因为它具有多体动力学模拟器和各种用于控制和运动规划的运动学工具。特点:支持多种平台:Ubuntu,Archlinux,FreeBSD,macOS和Windows;提供可扩展的API以解决各种优化问题,例如非线性编程和多目标优化。支持多种碰撞检测器:FCL,Bullet和ODE;支持各种碰撞形状,包括原始形状,凹面网格和概率体素网格;通过可定制的惯性和材料属性,支持众多原始的和任意的身体形状;提供对任意实体和坐标系的运动状态(例如,变换,位置,速度或加速度)的全面访问。即插即用的分层整体逆运动学求解器;使用李群表示法和Featherstone混合算法为铰接式动态系统实现高性能;为动态量及其派生提供全面的API,例如质量矩阵,科里奥利力,重力,其他外力和内力;使用隐式LCP处理接触和碰撞,以确保不穿透,定向摩擦以及近似的库仑摩擦锥条件;提供多个约束求解器:Lemke方法,Dantzig方法和PSG方法;支持“孤岛”技术来细分约束处理以提高性能。
用于二维环境(无z轴高度信息)的仿真器。最早1999年由USC Robotics Research Lab开发,常用于路径规划或多机器人 (multi-agents) 仿真。
15)MATLAB/SIMULINK 官方网站:https://uk.mathworks.com/products/robotics.html MATLAB机器人工具箱从MATLAB 2013版本开始引入,我了解的情况是一般以研究机械手和路径规划居多。Robotics Toolbox提供了ROS的接口,使得MATLAB代码和Simulink可以和ROS很好的结合,配合FRANKA机器人需要购买license.
16)GAZEBO 官方网站:http://gazebosim.org/
Gazebo是目前最广泛使用的仿真环境,最早在2004年由USC Robotics Research Lab (南加州大学机器人实验室) 开发。依托于ROS的发展,Gazebo具有很强的仿真能力,同时也在机器人研究和开发中得到了广泛应用。Gazebo的功能包括:动力学仿真、传感器仿真、三维环境仿真,同时支持多种机器人模型:包括PR2、Turtlebot、AR.Drone等。
介绍:MuJoCo[4]是由Emo Todorov为Roboti LLC而开发的一种物理引擎,旨在促进机器人技术、生物力学、图形、动画以及其他需要快速而准确仿真领域的研究和开发。它提供了速度,准确性和建模能力的独特组合,但它不仅仅是一个更好的模拟器。相反,它是**个从头开始设计的全功能模拟器,目的是基于模型的优化,尤其是通过接触进行的优化。MuJoCo使扩大计算密集型技术(例如**控制,物理一致状态估计,系统识别和自动化机制设计)成为可能,并将其应用于具有丰富接触行为的复杂动态系统。它还具有更多传统应用程序,例如在物理机器人上部署之前测试和验证控制方案,交互式科学可视化,虚拟环境,动画和游戏。特点:在广义坐标系中进行仿真,避免出现关节冲突;即使存在接触也可以很好地定义逆动力学;通过凸优化对约束进行统一的连续时间表述;约束包括软接触,极限,干摩擦,等式约束;能模拟粒子系统,布料,绳索和软物体;包括马达,圆柱体,肌肉,腱,滑块曲柄的执行器;可选择牛顿,共轭梯度或投影高斯-赛德尔求解器;可选择金字塔形或椭圆形的摩擦锥,密集或稀疏的雅可比方程式;可选择Euler或Runge-Kutta数值积分器;多线程采样和有限差分近似;直观的XML模型格式(称为MJCF)和内置的模型编译器;跨平台GUI在OpenGL中具有交互式3D可视化;用ANSI C编写并针对性能进行手工调整的运行时模块。
——全文完—— 关于集智联机器/PNP机器人 集智联机器人, 英文名字:Plug & Play Robotics简称PNP机器人, 取义为“集中智慧互联,达到即插即用”,目标用先进的机器人技术实现机器人在各个行业的快速使用。集智联机器人团队成员均来自于国内外机器人行业知名企业,具有较强的学术背景。 PNP机器人是聚焦机器人即插即用(Plug & Play)技术和Franka机器人等具身智能通用解决方案。 集智联机器人(PNP机器人) www.pnprobotics.com sales@pnprobotics.com 技术咨询/销售/合作 180 1817 5378(微信同号)
申请加入具身智能群,请发公司/学习+方向/院校+名字,谢谢。 |