智能机器人开发与实践
作者 : 主编 段峰 参编 韩书宁 谭莹 金天磊 张丽娜 张明昕
出版日期 : 2021-05-07
ISBN : 978-7-111-67997-4
适用人群 : 高校人工智能、机器人、计算机及相关专业本科生
定价 : 69.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 237
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD : 无CD
绝版 :
图书简介

本书循序渐进地介绍了机器人的发展、核心功能,并通过一个服务机器人的例子介绍了机器人的完整开发过程。通过本书,读者可以在了解机器人工作原理的基础上,快速开发与实现一个有完整的功能的机器人。本书适合作为高校机器人、人工智能及相关专业作为教材,也可供对机器人开发感兴趣的读者阅读。

图书特色

以参加日本RoboCup机器人世界公开赛夺冠的机器人程序为蓝本
带你循序渐进地构建智能机器人

图书前言

自从20世纪中期开展现代机器人的研究以来,机器人技术发展迅速。现在,机器人已经融入我们的工作和日常生活中。随着计算机、互联网、人工智能技术的发展,机器人的种类日益增多,功能不断增强,使用体验不断改善。
与此同时,机器人的研发也不断取得新的进展。特别是,机器人操作系统(ROS)对智能机器人产业的发展具有非常重要的战略意义。机器人操作系统可以为机器人开发提供一个统一的平台,让更多的用户在此平台上方便地研究和验证机器人算法、开发机器人应用等,极大地促进了机器人技术的发展。2010年,Willow Garage公司发布了开源机器人操作系统ROS(Robot Operating System)。与其说ROS是一个操作系统,不如说它是一种分布式、模块化的开源软件框架。由于具有点对点设计、不依赖编程语言、开源等优点,ROS成为机器人研究领域新的学习和使用热点。
作者所在的南开大学人工智能学院智能感知与人机交互实验室致力于智能机器人的研究工作,本书是基于我们长期使用ROS开发机器人的经验编写而成的,希望给有兴趣学习智能机器人技术的高校学生和从事智能机器人开发工作的技术人员提供一本有用的参考书。
本书分为三个部分:第一部分主要介绍机器人的基础知识,包括机器人的定义、发展历史、关键技术、ROS的框架和使用等内容;第二部分从机器人软硬件组成、视觉功能实现、自主导航功能实现、语音交互功能实现、抓取功能实现等方面介绍如何开发一个功能相对完整的机器人;第三部分结合不同的应用场景给出综合案例,展示如何开发具有不同功能的机器人。
本书中的案例以作者团队参加RoboCup机器人世界公开赛并夺冠的机器人程序为蓝本,初学者跟随本书的讲解,并结合本书配套的实践资源(可登录机工新阅读网站(www.cmpreading.com)下载)进行练习,既可以掌握机器人开发涉及的软件框架的先进理念,又能循序渐进地开发出具有完整功能的智能机器人。
由于作者水平有限,书中难免存在不足之处,恳请广大读者和同行批评指正。

上架指导

人工智能/机器人

封底文字

机器人已经越来越多地出现在我们的工作和日常生活中。与网络、人工智能、计算机等技术深度融合后,机器人的种类日益增多,功能不断增强,使用体验不断改善。本书作者长期从事智能机器人的研发工作,具有丰富的理论和工程经验,并多次率队参加世界机器人大赛,成绩优异。本书便是在这些工作的基础上编写而成的。
本书特色
面向初学者,从机器人的软硬件组成、关键技术到核心功能的实现,层层递进,使读者先建立对机器人系统的认识,再逐步掌握智能机器人核心功能的开发方法。
立足实践,融合工程方法。本书以作者团队参加日本RoboCup机器人世界公开赛并夺冠的机器人程序为蓝本,引导读者逐步开发智能机器人的各个关键功能。读者跟随本书的讲授并进行实践,便可开发出一个具备初步功能的智能机器人。此外,作者注意强调开发中的要点和难点,这些工程经验对读者顺利完成开发具有画龙点睛的作用。
书中案例基于开源机器人操作系统ROS,该开源操作系统容易获取、使用方便,通过案例实践还能够帮助读者掌握主流软件框架的先进理念和开发方法。

图书目录

前言
第一部分 基础知识
第1章 机器人概述 2
1.1 机器人的定义和分类 2
1.1.1 机器人的定义 2
1.1.2 服务机器人的分类 3
1.2 现代机器人的发展历程 3
1.2.1 现代机器人研究初期 3
1.2.2 20世纪70年代 4
1.2.3 20世纪80年代 5
1.2.4 20世纪90年代 7
1.2.5 21世纪 9
1.3 机器人的组成 15
1.3.1 机器人的执行机构 15
1.3.2 驱动装置 16
1.3.3 传感装置 16
1.3.4 控制系统 16
1.3.5 智能系统 16
1.3.6 智能人机接口系统 17
1.4 机器人的关键技术 17
1.4.1 自主移动技术 17
1.4.2 感知技术 18
1.4.3 智能决策和控制技术 18
1.4.4 通信技术 18
1.5 机器人的发展趋势 18
1.5.1 人机交互层次化、人性化 18
1.5.2 与环境的交互智能化 19
1.5.3 资源利用网络化 19
1.5.4 设计与生产标准化、模块化、体系化 19
习题 19
参考文献 19
第2章 ROS入门 22
2.1 ROS简介 22
2.1.1 为什么使用ROS 22
2.1.2 什么是ROS 23
2.1.3 ROS与计算机操作系统的区别 23
2.1.4 ROS的主要特点 24
2.2 ROS的安装与卸载 25
2.2.1 ROS的版本 25
2.2.2 安装、配置ROS Indigo 25
2.2.3 安装、配置ROS Melodic 28
2.2.4 卸载ROS 29
2.3 进一步学习的资源 29
习题 30
参考文献 30
第3章 ROS框架和使用基础 31
3.1 ROS框架 31
3.1.1 文件系统级 31
3.1.2 计算图级 32
3.1.3 社区级 33
3.2 ROS使用基础 34
3.2.1 catkin概述 34
3.2.2 工作空间及其创建方法 34
3.2.3 创建ROS工程包 37
3.2.4 编译ROS工程包 37
3.2.5 创建ROS节点 37
3.2.6 编译运行ROS节点 38
3.2.7 roslaunch的使用 39
3.2.8 创建ROS消息和服务 41
3.2.9 编写简单的消息发布器和订阅器(C++语言实现) 44
3.2.10 编写简单的消息发布器和订阅器(Python语言实现) 47
3.2.11 测试消息发布器和订阅器 48
3.2.12 编写简单的Server和Client(C++语言实现) 49
3.2.13 编写简单的Server和Client(Python语言实现) 51
3.2.14 测试简单的Server和Client 53
习题 54
参考文献 54
第4章 ROS的调试 55
4.1 ROS调试的常用命令 55
4.2 ROS调试的常用工具 56
4.2.1 使用rqt_console在运行时修改调试级别 57
4.2.2 使用roswtf检测配置中的潜在问题 59
4.2.3 使用rqt_graph显示节点状态图 59
4.2.4 使用rqt_plot绘制标量数据图 60
4.2.5 使用image_view显示二维图像 61
4.2.6 使用rqt_rviz(rviz)实现3D数据可视化 63
4.2.7 使用rosbag和rqt_bag记录与回放数据 64
4.2.8 rqt插件与rx应用 65
4.3 ROS基本命令总结 66
4.3.1 创建 ROS 工作空间 66
4.3.2 Package的相关操作 66
4.3.3 节点的相关操作 67
4.3.4 话题的相关操作 67
4.3.5 服务的相关操作 68
4.3.6 rosparam的相关操作 69
4.3.7 bag的相关操作 69
4.3.8 rosmsg的相关操作 70
4.3.9 rossrv的相关操作 70
4.3.10 ROS的其他命令 71
习题 71
第二部分 机器人核心功能的实现
第5章 机器人的安装与初步使用 75
5.1 Turtlebot机器人简介 75
5.2 Turtlebot机器人硬件的组成与配置 76
5.3 Turtlebot机器人软件的安装与测试 77
5.3.1 从源码安装 77
5.3.2 deb安装方式 78
5.3.3 按照Kobuki基座进行配置 79
5.4 启动Turtlebot 80
5.5 通过键盘手动控制Turtlebot 81
5.6 通过脚本控制Turtlebot 81
5.7 监控Kobuki的电池状态 82
5.8 Turtlebot机器人的扩展 83
习题 85
参考文献 85
第6章 机器人视觉功能的实现 86
6.1 视觉传感器 86
6.1.1 Kinect视觉传感器 86
6.1.2 Primesense视觉传感器 87
6.2 驱动程序的安装与测试 88
6.3 同时运行两台Kinect 89
6.4 同时运行Kinect与Primesense 92
6.5 在ROS中使用OpenCV处理RGB图像 92
6.5.1 在ROS中安装OpenCV 92
6.5.2 在ROS代码中使用OpenCV 93
6.5.3 理解ROS-OpenCV 转换架构 93
6.5.4 ROS节点示例 96
6.6 点云库及其使用 99
6.6.1 点云及点云库简介 99
6.6.2 PCL的数据类型 99
6.6.3 发布和订阅点云消息 101
6.6.4 如何在ROS中使用PCL教程 102
6.6.5 PCL的一个简单应用——检测门的开关状态 108
习题 109
参考文献 109
第7章 机器人视觉功能的实现进阶 110
7.1 机器人跟随功能的实现 110
7.1.1 理论基础 110
7.1.2 跟随功能的运行测试 111
7.2 机器人挥手识别功能的实现 114
7.2.1 机器人挥手识别的实现框架及难点分析 115
7.2.2 基于AdaBoost和Cascade算法的人脸检测 116
7.2.3 用模板匹配算法识别人手 118
7.2.4 基于YCrCb颜色空间的肤色分割 119
7.2.5 挥手识别功能的运行测试 119
7.3 机器人的物体识别与定位功能的实现 120
7.3.1 基于Hue直方图的滑动窗口模板匹配方法 120
7.3.2 基于空间点云数据的物体定位方法 121
7.3.3 物体识别与定位的实现和测试 122
7.4 服务机器人人脸与性别识别功能的实现 123
7.4.1 基于OpenCV的传统人脸与性别识别方法 123
7.4.2 基于OpenCV的人脸与性别识别功能的运行测试 124
7.4.3 基于Dlib库的人脸识别方法 126
7.4.4 基于Dlib库的人脸识别功能的运行测试 126
7.5 使用TensorFlow识别手写数字 131
7.5.1 TensorFlow简介 131
7.5.2 安装TensorFlow 132
7.5.3 TensorFlow的基本概念 133
7.5.4 使用TensorFlow进行手写数字识别 135
习题 138
参考文献 138
第8章 机器人自主导航功能 139
8.1 机器人自主导航的关键技术 139
8.1.1 机器人的定位与建图 139
8.1.2 路径规划 142
8.2 Kobuki基座模型的运动学分析 145
8.3 导航工程包集 147
8.3.1 导航工程包集概述 147
8.3.2 硬件需求 147
8.4 导航工程包集的使用基础 147
8.4.1 导航工程包集在机器人上的安装与配置 147
8.4.2 机器人tf配置 155
8.4.3 基础导航调试指南 160
8.4.4 通过ROS发布里程计测量信息 163
8.4.5 通过ROS发布传感器数据流 168
8.5 在Turtlebot上配置并使用导航工程包集 174
8.5.1 使用Turtlebot创建SLAM地图 174
8.5.2 使用Turtlebot已知地图进行自主导航 175
习题 177
参考文献 177
第9章 机器人语音交互功能的基础理论 179
9.1 语音识别 179
9.1.1 声学模型 180
9.1.2 语言模型 183
9.2 语义理解 187
9.3 语音合成 188
参考文献 189
第10章 机器人语音交互功能的实现——PocketSphinx 191
10.1 硬件设备 191
10.2 PocketSphinx语音识别系统简介 191
10.3 在Indigo上安装、测试PocketSphinx 193
10.3.1 PocketSphinx的安装 193
10.3.2 安装语音合成的声音库 194
10.3.3 利用在线工具建立语言模型 195
10.4 在melodic上安装、测试PocketSphinx 197
10.4.1 在melodic版本上安装PocketSphinx 197
10.4.2 PocketSphinx语音识别的测试 197
习题 201
第11章 机器人机械臂抓取功能的实现 202
11.1 机械臂硬件的组成 202
11.2 机械臂运动学分析 203
11.3 机械臂舵机ID的设置 204
11.4 使用USB2Dynamixel控制turtlebotArm 208
11.4.1 安装、测试dynamixel_motor软件包 208
11.4.2 机械臂抓取功能的实现 212
习题 216
第三部分 机器人的应用
第12章 机器人综合应用案例一:长命令识别与多任务执行 218
12.1 案例目标 218
12.2 语音识别任务 219
12.3 在家居环境中自主导航 220
12.4 物体识别与抓取 221
习题 221
第13章 机器人综合应用案例二:跟随与协助用户 222
13.1 案例目标 222
13.2 语音识别命令 222
13.3 跟随与自主导航 223
13.4 检测与识别人脸 225
第14章 机器人综合应用案例三:顾客挥手示意机器人点餐 226
14.1 案例目标 226
14.2 机器人即时建图 227
14.3 机器人识别挥手并移向挥手人 228
14.4 语音识别菜单 229
14.5 自主导航回到吧台 229

教学资源推荐
作者: (爱尔兰)约翰·D. 凯莱赫(John D.Kelleher);(爱尔兰)布莱恩·马克·纳米(Brian Mac Namee);(爱尔兰)奥伊弗·达西(Aoife D’Arcy) 著
作者: [西]何塞·曼努埃尔·戈麦斯-佩雷斯(Jose Manuel Gomez-Perez),[西]罗纳德·德诺(Ronald Denaux),[西]安德烈·加西亚-席尔瓦(Andres Garcia-Silva) 著
作者: Wesley E.Snyder, Hairong Qi
作者: [中]石川(Chuan Shi) [美]俞士纶 (Philip S. Yu) 著
参考读物推荐
作者: 毕然 飞桨教材编写组 编著
作者: [法] 奥雷利安·杰龙(Aurélien Géron)著
作者: [美]弗朗西斯卡·拉泽里(Francesca Lazzeri)著