OpenDRIVE / OpenSCENARIO / esmini'ye Dışa Aktarma
drawtonomy, elle çizdiğiniz sahneyi ASAM
OpenDRIVE (.xodr)
yol ağına ve
OpenSCENARIO (.xosc)
senaryosuna dönüştürür; çıktı, tek bir zip paketine paketlenerek
esmini’de doğrudan oynatılabilir.
Dönüştürme işlemi kasıtlı olarak temel düzeyde tutulmuştur: yalnızca ASAM veri modeliyle örtüşen şekiller kapsama alınır, geri kalanlar dahil edilmez. Bu sayfa, tam olarak nelerin dönüştürüldüğünü, dışa aktarılan aracın ne yaptığını ve kapsam dışı kalan unsurları belgeler; böylece çıktı hiçbir zaman gereğinden fazla şey vaat etmez.
Tam gidiş-dönüş demosu
Section titled “Tam gidiş-dönüş demosu”Aşağıdaki video tek bir çekimden oluşur: kavşak çizin, yol çizin, ayak izleri oluşturun, esmini zip’ini dışa aktarın, ardından dışa aktarılan .xosc dosyasını esmini’de oynatın.
Editörden dışa aktarma
Section titled “Editörden dışa aktarma”ASAM dışa aktarma için tek bir giriş noktası vardır. drawtonomy, ayrı .xodr / .xosc menü öğeleri sunmaz; her iki dosya birlikte oluşturulur ve tek bir zip içine paketlenir.

- Sahnenizi çizin (şeritler, kavşak, araçlar, yol…).
- Menüyü açın → Export →
.zip (esmini). - İstendiğinde bir taban adı girin (varsayılan:
drawtonomy-<tarih>). <ad>.zipindirilir; içinde<ad>.xodr,<ad>.xoscve senaryonun referans verdiği esmini 3B model varlıkları bulunur.
Mevcut sayfanın tamamı dışa aktarılır; ASAM hedefi için “yalnızca seçili” modu yoktur.
Oynatma
Section titled “Oynatma”unzip drawtonomy-2026-05-30.zipcd drawtonomy-2026-05-30esmini --osc drawtonomy-2026-05-30.xosc --window 60 60 1024 768
Araç turuncu çizgi boyunca ilerler; bu çizgi, çizdiğiniz yoldan üretilen FollowTrajectoryAction’ın ta kendisidir.
Neler dönüştürülür?
Section titled “Neler dönüştürülür?”OpenDRIVE’a (.xodr)
Section titled “OpenDRIVE’a (.xodr)”| drawtonomy şekli | OpenDRIVE öğesi | Notlar |
|---|---|---|
| Lane | bir <road> | 1 şerit = 1 bağımsız yol |
| Traffic light | En yakın yoldaki <signal> | yalnızca araç / yaya türü |
| Crosswalk | <object type="crosswalk"> | yola dik olarak yerleştirilir |
| Polygon (≥3 nokta) | <outline> ile <object type="patch"> | kavşak / alan görsellerini doldurur |
Bunların dışında kalan her şey — araçlar, yayalar, bağımsız noktalar, serbest çizgiler, metinler, görseller — .xodr dosyasına yazılmaz.
Her yolun özellikleri:
- Geometri yalnızca düz çizgilerden oluşur. Yol referans çizgisi, şeridin sol/sağ sınırlarından örneklenerek
<line>segmentleri olarak yazılır.arc,spiralveyapoly3geometrisi üretilmez. - Sabit şerit düzeni. Her yolda tam olarak bir sol şerit (
id=1), bir orta şerit (id=0) ve bir sağ şerit (id=-1) bulunur; hepsitype="driving"olarak atanır. Çok şeritli yollar ve çoklu şerit bölümleri temsil edilmez. - Yol işaretleri sabit olarak
solid white 0.13 mçizgisi şeklinde kodlanmıştır. - Kavşak yoktur. Her yol
junction="-1"taşır ve hiçbir<junction>öğesi oluşturulmaz. Kavşaklar yalnızca poligon yamağıyla (görseller) ve şeridinnext/prevbağlantılarından türetilen önceki/sonraki bağlantılarla (yalnızca ilk giriş) ifade edilir. - Yükseklik / süperyükseklik yoktur —
elevationProfilevelateralProfileboş olarak yazılır (düz, düzlemsel yollar). - Ölçek 16,67 px/m olarak sabitlenmiştir; coğrafi başlangıç noktası
0’dır.
OpenSCENARIO’ya (.xosc)
Section titled “OpenSCENARIO’ya (.xosc)”| drawtonomy şekli | OpenSCENARIO öğesi |
|---|---|
| Vehicle | bir <ScenarioObject> (<Vehicle> veya <Pedestrian>) |
| Path footprint (baş araç) | bir <FollowTrajectoryAction> |
“Yaya”, şablon adı yaya/yürüyüş deseniyle eşleşen bir araç şeklidir; <Vehicle> yerine <Pedestrian> olarak yazılır. Şeritler, yaya geçitleri, trafik ışıkları ve serbest çizgiler .xosc dosyasına yazılmaz.
Dışa aktarılan senaryo kasıtlı olarak sade tutulmuştur:
- Tek dinamik davranış
FollowTrajectoryAction’dır — zaman damgalı bir çoklu çizgi. Hız eylemleri, şerit değiştirme, trafik ışığı tepkileri, çarpışma önleme veya herhangi bir etkileşim koşulu yoktur. - Her hareketli varlık
SimulationTime ≥ 0anında başlar ve senaryo 60 sn’de sabit birStopTriggerile sonlanır.
Yol ayak izi araç hareketine nasıl dönüşür?
Section titled “Yol ayak izi araç hareketine nasıl dönüşür?”Dinamik dışa aktarmanın özü budur, bu yüzden ayrıntılı anlatmakta fayda var.

Path (yol), çizdiğiniz bir çizgidir; footprint (ayak izi) ise editörde bu yol boyunca dizilmiş bir aracın hayalet kopyalarıdır. Dışa aktarma sırasında:
- Yalnızca öndeki ayak izi (birincisi) hareketli bir
<ScenarioObject>olur. Arkadaki hayaletler tuval tarafı önizlemesidir ve atılır — bir kuyruk değil, tüm yolu kat eden tek bir araç elde edersiniz. - Yolun kontrol noktaları, yörünge köşeleri olarak dünya (ENU) metresine dönüştürülür.
- Her köşeye bir
timedeğeri atanır; sonuç,<FollowTrajectoryAction>içindeki<Trajectory>→<Polyline>→<Vertex time="…">yapısı olarak yazılır.
Hız sabittir (temel sınırlama)
Section titled “Hız sabittir (temel sınırlama)”Yörünge sabit kodlanmış 10 m/s (≈ 36 km/s) hızla zamanlanır. drawtonomy’nin arayüzünde hiçbir yerde hız alanı yoktur ve dışa aktarıcı varsayılanı asla değiştirmez. esmini’de varlık, ne çizdiğinizden bağımsız olarak ~36 km/s hızında görünür. Hızı değiştirmek yerine, aşağıda anlatıldığı gibi ayak izi düzeniyle zamanlama üzerinde çalışırsınız.
İki zamanlama modu
Section titled “İki zamanlama modu”Yolun “Variable positioning” düğmesinin açık olup olmaması, zamanın yörünge boyunca nasıl dağıtılacağını belirler:
- Tekdüze (düğme KAPALI) — ayak izleri eşit yay uzunluğu Interval’larında durur ve zaman
mesafe / 10 m/sile hesaplanır. Hareket sabit hızlıdır. Interval değişikliği yalnızca kaç köşe yazılacağını (örnekleme yoğunluğu) etkiler; yol şekli ve toplam süre değişmez. - Değişken (düğme AÇIK) — her ayak izi yol üzerinde bir konuma sabitlenir ve toplam süre ayak izleri arasında eşit zaman dilimlerine bölünür. Ayak izlerinin sık olduğu yerlerde araç yavaş, seyrek olduğu yerlerde hızlı hareket eder. Rota boyunca etkin hızı değiştirmenin tek yolu budur.
Editörde ne değiştirir → .xosc’ta ne değişir?
Section titled “Editörde ne değiştirir → .xosc’ta ne değişir?”| Editör eylemi | Dışa aktarmaya etkisi |
|---|---|
| Path kontrol noktasını taşıma | Yörünge köşe koordinatları + toplam süre (uzunluk değişir, hız 10 m/s’te kalır) |
| Variable modda ayak izini sürükleme | O ayak izinin normalleştirilmiş konumu → köşesinin time değeri → o bacağın yerel (etkin) hızı |
| Variable positioning açma/kapama | Eşit zaman ve eşit hız zamalaması arasında geçiş |
| Interval değiştirme (tekdüze mod) | Yalnızca köşe sayısı — yörünge şekli ve hız değişmez |
| Anchor değiştirme | Yalnızca ayak izi çizim ofseti — dışa aktarılan yörünge üzerinde etkisi yoktur |
| Araç şablonunu değiştirme | vehicleCategory, 3B model, sınır kutusu yüksekliği, performans ön ayarı |
| Aracı yeniden boyutlandırma (g, y) | BoundingBox boyutları ve aks geometrisi |
| Aracı döndürme | Başlangıç yönü (yalnızca araçta yörünge yoksa) |
| Aracı taşıma | Başlangıç WorldPosition’ı (yörüngesi varsa yörünge başlangıcına sabitlenir) |
Sık sorulan soruyu doğrudan yanıtlamak gerekirse: evet — Variable modda yolun ortasındaki bir ayak izini taşımak, dışa aktarılan hız planını değiştirir, çünkü o segmenti yeniden zamanlar. Tekdüze modda taşımak ya da Anchor’ı değiştirmek ise bunu yapmaz.
Sabit kodlanmış değerler
Section titled “Sabit kodlanmış değerler”Dürüstlük adına şunu belirtmek gerekir: araç kategorisi / performans ön ayarları, 3B model yolları, kategoriye göre araç yüksekliği, aks geometrisi (boyuttan türetilmiş), takip modu (position), 60 sn’lik durdurma tetikleyicisi ve — en önemlisi — 10 m/s yörünge hızı sabit haritalardan veya sabitlerden gelir; editörde değiştirebileceğiniz bir şey değildir.
Programatik dışa aktarma
Section titled “Programatik dışa aktarma”Dışa aktarıcı, @drawtonomy/sdk ile birlikte gelir ve editör olmadan çalışır. Menünün aksine, SDK iki dosyayı ayrı ayrı da yazmanıza olanak tanır:
import { exporter, createSnapshot } from '@drawtonomy/sdk'
const snapshot = createSnapshot(shapes)
// Paketlenmiş (menüyle aynı):const { blob, baseName } = exporter.buildEsminiZip(snapshot, { baseName: 'my-scene',})
// Ya da her format ayrı ayrı:const xodr = exporter.exportToOpenDrive(snapshot)const xosc = exporter.exportToOpenScenario(snapshot, { xodrFilename: 'my-scene.xodr',})Tam API ve uzantı noktaları için Dışa Aktarıcı SDK referansı sayfasına bakın.
Yazılan sürümler
Section titled “Yazılan sürümler”| Format | Sürüm |
|---|---|
| OpenDRIVE | 1.8 |
| OpenSCENARIO | 1.3 |
Kapsama genel bakış
Section titled “Kapsama genel bakış”Destekleniyor: şeritlerden düz çizgili yollar; sinyaller, yaya geçitleri ve kavşak yamaları OpenDRIVE nesnesi olarak; zaman damgalı yörünge takip eden yol başına bir araç; hemen oynatılabilir esmini zip.
Henüz desteklenmiyor: OpenDRIVE kavşakları, eğrisel geometri, çok şeritli yollar, yol yüksekliği; OpenSCENARIO hız eylemleri, şerit değiştirme, trafik ışığı mantığı, çok ajanlı etkileşim veya araç başına herhangi bir hız denetimi.
Ayrıca bakın
Section titled “Ayrıca bakın”- Dışa aktarıcı mimarisi — anlık görüntü ile dosya arasında işlem hattının yaptıkları.
- Hedef format ekleme — CARLA, SUMO, Unity veya başka bir hedef bağlayın.