ubuntu20.04安装多版本ros
时间: 2025-05-05 16:50:57 浏览: 21
### 同时安装和管理多个版本的 ROS
在 Ubuntu 20.04 上同时安装和管理多个版本的 ROS 是可行的,通常涉及 ROS1 (Noetic) 和 ROS2 (Foxy 或更高版本) 的共存。以下是实现这一目标的关键要点:
#### 1. **安装 ROS Noetic**
ROS Noetic 是 ROS1 的最新长期支持版本,在 Ubuntu 20.04 下可以通过官方文档中的步骤完成安装[^1]。主要过程包括设置源、更新包索引以及安装桌面全版。
```bash
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt update
sudo apt install ros-noetic-desktop-full
```
#### 2. **安装 ROS Foxy**
对于 ROS2,推荐安装 Foxy Fitzroy 版本,它同样兼容 Ubuntu 20.04。通过以下命令可以完成 ROS2 的安装[^2]。
```bash
sudo apt update && sudo apt install ros-foxy-desktop
```
#### 3. **环境变量配置**
为了在同一系统中切换不同版本的 ROS,需要合理配置 `source` 命令来加载对应的环境文件。默认情况下,每次启动终端都会自动加载 `.bashrc` 文件中的路径。因此可以在 `.bashrc` 中定义函数或条件语句以便快速切换 ROS 环境。
##### 方法一:手动 source 不同版本
可以直接执行对应版本的 setup 脚本来激活特定 ROS 环境。
- 对于 ROS Noetic:
```bash
source /opt/ros/noetic/setup.bash
```
- 对于 ROS Foxy:
```bash
source /opt/ros/foxy/setup.bash
```
##### 方法二:创建自定义脚本
如果频繁切换 ROS 环境,建议编写简单的 shell 函数简化操作。例如编辑 ~/.bashrc 添加如下内容:
```bash
function set_ros_env() {
if [ "$1" == "noetic" ]; then
echo "Switching to ROS Noetic"
unset ROS_VERSION
export ROS_DISTRO=noetic
source /opt/ros/noetic/setup.bash
elif [ "$1" == "foxy" ]; then
echo "Switching to ROS Foxy"
export ROS_VERSION=2
export ROS_DISTRO=foxy
source /opt/ros/foxy/setup.bash
else
echo "Invalid argument, use noetic or foxy."
fi
}
```
之后重启终端或者重新加载 .bashrc 即可调用该函数切换环境:
```bash
set_ros_env noetic
# 或者
set_ros_env foxy
```
#### 4. **注意事项**
当两个 ROS 版本共存时需要注意一些潜在冲突问题,比如依赖库重名可能导致编译失败等问题。确保工作空间隔离,并分别构建针对各版本的工作区。
```bash
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/
wstool init src
catkin_make
```
对于 ROS2,则采用 colcon 构建工具替代 catkin_make:
```bash
mkdir -p ~/ros2_foxy_ws/src
cd ~/ros2_foxy_ws/
colcon build --symlink-install
```
---
### 总结
以上介绍了如何在单台机器上安全地部署多套 ROS 并灵活切换其运行环境的方法[^1]。这不仅有助于开发测试阶段的不同需求满足,也便于维护跨平台项目的一致性体验。
阅读全文
相关推荐


















