يعد ROS Agents إطار عمل محملاً بالكامل لإنشاء عوامل مجسدة تفاعلية يمكنها فهم المعلومات السياقية من بيئتها وتذكرها والتصرف بناءً عليها.
تعليمات التثبيت الخروج
ابدأ باستخدام دليل البدء السريع
التعرف على المفاهيم الأساسية
تعمق في الأمثلة
تم تصميم ROS Agents لاستخدامه مع ROS2. جميع توزيعات ROS بدءًا من Iron مدعومة. قم بتثبيت ROS2 باتباع الإرشادات الموجودة على الموقع الرسمي.
جوهر ROS Agents لا يلتزم بنموذج منصات الخدمة. وهو يدعم حاليًا Ollama وRoboML. الرجاء تثبيت أي منهما باتباع الإرشادات المقدمة من المشاريع المعنية. سيتم إضافة الدعم لمنصات جديدة بشكل مستمر. إذا كنت ترغب في دعم منصة معينة، يرجى فتح قضية/علاقات عامة.
سيتم إصدار الحزم الثنائية لـ Ubuntu قريبًا. تحقق من هذه المساحة.
تثبيت تبعيات بايثون
pip install pillow numpy opencv-python-headless ' attrs>=23.2.0 ' jinja2 httpx setproctitle msgpack msgpack-numpy numpy-quaternion
تحميل روس سكر
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. انسخ التعليمة البرمجية التالية في برنامج نصي بيثون وقم بتشغيله.
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 Agents. في ROS Agents، يمكننا إنشاء رسوم بيانية معقدة للمكونات. علاوة على ذلك، يمكن تكوين نظامنا حتى يتغير أو يعيد تكوين نفسه بناءً على الأحداث الداخلية أو الخارجية للنظام. تحقق من الكود الخاص بالوكيل التالي هنا.
الكود الموجود في هذا التوزيع هو حقوق الطبع والنشر (c) 2024 Automatika Robotics ما لم يُنص صراحةً على خلاف ذلك.
يتم توفير ROS Agents بموجب ترخيص MIT. يمكن العثور على التفاصيل في ملف الترخيص.
تم تطوير ROS Agents بالتعاون بين Automatika Robotics وInria. المساهمات من المجتمع هي موضع ترحيب كبير.