陈晋音,杨东勇,俞山青,毛国红
(浙江工业大学a.信息工程学院;b.计算机科学与技术学院,浙江 杭州 310023)
无人飞行器(unmanned aerial vehicle,UAV)是指不需要人为操纵,通过机载芯片的内置程序自主行驶的无人驾驶飞行器[1]。随着无人机的应用推广,其自主导航已经成为一个研究的热点。无人机的控制和航迹规划算法作为新兴专业的授课重点,课程的配套实验基础和资源相对比较薄弱,教学过程中理论教学与实际严重脱节,纯课堂理论教学已经无法满足学生深入学习和理解无人机技术的要求。设计与实现无人机技术的相关实验项目,并尽可能发挥学生的自主创新能力,实现有良好基础平台的开放性实验项目显得尤为有意义。
此外,无人机技术涉及内容广泛,是一门集运动控制、数学建模、航迹规划、优化算法和可视化编程技术等为一体的综合性课程[2-3],传统的无人机技术课程实验以验证性实验为主,能够让学生对无人机的基本框架和基本技术[4-6]有初步认识[4-6],但缺乏对无人机的实战操作、具体问题的分析和求解以及综合应用的教学资源和平台;并且学生受限于平台和资源,无法在应用中学习,在实践中学习,在创新中学习[7-8]。此外,大量关于创客式教学的研究中也提及设计应用型实验对提高学生动手实践能力的重要作用[9-12]。
基于机器人操作系统(robot operating system,ROS)的无人机技术开放性实验充分利用ROS仿真平台的可视化和接口扩充性,利用Kinect获取外部环境信息,设计无人机的建模、运动控制、航迹规划、优化算法和可视化编程、动态演示编程等技术,能充分发挥学生在应用中学习,体现无人机技术的高度综合性和应用性。
本文设计和实现了一种基于ROS的开放性无人机仿真实验,讨论了教学方案和教学方法,采用课堂教学与翻转课堂相结合的教学模式,采用以学生为中心展开学习、研讨和开发,教师启发指导为辅的开放式教学,让学生能够自主学习、研究和创新,达到综合运用知识,强化理论学习,提高实践能力和创新能力的目的。
无人机航迹规划系统是集无人机运动控制、环境信息采集与规划方法等分析于一体的软硬件集成系统,传统教学过程中采用理论教学的方式让学生在学习的过程中产生复杂抽象、难以理解的感觉。限于无人机设备的价格昂贵,对操控要求高等原因,很多相关课程的授课均未能实现真机的操控和学习研究。因此设计一套基于全面仿真功能的无人机仿真实现至关重要。
ROS是面向机器人和无人机的开源的元操作系统(meta-operating system),它提供了一个标准的操作系统环境,如进程间通信、硬件抽象、内存管理、底层设备控制。ROS将所有程序抽象成节点,利用话题和消息机制进行节点间的通信,同时内置了节点管理器可视化地显示出当前节点以及消息的运行情况,便于开发和后期代码的维护并且代码的重用性高。
本文设计的开放性实验基于ROS平台,利用Kinect等设备获取地图环境信息,搭建无人机动力学模型,设计相应的航迹规划算法,在环境模型中实现二维和三维的航迹规划可视化系统,从而达到让学生综合利用控制理论、数学建模和优化计算等关键知识的目标。基于ROS的无人机运动控制和航迹规划系统结构如图1所示。
图1 基于ROS的无人机仿真系统结构图
无人机的开放性实验重点突出对各门课程关键知识的综合应用和创新能力的培养,突出理论知识转化成实践创新,加强电子信息和计算机相关专业学生的应用需求分析、问题分解和设计以及研究和创新能力的培养。实验硬件包含Kinect和CCD摄像头等环境信息采集设备,软件主要包括ROS仿真环境,硬件设备也可以用已有的典型地图信息代替,重点是完成无人机的动力学模型搭建、环境建模、航迹规划方法设计与实现以及可视化的系统展现。
根据图1的系统框架,无人机仿真系统的硬件设备和软件平台主要包括以下4个部分。
1)信息采集设备。
主要用于无人机获取外部环境信息,包括Kinect和CCD摄像头等。如果实验条件受限,则环境地图信息可以用已有的地图信息取代。
2)ROS仿真环境。
本实验使用的是ROS的Indigo版本,支持的编程语言有python以及C++,并且兼容PCL、OpenNI等大型开源库。
3)数学建模与优化算法设计。
根据环境信息基于栅格法、散点图等建立地图,随后基于RRT、智能计算等方法实现航迹规划。
4)无人机的动力学模型搭建。
飞行器的运动可以分为质心的线运动和绕质心的角运动,根据牛顿第二定律可知飞行器的线运动和角运动方程,从而得到四旋翼飞行器的非线性动力学方程和运动学方程。
无人机仿真系统开放实验主要包括无人机的动力学模型建模、航迹规划算法设计和动态可视化演示三部分功能。根据上述系统框架,将实验的主要内容分成环境信息采集与建模、无人机动力学模型构建、航迹规划方法设计和动态可视化演示平台开发等部分。实验的具体内容如图2所示。
图2 无人机仿真系统开放性实验教学内容
2.2.1 环境信息获取
由于激光传感器可以采取深度信息,通过深度信息转换为三维坐标以及点云数据(.pcd)格式。点云格式可以通过PCL点云库进行处理,且ROS集成PCL点云库,故采用此方式获取环境信息。实验调用了PCL库对点云数据文件进行读取,并使用函数将其转换为ROS消息格式sensor_msgs进行发布。
2.2.2 环境建模
由于环境数据为点云数据,即以大量坐标点表示障碍物以及环境信息,并且航迹规划采用了采样算法,所以采用栅格法对环境建模,在碰撞检测过程中只需遍历路径经过的栅格是否包含障碍物节点即可完成。栅格法不需要对障碍物进行数学表示,计算需求较少。实验调用了Eigen(ROS自带的C++矩阵库,支持各种矩阵运算)完成三维栅格法的开发。
2.2.3 航迹规划
传统二维路径规划算法较难移植到三维环境中(由于其计算复杂度上升),而采样算法随维度变化计算复杂度影响不大,因此较适合用于三维环境下的路径规划。实验采用了基于B-RRT*算法改良的MB-RRT*算法,该算法是全局算法,根据全局地图生成一系列飞行器途径的航迹点。
2.2.4 优化算法
直接连接算法生成的航迹点将会产生粗糙的路径,需要对路径进行平滑处理,这里使用了贝塞尔插值算法,利用了三次贝塞尔函数对航迹点进行曲线拟合,从而生成平滑的路径。
2.2.5 可视化动态展示
ROS集成了3D的可视化演示工具RVIZ,可以接受ROS的消息并将其显示在RVIZ提供的三维空间中。
无人机仿真开放性实验翻转课堂教学模式与一般翻转课堂教学模式基本一致,都经历课前学习资料准备、学生自主学习、课堂实验活动、反馈与评价四个阶段。由于开放性实验是一门综合性创新性实验课程,因此注重实践操作和自主创新能力的培养。教师只提供一些基本的方法和操作手册,需要学生根据积累的知识、调研的能力和动手开发的水平来决定最终提交的作品达到什么水平。基于ROS的仿真环境提供了虚拟实验室,结合已有的翻转课堂以及ROS的仿真环境等实践操作,本文设计了相应的翻转课堂教学模式,具体如图3所示。
图3 无人机仿真开放性实验翻转课堂教学模式设计
教师首先根据教学需要,制作操作学习资源包,在课前发放给学生,其中无人机系统资源包中有无人机的框架、环境建模方法、航迹规划方法和可视化编程设计的demo等辅助学习资源,学生在课外时间自主安排学习时间和流程进度,组成团队协作分配任务调研,完成学习任务,并与教师和同学进行必要的交流和问题讨论。在实验课堂教学环节,教师对课堂活动安排进行简要说明之后,学生进行分组实验;在实验过程中,教师观察学生们的实验情况、评估模型的可行性、优化方法的效率和编程设计的调试等工作,并指导学生完成实验报告。实验结束以后,对学生的学习情况进行调查,一方面评估学生在开放性实验环节完成的效果;另一方面反馈翻转课堂教学的问题以便下次改正,从而不断调整翻转课堂教学的实施方法。
本文提出了一种基于ROS的无人机仿真开放性实验教学方案和相应的翻转课堂教学模式,实验内容涵盖了传感器、网络、数学建模、无人机运动控制、航迹规划方法、优化计算和可视化编程等关键技术,是对信息和计算机相关专业学生的综合无人机系统实验教学的一种尝试与探索。通过实验教学与翻转课堂教学模式的结合,学生能够充分发挥自主创新,利用已学的专业知识应用到无人机的研究和实践中,同时,学生对无人机应用的学习兴趣和创新能力得到激发。
在最近三年的教学实践中,学生基于该实验教学方案和教学模式,展开了课内学习并积极投身于课外科技竞赛和实践创新应用中,组建航模>队,积极参加无人机的各种国内大小赛事,获得了机器人竞赛、无人机飞行表演等多个奖项,除了在课堂教学取得满意效果,在课外科技竞赛和实践创新应用中也取得喜人成绩。
[1]于进勇,寇昆湖,陈勇,等.无人机模拟训练教学系统设计[J].实验室研究与探索,2014,33(7):221-224.
[2]易俐娜.无人机数据处理技术教学方法研究[J].教育教学论坛,2016(1):182-183.
[3]袁占杰,路平.无人机飞行姿态仿真系统的构成与模式分析[J].军械工程学院学报,2003,15(4):35-37.
[4]陈自力,席雷平,田庆民.无人机装备保障专业任职教育教学模式改革探索[J].继续教育,2015(7):77-79.
[5]贾鹏万,冯寿鹏,张爱辉.基于VR-Platform的无人机中继通信虚拟教学系统[J].兵工自动化,2012,31(6):93-96.
[6]孙烨,刘长亮,鲍传美,等.基于可拓学的GBL无人机实践教学评估模型[J].微计算机信息,2011(5):202-203.
[7]李伟荣,方舟,李诚龙.带悬挂负载的八旋翼无人机建模与控制[J].计算机应用,2015,35(S2):138-142.
[8]杨现民,李冀红.创客教育的价值潜能及其争议[J].现代远程教育研究,2015(2):94-96.
[9]谢作如.2016,做好迎接创客教育的准备[J].中国信息技术教育,2016(1):12-13.
[10]丁飞.基于创客思维重塑循环程序的课堂教学策略研究[J].中小学信息技术教育,2015(10):54-56.
[11]熊善军.基于创客思维的信息技术课堂教学模式探索与实践[J].教学与管理,2016(3):106-108.
[12]黄荣怀,刘晓琳.创客教育与学生创新能力培养[J].现代教育技术,2016,26(4):12-19.