描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111559603丛书名: 机器人设计与制作系列
内容简介
本书是一本关于机器人学的书籍,从机器人的基本结构开始,逐步讲解了有关机器人的硬件及软件结构。机器人的硬件部分主要包括了基本机械结构以及完成机器人定位和自主导航所需的各种传感器;机器人的软件部分是基于Python语言在ROS中进行编写的程序,目的是完成机器人的指定功能。而后通过硬件和软件的结合完成了机器人在指定地图内按照用户命令进行移动的功能,并且有一个GUI强化了人机界面的交互功能。
目 录
目 录
前言
第1章 机器人学概述 1
1.1 什么是机器人 2
1.1.1 术语机器人的来历 2
1.1.2 现代机器人定义 3
1.2 机器人从哪儿来 7
1.3 机器人上都有什么 9
1.3.1 肢体 10
1.3.2 传感器 10
1.3.3 执行器 11
1.3.4 控制器 11
1.4 如何制作机器人 12
1.4.1 反应式控制 12
1.4.2 分级(协商)控制 12
1.4.3 混合控制 12
1.5 本章小结 13
第2章 服务机器人的机械设计 14
2.1 服务机器人的设计需求 14
2.2 机器人的传动装置 15
2.2.1 选择电机和轮子 15
2.2.2 设计小结 16
2.2.3 机器人底盘设计 17
2.3 安装LibreCAD、Blender和MeshLab 18
2.3.1 安装LibreCAD 18
2.3.2 安装Blender 18
2.3.3 安装MeshLab 18
2.4 用LibreCAD生成机器人的二维CAD图 19
2.4.1 底座设计 20
2.4.2 底座连接杆设计 21
2.4.3 轮子、电机和电机夹具设计 22
2.4.4 脚轮设计 24
2.4.5 中间层设计 24
2.4.6 顶层设计 24
2.5 用Blender制作机器人的三维模型 25
2.5.1 Blender中的Python脚本语言 25
2.5.2 Blender中的Python API介绍 26
2.5.3 机器人建模中的Python脚本 28
2.6 习题 33
2.7 本章小结 33
第3章 用ROS和Gazebo进行机器人仿真 34
3.1 什么是机器人仿真 34
3.1.1 机器人数学建模 37
3.1.2 ROS和Gazebo简介 43
3.1.3 在Ubuntu 14.04.2下安装ROS Indigo 46
3.1.4 在酒店环境下进行ChefBot和TurtleBot仿真 70
3.2 习题 75
3.3 本章小结 75
第4章 设计ChefBot的硬件部分 76
4.1 ChefBot硬件的规格标准 76
4.2 机器人的硬件架构框图 77
4.2.1 电机和编码器 77
4.2.2 电机驱动器 79
4.2.3 嵌入式控制板 81
4.2.4 超声传感器 82
4.2.5 惯性测量单元 83
4.2.6 Kinect 83
4.2.7 中央处理单元 84
4.2.8 扬声器/麦克风 85
4.2.9 电源/电池 85
4.3 ChefBot硬件的工作原理 86
4.4 习题 87
4.5 本章小结 88
第5章 机器人执行机构与车轮编码器 89
5.1 直流减速电机接入Tiva C开发板 89
5.1.1 差速传动轮式机器人 92
5.1.2 安装Energia集成开发环境 92
5.1.3 电机接口代码 94
5.2 正交编码器接入Tiva C开发板 98
5.2.1 编码器数据的处理 99
5.2.2 正交编码器接口代码 101
5.3 Dynamixel执行机构 104
5.4 习题 107
5.5 本章小结 107
第6章 机器人传感器 108
6.1 超声测距传感器 108
6.2 红外接近传感器 113
6.3 惯性测量单元 115
6.3.1 惯性导航 116
6.3.2 MPU 6050接入Tiva C开发板 117
6.3.3 在Energia中编写接口代码 119
6.4 利用Energia将支持DMP的MPU 6050接入开发板 121
6.5 习题 125
6.6 本章小结 125
第7章 视觉传感器在Python和ROS中的编程方法 126
7.1 机器人视觉传感器清单和图像处理库 126
7.2 OpenCV、OpenNI和PCL简介 129
7.2.1 什么是OpenCV 129
7.2.2 什么是OpenNI 132
7.2.3 什么是PCL 133
7.3 使用ROS、OpenCV和OpenNI进行Kinect的Python编程 134
7.3.1 启动OpenNI驱动的方法 134
7.3.2 OpenCV的ROS接口 134
7.4 使用Kinect、ROS、OpenNI和PCL处理点云 139
7.5 将点云转换为激光雷达数据 140
7.6 使用ROS和Kinect实现SLAM算法 141
7.7 习题 142
7.8 本章小结 142
第8章 使用Python和ROS实现语音识别及合成 143
8.1 语音识别技术 143
8.1.1 语音识别系统框图 144
8.1.2 语音识别库 145
8.1.3 Windows语音识别开发平台 145
8.1.4 语音合成 145
8.1.5 语音合成库 146
8.2 在Ubuntu 14.04.2中使用Python实现语音识别及合成 146
8.2.1 在Ubuntu 14.04.2中安装Pocket Sphinx及其Python绑定 147
8.2.2 在Ubuntu 14.04.2中使用Pocket Sphinx的Python绑定 147
8.2.3 输出结果 148
8.3 在Ubuntu 14.04.2中使用Pocket Sphinx、GStreamer及Python实现实时语音识别 149
8.4 在Ubuntu 14.04.2中使用Julius及Python实现语音识别 151
8.4.1 Julius语音识别器和Python模块的安装 152
8.4.2 Python-Julius客户端代码 153
8.4.3 在Pocket Sphinx、Julius中提高语音识别的准确度 154
8.4.4 在Ubuntu 14.04.2中安装eSpeak和Festival 154
8.5 在Windows中使用Python实现语音识别及合成 155
8.6 在ROS Indigo中使用Python实现语音识别 156
8.7 在ROS Indigo中使用Python实现语音合成 157
8.8 习题 159
8.9 本章小结 159
第9章 使用Python在ChefBot中应用人工智能 160
9.1 ChefBot中的交互系统框图 160
9.2 AIML介绍 161
9.3 PyAIML介绍 164
9.3.1 在Ubuntu 14.04.2上安装PyAIML 165
9.3.2 从源码中安装PyAIML 165
9.4 使用AIML和Python进行开发 165
9.5 使用A.L.I.C.E AIML文件进行开发 167
9.5.1 将AIML文件载入内存 168
9.5.2 载入AIML文件并将其存为brain文件 169
9.5.3 使用Bootsrtap方法载入AIML文件和brain文件 169
9.6 将PyAI
前言
第1章 机器人学概述 1
1.1 什么是机器人 2
1.1.1 术语机器人的来历 2
1.1.2 现代机器人定义 3
1.2 机器人从哪儿来 7
1.3 机器人上都有什么 9
1.3.1 肢体 10
1.3.2 传感器 10
1.3.3 执行器 11
1.3.4 控制器 11
1.4 如何制作机器人 12
1.4.1 反应式控制 12
1.4.2 分级(协商)控制 12
1.4.3 混合控制 12
1.5 本章小结 13
第2章 服务机器人的机械设计 14
2.1 服务机器人的设计需求 14
2.2 机器人的传动装置 15
2.2.1 选择电机和轮子 15
2.2.2 设计小结 16
2.2.3 机器人底盘设计 17
2.3 安装LibreCAD、Blender和MeshLab 18
2.3.1 安装LibreCAD 18
2.3.2 安装Blender 18
2.3.3 安装MeshLab 18
2.4 用LibreCAD生成机器人的二维CAD图 19
2.4.1 底座设计 20
2.4.2 底座连接杆设计 21
2.4.3 轮子、电机和电机夹具设计 22
2.4.4 脚轮设计 24
2.4.5 中间层设计 24
2.4.6 顶层设计 24
2.5 用Blender制作机器人的三维模型 25
2.5.1 Blender中的Python脚本语言 25
2.5.2 Blender中的Python API介绍 26
2.5.3 机器人建模中的Python脚本 28
2.6 习题 33
2.7 本章小结 33
第3章 用ROS和Gazebo进行机器人仿真 34
3.1 什么是机器人仿真 34
3.1.1 机器人数学建模 37
3.1.2 ROS和Gazebo简介 43
3.1.3 在Ubuntu 14.04.2下安装ROS Indigo 46
3.1.4 在酒店环境下进行ChefBot和TurtleBot仿真 70
3.2 习题 75
3.3 本章小结 75
第4章 设计ChefBot的硬件部分 76
4.1 ChefBot硬件的规格标准 76
4.2 机器人的硬件架构框图 77
4.2.1 电机和编码器 77
4.2.2 电机驱动器 79
4.2.3 嵌入式控制板 81
4.2.4 超声传感器 82
4.2.5 惯性测量单元 83
4.2.6 Kinect 83
4.2.7 中央处理单元 84
4.2.8 扬声器/麦克风 85
4.2.9 电源/电池 85
4.3 ChefBot硬件的工作原理 86
4.4 习题 87
4.5 本章小结 88
第5章 机器人执行机构与车轮编码器 89
5.1 直流减速电机接入Tiva C开发板 89
5.1.1 差速传动轮式机器人 92
5.1.2 安装Energia集成开发环境 92
5.1.3 电机接口代码 94
5.2 正交编码器接入Tiva C开发板 98
5.2.1 编码器数据的处理 99
5.2.2 正交编码器接口代码 101
5.3 Dynamixel执行机构 104
5.4 习题 107
5.5 本章小结 107
第6章 机器人传感器 108
6.1 超声测距传感器 108
6.2 红外接近传感器 113
6.3 惯性测量单元 115
6.3.1 惯性导航 116
6.3.2 MPU 6050接入Tiva C开发板 117
6.3.3 在Energia中编写接口代码 119
6.4 利用Energia将支持DMP的MPU 6050接入开发板 121
6.5 习题 125
6.6 本章小结 125
第7章 视觉传感器在Python和ROS中的编程方法 126
7.1 机器人视觉传感器清单和图像处理库 126
7.2 OpenCV、OpenNI和PCL简介 129
7.2.1 什么是OpenCV 129
7.2.2 什么是OpenNI 132
7.2.3 什么是PCL 133
7.3 使用ROS、OpenCV和OpenNI进行Kinect的Python编程 134
7.3.1 启动OpenNI驱动的方法 134
7.3.2 OpenCV的ROS接口 134
7.4 使用Kinect、ROS、OpenNI和PCL处理点云 139
7.5 将点云转换为激光雷达数据 140
7.6 使用ROS和Kinect实现SLAM算法 141
7.7 习题 142
7.8 本章小结 142
第8章 使用Python和ROS实现语音识别及合成 143
8.1 语音识别技术 143
8.1.1 语音识别系统框图 144
8.1.2 语音识别库 145
8.1.3 Windows语音识别开发平台 145
8.1.4 语音合成 145
8.1.5 语音合成库 146
8.2 在Ubuntu 14.04.2中使用Python实现语音识别及合成 146
8.2.1 在Ubuntu 14.04.2中安装Pocket Sphinx及其Python绑定 147
8.2.2 在Ubuntu 14.04.2中使用Pocket Sphinx的Python绑定 147
8.2.3 输出结果 148
8.3 在Ubuntu 14.04.2中使用Pocket Sphinx、GStreamer及Python实现实时语音识别 149
8.4 在Ubuntu 14.04.2中使用Julius及Python实现语音识别 151
8.4.1 Julius语音识别器和Python模块的安装 152
8.4.2 Python-Julius客户端代码 153
8.4.3 在Pocket Sphinx、Julius中提高语音识别的准确度 154
8.4.4 在Ubuntu 14.04.2中安装eSpeak和Festival 154
8.5 在Windows中使用Python实现语音识别及合成 155
8.6 在ROS Indigo中使用Python实现语音识别 156
8.7 在ROS Indigo中使用Python实现语音合成 157
8.8 习题 159
8.9 本章小结 159
第9章 使用Python在ChefBot中应用人工智能 160
9.1 ChefBot中的交互系统框图 160
9.2 AIML介绍 161
9.3 PyAIML介绍 164
9.3.1 在Ubuntu 14.04.2上安装PyAIML 165
9.3.2 从源码中安装PyAIML 165
9.4 使用AIML和Python进行开发 165
9.5 使用A.L.I.C.E AIML文件进行开发 167
9.5.1 将AIML文件载入内存 168
9.5.2 载入AIML文件并将其存为brain文件 169
9.5.3 使用Bootsrtap方法载入AIML文件和brain文件 169
9.6 将PyAI
前 言
前 言本书包含12章,主要介绍如何从零开始构建自主移动的机器人,并使用Python进行编程。本书所提到的机器人是用于家庭、宾馆、餐厅的服务机器人,我们将按照顺序介绍如何一步一步构建它。书中从机器人的基本概念开始,然后过渡到机器人三维建模和仿真,在成功进行机器人仿真之后,将介绍构建机器人原型所需要的硬件组件。
机器人的软件部分主要基于Python编程语言和其他一些软件框架开发,这些软件框架包括机器人操作系统(ROS)、OpenCV等。你将会从设计机器人到设计人机界面等多个方面来了解如何使用Python。Gazebo仿真器常用来对机器人和机器视觉开发库软件如OpenCV、OpenNI进行仿真。PCL用于处理机器人的2D和3D视觉数据。本书每章的开始部分都将首先介绍必需的理论以辅助理解下面的内容。全书内容已经经过机器人领域的专家审阅。
本书包含的内容第1章,主要内容是机器人相关的基本概念和技术,这些对机器人新手来说是非常必要的。
第2章,介绍如何使用LibreCAD和Blender(免费软件)设计机器人的2D和3D模型,还将演示如何使用Blender的Python API构建3D模型。
第3章,带你领略如何使用Gazebo和ROS进行机器人仿真。
第4章,介绍机器人的硬件设计,包括构建ChefBot所需的框图和硬件组件。
第5章,内容涉及使用Tiva C开发板连接机器人执行机构和车轮编码器,还包括使用Dynamixel这样的高端智能执行机构。
第6章,将使用Tiva C开发板连接机器人的超声测距传感器、红外传感器和IMU。
第7章,介绍OpenCV、OpenNI和PCL库,及如何将这些库文件使用Python语言和ROS开发环境连接起来。
第8章,讨论语音识别和语音合成用到的各种库文件,还包括如何将这些库文件使用Python语言和ROS开发环境连接起来。
第9章,将介绍ChatterBot的制作教程,这是为机器人交互做准备的。
第10章,内容涵盖完整的硬件集成和核心软件模块两部分,主要讨论服务机器人的自主导航以及如何使用ROS和Python进行编程。
第11章,包括如何构建用于操作餐厅机器人的GUI教程,GUI由Qt和Python包装器PyQt开发。
第12章,探讨如何对机器人进行标定并进行后的运行测试。
使用须知本书主要介绍如何构建机器人。在开始学习之前,我们需要准备一些硬件设备。机器人可以从零开始构建,也可以买有编码器反馈的差分传动机器人。需要购买一个类似Texas Instruments Launchpad的开发板作为嵌入式处理单元,至少有一台笔记本电脑来完成机器人运算。在本书中,我们将使用Intel NUC来进行机器人运算,它结构紧凑、性能良好。除此之外,为了获取3D图像,还需要有3D传感器,如激光雷达、Kinect或Asus Xtion Pro。
有关软件部分,你需要了解GNU/Linux命令,还要熟悉Python,此外运行本书的例程还要安装Ubuntu 14.04.2 LTS。如果你还熟悉ROS、OpenCV、OpenNI和PCL那就完美了。运行例程需要安装ROS Indigo。
适用读者本书适用于对服务机器人领域感兴趣的创业者,寻求实现机器人更多功能的专业人士,想更多地了解机器人的研究者,以及希望学习机器人的发烧友和学生。本书讲解过程循序渐进,易于理解。
读者支持本书配套了示例代码和彩图,读者可从https://github.com/hzbooks/learning-robotics-using-python/下载。
机器人的软件部分主要基于Python编程语言和其他一些软件框架开发,这些软件框架包括机器人操作系统(ROS)、OpenCV等。你将会从设计机器人到设计人机界面等多个方面来了解如何使用Python。Gazebo仿真器常用来对机器人和机器视觉开发库软件如OpenCV、OpenNI进行仿真。PCL用于处理机器人的2D和3D视觉数据。本书每章的开始部分都将首先介绍必需的理论以辅助理解下面的内容。全书内容已经经过机器人领域的专家审阅。
本书包含的内容第1章,主要内容是机器人相关的基本概念和技术,这些对机器人新手来说是非常必要的。
第2章,介绍如何使用LibreCAD和Blender(免费软件)设计机器人的2D和3D模型,还将演示如何使用Blender的Python API构建3D模型。
第3章,带你领略如何使用Gazebo和ROS进行机器人仿真。
第4章,介绍机器人的硬件设计,包括构建ChefBot所需的框图和硬件组件。
第5章,内容涉及使用Tiva C开发板连接机器人执行机构和车轮编码器,还包括使用Dynamixel这样的高端智能执行机构。
第6章,将使用Tiva C开发板连接机器人的超声测距传感器、红外传感器和IMU。
第7章,介绍OpenCV、OpenNI和PCL库,及如何将这些库文件使用Python语言和ROS开发环境连接起来。
第8章,讨论语音识别和语音合成用到的各种库文件,还包括如何将这些库文件使用Python语言和ROS开发环境连接起来。
第9章,将介绍ChatterBot的制作教程,这是为机器人交互做准备的。
第10章,内容涵盖完整的硬件集成和核心软件模块两部分,主要讨论服务机器人的自主导航以及如何使用ROS和Python进行编程。
第11章,包括如何构建用于操作餐厅机器人的GUI教程,GUI由Qt和Python包装器PyQt开发。
第12章,探讨如何对机器人进行标定并进行后的运行测试。
使用须知本书主要介绍如何构建机器人。在开始学习之前,我们需要准备一些硬件设备。机器人可以从零开始构建,也可以买有编码器反馈的差分传动机器人。需要购买一个类似Texas Instruments Launchpad的开发板作为嵌入式处理单元,至少有一台笔记本电脑来完成机器人运算。在本书中,我们将使用Intel NUC来进行机器人运算,它结构紧凑、性能良好。除此之外,为了获取3D图像,还需要有3D传感器,如激光雷达、Kinect或Asus Xtion Pro。
有关软件部分,你需要了解GNU/Linux命令,还要熟悉Python,此外运行本书的例程还要安装Ubuntu 14.04.2 LTS。如果你还熟悉ROS、OpenCV、OpenNI和PCL那就完美了。运行例程需要安装ROS Indigo。
适用读者本书适用于对服务机器人领域感兴趣的创业者,寻求实现机器人更多功能的专业人士,想更多地了解机器人的研究者,以及希望学习机器人的发烧友和学生。本书讲解过程循序渐进,易于理解。
读者支持本书配套了示例代码和彩图,读者可从https://github.com/hzbooks/learning-robotics-using-python/下载。
评论
还没有评论。