Members don't see the ad below. Register now!

During the AI course and in preparation of the Thruns forthcoming course on self driving cars, I asked myself the question on what driving simulation software exist, and especially if there is anything free. The idea I had is that it would be nice to have a platform for writing driving software similar to the Berkeley pac-man projects where you did not need to worry about the graphics and inputs, but could just concentrate on the algorithms. Unfortunately I did not find anything like that. All that I found are two competing open road description formats and two commercial vendors that write road and driving simulations:

Did I miss something? Is there other free software available? Does anybody know what software was used by prof. Thrun for the demo videos that he produced during the corse, and whether it is open/free?

asked 02 Feb, 15:20

dov's gravatar image

dov
1764

It will be interesting to see what Udacity uses for its CS373 programming assignments. If you look at the syllabus, week 6 is "putting it all together - programming a self driving car". It seems to me they will have to use something like you are asking for. Are you signed up for CS373?

(02 Feb, 15:39) rseiter rseiter's gravatar image

Hi,

There is a self driving miniature car simulator that you could control using HTTP available at: http://www.hightechdreams.com/IARRC_Sim/

If it gets popularly used, it will be developed more but it is already worth looking into if you are using Windows.

link

answered 21 Feb, 20:27

Josh's gravatar image

Josh
461

Have you used this? It looks interesting, but I did not see any detailed information on the web site.

(21 Feb, 20:40) rseiter rseiter's gravatar image
1

Actually, I made it. The design is fairly simple and could be used for what you are asking. Basically, it lets you control a car's speed, steering. Sensor data can be collected from simulated LiDAR range finders, infared distance sensors, and two cameras(1 camera mounted on a miniature drone helicopter). All the collection of data and sending of car driving controls is done using HTTP requests. It is difficult to do this in real-time but HTTP is a fairly popular and well understood protocol to work with which frees developers of driving software to use virtually any programming language.

The sensor layout and obstacle course can be edited in the window in two separate modes. A lot can also be done through its web-browser interface. The web browser interface documents its HTTP interface API and gives you some ways to view sensor data/control the car from a web browser.

Here are some videos made by composing outputs of the 2 cameras and its LiDAR sensor: http://www.youtube.com/watch?v=FinJBCtvCvw

Here is another video made from the miniature car's main camera: http://www.youtube.com/watch?v=ReNeC07z1Ok

(21 Feb, 20:56) Josh Josh's gravatar image

Very cool. Thank you for sharing! Are you familiar with the Udacity CS373 online class? This sounds like just the sort of thing they need. I wonder what Sebastian Thrun is planning to use. I saw these links:
http://web4.uwindsor.ca/units/pac/nvdailynews/nvdn.nsf/264f80f204e5088a85256a7a004a4bfb/37115C2A9E93CC5385257714005A0993/?openDocument
http://robotracing.files.wordpress.com/2010/08/2010-team-4-megalodon-uwar-university-of-waterloo-autonomous-racing.pdf

Can you recommend any other places to learn more?

(21 Feb, 21:51) rseiter rseiter's gravatar image

I heard about 373, am signed up, and am anxious to start the course. I want to see what he uses for simulation too. My guess is Robot OS inside Ubuntu and Windows users could access Ubuntu through VirtualBox.

I was a member of a team in that IARRC competition but have to admit that other teams beat us. Waterloo seems to consistently have the most reliable solutions to complex obstacle courses and the most funding to buy useful hardware. The International Autonomous Robot Racing Challenge(IARRC) technical manuals are online for anyone interested in ideas developed by competitors.

What programming language(s) have you used? Did you study programming or computer science? It should help to approach the problem with the mindset that the software has a certain level of quality that improves as you learn more about data structures, algorithms, and AI. Also, a simulator like my IARRC Simulator can help put ideas to practice and testing.

  1. You could start to program the car by driving like an idiot by ignoring all sensor data.
  2. You can then start making use of sensor data to improve steering decisions.
  3. After making a little use of sensor data, you can take lots of ideas from various data-structures and algorithms. Mapping the driving area is useful for path planning.

Are you familiar with tree and graph data structures, path finding, breadth first search, A* search? Voronoi diagrams can be useful when planning paths that maximize distances from obstacles.

(21 Feb, 22:41) Josh Josh's gravatar image

My background is training in both CS and EE and a number of years programming circuit simulation tools (mostly analog and mixed signal). I've programmed professionally in C, Pascal, C++, and Perl with some experience in other languages. I took the AI and ML online classes a few months ago so have recent exposure and some implementation experience with most of the AI concepts you mentioned. The AI class discussed Voronoi diagrams, but I don't think I could do anything meaningful with them without more learning.

What I'm thinking is I'll follow the 373 curriculum until I feel like I know enough to take a meaningful look at your simulator. I would expect some more people on aiqus would be interested. Hopefully they will post as well.

(21 Feb, 23:15) rseiter rseiter's gravatar image

Simulation software is very very complicated and as a result very very expensive.

Institutions will either write their own simulations (limited to the scope of their experiments) or buy an existing piece of software.

There is no real mass market for an open source simulator, so one has never been built.

You might search Google Scholar for papers related to driving simulations and see if they specify what they used. If they rolled their own, you could send an email to the author asking if they would be happy to send it to you for your own (non-commercial) study.

link

answered 02 Feb, 16:11

jholyhead's gravatar image

jholyhead
4.2k11

1

I have written a few simulators myself (in the area of printers and drilling machines), and the key is that you don't need to simulate more detail than what you are modeling. Thus to get a platform for learning, it might be enough with having cars as blocks and changing direction of the block instead of turning a driving wheel. Of course before you let a real car use your algorithms, you want to have a simulation that is as accurate as possible.

Perhaps the solution is to use one of the car racing game engines. Here are a few that I found on the internet:

(03 Feb, 02:18) dov dov's gravatar image
Members don't see the ad below. Register now!
Your answer
toggle preview

Follow this Question via Email

Once you sign in you will be able to subscribe for any updates here

Q&A Editor Basics

  • to upload an image into your question or answer hit
  • to create bulleted or numbered lists hit or
  • to add a title or header hit
  • to section your text hit
  • to make a link clickable, surround it with <a> and </a> (for example, <a>www.google.com</a>)
  • basic HTML tags are also supported (for those who know a bit of HTML)
  • To insert an EQUATION you can use LaTeX. (backslash \ has to be escaped, so in your LaTeX code you have to replace \ with \\). You can see more examples and info here

powered by OSQA