From 9fe800df0f0f60b4edc50f207a00158f263c29b1 Mon Sep 17 00:00:00 2001 From: Alex Davies Date: Wed, 16 Oct 2024 11:47:57 -0300 Subject: [PATCH] docs: Update README with installation instructions and project overview --- README.md | 53 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 5fda9a0..141aeb2 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,47 @@ # Spiri SDK +## Overview + Spiri Robots run a number of docker containers to achieve their core functionality, we try to keep these essential docker containers in one docker compose file. The docker compose file you'll find in this repository starts an ardupilot-based UAV simulation as well as a ROS master, and mavproxy to tie it together, mirroring the core deployment of a spiri robot. -To get started you can simply clone this repository and run `docker compose --profile uav-sim up`. - -Once the simulated UAV is running you can connect to it with QGroundControl or other -MavLink compatible software. We expose the UAVs Mavlink conenction on tcp port 5760. - -There is experimental GUI support you can enable by running `docker compose --profile uav-sim --profile ui up`. - ## Prerequisites -The Spiri-SDK is intended for use on linux. -It was tested with docker engine `20.10.24` and NVIDIA Container Toolkit CLI version `1.16.2`. - -UI features like virtual camera support were tested with Nvidia GPUs using CDI passthrough, but could -work with other GPUs as long as they support CDI. +This SDK was tested using Ubuntu 22.04 and an Nvidia GPU. +UI features like 3D worlds (gazebo simulation) were tested with Nvidia GPUs using CDI passthrough. Machine-learning features like image recognition are expected to only work with NVIDIA GPUs. +We use VSCode as the default IDE, and we use [Copier](https://copier.readthedocs.io/en/stable/#installation) to +manage project templates. + ### Installing Docker -There are many ways to install docker for your platform. We recomend using your linux distribution's package -manager to install docker, using a command like `sudo apt-get install docker-compose-v2`. The exact command -will vary depending on your exact linux distribution. +As per the [official Docker documentation](https://docs.docker.com/engine/install/). -You can see the [official docker documentation](https://docs.docker.com/engine/install/) for more details. +### Installing Copier + +As per the [official Copier documentation](https://copier.readthedocs.io/en/stable/#installation) + +```bash +python3 -m pip install --user pipx +python3 -m pipx ensurepath +pipx install copier +``` + +### Installing VSCode + +As per the [official VSCode documentation](https://code.visualstudio.com/docs/setup/linux) + +```bash +sudo apt-get install wget gpg +wget https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64 -O /tmp/vscode.deb +sudo dpkg -i /tmp/vscode.deb +``` ### Installing nvidia-container-toolkit @@ -41,8 +52,16 @@ Make sure you run `sudo nvidia-ctk runtime configure --runtime=docker` and `sudo When installed correctly you should see your gpu available in `nvidia-ctk cdi list`. +## Quickstart -## Creating a new project +To get started you can simply clone this repository and run `docker compose --profile uav-sim up`. + +Once the simulated UAV is running you can connect to it with QGroundControl or other +MavLink compatible software. We expose the UAVs Mavlink conenction on tcp port 5760. + +There is experimental GUI support you can enable by running `docker compose --profile uav-sim --profile ui up`. + +### Creating a new project We provide project templates you can use for development that integrate seamlessly into our simulated robots.