《ROS机器人开发实用案例分析》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(美)卡罗尔·费尔柴尔德,托马斯L.哈曼著;吴中红,石章松,潘丽等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2018
  • ISBN:9787111593720
  • 页数:306 页
图书介绍:本书将介绍ROS框架的知识,以及从机器人的基本概念到高级实践经验的演变中的重要内容。本书将底层设备驱动到控制进程,及信息传递与软件包管理的许多层机器人功能的标准化。本书逐步地提供了移动、机械臂和飞行机器人的实例,描述了作为其他类型机器人基本模型的ROS实现。通过控制这些机器人,无论是模拟还是在现实中,你都可以使用ROS控制来驱动、移动机器人,甚至是让机器人飞行。

第1章 ROS初体验 1

1.1 ROS的用途以及学习ROS的好处 1

1.2哪些机器人采用了ROS 2

1.3安装并启动ROS 4

1.3.1配置Ubuntu系统的软件源 4

1.3.2设置Ubuntu系统软件源列表 5

1.3.3设置Ubuntu系统密钥 5

1.3.4安装ROS Indigo 5

1.3.5初始化rosdep 6

1.3.6环境设置 6

1.3.7安装rosinstall 7

1.3.8故障排除——ROS环境测试 7

1.4生成一个catkin工作空间 7

1.5 ROS的功能包与清单 8

1.5.1 ROS清单 9

1.5.2探索ROS功能包 9

1.6 ROS节点与ROS节点管理器 11

1.6.1 ROS节点 11

1.6.2 ROS节点管理器 12

1.6.3确定节点和主题的ROS命令 14

1.7第一个ROS机器人模拟程序——Turtlesim 15

1.7.1启动Turtlesim节点 15

1.7.2 Turtlesim节点 16

1.7.3 Turtlesim主题与消息 18

1.7.4 Turtlesim的参数服务器 20

1.7.5移动乌龟的ROS服务 22

1.8 ROS命令小结 23

1.9本章小结 24

第2章 构建一个模拟的两轮ROS机器人 25

2.1 rviz 25

2.1.1安装和启动rviz 26

2.1.2使用rviz 27

2.2生成并构建ROS功能包 29

2.3构建差分驱动的机器人URDF 30

2.3.1生成机器人底座 31

2.3.2使用roslaunch 32

2.3.3添加轮子 35

2.3.4添加小脚轮 37

2.3.5添加颜色 38

2.3.6添加碰撞属性 40

2.3.7移动轮子 41

2.3.8 tf和robot_ state publisher简介 42

2.3.9添加物理学属性 42

2.3.10试用URDF工具 43

2.4 Gazebo 45

2.4.1安装并启动Gazebo 45

2.4.2使用roslaunch启动Gazebo 46

2.4.3使用Gazebo 47

2.4.4机器人URDF的修改 50

2.4.5 Gazebo模型验证 51

2.4.6在Gazebo中查看URDF 51

2.4.7机器人模型调整 53

2.4.8移动机器人模型 53

2.4.9其他的机器人仿真环境 54

2.5本章小结 55

第3章 TurtleBot机器人操控 56

3.1 TurtleBot机器人简介 56

3.2下载TurtleBot模拟器软件 57

3.3在Gazebo中启动TurtleBot模拟器 58

3.3.1常见问题与故障排除 60

3.3.2 ROS命令与Gazebo 61

3.3.3模拟环境下使用键盘远程控制TurtleBot 63

3.4控制一台真正的TurtleBot机器人的准备 64

3.5联接上网本与远程计算机 66

3.5.1网络类型 67

3.5.2网络地址 67

3.5.3远程计算机网络设置 68

3.5.4上网本网络设置 69

3.5.5安全外壳协议联接 69

3.5.6网络设置小结 70

3.5.7排查网络联接中的故障 70

3.5.8 TurtleBot机器人系统测试 70

3.6 TurtleBot机器人的硬件规格参数 72

3.7移动真实的TurtleBot机器人 73

3.7.1采用键盘远程控制TurtleBot机器人移动 74

3.7.2采用ROS命令控制TurtleBot机器人移动 75

3.7.3编写第一个Python脚本程序控制TurtleBot机器人移动 76

3.8 rqt工具简介 79

3.8.1 rqt_graph 79

3.8.2 rqt的消息发布与主题监控 82

3.9 TurtleBot机器人的里程计 84

3.9.1模拟的TurtleBot机器人的测程 84

3.9.2真实的TurtleBot机器人的里程计在rviz下的显示 86

3.10 TurtleBot机器人的自动充电 88

3.11本章小结 90

第4章 TurtleBot机器人导航 91

4.1 TurtleBot机器人的3D视觉系统 92

4.1.1 3D视觉传感器原理 92

4.1.2 3D传感器对比 92

4.1.3障碍物规避的缺陷 96

4.2配置TurtleBot机器人并安装3D传感器软件 96

4.2.1 Kinect 96

4.2.2 ASUS与PrimeSense 98

4.2.3摄像头软件结构 98

4.2.4术语界定 98

4.3独立模式下测试3D传感器 99

4.4运行ROS可视化节点 100

4.4.1使用Image Viewer可视化数据 100

4.4.2使用rviz可视化数据 102

4.5 TurtleBot机器人导航 105

4.5.1采用TurtleBot机器人构建房间地图 105

4.5.2采用TurtleBot机器人实现自主导航 109

4.5.3 rqt reconfigure 116

4.5.4进一步探索ROS导航 117

4.6本章小结 117

第5章 构建模拟的机器人手臂 119

5.1 Xacro的特点 119

5.2采用Xacro建立一个关节式机器人手臂URDF 121

5.2.1使用Xacro属性标签 121

5.2.2使用roslaunch启动rrbot 124

5.2.3使用Xacro的包含与宏标签 126

5.2.4给机器人手臂添加网格 129

5.3在Gazebo中控制关节式机器人手臂 133

5.3.1添加Gazebo特定的元素 133

5.3.2将机器人手臂固定在世界坐标系下 135

5.3.3在Gazebo中查看机器人手臂 135

5.3.4给Xacro添加控件 136

5.3.5采用ROS命令行控制机器人手臂 140

5.3.6采用rqt控制机器人手臂 141

5.4本章小结 143

第6章 机器人手臂摇摆的关节控制 144

6.1 Baxter简介 145

6.1.1 Baxter,一款研究型机器人 146

6.1.2 Baxter模拟器 147

6.2 Baxter的手臂 147

6.2.1 Baxter的俯仰关节 149

6.2.2 Baxter的滚转关节 149

6.2.3 Baxter的坐标系 149

6.2.4 Baxter手臂的控制模式 150

6.2.5 Baxter手臂抓手 151

6.2.6 Baxter手臂的传感器 152

6.3下载Baxter软件 152

6.3.1安装Baxter SDK软件 152

6.3.2安装Baxter模拟器 154

6.3.3配置Baxter shell 155

6.3.4安装MoveIt 156

6.4在Gazebo中启动Baxter模拟器 157

6.4.1启动Baxter模拟器 157

6.4.2“热身”练习 161

6.4.3弯曲Baxter手臂 163

6.4.4 Baxter手臂控制器的调校 173

6.5 Baxter手臂与正向运动学 174

6.5.1关节与关节状态发布器 174

6.5.2理解tf 177

6.5.3 rviz下的tf坐标系 180

6.5.4查看机器人元素的tf树 181

6.6 MoveIt简介 182

6.6.1采用MoveIt给Baxter手臂进行运动规划 184

6.6.2在场景中添加物体 185

6.6.3采用MoveIt进行避障运动规划 186

6.7配置真实的Baxter机器人 188

6.8控制真实的 Baxter机器人 190

6.8.1控制关节到达航路点 190

6.8.2控制关节的力矩弹簧 191

6.8.3关节速度控制演示 192

6.8.4其他示例 192

6.8.5视觉伺服和抓握 192

6.9反向运动学 193

6.10本章小结 196

第7章 空中机器人基本操控 198

7.1四旋翼飞行器简介 199

7.1.1风靡的四旋翼飞行器 199

7.1.2滚转角、俯仰角与偏航角 200

7.1.3四旋翼飞行器原理 201

7.1.4四旋翼飞行器的组成 203

7.1.5添加传感器 203

7.1.6四旋翼飞行器的通信 204

7.2四旋翼飞行器的传感器 204

7.2.1惯性测量单元 205

7.2.2四旋翼飞行器状态传感器 205

7.3放飞前的准备工作 205

7.3.1四旋翼飞行器检测 206

7.3.2飞行前检测列表 206

7.3.3飞行中的注意事项 207

7.3.4需要遵循的规则和条例 207

7.4在无人机中使用ROS 208

7.5 Hector四旋翼飞行器简介 208

7.5.1下载Hector Quadrotor功能包 209

7.5.2在Gazebo中启动Hector四旋翼飞行器 210

7.6 Crazyflie 2.0简介 216

7.6.1无ROS情况下的Crazy-fl ie控制 218

7.6.2使用Crazyradio PA进行通信 218

7.6.3加载Crazyflie ROS软件 219

7.6.4放飞前的检查 222

7.6.5使用teleop操控C razy-flie飞行 222

7.6.6在运动捕获系统下飞行 226

7.6.7控制多个Crazyflie飞行 226

7.7 Bebop简介 227

7.7.1加载bebop_ autonomy软件 228

7.7.2 Bebop飞行前的准备 229

7.7.3使用命令控制Bebop飞行 230

7.8本章小结 231

第8章 使用外部设备控制机器人 233

8.1创建自定义ROS游戏控制器接口 233

8.1.1 测试游戏控制器 234

8.1.2使用joy ROS功能包 236

8.1.3使用自定义游戏控制器接口控制Turtlesim 237

8.2创建自定义ROS Android设备接口 242

8.2.1使用Turtlebot Remocon进行操控 242

8.2.2使用Android设备实现ROS机器人的自定义控制 245

8.3在Arduino或树莓派上创建ROS节点 249

8.3.1使用Arduino 249

8.3.2使用树莓派 260

8.4本章小结 261

第9章 操控Crazyflie执行飞行任务 262

9.1执行任务所需的组件 263

9.1.1用于Windows的Kinect v2 263

9.1.2 Crazyflie操作 263

9.1.3任务软件结构 264

9.1.4 OpenCV与ROS 265

9.2安装任务所需的软件 266

9.2.1安装libfreenect2 267

9.2.2安装iai kinect2 269

9.2.3使用iai kinect2元包 271

9.3任务设置 277

9.3.1探测Crazyflie与目标 277

9.3.2使用Kinect与OpenCV 281

9.3.3对Crazyflie进行跟踪 283

9.4 Crazyflie控制 285

9.5放飞Crazyflie 290

9.5.1悬停 290

9.5.2飞往静止目标 292

9.5.3吸取的经验 294

9.6本章小结 295

第10章 ROS功能扩展 296

10.1通过声音控制机器人 296

10.1.1 Sphinx库 297

10.1.2 Rospeex库 298

10.2给机器人添加语音功能 299

10.3给机器人添加人脸识别功能 299

10.3.1采用级联分类器进行人脸识别 300

10.3.2采用OpenCV进行人脸识别 301

10.4本章小结 303