基于ARM11的海洋浮标云台稳定控制系统
2016-03-29周金金王小英
周金金,林 志,王小英
(1.中国矿业大学信息与电气工程学院,江苏徐州221000;2.常熟理工学院电气与自动化工程学院,江苏常熟215500)
基于ARM11的海洋浮标云台稳定控制系统
周金金1,2,林志2,王小英2
(1.中国矿业大学信息与电气工程学院,江苏徐州221000;2.常熟理工学院电气与自动化工程学院,江苏常熟215500)
摘要:由于载体姿态的变化和海浪等因素的影响,海洋浮标成像系统所获得的图像不稳定或者模糊,如何改变现状是人们不断探讨和研究的课题。结合陀螺传感器MPU6050和磁力计HMC5883L设计一套基于ARM11的云台稳定控制系统,通过S3C6410的I2C接口读取MPU6050和HMC5883L的数据,采用卡尔曼滤波算法对其进行处理,然后解算出载体的航向角和俯仰角,实现云台摄像机姿态的反向调整。当云台摄像机与PC相连时,对UleadVideoStudio软件进行简单的配置,便可看到云台摄像机所拍摄的视频信息。实验结果表明:云台将以水平速度280°/s、垂直速度100°/s完成反向偏转,最长反馈调整时间为0.38s,满足工程上的应用需求;该系统电路结构简单、成本低、可视化且稳定,可以移植到无人机及船舶监控等场合,具有一定的实用性。
关键词:MPU6050;HMC5883L;卡尔曼滤波;四元数;云台
0 引言
海洋资料浮标能够全天候、稳定不间断地对海洋中海水的温度、压力及气象等诸多数据进行采集,对海洋气候灾害的预测、海洋科学的研究以及资源的开发和利用等具有重要的现实意义[1-3]。随着采集数据分析准确度要求的提高,可视化实时图像数据的作用越发显著。而在现实监测环境中,由于成像系统工作时受其载体的姿态变化和海浪等因素的影响,将导致获得的图像信息不稳定或模糊,极大地限制了图像信息的有效利用。
针对这一现象,本文设计一套海洋浮标内的云台摄像稳定控制系统,采用微机械陀螺仪模块和磁力计组成的姿态解算模块比采用光学及挠性陀螺仪体积更小,功耗及成本更低,且抗冲击力更好[4];云台稳定控制系统采用嵌入式技术,不仅体积小,成本低,响应快,且经过多种传感器信息融合技术处理后,有效降低了海洋环境中震动及风速等外界因素的影响。能够消除或减轻运动摄像载体对图像的影响,大大提高获取图像的信息质量,为相关海洋环境参数的分析和我国海洋维权执法等提供可视化的依据。
1 系统硬件设计
1.1系统硬件设计框架
S3C6410是由三星公司推出的基于ARM11内核(ARM1176JZF-S)的低功耗、高性能、高性价比的RSIC处理器,它拥有一条具有独立结构的load-store技术和算术流水的8级流水线,性能与ARM9相比提高了约40%。MPU6050是由InvenSense公司推出的整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速度计之间的轴差问题,减少了大量的包装空间,且可由第2个I2C端口连接一个第3方的数字传感器,如磁力计、压力传感器等;另外它还内嵌了1个12位的温度传感器和在工作环境下仅有±1%变动的振荡器。MPU6050的角速度全格感测范围为±250°/s、±500°/s、±1000°/s与±2000°/s,可准确追踪快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g、±8g与±16g。HMC5883L是由Honeywell公司推出的一款具有最先进的高分辨率HMC118X系列的高集成、低成本的磁阻传感器,并采用各向异性磁阻技术,具有较好的可靠性和高的灵敏度。上述系统硬件部分体积小、功耗低、性能好、价格也相对便宜,并且可以固态安装,能够有效降低云台控制系统的体积、功耗和成本,满足设计要求。本文设计的海洋浮标云台稳定控制系统总体框图如图1所示。
从图中可以看出,该系统按其功能结构可分为:传感器单元、主控制单元及云台摄像机通信单元。系统微处理器S3C6410通过I2C接口读取由传感器单元ADC所采集的3轴角速度分量、3轴加速度分量、3轴地磁场强度分量及温度10轴数据,对其进行处理得到载体所对应的航向角和俯仰角等姿态信息并转化成相应的运动指令,然后通过串口按照VISCA协议反馈给海洋浮标上的云台,云台做出相应的动作,使得相机等设备的视轴和目标视线在空间的同一个位置上,从而保证对目标图像的稳定控制。而在云台上的摄像机通过USB线将视频信号实时传送到PC端,并通过Ulead VideoStudio软件显示。
图1 系统框图
1.2系统硬件连接
1.2.1主控制单元与传感器单元的连接
系统硬件电路原理图如图2所示。通过查看OK6410开发板的底板原理图可以发现,用于外接摄像头的20针接口JP1口有备用的IIC接口。将1号引脚I2C SDA0和2号引脚I2C SCL0分别连接MPU6050的双向数据线接口SDA和时钟线接口SCL,17号引脚VDD3.3 V和20号引脚地则分别对应MPU6050 和HMC5883L的VCC和GND。而HMC5883L的I2C接口与MPU6050的辅助接口相连,由于MPU6050模块的接口是2.54mm的间距,而OK6410开发板在设计考虑时为了精简开发板的尺寸大小采用的接口都是2.0mm的间距,所以这里需要再通过2.54mm间距转2.00mm间距的杜邦线来转接。
1.2.2主控制单元与云台摄像机单元的连接
云台的控制接口RS232与OK6410开发板在串口延长线的基础上,通过3根杜邦线将对应的TXD、RXD、GND简单对接,即可形成基本的读写通信,两者的实物连接如图3所示。
2 系统软件设计
系统软件框架设计如图4所示,本系统主要实现下位机和上位机之间的通信。PC机作为上位机,主要是在VMwareWorkstation虚拟机环境下构造基于Linux的Fedora系统,并在该系统内配置armlinux-gcc交叉编译环境进行编程,生成的二进制文件通过超级终端SecureCRT传输给开发板。基于ARM11的OK6410开发板作为下位机,在板内烧写基于Linux3.0.1的Qtopia系统,通过调用内置的终端命令软件运行二进制文件,实现下位机模块之间的通信。在PC端,进行简单的配置后即可通过Ulead VideoStudio软件获取云台摄像机图像信号。
图2 系统硬件电路图
图3 云台摄像机与主控制单元的连接
图4 系统软件框架图
2.1云台通信配置
在云台和主机通信之前,要对云台摄像机的工作地址和模式进行配置。SW1的8位全部置0,表示任何地址的代码都可以控制云台摄像机,方便之后的软件调试。SW2的拨码开关要配置如表1和表2所示,选择通过VISCA协议传输,通信方式为RS232C串口,波特率为9600b/s。
2.2系统程序设计
系统程序流程图如图5所示,本程序可以大致分为MPU6050和HMC5883L模块初始化子程序,串口初始化子程序、传感器模块读取子程序、算法处理子程序、串口通信子程序等。
表1 SW2(3~4位)拨码开关状态
表2 SW2(5~6位)拨码开关状态
图5 系统程序流程图
2.2.1传感器模块程序设计
MPU6050和HMC5883L均是I2C通信,而Linux内核中有能够普遍使用的I2C总线结构的读写指令,那么就需要了解Linux内核中的IIC基本读写程序的规范和调用规则。首先要定义和内核一致的struct i2c_rdwr_ioctl_data子程序和struct i2c_msg子程序。然后定义操作时序中的操作信号数mpu6050_data.nmsgs,接下来用打开文件的方式打开MPU6050设备,并用读写子函数来读写寄存器的值。另外由于MPU6050的每一个轴有16位数据,分为高低各8位,故在读取传感器数据的时候还需要合并高低位数据。
HMC5883L传感器连接在MPU6050的辅助I2C接口上,只需要设置MPU6050的两个寄存器0×6A、0×37的值为0×20、0×00,将MPU6050的I2C master模式打开,HMC5883L看成从设备I2C Slave0,然后通过读取Slave0的寄存器值即可读出HMC5883L的数据。
2.2.2串口通信程序设计
Linux系统通过把串口设备当做文件来打开,即fd1=open(“/dev/ttySAC0”,O_RDWR),并标记为可读可写,然后按照termios头文件的描述来设置串口通信的基本参数,配置完毕后只需要调用Write函数即可向串口设备发送信号,最后在程序末尾用close关闭设备。
2.2.3算法处理程序设计
陀螺仪测姿短时间内准确度很高,但由于陀螺仪存在温漂等缓慢变化的误差[5],随着时间推移产生的误差在积分运算过程中不断累积,使得误差越来越大,从而影响姿态解算的精度,故不利于长期运行。加速度计测姿长期稳定,但受限于载体运动状态,磁力计受浮标环境影响,动态性能较差[6]。为了得到较高精度的姿态角,且又能长期稳定地工作,就必须对各传感器输出数据进行信息融合,本文采用扩展卡尔曼滤波算法对传感器单元进行最优化求解。
姿态解算单元流程图如图6所示。
图6 姿态解算单元流程图
采用矩阵法[7-10]确定云台的姿态和航向时,从云台载体坐标系和地理坐标系之间的方向余弦矩阵即可求出俯仰角θ、横滚角γ和俯仰角ψ,旋转矩阵Cab如下式所示:
由于三角函数计算量大,故类比余弦矩阵,四元数矩阵如下式所示:
由式(1)和式(2)可得:
3 系统测试
本文通过对静止状态姿态角的平均误差和均方误差[6]来检验算法的有效性。由于本云台稳定控制系统放置在海洋浮标上,只需要考虑航向角和俯仰角即可,将姿态解算模块水平放置在桌面上,调整面板使其航向角为58.2°,俯仰角为0.4°,采集到的姿态角曲线如图7和图8所示,从图中可看出航向角在±0.2°波动,俯仰角在±0.1°波动,通过计算航向角的平均误差和均方差为0.00370°和0.08980°,俯仰角的平均误差和均方差为-0.00150°和0.02070°,基本准确的反应了实际的偏转角度。
图7 俯仰角曲线图
图8 航向角曲线图
在测得云台偏转角度后,云台将以水平速度280°/s、垂直速度100°/s的角速度完成反馈偏转,由于云台自身速度有限,实际测得最长反馈调整时间为0.38s,基本达到实时稳定控制的效果。当云台的视频输出线与PC端连接时,打开Ulead VideoStudio软件并进行简单的配置,便可看到云台摄像机所拍摄的视频信息。
4 结束语
本文详细介绍了基于ARM11的海洋浮标云台稳定控制系统的软硬件设计,利用微机械陀螺仪和磁阻传感器组成的测姿仪实时测得云台的角速率、加速度及磁场强度,然后利用四元数计算出航向角和俯仰角,并结合高阶卡尔曼滤波法对测得的数据进行信息融合来更新云台摄像机的姿态。云台将以水平速度280°/s、垂直速度100°/s的角速度完成反馈偏转,使得相机等设备的视轴和目标视线在空间的同一个位置上,实际测得最长反馈调整时间为0.38s,基本达到实时稳定控制的效果。在今后的研究中可以加入WIFI模块,以实现远程控制和海洋环境图像的远程传输;同时,在云台稳定控制的基础上可进一步研究并实现云台视频序列的稳定输出。
参考文献
[1]唐歆.海洋资料浮标水动力分析及结构研究[D].上海:上海海洋大学,2012.
[2]李崇.大型海洋资料浮标前置机软件建模及实现[D].青岛:中国海洋大学,2012.
[3]周金元,唐原广,赵曙东.基于海洋资料浮标上目标探测系统的集成设计[J].气象水文海洋仪器,2013(6):73-76.
[4]邱宝梅,王建文.嵌入式机载摄影稳定平台的设计[J].仪器仪表学报,2009,30(9):1981-1984.
[5]刘娜娜.基于MEMS传感器的姿态检测系统设计[D].哈尔滨:哈尔滨工业大学,2011.
[6]高同跃,丁卫,高新闻.面向机载稳定云台的微姿态参考系统研究[J].传感技术学报,2009,22(9):1303-1307.
[7]袁书明,杨晓东,程建华.导航系统应用数学分析方法[M].北京:国防工业出版社,2013:169-174.
[8]邓正隆.惯性技术[M].哈尔滨:哈尔滨工业大学出版社,2006:152-159.
[9]高钟毓.惯性导航系统技术[M].北京:清华大学出版社,2012:10-17.
[10] LI G C,HE Y F,ZHU S B,et al. The MEMS gyro stabilized platform design based on Kalman Filter [C]∥International Conference Optoelectronics and Microelectr onics(ICOM). Harbin:2013:14-17.
(编辑:李刚)
Design of PTZ stability control system in ocean buoy based on ARM11
ZHOU Jinjin1,2,LIN Zhi2,WANG Xiaoying2
(1. School of Information and Electrical Engineering,China University of Mining and Technology,Xuzhou 221000,China;2. School of Electric and Automatic Engineering,Changshu Institute of Technology,Changshu 215500,China)
Abstract:Because of carrier changing postures and waves and other influential factors,the images acquired from the image system on an ocean buoys is unstable or fuzzy. How to solve this problem has become a topic of constant discussion and research. A set of PTZ stability control system,comprising a gyroscopic sensor MPU6050 and a magnetometer HMC5883L,was developed on an ARM11. The operating principle of the system is as follows: read the data of MPU6050 and HMC5883L through the I2C interface of S3C6410 and process these data by Kalman filtering algorithm. Next,calculate the azimuth angle and pitching angle of the carrier to adjust reversely the posture of the PTZ camera. When the PTZ is connected with PC by USB,the video information can be seen by simple configuration of Ulead VideoStudio software. The experiment results have shown that the PTZ would complete reverse deflection at a horizontal speed of 280°/s and a vertical speed of 100°/s and the longest adjustment time of feedback is 0.38s,which meets the requirements of engineering application. The system,characterized by simple circuit structure,low cost,visualization and stability,can be transplanted to unmanned aerial vehicles(UAVs)and ship monitoring places.
Keywords:MPU6050;HMC5883L;Kalman filter;quaternions;PTZ
通讯作者:王小英(1975-),女,江西波阳县人,副教授,博士,研究方向为嵌入式实时系统、图形图像处理。
作者简介:周金金(1988-),女,湖北随州市人,硕士研究生,专业方向为嵌入式实时系统、图形图像处理。
基金项目:江苏省产学研联合前瞻性项目(BY2010126);苏州市科技计划项目(SGZ2012064)
收稿日期:2015-04-10;收到修改稿日期:2015-06-08
doi:10.11857/j.issn.1674-5124.2016.01.017
文献标志码:A
文章编号:1674-5124(2016)01-0074-05