ROS–版本选择

ROS–版本选择ROS版本选择1介绍2ros1版本3ros2版本4ROS1与ROS2区别4.1更稳定、应用更广4.2接口更统一4.3使用OOP写入节点4.4参考1介绍博主之前对ros浅尝辄止,22年想系统学习下ros,如下是版本比对选择。2ros1版本3ros2版本4ROS1与ROS2区别4.1更稳定、应用更广ROS1最初由WillowGarage于2007年创建,在开源机器人社区中已经变得巨大。ROS1背后的团队已经了解到-凭借这些年的经验,缺少哪些重要功能以及

1 介绍

博主之前对ros浅尝辄止,22年想系统学习下ros,如下是版本比对选择。

2 ros1版本

在这里插入图片描述在这里插入图片描述

3 ros2版本

在这里插入图片描述
在这里插入图片描述

4 ROS1与ROS2区别

4.1 更稳定、应用更广

ROS1最初由Willow Garage于2007年创建,在开源机器人社区中已经变得巨大。
ROS1背后的团队已经了解到 – 凭借这些年的经验,缺少哪些重要功能以及可以改进的内容。不幸的是,将所有这些修改添加到ROS1中将需要许多重大更改,并使ROS1非常不稳定。因此,ROS2是从头开始开发的,并且是一个全新的ROS。
至于现在ROS在业界还不是很受欢迎,并且缺乏一些最重要的要求,比如实时、安全、认证、安保。ROS2 的目标之一是使其与工业应用兼容。

4.2 接口更统一

在 ROS1 中,对于 Cpp,你使用 roscpp,而对于 Python,你使用 rospy。这两个库都是完全独立的,从头开始构建。有些功能接口不统一。
ROS2 具有更多层。只有一个名为 rcl 的基本库,它是用 C 语言实现的。这是包含所有 ROS2 核心功能的基础。在此基础上构建Cpp和Python接口,底层接口统一。

4.3 使用 OOP 写入节点

在 ROS1 中,没有特定的结构告诉您应如何编写节点功能。您可以决定在程序中的任何位置添加回调函数,或者根据需要使用OOP,但每个函数的实现都可以是唯一的。
在 ROS2 中,情况有所不同。有一个关于如何编写节点的约定。您必须创建一个继承自 Node 对象的类。这将为每个人节省大量时间。您已经拥有了一个良好的模块化结构来编写节点。这将使您的程序更干净,开发人员在不同项目上的合作将更容易。

4.4 集中式到分布式

ROS1 中,在运行节点之前,需要启动 ROS 主节点。ROS1 主节点将充当节点的 DNS 服务器,以便它们可以相互检索。
ROS2 中,不再有 ROS 主节点!这不再是一个集中式系统。每个节点都具有发现其他节点的能力。可以简单地启动一个节点,而不必担心是否有主节点正在运行。可以创建完全分布式系统。

4.5 服务由同步到异步

在 ROS1 中,服务是同步的。当服务客户端向服务器请求请求时,该请求将一直卡住,直到服务器响应(或失败)。
在 ROS2 中,服务是异步的。调用服务时,可以添加一个回调函数,该函数将在服务器响应时触发。同时,您的主线程不会卡住。

参考

1、ros1-Distributions
2、ros2-Distributions
3、ros1与ros2概述
4、ros代码仓库

今天的文章ROS–版本选择分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/24002.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注