首页>参考读物>计算机科学与技术>人工智能

机器人系统设计与制作:Python语言实现(原书第2版)
作者 : [印]郎坦·约瑟夫(Lentin Joseph)著
译者 : 刘端阳 译
出版日期 : 2021-09-18
ISBN : 978-7-111-69134-1
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 211
开本 : 16
原书名 : Learning Robotics Using Python, Second Edition
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

本书解释了如何从零开始构建一个自主移动机器人,并使用Python对其进行编程。本书从机器人的基础概念开始,然后介绍机器人的3D建模和仿真。在对机器人成功进行仿真之后,讨论了建立机器人原型所需的硬件组成。在本教程结束时,你将清楚地了解如何将所有东西集成到机器人中,以及如何将打包软件。

图书特色

使用Python和ROS,从零基础开始创建差分驱动机器人
一步步详细讲解设计、模拟、实现交互式自主移动机器人的搭建过程

图书前言

本书共有9章,介绍了如何从头开始构建自主移动机器人并使用 Python 对其进行编程。本书中提到的机器人是一种服务型机器人,可在家中、酒店和餐厅提供上菜服务。本书逐步讨论了构建该机器人的整个过程。首先介绍了机器人学的基本概念,然后阐述了机器人的3D建模和仿真,随后讨论了构建机器人原型所需的硬件组件。
该机器人的软件部分主要使用Python编程语言和软件框架——比如机器人操作系统(Robot Operating System,ROS)和OpenCV视觉库实现。Python的使用贯穿从机器人设计到创建用户界面的整个过程。Gazebo仿真器用于模拟诸如OpenCV、OpenNI和PCL等机器人和机器视觉库,其作用是处理2D和3D图像数据。每一章都提供了足够的理论知识来帮助理解应用部分。本书由该领域的专家审阅,凝聚了他们的辛勤汗水以及对机器人技术的热爱。
目标读者
对于想要探索服务机器人领域的企业家,想要让机器人实现更多功能的专业人士,想要探索更多机器人技术的研究人员,以及想要学习机器人技术的爱好者或学生,本书将大有助益。全书采用循序渐进的讲解方式,便于读者掌握。
内容简介
第1章解释了机器人操作系统的基本概念,该系统是机器人编程的主要平台。
第2章介绍了差分驱动机器人的基本概念。这些概念属于差分驱动的运动学和逆向运动学范畴,有助于你了解如何在软件中实现差分驱动控制。
第3章讨论了机器人设计约束的计算和移动机器人的2D/3D建模方法。2D/3D建模以一组机器人需求为基础实施。在完成设计和机器人建模后,读者将得到设计的参数,这些参数可用于机器人仿真设置。
第4章介绍了名为Gazebo的机器人仿真器,并指导读者使用它来模拟自己的机器人。
第5章讨论了如何选择构建ChefBot所需的各种硬件组件。
第6章讨论了机器人中使用的各种驱动器和传感器与TivaC开发板控制器的连接问题。
第7章讨论了不同视觉传感器(如Kinect和Orbecc Astra)的连接问题,视觉传感器可用于ChefBot机器人的自主导航。
第8章讨论了如何在机器人操作系统中完整构建机器人硬件和软件,以实现自主导航。
第9章介绍了如何开发图形用户界面来指挥机器人在类似酒店的环境中移动到餐桌旁边。
如何充分利用本书
本书讲的是构建机器人的方法,在学习本书之前,你应该配备一些硬件。你可以彻底从零开始构建机器人,也可以购买一个带有编码器反馈的差分驱动配置机器人。你应该购买一块控制器板,例如用于嵌入式处理的美国德州仪器开发板,而且应该至少有一台用于整个机器人处理的笔记本电脑或上网本。本书中使用英特尔NUC进行机器人处理,它的结构非常紧凑,而且性能优异。学习3D视觉功能时,你应该有一个3D传感器,比如激光扫描仪、Kinect或Orbecc Astra。
在软件部分,你应该熟练掌握GNU/Linux命令的使用方法,并且对Python也有很好的了解。你需要安装Ubuntu 1604 LTS才能使用这些示例。了解机器人操作系统、OpenCV、OpenNI和PCL将会有所帮助。要应用这些示例,必须安装机器人操作系统Kinect/Melodic。
下载示例代码及彩色图像
本书的示例代码及所有截图和样图,可以从http://wwwpacktpubcom通过个人账号下载,也可以访问华章图书官网http://wwwhzbookcom,通过注册并登录个人账号下载。
本书的代码包也托管在GitHub上,网址为https://githubcom/PacktPublishing/LearningRoboticsusingPythonSecondEdition。
排版约定
文中的代码体:表示代码、数据库表名称、文件夹名称、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄。
代码块示例如下:

命令行输入或输出示例如下:

表示警告或重要说明。
表示提示和技巧。

上架指导

人工智能/机器人

封底文字

机器人操作系统(ROS)是科研和工业领域非常受欢迎的机器人软件框架。该系统性能强大,可以在机器人中实现多种功能,而不需要从零开始实施。
本书首先介绍机器人操作系统的基础知识,以便你了解差分驱动机器人的基本原理。然后,介绍机器人建模知识以及如何使用机器人操作系统进行设计和模拟。接着设计机器人硬件和接口驱动器。之后,讲述如何使用机器人操作系统对深度传感器和激光雷达进行配置和编程。最后,使用Qt框架为机器人创建图形用户界面。
学习完本书内容后,你将清楚地了解如何将所有元素集成和组装到机器人中,以及如何捆绑软件包。
本书将介绍以下内容:
如何从头开始设计差分驱动机器人。
如何使用机器人操作系统和URDF对差分驱动机器人建模。
如何使用机器人操作系统和Gazebo模拟差分驱动机器人。
如何设计机器人硬件电子器件。
如何将机器人驱动器与嵌入式板连接起来。
如何将机器人操作系统中的不同3D深度摄像头连接起来。
如何实现ChefBot机器人的自主导航。
如何创建用于机器人控制的图形用户界面。

图书目录

前言
第1章ROS入门1
11技术要求1
12ROS概述1
121ROS框架3
122在Ubuntu上安装ROS6
123什么是catkin9
124创建ROS软件包10
125什么是Gazebo14
13本章小结17
14习题17
第2章差分驱动机器人的基础知识18
21数学建模18
22正向运动学20
23逆向运动学23
24本章小结24
25习题24
26扩展阅读25
第3章差分驱动机器人的建模26
31技术要求27
32服务机器人的设计要求27
33机器人的传动装置27
331选择电机和轮子27
332设计小结29
333机器人底盘设计29
34安装LibreCAD、Blender和MeshLab30
341安装LibreCAD31
342安装Blender31
343安装MeshLab32
35用LibreCAD生成机器人的二维CAD图32
351底座设计33
352底座连接杆设计35
353轮子、电机和电机夹具设计36
354脚轮设计37
355中间层设计37
356顶层设计39
36用Blender制作机器人的三维模型40
361在Blender中编写Python脚本40
362Blender Python API41
363机器人模型的Python脚本42
37创建机器人的URDF模型47
38本章小结53
39习题53
310扩展阅读53
第4章利用ROS模拟差分驱动机器人54
41技术要求54
42开始使用Gazebo仿真器55
43结合TurtleBot 2进行仿真工作59
44创建ChefBot仿真62
441深度图像到激光扫描的转换65
442Gazebo仿真的URDF标签和插件65
45可视化机器人传感器数据70
451即时定位与地图构建72
452使用SLAM创建地图73
453自适应蒙特卡罗定位75
454在Gazebo环境中实现AMCL76
455ChefBot在酒店中使用Gazebo进行自主导航78
46本章小结79
47习题79
48扩展阅读80
第5章设计ChefBot的硬件和电路81
51技术要求81
52ChefBot硬件规格82
53机器人框图82
531电机和编码器83
532电机驱动器84
533嵌入式控制器板86
534超声传感器87
535惯性测量单元89
536Kinect/Orbbec Astra90
537中央处理单元91
538扬声器和麦克风92
539电源和电池92
54ChefBot硬件的工作原理93
55本章小结95
56习题95
57扩展阅读95
第6章将执行器和传感器连接到机器人控制器96
61技术要求97
62直流减速电机接入TivaC开发板97
621差分驱动轮式机器人99
622安装Energia IDE99
623电机接口代码104
63正交编码器接入TivaC开发板107
631编码器数据的处理108
632正交编码器接口代码111
64使用Dynamixel执行器114
65使用超声测距传感器117
66使用红外接近传感器123
67使用惯性测量单元125
671惯性导航125
672将MPU 6050与TivaC开发板连接126
673在Energia中编写接口代码129
68本章小结131
69习题132
610扩展阅读132
第7章视觉传感器接入ROS133
71技术要求133
72机器人视觉传感器和图像处理库134
721Pixy2/CMUcam5134
722罗技C920网络摄像头135
723Kinect 360135
724英特尔RealSense D400系列136
725Orbbec Astra深度传感器137
73OpenCV、OpenNI和PCL概述138
731OpenCV138
732OpenNI143
733PCL144
74使用ROS、OpenCV和OpenNI进行Kinect的Python编程144
741启动OpenNI驱动程序的方法145
742OpenCV的ROS接口145
75连接Orbbec Astra与ROS150
76使用Kinect、ROS、OpenNI和PCL处理点云150
77将点云数据转换为激光扫描数据151
78使用ROS和Kinect实现SLAM算法153
79本章小结154
710习题154
711扩展阅读155
第8章ChefBot硬件构建和软件集成156
81技术要求156
82构建ChefBot硬件157
83配置ChefBot PC并设置ChefBot ROS软件包160
84连接ChefBot传感器和TivaC161
85编写ChefBot的ROS Python驱动程序164
86了解ChefBot ROS启动文件169
87使用ChefBot Python节点和启动文件170
871使用SLAM在ROS上绘制房间地图175
872使用ROS定位和导航177
88本章小结179
89习题179
810扩展阅读179
第9章使用Qt和Python开发机器人GUI180
91技术要求180
92在Ubuntu 1604 LTS中安装Qt181
93在Qt中使用Python绑定进行开发181
931PyQt181
932PySide182
94使用PyQt和PySide进行开发182
941Qt设计器183
942Qt信号与槽机制184
943将UI文件转化为Python代码185
944向PyQt代码中添加槽定义186
945Hello World GUI应用程序的操作方法188
95使用ChefBot的控制GUI进行开发189
96在Ubuntu 1604 LTS中安装和使用rqt195
97本章小结197
98习题197
99扩展阅读197
习题解答198

教学资源推荐
作者: [英]西蒙 J.D. 普林斯(Simon J. D. Prince)著
作者: [澳]迪尔克·P. 克洛泽(Dirk P. Kroese),[澳]兹德拉夫科·I. 波提夫(Zdravko I. Botev),[澳]托马斯·泰姆勒(Thomas Taimre),[澳]拉迪斯拉夫·维斯曼(Radislav Vaisman) 著
作者: [美] 纪强(Qiang Ji) 著
作者: [美] 刘兵(Bing Liu) 著
参考读物推荐
作者: 刘驰 王占健 戴子彭 等编著
作者: 魏凯峰 著
作者: [美]安库·A. 帕特尔(Ankur A. Patel),[美]阿贾伊·乌皮利·阿拉萨尼帕莱(Ajay Uppili Arasanipalai) 著