ROS Agents 是一個完整的框架,用於建立互動式實體代理,這些代理可以理解、記住環境中的上下文資訊並根據其採取行動。
檢查安裝說明
開始使用快速入門指南
熟悉基本概念
直接透過範例進行深入研究
ROS Agents 專為與 ROS2 一起使用而建置。支援從Iron開始的所有 ROS 發行版。按照官方網站上的說明安裝 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 糖
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 方式。將以下程式碼複製到 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 代理包含一個小型 Web 用戶端。請查看快速入門指南,以了解有關組件和模型如何協同工作的更多資訊。
上面的快速入門範例只是 ROS 代理的一個有趣的範例。在 ROS Agents 中,我們可以建立任意複雜的元件圖。此外,我們的系統甚至可以配置為根據系統內部或外部的事件來更改或重新配置自身。在此處查看以下代理的代碼。
除非另有明確說明,本發行版中的程式碼版權所有 (c) 2024 Automatika Robotics。
ROS Agents 在 MIT 許可證下提供。詳細資訊可以在 LICENSE 文件中找到。
ROS Agents 是 Automatika Robotics 和 Inria 合作開發的。我們非常歡迎社區的貢獻。