carla-simulator / carla

Open-source simulator for autonomous driving research.
http://carla.org
MIT License
11.11k stars 3.58k forks source link

Epic: Procedural road generation #579

Closed marcgpuig closed 4 years ago

marcgpuig commented 6 years ago

Introduction

As part of the July 2018 Code Sprint, we want to start experimenting with generating some simple road cases. We know this is a large and complex task, and some of you have already started doing it (with good results). So we want to unify all these work and coordinate all the efforts to achieve a good procedural road generatio.

I was searching for C++ MIT geometric libraries to help with the development and found Wykobi. If anyone knows other C++ libraries feel free to comment below ;)

This feature can be splitted in the following tasks:

Use example

Select and export a zone from OpenStreetMap. Import it into the CARLA UE4 project and modify the nodes you don't like. After that you can run the simulator and the cars will circulate on the generated road. You can build a city (buildings and so on) on top of that.

Limitations

OSM information may be incomplete, and in some cases many nearby nodes describe the road very precisely (like roundabouts). These cases will have to be taken into account with other techniques.

yiakwy commented 6 years ago

I am doing it in a different way. I strictly followed OpenDrive first, then I made my own HD map format for map data structure. My map consists of three layers: Topological Layer, Geometry Layer, and Transportation Layer. By applying L-system alike algorithms upon my HDMap I can produce faked roadnetworks with totally under my control:

Key issues to solve

Here is why? Engineers find that AV tests are extremely hard and they what find 5% traffic cases which impact the algorithms a lot. I made a parametric generation control panel so that I can control the curvatures, number, and type of junctions and traffic flows.

For the moment, a simulator promises a great role in tests automation.

Main Idea

I think carla put too much effort into rendering and manually modification of a map. For the moment generation of realistic perception for AV software is possible but might not in its highest priority.

moenasrallah commented 6 years ago

Thank you guys for working on this. This makes CarLa a lot more valuable for our work.

I've been trying to solve this quickly with my own work.

Currently for my AV team, I'm working on importing road xyz coordinates per spine node instance. This import comes from a CSV file with XYZ columns.

The mechanism is w.i.p, but should be as so:

1) Import CSV coordinates into CarLa/Unreal 2) set spline with road mesh to start from first xyz 3) set next spline node to next coordinate from file 4) conitnue until end of file

Issue

My work is less on importing actual maps straight from the source, but just to have it take in any map coordinates we have to generate high res road curvature just from multiple spline node isntancing.

I'm having slight issues with it, but anyone's input would be nice :) initially we're doing this because Apollo's opendrive format is annoying to convert into something unreal can use. So this should be an easy method to do it quickly. (We're on a tight release schedule for simulation)

stale[bot] commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

ostromann commented 5 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Anyone still working on this?

germanros1987 commented 4 years ago

Before closing this issue, it is worth highlighting the amazing work that @marcgpuig has done in the generation of mesh from OpenDRIVE. If you are reading this and don't know about the feature, please check out http://carla.org/2020/03/09/release-0.9.8/

yiakwy commented 4 years ago

I am glad to hear about that. Congratulations! Instead of OpenDRIVE, since I already got full scene of HDMap arch and implementation, I also recommend you refer to NDS in the persistent layer of an HDMap. I also maintain patents about generating curves from catmul , bspline to clothoids which are crucial to L-system a like generation algorithm.

germanros1987 notifications@github.com 于2020年3月20日周五 上午5:57写道:

Before closing this issue, it is worth highlighting the amazing work that @marcgpuig https://github.com/marcgpuig has done in the generation of mesh from OpenDRIVE. If you are reading this and don't know about the feature, please check out http://carla.org/2020/03/09/release-0.9.8/

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/carla-simulator/carla/issues/579#issuecomment-601436041, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACA526AHA2A6WHV6T6FUTDTRIKINRANCNFSM4FJTSUWA .