传统机器人的类型有很多,形式也各式各样,但是随着软件代理(虚拟机器人)的出现,这些变种又大大扩充了。虚拟机器人借鉴了物理机器人的很多特性。例如,物理机器人的机动性意味着某种形式的移动,但是移动软件机器人(或 代理)也可以有机动性 —— 此处是指在网络上不同主机之间迁移的能力。图 1 给出了物理和虚拟领域中自治机器人的一个简单的分类。本文将着重使用 软件代理 作为在人工合成环境中仿真机器人的机制。
http://www.robotsky.com 来源:IBM 时间:2007-06-27 评论 <script src="http://www.robotsky.com/e/public/ViewClick?classid=32&id=729&down=2"></script>0 条
|
仿真的一大优点表现在多机器人的仿真 中。为这些仿真提供的一个流行比赛是机器人足球赛,在这种比赛中,参赛选手可以使用仿真机器人,也可以使用物理机器人,一组机器人会与另外一组机器人展开 世界上流行的英式足球较量(这使得这项比赛非常适合成为一项国际赛事)。机器人必须能够完全与整个团队中的其他机器人进行合作(可能相互之间需要进行通 信),并与对手团队中的机器人展开竞赛,这对于机器人的行为是一项挑战性极强的测试。
但是对于仿真来说,也有些频感乏术的地方。真实的世界 往往都非常凌乱,并且充满了各种噪音,因此这种合成环境基本上都很难进行建模。对机器人进行仿真通常都非常困难,因为真实世界中的传感器通常都可能呈现出 不同的或非预期的特性。尽管有这些缺陷,我们依然可以通过在合成环境中对机器人进行仿真而学习到很多知识。
ODE 目前可以支持球窝、铰链、滑块、定轴、角电机和 hinge-2 (用于交通工具的连接)连接类型,以及其他一些连接类型。它还可以支持各种碰撞原语(例如球面碰撞和平面碰撞)和几个碰撞空间。 ODE 主要是使用 清单 1 中的源代码给出了一个简单的例子,这个环境中中存在火星的地心引力,里面有一个球具有向上的速度。由于这个环境中具有地心引力,因此向上的速度不会坚持很 久;最后这个球会上升到顶点并开始下降。在初始化完成之后(即在这个环境中创建对象并设置好属性之后),我们就可以通过 |
开 始构建基于 Linux 的机器人并不像我们想像的那样困难。实际上,有些高中的科学课程正在使用 Linux 和现有的可用硬件作为基于 Linux 的机器人的核心。例如,可以使用老式的 PC 主板作为系统核心(或者稍微好些的,使用老式的笔记本),并从 USB 磁盘上来引导 Linux(这比 CD-ROM 或硬盘/软盘引导消耗的电量会少很多)。板载的并口可以很容易转换成很多设备,例如将输入和输出分离开,或者驱动一组步进马达。串口可以用来接收 GPS 坐标,或者连接外部设备,例如 A/D (模拟信号到数字信号)或 D/A(数字信号到模拟信号)转换器。最后,可以购买一些便宜的 USB Web 相机来为机器人添加视觉功能。
但是真正使得 Linux 在这个环境中大放异彩的是它对环境的简化能力,从而使得所有人都可以通过 Python 之类的高级语言进行机器人控制系统的设计。位于 Maine 的 Greater Houlton Christian Academy 的 Michael Surran 最近(已经是第二年了)教授了一门高中的机器人课程,它充分利用了 Linux 和目前可用的硬件。这个课程的核心就是使用 Python。由于 Python 是一种解释语言,因此很容易来试验算法,而不需要经过长时间的编译过程(这点使得解释脚本语言显得如此有用)。
如果我们正在 寻找最新的 Linux 解决方案,Carnegie Mellon University 最近在自己的 Mobile Robot Programming Lab(MRPL)中推出了 “Qwerkbot” 平台,它可以在 2.6 版本的 Linux 内核上运行。“Qwerkbot” 是一个基于 ARM9 的主板,具有 8MB 的闪存和 32MB 的SDRAM;它包括了 4 个板载的马达控制器、16 个伺服控制器、16 个数字 I/O、8 个 12 位的模拟输入,以及其他组件。
机器人仿真器可以极大地简化构建物理机器人的工作。使用这些仿真器,我们可以在将自己的想法和策略放入硬件之前就对它们进行测试。幸运的是,Linux 和开源社区有很多选择,它们不但非常容易使用,而且还可以支持与硬件平台的直接链接。