The purpose of this container is to run an ArduPilot SITL instance from within Docker. MAVProxy is included, for Gazebo support.
This repository uses GitHub Actions for CI.
To download a pre-built image, simply:
docker pull ghcr.io/monashuas/ardupilot-sitl-docker
and to run it:
docker run -it --rm -p 5760:5760 ghcr.io/monashuas/ardupilot-sitl-docker
If you'd rather build the docker image yourself:
docker build --tag ardupilot github.com/MonashUAS/ardupilot-sitl-docker
You can now use the --build-arg
option to specify which branch or tag in the ardupilot
repository you'd like to use. Here's an example:
docker build --tag ardupilot --build-arg COPTER_TAG=Copter-4.1.0 github.com/radarku/ardupilot-sitl-docker
If no COPTER_TAG is supplied, the build will use the default defined in the Dockerfile, currently set at Copter-4.1.0
To run the image:
docker run -it --rm -p 5760:5760 ardupilot
This will start an ArduCopter SITL on host TCP port 5760, so to connect to it from the host, you could:
mavproxy.py --master=tcp:localhost:5760
There are a number of options available to configure the simulator, for example, to run an ArduRover instance on port 5761, you could:
docker run -it --rm -p 5761:5760 --env VEHICLE=APMRover2 ardupilot
We also have an example env.list
file which can help you maintain your options and called like so:
docker run -it --rm -p 5761:5760 --env-file env.list ardupilot
The full list of options and their default values is:
INSTANCE 0
LAT 42.3898
LON -71.1476
ALT 14
DIR 270
MODEL +
SPEEDUP 1
VEHICLE arducopter
So, for example, you could issue a command such as:
docker run -it --rm -p 5761:5760 \
--env VEHICLE=APMRover2 \
--env MODEL=rover-skid \
--env LAT=39.9656 \
--env LON=-75.1810 \
--env ALT=276 \
--env DIR=180 \
--env SPEEDUP=2 \
ardupilot
Vehicles and their corresponding models are listed below:
ArduCopter: octa-quad|tri|singlecopter|firefly|gazebo-
iris|calibration|hexa|heli|+|heli-compound|dodeca-
hexa|heli-dual|coaxcopter|X|quad|y6|IrisRos|octa
APMRover2: rover|gazebo-rover|rover-skid|calibration
ArduSub: vectored
ArduPlane: gazebo-zephyr|CRRCSim|last_letter|plane-
vtail|plane|quadplane-tilttri|quadplane|quadplane-
tilttrivec|calibration|plane-elevon|plane-
tailsitter|plane-dspoilers|quadplane-tri
|quadplane-cl84|jsbsim