当前位置:主页 > 书籍配套资源 > ROS机器人配套资源
《ROS机器人程序设计(原书第2版)》源码

《ROS机器人程序设计(原书第2版)》源码

  • 更新:2022-03-21
  • 大小:59.3 MB
  • 类别:ROS机器人
  • 作者:恩里克·费尔南德斯
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

无论是业余爱好者还是专业的机器人开发人员,在开始进行机器人系统及程序设计时,首先要面对的问题都是最基本的驱动机器人的轮子的设计。ROS通过软件代码复用集成了众多已经开发完成的功能组件。本书就是专门帮助读者从对ROS一无所知到能够通过ROS系统完成小型机器人系统的开发和编程工作的。

本书提供了各种实际的示例代码供读者学习和理解ROS的软件框架。你可以在仿真环境中自行构建机器人相应的功能程序。本书第2版在第1版的基础上增加了首次与ROS Hydro一起工作,如何创建、可视化和处理不同传感器的点云信息,如何控制和利用多关节机械臂,并提供简单易懂的实用教程编写自己的机器人。

封面图

目录

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

资源下载

资源下载地址1:https://pan.baidu.com/s/1qH9v4QMUFoNY-y0zd8nh7A

相关资源

网友留言