Введение
Современная робототехника всё чаще строится на платформе ROS (Robot Operating System) и её преемнике ROS2. Эти фреймворки предоставляют стандартизированные интерфейсы для управления сенсорами, приводами, навигацией и манипуляторами. Однако настройка интеграции между ROS-системой и внешним AI-агентом часто требует написания сложных скриптов, отладки протоколов и координации нескольких сервисов. ASI Biont решает эту проблему: AI-агент подключается к ROS/ROS2 напрямую через диалог в чате, автоматически генерируя и выполняя код интеграции. Больше не нужно вручную писать ноды-мосты или настраивать API — достаточно описать задачу, и AI сделает всё за секунды.
Почему ROS/ROS2 и ASI Biont — идеальная пара
ROS2 (Robot Operating System 2) — это middleware для робототехники, использующий DDS (Data Distribution Service) для обмена сообщениями между нодами. Он широко применяется в промышленных роботах, автономных мобильных платформах (AGV/AMR), дронах и манипуляторах. По данным официального отчёта Open Robotics за 2025 год, ROS2 используется более чем в 1200 коммерческих проектах по всему миру, включая Toyota, Amazon Robotics и NASA. Подключение AI-агента к ROS2 позволяет:
- Автоматизировать навигацию: AI анализирует данные лидаров, камер и одометрии, принимает решения о маршруте и выдаёт команды в топики /cmd_vel.
- Мониторить состояние робота: подписываться на топики /battery, /temperature, /diagnostics и отправлять уведомления при аномалиях.
- Управлять манипуляторами: генерировать траектории движения и отправлять их в топики /joint_trajectory_controller.
- Интегрировать внешние AI-модели: например, запустить компьютерное зрение на edge-устройстве и передавать детекции в ROS2.
Как ASI Biont подключается к ROS/ROS2
ASI Biont не имеет встроенного драйвера для ROS2 — это и не нужно. AI-агент подключается к любому устройству через execute_python — универсальный инструмент, который выполняет Python-скрипты в облачном sandbox-окружении. Пользователь описывает в чате параметры подключения (IP ROS2-мастера, топики, типы сообщений), и AI сам пишет и запускает код на Python с использованием библиотек rclpy (клиентская библиотека ROS2 для Python) или rosbridge_library (для доступа через WebSocket).
Доступные способы подключения
| Способ | Протокол | Когда использовать |
|---|---|---|
| rosbridge WebSocket | WebSocket (порт 9090) | Если ROS2-система имеет запущенный rosbridge_server. Это самый простой и безопасный вариант — не требует SSH-доступа. |
| SSH + rclpy | SSH (порт 22) | Если есть прямой SSH-доступ к бортовому компьютеру робота (Raspberry Pi, Jetson, Intel NUC). AI пишет скрипт с rclpy, копирует его по SCP и запускает. |
| HTTP API | REST (порт 80/443) | Если ROS2-система предоставляет REST-интерфейс (например, через rosbridge_server с HTTP-транспортом или кастомный мост). |
| MQTT | MQTT (порт 1883/8883) | Если ROS2-система публикует/подписывается на MQTT-топики через mqtt_bridge. Подходит для распределённых IoT-сценариев. |
В большинстве случаев оптимальным выбором является rosbridge WebSocket, так как он:
- Не требует установки дополнительного ПО на бортовой компьютер (только rosbridge_server, который входит в стандартный дистрибутив ROS2).
- Работает через защищённый WebSocket (wss://), если настроен SSL.
- Позволяет подписываться на топики, публиковать сообщения и вызывать сервисы.
Конкретный сценарий: AI-управление навигацией мобильного робота
Рассмотрим реальный пример. У вас есть мобильный робот на базе ROS2 (например, TurtleBot4 или кастомная платформа с контроллером двигателей). Робот публикует данные одометрии в топик /odom, данные лазерного сканера в /scan, а принимает команды скорости в /cmd_vel. Задача: AI-агент должен анализировать данные с лидара, выявлять препятствия и автоматически корректировать маршрут, чтобы робот объезжал препятствия без столкновений. Дополнительно — отправлять уведомление в Telegram при обнаружении человека.
Шаг 1. Пользователь описывает задачу в чате
«Подключись к моему ROS2-роботу. ROS master на 192.168.1.100, порт rosbridge 9090. Подпишись на /scan и /odom. Если лидар обнаруживает объект ближе 0.5 метра, измени скорость на /cmd_vel так, чтобы робот повернул влево на 30 градусов и продолжил движение. Если объект — человек (по классификации), отправь мне уведомление в Telegram.»
Шаг 2. AI-агент генерирует код интеграции
ASI Biont использует execute_python с библиотеками rclpy (или rosbridge_library для WebSocket) и aiohttp для отправки Telegram-уведомления. Пример упрощённого скрипта для подписки на топики и управления:
import asyncio
import json
from rosbridge_library import RosBridge
async def main():
# Подключение к rosbridge
bridge = RosBridge()
await bridge.connect('ws://192.168.1.100:9090')
# Callback для обработки данных лидара
async def scan_callback(msg):
ranges = msg['ranges']
min_distance = min(ranges)
if min_distance < 0.5:
# Обнаружено препятствие — поворот влево
twist = {
'linear': {'x': 0.0, 'y': 0.0, 'z': 0.0},
'angular': {'x': 0.0, 'y': 0.0, 'z': 0.5}
}
await bridge.publish('/cmd_vel', 'geometry_msgs/Twist', twist)
await asyncio.sleep(1)
# Продолжить движение вперёд
twist['linear']['x'] = 0.2
twist['angular']['z'] = 0.0
await bridge.publish('/cmd_vel', 'geometry_msgs/Twist', twist)
# Подписка на топик /scan
await bridge.subscribe('/scan', 'sensor_msgs/LaserScan', scan_callback)
# Держим соединение открытым
await asyncio.sleep(3600)
asyncio.run(main())
Примечание: в реальном сценарии AI также добавит отправку Telegram-уведомления при детекции человека (через requests.post к api.telegram.org), обработку ошибок и логирование.
Шаг 3. AI выполняет скрипт и начинает управление
ASI Biont запускает скрипт в sandbox-окружении. Sandbox имеет таймаут 30 секунд, поэтому для долгоживущих задач AI использует asyncio.sleep() с большим числом, чтобы скрипт оставался активным. В результате робот начинает автоматически объезжать препятствия. Если пользователь хочет изменить поведение (например, увеличить безопасное расстояние до 1 метра), он просто пишет об этом в чате, и AI модифицирует код на лету.
Другие сценарии интеграции ROS/ROS2 с ASI Biont
1. Мониторинг состояния батареи и диагностика
AI подписывается на топик /battery_state (тип sensor_msgs/BatteryState) и /diagnostics (тип diagnostic_msgs/DiagnosticArray). При падении заряда ниже 20% или при появлении ошибки (например, «Motor overheat») AI отправляет уведомление в Telegram или Slack. Пользователь может запросить отчёт за последний час — AI сохраняет данные в CSV и генерирует график через matplotlib.
2. Управление манипулятором через сервисы
Для робота-манипулятора (например, UR5 или Dobot) AI вызывает сервисы /move_group/trajectory_controller/follow_joint_trajectory. Пользователь описывает целевое положение (например, «возьми деталь с координатами x=0.3, y=0.2, z=0.1»), AI формирует сообщение trajectory_msgs/JointTrajectory и отправляет его через rosbridge. Это позволяет управлять манипулятором без написания C++ кода.
3. Интеграция с внешним AI-детектором
Если на бортовом компьютере запущена модель YOLOv8 для детекции объектов, AI может подписаться на топик /detections (например, кастомный тип) и на основе результатов принимать решения: «если детектирован ящик, подъехать к нему на 0.3 метра». AI также может сам запустить детекцию через SSH (если есть доступ) и передать результаты в ROS2.
Почему это выгоднее традиционного подхода
| Характеристика | Традиционный подход | ASI Biont |
|---|---|---|
| Время настройки | Часы — дни (написание ноды-моста, отладка) | Секунды — минуты (описать задачу в чате) |
| Необходимые навыки | Знание ROS2, Python, C++, CMake | Базовое понимание ROS2 (названия топиков, типов) |
| Изменение логики | Редактировать код, пересобирать пакет | Просто написать новое требование в чате |
| Поддержка протоколов | Только DDS (или через мост MQTT/HTTP) | Любой: WebSocket, SSH, MQTT, HTTP — AI выбирает сам |
| Масштабирование | Добавление новых топиков требует правки кода | AI адаптируется к новым топикам по описанию |
Как начать интеграцию ROS/ROS2 с ASI Biont
- Убедитесь, что rosbridge_server запущен на вашем ROS2-роботе:
bash ros2 run rosbridge_server rosbridge_websocket - Перейдите на asibiont.com и откройте чат с AI-агентом.
- Опишите задачу естественным языком: «Подключись к моему ROS2 по WebSocket на 192.168.1.100:9090, подпишись на /scan и /odom, и если расстояние до препятствия меньше 0.5 м, поверни робота влево и продолжай движение». AI сам напишет и выполнит Python-скрипт.
- Управляйте процессом — вы можете в любой момент изменить параметры (порог расстояния, скорость поворота) или добавить новые топики (например,
/camera/image_rawдля компьютерного зрения).
Заключение
Интеграция ROS/ROS2 с AI-агентом ASI Biont открывает новые горизонты для автоматизации робототехники. Вам больше не нужно быть экспертом в ROS2, чтобы управлять роботом через AI — достаточно описать задачу в чате. AI-агент берёт на себя всю рутину: выбор протокола, написание кода, выполнение и мониторинг. Это особенно ценно для:
- Стартапов, где скорость прототипирования критична.
- Исследовательских лабораторий, где часто меняются сценарии.
- Промышленных предприятий, где нужно быстро интегрировать AI-логику в существующие роботизированные системы.
Попробуйте сами: перейдите на asibiont.com, опишите свою ROS2-систему и увидите, как AI-агент возьмёт управление в свои руки.
Комментарии