ROS2与ROS1对比

2023-11-11

提示:ROS初学小白


前言

提示:这里仅代表作者的心路历程,耗时1天的心路历程:

我满心欢喜的根据赵虚左老师的课程初步步入ROS的大门,在ROS1输入catkin_make创建我的第一个工作路径。但是由于原来电脑C盘爆满,趁热打铁买了一个新电脑,由于本人天真的新电脑就该配最新的软件,趁热打铁安装了ROS2,再次输入catkin_make的时候,满屏报错,我百思不得其解,蓦然回首,原来ROS2不用catkin,而是用colcon。


提示:以下是本篇文章正文内容,下面仅供参考,如有问题欢迎交流

一、ROS1与ROS2对比

(1)ROS2将考虑以下新的方面:实时系统、小型嵌入式平台(如传感器节点)、非理想网络和跨平台(如Linux、Windows、Mac、实时操作系统(RTOS) ,没有操作系统。
(2)ROS2中间层用DDS(Data Distribution Service)数据分布式服务代替。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

图片来自Yuya Maruyama等人的论文《Exploring the Performance of ROS2》
论文链接: https://dl.acm.org/doi/pdf/10.1145/2968478.2968502


二、ROS1创建工作空间

2.1 创建工作空间(Creat ROS Working Paths)

makdir -p xxx_ws/src   #(必须得有src)
cd xxx_ws
catkin_make

工作区构建完成后,它在devel子文件夹中创建了一个类于/opt/ros/$ROSDISTRO_NAME下的结构。

2.2 用VScode打开(Start VScode)

cd xxx_ws
code .

2.3 创建功能包(Create catkin package)

选定 src 右击 —> create catkin package
(1)命名
(2)添加依赖 roscpp rospy std_msgs

2.4 Source执行文件( Sourcing the setup file)

要将工作区添加到您的ROS环境中,需要source安装文件:

source ./devel/setup.bash

详见官方文档:
链接: http://wiki.ros.org/ROS/Tutorials/CreatingPackage

三、ROS2创建工作空间

3.1 创建工作空间(Creat ROS Working Paths)

ROS2用colcon,类似ROS1中的catkin.

mkdir -p xxx_ws/src   #(必须得有src)
cd xxx_ws
colcon build --symlink-install

2.2 用VScode打开(Start VScode)

cd xxx_ws
code .

2.3 创建功能包(Create catkin package)

ros2 pkg create 名称 --build-type ament_cmake --dependencies rclcpp

pkg create : 创建包
–build-type :包的编译类型,有三种类型ament_python、ament_cmake、cmake
–dependencies :功能包的依赖
ros2 pkg create 和ROS1中 catkin_create_package类似

2.4 Source执行文件( Sourcing the setup file)

要将工作区添加到您的ROS环境中,需要source安装文件:

source install/setup.bash

当colcon成功地完成构建后,输出将在安装目录中。在使用安装的任何可执行文件或库之前,需要将它们添加到路径和库路径中。Colcon将在安装目录中生成bash/bat文件,以帮助设置环境。这些文件将向路径和库路径添加所有必需的元素,并提供包导出的任bas或shell命令。
详见官方文档:
链接: http://docs.ros.org/en/humble/Tutorials/Beginner-Client-Libraries/Colcon-Tutorial.html#create-a-workspace

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

ROS2与ROS1对比 的相关文章

随机推荐

  • 【算法】算法学习四:图

    文章目录 一 什么是图 二 广度优先搜索 三 什么是队列 四 广度优先搜索的实现 4 1 实现全部的代码 4 2 队列的实现 五 深度优先搜索 六 图的运行时间 6 1 广度优先搜索 6 2 深度优先搜索 一 什么是图 在计算机科学中 图
  • Python静态方法和类方法的区别和应用(无师自通)

    实际上 Python 完全支持定义类方法 甚至支持定义静态方法 Python 的类方法和静态方法很相似 它们都推荐使用类来调用 其实也可使用对象来调用 类方法和静态方法的区别在于 Python会自动绑定类方法的第一个参数 类方法的第一个参数
  • 禅道后台命令执行漏洞二

    漏洞简介 禅道是第一款国产的开源项目管理软件 它集产品管理 项目管理 质量管理 文档管理 组织管理和事务管理于一体 是一款专业的研发项目管理软件 完整地覆盖了项目管理的核心流程 禅道管理思想注重实效 功能完备丰富 操作简洁高效 界面美观大方
  • vi编辑器的使用

    一 实验目的 理解vi的的三种运行模式及其切换方法 学会使用vi的各种操作命令进行文本文件编辑 用vi编写Linux下C程序 会用gcc编译 二 实验环境 一台装有Linux的机器 系统里面有gcc编译 三 实验内容 1 不保存直接退出 1
  • tomcat配置域名及默认访问页面

    1 配置80端口 在tomcat的conf server xml文件中的
  • 三子棋的实现--二维数组的应用

    通过对数组 函数 循环知识的应用我们可以独立地创建一个项目 三子棋 首先我们对于三子棋的实现要有一个大概的思路和逻辑 文件的创建 工欲善其事必先利其器 为了更好地完成项目 先创建三个文件 两个源文件 一个头文件 测试文件 test c 游戏
  • 使用druid-spring-boot-starter配合sharding报错

    在使用springboot时 为了方便配置 一般会使用启动器 不用单独进行 Bean 今天在增加sharding时一直出现找不到mapper的异常 对mapper加注解 加扫描包都不行 后来将druid spring boot starte
  • 安装指定版本nodejs

    要在Linux上安装指定版本的Node js 您可以使用Node Version Manager NVM NVM是一个用于管理多个Node js版本的工具 它允许您在同一系统上安装和切换不同的Node js版本 以下是使用NVM在Linux
  • 数字电源核心理论-“伏妙平衡“与“安秒平衡“

    数字电源 数字电源核心理论 伏妙平衡 与 安秒平衡 最后一个bug 2020 10 14 22 54 16 341 收藏 3 文章标签 编程语言 xhtml xmpp jrebel dwr 版权 1 聊一聊 今天跟大家分享的是迈克在本公众号
  • es批量增删改

    批量增删改 bulk 操作将文档的增删改查一系列操作 通过以此请求全部做完 减少网络传输次数 POST bulk 注意 bulk操作的形式是多个json 每个json写完必须换行 而在json内则不可以换行 多个json之间操作互不影响 即
  • C++标准模板库(STL)

    C 标准模板库 STL vector Introduction vector 长度根据需要而自动改变的数组 定义 vector
  • Oracle数据库插入大量数据

    insert into table name select rownum from dual connect by level lt 100 以上命令向表中插入了数列1 2 3 100
  • 机器学习--决策树

    一 决策树简介 决策树 DecisionTree 又称为判定树 是另一种特殊的根树 它最初是运筹学中的常用工具之一 之后应用范围不断扩展 目前是人工智能中常见的机器学习方法之一 决策树是一种基于树结构来进行决策的分类算法 我们希望从给定的训
  • idea快捷键汇总mac_mac版本IDEA快捷键

    本文中的快捷键均为系统默认配置 一 mac系统键盘和符号对应关系 1 Control 或 Ctrl 2 Caps Lock 3 Command 或 Cmd 4 Option 或 Alt 5 Shift 二 mac系统自有快捷键 1 comm
  • 深入学习jquery源码之each()

    each 遍历一个数组或对象 可以是DOM json等格式 等价于for循环 返回值 jQuery each callback 参数 对于每个匹配的元素所要执行的函数 概述 以每一个匹配的元素作为上下文来执行一个函数 意味着 每次执行传递进
  • java JDBC连接数据库代码大全

    使用JDBC操作数据库 1 JDBC基础 JDBC简介 JDBC Java Database Connectivity 是一种可以执行SQL的Java API 通过它可以用一种API操作不同的数据库 JDBC驱动 不同数据库间 标准的SQL
  • 关于Linux下ISE和vivado安装cable usb驱动的问题

    由于先前安装Android Studio一直不成功 一气之下 本人重装了系统 导致之前装的驱动什么的都没有了 这时再安装vivado 检测不到驱动 这里介绍怎么安装cable usb的驱动 供参考 要安装这个驱动 我之前是安装了ISE 然后
  • 内存超频时序怎么调_最高4133MHz,光威血影DDR4内存B550平台超频指南

    Zen1 Zen 和Zen2超频内存时 一般是用Thaiphoon搭配DRAM Calculator for Ryzen自动计算时序 电压等参数 Zen3还没获得DRAM Calculator for Ryzen支持 超频内存得手动调节 近
  • 你知道什么是DBA吗?

    数据库管理员 英文是Database Administrator 简称DBA 这个职位对不同的人意味着不同的意义 一个小的软件开发工作室和一个分工高度明细的大公司相比 DBA的职责来得更加宽泛一些 一个公司 不管它是自己开发应用软件 还是购
  • ROS2与ROS1对比

    提示 ROS初学小白 文章目录 前言 一 ROS1与ROS2对比 二 ROS1创建工作空间 2 1 创建工作空间 Creat ROS Working Paths 2 2 用VScode打开 Start VScode 2 3 创建功能包 Cr