基于Lab VIEW的LEGO Mind storms轮式机器人运动轨迹实时绘制系统
2013-08-21陈洪亮
摘 要:本文设计了一个基于Lab VIEW平台的LEGO Mind storms轮式机器人运动轨迹实时绘制系统,本系统采用上下位机结构,使用Lab VIEW的图形化编程功能,设计了简单易用的上位机人机界面,并通过相关的函数模块化实现了对轮式机器人的控制和运动轨迹实时绘制功能。本文重点探讨了基于机器人移动方向的角度值和移动距离值,对绘制运动轨迹所需的平面坐标值的计算和机器人运动轨迹的绘制。
关键词:Lab VIEW;运动轨迹;实时绘制;LEGO Mind storms;轮式机器人
中图分类号:TP242 文献标识码:A 文章编号:1007-9599 (2013) 09-0000-04
机器人运动轨迹的跟踪绘制是机器人学的一个非常重要的问题,是移动机器人所需具备的一种重要功能,利用机器人运动轨迹的跟踪绘制功能可以使机器人能够完成对一些未确定的行走路径进行初步探索和规划。在完成机器人运动轨迹的跟踪和绘制后,可以将其应用到机器人的全局路径规划中,使机器人能够更容易和更准确的沿规划的路径运动,达到指定的目的地和完成给定的任务。
Lab VIEW (laboratory virtual instrument engineering work-bench)是美国NI公司开发的优秀的图形化编程软件,是一个虚拟仪器工程平台,具有编程直观、快捷、高效等特点[1]。对于使用虚拟仪器技术应用于机器人数据采集和运动控制方面的研究,目前已有很多的学者进行了大量的研究[2]-[5],并发表了相关的文章或论文,但对于如何使用Lab VIEW实时跟踪绘制机器人的运动轨迹的探讨却不是很多。
本文针对轮式机器人运动轨迹的跟踪绘制问题,通过角度传感器获取伺服电机的旋转角度和驱动轮的周长计算出机器人的移动距离,再利用电子罗盘传感器上获取的机器人运动方向角度,实现了对轮式机器人的运动轨迹进行跟踪和绘制。
1 系统构成
本实验平台总体上包含上位机和下位机两部分:上位机的硬件部分主要由带蓝牙通讯模块的PC机构成,软件部分采用Lab VIEW编写完成;下位机硬件部分主要采用LEGO Mind storms机器人套件,利用它只需要进行简单的硬件连接就可以快速的搭建出实验用轮式机器人硬件平台,而且还可以使用内置的蓝牙通讯模块与上位机进行通讯。系统的整体框架,如图1所示。
图1 系统整体框架图
2 系统硬件结构
本研究的系统硬件由PC机(带蓝牙通讯模块)、LEGO Mind storms机器人套件等构成。PC机作为上位机,可以向下位机传送指令完成机器人运动控制、实时传感器值显示、实时绘制运动轨迹、实验参数设置等任务。下位机采用由LEGO NXT 9797搭建的双驱轮式移动机器人,由NXT32位中央控制器、带旋转角度传感器的伺服电机、电子罗盘传感器和超声波传感器等组成。机器人的运动方式,通过控制左右轮速差的方式来完成前进、后退、左转、右转等基本运动动作。NXT 32位中央控制器采集机器人上的伺服电机旋转角度、机器人行进方向(角度)、超声波传感器等数据信息,使用内置的蓝牙通讯模块(从机)将数据发送出去,与之配对上位机上的蓝牙通讯模块(主机)接收数据后,由Lab VIEW对接收到的数据进行处理显示,实现实时绘制机器人的运动轨迹。
3 系统软件设计
本系统软件设计以Lab VIEW 2012作为开发平台,完成轮式机器人运动轨迹的实时绘制功能。在Lab VIEW平台上,可以方便而快速的利用模块化函数建立上位机与LEGO NXT主控制器之间的通信,并可以指定USB或蓝牙等通信方式。同时对LEGO Mind storms机器人的控制和常用传感器值的获取,也同样可以直接调用模块化的函数,从而使机器人的运动控制和调用相关传感器值变的非常简单,因此本文重点对实验项目中的机器人运动轨迹实时绘制部分的设计进行探讨。
在Lab VIEW中,利用图形控制可以快捷的建立直观的操控界面,本系统软件的上位机操控界面包括机器人运动控制区、前方障碍物雷达图示区、机器人方位显示罗盘和运动轨迹绘制区及参数设置显示区等部分组成,如图2所示。其中机器人运动控制区,用于对机器人的运动进行控制,包括前进、后退、左转、右转和功率的设置显示;前方障碍物雷达图示区,用于显示前方超声波传感器测到障碍物的距离并以雷达图示的方式显示,以方便对机器人运动的操控;机器人方位显示罗盘,用于显示当前机器人行进的方向及角度值;运动轨迹绘制区,用于实时绘制机器人的运动轨迹;参数设置显示区,用于设置轨迹绘制比例和机器人轮胎直径等参数,并显示绘制坐标等一些常用的实时参数。
图2 轮式机器人运动轨迹绘制系统上位机操控界面
本文提出的机器人运动轨迹是指操控轮式机器人在前进或后退移动时的运动路径,该运动路径是由一系列的具有起点和终点的线段组成,每条线段是指机器人移动时的距离。线段的起点和终点,用一个平面坐标(X,Y)来表示,其中(XS,YS)和(XT,YT)分别代表起点坐标和终点坐标。在机器人移动时根据当前的起点和终点坐标值绘制出运动轨迹线段。机器人运动轨迹实时绘制的基本工作流程,如图3所示。
图3 运动轨迹实时绘制的基本工作流程示意
在上位机系统软件中,是使用Lab VIEW的二维图片控件来实现运动轨迹的绘制。由于Lab VIEW的二维图片控件的默认坐标基点(0,0)是位于图形绘制区的左上角,因此为了便于机器人运动轨迹的绘制,把二维图片控件的中心坐标点,作为每次启动绘制机器人运动轨迹的基点(如图4所示),即在初始状态下,运动轨迹的当前坐标值为(XS=X/2,YS=Y/2)。
图4 二维图片控件图形绘制区中运动轨迹初始绘制基点示意
机器人实际移动距离是实时运动轨迹绘制的基础,只有获取正确的移动距离才能够计算出需要绘制轨迹的长度。机器人在前进或后退时,利用伺服电机上内置的角度传感器获取当前伺服电机的旋转度数值和设置的轮胎直径参数(以毫米为单位),就可以计算出机器人当前的移动距离。
在二维图片控件上绘制机器人的运动轨迹是需要以像素为单位进行绘制的,因此在程序中需要根据当前所设置的比例参数,计算出以像素为单位的需要绘制的运动轨迹的长度,程序框图如图5所示。
图5 机器人实际移动距离和绘制运动轨迹长度的程序框图
在启动机器人后,上位机通过机器人上的电子罗盘传感器,可以实时的获取当前机器人移动方向的角度值。利用当前的起点坐标值、运动轨迹的长度值和机器人移动方向的角度值,在绘图区域中构建出对应的直角三角形计算模型,如图6所示。在图6的绘图区域中,A表示为机器人移动方向角度值;D表示为绘制轨迹的长度值,也是直角三角形的斜边;a表示为直角三角形的夹角;E表示为直角三角形的夹角对边;F表示为直角三角形的夹角对边;(XS,YS)表示为起点坐标;(XT,YT)表示为终点坐标。
图6 利用起点坐标值、运动轨迹的长度值和机器人移动方向的角度值构建的直角三角形计算模型示意
根据图6的计算模型就可以计算出绘制线段的终点坐标(Lab VIEW程序框图,如图7所示),具体的计算步骤如下:
(1)根据机器人移动方向角度值A,计算出直角三角形的夹角a的值:
a=A-(90*「(A/90)」
(2)根据直角三角形的夹角a的值和斜边D的值,计算出直角三角形夹角a对边E的长度值:
E=sinα*D
(3)根据直角三角形的夹角a的值和斜边D的值,计算出直角三角形夹角a邻边F的长度值:
F=cosα*D
(4)根据直角三角形直角边E和F的长度值,通过起点坐标(XS,YS)和机器人移动方向角度值,就可以计算出终点坐标(XT,YT):
1)当符合0>A<90且机器人处于前进移动状态和180>A<270且机器人处于后退移动状态条件时,终点坐标(XT,YT)为:
XT=Xs+E,YT=Ys-F
2)当符合90>A<180且机器人处于前进移动状态和270>A<360且机器人处于后退移动状态条件时,终点坐标(XT,YT)为:
XT=XS+F,YT=YS+E
3)当符合180>A<270且机器人处于前进移动状态和0>A<90且机器人处于后退移动状态条件时,终点坐标(XT,YT)为:
XT=XS-E,YT=YS+F
4)当符合270>A<360且机器人处于前进移动状态和90>A<180且机器人处于后退移动状态条件时,终点坐标(XT,YT)为:
XT=XS-F,YT=YS-E
图7 直角三角形夹角a的值不等于0时计算终点坐标的程序框图示意
在步骤(1)中,如果计算出直角三角形夹角a的值为0,那么表示当前机器人的移动方向角度值A可能等于0、90、180或360,如图8所示。
图8 直角三角形夹角a的值为0时机器人移动方向示意
当出现图8所示的情况,就不需要步骤(2)~步骤(4)的计算,而是直接依据当前起点坐标(XS,YS)的值、机器人移动方向角度值A和绘制轨迹的长度值D,计算终点坐标(XT,YT)的值(Lab VIEW的程序框图,如图9所示):
1)当符合A=0或A=360且机器人处于前进移动状态和A=180且机器人处于后退移动状态条件时,终点坐标(XT,YT)为:
XT=XS,YT=YS-D
2)当符合A=90且机器人处于前进移动状态和A=270且机器人处于后退移动状态条件时,终点坐标(XT,YT)为:
XT=XS+D,YT=YS
3)当符合A=180且机器人处于前进移动状态和A=0或A=360且机器人处于后退移动状态条件时,终点坐标(XT,YT)为:
XT=XS,YT=YS+D
4)当符合A=270且机器人处于前进移动状态和A=90且机器人处于后退移动状态条件时,终点坐标(XT,YT)为:
XT=XS-D,YT=YS
图9 直角三角形夹角a的值等于0时计算终点坐标的程序框图示意
在Lab VIEW的中,使用移动画笔函数先将画笔移动到起点坐标(XS,YS)位置,然后通过绘制直线函数在二维图片控件的图形绘制区域中绘出到结束点坐标(XT,YT)的直线,即可实时的绘制出当前机器人的运动轨迹,程序框图如图10所示。
图10 机器人运动轨迹绘制程序框图
4 结束语
本设计主要研究的是基于图形化编程平台Lab VIEW,对LEGO Mind storms轮式机器人在移动时运动轨迹的实时绘制功能,以扩展机器人在未知环境下对路径的探索和规划,从而进一步拓展移动机器人的基础应用。所设计的系统按照目标要求,使用LEGO NXT作为硬件的基础平台,搭载了电子罗盘、超声波、角度等传感器,通过Lab VIEW的图形控件和强大的模块化函数快速构建上位机的人机界面和程序。经实验表明,系统利用当前轮式机器人的移动距离和移动方向角度值就可以实现实时、快速、准确地绘制机器人运动轨迹功能,并具有工作稳定、操控方便、显示直观等特点。
参考文献:
[1]雷振山.Lab VIEW 基础教程[M].北京:中国铁道出版社,2008.
[2]向科锋.基于Lab VIEW的数据采集系统设计与实现[J].机械管理开发,2011(4).
[3]梁全贵,武丽,李长春.基于Lab VIEW的智能车数据采集与处理研究[J].工业控制机算机,2010,23:31-32.
[4]张卫星,赵峰.基于Lab VIEW 的运动控制系统的研究[J].工业控制计算机,2008,21(11):26-28.
[5]余军.基于虚拟仪器的智能车无线实时数据采集系统[J].工业控制计算机,2010(2).
[作者简介]陈洪亮(1974-),男,浙江广播电视大学缙云分校,讲师,研究方向:计算机科学技术的开发与应用。