无论是业余爱好者还是专业的机器人开发人员,在开始进行机器人系统及程序设计时,首先要面对的问题都是基本的如何驱动机器人的轮子的设计。ROS通过软件代码复用集成了众多已经开发完成的功能组件。本书专门帮助读者从对ROS一无所知到能够通过ROS系统完成小型机器人系统的开发和编程工作。本书提供了各种实际的示例代码供读者学习和理解ROS的软件框架。你可以在仿真环境中自行构建机器人相应的功能程序。本书第2版在第1版的基础上增加了与ROSHydro一起工作,如何创建、可视化和处理不同传感器的点云信息,如何控制和利用多关节机械臂,并提供简单易懂的实用教程编写自己的机器人。
目录
推荐序一
推荐序二
译者序
前言
作者简介
审校者简介
第1章 ROS Hydro系统入门 1
1.1 PC安装教程 3
1.2 使用软件库安装ROS Hydro 3
1.2.1配置Ubuntu软件库 4
1.2.2添加软件库到sources.list文件中 4
1.2.3设置密钥 5
1.2.4安装ROS 5
1.2.5初始化rosdep 6
1.2.6配置环境 6
1.2.7安装rosinstall 7
1.3 如何安装VirtualBox和Ubuntu 8
1.3.1下载VirtualBox 8
1.3.2创建虚拟机 8
1.4在BeagleBone Black上安装ROS Hydro 11
1.4.1准备工作 12
1.4.2配置主机和source.list文件 13
1.4.3设置密钥 14
1.4.4安装ROS功能包 14
1.4.5初始化rosdep 15
1.4.6在BeagleBone Black中配置环境 15
1.4.7在BeagleBone Black中安装rosinstall 15
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节点与nodelet 23
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.4 ROS系统试用练习 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 当出现异常状况时使用 roswtf 72
3.6 可视化节点诊断 74
3.7 绘制标量数据图 75
3.8 图像可视化 77
3.9 3D可视化 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-04lx 95
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 使用伺服电动机——Dynamixel 104
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自由度低成本惯性测量模组IMU 118
4.8.1下载加速度传感器库 119
4.8.2Arduino Nano和10自由度传感器编程 120
4.8.3创建ROS节点以使用10自由度传感器数据 121
4.9 GPS的使用 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中使用OpenCV 140
5.2.4显示摄像头输入的图像 140
5.3 标定摄像头 141
5.4 ROS图像管道 148
5.5 计算机视觉任务中有用的ROS功能包 152
5.6 使用viso2实现视觉里程计 153
5.6.1摄像头位姿标定 154
5.6.2运行viso2在线演示 157
5.6.3使用低成本双目摄像头运行viso2 159
5.7 使用RGBD深度摄像头实现视觉里程计 160
5.7.1安装fovis 160
5.7.2用Kinect RGBD深度摄像头运行fovis 160
5.8 计算两幅图像的单应性 161
5.9 本章小结 162
第6章 点云 163
6.1 理解点云库 163
猜您喜欢
推荐内容
开源项目推荐 更多
热门活动
热门器件
用户搜过
随便看看
热门下载
热门文章
热门标签
评论