Giter Club home page Giter Club logo

chauffeurnet's Introduction

ChauffeurNet

Trying to implement (at least 10% hopefully, I just want the car to drive like 10 meters without crashing 😟 ) ChauffeurNet : Learning to Drive by Imitating the Best and Synthesizing the Worst.

Development will be divided in the following steps:

  1. Provide data generation tools:
  • Add Carla as depenency. This will provide accurate rendered data.

  • Created my own simulator as I found carla to be too hard to use. This way I think I am more flexible as redering is done at train time based on recorded driving session.
  • Provide preprocessing scripts for data and transform them into the required format for the network.
  1. Implement some parts of the neural network:
  • Implement steering in order to keep the center of the lane (Given predicted waypoints, compute the required turn angle to reach the waypoint, next is to compute the required speed)
  • Implement path following
  • Implement speed control
  • Implement road mask layer
  • Implement agent box output layer
  • Implement waypoint layer
  • Implement waypoint offset regression layer
  • Add other agents to input
  • Implement perception box output
  1. Iterate from step 1 while adding more complexity

v 0.1 demo:

Basically, it is USELESS because the network only learned to predict waypoints along the desired path. Given a waypoint the car computes the desired angle to reach that waypoint. No speed control is involved. Thus, I could just give to the car a point from the desired path.

The utility of predicted waypoints (of a complete implementation of ChauffeurNet) is that it takes into account other agents actions and driving rules, where hand crafted driving models would become too complex.

v 0.1.1

The net was trained to stop at every intersection. Thus, I added the speed control based on distance from car to waypoint.

v 0.2

Added traffic-lights to environment. Still need to update rendering properly of the traffic lights. Also, a traffic light is active (coloured, not black) when the car is near the traffic light. Modified the speed control. Added offset regression for fine-grained prediction of waypoints.

How to run with pretrained model (will automatically download model from drive):

#For linux: sudo apt-get install python3-tk 
pip3 install <torch config ex: https://download.pytorch.org/whl/cpu/torch-1.0.0-cp36-cp36m-linux_x86_64.whl>
pip3 install -r requirements.txt
python3 main.py

chauffeurnet's People

Contributors

iftimie 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  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  avatar

chauffeurnet's Issues

The dataset

Hi, the google drive link of the dataset is invalid, would you mind share another link? Thanks a lot!

Dataset and “size mismatch for agent_rnn.waypoint_predictor”

Hi, @Iftimie
Thank you for sharing the code.
I have two issues:
(1)What dataset did you use? Is the dataset from Waymo available? And can you share the dataset link to us?
(2)I found a issue when I run “python main.py”.
“size mismatch for agent_rnn.waypoint_predictor.conv1.0.weight: copying a param with shape torch.Size([1, 32, 3, 3]) from checkpoint, the shape in current model is torch.Size([3, 32, 3, 3])”.
Maybe caused by ChauffeyrNet/network/models/SimpleConv.py
line 97: self.conv1 = self.conv_block(Config.rnn_num_channels,3)
The model size between pretrained model and defined model are different. I don't know if I missed something.
So can you help me, thanks very much.

Dataset

Kindly share the dataset which has been used

Test the trained network in simulation

I modified the network and trained a new network. Now I want to use the main.py file to test it. But it wants pkl file. Why does it need data file? When I set the record=True to create a pkl file it says that I have to drive but the GUI doesn't show anything. I don't know why should I gather data. I used your data file and trained the model.

Thanks

The data format

What is the sequence of 6 input matrices in the field of 'data' in the dataset? I mean the inputs and the shape of them. The size of the input in every batch is something like [64, 6, 144, 192] and when I plot it, there 6 different inputs.
Did you use a grayscale image for roadmap? I cannot differentiate between the second and third frames.
It would be great if you can explain a little about 'future_poses_regr_offset' and 'future_penalty_maps' in the dataset.

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.