基于“创意之星”平台的机器人感知模块设计与开发
2016-04-06重庆电子工程职业学院重庆401331
姜 帆(重庆电子工程职业学院,重庆,401331)
基于“创意之星”平台的机器人感知模块设计与开发
姜 帆
(重庆电子工程职业学院,重庆,401331)
摘要:随着科技的不断发展,服务型机器人开始进入人们的生活,但国内较为缺乏通用开发平台,共性软件模块也非常少,本文对此做了相应的研究与设计,具有一定的实际意义。
关键词:机器人;视觉感知;共性软件
从第3次工业革命以来,机器人就一直吸引着人们的目光,因为它承载着人类发展梦想。近年来,随着计算机应用技术、自动化技术以及机械制造技术的不断提高,服务型机器人得到了长足的发展,尤其是此中的教育娱乐机器人已经开始逐渐进入到人们的生活中。可是,目前还缺乏比较统一的的开发平台,此类机器人特性开发的共性软件也非常少,因此无形中增大了开发成本,就极大的阻碍了服务型机器人的发展与推广。所以,研究开发出一些服务型机器人的共性软件,对我国机器人技术的推进与发展就非常有意义。
1 机器人共性软件技术
机器人共性技术的定义是在各类机器人研发、制造过程中均需要使用的通用技术。一般认为由传感、驱动、机构、软件四个方面组成。这里只论述软件方面。机器人软件系统的开发可以有定制软件开发与共性软件开发两种情况。所谓定制软件开发是针对机器人特定的功能而“量身定制”的开发软件,这样开发出来的软件系统只有专用性而不具备共用性,明显的缺点就是无法代码复用。然而,对于机器人的软件系统而言,其体系结构本身相对复杂,并且多少会有一些特定需求,所以开发出能够相对通用的,能够在所有机器人上应用的软件系统也不实际。一种比较折中且有效的方法就是将机器人以及机器人的各项特征功能进行分类,针对某类机器人的某项特征功能进行通用软件模块开发,这样才能解决上述问题。近年来,全世界许多公司或是研究机构耗费大量的财力、人力开发并推出自己的机器人共性软件开发平台。在文献中[1]提到的Qmotor系统是由美国克莱姆森大学机器人研究院研制的一个基于PC的实 时控制系统。该系统被此研究院寄予极高的期望,希望它能通用于机器人控制、监控和子系统,同时能为机器人编程提供统一的环境与语言、机器人和遥控操作的顺序模块结构和图形编程环境等。
目前,随着我国乃至世界机器人产业的蓬勃发展,在研发过程中对共用性软件的需求变得强烈。针对服务型机器人,特别是服务型机器人中的教育娱乐机器人的通用模块开发出一些应用级的共性软件显得尤其意义重大。当其他开发者在进行类似开发时,可以直接使用该共性软件模块,能够大大的节约时间成本,提高开发效率,实现代码复用。并且这样的开发模式也是在国外的一些开源平台中所提倡的。然而,尽管此种共性软件或是称为中间件的开发模式的优势十分明显,但由于商业行为中存在着的规则,他们的行为大多是将其封闭起来。所以,机器人共性软件模块的研究与开发未能普及到商业领域,而更多出现在科研领域。
2 “创意之星”平台的软硬件环境
“创意之星”是我国使用广泛的、比较典型的教育娱乐机器人软硬件开发平台,是由博创科技研发、推出的一套机器人模块化套件,包含有多种可选配件,主要用于机器人的创新实验。目前,最新的套件产品为“UP-InnoSTAR”,套件产品共有3个版本,本文使用的是其高级版。“创意之星”机器人套件具备了多种基本“积木”构件,通过这些“积木”能够把想象中的机器人模型构建出来。这些“积木”是数百种机构或者零件,有一个控制器,多种传感器,多种执行用的舵机、电机和一些像电缆、电池这样的配件。
在软件方面,“创意之星”平台拥有NorthSTAR图形化机器人软件IDE。集成开发环境采用了图形化、可视化的快速编程方式,并同步生成C语言代码,编译执行。代码跨处理器平台,在一定程度上可实现软硬件分离,有利于程序的移植,为机器人共性软件开发提供了基础。除此之外,IDE还具备集成3D仿真与虚拟示波器功能,可在程序执行时在PC机上以波形的方式对机器人的各项数据参数进行监控。
3 基于“创意之星”平台的机器人感知模块的设计
机器人视觉感知模块的功能是使用本地摄像头或者远程摄像头对图像信息进行收集和处理。具体来讲,首先是客户端通过摄像头对图像信息进行捕获,生成图像数据后发送到服务器端,服务器端接受到数据后对图像数据进行处理,然后将处理的结果回传到客户端,由客户端完成执行相应动作。
根据此架构,开发时可将视觉感知模块分为3部分:应用接口的定义、客户端程序开发以及服务器端程序开发。具体思路是,首先定义出视觉感知模块的应用接口IDL文件,并编译后生成头文件以供调用;然后分别针对客户端与服务器端进行程序开发,开发时调用上一步的头文件;最后对程序进行模块测试与整机测试。
4 感知模块的开发
客户端的功能在于图像的采集,当通过摄像头采集图像完成后,客户端就将图像数据发送到服务器端。在开发时需要用2个线程来完成,并需要使用JRTPLIB 库来实现。程序开发流程图如下:
在客户端的视频流数据发送后,服务器端需要进行接收,接收的过程同样需要用2个线程来完成。其中,线程1用于接收视频流数据,当数据到达服务器端时,首先判断缓冲区是否为满状态,如果FALSE,将数据送入缓冲区,如果TRUE,则对计时器的状态标识进行判断,来决定是对缓冲区刷新或是将数据丢弃,这种模式称为“写入-刷新-丢弃”,服务器端就是按照这样的模式对数据进行接收;线程2相对简单,用于解码接收到的数据,而后将解码后的视频流数据发送到显示设备。
5 总结
根据上述程序开发流程图编码以及调试后,程序正常通过模块测试,限于篇幅不列出程序清单。该共性软件模块能够作为其它教育娱乐机器人的视觉感知功能开发的参考或应用,具有一定实际价值。
参考文献
[1]M.S.Loffler, N.P.Costescu, D.M.Dawson. QMotor 3.0 and the QMotor robotic toolkit; a PC-based control platform[J] . Control Systems,IEEE,2002,22(3); 12-26.
[2]博创科技, 创意之星模块化机器人套件完全介绍[S].
姜帆、1979.07.16、男、重庆、重庆大学、研究生、重庆电子工程职业学院、副教授、研究计算机软件技术以及系统集成。
Design and development of robot perception module based on "Creative Star" platform
Jiang Fan
(Chongqing Electronic Engineering,Career Academy,Chongqing,401331)
Abstract:With the continuous development of science and technology,service robot began to enter people's life,but a lack of domestic general development platform,common software modules are also very few.In this paper,the corresponding research and design,has a certain practical significance.
Keywords:robot;visual perception;common software
作者简介