【ROS总结】发布ROS2包到ROS版本

2024-05-30 18:08

本文主要是介绍【ROS总结】发布ROS2包到ROS版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在上一总结中,讲述了如何将ROS1的包发布到ROS版本(Indigo、jade、kinetic、lunar等),在这一节中,讲述如何把ROS2的包发送到ROS社区,比如发布到ROS2版本(ardent)。

这个页面描述了如何准备在公共ROS 2 buildfarm上发布存储库。在你创建了一个包之后,这是将你的包引入到公开可用的Debian软件包(即:你将能够通过apt-get安装包。这个页面包含了ROS 2特定的指令,它取代了在ROS Wiki上的Bloom发布教程的第2部分。

注意:早期的ROS 2版本的发布过程主要依赖于git-bloom-release的子命令bloom-release,而不是完整的开放版本工作流,所以可能会有问题。

 对比ROS1 bloom不同

如果你在ROS1之前使用bloom发布过ROS包,ROS2的先决条件和ROS1差不多。然而,ROS 2还没有为你自动进行标记和版本控制的工具(没有等价于catkin_create_changelog工具)。

要求工具

对于ROS2的Ardent来说:

  • bloom >= 0.6.2
  • catkin_pkg >= 0.4.0

过程

第一步:changelog(可选)

创建/更新CHANGELOG.rst,使用即将到来的新格式。注意,changelog严格来说是可选的,但它是非常推荐的。

注意你的changelog格式中的错误可能会导致你的包发布问题。提交并将更改提交给变更日志。

第二步:标记包版本号

package.xml中更新包的版本。版本号必须比前一个版本高。对于你的第一个版本,我们建议0.0.1或1.0.0。提交并推动这个变更。

注意,你不能使用以前使用的版本号(参见下面)。一些包释放到ROS 1和ROS 2,但是由于这个需求,必须使用不同的版本控制系列。ROS包通常不遵循严格的语义版本控制,所以不要过分担心。如果你想了解其他人已经做了什么,请使用ROS 1发布包中的0.x.x或1.x.x系列和ROS 2发布包中的1.x.x或2.x.x系列。

第三步:标记你的包

创建一个与你刚刚输入到package.xml中的版本号相匹配的标记,在提交时,会遇到版本号。现在你知道了不能重用版本号的原因——git只允许在存储库中使用给定名称的一个标记。

第四步:确保你的bloom和catkin_pkg是最新版本

查看以上版本要求,运行以下命令追踪当前版本:

sudo apt-get install python-catkin-pkg python-bloom

第五步:设置ROS 2环境变量

ROS 2使用的是全新的存储库,该版本的所有索引保存在https://github.com/ros2/rosdistro,forked该存储库。你可以通过设置ROSDISTRO_INDEX_URL环境变量来配置bloom。

export ROSDISTRO_INDEX_URL='https://raw.githubusercontent.com/ros2/rosdistro/ros2/index.yaml'

导出这个之后,你将能够在你的bloom-release终端命令中使用ROS 2发行版的ardent, bouncy等名称。

下一步

现在,你的存储库设置完毕。你已经手动完成ROS 2在这个界面的内容

返回到ROS Wiki上的Bloom发布教程,并继续“创建一个发布存储库”。

这篇关于【ROS总结】发布ROS2包到ROS版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1016667

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

二分最大匹配总结

HDU 2444  黑白染色 ,二分图判定 const int maxn = 208 ;vector<int> g[maxn] ;int n ;bool vis[maxn] ;int match[maxn] ;;int color[maxn] ;int setcolor(int u , int c){color[u] = c ;for(vector<int>::iter

整数Hash散列总结

方法:    step1  :线性探测  step2 散列   当 h(k)位置已经存储有元素的时候,依次探查(h(k)+i) mod S, i=1,2,3…,直到找到空的存储单元为止。其中,S为 数组长度。 HDU 1496   a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 。 x在 [-100,100] 解的个数  const int MaxN = 3000

状态dp总结

zoj 3631  N 个数中选若干数和(只能选一次)<=M 的最大值 const int Max_N = 38 ;int a[1<<16] , b[1<<16] , x[Max_N] , e[Max_N] ;void GetNum(int g[] , int n , int s[] , int &m){ int i , j , t ;m = 0 ;for(i = 0 ;

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG