This blog post is the project definition document for Winston’s navigation systems. This project definition document is a school assessment item that defines the project I am doing for Data Science 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 computer vision systems.
Project Definition Information
Project Name: | Winston Navigation 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 a wide range complex tasks. For example, with a 6DOF robotic arm attachment, Winston might 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 navigation systems. The goal of the navigation sub-system is to automatically create a set of instructions for Winston to execute that moves Winston from its current position to a specified destination. To achieve this, I will be using dynamic 3D path-finding for each leg through Winston’s view of the world. This leg control algorithm may need to consider variables such as ground stability, quadrupedal gait, balance, and unexpected forces.
Project Purpose
The main purpose of the navigation system is to automatically plan individual leg control, meaning Winston can plan complex paths through rough terrain. This realizes the potential of quadruped robots versus more conventional wheeled robots, which cannot truly path-find in 3D. Additionally, this system simplifies the user experience by automatically planning the path to specified coordinates.
Team Member Capabilities
Team Member | Applicable Capabilities |
---|---|
Morgan Potter | Knowledge of Python. Experience with dynamic, and non-dynamic path-finding algorithms. |
Project Outcomes/Requirement Objectives
Outcome | Description |
---|---|
Define nodes | Use the computer vision system output to define a set of traversable nodes for Winston as a whole, and an additional set for each leg. |
Pathfinding | Autonomously find the optimal path from the current position, to the destination through the set of nodes computed for Winston’s full assembly. |
Leg movement planning | Find an optimal node to place each leg that moves Winston along the defined path, considering the effect it will have on the rest of Winston’s body. |
Format data | Coordinate with Sam to format the navigation system output so it can be executed by Winston. |
Compute in real-time | Reduce the time it takes to create / dynamically alter a movement plan so that Winston can move smoothly in real-time. |
Initial Scope of the Project
In Scope | Out of Scope |
---|---|
Using data obtained from computer vision system | Creating and/or modifying the computer vision system |
Determining the best place to move a leg | Determining the joint angles to put the leg in that position |
Computing in real-time | Computing paths 60 times per second |
Sending the result to a server to be displayed | Programming the software to display the path in 3d on a website. |
Time Objective
The timeframe for this project is: 3/08/23
Parties Involved
Party | Involvement |
---|---|
PyConAU Audience | Broad feedback on the project and presentation to improve it in future. |
Userbase | Can provide more thorough testing than me, and can provide suggestions / feedback. |
Constraints
Constraint | Impact on Project Success (High/Med/Low) |
---|---|
Use of the little computing power available on the Raspberry Pi 4b+ | High |
Time constraints – PyConAU 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 |
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 quadrupedal movement planning algorithms | Me, assisted by Wikipedia, university lectures, textbooks, journal articles etc. |
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 if needed. |
Deliverables, Timeframes and Dependencies
Timeframe estimate: Four Days for PyConAU, 3-4 weeks for final presentation.
Deliverable | Duration | Completion Date | Dependencies |
---|---|---|---|
Defining traversable nodes for Winston’s whole body | 1 Day | End Week 3 | Computer vision data read. Translated Winston’s view into a birds eye perspective. Determined non-traversable nodes based on height. |
Pathfinding algorithm | 2 Days | Mid Week 4 | Set of traversable nodes read. Initial path found. Initial path altered as more world information is discovered. |
Real-time computation of whole-body pathfinding | 1 Day | Mid Week 4 | Algorithms are optimized. Computation acceleration techniques may be added. |
Individual leg control | 3-4 weeks | ?? | Optimal gait considered. Force tolerance of surface considered. Change in balance considered. Force tolerance of motors considered. Adjustment in response to unexpected outcomes considered. Optimal path considered. Optimizations for real-time computation made |