Skip to content

Commit

Permalink
updated documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
e authored and e committed Jun 20, 2024
1 parent 26d4b25 commit 21877f9
Show file tree
Hide file tree
Showing 11 changed files with 195 additions and 13 deletions.
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# ondroid
# ondroid - The Open Source Humanoid Robot
## Mission
Design a full DOF humanoid robot incrementally, halving the cost until the BOM is $1000. <br><br>

# how to contribute
find things on the # TODO: list and work on them
## Discord
Join our Discord at: [https://discord.gg/uaXHsjFq4B](https://discord.gg/uaXHsjFq4B)

## Contribute
Read the [Getting Started](gettingStarted/index.md) documentation for how you can contribute to the project.

# calculations
- data stored in YAML format
- variables should be stored in requisite YAML files
58 changes: 58 additions & 0 deletions docs/analysis/index.md
Original file line number Diff line number Diff line change
@@ -1 +1,59 @@
# Analysis
There is an important distinction between System and Component level analysis: system analysis generates requirements that drive lower level components.<br><br>

# System Level Analysis

### Definition
System level analysis is a comprehensive examination of the entire system, considering all its components, interactions, and the overall functionality. It involves understanding how various parts of the system work together to achieve the desired objectives.

### Purpose
#### TLA Requirements
System level analysis is crucial for developing the overarching architecture and design of a system. This high-level design outlines how different components will interact, the overall system behavior, and the primary functions.
#### Validation
It ensures that all components will be rated for the correct loading conditions once designed. This analysis also identifies potential issues that might arise from the interaction between components.
#### Optimization
Provides methods to optimize the system as a whole, rather than focusing on individual components. This approach reveals opportunities for reducing weight and increasing performance.


### What it Looks Like
#### System Level Requirements Gathering
Collecting and defining the system level requirements.
#### System Level Analysis
Generating FBDs and analyzing them to generate component level requirements.
#### Feasibility Studies
Evaluating different design alternatives and their trade-offs to determine the best overall system design.

### Outcome
Component level requirements in the form of:

- Velocities
- Accelerations
- Forces
- Magnitudes
- Components
- Constraints
- Torques
- Magnitude
- Duty Cycle

# Component Level Analysis

### Definition
Component level analysis focuses on the detailed examination and design of individual components within the system.

### Purpose
#### Requirement Compliance
Ensuring that each component meets the specific requirements set by the system level analysis. These requirements are often more detailed and precise, addressing the specific needs and constraints of each component.
#### Performance Verification
Verifying that each distinction can perform its intended functions reliably through propagating results upwards to the system level for verification.

### What it Looks Like
#### Stress Analysis
Breaking down system-level requirements into detailed, component-specific requirements that are then analyzed for highest level stresses using calculation or FEA methods. These are then typically compared with material yield strengths to generate factors of safety.
#### Motor Analysis
Calculations that validate the performance of motors and other powertrain components.
#### Testing and Validation
Developing tests to validate that components meet their design specifications and performance criteria. This can include failure testing, reliability testing, and other types of tests.

### Outcome
The outcome of component level analysis is a set of detailed analyses and specifications for each component, along with analysis results and documentation. These components can then be individually manufactured, prototyped, and implemented.
4 changes: 3 additions & 1 deletion docs/design/index.md
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
# Design
# Components - Parts & Assemblies
For the context of this project, all parts and assemblies are referred to as "Components". The project does not distinguish between Parts and Assemblies. Components can live within other components.

Binary file removed docs/devops/mechanical/.cad.md.swp
Binary file not shown.
29 changes: 27 additions & 2 deletions docs/devops/mechanical/cad.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,31 @@
# CAD
## Official Project CAD Package
The official CAD software of ondroid is FreeCAD. The plan is to move to Ondsel once they implement the TNP solve and assemblies are in a reliable place.
The official CAD software of ondroid is [Ondsel](https://www.ondsel.com) (a FreeCAD derivative). Ondsel files are backwards compatible with FreeCAD, so in the case you'd prefer using FreeCAD, you're able to open files with it but without the assembly functionality.

## Assemblies
Assembly owners are responsible for managing part PRs and placement recommended by the engineers designing parts.

## Can I use another software package?
Yes - as long as it is licensed for commerical use. For example, you may use Fusion 360, as long as it is the paid version. The free version is not valid as it does not allow for commerical use.
Yes - as long as it is licensed for unrestricted commercial use.

Example; Fusion360 is not allowed (unless you pay for it). The free version does not allow for unrestricted commercial use.

### This Sounds Silly - why can't I use Free Software?
ondroid is Open Source under an Open Source license, but the license allows for unrestricted commercial use. By using free CAD software, you jeopardize your work being removed from the project or worse, opening the project up to legal issues.

### List of Unapproved CAD Packages
- Fusion 360 Free Version (Autodesk Fusion for personal use)
- Solidworks Maker
- This is not an unlimited commercial license, as it has a cap of $2k/year revenue attached to the license
- Siemens NX Student

### List of Approved CAD Packages
This is not a definitive list but only provided to offer guidance:
- Solidworks
- Fusion 360 (Commercial License)
- FreeCAD
- Plasticity

## Part Placement
Parts can be drawn in any orientation. Their position is controlled at the assembly they reside in.

64 changes: 64 additions & 0 deletions docs/gettingStarted/index.md
Original file line number Diff line number Diff line change
@@ -1 +1,65 @@
# Getting Started
Welcome to the project. Check out our [Mission](mission.md) (it was important enough to get its own section) to see what we're doing and if you'd like to help.

# Contributing
## Join the Community on Discord
We use [Discord](../index.md#discord) to communicate.

## Work on the Project in your Specialty
I'm a...

[Mechanical Engineer](#mechanical-engineering)

[Lawyer](#lawyer)

[Machinist](#machinist)

[Software Engineer](#software-engineer)

[DevOps Engineer](#devops-engineer)

[Industrial Designer](#industrial-designer)

[Frontend Engineer](#frontend-engineer)

[Roboticist](#roboticist)

[Electrical Engineer](#electrical-engineer)

[Layout Engineer](#layout-engineer)

[None of These Things](#generalist)

interested in contributing.

# Mechanical Engineering
We need to engineer the robot. If you don't know where to start, join the Discord and introduce yourself. We can find something for you to do.

# Lawyer
There is a ton to do - from incorporating non-profits, to, well, everything. This is undiscovered field that needs your help.

# Machinist
Help us program CAM, offer DFM and help design things for cost effectiveness generally speaking.

# Software Engineering
A lot needs to be done. Generalists who want to learn about Computational Geometry, Robotics or ML should join the Discord and pick up tasks (or generate their own).

# DevOps Engineer
Mechanical Engineering is an incredibly under-represented section of the engineering disciplines with pretty bad software. We need you to help us glue [FreeCAD/Ondsel](https://ondsel.com) to various CAD packages, simulation software, and more.

We also need to figure out better ways to manage CAD files from deployment and diffing to product life cycle management.

# Industrial Designer
Help us make the robot friendly. CAD modelers who don't have an ID background but know how to use surfacing techniques shouldn't be afraid to hop in and assist.

# Frontend Engineer
We barely glued together this MkDocs running on GitHub pages. We need people to help build out a more comprehensive website. We also plan on running the front end through a web interface.

# Roboticist
Join the discord, post papers, and help the Software Engineers understand IK.

# Electrical Engineer
There's a lot to do in the controls department, but even more with motor drivers.

# Generalist
Join the discord, chat, read papers, and ask how you can help.
7 changes: 6 additions & 1 deletion docs/gettingStarted/mission.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
# Mission
Design an affordable full DOF humanoid robots incrementally, halving the cost until the BOM is $1000.
Design a full DOF humanoid robot incrementally, halving the cost until the BOM is $1000. <br><br>

# Nice to Haves
1. Educate the public about Engineering and get people excited about it through Robotics
2. Be the most performant humanoid robot available
3. Contribute to Robotics and AI academic research
15 changes: 15 additions & 0 deletions docs/glossary.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Definitions
__Component__: A part or assembly. Components can contain other components. A component can be a single part.
__Part__: The most basic component which consists of only itself.
__Assembly__: Traditional parlance for ondroid Component.
__Mechanical Design__: Concept design of parts and assemblies. Also known as design, machine design, or mechanism design.

# Acronyms
Acroynms have a space before and after to aid in search.<br><br>

&nbsp;__TLA__ - Top Level Assembly (Top Level Component)
&nbsp;__TLC__ - Top Level Component (The same as TLA)
&nbsp;__FBD__ - Free Body Diagram
&nbsp;__IK__ - Inverse Kinematics
&nbsp;__DOF__ - Degree of Freedom
&nbsp;__BOM__ - Bill of Materials
8 changes: 7 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
@@ -1 +1,7 @@
# Getting Started
# ondroid - The Open Source Humanoid Robot
## Discord
Join our Discord at: [https://discord.gg/uaXHsjFq4B](https://discord.gg/uaXHsjFq4B)

## Contribute
Read the [Getting Started](gettingStarted/index.md) documentation for how you can contribute to the project.

1 change: 1 addition & 0 deletions docs/system/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# System
8 changes: 6 additions & 2 deletions mkdocs.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
site_name: ondroid
site_url: https://emoshou.github.io/ondroid/
#site_url: https://emoshou.github.io/ondroid/
site_url: https://ondroid.ai

nav:
- Home: index.md
- Getting Started:
- gettingStarted/index.md
- Mission: gettingStarted/mission.md
- Glossary: glossary.md
- DevOps:
- devops/index.md
- Mechanical DevOps:
- devops/mechanical/index.md
- CAD: devops/mechanical/cad.md
- Software DevOps:
- devops/software/index.md
- Analysis:
- analysis/index.md
- System:
- system/index.md
- Arms:
- Arm, L:
- analysis/arms/arm, L/index.md
Expand Down

0 comments on commit 21877f9

Please sign in to comment.