1.1 什么是机器人
机器人(robot)一词最早出现在1920年捷克斯洛伐克作家Karel apek的科幻小说《罗萨姆万能机器人公司》中,是根据捷克语Robota(苦役、苦工)和波兰语Robotnik(工人)两个词创造出来的,即代表进行苦力劳动,完成繁重的工作。早在机器人一词出现前,人们就一直幻想和追求制造一种像人一样的机器,以替代人类完成各种工作,现今有记载的如:中国三国时期蜀国丞相诸葛亮制作的木牛流马、十八世纪法国天才技师发明制作的机器鸭。
在过去的一百年里,现代机器人技术蓬勃发展,机器人已经被应用到我们生产、生活的多个领域中,甚至扮演着重要的角色。然而,至今还没有机器人的统一定义,要给机器人下一个合适的并为人们普遍接受的定义是困难的,以下是比较有代表性的定义。
- 任何能够代替人类劳动的自动操控机器,虽然这种机器看上去有可能与人类并不相似,或者并不按照人类的方式来实现某些功能。(《大英百科全书》)
- 机器人(Robot)是自动执行工作的机器装置。它既可以接受人类指挥,又可以运行预先编排的程序,也可以根据以人工智能技术制定的原则纲领行动。它的任务是协助或取代人类工作的工作,例如生产业、建筑业,或是危险的工作。(《百度百科》)
- 机器人是真实存在于物理世界中的自主系统,能够感知周围环境,依靠自身判断采取行动并完成特定的目标。([美]Maja J.Mataric,《机器人学基础》)
根据对现代机器人典型定义的理解,以及后继内容的需要,我们认为机器人至少应该具备以下特征:
第一,机器人应该是真实存在于物理世界中的一个看得见、摸得着的实体。虽然有些计算机程序自称是机器人,也具备机器人的一些特征,但它不是一个看得见、摸得着的实体,所以我们不能称其为机器人,例如运行在我们电子邮件服务器上的反垃圾邮件机器人。
第二,机器人能完成人类的一些工作,但不一定长得跟人类一样。一个长得和人类一样的机器人不一定适合或擅长去完成我们指定的工作,而且其设计制作的难度相当大。例如:您可以设计制作一个用双脚走路的机器人,但这个机器人的行动效率可能远不如用一个用轮子行动的机器人,而且设计制作一个用轮子走路的机器人远比设计制作一个用双脚走路的机器人要简单。
第三,机器人应该具备环境感知能力。机器人是一个存在于真实世界的实体,运行在真实世界中,而真实世界的环境是复杂和未知的,机器人需要能根据不同的环境做出合适的行动,那么它必须具备感知周围环境的能力。上述各类古代的自动化机器显然不具备环境感知能力,因此不能算是一个机器人。
第四,机器人能够依靠自身判断采取行动并完成特定的目标。在接收(感知)到周围的环境情况信号后,机器人应该能够根据这些信号做出判断并采取相应的行动以完成特定的任务。例如,扫地机器人在遇到障碍物的时候能够自行修改行进路线,避开障碍物继续完成工作。
第五,机器人应该可以接受人类的指挥和操纵。对于一个感知能力有限、智能水平较低的机器,在行动的时候很可能出现偏差,这个时候就需要人类进行干预。而对于一个具备全面感知能力和高度智能的机器人,若脱离了人类的控制,那将是件多么恐怖的事情,科幻小说里机器人奴役人类的情节非常可能出现。因此,机器人接受人类的指挥和操纵是非常必要的。
1.2 机器人组成
机器人一般由机械本体、控制系统、驱动系统和感知系统等四大部分组成。
- 机械系统
机械系统是机器人赖以完成作业任务的执行机构,可以在确定的环境中执行控制系统指定的操作,一般包括机身、臂部、手腕、末端操作器和行走机构等部分,每个部分都有若干的自由度,是一个多自由度的机械系统。 - 控制系统
控制系统的作用是根据机器人的的作业指令程序以及传感器反馈回来的信号控制机器人的执行机构,使其能完成规定的运动和功能。控制系统是机器人的指挥中枢,相当人类的大脑,可以由一台或多台微型计算机完成。后续的章节我们将采用一款叫树莓派(Raspberry Pi,RasPi/RPi)的微型计算机作为机器人的控制系统进行介绍。 - 驱动系统
驱动系统是驱使机械系统运动的机构,能够按照控制系统的指令信号,借助于动力元件使机器人进行动作。它输入的是电信号,输出的是线、角位移量。机器人驱动系统主要有液压、气动和电气三种。其中,电气驱动方式使用较为普遍,主要采用步进电机、伺服电机和直流电机等实现。 - 感知系统
感知系统是用于获取机器人的内部和外部环境信息,并把这些信息反馈给控制系统,由内部传感器和外部传感器组成。内部传感器用于感知机器人的内部情况,如速度、电压等信息,外部传感器则用于获取机器人所处环境信息,如声音、视觉等信息。光敏电阻、超声波传感器、雷达、摄像头等都是典型的传感器。
机器人是一个典型的机电一体化系统,其基本工作原理如图1.1所示:控制系统发出动作指令,控制驱动系统动作,驱动系统带动机械系统运动以完成一定的作业任务。在运行过程中,感知系统不断的收集内外部环境信息并反馈给控制系统,控制系统根据这些信息进行运算后,发出下一个动作指令。人机交互界面则为人们提供了一个观察机器人运行状态和人工干预机器人运行的接口,属于控制系统的一部分。
图 1.1 机器人基本工作原理
## 1.3 机器人制作 设计制作一个机器人涉及到机械、电子、计算机、仿生学等多个学科的知识,以下先简单介绍一下机器人设计和制作的一些基本知识,以便初学者更为快速的入门。 ### 1.3.1 基本原则 + **简单** 在设计和制作机器人的任何阶段,秉承简单明确的理念是非常睿智的。尤其是在设计制作第一个机器人的时候,我们对机器人的功能要求应尽可能简单,并采用较为简单的方式和技术去实现,不要因为过度钻研某一领域的知识而忘记你正在做一个机器人。 + **分解** 设计制作机器人是一个复杂的工程,通过工作任务分解,可以简化我们的工作。可以把机器人分解为机械系统、控制系统、驱动系统和感知系统四个部分,然后再对各个部分设计制作工作进行必要的分解直至满足我们的需求并实现。 + **迭代** 一次性就设计制作出一个功能完善的机器人显然是不现实的。在设计制作机器人的过程中,我们借鉴软件工程的迭代理念,首先实现最简单、最基本的功能,然后再逐步完善和优化。 + **协作** 前面我们说过,机器人设计和制作涉及到众多学科的知识,而我们大多数人不可能熟知所有相关领域的知识,因此各种形式进行协作是必要的。在互联网高度发达的今天,利用网络社交手段向某些领域的大牛求助是个不错的选择。另外,对于组成机器人的一些基本功能模块,我们可以考虑直接从网上购买,而不是自己从头设计制作,这样可以大大的降低设计制作机器人的难度。1.3.2 制作步骤
设计制作一个机器人大致可以分为以下五个步骤:
- 确定需求
制作机器人的第一步应该是明确你要做一个什么样的机器人,具备什么功能。按照“简单”的原则,我们不应该一开始就对机器人有太多甚至过份的功能需求,明智的做法是从简单的功能需求出发,把需求一一列出来,并做分类整理,可以考虑把复杂的功能需求归到一类,以便后续迭代实现。 - 系统设计
需求确定后,我们应按照“分解”原则,分别对机器人的机械系统、控制系统、驱动系统、感知系统等四大组成部分进行逐步细化设计,确定诸如移动方式、控制方式、、感知形式、动力源等,把机器人的雏形规划出来。这里同样建议采取由简到难,迭代实现的方式进行设计。 - 材料选择
完成系统设计后,接下来就是根据设计挑选所需的材料,例如:驱动器、动力源、控制板、感知器等。选择材料的时候建议:①按照前面所述的机器人四大组成部分分别挑选材料,有利于理清思路;②挑选市面上普及和通用的零件,能更容易找到相关的技术文档;③注意电子电气元件的技术参数,如电压、电流、功率等,确保和设计相匹配,避免元件损坏。 - 程序编写
为了让机器人动起来,我们还需编写相应的控制程序并上传(烧入)到控制部件。编写程序的时候,建议:①尽可能选择简单易学的编程语言,例如后续章节所使用Python;②根据“协作”的原则,借助各类通用的开发框架和程序库进行开发;③先分别对各部件进行编程,调试通过后再进行联调,通过不断的迭代完成开发。 - 组装运行
最后,我们需要将各个部件组装起来,使其成为一个真正的机器人。在这个过程中,我们同样应该遵循“分解”和“迭代”的原则,逐步进行组装和调试,而不是整体组装完成再调试。同时,我们应该尤为注意电子电气元件的连线,避免由于短路而造成元器件损坏。
1.4 本章小结
在这一章中,我们介绍了机器人的概念,以及我们对这个概念的理解,让您了解什么是机器人。其次,介绍机器人的基本组成,即机械系统、控制系统、驱动系统、感知系统四大部分。最后,我们讲述了设计制作机器人的四个原则和五个步骤,让您对机器人设计制作有个基本的了解。