基于ARM的智能车无线视频监控系统设计
扫描二维码
随时随地手机看文章
移动机器人,是一个集环境感知、动态决策与规划、行为控制与执行等多功能于一体的综合系统。它集中了传感器技术、信息处理、电子工程、计算机工程、自动化控制工程以及人工智能等多学科的研究成果,代表机电一体化的最高成就,是目前科学技术发展最活跃的领域之一。随着机器人性能不断地完善,移动机器人的应用范围大为扩展,不仅在工业、农业、医疗、服务等行业中得到广泛的应用,而且在城市安全、国防和空间探测领域等有害与危险场合得到很好的应用。因此,移动机器人技术已经得到世界各国的普遍关注。
本次设计一款既具备智能终端控制也可通过上位机进行实时视频监控的视频监控小车。在本次开发的系统中,通过使用无线路由器和无线网卡组建局域网,在智能车架设mjpgstreamer网络视频服务器,同时通过无线网卡使智能车接入组建好的局域网中,既可以在PC机上使用客户端进行实时监控控制,也可以使用手机等智能终端通过无线网卡来对智能车进行控制和实时监控。
1 智能车无线视频监控系统总体设计
1.1 智能车无线视频监控系统整体框架
本次开发的系统是采用双架构结合的工作模式,内置智能车控制服务器和网络视频服务器。其中智能车内置的控制服务器,利用socket网络通信技术(UDP 协议),接受客户端发送的控制请求,并执行相应操作,如智能车的行驶命令、声频播放命令、舵机转动命令、温度获取命令等操作。而智能车内置 mjpgstreamer网络视频服务器,它从监控摄像头获取视频流,并利用网络(TCP协议)将视频流以JPEG格式发送到客户端。另外内置网页服务器 (web server),用户可以通过浏览器直接访问页面服务器,并获取视频流,从而达到视频实时监控。又由于网络视频服务器同时和智能车控制服务器建立了连接,所以也可以使用智能终端通过游览器间接访问控制智能车控制服务器。智能车系统整体框架图如图1(a)所示。
1.2 智能车无线视频监控系统硬件总体设计
智能车视频监控系统的无线控制结构如图2所示,本次方案由wifi通信系统、下位机控制系统、上位机控制系统3部分组成。Wi—Fi通信系统实现上位机客户端系统与下位机ARM控制系统的数据传输。上位机客户端系统通过wifi模块接受下位机ARM控制系统发送数据进行存储、分析、提取以及显示,同时也可以对下位机发送控制命令。同样下位机ARM控制系统也可以通过wifi模块收到上位机系统发送的命令并进行相应的操作,将传感器和摄像头采集的数据进行整合和发送。
由图1(b)可知下位机主要组成部分,智能车视频监控系统以天嵌科技Cortex-A8 X210开发板作为开发平台,其处理器采用的三星S5pv210芯片,S5PV210采用了ARMCortexTM-A8内核,ARM V7指令集,主频可达1 GHZ,64/32位内部总线结构,32/32kB的数据/指令一级缓存,512 kB的二级缓存,可以实现2000DMIPS(每秒运算20亿条指令集)的高性能运算能力。其中wifi模块完成主要完成下位机与上位机的组网和远程控制功能;同时开发板上还配有检测温度和有害气体的传感器,因此可以对探测环境进行危险评估及预警。
2 智能车无线视频监控系统各功能模块设计及实现
2.1 智能车视频监控系统软件架构设计
智能车视频监控系统采用的Linux开发平台,它是一个多用户和多任务操作系统,具有良好的的开放性,遵循世界标准规范,特别是遵循开放系统的互连国际标准。具有完善的内置网络linux在通信和网络功能方面均优于其他操作系统。系统图像采集是通过ARM—Linux调度V4L2驱动程序来进行视频捕获。 V4L2是linux影像系统与嵌入式影像的基础,是linux内核里支持影像设备的一组API,linux在多媒体上的应用是目前非常热门的研究领域,其中最关键的技术就是Linux的V4L2。传统的基于ARM的远程视频监控大部分通过集成在CPU内部的MFC模块对V4L2接口采集的数据进行硬件压缩和解码,硬件解码需要硬件有硬件解码模块、相关的驱动配合、合适的播放软件以及对播放软件正确的设置,缺一而不能开启硬件解码功能。由于以上问题,所以本文采用一款开源软件mjpeg—stream网络视频服务器代替MFC。mjpg_streamer是一款开源网络视频服务器,需要很少的CPU和内存资源就可以工作,大部分编码工作都是摄像头完成的,非常适合嵌入式环境使用。
2.1.1 网络视频服务器mjpeg—strearm的移植
从v4l2接口采集的数据的压缩与解码我们选择了网络视频服务器mjpeg—stream,我之所以不选择集成在cpu内部的MFC模块还有一个原因是因为本次设计的智能车远程无线视频监控系统要支持远程的web界面的访问操作,如果选择MFC就要移植类似Boa等的嵌入式web服务器才能进行远程访问同 MFC模块采集的视频流还需要在pc端采用开源的软件和函数库才能实现视频的播放,而mjpeg-stream网络视频服务器却可以省掉这些步骤,因为 mjpeg—stream支持实现远程的web访问。这样就降低了开发的工作量和复杂性,其下为mjpeg —stream移植编译。图3为mjpeg—stream对数据采集与发送的流程。
2.1.2 智能车视频监控系统数据接收与显示模块的设计
由图2(a)和图3可知mjpeg—stream网络视频服务器内部有两个服务器,http服务器和视频帧抓取服务器。http服务器将视频帧抓取服务器采集的图像帧以Http协议数据帧的形式发给客户端。所以要完成的编程工作有两部分:一是从http服务器读取Http协议数据帧 (Http协议数据帧由http协议相关的头信息和图像数据帧(jpeg格式)),二是将Http协议数据帧中的图像数据帧提取出来。本文的GUI界面采用Qt进行设计实现C/S、B/S架构的客户端和web客户端。智能车监控系统视屏界面的显示有两个部分组成:一是通过Tcp协议将传输的数据接收 (socket编程实现),二是客户端的视频图像的显示。客户端软件的设计流程图如图4所示。
由于我们通过编程把Http协议数据帧中的图像数据帧提取了出来并显示在客户端从而实现了视频实时监控,所以可以在主函数再起一个线程完成图像的抓取功能即拍照功能。这样在智能车对未知空间的探索进行分析提供了数据依据。
2.2 wifi功能模块的设计
本次开发的智能车无线视频监控系统的另一核心就是wifi模块的开发。构成无线网络的最基本的两个要素是:一是一台AP(Access Point),二是无线网卡。以上两点便可以构成一个简单的无线网络。因为我们要通过智能终端和pc机上的客户端对智能车远程进行控制,所以如何将智能车变成一个可移动的wifi热点是我们本次设计的重点。
嵌入式开发的一个核心的内容是在有限的硬件资源上如何使用各种开源软件完成我们需要的功能。所以将智能车变成可移动的wifi热点需要以下步骤:
1)下载安装rtl8188eu无线芯片的驱动;2)使用hostapd开源软件,使无线网卡切换为master模式,模拟AP(路由器)功能;3)使用dnsmasq开源软件动态分配IP给客户端在开发板上主要步骤实现过程如下所示:
#insmod/home/wifi/8188eu.ko
# ifconfig wlan0 192.168.137.1(启用无线网卡)
# ./hostapd rtl_hostapd_2G.conf-B(模拟AP功能)
#./dnsmasq—C dnsmasq.conf(开启DNS和DHCP功能)
通过对以上开源软件的移植开发便可以将智能车生成一个可移动的wifi热点,通过手机等智能终端便可以对智能车无线视频监控系统进行控制。图5展示了连网成功后智能车无线视频监控系统的工作状态。
3 结论
本文实现了以s5pv210为核心处理的智能车无线视频监控系统。本系统既可以使用智能终端通过wifi对智能车无线视频监控系统的控制,也可以通过有线连接的方式进行控制。智能车即可以实时的视频监控和拍照也可以通过开发板的上温度传感器和有害气体传感器进行周围环境的探测,因此可以在城市安全、国防和空间探测领域等有害与危险场合得到一定的应用。对于今后智能车的开发也有一定研究价值。