This blog post is the project definition document for Winston’s computer vision systems. This project definition document is a school assessment item that defines the project I am doing for robotics this semester. Note that the template for this document was designed to be completed by a team, however our team divided work into sub-systems, so each of us are filling in separate documents. If you are interested, there is another project definition document for Winston’s navigation systems.
Project Definition Information
Project Name: | Winston Computer Vision Systems |
---|---|
Project Team: | Morgan Potter |
Full Project Team: | Morgan Potter (computer vision and navigation), Samuel Sidebotham (Physical design and inverse kinematics), Joshua Kisnorbo (Website and object detection) |
Mentoring Teacher: | Mr. Edwin Griffin |
Proposed Project Start Date: | 17/07/2023 |
Project Idea
Winston is a quadrupedal robotic system capable of mapping and navigating complex environments. When complete, Winston should be a highly versatile system that can be molded to autonomously complete complex tasks. For example, with a 6DOF robotic arm attachment, Winston could deliver food to customers in a restaurant. In addition to this versatility, Winston is an order of magnitude less expensive than competing systems such as Boston Dynamics’ Spot, making Winston accessible to a much larger demographic. This drastic reduction in cost is achieved through the use of FDM manufacturing of custom parts, and the use of consumer grade electronic components.
Winston is the combination of many sub-systems working in tangent. Each sub-system is being developed by a different team member so each member can work to their individual strengths. I am developing Winston’s computer vision systems. The goal of the computer vision sub-system is to make a 3D map of Winston’s environment, that is highly accurate and computationally efficient. To achieve this, I will be using computer stereo vision.
Project Purpose
The vision sub-system will give Winston the information to navigate to specific locations in the real world, making the user confident that any movement command given to Winston will be executed accurately. The vision sub-system is therefore crucial for navigating difficult terrain such as stairs, uneven ground, or even a maze as the navigation systems need reliable real-world information.
Team Member Capabilities
Team Member | Capabilities |
---|---|
Morgan Potter | Knowledge of Python and Fusion 360. Experience with Computer Vision, and 3D-Printing |
Project Outcomes/Requirement Objectives
Outcome | Description |
---|---|
Create camera housing | Create a custom camera housing that attaches to the robot chassis and maintains the desired position of each image plane. |
Undistort Image | Use calibration techniques to remove tangential and radial lens distortion from both images, such that each observed pixel can be considered to perfectly represent an incoming light ray. |
Correspond pixels | Use an algorithm on the captured image pairs to find pixels that represent the same object in real space. Ideally match every pixel in both images. |
Create a depth map | Use the displaced view of each image plane to compute the depth of each previously matched pixel. |
Ensure accuracy | Tweak the vision systems until a suitable accuracy for terrain navigation is achieved. |
Format data | Coordinate with Josh to format the observed depth map in a way that can be easily transmitted to a server and displayed on a website. |
Compute in real-time | Reduce the time it takes to create a depth map by enough that someone could comfortably view the program output in real-time. |
Initial Scope of the Project
In Scope | Out of Scope |
---|---|
Using image processing to improve stereo matching | Deep learning enhanced stereo matching |
Creating a depth map from stereo camera disparity | Pathfinding through the created environment. |
Computing in real-time | Computing at 60 frames per second. |
Sending the result to a server to be displayed | Programming the software to display the depth map in 3d on a website. |
Time Objective
The timeframe for this project is: 6/08/23
Parties Involved
Party | Involvement |
---|---|
PyConAU Audience | Broad feedback on the project and presentation to improve it in future. |
Userbase | Can test and review the accuracy of the vision systems. |
Constraints
Constraint | Impact on Project Success (High/Med/Low) |
---|---|
Use of the little computing power available on the Raspberry Pi 4b+ | High |
Time constraints – project and presentation must be complete by the 18th of August at the absolute latest. | High |
Programming in a team – making my code succinct, efficient, and readable. | Med |
Images captured have separate controllers for auto focus, exposure, and white balance creating additional variation. | Low |
Feasibility
Skill Required | Resource with skill / capability |
---|---|
Multi-threading / GPU acceleration | Asyncio and PyOpenCL Python libraries. PyCUDA if processing is offloaded to the server. |
Time management strategies | Physical Calendar. |
Good Programming Habits | The Zen of Python. Me. |
Learning computer vision algorithms | Me, assisted by Wikipedia, university lectures, textbooks, journal articles etc. |
Design and manufacturing skills for the camera housing | Pen and Paper. Fusion 360.3d-Printing. The design process. |
Feasibility Scale: 70%
Roles & Responsibilities
Team Member | Roles / Responsibilities |
---|---|
Morgan Potter | Everything.Coordination with other team members to connect projects. |
Initial Issues
Issue | Description |
---|---|
School Absences | I regularly miss school for personal reasons, which impacts the project if I need assistance or need to coordinate with the team. |
Testing on Raspberry Pi 4b+ | I can only test my code on Winston’s hardware at home, as I need a monitor – SSH is an option, however I still need a display to configure the Pi’s network settings. |
Risks
Risk | Description | Impact of Risk(L M H) | Mitigation / Reduction |
---|---|---|---|
Loss of data | Project files get lost, deleted, or corrupted. | H | Make consistent commits to the project GitHub repository. Keep a backup of any local changes. Ensure file changes have been saved. |
Conflicting assessment | One or more team members must commit their time to other assessment items. | M | Make sure each team member considers this project their main priority, as this project is being presented at a national conference. Ask for special considerations on other tasks. |
Deliverables, Timeframes and Dependencies
Timeframe estimate: Three weeks for PyConAU (5 days remaining), 5 weeks for entire project.
Deliverable | Duration | Completion Date | Dependencies |
---|---|---|---|
Stereo Camera Housing | 3 Days | End Week 1* | CAD Model Completed. Assembly is 3D-Printed. |
Camera Calibration | 1 Day | Mid Week 2* | Calibration images taken. Camera matrix and distortion coefficients computed. |
Pixel correspondence algorithm | 1-2 Days | Mid Week 3 | Determine if image rectification is required. Block similarity metric chosen. Block matching algorithm chosen and implemented. |
Depth map created | 1-2 Days | Late Week 3 | Camera matrix used to convert pixels to distance on image sensor. Triangulation algorithm implemented. |
Real-time computation | 2 Days | End Week 3 | Implement multi-threading, and/or GPU acceleration. |
Further Optimisations | 14 Days | End Week 5 | Dependencies will become apparent after initial |
*Deliverable is already complete