Введение
NVIDIA Jetson Nano — это одноплатный компьютер для Edge AI, который позволяет запускать нейросетевые модели прямо на устройстве. В сочетании с sensor fusion (объединение данных с камеры, IMU, LIDAR) он становится мощным инструментом для автономной навигации, промышленного контроля и робототехники. Однако интеграция такого устройства с облачным AI-агентом часто требует написания связующего кода, настройки протоколов и отладки. AI-агент ASI Biont решает эту задачу: пользователь просто описывает в чате, к какому устройству подключиться и какие данные собирать, а AI самостоятельно пишет код интеграции на Python и выполняет его.
В этой статье мы разберём, как подключить Jetson Nano с набором сенсоров (камера, IMU, LIDAR) к ASI Biont, настроить поток sensor fusion и AI inference, и автоматизировать сценарии вроде умного склада или производственной линии. Все примеры кода реальны и выполняются в sandbox-окружении ASI Biont.
Как ASI Biont подключается к Jetson Nano
ASI Biont поддерживает несколько способов связи с одноплатниками, но для Jetson Nano наиболее естественный — SSH через paramiko. Пользователь передаёт IP-адрес, логин и пароль (или SSH-ключ) в чате, и AI-агент генерирует Python-скрипт, который:
- подключается к устройству по SSH;
- запускает на нём произвольные команды: чтение сенсоров, запуск скриптов, передачу файлов;
- возвращает результат в чат или сохраняет его для дальнейшего анализа.
Также возможны варианты через MQTT (если на Jetson Nano установлен MQTT-клиент) или HTTP API (если на устройстве запущен веб-сервер), но SSH — универсальный способ, не требующий дополнительной настройки оборудования.
| Способ | Протокол | Библиотека в sandbox | Когда использовать |
|---|---|---|---|
| SSH | paramiko | paramiko | Устройство под управлением Linux (Jetson Nano, Raspberry Pi) |
| MQTT | mqtt | paho-mqtt | IoT-сеть с брокером сообщений |
| HTTP/REST | http | requests, aiohttp | Устройство предоставляет REST API |
| Modbus/TCP | modbus | pymodbus | Промышленные контроллеры |
Сценарий: Умный склад с автономным роботом на Jetson Nano
Представим типовую задачу: на роботе для сортировки грузов установлены:
- камера (CSI или USB) для детекции объектов;
- IMU (MPU6050 по I2C) для оценки ориентации;
- LIDAR (RPLIDAR A1 по USB-UART) для построения карты.
Робот должен автономно перемещаться между стеллажами, объезжать препятствия и сообщать о найденных объектах в центральную систему. AI-агент ASI Biont может:
- подключаться к Jetson Nano по SSH;
- запускать скрипты сбора данных и AI inference;
- получать результаты и, при необходимости, отправлять команды управления (через MQTT или напрямую на сервоприводы).
Пример диалога с AI-агентом
Пользователь пишет:
Подключись к моему Jetson Nano по SSH: IP 192.168.1.100, логин nvidia, пароль nvidia. Убедись, что камера работает, и сделай снимок, на котором детектируй все объекты с помощью YOLOv5. Результат сохрани в файл и покажи мне описание.
AI-агент генерирует и выполняет следующий код (execute_python с paramiko):
import paramiko
import json
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.1.100', username='nvidia', password='nvidia')
# Проверяем камеру
stdin, stdout, stderr = ssh.exec_command('ls /dev/video*')
print('Video devices:', stdout.read().decode())
# Запускаем скрипт снятия и детекции
# Предполагаем, что на Jetson уже есть скрипт detect.py с YOLOv5
stdin, stdout, stderr = ssh.exec_command('python3 detect.py --source 0 --save-txt --save-conf')
print(stdout.read().decode())
# Забираем результат
sftp = ssh.open_sftp()
with sftp.open('runs/detect/exp/labels/image1.txt') as f:
labels = f.read().decode()
print('Detected objects:', labels)
ssh.close()
AI анализирует вывод и сообщает пользователю: «На снимке обнаружено 3 объекта: коробка (0.92), паллет (0.87), человек (0.45)».
Этот же подход можно масштабировать: пользователь просит AI написать скрипт, который в реальном времени читает данные с LIDAR и IMU, выполняет sensor fusion и публикует результаты в MQTT-топик. AI генерирует код и запускает его на Jetson Nano через SSH.
Код для sensor fusion и публикации в MQTT (генерируется AI)
import serial
import struct
import paho.mqtt.client as mqtt
import time
# Настройка LIDAR (RPLIDAR A1)
def read_lidar(port='/dev/ttyUSB0'):
ser = serial.Serial(port, 115200, timeout=1)
# Простейшая команда получения одного замера
ser.write(b'\xA5\x20') # start scan
# парсинг ответа...
distances = []
for _ in range(360):
data = ser.read(5)
if len(data) == 5:
quality = data[0] >> 2
angle = struct.unpack('<H', data[1:3])[0] / 64.0
distance = struct.unpack('<H', data[3:5])[0] / 4.0
distances.append((angle, distance, quality))
ser.close()
return distances
# Настройка IMU (MPU6050) - через системный файл i2c
import smbus
bus = smbus.SMBus(1)
def read_imu():
# регистры MPU6050...
accel_x = bus.read_word_data(0x68, 0x3B)
# ... преобразование
return {'ax': accel_x}
# Подключение к MQTT
client = mqtt.Client()
client.connect('192.168.1.50', 1883, 60)
while True:
lidar_data = read_lidar()
imu_data = read_imu()
fusion = {
'lidar': [{'angle': a, 'distance': d} for a,d,_ in lidar_data[:10]],
'imu': imu_data,
'timestamp': time.time()
}
client.publish('robot/sensor_fusion', json.dumps(fusion))
time.sleep(1)
Важно: Бесконечный цикл while True не может выполняться в sandbox ASI Biont (ограничение 30 секунд), поэтому AI предложит запустить этот скрипт непосредственно на Jetson Nano через SSH и оставить его работающим в фоне. Например, с помощью nohup или systemd.
Автоматизация без программирования: просто опишите задачу
Ключевое преимущество ASI Biont — пользователю не нужно писать код интеграции. Достаточно описать задачу на естественном языке, указать параметры подключения (IP, порт, логин, пароль), и AI-агент сам:
- выбирает подходящий протокол (SSH, MQTT, HTTP);
- генерирует Python-скрипт с корректными библиотеками;
- выполняет его в защищённом sandbox-окружении;
- возвращает результат или продолжает мониторинг.
Примеры команд из реальных кейсов:
- «Подключись по MQTT к брокеру 10.0.0.5:1883, подпишись на топик jetson/camera, детектируй людей с помощью YOLO и пришли координаты в чат».
- «Через SSH на Jetson Nano запусти скрипт, который считывает показания с LIDAR раз в 5 секунд, и если distance < 0.5 м, отправь alert в Telegram через HTTP POST».
- «Настрой HTTP API на Jetson Nano, чтобы он принимал команды «stop», «go» и отправлял текущий одометр».
Практическая схема подключения
Для воспроизведения примера вам потребуется:
1. NVIDIA Jetson Nano (модуль или developer kit) с установленным JetPack.
2. Камера (например, Raspberry Pi Camera v2 или USB-камера).
3. IMU MPU6050 (подключение по I2C: пины SDA, SCL, VCC, GND).
4. LIDAR RPLIDAR A1 (USB-UART).
5. Питание: 5V 2A для Jetson Nano, 5V для LIDAR.
Схема подключения (текстовое описание):
- Камера подключается в разъём CSI (15-пиновый кабель) или USB.
- MPU6050: VCC → 3.3V, GND → GND, SDA → GPIO2 (I2C1 SDA), SCL → GPIO3 (I2C1 SCL).
- RPLIDAR: USB-адаптер в любой порт USB, обычно /dev/ttyUSB0.
Настройка на Jetson Nano:
- Включить I2C: sudo apt install i2c-tools, sudo raspi-config → Interfacing Options → I2C.
- Установить библиотеки: pip install opencv-python smbus pyserial paho-mqtt.
- Скачать веса YOLOv5.
Выводы
Интеграция NVIDIA Jetson Nano с AI-агентом ASI Biont открывает быстрый путь к созданию Edge AI-решений без ручного написания интеграционного кода. Sensor fusion, on-device ML и облачный AI работают как единое целое: локальные вычисления обеспечивают низкую задержку, а AI-агент добавляет гибкость управления, удалённый мониторинг и автоматизацию сценариев.
Попробуйте сами: подключите любое устройство к ASI Biont, просто описав задачу в чате. Начните тестирование на asibiont.com — никаких панелей управления, только живой диалог с AI.
Комментарии