基于WebRTC的机器人遥操作系统的制作方法

文档序号:11327162阅读:407来源:国知局
基于WebRTC的机器人遥操作系统的制造方法与工艺

本发明涉及一种基于webrtc的机器人遥操作系统,属于机器人领域。



背景技术:

遥操作是一个古老的话题,自从提出至今对它的研究就一直没有间断。随着科学和时代的发展,机器人遥操作在诸如太空、深海探测,远程的病房监控等领域内,都发挥着不可替代的作用。借助于internet资源的诸多便利条件,人们对网络机器人的需求必然会日益扩大。而新兴的html5技术,又给网络机器人的遥操作开辟了一个新的发展方向。

webrtc是一项基于html5的在浏览器内部进行实时的音视频通讯的技术。实现了基于网页的视频会议,只通过浏览器内部进行javascript就可以达到实时通讯的能力,而且不需要浏览器提供任何形式的插件。webrtc提供了视频会议的核心技术,包括音视频的采集、编解码、传输和显示,而且还支持跨平台的调用。

当前存在的网络机器人遥操作系统设计是多种多样的,各生产厂家分别用自己的手段和方法来实现控制信号和音视频信号的传输。音视频信号有些使用了第三方的开源软件,如skype;有些使用了自己定制的音视频传输软件;有些使用了flash等音视频的传输工具。而对于控制信号一般使用socket或xmlsocket;或者自己定制遥操作控制软件。这些遥操作系统的主要问题在于需要先在客户端安装控制软件或者浏览器插件,不能实现跨平台访问,而且也不能实现机器人运动状态变量对流媒体信号的调节。otorob考虑了机器人的所处场景,根据场景和机器人的速度来调节视频流的参数,来达到节省带宽的目的;drrobotx80则是考虑了机器人的传感器信息,将障碍物作为机器人运动时的感兴趣信息,当检测到障碍物时增大视频流的帧率,以达到保证用户体验性的目的;pr2则利用ros平台搭建遥操作系统,用websocket传递控制信号,使用mjpegserver搭建流媒体服务器,客户端使用html插件来实现。上述所说遥操作系统,增加了机器人的状态变量对流媒体传输的控制,达到了良好的效果,但是问题依然是对客户端要求过高,而且没有考虑网络状况。pr2虽然基于html5技术开发,但是其流媒体传输编码效率较低,而且本身也需要插件的支持。



技术实现要素:

本发明提供一种基于webrtc的机器人遥操作系统,不仅客户端能够在浏览器内与机器人进行音视频交互,而且利用webrtc开源代码开源出分辨率和帧率的接口,用于通过云台相机的转角位置、距离传感器的感知信息和机器人的速度控制机器人端的视频流分辨率和帧率。

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

一种基于webrtc的机器人遥操作系统,包括机器人、客户端和nodejs服务器,机器人头部安装有云台相机,通过二自由度转动获取环境视频信号,机器人上安装有麦克风,用于获取环境的音频信号,机器人周围装有距离传感器,用于探测距离机器人较近障碍物的信息,机器人的顶部安装有显示器和音箱,用于呈现遥操作者的音视频信号,机器人底部安装在移动平台上;客户端使用支持webrtc功能的浏览器向机器人发出控制指令和音视频信号,同时接收机器人发送的控制指令和音视频信号;nodejs服务器分别向机器人、客户端完成音视频流报文的互换和转发;

作为本发明的进一步优选,控制指令的传输遵循websocket协议,包括控制移动平台的运动指令和控制云台相机转角运动的指令;

作为本发明的进一步优选,客户端用支持webrtc功能的浏览器,通过javascript调用实现与机器人的实时音视频传输,机器人用webrtc的开源代码,并开源出分辨率和帧率的参数,音视频传输前首先完成两端初始化报文的传输,两端在添加完sdp消息响应后向nodejs服务器传输基于websocket的sdp消息,描述本端地址和端口信息,nodejs服务器完成报文的互换和转发,一旦对端的报文到达便进行webrtc的音视频点对点传输;

作为本发明的进一步优选,客户端遥操作指令包括云台相机转角的运动指令和移动平台的运动指令,客户端控制云台相机的转角和底部移动平台的运动速度,机器人周围的距离传感器实时检测距离机器人障碍物的信息;机器人视频的分辨率根据云台相机转角位置、距离传感器的信息和机器人运动速度进行调节。

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

本发明提出了一种基于webrtc的机器人遥操作系统,该系统客户端的浏览器内部进行与机器人端进行音视频交互,机器人端不仅利用webrtc的开源代码与客户端传输音视频,还在webrtc的开源代码上封装了上层调用,通过云台相机的转角位置,距离传感器的感知信息和机器人的运动速度调节机器人端的流媒体传输分辨率和帧率。

附图说明

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

图1是本发明的优选实施例的硬件结构图;

图2是本发明的优选实施例的webrtc传输算法流程图;

图3是本发明的优选实施例的移动平台的流媒体传输方法流程图。

具体实施方式

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

如图1所示,本发明的一种基于webrtc的机器人遥操作系统,包括机器人、客户端和nodejs服务器,机器人头部安装有云台相机,通过二自由度转动获取环境视频信号,机器人上安装有麦克风,用于获取环境的音频信号,机器人周围装有距离传感器,用于探测距离机器人较近障碍物的信息,机器人的顶部安装有显示器和音箱,用于呈现遥操作者的音视频信号,机器人底部安装在移动平台上;客户端使用支持webrtc功能的浏览器向机器人发出控制指令和音视频信号,同时接收机器人发送的控制指令和音视频信号;nodejs服务器分别向机器人、客户端完成音视频流报文的互换和转发;

作为本发明的进一步优选,控制指令的传输遵循websocket协议,包括控制移动平台的运动指令和控制云台相机转角运动的指令;

作为本发明的进一步优选,客户端用支持webrtc功能的浏览器,通过javascript调用实现与机器人的实时音视频传输,机器人用webrtc的开源代码,并开源出分辨率和帧率的参数,音视频传输前首先完成两端初始化报文的传输,两端在添加完sdp消息响应后向nodejs服务器传输基于websocket的sdp消息,描述本端地址和端口信息,nodejs服务器完成报文的互换和转发,一旦对端的报文到达便进行webrtc的音视频点对点传输;

作为本发明的进一步优选,客户端遥操作指令包括云台相机转角的运动指令和移动平台的运动指令,客户端控制云台相机的转角和底部移动平台的运动速度,机器人周围的距离传感器实时检测距离机器人障碍物的信息;机器人视频的分辨率根据云台相机转角位置、距离传感器的信息和机器人运动速度进行调节;若检测到障碍物在云台相机的视野范围内,则提高机器人端视频流的分辨率和帧率;反之则保持预先设定的分辨率和帧率进行传输。另外,机器人端视频流的分辨率根据移动平台速度进行调节,并且在一定范围内速度越大、分辨率越高。

如图2所示,是webrtc传输算法流程图,对于客户端和服务器的webrtc程序,主要由以下几步调用组成:

(1)捕获本地的音视频流;一路回送给本地显示,一路用于rtp传输;

(2)设置视频流的分辨率和帧率;这步在机器人端peerconnection完成,将peerconnection中决定视频分辨率和帧率的函数调用提取出来,用于构造流媒体参数调节算法的接口,调节机器人端视频流的分辨率和帧率;

(3)添加sdp消息响应;为了传输webrtc流媒体的报文,需要构造基于websocket的sdp消息,用于描述本次的会话名、带宽信息、媒体类型、传输协议、媒体格式、端口和地址等方面的内容,并设置本端的消息响应机制。该报文用于流媒体传输的初始化。一旦构造好sdp消息就向nodejs服务器发送。nodejs服务器完成消息的转发,并且完成传输情况的监听;

(4)使用websocket将构造好的sdp消息传输到对端;

(5)两端接收到sdp消息后执行相应的消息处理,并按照消息中的对端端口和地址传输捕捉到的音视频流。

如图3所示为移动平台的流媒体传输方法流程图,由云台相机的转角位置(设该方向距离机器人正前方偏转d度)和机器人距离传感器的信息可知在距离传感器的感知范围内是否存在障碍物,以及该障碍物是否在机器人云台相机的视野范围内(d-δ,d+δ),若在该角度范围内存在障碍物,则按照下式调节视频流的分辨率和帧率:

其中,video.interval为视频流两帧之间的时间差,反映出帧率信息,f1>f2>f3。dis(s,p)为根据云台相机的位置p和传感器的信息s确定的在云台相机的视野范围内(d-δ,d+δ)障碍物距离机器人的距离。

同时,速度检测模块实时检测机器人当前运行的线速度和角速度,考虑到机器人运动时遥操作者对视频流的清晰度感知不明显,为了降低运动场景的网络带宽,确定如下机器人发送端的视频分辨率决定公式:

其中,v为机器人运行的线速度,w为机器人运行的角速度。

若机器人存在速度,同时障碍物也存在与云台相机的视野范围内,则最终机器人端发送的视频流的分辨率和帧率按照两种方式的加权可得:

video.width=f(v,w,s,p)=m*video.height=m*g(v,w,s,p)=u*video.widthl+v*video.widthvvideo.interval=k(s,p)=video.intervall

其中,u,v分别为传感器标定系数和速度标定系数。

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

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

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

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

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