Skip to content

Mukller/omni-robot-assistant

Repository files navigation

EnglishРусский

🤖 Loki Robot Assistant

Автономный домашний робот-ассистент на базе MakersPet Loki 200mm ESP32 + microROS · Raspberry Pi 4 · ROS2 Iron · Cartographer SLAM · Nav2

License: MIT ROS2 Iron PlatformIO Platform kaiaai/LDS PlatformIO Build ROS2 Build


О проекте

Loki Robot Assistant — автономный мобильный робот на базе платформы MakersPet Loki 200mm. Двухколёсный дифференциальный привод с кастером, 360° LiDAR-сканирование, полный стек ROS2 Iron.

  • ESP32 управляет моторами, датчиками и LiDAR — через microROS передаёт данные по UDP
  • Raspberry Pi 4 запускает ROS2 Iron: Cartographer SLAM, навигация Nav2, автономное исследование
  • Полностью 3D-печатаемый корпус, открытое железо и ПО

Фотографии

Loki Robot Platform

MakersPet Loki 200mm — базовая платформа

Вид сверху Архитектура системы
Top View System Architecture

Видео и демо

Сборка платформы Настройка ПО Первый запуск ESP32 LiDAR
Assembly Setup Bringup ESP32

Аппаратное обеспечение

Компонент Кол-во Цена Ссылка
Raspberry Pi 4 (4GB) 1 $55 raspberrypi.com
ESP32 DevKit v1 1 $4.50 AliExpress
MakersPet Loki 200mm frame 1 $45 makerspet.com
JGA25-370 DC gear motor 12V, 40:1 2 $7 × 2 AliExpress
Omni wheel 48mm 2 $3.50 × 2 AliExpress
Caster ball 15mm 1 $2 AliExpress
L298N motor driver 1 $2.50 AliExpress
YDLidar X4 (360°, 10м) 1 $55 Amazon
BNO055 IMU (9-DOF) 1 $3.50 AliExpress
INA219 current sensor 2 $1.20 × 2 AliExpress
LiPo 11.1V 3S 3000мАч 1 $18 Магазин RC
7" HDMI дисплей 1 $35 AliExpress
USB wide-angle камера 1 $12 AliExpress
Болты, провода, разъёмы $8 Локально
Итого ~$264

LiDAR можно заменить на Xiaomi LDS02RR ($15 б/у с AliExpress) или RPLIDAR A1 ($99). Все модели поддерживаются библиотекой kaiaai/LDS без изменения кода.

Полный список с характеристиками: cad/bom.csv


Архитектура системы

System Architecture

Стек прошивки ESP32

firmware/
├── config.h                  # Пины ESP32 и константы платформы
├── platformio.ini            # micro_ros_kaia · kaiaai/LDS · PID_Timed · ESPAsyncWebServer
└── src/
    ├── main.ino              # Главный цикл: 50 Гц управление
    ├── motor_driver.*        # L298N PWM управление (coast / brake)
    ├── encoder.*             # Квадратурный энкодер (IRAM ISR)
    ├── odometry.*            # Дифференциальная одометрия (1920 тиков/об)
    ├── pid.*                 # ПИД с анти-насыщением интеграла
    ├── lidar_driver.*        # Обёртка kaiaai/LDS (YDLidar X4 / LDS02RR / RPLIDAR A1 …)
    ├── imu.*                 # BNO055 Adafruit — режим NDOF fusion
    ├── current_sensor.*      # INA219 — мониторинг тока моторов
    ├── safety.*              # E-stop / low-batt / overcurrent watchdog
    ├── battery_monitor.*     # LiPo 3S процент по ADC
    ├── wifi_config.h         # WiFi SSID/PASS + OTA пароль
    └── microros_bridge.*     # microROS: /odom · /scan · /imu/data ← /cmd_vel

Стек ROS2 (Raspberry Pi 4)

ros2/
├── CMakeLists.txt · package.xml
├── config/
│   ├── cartographer_lds_2d.lua   # Cartographer: min 0.15м, max 7м
│   ├── navigation.yaml            # Nav2 DWB + costmap 3×3м
│   ├── explore_lite.yaml          # Автономное исследование фронтиров
│   ├── ekf.yaml                   # EKF: odom + IMU → /odometry/filtered
│   └── telem.yaml                 # robot_state_publisher 30 Гц
├── launch/
│   ├── loki_bringup.launch.py    # microROS agent + Cartographer + Nav2
│   ├── slam.launch.py             # Только SLAM
│   └── explore.launch.py          # Только explore_lite
├── urdf/robot.urdf.xacro          # Kинематическая модель Loki 200mm
└── rviz/navigation.rviz           # Карта + скан + одометрия

Поддерживаемые LiDAR

Библиотека kaiaai/LDS поддерживает 20+ моделей без изменения кода ROS2:

Модель Дальность Цена Рекомендация
YDLidar X4 10 м ~$60 ✅ Рекомендован
RPLIDAR A1 12 м ~$99 Лучшее качество
Xiaomi LDS02RR 6 м ~$15 (б/у) Самый дешёвый
Neato XV11 6 м ~$20 (б/у)
YDLidar X3 8 м ~$40 Бюджет
LDROBOT LD14P 8 м ~$40

Полная таблица совместимости: docs/lidar_compatibility.md


Навигационный автомат

Navigation States


Быстрый старт

1. Прошивка ESP32

# Заполнить firmware/src/wifi_config.h (SSID, пароль, IP агента)
bash scripts/flash_esp32.sh          # автодетект порта
# или: bash scripts/flash_esp32.sh /dev/ttyUSB0

2. Настройка Raspberry Pi 4

# Автоматическая установка ROS2 Iron + micro_ros_agent + systemd
bash scripts/setup_rpi.sh
sudo reboot

3. Запуск

# Полный стек: Cartographer SLAM + Nav2 + microROS agent
ros2 launch loki_robot loki_bringup.launch.py

# Автономное исследование помещения
ros2 launch loki_robot explore.launch.py

# Сохранить карту
python3 host/map_saver.py

# Веб-телеметрия
python3 host/web_monitor.py  # → http://robot-ip:5000

Документация

Начало работы

Документ Описание
docs/faq.md Частые вопросы (железо, прошивка, ROS2, печать)
docs/troubleshooting.md Решение проблем ESP32, RPi, питания, механики
docs/assembly.md Сборка с параметрами 3D-печати
docs/wiring.md Полная схема подключения
docs/calibration.md Калибровка энкодеров, IMU, PID

Программное обеспечение

Документ Описание
docs/ros2_setup.md Установка ROS2 Iron на RPi 4
docs/ros2_architecture.md Топология нод, топики, TF-дерево
docs/roadmap.md Роадмап v1.0–v2.0 + известные ограничения

Железо и CAD

Документ Описание
docs/hardware/ydlidar_x4.md Характеристики YDLidar X4
docs/hardware/motors_and_wheels.md Моторы JGA25-370, колёса, L298N
docs/hardware/sensors.md BNO055, INA219, аккумулятор LiPo 3S
docs/hardware/raspberry_pi.md Настройка RPi 4 + systemd автозапуск
docs/lidar_compatibility.md Таблица 20+ совместимых LiDAR
docs/stl_files.md Список STL с настройками печати
cad/Loki_v1.step STEP-файл полной сборки (33 МБ)
cad/bom.csv Полный BOM с ценами
cad/SOURCES.md CAD-источники, STL-ссылки

Скрипты

Скрипт Описание
scripts/setup_rpi.sh Автоустановка ROS2 Iron + micro_ros_agent на RPi
scripts/flash_esp32.sh Прошивка ESP32 одной командой

Ссылки и источники

About

Home robot assistant on 3-wheel omnidirectional platform — ESP32, LiDAR LDS-01, Python

Topics

Resources

License

Code of conduct

Contributing

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors