- 之前安装了一个版本,但是不愿意写blog,现在想想自己就是个沙子
- 立个flag,每次配置项目,写流程blog
ROS简介
ROS(Robot Operating System)是一个开源的机器人软件平台,提供了许多工具和库来帮助开发机器人应用。ROS的不同版本有不同的命名和发布策略,其中“Jazzy”和“Rolling”是两个不同的版本。
-
ROS Jazzy:
- ROS Jazzy是ROS 2的一个特定版本,通常是指ROS 2的某个稳定版本(如ROS 2 Foxy的后续版本)。它是一个长期支持(LTS)版本,意味着它会在较长时间内获得支持和更新。
- Jazzy版本通常会包含经过充分测试的功能和API,适合需要稳定性的生产环境。
-
ROS Rolling:
- ROS Rolling是一个滚动发布版本,意味着它是一个持续更新的版本,包含最新的功能和改进。与Jazzy不同,Rolling版本不保证稳定性,因为它会不断接收新的代码和功能。
- 适合开发者和研究人员,他们希望使用最新的功能和技术,但需要注意可能会遇到不稳定或不兼容的问题。
总结来说,ROS Jazzy适合需要稳定和长期支持的应用,而ROS Rolling则适合希望使用最新功能的开发者。选择哪个版本取决于你的项目需求和对稳定性的要求。
github和gitlab的区别
GitHub和GitLab都是流行的版本控制和协作平台,主要用于代码托管和项目管理。尽管它们有许多相似之处,但也存在一些关键区别:
-
托管方式:
- GitHub:主要是一个基于云的服务,用户可以在GitHub的服务器上托管代码。GitHub也提供了GitHub Enterprise版本,允许企业在自己的服务器上托管代码。
- GitLab:同样提供基于云的服务,但也允许用户在自己的服务器上自托管GitLab实例。GitLab的自托管版本功能丰富,适合需要完全控制代码和数据的企业。
-
功能:
- GitHub:以其强大的社区和开源项目而闻名,提供了Pull Request(拉取请求)功能,便于代码审查和合并。GitHub还提供GitHub Actions用于CI/CD(持续集成/持续交付)。
- GitLab:提供更全面的DevOps工具链,包括内置的CI/CD功能、问题跟踪、代码审查、容器注册表等。GitLab的集成功能使得从代码开发到部署的整个流程更加顺畅。
-
用户界面:
- GitHub:界面简洁,易于使用,特别适合开源项目和社区协作。
- GitLab:界面相对复杂,功能更多,适合需要全面项目管理和DevOps功能的团队。
-
社区和开源:
- GitHub:虽然GitHub本身是一个私有平台,但它托管了大量的开源项目,社区活跃。
- GitLab:GitLab本身是开源的,用户可以访问其源代码并根据需要进行修改。GitLab的开源版本提供了许多功能,适合开发者和团队使用。
-
定价:
- 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
- ubuntu如何apt搜索软件包的某个版本?
- 按关键字查询
sudo apt search ros-rolling
2. 如何修改apt search,只返回软件名中出现关键字的条目,不返回描述中出现关键字的条目
- 采用正则表达式+grep
sudo apt search ros | grep "^ros"
- 实用技巧——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)