搜档网
当前位置:搜档网 › 移动机器人控制软件的设计与实现

移动机器人控制软件的设计与实现

移动机器人控制软件的设计与实现
移动机器人控制软件的设计与实现

移动机器人控制软件的设计和实现
作者:李晓明 文章来源:https://www.sodocs.net/doc/0811764443.html, 更新时间:2006-8-9 17:25:55 点击数: 2742
简介:现在做一个移动机器人是很容易的一件事,车体自己可以加工,或买现成的;避障可以用超声阵列;
导航可以用激光测距 LMS;定位可以用电子地图加 LMS 加陀螺仪;然而控制软件却只能自己编写。本文 或许可以给你一些启示。
相关链接 基于 VIA 平台的移动机器人
移动机器人的使用现在非常多,做一个移动机器人似乎也很容易,车体自己可以加工,也可以去 买现成的;避障可以用超声阵列;导航可以用激光测距 LMS;定位可以用电子地图加 LMS 加陀 螺仪;驱动可以用各种电机及配套驱动器或者自己做;通讯可以去买现成的无线通讯模块,可以 是数字的,也有模拟的;大范围定位可以用 GPS 模块,也是现成的;至于什么红外,蓝牙,甚 至计算机视觉都可以去市场上买,但是(然而)为什么做一个移动机器人还是这么难呢?尤其是 对一个新手而言。一个老外说过,硬件是现成的,软件算法杂志里有的是,很多可以在网上当, 但即使是一个博士生也要花费很长的时间完成一个实际可用的移动机器人。为什么?因为机器人 使用的困难在使用软件的设计上。前面那个老外也说过,现在什么都可以在网上当,唯独使用程 序不能。有过自己写移动机器人程序的人可能会理解这段话,当然也仅仅是可能,因为不排除有 很多机器人大拿一上来就可以写出很棒的移动机器人软件。
移动机器人的控制软件开发是和硬件紧密相关的,甚至和机器人的体系结构也密切相关,同样是 移动机器人,有的是用 PC 控制的,有的是用多个嵌入式系统实现的,有的则是多机器人协同工 作的,操作系统有人会用 DOS,有人会用 Windows,有人会用 Linux,有人会用 Embeded Operation System。硬件平台有的用 x86,有的用 ARM 芯片,有的会用 DSP,通讯里面会 有串口,TCP/IP 网络,无线以太网,红外,蓝牙等,甚至驱动机构也不一样,有的是用腿,有

的是用轮子,即使是轮子也有好多种情况,两个轮子,三个轮子(包括两个独立驱动轮一个随动 轮,或者两个同步驱动轮一个转向轮等),四个轮子,五个轮子等等,有的是集中控制的体系结 构,有的是分布式控制的体系结构。使用也不同,有智能行走的,有人远程控制的,也有人机结 合的,诸如此类,这样看来,移动机器人使用程序的开发的确是很复杂,“无法从网上直接当了”, 看来只能自己从头开始编写代码了这一条路好走了。
的确如此,但自己从头编程序也存在一个问题,那就是如何着手。我们写文章希望有模板,同样 写机器人使用程序也希望能有一个模板,按照模板的约定,把自己编写的模块嵌进去,就可以得 到一个使用程序了。可惜程序设计里面的模板无法移植到机器人程序设计领域,但是我们可以采 用一个框架,在这个框架的规范下,我们写的模块或者利用他人写的模块进行组合就可以得到一 个合理的使用程序。
框架的概念很广,可大可小,大的可以做到像 J2EE 或者 CORBA 那么复杂,做企业级开发,小 的则只能在一个 CPU 上构件一个简单的使用程序。我在开发移动机器人的时候设计了一种简单 框架,专门用来给采用 PC 对机器人进行集中控制的情况下编写使用程序。在我的博士论文(在 个人主页里可以找到)里则设计了一种较复杂的框架,可以采用 P2P 技术实现多机器人或多系 统的软件使用开发,而我现在正打算设计一种更通用,更复杂的,可以实现多平台,多 CPU, 多系统环境下的移动机器人使用快速开发,包括框架和中间件技术。这里只是先介绍一下目前正 在使用的那个 PC 用的软件框架。
值的一提的是,国内外已经有很多人在做或者已经做过这方面的工作了,我写在这里的目的只是 为了和大家交流。由于最近时间很紧张,每次只能写一小点,所以打算分数次把这部分内容介绍 完,主要包括框架的模型,模块的接口定义,模块之间的通讯,动态模块的加载和配置,以及采 用该框架实现的移动机器人使用举例,并提供相应的框架的源代码。
1、引言
我们初次编写机器人软件,通常有种“老虎啃天,无处下嘴”的感觉。编写移动机器人程序和普通 程序稍有不同,因为通常意义上的移动机器人程序都是多任务,实时的,甚至是分布式的。我们 可以很容易的在计算机终端上显示出“Hello,world”,也可以毫不费力的在移动机器人的液晶

屏上显示出“Hello, World”,但是一边让机器人行走,一边要避障,同时还要处理通讯、定位 等工作就决不是那么容易了。这个时候我们需要的就是框架了。
2、面向移动机器人的使用程序框架
2.1、什么是框架?
我的理解中,软件里框架的概念很有点像计算机硬件里面的主板,它提供了系统运行所需要的电 源,通讯等手段,并且所有符合总线协议的卡都可以往主板上插,从而实现所需要的功能和性能。 例如把数据采集卡查到主板上,计算机就具有了数据采集的能力;把视频卡插到主板上,计算机 就具有了压缩视频的功能,此外还有显卡,声卡,网卡,电视卡,运动控制卡,传真卡等等。软 件里的框架也是如此,它有点类似中间件的概念,提供了相当程度的代码支持,同时也定义了一 些规范,这些规范包括通讯协议,模块的接口定义等。用户可以自己编写模块,也可以使用别人 已经写好的模块,通过框架的运行,带动模块的运行,从而实现一些预期的功能。由此可见,框 架必定是一种集成工具,其自身是一个完整的使用程序,而且可以通过模块来扩展使用系统的功 能和改进其性能;或者说,框架提供了使用程序的入口和出口,并能够根据配置,加载相关的模 块实现功能的扩展和性能的提高。其中,功能的扩展通过编写新的模块实现;性能提高则通过对 原有模块进行升级实现。
框架和体系结构之间存在着微妙的关系,一方面可以说框架和体系结构无关,例如同样用 MFC, 可以开发出各种体系结构的软件系统来;另一方面,框架和体系结构又结合的那么的紧密,例如 J2EE 是一种框架,而看到 J2EE 就令人想起了分布式的体系结构。CORBA 亦是如此。主板和 体系结构之间的关系就更令人弄不清了。因此我认为执着的追求框架和体系结构的区别是没有意 义的,关键在于如何设计框架,使它更好用,效率更高。
2.2、框架的设计
框架设计的好坏对系统性能的影响当然非常重要,应当仔细考虑,全面分析,更重要的是能够在 实践的过程中不断的进行改进。目前我设计的这个软件框架比较简单,适合比较简单的使用,当 然可以在此基础上进行进一步的完善,使之能够适应更复杂使用的开发。
1、R.A. Brooks 的包容体系结构和分层递阶体系结构

首先让我们来看看目前移动机器人所主要采用的体系结构。移动机器人目前所采用控制软件的体 系结构可以分为三类:一类是分层递阶式结构,一类是包容体系结构,最后一类是上述两种结构 的综合。
在分层递阶体系结构中,它把各种模块安排成若干个层次,使不同层次的模块具有不同的工作性 能和操作方式,一般说来,位于高层的模块负责复杂的判断、推理等操作,其智能化程度较高; 而较低的层次用于和外界交互,具有较强的实时响应能力,因此在底层往往是一些视觉,驱动, 传感,伺服等工作模块。其中具有代表性的是 Saridis 的三级模型,即执行级,协调级和组织管 理级等。分层递接体系结构主要特点是层次向上,智能增加,精度降低,实时性降低;层次向下 则相反。分层递接结构能够较好的解决智能和控制精度的关系,因此获得了广泛的使用,但也有 一些明显的缺陷,最主要的是它的反应性极差,因为处理问题的能力主要由高层解决,需要自下 而上然后自上而下的来回过程,从而失去了高度智能性的实时反应能力。为了解决这个问题, R.A.Brooks 提出了包容体系结构。 包容体系结构结构图如下图所示:
和分层递接结构相比,包容体系结构是一种水平分片的结构,它的主要特点是按照“任务和行为” 进行分类,把系统分解为若干个子系统,每个子系统不是技术功能模块,而是能够独立产生动作 行为的系统;每个子系统都能够直接接收传感器信号,也可以直接产生行为动作;每个子系统平 行工作,由一个协调机制负责集成,从而产生总体的行为。该体系结构设计目标为多任务,鲁棒

性,可扩展性以及较强的可判断性。其基本设计思想来源于 Brooks 对智能的理解,即他认为能 产生复杂行为的机器内部其控制系统不一定是复杂的,复杂的行为仅仅是复杂环境的反射;一个 自主式智能系统必须具有永久的生存能力等。
Brooks 采用包容式体系结构,构造了多种机器人,这些机器人能够实现其设计目标,表现出较 强的智能行为,因此包容式体系结构在智能机器人领域产生了极大的影响,对传统人工智能(基 于符号和推理)产生了强烈的冲击。但包容体系结构也存在不足之处,那就是功能层次之间缺乏 协调和组织,尽管在局部行为上表现出灵活的反应能力和鲁棒性,但对长远目标和全局性的目标 跟踪缺乏主动性;而且限制了对知识的运用,包括人的知识。因此,最近许多研究人员提出了一 些新的体系结构,基本上是在包容体系结构的基础上集成了传统人工智能的方法,或者以分层递 接为骨架,在每一层次上引入了类似包容体系结构的布置,提高每一层次的响应能力。我把此类 体系结构归于第三类。
分析分层递接结构和包容体系结构,不难发现,两者都是基于模块的基础之上构建的,不同之处 在于分层递接结构中的模块是功能模块,而包容体系结构中的模块是行为模块。但即使是行为模 块也是由一些功能模块组合实现的,因此模块实际上是所有体系结构的基础,不同之处就在于如 何组织这些模块,使其能够发挥其在整个智能机器人体系中的作用。本项目在借鉴包容体系结构 的基础上,结合多智能体技术,提出了一种基于模块协同的体系结构。在此体系结构中,模块既 可以是功能模块,也可以是行为模块,对模块的唯一要求是其必须能够主动的对输入的信号进行 处理,并产生响应(类似智能体,即 Agent)。体系结构如下图所示

2、移动机器人控制软件框架的设计
框架的设计一方面考虑了对体系结构的支持,另一方面又打算尽量和体系结构保持一定的独立 性,所以对框架做了高度的抽象,整体框架被抽象成了三个部分,即 Platform 平台、Module 模块和 Wire 通讯连线等。整个框架的结构(部分)如下图所示。

其中 Platform 类负责模块的加载,对模块的配置以及模块之间通讯的建立,Platform 对象是 整个使用程序的入口(有 Main 函数)和出口,并不考虑体系结构和机器人功能的实现,这些都 是模块和配置实现的。Module 定义了模块应该遵守的接口,和模块要实现的基本功能。模块和 Applet 类似,有初始化 init,开始 start,停止 Stop 和退出 Destroy 等行为,该接口没有定 义模块应该实现哪些功能,这些是模块的具体实现应该考虑的,模块里有两个很重要的变量,分 别是该模块的 ModuleDoc 和端口 Ports。ModuleDoc 描述了该模块的具体配置信息,例如和 硬件通讯时使用的串口名称,或者是网络地址,IP 地址,也可能是其他需要传递给具体模块的 参数,其中最重要的是模块的名称,用来在系统中唯一的标识模块用的,不能重复;其次是该模 块的实现类,供 Platform 在加载该模块的时候实例化所需。端口 Port 是模块必须具备的,一 个模块至少有一个端口,端口分为输入端口和输出端口,是模块之间通讯的唯一途径。端口也是 一个接口,符合该接口的任意实现类都可以作为端口来供模块使用,目前端口是硬编码在模块的 代码中的,因此一旦模块编码完毕,使用何种端口也就确定不可更改了。在后续研究中可以考虑 把端口和模块的实现分离开来,在系统运行时动态组合,实现更灵活的配置。下图是模块的一个 典型配置。模块实现的基本操作是根据输入的数据进行处理后,从输出端口把数据输送出去,当

然数据处理的过程可能很复杂,例如可能是图像识别,也可能是障碍物检测,有些还需要进行网 络数据库等操作等;有些模块没有输入端口,例如一些人机接口模块(操作面板);也有些模块 没有输出端口,例如图形化显示模块等。
整个软件的功能是由模块决定的,确切的说是由模块之间的协作实现的,模块之间的协作,则是 利用端口之间的通讯实现的。在本系统中,端口之间通过虚拟的“线”连接起来的,在系统中用 WireConfig 来表示,线从输出端口引出,可以连接至多个不同的输入端口;不同线之间可能会 存在着交点,根据不同的方式,交点有不同的类型,如下图所示。在输入端口的交点称之为抑制 连接,即抑制线输入来的信号可以取代原线上的信号输送到输入端口里去,在输出端口的交点称 之为禁止连接,即如果禁止信号线上有数据,则会禁止原信号线上的信号输出。这些概念均取自 Brooks 的包容体系结构。在 Brooks 的包容体系结构中,模块之间的通讯是异步的,分层的。 在同一功能层内模块的数据是直接发送的;在不同层之间数据则是通过抑制(Inhibit)和禁止 (Suppress)进行传递的。这种通讯机制最大的优点就是鲁棒性。即上层模块工作时,可以利 用抑制取代原有底层模块的输出;当上层模块失效时,抑制功能丧失,下层模块的输出重新有效, 从而避免因模块失效带来的整体功能失效,保证了机器人的基本安全。在我们设计的框架中,同 样采用了抑制和禁止这两个通讯功能,不同的是没有分层,而是根据设计者的意图来确定哪些通 讯直接相连,哪些通讯之间要互相抑制和禁止。通过这三种通讯方式实现模块之间的协作,实现 各种自主智能功能。

其实在一般使用当中,模块之间基本上都是直接线连,出现交叉的情况很少,这种情况的设计 主要是为了有软件鲁棒性考虑的使用设计的。例如模块 A、B 都连接到模块 C 上,而 B 优先级 大于 A,则 B-A 连接属于抑制连接,当 B 有信号的时候,会取代 A 的信号输入到 C 中,当 B 没有信号的时候(例如出现了故障,或者没有输出),A 的数据仍然可以输入到 C 中。
2.3 框架的实现
前面分析的主要是思想,这部分讲述的是实现方法。由于本人一直在用 Java 语言做开发,所以 这里也选用 Java 语言作为该框架的实现语言,但原则上讲用 C 语言来实现更好,但 C 语言面 向对象特性不好,而且编程的难度大,更不能跨平台,而我的项目所剩时间无多,所以最终开始 确定用 Java 开发。事实证明 Java 开发的效果也还不错(在实验过程出现了响应缓慢的症状, 其原因在于导航的算法,而非语言的问题),而且更可以把某些实时性要求比较高的模块用 JNI 来实现,速度就更有保障了 。
(1)框架的结构
框架由一个平台对象 Platform 和一个系统配置文件构成,这两者之间的关系,打个比方,配置 文件好比一个设计蓝图,描述了整个框架里应该加载多少模块,每个模块的加载信息,以及模块 之间的通讯线路等;而 Platform 对象就像一个装配车间,按照图纸的要求,把模块加载进来, 然后建立模块之间的通讯线路。其中,Platform 的编程比较容易,因为 Java 虚拟机能够实现 类的动态加载,而且读取 XML 文档的能力也很强。

实现模块的动态加载代码如下(有删改):
/** * loading module from xml configuration * @param md - ModuleDoc, the robot configuration file * @throws Exception - Something wrong, check the message * @return the Module Object that has just been generated */ protected Module loadModule(ModuleDoc md) throws Exception { String cn = md.getClassName(); //读取 XML 文件中的类名称 if(cn == null || cn.length() == 0) {
throw new Exception("Wrong Configuration for Module"); } Object m = Class.forName(cn).newInstance(); //创建模块对象 if(m instanceof Module) {
return (Module) m; }else{
throw new Exception("Failed loading module: " + cn); } }
加载模块的启动如下(有删改)
/** * booting the platform, * install all the modules and make the system working. * * @throws Exception * @see #c onfig(String) */ public void booting() throws Exception { Iterator iterator = confdoc.getModuleDocs(); while(iterator.hasNext()) {
//Loading modules... ModuleDoc md = (ModuleDoc) iterator.next(); Module m = loadModule(md);

//initialize the modules m.init(md); //put it in the module hash module_hash.put(m.getName(), m); } //start the modules iterator = module_hash.values().iterator(); while(iterator.hasNext()) { Module m = (Module) iterator.next(); m.start(); logit("Module " + m.getName() + " has been started."); } }
模块之间的通讯信息则存储在对象 WireConfig 的集合中,该类存储了从源模块某端口出发的通
讯线路,描述了该线路如何和其他模块的什么端口进行连接,这样在模块发送数据时,可以动态
的到该集合中搜索和自己关联的通讯线路,并根据该线路的描述,寻找到可以写入的模块和端口。
这些工作都是由端口 Port 完成的,模块本身无需干预。
输出端口发送数据的实现代码:
public void setValue(Module module, Object v, long duration) {
//{{{1 /*judge if output is disabled*/ if(i_flag && ((System.currentTimeMillis() - timestamp)return; //output is disabled } /* Looking for the target module and port */ Platform platform = Platform.getPlatform(); if(wc == null) {
wc = platform.getWireConfig(module.getName()+"."+name);
if(wc == null) return;
}

List list = wc.getWireTargets(); for(int i=0; iWireConfig.WireTarget wt = (WireConfig.WireTarget) list.get(i); Module m = platform.getModule(wt.getTModule()); if(WireConfig.WireTarget.WTT_DIRECT.equals(wt.getType())) {
//direct connect m.getPort(wt.getTPort()).setValue(module, v, 1000); } else if(WireConfig.WireTarget.WTT_SUPPRESS.equals(wt.getType())) { //to lower layer m.getPort(wt.getTPort()).setValue(module, v, wt.getDuration()); }else { m.getPort(wt.getTPort()).setValue(module, v, wt.getDuration()); } } //}}}1 }
输入端口接收数据的代码如下:
public void setValue(Module m, Object v, long duration) {
if(m.getLayer() >= update_level || (System.currentTimeMillis() update_timestamp) > valid_duration)
{ //do not care about the valide duration value = v; valid_duration = duration; update_timestamp = System.currentTimeMillis(); bReady = true; if(listener != null) listener.valueUpdated();
} }

至此,完成了模块的加载和通讯线路的建立。 (2)灵活的配置文件 本系统的一个有点就在于其灵活的配置文件,通过使用 XML 文档描述系统框架,可以在不修改 任何代码的情况下通过修改 XML 配置文件就可以实现不同模块的加载以及模块之间通讯方式的 改变,从而可以动态的修改使用的类型,这个在后面的例子中可以看到。首先介绍配置文件的格 式如下:
该图描述了一个非常简单的配置文件,只包括了两个模块 Sick 和 Monitor,一条线路连接了 SIck 模块的 sick 端口到 Monitor 模块的 monitor 端口。这个使用非常简单,就是把激光测距 LMS 测得的数据图形化的显示在屏幕上而已。可见,配置文件包括了两部分,一部分描述了模 块的信息,另一部分描述了通讯线路的信息。目前该模块需要手工进行编辑,期望能够在下一个 版本中做一个可视化的图形编辑界面,从而实现移动机器人图形化编程。 (3)模块间通讯 模块间是通过端口进行通讯的,端口只是定义了一些接口,凡是实现该接口的对象都可以做端口, 实际上这也是设计的初衷,期望通过采用不同的端口实现类来实现不同的通讯能力。例如目前我 们实现的简单端口 SimpleInPort 和 SimpleOutPort 就仅仅能够实现同一程序内的数据通讯, 可以想象也可以设计可以通过以太网络的通讯端口!然而这部分工作我们还没有做,原因是涉及

到网络间的远程调用,实现起来比较复杂,就暂时先放放了。目前网络通讯是通过相应模块实现 的。
在目前的实现中,通讯是通过传递对象的引用实现的,这也就意味着无法实行跨系统跨使用,这 是这个框架的缺点。优点是这样效率较高,而且可以通过一些折衷手段实现所谓的跨进程跨平台。 通讯也分两种,同步和异步。本系统也实现了这两种通讯方式。
3、两个例子
3.1 移动机器人的远程控制
如前所述,在我们搭建的移动机器人的运动平台的基础上,通过所提供的软件模块,仅仅修改 其配置用的 XML 文件就可以实现具有不同功能的智能移动机器人。在本节中,我们使用该移动 平台,实现了一个可以通过 Internet 进行控制的移动机器人远程控制系统。该系统包括具有局 部智能的移动平台,远程操作界面以及客户端和服务器的通讯机制。所有的硬件系统都是基于我 们所研制的移动机器人平台,所有的软件都是按照上面的控制软件框架和模块结构设计实现的。 通过该节的研究,一方面我们验证了前述软件平台的可靠性,另一方面我们开发了许多用于 Internet 远程控制、数据采集用的通讯模块。
(1)远程控制系统的软硬件配置
遥操作移动机器人系统分两个部分,一部分是移动机器人本体,另一部分是远程控制计算机和控 制界面。这两部分通过 Internet 网络进行通讯和协调。机器人本体的硬件配置包括超声模块, 激光雷达模块,无线通讯模块,视觉模块、蓄电池电源模块、电机驱动单元以及控制用上位机。
移动机器人的远程控制是在实验室局域网络内的另外一台 PC 机上进行的,该 PC 机通过网线接 入到实验室网络内。该 PC 机上运行着和移动机器人上位 PC 机相同的软件,通过 TCP/IP 协议 进行通讯。移动机器人的软件模块包括超声数据模块,防碰撞模块,避障模块,激光雷达数据模 块,激光雷达障碍物检测模块,图像数据模块,网络通讯模块、电机驱动模块等,这些模块相互 联接组成网络,实现了局部的自主智能(主要指防碰撞和避障)、向遥操作端发送传感器数据以 及接收遥操作端发送过来的控制命令等功能。该软件的软件结构如下图所示。

远程控制计算机的软件结构如下图所示:
由于激光雷达能够基本上代替超声波实现障碍物的检测和避障等功能,因此在试验时我们以激光 雷达的数据代替超声波的数据用于避障和防碰撞以尽量减少系统中加载的模块数量。经过修改后 的机器人和远程控制端的配置文件内容如下 2 图:

(2) 通讯模块的设计和控制原理
在远程控制中,通讯模块的设计非常重要,一方面所有的数据都要通过通讯模块在客户端和服务 器之间传递,另一方面在网络控制中的时延会对控制系统的稳定性造成一定的影响,应该尽量予 以消除。为了提高远程控制系统的使用性,我们在该系统中采用了 TCP/IP 协议,该协议是 Internet 上的通用协议,使用该协议,理论上就可以通过任何接入 Internet 的计算机来控制移 动机器人。为了进一步提高它的开放性,我们采用了 HTTP 协议,利用超文本来传递数据和控

制命令。使用 HTTP 协议的另一优点是目前几乎所有的网关代理都支持 HTTP 代理,这样使得 该系统的使用范围更广。
a)客户机/服务器模式的通讯模块设计 为了简化网络通讯的实现,增加代码的重用性,在本系统中我们采用了系统架构中模块的思想, 构建了网络数据通讯模块。该模块分客户端和服务器两个模块,遵循客户端/服务器架构,可以 根据需要配合使用。通讯模块的工作流程如上图所示。该模块是一个通用的网络数据传输模块, 使用的时候只需要在其模块的 Data 端口上写入要发送的对象数据,或者从 Data 端口读入欲获 得的对象(下图)。在使用该模块的时候需要在配置文件中配置好该模块所使用的网络端口号, 或者欲连接的网络 IP 地址和端口号等参数。

b)基于 XML 技术的数据描述和命令封装
在上一部分中,对象能够通过网络通讯模块在不同的主机之间进行传送,这里的对象主要是从传 感器获得的数据对象,或是从客户端发送的控制命令。这些对象或者命令都必须要转化成网络能 够传递的文本或者字节流才能够通过网络进行传递。由于我们所使用的是 HTTP(超文本传输协 议),这种协议最适合文本数据的传输;此外,XML 具有良好的数据表达能力和数据标准化, 以及其开放型等优点,因此在数据传输的时候我们使用 XML 技术来实现对对象的文本序列化。
序列化是面向对象编程的一种技术,指的是对象能够在需要永久保存或者传输的时候转化成相应 的数据,之后可以从该数据中恢复出该对象。对于一个对象而言,其方法是所有对象都拥有的, 因此只有其属性代表的数据才能够确定对象的唯一性,所谓的序列化实质上就是研究对象的属性 数据的保存和读取的一种方法。XML 具有很强的数据表达能力,能够轻而易举的描述任何对象 的数据,因而可以用来做为对象的序列化媒介。
利用 XML 实现对象序列化的方法很简单,我们只需要在所需要进行序列化的对象里添加一个方 法 toXMLDoc(),并在该方法中根据对象该时刻数据生成一个 XML 文档即可。关于如何实现 XML 文档的生成可以参考有关 XML 编程的书籍。从 XML 文档中恢复对象包括两个步骤:首先 根据 XML 文档的描述创建所需要的对象,然后利用该对象的 fromXMLDoc()方法恢复数据。
例如 LMS200 激光雷达系统扫描得到的数据对象经过序列化后可以得到的 XML 文本为:
35-34-35-56-78-98-120-......-380


该文本描述了激光雷达一次扫描后获得的全部前方 0~180 度范围内测量的距离信息。该信息 在程序内被封装到了一个对象中(RangeData),该对象序列化后得到该 XML 文本。同样, 通过生成一个空的 RangeData 对象,然后利用该 XML 文本即可重新恢复出该对象。
c) 局部自主智能的实现
由于我们在移动机器人上安装了激光雷达系统和超声传感器阵列,并对相应的避障和导航算法等 单元技术进行了研究,因此该移动机器人已经具备了一定的智能(例如能够判断障碍物的距离实 现急停,局部避障等功能)。但是由于人工智能的发展现状以及机器人所处环境的复杂性,完全 依赖机器的智能在现实环境中自主行走就目前而言还没有可靠的技术保证。因此在实际使用中还 不能避免人工的干预,这就要求我们从人机结合的角度来看待这个问题,尽量能够开发出人机协 同控制移动机器人的环境。
在我们开发的软件框架内,所有模块的输出最终都通过影响电机的驱动模块来体现出来(例如防 碰撞,局部避障等),而人(远程操作者)对机器人的控制同样也是通过影响电机的驱动模块而 实现的,这和所有模块的工作原理是一样的。因此,通过对每个行为模块指定不同的优先级别, 就可以在一定程度上实现对移动机器人行为的人机协同控制。在本项目中,我们把远程命令的处 理模块赋予较高的等级(高于避障模块,但是低于防碰撞模块,这样可以解决操作过程中的误操 作导致的碰撞过程),当有远程控制命令过来的时候,机器人由远程控制人员进行操纵;当远程 命令失效(例如 1 秒内没有新的命令进入)后,本地避障、漫游等模块的控制命令就可以对机 器人进行控制,在控制的同时,用户仍然可以通过远程计算机进行对机器人的运行状态进行监视 并随时切入控制。下图显示的就是机器人在遥操作过程中客户端显示的激光雷达数据(可视化) 和机器人运行状态数据以及控制命令输入窗口。

3.2 基于激光雷达的移动机器人避障漫游
(1)避障算法
避障算法不是这里研究的重点,所以简单提一些。激光测距雷达相对于超声波具有很多优越之处, 它的测量精度高,稳定性好,方向性强,受到的干扰小等等,因此利用激光雷达进行避障要比超 声波可靠的多。在本项目中我们使用了较常用的虚拟力算法(VFF),利用雷达获得的数据实现 机器人的自主避障和漫游。
VFF 方法是在势场法(Potential field method,PFM)的基础上建立起来的。该方法认为,障 碍物会对机器人施加一定虚拟的排斥力(Virtual repulsive force),目标对机器人也会产生一定 的吸引力,这两个力的合力决定机器人的速度和方向。漫游机器人的软件配置如下图所示。其中 比较重要的几个模块包括防碰撞模块(collide),虚拟力计算模块(force),避障模块(Runaway) 等。防碰撞模块有一个参数 threashold,用来定义危险距离,当障碍物和机器人的距离低于此 值则会产生急停的命令;虚拟力计算模块有两个参数 threashold_near 和 threashold_far, 分别用来定义两个边界值。虚拟力的计算函数是一个分段函数,当距离大于 threashold_far 的 时候该值被忽略,即计算得到的力值为 0,当距离小于 threashold_near 的时候,计算得到的 力被平方,即增大近距离障碍物在力场中的分量。Runaway 模块则根据计算出来的虚拟力的大 小,并参考目标点的位置来生成下一步运动的方向和速度等命令。


移动机器人控制软件的设计与实现

移动机器人控制软件的设计和实现
作者:李晓明 文章来源:https://www.sodocs.net/doc/0811764443.html, 更新时间:2006-8-9 17:25:55 点击数: 2742
简介:现在做一个移动机器人是很容易的一件事,车体自己可以加工,或买现成的;避障可以用超声阵列;
导航可以用激光测距 LMS;定位可以用电子地图加 LMS 加陀螺仪;然而控制软件却只能自己编写。本文 或许可以给你一些启示。
相关链接 基于 VIA 平台的移动机器人
移动机器人的使用现在非常多,做一个移动机器人似乎也很容易,车体自己可以加工,也可以去 买现成的;避障可以用超声阵列;导航可以用激光测距 LMS;定位可以用电子地图加 LMS 加陀 螺仪;驱动可以用各种电机及配套驱动器或者自己做;通讯可以去买现成的无线通讯模块,可以 是数字的,也有模拟的;大范围定位可以用 GPS 模块,也是现成的;至于什么红外,蓝牙,甚 至计算机视觉都可以去市场上买,但是(然而)为什么做一个移动机器人还是这么难呢?尤其是 对一个新手而言。一个老外说过,硬件是现成的,软件算法杂志里有的是,很多可以在网上当, 但即使是一个博士生也要花费很长的时间完成一个实际可用的移动机器人。为什么?因为机器人 使用的困难在使用软件的设计上。前面那个老外也说过,现在什么都可以在网上当,唯独使用程 序不能。有过自己写移动机器人程序的人可能会理解这段话,当然也仅仅是可能,因为不排除有 很多机器人大拿一上来就可以写出很棒的移动机器人软件。
移动机器人的控制软件开发是和硬件紧密相关的,甚至和机器人的体系结构也密切相关,同样是 移动机器人,有的是用 PC 控制的,有的是用多个嵌入式系统实现的,有的则是多机器人协同工 作的,操作系统有人会用 DOS,有人会用 Windows,有人会用 Linux,有人会用 Embeded Operation System。硬件平台有的用 x86,有的用 ARM 芯片,有的会用 DSP,通讯里面会 有串口,TCP/IP 网络,无线以太网,红外,蓝牙等,甚至驱动机构也不一样,有的是用腿,有

全向移动机器人的运动控制

全向移动机器人的运动控制 作者:Xiang Li, Andreas Zell 关键词:移动机器人和自主系统,系统辨识,执行器饱和,路径跟踪控制。 摘要:本文主要关注全向移动机器人的运动控制问题。一种基于逆运动学的新的控制方法提出了输入输出线性化模型。对执行器饱和及驱动器动力学在机器人性能体现方面有重要影响,该控制法考虑到了以上两个方面并保证闭环控制系统的稳定性。这种控制算法常用于真实世界的中型组足球机器人全方位的性能体现。

1.介绍 最近,全方位轮式机器人已在移动机器人应用方面受到关注,因为全方位机器人“有一个满流动的平面,这意味着他们在每一个瞬间都可以移动,并且在任何方向都没有任何调整”。不同于非完整的机器人,例如轮式机器人,在执行之前具有旋转任何所需的翻译速度,全方位机器人具有较高的机动性并被广泛应用在动态环境下的应用,例如在中型的一年一度的足球比赛。 大多数移动机器人的运动控制方法是基于机器人的动态模型或机器人的运动学模型。动态模型直接描述力量施加于车轮和机器人运动之间的关系,以外加电压的每个轮作为输入、以机器人运动的线速度和角加速度作为输出。但动态变化所造成的变化的机器人惯性矩和机械组件的扰动使控制器设计变得较为复杂。假设没有打滑车轮发生时,传感器高精度和地面足够平坦,由于结构的简单,因而运动模型将被广泛应用于机器人的设计行为中。作为输入运动学模型是机器人车轮速度,输出机器人的线速度和角速度,机器人的执行器的动力都快足以忽略,这意味着所需的轮速度可以立即达到。然而,该驱动器的动态极限,甚至降低了机器人在真实的情况中的表现。 另一个重要方面是机器人控制的实践:执行器饱和。因机器人轮子的指挥电机速度是有饱和的界限的,执行器饱和能影响到机器人的性能,甚至使机器人运动变得不稳定。 本文提出了一个全方位的机器人的一种运动控制方法,这种控制方法是基于逆输入输出的线性的运动学模型。它需要不仅考虑到驱动器动力学的识别,但也需要考虑到执行器饱和控制器的设计,并保证闭环控制系统系统稳定性。 本文其余的部分:在2节介绍了运动学模型的一个全方位的中型足球机器人;在3节介绍了路径跟踪与定位跟踪问题基于逆运动学模型的输入输出线性化的解决方法,其中包括执行器饱和分析;4部分介绍了动态识别器及其在控制性能方面的影响;最后的实验结果和结论讨论部分分别在5和6。

移动机器人的导航技术总结

移动机器人的关键技术分为以下三种: (1)导航技术 导航技术是移动机器人的一项核心技术之一[3,4]"它是指移动机器人通过传感器感知环境信息和自身状态,实现在有障碍的环境中面向目标的自主运动"目前,移动机器人主要的导航方式包括:磁导航,惯性导航,视觉导航等"其中,视觉导航15一7]通过摄像头对障碍物和路标信息拍摄,获取图像信息,然后对图像信息进行探测和识别实现导航"它具有信号探测范围广,获取信息完整等优点,是移动机器人导航的一个主要发展方向,而基于非结构化环境视觉导航是移动机器人导航的研究重点。 (2)多传感器信息融合技术多传感器信息融合技术是移动机器人的关键技术之一,其研究始于20世纪80年代18,9]"信息融合是指将多个传感器所提供的环境信息进行集成处理,形成对外部环境的统一表示"它融合了信息的互补性,信息的冗余性,信息的实时性和信息的低成本性"因而能比较完整地,精确地反映环境特征,从而做出正确的判断和决策,保证了机器人系统快速性,准确性和稳定性"目前移动机器人的多传感器融合技术的研究方法主要有:加权平均法,卡尔曼滤波,贝叶斯估计,D-S证据理论推理,产生规则,模糊逻辑,人工神经网络等"例如文献[10]介绍了名为Xavier的机器人,在机器人上装有多种传感器,如激光探测器!声纳、车轮编码器和彩色摄像机等,该机器人具有很高的自主导航能力。 (3)机器人控制器作为机器人的核心部分,机器人控制器是影响机器人性能的关键部分之一"目前,国内外机器人小车的控制系统的核心处理器,己经由MCS-51、80C196等8位、16位微控制器为主,逐渐演变为DSP、高性能32位微控制器为核心构成"由于模块化系统具有良好的前景,开发具有开放式结构的模块化、标准化机器人控制器也成为当前机器人控制器的一个研究热点"近几年,日本!美国和欧洲一些国家都在开发具有开放式结构的机器人控制器,如日本安川公司基于PC开发的具有开放式结构!网络功能的机器人控制器"我国863计划智能机器人主题也已对这方面的研究立项 视觉导航技术分类 机器人视觉被认为是机器人重要的感觉能力,机器人视觉系统正如人的眼睛一样,是机器人感知局部环境的重要“器官”,同时依此感知的环境信息实现对机器人的导航。机器人视觉信息主要指二维彩色CCD摄像机信息,在有些系统中还包括三维激光雷达采集的信息。视觉信息能否正确、实时地处理直接关系到机器人行驶速度、路径跟踪以及对障碍物的避碰,对系统的实时性和鲁棒性具有决定性的作用。视觉信息处理技术是移动机器人研究中最为关键的技术之一。

移动机器人控制系统的发展方向

移动机器人控制系统的发展方向 摘要随着计算机技术、传感器技术的不断发展,对于机器人领域的发展具有一定的促进作用。而由于移动机器人具有能够自治与移动的特征,在机器人领域处于核心地位。在复杂、危险的环境中,移动机器人所发挥的作用是有目共睹的。对此,对当前国内外较为常见的移动机器人控制系统进行剖析,并在此基础上论述了该领域的未来发展方向。 【关键词】移动机器人控制系统发展方向 移动机器人属于能够自动执行工作任务的机器,不但能够按照事先编译的程序运行,同时人类还可对其指挥。当前主要被运用在生产业、建筑业以及航空航天领域,而该领域的发展情况直接关系到国家综合实力的提升速度,对此加强对移动机器人控制系统的发展情况,以及未来发展方向的研究势在必行。 1 国内外常见的移动机器人控制系统 相对于国内在移动机器人的研究状况,能够看出国外在该领域的研究是较早的,其中具有代表性的有Saphira、TeamBots以及ISR。而在国内方面,代表性的有OSMOR、ZJMR以及Agent。下面,便对较为常用的控制系统进行介绍:

1.1.1 Saphira控制系统 Saphira控制系统是移动机器人领域中最早的系统,是有SRI国际人工智能中心在1990年所研发的,此系统是基于本地感知空间的共享内存与黑板,来实现协调与通信进程。由于Saphira是采用C语言来进行开发的,同时支持Windows 与Unix系统,因此具有文档资料相对完整、系统资源占用少等特征。但是需注意的是,由于Saphira系统在定位方面无法达到当前的实际需求,因此运用是相对较少的。 1.1.2 TeamBots控制系统 本系统是基于Java包与Java应用程序而构建的,经过20余年的发展后,此系统截止到目前已经被运用到多种类型的机器人平台当中。除此之外,在适用的操作系统方面,其中具有代表性的有Windows、MacOS以及Linux等,因此其运用的范围是更加广泛的。 1.1.3 ISR控制系统 ISR是基于行为的控制模式,其中是有任务执行层、反映层以及推理层所构成的,是有CAS研究中心所研发的。其中,任务执行层的作用是执行推理层所传输的指令;反映层其中包含资源、控制器以及行为;推理层的功能是根据用户的指令来对决策进行制定。此外,ISR控制系统仅能够在Linux中进行操作,并且没有公开化使用。

智能移动机器人的现状与发展论文 2

题目移动机器人的发展现状及趋势授课老师唐延柯 学生姓名 学号 专业电子信息工程 教学单位德州学院 完成时间 2013年11月16日

一、摘要 (2) 二、引言 (2) 三、智能机器人的构成 (3) 3.1硬件构成 (3) 3.2 软件构成 (3) 四、国内外在该领域的发展现状综述 (4) 五、智能移动机器人的应用及分类 (5) 5.1 智能机器人的应用 (5) 5.2 智能机器人分类 (7) 六、展望与讨论 (9) 6.1智能机器人的发展趋势展望 (9) 6.2 建议及设想 (10) 七、结论 (10) 八、参考文献 (11)

智能机器人的现状及其发展趋势 一、摘要 本文扼要地介绍了智能机器人技术的发展现状,以及世界各国智能机器人的发展水平,然后介绍了智能机器人的分类,从几个典型的方面介绍了智能机器人在各行各业的广泛应用,讨论了智能机器人的发展趋势以及对未来技术的展望,最后提出了自己的建议和设想,分析我国在智能机器人方面发展并提出期望。 关键词:智能机器人;发展现状;应用;趋势 The status and trends of intellectual robot Abstract:This paper briefly discusses the development, status of intellectual robot, development of intellectual robot in many countries. And then it presents the categories of intellectual robot, talks about the extensive applications in all works of life from several typical aspects and trends of intellectual robot. After that, it puts forward prospects for future technology, suggestion and a tentative idea of myself, and analyses the development of intellectual robot in China. Finally, it raises expectations of intellectual robot in China. Key words: intellectual robot; development status; application; trend 二、引言 机器人是一种可编程和多功能的,用来搬运材料、零件、工具的操作机,或是为了执行不同的任务而具有可改变和可编程动作的专门系统。智能机器人则是一个在感知- 思维- 效应方面全面模拟人的机器系统,外形不一定像人。它是人工智能技术的综合试验场,可以全面地考察人工智能各个领域的技术,研究它们相互之间的关系。还可以在有害环境中代替人从事危险工作、上天下海、战场作业等方面大显身手。一部智能机器人应该具备三方面的能力:感知环境的能力、执行某种任务而对环境施加影响的能力和把感知与行动联系起来的能力。智能机器人与工业机器人的根本区别在于,智能机器人具有感知功能与识别、判断及规划功能[1]。 随着智能机器人的应用领域的扩大,人们期望智能机器人在更多领域为人类服务,代替人类完成更复杂的工作。然而,智能机器人所处的环境往往是未知

智能移动机器人控制与感知系统

摘要 随着机器人的应用范围的不断拓宽,机器人所面临的工作环境也越来越复杂,往往是未知的、动态的、非结构化的,所以,要在这种环境下实时地完成各种任务,就对机器人的控制提出了新的挑战。 本文的主要工作和创新点包括:对移动机器人的硬件模块进行了分析。详细研究了移动机器人的感知系统,包括超声波传感器和视觉传感器两大模块。移动机器人采用了两款超声波传感器组合使用,用于探测更为全面的障碍物特征信息。通过对基于行为控制技术的论述,设计了一种用于移动机器人完成多目标任务的基于行为控制系统。另外机器人采用了 Sony EVI-D31 PTZ 摄像头,成功地实现了计算机串口控制,大大的扩展了机器人的视觉功能,可以更多的获取外界信息。 关键词:移动机器人、硬件模块、行为控制。

Abstract With the development of applied range, the work condition faced by robot is more complex, which always is unknown, dynamic and unstructured. So the control of robot t o fulfill a mission in real time under this environment has a new challenge. The ma in work and innovative ideas include. The structure of RIRA-Mobile robot is introduced. Furthermore, the driving model and power model are analyzed. The perception system of RIRA-Mobile robot is demonstrated particularly, which includes two models of vision and ultrasonic sensor. RIRA-Mobile robot uses two type s ultrasonic sensors so as to detect the general obstacles’ information. In addition, Sony EVI-D31 PTZ camera is also used, which can de controlled by computer serials that the vision function of robot is extended greatly to get more environment information. Through exploring the behavior-based control technology, a behavior-based control system has been designed for mobile robot fulfilling multiple objective missions. KEYWORDS:mobile robot; hardware modules; behavior control.

多移动机器人编队控制

基于Multi-Agent的多机器人编队控制 摘要:多移动机器人协调是当前机器人技术的一个重要发展方向。多移动机器人之间的协调与 合作将大大提高机器人行为的智能化程度,完成由单个机器人难以完成的更加复杂的作业。多 移动机器人协调技术的研究对提高机器人的智能化水平及加快机器人的实用化进程具有重要的 理论研究意义和实用价值。本文结合多智能体技术对多机器人编队控制进行了研究,同时根据 具体的多机器人系统,进行了仿真实验。验证了多智能体技术在机器人编队控制系统中的应用,完成了小规模的编队控制。 关键词:多智能体;多机器人;编队控制;协调控制;模糊控制 Multi-robot Formation Control Based on Multi - Agent Abstract :The problem of multi-robot cooperation and coordination is central to mobile robotics. Cooperation and coordination will improve the intelligent performance of robots and can complete lots of impossible missions for single robot.The research on multi-robot cooperation and coordination is of great academic and applied significance. The multi-robot formation is developed combined with the multi-agent technology in this dissertation, and the simulation is done with the multi-robot system. The application of multi-agent is verified in the multi-robot formation control through a small system adopt the fomation control. Key words: Multi-agent ;Multi-robot ;Formation control;Coordination control;Fuzzy control 1. 国内外机器人系统发展现状 自80年代末以来,基于多智能体系统理论研究多机器人协作受到了普遍的关注,从军事领域到工业与民用领域,从星际探险到海底考察,从比赛到教学,都取得了不同程度的进步。近年来,在IEEE R&A,IROS等著名的国际机器人学术会议上,几乎每次会议都有多智能体协作机器人系统的专题。一些机器人学术刊物出版了有关多智能体机器人的研究专辑。一些研究项目,如ACTRESS,CEBOT,GOFER,SWARM等,已进行了多年[1]。 目前,国内关于群体机器人系统的研究刚刚起步,基本上还处于基础技术的研究阶段,这方面的研究成果报道比较少。中科院沈阳自动化所机器人开放研究实验室是国内研究多机器人技术较早也较全面的科研单位。 (1)CEBOT(Cellular Robotic System) CEBOT是一种自重构机器人系统(Self-Reconfigurable Robotic System),它的研究是受生物细胞结构的启发,将系统中众多的具有相同和不同功能的机器人视为细胞元,这些细胞元可以移动,寻找和组合。 根据任务或环境的变化,细胞元机器人可以自组织成器官化机器人,多个器官化机器人可以进一步自组织,形成更加复杂的机器人系统。细胞结构机器人系统强调是单元体的组合如何根据任务和环境的要求动态重构。因此,系统具有多变的构型,可以具有学习和适应的系统智能(Group Intelligence),并具有分布式的体系结构[3]。 (2)ALLANCE/L-ALLANCE系统

移动机器人控制系统设计

? 197 ? ELECTRONICS WORLD?技术交流 移动机器人控制系统设计 广东工业大学 侯晓磊 随着移动机器人在人们社会生活中的地位不断提高,设计一种 可靠、稳定的机器人控制系统越发的变得重要起来,以NI公司的MyRIO控制器以其安全可靠、编程开发简单而脱颖而出。本文基于上述控制器、L298N电机驱动芯片Labview设计一种移动机器人控制软硬件系统系统,经验证,该系统运行稳定、可靠、高效。 1.前言 新一轮科技革命引发新一轮产业革命。“互联网+制造”构建工业4.0,智能制造成为我国由制造大国向制造强国转变的关键一步,移动机器人作为智能制造中的一个组成部分,作用越发的变得举足轻重。本文给出一种以MyRIO+L298N+Labivew的移动机器人控制系统。 2.IN MyRIO控制器 NI myRIO是NI最新设计的嵌入式系统设计平台。NI myRIO中内含双核ARM Cortex-A9,实时性高,并且还可以便捷定制FPGA I/ O,给开发设计人员提供更好的设计复杂系统的平台。 NI myRIO作为可重配置控制器具有以下重要特点: 易于上手使用:引导性安装和启动界面可使开发人员更快地熟悉操作,协助开发人员快速了解工程概念,完成设计任务。编程设计简单,利用实时应用、内置WiFi等功能,开发人员可以实现远程部署应用,“无线”操控。 板载资源众多:有丰富的数字I/O接口,提供SPI串行外设接口、PWM脉宽调制输出端口、正交编码器输入端口、UART异步收发器端口和I2C总线接口、多个单端模拟输入、差分模拟输入和带参考的模拟输入等可供选择的资源。 另外,NI MyRIO还提供可靠性能较好的控制器保护电路,防止由于意外操作造成控制器不可恢复性损坏,总之,NI MyRIO为开发人员提供了一个编程简易,设计电路方便,不用刻意担心意外操作而影响控制器使用的平台。 3.L298N电机控制芯片 L298N是一种用来驱动电机的集成电路,可以较稳定的输出平稳电流和较强的功率。工作均电流为2A,最高可达4A,最高输出电压为50V,能够带动带有感性元件的负载。控制器可以直接通过输入输出口与电机驱动芯片联接,从而方便控制驱动芯片的输出。如将芯片驱动直流电机时,可以直接与步进电机相联接,通过调节控制器输出实现步进电机的的正反转功能当控制直流电机时,可以通过调节控制芯片的电压信号的极性,PWM波的占空比,从而实现直流电机转速和转向的调节。4.系统硬件部分设计 系统采用MyRIO整体框架,外围增设电机驱动电路、避障驱动电路、里程计电路、液晶显示电路、陀螺仪电路。通过MyRIO主控制发送控制信号驱动移动机器人运动,实时通过外围传感器获取位置信息反馈给主控制 器,然后控制器通过闭环系统调节当前位置以保证对目标位置的追踪。 图1 5.系统软件部分设计 系统软件部分采用经典控制理论的闭环控制系统,将电机、主控制器和外设传感器构成闭环系统,通过调节闭环统的参数,来使 移动机器人以较小偏差追踪按照预定轨迹。 图2 6.结束语 本文介绍了基于NI MyRIO控制器设计移动机器人控制系统,通过仿真和实物测试,能较好的完成对任务的追踪踪。 参考:From Student to Engineer:Preparing Future Innova-tors With the NI LabVIEW RIO Architecture https://www.sodocs.net/doc/0811764443.html,.2014-04-01;王曙光,袁立行,赵勇.机器人原理与设计.人民邮电出版社,2013 。

智能移动机器人

智能移动机器人 近年来,随着机器人研究的不断发展,机器人技术开始源源不断地向人类活动的各个领域渗透,结合这些领域的应用特点,各种各样的具有不同功能的机器人被研制出来,并且在不同的应用领域都得到了广泛的应用。 本文主要设计一个配置机械手的智能移动机器人,可以调速、转弯、抓取物体。涉及到双目摄像头定位、激光测距、电机控制、压力传感器等技术。 一、系统总体结构图 机器人系统主要由机械系统、驱动控制系统、视觉系统、传感器系统、上位机系统、电源系统以及人机交互系统等组成。 系统总体结构图如下: 智能机器人平台采用了主从结构的分布式处理方式,由上位机系统来协调控制各个子模块系统。各个子系统都有自己的数据处理机制,数据处理都在本模块的DSP处理器中完成。上位机只是负责数据融合、任务分解、策略选择制定、协调控制各子模块等工作。当上位机需要某个模块的数据时,子模块向上位机提供该模块经过处理以后的数据。由于大量的数据处理都在各个子模块中完成,上位机得到的都是经过处理后的小量数据,大大减少了上位机的负担。采用这种方式既提高了上位机的效率,又增加了系统的稳定性,方便系统的维护。 二、机械手

该机械手的设计仿照人类手臂的构造,总共有五个自由度,包括抬手臂转动关节,肩转动关节,肘转动关节,腕转动关节,手爪旋转关节与手爪开闭关节。这种多自由度的设计使得机械手具有较大的灵活度,以适应抓取不同目标物体的要求。 三、控制系统 1、感知系统 感知系统也就是传感器系统,本智能机器人系统的传感器系统可以只包含两个传感器,一个是测障、测距用激光传感器,一个是抓物时压力感测的压力传感器。 红外测距传感器(简称PSD:Poison Sensitive Detector): 通常采用光学三角测量方法来确定机器人同物体之间的距离:传感器的红外发光管发出红外光,当红外光没有碰到障碍的时候,红外光保持前行;当红外光碰到障碍的时候,红外光反射回来,并进入探测器。这样,在反射点,发射器,探测器之间形成一个三角形,探测器通过镜面反射,将红外光射入一个线性CCD中,由CCD测量反射光的角度,并由角度的大小来计算障碍物的距离。本机器人系统配置4路PSD传感器,分别以接近于90度的角度间距安装于机器人的前、后、左、右四个方向上和机械臂抓手的手掌内。 图2 PSD传感器位置示意图 压力传感器: 测得与物体接触的压力值返回给DSP分析处理:是否继续抓紧动作。装在机械臂抓手的每个手指上。 传感器系统结构图

智能式移动机器人设计说明书

智能移动式送料机器人机械系统设计 摘要:智能移动式送料机器人以电动机作为驱动系统,运用单片机传感器等技术达到其智能移动的目的,实现行走、刹车、伸缩、回转等多种动作的操作。因此它具有机械化、程序化、可控化、适应性、灵活性强的特点。 前言:工业机器人是一种典型的机电一体化产品在现代生产中应用日益广泛,作用越来越重要,机器人技术是综合了计算机、控制、机构学、传感技术等多学科而形成的高新技术是当代研究十分活跃,应用日益广泛的领域。

现在,国际上对机器人的概念已经逐渐趋近一致。一般说来,人们都可以接受这种说法,即机器人是靠自身动力和控制能力来实现各种功能的一种机器。联合国标准化组织采纳了美国机器人协会给机器人下的定义:“一种可编程和多功能的,用来搬运材料、零件、工具的操作机;或是为了执行不同的任务而具有可改变和可编程动作的专门系统。”我国研制的排爆机器人不仅可以排除炸弹,利用它的侦察传感器还可监视犯罪分子的活动。监视人员可以在远处对犯罪分子昼夜进行观察,监听他们的谈话,不必暴露自己就可对情况了如指掌。 智能小车,又称轮式机器人,可以在人类无法

适应的恶劣和危险环境中代替人工作。它是一个集环境感知,规划决策,自动驾驶等功能于一体的智能系统。现如今已在诸多领域有广泛的应用。对于快要毕业的大学生来说也是一个实时、富有意义和挑战的设计课题。 正文: 设计方案: 一课题名称:智能移动式送料机器人设计 二机器人工作过程及设计要求 自主设计智能移动小车,设计一个取料 手爪装配到小车上,完成取料机器人的机械系统设计,并进行机器人运动规划和取料虚拟仿真,使机

器人完成如下动作:沿规定路径行驶——工件夹取——车体旋转——手爪张开,将工件从储存处送到运料车上。 三机器人设计的内容 一机械手的设计:

移动机器人的发展史和应用领域

移动机器人的发展史和应用领域 移动机器人的发展史和应用领域电子元件知识11月29日讯,智能移动机器人,是一个集环境感知、动态决策与规划、行为控制与执行等多功能于一体的综合系统。它集中了传感器技术、信息处理、电子工程、计算机工程、自动化控制工程以及人工智能等多学科的研究成果,代表机电一体化的最高成就,是目前科学技术发展最活跃的领域之一。随着机器人性能不断地完善,移动机器人的应用范围大为扩展,不仅在工业、农业、医疗、服务等行业中得到广泛的应用,而且在城市安全、国防和空间探测领域等有害与危险场合得到很好的应用。因此,移动机器人技术已经得到世界各国的普遍关注。 移动机器人的研究始于60年代末期。斯坦福研究院(SRI)的NilsNilssen和CharlesRosen 等人,在1966年至1972年中研发出了取名Shakey的自主移动机器人。目的是研究应用人工智能技术,在复杂环境下机器人系统的自主推理、规划和控制。 什么是移动机器人? 根据移动方式来分,可分为:轮式移动机器人、步行移动机器人(单腿式、双腿式和多腿式)、履带式移动机器人、爬行机器人、蠕动式机器人和游动式机器人等类型;按工作环境来分,可分为:室内移动机器人和室外移动机器人;按控制体系结构来分,可分为:功能式(水平式)结构机器人、行为式(垂直式)结构机器人和混合式机器人;按功能和用途来分,可分为:医疗机器人、军用机器人、助残机器人、清洁机器人等; 一种由传感器、遥控操作器和自动控制的移动载体组成的机器人系统。移动机器人具有移动功能,在代替人从事危险、恶劣(如辐射、有毒等)环境下作业和人所不及的(如宇宙空间、水下等)环境作业方面,比一般机器人有更大的机动性、灵活性。 移动机器人是一种在复杂环境下工作的,具有自行组织、自主运行、自主规划的智能机器

基于机器人运动控制系统软件设计

基于机器人运动控制系统软件设计 提供一种移动机器人 实现了基于渡越时间法的超声波测距模块设计, 本文主要完成对主控板控制器软件设计、 电机驱 使开发系统能够服务于移动机器人研究的通用 关键词:机器人;运动控制;软件设计;超声波测距 中途分类号:TP 9文献标识码:B 0引言 随着计算机、网络、机械电子、信息、自动化以及人工智能等技术的飞速发展,移动机 器人的研究进入了一个崭新的阶段。 同时,太空资源、海洋资源的开发与利用为移动机器人 的发展提供了广阔的空间。 目前,智能移动机器人,无人自主车等领域的研究进入了应用的 阶段,随着研究的深入,对移动机器人的自主导航能力, 动态避障策略,避障时间等方面提 出了更高的要求。地面智能机器人路径规划, 是行驶在复杂,动态自然环境中的全自主机器 人系统的重要 环节,而地面智能机器人全地域全自主技术的研究, 是当今国内外学术界面临 的挑战性问题。 智能移动机器人是一类能够通过传感器感知环境和自身状态, 实现在有障碍物的环境中 面向目标自主运动,从而完成一定功能的机器人系统。移动机器人技术研究综合了路径规划、 导航定位、路 径跟踪与运动控制等技术。涉及到包括距离探测、视频采集、 温湿度以及声光 等多种外部传感器,作为移动机器人的输入信息。移动机器人的运动控制主要是完成移动机 器人的运动平 台,提供一种移动机器人的控制方式。 性能良好的移动机器人运动控制系统是 移动机器人运行的基础,能够服务于移动机器人研究的通用开发平台。 移动机器人技术研究综合了多学科领域的知识, 关键技术可分为:路径规划、导航定位、 路径跟踪与运动控制技术。路径规划又可分为全局和局部路径规划。 全局路径规划是根据移 动机器人总体任务进行路径规划, 将总体路径任务分解, 并建立全局地形数据库; 局部路径 规划是根据全局规划分解的子任务, 结合移动机器人当前状态信息, 实时规划可行路径; 导 航定位技术确定移动机器人在全局地图中的位置, 并实时得到机器人与路径跟踪的相对位置 关系,其关键技术是多传感器信息处理与数据融合技术。 路径跟踪与运动控制技术的任务是 控制移动机器人跟踪局部规划给出的路径, 结合导航定位系统得到机器人本身状态信息与道 路信息,完成航向和速度控制。 移动机器人的路径规划、 导航控制以及路径跟踪与运动控制 摘要:移动机器人的运动控制主要是完成移动机器人的运动平台, 的控制方式。本文通过对移动机器人的研究, 为 机器人提供简单方便的障碍物距离检测。 动控 制器软件设计和超声波测距软件的设计, 开发 平台。

智能移动机器人详细介绍

智能移动机器人详细介绍 智能移动机器人,是一个集环境感知、动态决策与规划、行为控制与执行等多功能于一体的综合系统。它集中了传感器技术、信息处理、电子工程、计算机工程、自动化控制工程以及人工智能等多学科的研究成果,代表机电一体化的最高成就,是目前科学技术发展最活跃的领域之一。随着机器人性能不断地完善,移动机器人的应用范围大为扩展,不仅在工业、农业、医疗、服务等行业中得到广泛的应用,而且在城市安全、国防和空间探测领域等有害与危险场合得到很好的应用。因此,移动机器人技术已经得到世界各国的普遍关注。移动机器人的研究始于60年代末期。斯坦福研究院(SRI)的NilsNilssen 和CharlesRosen等人,在1966年至1972年中研发出了取名Shakey的自主移动机器人。目的是研究应用人工智能技术,在复杂环境下机器人系统的自主推理、规划和控制。 什么是移动机器人? 根据移动方式来分,可分为:轮式移动机器人、步行移动机器人(单腿式、双腿式和多腿式)、履带式移动机器人、爬行机器人、蠕动式机器人和游动式机器人等类型;按工作环境来分,可分为:室内移动机器人和室外移动机器人;按控制体系结构来分,可分为:功能式(水平式)结构机器人、行为式(垂直式)结构机器人和混合式机器人;按功能和用途来分,可分为:医疗机器人、军用机器人、助残机器人、清洁机器人等; 一种由传感器、遥控操作器和自动控制的移动载体组成的机器人系统。移动机器人具有移动功能,在代替人从事危险、恶劣(如辐射、有毒等)环境下作业和人所不及的(如宇宙空间、水下等)环境作业方面,比一般机器人有更大的机动性、灵活性。 移动机器人是一种在复杂环境下工作的,具有自行组织、自主运行、自主规划的智能机器人,融合了计算机技术、信息技术、通信技术、微电子技术和机器人技术等。

基于机器人运动控制系统软件设计

基于机器人运动控制系统软件设计

基于机器人运动控制系统软件设计摘要:移动机器人的运动控制主要是完成移动机器人的运动平台,提供一种移动机器人的控制方式。本文通过对移动机器人的研究,实现了基于渡越时间法的超声波测距模块设计,为机器人提供简单方便的障碍物距离检测。本文主要完成对主控板控制器软件设计、电机驱动控制器软件设计和超声波测距软件的设计,使开发系统能够服务于移动机器人研究的通用开发平台。 关键词:机器人;运动控制;软件设计;超声波测距 中途分类号:TP 9 文献标识码:B 0 引言 随着计算机、网络、机械电子、信息、自动化以及人工智能等技术的飞速发展,移动机器人的研究进入了一个崭新的阶段。同时,太空资源、海洋资源的开发与利用为移动机器人的发展提供了广阔的空间。目前,智能移动机器人,无人自主车等领域的研究进入了应用的阶段,随着研究的深入,对移动机器人的自主导航能力,动态避障策略,避障时间等方面提出了更高的要求。地面智能机器人路径规划,是行驶在复杂,动态

自然环境中的全自主机器人系统的重要环节,而地面智能机器人全地域全自主技术的研究,是当今国内外学术界面临的挑战性问题。 智能移动机器人是一类能够通过传感器感知环境和自身状态,实现在有障碍物的环境中面向目标自主运动,从而完成一定功能的机器人系统。移动机器人技术研究综合了路径规划、导航定位、路径跟踪与运动控制等技术。涉及到包括距离探测、视频采集、温湿度以及声光等多种外部传感器,作为移动机器人的输入信息。移动机器人的运动控制主要是完成移动机器人的运动平台,提供一种移动机器人的控制方式。性能良好的移动机器人运动控制系统是移动机器人运行的基础,能够服务于移动机器人研究的通用开发平台。 移动机器人技术研究综合了多学科领域的知识,关键技术可分为:路径规划、导航定位、路径跟踪与运动控制技术。路径规划又可分为全局和局部路径规划。全局路径规划是根据移动机器人总体任务进行路径规划,将总体路径任务分解,并建立全局地形数据库;局部路径规划是根据全局规划分解的子任务,结合移动机器人当前

智能机器人的现状和发展趋势

智能移动机器人的现状和发展 姓名 学号 班级:

智能移动机器人的现状及其发展 摘要:本文扼要地介绍了智能移动机器人技术的发展现状,以及世界各国智能移动机器人的发展水平,然后介绍了智能移动机器人的分类,从几个典型的方面介绍了智能移动机器人在各行各业的广泛应用,讨论了智能移动机器人的发展趋势以及对未来技术的展望,最后提出了自己的建议和设想,分析我国在智能移动机器人方面发展并提出期望。 关键词:智能移动机器人;发展现状;应用;趋势 1 引言 机器人是一种可编程和多功能的,用来搬运材料、零件、工具的操作机,或是为了执行不同的任务而具有可改变和可编程动作的专门系统。智能移动机器人则是一个在感知- 思维- 效应方面全面模拟人的机器系统,外形不一定像人。它是人工智能技术的综合试验场,可以全面地考察人工智能各个领域的技术,研究它们相互之间的关系。还可以在有害环境中代替人从事危险工作、上天下海、战场作业等方面大显身手。一部智能移动机器人应该具备三方面的能力:感知环境的能力、执行某种任务而对环境施加影响的能力和把感知与行动联系起来的能力。智能移动机器人与工业机器人的根本区别在于,智能移动机器人具有感知功能与识别、判断及规划功能[1]。 随着智能移动机器人的应用领域的扩大,人们期望智能移动机器人在更多领域为人类服务,代替人类完成更复杂的工作。然而,智能移动机器人所处的环境往往是未知的、很难预测。智能移动机器人所要完成的工作任务也越来越复杂;对智能移动机器人行为进行人工分析、设计也变得越来越困难。目前,国内外对智能移动机器人的研究不断深入。 本文对智能移动机器人的现状和发展趋势进行了综述,分析了国内外的智能移动机器人的发展,讨论了智能移动机器人在发展中存在的问题,最后提出了对智能移动机器人发展的一些设想。

智能移动机器人的技术现状及展望

智能移动机器人的技术现状及展望 随着智能化机器人在各个行业领域中的推广应用,其展现出的智能化技术水平不断提高,促使机器人的功能作用不断增加。技术工作人员在现有技术水平的基础上,看到了智能化机器人的发展机遇和发展潜力,再加上对技术研发现状具有明确的认知,为智能化机器人的研发提供了根本保障。 标签:智能移动机器人;技术研发现状;技术性展望 引言 人工智能化技术的创新完善,已经研发出了多种用途的机器人,其中应用最为广泛的是移动型机器人,这种机器人起到的功能作用逐渐增多,逐渐贴近了人们的现实生活,并改变着人们的生活方式和企业的生产方式。因此,企业技术人员要将技术研发工作向人工智能化的方向转变,尽快的实现智能化机器人的普及应用,为人们的工作和生活提供更加便利的条件。 一、智能化移动机器人的整体发展现状 随着科学技术的创新发展,人们对创新的动力和热情是不会消退的,只是将技术研发的重点转移到了最为前沿的技术领域中,尤其是人工智能化技术的研发和移动化机器人的研发中。而两者的有机结合也是目前机器人研发行业领域的重要发展目标,通过人工智能化技术来实现机器人的高度人工智能化。 目前,移动型机器人的主要结构体系是根据事物的基本特点,进行自我认知提升和不断学习的过程,并为了实现某个既定目标为不断努力。而这就需要做好规划工作,根据分层结构和分级结构来设计主要体系,这样能够保证在正常的逻辑思维模式下,能够按照相关顺序流程对各种问题进行有效化处理。 此外,这种机器人结构体系中还包含了外部感应反馈结构和高精高速计算处理系统以及快速反应执行结构体系的相关内容,这是实现高度智能化的关键结构,是实现机器人人工智能化的重要组成。但是,智能化技术的研发应用,以及智能化机器人的推广普及并不是稳步进行的,其会受到技术发展水平的限制影响,这也是限制人工智能化技术发展和移动以其人完善创新的主要因素。再加上人们对人工智能化技术应用的担忧不断增加,也会严重限制了技术的前沿发展。但是,智能化技术的整体发展趋势和需求发展变化都是不会以研发技术人员的意志发生变化,其整体的研发会随着科学技术的创新完善和社会的发展进步不断的强化,逐渐发展向更高的台阶。 二、智能化移动机器人的实际应用情况 每次说到人工智能技术和智能化机器人时,大部分人都会认为离我们的工作生活很遥远。其實不然,大部分智能化设备已经在企业生产和人们生活中得以广

相关主题