Quick Start: From Robot Setup to Running a Program
This page covers the minimum required steps to go from a freshly assembled robot to a running program. Nothing optional, no detours.
What You Need
Hardware:
- A Wombat controller (Raspberry Pi 5 based) with the Raccoon image flashed to the SD card
- At least 2 DC motors wired to motor ports 0 and 1
- A powered battery pack connected to the Wombat
On your laptop:
- Python 3.11 or newer
- pip (comes with Python)
- A terminal (Terminal on macOS/Linux, Windows Terminal on Windows)
[PICTURE: Photo of a Wombat controller with motors connected and battery attached]
Step 1 — Power On the Robot
Connect the battery and switch the Wombat on. After a few seconds the touchscreen will show the dashboard with three tiles: Sensors & Actors, Programs, and Settings.
[PICTURE: Robot touchscreen showing the dashboard with the three tiles]
The robot also broadcasts a WiFi access point. The network name (SSID) and password are shown on the screen.
Step 2 — Connect Your Laptop to the Robot’s WiFi
On your laptop, open your WiFi settings and connect to the network the robot is broadcasting. The robot’s IP address is usually 192.168.4.1 and is displayed on the touchscreen.
[PICTURE: Laptop WiFi settings screen selecting the robot’s network]
Step 3 — Install raccoon on Your Laptop
Open a terminal and run:
pip install raccoon
Verify it installed correctly:
raccoon --help
You should see a list of available commands.
Step 4 — Connect raccoon to Your Robot
raccoon connect 192.168.4.1
raccoon will establish a connection to the robot and save it for future commands. You only need to do this once (or when you switch robots).
Confirm the connection is active:
raccoon status
Step 5 — Create a New Project
raccoon create project MyRobot
cd MyRobot
This creates a project folder with the following structure:
MyRobot/
├── raccoon.project.yml ← hardware configuration
├── src/
│ ├── main.py ← entry point
│ ├── hardware/ ← generated files (do not edit manually)
│ └── missions/ ← your mission files go here
Step 6 — Configure Your Hardware
raccoon wizard
The wizard asks a series of questions:
- Drivetrain type — choose
differential(2 driven wheels) ormecanum(4 omnidirectional wheels) - Motor ports — which port number each motor is connected to on the Wombat
- Motor inversion — whether any motors spin the wrong direction (you can always change this later)
- Robot dimensions — wheel diameter and track width in millimetres
Your answers are saved to raccoon.project.yml. You can re-run the wizard at any time to change them.
Step 7 — Generate Hardware Code
raccoon codegen
This reads your configuration and creates two files:
src/hardware/defs.py— motor and sensor objectssrc/hardware/robot.py— theRobotclass with your drivetrain
Do not edit these files manually — they are overwritten every time you run codegen.
Step 8 — Calibrate Your Motors
Place the robot on the ground where the wheels can spin freely, then run:
raccoon calibrate
The motors will spin while the calibration routine measures their response. When it finishes, the optimal PID and feedforward parameters are saved to your raccoon.project.yml automatically.
[PICTURE: Robot on the floor with wheels spinning during calibration]
Step 9 — Write a Mission
Open src/missions/ and create a file called drive_mission.py:
from libstp.mission import Mission
class DriveMission(Mission):
def sequence(self):
# Drive forward 30 cm
self.robot.motion.drive(distance_mm=300)
# Turn 90 degrees right
self.robot.motion.turn(angle_deg=90)
# Drive forward 20 cm
self.robot.motion.drive(distance_mm=200)
Then open src/main.py and register the mission:
from hardware.robot import Robot
from missions.drive_mission import DriveMission
robot = Robot()
robot.add_mission(DriveMission)
robot.start()
Step 10 — Run It
raccoon run
raccoon will automatically sync your project files to the robot and execute src/main.py. You will see the robot’s output streamed back to your terminal in real time.
[PICTURE: Terminal showing output from raccoon run with the robot moving]
What Comes Next
Now that your robot is running, explore the rest of the documentation:
- raccoon-cli reference — all available commands explained
- Programming guide — all motion commands, sensor APIs, and mission patterns
- Web IDE — build missions visually in the browser
- Robot UI — what you can do from the robot’s touchscreen
Common Problems
“Connection refused” when running raccoon connect
Make sure your laptop is connected to the robot’s WiFi, not your home network.
Motors don’t move
Check that the motor cables are firmly seated in the Wombat ports. Verify the port numbers match what you entered in the wizard.
Robot drives in the wrong direction
Re-run raccoon wizard and flip the inverted setting for the affected motor, then re-run raccoon codegen.
Calibration fails immediately
Ensure the battery is sufficiently charged. Low battery prevents motor operation.