技术研究 | ROS2技术行业应用探索

2023-03-24 来源:长扬科技

前言


ROS,即机器人操作系统(Robot Operating System),是ROS1和ROS2的统称,ROS2为ROS1的升级版。虽然ROS的名称为机器人操作系统,但是其本身并不是一个操作系统,而是一个软件库和工具集。简单地说,ROS就是一个分布式的通信框架,帮助程序进程之间更方便地通信。具体来讲,我们知道一个机器人通常包含多个部件,每个部件都有配套的控制程序,以实现机器人的运动与视听功能等。而ROS就是负责协调这些部件按照一定的流程工作,或者协调由多个机器人组成的机器人集群互相通信,解决分布式通信问题。


时至今日,ROS已经广泛用于各种机器人的开发中,无论是机械臂、移动机器人、水下机器人,还是人形机器人、复合机器人,都可以看到ROS的身影,ROS已经成为机器人领域的普遍标准。


一 . ROS2的特点


ROS的一个初衷就是提高机器人研发中的软件复用率。围绕这个初衷,ROS在自身的设计上也尽量做到了模块化,由通信机制、开发工具、应用功能、生态系统四大部分组成。而ROS2在继承ROS1的各种优势的同时,又增加了许多新的特点,比如:


多机器人系统:未来机器人一定不会是独立的个体,机器人和机器人之间也需要通信和协作,ROS2为多机器人系统的应用提供了标准方法和通信机制。

跨平台:机器人应用场景不同,使用的控制平台也会有很大差异,比如自动驾驶汽车中的算力性能肯定比AMR机器人强很多,为了让所有机器人都可以运行ROS2,ROS2可以跨平台运行于Linux、Windows、MacOS、RTOS,甚至是没有任何系统的微控制器(MCU)上。

实时性:机器人运动控制和很多行为策略要求机器人具备实时性,比如机器人要可靠得在100ms内发现前方的行人,或者稳定的在1ms周期内完成运动学、动力学的解算,ROS2为类似这样的实时性需求提供了基本保障。

网络连接:无论在怎样的网络环境下,ROS2都可以尽量保障机器人大量数据的完整性和安全性,比如在wifi信号不好的时候数据也要尽力发送过去,在有黑客入侵风险的场景下要对数据进行加密解密。


二 . 整体架构


ROS1和ROS2的架构对比如图1所示,其中,左侧图为ROS1架构,右侧图为ROS2架构。无论是ROS1,还是ROS2,它们都具备三个层次,分别是OS层、中间层和应用层。


微信图片_20230324181319.png


图1:ROS1和ROS2架构


1、OS层(OS Layer)

ROS并不是一个传统意义上的操作系统,无法像Windows、Linux一样直接运行在计算机硬件之上,而是需要依托于基础操作系统。所以在OS层,即为我们常规认识中的操作系统。ROS1仅能够支持Linux系统;而ROS2已能够支持除Linux系统之外的Windows、MacOS、RTOS等操作系统。


2、中间层(Middleware Layer)

OS层中的操作系统均为通用操作系统,并没有针对机器人开发提供特殊的中间件,所以ROS在中间层做了大量工作。其中,ROS1采用了基于TCPROS/UDPROS的通信系统。该通信系统基于TCP/UDP网络,在此之上进行了再次封装,也就是TCPROS/UDPROS。通信系统使用发布/订阅、客户端/服务器等模型,实现多种通信机制的数据传输。除了TCPROS/UDPROS的通信机制外,ROS1还提供一种进程内的通信方法——Nodelet,可以为多进程通信提供一种更优化的数据传输方式,适合对数据传输实时性方面有较高要求的应用。


而在ROS2中,通信协议则更换成了更加复杂,但也更加完善的DDS系统。DDS是一个国际标准,但是能够实现该标准的软件系统并不是唯一的,不同厂家的DDS系统的性能不同,适用的场景也不同,用户可以根据应用需求选择所需的DDS系统。而为了减少开发成本,ROS2则设计了一个ROS Middleware,简称RMW。RMW指定了一个标准的接口,比如如何发数据,如何收数据,数据的各种属性如何配置等等,所有的DDS厂商均依据此要求提供ROS2开发所需的接口。这对于ROS2开发者而言,进行应用迁移则更加方便。


另外,在通信机制之上,无论是ROS1,还是ROS2,均提供了大量机器人开发相关的库,如数据类型定义、坐标变换、运动控制等,可以提供给应用层使用。


3、应用层(Application Layer)

在应用层,ROS1设置了一个管理者(即:Master),负责管理整个系统的正常运行。这个节点管理器的角色至关重要,所有节点都得听它指挥,类似于一个公司的CEO,如果这个CEO突然消失,公司将会成一团乱麻。所以ROS2取消了这一角色,而节点则通过另外一套自发现机制,找到彼此,从而建立稳定的通信连接。


另外,ROS社区内共享了大量的机器人应用功能包,这些功能包内的模块以节点为单位运行,以ROS标准的输入输出作为接口,开发者不需要关注模块的内部实现机制,只需要了解接口规则即可实现复用,极大地提高了开发效率。


三 . 行业中的应用探索


随着人工智能技术的飞速发展与进步,机器人的智能化已经成为现代机器人发展的终极目标。机器人发展的速度在不断提升,应用范围也在不断拓展。而ROS作为一个机器人编程框架,在其中发挥着重要的纽带连接作用,并在众多领域中得以应用,如科研机器人、工业机器人、轮式机器人、自动驾驶汽车乃至航天无人驾驶设备均有ROS的身影。由于ROS2相较ROS1运行更可靠,持续性更好,更节省资源,消息传递实时性更佳,所以ROS2更适合应用在工业生产环境。而基于ROS2系统研发的机器人也逐渐被应用于各行各业中,具有较大的市场前景。


1、汽车制造行业

我国当前有超过50%的工业机器人应用于汽车制造行业,其中50%以上为焊接机器人;在发达国家,汽车工业机器人占机器人总保有量的53%以上。据统计,世界各大汽车制造厂,年产每万辆汽车所拥有的机器人数量为10台以上。采用自动化控制机器人,可以准确地对作业点位进行焊接,避免人工作业时的误差,而且可以在工业机器人应用程序不断提升的背景下,使汽车生产制造模式更加流程化。


2、化工行业

目前应用于化工行业的主要为洁净机器人及其自动化设备,比如大气机械手、真空机械手、洁净镀膜机械手、洁净AGV、RGV及洁净物流自动传输系统等。很多现代化工业品生产要求精密化、微型化、高纯度、高质量和高可靠性,在产品的生产中要求有一个洁净的环境。洁净度的高低直接影响产品的合格率。因此,在化工领域,随着未来更多的化工生产场合对于环境清洁度的要求越来越高,洁净机器人将会得到进一步的利用。


3、钢结构行业

焊接机器人的身影越来越多地出现在钢结构行业中,焊接机器人凭借着结构紧凑、焊接效率高、批量生产,在钢结构行业中发挥稳定,提高了钢结构行业中产品的稳定性。焊接机器人可以根据需要设计不同的轴数,轴数不同,其关节灵活度也会不同。焊接机器人搭配辅助设备也会提高焊接灵活度。在钢结构焊接生产中,钢结构行业中工件繁多复杂,传统焊接容易导致效率低下、质量参差不齐等缺陷。目前,焊接机器人在钢结构行业的应用包括:弧焊机器人、柔性轨道机器人、焊接机器人焊缝视觉跟踪、焊接工作站等等。


4、煤矿行业

在煤矿行业中,机器人作为机电行业自动化发展的产物,通过合理的应用机器人可以减轻井下劳动强度,保障职工生命安全。在很多发达国家地区,对于煤矿机器人的应用已经十分重视。如掘进机器人,可以明显提升巷道的掘进效率,提高采煤的整体质量;喷浆机器人,不仅可以对支护的整体质量进行保障,与此同时也可以减少工作人员自身的负担。目前,由于我国煤矿整体技术水平并不是很高,因此对于机器人的研究开发显得尤为重要。


5、水利行业

我国各种水库水坝约9.8万座,由于大坝长年挡水运行、水工建筑物的自然老化和受地震等地质灾害的影响,水利工程面临越来越多的安全问题,如坝体渗漏、混凝土裂缝、混凝土冲蚀等缺陷,严重影响工程的正常运行和效益的发挥。随着水下机器人和检测技术的发展,水下机器人逐步被我们应用于水库搜查、大坝检测、安全检查等方面。另外,在水环境监测和洪涝灾害监测中,也常使用空中无人机获取即时影像或视频,为决策者进行环境评估和制定决策方案,提供了重要的依据。


6、电子电气行业

目前世界工业界装机最多的工业机器人是SCARA型四轴机器人;第二位的是串联关节型垂直6轴机器人。在手机生产领域,视觉机器人,例如分拣装箱、撕膜系统、激光塑料焊接、高速四轴码垛机器人等适用于触摸屏检测、擦洗、贴膜等一系列流程的自动化系统的应用。据有关数据表明,产品通过机器人抛光,成品率可从87%提高到93%。因此,无论“机器手臂”还是更高端的机器人,投入使用后都会使生产效率大幅提高。


四. 结束语


ROS的诞生让机器人行业在共同的框架下快速发展,基于ROS诞生了多样化的机器人生态及应用,机器人控制、感知和决策得以更好的组织和运行。随着机器人研究和设计的逐步深入,机器人在汽车制造、化工、钢结构、煤矿、水利、电子电气等多种行业得以应用。而面对不同行业的应用需求,将对机器人的导航、任务调度、运行、系统稳定性,及可拓展性,乃至成本考核提出越来越高的要求。


参考文献:


1、谭界雄,田金章,王秘学,《水下机器人技术现状及在水利行业的应用前景》,《中国水利》,2018(000)012,P33-36


2、李耀贵,杨斌,刘睿,《工业机器人在自动化控制领域的实际应用分析》,《新型工业化》,2019(04),169-172


3、刘根民,《煤矿机器人的现状与发展》,《装备机械》,2019(01),71-73


ISO9001

质量管理体系认证

ISO14001

环境管理体系认证

ISO27001

信息安全管理体系认证

ISO20000

信息技术服务管理体系认证

信息系统

安全运维服务资质