第1讲 ROS2 编译与安装

第1讲 ROS2 编译与安装


系统环境及ROS版本

​ 系统环境:Ubuntu Linux - Focal Fossa (20.04) 64-bit

​ ROS2版本:Galactic

准备工作

1. 添加ROS2 apt仓库

# 安装依赖软件
sudo apt update && sudo apt install curl gnupg lsb-release
# 从github网站下载ROS apt 密钥
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key  -o /usr/share/keyrings/ros-archive-keyring.gpg
# 添加仓库到sources list中
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

2. 安装开发工具和ROS工具

# 安装Ubuntu系统依赖软件
sudo apt update && sudo apt install -y \
  build-essential \
  cmake \
  git \
  python3-colcon-common-extensions \
  python3-flake8 \
  python3-pip \
  python3-pytest-cov \
  python3-rosdep \
  python3-setuptools \
  python3-vcstool \
  wget
# 安装Python3依赖软件
python3 -m pip install -U \
  flake8-blind-except \
  flake8-builtins \
  flake8-class-newline \
  flake8-comprehensions \
  flake8-deprecated \
  flake8-docstrings \
  flake8-import-order \
  flake8-quotes \
  pytest-repeat \
  pytest-rerunfailures \
  pytest \
  setuptools

3. 获取ROS2代码

mkdir -p ~/ros2_galactic/src
cd ~/ros2_galactic
# 下载ROS代码库文件
wget https://raw.githubusercontent.com/ros2/ros2/master/ros2.repos
# 利用VCS工具将ROS2源码下载至src文件夹下
vcs import src < ros2.repos

4. 利用rosdep安装ROS系统依赖

# 初始化,从https://raw.githubusercontent.com/ros/rosdistro/blob/master/rosdep/sources.list.d/20-default.list下载20-default.list文件至/etc/ros/rosdep/sources.list.d/文件夹下
sudo rosdep init
# 更新相关依赖
rosdep update
# 安装依赖
rosdep install --from-paths src --ignore-src --rosdistro galactic -y --skip-keys "console_bridge fastcdr fastrtps rti-connext-dds-5.3.1 urdfdom_headers"

编译及安装

cd ~/ros2_galactic/
colcon build --symlink-install

测试

1. 设置环境

# 打开终端后,为终端配置临时环境
. ~/ros2_galactic/install/local_setup.bash
# 配置永久环境
echo "source ~/ros2_galactic/install/local_setup.bash" >> ~/.bashrc

2. 测试

# 打开一个终端
. ~/ros2_galactic/install/local_setup.bash
ros2 run demo_nodes_cpp talker
# 打开另一种终端
. ~/ros2_galactic/install/local_setup.bash
ros2 run demo_nodes_py listener

问题汇总及解决方案

1. 无法访问Github网站,无法clone下载代码库

解决方案

# 配置git设置,用镜像网址https://github.com.cnpmjs.org替换https://github.com
git config --global url."https://hub.fastgit.org".insteadOf https://github.com

备注:可以解决大部分下载问题,且不需要修改Host。

2. raw.githubusercontent.com 相关错误

解决方案

# 下载github响应的代码库,将文件替换到相关位置

3. VCS import src 报错EEEEEE

原因:此处报错是VCS工具因Github DNS污染导致网络不稳定,无法顺利下载代码。

解决方案:参照方案1.

4. rosdep update 时 ERROR: error loading sources list:

The read operation timed out错误

原因:此处报错是VCS工具因Github DNS污染导致网络不稳定,无法顺利下载网页内容。

解决方案

# 1.从github网站下载rosdistro库,记住文件路径
git clone https://github.com/ros/rosdistro.git
# 2.将/usr/lib/python3/dist-packages/rosdep2/rep3.py、/usr/lib/python2/dist-packages/rosdistro/__init__.py中的"https://raw.githubusercontent.com/ros/rosdistro/master"替换为"file:///home/XXX/rosdistro"
# 3.将/etc/ros/rosdep/sources.list.d/20-default.list文件中的"https://raw.githubusercontent.com/ros/rosdistro/master"同样替换为"file:///home/XXX/rosdistro"
# 执行rosdep update
rosdep update

备注:其他的方案如更改/etc/hosts中的IP地址、增加网络响应延时时间、更换手机热点等看运气,建议不要尝试了。

参考资料

ROS2 Galactic wiki Documentation

Github国内加速克隆及下载

rosdep update read operation time out 不用翻墙的解决方法

rosdep init ROS安装问题解决方案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值