Skip to content

This project allows a robot to run autonomously using OpenCV, with a web interface built in HTML, CSS, and JS.

Notifications You must be signed in to change notification settings

jnnchi/Autonomous-Robot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS200: Applications of Computer Vision in Python (September 2021 - June 2022)

CS200, or Programming With a Purpose, is the second course in the AHS Computer Science Pre-Professional Program. It is a project-based and team-oriented class, where we worked in an Agile-SCRUM environment on several projects, which would be customized by each team to progress toward a final goal. My team's goal was to build a robot that could run autonomously on a path by live-processing an image stream from a camera attached to its front, which would capture the edges of the path. I was the scrum master of the team, and I led development in languages including Python, Java, HTML, and JavaScript, as well as modules such as Flask, OpenCV, Java Swing, Logger, and Numpy.

Here is a summary of the contents of this repository:

Project 1: Straight Line (October 2021)

Assembled a robot with a Raspberry Pi 3b+ processor and programmed it to move forward, backward, left, and right using an object-oriented, abstracted structure involving both a Motor and Robot class. For this project, the robot had to move perfectly forward in a straight line for 2 feet, meaning that we had to balance its left and right motors to ensure its path would not be skewed. We also had to find a conversion factor for how many seconds the motors had to be active for the robot to move 1ft.

The code for this project can be found in the Project 1 Folder.

Project 2: Traverse Maze (November 2021)

For this project, we had to further test our robot's precision by programming it to successfully complete a preset maze path. This allowed us to tune our robot's ability to turn and move straight so that the following projects would be more successful.

The code for this project can be found in the Project 2 Folder.

Project 3: Web Control Using Flask (November 2021)

We created a Flask API to allow users to run the robot through any browser and any computer that is connected to the same WiFi as the Raspberry Pi. View our documentation here.

The code for this project can be found in the Project 3 Folder.

Project 4: Java UI (November 2021)

This allowed for the robot to be controlled using a UI built using Java Swing. This UI was later removed, as we decided to use a web UI instead.

The code for this project can be found in the Project 4 Folder.

Project 5: Web UI 1 - Button Controls and Camera (December 2021)

The code for this project can be found in the Project 5 Folder.

Project 6: Web UI 2 - Button Controls, Camera, and Log (January 2022)

The code for this project can be found in the Project 6 Folder.

Project 7: Autonomous Stage - Web UI With Annotated Camera Stream, Self Correcting Robot (May 2022)

The code for this project can be found in the Project 7 Folder.

Projects Not Using the Robot (Created Individually):

Circle Detection on a Home Video of a Rolling Can (February 2022)

The code for this project can be found in the Non Robot Projects Folder.

Circle Detection on a Warped Circle Image (March 2022)

The code for this project can be found in the Non Robot Projects Folder.

Line Detection on Hand-Drawn Lines (March 2022)

The code for this project can be found in the Non Robot Projects Folder.

Line Detection on Hand-Drawn Curved Paths (April 2022)

The code for this project can be found in the Non Robot Projects Folder.

Final Project: Train Derail Detection on Video (June 2022)

The code for this project can be found in the Non Robot Projects Folder.

About

This project allows a robot to run autonomously using OpenCV, with a web interface built in HTML, CSS, and JS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published