ROS在机器人工程中的应用

(整期优先)网络出版时间:2023-04-24
/ 2

ROS在机器人工程中的应用

王启迪 ,王瑞 ,郑润泽 ,莫兵

西安工程大学

摘要:相对于传统的自动化类专业,机器人工程更强调由机器自动化向人工智能的进化,当前机器人行业尤其是智能机器人行业缺乏统一的标准,导致机器人功能的开发和维护只能由机器人生产厂商来做。因此将 ROS 应用于机器人工程专业教学中,文章以智能机器人综合应用为背景,采用移动机器人以及多机械臂作为手段和对象,按工程应用需求进行设计,为毕业设计独立完成研究开发工作打下扎实的基础。

关键词:机器人工程;ROS;SLAM;机械臂

新工科建设是主动应对新一轮科技革命与产业变革的战略行动,它的主要内容为新技术、新业态、新产业、新模式。机器人与人工智能专业在新工科建设中备受关注。智能机器人的研究包括但不限于机器人,还包括图像识别、深度学习、运动控制、语音交互等。智能机器人不是一项技术,而是下一次的产业革命。随着信息技术加速发展,社会需求飞速变革,导航定位硬件及算法、运动智能算法、深度学习算法等的突破,带动了运动规划、图像识别、语音识别等技术的不断进步,智能机器人不但在工业界得到延伸,也深入服务领域。“机器人”的核心概念和功能是代替人从事一些人类无法完成或是“不愿意”做的事情的自动化机构。人是一个高度复杂的智能体,如果机器人要取代人完成一些工作,则机器人必然也是一个高度复杂的智能体。

1 机器人专业特点

机器人工程专业是跨学科的综合性专业,其最终目的是要培养能够独立进行机器人研发、算法优化的综合性人才。大学的本科教育是培养人才的关键,而相关教育平台、硬件的选择也至关重要。移动机器人学包含了许多工程和学科的知识,包括但不限于机械、电气、电子工程、计算机,甚至认知和社会科学,因此一款性能良好、配置全面的移动机器人是非常契合机器人工程专业教学要求的平台和工具。同时,教学型机器人平台也是继工业机器人蓬勃发展以来,下一个最惹人注目和具有极高发展前景和充满商机的领域。因此重视移动机器人相关知识的教授和学生能力的培养,将有助于学生紧跟时代节奏,顺利完成就业。机器人开发难度大,从业门槛高,没有开发标准等因素严重阻碍了机器人行业的发展。因此,当前急需一个标准的开发方法,一个高效统一的软件架构,一套辅助开发的工具来帮助广大的机器人开发者发挥自己的才智,构建机器人工程的“高楼大厦”。智能机器人是人类科技进步和产业发展的必然趋势,未来的智能机器人将远远超出人们目前的想象。

2 ROS介绍

2.1 ROS 是什么

机器人操作系统(Robot Operating System,ROS),是一个基于 Linux 的软件框架,这个框架把原本松散的零部件耦合在了一起,为他们提供了通信架构。

ROS 本质上是一个中间件,它为基于 ROS 的应用程序之间建立起沟通的桥梁,所以也是运行在基操作系统上的环境,在这个环境上,机器人的感知、决策、控制算法可以更好地组织和运行。

2.2 ROS在智能机器人开发中的角色

如图1 所示,执行机构通常包含运动底盘,机械手臂,机械手抓等机械或电气执行单元。感知系统一般由视觉、语音、激光、IMU 等传感器组成。机器人大脑主要由环境信息处理以及机器人行为决策控制等一系列算法模块组成。常见机器人功能有:环境建模与定位,自然交互,运动控制与规划,计算机视觉等组成。操作系统提供算法单元之间的连接,算法与执行机构之间的连接,相当于人类的中枢神经“小脑”。ROS在机器人开发中扮演的角色就是“小脑”。

当前机器人行业特别是智能机器人行业存在的问题就是缺乏统一的标准,没有统一的硬件架构,没有统一的软件架构,没有统一的操作系统甚至没有统一的开发语言。这严重阻碍了技术的流通和人才的流通。导致一个机器人功能的开发和维护只能由机器人本身的生产厂商来做。几乎无可能像手机一样可以由大量的第三方开发人员来开发大量优质的能够适用于大部分机器人的应用。ROS的诞生正是为了解决这一问题,为机器人开发提供统一的“标准”。

1681549364628

3 ROS 在机器人教学中的探索

以自动化工程中机器人综合智能应用为背景,采用移动机器人作为手段和对象,按复杂工程应用需求进行设计,参考指定场景和具体设计要求,基于机器人操作系统 ROS 完成具有明确的系统与作业性能要求的智能机器人系统设计过程,包括分工设计、编程开发及集成应用实现、测试、评估及报告。设计过程和内容使学生能够综合运用所学到的专业基础和专业方向核心课程知识和技能,设计和开发具体项目,在智能机器人方向得到专业设计能力的综合性训练。要求完成强化资料阅读,通过综合设计中团队合作分工、交流、设计、制作编程、测试评估及各阶段的头书面报告,得到完整的专业化工程设计及解决实际问题能力的培养,为毕业设计独立完成研究开发工作打下坚实的基础。

ROS是“新工科”的最佳实践“机器人开发”。与老工科相比,更强调学科的实用性、交叉性与综合性。而机器人的特点是跨学科、综合性、工程性,是人工智能最具有挑战性的实践平台。ROS 与“新工科”教育机器人方面。ROS真正融合了很多人工智能的技术,包括深度学习、导航、SLAM、决策、人机交互等。

3.1 能力的培养

课程培养学生的能力,具体包括以下几方面能力

(1)了解智能机器人相关技术点,了解智能机器人组成架构。

(2)综合性的专业基础知识和技能应用能力的培养,包括计算机硬件、软件、机器人运动控制、机器入动态控制/智能感知与决策算法、通信及人机交互技术。

(3)具体掌握基于机器人操作系统 ROS 的移动机器人开发方法。

(4)培养学生学习标准化设计、测试文档及技术报告编写能力。

(5)培养学生智能机器人综合应用能力。

3.2 课程情况

以智能机器人综合智能应用为背景,采用移动机器人以及多关节手臂作为手段和对象,按复杂工程应用需求进行设计,参考指定场景和具体设计要求,基于机器人操作系统 ROS 完成具有明确的系统与作业性能要求的智能机器人系统设计过程,包括分工设计、编程开发及集成应用实现、测试、评估及报告。课程具有以下特色。开发架构采用当前行业主流开发框架,实用性较强。底层驱动开发:STM32嵌入式开发;操作系统层以及开发工具:ROS+rviz+gazebo辅助应用开发库、科大讯飞语音、百度 AI、OpenCV、AI 框架。

3.3 课程主要内容

整体课程分为 3 个阶段。

第一阶段:机器人软件系统构建以及硬件系统

第二阶段:机器人基础功能开发

第三阶段:机器人开发与综合系统设计。

第一阶段以操作系统认知及ROS系统认知为主,并认识一个 ROS 工程。第二阶段包括基础功能开发,从C++编写一个node,到话题服务通信机制,再到参数服务器、tf构建、运动学解算等。第三个阶段主要是机器人开发与综合系统设计,包括navigation自主导航实验、多点导航实验、机械臂抓取服务开发、AR 码识别追踪、语音交互等,并完成几个综合涉及,如自主充电开发实验、物料识别与抓取实验、定点抓取应用实验等。

4 结语

从机器人工程专业人才培养目标来讲,相对于传统的自动化专业,机器人工程专业更强调由机器自动化向人工智能的进化,这就突出了软件及算法的学习和开发在专业课程中的重要性,而ROS因为其开源性、通用性、复用性和社区性的特点,成为被最为广泛接受的学习和开发平台。以智能机器人综合智能应用为背景,采用移动机器人以及多关节手臂作为手段和对象,按复杂工程应用需求进行设计,为毕业设计独立完成研究开发工作打下扎实的基础。