spiri-sdk/README.md

84 lines
2.8 KiB
Markdown
Raw Normal View History

2024-10-16 09:13:46 -03:00
# Spiri SDK
2024-09-19 11:20:08 -03:00
## Overview
2024-09-19 11:20:08 -03:00
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
2024-09-19 11:37:02 -03:00
docker compose file you'll find in this repository starts an ardupilot-based UAV simulation
2024-10-16 09:13:46 -03:00
as well as a ROS master, and mavproxy to tie it together, mirroring the core deployment of
a spiri robot.
2024-09-19 11:20:08 -03:00
## Prerequisites
2024-09-19 11:20:08 -03:00
This SDK was tested using Ubuntu 22.04 and an Nvidia GPU.
2024-09-20 08:12:27 -03:00
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.
2024-10-16 09:13:46 -03:00
We use VSCode as the default IDE, and we use [Copier](https://copier.readthedocs.io/en/stable/#installation) to
manage project templates.
2024-10-16 09:13:46 -03:00
### Installing Docker
2024-10-16 09:13:46 -03:00
As per the [official Docker documentation](https://docs.docker.com/engine/install/).
2024-10-16 09:13:46 -03:00
### Installing Copier
2024-10-16 09:13:46 -03:00
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
2024-10-16 09:13:46 -03:00
As per the [official VSCode documentation](https://code.visualstudio.com/docs/setup/linux)
2024-10-16 09:13:46 -03:00
```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
```
2024-10-16 09:13:46 -03:00
### 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`.
2024-10-16 09:13:46 -03:00
### Creating a new project
2024-09-19 11:20:08 -03:00
We provide project templates you can use for development that integrate seamlessly into
our simulated robots.
2024-09-19 11:37:02 -03:00
These templates are intended to be used with VSCode.
2024-09-19 11:20:08 -03:00
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...