由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版]8058704| 精通ROS机器人编程 原书第2版 2019新版 机器人设计与制作系列 ROS机器人开发教程
¥ ×1
店铺公告
本店存在书、古旧书、收藏书、二手书等特殊商品,因受采购成本限制,可能高于定价销售,明码标价,介意者勿拍!
1.书籍因稀缺可能导致售价高于定价,图书实际定价参见下方详情内基本信息,请买家看清楚且明确后再拍,避免价格争议!
2.店铺无纸质均开具电子,请联系客服开具电子版
书名: | 8058704|包邮 精通ROS机器人编程 原书第2版 2019新版 机器人设计与制作系列 ROS机器人开发教程 机器人操作系统 |
图书定价: | 99元 |
图书作者: | [印度]郎坦·约瑟夫(Lentin Joseph)[意大利]乔纳森·卡卡切(Jonathan Cacace) |
出版社: | 机械工业出版社 |
出版日期: | 2019-04-12 0:00:00 |
ISBN号: | 9787111621997 |
开本: | 16开 |
页数: | 397 |
版次: | 1-1 |
作者简介 |
[印度]郎坦·约瑟夫(Lentin Joseph)[意大利]乔纳森·卡卡切(Jonathan Cacace) 著:朗坦·约瑟夫(Lentin Joseph)是一名来自印度的作家、创业者。他是印度Qbotics实验室的创始人兼CEO,在机器人领域已经有7年的从业经验,主要研究方向包括机器人操作系统(ROS)、OpenCV、PCL等。 乔纳森·卡卡切(Jonathan Cacace)在意大利那不勒斯腓特烈二世大学获计算机科学硕士学位及信息与自动化工程博士学位。目前,乔纳森是那不勒斯腓特烈二世大学PRISMA实验室的博士后,主要研究工业机器人和服务机器人,曾经开发了几款基于ROS且集成了机器人感知控制的机器人应用。 |
内容简介 |
本书主要面向机器人开发人员和想充分利用ROS功能的研究人员,是一本侧重ROS框架高级概念的进阶学习指南。书中既介绍了ROS的基本概念,又系统讲解了使用ROS进行复杂机器人设计、建模、仿真和交互的实用技术、工具和编程技巧,包含大量示例,可以为你快速提升ROS实战技能提供翔实参考。 全书共15章,第1章简要介绍ROS基本概念;第2章解释如何使用ROS软件包;第3章讨论7-DOF机械臂和差速驱动机器人的设计;第4章和第5章通过示例详细讲解如何使用Gazebo和V-REP这两个著名的机器人仿真软件;第6章介绍如何使用ROS MoveIt!和导航软件包集的现有功能;第7章讨论ROS pluginlib、小节点和控制器等一些高级概念;第8章进一步讨论RViz插件和ROS控制器;第9章讨论一些硬件组件与ROS的接口;第10章讨论如何使用ROS连接各种视觉传感器,并利用开源计算机视觉库(OpenCV)和点云库(PCL)进行编程;第11章介绍如何构建差速驱动的自主移动机器人,并将其与ROS连接;第12章介绍MoveIt!的高级功能;第13章讨论如何将Matlab和Simulink软件与ROS连接;第14章介绍ROS-Industrial软件包;第15章讨论如何在ROS中安装集成开发环境,并介绍ROS实战技巧与调试方法。 |
目录 |
译者序 前言 作者简介 译者简介 第1章 ROS简介 1 1.1 为什么要学习ROS 1 1.2 在机器人开发中,人们为什么更愿意选择ROS 2 1.3 为什么有些人不愿意选择ROS 3 1.4 理解ROS的文件系统 4 1.4.1 ROS软件包 5 1.4.2 ROS超软件包 7 1.4.3 ROS消息 7 1.4.4 ROS服务 9 1.5 理解ROS的计算图 9 1.5.1 ROS节点 11 1.5.2 ROS消息 12 1.5.3 ROS话题 13 1.5.4 ROS服务 13 1.5.5 ROS消息记录包 14 1.5.6 ROS节点管理器 14 1.5.7 应用ROS参数 16 1.6 ROS的社区 17 1.7 学习ROS需要做哪些准备 17 1.8 习题 20 1.9 本章小结 20 第2章 ROS编程入门 21 2.1 创建一个ROS软件包 21 2.1.1 学习ROS话题 23 2.1.2 创建ROS节点 23 2.1.3 编译生成节点 26 2.2 添加自定义的msg和srv文件 28 2.3 使用ROS服务 30 2.3.1 使用ROS动作库 34 2.3.2 编译ROS动作服务器和客户端 37 2.4 创建启动文件 39 2.5 话题、服务和动作库的应用 41 2.6 维护ROS软件包 41 2.7 发布ROS软件包 42 2.7.1 准备发布ROS软件包 43 2.7.2 发布软件包 43 2.7.3 为ROS软件包创建维基页面 45 2.8 习题 47 2.9 本章小结 47 第3章 在ROS中为3D机器人建模 48 3.1 机器人建模的ROS软件包 49 3.2 利用URDF理解机器人建模 50 3.3 为机器人描述创建ROS软件包 52 3.4 创建我们的第一个URDF模型 52 3.5 详解URDF文件 54 3.6 在RViz中可视化机器人3D模型 55 3.7 向URDF模型添加物理属性和碰撞属性 57 3.8 利用xacro理解机器人建模 58 3.8.1 使用属性 58 3.8.2 使用数学表达式 59 3.8.3 使用宏 59 3.9 将xacro转换为URDF 59 3.10 为7-DOF机械臂创建机器人描述 60 3.10.1 机械臂规格 61 3.10.2 关节类型 61 3.11 解析7-DOF机械臂的xacro模型 61 3.11.1 使用常量 61 3.11.2 使用宏 62 3.11.3 包含其他xacro文件 62 3.11.4 在连杆中使用网格模型 63 3.11.5 使用机器人夹爪 63 3.11.6 在RViz中查看7-DOF机械臂 63 3.12 为差速驱动移动机器人创建机器人模型 66 3.13 习题 70 3.14 本章小结 70 第4章 使用ROS和Gazebo进行机器人仿真 71 4.1 使用Gazebo和ROS仿真机械臂 71 4.2 为Gazebo创建机械臂仿真模型 72 4.2.1 为Gazebo机器人模型添加颜色和纹理 73 4.2.2 添加transmission标签来驱动模型 74 4.2.3 添加gazebo_ros_control插件 74 4.2.4 在Gazebo中添加3D视觉传感器 75 4.3 仿真装有Xtion Pro的机械臂 76 4.4 在Gazebo中使用ROS控制器 78 4.4.1 认识ros_control软件包 78 4.4.2 不同类型的ROS控制器和硬件接口 79 4.4.3 ROS控制器如何与Gazebo交互 79 4.4.4 将关节状态控制器和关节位置控制器连接到手臂 80 4.4.5 在Gazebo中启动ROS控制器 81 4.4.6 控制机器人的关节运动 83 4.5 在Gazebo中仿真差速轮式机器人 83 4.5.1 将激光雷达添加到机器人中 85 4.5.2 在Gazebo中控制机器人移动 86 4.5.3 在启动文件中添加关节状态发布者 87 4.6 添加ROS遥控节点 88 4.7 习题 89 4.8 本章小结 89 第5章 用ROS和V-REP进行机器人仿真 91 5.1 安装带有ROS的V-REP 91 5.2 理解vrep_plugin 95 5.2.1 使用ROS服务与V-REP交互 96 5.2.2 使用ROS话题与V-REP交互 98 5.3 使用V-REP和ROS仿真机械臂 101 5.4 在V-REP下仿真差速轮式机器人 107 5.4.1 在V-REP中添加激光传感器 109 5.4.2 在V-REP中添加3D视觉传感器 110 5.5 习题 112 5.6 本章小结 112 第6章 ROS MoveIt!与导航软件包集 113 6.1 安装MoveIt! 113 6.2 使用配置助手工具生成MoveIt!配置软件包 118 6.2.1 第1步:启动配置助手工具 118 6.2.2 第2步:生成自碰撞矩阵 120 6.2.3 第3步:增加虚拟关节 120 6.2.4 第4步:添加规划组 121 6.2.5 第5步:添加机器人姿态 122 6.2.6 第6步:设置机器人的末端执行器 122 6.2.7 第7步:添加被动关节 123 6.2.8 第8步:作者信息 123 6.2.9 第9步:生成配置文件 123 6.3 使用MoveIt!配置软件包在RViz中进行机器人运动规划 124 6.3.1 使用RViz运动规划插件 125 6.3.2 MoveIt!配置软件包与Gazebo的接口 128 6.4 理解ROS导航软件包集 133 6.4.1 ROS导航硬件的要求 133 6.4.2 使用导航软件包 134 6.5 安装ROS导航软件包集 136 6.6 使用SLAM构建地图 136 6.6.1 为gmapping创建启动文件 137 6.6.2 在差速驱动机器人上运行SLAM 138 6.6.3 使用amcl和静态地图实现自主导航 141 6.6.4 创建amcl启动文件 141 6.7 习题 144 6.8 本章小结 144 第7章 使用pluginlib、小节点和Gazebo 插件 145 7.1 理解pluginlib 145 7.2 理解ROS小节点 151 7.3 理解Gazebo插件 156 7.4 习题 160 7.5 本章小结 160 第8章 ROS控制器和可视化插件编程 161 8.1 理解 ros_control软件包集 162 8.1.1 controller_interface软件包 162 8.1.2 控制器管理器 164 8.2 使用ROS编写一个基本的关节控制器 164 8.2.1 第1步:创建控制器软件包 165 8.2.2 第2步:创建控制器头文件 165 8.2.3 第3步:创建控制器源文件 166 8.2.4 第4步:控制器源文件解析 166 8.2.5 第5步:创建插件描述文件 167 8.2.6 第6步:更新package.xml文件 168 8.2.7 第7步:更新CMake-Lists.txt文件 168 8.2.8 第8步:编译控制器 168 8.2.9 第9步:编写控制器配置文件 168 8.2.10 第10步:编写控制器的启动文件 169 8.2.11 第11步:在Gazebo中运行控制器和7-DOF机械臂 169 8.3 理解ROS可视化工具(RViz)及其插件 171 8.3.1 Displays面板 172 8.3.2 RViz工具栏 172 8.3.3 Views面板 172 8.3.4 Time面板 172 8.3.5 可停靠面板 172 8.4 编写用于遥控操作的RViz插件 172 8.5 习题 178 8.6 本章小结 178 第9章 将ROS与I/O开发板、传感器、执行机构连接 179 9.1 理解Arduino-ROS接口 179 9.2 Arduino-ROS接口是什么 180 9.2.1 理解ROS中的rosserial软件包 181 9.2.2 理解Arduino中的ROS节点API 185 9.2.3 ROS-Arduino发布者和订阅者实例 187 9.2.4 Arduino-ROS接口实例——LED灯闪烁/按按钮 190 9.2.5 Arduino-ROS接口实例——ADXL 335加速度计 192 9.2.6 Arduino-ROS接口实例——超声波测距传感器 194 9.2.7 Arduino-ROS接口实例——里程计发布者 197 9.3 非Arduino开发板与ROS接口 199 9.3.1 在Odroid-XU4和树莓派2上配置ROS 199 9.3.2 用ROS控制树莓派2 上的LED灯闪烁 206 9.3.3 在树莓派2上使用ROS测试按钮和LED灯闪烁 208 9.3.4 在树莓派2上运行示例 211 9.4 将DYNAMIXEL驱动器连接到ROS 212 9.5 习题 212 9.6 本章小结 212 第10章 用ROS对视觉传感器编程、OpenCV、PCL 213 10.1 理解ROS-OpenCV开发接口软件包 213 10.2 理解ROS-PCL开发接口软件包 214 10.3 在ROS中连接USB相机 216 10.4 ROS与相机校准 218 10.4.1 使用cv_bridge在ROS和OpenCV之间转换图像 221 10.4.2 使用ROS和OpenCV进行图像处理 221 10.5 在ROS中连接Kinect与华硕Xtion Pro 225 10.6 将英特尔Real Sense相机与ROS连接 228 10.7 在ROS中连接Hokuyo激光雷达 232 10.8 处理点云数据 233 10.8.1 如何发布点云 234 10.8.2 如何订阅和处理点云 235 10.8.3 将点云数据写入点云数据(PCD)文件 236 10.8.4 从PCD文件中读取并发布点云 237 10.9 物体姿态估计与AR标记检测 239 10.10 习题 243 10.11 本章小结 244 第11章 在ROS中构造与连接差速驱动移动机器人 245 11.1 Chefbot DIY移动机器人及其硬件配置 246 11.1.1 使用Energia IDE来烧写Chefbot固件 248 11.1.2 讨论Chefbot的ROS软件包接口 249 11.1.3 从编码器计数计算里程计信息 254 11.1.4 根据ROS twist消息计算马达转速 256 11.1.5 为Chefbot机器人配置导航软件包集 257 11.1.6 配置gmapping节点 257 11.1.7 配置导航软件包集 259 11.1.8 理解AMCL 264 11.1.9 在RViz中使用导航功能 267 11.1.10 导航软件包中避障 272 11.1.11 Chefbot机器人仿真 273 11.1.12 从ROS节点向导航软件包集发送一个目的地 276 11.2 习题 278 11.3 本章小结 278 第12章 探索ROS-MoveIt!的高级功能 279 12.1 使用move_group的C++接口进行运动规划 279 12.1.1 使用MoveIt! C++ API规划随机路径 280 12.1.2 使用MoveIt! C++ API规划自定义路径 281 12.2 使用MoveIt!进行机械臂的碰撞检测 283 12.2.1 向MoveIt!添加碰撞对象 283 12.2.2 从规划场景中移除碰撞对象 286 12.2.3 向机器人连杆上添加一个碰撞对象 286 12.2.4 使用MoveIt! API检查自碰撞 287 12.3 使用MoveIt!和Gazebo处理视觉 288 12.4 使用MoveIt!执行拾取和放置任务 294 12.4.1 使用GPD计算抓握姿态 297 12.4.2 在Gazebo和真实机器人上执行拾取和放置动作 300 12.5 理解用于机器人硬件接口的DYNAMIXEL ROS伺服控制器 300 12.5.1 DYNAMIXEL伺服舵机 300 12.5.2 DYNAMIXEL-ROS接口 301 12.6 7-DOF机械臂与ROS MoveIt! 302 12.6.1 为COOL机械臂创建一个控制器软件包 303 12.6.2 COOL机械臂的MoveIt!配置 306 12.7 习题 308 12.8 本章小结 308 第13章 在MATLAB和Simulink中使用ROS 309 13.1 学习使用MATLAB与MATLAB-ROS 309 13.1.1 机器人系统工具箱和ROS-MATLAB接口入门 310 13.1.2 ROS话题和MATLAB回调函数 313 13.1.3 为Turtlebot机器人设计一个避障系统 317 13.2 学习使用ROS与Simulink 321 13.2.1 在Simulink中创建波形信号积分器 321 13.2.2 在Simulink中使用ROS消息 323 13.2.3 在Simulink中发布ROS消息 323 13.2.4 在Simulink中订阅ROS话题 327 13.3 用Simulink开发一个简单的控制系统 328 13.4 习题 332 13.5 本章小结 332 第14章 ROS与工业机器人 333 14.1 理解ROS-Industrial软件包 333 14.1.1 ROS-Industrial的目标 334 14.1.2 ROS-Industrial简史 334 14.1.3 ROS-Industrial优点 334 14.2 安装ROS-Industrial软件包 334 14.3 ROS-Industrial软件包框图 335 14.4 为工业机器人创建URDF 336 14.5 为工业机器人创建MoveIt!配置 337 14.5.1 更新MoveIt!配置文件 340 14.5.2 测试MoveIt!配置 341 14.6 安装UR机械臂的ROS-Industrial软件包 341 14.7 理解UR机械臂的MoveIt!配置 343 14.8 使用真实的UR机器人和ROS-I 345 14.9 ABB机器人的MoveIt!配置 346 14.10 ROS-Industrial机器人支持软件包 349 14.11 ROS-Industrial 机器人客户端软件包 351 14.12 ROS-Industrial 机器人驱动软件包 352 14.13 理解MoveIt! IKFast插件 354 14.14 为ABB IRB 6640机器人创建MoveIt! IKFast插件 354 14.14.1 开发MoveIt! IKFast插件的前提条件 354 14.14.2 OpenRave和IKFast模块 354 14.15 为使用OpenRave,创建机器人的COLLADA文件 357 14.16 为IRB 6640机器人生成IKFast CPP文件 358 14.17 习题 361 14.18 本章小结 361 第15章 调试方法与最佳实战技巧 362 15.1 在Ubuntu中安装RoboWare Studio 362 15.1.1 安装和卸载RoboWare Studio 363 15.1.2 RoboWare Studio入门 363 15.1.3 在RoboWare Studio中创建ROS软件包 364 15.1.4 在RoboWare Studio中编译ROS工作区 366 15.1.5 在RoboWare Studio中运行ROS节点 367 15.1.6 在RoboWare界面启动ROS工具 368 15.1.7 处理活动的ROS话题、节点和服务 369 15.1.8 使用RoboWare工具创建ROS节点和类 370 15.1.9 RoboWare Studio中的ROS软件包管理器 371 15.2 ROS的最佳实战技巧与经验 372 15.3 ROS软件包中的最佳实战技巧与经验 374 15.4 ROS中的重要调试技巧 374 15.5 习题 377 15.6 本章小结 378 |
编辑推荐 |
精通ROS机器人编程(原书第2版) Mastering ROS for Robotics Programming Second Edition [印] 郎坦·约瑟夫(Lentin Joseph) [意] 乔纳森·卡卡切(Jonathan Cacace) 著 张新宇 张志杰 等译 ROS进阶实践指南,涵盖使用ROS进行复杂机器人设计、建模、仿真和交互的实用技术、工具和编程技巧 使用普通计算机即可运行书中大部分示例,无须任何特殊硬件 |
机器人操作系统(Robot Operating System,ROS)本质是机器人系统的中间件,可帮助开发人员编写机器人应用程序,现已被机器人公司、研究机构和大学广泛采用。本书主要介绍ROS框架的高级概念,特别适合已经熟悉ROS基本概念的读者。但是,第1章还是简要介绍了ROS的基本概念,以帮助初学者快速入门。读者将了解新机器人的软件包生成、机器人建模、设计等,以及利用ROS框架对机器人进行仿真、与ROS连接。这里使用的是高级的仿真软件和ROS工具,这些工具可以辅助机器人导航、控制和传感器可视化。最后,读者将学习如何使用ROS底层控制器、小节点(nodelet)和插件等重要概念。读者可以使用普通计算机来运行本书中的大部分示例,而无须任何特殊硬件。但是,在本书的某些章节中将讨论如何使用特殊硬件将ROS与外部传感器、驱动器和I/O开发板一起使用。 本书是按照如下顺序来组织的。在介绍了ROS的基本概念之后,开始讨论如何对机器人进行建模和仿真。Gazebo和V-REP仿真器将用于控制机器人建模并与之交互,还将用于连接机器人与MoveIt!和ROS导航软件包。然后讨论ROS插件、控制器和小节点。最后,本书还会讨论如何将Matlab和Simulink软件与ROS连接。 本书的读者对象 本书为有激情的机器人开发人员或想充分利用ROS功能的研究人员而写。本书也适合已经熟悉典型机器人应用的用户,或者想要进阶学习ROS,学习如何建模、构建、控制自己机器人的用户。如果你想轻松理解本书的所有内容,强烈建议你先掌握GNU/Linux和C++编程的基础知识。 本书主要内容 第1章介绍ROS的核心基本概念。 第2章解释如何使用ROS软件包。 第3章讨论两类机器人的设计:一类是七自由度(7-DOF)机械臂,另一类是差速驱动机器人。 第4章讨论7-DOF机械臂、差速轮式机器人和ROS控制器的仿真,这些控制器有助于控制Gazebo中的机器人关节。 第5章介绍如何使用V-REP仿真器和vrep_plugin将ROS连接到仿真场景中。然后讨论7-DOF机械臂和差速移动机器人的控制。 第6章介绍如何使用ROS MoveIt!和导航软件包集的现有功能,如机器人机械臂运动控制和机器人自主导航。 第7章展示ROS中的一些高级概念,例如ROS pluginlib、小节点和Gazebo插件。本章还将讨论每个概念的功能和应用,并通过一个示例介绍其工作原理。 第8章展示如何为类似于PR2的机器人编写基本的ROS控制器。在创建控制器后,我们将使用Gazebo中的PR2来运行控制器。与此同时,我们还将看到如何为RViz创建插件。 第9章讨论一些硬件组件(如传感器和执行器)与ROS的接口。我们将看到如何使用I/O开发板(如Arduino、树莓派和Odroid-XU4)与ROS的传感器通信。 第10章讨论如何使用ROS连接各种视觉传感器,并利用开源计算机视觉库(OpenCV)和点云库(PCL)与AR Markers一起对其进行编程。 第11章介绍如何构建具有差速驱动器配置的自主移动机器人,并将其与ROS连接。 第12章讨论MoveIt!的功能,例如碰撞规避,使用3D传感器进行感知、抓握、拾取和放置。在此之后,我们将学习如何将机器人控制器硬件与MoveIt!连接。 第13章讨论如何将Matlab和Simulink软件与ROS连接。 第14章帮助大家了解和安装ROS中的ROS-Industrial软件包。我们将学习如何为工业机器人开发MoveIt! IKFast插件。 第15章讨论如何在Eclipse IDE中设置ROS开发环境,并介绍ROS中的最佳实战经验与调试技巧。 如何学习本书 为了运行本书中的示例,你需要一台运行Linux系统的计算机。这里推荐安装的Linux发行版是Ubuntu 16.04,Debian 8也可以。建议计算机配置至少有4GB的内存和一款性能优异的处理器(Intel i系列)来执行Gazebo仿真和图像处理算法。 读者甚至可以在Windows系统上托管的虚拟机或VMware软件上安装Linux系统,在这样的虚拟系统中也可以工作。但这种选择的缺点是需要更多的计算资源来运行示例,并且当ROS与真实的硬件连接时,可能会遇到各种问题。 本书中使用的ROS版本是Kinetic Kame。需要的其他软件有V-REP仿真器、Git、Matlab和Simulink。 最后,某些章节要求读者将ROS与商用硬件连接,例如I/O开发板(Arduino、Odroid和树莓派)、视觉传感器(Kinect/Asus Xition Pro)和驱动器。你必须购买这些硬件才能运行本书中的一些示例,但这并不是学习ROS必须要购买的。 下载示例代码 你可以从www.packtpub.com通过个人账号下载本书的示例代码,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。 本书的代码也在GitHub上托管,网址为http://github.com/PacktPublishing/Mastering-ROS-for-Robotics-Programming-Second-Edition。如果代码有更新的话,会将更新提交到GitHub代码仓库中。 除此之外,我们还在http://github.com/PacktPublishing/中提供了其他书籍和视频,这里还有一些其他代码,有兴趣就去看看吧! 下载彩图 我们还提供了一个PDF文件,其中包含本书中使用的所有截图和样图。可以在此处下载:http://www.packtpub.com/sites/default/files/downloads/MasteringROSforRoboticsProgrammingSecondEdition_ColorImages.pdf。 排版约定 在本书中使用了许多排版约定。 代码格式如下: 命令行输入或输出格式如下: 粗体:表示你看到的是新术语、重要单词或句子。例如,菜单或对话框中的单词会出现在文本中。下面就是一个示例:在主工具栏上,选择“File | Open Workspace”,然后选择代表ROS工作区的目录。 警告或重要说明标志。 提示和技巧标志。 |
本店所售图书均为正版书籍
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格