{"id":9785,"date":"2023-04-25T08:00:00","date_gmt":"2023-04-25T08:00:00","guid":{"rendered":"https:\/\/rocketloop.de\/?p=9785"},"modified":"2023-04-26T08:51:53","modified_gmt":"2023-04-26T08:51:53","slug":"carla-custom-map","status":"publish","type":"post","link":"https:\/\/rocketloop.de\/de\/blog\/carla-benutzerdefinierte-karte\/","title":{"rendered":"Erstellen einer benutzerdefinierten Karte f\u00fcr CARLA"},"content":{"rendered":"<p>In diesem Blog-Beitrag gehen wir auf unsere Erfahrungen mit den f\u00fcr CARLA verf\u00fcgbaren Karteneditoren, die Anforderungen und die Werkzeuge ein, die wir schlie\u00dflich zur Erstellung einer benutzerdefinierten Karte verwendet haben. Zun\u00e4chst m\u00f6chten wir jedoch unsere Motive f\u00fcr die Erstellung einer benutzerdefinierten Karte erl\u00e4utern.<\/p>\n\n\n\n<p>CARLA wird mit einer Reihe von vordefinierten Karten f\u00fcr die Simulation ausgeliefert. Die meisten sind in den USA eingerichtet oder enthalten eine Kombination aus europ\u00e4ischen und amerikanischen Verkehrsschildern. F\u00fcr unseren Anwendungsfall war es wichtig, spezifische Verkehrssituationen zu haben, die haupts\u00e4chlich in Deutschland und den USA liegen. Leider waren diese in den vorhandenen Karten nicht vorhanden. Das bedeutete, dass wir diese Karten selbst erstellen mussten. Zu diesem Zweck recherchierten wir verf\u00fcgbare Tools zur Erstellung dieser benutzerdefinierten Karten. Obwohl es mehrere Tools gibt, stie\u00dfen wir bei den meisten von ihnen auf Probleme. Wir kamen zu dem Schluss, dass nur der offiziell unterst\u00fctzte Karteneditor Road Runner ein vollst\u00e4ndiges Werkzeug f\u00fcr die Erstellung von Stra\u00dfennetzen und Karten bietet.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Welche Map-Editoren sind f\u00fcr CARLA verf\u00fcgbar?<\/h2>\n\n\n\n<p>Die Erstellung einer Karte f\u00fcr CARLA erfordert zwei Komponenten. Die erste ist eine OpenDrive-Datei, die das Stra\u00dfennetz auf einer reinen Datenebene definiert. Die zweite ist eine FBX-Datei, die Informationen \u00fcber die 3D-Meshes und Texturen enth\u00e4lt. W\u00e4hrend die OpenDrive-Datei f\u00fcr die Navigation der Fahrzeuge im Stra\u00dfennetz ben\u00f6tigt wird, sorgt die FBX-Datei f\u00fcr die visuelle Darstellung der Szene. Im besten Fall sollten beide Dateien von einem Werkzeug gemeinsam erstellt werden. Andernfalls ist viel Handarbeit erforderlich, um zu verhindern, dass die beiden Koordinatenr\u00e4ume voneinander abweichen. Diese Vorgehensweise ist nicht zu empfehlen, da sie sehr fehleranf\u00e4llig ist. Dennoch gibt es Editoren, die nur FBX-Dateien, aber keine 3D-Meshes erzeugen k\u00f6nnen.<\/p>\n\n\n\n<p>In diesem Abschnitt werden wir einige der Tools vorstellen, die wir gefunden und ausprobiert haben, und \u00fcber unsere Erkenntnisse, Herausforderungen und Erfahrungen mit den vorgestellten Editoren berichten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">CommonRoad Scenario Designer<\/h2>\n\n\n\n<p>Der erste Editor, den wir uns ansehen, ist der Open-Source-Editor <a href=\"https:\/\/gitlab.lrz.de\/tum-cps\/commonroad-scenario-designer\">CommonRoad Scenario Designer.<\/a> Dieser Editor erm\u00f6glicht die Erstellung von Stra\u00dfennetzen, ist aber nicht in der Lage, 3D-Meshes zu erzeugen, die das Netz erg\u00e4nzen. Der Editor kann OpenDrive-Dateien, OpenStreetMap-Dateien, SUMO-Dateien, Lanelet-Dateien und das interne Dateiformat CR importieren, kann aber nur SUMO- oder CR-Dateien exportieren. Gl\u00fccklicherweise k\u00f6nnen SUMO-Dateien leicht nach OpenDrive konvertiert werden durch die Nutzung von <a href=\"https:\/\/sumo.dlr.de\/docs\/netconvert.html\">SUMO netconvert<\/a>.<\/p>\n\n\n\n<p>Unsere Erfahrung mit dem Tool war, dass sein Code noch nicht ausgereift ist und der Editor oft abst\u00fcrzte, was es f\u00fcr uns unbrauchbar machte.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Netedit<\/h2>\n\n\n\n<p>Ein weiterer Editor, auf den wir gesto\u00dfen sind, war <a href=\"https:\/\/sumo.dlr.de\/docs\/Netedit\/index.html\">Netedit<\/a>. Der Editor ist Teil der <a href=\"https:\/\/www.eclipse.org\/sumo\/\">SUMO<\/a> -Simulationsbibliothek. Mit <a href=\"https:\/\/sumo.dlr.de\/docs\/Netedit\/index.html\">Netedit<\/a> st es m\u00f6glich, interaktiv ein Stra\u00dfennetz in einer 2D-Ansicht zu erstellen. \u00c4hnlich wie beim CommonRoad Scenario Designer ist es mit diesem Editor jedoch nicht m\u00f6glich, 3D-Meshes und -Umgebungen zu erstellen und zu exportieren. Er bietet jedoch eine direkte Unterst\u00fctzung f\u00fcr den Export von OpenDrive-Dateien.<\/p>\n\n\n\n<p>Wie der CommonRoad Scenario Designer ist das Tool Open Source und f\u00fcr die Erstellung einer OpenDrive-Datei geeignet.<\/p>\n\n\n\n<p>Netedit ist zwar ausgereifter als der CommonRoad Scenario Designer, erf\u00fcllte aber immer noch nicht unsere Anforderungen an eine 3D-Umgebung. Daher ist der Editor nicht unsere erste Wahl.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Driving Scenario Creator (Blender plugin)<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.blender.org\/\">Blender<\/a> ist ein kostenloses und ein Open-Source-Projekt, das FBX-Exporte und Animationen unterst\u00fctzt. Mit dem Add-on <a href=\"https:\/\/github.com\/johschmitz\/blender-driving-scenario-creator\">Driving Scenario Creator,<\/a> kann ein Stra\u00dfennetz erstellt und im OpenDrive-Format exportiert werden. Der Vorteil dieser Tools ist, dass beide Open Source sind und sowohl OpenDrive-Dateien als auch FBX-Dateien exportiert werden k\u00f6nnen.<\/p>\n\n\n\n<p>Ein Problem mit dem Add-on ist, dass Referenzpunkte wie der Anfang und das Ende einer Stra\u00dfe beim Hinzuf\u00fcgen einer Stra\u00dfe zwischengespeichert werden. Wenn Sie das Objekt verschieben, werden die Referenzpunkte nicht aktualisiert. Referenzpunkte sind wichtig, weil das Add-on zum Beispiel \u00fcberpr\u00fcft, dass genau vier Stra\u00dfen an einer Kreuzung angeschlossen sind. Dies schr\u00e4nkt die 3D-Modellierung erheblich ein.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">OpenRoadEd<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/fhwedel-hoe\/OpenRoadEd\">OpenRoadEd<\/a> ist ein Werkzeug zur Erstellung einer OpenDrive- und OpenSceneGraph-Datei. Eine OpenSceneGraph-Datei kann \u00fcber ein <a href=\"https:\/\/www.openscenegraph.com\/index.php\/documentation\/user-guides\/61-osgplugins\">plugin<\/a> f\u00fcr die OpenSceneGraph-Bibliothek potenziell in eine FBX-Datei konvertiert werden.<\/p>\n\n\n\n<p>Leider funktionierte der Editor nicht wie erwartet. Unter Windows konnte das OpenScenceGraph-Format der Datei nicht gespeichert werden.  Unter Linux froren die Dateidialoge ein, wenn wir versuchten, eine Datei zu \u00f6ffnen oder zu speichern. Auch im Viewer konnte die Kamera nicht bewegt werden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">RoadRunner<\/h2>\n\n\n\n<p><a href=\"https:\/\/de.mathworks.com\/products\/roadrunner.html\">RoadRunner<\/a> ist der empfohlene Karteneditor f\u00fcr CARLA. Leider ist der Editor nicht kostenlos und nicht Open Source. Er ist speziell auf CARLA zugeschnitten und kann sowohl OpenDrive- als auch FBX-Dateien erzeugen. Der Editor verf\u00fcgt \u00fcber eine intuitiv bedienbare Benutzeroberfl\u00e4che und umfangreiche Werkzeuge und Hilfsmittel zur Erstellung eines Stra\u00dfennetzes und der entsprechenden Umgebung. Er ist bei weitem der vollst\u00e4ndigste und ausgereifteste Editor unter den anderen bisher vorgestellten Tools.<\/p>\n\n\n\n<p>Daher war RoadRunner das Tool unserer Wahl unter allen vorgestellten Tools. Im weiteren Verlauf dieses Blogbeitrags werden wir die Funktionen von RoadRunner n\u00e4her erl\u00e4utern.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"344\" src=\"https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction-1024x344.jpeg\" alt=\"\" class=\"wp-image-10584\" srcset=\"https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction-1024x344.jpeg 1024w, https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction-300x101.jpeg 300w, https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction-768x258.jpeg 768w, https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction-18x6.jpeg 18w, https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction.jpeg 1264w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">CARLA Junction<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Verwendung von RoadRunner zur Erstellung benutzerdefinierter Karten f\u00fcr CARLA<\/h2>\n\n\n\n<p>Einer der Gr\u00fcnde, warum wir uns f\u00fcr RoadRunner entschieden haben, war die sehr gute Integration mit CARLA und die einfache Bedienung. Der Editor bietet zahlreiche Werkzeuge f\u00fcr die Erstellung einer Karte zur Verwendung in CARLA. Dazu geh\u00f6ren:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Road tool<\/strong>: generiert Stra\u00dfen entlang platzierter Punkte<\/li>\n\n\n\n<li><strong>Lane tool<\/strong>: \u00e4ndert die Anzahl und Art der Fahrspuren einer Stra\u00dfe<\/li>\n\n\n\n<li><strong>Junction tool<\/strong>: Erstellen und \u00c4ndern von Kreuzungen zwischen Stra\u00dfen<\/li>\n\n\n\n<li><strong>Lane marking tools<\/strong>: Fahrbahnmarkierungen bearbeiten<\/li>\n\n\n\n<li><strong>Surface tool<\/strong>: Schaffung von Fl\u00e4chen abseits der Stra\u00dfe (Gras, Parkpl\u00e4tze usw.)<\/li>\n\n\n\n<li><strong>Prop tool<\/strong>: verschiedene Requisiten auf der Karte platzieren<\/li>\n<\/ul>\n\n\n\n<p>Die Erstellung von Karten ist einfach und kann mit Hilfe der zahlreichen von MathWorks bereitgestellten <a href=\"https:\/\/de.mathworks.com\/videos\/series\/getting-started-with-roadrunner.html\">Tutorial<\/a> -Videos erlernt werden. Im Allgemeinen ist es eine gute Idee, mit dem Stra\u00dfenwerkzeug zu beginnen und das allgemeine Layout zu erstellen. Kreuzungen werden automatisch erstellt, wenn sich Stra\u00dfen kreuzen, was die Erstellung einer benutzerdefinierten Karte erleichtert, so dass Sie sich ganz auf das konzentrieren k\u00f6nnen, was Sie brauchen.<\/p>\n\n\n\n<p>Wenn Ihr Grundlayout fertiggestellt ist, k\u00f6nnen Sie mit dem Fahrspurwerkzeug Fahrspuren hinzuf\u00fcgen oder \u00e4ndern. Mit dem Fahrspurwerkzeug k\u00f6nnen Sie beispielsweise eine normale Stra\u00dfe mit zwei Fahrspuren in eine Autobahn verwandeln, indem Sie Fahrspuren in jede Richtung und eine Puffersfl\u00e4che in der Mitte der Stra\u00dfe hinzuf\u00fcgen. Wir k\u00f6nnen das Werkzeug auch verwenden, um Abbiegespuren an Kreuzungen hinzuzuf\u00fcgen.<\/p>\n\n\n\n<p>In diesem Schritt verwenden wir das Oberfl\u00e4chenwerkzeug, um Vegetation um das Stra\u00dfennetz herum hinzuzuf\u00fcgen. Wir k\u00f6nnen dies tun, indem wir einen Kreis um die Stra\u00dfen ziehen und RoadRunner f\u00fcllt automatisch alle L\u00fccken mit der von uns gew\u00e4hlten Textur.<\/p>\n\n\n\n<p>Nun k\u00f6nnen wir die von uns erstellten Kreuzungen modifizieren und festlegen, welche Fahrspuren miteinander verbunden sind, d. h. welche Abbiegeman\u00f6ver zul\u00e4ssig sind. F\u00fcr diese Aufgabe verwenden wir das Kreuzungswerkzeug. W\u00e4hlen Sie einfach die Kreuzung aus, die Sie bearbeiten m\u00f6chten, und verbinden oder trennen Sie die Fahrspuren. Angenommen, wir m\u00f6chten drei Fahrspuren in eine Kreuzung einm\u00fcnden lassen. Die linke Spur soll nur das Linksabbiegen erlauben, die mittlere Spur nur das Geradeausfahren \u00fcber die Kreuzung, und die rechte Spur soll nur das Rechtsabbiegen erlauben. Standardm\u00e4\u00dfig sollte die Kreuzung alle Fahrspuren miteinander verbunden haben. Daher w\u00e4hlen wir die Kreuzung mit dem Kreuzungswerkzeug aus und l\u00f6schen einfach Verbindungen, bis die linke Spur nur noch mit der Stra\u00dfe links verbunden ist, die rechte Spur nur noch mit der Stra\u00dfe rechts und die mittlere Spur nur noch mit der Stra\u00dfe geradeaus.<\/p>\n\n\n\n<p>Nach der Anpassung von Fahrspuren und Kreuzungen k\u00f6nnen wir die Fahrspurmarkierungen bearbeiten. Mit dem Fahrbahnmarkierungswerkzeug ist diese Aufgabe ganz einfach. W\u00e4hlen Sie einfach eine Fahrbahnmarkierungstextur aus dem Materialbrowser aus und ziehen Sie sie per Drag &amp; Drop auf eine Fahrbahnmarkierung. Au\u00dferdem k\u00f6nnen Fahrspurmarkierungen verschoben oder mit anderen Fahrspurmarkierungen zusammengef\u00fchrt werden - zum Beispiel, um ein Rei\u00dfverschlussspuren zu erstellen.<\/p>\n\n\n\n<p>Vergewissern Sie sich schlie\u00dflich, dass es keine Probleme mit <a href=\"https:\/\/de.mathworks.com\/help\/roadrunner\/ug\/resolve-geometry-issues.html\">OpenDrive<\/a> gibt (f\u00fcr den Zugriff auf die Informationen ist eine Registrierung erforderlich). Dies ist leicht zu \u00fcberpr\u00fcfen, indem Sie auf der Registerkarte \"Tools\" navigieren. RoadRunner kann einen Geometrie-Problem-Check durchf\u00fchren, der alle Geometrie-Probleme visualisiert und auflistet. Nach unserer Erfahrung wurden solche Probleme meist durch ineinander \u00fcbergehende Fahrbahnmarkierungen verursacht. Wenn RoadRunner keine Probleme feststellt, k\u00f6nnen Sie St\u00fctzen entlang der Stra\u00dfe platzieren. Unserer Erfahrung nach ist es m\u00f6glicherweise besser, diese sp\u00e4ter in der Unreal Engine zu verwenden (siehe unseren anderen <a href=\"https:\/\/rocketloop.de\/de\/blog\/importieren-benutzerdefinierte-roadrunner-karte-carla\/\">Blogbeitrag<\/a>)  um Probleme beim Export der Karte zu minimieren. Die Platzierung von Verkehrsschildern sollte jedoch in RoadRunner selbst erfolgen, um sicherzustellen, dass sie in der OpenDrive-Datei registriert werden. Bei Verkehrsschildern muss zuerst ein Pfosten positioniert werden und dann kann ein Schild angebracht werden.<\/p>\n\n\n\n<p>Sobald die Karte fertig ist, m\u00fcssen wir sie zur Verwendung in CARLA exportieren. Dieser Schritt erfordert jedoch umfangreiche \u00dcberlegungen und w\u00fcrde den Rahmen dieses Beitrags sprengen. Daher haben wir einen separaten Blog-Beitrag \u00fcber den <a href=\"https:\/\/rocketloop.de\/de\/blog\/importieren-benutzerdefinierte-roadrunner-karte-carla\/\">Export einer RoadRunner-Karte erstellt<\/a>.<\/p>\n\n\n\n<p>Angenommen, wir haben unsere benutzerdefinierte Karte erfolgreich in CARLA importiert, ist der n\u00e4chste Schritt, wie wir sie laden und testen k\u00f6nnen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"455\" src=\"https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction-3-1024x455.jpeg\" alt=\"\" class=\"wp-image-10583\" srcset=\"https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction-3-1024x455.jpeg 1024w, https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction-3-300x133.jpeg 300w, https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction-3-768x341.jpeg 768w, https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction-3-18x8.jpeg 18w, https:\/\/rocketloop.de\/wp-content\/uploads\/2023\/04\/carla-junction-3.jpeg 1026w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">CARLA Junction<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Verwendung Ihrer benutzerdefinierten Karte in CARLA<\/h2>\n\n\n\n<p>Der n\u00e4chste Schritt besteht darin, unsere benutzerdefinierte Karte auszuprobieren. Dazu gehen wir davon aus, dass die Karte bereits erfolgreich in CARLA importiert wurde (Hilfe dazu finden Sie in unserem <a href=\"https:\/\/rocketloop.de\/de\/blog\/importieren-benutzerdefinierte-roadrunner-karte-carla\/\">Blogbeitrag<\/a> ) und dass der CARLA-Server l\u00e4uft. Wenn die Quellversion von CARLA verwendet wird, kann der Server durch einen einfachen Klick auf \"Play\" im Unreal Engine Editor gestartet werden. Falls es Probleme beim Einrichten des Servers gibt, lesen Sie bitte <a href=\"https:\/\/rocketloop.de\/de\/blog\/carla-einrichten-fernzugriff\/\">diesen Blogeintrag<\/a> ,  der dieses Thema behandelt.<\/p>\n\n\n\n<p>Unser Ziel ist es zun\u00e4chst, die Karte zu laden, herumzufahren und zu sehen, ob beim Importieren nichts verloren gegangen ist. Um eine Simulation auf dem CARLA-Server zum Laufen zu bringen, wird die CARLA-Python-API auf der Client-Seite ben\u00f6tigt. Wenn also auf dem Server CARLA 0.9.13 l\u00e4uft, muss jeder Client die Python-API \u00fcber <code>pip install carla=0.9.13<\/code>installieren. Stellen Sie sicher, dass die Versionen von Server und Client identisch sind.<\/p>\n\n\n\n<p>Zun\u00e4chst m\u00fcssen wir die Karte auf dem CARLA-Server so umstellen, dass wir ein Auto auf der neuen Karte fahren k\u00f6nnen. Dazu verwenden wir die <code>config.py<\/code> die <a href=\"https:\/\/github.com\/carla-simulator\/carla\/blob\/master\/PythonAPI\/util\/config.py\">hier<\/a> im CARLA-Repository bereitgestellt wird. Wenn der Server auf <code>localhost<\/code> l\u00e4uft, f\u00fchren wir einfach<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">code<\/span>&gt;<\/span>python config.py -m <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Name<\/span> <span class=\"hljs-attr\">of<\/span> <span class=\"hljs-attr\">custom<\/span> <span class=\"hljs-attr\">map<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">code<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Wenn der Server nicht lokal l\u00e4uft, m\u00fcssen wir auch die IP \u00fcbergeben:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">python config.py --host <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">ip<\/span>&gt;<\/span> -m <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">Name<\/span> <span class=\"hljs-attr\">of<\/span> <span class=\"hljs-attr\">custom<\/span> <span class=\"hljs-attr\">map<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Dadurch wird die Karte auf dem Server ge\u00e4ndert. Nach unserem Kenntnisstand ist es nicht m\u00f6glich, mehrere Karten parallel laufen zu lassen. Daher k\u00f6nnen die Clients eine laufende Simulation unterbrechen, indem sie die Karte \u00e4ndern.<\/p>\n\n\n\n<p>Werfen wir nun einen Blick darauf, wie wir tats\u00e4chlich in unsere Karte springen und ein Auto fahren. Normalerweise wird das Python-Pake <code>pygame<\/code> ur Erstellung eines Fensters, von Overlays und zur Steuerung von Ereignissen verwendet, w\u00e4hrend die CARLA-API zur Steuerung der Simulation und zum Abrufen eines Stroms von gerenderten Bildern vom Server verwendet wird.<\/p>\n\n\n\n<p>Da die Einrichtung all dieser Funktionen recht zeitaufw\u00e4ndig sein kann, ist es viel einfacher, sich auf vorhandenen Code zu verlassen, um unsere Karte auszuprobieren. CARLA bietet eine Vielzahl von <a href=\"https:\/\/github.com\/carla-simulator\/carla\/tree\/master\/PythonAPI\/examples\">example files<\/a> die zeigen, wie das geht.  Wir empfehlen, den Python-Code <code>manual_control.py<\/code>zu verwenden. Dieses Skript stellt eine Verbindung zum CARLA-Server her, erstellt ein Fenster, legt ein Auto an, platziert die Kamera hinter dem Auto und l\u00e4sst den Benutzer herumfahren.<\/p>\n\n\n\n<p>Beim Ausf\u00fchren von<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\"><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">code<\/span>&gt;<\/span>python manual_control.py --res '1280x720'<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">code<\/span>&gt;<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>\u00f6ffnet sich ein Fenster und wir sollten in der Lage sein, auf unserer neu erstellten Karte herumzufahren. Dennoch k\u00f6nnen zwei Probleme auftreten: Verbindungsbandbreite und GPU-Leistung. Beide Probleme f\u00fchren dazu, dass das Videofeed ruckelt.<\/p>\n\n\n\n<p>Leider findet keine ausgekl\u00fcgelte Komprimierung statt, wenn die Bilder vom Server zum Client gestreamt werden. Daher kann der Empfang des CARLA-Feeds eine gro\u00dfe Bandbreite erfordern. In diesem Fall kann es hilfreich sein, die Aufl\u00f6sung zu verringern.  Anstelle von 720p wie im obigen Beispiel kann auch eine niedrigere Aufl\u00f6sung verwendet werden.<\/p>\n\n\n\n<p>Das andere Problem kann durch eine GPU verursacht werden, die nicht leistungsf\u00e4hig genug ist, um CARLA mit den h\u00f6chsten Einstellungen (Voreinstellung<em>Epic <\/em>) zu rendern. Um dieses Problem zu l\u00f6sen, starten Sie den Server mit der Voreinstellung <em>Low neu<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zusammenfassung<\/h2>\n\n\n\n<p>Die vordefinierten Karten in CARLA sind frei verf\u00fcgbar und k\u00f6nnen kostenlos genutzt werden. Es gibt mehrere St\u00e4dte, die je nach der Simulation, die Sie durchf\u00fchren m\u00f6chten, verwendet werden k\u00f6nnen. Wenn Ihr Anwendungsfall benutzerdefinierte Karten erfordert, empfehlen wir die Verwendung von RoadRunner, dem einzigen Karteneditor, der unserer Meinung nach ein vollst\u00e4ndiges Werkzeug f\u00fcr die Erstellung von Stra\u00dfennetzen und deren Umgebung bietet. Die Erstellung einer benutzerdefinierten Karte bringt einige Herausforderungen mit sich, nicht nur bei der Wahl des Editors, auch der Import der Karte ist nicht ganz einfach. Im n\u00e4chsten <a href=\"https:\/\/rocketloop.de\/de\/blog\/importieren-benutzerdefinierte-roadrunner-karte-carla\/\">Blogbeitrag<\/a> dieser Serie gehen wir n\u00e4her darauf ein und berichten \u00fcber unsere Erfahrungen mit dem Importieren Ihrer Karten in CARLA.<\/p>","protected":false},"excerpt":{"rendered":"<p>In this blog post, we discuss our learnings on the map editors available for CARLA, the constraints, and the tools we finally used to create a custom map. But first&#8230;<\/p>","protected":false},"author":10,"featured_media":10583,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_seopress_robots_primary_cat":"none","footnotes":""},"categories":[54],"tags":[],"class_list":["post-9785","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-carla-simulator"],"acf":[],"_links":{"self":[{"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/posts\/9785","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/comments?post=9785"}],"version-history":[{"count":11,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/posts\/9785\/revisions"}],"predecessor-version":[{"id":10611,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/posts\/9785\/revisions\/10611"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/media\/10583"}],"wp:attachment":[{"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/media?parent=9785"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/categories?post=9785"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/tags?post=9785"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}