Роботы-уборщики, автономные тележки, системы безопасности — все они полагаются на LiDAR как на «глаза» для построения карты и навигации. Но написать скрипт для считывания данных с RPLIDAR или TFmini, обработать их и интегрировать с AI-логикой — задача, требующая времени и навыков программирования. AI-агент ASI Biont решает эту проблему: он подключается к LiDAR через Hardware Bridge или SSH, автоматически генерирует код и управляет датчиком в реальном времени. В этой статье я расскажу, как это работает на практике, с примерами кода и пошаговым описанием.
Что такое RPLIDAR и TFmini и зачем их подключать к AI-агенту?
RPLIDAR (серия A1, A2, S1) — это 2D-лазерный сканер, который вращается и измеряет расстояние до препятствий в 360°. Его часто используют в роботах для SLAM (одновременная локализация и построение карты). TFmini (и TFmini-S, TF-Luna) — это компактный LiDAR-дальномер на базе ToF (Time-of-Flight), который измеряет расстояние по одной точке (до 12 м). Он идеально подходит для обнаружения препятствий перед роботом, измерения высоты или мониторинга прохода.
Подключение таких датчиков к AI-агенту даёт возможность:
- Автоматизировать навигацию — AI анализирует данные LiDAR и прокладывает маршрут без столкновений.
- Создавать охранные системы — AI обнаруживает движение в зоне и отправляет уведомление.
- Мониторить проходимость — AI оценивает, может ли робот проехать в узкий проём.
Как ASI Biont подключается к LiDAR?
В зависимости от того, как LiDAR подключен к вашему компьютеру или микроконтроллеру, ASI Biont использует один из двух способов:
1. LiDAR на Arduino/ESP32 через COM-порт → Hardware Bridge
Если LiDAR (например, TFmini) подключен к Arduino или ESP32, который передаёт данные по USB (COM-порт) на ваш ПК, то AI подключается через Hardware Bridge. Вы запускаете bridge.py на своём компьютере, указываете порт и скорость, и AI отправляет команды через industrial_command.
2. LiDAR на Raspberry Pi → SSH
Если LiDAR (например, RPLIDAR) подключен к Raspberry Pi, AI подключается по SSH, запускает Python-скрипт на самой Raspberry Pi, который читает данные с LiDAR и отправляет их в облако.
Практический сценарий: умный робот-уборщик с RPLIDAR и ASI Biont
Задача: Создать систему, которая собирает данные с RPLIDAR A1, строит карту помещения и останавливает робота при обнаружении препятствия ближе 30 см.
Шаг 1. Подготовка оборудования
- RPLIDAR A1 подключен к Raspberry Pi 4 через UART (TX/RX) и питание.
- На Raspberry Pi установлен Python и библиотека
rplidar. - Пользователь имеет IP-адрес Raspberry Pi, логин и пароль (или SSH-ключ).
Шаг 2. Подключение к ASI Biont через чат
Пользователь открывает чат с AI-агентом ASI Biont и пишет:
«Подключись по SSH к моей Raspberry Pi (IP: 192.168.1.100, логин: pi, пароль: raspberry). Установлен RPLIDAR A1 на /dev/ttyAMA0, скорость 115200. Напиши скрипт, который каждые 2 секунды получает скан LiDAR и проверяет, есть ли препятствие ближе 30 см. Если есть — выведи предупреждение, и отправь мне в Telegram сообщение».
Шаг 3. AI генерирует и выполняет код
AI пишет Python-скрипт с использованием paramiko и запускает его в sandbox. Вот как выглядит этот код (упрощённо):
import paramiko
import json
import requests
# Настройки SSH
ssh_host = "192.168.1.100"
ssh_user = "pi"
ssh_pass = "raspberry"
# Подключаемся
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(ssh_host, username=ssh_user, password=ssh_pass)
# Команда для установки библиотеки (если не установлена)
stdin, stdout, stderr = client.exec_command("pip install rplidar-roboticia")
print(stdout.read().decode())
# Записываем скрипт на Raspberry Pi
script = '''
from rplidar import RPLidar
import time
lidar = RPLidar('/dev/ttyAMA0')
try:
for scan in lidar.iter_scans():
if not scan:
continue
min_distance = min(item[2] for item in scan if item[2] > 0)
if min_distance < 300: # 300 мм = 30 см
with open('/home/pi/obstacle.txt', 'w') as f:
f.write(str(min_distance))
time.sleep(2)
except KeyboardInterrupt:
lidar.stop()
lidar.disconnect()
'''
with client.open_sftp() as sftp:
with sftp.open('/home/pi/lidar_scan.py', 'w') as f:
f.write(script)
# Запускаем скрипт в фоне
client.exec_command("nohup python3 /home/pi/lidar_scan.py &")
print("Скрипт запущен на Raspberry Pi")
client.close()
Важно: Этот код выполняется в облачном sandbox ASI Biont, который имеет доступ к SSH, но не к локальным COM-портам. Для работы с COM-портами используется bridge.py.
Шаг 4. AI проверяет результат
После запуска AI может прочитать файл obstacle.txt по SSH и отправить уведомление в Telegram:
# Чтение файла с Raspberry Pi
stdin, stdout, stderr = client.exec_command("cat /home/pi/obstacle.txt")
distance = stdout.read().decode().strip()
if distance:
# Отправка в Telegram
bot_token = "YOUR_BOT_TOKEN"
chat_id = "YOUR_CHAT_ID"
text = f"⚠️ Обнаружено препятствие на {distance} мм!"
requests.post(f"https://api.telegram.org/bot{bot_token}/sendMessage", json={"chat_id": chat_id, "text": text})
Альтернативный сценарий: TFmini через COM-порт и Hardware Bridge
Задача: Собирать данные с TFmini (подключен к Arduino на COM3, скорость 115200) и анализировать, открыта ли дверь (расстояние > 2 м — дверь открыта).
Шаг 1. Запуск bridge.py
Пользователь скачивает bridge.py из дашборда ASI Biont (Devices → Create API Key) и запускает в терминале:
python bridge.py --token=ВАШ_ТОКЕН --ports=COM3 --default-baud=115200
Шаг 2. Команда в чате
Пользователь пишет:
«Подключись к COM3 через bridge. Arduino отправляет расстояние от TFmini в формате "DIST:123\n" каждые 500 мс. Если расстояние > 200 см, выведи "Дверь открыта", иначе "Дверь закрыта"».
Шаг 3. AI использует industrial_command
AI отправляет команду на bridge:
industrial_command(protocol="serial://COM3", command="read_all", params={"timeout": 5000})
Bridge возвращает строки, AI парсит их и анализирует.
Почему это выгодно?
Традиционно для интеграции LiDAR с AI нужно:
1. Написать код на Python/C++ для чтения данных.
2. Настроить протокол (UART, USB, I2C).
3. Написать обработчик для AI-логики.
4. Отлаживать и тестировать.
С ASI Biont всё происходит за секунды: пользователь описывает задачу, AI генерирует код, подключается и начинает работу. Не нужно ждать, пока разработчики добавят поддержку — подключай что угодно прямо сейчас.
Заключение
LiDAR — это мощный инструмент для навигации и мониторинга, но его интеграция с AI может быть сложной. ASI Biont решает эту проблему, предоставляя AI-агента, который сам пишет код и подключается к вашему оборудованию через Hardware Bridge или SSH. Попробуйте на asibiont.com — просто опишите вашу задачу в чате, и AI сделает всю работу.
Комментарии