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:

  1. WiFi Configuration - Connect Beetlebot to your network

  2. SSH Access - Remote terminal access to the robot

  3. Network Verification - Ensure everything communicates properly

  4. Laptop Setup - Install ROS2 on your development machine

  5. ROS2 Multi-Machine - Configure laptop ↔ robot communication

  6. 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

You'll need:

  • HDMI monitor

  • USB keyboard

  • Micro-HDMI to HDMI cable

Steps:

  1. Power off robot (if currently on)

  2. Connect monitor:

    • Pi 5 has 2Γ— micro-HDMI ports

    • Use the port closest to USB-C power

    • Connect micro-HDMI β†’ HDMI cable β†’ monitor

  3. Connect keyboard:

    • Plug USB keyboard into robot's side USB port

    • Or use any USB port if accessible

  4. Power on robot:

    • Press power switch on back panel

    • Wait for boot (~90 seconds)

    • You should see boot messages on monitor

  5. Login:

    • Username: robot

    • Password: (provided by support - default not published for security)

    • Press Enter

  6. 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:

  1. Connect laptop to robot via Ethernet cable (back panel RJ45)

  2. Configure laptop Ethernet as static:

    • IP: 192.168.xx.xxx

    • Netmask: 255.255.255.0

  3. SSH to robot:

  1. 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:

Your robot has a pre-installed setup script:

Configure WiFi with Script

What this script does:

  1. Configures wpa_supplicant with your WiFi credentials

  2. Sets static IP address (192.168.29.101 by default)

  3. Disables WiFi power saving (prevents dropouts)

  4. Configures auto-reconnect

  5. 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

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_ID matches (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:

  1. Open VS Code

  2. Press F1 β†’ "Remote-SSH: Connect to Host"

  3. Select Linux

  4. 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


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

Problem
Solution

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?

  1. Check documentation: https://docs.veerobot.com

  2. ROS2 Jazzy docs: https://docs.ros.org/en/jazzy/

  3. 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