0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

了解ROS2是什么

柴火创客空间 来源:柴火创客空间 2023-02-28 13:38 次阅读

ROS是一组开源软件库和工具,可帮助您构建机器人应用程序。专业人士和业余爱好者可以协作和分享他们的代码以进行软件开发。工程师们可以快速重复使用代码块,并轻松找到构建完全功能的机器人设备所需的所有工具。您一定已经注意到ROS1和ROS2,选择一开始使用哪个或何时切换到另一个可能是很困难的选择。现在,让我们跳进文章中,了解ROS2是什么,以及与之前版本相比,有什么让人感兴趣的地方呢?

246f94ce-b217-11ed-bfe3-dac502259ad0.png

什么是ROS2

ROS2是从底层构建时便考虑使其适用于商业用途,它是机器人操作系统现有框架的重构,经过优化以适用于工业应用,开发可在新的应用中进行扩展,如移动机器人、无人机群和自动驾驶汽车。

24953652-b217-11ed-bfe3-dac502259ad0.png

首先,ROS2是一个通信框架,它包含以下基本概念:

DDS:数据分发服务,是ROS2的通信管道;

节点:执行ROS2功能的代码文件,节点之间的通信称为主题;

发布者/订阅者方法:一个节点发布消息,多个节点可以订阅该消息;

服务方法:一个节点向另一个节点发送请求,该节点处理请求并发送响应;

操作方法:一个节点将另一个节点设置为操作服务器的目标,操作服务器将处理该目标并向客户端发送进度更新和结果;

节点参数:可以配置节点的特定变量值。

24b33936-b217-11ed-bfe3-dac502259ad0.png

ROS2的重要性 ROS1最初由Willow Garage于2007年构建和发布,以加快机器人技术的研究。然而,它并不是为商业用途而设计的,而是为了创建一个研究工具,因此安全、网络拓扑和系统正常运行时间等问题并不是优先考虑的。随着ROS现在被采用于商业领域,它的许多主要缺点正在变得明显。因此,更加有必要从头开始重新构建ROS以满足商业用途,这就是ROS2。为响应商业用途的要求,新增以下几点:

安全性——需要在必要时进行适当的加密以确保安全

嵌入式系统——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消息发布给每个图像。

24cd12ac-b217-11ed-bfe3-dac502259ad0.png

Nvidia 网络研讨会

对于计算物体距离,可以使用一种高效的模型叫做半监督模型(ESS),这个模型使用了一个深度学习算法,可以根据图像对的视差来计算物体距离,并返回一个连续的视差图。如果想把它和ROS2结合起来使用,需要参考一些相关的包,比如isaac_ros_stereo_image_proc、isaac_ros_ess和isaac_ros_bi3d。

250006c6-b217-11ed-bfe3-dac502259ad0.png

Nvidia 网络研讨会

针对人体姿势估计,可以使用一个预训练模型,在图像上推断出人体的17个部位,并使用ros2_trt_pose包进行标记和可视化。这样可以得到一个实时的图像输出,显示人体的关节和骨骼的位置。

如果要使用多传感器处理、视频和图像理解来构建人工智能的端到端解决方案,NVIDIA提供了ros2_deepstream节点,可以进行目标检测和属性分类的推断,并在检测到的物体周围显示边界框和标签

此外,您还可以参加NV即将举办的Isaac ROS网络研讨会,了解如何使用预训练的DNN模型来估计立体相机的测距。注册后,您可以在2023年1月17日参加此次研讨会,获取更多信息

251d2e0e-b217-11ed-bfe3-dac502259ad0.png

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任务,如图像识别、目标检测、姿态估计、语义分割、视频处理等。

253644b6-b217-11ed-bfe3-dac502259ad0.png

这是一款用于Jetson Nano/Xavier NX/TX2 NX的嵌入式板卡,它的设计和功能几乎与NVIDIA Jetson Xavier NX嵌入式板卡相同,拥有多个USB 3.1端口、M.2钥匙E用于WIFI、M.2钥匙M用于固态硬盘、RTC、CAN、树莓派GPIO 40针等接口,可加速你的下一个人工智能应用的开发和部署。它还具有多个摄像头连接器,适用于运行多个神经网络,用于图像分类、物体检测、分割和语音处理等应用。

25512d44-b217-11ed-bfe3-dac502259ad0.png

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 机器人
    +关注

    关注

    211

    文章

    28405

    浏览量

    207016
  • 操作系统
    +关注

    关注

    37

    文章

    6818

    浏览量

    123319
  • 自动驾驶
    +关注

    关注

    784

    文章

    13804

    浏览量

    166426

原文标题:

文章出处:【微信号:ChaiHuoMakerSpace,微信公众号:柴火创客空间】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Micro-ROS:把ROS2放在MCU上

    机器人的发展。   ROS便是为机器人在研发的过程中的代码复用提供支持的开源框架,大量的机器人开源项目,从感知到控制、从定位到构图、从导航到可视化,几乎都使用ROS作为基础。   Micro-ROS从何而来?   Micro-
    的头像 发表于 04-07 07:13 7731次阅读

    系统镜像Ubuntu_ROS2ROS2是什么意思,带有ROS2开发环境吗?

    请问一下,百度文库资料里面,下图所示的系统镜像Ubuntu_ROS2ROS2是什么意思,带有ROS2开发环境吗?与前面4GB版本的镜像有什么区别?
    发表于 03-01 23:06

    ROS2的安装与使用 精选资料推荐

    ros2的乌龟仿真turtlesim,介绍topic,service,action等元素及其使用,介绍ros的基本操作
    发表于 08-30 08:24

    如何在ROS2中运行小乌龟呢

    ROS2中运行小乌龟,其实主要就是安装两个工具,turtlesim和rqt。A: 安装turtlesim。输入【sudo apt update】输入【sudo apt install
    发表于 11-05 06:08

    基于无线wifi网络的X3派和PC虚拟机通过ROS2实现跨设备通信

    1、X3派和PC虚拟机都连接无线wifi网络的情况下通过ROS2实现跨设备通信多机通信是ROS的基础能力之一,相比于ROS1,ROS2通过非常简单的配置即可实现多机通信。对于两个安装了
    发表于 07-13 15:13

    教你一步步创建自己的ROS2工作空间应用

    ,IP地址替换为自己的实际IP地址。ssh root@192.168.31.1922、在X3派中执行下面的命令脚本进行系统的更新以及ROS2编译环境依赖安装apt -y update &
    发表于 11-24 15:00

    【昉·星光 2 高性能RISC-V单板计算机体验】四:在 VisionFive2 上安装 ROS2 humble

    在 VisionFive2 上安装 ROS2 humble ROS(Robot Operating System)是一种用于编写机器人软件的灵活框架。它是一个工具(tools)、库
    发表于 09-04 03:33

    【昉·星光 2 高性能RISC-V单板计算机体验】五:在 VisionFive2 上体验 ROS2 humble

    在 VisionFive2 上体验 ROS2 humble 一、系统准备 参考 在 VisionFive2 上安装 ROS2 humble 安装并配置
    发表于 09-04 04:59

    Linux嵌入式开发笔记(六)在ROS2中运行小乌龟实例

    ROS2中运行小乌龟,其实主要就是安装两个工具,turtlesim和rqt。A: 安装turtlesim。输入【sudo apt update】输入【sudo apt install
    发表于 11-02 15:21 10次下载
    Linux嵌入式开发笔记(六)在<b class='flag-5'>ROS2</b>中运行小乌龟实例

    Window10怎么安装ROS2

    Window10怎么安装ROS2,以下的操作都要管理员的权限,我可以提前剧透,我应该应该是没有安装上DDS,应该是算安装好了80%的样子。
    的头像 发表于 02-22 10:12 920次阅读
    Window10怎么安装<b class='flag-5'>ROS2</b>

    X3派和PC虚拟机之间基于ROS2和wifi的通信

    X3派、PC虚拟机连接无线wifi网络下,通过ROS2实现跨设备通信……
    的头像 发表于 07-13 15:03 993次阅读
    X3派和PC虚拟机之间基于<b class='flag-5'>ROS2</b>和wifi的通信

    DDS在ROS2中的应用

    DDS在ROS2中的应用 DDS在ROS2系统中的位置至关重要,所有上层建设都建立在DDS之上。在这个ROS2的架构图中,蓝色和红色部分就是DDS。 刚才我们也提到,DDS是一种通信的标准,就像4G
    的头像 发表于 11-24 17:54 925次阅读
    DDS在<b class='flag-5'>ROS2</b>中的应用

    ros1和ros2的通信模型

    数据 ROS2: 参与者(DomainParticipant):一个参与者Participant就是一个容器,对应于一个使用DDS的用户,任何DDS的用户都必须通过Participant来访问全局
    的头像 发表于 11-27 11:26 793次阅读
    <b class='flag-5'>ros</b>1和<b class='flag-5'>ros2</b>的通信模型

    ROS2中自带例程测试

    如果你是一个ROS2的开发者,可能对刚才我们使用的ROS2命令比较熟悉,这时你可能也会产生一个问题:我们之前也安装了ROS2系统,那ROS2的原生功能还可以正常运行么? 我们再来试一试
    的头像 发表于 11-28 16:29 969次阅读
    <b class='flag-5'>ROS2</b>中自带例程测试

    在TogetherROS中如何安装ROS2功能包

    安装ROS2功能包 接下来,还有一个很重要的配置,那就是安装ROS2功能包,我们说TogetherROS是基于ROS2深度优化的,很多模块还是会复用ROS2中的功能,所有
    的头像 发表于 12-01 16:02 995次阅读
    在TogetherROS中如何安装<b class='flag-5'>ROS2</b>功能包