General research areas:

Latest Research

Our dedicated team has been deeply involved in advancing autonomous vehicle technology. I have had the privilege of leading a group of highly motivated graduate and undergraduate students in this endeavor. After over a year of dedicated effort, we are now witnessing promising results. We have successfully implemented self-driving technology on our university campus, utilizing a customized Lincoln MKZ equipped with an array of sensors, including 4 LiDARS, 5 RADARS, SONAR, 4 Lucid vision cameras, a thermal camera, IMU, GPS, and drive-by-wire technology. As for our software stack, we've tailored open-source Autoware Universe to accommodate our sensor suite, enabling the vehicle to operate autonomously within its Operational Design Domain (ODD). Our self-driving car rigorously adheres to all traffic regulations, including stop signs, traffic lights, right-of-way, parking, and more.

Here is the summary of how we implemented the software stack:

Besides those major modifications, we needed to modify some programs related to the Ouster lidar message and IMU messages. Autoware Universe software stack works on top of ROS2 humble version. 

github link: https://github.com/zillur-av/autoware

Previous Research

As a research assistant at the Real-Time Intelligent Systems lab at UNLV, I have been working to develop an autonomous car. We have a customized Lincoln MKZ sedan car equipped with multiple cameras, LiDAR, RADAR, SONAR, and other necessary sensors. We are working to integrate all things into one place. The vehicle has the Controlled Area Network (CAN) system;  we get all kinds of data such as velocity, yaw rate, GPS location, brake state, steering angle, throttle state, turn signal state, etc from the CAN message and use them to vehicle state estimation. We also give commands like stop, go forward, accelerate, make a turn at a certain degree, and so on through CAN. To control all the devices as well as the vehicle itself, we use Robot Operating System (ROS).  As the programming languages, we are using both C++ and Python

So far, we have implemented a 2D object detection and a monocular 3D object detection system with depth estimation-based emergency braking systems. The car can drive and brake using the detection result. For example, when there is a pedestrian 10 feet in front of the car, it gradually brakes itself using a PD controller.  The entire system is straightforward and can be implemented in just a couple of hours. Next, we are going to fuse the camera, RADAR, and LiDAR data to get more accurate depth information of all surrounding objects.

Machine Learning

Machine Learning is a branch of artificial intelligence that deals with developing intelligent systems that can make decisions by themselves without the help of human operators. There are usually three types of machine learning models: supervised learning, unsupervised learning, and semi-supervised learning.  In normal cases, we design a system using our requirements and then feed the inputs and receive the outputs. On the other hand, in an ML model, we do not design the system; we just feed the input data to ML algorithms. and algorithms design the system using those data. This is extremely beneficial when we have a sufficient amount of data. ML models are now used in surveillance, business, security, biometrics, language translation, etc. Deep learning is similar to machine learning except for the fact that DL models are greater in size, they have hundreds of neural network layers. Some popular DL architectures are ResNet, DenseNet, Xception, etc.

Computer Vision

Computer vision deals with the visualization of the physical world. When we humans see a physical object such as a car or a tree, we identify it instantly. To identify a car, for example, we use different features like shape, wheels, looking glasses, etc. In the same way, if we teach a system to look for those features in the image/video, it can recognize the object. Different machine learning and deep learning algorithms such as Convolutional Neural Networks, LSTM, SVM, etc are used to design computer vision systems.

Signal Processing

We are surrounded by various signals--mobile networks, satellite channel signals, speech, images, videos, biomedical signals, etc. In the domain of signal processing, we analyze the signals to extract useful information. For instance, by analyzing ECG signals, many diseases can be easily diagnosed. Likewise, to send a voice signal over a wireless network, the signal needs to be modulated to a certain frequency to match the channel bandwidth. Fourier transformation, Z transformations, differentiation, integrations, and other mathematical operations are used in this field.

If you are a beginner and want to learn more about literature review, how to choose a research topic, and conduct research step by step, you may find these tutorials useful.