spiri-sdk/README.md

63 lines
2.0 KiB
Markdown
Raw Normal View History

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`