Перейти к содержимому
Экосистема AI Vibe

Новости

Isaac ROS 5.0: агент мигрирует CUDA-ноду на zero-copy в ROS 2

Редакция 22 сентября 2026 г.

Схема ROS 2 нод с потоком сообщений через CUDA buffer backend вместо копий через оперативную память CPU.

Даже быстрое CUDA-ядро не ускорит весь граф ROS 2, если между нодами кадры всё ещё сериализуют и копируют через оперативку — NVIDIA показала на примере Depth Anything 3 с TensorRT, как снять лишние копии вокруг GPU-алгоритма. В Isaac ROS 5.0 стек перевели на CUDA buffer backend поверх абстракции rosidl::Buffer из ROS 2 Lyrical: при подходящих условиях на одном хосте данные идут zero-copy, иначе граф откатывается на CPU-путь.

Где съедается выигрыш

Сенсорный контур и inference живут на видеокарте, а на границе подписки и публикации — два переноса host↔device и сериализация. Для ноды с sensor_msgs/msg/Image, монокулярной глубиной через TensorRT и публикацией карты глубины узкое место нередко не модель, а транспорт вокруг уже GPU-native кода.

Скилл для coding-агента

Скилл migrate-node-to-rosidl-buffer превращает аудит в повторяемый сценарий: зафиксировать ревизию и ROS-окружение, проверить типы полей, добавить cuda_buffer и cuda_buffer_backend, пройти путь данных от callback до publish и убрать копии только на границе. Итоговый патч намеренно маленький — одна опция подписки acceptable_buffer_backends = "cuda", одна CUDA-аллокация под выход, вызов inference прямо в буфер сообщения; без дублирующих топиков и ветвления CPU/CUDA publisher.

Zero-copy требует один хост, одно CUDA-устройство, одного Linux-пользователя и поддерживаемый RMW — например rmw_fastrtps_cpp или rmw_zenoh_cpp. В Nsight Systems не должно быть payload-sized переносов host↔device на границе ROS; msg->data.get_backend_type() должен отдавать cuda, когда оба конца согласовали бэкенд. После миграции тот же граф можно выкатывать на Jetson AGX Thor; материал датирован 22 сентября 2026.

Источник: Accelerating a ROS 2 Node with an AI Agent and NVIDIA Isaac ROS.