远程可视化遥控侦察定位机器人系统设计

2015-08-15 06:28刘博杨斌
单片机与嵌入式系统应用 2015年4期
关键词:开发板云台手柄

刘博,杨斌

(西南交通大学信息科学与技术学院,成都610031)

远程可视化遥控侦察定位机器人系统设计

刘博,杨斌

(西南交通大学信息科学与技术学院,成都610031)

远程可视化遥控侦察定位机器人系统共由两部分构成。第一部分为机器人,与PC远程控制终端建立网络连接,获取控制命令,解析命令后控制机器人的运动电机、转向舵机和立体视频云台。机器人将自己的GPS位置信息和环境图像传输到PC控制终端。第二部分为PC远程控制终端,获取北通遥控手柄的命令数据并打包后,通过网络传输给机器人,实现机器人运动状态控制。PC远程控制终端通过网络获取机器人的GPS位置数据和视频数据,将数据解析后分别显示到图像监控窗口和地图定位窗口。

遥控机器人;PandaBoard;图像压缩;GPS定位

引言

科学技术的飞速发展推动了机器人技术的不断发展和广泛应用。在现代社会生活中复杂的应用需求越来越多,如军事侦查、高危环境巡逻、特殊环境拍摄等。远程遥控侦察定位机器人系统可以胜任特殊环境中的特殊需求。本系统以PandaBoard开发板作为机器人的控制核心,能够实现网络通信、机器人姿态控制、机器人位置信息处理。远程遥控终端由PC机和北通阿修罗遥控手柄构成,PC机获取遥控手柄的遥控数据并打包,通过网络发送给机器人,并且获取视频图像数据和机器人地理位置信息,实现机器人的控制、视频监控和地理位置监视。

1 硬件平台

系统硬件部分主要由PandaBoard开发板、GPS定位开发板、立体视频监控云台、PC机构成。

1.1 机器人整体结构

机器人整体由机器人车体、摄像头云台、电源控制板、电机驱动控制板、PandaBoard核心控制板5部分组成。机器人车体为飞思卡尔智能车竞赛指定车模。摄像头云台有两组MG946R舵机构成,可以实现上下左右四维角度调节。摄像头为奥尼ANC网络摄像头,可以采集YUV和RGB格式的图像数据。电源模块主要完成将8 V电池电压降为5 V和6 V电压,分别供给PandaBoard开发板和MG946R舵机。电机驱动模块用BTS7960电机驱动芯片设计。机器人整体结构如图1所示。

1.2 PandaBoard开发板

PandaBoard开发板是TI公司的SoC开发板,其内部主要包括4个处理引擎,包括基于ARMv7I指令集的SMP Cortex-A9 1 GHz双核处理器、可编程多媒体硬件加速引擎IVA-HD及协处理器 Cortex-M3、图像显卡 Power SGX540及提供图像视频并行计算的ISP。其中IVA-HD多媒体加速引擎内部有7个针对各种视频编解码而设计的加速引擎,能够实现对720P视频的实时编解码,并且拥有1 GB的RAM,可以流畅运行Ubuntu开源操作系统。PandaBoard开发板如图2所示。

图2 PandaBoard开发板

1.3 北通神鹰阿修罗遥控手柄

北通神鹰阿修罗遥控手柄用来控制机器人的运动状态,可以前进、后退、加速、减速,还可控制摄像头云台的角度控制,如摇摆头、点头、抬头。北通神鹰阿修罗遥控手柄如图3所示。

图3 北通神鹰阿修罗遥控手柄

1.4 系统硬件架构图

系统硬件架构图如图4所示,游戏手柄通过USB接口同PC连接,PC通过无线热点与遥控机器人建立通信连接。PC机将游戏手柄的数据打包后通过网络发送给移动机器人,这样就可以控制机器人的运动行为。机器人获取的GPS地图数据和摄像头数据打包压缩后通过无线网络传送到PC控制终端,这样PC就可以获得机器人当前环境状况和地理位置信息。

图4 系统硬件架构图

2 软件设计

系统软件设计包括PC控制服务程序和PandaBoard开发板应用程序。PC控制服务程序包括视频数据处理软件设计、GPS地理位置信息处理软件设计和遥控移动手柄软件设计。PandaBoard开发板应用程序,包括视频服务软件设计、机器人运动状态控制软件设计和GPS地理位置信息服务软件设计。系统软件架构如图5所示。

图5 系统软件架构

PC视频数据处理软件将实时接收机器人通过网络传输过来的mjpeg视频数据,通过ffmpeg解压缩成为位图后绘制到屏幕上。GPS地理位置信息处理软件将实时接收机器人的GPS数据,解析之后在开源网络地图中进行标定。遥控移动手柄软件主要负责接收北通神鹰手柄的命令信息,并且将机器人控制命令和摄像头云台控制命令通过网络传输到机器人并控制机器人。

机器人核心控制板搭载Ubuntu系统。视频服务软件采集USB摄像头YUV422数据,压缩成mjpeg通过无线网络传输到PC控制终端。机器人运动状态控制通过Panda-Board开发板中的5路PWM端口分别控制机器人的前进、后退、方向舵机控制、摄像头云台的左右摇头控制和摄像头云台的点头抬头控制。GPS地理位置信息服务通过串口获取GPS地理位置信息,分析打包后传输到PC控制终端。

2.1 PC控制终端软件设计

2.1.1 北通神鹰手柄按键处理

对于遥控手柄数据采集处理,在Linux下的编程框架为JoyStick。JoyStick可以直接采集北通手柄事件,将手柄的事件值赋予特定的命令含义后就可以控制机器人的运动状态。将北通手柄接入PC后,在Linux系统下就成生了/dev/input/js0设备,js0就是遥控手柄设备,为了操作js设备,编写设计了tagJoyStickEvent结构体,这个结构体中拥有手柄按键发生时间、键值、按键类型、按键号码4个成员结构,如下所示:

typedef struct tagJoyStickEvent{

unsigned int time; /*发生时间毫秒级*/

short value; /*键值*/

unsigned char type; /*键值类型*/

unsigned char number; /*键位Num*/

tagJoyStickEvent&operator=(const tagJoyStickEvent& JseTemp){

this->time=JseTemp.time;

this->value=JseTemp.value;

this->type=JseTemp.type;

this->number=JseTemp.number;

return*this;

}stJoyStickEvent;

北通神鹰手柄按键类型一共有两种,Type=1和Type =2,共14个按键。一共需要4个按键来控制机器人的前进、后退、转向、摄像头云台摆动。同Linux下其他设备一样,首先打开js设备文件,建立按键设备监听函数,当手柄按键按下后,触发设备监听函数,读取stJoyStickEvent结构体,解析按键结构体并通过网络发送给机器人。

2.1.2 mjpeg视频数据处理

ffmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据选择的组件),提供了解码、编码、录制、转换以及流化音视频的完整解决方案。mjpeg图像解码过程:读入mjpeg图像→解码→逆量化→反离散余弦变换→原图像。ffmpeg解码过程如下:

①调用avcodec_init(),这个库函数只需调用一次。avcodec_init主要包括dsp_static_init函数,负责静态查找表结构的初始化。

②avcodec_register_all(),注册所有的编码器,使它们处于工作状态。

③avcodec_find_decoder()函数用于查找一个与codec ID相匹配的已注册的解码器。

④avcodec_alloc_context()函数用于分配一个AVCodecContext并设置默认值,如果失败返回NULL,并可用av _free()进行释放。

⑤avcodec_alloc_frame()函数用于分配一个AVFrame并设置默认值,如果失败返回NULL,并可用av_free()进行释放。

⑥avcodec_open()函数用给定的AVCodec来初始化AVCodecContext。

⑦video_decode_video2()函数用于视频解码,所有的解码工作都在该函数内完成。

解码完成之后形成位图,即可直接显示在计算机屏幕上。

2.1.3 GPS数据处理

在QT下QWebView类提供了一个可以展现和编辑网页文档的widget。QWebView是QtWebKit网页浏览模块的一个主要widget组件,可以用它来展现互联网网页。在Qt Designer中创建一个QWebView,可以使用QWebView 的load()方法来加载一个网站,如 load(QUrl(" googlemap.html")),和其他所有QT的widget一样,需要调用show()方法才会显示出QWebView。QWebView除了用load()方法设定网页路径外,也可以使用setHtml()方法加载HTML格式的网页,如setUrl(QUrl("baidumap.html"))。网页文件加载之后,开启QWebView的JS功能,就可以同网页文件进行JS交互应用了。机器人通过网络将GPS地理位置数据传输到PC控制终端,解析GPS数据包后,在地图中标定机器人的位置信息。

2.2 机器人软件设计

2.2.1 机器人运动状态控制

机器人运动状态控制包括前进、后退、转向、摄像头云台转动。而这些动作的共同之处在于都需要应用PWM信号进行控制。脉宽调制(PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种技术,广泛应用在测量、通信、功率控制与变换等许多领域中。舵机主要由外壳、电路板、无核心马达、齿轮与位置检测器构成。其工作原理是接收机发出信号给舵机,经由电路板上的IC判断转动方向,再驱动无核心马达开始转动,通过减速齿轮将动力传至摆臂,同时由位置检测器送回信号,判断是否已经到达定位。整个机器人一共有3个舵机,其中两个舵机作为摄像头云台,第3个舵机控制机器人的转向。机器人的前后运动由电机提供动力,电机的驱动由电机驱动电路管理控制,电机驱动电路需要PWM控制信号来控制电机的前后转动。配置PandaBoard开发板PWM信号驱动功能,利用Linux设备树技术将相应的设备引脚配置成PWM功能,使设备引脚在 Linux中形成设备文件,这样操作PWM设备文件就可以产生PWM输出信号。

2.2.2 视频图像获取

视频图像获取需要借助V4L2编程框架,应用ffmpeg压缩成mjpeg图像,通过WiFi网络传输到PC控制终端,V4L2设置过程如下:

①打开设备文件int fd=open(”/dev/video0″,O_RDWR);

②取得设备的capability,看看设备具有哪些功能,比如是否具有视频输入,或者音频输入输出等,VIDIOC_ QUERYCAP,struct v4l2_capability;

③设置视频的制式和帧格式,制式包括PAL、NTSC,帧的格式包括宽度和高度等,VIDIOC_S_STD,VIDIOC_S_ FMT,struct v4l2_std_id,struct v4l2_format;

④向驱动申请帧缓冲,一般不超过5个;

⑤将申请到的帧缓冲映射到用户空间,就可以直接操作采集到的帧了,而不必去复制;

⑥将申请到的帧缓冲全部入队列,以便存放采集到的数据;

⑦开始视频采集;

⑧出队列以取得已采集数据的帧缓冲,取得原始采集数据;

⑨将缓冲重新入队列尾,这样可以循环采集;

⑩停止视频的采集;

⑪关闭视频设备。

2.2.3 GPS地图数据获取

打开串口,读取SIM908开发板的GPS数据并解析,获取有用的GPS经度纬度数据,通过无线网络发送给PC控制终端。

3 测试

实验证明,远程遥控巡逻侦察机器人系统可以将实时视频图像和GPS地理位置数据流畅地传输到PC远程控制终端,而PC远程控制终端将控制命令发送给机器人以灵活控制机器人的运动,达到了设计要求。PC控制终端运行效果如图6所示。

图6 PC控制终端运行效果图

结语

远程遥控巡逻侦察机器人系统使用WiFi作为网络通信手段,将视频、GPS地理位置信息传输到PC远程控制终端。PC远程控制终端可以实时监控机器人所处的环境和地理位置信息。实验证明,应用遥控手柄控制,操作简单方便,机器人系统工作稳定,能够完成巡逻侦察任务。

[1]李怀勇.一种新型全方位移动机器人的运动特性分析[D].沈阳:沈阳航空航天大学,2012.

[2]赵冬斌,易建强,邓旭玥.全方位移动机器人结构和运动分析[J].机器人,2003(5).

[3]贾茜,王兴松,周婧.基于多种控制方式的全方位移动机器人研制[J].电子机械工程,2010(4).

[4]秦志斌,钱徽,朱淼良.自主移动机器人混合式体系结构的一种Multi-agent实现方法[J].机器人,2006(5).

[5]李志鹏.服务机器人室内未知环境主动探索与特征地图构建[D].哈尔滨:哈尔滨工业大学,2011.

[6]贾官帅.基于Mecanum轮全方位移动平台的理论和应用研究[D].杭州:浙江大学,2012.

[7]邵杰.基于学习分类器的多机器人路径规划关键技术研究[D].南京:南京理工大学,2011.

[8]杨世强,傅卫平,张鹏飞.四轮全方位轮式移动机器人的运动学模型研究[J].机械科学与技术,2009(3).

刘博(硕士研究生),主要研究方向为嵌入式开发与应用;杨斌(教授),主要研究方向为嵌入式系统应用开发、实时与分布式系统。

Design of Remote Visual Control Reconnaissance Location Robot System

Liu Bo,Yang Bin

(School of Information Science&Technology,Southwest Jiaotong University,Chengdu 610031,China)

Remote visual control reconnaissance location robot system consists of two parts.The first part is the robot which establishes a network connection with the remote PC terminal,accesses control command,and controls the robot,steering engine,and stereo video head after analyzing command motion motor.At last the robot sends GPS position information and environmental image to the PC control terminal.The second part is the PC remote control terminal which gets command data from North remote control handle and packages it,then transmits to the robot through the network,finally achieves control of the robot's movement.PC remote control terminal obtains robot GPS position data and the video data through the network,and displays in image video monitor window and map location window after interpreted.

remote control robot;PandaBoard;image compress;GPS location

TP242

A

薛士然

2014-10-17)

猜你喜欢
开发板云台手柄
云上之家——万科·郡西云台
龙门山·卧云台
基于PLC控制的手柄座钻孔攻丝一体机的研发
帮我买云台
基于STM32的无线FPV云台设计
一种多功能无线手柄的设计
浅析单片机开发板的设计与制作
ARM宣布mbed Enabled Freescale FRDM—K64F开发板通过微软认证
为什么厨具的手柄不是金属的?
银行家