137 lines
8.5 KiB
Markdown
137 lines
8.5 KiB
Markdown
## [System requirements](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id1)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#system-requirements "Link to this heading")
|
||
|
||
The current Debian-based target platforms for Humble Hawksbill are:
|
||
|
||
- Tier 1: Ubuntu Linux - Jammy (22.04) 64-bit
|
||
|
||
- Tier 3: Ubuntu Linux - Focal (20.04) 64-bit
|
||
|
||
- Tier 3: Debian Linux - Bullseye (11) 64-bit
|
||
|
||
|
||
Other Linux platforms with varying support levels include:
|
||
|
||
- Arch Linux, see [alternate instructions](https://wiki.archlinux.org/index.php/ROS#ROS_2)
|
||
|
||
- Fedora Linux, see [alternate instructions](https://ros2docs.robook.org/humble/Installation/Alternatives/Fedora-Development-Setup.html)
|
||
|
||
- OpenEmbedded / webOS OSE, see [alternate instructions](https://github.com/ros/meta-ros/wiki/OpenEmbedded-Build-Instructions)
|
||
|
||
|
||
As defined in [REP 2000](https://www.ros.org/reps/rep-2000.html).
|
||
|
||
## [System setup](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id2)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#system-setup "Link to this heading")
|
||
|
||
### [Set locale](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id3)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#set-locale "Link to this heading")
|
||
|
||
请确保您有一个支持 `UTF-8` 的区域设置。 如果您处于最简环境中(例如 docker 容器),区域设置可能是一些类似 `POSIX` 的选项。 我们使用以下设置通过了测试。但是,如果您使用不同的支持 `UTF-8` 的区域设置,也应该没问题。
|
||
|
||
`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`
|
||
|
||
### [Add the ROS 2 apt repository](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id4)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#add-the-ros-2-apt-repository "Link to this heading")
|
||
|
||
你需要将 ROS 2 apt 仓库添加到你的系统中。
|
||
|
||
首先确保 [Ubuntu Universe 仓库](https://help.ubuntu.com/community/Repositories/Ubuntu) 已启用。
|
||
|
||
`sudo apt install software-properties-common`
|
||
`sudo add-apt-repository universe`
|
||
|
||
然后使用 apt 添加 ROS 2 GPG 密钥。
|
||
|
||
`sudo apt update && sudo apt install curl -y`
|
||
`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 $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null`
|
||
|
||
### [Install development tools and ROS tools](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id5)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#install-development-tools-and-ros-tools "Link to this heading")
|
||
|
||
Install common packages.
|
||
|
||
`sudo apt update && sudo apt install -y \`
|
||
`python3-flake8-docstrings \`
|
||
`python3-pip \`
|
||
`python3-pytest-cov \`
|
||
`ros-dev-tools`
|
||
|
||
Install packages according to your Ubuntu version.
|
||
|
||
Ubuntu 22.04 LTS and laterUbuntu 20.04 LTS
|
||
|
||
`sudo apt install -y \`
|
||
`python3-flake8-blind-except \`
|
||
`python3-flake8-builtins \`
|
||
`python3-flake8-class-newline \`
|
||
`python3-flake8-comprehensions \`
|
||
`python3-flake8-deprecated \`
|
||
`python3-flake8-import-order \`
|
||
`python3-flake8-quotes \`
|
||
`python3-pytest-repeat \`
|
||
`python3-pytest-rerunfailures`
|
||
|
||
## [Get ROS 2 code](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id6)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#get-ros-2-code "Link to this heading")
|
||
|
||
Create a workspace and clone all repos:
|
||
|
||
`mkdir -p ~/ros2_humble/src`
|
||
`cd ~/ros2_humble`
|
||
`vcs import --input https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos src`
|
||
|
||
## [Install dependencies using rosdep](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id7)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#install-dependencies-using-rosdep "Link to this heading")
|
||
|
||
ROS 2 包是在经常更新的 Ubuntu 系统上构建的。 在安装新包之前,建议您确保系统是最新的。
|
||
|
||
%% `sudo apt upgrade` %%
|
||
|
||
`sudo rosdep init`
|
||
`rosdep update`
|
||
`rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"`
|
||
|
||
**Note**: If you’re using a distribution that is based on Ubuntu (like Linux Mint) but does not identify itself as such, you’ll get an error message like `Unsupported OS [mint]`. In this case append `--os=ubuntu:jammy` to the above command.
|
||
|
||
## [Install additional DDS implementations (optional)](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id8)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#install-additional-dds-implementations-optional "Link to this heading")
|
||
|
||
If you would like to use another DDS or RTPS vendor besides the default, you can find instructions [here](https://ros2docs.robook.org/humble/Installation/DDS-Implementations.html).
|
||
|
||
## [Build the code in the workspace](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id9)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#build-the-code-in-the-workspace "Link to this heading")
|
||
|
||
If you have already installed ROS 2 another way (either via debs or the binary distribution), make sure that you run the below commands in a fresh environment that does not have those other installations sourced. Also ensure that you do not have `source /opt/ros/${ROS_DISTRO}/setup.bash` in your `.bashrc`. You can make sure that ROS 2 is not sourced with the command `printenv | grep -i ROS`. The output should be empty.
|
||
|
||
More info on working with a ROS workspace can be found in [this tutorial](https://ros2docs.robook.org/humble/Tutorials/Beginner-Client-Libraries/Colcon-Tutorial.html).
|
||
|
||
`cd ~/ros2_humble/`
|
||
`colcon build --symlink-install`
|
||
|
||
Note: if you are having trouble compiling all examples and this is preventing you from completing a successful build, you can use `COLCON_IGNORE` in the same manner as [CATKIN_IGNORE](https://github.com/ros-infrastructure/rep/blob/master/rep-0128.rst) to ignore the subtree or remove the folder from the workspace. Take for instance: you would like to avoid installing the large OpenCV library. Well then simply run `touch COLCON_IGNORE` in the `cam2image` demo directory to leave it out of the build process.
|
||
|
||
## [Environment setup](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id10)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#environment-setup "Link to this heading")
|
||
|
||
### [Source the setup script](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id11)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#source-the-setup-script "Link to this heading")
|
||
|
||
Set up your environment by sourcing the following file.
|
||
|
||
# Replace ".bash" with your shell if you're not using bash
|
||
# Possible values are: setup.bash, setup.sh, setup.zsh
|
||
|
||
`. ~/ros2_humble/install/local_setup.bash`
|
||
|
||
## [Try some examples](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#id12)[](https://ros2docs.robook.org/humble/Installation/Alternatives/Ubuntu-Development-Setup.html#try-some-examples "Link to this heading")
|
||
|
||
In one terminal, source the setup file and then run a C++ `talker`:
|
||
|
||
`. ~/ros2_humble/install/local_setup.bash`
|
||
`ros2 run demo_nodes_cpp talker`
|
||
|
||
In another terminal source the setup file and then run a Python `listener`:
|
||
|
||
`. ~/ros2_humble/install/local_setup.bash`
|
||
`ros2 run demo_nodes_py listener`
|
||
|
||
You should see the `talker` saying that it’s `Publishing` messages and the `listener` saying `I heard` those messages. This verifies both the C++ and Python APIs are working properly. Hooray! |