机器翻译:
FogROS 2: An Adaptive and Extensible Platform for Cloud and Fog Robotics Using ROS 2 Abstract— Mobility, power, and price points often dictate that robots do not have sufficient computing power on board to run modern robot algorithms at desired rates. Cloud computing providers such as AWS, GCP, and Azure offer immense computing power on demand, but tapping into that power from a robot is non-trivial. In this paper, we present FogROS2, an easy-to-use, open-source platform to facilitate cloud and fog robotics that is compatible with the emerging Robot Operating System 2 (ROS 2) standard. FogROS 2 provisions a cloud computer, deploys and launches ROS 2 nodes to the cloud computer, sets up secure networking between the robot and cloud, and starts the application running. FogROS 2 is completely redesigned and distinct from its predecessor to support ROS 2 applications, transparent video compression and communication, improved performance and security, support for multiple cloud-computing providers, and remote monitoring and visualization. We demonstrate in example applications that the performance gained by using cloud computers can overcome the network latency to significantly speed up robot performance. In examples, FogROS 2 reduces SLAM latency by 50%, reduces grasp planning time from 14s to 1.2s, and speeds up motion planning 28x. When compared to alternatives, FogROS 2 reduces network utilization by up to 3.8x. FogROS2, source, examples, and documentation is available at github.com/BerkeleyAutomation/FogROS2.
FogROS 2:使用 ROS 2 的云和雾机器人的自适应和可扩展平台 摘要——移动性、功率和价格点通常表明机器人没有足够的计算能力来以所需的速率运行现代机器人算法。 AWS、GCP 和 Azure 等云计算提供商可按需提供强大的计算能力,但利用机器人的这种能力并非易事。在本文中,我们介绍了 FogROS2,这是一个易于使用的开源平台,可促进与新兴机器人操作系统 2 (ROS 2) 标准兼容的云和雾机器人技术。 FogROS 2 配置云计算机,将 ROS 2 节点部署和启动到云计算机,在机器人和云之间建立安全网络,并启动应用程序运行。 FogROS 2 完全重新设计,与其前身不同,支持 ROS 2 应用程序、透明视频压缩和通信、改进的性能和安全性、支持多个云计算提供商以及远程监控和可视化。我们在示例应用程序中展示了使用云计算机获得的性能可以克服网络延迟,从而显着提高机器人性能。在示例中,FogROS 2 将 SLAM 延迟降低了 50%,将抓取规划时间从 14 秒减少到 1.2 秒,并将运动规划速度提高了 28 倍。与替代方案相比,FogROS 2 可将网络利用率降低多达 3.8 倍。 FogROS2、源代码、示例和文档可在 github.com/BerkeleyAutomation/FogROS2 上获得。
文档:
FogROS 2 是加州大学伯克利分校的开源云机器人试点平台。使用 Amazon Web Services (AWS) 等商业集群的云计算现在速度足够快,可以实现安全的计算密集型机器人功能,例如从视频构建 SLAM 地图、抓取规划和高维运动规划在云端使用高近乎实时的高性能硬件和 GPU。FogROS 2 提供 ROS 2 功能来简化机器人代码的部署。开发人员不需要更改他们的代码——他们只需要指定他们希望他们的代码在其上运行的计算机的 AWS 配置。FogROS 2 协调启动硬件实例、安装软件和依赖项、保护机器人与云通信以及启动云进程的细节。
在示例应用程序中,我们使用 FogROS 2 将计算密集型 ROS 2 节点部署到云中,用于 SLAM、Grasp Planning 和 Motion Planning。对于 Visual SLAM,我们在多核云计算机上运行ORB-SLAM 2节点,我们获得了 2 倍的加速。对于 Grasp Planning,我们在云中的 GPU 实例上运行Dex-Net节点并获得了 12 倍的加速。对于运动规划,我们在 96 核云计算机上运行运动规划模板并获得了 28 倍的加速。FogROS 2 是加州大学伯克利分校的开源云机器人试点平台。使用 Amazon Web Services (AWS) 等商业集群的云计算现在速度足够快,可以实现安全的计算密集型机器人功能,例如从视频构建 SLAM 地图、抓取规划和高维运动规划在云端使用高近乎实时的高性能硬件和 GPU。FogROS 2 提供 ROS 2 功能来简化机器人代码的部署。开发人员不需要更改他们的代码——他们只需要指定他们希望他们的代码在其上运行的计算机的 AWS 配置。FogROS 2 协调启动硬件实例、安装软件和依赖项、保护机器人与云通信以及启动云进程的细节。
在示例应用程序中,我们使用 FogROS 2 将计算密集型 ROS 2 节点部署到云中,用于 SLAM、Grasp Planning 和 Motion Planning。对于 Visual SLAM,我们在多核云计算机上运行ORB-SLAM 2节点,我们获得了 2 倍的加速。对于 Grasp Planning,我们在云中的 GPU 实例上运行Dex-Net节点并获得了 12 倍的加速。对于运动规划,我们在 96 核云计算机上运行运动规划模板并获得了 28 倍的加速。
云机器人 云机器人包含了云和机器人之间的许多关系。在这里,我们关注云提供的功能,明确关注 FogROS 2 通过使用云可以为机器人提供的功能。
云是什么? 简而言之,云提供了对计算资源的按使用付费的网络访问。云服务提供商,如亚马逊网络服务 (AWS)、谷歌云平台 (GCP) 和微软 Azure,设置和维护计算硬件,如多核服务器、图形处理单元 (GPU)、张量处理单元 (TPU) )、现场可编程门阵列 (FPGA) 等。要使用计算硬件,需要使用信用卡注册服务,然后使用基于浏览器或基于程序的界面来打开和关闭、配置和访问这些计算机。
云服务提供商将他们的计算机存放在全球不同地区的不同数据中心。下面将解释其原因。
云计算延迟 计算延迟在机器人应用中通常很关键。无论是计算新路径、重建环境还是计划操作,都希望快速完成。机器人在单独使用其板载计算能力时可能会发现计算速度太慢。在云中使用高端或硬件加速计算可以加快计算速度,但代价是机器人和云之间的网络往返时间。因此,只有当云计算时间和网络往返时间的组合比仅机器人更快时,使用云才能获得优于仅机器人计算的优势。
例如,机器人通常没有板载 GPU,但许多现代机器人算法从 GPU 处理中受益匪浅。当深度神经网络的前向传递在机器人的 CPU 上需要 14 秒而在 GPU 上只需要 0.6 秒时,使用云的潜在加速是显着的。
云的网络延迟 云的网络延迟可能非常短。最关键的因素是机器人与云之间的距离。越远,延迟越长(这是由于光速造成的)。第二个因素是机器人和云之间的网络连接的带宽或比特率。
要了解带宽或比特率,请尝试使用互联网速度测试工具。
要了解云的延迟,请尝试cloudping.info。该工具向不同的数据中心发送一个小数据包,并测量响应返回之前的时间。您可以预计附近数据中心的响应时间在 10 到 40 毫秒范围内。
借助cloudping.info,您可以快速了解应该为云机器人应用程序使用哪个数据中心。
边缘是什么? 边缘是指尽可能靠近机器人的计算资源。由于延迟通常是许多应用程序中的一个关键因素,因此通常希望计算机更靠近机器人。
雾是什么? 雾涵盖了云和边缘计算资源之间的一切,包括云和边缘计算资源。
FogROS 2 和云机器人 FogROS 2 通过简化在云中运行 ROS 2 节点并让它们与机器人通信的过程,将 ROS 2 应用程序与云集成。FogROS 2 负责设置云计算机、安装 ROS 和依赖项、保护网络通信、启动远程节点等等。作为用户,您只需配置哪些节点部署到哪个区域和计算机类型。
入门 FogROS 2 简化了在云中运行部分 ROS 2 应用程序的过程。主要好处是通过使用基于云的高端计算机和硬件加速来加速计算密集型节点。通常需要的唯一更改是启动配置。
在描述如何配置 ROS 2 应用程序以使用 FogROS 2 之前,我们将讨论两个关键的事情:区域和实例类型。
地区 该区域是云计算机的物理位置。由于网络延迟随着机器人和云之间距离的增加而增加,因此选择物理上靠近的区域是必不可少的。了解区域和延迟的一个很好的工具是cloudping.info。通常,最好选择延迟最低的区域(参见下面的讨论)。
实例类型 云计算机具有不同的硬件规格和一系列选项:CPU 内核的数量、内存量、包含的硬件加速器的类型(例如,GPU、TPU、FPGA)等等。以下是一些示例注意事项:
ROS 节点是否使用深度神经网络并且没有 GPU 或 TPU?如果是这样,具有 GPU 或 TPU 的云计算机可以显着加快计算速度。 ROS节点是否利用了多核并发?如果是这样,具有比机器人更多的内核(例如,32 核、72 核、96 核)的云计算机可以显着加快计算速度。 ROS 节点能否使用专门的硬件加速器,例如 FPGA?如果是这样,具有适当硬件的云计算机可以显着加快计算速度。 运行的节点是否超出了机器人的处理能力?如果是这样,硬件加速就没有足够的计算机内核来满足需求那么重要了。 实例类型选择的第二部分是确定实例大小,或者需要多少计算来优化性价比(或刚好适合预算)。高端实例类型每小时成本更高,因此理想情况下,应选择满足性能标准的最低规格。例如,如果应用程序在 32 核计算机之外没有任何好处,那么选择 92 核计算机将浪费金钱。如何最好地确定实例大小可以来自对应用程序代码的深入理解或运行一系列不同实例大小的实验。
实例类型和区域 上述讨论中的一个警告是,并非所有区域都具有所有实例类型。您可能需要查看不同的区域或实例类型才能为您的应用程序找到最佳的计算资源。入门 FogROS 2 简化了在云中运行部分 ROS 2 应用程序的过程。主要好处是通过使用基于云的高端计算机和硬件加速来加速计算密集型节点。通常需要的唯一更改是启动配置。
在描述如何配置 ROS 2 应用程序以使用 FogROS 2 之前,我们将讨论两个关键的事情:区域和实例类型。
地区 该区域是云计算机的物理位置。由于网络延迟随着机器人和云之间距离的增加而增加,因此选择物理上靠近的区域是必不可少的。了解区域和延迟的一个很好的工具是cloudping.info。通常,最好选择延迟最低的区域(参见下面的讨论)。
实例类型 云计算机具有不同的硬件规格和一系列选项:CPU 内核的数量、内存量、包含的硬件加速器的类型(例如,GPU、TPU、FPGA)等等。以下是一些示例注意事项:
ROS 节点是否使用深度神经网络并且没有 GPU 或 TPU?如果是这样,具有 GPU 或 TPU 的云计算机可以显着加快计算速度。 ROS节点是否利用了多核并发?如果是这样,具有比机器人更多的内核(例如,32 核、72 核、96 核)的云计算机可以显着加快计算速度。 ROS 节点能否使用专门的硬件加速器,例如 FPGA?如果是这样,具有适当硬件的云计算机可以显着加快计算速度。 运行的节点是否超出了机器人的处理能力?如果是这样,硬件加速就没有足够的计算机内核来满足需求那么重要了。 实例类型选择的第二部分是确定实例大小,或者需要多少计算来优化性价比(或刚好适合预算)。高端实例类型每小时成本更高,因此理想情况下,应选择满足性能标准的最低规格。例如,如果应用程序在 32 核计算机之外没有任何好处,那么选择 92 核计算机将浪费金钱。如何最好地确定实例大小可以来自对应用程序代码的深入理解或运行一系列不同实例大小的实验。
实例类型和区域 上述讨论中的一个警告是,并非所有区域都具有所有实例类型。您可能需要查看不同的区域或实例类型才能为您的应用程序找到最佳的计算资源。