- The user select from the home page Manual mode.
- The user starts to select the direction where the car would move.
- The car recieves the required direction through the esp WiFi module.
- The WiFi module starts to send this direction to the arduino which will lead the motors to move in this direction.
- The user select from the home page Autoatic mode..
- The car webcam starts to take images of the car lane.
- The webcam sends the images to the server.
- The server sends the image to the lane detection algorithm to detect the direction which the car should move to.
- The detected direction will be sent to the esp WiFi module through the server.
- The WiFi module sends the direction to the arduino to make the motors move to this direction.
- Responsible for sending and receiving images to be processed and directions between the mobile and the car esp WiFi module.
- Tools used:
- flask
- python
- A Mobile application responsible for switching between different modes and sending directions to the server in case of manual mode.
- Tools used:
- React js
- Responsible for capturing pictures of the lane and sending them to the server in case of automatic mode.
-
Responsible lane detection and specify the correct direction.
-
Steps of lane detection algorithm:
-
Isolate the Color of the Lane:
-
Turn the color space used by the image, which is RGB (Red/Green/Blue) into the HSV (Hue/Saturation/Value) color space.
-
lift all the blueish colors from the image by specifying a range of the color Blue.
-
Detecting Edges of Lane Lines using canny edge detection.
-
Isolate Region of Interest
-
Detect Line Segments using Hough Transform
-
Motion Planning: Steering Angle
- Now that we have the coordinates of the lane lines, we need to steer the car so that it will stay within the lane lines, even better, we should try to keep it in the middle of the lane. Basically, we need to compute the steering angle of the car, given the detected lane lines.
-
Depending on the steering angle we deside the direction:
- 0 <= steering_angle <= 85 : Right
- 85 < steering_angle < 92 : Forword
- 92 <= steering_angle <= 180 : Left
-