当前位置: 首页 > news >正文

ROS2简介与Ubuntu24.04中安装指南

  • 之前安装了一个版本,但是不愿意写blog,现在想想自己就是个沙子
  • 立个flag,每次配置项目,写流程blog

ROS简介

ROS(Robot Operating System)是一个开源的机器人软件平台,提供了许多工具和库来帮助开发机器人应用。ROS的不同版本有不同的命名和发布策略,其中“Jazzy”和“Rolling”是两个不同的版本。

  1. ROS Jazzy

    • ROS Jazzy是ROS 2的一个特定版本,通常是指ROS 2的某个稳定版本(如ROS 2 Foxy的后续版本)。它是一个长期支持(LTS)版本,意味着它会在较长时间内获得支持和更新。
    • Jazzy版本通常会包含经过充分测试的功能和API,适合需要稳定性的生产环境。
  2. ROS Rolling

    • ROS Rolling是一个滚动发布版本,意味着它是一个持续更新的版本,包含最新的功能和改进。与Jazzy不同,Rolling版本不保证稳定性,因为它会不断接收新的代码和功能。
    • 适合开发者和研究人员,他们希望使用最新的功能和技术,但需要注意可能会遇到不稳定或不兼容的问题。

总结来说,ROS Jazzy适合需要稳定和长期支持的应用,而ROS Rolling则适合希望使用最新功能的开发者。选择哪个版本取决于你的项目需求和对稳定性的要求。

github和gitlab的区别

GitHub和GitLab都是流行的版本控制和协作平台,主要用于代码托管和项目管理。尽管它们有许多相似之处,但也存在一些关键区别:

  1. 托管方式

    • GitHub:主要是一个基于云的服务,用户可以在GitHub的服务器上托管代码。GitHub也提供了GitHub Enterprise版本,允许企业在自己的服务器上托管代码。
    • GitLab:同样提供基于云的服务,但也允许用户在自己的服务器上自托管GitLab实例。GitLab的自托管版本功能丰富,适合需要完全控制代码和数据的企业。
  2. 功能

    • GitHub:以其强大的社区和开源项目而闻名,提供了Pull Request(拉取请求)功能,便于代码审查和合并。GitHub还提供GitHub Actions用于CI/CD(持续集成/持续交付)。
    • GitLab:提供更全面的DevOps工具链,包括内置的CI/CD功能、问题跟踪、代码审查、容器注册表等。GitLab的集成功能使得从代码开发到部署的整个流程更加顺畅。
  3. 用户界面

    • GitHub:界面简洁,易于使用,特别适合开源项目和社区协作。
    • GitLab:界面相对复杂,功能更多,适合需要全面项目管理和DevOps功能的团队。
  4. 社区和开源

    • GitHub:虽然GitHub本身是一个私有平台,但它托管了大量的开源项目,社区活跃。
    • GitLab:GitLab本身是开源的,用户可以访问其源代码并根据需要进行修改。GitLab的开源版本提供了许多功能,适合开发者和团队使用。
  5. 定价

    • GitHub:提供免费和付费计划,免费计划有一些限制,适合个人和小型项目。
    • GitLab:同样提供免费和付费计划,免费计划功能相对丰富,适合团队使用。

总的来说,选择GitHub还是GitLab取决于团队的需求、项目的性质以及对功能和控制的要求。

参考文档(安装ROS2)

主要:https://docs.ros.org/en/rolling/Installation/Alternatives/Ubuntu-Install-Binary.html

  • ros2官方文档,采用binary安装,因为之前从源码安装貌似和ubuntu24.04的库函数版本冲突,
  • 更新,该方法因为rosdep update更新无效而失败,
  • 软件包安装有3种方式:deb、binary、source,可以直接从.deb安装

真正的主要文档:https://docs.ros.org/en/rolling/Installation/Ubuntu-Install-Debs.html

ustc软件源:https://mirrors.ustc.edu.cn/help/ros2.html

  • 不知道如何apt安装,是不是更新软件源之后可以直接apt install ros-versionx?

aliyun软件源:https://developer.aliyun.com/mirror/ros2?spm=a2c6h.13651102.0.0.29161b11f0jrwL

  • 版本过低(<=20.04)

Path2(成功)-deb

按照.deb文档安装,
流程概述:添加软件源之后

sudo apt install ros-rolling-desktop

测试,完结撒花💐

source /opt/ros/rolling/setup.sh
ros2 run demo_nodes_cpp talker

在这里插入图片描述

激活命令

source /opt/ros/rolling/setup.sh

source /opt/ros/rolling/setup.sh 是在ROS系统中用来设置环境变量的脚本。该脚本会将ROS的主要路径和其他必要路径添加到系统的环境变量中,以便正确地运行ROS命令和程序。

具体来说,该脚本会将以下路径添加到环境变量中:

  • /opt/ros/rolling/: ROS安装目录,包括核心包和工具。
  • /opt/ros/rolling/setup.bash: ROS的设置脚本。
  • /opt/ros/rolling/share: ROS包的共享目录。
  • /opt/ros/rolling/bin: ROS命令和工具的可执行文件目录。

通过运行这个脚本,可以为当前终端会话设置正确的ROS环境,以便使用ROS系统。

Question

  1. ubuntu如何apt搜索软件包的某个版本?
  • 按关键字查询
sudo apt search ros-rolling

在这里插入图片描述
2. 如何修改apt search,只返回软件名中出现关键字的条目,不返回描述中出现关键字的条目

  • 采用正则表达式+grep
sudo apt search ros | grep "^ros"
  1. 实用技巧——ubuntu执行前一条指令
sudo !!

Path1-binary

  • 直接执行
rosdep update

报错如下:

reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
ERROR: error loading sources list:The read operation timed out

开启global魔法,赋能终端,retry,make it~

reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Skip end-of-life distro "dashing"
Skip end-of-life distro "eloquent"
Skip end-of-life distro "foxy"
Skip end-of-life distro "galactic"
Skip end-of-life distro "groovy"
Add distro "humble"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Add distro "iron"
Skip end-of-life distro "jade"
Add distro "jazzy"
Skip end-of-life distro "kinetic"
Skip end-of-life distro "lunar"
Skip end-of-life distro "melodic"
Add distro "noetic"
ERROR: error loading sources list:The read operation timed out (https://raw.githubusercontent.com/ros/rosdistro/master/noetic/distribution.yaml)

相关文章:

ROS2简介与Ubuntu24.04中安装指南

之前安装了一个版本&#xff0c;但是不愿意写blog&#xff0c;现在想想自己就是个沙子立个flag&#xff0c;每次配置项目&#xff0c;写流程blog ROS简介 ROS&#xff08;Robot Operating System&#xff09;是一个开源的机器人软件平台&#xff0c;提供了许多工具和库来帮助…...

命令行工具PowerShell使用体验

命令行工具PowerShell使用 PowerShell是微软开发的一种面向对象的命令行Shell和脚本语言环境&#xff0c;它允许用户通过命令行的方式管理操作系统。相较于传统CMD&#xff0c;PowerShell增加了面向对象的程序设计框架&#xff0c;拥有更强大的功能和扩展性。使用PowerShell可…...

MongoDB 详解:深入理解与探索

在当今的数据库领域&#xff0c;MongoDB 以其独特的特性和强大的功能&#xff0c;成为了众多开发者和企业的首选。本文将对 MongoDB 进行详细的介绍&#xff0c;包括其特点、应用场景、流程图以及源码分析。 一、MongoDB 概述 MongoDB 是一个基于分布式文件存储的开源数据库系…...

使用 Elasticsearch 构建食谱搜索(一)

作者&#xff1a;来自 Elastic Andre Luiz 了解如何使用 Elasticsearch 构建基于语义搜索的食谱搜索。 简介 许多电子商务网站都希望增强其食谱搜索体验。正确使用语义搜索可以让客户根据更自然的查询&#xff08;例如 “something for Valentines Day - 情人节的礼物” 或 “…...

sealos部署K8s,安装docker时master节点突然NotReady

1、集群正常运行中&#xff0c;在集群master-1上安装了dockerharbor&#xff0c;却发现master-1节点NotReady&#xff0c;使用的网络插件为 Cilium #安装docker和harbor&#xff08;docker运行正常&#xff09; rootmaster-1:/etc/apt# apt install docker-ce5:19.03.15~3-0~u…...

使用vite+react+ts+Ant Design开发后台管理项目(五)

前言 本文将引导开发者从零基础开始&#xff0c;运用vite、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈&#xff0c;构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导&#xff0c;文章旨在为开发者揭示如何利用这些技术…...

Spring Boot实现多数据源连接和切换

文章目录 前言一、多数据源配置与切换方案二、实现步骤1. 创建多个 DataSource 配置类2. 创建 DataSource 配置类3. 创建动态数据源路由类4. 实现 DynamicDataSource 类5. 创建 DataSourceContextHolder 来存储当前的数据源标识6. AOP 方式切换数据源7. 自定义注解来指定数据源…...

发布 VectorTraits v3.0(支持 X86架构的Avx512系列指令集,支持 Wasm架构及PackedSimd指令集等)

文章目录 支持 X86架构的Avx512系列指令集支持Avx512时的输出信息 支持 Wasm架构及PackedSimd指令集支持PackedSimd时的输出信息VectorTraits.Benchmarks.Wasm 使用说明 新增了向量方法支持 .NET 8.0 新增的向量方法提供交织与解交织的向量方法YGroup3Unzip的范例代码 提供重新…...

详解如何创建SpringBoot项目

目录 点击New Project 选择依赖 简单使用SpringBoot 前面已经讲解了如何获取IDEA专业版&#xff0c;下面将以此为基础来讲解如何创建SpringBoot项目。 点击New Project 选择依赖 注意&#xff0c;在选择SpringBoot版本时&#xff0c;不要选择带SNAPSHOT的版本。 这样&#…...

IT架构管理

目录 总则 IT架构管理目的 明确组织与职责 IT架构管理旨在桥接技术实施与业务需求之间的鸿沟&#xff0c;通过深入理解业务战略和技术能力&#xff0c;推动技术创新以支持业务增长&#xff0c;实现技术投资的最大价值。 设定目标与范围 IT架构管理的首要目的是确立清晰的组织…...

Feign入门实践

引言 随着微服务架构的兴起&#xff0c;服务间的通信变得越来越频繁和复杂。为了简化服务之间的调用过程&#xff0c;提高开发效率和系统的可维护性&#xff0c;Spring Cloud 生态系统提供了多种解决方案&#xff0c;其中 OpenFeign 是一种声明式的 HTTP 客户端&#xff0c;它使…...

Leetcode 买卖股票的最佳时机 Ⅱ

使用贪心算法来解决此问题&#xff0c;通过在价格上涨的每一天买入并在第二天卖出的方式&#xff0c;累计所有上涨的利润&#xff0c;以实现最大收益。关键点是从第二天开始遍历&#xff0c;并且只要当前比前一天价格高&#xff0c;我们就在前一天买入然后第二天卖出去。下面是…...

书生大模型实战营-玩转HF/魔搭社区闯关任务

通过Github Codespace下载InternLM模型并运行 本篇博客是记录《书生大模型实战营第四期-玩转HF/魔搭/魔乐》章节的闯关任务从HF上下载模型文件&#xff0c;对实战营感兴趣的小伙伴也可以扫码报名哦。 一、通过模版创建Codespace环境 访问codespace 点击Jupyter Notebook 模版…...

混响(Reverb):原理、应用与发展趋势的深度解析

目录 引言1. 混响的基本原理2. 混响的应用3. 混响的技术实现4. 混响的未来发展趋势5. 总结 引言 混响&#xff08;Reverb&#xff09;是音频信号处理中的重要概念之一&#xff0c;在自然界和音频工程中都扮演着关键角色。从音乐制作到语音识别&#xff0c;从电影音效到虚拟现实…...

Java学习教程,从入门到精通,Java修饰符语法知识点及案例代码(23)

1.Java修饰符语法知识点及案例代码 Java修饰符用于改变类、方法、变量、接口等元素的行为和可见性。主要分为两大类&#xff1a;访问修饰符和非访问修饰符。 访问修饰符&#xff08;Access Modifiers&#xff09; public 提供最大的访问权限&#xff0c;任何类都可以访问。使…...

钉钉小程序使用getApp实现类型provide inject的功能 应用场景:解决页面同步子组件弹窗的滚动问题

前言:在开发钉钉小程序的时候 组件内部的弹窗滚动会带着视图同步滚动 所以需要在组件内部弹窗显示的时候禁用视图的scroll滚动 由于我组件封装的比较深 不可能逐级传递 dd也么有provide的语法 所以我使用的getApp 完成控制的效果 最终完美运行 觉得有帮助相互关注一下 后续会持…...

标准化 Git 提交信息的约定

在使用 Git 进行版本控制时&#xff0c;良好的提交信息可以帮助团队成员更好地理解每次提交的目的和影响。为了规范化提交信息&#xff0c;一些团队采用了特定的格式或约定&#xff0c;比如 Angular 团队提出的 Commit Message Conventions。这种规范有助于自动化工具的使用&am…...

React教程(详细版)

React教程&#xff08;详细版&#xff09; 1&#xff0c;简介 1.1 概念 react是一个渲染html界面的一个js库&#xff0c;类似于vue&#xff0c;但是更加灵活&#xff0c;写法也比较像原生js&#xff0c;之前我们写出一个完成的是分为html&#xff0c;js&#xff0c;css&…...

Perfect Forwarding(完美转发)

文章目录 1. 引用折叠2. 万能引用3. 完美转发3.1对比&#xff1a;std::move and std::forward比较 3.2使用时机3.3 返回值优化&#xff08;RVO)两个前提条件注意事项 4. 完美转发失败情况完美转发失败五种情况 完美转发的实现要依赖于模版类型推导和引用折叠和万能引用。 1. 引…...

PHP露营地管理平台小程序系统源码

⛺️【露营新风尚】露营地管理平台系统全攻略⛺️ &#x1f3d5;️一、露营热潮下的管理难题&#xff1a;如何高效运营露营地&#xff1f;&#x1f914; 随着露营文化的兴起&#xff0c;越来越多的人选择在大自然中享受宁静与自由。然而&#xff0c;露营地的管理却面临着诸多…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

基于服务器使用 apt 安装、配置 Nginx

&#x1f9fe; 一、查看可安装的 Nginx 版本 首先&#xff0c;你可以运行以下命令查看可用版本&#xff1a; apt-cache madison nginx-core输出示例&#xff1a; nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

电脑插入多块移动硬盘后经常出现卡顿和蓝屏

当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时&#xff0c;可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案&#xff1a; 1. 检查电源供电问题 问题原因&#xff1a;多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

python执行测试用例,allure报乱码且未成功生成报告

allure执行测试用例时显示乱码&#xff1a;‘allure’ &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;ڲ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ⲿ&#xfffd;&#xfffd;&#xfffd;Ҳ&#xfffd;&#xfffd;&#xfffd;ǿ&#xfffd;&am…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决

问题&#xff1a; pgsql数据库通过备份数据库文件进行还原时&#xff0c;如果表中有自增序列&#xff0c;还原后可能会出现重复的序列&#xff0c;此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”&#xff0c;…...

leetcode73-矩阵置零

leetcode 73 思路 记录 0 元素的位置&#xff1a;遍历整个矩阵&#xff0c;找出所有值为 0 的元素&#xff0c;并将它们的坐标记录在数组zeroPosition中置零操作&#xff1a;遍历记录的所有 0 元素位置&#xff0c;将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...