您好,欢迎光临有路网!
精通ROS机器人编程(原书第3版) [印]郎坦·约瑟夫
QQ咨询:
有路璐璐:

精通ROS机器人编程(原书第3版) [印]郎坦·约瑟夫

  • 作者:(印)郎坦·约瑟夫,(意)乔纳森·卡卡切
  • 出版社:机械工业出版社
  • ISBN:9787111750383
  • 出版日期:2024年05月01日
  • 页数:412
  • 定价:¥129.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

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

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外