📄 Page
1
(This page has no text content)
📄 Page
2
Robot: making on your time 爱上机器人 陈宇航 侯俊萍 叶昶 编著 人工智能 机器人 入门与实战 + 用树莓派 + Python + OpenCV 制作计算机视觉机器人 人 民 邮 电 出 版 社 北 京 认识人工智能 学习Python编程 制作人脸识别与追踪机器人 爱上机器人正式.indd 4 2020/3/19 下午3:22
📄 Page
3
内 容 提 要 树莓派是一款基于 ARM 架构、Linux 系统的极简计算机,既可以用于计算机编 程教育,也可以作为机器人的控制核心。第一种运行于树莓派上的编程语言是 Python, 这是当前人工智能领域最为流行的编程语言。机器视觉是人工智能中重要的细分研究 领域,OpenCV 则是当前机器视觉领域主流的开源处理库,可以方便地用于计算机图 像处理,并应用于面部识别、目标识别等具体问题。本书介绍在树莓派硬件上使用 Python 语言,借助 OpenCV 库编程,来实现具有机器视觉功能(识别和抓取特定颜色 物体、识别人脸、识别特定人脸、进行面部跟踪)的智能机器人。 本书力求通过一系列不同层次的软硬件任务,由浅入深地讲解人工智能的概念, 同时覆盖 Linux 系统操作、Python 编程、机器人系统搭建等多方面的综合知识。在本 书案例中使用的主要硬件载体是可在桌面上固定运转的双轴云台和三轴机械臂等,它 们可以代表一类智能机器人的形态。本书遵循开源、分享的创客精神,所有的硬件材 料和软件内容均可以从公共平台获取,读者在充分理解的基础上,不必局限于本书所 列硬件,可自行获取类似设备完成项目。 本书可以作为中小学 STEAM 人工智能教育的一本基础读物,也可以作为中高职 院校相关专业学生的参考书。 编 著 陈宇航 侯俊萍 叶 昶 责任编辑 周 明 责任印制 彭志环 人民邮电出版社出版发行 北京市丰台区成寿寺路 11 号 邮编 100164 电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn 北京印匠彩色印刷有限公司印刷北京鑫丰华彩印有限公司 开本:690×970 1/16 印张:9.75 2020 年 5 月第 1 版 字数:312 千字 2020 年 5 月北京第 1 次印刷 定价:69.00 元 读者服务热线:(010)81055493 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京东工商广登字 20170147 号
📄 Page
4
走近人工智能第 1 章 1 推荐序 创客教育方兴未艾,实践方可知行合一。 教育的本质在于启蒙,而启蒙的关键在于好的切入点,人工智能时代结合双脑时代, 一方面人类智慧开创了机器人时代,同时机器的学习和智能演化又进一步加深了人们对学 习本身的理解。人类想对智慧中的逻辑进行机器实现,创造出了编程和机器程序控制,这 是最初的机器人形式;随后由于人类对自主智能和环境适应有需求,又创造出了自学习、 自演化机器人系统。因此,以人工智能和机器人作为启蒙教育的入口,是非常有智慧的选 择,也是人类智力提高的最佳实证途径。 奇异思维团队敢于创新、敢于为天下先,将时代强音“人工智能”引入中小学教育, 以教材为主线,结合实践操作,编写了浅显易懂、上手快、逻辑清、趣味强的一套切实可 行的教材,为人工智能创客教育、实践教育注入新鲜血液,零距离贴近智能、实践编程, 使科普及直观实践教育在祖国的中小学内得以开展,实为广大中小学教育工作者和学生的 幸事。 记得我有一次给德清初中学生做《好玩的机器人》报告,一个坐在第一排的孩子课间 问了我一个非常深刻的问题,他问道:“老师,如何处理好学习和生活的关系?”我先是 一愣,马上随口回答道:“愉快地学习,有智慧地生活。”我庆幸自己反应快,没想到孩 子接着问道:“如何愉快地学习?如何有智慧地生活?”我深深地被孩子的执着和有智慧 的提问打动,我当时刚好讲到一些我的发明专利,回头看了一下 PPT,结合“好玩的机 器人”,赞叹了孩子的问题,然后回答道:“在学习中发现乐趣,在生活中发现问题。” 我非常感谢孩子的问题,是他的问题开启了我智慧的宝藏,使我能更好更深刻地思考我们 的教育,思考如何才能使我们的下一代在健康快乐的学习中增长智慧,进而解决生活问题, 在解决问题中增强逻辑、系统性、独立思维能力,成为未来的创新性人才。恰好此书起到 了纽带和桥梁作用。 奇异思维团队在选择编程入门的系统和编程语言上着实下了一番功夫,既结合时代和 AI特征,又考虑到中小学学生的入门难易度,同时在内容题材的趣味性上也做了周密考虑, 使我想起以前搞发明的一段座右铭:“解决人们的烦恼,不改变人们的习惯,让大家玩起
📄 Page
5
人工智能+机器人入门与实战 2 来。”此书由浅入深,将中小学生学习人工智能和机器人编程的困难巧妙地克服了,利用 孩子们对好玩事物的好奇,以搭建积木和循序渐进的内容组合,使孩子们在不知不觉中学 到知识、启迪智慧。 此书凝聚了奇异思维团队的心血和成长历程,不仅适合中小学创客教育工作者,也 适合中小学生自学实践,同样适合其他对人工智能和机器人编程实践感兴趣的零起点人 士,我期望此书能使大众更贴近和了解人工智能与机器人,从围观者成为实践者,进而成 为创新者。 浙江大学电气工程学院副教授、 杭州市企业技术创新发展促进会特聘专家顾问、 中关村大数据联盟专家顾问、 上海云基地特聘专家 孟濬 2019 年 12 月 P1-132人工智能.indd 2 2020/3/9 15:28:39
📄 Page
6
走近人工智能第 1 章 1 前 言 树莓派是一款基于ARM架构、Linux 系统的极简计算机,它自 2012 年发布以来,凭 借小巧的体形和低廉的价格迅速风靡全球,既可以用于计算机编程教育,也可以作为机器人 教育中嵌入式系统的控制核心。 第一种运行于树莓派上的编程语言是Python,这也是当前人工智能领域最为流行的编 程语言。Python 是一种高级编程语言,适用于广泛的应用场景,它的代码简单易读,语法 规则简洁、明确,扩展功能开放、丰富,非常适合编程初学者入门学习。 机器视觉是人工智能中重要的细分研究领域,OpenCV则是当前机器视觉领域主流的 开源处理库。OpenCV提供包括Python 语言在内的多种编程语言的调用接口,可以方便 地用于计算机图像处理,并可应用于面部识别、目标识别等具体问题。 作为一本以人工智能与机器人为主题的入门书籍,本书主要聚焦于在树莓派平台上使 用Python 语言调用OpenCV库实现机器视觉的任务。全书内容共分为 7章,前 4章为树 莓派与Python 编程基础知识部分,第 1章介绍人工智能与机器人的基本概念,第 2章则 介绍树莓派主板与操作系统使用方法,第 3章为简单的 Python 编程入门学习内容,第 4 章介绍 Python 编程与树莓派的硬件控制的结合;后 3章则为机器视觉部分,第 5章介绍 OpenCV的使用方法,第 6章结合机械臂硬件完成智能分拣项目,第 7章则结合云台硬件 完成人脸追踪机器人项目。 我们力求通过一系列分层次设计的软硬件任务将人工智能的概念由浅入深地融入各个章 节中,同时覆盖 Linux 系统操作、Python 编程、机器人系统搭建等多方面的综合知识,希 望本书可以作为中小学STEAM人工智能教育的一本基础读物,也可以作为中职、高职院 校相关专业学生的参考书籍。 本书使用的控制核心为树莓派 3B+,其软件环境为:操作系统 Raspbian“Jessie”,Python 版本 3.5.3,OpenCV 版本 3.4.4。 系统镜像安装方法及本书所有“试一试”环节的参考程序均可以访问 box.ptpress.com.cn/y/RC2020000001 或扫描二维码获取。
📄 Page
7
人工智能+机器人入门与实战 2 在本书案例中使用的主要硬件载体是可在桌面上固定运转的双轴云台和三轴机械臂等, 它们可以代表一类智能机器人的形态。事实上,可以搭载人工智能系统的机器人形态还有很 多种,例如可在平面内运动的轮式车型机器人、以多旋翼无人机为代表的空中机器人、模仿 人类姿态的双足机器人等,我们计划在后续出版的书籍中使用它们结合其他人工智能主题知 识完成更加丰富的硬件案例。 本书涉及的硬件材料和软件内容均为奇异思维人工智能与机器人教育整体解决方案的一 部分。奇异思维是杭州合学教育科技旗下的教育品牌,秉持“面向未来的教育”目标,希望 能够为提升中小学和职业院校学生的科技素养和创造力贡献自己的力量。 同时,本书遵循开源、分享的创客精神,所有的硬件材料和软件内容均可以很方便地从 公共平台获取。读者在充分理解的基础上,不必局限于本书所列硬件,可自行获取类似设备 完成项目。 本书部分章节内容的完成得益于互联网上的众多开源项目,例如第 7章人脸识别任务 所使用到的OpenFace 项目。在此,我们向这些开源项目的所有参与者表示衷心的感谢。 编者 2019 年 8月 P1-132人工智能.indd 2 2020/3/9 15:28:40
📄 Page
8
走近人工智能第 1 章 1 目 录 第1章 走近人工智能 ……………………………………………………… 1 1.1 初识人工智能 ……………………………………………………………………………2 1.1.1 人工智能是什么 …………………………………………………………………………………2 1.1.2 人工智能的发展历程 ……………………………………………………………………………2 1.1.3 人工智能的应用现状 ……………………………………………………………………………4 1.2 机器人世界 ………………………………………………………………………………5 1.2.1 机器人的发展历史 ………………………………………………………………………………5 1.2.2 什么是智能机器人…………………………………………………………………………………6 1.2.3 常见的智能机器人控制核心 ……………………………………………………………………7 第2章 认识树莓派 ………………………………………………………… 9 2.1 树莓派是什么 ………………………………………………………………………… 10 2.2 树莓派3B+主控板简介 ……………………………………………………………… 11 2.3 树莓派的连接与开机 ………………………………………………………………… 12 2.4 Linux操作系统简介 ………………………………………………………………… 13 第3章 Python编程基础 …………………………………………………16 3.1 什么是编程语言 ……………………………………………………………………… 17 3.2 认识Python语言 …………………………………………………………………… 18 3.3 在树莓派中使用Python编程 ……………………………………………………… 19 3.3.1 交互式编程 …………………………………………………………………………………… 20 3.3.2 使用算术运算符进行运算……………………………………………………………………… 20 3.3.3 用Geany编辑器编写Python程序 ………………………………………………………… 21 3.4 Python中的变量 …………………………………………………………………… 23 3.4.1 变量的赋值 …………………………………………………………………………………… 23 3.4.2 Python的数据类型 …………………………………………………………………………… 24 3.5 if条件结构 …………………………………………………………………………… 25 3.5.1 条件的真与假 ………………………………………………………………………………… 25 3.5.2 比较运算符……………………………………………………………………………………… 26 3.5.3 if条件结构的格式与缩进 ……………………………………………………………………… 26 3.6 while循环结构 ……………………………………………………………………… 28 P1-132人工智能.indd 1 2020/3/9 15:28:40
📄 Page
9
人工智能+机器人入门与实战 2 3.7 Python中的函数 …………………………………………………………………… 28 3.7.1 自定义一个函数 ……………………………………………………………………………… 29 3.7.2 给Python程序加上注释 …………………………………………………………………… 30 第4章 Python编程与树莓派硬件控制 …………………………………32 4.1 树莓派的GPIO接口 ………………………………………………………………… 33 4.2 LED模块与按钮模块的连接 ………………………………………………………… 33 4.3 点亮一盏小灯 ………………………………………………………………………… 35 4.3.1 导入Python扩展包 …………………………………………………………………………… 35 4.3.2 LED显示彩色的原理 ………………………………………………………………………… 35 4.3.3 对输入/输出设备的设定 ……………………………………………………………………… 36 4.3.4 让小灯闪烁起来 ……………………………………………………………………………… 37 4.4 用按钮控制灯的状态 ………………………………………………………………… 38 4.4.1 按钮状态的读取与判断 ……………………………………………………………………… 38 4.4.2 两个按钮的控制与逻辑运算符 ……………………………………………………………… 39 4.5 做一个抢答器吧 ……………………………………………………………………… 40 4.5.1 延时点亮小灯 ………………………………………………………………………………… 40 4.5.2 判断获胜者与break关键词…………………………………………………………………… 41 4.5.3 Python中的随机数 …………………………………………………………………………… 41 第5章 机器视觉入门 ………………………………………………………45 5.1 机器视觉与图像识别 ………………………………………………………………… 46 5.1.1 机器是怎样“看”的 ………………………………………………………………………… 46 5.1.2 机器视觉技术的常见应用 …………………………………………………………………… 48 5.2 认识OpenCV ………………………………………………………………………… 49 5.2.1 OpenCV简介 ………………………………………………………………………………… 49 5.2.2 视频的帧与分辨率……………………………………………………………………………… 50 5.2.3 用树莓派摄像头调取图像……………………………………………………………………… 51 5.3 用OpenCV识别颜色 ……………………………………………………………… 53 5.3.1 HSV颜色空间 ………………………………………………………………………………… 53 5.3.2 图像的二值化…………………………………………………………………………………… 54 5.3.3 找到轮廓的位置 ……………………………………………………………………………… 55 5.4 做一个魔法棒吧 ……………………………………………………………………… 57 5.4.1 用OpenCV绘制小圆点 ……………………………………………………………………… 57 5.4.2 Python中的列表与元组 ……………………………………………………………………… 58 5.4.3 for循环遍历结构 ……………………………………………………………………………… 59 5.4.4 按键值与键盘控制 …………………………………………………………………………… 60 P1-132人工智能.indd 2 2020/3/9 15:28:40
📄 Page
10
走近人工智能第 1 章 3 第6章 机械臂智能分拣任务 ………………………………………………64 6.1 认识机械臂 …………………………………………………………………………… 65 6.1.1 应用广泛的机械臂 …………………………………………………………………………… 65 6.1.2 三轴机械臂结构分析 ………………………………………………………………………… 65 6.2 程序控制机械臂的运动 ……………………………………………………………… 68 6.2.1 认识舵机 ………………………………………………………………………………………… 68 6.2.2 舵机的线路连接………………………………………………………………………………… 69 6.2.3 舵机控制程序 …………………………………………………………………………………… 70 6.2.4 机械臂头部的执行装置——电控吸盘 ……………………………………………………… 71 6.2.5 用示教方式完成物料分拣 …………………………………………………………………… 73 6.3 用树莓派控制机械臂 ………………………………………………………………… 74 6.3.1 硬件连接 ……………………………………………………………………………………… 74 6.3.2 程序编写 ……………………………………………………………………………………… 76 6.4 用摄像头找到木块位置 ……………………………………………………………… 77 6.4.1 安装摄像头 …………………………………………………………………………………… 77 6.4.2 调用摄像头的图像并识别木块位置 ………………………………………………………… 79 6.5 使吸盘位于物体正上方 ……………………………………………………………… 80 6.5.1 当物体位于吸盘正下方时,它的坐标是多少 ……………………………………………… 80 6.5.2 控制1号舵机左右运动,使物体x坐标为320 ……………………………………………… 81 6.5.3 控制机械臂等高运动,使物体y坐标为150 ………………………………………………… 84 6.6 抓取和放置物体 ……………………………………………………………………… 88 6.7 扩展任务 ……………………………………………………………………………… 89 第7章 制作人脸追踪机器人 ………………………………………………92 7.1 人脸识别知多少 ……………………………………………………………………… 93 7.2 使用肤色检测找到人脸 ……………………………………………………………… 94 7.3 使用哈尔特征检测找到人脸 ………………………………………………………… 96 7.4 人脸追踪机器人初制 ………………………………………………………………… 99 7.5 什么是机器学习 …………………………………………………………………… 106 7.5.1 计算机如何识别一只猫 ……………………………………………………………………… 106 7.5.2 机器学习的分类……………………………………………………………………………… 108 7.6 认识人工神经网络 ………………………………………………………………… 109 7.7 识别特定的人脸 …………………………………………………………………… 113 7.8 扩展任务——属于你的机器人 …………………………………………………… 117 7.8.1 让机器人认识你 …………………………………………………………………………… 117 7.8.2 让机器人发出声音 ………………………………………………………………………… 118 附录 “试一试”环节参考程序 ………………………………………… 123 目录 P1-132人工智能.indd 3 2020/3/9 15:28:40
📄 Page
11
P1-132人工智能.indd 4 2020/3/9 15:28:40
📄 Page
12
走近人工智能第 1 章 1 第 章 走 近 人 工 智 能 1 P1-132人工智能.indd 1 2020/3/9 15:28:41
📄 Page
13
人工智能+机器人入门与实战 2 1.1 初识人工智能 1.1.1 人工智能是什么 人工智能(Artificial Intelligence,AI),也被称作机器智能,指由人制造的机器所表 现出来的智能。通常人工智能是指通过计算机程序实现的智能技术,因此常常被视作计算机 科学的一个分支。 人工智能的研究具有高度的技术性和专业性,各分支领域都是深入且各不相通的,因而 涉及范围极广。人工智能的核心问题包括构建能够跟人类相似甚至超越人的推理、知识、规 划、学习、交流、感知、移动和操作物体的能力等。 虽然人工神经网络下的深度学习算法在 20世纪 80 年代已有了突破性进展,但由于计 算机计算能力的限制,其在人工智能领域的应用还没有发挥出应有的威力。近年来,随着超 级计算机算力的飞速提升,加之深度学习算法的进一步优化,人工智能在视频识别、语言分 析、棋类游戏等单方面的能力已经达到了超越人类的水平。另一方面,一个人工智能程序能 够同时解决这几方面的不同问题,充分体现了人工智能的通用性。 人工智能的一个比较流行的定义,也是该领域较早的定义,是由当时麻省理工学院的约 翰·麦卡锡在 1956 年的达特茅斯会议上提出的:人工智能就是要让机器的行为看起来就像 是人所表现出的智能行为一样。随着人工智能60余年的发展,这个定义方式也在受到冲击。 总的来说,人工智能的本质就是对人的思维的信息过程的模拟。 1.1.2 人工智能的发展历程 人工智能的起源 早在20世纪四五十年代,数学系与计算机工程师就已经开始探讨用机器模拟智能的可能。 1950 年,艾伦·图灵(见图 1.1)提出了著名的图灵测试:人类测试员通过文字与密 室里的一台机器和一个人自由对话,如果测试员无法分辨谁是人、谁是机器,则参与对话的 机器就被认为通过测试。 图1.1 艾伦·图灵(Alan Turing)(1912—1954 年) P1-132人工智能.indd 2 2020/3/9 15:28:41
📄 Page
14
走近人工智能第 1 章 3 图灵测试在过去数十年中一直被广泛认为是测试机器智能的重要标准,对人工智能的发 展产生了极为深远的影响。 1956 年,约翰·麦卡锡等 10人在美国达特茅斯学院开会研讨“如何用机器模拟人的 智能”,会上提出“人工智能”这一概念,这标志着人工智能学科的诞生。 人工智能研究发展的起起落落 人工智能概念的提出给世界带来了很大的震撼,人们乐观地预测,人类将在短时间内 制造出完全智能的机器。麻省理工学院的约瑟夫·维森鲍姆(Joseph Weizenbaum)在 1966 年发表了世界第一款自然语言对话程序Eliza(见图 1.2)。这款程序可以模拟人与人 聊天的过程。虽然Eliza 只是基于人类的对话提取关键词并做出预设的反应,但在早年还是 让许多用户误认为是在与真实人类对话。 图1.2 Eliza 与人的对话 然而,虽然如Eliza 这样的早期人工智能产品层出不穷,但还是难以满足社会上对于人 工智能的过高期待。从 20世纪 70 年代起,对人工智能的批评声越来越多,公众的热情与 投资都出现了大幅度的消退。 直到 20世纪 80年代,随着卡耐基·梅隆大学为DEC公司开发的专家系统XCON在 商业上的巨大成功,人工智能才重新回到业界的视线中。专家系统是一种基于特定规则回答 特定领域问题的系统,例如,XCON可以帮助DEC公司根据客户的需求自动选择计算机 部件组合,准确率达到了专业技师的水平从而节省了大量的人力成本。但到了这一时期,人 们已经逐渐不再追求建立一个通用的模拟人类的人工智能,而是开始专注于通过人工智能来 解决具体领域的实际问题。 另一方面,在这一时期,人工神经网络(Artificial Neural Network,ANN)的研究也 取得了重要进展。人工神经网络是一种模仿动物大脑的结构和功能的数学模型。人工神经网 络通常由大量的人工神经元联结进行计算,并可以在外界信息的基础上改变内部结构,也就 P1-132人工智能.indd 3 2020/3/9 15:28:41
📄 Page
15
人工智能+机器人入门与实战 4 是具备学习功能。在 20世纪 80 年代,反向传播算法有了关键进展,其被证明是用于人工 神经网络训练的有效方法。 但到了 20世纪 80年代末、90年代初,业界逐渐发现以专家系统为代表的人工智能系 统往往开发和维护成本高昂,而商业价值有限,人工智能的发展再次步入寒冬。 人工智能的新浪潮 进入 21世纪后,计算机芯片的运算能力得到了飞速的提升。在这一背景下,人工智能 算法也取得了重大发展。基于强劲的运算力,人工神经网络在语音识别、图像分析、视频理 解等诸多领域都创造了新的成功。 2016 年,谷歌(Google)旗下 DeepMind 开发的人工智能围棋程序 AlphaGo 通过 人工神经网络深度学习训练,在一场举世瞩目的人机大战中以 4:1 战胜了围棋世界冠军李世 石九段。这次成功点燃了社会对于新时代人工智能的巨大热情,人们开始意识到人工智能在 很多领域的能力已经远超人类。 DeepMind 团队在 2017 年末推出了增强版的人工智能下棋程序AlphaZero。它与初 版的AlphaGo 相比有几点重大的改变:一是AlphaZero 只需要棋类的基本规则作为训练 的基础,不需要任何人类棋谱作为参考;二是它采用了更为通用的算法,可以延展到将棋与 国际象棋中。在短时间(34小时内)训练后,AlphaZero 成功击败了围棋、将棋、国际象 棋领域的当时最强的AI 程序。这一成果让人们更清晰地认识到了机器自我学习的潜力,并 对人工智能具备更强的通用性充满期待。 1.1.3 人工智能的应用现状 人工智能的概念覆盖了机器视觉、语音识别与人机交互、自动驾驶等多个范畴,在当今 社会中已有着大量的运用。 机器视觉 机器视觉是指在人工智能系统中配备有视觉仪器并通过视觉仪器捕捉到的情报进行分析 处理。机器视觉目前被广泛应用于安防、车牌识别系统、医疗辅助诊断、工业化生产线中。 在安防领域,机器视觉可以从大量监控视频数据中提取出有效的信息,从而辅助警方侦 破案件;在医疗辅助诊断方面,机器视觉可以对医学影像进行分析,从而减少误诊或漏诊; 在工业化生产中,机器视觉则可以对物品进行分类与分拣。 语音识别与人机交互 正确识别并理解人类语言一直以来都是人工智能研究的重要课题。近年来,这一领域也 得到了高速发展。现在的人工智能系统能够以相当高的准确率将人类说的话转化为文本,并 基于对语义的理解判断用意,进而做出针对性的答复。这一流程包含语音文字转化、自然语 言理解等多个环节。 P1-132人工智能.indd 4 2020/3/9 15:28:41
📄 Page
16
走近人工智能第 1 章 5 目前,主流网络视频流媒体服务提供商都提供了高效的人工智能自动实时字幕功能; Siri 等移动智能助手也正一步步地进入我们的生活;而基于人工智能打造的智能客服系统还 能有效地替代部分传统人工客服的作用并同时针对客户需求进行数据分析与优化。 自动驾驶 自动驾驶技术目前发展速度极为迅猛,大量的传统车企和科技公司纷纷投身于这一巨大 的市场。Google 旗下的自动驾驶汽车已经在小范围投入商业使用,而特斯拉汽车已经通过 OTA(Over the Air)升级具备了部分自动驾驶功能。按照目前的发展趋势,自动驾驶汽车 大范围投入实际使用已近在咫尺。 自动驾驶汽车显然是一个基于人工智能的复杂系统,它需要借助车载的大量传感器实时 监测数据并进行分析,选择合适的行驶路线,保证高效、安全地运行。 1.2 机器人世界 1.2.1 机器人的发展历史 机器人(Robot)是一种模拟人类或其他生物的行为或思想的机械,也泛指可以取代或 协助人类工作的自动执行任务的人造机器。 机器人一词最早出现于 1920 年捷克科幻作家卡雷尔·恰佩克(Karel Capek)的《罗 索姆的万能机器人》一文中。而现实中的机器人约从 20世纪 50 年代起开始发展,至今经 历了约 60年的历程。 1959 年,美国人乔治·德沃尔(George Devol)与约瑟夫·恩格尔伯格(Joseph F Engelberger)联手制造出了世界上第一台工业机器人。这一工业机器人可以以高精确度模 拟人类完成生产线上的重复工作。 这一阶段的机器人基本是基于设定好的程序完成指定的动作,因此也被称为程序控制型 机器人或示教型机器人。这样的机器人只能被视为程序控制型机械,与人工智能还没有交集。 此后,随着传感器技术的发展,新制造的机器人上开始搭载大量的用于感知环境的传感 器,用以感知周边的温度、湿度、亮度等信息,从而辅助人类做出决策。这些机器人常被用 于探索一些人类不便进入的区域,例如地震灾区等。 而在人工智能的辅助下,机器人技术也在向着新阶段发展。以人工智能作为机器人的控 制核心,机器人可以结合外部环境信息自主做出决策,而不用依赖人类的外部指令。这一阶 段的机器人才能被称为智能机器人。 人工智能技术的核心是对人类思维过程的模拟,关于它的研究,更多是在计算机程序算 法方面。而机器人则是一类模拟人类或生物的硬件(机械),它可以是只模拟行为的传统工 业机器人,也可以是搭载人工智能技术的当代智能机器人。因此,机器人不一定搭载了人工 P1-132人工智能.indd 5 2020/3/9 15:28:41
📄 Page
17
人工智能+机器人入门与实战 6 智能技术,人工智能技术本身与硬件载体也并无直接关系。但是,人工智能技术要在实际生 产、生活中得到应用,机器人一直以来都被认为是其最佳的硬件载体。 1.2.2 什么是智能机器人 智能机器人通常是由 3部分组成的:感知单元、逻辑单元和执行单元(见图 1.3)。 图 1.3 人类与智能机器人的组成部分对比 感知单元通常由多种传感器组成,用于感知周边环境,再将信息传递给机器人的逻辑单 元(图 1.4 所示为超声波传感器)。感知单元相当于机器人的“感觉器官”。 图1.4 超声波传感器可以用于测距 逻辑单元是机器人的控制核心,承担着连接感知单元和执行单元的关键作用,它处理并 分析感知单元传递的信息,进而指挥执行单元执行动作(图1.5所示为Arduino 主控板)。 逻辑单元相当于机器人的“大脑”,在人工智能技术的发展下,机器人逻辑单元的分析能力 越来越强。 执行单元则包括电机、显示设备、发声设备等,它们接收逻辑单元的控制指令并做出相 应的反应。执行单元相当于机器人的“肢体”,最典型的执行单元是电机(见图 1.6)。 P1-132人工智能.indd 6 2020/3/9 15:28:42
📄 Page
18
走近人工智能第 1 章 7 图 1.5 可用作智能机器人控制核心的 Arduino 主控板 图 1.6 电机是机器人最典型的执行单元 1.2.3 常见的智能机器人控制核心 智能机器人的核心是控制器,一般称为主控板,用于处理传感器传输的信息并指挥执行 器工作。 现在已经有了很多专门为软件开发者设计的主控平台,例如现在火爆的树莓派 (Raspberry Pi)、英特尔推出的爱迪生(Edison),以及历史最长的Arduino 等。根据 其性能和架构的区别,主控平台又可以分为单片机平台与微型计算机平台两个大类。 单片机平台 单片机约起源于 20世纪 70 年代,随着处理核心运算能力的逐年提升,其在自动化工 业生产中发挥着越来越重要的作用。但早年单片机的程序编写十分复杂,无法方便地被软件 开发者甚至普通大众使用。直到 2006 年,第一个开源单片机平台Arduino 出现后,才有 越来越多的开发者能轻松地用单片机来制作小型的智能机器人系统。 微型计算机平台 微型计算机平台等同于一台小型计算机主机,具备普通计算机的主要功能,通常自带 蓝牙、Wi-Fi 连接功能,支持USB扩展连接,可自由安装主流操作系统,如Windows、 Android及开源系统Linux等。这些专为智能设备设计的微型计算机,不仅体积小、能耗较低, 还自带一些与传感器、执行器等机器人单元进行信号交互的接口,适合作为智能机器人的主 控制器使用。目前最流行的微型计算机平台是树莓派。 虽然近年来微型计算机平台性能发展迅速,但它们从架构上并不是专为电子控制系统设 计的。虽然智能机器人的历史并不长,但由多个电子元器件组成的电子控制系统已经发展了 很长时间。传统上,人们通常使用单片机作为电子控制系统的核心元件。单片机通常集成了 处理核心(CPU)、存储器(RAM与ROM)、大量信号输入 / 输出接口,是专为控制电 子元器件而设计的。 P1-132人工智能.indd 7 2020/3/9 15:28:43
📄 Page
19
人工智能+机器人入门与实战 8 本章要点回顾 走近人工智能 说说你对人工智能的理解 知道达特茅斯会议标志着人 工智能的诞生 知道人工智能的发展经历了 3 次浪潮 知道机器人从示教型到智能 化的发展历程 知道组成智能机器人的 3个 基本单元 知道常见的智能机器人控制核 心有单片机和微型计算机等 知道人工智能在机器视觉、 语言识别与人机交互、自动 驾驶等领域都有大量应用 初识人工智能 机器人世界 P1-132人工智能.indd 8 2020/3/9 15:28:43
📄 Page
20
走近人工智能第 1 章 9 第 章 认 识 树 莓 派 2 P1-132人工智能.indd 9 2020/3/9 15:28:43