ROS机器人编程实战
上QQ阅读APP看书,第一时间看更新

前言

ROS是一个用于实现机器人编程和开发复杂机器人应用程序的开源软件框架。尽管研究团体在开发具有ROS的应用程序方面非常活跃,并且不断增加其功能,但是相关的参考资料和文档的数量仍然不足以满足开发者的需求。因此,本书的目的是提供关于ROS的全面和最新的信息。而ROS目前已经被公认为机器人应用的主要开发框架。

本书的前几章面向初学者,主要介绍了ROS的基本原理和基础。之后开始研究一些高级的概念,首先介绍了Gazebo/RotorS的基本概念,其中包括移动机器人、机器臂和微型飞行器,这也正是机器人应用最主要的3个分支。本书还介绍了移动机器人和微型飞行器所使用的自主导航框架(包括ORB-SLAM和PTAM),以及机械臂机器人的运动规划和抓取程序。

最后,本书讨论了ROS-Industrial(ROS-I)。这是一个将ROS软件的高级功能扩展到制造业的开源项目。

对于那些希望了解更多关于ROS的功能和特性的ROS用户和开发人员,我相信这本书将是一本优秀的指南。

目标读者

本书的目标读者是来自学术界或工业界的工程师们。本书介绍了一系列在实际工作中会遇到的问题、解决方案以及未来机器人应用开发中的研究问题。读者最好具备GNU/Linux、C++和Python编程与GNU/Linux环境的基本知识,以便能够轻松地理解本书的内容。

本书内容

第1章“ROS入门”介绍了如何在各种不同的平台(例如桌面系统、虚拟机、Linux容器和基于ARM的嵌入式开发板)上安装ROS。

第2章“ROS的体系结构与概念Ⅰ”介绍了ROS的核心概念以及如何使用ROS框架。

第3章“ROS的体系结构与概念Ⅱ”介绍了ROS的高级概念,如参数服务、actionlib、pluginlib、nodelet、坐标变换(TF)等。

第4章“ROS可视化与调试工具”讨论了ROS中可用的各种调试和可视化工具,如gdb、valgrind、rviz、rqt和rosbag。

第5章“在ROS中使用传感器和执行器”讨论了传感器和执行器等硬件组件与ROS的接口,还涉及使用I/O扩展板(如Arduino和Raspberry Pi)的接口传感器。

第6章“ROS建模与仿真”介绍了物理机器人的建模和基于Gazebo的虚拟环境仿真,还讨论了移动机器人和机械臂的建模问题。

第7章“ROS中的移动机器人”讨论了ROS最强大的功能——导航功能包集,它使移动机器人能够自主移动。

第8章“ROS中的机械臂”讲解了如何为机械臂机器人创建和配置MoveIt功能包,并执行运动规划和抓取操作。

第9章“基于ROS的微型飞行器”介绍了微型飞行器(MAV)的仿真框架(RotorS)。我们在这个框架中对MAV进行了研究和开发,还涉及自主导航框架以及ORB SLAM和PTAM。

第10章“ROS-Industrial(ROS-I)”讨论了ROS工业软件包,该软件包提供了一个与工业机械臂机器人连接和控制的解决方案。我们使用一些强大的工具,如MoveIt、Gazebo和RViz。本章还讨论了ROS工业软件包未来在硬件支持、功能和应用方面的发展趋势。

本书要求

读者只需要一台可运行Ubuntu 16.04/18.04的计算机就能够处理本书中的几乎所有示例,不需要任何额外的硬件要求。不过在涉及使用外部传感器、执行器和I/O扩展板的例子时,需要额外的硬件组件。

另一种方案,读者可以使用安装在虚拟机上的Ubuntu 16.04/18.04,例如安装在Windows系统上的virtualbox或VMware,但是这需要更强的计算能力。

本书中讨论的机器人应用需要商业硬件,如I/O扩展板(Arduino、Odroid和Raspberry Pi)、视觉传感器(Kinect和Camera)和执行器(伺服电机和操纵杆)。

最重要的是,建议读者通过本书提供的源代码来学习,以便熟悉技术概念。

排版约定

这个图标表示警告或需要特别注意的内容。

这个图标表示提示或者技巧。