Skip to content
This repository has been archived by the owner on Mar 6, 2022. It is now read-only.
/ Design-3 Public archive

Design an autonomous Factory Car with Forklift and openCV

Notifications You must be signed in to change notification settings

phu0n9/Design-3

Repository files navigation

Engineering Design 3

Name: Group 10

Hardware implementation

alt text

Software implementation

Features:

Automatic moving:

  • Following wall
  • Turn left
  • Obstacle avoidance
  • Obstacle detection
  • Run through automatic door

Manual control:

  • Object detection using openCV
  • Using keyboard r to start the robot
  • Using keyboard m to switch to manual stage
  • Using keyboard w to move up
  • Using keyboard a to turn left
  • Using keyboard d to turn right
  • Using keyboard s to move down
  • Using keyboard o to lift the forklift
  • Using keyboard p to lift the forklift

OpenCV Shape Detection:

Cubic alt text 

Cylinder
alt text

To execute the program:

Linux terminal:

  • Jump to the directory of app.py
  • Type: sudo python3 app.py
  • Then go to the IP of your raspberry Pi then type in the address of your web browser: <Raspberry PI>/home

Issues:

This project uses HTTP as the connection protocol, in which, REST API is deployed into the project. However, for the real-time communication, it is not advisable to use this method. For the real-time communication between getting data from the hardware side, WebSocket should be considered instead. Moreover, for a smooth and fast signal for the video streaming, UDP is more favourable than WebSocket. Maybe a hybrid-approach(WebSocket for the real-time data update and UDP for the Video Streaming) would be better. Futhermore, React.js should be more considered for the response of the UI update, therefore, the HTML page does not have to set the interval to update which is a poor practice.