2024-09-19 11:20:08 -03:00
|
|
|
# Spiri SDK - Simulated robot
|
2024-01-22 15:42:59 -04:00
|
|
|
|
2024-09-19 11:20:08 -03:00
|
|
|
The Spiri SDK consists of a number of components. What you're looking at right now
|
|
|
|
is the drone simulation component, which is the core of the 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
|
2024-09-19 11:37:02 -03:00
|
|
|
docker compose file you'll find in this repository starts an ardupilot-based UAV simulation
|
2024-09-19 11:20:08 -03:00
|
|
|
as well as a ROS master, and mavproxy to tie it together.
|
|
|
|
|
2024-09-19 11:37:02 -03:00
|
|
|
To get started you can simply clone this repository and run `docker compose --profile uav-sim up`.
|
2024-09-19 11:20:08 -03:00
|
|
|
|
|
|
|
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.
|
|
|
|
|
2024-09-20 08:12:27 -03:00
|
|
|
There is experimental GUI support you can enable by running `docker compose --profile uav-sim --profile ui up`.
|
|
|
|
|
2024-09-19 11:20:08 -03:00
|
|
|
## Creating a new project
|
|
|
|
|
|
|
|
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...
|
2024-10-29 10:29:01 -03:00
|
|
|
|
|
|
|
|
|
|
|
## Single Vehicle Simulation
|
|
|
|
|
|
|
|
Ensure .env `SIM_DRONE_COUNT` is 1.
|
|
|
|
|
|
|
|
1. `docker compose --profile uav-sim --profiule ui up`
|
|
|
|
2. Click `Launch Gazebo` on the menu.
|
|
|
|
|
|
|
|
## Multi vehicle Simulation
|
|
|
|
|
|
|
|
Ensure variables in the `.env` file are correct.
|
|
|
|
|
|
|
|
### First Terminal
|
|
|
|
|
|
|
|
1. `docker compose --profile ui up`
|
|
|
|
2. Click `Launch Gazebo` on the menu.
|
|
|
|
|
|
|
|
### Second Terminal
|
|
|
|
|
|
|
|
This will launch ardupilot, mavproxy and mavros sessions, and will scale by the `SIM_DRONE_COUNT` env variable.
|
|
|
|
|
|
|
|
1. `python3 sim_drone.py`
|
|
|
|
|
|
|
|
|