diff --git a/.github/workflows/nightly.yaml b/.github/workflows/nightly.yaml index 295dffad..7043e09d 100644 --- a/.github/workflows/nightly.yaml +++ b/.github/workflows/nightly.yaml @@ -1,5 +1,5 @@ name: nightly -on: +on: push: pull_request: schedule: @@ -8,17 +8,25 @@ on: jobs: build_and_test: name: Nightly build and test - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 + container: + image: rostooling/setup-ros-docker:ubuntu-focal-latest steps: - name: deps - uses: ros-tooling/setup-ros@v0.2 + uses: ros-tooling/setup-ros@v0.4 with: required-ros-distributions: galactic + - name: install_clang + run: sudo apt update && sudo apt install -y clang clang-tools lld + - name: fix cryptography==2.8 # https://github.com/open-rmf/rmf/pull/202#pullrequestreview-1100045417 + run: pip3 install cryptography==2.8 - uses: actions/checkout@v2 - name: build_and_test uses: ros-tooling/action-ros-ci@v0.2 env: QT_QPA_PLATFORM: offscreen + CC: clang + CXX: clang++ with: target-ros2-distro: galactic # build all packages listed in the meta package @@ -27,8 +35,7 @@ jobs: rmf_traffic rmf_task rmf_battery - rmf_fleet_adapter - rmf_fleet_adapter_python + rmf_fleet_adapter rmf_task_ros2 rmf_traffic_ros2 rmf_visualization @@ -59,7 +66,7 @@ jobs: colcon-defaults: | { "build": { - "mixin": ["coverage-gcc"] + "mixin": ["coverage-gcc", "lld"] } } colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml diff --git a/Dockerfile b/Dockerfile index ba237656..62865976 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ RUN apt-get update \ qt5-default \ wget \ python3-pip \ - && pip3 install flask-socketio \ + && pip3 install flask-socketio fastapi uvicorn \ && rm -rf /var/lib/apt/lists/* # setup keys diff --git a/README.md b/README.md index b28a0bdf..0a2f282e 100644 --- a/README.md +++ b/README.md @@ -8,43 +8,19 @@ The OpenRMF platform for multi-fleet robot management. --- -## Install ROS 2 Galactic -First, please follow the installation instructions for ROS 2 Galactic. -If you are on an Ubuntu 20.04 LTS machine (as recommended), [here is the binary install page for ROS 2 Galactic on Ubuntu 20.04](https://docs.ros.org/en/galactic/Installation/Ubuntu-Install-Debians.html). +For specific rmf versions follow the instructions given below: -## Setup Gazebo repositories +## Installation Instructions -Setup your computer to accept Gazebo packages from packages.osrfoundation.org. +These are the current Open-RMF binary releases available: -```bash -sudo apt update -sudo apt install -y wget -sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list' -wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add - -``` - -## Binary install - -OpenRMF binary packages are available for Ubuntu Focal 20.04 for the `Foxy`, `Galactic` and `Rolling` releases of ROS 2. Most OpenRMF packages have the prefix `rmf` on their name, therefore, you can find them by them by searching for the pattern `ros--rmf`, e.g., for galatic it would be: - -```bash -apt-cache search ros-galactic-rmf -``` - -### RMF Demos - -A good way to install the `rmf` set of packages in one go is to install the one of the main [RMF Demos](https://github.com/open-rmf/rmf_demos) packages. This will pull all the rest of the OpenRMF packages as a dependency. The core of RMF demos is contained on the `rmf_demos` package. However, if you want to install it with simulation support, you should install the `rmf_demos_gz` or `rmf_demos_ign` package which come with gazebo or ignition support respectively. As an example, to install the ROS 2 Galactic release with gazebo support package, you would run: - -```bash -sudo apt install ros-galactic-rmf-demos-gz -``` +| RMF Version | Installation Instructions | Supported distros | Supported ROS2 versions | +| ----------- | -------------------------------------------------------------------------------- | --------------------------------------------------- | ----------------------- | +| 21.09 |  [Installation instructions](https://github.com/open-rmf/rmf/tree/release/21.09) | Ubuntu 20.04, Ubuntu 21.09, RHEL 8 (deployment only) | Foxy, Galactic | ## Building from sources -If you want to get the latest developments you might want to install from sources and compile OpenRMF yourself. - - ### Additional Dependencies Install all non-ROS dependencies of OpenRMF packages, @@ -54,7 +30,7 @@ sudo apt update && sudo apt install \ git cmake python3-vcstool curl \ qt5-default \ -y -python3 -m pip install flask-socketio +python3 -m pip install flask-socketio fastapi uvicorn sudo apt-get install python3-colcon* ``` @@ -69,6 +45,7 @@ rosdep update ``` ### Download the source code + Setup a new ROS 2 workspace and pull in the demo repositories using `vcs`, ```bash @@ -79,7 +56,13 @@ vcs import src < rmf.repos ``` Ensure all ROS 2 prerequisites are fulfilled, -``` + +you can subsutitute your distro name for `` + +Example: +for `galactic` + +```bash cd ~/rmf_ws rosdep install --from-paths src --ignore-src --rosdistro galactic -y ``` @@ -92,17 +75,12 @@ Compiling on `Ubuntu 20.04`: ```bash cd ~/rmf_ws -source /opt/ros/galactic/setup.bash +source /opt/ros//setup.bash colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release ``` > NOTE: The first time the build occurs, many simulation models will be downloaded from Ignition Fuel to populate the scene when the simulation is run. -As a result, the first build can take a very long time depending on the server load and your Internet connection (for example, 60 minutes). - -## Run RMF Demos - -Demonstrations of OpenRMF are shown in [rmf_demos](https://github.com/open-rmf/rmf_demos/). - +> As a result, the first build can take a very long time depending on the server load and your Internet connection (for example, 60 minutes). ### Docker Containers Alternatively, you can run RMF Demos by using [docker](https://docs.docker.com/engine/install/ubuntu/). @@ -123,6 +101,10 @@ This will run `rmf_demos` in headless mode. Open [this link](https://open-rmf.gi (Experimental) User can also run `rmf_demos` in “non-headless” graphical form, via [rocker](https://github.com/osrf/rocker). +## Run RMF Demos + +Demonstrations of OpenRMF are shown in [rmf_demos](https://github.com/open-rmf/rmf_demos/). + ## Roadmap A near-term roadmap of the entire OpenRMF project (including and beyond `rmf_traffic`) can be found in the user manual [here](https://osrf.github.io/ros2multirobotbook/roadmap.html). diff --git a/rmf.repos b/rmf.repos index 15e14873..efed29ce 100644 --- a/rmf.repos +++ b/rmf.repos @@ -2,59 +2,59 @@ repositories: rmf/rmf_battery: type: git url: https://github.com/open-rmf/rmf_battery.git - version: main + version: galactic-devel rmf/rmf_internal_msgs: type: git url: https://github.com/open-rmf/rmf_internal_msgs.git - version: main + version: galactic-devel rmf/rmf_api_msgs: type: git url: https://github.com/open-rmf/rmf_api_msgs.git - version: main + version: galactic-devel rmf/rmf_ros2: type: git url: https://github.com/open-rmf/rmf_ros2.git - version: main + version: galactic-devel rmf/rmf_task: type: git url: https://github.com/open-rmf/rmf_task.git - version: main + version: galactic-devel rmf/rmf_traffic: type: git url: https://github.com/open-rmf/rmf_traffic.git - version: main + version: galactic-devel rmf/rmf_utils: type: git url: https://github.com/open-rmf/rmf_utils.git - version: main + version: galactic-devel rmf/ament_cmake_catch2: type: git url: https://github.com/open-rmf/ament_cmake_catch2.git - version: main + version: galactic-devel rmf/rmf_visualization: type: git url: https://github.com/open-rmf/rmf_visualization.git - version: main + version: galactic-devel rmf/rmf_visualization_msgs: type: git url: https://github.com/open-rmf/rmf_visualization_msgs.git - version: main + version: galactic-devel rmf/rmf_building_map_msgs: type: git url: https://github.com/open-rmf/rmf_building_map_msgs.git - version: main + version: galactic-devel rmf/rmf_simulation: type: git url: https://github.com/open-rmf/rmf_simulation.git - version: main + version: galactic-devel rmf/rmf_traffic_editor: type: git url: https://github.com/open-rmf/rmf_traffic_editor.git - version: main + version: galactic-devel demonstrations/rmf_demos: type: git url: https://github.com/open-rmf/rmf_demos.git - version: main + version: galactic-devel thirdparty/menge_vendor: type: git url: https://github.com/open-rmf/menge_vendor.git