球形运动装置具有良好的动静态稳定性和运动灵活性,能够在比其直径略大的狭窄弯曲空间内运动,即使与其他物体发生碰撞或跌落,也可以自动恢复稳定状态,不会像轮式、足式、履带式等传统移动装置那样发生翻车问题,因此在复杂未知环境中应用优势显著。本文对球形运动装置的运动原理、可控制性等内容进行了研究,设计了基于智能手持设备的智能球控制系统,可将现实世界和虚拟世界的游戏结合起来,带来一种融合虚拟与现实的体验。
论文关键词:智能球,蓝牙技术,速度逆解,非完整约束系统
球形运动装置是最近十几年出现的一种新型移动结构形式,它的典型特征是具有一个球形外壳且将其运动机构、控制系统、电源等都包含在球形外壳的内部,通过重心偏移、动量守恒等内部驱动方式实现可控运动。球形运动装置具有良好的动静态稳定性和运动灵活性,能够在比其直径略大的狭窄弯曲空间内运动,即使与其他物体发生碰撞或跌落,也可以自动恢复稳定状态,不会像轮式、足式、履带式等传统移动装置那样发生“翻车”问题,因此在复杂未知环境中应用优势显著。
1相关工作
一般认为第一个真正的球形运动装置是由Halme 等于1996年设计完成的,这个球形装置利用一个可在球壳内滚动的带有支撑杆的内驱动机构打破系统的平衡,实现装置的全向运动[1]。Halme等人分析了该装置的越障、爬坡等运动性能,但这个球形运动装置的运动可控性与稳定性较差。Bicchi等设计的球形运动装置是放置一辆双轮小车于空球壳中,利用小车运动打破装置内部的平衡从而使装置运动,他们只做了简单的仿真,没有实验结果。Bhattacharya 等设计了一个具有对称结构的球形运动装置,与球壳相连接的两个相互垂直的电机驱动转子高速旋转,由于角动量守恒导致球壳反向转动,由此产生装置的运动,仿真和实验结果表明该球形装置的运动精度比较差[2]。Mukherjee等提出了一种球形运动装置的概念设计,其内部从球心位置伸出4根辐条,盘式电机控制重物沿着辐条运动改变球的重心,实现球形运动装置的全方位运动,球壳内部的支撑腿和摄像机可从球壳内伸出,完成战场侦察、环境探测等任务[3]。Javadi等设计的球形运动装置也是通过调整4根辐条上的配重来改变球形运动装置的重心,但辐条的布置方式不同,他们只在很小的运动范围内进行了仿真和实验[4]。2004年瑞典的Rotundus 公司推出了用于军事侦察与监视用的Rotundus 系列球形运动装置。Rotundus的内部设有一根中轴,中轴上悬挂一个摆块,在电机的驱动下,摆块向前(或向后)摆动时球形运动装置滚动前进(或后退),摆块向侧方移动时则进行转向[5]。Rotundus内部可安装相机、无线电通信设备等部件,可在一定距离范围内为使用人员采集和传输特定区域的信息。孙汉旭等设计了一个类似万向节结构的全方位运动球形装置,通过两个垂直轴上布置的电机调整配重位置的方式来实现球形装置的全方位运动。战强等设计了两种不同结构的、直线运动与转弯运动解耦的球形运动装置,通过两个电机分别驱动重物实现重心偏移,使球形运动装置实现直线和转弯运动[6]。
2 智能球控制系统
智能球控制系统是基于Android和蓝牙功能的手机终端进行通信,手机终端安装了应用控制软件, 可以进行数据传输。利用手机蓝牙遥控智能球的行走,以蓝牙手机作为客户端,智能球上的蓝牙模块作为服务端,通过串口仿真协议进行通信。它具有编程灵活、自由、易于控制、稳定性能好、扩展容易等优点。实现了智能球的前行、倒退、左转、右转和停止等功能,将手机变身为遥控器,为人们的带来方便。
2.1 手机客户端设计
手机客户端设计采用的是Eclipse开发环境,Eclipse是一个开放源代码的、基于Java的可扩展开发平台,还需要为Eclipse安装一个开发J2ME程序的EclipseMe插件,为了在电脑上方便模拟自己开发的程序,还需要安装无线开发工具WKT。
2.1.1 初始化本地蓝牙
初始化本地蓝牙设备,建立LocalDevice类,包括取得本地设备实例、蓝牙名称、设置发现模式、获得发现代理。
2.1.2 搜索蓝牙设备
搜索周围蓝牙设备,每发现一个设备就调用监控接口deviceDiscovered(),在这个接口中添加自己的代码,把搜索到的设备记录在List列表中,搜索设备完成调用接口inquiryCompleted()。完成搜索后,把搜索到的所有设备显示出来。
2.1.3 搜索蓝牙服务
在识别列表List中,选择一个需要的设备,开始搜索服务,发现服务时自动调用接口servicesDiscovered(),并把服务记录在serviceRecord,服务搜索完成调用接口serviceSearchCompleted()。
2.1.4 建立连接
根据上一步搜索到服务记录serviceRecord,建立连接要获得URL,调用接口函数serviceRecord.getConnectionURL(),打开连接Connector.open(url),并打开数据流openDataInputStream()和openDataOutputStream(),就可接收和发送数据。
2.1.5 监听键盘事件
由Canvas 类监听按键事件,当有按键按下时,自动调用keyPressed(),并传入按键编码,发出控制信号,控制智能球的运动。
2.2 智能球服务端设计
智能球服务端的设计包括:蓝牙串口通信设计、单片机编程设计、电源电路设计和直流电机驱动设计。下面介绍蓝牙串口通信设计和单片机编程设计。
2.2.1 串口通信设计
蓝牙模块与单片机之间的通信使用虚拟串口实现的,串口为标准配置:波特率9600、检验位NONE、数据位8 位、停止位1 位。中断接收函数只要是负责接受蓝牙发送过来的数据。
2.2.2 单片机编程设计
由于无线接收器和单片机通信的方式是串口,为了是智能球能迅速响应上位机发送来的信号,单片机使用串口中断的方式,在main函数里面主要就是处理中断接收到的数据,并控制电机的转动。
3 智能球运动系统
智能球三维实体模型如图1所示。该智能球基于重心偏移的原理实现可控运动,其内部结构主要包括小车、电机、中空轴、重块和摄像头。其结构关系为:中空轴通过两端的两个滚动轴承连接在球壳上,并作为支架安装其他4个部件。小车固定在中空轴上,其两个车轮与球壳呈滚动摩擦接触;驱动重块的电机也固定在中空轴上,其输出轴端固定连杆,连杆的末端固定有重块,当电机旋转时可驱动重块绕电机轴左右摆动;就动力学控制来讲,智能球的运动学控制具有计算量少、实时性好等优点,但也存在动态特性得不到保证的缺点。采用旋量理论可推导其速度雅可比矩阵实现其速度级运动学逆解,利用可控性李代数证明该球形智能球系统是可控的。
智能球的运动原理是:小车沿球壳内壁爬升带动内部机构转过一个角度,使智能球整体产生重心偏移,从而驱动智能球进行直线运动。当重心偏移力矩和滚动摩擦力矩平衡时,智能球匀速前进,此时内部驱动机构与地面保持一个恒定的角度。
智能球的转弯运动是通过电机驱动重块在垂直于直线运动方向上摆动来实现的。当电机驱动重块转过一个角度时,会产生一个侧向偏心力矩,使球倾斜一个角度,此时与直线运动相组合即可形成智能球的转弯运动。
图1 智能球结构
4实验分析
为了验证结构设计的合理性及速度逆解的正确性, 对智能球进行了圆形轨迹运动实验, 该智能球的直径为200 mm。实验过程中利用单目CCD摄像机拍摄球形智能球的位置图像, 并通过视觉处理手段获得其型心位置,然后将实验测得的运动轨迹数据与理论数据进行比较。圆形轨迹运动实验方法是以不同的转弯半径进行圆形轨迹运动,考察其圆形轨迹运动的稳定性和最小转弯半径。实验中智能球运行轨迹直径为1. 6 m,运行过程中智能球偏移理想轨迹的最大误差约为0. 05 m,这是由于地面不平所导致的。实验结果证明了智能球可以实现圆周运动,智能球的圆形轨迹运动误差在轨迹直径长度的5 %以内。
5 结论
本文根据球形运动装置控制的特点,通过实验发现当对智能球采用开环控制时,由于系统的实际运行轨迹无法测量,而只能通过积分的方式获得,因此当受到外界干扰时,智能球的运动轨迹会受到较大的影响。为了使球形智能球以较高的精度运动,对其进行包括动力学在内的闭环控制系统,有效地对智能球进行运动构件的速度、加速度或位置的控制,并把智能球与手持设备蓝牙遥控技术整合为一体化智能球形运动装置。
参考文献
[ 1 ] Halme A ,Schonberg T ,Wang Y.Motion cont rol of a spherical mobile robot [C] ∥4t h IEEE International Work2 shop on Advanced Motion Cont rol AMC’96. 1996 : 100-106.
[ 2 ] Bicchi A ,Balluch A ,Prattichizzo D ,et al . Int roducing t he“SPHERICL E”: an experimental testbed for research and teaching in nonholonomy [ C ] ∥Proceedings of the 1997 IEEE International Conference on Robotics and Au2tomation. 1995 :2620-2625.