Go to file
Youssof 2534b048ca Supply mavros with dynamic sys id to ensure connection 2024-06-04 16:50:26 -03:00
.copier Added docks system 2024-05-28 14:55:44 -03:00
.github/workflows Added docks system 2024-05-28 14:55:44 -03:00
docs Added docks system 2024-05-28 14:55:44 -03:00
skel Supply mavros with dynamic sys id to ensure connection 2024-06-04 16:50:26 -03:00
.gitignore Added docks system 2024-05-28 14:55:44 -03:00
Dockerfile Custom simulator management command, because I have given up 2024-05-31 11:58:09 -03:00
README.md Working multi-drone simulation 2024-06-03 15:27:24 -03:00
background.png Initial commit 2024-01-22 15:42:59 -04:00
virtualize.sh Limited scope further, to just exporting a VDI image 2024-05-21 15:09:07 -03:00

README.md

Ways of running

There are two main ways of running this software.

Most users are recomended to install VirtualBox, create a new VM, and use the supplied VDI as the disk image. You will likely want to increase memory limits and CPU count above the default.

Advanced users can also use the SDK as a docker image. It pairs well with distrobox to better integrate it with their existing linux workflows.

distrobox create --unshare-all --init --image git.spirirobotics.com/spiri/spiri-sdk-desktop:master
distrobox enter spiri-sdk-desktop-main
#You can optionally copy the standard SDK setup from /opt/spiri-sdk/user-home-skeleton/
# cp -r /opt/spiri-sdk/user-home-skeleton/* ~/
cd /opt/spiri-sdk/PX4-Autopilot/
make px4_sitl gazebo-classic #Start the simulator

Usage

Each drone has it's own ros master, you can specify a ros master by adding a sys_id to your port

To launch the drone, run the command sim_drone.py start-group 2. For more detailed information user the --help command. You must run the command from inside a folder with a compliant dockerfile.

If using the VM there should be one on your desktop, if not you can run cp -r /opt/spiri-sdk/user-home-skeleton/ ~/ and all relevent development resources will be added to your home folder.

ROS_MASTER_URI=http://localhost:11311 rostopic list #Drone with sys_id 1
ROS_MASTER_URI=http://localhost:11312 rostopic list #Drone with sys_id 2

Building

#Note that because this is running in a container, the -o output flag must be relative to the current directory.
# We mount the current working directory in the docker container as part of this script.
./virtualize.sh build ./ -s 100gb  -o sdk.vdi

For testing the VM, I use the following

./virtualize.sh build ./ -s 100gb  -o sdk.qcow2
qemu-system-x87_64 -display default,show-cursor=on -enable-kvm  -device virtio-gpu -m 4g -smp 4 -hda sdk.qcow2