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.git
Then, go to the docker
folder in wild_visual_navigation
cd ~/git/wild_visual_navigation/docker
Note: All the following commands must be executed in this folder
Build the Docker image running:
docker compose -f docker-compose-gui-nvidia.yaml build
Start the container in detached mode:
docker compose -f docker-compose-gui-nvidia.yaml up -d
Launch a first bash terminal in the container to start the simulation environment:
docker compose -f docker-compose-gui-nvidia.yaml exec wvn_nvidia /bin/bash
Once in the container, source the first_run
script to install the WVN package that is mounted automatically when the container starts:
source first_run.sh
Launch 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/bash
And then, once you are in the container:
roslaunch wild_visual_navigation_jackal wild_visual_navigation.launch
Wait 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 down
If 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:*
xhost
Then restart the container and run the other commands. Now RViz should pop up.