Repository navigation
Home
hippo5329 edited this page Oct 15, 2026
·
38 revisions
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;
-
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
envpartition, startsmicro_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.
| 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.
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 isthe tool a command shell inside the firmware for testing sensors and motors: The tool test_accthe 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
| 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.