书籍详情

ROS机械臂开发与实践

ROS机械臂开发与实践

作者:王晓云、武延军、常先明、蒋畅江 编著

出版社:化学工业出版社

出版时间:2023-06-01

ISBN:9787122425928

定价:¥78.00

购买这本书可以去
内容简介
  本书包含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
参考文献
猜您喜欢

读书导航