轮式机器人图形化编程系统的研究与设计

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:jerry1121
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:目前轮式机器人的编程开发通常使用的是C语言或是汇编直接实现,编程的专业性要求高,难度大,易读性和易懂性较差,极大地阻碍了轮式机器人研究应用的推广。该文提出了一种针对轮式机器人的图形化编程软件系统的总体设计思路及实现方法,利用J2EE技术开发了一个面向轮式机器人的图形化编程系统。系统以机器人的运行控制流程图为基础,设计了大量的组件图形符号作为图形化编程的可视控件,在底层将这些控件与C语言代码对应,再向汇编代码转换,并通过串口通讯下载到机器人中,实现对机器人的控制。经实际应用证明,该文提出的设计方法、思路及系统,具有良好的灵活性、稳定性和实用性,能够有效地控制轮式机器人的各种动作。
  关键词:轮式机器人;图形化编程;编译;串口通讯
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)26-5968-05
  随着计算机编程思想的不断进步和编程语言的不断发展,图形化编程的理论和方法作为一种高效、方便的开发方式,目前已在众多领域得以广泛应用。比较知名的相关产品有美国国家仪器公司(Universal Instruments)研发的LabVIEW、UML等,其中的UML更是作为高校计算机专业学生必学和掌握的一种重要设计和开发工具。图形化编程以编程对象的操作处理流程为基础,通过友好的操作界面和功能众多的编程控件实现程序的设计。与传统意义上的编程语言相比,该方法不需要编程者有较为深厚的编程语言基础,不需要考虑严格的语法语义,也不需要花费大量的精力去处理程序代码的结构问题和实际问题的形式化描述等问题[1]。合理的使用图形化编程系统,使得程序开发者可以将精力用于如何更有效地、更优化地实现自己的设计目标。可以预见,随着不同行业图形化编程系统的开发和完善,使用者将具有更大的创造力和创新空间。
  目前,我国高校计算机、通讯、电子机械等专业为了更好的融合计算机人工智能、通讯、电子机械的学科知识,提高大学生的实践创新应用能力,已经把智能车和机器人的研究开发和编程控制引入教学和实践环节。中小学为了拓展学生的第二课堂,培养学生的探索和创新能力,也把智能车和机器人的知识普及、开发实验引入校园。同时,国家和地区每年也会举行各种规模的智能车和机器人竞赛。这样的发展环境下,开发一种简单、适应性强的的图形化编程系统,显得尤为重要和必要。
  本文研究设计了一种针对轮式机器人编程的基于图形化编程方式的软件系统,该系统可以作为学生进行机器人比赛和机器人普及教育的软件编程平台,操作方便,对专业编程技术要求低,同时具有较高的稳定性和可扩展性。
  1 轮式机器人控制原理
  智能机器人控制器种类繁多,但其基本工作原理不尽相同,如图1所示。
  1)机器人上层编程软件,实现机器人控制的应用软件设计,实现各种功能算法、编译、连接、下载的实现,它是机器人控制系统的软件平台。
  2)机器人主控器系统,机器人的应用软件运行的平台就是机器人的主控器系统,所有机器人的功能实现由它来决定,它是机器人控制系统的核心,它包含了主控器的硬件系统和软件系统。
  3)机器人传感器系统,机器人感知外部环境得到环境数据均由这一部分来实现,它可以采集各种模拟量数据和数字量数据,为机器人执行动作提供环境依据,它的功能包含各种传感器的数据采集功能和数据处理的功能。
  4)机器人执行系统,这一部分是机器人实现各种功能的外在表现,机器人的所有动作实现均由它来完成,不同功能的机器人的执行系统都不同。如:各种仿生机器人、水下机器人、巡逻机器人等,他们的执行系统体现出来的结构千变万化。
  本软件开发和测试过程中采用的机器人控制器如图2所示。
  该控制器以LM3S1607处理器为核心,包括微处理器、存储器(FLASH存储器和SDRAM存储器)、键盘电路、与传感器系统通讯电路、LCD液晶显示电路、PWM驱动电路、电源供电电路等。
  智能机器人控制器可以驱动三种电机:普通直流电机、步进电机和舵机,配合各种传感器实现各种功能的机器人,如:避障、沿轨迹移动、寻找火源等功能。
  控制器支持嵌入式操作系统,如:ucosII等。当前控制器没有运行操作系统,因而系统是基于单任务的,如果客户需要可随时加入操作系统。
  该主控系统硬件包括:微处理器、存储器(FLASH存储器和SRAM存储器)、键盘电路、LCD液晶显示电路、I/O驱动电路、电源供电电路等。如图3所示。
  2 软件系统设计思路
  该软件系统总体由2层构成,如图4所示。其中上层是由面向对象的交互式开发环境与操作系统组成,主要用于完成流程图的绘制、类C语言的生成及其编译、下载,由于该系统采用跨平台的Java语言开发实现,故任何操作系统只要有Java虚拟机的支持便可以运行该软件;下层是由以LM3S1607处理器为核心的控制器。
  本文所设计的面向轮式机器人的图形化编程软件主要由三部分构成,包括图形化编程分系统、类C语言编码编译分系统和通讯下载分系统。
  图形化编程分系统采用“积木”搭建的方式,对不同的程序目标,通过模块控件的不同组合和简单的拖拽操作,实现流程结构程序绘制。其中,各个图元会根据需要通过连接线实现连接,也可自定义连接线;模块图形放置后呈现为按钮状态,可通过点击设置其各种属性和控制命令。
  系统的图元模块库可分为执行库、控制库和程序库,其中执行库包含轮式机器人的各类动作及操作,如转向、移动、启动电机、停止、定时器等;控制库包含各种程序流程图的流程图控制模块,如中断循环、判断、多次循环和嵌套循环模块等;程序库包含程序操作以及子程序的调用,如参数传递、赋值、调用系统、调用子程序等模块。
  类C语言编码编译分系统,是本软件系统的C语言编码编译器,当用户完成图形化编程并设置好各控件模块的参数后,本软件系统会在后台生成相应的类C语言源码。该源码通过编译分系统完成语法及语义检测,再经编译、链接转化成轮式机器人LM3S1607处理器可识别的目标代码,经由RS232串口,实现数据的收发。   通讯下载分系统,主要实现多端口的数据通讯。该分系统负责将类C语言编码编译分系统所形成的目标代码和伪指令集通过仿真器下载到轮式机器人的嵌入式单片机处理器硬件并完成必要的信息交互。
  上述设计思想具体实现如图5所示。
  3 系统设计实现
  3.1图形化编程系统设计思路
  图形化编程的实现是本软件系统的核心环节之一。利用本软件系统的图形化编程分系统,开发设计者首先确定自己的目标流程,然后在控件模块栏选择相应的图形块放置到绘图区用于表示需要设计的逻辑和动作序列,再经过模块间接口的设计与完善,把所有绘制的图形模块按照预设的逻辑顺序连接起来,从而完成对轮式机器人的编程开发任务。利用本系统可以实现轮式机器人控制程序的快速编程。图形化编程系统界面如图6所示。
  为了方便将一定逻辑序列的图形模块集合编译为成C语言代码,本系统设计了三种特定的数据结构,分别用来存储块每个图块的位置、数据和执行动作。
  位置信息用于表示对应图形模块在整个图形程序序列流程中的坐标信息;数据信息包括对应图形模块的基本设置内容和多级级联设置内容,主要是通过递归算法实现;事件信息负责存储执行某操作时所引发的相关事件信息及对应的动作信息。
  系统采用动态链表方法实现模块的插入、删除和修改,同时表征各模块在程序流程中的逻辑序列关系。为了实现这一操作,在操作某个模块的时候,需要对整个动态链表遍历,按照递归算法,重绘图形程序中对应模块的坐标,并实现模块间的连接。
  本系统允许用户拖动模块重新编辑图形化程序。此时,系统会遍历当前程序流程中的所有的模块接口坐标,实现模块间的碰撞冲突检测,避免图形模块的重叠和混乱。
  3.2 图形语言程序编译为C语言代码
  编译器在本质上就是将一种计算机程序语言翻译为另一种计算机程序语言。它以某种语言编写的源程序作为输入,产生相对应的目标语言程序[2]。本系统在其交互式的开发环境中集成了代码编译功能,使得用户直接可以完成图形化语言程序到C语言目标代码的生成。
  图7为图形程序到为C代码的编译转换过程图。
  传统的编译器构造方法是将编译过程的词法分析、语法分析和语义处理分别划分为相互独立的不同阶段,采用某种编译工具和某种集成开发环境相结合实现。编译工具负责完成编译系统的语法解释模块,再由集成开发环境提供的接口,导入语法解释文件来完成整个编译流程,这种方式使得系统开发过程较为繁琐,且可移植性不好[3][4]。
  鉴于此,本系统的编译器采用了面向对象的编译技术,将传统编译处理过程中的阶段分割操作放在交互式开发环境编辑器IAR Embedded Workbench中实现。这中实现方法不需要退出编辑器就可执行程序,从而方便完成从源码到目标码的生成。所以,采用这种方法,可以集词法分析、语法分析、语义处理、优化和目标代码生成等操作于一体,降低了维护的难度,提高了系统的运行速度。
  本系统所采用的编译器从结构上可以分为两部分:依赖于源语言的前端操作和依赖于目标语言的后端操作,编译器内部结构如图8所示。
  前端部分包括扫描程序、语法分析和语义分析,后端部分是代码生成程序。当图形化程序的目标代码发生变化时,可以有效地保持移植一个新的目标语言所需的信息或数据结构,由此可见这样分离前端和后端的设计方案提高了编译系统的可扩展性、可复用性和可维护性。
  3.3 通讯及程序下载
  本软件系统采用的LM3S1607微控制器,支持异步和同步串行通信。其中,通用异步收发器是一个用于RS232C串行通信的集成电路,它带有一个发送器(并行到串行的转换器)和一个接收器(串行到并行的转换器),它们各自独立计时。同步串行接口是一个4线双向的通信接口。LM3S1607 控制器包括 1个 SSI 模块,提供器件与外围设备之间的同步串行通信功能。
  利用本软件对轮式机器人进行图形化编程后,采用ARM公司提供的标准20PIN仿真调试JTAG接口模块LM LINK,实现编译后目标程序的调试和下载。该调试下载器采用USB 接口连接PC机,可实现在线调试并将程序快速下载到LM3S1607微控制器芯片中,控制轮式机器人的各种动作。在实际使用过程中,本系统所采用的仿真下载器可以方便应用于各种机型和环境,同时具有小巧、性价比高、调试下载速度快等特点。
  4 结束语
  本文针对目前机器人/智能车编程难度大,编程工具过于专业化的特点,提出了一种图形化程序设计的编程思路和解决方案,并利用Java技术实现了一个面向轮式机器人的图形化编程平台。该平台通过设计大量图形模块,通过“搭积木”的方式,对不同的程序目标,通过模块控件的不同组合和简单的拖拽操作,实现流程结构程序绘制,各个图元根据需要通过连接线实现连接。图形程序通过内嵌的交叉式编译器编译成目标程序,下载到机器人ARM芯片上执行控制。通过使用本软件系统,可以摆脱传统机器人编程方式的限制,使得机器人的研究应用具有更广阔的推广空间。
  目前,该软件系统已应用到相关的轮式机器人产品上。经过大量测试表明,本软件适用于大中小学生进行机器人和智能车的程序设计,系统具有可重用性、稳定性、易维护性等特点。
  参考文献:
  [1] 邱长伍,曹其新.机器人图形化编程与三维仿真环境[J].机器人,2005(27).
  [2] Kenneth C Louden. Compiler construction principles and practice[M].北京:机械工业出版社,2004:1-8.
  [3] 高治国,张素琴.向对象编译系统开发环境的研究[J].小型微型计算机系统,2003(24).
  [4] 林奕,朱怡安.一种面向对象编译器体系结构框架[J].西北工业大学学报, 2002(20).
  [5] 龚建伟,熊光明.Visual C /Turbo C串口通信编程实践[M].北京:电子工业出版社, 2004.
其他文献
摘要:移动通信系统中的资源是有限的,且所有物理信道是共享的,它必须占用一定的时间、频率、功率和空间。我们借鉴蜂窝的概念,用许多小功率的发射机(小覆盖区)来代替大功率的发射机(大覆盖区)。频率复用系数(以N表示),有一个规律,都满足:N=i2 i*j j2( i,j为非零整数)为什么频率复用系数都有这样的规律呢?  关键词:频率复用;蜂窝概念;频率复用系数;软频率复用  中图分类号:TN929文献标
人的全面发展是指人的能力、素质、独特个性、社会关系等各方面自由而充分的发展.它是革命导师在社会发展方面所关注的核心问题,是马克思主义关于社会发展的终极价值目标.
期刊
目的探讨并分析头痛宁胶囊治疗神经性头痛的疗效。方法按照数字随机法将2014年4月-2014年9月入住我院进行神经性头痛治疗的97例患者分为对照组与治疗组,其中,对照组给予尼莫
摘要:该文总结了基于粒子系统的战场特效仿真方法,通过对粒子系统建模过程的分析,抽取战场特效的共同特性,设计了一个由粒子发射器、粒子、属性修改器和渲染器组成的通用粒子系统模型。并通过该模型对虚拟战场的常见特殊效果进行仿真。  关键词:粒子系统;虚拟战场;特效;仿真  中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2014)05-1119-03  The Designation
在党的十三届六中全会上,中央发出了<中共中央关于加强党同人民群众联系的决定>.<决定>总结了党在党群关系上正反两方面的历史经验和改革开放以来的新经验,全面阐述了马克思
期刊
目的建立注射用三磷酸胞苷二钠中辅料甘露醇及精氨酸的测定方法。方法甘露醇测定采用氨基柱,以乙腈-水(6∶1)为流动相,流速1.0 mL&#183;min^-1,采用示差折光检测器(RID)进行
江泽民同志在十六大报告中明确指出:"党内民主是党的生命."这是以一种生动形象的方式,阐述了发展党内民主对于党的生存和发展、保持党的生机和活力的重要意义.正确认识江泽民
期刊
“5.12”汶川大地震,破坏力强,遇难和失踪人数超过8万人,受伤人数达超过37万人,经济损失近万亿元。在发生灾难后,灾区人民、政府及社会各种组织积极应对灾害和重建家园。那些经历了
近年来,对贵阳市农村扶贫开发模式问题的研究,很多专家学者从不同的层面进行了探讨,为我市农村扶贫开发工作科学决策提供了较好的参考,取得一定的效果,但仍有许多问题值得研究。为
第二次世界大战主要有两个战场--欧洲战场和亚洲战场.欧洲战场的"轴心国"是德国和意大利;洲战场的"轴心国"是日本.1945年是人类历史上最不寻常的年份之一,也是世界反法西斯战
期刊