ubuntu下ROS1与ROS2共存安装(亲测有效,安装超简单)
基于ubuntu20.04安装,ROS1装noetic版本,ROS2装foxy版本。最好是刚装好的系统,避免各依赖间出现冲突。
这里采用的是小鱼的一行代码安装系列,相关链接如下:
如何一行代码安装ROS|2022最新版|一行代码安装ROS2|一行代码解决rosdep|一行代码配置多ROS环境
目录
一、安装ROS1
二、安装ROS2
三、配置环境
一、安装ROS1
先安装ROS1 noetic版本,执行以下命令进行安装,按照出现的提示对应操作即可:
wget http://fishros.com/install -O fishros && bash fishros
安装过程中有可能会报出以下错误:
这是源的问题。
将源文件做备份:
sudo cp /etc/apt/sources.list /etc/apt/sources_copy.list
打开文件:
sudo gedit /etc/apt/sources.list
换源:将以下代码复制到打开的文件里面,保存并退出。(若还是无法安装ROS,仅保留复制的部分,删除其他部分。)
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
执行以下命令,进行更新:
sudo apt-get update
再次安装,安装成功ROS noetic版本。
若只安装单独版本的ROS,才进行以下步骤:
执行以下命令,打开.bashrc文件:
gedit ~/.bashrc
在文件的末尾添加以下代码,若已有则不用管。(其中noetic可根据自己的ROS版本进行更改):
source /opt/ros/noetic/setup.bash
保存并退出,然后执行以下命令,刷新下环境。
source ~/.bashrc
二、安装ROS2
接下来安装ROS2 foxy版,继续使用小鱼的一行代码安装。
安装命令如下,按照出现的提示对应操作即可:
wget http://fishros.com/install -O fishros && bash fishros
ROS2 foxy版安装成功后会出现如下界面:
三、配置环境
此时ROS1和ROS2应该是共存的状态,执行以下命令,打开.bashrc文件。
gedit ~/.bashrc
这里提供两种方法来进行ROS1和ROS2的切换。
方法一:
此种方法每当打开终端时就会提示进行版本的选择,终端演示如下:
这种方法只需在刚刚打开的.bashrc文件末尾加上如下代码,即可实现。
echo "ros:noetic(1) foxy(2) ?"
read choose
case $choose in
1) source /opt/ros/noetic/setup.bash;;
2) source /opt/ros/foxy/setup.bash;;
esac
方法二:
如果并不是每次打开终端就要使用ROS,需要用到ROS的时候再进行选择。则可在末尾加上如下代码,以便每次需要用到ROS时,先输入ROS再通过选择1或者2来选择ROS的版本。
ros(){
echo "ros:noetic(1) foxy(2) ?"
read choose
case $choose in
1) source /opt/ros/noetic/setup.bash;;
2) source /opt/ros/foxy/setup.bash;;
esac
}
终端演示如下:
最后执行以下命令,刷新下环境。
source ~/.bashrc