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 合作开发的。我们非常欢迎社区的贡献。