首页/文章/ 详情

【古月居】新书,讲ROS,更讲机器人

1月前浏览1180
“肯定有很多朋友跟我一样跟着古月居开启的ROS入门,推荐一本古月居讲解ROS2的新书。”


 

 

 
ROS的发展  

 

 

2012年开始,使用ROS的人越来越多,ROS社区开始举办每年一届ROS开发者大会ROS ConferenceROSCon,来自全球的开发者齐聚一堂分享自己使用ROS开发的机器人应用,其中不乏亚马逊、英特尔、微软等大公司的身影,参与人数也在逐年增多。 

经历前几年野蛮而快速的发展,ROS逐渐稳定迭代,2014年起,ROS跟随Ubuntu操作系统,每两年推出一个长期支持版(Long Time Support,LTS),每个版本支持五年,这标志着ROS的成熟,加快了其普及的步伐。

图 ROS的发展历程

回顾2007年,ROS的创始团队原本只想做一款个人服务机器人,却意外成就了一款被广泛应用的机器人软件系统。

但由于设计的局限性,ROS的问题也逐渐暴露,为了能够设计一款适用于所有机器人的操作系统,全新的ROS——ROS 2在2017年年底正式发布。

全新的ROS 2

ROS 2肩负变革智能机器人时代的历史使命,在设计之初,就考虑到要满足各种各样机器人应用的需求。ROS 2是一个全新的机器人操作系统,在借鉴ROS 1成功经验的基础上,对系统架构和软件代码进行了重新设计和实现。

—重新设计了系统架构。ROS 1中所有节点都需要在节点管理器ROS Master的管理下工作,一旦Master出现问题,系统就面临宕机的风险。而ROS 2实现了真正的分布式,不再有Master这个角色,借助全新的通信框架DDS、Zenoh,为所有节点的通信提供了可靠保障。

—重新设计了软件API。ROS 1原有的API已经无法满足需求,ROS 2结合C++最新标准和Python3语言特性,设计了更具通用性的API。这种设计导致原有ROS 1的代码无法直接在ROS 2中运行,但尽量保留了类似的使用方法,同时提供了大量移植说明。

—优化升级了编译系统。ROS 1中使用的rosbuild和catkin问题很多,尤其在针对代码较多的大项目及Python编写的项目时,编译、链接经常出错。ROS 2对这些问题进行了优化,优化后的编译系统叫作ament和colcon,它们提供了更稳定、高效的编译和链接过程,减少了出错的可能性,并使整个开发流程更加流畅和可维护。

系统架构对比

在ROS 1中,应用层(Application Layer)里Master节点管理器的角色至关重要,所有节点都得听它指挥。它类似于公司的CEO,有且只有一个,如果CEO突然消失,公司肯定会乱成一团。为了增强系统的健壮性和可扩展性,ROS 2创新性地摒弃了这一设计,转而采用Discovery自发现机制,允许节点自主寻找并建立稳定的通信连接,从而避免了单点故障的风险。

中间层(Middleware Layer)是ROS封装好的标准通信接口,大家写程序的时候,会频繁和这些通信接口打交道,例如发布一个图像的数据、接收一个雷达的信息,客户端会调用底层复杂的驱动和通信协议,让开发变得简单明了。ROS 1中,ROS通信依赖底层的TCPUDP,而在ROS 2中,通信协议换成了更加复杂也更完善的数据分发服务(Data Distribution ServiceDDS)系统通信机制。

底层是系统层(OS Layer),即可以将ROS安装在哪些操作系统上,ROS 1主要安装在Linux上,ROS 2的可选项很多,LinuxWindowsmacOSRTOS都可以。

如下图所示,从ROS 2发展的时间轴中,大家可以看到ROS 2的生态正在快速迭代发展。



 

 
智能机器人时代  

 

 

在ROS 2快速迭代的同时,人工智能和机器人行业也发生了天翻地覆的变化。ChatGPT如一声惊雷,掀开了人工智能的大模型时代。相比过去的深度学习,大模型有更大的模型规模,就像一个有更多神经元的大脑一样,更加聪明、稳定。在ChatGPT之后,全球涌现了数百种大模型,这些大模型快速与各行各业结合。在机器人领域,原本遭受诸多诟病的智能化问题,也因为大模型的出现,而拥有了新的可能。

同时,机器人正在从工厂走向生活,餐厅里有送餐机器人,酒店里有送物机器人,家里有扫地机器人,路面上有自动驾驶汽车,再加上已然成为热点的人形机器人,机器人行业从底层硬件,到软件系统,再到智能化应用,正在逐渐成熟,智能机器人时代的序幕已经缓缓拉开。

我从2008年开始开发机器人,2011年接触ROS,2012年创办了“古月居”机器人社区,2022年开始打造RDK机器人开发者套件,亲眼见证了ROS与机器人行业的相伴快速成长,也有幸和众多伙伴一起助推ROS在国内的普及应用。如今,“古月居”已经成为汇聚了200多万名开发者的机器人社区,RDK也正成为智能机器人开发套件的首选,一个全新的智能机器人时代正在向大家招手。

本书汇聚了我过去十几年的机器人开发经验,虽然将ROS作为贯穿全书的主线,但更重要的是告诉所有读者:ROS既是开发机器人的软件平台,也是软件工具,在开发机器人时,不仅要会用这个工具,还要懂机器人开发的诸多原理。所以,本书不仅会详细讲解ROS 2的基本概念,更会介绍如何将这些概念应用在机器人开发中,同时指导读者从零构建一个完整的机器人系统。


 

 
内容架构  

 

 

本书共有9章,分为三部分。

  • 第一部分(第1~3章)介绍ROS 2基础原理:主要讲解ROS 2的发展历程、核心原理和组件工具,提供大量的编程和使用示例,为读者全面展示ROS 2的基础原理和功能。

  • 第二部分(第4~6章)介绍ROS 2机器人设计:主要讲解如何使用ROS 2设计一个仿真机器人和实物机器人,有条件的读者甚至可以根据书中内容自己做一个机器人。

  • 第三部分(第7~9章)介绍ROS 2机器人应用:主要讲解使用ROS 2开发机器人视觉识别、地图构建和自主导航等众多应用的方法,让机器人不仅动得了,还能看懂和理解周围的环境,并且产生进一步的交互运动。



 

 
本书特色  

 

 

本书采用最新稳定版本ROS 2系统和全新一代的Gazebo机器人仿真平台,绝大部分功能和源码可以在单独的计算机和Gazebo仿真平台上运行。

同时,本书介绍实物机器人的搭建方法,并且在实物机器人上实现相应的功能。

配套源码都加入了中文注释,同时针对核心内容提供C++和Python两个版本,方便读者理解。

本书不仅适合希望了解、学习、应用ROS 2的机器人初学者,也适合有一定经验的机器人开发工程师,同时可以作为资深机器人开发者的参考手册。

来源:孙工自动驾驶
通用汽车python通信自动驾驶机器人工厂人工智能
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-12-24
最近编辑:1月前
孙工自动驾驶
硕士 专注自动驾驶仿真测试
获赞 20粉丝 33文章 83课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈