基于北斗导航的六足仿生搜救机器人
【摘要】机器人可以代替灾难救援以及危险地区探索,本机器人针对这一功能,比照轮式机器人越障能力有限,设计了六足式的构架,在恶劣的地形环境下表现出良好的适应性,使得六足仿生机器人的研究对侦查工作和灾难救援等领域的研究具有重要的理论与现实意义。
本作品搭建一套可以实现无线视频传输,应用北斗系统使之具有导航功能,能够远程控制的仿生搜救机器人。系统将视频信号控制信息通过wifi无线通信,用户可以在PC端或者Android客户端远程监控控制。
【关键词】北斗定位系统 六足仿生机器人 无线视频监测 Android客户端
1 六足机器人的结构分析以及步态规划
1.1六足机器人机械结构分析
多足交替行走的方式之所以被绝大部分的生物采纳,是因为它具有明显的优势,那就是对自然环境高度的适应能力,以及灵活的自我操控能力。所以本作品设计的通过仿多足生物结构,并对其结构进行优化,使之具有高度的灵活性。
参照多足昆虫设计,我们发现腿的这种设计因为同侧相邻的腿有重叠的能够到达的区域而引起干涉问题,如图1.1。这使得步态分析更加复杂。解决这个问题的一种方法是消除所有的重叠区域,我们将其改进,设计了六边形结构。六边形模型表现出更好的回转性能,在容错步态中有更高的稳定裕度,在特定的环境中有更大的步长,如图1.2。
图1.1 多足生物腿部运动模型
图1.2 六足仿生机器人机械结构简图
1.2 六足仿生机器人的步态规划
这里以一条腿为例,进行详细的运动分析。图1.3所示为六足仿生机器人腿部结构图,为了便于分析,对其进行简化。
图1.3 六足仿生机器人腿部结构间图
整个腿部结构为一个4杆机构,对其分别在X轴和Z轴投影,即可得到关于θ1和θ2方程组如下:
求出θ1和θ2后,用于舵机驱动关节转动。为了求出关节3的转动角度,做出腿部结构在XY平面内的投影,如图1.4所示。
在腿部运动分析的求解过程中,由LY求出θ3,结合LX求出L,再结合H求出θ1和θ2,求出θ1、θ2和θ3后,分别用于驱动关节1、2和3转动,从而实现机器人腿部的运动。
图1.4 六足仿生机器人腿部结构XY平面投影图
六足仿生机器人在运动过程中采用三角步态,将六条腿分为两组,A组由1、3和5号腿组成,B组由2、4和6号腿组成。六足仿生机器人直线行走时,存在A组先迈步和B组先迈步两种情况。下面以A组先迈步为例介绍六足仿生机器人完成一个完整的迈步周期的过程,如图1.5所示。
图(a)所示为六足仿生机器人处于初始状态,6条腿都处于支撑状态。
图(b)所示为A组腿处于自由迈步状态,B组腿处于支撑状态并驱动机器人的身体向前运动。
图(c)所示为A组腿处于支撑状态并驱动机器人向前运动,而B组腿处于自由迈步状态。
图(d)所示为又回到A组腿处于自由迈步状态,而B组腿处于支撑驱动状态。至此,完成了六足仿生机器人直线行走一个迈步周期。
在上述过程中,由(a)到(b)的过程和由(c)到(d)的过程是不同的,因为(a)图中机器人处于初始状态,所以这两个过程中迈步的步长是不同的,即二者的足的矢量终点是不同的。同理即可得出转弯的步态。
图1.5 六足机器人步态分析图
步态控制程序流程:
图1-4系统程序框图
2 北斗系统导航功能的实现
2.1北斗系统模块介绍
我们通过北斗系统获得定位采用UM220模块,是一款针对车辆监控、气象监测和电信/电力授时等应用推出的GPS/BD-2双系统导航/授时模块,体积很小(仅40*30*4mm),集成度高,功耗低,很适合该作品的使用。
模块自身可以通过相关器,FFT和匹配滤波器混合应用以及算法优化,在各种复杂的环境下可以保证出色的捕获跟踪能力和快速的TTFF功能;先进的多路径抑制和高质量的原始观测数据,可以保证我们后续开发的精度要求。
该模块另一个特点是多系统融合开放式构架,我们可以结合GPS以及BD-2系统的优势互补,设计更加精确的定位算法。
图 2.1 结构框图
2.2 GPS/BD-2组合定位算法
通过GPS/BD-2组合定位,有效利用两款卫星定位的优势,从而进一步提高了定位的精度以及稳定性。
GPS/BD-2的组合定位方式与GPS+GLONASS组合定位方式较为相似,均通过测伪码实现定位,拟参考GPS+GLONASS组合定位数学模型,来求解出GPS/BD-2的组合定位算法的数学表达式。
设GPS/BD-2组合接收机i观测第j颗卫星,相应的伪距表达式为:
通常,式 的后三项会在导航数据中给出,我们可以假设它们已经被补偿了,所以,式 可以简化为:
为卫星到接收机的距离,由于卫星分为GPS和BD卫星两种情况,所以在计算的时候要分别计算GPS和BD情况下的值:
设为接收机坐标,为卫星信号,那么当第j号卫星时的伪距观测值为:
该卫星为BD-2卫星时,伪距观测值为:
当观测卫星数大于5颗的时候,一般采用最小二乘法进行数据处理。由于GPS和北斗所提供的定位数据格式有所不同,所以需要进行时间系统和坐标系统的转化以及统一。
CGS2000与WGS84的坐标转换:
在两个不同的卫星导航系统之间转换,通常采用布尔莎模型(Bursa Model)。
图 2.2 两个坐标系的空间几何关系
坐标转换7参数布尔莎模型如下:
如果通过单点定位,得到3个以上地面点在不同坐标系中的坐标值(或差),即可解得两个坐标系间的转换参数。
系统时间的转换:
为了精密导航和测量的需要,GPS和BD-2卫星定位系统都采用自己的时间系统。GPS的时间系统被称为GPST,由GPS主控站的原子钟控制。GPS与协调世界时间之间的关系如下:
北斗卫星定位的时间系统称为北斗时(BDT),它也属于原子时系统,BDT与GPST的时间差值可以定义为:
在定位求解的时候需要通过BD-2卫星播发的数据来得到这个参数。
3 WIFI无线传输方案
WIFI无线传输使用了TP-Link 703N路由器,通过重新在路由器上刷新固件OpenWrt实现。使用无线路由通信的优点非常明显。
1、 高速,宽频段的通信方式,使得短时间可以传输视频等大量信息。
2、 远距离无线传输。相比蓝牙,红外等无线通信方式,通过wifi的无线通信方式距离非常远,可以达到几百米,有利于对移动设备进行控制。
3、 可以搭载到其他无线基站上,这样可以将数据发到Internet上,实现全球的监控以及控制。
OpenWrt 可以看作一款Linux的文件系统,并且开放源码,使用户可以根据自己的需求设计程序和驱动,实现更多的功能,而且系统自身可写,开发者无需在每一次修改后重新编译,令它更像一个小型的 Linux 电脑系统,也加快了开发速度。
我们在无线路由器上安装了USB底层驱动,Mjepg视频流以及ser2net无线串口,wifinet等程序包,并设计开机启动程序wifisetup。在六足机器人上面安装有可以自由改变方向的摄像头,摄像头通过USB口与路由器相连,路由器读取摄像头的数据后转换为Mjepg格式并将视频流以http的形式封装起来,发送到PC端以及android客户端,作为PC和手机控制并监控六足机器人的中间桥梁。
同时,通过ser2net驱动的编写,路由器也可以起到无线串口的功能,将串口的数据通过socket封装起来并通过网络端口发送或者接收,这样便可以在PC或者android客户端与六足机器人实现双向通信,PC端将控制指令发送到机器人系统中,机器人也将自己的通过北斗系统获取的位置信息发送到PC端。
4 PC上位机软件设计
4.1结构布局
PC端上位机的主要目的是实现电脑与六脚蜘蛛的信息通信,以方便用户进行远程的观察和操控,使其适用范围更加的广泛。上位机可以通过无线路由实时获取六脚蜘蛛上的摄像头的视频数据,使用户可以以蜘蛛的视角观察周边环境,实现远程监视,同时还可以控制摄像头的俯仰角和水平角的移动,使其视野更加宽广。上位机可以控制蜘蛛的前进、左转、右转和暂停等动作,同时还可以接收蜘蛛上的北斗定位系统的位置坐标,并在在地图上以多种形式进行显示。
如下图所示是上位机的结构框图:
图4.1 上位机结构框图
4.2使用说明
上位机的主要显示界面如下图4.2所示,主要分为五部分组成,分别为显示区、信息区、网络设置区、蜘蛛控制区、地图控制区和状态区。
图4.2 上位机主界面
显示区为如图所示的1区,它可以在不同的时刻分别显示摄像头视频和地图,其主要是通过4区左下角的按钮进行切换。
信息区为如图所示的2区,主要目的是输出系统的信息,比如发送的数据、接收的数据、系统错误信息和系统提示信息等,该区域给用户一个直接的信息显示,同时也是调试区域。。
网络设置区为如图所示的3区,在该区域中可以对服务器的IP地址进行设置,同时还可以设置控制端口和视频端口,方便其实用性。“建立连接”和“开始录像”的作用是与服务器建立连接同时接受服务器发送的视频数据,这是上位机控制蜘蛛动作和进行视频监控必须的操作。
蜘蛛控制区为如图所示的4区,其中“前进”、“左转”、“右转”和“暂停”分别控制蜘蛛的前进、左转、右转和暂停运动等操作。四个角的按键“左移”,“右移”,“上仰”和“下俯”主要是控制摄像头的水平角度和俯仰角度,以实现摄像头的灵活控制。 “设置”按键则是对控制指令进行以及摄像头的设置,同时还有串口的设置,方便进行扩展。点击之后出现的对话框如图4.3所示:
图4.3 指令设置界面
地图控制区为如图所示的5区,该区域可以显示北斗定位系统的的经纬度坐标,对显示的地图的缩放等级进行设置,同时区还可以选择地图的显示方式,主要有三种方式:常规图像、卫星图像和混合图像,其效果如图4.4所示:
图4.4 地图显示界面
5 Android客户端程序设计
Android客户端主要实现的功能与PC端上位机的相似,主要是对六足机器人进行视频监控和动作控制,除此之外还可以根据北斗定位系统显示地图信息。Android客户端可以实现用户手机的控制,大大增加了六足机器人的使用灵活性和方便性。
Android客户端主要有三个界面组成,其中两个界面如图5.1所示,第一个界面主要是对网络的IP地址以及端口号进行设置,同时设置地图的显示模式,第二个界面则主要是对控制指令的设置。
图5.1 Android客户端设置界面
Android客户端的主控制和显示界面如图5.2所示,分为上下两个区域,上面的区域为显示区域,在视频模式下显示视频,在地图显示模式下为显示地图。下半部分主要为按键控制部分,其中“前进”、“左转”、“右转”和“暂停”分别控制蜘蛛的前进、左转、右转和暂停运动等操作。四个角的按键“左移”,“右移”,“上仰”和“下俯”主要是控制摄像头的水平角度和俯仰角度,以实现摄像头的灵活控制。“设置”按键是进入到指令设置界面。“OFF“开关主要是开启和关闭视频显示,”显示地图“按键则是切换至地图显示界面。
图5.1 Android客户端主界面
参考文献
[1] D. E. Orin, R. B. McGhee, V. C. Jaswa. Interactive compute-control of a six-legged
robot vehicle with optimization of stability, terrain adaptibility and energy[C].
Decision and Control including the 15th Symposium on Adaptive Processes, 1976 IEEE
Conference on. 1976,15:382-391.
[2] J. M. Porta, E. Celaya. Reactive Free-gait Generation to follow Arbitrary Trajectories with a hexapod robot[J]. Robotics and Autonomous Systems. 2004,187-201.
[3] C. Angle. Small Planetary rovers[C]. Proceedings IEEE International Conference on Intelligent. Robots and systems. 1990,383-388.
[4] Laksanacharoen S, Quinn R.D, Beer R.D.The evolution of neural network controllers for the targeted swing of cockroach-like robot[C]. Proceedings of the International Joint Conference on Neural Networks. 2002,1:929-933.
[5] 徐小云,颜过正,丁国清.微型六足仿生机器人机器三角步态的研究[J].光学精密工程,2002, 10(4):392-396.
[6] 韩建海,赵书尚,张国跃.基于 PIC 单片机的六足机器人制作[J].机器人技术与应用,2003, 6:29-32.
[7] 杜爱林,徐猛华.基于 PIC 单片机的六足机器人的协调控制[J].计算机与自动化技术,2004, 30(7):70-71.