以下内容对应Arch Linux, Debian/Ubuntu系发行版系统的教程,如果是其他系统请酌情按照自己的环境修改。另外,对于Arch Linux,还可参考 ROS - Arch Linux Wiki ,我有经常维护该页面。
本安装教程对应ros2.repos ,链接版本是Galactic
。虽然发行时社区声称Galactic
不默认支持Ubuntu 18.04
,但经过一番探索,还是可以支持的,只在一些软件的版本上(比如PyQt
等)有些许差别,均可通过下述方法修复。
修改字符格式(一般情况不用执行,除非你的locale是其他语言) 1 2 3 4 5 6 locale 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-8locale
更新Ubuntu源(只有Ubuntu发行版需要) 注意,这里需要分辨自己的版本。
Ubuntu 18.04:
1 sudo apt install curl gnupg2 lsb-release
1 2 3 4 5 6 sudo vim /etc/apt/sources.list deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
1 2 3 sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list' curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo apt update
Ubuntu 20.04:
1 sudo apt install curl gnupg2 lsb-release
1 2 3 4 5 6 sudo vim /etc/apt/sources.list deb 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 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
1 2 3 sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] https://mirrors.tuna.tsinghua.edu.cn/ros2/ubuntu/ $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list' curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - sudo apt update
安装编译所需依赖 对于Arch Linux: 安装ROS 2的相关依赖: 1 yay -S --noconfirm ros-arch-deps
建立Sip
所需链接
1 2 3 sudo mkdir -p /usr/share/sip sudo ln -s /usr/lib/python3.9/site-packages/PyQt5 /usr/share/sip/. sudo ln -s /usr/lib/python3.9/site-packages/PyQt5/bindings/* /usr/share/sip/PyQt5/.
安装其他依赖: 1 yay -S --noconfirm ompl vtk pcl ceres-solver gazebo
对于Ubuntu系的发行版: 安装ROS 2的依赖 这部分如果全复制可能会失败,如果哪个失败就单独安装哪个,或者一条一条安装。Ubuntu的APT的软件包依赖关系并不够严谨,所以有时候会处理不了这些逻辑。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 sudo apt update && sudo apt install -y \ build-essential \ cmake \ git \ libbullet-dev \ python3-colcon-common-extensions \ python3-flake8 \ python3-pip \ python3-pytest-cov \ python3-rosdep \ python3-setuptools \ python3-vcstool \ python3-lark python3-lark-parser \ python3-sip \ python3-numpy \ libfreetype-dev \ pyqt5-dev \ wget \ libasio-dev \ libtinyxml2-dev \ libeigen3-dev \ libpcl-dev \ libxrandr-dev \ libxaw7-dev \ liblog4cxx-dev \ libassimp-dev \ libopencv-dev \ python3-testresources \ libgraphicsmagick++1-dev \ libgflags-dev \ libgoogle-glog-dev \ libsuitesparse-dev \ libgles2-mesa-dev \ libxt-dev \ libasio-dev \ libsdl2-dev \ doxygen \ libcurl4-openssl-dev \ libsqlite3-dev \ libbison-dev \ libncurses-dev \ libacl1-dev //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 \ importlib-metadata \ importlib-resources
安装SIP和PyQT5相关的包
这里提供的是4.19.25版本的sip,由于qt_gui_cpp
的限制,只能使用sip4(虽然已经更新到6)。
Arch Linux用户可以直接安装sip4 ,无需此步骤。
Ubuntu相关用户:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 wget https://www.riverbankcomputing.com/static/Downloads/sip/4.19.25/sip-4.19.25.tar.gz tar -xvf sip-4.19.25.tar.gz cd sip-4.19.25python3 configure.py make sudo make install python3 -m pip install PyQt5 python3 -m pip install PyQt5-sip sudo mkdir /usr/share/sip sudo ln -s ~/.local /lib/python3.6/site-packages/PyQt5 /usr/share/sip/. sudo ln -s ~/.local /lib/python3.6/site-packages/PyQt5/bindings/* /usr/share/sip/PyQt5/. sudo mkdir /usr/share/sip sudo ln -s ~/.local /lib/python3.8/site-packages/PyQt5 /usr/share/sip/. sudo ln -s ~/.local /lib/python3.8/site-packages/PyQt5/bindings/* /usr/share/sip/PyQt5/.
编译ROS2源码 1 2 3 sudo mkdir /opt/ros2 sudo chown $USER /opt/ros2 colcon build --merge-install --install-base /opt/ros2/galactic --parallel-workers 20
期间如果发生warning
,忽略即可,所以一般需要运行两次。
添加脚本 如果你使用的是zsh,则添加如下脚本到~/.zshrc。
1 2 3 4 5 6 7 ros2_on(){ export ROS_DOMAIN_ID=42 export ROS_VERSION=2 export ROS_PYTHON_VERSION=3 export ROS_DISTRO=galactic source /opt/ros2/galactic/setup.zsh }
如果你使用的是bash,则添加如下脚本到~/.bashrc。
1 2 3 4 5 6 7 ros2_on(){ export ROS_DOMAIN_ID=42 export ROS_VERSION=2 export ROS_PYTHON_VERSION=3 export ROS_DISTRO=galactic source /opt/ros2/galactic/setup.bash }
对于ROS_DOMAIN_ID
的值,可以按照自己的需求去修改。
使用方法 更新环境变量后,运行ros2_on
即可部署ROS 2环境