精通ROS机器人编程
¥
72.85
5.6折
¥
129
九五品
仅1件
作者[印]郎坦·约瑟夫,[意]乔纳森·卡卡切
出版社机械工业出版社
ISBN9787111750383
出版时间2024-05
版次1
装帧平装
开本16开
纸张胶版纸
定价129元
上书时间2024-12-08
商品详情
- 品相描述:九五品
- 商品描述
-
基本信息
书名:精通ROS机器人编程
定价:129.00元
作者:[印]郎坦·约瑟夫,[意]乔纳森·卡卡切
出版社:机械工业出版社
出版日期:2024-05-01
ISBN:9787111750383
字数:
页码:
版次:3
装帧:平装
开本:16开
商品重量:
编辑推荐
机器人操作系统(ROS)是一个用于复杂机器人编程的软件框架,你无须从头开始编写代码,即可用它开发用于构建复杂机器人的软件,从而节省宝贵的开发时间。本书通过通俗易懂的实用示例和对基本概念的逐步解释,全面介绍了可应用于ROS 机器人项目的高级概念。 本书首先帮助你掌握使用ROS对机器人进行编程所需的基本概念。然后带你探索开发仿真机器人和实际机器人,以及从头开始应用导航和操纵等高级功能。随着阅读的深入,你将学习如何创建 ROS 控制器和插件,并探索 ROS 的工业应用程序及其与空中机器人的交互。最后,你将了解高效使用 ROS 的实践和方法。 最终,你将学会如何在 ROS 中创建各种应用程序,并构建自己的个ROS机器人。 阅读本书,你将学到: ·使用7自由度机械臂和差动轮式移动机器人创建机器人模型。 ·使用Gazebo、CoppeliaSim和Webots等机器人模拟器。 ·使用SLAM和AMCL软件包实现差动驱动机器人的自主导航。 ·使用ROS与空中机器人进行并对它进行仿真。 ·探索ROS pluginlib、ROS nodelets 和 Gazebo等插件。 ·连接Arduino、机器人传感器和高端执行器等I/O板。
内容提要
本书提供了实用且易于理解的示例,对ROS机器人编程的高级概念进行了全面的介绍。本书首先介绍用ROS进行机器人编程所需的基本概念和ROS框架,讨论了如何用运动规划库和ROS导航栈对机器人进行仿真和交互,还讨论了ROS插件、控制器和节点、各种ROS接口(如何把I/O开发板、传感器和执行器等与ROS连接起来),以及如何用ROS和ROS-Industrial对复杂机器人进行仿真。最后,本书介绍了ROS的故障排除和最佳实践。
目录
目 录 Contents前言作者简介审校者简介部分 ROS编程基本技能章 ROS简介 21.1 为什么选择ROS 21.2 理解ROS文件系统级别 31.2.1 ROS功能包 41.2.2 ROS元功能包 51.2.3 ROS消息 61.2.4 ROS服务 71.3 理解ROS计算图级别 81.3.1 ROS节点 91.3.2 ROS信息 111.3.3 ROS主题 111.3.4 ROS服务 121.3.5 ROS bag文件 121.3.6 ROS节点管理器 131.3.7 使用ROS参数 141.4 ROS社区级别 151.5 准备工作 151.5.1 ROS发行版 151.5.2 运行ROS节点管理器和ROS参数服务器 161.5.3 检查roscore命令的输出 181.6 总结 191.7 问题 19第2章 ROS编程入门 202.1 创建ROS功能包 202.1.1 使用ROS主题 222.1.2 创建ROS节点 222.1.3 编译节点 252.2 添加自定义的.msg文件和.srv文件 262.3 使用ROS 服务 292.3.1 使用ROS actionlib 332.3.2 编译ROS动作服务器和客户端 362.4 创建启动文件 382.5 主题、服务和actionlib的应用 402.6 总结 402.7 问题 41第二部分 ROS机器人仿真第3章 使用ROS进行3D建模 443.1 用于机器人建模的ROS软件包 443.2 使用URDF理解机器人建模 453.3 为机器人描述创建ROS软件包 473.4 创建我们的个URDF模型 483.5 解析URDF文件 493.6 在RViz中可视化3D机器人模型 513.7 向URDF模型添加物理属性和碰撞属性 533.8 使用xacro理解机器人建模 543.8.1 使用属性 553.8.2 使用数学表达式 553.8.3 使用宏 553.9 将xacro转换为URDF 563.10 为7-DOF机械臂创建机器人描述 563.11 解析7-DOF机械臂的xacro模型 583.11.1 使用常量 583.11.2 使用宏 583.11.3 包含其他xacro文件 593.11.4 在连杆中使用网格模型 593.11.5 使用机器人夹爪 603.11.6 在RViz中查看7-DOF机械臂 613.12 为差速驱动机器人创建机器人模型 633.13 总结 663.14 问题 67第4章 使用ROS和Gazebo进行机器人仿真 684.1 使用Gazebo 和ROS仿真机械臂 684.2 为Gazebo创建机械臂仿真模型 694.2.1 为Gazebo机器人模型添加颜色和纹理 704.2.2 添加transmission标签来驱动模型 714.3 添加gazebo_ros_control插件 714.4 仿真装有Xtion Pro的机械臂 734.5 在Gazebo中使用ROS控制器移动机器人关节 764.5.1 理解ros_control软件包 764.5.2 不同类型的ROS控制器与硬件接口 764.5.3 ROS控制器如何与Gazebo交互 774.5.4 将关节状态控制器和关节位置控制器连接到机械臂 784.5.5 在Gazebo中启动ROS控制器 794.5.6 移动机器人关节 814.6 在Gazebo中仿真差速轮式机器人 824.6.1 向Gazebo中添加激光雷达 834.6.2 在Gazebo中控制机器人移动 854.6.3 为启动文件添加关节状态发布者 864.7 添加ROS遥控节点 864.8 总结 884.9 问题 88第5章 使用ROS、CoppeliaSim和Webots进行机器人仿真 895.1 使用ROS配置CoppeliaSim 895.1.1 理解RosInterface插件 925.1.2 处理ROS消息 955.2 使用CoppeliaSim和ROS仿真机械臂 965.3 使用ROS设置Webots 995.3.1 Webots仿真器简介 1005.3.2 使用Webots仿真移动机器人 1015.4 编写个控制器 1035.5 使用webots_ros编写遥控节点 1075.6 总结 1105.7 问题 111第6章 使用ROS MoveIt!与Navigation栈 1126.1 MoveIt!架构 1136.1.1 move_group节点 1136.1.2 基于MoveIt!的运动规划 1146.1.3 运动规划请求适配器 1156.1.4 MoveIt!规划场景 1166.1.5 MoveIt!运动学处理 1176.1.6 MoveIt!碰撞检测 1176.2 基于设置助手生成MoveIt!配置包 1176.3 在RViz中使用MoveIt!配置包进行机器人运动规划 1236.3.1 使用RViz的运动规划插件 1246.3.2 MoveIt!配置包与Gazebo交互 1276.4 理解ROS导航栈 1326.4.1 导航栈的硬件需求 1326.4.2 使用导航软件包 1336.4.3 使用导航栈 1346.5 使用SLAM构建地图 1356.5.1 为gmapping创建启动文件 1366.5.2 在差速驱动机器人上运行SLAM 1376.5.3 基于amcl和静态地图实现自主导航 1406.5.4 创建amcl启动文件 1406.6 总结 1436.7 问题 143第7章 探索ROS MoveIt!的高级功能 1447.1 使用move_group的C 接口进行运动规划 1447.1.1 使用MoveIt! C API规划随机路径 1447.1.2 使用MoveIt! C API规划自定义路径 1457.1.3 使用MoveIt!进行机械臂的碰撞检测 1477.2 使用MoveIt!和Gazebo进行感知 1537.3 使用MoveIt!操作对象 1587.3.1 使用MoveIt!执行拾取和放置任务 1587.3.2 在Gazebo和真实的机器人中应用抓取和放置动作 1627.4 了解用于机器人硬件接口的DYNAMIXEL ROS伺服控制器 1627.4.1 DYNAMIXEL伺服舵机 1637.4.2 DYNAMIXEL-ROS接口 1647.5 7-DOF机械臂与ROS MoveIt! 1647.5.1 为COOL机械臂创建一个控制器软件包 1657.5.2 COOL机械臂的MoveIt!配置 1687.6 总结 1707.7 问题 170第8章 ROS在空中机器人上的应用 1718.1 使用空中机器人 1718.1.1 UAV硬件 1728.1.2 Pixhawk自动驾驶仪 1728.2 使用PX4飞行控制栈 1738.2.1 PX4固件架构 1768.2.2 PX4 SITL 1788.3 PC/自动驾驶仪通信 1798.4 编写ROS-PX4应用程序 1818.4.1 编写轨迹流线 1868.4.2 PX4的外部位姿估计 1878.5 使用RotorS仿真框架 1888.5.1 安装RotorS 1888.5.2 RotorS软件包 1908.5.3 创建一种新的无人机模型 1928.5.4 与RotorS电机模型交互 1998.6 总结 2008.7 问题 200第三部分 ROS机器人硬件原型开发第9章 将I/O板传感器和执行器连接到ROS 2029.1 理解Arduino-ROS接口 2029.2 Arduino-ROS接口 2039.2.1 理解ROS中的rosserial包 2039.2.2 理解Arduino中的ROS节点API 2079.2.3 ROS-Arduino发布者和订阅者示例 2109.2.4 ROS-Arduino示例:用按钮闪烁LED 2139.2.5 ROS-Arduino示例:加速度计ADXL 335 2159.2.6 ROS-Arduino示例:超声波距离传感器 2169.2.7 ROS-Arduino示例:里程计数据发布器 2209.3 将非Arduino板连接到ROS 2229.3.1 设置Odroid-C4、树莓派4和Jetson Nano用于安装ROS 2229.3.2 在树莓派4上使用ROS闪烁LED 2289.3.3 在树莓派2上使用ROS通过按钮闪烁LED 2309.3.4 在树莓派4上运行示例 2339.4 将DYNAMIXEL执行器连接到ROS 2349.5 总结 2359.6 问题 2350章 使用ROS、OpenCV和PCL编程视觉传感器 23610.1 软硬件需求 23610.2 理解ROS-OpenCV接口软件包 23610.3 理解ROS-PCL接口软件包 23710.4 连接ROS与USB网络摄像头 23910.5 校准ROS摄像机 24110.6 将Kinect和Asus Xtion Pro与ROS连接 24910.7 连接Intel RealSense摄像机与ROS 25110.8 连接Hokuyo激光雷达与ROS 25510.9 使用点云数据 25710.9.1 如何发布点云 25710.9.2 如何订阅和处理点云 25910.9.3 从PCD文件读取和发布点云 26210.10 总结 26410.11 问题 2651章 在ROS中构建与连接差速驱动移动机器人硬件 26611.1 技术要求 26611.1.1 软件要求 26711.1.2 网络设置 26811.1.3 硬件要求 26811.2 一款DIY自主移动机器人—Remo简介 26811.2.1 Remo硬件组件 26911.2.2 ROS Navigation Stack的软件需求 27111.3 为差速驱动机器人开发底层控制器和ROS Control高级硬件接口 27211.3.1 为Remo实现底层基本控制器 27411.3.2 用于差速驱动机器人的ROS Control高级硬件接口 27811.3.3 Remo机器人的ROS节点和主题概述 28011.4 配置和使用Navigation Stack 28311.4.1 配置gmapping节点并创建地图 28411.4.2 使用gmapping节点 28411.4.3 配置move_base节点 28511.4.4 配置AMCL节点 28611.4.5 AMCL规划 28711.4.6 在仿真环境中使用Remo机器人 28911.5 总结 29111.6 问题 291第四部分 高级ROS编程2章 使用pluginlib、nodelet和Gazebo插件 29412.1 理解pluginlib 29412.2 理解ROS小节点 30012.3 理解并创建Gazebo插件 30612.4 总结 30912.5 问题 3103章 编写ROS控制器和可视化插件 31113.1 理解ros_control包 31113.2 在ROS中编写一个基本的关节控制器 31413.2.1 创建控制器包 31413.2.2 创建控制器头文件 31513.2.3 创建控制器源文件 31513.2.4 控制器源文件的详细说明 31713.2.5 创建插件描述文件 31813.2.6 更新package.xml 31813.2.7 更新CMakeLists.txt 31813.2.8 构建控制器 31913.2.9 编写控制器配置文件 31913.2.10 编写控制器的启动文件 31913.2.11 在Gazebo中运行控制器和7-DOF机械臂 32013.3 了解RViz工具及其插件 32213.3.1 Displays面板 32313.3.2 RViz工具栏 32313.3.3 Views面板 32313.3.4 Time面板 32313.3.5 可停靠面板 32413.4 为远程操作编写RViz插件 32413.5 总结 33013.6 问题 3304章 在MATLAB和Simulink中使用ROS 33114.1 开始使用MATLAB 33114.2 开始使用ROS Toolbox和MATLAB 33214.3 利用MATLAB和Gazebo开发机器人应用程序 33814.4 开始使用ROS和Simulink 34114.4.1 在Simulink中创建一个波信号积分器 34214.4.2 在Simulink中发布ROS消息 34414.4.3 在Simulink中订阅ROS主题 34614.5 在Simulink中开发一个简单的控制系统 34814.6 总结 35114.7 问题 3515章 ROS在工业机器人中的应用 35215.1 理解ROS-Industrial包 35215.2 ROS-Industrial的目标 35215.3 ROS-Industrial简史 35315.4 安装ROS-Industrial包 35315.5 为工业机器人创建URDF 35515.6 为工业机器人创建MoveIt!配置 35615.7 更新MoveIt!的配置文件 35915.8 为UR机器人的机械臂安装ROS-Industrial软件包 36115.9 为UR机器人安装ROS接口 36215.10 理解UR机械臂的MoveIt!配置 36315.11 UR硬件和ROS-I 36515.12 使用MoveIt!配置ABB机器人 36615.13 了解ROS-Industrial机器人支持包 36915.14 了解ROS-Industrial机器人客户端包 37015.15 设计工业机器人客户端节点 37115.16 了解ROS-Industrial机器人驱动程序包 37215.17 理解MoveIt! IKFast插件 37415.18 为ABB IRB 6640机器人创建MoveIt! IKFast插件 37415.19 OpenRave和IKFast模块 37515.19.1 MoveIt! IKFast 37515.19.2 安装MoveIt! IKFast包 37515.19.3 在Ubuntu 20.04上安装OpenRave 37515.20 创建使用OpenRave的机器人的COLLADA文件 37615.21 为IRB 6640机器人生成IKFast CPP文件 37815.22 创建MoveIt! IKFast插件 37915.23 总结 38015.24 问题 3806章 ROS的故障排除和实践 38116.1 为ROS设置Visual Studio Code IDE开发环境 38116.1.1 安装/卸载Visual Studio Code 38216.1.2 开始使用Visual Studio Code 38216.1.3 安装新的Visual Studio Code扩展 38316.1.4 从Visual Studio Code的 ROS扩展开始 38416.1.5 检查和构建ROS工作空间 38616.1.6 使用Visual Studio Code管理ROS包 38716.1.7 可视化URDF文件的预览 38716.2 ROS的实践 38816.3 ROS包的编程实践 39116.4 ROS中的重要故障排除提示 39216.5 总结 39416.6 问题 395
作者介绍
朗坦·约瑟夫(Lentin Joseph)是一名来自印度的作家、创业者。他是印度Qbotics实验室的创始人兼CEO,在机器人领域已经有7年的从业经验,主要研究方向包括机器人操作系统(ROS)、OpenCV、PCL等。乔纳森·卡卡切(Jonathan Cacace)在意大利那不勒斯腓特烈二世大学获计算机科学硕士学位及信息与自动化工程博士学位。目前,乔纳森是那不勒斯腓特烈二世大学PRISMA实验室的博士后,主要研究工业机器人和服务机器人,曾经开发了几款基于ROS且集成了机器人感知控制的机器人应用。
序言
— 没有更多了 —
以下为对购买帮助不大的评价