APP下载

基于Eclipse平台的机器人开发环境设计

2018-03-09陈磊张建荣余秋香王健

科技创新与应用 2018年7期
关键词:机器人

陈磊+张建荣+余秋香+王健

摘 要:目前机器人控制软件开发过程中,还没有统一的平台和标准,并且对初学者的进入门槛过高,同时大量的人力物力消耗在重复的设计过程中。文章提出了在Windows环境下,使用Eclipse及OpenGL开发出一套开发环境,并成功应用于机器人中。首先介绍了三款主流的机器人软件开发环境并分析了各自的优缺点;然后详细阐述了如何在Windows环境下使用Eclipse的方法实现图形化编程及可视化仿真。

关键词:机器人;开发环境;图形化编程;可视化仿真

中图分类号:TP242 文献标志码:A 文章编号:2095-2945(2018)07-0118-03

Abstract: At present, in the process of developing the robot control software, there is no unified platform and standards, and the threshold of entry for beginners is too high, while a lot of manpower and material resources are consumed in the repeated process of designing. In this paper, a set of development environments is created using Eclipse and OpenGL in the environment of Windows, and it is successfully applied to robot. Firstly, three kinds of mainstream robot software development environment are introduced and their advantages and disadvantages are analyzed. Then the paper describes how to realize graphical programming and visual simulation using Eclipse in Windows environment in detail.

Keywords: robot; development environment; graphical programming; visual simulation

引言

在个人电脑领域微软公司的Windows系列操作系统占据了绝对的主导地位。然而在服务机器人[1]行业的生产和开发过程中,还没有统一的标准及平台,不同的企业按照不同的标准和路线开发服务机器人设备。对于初学者而言,每一个开发人员都需要从底层硬件(单片机或ARM版)入手再到上层的交互软件或控制软件,大量的资源消耗在了重复的设计中。

机器人软件开发平台是用来给机器人设备开发程序的软件,一般包括:统一的编程环境、统一的编译执行环境、模块库、仿真环境。目前具有代表性的机器人集成开发环境包括微软的MRDS(Microsoft Robotics Studio)、ROS(Robot Operating System)以及MRPT(Mobile Robot Programming Toolkit)。

OpenGL开放图形库是由 SGI开发的一套独立于操作系统和硬件环境的三维图形(二维亦可)软件库。OpenGL的最大优点是用它编写的软件可以在各个操作系统之间方便地移植[2]。

1 机器人开发平台对比分析

1.1 ROS操作系统

2010年开源机器人操作系统ROS(robot operating system)[3]发布了,它提供了硬件抽象、设备驱动、可视化工具、消息传递等诸多功能。ROS的首要设计目标是在机器人研发领域提高代码复用率。ROS主要特点有:点对点设计、不依赖编程语言、精简与集成ROS-agnostic库、便于测试、规模、开源。

1.2 微软MRDS开发环境

微软公司于2008年首次发布了其机器人系统软件平台Microsoft Robotic Studio,它使用了Windows窗口作为控制界面,开发人员可以直接通过软件平台控制机器人的运动方向。Microsoft Robotic Studio带有多种传感器的数据和驱动,开放人员在编程中可以方便的调用,同时微软公司还与多家机器人生产厂商进行合作,越来越多的机器人型号和传感器型号将会添加到这个开发环境中,使开发者在开发的过程中更加方便快捷。Microsoft Robotic Studio含有多种功能组件:Visual Programming Language、Microsoft DSS Manifest Editor、虚拟环境组成[4]。

1.3 MRPT数据库

Mobile Robot Programming Toolkit 是一个广泛使用、跨平台、开源的C++数据库[5]。MRPT为开发人员提供便携和良好测试的应用程序和库,涵盖了数据结构和常用机器人研究领域采用的算法。MRPT主要目的是帮助机器人设计者在即时定位与地图构建、计算机视觉和路径规划等领域设计算法。MRPT本身提供了强大的应用程序,不过这些应用程序都只是源代码,如果要使用需要自行编译。MRPT中已有库的依赖图谱,用户可以仅选择依赖的部分库,减少编译时间和以后的依赖问题。

1.4 各个软件开发环境对比

通过上面的软件介绍,我们对这3款开发环境进行了对比,如表1所示。

2 圖形化开发环境的设计

针对上述产品存在的问题,本文设计的图形化开发环境具有以下特点:(1)不依赖特定硬件的结构,所有硬件的子程序都为独立模块。(2)程序编写部分基于标准C++和Linux系统库,无需依赖特定运行环境。(3)生成的Windows下的可执行性文件,用于可视化仿真对机器人进行实时的仿真。(4)该软件平台开源的特性,将必定促进各个模块的改进,不断的更新。endprint

2.1 整体框架结构

服务机器人图形化开发环境是用于提供机器人控制系统软件开发环境的应用程序,包括图形化编辑器、代码文本编辑器、编译器、调试器、连接程序和图形用户界面工具。图形化开发环境集成了图形化编程功能、文本代码编写功能、代码分析功能、代码调试功能、代码编译功能等一体化的开发软件服务套(组)。CSCI[6]部件之间的关系如图1所示。

机器人图形化集成环境CSCI部件名称功能如下:(1)初始用户界面:初始化、建立窗口式用户接口界面,用户界面包括菜单、快捷键、状态栏等。(2)文件:对图形化编程的操作,包括新建、打开、保存、另存为、打印和退出功能。(3)视图:对工具栏和停靠窗口、状态栏以及应用程序外观进行管理。(4)图形化编程:通过选择、拖拽、连接控制器与其他所需的部件完成图形化编程工作;生成对应的Windows与Linux程序;Windows程序经过编译与连接后生成可执行文件;Linux程序可经过交叉编译与连接生成可执行程序并下载到飞思卡尔I.MX6Q嵌入式计算机。(5)图形库管理:包含部件库和算法库,部件库包含图形化编程所需的控制器类(如:I.MX6Q、树莓派)、人机交互类(如:摄像头)、传感器类(如:超声波测距传感器、红外测距传感器)、驱动器类(如:L298)等部件进行维护管理;算法库(如:Dijkstra算法、A*算法)是对自行编写的函数进行维护管理。(6)可视化:包含积木世界构建、积木库和机器人库管理、遥控、路径规划、脚本编辑等功能。(7)样例库:包含一个样例的图形化编程图形。(8)调试:调试Windows程序,运行过程可选择可视化。(9)帮助:软件使用帮助文档等功能。

这些模块在Eclipse平台中进行开发,下面将对图形化编程模块和可视化仿真模块进行阐述。

2.2 图形化编程模块

图形化编程菜单主要是通过对部件库中部件進行选择、拖拽、设置属性等,当开发者完成图形化编程工作后,可进一步完成图形化编程的后续工作,包括生成C程序、保存C程序、编译与连接、交叉编译与连接、程序下载。对于完成图形化编程的图形,点击文件/保存菜单可以对图形进行保存,保存为文本文件。

下面对形化编程模块主要的函数名和功能进行说明:(1)MKport1IsSelected(CPoint point)触发该函数进行接口类型识别。(2)DrawLine(CPoint point0,CPoint point1)通过触发该函数绘制模块之间的连线。(3)DrawNewModule(CPoint point, inti)通过触发该函数绘制所拖入的模块或者进行模块拖拽操作。(4)DeleteLine(inti, CPoint point0, CPoint point1)通过触发该函数删除模块之间的连线。(5)DeleteNewModule(CPoint point, inti)通过触发该函数删除所选中的模块。(6)ReDrawAll()通过触发该函数进行客户区重绘。

2.3 可视化仿真模块

当完成图形化编程并且服务机器人实际运行需要可视化监控时,可以点击图形化编程界面的可视化菜单进入可视化模块。为简化对移动机器人所处实际环境的数学描述,可对现实世界采用积木世界方法进行描述。机器人所处的环境可用规定的积木图形或者激光扫描所得到的图形来确定。另外,为了让现实世界的数学描述更方便存储以及仿真过程中机器人能够更方便的识别障碍物大小,在积木世界的基础上又采用栅格法对仿真环境进行描述,每一块小栅格大小可以根据实际情况自行设定。障碍物和服务机器人可以充分利用3ds Max的快速建模能力,将3DS文件的图形信息读入OpenGL绘图环境中,并利用OpenGL的图形处理功能对图形显示进行控制[7]。

下面对可视化模块主要的函数名和功能进行说明:(1)OnDraw()拖入图形后以及图形的移动以及放大缩小时进行重绘。(2)OnLButtonDown()通过鼠标左键按下触发消息响应,主要是完成图形的拖入、已拖入的图形的选中和选中框出现时选中四个角之一对该图形进行放缩。(3)OnMouseMove()通过鼠标移动出发消息响应,主要是完成图形的拖动和移动过程、放大缩小过程以及状态栏的鼠标坐标显示过程。(4)OnLButtonUp()通过鼠标左键放开触发消息响应,主要是完成最终所确定的图形的位置等描述的存储和最终触发OnDraw函数进行重绘。(5)DrawGrid()主要功能是进行背景的栅格绘制。(6)OnMouseWheel()通过鼠标滚轮触发消息响应,主要功能是完成整个仿真区的放大缩小。(7)OnTimer()定时器消息响应函数,主要功能是在仿真的过程中,完成机器人的启动、移动、转弯、停止等功能。(8)OnVisualDel()删除。在构建积木世界时删除障碍物或机器人或者在仿真时删除障碍物。(9)OnIdvSaveas()保存。对于已经构建好了的积木世界,将其保存为文本文件。(10)OnIdvOpen()打开。对于已经存在的XML格式的积木世界,可以在可视化模块中打开直接使用,或者在此基础上进行修改。

2.4 开发环境的应用

通过机器人图形化开发环境仿真、生成路径规划代码,并一键下载到机器人ARM[8]板中,机器人ARM运行路径规划代码,进而实现服务机器人的路径规划,机器人界面如图2所示。

3 结束语

通过本文的阐述可以看出利用Eclipse平台建立机器人开发环境,不但可以比较方便地开发出可视化操作平台,而且简化了编写程序的过程,提高了开发效率和程序的可靠性。

参考文献:

[1]肖雄军.服务机器人的发展[J].自动化博览,2004(06).

[2]孙振海,陈利,张庆明.Delphi中OpenGL三维仿真开发环境设计及应用[J].计算机仿真,2006.

[3]张建伟,张立伟,胡颖,等.开源机器人操作系统-ROS[M].北京:科学出版社,2012.

[4]Johns, Kyle.Professional Microsoft Robotics Developer Studio[M].2008.

[5]MRPT网站[EB/OL].http://sourceforge.net/projects/mrpt/.

[6]温昱.软件架构设计[M].北京:电子工业出版社,2013.

[7]殷素峰,高雪强,杨胜强.在OpenGL环境下开发3DS文件浏览器[J].工程图学学报,2005(6).

[8]周立功.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2008.endprint

猜你喜欢

机器人
你好,机器人
在太空中“卖萌”的机器人
勤快又呆萌的集群机器人
机器人出诊(一)
机器人统治世界?
机器人的新皮肤
机器人安迪
机器人来帮你
认识机器人
机器人来啦