以科研项目为依托建设机器人操作系统实践课程
2019-01-30张云洲吴成东
王 帅, 张云洲, 吴成东
(东北大学 机器人科学与工程学院, 辽宁 沈阳 110819)
1 建设机器人操作系统实践课程的必要性
机器人技术被誉为当代最高意义的自动化,将为产业结构、思维方式和社会关系带来新的变革,“机器人革命”有望成为第三次工业革命的一个切入点和重要增长点,对全球制造业格局具有极其深远的影响。美国、日本、欧洲等国家和地区高度重视机器人技术发展,纷纷将发展机器人产业上升为国家战略。2015年5月国务院印发的《中国制造2025》中,机器人领域位列十大重点领域的第二位[1]。推进机器人技术的研究,已成为我国推进制造强国战略的重要支点。
随着机器人系统的复杂度不断提高,机器人系统架构及软硬件开发的难度也迅速增加。为了使机器人的功能应用在不同硬件平台上,降低智能机器人开发中不必要的重复劳动,斯坦福大学与Willow Garage公司合作开发了机器人操作系统(robot operating system,简称ROS)[2]。ROS集成了现有大部分的开源软件平台(如OpenCV等)和机器人软件应用包(如SLAM和OMPL等)[3-4],具有交叉编译、开源、分布式管理等优点,加强了机器人代码的复用率和模块化,提高了ROS的稳定性与实时性,逐步成为机器人研发领域的通用平台[5]。
人才是产业发展的基础。随着产业需求的快速增加,机器人专业的人才培养成为国内外教育界的重要使命。作为智能机器人的基础性支撑技术,“机器人操作系统”正在快速进入国内外机器人专业的课堂,并成为核心课程之一。由于具有很强的专业性,对其教学和科研都带来了前所未有的挑战。机器人操作系统具有版本更新快、内容变动大、兼容性差等特点,如何将教学的相对稳定性与科研的前沿性相结合是摆在教师面前的重大难题。相应的机器人硬件平台种类繁多,需要大量的人力、物力进行调研、调试、维护和管理,必须进行版本控制、机器人选型、操作系统与硬件平台适配、操作系统定制与移植等,而这些工作都是以教学和科研的结合为基础的[6]。因此,将科研项目中的实验引入到实验教学环节中,可以让学生直接接触前沿知识和了解产业发展动态,充分发挥他们的主观能动性,提高创新意识和理论联系实际的能力[7]。
作为一门实践性很强的崭新课程,目前ROS实践课程极为薄弱,非常缺乏必要的技术资料和相应的实验设施。本文以促进机器人专业人才培养为宗旨,以提高实践课程教学质量为核心,依托科研项目构建了ROS实践课程。
2 机器人操作系统相关课程现状
无论是国内或国外,机器人操作系统课程建设都处于起步阶段,但发展很快。最早的相关课程从2010年开始,目前已经有相当多的课程涉及机器人操作系统。据统计,国内外院校中约有30门课程不同程度地运用了机器人操作系统,并逐步形成了围绕其建设课程体系的趋势。随着机器人产业的飞速发展,该课程成为机器人专业的主干专业课程已是大势所趋。
目前,国内外高校开设的机器人操作系统相关课程,主要是以机器人或机器人编程课程为主,以ROS为主题并贯穿始终的课程寥寥可数。其中,美国斯坦福大学的机器人编程(robot programming)、华盛顿大学洛杉矶分校的移动机器人(mobile robotics)和日本东京大学的实时ROS机器人(RTM-ROS robotics)等课程,均在不同程度上涉及了机器人操作系统的相关内容[8]。瑞士苏黎世理工学院的“机器人编程—ROS入门”(programming for robotics-introduction to ROS)课程,是明确提及ROS的一门课程,讲授了ROS基本概念,介绍了用ROS实现的四足机器人自动检测油气装置的科研应用[9]。
随着ROS在科研院所和企业的大范围推广,出现了很多短期课程和研讨会。例如,机器人领域的顶级会议ICRA(IEEE international conference on robotics and automation),多次举办实践辅导课,针对机器人操作系统中的节点和消息、信息感知、规划和控制开展研讨。这些研讨会有效地推动了ROS课程由基本概念及原理讲授向实践操作拓展,并且取得了很好的效果。
在国内,ROS课程的建设刚刚开始,但已经引起了相关高校的高度重视。2015年,国防科技大学在国内首次为本科生开设ROS课程,采用课堂讲授与实验室操作同步进行的方式,实验课时数甚至超过了课堂讲授课时数[10]。此后,哈尔滨工业大学、华中科技大学等高校也纷纷开设了相关课程。华东师范大学的ROS暑期学校已连续开办了3届,其中2017年暑期学校吸引了来自高校、科研院所和产业界的众多知名人士,在国内享有较高的知名度和影响力[11]。这些情况表明,国内的ROS研究和应用正在逐渐形成热潮,亟需ROS实践课程为教学提供支撑。因此,在当前启动ROS实践课程建设,在时机上无疑是十分合适的。
3 实践课程的实施方案
3.1 确定合理的ROS实践课程建设思路,构建层次化ROS实践体系
ROS机器人操作系统课程教学的目标集中在“原理、技术、应用”三个层面。其中,原理是了解ROS系统架构及运行机制,技术是理解ROS系统实现的核心,应用是掌握ROS系统技能的途径。三者相互关联、相辅相成。实践教学环节是促成三者系统融合、验证和巩固所学知识、综合运用知识的重要教学手段,也是技能训练和能力培养的必要途径。
本文针对ROS课程实践教学,依托教师科研项目,研究构建层次化实践课程体系的教学方法。充分考虑学生学习能力存在客观差异的事实,循序渐进地增强和提高学生对ROS的理解和实践能力,既要有利于学生掌握独立的知识点,也要有利于学生从整体上把握ROS操作系统的整体设计思想[12]。考虑学生的学习基础差异,结合ROS系统架构及难度情况,把实践课程的目标划分为4个等级,包括观察型实验、仿真型实验、分析型实验和设计型实验(如图1所示),按照阶梯式架构逐步开展。
(1) 观察型实验。选择教师实验室具备的先进机器人系统(如仿人机器人、Yumi机器人、旋翼无人机等)作为ROS观察型实验的观察对象,让学生观察ROS功能程序的运行过程及现象,从整体上理解ROS的基本原理,并初步认识其整体设计思想。
(2) 仿真型实验。结合科研项目设计ROS仿真实验题目,分别模拟实现移动机器人运动控制、环境感知、路径规划、机械手物品抓取等功能。在不涉及较复杂硬件操作的前提下,引导学生接触ROS系统编程,并加深学生对ROS离散知识点的理解。
(3) 分析型实验。结合典型的智能机器人功能,引导学生阅读源代码,从整体上把握其设计思想和基本设计框架。然后,对某些功能模块进行具体讲解,并让学生替换这些功能,进而深刻理解ROS系统的具体功能。
(4) 设计型实验。结合教师科研项目,选取具有明确目的和功能要求的小题目,供有专长和有兴趣的学生结合所学的ROS知识进行自主编程和硬件设计,按要求完成指定功能,并达到科研项目的指标和参数,从而深入体会实际科研系统的需求及实现方法。
图1 ROS实践课程的阶梯式架构
3.2 结合ROS在科研项目中的应用,合理设置ROS实践课程的内容
机器人操作系统是基于国际开源社区平台建设的课程,应该突出实践课程的平台化、基础化特征,让学生了解和掌握ROS的基本原理,并通过科研项目的实际案例,以点盖面介绍ROS核心内容,以及各功能模块的实现原理和开发方法。
相应地,ROS实践课程的内容大致设置为如下部分:
(1) ROS系统的概念与系统体验。包括典型的ROS应用系统、ROS系统架构对智能机器人的支撑作用、ROS软件开发环境,以及支撑性平台如Ubuntu的安装和操作等内容,使学生了解机器人操作系统,掌握ROS的概念和基本工作原理。
(2) ROS系统的共性实验。ROS是实现机器人系统各项功能的软件基础,针对机器人操作系统内核开展,包括ROS操作系统的安装及实现、简单节点的键盘控制、节点之间的通信、常用传感器的使用等功能,使学生了解ROS的基本原理、组成方式、运行机制等,培养学生在ROS平台上的动手实践能力。
(3) ROS的理论与功能接口。涉及ROS的坐标变换、导航与视觉、路径规划、仿真器等基础功能的实验操作(含仿真软件和实际操作),使学生了解ROS的基本功能和常用模块的实现原理及接口,从而具备基于ROS开展简单无人系统实验的能力。
(4) 结合科研项目的ROS功能设计与开发。面向实际应用和教师科研课题,提取部分内容作为设计ROS课程的实验演示及实践型题目,使学生能够运用所学到的ROS知识实现一些基本的应用,还能够在一定程度上扩充和完善ROS,与ROS开源社区密切交流,掌握最新动态。例如,针对地面移动机器人的任务需求,开展传感器数据接口设计、数据传输、导航规划等内容的设计,构建和实现地面机器人环境建图及搬运的原型演示系统(如图2所示)。
图2 基于ROS的激光雷达环境建图
3.3 依托教师科研项目,为ROS实践课程提供不同功能平台
ROS的学习具有很强的实践性,需要引入合适的智能机器人系统作为实践平台。目前国内外广泛采用的TurtleBot移动机器人(见图3(a))是典型的ROS实践平台,可以进行运动控制、环境感知等实验。然而,TurtleBot机器人虽然“五脏俱全”,但由于功能简单且缺乏实用性,仅能开展一些基础性的实验,不利于培养学生的探索能力及应用技能。
结合开源代码发展趋势及实际科研体会,本文以“科学性、系统性、先进性、实用性”为指导思想,确立了以“两个角度、三个层次”为切入点的ROS实践平台建设思路。从教学及科研两个角度出发,设计和构建三种不同层次的实践平台。
(1) 以TurtleBot搭载RGB-D传感器作为ROS实践课程的初级平台,为ROS基本实验提供支撑。
(2) 选择实验室拥有的代表性智能机器人系统,如Yumi、Kinova机械手等,如图3(b)和图3(c)所示,围绕“原理、技术、应用”的主线,剖析其实现过程和技术原理,要求学生修改ROS系统的部分代码,并且在机器人系统上开展实际验证。
(3) 结合实际需求构造综合性实验题目(如“实现一个典型家庭环境的服务机器人”),作为ROS高级开发(如分布式系统)的实践平台,引导学生将ROS课程所涉及的知识模块(如ROS系统架构、节点编程、数据通信编程、系统仿真)等有机融合。
通过上述不同层次的实践平台,让学生通过开发应用系统和对具体的技术实现方式进行分析,对ROS的实现机理有了更加深入的了解和实际体会。让学生不仅“知其然”,更能“知其所以然”,为实践课程提供切实可信的结论性数据。在此过程中,开放相应的实践平台,学生可随时进入实验室设计、调试自己的ROS创新实验,发挥学生学习和研究的主观能动性与创造性,并鼓励学生将设计的程序直接与教师讨论,从而有效地调动学生开展实验的积极性,促进学生学习和实践能力的有效提升。
图3 ROS实践课程使用的机器人系统
3.4 建立ROS实践课程的学习效果监控机制
为有效引导学生围绕ROS实践课程的要求开展自主实践、培养解决工程实践问题的技能,避免抄袭、拷贝其他学生作业或下载其他网络资源,本文参照科研项目的研究和答辩流程,实施基于过程化管理的实践课程监控机制,具体措施包括:
(1) 组建实验小组,开展分工合作。每个小组由3、4名学生组成,并推荐一个项目小组长负责任务协调。为避免部分学生的“搭便车”现象,要求每个学生都要提供任务分工说明书,说明任务分工情况及与其他成员在功能模块上的接口交互关系。在考核时,将根据任务分工说明书进行检查。
(2) 实行基于功能模块的实践质量评估机制。分解科研项目中的功能模块,融合“自顶向下”和“自底向上”的教学设计方法,课程初期在BB平台上公布题目考查的功能点。检查时,首先由学生现场演示功能运行效果;然后现场汇报实验思路、技术难点、实现方法、具体实现过程中遇到的技术问题及解决方法;在此基础上,由教师随机抽取功能实现代码进行现场提问。通过现场考查后,才可完善并提交实验报告。
(3) 结合题目答辩的交流与考核。为鼓励学生开展技术交流,促进学生之间相互借鉴,在实践课程中组织题目答辩。每次答辩的讲解时间为5~8 min,由各位成员分别介绍自己的工作进展,并接受教师或学生的提问。
4 结语
在机器人专业快速兴起的当下,高校肩负着培养和造就适应未来机器人时代人才的重任。由于机器人操作系统兴起不久, ROS实践课程的建设具有很强的现实意义。
通过ROS操作系统实践课程学习,学生能够系统地理解ROS系统架构及思想,牢固掌握技术实现机理,切实提高实践动手技能。ROS实践课程的建设实现了以下目标:
(1) 以国际开源ROS项目为实践基础,参照国际相关大学同类课程标准,对机器人操作系统的课程内容、案例实验和教学方法等进行设计,并开展教学实践,强化学生研究能力和创新能力培养。
(2) 建立教师科研项目与学生实践课程之间的良性互动关系,将专业研究课题与平台有效转化为实践课程的坚实支撑,实现人才培养和科学研究的有机结合,有效支持机器人操作系统相关研究。
本文通过调研分析目前国内外相关课程及实验课程现状,结合专业学习和创新实践培养,研究依托科研项目的ROS实践课程建设策略与具体方案,有效促进了学生对于智能机器人体系架构、先进技术、软硬件设计等内容的掌握,营造出带有示范性意义的、适合机器人专业方向的学生实践课程建设新模式。