您的浏览器不支持JavaScript,请开启后继续
ROS地面无人系统开发实践和进阶

ROS地面无人系统开发实践和进阶

  • 作者
  • 谷玉海 编著

本书全面细致地讲解了ROS 操作系统的重点和难点知识,并通过实际应用案例对无人系统的相关基础理论和实现方法进行了剖析,让读者对ROS 和地面无人系统都有较为深入的认知。主要内容包括ROS 基础实践、地面无人系统开发实践、机器视觉、通信网络、无人系统编队、无人系统的指挥控制1.0 等不可避开的关键性技术内容。同时,本书大量的实战案例均附有实现代码,让读者在阅读学习过程...


  • ¥118.00

ISBN: 978-7-122-44422-6

版次: 1

出版时间: 2024-03-01

图书介绍

ISBN:978-7-122-44422-6

语种:汉文

开本:16

出版时间:2024-03-01

装帧:平

页数:302

编辑推荐

1.本书内容非常全面,可帮助读者解决工作学习中遇到的实际问题; 2.本书是作者多年的项目经验积累所成,包含大量案例实例,并配有实现代码; 3.本书对ROS重点和热点知识进行了详细讲解; 4.本书注重实践效果,重点基础性实用章节都采用了大量实战案例来演示和验证知识点。

图书前言

随着当代科技的不断进步和发展,搭载人工智能的机器逐渐走入人们的日常生活和工作。从国防军事到社会民生,从物流行业到医疗保健,从智能家居到工业制造,人工智能的应用已经渗透和影响到国家与社会各个领域。在这个时代,人工智能技术发展得如火如荼,各种智能机器人成为市场追逐的焦点。人工智能及机器人知识成为高等院校以及大量从业工程师关注的热门学科与研究领域,大量相关书籍发行出版,以满足人们的学习需求。
相较于众多介绍ROS与机器人的相关书籍,本书的特点在于循序渐进地对ROS的重点和热点知识进行讲解,并深入浅出地梳理了智能地面无人系统相关理论及实现方法,非常详细地进行了概念解释,编写了相关案例的实现代码。本书注重实践效果,重点的基础性实用章节都采用了大量实战案例来演示和验证知识点,帮助读者更好地理解并掌握基础性知识和实践应用技能。其他涉及热点的研发性章节给出了理论算法,使读者从算法理论角度开阔知识视野。
本书分为八章,主要内容如下。
第1章:地面无人系统与ROS简介
本章介绍了智能地面无人系统及ROS的概念和基础知识等内容。首先介绍了智能地面无人系统的定义、分类和应用场景,其次介绍了ROS的发展历史、特点与版本,及其在地面无人系统开发中的重要作用。
在智能机器人操作系统中,ROS被认为是最流行的操作系统之一。ROS是一种开源机器人操作系统,被绝大多数的机器人开发人员和其他机器人相关领域的专业人士所接受和使用。ROS提供了一系列用于编程、模拟、视觉处理、定位、导航、通信和动作控制等的工具,可以用于各种各样的机器人应用开发。ROS在各种机器人操作系统中的优势在于其高可扩展性和开放性,这使得它可以轻松地与其他机器人设备进行集成,并且在机器人开发社区中具有极高的声誉和可信度。因此,ROS在各种智能机器人的操作系统中占据着非常重要的地位,并且备受机器人开发人员的青睐。
特别需要说明的是:ROS迭代发展很快,本书所有实践案例都基于ROSNoetic 版本,并通过了项目编译、运行测试验证。
第2章:ROS入门
本章介绍了ROS的基础知识和使用方式。首先,介绍了ROS的基本概念、文件系统、基本命令,ROS的通信机制和节点;其次,讨论ROS如何实现分布式计算和消息传递,便于读者建立ROS的知识框架,为下一步应用实战打下基础。
第3章:ROS基础实践
本章介绍了ROS的基础实践技能。基于ROS开发的教学用无人车系统一般处于一个分布式网络环境中,分为无人车节点与PC 机操作控制节点。本章讲解了ROSNoetic 在虚拟机环境下或PC 双系统环境下的安装配置,以及在无人车端基于ARM 架构的Jetson Nano 硬件环境下的安装配置;介绍了ROS常用可视化调试工具、仿真调试工具,以及在仿真环境下的3D 建模。本章的内容都提供了实际案例,可供读者学习参考,帮助读者在实践中学习掌握ROS环境配置与开发工具。
第4章:基于ROS的地面无人系统开发实践和进阶
本章介绍了基于ROS的地面无人系统的开发实践技能。首先介绍地面无人系统的常用传感器配件,然后介绍地面无人系统的重要应用软件包Navigation 导航包,构建SLAM 地图的两个算法包( Gmapping、Cartographer),以及结合一个无人车案例对 LittleCar 综合功能包的完整实践。读者通过本章学习即可掌握教学用无人系统的入门开发与调试能力。
第5章:机器视觉在地面无人系统中的应用
机器视觉在地面无人系统中的应用是机器人领域的热点研发课题。本章涉及本领域的基础性知识介绍与理论算法研发探讨,利用OpenCV 和CV-Bridge 实现图片在OpenCV 环境与ROS环境下转换、二维码识别,帮助读者掌握机器识别的基础性知识;视觉SLAM、视觉障碍物预测与非结构化道路识别来源于作者单位的研究生课题,提供了详尽的算法理论说明,有助于对此感兴趣并有技术进阶要求的读者开拓思路。
第6章:地面无人系统的通信网络
网络是地面无人系统运行的基础性生态环境。本章系统地介绍了计算机网络协议 (尤其是TCP/IP 网络分层协议)、网络分类,不同场景下的地面无人系统组网,以及一个多地面无人系统的网络通信协议案例。
其实ROS对网络做了良好的封装,除了在ROS环境配置中涉及网络,以及在程序代码中涉及两三行环境配置指令,开发者完全不必了解本章介绍的网络技术细节。但是,对于需要对多无人系统进行组网的读者,系统了解网络知识,了解如何对一个复杂实用无人系统组网十分必要,这类读者可以依据本章介绍的网络知识框架,进行更深入的学习了解。
第7章:地面无人系统编队
对智能机器人的了解不能局限于单机,掌握多个无人车构成的地面无人系统集群行为也是智能无人系统实践与开发的热点课题。本章内容来源于作者教学团队的研究生在本领域的研发课题,介绍了地面无人系统集群的编队算法,对教学用无人车组队实操进行算法的仿真与验证,这些内容对于希望了解智能无人系统如何实现集群编队有一定的参考价值。
第8章:无人系统的指挥控制1.0
ROS将自身软件功能限制在对智能机器人实体的操作控制领域,最多再提供机器人可视化调试工具、仿真调试工具,但是一个实用的地面无人系统需要有一个用户对无人系统操作的控制平台,即要求一个客户端GUI 界面,在该界面用户可以用可视化方式监视控制单个无人车或者无人车集群。作者团队开发了单车与多车集群的地面无人系统指控平台,本章利用其中一款单车监控软件XCommander 的SLAM 模块为例,深入浅出地介绍了基于Qt + librviz 库的SLAM模块开发内容,极具实操性。有兴趣的读者可以参照本章介绍的这个案例,以此为入门台阶进入到开发无人系统指控软件领域,为更高的技术进阶打下坚实基础。
本书读者群体:
● 机器人爱好者:本书将帮助机器人爱好者学习ROS和地面无人系统开发基础知识,从而创建自己的机器人项目。
● 专科院校学生:本书将为同学们提供ROS及地面无人系统的理论和实践内容,帮助他们在机器人、自动化等领域进行学习和研究。
● 工程师:本书将为工程师提供ROS和地面无人系统的实际开发技能,帮助他们更好地完成项目和产品设计。
● 研究人员:本书将为研究人员提供ROS及地面无人系统开发的新思路和技术方向,有助于他们探索未来的机器人发展方向。
● 编程爱好者:本书将帮助编程爱好者了解ROS和机器人开发的基础概念和技能,从而深入学习和研究机器人领域的编程技术。
最后,感谢所有参与本书编写的人员和对此项目作出贡献的人,感谢李小群、宋亮、范帅鑫的辛勤付出和帮助。希望读者能够通过本书深入了解ROS和地面无人系统,期待未来人工智能机器人能为我们的生活和工作带来更多的便利和创新。

编著者

精彩书摘

本书全面细致地讲解了ROS 操作系统的重点和难点知识,并通过实际应用案例对无人系统的相关基础理论和实现方法进行了剖析,让读者对ROS 和地面无人系统都有较为深入的认知。主要内容包括ROS 基础实践、地面无人系统开发实践、机器视觉、通信网络、无人系统编队、无人系统的指挥控制1.0 等不可避开的关键性技术内容。同时,本书大量的实战案例均附有实现代码,让读者在阅读学习过程中能够及时参与到实践过程中,帮助读者更好地理解各个知识点。
本书适合机器人方向的技术人员使用,也可以供高校及职业院校机器人或自动化相关专业师生阅读,还可供对ROS 和地面无人系统感兴趣的人群阅读学习。

目录

第1章 地面无人系统与ROS简介 001
1.1 地面无人系统简介 001
1.1.1 智能机器人与地面无人系统 001
1.1.2 地面无人系统发展现状 002
1.1.3 地面无人系统的特点 003
1.1.4 地面无人系统的关键技术 003
1.1.5 地面无人系统发展研究课题 005
1.2 ROS简介 006
1.2.1 ROS和机器人 006
1.2.2 ROS的主要特点 007
1.2.3 ROS版本 008
1.2.4 ROS学习资源 010

第2章 ROS入门 011
2.1 ROS基本概念 011
2.1.1 ROS主要功能 011
2.1.2 ROS主要框架 013
2.2 ROS文件系统 014
2.2.1 catkin 编译系统 014
2.2.2 ROS工作空间 017
2.2.3 ROS功能包 018
2.2.4 launch 启动文件 022
2.2.5 launch 自启动 025
2.3 ROS通信机制 027
2.3.1 节点及节点管理器 027
2.3.2 消息 028
2.3.3 话题 029
2.3.4 服务 041
2.3.5 动作 047
2.3.6 参数服务器 052
2.3.7 pluginlib 057
2.3.8 nodelet 062
2.3.9 rosbridge 063
2.3.10 rosserial 070

第3章 ROS基础实践 075
3.1 Ubuntu 与ROS的安装 075
3.1.1 虚拟机安装准备 075
3.1.2 双系统安装准备 080
3.1.3 Ubuntu 安装 085
3.1.4 Ubuntu arm 版安装 087
3.1.5 ROSNoetic 安装 088
3.1.6 ROS测试 089
3.2 ROS常用工具 090
3.2.1 可视化工具 090
3.2.2 仿真工具 092
3.2.3 调试工具 094
3.3 ROS机器人3D 建模 096
3.3.1 统一机器人描述格式——URDF 096
3.3.2 建立URDF 模型 097
3.3.3 建立xacro 模型 104
3.4 虚拟环境下的仿真测试 106
3.4.1 Gazebo 仿真 106
3.4.2 ArbotiX 仿真 117

第4章 基于ROS的地面无人系统开发实践和进阶 120
4.1 地面无人系统常用传感器 120
4.1.1 常用激光雷达 120
4.1.2 IMU 122
4.1.3 相机(摄像头) 122
4.1.4 组合导航 123
4.2 navigation 导航 123
4.2.1 导航功能包 123
4.2.2 move_base 124
4.2.3 常用路径规划算法 125
4.2.4 A*全局路径规划算法及优化 128
4.3 gmapping 算法 131
4.3.1 gmapping 简介 131
4.3.2 gmapping 面向用户开放的接口 131
4.3.3 gmapping 节点的配置与运行 133
4.4 cartographer 算法 134
4.4.1 cartographer 简介 134
4.4.2 cartographer 面向用户开放的接口 135
4.4.3 cartographer 节点的配置与运行 136
4.4.4 gmapping 与cartographer 138
4.5 little_car 综合软件包 138
4.5.1 little_car 软件包通用操作 139
4.5.2 底盘 141
4.5.3 思岚激光雷达 155
4.5.4 摄像头(相机) 155
4.5.5 组合导航模块 157
4.5.6 navigation 166
4.5.7 cartographer 建图 170
4.6 其他开源完整的车辆模型 173

第5章 机器视觉在地面无人系统中的应用 174
5.1 OpenCV 和cv-bridge 简介 174
5.1.1 OpenCV 读取本地图片 174
5.1.2 OpenCV 读取摄像头视频 180
5.2 视觉SLAM 187
5.2.1 视觉里程计 187
5.2.2 非线性优化 188
5.2.3 回环检测 188
5.2.4 构建地图 188
5.3 障碍物预测 189
5.3.1 数学模型 189
5.3.2 碰撞预测及策略 190
5.4 二维码识别 191
5.4.1 识别算法简介 191
5.4.2 目标点二维码提取 191
5.4.3 使用无人车摄像头对二维码进行识别 194
5.5 非结构化道路识别 195
5.5.1 非结构化道路识别的意义 195
5.5.2 主流非结构化道路识别算法 196
5.5.3 DeeplabV3+分割算法 198
5.5.4 DeeplabV3+分割算法优化改进 198

第6章 地面无人系统的通信网络 203
6.1 计算机网络协议 203
6.1.1 OSI 7 层协议 203
6.1.2 TCP/IP 网络协议族 205
6.1.3 其他计算机网络协议 206
6.2 TCP/IP 网络分层模型与协议栈协议 207
6.2.1 TCP/IP 网络分层模型 207
6.2.2 TCP/IP 网络协议栈 207
6.3 网络分类 228
6.3.1 地域范围分类 228
6.3.2 拓扑结构分类 229
6.3.3 4G 及5G 移动通信 231
6.3.4 无线自组网 233
6.3.5 数据链 238
6.4 不同场景下无人系统中的网络连接 239
6.4.1 无人系统内部模块通信网络 240
6.4.2 局域网场景下的单无人系统的测试与调试 243
6.4.3 局域网场景下的多无人系统的组网 244
6.4.4 广域网场景下的多无人系统的组网 245
6.5 多无人系统的组网的通信协议 246
6.5.1 基于UDP 组播方式的无中心服务器通信 247
6.5.2 基于UDP 或TCP 的有中心服务器通信 248

第7章 地面无人系统编队 255
7.1 地面无人系统编队简介 255
7.2 鸽群算法及其改进 256
7.2.1 无人车编队算法 256
7.2.2 鸽群算法 256
7.2.3 鸽群算法改进 257
7.3 领航跟随法编队控制 258
7.4 无人系统编队仿真 259
7.4.1 路径规划仿真 259
7.4.2 领航跟随仿真 260
7.5 无人系统实车编队 262

第8章 无人系统的指挥控制1.0 265
8.1 无人系统指控软件的用途 265
8.1.1 单机无人车指控系统 265
8.1.2 集群无人车指控系统 266
8.2 指控软件XCommander 266
8.3 开发指控软件的rviz SLAM 模块 267
8.3.1 开发环境配置 267
8.3.2 创建演示模块项目myviz 270
8.3.3 调整演示模块项目myviz 273
8.3.4 软件方法学与编程技术准备 277
8.3.5 关注ROS话题 281
8.3.6 程序文件 284
8.3.7 调试 296
8.4 无人车侧软件 302

发送电子邮件联系我们