本文只做学术分享,如有侵权,联系删文
具身智能机器人的种类多种多样,有双足机器人、四组机械狗、四轮机器人、四轮+机械臂、两轮+机械臂,和自动驾驶仿真类似,机器人也需要逼真的环境去验证各类算法,下面就为大家盘点下领域常用的一些通用机器人和面向真实场景的机器人仿真框架。
1)Isaac Sim
NVIDIA Isaac Sim是一款参考应用程序,它使开发人员能够在基于物理的虚拟环境中设计、模拟、测试和训练基于人工智能的机器人和自主机器。Isaac Sim 建立在 NVIDIA Omniverse 的基础上,具有完全的可扩展性,使开发人员能够构建基于通用场景描述(OpenUSD)的自定义模拟器,或者将 Isaac Sim 的核心技术集成到他们现有的测试和验证流程中。
项目主页:https://developer.nvidia.com/isaac/sim
2)AirSim
2017年,微软研究院创建了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-REP
V-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)Unity
Unity机器学习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)Pybullet
PyBullet 是一个用于机器人学、游戏开发和图形研究的开源物理仿真库。它是基于 Bullet Physics SDK,这是一个成熟的、广泛使用的开源物理引擎。PyBullet 提供了 Python 接口,使得开发者能够利用 Bullet 强大的物理仿真能力,同时享受 Python 的易用性。主要优势:
多体动力学仿真: PyBullet 能够精确模拟多体系统的动态行为,包括刚体和软体动力学。
机器人学支持: 它支持加载 URDF(统一机器人描述格式)文件,这是一种在机器人学中广泛使用的标准格式。
逆向动力学和运动规划: PyBullet 提供了逆向动力学求解器和运动规划算法,这对于机器人的路径规划至关重要。
渲染和可视化: 它包括一个简单的直接渲染器,也可以通过 VR 接口进行更高级的渲染。
强化学习环境: PyBullet 与 OpenAI Gym 兼容,为强化学习提供了标准化的环境和接口。
跨平台: 它可以在 Windows、Linux 和 macOS 上运行。
项目主页:https://github.com/bulletphysics/bullet3
6)PhyScene
PhyScene是一种新颖的方法,用于生成具有真实布局、可移动目标和丰富物理交互性的交互式3D场景,这些特性专为具身agent量身定制。基于条件扩散模型来捕获场景布局,并设计了新颖的基于物理和交互性的引导函数,这些函数包含了来自物体碰撞、房间布局以及agent交互性的约束。
项目主页:https://physcene.github.io/
7)RoboGen
RoboGen,这是一种生成式机器人agent,它通过生成式模拟自动学习多样化的机器人技能。RoboGen利用了基础和生成模型领域的最新进展,并没有直接使用或调整这些模型来生成策略或低级动作,而是倡导一种生成式方案,该方案利用这些模型自动生成多样化的任务、场景和训练监督,从而在最小人为监督的情况下扩大机器人技能学习的规模。RoboGen方法使机器人agent具备了自我引导的“提出-生成-学习”循环:agent首先提出有趣的任务和技能来开发,然后通过填充相关目标和资产以适当的空间配置来生成相应的模拟环境。之后,agent将提出的高级任务分解为子任务,选择最佳学习方法(强化学习、运动规划或轨迹优化),生成所需的训练监督,然后学习策略以获得所提出的技能。这项工作试图提取大规模模型中嵌入的广泛且多功能的知识,并将其转移到机器人领域。我们的完全生成式流程可以反复查询,产生与各种任务和环境相关的无穷无尽的技能演示。
项目主页:https://robogen-ai.github.io/
8)ThreeDWorld
ThreeDWorld(TDW)是一个用于交互式多模态物理模拟的平台。TDW能够在丰富的3D环境中模拟移动agent与物体之间的高保真感官数据和物理交互。其独特属性包括:实时接近照片级真实的图像渲染;目标和环境的库,以及用于自定义它们的例程;用于高效构建新环境类别的生成程序;高保真音频渲染;包括布料、液体和可变形物体在内的多种材料类型的真实物理交互;体现AIagent的可定制agent;以及对人类与VR设备交互的支持。TDW的API允许多个agent在模拟中交互,并返回一系列代表世界状态的传感器和物理数据。
项目主页:https://www.threedworld.org/
9)iGibson 1.0
iGibson是一个基于Bullet的快速视觉渲染和物理模拟环境。iGibson配备了十五个完全可交互的高质量场景,数百个从真实家庭和办公室重建的大型3D场景,并且与CubiCasa5K和3D-Front等数据集兼容,提供了12000多个额外的可交互场景。iGibson的一些特点包括领域随机化、与运动规划器的集成以及易于使用的工具来收集人类演示。通过这些场景和功能,iGibson允许研究人员训练和评估使用视觉信号来解决导航和操纵任务的机器人agent,如开门、拿起和放置物体或在柜子里搜索。
项目主页:https://svl.stanford.edu/igibson/
10)SAPIEN
SAPIEN模拟器为机器人、刚体和铰接物体提供物理模拟。它通过纯Python接口支持强化学习和机器人技术。此外,它还提供了多种渲染模式,包括深度图、法线图、光流、活动光和光线追踪。
项目主页:https://sapien.ucsd.edu/
11)Habitat
Habitat是一个用于研究具身人工智能(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