前言
随着关键器件的研究突破,服务机器人这几年发展得如火如荼,无论是担当物品运输的物流机器人还是进行室内清洁的扫地机器人,是执行空中侦察的无人机还是承载人类自动驾驶梦想的无人驾驶汽车,机器人总能为我们带来无限的遐想。随着技术的不断成熟和商业推广的不断开展,一个曾被认为是科幻中的世界也许某一天就会展现在我们面前。

作为机器人主流操作系统之一,ROS目前已经成为事实上的行业标准,同Android在智能手机领域的地位一样。但作为承载人类能听、会说以及会运动等特性的设备助理大脑,ROS在涉及较多跨学科知识的同时,其系统化的文档却较少,因此学习门槛相对较高。

本书注重ROS的基本概念和核心内容,努力为读者提供系统化的视角,同时从开发实践出发,希望能让读者快速上手,迅速掌握开发一款能听会说的机器人的技能。由于机器人导航相关的导航算法等内容已经逐渐由专业的底盘厂商提供,同时导航涉及较多的专业算法和跨学科知识,考虑到本书的篇幅、专业性以及阅读对象,导航相关的内容在本书中不做过多介绍,有兴趣的读者可以查阅相关的资料和书籍进行学习。

与市面上ROS相关书籍(主要介绍较旧的ROS Indigo、ROS Kinetic)不同,本书中的相关代码和环境搭建依托于当前最新的Ubuntu 18.04和ROS Melodic而进行,力图为读者提供最新的专业知识和行业解读。

读者对象

本书主要适合于有一定C++基础、对机器人开发感兴趣但尚无过多接触的软件工程师和理工科学生。

如何阅读本书

本书共包含9章和1个附录,具体如下。

第1章介绍了机器人的发展历史以及ROS的发展历程,并介绍了如何搭建ROS环境。

第2章从一个简单的实例开始介绍了ROS的基本概念,如节点、话题、消息、服务、动作等。

第3章从一个基本的程序开始介绍了如何开发ROS程序包,以及如何编译、调试ROS程序包。

第4章介绍了如何进行ROS的核心技能(消息、服务、动作、启动等)开发,以及如何进行参数配置和分布式计算。

第5章介绍了ROS和运动控制相关的坐标系、控制器等,为读者学习定位、导航等打下基础。

第6章介绍了ROS如何实现与语音交互相关的语音识别、语义合成、声源定位等,这些内容有助于读者开发会说的机器人。

第7章介绍了ROS如何与OpenCV结合进行图像、视觉处理,如何传输、处理图片,如何进行视频流处理等,这些内容有助于读者开发会看的机器人。

第8章介绍了如何进行ROS机器人建模,从最基础的URDF概念到如何利用Solid-works快速建模。

第9章介绍了如何在Gazebo中进行机器人仿真,以及如何搭建仿真环境。

最后的附录介绍了与Linux、ROS相关的基本命令行工具,使缺乏基础的读者也能快速上手。

勘误和支持

由于笔者的水平有限,再加上编写时间仓促,书中难免会出现一些表达不尽人意甚至错误的地方,恳请读者批评指正(可以通过mzl626@163.com与笔者进行交流)。期待能够得到大家的真挚反馈,在技术的道路上我们一起共勉。

致谢

感谢机械工业出版社华章公司的杨绣国编辑,在大半年的时间里她始终支持我的写作,并能允许我根据自己的时间安排写作计划。

感谢我的家人和孩子,他们一直尊重我的写作爱好,允许我把大量的业余时间(一部分本是用来陪伴他们的)花到写作上。


按 Ctrl+p 打印本页】【关闭