- ISBN:9787122425928
- 装帧:平装
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:331
- 出版时间:2023-06-01
- 条形码:9787122425928 ; 978-7-122-42592-8
内容简介
本书包含ROS 基础以及ROS 机械臂全过程开发和实践等内容,是编著者在结合国内外近期新方法和技术,总结自己多年机器人开发经验以及教学科研成果的基础上完成的。本书第1~4 章简单概述了机械臂基础和ROS 基础,结合具体实践详细讲解了ROS 通信机制、常用组件、TF2 等进阶功能;第5~7 章基于机械臂控制系统开发的工程实践,详细讲解了ROS 机械臂建模、MoveIt!基础、MoveIt!的编程;第8、第9 章介绍了机械臂的视觉系统和视觉抓取。 本书理论与实践相结合,仿真与实物相结合,配有开源教学软件包和课后习题答疑解析,所有教学示例均提供C++和Python 两种编程实现,方便读者更好地理解和实践书中内容。 本书可作为普通高校自动化、机器人工程、人工智能等相关专业的教材,也可作为机器人开发者和工程师的技术参考书。
目录
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
参考文献
-
黑科技驱动世界的100项技术
¥24.4¥69.8 -
铁道之旅:19世纪空间与时间的工业化
¥20.7¥59.0 -
二战信息图 数据化全景透视第二次世界大战
¥163.5¥268.0 -
船舶综合驾驶台通信与导航系统:::
¥41.8¥58.0 -
博识百科系列--汽车摩托车大百科
¥96.6¥138.0 -
实用精细化学品丛书--陶瓷添加剂:配方·性能·应用(第二版)
¥51.8¥69.0 -
西门子S7-1200 PLC项目化教程
¥39.4¥54.0 -
选矿手册。第1卷
¥14.3¥42.0 -
欧亚草原古代治金
¥70.6¥98.0 -
国家电网有限公司安全生产事故事件分析报告汇编(2010-2021年)
¥126.4¥160.0 -
工业聚乙烯导论
¥73.5¥98.0 -
煤矿工人情景意识的fnlrs脑功能连接特征与分类识别研究
¥49.3¥88.0 -
水利水电施工 2022年第6辑
¥17.6¥36.0 -
水利水电施工 2024年第1册
¥17.6¥36.0 -
公路隧道工程施工安全风险评估方法及典型案例分析
¥49.5¥90.0 -
欧亚大陆北部的树皮船与兽皮船
¥132.3¥189.0 -
(教材)产业用纺织品实验教程
¥38.3¥58.0 -
全球稀有金属流动格局演变与我国供应安全研究
¥59.0¥82.0 -
中国船闸文明演变进化史研究
¥49.0¥68.0 -
多媒体多模态融合的情感分析网络
¥17.4¥29.0