ROS Agents ist ein voll ausgestattetes Framework zum Erstellen interaktiver verkörperter Agenten, die Kontextinformationen aus ihrer Umgebung verstehen, sich daran erinnern und darauf reagieren können.
Installationsanweisungen zur Kasse
Beginnen Sie mit der Schnellstartanleitung
Machen Sie sich mit grundlegenden Konzepten vertraut
Tauchen Sie direkt ein mit Beispielen
ROS Agents wurde für die Verwendung mit ROS2 entwickelt. Alle ROS-Distributionen ab Iron werden unterstützt. Installieren Sie ROS2, indem Sie den Anweisungen auf der offiziellen Website folgen.
Der Kern von ROS Agents ist unabhängig von Modellbereitstellungsplattformen. Es unterstützt derzeit Ollama und RoboML. Bitte installieren Sie eines davon, indem Sie den Anweisungen des jeweiligen Projekts folgen. Unterstützung für neue Plattformen wird kontinuierlich hinzugefügt. Wenn Sie eine bestimmte Plattform unterstützen möchten, eröffnen Sie bitte eine Ausgabe/PR.
Binärpakete für Ubuntu werden in Kürze veröffentlicht. Überprüfen Sie diesen Bereich.
Installieren Sie Python-Abhängigkeiten
pip install pillow numpy opencv-python-headless ' attrs>=23.2.0 ' jinja2 httpx setproctitle msgpack msgpack-numpy numpy-quaternion
Laden Sie ROS Sugar herunter
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
Im Gegensatz zu anderen ROS-Paketen bietet ROS Agents eine reine Python-Methode zur Beschreibung des Knotendiagramms mithilfe von ROS Sugar. Kopieren Sie den folgenden Code in ein Python-Skript und führen Sie ihn aus.
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 ()
Und genau so haben wir einen Agenten, der Fragen wie „Was sehen Sie?“ beantworten kann. . Um mit diesem Agenten zu interagieren, enthält ROS Agents einen kleinen Web-Client. Sehen Sie sich die Kurzanleitung an, um mehr darüber zu erfahren, wie Komponenten und Modelle zusammenarbeiten.
Das obige Schnellstartbeispiel ist nur ein kleiner Einblick in die Möglichkeiten, die mit ROS Agents möglich sind. In ROS Agents können wir beliebig komplexe Komponentendiagramme erstellen. Darüber hinaus kann unser System so konfiguriert werden, dass es sich basierend auf systeminternen oder -externen Ereignissen sogar selbst ändert oder neu konfiguriert. Sehen Sie sich hier den Code für den folgenden Agenten an.
Der Code in dieser Distribution unterliegt dem Copyright (c) 2024 Automatika Robotics, sofern nicht ausdrücklich anders angegeben.
ROS Agents wird unter der MIT-Lizenz zur Verfügung gestellt. Details finden Sie in der LICENSE-Datei.
ROS Agents wurde in Zusammenarbeit zwischen Automatika Robotics und Inria entwickelt. Beiträge aus der Community sind herzlich willkommen.