(1)当传输的状况变差(如丢包、延时严重等)时就给本地控制系统发送降低视频质量的命令,使其降低视频采集的频率或者提高压缩比率。至于是降低视频采集的频率还是提高压缩比率,将根据当前机器人的移动速度来决定:当机器人移动较快时,并不需要非常高的画面质量,所以优先采用提高图像压缩比率的方法。当只提高压缩比率效果不明显时,再同时采用降低视频采集频率的方法;当机器人移动速度很慢时如抓取东西时,需要更高的视频清晰度,此时优先采用降低视频采集频率的方法。当只降低视频采集频率效果不明显时,再同时采用提高压缩比率的方法。
(2)同理,如果传输的状况较好,则可以发送提高视频质量的命令给本地控制系统,根据移动速度决定采取优先提高视频采集的频率或者优先降低压缩比率的方法来提高视频的质量。
4 机器人远程控制系统开发库
4.1 目的与用处
提供一套使开发者摆脱编程细节的、快速开发的、模块化的、可扩展的机器人远程控制开发库,可以方便研究人员进行软件的开发,降低其在软件编程方面的重复劳动。
4.2 设计原则
(1)采用面向对象的思想,以C 类进行设计,并将类封装到动态链接库中。
(2)开发库具有多选择性,使开发库的使用者有多种技术可选,如提供多种视频编码库。
(3)在类中对多线程进行封装 ,并加入线程的同步,使类具有线程安全性。
(4)函数中的算法要力求效率高、运算速度快,以减少因为占用过多的计算时间造成的网络时延。
(5)类中定义的接口应设计完整,不可随便改动,以保证今后升级和扩展时接口的一致性。
(6)类的代码要多采用基本C/C 标准库函数来开发,而尽量不要使用依靠平台的如MFC库,以方便移植到Linux平台。
4.3 开发库CyLib介绍
图4是依照以上设计原则设计的机器人远程控制系统开发库CyLib的类层次图。该库由4个动态链接库文件组成:CyCore.dll、CyTools.dll、CyRobot.dll、CyGUI.dll。其中基类加阴影显示,其他的为派生类。

图4 开发库的类层次图

图5 远程控制平台
CyCore.dll封装了应用层数据包协议、远程控制命令、数据传输接口、延时及丢包模拟等。
CyRobot.dll包含了对机器人编程接口ARIA的封装、控制指令的执行、状态数据的轮询和发送、视频的采集压缩发送以及色彩识别、漫游等智能控制功能等。
CyTools.dll提供了一系列的工具类用于辅助研究人员的程序开发。其中包含线程进程同步类、时间类、算术类、日志功能、压缩解压缩、加密解密、视频采集等。
CyGUI.dll提供了图形化显示类,如多功能按钮、地图生成、声纳图形显示等。
5 开发实例
根据以上的系统结构设计并利用开发库CyLib,开发了一套P3-DX机器人远程控制系统。图5展示了机器人远程控制平台的控制现场。该平台实现了机器人本体、机械臂和摄像头的控制、状态数据的显示、声纳罗盘数据图形化显示、视频监控以及自动漫游、色彩识别等智能控制功能。机器人本地控制系统的软件开发为车载计算机的一个Windows2000常驻服务程序。它实现了命令的解析和中转、智能任务控制的执行、状态及视频数据的采集、打包、发送等功能。
本机器人远程控制系统开发库目前还不够完善,需要继续改进和扩展。最后介绍的开发实例基本达到了设计的要求,但是部分高级任务如机械臂智能控制、自主控制等尚未完成,需要进一步加以研究和开发。
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.

