基于LabVIEW的足球机器人电机调试系统设计

2010-10-25 12:38吴继伟晏黑仂
中国测试 2010年1期
关键词:字符串图形化字节

吴继伟,晏黑仂

(1.广东工业大学,广东 广州 510075;2.华南理工大学广州汽车学院,广东 广州 510800)

1 引 言

RobCup中型组足球机器人(以下简称机器人)系统是当今机器人研究的一个热点,在近几年内发展迅速,得到了国内外众多研究人员的关注[1]。传统基于一只导向轮、两只驱动轮的三轮机构逐渐被四只驱动轮的四轮结构所代替,机器人运动控制系统是一个复杂的机电耦合系统,使得电机调试工作更为困难。

机器人运动控制系统中,目前在电机调试方式中多数直接采用串口调试助手等软件进行调试,缺点表现在主要以单条指令进行调试,不利于调试数据的编辑与保存、批量数据自动发送及数值实时图形化显示等。实现的电机调试系统使用LabVIEW(Laboratory Virtual Instrument Engineering Workbench)软件开发平台,通过编程,使该系统兼顾了单条指令、多条指令调试方式,并能实现对机器人电机调试过程中实时采集到的电机转速值自动保存和图形化显示等,可直接观察到电机转速值的实际变化。该系统为电机调试工作提供了极大的方便,克服了目前电机调试中的缺点,使得调试工作快速、直观,极大地提高了调试效率。

LabVIEW是由美国国家仪器公司开发出的工程软件包,称之为虚拟仪器。随着计算机技术的迅速发展,虚拟仪器在测试领域的使用越来越多,已经成为当今世界流行的一种仪器构成方案。LabVIEW程序称为虚拟仪器程序[2],简称VI(Virtual Instruments)。

LabVIEW功能强大,灵活方便,与传统的编程语言相比,编程简单方便,界面形象直观,大大地缩短了软件的研发周期,可以方便地实现数据的采集、监控和分析,可以很容易地实现仪器控制。数据采集是LabVIEW的核心之一,它支持多种硬件接口,如GPIB、VXI、RS232和RS485等协议的硬件及数据采集卡。

2 电机调试系统的组成及其主程序设计

2.1 电机调试系统的组成

电机调试系统的组成如图1所示。基于LabVIEW的电机调试系统通过串口给机器人发送四组电机设定转速值,机器人运动控制系统接收到电机设定转速指令后,驱动电机开始工作并对电机转速值进行实时采样,把采样到的电机转速值存放在发送缓冲区,以待调试系统通过串口读取。调试系统将读取到的数据进行自动保存并予以数据图形化显示在LabVIEW控制界面上。

图1 电机调试系统组成

2.2 调试系统主程序设计

实现的电机调速系统是通过串口RS232与机器人进行通信的。LabVIEW中实现串口通信的方式有两种:(1) 利用 VISA;(2) 使用 ActiveX(采用MScomm)。该文采用方式(1),即在虚拟环境中使用VISA子VI向串行设备读写数据,VISA功能模块是LabVIEW独有的一项技术。

一个LabVIEW程序包括三个主要部分:前面板、框图程序(后面板)、图标/接线端口[3]。前面板是LabVIEW程序的交互式图形化用户界面,用于设置用户输入和显示程序输出等控件;后面板则是利用图形化语言对前面板上的各类控件进行控制;图标/接线端口把LabVIEW程序定义成一个子程序,以便在其他程序中加以调用,这使LabVIEW得以实现层次化、模块化编程。在LabVIEW程序设计中,后面板设计是整个程序设计的关键[4]。

如图2所示为调试系统后面板LabVIEW主程序流程。在后面板的程序设计中,依据LabVIEW程序设计核心思想“数据流”[5],该设计依据数据流方向,后面板程序采用自左至右的设计思路。主程序主要实现连接各子程序,控制整体的数据流向(自左至右),协调各子程序间的通信。子程序主要包括串口初始化、数据导入及写入串口和串口数据读取及导出等。在设计中实现LabVIEW串口通信和串口数据处理是重点,它直接关系到整个系统通信是否能实现,最终结果是否能真实准确反映在电机调试界面上。

图2 LabVIEW主程序流程

3 调试系统子程序设计

3.1 LabVIEW串口初始化

串口初始化是LabVIEW实现串口通信程序的第一步,如图3是通过VISA配置串口子VI实现串口初始化设置的后面板程序。串口初始化主要是确定通信过程中的串口号、波特率、数据位以及校验位等。其中串口号和波特率通过编程可实现下拉框来进行选择确定其值,实现过程如图3所示,定义两个系统下拉列表变量为各自条件结构的输入变量,依据PC机端串口号和通信波特率的实际情况编辑条件结构的值,即可实现通过下拉框来进行选择确定通信过程中串口号和波特率。数据位和校验位默认设置即可。

3.2 串口数据导入程序设计

串口数据导入就是将设定的四组电机转速值进行正确的数据格式转换,以达到符合写入VISA串口数据格式的要求。上位机LabVIEW控制端向机器人发送读数据指令帧后启动串口通信,该指令帧由5字节数据组成,数据帧第一字节为握手信号(0xFF),数据帧第二字节到第五字节分别为四个电机的设定转速(0x00-0xFE)。如图4所示为数据导入部分LabVIEW后面板框图程序。

在图4左边CASE结构部分,选用LabVIEW中选项卡子VI做为case结构的输入变量实现了单指令与多指令调试方式之间方便切换。单指令调试方式中,通过前面板十六进制数字符串输入控件设定电机的转速值;多指令方式中,采用的是通过以行读取PC机端指定路径下的文本文件方式实现。按照调试电机数据字节数的要求,该文件存放一定行的数据,每行数据值为设定的电机转速,通过索引数组子VI可确定文本文件的唯一一行作为当前的串口的输入数据,由于文本文件的一行是一个十六进制数字符串,需再通过截取字符串子VI,将该行十六进制数字符串分解为单个电机的设定转速值。

VISA Write串口只能以字符串格式写入,因此在写入数据之前,必须进行十六进制数字符串至字符串之间的转换,将要发送的命令帧变成一个字符串送VISA Write节点的Write Butter。图4右边部分即可实现十六进制数字符串至字符串的转换。

3.3 串口数据导出程序设计

机器人接收到上位机LabVIEW控制端发送读数据指令帧后,通过对电机码盘信号的实时采集,将最新的四个电机转速值加上数据指令帧头存放在发送缓冲区,以待调试系统通过VISA Read读取串口数据。

图5是将串口读取的数据进行判断,如果数据正确则按照规定好的数据协议计算出电机实际转速值再将它保存并显示出来。VISA Read每次读取5个字节的数据,数据帧头由握手信号(0xFF)及四个电机的实际转速值(0x00-0xFE)组成。由于VISA Read也只能以字符串的形式读取串口数据,读出5字节数据后,先通过字符串至字节数组转换子VI得5字节数组,再通过数组索引子VI判断读取的5个字节数据的首字节是否是握手信号0xff(255),以判断是否正确读取串口数据,把此布尔变量作为case结构的输入,为真则可以确定接下来的四个字节数据为对应电机的转速值,并通过数组索引子VI得到各电机的实际转速值,然后进行数据保存和显示,为假则放弃保存和显示该次读取的数据。

图5的右边CASE结构部分,将采集到的四个电机转速值连接至各波形图表控件输入端实现了数据的实时图形化显示。数据的自动存盘操作,是将同一次读取的四电机转速值创建一数组后转换为动态数据类型,通过反馈节点追加写入测量文件,保存是将转速值与当地时间对应,以文本的形式保存在电脑磁盘中,保存路径可以自己设置,方便随时提取出来以便后期进行分析。

4 人机交互界面设计及系统测试

4.1 人机交互界面设计

机器人电机调试系统前面板如图6所示。LabVIEW提供了很多图形化控件,使得系统界面相当友好,操作简单。界面主要分为操作区和观测区,操作区主要包括串口的基本设置、电机调试指令方式选择(单指令或多指令调试)及接受缓冲区的显示方式设置;观测区主要把读回的电机转速值实时地进行数值和图形化显示,通过观察前面板观测区,可以很直观地知道电机转速的实际变化。面板上的两个布尔灯控件是分别用来显示串口是否正常打开和判断是否正确读取串口数据。

4.2 系统测试

机器人运动控制系统中,电机有正转和反转,规定当设定电机转速为0X7F时,给定电机转速为0 r/s,设定电机转速小于0X7F为正转、大于0X7F为反转[3],类推可得,设定电机转速为0x70则期望电机转速是正转15 r/s。图6记录了调试系统在单指令调试方式下机器人四组电机给定转速为正转15 r/s下电机响应曲线。通过观测区四组电机响应曲线图,观察到四组电机各自转速值的波动和变化趋势,很直观地了解到该参数下的电机调试效果,而且在该系统设置的数据自动存盘路径下,打开相应文件可以得到更为详尽的试验数据。与往常用电机调试方式相比,该系统使得电机调试工作快速、直观。

5 结束语

LabVIEW是一种功能很强大的虚拟仪器开发软件,应用该软件开发平台,不仅成功实现了足球机器人中基于串口通信的电机调试系统设计,而且可以充分发挥LabVIEW这一图形化编程语言的优点,得到界面元素丰富、交互式良好的人机界面。测试表明该系统较好克服了目前在电机调试方式中存在的缺点,提高了机器人电机调试效率,具有一定的实用价值。

[1]戎海龙.自主式足球机器人运动控制系统设计与完善[D].沈阳:东北大学,2006.

[2]杨乐平,李海涛,杨 磊.LabVIEW程序设计与应用[M].北京:电子工业出版社,2005.

[3]陈锡辉,张银鸿.LabVlEW8.20程序设计从入门到精通[M].北京:清华大学出版社,2007.

[4]刘君华.基于LabVIEW的虚拟仪器设计[M].北京:电子工业出版社,2003.

[5]Johnson G W,Jennings R.LabVIEW图形编程[M].武嘉澍,陆劲昆,译.北京:北京大学出版社,2002.

[6]黄永贤.全自主足球机器人运动控制系统的研制[D].广州:广东工业大学,2008.

猜你喜欢
字符串图形化字节
基于Arduino图形化编程的教学应用研究
No.8 字节跳动将推出独立出口电商APP
基于文本挖掘的语词典研究
No.10 “字节跳动手机”要来了?
基于MSP430的四旋翼飞行器的S-BUS通信协议的设计与实现
LKJ自动化测试系统图形化技术研究
SQL server 2008中的常见的字符串处理函数
最简单的排序算法(续)
网络图形化界面在高速公路机电设施养护管理系统中的应用
高效的top-k相似字符串查询算法