Ubuntu20.04同时安装ROS1和ROS2,如何选择ROS1 or ROS2

写在前面

自己的测试环境:
Ubuntu20.04,
ROS-Noetic,
ROS2-Foxy

一、问题描述

在Ubuntu 20.04 中可以安装 ROS-Noetic 和 ROS2-Foxy,因为不同的代码使用的ROS环境不一样,所以安装了两个ROS环境。但是实际运行程序过程中,一般需要选择一个ROS环境作为程序运行环境。
因此需要进行配置并选择ROS1 or ROS2

二、解决方法

在打开新的终端的时候,在终端一开始进行选择,当前的终端是 ROS1 还是 ROS2 环境,然后分别执行对应的ROS环境变量配置。

.bashrc 中关于 ros 的环境变量配置进行修改,

sudo gedit .bashrc

修改为如下语句:

echo "ros noetic(1) or ros2 foxy(2)?"
read edition
if [ "$edition" -eq "1" ];then
  source /opt/ros/noetic/setup.bash
  echo "source /opt/ros/noetic/setup.bash"
else
  source /opt/ros/foxy/setup.bash
  echo "source /opt/ros/foxy/setup.bash"
fi

上述语句的含义是,当输入 1 的时候,执行source /opt/ros/noetic/setup.bash ,也就是配置成了ROS1 的环境,当输入2的时候,执行source /opt/ros/foxy/setup.bash,也就是配置成了 ROS2 的环境。

参考链接

[1] CodeAlan. ros1与ros2共存 [EB/OL]. https://www.cnblogs.com/codealan/p/17153655.html, 2023-02-25/2024-10-13.

### 同一台Ubuntu 20.04机器上同时安装配置ROS1ROS2 #### 安装准备 为了确保在同一台 Ubuntu 20.04 上成功安装 ROS1 ROS2,需注意版本匹配。对于 Ubuntu 20.04 来说,推荐的组合是 ROS Noetic (ROS1) ROS Foxy Fitzroy (ROS2)[^1]。 #### 安装过程 按照特定顺序执行安装操作非常重要,以防止潜在冲突并确保兼容性: - **安装 ROS Noetic** - 更新包列表并设置软件源: ```bash sudo apt update && sudo apt upgrade ``` - 添加 ROS 软件仓库密钥: ```bash sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - ``` - 安装桌面全版本: ```bash sudo apt install ros-noetic-desktop-full ``` - **安装 ROS Foxy** - 设置本地资源库: ```bash sudo locale-gen en_US en_US.UTF-8 sudo update-locale LANG=en_US.UTF-8 LANGUAGE=en_US.UTF-8 export LANG=en_US.UTF-8 ``` - 密钥添加与更新索引: ```bash sudo apt update && sudo apt install software-apt-repository universe sudo apt update && sudo apt install curl gnupg2 lsb-release curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.key | sudo apt-c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" > /etc/apt/sources.list.d/ros2-latest.list' sudo apt update ``` - 安装 ROS Foxy 桌面环境: ```bash sudo apt install ros-foxy-desktop ``` #### 环境变量配置 完成上述步骤之后,需要特别关注环境变量的管理,这是最容易出现问题的部分之一。建议先分别测试单个 ROS 版本的功能,在确认无误后再着手于多版本共存下的环境切换机制[^2]。 - 对于每次启动终端后的临时生效方式,可以通过命令行手动加载对应的 setup 文件来实现快速切换: - 使用 `Noetic`: ```bash source /opt/ros/noetic/setup.bash ``` - 切换至 `Foxy`: ```bash source /opt/ros/foxy/setup.bash ``` - 若要使某个版本成为默认选项,则可以在用户的 shell 配置文件(如 `.bashrc` 或者其他相应shell 的初始化脚本)里加入相应的 `source` 命令;不过需要注意的是这样做可能会带来一定的不便之处——即每次想要更换当前活动的 ROS 发行版时都需要修改该文件的内容。 #### 运行环境的选择 当两套系统都已就绪后,可以根据具体项目需求灵活调整正在使用的 ROS 平台。通过前面提到的方法改变环境变量即可轻松达成目的。通常情况下,开发人员会依据所处理的任务特性以及个人偏好决定采用哪一个版本的工作空间[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值