Skip to content
hippo5329 edited this page Oct 15, 2026 · 38 revisions

Linorobot2 Cockpit

Linorobot2 Cockpit Logo

From a bare microcontroller to SLAM, Nav2 and a saved map — in one click, from a browser.

Linorobot2 Cockpit is a complete robotics software suite combining a web supervisor, prebuilt micro-ROS firmware, and a full ROS 2 navigation stack for linorobot2-style mobile robots. It runs on your robot computer (Raspberry Pi 5, Jetson, or any Linux PC) and is controlled from any browser on your local network.

flowchart LR
    Plug["Plug board in<br/>(or none for Sim MCU)"]
    Up["docker compose up -d<br/>open ?token= link"]
    OneClick["Click Start 1-Click<br/>(auto-detects board)"]
    Result["Live ROS 2 topics<br/>→ SLAM → Nav2 → saved map"]
    Plug ==> Up ==> OneClick ==> Result
    classDef s fill:#0b3b8c,stroke:#7db8ff,stroke-width:3px,color:#ffffff,font-weight:bold;
    class Plug,Up,OneClick,Result s;
Loading

Why Linorobot2 Cockpit?

  • One click from a bare board to a saved map. The cockpit detects the MCU, flashes prebuilt micro-ROS firmware, writes the robot's settings into the board's 4 KB env partition, starts micro_ros_agent, checks every topic's rate, brings up SLAM Toolbox and Nav2, maps the room, runs an eight-manoeuvre drive test and saves the map, all from a browser. See The One-Click Pipeline.
  • Runs before you wire anything. A bare $5 board, or no board at all (the Sim MCU), runs the real firmware with simulated motors, IMU and LiDAR, including DC-motor physics and battery sag, so the whole navigation stack is qualified before you solder. See Simulation Mode & the Bare Module.
  • No compiler needed. Releases ship flashable firmware for every supported board and Docker images for ROS 2 Jazzy and Lyrical, amd64 and arm64.
  • Wi-Fi robots leave the cable. An ESP32 or ESP32-S3 on Wi-Fi is flashed over USB once; after that the cockpit finds it by name and writes its firmware and settings over the air, and its test tools report back over Wi-Fi. See A Wi-Fi robot leaves the cable.
  • One config file per robot. Pins, kinematics, sensors and Nav2 limits live in one YAML file in ~/linorobot2-config/, kept in your own git repository.
  • Hardware-safe. The cockpit checks the board's identity before flashing and refuses mismatched silicon; the diagnostic tools refuse to run against simulated hardware.
  • No RViz required. Live scan, map, robot pose and navigation goals in the browser.

Start here

I want to… Read
Install it Installation & Docker
Get from a fresh install to a saved map, step by step Web UI Guide
Use a commercial board or kit Reference Designs
Build my own robot, step by step Building a Real Robot
Test my sensors and motors Hardware Tests (tab 6) → Enter tool; how it works: The tool
Check my robot's speeds against its LiDAR Check the speeds against the LiDAR
Wire my own robot Pin Matrix & Wiring
Fix an error Troubleshooting (search for the exact message)

Every page is also in the sidebar. New to ROS 2 robots? The words the pages use are explained below.

Words you'll see

Word What it is
micro-ROS ROS 2 for microcontrollers: the firmware on the board publishes and subscribes to ROS 2 topics
agent micro_ros_agent, the program on the robot computer that carries the board's micro-ROS messages onto the ROS 2 network (over USB serial or Wi-Fi)
env partition a 4 KB block of the board's flash holding the robot's settings (pins, kinematics, Wi-Fi), written without reflashing the firmware: The env partition
SLAM building a map while finding the robot on it (SLAM Toolbox)
Nav2 the ROS 2 navigation stack: plans a path to a goal and drives the robot along it
AMCL locating the robot on a map saved earlier, instead of SLAM: Navigating on a saved map
EKF the filter that fuses wheel odometry and the IMU into the robot's pose (/odom)
TF ROS 2's tree of coordinate frames (map → odom → base_link → laser) that says where each part is
the tool a command shell inside the firmware for testing sensors and motors: The tool
test_acc the tool's drivetrain test: every wheel at up to full power, on the floor, to measure speed and acceleration: Find the real limits
Sim MCU the firmware running on the robot computer itself, with nothing plugged in: The Sim MCU
bring-up the checked, step-by-step test of a real robot's parts before it may drive itself: The bring-up checklist

Supported microcontrollers

Microcontroller Architecture Release image micro-ROS link Reference designs
Raspberry Pi Pico 2 / Pico 2 W RP2350 (Cortex-M33) pico2-<distro> USB serial; a W also on Wi-Fi (udp4) Pico 2 Mecanum, SparkFun XRP
Raspberry Pi Pico / Pico W RP2040 (Cortex-M0+) pico-<distro> USB serial; a W also on Wi-Fi (udp4) Pimoroni Motor 2040, Cytron Maker Pi RP2040
ESP32 ESP32 (Xtensa LX6) esp32-<distro> USB serial (bridge chip) or Wi-Fi Waveshare General Driver, Maker's Pet Mini, NULLLAB Maker-ESP32 PRO
ESP32-S3 ESP32-S3 (Xtensa LX7) esp32s3-<distro> Native USB (default) or a UART bridge, or Wi-Fi Yahboom YB-EET01
Arduino UNO Q STM32U585 (Cortex-M33), on Zephyr; the board's QRB2210 is the robot computer unoq-jazzy / unoq-lyrical (Zephyr), flashed over SWD from the board The board's internal UART (/dev/ttyHS1), 4 Mbaud Arduino UNO Q
Sim MCU none: the firmware runs on the robot computer built into the image micro-ROS over UDP —

<distro> is jazzy or lyrical. Any of these boards also runs as a bare module with nothing wired. Per-MCU pin rules are in Pin Matrix & Wiring.

Clone this wiki locally