ROS エージェントは、環境からのコンテキスト情報を理解し、記憶し、それに基づいて動作できる、インタラクティブな具体化されたエージェントを作成するための完全にロードされたフレームワークです。
チェックアウトのインストール手順
クイックスタート ガイドを開始する
基本概念を理解する
例を見てみましょう
ROS エージェントは、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 エージェントは、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 エージェントでは、任意に洗練されたコンポーネント グラフを作成できます。さらに、システムの内部または外部のイベントに基づいてシステム自体を変更または再構成するように構成することもできます。ここで次のエージェントのコードを確認してください。
このディストリビューションのコードは、特に明記されていない限り、著作権 (c) 2024 Automatika Robotics に属します。
ROS エージェントは、MIT ライセンスに基づいて利用可能です。詳細については、LICENSE ファイルを参照してください。
ROS Agents は、Automatika Robotics と Inria の共同開発により開発されました。コミュニティからの貢献は大歓迎です。