本书含ROS 基础以及ROS 机械臂全过程开发和实践等内容,是编著者在结合国内外新方法和技术,总结自己多年机器人开发经验以及教学科研成果的基础上完成的。本书第1~4 章简单概述了机械臂基础和ROS 基础,结合具体实践详细讲解了ROS 通信机制、常用组件、TF2 等进功能;第5~7 章基于机械臂控制系统开发的工程实践,详细讲解了ROS 机械臂建模、MoveIt!基础、MoveIt!的编程;第8、第9 章介绍了机械臂的视觉系统和视觉抓取。
本书理论与实践相结合,与实物相结合,配有开源教学软件和课后题答疑解析,所有教学示例均提供C++和Python 两种编程实现,方便读者更好地理解和实践书中内容。
本书可作为普通高校自动化、机器人工程、人工智能等相关业的教材,也可作为机器人和工程师的技术参考书。
第1章 机械臂基础
1.1 机械臂系统组成 001
1.1.1 机械系统 001
1.1.2 驱动系统 001
1.1.3 感知系统 002
1.1.4 控制系统 002
1.2 机械臂主要技术参数 002
1.2.1 自由度 002
1.2.2 定位度 003
1.2.3 工作空间 003
1.2.4 速度和加速度 004
1.2.5 承载 004
1.3 空间描述和变换 004
1.3.1 位置描述 005
1.3.2 姿态描述 005
1.3.3 机器人位姿 007
1.3.4 坐标变换 007
1.4 机械臂正、逆运动学 008
1.4.1 关节空间和笛卡儿空间 008
1.4.2 正运动学 009
1.4.3 逆运动学 009
1.5 推荐阅读 009
本章小结 009
题1 010
第2章 认识ROS
2.1 什么是ROS 011
2.2 ROS 的安装与测试 011
2.2.1 作系统和ROS 版本选择 011
2.2.2 安装ROS Melodic Morenia 版本 012
2.2.3 测试ROS 015
2.3 ROS 文件系统 015
2.3.1 catkin 工作空间和ROS 功能 015
2.3.2 创建工作空间 017
2.4 教学代码 018
2.4.1 下载安装教学代码 018
2.4.2 Qt Creator 开发环境 019
2.4.3 教学代码简要说明 025
2.5 ROS 的通信架构 026
2.5.1 节点与ROS Master 027
2.5.2 消息 027
2.5.3 话题 027
2.5.4 服务 028
2.5.5 动作 028
2.5.6 话题、服务和动作对比 028
2.5.7 参数服务器 028
2.6 ROS 计算图和命名空间 029
本章小结 029
题2 030
第3章 ROS 基础实践
3.1 消息的定义和使用 031
3.1.1 消息的描述和类型 031
3.1.2 自定义消息类型 033
3.1.3 消息的使用 035
3.2 rospy 和roscpp 客户端 035
3.3 话题通信和编程实现 036
3.3.1 话题的发布节点(Python) 036
3.3.2 话题的订阅节点(Python) 040
3.3.3 话题的发布节点(C++) 042
3.3.4 话题的订阅节点(C++) 046
3.3.5 话题通信测试 049
3.4 服务通信和编程实现 052
3.4.1 服务的定义 052
3.4.2 自定义服务类型 053
3.4.3 服务的服务端节点(Python) 055
3.4.4 服务的客户端节点(Python) 057
3.4.5 服务的服务端节点(C++) 059
3.4.6 服务的客户端节点(C++) 061
3.4.7 服务通信测试 062
3.5 ROS 中的参数 064
3.5.1 rosparam 命令行工具 064
3.5.2 参数服务器(Python) 066
3.5.3 参数服务器(C++) 068
本章小结 071
题3 071
第4章 ROS 进实践
4.1 动作通信和编程实现 073
4.1.1 Action 的定义 073
4.1.2 Action 的服务端节点(Python) 076
4.1.3 Action 的客户端节点(Python) 079
4.1.4 Action 的服务端节点(C++) 081
4.1.5 Action 的客户端节点(C++) 084
4.1.6 Action 通信测试 085
4.2 ROS 常用组件和工具 089
4.2.1 XML 语法规范 089
4.2.2 launch 启动文件 090
4.2.3 RViz 可视化平台 096
4.2.4 rqt 工具箱 101
4.2.5 rosbag 数据记录与回放 101
4.3 动态参数配置 101
4.3.1 编写.cfg 文件 102
4.3.2 设置动态参数节点(Python) 103
4.3.3 设置动态参数节点(C++) 107
4.3.4 测试动态参数配置 108
4.4 ROS 中的坐标系和TF2 110
4.4.1 ROS 中的TF 110
4.4.2 编写TF2 广播节点(Python) 113
4.4.3 编写TF2 监听节点(Python) 117
4.4.4 编写TF2 广播节点(C++) 119
4.4.5 编写TF2 监听节点(C++) 121
4.4.6 TF 测试和常用工具 123
4.5 扩展阅读 126
本章小结 127
题4 127
第5章 ROS 机械臂建模
5.1 URDF 建模原理和语法规范 128
5.1.1 什么是URDF 128
5.1.2 urdf 功能 128
5.1.3 URDF 语法规范 129
5.2 机械臂URDF 建模 133
5.2.1 创建机械臂描述功能 134
5.2.2 创建机械臂URDF 模型 134
5.2.3 添加机械臂夹爪模型 136
5.2.4 URDF 调试工具 139
5.2.5 在RViz 中可视化模型 140
5.3 xacro 语言简化URDF 模型 142
5.3.1 xacro 模型文件常用语法 143
5.3.2 使用xacro 简化机械臂URDF 模型 145
5.3.3 为机械臂添加移动底盘 148
5.4 sw2urdf 件 149
5.4.1 sw2urdf 件简介 150
5.4.2 sw2urdf 件导出的功能 150
5.4.3 XBot-Arm 机械臂的URDF 模型 153
5.5 robot_state_publisher 发布TF 157
5.5.1 robot_state_publisher 原理简介 157
5.5.2 编写/joint_states 话题发布节点 160
本章小结 163
题5 163
第6章 MoveIt!基础
6.1 MoveIt!软件架构 164
6.1.1 move_group 节点 165
6.1.2 运动学求解器 166
6.1.3 运动规划器 166
6.1.4 规划场景 168
6.1.5 碰撞检测 168
6.2 MoveIt!可视化配置 168
6.2.1 安装MoveIt!并启动配置助手 169
6.2.2 生成自碰撞矩阵 170
6.2.3 添加虚拟关节 171
6.2.4 添加规划组 173
6.2.5 添加机器人位姿 176
6.2.6 添加末端执行器 179
6.2.7 添加被动关节 180
6.2.8 ROS 控制 181
6.2.9 Simulation 182
6.2.10 设置3D 传感器 182
6.2.11 添加作者信息 182
6.2.12 自动生成配置文件 182
6.3 使用RViz 快速上手MoveIt! 183
6.3.1 启动Demo 并配置RViz 件 184
6.3.2 使用MotionPlanning 交互 187
6.3.3 设置规划场景测试碰撞检测 189
6.4 MoveIt!配置功能解析 193
6.4.1 SRDF 文件 193
6.4.2 kinematics.yaml 文件 195
6.4.3 joint_limits.yaml 文件 195
6.4.4 ompl_planning.yaml 文件 196
6.4.5 fake_controllers.yaml 文件 196
6.4.6 demo.launch 启动文件 196
6.4.7 move_group.launch 文件 198
6.4.8 setup_assistant.launch 文件 200
6.5 MoveIt!控制真实机械臂 201
6.5.1 通信机制和系统架构 201
6.5.2 添加MoveIt!启动文件 204
6.5.3 真实机械臂测试 205
6.6 使用MoveIt!的命令行工具 206
本章小结 210
题6 210
第7章 MoveIt!的编程
7.1 关节目标和位姿目标规划 211
7.1.1 演示模式下测试 212
7.1.2 关节目标规划示例(Python) 213
7.1.3 关节目标规划示例(C++) 216
7.1.4 位姿目标规划示例(Python) 218
7.1.5 位姿目标规划示例(C++) 222
7.2 笛卡儿路径规划 223
7.2.1 演示模式下测试 224
7.2.2 直线运动示例(Python) 226
7.2.3 直线运动示例(C++) 230
7.2.4 圆弧运动示例(Python) 232
7.2.5 圆弧运动示例(C++) 235
7.3 避障规划 237
7.3.1 演示模式下测试 237
7.3.2 避障规划示例(Python) 240
7.3.3 避障规划示例(C++) 245
7.4 物品抓取与放置 247
7.4.1 演示模式下测试 247
7.4.2 pick 和place 编程接口 250
7.4.3 编程实现物品抓取与放置(Python) 252
7.4.4 编程实现物品抓取与放置(C++) 257
本章小结 260
题7 260
第8章 机械臂的视觉系统
8.1 视觉系统概述 261
8.2 ROS 图像接口和相机驱动 261
8.2.1 使用usb_cam 功能测试USB摄像头 262
8.2.2 Image 和CompressedImage图像消息 264
8.2.3 RealSense 相机的驱动安装和测试 265
8.2.4 PointCloud2 点云消息 269
8.3 相机的标定 270
8.3.1 camera_calibration 简介和安装 270
8.3.2 camera_calibration 的相机标定 270
8.4 cv_bridge 功能 275
8.4.1 cv_bridge 安装和测试 275
8.4.2 cv_bridge 的使用示例(Python) 277
8.4.3 cv_bridge 的使用示例(C++) 279
8.5 颜色检测 282
8.5.1 HSV 颜色检测和测试 282
8.5.2 编程实现HSV 颜色检测(Python) 285
8.5.3 编程实现HSV 颜色检测(C++) 288
8.6 ROS 中的物体检测 289
8.6.1 物体检测简述 289
8.6.2 find_object_2d 节点的测试 291
8.6.3 find_object_3d 节点的测试 293
8.6.4 darknet_ros 的安装和测试 295
本章小结 297
题8 297
第9章 机械臂的视觉抓取
9.1 视觉抓取关键技术分析 298
9.2 AR 标签检测与定位 302
9.2.1 ar_track_alvar 的简介与安装 302
9.2.2 创建AR 标签 303
9.2.3 检测AR 标签 304
9.3 机械臂手眼标定 306
9.3.1 手眼标定的基本原理 306
9.3.2 easy_handeye 的安装和准备工作 308
9.3.3 眼在手外的手眼标定 312
9.3.4 手眼标定结果的发布和使用 318
9.4 基于AR 标签识别的自动抓取 319
9.4.1 应用系统原理 319
9.4.2 应用测试 322
9.4.3 编程实现自动抓取(Python) 324
9.4.4 编程实现自动抓取(C++) 327
本章小结 330
题9 330
参考文献
ISBN编号: 9787122405203
书名: ROS机器人开发技术基础
作者: 蒋畅江、罗云翔、张宇航 等 编著
科目: 机械工程
定: 68.00元
出版社名称: 化学工业出版社
出版时间:2022年04月
版次:1
页码:264
本书是内容全面、偏重基础的ROS 机器人开发入门书籍,是作者总结多年科研教学成果并在吸收国内外新理论、方法和技术的基础上完成的。本书详细介绍了ROS 机器人基础和ROS 常用开发工具,详细讲解了ROS系统架构、ROS 客户端库和机器人建模与;以工程开发为重心,详细讲解机器视觉、机器语音、SLAM 和导航等多方面ROS 应用的实现原理和方法。本书结合大量实例,帮助读者在实现ROS 基础功能的同时深入理解基于ROS 的机器人开发技术,将书中的内容用于实践。本书注重运用CDIO 工程教育理念,立足培养实际动手、综合应用、创新思维。本书配有费教学软件,帮助读者更好理解和实践书中内容;配有费电子课件,欢迎选用本书作教材的师生下载使用。本书可作为普通高等院校机器人工程、自动化、人工智能、电子信息工程、软件工程等相关业的教材,也可供广大科技工作者和工程技术人员参考使用。
1 章 ROS 机器人基础
1.1 机器人时代与ROS 的诞生 001
1.2 初识ROS 002
1.3 ROS 的安装及测试 003
1.3.1 选择作系统与ROS 版本 003
1.3.2 ROS 的安装步骤 004
1.3.3 测试ROS 007
1.4 安装教学 008
1.5 二进制与源代码 010
1.6 本章小结 010
题一 011
2 章 ROS 系统架构
2.1 ROS 文件系统 012
2.1.1 catkin 工作空间 012
2.1.2 catkin 编译系统 013
2.1.3 package 功能 015
2.1.4 CMakeLists.tt 文件 017
2.1.5 package.ml 文件 019
2.1.6 其他常见文件类型 022
2.1.7 Metapackage 元功能 023
2.2 ROS 通信架构 024
2.2.1 de 与de Master 024
2.2.2 launch 启动文件 026
2.2.3 话题 028
2.2.4 服务 032
2.2.5 参数服务器 035
2.2.6 动作库 037
2.3 本章小结 039
题二 039
3 章 ROS 常用组件和开发工具
3.1 Gazebo 工具 041
3.1.1 认识Gazebo 041
3.1.2 作演示 042
3.2 Rviz 可视化平台 044
3.2.1 认识Rviz 044
3.2.2 作演示 044
3.3 rqt 可视化工具 046
3.3.1 认识rqt 046
3.3.2 作演示 046
3.4 rosbag 功能 048
3.4.1 认识rosbag 048
3.4.2 作演示 049
3.5 RoboWare Studio 集成开发环境 051
3.5.1 安装RoboWare Studio 051
3.5.2 作演示 052
3.6 代码管理Git 058
3.6.1 认识Git 058
3.6.2 作演示 058
3.7 本章小结 060
题三 060
4 章 ROS 客户端库
4.1 Client Library 简介 061
4.2 roscpp 062
4.2.1 节点 063
4.2.2 ic 065
4.2.3 service 068
4.2.4 param 070
4.2.5 时钟 073
4.2.6 日志和异常 075
4.3 rospy 075
4.3.1 rospy 与roscpp 的比较 075
4.3.2 rospy 结构 076
4.3.3 rospy API 076
4.3.4 ic 078
4.3.5 service 080
4.3.6 param 与Time 082
4.4 本章小结 084
题 084
5 章 坐标变换TF 及编程
5.1 认识TF 086
5.1.1 简介 086
5.1.2 ROS 中的TF 086
5.1.3 ROS 中TF 坐标的基本规则 088
5.2 TF 原理和TF 消息 090
5.2.1 TF 基本原理 090
5.2.2 TF 数据类型 092
5.2.3 TF 点 093
5.2.4 TF 消息 093
5.3 TF 编程基础 095
5.3.1 TF 功能及实例 095
5.3.2 TF 编程基础 096
5.4 TF in C++ 097
5.4.1 简介 097
5.4.2 数据类型 097
5.4.3 数据转换 097
5.4.4 TF 类 100
5.5 TF in Python 101
5.5.1 简介 101
5.5.2 数据类型 101
5.5.3 TF 库 101
5.5.4 TF 类 102
5.6 TF 相关工具命令 103
5.7 本章小结 104
题五 104
6 章 机器人建模与
6.1 机器人URDF 模型 105
6.2 创建与显示URDF 模型 108
6.2.1 机器人描述功能 108
6.2.2 创建URDF 模型 108
6.2.3 解析URDF 模型 109
6.2.4 在Rviz 中显示模型 111
6.2.5 让机器人动起来 112
6.3 添加碰撞和物理属性 114
6.4 acro 文件简化URDF 模型 115
6.5 添加传感器模型 118
6.5.1 添加摄像头 118
6.5.2 添加Kinect 120
6.5.3 添加激光雷达 121
6.6 ArbotiX+Rviz 机器人运动 121
6.6.1 安装ArbotiX 122
6.6.2 配置ArbotiX 控制器 122
6.6.3 运行环境 123
6.7 ros_control 125
6.7.1 ros_control 框架 125
6.7.2 ros_control 安装 127
6.7.3 控制器 127
6.7.4 硬件接口 127
6.7.5 传动装置 128
6.7.6 关节约束 129
6.7.7 控制器管理器 130
6.8 机器人Gazebo 131
6.8.1 在Gazebo 中显示机器人模型 131
6.8.2 Gazebo 件 132
6.8.3 Gazebo 传动装置 134
6.8.4 摄像头 136
6.8.5 Kinect 139
6.8.6 激光雷达 140
6.9 本章小结 143
题六 143
7 章 机器视觉开发技术
7.1 ROS 图像数据 145
7.1.1 二维图像数据 145
7.1.2 三维点云和深度图像 147
7.1.3 查看点云图像 149
7.1.4 ROS-PCL 开发接口 151
7.2 摄像头标定 152
7.2.1 camera_calibration 功能 153
7.2.2 启动标定程序 153
7.2.3 标定摄像头 153
7.2.4 Kinect 相机的标定 155
7.2.5 加载标定参数的配置文件 155
7.2.6 校正图像 156
7.3 OpenCV 库和人脸识别 157
7.3.1 安装OpenCV 库 157
7.3.2 使用OpenCV 库 157
7.3.3 使用OpenCV 实现人脸识别 162
7.4 二维码识别 167
7.4.1 ar_track_alvar 功能 167
7.4.2 创建二维码 168
7.4.3 摄像头识别二维码 169
7.4.4 物体姿态估计与AR 标记检测 171
7.5 物体检测 174
7.5.1 find_object_2d 功能 174
7.5.2 物体检测实例 175
7.5.3 话题和参数 178
7.6 本章小结 178
题七 179
8 章 机器语音开发技术
8.1 语音识别 180
8.1.1 PocketSphin 功能 180
8.1.2 PocketSphin 功能测试 182
8.1.3 添加语音库 183
8.1.4 创建PocketSphin 的launch 文件 185
8.2 语音播放 185
8.2.1 播放文件 185
8.2.2 将输入的文字转化为语音 186
8.3 通过语音控制机器人 186
8.3.1 语音控制小海龟 186
8.3.2 XBot 对话和语音控制 187
8.3.3 自定义对话内容 188
8.3.4 监控talker 功能的运行状态 189
8.4 在ROS 上使用科大讯飞 190
8.4.1 下载科大讯飞SDK 190
8.4.2 SDK 测试 191
8.4.3 ROS 结合科大讯飞进行语音听写 193
8.5 智能语音对话 195
8.5.1 tts 语音合成实现对话 195
8.5.2 通过图灵进行语义理解 202
8.5.3 与机器人对话 206
8.6 本章小结 208
题八 208
9 章 机器人SLAM 与自航开发技术
9.1 理论基础 210
9.1.1 传感器 210
9.1.2 地图 213
9.2 Gmapping 算法 215
9.2.1 Gmapping 功能 215
9.2.2 Gmapping 计算图 218
9.2.3 话题和服务 219
9.2.4 参数 220
9.2.5 里程计误差及修正 221
9.3 Hector 算法 221
9.3.1 Hector 功能 221
9.3.2 Hector 计算图 223
9.3.3 话题和服务 224
9.3.4 参数 224
9.4 Cartographer 算法 225
9.4.1 Cartographer 功能 225
9.4.2 Cartographer 总体框架 226
9.4.3 Cartographer 测试 226
9.4.4 Cartographer 节点的配置与运行 228
9.5 自航 231
9.5.1 导航功能 231
9.5.2 工作框架 232
9.5.3 move_base 233
9.5.4 move_base 的service 234
9.5.5 导航案例 234
9.6 costmap 和map_server 237
9.6.1 代地图 238
9.6.2 地图件的选择 238
9.6.3 map_server 239
9.7 AMCL 定位算法 240
9.7.1 AMCL 计算图 240
9.7.2 话题和服务 241
9.7.3 参数 242
9.7.4 AMCL 测试 243
9.8 本章小结 245
题九 245
10 章 ROS 机器人开发实例
10.1 TurtleBot 246
10.1.1 TurtleBot 的配置与使用 247
10.1.2 Gazebo 中的TurtleBot3 249
10.1.3 使用TurtleBot 实现导航功能 249
10.2 XBot-U 251
10.2.1 XBot-U 点 251
10.2.2 初步上手XBot-U 机器人 252
10.2.3 智能交互 254
10.2.4 自航 254
10.2.5 XBot 与教学 255
10.3 Unitree A1 257
10.3.1 Unitree A1 的功能与结构 257
10.3.2 Unitree A1 关节电机的配置 258
10.3.3 让Unitree A1 机器人站起来 260
10.4 本章小结 263
参考文献
书名:ROS机器人开发实践
作者: 胡春旭
出版社:机械工业出版社
ISBN:9787111598237
上架时间:2018-5-15
出版日期:2018 年5月
开本:16开
版次:1-1
本书在介绍ROS总体框架和理论要点的基础上,讲解ROS的通信机制、常用组件和进功能;同时以实践为主,讲解机器视觉、机器听觉、SLAM与导航、机械臂控制、机器学等多种ROS应用的主要原理和实现方法;并分析基于ROS的机器人系统设计方法和典型实例;后论述ROS2的框架点和使用方法,剖析ROS的发展方向。
前言
第1章 初识ROS 1
1.1 ROS是什么 1
1.1.1 ROS的起源 1
1.1.2 ROS的设计目标 2
1.1.3 ROS的点 3
1.2 如何安装ROS 4
1.2.1 作系统与ROS版本的选择 4
1.2.2 配置系统软件源 6
1.2.3 添加ROS软件源 6
1.2.4 添加密钥 7
1.2.5 安装ROS 7
1.2.6 初始化rosdep 8
1.2.7 设置环境变量 8
1.2.8 完成安装 9
1.3 本书源码下载 9
1.4 本章小结 10
第2章 ROS架构 11
2.1 ROS架构设计 11
2.2 计算图 12
2.2.1 节点 12
2.2.2 消息 13
2.2.3 话题 13
2.2.4 服务 13
2.2.5 节点管理器 14
2.3 文件系统 14
2.3.1 功能 14
2.3.2 元功能 16
2.4 开源社区 17
2.5 ROS的通信机制 17
2.5.1 话题通信机制 18
2.5.2 服务通信机制 19
2.5.3 参数管理机制 20
2.6 话题与服务的区别 20
2.7 本章小结 21
第3章 ROS基础 22
3.1 第一个ROS例程——小乌龟 23
3.1.1 turtlesim功能 23
3.1.2 控制乌龟运动 24
3.2 创建工作空间和功能 25
3.2.1 什么是工作空间 25
3.2.2 创建工作空间 26
3.2.3 创建功能 27
3.3 工作空间的覆盖 28
3.3.1 ROS中工作空间的覆盖 28
3.3.2 工作空间覆盖示例 28
3.4 搭建Eclipse开发环境 30
3.4.1 安装Eclipse 30
3.4.2 创建Eclipse工程文件 30
3.4.3 将工程导入Eclipse 31
3.4.4 设置头文件路径 31
3.4.5 运行/调试程序 32
3.5 RoboWare简介 35
3.5.1 RoboWare的点 35
3.5.2 RoboWare的安装与使用 36
3.6 话题中的Publisher与Subscriber 37
3.6.1 乌龟例程中的Publisher与Subscriber 37
3.6.2 如何创建Publisher 37
3.6.3 如何创建Subscriber 40
3.6.4 编译功能 41
3.6.5 运行Publisher与Subscriber 42
3.6.6 自定义话题消息 44
3.7 服务中的Server和Client 46
3.7.1 乌龟例程中的服务 46
3.7.2 如何自定义服务数据 47
3.7.3 如何创建Server 48
3.7.4 如何创建Client 49
3.7.5 编译功能 51
3.7.6 运行Server和Client 51
3.8 ROS中的命名空间 52
3.8.1 有效的命名 52
3.8.2 命名解析 53
3.8.3 命名重映射 54
3.9 分布式多机通信 54
3.9.1 设置IP地址 55
3.9.2 设置ROS_MASTER_URI 56
3.9.3 多机通信测试 56
3.10 本章小结 57
第4章 ROS中的常用组件 58
4.1 launch启动文件 58
4.1.1 基本元素 58
4.1.2 参数设置 60
4.1.3 重映射机制 61
4.1.4 嵌套复用 61
4.2 TF坐标变换 62
4.2.1 TF功能 62
4.2.2 TF工具 63
4.2.3 乌龟例程中的TF 65
4.2.4 创建TF广播器 67
4.2.5 创建TF监听器 68
4.2.6 实现乌龟跟随运动 70
4.3 Qt工具箱 70
4.3.1 日志输出工具(rqt_console) 71
4.3.2 计算图可视化工具(rqt_graph) 71
4.3.3 数据绘图工具(rqt_plot) 72
4.3.4 参数动态配置工具(rqt_reconfigure) 73
4.4 rviz三维可视化平台 73
4.4.1 安装并运行rviz 74
4.4.2 数据可视化 75
4.4.3 件扩展机制 76
4.5 Gazebo环境 78
4.5.1 Gazebo的点 78
4.5.2 安装并运行Gazebo 78
4.5.3 构建环境 81
4.6 rosbag数据记录与回放 82
4.6.1 记录数据 82
4.6.2 回放数据 83
4.7 本章小结 84
第5章 机器人平台搭建 85
5.1 机器人的定义 85
5.2 机器人的组成 86
5.2.1 执行机构 87
5.2.2 驱动系统 87
5.2.3 传感系统 87
5.2.4 控制系统 87
5.3 机器人系统搭建 88
5.3.1 MRobot 88
5.3.2 执行机构的实现 88
5.3.3 驱动系统的实现 89
5.3.4 内传感系统的实现 90
5.4 基于Raspberry Pi的控制系统实现 90
5.4.1 硬件平台Raspberry Pi 91
5.4.2 安装Ubuntu 16.04 91
5.4.3 安装ROS 93
5.4.4 控制系统与MRobot通信 94
5.4.5 PC端控制MRobot 97
5.5 为机器人装配摄像头 99
5.5.1 usb_cam功能 99
5.5.2 PC端驱动摄像头 100
5.5.3 Raspberry Pi驱动摄像头 102
5.6 为机器人装配Kinect 104
5.6.1 freenect_camera功能 104
5.6.2 PC端驱动Kinect 106
5.6.3 Raspberry Pi驱动Kinect 109
5.6.4 Kinect电源改造 109
5.7 为机器人装配激光雷达 110
5.7.1 rplidar功能 110
5.7.2 PC端驱动rplidar 111
5.7.3 Raspberry Pi驱动rplidar 113
5.8 本章小结 113
第6章 机器人建模与 114
6.1 统一机器人描述格式——URDF 114
6.1.1 标签 114
6.1.2 标签 115
6.1.3 标签 116
6.1.4 标签 116
6.2 创建机器人URDF模型 116
6.2.1 创建机器人描述功能 116
6.2.2 创建URDF模型 117
6.2.3 URDF模型解析 120
6.2.4 在rviz中显示模型 122
6.3 改进URDF模型 124
6.3.1 添加物理和碰撞属性 124
6.3.2 使用xacro化URDF 125
6.3.3 xacro文件引用 127
6.3.4 显示化后的模型 127
6.4 添加传感器模型 128
6.4.1 添加摄像头 128
6.4.2 添加Kinect 130
6.4.3 添加激光雷达 132
6.5 基于ArbotiX和rviz的器 133
6.5.1 安装ArbotiX 133
6.5.2 配置ArbotiX控制器 133
6.5.3 运行环境 135
6.6 ros_control 136
6.6.1 ros_control框架 137
6.6.2 控制器 139
6.6.3 硬件接口 139
6.6.4 传动系统 140
6.6.5 关节约束 140
6.6.6 控制器管理器 141
6.7 Gazebo 142
6.7.1 机器人模型添加Gazebo属性 142
6.7.2 在Gazebo中显示机器人模型 145
6.7.3 控制机器人在Gazebo中运动 147
6.7.4 摄像头 147
6.7.5 Kinect 150
6.7.6 激光雷达 153
6.8 本章小结 155
第7章 机器视觉 156
7.1 ROS中的图像数据 156
7.1.1 二维图像数据 156
7.1.2 三维点云数据 158
7.2 摄像头标定 159
7.2.1 camera_calibration功能 159
7.2.2 启动标定程序 159
7.2.3 标定摄像头 160
7.2.4 标定Kinect 162..........
书名: ROS机器人编程实战
ISBN编号: 9787115523594
作者: 库马尔·比平译者: 李华峰 张志宇
定: 99.00元
出版社名称: 邮电出版社
ROS(Robot Operating System)是一个机器人软件平台,是用于实现机器人编程和开发复杂机器人应用的开源软件框架,它能为异质计算机集提供类似作系统的功能。ROS的前身是斯坦福人工智能实验室为了支持斯坦福智能机器人STAIR而建立的交换庭(switchyard)项目。 本书含10章内容,循序渐进地介绍了ROS相关的知识,括ROS入门、结构与概念、可视化和调试工具、传感器和执行器、建模与、移动机器人、机械臂、微型飞行器、ROS工业软件等。 本书适合机器人领域的工程师及研究人员阅读,书中涉及许多实用的案例和解决方案,同时涵盖了未来机器人应用开发中可预见的研究问题。
1章 ROS入门 1
1.1 简介 1
1.2 在桌面系统中安装ROS 2
1.2.1 ROS 发行版 2
1.2.2 支持的作系统 3
1.2.3 如何完成 4
1.3 在虚拟机中安装ROS 8
1.4 在Linux容器中运行ROS 10
1.4.1 准备工作 10
1.4.2 如何完成 10
1.4.3 参考资料 13
1.5 在基于ARM的开发板上安装ROS 13
1.5.1 准备工作 13
1.5.2 如何完成 15
1.5.3 设置系统位置 16
1.5.4 设置sources.list(源列表) 17
1.5.5 设置秘钥 17
1.6 安装ROS 17
1.6.1 添加单个软件 17
1.6.2 初始化rosdep 18
1.6.3 环境配置 18
1.6.4 获取rosinstall 18
2章 ROS的体系结构与概念Ⅰ 20
2.1 简介 20
2.2 对ROS文件系统的深入解析 21
2.2.1 准备工作 21
2.2.2 如何完成 22
2.2.3 扩展学 25
2.3 ROS计算图分析 30
2.3.1 准备工作 30
2.3.2 如何完成 32
2.4 加入ROS社区 37
2.5 学ROS的使用 38
2.5.1 准备工作 38
2.5.2 如何完成 38
2.5.3 工作原理 47
2.6 理解ROS启动(launch)文件 59
3章 ROS的体系结构与概念Ⅱ 61
3.1 简介 61
3.2 掌握参数服务器和动态参数 62
3.2.1 准备工作 62
3.2.2 如何完成 62
3.3 掌握ROS actionlib 68
3.3.1 准备工作 68
3.3.2 如何完成 69
3.4 掌握ROS pluginlib 78
3.4.1 准备工作 78
3.4.2 如何完成 78
3.5 掌握ROS delet 83
3.5.1 准备工作 83
3.5.2 如何完成 83
3.5.3 扩展学 86
3.6 掌握Gazebo框架与件 88
3.6.1 准备工作 88
3.6.2 如何完成 89
3.7 掌握ROS的TF(坐标变换) 91
3.7.1 准备工作 92
3.7.2 如何完成 95
3.8 掌握ROS 可视化工具(RViz)及其件 99
3.8.1 准备工作 99
3.8.2 如何完成 101
4章 ROS可视化与调试工具 104
4.1 简介 104
4.2 对ROS节点的调试和分析 105
4.2.1 准备工作 105
4.2.2 如何完成 105
4.3 ROS消息的记录与可视化 108
4.3.1 准备工作 108
4.3.2 如何完成 110
4.3.3 更多内容 112
4.4 ROS系统的检测与诊断 114
4.4.1 准备工作 114
4.4.2 如何完成 114
4.5 标量数据的可视化和绘图 118
4.5.1 准备工作 118
4.5.2 如何完成 119
4.5.3 更多内容 120
4.6 非标量数据的可视化—— 2D/3D图像 121
4.6.1 准备工作 122
4.6.2 如何完成 122
4.7 ROS话题的录制与回放 126
4.7.1 准备工作 126
4.7.2 如何完成 126
4.7.3 更多内容 129
5章 在ROS中使用传感器和执行器 131
5.1 简介 131
5.2 理解Ardui-ROS接口 132
5.2.1 准备工作 132
5.2.2 如何完成 133
5.2.3 工作原理 134
5.3 使用9 DoF(自由度,Degree of Freedom)惯性测量模块 137
5.3.1 准备工作 138
5.3.2 如何完成 138
5.3.3 工作原理 139
5.4 使用GPS系统——Ublox 141
5.4.1 准备工作 142
5.4.2 如何完成 142
5.4.3 工作原理 143
5.5 使用伺服电动机——Dynamixel 144
5.5.1 如何完成 144
5.5.2 工作原理 144
5.6 用激光测距仪——Hokuyo 146
5.6.1 准备工作 146
5.6.2 如何完成 146
5.6.3 工作原理 146
5.7 使用Kinect传感器查看3D环境中的对象 148
5.7.1 准备工作 149
5.7.2 如何完成 149
5.7.3 工作原理 149
5.8 用游戏杆或游戏手柄 151
5.8.1 如何完成 151
5.8.2 工作原理 151
6章 ROS建模与 153
6.1 简介 153
6.2 理解使用URDF实现机器人建模 154
6.2.1 准备工作 154
6.2.2 工作原理 154
6.3 理解使用Xacro实现机器人建模 163
6.3.1 准备工作 164
6.3.2 工作原理 164
6.4 理解关节状态发布器和机器人状态发布器 165
6.4.1 准备动作 165
6.4.2 工作原理 168
6.4.3 更多内容 172
6.5 理解Gazebo系统结构以及与ROS的接口 174
6.5.1 准备工作 174
6.5.2 如何完成 174
7章 ROS中的移动机器人 184
7.1 简介 184
7.2 ROS导航功能集 185
7.2.1 准备工作 185
7.2.2 工作原理 185
7.3 移动机器人与导航系统的交互 196
7.3.1 准备工作 196
7.3.2 如何完成 197
7.3.3 工作原理 198
7.4 为导航功能集创建launc件 201
7.4.1 准备工作 201
7.4.2 工作原理 202
7.5 为导航功能集设置Rviz可视化 203
7.5.1 准备工作 203
7.5.2 工作原理 203
7.5.3 更多内容 210
7.6 机器人定位——自适应蒙卡罗定位(AMCL) 211
7.6.1 准备工作 211
7.6.2 工作原理 211
7.7 使用rqt_reconfigure配置导航功能集参数 212
7.8 移动机器人的自航——避开障碍物 213
7.8.1 准备工作 213
7.8.2 工作原理 213
7.9 发送目标 214
7.9.1 准备工作 214
7.9.2 工作原理 214
8章 ROS中的机械臂 217
8.1 简介 217
8.1.1 危险工作场所 218
8.1.2 重复或令人厌烦的工作 218
8.1.3 人类难以作的工作环境 218
8.2 MoveIt的基本概念 220
8.2.1 MoveIt 220
8.2.2 运动规划 220
8.2.3 感知 221
8.2.4 抓取 221
8.2.5 准备工作 221
8.3 使用图形化界面完成运动规划 223
8.3.1 准备工作 223
8.3.2 如何完成 232
8.3.3 工作原理 234
8.3.4 更多内容 235
8.4 使用控制程序执行运动规划 238
8.4.1 准备工作 238
8.4.2 如何完成 240
8.4.3 执行轨迹 245
8.5 在运动规划中增加感知 246
8.5.1 准备工作 247
8.5.2 如何完成 249
8.5.3 工作原理 251
8.5.4 更多内容 251
8.5.5 参考资料 252
8.6 使用机械臂或者机械手来完成抓取作 253
8.6.1 准备工作 253
8.6.2 如何完成 256
8.6.3 工作原理 268
8.6.4 参考资料 273
9章 基于ROS的微型飞行器 276
9.1 简介 276
9.2 MAV系统设计概述 277
9.3 MAV/无人机的通用数学模型 279
9.4 使用RotorS/Gazebo来模拟MAV/无人机 283
9.4.1 准备工作 283
9.4.2 如何完成 285
9.4.3 工作原理 292
9.4.4 更多内容 293
9.4.5 参考资料 296
9.5 MAV/无人机的自航框架 297
9.5.1 准备工作 297
9.5.2 如何完成 299
9.5.3 工作原理 314
9.6 作真正的MAV/drone—— Parrot和Bebop 318
9.6.1 准备工作 319
9.6.2 如何完成 319
9.6.3 工作原理 321
10章 ROS-Industrial(ROS-I) 323
10.1 简介 323
10.2 了解ROS-I功能 324
10.3 工业机器人与MoveIt的3D建模与 326
10.3.1 准备工作 326
10.3.2 如何完成 327
10.4 使用ROS-I软件——傲机器人、ABB机器人 336
10.5 ROS-I机器人支持 342
10.6 ROS-I机器人客户端功能 345
10.7 ROS-I机器人驱动程序规范 346
10.8 开发自定义的MoveIt IKFast件 348
10.8.1 准备工作 348
10.8.2 如何完成 351
10.9 了解ROS-I-MTConnect 353
10.9.1 准备工作 354
10.9.2 如何完成 355
10.10 ROS-I的未来——硬件支持、功能和应用 356
书名: ROS机器人编程与SLAM算法解析指南
ISBN编号: 9787115526311
作者: 陶满礼
定: 69.00元
出版社名称: 邮电出版社
1008174949
目前ROS(Robot Operating System)正逐步成为机器人开发领域的主要工具平台,同时SLAM技术也日益成为机器人应用领域的研究热点。本书主要讲解ROS编程与SLAM算法,并介绍 ROS 与机器人软件V-rep的结合应用。书中各章节所涉及的代码均有对应的源代码,可供读者下载,便于调试与应用。
1008174949
1章 ROS简介 1
1.1 ROS概述 2
1.2 Ubuntu系统 3
1.2.1 Ubuntu系统的安装 3
1.2.2 树莓派安装Ubuntu 10
1.3 ROS的安装 11
1.4 常用的作命令 13
1.4.1 Ubuntu系统的常用命令 13
1.4.2 常用的ROS作命令 14
2章 ROS基础 15
2.1 开发工具IDE 16
2.1.1 RoboWare Studio的安装 16
2.1.2 卸载 17
2.1.3 使用 18
2.2 节点 22
2.2.1 发布端 23
2.2.2 接收端 24
2.2.3 CMakeLists.txt文件 24
2.2.4 测试 25
2.3 消息 26
2.3.1 自定义消息 26
2.3.2 编写自定义消息发布端 27
2.3.3 编写自定义消息接收端 28
2.3.4 CMakeLists.txt文件 29
2.3.5 测试 30
2.4 服务 31
2.4.1 服务通信 31
2.4.2 自定义srv 31
2.4.3 创建服务器 32
2.4.4 创建客户端 33
2.4.5 CMakeLists.txt文件 34
2.4.6 测试 35
2.5 参数 36
2.5.1 编写参数设置获取节点 36
2.5.2 CMakeLists.txt文件 39
2.5.3 测试 39
2.6 动态参数设置 41
2.6.1 创建cfg文件 41
2.6.2 创建动态参数设置可执行文件 42
2.6.3 CMakeLists.txt文件 43
2.6.4 测试 44
2.7 ROS类编程思想 45
2.7.1 创建类头文件 45
2.7.2 创建类应用可执行文件 47
2.7.3 CMakeLists.txt文件 49
2.7.4 测试 50
3章 调试及工具 52
3.1 Rviz 53
3.2 Gazebo 56
3.2.1 安装与更新 57
3.2.2 Gazebo环境 58
3.2.3 选项卡与工具条 59
3.2.4 模拟场景组成元素 62
3.2.5 搭建简单机器人模型 64
3.3 rqt的调试 72
3.4 rosbag的使用 76
3.5 rosbridge的开发 78
3.5.1 rosbridge_suite的安装 78
3.5.2 测试html通信 79
4章 TF简介及应用 87
4.1 TF概述 88
4.2 TF的简单使用 88
4.3 编写TF发布与接收程序 93
5章 SLAM简介及应用 100
5.1 SLAM概述 101
5.2 gmapping建图功能应用 102
5.3 ROS gmapping功能解读 103
5.4 openslam源码解读 108
5.5 ROS建图实战 119
5.5.1 ROS地图发布 119
5.5.2 TF坐标变换发布 124
5.5.3 模拟激光数据 126
5.5.4 建图 129
5.5.5 建图测试 138
6章 ROS navigation及算法简介 140
6.1 ROS navigation stack概述 141
6.2 move_base的配置 142
6.3 navigation源码解读 150
6.4 A-Star算法原理与实现 155
6.5 dwa算法 166
7章 基于V-rep的ROS开发 176
7.1 V-rep机器人软件概述 177
7.1.1 V-rep与Gazebo的区别 178
7.1.2 V-rep与ROS通信机制 178
7.2 V-rep安装与ROS配置 179
7.2.1 环境要求 179
7.2.2 V-rep的安装 179
7.2.3 配置RosInterface 180
7.3 运行V-rep自带ROS控制场景 182
7.3.1 熟悉V-rep基本作 182
7.3.2 运行ROS控制场景 183
7.3.3 ROS发送数据到V-rep 185
7.4 V-rep环境搭建与ROS控制开发 190
7.4.1 V-rep环境搭建 190
7.4.2 激光雷达ROS参数配置 199
7.5 V-rep与ROS联合实验 201
7.5.1 gmapping建图测试 201
7.5.2 导航测试 204
发货方式
自动:在特色服务中标有自动发货的商品,拍下后,源码类 软件类 商品会在订单详情页显示来自卖家的商品下载链接,点卡类 商品会在订单详情直接显示卡号密码。
手动:未标有自动发货的的商品,付款后,商品卖家会收到平台的手机短信、邮件提醒,卖家会尽快为您发货,如卖家长时间未发货,买家也可通过订单上的QQ或电话主动联系卖家。
退款说明
1、源码类:商品详情(含标题)与实际源码不一致的(例:描述PHP实际为ASP、描述的功能实际缺少、功能不能正常使用等)!有演示站时,与实际源码不一致的(但描述中有"不保证完全一样、可能有少许偏差"类似显著公告的除外);
2、营销推广类:未达到卖家描述标准的;
3、点卡软件类:所售点卡软件无法使用的;
3、发货:手动发货商品,在卖家未发货前就申请了退款的;
4、服务:卖家不提供承诺的售后服务的;(双方提前有商定和描述中有显著声明的除外)
5、其他:如商品或服务有质量方面的硬性常规问题的。未符合详情及卖家承诺的。
注:符合上述任一情况的,均支持退款,但卖家予以积极解决问题则除外。交易中的商品,卖家无法修改描述!
注意事项
1、在付款前,双方在QQ上所商定的内容,也是纠纷评判依据(商定与商品描述冲突时,以商定为准);
2、源码商品,同时有网站演示与商品详情图片演示,且网站演示与商品详情图片演示不一致的,默认按商品详情图片演示作为纠纷评判依据(卖家有特别声明或有额外商定的除外);
3、点卡软件商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);
4、营销推广商品,默认按商品详情作为纠纷评判依据(特别声明或有商定除外);
5、在有"正当退款原因和依据"的前提下,写有"一旦售出,概不支持退款"等类似的声明,视为无效声明;
6、虽然交易产生纠纷的几率很小,卖家也肯定会给买家最完善的服务!但请买卖双方尽量保留如聊天记录这样的重要信息,以防产生纠纷时便于送码网快速介入处理。
送码声明
1、送码网作为第三方中介平台,依据双方交易合同(商品描述、交易前商定的内容)来保障交易的安全及买卖双方的权益;
2、非平台线上交易的项目,出现任何后果均与送码网无关;无论卖家以何理由要求线下交易的(如:要求买家支付宝转账付款的,微信转账付款的等),请联系管理举报,本平台将清退卖家处理。
正版 steam 原子之心 Atomic Heart 国区激活码 cd...
steam 英雄连3 国区激活码CDKEY PC游戏正版 Compan...
【骑砍中文站】PC 中文Steam 骑马与砍杀2 霸主 骑砍2 豪华版...
正版 steam 原子之心 Atomic Heart 国区激活码 cd...
M,日朋礼送男友老公创意实人用星人际机器蓝牙音箱走心情节生礼...
PC中文正版Steam 消逝的光芒2 消失的光芒2 Dying Lig...
Steam 女神异闻录5 皇家版 国区激活码CDKey秒发 Perso...
Steam怪物猎人崛起 曙光DLC 激活码cdkey 怪物猎人曙光 M...
steam 只狼 激活码CDKey 只狼影逝二度 Sekiro: Sh...
steam 女神异闻录5皇家版 国区激活码CDKey P5R 女神异闻...