Alex Davies b61a389b92 | ||
---|---|---|
.copier | ||
.github/workflows | ||
docs | ||
guiTools | ||
.gitignore | ||
.gitmodules | ||
README.md | ||
background.png | ||
docker-compose.yml |
README.md
Spiri SDK
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.
Machine-learning features like image recognition are expected to only work with NVIDIA GPUs.
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.
You can see the official docker documentation for more details.
Installing nvidia-container-toolkit
We recomend following the offical guide to install the nvidia-container-toolkit.
Make sure you run sudo nvidia-ctk runtime configure --runtime=docker
and sudo systemctl restart docker
.
When installed correctly you should see your gpu available in nvidia-ctk cdi list
.
Creating a new project
We provide project templates you can use for development that integrate seamlessly into our simulated robots.
These templates are intended to be used with VSCode.
To get started with our project templates install the copier project templating utility.
This template uses the last stable release of ROS1 (ros noetic) and supports python and c++ programming languages.
ROS1 is considered end of life. It's recomended to use a ROS2 template instead
- ROS2 template
We're working on it...