Agen ROS adalah kerangka kerja lengkap untuk menciptakan agen interaktif yang dapat memahami, mengingat, dan bertindak berdasarkan informasi kontekstual dari lingkungannya.
Petunjuk Instalasi Checkout
Mulailah dengan Panduan Memulai Cepat
Kenali Konsep Dasar
Selami langsung dengan Contoh
Agen ROS dibuat untuk digunakan dengan ROS2. Semua distribusi ROS mulai dari Iron didukung. Instal ROS2 dengan mengikuti petunjuk di situs resminya.
Inti dari Agen ROS bersifat agnostik terhadap model platform layanan. Saat ini mendukung Ollama dan RoboML. Silakan instal salah satu dari ini dengan mengikuti instruksi yang diberikan oleh masing-masing proyek. Dukungan untuk platform baru akan terus ditambahkan. Jika Anda ingin mendukung platform tertentu, silakan buka terbitan/PR.
Paket biner untuk Ubuntu akan segera dirilis. Periksa ruang ini.
Instal dependensi python
pip install pillow numpy opencv-python-headless ' attrs>=23.2.0 ' jinja2 httpx setproctitle msgpack msgpack-numpy numpy-quaternion
Unduh Gula 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
Tidak seperti paket ROS lainnya, Agen ROS menyediakan cara pythonic murni untuk mendeskripsikan grafik node menggunakan ROS Sugar. Salin kode berikut dalam skrip python dan jalankan.
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 ()
Dan dengan begitu kami memiliki agen yang dapat menjawab pertanyaan seperti 'Apa yang Anda lihat?' . Untuk berinteraksi dengan agen ini, Agen ROS menyertakan klien web kecil. Lihat Panduan Memulai Cepat untuk mempelajari lebih lanjut tentang cara komponen dan model bekerja sama.
Contoh panduan memulai di atas hanyalah gambaran singkat tentang apa yang dapat dilakukan dengan Agen ROS. Di Agen ROS kita dapat membuat grafik komponen canggih secara sewenang-wenang. Dan lebih jauh lagi, sistem kami dapat dikonfigurasi untuk mengubah atau mengkonfigurasi ulang dirinya sendiri berdasarkan kejadian internal atau eksternal pada sistem. Lihat kode agen berikut di sini.
Kode dalam distribusi ini adalah Hak Cipta (c) 2024 Automatika Robotics kecuali secara tegas dinyatakan sebaliknya.
Agen ROS tersedia di bawah lisensi MIT. Detailnya dapat ditemukan di file LISENSI.
Agen ROS telah dikembangkan melalui kolaborasi antara Automatika Robotics dan Inria. Kontribusi dari komunitas sangat diharapkan.