{"id":51573728,"url":"https://github.com/mukller/omni-robot-assistant","last_synced_at":"2026-07-10T22:02:13.216Z","repository":{"id":369451475,"uuid":"1289548801","full_name":"Mukller/omni-robot-assistant","owner":"Mukller","description":"Home robot assistant on 3-wheel omnidirectional platform — ESP32, LiDAR LDS-01, Python","archived":false,"fork":false,"pushed_at":"2026-07-05T11:18:00.000Z","size":54,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-05T13:09:40.586Z","etag":null,"topics":["arduino","esp32","lidar","omnidirectional","omniwheel","open-source","python","robot-assistant","robotics"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mukller.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-07-04T22:35:33.000Z","updated_at":"2026-07-05T11:18:03.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Mukller/omni-robot-assistant","commit_stats":null,"previous_names":["mukller/omni-robot-assistant"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Mukller/omni-robot-assistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mukller%2Fomni-robot-assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mukller%2Fomni-robot-assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mukller%2Fomni-robot-assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mukller%2Fomni-robot-assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mukller","download_url":"https://codeload.github.com/Mukller/omni-robot-assistant/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mukller%2Fomni-robot-assistant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35344523,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-10T02:00:06.465Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","esp32","lidar","omnidirectional","omniwheel","open-source","python","robot-assistant","robotics"],"created_at":"2026-07-10T22:02:12.369Z","updated_at":"2026-07-10T22:02:13.205Z","avatar_url":"https://github.com/Mukller.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n[English](README_EN.md) • **Русский**\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# 🤖 Loki Robot Assistant\n\n**Автономный домашний робот-ассистент на базе MakersPet Loki 200mm**\nESP32 + microROS · Raspberry Pi 4 · ROS2 Iron · Cartographer SLAM · Nav2\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE.md)\n[![ROS2 Iron](https://img.shields.io/badge/ROS2-Iron-blue)](https://docs.ros.org/en/iron/)\n[![PlatformIO](https://img.shields.io/badge/PlatformIO-ESP32-orange)](https://platformio.org/)\n[![Platform](https://img.shields.io/badge/Platform-Raspberry%20Pi%204-red)](https://www.raspberrypi.com/)\n[![kaiaai/LDS](https://img.shields.io/badge/LiDAR-kaiaai%2FLDS-informational)](https://github.com/kaiaai/LDS)\n[![PlatformIO Build](https://github.com/Mukller/omni-robot-assistant/actions/workflows/pio_build.yml/badge.svg)](https://github.com/Mukller/omni-robot-assistant/actions/workflows/pio_build.yml)\n[![ROS2 Build](https://github.com/Mukller/omni-robot-assistant/actions/workflows/ros2_build.yml/badge.svg)](https://github.com/Mukller/omni-robot-assistant/actions/workflows/ros2_build.yml)\n\n\u003c/div\u003e\n\n---\n\n## О проекте\n\nLoki Robot Assistant — автономный мобильный робот на базе платформы **MakersPet Loki 200mm**.\nДвухколёсный дифференциальный привод с кастером, 360° LiDAR-сканирование, полный стек ROS2 Iron.\n\n- **ESP32** управляет моторами, датчиками и LiDAR — через **microROS** передаёт данные по UDP\n- **Raspberry Pi 4** запускает **ROS2 Iron**: Cartographer SLAM, навигация Nav2, автономное исследование\n- Полностью 3D-печатаемый корпус, открытое железо и ПО\n\n---\n\n## Фотографии\n\n\u003cdiv align=\"center\"\u003e\n\n![Loki Robot Platform](https://github.com/makerspet/makerspet_loki/assets/143911662/9e3857b0-df87-4fda-9d94-bfc53fed399d)\n\n*MakersPet Loki 200mm — базовая платформа*\n\n\u003c/div\u003e\n\n| Вид сверху | Архитектура системы |\n|:-:|:-:|\n| ![Top View](docs/images/robot_top_view.svg) | ![System Architecture](docs/images/system_arch.svg) |\n\n---\n\n## Видео и демо\n\n| Сборка платформы | Настройка ПО | Первый запуск | ESP32 LiDAR |\n|:-:|:-:|:-:|:-:|\n| [![Assembly](https://img.youtube.com/vi/WPB2B1DPf_s/mqdefault.jpg)](https://www.youtube.com/watch?v=WPB2B1DPf_s) | [![Setup](https://img.youtube.com/vi/XOc5kCE3MC0/mqdefault.jpg)](https://www.youtube.com/watch?v=XOc5kCE3MC0) | [![Bringup](https://img.youtube.com/vi/L_XbkA4pwRc/mqdefault.jpg)](https://www.youtube.com/watch?v=L_XbkA4pwRc) | [![ESP32](https://img.youtube.com/vi/zizGI8MjANU/mqdefault.jpg)](https://www.youtube.com/watch?v=zizGI8MjANU) |\n\n---\n\n## Аппаратное обеспечение\n\n| Компонент | Кол-во | Цена | Ссылка |\n|-----------|--------|------|--------|\n| Raspberry Pi 4 (4GB) | 1 | $55 | [raspberrypi.com](https://www.raspberrypi.com/) |\n| ESP32 DevKit v1 | 1 | $4.50 | AliExpress |\n| MakersPet Loki 200mm frame | 1 | $45 | [makerspet.com](https://makerspet.com/store) |\n| JGA25-370 DC gear motor 12V, 40:1 | 2 | $7 × 2 | AliExpress |\n| Omni wheel 48mm | 2 | $3.50 × 2 | AliExpress |\n| Caster ball 15mm | 1 | $2 | AliExpress |\n| L298N motor driver | 1 | $2.50 | AliExpress |\n| **YDLidar X4** (360°, 10м) | 1 | $55 | [Amazon](https://www.amazon.com/s?k=ydlidar+x4) |\n| BNO055 IMU (9-DOF) | 1 | $3.50 | AliExpress |\n| INA219 current sensor | 2 | $1.20 × 2 | AliExpress |\n| LiPo 11.1V 3S 3000мАч | 1 | $18 | Магазин RC |\n| 7\" HDMI дисплей | 1 | $35 | AliExpress |\n| USB wide-angle камера | 1 | $12 | AliExpress |\n| Болты, провода, разъёмы | — | $8 | Локально |\n| **Итого** | | **~$264** | |\n\n\u003e LiDAR можно заменить на **Xiaomi LDS02RR** (~$15 б/у с AliExpress) или **RPLIDAR A1** (~$99).\n\u003e Все модели поддерживаются библиотекой [kaiaai/LDS](https://github.com/kaiaai/LDS) без изменения кода.\n\nПолный список с характеристиками: [cad/bom.csv](cad/bom.csv)\n\n---\n\n## Архитектура системы\n\n![System Architecture](docs/images/system_arch.svg)\n\n### Стек прошивки ESP32\n\n```\nfirmware/\n├── config.h                  # Пины ESP32 и константы платформы\n├── platformio.ini            # micro_ros_kaia · kaiaai/LDS · PID_Timed · ESPAsyncWebServer\n└── src/\n    ├── main.ino              # Главный цикл: 50 Гц управление\n    ├── motor_driver.*        # L298N PWM управление (coast / brake)\n    ├── encoder.*             # Квадратурный энкодер (IRAM ISR)\n    ├── odometry.*            # Дифференциальная одометрия (1920 тиков/об)\n    ├── pid.*                 # ПИД с анти-насыщением интеграла\n    ├── lidar_driver.*        # Обёртка kaiaai/LDS (YDLidar X4 / LDS02RR / RPLIDAR A1 …)\n    ├── imu.*                 # BNO055 Adafruit — режим NDOF fusion\n    ├── current_sensor.*      # INA219 — мониторинг тока моторов\n    ├── safety.*              # E-stop / low-batt / overcurrent watchdog\n    ├── battery_monitor.*     # LiPo 3S процент по ADC\n    ├── wifi_config.h         # WiFi SSID/PASS + OTA пароль\n    └── microros_bridge.*     # microROS: /odom · /scan · /imu/data ← /cmd_vel\n```\n\n### Стек ROS2 (Raspberry Pi 4)\n\n```\nros2/\n├── CMakeLists.txt · package.xml\n├── config/\n│   ├── cartographer_lds_2d.lua   # Cartographer: min 0.15м, max 7м\n│   ├── navigation.yaml            # Nav2 DWB + costmap 3×3м\n│   ├── explore_lite.yaml          # Автономное исследование фронтиров\n│   ├── ekf.yaml                   # EKF: odom + IMU → /odometry/filtered\n│   └── telem.yaml                 # robot_state_publisher 30 Гц\n├── launch/\n│   ├── loki_bringup.launch.py    # microROS agent + Cartographer + Nav2\n│   ├── slam.launch.py             # Только SLAM\n│   └── explore.launch.py          # Только explore_lite\n├── urdf/robot.urdf.xacro          # Kинематическая модель Loki 200mm\n└── rviz/navigation.rviz           # Карта + скан + одометрия\n```\n\n---\n\n## Поддерживаемые LiDAR\n\nБиблиотека [kaiaai/LDS](https://github.com/kaiaai/LDS) поддерживает **20+ моделей** без изменения кода ROS2:\n\n| Модель | Дальность | Цена | Рекомендация |\n|--------|-----------|------|-------------|\n| **YDLidar X4** | 10 м | ~$60 | ✅ Рекомендован |\n| RPLIDAR A1 | 12 м | ~$99 | Лучшее качество |\n| Xiaomi LDS02RR | 6 м | ~$15 (б/у) | Самый дешёвый |\n| Neato XV11 | 6 м | ~$20 (б/у) | |\n| YDLidar X3 | 8 м | ~$40 | Бюджет |\n| LDROBOT LD14P | 8 м | ~$40 | |\n\nПолная таблица совместимости: [docs/lidar_compatibility.md](docs/lidar_compatibility.md)\n\n---\n\n## Навигационный автомат\n\n![Navigation States](docs/images/nav_states.svg)\n\n---\n\n## Быстрый старт\n\n### 1. Прошивка ESP32\n```bash\n# Заполнить firmware/src/wifi_config.h (SSID, пароль, IP агента)\nbash scripts/flash_esp32.sh          # автодетект порта\n# или: bash scripts/flash_esp32.sh /dev/ttyUSB0\n```\n\n### 2. Настройка Raspberry Pi 4\n\n```bash\n# Автоматическая установка ROS2 Iron + micro_ros_agent + systemd\nbash scripts/setup_rpi.sh\nsudo reboot\n```\n\n### 3. Запуск\n\n```bash\n# Полный стек: Cartographer SLAM + Nav2 + microROS agent\nros2 launch loki_robot loki_bringup.launch.py\n\n# Автономное исследование помещения\nros2 launch loki_robot explore.launch.py\n\n# Сохранить карту\npython3 host/map_saver.py\n\n# Веб-телеметрия\npython3 host/web_monitor.py  # → http://robot-ip:5000\n```\n\n---\n\n## Документация\n\n### Начало работы\n| Документ | Описание |\n|----------|----------|\n| [docs/faq.md](docs/faq.md) | Частые вопросы (железо, прошивка, ROS2, печать) |\n| [docs/troubleshooting.md](docs/troubleshooting.md) | Решение проблем ESP32, RPi, питания, механики |\n| [docs/assembly.md](docs/assembly.md) | Сборка с параметрами 3D-печати |\n| [docs/wiring.md](docs/wiring.md) | Полная схема подключения |\n| [docs/calibration.md](docs/calibration.md) | Калибровка энкодеров, IMU, PID |\n\n### Программное обеспечение\n| Документ | Описание |\n|----------|----------|\n| [docs/ros2_setup.md](docs/ros2_setup.md) | Установка ROS2 Iron на RPi 4 |\n| [docs/ros2_architecture.md](docs/ros2_architecture.md) | Топология нод, топики, TF-дерево |\n| [docs/roadmap.md](docs/roadmap.md) | Роадмап v1.0–v2.0 + известные ограничения |\n\n### Железо и CAD\n| Документ | Описание |\n|----------|----------|\n| [docs/hardware/ydlidar_x4.md](docs/hardware/ydlidar_x4.md) | Характеристики YDLidar X4 |\n| [docs/hardware/motors_and_wheels.md](docs/hardware/motors_and_wheels.md) | Моторы JGA25-370, колёса, L298N |\n| [docs/hardware/sensors.md](docs/hardware/sensors.md) | BNO055, INA219, аккумулятор LiPo 3S |\n| [docs/hardware/raspberry_pi.md](docs/hardware/raspberry_pi.md) | Настройка RPi 4 + systemd автозапуск |\n| [docs/lidar_compatibility.md](docs/lidar_compatibility.md) | Таблица 20+ совместимых LiDAR |\n| [docs/stl_files.md](docs/stl_files.md) | Список STL с настройками печати |\n| [cad/Loki_v1.step](cad/Loki_v1.step) | STEP-файл полной сборки (33 МБ) |\n| [cad/bom.csv](cad/bom.csv) | Полный BOM с ценами |\n| [cad/SOURCES.md](cad/SOURCES.md) | CAD-источники, STL-ссылки |\n\n### Скрипты\n| Скрипт | Описание |\n|--------|----------|\n| [scripts/setup_rpi.sh](scripts/setup_rpi.sh) | Автоустановка ROS2 Iron + micro_ros_agent на RPi |\n| [scripts/flash_esp32.sh](scripts/flash_esp32.sh) | Прошивка ESP32 одной командой |\n\n---\n\n## Ссылки и источники\n\n- [MakersPet Loki 200mm](https://github.com/makerspet/makerspet_loki) — платформа, STL, схемы\n- [MakersPet 3D Models](https://github.com/makerspet/3d_models/tree/main/loki_200mm) — STL для всех вариантов\n- [kaiaai/LDS](https://github.com/kaiaai/LDS) — Arduino LiDAR библиотека (20+ моделей)\n- [micro-ROS Arduino](https://github.com/micro-ROS/micro_ros_arduino) — microROS для ESP32\n- [Cartographer ROS](https://google-cartographer-ros.readthedocs.io/) — SLAM документация\n- [Nav2](https://navigation.ros.org/) — навигационный стек ROS2\n- [Awesome 2D LiDARs](https://github.com/kaiaai/awesome-2d-lidars) — каталог всех 2D LiDAR\n- [MakersPet PCB](https://github.com/makerspet/pcb) — KiCad схемы и PCB\n- [Braccio MoveIt](https://github.com/lots-of-things/braccio_moveit_gazebo) — Braccio рука (будущее расширение)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmukller%2Fomni-robot-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmukller%2Fomni-robot-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmukller%2Fomni-robot-assistant/lists"}