Git Product home page Git Product logo

autonomouscar's Introduction

Autonomous Car

Example

This project is the simulator implemented for my master's thesis: Path Planning and Path Following for an Autonomous Car.

It is written in C# with the XNA game engine using Farseer Physics. This project was developed using Visual Studio 2010 with Service Pack 1. You must also have XNA Game Studio 4.0 in order to compile and run the simulation.

Getting Started with the Simulator

The simulator runs a mission described by a JSON mission file located in the Missions folder, which already includes some example mission files. The mission file defines a start pose, a goal pose, and an environment of obstacles.

Once the simulator is fired up, a mission needs to be loaded. Hit Escape to open the simulator console, then type:

load <mission file>

This mission file will be searched for in the Missions directory. Leave off the .json extension. For example, use the following console command to load the default.json mission file:

load default

Hit Escape again to close the simulator console. Once a mission is loaded, the path planner will automatically start searching for a path. Once a path is found, it will be drawn in the environment. The smoother will then iteratively smooth the discovered path, updating the scene at each iteration.

Once a path has been discovered and smoothed, hit Return to start the path follower. The path follower will then drive the vehicle along the path to the goal pose, where it will stop and complete the mission.

There are many options used to control the camera, the objects drawn in the scene, and other parameters. These options are set using keys on the keyboard and are described in the following section.

Key Bindings

Objects Drawn in the Scene

  • C: Draw 3D car
  • G: Draw distance field
  • V: Draw Voronoi field
  • H: Draw heuristic value grid
  • B: Draw Hybrid A* search tree
  • Shift+B: Draw search tree while searching
  • P: Draw discovered path
  • L: Draw smoothed path
  • O: Draw velocity profile
  • F: Draw controller's front path
  • Home: Draw start pose
  • End: Draw goal pose
  • Comma: Slow down searching (when Shift+B option is active)
  • Period: Slow down smoothing

Camera

These keys are on the number row, not the numpad.

  • 1: Choose birds-eye camera
  • 2: Choose chase camera
  • 3: Choose side-view camera
  • 4: Choose goal camera
  • 5: Choose top-down camera

The birds-eye camera can be controlled by the following keys:

  • Up/Down/Left/Right: Pan the camera
  • Shift+Up/Shift+Down: Zoom in/out

Car Control

  • W: Forward gas
  • S: Reverse gas
  • A: Turn left
  • D: Turn right
  • Space: Brake

Using any of the car control keys will deactivate the path follower until the mission is restarted or a new mission is loaded.

Simulator

  • F11: Toggle fullscreen
  • F12: Toggle dark/light background
  • Enter: Start the path follower
  • 0: Restart the current mission
  • Escape: Open or close the simulator console
  • Shift-Escape: Exit the simulator

License

Copyright (c) 2012 Matt Bradley

This software is freely distributable under the terms of the MIT License.

autonomouscar's People

Contributors

mattbradley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

autonomouscar's Issues

Ask for help

Hi,I have downloaded the project,amazing work!
I have some questions about it:
1.Does the project support dynamic obstacles?
2.I want to write another potential field method on it, how can I add that two function??
I'm looking forward to your reply!!!!Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.