Skip to content

Installation

Martin Scheiber edited this page Oct 4, 2023 · 7 revisions

Installation

Installation using SkiffOS

The CNS Flight Stack is based on SkiffOS. We provide a fully compiled docker image to run on SkiffOS and a corresponding environment to complement the flight stack's features. A detailed tutorial on this environment and compiling it from source can be found here.

To use the flight stack with SkiffOS, you have to compile the OS for your hardware.

  1. Clone and setup the SkiffOS workspace
    git clone https://github.com/aau-cns/flight_stack_skiffos
    cd flight_stack_skiffos
    ./setup.sh
    This setup script will checkout the submodules and open the path in skiffos
  2. Setup the platform environment
    export SKIFF_WORKSPACE=<WORKSPACE_NAME> # choose any here
    export SKIFF_CONFIG=<PLATFORM>,flightstack/full
    Please replace <PLATFORM> with your desired platform from this list. E.g. for an OdroidXU4 the command will be export SKIFF_CONFIG=odroid/xu,flightstack/full
  3. Compile SkiffOS (note: this might require up to 20GB of free space and can take up to 2h)
    make configure compile
  4. Transfer the image to your device. This is device-dependent, please consult the SkiffOS Readme. E.g., in case of the OdroidXU4 you would copy the image to a SD card with
    sudo bash # all steps are run as sudo
    export SKIFF_WORKSPACE=<WORKSPACE_NAME> # replace the workspace with the one you defined
    blkid #check the device for the SD Card e.g. /dev/mmc0xyz
    export ODROID_SD=/dev/mmc0xyz #!!Replace with the correct device
    make cmd/odroid/common/format
    make cmd/odroid/common/install
  5. Bootup the platform with SkiffOS installed. This step will run the final setup (can take up to 1h) and requires an internet connection on the device.
  6. You can now login to your platform with ssh core@<DEVICE_IP>.

For further details, and compiling or modifiying the Skiff installation please consult this detailed tutorial

Installation without SkiffOS

In case you want to test the CNS Flight Stack without the complementary Skiff environment, checkout and compile the ROS1 workspace

git clone https://github.com/aau-cns/flight_stack flight_stack_cws
cd flight_stack_cws

# set ROS_VERSION
export ROS_VERSION=noetic # other supported version is 'melodic'

# update submodules and init workspace
git submodule update --init --recursive
catkin init
catkin config --extend /opt/ros/${ROS_VERSION}
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

# install dependencies
sudo docker/install_ros1_noetic_dependencies.sh -v ${ROS_VERSION}
sudo scripts/install_scripts.sh

# build the workspace
catkin build

The full list of dependencies for the workspace can also be found in the above mentioned install script.

Pre-compiled Docker Image

Further, we provide a pre-compiled docker image with all dependencies for the ROS1 workspace installed.

# pull docker image
export FS_IMAGE_TAG="gitlab.aau.at:5050/aau-cns-docker/docker_registry/cns_flight_stack_cws_env:latest"
docker pull ${FS_IMAGE_TAG}

# execute image with source linked
cd flight_stack_cws
docker run -it --rm --network=host -v "$(pwd)/src":/source:ro ${FS_IMAGE_TAG}

# you will be in an uncompiled catkin workspace, before usage compile with
(docker-image)$ catkin build