System Setup Guide
First-time configuration: WiFi, SSH, and development environment
Overview
What This Guide Covers
This guide walks you through the complete system setup process:
WiFi Configuration - Connect Beetlebot to your network
SSH Access - Remote terminal access to the robot
Network Verification - Ensure everything communicates properly
Laptop Setup - Install ROS2 on your development machine
ROS2 Multi-Machine - Configure laptop β robot communication
Verification Tests - Confirm everything works
β±οΈ Time Required
Robot WiFi Setup: 20 minutes
Laptop ROS2 Installation: 30-60 minutes (depending on internet speed)
Network Configuration: 15 minutes
Testing & Verification: 15 minutes
Total: 80-110 minutes (one-time setup)
π Prerequisites
β Completed Getting Started - Robot boots and responds to joystick
β Robot fully charged
β Laptop/PC with Ubuntu 22.04 or 24.04 (required for ROS2 Jazzy)
β WiFi network with internet access
β Network password available
β HDMI monitor + keyboard (temporary, for initial robot setup)
β Or USB keyboard + micro-HDMI cable for Pi 5
π οΈ What You'll Need
For robot:
β Beetlebot (powered on)
β HDMI monitor or TV
β USB keyboard
β Micro-HDMI to HDMI cable (Pi 5 uses micro-HDMI)
β οΈ Mouse optional (keyboard-only setup possible)
For laptop:
β Ubuntu 22.04 LTS or 24.04 LTS (native install recommended, not VM)
β 20GB+ free disk space
β Internet connection
β Admin/sudo access
Part 1: Connecting to Beetlebot
Option A: Direct Connection (Recommended for First Setup)
You'll need:
HDMI monitor
USB keyboard
Micro-HDMI to HDMI cable
Steps:
Power off robot (if currently on)
Connect monitor:
Pi 5 has 2Γ micro-HDMI ports
Use the port closest to USB-C power
Connect micro-HDMI β HDMI cable β monitor
Connect keyboard:
Plug USB keyboard into robot's side USB port
Or use any USB port if accessible
Power on robot:
Press power switch on back panel
Wait for boot (~90 seconds)
You should see boot messages on monitor
Login:
Username:
robotPassword: (provided by support - default not published for security)
Press Enter
You should see terminal prompt:
Success! You're now at a terminal on the robot.
Option B: Ethernet Direct Connection (Alternative)
If you don't have monitor/keyboard:
Connect laptop to robot via Ethernet cable (back panel RJ45)
Configure laptop Ethernet as static:
IP:
192.168.xx.xxxNetmask:
255.255.255.0
SSH to robot:
If this works, skip monitor setup!
Note: Robot may not have static IP configured yet - this assumes factory config. If connection fails, use monitor method.
Part 2: WiFi Configuration
Check Current Network Status
First, see what's currently configured:
Using the Setup Script (Recommended)
Your robot has a pre-installed setup script:
Configure WiFi with Script
What this script does:
Configures
wpa_supplicantwith your WiFi credentialsSets static IP address (192.168.29.101 by default)
Disables WiFi power saving (prevents dropouts)
Configures auto-reconnect
Sets up proper network priorities
Script output:
Verify WiFi Connection
Find Robot's IP Address
If you used DHCP instead of static IP:
Write down this IP! You'll need it for SSH.
Part 3: SSH Access Setup
From Your Laptop (on Same WiFi Network)
Ensure laptop is on same WiFi network as robot.
First connection will show:
Type: yes and press Enter
Setup SSH Keys (Optional but Recommended)
Makes login password-free:
Verify Robot Services
Once SSH'd into robot:
Test ROS2
If nodes are running: β System is healthy!
Part 4: Laptop ROS2 Installation
Check Ubuntu Version
Important: Robot runs ROS2 Jazzy. For best compatibility, laptop should also run Jazzy (Ubuntu 24.04).
Install ROS2 Jazzy (Ubuntu 24.04)
Official installation method:
Install Additional Tools
Setup ROS2 Environment
Part 5: Multi-Machine ROS2 Configuration
Understanding ROS2 Networking
Key concepts:
ROS_DOMAIN_ID:
Isolates ROS2 networks
Value: 0-101 (default: 0)
Must match on all machines!
DDS Discovery:
ROS2 uses DDS (Data Distribution Service)
Automatic peer discovery on same network
Works via multicast UDP
Firewall:
Must allow ROS2 traffic
Or disable firewall (not recommended for production)
Configure Laptop for Robot Communication
On your laptop:
Create CycloneDDS Configuration
Paste this configuration:
Save and exit (Ctrl+X, Y, Enter)
Update peer address if your robot uses different IP!
Configure Firewall (Ubuntu)
Option A: Allow ROS2 Traffic (Recommended)
Option B: Disable Firewall (Quick but less secure)
Part 6: Verification Tests
Test 1: Basic Connectivity
From laptop:
Test 2: SSH Connection
Test 3: ROS2 Node Discovery
On laptop (Terminal 1):
If you see nodes: β Multi-machine ROS2 works!
If no nodes appear:
Check
ROS_DOMAIN_IDmatches (robot and laptop both = 0)Check firewall allows traffic
Verify on same WiFi network
Check CycloneDDS config has correct IP
Test 4: Topic Echo
On laptop:
Try other topics:
Test 5: RViz Visualization
On laptop:
[PLACEHOLDER: Screenshot of RViz showing odometry]
If you see visualization: β Complete system working!
Test 6: Remote Control from Laptop
On laptop:
Robot should respond to laptop keyboard! β
Part 7: Optional Advanced Setup
Setup Hostname Resolution (mDNS)
Makes beetlebot.local work instead of IP address:
On robot:
Test from laptop:
Setup VS Code Remote Development
On laptop:
Configure connection:
Open VS Code
Press F1 β "Remote-SSH: Connect to Host"
Enter:
[email protected]Select Linux
Enter password (or use SSH keys for passwordless)
Now you can edit robot's code directly from laptop!
Setup Synchronized Time (Important for Sensor Fusion)
On robot:
Why important? Sensor fusion (EKF) requires accurate timestamps. If robot and laptop clocks differ >100ms, fusion may fail.
Part 8: Creating a Development Workspace
Setup on Laptop
Create workspace for your code:
Test Custom Node
Create a simple test node:
Paste this code:
Make executable:
Add to entry_points:
Build and run:
If node runs and publishes: β Development environment ready!
Part 9: Network Troubleshooting
Problem: Can't See Robot Nodes
Check list:
Problem: High Latency
Test latency:
Fixes:
Use 5GHz WiFi instead of 2.4GHz (less crowded)
Move closer to router
Check for WiFi interference
Use Ethernet cable for critical operations
Problem: Topics Drop/Intermittent
Check topic bandwidth:
Fixes:
Reduce topic rates (downsample data)
Use QoS profiles (reliable vs best-effort)
Check WiFi signal strength:
iwconfig wlan0
Part 10: Configuration Summary
Quick Reference - Network Settings
Robot (Beetlebot):
Laptop:
Files to Backup
Keep copies of these configurations:
Part 11: Next Steps
β
Setup Complete Checklist
Verify you've completed:
π― You're Now Ready For:
All Tutorials:
Hardware Familiarization (can use laptop + SSH now)
ROS2 Communication & Tools
Robot Simulation (Gazebo on laptop)
All sensor tutorials
SLAM Mapping with visualization
Autonomous Navigation
Development:
Write custom nodes on laptop
Test on real robot
Use RViz for debugging
Record and analyze rosbags
π Recommended Next Steps
Path 1: Learning (Recommended) β Start with ROS2 Communication & Tools β Learn ROS2 commands and debugging β Then proceed through tutorials in order
Path 2: Quick Start β Jump to Robot Simulation β Practice in Gazebo (safe, no battery drain) β Then try on real robot
Path 3: Exploration β Launch RViz and drive around β Visualize sensors in real-time β Get familiar with tools β Formal tutorials later
Troubleshooting Reference
Common Issues & Solutions
Can't SSH to robot
Check IP with monitor, verify WiFi connected
No nodes visible
Check ROS_DOMAIN_ID=0 on both machines
Topics not updating
Restart ROS2 daemon: ros2 daemon stop then start
RViz shows nothing
Check Fixed Frame matches topic frame (usually "odom")
High latency
Use 5GHz WiFi, move closer to router, or use Ethernet
Robot stops responding
Check battery voltage, may need charging
Firewall blocking
Allow ports: sudo ufw allow 7400:7410/udp
Time sync errors
Install chrony on robot: sudo apt install chrony
Getting Help
Still stuck?
Check documentation: https://docs.veerobot.com
ROS2 Jazzy docs: https://docs.ros.org/en/jazzy/
Email support: [email protected] with:
Clear description of problem
What you've tried
Output of diagnostic commands
Network configuration details
Expected response: Within 24 hours (business days)
System Setup Complete! π
β Continue to ROS2 Communication & Tools β Or jump to Tutorial Index
Last Updated: January 2026 Setup Guide - One-Time Configuration
Last updated