Агенты ROS — это полнофункциональная платформа для создания интерактивных встроенных агентов, которые могут понимать, запоминать и действовать в соответствии с контекстной информацией из своей среды.
Инструкции по установке кассы
Начните работу с помощью Краткого руководства
Ознакомьтесь с основными понятиями
Сразу приступайте к примерам
Агенты ROS созданы для использования с ROS2. Поддерживаются все дистрибутивы ROS, начиная с Iron . Установите ROS2, следуя инструкциям на официальном сайте.
Ядро агентов ROS не зависит от моделей обслуживающих платформ. В настоящее время он поддерживает Ollama и RoboML. Пожалуйста, установите любой из них, следуя инструкциям, предоставленным соответствующими проектами. Поддержка новых платформ будет постоянно добавляться. Если вы хотите поддержать конкретную платформу, пожалуйста, откройте вопрос/PR.
Бинарные пакеты для Ubuntu будут выпущены в ближайшее время. Проверьте это место.
Установите зависимости Python
pip install pillow numpy opencv-python-headless ' attrs>=23.2.0 ' jinja2 httpx setproctitle msgpack msgpack-numpy numpy-quaternion
Скачать ROS Sugar
git clone https://github.com/automatika-robotics/ros-sugar
git clone https://github.com/automatika-robotics/ros-agents.git
cd ..
colcon build
source install/setup.bash
python your_script.py
В отличие от других пакетов ROS, ROS Agents предоставляет чистый питонический способ описания графа узлов с использованием ROS Sugar. Скопируйте следующий код в скрипт Python и запустите его.
from agents . clients . ollama import OllamaClient
from agents . components import MLLM
from agents . models import Llava
from agents . ros import Topic , Launcher
# Define input and output topics (pay attention to msg_type)
text0 = Topic ( name = "text0" , msg_type = "String" )
image0 = Topic ( name = "image_raw" , msg_type = "Image" )
text1 = Topic ( name = "text1" , msg_type = "String" )
# Define a model client (working with Ollama in this case)
llava = Llava ( name = "llava" )
llava_client = OllamaClient ( llava )
# Define an MLLM component (A component represents a node with a particular functionality)
mllm = MLLM (
inputs = [ text0 , image0 ],
outputs = [ text1 ],
model_client = llava_client ,
trigger = [ text0 ],
component_name = "vqa"
)
# Additional prompt settings
mllm . set_topic_prompt ( text0 , template = """You are an amazing and funny robot.
Answer the following about this image: {{ text0 }}"""
)
# Launch the component
launcher = Launcher ()
launcher . add_pkg ( components = [ mllm ])
launcher . bringup ()
И вот так у нас есть агент, который может ответить на такие вопросы, как «Что вы видите?» . Для взаимодействия с этим агентом ROS Agents включает в себя небольшой веб-клиент. Ознакомьтесь с кратким руководством, чтобы узнать больше о том, как компоненты и модели работают вместе.
Приведенный выше пример быстрого запуска — это просто забавная картинка того, что возможно с агентами ROS. В ROS Agents мы можем создавать произвольно сложные графы компонентов. Более того, нашу систему можно настроить на изменение или переконфигурацию в зависимости от внутренних или внешних событий системы. Ознакомьтесь с кодом следующего агента здесь.
Код в этом раздаче защищен авторским правом (c) 2024 Automatika Robotics, если явно не указано иное.
Агенты ROS доступны по лицензии MIT. Подробности можно найти в файле LICENSE.
Агенты ROS были разработаны в сотрудничестве Automatika Robotics и Inria. Вклад сообщества приветствуется.