ubuntu20.04安装ros2,并与ros1共存

前言

该安装教程基于ubuntu20.04,并已安装ros-noetic,在此基础上安装ros2。

安装过程的第一部分源自下面这篇教程:

ubuntu20.04安装ROS2 详细教程_shenliu128的博客-CSDN博客_ubuntu20.04安装ros2

为了方便衔接,我将前半部分复制过来

一、安装前检查准备

1、ROS 系统安装版本选择
ROS 目前主要支持Linux和MacOS系统,新发布的 ROS2 也支持 Windows和RTOS 系统。
对ROS兼容性最好的当属Ubuntu系统。从ROS发布以来,每版的Ubuntu系统版本都有与之对应ROS版本的,每一版ROS都有其对应版本的Ubuntu版本,切记不可随便装。
 ubuntu20.04对应foxy版本,因此这里我们选择foxy版本。

2、检查系统设置

(1)设置编码UTF-8

终端输入:

locale

若出现上图中的输出信息,则说明编码是utf-8,无需再做设置,如果未出现,则按照ros.org官网提示操作。

(2)添加源

检查是否已已启用ubuntu Universe存储库

$ apt-cache policy | grep universe
## 输出应如下:
 500 http://security.ubuntu.com/ubuntu focal-security/universe i386 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=universe,b=i386
 500 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages
     release v=20.04,o=Ubuntu,a=focal-security,n=focal,l=Ubuntu,c=universe,b=amd64

如果没有看到上面的输出信息,执行下面这两条命令

$ sudo apt install software-properties-common
$ sudo add-apt-repository universe

(3)设置密钥

$ sudo apt update && sudo apt install curl gnupg2 lsb-release
$ sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key  -o /usr/share/keyrings/ros-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

如果没有设置密钥,在执行ros2安装命令的时候会出现无法定位到软件包的问题。

如果遇到报错“ailed to connect to raw.githubusercontent.com port 443 after 13 ms: 拒绝连接”

解决方法:在/etc/hosts文件中添加如下IP

$sudo gedit /etc/hosts
#这两行是原来就有的
127.0.0.1	localhost
127.0.1.1	iron-virtual-machine
###这一行是需要新增加的
185.199.108.133  raw.githubusercontent.com

二、正式开始安装ros2

$ sudo apt update
$ sudo apt upgrade
## 推荐桌面版,比较推荐。
$ sudo apt install ros-foxy-desktop
## 安装时间可能较长,安心等待。

-------------------------------------------------------------------------------------------------------------------------------

如果系统中原来没有ros1,可按照原教程继续安装,一般不会出现问题,如果需要ros1与ros2共存,需要使用如下方法设置环境变量。

------------------------------------------------------------------------------------------------------------------------------

三、设置环境变量

这是~/.bashrc中原先的ros环境变量,

source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash

注释掉这两行,并添加下列代码:

echo "ROS noetic (1) or ROS2 foxy (2)?"
read edition
if [ "$edition" -eq "1" ];then
  source /opt/ros/noetic/setup.bash  #这是ros1根目录环境变量
  source ~/catkin_ws/devel/setup.bash#这是ros1工作空间环境变量
  echo using ros noetic
else
  source /opt/ros/foxy/setup.bash    #这是ros2系统环境变量

  echo using ros2 foxy
fi

后续创建了ros2的工作空间后,假设工作空间为colcon_ws,这在下面位置添加环境变量

echo "ROS noetic (1) or ROS2 foxy (2)?"
read edition
if [ "$edition" -eq "1" ];then
  source /opt/ros/noetic/setup.bash  #这是ros1根目录环境变量
  source ~/catkin_ws/devel/setup.bash#这是ros1工作空间环境变量
  echo using ros noetic
else
  source /opt/ros/foxy/setup.bash    #这是ros2系统环境变量
  source ~/colcon_ws/install/local_setup.sh #添加在这里***************
  echo using ros2 foxy
fi

现在你已经拥有了一个ros1与ros2并存的系统了,在使用过程中可以根据需要切换ros版本,记得每次打开一个新的终端都需要通过按键“1”或“2”来选择ros版本。

猜你喜欢

转载自blog.csdn.net/m0_62353836/article/details/128579677
今日推荐