65 lines
2.6 KiB
Markdown
65 lines
2.6 KiB
Markdown
# 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](https://docs.docker.com/engine/install/) for more details.
|
|
|
|
### 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`.
|
|
|
|
|
|
## 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...
|