Robotic Development
Introduction
Robotic applications are constantly improving their complexity and functionality. With the advance of information technologies and engineering, robots are becoming more and more common tools in our workplaces and homes. This is the reason why it is necessary to develop a middleware that provides clear contexts, predefined data structures, blocks of code, standard communication protocols, synchronization mechanisms and so on. With the heterogeneous development of robots, different middleware platforms have emerged; in some cases, the manufacturers themselves have developed these platforms to program their own products. By contrast, research groups have developed platforms designed to cover their needs including:
bull; CARMEN (Carnegie Mellon Navigation Toolkit)developed by Carnegie Mellon University. OROCOS (Open Robot Control Software) developed by the Catholic University of Leuven. Player/Stage/Gazebo Project developed, at its beginnings, by the University of South Carolina.
bull; Miro (Middleware for Mobile Robot Applications) developed by the University of ULM.
bull; MARIE (Mobile and Autonomous Robotics Integration Environment) developed by the University of Sherbrooke.
bull; Webots developed by the Swiss Institute of Technology in Lausanne and Cyberbotics Ltd.
In the following section, we will explain in more detail some robotic simulators. Generally these robotic platforms for programming are distributed as free software and are intended to be universal, i.e. platforms that support robots from any manufacturers.
In addition to studying the behavior of the robots, a thorough study of their communications and specifications is imperative. For this, some protocol simulators will be analyzed in the following sections. Protocol simulators are software tools that emulate communication networks and return data about network performance.
The aim of development platforms is to simplify the creation of robotic applications; the choice of a specific platform is often decisive for the proper integration of all elements to achieve a good level of performance, efficiency and reusability along with good communication between devices.
The reason why development platforms are used is that they allow the developer to obtain real data by making simulations of the behavior and communications of the robot in virtual environments. This has a direct impact on the reduction of costs since they shorten the times to develop all the activities and there is no need to have the robot, just a model of the simulator.
General Characteristics of Development Platforms
The wide variety of development platforms allows them to run under different operating systems and to be implemented under several programming languages. Development platforms use different libraries; some of which are described below.
Standard Template Library (STL)
STL provides containers, iterators, algorithms and functions. STL provides a set of common classes in C that can be used with any compiler and supports some elementary operations. STL algorithms are independent of the containers. This fact reduces the complexity of the libraries. The STL achieves its results using templates. This approach provides polymorphism in compiling time, which is more efficient than is the commonly used runtime polymorphism.
Microsoft Foundation Class Library (MFC)
MFC is a library that contains, in a set of C classes, Windows APIs, thereby achieving easier access to them. The classes are defined by Windows Object handlers, predefined windows and common controls. The development of this library has been made in conjunction with new versions of a Visual C programming environment.
Open Graphics Library (OpenGL)
Silicon Graphics Inc. developed, in 1992, a standard specification defining a multilanguage and multiplatform API to write applications that produce 2D and 3D graphics called OpenGL. The interface consists of over 250 different functions that can be used to draw complex 3D scenes from simple geometric primitives such as points, lines and triangles. Its use extends to CAD applications, virtual reality, scientific visualization, information visualization and flight simulation. It is also used in game development, where it competes with Direct3D on Microsoft Windows platforms. In addition, there are several helper functions or class structures.
Robotic Middleware and Development Platforms
We will focus on the following middleware and development platforms.
CARMEN (Carnegie Mellon Navigation Toolkit)
This was developed in 2007 by Carnegie Mellon University as a collection of robot control software in open source. CARMEN is designed to provide a consistent interface and a set of primitives for robotic application development in a wide variety of commercial robot platforms. The goals of CARMEN are to eliminate the barriers for the implementation of new algorithms for real and simulated robots and to facilitate the exchange of research and algorithms between different institutions. The purpose of this platform is not focused on adopting a strict standard, but on recommending good design methods to developers. CARMEN is a modular software architecture organized in three levels:
bull;The basic layer is responsible for the interaction and control of hardware; it provides an abstract configuration of the base and sensor interfaces. Likewise, it also provides a low-level control of movement in a straight line or simple rotations, a low-level collision detection and information from motion sensors with the aim of improving the operation of the odometers. The basic control modules of CARMEN can be implemented in a wide range of commercial robots such as Nomadic Technologies Scout
剩余内容已隐藏,支付完成后下载完整资料
机器人的发展
简介
机器人应用程序都在不断提高自己的复杂性和功能性。随着信息技术和工程的进步,机器人正在成为工作场所和家庭越来越常用的工具。这就是为什么必须开发一个中间件,来提供明确的上下文、预定义的数据结构、代码块、标准的通信协议、同步机制等的原因。随着机器人的异质发展,不同的中间件平台已经出现。在某些情况下,制造商本身已经开发这些平台为自己的产品进行编程。相比之下,研究小组已经开发设计了一些平台,来满足他们的需求,这些平台包括:
·CARMEN(卡内基梅隆导航工具包)由卡内基梅隆大学开发。OROCOS(开放式机器人控制软件),是由比利时鲁汶天主教大学开发的。Player/Stage/Gazebo项目在一开始是由南卡罗来纳大学开发的。
·Miro(移动机器人应用程序中间件)由乌尔姆大学开发。
·MARIE(移动和自动机器人集成环境)由舍布鲁克大学开发。
·WEBOTS由瑞士理工学院洛桑分校和Cyberbotics有限公司共同合作开发。
在下面的章节中,我们将详细解释一些机器人模拟器。通常,用于编程的机器人平台被分为自由软件和旨在支持来自任何制造商的机器人的普遍平台。
除了研究机器人的行为,对它们的通讯和规格进行深入研究势在必行。对于这一点,一些协议模拟器将在下面的章节进行分析。协议模拟器是用来模拟通信网络,并返回有关网络性能数据的软件工具。
开发平台的目的是要简化机器人应用程序的创建过程。特定平台的选择往往决定着所有元素的适当整合,以达到性能,效率和可重用性以及设备之间的良好沟通的良好水平。
为什么开发平台使用的原因是,它们允许开发者通过行为的模拟和在虚拟环境中的机器人的通信的模拟,来获得真实的数据。这对成本的减少有直接的影响,因为它们缩短了所有活动的开发时间,也没必要有机器人,只需要一个模拟器。
开发平台的一般特性
各种各样的开发平台使它们能够在不同的操作系统上运行,并用多种编程语言来实现。开发平台使用不同的库,其中的一些描述如下。
标准模版库(STL)
STL提供了容器、迭代器、算法和功能。STL提供了一组可以在任何编译器中使用的常用C 类,并且支持一些基本的操作。STL算法是独立的容器,这一事实降低了库的复杂性。STL使用模版来达到其效果。这种方法提供了多态性编译时间,这是比常用的运行多态性更有效的。
微软基础类库(MFC)
MFC是一库,它包含了一组C 类和windows API,从而实现更容易获得它们。该类是由windows对象句柄、预定义的窗口和公共控件定义的。这个库已经发展到可以在新版本的Visual C 编程环境中使用。
开放图形库(OpenGL)
Silicon Graphics公司在1992年开发了一个标准的规范,定义了一个多语言和多平台的API来编写制作2D和3D图形称为OpenGL应用程序。接口包括超过250个不同的功能,它可用简单的几何元素,如点,线和三角形绘制复杂3D场景。它的用途被扩展到了CAD应用、虚拟现实、科学可视化、信息可视化和模拟飞行中。它也可用于游戏开发中,在游戏开发中它与Microsoft Windows平台上的Direct3D竞争。此外,还有几个辅助函数或类结构。
机器人中间件和开发平台
我们将重点介绍以下中间件和开发平台。
CARMEN(卡内基梅隆导航工具)
这是2007年由卡内基梅隆大学开发的一个开源的机器人控制软件的集合。CARMEN旨在各种各样的商业机器人平台上为机器人应用程序提供一个一致的接口和一组原语。CARMEN的目标是消除对真实或仿真机器人新算法的实现的障碍,并促进不同机构间算法研究的交流。这个平台的目地不是集中在采取了严格的标准,而是为开发者推荐良好的设计方法。CARMEN是一个具有三个层次的模块化软件架构:
·基本层负责硬件的交互与控制。它提供了基础和传感器接口的抽象结构。同样的,它还提供了一个简单的直线或旋转的低级别的运动控制,一个低级别的碰撞检测和运动传感器的信息,目地是改善里程表的操作。CARMEN的基本控制模块可以广泛应用于商业机器人,如Nomadic Technologies Scout 、XR4000、ActivMedia Pioneers、 iRobot b21 和 ATRV 系列。
·导航层实现原语包括位置,动态位置跟踪和运动规划。不像其他的导航系统,CARMEN在单个模块中集成了所有除低级别的电机控制的运动控制。
·第三层是为使用第二层的原语的用户级任务保留的。
Miro(移动机器人应用的中间件)
乌尔姆大学在2002年发表了一篇叫做Miro(移动机器人应用的中间件)的文章。在这篇文章中,他们的研究建立一个面向对象的中间件,它够使得移动机器人应用程序开发更容易更快,并且改善了机器人软件的可移植性和可维护性。Miro已经设计和实施符合面向对象的CORBA标准的要求。Miro的功能核心,数据处理例程的传感器和控制执行器是用C 实现的,这样允许高的运转效率。Miro是建立在与CORBA的主要层相关的三层体系结构:
·设备层为机器人的所有传感器和执行器提供面向对象的抽象接口。这是Miro的一部分,它取决于平台,用于硬件。
·服务层提供了一个定义的服务中可用的传感器和执行器,它是利用CORBA的IDL(接口定义语言)实现这些服务的,并且独立于平台的对象。
·Miro类框架提供了一组功能模块,通常用于移动机器人控制,如模块映射、定位、行为,访问路径规划、登记和查看设施。
OROCOS(开放机器人控制软件)
鲁汶天主教大学在2001年发表了一篇文章,文章中展示了OROCOS项目的发展情况。OROCOS作为一个开源的平台,它有以下几个目标:
·开源许可证。
·高模块化和灵活性。
·从科学的角度来看,基于它的文档和技术结果的最高品质。
·独立于商业机器人制造商。适应于所有的机器人设备和计算机平台,以及多语言环境。该OROCOS代码库划分为模块和库。主要有三个库:
·支持模块。该软件没有为机器人提供功能内容,而是包含三维可视化和仿真、软件配置工具组件、实时操作系统、进程间的通信、文档书写工具,等等。
·机器人模块。该软件实现了机器人的具体算法,运动学和动力学的伺服马达,串行和并行操作,等等。它利用了一个或多个支持模块。
·组件。这些都是CORBA对象,使用IDL描述。
Player
Player是机器人控制的网络服务器。它通过IP网络,为机器人的传感器和执行器提供了一个干净简单的界面。客户端与Player通过TCP套接字通信,读取传感器数据,写命令执行器和动态配置设备。
Urbi
Urbi是一个开源的软件平台,通常用于控制机器人或复杂的系统。Urbi包括UObject,以及一个C 组件和机器人使用标准API,它可以匹配组件在高并发设置中无缝的使用C 组件库。Urbi的目地是使机器人兼容并且简化开发软件和机器人行为的过程。
Urbi简化了独立的并行组件的业务流程。它提供了协调执行各种组件的功能。语言如C ,非常适合于编程本地低级别处理的硬件或软件设备。事实上,这些需要效率,小内存占用和访问底层硬件的细节。
Urbi有一个业务流程语言连接不同的组件等高层次的行为描述,即urbiscript。Urbiscript是一种编程语言,主要用于机器人。它是一个基于动态,原型,面向对象的脚本语言,通过提供核心基元和基于语言的程序结构,来支持并强调并行和基于事件的编程。该Urbiscript语言的语法非常接近C 语法,完全用C 集成。
Orca
Orca是一个开源的中间件框架,它用于开发基于组件的机器人。它被设计的应用目标是来自从单一车辆到分布式网络的各种应用程序。Orca的主要目标是使机器人的软件复用,简化软件的重用和鼓励软件的复用。Orca通过允许用户定义接口和通信机制,来使基于组件的分布式机器人系统得以实现。它是利用CORBA来实现的,并且它支持不同的编程语言,如Java,C#和C 。
OpenRDK
OpenRDK是一集中在快速发展的分布式机器人系统的模块化软件框架。这个框架的主要实体是一个软件过程,称为一个代理。模块是线程内部的一个代理流程,一旦代理进程在运行,它就可以动态的装入和启动模块。
模块使用blackboard-type对象沟通,其中它们发布一些内部变量或属性。从一个模块的角度来看,访问远程属性是透明的。这也减少本地属性的共享内存。
CLARAty
CLARAty(耦合层架构机器人自主权)是机器人软件框架,用来帮助工程师开发机器人应用程序。
CLARAty有两层体系结构,它被用来提高系统软件模块化设计。这个替代是传统三层架构的演变。新的架构在决定层上加入了传统的规划和执行水平层架构。两个架构之间的一个差异是区分粒度的水平和智力水平。
功能层是所有硬件和功能的接口,通过这个接口,决策层可以使用机器人系统。决策层是一引擎,用于评估系统的资源和任务的限制。这一层包括规划、管理、调度、活动数据库和规划具体的启发式算法。
机器人模拟器
微软机器人工作室(MSRS)
微软机器人开发工作室是一个基于windows的环境,它帮助学者,爱好者和商业开发人员轻松的创建跨多种硬件的机器人应用。
Webots
Webots是用于模拟,编程和模拟移动机器人的开发环境。利用Webots,用户可以设计复杂机器人的设置,可以在共享环境中使用一个过几个不同或相同的机器人。
Stage/Gazebo
Stage是一个通常与Player协同使用的模拟器,它模拟了在二维位图的环境中移动机器人,传感器和对象群体。和Stage一样,Gazebo也能够模拟机器人,传感器和对象群体,不过是在3D位图中。
MARIE(移动和自动机器人集成环境)
舍布鲁克大学在2004年考虑了一个工具,它可以使移动机器人编程代码复用。MARIE为系统级编程创造了一个环境,简化了应用程序,在连贯和综合的系统编程中环境和工具重用。
AnyKode Marilou
AnyKode Marilou是一个基于MSRS的软件,它可以用来建模,编程和为移动机器人模拟一个环境。支持的编程语言有C/C 、VB#、J#、C#、C 和CLI,编程的系统可以是Windows或Linux。
AnyKode Marilou的仿真支持两个操作模式:实际模拟或加速仿真,并且支持多种机器人。该平台为嵌入式机器人提供的组件库包括:电机、伺服电机、里程表、力/力距传感器、距离传感器、激光测距仪、保险杠、空气压力的力量、摄像机、全景球形相机、GPS、加速度计/陀螺仪,等等。
USARsim
这是一最初由卡内基梅隆大学(CMU)和匹兹堡大学设计的模拟系统。最初,USARSim集中于城市搜索和救援,但现在已经演变成一个通用的模拟系统。USARSim从第一个版本开始,是建在流行的游戏虚幻竞技场的引擎上的。USARSim是用于早起检测和后期绑定的工具,它可以被用来验证所需的选择上的虚拟换环境的英雄,并预测实际系统的行为。该模拟器包括几个型号的传感器,机器人和驱动器。
EyeSim/EyeBot
EyeSim是2D模拟器,用于EyeBot移动机器人系统。模拟器未实现为一个独立的程序或进程,并且不同于大多数现有仿真平台,因为它被实现为一个库,它被连接到机器人应用程序上。
EyeBot是一个控制器,它支持带轮子的移动机器人、行走机器人和飞行机器人。它包括一个带有图形显示的功能强大的32位微控制器和数字灰度或彩色摄像机。
MboileSim
MboileSim是一软件,它可以模拟移动机器人及其环境,还可以用ARIA或者其他支持MboileSim的软件平台进行调试试验。MobileSim从MobileRobots/ActivMedia中搭建一个Stage环境,并在这环境中放置一个模拟的机器人模型。然后,它提供了一个通过TCP端口连接的模拟先锋控制。ARIA能够连接到TCP端口而不是串行端口。MobileSim是基于Stage库的,并且有GNU GPL许可证。然后,使用最广泛的机器人模拟器将会被更深入的研究:Player/Stage/Gazebo,Microsoft Robotics Developer Studio 和 Webots。
模拟器的通信协议
OPNET建模
OPNET()是用于网络通信的规格,仿真和性能分析的开发环境。从小型局
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[505894],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。