autonomous driving & robotics

https://github.com/v-thiennp12

ROSject_presentation_Thien_NGUYEN_updated.pptx

Control a two-wheels differential drive robot with a virtual car-like robot

  • while doing a ROS implementation for a wall follower robot, I invented a method to control this two-wheel differential drive robot indirectly by a car-like modleing with steering and throttle rather than linear and angular command that used in two-wheels differential drive

  • the idea is that using a car-like modeling with steering and throttle, it's much more flexible to optimize and tune the controller

  • when determined steering and throttle (speed) for the car-like robot, we can use kinematic modeling to calculate linear and angular speed needed to send to the two-wheels differential drive robot

  • while applying the control on the car-like robot, we can implement many kind of advances in autonomous driving, for my ROS project I tried with PID, with Stanley, to control cross-track-error and heading-error of my robot

  • youtube livestream : https://www.youtube.com/watch?v=h8XQrfBhjpU&ab_channel=BecomingaROSDeveloper

  • github for codes and slides : https://github.com/v-thiennp12/wall-following-ROS-Cpp


The very basic MPC - Model Predictive Control

The very basic python implementation of MPC for car-like robot motion planning.

Github : https://github.com/v-thiennp12/MPC-learn-car-controller

The essential of MPC is to make prediction of the car in the future of n-steps based on its states and control values. Then a solver will try to figure out a set of n-control-values to minimize the cost function. The cost function can be freely defined, it could be distance-error to the target, distance to the object, ... The robutsness of MPC comes from how you define the cost function, how well you model the car, ...

Advanced lane-finding for ADAS application

*My medium :

https://nguyenrobot.medium.com/lane-detection-for-adas-application-with-sliding-windows-technics-350d273367cc

*Github repos :

https://github.com/nguyenrobot/lane_detection_advanced_sliding_windows

*Youtube :

https://www.youtube.com/watch?v=_O-LsAwi8LI

We will make a line finding algorithm which could be used for ADAS (Advanced Driving Assistance System) applications.

Line detection in this tutorial will cover :

  • Line detection of ego vehicle’s current lane

  • Line detection of ego vehicle’s next lane (next-left side and next-right lane)

  • Confidence level of each detected line

  • Line-type of each detected line

  • Lane-changing signal

  • Curve-fitting by 3-rd polynomial

Build a Traffic Sign Recognition with Keras/Tensorflow

Intrigued by the question 'What is deep learning ?'. Let's get a gentle deep dive to discover deep-learning by simplified notions with this tutorial . The goals of this project are the following:

-[x] Load the data set

-[x] Explore, summarize and visualize the data set

-[x] Design, train and test with different model architectures (LeNet, GoogLeNet, ResNet34)

-[x] Use the model to make predictions on new images

-[x] Analyze the softmax probabilities of the new images


*Github repos for the codes : https://github.com/nguyenrobot/Traffic-Sign-Recognition-with-Keras-Tensorflow


*Medium article : https://nguyenrobot.medium.com/build-a-traffic-sign-recognition-with-keras-tensorflow-7c01f093f3df

Pan-Tilt camera

Use OpenCV for Face Detection then pilote a Pi Camera with 2 servos in order to keep the tracked-face always in the center of camera-frame.

This is a very fun project in collaboration with Clément Coste to get start with Raspberry and 3D-printing.

#face_tracking #Raspberry #pan_tilt_camera

*My medium article : https://nguyenrobot.medium.com/how-to-build-a-face-tracking-with-raspberry-and-opencv-d449cd1ac282

*Github repos for the codes : https://github.com/nguyenrobot/palt-tilt-cam

*Youtube video : https://www.youtube.com/watch?v=M1nfRfJ6VS4


Line detection with Canny Filter and Hough Transform

*Github repos :

https://github.com/nguyenrobot/line_detection_by_canny_gausian_hough_streamedvideo

*Youtube :

https://www.youtube.com/watch?v=o4SDztEzwpo

In this tutorial, we apply technics based on Canny Filter and Hough Transform to detect lines.

Our processing consist of :

- [x] Colour selection

- [x] Gaussian filter with small kernel size to detect even blurred lines in far left/right side

- [x] Canny edge detection

- [x] Zone of interest filtering

- [x] Probabilistic Hough Transform