一种有音视频监视的遥控机器人系统的制作方法

文档序号:11594720阅读:166来源:国知局

本发明涉及一种有音视频监视的遥控机器人系统,属于机器人领域。



背景技术:

随着时代的发展,机器人监控与遥控在越来越多的领域里发挥了不可替代的作用,如远程的病房监控、核反应堆内部的管理等,都可以见到远程机器人的身影,而服务机器人也成为远程机器人中不可或缺的一员。针对无处不在的互联网,世界范围内出现了各种各样的基于web的遥控机器人设计方案,为客户提供良好的控制和音视频体验。

如何使机器人更好的融入互联网为人类服务,就需要在网络中为机器人提供完善的控制策略和流畅清晰的音视频传输策略。对于移动机器人的运动控制可以使用势场法来实现。而基于tcp的socket通信可以完全胜任在广域网上控制信号和传感器反馈信号的传输问题。对

于流媒体传输,flash是现在广域网上最常用的流媒体传输策略。但是,由于flash的传输方法并不包含网络情况的监测,当实时流媒体传输不适应当前的网络状况时,就会给遥控者带来不好的音视频体验性。因此,需要根据机器人的场景和网络情况的检测,使得传输带宽小于传输链路的可用带宽。

遥控机器人系统的设计是多种多样的,mitro利用ros平台搭建控制系统,实现了基于网页的控制,而音视频传输采用了第三方软件,如skype、vgo利用自主开发的遥控控制端软件,实现了对遥控机器人的控制和流媒体传输,并且实现了速度矢量的实时显示及自充电、无线切换等功能;qb则利用开发的浏览器插件,实现了基于网页的控制和音视频传输。pr2利用html5和javascript技术实现了基于网页的控制信号和流媒体的传输,控制信号用websocket传递,流媒体传输使用的是html的视频微件来实现。pa-10robot实现了基于web的遥控机械臂系统,客户端使用flash实现,获取机器人端的视频和力反馈信号,由于机械臂运动缓慢,没有考虑机器人的运动对用户的体验性产生的影响,而且没有考虑网络情况;otorob和drrobotx80考虑了遥控机器人的所处场景,根据机器人的速度或检测到障碍物的距离来改变视频分辨率或帧率,来达到节省带宽和增强遥控者体验性的目的。



技术实现要素:

本发明提供一种有音视频监视的遥控机器人系统,该机器人系统通过携带的摄像头、麦克风等设备采集环境的音视频信息,利用流媒体服务器和控制服务器搭建通信平台,通过基于通讯网络传输流媒体信号、可用带宽信号和机器人传感器反馈信号的传输,实现了机器人现场环境的音视频监控系统,并可以根据网络情况和机器人所处场景调节流媒体信号的传输带宽,增强了遥控者的音视频体验性。

本发明解决其技术问题所采用的技术方案是:

一种有音视频监视的遥控机器人系统,包括机器人端、控制端、控制服务器、流媒体服务器和客户端;机器人端对现场环境进行音视频数据采集,通过控制服务器进行编码、解码后发送至客户端,客户端得到控制端指令,再通过控制服务器对机器人端发送指令,进行驱动执行,其中,机器人端和客户端发出的音视频数据通过流媒体服务器进行交换;

作为本发明的进一步优选,所述的客户端包括第一音视频的捕捉与传输模块、控制信号捕捉模块、传感器反馈信号和流媒体数据显示模块和可用带宽计算模块,第一音视频的捕捉与传输模块获取客户端中摄像头的视频流及麦克风的音频流并且整合成流媒体信号后,传输给流媒体服务器;控制信号捕捉模块捕捉键盘和鼠标的控制输入,并将这些控制信号传输给控制服务器;传感器反馈信号和流媒体数据显示模块将从流媒体服务器获取的流媒体数据进行解码显示;可用带宽计算模块计算出当前到控制服务器的可用带宽,并且将计算出的可用带宽信号传输至控制服务器;

作为本发明的进一步优选,所述的机器人端包括第二音视频的捕捉与传输模块、音视频信号显示模块、最佳分辨率和帧率判定模块和运动控制模块,运动控制模块将机器人的运动速度和角速度传输至最佳分辨率和帧率判定模块,第二音视频的捕捉与传输模块接收由最佳分辨率和帧率判定模块传输的分辨率和帧率的值,同时接收由控制服务器传输的可用宽带数据,进行编码后向流媒体服务器传输;第二音视频的捕捉与传输模块获取客户端中摄像头的视频流及麦克风的音频流后,通过由控制服务器传送的数值进行编码后,向流媒体服务器传输;音视频信号显示模块从流媒体服务器获取客户端的流媒体信号进行解码显示;

作为本发明的进一步优选,客户端的界面和机器人端的界面均基于web服务器,且均由flash编写,并搭建了控制服务器和流媒体服务器,控制服务器完成机器人端和客户端的控制信号和传感器反馈信号的传输,其中传感器反馈信号由传感器传输至传感器信号模块,流媒体服务器使用flashmediaserver搭建,完成机器人端和控制端的流媒体信号传输;

作为本发明的进一步优选,客户端的控制程序包括flash控制端程序、flash音视频传输和显示程序和网络状况监测程序,flash控制端程序主要完成控制信号的检测与传输、传感器信号和可用带宽信号的显示;flash音视频传输主要完成流媒体信号的传输和解码显示;网络状况监测程序主要完成网络状况的检测和可用带宽信号的传输。

通过以上技术方案,相对于现有技术,本发明具有以下有益效果:

本发明是一种基于控制服务器和流媒体服务器的机器人遥控系统,控制服务器采用vc++搭建,实现控制信号、机器人传感器反馈信号和可用带宽信号的传输,流媒体服务器采用fms(flashmediaserver)搭建,实现机器人端和控制端的双向音视频传输,并在控制端html中编写javascript脚本,获取网络参数rtt,再根据机器人的运动状态和场景,调节流媒体传输带宽,提高了流媒体传输的实时性和客户端的体验性。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明的结构模型和信号传输流程示意图。

具体实施方式

现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。

如图1所示,本发明的一种有音视频监视的遥控机器人系统,包括机器人端、控制端、控制服务器、流媒体服务器和客户端;机器人端对现场环境进行音视频数据采集,通过控制服务器进行编码、解码后发送至客户端,客户端得到控制端指令,再通过控制服务器对机器人端发送指令,进行驱动执行,其中,机器人端和客户端发出的音视频数据通过流媒体服务器进行交换;

作为本发明的进一步优选,所述的客户端包括第一音视频的捕捉与传输模块、控制信号捕捉模块、传感器反馈信号和流媒体数据显示模块和可用带宽计算模块,第一音视频的捕捉与传输模块获取客户端中摄像头的视频流及麦克风的音频流并且整合成流媒体信号后,传输给流媒体服务器;控制信号捕捉模块捕捉键盘和鼠标的控制输入,并将这些控制信号传输给控制服务器;传感器反馈信号和流媒体数据显示模块将从流媒体服务器获取的流媒体数据进行解码显示;可用带宽计算模块计算出当前到控制服务器的可用带宽,并且将计算出的可用带宽信号传输至控制服务器;具体的为第一音视频流的捕捉和传输模块:获取客户端的摄像头和麦克风的流媒体信号,通过设定分辨率、帧率、最大带宽和保真度,经压缩后向流媒体服务器传输;控制信号捕捉模块:客户登陆后,本地html与控制服务器建立socket连接,捕捉键盘和鼠标的控制输入,转化为机器人执行机构的运动矢量,并将这些控制信号传输给控制服务器;传感器反馈信号和流媒体数据显示模块:将传感器反馈信号以饼状图的形式显示出来,表示机器人离周围障碍物的距离;同时将从流媒体服务器获取的流媒体数据进行解码显示;可用带宽计算模块:首先与控制服务器建立socket连接,由获取到的rtt计算出来当前到控制服务器的可用带宽,将可用带宽的数据传输给控制服务器;客户端的html通过定时加载控制服务器端的对象,通过返回时间近似得到rtt,由带宽的吞吐量公式:由于数据量小所以近似不考虑丢包率l,mtu是传输所采用的最大传输单元,为一定值,故可用带宽c=k1/rtt,将该数值通过socket传输到机器人端;控制服务器主要完成的是控制信号的传递、传感器反馈信号的传递以及可用带宽数值的传递。建立socket服务器,等待客户端的socket连接,传输控制信号和可用带宽的数值,同时将传感器的反馈信号传输给客户端;建立socket客户端,与机器人建立socket连接,传输控制信号和可用带宽的数值,同时接收机器人发送过来的传感器反馈信号;流媒体服务器主要完成机器人和客户端的流媒体传输,采用fms搭建,两端分别向流媒体服务器传输和获取流媒体数据。

作为本发明的进一步优选,所述的机器人端包括第二音视频的捕捉与传输模块、音视频信号显示模块、最佳分辨率和帧率判定模块和运动控制模块,运动控制模块将机器人的运动速度和角速度传输至最佳分辨率和帧率判定模块,第二音视频的捕捉与传输模块接收由最佳分辨率和帧率判定模块传输的分辨率和帧率的值,同时接收由控制服务器传输的可用宽带数据,进行编码后向流媒体服务器传输;第二音视频的捕捉与传输模块获取客户端中摄像头的视频流及麦克风的音频流后,通过由控制服务器传送的数值进行编码后,向流媒体服务器传输;音视频信号显示模块从流媒体服务器获取客户端的流媒体信号进行解码显示;具体的为主要完成控制信号的执行、机器人的运动控制和音视频数据和传感器数据采集、传输和显示。机器人端程序用vc++搭建,采用基于flash的界面显示,机器人端建立tcp的server,接收控制服务器发送来的控制信号并驱动相应执行机构,在运动的同时,根据机器人端传感器采集环境信号,进行机器人的运动速度控制,并将实时的传感器信号发送给控制服务器。

其中:第二音视频流的捕捉和传输模块:获取客户端的摄像头和麦克风的媒体流,通过由控制服务器传递来的可用带宽和机器人的场景计算出来的最佳分辨率和帧率的数值,编码后向流媒体服务器传输;

音视频信号显示模块:从流媒体服务器获取客户端的音视频流进行解码显示;

最佳分辨率和帧率判定模块:根据获取的可用带宽得到流媒体数据流的上限值,再根据机器人的场景来进行压缩比的近似判断:主要考虑机器人的运动速度和获取图像相邻帧之间的差异,从而得到在该可用带宽下的最佳分辨率和帧率的数值。由于flash流媒体编解码不开源,故需要估算当前的压缩比。机器人端获取当时机器人本体的运动速度vel和角速度rvel数值,若vel≠0或rvel≠0,则机器人处于运动场景,压缩比较小,则压缩比α=f(vel,revl)。若vel=0且rvel=0,则机器人处于非运动场景,则压缩比与编码图像之间的差异有关。定义δ=∑(fnij-fkij)2/n,f1ij、f2ij、…fnij为n帧图像的像素值,f′ij为n帧图像像素值的平均值,δ越大,压缩比越小,压缩比α=k4*δ,则c=k5*resolution*frame*α,则resolution*frame=c/(k5*α),确定合适的分辨率和帧率的值,作为最佳分辨率和帧率的值进行传输。

运动控制模块:根据控制信号和传感器检测到的障碍物信号,进行机器人的运动控制,同时向最佳分辨率和帧率的计算模块提供当前机器人的运动速度和角速度的信息。

作为本发明的进一步优选,客户端的界面和机器人端的界面均基于web服务器,且均由flash编写,并搭建了控制服务器和流媒体服务器,控制服务器完成机器人端和客户端的控制信号和传感器反馈信号的传输,其中传感器反馈信号由传感器传输至传感器信号模块,流媒体服务器使用flashmediaserver搭建,完成机器人端和控制端的流媒体信号传输;

作为本发明的进一步优选,客户端的控制程序包括flash控制端程序、flash音视频传输和显示程序和网络状况监测程序,flash控制端程序主要完成控制信号的检测与传输、传感器信号和可用带宽信号的显示;flash音视频传输主要完成流媒体信号的传输和解码显示;网络状况监测程序主要完成网络状况的检测和可用带宽信号的传输。

其次,介绍一下网络带宽检测和流媒体数据的自适应算法,由于客户所处位置情况各异,而且带宽检测会受到客户端防火墙的影响,所以本次带宽检测算法写到客户端的html中,用来获取客户端到控制服务器的网络情况,作为带宽调节的依据,客户端下载html后通过javascript加载控制服务器对象,来获取客户端到控制服务器的rtt,由吞吐量公式近似计算客户端到控制服务器的可用带宽,并将计算的数值通过socket传递给控制服务器,再通过相同手段传递给机器人,根据机器人所处不同场景视频数据压缩比不同,近似判断压缩比,随后得到在该场景下的最佳分辨率和帧率的数值,完成在可用带宽之内的流媒体传输。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

本申请中所述的“和/或”的含义指的是各自单独存在或两者同时存在的情况均包括在内。

本申请中所述的“连接”的含义可以是部件之间的直接连接也可以是部件间通过其它部件的间接连接。

以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1