Введение
LiDAR (Light Detection and Ranging) — это технология, которая позволяет измерять расстояния до объектов с помощью лазерных лучей. Устройства вроде RPLIDAR A1/A2 (от Slamtec) и TFmini (от Benewake) широко используются в робототехнике для построения карт помещений, навигации мобильных роботов и мониторинга пространства. RPLIDAR A1, например, обеспечивает 360-градусное сканирование с частотой до 10 Гц и дальностью до 12 метров, что делает его идеальным для SLAM (Simultaneous Localization and Mapping). TFmini — компактный ToF-дальномер с дальностью до 12 метров и частотой до 1000 Гц, часто применяемый для измерения высоты или обнаружения препятствий.
Интеграция LiDAR с AI-агентом ASI Biont открывает новые возможности: AI может автоматически управлять сбором данных, обрабатывать сканы, строить карты в реальном времени, обнаруживать аномалии и принимать решения на основе пространственной информации. Вместо того чтобы писать сложные скрипты вручную, вы просто описываете задачу в чате, и ASI Biont генерирует код интеграции за секунды. В этой статье мы рассмотрим, как подключить RPLIDAR A1 к ASI Biont через Hardware Bridge (COM-порт) и использовать AI для построения карты помещения.
Как ASI Biont подключается к LiDAR?
ASI Biont поддерживает несколько протоколов, но для LiDAR, который подключается через USB-UART (преобразователь USB в последовательный порт), оптимальным является Hardware Bridge через COM-порт. Это единственный способ получить прямой доступ к данным с датчика, так как LiDAR передает сырые данные (угол, расстояние, качество сигнала) по последовательному интерфейсу.
Hardware Bridge — это отдельное приложение bridge.py, которое пользователь запускает на своём компьютере (Windows/Linux/macOS). Bridge подключается к ASI Biont через WebSocket (единственный канал связи) и обеспечивает доступ к локальным COM-портам. AI отправляет команды через industrial_command tool, которые уходят на bridge, и bridge читает/пишет в COM-порт через pyserial.
Схема подключения:
- Физическое подключение: LiDAR (RPLIDAR A1) подключается к ПК через USB-UART адаптер (например, CP2102 или CH340). Провода: TX LiDAR -> RX адаптера, RX LiDAR -> TX адаптера, GND -> GND, VCC (5V) -> 5V. Для RPLIDAR A1 используется скорость 115200 бод, для TFmini — 115200 или 9600.
- Установка bridge.py: Скачайте bridge.py из дашборда ASI Biont (Devices → Create API Key → Скачать bridge). Запустите с параметрами:
python bridge.py --token=YOUR_TOKEN --ports=COM3 --default-baud=115200 --rate=10. - Настройка в чате: Опишите AI, что к порту COM3 подключен RPLIDAR A1 на 115200 бод, и укажите задачу — например, «построить карту комнаты».
Пошаговый сценарий: построение SLAM-карты с RPLIDAR A1
Допустим, у вас есть мобильный робот с RPLIDAR A1, и вы хотите, чтобы AI построил карту помещения и обнаружил препятствия. Вот как это работает:
Шаг 1: Запуск Hardware Bridge
Пользователь выполняет в терминале:
python bridge.py --token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... --ports=COM3 --default-baud=115200 --rate=10
Bridge подключается к облаку ASI Biont и открывает порт COM3.
Шаг 2: Описание задачи в чате
Пользователь пишет:
Подключись к RPLIDAR A1 на порту COM3 через bridge. Прочитай данные сканирования, построй карту комнаты в виде матрицы расстояний и сохрани её как PNG-изображение с помощью matplotlib. Если обнаружены препятствия ближе 0.5 метра — отправь уведомление в Telegram.
Шаг 3: AI генерирует и выполняет код
AI использует industrial_command для отправки команды на bridge. Но для сложной обработки данных (построение карты, визуализация) AI пишет Python-скрипт, который выполняется в sandbox-окружении (execute_python). Скрипт получает сырые данные от LiDAR через bridge, обрабатывает их и строит карту.
Пример кода, который генерирует AI:
import numpy as np
import matplotlib.pyplot as plt
import json
# Имитация данных от RPLIDAR (в реальности данные приходят из bridge)
# Для примера используем синтетические данные
angles = np.linspace(0, 360, 360) # 360 точек
# Расстояния (в мм) — случайные для демонстрации
np.random.seed(42)
distances = np.random.uniform(200, 4000, 360)
# Преобразуем в декартовы координаты
radians = np.radians(angles)
x = distances * np.cos(radians)
y = distances * np.sin(radians)
# Строим карту
plt.figure(figsize=(8, 8))
plt.scatter(x, y, s=2, c='blue', alpha=0.6)
plt.title('Карта помещения (RPLIDAR A1)')
plt.xlabel('X (мм)')
plt.ylabel('Y (мм)')
plt.axis('equal')
plt.grid(True, linestyle='--', alpha=0.5)
# Сохраняем PNG
plt.savefig('/tmp/lidar_map.png', dpi=150, bbox_inches='tight')
print('Карта сохранена в /tmp/lidar_map.png')
# Проверка на препятствия ближе 0.5 м (500 мм)
close_obstacles = distances[distances < 500]
if len(close_obstacles) > 0:
print(f'ВНИМАНИЕ: обнаружено {len(close_obstacles)} препятствий ближе 0.5 м!')
# Отправка уведомления в Telegram (реальный код через requests)
import requests
token = 'ВАШ_TELEGRAM_BOT_TOKEN'
chat_id = 'ВАШ_CHAT_ID'
message = f'Обнаружено {len(close_obstacles)} препятствий!'
url = f'https://api.telegram.org/bot{token}/sendMessage'
requests.post(url, json={'chat_id': chat_id, 'text': message})
Важно: В реальной интеграции AI получает данные из bridge через industrial_command. Команда для чтения данных может выглядеть так:
industrial_command(protocol='serial://', command='read', params={'port': 'COM3', 'baud': 115200, 'bytes': 1024})
Но для построения карты AI автоматически использует библиотеки numpy, matplotlib и requests.
Шаг 4: Результат
Через несколько секунд AI возвращает:
- Изображение карты (lidar_map.png), сохранённое в sandbox.
- В Telegram приходит уведомление о препятствиях.
- В чате отображается сообщение: «Карта построена. Обнаружено 3 препятствия ближе 0.5 м.»
Другие сценарии использования LiDAR с ASI Biont
Сценарий 1: Мониторинг заполненности склада
Задача: TFmini установлен на потолке склада. AI должен измерять высоту до товаров и предупреждать, когда склад заполнен более чем на 90%.
Подключение: TFmini через COM-порт (115200 бод) с bridge. AI читает данные каждые 10 секунд, вычисляет среднее расстояние, и если оно меньше порога — отправляет уведомление.
Пример команды AI:
industrial_command(protocol='serial://', command='read', params={'port': 'COM4', 'baud': 115200, 'bytes': 64})
Сценарий 2: Навигация робота-пылесоса
Задача: Робот с RPLIDAR A2 должен строить карту и избегать препятствий. AI управляет движением через MQTT (ESP32 управляет моторами).
Подключение: LiDAR — через bridge, ESP32 — через MQTT. AI читает сканы, определяет свободное пространство и публикует команды движения в топик robot/cmd_vel.
Пример кода для MQTT:
import paho.mqtt.client as mqtt
import json
client = mqtt.Client()
client.connect('broker.hivemq.com', 1883)
# Публикация команды движения
cmd = {'linear': 0.5, 'angular': 0.0}
client.publish('robot/cmd_vel', json.dumps(cmd))
Сценарий 3: Интеграция с OPC UA для заводских систем
Задача: LiDAR на AGV (автоматизированная тележка) передаёт данные в OPC UA-сервер. AI читает теги через opcua-asyncio и анализирует загруженность маршрутов.
Подключение: Bridge для LiDAR, OPC UA — через industrial_command с протоколом opcua://.
Почему это выгодно?
Традиционно для интеграции LiDAR с AI нужно:
- Писать скрипты на C++ или Python для чтения данных.
- Настраивать ROS (Robot Operating System).
- Разрабатывать пайплайны обработки данных.
С ASI Biont всё проще:
- Никакого кода вручную: AI пишет 100% кода интеграции на основе вашего описания.
- Поддержка любых протоколов: COM-порт, MQTT, Modbus, SSH, OPC UA — AI использует реальные библиотеки (pyserial, paho-mqtt, pymodbus).
- Мгновенная адаптация: Если нужно изменить логику (например, добавить фильтр шумов), просто опишите это в чате — AI перепишет код за секунды.
- Единая точка управления: Все устройства, включая LiDAR, управляются из одного чата.
Заключение
Интеграция LiDAR (RPLIDAR, TFmini) с AI-агентом ASI Biont через Hardware Bridge открывает широкие возможности для робототехники и автоматизации. Вы можете строить карты помещений, управлять навигацией роботов, мониторить склады и заводы — и всё это без написания кода вручную. AI делает всю работу: от чтения данных с COM-порта до построения графиков и отправки уведомлений.
Попробуйте сами: Перейдите на asibiont.com, скачайте bridge.py из дашборда, подключите ваш LiDAR и опишите задачу в чате. Убедитесь, что интеграция с AI работает быстрее и проще, чем традиционные методы.
Комментарии