教育机器人在C语言程序设计课程改革中思考

2015-06-17 09:15蔡琼雷道仲陈鹏慧
现代商贸工业 2015年11期
关键词:队形C语言程序设计

蔡琼 雷道仲 陈鹏慧

摘要:

在《C语言程序设计》课程教学过程中,发现按照知识体系来教学方法学生兴趣度不高,存在许多问题。为了使课程更具有吸引力,探讨了各种教育机器人在课程中的应用,并研究水中机器人2D仿真教育机器人在课程中的应用。通过水中机器人(多智能体)编队中动态圆模型构建、领头羊的动态选取、队形稳定的保持、复杂环境下的动态圆移动的实现方法与《C语言程序设计》课程相结合,大大提高了学生的学习兴趣及效率。

关键词:

教育机器人;水中机器人2D仿真;动态圆

中图分类号:

G4

文献标识码:A

文章编号:16723198(2015)11013602

如何将《C语言程序设计》课程设计的生动有趣且具有操作性成为提高高职学生编程能力的关键手段。传统教学方法在教学中《C语言程序设计》中编程平台采用Python、Visual C++,Keil C相结合的方法,但是由于这些方法不够直观,导致学生不愿动手,从而使学生的各知识点脱节。而近年许多学校将教育机器人应用到各课程的一线教学方式似乎解决了上述问题,因此本文开始研究教育机器人在《C语言程序设计》课程汇总的应用。

1教育机器人平台介绍

(1)LEGO教育机器人。Lego秉着“更聪明、更强壮、更人性化”理念,推出了NXT机器人,它可用C语言、VisualBasic、Java、Visual C++等平台进行编程及控制,注重人机交互,并提供RoboLab进行图形化式的编程,简单容易上手。麻省理工学院(MIT)和塔辅茨(Tufts)大学很早就利用LEGO机器人记性了创意设计。LEGO套件丰富,功能强大,利用这些组件,可以方便灵活的搭建各种机器人。乐高组件大致可分为以下几大类:可编程砖块(基础结构件)、传动结构件(齿轮、凸轮、万向节、皮带传动等)、驱动部件(电动马达)、特殊部件(气缸、气泵、分配阀等)、传感器(光电传感器、触觉传感器、碰撞传感器、码盘和温度传感器等)、控制器。

(2)“慧鱼”机器人,全称“慧鱼创意组合模型”慧鱼机器人是通过各种各样的构件组合拼装而成。慧鱼在国际创新教育领域,涵盖面广,为不同知识层次人员的提供个性化的平台,为创新教育和创新实验提供了最佳的载体。慧鱼机器人的优势是灵活且适用范围广,主要部件采用优质尼龙塑胶制造,不易磨损,工业燕尾槽专利设计使六面都可拼接,有利于培养学生的想象力和创造性。通过搭建fischertechnik构件、电机、显示设备、传动机构、传感器等可以实现机械手臂、烘手器、红绿灯、移动门、停车栏杆、焊接机器人等任务,并提供了ROBOPro进行图形化编程的方式,对控制板进行控制编程。

(3)能力风暴机器人是上海广茂达公司开发的面向初高中生、大学生、对机器人控制感兴趣的社会人士等多层次人员所研发的教育机器人。能力风暴机器人提供良好的图形界面VJC语言和开放式接口开启机器人的开发潜力。VJC语言提供两种编程方式:流程图方式和类C语言编程方式。该机器人外形可爱,易于广大中高中生、大学生接受,形状为圆形状,并带有2个红外传感器、四个碰撞传感器、两个光敏传感器,运动结构有两个主动轮和两个从动轮,能力风暴机器人的2个红外传感器、4个光敏传感器、2个光电编码器、4个碰撞传感器等,可以用来做多个创意编程。用能力风暴机器人可以在相关课程教学中进行走迷宫、灭火、计价器等。

2水中机器人2D仿真教育机器人在《C语言程序设计》课程中的应用

2.1水中机器人2D仿真教育机器人简介

水中机器人2D仿真教育机器人是一种典型的教育机器人仿真平台,它由湖南信息职业技术学院联合北京大学开发,并与2010年开始就作为中国机器人大赛RoboCup公开赛中国水中机器人大赛的比赛平台。该平台提供C语言编程,通过编写控制程序控制水中机器人比如机器鱼等的运动。相对像LEGO、慧鱼等昂贵的实体平台,它环保不会增加额外的硬件平台的购置费用且易于管理,也能直观观察到水中机器人的游动,直观有趣,非常适用于做《C语言程序设计》课程的教学平台。

2.2《C语言程序设计》课程案例的选取

水中机器人的多智能体协作问题是水中机器人编队控制的关键性问题。编队控制是一个具有典型性和通用性的多智能体协调问题,是多智能体协作的基础。所谓编队控制就是指多个机器人在到达目的地的过程中,保持某种队形。通过每个智能体实时的获取环境信息,通过机器人之间的通信来判断预定编队动作是否完成。多智能体保持队形有不少的好处比如抵御外界的入侵、提高工作效率、提高系统的鲁棒性。但保持队形也会带来一定的问题,比如如何选队形、队形控制的优劣、队形有没有保持住的实时反馈、机器人达到目标后有没有保持住队形,并且如何评价队形的优劣也是需要考虑。动态圆的设计包含动态圆的构建和动态圆的移动,它最关键的问题就是动态圆的队形保持。动态圆的队形保持方法采用以几何中心为参考点、以领航机器人为参考点、以邻居位置为参考点三种方式相结合的方式。通过编写C语言代码,在该平台上实现,水中机器人的动态圆的构建和移动,能让学生掌握C语言的基本语法,并且能看到直观和生动的效果,优秀的学生所编写的算法还能直接推荐到项目组,代表学校参加全国的水中机器人的竞赛。该平台降低机器人相关领域研究成本、加快机器人技术发展,在在高仿真的水下机器人平台上研究编队控制问题是一个好的途径,能极大的激发学生对《C语言程序设计》学习的兴趣,有助于《C语言程序设计》课程改革。

2.3水中機器人动态圆的设计与实现在《C语言程序设计》课程教学中的应用

2.3.1动态圆模糊区域分区图

计算水中机器人中心与中心点的角度,如果结果在0-45度之间在Ⅰ区域,45度到90度在Ⅱ区域,以此类推。

动态圆模糊区域分区图的实现,可以与《C语言程序设计》课程中的三种控制方式选择,结合起来。重点介绍if-else switch-case的使用及其注意方法。

2.3.2以鄰居位置为参考点和中心点相结合的动态圆队形保持

通过计算判定出当前智能体在动态圆中所处的区域,判定出当前所处的区域,找到前后的邻居位置,计算出队形是否保持完整,这里认定每个智能体处于各自不同特定的区域并且与中心点的距离保持在某个阀值内为保持好队形。在与邻居距离的判定(保持队形)中,通过计算判定出当前智能体在动态圆中所处的区域与前、后邻居的“距离”判断(前邻居为队形中在当前队员之前的队员,后邻居为队形中在当前队员之后的队员)。若当前智能体在Ⅶ,前邻居智能体在Ⅵ,后邻居智能体在Ⅷ,则当前智能体与前邻居智能体所在区域相差为1,与后邻居水中机器人也相差1,则队形保持完好,当前水中机器人游向下一个目标点即可,不许控制其他的水中机器人。在与中心距离的判定(保持队形)中,如果偏出了,每个智能体的下个目标点,就等待。

通过绘制程序流程图的绘制,将C语言中结构体、循环结构、函数应用到水中机器人的控制中,实现水中机器人队形(圆)保持。

2.3.3动态圆的移动

动态圆的移动关键在于领头羊的选取和队形调整。领航人这里选用动态领航人。而由于平台的扰动相应特性,具体时间智能体的角度和方向特性是不确定的,因此在某个时间点对应的哪个智能体适合做第一条移动的智能体(领头羊)是不确定的。领头羊的选取,在动态圆分区图中,如果某条鱼处于Ⅵ区域,那么他的就是领头羊,由他带领移向下个圆形未知附近。在选定领头羊后,后续的水中机器人跟着领头羊移动。到达预设区域后再按照圆的移动而移动。在复杂环境确定移动半径,由领头羊进行探索。在动态圆的移动中,将动态圆移动领头羊的选取封装成为函数,并带返回值。在代码的设计与实现过程中,重点里面参数是如何传递的。理解不同的返回值代表不同的含义。

3总结

在水中机器人2D仿真教育机器人平台中,用水中机器人的编队控制作为《C语言程序设计》的载体。在动态圆的设计和实现案列中采用知识够用的原则,用到什么知识点就讲什么知识点不灌输,学生主动的去接受新知识,让学生在做中学,学中做。《C语言程序设计》将采用生动有趣的案列来开展,采用自主研发的平台和通用平台相结合的方法进行实验,推荐优秀学生进入项目组,资助学生自主研发小的课题。《C语言程序设计》作为一门基础入门的编程课,旨在激发学生的编程兴趣和培养学生良好的分析问题解决问题的能力。在以后的工作中,将继续探讨好的方法、先进的理念应用到《C语言程序设计》中来。

参考文献

[1]蔡琼.基于MSRS的仿生机器鱼水球比赛实时仿真系统[J].河南科技,2014,(3):13.

[2]孙小进.一种仿生机器鱼游动控制的研究[J].自动化技术与应用,2014,2(33)34.

[3]Batch T R ,Arkin R C. Behaviorbased Formation Control for Multirobot Teams[J].IEEE Transaction on Robotics And Automation,1998,(6):926939.

猜你喜欢
队形C语言程序设计
队列队形体育教案
基于Visual Studio Code的C语言程序设计实践教学探索
诗歌的奇怪队形(一)
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
无人机编队机动飞行时的队形保持反馈控制
PLC梯形图程序设计技巧及应用
论子函数在C语言数据格式输出中的应用
彩练当空舞、六机楔队形