logo
分类于: 计算机基础 人工智能

简介

ROS机器人程序设计(原书第2版)

ROS机器人程序设计(原书第2版) 7.8分

资源最后更新于 2020-03-29 04:13:42

作者:〔西〕恩里克.费尔南德斯

译者:刘锦涛

出版社:出版社机械工业出版社

出版日期:2016-12

ISBN:9787111551058

文件格式: pdf

标签: 机器人 人工智能 ROS 仿真设计

简介· · · · · ·

Exbot易科机器人实验维护书籍,提供学习镜像包括indigo和kinetic等,努力为ROS爱好者和开发人员提供力所能及的服务。本书第2版概括性地介绍了ROS系统的各种工具。ROS是一个先进的机器人操作系统框架,现今已有数百个研究团体和公司将其应用在机器人行业中。对于机器人技术的非专业人士来说,它也相对容易上手。在本书中,你将了解如何安装ROS,如何开始使用ROS的基本工具,以及最终如何应用先进的计算机视觉和导航工具。在阅读本书的过程中无需使用任何特殊的设备。书中每一章都附带了一系列的源代码示例和教程,你可以在自己的计算机上运行。这是你唯一需要做的事情。当然,我们还会告诉你如何使用硬件,这样你可以将你的算法应用到现实环境中。我们在选择设备时特意选择一些业余用户负担得起的设备,同时涵盖了在机器人研究中最典型的传感器或执行器。最后,由于ROS系统的存在使得整个机器人具备在虚拟环境中工作的能力。你将学习如何创建自己的机器人并结合功能强大的导航功能包集。此外如果使用Gazebo仿真环境,你将能够在虚拟环境中运行一切。第2版在最后增加了一章,讲如何使用“Move it!”包控制机械臂执行抓取任务。读完本书后,你会发现已经可以使用ROS机器人进行工作了,并理解其背后的原理。Enrique Fernández在拉斯帕尔马斯大学获得计算机工程博士学位,目前是Clearpath Robotics公司高级机器人工程师。2009年他完成了关于SLAM的硕士学位论文。2013年他的博士论文解决了自主水下滑翔器(AUG)的路径规划问题。那段时间,他还研究了计算机视觉、人工智能以及其他机器人学课题,例如赫罗纳大学的CIRS/ViCOROB研究实验室AUV的惯性导航系统和视觉SLAM。他在2012年参加了欧洲学生自主水下航行器设计挑战赛(Student Autonomous Underwater Challenge-Europe,SAUC-E)并获奖,在2013年作为合作者参与了SAUC-E。获得博士学位后,Enrique作为高级机器人工程师在2013年6月加入PAL Robotics公司的自主导航部门。在那里,他开发了用于REEM、REEM-C和移动机器人以及相关项目的软件,如使用ROS框架的Stockbot。他的研究方向包括运动规划(路径规划和移动机器人控制)、机器人定位和SLAM。在2015年,他作为高级自主系统开发人员加盟Clearpath Robotics公司的自主系统部门从事SLAM相关工作。在学术方面,Enrique发表了多篇会议论文,其中两篇于2011年发表在《International Conference of Robotics and Automation》(ICRA)上。他是Packt Publishing出版的第1版《ROS机器人程序设计》和其他一些书部分章节的作者。他的硕士学位论文是关于室内机器人的FastSLAM算法,此机器人装备了SICK激光扫描仪以及Pioneer差动平台的轮式里程计。他的博士学位论文是关于AUG的路径规划算法和工具。他还拥有电子和嵌入式系统(如PC104和Arduino)的开发经验。他的研究背景包括SLAM、计算机视觉、路径规划、优化、机器人学和人工智能。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

  1. 推荐序一
  2. 推荐序二
  3. 译者序
  4. 前言
  5. 作者简介
  6. 审校者简介
  7. 第1章 ROS Hydro系统入门
  8. 1.1 PC安装教程
  9. 1.2 使用软件库安装ROS Hydro
  10. 1.2.1 配置Ubuntu软件库
  11. 1.2.2 添加软件库到sources.list文件中
  12. 1.2.3 设置密钥
  13. 1.2.4 安装ROS
  14. 1.2.5 初始化rosdep
  15. 1.2.6 配置环境
  16. 1.2.7 安装rosinstall
  17. 1.3 如何安装VirtualBox和Ubuntu
  18. 1.3.1 下载VirtualBox
  19. 1.3.2 创建虚拟机
  20. 1.4 在BeagleBone Black上安装ROS Hydro
  21. 1.4.1 准备工作
  22. 1.4.2 配置主机和source.list文件
  23. 1.4.3 设置密钥
  24. 1.4.4 安装ROS功能包
  25. 1.4.5 初始化rosdep
  26. 1.4.6 在BeagleBone Black中配置环境
  27. 1.4.7 在BeagleBone Black中安装rosinstall
  28. 1.5 本章小结
  29. 第2章 ROS系统架构及概念
  30. 2.1 理解ROS文件系统级
  31. 2.1.1 工作空间
  32. 2.1.2 功能包
  33. 2.1.3 综合功能包
  34. 2.1.4 消息
  35. 2.1.5 服务
  36. 2.2 理解ROS计算图级
  37. 2.2.1 节点与nodelet
  38. 2.2.2 主题
  39. 2.2.3 服务
  40. 2.2.4 消息
  41. 2.2.5 消息记录包
  42. 2.2.6 节点管理器
  43. 2.2.7 参数服务器
  44. 2.3 理解ROS开源社区级
  45. 2.4 ROS系统试用练习
  46. 2.4.1 ROS文件系统导览
  47. 2.4.2 创建工作空间
  48. 2.4.3 创建ROS功能包和综合功能包
  49. 2.4.4 编译ROS功能包
  50. 2.4.5 使用ROS节点
  51. 2.4.6 如何使用主题与节点交互
  52. 2.4.7 如何使用服务
  53. 2.4.8 使用参数服务器
  54. 2.4.9 创建节点
  55. 2.4.10 编译节点
  56. 2.4.11 创建msg和srv文件
  57. 2.4.12 使用新建的srv和msg文件
  58. 2.4.13 启动文件
  59. 2.4.14 动态参数
  60. 2.5 本章小结
  61. 第3章 可视化和调试工具
  62. 3.1 调试ROS节点
  63. 3.1.1 使用gdb调试器调试ROS节点
  64. 3.1.2 ROS节点启动时调用gdb调试器
  65. 3.1.3 ROS节点启动时调用valgrind分析节点
  66. 3.1.4 设置ROS节点core文件转储
  67. 3.2 日志信息
  68. 3.2.1 输出日志信息
  69. 3.2.2 设置调试信息级别
  70. 3.2.3 为特定节点配置调试信息级别
  71. 3.2.4 信息命名
  72. 3.2.5 按条件显示信息与过滤信息
  73. 3.2.6 显示信息的方式——单次、可调、组合
  74. 3.2.7 使用rqt_console和rqt_logger_level在运行时修改调试级别
  75. 3.3 检测系统状态
  76. 3.3.1 检测节点、主题、服务和参数
  77. 3.3.2 使用rqt_graph在线检测节点状态图
  78. 3.4 设置动态参数
  79. 3.5 当出现异常状况时使用roswtf
  80. 3.6 可视化节点诊断
  81. 3.7 绘制标量数据图
  82. 3.8 图像可视化
  83. 3.9 3D可视化
  84. 3.9.1 使用rqt_rviz在3D世界中实现数据可视化
  85. 3.9.2 主题与坐标系的关系
  86. 3.9.3 可视化坐标变换
  87. 3.10 保存与回放数据
  88. 3.10.1 什么是消息记录包文件
  89. 3.10.2 使用rosbag在消息记录包中记录数据
  90. 3.10.3 回放消息记录包文件
  91. 3.10.4 检查消息记录包文件的主题和消息
  92. 3.11 应用rqt与rqt_gui插件
  93. 3.12 本章小结
  94. 第4章 在ROS下使用传感器和执行器
  95. 4.1 使用游戏杆或游戏手柄
  96. 4.1.1 joy_node如何发送游戏杆动作消息
  97. 4.1.2 使用游戏杆数据在turtlesim中移动海龟
  98. 4.2 使用激光雷达——Hokuyo URG-04lx
  99. 4.2.1 了解激光雷达如何在ROS中发送数据
  100. 4.2.2 访问和修改激光雷达数据
  101. 4.3 使用Kinect传感器查看3D环境中的对象
  102. 4.3.1 如何发送和查看Kinect数据
  103. 4.3.2 创建使用Kinect的示例
  104. 4.4 使用伺服电动机——Dynamixel
  105. 4.5 使用Arduino添加更多的传感器和执行器
  106. 4.6 在Arduino上使用超声波传感器
  107. 4.7 距离传感器如何发送消息
  108. 4.7.1 创建使用超声波的示例
  109. 4.7.2 Xsens如何在ROS中发送数据
  110. 4.7.3 创建使用Xsens的示例
  111. 4.8 使用10自由度低成本惯性测量模组IMU
  112. 4.8.1 下载加速度传感器库
  113. 4.8.2 Arduino Nano和10自由度传感器编程
  114. 4.8.3 创建ROS节点以使用10自由度传感器数据
  115. 4.9 GPS的使用
  116. 4.9.1 GPS如何发送信息
  117. 4.9.2 创建一个使用GPS的工程实例
  118. 4.10 本章小结
  119. 第5章 计算机视觉
  120. 5.1 连接和运行摄像头
  121. 5.1.1 FireWire IEEE1394摄像头
  122. 5.1.2 USB摄像头
  123. 5.2 使用OpenCV制作USB摄像头驱动程序
  124. 5.2.1 通过cv_bridge使用OpenCV处理ROS图像
  125. 5.2.2 使用image transport发布图像
  126. 5.2.3 在ROS中使用OpenCV
  127. 5.2.4 显示摄像头输入的图像
  128. 5.3 标定摄像头
  129. 5.4 ROS图像管道
  130. 5.5 计算机视觉任务中有用的ROS功能包
  131. 5.6 使用viso2实现视觉里程计
  132. 5.6.1 摄像头位姿标定
  133. 5.6.2 运行viso2在线演示
  134. 5.6.3 使用低成本双目摄像头运行viso2
  135. 5.7 使用RGBD深度摄像头实现视觉里程计
  136. 5.7.1 安装fovis
  137. 5.7.2 用Kinect RGBD深度摄像头运行fovis
  138. 5.8 计算两幅图像的单应性
  139. 5.9 本章小结
  140. 第6章 点云
  141. 6.1 理解点云库
  142. 6.1.1 不同的点云类型
  143. 6.1.2 PCL中的算法
  144. 6.1.3 ROS的PCL接口
  145. 6.2 我的第一个PCL程序
  146. 6.2.1 创建点云
  147. 6.2.2 加载和保存点云到硬盘
  148. 6.2.3 可视化点云
  149. 6.2.4 滤波和缩减采样
  150. 6.2.5 配准与匹配
  151. 6.2.6 点云分区
  152. 6.3 分割
  153. 6.4 本章小结
  154. 第7章 3D建模与仿真
  155. 7.1 在ROS中自定义机器人的3D模型
  156. 7.2 创建第一个URDF文件
  157. 7.2.1 解释文件格式
  158. 7.2.2 在rviz里查看3D模型
  159. 7.2.3 加载网格到机器人模型
  160. 7.2.4 使机器人模型运动
  161. 7.2.5 物理属性和碰撞属性
  162. 7.3 xacro——一个更好的机器人建模方法
  163. 7.3.1 使用常量
  164. 7.3.2 使用数学方法
  165. 7.3.3 使用宏
  166. 7.3.4 使用代码移动机器人
  167. 7.3.5 使用SketchUp进行3D建模
  168. 7.4 在ROS中仿真
  169. 7.4.1 在Gazebo中使用URDF3D模型
  170. 7.4.2 在Gazebo中添加传感器
  171. 7.4.3 在Gazebo中加载和使用地图
  172. 7.4.4 在Gazebo中移动机器人
  173. 7.5 本章小结
  174. 第8章 导航功能包集入门
  175. 8.1 ROS导航功能包集
  176. 8.2 创建变换
  177. 8.2.1 创建广播机构
  178. 8.2.2 创建侦听器
  179. 8.2.3 查看坐标变换树
  180. 8.3 发布传感器信息
  181. 8.4 发布里程数据信息
  182. 8.4.1 Gazebo如何获取里程数据
  183. 8.4.2 创建自定义里程数据
  184. 8.5 创建基础控制器
  185. 8.5.1 使用Gazebo创建里程数据
  186. 8.5.2 创建自己的基础控制器
  187. 8.6 使用ROS创建地图
  188. 8.6.1 使用map_server保存地图
  189. 8.6.2 使用map_server加载地图
  190. 8.7 本章小结
  191. 第9章 导航功能包集进阶
  192. 9.1 创建功能包
  193. 9.2 创建机器人配置
  194. 9.3 配置全局和局部代价地图
  195. 9.3.1 基本参数的配置
  196. 9.3.2 全局代价地图的配置
  197. 9.3.3 局部代价地图的配置
  198. 9.3.4 基本局部规划器配置
  199. 9.4 为导航功能包集创建启动文件
  200. 9.5 为导航功能包集设置rviz
  201. 9.5.1 2D位姿估计
  202. 9.5.2 2D导航目标
  203. 9.5.3 静态地图
  204. 9.5.4 粒子云
  205. 9.5.5 机器人占地空间
  206. 9.5.6 局部代价地图
  207. 9.5.7 全局代价地图
  208. 9.5.8 全局规划
  209. 9.5.9 局部规划
  210. 9.5.10 规划器规划
  211. 9.5.11 当前目标
  212. 9.6 自适应蒙特卡罗定位
  213. 9.7 使用rqt_reconfigure修改参数
  214. 9.8 机器人避障
  215. 9.9 发送目标
  216. 9.10 本章小结
  217. 第10章 使用MoveIt!
  218. 10.1 MoveIt!体系结构
  219. 10.1.1 运动规划
  220. 10.1.2 规划场景
  221. 10.1.3 运动学
  222. 10.1.4 碰撞检测
  223. 10.2 在MoveIt!中集成一个机械臂
  224. 10.2.1 工具箱里有什么
  225. 10.2.2 使用设置助手生成一个MoveIt!包
  226. 10.2.3 集成到rviz
  227. 10.2.4 集成到Gazebo或实际机器人的手臂
  228. 10.3 简单的运动规划
  229. 10.3.1 规划单个目标
  230. 10.3.2 规划一个随机目标
  231. 10.3.3 规划预定义的群组状态
  232. 10.3.4 显示目标的运动
  233. 10.4 考虑碰撞的运动规划
  234. 10.4.1 将对象添加到规划场景中
  235. 10.4.2 从规划的场景中删除对象
  236. 10.4.3 应用点云进行运动规划
  237. 10.5 抓取和放置任务
  238. 10.5.1 规划的场景
  239. 10.5.2 感知
  240. 10.5.3 抓取
  241. 10.5.4 抓取操作
  242. 10.5.5 放置操作
  243. 10.5.6 演示模式
  244. 10.5.7 在Gazebo中仿真
  245. 10.6 本章小结