内容简介
《ROS机器人开发:实用案例分析》由长期从事ROS机器人研究与教学的专家撰写,深入浅出地对基于ROS的机器人开发技术进行了全面介绍,并通过丰富的实例,详细讲解移动机器人、飞行机器人与机器人手臂等各类机器人的ROS实现。
《ROS机器人开发:实用案例分析》不仅涵盖ROS的基础知识,还循序渐进地讲解了ROS机器人的高级应用特性。书中首先对ROS的基本配置进行介绍,内容包括ROS的安装、基本概念、主要的功能包与工具等。然后对相应的故障排查方法进行了论述。之后通过模拟的方式,先对TurtIesim的ROS组成模块进行描述,再对其他几类典型机器人的ROS组成模块进行相应的介绍。对ROS组成模块的介绍,一般遵循的流程是首先介绍基本的ROS命令,然后对ROS的功能包、节点、主题以及消息进行论述,以此来对ROS机器人操作系统的整体内容进行详细的阐述。为了对书中选用的机器人的整体性能进行描述,书中还给出了相关机器人的技术资料。作者简介
卡罗尔·费尔柴尔德(CarolFairchild),FairchildRobotics公司的所有人、首席工程师,该公司致力于机器人技术的开发与集成。Carol是休斯顿大学明湖分校巴克斯特机器人实验室的研究员,同时也是兼职教授。她的研究领域主要是基于Baxte件几器人的扩展应用开发。
托马斯L.哈曼(ThomasL.Harman)休斯顿大学明湖分校工程系的主任。他的研究领域主要是控制系统、机器人技术与微处理器技术的应用等。2005年,他当选为休斯顿大学明湖分校的特聘教授。他曾担任FIRST机器人大赛的裁判与安全顾问。托马斯博士已经出版的专著、合著书籍有18本,主题涉及微处理器技术、MATLAB与仿真以及美国国家电气规程等。目录
译者序
作者简介
前言
第1章ROS初体验1
1.1ROS的用途以及学习ROS的好处
1.2哪些机器人采用了ROS
1.3安装并启动ROS
1.3.1配置Ubuntu系统的软件源
1.3.2设置Ubuntu系统软件源列表
1.3.3设置Ubuntu系统密钥
1.3.4安装ROSIndigo
1.3.5初始化rosdep
1.3.6环境设置
1.3.7安装rosinstall
1.3.8故障排除-ROS环境测试
1.4生成一个catkin工作空间
1.5ROS的功能包与清单
1.5.1ROS清单
1.5.2探索ROS功能包
1.6ROS节点与ROS节点管理器
1.6.1ROS节点
1.6.2ROS节点管理器
1.6.3确定节点和主题的ROS命令
1.7第一个ROS机器人模拟程序-Turtlesim
1.7.1启动Turtlesim节点
1.7.2Turtlesim节点
1.7.3Turtlesim主题与消息
1.7.4Turtlesim的参数服务器
1.7.5移动乌龟的ROS服务
1.8ROS命令小结
1.9本章小结
第2章构建一个模拟的两轮ROS机器人
2.1rviz
2.1.1安装和启动rviz
2.1.2使用rviz
2.2生成并构建ROS功能包
2.3构建差分驱动的机器人URDF
2.3.1生成机器人底座
2.3.2使用roslaunch
2.3.3添加轮子
2.3.4添加小脚轮
2.3.5添加颜色
2.3.6添加碰撞属性
2.3.7移动轮子
2.3.8tf和robot_state_publisher简介
2.3.9添加物理学属性
2.3.10试用URDF工具
2.4Gazebo
2.4.1安装并启动Gazebo
2.4.2使用roslaunch启动Gazebo
2.4.3使用Gazebo
2.4.4机器人URDF的修改
2.4.5Gazebo模型验证
2.4.6在Gazebo中查看URDF
2.4.7机器人模型调整
2.4.8移动机器人模型
2.4.9其他的机器人仿真环境
2.5本章小结
……
第3章TurtleBot机器人操控
第4章TurtleBot机器人导航
第5章构建模拟的机器人手臂
第6章机器人手臂摇摆的关节控制
第7章空中机器人基本操控
第8章使用外部设备控制机器人
第9章操控Crazyflie执行飞行任务
第10章ROS功能扩展前言/序言
学习ROS,并通过支持ROS的机器人(如Baxter和TurtleBot)进行实际操作,将开启一段神奇的机器人技术的学习之旅。ROS具有十分突出的优点以及鲜明的特色,但其学习曲线也较为陡峭。通过对许多实际的ROS应用的尝试,并在总结了一系列错误的经验教训之后,我们摸索出了一条切实有效的学习路径,并形成了《ROS机器人开发:实用案例分析》所论述的内容。《ROS机器人开发:实用案例分析》会呈现我们关于ROS的见解中最重要的知识,并在读者的ROS学习之旅中提供循序渐进的引导。我们将结合典型的ROS机器人进行介绍,这些机器人包括TurtleBot、Baxter、Crazyflie以及Bebop,此外还将通过模拟机器人对相关技术进行论述,这些模拟机器人主要有Turtlesim和Hector。
除了对一般性的ROS技术进行论述外,《ROS机器人开发:实用案例分析》还将对ROS机器人的高级应用特性进行讲解。《ROS机器人开发:实用案例分析》首先对ROS的基本配置进行介绍,内容包括ROS的安装、基本概念、主要的功能包与工具简介等。然后对相应的故障排查方法进行了论述,当读者在实际操作中得到的结果与预期结果不相符时,可以按照相应方法进行故障的排查。然后通过模拟的方式,先对Turtlesim的ROS组成模块进行了描述,之后对其他几类典型机器人的ROS组成模块进行了相应的介绍。对ROS组成模块的介绍,一般遵循的流程是首先介绍基本的ROS命令,然后对ROS的功能包、节点、主题以及消息进行论述,以此来对ROS机器人操作系统的整体内容进行详细的阐述。为了对书中选用的机器人的整体性能进行描述,书中还给出了相关机器人的技术资料。
ROS涵盖了完整的软件概念、实现以及相应的工具,其目标是为机器人提供复杂系统的同质化图景以及一体化的软件集成。传感器的外部扩展库、执行器驱动以及相应的接口均已包含其中,此外ROS还囊括了大部分目前最新最有效的算法。对于如OpenCV这样十分流行的第三方开源项目,ROS并未包含,但可以直接对其进行导入。此外,为了节省研究人员的时间,使研究人员能够将精力集中于自己的兴趣点上,ROS还提供了一系列的辅助工具,来对机器人进行控制、监控以及调试,这些工具包括rqt、rviz、Gazebo、动态配置工具以及Movelt等。