• ROS机械臂开发与实践(王晓云)
21年品牌 40万+商家 超1.5亿件商品

ROS机械臂开发与实践(王晓云)

批量上传,套装书可能不全,下单前咨询在线客服! 正版书 !!!

36.83 4.7折 78 全新

库存10件

四川成都
认证卖家担保交易快速发货售后保障

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

出版社化学工业出版社

ISBN9787122425928

出版时间2023-06

装帧平装

开本16开

定价78元

货号29574588

上书时间2024-10-21

百叶图书

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

机器人系统比较复杂,包含机械、驱动、感知和控制等子系统,涉及机械、电子、自动控制、人机交互、通信、软件工程、人工智能等多个领域,给机器人开发者和研究者带来了很大的挑战。为了提高开发效率,避免“重复造轮子”,ROS(Robot Operating System,机器人操作系统)应运而生,为机器人开发提供了一套标准框架。 
ROS 可应用在机械臂、无人车、无人机、人形机器人等不同种类的机器人上。越来越多的机器人开发者、实验室和企业公司选择ROS 作为机器人开发框架,用于机器人仿真和真机的研发测试。根据ROS Index 官方统计数据,截至2022 年10 月,共有开源ROS 仓库2000 余个、功能包7000 余个,且每天都在增加。 
本书基于“如何从零开始搭建机械臂的ROS 控制系统”这一问题,由浅入深,由易到难,理论结合实践,详细介绍了ROS 机械臂开发过程中使用的技术,并通过大量工程实例,帮助读者深入理解ROS 框架,学会将ROS 和MoveIt!应用到具体的机器人开发实践中。 
本书共分为9 章:第1 章对机械臂的系统组成、技术参数、正/逆运动学等进行简单介绍,让读者了解机械臂的基础知识和基本概念;第2 章介绍ROS 的功能、安装、文件系统、通信架构和计算图等基础知识,并详细介绍ROS 工作空间的创建和本书教学示例代码包的下载安装;第3 章学习ROS 中基本的通信方式(消息、话题、服务和参数服务器)以及相关实践,为后续章节频繁使用ROS 通信机制打下基础;第4 章学习ROS 的Action 通信、常用组件工具、动态参数配置和TF2,是ROS 的进阶实践;第5 章详细介绍URDF 和xacro 语法规范,深入学习机器人(机械臂)URDF 模型的搭建过程和原理;第6 章介绍MoveIt!的系统架构和功能模块以及机械臂系统的通信机制,学习配置助手(Setup Assistant)配置机器人的过程,通过MotionPlanning 插件和命令行工具测试机械臂的运动规划等功能;第7 章通过大量实践示例,学习机械臂的目标规划、笛卡儿路径规划、避障规划、机械臂抓取和放置等任务的编程实现;第8 章介绍相机驱动和ROS中的图像、点云消息,并学习搭建简易的ROS 视觉系统,实现颜色检测和物体检测功能;第9 章分析视觉抓取应用中用到的关键技术,通过具体的自动抓取应用示例,学习视觉抓取系统的基本组成和编程实现。 
书中部分理论讲解参考ROS 和MoveIt!官方文档,几乎所有的教学实践示例均由编著者根据工程经验自行设计和实现,前后连贯,系统性强,便于读者理解掌握并快速应用到实际机器人的开发工作中。通读全书,可以发现所有章节按照前后顺序,刚好回答了前面提出的问题——如何从零开始搭建机械臂的ROS 控制系统,这也是本书编写的初衷。本书配套开源教学软件包和课后习题答疑解析,正文讲解以ROS Melodic Morenia 版本为准,同时在开源仓库提供Kinetic Kame和Noetic Ninjemys 版本代码,便于读者测试。书中教学示例均提供C  和Python 两种编程实现方式,方便不同编程基础的读者入门和使用。本书配套的资源包,读者可扫描封底二维码查看或下载。 
本书编著者来自中国科学院软件研究所、重庆邮电大学自动化学院和江苏中科重德智能科技有限公司,长期从事移动机器人和机械臂的开发工作,积累了大量的工程经验和科研成果。本书第1、2 章由蒋畅江、常先明和邹术杰编著,第3、4 章由武延军、常先明、王晓云和刘朋编著,第5~7 章由王晓云和武延军编著,第8、9 章由王晓云、武延军、常先明和蒋畅江编著。全书由王晓云和武延军统稿并组织编著。感谢化学工业出版社对本书的大力支持,感谢方洋、谭建、汪鹏、邹术杰、刘朋、刘晨等参与了教学示例的编写测试工作,感谢邹术杰和刘朋参与了课后习题的答案解析工作。 
因编著者水平有限,书中难免有疏漏或不足之处,欢迎读者批评指正。 

编著者 
2023 年3 月 



导语摘要

本书包含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 

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP