Linorobot2
ROS 2 software stack for DIY 2WD, 4WD and mecanum robots built from off-the-shelf parts; not a hardware design.
- No hardware design files released
- mobile robot2 DoF
- cost not published
About Linorobot2
Linorobot2 is a ROS 2 package that takes a robot from bare hardware to fully autonomous navigation. It ships pre-integrated Nav2, SLAM Toolbox and robot_localization, a templated URDF with lidar, depth camera and IMU, and a Gazebo simulation, supporting 2WD, 4WD and mecanum-drive bases. Physical-robot assembly and micro-ROS firmware (ESP32 and Raspberry Pi Pico family boards on current branches; Teensy support ended with Humble) live in the companion linorobot2_hardware repo.
Licenses
- Hardware
- No hardware design files releasedApache-2.0 covers the ROS 2 software; upstream publishes no chassis CAD
- Software
- Apache-2.0
- Docs
- Not published
Degrees of freedom
2 DoF wheels 2
2wd4wdHolonomic baseMecanum wheelssource
How to build Linorobot2
5 stepsSteps marked Motari summary condense the linked source; follow the source for exact instructions. Upstream step marks a step taken from the linked guide.
Assemble the base
Build a 2WD, 4WD or mecanum base from off-the-shelf parts following the linorobot2_hardware guide: motors, encoders, motor driver, IMU and lidar.
Motari summarylinorobot.github.io/linorobot2Flash the micro-ROS firmware
Uncomment the base, motor driver and IMU your robot uses in a config file under config/custom, then build and upload the micro-ROS firmware with PlatformIO to an ESP32 or Raspberry Pi Pico family board. Teensy support ended with the Humble branch.
Motari summarylinorobot.github.io/linorobot2Install the ROS 2 stack
On the robot computer, run install.bash with your --base, and optional --laser and --depth, to set up the workspace, sensor drivers, micro-ROS and the linorobot2 package.
Upstream steplinorobot.github.io/linorobot2/installationConfigure the robot
Edit the URDF properties file with your robot dimensions and sensor poses; the same config drives both hardware and Gazebo.
Motari summarylinorobot.github.io/linorobot2Run SLAM and navigation
Launch linorobot2_bringup, build a map with SLAM Toolbox, then run Nav2 for autonomous navigation.
Motari summarylinorobot.github.io/linorobot2
Wiring, power and firmware are safety-relevant and shown for reference only. Check them against the source before building.
Linorobot2 bill of materials
10 rowsCost to build
The sources do not publish a cost total. The rows below are what they list, without a sum.
Linorobot2 parts, as the source lists them. Prices are the source's, not checked against vendors.
| Part | Qty | Spec | Source | Confidence |
|---|---|---|---|---|
Microcontrollermicro-ROS firmware host; controller choice is configurable | 1 | ESP32 / ESP32-S2 / ESP32-S3 / Raspberry Pi Pico class; Teensy family remains in firmware environments but is deprecated/untested in current hardware docs | configurableprice not listedlinorobot2_hardware README and platformio environments | high |
Robot computer or workstation hostROS 2 host for bringup/Nav2; serial setups use an onboard robot computer | 1 | Raspberry Pi-class SBC or external workstation depending on serial/WiFi configuration | configurableprice not listedlinorobot2_hardware quickstart and Linorobot2 system configurations | high |
Geared drive motors with encodersdrive motors for differential, skid-steer, or mecanum bases | 2 | 2 motors for differential drive; configs also define MOTOR3/MOTOR4 for 4WD and mecanum variants | configurableprice not listedlinorobot2_hardware wheel orientation and motor encoder config | high |
Motor drivermotor-driver class selected in firmware config | 1 | GENERIC_2_IN, GENERIC_1_IN, BTS7960, or ESC motor driver | configurableprice not listedsupported motor drivers documented in linorobot2_hardware | high |
IMU / magnetometer moduleoptional inertial sensing for localization filters | 1 | GY-85, MPU6050, MPU9150, MPU9250, QMI8658 and supported magnetometers | configurableprice not listedsupported IMU and MAG defines documented in linorobot2_hardware | high |
Wheels and drive-base mechanicalsmechanical base geometry is user-configured | 1 | wheel diameter and left/right wheel distance are firmware-configured; no canonical shopping-list chassis is published | configurableprice not listedlinorobot2_hardware orientation and base config constants | med |
Motor power supply and safety wiringmotor supply voltage and optional emergency switch are documented | 1 | motor power source configured by voltage constants; emergency switch recommended for bigger robots | configurableprice not listedlinorobot2_hardware system diagram and power constants | med |
Serial or WiFi micro-ROS linktransport between controller and ROS 2 agent | 1 | serial link for onboard robot computer, or ESP32 WiFi transport configuration | configurableprice not listedlinorobot2_hardware and system configuration docs | high |
2D lidarSLAM and Nav2 laser sensor input | 1 | RPLIDAR, LD06, LD19, STL27L, YDLIDAR, XV11, or compatible supported laser source | configurableprice not listedLinorobot2 supported laser sensor table | high |
RGBD depth cameraoptional depth perception source | 1 | Intel RealSense D435/D435i, Zed family, OAK-D family, or compatible supported depth source | configurableprice not listedLinorobot2 supported depth sensor table | high |
Rows from the source's own parts list 13
README.md@aaf9d59markdown
| Source row | Qty | Price and vendor | Line |
|---|---|---|---|
Microcontroller | vendor not listedno price listed | L22 | |
Robot computer or workstation host | vendor not listedno price listed | L45 | |
Geared drive motors with encoders | vendor not listedno price listed | L97 | |
Motor driver | vendor not listedno price listed | L114 | |
IMU / magnetometer module | vendor not listedno price listed | L128 | |
Motor power supply and safety wiring | vendor not listedno price listed | L179 |
firmware/platformio.ini@aaf9d59ini
| Source row | Qty | Price and vendor | Line |
|---|---|---|---|
Microcontroller firmware environments | vendor not listedno price listed | L34 |
docs/system_configurations.md@157fd05markdown
| Source row | Qty | Price and vendor | Line |
|---|---|---|---|
Robot computer and sensor host | vendor not listedno price listed | L7 |
config/lino_base_config.h@aaf9d59c_header
1 more source files with parts rows are listed under Files.
Linorobot2 source files
12 files- linorobot2_gazebo/models/turtlebot3_world/model.sdf
- linorobot2_gazebo/models/turtlebot3_world/model-1_4.sdf
- linorobot2_description/urdf/robots/vattenkar.urdf.xacro
- linorobot2_description/meshes/base.dae
- linorobot2_description/meshes/tire.dae
- linorobot2_gazebo/models/turtlebot3_world/meshes/wall.dae
- linorobot2_navigation/rviz/linorobot2_navigation.rviz
- linorobot2_navigation/config/navigation.yaml
- linorobot2_navigation/rviz/linorobot2_slam.rviz
- docs/index.md
- docs/docker.md
- docs/architecture.md
Files stay in the upstream repository under their own licenses; these links open them there. The 3D model on this page is Motari's conversion of the file named under Simulation.
Linorobot2 in simulation
Robot description files a simulator or CAD tool can load, linked at the commit they were found.
- URDFlinorobot2_description/urdf/robots/2wd.urdf.xacrolinorobot/linorobot2
- URDFlinorobot2_description/urdf/robots/4wd.urdf.xacrolinorobot/linorobot2
- URDFlinorobot2_description/urdf/robots/mecanum.urdf.xacrolinorobot/linorobot2
The 3D specimen on this page is converted from linorobot2_description/urdf/robots/vattenkar.urdf.xacro at 157fd05.
Builds of Linorobot2
0 reviewedNo reviewed builds of Linorobot2 yet.
A build log records the evidence (photos, a video, your repository), what the build cost, how long it took and what you changed. Each one is checked by Motari (until a maintainer claims this page) before it shows here, and reviewed builds count toward the reproducibility score.
Sources and provenance
Sources
- Softwaregithub.com/linorobot/linorobot2157fd05
- Hardwaregithub.com/linorobot/linorobot2_hardwareaaf9d59
- Documentationlinorobot.github.io/linorobot2
- Simulationgithub.com/linorobot/linorobot2157fd05
Last push to linorobot/linorobot2: 2026-09-29 (checked 2026-10-01)
How this page was made
Assembled from public sources on 2026-06-04, not yet reviewed by the maintainer. Each figure links to where it is stated; a value the sources do not state reads "not published". Last source review: source docs aaf9d59/157fd05; unpriced.
Original files stay intact and separately licensed; Motari adds only the summary on this page. Maintainer? Request a correction or removal.
Badge for the README
Maintain Linorobot2? Show its reproducibility score in the project's README. The badge links back to this page and updates with the score.
[](https://motari.io/r/linorobot2)<a href="https://motari.io/r/linorobot2"><img src="https://motari.io/api/v1/badge/linorobot2" alt="Motari reproducibility score for Linorobot2" height="20"></a>Not fully met yet: cad / mesh present, bom evidence, build instructions (partial), oshw-compatible license. The score is read from the project's own sources, so publishing what is missing is what raises it. A score of 90 or more needs a reviewed build. How the score is computed