The software stack of the Robobuggy team at CMU. This code was run for Raceday '25, on both Short Circuit and NAND.
We push buggy and code, but not buggy code.
- Installation and Initial Setup
- Launching Code
- Docker
- Git
- Foxglove
- VSCode (recommended)
- Installation instructions here: https://docs.docker.com/get-docker/
- Installation instructions here: https://foxglove.dev/
- Go to Microsoft Store to install "Ubuntu 22.04 LTS".
- In Docker Desktop App: go to settings -> general and turn on "Use Rosetta for x86/amd64 emulation on Apple Silicon"
This is so you can edit our codebase locally, and sync your changes with the rest of the team through Git.
- In your terminal type:
$ git clone https://github.com/CMU-Robotics-Club/robobuggy-software.git. - The clone link above is the URL or can be found above: code -> local -> Clone HTTPS.
- Foxglove is used to visualize both the simulator and the actual buggy's movements.
- First, you need to import the layout definition into Foxglove. On the top bar, click Layout, then "Import from file".

- Go to repository and choose the file telematics layout for the correct buggy
- To visualize the simulator, launch the simulator and then launch Foxglove and select "Open Connection" on startup.
- Use this address
ws://localhost:8765for Foxglove Websocket - Open Foxglove, choose the third option "start link".

- Install the appropriate X11 server on your computer for your respective operating systems (Xming for Windows, XQuartz for Mac, etc.).
- Mac: In XQuartz settings, ensure that the "Allow connections from network clients" under "Security" is checked.
- Windows: Make sure that you're using WSL 2 Ubuntu and NOT command prompt.
- While in a bash shell with the X11 server running, run
xhost +local:docker. - Boot up the docker container using the "Alternate Shortcut" above.
- Run
xeyeswhile INSIDE the Docker container to test X11 forwarding. If this works, we're good.
- Use
$ cdto change the working directory to berobobuggy-software - (If you are on Windows, you need to run the rest of this guide within a linux shell. Type
$ bashin the terminal to open the Ubuntu shell.) - Update
./setup_dev.shto be executable by runningchmod +x ./setup_dev.sh - Then do
./setup_dev.shin therobobuggy-softwaredirectory to launch the docker container. - Then you can execute and enter the docker container using
$ docker exec -it robobuggy-software-main-1 bash. - When you are done, click Ctrl+C and use Ctrl+D or
$ exitto exit.
- Make sure you are in the
rb_wsdirectory. This is the workspace where we will be doing all our ROS stuff. - To learn ROS on your own, follow the guide on https://wiki.ros.org/ROS/Tutorials.
- Boot up the docker container (instructions above)
- Run
ros2 launch buggy sim_2d_single.xmlto simulate 1 buggy - Run
ros2 launch buggy sim_2d_double.xmlto simulate 2 buggies
- See Foxglove Visualization for visualizing the simulation.
- Connect to the Wi-Fi named ShortCircuit.
- In the command line window:
-
SSH to the computer on ShortCircuit:
-
Attach to the tmux session (this will split your window into 4 panes):
tmux a -t buggy
- Top left pane: system node
- Top middle pane: main (auton) node
- Top right pane: rosbag node (prefilled with a
startbagcommand) - Bottom pane: your working terminal
Refer to this guide on tmux for usage tips.
-
To restart the buggy stack, if needed:
sudo systemctl restart buggy
-
- Open Foxglove and connect locally to:
ws://192.168.1.217/8765
- Connect to the Wi-Fi named NAND.
- In the command line window:
- SSH to the computer on NAND:
- Rest of the Terminal and Foxglove steps are the same as Short Circuit.
- Stop the buggy stack
sudo systemctl stop buggy
- Shutdown the ShortCircuit/NAND computer
sudo shutdown now