ROS2-foxy详细安装教程及相关问题的解决方法

对在Ubuntu20.04上安装ROS2-foxy的过程以及该过程中出现的问题和找到的相应解决方法做了一个详细的记录,本文中设计的命令基本都可以在ROS的官网中找到。

一、设置编码

locale  # check for UTF-8

sudo apt update && sudo apt install locales

sudo locale-gen en_US en_US.UTF-8

sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8

export LANG=en_US.UTF-8

locale  # verify settings

ROS2-foxy安装好像要求在美式英语的ubuntu系统上进行,所以先输入以上命令将系统的语言改为要求的语言。

二、设置软件源

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 $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

第二条命令运行时会报错出现无法连接的问题,需要在github 的网址前加入一个代理地址https://ghproxy.com/,即输入命令 sudo curl -sSL https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/ros.key  -o /usr/share/keyrings/ros-archive-keyring.gpg

三、下载并解压ROS2-foxy安装包(linux-focal-amd64)

下载安装包的网址为:https://github.com/ros2/ros2/releases

mkdir -p ~/ros2_foxy

cd ~/ros2_foxy

tar xf ~/Downloads/ros2-package-linux-x86_64.tar.bz2

四、安装并初始化rosdep

sudo apt update

sudo apt install -y python3-rosdep

sudo rosdep init

rosdep update

注意:rosdep init时仍会发生超时并报错的问题,解决方案与安装ROS1时略有不同

rosdep init超时的解决方案:

1、sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py

将url="https://ghproxy.com/"+url    添加到311行,即download_rosdep_data()函数中try:的后面

2、sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py

更改DEFAULT_INDEX_URL参数如下

DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

3、将“https://ghproxy.com/”  添加到“raw.githubusercontent.com”网址前

sudo gedit /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py(36行)

sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py(72行)

sudo gedit /usr/lib/python3/dist-packages/rosdep2/rep3.py(39行)

sudo gedit /usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py(68行 119行)

4、sudo gedit /usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py

将gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url    添加到第204行

更改完上述文件后,再次输入命令sudo rosdep init

如系统中安装过其他版本的ROS,会出现报错ERROR: default sources list file already exists 只需sudo rm 提示出现的文件后,重新sudo rosdep init即可

五、安装缺失的依赖项

rosdep install --from-paths ~/ros2_foxy/foxy/share(自己的安装路径) --ignore-src -y --skip-keys "cyclonedds fastcdr fastrtps rti-connext-dds-5.3.1 urdfdom_headers"

六、安装python3的库文件

sudo apt install -y libpython3-dev python3-pip

pip3 install -U argcomplete

七、设置环境变量

. ~/ros2_foxy/foxy/setup.bash(视自己的安装路径而定)

执行该命令可能会出现有关RTI CONNEXT的warning,原因为执行ROS2的bash文件时会默认调用rti-connext-dds的某个模块。但使用ROS2时,若不涉及rti-connext-dds的应用,该warning不会对后续操作产生影响。可以忽视该warning,也可以通过安装rti-connext-dds来避免它的出现。安装地址: https://docs.ros.org/en/foxy/Installation/DDS-Implementations.html

至此,已经可以运行ROS2的相关实例

除上述安装内容之外,要更好的使用ROS2,还要后续的几个小步骤

安装编辑工具colcon

sudo apt-get install python3-colcon-common-extensions

编辑bashrc

echo "source ~/ros2_foxy/foxy/setup.bash" >> ~/.bashrc

echo "source /usr/share/colcon_cd/function/colcon_cd.sh" >> ~/.bashrc

echo "export _colcon_cd_root=~/ros2_foxy/foxy" >> ~/.bashrc

上述命令均视自己的安装路径而定

配置完成后的检查

printenv | grep -i ROS

该命令可以获取ROS安装的具体位置信息

上述过程完成后,ROS2-foxy便安装完成了

你可能感兴趣的:(ubuntu,linux)