B
blog
Misafir
Misafir
Cordatus Robotics Olarak Physical AI’da Neredeyiz?
OpenZeka bünyesinde faaliyet gösteren Cordatus Robotics olarak, yapay zekayı yalnızca veri işleyen sistemler olarak değil; fiziksel dünyayı algılayan, karar veren ve hareket eden sistemler olarak ele alıyoruz. Bu kapsamda Physical AI alanında; edge (uç) sistemler, video analitiği, simülasyon ve robotik teknolojilerini bir araya getiren çalışmalar yürütüyoruz.
Physical AI’ın temelinde, yapay zekanın gerçek dünya ile etkileşime geçebilmesi yer alıyor. Yani yalnızca görüntü ya da metin üretmek değil; çevreyi algılamak, verilen görevi anlamak ve buna uygun aksiyon alabilmek.
Bizim yaklaşımımız ise yeni nesil yapay zeka modellerini doğrudan kullanmaktan öte, bu modelleri gerçek sistemlerde çalışabilecek yapılara dönüştürmek üzerine kurulu. Bunun içinde simülasyon ortamlarında geliştirme yapmak, sentetik veri ile sistemleri beslemek ve sonrasında bu yapıları gerçek donanımlar üzerinde çalıştırmak yer alıyor.
Bu yazıda da bu yaklaşımın somut bir örneğini paylaşıyoruz. NVIDIA’nın yeni nesil Cosmos 3 model ailesi ile, doğal dil komutlarıyla yönlendirilen bir robot kolunun simülasyon ortamında uçtan uca nasıl çalıştırıldığını ele alıyoruz.
Robotları Programlamaktan Robotlarla Etkileşime
Robotik tarafında son yıllarda çalışma şekli belirgin biçimde değişmeye başladı. Uzun süre boyunca bir robotun görev yapabilmesi için; hareketlerin, kuralların ve karar mekanizmalarının tek tek tanımlanması gerekiyordu. Bir nesneyi algılaması, doğru noktaya gitmesi veya belirli bir aksiyonu alması için her adımın önceden programlanması bekleniyordu.
Bugün ise farklı bir yaklaşım öne çıkıyor: görevi doğal dille tanımlamak.
Örneğin artık bir sisteme yalnızca “Muzu al ve kaseye koy” komutu verildiğinde; robot ortamı algılayabiliyor, komutu yorumlayabiliyor ve gerekli hareket planını kendi oluşturabiliyor. Elbette bunun arkasında hâlâ model, simülasyon, algılama ve kontrol katmanlarından oluşan ciddi bir teknik yapı var; ancak geliştirici tarafında etkileşim biçimi değişmeye başlıyor.
Bu yazıda da modeli kendi altyapımızda çalıştırma sürecinden başlayarak, simülasyon ortamında görev koşturmayı ve kendi senaryomuzu nasıl tanımladığımızı adım adım ele alacağız. Süreç boyunca karşılaştığımız yaygın problemleri ve bunları nasıl çözdüğümüzü de paylaşacağız — çünkü uygulamada en fazla zamanı genellikle bu detaylar alıyor.
Cosmos 3 Nedir?
NVIDIA Cosmos, fiziksel dünyayı algılayabilen, simüle edebilen ve onunla etkileşime geçebilen yapay zeka sistemleri geliştirmek için oluşturulan bir temel model platformu. Özellikle robotik, otonom sistemler ve akıllı ortamlar gibi Physical AI senaryolarında geliştirme sürecini hızlandırmayı hedefliyor.
Cosmos 3 model ailesinin öne çıkan taraflarından biri, farklı veri türleriyle aynı anda çalışabilmesi. Metin, görüntü, video, ses ve eylem (action) verilerini birlikte işleyebiliyor ve yine bu alanlarda çıktı üretebiliyor. Bu nedenle NVIDIA bu yapıyı “omnimodal” olarak tanımlıyor.
Model mimarisinde farklı veri tipleri için farklı üretim yaklaşımları kullanılıyor. Metin tarafında sıralı üretime uygun yapı çalışırken; görüntü, video, ses ve hareket gibi sürekli veriler için diffusion tabanlı bir yaklaşım kullanılıyor. Böylece her veri türü kendi yapısına daha uygun bir yöntemle işleniyor.
Bu çalışmada kullandığımız model ise manipülasyon görevleri için geliştirilen Cosmos3-Nano-Policy-DROID modeli oldu.
Bu model; robota verilen doğal dil komutlarını ve kamera görüntülerini birlikte değerlendirerek robotun gerçekleştirmesi gereken hareketleri üretiyor. Başka bir ifadeyle sistem yalnızca “ne yapılacağını” değil, bunu gerçekleştirmek için gerekli hareket dizisini de oluşturuyor.
Yaklaşık 16 milyar parametreli olan model ticari kullanıma da açık.
İşin mantığı: Görüntü + Dil → Eylem
Modelin çalışma prensibini üç ayakta özetleyebiliriz:
Görüş (Vision): Sahneyi birden fazla kameradan algılıyor.
Dil (Language): Doğal dildeki talimatı yorumluyor.
Eylem (Action): Robotun eklemlerine doğrudan hedef pozisyon komutları üretiyor.
Arka planda sistem önce ortamı ve görevi anlamaya çalışıyor, ardından bu anlayışı fiziksel harekete dönüştürüyor. Bir bakıma büyük dil modellerindeki “önce anlamlandır, sonra üret” yaklaşımının robotik sistemlere uygulanmış hali gibi düşünülebilir.
Mimari: Server / Client Ayrımı
Cosmos3-Nano-Policy-DROID yapısında sistem iki ana bileşenden oluşuyor: modeli çalıştıran taraf ve robotun bulunduğu çalışma ortamı.
Policy Server: Policy Server, yapay zeka modelinin çalıştığı katman. Robotun kameralarından gelen gözlemleri ve verilen görev komutunu alıyor, ardından robotun uygulaması gereken hareketleri üretiyor.
Burada doğrudan robotu kontrol etmek yerine, kısa hareket dizileri (action chunk) oluşturuluyor ve bunlar istemci tarafına iletiliyor. Model tarafı GPU üzerinde çalışıyor ve hesaplama yükünün büyük kısmını üstleniyor.
Client (Simülasyon Ortamı): Client tarafı ise robotun ve çalışma sahnesinin bulunduğu katman.
Bu tarafta kamera görüntüleri toplanıyor, sahnenin güncel durumu modele gönderiliyor ve modelden gelen hareket komutları robota uygulanıyor. Aynı zamanda sistemin nasıl davrandığı burada görselleştiriliyor ve sonuç gözlemleniyor.
Bu ayrımın önemli avantajlarından biri; modeli merkezi bir sunucuda çalıştırırken farklı robotlar, simülasyon ortamları veya istemcilerle aynı altyapıyı kullanabilmek. Böylece geliştirme, test ve ölçekleme süreçleri daha esnek hale geliyor.
Policy Server ile simülasyon ortamı arasında gerçek zamanlı veri akışı WebSocket üzerinden sağlanıyor. Böylece simülasyondan gelen gözlemler anlık olarak modele iletilirken, modelin ürettiği hareket komutları da gecikmeyi minimumda tutarak tekrar robota uygulanabiliyor.
Client tarafında ise NVIDIA’nın RoboLab simülasyon ortamını kullandık. RoboLab; Isaac Sim ve Isaac Lab üzerine kurulu, robot politikalarını değerlendirmek ve test etmek için geliştirilmiş bir çalışma ortamı sunuyor.
Bu mimarinin önemli avantajlarından biri dağıtık çalışmaya uygun olması.
Model tarafı güçlü GPU kaynaklarına sahip bir sunucuda çalışırken, simülasyon ve görselleştirme farklı bir iş istasyonunda yürütülebiliyor. İki sistem aynı ağ üzerinden haberleştiği sürece yapı değişmeden çalışmaya devam ediyor.
Alternatif olarak yeterli donanıma sahip tek bir makinede hem model hem de simülasyon birlikte de çalıştırılabiliyor. Kullanılan donanım düzeni değişse de veri akışı ve çalışma mantığı aynı kalıyor.
Donanım ve Yazılım Gereksinimleri
Cosmos3-Nano-Policy-DROID 16 milyar parametreli bir modeldir ve BF16 hassasiyette çalışır. Pratik gereksinimler:
Policy Server tarafı (model çıkarımı):
- NVIDIA GPU — Ampere, Hopper ya da Blackwell mimarisi (model bu mimarilerde test edilmiştir). Referans test donanımı H100’dür.
- Yeterli VRAM: 16B model BF16’da yaklaşık 32 GB ağırlık + aktivasyon belleği ister.
40 GB ve üzeri VRAM’li bir kart (A6000, L40S, A100, H100 vb.) rahat eder. Daha küçük kartlarda offload teknikleriyle çalıştırmak mümkün ama yavaşlar. Linux (model yalnızca Linux’ta test edilmiştir). - CUDA destekli güncel sürücü, Docker ve NVIDIA Container Toolkit.
- Yalnızca BF16 hassasiyet resmi olarak destekleniyor; FP4/FP8/FP16 desteklenmiyor.
Client / Simülasyon tarafı (RoboLab + Isaac Sim):
- RTX serisi bir GPU (örneğin RTX 4090, RTX 6000 Ada ya da benzeri). RTX 3090 sınıfı bir kart simülasyon ve render için yeterlidir.
- Isaac Sim ile uyumlu NVIDIA sürücüsü kritik. Bu nokta çok önemli: Isaac Sim, çok yeni geliştirme sürücü dallarıyla (örneğin R590 / 595.x serisi) uyumsuzdur ve başlangıçta çöker. NVIDIA’nın doğruladığı stabil sürücü dalı 580 serisidir. Eğer Isaac Sim açılışta segmentation fault veriyorsa, ilk bakacağınız yer sürücü sürümüdür.
- Ekran (GUI gerektiren render için), yeterli sistem belleği (32 GB+ önerilir) ve disk alanı.
Ortak gereksinimler:
- Hugging Face hesabı ve erişim token’ı (modeller ve guardrail bileşenleri için).
- Docker — hem policy server hem RoboLab container tabanlı çalışır.
- İki makine kullanacaksanız, ikisi arasında düşük gecikmeli yerel ağ bağlantısı.
Adım Adım Kurulum
Önce cosmos-framework deposunu klonlayıp Docker imajını derliyoruz:
Copy to Clipboard
git clone
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
cd cosmos-framework docker build -t cosmos-framework:latest .Ardından Hugging Face token’ımızı ayarlayıp container’ı başlatıyoruz. Container açılırken bağımlılıkları uv ile kuruyor:
Copy to Clipboard
export HF_TOKEN= docker run -it \ -e HF_HOME=/workspace/.cache/huggingface \ -e HF_TOKEN=$HF_TOKEN \ --net host \ --rm \ --runtime nvidia \ -v .:/workspace \ -v /workspace/.venv \ -v $HOME/.cache/huggingface:/root/.cache/huggingface \ cosmos-framework:latest \ bash -c 'uv sync --all-extras --group=cu130-train --group=policy-server && exec bash'
×
Not: Komuttaki -v .:/workspace ifadesi, içinde bulunduğunuz dizini container’a bağlar. Bu komutu mutlaka cosmos-framework klasörünün içindeyken çalıştırın, aksi halde container giriş dosyasını bulamaz.
Container açıldıktan sonra, içeride policy server’ı başlatıyoruz:
Copy to Clipboard
python -m cosmos_framework.scripts.action_policy_server_robolab --port 8000
İlk çalıştırmada model checkpoint’i (~32 GB) ve guardrail bileşenleri Hugging Face’ten iniyor — bu bir kerelik bir bekleme. Aşağıdaki gibi bir satır gördüğünüzde server hazırdır:
Sağlık kontrolü için: curl http://<server_ip>:8000/healthz
2. Client / RoboLab’ı Ayağa Kaldırma
Simülasyon tarafında RoboLab deposunu klonlayıp container’ını derliyoruz:
Copy to Clipboard
git clone
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
cd RoboLab ./docker/build_docker.sh latest ./docker/run_docker.sh latestContainer içinde, policy server’a bağlanarak bir görev çalıştırıyoruz. Bu komut, simülasyonu gerçek zamanlı izlemek için bir görüntü penceresi (viewer) açar:
Copy to Clipboard
python policies/cosmos3/run.py \ --remote-host --remote-port 8000 \ --task BananaInBowlTask --enable_cameras
İlk açılışta Isaac Sim’in shader ve asset önbelleği derlenir; bu birkaç dakika sürebilir.
Pencere açılıp sahne yüklendiğinde, robotun “Pick up the banana and place it in the bowl” görevini gerçekleştirdiğini canlı izlersiniz.
Aynı server ve simülasyonu tek makinede çalıştırıyorsanız, –remote-host değerini localhost yapmanız yeterli.
3. Paralel Değerlendirme
Tek bir episode görsel olarak tatmin edicidir ama istatistiksel bir sonuç vermez. Başarı oranını ölçmek için görevi birden çok ortamda paralel, başsız (headless) modda koşabilirsiniz:
Copy to Clipboard
python policies/cosmos3/run.py \ --task BananaInBowlTask \ --num-envs 10 \ --headless
Bu, 10 ortamı aynı anda çalıştırıp toplu başarı oranı raporlar.
Görevleri Anlamak ve Değiştirmek
RoboLab, manipülasyonun pek çok temasını kapsayan yüzlerce hazır görev içeriyor:
istifleme (stacking), yeniden yönlendirme (reorientation), kalabalık sahnede nesne ayırma (clutter), renge göre sınıflandırma, çok adımlı görevler, raf işleri, alet düzenleme ve daha fazlası.
Her görevin talimatı (instruction) görev tanımının içinde yazılıdır ve genellikle birden çok varyant içerir:
Copy to Clipboard
instruction = { "default": "Pick up the banana and place it in the bowl", "vague": "Put the fruit in the bowl", "specific": "Grasp the yellow banana and place it inside the red bowl on the table", }
–instruction-type vague ya da specific parametresiyle aynı görevi farklı netlikte dille koşabilir, modelin dil genelleme yeteneğini test edebilirsiniz. Bu, modelin gerçekten anlayıp anlamadığını görmenin en eğlenceli yollarından biri.
Kendi Görevinizi Tanımlamak
İşin asıl heyecanlı kısmı, modeli kendi tarif ettiğiniz, eğitim verisinde olmayan görevlerle sınamak. RoboLab’ın görev tanım yapısı buna izin veriyor. Yeni bir görev dosyası oluşturup kendi talimatınızı, sahnenizi ve başarı kriterinizi tanımlayabilir, sisteme tanıtıp koşturabilirsiniz.
Görev tanımları Python tabanlıdır: hangi sahne dosyasının (USD) yükleneceğini, görevin doğal dildeki talimatını, başarı/bitiş koşullarını ve takip edilecek alt adımları (subtask) tek bir yapı içinde belirtirsiniz. Yeni dosyanızı oluşturup talimatı değiştirmeniz, sahneyi seçmeniz ve başarı kriterini tanımlamanız, kendi özel görevinizi koşturmak için yeterli oluyor.
AI Destekli Sahne ve Görev Üretimi
RoboLab’ın en güçlü özelliklerinden biri, bu süreci tamamen otomatikleştirebilmesi. Sahne ve görevleri elle Python yazarak oluşturmak yerine, doğal dille tarif edip bir kodlama ajanına (coding agent) ürettirebilirsiniz. RoboLab bunun için iki adet Claude Code beceri (skill) bileşeniyle geliyor:
- /robolab-scenegen — Yeni bir simülasyon sahnesi üretir. “Masanın üzerinde bir tabak, yanında iki bardak ve bir çatal olsun” gibi doğal bir tarifle, ajan gerekli sahne dosyasını (nesne yerleşimleri, USD referansları dahil) sizin için oluşturur.
- /robolab-taskgen — Yeni bir görev tanımı üretir. İstediğiniz görevi dille anlatırsınız; ajan talimatı, başarı kriterini ve görev yapısını içeren Python tanım dosyasını üretir ve sisteme tanıtır.
Bu yaklaşımın değeri şurada: bir robot ortamı ve görevi tasarlamak normalde USD sahne kurulumu, nesne yerleşimi, fizik ayarları ve başarı kriteri kodlaması gibi birden çok teknik adım gerektirir. Bu becerileri kullandığınızda, tüm bu süreci doğal dille yönetebiliyorsunuz — kodlama ajanı sizin tarifinizi alıp dakikalar içinde çalışan bir sahne ve göreve dönüştürüyor. Yani yalnızca robotu dille yönlendirmekle kalmıyor, robotun içinde çalışacağı dünyayı da dille tasarlıyorsunuz.
Cordatus Robotics olarak bu yaklaşımı özellikle değerli buluyoruz: müşteriye özel senaryoları (belirli bir üretim hattı düzeni, özel bir nesne yerleşimi, sektöre özgü bir manipülasyon görevi) hızla simülasyona dökmek, geleneksel yöntemle günler sürebilecek bir işi saatlere indiriyor.
Bizim denemelerimizde modelin, eğitim dağılımına yakın görevlerde (nesneyi al, başka yere koy) çok başarılı olduğunu; daha alışılmadık manipülasyonlarda (örneğin bir kabı ters çevirip bir nesnenin üzerine kapatmak) niyeti doğru anlayıp denediğini ama icrada zorlanabildiğini gözlemledik. Bu tür “niyet doğru, icra eksik” durumlarını görmek, modelin sınırlarını anlamak açısından en az başarılar kadar öğretici.
Karşılaştığımız Sorunlar ve Çözümleri
Bu tür yeni model yığınlarında asıl zaman, dokümantasyonda yazmayan ufak tuzaklarda kaybediliyor. Bizim sık karşılaştıklarımız ve çözümleri:
Erişim izni gereken (gated) depolar. Model ve guardrail bileşenleri Hugging Face’te erişim onayı gerektirebilir. İlgili model sayfalarından “Agree and access repository” ile onay alıp, token’ınızı container’a HF_TOKEN ortam değişkeniyle geçmeniz gerekir.
Docker paylaşılan bellek (shm) hatası. Video üretimi gibi büyük çıktılar üretirken, Docker’ın varsayılan 64 MB’lık paylaşılan belleği yetersiz kalabilir ve worker süreci çöker. Çözüm: container’ı –ipc=host bayrağıyla başlatmak.
Yanlış GPU’ya düşme / bellek hatası. Paylaşılan bir makinede başka süreçler GPU’yu işgal etmiş olabilir ya da model beklenmedik bir karta düşebilir. nvidia-smi ile durumu kontrol edin; container’ı NVIDIA_VISIBLE_DEVICES ile istediğiniz GPU’ya sabitlemek en garantili izolasyondur.
Isaac Sim açılışta çöküyor (segmentation fault). Bu neredeyse her zaman sürücü uyumsuzluğudur. Çok yeni geliştirme sürücü dalları (R590 / 595.x) Isaac Sim ile uyumlu değildir. NVIDIA’nın doğruladığı 580 serisi production sürücüsüne geçmek sorunu çözer.
Uzun süren isteklerde zaman aşımı. Senkron uçtan uzun süren işlemler (örneğin video üretimi) sunucu tarafı zaman aşımına takılabilir. Bu tür işlemler için senkron yerine asenkron (iş kuyruğuna gönder, durumu sorgula, sonucu indir) yaklaşımı kullanmak gerekir.
Container’ın kaybolması. –rm bayrağıyla başlatılan container, terminal kapandığında ya da makine yeniden başlatıldığında iz bırakmadan kaybolur. Kalıcı bir kurulum için container’ı -d –restart unless-stopped ile başlatmak, makine yeniden başlasa bile servisin geri gelmesini sağlar.
Modelin Sınırları
Cosmos 3 güçlü bir model ama mucize değil. NVIDIA’nın da açıkça belirttiği gibi, bu tür modeller zorlu senaryolarda kusurlu çıktılar üretebilir: zamansal tutarsızlık, kararsız nesne hareketleri, hassas olmayan fiziksel etkileşimler ve uzun görevlerde eylemdurum kayması görülebilir. Model açık bir fizik simülatörü içermediği için temas dinamikleri, nesne kalıcılığı ve 3B geometri yalnızca yaklaşık olarak modellenir.
Bu nedenle, gerçek robotik kontrol uygulamalarında bu modelin çıktıları doğrudan güvenli kabul edilmemeli; dağıtım öncesinde ek doğrulama, harici kısıtlar ve göreve özgü güvenlik mekanizmaları (guardrail) gereklidir. Simülasyon ortamı tam da bunun için ideal: gerçek donanımı riske atmadan, modelin ne yapıp ne yapamadığını güvenle keşfedebilirsiniz.
Sonuç
Bir robota doğal dilde komut verip görevi yerine getirdiğini görmek, birkaç yıl önce yalnızca araştırma laboratuvarlarında veya tanıtım videolarında gördüğümüz bir senaryoydu. Bugün ise açık modeller, olgunlaşan simülasyon araçları ve erişilebilir GPU altyapıları sayesinde bu sistemleri gerçek geliştirme ortamlarında denemek ve çalıştırmak mümkün hale geliyor.
Bu çalışmada Cosmos3-Nano-Policy-DROID modelini kendi altyapımız üzerinde ayağa kaldırarak; model sunucusu, simülasyon ortamı ve robot kontrol akışını uçtan uca test ettik. Süreç bize bir kez daha gösterdi ki Physical AI tarafında asıl mesele yalnızca modeli çalıştırmak değil; doğru donanım, doğru simülasyon ortamı ve sürdürülebilir bir geliştirme akışı kurabilmek.
Özellikle bu ölçekteki modellerde GPU seçimi ve sistem mimarisi doğrudan deneyimi etkiliyor. Model çıkarımı tarafında yüksek VRAM kapasitesine sahip sunucu GPU’ları; simülasyon ve görselleştirme tarafında ise güçlü workstation sistemleri geliştirme sürecini ciddi şekilde hızlandırabiliyor.
OpenZeka ve Cordatus Robotics olarak yalnızca bu teknolojileri deneyimlemekle kalmıyor; aynı zamanda bu tür Physical AI senaryoları için kullanılan GPU, sunucu ve çalışma istasyonu altyapılarını da erişilebilir hale getirmeye çalışıyoruz. Bu tür Physical AI ve robotik iş yüklerinde doğru donanım seçimi geliştirme sürecini doğrudan etkiliyor. Benzer kurulumları kendi ortamınızda hayata geçirmek istiyorsanız; AI sunucuları, workstation sistemleri ve yüksek performanslı GPU seçeneklerini inceleyebilir, kullanım senaryonuza uygun yapılandırmalar için teklif talebinde bulunabilirsiniz. OpenZeka üzerinde farklı ölçeklerde ekran kartı ve sunucu çözümlerini değerlendirebilirsiniz.
İncelemek için mağaza link:
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.
Bu çalışma bizim için bir bitiş noktası değil; temel modellerin robotik sistemlerle birleştiği yeni dönemin küçük bir örneği. Önümüzdeki dönemde simülasyon, sentetik veri üretimi, edge dağıtım ve gerçek robot uygulamaları tarafındaki deneyimlerimizi paylaşmaya devam edeceğiz.
Bu yazıda anlatılan kurulum NVIDIA’nın açık kaynak Cosmos 3 model ailesi ve RoboLab simülasyon ortamı üzerine kuruludur. Model adları, lisans koşulları ve kurulum detayları zaman içinde güncellenebilir; en güncel bilgi için NVIDIA’nın resmi depolarına ve model kartlarına başvurmanızı öneririz.
Bu bağlantıyı görüntüleyebilmek için kayıt olmalı zaten üyeyseniz üye girişi yapmalısınız.