当前位置:主页 > 书籍配套资源 > 机器人开发配套资源
《ROS机器人开发:实用案例分析(原书第2版)》源码

《ROS机器人开发:实用案例分析(原书第2版)》源码

  • 更新:2022-02-03
  • 大小:1.12 MB
  • 类别:机器人开发
  • 作者:卡罗尔·费尔柴尔德
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

本书不仅涵盖ROS的基础知识,还循序渐进地讲解了ROS机器人的高级应用特性。书中首先对ROS的基本配置进行介绍,内容包括ROS的安装、基本概念、主要的功能包与工具等。然后对相应的故障排查方法进行了论述。之后通过模拟的方式,先对Tu rtIesim的ROS组成模块进行描述,再对其他几类典型机器人的ROS组成模块进行相应的介绍。对ROS组成模块的介绍,一般遵循的流程是首先介绍基本的ROS命令,然后对ROS的功能包、节点、主题以及消息进行论述,以此来对ROS机器人操作系统的整体内容进行详细的阐述。为了对书中选用的机器人的整体性能进行描述,书中还给出了相关机器人的技术资料。

封面图

目录

  • 译者序
  • 前言
  • 作者简介
  • 审校者简介
  • 第1章ROS初体验 1
  • 1.1ROS的用途以及学习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 Kinetic 5
  • 1.3.5初始化rosdep 6
  • 1.3.6环境设置 6
  • 1.3.7安装 rosinstall 6
  • 1.3.8故障排除—ROS环境测试 7
  • 1.4创建catkin工作空间 7
  • 1.5ROS的功能包与清单 8
  • 1.5.1ROS清单 8
  • 1.5.2探索ROS功能包 8
  • 1.6ROS节点、话题与消息 10
  • 1.6.1ROS节点 11
  • 1.6.2ROS话题 11
  • 1.6.3ROS消息 11
  • 1.6.4ROS节点管理器 12
  • 1.6.5确定节点和话题的ROS命令 13
  • 1.7第一个ROS机器人模拟程序turtlesim 15
  • 1.7.1启动turtlesim节点 15
  • 1.7.2turtlesim节点 16
  • 1.7.3turtlesim话题与消息 18
  • 1.7.4通过发布/turtle1/cmd_vel话题控制乌龟运动 20
  • 1.7.5通过键盘或游戏手柄控制乌龟移动 22
  • 1.7.6turtlesim的参数服务器 22
  • 1.7.7控制乌龟移动的ROS服务 24
  • 1.8ROS命令小结 25
  • 1.9本章小结 26
  • 第2章构建一个模拟的两轮ROS机器人 27
  • 2.1Rviz简介 27
  • 2.1.1安装和启动Rviz 28
  • 2.1.2熟悉Rviz界面 29
  • 2.2生成并构建ROS功能包 32
  • 2.3构建差分驱动的机器人URDF 33
  • 2.3.1创建机器人底座 33
  • 2.3.2使用roslaunch 34
  • 2.3.3添加轮子 37
  • 2.3.4添加小脚轮 39
  • 2.3.5添加颜色 41
  • 2.3.6添加碰撞属性 42
  • 2.3.7移动轮子 43
  • 2.3.8tf和robot_state_publisher简介 44
  • 2.3.9添加物理学属性 45
  • 2.3.10试用URDF工具 46
  • 2.4Gazebo 47
  • 2.4.1安装并启动Gazebo 48
  • 2.4.2使用roslaunch启动Gazebo 49
  • 2.4.3熟悉Gazebo界面 50
  • 2.4.4机器人URDF的修改 54
  • 2.4.5Gazebo模型验证 55
  • 2.4.6在Gazebo中查看URDF 56
  • 2.4.7机器人模型调整 57
  • 2.4.8移动机器人模型 58
  • 2.4.9其他的机器人模拟环境 59
  • 2.5本章小结 60
  • 第3章TurtleBot机器人操控 61
  • 3.1TurtleBot 2机器人简介 61
  • 3.2下载TurtleBot 2模拟器软件 63
  • 3.3在Gazebo中启动TurtleBot 2模拟器 63
  • 3.3.1常见问题与故障排除 65
  • 3.3.2ROS命令与Gazebo 66
  • 3.3.3模拟环境下使用键盘远程控制TurtleBot 2 68
  • 3.4控制真正的TurtleBot 2机器人的设置 69
  • 3.5连接上网本与远程计算机 71
  • 3.5.1网络类型 71
  • 3.5.2网络地址 72
  • 3.5.3远程计算机网络设置 73
  • 3.5.4上网本网络设置 73
  • 3.5.5SSH连接 74
  • 3.5.6网络设置小结 74
  • 3.5.7排查网络连接中的故障 75
  • 3.5.8TurtleBot 2机器人系统测试 75
  • 3.6TurtleBot 2机器人的硬件规格参数 76
  • 3.7移动真实的TurtleBot 2机器人 78
  • 3.7.1采用键盘远程控制TurtleBot 2机器人移动 78
  • 3.7.2采用ROS命令控制TurtleBot 2机器人移动 79
  • 3.7.3编写第一个Python脚本程序控制TurtleBot 2机器人移动 80
  • 3.8rqt工具简介 83
  • 3.8.1rqt_graph 83
  • 3.8.2rqt的消息发布与话题监控 86
  • 3.9TurtleBot机器人的测程 87
  • 3.9.1模拟的TurtleBot 2机器人的测程 91
  • 3.9.2Rviz下真实的TurtleBot 2机器人的测程显示 93
  • 3.10TurtleBot机器人的自动充电 95
  • 3.11TurtleBot 3介绍 96
  • 3.12下载TurtleBot 3模拟软件 98
  • 3.13在Rviz中启动TurtleBot 3模拟软件 99
  • 3.14在Gazebo中启动TurtleBot 3模拟软件 100
  • 3.15硬件装配与测试 103
  • 3.16下载TurtleBot 3机器人软件包 103
  • 3.16.1在远程计算机上安装软件 103
  • 3.16.2在SBC上安装软件 104
  • 3.17TurtleBot 3与远程计算机的网络连接 107
  • 3.17.1远程计算机网络设置 108
  • 3.17.2TurtleBot 3网络设置 108
  • 3.17.3SSH通信测试 110
  • 3.17.4网络连接的故障处理 110
  • 3.18控制真实的TurtleBot 3移动 111
  • 3.19本章小结 113
  • 第4章TurtleBot机器人导航 114
  • 4.1TurtleBot机器人的3D视觉系统 115
  • 4.1.13D视觉传感器原理 115
  • 4.1.23D传感器对比 116
  • 4.2配置TurtleBot机器人并安装3D 传感器软件 123
  • 4.2.1Kinect 123
  • 4.2.2ASUS与PrimeSense 123
  • 4.2.3Intel RealSense 124
  • 4.2.4摄像头软件结构 124
  • 4.2.5术语定义 125
  • 4.3独立模式下测试3D传感器 125
  • 4.4运行ROS节点进行可视化 126
  • 4.4.1使用Image Viewer可视化数据 126
  • 4.4.2使用Rviz可视化数据 128
  • 4.5TurtleBot机器人导航 131
  • 4.5.1采用TurtleBot 2机器人构建房间地图 132
  • 4.5.2采用TurtleBot 2机器人实现自主导航 136
  • 4.5.3导航至指定目标点 142
  • 4.5.4基于Python脚本与地图实现航路点导航 144
  • 4.5.5TurtleBot 3机器人的SLAM 151
  • 4.5.6使用TurtleBot 3进行自主导航 152
  • 4.5.7rqt_reconfigure 153
  • 4.5.8进一步探索ROS导航 155
  • 4.6本章小结 155
  • 第5章构建模拟的机器人手臂 156
  • 5.1Xacro的特点 156
  • 5.2采用Xacro建立一个关节式机器人手臂URDF 157
  • 5.2.1指定名空间 158
  • 5.2.2使用Xacro属性标签 158
  • 5.2.3扩展Xacro 161
  • 5.2.4使用Xacro的包含与宏标签 163
  • 5.2.5给机器人手臂添加网格 166
  • 5.3在Gazebo中控制关节式机器人手臂 171
  • 5.3.1添加Gazebo特性元素 171
  • 5.3.2将机器人手臂固定在世界坐标系下 173
  • 5.3.3在Gazebo中查看机器人手臂 173
  • 5.3.4给Xacro添加控制组件 174
  • 5.3.5采用ROS命令行控制机器人手臂 178
  • 5.3.6采用rqt控制机器人手臂 179
  • 5.4本章小结 182
  • 第6章机器人手臂摇摆的关节控制 183
  • 6.1Baxter简介 184
  • 6.1.1研究型机器人Baxter 185
  • 6.1.2Baxter模拟器 186
  • 6.2Baxter的手臂 186
  • 6.2.1Baxter的俯仰关节 187
  • 6.2.2Baxter的滚转关节 188
  • 6.2.3Baxter的坐标系 188
  • 6.2.4Baxter手臂的控制模式 189
  • 6.2.5Baxter手臂的抓手 189
  • 6.2.6Baxter手臂的传感器 190
  • 6.3下载Baxter软件 190
  • 6.3.1安装Baxter SDK软件 190
  • 6.3.2安装Baxter模拟器 192
  • 6.3.3配置Baxter shell 193
  • 6.3.4安装MoveIt! 194
  • 6.4在Gazebo中启动Baxter模拟器 195
  • 6.4.1启动Baxter模拟器 196
  • 6.4.2“热身”练习 199
  • 6.4.3弯曲Baxter手臂 200
  • 6.5Baxter手臂与正向运动 209
  • 6.5.1关节与关节状态发布器 209
  • 6.5.2理解tf 212
  • 6.5.3直接指定关节组件角度 215
  • 6.5.4Rviz下的tf坐标系 216
  • 6.5.5查看机器人元素的tf树 217
  • 6.6MoveIt!简介 217
  • 6.6.1使用MoveIt!对Baxter手臂进行运动规划 219
  • 6.6.2在场景中添加物体 220
  • 6.6.3采用MoveIt!进行避障运动规划 222
  • 6.7配置真实的Baxter机器人 223
  • 6.8控制真实的Baxter机器人 225
  • 6.8.1控制关节到达航路点 225
  • 6.8.2控制关节的力矩弹簧 226
  • 6.8.3关节速度控制演示 227
  • 6.8.4其他示例 227
  • 6.8.5视觉伺服和抓取 227
  • 6.9反向运动 228
  • 6.10使用状态机实现YMCA 231
  • 6.11本章小结 236
  • 第7章空中机器人基本操控 237
  • 7.1四旋翼飞行器简介 238
  • 7.1.1风靡的四旋翼飞行器 238
  • 7.1.2滚转角、俯仰角与偏航角 238
  • 7.1.3四旋翼飞行器原理 239
  • 7.1.4四旋翼飞行器的组成 241
  • 7.1.5添加传感器 241
  • 7.1.6四旋翼飞行器的通信 242
  • 7.2四旋翼飞行器的传感器 243
  • 7.2.1惯性测量单元 243
  • 7.2.2四旋翼飞行器状态传感器 243
  • 7.3飞行前的准备工作 244
  • 7.3.1四旋翼飞行器检测 244
  • 7.3.2飞行前检测列表 245
  • 7.3.3飞行中的注意事项 245
  • 7.3.4需要遵循的规则和条例 245
  • 7.4在无人机中使用ROS 246
  • 7.5Hector四旋翼飞行器 246
  • 7.5.1下载Hector四旋翼飞行器 248
  • 7.5.2在Gazebo中启动Hector四旋翼飞行器 249
  • 7.6Crazyflie 2.0简介 256
  • 7.6.1无ROS情况下的Crazyflie控制 257
  • 7.6.2使用Crazyradio PA进行通信 258
  • 7.6.3加载Crazyflie ROS软件 259
  • 7.6.4飞行前的检查 261
  • 7.6.5使用teleop操控Crazyflie飞行 262
  • 7.6.6在运动捕获系统下飞行 265
  • 7.6.7控制多个Crazyflie飞行 266
  • 7.7Bebop简介 266
  • 7.7.1加载bebop_autonomy软件 268
  • 7.7.2使用命令控制Bebop飞行 270
  • 7.8本章小结 271
  • 第8章使用外部设备控制机器人 272
  • 8.1创建自定义ROS游戏控制器接口 272
  • 8.1.1测试游戏控制器 273
  • 8.1.2使用joy ROS功能包 275
  • 8.1.3使用自定义游戏控制器接口控制turtlesim 275
  • 8.2创建自定义ROS Android设备接口 280
  • 8.2.1安装Android Studio和工具 280
  • 8.2.2安装ROS-Android开发环境 281
  • 8.2.3术语定义 282
  • 8.2.4ROS-Android开发环境介绍 283
  • 8.3在Arduino或树莓派上创建ROS节点 284
  • 8.3.1使用Arduino 284
  • 8.3.2使用树莓派 294
  • 8.4本章小结 295
  • 第9章操控Crazyflie执行飞行任务 296
  • 9.1执行任务所需的组件 297
  • 9.1.1Kinect Windows v2 297
  • 9.1.2Crazyflie操作 298
  • 9.1.3任务软件结构 298
  • 9.1.4OpenCV与ROS 300
  • 9.2安装任务所需的软件 301
  • 9.2.1安装libfreenect2 301
  • 9.2.2安装iai_kinect2 304
  • 9.2.3使用iai_kinect2元包 305
  • 9.3任务设置 311
  • 9.3.1探测Crazyflie与目标 311
  • 9.3.2使用Kinect与OpenCV 314
  • 9.3.3对Crazyflie进行跟踪 317
  • 9.4Crazyflie控制 319
  • 9.5试飞Crazyflie 324
  • 9.5.1悬停 324
  • 9.5.2飞往静止目标 326
  • 9.5.3学到的经验 327
  • 9.6本章小结 328
  • 第10章基于MATLAB的Baxter控制 329
  • 10.1安装MATLAB机器人系统工具箱 329
  • 10.1.1MATLAB与机器人系统工具箱版本检查 330
  • 10.1.2机器人系统工具箱下的ROS命令 330
  • 10.2机器人系统工具箱与Baxter模拟器的使用 330
  • 10.2.1在MATLAB中安装Baxter消息 330
  • 10.2.2运行Baxter模拟器和MATLAB 332
  • 10.2.3控制Baxter运动 334
  • 10.3本章小结 337

资源下载

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

网友留言