Benjamin Söllner Blog & Portfolio
Cool Creative Projects I Worked On
Self Driving Car Engineer Nanodegree
Experience and Projects at Udacity Courses and my Journey to Become a Self Driving Car Engineer See Slideshow
Quietpaper - IoT Smart Home Project
Raspberry-Pi-based E-Paper Display to show room climate, public transport, laundry devices, calendars and more Github + Docs Download
Visualize E-Mobility Battery Performance Using D3.js
Going Beyond the Data Analyst Nanodegree Project with some Real-World Automotive Data Github + Docs Download
- Detect Fraud at Enron with Machine Learning Github Download
- Explore & Summarize Data of Wine Quality with R Github Download
- Wrangle Open Street Maps Data from Dresden Github Download
- Analyze New York City Subway & Weather Data Github Download
- Enterprise 2.0: Social Software in Corporations Course taught in 2013 and 2014 at Esslingen University of Applied Sciences
- Search Engine Prototype for Car Dealerships Master Thesis "Semantic Federation of Heterogenous Data Sources in Automotive Diagnostics"
- Android App for Location Based Picture Sharing Bachelor Thesis "XMPP-based Media Sharing for Mobile Collaboration with Android Phones"
- More from pre-2010...
In year 2018 I completed the Udacity Self Driving Car Nanodegree which allowed me to enter the career as Self Driving Car Engineer.
Below a list of the various coding projects I worked on during the project. Click one to go to the respective GitHub project:
- Finding Lane Lines
- Already during the second week of the Nanodegree a simple lane finding algorithm based on Edge Detection and Huff Transformations is developed in Python Notebooks.
- Traffic Sign Classifier
- A traffic sign classifier with a modified LeNet-5 Network architecture is trained and tested on the "German Traffic Sign Dataset" with Tensorflow.
- Behavioral Cloning
- Keras + Tensorflow is used to train a Modified Nvidia Network from video images of a simulated 3D-world and respective control inputs. The classifier can later drive the car itself in the simulated environment.
- Advanced Lane Finding
- The very first project is revisited. Real-world metrics like curve radius and offset from lane center are added. Also, lens corrections and a more stable lane tracing algorithm (based on proximity search on previous images) are added.
- Vehicle Detection and Tracking
- A support vector machine is trained to recognize cars based on "Hog features" and Histogram features. This SVM is convoluted with the video frames manually using different kernel sizes in order to detect cars.
- Extended Kalman Filters
- Extended Kalman Filters allow combining various uncertain measurements over time into a (more) certain one. A basic Kalman filter that combines radar and lidar in a 2D-world is implemented in C++.
- Unscented Kalman Filters
- Unscented Kalman Filters are like Extended Kalman Filters, but instead of using Jacobian Matrizes to linearize the gaussian distribution, they sample by determine well-chosen "sigma points".
- Localization: Particle Filters
- In order to improve on GPS-localization, Particle Filters can determine more precisely where a vehicle is based on observed distances to landmarks. A 2D-particle filter was implemented with this project.
- PID Controllers
- Another C++ project. PID controllers are a fundamental algorithm from control theory. They control actuators of vehicles towards a target trajectory only by observing the previous error (P) as well as a differential (D) and integral (I) term.
- Model Predictive Control
- Yet another C++ project. Predictive Controllers improve on PID controllers by modelling a simulated trajectory close along multiple future waypoints taking into account physical constraints and optimizing for the right control inputs with an optimizer (here: "ipopt").
- Path Planning
- With a C++ program, steer a car in the Udacity Simulator by reacting correctly to cars in the surrounding, changing lanes or speeding up / slowing down according to specification.
- Advanced Deep Learning
- As one elective (the other one being "Vehicle Saftety") a Fully Convolutional Neural Network is implemented which can classify contents of a camera image on a pixel level (Semantic Segmentation). The project also includes optimizing Neural Networks with TensorFlow for embedded systems.
- System Integration
- Finally, putting everything together with ROS (Robot Operating System). In a team of 5, a PID-Controller, Path Planner and Traffic Light Classifier are implemented as ROS nodes and executed on the real Udacity Self Driving Car.