ROS是一组开源软件库和工具,可帮助您构建机器人应用程序。专业人士和业余爱好者可以协作和分享他们的代码以进行软件开发。工程师们可以快速重复使用代码块,并轻松找到构建完全功能的机器人设备所需的所有工具。您一定已经注意到ROS1和ROS2,选择一开始使用哪个或何时切换到另一个可能是很困难的选择。现在,让我们跳进文章中,了解ROS2是什么,以及与之前版本相比,有什么让人感兴趣的地方呢?
什么是ROS2
ROS2是从底层构建时便考虑使其适用于商业用途,它是机器人操作系统现有框架的重构,经过优化以适用于工业应用,开发可在新的应用中进行扩展,如移动机器人、无人机群和自动驾驶汽车。
首先,ROS2是一个通信框架,它包含以下基本概念:
DDS:数据分发服务,是ROS2的通信管道;
节点:执行ROS2功能的代码文件,节点之间的通信称为主题;
发布者/订阅者方法:一个节点发布消息,多个节点可以订阅该消息;
服务方法:一个节点向另一个节点发送请求,该节点处理请求并发送响应;
操作方法:一个节点将另一个节点设置为操作服务器的目标,操作服务器将处理该目标并向客户端发送进度更新和结果;
节点参数:可以配置节点的特定变量值。
ROS2的重要性 ROS1最初由Willow Garage于2007年构建和发布,以加快机器人技术的研究。然而,它并不是为商业用途而设计的,而是为了创建一个研究工具,因此安全、网络拓扑和系统正常运行时间等问题并不是优先考虑的。随着ROS现在被采用于商业领域,它的许多主要缺点正在变得明显。因此,更加有必要从头开始重新构建ROS以满足商业用途,这就是ROS2。为响应商业用途的要求,新增以下几点:
安全性——需要在必要时进行适当的加密以确保安全
多样化的网络——需要能够在广泛的网络上运行和通信,因为机器人从局域网到多个卫星跳跃都需要适应各种环境并进行通信。
实时计算——需要能够可靠地进行实时计算,因为运行时效率在机器人领域至关重要
产品准备——需要符合相关的安全/工业标准,以使其准备好面市。
ROS2较ROS1的变化
ROS2使用DDS作为网络协议,提高了安全性和可靠性;
ROS2去除了ROS1的单点故障(ROS主节点),提高了系统的容错性;
ROS2在弱网络或丢包网络上表现比ROS1更好;
ROS2客户端库共享rcl实现,提供了更一致的性能,同时也更容易创建新的客户端库支持新的语言。
ROS2构建机器人平台的特性
ROS2 的API设计现代化,而且它所需的其他软件依赖较少,可以更方便地在不同的计算机系统上使用。
ROS2使用DDS作为中间件,DDS提供了一些有用的功能,如可靠的数据传输和实时能力。DDS还支持UDP组播、共享内存和TLS等协议,可以帮助用户更好地管理通信。
ROS2还提供了一些新功能,如动态参数和主题重映射,可以让用户更方便地在运行时调整程序的行为。
ROS2还可以更方便地处理多个节点,同时也可以更高效地管理软件资源。
在NVIDIAJetson上使用ROS
NVIDIA Jetson属于一个嵌入式开发平台,整合了硬件模组,开发工具包和生态,它可以用于运行深度学习模型和机器人操作系统ROS。
NVIDIA使用了一个已有的深度学习模型部署框架,并结合TensorRT技术来提高模型推理的性能。他们还使用了一些AI模型,如ResNet18、MobileNetV1/V2、SSD、YOLO和FasterRCNN,用于分类和物体检测等任务。
此外,还有一个编码器和解码器节点,可用于将YOLOv5模型的推断结果以张量的形式发布到解码器节点中。最后,我们将订阅这些张量并将其转换为特定的参数,最终将结果作为Detection2DArray消息发布给每个图像。
Nvidia 网络研讨会
对于计算物体距离,可以使用一种高效的模型叫做半监督模型(ESS),这个模型使用了一个深度学习算法,可以根据图像对的视差来计算物体距离,并返回一个连续的视差图。如果想把它和ROS2结合起来使用,需要参考一些相关的包,比如isaac_ros_stereo_image_proc、isaac_ros_ess和isaac_ros_bi3d。
Nvidia 网络研讨会
针对人体姿势估计,可以使用一个预训练模型,在图像上推断出人体的17个部位,并使用ros2_trt_pose包进行标记和可视化。这样可以得到一个实时的图像输出,显示人体的关节和骨骼的位置。
如果要使用多传感器处理、视频和图像理解来构建人工智能的端到端解决方案,NVIDIA提供了ros2_deepstream节点,可以进行目标检测和属性分类的推断,并在检测到的物体周围显示边界框和标签。
此外,您还可以参加NV即将举办的Isaac ROS网络研讨会,了解如何使用预训练的DNN模型来估计立体相机的测距。注册后,您可以在2023年1月17日参加此次研讨会,获取更多信息。
Nvidia 网络研讨会
想要学习ROS(机器人操作系统),可以从推荐的Humble Hawksbill指南开始,其中包括概念、教程、安装步骤以及很多有趣的项目。而对于ROS2,它支持Gazebo Fortress,这是一个基于ROS的机器人模拟器,包括超过十几个现成的分割相机、GPS等传感器,以及3D视图图形界面等功能。此外,移动机器人Humble则为机器人臂操纵系统的开发注入了新的活力,特别是为混合编程功能而开发的:使用(较慢的)全局运动规划器和(较快的)局部运动规划器,使机器人可以在在线和动态环境中解决不同的任务。
如果想要更好地管理ROS2开发周期并在机器人集成过程中获得简便的步骤,可以使用Cogniteam Nimbus。Nimbus使用容器化应用程序作为软件组件,通过代码、控制台界面或使用GUI从Web中组织、连接和重新组装这些组件,使任何人(即使没有ROS特定的知识)都可以了解和查看构成这些组件的机器人执行的各种构建块。它还允许在同一机器人上使用各种ROS发行版(包括ROS1和ROS2组件),以解决OS和ROS版本之间的问题耦合问题。
对于想要开始ROS开发的人,可以使用Seeed Jetson产品,如J2021,它是一个手掌大小的边缘AI盒子,内置Jetson Xavier NX 8GB模块,可以提供高达21 TOPS的AI性能,包括USB 3.1端口、用于WIFI的M.2 Key E、用于SSD的M.2 Key M、RTC、CAN、Raspberry Pi GPIO 40针等众多IO。它具有铝制外壳、冷却风扇、预安装JetPack系统等功能,并可作为NVIDIA Jetson Xavier NX Dev Kit的替代品,适用于构建自主应用程序和复杂的AI任务,如图像识别、目标检测、姿态估计、语义分割、视频处理等。
这是一款用于Jetson Nano/Xavier NX/TX2 NX的嵌入式板卡,它的设计和功能几乎与NVIDIA Jetson Xavier NX嵌入式板卡相同,拥有多个USB 3.1端口、M.2钥匙E用于WIFI、M.2钥匙M用于固态硬盘、RTC、CAN、树莓派GPIO 40针等接口,可加速你的下一个人工智能应用的开发和部署。它还具有多个摄像头连接器,适用于运行多个神经网络,用于图像分类、物体检测、分割和语音处理等应用。
审核编辑 :李倩
-
机器人
+关注
关注
211文章
28405浏览量
207016 -
操作系统
+关注
关注
37文章
6818浏览量
123319 -
自动驾驶
+关注
关注
784文章
13804浏览量
166426
原文标题:
文章出处:【微信号:ChaiHuoMakerSpace,微信公众号:柴火创客空间】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论