【分享帖】基于STM32F4的视觉追踪与手机控制运动平台
![LittleQiang](https://hz-rm-bbs-web-prod.oss-cn-hangzhou.aliyuncs.com/avatar/pre/v1/000000019_avatar_big.jpg)
基于STM32F4的视觉追踪与手机控制移动平台
摘要 本项目实现了基于STM32F4 平台的全向运动平台,并实现与手机交互。该平台充分运用了STM32F4 平台的强大性能与平台控制系统的便利性,实现了视觉追踪与控制逻辑生成,采用Android ADK框架进行板间通信,具有较强的兼容性。该项目在工业和民用领域具有较好的实用价值,如自然语言交互机器人、自主移动拍摄平台等。
关键字:STM32F4,视觉追踪, Android
STM32F4-Based Trans-wheel Moving Platform with Visual Trackingand Smartphone Communication
Abstract:
This project designs and implements an intelligent movingplatform and controller system based on STM32F4 . Taking full use of the flexibilityof Android platform combined with the convenience of ARM Cortex-M4 MCU system,we process to realize the visual movement tracking and control logic generation.Our system uses the Android Accessory Development Kit(ADK) protocol and obtainshigh compatibility. This project is of bright application prospect inindustrial field, such as, natural communicating robot and auto movingphotographing platform.
Key Words: STM32f4, visual tracking, Android
1. 引言随着ARM推出了Cortex-M架构,工业控制领域正迎来一次变革,原本集成微控制器性能低下的情况正在被32位ARM架构的引入所改变,微控制器的应用范围正在得到扩展,原本需要一些高计算量但又需要强大通信能力的领域,MCU和DSC正越来越多的抢夺DSP的市场。而Cortex-M4内核的发布、FPU与SIMD的引入正把MCU的计算性能提升到一个新的高度。STM32F4平台是一个Cortex-M4内核、低成本、高性能、具备完备通信能力的微控制器系列。
与此同时,传统制造业领域、工业控制领域也有越来越多的尝试借鉴消费电子领域的成熟技术进行技术革新。而智能手机平台以其全面的传感器支持、成熟的开发环境以及大规模应用带来的成本下降为优势,正逐渐受到专业领域的关注。一部普通的Android手机所支持的传感器类型多达20多种,这其中很多类型可以直接为工业领域所应用,而其成本相对于小众市场的工业传感器而言十分低廉。智能手机平台在自然语言交互能力上也具有非常大的优势与潜力,语音输入、手势输入、姿态识别等区别于传统的自然语言输入方式在手机平台上非常容易实现。
智能手机平台与STM32F4的通信可以有多种方式,本方案选用STM32F4平台进行Android设备的外部扩展,两平台间使用USB接口或蓝牙接口进行通讯。STM32平台可以实现自主视觉追踪,同时通过通信接收Android设备发来的指令,实现人机交互。
2. 系统指标
针对当前智能监控系统的发展状况,本系统需要实现的系统指标如下表所示:
表1 系统指标
视觉帧速 | 15fps |
可识别最高移动速率 | 3m/s (3.1mm镜头下,距离2m) |
视野范围 | 102°(3.1mm镜头下) |
控制周期 | 5ms |
最高移动速度 | 10m/s |
驱动板输出能力 | 200w |
姿态控制精度 | ±0.5° |
3.1系统简介
整个系统分为运动平台和视觉追踪平台两部分。运动平台主要由Android设备、扩展板和执行机构构成,执行机构可以是很多种类的运动平台,本项目中是由电机驱动、电机、机架组成的全向移动平台。视觉追踪部分由摄像头、主控板和LCD构成。运动平台中的扩展板与视觉追踪部分的主控板均由同一块STM32F4 Discovery来实现。一种可实现的具体系统架构如图1、图2所示。它们的功能如下:
图2 运动机构组成
l 主控板:扩展板是一块以STM32F407VGT6为主控的核心控制板。其上有1路USB Host接口用以连接Android设备,3路USART接口以实现和电机驱动器的通信。扩展板的软件基于ST官方提供的USBH ADK类库,以USBHost方式与手机进行通讯。
l 摄像头:摄像头设备为视觉输入传感器,本平台选用OV7725和MT9M111两种CMOS传感器作为视觉输入设备,其中,OV7725能提供VGA分辨率60fps输出,而MT9M111能提供1280*960分辨率,15fps输出,且在色彩上更好一些,对于本次应用,两种平台均能成功实现。
l
l Android设备:Android设备是一个运行有Android系统的硬件平台,最常见的为Android智能手机。它的作用是提供一个用户交互界面,采集自身传感器信息,将用户意图转化为信号量,并提供提示界面和拟物化的操作面板。在本项目中,Android手机负责收集自身的加速度计、陀螺仪、电子罗盘的信息,通过DCM互补滤波以及四元数矩阵融合转化成为Yaw,Pitch,Roll三个姿态角。通过人操纵手机改变手机的姿态,从而代替手柄的功能。同时,屏幕上放置按钮控件以实现抓取、放开等机械臂动作的控制。
l 电机驱动:电机驱动是一块基于STM32F103CBT6的控制板,通过USART接口与上位机通讯获得指令(目标速度、目标位置等),生成不同占空比的PWM波驱动一个H全桥。同时,电机上的编码器接回电机驱动板,以实现速度的闭环控制。
l 电机:电机是直接执行机构,本项目中使用有刷直流电机,电机自带两相正交旋转编码器,可以实现速度的大小和方向的测量。电机以及其安装的机架构成了3自由度机械臂执行机构,可以实现弯曲、伸展、转向等动作。
1.1系统算法分析
1.1.1 视觉算法
本项目旨在进行于Cortex-M4平台上的视觉处理实时算法的可行性实验,鉴于此平台较好的运算性能,可以实现一些实时性较高的新型算法。本实力实现的是HSL色域shift算法进行的特征匹配与标记,最终实现对特定色调色块的定位,从而实现追踪。在目标色调提取时,通过统计中央1/2区域的HUE直方图来获得。当光线变化或者移动太快造成目标失锁,程序可以根据直方图的数据进行参数调整,从而提高了追踪算法的鲁棒性。得益于STM32F4不错的性能,本算法在ROI内搜索开销仅有1ms左右,全图搜索也仅需15ms,完全可以在帧传输间隙完成搜索。
本系统最终要实现传感器的采集、姿态的结算、控制逻辑的生成和控制等任务,为了缩减开发周期,使用比较常见的LG Nexus 4手机作为Android平台,扩展板使用意法官方的低成本评估板STM32F4 Discovery。
下图7给出了使用到的模块的简化原理图(USB连接),图8为通过蓝牙连接的简化原理图,主要区别在于,蓝牙服务模块存在于一个Service当中,当手机关闭屏幕、回到主界面或是切换至其他进程时,在后台运行的Service可以保证蓝牙服务不断线。各个模块的详细介绍如下
1. 系统软件设计在本系统中,软件设计分为三个部分,第一部分为Android软件设计,第二部分为扩展板软件设计,第三部分为驱动板软件设计。Android设备程序为实现一个Activity类,在这个类中构造了读取传感器、姿态解算、读取按钮状态、发送指令、刷新UI等方法。在扩展板软件设计中,主要为USBH类的实现和消息读取,转化为电机目标速度。在电机驱动板程序中,主要实现了UART读取、PWM生成、正交编码器读取等函数。简要的软件流程如图9所示。蓝牙连接的流程图和图9基本一致,只是将USB发送和接收数据部分替换为蓝牙方式。
。。。。。。。。。。。。。。。。。。。。。
节选。。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。。。。。
需要全文的请下载附件
基于STM32F4的视觉追踪与手机控制运动平台_论文.pdf
请问这篇文章对你有用吗?
【分享帖】基于STM32F4的视觉追踪与手机控制运动平台