The modified Donkey car
on-going project
Staring with Donkey car model at https://www.donkeycar.com/.
The Donkey came up with Raspberry and one camera.
--I added one Nano jetson on the top and wiring to power Jetson at the same time with Raspberry.
*goal : to have 2-3 cameras and write a complete autonomous driving platform using both Raspberry and Jetson nano :
--create BUS to communicate between Jetson and Raspberry
--have AI model running on Jetson
--sharing some computations with Raspberry and Jetson
--redundancy for safety
(Jetson nano can host 2 cameras, Raspberry can host 1 camera)
...it's huge to a hobby project, so wait and see the result

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
Simulation and autonomous driving with Autoware
Simulation with LG SVL https://github.com/lgsvl/simulator
Autonoumous driving with Autoware https://autoware.org/
Drone with Ardupilot
Starting with a basic mechanical frame from DJI.
--add 4 ESC to control each motor
--add flight controller working with Ardupilot
--add TX/RX for remote control capability
--add GPS and compass module to have more auto navigation function by Ardupilot
It's really fun to set up a flight controller with Ardupilot and learn to calibrate accelerometer, compass, GPS.
*Good to learn about safety with arming mechanism and behavior when control signal lost, by Ardupilot.
Little Pippy robot without feedback
It's really fun trying to create walking gait for this quadruple robot.
The most intersting thing is there is no feedback of the leg control - each by two servos.
With raspberry and servos, it's good to start learning linux, python, basic computer vision algorithm and servo control.
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 :
*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