ROS学习(1)——ROS1和ROS2的区别

2023-11-16

        因为机器人是一个系统工程,它包括了机械臂结构,电子电路,驱动程序,通信框架,组装集成,调试和各种感知决策算法等方面,任何一个人甚至是一个公司都不可能完成机器人系统的研发工作 。但是我们又希望自己能造出一个机器人跑一跑,验证一下自己的算法,所以我们就需要一个软件平台能够把机器人的各个部件做一个集成,这个平台就是ROS。那么至于机器人的每个部件(摄像头,电机等)就交给专业的人去做。

        最开始出现的是ROS1,是2007年机器人公司Willow Garage和斯坦福人工智能实验室合作开发的,每年都在Ubuntuxx.04版本发布一个月之后的五月份发布新版本。比较有意思的是ROS的发布日期刚好是在5月23号,这一天是世界乌龟日(World Turtle Day),用过ros的小伙伴应该都了解ros的每个版本的海报都是一只别具特色的小乌龟,ros的官方仿真教程turtlesim就是一只小乌龟在跑啊跑(会心一笑)。

       OS

       在ROSCon2014上,ROS正式发布了新一代的ROS设计架构,2018年正式推出ROS2的第一个正式版本。可以说ROS2是ROS1脱胎换骨之后的样子。那么我们已经有ROS1了,为什么还要发布ROS2呢,把ROS1一直改进改进不就好了么?接下来我们就来了解一下为什么一定要推出ROS2,以及ROS1和ROS2的区别在哪里。

ROS1的介绍

ROS1采用分布式框架,其架构可以分为三个层次:基于Linux系统的OS层,实现ROS核心通信机制以及众多机器人开发库的中间层;在ROS Master的管理下保证功能节点的正常运行的应用层。

ROS1的通信机制是每个节点通过ROS Master发送和接收话题消息。

 

 但是ROS1存在以下几个问题:

  • 无实时性(real-time)
  • 嵌入式设备不友好
  • 对于网络通信的重依赖(需要高带宽且稳定的网络连接)
  • 多用于学术应用
  •  原生的 ROS 仅支持单机器人
  •  超高的灵活性带来的不规范的编程模式

总的来说,ROS1比较适用于单个机器人,很多方面存在一些限制,对于多机器人系统,跨平台,实时性强,网络安全要求高,产品化的场景下(如自动驾驶汽车,多机械臂协同),ROS1就不能很好的胜任了。

 ROS2

ROS2和ROS1的系统框架对比如下图所示,最大的区别就在于ROS2没有Master了。

ROS1中Master相当于一个团队的核心成员,如果没有了Master或者是Master出现了问题,就会无法实现节点中的通信,这样这个系统很不稳定。所以采用类似去中心化的方式,ROS2中就没有了Master节点,ROS2中采用discovery——自发现机制,让节点和节点之间无需通过Master,互相找到彼此,从而建立稳定的通信连接。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ROS学习(1)——ROS1和ROS2的区别 的相关文章

  • ROS系统基本功能的使用详解(基本指令/节点/服务/启动文件/动态参数)

    ROS系统基本功能的使用详解 一 创建工作空间 二 创建与编译ROS功能包 三 ROS的基本命令 3 1 节点 3 2 主题 3 3 服务 3 4 参数服务器 四 节点的创建与运行 4 1 创建源文件 4 2 修改CMakeLists tx
  • ROS中使用VLP16激光雷达获取点云数据

    ROS中使用VLP16激光雷达获取点云数据 个人博客地址 本文测试环境为 Ubuntu20 04 ROS Noetic 需要将激光雷达与PC连接 然后在设置 gt 网络 gt 有线中将IPv4改为手动 并且地址为192 168 1 100
  • 思岚RPLIDAR A2 在ubuntu 16.04上的测试

    1 下载雷达ROS包 首先在github上下载rplidar的ros包 下载指令为 默认安装了git git clone https github com Slamtec rplidar ros git 在ubuntu上创建工作空间 并将该
  • 关于相机与激光雷达数据采集与标定

    最近在做一个关于车路协同的项目 需要做一个路侧系统 传感器有摄像头和激光雷达 相机和激光雷达联合标定费了老半天劲 在此记录一下 雷达时间戳不对 导致摄像头和雷达的数据无法对齐 解决办法 修改雷达驱动发布点云消息时的时间戳 相机内参标定可以使
  • 线速度和角速度

    转自 https baike baidu com item E7 BA BF E9 80 9F E5 BA A6 1532652 fr aladdin https baike baidu com item E8 A7 92 E9 80 9F
  • ROS 笔记(01)— Ubuntu 20.04 ROS 环境搭建

    ROS 官网 https www ros org ROS 中文官网 http wiki ros org cn 1 系统和 ROS 版本 不同的 ROS 版本所需的 ubuntu 版本不同 每一版 ROS 都有其对应版本的 Ubuntu 切记
  • Ubuntu18.04配置Seetaface6

    目录 一 下载安装Qt软件 1 安装包下载 2 安装Qt 3 配置 二 下载源码 三 编译工具 四 编译 1 编译OpenRoleZoo 2 编译SeetaAuthorize 3 编译TenniS 五 运行 1 修改lib路径 2 buil
  • Ubuntu16.04及ROS Kinetic环境下安装使用RealSense SR300

    Ubuntu16 04及ROS Kinetic环境下安装使用RealSense SR300 1 准备条件 需要安装Ubuntu16 04及ROS Kinetic 2 安装驱动 安装realsense的驱动流程可以根据Github上的官方推荐
  • 最快实现一个自己的扫地机

    作者 良知犹存 转载授权以及围观 欢迎关注微信公众号 羽林君 或者添加作者个人微信 become me 扫地机介绍 扫地机器人行业本质是技术驱动型行业 产品围绕导航系统的升级成为行业发展的主旋律 按功能划分 扫地机器人分为四大系统 即导航系
  • 局域网下ROS多机通信的网络连接配置

    1 在路由器设置中固定各机器IP地址 在浏览器中输入路由器的IP地址 例如TP LINK路由器的IP为 192 168 1 1 进入登录页面后 输入用户名和密码登录 用户名一般为admin 密码为自定义 在 基本设置 gt LAN设置 gt
  • 【ROS】usb_cam相机标定

    1 唠叨两句 当我们要用相机做测量用途时 就需要做相机标定了 不然得到的计算结果会有很大误差 标定的内容包括三部分 内参 外参还有畸变参数 所以标定的过程就是要求得上面这些参数 以前弄这个事估计挺麻烦 需要做实验和计算才能得到 现在通过ro
  • 《学习篇》学会这18个常用ROS命令集合就能入门ROS了

    常用ROS命令概述 ROS常用命令可以按照其使用场景分为ROSshell命令 ROS执行命令 ROS信息命令 ROS catkin命令与ROS功能包命令 虽然很难从一开始就很熟练地使用所有的命令 但是随着使用的次数增多 你会发现常用的几个R
  • 《机器人操作系统入门》课程代码示例安装出错解决方法

    问题描述 学习 机器人操作系统入门 课程时 在Ubuntu 16 04 上安装了kinetic 安装ROS Academy for Beginners时依赖总是报错 如下所示 rosdep install from paths src ig
  • ROS1 ROS2学习

    ROS1 ROS2学习 安装 ROS ROS1 ROS2 命令行界面 ROS2 功能包相关指令 ROS 命令行工具 ROS1 CLI工具 ROS2 CLI工具 ROS 通信核心概念 节点 Node 节点相关的CLI 话题 Topic 编写发
  • 如何将视频或图像序列转换为包文件?

    我是 ROS 新手 我需要转换预先存在的视频文件 或者large可以连接到视频流中的图像数量 bagROS 中的文件 我在网上找到了这段代码 http answers ros org question 11537 creating a ba
  • 我的代码的 Boost 更新问题

    我最近将 boost 更新到 1 59 并安装在 usr local 中 我的系统默认安装在 usr 并且是1 46 我使用的是ubuntu 12 04 我的代码库使用 ROS Hydro 机器人操作系统 我有一个相当大的代码库 在更新之前
  • 在 Ubuntu 18.10 上安装 ROS Melodic

    I can t是唯一对 Cosmic 与 Wayland 和 Melodic 的组合感兴趣的人 我会坦白说 我似乎已经在 XPS 13 9370 上成功管理了此操作 或者至少安装脚本 最终 成功完成 然而 有一个非常棘手的解决方法 无论结果
  • 可以在catkin工作区之外创建ROS节点吗?

    我想在catkin工作区之外创建一个ROS发布者节点 可以创建吗 当然可以 像对待任何其他 cpp 库或 python 包一样对待 ROS 在Python中你必须保留PYTHONPATH环境变量指向ros包 opt ros kinetic
  • 使用 CMake 链接 .s 文件

    我有一个我想使用的 c 函数 但它是用Intel编译器而不是gnu C编译器 我在用着cmake构建程序 我实际上正在使用ROS因此rosmake但基础是cmake所以我认为这更多是一个 cmake 问题而不是ROS问题 假设使用构建的文件
  • 如何在Windows上安装机器人操作系统ROSJava?

    ROS 的文档很糟糕 一个很大的讽刺是 ROS 的 Groovy 和 ROSJava 版本的创建是为了让 Windows 等平台上的开发人员能够利用出色的机器人 SDK 而所有安装说明仍然面向 Linux ubuntu 用户 The ROS

随机推荐

  • 【华为OD机试c++】九宫格游戏【2023 Q1 A卷

    题目描述 九宫格是一款广为流传的游戏 起源于河图洛书 游戏规则是 1到9九个数字放在3 3的格子中 要求每行 每列以及两个对角线上的三数之和都等于15 在金麻名著 射雕英雄传 中黃蓉曾给九宫格的一种解法 口诀 戴九恩一 左三右七 二四有肩
  • Fedora 18 的samba共享配置

    红色粗字体字为修改后内容 蓝色粗体字为特别注意内容 1 宿主机 windows 8 4G内存 2 虚拟机 VMware 9 0 1 3 虚拟主机 VMware下Fedora 18 1G内存 4 参考文章 参考文章 详解Fedora Samb
  • libevent源码学习(14):IO复用模型之epoll的封装

    目录 Libevent提供的epoll后端结构体 初始化epoll init 何时调用epoll init 事件添加epoll nochangelist add 何时调用epoll nochangelist add 事件删除epoll no
  • 监听DOM加载完成及改变MutationObserver应用

    什么是MutationObserver 接口提供了监视对DOM树所做更改的能力 它被设计为旧的MutationEvents功能的替代品 该功能是DOM3 Events规范的一部分 简单粗暴 就是监听DOM树的变动 那么 被代替的 Mutat
  • 牛顿法与牛顿迭代法

    文档主要分为两个部分 第一部分是对牛顿 拟牛顿方法的介绍 第二部分介绍具体的拟牛顿数值方法 pdf文档 1 非线性方程组解法 牛顿法 Newton法又称为Newton Raphson法 是采用函数的Taylor级数的前面几项来寻找方程的根
  • 数据库课程设计--人事管理系统代码

    人事管理系统 创建数据库 create database personal management system on primary name pms data 逻辑名 filename D sql server pms data mdf
  • BF算法与KMP算法

    针对串的操作 在主串s里面查找子串sub 从pos位置开始的第一个符合的子串 返回第一个字符的下标 BF算法如下 时间复杂度 O mn 当字符相等时 j i 当不等时 j需要回退到0号下标 i需要回退到之前的位置 1 int BF cons
  • 超分辨率:基于metric learning的无监督blind sr:Metric Learning based Interactive Modulation for Real-World Super

    Metric Learning based Interactive Modulation for Real World Super Resolution 1 思路介绍 关于blind sr 常规的方法是 建立各种 退化方法数据集 然后监督训
  • C语言:二维数组传参的格式(详细+总结)

    希望能帮助到你 我将无比快乐 你的点赞 是我前进的动力 初遇二维数组作函数参数 宛如自己化身为了大头儿子 很头大 不禁大声呐喊 该怎么声明定义 该怎么调用 又该怎么函数中操作元素和地址 在此 我要拨开这些问题的一些迷雾 我相信 有心人看完后
  • nextTick相关问题

    nextTick引出的问题 任务类型 JS中有两种任务类型 微任务 microtask 和宏任务 macrotask 在ES6中 microtask称为 jobs macrotask称为 task 宏任务 script 主代码块 setTi
  • ElasticSearch设置用户名密码访问

    1 启动trial license 30天试用 curl H Content Type application json XPOST http 127 0 0 1 19200 xpack license start trial acknow
  • PPTPD和PPTP client的安装指南

    PPTP是微软的 协议 被广泛采用 Linux下的服务端称为PPTPD 客户端称为PPTP PPTPD和PPTP client本身的安装并不复杂 可以说相当直观 但是如果要用到mppp加密 需要做的工作就要多一些 1 PPTPD的官方网站是
  • ECSHOP问题总结

    ecshop各个页面调用商品销售量方法 首页的推荐商品包括热销推荐和促销三个文件 只对热销商品为例 第一步 打开根目录 includes lib goods php文件 在文件末尾添加方法 function selled count goo
  • Python3,pandas自动处理exlce数据及yagmail邮件自动发送

    使用pandas来实现excel表中数据统计提取 及邮件发送功能 数据文件统计及发送 使用pandas处理Excel的数据 yagmail实现邮件自动发送 使用pandas处理Excel的数据 pandas怎么读取excel 我们已经分享了
  • Cadence Allegro学习---spin与rotate,group与room,assign color与hilight

    学习allegro的过程中 会遇到一些类似但不太相同的命令 总结一下 仅供参考 allegro类似命令比对 功能 命令 不同点 相同点 旋转 spin 旋转 是一个独立的命令 edit spin执行即可对symbol进行旋转 都可以进行器件
  • VUE不刷新页面的情况下更改浏览器链接后的query值

    在不刷新当前页面的情况下 不操作路由 但是要更改路由中的 query 参数 就好像页面只有简单路径 无 query 现在点击一下页面中的按钮 页面不刷新 但是要在浏览器的地址显示中将 query 参数修改掉 解决方法是 window his
  • 树莓派 (Raspberry pi) 中文乱码

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 树莓派的操作系统是基于Debian 默认是没有中文的 如果需要显示中文 需要安装中文库 以下内容提供树莓派安装中文库的方法 1 安装命令 进入树莓派终端方式 可以通过 pu
  • Java的 多态性

    多态分为编译时多态和运行时多态 其中编辑时多态是静态的 主要是指方法的重载 它是根据参数列表的不同来 区分不同的函数 通过编辑之后会变成两个不同的函数 在运行时谈不上多态 而运行时多态是动态的 它是通过绑定 来实现的 也就是多态 多态的实现
  • 千锋网络安全1-3days

    千锋 网络安全笔记 总篇 持续更新 服务器 Windows00 03 08 12 Linux centos 虚拟机两种架构 寄生 一般在电脑主机 原生 直接安装在硬件上 虚拟机部署准备 安装Windows xp win7 Windows s
  • ROS学习(1)——ROS1和ROS2的区别

    因为机器人是一个系统工程 它包括了机械臂结构 电子电路 驱动程序 通信框架 组装集成 调试和各种感知决策算法等方面 任何一个人甚至是一个公司都不可能完成机器人系统的研发工作 但是我们又希望自己能造出一个机器人跑一跑 验证一下自己的算法 所以