当前位置:主页 > 书籍配套资源 > ROS配套资源
《ROS机器人高效编程(原书第3版)》源码

《ROS机器人高效编程(原书第3版)》源码

  • 更新:2022-02-27
  • 大小:59.1 MB
  • 类别:ROS
  • 作者:阿尼尔?马哈塔尼
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书包含了大量示例,帮助你开发机器人程序,并为你提供使用开源ROS库和工具的完整解决方案。本书主要内容包括:ROS的概念、命令行工具、可视化GUI以及如何调试ROS,如何将机器人传感器和执行器连接到ROS,如何从摄像头和3D传感器获取数据并分析数据,如何在机器人/传感器和环境仿真中使用Gazebo,如何设计机器人,如何使用OpenCV3.0为机器人添加视觉功能,如何使用新版本的PCL向机器人添加3D感知功能。本书适合各个阶层的机器人开发人员和机器人爱好者阅读。

封面图

目录

  • 推荐序一
  • 推荐序二
  • 译者序
  • 前言
  • 作者简介
  • 审校者简介
  • 第1章ROS入门1
  • 1.1 PC安装教程3
  • 1.2 使用软件库安装ROS Kinetic3
  • 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创建虚拟机9
  • 1.4 通过Docker镜像使用ROS11
  • 1.4.1安装Docker11
  • 1.4.2获取和使用ROS Docker镜像和容器11
  • 1.5 在BeagleBone Black上安装ROS Kinetic12
  • 1.5.1准备工作13
  • 1.5.2配置主机和source.list文件16
  • 1.5.3设置密钥16
  • 1.5.4安装ROS功能包17
  • 1.5.5为ROS初始化rosdep17
  • 1.5.6在BeagleBone Black中配置环境18
  • 1.5.7在BeagleBone Black中安装rosinstall18
  • 1.5.8BeagleBone Black基本ROS示例18
  • 1.6 本章小结19
  • 第2章ROS架构及概念20
  • 2.1 理解ROS文件系统级20
  • 2.1.1工作空间21
  • 2.1.2功能包22
  • 2.1.3元功能包23
  • 2.1.4消息24
  • 2.1.5服务25
  • 2.2 理解ROS计算图级25
  • 2.2.1节点与nodelet27
  • 2.2.2主题28
  • 2.2.3服务29
  • 2.2.4消息29
  • 2.2.5消息记录包30
  • 2.2.6节点管理器30
  • 2.2.7参数服务器30
  • 2.3 理解ROS开源社区级31
  • 2.4 ROS试用练习32
  • 2.4.1ROS文件系统导览32
  • 2.4.2创建工作空间32
  • 2.4.3创建ROS功能包和元功能包33
  • 2.4.4编译ROS功能包34
  • 2.4.5使用ROS节点35
  • 2.4.6如何使用主题与节点交互37
  • 2.4.7如何使用服务39
  • 2.4.8使用参数服务器41
  • 2.4.9创建节点42
  • 2.4.10编译节点44
  • 2.4.11创建msg和srv文件45
  • 2.4.12使用新建的srv和msg文件48
  • 2.4.13launch文件51
  • 2.4.14动态参数53
  • 2.5 本章小结57
  • 第3章可视化和调试工具58
  • 3.1 调试ROS节点60
  • 3.1.1使用gdb调试器调试ROS节点60
  • 3.1.2在ROS节点启动时调用gdb调试器61
  • 3.1.3在ROS节点启动时调用valgrind分析节点62
  • 3.1.4设置ROS节点core文件转储62
  • 3.2 日志消息62
  • 3.2.1输出日志消息62
  • 3.2.2设置调试消息级别63
  • 3.2.3为特定节点配置调试消息级别64
  • 3.2.4消息命名65
  • 3.2.5按条件显示消息与过滤消息65
  • 3.2.6显示消息的方式——单次、可调以及其他组合66
  • 3.2.7使用rqt_console和rqt_logger_level在运行时修改调试级别66
  • 3.3 检测系统状态69
  • 3.4 设置动态参数73
  • 3.5 当出现异常状况时使用roswtf75
  • 3.6 可视化节点诊断77
  • 3.7 绘制标量数据图78
  • 3.8 图像可视化81
  • 3.9 3D可视化83
  • 3.9.1使用rqt_rviz在3D世界中实现数据可视化83
  • 3.9.2主题与坐标系的关系86
  • 3.9.3可视化坐标变换87
  • 3.10 保存与回放数据88
  • 3.10.1什么是消息记录包文件89
  • 3.10.2使用rosbag在消息记录包文件中记录数据89
  • 3.10.3回放消息记录包文件90
  • 3.10.4查看消息记录包文件的主题和消息91
  • 3.11 应用rqt与rqt_gui插件93
  • 3.12 本章小结93
  • 第4章3D建模与仿真95
  • 4.1 在ROS中自定义机器人的3D模型95
  • 4.2 创建第一个URDF文件95
  • 4.2.1解释文件格式97
  • 4.2.2在rviz里查看3D模型98
  • 4.2.3加载网格到机器人模型中100
  • 4.2.4使机器人模型运动100
  • 4.2.5物理和碰撞属性101
  • 4.3 xacro——一种更好的机器人建模方法102
  • 4.3.1使用常量102
  • 4.3.2使用数学方法103
  • 4.3.3使用宏103
  • 4.3.4使用代码移动机器人103
  • 4.3.5使用SketchUp进行3D建模107
  • 4.4 在ROS中仿真109
  • 4.4.1在Gazebo中使用URDF 3D模型109
  • 4.4.2在Gazebo中添加传感器112
  • 4.4.3在Gazebo中加载和使用地图115
  • 4.4.4在Gazebo中移动机器人116
  • 4.5 本章小结118
  • 第5章导航功能包集入门119
  • 5.1 ROS导航功能包集119
  • 5.2 创建变换120
  • 5.2.1创建广播器121
  • 5.2.2创建侦听器121
  • 5.2.3查看坐标变换树124
  • 5.3 发布传感器信息124
  • 5.4 发布里程数据信息127
  • 5.4.1Gazebo如何获取里程数据128
  • 5.4.2使用Gazebo创建里程数据131
  • 5.4.3创建自定义里程数据132
  • 5.5 创建基础控制器135
  • 5.6 使用ROS创建地图139
  • 5.6.1使用map_server保存地图141
  • 5.6.2使用map_server加载地图141
  • 5.7 本章小结142
  • 第6章导航功能包集进阶144
  • 6.1 创建功能包144
  • 6.2 创建机器人配置144
  • 6.3 配置全局和局部代价地图147
  • 6.3.1基本参数的配置147
  • 6.3.2全局代价地图的配置148
  • 6.3.3局部代价地图的配置149
  • 6.3.4底盘局部规划器配置149
  • 6.4 为导航功能包集创建启动文件150
  • 6.5 为导航功能包集设置rviz151
  • 6.5.12D位姿估计152
  • 6.5.22D导航目标152
  • 6.5.3静态地图154
  • 6.5.4粒子云154
  • 6.5.5机器人占地空间155
  • 6.5.6局部代价地图156
  • 6.5.7全局代价地图156
  • 6.5.8全局规划157
  • 6.5.9局部规划158
  • 6.5.10规划器规划158
  • 6.5.11当前目标159
  • 6.6 自适应蒙特卡罗定位160
  • 6.7 使用rqt_reconf igure修改参数161
  • 6.8 机器人避障162
  • 6.9 发送目标163
  • 6.10 本章小结166
  • 第7章使用MoveIt!167
  • 7.1 MoveIt!体系结构167
  • 7.1.1运动规划169
  • 7.1.2规划场景169
  • 7.1.3世界几何结构显示器170
  • 7.1.4运动学170
  • 7.1.5碰撞检测170
  • 7.2 在MoveIt!中集成一个机械臂171
  • 7.2.1工具箱里有什么171
  • 7.2.2使用设置助手生成一个MoveIt!功能包172
  • 7.2.3集成到RViz中176
  • 7.2.4集成到Gazebo或实际机械臂中179
  • 7.3 简单的运动规划180
  • 7.3.1规划单个目标181
  • 7.3.2规划一个随机目标181
  • 7.3.3规划预定义的群组状态183
  • 7.3.4显示目标的运动183
  • 7.4 考虑碰撞的运动规划184
  • 7.4.1将对象添加到规划场景中184
  • 7.4.2从规划的场景中删除对象185
  • 7.4.3应用点云进行运动规划186
  • 7.5 抓取和放置任务187
  • 7.5.1规划的场景188
  • 7.5.2要抓取的目标对象189
  • 7.5.3支撑面189
  • 7.5.4感知191
  • 7.5.5抓取191
  • 7.5.6抓取操作193
  • 7.5.7放置操作195
  • 7.5.8演示模式197
  • 7.5.9在Gazebo中仿真198
  • 7.6 本章小结199
  • 第8章在ROS下使用传感器和执行器200
  • 8.1 使用游戏杆或游戏手柄200
  • 8.1.1joy_node如何发送游戏杆动作消息201
  • 8.1.2使用游戏杆数据移动机器人模型202
  • 8.2 使用Arduino添加更多的传感器和执行器206
  • 8.2.1创建使用Arduino的示例程序207
  • 8.2.2由ROS和Arduino控制的机器人平台210
  • 8.3 使用9自由度低成本IMU217
  • 8.3.1安装Razor IMU ROS库219
  • 8.3.2Razor如何在ROS中发送数据221
  • 8.3.3创建一个ROS节点以使用机器人中的9DoF传感器数据222
  • 8.3.4使用机器人定位来融合传感器数据223
  • 8.4 使用IMU——Xsens MTi225
  • 8.5 GPS的使用226
  • 8.5.1GPS如何发送信息228
  • 8.5.2创建一个使用GPS的工程示例229
  • 8.6 使用激光测距仪——Hokuyo URG-04lx230
  • 8.6.1了解激光如何在ROS中发送数据231
  • 8.6.2访问和修改激光数据232
  • 8.7 创建launch文件234
  • 8.8 使用Kinect传感器查看3D环境中的对象235
  • 8.8.1Kinect如何发送和查看传感器数据236
  • 8.8.2创建使用Kinect的示例238
  • 8.9 使用伺服电动机——Dynamixel239
  • 8.9.1Dynamixel如何发送和接收运动命令241
  • 8.9.2创建和使用伺服电动机示例241
  • 8.10 本章小结243
  • 第9章计算机视觉244
  • 9.1 ROS摄像头驱动程序支持245
  • 9.1.1FireWire IEEE1394摄像头245
  • 9.1.2USB摄像头249
  • 9.1.3使用OpenCV制作USB摄像头驱动程序250
  • 9.2 ROS图像255
  • 9.3 ROS中的OpenCV库256
  • 9.3.1安装OpenCV 3.0256
  • 9.3.2在ROS中使用OpenCV256
  • 9.4 使用rqt_image_view显示摄像头输入的图像257
  • 9.5 标定摄像头257
  • 9.5.1如何标定摄像头258
  • 9.5.2双目标定261
  • 9.6 ROS图像管道264
  • 9.7 计算机视觉任务中有用的ROS功能包269
  • 9.7.1视觉里程计270
  • 9.7.2使用viso2实现视觉里程计270
  • 9.7.3摄像头位姿标定271
  • 9.7.4运行viso2在线演示273
  • 9.7.5使用低成本双目摄像头运行viso2276
  • 9.8 使用RGBD深度摄像头实现视觉里程计276
  • 9.8.1安装fovis276
  • 9.8.2用Kinect RGBD深度摄像头运行fovis277
  • 9.9 计算两幅图像的单应性278
  • 9.10 本章小结279
  • 第10章点云280
  • 10.1 理解点云库280
  • 10.1.1不同的点云类型281
  • 10.1.2PCL中的算法281
  • 10.1.3ROS的PCL接口282
  • 10.2 我的第一个PCL程序283
  • 10.2.1创建点云284
  • 10.2.2加载和保存点云到硬盘中287
  • 10.2.3可视化点云290
  • 10.2.4滤波和缩减采样294
  • 10.2.5配准与匹配298
  • 10.2.6点云分区301
  • 10.3 分割305
  • 10.4 本章小结308

资源下载

资源下载地址1:https://pan.baidu.com/s/1NBg3MHuAU4lZNfv6KUy9Dw

相关资源

网友留言