{"id":9788,"date":"2023-05-02T08:00:00","date_gmt":"2023-05-02T08:00:00","guid":{"rendered":"https:\/\/rocketloop.de\/?p=9788"},"modified":"2023-05-30T12:23:59","modified_gmt":"2023-05-30T12:23:59","slug":"importing-custom-roadrunner-map-carla","status":"publish","type":"post","link":"https:\/\/rocketloop.de\/de\/blog\/importieren-benutzerdefinierte-roadrunner-karte-carla\/","title":{"rendered":"Importieren einer benutzerdefinierten RoadRunner-Karte in CARLA"},"content":{"rendered":"<p>Wir wollen unsere Erfahrungen mit CARLA teilen und zeigen, wie es uns geholfen hat, eine langfristige L\u00f6sung f\u00fcr den Import von benutzerdefinierten Maps zu finden. Um eine eigene Map in CARLA zu importieren, muss die Dokumentation verstanden sowie die Schritte befolgt werden (auch wenn es auf dem Weg dorthin einige Herausforderungen gab). Im Folgenden m\u00f6chten wir diese Erkenntnisse und Erfahrungen teilen.<\/p>\n\n\n\n<p>Wie in <a href=\"https:\/\/rocketloop.de\/de\/blog\/carla-autonomer-fahrsimulator\/\" data-type=\"URL\">einem fr\u00fcheren Blogeintrag<\/a> erl\u00e4utert, ist RoadRunner ein Mapeditor von MathWorks, der speziell auf die Erstellung von Stra\u00dfennetzen zugeschnitten ist.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Ideal-Setup-Up-for-RoadRunner-and-CARLA\">Ideales Setup f\u00fcr RoadRunner und CARLA<\/h2>\n\n\n\n<p>ls wir anfingen, CARLA und RoadRunner gemeinsam zu nutzen, waren wir uns der Kompatibilit\u00e4tsanforderungen f\u00fcr RoadRunner und CARLA nicht bewusst. W\u00e4hrend die aktuelle&nbsp;<a href=\"https:\/\/carla.readthedocs.io\/en\/latest\/large_map_roadrunner\/#introduction-to-roadrunner\">CARLA Dokumentation<\/a>&nbsp;nicht vor Inkompatibilit\u00e4ten mit RoadRunner warnt, hei\u00dft es in der&nbsp;<a href=\"https:\/\/de.mathworks.com\/help\/roadrunner\/ug\/export-to-carla.html\">RoadRunner-Dokumentation<\/a>&nbsp;dass RoadRunner nur mit der Source-Version CARLA 0.9.5 kompatibel ist (zum Zeitpunkt der Erstellung dieses Artikels war die letzte stabile Version CARLA 0.9.13). Au\u00dferdem empfiehlt MathWorks die Verwendung von Ubuntu 18.04 f\u00fcr RoadRunner- und CARLA-Projekte.<\/p>\n\n\n\n<p>Wir haben f\u00fcr alle in diesem Tutorial beschriebenen Schritte Ubuntu 20.04 und CARLA 0.9.13 verwendet. Unter diesen Umst\u00e4nden werden L\u00f6sungen vorgeschlagen, die einen erfolgreichen Import der RoadRunner-Map in den CARLA UE4-Editor erm\u00f6glichen.<\/p>\n\n\n\n<p>Es gibt zwei Varianten von CARLA: die Paketversion, die eine Bin\u00e4rdatei zum Starten des CARLA-Servers enth\u00e4lt, oder die Source-Version, die den Unreal-Engine-4-Editor als Abh\u00e4ngigkeit ben\u00f6tigt. Die Source-Version enth\u00e4lt keine Bin\u00e4rdatei, um den Server direkt zu starten. Stattdessen wird eine Bin\u00e4rdatei zum Starten des Unreal-Editors mitgeliefert, von dem aus der Server gestartet werden kann. Die Paketvariante ist etwa 16 GB gro\u00df, die Source-Version ben\u00f6tigt jedoch mindestens 150 GB (die CARLA-Dokumentation nennt andere Zahlen, ist aber sehr inkonsistent damit). Man kann argumentieren, dass die Paketversion die bessere ist, aber wir hatten gro\u00dfe Probleme beim Importieren von Maps - wie wir in diesem Beitrag nochmal verdeutlichen. Daher raten wir, die Source-Version von CARLA zu verwenden.<\/p>\n\n\n\n<p>F\u00fcr beide Varianten gibt es Docker-Images. Allerdings muss das Image f\u00fcr die Source-Version erstellt werden und ist unseres Wissens nach nicht als Download verf\u00fcgbar.<\/p>\n\n\n\n<p>Zusammengefasst bestehen die folgenden Installationsmethoden:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Paketversion CARLA\n<ul class=\"wp-block-list\">\n<li>Praktisch, aber nicht empfehlenswert, um eigene Maps einzubindenPraktisch, aber nicht empfehlenswert, um eigene Maps einzubinden<\/li>\n\n\n\n<li><a href=\"https:\/\/carla.readthedocs.io\/en\/latest\/start_quickstart\/#a-debian-carla-installation\">Installationsanweisungen f\u00fcr Debian<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/carla-simulator\/carla\/releases\/tag\/0.9.13\/\">Installationsanweisungen f\u00fcr Windows<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Docker-Container der Paketversion CARLA\n<ul class=\"wp-block-list\">\n<li>Praktisch, aber nicht empfehlenswert, um eigene Maps einzubindenPraktisch, aber nicht empfehlenswert, um eigene Maps einzubinden<\/li>\n\n\n\n<li><a href=\"https:\/\/carla.readthedocs.io\/en\/latest\/build_docker\/\">Installationsanweisungen<\/a><\/li>\n\n\n\n<li>Die Anleitung ist etwas veraltet. Das <em>neuste <\/em>Image ist Version 0.9.13.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Docker-Container, der den Unreal-Editor enth\u00e4lt\n<ul class=\"wp-block-list\">\n<li>Die CARLA- <a href=\"https:\/\/carla.readthedocs.io\/en\/latest\/tuto_M_add_map_package\/\">Dokumentation<\/a> verwendet das Image, um Maps zur Nutzung in der Paketversion zu erstellen<\/li>\n\n\n\n<li>Abgesehen von diesem Anwendungsfall ist es besser, CARLA direkt aus dem Quellcode zu erstellen<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/carla-simulator\/carla\/tree\/master\/Util\/Docker\">Installationsanweisungen<\/a><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Aus dem Quellcode kompilieren\n<ul class=\"wp-block-list\">\n<li>Sehr empfehlenswert, um eigene Maps einzubinden<\/li>\n\n\n\n<li>Enth\u00e4lt den Unreal-Editor<\/li>\n\n\n\n<li><a href=\"https:\/\/carla.readthedocs.io\/en\/latest\/build_linux\/\">Installationsanweisungen f\u00fcr Linux<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/carla.readthedocs.io\/en\/latest\/build_windows\/\">Installationsanweisungen f\u00fcr Windows<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Creating-a-Custom-Map-with-Roadrunner\">Erstellen einer benutzerdefinierten Map mit RoadRunner<\/h2>\n\n\n\n<p>Die Erstellung einer benutzerdefinierten Map in RoadRunner ist einfach und kann durch das Lesen der offiziellen&nbsp;<a href=\"https:\/\/de.mathworks.com\/help\/roadrunner\/index.html?s_tid=CRUX_lftnav\">Dokumentation<\/a>&nbsp;schnell erlernt werden. Im Folgenden geben wir Tipps, wie Probleme beim Mapexport vermieden werden k\u00f6nnen.<\/p>\n\n\n\n<p>Als Erstes ist es wichtig zu wissen, dass der Unreal Engine 4 Editor das Platzieren von Assets nach dem RoadRunner Export erlaubt. Das kann sich als n\u00fctzlich erweisen, wenn die Map schlie\u00dflich in ein Projekt importiert wird. RoadRunner ist ein hervorragendes Werkzeug f\u00fcr die Erstellung eines Stra\u00dfennetzes in Verbindung mit einer OpenDrive-Map. Im Gegensatz dazu ist der UE4-Editor ein sehr gutes Werkzeug f\u00fcr die Bearbeitung des Gel\u00e4ndes und das Hinzuf\u00fcgen von Geb\u00e4uden und Dekorationen neben den Stra\u00dfen. Unserer Erfahrung nach f\u00fchrte das Hinzuf\u00fcgen einiger Geb\u00e4ude in RoadRunner zu Warnungen, als wir sie in UE4 importierten. Wir beschlossen, sie zu entfernen und die entsprechenden Geb\u00e4ude im UE4-Editor hinzuzuf\u00fcgen.<\/p>\n\n\n\n<p>Zweitens muss sichergestellt werden, dass die Map keine Geometriefehler enth\u00e4lt. RoadRunner kann helfen, Geometrieprobleme zu erkennen und anzuzeigen. Die&nbsp;<a href=\"https:\/\/de.mathworks.com\/help\/roadrunner\/ug\/resolve-geometry-issues.html\">offizellen Anweisungen<\/a>&nbsp;tellen dar, wie Probleme visualisert werden k\u00f6nnen. Es gab mehrere F\u00e4lle, in denen Linienmarkierungen ineinander liefen und Probleme erzeugt haben. Grund daf\u00fcr ist die Tatsache, dass Linienmarkierungen tats\u00e4chliche Geometrie sind und nicht nur Texturen auf der Fahrbahn. Die Folge k\u00f6nnen in CARLA auftretende visuelle Artefakte sein. Um sicherzustellen, dass das nicht passiert, mussten wir entweder eine Linienmarkierung aus dem problematischen Bereich entfernen oder eine gestrichelte Linie in diesem Bereich verschieben.<\/p>\n\n\n\n<p>Zu guter Letzt ist es wichtig, die&nbsp;<a href=\"https:\/\/de.mathworks.com\/help\/roadrunner\/ref\/opendriveexportpreviewtool.html\">OpenDrive-Map zu visualisieren<\/a>&nbsp;und auf Fehler zu \u00fcberpr\u00fcfen. In unserem Fall stammen die meisten OpenDrive-Fehler von komplexen Kreuzungen und Autobahnrampen. Die voreingestellten Fahrspurverbindungen waren in der Regel bei Autobahnrampen fehlerhaft und konnten mit dem Kreuzungstool leicht behoben werden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Importing-Roadrunner-Maps-to-UE4-Map-Editor\">RoadRunner-Maps in den UE4-Mapseditor importieren<\/h2>\n\n\n\n<p>Nehmen wir an, wir haben gerade eine Map in RoadRunner erstellt und wollen sie nach CARLA exportieren. Dazu gibt es zwei verschiedene Strategien. Entweder wir folgen der CARLA-Dokumentation, wie man eine RoadRunner-Map importiert und sie direkt f\u00fcr die CARLA-Paketversion nutzbar macht, oder wir folgen der RoadRunner-Dokumentation, wie man die Map in den UE4-Editor von CARLA importiert.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/bushed-screenshot-1024x576.png\" alt=\"Darstellung einer benutzerdefinierten Map in RoadRunner.\" class=\"wp-image-9803\" srcset=\"https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/bushed-screenshot-1024x576.png 1024w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/bushed-screenshot-300x169.png 300w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/bushed-screenshot-768x432.png 768w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/bushed-screenshot-1536x864.png 1536w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/bushed-screenshot-18x10.png 18w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/bushed-screenshot.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Darstellung einer benutzerdefinierten Map in RoadRunner.<\/figcaption><\/figure>\n\n\n\n<p>Es ist uns nicht gelungen, eine Map mit der Paketversion von CARLA 0.9.13 mit RoadRunner 2022 erfolgreich zu importieren, obwohl wir den&nbsp;<a href=\"https:\/\/carla.readthedocs.io\/en\/latest\/tuto_M_add_map_package\/\">Anweisungen<\/a>&nbsp;er CARLA-Dokumentation befolgt sind. Wir sind auf zwei erhebliche Probleme mit der Map gesto\u00dfen: Die Verkehrszeichen, die wir platziert hatten, fehlten in CARLA, und das Laub zeigte Rendering-Probleme.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/missing-signs-CARLA-1024x610.png\" alt=\"missing traffic signs in CARLA simulator\" class=\"wp-image-9805\" srcset=\"https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/missing-signs-CARLA-1024x610.png 1024w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/missing-signs-CARLA-300x179.png 300w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/missing-signs-CARLA-768x457.png 768w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/missing-signs-CARLA-18x12.png 18w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/missing-signs-CARLA.png 1296w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">In CARLA fehlen Verkehrsschilder.<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/rendering-issues-CARLA-1024x610.png\" alt=\"rendering problems with CARLA simulator\" class=\"wp-image-9806\" srcset=\"https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/rendering-issues-CARLA-1024x610.png 1024w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/rendering-issues-CARLA-300x179.png 300w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/rendering-issues-CARLA-768x457.png 768w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/rendering-issues-CARLA-18x12.png 18w, https:\/\/rocketloop.de\/wp-content\/uploads\/2022\/08\/rendering-issues-CARLA.png 1296w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Es bestehen erheblich Rendering-Probleme bei den Bl\u00e4ttern. Der Busch sollte wie der Busch auf dem Screenshot von RoadRunner aussehen.<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Wir haben dieses Problem gel\u00f6st, indem wir auf die Source-Version von CARLA umgestiegen sind, die den UE4-Editor enth\u00e4lt. Die direkte Verwendung des UE4-Editors zum Importieren der RoadRunner-Map gibt uns ein besseres Feedback dar\u00fcber, was w\u00e4hrend des Importvorgangs passiert. Au\u00dferdem wird in der offiziellen RoadRunner-Dokumentation vorgeschlagen, diesen&nbsp;<a href=\"https:\/\/de.mathworks.com\/help\/roadrunner\/ug\/export-to-carla.html\">Ansatz<\/a>&nbsp;f\u00fcr den Import von Assets in UE4 zu verwenden. Die Installationsschritte sind die folgenden:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Erstellen Sie den CARLA UE4-Editor sowie CARLA, indem Sie den <a href=\"https:\/\/carla.readthedocs.io\/en\/latest\/build_linux\/\">Anweisungen<\/a>.<\/li>\n\n\n\n<li>Installieren Sie die UE4 RoadRunner- <a href=\"https:\/\/de.mathworks.com\/help\/roadrunner\/ug\/downloading-plugins.html\">Plugins<\/a><\/li>\n<\/ol>\n\n\n\n<p>Der n\u00e4chste Schritt ist der Export aus RoadRunner. Hierf\u00fcr stehen zwei Optionen zur Verf\u00fcgung: ein Export zu CARLA und ein Export zur Unreal Engine. Obwohl empfohlen wird, nur die Option \"Export to CARLA\" zu verwenden, hatten wir Probleme mit beiden Optionen, ohne ein offensichtliches Muster zu erkennen. Beispielsweise haben wir den beschriebenen Prozess auf zwei Ubuntu 20.04-Maschinen durchgef\u00fchrt. Auf einem Rechner funktionierte die Option \"Export to CARLA\", auf dem anderen die Option \"Export to Unreal Engine\". Die Wahl der falschen Option f\u00fchrte zu einem Absturz des UE4-Editors beim Importieren der Map.<\/p>\n\n\n\n<p>Abgesehen von dieser Merkw\u00fcrdigkeit, wird die Map in UE4 importiert - wie in der RoadRunner-&nbsp;<a href=\"https:\/\/de.mathworks.com\/help\/roadrunner\/ug\/export-to-carla.html\">Dokumentation<\/a>beschrieben. Erstellen Sie als n\u00e4chstes einen Ordner mit dem Namen \"OpenDrive\" neben der Map-Datei, worin die OpenDrive-Datei (.xodr) abgelegt werden kann. In unserem Fall wurden die Maps in \"ExportedMaps\" importiert. Schlie\u00dflich m\u00fcssen Sie im UE4-Editor auf&nbsp;<em>play<\/em>&nbsp;dr\u00fccken, wodurch der CARLA-Server gestartet wird, und schon k\u00f6nnen Sie Ihre benutzerdefinierte Map in CARLA erkunden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"Summary\">Zusammenfassung<\/h2>\n\n\n\n<p>Es gibt mehrere Installationsvarianten f\u00fcr CARLA und verschiedene Methoden f\u00fcr den Import von Custom Maps. Au\u00dferdem kann sich der Prozess je nach der CARLA-Version, die Sie gerade verwenden, \u00e4ndern. Unsere Erfahrungen mit den verschiedenen Varianten von CARLA 0.9.13 deuten darauf hin, dass es am einfachsten ist, eine benutzerdefinierte Map zu importieren, wenn Sie eine Source-Version verwenden und den Schritten von RoadRunner folgen.<\/p>","protected":false},"excerpt":{"rendered":"<p>We wanted to share our experience working with CARLA and how it helped bring a long-term solution for custom map importing. To import a custom map into CARLA, you must understand&#8230;<\/p>","protected":false},"author":10,"featured_media":9800,"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-9788","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\/9788","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=9788"}],"version-history":[{"count":8,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/posts\/9788\/revisions"}],"predecessor-version":[{"id":10612,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/posts\/9788\/revisions\/10612"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/media\/9800"}],"wp:attachment":[{"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/media?parent=9788"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/categories?post=9788"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rocketloop.de\/de\/wp-json\/wp\/v2\/tags?post=9788"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}