摘 要: 针对仿人机器人的人机交互问题,提出在无线网络下,使用智能手机对配备有摄像头的仿人机器人进行视频监控。基于Linux系统,使用V4L2接口对摄像头视频信息进行采集,并使用JPEG算法对其进行压缩,使用智能手机的Web浏览器显示视频信息,并通过浏览器页面的按钮向机器人发送控制命令。实验结果表明,在无线局域网内,仿人机器人摄像头拍摄到的视频信息可以清晰、稳定、及时地传输到不同系统和品牌的智能手机Web浏览器上,用户可根据需要向仿人机器人发送控制命令,操作方便简单,便于使用。
关键词: 仿人机器人;Wi-Fi技术;智能手机;Web浏览器;视频监控
第一台仿人机器人WABOT-1诞生以来,经过了40年的发展,仿人机器人已成为一个融合多门学科的高难度研究方向,也是各类新型控制理论和工程技术的研究平台[1-2]。
从最初的工业机器人完全按照人类的指令进行工作,到现代具有较高智能的仿人机器人自主地融入人们的工作和生活,为实现成为人类的伙伴、与人类共存的目标,仿人机器人的交互功能和技术始终是机器人发展中的重点[3-4]。
在人机交互设备这一领域已有许多研究手持设备控制机器人的文献,多数为专业的手持控制设备来操控小车机器人的移动,手持设备较专业,且不普遍,控制对象也较简单,智能化程度较低。而智能化程度较高的系统需要高精度的传感器设备以及多台计算机作为服务器协调控制[5-7]。
综合上述研究现况,结合目前大家普遍使用的智能手机,为加快仿人机器人走入人们的生活,本文提出使用智能手机作为手持设备与仿人机器人进行通信。结合参考文献[8-10],决定采用Web浏览器进行视频监控,可以最大限度地降低操作难度,实现真正意义上的跨平台通信,可广泛地应用在各种场合中 。
由参考文献[11-13]可知,传统的机器人研究通常使用CAN总线、网络线等易兼容的连接线实现计算机与机器人的有线连接通信,但使用有线连接是仿人机器人走入人们日常生活的一大阻碍。无线AP(Access Point)数量的迅猛增长、低廉的价格以及无线网络的方便与高效使Wi-Fi(Wireless Fidelity)技术得到了迅速的普及。在一定范围内,可以使用无线连接将仿人机器人与智能手机组建在同一个无线局域网中。该方法有利于降低成本,减小操作难度。
1 系统结构
仿人机器人是体系结构中非常重要的一部分,本文采用DARwin-OP、1.6 GHz Intel Atom系列主板、Linux内核的Ubuntu9.10操作系统、自带高清网络自动聚焦的USB摄像头(最大帧数为30帧)。Wi-Fi模块支持802.11b/g/n,速率高达150 Mb/s,工作频率为2.4 GHz智能手机。需具有无线Wi-Fi连接功能且含Web浏览器。
通过无线路由器,将仿人机器人与智能手机组建在一个局域网内。系统构成的主要部件如图1所示。
仿人机器人与智能手机接入同一局域网,摄像头将采集到的视频信息通过无线局域网传送到手机,手机也能将控制命令传输到机器人。
图2是仿人Darwin机器人和智能手机间视频传输系统的整体设计框图。
摄像头对视频进行采集,采集后的图片经压缩后通过Wi-Fi无线传输模块传送到智能手机端,由手机的Web浏览器显示视频。这样用户就可以在手机的浏览器上通过访问机器人的IP打开视频图像进行监控,也可通过浏览器页面按钮操作将控制命令传输到机器人端,对机器人进行控制。
Darwin机器人的摄像头对视频进行采集,采集后的图片经压缩后通过Wi-Fi无线网络传输模块经由无线路由传送到智能手机视频接收模块,由手机的Web浏览器显示视频,用户就可以在手机的浏览器上通过访问机器人的IP打开视频图像进行监控。
2 系统实现
2.1 视频采集
摄像头视频采集程序的设计与实现是视频监控应用程序中比较关键的部分,在Linux下采用V4L2(Video For Linux two)对视频进行采集。V4L2是 Linux系统下视频设备驱动程序接口规范[10],为上层应用程序提供了一系列的接口函数,可实现对视频设备的操作,进而完成视频图像的采集。
V4L2对设备文件的操作方法简单直观,表1中的函数可以在应用程序中直接调用,功能如下:V4L2接口提供两种方式进行视频数据采集,一种是 read直接读取方式,这种方式使用较为方便,但占用大量的用户内存空间;另一种是mmap内存映射方式,将申请到的内核缓冲区地址通过mmap函数映射到用户空间,可以直接对内核缓冲区的数据进行处理,这种方式简洁有效,故本文采用第二种内存映射方式。
2.2 视频处理
与传统的单帧图片传输相比,视频实时传输的关键问题是视频图像信息的数据量非常大,需要对采集的原始图像进行压缩。目前图像压缩方法比较成熟的是JPEG或MPEG技术。
原理上这两种编码方式基本相同,JPEG针对单独的图像图片进行处理,而MPEG则利用了图像序列间的相似性技巧,使MPEG的整体压缩倍率要优于JPEG。但考虑到传输信道链路特点,JPEG一次误码最多损失图像序列中的一幅,而MPEG将导致后续的多幅帧间编码序列无法复现,所以,根据系统的可靠性需求,JPEG成为优选方案。
图3是Darwin-OP的编程-框架数据流示意图,分别是视觉部分与动作部分。
视觉处理模块LinuxCamera类包含V4L2接口程序,完成对摄像头进行设置以及图片的存储和处理。其中,LinuxCamera类、MinIni类读取设置值;Mjpg_steamer类确认图像,主要是将由摄像头端采集而来的YUYV格式的图片,经mjpg_streamer使用JPEG压缩算法将图片处理后转换为jpeg图片。部分代码如下:
minIni *ini = new minIni(INI_FILE_PATH);
LinuxCamera::GetInstance()->Initialize(0);
LinuxCamera::GetInstance()->LoadINISettings(ini);
mjpg_steamer *streamer = new mjpg_streamer(Camera::WIDTH,
Camera::HEIGHT);
2.3 视频传输与显示
mjpg_streamer可以把经过视频压缩后得到的jpeg图片以流的形式通过基于IP的网络传输到浏览器。视频服务器首先基于TCP协议建立Socket连接,监听、接收客户端请求,再进行分析请求、响应请求等操作。
视频服务器建立TCP Socket套接字、bind绑定端口后,listen开始监听,收到客户端的连接请求后,保存相应信息并进行分析,给出相应处理或发送数据。
浏览器通过监控设备的IP地址打开视频监控网页,实现远程视频监控。
LinuxCamera类允许在Web浏览器端捕捉到mjpg_streamer流的帧,代码如下:
while(1)
{
LinuxCamera::GetInstance()->CaptureFrame();
streamer->send_image(LinuxCamera::GetInstance()->
fbuffer->m_YUVFrame);
}
2.4 控制命令的实现
视频传输到智能手机浏览器后,用户可以根据视频情况对机器人进行操作。首先使用动作编辑软件action_editor对机器人进行动作编写,将编写好的动作存放在任务表中,浏览器页面上用按钮显示相应功能键。
控制命令主要通过调用system函数实现,函数的具体形式为system(const char *cmdstr),其中cmdstr为字符串类型的输入参数。system()先调用fork()函数产生一个子进程,然后通过这个子进程调用“/bin/sh-cmdstr”来执行参数cmdstr字符串所代表的命令。动作编辑完成后可以通过函数对动作页进行调用,具体实现过程为:加载动作;构建LinuxCM730和CM730类以及对Motion类进行初始化和注册Action类;对LinuxManagerTimer进行初始化和让MotionManager使能;执行动作页。
表2所示为任务表中编写的基本动作。用户即可通过页面按钮操作机器人的动作。
3 实验结果与结论
实验使用Android的LenovoA298t手机、UC浏览器、火狐浏览器、小米1s UC浏览器和iphone 4s safari浏览器。
图4给出的是通过机器人头部摄像头拍摄到的画面通过无线Wi-Fi网络传输到手机端的画面实况。
由实验结果可知,视频信息从摄像头正常地传输到苹果、小米和联想不同品牌的智能手机,能在Android和IOS不同系统智能手机通过以上几款不同的Web浏览器打开,视频信息稳定;根据具体的实验需求,可以通过手机控制机器人向前、向后、向左和向右4个方向的移动,便于机器人在不同的位置对实验室锅炉设备进行察看;头部上下左右移动,可改变观察时的角度,使机器人更全面、更清晰地察看实验状况,最大限度地提供尽量多的信息供用户使用。
经过多次实验,由图5可知,通过手机向机器人发送头部向上移动的命令到手机端接收到的视频图像发生变化的平均响应时间为2.1 s,比在计算机上接收视频的平均响应时间1.5 s稍有延迟。但由于手机的便携性更强,在日常生活的使用中,该延时还是可以接受的,与计算机相比有不可替代的优势。
本文主要研究的是仿人机器人与智能手机之间运用Wi-Fi进行无线视频传输,视频传输成功后就像给了用户一个远程的眼睛,用户只要拿着手机就能看到机器人能看到的范围,该组合使其整个系统既新颖又易让人接受,加速了仿人机器人走入人们的日常工作和生活中。
参考文献
[1] 李明.机器人[M].上海:上海科学技术出版社,2013.
[2] NI L G,KARI D P,MUGANZA A.Wireless integration of tactile senging on the hand of a humanoid robot NAO[R].IEEE International Symposium on Robot and Human Inter-active Communication,Paris,France,2012.
[3] 肖南峰.仿人机器人[M].北京:科学出版社,2008.
[4] Wang Qian,Pan Wei,Li Mo.Robot’s remote real-time nav-igation controlled by smart phone[C].IEEE International Conference on Robotics and Biomimetics,Guangzhou,China,2012:2351-2356.
[5] KOBAYASHI S,TAMAGAWA S,MORITA T.Intelligenthumanoid robot with Japanese Wikipedia ontology and robotaction ontology introduction[C].IEEE International Conference,Lausanne,Switzerland,2011.
[6] FINKE A,HACHMEISTER N,RIECHMANN H.Riechmannthought-controlled robots-systems,studies and future challenges[C].IEEE International Conference on Robotics and Automationn,Karlsrube,Germany,2013.
[7] 李宗玮,孙雷.基于智能手机的网络机器人人机交互系统[J].计算机工程与应用,2011,47(15):64-68.
[8] TIBEMACINE C,KERDOUDI M L.Migrating component-based Web applications to Web services:towards consider-ing a “Web interface as a service”[C].2012 IEEE 19th International Coference on Web Services,Honolulu,2012:146-153.
[9] YEOH K J M,WONG H L.Web-based remote navigationalrobot for multiclass human-robot interaction[C].IEEE Con-ference on Sustainable Utization and Development in Engi-neering and Technology,Malaysia,2012.
[10] 刘艳娇.基于嵌入式Linux的无线视频监控系统设计与实现[D].哈尔滨:哈尔滨工业大学,2012.
[11] 黄时,刘健,王国权.AUV内部通讯总线设计[J].机器人,2004,26(4):342-345.
[12] 周煜啸,罗仕鉴,朱上上.手持移动设备中以用户为中心的服务设计[J].计算机集成制造系统,2012,2(18):243-253.
[13] Zhou Jianjun,Cao Mingang,Li Su.Remote monitoringand automatic navigation system for agricultural vehicles based on WLAN[C].2008 International Conference on Wireless Communications,Networking and Mobile Computing.Dalian,China,2008:1-4.