Go to file
Youssof 716161abeb Limit number of simulated drones to be between 1 and 10 2024-06-05 11:14:53 -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 Limit number of simulated drones to be between 1 and 10 2024-06-05 11:14:53 -03:00
.gitignore Limit number of simulated drones to be between 1 and 10 2024-06-05 11:14:53 -03:00
Dockerfile Replace lubuntu with lxqt 2024-06-05 10:18:05 -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