零、前言
《使用 Python 学习机器人》包含 9 章,介绍了如何从头开始构建自主移动机器人并使用 Python 对其进行编程。 本书中提到的机器人是一种服务机器人,可用于在家庭,旅馆和饭店中提供食物。 该书从头到尾讨论了构建此机器人的分步过程。 本书从机器人技术的基本概念开始,然后转向机器人的 3D 建模和仿真。 成功模拟机器人之后,它讨论了构建机器人原型所需的硬件组件。
该机器人的软件部分主要使用 Python 编程语言和软件框架来实现,例如机器人操作系统(ROS)和 OpenCV。 从机器人的设计到创建机器人用户界面,您都可以看到 python 的应用。 Gazebo 模拟器用于模拟机器人和机器视觉库,例如 OpenCV,OpenNI 和 PCL,用于处理 2D 和 3D 图像数据。 每章都提供了足够的理论来理解应用部分。 这本书是由该领域的专家审阅的,这是他们手工和对机器人技术的热爱的结果。
这本书是给谁的
《使用 Python 学习机器人技术》对于想要探索服务机器人领域的企业家,想要在其机器人上实现更多功能的专业人员,想在机器人技术上进行更多探索的研究人员以及学习机器人的业余爱好者或学生是一个很好的伴侣。 该书遵循分步指南,任何人都可以轻松地找到它。
本书涵盖的内容
第 1 章,“机器人操作系统入门”解释了 ROS 的基本概念,它们是机器人编程的主要平台。
第 2 章,“了解差动机器人的基础知识”讨论了差动机器人的基本概念。 这些概念是差动驱动的运动学和逆运动学。 这将帮助您在软件中实现差动驱动控制器。
第 3 章,“建模差动机器人”讨论了机器人设计约束的计算以及该移动机器人的 2D/3D 建模。 2D/3D 建模基于一组机器人要求。 完成设计和机器人建模后,阅读器将获得可用于创建机器人仿真的设计参数。
第 4 章,“使用 ROS 模拟差速驱动机器人”引入了一个名为 Gazebo 的机器人模拟器,并帮助读者使用它来模拟自己的机器人。
第 5 章,“设计 ChefBot 硬件和电路”讨论了构建 Chefbot 所需的不同硬件组件的选择。
第 6 章,“将执行器和传感器连接到机器人控制器”讨论了该机器人中使用的不同执行器和传感器与 Tiva C Launchpad 控制器的接口。
第 7 章,“视觉传感器与 ROS 的接口”讨论了可在 Chefbot 中用于自主导航的不同视觉传感器的接口,例如 Kinect 和 Orbecc Astra。
第 8 章,“构建 ChefBot 硬件和软件集成”讨论了 ROS 中机器人硬件和软件的完整构造,以实现自主导航。
第 9 章,“使用 Qt 和 Python 设计机器人的 GUI”讨论了 GUI 的开发,该 GUI 可以命令机器人在类似酒店的环境中移动到桌子上。
充分利用这本书
这本书全是关于建造机器人的。 从本书开始,您应该具有一些硬件。 可以从头开始构建机器人,也可以购买带编码器反馈的差动驱动配置机器人。 您应该购买用于嵌入式处理的控制器板(例如 Texas Instruments LaunchPad),并且至少应具有一台笔记本电脑/上网本来进行整个机器人处理。 在本书中,我们使用英特尔 NUC 进行机器人处理,它体积非常紧凑,并具有高性能。 对于 3D 视觉,您应该具有 3D 传感器,例如激光扫描仪,Kinect 或 Orbecc Astra。
在软件部分,您应该对使用 GNU/Linux 命令有很好的了解,并且对 Python 也有很好的了解。 您应该安装 Ubuntu 16.04 LTS 来处理示例。 如果您具有 ROS,OpenCV,OpenNI 和 PCL 的知识,这将有所帮助。 对于这些示例,您必须安装 ROS Kinect/Melodic。
下载示例代码文件
您可以从这个页面的帐户中下载本书的示例代码文件。 如果您在其他地方购买了此书,则可以访问这个页面并注册以将文件直接通过电子邮件发送给您。
您可以按照以下步骤下载代码文件:
- 登录或登录 www.packtpub.com 。
- 选择支持选项卡。
- 单击代码下载和勘误。
- 在搜索框中输入书籍的名称,然后按照屏幕上的说明进行操作。
下载文件后,请确保使用以下最新版本解压缩或解压缩文件夹:
- Windows 的 WinRAR/7-Zip
- Mac 的 Zipeg/iZip/UnRarX
- Linux 的 7-Zip/PeaZip
本书的代码包也托管在 GitHub 上。 我们还从这里提供了丰富的书籍和视频目录中的其他代码包。 去看一下!
下载彩色图像
我们还提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。 您可以从这个页面下载。
使用约定
本书中使用了许多文本约定。
CodeInText
:指示文本,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,虚拟 URL,用户输入和 Twitter 句柄中的代码字。 这是一个示例:“第一个步骤是创建一个世界文件,并使用.world
文件扩展名保存它。”
代码块设置如下:
<xacro:include filename="$(find
chefbot_description)/urdf/chefbot_gazebo.urdf.xacro"/>
<xacro:include filename="$(find
chefbot_description)/urdf/chefbot_properties.urdf.xacro"/>
任何命令行输入或输出的编写方式如下:
$ roslaunch chefbot_gazebo chefbot_empty_world.launch
警告或重要提示如下所示。
提示和技巧如下所示。