Docker Setup (Experimental)
Docker enables running a different operating system environment in a container. In our case this allows you to run Ubuntu 22.04 with necessary ROS2 and PX4 dependencies even if your operating system does not support it.
Before beginning these steps, install QGroundControl locally on your system: https://docs.qgroundcontrol.com/Stable_V5.0/en/qgc-user-guide/getting_started/download_and_install.html
Windows (WSL)
Section titled “Windows (WSL)”- In PowerShell, install WSL:
wsl.exe --install Ubuntu-22.04- Open WSL (Ubuntu 22.04 shortcut) and install git:
sudo apt install -y git-
Set up GitHub SSH key.
-
Install Docker Desktop in Windows: https://docs.docker.com/desktop/setup/install/windows-install/
-
Clone mrover-drone repo in WSL:
git clone git@github.com:umrover/mrover-drone.git- Set correct versions for dependencies:
cd mrover-drone/depscd px4_msgsgit checkout release/1.15cd ../px4-ros2-interface-libgit checkout 1.4.0- Build the docker container:
eval $(ssh-agent -s)docker compose -f docker/compose.yml up -d --build mrover-droneAfter the build process finishes, check the setup logs by running:
docker compose -f docker/compose.yml logs --follow mrover-droneLook for the following output to ensure the container is set up correctly:
mrover-drone | + exec /bin/zshmrover-drone | (anon):12: character not in range- In future runs, start the docker container by opening the docker desktop app and running
./docker_up.shin WSL. - To enter the docker container, run:
docker compose -f docker/compose.yml exec -it mrover-drone /bin/zshDoesn’t really work. Gazebo did not run with OpenGL. For X11 apps use XQuartz and enable network connections from remote clients.