We provide an example package to demonstrate Wild Visual Navigation on a simulated environment with a Clearpath Jackal robot.
This example should be self-contained and it should run on a Docker container. This was tested on Ubuntu machines, we do not expect the GUI to run on Windows or Mac computers (due to X11 support).
The instructions assume you have Docker installed. If you haven't used Docker before, please take a look at the excellent resources prepared by Tobit Flatscher in docker-for-robotics, which this demo builds upon.
First clone the WVN and our STEGO reimplementation.
mkdir ~/git && cd ~/git
git clone git@github.com:leggedrobotics/wild_visual_navigation.git
git clone git@github.com:leggedrobotics/self_supervised_segmentation.gitThen, go to the docker folder in wild_visual_navigation
cd ~/git/wild_visual_navigation/dockerNote: All the following commands must be executed in this folder
Build the Docker image running:
docker compose -f docker-compose-gui-nvidia.yaml buildStart the container in detached mode:
docker compose -f docker-compose-gui-nvidia.yaml up -dLaunch a first bash terminal in the container to start the simulation environment:
docker compose -f docker-compose-gui-nvidia.yaml exec wvn_nvidia /bin/bashOnce in the container, source the first_run script to install the WVN package that is mounted automatically when the container starts:
source first_run.shLaunch the Gazebo simulation environment and an RViz window as the main interface.
roslaunch wild_visual_navigation_jackal sim.launch If this doesn't open any window, please check the troubleshooting section below.
Open a new terminal to launch WVN in the same container:
docker compose -f docker-compose-gui-nvidia.yaml exec wvn_nvidia /bin/bashAnd then, once you are in the container:
roslaunch wild_visual_navigation_jackal wild_visual_navigation.launchWait until the Rviz window show the simulation environment. Once it's ready, you can drive the Jackal robot by sending 2D Nav goals using RViz. We implemented a simple carrot follower that was tuned for the demo (not actually used in real experiments)
Kill all the terminals as usual (Ctrl + D). Then, stop the container using:
docker compose -f docker-compose-gui-nvidia.yaml downIf RViz doesn't show up, you'll see an error like this in the terminal:
No protocol specified qt.qpa.xcb: could not connect to display :1
To fix it, you might need to allow the X Server to connect before running the container. Stop everything (including the container) and then run:
xhost +Local:*
xhostThen restart the container and run the other commands. Now RViz should pop up.