84 lines
2.8 KiB
Markdown
84 lines
2.8 KiB
Markdown
# 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.
|
|
|
|
|
|
## Prerequisites
|
|
|
|
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
|
|
|
|
As per the [official Docker documentation](https://docs.docker.com/engine/install/).
|
|
|
|
### 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
|
|
|
|
|
|
We recomend following the [offical guide](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html) 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`.
|
|
|
|
## Quickstart
|
|
|
|
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.
|
|
|
|
These templates are intended to be used with VSCode.
|
|
|
|
To get started with our project templates install the [copier](https://copier.readthedocs.io/en/stable/) project
|
|
templating utility.
|
|
|
|
* [template-service-ros1-catkin](https://git.spirirobotics.com/Spiri/template-service-ros1-catkin)
|
|
|
|
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...
|