Ubuntu 18.04安装ROS 2
ROS 2 安装手册和踩过的坑
- 官方流程
- 系统要求
- 系统设置
- 更换Ubuntu 清华源
- 设置语言区域
- 增加ROS 2 apt软件仓库
- 安装开发工具和ROS工具
- 获取ROS 2代码
- 使用rosdep安装依赖
- 在workspace中编译代码
- 编译代码
- 环境配置
- 验证样例
- 参考
本篇记录一下在Ubuntu 18.04下安装ROS 2 Eloquent Elusor的过程,由于ROS 2首选的系统就是Ubuntu18.04,不过在国内的安装过程里面确实很多坑,记录下来帮助大家避坑。
官方流程
https://index.ros.org/doc/ros2/Installation/Eloquent/Linux-Development-Setup/
系统要求
按照官方,要求是
Ubuntu Linux - Bionic Beaver (18.04) 64-bit
这个就不赘述了
系统设置
更换Ubuntu 清华源
由于国内访问Ubuntu默认的软件源非常慢,所以安装后优先更新为国内的镜像源
Ubuntu 的软件源配置文件是 /etc/apt/sources.list。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用 清华的软件源镜像。
注意:
清华源镜像仅包含 32/64 位 x86 架构处理器的软件包,在 ARM(arm64, armhf)、PowerPC(ppc64el)、RISC-V(riscv64) 和 S390x 等架构的设备上(对应官方源为ports.ubuntu.com)请使用 ubuntu-ports 镜像。
设置完软件源,可以大大地加速我们的apt更新安装速度。
设置语言区域
官方要求是需要确认支持UTF-8,虽然说起来似乎不一定需要,不过确认一下即可
locale # check for UTF-8sudo 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-8locale # verify settings增加ROS 2 apt软件仓库
我们需要将我们的ROS2 apt软件仓库加入系统。
首先要验证我们的GPG key
将仓库加入我们的软件源
sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'注意:
这里如果直接执行的话,会遇到raw.githubusercontent.com的DNS污染问题。
解决方法:
通过IPAddress.com,可以查到raw.githubusercontent.com的真实IP地址为 .*..
通过sudo vi /etc/hosts
在hosts文件最后加入IP和域名的绑定即可解决。
安装开发工具和ROS工具
sudo apt update && sudo apt install -y \build-essential \cmake \git \python3-colcon-common-extensions \python3-pip \python-rosdep \python3-vcstool \wget # install some pip packages needed for testing python3 -m pip install -U \argcomplete \flake8 \flake8-blind-except \flake8-builtins \flake8-class-newline \flake8-comprehensions \flake8-deprecated \flake8-docstrings \flake8-import-order \flake8-quotes \pytest-repeat \pytest-rerunfailures \pytest \pytest-cov \pytest-runner \setuptools # install Fast-RTPS dependencies sudo apt install --no-install-recommends -y \libasio-dev \libtinyxml2-dev # install Cyclone DDS dependencies sudo apt install --no-install-recommends -y \libcunit1-dev获取ROS 2代码
创建workspace,clone ROS 2的代码仓库
mkdir -p ~/ros2_eloquent/src cd ~/ros2_eloquent wget https://raw.githubusercontent.com/ros2/ros2/eloquent/ros2.repos vcs import src < ros2.repos使用rosdep安装依赖
sudo rosdep init rosdep update rosdep install --from-paths src --ignore-src --rosdistro eloquent -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 rti-connext-dds-5.3.1 urdfdom_headers"在workspace中编译代码
虽说是编译代码,其实编译过程中还有不少需要下载的情况,个人就在 rviz_ogre_vendor的编译中遇到了很久的下载错误。大家可以想办法在下载方面采用一些方法。
编译代码
cd ~/ros2_eloquent/ colcon build --symlink-install环境配置
. ~/ros2_eloquent/install/setup.bash验证样例
在一个终端(A)里,运行配置,启动C++的talker
. ~/ros2_eloquent/install/local_setup.bash ros2 run demo_nodes_cpp talker在另一个终端(B)里,运行配置,启动Python的listener
. ~/ros2_eloquent/install/local_setup.bash ros2 run demo_nodes_py listener终端A中显示
HP-ProDesk-680-G1-TWR:~/ros2_eloquent$ ros2 run demo_nodes_cpp talker [INFO] [talker]: Publishing: 'Hello World: 1' [INFO] [talker]: Publishing: 'Hello World: 2' [INFO] [talker]: Publishing: 'Hello World: 3' [INFO] [talker]: Publishing: 'Hello World: 4' [INFO] [talker]: Publishing: 'Hello World: 5' [INFO] [talker]: Publishing: 'Hello World: 6' [INFO] [talker]: Publishing: 'Hello World: 7' [INFO] [talker]: Publishing: 'Hello World: 8' [INFO] [talker]: Publishing: 'Hello World: 9' [INFO] [talker]: Publishing: 'Hello World: 10' [INFO] [talker]: Publishing: 'Hello World: 11' [INFO] [talker]: Publishing: 'Hello World: 12' [INFO] [talker]: Publishing: 'Hello World: 13' [INFO] [talker]: Publishing: 'Hello World: 14' [INFO] [talker]: Publishing: 'Hello World: 15'终端B中显示
HP-ProDesk-680-G1-TWR:~/ros2_eloquent$ ros2 run demo_nodes_py listener [INFO] [listener]: I heard: [Hello World: 1] [INFO] [listener]: I heard: [Hello World: 2] [INFO] [listener]: I heard: [Hello World: 3] [INFO] [listener]: I heard: [Hello World: 4] [INFO] [listener]: I heard: [Hello World: 5] [INFO] [listener]: I heard: [Hello World: 6] [INFO] [listener]: I heard: [Hello World: 7] [INFO] [listener]: I heard: [Hello World: 8] [INFO] [listener]: I heard: [Hello World: 9] [INFO] [listener]: I heard: [Hello World: 10] [INFO] [listener]: I heard: [Hello World: 11] [INFO] [listener]: I heard: [Hello World: 12] [INFO] [listener]: I heard: [Hello World: 13] [INFO] [listener]: I heard: [Hello World: 14] [INFO] [listener]: I heard: [Hello World: 15]大功告成~~~
参考
- https://index.ros.org/doc/ros2/Installation/Eloquent/Linux-Development-Setup/
- https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
- https://alanlee.fun/2018/05/18/ubuntu-ssr/
- https://wylu.me/posts/eed37a90/
总结
以上是生活随笔为你收集整理的Ubuntu 18.04安装ROS 2的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: MAC电脑安装Python3下的Jupy
- 下一篇: ROS2学习(一).Ubuntu 20.