由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高99元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
正版新书]精通ROS机器人编程(原书第3版)(印)郎坦·约瑟夫,(意)乔
¥ ×1
目 录 Contents<br />前言<br />作者简介<br />审校者简介<br />第一部分 ROS编程基本技能<br />第1章 ROS简介 2<br />1.1 为什么选择ROS 2<br />1.2 理解ROS文件系统级别 3<br />1.2.1 ROS功能包 4<br />1.2.2 ROS元功能包 5<br />1.2.3 ROS消息 6<br />1.2.4 ROS服务 7<br />1.3 理解ROS计算图级别 8<br />1.3.1 ROS节点 9<br />1.3.2 ROS信息 11<br />1.3.3 ROS主题 11<br />1.3.4 ROS服务 12<br />1.3.5 ROS bag文件 12<br />1.3.6 ROS节点管理器 13<br />1.3.7 使用ROS参数 14<br />1.4 ROS社区级别 15<br />1.5 准备工作 15<br />1.5.1 ROS发行版 15<br />1.5.2 运行ROS节点管理器和<br />ROS参数服务器 16<br />1.5.3 检查roscore命令的输出 18<br />1.6 总结 19<br />1.7 问题 19<br />第2章 ROS编程入门 20<br />2.1 创建ROS功能包 20<br />2.1.1 使用ROS主题 22<br />2.1.2 创建ROS节点 22<br />2.1.3 编译节点 25<br />2.2 添加自定义的.msg文件和.srv<br />文件 26<br />2.3 使用ROS 服务 29<br />2.3.1 使用ROS actionlib 33<br />2.3.2 编译ROS动作服务器和<br />客户端 36<br />2.4 创建启动文件 38<br />2.5 主题、服务和actionlib的应用 40<br />2.6 总结 40<br />2.7 问题 41<br />第二部分 ROS机器人仿真<br />第3章 使用ROS进行3D建模 44<br />3.1 用于机器人建模的ROS软件包 44<br />3.2 使用URDF理解机器人建模 45<br />3.3 为机器人描述创建ROS软件包 47<br />3.4 创建我们的第一个URDF模型 48<br />3.5 解析URDF文件 49<br />3.6 在RViz中可视化3D机器人模型 51<br />3.7 向URDF模型添加物理属性和碰撞<br />属性 53<br />3.8 使用xacro理解机器人建模 54<br />3.8.1 使用属性 55<br />3.8.2 使用数学表达式 55<br />3.8.3 使用宏 55<br />3.9 将xacro转换为URDF 56<br />3.10 为7-DOF机械臂创建机器人<br />描述 56<br />3.11 解析7-DOF机械臂的xacro<br />模型 58<br />3.11.1 使用常量 58<br />3.11.2 使用宏 58<br />3.11.3 包含其他xacro文件 59<br />3.11.4 在连杆中使用网格模型 59<br />3.11.5 使用机器人夹爪 60<br />3.11.6 在RViz中查看7-DOF<br />机械臂 61<br />3.12 为差速驱动机器人创建机器人<br />模型 63<br />3.13 总结 66<br />3.14 问题 67<br />第4章 使用ROS和Gazebo<br />进行机器人仿真 68<br />4.1 使用Gazebo 和ROS仿真机械臂 68<br />4.2 为Gazebo创建机械臂仿真模型 69<br />4.2.1 为Gazebo机器人模型添加<br />颜色和纹理 70<br />4.2.2 添加transmission标签来<br />驱动模型 71<br />4.3 添加gazebo_ros_control插件 71<br />4.4 仿真装有Xtion Pro的机械臂 73<br />4.5 在Gazebo中使用ROS控制器<br />移动机器人关节 76<br />4.5.1 理解ros_control<br />软件包 76<br />4.5.2 不同类型的ROS控制器与<br />硬件接口 76<br />4.5.3 ROS控制器如何与Gazebo<br />交互 77<br />4.5.4 将关节状态控制器和关节<br />位置控制器连接到机械臂 78<br />4.5.5 在Gazebo中启动ROS<br />控制器 79<br />4.5.6 移动机器人关节 81<br />4.6 在Gazebo中仿真差速轮式<br />机器人 82<br />4.6.1 向Gazebo中添加激光<br />雷达 83<br />4.6.2 在Gazebo中控制机器人<br />移动 85<br />4.6.3 为启动文件添加关节状态<br />发布者 86<br />4.7 添加ROS遥控节点 86<br />4.8 总结 88<br />4.9 问题 88<br />第5章 使用ROS、CoppeliaSim和Webots进行机器人仿真 89<br />5.1 使用ROS配置CoppeliaSim 89<br />5.1.1 理解RosInterface插件 92<br />5.1.2 处理ROS消息 95<br />5.2 使用CoppeliaSim和ROS仿真机<br />械臂 96<br />5.3 使用ROS设置Webots 99<br />5.3.1 Webots仿真器简介 100<br />5.3.2 使用Webots仿真移动<br />机器人 101<br />5.4 编写第一个控制器 103<br />5.5 使用webots_ros编写遥控节点 107<br />5.6 总结 110<br />5.7 问题 111<br />第6章 使用ROS MoveIt!与Navigation栈 112<br />6.1 MoveIt!架构 113<br />6.1.1 move_group节点 113<br />6.1.2 基于MoveIt!的运动规划 114<br />6.1.3 运动规划请求适配器 115<br />6.1.4 MoveIt!规划场景 116<br />6.1.5 MoveIt!运动学处理 117<br />6.1.6 MoveIt!碰撞检测 117<br />6.2 基于设置助手生成MoveIt!<br />配置包 117<br />6.3 在RViz中使用MoveIt!配置包<br />进行机器人运动规划 123<br />6.3.1 使用RViz的运动规划<br />插件 124<br />6.3.2 MoveIt!配置包与Gazebo<br />交互 127<br />6.4 理解ROS导航栈 132<br />6.4.1 导航栈的硬件需求 132<br />6.4.2 使用导航软件包 133<br />6.4.3 使用导航栈 134<br />6.5 使用SLAM构建地图 135<br />6.5.1 为gmapping创建启动<br />文件 136<br />6.5.2 在差速驱动机器人上运行SLAM 137<br />6.5.3 基于amcl和静态地图实现<br />自主导航 140<br />6.5.4 创建amcl启动文件 140<br />6.6 总结 143<br />6.7 问题 143<br />第7章 探索ROS MoveIt!的高级<br />功能 144<br />7.1 使用move_group的C++接口<br />进行运动规划 144<br />7.1.1 使用MoveIt! C++ API规划<br />随机路径 144<br />7.1.2 使用MoveIt! C++ API规划<br />自定义路径 145<br />7.1.3 使用MoveIt!进行机械臂的<br />碰撞检测 147<br />7.2 使用MoveIt!和Gazebo进行<br />感知 153<br />7.3 使用MoveIt!操作对象 158<br />7.3.1 使用MoveIt!执行拾取和<br />放置任务 158<br />7.3.2 在Gazebo和真实的机器人<br />中应用抓取和放置动作 162<br />7.4 了解用于机器人硬件接口的DYNAMIXEL ROS伺服控制器 162<br />7.4.1 DYNAMIXEL伺服舵机 163<br />7.4.2 DYNAMIXEL-ROS接口 164<br />7.5 7-DOF机械臂与ROS MoveIt! 164<br />7.5.1 为COOL机械臂创建一个<br />控制器软件包 165<br />7.5.2 COOL机械臂的MoveIt!<br />配置 168<br />7.6 总结 170<br />7.7 问题 170<br />第8章 ROS在空中机器人上的<br />应用 171<br />8.1 使用空中机器人 171<br />8.1.1 UAV硬件 172<br />8.1.2 Pixhawk自动驾驶仪 172<br />8.2 使用PX4飞行控制栈 173<br />8.2.1 PX4固件架构 176<br />8.2.2 PX4 SITL 178<br />8.3 PC/自动驾驶仪通信 179<br />8.4 编写ROS-PX4应用程序 181<br />8.4.1 编写轨迹流线 186<br />8.4.2 PX4的外部位姿估计 187<br />8.5 使用RotorS仿真框架 188<br />8.5.1 安装RotorS 188<br />8.5.2 RotorS软件包 190<br />8.5.3 创建一种新的无人机<br />模型 192<br />8.5.4 与RotorS电机模型交互 199<br />8.6 总结 200<br />8.7 问题 200<br />第三部分 ROS机器人硬件<br />原型开发<br />第9章 将I/O板传感器和执行器<br />连接到ROS 202<br />9.1 理解Arduino-ROS接口 202<br />9.2 Arduino-ROS接口 203<br />9.2.1 理解ROS中的<br />rosserial包 203<br />9.2.2 理解Arduino中的ROS<br />节点API 207<br />9.2.3 ROS-Arduino发布者和<br />订阅者示例 210<br />9.2.4 ROS-Arduino示例:用按钮<br />闪烁LED 213<br />9.2.5 ROS-Arduino示例:加速度<br />计ADXL 335 215<br />9.2.6 ROS-Arduino示例:超声波<br />距离传感器 216<br />9.2.7 ROS-Arduino示例:里程计<br />数据发布器 220<br />9.3 将非Arduino板连接到ROS 222<br />9.3.1 设置Odroid-C4、树莓派4<br />和Jetson Nano用于安装<br />ROS 222<br />9.3.2 在树莓派4上使用ROS<br />闪烁LED 228<br />9.3.3 在树莓派2上使用ROS<br />通过按钮闪烁LED 230<br />9.3.4 在树莓派4上运行示例 233<br />9.4 将DYNAMIXEL执行器连接到<br />ROS 234<br />9.5 总结 235<br />9.6 问题 235<br />第10章 使用ROS、OpenCV和PCL编程视觉传感器 236<br />10.1 软硬件需求 236<br />10.2 理解ROS-OpenCV接口<br />软件包 236<br />10.3 理解ROS-PCL接口软件包 237<br />10.4 连接ROS与USB网络摄像头 239<br />10.5 校准ROS摄像机 241<br />10.6 将Kinect和Asus Xtion Pro与<br />ROS连接 249<br />10.7 连接Intel RealSense摄像机与<br />ROS 251<br />10.8 连接Hokuyo激光雷达与ROS 255<br />10.9 使用点云数据 257<br />10.9.1 如何发布点云 257<br />10.9.2 如何订阅和处理点云 259<br />10.9.3 从PCD文件读取和<br />发布点云 262<br />10.10 总结 264<br />10.11 问题 265<br />第11章 在ROS中构建<br />与连接差速驱动<br />移动机器人硬件 266<br />11.1 技术要求 266<br />11.1.1 软件要求 267<br />11.1.2 网络设置 268<br />11.1.3 硬件要求 268<br />11.2 一款DIY自主移动机器人—<br />Remo简介 268<br />11.2.1 Remo硬件组件 269<br />11.2.2 ROS Navigation Stack的<br />软件需求 271<br />11.3 为差速驱动机器人开发底层<br />控制器和ROS Control高级<br />硬件接口 272<br />11.3.1 为Remo实现底层基本<br />控制器 274<br />11.3.2 用于差速驱动机器人<br />的ROS Control高级<br />硬件接口 278<br />11.3.3 Remo机器人的ROS<br />节点和主题概述 280<br />11.4 配置和使用Navigation Stack 283<br />11.4.1 配置gmapping节点并<br />创建地图 284<br />11.4.2 使用gmapping节点 284<br />11.4.3 配置move_base节点 285<br />11.4.4 配置AMCL节点 286<br />11.4.5 AMCL规划 287<br />11.4.6 在仿真环境中使用Remo<br />机器人 289<br />11.5 总结 291<br />11.6 问题 291<br />第四部分 高级ROS编程<br />第12章 使用pluginlib、nodelet<br />和Gazebo插件 294<br />12.1 理解pluginlib 294<br />12.2 理解ROS小节点 300<br />12.3 理解并创建Gazebo插件 306<br />12.4 总结 309<br />12.5 问题 310<br />第13章 编写ROS控制器<br />和可视化插件 311<br />13.1 理解ros_control包 311<br />13.2 在ROS中编写一个基本的关节<br />控制器 314<br />13.2.1 创建控制器包 314<br />13.2.2 创建控制器头文件 315<br />13.2.3 创建控制器源文件 315<br />13.2.4 控制器源文件的详细<br />说明 317<br />13.2.5 创建插件描述文件 318<br />13.2.6 更新package.xml 318<br />13.2.7 更新CMakeLists.txt 318<br />13.2.8 构建控制器 319<br />13.2.9 编写控制器配置文件 319<br />13.2.10 编写控制器的启动<br />文件 319<br />13.2.11 在Gazebo中运行控制器<br />和7-DOF机械臂 320<br />13.3 了解RViz工具及其插件 322<br />13.3.1 Displays面板 323<br />13.3.2 RViz工具栏 323<br />13.3.3 Views面板 323<br />13.3.4 Time面板 323<br />13.3.5 可停靠面板 324<br />13.4 为远程操作编写RViz插件 324<br />13.5 总结 330<br />13.6 问题 330<br />第14章 在MATLAB和Simulink中使用ROS 331<br />14.1 开始使用MATLAB 331<br />14.2 开始使用ROS Toolbox<br />和MATLAB 332<br />14.3 利用MATLAB和Gazebo开发<br />机器人应用程序 338<br />14.4 开始使用ROS和Simulink 341<br />14.4.1 在Simulink中创建一个<br />波信号积分器 342<br />14.4.2 在Simulink中发布ROS<br />消息 344<br />14.4.3 在Simulink中订阅ROS<br />主题 346<br />14.5 在Simulink中开发一个简单的<br />控制系统 348<br />14.6 总结 351<br />14.7 问题 351<br />第15章 ROS在工业机器人中的<br />应用 352<br />15.1 理解ROS-Industrial包 352<br />15.2 ROS-Industrial的目标 352<br />15.3 ROS-Industrial简史 353<br />15.4 安装ROS-Industrial包 353<br />15.5 为工业机器人创建URDF 355<br />15.6 为工业机器人创建MoveIt!配置 356<br />15.7 更新MoveIt!的配置文件 359<br />15.8 为UR机器人的机械臂安装<br />ROS-Industrial软件包 361<br />15.9 为UR机器人安装ROS接口 362<br />15.10 理解UR机械臂的MoveIt!<br />配置 363<br />15.11 UR硬件和ROS-I 365<br />15.12 使用MoveIt!配置ABB<br />机器人 366<br />15.13 了解ROS-Industrial机器人<br />支持包 369<br />15.14 了解ROS-Industrial机器人<br />客户端包 370<br />15.15 设计工业机器人客户端节点 371<br />15.16 了解ROS-Industrial机器人<br />驱动程序包 372<br />15.17 理解MoveIt! IKFast插件 374<br />15.18 为ABB IRB 6640机器人创建MoveIt! IKFast插件 374<br />15.19 OpenRave和IKFast模块 375<br />15.19.1 MoveIt! IKFast 375<br />15.19.2 安装MoveIt! <br />IKFast包 375<br />15.19.3 在Ubuntu 20.04上<br />安装OpenRave 375<br />15.20 创建使用OpenRave的机器人的COLLADA文件 376<br />15.21 为IRB 6640机器人生成IKFast CPP文件 378<br />15.22 创建MoveIt! IKFast插件 379<br />15.23 总结 380<br />15.24 问题 380<br />第16章 ROS的故障排除和<br />很好实践 381<br />16.1 为ROS设置Visual Studio Code <br />IDE开发环境 381<br />16.1.1 安装/卸载Visual Studio Code 382<br />16.1.2 开始使用Visual Studio <br />Code 382<br />16.1.3 安装新的Visual Studio <br />Code扩展 383<br />16.1.4 从Visual Studio Code的 ROS扩展开始 384<br />16.1.5 检查和构建ROS工作<br />空间 386<br />16.1.6 使用Visual Studio Code<br />管理ROS包 387<br />16.1.7 可视化URDF文件的<br />预览 387<br />16.2 ROS的很好实践 388<br />16.3 ROS包的很好编程实践 391<br />16.4 ROS中的重要故障排除提示 392<br />16.5 总结 394<br />16.6 问题 395
机器人操作系统(ROS)是一个用于复杂机器人编程的软件框架,你无须从头开始编写代码,即可用它开发用于构建复杂机器人的软件,从而节省宝贵的开发时间。本书通过通俗易懂的实用示例和对基本概念的逐步解释,全面介绍了可应用于ROS 机器人项目的高级概念。
本书首先帮助你掌握使用ROS对机器人进行编程所需的基本概念。然后带你探索开发仿真机器人和实际机器人,以及从头开始应用导航和操纵等高级功能。随着阅读的深入,你将学习如何创建 ROS 控制器和插件,并探索 ROS 的工业应用程序及其与空中机器人的交互。最后,你将了解高效使用 ROS 的很好实践和方法。
最终,你将学会如何在 ROS 中创建各种应用程序,并构建自己的第一个ROS机器人。
阅读本书,你将学到:
·使用7自由度机械臂和差动轮式移动机器人创建机器人模型。
·使用Gazebo、CoppeliaSim和Webots等机器人模拟器。
·使用SLAM和AMCL软件包实现差动驱动机器人的自主导航。
·使用ROS与空中机器人进行并对它进行仿真。
·探索ROS pluginlib、ROS nodelets 和 Gazebo等插件。
·连接Arduino、机器人传感器和高端执行器等I/O板。
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格
