diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index ced77ada..d49c366e 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,11 +1,17 @@ name: build -on: [push, pull_request] -jobs: +on: + pull_request: + push: + branches: [ main ] - ros2: - runs-on: ubuntu-20.04 +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + docker_image: ['ros:humble-ros-base'] container: - image: docker://ros:galactic-ros-base-focal + image: ${{ matrix.docker_image }} steps: - name: non-ros-deps run: | @@ -15,9 +21,9 @@ jobs: wget https://packages.osrfoundation.org/gazebo.key -O - | apt-key add - sudo apt update && sudo apt install \ git cmake python3-vcstool curl \ - qt5-default \ + clang clang-tools lld \ python3-shapely python3-yaml python3-requests \ - ignition-edifice python3-pip -y + python3-pip -y pip3 install flask-socketio fastapi uvicorn - name: create-ws run: | @@ -34,13 +40,16 @@ jobs: - name: ros-deps run: | export DEBIAN_FRONTEND=noninteractive + colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml + colcon mixin update default cd rmf_demos_ws rosdep update - rosdep install --from-paths src --ignore-src --rosdistro galactic -yr + rosdep install --from-paths src --ignore-src --rosdistro humble -yr - name: build shell: bash run: | cd rmf_demos_ws - source /opt/ros/galactic/setup.bash - colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release -DNO_DOWNLOAD_MODELS=True - \ No newline at end of file + source /opt/ros/humble/setup.bash + export CXX=clang++ + export CX=clang + colcon build --mixin lld --cmake-args -DNO_DOWNLOAD_MODELS=True diff --git a/.github/workflows/style.yml b/.github/workflows/style.yml index 3c28d72f..f91e9ddb 100644 --- a/.github/workflows/style.yml +++ b/.github/workflows/style.yml @@ -1,10 +1,16 @@ name: style -on: [push, pull_request] +on: + pull_request: + push: + branches: [ main ] jobs: - build: - runs-on: ubuntu-20.04 + linter: + runs-on: ubuntu-latest + strategy: + matrix: + docker_image: ['ros:humble-ros-base'] container: - image: docker://ros:galactic-ros-base-focal + image: ${{ matrix.docker_image }} steps: - uses: actions/checkout@v2 - name: deps diff --git a/README.md b/README.md index 381d576a..45d7f233 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ Full web application of Open-RMF: [rmf-web](https://github.com/open-rmf/rmf-web) In order to interact with the default configuration of the web application, the `server_uri` launch parameter will need to be changed to `ws://localhost:8000/_internal`, for example, ```bash -ros2 launch rmf_demos_ign office.launch.xml server_uri:="ws://localhost:8000/_internal" +ros2 launch rmf_demos_gz office.launch.xml server_uri:="ws://localhost:8000/_internal" ``` By specifying `server_uri`, the fleetadapter will update `rmf-web` `api-server` with the latest task and robot states. User can then monitor on-going states and initiate rmf task with an interactive web dashboard. @@ -55,9 +55,9 @@ By specifying `server_uri`, the fleetadapter will update `rmf-web` `api-server` * [Manufacturing & Logistics World](#Manufacturing-&-Logistics-World) > Note: When running the demos on Ubuntu 18.04 (not officially supported), you are required to explicitly supply gazebo_version launch argument. Eg: -ros2 launch rmf_demos_gz office.launch.xml gazebo_version:=9 +ros2 launch rmf_demos_gz_classic office.launch.xml gazebo_version:=9 -> To run the demos using Ignition instead of Gazebo, change the commands from `ros2 launch rmf_demos_gz [...]` to `ros2 launch rmf_demos_ign [...]` +> To run the demos using Ignition instead of Gazebo, change the commands from `ros2 launch rmf_demos_gz_classic [...]` to `ros2 launch rmf_demos_gz [...]` **RMF Panel** ![](../media/RMF_Panel.png?raw=true) @@ -77,7 +77,7 @@ There are two main modes of submitting tasks to Open-RMF via the Panel: `task_state_uptates` are now published via websocket. To display task states on `rmf-panel`, specify `server_uri:="ws://localhost:7878"` during ros2 launch. Example: ``` -ros2 launch rmf_demos_gz office.launch.xml server_uri:="ws://localhost:7878" +ros2 launch rmf_demos_gz_classic office.launch.xml server_uri:="ws://localhost:7878" ``` This will let Open-RMF (websocket clients) to publish their states to port `7878`. In this case, rmf-panel's `api_simple_server` is the websocket server. @@ -97,10 +97,10 @@ To launch the world and the schedule visualizer, ```bash source ~/rmf_ws/install/setup.bash -ros2 launch rmf_demos_gz hotel.launch.xml +ros2 launch rmf_demos_gz_classic hotel.launch.xml # Or, run with ignition simulator -ros2 launch rmf_demos_ign hotel.launch.xml +ros2 launch rmf_demos_gz hotel.launch.xml ``` Here, we will showcase 2 types of Tasks: **Loop** and **Clean** @@ -131,10 +131,10 @@ An indoor office environment for robots to navigate around. It includes a bevera ```bash source ~/rmf_demos_ws/install/setup.bash -ros2 launch rmf_demos_gz office.launch.xml +ros2 launch rmf_demos_gz_classic office.launch.xml # Or, run with ignition simulator -ros2 launch rmf_demos_ign office.launch.xml +ros2 launch rmf_demos_gz office.launch.xml ``` Now we will showcase 2 types of Tasks: **Delivery** and **Loop** @@ -172,7 +172,7 @@ In the airport world, we introduce a new task type to rmf: `Clean`. To launch th ```bash source ~/rmf_ws/install/setup.bash -ros2 launch rmf_demos_gz airport_terminal.launch.xml +ros2 launch rmf_demos_gz_classic airport_terminal.launch.xml ``` Open [RMF Panel](https://open-rmf.github.io/rmf-panel-js/). Load the [airport_terminal_tasks.json](https://github.com/open-rmf/rmf_demos/blob/main/rmf_demos_panel/task_lists/airport_terminal_tasks.json) list and click submit to begin a collection of loop, delivery and cleaning tasks. @@ -186,7 +186,7 @@ ros2 run rmf_demos_tasks dispatch_clean -cs zone_3 --use_sim_time To see crowd simulation in action, enable crowd sim by: ```bash -ros2 launch rmf_demos_gz airport_terminal.launch.xml use_crowdsim:=1 +ros2 launch rmf_demos_gz_classic airport_terminal.launch.xml use_crowdsim:=1 ``` Non-autonomous vehicles can also be integrated with Open-RMF provided their positions can be localized in the world. This may be of value at facilities where space is shared by autonomous robots as well as manually operated vehicles such as forklifts or transporters. In this demo, we can introduce a vehicle (caddy) which can be driven around through keyboard/joystick teleop. In Open-RMF nomenclature, this vehicle is classified as a `read_only` type, ie, Open-RMF can only infer its position in the world but does not have control over its motion. Here, the goal is to have other controllable robots avoid this vehicle's path by replanning their routes if needed. The model is fitted with a plugin which generates a prediction of the vehicle's path based on its current heading. It is configured to occupy the same lanes as the `tinyRobot` robots. Here, a `read_only_fleet_adapter` submits the prediction from the plugin to the Open-RMF schedule. @@ -199,7 +199,7 @@ Run `teleop_twist_keyboard` to control the `caddy` with your keyboard: ros2 run teleop_twist_keyboard teleop_twist_keyboard # if launched with the Ignition simulator -ros2 launch rmf_demos_ign airport_terminal_caddy.launch.xml +ros2 launch rmf_demos_gz airport_terminal_caddy.launch.xml ``` ![](../media/caddy.gif) @@ -219,7 +219,7 @@ To launch the world and the schedule visualizer, ```bash source ~/rmf_ws/install/setup.bash -ros2 launch rmf_demos_gz clinic.launch.xml +ros2 launch rmf_demos_gz_classic clinic.launch.xml ``` Open [RMF Panel](https://open-rmf.github.io/rmf-panel-js/). Load the [clinic_tasks.json](https://github.com/open-rmf/rmf_demos/blob/main/rmf_demos_panel/task_lists/clinic_tasks.json) list and click submit to begin a collection of loop and delivery tasks. @@ -251,7 +251,7 @@ To launch the world and the schedule visualizer, ```bash source ~/rmf_ws/install/setup.bash -ros2 launch rmf_demos_ign campus.launch.xml +ros2 launch rmf_demos_gz campus.launch.xml ros2 run rmf_demos_tasks dispatch_patrol -p room_5 campus_4 -n 10 --use_sim_time ros2 run rmf_demos_tasks dispatch_patrol -p campus_5 room_3 -n 10 --use_sim_time @@ -296,20 +296,20 @@ Open-RMF can also manage fleets whose API or fleet managers only offer pause and #### Triple-H scenario: ```bash -$ ros2 launch rmf_demos_gz triple_H.launch.xml +$ ros2 launch rmf_demos_gz_classic triple_H.launch.xml (new terminal) $ ros2 launch rmf_demos the_pedigree.launch.xml ``` #### Battle Royale Scenario: ```bash -$ ros2 launch rmf_demos_gz battle_royale.launch.xml +$ ros2 launch rmf_demos_gz_classic battle_royale.launch.xml (new terminal) $ ros2 launch rmf_demos battle_go.launch.xml ``` #### Office Scenario: Note that `tinyRobot1` is a standard "full control" robot, while `tinyRobot2` "traffic light" robot. ```bash -$ ros2 launch rmf_demos_gz office_mock_traffic_light.launch.xml +$ ros2 launch rmf_demos_gz_classic office_mock_traffic_light.launch.xml (new terminal) $ ros2 launch rmf_demos office_traffic_light_test.launch.xml ``` @@ -322,7 +322,7 @@ $ ros2 launch rmf_demos_gz office_mock_traffic_light.launch.xml - Command lines: ```bash # run hotel world with lift_watch_dog enabled - ros2 launch rmf_demos_gz hotel.launch.xml enable_experimental_lift_watchdog:=1 + ros2 launch rmf_demos_gz_classic hotel.launch.xml enable_experimental_lift_watchdog:=1 ## On a separate terminal, set lift as crowded ros2 launch rmf_demos experimental_crowded_lift.launch.xml diff --git a/docs/secure_office_world.md b/docs/secure_office_world.md index 52efc2d9..086bae2f 100644 --- a/docs/secure_office_world.md +++ b/docs/secure_office_world.md @@ -77,7 +77,7 @@ Gazebo needs the environment variables to locate files, and set up communication ```bash echo 'export GAZEBO_MODEL_PATH=~/rmf_demos_ws/install/rmf_demos_maps/share/rmf_demos_maps/maps/office/models:~/rmf_demos_ws/install/rmf_demos_assets/share/rmf_demos_assets/models:/usr/share/gazebo-11/models export GAZEBO_RESOURCE_PATH=~/rmf_demos_ws/install/rmf_demos_assets/share/rmf_demos_assets:/usr/share/gazebo-11 -export GAZEBO_PLUGIN_PATH=~/rmf_demos_ws/install/rmf_robot_sim_gazebo_plugins/lib:~/rmf_demos_ws/install/building_gazebo_plugins/lib/ +export GAZEBO_PLUGIN_PATH=~/rmf_demos_ws/install/rmf_robot_sim_gz_classic_plugins/lib:~/rmf_demos_ws/install/building_gazebo_plugins/lib/ export GAZEBO_MODEL_DATABASE_URI=""' > gazebo_environment.sh ``` diff --git a/rmf_demos/sros2/office_deploy.bash b/rmf_demos/sros2/office_deploy.bash index a96ae65b..f120b1ca 100644 --- a/rmf_demos/sros2/office_deploy.bash +++ b/rmf_demos/sros2/office_deploy.bash @@ -84,7 +84,7 @@ sleep 2 echo "export GAZEBO_MODEL_PATH=$WORKSPACE/install/rmf_demos_maps/share/rmf_demos_maps/maps/office/models:$WORKSPACE/install/rmf_demos_assets/share/rmf_demos_assets/models:/usr/share/gazebo-11/models export GAZEBO_RESOURCE_PATH=$WORKSPACE/install/rmf_demos_assets/share/rmf_demos_assets:/usr/share/gazebo-11 -export GAZEBO_PLUGIN_PATH=$WORKSPACE/install/rmf_robot_sim_gazebo_plugins/lib:$WORKSPACE/install/rmf_building_sim_gazebo_plugins/lib/ +export GAZEBO_PLUGIN_PATH=$WORKSPACE/install/rmf_robot_sim_gz_classic_plugins/lib:$WORKSPACE/install/rmf_building_sim_gz_classic_plugins/lib/ export GAZEBO_MODEL_DATABASE_URI=\"\"" > $WORKSPACE/gazebo_environment.bash tmux send-keys -t 8 "source $WORKSPACE/sros2_environment.bash" Enter diff --git a/rmf_demos_fleet_adapter/README.md b/rmf_demos_fleet_adapter/README.md index 88d9decf..43946757 100644 --- a/rmf_demos_fleet_adapter/README.md +++ b/rmf_demos_fleet_adapter/README.md @@ -1,9 +1,9 @@ # rmf_demos_fleet_adapter -This is an implementation of the python based [fleet adapter template](https://github.com/open-rmf/fleet_adapter_template) on selected RMF demo worlds: Hotel, Office, Airport Terminal and Clinic. +This is an implementation of the python based [fleet adapter template](https://github.com/open-rmf/fleet_adapter_template) on selected RMF demo worlds: Hotel, Office, Airport Terminal and Clinic. This fleet adapter integration relies on a fleet manager and a fleet adapter: -- The **fleet manager** comprises of specific endpoints that help relay commands to the fleet's robots. It communicates with the robots over internal ROS 2 messages, while interfacing with the adapter via an API chosen by the user. For this demo fleet adapter implementation, we are using REST API with FastAPI framework. +- The **fleet manager** comprises of specific endpoints that help relay commands to the fleet's robots. It communicates with the robots over internal ROS 2 messages, while interfacing with the adapter via an API chosen by the user. For this demo fleet adapter implementation, we are using REST API with FastAPI framework. - The **fleet adapter** receives commands from RMF and interfaces with the fleet manager to receive robot state information, as well as send task and navigation commands to the robots ## Getting Started @@ -21,7 +21,7 @@ You can interact with the endpoints with FastAPI's automatic documentation. Firs Launch the Office world: ```bash source ~/rmf_ws/install/setup.bash -ros2 launch rmf_demos_gz office.launch.xml +ros2 launch rmf_demos_gz_classic office.launch.xml ``` Then, visit http://127.0.0.1:22011/docs in your browser to interact with the endpoints. diff --git a/rmf_demos_gz/CHANGELOG.md b/rmf_demos_gz/CHANGELOG.md index ac5b0592..38261107 100644 --- a/rmf_demos_gz/CHANGELOG.md +++ b/rmf_demos_gz/CHANGELOG.md @@ -1,5 +1,9 @@ ## Changelog for package rmf_demos_gz +2.0.0 (2022-XX-XX) +------------------ +* Renamed to rmf_demos_gz + 1.3.1 (2021-11-30) ------------------ * Added `diff_drive` plugin dependencies for caddy (#111) @@ -7,5 +11,4 @@ 1.3.0 (2021-09-08) ------------------ -* Provides launch files for running various demonstrations in gazebo - +* Provides launch files for running various demonstrations in ignition-gazebo diff --git a/rmf_demos_gz/QUALITY_DECLARATION.md b/rmf_demos_gz/QUALITY_DECLARATION.md index 38d11ed5..891055d0 100644 --- a/rmf_demos_gz/QUALITY_DECLARATION.md +++ b/rmf_demos_gz/QUALITY_DECLARATION.md @@ -114,32 +114,27 @@ This quality declaration has not been externally peer-reviewed and is not regist `rmf_demos_gz` has the following runtime ROS dependencies. -#### rmf_building_sim_gazebo_plugins +#### rmf_building_sim_gz_plugins -`rmf_building_sim_gazebo_plugins` is at [**Quality Level 4**](https://github.com/open-rmf/rmf_simulation/blob/main/rmf_building_sim_gazebo_plugins/QUALITY_DECLARATION.md). +`rmf_building_sim_gz_plugins` is at [**Quality Level 4**](https://github.com/open-rmf/rmf_simulation/blob/main/rmf_building_sim_gz_plugins/QUALITY_DECLARATION.md). -#### rmf_robot_sim_gazebo_plugins +#### rmf_robot_sim_gz_plugins -`rmf_robot_sim_gazebo_plugins` is at [**Quality Level 4**](https://github.com/open-rmf/rmf_simulation/blob/main/rmf_robot_sim_gazebo_plugins/QUALITY_DECLARATION.md). +`rmf_robot_sim_gz_plugins` is at [**Quality Level 4**](https://github.com/open-rmf/rmf_simulation/blob/main/rmf_robot_sim_gz_plugins/QUALITY_DECLARATION.md). -#### gazebo_ros_pkgs +#### teleop_twist_keyboard -`gazebo_ros_pkgs` does not declare a Quality Level. -It is assumed to be at least **Quality Level 4** based on its widespread use. - -#### joy - -`joy` does not declare a Quality Level. +`teleop_twist_keyboard` does not declare a Quality Level. It is assumed tobe at **Quality Level 4** based on its widespread use. -#### teleop_twist_joy +#### launch_xml -`teleop_twist_joy` does not declare a Quality Level. +`launch_xml` does not declare a Quality Level. It is assumed tobe at **Quality Level 4** based on its widespread use. -#### launch_xml +#### ros_ign_bridge -`launch_xml` does not declare a Quality Level. +`ros_ign_bridge` does not declare a Quality Level. It is assumed tobe at **Quality Level 4** based on its widespread use. ### Optional Direct Runtime ROS Dependencies [5.ii] diff --git a/rmf_demos_gz/launch/airport_terminal.launch.xml b/rmf_demos_gz/launch/airport_terminal.launch.xml index d20bf381..4ce82be2 100644 --- a/rmf_demos_gz/launch/airport_terminal.launch.xml +++ b/rmf_demos_gz/launch/airport_terminal.launch.xml @@ -1,20 +1,22 @@ - + + + - + diff --git a/rmf_demos_gz/launch/battle_royale.launch.xml b/rmf_demos_gz/launch/battle_royale.launch.xml index a0348524..caaf96db 100644 --- a/rmf_demos_gz/launch/battle_royale.launch.xml +++ b/rmf_demos_gz/launch/battle_royale.launch.xml @@ -1,18 +1,20 @@ - + + + - + diff --git a/rmf_demos_gz/launch/campus.launch.xml b/rmf_demos_gz/launch/campus.launch.xml index 409fae55..8a34a88b 100644 --- a/rmf_demos_gz/launch/campus.launch.xml +++ b/rmf_demos_gz/launch/campus.launch.xml @@ -1,20 +1,22 @@ - + + + - + diff --git a/rmf_demos_gz/launch/clinic.launch.xml b/rmf_demos_gz/launch/clinic.launch.xml index 98757c29..6113d9d0 100644 --- a/rmf_demos_gz/launch/clinic.launch.xml +++ b/rmf_demos_gz/launch/clinic.launch.xml @@ -1,20 +1,22 @@ - + + + - + diff --git a/rmf_demos_gz/launch/hotel.launch.xml b/rmf_demos_gz/launch/hotel.launch.xml index 1cdeabf8..d1e3d695 100644 --- a/rmf_demos_gz/launch/hotel.launch.xml +++ b/rmf_demos_gz/launch/hotel.launch.xml @@ -1,19 +1,21 @@ - + + + - + diff --git a/rmf_demos_gz/launch/include/airport_terminal/airport_terminal_caddy.launch.xml b/rmf_demos_gz/launch/include/airport_terminal/airport_terminal_caddy.launch.xml index 83c7c1ad..71ebfd17 100644 --- a/rmf_demos_gz/launch/include/airport_terminal/airport_terminal_caddy.launch.xml +++ b/rmf_demos_gz/launch/include/airport_terminal/airport_terminal_caddy.launch.xml @@ -2,15 +2,13 @@ - + - - - - - - - + + + + + - + \ No newline at end of file diff --git a/rmf_demos_gz/launch/office.launch.xml b/rmf_demos_gz/launch/office.launch.xml index 37589168..b1837130 100644 --- a/rmf_demos_gz/launch/office.launch.xml +++ b/rmf_demos_gz/launch/office.launch.xml @@ -1,20 +1,22 @@ - + + + - + diff --git a/rmf_demos_gz/launch/office_mock_traffic_light.launch.xml b/rmf_demos_gz/launch/office_mock_traffic_light.launch.xml index 0d132779..c601725e 100644 --- a/rmf_demos_gz/launch/office_mock_traffic_light.launch.xml +++ b/rmf_demos_gz/launch/office_mock_traffic_light.launch.xml @@ -1,18 +1,20 @@ - + + + - + diff --git a/rmf_demos_gz/launch/simulation.launch.xml b/rmf_demos_gz/launch/simulation.launch.xml index ce19d37d..bd6ce4ea 100644 --- a/rmf_demos_gz/launch/simulation.launch.xml +++ b/rmf_demos_gz/launch/simulation.launch.xml @@ -4,30 +4,45 @@ + + - - - - - + + + + + + + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/rmf_demos_gz/launch/triple_H.launch.xml b/rmf_demos_gz/launch/triple_H.launch.xml index a0015161..7196fa20 100644 --- a/rmf_demos_gz/launch/triple_H.launch.xml +++ b/rmf_demos_gz/launch/triple_H.launch.xml @@ -1,18 +1,20 @@ - + + + - + diff --git a/rmf_demos_gz/package.xml b/rmf_demos_gz/package.xml index 5927b486..5c37f0f3 100644 --- a/rmf_demos_gz/package.xml +++ b/rmf_demos_gz/package.xml @@ -5,20 +5,21 @@ 1.4.0 Launch files for RMF demos using the Gazebo simulator Yadunund + Luca Della Vedova Marco A. GutiƩrrez Apache License 2.0 ament_cmake rmf_demos + rmf_building_sim_gz_plugins + rmf_robot_sim_gz_plugins - rmf_building_sim_gazebo_plugins - rmf_robot_sim_gazebo_plugins - - joy - teleop_twist_joy + teleop_twist_keyboard launch_xml - gazebo_plugins + ignition-fortress + + ros_ign_bridge ament_cmake diff --git a/rmf_demos_ign/CHANGELOG.md b/rmf_demos_gz_classic/CHANGELOG.md similarity index 51% rename from rmf_demos_ign/CHANGELOG.md rename to rmf_demos_gz_classic/CHANGELOG.md index 48cc5e83..f04c515e 100644 --- a/rmf_demos_ign/CHANGELOG.md +++ b/rmf_demos_gz_classic/CHANGELOG.md @@ -1,4 +1,8 @@ -## Changelog for package rmf_demos_ign +## Changelog for package rmf_demos_gz_classic + +2.0.0 (2022-XX-XX) +------------------ +* Renamed to rmf_demos_gz_classic 1.3.1 (2021-11-30) ------------------ @@ -7,5 +11,4 @@ 1.3.0 (2021-09-08) ------------------ -* Provides launch files for running various demonstrations in ignition-gazebo - +* Provides launch files for running various demonstrations in gazebo diff --git a/rmf_demos_ign/CMakeLists.txt b/rmf_demos_gz_classic/CMakeLists.txt similarity index 83% rename from rmf_demos_ign/CMakeLists.txt rename to rmf_demos_gz_classic/CMakeLists.txt index 1eb4b92c..c01eb3f7 100644 --- a/rmf_demos_ign/CMakeLists.txt +++ b/rmf_demos_gz_classic/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.5) -project(rmf_demos_ign) +project(rmf_demos_gz_classic) find_package(ament_cmake REQUIRED) diff --git a/rmf_demos_gz_classic/QUALITY_DECLARATION.md b/rmf_demos_gz_classic/QUALITY_DECLARATION.md new file mode 100644 index 00000000..411f2b15 --- /dev/null +++ b/rmf_demos_gz_classic/QUALITY_DECLARATION.md @@ -0,0 +1,161 @@ +This document is a declaration of software quality for the `rmf_demos_gz_classic` package, based on the guidelines in [REP-2004](https://www.ros.org/reps/rep-2004.html). + +# `rmf_demos_gz_classic` Quality Declaration + +The package `rmf_demos_gz_classic` claims to be in the **Quality Level 4** category. +The main rationale for this claim its its status as a collection of demonstration launch files. + +Below are the detailed rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Requirements for Quality Level 3 in REP-2004](https://www.ros.org/reps/rep-2004.html). + +## Version Policy [1] + +### Version Scheme [1.i] + +`rmf_demos_gz_classic` uses `semver` according to the recommendation for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#versioning). + +### Version Stability [1.ii] + +`rmf_demos_gz_classic` is at a stable version, i.e. `>= 1.0.0`. +The current version can be found in its [package.xml](package.xml), and its change history can be found in its [CHANGELOG](CHANGELOG.rst). + +### Public API Declaration [1.iii] + +`rmf_demos_gz_classic` does not have a public API. + +### API Stability Policy [1.iv] + +`rmf_demos_gz_classic` does not have a public API. + +### ABI Stability Policy [1.v] + +`rmf_demos_gz_classic` does not have a public API. + +### API and ABI Stability Within a Released ROS Distribution [1.vi] + +`rmf_demos_gz_classic` does not have a public API. + +## Change Control Process [2] + +`rmf_demos_gz_classic` follows the recommended guidelines for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-requirements). + +### Change Requests [2.i] + +`rmf_demos_gz_classic` requires that all changes occur through a pull request. + +### Contributor Origin [2.ii] + +`rmf_demos_gz_classic` uses DCO as its confirmation of contributor origin policy. More information can be found in [CONTRIBUTING](../CONTRIBUTING.md). + +### Peer Review Policy [2.iii] + +All pull requests must have at least 1 peer review. + +### Continuous Integration [2.iv] + +All pull requests must pass CI on all platforms supported by RMF. +The CI checks only that the package builds. +The most recent CI results can be seen on [the workflow page](https://github.com/open-rmf/rmf_demos/actions). + +### Documentation Policy [2.v] + +All pull requests must resolve related documentation changes before merging. + +## Documentation [3] + +### Feature Documentation [3.i] + +`rmf_demos_gz_classic` is documented in the [parent repository's README.md file](../README.md). + +### Public API Documentation [3.ii] + +`rmf_demos_gz_classic` does not have a public API. + +### License [3.iii] + +The license for `rmf_demos_gz_classic` is Apache 2.0, the type is declared in the [package.xml](package.xml) manifest file, and a full copy of the license is in the repository level [LICENSE](../LICENSE) file. + +There are no source files that are currently copyrighted in this package so files are not checked for abbreviated license statements. + +### Copyright Statement [3.iv] + +There are no copyrighted source files in this package. + +### Quality declaration document [3.v] + +This quality declaration is linked in the [README file](README.md). + +This quality declaration has not been externally peer-reviewed and is not registered on any Level 3 lists. + +## Testing [4] + +### Feature Testing [4.i] + +`rmf_demos_gz_classic` is a package providing strictly launch files and therefore does not require associated tests. + +### Public API Testing [4.ii] + +`rmf_demos_gz_classic` is a package providing strictly launch files and therefore does not require associated tests. + +### Coverage [4.iii] + +`rmf_demos_gz_classic` is a package providing strictly launch files and therefore does not require associated tests. + +### Performance [4.iv] + +`rmf_demos_gz_classic` is a package providing strictly launch files and therefore does not require associated tests. + +### Linters and Static Analysis [4.v] + +`rmf_demos_gz_classic` does not use the [standard linters and static analysis tools](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#linters). + +## Dependencies [5] + +### Direct Runtime ROS Dependencies [5.i] + +`rmf_demos_gz_classic` has the following runtime ROS dependencies. + +#### rmf_building_sim_gz_classic_plugins + +`rmf_building_sim_gz_classic_plugins` is at [**Quality Level 4**](https://github.com/open-rmf/rmf_simulation/blob/main/rmf_building_sim_gz_classic_plugins/QUALITY_DECLARATION.md). + +#### rmf_robot_sim_gz_classic_plugins + +`rmf_robot_sim_gz_classic_plugins` is at [**Quality Level 4**](https://github.com/open-rmf/rmf_simulation/blob/main/rmf_robot_sim_gz_classic_plugins/QUALITY_DECLARATION.md). + +#### gazebo_ros_pkgs + +`gazebo_ros_pkgs` does not declare a Quality Level. +It is assumed to be at least **Quality Level 4** based on its widespread use. + +#### joy + +`joy` does not declare a Quality Level. +It is assumed tobe at **Quality Level 4** based on its widespread use. + +#### teleop_twist_joy + +`teleop_twist_joy` does not declare a Quality Level. +It is assumed tobe at **Quality Level 4** based on its widespread use. + +#### launch_xml + +`launch_xml` does not declare a Quality Level. +It is assumed tobe at **Quality Level 4** based on its widespread use. + +### Optional Direct Runtime ROS Dependencies [5.ii] + +`rmf_demos_gz_classic` does not have any optional direct runtime ROS dependencies. + +### Direct Runtime non-ROS Dependency [5.iii] + +`rmf_demos_gz_classic` does not have any runtime non-ROS dependencies. + +## Platform Support [6] + +As a pure message and service definitions package, `rmf_demos_gz_classic` supports all of the tier 1 platforms as described in [REP-2000](https://www.ros.org/reps/rep-2000.html#support-tiers), but does not currently test each change against all of them. + +## Security [7] + +### Vulnerability Disclosure Policy [7.i] + +This package conforms to the Vulnerability Disclosure Policy in [REP-2006](https://www.ros.org/reps/rep-2006.html). diff --git a/rmf_demos_ign/README.md b/rmf_demos_gz_classic/README.md similarity index 50% rename from rmf_demos_ign/README.md rename to rmf_demos_gz_classic/README.md index 64ac162a..3a81298d 100644 --- a/rmf_demos_ign/README.md +++ b/rmf_demos_gz_classic/README.md @@ -1,6 +1,6 @@ -# rmf_demos_ign +# rmf_demos_gz_classic -This package provides top level launch files using the Ignition Gazebo simulator demonstrating how to build and start systems using RMF. +This package provides top level launch files using the Gazebo-classic simulator demonstrating how to build and start systems using RMF. ## Quality Declaration diff --git a/rmf_demos_ign/launch/airport_terminal.launch.xml b/rmf_demos_gz_classic/launch/airport_terminal.launch.xml similarity index 62% rename from rmf_demos_ign/launch/airport_terminal.launch.xml rename to rmf_demos_gz_classic/launch/airport_terminal.launch.xml index cec5aeb8..b9afa00a 100644 --- a/rmf_demos_ign/launch/airport_terminal.launch.xml +++ b/rmf_demos_gz_classic/launch/airport_terminal.launch.xml @@ -1,22 +1,20 @@ + - - - - + - + diff --git a/rmf_demos_ign/launch/battle_royale.launch.xml b/rmf_demos_gz_classic/launch/battle_royale.launch.xml similarity index 56% rename from rmf_demos_ign/launch/battle_royale.launch.xml rename to rmf_demos_gz_classic/launch/battle_royale.launch.xml index 12d21d4c..3af2084a 100644 --- a/rmf_demos_ign/launch/battle_royale.launch.xml +++ b/rmf_demos_gz_classic/launch/battle_royale.launch.xml @@ -1,20 +1,18 @@ + - - - - + - + diff --git a/rmf_demos_ign/launch/campus.launch.xml b/rmf_demos_gz_classic/launch/campus.launch.xml similarity index 61% rename from rmf_demos_ign/launch/campus.launch.xml rename to rmf_demos_gz_classic/launch/campus.launch.xml index 4df4862d..abab13a5 100644 --- a/rmf_demos_ign/launch/campus.launch.xml +++ b/rmf_demos_gz_classic/launch/campus.launch.xml @@ -1,22 +1,20 @@ + - - - - + - + diff --git a/rmf_demos_ign/launch/clinic.launch.xml b/rmf_demos_gz_classic/launch/clinic.launch.xml similarity index 60% rename from rmf_demos_ign/launch/clinic.launch.xml rename to rmf_demos_gz_classic/launch/clinic.launch.xml index 2fb605a2..92b5bdc0 100644 --- a/rmf_demos_ign/launch/clinic.launch.xml +++ b/rmf_demos_gz_classic/launch/clinic.launch.xml @@ -1,22 +1,20 @@ + - - - - + - + diff --git a/rmf_demos_ign/launch/hotel.launch.xml b/rmf_demos_gz_classic/launch/hotel.launch.xml similarity index 61% rename from rmf_demos_ign/launch/hotel.launch.xml rename to rmf_demos_gz_classic/launch/hotel.launch.xml index cd0670bf..1f65a7a8 100644 --- a/rmf_demos_ign/launch/hotel.launch.xml +++ b/rmf_demos_gz_classic/launch/hotel.launch.xml @@ -1,21 +1,19 @@ + - - - - + - + diff --git a/rmf_demos_gz_classic/launch/include/airport_terminal/airport_terminal_caddy.launch.xml b/rmf_demos_gz_classic/launch/include/airport_terminal/airport_terminal_caddy.launch.xml new file mode 100644 index 00000000..83c7c1ad --- /dev/null +++ b/rmf_demos_gz_classic/launch/include/airport_terminal/airport_terminal_caddy.launch.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/rmf_demos_ign/launch/office.launch.xml b/rmf_demos_gz_classic/launch/office.launch.xml similarity index 61% rename from rmf_demos_ign/launch/office.launch.xml rename to rmf_demos_gz_classic/launch/office.launch.xml index 59afe61f..23e7fbfd 100644 --- a/rmf_demos_ign/launch/office.launch.xml +++ b/rmf_demos_gz_classic/launch/office.launch.xml @@ -1,22 +1,20 @@ + - - - - + - + diff --git a/rmf_demos_ign/launch/office_mock_traffic_light.launch.xml b/rmf_demos_gz_classic/launch/office_mock_traffic_light.launch.xml similarity index 56% rename from rmf_demos_ign/launch/office_mock_traffic_light.launch.xml rename to rmf_demos_gz_classic/launch/office_mock_traffic_light.launch.xml index 081f53d8..65c429ec 100644 --- a/rmf_demos_ign/launch/office_mock_traffic_light.launch.xml +++ b/rmf_demos_gz_classic/launch/office_mock_traffic_light.launch.xml @@ -1,20 +1,18 @@ + - - - - + - + diff --git a/rmf_demos_gz_classic/launch/simulation.launch.xml b/rmf_demos_gz_classic/launch/simulation.launch.xml new file mode 100644 index 00000000..15055296 --- /dev/null +++ b/rmf_demos_gz_classic/launch/simulation.launch.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/rmf_demos_ign/launch/triple_H.launch.xml b/rmf_demos_gz_classic/launch/triple_H.launch.xml similarity index 55% rename from rmf_demos_ign/launch/triple_H.launch.xml rename to rmf_demos_gz_classic/launch/triple_H.launch.xml index df46ecba..925f8dc3 100644 --- a/rmf_demos_ign/launch/triple_H.launch.xml +++ b/rmf_demos_gz_classic/launch/triple_H.launch.xml @@ -1,20 +1,18 @@ + - - - - + - + diff --git a/rmf_demos_ign/package.xml b/rmf_demos_gz_classic/package.xml similarity index 56% rename from rmf_demos_ign/package.xml rename to rmf_demos_gz_classic/package.xml index bdb53ce7..c15c8c16 100644 --- a/rmf_demos_ign/package.xml +++ b/rmf_demos_gz_classic/package.xml @@ -1,25 +1,24 @@ - rmf_demos_ign + rmf_demos_gz_classic 1.4.0 - Launch files for RMF demos using the Ignition simulator + Launch files for RMF demos using the Gazebo-classic simulator Yadunund - Luca Della Vedova Marco A. GutiƩrrez Apache License 2.0 ament_cmake rmf_demos - rmf_building_sim_ignition_plugins - rmf_robot_sim_ignition_plugins - teleop_twist_keyboard - launch_xml - ignition-fortress + rmf_building_sim_gz_classic_plugins + rmf_robot_sim_gz_classic_plugins - ros_ign_bridge + joy + teleop_twist_joy + launch_xml + gazebo_plugins ament_cmake diff --git a/rmf_demos_ign/QUALITY_DECLARATION.md b/rmf_demos_ign/QUALITY_DECLARATION.md deleted file mode 100644 index 9fc9f48a..00000000 --- a/rmf_demos_ign/QUALITY_DECLARATION.md +++ /dev/null @@ -1,156 +0,0 @@ -This document is a declaration of software quality for the `rmf_demos_ign` package, based on the guidelines in [REP-2004](https://www.ros.org/reps/rep-2004.html). - -# `rmf_demos_ign` Quality Declaration - -The package `rmf_demos_ign` claims to be in the **Quality Level 4** category. -The main rationale for this claim its its status as a collection of demonstration launch files. - -Below are the detailed rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Requirements for Quality Level 3 in REP-2004](https://www.ros.org/reps/rep-2004.html). - -## Version Policy [1] - -### Version Scheme [1.i] - -`rmf_demos_ign` uses `semver` according to the recommendation for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#versioning). - -### Version Stability [1.ii] - -`rmf_demos_ign` is at a stable version, i.e. `>= 1.0.0`. -The current version can be found in its [package.xml](package.xml), and its change history can be found in its [CHANGELOG](CHANGELOG.rst). - -### Public API Declaration [1.iii] - -`rmf_demos_ign` does not have a public API. - -### API Stability Policy [1.iv] - -`rmf_demos_ign` does not have a public API. - -### ABI Stability Policy [1.v] - -`rmf_demos_ign` does not have a public API. - -### API and ABI Stability Within a Released ROS Distribution [1.vi] - -`rmf_demos_ign` does not have a public API. - -## Change Control Process [2] - -`rmf_demos_ign` follows the recommended guidelines for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-requirements). - -### Change Requests [2.i] - -`rmf_demos_ign` requires that all changes occur through a pull request. - -### Contributor Origin [2.ii] - -`rmf_demos_ign` uses DCO as its confirmation of contributor origin policy. More information can be found in [CONTRIBUTING](../CONTRIBUTING.md). - -### Peer Review Policy [2.iii] - -All pull requests must have at least 1 peer review. - -### Continuous Integration [2.iv] - -All pull requests must pass CI on all platforms supported by RMF. -The CI checks only that the package builds. -The most recent CI results can be seen on [the workflow page](https://github.com/open-rmf/rmf_demos/actions). - -### Documentation Policy [2.v] - -All pull requests must resolve related documentation changes before merging. - -## Documentation [3] - -### Feature Documentation [3.i] - -`rmf_demos_ign` is documented in the [parent repository's README.md file](../README.md). - -### Public API Documentation [3.ii] - -`rmf_demos_ign` does not have a public API. - -### License [3.iii] - -The license for `rmf_demos_ign` is Apache 2.0, the type is declared in the [package.xml](package.xml) manifest file, and a full copy of the license is in the repository level [LICENSE](../LICENSE) file. - -There are no source files that are currently copyrighted in this package so files are not checked for abbreviated license statements. - -### Copyright Statement [3.iv] - -There are no copyrighted source files in this package. - -### Quality declaration document [3.v] - -This quality declaration is linked in the [README file](README.md). - -This quality declaration has not been externally peer-reviewed and is not registered on any Level 3 lists. - -## Testing [4] - -### Feature Testing [4.i] - -`rmf_demos_ign` is a package providing strictly launch files and therefore does not require associated tests. - -### Public API Testing [4.ii] - -`rmf_demos_ign` is a package providing strictly launch files and therefore does not require associated tests. - -### Coverage [4.iii] - -`rmf_demos_ign` is a package providing strictly launch files and therefore does not require associated tests. - -### Performance [4.iv] - -`rmf_demos_ign` is a package providing strictly launch files and therefore does not require associated tests. - -### Linters and Static Analysis [4.v] - -`rmf_demos_ign` does not use the [standard linters and static analysis tools](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#linters). - -## Dependencies [5] - -### Direct Runtime ROS Dependencies [5.i] - -`rmf_demos_ign` has the following runtime ROS dependencies. - -#### rmf_building_sim_ignition_plugins - -`rmf_building_sim_ignition_plugins` is at [**Quality Level 4**](https://github.com/open-rmf/rmf_simulation/blob/main/rmf_building_sim_ignition_plugins/QUALITY_DECLARATION.md). - -#### rmf_robot_sim_ignition_plugins - -`rmf_robot_sim_ignition_plugins` is at [**Quality Level 4**](https://github.com/open-rmf/rmf_simulation/blob/main/rmf_robot_sim_ignition_plugins/QUALITY_DECLARATION.md). - -#### teleop_twist_keyboard - -`teleop_twist_keyboard` does not declare a Quality Level. -It is assumed tobe at **Quality Level 4** based on its widespread use. - -#### launch_xml - -`launch_xml` does not declare a Quality Level. -It is assumed tobe at **Quality Level 4** based on its widespread use. - -#### ros_ign_bridge - -`ros_ign_bridge` does not declare a Quality Level. -It is assumed tobe at **Quality Level 4** based on its widespread use. - -### Optional Direct Runtime ROS Dependencies [5.ii] - -`rmf_demos_ign` does not have any optional direct runtime ROS dependencies. - -### Direct Runtime non-ROS Dependency [5.iii] - -`rmf_demos_ign` does not have any runtime non-ROS dependencies. - -## Platform Support [6] - -As a pure message and service definitions package, `rmf_demos_ign` supports all of the tier 1 platforms as described in [REP-2000](https://www.ros.org/reps/rep-2000.html#support-tiers), but does not currently test each change against all of them. - -## Security [7] - -### Vulnerability Disclosure Policy [7.i] - -This package conforms to the Vulnerability Disclosure Policy in [REP-2006](https://www.ros.org/reps/rep-2006.html). diff --git a/rmf_demos_ign/launch/include/airport_terminal/airport_terminal_caddy.launch.xml b/rmf_demos_ign/launch/include/airport_terminal/airport_terminal_caddy.launch.xml deleted file mode 100644 index 71ebfd17..00000000 --- a/rmf_demos_ign/launch/include/airport_terminal/airport_terminal_caddy.launch.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/rmf_demos_ign/launch/simulation.launch.xml b/rmf_demos_ign/launch/simulation.launch.xml deleted file mode 100644 index 5cc1aa03..00000000 --- a/rmf_demos_ign/launch/simulation.launch.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/rmf_demos_panel/README.md b/rmf_demos_panel/README.md index 82fbc03d..f60d4a32 100644 --- a/rmf_demos_panel/README.md +++ b/rmf_demos_panel/README.md @@ -1,6 +1,6 @@ ## RMF Demos Panel Here we describe additional details of `rmf_demos_panel`. This package uses a simple web server -to expose the essential RMF topics/services to users as web endpoints. Currently, this lite implementation is +to expose the essential RMF topics/services to users as web endpoints. Currently, this lite implementation is useful for task submission and observing status of on-going tasks and robots in RMF. **For a full-proof web application of RMF, please refer to [rmf-web](https://github.com/open-rmf/rmf-web).** @@ -19,12 +19,12 @@ python3 -m pip install flask-socketio colcon build --packages-select rmf_demos_panel ``` -## Run +## Run Test Run with office world 1. Start Office World ```bash -ros2 launch rmf_demos_gz office.launch.xml +ros2 launch rmf_demos_gz_classic office.launch.xml ``` #### Simple CURL Test @@ -33,7 +33,7 @@ ros2 launch rmf_demos_gz office.launch.xml # Submit Task (POST) curl -X POST http://localhost:8083/submit_task \ -d '{"task_type":"Loop", "start_time":0, "description": {"start_name": "coe", "finish_name": "pantry", "num_loops":1}}' \ --H "Content-Type: application/json" +-H "Content-Type: application/json" # Get Task List (GET) curl http://localhost:8083/task_list @@ -41,7 +41,7 @@ curl http://localhost:8083/task_list #### rmf-panel-js - + A front end dashboard, [rmf-panel-js](https://github.com/open-rmf/rmf-panel-js) is also provided. This will will be the client for the rmf_demos's api server. @@ -66,8 +66,8 @@ Endpoints | Type | Parameters | Description ## Run Sample Tasks **Submit a list of tasks*** -On the right side column of the panel, users are able to select a file which consists of a list of -tasks. Example. for office world, load `rmf_demos_tasks/rmf_demos_tasks/office_tasks.json`. +On the right side column of the panel, users are able to select a file which consists of a list of +tasks. Example. for office world, load `rmf_demos_tasks/rmf_demos_tasks/office_tasks.json`. Once the tasks are populated in the box, hit submit! More details on the format for the `.json` file is presented below.