From d54d222a9e0886d8e5e44a50dafc34f914c81225 Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Fri, 11 Aug 2023 12:44:22 +0200 Subject: [PATCH 01/18] made into ros package, removed old stuff --- .github/workflows/docker_with_linux_setup.yml | 35 ----- .../docker_with_linux_setup_modules.yml | 35 ----- .../workflows/docker_without_linux_setup.yml | 35 ----- .../docker_without_linux_setup_modules.yml | 35 ----- .github/workflows/noetic.yml | 46 ------ .github/workflows/ros_package_build.yml | 22 +++ CMakeLists.txt | 15 ++ README.md | 61 +------- dependencies/git_lfs.sh | 13 -- dependencies/gitman.sh | 26 ---- dependencies/ros.sh | 34 ----- docker/brute_mrs | 37 ----- docker/build.sh | 7 - docker/with_linux_setup | 30 ---- docker/with_linux_setup_modules | 32 ----- docker/without_linux_setup | 30 ---- docker/without_linux_setup_modules | 32 ----- install.sh | 134 ------------------ package.xml | 23 +++ scripts/mrs_certificate.sh | 14 -- scripts/set_mrs_workspace.sh | 102 ------------- scripts/set_my_workspace.sh | 96 ------------- 22 files changed, 66 insertions(+), 828 deletions(-) delete mode 100644 .github/workflows/docker_with_linux_setup.yml delete mode 100644 .github/workflows/docker_with_linux_setup_modules.yml delete mode 100644 .github/workflows/docker_without_linux_setup.yml delete mode 100644 .github/workflows/docker_without_linux_setup_modules.yml delete mode 100644 .github/workflows/noetic.yml create mode 100644 .github/workflows/ros_package_build.yml create mode 100644 CMakeLists.txt delete mode 100755 dependencies/git_lfs.sh delete mode 100755 dependencies/gitman.sh delete mode 100755 dependencies/ros.sh delete mode 100644 docker/brute_mrs delete mode 100755 docker/build.sh delete mode 100644 docker/with_linux_setup delete mode 100644 docker/with_linux_setup_modules delete mode 100644 docker/without_linux_setup delete mode 100644 docker/without_linux_setup_modules delete mode 100755 install.sh create mode 100644 package.xml delete mode 100755 scripts/mrs_certificate.sh delete mode 100755 scripts/set_mrs_workspace.sh delete mode 100755 scripts/set_my_workspace.sh diff --git a/.github/workflows/docker_with_linux_setup.yml b/.github/workflows/docker_with_linux_setup.yml deleted file mode 100644 index 05821f7..0000000 --- a/.github/workflows/docker_with_linux_setup.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Docker_with_LS - -on: - schedule: - - cron: '0 2 * * *' # at the end of every day - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -jobs: - - cancel: - - name: Cancel Previous Runs - runs-on: ubuntu-latest - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 - with: - access_token: ${{ github.token }} - - build: - runs-on: ubuntu-latest - env: - GITHUB_CI: true - TOKEN: ${{ secrets.DOCKERHUB }} - steps: - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 - with: - fetch-depth: 0 # fetch the whole history - - - name: Docker - run: ./.ci/docker_with_linux_setup.sh diff --git a/.github/workflows/docker_with_linux_setup_modules.yml b/.github/workflows/docker_with_linux_setup_modules.yml deleted file mode 100644 index a5b39dc..0000000 --- a/.github/workflows/docker_with_linux_setup_modules.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Docker_with_LS_Modules - -on: - schedule: - - cron: '0 4 * * *' # at the end of every day - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -jobs: - - cancel: - - name: Cancel Previous Runs - runs-on: ubuntu-latest - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 - with: - access_token: ${{ github.token }} - - build: - runs-on: ubuntu-latest - env: - GITHUB_CI: true - TOKEN: ${{ secrets.DOCKERHUB }} - steps: - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 - with: - fetch-depth: 0 # fetch the whole history - - - name: Docker - run: ./.ci/docker_with_linux_setup_modules.sh diff --git a/.github/workflows/docker_without_linux_setup.yml b/.github/workflows/docker_without_linux_setup.yml deleted file mode 100644 index 3dca860..0000000 --- a/.github/workflows/docker_without_linux_setup.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Docker_without_LS - -on: - schedule: - - cron: '0 2 * * *' # at the end of every day - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -jobs: - - cancel: - - name: Cancel Previous Runs - runs-on: ubuntu-latest - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 - with: - access_token: ${{ github.token }} - - build: - runs-on: ubuntu-latest - env: - GITHUB_CI: true - TOKEN: ${{ secrets.DOCKERHUB }} - steps: - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 - with: - fetch-depth: 0 # fetch the whole history - - - name: Docker - run: ./.ci/docker_without_linux_setup.sh diff --git a/.github/workflows/docker_without_linux_setup_modules.yml b/.github/workflows/docker_without_linux_setup_modules.yml deleted file mode 100644 index 1588c35..0000000 --- a/.github/workflows/docker_without_linux_setup_modules.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: Docker_without_LS_Modules - -on: - schedule: - - cron: '0 4 * * *' # at the end of every day - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -jobs: - - cancel: - - name: Cancel Previous Runs - runs-on: ubuntu-latest - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 - with: - access_token: ${{ github.token }} - - build: - runs-on: ubuntu-latest - env: - GITHUB_CI: true - TOKEN: ${{ secrets.DOCKERHUB }} - steps: - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 - with: - fetch-depth: 0 # fetch the whole history - - - name: Docker - run: ./.ci/docker_without_linux_setup_modules.sh diff --git a/.github/workflows/noetic.yml b/.github/workflows/noetic.yml deleted file mode 100644 index 0dccd13..0000000 --- a/.github/workflows/noetic.yml +++ /dev/null @@ -1,46 +0,0 @@ -name: Noetic - -on: - push: - branches: [ master ] - paths-ignore: - - '**/README.md' - - '**.jpg' - - '**.png' - pull_request: - branches: [ master ] - - schedule: - - cron: '0 0 * * *' # at the end of every day - - # Allows you to run this workflow manually from the Actions tab - workflow_dispatch: - -jobs: - - cancel: - - name: Cancel Previous Runs - runs-on: ubuntu-latest - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.11.0 - with: - access_token: ${{ github.token }} - - build: - runs-on: ubuntu-20.04 - env: - GITHUB_CI: true - steps: - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 - with: - fetch-depth: 0 # fetch the whole history - - - name: Install - run: ./.ci/install.sh - - - name: Test - run: ./.ci/test.sh diff --git a/.github/workflows/ros_package_build.yml b/.github/workflows/ros_package_build.yml new file mode 100644 index 0000000..3801a50 --- /dev/null +++ b/.github/workflows/ros_package_build.yml @@ -0,0 +1,22 @@ +name: ros_package_build + +on: + + push: + branches: [ 1.5 ] + + pull_request: + branches: [ 1.5 ] + + workflow_dispatch: + +concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + +jobs: + + build: + uses: ctu-mrs/ci_scripts/.github/workflows/ros_package_build.yml@master + secrets: + PUSH_TOKEN: ${{ secrets.PUSH_TOKEN }} diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..47b2d86 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.5) +project(mrs_uav_system) + +set(CATKIN_DEPENDENCIES + cmake_modules + rospy + ) + +find_package(catkin REQUIRED COMPONENTS + ${CATKIN_DEPENDENCIES} + ) + +catkin_package( + CATKIN_DEPENDS ${CATKIN_DEPENDENCIES} + ) diff --git a/README.md b/README.md index 70ec399..488cdc7 100644 --- a/README.md +++ b/README.md @@ -12,14 +12,7 @@ Thus our platform is built to allow safe verification of approaches in planning, These meta-repositories aggregate related packages. -| Component | 20.04 | Description | -|---------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------| -| [mrs_uav_system](https://github.com/ctu-mrs/mrs_uav_system) | [![Build Status](https://github.com/ctu-mrs/mrs_uav_system/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/mrs_uav_system/actions) | Integrates [uav_core](https://github.com/ctu-mrs/uav_core) and [simulation](https://github.com/ctu-mrs/simulation) | -| [uav_core](https://github.com/ctu-mrs/uav_core) | [![Build Status](https://github.com/ctu-mrs/uav_core/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/uav_core/actions) | The minimum needed to fly a drone | -| [simulation](https://github.com/ctu-mrs/simulation) | [![Build Status](https://github.com/ctu-mrs/simulation/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/simulation/actions) | Simulation resources | -| [uav_modules](https://github.com/ctu-mrs/uav_modules) | [![Build Status](https://github.com/ctu-mrs/uav_modules/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/uav_modules/actions) | Optional UAV modules, drivers and utils | -| [octomap_mapping_planning](https://github.com/ctu-mrs/octomap_mapping_planning) | [![Build Status](https://github.com/ctu-mrs/octomap_mapping_planning/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/octomap_mapping_planning/actions) | Octomap Mapping & Planning for UAVs | -| [linux-setup](https://github.com/klaxalk/linux-setup) | [![Build Status](https://github.com/klaxalk/linux-setup/workflows/Focal/badge.svg)](https://github.com/klaxalk/linux-setup/actions) | Tomas's Linux configuration | +TODO ## System properties @@ -27,7 +20,7 @@ The platform is * built using [Robot Operating System](https://www.ros.org/) Noetic, * meant to be executed entirely onboard, -* can be deployed on any multi-rotor vehicle, given it is equipped with a [PX4](https://github.com/ctu-mrs/px4_firmware)-compatible [flight controller](https://pixhawk.org/), +* can be deployed on any multi-rotor vehicle, given TODO * for both indoor and outdoor, * supports multi-robot experiments using [Nimbro network](https://github.com/ctu-mrs/nimbro_network) communication. * provides both: agile flying and robust control. @@ -112,9 +105,12 @@ Recent changes requiring user action: ## Installation +### Native installation + +TODO + ### Singularity and Docker -Singularity images with our system are the preferred way how a _normal_ user should interract with our system. Please, follow this link to learn how to run our system using Singularity. * [MRS Singularity](https://github.com/ctu-mrs/mrs_singularity/) @@ -124,51 +120,6 @@ The following link points to our Docker HUB organization. * [Docker Images](https://hub.docker.com/u/ctumrs) -### Native installation (not recommended) - -Native installation is supported via a set of automated install scripts. -**Beware** the installation will take a **lot of disk space**, is **difficult to remove** from the computer, and is often **difficult to upgrade**. -The native installation is intended mostly for real drones. -Most people should use [MRS Singularity](https://github.com/ctu-mrs/mrs_singularity) for working with the MRS system! - -In the you want a native installation case we provide installation scripts that set everything up for you. -Our automated install script will: -* install Robot Operating System (ROS), -* install other dependencies such *git*, *gitman*, -* clone [uav_core](https://github.com/ctu-mrs/uav_core), [simulation](https://github.com/ctu-mrs/simulation), [example_ros_packages](https://github.com/ctu-mrs/example_ros_packages) into *~/git*, -* install more dependencies such as *tmux* and *tmuxinator* -* create our ros workspace ([guide](https://ctu-mrs.github.io/docs/software/catkin/managing_workspaces/managing_workspaces.html)) in ```~/mrs_workspace``` for the *uav_core* and *simulation*, -* create a ros workspace in ```~/workspace``` for *examples* ([guide](https://ctu-mrs.github.io/docs/software/catkin/managing_workspaces/managing_workspaces.html)), -* link our packages to the workspaces ([guide](https://ctu-mrs.github.io/docs/software/catkin/managing_workspaces/managing_workspaces.html)), -* compile the workspaces, -* add configuration lines into your *~/.bashrc*. - -To start the automatic installation, please paste the following code into your terminal and press **enter**. -You might be prompted a few times to confirm something by pressing enter: -```bash -cd /tmp -echo ' -GIT_PATH=~/git -mkdir -p $GIT_PATH -cd $GIT_PATH -sudo apt-get -y install git -git clone https://github.com/ctu-mrs/mrs_uav_system -cd mrs_uav_system -git checkout master -git pull -./install.sh -g $GIT_PATH -source ~/.bashrc' > clone.sh && source clone.sh -``` - -#### "I already have ROS and just want to peek in" - -If you already have ROS installed and if you are fluent with *workspaces*, *.bashrc*, *catkin tools*, etc., feel free to clone our repositories individually. -The [uav_core](https://github.com/ctu-mrs/uav_core) repository integrates our UAV control system. -Please follow its README for further instructions on how to install its particular dependencies. - -The [simulation](https://github.com/ctu-mrs/simulation) repository provides resources for *Gazebo/ROS* simulation, including px4 Simulation-in-the-Loop (SITL), UAV models and useful sensor plugins. -Please follow its README for further instructions on how to install prerequisities. - #### "I want the Linux environment people from MRS works with" Great! In that case you want to install Tomas's Linux-setup. diff --git a/dependencies/git_lfs.sh b/dependencies/git_lfs.sh deleted file mode 100755 index 146ea67..0000000 --- a/dependencies/git_lfs.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -set -e - -trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG -trap 'echo "$0: \"${last_command}\" command failed with exit code $?"' ERR - -echo "$0: installing git Large File Stograge (LFS) support" - -sudo apt-get -y install software-properties-common -sudo curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash -sudo apt-get -y install git-lfs -git lfs install diff --git a/dependencies/gitman.sh b/dependencies/gitman.sh deleted file mode 100755 index 3a9a920..0000000 --- a/dependencies/gitman.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -set -e - -trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG -trap 'echo "$0: \"${last_command}\" command failed with exit code $?"' ERR - -echo "$0: installing Gitman" - -distro=`lsb_release -r | awk '{ print $2 }'` - -if [ "$distro" = "18.04" ]; then - - sudo apt-get -y install python-pip python3-pip python-setuptools python3-setuptools - - sudo pip3 install gitman - sudo -H pip3 install gitman - -elif [ "$distro" = "20.04" ]; then - - sudo apt-get -y install python3-pip python3-setuptools - - sudo pip3 install gitman - sudo -H pip3 install gitman - -fi diff --git a/dependencies/ros.sh b/dependencies/ros.sh deleted file mode 100755 index 3406087..0000000 --- a/dependencies/ros.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash - -set -e - -trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG -trap 'echo "$0: \"${last_command}\" command failed with exit code $?"' ERR - -sudo apt-get -y install wget lsb-release gnupg curl - -distro=`lsb_release -r | awk '{ print $2 }'` -[ "$distro" = "18.04" ] && ROS_DISTRO="melodic" -[ "$distro" = "20.04" ] && ROS_DISTRO="noetic" - -debian=`lsb_release -d | grep -i debian | wc -l` -[[ "$debian" -eq "1" ]] && ROS_DISTRO="noetic" - -echo "$0: Installing ROS" - -sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' - -curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - - -sudo apt-get -y update - -sudo apt-get -y install ros-$ROS_DISTRO-desktop-full - -num=`cat ~/.bashrc | grep "/opt/ros/$ROS_DISTRO/setup.bash" | wc -l` -if [ "$num" -lt "1" ]; then - - # set bashrc - echo " -source /opt/ros/$ROS_DISTRO/setup.bash" >> ~/.bashrc - -fi diff --git a/docker/brute_mrs b/docker/brute_mrs deleted file mode 100644 index 75b8623..0000000 --- a/docker/brute_mrs +++ /dev/null @@ -1,37 +0,0 @@ -FROM brute/brute_base:latest - -RUN echo building docker image - -ARG DOCKER=true -ARG MRS_PATH=/opt/mrs - -# fixes prompts during apt installations -RUN echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections -RUN sudo apt-get install -y -q - -RUN sudo apt-get -y update && sudo apt-get -y install git - -# clone MRS UAV System -RUN mkdir -p $MRS_PATH/git && cd $MRS_PATH/git && git clone https://github.com/ctu-mrs/mrs_uav_system - -# install MRS UAV System -RUN \ - cd $MRS_PATH/git/mrs_uav_system && \ - ./install.sh -g $MRS_PATH/git -l $MRS_PATH --no-build --my-workspace=false && \ - sudo apt-get -y install vim && \ - pip3 install ansi2html && \ - rm -rf /var/lib/apt/lists/* && \ - cd $MRS_PATH/mrs_workspace/src && \ - git clone https://github.com/ctu-mrs/mrs_utils && \ - cd $MRS_PATH/mrs_workspace && \ - catkin config --install && \ - catkin build --limit-status-rate 0.2 --summarize && \ - rm -rf $MRS_PATH/mrs_workspace/build && \ - rm -rf $MRS_PATH/mrs_workspace/devel && \ - rm -rf $MRS_PATH/git/uav_core/.gitman && \ - rm -rf $MRS_PATH/git/simulation/.gitman && \ - sudo apt-get -y remove --purge gcc-arm-none-eabi && \ - sudo apt-get -y autoremove && \ - rm -rf /var/lib/apt/lists/* - -CMD ["bash"] diff --git a/docker/build.sh b/docker/build.sh deleted file mode 100755 index 143c48d..0000000 --- a/docker/build.sh +++ /dev/null @@ -1,7 +0,0 @@ -# get the path to this script -MY_PATH=`dirname "$0"` -MY_PATH=`( cd "$MY_PATH" && pwd )` - -cd $MY_PATH - -docker build -f ./without_linux_setup -t ctumrs/mrs_uav_system:latest . diff --git a/docker/with_linux_setup b/docker/with_linux_setup deleted file mode 100644 index 288ca6a..0000000 --- a/docker/with_linux_setup +++ /dev/null @@ -1,30 +0,0 @@ -FROM klaxalk/linux-setup:master - -ARG DOCKER=true -ARG mrs_path=/opt/mrs - -# fixes prompts during apt installations -RUN echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections -RUN sudo apt-get install -y -q - -RUN sudo apt-get -y update - -# clone and install MRS UAV System -RUN mkdir -p $mrs_path/git && cd $mrs_path/git && git clone https://github.com/ctu-mrs/mrs_uav_system - -RUN \ - cd $mrs_path/git/mrs_uav_system && \ - ./install.sh -g $mrs_path/git -l $mrs_path --no-build --my-workspace=false && \ - rm -rf /var/lib/apt/lists/* && \ - cd $mrs_path/mrs_workspace/ && \ - catkin config --install && \ - catkin build --limit-status-rate 0.2 --summarize && \ - rm -rf $mrs_path/mrs_workspace/build && \ - rm -rf $mrs_path/mrs_workspace/devel && \ - rm -rf $mrs_path/git/uav_core/.gitman && \ - rm -rf $mrs_path/git/simulation/.gitman && \ - sudo apt-get -y remove --purge gcc-arm-none-eabi && \ - sudo apt-get -y autoremove && \ - rm -rf /var/lib/apt/lists/* - -CMD ["bash"] diff --git a/docker/with_linux_setup_modules b/docker/with_linux_setup_modules deleted file mode 100644 index 0797ef1..0000000 --- a/docker/with_linux_setup_modules +++ /dev/null @@ -1,32 +0,0 @@ -FROM ctumrs/mrs_uav_system_ls:latest - -ARG DOCKER=true -ARG mrs_path=/opt/mrs - -# fixes prompts during apt installations -RUN echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections -RUN sudo apt-get install -y -q - -RUN sudo apt-get -y update - -# clone and install UAV Modules -RUN \ - mkdir -p $mrs_path/git && \ - cd $mrs_path/git && \ - git clone https://github.com/ctu-mrs/uav_modules && \ - cd $mrs_path/git/uav_modules - -RUN \ - cd $mrs_path/git/uav_modules && \ - gitman install && \ - $mrs_path/git/uav_modules/installation/install.sh --unattended && \ - $mrs_path/git/uav_modules/installation/set_modules_workspace.sh -g $mrs_path/git -l $mrs_path -n && \ - cd $mrs_path/modules_workspace && \ - catkin config --install && \ - catkin build --limit-status-rate 0.2 --summarize && \ - rm -rf $mrs_path/modules_workspace/build && \ - rm -rf $mrs_path/modules_workspace/devel && \ - rm -rf $mrs_path/git/uav_modules/.gitman && \ - rm -rf /var/lib/apt/lists/* - -CMD ["bash"] diff --git a/docker/without_linux_setup b/docker/without_linux_setup deleted file mode 100644 index 44d2f63..0000000 --- a/docker/without_linux_setup +++ /dev/null @@ -1,30 +0,0 @@ -FROM ros:noetic - -ARG DOCKER=true -ARG mrs_path=/opt/mrs - -# fixes prompts during apt installations -RUN echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections -RUN sudo apt-get install -y -q - -RUN sudo apt-get -y update && sudo apt-get -y install git - -# clone and install MRS UAV System -RUN mkdir -p $mrs_path/git && cd $mrs_path/git && git clone https://github.com/ctu-mrs/mrs_uav_system - -RUN \ - cd $mrs_path/git/mrs_uav_system && \ - ./install.sh -g $mrs_path/git -l $mrs_path --no-build --my-workspace=false && \ - rm -rf /var/lib/apt/lists/* && \ - cd $mrs_path/mrs_workspace/ && \ - catkin config --install && \ - catkin build --limit-status-rate 0.2 --summarize && \ - rm -rf $mrs_path/mrs_workspace/build && \ - rm -rf $mrs_path/mrs_workspace/devel && \ - rm -rf $mrs_path/git/uav_core/.gitman && \ - rm -rf $mrs_path/git/simulation/.gitman && \ - sudo apt-get -y remove --purge gcc-arm-none-eabi && \ - sudo apt-get -y autoremove && \ - rm -rf /var/lib/apt/lists/* - -CMD ["bash"] diff --git a/docker/without_linux_setup_modules b/docker/without_linux_setup_modules deleted file mode 100644 index 020382b..0000000 --- a/docker/without_linux_setup_modules +++ /dev/null @@ -1,32 +0,0 @@ -FROM ctumrs/mrs_uav_system:latest - -ARG DOCKER=true -ARG mrs_path=/opt/mrs - -# fixes prompts during apt installations -RUN echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections -RUN sudo apt-get install -y -q - -RUN sudo apt-get -y update && sudo apt-get -y install git - -# clone and install UAV Modules -RUN \ - mkdir -p $mrs_path/git && \ - cd $mrs_path/git && \ - git clone https://github.com/ctu-mrs/uav_modules && \ - cd $mrs_path/git/uav_modules - -RUN \ - cd $mrs_path/git/uav_modules && \ - gitman install && \ - $mrs_path/git/uav_modules/installation/install.sh --unattended && \ - $mrs_path/git/uav_modules/installation/set_modules_workspace.sh -g $mrs_path/git -l $mrs_path -n && \ - cd $mrs_path/modules_workspace && \ - catkin config --install && \ - catkin build --limit-status-rate 0.2 --summarize && \ - rm -rf $mrs_path/modules_workspace/build && \ - rm -rf $mrs_path/modules_workspace/devel && \ - rm -rf $mrs_path/git/uav_modules/.gitman && \ - rm -rf /var/lib/apt/lists/* - -CMD ["bash"] diff --git a/install.sh b/install.sh deleted file mode 100755 index dbccfb0..0000000 --- a/install.sh +++ /dev/null @@ -1,134 +0,0 @@ -#!/bin/bash - -set -e - -trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG -trap 'echo "$0: \"${last_command}\" command failed with exit code $?"' ERR - -# get the path to this script -MY_PATH=`dirname "$0"` -MY_PATH=`( cd "$MY_PATH" && pwd )` - -cd $MY_PATH - -# shift -OPTIND=1 -MY_WORKSPACE=true -NO_BUILD="" -while getopts "g:l:nm:-:" options; do - if [ "${options}" = "-" ]; then # long option: reformulate OPT and OPTARG - options="${OPTARG%%=*}" # extract long option name - echo "option $options" - OPTARG="${OPTARG#$options}" # extract long option argument (may be empty) - OPTARG="${OPTARG#=}" # if long option argument, remove assigning `=` - fi - case ${options} in - g) - GIT_PATH=${OPTARG} - echo "Parsed GIT_PATH=$GIT_PATH" - ;; - l) - WORKSPACE_LOCATION=${OPTARG} - echo "Parsed WORKSPACE_LOCATION=$WORKSPACE_LOCATION" - ;; - n | no-build) - NO_BUILD=" -n" - echo "NO_BUILD=true" - ;; - m | my-workspace) - [[ ${OPTARG} == "false" ]] && MY_WORKSPACE=false - echo "MY_WORKSPACE=$MY_WORKSPACE" - ;; - esac -done - -sudo apt-get install -y bc - -n_cpu=`nproc --all` -RAM_size=`grep MemTotal /proc/meminfo | awk '{print $2}' | xargs -I {} echo "scale=2; {}/1024^2" | bc -l` -SWAP_size=`grep SwapTotal /proc/meminfo | awk '{print $2}' | xargs -I {} echo "scale=2; {}/1024^2" | bc -l` - -total_available_memory=`echo $RAM_size + $SWAP_size | bc -l` -safe_rate_of_memory=`echo $n_cpu*2.5 | bc -l` - -if (( $(echo "$safe_rate_of_memory > $total_available_memory" |bc -l) )); then - recommended_swap_size=`echo $safe_rate_of_memory - $RAM_size | bc -l` - rounded_recommended_swap_size=`echo "$recommended_swap_size"+1 | bc -l | awk '{print int($1)}'` - echo "" - echo -e "\033[31m----------------------------------------------------------------------------------------------\033[0m" - echo -e "\033[31mInstallation can fail during compilation of the MRS system due to not sufficient RAM+SWAP memory\033[0m" - echo -e "\033[31m We recommend to have roughtly RAM+SWAP >= 2.5*number_of_cpu\033[0m" - echo -e "\033[31m -----------------------------------------------------------\033[0m" - echo -e "\033[31m Your number_of_cpu : $n_cpu\033[0m" - echo -e "\033[31m Your RAM size : $RAM_size GB\033[0m" - echo -e "\033[31m Your SWAP size : $SWAP_size GB\033[0m" - echo -e "\033[31m----------------------------------------------------------------------------------------------\033[0m" - echo -e "\033[31mIf so, please increase SWAP to the recommended size, which is $recommended_swap_size GB\033[0m." - echo -e "\033[31mTo create $rounded_recommended_swap_size GB SWAP, follow these steps:\033[0m" - echo -e "\033[31m-----------------------------------------------------------\033[0m" - echo -e "\033[31msudo swapoff -a\033[0m" - echo -e "\033[31msudo dd if=/dev/zero of=/swapfile bs=1GB count=$rounded_recommended_swap_size\033[0m" - echo -e "\033[31msudo chmod 600 /swapfile\033[0m" - echo -e "\033[31msudo mkswap /swapfile\033[0m" - echo -e "\033[31msudo swapon /swapfile\033[0m" - echo -e "\033[31mgrep SwapTotal /proc/meminfo\033[0m" - echo -e "\033[31m-----------------------------------------------------------\033[0m" - echo "" - echo "Press Enter to continue..." - echo "" - [ -z "$GITHUB_CI" ] && [ ! $DOCKER ] && read -fi - -[ -z "$GIT_PATH" ] && GIT_PATH=$HOME/git -[ -z "$WORKSPACE_LOCATION" ] && WORKSPACE_LOCATION=$HOME - -echo "Installation started WORKSPACE_LOCATION=$WORKSPACE_LOCATION, GIT_PATH=$GIT_PATH" - -## | ----------------------- install ROS ---------------------- | - -bash $MY_PATH/dependencies/ros.sh - -## | --------------------- install gitman --------------------- | - -bash $MY_PATH/dependencies/gitman.sh - -## | ------------------ crate the git folder ------------------ | - -[ ! -e "$GIT_PATH" ] && echo "$0: creating $GIT_PATH" && mkdir -p $GIT_PATH - -## | -------------------- cloning packages -------------------- | - -cd "$GIT_PATH" - -[ ! -e "$GIT_PATH/uav_core" ] && git clone https://github.com/ctu-mrs/uav_core -[ ! -e "$GIT_PATH/simulation" ] && git clone https://github.com/ctu-mrs/simulation -[ ! -e "$GIT_PATH/example_ros_packages" ] && git clone https://github.com/ctu-mrs/example_ros_packages - -## | ------------------- installing uav_core ------------------ | - -echo "$0: installing uav_core" -$GIT_PATH/uav_core/installation/install.sh - -## | ------------------ installing simulation ----------------- | - -echo "$0: installing simulation" -$GIT_PATH/simulation/installation/install.sh - -## | ------------------- setup mrs_workspace ------------------ | - -$MY_PATH/scripts/set_mrs_workspace.sh -l $WORKSPACE_LOCATION -g $GIT_PATH $NO_BUILD - -## | --------------------- setup workspace -------------------- | - -$MY_WORKSPACE && $MY_PATH/scripts/set_my_workspace.sh -l $WORKSPACE_LOCATION -g $GIT_PATH $NO_BUILD - -## | ------- add workspaces to ROS_WORKSPACES in .bashrc ------ | - -num=`cat ~/.bashrc | grep "ROS_WORKSPACES" | wc -l` -if [ "$num" -lt "1" ]; then - - # set bashrc - echo " -export ROS_WORKSPACES=\"$WORKSPACE_LOCATION/mrs_workspace $WORKSPACE_LOCATION/workspace\"" >> ~/.bashrc - -fi diff --git a/package.xml b/package.xml new file mode 100644 index 0000000..2bf4d66 --- /dev/null +++ b/package.xml @@ -0,0 +1,23 @@ + + + + mrs_uav_system + 1.0.0 + The MRS UAV System metapackage + + Tomas Baca + Tomas Baca + + BSD 3-Clause + + catkin + + cmake_modules + rospy + + mrs_uav_core + mrs_uav_gazebo_simulation + mrs_uav_px4_api + mrs_uav_deployment + + diff --git a/scripts/mrs_certificate.sh b/scripts/mrs_certificate.sh deleted file mode 100755 index 74d0295..0000000 --- a/scripts/mrs_certificate.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -# author: Robert Penicka - -set -e - -trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG -trap 'echo "$0: \"${last_command}\" command failed with exit code $?"' ERR - -echo "Installing mrs.felk.cvut.cz certificate in order to enable https requests" -CERT_LOCATION=/tmp/mrs.crt - -echo -n | openssl s_client -connect mrs.felk.cvut.cz:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > $CERT_LOCATION -sudo cp $CERT_LOCATION /usr/local/share/ca-certificates/ -sudo update-ca-certificates diff --git a/scripts/set_mrs_workspace.sh b/scripts/set_mrs_workspace.sh deleted file mode 100755 index 5b0a9ad..0000000 --- a/scripts/set_mrs_workspace.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/bash - -set -e - -trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG -trap 'echo "$0: \"${last_command}\" command failed with exit code $?"' ERR - -distro=`lsb_release -r | awk '{ print $2 }'` -[ "$distro" = "18.04" ] && ROS_DISTRO="melodic" -[ "$distro" = "20.04" ] && ROS_DISTRO="noetic" - -debian=`lsb_release -d | grep -i debian | wc -l` -[[ "$debian" -ge "1" ]] && ROS_DISTRO="noetic" && echo we are on DEBIAN - -# shift -OPTIND=1 -NO_BUILD=false -while getopts "g:l:n" options; do - case ${options} in - g) - GIT_PATH=${OPTARG} - echo "Parsed GIT_PATH=$GIT_PATH" - ;; - l) - WORKSPACE_LOCATION=${OPTARG} - echo "Parsed WORKSPACE_LOCATION=$WORKSPACE_LOCATION" - ;; - n) - NO_BUILD=true - echo "NO_BUILD=true" - ;; - esac -done - -[ -z "$WORKSPACE_LOCATION" ] && WORKSPACE_LOCATION="$HOME" -[ -z "$GIT_PATH" ] && GIT_PATH="$HOME/git" - -echo "Setting up workspace: WORKSPACE_LOCATION=$WORKSPACE_LOCATION, GIT_PATH=$GIT_PATH" - -# get the path to this script -APP_PATH=`dirname "$0"` -APP_PATH=`( cd "$APP_PATH" && pwd )` - -WORKSPACE_NAME=mrs_workspace -WORKSPACE_PATH=$WORKSPACE_LOCATION/$WORKSPACE_NAME - -echo "$0: creating $WORKSPACE_PATH/src" -mkdir -p $WORKSPACE_PATH/src - -cd $WORKSPACE_PATH -source /opt/ros/$ROS_DISTRO/setup.bash -command catkin init - -echo "$0: setting up build profiles" -command catkin config --profile debug --cmake-args -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_FLAGS='-std=c++17 -Og' -DCMAKE_C_FLAGS='-Og' -command catkin config --profile release --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_FLAGS='-std=c++17' -command catkin config --profile reldeb --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_FLAGS='-std=c++17' - -# build profile for normal installation -[ -z "$GITHUB_CI" ] && command catkin profile set reldeb - -# build profile for github actions -[ ! -z "$GITHUB_CI" ] && command catkin profile set debug - -command catkin config --extend /opt/ros/$ROS_DISTRO - -# link mrs repositories to the workspace -cd src -ln -sf $GIT_PATH/uav_core -ln -sf $GIT_PATH/simulation - -cd $WORKSPACE_PATH - -if ! $NO_BUILD; then - [ -z "$GITHUB_CI" ] && command catkin build mavros -c --mem-limit 75% - [ ! -z "$GITHUB_CI" ] && command catkin build mavros --limit-status-rate 0.2 --summarize - [ -z "$GITHUB_CI" ] && command catkin build mavlink_sitl_gazebo -c --mem-limit 75% - [ ! -z "$GITHUB_CI" ] && command catkin build mavlink_sitl_gazebo --limit-status-rate 0.2 --summarize - [ -z "$GITHUB_CI" ] && command catkin build mrs_gazebo_common_resources -c --mem-limit 75% - [ ! -z "$GITHUB_CI" ] && command catkin build mrs_gazebo_common_resources --limit-status-rate 0.2 --summarize - [ -z "$GITHUB_CI" ] && command catkin build -c --mem-limit 75% - [ ! -z "$GITHUB_CI" ] && command catkin build --limit-status-rate 0.2 --summarize -fi - -# blackilst our tf2 fork on melodic -if [[ "$ROS_DISTRO" == "melodic" ]]; then - - echo "Blacklisting custom tf2 due to being on melodic" - - cd $WORKSPACE_PATH - catkin config --blacklist "geometry2 test_tf2 tf2 tf2_bullet tf2_eigen tf2_geometry_msgs tf2_kdl tf2_msgs tf2_py tf2_ros tf2_sensor_msgs tf2_tools" - -fi - -num=`cat ~/.bashrc | grep "$WORKSPACE_PATH" | wc -l` -if [ "$num" -lt "1" ]; then - - # set bashrc - echo " -source $WORKSPACE_PATH/devel/setup.bash" >> ~/.bashrc - -fi diff --git a/scripts/set_my_workspace.sh b/scripts/set_my_workspace.sh deleted file mode 100755 index cb42cea..0000000 --- a/scripts/set_my_workspace.sh +++ /dev/null @@ -1,96 +0,0 @@ -#!/bin/bash - -set -e - -trap 'last_command=$current_command; current_command=$BASH_COMMAND' DEBUG -trap 'echo "$0: \"${last_command}\" command failed with exit code $?"' ERR - -distro=`lsb_release -r | awk '{ print $2 }'` -[ "$distro" = "18.04" ] && ROS_DISTRO="melodic" -[ "$distro" = "20.04" ] && ROS_DISTRO="noetic" - -debian=`lsb_release -d | grep -i debian | wc -l` -[[ "$debian" -eq "1" ]] && ROS_DISTRO="noetic" - -# shift -OPTIND=1 -NO_BUILD=false -while getopts "g:l:n" options; do - case ${options} in - g) - GIT_PATH=${OPTARG} - echo "Parsed GIT_PATH=$GIT_PATH" - ;; - l) - WORKSPACE_LOCATION=${OPTARG} - echo "Parsed WORKSPACE_LOCATION=$WORKSPACE_LOCATION" - ;; - n) - NO_BUILD=true - echo "NO_BUILD=true" - ;; - esac -done - -[ -z "$WORKSPACE_LOCATION" ] && WORKSPACE_LOCATION="$HOME" -[ -z "$GIT_PATH" ] && GIT_PATH="$HOME/git" - -# get the path to this script -APP_PATH=`dirname "$0"` -APP_PATH=`( cd "$APP_PATH" && pwd )` - -WORKSPACE_NAME=workspace -WORKSPACE_PATH=$WORKSPACE_LOCATION/$WORKSPACE_NAME -MRS_WORKSPACE=$WORKSPACE_LOCATION/mrs_workspace - -# create the folder structure -mkdir -p $WORKSPACE_PATH/src - -cd $WORKSPACE_PATH -command catkin init - -echo "$0: setting up build profiles" -command catkin config --profile debug --cmake-args -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_FLAGS='-std=c++17 -Og' -DCMAKE_C_FLAGS='-Og' -command catkin profile set debug -command catkin config --extend $MRS_WORKSPACE/devel - -command catkin config --profile release --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_FLAGS='-std=c++17' -command catkin profile set release -command catkin config --extend $MRS_WORKSPACE/devel - -command catkin config --profile reldeb --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_CXX_FLAGS='-std=c++17' -command catkin profile set reldeb -command catkin config --extend $MRS_WORKSPACE/devel - -# build profile for normal installation -[ -z "$GITHUB_CI" ] && command catkin profile set reldeb - -# build profile for github actions -[ ! -z "$GITHUB_CI" ] && command catkin profile set debug - -echo "$0: cloning example packages" -cd $GIT_PATH -[ ! -e example_ros_packages ] && git clone https://github.com/ctu-mrs/example_ros_packages -cd example_ros_packages -gitman install - -echo "$0: linking example packages to $WORKSPACE_LOCATION/workspace" -cd $WORKSPACE_PATH/src -ln -sf $GIT_PATH/example_ros_packages - -echo "$0: building $WORKSPACE_PATH" -cd $WORKSPACE_PATH - -if ! $NO_BUILD; then - [ -z "$GITHUB_CI" ] && command catkin build - [ ! -z "$GITHUB_CI" ] && command catkin build --limit-status-rate 0.2 --summarize -fi - -num=`cat ~/.bashrc | grep "$WORKSPACE_PATH" | wc -l` -if [ "$num" -lt "1" ]; then - - # set bashrc - echo " -source $WORKSPACE_PATH/devel/setup.bash" >> ~/.bashrc - -fi From 37841380810cdcd0b64ca619e68cd31333a81388 Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Sun, 13 Aug 2023 22:19:23 +0200 Subject: [PATCH 02/18] added readme --- README.md | 65 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 53 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 488cdc7..c6bc77e 100644 --- a/README.md +++ b/README.md @@ -4,15 +4,35 @@ ![thumbnail](.fig/drone_collage.jpg) The [Multi-robot Systems Group](http://mrs.felk.cvut.cz) is a robotics lab at the [Czech Technical University in Prague](https://www.cvut.cz/). -We mostly work with multi-rotor helicopters, and for them specifically, we develop this control, estimation, and simulation platform. +We specialize on multi-rotor helicopters, and for them specifically, we develop this control, estimation, and simulation system. We think that real-world and replicable experiments should support excellent research and science in robotics. -Thus our platform is built to allow safe verification of approaches in planning, control, estimation, computer vision, tracking, and more. +Thus our platform is built to allow safe real-world experimental validation of approaches in planning, control, estimation, computer vision, tracking, and more. -## Meta-repositories +## Build status -These meta-repositories aggregate related packages. +| | aarch64 | x86_64 | +|--------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [Unstable (Nightly)](http://github.com/ctu-mrs/ppa-unstable) | [![unstable-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_arm64.yml) | [![unstable-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_amd64.yml) | +| Stable | **TODO** | **TODO** | -TODO +## System structure + +**TODO** diagram + +### Hardware APIs + +**TODO** + +* PX4 API +* Tello API + +### Simulators + +**TODO** + +* MRS Simulator +* Gazebo Simulator +* Coppelia Simulator ## System properties @@ -20,7 +40,7 @@ The platform is * built using [Robot Operating System](https://www.ros.org/) Noetic, * meant to be executed entirely onboard, -* can be deployed on any multi-rotor vehicle, given TODO +* can be deployed on any multi-rotor vehicle, given **TODO** **write about hardware API** * for both indoor and outdoor, * supports multi-robot experiments using [Nimbro network](https://github.com/ctu-mrs/nimbro_network) communication. * provides both: agile flying and robust control. @@ -95,6 +115,7 @@ However, when we change something which requires user action to maintain compati Subscribe to this repository updates and issues by clicking the **Watch** button in the top-right corner of this page. Recent changes requiring user action: +* August, 2023: **TODO** **Rehaul of the entiner MRS UAV System** * January 17, 2023: [Updates for px4 firmware v1.13.2](https://github.com/ctu-mrs/mrs_uav_system/issues/150) * March 8, 2022: [mrs_lib::Transformer interface updated](https://github.com/ctu-mrs/mrs_uav_system/issues/136) * December 09, 2021: [not building with --march=native anymore](https://github.com/ctu-mrs/mrs_uav_system/issues/126) @@ -107,7 +128,31 @@ Recent changes requiring user action: ### Native installation -TODO +1. Install the Robot Operating System (Noetic): +```bash +curl https://ctu-mrs.github.io/ppa-unstable/add_ros_ppa.sh | bash +sudo apt install ros-noetic-desktop-full +``` + +2. Select which version of the MRS UAV System you want to install. + +For **stable** version, add the following PPA: +```bash +**TODO** +``` +For **unstable** (nightly-build) of the system, add the following PPA: +```bash +curl https://ctu-mrs.github.io/ppa-unstable/add_ppa.sh | bash +``` + +Then, install the MRS UAV System: +```bash +sudo apt install ros-noetic-mrs-uav-system +``` + +3. Follow these instructions ([starting the simulation](https://ctu-mrs.github.io/docs/simulation/howto.html), **TODO update**) for starting the example simulation sessions. + +4. Follow these instruction (**TOOD**) for creating your own catkin workspace and building your packages with the MRS UAV system. ### Singularity and Docker @@ -116,7 +161,7 @@ Please, follow this link to learn how to run our system using Singularity. * [MRS Singularity](https://github.com/ctu-mrs/mrs_singularity/) Our Singularity images are built almost completely from Docker images. -The following link points to our Docker HUB organization. +The following link points to our Docker HUB repository. * [Docker Images](https://hub.docker.com/u/ctumrs) @@ -139,7 +184,3 @@ cd linux-setup ``` For help with using the system, you can also refer to the [MRS Cheatsheet](https://ctu-mrs.github.io/docs/introduction/cheatsheet.html). - -## Running the simulation - -If you have successfully installed the system, you can continue with [starting the simulation](https://ctu-mrs.github.io/docs/simulation/howto.html). From 49a060c17f1fd3001a1f9b49e1a3f70f4f3f32db Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Mon, 14 Aug 2023 11:41:15 +0200 Subject: [PATCH 03/18] added tello_api into deps --- package.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.xml b/package.xml index 2bf4d66..ebfcd9c 100644 --- a/package.xml +++ b/package.xml @@ -17,7 +17,9 @@ mrs_uav_core mrs_uav_gazebo_simulation - mrs_uav_px4_api mrs_uav_deployment + mrs_uav_px4_api + mrs_uav_tello_api + From 2c59e2ca8377389b66a3957752177b6b580a2149 Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Mon, 14 Aug 2023 14:33:08 +0200 Subject: [PATCH 04/18] fixed deps --- package.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.xml b/package.xml index ebfcd9c..ec4b117 100644 --- a/package.xml +++ b/package.xml @@ -20,6 +20,6 @@ mrs_uav_deployment mrs_uav_px4_api - mrs_uav_tello_api + mrs_uav_dji_tello_api From f2cf9cd0be940f8edf2b5c26ec6a1212165183dc Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Mon, 14 Aug 2023 16:31:19 +0200 Subject: [PATCH 05/18] updated deps --- package.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/package.xml b/package.xml index ec4b117..264175e 100644 --- a/package.xml +++ b/package.xml @@ -18,6 +18,7 @@ mrs_uav_core mrs_uav_gazebo_simulation mrs_uav_deployment + mrs_uav_modules mrs_uav_px4_api mrs_uav_dji_tello_api From c8fa5182fd0d53e2f20f1ddfdabe86dccc36787f Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Thu, 31 Aug 2023 16:03:37 +0200 Subject: [PATCH 06/18] updated dependencies --- package.xml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/package.xml b/package.xml index 264175e..dce1034 100644 --- a/package.xml +++ b/package.xml @@ -15,12 +15,14 @@ cmake_modules rospy - mrs_uav_core - mrs_uav_gazebo_simulation - mrs_uav_deployment - mrs_uav_modules + mrs_uav_core + mrs_uav_gazebo_simulation + mrs_uav_deployment + mrs_uav_modules - mrs_uav_px4_api - mrs_uav_dji_tello_api + mrs_uav_px4_api + mrs_uav_dji_tello_api + + python-is-python3 From 7a33dc14e30bc3de1509a3ddbd6bb22d89f3441a Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Thu, 31 Aug 2023 17:24:08 +0200 Subject: [PATCH 07/18] fixed deps --- package.xml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.xml b/package.xml index dce1034..4db67cf 100644 --- a/package.xml +++ b/package.xml @@ -15,14 +15,14 @@ cmake_modules rospy - mrs_uav_core - mrs_uav_gazebo_simulation - mrs_uav_deployment - mrs_uav_modules + mrs_uav_core + mrs_uav_gazebo_simulation + mrs_uav_deployment + mrs_uav_modules - mrs_uav_px4_api - mrs_uav_dji_tello_api + mrs_uav_px4_api + mrs_uav_dji_tello_api - python-is-python3 + python-is-python3 From f3495f9b521b2914eac2820d191cbd2bf0b9571f Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Sat, 16 Sep 2023 10:54:38 +0200 Subject: [PATCH 08/18] split to two ros packages --- .github/workflows/ros_package_build.yml | 3 --- CMakeLists.txt | 15 ------------ README.md | 4 ---- ros_packages/mrs_uav_system/CMakeLists.txt | 6 +++++ ros_packages/mrs_uav_system/package.xml | 23 +++++++++++++++++++ .../mrs_uav_system_full/CMakeLists.txt | 7 ++++++ .../mrs_uav_system_full/package.xml | 12 +++++----- 7 files changed, 42 insertions(+), 28 deletions(-) delete mode 100644 CMakeLists.txt create mode 100644 ros_packages/mrs_uav_system/CMakeLists.txt create mode 100644 ros_packages/mrs_uav_system/package.xml create mode 100644 ros_packages/mrs_uav_system_full/CMakeLists.txt rename package.xml => ros_packages/mrs_uav_system_full/package.xml (74%) diff --git a/.github/workflows/ros_package_build.yml b/.github/workflows/ros_package_build.yml index 3801a50..d9721d9 100644 --- a/.github/workflows/ros_package_build.yml +++ b/.github/workflows/ros_package_build.yml @@ -5,9 +5,6 @@ on: push: branches: [ 1.5 ] - pull_request: - branches: [ 1.5 ] - workflow_dispatch: concurrency: diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 47b2d86..0000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,15 +0,0 @@ -cmake_minimum_required(VERSION 3.5) -project(mrs_uav_system) - -set(CATKIN_DEPENDENCIES - cmake_modules - rospy - ) - -find_package(catkin REQUIRED COMPONENTS - ${CATKIN_DEPENDENCIES} - ) - -catkin_package( - CATKIN_DEPENDS ${CATKIN_DEPENDENCIES} - ) diff --git a/README.md b/README.md index c6bc77e..03abe86 100644 --- a/README.md +++ b/README.md @@ -101,10 +101,6 @@ Some of those are forks of third party repositories. | [Object detection](https://github.com/ctu-mrs/object_detect) | Object detection by color segmentation | [![Build Status](https://github.com/ctu-mrs/object_detect/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/object_detect/actions) | | [MRS utils](https://github.com/ctu-mrs/mrs_utils) | Development utils | [![Build Status](https://github.com/ctu-mrs/mrs_utils/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/mrs_utils/actions) | | [OctomapTools](https://github.com/ctu-mrs/octomap_tools) | Octomap visualization and manipulation | | -| [MBZIRC 2020 - Wall Building](https://github.com/ctu-mrs/mbzirc_2020_wall_building) | System for automatic wall-building for MBZIRC 2020 | [![Build Status](https://github.com/ctu-mrs/mbzirc_2020_wall_building/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/mbzirc_2020_wall_building/actions) | -| [Summer School 2019](https://github.com/ctu-mrs/mtsp_planning_task) | Summer School 2019 task - MTSP planning | [![Build Status](https://github.com/ctu-mrs/mtsp_planning_task/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/mtsp_planning_task/actions) | -| [Summer School 2020](https://github.com/ctu-mrs/leader_follower_task) | Summer School 2020 task - UVDAR leader-follower | [![Build Status](https://github.com/ctu-mrs/leader_follower_task/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/leader_follower_task/actions) | -| [Summer School 2022](https://github.com/ctu-mrs/summer-school-2022) | Summer School 2022 task - Multirobotic inspection and monitoring | [![Build Status](https://github.com/ctu-mrs/summer-school-2022/workflows/Focal/badge.svg)](https://github.com/ctu-mrs/leader_follower_task/actions) | ## Backwards compatibility and updates diff --git a/ros_packages/mrs_uav_system/CMakeLists.txt b/ros_packages/mrs_uav_system/CMakeLists.txt new file mode 100644 index 0000000..a52e6eb --- /dev/null +++ b/ros_packages/mrs_uav_system/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.5) +project(mrs_uav_system) + +find_package(catkin REQUIRED) + +catkin_metapackage() diff --git a/ros_packages/mrs_uav_system/package.xml b/ros_packages/mrs_uav_system/package.xml new file mode 100644 index 0000000..2b41266 --- /dev/null +++ b/ros_packages/mrs_uav_system/package.xml @@ -0,0 +1,23 @@ + + + + mrs_uav_system + 1.0.0 + The MRS UAV System metapackage + + Tomas Baca + Tomas Baca + + BSD 3-Clause + + catkin + + mrs_uav_core + mrs_uav_modules + python-is-python3 + + + + + + diff --git a/ros_packages/mrs_uav_system_full/CMakeLists.txt b/ros_packages/mrs_uav_system_full/CMakeLists.txt new file mode 100644 index 0000000..cd3c706 --- /dev/null +++ b/ros_packages/mrs_uav_system_full/CMakeLists.txt @@ -0,0 +1,7 @@ +cmake_minimum_required(VERSION 3.5) +project(mrs_uav_system_full) + +find_package(catkin REQUIRED) + +catkin_metapackage() + diff --git a/package.xml b/ros_packages/mrs_uav_system_full/package.xml similarity index 74% rename from package.xml rename to ros_packages/mrs_uav_system_full/package.xml index 4db67cf..b186e61 100644 --- a/package.xml +++ b/ros_packages/mrs_uav_system_full/package.xml @@ -1,9 +1,9 @@ - mrs_uav_system + mrs_uav_system_full 1.0.0 - The MRS UAV System metapackage + The MRS UAV System Full metapackage Tomas Baca Tomas Baca @@ -12,17 +12,17 @@ catkin - cmake_modules - rospy - mrs_uav_core mrs_uav_gazebo_simulation mrs_uav_deployment mrs_uav_modules + mrs_octomap_mapping_planning mrs_uav_px4_api mrs_uav_dji_tello_api - python-is-python3 + + + From ff2f73f765cab9e30b8c7a43f5475be3b5eca9ff Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Sun, 17 Sep 2023 18:06:27 +0200 Subject: [PATCH 09/18] updated readme --- README.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 03abe86..5dca203 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,19 @@ Thus our platform is built to allow safe real-world experimental validation of a ## Build status -| | aarch64 | x86_64 | -|--------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Unstable (Nightly)](http://github.com/ctu-mrs/ppa-unstable) | [![unstable-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_arm64.yml) | [![unstable-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_amd64.yml) | -| Stable | **TODO** | **TODO** | +### AMD64 + +| | [Stable](https://github.com/ctu-mrs/ppa-stable) | [Unstable](https://github.com/ctu-mrs/ppa-unstable) | +|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| MRS Packages | [![stable-mrs-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_amd64.yml) | [![unstable-mrs-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_amd64.yml) | +| Thirdparty packages | [![stable-thirdparty-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_amd64.yml) | [![unstable-thirdparty-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_amd64.yml) | + +### AARCH64/ARM64 + +| | [Stable](https://github.com/ctu-mrs/ppa-stable) | [Unstable](https://github.com/ctu-mrs/ppa-unstable) | +|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| MRS Packages | [![stable-mrs-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_arm64.yml) | [![unstable-mrs-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_arm64.yml) | +| Thirdparty packages | [![stable-thirdparty-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_arm64.yml) | [![unstable-thirdparty-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_arm64.yml) | ## System structure @@ -143,7 +152,7 @@ curl https://ctu-mrs.github.io/ppa-unstable/add_ppa.sh | bash Then, install the MRS UAV System: ```bash -sudo apt install ros-noetic-mrs-uav-system +sudo apt install ros-noetic-mrs-uav-system-full ``` 3. Follow these instructions ([starting the simulation](https://ctu-mrs.github.io/docs/simulation/howto.html), **TODO update**) for starting the example simulation sessions. From 5ee7d2927356dce7ecfcdd6f0cd8bd9dc37eca9f Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Mon, 18 Sep 2023 08:45:48 +0200 Subject: [PATCH 10/18] updated readme --- .github/workflows/ros_package_build.yml | 5 +++++ README.md | 26 +++++++++++++------------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ros_package_build.yml b/.github/workflows/ros_package_build.yml index d9721d9..3f09a4a 100644 --- a/.github/workflows/ros_package_build.yml +++ b/.github/workflows/ros_package_build.yml @@ -5,6 +5,11 @@ on: push: branches: [ 1.5 ] + paths-ignore: + - '**/README.md' + - '**.jpg' + - '**.png' + workflow_dispatch: concurrency: diff --git a/README.md b/README.md index 5dca203..51c21df 100644 --- a/README.md +++ b/README.md @@ -12,17 +12,19 @@ Thus our platform is built to allow safe real-world experimental validation of a ### AMD64 -| | [Stable](https://github.com/ctu-mrs/ppa-stable) | [Unstable](https://github.com/ctu-mrs/ppa-unstable) | -|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| MRS Packages | [![stable-mrs-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_amd64.yml) | [![unstable-mrs-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_amd64.yml) | -| Thirdparty packages | [![stable-thirdparty-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_amd64.yml) | [![unstable-thirdparty-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_amd64.yml) | +| | [Stable](https://github.com/ctu-mrs/ppa-stable) | [Unstable](https://github.com/ctu-mrs/ppa-unstable) | +|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| MRS ROS Packages | [![stable-mrs-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_amd64.yml) | [![unstable-mrs-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_amd64.yml) | +| Thirdparty ROS packages | [![stable-thirdparty-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_amd64.yml) | [![unstable-thirdparty-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_amd64.yml) | +| Non-ROS packages | [![stable-nonbloom-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_nonbloom_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_nonbloom_amd64.yml) | [![unstable-nonbloom-amd64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_nonbloom_amd64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_nonbloom_amd64.yml) | ### AARCH64/ARM64 -| | [Stable](https://github.com/ctu-mrs/ppa-stable) | [Unstable](https://github.com/ctu-mrs/ppa-unstable) | -|---------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| MRS Packages | [![stable-mrs-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_arm64.yml) | [![unstable-mrs-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_arm64.yml) | -| Thirdparty packages | [![stable-thirdparty-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_arm64.yml) | [![unstable-thirdparty-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_arm64.yml) | +| | [Stable](https://github.com/ctu-mrs/ppa-stable) | [Unstable](https://github.com/ctu-mrs/ppa-unstable) | +|-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| MRS ROS Packages | [![stable-mrs-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_mrs_arm64.yml) | [![unstable-mrs-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_mrs_arm64.yml) | +| Thirdparty ROS packages | [![stable-thirdparty-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_arm64.yml) | [![unstable-thirdparty-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_arm64.yml) | +| Non-ROS packages | [![stable-nonbloom-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_nonbloom_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_nonbloom_arm64.yml) | [![unstable-nonbloom-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_nonbloom_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_nonbloom_arm64.yml) | ## System structure @@ -141,11 +143,11 @@ sudo apt install ros-noetic-desktop-full 2. Select which version of the MRS UAV System you want to install. -For **stable** version, add the following PPA: +For **[stable](https://github.com/ctu-mrs/ppa-stable)** version, add the following PPA: ```bash -**TODO** +curl https://ctu-mrs.github.io/ppa-stable/add_ppa.sh | bash ``` -For **unstable** (nightly-build) of the system, add the following PPA: +For **[unstable](https://github.com/ctu-mrs/ppa-unstable)** (nightly-build) of the system, add the following PPA: ```bash curl https://ctu-mrs.github.io/ppa-unstable/add_ppa.sh | bash ``` @@ -163,7 +165,7 @@ sudo apt install ros-noetic-mrs-uav-system-full Please, follow this link to learn how to run our system using Singularity. -* [MRS Singularity](https://github.com/ctu-mrs/mrs_singularity/) +* [MRS Singularity](https://github.com/ctu-mrs/mrs_singularity/tree/1.5) Our Singularity images are built almost completely from Docker images. The following link points to our Docker HUB repository. From 17ac3ed5bf2899f0ac413da22934331e3d479193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20B=C3=A1=C4=8Da?= Date: Wed, 20 Sep 2023 08:28:25 +0200 Subject: [PATCH 11/18] Update README.md --- README.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 51c21df..b1b062c 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ Thus our platform is built to allow safe real-world experimental validation of a ## Build status -### AMD64 +### x86-64/AMD64 | | [Stable](https://github.com/ctu-mrs/ppa-stable) | [Unstable](https://github.com/ctu-mrs/ppa-unstable) | |-------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -61,11 +61,11 @@ The platform is ## [Documentation](https://ctu-mrs.github.io/) The primary source of documentation is here: [https://ctu-mrs.github.io/](https://ctu-mrs.github.io/). -However, the website only scratches a surface of what it should contain (and we know it). +However, the website only scratches the surface of what it should contain (and we know it). Our system is a research-oriented platform, and it evolves rapidly. Most of our users are either researchers (who already know the platform) or freshmen students (who might not know ROS at all). -Maintaining up-to-date documentation for such an audience is hard work, since we mostly spend our time developing the system while using it for our research. -So instead, we aim at educating our students to look around the packages (each contains its own README), explore the launch files and be able to read the code, which we strive to keep readable. +Maintaining up-to-date documentation for such an audience is hard work since we mostly spend our time developing the system while using it for our research. +So instead, we aim at educating our students to look around the packages (each contains its own README), explore the launch files, and be able to read the code, which we strive to keep readable. [![](https://github.com/ctu-mrs/mrs_uav_system/raw/diagram/mrs_uav_system_diagram.jpg)](https://github.com/ctu-mrs/mrs_uav_system/raw/diagram/mrs_uav_system_diagram.pdf) @@ -79,7 +79,7 @@ Education with Autonomous Unmanned Aerial Vehicles", J Intell Robot Syst 102, 26 ## Unmanned Aerial Vehicles The MRS UAV system is currently pre-configured for the following UAV platforms, operated by the MRS. -The platforms are order by the size / payload capacity. +The platforms are ordered by the size/payload capacity. | Model | Simulation | Real UAV | |--------------|-------------------------------|-------------------------------| @@ -93,8 +93,8 @@ The platforms are order by the size / payload capacity. ## Related packages The following packages are not necessarily part of our automated installation. -Therefore, you might need to clone them by yorself and place in your ROS workspace. -Some of those are forks of third party repositories. +Therefore, you might need to clone them by yourself and place them in your ROS workspace. +Some of those are forks of third-party repositories. | Package | Description | 20.04 | |--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -113,16 +113,16 @@ Some of those are forks of third party repositories. | [MRS utils](https://github.com/ctu-mrs/mrs_utils) | Development utils | [![Build Status](https://github.com/ctu-mrs/mrs_utils/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/mrs_utils/actions) | | [OctomapTools](https://github.com/ctu-mrs/octomap_tools) | Octomap visualization and manipulation | | -## Backwards compatibility and updates +## Backwards Compatibility and updates -We do not guarantee backwards compatibility at any time. +We do not guarantee backward compatibility at any time. The platform is evolving according to the needs of the MRS group. -Updates can be made that are not going to be compatible with users local configs, simulation worlds, tmux sessions, etc. -However, when we change something which requires user action to maintain compatibility, we will create an issue in this repository labelled **users-read-me**. +Updates can be made that are not going to be compatible with users' local configs, simulation worlds, tmux sessions, etc. +However, when we change something that requires user action to maintain compatibility, we will create an issue in this repository labeled **users-read-me**. Subscribe to this repository updates and issues by clicking the **Watch** button in the top-right corner of this page. Recent changes requiring user action: -* August, 2023: **TODO** **Rehaul of the entiner MRS UAV System** +* August, 2023: **TODO** **Rehaul of the entire MRS UAV System** * January 17, 2023: [Updates for px4 firmware v1.13.2](https://github.com/ctu-mrs/mrs_uav_system/issues/150) * March 8, 2022: [mrs_lib::Transformer interface updated](https://github.com/ctu-mrs/mrs_uav_system/issues/136) * December 09, 2021: [not building with --march=native anymore](https://github.com/ctu-mrs/mrs_uav_system/issues/126) @@ -159,7 +159,7 @@ sudo apt install ros-noetic-mrs-uav-system-full 3. Follow these instructions ([starting the simulation](https://ctu-mrs.github.io/docs/simulation/howto.html), **TODO update**) for starting the example simulation sessions. -4. Follow these instruction (**TOOD**) for creating your own catkin workspace and building your packages with the MRS UAV system. +4. Follow these instructions (**TOOD**) for creating your own catkin workspace and building your packages with the MRS UAV system. ### Singularity and Docker @@ -172,14 +172,14 @@ The following link points to our Docker HUB repository. * [Docker Images](https://hub.docker.com/u/ctumrs) -#### "I want the Linux environment people from MRS works with" +#### "I want the Linux environment people from MRS work with" -Great! In that case you want to install Tomas's Linux-setup. +Great! In that case, you want to install Tomas's Linux-setup. **Beware!** This might alter your existing configuration of some Linux tools (Vim, Tmux, i3wm, ranger, ...). Refer to its [README](https://github.com/klaxalk/linux-setup), for more information. Installation is *not* obligatory and the MRS UAV system will work without it. -Paste following code into your terminal and press **enter** +Paste the following code into your terminal and press **enter** ```bash cd /tmp echo "mkdir -p ~/git From d004662953ccb2aa82c0dbc2fcd9d069007f885f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matou=C5=A1=20Vrba?= Date: Tue, 3 Oct 2023 16:48:50 +0200 Subject: [PATCH 12/18] added a link to the Google Doc WIP documentation --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index b1b062c..1262355 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,10 @@ The platform is ## [Documentation](https://ctu-mrs.github.io/) +*Note:* The MRS UAV system v1.5 is still a WIP and the system as well as the documentation is in the process of being polished. +You can find the most complete, although still rough documentation [here](https://docs.google.com/document/d/1NibHqNdyzzAYE7DNIMMq1HmzyFrBnISbzV17dP-waYw/edit?usp=sharing). +Any feedback is welcome (you can use the issues in this repo or comment on the Google Doc)! or comment on the Google Doc)! + The primary source of documentation is here: [https://ctu-mrs.github.io/](https://ctu-mrs.github.io/). However, the website only scratches the surface of what it should contain (and we know it). Our system is a research-oriented platform, and it evolves rapidly. From b758ef0830f762f8879f0af77cc68a14a89e0104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matou=C5=A1=20Vrba?= Date: Wed, 4 Oct 2023 16:10:46 +0200 Subject: [PATCH 13/18] Update README.md regarding simulation --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1262355..74ee7f8 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ Thus our platform is built to allow safe real-world experimental validation of a **TODO** * MRS Simulator -* Gazebo Simulator +* Gazebo Simulator - see the [WIP Google Document](https://docs.google.com/document/d/1NibHqNdyzzAYE7DNIMMq1HmzyFrBnISbzV17dP-waYw/edit?usp=sharing). TL;DR: install the `ros-noetic-mrs-uav-gazebo-simulation` package, then find an example tmux session in `roscd mrs_uav_gazebo_simulation/tmux`. * Coppelia Simulator ## System properties @@ -161,7 +161,7 @@ Then, install the MRS UAV System: sudo apt install ros-noetic-mrs-uav-system-full ``` -3. Follow these instructions ([starting the simulation](https://ctu-mrs.github.io/docs/simulation/howto.html), **TODO update**) for starting the example simulation sessions. +3. Follow these instructions ([starting the simulation](https://ctu-mrs.github.io/docs/simulation/howto.html), **TODO update - see the [Google Doc](https://docs.google.com/document/d/1NibHqNdyzzAYE7DNIMMq1HmzyFrBnISbzV17dP-waYw/edit?usp=sharing) for now**) for starting the example simulation sessions. 4. Follow these instructions (**TOOD**) for creating your own catkin workspace and building your packages with the MRS UAV system. From fc071e0d87a55d6b05f2519a276432604044fbcc Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Fri, 6 Oct 2023 13:36:41 +0200 Subject: [PATCH 14/18] updated readme --- README.md | 182 ++++++++++++++++++++++-------------------------------- 1 file changed, 73 insertions(+), 109 deletions(-) diff --git a/README.md b/README.md index 74ee7f8..1d180ee 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,48 @@ We specialize on multi-rotor helicopters, and for them specifically, we develop We think that real-world and replicable experiments should support excellent research and science in robotics. Thus our platform is built to allow safe real-world experimental validation of approaches in planning, control, estimation, computer vision, tracking, and more. +## TL;DR what has changed from the old system + +**Note:** The MRS UAV system v1.5 is still a Work-In-Progress and the documentation is undergoing maintanance. +You can find the changes and new instructions in here [WIP Google Document](https://docs.google.com/document/d/1NibHqNdyzzAYE7DNIMMq1HmzyFrBnISbzV17dP-waYw/edit?usp=sharing). +Any feedback is welcome (you can use the issues in this repo or comment on the Google Doc)! + +## Installation + +### Native installation + +1. Install the Robot Operating System (Noetic): +```bash +curl https://ctu-mrs.github.io/ppa-unstable/add_ros_ppa.sh | bash +sudo apt install ros-noetic-desktop-full +``` + +2. Select which version of the MRS UAV System you want to install. + +For **[stable](https://github.com/ctu-mrs/ppa-stable)** version, add the following PPA: +```bash +curl https://ctu-mrs.github.io/ppa-stable/add_ppa.sh | bash +``` +For **[unstable](https://github.com/ctu-mrs/ppa-unstable)** (nightly-build) of the system, add the following PPA: +```bash +curl https://ctu-mrs.github.io/ppa-unstable/add_ppa.sh | bash +``` + +Then, install the MRS UAV System: +```bash +sudo apt install ros-noetic-mrs-uav-system-full +``` + +3. Follow these instructions ([starting the simulation](https://ctu-mrs.github.io/docs/simulation/howto.html), **TODO update - see the [Google Doc](https://docs.google.com/document/d/1NibHqNdyzzAYE7DNIMMq1HmzyFrBnISbzV17dP-waYw/edit?usp=sharing) for now**) for starting the example simulation sessions. + +4. Follow these instructions (**TOOD**) for creating your own catkin workspace and building your packages with the MRS UAV system. + +### Singularity + +Please, follow this link to learn how to run our system using Singularity. + +* [MRS Singularity](https://github.com/ctu-mrs/mrs_singularity/tree/1.5) + ## Build status ### x86-64/AMD64 @@ -26,44 +68,50 @@ Thus our platform is built to allow safe real-world experimental validation of a | Thirdparty ROS packages | [![stable-thirdparty-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_thirdparty_arm64.yml) | [![unstable-thirdparty-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_thirdparty_arm64.yml) | | Non-ROS packages | [![stable-nonbloom-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_nonbloom_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/stable_nonbloom_arm64.yml) | [![unstable-nonbloom-arm64](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_nonbloom_arm64.yml/badge.svg)](https://github.com/ctu-mrs/rosdistro/actions/workflows/unstable_nonbloom_arm64.yml) | -## System structure +## System components -**TODO** diagram +| Main metapackages | Contents | Repository | Package | +|-----------------------|-----------------------------|-------------------------------------------------------------|----------------------------------------------| +| MRS UAV System - Full | Most of the bellow | [mrs_uav_system](https://github.com/ctu-mrs/mrs_uav_system) | `apt install ros-noetic-mrs-uav-system-full` | +| MRS UAV System | Only UAV Core & UAV Modules | [mrs_uav_system](https://github.com/ctu-mrs/mrs_uav_system) | `apt install ros-noetic-mrs-uav-system` | -### Hardware APIs +| Metapackages | Repository | Package | +|--------------------------|-------------------------------------------------------------------------------------|-------------------------------------------------------| +| UAV Core | [mrs_uav_core](https://github.com/ctu-mrs/mrs_uav_core) | `apt install ros-noetic-mrs-uav-core` | +| UAV Modules | [mrs_uav_modules](https://github.com/ctu-mrs/mrs_uav_modules) | `apt install ros-noetic-mrs-uav-modules` | +| Octomap Mapping+Planning | [octomap_mapping_planning](https://github.com/ctu-mrs/mrs_octomap_mapping_planning) | `apt install ros-noetic-mrs-octomap-mapping-planning` | -**TODO** +| Simulators | Repository | Package | +|---------------------|---------------------------------------------------------------------------------------|------------------------------------------------------| +| Gazebo Simulation | [mrs_uav_gazebo_simulation](https://github.com/ctu-mrs/mrs_uav_gazebo_simulation) | `apt install ros-noetic-mrs-uav-gazebo-simulation` | +| MRS Simulation | [mrs_multirotor_simulator](https://github.com/ctu-mrs/mrs_multirotor_simulator) | `apt install ros-noetic-mrs-multirotor-simulator` | +| Coppelia Simulation | [mrs_uav_coppelia_simulation](https://github.com/ctu-mrs/mrs_uav_coppelia_simulation) | `apt install ros-noetic-mrs-uav-coppelia-simulation` | -* PX4 API -* Tello API +| Hardware API plugins | Repository | Package | +|----------------------|---------------------------------------------------------------------------|------------------------------------------------| +| PX4 API | [mrs_uav_px4_api](https://github.com/ctu-mrs/mrs_uav_px4_api) | `apt install ros-noetic-mrs-uav-px4-api` | +| DJI Tello API | [mrs_uav_dji_tello_api](https://github.com/ctu-mrs/mrs_uav_dji_tello_api) | `apt install ros-noetic-mrs-uav-dji-tello-api` | -### Simulators +## Example packages -**TODO** - -* MRS Simulator -* Gazebo Simulator - see the [WIP Google Document](https://docs.google.com/document/d/1NibHqNdyzzAYE7DNIMMq1HmzyFrBnISbzV17dP-waYw/edit?usp=sharing). TL;DR: install the `ros-noetic-mrs-uav-gazebo-simulation` package, then find an example tmux session in `roscd mrs_uav_gazebo_simulation/tmux`. -* Coppelia Simulator +| Example | Repository | +|-------------------|-----------------------------------------------------------------------------------| +| Controller plugin | [example_controller_plugin](https://github.com/ctu-mrs/example_controller_plugin) | +| Tracker plugin | [example_controller_plugin](https://github.com/ctu-mrs/example_tracker_plugin) | ## System properties -The platform is +The system is -* built using [Robot Operating System](https://www.ros.org/) Noetic, -* meant to be executed entirely onboard, -* can be deployed on any multi-rotor vehicle, given **TODO** **write about hardware API** -* for both indoor and outdoor, -* supports multi-robot experiments using [Nimbro network](https://github.com/ctu-mrs/nimbro_network) communication. -* provides both: agile flying and robust control. +* built on the [Robot Operating System](https://www.ros.org/) Noetic, +* meant to be executed entirely onboard on a companion computer, +* can control underactuated multirotor helicopters, +* contains control, state estimation, mapping and planning pipelines. ![](https://github.com/ctu-mrs/mrs_uav_system/raw/gifs/gazebo_circle.gif) ## [Documentation](https://ctu-mrs.github.io/) -*Note:* The MRS UAV system v1.5 is still a WIP and the system as well as the documentation is in the process of being polished. -You can find the most complete, although still rough documentation [here](https://docs.google.com/document/d/1NibHqNdyzzAYE7DNIMMq1HmzyFrBnISbzV17dP-waYw/edit?usp=sharing). -Any feedback is welcome (you can use the issues in this repo or comment on the Google Doc)! or comment on the Google Doc)! - The primary source of documentation is here: [https://ctu-mrs.github.io/](https://ctu-mrs.github.io/). However, the website only scratches the surface of what it should contain (and we know it). Our system is a research-oriented platform, and it evolves rapidly. @@ -73,7 +121,7 @@ So instead, we aim at educating our students to look around the packages (each c [![](https://github.com/ctu-mrs/mrs_uav_system/raw/diagram/mrs_uav_system_diagram.jpg)](https://github.com/ctu-mrs/mrs_uav_system/raw/diagram/mrs_uav_system_diagram.pdf) -The system follows a description presented in the article [doi.org/10.1007/s10846-021-01383-5](https://doi.org/10.1007/s10846-021-01383-5), [pdf](https://link.springer.com/content/pdf/10.1007/s10846-021-01383-5.pdf): +The control and estimation system are described in the article [doi.org/10.1007/s10846-021-01383-5](https://doi.org/10.1007/s10846-021-01383-5), [pdf](https://link.springer.com/content/pdf/10.1007/s10846-021-01383-5.pdf): ``` Baca, T., Petrlik, M., Vrba, M., Spurny, V., Penicka, R., Hert, D., and Saska, M., "The MRS UAV System: Pushing the Frontiers of Reproducible Research, Real-world Deployment, and @@ -83,7 +131,7 @@ Education with Autonomous Unmanned Aerial Vehicles", J Intell Robot Syst 102, 26 ## Unmanned Aerial Vehicles The MRS UAV system is currently pre-configured for the following UAV platforms, operated by the MRS. -The platforms are ordered by the size/payload capacity. +The UAV platforms can be purchased from our partner company [Fly4Future](https://dronebuilder.fly4future.com/#/). | Model | Simulation | Real UAV | |--------------|-------------------------------|-------------------------------| @@ -94,29 +142,6 @@ The platforms are ordered by the size/payload capacity. | Tarot t650 | ![](.fig/t650_simulation.jpg) | ![](.fig/t650_real.jpg) | | NAKI II | ![](.fig/naki_simulation.jpg) | ![](.fig/naki_real.jpg) | -## Related packages - -The following packages are not necessarily part of our automated installation. -Therefore, you might need to clone them by yourself and place them in your ROS workspace. -Some of those are forks of third-party repositories. - -| Package | Description | 20.04 | -|--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [MRS Gazebo Extra Resources](https://github.com/ctu-mrs/mrs_gazebo_extras_resources) | *MRS System*-depended optional plugins and resources | [![Build Status](https://github.com/ctu-mrs/mrs_gazebo_extras_resources/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/mrs_gazebo_extras_resources/actions) | -| [Example ROS packages](https://github.com/ctu-mrs/example_ros_packages) | MRS ROS examples | [![Build Status](https://github.com/ctu-mrs/example_ros_packages/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/example_ros_packages/actions) | -| [Nimbro network](https://github.com/ctu-mrs/nimbro_network) | ROS communication layer for multiple independent machines | [![Build Status](https://github.com/ctu-mrs/nimbro_network/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/nimbro_network/actions) | -| [MRS optic flow](https://github.com/ctu-mrs/mrs_optic_flow) | GPU-accelerated optic flow alorithm for UAV odometry | [![Build Status](https://github.com/ctu-mrs/mrs_optic_flow/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/mrs_optic_flow/actions) | -| [Hector SLAM](https://github.com/tu-darmstadt-ros-pkg/hector_slam) | 2D Laser-based LIDAR SLAM, [how to](https://ctu-mrs.github.io/docs/software/hector_slam.html) | | -| [Hector SLAM](https://github.com/ctu-mrs/hector_slam) - MRS fork | + Nodeleted, [how to](https://ctu-mrs.github.io/docs/software/hector_slam.html) | [![Build Status](https://github.com/ctu-mrs/hector_slam/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/hector_slam/actions) | -| [MRS Serial](https://github.com/ctu-mrs/mrs_serial) | serial line interface to ROS, communicates using the BACA protocol | [![Build Status](https://github.com/ctu-mrs/mrs_serial/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/mrs_serial/actions) | -| [UVDAR](https://github.com/ctu-mrs/uvdar) | mutual localization of UAVs using Ultra-Violet LED blinkers | [![Build Status](https://github.com/ctu-mrs/uvdar_core/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/uvdar_core/actions) | -| [UVDAR gazebo plugin](https://github.com/ctu-mrs/uvdar_gazebo_plugin) | Gazebo plugin for UVDAR | [![Build Status](https://github.com/ctu-mrs/uvdar_gazebo_plugin/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/uvdar_gazebo_plugin/actions) | -| [trajectory loader](https://github.com/ctu-mrs/trajectory_loader) | Loading UAV trajectories from CSV files | [![Build Status](https://github.com/ctu-mrs/trajectory_loader/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/trajectory_loader/actions) | -| [Bluefox2](https://github.com/ctu-mrs/bluefox2) | MV Bluefox2 driver, MRS fork | [![Build Status](https://github.com/ctu-mrs/bluefox2/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/bluefox2/actions) | -| [Object detection](https://github.com/ctu-mrs/object_detect) | Object detection by color segmentation | [![Build Status](https://github.com/ctu-mrs/object_detect/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/object_detect/actions) | -| [MRS utils](https://github.com/ctu-mrs/mrs_utils) | Development utils | [![Build Status](https://github.com/ctu-mrs/mrs_utils/workflows/Noetic/badge.svg)](https://github.com/ctu-mrs/mrs_utils/actions) | -| [OctomapTools](https://github.com/ctu-mrs/octomap_tools) | Octomap visualization and manipulation | | - ## Backwards Compatibility and updates We do not guarantee backward compatibility at any time. @@ -134,64 +159,3 @@ Recent changes requiring user action: * December 15, 2020: [Rework of simulation UAV spawning mechanism, Noetic update](https://github.com/ctu-mrs/mrs_uav_system/issues/32) * November 12, 2020: [GPS coordinates within Gazebo world need changing](https://github.com/ctu-mrs/mrs_uav_system/issues/22) * November 12, 2020: [Rangefinder fusion needs enabling in simulation sessions](https://github.com/ctu-mrs/mrs_uav_system/issues/21) - -## Installation - -### Native installation - -1. Install the Robot Operating System (Noetic): -```bash -curl https://ctu-mrs.github.io/ppa-unstable/add_ros_ppa.sh | bash -sudo apt install ros-noetic-desktop-full -``` - -2. Select which version of the MRS UAV System you want to install. - -For **[stable](https://github.com/ctu-mrs/ppa-stable)** version, add the following PPA: -```bash -curl https://ctu-mrs.github.io/ppa-stable/add_ppa.sh | bash -``` -For **[unstable](https://github.com/ctu-mrs/ppa-unstable)** (nightly-build) of the system, add the following PPA: -```bash -curl https://ctu-mrs.github.io/ppa-unstable/add_ppa.sh | bash -``` - -Then, install the MRS UAV System: -```bash -sudo apt install ros-noetic-mrs-uav-system-full -``` - -3. Follow these instructions ([starting the simulation](https://ctu-mrs.github.io/docs/simulation/howto.html), **TODO update - see the [Google Doc](https://docs.google.com/document/d/1NibHqNdyzzAYE7DNIMMq1HmzyFrBnISbzV17dP-waYw/edit?usp=sharing) for now**) for starting the example simulation sessions. - -4. Follow these instructions (**TOOD**) for creating your own catkin workspace and building your packages with the MRS UAV system. - -### Singularity and Docker - -Please, follow this link to learn how to run our system using Singularity. - -* [MRS Singularity](https://github.com/ctu-mrs/mrs_singularity/tree/1.5) - -Our Singularity images are built almost completely from Docker images. -The following link points to our Docker HUB repository. - -* [Docker Images](https://hub.docker.com/u/ctumrs) - -#### "I want the Linux environment people from MRS work with" - -Great! In that case, you want to install Tomas's Linux-setup. -**Beware!** This might alter your existing configuration of some Linux tools (Vim, Tmux, i3wm, ranger, ...). -Refer to its [README](https://github.com/klaxalk/linux-setup), for more information. -Installation is *not* obligatory and the MRS UAV system will work without it. - -Paste the following code into your terminal and press **enter** -```bash -cd /tmp -echo "mkdir -p ~/git -cd ~/git -sudo apt-get -y install git -git clone https://github.com/klaxalk/linux-setup -cd linux-setup -./install.sh" > run.sh && source run.sh -``` - -For help with using the system, you can also refer to the [MRS Cheatsheet](https://ctu-mrs.github.io/docs/introduction/cheatsheet.html). From a27b007b4d613c3c39139d423785759924f7f2ce Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Mon, 9 Oct 2023 13:33:35 +0200 Subject: [PATCH 15/18] updated readme --- README.md | 74 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 39 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 1d180ee..20992ef 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,39 @@ Thus our platform is built to allow safe real-world experimental validation of a ## TL;DR what has changed from the old system -**Note:** The MRS UAV system v1.5 is still a Work-In-Progress and the documentation is undergoing maintanance. +**Note:** The MRS UAV system v1.5 is still a Work-In-Progress and the documentation is undergoing maintanance ([Issue#169](https://github.com/ctu-mrs/mrs_uav_system/issues/169)). You can find the changes and new instructions in here [WIP Google Document](https://docs.google.com/document/d/1NibHqNdyzzAYE7DNIMMq1HmzyFrBnISbzV17dP-waYw/edit?usp=sharing). Any feedback is welcome (you can use the issues in this repo or comment on the Google Doc)! +## System properties + +The system is + +* built on the [Robot Operating System](https://www.ros.org/) Noetic, +* meant to be executed entirely onboard on a companion computer, +* can control underactuated multirotor helicopters, +* contains control, state estimation, mapping and planning pipelines. + +![](https://github.com/ctu-mrs/mrs_uav_system/raw/gifs/gazebo_circle.gif) + +## [Documentation](https://ctu-mrs.github.io/) + +The primary source of documentation is here: [https://ctu-mrs.github.io/](https://ctu-mrs.github.io/). +However, the website only scratches the surface of what it should contain (and we know it). +Our system is a research-oriented platform, and it evolves rapidly. +Most of our users are either researchers (who already know the platform) or freshmen students (who might not know ROS at all). +Maintaining up-to-date documentation for such an audience is hard work since we mostly spend our time developing the system while using it for our research. +So instead, we aim at educating our students to look around the packages (each contains its own README), explore the launch files, and be able to read the code, which we strive to keep readable. + +[![](https://github.com/ctu-mrs/mrs_uav_system/raw/diagram/mrs_uav_system_diagram.jpg)](https://github.com/ctu-mrs/mrs_uav_system/raw/diagram/mrs_uav_system_diagram.pdf) + +The control and estimation system are described in the article [doi.org/10.1007/s10846-021-01383-5](https://doi.org/10.1007/s10846-021-01383-5), [pdf](https://link.springer.com/content/pdf/10.1007/s10846-021-01383-5.pdf): +``` +Baca, T., Petrlik, M., Vrba, M., Spurny, V., Penicka, R., Hert, D., and Saska, M., +"The MRS UAV System: Pushing the Frontiers of Reproducible Research, Real-world Deployment, and +Education with Autonomous Unmanned Aerial Vehicles", J Intell Robot Syst 102, 26 (2021). +``` + ## Installation ### Native installation @@ -24,7 +53,9 @@ curl https://ctu-mrs.github.io/ppa-unstable/add_ros_ppa.sh | bash sudo apt install ros-noetic-desktop-full ``` -2. Select which version of the MRS UAV System you want to install. +2. Configure your ROS environment [http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment]([http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment]) + +3. Select which version of the MRS UAV System you want to install. For **[stable](https://github.com/ctu-mrs/ppa-stable)** version, add the following PPA: ```bash @@ -35,14 +66,16 @@ For **[unstable](https://github.com/ctu-mrs/ppa-unstable)** (nightly-build) of curl https://ctu-mrs.github.io/ppa-unstable/add_ppa.sh | bash ``` -Then, install the MRS UAV System: +4. Then, install the MRS UAV System: ```bash sudo apt install ros-noetic-mrs-uav-system-full ``` -3. Follow these instructions ([starting the simulation](https://ctu-mrs.github.io/docs/simulation/howto.html), **TODO update - see the [Google Doc](https://docs.google.com/document/d/1NibHqNdyzzAYE7DNIMMq1HmzyFrBnISbzV17dP-waYw/edit?usp=sharing) for now**) for starting the example simulation sessions. - -4. Follow these instructions (**TOOD**) for creating your own catkin workspace and building your packages with the MRS UAV system. +5. Start the example Gazebo simulation session: +```bash +roscd mrs_uav_gazebo_simulation/tmux/one_drone +./start.sh +``` ### Singularity @@ -99,35 +132,6 @@ Please, follow this link to learn how to run our system using Singularity. | Controller plugin | [example_controller_plugin](https://github.com/ctu-mrs/example_controller_plugin) | | Tracker plugin | [example_controller_plugin](https://github.com/ctu-mrs/example_tracker_plugin) | -## System properties - -The system is - -* built on the [Robot Operating System](https://www.ros.org/) Noetic, -* meant to be executed entirely onboard on a companion computer, -* can control underactuated multirotor helicopters, -* contains control, state estimation, mapping and planning pipelines. - -![](https://github.com/ctu-mrs/mrs_uav_system/raw/gifs/gazebo_circle.gif) - -## [Documentation](https://ctu-mrs.github.io/) - -The primary source of documentation is here: [https://ctu-mrs.github.io/](https://ctu-mrs.github.io/). -However, the website only scratches the surface of what it should contain (and we know it). -Our system is a research-oriented platform, and it evolves rapidly. -Most of our users are either researchers (who already know the platform) or freshmen students (who might not know ROS at all). -Maintaining up-to-date documentation for such an audience is hard work since we mostly spend our time developing the system while using it for our research. -So instead, we aim at educating our students to look around the packages (each contains its own README), explore the launch files, and be able to read the code, which we strive to keep readable. - -[![](https://github.com/ctu-mrs/mrs_uav_system/raw/diagram/mrs_uav_system_diagram.jpg)](https://github.com/ctu-mrs/mrs_uav_system/raw/diagram/mrs_uav_system_diagram.pdf) - -The control and estimation system are described in the article [doi.org/10.1007/s10846-021-01383-5](https://doi.org/10.1007/s10846-021-01383-5), [pdf](https://link.springer.com/content/pdf/10.1007/s10846-021-01383-5.pdf): -``` -Baca, T., Petrlik, M., Vrba, M., Spurny, V., Penicka, R., Hert, D., and Saska, M., -"The MRS UAV System: Pushing the Frontiers of Reproducible Research, Real-world Deployment, and -Education with Autonomous Unmanned Aerial Vehicles", J Intell Robot Syst 102, 26 (2021). -``` - ## Unmanned Aerial Vehicles The MRS UAV system is currently pre-configured for the following UAV platforms, operated by the MRS. From 8fe78ab072e45068702a4e1bec1de4b458a42602 Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Mon, 9 Oct 2023 14:03:04 +0200 Subject: [PATCH 16/18] updated readme --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 20992ef..7d07cfd 100644 --- a/README.md +++ b/README.md @@ -57,16 +57,16 @@ sudo apt install ros-noetic-desktop-full 3. Select which version of the MRS UAV System you want to install. -For **[stable](https://github.com/ctu-mrs/ppa-stable)** version, add the following PPA: +For **[stable](https://github.com/ctu-mrs/ppa-stable)** version, add the stable PPA: ```bash curl https://ctu-mrs.github.io/ppa-stable/add_ppa.sh | bash ``` -For **[unstable](https://github.com/ctu-mrs/ppa-unstable)** (nightly-build) of the system, add the following PPA: +For **[unstable](https://github.com/ctu-mrs/ppa-unstable)** (nightly-build) of the system, add the unstable PPA: ```bash curl https://ctu-mrs.github.io/ppa-unstable/add_ppa.sh | bash ``` -4. Then, install the MRS UAV System: +4. Install the MRS UAV System: ```bash sudo apt install ros-noetic-mrs-uav-system-full ``` @@ -108,11 +108,11 @@ Please, follow this link to learn how to run our system using Singularity. | MRS UAV System - Full | Most of the bellow | [mrs_uav_system](https://github.com/ctu-mrs/mrs_uav_system) | `apt install ros-noetic-mrs-uav-system-full` | | MRS UAV System | Only UAV Core & UAV Modules | [mrs_uav_system](https://github.com/ctu-mrs/mrs_uav_system) | `apt install ros-noetic-mrs-uav-system` | -| Metapackages | Repository | Package | -|--------------------------|-------------------------------------------------------------------------------------|-------------------------------------------------------| -| UAV Core | [mrs_uav_core](https://github.com/ctu-mrs/mrs_uav_core) | `apt install ros-noetic-mrs-uav-core` | -| UAV Modules | [mrs_uav_modules](https://github.com/ctu-mrs/mrs_uav_modules) | `apt install ros-noetic-mrs-uav-modules` | -| Octomap Mapping+Planning | [octomap_mapping_planning](https://github.com/ctu-mrs/mrs_octomap_mapping_planning) | `apt install ros-noetic-mrs-octomap-mapping-planning` | +| Metapackages | Repository | Package | +|--------------------------|-----------------------------------------------------------------------------------------|-------------------------------------------------------| +| UAV Core | [mrs_uav_core](https://github.com/ctu-mrs/mrs_uav_core) | `apt install ros-noetic-mrs-uav-core` | +| UAV Modules | [mrs_uav_modules](https://github.com/ctu-mrs/mrs_uav_modules) | `apt install ros-noetic-mrs-uav-modules` | +| Octomap Mapping+Planning | [mrs_octomap_mapping_planning](https://github.com/ctu-mrs/mrs_octomap_mapping_planning) | `apt install ros-noetic-mrs-octomap-mapping-planning` | | Simulators | Repository | Package | |---------------------|---------------------------------------------------------------------------------------|------------------------------------------------------| @@ -155,7 +155,7 @@ However, when we change something that requires user action to maintain compatib Subscribe to this repository updates and issues by clicking the **Watch** button in the top-right corner of this page. Recent changes requiring user action: -* August, 2023: **TODO** **Rehaul of the entire MRS UAV System** +* now: **WIP** **MRS UAV System 1.5** * January 17, 2023: [Updates for px4 firmware v1.13.2](https://github.com/ctu-mrs/mrs_uav_system/issues/150) * March 8, 2022: [mrs_lib::Transformer interface updated](https://github.com/ctu-mrs/mrs_uav_system/issues/136) * December 09, 2021: [not building with --march=native anymore](https://github.com/ctu-mrs/mrs_uav_system/issues/126) From e18125015540d2ded392e8d98296c1f48a0c1043 Mon Sep 17 00:00:00 2001 From: Tomas Baca Date: Mon, 9 Oct 2023 14:15:40 +0200 Subject: [PATCH 17/18] updated dependencies --- ros_packages/mrs_uav_system_full/package.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ros_packages/mrs_uav_system_full/package.xml b/ros_packages/mrs_uav_system_full/package.xml index b186e61..f708161 100644 --- a/ros_packages/mrs_uav_system_full/package.xml +++ b/ros_packages/mrs_uav_system_full/package.xml @@ -14,6 +14,7 @@ mrs_uav_core mrs_uav_gazebo_simulation + mrs_uav_coppelia_simulation mrs_uav_deployment mrs_uav_modules mrs_octomap_mapping_planning @@ -21,6 +22,8 @@ mrs_uav_px4_api mrs_uav_dji_tello_api + python-is-python3 + From bfc89e169ecda5b7a2eb53eb39b81c5914a4c43f Mon Sep 17 00:00:00 2001 From: devel Date: Tue, 10 Oct 2023 14:25:14 +0200 Subject: [PATCH 18/18] updated workflows, updated readme --- .github/workflows/ros_package_build.yml | 2 +- README.md | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ros_package_build.yml b/.github/workflows/ros_package_build.yml index 3f09a4a..4a8b6aa 100644 --- a/.github/workflows/ros_package_build.yml +++ b/.github/workflows/ros_package_build.yml @@ -3,7 +3,7 @@ name: ros_package_build on: push: - branches: [ 1.5 ] + branches: [ master ] paths-ignore: - '**/README.md' diff --git a/README.md b/README.md index 7d07cfd..af916a5 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,11 @@ We specialize on multi-rotor helicopters, and for them specifically, we develop We think that real-world and replicable experiments should support excellent research and science in robotics. Thus our platform is built to allow safe real-world experimental validation of approaches in planning, control, estimation, computer vision, tracking, and more. +> :warning: **Attention please: This README is outdated.** +> +> The MRS UAV System 1.5 is being released and this page needs updating. Please, keep in mind that the information on this page might not be valid. +> Check this [WIP Google Document](https://docs.google.com/document/d/1NibHqNdyzzAYE7DNIMMq1HmzyFrBnISbzV17dP-waYw/edit?usp=sharing) for the latest news and changes. + ## TL;DR what has changed from the old system **Note:** The MRS UAV system v1.5 is still a Work-In-Progress and the documentation is undergoing maintanance ([Issue#169](https://github.com/ctu-mrs/mrs_uav_system/issues/169)).