1. 开篇
前言
现有机器人领域软件开发工具(仿真平台),大都基于Ubuntu系统,并基于ROS(机器人操作系统)进行搭建,传统上常用Gazebo,Pybullet,Mujoco,Airsim等仿真平台在CPU的基础上进行机械臂,小车,灵巧手,四足,人形,无人机,以及各种复合机器人的开发,但随着GPU的广泛应用,传统方式并不能充分利用GPU的性能,在这个基础上英伟达基于ROS 2构建了Isaac ROS,并开发了Isaac Manipulator,Isaac Sim等仿真平台以更好地推动具身智能在机器人领域的进展。并且和国内外众多厂商展开合作,目前已经成为工业界一颗冉冉上升的新星,也将成为未来的主流。在这样的背景下,为了满足众多开发者的参与其中的期待,CSDN联合英伟达开展了相关课程。
作为众多受益者之一,笔者分享一下产品体验,供各位看官参考。
笔者配置
Isaac ROS 版本: 1.2.0、 ROS 版本: ROS 2 Humble
硬件配置:
NVIDIA RTX 3090 GPU、Intel Core i9-14900KF CPU、32GB DDR5 内存
操作系统: Ubuntu 20.04 LTS
其他相关配置:
CUDA :11.7、 Pytorch:1.13
根据需求,配置合适的CUDA、Pytorch版本
CUDA链接:https://developer.nvidia.com/cuda-toolkit-archive,pytorch
Pytorch链接:Previous PyTorch Versions | PyTorch
2.. Isaac ROS
与之前使用传统的ROS2框架相比,Isaac ROS提供了更多针对NVIDIA GPU优化的功能包(GEM),例如图像处理和点云处理模块。将相同的图像处理任务在标准ROS2和Isaac ROS上运行,进行一个简单对比,在标准ROS2框架下,图像处理任务的平均处理时间为50ms,而在Isaac ROS上,借助GPU加速,处理时间降至15ms,性能提升约为3倍左右。在部署方面,通过Isaac ROS的一键部署功能,模型部署过程简化为几分钟内完成,相比传统框架提升了部署效率。对比传统的ROS框架,Isaac ROS的工具链使得开发和调试过程更加直观和高效。例如,数据流可视化功能可以轻松追踪传感器数据的流动,实时性能监控有助于即时了解系统的GPU资源使用情况。整体上,极大减少了开发调试时间。
对于Isaac ROS框架中AI工具集成,给予9分的满意度评分。与其他同类型框架相比,Isaac ROS在开发流程上有明显的效率提升,特别是在模型部署和性能优化方面表现优异。
建议:
1.GPU加速功能改进建议: 增加对更多型号和品牌GPU的支持,提升框架的普适性。
2.AI工具改进建议: 提供更多预训练的AI模型,覆盖更广泛的应用场景。 增强用户自定义模型的支持,提供更灵活的配置选项。增加更多详细的使用文档和示例代码,帮助新用户快速上手。
链接:NVIDIA Isaac ROS GEMs | NVIDIA 开发者
3. Isaac Manipulator
cuMotion:借助MoveIt进行开发,可通过同时运行多个轨迹优化来大规模解决机器人运动规划问题,并返回最佳解决方案。
FoundationPose:用于预测和追踪新型物体的 6D 姿态。足以应对极具挑战性的物体属性 (无纹理、光泽、微小) 以及快速运动或严重遮挡的场景。
FoundationGrasp:进行姿态抓取预测。预测结果通过 cuMotion在机器人上执行。
SyntheticaDETR:是一种用于室内环境中物体检测的模型,允许更快地检测、渲染和训练新物体。它还可用作 FoundationPose 等姿态估计器的前端,在姿态估计之前使用 2D 边界框来定位物体。
结合FoundationGrasp和cuMotion做了测试,在 Isaac Manipulator 进行测试,主要步骤如下:
加载 Isaac ROS 框架,配置机器人手臂参数。
设定运动规划目标,使用FoundationGrasp对物体进行6D抓取预测。
使用 cuMotion 进行并行轨迹优化,利用 GPU 的并行计算能力加速运动规划。
将优化后的轨迹发送至机器人手臂执行。
在使用 Isaac Manipulator 的过程中,cuMotion 库显著提升了运动规划的效率,内置的 AI 模提供了高精度和实时性的感知能力。模块化设计使得系统集成更加灵活,开发效率大幅提升。然而,在复杂环境下的模型优化和资源管理仍有进一步提升的空间。
建议:增加对更多运动规划算法的支持,如动态障碍物避让。提供更多场景下的预训练数据,提升模型在多样环境中的适应性。优化部署工具链,提供一键部署解决方案,减少手动配置步骤。
链接:Isaac Manipulator | NVIDIA 开发者
4. Isaac Sim
近年来,基于 Isaac Sim 的学术论文数量逐渐增加,涵盖机器人学习、强化学习、视觉识别等多个研究领域,也说明利用 GPU 加速和高效的物理引擎,实现高帧率和高精度的仿真仿真结果被广泛认可,值得一提的是该软件已经广泛应用于人形机器人的开发。但该软件对硬件要求较高,GPU显存16G以上,CPU内存32G以上,对于个人开发者需要一定的成本投入。
进行 GPU 加速仿真测试:
1.创建下落场景:
打开 Isaac Sim,创建一个新场景。
添加一个地面平面模型和一个多球体生成器。
初始创建 10 个球体,设置不同的初始位置和颜色。
2.逐步增加球体数量:
分别增加到 20 个、50 个、80 个球体,每次增加后运行仿真并记录帧率和物理模拟的流畅度。
观察物理引擎在不同数量物体下的表现,记录 GPU 使用率和仿真帧率。
结果:
随着球体数量的增加,CUDA 核心的并行计算能力确保了仿真过程的流畅性。即使在 80 个物体的情况下,帧率依然保持在每秒60帧以上。多球体下落场景中,物理仿真精准且无明显卡顿,展示了 NVIDIA PhysX® 5 的强大物理引擎能力。在工业仿真中,这种高效的并行计算能力能够显著缩短设计和测试周期,提高开发效率,适用于复杂场景的实时仿真需求。
进行 PyTorch 与 Isaac Sim 的集成测试:
1.基础视觉分类任务:对场景中的物体进行实时分类
在场景中放置不同形状的物体(方块、球体、圆柱)。集成预训练的 ResNet18 模型,通过场景中的摄像头实时获取图像数据。使用 ResNet18 模型对捕捉到的图像进行分类,并在界面上实时显示分类结果。
2.视觉引导抓取:实现简单机械臂的抓取
使用 Franka Emika 机器人模型,加载预训练的目标检测模型。实时图像处理进行目标检测,估计物体位置。根据位置估计结果,规划抓取路径并控制机器人进行抓取动作。
3.结果
在初次集成过程中,遇到了依赖库版本不匹配的问题,通过更新相关依赖库后得以解决。仿真环境中实时获取的数据极大地简化了 AI 模型的训练流程,减少了现实环境中数据采集的复杂性。在视觉引导抓取任务中,机器人抓取成功率达到了85%,主要受限于光照条件和物体位置的准确性。相比传统方法,AI 辅助抓取能够适应更复杂和动态的环境,提高了机器人的灵活性和适应性。
在使用 Isaac Sim 进行 GPU 加速仿真和 AI 框架集成的过程中,整体体验非常顺畅。仿真效率高,开发工具丰富,尤其在处理复杂场景和多机器人协作时表现出色。AI 集成部分提供了强大的支持,极大地简化了模型训练和任务实现过程。