机器人系统设计与制作:Python语言实现1.2 机器人从哪儿来

1.2 机器人从哪儿来


正如标题所示,本节要介绍的应该是机器人的历史起源。我们已经知道了一些非常重要的事实,比如“机器人”一词是由一位捷克作家Karel apek在1920年提出的,而且通过事实考证,在那几年里,还发生了很多更有趣的事情。为了讲述上更有序,让我们从头开始来看。

历史上很难准确地找出一个具体日期,说它就是第一个机器人诞生的时间。在此之前,我们对机器人已经有了一个相对严格的定义,因此一直等到20世纪,一个真正的严格意义上的机器人才出现。在那之前,我们充其量只是提到这个名词而已。

第一个接近机器人的设备,是一种被称为“鸽子”的机械鸟。它是公元前4世纪,在意大利的塔伦特姆,由希腊数学家Archytas发明的,由蒸汽推动前进。根据我们对机器人的定义可知,它还不能被认为是一个机器人(无法感知周围环境已失去资格),但在那个时代已经算是相当接近了。在接下来的几个世纪,有许许多多的机器人被尝试创建,如依靠水流来测量时间的钟表,实物大小的机械图案,乃至第一个可编程的人形机器人(实际上是一艘载有4个机械乐手的船)。所有这些机器存在的问题是它们几乎都没有获得可靠的信息来源,因此都存在很大争议。

这样的状态一直延续了相当长的一段时间,直到20世纪50年代Leonardo Da Vinci的笔记被重新发现。它完整地记录了1945年发明的一个类人机器(从外形上看起来与人相似的机械装置),它看起来像一个装甲骑士。从表面上看,它被设计成可以端坐、挥舞手臂、摇头,最重要的功能是用来娱乐皇室成员。在18世纪的娱乐行业方面,Jacques de Vaucanson发明了3个自动玩偶:可以演奏12首歌的长笛乐手,手鼓演奏器,以及最著名的“消化鸭”。这只鸭子能够自己移动,发出嘎嘎声,拍打翅膀,甚至有能力吃东西并将食物消化(不是真正将食物消化,而是把食物存储收集在一个隐藏的容器内)。它是一个“运动解剖学”的例子,用机械装置建模人体或动物解剖学。

我们再来看看接下来的一个世纪里那些非常类似于机器人的装置,它们在机器人的历史演变长河中是不可或缺的。它们中的大部分是由无线电控制的,如Nikola Tesla的小船,之前陈列在纽约麦迪逊广场花园的玻璃柜内。你可以控制它前进、停止、向左或向右转,打开或关闭灯光,甚至让它下沉。所有这些在当时似乎并不太令人印象深刻,因为当时的报刊新闻报道认为这是一种“精神控制”。

就是在这样的社会认知下,我们再一次接触到机器人这个术语,这也是它第一次被正式公开提到。正如我们之前说过很多次,在1920年Karelapek在他的剧本《R.U.R》中正式用到了机器人这个术语。20年后,另一个非常重要的术语又被创造出来了。1942年,Issac Asimov在他的短篇小说《环舞》(Runaround)中第一次提到了机器人学(robotics)这个术语。Issac Asimov还写了很多其他关于机器人的故事,是一位当时非常著名的科幻小说家。

然而,在机器人学领域,他更为突出的贡献是提出了机器人学三定律:

第一定律:机器人不得伤害人类,或坐视人类受到伤害。

第二定律:在不违背第一定律的前提下,机器人必须服从人类的命令。

第三定律:在不违背第一及第二定律的前提下,机器人必须保护自己。

后来,他又补充了机器人零定律:

零定律:机器人不得伤害人类的整体利益,或坐视人类的整体利益受到伤害。

这些定律一定程度上反映了当时人们对称之为“机器人”的这种机器的态度。看到具有一定智能的机器人奴役真的成为可能,那么我们在发明设计这种新的智能机器的时候,就算不能直接遵循这些定律,也应该将其作为指导原则牢记在心。同时,虽然很多人还是害怕机器人会带给我们灾难,但从时代发展上看,暂时还不会这样。机器还将需要拥有一定程度的智能,一定的思考能力,能根据它们自己的想法去行动,这样才能认为机器人真的来了。我们纵观机器人的历史发展过程,虽然在当时机械方面确实有了一定进步,但在智能方面基本还是停滞不前的。

正是在这样的情况下,到1956年夏天,几个非常聪明的年轻人(Marvin Minsky、John McCarthy、Herbert Simon和Allan Newell)聚集在一起,讨论要如何给机器创造智能(人工智能),他们被认为是人工智能这个新领域的奠基人。

虽然这几个年轻人当时野心勃勃(有些资料上甚至提到他们计划在那个夏天就能发明创造出整机智能),但到一些有意思的结果出现之前,还是经过了一段时间。

一个有代表性的案例就是Shakey,美国斯坦福国际研究所(SRI)1966年发明的一个机器人。它是首台能够自主进行推理行动的机器人(按照我们现在对机器人的理解)。在此之前的机器人,都是通过执行预编译程序指令来完成动作的。换句话说,Shakey能够分析更复杂的程序指令,并能自行将复杂指令分解成一系列更简单的问题。图1-2所示的这张Shakey的图片来自于https://en.wikipedia.org/wiki/File:ShakeyLivesHere.jpg。

它的硬件配置也是非常先进的,它装有撞击探测器、声呐测距仪和电视相机。它可以在一个摆满各种障碍物的小的封闭的环境里运行。为了要在这些障碍物间行走,必须要找到一种能够不碰到并且绕过它们的方法。Shakey采用了一种非常简单的方式。

开始,它先小心翼翼地给自己规划了一条能绕过这些障碍物的行动路径(那时候的路径搜索技术还不太先进),然后试着慢慢地移动并绕过障碍物。当然,从一个稳定位置开始移动不可避免地会出现一些偏移。Shakey在移动过程中就出现了很多这样的偏移,由此得名为Shakey。

那些试图想教会Shakey怎样去适应周围环境的研究人员总结出了很多非常重要的经验。其中A*搜索算法(一种在两个目标点之间能非常快速有效地找到最佳路径的算法)毫无疑问可以算是众多研究成果之一。这个算法不仅在人工智能或机器人领域,而且在整个计算机科学领域都被认为是最重要的基础算法之一。

关于机器人的历史起源,我们还可以讨论很长时间。虽然任何人都能以这个主题写一本书(当然它本身就是一个很有意思的事情),但这并不是本书主要想讲的内容。还是回到我们之前关心的问题:机器人从哪儿来?

简而言之,机器人主要是从非常基础的机械自动化发展演变而来的,系统或装置通过远程遥控对象使其能够自主(甚至是自适应)地去完成特定目标。这样听起来太复杂了?别担心,事实上制作一个你自己的机器人,可以不需要理解太深的原理。你见到的绝大部分机器人都是由很多简单的部分组成的,被拆分的这些小部分都不难理解,并不像整体看起来那样难懂。

那么,接下来就来看看怎样构建一个我们自己的机器人,了解一下这些机器人都是由哪些部分组成的。

时间: 2024-11-17 18:26:51

机器人系统设计与制作:Python语言实现1.2 机器人从哪儿来的相关文章

机器人系统设计与制作:Python语言实现2.1 服务机器人的设计需求

摘要 服务机器人的机械设计 本书的主要目的是通过设计和构建机器人,并使用Python语言对它进行编程实现来学习机器人技术.我们先来看看如何从零开始对机器人的机械结构进行设计.我们将要设计搭建的是一种服务机器人,它将用于酒店和餐馆为顾客提供食物和饮料. 在本章中,我们可以看到这个机器人将使用的各种各样的机械零部件.同时,还将学到如何组装这些机械零部件.我们可以使用CAD软件工具来设计和装配这些零部件,同时搭建一个机器人的3D模型进行模拟仿真. 酒店里使用的机器人一般会比较大,但在这里我们打算搭建一

机器人系统设计与制作:Python语言实现2.5 用Blender制作机器人的三维模型

2.5 用Blender制作机器人的三维模型 在这一节中,我们将设计机器人的3D模型.3D模型主要用来进行三维仿真,采用Blender工具软件进行建模.Blender的版本必须要在V2.6以上,目前我们只在V2.6以上版本中测试过. Blender软件主界面上的工作空间和用于3D建模的工具栏如图2-14的屏幕截图所示. 我们选择用Blender这个工具的主要原因是,它可以用Python脚本语言进行机器人的3D建模.Blender有一个内置的Python解释器和脚本编辑器,用于代码编写.这里,我们

机器人系统设计与制作:Python语言实现导读

前 言 本书包含12章,主要介绍如何从零开始构建自主移动的机器人,并使用Python进行编程.本书所提到的机器人是用于家庭.宾馆.餐厅的服务机器人,我们将按照顺序介绍如何一步一步构建它.书中从机器人的基本概念开始,然后过渡到机器人三维建模和仿真,在成功进行机器人仿真之后,将介绍构建机器人原型所需要的硬件组件. 机器人的软件部分主要基于Python编程语言和其他一些软件框架开发,这些软件框架包括机器人操作系统(ROS).OpenCV等.你将会从设计机器人到设计人机界面等多个方面来了解如何使用Pyt

机器人系统设计与制作:Python语言实现2.6 习题

2.6 习题 1.?什么叫作机器人建模?它有什么作用? 2.?机器人2D模型的作用是什么? 3.?机器人3D模型的作用是什么? 4.?与手动建模相比,使用Python脚本语言建模有什么好处?

机器人系统设计与制作:Python语言实现3.1 什么是机器人仿真

摘要 用ROS和Gazebo进行机器人仿真 在上一章中,我们了解了机器人的机械设计过程,并着手设计了机器人的2D和3D模型.在这一章中,将对我们设计的机器人进行模拟仿真.在进行仿真之前,要先来了解一下机器人仿真的作用,它存在的优缺点,以及各式各样的机器人仿真软件工具. 本章中我们还将讨论机器人的运动学和动力学参数,它会有助于您了解机器人的各项功能.在讨论了这些概念之后,将确定用于机器人仿真的软件平台.我们计划是在机器人操作系统(Robot Operating System,ROS)平台下,使用G

机器人系统设计与制作:Python语言实现2.7 本章小结

2.7 本章小结 本章主要针对机器人的机械结构设计做了介绍,包括机器人的底盘设计和机械零部件的参数计算.在机器人的机械设计部分,首先需要对机器人的使用需求有一定的了解.一旦需求确定了,我们就可以开始挑选机器人机械设计中所需的组件和计算组件的参数.在满足了组件要求之后,我们就可以根据给定的需求开始设计机器人的底盘.机器人的底盘设计包括构建机器人过程中需要的所有零部件的平面设计.在零部件的2D设计完成之后,我们学习了如何使用Blender工具软件和Python脚本语言来构建机器人3D模型.3D模型中

机器人系统设计与制作:Python语言实现1.1 什么是机器人

摘要 机器人学概述 你如果读过技术性比较强的书籍,就会发现此类书的开头第1章基本都遵循相同的结构.它会先向读者描述一下该书所选的主题多么有意义,开始阅读该书是做了一个多么正确的决定,以及在后续的章节中会有很多非常有意思的内容不断地吸引你一直看下去. 但本章并不是上述所说的这样一个章节.本章从下面这个观点开始: 机器人学是一门艺术. 对于这样一个鲜明的观点陈述,可能需要对它有更多更详细的解释,但是,我相信在读完本书并亲自动手搭建起属于自己的机器人后,你就不再需要更多的书面解释,在实践中就能逐步体会

机器人系统设计与制作:Python语言实现1.4 如何制作机器人

1.4 如何制作机器人 如果我们试图从本章前面部分去简要抽象地了解机器人的组成部分,那么概括起来主要有以下三个过程:感知部分(由传感器完成).行动部分(通过执行器完成)和规划部分(如果一定要有的话,由控制器完成).我们可以通过给机器人配置不同的体系结构得到不同的功能属性,这主要取决于如何搭建连接这三个过程(这些构建模块也称为基元).下面,我们来说说三个非常基础的体系架构(也称为范例). 1.4.1 反应式控制 反应式控制应该算是最简单的一种机器人控制结构(或范例),它可以与前面描述的基元连接在一

机器人系统设计与制作:Python语言实现1.3 机器人上都有什么

1.3 机器人上都有什么 在本章一开始的时候,我们就试图给出一个比较完美的(现代意义上的)机器人的定义.事实证明,我们所提出的这个定义不仅能够描述我们所知道(或想要知道)的机器人,还给我们提出了重要的指标--在一个机器人上最可能有什么.我们再来看看定义: "机器人是存在于物理世界中的自主系统,能够感知周围环境,依靠自身判断采取行动并完成特定目标." 那么,机器人上哪些部分是最重要的?下面就是我们所列出的重要部分. 1.3.1 肢体 很难让一个没有实体躯干肢体的机器人存在于物理世界中.显