From 5a8499aaf8017ddd25f56973869a6a5214322a85 Mon Sep 17 00:00:00 2001 From: Marya Belanger Date: Thu, 3 Dec 2020 04:34:06 -0800 Subject: [PATCH 01/79] Versioned Rolling branch (#907) * committing version test * remove tags Signed-off-by: maryaB-osr * adding whitelists and trying released/in-development Signed-off-by: maryaB-osr * comment out unused config with wrong type causing warning * Enable pulling from origin and released flag * Example warning banner * reverse order and move version list below navigation Signed-off-by: maryaB-osr * reorder version list Signed-off-by: maryaB-osr * refactored after separating versions Signed-off-by: maryaB-osr * lowercase branch names, add dashing Signed-off-by: maryaB-osr * fixing branch versioning Signed-off-by: maryaB-osr * travis.yml: pip3 install sphinx_multiversion Signed-off-by: maryaB-osr * remove missing-reference function Signed-off-by: maryaB-osr * fix typo Signed-off-by: maryaB-osr * no env config video for rolling Signed-off-by: maryaB-osr Co-authored-by: Tully Foote --- .travis.yml | 1 + conf.py | 31 +- setup.py | 30 ++ source/Concepts.rst | 2 +- .../Build-Cop-and-Build-Farmer-Guide.rst | 8 +- source/Installation.rst | 29 +- source/Installation/Crystal.rst | 36 -- .../Crystal/Fedora-Development-Setup.rst | 19 - .../Crystal/Linux-Development-Setup.rst | 231 ---------- .../Crystal/Linux-Install-Binary.rst | 174 -------- .../Crystal/Linux-Install-Debians.rst | 178 -------- .../Crystal/Windows-Development-Setup.rst | 378 ----------------- .../Crystal/Windows-Install-Binary.rst | 236 ----------- .../Crystal/macOS-Development-Setup.rst | 193 --------- .../Crystal/macOS-Install-Binary.rst | 171 -------- source/Installation/DDS-Implementations.rst | 105 +---- .../Working-with-Eclipse-CycloneDDS.rst | 3 +- source/Installation/Dashing.rst | 36 -- .../Dashing/Fedora-Development-Setup.rst | 56 --- .../Dashing/Linux-Development-Setup.rst | 214 ---------- .../Dashing/Linux-Install-Binary.rst | 146 ------- .../Dashing/Linux-Install-Debians.rst | 122 ------ .../Dashing/Windows-Development-Setup.rst | 385 ----------------- .../Dashing/Windows-Install-Binary.rst | 278 ------------ .../Dashing/macOS-Development-Setup.rst | 215 ---------- .../Dashing/macOS-Install-Binary.rst | 200 --------- source/Installation/Eloquent.rst | 38 -- .../Eloquent/Fedora-Development-Setup.rst | 62 --- .../Eloquent/Linux-Development-Setup.rst | 221 ---------- .../Eloquent/Linux-Install-Binary.rst | 152 ------- .../Eloquent/Linux-Install-Debians.rst | 131 ------ .../Eloquent/Windows-Development-Setup.rst | 399 ------------------ .../Eloquent/Windows-Install-Binary.rst | 236 ----------- .../Eloquent/macOS-Development-Setup.rst | 225 ---------- .../Eloquent/macOS-Install-Binary.rst | 206 --------- .../Fedora-Development-Setup.rst | 0 source/Installation/Foxy.rst | 38 -- .../Foxy/Fedora-Development-Setup.rst | 57 --- .../Foxy/Linux-Development-Setup.rst | 217 ---------- .../Foxy/Linux-Install-Binary.rst | 143 ------- .../Foxy/Linux-Install-Debians.rst | 125 ------ .../Foxy/Windows-Development-Setup.rst | 374 ---------------- .../Foxy/Windows-Install-Binary.rst | 303 ------------- .../Foxy/macOS-Development-Setup.rst | 224 ---------- .../Foxy/macOS-Install-Binary.rst | 204 --------- .../Installation/Latest-Development-Setup.rst | 6 +- .../{Rolling => }/Linux-Development-Setup.rst | 10 +- .../{Rolling => }/Linux-Install-Binary.rst | 5 +- .../{Rolling => }/Linux-Install-Debians.rst | 8 +- .../Maintaining-a-Source-Checkout.rst | 71 ---- source/Installation/Prerelease-Testing.rst | 2 +- source/Installation/Rolling.rst | 40 -- .../{_Install-Types.rst => Summary.rst} | 36 +- .../Windows-Development-Setup.rst | 4 +- .../{Rolling => }/Windows-Install-Binary.rst | 4 +- .../{Rolling => }/macOS-Development-Setup.rst | 2 +- .../{Rolling => }/macOS-Install-Binary.rst | 2 +- source/Releases/Beta2-Overview.rst | 2 +- source/Releases/Release-Dashing-Diademata.rst | 2 +- source/Releases/Release-Eloquent-Elusor.rst | 2 +- source/Releases/Release-Foxy-Fitzroy.rst | 2 +- source/Releases/Release-Rolling-Ridley.rst | 2 +- .../Installation-Troubleshooting.rst | 49 +-- source/Tutorials.rst | 7 +- .../Tutorials/Actions/Creating-an-Action.rst | 24 +- .../Tutorials/Ament-CMake-Documentation.rst | 56 +-- source/Tutorials/Colcon-Tutorial.rst | 2 +- .../Configuring-ROS2-Environment.rst | 35 +- source/Tutorials/Custom-ROS2-Interfaces.rst | 27 +- .../Tutorials/Developing-a-ROS-2-Package.rst | 2 +- .../Getting-Started-With-Ros2doctor.rst | 4 +- .../Launch-Files/Creating-Launch-Files.rst | 179 +++----- source/Tutorials/Launch-system.rst | 54 +-- .../Logging-and-logger-configuration.rst | 52 +-- source/Tutorials/Node-arguments.rst | 114 ++--- .../Understanding-ROS2-Parameters.rst | 87 ++-- source/Tutorials/Quality-of-Service.rst | 35 +- source/Tutorials/RQt-Overview-Usage.rst | 2 +- .../Recording-And-Playing-Back-Data.rst | 6 +- source/Tutorials/Rosbag-with-ROS1-Bridge.rst | 2 +- .../Rqt-Console/Using-Rqt-Console.rst | 14 +- ...n-2-nodes-in-a-single-docker-container.rst | 6 +- ...odes-in-two-separate-docker-containers.rst | 8 +- .../Services/Understanding-ROS2-Services.rst | 44 +- .../Topics/Understanding-ROS2-Topics.rst | 34 +- .../Turtlesim/Introducing-Turtlesim.rst | 25 +- .../Tutorials/Understanding-ROS2-Actions.rst | 15 +- source/Tutorials/Understanding-ROS2-Nodes.rst | 14 +- .../Using-Parameters-In-A-Class-CPP.rst | 84 +--- .../Using-Parameters-In-A-Class-Python.rst | 86 +--- ...king-with-multiple-RMW-implementations.rst | 2 +- .../Workspace/Creating-A-Workspace.rst | 18 +- ...-A-Simple-Cpp-Publisher-And-Subscriber.rst | 7 +- ...riting-A-Simple-Cpp-Service-And-Client.rst | 135 ++---- ...g-A-Simple-Py-Publisher-And-Subscriber.rst | 8 +- source/Tutorials/dummy-robot-demo.rst | 2 - source/_templates/page.html | 17 + source/_templates/versioning.html | 20 + 98 files changed, 480 insertions(+), 7828 deletions(-) create mode 100755 setup.py delete mode 100644 source/Installation/Crystal.rst delete mode 100644 source/Installation/Crystal/Fedora-Development-Setup.rst delete mode 100644 source/Installation/Crystal/Linux-Development-Setup.rst delete mode 100644 source/Installation/Crystal/Linux-Install-Binary.rst delete mode 100644 source/Installation/Crystal/Linux-Install-Debians.rst delete mode 100644 source/Installation/Crystal/Windows-Development-Setup.rst delete mode 100644 source/Installation/Crystal/Windows-Install-Binary.rst delete mode 100644 source/Installation/Crystal/macOS-Development-Setup.rst delete mode 100644 source/Installation/Crystal/macOS-Install-Binary.rst delete mode 100644 source/Installation/Dashing.rst delete mode 100644 source/Installation/Dashing/Fedora-Development-Setup.rst delete mode 100644 source/Installation/Dashing/Linux-Development-Setup.rst delete mode 100644 source/Installation/Dashing/Linux-Install-Binary.rst delete mode 100644 source/Installation/Dashing/Linux-Install-Debians.rst delete mode 100644 source/Installation/Dashing/Windows-Development-Setup.rst delete mode 100644 source/Installation/Dashing/Windows-Install-Binary.rst delete mode 100644 source/Installation/Dashing/macOS-Development-Setup.rst delete mode 100644 source/Installation/Dashing/macOS-Install-Binary.rst delete mode 100644 source/Installation/Eloquent.rst delete mode 100644 source/Installation/Eloquent/Fedora-Development-Setup.rst delete mode 100644 source/Installation/Eloquent/Linux-Development-Setup.rst delete mode 100644 source/Installation/Eloquent/Linux-Install-Binary.rst delete mode 100644 source/Installation/Eloquent/Linux-Install-Debians.rst delete mode 100644 source/Installation/Eloquent/Windows-Development-Setup.rst delete mode 100644 source/Installation/Eloquent/Windows-Install-Binary.rst delete mode 100644 source/Installation/Eloquent/macOS-Development-Setup.rst delete mode 100644 source/Installation/Eloquent/macOS-Install-Binary.rst rename source/Installation/{Rolling => }/Fedora-Development-Setup.rst (100%) delete mode 100644 source/Installation/Foxy.rst delete mode 100644 source/Installation/Foxy/Fedora-Development-Setup.rst delete mode 100644 source/Installation/Foxy/Linux-Development-Setup.rst delete mode 100644 source/Installation/Foxy/Linux-Install-Binary.rst delete mode 100644 source/Installation/Foxy/Linux-Install-Debians.rst delete mode 100644 source/Installation/Foxy/Windows-Development-Setup.rst delete mode 100644 source/Installation/Foxy/Windows-Install-Binary.rst delete mode 100644 source/Installation/Foxy/macOS-Development-Setup.rst delete mode 100644 source/Installation/Foxy/macOS-Install-Binary.rst rename source/Installation/{Rolling => }/Linux-Development-Setup.rst (97%) rename source/Installation/{Rolling => }/Linux-Install-Binary.rst (97%) rename source/Installation/{Rolling => }/Linux-Install-Debians.rst (95%) delete mode 100644 source/Installation/Rolling.rst rename source/Installation/{_Install-Types.rst => Summary.rst} (64%) rename source/Installation/{Rolling => }/Windows-Development-Setup.rst (98%) rename source/Installation/{Rolling => }/Windows-Install-Binary.rst (99%) rename source/Installation/{Rolling => }/macOS-Development-Setup.rst (99%) rename source/Installation/{Rolling => }/macOS-Install-Binary.rst (99%) create mode 100644 source/_templates/page.html create mode 100644 source/_templates/versioning.html diff --git a/.travis.yml b/.travis.yml index c17f235418b..77571f37793 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ os: linux install: - pip3 install doc8 sphinx - pip3 install git+https://github.com/osrf/sphinx-tabs + - pip3 install sphinx_multiversion script: - make html 2> stderr.log diff --git a/conf.py b/conf.py index fed9b8ad373..8406be95b76 100644 --- a/conf.py +++ b/conf.py @@ -16,10 +16,13 @@ # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # -import os +import sys, os import itertools from docutils.parsers.rst import Directive +sys.path.append(os.path.abspath('./sphinx-multiversion')) + + # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # @@ -66,7 +69,7 @@ # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -extensions = ['sphinx.ext.intersphinx', 'sphinx_tabs.tabs'] +extensions = ['sphinx.ext.intersphinx', 'sphinx_tabs.tabs', "sphinx_multiversion"] # Intersphinx mapping @@ -85,7 +88,26 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'alabaster' +#html_theme = 'alabaster' + +templates_path = [ + "source/_templates", +] + +html_sidebars = { + '**': ['navigation.html', 'versioning.html'], +} + +# smv_tag_whitelist = None + +smv_branch_whitelist = r'^(rolling|foxy|eloquent|dashing)$' + + +smv_released_pattern = r'^refs/(heads|remotes/[^/]+)/(foxy|eloquent|dashing).*$' +smv_remote_whitelist = r'^(origin)$' +smv_latest_version = 'foxy' + + html_favicon = 'favicon.ico' @@ -206,6 +228,3 @@ def _missing_reference(app, env, node, contnode): def setup(app): RedirectFrom.register(app) - app.connect('missing-reference', make_router( - 'Installation', 'Installation/Eloquent' - )) diff --git a/setup.py b/setup.py new file mode 100755 index 00000000000..fc4b225fc44 --- /dev/null +++ b/setup.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import os.path +from setuptools import setup + +with open(os.path.join(os.path.dirname(__file__), "README.md")) as f: + readme = f.read() + +setup( + name="sphinx-multiversion", + description="Add support for multiple versions to sphinx", + long_description=readme, + long_description_content_type="text/markdown", + classifiers=[ + "License :: OSI Approved :: BSD License", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", + ], + author="Jan Holthuis", + author_email="holthuis.jan@googlemail.com", + url="https://holzhaus.github.io/sphinx-multiversion/", + version="0.2.4", + install_requires=["sphinx >= 2.1"], + license="BSD", + packages=["sphinx_multiversion"], + entry_points={ + "console_scripts": ["sphinx-multiversion=sphinx_multiversion:main",], + }, +) diff --git a/source/Concepts.rst b/source/Concepts.rst index e5d80c879a8..fd9a0c7d465 100644 --- a/source/Concepts.rst +++ b/source/Concepts.rst @@ -80,7 +80,7 @@ It can be summarized as follows: Nodes will only establish connections with other nodes if they have compatible `Quality of Service <../Tutorials/Quality-of-Service>` settings. -Take the `talker-listener demo ` for example. +Take the `talker-listener demo ` for example. Running the C++ talker node in one terminal will publish messages on a topic, and the Python listener node running in another terminal will subscribe to messages on the same topic. diff --git a/source/Contributing/Build-Cop-and-Build-Farmer-Guide.rst b/source/Contributing/Build-Cop-and-Build-Farmer-Guide.rst index 9b2020e7b1f..a93c0839415 100644 --- a/source/Contributing/Build-Cop-and-Build-Farmer-Guide.rst +++ b/source/Contributing/Build-Cop-and-Build-Farmer-Guide.rst @@ -133,7 +133,7 @@ In each case different actions should be taken by the build cop: * Important failures: - * Failure should be reported on the PR introducing it by tagging the submitter + the reviewer the +1’d it. + * Failure should be reported on the PR introducing it by tagging the submitter + the reviewer that +1’d it. * Submitter has to either: * Address it the same week @@ -152,7 +152,7 @@ Tips * This is particularly useful for external repos such as Fast RTPS where old commits may get pushed to the master branch overnight, and are difficult to spot in the GitHub UI. -* Times displayed at the top of jenkins jobs are in UTC. You can convert the times with e.g.: +* Times displayed at the top of Jenkins jobs are in UTC. You can convert the times with e.g.: * https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=when+it's+9:25:12+PM+UTC+time+pst @@ -210,7 +210,7 @@ Build Farmer Tasks * Rationale - * Anybody logging into the machine need to know that no one is working on it + * Anybody logging into the machine needs to know that no one is working on it * If the machine reboots the machine needs to be in an operational state without local changes * Making sure install instructions are up to date @@ -250,7 +250,7 @@ If a node goes off-line: * For machines with VNC, you should try that first because many failures can be due to pop-up windows or required updates -* If you don’t have any pop-ups and relaunching the jenkins client doesn’t fix it, then you'll have to start troubleshooting. +* If you don’t have any pop-ups and relaunching the Jenkins client doesn’t fix it, then you'll have to start troubleshooting. * Looking at configuration difference between the nodes may be useful (java version, pip freeze, etc.) * For Linux nodes that have gone off-line (e.g. because of a reboot), they can be reconnected through the Jenkins web interface of that node diff --git a/source/Installation.rst b/source/Installation.rst index 79fb12009fa..029331657df 100644 --- a/source/Installation.rst +++ b/source/Installation.rst @@ -7,11 +7,15 @@ Installation :hidden: :glob: - Installation/Crystal - Installation/Dashing - Installation/Eloquent - Installation/Foxy - Installation/Rolling + Installation/Summary + Installation/Linux-Development-Setup + Installation/Linux-Install-Binary + Installation/Linux-Install-Debians + Installation/macOS-Development-Setup + Installation/macOS-Install-Binary + Installation/Windows-Development-Setup + Installation/Windows-Install-Binary + Installation/Fedora-Development-Setup Installation/Latest-Development-Setup Installation/Maintaining-a-Source-Checkout Installation/Prerelease-Testing @@ -26,13 +30,13 @@ We recommend using the most recent release available when possible. Select your ROS distribution ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -+---------------------------------------------------+--------------------------------------------------+------------------------------------------+ -| `ROS 2 Dashing Diademata ` | `ROS 2 Eloquent Elusor ` | `ROS 2 Foxy Fitzroy ` | -+---------------------------------------------------+--------------------------------------------------+------------------------------------------+ -| Released May 2019 | Released November 2019 | Released June 2020 | -+---------------------------------------------------+--------------------------------------------------+------------------------------------------+ -| Supported until May 2021 | Supported until November 2020 | Supported until May 2023 | -+---------------------------------------------------+--------------------------------------------------+------------------------------------------+ ++---------------------------------------------------------------------+--------------------------------------------------------------------+------------------------------------------------------------+ +| `ROS 2 Dashing Diademata <../dashing/Installation/Summary.html>`__ | `ROS 2 Eloquent Elusor <../eloquent/Installation/Summary.html>`__ | `ROS 2 Foxy Fitzroy <../foxy/Installation/Summary.html>`__ | ++---------------------------------------------------------------------+--------------------------------------------------------------------+------------------------------------------------------------+ +| Released May 2019 | Released November 2019 | Released June 2020 | ++---------------------------------------------------------------------+--------------------------------------------------------------------+------------------------------------------------------------+ +| Supported until May 2021 | Supported until November 2020 | Supported until May 2023 | ++---------------------------------------------------------------------+--------------------------------------------------------------------+------------------------------------------------------------+ For more detailed descriptions of each release see `REP-2000 `_ @@ -50,4 +54,3 @@ General users with no special considerations should use the most recent release Contributing to ROS 2 core? ^^^^^^^^^^^^^^^^^^^^^^^^^^^ If you plan to contribute directly to ROS 2 core packages, you can install the `latest development from source ` which shares installation instructions with the `Rolling distribution `. - diff --git a/source/Installation/Crystal.rst b/source/Installation/Crystal.rst deleted file mode 100644 index 1f65479d70e..00000000000 --- a/source/Installation/Crystal.rst +++ /dev/null @@ -1,36 +0,0 @@ -Installing ROS 2 Crystal and earlier -==================================== - -.. toctree:: - :hidden: - :glob: - - Crystal/* - -Binary packages ---------------- - -We provide ROS 2 binary packages for the following platforms: - -* Linux (Ubuntu Xenial(16.04) and Ubuntu Bionic(18.04)) - - * `Debian packages ` - * `"fat" archive ` - -* `macOS ` -* `Windows ` - - -.. _building-from-source: - -Building from source --------------------- - -We support building ROS 2 from source on the following platforms: - - -* `Linux ` -* `macOS ` -* `Windows ` - -.. include:: _Install-Types.rst diff --git a/source/Installation/Crystal/Fedora-Development-Setup.rst b/source/Installation/Crystal/Fedora-Development-Setup.rst deleted file mode 100644 index 53bc24833b3..00000000000 --- a/source/Installation/Crystal/Fedora-Development-Setup.rst +++ /dev/null @@ -1,19 +0,0 @@ -Building ROS 2 on Fedora Linux -============================== - -How to setup the development environment? ------------------------------------------ - -First install a bunch of dependencies: - -.. code-block:: bash - - $ sudo dnf install cppcheck cmake libXaw-devel opencv-devel poco-devel poco-foundation python3-empy python3-devel python3-nose python3-pip python3-pyparsing python3-pytest python3-pytest-cov python3-pytest-runner python3-setuptools python3-yaml tinyxml-devel eigen3-devel python3-pydocstyle python3-pyflakes python3-coverage python3-mock python3-pep8 uncrustify python3-argcomplete python3-flake8 python3-flake8-import-order asio-devel tinyxml2-devel libyaml-devel python3-lxml - -Then install vcstool from pip: - -.. code-block:: bash - - $ pip3 install vcstool - -With this done, you can follow the rest of the `instructions ` to fetch and build ROS 2. diff --git a/source/Installation/Crystal/Linux-Development-Setup.rst b/source/Installation/Crystal/Linux-Development-Setup.rst deleted file mode 100644 index 34c0897222c..00000000000 --- a/source/Installation/Crystal/Linux-Development-Setup.rst +++ /dev/null @@ -1,231 +0,0 @@ -Building ROS 2 on Linux -======================= - -.. contents:: Table of Contents - :depth: 2 - :local: - - -System requirements -------------------- -Target platforms for Crystal Clemmys are (see `REP 2000 `__): - -- Tier 1: Ubuntu Linux - Bionic Beaver (18.04) 64-bit -- Tier 2: Ubuntu Linux - Xenial Xerus (16.04) 64-bit - -Tier 3 platforms (not actively tested or supported) include: - -- Debian Linux - Stretch (9) -- Fedora 26, see `alternate instructions ` -- Arch Linux, see `alternate instructions `__ -- OpenEmbedded / webOS OSE, see `alternate instructions `__ - -System setup ------------- - -Set locale -^^^^^^^^^^ -Make sure to set a locale that supports UTF-8. -If you are in a minimal environment such as a Docker container, the locale may be set to something minimal like POSIX. - -The following is an example for setting locale. -However, it should be fine if you're using a different UTF-8 supported locale. - -.. code-block:: bash - - 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 - -Add the ROS 2 apt repository -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. include:: ../_Apt-Repositories.rst - -Install development tools and ROS tools -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: bash - - sudo apt update && sudo apt install -y \ - build-essential \ - cmake \ - git \ - python3-colcon-common-extensions \ - python3-lark-parser \ - 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 - -.. _linux-dev-get-ros2-code: - -Get ROS 2 code --------------- - -Create a workspace and clone all repos: - -.. code-block:: bash - - mkdir -p ~/ros2_crystal/src - cd ~/ros2_crystal - wget https://raw.githubusercontent.com/ros2/ros2/crystal/ros2.repos - vcs import src < ros2.repos - - -Install dependencies using rosdep ---------------------------------- - -.. code-block:: bash - - sudo rosdep init - rosdep update - # [Ubuntu 18.04] - rosdep install --from-paths src --ignore-src --rosdistro crystal -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 rti-connext-dds-5.3.1 urdfdom_headers" - # [Ubuntu 16.04] - rosdep install --from-paths src --ignore-src --rosdistro crystal -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 python3-lark-parser rti-connext-dds-5.3.1 urdfdom_headers" - python3 -m pip install -U lark-parser - -Install additional DDS implementations (optional) -------------------------------------------------- - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the code in the workspace -------------------------------- - -Note: to build the ROS 1 bridge, read the `ros1_bridge instructions `__. - -More info on working with a ROS workspace can be found in `this tutorial `. - -.. code-block:: bash - - cd ~/ros2_crystal/ - # On Ubuntu Linux Bionic Beaver 18.04 - colcon build --symlink-install - # On Ubuntu Linux Xenial Xerus 16.04 - colcon build --symlink-install --packages-ignore qt_gui_cpp rqt_gui_cpp - -Note: if you are having trouble compiling all examples and this is preventing you from completing a successful build, you can use ``AMENT_IGNORE`` in the same manner as `CATKIN_IGNORE `__ 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 ``$ touch AMENT_IGNORE`` in the ``cam2image`` demo directory to leave it out of the build process. - -Optionally install all packages into a combined directory (rather than each package in a separate subdirectory). -On Windows due to limitations of the length of environment variables you should use this option when building workspaces with many (~ >> 100 packages). - -Also, if you have already installed ROS 2 from Debian make sure that you run the ``build`` command in a fresh environment. You may want to make sure that you do not have ``source /opt/ros/${ROS_DISTRO}/setup.bash`` in your ``.bashrc``. - - -.. code-block:: bash - - colcon build --symlink-install --merge-install - -Afterwards source the ``local_setup.*`` from the ``install`` folder. - -Environment setup ------------------ - -Source the setup script -^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - . ~/ros2_crystal/install/setup.bash - -Install argcomplete (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -ROS 2 command line tools use argcomplete to autocompletion. - -So if you want autocompletion, installing argcomplete is necessary. - -.. code-block:: bash - - sudo apt install python3-argcomplete - -Try some examples ------------------ - -In one terminal, source the setup file and then run a C++ ``talker``\ : - -.. code-block:: bash - - . ~/ros2_crystal/install/local_setup.bash - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``\ : - -.. code-block:: bash - - . ~/ros2_crystal/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! - -See the `tutorials and demos ` for other things to try. - -Alternate compilers -------------------- - -Using a different compiler besides gcc to compile ROS 2 is easy. If you set the environment variables ``CC`` and ``CXX`` to executables for a working C and C++ compiler, respectively, and retrigger CMake configuration (by using ``--force-cmake-config`` or by deleting the packages you want to be affected), CMake will reconfigure and use the different compiler. - -Clang -^^^^^ - -To configure CMake to detect and use Clang: - -.. code-block:: bash - - sudo apt install clang - export CC=clang - export CXX=clang++ - colcon build --cmake-force-configure - -TODO: using ThreadSanitizer, MemorySanitizer - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Crystal install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_crystal diff --git a/source/Installation/Crystal/Linux-Install-Binary.rst b/source/Installation/Crystal/Linux-Install-Binary.rst deleted file mode 100644 index c4029558c56..00000000000 --- a/source/Installation/Crystal/Linux-Install-Binary.rst +++ /dev/null @@ -1,174 +0,0 @@ -Installing ROS 2 on Linux -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on Linux from a pre-built binary package. - -There are also `Debian packages ` available. - -System Requirements -------------------- - -We support Ubuntu Linux Bionic Beaver (18.04) and Ubuntu Xenial Xerus (16.04) on 64-bit x86 and 64-bit ARM. - -Note: Ardent and beta versions supported Ubuntu Xenial Xerus 16.04. - -Add the ROS 2 apt repository ----------------------------- - -.. include:: ../_Apt-Repositories.rst - -Downloading ROS 2 ------------------ - - -* Go `the releases page `_ -* Download the latest package for Linux; let's assume that it ends up at ``~/Downloads/ros2-crystal-linux-x86_64.tar.bz2``. - - * Note: there may be more than one binary download option which might cause the file name to differ. - -* - Unpack it: - - .. code-block:: bash - - mkdir -p ~/ros2_crystal - cd ~/ros2_crystal - tar xf ~/Downloads/ros2-crystal-linux-x86_64.tar.bz2 - -Installing and initializing rosdep ----------------------------------- - -.. code-block:: bash - - sudo apt update - sudo apt install -y python-rosdep - sudo rosdep init # if already initialized you may continue - rosdep update - - -Installing the missing dependencies ------------------------------------ - -Set your rosdistro according to the release you downloaded. - -.. code-block:: bash - - CHOOSE_ROS_DISTRO=crystal # or bouncy - rosdep install --from-paths ros2-linux/share --ignore-src --rosdistro $CHOOSE_ROS_DISTRO -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 osrf_testing_tools_cpp poco_vendor rmw_connext_cpp rosidl_typesupport_connext_c rosidl_typesupport_connext_cpp rti-connext-dds-5.3.1 tinyxml_vendor tinyxml2_vendor urdfdom urdfdom_headers" - -#. *Optional*\ : if you want to use the ROS 1<->2 bridge, then you must also install ROS 1. - Follow the normal install instructions: https://wiki.ros.org/kinetic/Installation/Ubuntu - -Installing the python3 libraries -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: bash - - sudo apt install -y libpython3-dev - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Environment setup ------------------ - -Sourcing the setup script -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - . ~/ros2_crystal/ros2-linux/setup.bash - -Install argcomplete (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -ROS 2 command line tools use argcomplete to autocompletion. So if you want autocompletion, installing argcomplete is necessary. - -Ubuntu 18.04 -~~~~~~~~~~~~ - -.. code-block:: bash - - sudo apt install python3-argcomplete - -Ubuntu 16.04 (argcomplete >= 0.8.5) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To install ``argcomplete`` on Ubuntu 16.04 (Xenial), you'll need to use pip, because the version available through ``apt`` will not work due to a bug in that version of ``argcomplete``: - -.. code-block:: bash - - sudo apt install python3-pip - sudo pip3 install argcomplete - -Try some examples ------------------ - -In one terminal, source the setup file and then run a C++ ``talker``: - -.. code-block:: bash - - . ~/ros2_crystal/ros2-linux/setup.bash - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``: - -.. code-block:: bash - - . ~/ros2_crystal/ros2-linux/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! - -See the `tutorials and demos ` for other things to try. - -Using the ROS 1 bridge ----------------------- - -If you have ROS 1 installed, you can try the ROS 1 bridge, by first sourcing your ROS 1 setup file. -We'll assume that it is ``/opt/ros/melodic/setup.bash`` in the following. - -If you haven't already, start a roscore: - -.. code-block:: bash - - . /opt/ros/melodic/setup.bash - roscore - - -In another terminal, start the bridge: - -.. code-block:: bash - - . /opt/ros/melodic/setup.bash - . ~/ros2_crystal/ros2-linux/setup.bash - ros2 run ros1_bridge dynamic_bridge - -For more information on the bridge, read the `tutorial `__. - -Build your own packages ------------------------ - -If you would like to build your own packages, refer to the tutorial `"Using Colcon to build packages" `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Crystal install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_crystal diff --git a/source/Installation/Crystal/Linux-Install-Debians.rst b/source/Installation/Crystal/Linux-Install-Debians.rst deleted file mode 100644 index 0dbe2983bd6..00000000000 --- a/source/Installation/Crystal/Linux-Install-Debians.rst +++ /dev/null @@ -1,178 +0,0 @@ -Installing ROS 2 via Debian Packages -==================================== - -.. contents:: Table of Contents - :depth: 2 - :local: - -Debian packages for ROS 2 Crystal (the latest release) and ROS 2 Bouncy are available for Ubuntu Bionic; packages for ROS 2 Ardent are available for Ubuntu Xenial. - -Resources ---------- - -* Status Pages: - - * ROS 2 Crystal (Ubuntu Bionic): `amd64 `__\ , `arm64 `__ - * ROS 2 Bouncy (Ubuntu Bionic): `amd64 `__\ , `arm64 `__ - * ROS 2 Ardent (Ubuntu Xenial): `amd64 `__\ , `arm64 `__ -* `Jenkins Instance `__ -* `Repositories `__ - -.. _linux-install-debians-setup-sources: - -Setup Locale ------------- -Make sure you have a locale which supports ``UTF-8``. -If you are in a minimal environment, such as a docker container, the locale may be something minimal like POSIX. -We test with the following settings. -It should be fine if you're using a different UTF-8 supported locale. - -.. code-block:: bash - - 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 - -Setup Sources -------------- - -.. include:: ../_Apt-Repositories.rst - -Install ROS 2 packages ----------------------- - -First set an environment variable for the ROS 2 release you want to install so it can be used in other commands. - -.. code-block:: bash - - export CHOOSE_ROS_DISTRO=crystal # or bouncy or ardent - sudo apt update - -Desktop Install (Recommended): ROS, RViz, demos, tutorials. - -.. code-block:: bash - - sudo apt install ros-$CHOOSE_ROS_DISTRO-desktop - -ROS-Base Install (Bare Bones): Communication libraries, message packages, command line tools. No GUI tools. - -.. code-block:: bash - - sudo apt install ros-$CHOOSE_ROS_DISTRO-ros-base - -See specific sections below for how to also install the :ref:`ros1_bridge `, :ref:`TurtleBot packages `, or :ref:`alternative RMW packages `. - -Environment setup ------------------ - -Sourcing the setup script -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - source /opt/ros/crystal/setup.bash - -Install argcomplete (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -ROS 2 command line tools use argcomplete to autocompletion. So if you want autocompletion, installing argcomplete is necessary. - -Ubuntu 18.04 -~~~~~~~~~~~~ - -.. code-block:: bash - - sudo apt install python3-argcomplete - -Ubuntu 16.04 (argcomplete >= 0.8.5) -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -To install ``argcomplete`` on Ubuntu 16.04 (Xenial), you'll need to use pip, because the version available through ``apt`` will not work due to a bug in that version of ``argcomplete``: - -.. code-block:: bash - - sudo apt install python3-pip - sudo pip3 install argcomplete - -Try some examples ------------------ - -In one terminal, set up the ROS 2 environment as described above and then run a C++ ``talker``: - -.. code-block:: bash - - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``: - -.. code-block:: 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! - -See the `tutorials and demos ` for other things to try. - -.. _linux-install-additional-rmw-implementations: - -Install additional RMW implementations (optional) -------------------------------------------------- - -By default the RMW implementation ``Fast RTPS`` is used. -If using Ardent OpenSplice is also installed. - -To install support for OpenSplice or RTI Connext on Bouncy: - -.. code-block:: bash - - sudo apt update - sudo apt install ros-$CHOOSE_ROS_DISTRO-rmw-opensplice-cpp # for OpenSplice - sudo apt install ros-$CHOOSE_ROS_DISTRO-rmw-connext-cpp # for RTI Connext (requires license agreement) - -By setting the environment variable ``RMW_IMPLEMENTATION=rmw_opensplice_cpp`` you can switch to use OpenSplice instead. -For ROS 2 releases Bouncy and newer, ``RMW_IMPLEMENTATION=rmw_connext_cpp`` can also be selected to use RTI Connext. - -You can also install `the Connext DDS-Security plugins <../DDS-Implementations/Install-Connext-Security-Plugins>` or use the `University, purchase or evaluation <../DDS-Implementations/Install-Connext-University-Eval>` options for RTI Connext. - -.. _linux-ros1-add-pkgs: - -Install additional packages using ROS 1 packages ------------------------------------------------- - -The ``ros1_bridge`` as well as the TurtleBot demos are using ROS 1 packages. -To be able to install them please start by adding the ROS 1 sources as documented `here `__. - -If you're using Docker for isolation you can start with the image ``ros:melodic`` or ``osrf/ros:melodic-desktop`` (or Kinetic if using Ardent). -This will also avoid the need to setup the ROS sources as they will already be integrated. - -Now you can install the remaining packages: - -.. code-block:: bash - - sudo apt update - sudo apt install ros-$CHOOSE_ROS_DISTRO-ros1-bridge - -The turtlebot2 packages are available in Bouncy but not Crystal. - -.. code-block:: bash - - sudo apt install ros-$CHOOSE_ROS_DISTRO-turtlebot2-* - -Build your own packages ------------------------ - -If you would like to build your own packages, refer to the tutorial `"Using Colcon to build packages" `. - -Uninstall ---------- - -If you need to uninstall ROS 2 or switch to a source-based install once you -have already installed from binaries, run the following command: - -.. code-block:: bash - - sudo apt remove ros-crystal-* && sudo apt autoremove diff --git a/source/Installation/Crystal/Windows-Development-Setup.rst b/source/Installation/Crystal/Windows-Development-Setup.rst deleted file mode 100644 index 99aa4486106..00000000000 --- a/source/Installation/Crystal/Windows-Development-Setup.rst +++ /dev/null @@ -1,378 +0,0 @@ -Building ROS 2 on Windows -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This guide is about how to setup a development environment for ROS 2 on Windows. - -Prerequisites -------------- - -First follow the steps for `Installing Prerequisites ` on the Binary Installation page. - -Stop and return here when you reach the "Downloading ROS 2" section. - -Additional prerequisites -^^^^^^^^^^^^^^^^^^^^^^^^ - -When building from source you'll need a few additional prerequisites installed. - -Install additional prerequisites from Chocolatey -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -First install git: - -.. code-block:: bash - - > choco install -y git - -You will need to append the Git cmd folder ``C:\Program Files\Git\cmd`` to the PATH (you can do this by clicking the Windows icon, typing "Environment Variables", then clicking on "Edit the system environment variables". -In the resulting dialog, click "Environment Variables", the click "Path" on the bottom pane, then click "Edit" and add the path). - -Then install ``patch``: - -.. code-block:: bash - - > choco install -y patch - -You may need to close the cmd prompt and open a new one, but at this point you should be able to run ``git``\ , ``python``\ , ``cmake``\ , and ``patch.exe --version``. - -Install developer tools ------------------------ - -Now we are ready to install some our tools that we use to help in developing ROS 2. - -Let's start with ``vcstool``: - -.. code-block:: bash - - > pip install -U vcstool - -You can test it out by just running ``vcs`` (you should be able to do this in the same cmd prompt). - -Next, install ``colcon``: - -.. code-block:: bash - - > pip install -U colcon-common-extensions - -You can test it out by just running ``colcon`` (you should be able to do this in the same cmd prompt). - -Also, you should install ``curl``: - -.. code-block:: bash - - > choco install -y curl - -Install dependencies --------------------- - -Next install the latest version of ``setuptools`` and ``pip``: - -.. code-block:: bash - - > -m pip install -U setuptools pip - -Where ``PATH_TO_PYTHON_EXECUTABLE`` looks like: ``c:\python37\python.exe`` - -Then you can continue installing other Python dependencies: - -.. code-block:: bash - - > pip install -U catkin_pkg EmPy lark-parser pyparsing pyyaml - -Next install testing tools like ``pytest`` and others: - -.. code-block:: bash - - > pip install -U pytest coverage mock - -Next install linters and checkers like ``flake8`` and others: - -.. code-block:: bash - - > pip install -U flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes pep8 pydocstyle - -Next install cppcheck: - -.. code-block:: bash - - > choco install -y cppcheck - -You will need to add ``C:\Program Files\Cppcheck`` to the ``PATH``. - -Next install xmllint: - -* Download the `64 bit binary archives `__ of ``libxml2`` (and its dependencies ``iconv`` and ``zlib``) from https://www.zlatkovic.com/projects/libxml/ -* Unpack all archives into e.g. ``C:\xmllint`` -* Add ``C:\xmllint\bin`` to the ``PATH``. - -Install Qt5 -^^^^^^^^^^^ - -This section is only required if you are building rviz, but it comes with our default set of sources, so if you don't know, then assume you are building it. - -First get the installer from Qt's website: - -https://www.qt.io/download - -Select the Open Source version and then the ``Qt Online Installer for Windows``. - -Run the installer and install Qt5. -We recommend you install it to the default location of ``C:\Qt``, but if you choose somewhere else, make sure to update the paths below accordingly. -When selecting components to install, the only thing you absolutely need for bouncy and later is the appropriate MSVC 64-bit component under the ``Qt`` -> ``Qt 5.10.0`` tree. -We're using ``5.10.0`` as of the writing of this document and that's what we recommend since that's all we test on Windows, but later version will probably work too. -For bouncy and later, be sure to select ``MSVC 2017 64-bit``. For ardent use ``MSVC 2015 64-bit``. -After that, the default settings are fine. - -Finally, set the ``Qt5_DIR`` environment variable in the ``cmd.exe`` where you intend to build so that CMake can find it: - -.. code-block:: bash - - > set Qt5_DIR=C:\Qt\5.10.0\msvc2017_64 - : You could set it permanently with ``setx -m Qt5_DIR C:\Qt\5.10.0\msvc2017_64`` instead, but that requires Administrator. - -.. note:: - - This path might change based on which MSVC version you're using or if you installed it to a different directory. - -RQt dependencies -~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - > pip install -U pydot PyQt5 - -Get the ROS 2 code ------------------- - -Now that we have the development tools we can get the ROS 2 source code. - -First setup a development folder, for example ``C:\dev\ros2_crystal``: - -.. code-block:: bash - - > md \dev\ros2_crystal\src - > cd \dev\ros2_crystal - -Get the ``ros2.repos`` file which defines the repositories to clone from: - -.. code-block:: bash - - # CMD - > curl -sk https://raw.githubusercontent.com/ros2/ros2/crystal/ros2.repos -o ros2.repos - - # PowerShell - > curl https://raw.githubusercontent.com/ros2/ros2/crystal/ros2.repos -o ros2.repos - -Next you can use ``vcs`` to import the repositories listed in the ``ros2.repos`` file: - -.. code-block:: bash - - # CMD - > vcs import src < ros2.repos - - # PowerShell - > vcs import --input ros2.repos src - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the ROS 2 Code --------------------- - -.. _windows-dev-build-ros2: - -To build ROS 2 you will need a Visual Studio Command Prompt (usually titled "x64 Native Tools Command Prompt for VS 2017" for bouncy and later or "x64 Native Tools Command Prompt for VS 2015" for ardent and earlier) running as Administrator. - -Fast RTPS is bundled with the ROS 2 source and will always be built unless you put an ``AMENT_IGNORE`` file in the ``src\eProsima`` folder. - -To build the ``\dev\ros2_crystal`` folder tree: - -.. code-block:: bash - - > colcon build --merge-install - -.. note:: - - We're using ``--merge-install`` here to avoid a ``PATH`` variable that is too long at the end of the build. If you're adapting these instructions to build a smaller workspace then you might be able to use the default behavior which is isolated install, i.e. where each package is installed to a different folder. - -.. note:: - - If you are doing a debug build use ``python_d path\to\colcon_executable`` ``colcon``. - See `Extra stuff for debug mode`_ for more info on running Python code in debug builds on Windows. - -Environment setup ------------------ - -Start a command shell and source the ROS 2 setup file to set up the workspace: - -.. code-block:: bash - - > call C:\dev\ros2_crystal\install\local_setup.bat - -This will automatically set up the environment for any DDS vendors that support was built for. - -It is normal that the previous command, if nothing else went wrong, outputs "The system cannot find the path specified." exactly once. - -Test and run ------------- - -Note that the first time you run any executable you will have to allow access to the network through a Windows Firewall popup. - -You can run the tests using this command: - -.. code-block:: bash - - > colcon test --merge-install - -.. note:: - - ``--merge-install`` should only be used if it was also used in the build step. - -Afterwards you can get a summary of the tests using this command: - -.. code-block:: bash - - > colcon test-result - -To run the examples, first open a clean new ``cmd.exe`` and set up the workspace by sourcing the ``local_setup.bat`` file. -Then, run a C++ ``talker``\ : - -.. code-block:: bash - - > call install\local_setup.bat - > ros2 run demo_nodes_cpp talker - -In a separate shell you can do the same, but instead run a Python ``listener``\ : - -.. code-block:: bash - - > call install\local_setup.bat - > 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! - -See the `tutorials and demos ` for other things to try. - -.. note:: - - It is not recommended to build in the same cmd prompt that you've sourced the ``local_setup.bat``. - -Extra stuff for Debug mode --------------------------- - -If you want to be able to run all the tests in Debug mode, you'll need to install a few more things: - - -* To be able to extract the Python source tarball, you can use PeaZip: - -.. code-block:: bash - - > choco install -y peazip - - -* You'll also need SVN, since some of the Python source-build dependencies are checked out via SVN: - -.. code-block:: bash - - > choco install -y svn hg - - -* You'll need to quit and restart the command prompt after installing the above. -* Get and extract the Python 3.7.4 source from the ``tgz``: - - * https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz - * To keep these instructions concise, please extract it to ``C:\dev\Python-3.7.4`` - -* Now, build the Python source in debug mode from a Visual Studio command prompt: - -.. code-block:: bash - - > cd C:\dev\Python-3.7.4\PCbuild - > get_externals.bat - > build.bat -p x64 -d - - -* Finally, copy the build products into the Python37 installation directories, next to the Release-mode Python executable and DLL's: - -.. code-block:: bash - - > cd C:\dev\Python-3.7.4\PCbuild\amd64 - > copy python_d.exe C:\Python37 /Y - > copy python37_d.dll C:\Python37 /Y - > copy python3_d.dll C:\Python37 /Y - > copy python37_d.lib C:\Python37\libs /Y - > copy python3_d.lib C:\Python37\libs /Y - > for %I in (*_d.pyd) do copy %I C:\Python37\DLLs /Y - - -* Now, from a fresh command prompt, make sure that ``python_d`` works: - -.. code-block:: bash - - > python_d - > import _ctypes - - -* To create executables python scripts(.exe), python_d should be used to invoke colcon - -.. code-block:: bash - - > python_d path\to\colcon_executable build - -* Hooray, you're done! - -SROS2 Debug Mode -^^^^^^^^^^^^^^^^ - -In order to use SROS2 in Debug mode on Windows, a corresponding debug build for ``lxml`` must be installed. - -* A pre-built Python wheel binary for ``lxml`` debug is provided, to install: - -.. code-block:: bash - - > pip install https://github.com/ros2/ros2/releases/download/lxml-archives/lxml-4.3.2-cp37-cp37dm-win_amd64.whl - -* To verify installation - -.. code-block:: bash - - > python_d - > from lxml import etree - -* No import errors should appear. - -* Note, in order to switch back to release, reinstall the release wheel of lxml via pip: - -.. code-block:: bash - - > pip install lxml - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Crystal install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rmdir /s /q \ros2_crystal diff --git a/source/Installation/Crystal/Windows-Install-Binary.rst b/source/Installation/Crystal/Windows-Install-Binary.rst deleted file mode 100644 index 4eb51c32409..00000000000 --- a/source/Installation/Crystal/Windows-Install-Binary.rst +++ /dev/null @@ -1,236 +0,0 @@ -Installing ROS 2 on Windows -=========================== - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on Windows from a pre-built binary package. - -System requirements -------------------- - -Only Windows 10 is supported. - -.. _windows-install-binary-installing-prerequisites: - -Installing prerequisites ------------------------- - -Install Chocolatey -^^^^^^^^^^^^^^^^^^ - -Chocolatey is a package manager for Windows, install it by following their installation instructions: - -https://chocolatey.org/ - -You'll use Chocolatey to install some other developer tools. - -Install Python -^^^^^^^^^^^^^^ - -Open a Command Prompt and type the following to install Python via Chocolatey: - -.. code-block:: bash - - > choco install -y python - -Install OpenSSL -^^^^^^^^^^^^^^^ - -Download an OpenSSL installer from `this page `__. Scroll to the bottom of the page and download *Win64 OpenSSL v1.0.2*. Don't download the Win32 or Light versions. - -Run the installer with default parameters. The following commands assume you used the default installation directory: - -* ``setx -m OPENSSL_CONF C:\OpenSSL-Win64\bin\openssl.cfg`` - -You will need to append the OpenSSL-Win64 bin folder to your PATH. -You can do this by clicking the Windows icon, typing "Environment Variables", then clicking on "Edit the system environment variables". -In the resulting dialog, click "Environment Variables", then click "Path" on the bottom pane, finally click "Edit" and add the path below. - -* ``C:\OpenSSL-Win64\bin\`` - -Install Visual Studio -^^^^^^^^^^^^^^^^^^^^^ - -**A. Install Visual Studio 2015 if using Ardent or earlier** - - If you already have a paid version of Visual Studio 2015 (Professional, Enterprise), skip this step. - - Microsoft provides a free of charge version of Visual Studio 2015, named Community, which can be used to build applications that use ROS 2: - - https://www.visualstudio.com/vs/older-downloads/ - - Make sure that the Visual C++ features are installed. First choose 'Custom installation': - - .. image:: https://i.imgur.com/tUcOMOA.png - - Next check Visual C++: - - .. image:: https://i.imgur.com/yWVEUkm.png - - Ensure that the correct features will be installed: - - .. image:: https://i.imgur.com/VxdbA7G.png - - -**B. Install Visual Studio 2017 if using Bouncy or a nightly** - - If you already have a paid version of Visual Studio 2017 (Professional, Enterprise), skip this step. - -.. warning:: Visual Studio 2017 v15.8 seems to have a compiler bug preventing from building some ROS 2 packages. Please try installing an older version of Visual Studio 2017. - - Microsoft provides a free of charge version of Visual Studio 2017, named Community, which can be used to build applications that use ROS 2: - - https://visualstudio.microsoft.com/downloads/ - - Make sure that the Visual C++ features are installed. - An easy way to make sure they're installed is to select the ``Desktop development with C++`` workflow during the install. - - .. image:: https://i.imgur.com/2h0IxCk.png - - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Install OpenCV -^^^^^^^^^^^^^^ - -Some of the examples require OpenCV to be installed. - -You can download a precompiled version of OpenCV 3.4.1 from https://github.com/ros2/ros2/releases/download/opencv-archives/opencv-3.4.1-vc15.VS2017.zip - -Assuming you unpacked it to ``C:\opencv``\ , type the following on a Command Prompt (requires Admin privileges): - -.. code-block:: bash - - setx -m OpenCV_DIR C:\opencv - -Since you are using a precompiled ROS version, we have to tell it where to find the OpenCV libraries. You have to extend the ``PATH`` variable to ``c:\opencv\x64\vc15\bin`` - -In ardent and earlier -~~~~~~~~~~~~~~~~~~~~~ - -These releases used OpenCV 2. You can download a precompiled version of OpenCV 2.4.13.2 from https://github.com/ros2/ros2/releases/download/release-beta2/opencv-2.4.13.2-vc14.VS2015.zip - -Since you are using a precompiled ROS version, we have to tell it where to find the OpenCV libraries. Assuming you were extracting OpenCV to ``c:\`` you have to extend your ``PATH`` variable to ``c:\opencv-2.4.13.2-vc14.VS2015\x64\vc14\bin`` - -Install dependencies -^^^^^^^^^^^^^^^^^^^^ - -There are a few dependencies not available in the Chocolatey package database. In order to ease the manual installation process, we provide the necessary Chocolatey packages. - -As some chocolatey packages rely on it, we start by installing CMake - -.. code-block:: bash - - > choco install -y cmake - -You will need to append the CMake bin folder ``C:\Program Files\CMake\bin`` to your PATH. - -Please download these packages from `this `__ GitHub repository. - - -* asio.1.12.1.nupkg -* eigen-3.3.4.nupkg -* tinyxml-usestl.2.6.2.nupkg -* tinyxml2.6.0.0.nupkg -* log4cxx.0.10.0.nupkg - -Once these packages are downloaded, open an administrative shell and execute the following command: - -.. code-block:: bash - - > choco install -y -s asio eigen tinyxml-usestl tinyxml2 log4cxx - -Please replace ```` with the folder you downloaded the packages to. - -You must also install some python dependencies for command-line tools: - -.. code-block:: bash - - python -m pip install -U catkin_pkg empy lark-parser opencv-python pyparsing pyyaml setuptools - -RQt dependencies -~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - python -m pip install -U pydot PyQt5 - -SROS2 dependencies -~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - python -m pip install -U lxml - -Downloading ROS 2 ------------------ - - -* Go the releases page: https://github.com/ros2/ros2/releases -* Download the latest package for Windows, e.g., ``ros2-package-windows-AMD64.zip``. - - * Notes: - - * there may be more than one binary download option which might cause the file name to differ. - * [ROS Bouncy only] To download the ROS 2 debug libraries you'll need to download ``ros2-bouncy-windows-Debug-AMD64.zip`` - -* Unpack the zip file somewhere (we'll assume ``C:\dev\ros2_crystal``\ ). - - * Note (Ardent and earlier): There seems to be an issue where extracting the zip file with 7zip causes RViz to crash on startup. Extract the zip file using the Windows explorer to prevent this. - -Environment setup ------------------ - -Start a command shell and source the ROS 2 setup file to set up the workspace: - -.. code-block:: bash - - > call C:\dev\ros2_crystal\local_setup.bat - -Try some examples ------------------ - -In a command shell, set up the ROS 2 environment as described above and then run a C++ ``talker``\ : - -.. code-block:: bash - - > ros2 run demo_nodes_cpp talker - -Start another command shell and run a Python ``listener``\ : - -.. code-block:: 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! - -See the `tutorials and demos ` for other things to try. - -Build your own packages ------------------------ - -If you would like to build your own packages, refer to the tutorial `"Using Colcon to build packages" `. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Crystal install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rmdir /s /q \ros2_crystal diff --git a/source/Installation/Crystal/macOS-Development-Setup.rst b/source/Installation/Crystal/macOS-Development-Setup.rst deleted file mode 100644 index 8ad51e6a82b..00000000000 --- a/source/Installation/Crystal/macOS-Development-Setup.rst +++ /dev/null @@ -1,193 +0,0 @@ -.. redirect-from:: - - Installation/Crystal/OSX-Development-Setup - -Building ROS 2 on macOS -======================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -System requirements -------------------- - -We support macOS 10.12.x. - -However, some new versions like 10.13.x and some older versions like 10.11.x and 10.10.x are known to work as well. - -Install prerequisites ---------------------- - -You need the following things installed to build ROS 2: - - -#. - **Xcode** - - - * - If you don't already have it installed, install Xcode and the Command Line Tools: - - .. code-block:: bash - - xcode-select --install - -#. - **brew** *(needed to install more stuff; you probably already have this)*: - - - * Follow installation instructions at http://brew.sh/ - * - *Optional*: Check that ``brew`` is happy with your system configuration by running: - - .. code-block:: bash - - brew doctor - - Fix any problems that it identifies. - -#. - You also need a Java runtime installed, which you can get `here `__. - - -#. - Use ``brew`` to install more stuff: - - .. code-block:: bash - - brew install cmake cppcheck eigen pcre poco python3 tinyxml wget - - # install dependencies for Fast-RTPS if you are using it - brew install asio tinyxml2 - - brew install opencv - - # install dependencies for rcl_logging_log4cxx - brew install log4cxx - -#. - Install rviz dependencies - - .. code-block:: bash - - # install dependencies for Rviz - brew install qt freetype assimp - - # Add the Qt directory to the PATH and CMAKE_PREFIX_PATH - export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/usr/local/opt/qt - export PATH=$PATH:/usr/local/opt/qt/bin - -#. - Use ``python3 -m pip`` (just ``pip`` may install Python3 or Python2) to install more stuff: - - .. code-block:: bash - - python3 -m pip install argcomplete catkin_pkg colcon-common-extensions coverage empy flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes lark-parser mock nose pep8 pydocstyle pyparsing setuptools vcstool - -#. - *Optional*: if you want to build the ROS 1<->2 bridge, then you must also install ROS 1: - - - * Start with the normal install instructions: https://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source - * - When you get to the step where you call ``rosinstall_generator`` to get the source code, here's an alternate invocation that brings in just the minimum required to produce a useful bridge: - - .. code-block:: bash - - rosinstall_generator catkin common_msgs roscpp rosmsg --rosdistro kinetic --deps --wet-only --tar > kinetic-ros2-bridge-deps.rosinstall - wstool init -j8 src kinetic-ros2-bridge-deps.rosinstall - - - Otherwise, just follow the normal instructions, then source the resulting ``install_isolated/setup.bash`` before proceeding here to build ROS 2. - -Disable System Integrity Protection (SIP) ------------------------------------------ - -macOS/OS X versions >=10.11 have System Integrity Protection enabled by default. -So that SIP doesn't prevent processes from inheriting dynamic linker environment variables, such as ``DYLD_LIBRARY_PATH``, you'll need to disable it `following these instructions `__. - -Get the ROS 2 code ------------------- - -Create a workspace and clone all repos: - -.. code-block:: bash - - mkdir -p ~/ros2_crystal/src - cd ~/ros2_crystal - wget https://raw.githubusercontent.com/ros2/ros2/crystal/ros2.repos - vcs import src < ros2.repos - -Install additional DDS vendors (optional) ------------------------------------------ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the ROS 2 code --------------------- - -**Note**\ : if you are trying to build the ROS 1 <-> ROS 2 bridge, follow instead these `modified instructions `__. - -Run the ``colcon`` tool to build everything (more on using ``colcon`` in `this tutorial `): - -.. code-block:: bash - - cd ~/ros2_crystal/ - colcon build --symlink-install - -Environment setup ------------------ - -Source the ROS 2 setup file: - -.. code-block:: bash - - . ~/ros2_crystal/install/setup.bash - -This will automatically set up the environment for any DDS vendors that support was built for. - -Try some examples ------------------ - -In one terminal, set up the ROS 2 environment as described above and then run a C++ ``talker``: - -.. code-block:: bash - - . ~/ros2_crystal/install/setup.bash - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``: - -.. code-block:: bash - - . ~/ros2_crystal/install/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! - -See the `tutorials and demos ` for other things to try. - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Crystal install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_crystal diff --git a/source/Installation/Crystal/macOS-Install-Binary.rst b/source/Installation/Crystal/macOS-Install-Binary.rst deleted file mode 100644 index c1d7beaeb76..00000000000 --- a/source/Installation/Crystal/macOS-Install-Binary.rst +++ /dev/null @@ -1,171 +0,0 @@ -.. redirect-from:: - - Installation/Crystal/OSX-Install-Binary - -Installing ROS 2 on macOS -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on macOS from a pre-built binary package. - -System requirements -------------------- - -We support OS X El Capitan and macOS Sierra (10.11.x and 10.12.x). - -.. _osx-install-binary-installling-prerequisites: - -Installing prerequisites ------------------------- - -You need the following things installed before installing ROS 2. - - -* - **brew** *(needed to install more stuff; you probably already have this)*: - - - * Follow installation instructions at http://brew.sh/ - * - *Optional*: Check that ``brew`` is happy with your system configuration by running: - - .. code-block:: bash - - brew doctor - - - Fix any problems that it identifies. - -* - Use ``brew`` to install more stuff: - - .. code-block:: bash - - brew install python3 - - # install asio and tinyxml2 for Fast-RTPS - brew install asio tinyxml2 - - # install dependencies for robot state publisher - brew install tinyxml eigen pcre poco - - # OpenCV isn't a dependency of ROS 2, but it is used by some demos. - brew install opencv - - # install OpenSSL for DDS-Security - brew install openssl - - # install Qt for RViz - brew install qt freetype assimp - - # install dependencies for rcl_logging_log4cxx - brew install log4cxx - -* - Install rqt dependencies - - ``brew install sip pyqt5`` - - Fix some path names when looking for sip stuff during install (see `ROS 1 wiki `__): - - ``ln -s /usr/local/share/sip/Qt5 /usr/local/share/sip/PyQt5`` - - ``brew install graphviz`` - - ``python3 -m pip install pygraphviz pydot`` - -* - Install SROS2 dependencies - - ``python3 -m pip install lxml`` - -* - Install additional runtime dependencies for command-line tools: - - .. code-block:: bash - - python3 -m pip install catkin_pkg empy lark-parser pyparsing pyyaml setuptools argcomplete - -Disable System Integrity Protection (SIP) ------------------------------------------ - -macOS/OS X versions >=10.11 have System Integrity Protection enabled by default. -So that SIP doesn't prevent processes from inheriting dynamic linker environment variables, such as ``DYLD_LIBRARY_PATH``, you'll need to disable it `following these instructions `__. - -Downloading ROS 2 ------------------ - - -* Go to the releases page: https://github.com/ros2/ros2/releases -* Download the latest package for macOS; let's assume that it ends up at ``~/Downloads/ros2-release-distro-date-macos-amd64.tar.bz2``. - - * Note: there may be more than one binary download option which might cause the file name to differ. - -* - Unpack it: - - .. code-block:: bash - - mkdir -p ~/ros2_crystal - cd ~/ros2_crystal - tar xf ~/Downloads/ros2-release-distro-date-macos-amd64.tar.bz2 - -Install additional DDS implementations (optional) -------------------------------------------------- - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Environment setup ------------------ - -Source the ROS 2 setup file: - -.. code-block:: bash - - . ~/ros2_crystal/ros2-osx/setup.bash - -Try some examples ------------------ - -In one terminal, set up the ROS 2 environment as described above and then run a C++ ``talker``: - -.. code-block:: bash - - ros2 run demo_nodes_cpp talker - -In another terminal, set up the ROS 2 environment and then run a Python ``listener``: - -.. code-block:: 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! - -See the `tutorials and demos ` for other things to try. - -Build your own packages ------------------------ - -If you would like to build your own packages, refer to the tutorial `"Using Colcon to build packages" `. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Crystal install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_crystal diff --git a/source/Installation/DDS-Implementations.rst b/source/Installation/DDS-Implementations.rst index 15a62335873..74d5edfd096 100644 --- a/source/Installation/DDS-Implementations.rst +++ b/source/Installation/DDS-Implementations.rst @@ -1,9 +1,11 @@ -Install DDS implementations -=========================== +Installing DDS implementations +============================== By default, ROS 2 uses DDS as its `middleware `__. It is compatible with multiple DDS or RTPS (the DDS wire protocol) vendors. -There is currently support for eProsima Fast RTPS, ADLINK's OpenSplice, RTI's Connext DDS and Eclipse Cyclone DDS. +There is currently support for eProsima's Fast RTPS, RTI's Connext DDS and Eclipse Cyclone DDS. +ADLINK's OpenSplice is no longer supported as of Foxy. +See https://ros.org/reps/rep-2000.html for supported DDS vendors by distribution. For distros before Eloquent, the only bundled vendor is eProsima's Fast RTPS. Since Eloquent, both Fast RTPS and Cyclone DDS are bundled, but Fast RTPS is still the default. @@ -29,21 +31,6 @@ Detailed instructions for installing other DDS vendors are provided below. Linux source install -------------------- -ADLINK OpenSplice Debian Packages built by OSRF -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. tabs:: - - .. group-tab:: Foxy and newer - - OpenSplice is no longer supported as of Foxy. See https://ros.org/reps/rep-2000.html for supported DDS vendors. - - .. group-tab:: Eloquent and older - - .. code-block:: bash - - sudo apt install libopensplice69 # from packages.ros.org/ros2/ubuntu - RTI Connext (version 5.3.1, amd64 only) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -97,21 +84,6 @@ Now you can build as normal and support for RTI will be built as well. Linux binary install -------------------- -ADLINK OpenSplice -^^^^^^^^^^^^^^^^^ - -.. tabs:: - - .. group-tab:: Foxy and newer - - OpenSplice is no longer supported as of Foxy. See https://ros.org/reps/rep-2000.html for supported DDS vendors. - - .. group-tab:: Eloquent and older - - .. code-block:: bash - - sudo apt install libopensplice69 # from packages.ros.org/ros2/ubuntu - RTI Connext (version 5.3.1, amd64 only) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -146,25 +118,6 @@ If you want to install the Connext DDS-Security plugins please refer to `this pa OSX source install ------------------ -ADLINK OpenSplice -^^^^^^^^^^^^^^^^^ - -.. tabs:: - - .. group-tab:: Foxy and newer - - OpenSplice is no longer supported as of Foxy. See https://ros.org/reps/rep-2000.html for supported DDS vendors. - - .. group-tab:: Eloquent and older - - To install OpenSplice, download the latest supported release from https://github.com/ADLINK-IST/opensplice/releases and unpack it. - - Source the ``release.com`` file provided to set up the environment before building your ROS 2 workspace, e.g.: - - .. code-block:: bash - - source /x86_64.darwin10_clang/release.com - RTI Connext (5.3) ^^^^^^^^^^^^^^^^^ @@ -192,19 +145,6 @@ If you want to install the Connext DDS-Security plugins please refer to `this pa OSX binary install ------------------ -Enable OpenSplice support -^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. tabs:: - - .. group-tab:: Foxy and newer - - OpenSplice is no longer supported as of Foxy. See https://ros.org/reps/rep-2000.html for supported DDS vendors. - - .. group-tab:: Eloquent and older - - Download the latest release from https://github.com/ADLINK-IST/opensplice/releases and unpack it. - Set the ``OSPL_HOME`` environment variable to the unpacked directory that contains the ``release.com`` script. Enable Connext support ^^^^^^^^^^^^^^^^^^^^^^ @@ -226,26 +166,6 @@ If you want to install the Connext DDS-Security plugins please refer to `this pa Windows source install ---------------------- -ADLINK OpenSplice -^^^^^^^^^^^^^^^^^ - -.. tabs:: - - .. group-tab:: Foxy and newer - - OpenSplice is no longer supported as of Foxy. See https://ros.org/reps/rep-2000.html for supported DDS vendors. - - .. group-tab:: Eloquent and older - - If you would like to also build against OpenSplice, you will need to first download the latest version of `OpenSplice `__. - Then run something like the following command before building ROS 2, to set up the OpenSplice environment: - - .. code-block:: bash - - call "C:\opensplice69\HDE\x86_64.win64\release.bat" - - Where the exact paths may need to be slightly altered depending on where you selected to install OpenSplice. - RTI Connext 5.3 ^^^^^^^^^^^^^^^ @@ -267,21 +187,6 @@ If you want to install the Connext DDS-Security plugins please refer to `this pa Windows binary install ---------------------- -ADLINK OpenSplice -^^^^^^^^^^^^^^^^^ - -.. tabs:: - - .. group-tab:: Foxy and newer - - OpenSplice is no longer supported as of Foxy. See https://ros.org/reps/rep-2000.html for supported DDS vendors. - - .. group-tab:: Eloquent and older - - If you want to use OpenSplice, you will need to download the `latest supported version `__. - Version 6.9.190403OSS-HDE-x86_64.win-vs2017 or later is required. - - After unpacking, set the ``OSPL_HOME`` environment variable so that it points to the directory that contains the ``release.bat`` script. RTI Connext ^^^^^^^^^^^ diff --git a/source/Installation/DDS-Implementations/Working-with-Eclipse-CycloneDDS.rst b/source/Installation/DDS-Implementations/Working-with-Eclipse-CycloneDDS.rst index 9eec3025c50..7e7c076eb79 100644 --- a/source/Installation/DDS-Implementations/Working-with-Eclipse-CycloneDDS.rst +++ b/source/Installation/DDS-Implementations/Working-with-Eclipse-CycloneDDS.rst @@ -19,11 +19,10 @@ Install packages ---------------- The easiest way is to install from ROS 2 apt repository. -``${ROS_DISTRO}`` should be your ROS 2 version. .. code-block:: bash - sudo apt install ros-${ROS_DISTRO}-rmw-cyclonedds-cpp + sudo apt install ros-rolling-rmw-cyclonedds-cpp Build from source code ---------------------- diff --git a/source/Installation/Dashing.rst b/source/Installation/Dashing.rst deleted file mode 100644 index 31031f265fb..00000000000 --- a/source/Installation/Dashing.rst +++ /dev/null @@ -1,36 +0,0 @@ -Installing ROS 2 Dashing Diademata -================================== - -.. toctree:: - :hidden: - :glob: - - Dashing/* - -Binary packages ---------------- - -We provide ROS 2 binary packages for the following platforms: - -* Linux (Ubuntu Bionic(18.04)) - - * `Debian packages ` - * `"fat" archive ` - -* `macOS ` -* `Windows ` - - -.. _Dashing_building-from-source: - -Building from source --------------------- - -We support building ROS 2 from source on the following platforms: - - -* `Linux ` -* `macOS ` -* `Windows ` - -.. include:: _Install-Types.rst diff --git a/source/Installation/Dashing/Fedora-Development-Setup.rst b/source/Installation/Dashing/Fedora-Development-Setup.rst deleted file mode 100644 index c8efabfe692..00000000000 --- a/source/Installation/Dashing/Fedora-Development-Setup.rst +++ /dev/null @@ -1,56 +0,0 @@ -Building ROS 2 on Fedora Linux -============================== - -How to setup the development environment? ------------------------------------------ - -The following system dependencies are required to build ROS 2 on Fedora. They can be installed with ``dnf`` as follows: - -.. code-block:: bash - - $ sudo dnf install \ - asio-devel \ - cmake \ - cppcheck \ - eigen3-devel \ - gcc-c++ \ - liblsan \ - libXaw-devel \ - libyaml-devel \ - make \ - opencv-devel \ - patch \ - python3-argcomplete \ - python3-colcon-common-extensions \ - python3-coverage \ - python3-devel \ - python3-empy \ - python3-lark-parser \ - python3-lxml \ - python3-mock \ - python3-nose \ - python3-pep8 \ - python3-pip \ - python3-pydocstyle \ - python3-pyflakes \ - python3-pyparsing \ - python3-pytest \ - python3-pytest-cov \ - python3-pytest-runner \ - python3-rosdep \ - python3-setuptools \ - python3-vcstool \ - python3-yaml \ - poco-devel \ - poco-foundation \ - python3-flake8 \ - python3-flake8-import-order \ - redhat-rpm-config \ - tinyxml-devel \ - tinyxml2-devel \ - uncrustify \ - wget - - -With this done, you can follow the rest of the `instructions ` to fetch and build ROS 2. - diff --git a/source/Installation/Dashing/Linux-Development-Setup.rst b/source/Installation/Dashing/Linux-Development-Setup.rst deleted file mode 100644 index 80eb15a1974..00000000000 --- a/source/Installation/Dashing/Linux-Development-Setup.rst +++ /dev/null @@ -1,214 +0,0 @@ -Building ROS 2 on Linux -======================= - -.. contents:: Table of Contents - :depth: 2 - :local: - - -System requirements -------------------- -Target platforms for Dashing Diademata are (see `REP 2000 `__): - -- Tier 1: Ubuntu Linux - Bionic Beaver (18.04) 64-bit - -Tier 3 platforms (not actively tested or supported) include: - -- Debian Linux - Stretch (9) -- Fedora 30, see `alternate instructions ` -- Arch Linux, see `alternate instructions `__ -- OpenEmbedded / webOS OSE, see `alternate instructions `__ - -System setup ------------- - -Set locale -^^^^^^^^^^ - -.. include:: ../_Linux-Set-Locale.rst - -Add the ROS 2 apt repository -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. include:: ../_Apt-Repositories.rst - -Install development tools and ROS tools -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: bash - - 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 - -.. _Dashing_linux-dev-get-ros2-code: - -Get ROS 2 code --------------- - -Create a workspace and clone all repos: - -.. code-block:: bash - - mkdir -p ~/ros2_dashing/src - cd ~/ros2_dashing - wget https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos - vcs import src < ros2.repos - -Install dependencies using rosdep ---------------------------------- - -.. code-block:: bash - - sudo rosdep init - rosdep update - rosdep install --from-paths src --ignore-src --rosdistro dashing -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 rti-connext-dds-5.3.1 urdfdom_headers" - -Install additional DDS implementations (optional) -------------------------------------------------- - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the code in the workspace -------------------------------- -More info on working with a ROS workspace can be found in `this tutorial `. - -.. code-block:: bash - - cd ~/ros2_dashing/ - 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 ``AMENT_IGNORE`` in the same manner as `CATKIN_IGNORE `__ 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 ``$ touch AMENT_IGNORE`` in the ``cam2image`` demo directory to leave it out of the build process. - -Optionally install all packages into a combined directory (rather than each package in a separate subdirectory). -On Windows due to limitations of the length of environment variables you should use this option when building workspaces with many (~ >> 100 packages). - -Also, if you have already installed ROS 2 from Debian make sure that you run the ``build`` command in a fresh environment. -You may want to make sure that you do not have ``source /opt/ros/${ROS_DISTRO}/setup.bash`` in your ``.bashrc``. - - -.. code-block:: bash - - colcon build --symlink-install --merge-install - -Afterwards source the ``local_setup.*`` from the ``install`` folder. - -Environment setup ------------------ - -Source the setup script -^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - . ~/ros2_dashing/install/setup.bash - -Try some examples ------------------ - -In one terminal, source the setup file and then run a C++ ``talker``\ : - -.. code-block:: bash - - . ~/ros2_dashing/install/local_setup.bash - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``\ : - -.. code-block:: bash - - . ~/ros2_dashing/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! - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Alternate compilers -------------------- - -Using a different compiler besides gcc to compile ROS 2 is easy. If you set the environment variables ``CC`` and ``CXX`` to executables for a working C and C++ compiler, respectively, and retrigger CMake configuration (by using ``--force-cmake-config`` or by deleting the packages you want to be affected), CMake will reconfigure and use the different compiler. - -Clang -^^^^^ - -To configure CMake to detect and use Clang: - -.. code-block:: bash - - sudo apt install clang - export CC=clang - export CXX=clang++ - colcon build --cmake-force-configure - -TODO: using ThreadSanitizer, MemorySanitizer - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Dashing install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_dashing diff --git a/source/Installation/Dashing/Linux-Install-Binary.rst b/source/Installation/Dashing/Linux-Install-Binary.rst deleted file mode 100644 index 19ef57d3be6..00000000000 --- a/source/Installation/Dashing/Linux-Install-Binary.rst +++ /dev/null @@ -1,146 +0,0 @@ -Installing ROS 2 on Linux -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on Linux from a pre-built binary package. - -.. note:: - - The pre-built binary does not include all ROS 2 packages. - All packages in the `ROS base variant `_ are included, and only a subset of packages in the `ROS desktop variant `_ are included. - The exact list of packages are described by the repositories listed in `this ros2.repos file `_. - -There are also `Debian packages ` available. - -System Requirements -------------------- - -We support Ubuntu Linux Bionic Beaver (18.04) and Ubuntu Xenial Xerus (16.04) on 64-bit x86 and 64-bit ARM. - -Note: Ardent and beta versions supported Ubuntu Xenial Xerus 16.04. - -Add the ROS 2 apt repository ----------------------------- - -.. include:: ../_Apt-Repositories.rst - -Downloading ROS 2 ------------------ - - -* Go to `the releases page `_ -* Download the latest package for Linux; let's assume that it ends up at ``~/Downloads/ros2-dashing-linux-x86_64.tar.bz2``. - - * Note: there may be more than one binary download option which might cause the file name to differ. - -* - Unpack it: - - .. code-block:: bash - - mkdir -p ~/ros2_dashing - cd ~/ros2_dashing - tar xf ~/Downloads/ros2-dashing-linux-x86_64.tar.bz2 - -Installing and initializing rosdep ----------------------------------- - -.. code-block:: bash - - sudo apt update - sudo apt install -y python-rosdep - sudo rosdep init - rosdep update - - -Installing the missing dependencies ------------------------------------ - -Set your rosdistro according to the release you downloaded. - -.. code-block:: bash - - rosdep install --from-paths ros2-linux/share --ignore-src --rosdistro dashing -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 osrf_testing_tools_cpp poco_vendor rmw_connext_cpp rosidl_typesupport_connext_c rosidl_typesupport_connext_cpp rti-connext-dds-5.3.1 tinyxml_vendor tinyxml2_vendor urdfdom urdfdom_headers" - -#. *Optional*\ : if you want to use the ROS 1<->2 bridge, then you must also install ROS 1. - Follow the normal install instructions: https://wiki.ros.org/melodic/Installation/Ubuntu - - -Installing the python3 libraries -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: bash - - sudo apt install -y libpython3-dev python3-pip - pip3 install -U argcomplete - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Environment setup ------------------ - -Sourcing the setup script -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - . ~/ros2_dashing/ros2-linux/setup.bash - -Try some examples ------------------ - -In one terminal, source the setup file and then run a C++ ``talker``: - -.. code-block:: bash - - . ~/ros2_dashing/ros2-linux/setup.bash - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``: - -.. code-block:: bash - - . ~/ros2_dashing/ros2-linux/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! - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found `here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Dashing install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_dashing diff --git a/source/Installation/Dashing/Linux-Install-Debians.rst b/source/Installation/Dashing/Linux-Install-Debians.rst deleted file mode 100644 index a47ec7f9f99..00000000000 --- a/source/Installation/Dashing/Linux-Install-Debians.rst +++ /dev/null @@ -1,122 +0,0 @@ -Installing ROS 2 via Debian Packages -==================================== - -.. contents:: Table of Contents - :depth: 2 - :local: - -Debian packages for ROS 2 Dashing Diademata are available for Ubuntu Bionic. - -Resources ---------- - -* Status Page: - - * ROS 2 Dashing (Ubuntu Bionic): `amd64 `__\ , `arm64 `__ -* `Jenkins Instance `__ -* `Repositories `__ - - -Set locale ----------- - -.. include:: ../_Linux-Set-Locale.rst - -Setup Sources -------------- - -.. include:: ../_Apt-Repositories.rst - -.. _Dashing_linux-install-debians-install-ros-2-packages: - -Install ROS 2 packages ----------------------- - -Update your apt repository caches after setting up the repositories. - -.. code-block:: bash - - sudo apt update - -Desktop Install (Recommended): ROS, RViz, demos, tutorials. - -.. code-block:: bash - - sudo apt install ros-dashing-desktop - -ROS-Base Install (Bare Bones): Communication libraries, message packages, command line tools. -No GUI tools. - -.. code-block:: bash - - sudo apt install ros-dashing-ros-base - -Environment setup ------------------ - -Sourcing the setup script -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - source /opt/ros/dashing/setup.bash - -Install argcomplete (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -ROS 2 command line tools use argcomplete to autocompletion. -So if you want autocompletion, installing argcomplete is necessary. - -.. code-block:: bash - - sudo apt install -y python3-pip - pip3 install -U argcomplete - -Try some examples ------------------ - -In one terminal, set up the ROS 2 environment as described above and then run a C++ ``talker``: - -.. code-block:: bash - - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``: - -.. code-block:: 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! - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found `here `. - -Uninstall ---------- - -If you need to uninstall ROS 2 or switch to a source-based install once you -have already installed from binaries, run the following command: - -.. code-block:: bash - - sudo apt remove ros-dashing-* && sudo apt autoremove diff --git a/source/Installation/Dashing/Windows-Development-Setup.rst b/source/Installation/Dashing/Windows-Development-Setup.rst deleted file mode 100644 index a824f25ca9b..00000000000 --- a/source/Installation/Dashing/Windows-Development-Setup.rst +++ /dev/null @@ -1,385 +0,0 @@ -Building ROS 2 on Windows -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This guide is about how to setup a development environment for ROS 2 on Windows. - -Prerequisites -------------- - -First follow the steps for `Installing Prerequisites ` on the Binary Installation page. - -Stop and return here when you reach the "Downloading ROS 2" section. - -Additional prerequisites -^^^^^^^^^^^^^^^^^^^^^^^^ - -When building from source you'll need a few additional prerequisites installed. - -Install additional prerequisites from Chocolatey -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -First install git: - -.. code-block:: bash - - > choco install -y git - -You will need to append the Git cmd folder ``C:\Program Files\Git\cmd`` to the PATH (you can do this by clicking the Windows icon, typing "Environment Variables", then clicking on "Edit the system environment variables". -In the resulting dialog, click "Environment Variables", the click "Path" on the bottom pane, then click "Edit" and add the path). - -Then install ``patch``: - -.. code-block:: bash - - > choco install -y patch - -You may need to close the cmd prompt and open a new one, but at this point you should be able to run ``git``\ , ``python``\ , ``cmake``\ , and ``patch.exe --version``. - -Install developer tools ------------------------ - -Now we are ready to install some our tools that we use to help in developing ROS 2. - -Let's start with ``vcstool``: - -.. code-block:: bash - - > pip install -U vcstool - -You can test it out by just running ``vcs`` (you should be able to do this in the same cmd prompt). - -Next, install ``colcon``: - -.. code-block:: bash - - > pip install -U colcon-common-extensions - -You can test it out by just running ``colcon`` (you should be able to do this in the same cmd prompt). - -Also, you should install ``curl``: - -.. code-block:: bash - - > choco install -y curl - -Install dependencies --------------------- - -Next install the latest version of ``setuptools`` and ``pip``: - -.. code-block:: bash - - > -m pip install -U setuptools pip - -Where ``PATH_TO_PYTHON_EXECUTABLE`` looks like: ``c:\python37\python.exe`` - -Then you can continue installing other Python dependencies: - -.. code-block:: bash - - > pip install -U catkin_pkg EmPy lark-parser lxml numpy pyparsing pyyaml - -Next install testing tools like ``pytest`` and others: - -.. code-block:: bash - - > pip install -U pytest coverage mock - -Next install linters and checkers like ``flake8`` and others: - -.. code-block:: bash - - > pip install -U flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes pep8 pydocstyle - -Next install cppcheck: - -.. code-block:: bash - - > choco install -y cppcheck - -Next install xmllint: - -* Download the `64 bit binary archives `__ of ``libxml2`` (and its dependencies ``iconv`` and ``zlib``) from https://www.zlatkovic.com/projects/libxml/ -* Unpack all archives into e.g. ``C:\xmllint`` -* Add ``C:\xmllint\bin`` to the ``PATH``. - -Install Qt5 -^^^^^^^^^^^ - -This section is only required if you are building rviz, but it comes with our default set of sources, so if you don't know, then assume you are building it. - -First get the installer from Qt's website: - -https://www.qt.io/download - -Select the Open Source version and then the ``Qt Online Installer for Windows``. - -Run the installer and install Qt5. -We recommend you install it to the default location of ``C:\Qt``, but if you choose somewhere else, make sure to update the paths below accordingly. -When selecting components to install, the only thing you absolutely need for bouncy and later is the appropriate MSVC 64-bit component under the ``Qt`` -> ``Qt 5.10.0`` tree. -We're using ``5.10.0`` as of the writing of this document and that's what we recommend since that's all we test on Windows, but later version will probably work too. -For bouncy and later, be sure to select ``MSVC 2017 64-bit``. For ardent use ``MSVC 2015 64-bit``. -After that, the default settings are fine. - -Finally, set the ``Qt5_DIR`` environment variable in the ``cmd.exe`` where you intend to build so that CMake can find it: - -.. code-block:: bash - - > set Qt5_DIR=C:\Qt\5.10.0\msvc2017_64 - : You could set it permanently with ``setx -m Qt5_DIR C:\Qt\5.10.0\msvc2017_64`` instead, but that requires Administrator. - -.. note:: - - This path might change based on which MSVC version you're using or if you installed it to a different directory. - -RQt dependencies -~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - > pip install -U pydot PyQt5 - -Get the ROS 2 code ------------------- - -Now that we have the development tools we can get the ROS 2 source code. - -First setup a development folder, for example ``C:\dev\ros2_dashing``: - -.. code-block:: bash - - > md \dev\ros2_dashing\src - > cd \dev\ros2_dashing - -Get the ``ros2.repos`` file which defines the repositories to clone from: - -.. code-block:: bash - - # CMD - > curl -sk https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos -o ros2.repos - - # PowerShell - > curl https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos -o ros2.repos - -Next you can use ``vcs`` to import the repositories listed in the ``ros2.repos`` file: - -.. code-block:: bash - - # CMD - > vcs import src < ros2.repos - - # PowerShell - > vcs import --input ros2.repos src - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the ROS 2 code --------------------- - -.. _windows-dev-build-ros2: - -To build ROS 2 you will need a Visual Studio Command Prompt ("x64 Native Tools Command Prompt for VS 2019") running as Administrator. - -Fast RTPS is bundled with the ROS 2 source and will always be built unless you put an ``AMENT_IGNORE`` file in the ``src\eProsima`` folder. - -To build the ``\dev\ros2_dashing`` folder tree: - -.. code-block:: bash - - > colcon build --merge-install - -.. note:: - - We're using ``--merge-install`` here to avoid a ``PATH`` variable that is too long at the end of the build. - If you're adapting these instructions to build a smaller workspace then you might be able to use the default behavior which is isolated install, i.e. where each package is installed to a different folder. - -.. note:: - - If you are doing a debug build use ``python_d path\to\colcon_executable`` ``colcon``. - See `Extra stuff for debug mode`_ for more info on running Python code in debug builds on Windows. - -Environment setup ------------------ - -Start a command shell and source the ROS 2 setup file to set up the workspace: - -.. code-block:: bash - - > call C:\dev\ros2_dashing\install\local_setup.bat - -This will automatically set up the environment for any DDS vendors that support was built for. - -It is normal that the previous command, if nothing else went wrong, outputs "The system cannot find the path specified." exactly once. - -Test and run ------------- - -Note that the first time you run any executable you will have to allow access to the network through a Windows Firewall popup. - -You can run the tests using this command: - -.. code-block:: bash - - > colcon test --merge-install - -.. note:: - - ``--merge-install`` should only be used if it was also used in the build step. - -Afterwards you can get a summary of the tests using this command: - -.. code-block:: bash - - > colcon test-result - -To run the examples, first open a clean new ``cmd.exe`` and set up the workspace by sourcing the ``local_setup.bat`` file. -Then, run a C++ ``talker``\ : - -.. code-block:: bash - - > call install\local_setup.bat - > ros2 run demo_nodes_cpp talker - -In a separate shell you can do the same, but instead run a Python ``listener``\ : - -.. code-block:: bash - - > call install\local_setup.bat - > 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! - -.. note:: - - It is not recommended to build in the same cmd prompt that you've sourced the ``local_setup.bat``. - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - - -Extra stuff for Debug mode --------------------------- - -If you want to be able to run all the tests in Debug mode, you'll need to install a few more things: - - -* To be able to extract the Python source tarball, you can use PeaZip: - -.. code-block:: bash - - > choco install -y peazip - - -* You'll also need SVN, since some of the Python source-build dependencies are checked out via SVN: - -.. code-block:: bash - - > choco install -y svn hg - - -* You'll need to quit and restart the command prompt after installing the above. -* Get and extract the Python 3.7.3 source from the ``tgz``: - - * https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz - * To keep these instructions concise, please extract it to ``C:\dev\Python-3.7.3`` - -* Now, build the Python source in debug mode from a Visual Studio command prompt: - -.. code-block:: bash - - > cd C:\dev\Python-3.7.3\PCbuild - > get_externals.bat - > build.bat -p x64 -d - - -* Finally, copy the build products into the Python37 installation directories, next to the Release-mode Python executable and DLL's: - -.. code-block:: bash - - > cd C:\dev\Python-3.7.3\PCbuild\amd64 - > copy python_d.exe C:\Python37 /Y - > copy python37_d.dll C:\Python37 /Y - > copy python3_d.dll C:\Python37 /Y - > copy python37_d.lib C:\Python37\libs /Y - > copy python3_d.lib C:\Python37\libs /Y - > for %I in (*_d.pyd) do copy %I C:\Python37\DLLs /Y - - -* Now, from a fresh command prompt, make sure that ``python_d`` works: - -.. code-block:: bash - - > python_d - > import _ctypes - -* Once you have verified the operation of ``python_d``, it is necessary to reinstall a few dependencies with the debug-enabled libraries: - -.. code-block:: bash - - > python_d -m pip install --force-reinstall https://github.com/ros2/ros2/releases/download/numpy-archives/numpy-1.16.2-cp37-cp37dm-win_amd64.whl - > python_d -m pip install --force-reinstall https://github.com/ros2/ros2/releases/download/lxml-archives/lxml-4.3.2-cp37-cp37dm-win_amd64.whl - -* To verify the installation of these dependencies: - -.. code-block:: bash - - > python_d - # No import errors should appear when executing the following lines - > from lxml import etree - > import numpy - -* When you wish to return to building release binaries, it is necessary to uninstall the debug variants and use the release variants: - -.. code-block:: bash - - > python -m pip uninstall numpy lxml - > python -m pip install numpy lxml - -* To create executables python scripts(.exe), python_d should be used to invoke colcon - -.. code-block:: bash - - > python_d path\to\colcon_executable build - -* Hooray, you're done! - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Dashing install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rmdir /s /q \ros2_dashing diff --git a/source/Installation/Dashing/Windows-Install-Binary.rst b/source/Installation/Dashing/Windows-Install-Binary.rst deleted file mode 100644 index dee1d8f7c56..00000000000 --- a/source/Installation/Dashing/Windows-Install-Binary.rst +++ /dev/null @@ -1,278 +0,0 @@ -Installing ROS 2 on Windows -=========================== - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on Windows from a pre-built binary package. - -.. note:: - - The pre-built binary does not include all ROS 2 packages. - All packages in the `ROS base variant `_ are included, and only a subset of packages in the `ROS desktop variant `_ are included. - The exact list of packages are described by the repositories listed in `this ros2.repos file `_. - -System requirements -------------------- - -Only Windows 10 is supported. - -.. _Dashing_windows-install-binary-installing-prerequisites: - -Installing prerequisites ------------------------- - -Install Chocolatey -^^^^^^^^^^^^^^^^^^ - -Chocolatey is a package manager for Windows, install it by following their installation instructions: - -https://chocolatey.org/ - -You'll use Chocolatey to install some other developer tools. - -Install Python -^^^^^^^^^^^^^^ - -Open a Command Prompt and type the following to install Python via Chocolatey: - -.. code-block:: bash - - > choco install -y python --version 3.7.5 - -Install Visual C++ Redistributables -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Open a Command Prompt and type the following to install them via Chocolatey: - -.. code-block:: bash - - > choco install -y vcredist2013 vcredist140 - -Install OpenSSL -^^^^^^^^^^^^^^^ - -Download the *Win64 OpenSSL v1.0.2u* OpenSSL installer from `this page `__. -Scroll to the bottom of the page and download *Win64 OpenSSL v1.0.2u*. -Don't download the Win32 or Light versions or version 1.1.0 or newer. - -Run the installer with default parameters. -The following commands assume you used the default installation directory: - -* ``setx -m OPENSSL_CONF C:\OpenSSL-Win64\bin\openssl.cfg`` - -You will need to append the OpenSSL-Win64 bin folder to your PATH. -You can do this by clicking the Windows icon, typing "Environment Variables", then clicking on "Edit the system environment variables". -In the resulting dialog, click "Environment Variables", then click "Path" on the bottom pane, finally click "Edit" and add the path below. - -* ``C:\OpenSSL-Win64\bin\`` - -Install Visual Studio -^^^^^^^^^^^^^^^^^^^^^ - -Install Visual Studio 2019. - -If you already have a paid version of Visual Studio 2019 (Professional, Enterprise), skip this step. - -Microsoft provides a free of charge version of Visual Studio 2019, named Community, which can be used to build applications that use ROS 2: - - https://visualstudio.microsoft.com/downloads/ - -Make sure that the Visual C++ features are installed. - -An easy way to make sure they're installed is to select the ``Desktop development with C++`` workflow during the install. - - .. image:: https://i.imgur.com/2h0IxCk.png - -Make sure that no C++ CMake tools are installed by unselecting them in the list of components to be installed. - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Install OpenCV -^^^^^^^^^^^^^^ - -Some of the examples require OpenCV to be installed. - -You can download a precompiled version of OpenCV 3.4.6 from https://github.com/ros2/ros2/releases/download/opencv-archives/opencv-3.4.6-vc16.VS2019.zip . - -Assuming you unpacked it to ``C:\opencv``\ , type the following on a Command Prompt (requires Admin privileges): - -.. code-block:: bash - - setx -m OpenCV_DIR C:\opencv - -Since you are using a precompiled ROS version, we have to tell it where to find the OpenCV libraries. -You have to extend the ``PATH`` variable to ``C:\opencv\x64\vc16\bin``. - -Install dependencies -^^^^^^^^^^^^^^^^^^^^ - -There are a few dependencies not available in the Chocolatey package database. -In order to ease the manual installation process, we provide the necessary Chocolatey packages. - -As some chocolatey packages rely on it, we start by installing CMake - -.. code-block:: bash - - > choco install -y cmake - -You will need to append the CMake bin folder ``C:\Program Files\CMake\bin`` to your PATH. - -Please download these packages from `this `__ GitHub repository. - -* asio.1.12.1.nupkg -* cunit.2.1.3.nupkg -* eigen-3.3.4.nupkg -* tinyxml-usestl.2.6.2.nupkg -* tinyxml2.6.0.0.nupkg -* log4cxx.0.10.0.nupkg - -Once these packages are downloaded, open an administrative shell and execute the following command: - -.. code-block:: bash - - > choco install -y -s asio cunit eigen tinyxml-usestl tinyxml2 log4cxx - -Please replace ```` with the folder you downloaded the packages to. - -You must also install some python dependencies for command-line tools: - -.. code-block:: bash - - python -m pip install -U catkin_pkg empy lark-parser lxml numpy opencv-python pyparsing pyyaml setuptools - -RQt dependencies -~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - python -m pip install -U pydot PyQt5 - -Downloading ROS 2 ------------------ - -* Go the releases page: https://github.com/ros2/ros2/releases -* Download the latest package for Windows, e.g., ``ros2-dashing-*-windows-AMD64.zip``. - -.. note:: - - There may be more than one binary download option which might cause the file name to differ. - -.. note:: - - To download the ROS 2 debug libraries you'll need to download ``ros2-dashing-*-windows-debug-AMD64.zip`` - -* Unpack the zip file somewhere (we'll assume ``C:\dev\ros2_dashing``\ ). - - -Environment setup ------------------ - -Start a command shell and source the ROS 2 setup file to set up the workspace: - -.. code-block:: bash - - > call C:\dev\ros2_dashing\local_setup.bat - -It is normal that the previous command, if nothing else went wrong, outputs "The system cannot find the path specified." exactly once. - -Try some examples ------------------ - -In a command shell, set up the ROS 2 environment as described above and then run a C++ ``talker``\ : - -.. code-block:: bash - - > ros2 run demo_nodes_cpp talker - -Start another command shell and run a Python ``listener``\ : - -.. code-block:: 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! - - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Dashing install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rmdir /s /q \ros2_dashing - -(Alternative) ROS 2 Build Installation from aka.ms/ros --------------------------------------------------------- - -https://aka.ms/ros project hosts ROS 2 builds against the release snapshots. -This section explains how to install ROS 2 from this channel. - -Install ROS 2 builds -^^^^^^^^^^^^^^^^^^^^ - -In an administrative command prompt, run the following commands. - -.. code-block:: bash - - > mkdir c:\opt\chocolatey - > set PYTHONNOUSERSITE=1 - > set ChocolateyInstall=c:\opt\chocolatey - > choco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1 - > choco upgrade ros-dashing-desktop -y --execution-timeout=0 - -Environment setup -^^^^^^^^^^^^^^^^^^ - -Start an administrative command prompt and source the ROS 2 setup file to set up the workspace: - -.. code-block:: bash - - > call C:\opt\ros\dashing\x64\local_setup.bat - -Stay up-to-date -^^^^^^^^^^^^^^^ - -To keep up-to-date with the latest builds, run: - -.. code-block:: bash - - > set ChocolateyInstall=c:\opt\chocolatey - > choco upgrade all -y --execution-timeout=0 - -Uninstall -^^^^^^^^^ - -If you want to completely remove the environment downloaded above, run this command: - -.. code-block:: bash - - > rmdir /s /q C:\opt\ diff --git a/source/Installation/Dashing/macOS-Development-Setup.rst b/source/Installation/Dashing/macOS-Development-Setup.rst deleted file mode 100644 index 12260256741..00000000000 --- a/source/Installation/Dashing/macOS-Development-Setup.rst +++ /dev/null @@ -1,215 +0,0 @@ -.. redirect-from:: - - Installation/Dashing/OSX-Development-Setup - -Building ROS 2 on macOS -======================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -System requirements -------------------- - -We support macOS 10.12.x. - -However, some new versions like 10.13.x and some older versions like 10.11.x and 10.10.x are known to work as well. - -Install prerequisites ---------------------- - -You need the following things installed to build ROS 2: - - -#. - **Xcode** - - - * - If you don't already have it installed, install Xcode and the Command Line Tools: - - .. code-block:: bash - - xcode-select --install - -#. - **brew** *(needed to install more stuff; you probably already have this)*: - - - * Follow installation instructions at http://brew.sh/ - * - *Optional*: Check that ``brew`` is happy with your system configuration by running: - - .. code-block:: bash - - brew doctor - - Fix any problems that it identifies. - -#. - Use ``brew`` to install more stuff: - - .. code-block:: bash - - brew install cmake cppcheck eigen pcre poco python3 tinyxml wget - - # install dependencies for Fast-RTPS if you are using it - brew install asio tinyxml2 - - brew install opencv - - # install console_bridge for rosbag2 - brew install console_bridge - - # install OpenSSL for DDS-Security - brew install openssl - # if you are using ZSH, then replace '.bashrc' with '.zshrc' - echo "export OPENSSL_ROOT_DIR=$(brew --prefix openssl)" >> ~/.bashrc - - # install dependencies for rcl_logging_log4cxx - brew install log4cxx - - # install CUnit for Cyclone DDS - brew install cunit - -#. - Install rviz dependencies - - .. code-block:: bash - - # install dependencies for Rviz - brew install qt freetype assimp - - # Add the Qt directory to the PATH and CMAKE_PREFIX_PATH - export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/usr/local/opt/qt - export PATH=$PATH:/usr/local/opt/qt/bin - -#. - Install rqt dependencies - - ``brew install graphviz pyqt5 sip`` - - Fix some path names when looking for sip stuff during install (see `ROS 1 wiki `__): - - ``ln -s /usr/local/share/sip/Qt5 /usr/local/share/sip/PyQt5`` - -#. - Use ``python3 -m pip`` (just ``pip`` may install Python3 or Python2) to install more stuff: - - .. code-block:: bash - - python3 -m pip install -U argcomplete catkin_pkg colcon-common-extensions coverage empy flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes lark-parser mock nose pep8 pydocstyle pydot pygraphviz pyparsing setuptools vcstool - -#. - *Optional*: if you want to build the ROS 1<->2 bridge, then you must also install ROS 1: - - - * Start with the normal install instructions: https://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source - * - When you get to the step where you call ``rosinstall_generator`` to get the source code, here's an alternate invocation that brings in just the minimum required to produce a useful bridge: - - .. code-block:: bash - - rosinstall_generator catkin common_msgs roscpp rosmsg --rosdistro kinetic --deps --wet-only --tar > kinetic-ros2-bridge-deps.rosinstall - wstool init -j8 src kinetic-ros2-bridge-deps.rosinstall - - - Otherwise, just follow the normal instructions, then source the resulting ``install_isolated/setup.bash`` before proceeding here to build ROS 2. - -Disable System Integrity Protection (SIP) ------------------------------------------ - -macOS/OS X versions >=10.11 have System Integrity Protection enabled by default. -So that SIP doesn't prevent processes from inheriting dynamic linker environment variables, such as ``DYLD_LIBRARY_PATH``, you'll need to disable it `following these instructions `__. - -Get the ROS 2 code ------------------- - -Create a workspace and clone all repos: - -.. code-block:: bash - - mkdir -p ~/ros2_dashing/src - cd ~/ros2_dashing - wget https://raw.githubusercontent.com/ros2/ros2/dashing/ros2.repos - vcs import src < ros2.repos - -Install additional DDS vendors (optional) ------------------------------------------ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the ROS 2 code --------------------- -Run the ``colcon`` tool to build everything (more on using ``colcon`` in `this tutorial `): - -.. code-block:: bash - - cd ~/ros2_dashing/ - colcon build --symlink-install - -Environment setup ------------------ - -Source the ROS 2 setup file: - -.. code-block:: bash - - . ~/ros2_dashing/install/setup.bash - -This will automatically set up the environment for any DDS vendors that support was built for. - -Try some examples ------------------ - -In one terminal, set up the ROS 2 environment as described above and then run a C++ ``talker``: - -.. code-block:: bash - - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``: - -.. code-block:: 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! - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Dashing install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_dashing diff --git a/source/Installation/Dashing/macOS-Install-Binary.rst b/source/Installation/Dashing/macOS-Install-Binary.rst deleted file mode 100644 index e21968659c1..00000000000 --- a/source/Installation/Dashing/macOS-Install-Binary.rst +++ /dev/null @@ -1,200 +0,0 @@ -.. redirect-from:: - - Installation/Dashing/OSX-Install-Binary - -Installing ROS 2 on macOS -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on macOS from a pre-built binary package. - -.. note:: - - The pre-built binary does not include all ROS 2 packages. - All packages in the `ROS base variant `_ are included, and only a subset of packages in the `ROS desktop variant `_ are included. - The exact list of packages are described by the repositories listed in `this ros2.repos file `_. - -System requirements -------------------- - -We support macOS Sierra (10.12.x). - -.. _Dashing_osx-install-binary-installling-prerequisites: - -Installing prerequisites ------------------------- - -You need the following things installed before installing ROS 2. - - -* - **brew** *(needed to install more stuff; you probably already have this)*: - - - * Follow installation instructions at http://brew.sh/ - * - *Optional*: Check that ``brew`` is happy with your system configuration by running: - - .. code-block:: bash - - brew doctor - - - Fix any problems that it identifies. - -* - Use ``brew`` to install more stuff: - - .. code-block:: bash - - brew install python3 - - # install asio and tinyxml2 for Fast-RTPS - brew install asio tinyxml2 - - # install dependencies for robot state publisher - brew install tinyxml eigen pcre poco - - # OpenCV isn't a dependency of ROS 2, but it is used by some demos. - brew install opencv - - # install OpenSSL for DDS-Security - brew install openssl - # if you are using ZSH, then replace '.bashrc' with '.zshrc' - echo "export OPENSSL_ROOT_DIR=$(brew --prefix openssl)" >> ~/.bashrc - - # install Qt for RViz - brew install qt freetype assimp - - # install console_bridge for rosbag2 - brew install console_bridge - - # install dependencies for rcl_logging_log4cxx - brew install log4cxx - - # install CUnit for Cyclone DDS - brew install cunit - -* - Install rqt dependencies - - ``brew install sip pyqt5`` - - Fix some path names when looking for sip stuff during install (see `ROS 1 wiki `__): - - ``ln -s /usr/local/share/sip/Qt5 /usr/local/share/sip/PyQt5`` - - ``brew install graphviz`` - - ``python3 -m pip install pygraphviz pydot`` - - .. note:: - - You may run into an issue installing ``pygraphviz``, "error: Error locating graphviz". - Try the following install command instead: - - .. code-block:: bash - - python3 -m pip install --install-option="--include-path=/usr/local/include/" --install-option="--library-path=/usr/local/lib/" pygraphviz - -* - Install SROS2 dependencies - - ``python3 -m pip install lxml`` - -* - Install additional runtime dependencies for command-line tools: - - .. code-block:: bash - - python3 -m pip install catkin_pkg empy lark-parser lxml numpy pyparsing pyyaml setuptools argcomplete - -Disable System Integrity Protection (SIP) ------------------------------------------ - -macOS/OS X versions >=10.11 have System Integrity Protection enabled by default. -So that SIP doesn't prevent processes from inheriting dynamic linker environment variables, such as ``DYLD_LIBRARY_PATH``, you'll need to disable it `following these instructions `__. - -Downloading ROS 2 ------------------ - -* Download `ROS 2 Dashing Diademata - Patch Release 4 `_ for macOS; let's assume that it ends up at ``~/Downloads/ros2-release-distro-date-macos-amd64.tar.bz2``. - - * Note: OSX binary builds are only provided for Dashing up until `ROS 2 Dashing Diademata - Patch Release 4 `_ due to changes with OSX and/or homebrew that made it difficult to target OSX Sierra. - * Note: there may be more than one binary download option which might cause the file name to differ. - -* - Unpack it: - - .. code-block:: bash - - mkdir -p ~/ros2_dashing - cd ~/ros2_dashing - tar xf ~/Downloads/ros2-release-distro-date-macos-amd64.tar.bz2 - -Install additional DDS implementations (optional) -------------------------------------------------- - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Environment setup ------------------ - -Source the ROS 2 setup file: - -.. code-block:: bash - - . ~/ros2_dashing/ros2-osx/setup.bash - -Try some examples ------------------ - -In one terminal, set up the ROS 2 environment as described above and then run a C++ ``talker``: - -.. code-block:: bash - - ros2 run demo_nodes_cpp talker - -In another terminal, set up the ROS 2 environment and then run a Python ``listener``: - -.. code-block:: 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! - - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Dashing install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_dashing diff --git a/source/Installation/Eloquent.rst b/source/Installation/Eloquent.rst deleted file mode 100644 index e81182a232c..00000000000 --- a/source/Installation/Eloquent.rst +++ /dev/null @@ -1,38 +0,0 @@ -.. _EloquentInstall: - -Installing ROS 2 Eloquent Elusor -================================ - -.. toctree:: - :hidden: - :glob: - - Eloquent/* - -Binary packages ---------------- - -We provide ROS 2 binary packages for the following platforms: - -* Linux (Ubuntu Bionic(18.04)) - - * `Debian packages ` - * `"fat" archive ` - -* `macOS ` -* `Windows ` - - -.. _Eloquent_building-from-source: - -Building from source --------------------- - -We support building ROS 2 from source on the following platforms: - - -* `Linux ` -* `macOS ` -* `Windows ` - -.. include:: _Install-Types.rst diff --git a/source/Installation/Eloquent/Fedora-Development-Setup.rst b/source/Installation/Eloquent/Fedora-Development-Setup.rst deleted file mode 100644 index af392f2c2d1..00000000000 --- a/source/Installation/Eloquent/Fedora-Development-Setup.rst +++ /dev/null @@ -1,62 +0,0 @@ -.. redirect-from:: - - Fedora-Development-Setup - Installation/Fedora-Development-Setup - -Building ROS 2 on Fedora Linux -============================== - -How to setup the development environment? ------------------------------------------ - -The following system dependencies are required to build ROS 2 on Fedora. They can be installed with ``dnf`` as follows: - -.. code-block:: bash - - $ sudo dnf install \ - asio-devel \ - cmake \ - cppcheck \ - eigen3-devel \ - gcc-c++ \ - liblsan \ - libXaw-devel \ - libyaml-devel \ - make \ - opencv-devel \ - patch \ - python3-argcomplete \ - python3-colcon-common-extensions \ - python3-coverage \ - python3-devel \ - python3-empy \ - python3-lark-parser \ - python3-lxml \ - python3-mock \ - python3-mypy \ - python3-nose \ - python3-pep8 \ - python3-pip \ - python3-pydocstyle \ - python3-pyflakes \ - python3-pyparsing \ - python3-pytest \ - python3-pytest-cov \ - python3-pytest-mock \ - python3-pytest-runner \ - python3-rosdep \ - python3-setuptools \ - python3-vcstool \ - python3-yaml \ - poco-devel \ - poco-foundation \ - python3-flake8 \ - python3-flake8-import-order \ - redhat-rpm-config \ - tinyxml-devel \ - tinyxml2-devel \ - uncrustify \ - wget - - -With this done, you can follow the rest of the `instructions ` to fetch and build ROS 2. diff --git a/source/Installation/Eloquent/Linux-Development-Setup.rst b/source/Installation/Eloquent/Linux-Development-Setup.rst deleted file mode 100644 index b1d271a9c00..00000000000 --- a/source/Installation/Eloquent/Linux-Development-Setup.rst +++ /dev/null @@ -1,221 +0,0 @@ -.. redirect-from:: - - Linux-Development-Setup - Installation/Linux-Development-Setup - -Building ROS 2 on Linux -======================= - -.. contents:: Table of Contents - :depth: 2 - :local: - - -System requirements -------------------- -Target platforms for Eloquent Elusor are (see `REP 2000 `__): - -- Tier 1: Ubuntu Linux - Bionic Beaver (18.04) 64-bit - -Tier 3 platforms (not actively tested or supported) include: - -- Debian Linux - Stretch (9) -- Fedora 30, see `alternate instructions ` -- Arch Linux, see `alternate instructions `__ -- OpenEmbedded / webOS OSE, see `alternate instructions `__ - -System setup ------------- - -Set locale -^^^^^^^^^^ - -.. include:: ../_Linux-Set-Locale.rst - -Add the ROS 2 apt repository -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. include:: ../_Apt-Repositories.rst - -Install development tools and ROS tools -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: bash - - 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 - -.. _Eloquent_linux-dev-get-ros2-code: - -Get ROS 2 code --------------- - -Create a workspace and clone all repos: - -.. code-block:: bash - - mkdir -p ~/ros2_eloquent/src - cd ~/ros2_eloquent - wget https://raw.githubusercontent.com/ros2/ros2/eloquent/ros2.repos - vcs import src < ros2.repos - -.. _Eloquent_linux-development-setup-install-dependencies-using-rosdep: - -Install dependencies using rosdep ---------------------------------- - -.. code-block:: bash - - 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" - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the code in the workspace -------------------------------- -More info on working with a ROS workspace can be found in `this tutorial `. - -.. code-block:: bash - - cd ~/ros2_eloquent/ - 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 ``AMENT_IGNORE`` in the same manner as `CATKIN_IGNORE `__ 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 ``$ touch AMENT_IGNORE`` in the ``cam2image`` demo directory to leave it out of the build process. - -Optionally install all packages into a combined directory (rather than each package in a separate subdirectory). -On Windows due to limitations of the length of environment variables you should use this option when building workspaces with many (~ >> 100 packages). - -Also, if you have already installed ROS 2 from Debian make sure that you run the ``build`` command in a fresh environment. -You may want to make sure that you do not have ``source /opt/ros/${ROS_DISTRO}/setup.bash`` in your ``.bashrc``. - - -.. code-block:: bash - - colcon build --symlink-install --merge-install - -Afterwards source the ``local_setup.*`` from the ``install`` folder. - -Environment setup ------------------ - -Source the setup script -^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - . ~/ros2_eloquent/install/setup.bash - -Try some examples ------------------ - -In one terminal, source the setup file and then run a C++ ``talker``\ : - -.. code-block:: bash - - . ~/ros2_eloquent/install/local_setup.bash - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``\ : - -.. code-block:: bash - - . ~/ros2_eloquent/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! - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Alternate compilers -------------------- - -Using a different compiler besides gcc to compile ROS 2 is easy. If you set the environment variables ``CC`` and ``CXX`` to executables for a working C and C++ compiler, respectively, and retrigger CMake configuration (by using ``--force-cmake-config`` or by deleting the packages you want to be affected), CMake will reconfigure and use the different compiler. - -Clang -^^^^^ - -To configure CMake to detect and use Clang: - -.. code-block:: bash - - sudo apt install clang - export CC=clang - export CXX=clang++ - colcon build --cmake-force-configure - -TODO: using ThreadSanitizer, MemorySanitizer - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Eloquent install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_eloquent diff --git a/source/Installation/Eloquent/Linux-Install-Binary.rst b/source/Installation/Eloquent/Linux-Install-Binary.rst deleted file mode 100644 index 6c66e0bfdfc..00000000000 --- a/source/Installation/Eloquent/Linux-Install-Binary.rst +++ /dev/null @@ -1,152 +0,0 @@ -.. redirect-from:: - - Linux-Install-Binary - Installation/Linux-Install-Binary - -Installing ROS 2 on Linux -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on Linux from a pre-built binary package. - -.. note:: - - The pre-built binary does not include all ROS 2 packages. - All packages in the `ROS base variant `_ are included, and only a subset of packages in the `ROS desktop variant `_ are included. - The exact list of packages are described by the repositories listed in `this ros2.repos file `_. - -There are also `Debian packages ` available. - -System Requirements -------------------- - -We support Ubuntu Linux Bionic Beaver (18.04) and Ubuntu Xenial Xerus (16.04) on 64-bit x86 and 64-bit ARM. - -Note: Ardent and beta versions supported Ubuntu Xenial Xerus 16.04. - -Add the ROS 2 apt repository ----------------------------- - -.. include:: ../_Apt-Repositories.rst - -Downloading ROS 2 ------------------ - - -* Go `the releases page `_ -* Download the latest package for Linux; let's assume that it ends up at ``~/Downloads/ros2-eloquent-linux-x86_64.tar.bz2``. - - * Note: there may be more than one binary download option which might cause the file name to differ. - -* - Unpack it: - - .. code-block:: bash - - mkdir -p ~/ros2_eloquent - cd ~/ros2_eloquent - tar xf ~/Downloads/ros2-eloquent-linux-x86_64.tar.bz2 - -Installing and initializing rosdep ----------------------------------- - -.. code-block:: bash - - sudo apt update - sudo apt install -y python-rosdep - sudo rosdep init - rosdep update - -.. _Eloquent_linux-install-binary-install-missing-dependencies: - -Installing the missing dependencies ------------------------------------ - -Set your rosdistro according to the release you downloaded. - -.. code-block:: bash - - rosdep install --from-paths ros2-linux/share --ignore-src --rosdistro eloquent -y --skip-keys "console_bridge fastcdr fastrtps libopensplice67 libopensplice69 osrf_testing_tools_cpp poco_vendor rmw_connext_cpp rosidl_typesupport_connext_c rosidl_typesupport_connext_cpp rti-connext-dds-5.3.1 tinyxml_vendor tinyxml2_vendor urdfdom urdfdom_headers" - -#. *Optional*\ : if you want to use the ROS 1<->2 bridge, then you must also install ROS 1. - Follow the normal install instructions: https://wiki.ros.org/melodic/Installation/Ubuntu - -Installing the python3 libraries -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: bash - - sudo apt install -y libpython3-dev python3-pip - pip3 install -U argcomplete - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Environment setup ------------------ - -Sourcing the setup script -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - . ~/ros2_eloquent/ros2-linux/setup.bash - -Try some examples ------------------ - -In one terminal, source the setup file and then run a C++ ``talker``: - -.. code-block:: bash - - . ~/ros2_eloquent/ros2-linux/setup.bash - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``: - -.. code-block:: bash - - . ~/ros2_eloquent/ros2-linux/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! - - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found `here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Eloquent install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_eloquent diff --git a/source/Installation/Eloquent/Linux-Install-Debians.rst b/source/Installation/Eloquent/Linux-Install-Debians.rst deleted file mode 100644 index 86075a26013..00000000000 --- a/source/Installation/Eloquent/Linux-Install-Debians.rst +++ /dev/null @@ -1,131 +0,0 @@ -.. redirect-from:: - - Linux-Install-Debians - Installation/Linux-Install-Debians - -Installing ROS 2 via Debian Packages -==================================== - -.. contents:: Table of Contents - :depth: 2 - :local: - -Debian packages for ROS 2 Eloquent Elusor are available for Ubuntu Bionic. - -Resources ---------- - -* Status Page: - - * ROS 2 Eloquent (Ubuntu Bionic): `amd64 `__\ , `arm64 `__, `armhf `__ -* `Jenkins Instance `__ -* `Repositories `__ - - -Set locale ----------- - -.. include:: ../_Linux-Set-Locale.rst - -Setup Sources -------------- - -.. include:: ../_Apt-Repositories.rst - -.. _Eloquent_linux-install-debians-install-ros-2-packages: - -Install ROS 2 packages ----------------------- - -Update your apt repository caches after setting up the repositories. - -.. code-block:: bash - - sudo apt update - -Desktop Install (Recommended): ROS, RViz, demos, tutorials. - -.. code-block:: bash - - sudo apt install ros-eloquent-desktop - -ROS-Base Install (Bare Bones): Communication libraries, message packages, command line tools. -No GUI tools. - -.. code-block:: bash - - sudo apt install ros-eloquent-ros-base - -Environment setup ------------------ - -Sourcing the setup script -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - source /opt/ros/eloquent/setup.bash - -Install argcomplete (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -ROS 2 command line tools use argcomplete to autocompletion. -So if you want autocompletion, installing argcomplete is necessary. - -.. code-block:: bash - - sudo apt install -y python3-pip - pip3 install -U argcomplete - -Try some examples ------------------ - -If you installed ``ros-eloquent-desktop`` above you can try some examples. - -In one terminal, source the setup file and then run a C++ ``talker``\ : - -.. code-block:: bash - - source /opt/ros/eloquent/setup.bash - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``\ : - -.. code-block:: bash - - source /opt/ros/eloquent/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! - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found `here `. - -Uninstall ---------- - -If you need to uninstall ROS 2 or switch to a source-based install once you -have already installed from binaries, run the following command: - -.. code-block:: bash - - sudo apt remove ros-eloquent-* && sudo apt autoremove diff --git a/source/Installation/Eloquent/Windows-Development-Setup.rst b/source/Installation/Eloquent/Windows-Development-Setup.rst deleted file mode 100644 index e742acee69e..00000000000 --- a/source/Installation/Eloquent/Windows-Development-Setup.rst +++ /dev/null @@ -1,399 +0,0 @@ -.. redirect-from:: - - Windows-Development-Setup - Installation/Windows-Development-Setup - -Building ROS 2 on Windows -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This guide is about how to setup a development environment for ROS 2 on Windows. - -Prerequisites -------------- - -First follow the steps for `Installing Prerequisites ` on the Binary Installation page. - -Stop and return here when you reach the "Downloading ROS 2" section. - -Additional prerequisites -^^^^^^^^^^^^^^^^^^^^^^^^ - -When building from source you'll need a few additional prerequisites installed. - -Install additional prerequisites from Chocolatey -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -First install git: - -.. code-block:: bash - - > choco install -y git - -You will need to append the Git cmd folder ``C:\Program Files\Git\cmd`` to the PATH (you can do this by clicking the Windows icon, typing "Environment Variables", then clicking on "Edit the system environment variables". -In the resulting dialog, click "Environment Variables", the click "Path" on the bottom pane, then click "Edit" and add the path). - -Then install ``patch``: - -.. code-block:: bash - - > choco install -y patch - -You may need to close the cmd prompt and open a new one, but at this point you should be able to run ``git``\ , ``python``\ , ``cmake``\ , and ``patch.exe --version``. - -Install developer tools ------------------------ - -Now we are ready to install some our tools that we use to help in developing ROS 2. - -Let's start with ``vcstool``: - -.. code-block:: bash - - > pip install -U vcstool - -You can test it out by just running ``vcs`` (you should be able to do this in the same cmd prompt). - -Next, install ``colcon``: - -.. code-block:: bash - - > pip install -U colcon-common-extensions - -You can test it out by just running ``colcon`` (you should be able to do this in the same cmd prompt). - -Also, you should install ``curl``: - -.. code-block:: bash - - > choco install -y curl - -Install dependencies --------------------- - -Next install the latest version of ``setuptools`` and ``pip``: - -.. code-block:: bash - - > -m pip install -U setuptools pip - -Where ``PATH_TO_PYTHON_EXECUTABLE`` looks like: ``c:\python37\python.exe`` - -Then you can continue installing other Python dependencies: - -.. code-block:: bash - - > pip install -U catkin_pkg cryptography EmPy ifcfg lark-parser lxml numpy pyparsing pyyaml - -Next install testing tools like ``pytest`` and others: - -.. code-block:: bash - - > pip install -U pytest pytest-mock coverage mock - -Next install linters and checkers like ``flake8`` and others: - -.. code-block:: bash - - > pip install -U flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes mypy pep8 pydocstyle - -Next install cppcheck: - -.. code-block:: bash - - > choco install -y cppcheck - -Next install xmllint: - -* Download the `64 bit binary archives `__ of ``libxml2`` (and its dependencies ``iconv`` and ``zlib``) from https://www.zlatkovic.com/projects/libxml/ -* Unpack all archives into e.g. ``C:\xmllint`` -* Add ``C:\xmllint\bin`` to the ``PATH``. - -Install Qt5 -^^^^^^^^^^^ - -This section is only required if you are building rviz, but it comes with our default set of sources, so if you don't know, then assume you are building it. - -First get the installer from Qt's website: - -https://www.qt.io/download - -Select the Open Source version and then the ``Qt Online Installer for Windows``. - -Run the installer and install Qt5. -We recommend you install it to the default location of ``C:\Qt``, but if you choose somewhere else, make sure to update the paths below accordingly. -When selecting components to install, the only thing you absolutely need for bouncy and later is the appropriate MSVC 64-bit component under the ``Qt`` -> ``Qt 5.10.0`` tree. -We're using ``5.10.0`` as of the writing of this document and that's what we recommend since that's all we test on Windows, but later version will probably work too. -For bouncy and later, be sure to select ``MSVC 2017 64-bit``. For ardent use ``MSVC 2015 64-bit``. -After that, the default settings are fine. - -Finally, set the ``Qt5_DIR`` environment variable in the ``cmd.exe`` where you intend to build so that CMake can find it: - -.. code-block:: bash - - > set Qt5_DIR=C:\Qt\5.10.0\msvc2017_64 - : You could set it permanently with ``setx -m Qt5_DIR C:\Qt\5.10.0\msvc2017_64`` instead, but that requires Administrator. - -.. note:: - - This path might change based on which MSVC version you're using or if you installed it to a different directory. - -Set the environment variable QT_QPA_PLATFORM_PLUGIN_PATH to run some of the Qt examples: - -.. code-block:: bash - - > set QT_QPA_PLATFORM_PLUGIN_PATH=C:\Qt\5.12.2\msvc2017_64\plugins\platforms - : You could set it permanently with ``setx -m QT_QPA_PLATFORM_PLUGIN_PATH C:\Qt\5.12.2\msvc2017_64\plugins\platforms`` instead, but that requires Administrator. - -You can also do this by clicking the Windows icon, typing "Environment Variables", then clicking on "Edit the system environment variables". In the resulting dialog, click "Environment Variables", the click "Path" on the bottom pane, then click "Edit" and add the path). - -RQt dependencies -~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - > pip install -U pydot PyQt5 - -Get the ROS 2 code ------------------- - -Now that we have the development tools we can get the ROS 2 source code. - -First setup a development folder, for example ``C:\dev\ros2_eloquent``: - -.. code-block:: bash - - > md \dev\ros2_eloquent\src - > cd \dev\ros2_eloquent - -Get the ``ros2.repos`` file which defines the repositories to clone from: - -.. code-block:: bash - - # CMD - > curl -sk https://raw.githubusercontent.com/ros2/ros2/eloquent/ros2.repos -o ros2.repos - - # PowerShell - > curl https://raw.githubusercontent.com/ros2/ros2/eloquent/ros2.repos -o ros2.repos - -Next you can use ``vcs`` to import the repositories listed in the ``ros2.repos`` file: - -.. code-block:: bash - - # CMD - > vcs import src < ros2.repos - - # PowerShell - > vcs import --input ros2.repos src - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the ROS 2 code --------------------- - -.. _windows-dev-build-ros2: - -To build ROS 2 you will need a Visual Studio Command Prompt ("x64 Native Tools Command Prompt for VS 2019") running as Administrator. - -Fast RTPS is bundled with the ROS 2 source and will always be built unless you put an ``AMENT_IGNORE`` file in the ``src\eProsima`` folder. - -To build the ``\dev\ros2_eloquent`` folder tree: - -.. code-block:: bash - - > colcon build --merge-install - -.. note:: - - We're using ``--merge-install`` here to avoid a ``PATH`` variable that is too long at the end of the build. - If you're adapting these instructions to build a smaller workspace then you might be able to use the default behavior which is isolated install, i.e. where each package is installed to a different folder. - -.. note:: - - If you are doing a debug build use ``python_d path\to\colcon_executable`` ``colcon``. - See `Extra stuff for debug mode`_ for more info on running Python code in debug builds on Windows. - -Environment setup ------------------ - -Start a command shell and source the ROS 2 setup file to set up the workspace: - -.. code-block:: bash - - > call C:\dev\ros2_eloquent\install\local_setup.bat - -This will automatically set up the environment for any DDS vendors that support was built for. - -It is normal that the previous command, if nothing else went wrong, outputs "The system cannot find the path specified." exactly once. - -Test and run ------------- - -Note that the first time you run any executable you will have to allow access to the network through a Windows Firewall popup. - -You can run the tests using this command: - -.. code-block:: bash - - > colcon test --merge-install - -.. note:: - - ``--merge-install`` should only be used if it was also used in the build step. - -Afterwards you can get a summary of the tests using this command: - -.. code-block:: bash - - > colcon test-result - -To run the examples, first open a clean new ``cmd.exe`` and set up the workspace by sourcing the ``local_setup.bat`` file. -Then, run a C++ ``talker``\ : - -.. code-block:: bash - - > call install\local_setup.bat - > ros2 run demo_nodes_cpp talker - -In a separate shell you can do the same, but instead run a Python ``listener``\ : - -.. code-block:: bash - - > call install\local_setup.bat - > 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! - -.. note:: - - It is not recommended to build in the same cmd prompt that you've sourced the ``local_setup.bat``. - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - - -Extra stuff for Debug mode --------------------------- - -If you want to be able to run all the tests in Debug mode, you'll need to install a few more things: - - -* To be able to extract the Python source tarball, you can use PeaZip: - -.. code-block:: bash - - > choco install -y peazip - - -* You'll also need SVN, since some of the Python source-build dependencies are checked out via SVN: - -.. code-block:: bash - - > choco install -y svn hg - - -* You'll need to quit and restart the command prompt after installing the above. -* Get and extract the Python 3.7.3 source from the ``tgz``: - - * https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz - * To keep these instructions concise, please extract it to ``C:\dev\Python-3.7.3`` - -* Now, build the Python source in debug mode from a Visual Studio command prompt: - -.. code-block:: bash - - > cd C:\dev\Python-3.7.3\PCbuild - > get_externals.bat - > build.bat -p x64 -d - - -* Finally, copy the build products into the Python37 installation directories, next to the Release-mode Python executable and DLL's: - -.. code-block:: bash - - > cd C:\dev\Python-3.7.3\PCbuild\amd64 - > copy python_d.exe C:\Python37 /Y - > copy python37_d.dll C:\Python37 /Y - > copy python3_d.dll C:\Python37 /Y - > copy python37_d.lib C:\Python37\libs /Y - > copy python3_d.lib C:\Python37\libs /Y - > for %I in (*_d.pyd) do copy %I C:\Python37\DLLs /Y - - -* Now, from a fresh command prompt, make sure that ``python_d`` works: - -.. code-block:: bash - - > python_d - > import _ctypes - -* Once you have verified the operation of ``python_d``, it is necessary to reinstall a few dependencies with the debug-enabled libraries: - -.. code-block:: bash - - > python_d -m pip install --force-reinstall https://github.com/ros2/ros2/releases/download/numpy-archives/numpy-1.16.2-cp37-cp37dm-win_amd64.whl - > python_d -m pip install --force-reinstall https://github.com/ros2/ros2/releases/download/lxml-archives/lxml-4.3.2-cp37-cp37dm-win_amd64.whl - -* To verify the installation of these dependencies: - -.. code-block:: bash - - > python_d - # No import errors should appear when executing the following lines - > from lxml import etree - > import numpy - -* When you wish to return to building release binaries, it is necessary to uninstall the debug variants and use the release variants: - -.. code-block:: bash - - > python -m pip uninstall numpy lxml - > python -m pip install numpy lxml - -* To create executables python scripts(.exe), python_d should be used to invoke colcon - -.. code-block:: bash - - > python_d path\to\colcon_executable build - -* Hooray, you're done! - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Eloquent install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rmdir /s /q \ros2_eloquent diff --git a/source/Installation/Eloquent/Windows-Install-Binary.rst b/source/Installation/Eloquent/Windows-Install-Binary.rst deleted file mode 100644 index d95d9cdb2ed..00000000000 --- a/source/Installation/Eloquent/Windows-Install-Binary.rst +++ /dev/null @@ -1,236 +0,0 @@ -.. redirect-from:: - - Windows-Install-Binary - Installation/Windows-Install-Binary - -Installing ROS 2 on Windows -=========================== - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on Windows from a pre-built binary package. - -.. note:: - - The pre-built binary does not include all ROS 2 packages. - All packages in the `ROS base variant `_ are included, and only a subset of packages in the `ROS desktop variant `_ are included. - The exact list of packages are described by the repositories listed in `this ros2.repos file `_. - -System requirements -------------------- - -Only Windows 10 is supported. - -.. _Eloquent_windows-install-binary-installing-prerequisites: - -Installing prerequisites ------------------------- - -Install Chocolatey -^^^^^^^^^^^^^^^^^^ - -Chocolatey is a package manager for Windows, install it by following their installation instructions: - -https://chocolatey.org/ - -You'll use Chocolatey to install some other developer tools. - -Install Python -^^^^^^^^^^^^^^ - -Open a Command Prompt and type the following to install Python via Chocolatey: - -.. code-block:: bash - - > choco install -y python --version 3.7.5 - -Install Visual C++ Redistributables -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Open a Command Prompt and type the following to install them via Chocolatey: - -.. code-block:: bash - - > choco install -y vcredist2013 vcredist140 - -Install OpenSSL -^^^^^^^^^^^^^^^ - -Download the *Win64 OpenSSL v1.0.2u* OpenSSL installer from `this page `__. -Scroll to the bottom of the page and download *Win64 OpenSSL v1.0.2u*. -Don't download the Win32 or Light versions or version 1.1.0 or newer. - -Run the installer with default parameters. -The following commands assume you used the default installation directory: - -* ``setx -m OPENSSL_CONF C:\OpenSSL-Win64\bin\openssl.cfg`` - -You will need to append the OpenSSL-Win64 bin folder to your PATH. -You can do this by clicking the Windows icon, typing "Environment Variables", then clicking on "Edit the system environment variables". -In the resulting dialog, click "Environment Variables", then click "Path" on the bottom pane, finally click "Edit" and add the path below. - -* ``C:\OpenSSL-Win64\bin\`` - -Install Visual Studio -^^^^^^^^^^^^^^^^^^^^^ - -Install Visual Studio 2019. - -If you already have a paid version of Visual Studio 2019 (Professional, Enterprise), skip this step. - -Microsoft provides a free of charge version of Visual Studio 2019, named Community, which can be used to build applications that use ROS 2: - - https://visualstudio.microsoft.com/downloads/ - -Make sure that the Visual C++ features are installed. - -An easy way to make sure they're installed is to select the ``Desktop development with C++`` workflow during the install. - -Make sure that no C++ CMake tools are installed by unselecting them in the list of components to be installed as in the image below. - - .. image:: https://i.imgur.com/F2TONuw.png - - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Install OpenCV -^^^^^^^^^^^^^^ - -Some of the examples require OpenCV to be installed. - -You can download a precompiled version of OpenCV 3.4.6 from https://github.com/ros2/ros2/releases/download/opencv-archives/opencv-3.4.6-vc16.VS2019.zip . - -Assuming you unpacked it to ``C:\opencv``\ , type the following on a Command Prompt (requires Admin privileges): - -.. code-block:: bash - - setx -m OpenCV_DIR C:\opencv - -Since you are using a precompiled ROS version, we have to tell it where to find the OpenCV libraries. -You have to extend the ``PATH`` variable to ``C:\opencv\x64\vc16\bin``. - -Install dependencies -^^^^^^^^^^^^^^^^^^^^ - -There are a few dependencies not available in the Chocolatey package database. -In order to ease the manual installation process, we provide the necessary Chocolatey packages. - -As some chocolatey packages rely on it, we start by installing CMake - -.. code-block:: bash - - > choco install -y cmake - -You will need to append the CMake bin folder ``C:\Program Files\CMake\bin`` to your PATH. - -Please download these packages from `this `__ GitHub repository. - -* asio.1.12.1.nupkg -* cunit.2.1.3.nupkg -* eigen-3.3.4.nupkg -* tinyxml-usestl.2.6.2.nupkg -* tinyxml2.6.0.0.nupkg -* log4cxx.0.10.0.nupkg - -Once these packages are downloaded, open an administrative shell and execute the following command: - -.. code-block:: bash - - > choco install -y -s asio cunit eigen tinyxml-usestl tinyxml2 log4cxx - -Please replace ```` with the folder you downloaded the packages to. - -You must also install some python dependencies for command-line tools: - -.. code-block:: bash - - python -m pip install -U catkin_pkg cryptography empy ifcfg lark-parser lxml netifaces numpy opencv-python pyparsing pyyaml setuptools - -RQt dependencies -~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - python -m pip install -U pydot PyQt5 - -Downloading ROS 2 ------------------ - -* Go the releases page: https://github.com/ros2/ros2/releases -* Download the latest package for Windows, e.g., ``ros2-eloquent-*-windows-AMD64.zip``. - -.. note:: - - There may be more than one binary download option which might cause the file name to differ. - -.. note:: - - To download the ROS 2 debug libraries you'll need to download ``ros2-eloquent-*-windows-debug-AMD64.zip`` - -* Unpack the zip file somewhere (we'll assume ``C:\dev\ros2_eloquent``\ ). - -Environment setup ------------------ - -Start a command shell and source the ROS 2 setup file to set up the workspace: - -.. code-block:: bash - - > call C:\dev\ros2_eloquent\local_setup.bat - -It is normal that the previous command, if nothing else went wrong, outputs "The system cannot find the path specified." exactly once. - -Try some examples ------------------ - -In a command shell, set up the ROS 2 environment as described above and then run a C++ ``talker``\ : - -.. code-block:: bash - - > ros2 run demo_nodes_cpp talker - -Start another command shell and run a Python ``listener``\ : - -.. code-block:: 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! - - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Eloquent install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rmdir /s /q \ros2_eloquent diff --git a/source/Installation/Eloquent/macOS-Development-Setup.rst b/source/Installation/Eloquent/macOS-Development-Setup.rst deleted file mode 100644 index 42a43a94825..00000000000 --- a/source/Installation/Eloquent/macOS-Development-Setup.rst +++ /dev/null @@ -1,225 +0,0 @@ -.. redirect-from:: - - OSX-Development-Setup - Installation/OSX-Development-Setup - -.. redirect-from:: - - macOS-Development-Setup - Installation/macOS-Development-Setup - -Building ROS 2 on macOS -======================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -System requirements -------------------- - -We support macOS 10.14 (Mojave). - -However, some older versions like 10.13.x are known to work as well. - -Install prerequisites ---------------------- - -You need the following things installed to build ROS 2: - - -#. - **Xcode** - - - * - If you don't already have it installed, install Xcode and the Command Line Tools: - - .. code-block:: bash - - xcode-select --install - sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer - -#. - **brew** *(needed to install more stuff; you probably already have this)*: - - - * Follow installation instructions at http://brew.sh/ - * - *Optional*: Check that ``brew`` is happy with your system configuration by running: - - .. code-block:: bash - - brew doctor - - Fix any problems that it identifies. - -#. - Use ``brew`` to install more stuff: - - .. code-block:: bash - - brew install cmake cppcheck eigen pcre poco python3 tinyxml wget - - # install dependencies for Fast-RTPS if you are using it - brew install asio tinyxml2 - - brew install opencv - - # install console_bridge for rosbag2 - brew install console_bridge - - # install OpenSSL for DDS-Security - brew install openssl - # if you are using ZSH, then replace '.bashrc' with '.zshrc' - echo "export OPENSSL_ROOT_DIR=$(brew --prefix openssl)" >> ~/.bashrc - - # install dependencies for rcl_logging_log4cxx - brew install log4cxx - - # install CUnit for Cyclone DDS - brew install cunit - -#. - Install rviz dependencies - - .. code-block:: bash - - # install dependencies for Rviz - brew install qt freetype assimp - - # Add the Qt directory to the PATH and CMAKE_PREFIX_PATH - export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/usr/local/opt/qt - export PATH=$PATH:/usr/local/opt/qt/bin - -#. - Install rqt dependencies - - ``brew install graphviz pyqt5 sip`` - - Fix some path names when looking for sip stuff during install (see `ROS 1 wiki `__): - - ``ln -s /usr/local/share/sip/Qt5 /usr/local/share/sip/PyQt5`` - -#. - Use ``python3 -m pip`` (just ``pip`` may install Python3 or Python2) to install more stuff: - - .. code-block:: bash - - python3 -m pip install -U argcomplete catkin_pkg colcon-common-extensions coverage cryptography empy flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes ifcfg lark-parser lxml mock mypy netifaces nose pep8 pydocstyle pydot pygraphviz pyparsing pytest-mock rosdep setuptools vcstool - - Please ensure that the ``$PATH`` environment variable contains the install location of the binaries (default: ``$HOME/Library/Python//bin``) - -#. - *Optional*: if you want to build the ROS 1<->2 bridge, then you must also install ROS 1: - - - * Start with the normal install instructions: https://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source - * - When you get to the step where you call ``rosinstall_generator`` to get the source code, here's an alternate invocation that brings in just the minimum required to produce a useful bridge: - - .. code-block:: bash - - rosinstall_generator catkin common_msgs roscpp rosmsg --rosdistro kinetic --deps --wet-only --tar > kinetic-ros2-bridge-deps.rosinstall - wstool init -j8 src kinetic-ros2-bridge-deps.rosinstall - - - Otherwise, just follow the normal instructions, then source the resulting ``install_isolated/setup.bash`` before proceeding here to build ROS 2. - -Disable System Integrity Protection (SIP) ------------------------------------------ - -macOS/OS X versions >=10.11 have System Integrity Protection enabled by default. -So that SIP doesn't prevent processes from inheriting dynamic linker environment variables, such as ``DYLD_LIBRARY_PATH``, you'll need to disable it `following these instructions `__. - -Get the ROS 2 code ------------------- - -Create a workspace and clone all repos: - -.. code-block:: bash - - mkdir -p ~/ros2_eloquent/src - cd ~/ros2_eloquent - wget https://raw.githubusercontent.com/ros2/ros2/eloquent/ros2.repos - vcs import src < ros2.repos - -Install additional DDS vendors (optional) ------------------------------------------ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the ROS 2 code --------------------- -Run the ``colcon`` tool to build everything (more on using ``colcon`` in `this tutorial `): - -.. code-block:: bash - - cd ~/ros2_eloquent/ - colcon build --symlink-install - -Environment setup ------------------ - -Source the ROS 2 setup file: - -.. code-block:: bash - - . ~/ros2_eloquent/install/setup.bash - -This will automatically set up the environment for any DDS vendors that support was built for. - -Try some examples ------------------ - -In one terminal, set up the ROS 2 environment as described above and then run a C++ ``talker``: - -.. code-block:: bash - - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``: - -.. code-block:: 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! - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Eloquent install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_eloquent diff --git a/source/Installation/Eloquent/macOS-Install-Binary.rst b/source/Installation/Eloquent/macOS-Install-Binary.rst deleted file mode 100644 index 9b50d808ec9..00000000000 --- a/source/Installation/Eloquent/macOS-Install-Binary.rst +++ /dev/null @@ -1,206 +0,0 @@ -.. redirect-from:: - - OSX-Install-Binary - Installation/OSX-Install-Binary - -.. redirect-from:: - - macOS-Install-Binary - Installation/macOS-Install-Binary - -Installing ROS 2 on macOS -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on macOS from a pre-built binary package. - -.. note:: - - The pre-built binary does not include all ROS 2 packages. - All packages in the `ROS base variant `_ are included, and only a subset of packages in the `ROS desktop variant `_ are included. - The exact list of packages are described by the repositories listed in `this ros2.repos file `_. - -System requirements -------------------- - -We support macOS 10.14 (Mojave). - -.. _Eloquent_osx-install-binary-installling-prerequisites: - -Installing prerequisites ------------------------- - -You need the following things installed before installing ROS 2. - - -* - **brew** *(needed to install more stuff; you probably already have this)*: - - - * Follow installation instructions at http://brew.sh/ - * - *Optional*: Check that ``brew`` is happy with your system configuration by running: - - .. code-block:: bash - - brew doctor - - - Fix any problems that it identifies. - -* - Use ``brew`` to install more stuff: - - .. code-block:: bash - - brew install python3 - - # install asio and tinyxml2 for Fast-RTPS - brew install asio tinyxml2 - - # install dependencies for robot state publisher - brew install tinyxml eigen pcre poco - - # OpenCV isn't a dependency of ROS 2, but it is used by some demos. - brew install opencv - - # install OpenSSL for DDS-Security - brew install openssl - # if you are using ZSH, then replace '.bashrc' with '.zshrc' - echo "export OPENSSL_ROOT_DIR=$(brew --prefix openssl)" >> ~/.bashrc - - # install Qt for RViz - brew install qt freetype assimp - - # install console_bridge for rosbag2 - brew install console_bridge - - # install dependencies for rcl_logging_log4cxx - brew install log4cxx - - # install CUnit for Cyclone DDS - brew install cunit - -* - Install rqt dependencies - - ``brew install sip pyqt5`` - - Fix some path names when looking for sip stuff during install (see `ROS 1 wiki `__): - - ``ln -s /usr/local/share/sip/Qt5 /usr/local/share/sip/PyQt5`` - - ``brew install graphviz`` - - ``python3 -m pip install pygraphviz pydot`` - - .. note:: - - You may run into an issue installing ``pygraphviz``, "error: Error locating graphviz". - Try the following install command instead: - - .. code-block:: bash - - python3 -m pip install --install-option="--include-path=/usr/local/include/" --install-option="--library-path=/usr/local/lib/" pygraphviz - -* - Install SROS2 dependencies - - ``python3 -m pip install lxml`` - -* - Install additional runtime dependencies for command-line tools: - - .. code-block:: bash - - python3 -m pip install catkin_pkg cryptography empy ifcfg lark-parser lxml netifaces numpy pyparsing pyyaml setuptools argcomplete - -Disable System Integrity Protection (SIP) ------------------------------------------ - -macOS/OS X versions >=10.11 have System Integrity Protection enabled by default. -So that SIP doesn't prevent processes from inheriting dynamic linker environment variables, such as ``DYLD_LIBRARY_PATH``, you'll need to disable it `following these instructions `__. - -Downloading ROS 2 ------------------ - -* Go to the releases page: https://github.com/ros2/ros2/releases -* Download the latest package for macOS; let's assume that it ends up at ``~/Downloads/ros2-release-distro-date-macos-amd64.tar.bz2``. - - * Note: there may be more than one binary download option which might cause the file name to differ. - -* - Unpack it: - - .. code-block:: bash - - mkdir -p ~/ros2_eloquent - cd ~/ros2_eloquent - tar xf ~/Downloads/ros2-release-distro-date-macos-amd64.tar.bz2 - -Install additional DDS implementations (optional) -------------------------------------------------- - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Environment setup ------------------ - -Source the ROS 2 setup file: - -.. code-block:: bash - - . ~/ros2_eloquent/ros2-osx/setup.bash - -Try some examples ------------------ - -In one terminal, set up the ROS 2 environment as described above and then run a C++ ``talker``: - -.. code-block:: bash - - ros2 run demo_nodes_cpp talker - -In another terminal, set up the ROS 2 environment and then run a Python ``listener``: - -.. code-block:: 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! - - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Eloquent install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_eloquent diff --git a/source/Installation/Rolling/Fedora-Development-Setup.rst b/source/Installation/Fedora-Development-Setup.rst similarity index 100% rename from source/Installation/Rolling/Fedora-Development-Setup.rst rename to source/Installation/Fedora-Development-Setup.rst diff --git a/source/Installation/Foxy.rst b/source/Installation/Foxy.rst deleted file mode 100644 index 75f4b8ec3b0..00000000000 --- a/source/Installation/Foxy.rst +++ /dev/null @@ -1,38 +0,0 @@ -.. _FoxyInstall: - -Installing ROS 2 Foxy Fitzroy -============================= - -.. toctree:: - :hidden: - :glob: - - Foxy/* - -Binary packages ---------------- - -We provide ROS 2 binary packages for the following platforms: - -* Linux (Ubuntu Focal(20.04)) - - * `Debian packages ` - * `"fat" archive ` - -* `macOS ` -* `Windows ` - - -.. _Foxy_building-from-source: - -Building from source --------------------- - -We support building ROS 2 from source on the following platforms: - - -* `Linux ` -* `macOS ` -* `Windows ` - -.. include:: _Install-Types.rst diff --git a/source/Installation/Foxy/Fedora-Development-Setup.rst b/source/Installation/Foxy/Fedora-Development-Setup.rst deleted file mode 100644 index ffa159be528..00000000000 --- a/source/Installation/Foxy/Fedora-Development-Setup.rst +++ /dev/null @@ -1,57 +0,0 @@ -Building ROS 2 on Fedora Linux -============================== - -How to setup the development environment? ------------------------------------------ - -The following system dependencies are required to build ROS 2 on Fedora. They can be installed with ``dnf`` as follows: - -.. code-block:: bash - - $ sudo dnf install \ - asio-devel \ - cmake \ - cppcheck \ - eigen3-devel \ - gcc-c++ \ - liblsan \ - libXaw-devel \ - libyaml-devel \ - make \ - opencv-devel \ - patch \ - python3-argcomplete \ - python3-colcon-common-extensions \ - python3-coverage \ - python3-devel \ - python3-empy \ - python3-lark-parser \ - python3-lxml \ - python3-mock \ - python3-mypy \ - python3-nose \ - python3-pip \ - python3-pydocstyle \ - python3-pyflakes \ - python3-pyparsing \ - python3-pytest \ - python3-pytest-cov \ - python3-pytest-mock \ - python3-pytest-runner \ - python3-rosdep \ - python3-setuptools \ - python3-vcstool \ - python3-yaml \ - poco-devel \ - poco-foundation \ - python3-flake8 \ - python3-flake8-import-order \ - redhat-rpm-config \ - tinyxml-devel \ - tinyxml2-devel \ - uncrustify \ - wget - - -With this done, you can follow the rest of the `instructions ` to fetch and build ROS 2. - diff --git a/source/Installation/Foxy/Linux-Development-Setup.rst b/source/Installation/Foxy/Linux-Development-Setup.rst deleted file mode 100644 index 1f98f07271f..00000000000 --- a/source/Installation/Foxy/Linux-Development-Setup.rst +++ /dev/null @@ -1,217 +0,0 @@ -Building ROS 2 on Linux -======================= - -.. contents:: Table of Contents - :depth: 2 - :local: - - -System requirements -------------------- -Target platforms for Foxy Fitzroy are (see `REP 2000 `__): - -- Tier 1: Ubuntu Linux - Focal Fossa (20.04) 64-bit - -Tier 3 platforms (not actively tested or supported) include: - -- Debian Linux - Buster (10) -- Fedora 32, see `alternate instructions ` -- Arch Linux, see `alternate instructions `__ -- OpenEmbedded / webOS OSE, see `alternate instructions `__ - -System setup ------------- - -Set locale -^^^^^^^^^^ - -.. include:: ../_Linux-Set-Locale.rst - -Add the ROS 2 apt repository -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. include:: ../_Apt-Repositories.rst - -Install development tools and ROS tools -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: bash - - 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 \ - wget - # install some pip packages needed for testing - python3 -m pip install -U \ - argcomplete \ - flake8-blind-except \ - flake8-builtins \ - flake8-class-newline \ - flake8-comprehensions \ - flake8-deprecated \ - flake8-docstrings \ - flake8-import-order \ - flake8-quotes \ - pytest-repeat \ - pytest-rerunfailures \ - pytest - # 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 - -.. _Foxy_linux-dev-get-ros2-code: - -Get ROS 2 code --------------- - -Create a workspace and clone all repos: - -.. code-block:: bash - - mkdir -p ~/ros2_foxy/src - cd ~/ros2_foxy - wget https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos - vcs import src < ros2.repos - -Install dependencies using rosdep ---------------------------------- - -.. code-block:: bash - - sudo rosdep init - rosdep update - rosdep install --from-paths src --ignore-src --rosdistro foxy -y --skip-keys "console_bridge fastcdr fastrtps rti-connext-dds-5.3.1 urdfdom_headers" - -Install additional DDS implementations (optional) -------------------------------------------------- - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the code in the workspace -------------------------------- -More info on working with a ROS workspace can be found in `this tutorial `. - -.. code-block:: bash - - cd ~/ros2_foxy/ - 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 ``AMENT_IGNORE`` in the same manner as `CATKIN_IGNORE `__ 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 ``$ touch AMENT_IGNORE`` in the ``cam2image`` demo directory to leave it out of the build process. - -Optionally install all packages into a combined directory (rather than each package in a separate subdirectory). -On Windows due to limitations of the length of environment variables you should use this option when building workspaces with many (~ >> 100 packages). - -Also, if you have already installed ROS 2 from Debian make sure that you run the ``build`` command in a fresh environment. -You may want to make sure that you do not have ``source /opt/ros/${ROS_DISTRO}/setup.bash`` in your ``.bashrc``. - - -.. code-block:: bash - - colcon build --symlink-install --merge-install - -Afterwards source the ``local_setup.*`` from the ``install`` folder. - -Environment setup ------------------ - -Source the setup script -^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - . ~/ros2_foxy/install/setup.bash - -.. _latest-examples: - -Try some examples ------------------ - -In one terminal, source the setup file and then run a C++ ``talker``\ : - -.. code-block:: bash - - . ~/ros2_foxy/install/local_setup.bash - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``\ : - -.. code-block:: bash - - . ~/ros2_foxy/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! - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - - -Alternate compilers -------------------- - -Using a different compiler besides gcc to compile ROS 2 is easy. If you set the environment variables ``CC`` and ``CXX`` to executables for a working C and C++ compiler, respectively, and retrigger CMake configuration (by using ``--force-cmake-config`` or by deleting the packages you want to be affected), CMake will reconfigure and use the different compiler. - -Clang -^^^^^ - -To configure CMake to detect and use Clang: - -.. code-block:: bash - - sudo apt install clang - export CC=clang - export CXX=clang++ - colcon build --cmake-force-configure - -TODO: using ThreadSanitizer, MemorySanitizer - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Foxy install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_foxy diff --git a/source/Installation/Foxy/Linux-Install-Binary.rst b/source/Installation/Foxy/Linux-Install-Binary.rst deleted file mode 100644 index 021d7ec6799..00000000000 --- a/source/Installation/Foxy/Linux-Install-Binary.rst +++ /dev/null @@ -1,143 +0,0 @@ -Installing ROS 2 on Linux -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on Linux from a pre-built binary package. - -.. note:: - - The pre-built binary does not include all ROS 2 packages. - All packages in the `ROS base variant `_ are included, and only a subset of packages in the `ROS desktop variant `_ are included. - The exact list of packages are described by the repositories listed in `this ros2.repos file `_. - -There are also `Debian packages ` available. - -System Requirements -------------------- - -We support Ubuntu Linux Focal Fossa (20.04) 64-bit x86 and 64-bit ARM. - -Add the ROS 2 apt repository ----------------------------- - -.. include:: ../_Apt-Repositories.rst - -Downloading ROS 2 ------------------ - - -* Go `the releases page `_ -* Download the latest package for Linux; let's assume that it ends up at ``~/Downloads/ros2-foxy-linux-x86_64.tar.bz2``. - - * Note: there may be more than one binary download option which might cause the file name to differ. - -* - Unpack it: - - .. code-block:: bash - - mkdir -p ~/ros2_foxy - cd ~/ros2_foxy - tar xf ~/Downloads/ros2-foxy-linux-x86_64.tar.bz2 - -Installing and initializing rosdep ----------------------------------- - -.. code-block:: bash - - sudo apt update - sudo apt install -y python3-rosdep - sudo rosdep init - rosdep update - - -Installing the missing dependencies ------------------------------------ - -Set your rosdistro according to the release you downloaded. - -.. code-block:: bash - - rosdep install --from-paths ros2-linux/share --ignore-src --rosdistro foxy -y --skip-keys "console_bridge fastcdr fastrtps osrf_testing_tools_cpp poco_vendor rmw_connext_cpp rosidl_typesupport_connext_c rosidl_typesupport_connext_cpp rti-connext-dds-5.3.1 tinyxml_vendor tinyxml2_vendor urdfdom urdfdom_headers" - -#. *Optional*\ : if you want to use the ROS 1<->2 bridge, then you must also install ROS 1. - Follow the normal install instructions: https://wiki.ros.org/noetic/Installation/Ubuntu - -Installing the python3 libraries -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. code-block:: bash - - sudo apt install -y libpython3-dev python3-pip - pip3 install -U argcomplete - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Environment setup ------------------ - -Sourcing the setup script -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - . ~/ros2_foxy/ros2-linux/setup.bash - -Try some examples ------------------ - -In one terminal, source the setup file and then run a C++ ``talker``: - -.. code-block:: bash - - . ~/ros2_foxy/ros2-linux/setup.bash - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``: - -.. code-block:: bash - - . ~/ros2_foxy/ros2-linux/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! - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found `here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Foxy install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_foxy diff --git a/source/Installation/Foxy/Linux-Install-Debians.rst b/source/Installation/Foxy/Linux-Install-Debians.rst deleted file mode 100644 index 9dad984254a..00000000000 --- a/source/Installation/Foxy/Linux-Install-Debians.rst +++ /dev/null @@ -1,125 +0,0 @@ -Installing ROS 2 via Debian Packages -==================================== - -.. contents:: Table of Contents - :depth: 2 - :local: - -Debian packages for ROS 2 Foxy Fitzroy are available for Ubuntu Focal. - -Resources ---------- - -* Status Page: - - * ROS 2 Foxy (Ubuntu Focal): `amd64 `__\ , `arm64 `__ -* `Jenkins Instance `__ -* `Repositories `__ - -Set locale ----------- - -.. include:: ../_Linux-Set-Locale.rst - -Setup Sources -------------- - -.. include:: ../_Apt-Repositories.rst - -.. _Foxy_linux-install-debians-install-ros-2-packages: - -Install ROS 2 packages ----------------------- - -Update your apt repository caches after setting up the repositories. - -.. code-block:: bash - - sudo apt update - -Desktop Install (Recommended): ROS, RViz, demos, tutorials. - -.. code-block:: bash - - sudo apt install ros-foxy-desktop - -ROS-Base Install (Bare Bones): Communication libraries, message packages, command line tools. -No GUI tools. - -.. code-block:: bash - - sudo apt install ros-foxy-ros-base - -Environment setup ------------------ - -Sourcing the setup script -^^^^^^^^^^^^^^^^^^^^^^^^^ - -Set up your environment by sourcing the following file. - -.. code-block:: bash - - source /opt/ros/foxy/setup.bash - -Install argcomplete (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -ROS 2 command line tools use argcomplete to autocompletion. -So if you want autocompletion, installing argcomplete is necessary. - -.. code-block:: bash - - sudo apt install -y python3-pip - pip3 install -U argcomplete - -Try some examples ------------------ - -If you installed ``ros-foxy-desktop`` above you can try some examples. - -In one terminal, source the setup file and then run a C++ ``talker``\ : - -.. code-block:: bash - - source /opt/ros/foxy/setup.bash - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``\ : - -.. code-block:: bash - - source /opt/ros/foxy/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! - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found `here `. - -Uninstall ---------- - -If you need to uninstall ROS 2 or switch to a source-based install once you -have already installed from binaries, run the following command: - -.. code-block:: bash - - sudo apt remove ros-foxy-* && sudo apt autoremove diff --git a/source/Installation/Foxy/Windows-Development-Setup.rst b/source/Installation/Foxy/Windows-Development-Setup.rst deleted file mode 100644 index f9b034e4e38..00000000000 --- a/source/Installation/Foxy/Windows-Development-Setup.rst +++ /dev/null @@ -1,374 +0,0 @@ -Building ROS 2 on Windows -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This guide is about how to set up a development environment for ROS 2 on Windows. - -Prerequisites -------------- - -First follow the steps for `Installing Prerequisites ` on the Binary Installation page. - -Stop and return here when you reach the "Downloading ROS 2" section. - -Additional prerequisites -^^^^^^^^^^^^^^^^^^^^^^^^ - -When building from source you'll need a few additional prerequisites installed. - -Install additional prerequisites from Chocolatey -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -First install git: - -.. code-block:: bash - - > choco install -y git - -You will need to append the Git cmd folder ``C:\Program Files\Git\cmd`` to the PATH (you can do this by clicking the Windows icon, typing "Environment Variables", then clicking on "Edit the system environment variables". -In the resulting dialog, click "Environment Variables", the click "Path" on the bottom pane, then click "Edit" and add the path). - - -Install developer tools ------------------------ - -Now we are ready to install some our tools that we use to help in developing ROS 2. - -Let's start with ``vcstool``: - -.. code-block:: bash - - > pip install -U vcstool - -You can test it out by just running ``vcs`` (you should be able to do this in the same cmd prompt). - -Next, install ``colcon``: - -.. code-block:: bash - - > pip install -U colcon-common-extensions - -You can test it out by just running ``colcon`` (you should be able to do this in the same cmd prompt). - -Also, you should install ``curl``: - -.. code-block:: bash - - > choco install -y curl - -Install dependencies --------------------- - -Next install the latest version of ``setuptools`` and ``pip``: - -.. code-block:: bash - - > -m pip install -U setuptools pip - -Where ``PATH_TO_PYTHON_EXECUTABLE`` looks like: ``c:\python38\python.exe`` - -Then you can continue installing other Python dependencies: - -.. code-block:: bash - - > pip install -U catkin_pkg cryptography EmPy ifcfg lark-parser lxml numpy pyparsing pyyaml - -Next install testing tools like ``pytest`` and others: - -.. code-block:: bash - - > pip install -U pytest pytest-mock coverage mock - -Next install linters and checkers like ``flake8`` and others: - -.. code-block:: bash - - > pip install -U flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes mypy pep8 pydocstyle - -Next install cppcheck: - -.. code-block:: bash - - > choco install -y cppcheck - -Next install xmllint: - -* Download the `64 bit binary archives `__ of ``libxml2`` (and its dependencies ``iconv`` and ``zlib``) from https://www.zlatkovic.com/projects/libxml/ -* Unpack all archives into e.g. ``C:\xmllint`` -* Add ``C:\xmllint\bin`` to the ``PATH``. - -Install Qt5 -^^^^^^^^^^^ - -This section is only required if you are building rviz, but it comes with our default set of sources, so if you don't know, then assume you are building it. - -First get the installer from Qt's website: - -https://www.qt.io/download - -Select the Open Source version and then the ``Qt Online Installer for Windows``. - -Run the installer and install Qt5. - -We recommend you install it to the default location of ``C:\Qt``, but if you choose somewhere else, make sure to update the paths below accordingly. -When selecting components to install, the only thing you absolutely need for Foxy and later is the appropriate MSVC 64-bit component under the ``Qt`` -> ``Qt 5.15.0`` tree. -We're using ``5.15.0`` as of the writing of this document and that's what we recommend since that's all we test on Windows, but later version will probably work too. -For Foxy and later, be sure to select ``MSVC 2019 64-bit``. -After that, the default settings are fine. - -Finally, set the ``Qt5_DIR`` environment variable in the ``cmd.exe`` where you intend to build so that CMake can find it: - -.. code-block:: bash - - > set Qt5_DIR=C:\Qt\5.15.0\msvc2019_64 - -You could set it permanently with ``setx -m Qt5_DIR C:\Qt\5.15.0\msvc2019_64`` instead, but that requires Administrator. - -.. note:: - - This path might change based on which MSVC version you're using or if you installed it to a different directory. - -Get the ROS 2 code ------------------- - -Now that we have the development tools we can get the ROS 2 source code. - -First setup a development folder, for example ``C:\dev\ros2_foxy``: - -.. code-block:: bash - - > md \dev\ros2_foxy\src - > cd \dev\ros2_foxy - -Get the ``ros2.repos`` file which defines the repositories to clone from: - -.. code-block:: bash - - # CMD - > curl -sk https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos -o ros2.repos - - # PowerShell - > curl https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos -o ros2.repos - -Next you can use ``vcs`` to import the repositories listed in the ``ros2.repos`` file: - -.. code-block:: bash - - # CMD - > vcs import src < ros2.repos - - # PowerShell - > vcs import --input ros2.repos src - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the ROS 2 code --------------------- - -.. _windows-dev-build-ros2: - -To build ROS 2 you will need a Visual Studio Command Prompt ("x64 Native Tools Command Prompt for VS 2019") running as Administrator. - -Fast RTPS is bundled with the ROS 2 source and will always be built unless you put an ``AMENT_IGNORE`` file in the ``src\eProsima`` folder. - -To build the ``\dev\ros2_foxy`` folder tree: - -.. code-block:: bash - - > colcon build --merge-install - -.. note:: - - We're using ``--merge-install`` here to avoid a ``PATH`` variable that is too long at the end of the build. - If you're adapting these instructions to build a smaller workspace then you might be able to use the default behavior which is isolated install, i.e. where each package is installed to a different folder. - -.. note:: - - If you are doing a debug build use ``python_d path\to\colcon_executable build --cmake-args -DCMAKE_BUILD_TYPE=Debug``. - See `Extra stuff for debug mode`_ for more info on running Python code in debug builds on Windows. - -Environment setup ------------------ - -Start a command shell and source the ROS 2 setup file to set up the workspace: - -.. code-block:: bash - - > call C:\dev\ros2_foxy\install\local_setup.bat - -This will automatically set up the environment for any DDS vendors that support was built for. - -It is normal that the previous command, if nothing else went wrong, outputs "The system cannot find the path specified." exactly once. - -Test and run ------------- - -Note that the first time you run any executable you will have to allow access to the network through a Windows Firewall popup. - -You can run the tests using this command: - -.. code-block:: bash - - > colcon test --merge-install - -.. note:: - - ``--merge-install`` should only be used if it was also used in the build step. - -Afterwards you can get a summary of the tests using this command: - -.. code-block:: bash - - > colcon test-result - -To run the examples, first open a clean new ``cmd.exe`` and set up the workspace by sourcing the ``local_setup.bat`` file. -Then, run a C++ ``talker``\ : - -.. code-block:: bash - - > call install\local_setup.bat - > ros2 run demo_nodes_cpp talker - -In a separate shell you can do the same, but instead run a Python ``listener``\ : - -.. code-block:: bash - - > call install\local_setup.bat - > 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! - -.. note:: - - It is not recommended to build in the same cmd prompt that you've sourced the ``local_setup.bat``. - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - - -Extra stuff for Debug mode --------------------------- - -If you want to be able to run all the tests in Debug mode, you'll need to install a few more things: - - -* To be able to extract the Python source tarball, you can use PeaZip: - -.. code-block:: bash - - > choco install -y peazip - - -* You'll also need SVN, since some of the Python source-build dependencies are checked out via SVN: - -.. code-block:: bash - - > choco install -y svn hg - - -* You'll need to quit and restart the command prompt after installing the above. -* Get and extract the Python 3.8.3 source from the ``tgz``: - - * https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz - * To keep these instructions concise, please extract it to ``C:\dev\Python-3.8.3`` - -* Now, build the Python source in debug mode from a Visual Studio command prompt: - -.. code-block:: bash - - > cd C:\dev\Python-3.8.3\PCbuild - > get_externals.bat - > build.bat -p x64 -d - - -* Finally, copy the build products into the Python38 installation directories, next to the Release-mode Python executable and DLL's: - -.. code-block:: bash - - > cd C:\dev\Python-3.8.3\PCbuild\amd64 - > copy python_d.exe C:\Python38 /Y - > copy python38_d.dll C:\Python38 /Y - > copy python3_d.dll C:\Python38 /Y - > copy python38_d.lib C:\Python38\libs /Y - > copy python3_d.lib C:\Python38\libs /Y - > for %I in (*_d.pyd) do copy %I C:\Python38\DLLs /Y - - -* Now, from a fresh command prompt, make sure that ``python_d`` works: - -.. code-block:: bash - - > python_d - >>> import _ctypes - -* Once you have verified the operation of ``python_d``, it is necessary to reinstall a few dependencies with the debug-enabled libraries: - -.. code-block:: bash - - > python_d -m pip install --force-reinstall https://github.com/ros2/ros2/releases/download/numpy-archives/numpy-1.18.4-cp38-cp38d-win_amd64.whl - > python_d -m pip install --force-reinstall https://github.com/ros2/ros2/releases/download/lxml-archives/lxml-4.5.1-cp38-cp38d-win_amd64.whl - -* To verify the installation of these dependencies: - -.. code-block:: bash - - > python_d - # No import errors should appear when executing the following lines - >>> from lxml import etree - >>> import numpy - -* When you wish to return to building release binaries, it is necessary to uninstall the debug variants and use the release variants: - -.. code-block:: bash - - > python -m pip uninstall numpy lxml - > python -m pip install numpy lxml - -* To create executables python scripts(.exe), python_d should be used to invoke colcon, along with the corresponding CMake build type. - If you installed colcon using pip, the path to the colcon executable can be found with ``pip show colcon-core``. - -.. code-block:: bash - - > python_d path\to\colcon_executable build --merge-install --cmake-args -DCMAKE_BUILD_TYPE=Debug - -* Hooray, you're done! - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Foxy install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rmdir /s /q \ros2_foxy diff --git a/source/Installation/Foxy/Windows-Install-Binary.rst b/source/Installation/Foxy/Windows-Install-Binary.rst deleted file mode 100644 index 765509b6602..00000000000 --- a/source/Installation/Foxy/Windows-Install-Binary.rst +++ /dev/null @@ -1,303 +0,0 @@ -Installing ROS 2 on Windows -=========================== - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on Windows from a pre-built binary package. - -.. note:: - - The pre-built binary does not include all ROS 2 packages. - All packages in the `ROS base variant `_ are included, and only a subset of packages in the `ROS desktop variant `_ are included. - The exact list of packages are described by the repositories listed in `this ros2.repos file `_. - -System requirements -------------------- - -Only Windows 10 is supported. - -.. _Foxy_windows-install-binary-installing-prerequisites: - -Installing prerequisites ------------------------- - -Install Chocolatey -^^^^^^^^^^^^^^^^^^ - -Chocolatey is a package manager for Windows, install it by following their installation instructions: - -https://chocolatey.org/ - -You'll use Chocolatey to install some other developer tools. - -Install Python -^^^^^^^^^^^^^^ - -Open a Command Prompt and type the following to install Python via Chocolatey: - -.. code-block:: bash - - > choco install -y python --version 3.8.3 - -ROS 2 expects the python installation to be available in directory ``C:\python38``. -Double check that it is installed there. - -Install Visual C++ Redistributables -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Open a Command Prompt and type the following to install them via Chocolatey: - -.. code-block:: bash - - > choco install -y vcredist2013 vcredist140 - -Install OpenSSL -^^^^^^^^^^^^^^^ - -Download the *Win64 OpenSSL v1.1.1h* OpenSSL installer from `this page `__. -Scroll to the bottom of the page and download *Win64 OpenSSL v1.1.1h*. -Don't download the Win32 or Light versions. - -Run the installer with default parameters. - -The following command sets an environment variable that persists over sessions. -Modify the command to match your installation directory: - -* ``setx -m OPENSSL_CONF "C:\Program Files\OpenSSL-Win64\bin\openssl.cfg"`` - -You will also need to append the OpenSSL-Win64 bin folder to your PATH. -You can do this by clicking the Windows icon, typing "Environment Variables", then clicking on "Edit the system environment variables". -In the resulting dialog, click "Environment Variables", then click "Path" on the bottom pane, finally click "Edit" and add the path below. - -* ``C:\Program Files\OpenSSL-Win64\bin\`` - -Install Visual Studio -^^^^^^^^^^^^^^^^^^^^^ - -Install Visual Studio 2019. - -If you already have a paid version of Visual Studio 2019 (Professional, Enterprise), skip this step. - -Microsoft provides a free of charge version of Visual Studio 2019, named Community, which can be used to build applications that use ROS 2: - - https://visualstudio.microsoft.com/downloads/ - -Make sure that the Visual C++ features are installed. - -An easy way to make sure they're installed is to select the ``Desktop development with C++`` workflow during the install. - - .. image:: https://i.imgur.com/2h0IxCk.png - -Make sure that no C++ CMake tools are installed by unselecting them in the list of components to be installed. - -Install additional DDS implementations (optional) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Install OpenCV -^^^^^^^^^^^^^^ - -Some of the examples require OpenCV to be installed. - -You can download a precompiled version of OpenCV 3.4.6 from https://github.com/ros2/ros2/releases/download/opencv-archives/opencv-3.4.6-vc16.VS2019.zip . - -Assuming you unpacked it to ``C:\opencv``\ , type the following on a Command Prompt (requires Admin privileges): - -.. code-block:: bash - - setx -m OpenCV_DIR C:\opencv - -Since you are using a precompiled ROS version, we have to tell it where to find the OpenCV libraries. -You have to extend the ``PATH`` variable to ``C:\opencv\x64\vc16\bin``. - -Install dependencies -^^^^^^^^^^^^^^^^^^^^ - -There are a few dependencies not available in the Chocolatey package database. -In order to ease the manual installation process, we provide the necessary Chocolatey packages. - -As some chocolatey packages rely on it, we start by installing CMake - -.. code-block:: bash - - > choco install -y cmake - -You will need to append the CMake bin folder ``C:\Program Files\CMake\bin`` to your PATH. - -Please download these packages from `this `__ GitHub repository. - -* asio.1.12.1.nupkg -* bullet.2.89.0.nupkg -* cunit.2.1.3.nupkg -* eigen-3.3.4.nupkg -* tinyxml-usestl.2.6.2.nupkg -* tinyxml2.6.0.0.nupkg -* log4cxx.0.10.0.nupkg - -Once these packages are downloaded, open an administrative shell and execute the following command: - -.. code-block:: bash - - > choco install -y -s asio cunit eigen tinyxml-usestl tinyxml2 log4cxx bullet - -Please replace ```` with the folder you downloaded the packages to. - -You must also install some python dependencies for command-line tools: - -.. code-block:: bash - - python -m pip install -U catkin_pkg cryptography empy ifcfg lark-parser lxml netifaces numpy opencv-python pyparsing pyyaml setuptools - -RQt dependencies -~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - python -m pip install -U pydot PyQt5 - -.. _Foxy_windows-install-binary-installing-rqt-dependencies: - -To run rqt_graph, you'll need `Graphviz `__. - -.. code-block:: bash - - > choco install graphviz - -You will need to append the Graphviz bin folder ``C:\Program Files (x86)\GraphvizX.XX\bin`` to your PATH, by navigating to "Edit the system environment variables" as described above. - -Downloading ROS 2 ------------------ - -* Go the releases page: https://github.com/ros2/ros2/releases -* Download the latest package for Windows, e.g., ``ros2-foxy-*-windows-AMD64.zip``. - -.. note:: - - There may be more than one binary download option which might cause the file name to differ. - -.. note:: - - To download the ROS 2 debug libraries you'll need to download ``ros2-foxy-*-windows-debug-AMD64.zip`` - -* Unpack the zip file somewhere (we'll assume ``C:\dev\ros2_foxy``\ ). - -Environment setup ------------------ - -Start a command shell and source the ROS 2 setup file to set up the workspace: - -.. tabs:: - - .. group-tab:: Command Prompt - - .. code-block:: bash - - > call C:\dev\ros2_foxy\local_setup.bat - - .. group-tab:: PowerShell - - .. code-block:: bash - - > C:\dev\ros2_foxy\local_setup.ps1 - -It is normal that the previous command, if nothing else went wrong, outputs "The system cannot find the path specified." exactly once. - -Try some examples ------------------ - -In a command shell, set up the ROS 2 environment as described above and then run a C++ ``talker``\ : - -.. code-block:: bash - - > ros2 run demo_nodes_cpp talker - -Start another command shell and run a Python ``listener``\ : - -.. code-block:: 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! - - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Foxy install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rmdir /s /q \ros2_foxy - -(Alternative) ROS 2 Build Installation from aka.ms/ros --------------------------------------------------------- - -https://aka.ms/ros project hosts ROS 2 builds against the release snapshots. -This section explains how to install ROS 2 from this channel. - -Install ROS 2 builds -^^^^^^^^^^^^^^^^^^^^ - -In an administrative command prompt, run the following commands. - -.. code-block:: bash - - > mkdir c:\opt\chocolatey - > set PYTHONNOUSERSITE=1 - > set ChocolateyInstall=c:\opt\chocolatey - > choco source add -n=ros-win -s="https://aka.ms/ros/public" --priority=1 - > choco upgrade ros-foxy-desktop -y --execution-timeout=0 - -Environment setup -^^^^^^^^^^^^^^^^^^ - -Start an administrative command prompt and source the ROS 2 setup file to set up the workspace: - -.. code-block:: bash - - > call C:\opt\ros\foxy\x64\local_setup.bat - -Stay up-to-date -^^^^^^^^^^^^^^^ - -To keep up-to-date with the latest builds, run: - -.. code-block:: bash - - > set ChocolateyInstall=c:\opt\chocolatey - > choco upgrade all -y --execution-timeout=0 - -Uninstall -^^^^^^^^^ - -If you want to completely remove the environment downloaded above, run this command: - -.. code-block:: bash - - > rmdir /s /q C:\opt\ diff --git a/source/Installation/Foxy/macOS-Development-Setup.rst b/source/Installation/Foxy/macOS-Development-Setup.rst deleted file mode 100644 index e51a7cc06eb..00000000000 --- a/source/Installation/Foxy/macOS-Development-Setup.rst +++ /dev/null @@ -1,224 +0,0 @@ -.. redirect-from:: - - Installation/Foxy/OSX-Development-Setup - -Building ROS 2 on macOS -======================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -System requirements -------------------- - -We support macOS 10.14 (Mojave). - -However, some new versions like 10.13.x and some older versions like 10.11.x and 10.10.x are known to work as well. - -Install prerequisites ---------------------- - -You need the following things installed to build ROS 2: - - -#. - **Xcode** - - - * - If you don't already have it installed, install Xcode and the Command Line Tools: - - .. code-block:: bash - - xcode-select --install - sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer - -#. - **brew** *(needed to install more stuff; you probably already have this)*: - - - * Follow installation instructions at http://brew.sh/ - * - *Optional*: Check that ``brew`` is happy with your system configuration by running: - - .. code-block:: bash - - brew doctor - - Fix any problems that it identifies. - -#. - Use ``brew`` to install more stuff: - - .. code-block:: bash - - brew install cmake cppcheck eigen pcre poco tinyxml wget bullet - - brew install python@3.8 - brew unlink python - # Make the python command be Python 3.8 - brew link --force python@3.8 - - # install dependencies for Fast-RTPS if you are using it - brew install asio tinyxml2 - - brew install opencv - - # install console_bridge for rosbag2 - brew install console_bridge - - # install OpenSSL for DDS-Security - brew install openssl - # if you are using ZSH, then replace '.bashrc' with '.zshrc' - echo "export OPENSSL_ROOT_DIR=$(brew --prefix openssl)" >> ~/.bashrc - - # install dependencies for rcl_logging - brew install log4cxx spdlog - - # install CUnit for Cyclone DDS - brew install cunit - -#. - Install rviz dependencies - - .. code-block:: bash - - # install dependencies for Rviz - brew install qt freetype assimp - - # Add the Qt directory to the PATH and CMAKE_PREFIX_PATH - export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/usr/local/opt/qt - export PATH=$PATH:/usr/local/opt/qt/bin - -#. - Install rqt dependencies - - ``brew install graphviz pyqt5 sip`` - - Fix some path names when looking for sip stuff during install (see `ROS 1 wiki `__): - - ``ln -s /usr/local/share/sip/Qt5 /usr/local/share/sip/PyQt5`` - -#. - Use ``python3 -m pip`` (just ``pip`` may install Python3 or Python2) to install more stuff: - - .. code-block:: bash - - python3 -m pip install -U argcomplete catkin_pkg colcon-common-extensions coverage cryptography empy flake8 flake8-blind-except flake8-builtins flake8-class-newline flake8-comprehensions flake8-deprecated flake8-docstrings flake8-import-order flake8-quotes ifcfg lark-parser lxml mock mypy netifaces nose pep8 pydocstyle pydot pygraphviz pyparsing pytest-mock rosdep setuptools vcstool - - Please ensure that the ``$PATH`` environment variable contains the install location of the binaries (default: ``$HOME/Library/Python//bin``) - -#. - *Optional*: if you want to build the ROS 1<->2 bridge, then you must also install ROS 1: - - - * Start with the normal install instructions: https://wiki.ros.org/kinetic/Installation/OSX/Homebrew/Source - * - When you get to the step where you call ``rosinstall_generator`` to get the source code, here's an alternate invocation that brings in just the minimum required to produce a useful bridge: - - .. code-block:: bash - - rosinstall_generator catkin common_msgs roscpp rosmsg --rosdistro kinetic --deps --wet-only --tar > kinetic-ros2-bridge-deps.rosinstall - wstool init -j8 src kinetic-ros2-bridge-deps.rosinstall - - - Otherwise, just follow the normal instructions, then source the resulting ``install_isolated/setup.bash`` before proceeding here to build ROS 2. - -Disable System Integrity Protection (SIP) ------------------------------------------ - -macOS/OS X versions >=10.11 have System Integrity Protection enabled by default. -So that SIP doesn't prevent processes from inheriting dynamic linker environment variables, such as ``DYLD_LIBRARY_PATH``, you'll need to disable it `following these instructions `__. - -Get the ROS 2 code ------------------- - -Create a workspace and clone all repos: - -.. code-block:: bash - - mkdir -p ~/ros2_foxy/src - cd ~/ros2_foxy - wget https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos - vcs import src < ros2.repos - -Install additional DDS vendors (optional) ------------------------------------------ - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Build the ROS 2 code --------------------- -Run the ``colcon`` tool to build everything (more on using ``colcon`` in `this tutorial `): - -.. code-block:: bash - - cd ~/ros2_foxy/ - colcon build --symlink-install - -Environment setup ------------------ - -Source the ROS 2 setup file: - -.. code-block:: bash - - . ~/ros2_foxy/install/setup.bash - -This will automatically set up the environment for any DDS vendors that support was built for. - -Try some examples ------------------ - -In one terminal, set up the ROS 2 environment as described above and then run a C++ ``talker``: - -.. code-block:: bash - - ros2 run demo_nodes_cpp talker - -In another terminal source the setup file and then run a Python ``listener``: - -.. code-block:: 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! - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - - -Stay up to date ---------------- - -See :ref:`MaintainingSource` to periodically refresh your source installation. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Foxy install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_foxy diff --git a/source/Installation/Foxy/macOS-Install-Binary.rst b/source/Installation/Foxy/macOS-Install-Binary.rst deleted file mode 100644 index b9be96d6467..00000000000 --- a/source/Installation/Foxy/macOS-Install-Binary.rst +++ /dev/null @@ -1,204 +0,0 @@ -.. redirect-from:: - - Installation/Foxy/OSX-Install-Binary - -Installing ROS 2 on macOS -========================= - -.. contents:: Table of Contents - :depth: 2 - :local: - -This page explains how to install ROS 2 on macOS from a pre-built binary package. - -.. note:: - - The pre-built binary does not include all ROS 2 packages. - All packages in the `ROS base variant `_ are included, and only a subset of packages in the `ROS desktop variant `_ are included. - The exact list of packages are described by the repositories listed in `this ros2.repos file `_. - -System requirements -------------------- - -We support macOS Mojave (10.14). - -.. _Foxy_osx-install-binary-installling-prerequisites: - -Installing prerequisites ------------------------- - -You need the following things installed before installing ROS 2. - - -* - **brew** *(needed to install more stuff; you probably already have this)*: - - - * Follow installation instructions at http://brew.sh/ - * - *Optional*: Check that ``brew`` is happy with your system configuration by running: - - .. code-block:: bash - - brew doctor - - - Fix any problems that it identifies. - -* - Use ``brew`` to install more stuff: - - .. code-block:: bash - - brew install python@3.8 - # Unlink in case you have python@3.7 installed already - brew unlink python - # Make the python command be Python 3.8 - brew link --force python@3.8 - - # install asio and tinyxml2 for Fast-RTPS - brew install asio tinyxml2 - - # install dependencies for robot state publisher - brew install tinyxml eigen pcre poco - - # OpenCV isn't a dependency of ROS 2, but it is used by some demos. - brew install opencv - - # install OpenSSL for DDS-Security - brew install openssl - # if you are using ZSH, then replace '.bashrc' with '.zshrc' - echo "export OPENSSL_ROOT_DIR=$(brew --prefix openssl)" >> ~/.bashrc - - # install Qt for RViz - brew install qt freetype assimp - - # install console_bridge for rosbag2 - brew install console_bridge - - # install dependencies for rcl_logging_log4cxx - brew install log4cxx spdlog - - # install CUnit for Cyclone DDS - brew install cunit - -* - Install rqt dependencies - - ``brew install sip pyqt5`` - - Fix some path names when looking for sip stuff during install (see `ROS 1 wiki `__): - - ``ln -s /usr/local/share/sip/Qt5 /usr/local/share/sip/PyQt5`` - - ``brew install graphviz`` - - ``python3 -m pip install pygraphviz pydot`` - - .. note:: - - You may run into an issue installing ``pygraphviz``, "error: Error locating graphviz". - Try the following install command instead: - - .. code-block:: bash - - python3 -m pip install --install-option="--include-path=/usr/local/include/" --install-option="--library-path=/usr/local/lib/" pygraphviz - -* - Install SROS2 dependencies - - ``python3 -m pip install lxml`` - -* - Install additional runtime dependencies for command-line tools: - - .. code-block:: bash - - python3 -m pip install catkin_pkg empy ifcfg lark-parser lxml netifaces numpy pyparsing pyyaml setuptools argcomplete - -Disable System Integrity Protection (SIP) ------------------------------------------ - -macOS/OS X versions >=10.11 have System Integrity Protection enabled by default. -So that SIP doesn't prevent processes from inheriting dynamic linker environment variables, such as ``DYLD_LIBRARY_PATH``, you'll need to disable it `following these instructions `__. - -Downloading ROS 2 ------------------ - -* Go to the releases page: https://github.com/ros2/ros2/releases -* Download the latest package for macOS; let's assume that it ends up at ``~/Downloads/ros2-release-distro-date-macos-amd64.tar.bz2``. - - * Note: there may be more than one binary download option which might cause the file name to differ. - -* - Unpack it: - - .. code-block:: bash - - mkdir -p ~/ros2_foxy - cd ~/ros2_foxy - tar xf ~/Downloads/ros2-release-distro-date-macos-amd64.tar.bz2 - -Install additional DDS implementations (optional) -------------------------------------------------- - -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. - -Environment setup ------------------ - -Source the ROS 2 setup file: - -.. code-block:: bash - - . ~/ros2_foxy/ros2-osx/setup.bash - -Try some examples ------------------ - -In one terminal, set up the ROS 2 environment as described above and then run a C++ ``talker``: - -.. code-block:: bash - - ros2 run demo_nodes_cpp talker - -In another terminal, set up the ROS 2 environment and then run a Python ``listener``: - -.. code-block:: 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! - - -Next steps after installing ---------------------------- -Continue with the `tutorials and demos ` to configure your environment, create your own workspace and packages, and learn ROS 2 core concepts. - -Using the ROS 1 bridge ----------------------- -The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the dedicated `documentation `__ on how to build and use the ROS 1 bridge. - -Additional RMW implementations (optional) ------------------------------------------ -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. -See the `tutorial ` on how to work with multiple RMWs. - -Troubleshooting ---------------- - -Troubleshooting techniques can be found :ref:`here `. - -Uninstall ---------- - -1. If you installed your workspace with colcon as instructed above, "uninstalling" could be just a matter of opening a new terminal and not sourcing the workspace's ``setup`` file. - This way, your environment will behave as though there is no Foxy install on your system. - -2. If you're also trying to free up space, you can delete the entire workspace directory with: - - .. code-block:: bash - - rm -rf ~/ros2_foxy diff --git a/source/Installation/Latest-Development-Setup.rst b/source/Installation/Latest-Development-Setup.rst index ae73ecc038a..9c11c1e7891 100644 --- a/source/Installation/Latest-Development-Setup.rst +++ b/source/Installation/Latest-Development-Setup.rst @@ -19,8 +19,8 @@ Building from source Follow the links below for the latest setup instructions for your platform: -* :ref:`Linux ` -* :ref:`macOS ` -* :ref:`Windows ` +* `Linux ` +* `macOS ` +* `Windows ` For keeping your source code up-to-date, see `Maintaining a Source Checkout `. diff --git a/source/Installation/Rolling/Linux-Development-Setup.rst b/source/Installation/Linux-Development-Setup.rst similarity index 97% rename from source/Installation/Rolling/Linux-Development-Setup.rst rename to source/Installation/Linux-Development-Setup.rst index 2abe68df16b..6265e05a88b 100644 --- a/source/Installation/Rolling/Linux-Development-Setup.rst +++ b/source/Installation/Linux-Development-Setup.rst @@ -29,12 +29,12 @@ System setup Set locale ^^^^^^^^^^ -.. include:: ../_Linux-Set-Locale.rst +.. include:: _Linux-Set-Locale.rst Add the ROS 2 apt repository ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. include:: ../_Apt-Repositories.rst +.. include:: _Apt-Repositories.rst Install development tools and ROS tools ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -97,6 +97,8 @@ Create a workspace and clone all repos: wget https://raw.githubusercontent.com/ros2/ros2/master/ros2.repos vcs import src < ros2.repos +.. _linux-development-setup-install-dependencies-using-rosdep: + Install dependencies using rosdep --------------------------------- @@ -109,7 +111,7 @@ Install dependencies using rosdep Install additional DDS implementations (optional) ------------------------------------------------- -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. +If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here `. Build the code in the workspace ------------------------------- @@ -150,6 +152,8 @@ Set up your environment by sourcing the following file. . ~/ros2_rolling/install/setup.bash +.. _talker-listener: + Try some examples ----------------- diff --git a/source/Installation/Rolling/Linux-Install-Binary.rst b/source/Installation/Linux-Install-Binary.rst similarity index 97% rename from source/Installation/Rolling/Linux-Install-Binary.rst rename to source/Installation/Linux-Install-Binary.rst index e4e101598f3..95c7c0d6dc1 100644 --- a/source/Installation/Rolling/Linux-Install-Binary.rst +++ b/source/Installation/Linux-Install-Binary.rst @@ -25,7 +25,7 @@ Most people will want to use a stable ROS distribution. Add the ROS 2 apt repository ---------------------------- -.. include:: ../_Apt-Repositories.rst +.. include:: _Apt-Repositories.rst Downloading ROS 2 ----------------- @@ -56,6 +56,7 @@ Installing and initializing rosdep sudo rosdep init rosdep update +.. _linux-install-binary-install-missing-dependencies: Installing the missing dependencies ----------------------------------- @@ -80,7 +81,7 @@ Installing the python3 libraries Install additional DDS implementations (optional) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. +If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here `. Environment setup ----------------- diff --git a/source/Installation/Rolling/Linux-Install-Debians.rst b/source/Installation/Linux-Install-Debians.rst similarity index 95% rename from source/Installation/Rolling/Linux-Install-Debians.rst rename to source/Installation/Linux-Install-Debians.rst index 9563db4d0da..051252cb2a0 100644 --- a/source/Installation/Rolling/Linux-Install-Debians.rst +++ b/source/Installation/Linux-Install-Debians.rst @@ -23,14 +23,16 @@ Resources Set locale ---------- -.. include:: ../_Linux-Set-Locale.rst +.. include:: _Linux-Set-Locale.rst + +.. _linux-install-debians-setup-sources: Setup Sources ------------- -.. include:: ../_Apt-Repositories.rst +.. include:: _Apt-Repositories.rst -.. _Rolling_linux-install-debians-install-ros-2-packages: +.. _linux-install-debians-install-ros-2-packages: Install ROS 2 packages ---------------------- diff --git a/source/Installation/Maintaining-a-Source-Checkout.rst b/source/Installation/Maintaining-a-Source-Checkout.rst index 5886bb4eddb..f1a7230e330 100644 --- a/source/Installation/Maintaining-a-Source-Checkout.rst +++ b/source/Installation/Maintaining-a-Source-Checkout.rst @@ -15,77 +15,6 @@ Update your repository list Each ROS 2 release includes a ``ros2.repos`` file that contains the list of repositories and their version for that release. -Release versions -^^^^^^^^^^^^^^^^ - -If you wish to update a particular release, you can get its repository list by specifying the codename of the release in the URL of the following step, e.g. foxy: - -.. tabs:: - - .. group-tab:: Linux - - .. code-block:: bash - - cd ~/ros2_ws - mv -i ros2.repos ros2.repos.old - wget https://raw.githubusercontent.com/ros2/ros2/release-foxy/ros2.repos - - .. group-tab:: macOS - - .. code-block:: bash - - cd ~/ros2_ws - mv -i ros2.repos ros2.repos.old - wget https://raw.githubusercontent.com/ros2/ros2/release-foxy/ros2.repos - - .. group-tab:: Windows - - .. code-block:: bash - - # CMD - > cd \dev\ros2 - > curl -sk https://raw.githubusercontent.com/ros2/ros2/release-foxy/ros2.repos -o ros2.repos - - # PowerShell - > cd \dev\ros2 - > curl https://raw.githubusercontent.com/ros2/ros2/release-foxy/ros2.repos -o ros2.repos - -The format of the name of the release comes from the tag associated with the release `here `__. - -Release development branches -^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -If you wish to checkout development branches for a particular release, you can get its repository list by specifying the codename of the release in the URL of the following step, e.g. foxy: - -.. tabs:: - - .. group-tab:: Linux - - .. code-block:: bash - - cd ~/ros2_ws - mv -i ros2.repos ros2.repos.old - wget https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos - - .. group-tab:: macOS - - .. code-block:: bash - - cd ~/ros2_ws - mv -i ros2.repos ros2.repos.old - wget https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos - - .. group-tab:: Windows - - .. code-block:: bash - - # CMD - > cd \dev\ros2 - > curl -sk https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos -o ros2.repos - - # PowerShell - > cd \dev\ros2 - > curl https://raw.githubusercontent.com/ros2/ros2/foxy/ros2.repos -o ros2.repos Latest development branches ^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/source/Installation/Prerelease-Testing.rst b/source/Installation/Prerelease-Testing.rst index e8ee5150008..0850a802d1b 100644 --- a/source/Installation/Prerelease-Testing.rst +++ b/source/Installation/Prerelease-Testing.rst @@ -31,7 +31,7 @@ For Debian-based operating systems, you can install binary packages from the **r .. code-block:: sh - sudo apt install ros-foxy-my-just-released-package + sudo apt install ros-rolling-my-just-released-package 5. Alternatively, you can move your entire ROS 2 installation to the testing repository: diff --git a/source/Installation/Rolling.rst b/source/Installation/Rolling.rst deleted file mode 100644 index b114ca5964d..00000000000 --- a/source/Installation/Rolling.rst +++ /dev/null @@ -1,40 +0,0 @@ -.. _RollingInstall: - -Installing ROS 2 Rolling Ridley -=============================== - -.. toctree:: - :hidden: - :glob: - - Rolling/* - -Binary packages ---------------- - -We currently provide ROS 2 binary packages for the following platforms: - -* Linux (Ubuntu Focal(20.04)) - - * `Debian packages ` - * `"fat" archive ` - -* `macOS ` -* `Windows ` - -As defined in `REP 2000 `_ - - -.. _Rolling_building-from-source: - -Building from source --------------------- - -We support building ROS 2 from source on the following platforms: - - -* `Linux ` -* `macOS ` -* `Windows ` - -.. include:: _Install-Types.rst diff --git a/source/Installation/_Install-Types.rst b/source/Installation/Summary.rst similarity index 64% rename from source/Installation/_Install-Types.rst rename to source/Installation/Summary.rst index 61a64e874e4..94e97367465 100644 --- a/source/Installation/_Install-Types.rst +++ b/source/Installation/Summary.rst @@ -1,3 +1,37 @@ +.. _RollingInstall: + +Installing ROS 2 Rolling Ridley +=============================== + + +Binary packages +--------------- + +We currently provide ROS 2 binary packages for the following platforms: + +* Linux (Ubuntu Focal(20.04)) + + * `Debian packages ` + * `"fat" archive ` + +* `macOS ` +* `Windows ` + +As defined in `REP 2000 `_ + + +.. _building-from-source: + +Building from source +-------------------- + +We support building ROS 2 from source on the following platforms: + + +* `Linux ` +* `macOS ` +* `Windows ` + Which install should you choose? -------------------------------- @@ -26,5 +60,3 @@ macOS and Windows users who choose to install from binary packages only have the **Building from source** is meant for developers looking to alter or explicitly omit parts of ROS 2's base. It is also recommended for platforms that don't support binaries. Building from source also gives you the option to install the absolute latest version of ROS 2. - -.. TODO: add reference to "General Install" instructions "...if you don't see your operating system" diff --git a/source/Installation/Rolling/Windows-Development-Setup.rst b/source/Installation/Windows-Development-Setup.rst similarity index 98% rename from source/Installation/Rolling/Windows-Development-Setup.rst rename to source/Installation/Windows-Development-Setup.rst index dd3228dde39..b9f17280e56 100644 --- a/source/Installation/Rolling/Windows-Development-Setup.rst +++ b/source/Installation/Windows-Development-Setup.rst @@ -12,7 +12,7 @@ This guide is about how to setup a development environment for ROS 2 on Windows. Prerequisites ------------- -First follow the steps for `Installing Prerequisites ` on the Binary Installation page. +First follow the steps for `Installing Prerequisites ` on the Binary Installation page. Stop and return here when you reach the "Downloading ROS 2" section. @@ -177,7 +177,7 @@ Next you can use ``vcs`` to import the repositories listed in the ``ros2.repos`` Install additional DDS implementations (optional) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. +If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here `. Build the ROS 2 code -------------------- diff --git a/source/Installation/Rolling/Windows-Install-Binary.rst b/source/Installation/Windows-Install-Binary.rst similarity index 99% rename from source/Installation/Rolling/Windows-Install-Binary.rst rename to source/Installation/Windows-Install-Binary.rst index 207c7cc9ea2..b8be051c8e5 100644 --- a/source/Installation/Rolling/Windows-Install-Binary.rst +++ b/source/Installation/Windows-Install-Binary.rst @@ -18,7 +18,7 @@ System requirements Only Windows 10 is supported. -.. _Rolling_windows-install-binary-installing-prerequisites: +.. _windows-install-binary-installing-prerequisites: Installing prerequisites ------------------------ @@ -90,7 +90,7 @@ Make sure that no C++ CMake tools are installed by unselecting them in the list Install additional DDS implementations (optional) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. +If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here `. Install OpenCV ^^^^^^^^^^^^^^ diff --git a/source/Installation/Rolling/macOS-Development-Setup.rst b/source/Installation/macOS-Development-Setup.rst similarity index 99% rename from source/Installation/Rolling/macOS-Development-Setup.rst rename to source/Installation/macOS-Development-Setup.rst index 86819823eb1..57a98430945 100644 --- a/source/Installation/Rolling/macOS-Development-Setup.rst +++ b/source/Installation/macOS-Development-Setup.rst @@ -148,7 +148,7 @@ Create a workspace and clone all repos: Install additional DDS vendors (optional) ----------------------------------------- -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. +If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here `. Build the ROS 2 code -------------------- diff --git a/source/Installation/Rolling/macOS-Install-Binary.rst b/source/Installation/macOS-Install-Binary.rst similarity index 99% rename from source/Installation/Rolling/macOS-Install-Binary.rst rename to source/Installation/macOS-Install-Binary.rst index 6e48aece672..6cd8a4b85be 100644 --- a/source/Installation/Rolling/macOS-Install-Binary.rst +++ b/source/Installation/macOS-Install-Binary.rst @@ -146,7 +146,7 @@ Instead you may download nightly `prerelease binaries `. Install additional DDS implementations (optional) ------------------------------------------------- -If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here <../DDS-Implementations>`. +If you would like to use another DDS or RTPS vendor besides the default, eProsima's Fast RTPS, you can find instructions `here `. Environment setup ----------------- diff --git a/source/Releases/Beta2-Overview.rst b/source/Releases/Beta2-Overview.rst index 573c88e6829..bd23834a2b1 100644 --- a/source/Releases/Beta2-Overview.rst +++ b/source/Releases/Beta2-Overview.rst @@ -22,7 +22,7 @@ Improvements since Beta 1 release ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ * DDS_Security support (aka SROS2, see `sros2 `__) -* Debian packages for Ubuntu Xenial (see `Debian install instructions <../Installation/Crystal/Linux-Install-Debians>`). +* Debian packages for Ubuntu Xenial * Typesupport has been redesigned so that you only build a single executable and can choose one of the available RMW implementations by setting an environment variable (see `documentation <../Tutorials/Working-with-multiple-RMW-implementations>`). * Namespace support for nodes and topics (see `design article `__, see known issues below). * A set of command-line tools using the extensible ``ros2`` command (see `tutorial <../Tutorials/Introspection-with-command-line-tools>`). diff --git a/source/Releases/Release-Dashing-Diademata.rst b/source/Releases/Release-Dashing-Diademata.rst index b534785c861..22207bc9875 100644 --- a/source/Releases/Release-Dashing-Diademata.rst +++ b/source/Releases/Release-Dashing-Diademata.rst @@ -33,7 +33,7 @@ For more information about RMW implementations, compiler / interpreter versions, Installation ------------ -`Install Dashing Diademata <../Installation/Dashing>` +`Install Dashing Diademata <../dashing/Installation/Summary.html>`__ New features in this ROS 2 release ---------------------------------- diff --git a/source/Releases/Release-Eloquent-Elusor.rst b/source/Releases/Release-Eloquent-Elusor.rst index 368c19a1001..8c0be65a890 100644 --- a/source/Releases/Release-Eloquent-Elusor.rst +++ b/source/Releases/Release-Eloquent-Elusor.rst @@ -33,7 +33,7 @@ For more information about RMW implementations, compiler / interpreter versions, Installation ------------ -`Install Eloquent Elusor <../Installation/Eloquent>` +`Install Eloquent Elusor <../eloquent/Installation/Summary.html>`__ New features in this ROS 2 release ---------------------------------- diff --git a/source/Releases/Release-Foxy-Fitzroy.rst b/source/Releases/Release-Foxy-Fitzroy.rst index 87039e99dc8..4a584a62c35 100644 --- a/source/Releases/Release-Foxy-Fitzroy.rst +++ b/source/Releases/Release-Foxy-Fitzroy.rst @@ -31,7 +31,7 @@ For more information about RMW implementations, compiler / interpreter versions, Installation ------------ -`Install Foxy Fitzroy <../Installation/Foxy>` +`Install Foxy Fitzroy <../foxy/Installation/Summary.html>`__ New features in this ROS 2 release ---------------------------------- diff --git a/source/Releases/Release-Rolling-Ridley.rst b/source/Releases/Release-Rolling-Ridley.rst index 08ec7abde09..34d4d0b4aa8 100644 --- a/source/Releases/Release-Rolling-Ridley.rst +++ b/source/Releases/Release-Rolling-Ridley.rst @@ -35,7 +35,7 @@ Tier 3 platforms: Installation ------------ -`Install Rolling Ridley <../Installation/Rolling>` +`Install Rolling Ridley <../Installation/Summary>` New features and changes in this release ---------------------------------------- diff --git a/source/Troubleshooting/Installation-Troubleshooting.rst b/source/Troubleshooting/Installation-Troubleshooting.rst index 132904965a4..a3f55d3c86e 100644 --- a/source/Troubleshooting/Installation-Troubleshooting.rst +++ b/source/Troubleshooting/Installation-Troubleshooting.rst @@ -141,42 +141,6 @@ If you see build errors related to Qt, e.g.: you may be using qt4 instead of qt5: see https://github.com/ros2/ros2/issues/441 -Qt build error: ``"mkspecs/macx-clang" but this file does not exist`` -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -.. only on Crystal - -To fix this error: - -.. code-block:: bash - - CMake Error at /usr/local/lib/cmake/Qt5Core/Qt5CoreConfig.cmake:15 (message): - The imported target "Qt5::Core" references the file - - "/usr/local/.//mkspecs/macx-clang" - - but this file does not exist. Possible reasons include: - - * The file was deleted, renamed, or moved to another location. - - * An install or uninstall procedure did not complete successfully. - - * The installation package was faulty and contained - - "/usr/local/lib/cmake/Qt5Core/Qt5CoreConfigExtras.cmake" - - but not all the files it references. - -link ``mkspecs`` and ``plugins`` folders to ``/usr/local/``: - -.. code-block:: bash - - export HOMEBREW_QT5_VERSION=5.12.3 # Specify appropriate Qt5 version here - sudo ln -s /usr/local/Cellar/qt/$HOMEBREW_QT5_VERSION/mkspecs /usr/local/mkspecs - sudo ln -s /usr/local/Cellar/qt/$HOMEBREW_QT5_VERSION/plugins /usr/local/plugins - -If you are on a previous version of Homebrew, the ``qt`` formula could still be called ``qt5``, so make corresponding changes to the paths above. - Missing symbol when opencv (and therefore libjpeg, libtiff, and libpng) are installed with Homebrew ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -267,7 +231,7 @@ While following the `Creating a workspace `). +If so, make sure to install all the dependencies listed in the "Installing prerequisites" sections of the `installation instructions `). If you are installing from binaries, you may need to update your dependencies: they must be the same version as those used to build the binaries. @@ -344,15 +308,8 @@ patch.exe opens a new command window and asks for administrator This will also cause the build of packages which need to use patch to fail, even you allow it to use administrator rights. -On Foxy or later: - - ``choco uninstall patch; colcon build --cmake-clean-cache`` - This is a bug in the `GNU Patch For Windows package `_. If this package is not installed, the build process will instead use the version of Patch distributed with git. -On Eloquent or earlier: - -- Make sure you're building in a Visual Studio command prompt which has been run as administrator. -- On some machines canceling the prompt without selecting "Yes" will also work. - Failed to load Fast RTPS shared library ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/source/Tutorials.rst b/source/Tutorials.rst index 35e10508e33..bbb9f15380c 100644 --- a/source/Tutorials.rst +++ b/source/Tutorials.rst @@ -8,12 +8,7 @@ Beginner The beginner-level tutorials are a collection of step-by-step instructions meant to introduce newcomers to ROS 2. It starts with using the Commandline Interface (CLI) tools, then moves on to the C++ and Python client libraries. - -.. warning:: - - Please walk through the tutorials for the first time in order, they build off of each other and are not meant to be comprehensive documentation. - These tutorials are under construction, so please share your `feedback `__. - The :ref:`Contact ` page includes more ways to get help. +Please walk through the tutorials for the first time in order, they build off of each other and are not meant to be comprehensive documentation. Beginner: CLI Tools ^^^^^^^^^^^^^^^^^^^ diff --git a/source/Tutorials/Actions/Creating-an-Action.rst b/source/Tutorials/Actions/Creating-an-Action.rst index b13938662ec..4395ca892a7 100644 --- a/source/Tutorials/Actions/Creating-an-Action.rst +++ b/source/Tutorials/Actions/Creating-an-Action.rst @@ -164,27 +164,15 @@ So when we want to refer to our new action, it will have the full name ``action_ We can check that our action built successfully with the command line tool: -.. tabs:: - - .. group-tab:: Dashing - - .. code-block:: bash - # Source our workspace - # On Windows: call install/setup.bat - . install/setup.bash - # Check that our action definition exists - ros2 action show action_tutorials_interfaces/action/Fibonacci - - .. group-tab:: Eloquent and newer +.. code-block:: bash - .. code-block:: bash + # Source our workspace + # On Windows: call install/setup.bat + . install/setup.bash + # Check that our action definition exists + ros2 interface show action_tutorials/action/Fibonacci - # Source our workspace - # On Windows: call install/setup.bat - . install/setup.bash - # Check that our action definition exists - ros2 interface show action_tutorials_interfaces/action/Fibonacci You should see the Fibonacci action definition printed to the screen. diff --git a/source/Tutorials/Ament-CMake-Documentation.rst b/source/Tutorials/Ament-CMake-Documentation.rst index e36b4ba3a95..bb561d2fe3f 100644 --- a/source/Tutorials/Ament-CMake-Documentation.rst +++ b/source/Tutorials/Ament-CMake-Documentation.rst @@ -125,56 +125,32 @@ Building a Library When building a reusable library, some information needs to be exported for downstream packages to easily use it. -.. tabs:: - - .. group-tab:: Foxy and newer - - .. code-block:: cmake - - ament_export_targets(export_my_library HAS_LIBRARY_TARGET) - ament_export_dependencies(some_dependency) - - install( - DIRECTORY include/ - DESTINATION include - ) - - install( - TARGETS my_library - EXPORT export_my_library - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES DESTINATION include - ) - - .. group-tab:: Eloquent and older +.. code-block:: cmake - .. code-block:: cmake + ament_export_targets(export_my_library HAS_LIBRARY_TARGET) + ament_export_dependencies(some_dependency) - ament_export_interfaces(export_my_library HAS_LIBRARY_TARGET) - ament_export_dependencies(some_dependency) + install( + DIRECTORY include/ + DESTINATION include + ) - install( - DIRECTORY include/ - DESTINATION include - ) + install( + TARGETS my_library + EXPORT export_my_library + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + RUNTIME DESTINATION bin + INCLUDES DESTINATION include + ) - install( - TARGETS my_library - EXPORT export_my_library - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES DESTINATION include - ) Here, we assume that the folder ``include`` contains the headers which need to be exported. Note that it is not necessary to put all headers into a separate folder, only those that should be included by clients. Here is what's happening in the snippet above: -- The ``ament_export_targets`` macro (``ament_export_interfaces`` in Eloquent and older) exports the targets for CMake. +- The ``ament_export_targets`` macro exports the targets for CMake. This is necessary to allow your library's clients to use the ``target_link_libraries(client my_library::my_library)`` syntax. ``ament_export_targets`` can take an arbitrary list of targets named as ``EXPORT`` in an install call and an additional option ``HAS_LIBRARY_TARGET``, which adds potential libraries to environment variables. diff --git a/source/Tutorials/Colcon-Tutorial.rst b/source/Tutorials/Colcon-Tutorial.rst index 3973e1b723c..4b4662e63f6 100644 --- a/source/Tutorials/Colcon-Tutorial.rst +++ b/source/Tutorials/Colcon-Tutorial.rst @@ -56,7 +56,7 @@ To build the samples, you will need to install ROS 2. Follow the `installation instructions <../Installation>`. -.. attention:: If installing from Debian packages, this tutorial requires the `desktop installation `. +.. attention:: If installing from Debian packages, this tutorial requires the `desktop installation `. Basics ------ diff --git a/source/Tutorials/Configuring-ROS2-Environment.rst b/source/Tutorials/Configuring-ROS2-Environment.rst index f4b58e61f8d..ffb0d0e78b0 100644 --- a/source/Tutorials/Configuring-ROS2-Environment.rst +++ b/source/Tutorials/Configuring-ROS2-Environment.rst @@ -54,13 +54,7 @@ You will need to run this command on every new shell you open to have access to .. code-block:: console - source /opt/ros//setup.bash - - For example, if you installed ROS 2 Eloquent: - - .. code-block:: console - - source /opt/ros/eloquent/setup.bash + source /opt/ros/rolling/setup.bash .. group-tab:: macOS @@ -89,7 +83,7 @@ If you don’t want to have to source the setup file every time you open a new s .. code-block:: console - echo "source /opt/ros//setup.bash" >> ~/.bashrc + echo "source /opt/ros/rolling/setup.bash" >> ~/.bashrc .. group-tab:: macOS @@ -105,7 +99,7 @@ If you don’t want to have to source the setup file every time you open a new s .. code-block:: console - C:\dev\ros2_foxy\local_setup.ps1 + C:\dev\ros2_rolling\local_setup.ps1 PowerShell will request permission to run this script everytime a new shell is opened. @@ -166,13 +160,12 @@ If you ever have problems finding or using your ROS 2 packages, make sure that y set | findstr -i ROS Check that variables like ``ROS_DISTRO`` and ``ROS_VERSION`` are set. -For example, if you're using Foxy, you would see: :: ROS_VERSION=2 ROS_PYTHON_VERSION=3 - ROS_DISTRO=foxy + ROS_DISTRO=rolling If the environment variables are not set correctly, return to the ROS 2 package installation section of the installation guide you followed. If you need more specific help (because environment setup files can come from different places), you can `get answers `__ from the community. @@ -239,23 +232,3 @@ Next steps ---------- Now that you have a working ROS 2 installation and you know how to source its setup files, you can start learning the ins and outs of ROS 2 with the :ref:`turtlesim tool `. - - -Related content ---------------- - -See this video demonstration that shows an installation of ROS 2 on a Raspberry Pi: - -.. tabs:: - - .. group-tab:: Foxy - - .. raw:: html - - - - .. group-tab:: Dashing - - .. raw:: html - - diff --git a/source/Tutorials/Custom-ROS2-Interfaces.rst b/source/Tutorials/Custom-ROS2-Interfaces.rst index fa917731387..292ceb90d39 100644 --- a/source/Tutorials/Custom-ROS2-Interfaces.rst +++ b/source/Tutorials/Custom-ROS2-Interfaces.rst @@ -153,19 +153,10 @@ In a new terminal, run the following command from within your workspace (``dev_w Now you can confirm that your interface creation worked by using the ``ros2 interface show`` command: -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: console - - ros2 interface show tutorial_interfaces/msg/Num - .. group-tab:: Dashing - - .. code-block:: console +.. code-block:: console - ros2 msg show tutorial_interfaces/msg/Num + ros2 interface show tutorial_interfaces/msg/Num should return: @@ -175,19 +166,9 @@ should return: And -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: console - - ros2 interface show tutorial_interfaces/srv/AddThreeInts - - .. group-tab:: Dashing - - .. code-block:: console +.. code-block:: console - ros2 srv show tutorial_interfaces/srv/AddThreeInts + ros2 interface show tutorial_interfaces/srv/AddThreeInts should return: diff --git a/source/Tutorials/Developing-a-ROS-2-Package.rst b/source/Tutorials/Developing-a-ROS-2-Package.rst index 859fb232122..0e2975489c2 100644 --- a/source/Tutorials/Developing-a-ROS-2-Package.rst +++ b/source/Tutorials/Developing-a-ROS-2-Package.rst @@ -15,7 +15,7 @@ It is intended for developers who want to learn how to create custom packages in Prerequisites ------------- -- `Install ROS (Dashing or later) <../../Installation>`__ +- `Install ROS <../../Installation>`__ - `Install colcon `__ diff --git a/source/Tutorials/Getting-Started-With-Ros2doctor.rst b/source/Tutorials/Getting-Started-With-Ros2doctor.rst index df496741a53..4e149ee047c 100644 --- a/source/Tutorials/Getting-Started-With-Ros2doctor.rst +++ b/source/Tutorials/Getting-Started-With-Ros2doctor.rst @@ -23,9 +23,7 @@ When your ROS 2 setup is not running as expected, you can check its settings wit Prerequisites ------------- -.. warning:: - - ``ros2doctor`` is only available in Eloquent and newer distributions. +``ros2doctor`` is only available in Eloquent and newer distributions. ``ros2doctor`` is part of the ``ros2cli`` package. As long as you have ``ros2cli`` installed (which any normal install should have), you will be able to use ``ros2doctor``. diff --git a/source/Tutorials/Launch-Files/Creating-Launch-Files.rst b/source/Tutorials/Launch-Files/Creating-Launch-Files.rst index 85cd481bcdd..7f3fe6f7084 100644 --- a/source/Tutorials/Launch-Files/Creating-Launch-Files.rst +++ b/source/Tutorials/Launch-Files/Creating-Launch-Files.rst @@ -79,71 +79,37 @@ Let’s put together a ROS 2 launch file using the ``turtlesim`` package and its Copy and paste the complete code into the ``turtlesim_mimic_launch.py`` file: -.. tabs:: - .. group-tab:: Foxy and newer - - .. code-block:: python - - from launch import LaunchDescription - from launch_ros.actions import Node - - def generate_launch_description(): - return LaunchDescription([ - Node( - package='turtlesim', - namespace='turtlesim1', - executable='turtlesim_node', - name='sim' - ), - Node( - package='turtlesim', - namespace='turtlesim2', - executable='turtlesim_node', - name='sim' - ), - Node( - package='turtlesim', - executable='mimic', - name='mimic', - remappings=[ - ('/input/pose', '/turtlesim1/turtle1/pose'), - ('/output/cmd_vel', '/turtlesim2/turtle1/cmd_vel'), - ] - ) - ]) - - .. group-tab:: Eloquent and older - - .. code-block:: python - - from launch import LaunchDescription - from launch_ros.actions import Node - - def generate_launch_description(): - return LaunchDescription([ - Node( - package='turtlesim', - node_namespace='turtlesim1', - node_executable='turtlesim_node', - node_name='sim' - ), - Node( - package='turtlesim', - node_namespace='turtlesim2', - node_executable='turtlesim_node', - node_name='sim' - ), - Node( - package='turtlesim', - node_executable='mimic', - node_name='mimic', - remappings=[ - ('/input/pose', '/turtlesim1/turtle1/pose'), - ('/output/cmd_vel', '/turtlesim2/turtle1/cmd_vel'), - ] - ) - ]) +.. code-block:: python + + from launch import LaunchDescription + from launch_ros.actions import Node + + def generate_launch_description(): + return LaunchDescription([ + Node( + package='turtlesim', + namespace='turtlesim1', + executable='turtlesim_node', + name='sim' + ), + Node( + package='turtlesim', + namespace='turtlesim2', + executable='turtlesim_node', + name='sim' + ), + Node( + package='turtlesim', + executable='mimic', + name='mimic', + remappings=[ + ('/input/pose', '/turtlesim1/turtle1/pose'), + ('/output/cmd_vel', '/turtlesim2/turtle1/cmd_vel'), + ] + ) + ]) + 2.1 Examine the launch file @@ -170,41 +136,20 @@ The goal of the system is to launch two turtlesim windows, and have one turtle m The first two actions in the launch description launch two turtlesim windows: -.. tabs:: - - .. group-tab:: Foxy and newer - - .. code-block:: python - - Node( - package='turtlesim', - namespace='turtlesim1', - executable='turtlesim_node', - name='sim' - ), - Node( - package='turtlesim', - namespace='turtlesim2', - executable='turtlesim_node', - name='sim' - ), - - .. group-tab:: Eloquent and older +.. code-block:: python - .. code-block:: python - - Node( - package='turtlesim', - node_namespace='turtlesim1', - node_executable='turtlesim_node', - node_name='sim' - ), - Node( - package='turtlesim', - node_namespace='turtlesim2', - node_executable='turtlesim_node', - node_name='sim' - ), + Node( + package='turtlesim', + namespace='turtlesim1', + executable='turtlesim_node', + name='sim' + ), + Node( + package='turtlesim', + namespace='turtlesim2', + executable='turtlesim_node', + name='sim' + ), Note the only difference between the two nodes is their namespace values. Unique namespaces allow the system to start two simulators without node name nor topic name conflicts. @@ -214,36 +159,18 @@ Without unique namespaces, there would be no way to distinguish between messages The final node is also from the ``turtlesim`` package, but a different executable: ``mimic``. -.. tabs:: - - .. group-tab:: Foxy and newer - - .. code-block:: python - - Node( - package='turtlesim', - executable='mimic', - name='mimic', - remappings=[ - ('/input/pose', '/turtlesim1/turtle1/pose'), - ('/output/cmd_vel', '/turtlesim2/turtle1/cmd_vel'), - ] - ) - - .. group-tab:: Eloquent and older - - .. code-block:: python +.. code-block:: python - Node( - package='turtlesim', - node_executable='mimic', - node_name='mimic', - remappings=[ - ('/input/pose', '/turtlesim1/turtle1/pose'), - ('/output/cmd_vel', '/turtlesim2/turtle1/cmd_vel'), - ] - ) + Node( + package='turtlesim', + executable='mimic', + name='mimic', + remappings=[ + ('/input/pose', '/turtlesim1/turtle1/pose'), + ('/output/cmd_vel', '/turtlesim2/turtle1/cmd_vel'), + ] + ) This node has added configuration details in the form of remappings. diff --git a/source/Tutorials/Launch-system.rst b/source/Tutorials/Launch-system.rst index dfbe5aa0153..61c781fa92b 100644 --- a/source/Tutorials/Launch-system.rst +++ b/source/Tutorials/Launch-system.rst @@ -86,49 +86,25 @@ If you do change the suffix, make sure to adjust the ``glob()`` argument in your Your launch file should define the ``generate_launch_description()`` which returns a ``launch.LaunchDescription()`` to be used by the ``ros2 launch`` verb. -.. tabs:: - - .. group-tab:: Foxy and newer - - .. code-block:: python - - import launch - import launch.actions - import launch.substitutions - import launch_ros.actions - - - def generate_launch_description(): - return launch.LaunchDescription([ - launch.actions.DeclareLaunchArgument( - 'node_prefix', - default_value=[launch.substitutions.EnvironmentVariable('USER'), '_'], - description='Prefix for node names'), - launch_ros.actions.Node( - package='demo_nodes_cpp', executable='talker', output='screen', - name=[launch.substitutions.LaunchConfiguration('node_prefix'), 'talker']), - ]) - - .. group-tab:: Eloquent and older +.. code-block:: python - .. code-block:: python + import launch + import launch.actions + import launch.substitutions + import launch_ros.actions - import launch - import launch.actions - import launch.substitutions - import launch_ros.actions + def generate_launch_description(): + return launch.LaunchDescription([ + launch.actions.DeclareLaunchArgument( + 'node_prefix', + default_value=[launch.substitutions.EnvironmentVariable('USER'), '_'], + description='Prefix for node names'), + launch_ros.actions.Node( + package='demo_nodes_cpp', executable='talker', output='screen', + name=[launch.substitutions.LaunchConfiguration('node_prefix'), 'talker']), + ]) - def generate_launch_description(): - return launch.LaunchDescription([ - launch.actions.DeclareLaunchArgument( - 'node_prefix', - default_value=[launch.substitutions.EnvironmentVariable('USER'), '_'], - description='Prefix for node names'), - launch_ros.actions.Node( - package='demo_nodes_cpp', node_executable='talker', output='screen', - node_name=[launch.substitutions.LaunchConfiguration('node_prefix'), 'talker']), - ]) Usage ^^^^^ diff --git a/source/Tutorials/Logging-and-logger-configuration.rst b/source/Tutorials/Logging-and-logger-configuration.rst index dadbdfe976d..ed6474f5b79 100644 --- a/source/Tutorials/Logging-and-logger-configuration.rst +++ b/source/Tutorials/Logging-and-logger-configuration.rst @@ -166,19 +166,10 @@ Logger level configuration: command line As of the Bouncy ROS 2 release, the severity level for loggers that have not had their severity set explicitly can be configured from the command line. Restart the demo including the following command line argument: -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: bash - - ros2 run logging_demo logging_demo_main --ros-args --log-level debug - .. group-tab:: Dashing - - .. code-block:: bash +.. code-block:: bash - ros2 run logging_demo logging_demo_main __log_level:=debug + ros2 run logging_demo logging_demo_main --ros-args --log-level debug This configures the default severity for any unset logger to the debug severity level. You should see debug output from loggers from the demo itself and from the ROS 2 core. @@ -265,7 +256,6 @@ You should see that debug, warn, error and fatal logs aren't colorized now. Default stream for console output ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -In Dashing and Eloquent, the output from DEBUG and INFO severity are printed out to stdout, and the output from WARN, ERROR, and FATAL are printed to stderr. In Foxy and later, the output from all debug levels goes to stderr by default. It is possible to force all output to go to stdout by setting the ``RCUTILS_LOGGING_USE_STDOUT`` environment variable to ``1``. For example: @@ -293,44 +283,6 @@ For example: Line buffered console output ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Dashing and Eloquent -"""""""""""""""""""" - -By default, INFO and DEBUG log calls aren't line buffered. -You can force it using ``RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED`` environment variable. -For example: - -.. tabs:: - - .. group-tab:: Linux - - .. code-block:: bash - - export RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED=1 - - .. group-tab:: macOS - - .. code-block:: bash - - export RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED=1 - - .. group-tab:: Windows - - .. code-block:: bash - - set "RCUTILS_CONSOLE_STDOUT_LINE_BUFFERED=1" - -Then run: - -.. code-block:: bash - - ros2 run logging_demo logging_demo_main - -The output should look as before. -For details about I/O buffering, see `buffering concepts `_. - -Foxy -"""" By default, all logging output is unbuffered. You can force it to be buffered by setting the ``RCUTILS_LOGGING_BUFFERED_STREAM`` environment variable to 1. diff --git a/source/Tutorials/Node-arguments.rst b/source/Tutorials/Node-arguments.rst index 8bd059b1adc..780d603cb6e 100644 --- a/source/Tutorials/Node-arguments.rst +++ b/source/Tutorials/Node-arguments.rst @@ -14,35 +14,20 @@ All ROS nodes take a set of arguments that allow various properties to be reconf Examples include configuring the name/namespace of the node, topic/service names used, and parameters on the node. All ros specific arguments have to be specified after a ``--ros-args`` flag: -.. tabs:: - .. group-tab:: Eloquent and newer - - .. code-block:: bash - - ros2 run my_package node_executable --ros-args ... - - .. group-tab:: Dashing +.. code-block:: bash - .. code-block:: bash + ros2 run my_package node_executable --ros-args ... - ros2 run my_package node_executable ... For more details, see `this design doc `__. Name remapping -------------- -.. tabs:: - - .. group-tab:: Eloquent and newer - - Names within a node (e.g. topics/services) can be remapped using the syntax ``-r :=``. - The name/namespace of the node itself can be remapped using ``-r __node:=`` and ``-r __ns:=``. +Names within a node (e.g. topics/services) can be remapped using the syntax ``-r :=``. +The name/namespace of the node itself can be remapped using ``-r __node:=`` and ``-r __ns:=``. - .. group-tab:: Dashing - - Remapping rules were specified directly using ``:=``, ``__node:=``, ``__ns:=``. Note that these remappings are "static" remappings, in that they apply for the lifetime of the node. "Dynamic" remapping of names after nodes have been started is not yet supported. @@ -55,19 +40,9 @@ Example The following invocation will cause the ``talker`` node to be started under the node name ``my_talker``, publishing on the topic named ``my_topic`` instead of the default of ``chatter``. The namespace, which must start with a forward slash, is set to ``/demo``, which means that topics are created in that namespace (``/demo/my_topic``), as opposed to globally (``/my_topic``). -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: bash - - ros2 run demo_nodes_cpp talker --ros-args -r __ns:=/demo -r __node:=my_talker -r chatter:=my_topic - - .. group-tab:: Dashing - - .. code-block:: bash +.. code-block:: bash - ros2 run demo_nodes_cpp talker __ns:=/demo __node:=my_talker chatter:=my_topic + ros2 run demo_nodes_cpp talker --ros-args -r __ns:=/demo -r __node:=my_talker -r chatter:=my_topic Passing remapping arguments to specific nodes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -75,37 +50,17 @@ Passing remapping arguments to specific nodes If multiple nodes are being run within a single process (e.g. using `Composition `), remapping arguments can be passed to a specific node using its name as a prefix. For example, the following will pass the remapping arguments to the specified nodes: -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: bash - - ros2 run composition manual_composition --ros-args -r talker:__node:=my_talker -r listener:__node:=my_listener - - .. group-tab:: Dashing - - .. code-block:: bash +.. code-block:: bash - ros2 run composition manual_composition talker:__node:=my_talker listener:__node:=my_listener + ros2 run composition manual_composition --ros-args -r talker:__node:=my_talker -r listener:__node:=my_listener The following example will both change the node name and remap a topic (node and namespace changes are always applied *before* topic remapping): +.. code-block:: bash -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: bash - - ros2 run composition manual_composition --ros-args -r talker:__node:=my_talker -r my_talker:chatter:=my_topic -r listener:__node:=my_listener -r my_listener:chatter:=my_topic - - .. group-tab:: Dashing - - .. code-block:: bash + ros2 run composition manual_composition --ros-args -r talker:__node:=my_talker -r my_talker:chatter:=my_topic -r listener:__node:=my_listener -r my_listener:chatter:=my_topic - ros2 run composition manual_composition talker:__node:=my_talker my_talker:chatter:=my_topic listener:__node:=my_listener my_listener:chatter:=my_topic Logger configuration -------------------- @@ -120,35 +75,27 @@ Parameters Setting parameters directly in the command line ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -.. tabs:: - - .. group-tab:: Eloquent and newer - - You can set parameters directly from the command line using the following syntax: - - .. code-block:: bash +You can set parameters directly from the command line using the following syntax: - ros2 run package_name executable_name --ros-args -p param_name:=param_value - - As an example, you can run: +.. code-block:: bash - .. code-block:: bash + ros2 run package_name executable_name --ros-args -p param_name:=param_value - ros2 run demo_nodes_cpp parameter_blackboard --ros-args -p some_int:=42 -p "a_string:=Hello world" -p "some_lists.some_integers:=[1, 2, 3, 4]" -p "some_lists.some_doubles:=[3.14, 2.718]" +As an example, you can run: - Other nodes will be able to retrieve the parameter values, e.g.: +.. code-block:: bash - .. code-block:: bash + ros2 run demo_nodes_cpp parameter_blackboard --ros-args -p some_int:=42 -p "a_string:=Hello world" -p "some_lists.some_integers:=[1, 2, 3, 4]" -p "some_lists.some_doubles:=[3.14, 2.718]" - $ ros2 param list parameter_blackboard - a_string - some_int - some_lists.some_doubles - some_lists.some_integers +Other nodes will be able to retrieve the parameter values, e.g.: - .. group-tab:: Dashing +.. code-block:: bash - Not supported + $ ros2 param list parameter_blackboard + a_string + some_int + some_lists.some_doubles + some_lists.some_integers Setting parameters from YAML files ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -169,23 +116,14 @@ As an example, save the following as ``demo_params.yaml``: some_integers: [1, 2, 3, 4] some_doubles : [3.14, 2.718] -Then either declare the parameters within your node with ``declare_parameter`` or ``declare_parameters`` (see `documentation `__ for function signatures), or `set the node to automatically declare parameters `__ if they were passed in via a command line override. +Then either declare the parameters within your node with ``declare_parameter`` or ``declare_parameters`` (see `documentation `__ for function signatures), or `set the node to automatically declare parameters `__ if they were passed in via a command line override. Then run the following: -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: bash - - ros2 run demo_nodes_cpp parameter_blackboard --ros-args --params-file demo_params.yaml - - .. group-tab:: Dashing +.. code-block:: bash - .. code-block:: bash + ros2 run demo_nodes_cpp parameter_blackboard --ros-args --params-file demo_params.yaml - ros2 run demo_nodes_cpp parameter_blackboard __params:=demo_params.yaml Other nodes will be able to retrieve the parameter values, e.g.: diff --git a/source/Tutorials/Parameters/Understanding-ROS2-Parameters.rst b/source/Tutorials/Parameters/Understanding-ROS2-Parameters.rst index c73cd0a4f67..70421571af1 100644 --- a/source/Tutorials/Parameters/Understanding-ROS2-Parameters.rst +++ b/source/Tutorials/Parameters/Understanding-ROS2-Parameters.rst @@ -136,91 +136,58 @@ However, you can save your settings changes and reload them next time you start 5 ros2 param dump ^^^^^^^^^^^^^^^^^ -.. tabs:: +You can “dump” all of a node’s current parameter values into a file to save for later using the command: - .. group-tab:: Eloquent and newer - - You can “dump” all of a node’s current parameter values into a file to save for later using the command: - - .. code-block:: console - - ros2 param dump - - To save your current configuration of ``/turtlesim``’s parameters, enter the command: - - .. code-block:: console - - ros2 param dump /turtlesim - - Your terminal will return the message: +.. code-block:: console - .. code-block:: console + ros2 param dump - Saving to: ./turtlesim.yaml +To save your current configuration of ``/turtlesim``’s parameters, enter the command: - You will find a new file in the directory your workspace is running in. - If you open this file, you’ll see the following contents: +.. code-block:: console - .. code-block:: YAML + ros2 param dump /turtlesim - turtlesim: - ros__parameters: - background_b: 255 - background_g: 86 - background_r: 150 - use_sim_time: false +Your terminal will return the message: - Dumping parameters comes in handy if you want to reload the node with the same parameters in the future. +.. code-block:: console - .. group-tab:: Dashing + Saving to: ./turtlesim.yaml - Dashing does not have the ``param dump`` command. - However, it is possible to run a node with saved parameters. - The equivalent to ``param dump`` would be manually recording your current parameter values into a YAML file. +You will find a new file in the directory your workspace is running in. +If you open this file, you’ll see the following contents: - Save the following in a file named ``./turtlesim.yaml``: +.. code-block:: YAML - .. code-block:: YAML + turtlesim: + ros__parameters: + background_b: 255 + background_g: 86 + background_r: 150 + use_sim_time: false - turtlesim: - ros__parameters: - background_b: 255 - background_g: 86 - background_r: 150 - use_sim_time: false +Dumping parameters comes in handy if you want to reload the node with the same parameters in the future. 6 Load parameter file ^^^^^^^^^^^^^^^^^^^^^ -.. tabs:: - - .. group-tab:: Eloquent and newer - - To start the same node using your saved parameter values, use: - - .. code-block:: console - ros2 run --ros-args --params-file +To start the same node using your saved parameter values, use: - This is the same command you always use to start turtlesim, with the added flags ``--ros-args`` and ``--params-file``, followed by the file you want to load. - - Stop your running turtlesim node so you can try reloading it with your saved parameters, using: - - .. code-block:: console +.. code-block:: console - ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml + ros2 run --ros-args --params-file - The turtlesim window should appear as usual, but with the purple background you set earlier. +This is the same command you always use to start turtlesim, with the added flags ``--ros-args`` and ``--params-file``, followed by the file you want to load. - .. group-tab:: Dashing +Stop your running turtlesim node so you can try reloading it with your saved parameters, using: - To start a node using the parameter settings you manually "dumped" in the last section, run the command +.. code-block:: console - .. code-block:: console + ros2 run turtlesim turtlesim_node --ros-args --params-file ./turtlesim.yaml - ros2 run turtlesim turtlesim_node __params:=./turtlesim.yaml +The turtlesim window should appear as usual, but with the purple background you set earlier. - Where ``__params:`` is the path to your parameter file. Summary ------- diff --git a/source/Tutorials/Quality-of-Service.rst b/source/Tutorials/Quality-of-Service.rst index 9f34b60f195..f51f921f7fb 100644 --- a/source/Tutorials/Quality-of-Service.rst +++ b/source/Tutorials/Quality-of-Service.rst @@ -30,16 +30,14 @@ You will also need the ROS package ``image_tools``. .. code-block:: bash - # Replace with the distribution you're using - sudo apt-get install ros--image-tools + sudo apt-get install ros-rolling-image-tools .. group-tab:: From Source .. code-block:: bash - # Replace with the distribution you're using # Clone and build the demos repo using the branch that matches your installation - git clone https://github.com/ros2/demos.git -b + git clone https://github.com/ros2/demos.git -b master Run the demo @@ -90,20 +88,11 @@ In a separate terminal, source the install file and run the publisher node: This will publish an image from your webcam. In case you don't have a camera attached to your computer, there is a commandline option which publishes predefined images. -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: bash - - ros2 run image_tools cam2image --ros-args -p burger_mode:=True - .. group-tab:: Dashing +.. code-block:: bash - .. code-block:: bash + ros2 run image_tools cam2image --ros-args -p burger_mode:=True - #Using CLI arguments instead of parameters: - ros2 run image_tools cam2image -b In this window, you'll see terminal output: @@ -145,19 +134,11 @@ Command line options In one of your terminals, add a -h flag to the original command: -.. tabs:: - - .. group-tab:: Eloquent and newer - .. code-block:: bash - - ros2 run image_tools showimage -h - - .. group-tab:: Dashing +.. code-block:: bash - .. code-block:: bash + ros2 run image_tools showimage -h - ros2 run image_tools showimage -- -h Add network traffic @@ -195,10 +176,6 @@ The publisher will now just attempt to deliver the network packets, and don't ex We see now that some of the frame on the ``showimage`` side were dropped, the frame numbers in the shell running ``showimage`` won't be consecutive anymore: -.. note:: - - Before Eloquent, use ``-x 640 -y 480`` for changing the resolution and ``-r 0`` for best effort communication. - .. image:: https://raw.githubusercontent.com/ros2/demos/master/image_tools/doc/qos-best-effort.png :target: https://raw.githubusercontent.com/ros2/demos/master/image_tools/doc/qos-best-effort.png :alt: Best effort image transfer diff --git a/source/Tutorials/RQt-Overview-Usage.rst b/source/Tutorials/RQt-Overview-Usage.rst index 3ea63b6c1a7..2dc0c08e25b 100644 --- a/source/Tutorials/RQt-Overview-Usage.rst +++ b/source/Tutorials/RQt-Overview-Usage.rst @@ -44,7 +44,7 @@ Installing From Debian .. code-block:: bash - sudo apt install ros-$ROS_DISTRO-rqt* + sudo apt install ros-rolling-rqt* Building From Source diff --git a/source/Tutorials/Ros2bag/Recording-And-Playing-Back-Data.rst b/source/Tutorials/Ros2bag/Recording-And-Playing-Back-Data.rst index 40b6a2cd082..e385d10731b 100644 --- a/source/Tutorials/Ros2bag/Recording-And-Playing-Back-Data.rst +++ b/source/Tutorials/Ros2bag/Recording-And-Playing-Back-Data.rst @@ -31,9 +31,9 @@ If you've installed from Debians on Linux and your system doesn’t recognize th .. code-block:: console - sudo apt-get install ros--ros2bag \ - ros--rosbag2-converter-default-plugins \ - ros--rosbag2-storage-default-plugins + sudo apt-get install ros-rolling-ros2bag \ + ros-rolling-rosbag2-converter-default-plugins \ + ros-rolling-rosbag2-storage-default-plugins This tutorial talks about concepts covered in previous tutorials, like nodes and :ref:`topics `. It also uses the :ref:`turtlesim package `. diff --git a/source/Tutorials/Rosbag-with-ROS1-Bridge.rst b/source/Tutorials/Rosbag-with-ROS1-Bridge.rst index 81943c5e815..7b3bb9844b5 100644 --- a/source/Tutorials/Rosbag-with-ROS1-Bridge.rst +++ b/source/Tutorials/Rosbag-with-ROS1-Bridge.rst @@ -7,7 +7,7 @@ Recording and playback of topic data with rosbag using the ROS 1 bridge This tutorial is a follow up to the *Bridge communication between ROS 1 and ROS 2* demo as can be found listed with the other `demos <../Tutorials>`, and in the following it is assumed you have completed that tutorial already. -The ros1_bridge can either be installed from `binary packages <../Installation>` or `built from source `__; both work for these examples. +The ros1_bridge can either be installed from `binary packages <../Installation>` or `built from source `__; both work for these examples. What follows is a series of additional examples, like that ones that come at the end of the aforementioned *Bridge communication between ROS 1 and ROS 2* demo. diff --git a/source/Tutorials/Rqt-Console/Using-Rqt-Console.rst b/source/Tutorials/Rqt-Console/Using-Rqt-Console.rst index cc3a0245f7c..66b537a8a17 100644 --- a/source/Tutorials/Rqt-Console/Using-Rqt-Console.rst +++ b/source/Tutorials/Rqt-Console/Using-Rqt-Console.rst @@ -112,19 +112,9 @@ For example, if you set the default level to ``Warn``, you would only see messag You can set the default logger level when you first run the ``/turtlesim`` node using remapping. Enter the following command in your terminal: -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: console - - ros2 run turtlesim turtlesim_node --ros-args --log-level WARN - - .. group-tab:: Dashing - - .. code-block:: console +.. code-block:: console - ros2 run turtlesim turtlesim_node __log_level:=warn + ros2 run turtlesim turtlesim_node --ros-args --log-level WARN Now you won’t see the initial ``Info`` level warnings that came up in the console last time you started ``turtlesim``. That’s because ``Info`` messages are lower priority than the new default severity, ``Warn``. diff --git a/source/Tutorials/Run-2-nodes-in-a-single-docker-container.rst b/source/Tutorials/Run-2-nodes-in-a-single-docker-container.rst index 9464dca1cf1..048b7122d5f 100644 --- a/source/Tutorials/Run-2-nodes-in-a-single-docker-container.rst +++ b/source/Tutorials/Run-2-nodes-in-a-single-docker-container.rst @@ -5,18 +5,18 @@ Running 2 nodes in a single docker container [community-contributed] ==================================================================== -Pull the ROS docker image with tag "eloquent-desktop". +Pull the ROS docker image with tag "rolling-desktop". .. code-block:: bash - docker pull osrf/ros:eloquent-desktop + docker pull osrf/ros:rolling-desktop Run the image in a container in interactive mode. .. code-block:: bash - $ docker run -it osrf/ros:eloquent-desktop + $ docker run -it osrf/ros:rolling-desktop root@:/# diff --git a/source/Tutorials/Run-2-nodes-in-two-separate-docker-containers.rst b/source/Tutorials/Run-2-nodes-in-two-separate-docker-containers.rst index 3d01f329c98..38b45715cce 100644 --- a/source/Tutorials/Run-2-nodes-in-two-separate-docker-containers.rst +++ b/source/Tutorials/Run-2-nodes-in-two-separate-docker-containers.rst @@ -9,13 +9,13 @@ Open a terminal. Run the image in a container in interactive mode and launch a t .. code-block:: bash - docker run -it --rm osrf/ros:eloquent-desktop ros2 run demo_nodes_cpp talker + docker run -it --rm osrf/ros:rolling-desktop ros2 run demo_nodes_cpp talker Open a second terminal. Run the image in a container in interactive mode and launch a topic subscriber (executable ``listener`` from the package ``demo_nodes_cpp``) with ``ros2 run``: .. code-block:: bash - docker run -it --rm osrf/ros:eloquent-desktop ros2 run demo_nodes_cpp listener + docker run -it --rm osrf/ros:rolling-desktop ros2 run demo_nodes_cpp listener As an alternative to the command line invocation, you can create a ``docker-compose.yml`` file (here version 2) with the following (minimal) content: @@ -25,10 +25,10 @@ As an alternative to the command line invocation, you can create a ``docker-comp services: talker: - image: osrf/ros:eloquent-desktop + image: osrf/ros:rolling-desktop command: ros2 run demo_nodes_cpp talker listener: - image: osrf/ros:eloquent-desktop + image: osrf/ros:rolling-desktop command: ros2 run demo_nodes_cpp listener depends_on: - talker diff --git a/source/Tutorials/Services/Understanding-ROS2-Services.rst b/source/Tutorials/Services/Understanding-ROS2-Services.rst index 101b7bddfb6..21069f90004 100644 --- a/source/Tutorials/Services/Understanding-ROS2-Services.rst +++ b/source/Tutorials/Services/Understanding-ROS2-Services.rst @@ -165,35 +165,15 @@ Which will return: You can call services from the command line, but first you need to know the structure of the input arguments. -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: console - - ros2 interface show .srv - - .. group-tab:: Dashing - - .. code-block:: console +.. code-block:: console - ros2 srv show + ros2 interface show .srv To run this command on the ``/clear`` service’s type, ``Empty``: -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: console - - ros2 interface show std_srvs/srv/Empty.srv - - .. group-tab:: Dashing - - .. code-block:: console +.. code-block:: console - ros2 srv show std_srvs/srv/Empty + ros2 interface show std_srvs/srv/Empty.srv Which will return: @@ -210,21 +190,9 @@ From the results of ``ros2 service list -t``, we know ``/spawn``’s type is ``t To see the arguments in a ``/spawn`` call-and-request, run the command: -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: console - - ros2 interface show turtlesim/srv/Spawn.srv - - .. group-tab:: Dashing - - .. code-block:: console - - ros2 srv show turtlesim/srv/Spawn - +.. code-block:: console + ros2 interface show turtlesim/srv/Spawn.srv Which will return: diff --git a/source/Tutorials/Topics/Understanding-ROS2-Topics.rst b/source/Tutorials/Topics/Understanding-ROS2-Topics.rst index 5e0aa7df837..fe60158cec7 100644 --- a/source/Tutorials/Topics/Understanding-ROS2-Topics.rst +++ b/source/Tutorials/Topics/Understanding-ROS2-Topics.rst @@ -172,23 +172,11 @@ Another way to look at this is running: Which will return: -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: console - - Type: geometry_msgs/msg/Twist - Publisher count: 1 - Subscriber count: 2 - - .. group-tab:: Dashing - - .. code-block:: +.. code-block:: console - Topic: /turtle1/cmd_vel - Publisher count: 1 - Subscriber count: 2 + Type: geometry_msgs/msg/Twist + Publisher count: 1 + Subscriber count: 2 6 ros2 interface show ^^^^^^^^^^^^^^^^^^^^^ @@ -207,19 +195,9 @@ This means that in the package ``geometry_msgs`` there is a ``msg`` called ``Twi Now we can run ``ros2 interface show .msg`` on this type to learn its the details, specifically, what structure of data the message expects. -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: console - - ros2 interface show geometry_msgs/msg/Twist - - .. group-tab:: Dashing - - .. code-block:: console +.. code-block:: console - ros2 msg show geometry_msgs/msg/Twist + ros2 interface show geometry_msgs/msg/Twist .. code-block:: console diff --git a/source/Tutorials/Turtlesim/Introducing-Turtlesim.rst b/source/Tutorials/Turtlesim/Introducing-Turtlesim.rst index f511d933c65..c7274b6bb36 100644 --- a/source/Tutorials/Turtlesim/Introducing-Turtlesim.rst +++ b/source/Tutorials/Turtlesim/Introducing-Turtlesim.rst @@ -30,8 +30,6 @@ Prerequisites The previous tutorial, :ref:`ConfigROS2`, will show you how to set up your environment. -Turtlesim and rqt are only available in ROS 2 from Dashing onward. - Tasks ----- @@ -50,7 +48,7 @@ Install the turtlesim package for your ROS 2 distro: sudo apt update - sudo apt install ros--turtlesim + sudo apt install ros-rolling-turtlesim .. group-tab:: macOS @@ -145,7 +143,7 @@ Open a new terminal to install ``rqt`` and its plugins: sudo apt update - sudo apt install ~nros--rqt* + sudo apt install ~nros-rolling-rqt* .. group-tab:: Linux (apt 1.x/Ubuntu 18.04 and older) @@ -153,7 +151,7 @@ Open a new terminal to install ``rqt`` and its plugins: sudo apt update - sudo apt install ros--rqt* + sudo apt install ros-rolling-rqt* .. group-tab:: macOS @@ -237,19 +235,10 @@ You can accomplish this by remapping turtle1's ``cmd_vel`` topic onto turtle2. In a new terminal, source ROS 2, and run: -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: console - - ros2 run turtlesim turtle_teleop_key --ros-args --remap turtle1/cmd_vel:=turtle2/cmd_vel - - .. group-tab:: Dashing +.. code-block:: console - .. code-block:: console + ros2 run turtlesim turtle_teleop_key --ros-args --remap turtle1/cmd_vel:=turtle2/cmd_vel - ros2 run turtlesim turtle_teleop_key turtle1/cmd_vel:=turtle2/cmd_vel Now you can move turtle2 when this terminal is active, and turtle1 when the other terminal running the ``turtle_teleop_key`` is active. @@ -274,7 +263,7 @@ Now that you have turtlesim and rqt up and running, and an idea of how they work Related content --------------- -The turtlesim package can be found in the `ros_tutorials repo `_. +The turtlesim package can be found in the `ros_tutorials repo `_. Make sure to adjust the branch to view the version of turtlesim corresponding to your installed ROS 2 distro. -`This community contributed video `_ demonstrates many of the item covered in this tutorial. +`This community contributed video `_ demonstrates many of the items covered in this tutorial. diff --git a/source/Tutorials/Understanding-ROS2-Actions.rst b/source/Tutorials/Understanding-ROS2-Actions.rst index 3b4595eb010..1242548842c 100644 --- a/source/Tutorials/Understanding-ROS2-Actions.rst +++ b/source/Tutorials/Understanding-ROS2-Actions.rst @@ -247,20 +247,9 @@ One more piece of information you will need before sending or executing an actio Recall that you identified ``/turtle1/rotate_absolute``’s type when running the command ``ros2 action list -t``. Enter the following command with the action type in your terminal: -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: console - - ros2 interface show turtlesim/action/RotateAbsolute.action - - .. group-tab:: Dashing - - .. code-block:: console - - ros2 action show turtlesim/action/RotateAbsolute +.. code-block:: console + ros2 interface show turtlesim/action/RotateAbsolute.action Which will return: diff --git a/source/Tutorials/Understanding-ROS2-Nodes.rst b/source/Tutorials/Understanding-ROS2-Nodes.rst index 64ca7ff4ead..cddecf1d6af 100644 --- a/source/Tutorials/Understanding-ROS2-Nodes.rst +++ b/source/Tutorials/Understanding-ROS2-Nodes.rst @@ -110,19 +110,9 @@ In the last tutorial, you used remapping on ``turtle_teleop_key`` to change the Now, lets reassign the name of our ``/turtlesim`` node. In a new terminal, run the following command: -.. tabs:: - - .. group-tab:: Eloquent and newer - - .. code-block:: console - - ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle - - .. group-tab:: Dashing - - .. code-block:: console +.. code-block:: console - ros2 run turtlesim turtlesim_node __node:=my_turtle + ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle Since you’re calling ``ros2 run`` on turtlesim again, another turtlesim window will open. However, now if you return to the terminal where you ran ``ros2 node list``, and run it again, you will see three node names: diff --git a/source/Tutorials/Using-Parameters-In-A-Class-CPP.rst b/source/Tutorials/Using-Parameters-In-A-Class-CPP.rst index e959d5cd600..8243209cb2d 100644 --- a/source/Tutorials/Using-Parameters-In-A-Class-CPP.rst +++ b/source/Tutorials/Using-Parameters-In-A-Class-CPP.rst @@ -183,7 +183,7 @@ It's good practice to run ``rosdep`` in the root of your workspace (``dev_ws``) .. code-block:: console - rosdep install -i --from-path src --rosdistro -y + rosdep install -i --from-path src --rosdistro rolling -y .. group-tab:: macOS @@ -269,71 +269,25 @@ You can also set the parameter in a launch file, but first you will need to add Inside the ``dev_ws/src/cpp_parameters/`` directory, create a new directory called ``launch``. In there, create a new file called ``cpp_parameters_launch.py`` -.. tabs:: - .. group-tab:: Foxy and newer - - .. code-block:: Python - - from launch import LaunchDescription - from launch_ros.actions import Node - - def generate_launch_description(): - return LaunchDescription([ - Node( - package="cpp_parameters", - executable="parameter_node", - name="custom_parameter_node", - output="screen", - emulate_tty=True, - parameters=[ - {"my_parameter": "earth"} - ] - ) - ]) - - .. group-tab:: Eloquent - - .. code-block:: Python - - from launch import LaunchDescription - from launch_ros.actions import Node - - def generate_launch_description(): - return LaunchDescription([ - Node( - package="cpp_parameters", - node_executable="parameter_node", - node_name="custom_parameter_node", - output="screen", - emulate_tty=True, - parameters=[ - {"my_parameter": "earth"} - ] - ) - ]) - - .. group-tab:: Dashing - - ``emulate_tty``, which prints output to the console, is not available in Dashing. - - .. code-block:: Python - - from launch import LaunchDescription - from launch_ros.actions import Node - - def generate_launch_description(): - return LaunchDescription([ - Node( - package="cpp_parameters", - node_executable="parameter_node", - node_name="custom_parameter_node", - output="screen", - parameters=[ - {"my_parameter": "earth"} - ] - ) - ]) +.. code-block:: Python + + from launch import LaunchDescription + from launch_ros.actions import Node + + def generate_launch_description(): + return LaunchDescription([ + Node( + package="cpp_parameters", + executable="parameter_node", + name="custom_parameter_node", + output="screen", + emulate_tty=True, + parameters=[ + {"my_parameter": "earth"} + ] + ) + ]) Here you can see that we set ``my_parameter`` to ``earth`` when we launch our node ``parameter_node``. By adding the two lines below, we ensure our output is printed in our console. diff --git a/source/Tutorials/Using-Parameters-In-A-Class-Python.rst b/source/Tutorials/Using-Parameters-In-A-Class-Python.rst index 46f22798120..5984088a51a 100644 --- a/source/Tutorials/Using-Parameters-In-A-Class-Python.rst +++ b/source/Tutorials/Using-Parameters-In-A-Class-Python.rst @@ -173,7 +173,7 @@ It's good practice to run ``rosdep`` in the root of your workspace (``dev_ws``) .. code-block:: console - rosdep install -i --from-path src --rosdistro -y + rosdep install -i --from-path src --rosdistro rolling -y .. group-tab:: macOS @@ -261,71 +261,27 @@ You can also set parameters in a launch file, but first you will need to add a l Inside the ``dev_ws/src/python_parameters/`` directory, create a new directory called ``launch``. In there, create a new file called ``python_parameters_launch.py`` -.. tabs:: - .. group-tab:: Foxy and newer - - .. code-block:: Python - - from launch import LaunchDescription - from launch_ros.actions import Node - - def generate_launch_description(): - return LaunchDescription([ - Node( - package="python_parameters", - executable="param_talker", - name="custom_parameter_node", - output="screen", - emulate_tty=True, - parameters=[ - {"my_parameter": "earth"} - ] - ) - ]) - - .. group-tab:: Eloquent - - .. code-block:: Python - - from launch import LaunchDescription - from launch_ros.actions import Node - - def generate_launch_description(): - return LaunchDescription([ - Node( - package="python_parameters", - node_executable="param_talker", - node_name="custom_parameter_node", - output="screen", - emulate_tty=True, - parameters=[ - {"my_parameter": "earth"} - ] - ) - ]) - - .. group-tab:: Dashing - - ``emulate_tty``, which prints output to the console, is not available in Dashing. - - .. code-block:: Python - - from launch import LaunchDescription - from launch_ros.actions import Node - - def generate_launch_description(): - return LaunchDescription([ - Node( - package="python_parameters", - node_executable="param_talker", - node_name="custom_parameter_node", - output="screen", - parameters=[ - {"my_parameter": "earth"} - ] - ) - ]) + +.. code-block:: Python + + from launch import LaunchDescription + from launch_ros.actions import Node + + def generate_launch_description(): + return LaunchDescription([ + Node( + package="python_parameters", + executable="param_talker", + name="custom_parameter_node", + output="screen", + emulate_tty=True, + parameters=[ + {"my_parameter": "earth"} + ] + ) + ]) + Here you can see that we set ``my_parameter`` to ``earth`` when we launch our node ``parameter_node``. By adding the two lines below, we ensure our output is printed in our console. diff --git a/source/Tutorials/Working-with-multiple-RMW-implementations.rst b/source/Tutorials/Working-with-multiple-RMW-implementations.rst index 4f0c927a985..f2c9145f3d1 100644 --- a/source/Tutorials/Working-with-multiple-RMW-implementations.rst +++ b/source/Tutorials/Working-with-multiple-RMW-implementations.rst @@ -144,7 +144,7 @@ it will generate a daemon with a Fast RTPS implementation: .. code-block:: bash - 21318 22.0 0.6 535896 55044 pts/8 Sl 16:14 0:00 /usr/bin/python3 /opt/ros/foxy/bin/_ros2_daemon --rmw-implementation rmw_fastrtps_cpp --ros-domain-id 22 + 21318 22.0 0.6 535896 55044 pts/8 Sl 16:14 0:00 /usr/bin/python3 /opt/ros/rolling/bin/_ros2_daemon --rmw-implementation rmw_fastrtps_cpp --ros-domain-id 22 Even if you run the command line tool again with the correct RMW implementation, the daemon's RMW implementation will not change and the ROS 2 command line tools will fail. diff --git a/source/Tutorials/Workspace/Creating-A-Workspace.rst b/source/Tutorials/Workspace/Creating-A-Workspace.rst index ac765fbdf63..ee8e68e5833 100644 --- a/source/Tutorials/Workspace/Creating-A-Workspace.rst +++ b/source/Tutorials/Workspace/Creating-A-Workspace.rst @@ -54,13 +54,7 @@ Depending on how you installed ROS 2 (from source or binaries), and which platfo .. code-block:: console - source /opt/ros//setup.bash - - For example, if you installed ROS 2 Eloquent: - - .. code-block:: console - - source /opt/ros/eloquent/setup.bash + source /opt/ros/rolling/setup.bash .. group-tab:: macOS @@ -131,7 +125,7 @@ In the ``dev_ws/src`` directory, run the following command for the distro you're .. code-block:: console - git clone https://github.com/ros/ros_tutorials.git -b -devel + git clone https://github.com/ros/ros_tutorials.git -b rolling-devel For example, if you're using Foxy: @@ -184,7 +178,7 @@ Before building the workspace, you need to resolve package dependencies. You may have all the dependencies already, but best practice is to check for dependencies every time you clone. You wouldn’t want a build to fail after a long wait because of missing dependencies. -From the root of your workspace (``dev_ws``), run the following command, replacing ```` with your distro: +From the root of your workspace (``dev_ws``), run the following command: .. tabs:: @@ -192,7 +186,7 @@ From the root of your workspace (``dev_ws``), run the following command, replaci .. code-block:: console - rosdep install -i --from-path src --rosdistro -y + rosdep install -i --from-path src --rosdistro rolling -y .. group-tab:: macOS @@ -203,7 +197,7 @@ From the root of your workspace (``dev_ws``), run the following command, replaci rosdep only runs on Linux, so you can skip ahead to section "5 Build the workspace with colcon". If you installed ROS 2 on Linux from source or the "fat" archive, you will need to use the rosdep command from their installation instructions. -For example, here are the Eloquent :ref:`from-source rosdep section ` and the :ref:`"fat" archive rosdep section `. +Here are the :ref:`from-source rosdep section ` and the :ref:`"fat" archive rosdep section `. If you already have all your dependencies, the console will return: @@ -281,7 +275,7 @@ In the new terminal, source your main ROS 2 environment as the “underlay”, s .. code-block:: console - source /opt/ros//setup.bash + source /opt/ros/rolling/setup.bash .. group-tab:: macOS diff --git a/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst b/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst index 4eabbaadd3b..e472ea29329 100644 --- a/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst +++ b/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst @@ -20,6 +20,7 @@ Background In this tutorial, the nodes will pass information in the form of string messages to each other over a :ref:`topic `. The example used here is a simple “talker” and “listener” system; one node publishes data and the other subscribes to the topic so it can receive that data. +The code used in these examples can be found `here `__. Prerequisites ------------- @@ -422,7 +423,7 @@ It's good practice to run ``rosdep`` in the root of your workspace (``dev_ws``) .. code-block:: console - rosdep install -i --from-path src --rosdistro -y + rosdep install -i --from-path src --rosdistro rolling -y .. group-tab:: macOS @@ -501,7 +502,7 @@ Summary You created two nodes to publish and subscribe to data over a topic. Before compiling and running them, you added their dependencies and executables to the package configuration files. -The code used in these examples can be found `here `__. + Next steps ---------- @@ -512,4 +513,4 @@ Again, you can choose to write it in either :ref:`C++ ` or :ref:`Pyth Related content --------------- -* There are several ways you could write a publisher and subscriber in C++; check out the ``minimal_publisher`` and ``minimal_subscriber`` packages in the `ros2/examples `_ repo. +There are several ways you could write a publisher and subscriber in C++; check out the ``minimal_publisher`` and ``minimal_subscriber`` packages in the `ros2/examples `_ repo. diff --git a/source/Tutorials/Writing-A-Simple-Cpp-Service-And-Client.rst b/source/Tutorials/Writing-A-Simple-Cpp-Service-And-Client.rst index 7f7d2b8f1d7..9f6411fa832 100644 --- a/source/Tutorials/Writing-A-Simple-Cpp-Service-And-Client.rst +++ b/source/Tutorials/Writing-A-Simple-Cpp-Service-And-Client.rst @@ -186,114 +186,55 @@ You could build your package now, source the local setup files, and run it, but Inside the ``dev_ws/src/cpp_srvcli/src`` directory, create a new file called ``add_two_ints_client.cpp`` and paste the following code within: -.. tabs:: +.. code-block:: C++ - .. group-tab:: Foxy and newer + #include "rclcpp/rclcpp.hpp" + #include "example_interfaces/srv/add_two_ints.hpp" - .. code-block:: C++ + #include + #include + #include - #include "rclcpp/rclcpp.hpp" - #include "example_interfaces/srv/add_two_ints.hpp" + using namespace std::chrono_literals; - #include - #include - #include + int main(int argc, char **argv) + { + rclcpp::init(argc, argv); - using namespace std::chrono_literals; + if (argc != 3) { + RCLCPP_INFO(rclcpp::get_logger("rclcpp"), "usage: add_two_ints_client X Y"); + return 1; + } - int main(int argc, char **argv) - { - rclcpp::init(argc, argv); + std::shared_ptr node = rclcpp::Node::make_shared("add_two_ints_client"); + rclcpp::Client::SharedPtr client = + node->create_client("add_two_ints"); - if (argc != 3) { - RCLCPP_INFO(rclcpp::get_logger("rclcpp"), "usage: add_two_ints_client X Y"); - return 1; - } - - std::shared_ptr node = rclcpp::Node::make_shared("add_two_ints_client"); - rclcpp::Client::SharedPtr client = - node->create_client("add_two_ints"); - - auto request = std::make_shared(); - request->a = atoll(argv[1]); - request->b = atoll(argv[2]); - - while (!client->wait_for_service(1s)) { - if (!rclcpp::ok()) { - RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Interrupted while waiting for the service. Exiting."); - return 0; - } - RCLCPP_INFO(rclcpp::get_logger("rclcpp"), "service not available, waiting again..."); - } - - auto result = client->async_send_request(request); - // Wait for the result. - if (rclcpp::spin_until_future_complete(node, result) == - rclcpp::FutureReturnCode::SUCCESS) - { - RCLCPP_INFO(rclcpp::get_logger("rclcpp"), "Sum: %ld", result.get()->sum); - } else { - RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Failed to call service add_two_ints"); - } + auto request = std::make_shared(); + request->a = atoll(argv[1]); + request->b = atoll(argv[2]); - rclcpp::shutdown(); + while (!client->wait_for_service(1s)) { + if (!rclcpp::ok()) { + RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Interrupted while waiting for the service. Exiting."); return 0; } + RCLCPP_INFO(rclcpp::get_logger("rclcpp"), "service not available, waiting again..."); + } - .. group-tab:: Eloquent and older - - .. code-block:: C++ - - #include "rclcpp/rclcpp.hpp" - #include "example_interfaces/srv/add_two_ints.hpp" - - #include - #include - #include - - using namespace std::chrono_literals; - - int main(int argc, char **argv) - { - rclcpp::init(argc, argv); - - if (argc != 3) { - RCLCPP_INFO(rclcpp::get_logger("rclcpp"), "usage: add_two_ints_client X Y"); - return 1; - } - - std::shared_ptr node = rclcpp::Node::make_shared("add_two_ints_client"); - rclcpp::Client::SharedPtr client = - node->create_client("add_two_ints"); - - auto request = std::make_shared(); - request->a = atoll(argv[1]); - request->b = atoll(argv[2]); - - while (!client->wait_for_service(1s)) { - if (!rclcpp::ok()) { - RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Interrupted while waiting for the service. Exiting."); - return 0; - } - RCLCPP_INFO(rclcpp::get_logger("rclcpp"), "service not available, waiting again..."); - } - - auto result = client->async_send_request(request); - // Wait for the result. - if (rclcpp::spin_until_future_complete(node, result) == - rclcpp::executor::FutureReturnCode::SUCCESS) - { - RCLCPP_INFO(rclcpp::get_logger("rclcpp"), "Sum: %ld", result.get()->sum); - } else { - RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Failed to call service add_two_ints"); - } - - rclcpp::shutdown(); - return 0; - } - - + auto result = client->async_send_request(request); + // Wait for the result. + if (rclcpp::spin_until_future_complete(node, result) == + rclcpp::FutureReturnCode::SUCCESS) + { + RCLCPP_INFO(rclcpp::get_logger("rclcpp"), "Sum: %ld", result.get()->sum); + } else { + RCLCPP_ERROR(rclcpp::get_logger("rclcpp"), "Failed to call service add_two_ints"); + } + rclcpp::shutdown(); + return 0; + } 3.1 Examine the code @@ -374,7 +315,7 @@ It's good practice to run ``rosdep`` in the root of your workspace (``dev_ws``) .. code-block:: console - rosdep install -i --from-path src --rosdistro -y + rosdep install -i --from-path src --rosdistro rolling -y .. group-tab:: macOS diff --git a/source/Tutorials/Writing-A-Simple-Py-Publisher-And-Subscriber.rst b/source/Tutorials/Writing-A-Simple-Py-Publisher-And-Subscriber.rst index 9029c5db761..a341df25ec2 100644 --- a/source/Tutorials/Writing-A-Simple-Py-Publisher-And-Subscriber.rst +++ b/source/Tutorials/Writing-A-Simple-Py-Publisher-And-Subscriber.rst @@ -20,6 +20,8 @@ In this tutorial, you will create :ref:`nodes ` that pass information The example used here is a simple “talker” and “listener” system; one node publishes data and the other subscribes to the topic so it can receive that data. +The code used in these examples can be found `here `__. + Prerequisites ------------- @@ -404,7 +406,7 @@ It's good practice to run ``rosdep`` in the root of your workspace (``dev_ws``) .. code-block:: console - rosdep install -i --from-path src --rosdistro -y + rosdep install -i --from-path src --rosdistro rolling -y .. group-tab:: macOS @@ -485,8 +487,6 @@ Summary You created two nodes to publish and subscribe to data over a topic. Before running them, you added their dependencies and entry points to the package configuration files. -The code used in these examples can be found `here `__. - Next steps ---------- @@ -496,4 +496,4 @@ Again, you can choose to write it in either :ref:`C++ ` or :ref:`Pyth Related content --------------- -* There are several ways you could write a publisher and subscriber in Python; check out the ``minimal_publisher`` and ``minimal_subscriber`` packages in the `ros2/examples `_ repo. +There are several ways you could write a publisher and subscriber in Python; check out the ``minimal_publisher`` and ``minimal_subscriber`` packages in the `ros2/examples `_ repo. diff --git a/source/Tutorials/dummy-robot-demo.rst b/source/Tutorials/dummy-robot-demo.rst index c6de7d9b91b..08ca3ce192a 100644 --- a/source/Tutorials/dummy-robot-demo.rst +++ b/source/Tutorials/dummy-robot-demo.rst @@ -18,8 +18,6 @@ To start the demo, we execute the demo bringup launch file, which we are going t source ~/ros2_ws/install/setup.bash ros2 launch dummy_robot_bringup dummy_robot_bringup.launch.py - # For ROS 2 releases prior to Bouncy, instead run: - # launch ~/ros2_ws/install/share/dummy_robot_bringup/launch/dummy_robot_bringup.py You should see some prints inside your terminal along the lines of the following: diff --git a/source/_templates/page.html b/source/_templates/page.html new file mode 100644 index 00000000000..ff8e0c29864 --- /dev/null +++ b/source/_templates/page.html @@ -0,0 +1,17 @@ +{% extends "!page.html" %} +{% block body %} +{% if current_version and latest_version and current_version != latest_version %} +

+ + {% if current_version.is_released %} + You're reading an old version of this documentation. + If you want up-to-date information, please have a look at {{latest_version.name | title }}. + {% else %} + You're reading the documentation for a development version. + For the latest released version, please have a look at {{latest_version.name | title }}. + {% endif %} + +

+{% endif %} +{{ super() }} +{% endblock %}% diff --git a/source/_templates/versioning.html b/source/_templates/versioning.html new file mode 100644 index 00000000000..4b49e745943 --- /dev/null +++ b/source/_templates/versioning.html @@ -0,0 +1,20 @@ + +{% if versions %} +

{{ _('Versions') }}

+

{{ _('Releases') }}

+ +

{{ _('In Development') }}

+ +{% endif %} From bd88309635b5ad0d802a14eda86097c1bede480a Mon Sep 17 00:00:00 2001 From: Marya Belanger Date: Mon, 14 Dec 2020 14:53:22 -0800 Subject: [PATCH 02/79] test label-based backport with mergify (#939) Signed-off-by: maryaB-osr --- source/Tutorials/Developing-a-ROS-2-Package.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/source/Tutorials/Developing-a-ROS-2-Package.rst b/source/Tutorials/Developing-a-ROS-2-Package.rst index 0e2975489c2..06c33bd314e 100644 --- a/source/Tutorials/Developing-a-ROS-2-Package.rst +++ b/source/Tutorials/Developing-a-ROS-2-Package.rst @@ -112,6 +112,7 @@ and a ``setup.py`` file that looks like: packages=[package_name], # Files we want to install, specifically launch files data_files=[ + # Install marker file in the package index ('share/ament_index/resource_index/packages', ['resource/' + package_name]), # Include our package.xml file (os.path.join('share', package_name), ['package.xml']), From b746c0b422c9c06e502ca99f3532dc9266e1a096 Mon Sep 17 00:00:00 2001 From: Marya Belanger Date: Mon, 14 Dec 2020 15:07:48 -0800 Subject: [PATCH 03/79] test page-based backport with mergify (#943) Signed-off-by: maryaB-osr --- source/Feature-Ideas.rst | 2 +- source/Roadmap.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/Feature-Ideas.rst b/source/Feature-Ideas.rst index c196749d545..643754b3893 100644 --- a/source/Feature-Ideas.rst +++ b/source/Feature-Ideas.rst @@ -9,7 +9,7 @@ Feature Ideas The following are feature ideas in no specific order. This list contains features that we think are important and can make for good contributions to ROS 2. -:ref:`Please get in touch with us ` before digging to a new feature. +:ref:`Please get in touch with us ` before digging into a new feature. We can offer guidance, and connect you with other developers. Design / Concept diff --git a/source/Roadmap.rst b/source/Roadmap.rst index 2a8029bb493..edeadb92d2b 100644 --- a/source/Roadmap.rst +++ b/source/Roadmap.rst @@ -9,7 +9,7 @@ Roadmap This page describes planned work for ROS 2. The set of planned features and development efforts should provide insight into the overall direction of ROS 2. -If you would like to see other features on the roadmap, then please get in touch with us at info@openrobotics.org. +If you would like to see other features on the roadmap, please get in touch with us at info@openrobotics.org. Galactic Roadmap ---------------- From 9050eda4b1107a7b9a23ab79407775e7fe07ee34 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 17 Dec 2020 09:56:54 -0800 Subject: [PATCH 04/79] XML launch files are still supported in ROS2 (#947) (#954) * XML launch files are still supported in ROS2 Should this also mention YAML? I saw in the source code that there is also a YAML frontend. * Shorten long sentence * Add "and YAML" (cherry picked from commit e86c950f6dfb54841ac56e840fb3f4a4e49c4e7a) Co-authored-by: Nikolai Morin --- source/Contributing/Migration-Guide.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Contributing/Migration-Guide.rst b/source/Contributing/Migration-Guide.rst index ede8072a42e..43bb8c99c41 100644 --- a/source/Contributing/Migration-Guide.rst +++ b/source/Contributing/Migration-Guide.rst @@ -410,7 +410,7 @@ In ROS 2, parameters are associated per node and are configurable at runtime wit Launch files ------------ -While launch files in ROS 1 are specified using `.xml `__ files ROS 2 uses Python scripts to enable more flexibility (see `launch package `__). +While launch files in ROS 1 are always specified using `.xml `__ files, ROS 2 supports Python scripts to enable more flexibility (see `launch package `__) as well as XML and YAML files. See `separate tutorial `__ on migrating launch files from ROS 1 to ROS 2. Example: Converting an existing ROS 1 package to use ROS 2 From d282cd74ff027d841de759e4d4794ebd415f3fa3 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 17 Dec 2020 09:57:47 -0800 Subject: [PATCH 05/79] Fix a small typo in the Discovery Server documentation. (#937) (#955) Signed-off-by: Chris Lalancette (cherry picked from commit 34b1b3b63ca93f3f38da0314e1334b46c073ead5) Co-authored-by: Chris Lalancette --- source/Tutorials/Discovery-Server/Discovery-Server.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Tutorials/Discovery-Server/Discovery-Server.rst b/source/Tutorials/Discovery-Server/Discovery-Server.rst index 4f7813a52da..42712a60f6c 100644 --- a/source/Tutorials/Discovery-Server/Discovery-Server.rst +++ b/source/Tutorials/Discovery-Server/Discovery-Server.rst @@ -168,7 +168,7 @@ Server Redundancy By using ``fastdds`` tool, multiple discovery servers can be created. Discovery clients (ROS nodes) can connect to as many servers as desired. This allows to have a redundant network that will work even if some servers or nodes shut down unexpectedly. -The figure below shows a simple architecture that probide server redundancy. +The figure below shows a simple architecture that provides server redundancy. .. image:: figures/ds_redundancy_example.svg :align: center From 427104a2bad2696b60974e1291d7b5adc1c7dd56 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 4 Jan 2021 15:53:49 -0500 Subject: [PATCH 06/79] Fix c++ example spelling (#951) (#969) (cherry picked from commit 69712f718e3ae562b52b442f6f8d5988d68c445d) Co-authored-by: Andre Nguyen --- .../Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst b/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst index e472ea29329..a6e913a5135 100644 --- a/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst +++ b/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst @@ -174,7 +174,7 @@ The ``RCLCPP_INFO`` macro ensures every published message is printed to the cons .. code-block:: C++ - Private: + private: void timer_callback() { auto message = std_msgs::msg::String(); From 7f949cdd15367212d9bcfc88fb4a2e90c97a2fd1 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 4 Jan 2021 12:56:06 -0800 Subject: [PATCH 07/79] Update the ROS 2 roadmap. (#964) (#972) Mark items as complete, add in new items, and update time estimates. Signed-off-by: Chris Lalancette (cherry picked from commit aa228e9bfdbde7b566e6434c6edf0b88a1cc717b) Co-authored-by: Chris Lalancette --- source/Roadmap.rst | 48 +++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 18 deletions(-) diff --git a/source/Roadmap.rst b/source/Roadmap.rst index edeadb92d2b..3fbf754f5a5 100644 --- a/source/Roadmap.rst +++ b/source/Roadmap.rst @@ -34,19 +34,15 @@ If you'd like to take on one of these tasks, please :ref:`get in touch with us < * - Middleware: Improve DDS service reliability - Medium - ADLINK, eProsima, and Open Robotics - - 4th quarter 2020 + - 1st quarter 2021 * - Middleware: Default middleware selection - Large - Open Robotics - - 4th quarter 2020 + - Complete * - Middleware: Improve DDS fully-connected overhead - Small - - - - - * - Middleware: Evaluate middlewares other than DDS - - Large - - - - + - ADLINK, eProsima, and Open Robotics + - 1st quarter 2021 * - Documentation: Consolidate ROS 2 documentation in an easy to find/search place - Large - Open Robotics @@ -54,7 +50,19 @@ If you'd like to take on one of these tasks, please :ref:`get in touch with us < * - Documentation: Automatically generate and host per-package documentation - Large - Open Robotics - - + - 4th quarter 2020 + * - Middleware: Switch to CycloneDDS as default RMW vendor + - Small + - ADLINK and Open Robotics + - 1st quarter 2021 + * - Galactic Release + - Large + - Open Robotics + - 2nd quarter 2021 + * - Quality: Add code coverage checks to CI for packages that are QL 1 + - Medium + - Open Robotics + - 2nd quarter 2021 * - Quality: Keep builds on ci.ros2.org and build.ros2.org green - Medium - Open Robotics and everyone @@ -62,11 +70,11 @@ If you'd like to take on one of these tasks, please :ref:`get in touch with us < * - rosbag2: Improve sqlite3 backend performance - Small - Apex and others - - 4th quarter 2020 + - Complete * - rosbag2: Separate threads for queueing messages and writing to disk - Small - Apex and others - - 4th quarter 2020 + - Complete * - rosbag2: Record /clock topic - Medium - @@ -78,7 +86,7 @@ If you'd like to take on one of these tasks, please :ref:`get in touch with us < * - Quality: Turn on more compiler warnings - Small - Open Robotics - - 4th quarter 2020 + - 2nd quarter 2021 * - Quality: Increase testing coverage of C/C++ packages - Large - @@ -90,7 +98,7 @@ If you'd like to take on one of these tasks, please :ref:`get in touch with us < * - Quality: Quality Level 1 declaration up to rclcpp - Large - Open Robotics - - 2nd quarter 2021 + - Complete * - Features: Specific demo to show public adoption of ROS 2 - Medium - PickNik Robotics (with Hello Robot 'Stretch') @@ -105,12 +113,12 @@ If you'd like to take on one of these tasks, please :ref:`get in touch with us < - * - Quality: Setup configuration so packages can opt-in to scan-build for build.ros2.org PR builds - Small - - - - - * - Quality: Enable clang-tidy/scan-build for core package PR builds + - Open Robotics + - 2nd quarter 2021 + * - Quality: Enable scan-build for core package PR builds - Medium - - - - + - Open Robotics + - 2nd quarter 2021 * - Launch: Rewrite launch_testing to be a pytest extension - Medium - @@ -143,6 +151,10 @@ If you'd like to take on one of these tasks, please :ref:`get in touch with us < - Large - - + * - Middleware: Evaluate middlewares other than DDS + - Large + - + - * - Middleware: Documentation for implementing new RMWs - Medium - From 3a68bf803f57509d9f2dbebb0eecbed88e067171 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 4 Jan 2021 15:07:37 -0800 Subject: [PATCH 08/79] Adding ROS World links to ROSCon Content page (#952) (#962) Signed-off-by: maryaB-osr (cherry picked from commit d73b0303a0100caa1bceeb65b27e3e52a0fc3c1d) Co-authored-by: Marya Belanger --- source/ROSCon-Content.rst | 233 ++++++++++++++++++++++++-------------- 1 file changed, 146 insertions(+), 87 deletions(-) diff --git a/source/ROSCon-Content.rst b/source/ROSCon-Content.rst index e808d5f98b9..d215f56a512 100644 --- a/source/ROSCon-Content.rst +++ b/source/ROSCon-Content.rst @@ -5,90 +5,149 @@ ROSCon Content The following `ROSCon `__ talks have been given on ROS 2 and provide information about the workings of ROS 2 and various demos: -.. list-table:: - :header-rows: 1 - - * - Title - - Type - - Links - * - Migrating a large ROS 1 codebase to ROS 2 - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - The New Architecture of Gazebo Wrappers for ROS 2 - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - Migrating to ROS 2: Advice from Rover Robotics - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - ROS 2 on VxWorks - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - Navigation2 Overview - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - Launch Testing - Launch description and integration testing for ros2 - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - ROS 2 for Consumer Robotics: : The iRobot use-case - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - Composable Nodes in ROS2 - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - Concurrency in ROS 1 and ROS 2 - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - A True Zero-Copy RMW Implementation for ROS2 - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - ROS2 Real-Time Behavior: Static Memory Allocation - - ROSCon 2019 presentation - - `video `__ - * - PackML2: State Machine Based System Programming, Monitoring and Control in ROS2 - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - Quality of Service Policies for ROS2 Communications - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - Micro-ROS: ROS2 on Microcontrollers - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - ROS2 on Large Scale Systems: Discovery Server - - ROSCon 2019 presentation - - `video `__ - * - Bridging Your Transitions from ROS 1 to ROS 2 - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - Markup Extensions for ROS 2 Launch - - ROSCon 2019 presentation - - `slides `__ / `video `__ - * - Hands-on ROS 2: A Walkthrough - - ROSCon 2018 presentation - - `slides `__ / `video `__ - * - Launch for ROS 2 - - ROSCon 2018 presentation - - `slides `__ / `video `__ - * - The ROS 2 vision for advancing the future of robotics development - - ROSCon 2017 presentation - - `slides `__ / `video `__ - * - ROS 2 Update - summary of alpha releases, architectural overview - - ROSCon 2016 presentation - - `slides `__ / `video `__ - * - Evaluating the resilience of ROS2 communication layer - - ROSCon 2016 presentation - - `slides `__ / `video `__ - * - State of ROS 2 - demos and the technology behind - - ROSCon 2015 presentation - - `slides `__ / `video `__ - * - ROS 2 on "small" embedded systems - - ROSCon 2015 presentation - - `slides `__ / `video `__ - * - Real-time control in ROS and ROS 2 - - ROSCon 2015 presentation - - `slides `__ / `video `__ - * - Why you want to use ROS 2 - - ROSCon 2014 presentation - - `slides `__ / `video `__ - * - Next-generation ROS: Building on DDS - - ROSCon 2014 presentation - - `slides `__ / `video `__ +.. tabs:: + + .. group-tab:: 2020 + + .. list-table:: + :header-rows: 1 + + * - Title + - Links + * - Accelerating Innovation with ROS: Lessons in Healthcare + - `video `__ + * - Panel: Software Quality in Robotics + - `video `__ + * - Panel: ROS Agriculture + - `video `__ + * - Achieving Generality and Robustness in Semantic Segmentation + - `video `__ + * - Navigation2: The Next Generation Navigation System + - `video `__ + * - CHAMP Quadruped Control + - `video `__ + * - Kiwibot: ROS2 in the atoms delivery industry + - `video `__ + * - MoveItWorld + - `video `__ + * - OpenCV + - `video `__ + * - ROBOTIS TurtleBot3 + - `video `__ + * - Autoware + - `video `__ + * - Dronecode + - `video `__ + * - FIWARE + - `video `__ + * - Lightning Talks and Sponsor Videos 1 + - `video `__ + * - Lightning Talks and Sponsor Videos 2 + - `video `__ + * - Lightning Talks and Sponsor Videos 3 + - `video `__ + * - Lightning Talks and Sponsor Videos 4 + - `video `__ + + .. group-tab:: 2019 + + .. list-table:: + :header-rows: 1 + + * - Title + - Links + * - Migrating a large ROS 1 codebase to ROS 2 + - `slides `__ / `video `__ + * - The New Architecture of Gazebo Wrappers for ROS 2 + - `slides `__ / `video `__ + * - Migrating to ROS 2: Advice from Rover Robotics + - `slides `__ / `video `__ + * - ROS 2 on VxWorks + - `slides `__ / `video `__ + * - Navigation2 Overview + - `slides `__ / `video `__ + * - Launch Testing - Launch description and integration testing for ros2 + - `slides `__ / `video `__ + * - ROS 2 for Consumer Robotics: : The iRobot use-case + - `slides `__ / `video `__ + * - Composable Nodes in ROS2 + - `slides `__ / `video `__ + * - Concurrency in ROS 1 and ROS 2 + - `slides `__ / `video `__ + * - A True Zero-Copy RMW Implementation for ROS2 + - `slides `__ / `video `__ + * - ROS2 Real-Time Behavior: Static Memory Allocation + - `video `__ + * - PackML2: State Machine Based System Programming, Monitoring and Control in ROS2 + - `slides `__ / `video `__ + * - Quality of Service Policies for ROS2 Communications + - `slides `__ / `video `__ + * - Micro-ROS: ROS2 on Microcontrollers + - `slides `__ / `video `__ + * - ROS2 on Large Scale Systems: Discovery Server + - `video `__ + * - Bridging Your Transitions from ROS 1 to ROS 2 + - `slides `__ / `video `__ + * - Markup Extensions for ROS 2 Launch + - `slides `__ / `video `__ + + + .. group-tab:: 2018 + + .. list-table:: + :header-rows: 1 + + * - Title + - Links + * - Hands-on ROS 2: A Walkthrough + - `slides `__ / `video `__ + * - Launch for ROS 2 + - `slides `__ / `video `__ + + .. group-tab:: 2017 + + .. list-table:: + :header-rows: 1 + + * - Title + - Links + * - The ROS 2 vision for advancing the future of robotics development + - `slides `__ / `video `__ + + .. group-tab:: 2016 + + .. list-table:: + :header-rows: 1 + + * - Title + - Links + * - ROS 2 Update - summary of alpha releases, architectural overview + - `slides `__ / `video `__ + * - Evaluating the resilience of ROS2 communication layer + - `slides `__ / `video `__ + + .. group-tab:: 2015 + + .. list-table:: + :header-rows: 1 + + * - Title + - Links + * - State of ROS 2 - demos and the technology behind + - `slides `__ / `video `__ + * - ROS 2 on "small" embedded systems + - `slides `__ / `video `__ + * - Real-time control in ROS and ROS 2 + - `slides `__ / `video `__ + + .. group-tab:: 2014 + + .. list-table:: + :header-rows: 1 + + * - Title + - Links + * - Why you want to use ROS 2 + - `slides `__ / `video `__ + * - Next-generation ROS: Building on DDS + - `slides `__ / `video `__ From f87dfe0cb9a653a925fa55a66e837cea458c671f Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 4 Jan 2021 15:20:03 -0800 Subject: [PATCH 09/79] Update Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst (#965) (#982) (cherry picked from commit 6c170abcc04890bdea76f57f713ce4cb8da8df11) Co-authored-by: woodz- --- .../Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst b/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst index a6e913a5135..9e14ff0d539 100644 --- a/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst +++ b/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst @@ -226,7 +226,7 @@ Add a new line after the ``ament_cmake`` buildtool dependency and paste the foll rclcpp std_msgs -This declares the package needs ``rclpp`` and ``std_msgs`` when its code is executed. +This declares the package needs ``rclcpp`` and ``std_msgs`` when its code is executed. Make sure to save the file. @@ -414,7 +414,7 @@ Make sure to save the file, and then your pub/sub system should be ready for use 4 Build and run ^^^^^^^^^^^^^^^ -You likely already have the ``rclpp`` and ``std_msgs`` packages installed as part of your ROS 2 system. +You likely already have the ``rclcpp`` and ``std_msgs`` packages installed as part of your ROS 2 system. It's good practice to run ``rosdep`` in the root of your workspace (``dev_ws``) to check for missing dependencies before building: .. tabs:: From 893694a3b8b61de8026d008e1539711e5f9f9e33 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 5 Jan 2021 10:53:19 -0800 Subject: [PATCH 10/79] Switch from Travis -> Github actions. (#948) (#953) Signed-off-by: Chris Lalancette (cherry picked from commit dab709012c56be87d795efc5a229714877ec07ee and commit 9289f218944de099158c65e0a6bcf699d804ef35) Co-authored-by: Chris Lalancette --- .github/workflows/test.yml | 22 ++++++++++++++++++++++ .travis.yml | 19 ------------------- 2 files changed, 22 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/test.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000000..efa9794df63 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,22 @@ +name: Test + +on: [push, pull_request] + +jobs: + test: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + + - name: Setup Python + uses: actions/setup-python@v1 + with: + python-version: 3.8 + + - name: Install dependencies with pip + run: | + pip install doc8 sphinx sphinx-multiversion + pip install git+https://github.com/osrf/sphinx-tabs + + - run: make html + - run: doc8 --ignore D001 --ignore-path build diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 77571f37793..00000000000 --- a/.travis.yml +++ /dev/null @@ -1,19 +0,0 @@ -language: python -python: 3.6 -dist: xenial -os: linux -install: - - pip3 install doc8 sphinx - - pip3 install git+https://github.com/osrf/sphinx-tabs - - pip3 install sphinx_multiversion - -script: - - make html 2> stderr.log - - cat stderr.log - - doc8 --ignore D001 --ignore-path build --ignore-path source/Tutorials/Actions - # ignore D000 in action tutorials to allow for :linenos: - - doc8 --ignore D000 --ignore D001 --ignore-path build source/Tutorials/Actions - # fail the build for any stderr output - - if [ -s "stderr.log" ]; then false; fi -notifications: - email: false From 3fdaaa5d36c5dd779af42fd3b1151d99d77b0a52 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 6 Jan 2021 14:29:30 -0500 Subject: [PATCH 11/79] Add a section on becoming a core maintainer (#992) (#993) * Add a section on becoming a core maintainer. Signed-off-by: Chris Lalancette Co-authored-by: William Woodall (cherry picked from commit 654c0c2c4f751fd467057e3cf196ab372a8745c0) Co-authored-by: Chris Lalancette --- source/Contributing.rst | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/source/Contributing.rst b/source/Contributing.rst index d41509f66bf..7b5a8115be0 100644 --- a/source/Contributing.rst +++ b/source/Contributing.rst @@ -17,11 +17,11 @@ Tenets ROS has been around for more than a decade and is used by developers and across the world. Keep a humble attitude and an open mindset while contributing. -* Embed OSRF as early as possible +* Engage Open Robotics as early as possible - * OSRF acts as a gate-keeper and advocate for the ROS community. + * Open Robotics acts as a gate-keeper and advocate for the ROS community. Rely on their expertise and technical judgement from the design phase. - * Start discussions with OSRF and the community early. + * Start discussions with Open Robotics and the community early. Long time ROS contributors may have a clearer vision of the bigger picture. If you implement a feature and send a pull request without discussing with the community first, you are taking the risk of it being rejected, or you may be asked to largely rethink your design. * Opening issues or using Discourse to socialize an idea before starting the implementation is generally preferable. @@ -92,3 +92,24 @@ Code contributions should be made via pull requests to `the appropriate ros2 rep We ask all contributors to follow the practices explained in `the developer guide `. Please be sure to `run tests ` for your code changes because most packages have tests that check that the code complies with our style guidelines. + +Becoming a core maintainer +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +The ROS 2 maintainers ensure that the project is generally making progress. +The responsibilities of the maintainers include: + +* Reviewing incoming code contributions for style, quality, and overall fit into the goals of the repository/ROS 2. +* Ensuring that CI continues to stay green. +* Merging pull requests that meet the quality and CI standards above. +* Addressing issues opened up by users. + +Each repository in the `ros2 `__ and `ament `__ organizations has a separate set of maintainers. +Becoming a maintainer of one or more of those repositories is an invitation-only process, and generally involves the following steps: + +* Within the last year, have a substantial number of code contributions to the repository. +* Within the last year, do a substantial number of reviews on incoming pull requests to the repository. + +Approximately every 3 months, the ROS 2 team will review the contributions in all of the repositories and send out invitations to new maintainers. +Once the invitation is accepted, the new maintainer will be asked to go through a short training process on the mechanisms and policies of the ROS 2 repositories. +After that training process is completed, the new maintainer will be given write access to the appropriate repositories. From 27f507919ca463b4eabc7e5f33616499b4adfb46 Mon Sep 17 00:00:00 2001 From: Marya Belanger Date: Tue, 12 Jan 2021 05:03:21 -0800 Subject: [PATCH 12/79] Add EOL banner to eloquent (#990) * Add EOL banner to eloquent Signed-off-by: maryaB-osr * Change the wording for version banners (#991) * Change the wording for version banners Signed-off-by: maryaB-osr * Apply suggestions from code review Co-authored-by: Chris Lalancette * add commas to review change Signed-off-by: maryaB-osr Co-authored-by: Chris Lalancette Co-authored-by: Chris Lalancette --- source/_templates/page.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/_templates/page.html b/source/_templates/page.html index ff8e0c29864..15e9c15d5cd 100644 --- a/source/_templates/page.html +++ b/source/_templates/page.html @@ -3,9 +3,12 @@ {% if current_version and latest_version and current_version != latest_version %}

- {% if current_version.is_released %} - You're reading an old version of this documentation. + {% if current_version.name|string() == 'eloquent' %} + You're reading the documentation for a version of ROS 2 that has reached its EOL (end-of-life), and is no longer officially supported. If you want up-to-date information, please have a look at {{latest_version.name | title }}. + {% elif current_version.is_released %} + You're reading the documentation for an older, but still supported, version of ROS 2. + For information on the latest version, please have a look at {{latest_version.name | title }}. {% else %} You're reading the documentation for a development version. For the latest released version, please have a look at {{latest_version.name | title }}. From 06b45fce361f7427e179f0d03fd88652e0dff4c9 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 12 Jan 2021 05:13:39 -0800 Subject: [PATCH 13/79] give an idea to build the msg interface later (#979) (#997) * Update Single-Package-Define-And-Use-Interface.rst * Update Single-Package-Define-And-Use-Interface.rst fix typo * Update source/Tutorials/Single-Package-Define-And-Use-Interface.rst Co-authored-by: Marya Belanger (cherry picked from commit afae75ec4d0bc07d7934bb4f51ac510211d0ec3d) Co-authored-by: woodz- --- source/Tutorials/Single-Package-Define-And-Use-Interface.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/source/Tutorials/Single-Package-Define-And-Use-Interface.rst b/source/Tutorials/Single-Package-Define-And-Use-Interface.rst index d7a53291401..a95636687d5 100644 --- a/source/Tutorials/Single-Package-Define-And-Use-Interface.rst +++ b/source/Tutorials/Single-Package-Define-And-Use-Interface.rst @@ -134,6 +134,7 @@ Also make sure you export the message runtime dependency: ament_export_dependencies(rosidl_default_runtime) Now you're ready to generate source files from your msg definition. +We'll skip the compile step for now as we do it all together below in step 4. 2.2 (Extra) Set multiple interfaces ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ From 9a2557456fdb5560b8112eba6c10883566aa4c0d Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Mon, 11 Jan 2021 16:42:31 -0500 Subject: [PATCH 14/79] Update the tutorial to point to Cyclone DDS as the default. Signed-off-by: Chris Lalancette (cherry picked from commit 1edebe38b52a728b608bf7711f1bfe33533e9131) # Conflicts: # source/Tutorials/Working-with-multiple-RMW-implementations.rst --- ...king-with-multiple-RMW-implementations.rst | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/source/Tutorials/Working-with-multiple-RMW-implementations.rst b/source/Tutorials/Working-with-multiple-RMW-implementations.rst index f2c9145f3d1..9c3afb079b3 100644 --- a/source/Tutorials/Working-with-multiple-RMW-implementations.rst +++ b/source/Tutorials/Working-with-multiple-RMW-implementations.rst @@ -19,11 +19,11 @@ You should have already read the `DDS and ROS middleware implementations page <. Multiple RMW implementations ---------------------------- -The ROS 2 binary releases for currently active distros have built-in support for several RMW implementations out of the box (Fast RTPS, RTI Connext Pro, ADLINK OpenSplice and Eclipse Cyclone DDS). -The default is Fast RTPS, which works without any additional installation steps, because we distribute it with our binary packages. -Cyclone DDS is also distributed with binary packages since Eloquent. +The ROS 2 binary releases for currently active distros have built-in support for several RMW implementations out of the box (Fast DDS, RTI Connext Pro, ADLINK Eclipse Cyclone DDS). +Since Galactic, the default is Cyclone DDS, which works without any additional installation steps, because we distribute it with our binary packages. +Prior to Galactic, the default was Fast DDS, which works without any additional installation steps. -Others like OpenSplice or Connext can be enabled by `installing additional packages <../Installation/DDS-Implementations>`, but without having to rebuild anything or replace any existing packages. +Other RMWs like Fast-DDS or Connext can be enabled by `installing additional packages <../Installation/DDS-Implementations>`, but without having to rebuild anything or replace any existing packages. A ROS 2 workspace that has been built from source may build and install multiple RMW implementations simultaneously. While the core ROS 2 code is being compiled, any RMW implementation that is found will be built if the relevant DDS/RTPS implementation has been installed properly and the relevant environment variables have been configured. @@ -38,7 +38,7 @@ Here is a list of inter-vendor communication configurations that are not support - OpenSplice <-> OpenSplice - does not support ``WString`` - ``WString`` is mapped to ``String`` which has a different wire representation -- Connext <-> CycloneDDS +- Connext <-> Cyclone DDS - does not support pub/sub communication for ``WString`` - Connext Dynamic <-> Connext Dynamic - does not support C services @@ -46,11 +46,11 @@ Here is a list of inter-vendor communication configurations that are not support Default RMW implementation -------------------------- -If a ROS 2 workspace has multiple RMW implementations, the default RMW implementation is currently selected as Fast RTPS if it's available. -If the Fast RTPS RMW implementation is not installed, the RMW implementation with the first RMW implementation identifier in alphabetical order will be used. -The implementation identifier is the name of the ROS package that provides the RMW implementation, e.g. ``rmw_fastrtps_cpp``. -For example, if both ``rmw_opensplice_cpp`` and ``rmw_connext_cpp`` ROS packages are installed, ``rmw_connext_cpp`` would be the default. -If ``rmw_fastrtps_cpp`` is ever installed, it would be the default. +If a ROS 2 workspace has multiple RMW implementations, the default RMW implementation since Galactic is selected as Cyclone DDS if it's available. +If the Cyclone DDS RMW implementation is not installed, the RMW implementation with the first RMW implementation identifier in alphabetical order will be used. +The implementation identifier is the name of the ROS package that provides the RMW implementation, e.g. ``rmw_cyclonedds_cpp``. +For example, if both ``rmw_fastrtps_cpp`` and ``rmw_connext_cpp`` ROS packages are installed, ``rmw_connext_cpp`` would be the default. +If ``rmw_cyclonedds_cpp`` is ever installed, it would be the default. See below for how to specify which RMW implementation is to be used when running the ROS 2 examples. Specifying RMW implementations @@ -99,7 +99,7 @@ To run the talker demo using the C++ and listener using Python with the RMW impl Adding RMW implementations to your workspace -------------------------------------------- -Suppose that you have built your ROS 2 workspace with only Fast RTPS installed and therefore only the Fast RTPS RMW implementation built. +Suppose that you have built your ROS 2 workspace with only Cyclone DDS installed and therefore only the Cyclone DDS RMW implementation built. The last time your workspace was built, any other RMW implementation packages, ``rmw_connext_cpp`` for example, were probably unable to find installations of the relevant DDS implementations. If you then install an additional DDS implementation, Connext for example, you will need to re-trigger the check for a Connext installation that occurs when the Connext RMW implementation is being built. You can do this by specifying the ``--cmake-force-configure`` flag on your next workspace build, and you should see that the RMW implementation package then gets built for the newly installed DDS implementation. @@ -140,11 +140,15 @@ and ros2 node list -it will generate a daemon with a Fast RTPS implementation: +it will generate a daemon with a Cyclone DDS implementation: .. code-block:: bash +<<<<<<< HEAD 21318 22.0 0.6 535896 55044 pts/8 Sl 16:14 0:00 /usr/bin/python3 /opt/ros/rolling/bin/_ros2_daemon --rmw-implementation rmw_fastrtps_cpp --ros-domain-id 22 +======= + 21318 22.0 0.6 535896 55044 pts/8 Sl 16:14 0:00 /usr/bin/python3 /opt/ros/foxy/bin/_ros2_daemon --rmw-implementation rmw_cyclonedds_cpp --ros-domain-id 22 +>>>>>>> 1edebe3... Update the tutorial to point to Cyclone DDS as the default. Even if you run the command line tool again with the correct RMW implementation, the daemon's RMW implementation will not change and the ROS 2 command line tools will fail. From 47bc1cd8cd56178d08f7dc17560be42617cbc3e7 Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Mon, 11 Jan 2021 16:42:56 -0500 Subject: [PATCH 15/79] Add a release note about changing the default RMW to Cyclone DDS. Signed-off-by: Chris Lalancette (cherry picked from commit 22800cdb650215eff5993ef3baf8c339f56acc52) --- source/Releases/Release-Galactic-Geochelone.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/Releases/Release-Galactic-Geochelone.rst b/source/Releases/Release-Galactic-Geochelone.rst index ceee48bbd0d..95bb8a5e76a 100644 --- a/source/Releases/Release-Galactic-Geochelone.rst +++ b/source/Releases/Release-Galactic-Geochelone.rst @@ -54,6 +54,14 @@ Related PRs: `ros2/rcl_logging#53 ` Changes since the Foxy release ------------------------------ +Default RMW vendor changed to Cyclone DDS +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +During the Galactic development process, the ROS 2 Technical Steering Committee `voted `__ to change the default ROS middleware (RMW) to Cyclone DDS. +Without any configuration changes, users will get Cyclone DDS by default. +Fast-DDS and Connext are still Tier-1 supported RMW vendors, and users can opt-in to use one of these RMWs at their discretion by using the ``RMW_IMPLEMENTATION`` environment variable. +See the `Working with multiple RMW implementations tutorial <../Tutorials/Working-with-multiple-RMW-implementations>` for more information. + nav2 ^^^^ From 29bf5f32d21f5609bd13bb831ca2cb031fb26c8c Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Mon, 11 Jan 2021 16:45:24 -0500 Subject: [PATCH 16/79] Update Concepts document to point to Cyclone DDS as default. Signed-off-by: Chris Lalancette (cherry picked from commit d944d4d89bb731c8274aa5e937e7d0c40bb5d901) --- source/Concepts/DDS-and-ROS-middleware-implementations.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/Concepts/DDS-and-ROS-middleware-implementations.rst b/source/Concepts/DDS-and-ROS-middleware-implementations.rst index 09c083f55fc..f82fe1a8778 100644 --- a/source/Concepts/DDS-and-ROS-middleware-implementations.rst +++ b/source/Concepts/DDS-and-ROS-middleware-implementations.rst @@ -34,11 +34,11 @@ Supported RMW implementations * - eProsima *Fast RTPS* - Apache 2 - ``rmw_fastrtps_cpp`` - - Full support. Default RMW. Packaged with binary releases. + - Full support. Default RMW in Foxy and before. Packaged with binary releases. * - Eclipse *Cyclone DDS* - Eclipse Public License v2.0 - ``rmw_cyclonedds_cpp`` - - Full support. Packaged with binary releases from Eloquent on. + - Full support. Default RMW since Galactic. Packaged with binary releases. * - RTI *Connext* - commercial, research - ``rmw_connext_cpp`` From f3deaddd82525322d1f733eb7fcf82868d8d033a Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Mon, 11 Jan 2021 16:48:21 -0500 Subject: [PATCH 17/79] Update Rolling installation instructions to mention Cyclone DDS. Signed-off-by: Chris Lalancette (cherry picked from commit 92710393000e35b10fff5e3839fb73879fdcd202) --- source/Installation/Linux-Development-Setup.rst | 2 +- source/Installation/Linux-Install-Binary.rst | 2 +- source/Installation/Linux-Install-Debians.rst | 2 +- source/Installation/Windows-Development-Setup.rst | 2 +- source/Installation/Windows-Install-Binary.rst | 2 +- source/Installation/macOS-Development-Setup.rst | 2 +- source/Installation/macOS-Install-Binary.rst | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/source/Installation/Linux-Development-Setup.rst b/source/Installation/Linux-Development-Setup.rst index 6265e05a88b..e2680411226 100644 --- a/source/Installation/Linux-Development-Setup.rst +++ b/source/Installation/Linux-Development-Setup.rst @@ -185,7 +185,7 @@ The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the Additional RMW implementations (optional) ----------------------------------------- -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. +The default middleware that ROS 2 uses is ``Cyclone DDS``, but the middleware (RMW) can be replaced at runtime. See the `tutorial ` on how to work with multiple RMWs. Alternate compilers diff --git a/source/Installation/Linux-Install-Binary.rst b/source/Installation/Linux-Install-Binary.rst index 95c7c0d6dc1..7643abe0eac 100644 --- a/source/Installation/Linux-Install-Binary.rst +++ b/source/Installation/Linux-Install-Binary.rst @@ -126,7 +126,7 @@ The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the Additional RMW implementations (optional) ----------------------------------------- -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. +The default middleware that ROS 2 uses is ``Cyclone DDS``, but the middleware (RMW) can be replaced at runtime. See the `tutorial ` on how to work with multiple RMWs. Troubleshooting diff --git a/source/Installation/Linux-Install-Debians.rst b/source/Installation/Linux-Install-Debians.rst index 051252cb2a0..ca682518b4f 100644 --- a/source/Installation/Linux-Install-Debians.rst +++ b/source/Installation/Linux-Install-Debians.rst @@ -112,7 +112,7 @@ The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the Additional RMW implementations (optional) ----------------------------------------- -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. +The default middleware that ROS 2 uses is ``Cyclone DDS``, but the middleware (RMW) can be replaced at runtime. See the `tutorial ` on how to work with multiple RMWs. Troubleshooting diff --git a/source/Installation/Windows-Development-Setup.rst b/source/Installation/Windows-Development-Setup.rst index b9f17280e56..334ad2b8613 100644 --- a/source/Installation/Windows-Development-Setup.rst +++ b/source/Installation/Windows-Development-Setup.rst @@ -272,7 +272,7 @@ The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the Additional RMW implementations (optional) ----------------------------------------- -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. +The default middleware that ROS 2 uses is ``Cyclone DDS``, but the middleware (RMW) can be replaced at runtime. See the `tutorial ` on how to work with multiple RMWs. diff --git a/source/Installation/Windows-Install-Binary.rst b/source/Installation/Windows-Install-Binary.rst index b8be051c8e5..30b8cb5221f 100644 --- a/source/Installation/Windows-Install-Binary.rst +++ b/source/Installation/Windows-Install-Binary.rst @@ -228,7 +228,7 @@ The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the Additional RMW implementations (optional) ----------------------------------------- -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. +The default middleware that ROS 2 uses is ``Cyclone DDS``, but the middleware (RMW) can be replaced at runtime. See the `tutorial ` on how to work with multiple RMWs. Troubleshooting diff --git a/source/Installation/macOS-Development-Setup.rst b/source/Installation/macOS-Development-Setup.rst index 57a98430945..9636fd70b6a 100644 --- a/source/Installation/macOS-Development-Setup.rst +++ b/source/Installation/macOS-Development-Setup.rst @@ -199,7 +199,7 @@ The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the Additional RMW implementations (optional) ----------------------------------------- -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. +The default middleware that ROS 2 uses is ``Cyclone DDS``, but the middleware (RMW) can be replaced at runtime. See the `tutorial ` on how to work with multiple RMWs. Stay up to date diff --git a/source/Installation/macOS-Install-Binary.rst b/source/Installation/macOS-Install-Binary.rst index 6cd8a4b85be..ae359c46b0f 100644 --- a/source/Installation/macOS-Install-Binary.rst +++ b/source/Installation/macOS-Install-Binary.rst @@ -187,7 +187,7 @@ The ROS 1 bridge can connect topics from ROS 1 to ROS 2 and vice-versa. See the Additional RMW implementations (optional) ----------------------------------------- -The default middleware that ROS 2 uses is ``Fast-RTPS``, but the middleware (RMW) can be replaced at runtime. +The default middleware that ROS 2 uses is ``Cyclone DDS``, but the middleware (RMW) can be replaced at runtime. See the `tutorial ` on how to work with multiple RMWs. Troubleshooting From 3bc9cae5bc050605273d3769cbd2e8eaa65aa68e Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Tue, 12 Jan 2021 09:59:39 -0500 Subject: [PATCH 18/79] Fix conflicts. Signed-off-by: Chris Lalancette --- .../Tutorials/Working-with-multiple-RMW-implementations.rst | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/source/Tutorials/Working-with-multiple-RMW-implementations.rst b/source/Tutorials/Working-with-multiple-RMW-implementations.rst index 9c3afb079b3..0078297865b 100644 --- a/source/Tutorials/Working-with-multiple-RMW-implementations.rst +++ b/source/Tutorials/Working-with-multiple-RMW-implementations.rst @@ -144,11 +144,7 @@ it will generate a daemon with a Cyclone DDS implementation: .. code-block:: bash -<<<<<<< HEAD - 21318 22.0 0.6 535896 55044 pts/8 Sl 16:14 0:00 /usr/bin/python3 /opt/ros/rolling/bin/_ros2_daemon --rmw-implementation rmw_fastrtps_cpp --ros-domain-id 22 -======= - 21318 22.0 0.6 535896 55044 pts/8 Sl 16:14 0:00 /usr/bin/python3 /opt/ros/foxy/bin/_ros2_daemon --rmw-implementation rmw_cyclonedds_cpp --ros-domain-id 22 ->>>>>>> 1edebe3... Update the tutorial to point to Cyclone DDS as the default. + 21318 22.0 0.6 535896 55044 pts/8 Sl 16:14 0:00 /usr/bin/python3 /opt/ros/rolling/bin/_ros2_daemon --rmw-implementation rmw_cyclonedds_cpp --ros-domain-id 22 Even if you run the command line tool again with the correct RMW implementation, the daemon's RMW implementation will not change and the ROS 2 command line tools will fail. From d49451f0f60399fa044531579556e17136e1201c Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 12 Jan 2021 08:18:20 -0800 Subject: [PATCH 19/79] add links anywhere "previous tutorial" is mentioned (#1001) (#1005) Signed-off-by: maryaB-osr (cherry picked from commit a34a06747e46a34ee682ec491055fd6ffb956b03) Co-authored-by: Marya Belanger --- .../Actions/Writing-a-Cpp-Action-Server-Client.rst | 3 +-- source/Tutorials/Creating-Your-First-ROS2-Package.rst | 2 +- source/Tutorials/Custom-ROS2-Interfaces.rst | 6 +++--- .../Tutorials/Ros2bag/Recording-And-Playing-Back-Data.rst | 2 +- .../Tutorials/Single-Package-Define-And-Use-Interface.rst | 2 -- source/Tutorials/Topics/Topic-Statistics-Tutorial.rst | 3 ++- source/Tutorials/Topics/Understanding-ROS2-Topics.rst | 2 +- source/Tutorials/Turtlesim/Introducing-Turtlesim.rst | 2 +- source/Tutorials/Understanding-ROS2-Nodes.rst | 2 +- source/Tutorials/Using-Parameters-In-A-Class-CPP.rst | 2 +- source/Tutorials/Using-Parameters-In-A-Class-Python.rst | 2 +- source/Tutorials/Workspace/Creating-A-Workspace.rst | 1 + .../Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst | 4 ++-- .../Tutorials/Writing-A-Simple-Cpp-Service-And-Client.rst | 2 +- .../Writing-A-Simple-Py-Publisher-And-Subscriber.rst | 4 ++-- source/Tutorials/Writing-A-Simple-Py-Service-And-Client.rst | 2 +- source/Tutorials/catment.rst | 2 +- 17 files changed, 21 insertions(+), 22 deletions(-) diff --git a/source/Tutorials/Actions/Writing-a-Cpp-Action-Server-Client.rst b/source/Tutorials/Actions/Writing-a-Cpp-Action-Server-Client.rst index 2bf16fbc6ee..b9493e0f2b1 100644 --- a/source/Tutorials/Actions/Writing-a-Cpp-Action-Server-Client.rst +++ b/source/Tutorials/Actions/Writing-a-Cpp-Action-Server-Client.rst @@ -37,9 +37,8 @@ As we saw in the :ref:`CreatePkg` tutorial, we need to create a new package to h 1.1 Creating the action_tutorials_cpp package ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Go into the action workspace you created in the previous tutorial, and create a new package for the C++ action server: +Go into the action workspace you created in the :ref:`previous tutorial ` (remember to source the workspace), and create a new package for the C++ action server: -(Remember to :ref:`source the workspace from the previous tutorial ` first.) .. tabs:: diff --git a/source/Tutorials/Creating-Your-First-ROS2-Package.rst b/source/Tutorials/Creating-Your-First-ROS2-Package.rst index f3070624b0f..e0d2cc03507 100644 --- a/source/Tutorials/Creating-Your-First-ROS2-Package.rst +++ b/source/Tutorials/Creating-Your-First-ROS2-Package.rst @@ -112,7 +112,7 @@ Tasks First, :ref:`source your ROS 2 installation `. -Let’s use the workspace you created in the previous tutorial, ``dev_ws``, for your new package.` +Let’s use the workspace you created in the :ref:`previous tutorial `, ``dev_ws``, for your new package.` Make sure you are in the ``src`` folder before running the package creation command. diff --git a/source/Tutorials/Custom-ROS2-Interfaces.rst b/source/Tutorials/Custom-ROS2-Interfaces.rst index 292ceb90d39..9c03d833ff3 100644 --- a/source/Tutorials/Custom-ROS2-Interfaces.rst +++ b/source/Tutorials/Custom-ROS2-Interfaces.rst @@ -16,7 +16,7 @@ Creating custom ROS 2 msg and srv files Background ---------- -In previous tutorials you utilized message and service interfaces to learn about topics, services, and simple publisher/subscriber and service/client nodes. +In previous tutorials you utilized message and service interfaces to learn about :ref:`topics `, :ref:`services `, and simple publisher/subscriber (:ref:`C++`/:ref:`Python`) and service/client (:ref:`C++`/:ref:`Python`) nodes. The interfaces you used were predefined in those cases. While it’s good practice to use predefined interface definitions, you will probably need to define your own messages and services sometimes as well. @@ -189,7 +189,7 @@ A few simple modifications to the nodes, ``CMakeLists`` and ``package`` files wi 7.1 Testing ``Num.msg`` with pub/sub ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -With some slight modifications to the publisher/subscriber package created in a previous tutorial, you can see ``Num.msg`` in action. +With some slight modifications to the publisher/subscriber package created in a previous tutorial (:ref:`C++ ` or :ref:`Python `), you can see ``Num.msg`` in action. Since you’ll be changing the standard string msg to a numerical one, the output will be slightly different. Publisher: @@ -459,7 +459,7 @@ Since ``Num.msg`` relays only an integer, the talker should only be publishing i 7.2 Testing ``AddThreeInts.srv`` with service/client ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -With some slight modifications to the service/client package created in a previous tutorial, you can see ``AddThreeInts.srv`` in action. +With some slight modifications to the service/client package created in a previous tutorial (:ref:`C++ ` or :ref:`Python `), you can see ``AddThreeInts.srv`` in action. Since you’ll be changing the original two integer request srv to a three integer request srv, the output will be slightly different. Service: diff --git a/source/Tutorials/Ros2bag/Recording-And-Playing-Back-Data.rst b/source/Tutorials/Ros2bag/Recording-And-Playing-Back-Data.rst index e385d10731b..de0e06e1a1b 100644 --- a/source/Tutorials/Ros2bag/Recording-And-Playing-Back-Data.rst +++ b/source/Tutorials/Ros2bag/Recording-And-Playing-Back-Data.rst @@ -35,7 +35,7 @@ If you've installed from Debians on Linux and your system doesn’t recognize th ros-rolling-rosbag2-converter-default-plugins \ ros-rolling-rosbag2-storage-default-plugins -This tutorial talks about concepts covered in previous tutorials, like nodes and :ref:`topics `. +This tutorial talks about concepts covered in previous tutorials, like :ref:`nodes ` and :ref:`topics `. It also uses the :ref:`turtlesim package `. As always, don’t forget to source ROS 2 in :ref:`every new terminal you open `. diff --git a/source/Tutorials/Single-Package-Define-And-Use-Interface.rst b/source/Tutorials/Single-Package-Define-And-Use-Interface.rst index a95636687d5..ff3a1824c9b 100644 --- a/source/Tutorials/Single-Package-Define-And-Use-Interface.rst +++ b/source/Tutorials/Single-Package-Define-And-Use-Interface.rst @@ -22,8 +22,6 @@ Background In a :ref:`previous tutorial `, you learned how to create custom msg and srv interfaces. -.. In previous tutorials, you learned how to create :ref:`custom msg and srv interfaces ` and :ref:`action interfaces `. (When actions redo is done) - While best practice is to declare interfaces in dedicated interface packages, sometimes it can be convenient to declare, create and use an interface all in one package. Recall that interfaces can currently only be defined in CMake packages. diff --git a/source/Tutorials/Topics/Topic-Statistics-Tutorial.rst b/source/Tutorials/Topics/Topic-Statistics-Tutorial.rst index c99d3b76705..3f7ab7f75af 100644 --- a/source/Tutorials/Topics/Topic-Statistics-Tutorial.rst +++ b/source/Tutorials/Topics/Topic-Statistics-Tutorial.rst @@ -32,6 +32,7 @@ Prerequisites An installation from either binaries or source, where the version must be at least `ROS2 Foxy `__. + In previous tutorials, you learned how to :ref:`create a workspace `, :ref:`create a package `, and create a :ref:`C++ ` publisher and subscriber. @@ -43,7 +44,7 @@ Tasks 1 Write the subscriber node with statistics enabled ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Navigate into the ``dev_ws/src/cpp_pubsub/src`` folder, created in the previous tutorials, and +Navigate into the ``dev_ws/src/cpp_pubsub/src`` folder, created in the :ref:`previous tutorial `, and download the example talker code by entering the following command: .. tabs:: diff --git a/source/Tutorials/Topics/Understanding-ROS2-Topics.rst b/source/Tutorials/Topics/Understanding-ROS2-Topics.rst index fe60158cec7..d00a8646299 100644 --- a/source/Tutorials/Topics/Understanding-ROS2-Topics.rst +++ b/source/Tutorials/Topics/Understanding-ROS2-Topics.rst @@ -55,7 +55,7 @@ Open another terminal and run: ros2 run turtlesim turtle_teleop_key -Recall from the previous tutorial that the names of these nodes are ``/turtlesim`` and ``/teleop_turtle`` by default. +Recall from the :ref:`previous tutorial ` that the names of these nodes are ``/turtlesim`` and ``/teleop_turtle`` by default. 2 rqt_graph diff --git a/source/Tutorials/Turtlesim/Introducing-Turtlesim.rst b/source/Tutorials/Turtlesim/Introducing-Turtlesim.rst index c7274b6bb36..fb7818e13b7 100644 --- a/source/Tutorials/Turtlesim/Introducing-Turtlesim.rst +++ b/source/Tutorials/Turtlesim/Introducing-Turtlesim.rst @@ -36,7 +36,7 @@ Tasks 1 Install turtlesim ^^^^^^^^^^^^^^^^^^^ -As always, start by sourcing your setup files in a new terminal, as described in the previous tutorial. +As always, start by sourcing your setup files in a new terminal, as described in the :ref:`previous tutorial `. Install the turtlesim package for your ROS 2 distro: diff --git a/source/Tutorials/Understanding-ROS2-Nodes.rst b/source/Tutorials/Understanding-ROS2-Nodes.rst index cddecf1d6af..0408337ace8 100644 --- a/source/Tutorials/Understanding-ROS2-Nodes.rst +++ b/source/Tutorials/Understanding-ROS2-Nodes.rst @@ -60,7 +60,7 @@ To run turtlesim, open a new terminal, and enter the following command: ros2 run turtlesim turtlesim_node -The turtlesim window will open, as you saw in the previous tutorial. +The turtlesim window will open, as you saw in the :ref:`previous tutorial `. Here, the package name is ``turtlesim`` and the executable name is ``turtlesim_node``. diff --git a/source/Tutorials/Using-Parameters-In-A-Class-CPP.rst b/source/Tutorials/Using-Parameters-In-A-Class-CPP.rst index 8243209cb2d..50c893c0dc0 100644 --- a/source/Tutorials/Using-Parameters-In-A-Class-CPP.rst +++ b/source/Tutorials/Using-Parameters-In-A-Class-CPP.rst @@ -33,7 +33,7 @@ Tasks Open a new terminal and :ref:`source your ROS 2 installation ` so that ``ros2`` commands will work. -Navigate into the ``dev_ws`` directory created in a previous tutorial. +Navigate into the ``dev_ws`` directory created in a :ref:`previous tutorial `. Recall that packages should be created in the ``src`` directory, not the root of the workspace. Navigate into ``dev_ws/src`` and create a new package: diff --git a/source/Tutorials/Using-Parameters-In-A-Class-Python.rst b/source/Tutorials/Using-Parameters-In-A-Class-Python.rst index 5984088a51a..8a2223f8052 100644 --- a/source/Tutorials/Using-Parameters-In-A-Class-Python.rst +++ b/source/Tutorials/Using-Parameters-In-A-Class-Python.rst @@ -33,7 +33,7 @@ Tasks Open a new terminal and :ref:`source your ROS 2 installation ` so that ``ros2`` commands will work. -Navigate into the ``dev_ws`` directory created in a previous tutorial. +Navigate into the ``dev_ws`` directory created in a :ref:`previous tutorial `. Recall that packages should be created in the ``src`` directory, not the root of the workspace. Navigate into ``dev_ws/src`` and create a new package: diff --git a/source/Tutorials/Workspace/Creating-A-Workspace.rst b/source/Tutorials/Workspace/Creating-A-Workspace.rst index ee8e68e5833..22d58fc26b2 100644 --- a/source/Tutorials/Workspace/Creating-A-Workspace.rst +++ b/source/Tutorials/Workspace/Creating-A-Workspace.rst @@ -70,6 +70,7 @@ Depending on how you installed ROS 2 (from source or binaries), and which platfo Consult the :ref:`installation guide ` you followed if these commands don’t work for you. +.. _new-directory: 2 Create a new directory ^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst b/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst index 9e14ff0d539..7ff2fe31272 100644 --- a/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst +++ b/source/Tutorials/Writing-A-Simple-Cpp-Publisher-And-Subscriber.rst @@ -35,7 +35,7 @@ Tasks Open a new terminal and :ref:`source your ROS 2 installation ` so that ``ros2`` commands will work. -Navigate into the ``dev_ws`` directory created in a previous tutorial. +Navigate into the ``dev_ws`` directory created in a :ref:`previous tutorial `. Recall that packages should be created in the ``src`` directory, not the root of the workspace. So, navigate into ``dev_ws/src``, and run the package creation command: @@ -211,7 +211,7 @@ Navigate one level back to the ``dev_ws/src/cpp_pubsub`` directory, where the `` Open ``package.xml`` with your text editor. -As mentioned in the previous tutorial, make sure to fill in the ````, ```` and ```` tags: +As mentioned in the :ref:`previous tutorial `, make sure to fill in the ````, ```` and ```` tags: .. code-block:: xml diff --git a/source/Tutorials/Writing-A-Simple-Cpp-Service-And-Client.rst b/source/Tutorials/Writing-A-Simple-Cpp-Service-And-Client.rst index 9f6411fa832..f4cf563691e 100644 --- a/source/Tutorials/Writing-A-Simple-Cpp-Service-And-Client.rst +++ b/source/Tutorials/Writing-A-Simple-Cpp-Service-And-Client.rst @@ -35,7 +35,7 @@ Tasks Open a new terminal and :ref:`source your ROS 2 installation ` so that ``ros2`` commands will work. -Navigate into the ``dev_ws`` directory created in a previous tutorial. +Navigate into the ``dev_ws`` directory created in a :ref:`previous tutorial `. Recall that packages should be created in the ``src`` directory, not the root of the workspace. Navigate into ``dev_ws/src`` and create a new package: diff --git a/source/Tutorials/Writing-A-Simple-Py-Publisher-And-Subscriber.rst b/source/Tutorials/Writing-A-Simple-Py-Publisher-And-Subscriber.rst index a341df25ec2..a460e99afa4 100644 --- a/source/Tutorials/Writing-A-Simple-Py-Publisher-And-Subscriber.rst +++ b/source/Tutorials/Writing-A-Simple-Py-Publisher-And-Subscriber.rst @@ -37,7 +37,7 @@ Tasks Open a new terminal and :ref:`source your ROS 2 installation ` so that ``ros2`` commands will work. -Navigate into the ``dev_ws`` directory created in a previous tutorial. +Navigate into the ``dev_ws`` directory created in a :ref:`previous tutorial `. Recall that packages should be created in the ``src`` directory, not the root of the workspace. So, navigate into ``dev_ws/src``, and run the package creation command: @@ -205,7 +205,7 @@ Navigate one level back to the ``dev_ws/src/py_pubsub`` directory, where the ``s Open ``package.xml`` with your text editor. -As mentioned in the previous tutorial, make sure to fill in the ````, ```` and ```` tags: +As mentioned in the :ref:`previous tutorial `, make sure to fill in the ````, ```` and ```` tags: .. code-block:: xml diff --git a/source/Tutorials/Writing-A-Simple-Py-Service-And-Client.rst b/source/Tutorials/Writing-A-Simple-Py-Service-And-Client.rst index 1903de36b60..ad1767b643c 100644 --- a/source/Tutorials/Writing-A-Simple-Py-Service-And-Client.rst +++ b/source/Tutorials/Writing-A-Simple-Py-Service-And-Client.rst @@ -34,7 +34,7 @@ Tasks Open a new terminal and :ref:`source your ROS 2 installation ` so that ``ros2`` commands will work. -Navigate into the ``dev_ws`` directory created in a previous tutorial. +Navigate into the ``dev_ws`` directory created in a :ref:`previous tutorial `. Recall that packages should be created in the ``src`` directory, not the root of the workspace. Navigate into ``dev_ws/src`` and create a new package: diff --git a/source/Tutorials/catment.rst b/source/Tutorials/catment.rst index 6d00da6070a..086318c1445 100644 --- a/source/Tutorials/catment.rst +++ b/source/Tutorials/catment.rst @@ -195,7 +195,7 @@ Here is a patch that allows you to do that: * `catkin_pkg `__: Also in this patch, we add the ``buildtool_export_depend`` packages to the set that are considered when computing the topological order. -Because we're going to call out to ``ament build``, we will also need a minimal installation of ``ament``, as did in a previous example: +Because we're going to call out to ``ament build``, we will also need a minimal installation of ``ament``, as done in a previous example: .. code-block:: bash From d41fdc2706aa3a643286858f6f7e4142446a4deb Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 13 Jan 2021 09:29:49 -0500 Subject: [PATCH 20/79] Sign up AWS RoboMaker for rosbag2 /clock roadmap item (#1011) (#1012) (cherry picked from commit b0f30171795255fc12a8a850a923eddb9f8e69f3) Co-authored-by: Emerson Knapp <537409+emersonknapp@users.noreply.github.com> --- source/Roadmap.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/Roadmap.rst b/source/Roadmap.rst index 3fbf754f5a5..439d1a7a6e9 100644 --- a/source/Roadmap.rst +++ b/source/Roadmap.rst @@ -77,8 +77,8 @@ If you'd like to take on one of these tasks, please :ref:`get in touch with us < - Complete * - rosbag2: Record /clock topic - Medium - - - - + - AWS RoboMaker + - 2nd quarter 2021 * - Performance: Reduce the performance overhead of executors - Large - From 6c121acaa4e15e28f2851c9e653419a6bb57f2fa Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 13 Jan 2021 09:31:50 -0500 Subject: [PATCH 21/79] Add Rust Working Group (#893) (#1015) Signed-off-by: ruffsl (cherry picked from commit 438bc794f049bdf8e79ae3fce780503cfc689633) Co-authored-by: Ruffin --- source/Governance.rst | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/source/Governance.rst b/source/Governance.rst index 2c3accb6bb4..36d6840a195 100644 --- a/source/Governance.rst +++ b/source/Governance.rst @@ -156,7 +156,7 @@ Working Groups (WGs) As described in its :download:`charter `, the TSC establishes working groups (WGs) to discuss and make progress on specific topics. -The current WGs are (6 as of 2019-09-04): +The current WGs are (11 as of 2021-01-12): Control ^^^^^^^ @@ -223,7 +223,6 @@ Manipulation Real-time ^^^^^^^^^ - * Lead(s): Dejan Pangercic, Andrei Kholodnyi * Resources: TODO @@ -231,6 +230,16 @@ Real-time * Meeting invite group `ros-real-time-working-group-invites@googlegroups.com `_ * Discourse tag: `wg-real-time `_ +Rust +^^^^ + +* Lead(s): Ruffin White, Geoffrey Biggs +* Resources: + + * `Working group Community `__ + * Meeting invite group `ros-rust-working-group-invites@googlegroups.com `_ + * Discourse tag: `wg-rust `_ + * Matrix chat `+rosorg-rust:matrix.org `_ Safety ^^^^^^ From e5ed19a08a25a76032d1802b90312e9dbcecf0cf Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 15 Jan 2021 08:48:01 -0500 Subject: [PATCH 22/79] Correct package names (#1024) (#1025) (cherry picked from commit e730d337a8cc5138d648294265cbdf8a3dbbb56e) Co-authored-by: Geoffrey Biggs --- source/Tutorials/Releasing-a-ROS-2-package-with-bloom.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Tutorials/Releasing-a-ROS-2-package-with-bloom.rst b/source/Tutorials/Releasing-a-ROS-2-package-with-bloom.rst index 1c53e79249f..9592252587b 100644 --- a/source/Tutorials/Releasing-a-ROS-2-package-with-bloom.rst +++ b/source/Tutorials/Releasing-a-ROS-2-package-with-bloom.rst @@ -34,7 +34,7 @@ See above version requirements. .. code-block:: bash - sudo apt install python-catkin-pkg python-bloom + sudo apt install python3-catkin-pkg python3-bloom If you're using a version of bloom older than 0.6.8 you'll need to use the v3 index url for releasing. From 0bf17b7cf7bada89ce81470b853d273c349e1e37 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Tue, 19 Jan 2021 15:21:28 -0500 Subject: [PATCH 23/79] added core content to concepts, renamed files to match (#1010) (#1029) Signed-off-by: maryaB-osr (cherry picked from commit 109b41a4be1cca78d269ee38e020bbc53699a289) Co-authored-by: Marya Belanger --- global_substitutions.txt | 17 ++ source/Concepts.rst | 31 +-- source/Concepts/About-Build-System.rst | 135 ++++++++++++ source/Concepts/About-Client-Interfaces.rst | 54 +++++ ...=> About-Different-Middleware-Vendors.rst} | 0 source/Concepts/About-Internal-Interfaces.rst | 192 ++++++++++++++++++ .../{Logging.rst => About-Logging.rst} | 0 .../About-Middleware-Implementations.rst | 65 ++++++ ...s.rst => About-ROS-2-Client-Libraries.rst} | 0 .../ROS Client Library API Stack.graffle | Bin 0 -> 4997 bytes source/Concepts/images/ros2_logo.png | Bin 0 -> 5265 bytes source/Concepts/images/ros2_logo.pxm | Bin 0 -> 69873 bytes .../images/ros_client_library_api_stack.png | Bin 0 -> 352312 bytes .../images/ros_idl_api_stack_dynamic.png | Bin 0 -> 248054 bytes .../images/ros_idl_api_stack_static.png | Bin 0 -> 274925 bytes source/Features.rst | 4 +- source/Glossary.rst | 32 +++ source/Releases/Alpha-Overview.rst | 2 +- .../Logging-and-logger-configuration.rst | 2 +- ...king-with-multiple-RMW-implementations.rst | 2 +- source/index.rst | 1 + 21 files changed, 520 insertions(+), 17 deletions(-) create mode 100644 global_substitutions.txt create mode 100644 source/Concepts/About-Build-System.rst create mode 100644 source/Concepts/About-Client-Interfaces.rst rename source/Concepts/{DDS-and-ROS-middleware-implementations.rst => About-Different-Middleware-Vendors.rst} (100%) create mode 100644 source/Concepts/About-Internal-Interfaces.rst rename source/Concepts/{Logging.rst => About-Logging.rst} (100%) create mode 100644 source/Concepts/About-Middleware-Implementations.rst rename source/Concepts/{ROS-2-Client-Libraries.rst => About-ROS-2-Client-Libraries.rst} (100%) create mode 100644 source/Concepts/images/ROS Client Library API Stack.graffle create mode 100644 source/Concepts/images/ros2_logo.png create mode 100644 source/Concepts/images/ros2_logo.pxm create mode 100644 source/Concepts/images/ros_client_library_api_stack.png create mode 100644 source/Concepts/images/ros_idl_api_stack_dynamic.png create mode 100644 source/Concepts/images/ros_idl_api_stack_static.png create mode 100644 source/Glossary.rst diff --git a/global_substitutions.txt b/global_substitutions.txt new file mode 100644 index 00000000000..baff6eaee2e --- /dev/null +++ b/global_substitutions.txt @@ -0,0 +1,17 @@ +.. |ament packages| replace:: :term:`ament packages ` + +.. |API| replace:: :term:`API` +.. |APIs| replace:: :term:`APIs ` + +.. |client library| replace:: :term:`client library ` +.. |client libraries| replace:: :term:`client libraries ` + +.. |GitHub| replace:: GitHub +.. _GitHub: https://github.com/ + +.. |package| replace:: :term:`package` +.. |packages| replace:: :term:`packages ` + +.. |REPs| replace:: :term:`REPs ` + +.. |rclcpp| replace:: :term:`rclcpp` diff --git a/source/Concepts.rst b/source/Concepts.rst index fd9a0c7d465..7ab0636d358 100644 --- a/source/Concepts.rst +++ b/source/Concepts.rst @@ -3,26 +3,33 @@ Concepts ======== -The following "Concepts" pages provide an overview for key aspects of ROS 2. -Concept overviews will help you understand the "big picture" idea of ROS 2 systems. +Conceptual overviews provide general background information about key aspects of ROS 2: .. toctree:: :maxdepth: 1 - Concepts/DDS-and-ROS-middleware-implementations + Concepts/About-Different-Middleware-Vendors + Concepts/About-Logging Concepts/About-Quality-of-Service-Settings + Concepts/About-ROS-2-Client-Libraries Concepts/About-ROS-Interfaces - Concepts/About-Topic-Statistics - Concepts/ROS-2-Client-Libraries - Concepts/Logging Concepts/About-ROS-2-Parameters + Concepts/About-Topic-Statistics + +The Core Stack Developer Concepts are much more detailed conceptual articles intended for developers who plan modify or contribute to the ROS 2 core: + +.. toctree:: + :maxdepth: 2 -See https://docs.ros2.org/ for more high-level ROS 2 documentation. + Concepts/About-Build-System + Concepts/About-Internal-Interfaces + Concepts/About-Middleware-Implementations + Concepts/About-Client-Interfaces -Overview of ROS 2 Concepts --------------------------- +Quick overview of ROS 2 Concepts +-------------------------------- -.. contents:: Table of Contents +.. contents:: :local: ROS 2 is a middleware based on an anonymous publish/subscribe mechanism that allows for message passing between different ROS processes. @@ -30,8 +37,8 @@ ROS 2 is a middleware based on an anonymous publish/subscribe mechanism that all At the heart of any ROS 2 system is the ROS graph. The ROS graph refers to the network of nodes in a ROS system and the connections between them by which they communicate. -Quick Overview of Graph Concepts -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Graph Concepts +^^^^^^^^^^^^^^ * Nodes: A node is an entity that uses ROS to communicate with other nodes. diff --git a/source/Concepts/About-Build-System.rst b/source/Concepts/About-Build-System.rst new file mode 100644 index 00000000000..1d06c7cdb3c --- /dev/null +++ b/source/Concepts/About-Build-System.rst @@ -0,0 +1,135 @@ +About the build system +====================== + +.. include:: ../../global_substitutions.txt + +Under everything is the build system. +Iterating on ``catkin`` from ROS 1 we have created a set of |packages| under the moniker ``ament``. +Some of the reasons for changing the name to ``ament`` are that we wanted it to not collide with ``catkin`` (in case we want mix them at some point) and to prevent confusion with existing ``catkin`` documentation. +``ament``'s primary responsibility is to make it easier to develop and maintain ROS 2 core |packages|. +However, this responsibility extends to any user who is willing to make use of our build system conventions and tools. +Additionally it should make |packages| conventional, such that developers should be able to pick up any ``ament`` based |package| and make some assumptions about how it works, how to introspect it, and how to build or use it. + +``ament`` consists of a few important repositories which are all in the ``ament`` |GitHub|_ organization: + +.. contents:: + :depth: 1 + :local: + +The ``ament_package`` Package +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Located on |GitHub|_ at `ament/ament_package `_, this repository contains a single :term:`ament Python package` that provides various utilities for |ament packages|, e.g. templates for environment hooks. + +All |ament packages| must contain a single :term:`package.xml` file at the root of the package regardless of their underlying build system. +The :term:`package.xml` "manifest" file contains information that is required in order to process and operate on a |package|. +This |package| information includes things like the |package|'s name, which is globally unique, and the package's dependencies. +The :term:`package.xml` file also serves as the marker file which indicates the location of the |package| on the file system. + +Parsing of the :term:`package.xml` files is provided by ``catkin_pkg`` (as in ROS 1), while functionality to locate |packages| by searching the file system for these :term:`package.xml` files is provided by build tools such as ``colcon``. + +.. glossary:: + + package.xml + Package manifest file which marks the root of a :term:`package` and contains meta information about the :term:`package` including its name, version, description, maintainer, license, dependencies, and more. + The contents of the manifest are in machine readable XML format and the contents are described in the |REPs| `127 `_ and `140 `_, with the possibility of further modifications in future |REPs|. + +So anytime some |package| is referred to as an :term:`ament package`, it means that it is a single unit of software (source code, build files, tests, documentation, and other resources) which is described using a :term:`package.xml` manifest file. + +.. glossary:: + + ament package + Any |package| which contains a :term:`package.xml` and follows the packaging guidelines of ``ament``, regardless of the underlying build system. + +Since the term :term:`ament package` is build system agnostic, there can be different kinds of |ament packages|, e.g. :term:`ament CMake package`, :term:`ament Python package`, etc. + +Here is a list of common package types that you might run into in this software stack: + +.. glossary:: + + CMake package + Any |package| containing a plain CMake project and a :term:`package.xml` manifest file. + + ament CMake package + A :term:`CMake package` that also follows the ``ament`` packaging guidelines. + + Python package + Any |package| containing a `setuptools `_ based Python project and a :term:`package.xml` manifest file. + + ament Python package + A :term:`Python package` that also follows the ``ament`` packaging guidelines. + +The ``ament_cmake`` Repository +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Located on |GitHub|_ at `ament/ament_cmake `_, this repository contains many "ament CMake" and pure CMake packages which provide the infrastructure in CMake that is required to create "ament CMake" packages. +In this context "ament CMake" packages means: ``ament`` packages that are built using CMake. +So the |packages| in this repository provide the necessary CMake functions/macros and CMake Modules to facilitate creating more "ament CMake" (or ``ament_cmake``) packages. +Packages of this type are identified with the ``ament_cmake`` tag in the ```` tag of the :term:`package.xml` file. + +The |packages| in this repository are extremely modular, but there is a single "bottleneck" |package| called ``ament_cmake``. +Anyone can depend on the ``ament_cmake`` |package| to get all of the aggregate functionality of the |packages| in this repository. +Here a list of the |packages| in the repository along with a short description: + +- ``ament_cmake`` + + - aggregates all other |packages| in this repository, users need only to depend on this. + +- ``ament_cmake_auto`` + + - provides convenience CMake functions which automatically handle a lot of the tedious parts of writing a |package|'s ``CMakeLists.txt`` file + +- ``ament_cmake_core`` + + - provides all built-in core concepts for ``ament``, e.g. environment hooks, resource indexing, symbolic linking install and others + +- ``ament_cmake_gmock`` + + - adds convenience functions for making gmock based unit tests + +- ``ament_cmake_gtest`` + + - adds convenience functions for making gtest based automated tests + +- ``ament_cmake_nose`` + + - adds convenience functions for making nosetests based python automated tests + +- ``ament_cmake_python`` + + - provides CMake functions for |packages| that contain Python code + +- ``ament_cmake_test`` + + - aggregates different kinds of tests, e.g. gtest and nosetests, under a single target using `CTest `_ + +The ``ament_cmake_core`` |package| contains a lot of the CMake infrastructure that makes it possible to cleanly pass information between |packages| using conventional interfaces. +This makes the |packages| have more decoupled build interfaces with other |packages|, promoting their reuse and encouraging conventions in the build systems of different |packages|. +For instance it provides a standard way to pass include directories, libraries, definitions, and dependencies between |packages| so that consumers of this information can access this information in a conventional way. + +The ``ament_cmake_core`` |package| also provides features of the ``ament`` build system like symbolic link installation, which allows you to symbolically link files from either the source space or the build space into the install space rather than copying them. +This allows you to install once and then edit non-generated resources like Python code and configuration files without having to rerun the install step for them to take effect. +This feature essentially replaces the "devel space" from ``catkin`` because it has most of the advantages with few of the complications or drawbacks. + +Another feature provided by ``ament_cmake_core`` is the |package| resource indexing which is a way for |packages| to indicate that they contain a resource of some type. +The design of this feature makes it much more efficient to answer simple questions like what |packages| are in this prefix (e.g. ``/usr/local``) because it only requires that you list the files in a single possible location under that prefix. +You can read more about this feature in the `design docs `_ for the resource index. + +Like ``catkin``, ``ament_cmake_core`` also provides environment setup files and |package| specific environment hooks. +The environment setup files, often named something like ``setup.bash``, are a place for |package| developers to define changes to the environment that are needed to utilize their |package|. +The developers are able to do this using an "environment hook" which is basically an arbitrary bit of shell code that can set or modify environment variables, define shell functions, setup auto-completion rules, etc... +This feature is how, for example, ROS 1 set the ``ROS_DISTRO`` environment variable without ``catkin`` knowing anything about the ROS distribution. + +The ``ament_lint`` Repository +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Located on |GitHub|_ at `ament/ament_lint `_, this repository provides several |packages| which provide linting and testing services in a convenient and consistent manner. +Currently there are |packages| to support C++ style linting using ``uncrustify``, static C++ code checks using ``cppcheck``, checking for copyright in source code, Python style linting using ``pep8``, and other things. +The list of helper packages will likely grow in the future. + +Build tools +~~~~~~~~~~~ + +A build tool performs the task of building a workspace of packages together at once with a single invocation. +For ROS 2 releases up to Ardent, the build tool providing this functionality is called ``ament_tools``. +As of ROS 2 Bouncy, ``ament_tools`` has been superseded by ``colcon``, as described in `the universal build tool article `_. diff --git a/source/Concepts/About-Client-Interfaces.rst b/source/Concepts/About-Client-Interfaces.rst new file mode 100644 index 00000000000..348efea1247 --- /dev/null +++ b/source/Concepts/About-Client-Interfaces.rst @@ -0,0 +1,54 @@ +ROS 2 Client Interfaces (Client Libraries) +========================================== + +.. include:: ../../global_substitutions.txt + +ROS Client Interfaces, a.k.a. |client libraries|, are user facing interfaces which provide the high level functionality and are built on top of the ``rcl`` and ``rosidl`` |APIs|. + +.. rclc is not up-to-date + The ``rclc`` Package + ~~~~~~~~~~~~~~~~~~~~ + + The ROS Client Library for C (``rclc``) is the user facing C idiomatic interface which provides all of the ROS client functionality like creating nodes, publisher, and subscribers. + This |API| uses the ``rcl`` |API| and the ``rosidl`` |API| to implement its functions. + Because both ``rcl`` and ``rclc`` are written in C, you might wonder what the difference is between the two |APIs|. + The ``rcl`` |API| provides functions for things like creating nodes, publishers, and subscribers, which are exposed through to the ``rclc`` |API|, but the ``rclc`` |API| additionally handles things like the threading model, configuration, and other components of the client library which are solved differently in different languages. + Since ``rcl`` and ``rclc`` are so similar to each other, ``rclc`` essential can be described as ``rcl`` plus execution (threading). + However, the distinction becomes clearer when you consider client libraries in different languages. + + The ``rclc`` repository is located on |GitHub|_ at `ros2/rclc `_ and contains the |package| ``rclc`` which contains the development resources, interface and reference implementation that is required at runtime. + + .. warning:: + + TODO: Link to the ``rclc`` |API| docs + +The ``rclcpp`` Package +~~~~~~~~~~~~~~~~~~~~~~ + +The ROS Client Library for C++ (``rclcpp``) is the user facing, C++ idiomatic interface which provides all of the ROS client functionality like creating nodes, publisher, and subscribers. +``rclcpp`` builds on top of ``rcl`` and the ``rosidl`` |API|, and it is designed to be used with the C++ messages generated by ``rosidl_generator_cpp``. + +``rclcpp`` makes use of all the features of C++ and C++11 to make the interface as easy to use as possible, but since it reuses the implementation in ``rcl`` it is able maintain a consistent behavior with the other client libraries that use the ``rcl`` |API|. + +The ``rclcpp`` repository is located on |GitHub|_ at `ros2/rclcpp `_ and contains the |package| ``rclcpp``. +The generated |API| documentation is here: + +`api/rclcpp/index.html `_ + +The ``rclpy`` Package +~~~~~~~~~~~~~~~~~~~~~ + +The ROS Client Library for Python (``rclpy``) is the Python counterpart to the C++ client library. +Like the C++ client library, ``rclpy`` also builds on top of the ``rcl`` C API for its implementation. +The interface provides an idiomatic Python experience which uses native Python types and patterns like lists and context objects, but by using the ``rcl`` |API| in the implementation it stays consistent with the other client libraries in terms of feature parity and behavior. +In addition to providing Python idiomatic bindings around the ``rcl`` |API| and Python classes for each message, the Python client library takes care of the execution model, using ``threading.Thread`` or similar to run the functions in the ``rcl`` |API|. + +Like C++ it generates custom Python code for each ROS message that the user interacts with, but unlike C++ it eventually converts the native Python message object into the C version of the message. +All operations happen on the Python version of the messages until they need to be passed into the ``rcl`` layer, at which point they are converted into the plain C version of the message so it can be passed into the ``rcl`` C |API|. +This is avoided if possible when communicating between publishers and subscribers in the same process to cut down on the conversion into and out of Python. + +The ``rclpy`` repository is located on |GitHub|_ at `ros2/rclpy `_ and contains the |package| ``rclpy``. +The generated |API| documentation is here: + + +`api/rclpy/index.html `_ diff --git a/source/Concepts/DDS-and-ROS-middleware-implementations.rst b/source/Concepts/About-Different-Middleware-Vendors.rst similarity index 100% rename from source/Concepts/DDS-and-ROS-middleware-implementations.rst rename to source/Concepts/About-Different-Middleware-Vendors.rst diff --git a/source/Concepts/About-Internal-Interfaces.rst b/source/Concepts/About-Internal-Interfaces.rst new file mode 100644 index 00000000000..fc4d2be1abc --- /dev/null +++ b/source/Concepts/About-Internal-Interfaces.rst @@ -0,0 +1,192 @@ +About internal ROS 2 interfaces +=============================== + +.. include:: ../../global_substitutions.txt + +The internal ROS interfaces are public C |APIs| that are intended for use by developers who are creating |client libraries| or adding a new underlying middleware, but are not intended for use by typical ROS users. +The ROS |client libraries| provide the user facing |APIs| that most ROS users are familiar with, and may come in a variety of programming languages. + +Internal API Architecture Overview +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +There are two main internal interfaces: + +- the ROS middleware interface (``rmw`` |API|) +- the ROS client library interface (``rcl`` |API|) + +The ``rmw`` |API| is the interface between the ROS 2 software stack and the underlying middleware implementation. +The underlying middleware used for ROS 2 is either a DDS or RTPS implementation, and is responsible for discovery, publish and subscribe mechanics, request-reply mechanics for services, and serialization of message types. + +The ``rcl`` |API| is a slightly higher level |API| which is used to implement the |client libraries| and does not touch the middleware implementation directly, but rather does so through the ROS middleware interface (``rmw`` |API|) abstraction. + +.. figure:: images/ros_client_library_api_stack.png + :alt: ros2 software stack + +As the diagram shows, these |APIs| are stacked such that the typical ROS user will use the |client library| |API|, e.g. ``rclcpp``, to implement their code (executable or library). +The implementation of the |client libraries|, e.g. ``rclcpp``, use the ``rcl`` interface which provides access to the ROS graph and graph events. +The ``rcl`` implementation in turn uses the ``rmw`` |API| to access the ROS graph. +The purpose of the ``rcl`` implementation is to provide a common implementation for more complex ROS concepts and utilities that may be used by various |client libraries|, while remaining agnostic to the underlying middleware being used. +The purpose of the ``rmw`` interface is to capture the absolute minimum middleware functionality needed to support ROS's client libraries. +Finally, the implementation of the ``rmw`` |API| is provided by a middleware implementation specific |package|, e.g. ``rmw_fastrtps_cpp``, the library of which is compiled against vendor specific DDS interfaces and types. + +In the diagram above there is also a box labeled ``ros_to_dds``, and the purpose of this box is to represent a category of possible packages which allow the user to access DDS vendor specific objects and settings using the ROS equivalents. +One of the goals of this abstraction interface is to completely insulate the ROS user space code from the middleware being used, so that changing DDS vendors or even middleware technology has a minimal impact on the users code. +However, we recognize that on occasion it is useful to reach into the implementation and manually adjust settings despite the consequences that might have. +By requiring the use of one of these packages in order to access the underlying DDS vendor's objects, we can avoid exposing vendor specific symbols and headers in the normal interface. +It also makes it easy to see what code is potentially violating the vendor portability by inspecting the package's dependencies to see if one of these ``ros_to_dds`` packages are being used. + +.. _Type Specific Interfaces: + +Type Specific Interfaces +~~~~~~~~~~~~~~~~~~~~~~~~ + +All along the way there are some parts of the |APIs| that are necessarily specific to the message types being exchanged, e.g. publishing a message or subscribing to a topic, and therefore require generated code for each message type. +The following diagram layouts the path from user defined ``rosidl`` files, e.g. ``.msg`` files, to the type specific code used by the user and system to perform type specific functions: + +.. figure:: images/ros_idl_api_stack_static.png + :alt: ros2 idl static type support stack + + Figure: flow chart of "static" type support generation, from ``rosidl`` files to user facing code. + +The right hand side of the diagram shows how the ``.msg`` files are passed directly to language specific code generators, e.g. ``rosidl_generator_cpp`` or ``rosidl_generator_py``. +These generators are responsible for creating the code that the user will include (or import) and use as the in-memory representation of the messages that were defined in the ``.msg`` files. +For example, consider the message ``std_msgs/String``, a user might use this file in C++ with the statement ``#include ``, or they might use the statement ``from std_msgs.msg import String`` in Python. +These statements work because of the files generated by these language specific (but middleware agnostic) generator packages. + +Separately, the ``.msg`` files are used to generate type support code for each type. +In this context, type support means: meta data or functions that are specific to a given type and that are used by the system to perform particular tasks for the given type. +The type support for a given message might include things like a list of the names and types for each field in the message. +It might also contain a reference to code that can perform particular tasks for that type, e.g. publish a message. + +Static Type Support +^^^^^^^^^^^^^^^^^^^ + +When the type support references code to do particular functions for a specific message type, that code sometimes needs to do middleware specific work. +For example, consider the type specific publish function, when using "vendor A" the function will need to call some of "vendor A"'s |API|, but when using "vendor B" it will need to call "vendor B"'s |API|. +To allow for middleware vendor specific code, the user defined ``.msg`` files may result in the generation of vendor specific code. +This vendor specific code is still hidden from the user through the type support abstraction, which is similar to how the "Private Implementation" (or Pimpl) pattern works. + +Static Type Support with DDS +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +For middleware vendors based on DDS, and specifically those which generate code based on the OMG IDL files (``.idl`` files), the user defined ``rosidl`` files (``.msg`` files) are converted into equivalent OMG IDL files (``.idl`` files). +From these OMG IDL files, vendor specific code is created and then used within the type specific functions which are referenced by the type support for a given type. +The above diagram shows this on the left hand side, where the ``.msg`` files are consumed by the ``rosidl_dds`` package to produce ``.idl`` files, and then those ``.idl`` files are given to language specific and DDS vendor specific type support generation packages. + +For example, consider the Connext DDS implementation, it has a package called ``rosidl_typesupport_connext_cpp``. +This package is responsible for generating code to handle do things like publish to a topic for the C++ version of a given message type, using the ``.idl`` files generated by the ``rosidl_dds`` package to do so. +Again, this code, while specific to Connext, is still not exposed to the user because of the abstraction in the type support. + +Dynamic Type Support +^^^^^^^^^^^^^^^^^^^^ + +Another way to implement type support is to have generic functions for things like publishing to a topic, rather than generating a version of the function for each message type. +In order to accomplish this, this generic function needs some meta information about the message type being published, things like a list of field names and types in the order in which they appear in the message type. +Then to publish a message, you call a generic publish function and pass a message to be published along with a structure which contains the necessary meta data about the message type. +This is referred to as "dynamic" type support, as opposed to "static" type support which requires generated versions of a function for each type. + +.. figure:: images/ros_idl_api_stack_dynamic.png + :alt: ros2 idl dynamic type support stack + + Figure: flow chart of "dynamic" type support generation, from ``rosidl`` files to user facing code. + +The above diagram shows the flow from user defined ``rosidl`` files to generated user facing code. +It is very similar to the diagram for static type support, and differs only in how the type support is generated which is represented by the left hand side of the diagram. +In dynamic type support the ``.msg`` files are converted directly into user facing code. + +This code is also middleware agnostic, because it only contains meta information about the messages. +The function to actually do the work, e.g. publishing to a topic, is generic to the message type and will make any necessary calls to the middleware specific |APIs|. +Note that rather than dds vendor specific packages providing the type support code, which is the case in static type support, this method has middleware agnostic package for each language, e.g. ``rosidl_typesupport_introspection_c`` and ``rosidl_typesupport_introspection_cpp``. +The ``introspection`` part of the package name refers to the ability to introspect any message instance with the generated meta data for the message type. +This is the fundamental capability that allows for generic implementations of functions like "publish to a topic". + +This approach has the advantage that all generated code is middleware agnostic, which means it can be reused for different middleware implementations, so long as they allow for dynamic type support. +It also results in less generated code, which reduces compile time and code size. + +However, dynamic type support requires that the underlying middleware support a similar form of dynamic type support. +In the case of DDS the DDS-XTypes standard allows for publishing of messages using meta information rather than generated code. +DDS-XTypes, or something like it, is required in the underlying middleware in order to support dynamic type support. +Also, this approach to type support is normally slower than the static type support alternative. +The type specific generated code in static type support can be written to be more efficient as it does not need to iterate over the message type's meta data to perform things like serialization. + +The ``rcl`` Repository +~~~~~~~~~~~~~~~~~~~~~~ + +The ROS Client Library interface (``rcl`` |API|) can be used by |client libraries| (e.g. ``rclc``, ``rclcpp``, ``rclpy``, etc.) in order to avoid duplicating logic and features. +By reusing the ``rcl`` |API|, client libraries can be smaller and more consistent with each other. +Some parts of the client library are intentionally left out of the ``rcl`` |API| because the language idiomatic method should be used to implement those parts of the system. +A good example of this is the execution model, which ``rcl`` does not address at all. +Instead the client library should provide a language idiomatic solution like ``pthreads`` in C, ``std::thread`` in C++11, and ``threading.Thread`` in Python. +Generally the ``rcl`` interface provides functions that are not specific to a language pattern and are not specific to a particular message type. + +The ``rcl`` |API| is located in the `ros2/rcl `_ repository on |GitHub|_ and contains the interface as C headers. +The ``rcl`` C implementation is provided by the ``rcl`` |package| in the same repository. +This implementation avoids direct contact with the middleware by instead using the ``rmw`` and ``rosidl`` |APIs|. + +For a complete definition of the ``rcl`` |API|, see its `API documentation `_: + +The ``rmw`` Repository +~~~~~~~~~~~~~~~~~~~~~~ + +The ROS middleware interface (``rmw`` |API|) is the minimal set of primitive middleware capabilities needed to build ROS on top. +Providers of different middleware implementations must implement this interface in order to support the entire ROS stack on top. +Currently all of the middleware implementations are for different DDS vendors. + +The ``rmw`` |API| is located in the `ros2/rmw `_ repository. +The ``rmw`` |package| contains the C headers which define the interface, the implementation of which is provided by the various |packages| of rmw implementations for different DDS vendors. + +For a definition of the ``rmw`` |API|, see the |API| docs: + +`api/rmw/index.html `_ + + +The ``rosidl`` Repository +~~~~~~~~~~~~~~~~~~~~~~~~~ + +The ``rosidl`` |API| consists of a few message related static functions and types along with a definition of what code should be generated by messages in different languages. +The generated message code specified in the |API| will be language specific, but may or may not reuse generated code for other languages. +The generated message code specified in the |API| contains things like the message data structure, functions for construction, destruction, etc. +The |API| will also implement a way to get the type support structure for the message type, which is used when publishing or subscribing to a topic of that message type. + +There are several repositories that play a role in the ``rosidl`` |API| and implementation. + +The ``rosidl`` repository, located on |GitHub|_ at `ros2/rosidl `_, defines the message IDL syntax, i.e. syntax of ``.msg`` files, ``.srv`` files, etc., and contains |packages| for parsing the files, for providing CMake infrastructure to generate code from the messages, for generating implementation agnostic code (headers and source files), and for establishing the default set of generators. +The repository contains these |packages|: + +- ``rosidl_cmake``: provides CMake functions and CMake Modules for generating code from ``rosidl`` files, e.g. ``.msg`` files, ``.srv`` files, etc. +- ``rosidl_default_generators``: defines the list of default generators which ensures that they are installed as dependencies, but other injected generators can also be used. +- ``rosidl_generator_c``: provides tools to generate C header files (``.h``) for ``rosidl`` files. +- ``rosidl_generator_cpp``: provides tools to generate C++ header files (``.hpp``) for ``rosidl`` files. +- ``rosidl_generator_py``: provides tools to generate Python modules for ``rosidl`` files. +- ``rosidl_parser``: provides Python |API| for parsing ``rosidl`` files. + +Generators for other languages, e.g. ``rosidl_generator_java``, are hosted externally (in different repositories) but would use the same mechanism that the above generators use to "register" themselves as a ``rosidl`` generator. + +In addition to the aforementioned |packages| for parsing and generating headers for the ``rosidl`` files, the ``rosidl`` repository also contains |packages| concerned with "type support" for the message types defined in the files. +Type support refers to the ability to interpret and manipulate the information represented by ROS message instances of particular types (publishing the messages, for example). +Type support can either be provided by code that is generated at compile time or it can be done programmatically based on the contents of the ``rosidl`` file, e.g. the ``.msg`` or ``.srv`` file, and the data received, by introspecting the data. +In the case of the latter, where type support is done through runtime interpretation of the messages, the message code generated by ROS 2 can be agnostic to the rmw implementation. +The packages that provide this type support through introspection of the data are: + +- ``rosidl_typesupport_introspection_c``: provides tools for generating C code for supporting ``rosidl`` message data types. +- ``rosidl_typesupport_introspection_cpp``: provides tools for generating C++ code for supporting ``rosidl`` message data types. + +In the case where type support is to be generated at compile time instead of being generated programmatically, a package specific to the rmw implementation will need to be used. +This is because typically a particular rmw implementation will require data to be stored and manipulated in a manner that is specific to the DDS vendor in order for the DDS implementation to make use of it. +See the :ref:`Type Specific Interfaces` section above for more details. + +For more information on what exactly is in the ``rosidl`` |API| (static and generated) see this page: + +.. warning:: + + TODO: link to definition of ``rosidl`` |APIs| + +The ``rcutils`` Repository +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +ROS 2 C Utilities (``rcutils``) is a C |API| composed of macros, functions, and data structures used throughout the ROS 2 codebase. +These are mainly used for error handling, commandline argument parsing, and logging which are not specific to the client or middleware layers and can be shared by both. + +The ``rcutils`` |API| and implementation are located in the `ros2/rcutils `_ repository on |GitHub|_ which contains the interface as C headers. + +For a complete definition of the ``rcutils`` |API|, see `its API documentation `_ diff --git a/source/Concepts/Logging.rst b/source/Concepts/About-Logging.rst similarity index 100% rename from source/Concepts/Logging.rst rename to source/Concepts/About-Logging.rst diff --git a/source/Concepts/About-Middleware-Implementations.rst b/source/Concepts/About-Middleware-Implementations.rst new file mode 100644 index 00000000000..b1ac6dad4ce --- /dev/null +++ b/source/Concepts/About-Middleware-Implementations.rst @@ -0,0 +1,65 @@ + +About ROS 2 middleware implementations +====================================== + +.. include:: ../../global_substitutions.txt + +ROS middleware implementations are sets of |packages| that implement some of the internal ROS interfaces, e.g. the ``rmw``, ``rcl``, and ``rosidl`` |APIs|. + +Common Packages for DDS Middleware Packages +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +All of the current ROS middleware implementations are based on full or partial DDS implementations. +For example, there is a middleware implementation that uses RTI's Connext DDS and an implementation which uses eProsima's Fast-RTPS. +Because of this, there are some shared |packages| amongst most DDS based middleware implementations. + +In the `ros2/rosidl_dds `_ repository on |GitHub|_, there is the following |package|: + +- ``rosidl_generator_dds_idl``: provides tools to generate DDS ``.idl`` files from ``rosidl`` files, e.g. ``.msg`` files, ``.srv`` files, etc. + +The ``rosidl_generator_dds_idl`` |package| generates a DDS ``.idl`` file for each ``rosidl`` file, e.g. ``.msg`` file, defined by |packages| containing messages. +Currently DDS based ROS middleware implementations make use of this generator's output ``.idl`` files to generate pre-compiled type support that is vendor specific. + +Structure of ROS Middleware Implementations +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A ROS middleware implementation is typically made up of a few |packages| in a single repository: + +- ``_cmake_module``: contains CMake Module for discovering and exposing required dependencies +- ``rmw__``: contains the implementation of the ``rmw`` |API| in a particular language, typically C++ +- ``rosidl_typesupport__``: contains tools to generate static type support code for ``rosidl`` files, tailored to the implementation in a particular language, typically C or C++ + +The ``_cmake_module`` |package| contains any CMake Modules and functions needed to find the supporting dependencies for the middleware implementation. +In the case of ``connext_cmake_module`` it has CMake Modules for finding the RTI Connext implementation in different places on the system since it does not ship with a CMake Module itself. +Not all repositories will have a package like this, for example eProsima's Fast-RTPS provides a CMake module and so no additional one is required. + +The ``rmw__`` |package| implements the ``rmw`` C |API| in a particular language. +The implementation itself can be C++, it just must expose the header's symbols as ``extern "C"`` so that C applications can link against it. + +The ``rosidl_typesupport__`` |package| provides a generator which generates DDS code in a particular language. +This is done using the ``.idl`` files generated by the ``rosidl_generator_dds_idl`` |package| and the DDS IDL code generator provided by the DDS vendor. +It also generates code for converting ROS message structures to and from DDS message structures. +This generator is also responsible for creating a shared library for the message package it is being used in, which is specific to the messages in the message package and to the DDS vendor being used. + +As mentioned above, the ``rosidl_typesupport_introspection_`` may be used instead of a vendor specific type support package if an rmw implementation supports runtime interpretation of messages. +This ability to programmatically send and receive types over topics without generating code beforehand is achieved by supporting the `DDS X-Types Dynamic Data standard `_. +As such, rmw implementations may provide support for the X-Types standard, and/or provide a package for type support generated at compile time specific to their DDS implementation. + +As an example of an rmw implementation repository, the ``opensplice`` ROS middleware implementation lives on |GitHub|_ at `ros2/rmw_opensplice `_ and has these |packages|: + +- ``opensplice_cmake_module`` +- ``rmw_opensplice_cpp`` +- ``rosidl_typesupport_opensplice_c`` +- ``rosidl_typesupport_opensplice_cpp`` + +In addition to the ``opensplice`` repository of |packages|, there is the ``connext`` implementation on |GitHub|_ at `ros2/rmw_connext `_. +It contains mostly the same |packages|, but it additionally contains a |package| to support the type support introspection using the DDS X-Types standard. + +The rmw implementation using ``FastRTPS`` is on |GitHub|_ at `eProsima/ROS-RMW-Fast-RTPS-cpp `_. +As ``FastRTPS`` currently only supports the type support introspection, there is no vendor specific type support package in this repository. + +To learn more about what is required to create a new middleware implementation for ROS see this page: + +.. warning:: + + TODO: Link to more detailed middleware implementation docs and/or tutorial. diff --git a/source/Concepts/ROS-2-Client-Libraries.rst b/source/Concepts/About-ROS-2-Client-Libraries.rst similarity index 100% rename from source/Concepts/ROS-2-Client-Libraries.rst rename to source/Concepts/About-ROS-2-Client-Libraries.rst diff --git a/source/Concepts/images/ROS Client Library API Stack.graffle b/source/Concepts/images/ROS Client Library API Stack.graffle new file mode 100644 index 0000000000000000000000000000000000000000..39e49649c2a52594111ce7b5522fcab2ef2dc54f GIT binary patch literal 4997 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 PUT^(BQcMSD?^Xc-P(H=V literal 0 HcmV?d00001 diff --git a/source/Concepts/images/ros2_logo.png b/source/Concepts/images/ros2_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..24f2d0622baa4262c3a80d62be176d63f2083775 GIT binary patch literal 5265 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 literal 0 HcmV?d00001 diff --git a/source/Concepts/images/ros2_logo.pxm b/source/Concepts/images/ros2_logo.pxm new file mode 100644 index 0000000000000000000000000000000000000000..93f08c8856efc00cd27d3e53d39e26fc86ca5218 GIT binary patch literal 69873 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

7ruzs#kY=mh1bi; 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

A!JAB=pe2FED2Oc;)PcFU|`R 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%0DoNF`H{CAMw#9Esblz4At-9+TdO{jKM;0R0 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 Un}PiD9`0qNck5=^^*c}h2anwk#sB~S literal 0 HcmV?d00001 diff --git a/source/Concepts/images/ros_idl_api_stack_dynamic.png b/source/Concepts/images/ros_idl_api_stack_dynamic.png new file mode 100644 index 0000000000000000000000000000000000000000..c644fe75b60867916c3ec67a44a5fb665fb7a927 GIT binary patch literal 248054 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%0D288uLOFCePpaC4FA(%AAn^oXI1v~n$Sldr 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

1*t@b^e`2> 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�a5YLL7J5NGFr(&)nxL}FH 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 a4*IE>g{)s0*lvg5&)Cr7O8Kuh9{eBm*g97L literal 0 HcmV?d00001 diff --git a/source/Features.rst b/source/Features.rst index 410491cff0a..4cd0a88f4a8 100644 --- a/source/Features.rst +++ b/source/Features.rst @@ -16,11 +16,11 @@ For planned future development, see the :ref:`Roadmap `. * - Discovery, transport and serialization over DDS - `Article `__ - - * - Support for `multiple DDS implementations `, chosen at runtime + * - Support for `multiple DDS implementations `, chosen at runtime - `Tutorials ` - Currently eProsima Fast RTPS, RTI Connext and ADLINK OpenSplice are fully supported. * - Common core client library that is wrapped by language-specific libraries - - `Details ` + - `Details ` - * - Publish/subscribe over topics - `Sample code `__\ , `Article `__ diff --git a/source/Glossary.rst b/source/Glossary.rst new file mode 100644 index 00000000000..69d38ff70e4 --- /dev/null +++ b/source/Glossary.rst @@ -0,0 +1,32 @@ +Glossary +======== + +.. include:: ../global_substitutions.txt + +Glossary of terms used throughout this documentation: + +.. glossary:: + + API + An API, or Application Programming Interface, is an interface that is provided by an "application", which in this case is usually a shared library or other language appropriate shared resource. APIs are made up of files that define a contract between the software using the interface and the software providing the interface. These files typically manifest as header files in C and C++ and as Python files in Python. In either case it is important that APIs are grouped and described in documentation and that they are declared as either public or private. Public interfaces are subject to change rules and changes to the public interfaces prompt a new version number of the software that provides them. + + client_library + A client library is an :term:`API` that provides access to the ROS graph using primitive middleware concepts like Topics, Services, and Actions. + + package + A single unit of software, including source code, build system files, documentation, tests, and other associated resources. + + REP + ROS Enhancement Proposal. A document that describes an enhancement, standardization, or convention for the ROS community. + The associated REP approval process allows the community to iterate on a proposal until some consensus has been made, at which point it can be ratified and implemented, at which point it becomes documentation. + All REPs are viewable from the `REP index `_. + + VCS + Version Control System, such as CVS, SVN, git, mercurial, etc... + + rclcpp + The C++ specific :term:`Client Library ` for ROS. This includes any middleware related APIs as well as the related message generation of C++ data structures based on interface definitions like Messages, Services, and Actions. + + repository + A collection of packages usually managed using a :term:`VCS` like git or mercurial and usually hosted on a site like GitHub or BitBucket. + In the context of this document repositories usually contain one or more |packages| of one type or another. diff --git a/source/Releases/Alpha-Overview.rst b/source/Releases/Alpha-Overview.rst index 9d938fc3235..09f52df3d6a 100644 --- a/source/Releases/Alpha-Overview.rst +++ b/source/Releases/Alpha-Overview.rst @@ -22,7 +22,7 @@ ROS 2 alpha8 release (code name *Hook-and-Loop*; October 2016) Changes to supported DDS vendors ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -ROS 2 supports multiple middleware implementations (see `this page <../Concepts/DDS-and-ROS-middleware-implementations>` for more details). +ROS 2 supports multiple middleware implementations (see `this page <../Concepts/About-Different-Middleware-Vendors>` for more details). Until Alpha 8, ROS 2 was supporting ROS middleware implementations for eProsima's Fast RTPS, RTI's Connext and PrismTech's OpenSplice. To streamline our efforts, as of Alpha 8, Fast RTPS and Connext (static) will be supported, with Fast RTPS (`now Apache 2.0-licensed `__) shipped as the default. diff --git a/source/Tutorials/Logging-and-logger-configuration.rst b/source/Tutorials/Logging-and-logger-configuration.rst index ed6474f5b79..2f51a0e207e 100644 --- a/source/Tutorials/Logging-and-logger-configuration.rst +++ b/source/Tutorials/Logging-and-logger-configuration.rst @@ -5,7 +5,7 @@ Logging and logger configuration demo ===================================== -See `the logging page <../Concepts/Logging>` for details on available functionality. +See `the logging page <../Concepts/About-Logging>` for details on available functionality. In this demo, different types of log calls are shown and the severity level of different loggers is configured locally and externally. diff --git a/source/Tutorials/Working-with-multiple-RMW-implementations.rst b/source/Tutorials/Working-with-multiple-RMW-implementations.rst index 0078297865b..89e62e84b1f 100644 --- a/source/Tutorials/Working-with-multiple-RMW-implementations.rst +++ b/source/Tutorials/Working-with-multiple-RMW-implementations.rst @@ -14,7 +14,7 @@ This page explains the default RMW implementation and how to specify an alternat Prerequisites -------------- -You should have already read the `DDS and ROS middleware implementations page <../Concepts/DDS-and-ROS-middleware-implementations>`. +You should have already read the `DDS and ROS middleware implementations page <../Concepts/About-Different-Middleware-Vendors>`. Multiple RMW implementations ---------------------------- diff --git a/source/index.rst b/source/index.rst index c23dbee408e..dd71d0dd50b 100644 --- a/source/index.rst +++ b/source/index.rst @@ -21,6 +21,7 @@ ROS 2 Documentation Governance Marketing Related-Projects + Glossary The Robot Operating System (ROS) is a set of software libraries and tools for building robot applications. From drivers to state-of-the-art algorithms, and with powerful developer tools, ROS has what you need for your next robotics project. From 926e0c6406d7fc76a1830c373356dcde78d2017a Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 21 Jan 2021 12:37:34 -0500 Subject: [PATCH 24/79] Add iRobot and Sony. (#1034) (#1035) Co-authored-by: Brian Gerkey (cherry picked from commit 7fd6133625ae8d3d8ea075d366fec475bafa09ea) Co-authored-by: gerkey --- source/Governance.rst | 16 +++++++++++++++- source/Governance/irobot.png | Bin 0 -> 13971 bytes source/Governance/sony.svg | 14 ++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 source/Governance/irobot.png create mode 100644 source/Governance/sony.svg diff --git a/source/Governance.rst b/source/Governance.rst index 36d6840a195..a0467889813 100644 --- a/source/Governance.rst +++ b/source/Governance.rst @@ -16,7 +16,7 @@ Packages relevant to this ROS 2 TSC are listed in `REP 2005 `_. -The current members of the ROS 2 TSC are (18 as of 2020-11-16): +The current members of the ROS 2 TSC are (20 as of 2021-01-21): .. |adlink| image:: Governance/adlink.svg :alt: ADLINK Technology logo @@ -58,6 +58,11 @@ The current members of the ROS 2 TSC are (18 as of 2020-11-16): :height: 35px :target: https://www.intel.com +.. |irobot| image:: Governance/irobot.png + :alt: iRobot logo + :height: 35px + :target: https://www.irobot.com + .. |lge| image:: Governance/lge.svg :alt: LG Electronics logo :height: 35px @@ -93,6 +98,11 @@ The current members of the ROS 2 TSC are (18 as of 2020-11-16): :height: 35px :target: https://www.samsung.com +.. |sony| image:: Governance/sony.svg + :alt: Sony logo + :height: 35px + :target: https://www.sony.com + .. |tieriv| image:: Governance/TierIV.png :alt: Tier IV logo :height: 35px @@ -126,6 +136,8 @@ The current members of the ROS 2 TSC are (18 as of 2020-11-16): - eProsima: Jaime Martin Losa * - |intel| - Intel: Harold Yang + * - |irobot| + - iRobot: Ori Taka * - |lge| - LG Electronics: Lokesh Kumar Goel * - |microsoft| @@ -140,6 +152,8 @@ The current members of the ROS 2 TSC are (18 as of 2020-11-16): - Rover Robotics: Nick Fragale * - |samsung| - Samsung: Steven Macenski + * - |sony| + - Sony: Tomoya Fujita * - |gvsc| - GVSC: Jerry Towler (SwRI) * - |tieriv| diff --git a/source/Governance/irobot.png b/source/Governance/irobot.png new file mode 100644 index 0000000000000000000000000000000000000000..751750baac1e84c94660fa5fbc06c2559130875e GIT binary patch literal 13971 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 literal 0 HcmV?d00001 diff --git a/source/Governance/sony.svg b/source/Governance/sony.svg new file mode 100644 index 00000000000..d2e88d1055f --- /dev/null +++ b/source/Governance/sony.svg @@ -0,0 +1,14 @@ + + + + + + image/svg+xml + + + + + + + + \ No newline at end of file From 1d457fe31fa70db56757cfd9a5e49545b5bed3ac Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 21 Jan 2021 15:57:48 -0500 Subject: [PATCH 25/79] Add Galactic feature note for externally configuring QoS (#1033) (#1039) * Add Galactic feature note for externally configuring QoS Signed-off-by: Jacob Perron (cherry picked from commit 76c31dcc7faa646a49446da0fca730c272f4f6ad) Co-authored-by: Jacob Perron --- source/Releases/Release-Galactic-Geochelone.rst | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/Releases/Release-Galactic-Geochelone.rst b/source/Releases/Release-Galactic-Geochelone.rst index 95bb8a5e76a..e55ff727a73 100644 --- a/source/Releases/Release-Galactic-Geochelone.rst +++ b/source/Releases/Release-Galactic-Geochelone.rst @@ -51,6 +51,20 @@ Thus the default value stays the same: ``~/.ros/log``. Related PRs: `ros2/rcl_logging#53 `_ and `ros2/launch#460 `_. +Externally configure QoS at start-up +------------------------------------ + +It is now possible to externally configure the QoS settings for a node at start-up time. +QoS settings are **not** configurable during runtime; they are only configurable at start-up. +Node authors must opt-in to enable changing QoS settings at start-up. +If the feature is enabled on a node, then QoS settings can be set with ROS parameters when a node first starts. + +`Demos in C++ and Python can be found here. `_ + +See the `design document for more details `_. + +Related PRs: `ros2/rclcpp#1408 `_ and `ros2/rclpy#635 `_ + Changes since the Foxy release ------------------------------ From de088639b09cba146cf13bad5e3d1bfeb6a52a72 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 25 Jan 2021 13:55:55 -0500 Subject: [PATCH 26/79] Remove Sony logo pending permission for use in this context (#1044) (#1045) * Remove Sony logo pending permission for use in this context Co-authored-by: Brian Gerkey (cherry picked from commit 49c28d888cf97a2c8cfbcfa406e3f84b47696cc9) Co-authored-by: gerkey --- source/Governance.rst | 9 ++------- source/Governance/sony.svg | 14 -------------- 2 files changed, 2 insertions(+), 21 deletions(-) delete mode 100644 source/Governance/sony.svg diff --git a/source/Governance.rst b/source/Governance.rst index a0467889813..d21eed5acc8 100644 --- a/source/Governance.rst +++ b/source/Governance.rst @@ -98,11 +98,6 @@ The current members of the ROS 2 TSC are (20 as of 2021-01-21): :height: 35px :target: https://www.samsung.com -.. |sony| image:: Governance/sony.svg - :alt: Sony logo - :height: 35px - :target: https://www.sony.com - .. |tieriv| image:: Governance/TierIV.png :alt: Tier IV logo :height: 35px @@ -152,8 +147,8 @@ The current members of the ROS 2 TSC are (20 as of 2021-01-21): - Rover Robotics: Nick Fragale * - |samsung| - Samsung: Steven Macenski - * - |sony| - - Sony: Tomoya Fujita + * - + - `Sony `__: Tomoya Fujita * - |gvsc| - GVSC: Jerry Towler (SwRI) * - |tieriv| diff --git a/source/Governance/sony.svg b/source/Governance/sony.svg deleted file mode 100644 index d2e88d1055f..00000000000 --- a/source/Governance/sony.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - image/svg+xml - - - - - - - - \ No newline at end of file From 2d7b66e65e73b2cf906782841cbede84e043c082 Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Fri, 22 Jan 2021 09:23:19 -0500 Subject: [PATCH 27/79] Update Makefile and requirements.txt. In particular, make it so that requirements.txt has all of the requirements (including sphinx-multiversion), and that the Makefile has a target for building multiversion. Signed-off-by: Chris Lalancette --- Makefile | 6 +++++- conf.py | 2 +- requirements.txt | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index f983afa722d..216563c6f9d 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,11 @@ OPTS =-c . help: @$(BUILD) -M help "$(SOURCE)" "$(OUT)" $(OPTS) + @echo " multiversion to build documentation for all branches" -.PHONY: help Makefile +multiversion: Makefile + sphinx-multiversion $(OPTS) "$(SOURCE)" build/html + +.PHONY: help Makefile multiversion %: Makefile @$(BUILD) -M $@ "$(SOURCE)" "$(OUT)" $(OPTS) diff --git a/conf.py b/conf.py index 8406be95b76..bdd98f8346d 100644 --- a/conf.py +++ b/conf.py @@ -69,7 +69,7 @@ # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -extensions = ['sphinx.ext.intersphinx', 'sphinx_tabs.tabs', "sphinx_multiversion"] +extensions = ['sphinx.ext.intersphinx', 'sphinx_tabs.tabs', 'sphinx_multiversion'] # Intersphinx mapping diff --git a/requirements.txt b/requirements.txt index 0e62d8fb20d..5cb25039728 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ pip -Sphinx +sphinx sphinx-tabs +sphinx-multiversion From a2e04a78a8e8edcbd2ab4e011d76a20f940e55f5 Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Mon, 7 Dec 2020 14:10:08 -0500 Subject: [PATCH 28/79] Add in a Dockerfile to build the multiversion. This will be used by the buildfarm job to build the documentation and upload it to docs.ros.org. Signed-off-by: Chris Lalancette --- docker/image/Dockerfile | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 docker/image/Dockerfile diff --git a/docker/image/Dockerfile b/docker/image/Dockerfile new file mode 100644 index 00000000000..58caad2737d --- /dev/null +++ b/docker/image/Dockerfile @@ -0,0 +1,27 @@ +# This dockerfile is expecting to be run with the following build command +# (from the root of the git repository): +# +# docker build -f docker/image/Dockerfile . + +FROM ubuntu:focal + +ARG user=rosindex +ARG uid=1000 + +ENV DEBIAN_FRONTEND noninteractive + +RUN apt-get update && \ + apt-get install --no-install-recommends -y \ + git-all \ + make \ + python3-pip && \ + rm -rf /var/lib/apt/lists/* + +RUN useradd -u $uid -m $user +ENV HOME=/home/$user +ENV PATH=/home/$user/.local/bin:$PATH +WORKDIR /tmp/doc_repository + +USER $user + +CMD pip3 install --no-warn-script-location --user --upgrade -r requirements.txt && make multiversion From 80e24f0ce512bd0aaf16783048848b49323d5bb4 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 27 Jan 2021 08:46:46 -0500 Subject: [PATCH 29/79] Small typo in Understanding-ROS2-Topics.rst (#1048) (#1049) (cherry picked from commit 0bfc16718f59bbcf06ef21e98b9e860ae4f6dc4c) Co-authored-by: Abrar Rahman Protyasha --- source/Tutorials/Topics/Understanding-ROS2-Topics.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Tutorials/Topics/Understanding-ROS2-Topics.rst b/source/Tutorials/Topics/Understanding-ROS2-Topics.rst index d00a8646299..d8c5e989f07 100644 --- a/source/Tutorials/Topics/Understanding-ROS2-Topics.rst +++ b/source/Tutorials/Topics/Understanding-ROS2-Topics.rst @@ -193,7 +193,7 @@ Recall that the ``cmd_vel`` topic has the type: This means that in the package ``geometry_msgs`` there is a ``msg`` called ``Twist``. -Now we can run ``ros2 interface show .msg`` on this type to learn its the details, specifically, what structure of data the message expects. +Now we can run ``ros2 interface show .msg`` on this type to learn its details, specifically, what structure of data the message expects. .. code-block:: console From ed58ce162b303999e856e0b6116013e2960efaac Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 27 Jan 2021 09:00:31 -0500 Subject: [PATCH 30/79] Add navigation and SLAM demos (in simulation) (#1022) (#1052) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit f97722210c332f174dff6eed0156d2c9eaa3c739) Co-authored-by: Darko Lukić --- source/Tutorials.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/Tutorials.rst b/source/Tutorials.rst index bbb9f15380c..7b7a6194f84 100644 --- a/source/Tutorials.rst +++ b/source/Tutorials.rst @@ -146,6 +146,8 @@ Demos * `Turtlebot 2 demo using ROS 2 `__. * `TurtleBot 3 demo using ROS 2 `__. [community-contributed] * `Simulate the TurtleBot 3 on ROS [community-contributed] `__. +* `Navigate TurtleBot 3 in simulation `__. [community-contributed] +* `SLAM with TurtleBot3 in simulation `__. [community-contributed] * `MoveIt 2 demo using ROS 2 `__. * `Using tf2 with ROS 2 `. * `Using URDF with robot_state_publisher `. From 9efecb256ebc944727778ef037e55b5161e46d03 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 27 Jan 2021 10:49:07 -0500 Subject: [PATCH 31/79] Update the roadmap with the current status. (#1043) (#1055) Signed-off-by: Chris Lalancette (cherry picked from commit 823189c28846208202ebb813f732559a1f1db624) Co-authored-by: Chris Lalancette --- source/Roadmap.rst | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/Roadmap.rst b/source/Roadmap.rst index 439d1a7a6e9..f8f8c692055 100644 --- a/source/Roadmap.rst +++ b/source/Roadmap.rst @@ -46,15 +46,15 @@ If you'd like to take on one of these tasks, please :ref:`get in touch with us < * - Documentation: Consolidate ROS 2 documentation in an easy to find/search place - Large - Open Robotics - - 4th quarter 2020 + - 1st quarter 2021 * - Documentation: Automatically generate and host per-package documentation - Large - Open Robotics - - 4th quarter 2020 + - 1st quarter 2021 * - Middleware: Switch to CycloneDDS as default RMW vendor - Small - ADLINK and Open Robotics - - 1st quarter 2021 + - Complete * - Galactic Release - Large - Open Robotics @@ -86,11 +86,11 @@ If you'd like to take on one of these tasks, please :ref:`get in touch with us < * - Quality: Turn on more compiler warnings - Small - Open Robotics - - 2nd quarter 2021 + - Complete * - Quality: Increase testing coverage of C/C++ packages - Large - - - - + - Open Robotics + - Complete * - Documentation: More intermediate/advanced tutorials - Medium - Open Robotics From 95e006404d69821e863eb99e91c2f9dfcdf1a473 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 28 Jan 2021 10:54:58 -0500 Subject: [PATCH 32/79] Improve visual presentation of TSC member logos. (#1058) (#1059) Change from `image::` to `figure::`, which automatically pads around images. Also move the image includes directly into the table, where they're easier to edit. And tweak sizes on a few logos to make them appear more equally sized. Co-authored-by: Brian Gerkey (cherry picked from commit 0cfb0d40da6b0202aeb6425f770c302e92d9c52d) Co-authored-by: gerkey --- source/Governance.rst | 190 +++++++++++++++++------------------------- 1 file changed, 76 insertions(+), 114 deletions(-) diff --git a/source/Governance.rst b/source/Governance.rst index d21eed5acc8..26c94ce501a 100644 --- a/source/Governance.rst +++ b/source/Governance.rst @@ -18,144 +18,106 @@ Meeting notes can be found on `ROS Discourse The current members of the ROS 2 TSC are (20 as of 2021-01-21): -.. |adlink| image:: Governance/adlink.svg - :alt: ADLINK Technology logo - :height: 35px - :target: https://www.adlinktech.com - -.. |amazon| image:: Governance/amazon.svg - :alt: Amazon logo - :height: 35px - :target: https://www.amazon.com - -.. |apex| image:: Governance/apex.png - :alt: Apex.AI logo - :height: 35px - :target: https://www.apex.ai - -.. |bosch| image:: Governance/bosch_75h.jpg - :alt: Bosch logo - :height: 35px - :target: https://www.bosch.com/ - -.. |canonical| image:: Governance/ubuntu.svg - :alt: Ubuntu logo - :height: 35px - :target: https://ubuntu.com/ - -.. |eprosima| image:: Governance/eprosima.svg - :alt: eProsima logo - :height: 35px - :target: https://eprosima.com/ - -.. |gvsc| image:: Governance/gvsc.png - :alt: GVSC logo - :height: 35px - :target: https://gvsc.army.mil/ - -.. |intel| image:: Governance/intel.svg - :alt: Intel logo - :height: 35px - :target: https://www.intel.com - -.. |irobot| image:: Governance/irobot.png - :alt: iRobot logo - :height: 35px - :target: https://www.irobot.com - -.. |lge| image:: Governance/lge.svg - :alt: LG Electronics logo - :height: 35px - :target: https://www.lg.com/ - -.. |microsoft| image:: Governance/microsoft.svg - :alt: Microsoft logo - :height: 35px - :target: https://www.microsoft.com - -.. |openrobotics| image:: Governance/openrobotics-logo-stacked.png - :alt: Open Robotics logo - :height: 35px - :target: https://www.openrobotics.org - -.. |picknik| image:: Governance/picknik.jpg - :alt: PickNik logo - :height: 35px - :target: https://picknik.ai/ - -.. |robotis| image:: Governance/robotis.png - :alt: ROBOTIS logo - :height: 35px - :target: https://www.robotis.com/ - -.. |rover| image:: Governance/rover.png - :alt: Rover Robotics logo - :height: 35px - :target: https://roverrobotics.com/ - -.. |samsung| image:: Governance/samsung.svg - :alt: Samsung logo - :height: 35px - :target: https://www.samsung.com - -.. |tieriv| image:: Governance/TierIV.png - :alt: Tier IV logo - :height: 35px - :target: https://www.tier4.jp/ - -.. |tri| image:: Governance/tri_logo_landscape-web.svg - :alt: TRI logo - :height: 35px - :target: https://www.tri.global/ - -.. |windriver| image:: Governance/windriver.png - :alt: Wind River logo - :height: 35px - :target: https://www.windriver.com/ - .. list-table:: :align: center :widths: auto - * - |adlink| + * - .. figure:: Governance/adlink.svg + :alt: ADLINK Technology logo + :height: 35px + :target: https://www.adlinktech.com - ADLINK Technology: Joe Speed - * - |amazon| + * - .. figure:: Governance/amazon.svg + :alt: Amazon logo + :height: 35px + :target: https://www.amazon.com - Amazon: Aaron Blasdel - * - |apex| + * - .. figure:: Governance/apex.png + :alt: Apex.AI logo + :height: 35px + :target: https://www.apex.ai - Apex.AI: Dejan Pangercic - * - |bosch| + * - .. figure:: Governance/bosch_75h.jpg + :alt: Bosch logo + :height: 35px + :target: https://www.bosch.com/ - Bosch: Karsten Knese - * - |canonical| + * - .. figure:: Governance/ubuntu.svg + :alt: Ubuntu logo + :height: 35px + :target: https://ubuntu.com/ - Canonical: Kyle Fazzari - * - |eprosima| + * - .. figure:: Governance/eprosima.svg + :alt: eProsima logo + :height: 35px + :target: https://eprosima.com/ - eProsima: Jaime Martin Losa - * - |intel| + * - .. figure:: Governance/intel.svg + :alt: Intel logo + :height: 50px + :target: https://www.intel.com - Intel: Harold Yang - * - |irobot| + * - .. figure:: Governance/irobot.png + :alt: iRobot logo + :height: 35px + :target: https://www.irobot.com - iRobot: Ori Taka - * - |lge| + * - .. figure:: Governance/lge.svg + :alt: LG Electronics logo + :height: 35px + :target: https://www.lg.com/ - LG Electronics: Lokesh Kumar Goel - * - |microsoft| + * - .. figure:: Governance/microsoft.svg + :alt: Microsoft logo + :height: 35px + :target: https://www.microsoft.com - Microsoft: Sean Yen - * - |openrobotics| + * - .. figure:: Governance/openrobotics-logo-stacked.png + :alt: Open Robotics logo + :height: 35px + :target: https://www.openrobotics.org - Open Robotics: Chris Lalancette - * - |picknik| + * - .. figure:: Governance/picknik.jpg + :alt: PickNik logo + :height: 35px + :target: https://picknik.ai/ - PickNik: Dave Coleman - * - |robotis| + * - .. figure:: Governance/robotis.png + :alt: ROBOTIS logo + :height: 35px + :target: https://www.robotis.com/ - ROBOTIS: Will Son - * - |rover| + * - .. figure:: Governance/rover.png + :alt: Rover Robotics logo + :height: 35px + :target: https://roverrobotics.com/ - Rover Robotics: Nick Fragale - * - |samsung| + * - .. figure:: Governance/samsung.svg + :alt: Samsung logo + :height: 25px + :target: https://www.samsung.com - Samsung: Steven Macenski * - - `Sony `__: Tomoya Fujita - * - |gvsc| + * - .. figure:: Governance/gvsc.png + :alt: GVSC logo + :height: 50px + :target: https://gvsc.army.mil/ - GVSC: Jerry Towler (SwRI) - * - |tieriv| + * - .. figure:: Governance/TierIV.png + :alt: Tier IV logo + :height: 50px + :target: https://www.tier4.jp/ - Tier IV: Jilada Eccleston - * - |tri| + * - .. figure:: Governance/tri_logo_landscape-web.svg + :alt: TRI logo + :height: 50px + :target: https://www.tri.global/ - Toyota Research Institute: Ian McMahon - * - |windriver| + * - .. figure:: Governance/windriver.png + :alt: Wind River logo + :height: 60px + :target: https://www.windriver.com/ - Wind River: `Andrei Kholodnyi `__ If you are interested in joining the ROS 2 TSC, please inquire via info@openrobotics.org. From 269ec272cc1e48d3969bb66e86102e623958412e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 28 Jan 2021 11:10:02 -0500 Subject: [PATCH 33/79] fixed glob command to correctly find launch files (#1042) (#1062) * fixed glob command to correctly find launch files tested on nvidia jetson xavier, ubuntu 18.04, ros2 eloquent Signed-off-by: Chris Lalancette Co-authored-by: Chris Lalancette (cherry picked from commit 5163254c6a02bf55b9732ecc09b5229b11be291e) Co-authored-by: PhilippPolterauer <45892981+PhilippPolterauer@users.noreply.github.com> --- source/Tutorials/Developing-a-ROS-2-Package.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Tutorials/Developing-a-ROS-2-Package.rst b/source/Tutorials/Developing-a-ROS-2-Package.rst index 06c33bd314e..d3a647e7620 100644 --- a/source/Tutorials/Developing-a-ROS-2-Package.rst +++ b/source/Tutorials/Developing-a-ROS-2-Package.rst @@ -117,7 +117,7 @@ and a ``setup.py`` file that looks like: # Include our package.xml file (os.path.join('share', package_name), ['package.xml']), # Include all launch files. - (os.path.join('share', package_name, 'launch'), glob('*.launch.py')) + (os.path.join('share', package_name, 'launch'), glob(os.path.join('launch', *.launch.py'))), ], # This is important as well install_requires=['setuptools'], From 323f4f83aa9a31e993fa8f356643d0d18235a590 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 29 Jan 2021 09:21:29 -0500 Subject: [PATCH 34/79] Add Sony logo (now with permission). (#1065) (#1067) Also fix alphabetical ordering by moving GVSC (its prior position was a holdover of the org's old name, TARDEC). (cherry picked from commit ada0eb80754537a83fc7c253a0a6b9374c324ae5) Co-authored-by: gerkey --- source/Governance.rst | 17 ++++++++++------- source/Governance/sony.png | Bin 0 -> 617867 bytes 2 files changed, 10 insertions(+), 7 deletions(-) create mode 100755 source/Governance/sony.png diff --git a/source/Governance.rst b/source/Governance.rst index 26c94ce501a..913b6c537a7 100644 --- a/source/Governance.rst +++ b/source/Governance.rst @@ -52,6 +52,11 @@ The current members of the ROS 2 TSC are (20 as of 2021-01-21): :height: 35px :target: https://eprosima.com/ - eProsima: Jaime Martin Losa + * - .. figure:: Governance/gvsc.png + :alt: GVSC logo + :height: 50px + :target: https://gvsc.army.mil/ + - GVSC: Jerry Towler (SwRI) * - .. figure:: Governance/intel.svg :alt: Intel logo :height: 50px @@ -97,13 +102,11 @@ The current members of the ROS 2 TSC are (20 as of 2021-01-21): :height: 25px :target: https://www.samsung.com - Samsung: Steven Macenski - * - - - `Sony `__: Tomoya Fujita - * - .. figure:: Governance/gvsc.png - :alt: GVSC logo - :height: 50px - :target: https://gvsc.army.mil/ - - GVSC: Jerry Towler (SwRI) + * - .. figure:: Governance/sony.png + :alt: Sony logo + :height: 60px + :target: https://www.sony.com + - Sony: Tomoya Fujita * - .. figure:: Governance/TierIV.png :alt: Tier IV logo :height: 50px diff --git a/source/Governance/sony.png b/source/Governance/sony.png new file mode 100755 index 0000000000000000000000000000000000000000..a10d9e7a75cd4ce31396248fcc2aa180fb97b064 GIT binary patch literal 617867 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 kKm Date: Mon, 1 Feb 2021 09:13:12 -0500 Subject: [PATCH 35/79] Update Understanding-ROS2-Services.rst (#1073) (#1074) The correct command line is ros2 interface show turtlesim/srv/Spawn The original command line ros2 interface show turtlesim/srv/Spawn.srv results in an error. :-) (cherry picked from commit 25f723c7b4a05231bcd1d1aa99a827e797ef780d) Co-authored-by: James Kitching --- source/Tutorials/Services/Understanding-ROS2-Services.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Tutorials/Services/Understanding-ROS2-Services.rst b/source/Tutorials/Services/Understanding-ROS2-Services.rst index 21069f90004..5b27f3f4ffb 100644 --- a/source/Tutorials/Services/Understanding-ROS2-Services.rst +++ b/source/Tutorials/Services/Understanding-ROS2-Services.rst @@ -192,7 +192,7 @@ To see the arguments in a ``/spawn`` call-and-request, run the command: .. code-block:: console - ros2 interface show turtlesim/srv/Spawn.srv + ros2 interface show turtlesim/srv/Spawn Which will return: From 131b3179a823735e724a0ff62e94e8e1f3ad6677 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 3 Feb 2021 20:52:00 -0800 Subject: [PATCH 36/79] Updated Using-Parameters-In-A-Class-Python.rst (bp #1070) (#1077) * Updated Using-Parameters-In-A-Class-Python.rst (#1070) * Updated Using-Parameters-In-A-Class-Python.rst * Updated Using-Parameters-In-A-Class-Python.rst * Updated Using-Parameters-In-A-Class-Python.rst * Updated formatting * Updated formatting * Updated formatting * Update source/Tutorials/Using-Parameters-In-A-Class-Python.rst Co-authored-by: Marya Belanger (cherry picked from commit f09b05fd4adb2d4d7d210a8c269a769d67b2827a) # Conflicts: # source/Tutorials/Using-Parameters-In-A-Class-Python.rst * fix merge conflicts Signed-off-by: maryaB-osr Co-authored-by: Archit Rungta Co-authored-by: maryaB-osr --- .../Using-Parameters-In-A-Class-Python.rst | 88 +++++++++++++++---- 1 file changed, 70 insertions(+), 18 deletions(-) diff --git a/source/Tutorials/Using-Parameters-In-A-Class-Python.rst b/source/Tutorials/Using-Parameters-In-A-Class-Python.rst index 8a2223f8052..6db5ad2e1b2 100644 --- a/source/Tutorials/Using-Parameters-In-A-Class-Python.rst +++ b/source/Tutorials/Using-Parameters-In-A-Class-Python.rst @@ -77,20 +77,17 @@ Inside the ``dev_ws/src/python_parameters/python_parameters`` directory, create timer_period = 2 # seconds self.timer = self.create_timer(timer_period, self.timer_callback) - self.declare_parameter("my_parameter") + self.declare_parameter('my_parameter', 'world') def timer_callback(self): - # First get the value parameter "my_parameter" and get its string value - my_param = self.get_parameter("my_parameter").get_parameter_value().string_value + my_param = self.get_parameter('my_parameter').get_parameter_value().string_value - # Send back a hello with the name self.get_logger().info('Hello %s!' % my_param) - # Then set the parameter "my_parameter" back to string value "world" my_new_param = rclpy.parameter.Parameter( - "my_parameter", + 'my_parameter', rclpy.Parameter.Type.STRING, - "world" + 'world' ) all_new_parameters = [my_new_param] self.set_parameters(all_new_parameters) @@ -107,7 +104,65 @@ Inside the ``dev_ws/src/python_parameters/python_parameters`` directory, create 2.1 Examine the code ~~~~~~~~~~~~~~~~~~~~ -Declaring a parameter before getting or setting it is compulsory, or you will raise a ``ParameterNotDeclaredException`` exception. +Note: Declaring a parameter before getting or setting it is compulsory, or a ``ParameterNotDeclaredException`` exception will be raised. + +The ``import`` statements below are used to import the package dependencies. + +.. code-block:: Python + + import rclpy + import rclpy.node + from rclpy.exceptions import ParameterNotDeclaredException + from rcl_interfaces.msg import ParameterType + +The next piece of code creates the class and the constructor. +``timer`` is initialized (with timer_period set as 2 seconds), which causes the ``timer_callback`` function to be executed once every two seconds. +The line ``self.declare_parameter('my_parameter', 'world')`` of the constructor creates a +parameter with the name ``my_parameter`` and a default value of ``world``. + +.. code-block:: Python + + class MinimalParam(rclpy.node.Node): + def __init__(self): + super().__init__('minimal_param_node') + timer_period = 2 # seconds + self.timer = self.create_timer(timer_period, self.timer_callback) + + self.declare_parameter('my_parameter', 'world') + +The first line of our ``timer_callback`` function gets the parameter ``my_parameter`` from the node, and stores it in ``my_param``. +Next,the ``get_logger`` function ensures the message is logged. +Then, we set the parameter 'my_parameter' back to the default string value 'world'. + +.. code-block:: Python + + def timer_callback(self): + my_param = self.get_parameter('my_parameter').get_parameter_value().string_value + + self.get_logger().info('Hello %s!' % my_param) + + my_new_param = rclpy.parameter.Parameter( + 'my_parameter', + rclpy.Parameter.Type.STRING, + 'world' + ) + all_new_parameters = [my_new_param] + self.set_parameters(all_new_parameters) + +Following the ``timer_callback`` is the ``main`` function where ROS 2 is initialized. +Then an instance of the class ``MinimalParam`` named ``node`` is defined. +Finally, ``rclpy.spin`` starts processing data from the node. + +.. code-block:: Python + + def main(): + rclpy.init() + node = MinimalParam() + rclpy.spin(node) + + if __name__ == '__main__': + main() + 2.1.1 (Optional) Add ParameterDescriptor """""""""""""""""""""""""""""""""""""""" @@ -129,8 +184,8 @@ For that to work, the ``__init__`` code has to be changed to: my_parameter_descriptor = ParameterDescriptor(type=ParameterType.PARAMETER_STRING, description='This parameter is mine!') - self.declare_parameter("my_parameter", - "default value for my_parameter", + self.declare_parameter('my_parameter', + 'default value for my_parameter', my_parameter_descriptor) The rest of the code remains the same. @@ -261,8 +316,6 @@ You can also set parameters in a launch file, but first you will need to add a l Inside the ``dev_ws/src/python_parameters/`` directory, create a new directory called ``launch``. In there, create a new file called ``python_parameters_launch.py`` - - .. code-block:: Python from launch import LaunchDescription @@ -271,18 +324,17 @@ In there, create a new file called ``python_parameters_launch.py`` def generate_launch_description(): return LaunchDescription([ Node( - package="python_parameters", - executable="param_talker", - name="custom_parameter_node", - output="screen", + package='python_parameters', + executable='param_talker', + name='custom_parameter_node', + output='screen', emulate_tty=True, parameters=[ - {"my_parameter": "earth"} + {'my_parameter': 'earth'} ] ) ]) - Here you can see that we set ``my_parameter`` to ``earth`` when we launch our node ``parameter_node``. By adding the two lines below, we ensure our output is printed in our console. From 9f7810a8ad810a3bd07a35ce3055c2d56c177521 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 8 Feb 2021 09:11:55 -0500 Subject: [PATCH 37/79] Amend charter with 3 changes following TSC vote in Feb 2021 (#1086) (#1087) (cherry picked from commit 6ec07cb1369b067aec9f708b85fbb08cce214c72) Co-authored-by: gerkey --- source/Governance/ros2-tsc-charter.pdf | Bin 72889 -> 65127 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/source/Governance/ros2-tsc-charter.pdf b/source/Governance/ros2-tsc-charter.pdf index bb30523a842db5c93969f352166cc5c7e98c2b9c..4378858466c50dd4a61eec4a5f3d730fb05a95c4 100644 GIT binary patch delta 63463 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 O$4o&So=l^A;Qs)-Dg40z From 652e8207ce37537f9eff81a47a55bb28972a46d7 Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Mon, 8 Feb 2021 20:53:34 -0500 Subject: [PATCH 38/79] Update the canonical URL to point to the correct place. (#1082) * Update the canonical URL to point to the correct place. Unfortunately, in a world where we are using sphinx multiversion, this isn't quite enough since we can't embed the current distribution name into the config. Also add in a hook that will rewrite the html_baseurl right after the configuration has been finished initializing. While we are in here, also update a couple of URLs and dates. Signed-off-by: Chris Lalancette --- conf.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/conf.py b/conf.py index bdd98f8346d..9036e5d6e21 100644 --- a/conf.py +++ b/conf.py @@ -37,7 +37,7 @@ # General information about the project. project = u'ros2 documentation' -copyright = u'2018, Open Robotics' +copyright = u'2018-2021, Open Robotics' author = u'Open Robotics' # The version info for the project you're documenting, acts as replacement for @@ -74,13 +74,13 @@ # Intersphinx mapping intersphinx_mapping = { - 'catkin_pkg': ('http://docs.ros.org/independent/api/catkin_pkg/html', None), - 'jenkins_tools': ('http://docs.ros.org/independent/api/jenkins_tools/html', None), - 'rosdep': ('http://docs.ros.org/independent/api/rosdep/html', None), - 'rosdistro': ('http://docs.ros.org/independent/api/rosdistro/html', None), - 'rosinstall': ('http://docs.ros.org/independent/api/rosinstall/html', None), - 'rospkg': ('http://docs.ros.org/independent/api/rospkg/html', None), - 'vcstools': ('http://docs.ros.org/independent/api/vcstools/html', None) + 'catkin_pkg': ('http://docs.ros.org/en/independent/api/catkin_pkg/html', None), + 'jenkins_tools': ('http://docs.ros.org/en/independent/api/jenkins_tools/html', None), + 'rosdep': ('http://docs.ros.org/en/independent/api/rosdep/html', None), + 'rosdistro': ('http://docs.ros.org/en/independent/api/rosdistro/html', None), + 'rosinstall': ('http://docs.ros.org/en/independent/api/rosinstall/html', None), + 'rospkg': ('http://docs.ros.org/en/independent/api/rospkg/html', None), + 'vcstools': ('http://docs.ros.org/en/independent/api/vcstools/html', None) } # -- Options for HTML output ---------------------------------------------- @@ -124,6 +124,7 @@ # Output file base name for HTML help builder. htmlhelp_basename = 'ros2_docsdoc' +html_baseurl = 'https://docs.ros.org/en' class RedirectFrom(Directive): @@ -142,8 +143,9 @@ def generate(cls, app): from sphinx.builders.html import StandaloneHTMLBuilder if not isinstance(app.builder, StandaloneHTMLBuilder): return + redirect_html_fragment = """ - +

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