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

本文涉及的产品
资源编排,不限时长
简介:
前 言
本书包含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/下载。

目 录
前言
第1章 机器人学概述  
第2章 服务机器人的机械设计  
第3章 用ROS和Gazebo进行机器人仿真  
第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 将PyAIML集成到ROS中  170
9.6.1 aiml_server.py  171
9.6.2 aiml_client.py  172
9.6.3 aiml_tts_client.py  172
9.6.4 aiml_speech_recog_client.py  173
9.6.5 start_chat.launch  174
9.6.6 start_tts_chat.launch  174
9.6.7 start_speech_chat.launch  175
9.7 习题  176
9.8 本章小结  177
第10章 对ChefBot硬件进行集成并使用Python与ROS对接  178
10.1 构建ChefBot硬件  178
10.2 ChefBot PC配置及ChefBot ROS开发包设置  181
10.3 将ChefBot传感器接入Tiva C开发板  181
10.4 为ChefBot编写一个ROS Python驱动  185
10.5 理解ChefBot ROS启动文件  189
10.6 使用ChefBot Python节点和启动文件  190
10.6.1 在ROS中使用SLAM构建房间地图  195
10.6.2 使用ROS实现定位和导航  196
10.7 习题  197
10.8 本章小结  197
第11章 使用Qt和Python设计机器人的图形用户界面  198
11.1 在Ubuntu 14.04.2 LTS中安装Qt  198
11.2 在Qt中使用Python绑定进行开发  199
11.2.1 PyQt  199
11.2.2 PySide  200
11.3 使用PyQt和PySide进行开发  200
11.3.1 Qt设计器的介绍  200
11.3.2 Qt的信号与槽机制  202
11.3.3 将UI文件转化为Python代码  202
11.3.4 为PyQt代码添加槽定义  204
11.3.5 运行Hello World GUI应用  206
11.4 使用ChefBot的控制GUI进行开发  206
11.5 习题  213
11.6 本章小结  213
第12章 ChefBot的标定和测试  214
12.1 使用ROS标定Xbox Kinect  214
12.1.1 标定Kinect的RGB相机  215
12.1.2 标定Kinect IR相机  217
12.2 轮式里程计的标定  218
12.2.1 里程计误差分析  219
12.2.2 误差校正  220
12.3 标定MPU 6050  220
12.4 使用GUI测试机器人  221
12.5 习题  223
12.6 本章小结  223
相关实践学习
一键创建和部署高分电影推荐语音技能
本场景使用天猫精灵技能应用平台提供的技能模板,在2-5分钟内,创建一个好玩的高分电影推荐技能,使用模板后无须代码开发,系统自动配置意图、实体等,新手0基础也可体验创建技能的乐趣。
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
11天前
|
机器学习/深度学习 自然语言处理 机器人
基于深度学习的智能语音机器人交互系统设计方案
**摘要** 本项目旨在设计和实现一套基于深度学习的智能语音机器人交互系统,该系统能够准确识别和理解用户的语音指令,提供快速响应,并注重安全性和用户友好性。系统采用分层架构,包括用户层、应用层、服务层和数据层,涉及语音识别、自然语言处理和语音合成等关键技术。深度学习模型,如RNN和LSTM,用于提升识别准确率,微服务架构和云计算技术确保系统的高效性和可扩展性。系统流程涵盖用户注册、语音数据采集、识别、处理和反馈。预期效果是高识别准确率、高效处理和良好的用户体验。未来计划包括系统性能优化和更多应用场景的探索,目标是打造一个适用于智能家居、医疗健康、教育培训等多个领域的智能语音交互解决方案。
|
5天前
|
机器学习/深度学习 存储 自然语言处理
使用Python实现深度学习模型:语言翻译与多语种处理
【7月更文挑战第21天】 使用Python实现深度学习模型:语言翻译与多语种处理
19 0
|
1月前
|
索引 Python 安全
【Python内功心法】:深挖内置函数,释放语言潜能
【Python内功心法】:深挖内置函数,释放语言潜能
|
2月前
|
安全 Java C语言
【Python 的内存管理机制专栏】Python 内存管理机制与底层实现:C 语言视角的剖析
【5月更文挑战第18天】Python的内存管理涉及对象分配、引用计数和垃圾回收。对象分配类似C的动态内存,但更自动化。引用计数跟踪对象引用,计数为0时回收。垃圾回收机制自动清理不再使用的对象,避免内存泄漏。这种高效自动化管理让开发者能专注于业务逻辑,而底层实现的理解有助于解决特殊问题和优化性能。
【Python 的内存管理机制专栏】Python 内存管理机制与底层实现:C 语言视角的剖析
|
1月前
|
机器学习/深度学习 Java 开发者
Python vs. Java:语言之争的终结
【6月更文挑战第8天】Python与Java,两种影响力巨大的编程语言,各有千秋。Python以简洁语法和强大库支持在数据科学、机器学习领域大放异彩,适合快速原型设计;而Java以其稳定性能、跨平台兼容性在大型系统、企业应用中占据一席之地。语言之争实为互补,开发者应根据项目需求选择合适工具,两者和谐共存,共同推动编程技术进步。
|
29天前
|
机器人 API 开发者
Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)
Python基于Mirai开发的QQ机器人保姆式教程(亲测可用)
|
1月前
|
Python
技术心得记录:分分钟学会一门语言之Python3篇【转载】
技术心得记录:分分钟学会一门语言之Python3篇【转载】
12 0
|
1月前
|
Web App开发 JSON 程序员
老程序员分享:Python有哪些好用的语言翻译方法
老程序员分享:Python有哪些好用的语言翻译方法
11 0
|
1月前
|
XML 数据采集 前端开发
Python第二章(HTMl文件,CSS语言与第三方库Beautiful Soup)
Python第二章(HTMl文件,CSS语言与第三方库Beautiful Soup)
|
1月前
|
Go Python
go语言调用python脚本
go语言调用python脚本
31 0