使用 NVIDIA Isaac Sim、ROS 和 Nimbus 开发多个机器人环境
2023年05月30日 由 Susan 发表
221456
0
使用虚幻竞技场游戏引擎进行多机器人模拟
大约20年前,Cogniteam开始了机器人开发之旅,想法是开发一个机器人框架来实现多机器人任务分配和协作。最初称为CogniTAO,这个系统的简化版本后来被发布为ROS决策模块。
在当时,多个机器人的使用案例很少,这些机器人的3D模拟也不可能实现。因此亚基尔.阿里写了一个修改版的2000-2004 Unreal Tournament游戏引擎,以实现对四个机器人的模拟。亚基尔.阿里小小的四人团队花了大约3年的时间开发了一个能够可靠运行15分钟的模拟环境。
图1.四个机器人的模拟(上)和机器人的视频(下)
这个环境可以在五台最先进的台式机上模拟四个机器人,并配备一架摄像头、Hokuyo LiDAR、测程仪和地图制作功能,并从每个机器人远程接收视频数据。亚基尔.阿里团队的一位工程师编写了一个C++ TCP客户端,可以直接从游戏引擎在本地网络上流式传输数据,并全屏显示。亚基尔.阿里团队必须按照严格的顺序运行代码,以确保机器人能够按时在正确的位置生成。
使用Gazebo进行多机器人模拟
快进到10年后的2013年,当亚基尔.阿里团队将他们的工作转移到Gazebo后,它成为了机器人仿真标准平台。三名程序员花费了约2年的时间在两台Intel Xeon机器上模拟了10个机器人。他们使用ROS move_base 导航栈,并使用OpenCV Hough圆变换进行对象检测,这是机器人团队在TensorFlow出现之前用于演示的工具。当时团队人员Igor Makhtes开发了RQT插件,用于控制和显示来自多个机器人的数据流(图2),他用了6个月的时间完成。
图2.带有 RQT 插件的 10 个机器人的视频馈送和地图视图
这些机器人需要彼此通信,但在连接不可用时也需要操作。为了实现这一点,每个机器人都必须运行自己的ROS主节点,并通过ROS多主节点网络进行同步。
使用 NVIDIA Isaac Sim 进行多机器人模拟
几个月前,亚基尔.阿里请求Cogniteam算法团队的计算机科学学生Saar Moseri,利用云机器人生态系统Nimbus和NVIDIA Isaac Sim设置一个多机器人仿真场景。亚基尔.阿里团队的内部测试团队和我希望使用Nimbus代理来控制亚基尔.阿里团队的机器人并查看它们生成的数据。
Saar花了约2周的时间熟悉环境并配置系统。图3显示了这一努力的结果,运行在Cogniteam实验室的一台标准(单台)台式机上,配备了NVIDIA GeForce RTX 3080。
图3.英伟达艾萨克·西姆多机器人默认设置
Saar使用了NVIDIA NGC提供的Isaac Sim文档来安装和设置环境。他使用Nimbus在仿真机器人上安装了代理,并创建了一个网关节点来通过ROS接收仿真数据。
图4.雨云机器人编辑器(上)和雨云配置编辑器(下)
然后亚基尔.阿里团队创建了如图5所示的节点配置。
图5.具有move_base
导航的 Nimbus 简单任务配置
这两个构建块(已经被容器化)是一个网关节点和一个用于move_base导航的节点。该配置部署到在Cogniteam实验室中运行的仿真台式机上的代理中。Nimbus hub还提供了其他更复杂的配置(包括源代码),包括用于GMapping、路径跟踪等的节点。
亚基尔.阿里团队和亚基尔.阿里对这种方法所带来的无限可能性感到惊讶。在以上所描述的配置中,模拟传感器数据通过ROS网关从Isaac Sim中传输,支持ROS和ROS 2。Nimbus实现了查看和控制功能。
这样的设置可以让亚基尔.阿里团队在本地实验室进行基本的仿真任务和模拟机器人车队的控制,以及许多其他功能。亚基尔.阿里团队现在可以记录机器人的模拟运行和传感器数据,远程SSH进入仿真机器人,全球监测仿真数据,甚至可以通过Web浏览器向亚基尔.阿里团队的验证团队发送有关仿真进度的电子邮件和短信通知。
将Isaac Sim和Nimbus结合起来,就形成了一个统一的系统,其特点与现有的云模拟产品相似,但在本地机器上运行,不涉及额外的云模拟计算成本。此外,它还开辟了新的尖端模拟流程,例如在循环中使用硬件进行模拟。当模拟在云中运行时,这是不可能的。图6显示了在Nimbus中控件、导航和映射的外观。
图6.雨云机器人WebRTC视频监控(上)和雨云地图视图和自主控制(下)
要复制所述的设置,请参阅 Isaac Sim 文档。然后访问 Nimbus 创建一个免费帐户,登录,并按照说明使用免费许可证创建机器人。
访问 Nimbus 中心以部署 Isaac Sim 配置。由于一切都已经容器化(包括 Isaac Sim)并且控制是基于浏览器的,因此您无需安装任何应用程序。计算机上的代理将设置执行所需的一切。
然后,在该代理的监视页上,添加与设置相关的任何数据的监视。在代理设置中,您可以通过在 ROS 流上添加条件来定义通知,例如:
“if GoalStatus == ABORTED” send sms/mail to simulation@your-company.com
自主机器人的成功部署,仿真是关键。对于测试来说,多次运行同一个场景是非常关键的,但是多机器人模拟不同。开发一个高保真的多机器人仿真环境是复杂的,需要时间,但是可以用NVIDIA艾萨克·辛和Nimbus来简化,本文对此进行了描述。亚基尔.阿里的团队和亚基尔.阿里将于5月29日至6月2日在伦敦参加ICRA2023 (布斯C22),展示他们的浏览器界面与以色列的机器人和远程模拟。
来源:https://developer.nvidia.com/blog/develop-a-multi-robot-environment-with-nvidia-isaac-sim-ros-and-nimbus/