首页 > 最新资讯 > 基于 NVIDIA Jetson 使用硬件在环设计机器人
基于 NVIDIA Jetson 使用硬件在环设计机器人

基于 NVIDIA Jetson 使用硬件在环设计机器人

2023-06-21 13:45

#人工智能 #深度学习


 

 

Hardware-in-the-Loop(硬件在环,HIL)测试是一种强大的工具,用于验证和核实包括机器人技术和计算机视觉在内的复杂系统的性能。本文探讨了 HIL 测试是如何通过 NVIDIA Isaac 平台应用于这些领域的。

NVIDIA Isaac 平台由 NVIDIA Isaac Sim 和 NVIDIA Isaac ROS 组成。前者是一个仿真器,为测试机器人算法提供仿真环境,后者是针对 NVIDIA Jetson 优化的硬件加速软件,其中包含机器学习、计算机视觉和定位算法。基于 NVIDIA Isaac 平台进行 HIL 测试,您可以验证和优化机器人软件栈的性能,从而获得更安全、更可靠、更高效的产品。

下文将讨论 HIL 系统的各个组件,包括 NVIDIA Isaac 平台的软件和硬件。此外还会研究它们如何协同工作,以优化机器人和计算机视觉算法的性能。我们也将探讨使用 NVIDIA Isaac 平台进行 HIL 测试的好处,并与其他测试方法进行比较。

NVIDIA Isaac Sim

 

基于 Omniverse 的 NVIDIA Isaac Sim 为测试机器人和计算机视觉算法提供了一个照片级真实、物理精准的虚拟环境,使用户能够在无损坏物理硬件风险的前提下对性能进行微调。同时,该仿真器也是高度可定制的,是测试各种场景和用例的理想选择。

您可以利用 NVIDIA Isaac Sim 创造更智能、更先进的机器人。平台提供了一套能够帮您构建复杂算法的工具和技术,使机器人能够执行复杂的任务。

通过使用 Omniverse Nucleus 和 Omniverse Connectors,NVIDIA Isaac Sim 可以轻松协作、共享和导入通用场景描述(USD)格式的环境和机器人模型。通过集成 Isaac ROS/ROS 2 接口、全功能的 Python 脚本,以及用于导入机器人和环境模型的插件,可以实现更加高效和有效的机器人仿真。

 

图 1. NVIDIA Isaac Sim 堆栈

 

您可以使用 ROS 或 ROS 2,又或是 Python 与 NVIDIA Isaac Sim 进行交互。运行 NVIDIA Isaac Gym 和 NVIDIA Isaac Cortex,生成合成数据,或者将其用于数字孪生。

NVIDIA Isaac Sim 在内部采用定制版本的 ROS Noetic,使用 roscpp 构建用于 ROS Bridge,与 Omniverse 框架和 Python 3.7 无缝协作。这个版本与 ROS Melodic 兼容。

NVIDIA Isaac Sim 目前支持 ROS 2 Foxy 和 Humble 的 ROS 2 Bridge,建议将 Ubuntu 20.04 用于 ROS 2。

了解更多详细信息,请参阅 NVIDIA Isaac Sim(https://developer.nvidia.com/isaac-sim)

NVIDIA Isaac ROS

 

NVIDIA Isaac ROS 建立在机器人操作系统(ROS)之上,提供了一系列先进的功能和工具,帮您打造更智能、更强大的机器人。这些功能包括先进的绘图和定位,以及物体检测和跟踪。有关最新功能的更多信息,请参阅 Isaac ROS Developer Preview 3 (https://developer.nvidia.com/blog/build-high-performance-robotic-applications-with-nvidia-isaac-ros-developer-preview-3/)。

通过使用 NVIDIA Isaac 平台的 Isaac ROS,您可以创建复杂的机器人应用程序,精确地执行复杂的任务。凭借强大的计算机视觉和定位算法,Isaac ROS 对于任何希望创建高级机器人应用程序的开发人员来说都是一个有价值的工具。

 

图 2. Isaac ROS 和软件层

 

Isaac GEMs for ROS 是一套为机器人社区发布的 GPU 加速 ROS 2 软件包,是 NVIDIA Jetson 平台的一部分。

Isaac ROS 提供了一套用于感知及 AI 的软件包,以及被称为 NVIDIA Isaac Transport for ROS (NITROS) 的完整管线。这些软件包已经针对 NVIDIA GPU 和 Jetson 平台进行了优化,具有图像处理和计算机视觉的功能。

在这篇文章中,我们收录了如何为以下软件包运行 HIL 的示例:

NVIDIA Isaac ROS vslam

NVIDIA Isaac ROS apriltag

NVIDIA Isaac ROS nvblox

NVIDIA Isaac ROS Proximity segmentation

有关其他 Isaac ROS 软件包和最新 Isaac ROS Developer Preview 3 的更多信息,请参阅 硬件规格和设置

对于此测试,您需要一个工作站或笔记本电脑,以及一个 NVIDIA Jetson 平台:

带 NVIDIA RTX 的 NVIDIA 显卡 

键盘和鼠标

NVIDIA JetPack 5+(测试版本为 5.1.1)

以太网电缆


 

在 Jetson 模块和电脑之间建立以太网连接,您需要按照以下步骤操作:

将电缆的一端插入设备的以太网端口。

打开设备,等待其完全启动。

当电脑和 NVIDIA Jetson 准备就绪并连接后,请按照 /NVIDIA-AI-IOT/isaac_demo (https://github.com/NVIDIA-AI-IOT/isaac_demo)进行操作。

运行 Demo 和驱动

第一步,在工作站上运行 NVIDIA Isaac Sim。使用 ./isaac_ros.sh 脚本运行一个 Carter 机器人的 Demo。

当仿真开始时,您可以看到 NVIDIA Isaac Sim 的立体相机进行输出。使用两个摄像头,机器人已经准备好接收在 NVIDIA Jetson 模块上运行的 Isaac ROS 的输入。


 

 

Isaac ROS Visual SLAM

NVIDIA Isaac ROS Visual SLAM 采用了视觉里程计和同步定位与建图技术(SLAM)的结合。

SLAM 是一种通过结合先前获得的轨迹来增强视觉 SLAM 准确性的方法。通过检测当前场景是否曾被看过(摄像机运动的循环),就可以优化先前估计的摄像机姿势。


 


 

 

图 7. Isaac ROS NVblox 工作流程

图 8. Isaac ROS vs.lam 输出

按照 /NVIDIA-AI-IOT/isaac_demo (https://github.com/NVIDIA-AI-IOT/isaac_demo) 进行操作,Isaac ROS vslam 软件包即可在 Demo 上运行。

NVIDIA Isaac ROS apriltag

ROS 2 apriltag 软件包使用 NVIDIA GPU 来加速图像中的检测,并发布位姿、ID 和其他元数据。这个软件包可与 ROS 2 节点的 CPU AprilTag 检测相媲美。

 


 

 

 


 

 

图 12. 使用 Isaac ROS vslam 和 

 

 

 Isaac ROS vslam 和 nvblox

图 13. 使用 Foxglove 进行仿真测试

总结

在这篇文章中,我们向您展示了如何设置 HIL 和使用 NVIDIA Jetson Isaac ROS 模块进行测试,以及如何尝试 NVIDIA Isaac Sim。请在桌面电脑和 Jetson 模块之间使用有线连接。想要显示所有遥测的原始数据,您需要一个可靠的连接。

更多详细信息,请参阅 Isaac ROS 系列网络研讨会(https://gateway.on24.com/wcc/experience/elitenvidiabrill/1407606/3998202/isaac-ros-webinar-series)。

相关新闻