About AeroLeap

AuroLeap

A leap into the next dimension of innovation

While AuroLeap is the name of an umbrella organization intended to host many projects, the only current project slowly emerging from the ground at this time is Gilbert, a source-available humanoid robotics platform to help us with housework so we have a little more time for each-other.

Presently this organization is not officially structured. A non-profit venture could be considered, and in many ways would be advantageous as that aligns with the goals of this organization and it would allow more access to some services that are free for non-profits (Microsoft 365 / additional GitHub services / ect), but this would also require corresponding time with respective paperwork.

General expectations for all projects:

In general, all projects for AuroLeap should follow a consistent toolset and development process.

Repository / Source ideals:

  • Projects hosted on GitHub under the AuroLeap organization

    • Most source files should be available in GitHub

      • Note: "source files" here means any non-database file that is used to generate an end-product or intermediary.

      • Example: adoc files that contain reviewed "requirement" documentation.

      • Example: C files or similar that are compiled into machine-code.

      • Example: Freecad files or similar that define 3d models or other modelling information.

      • Example: Automation scripts that perform conversions.

      • Example: Scripts that define test cases / execution.

      • Example: CSV tables or similar that define relationships or different organization structures.

      • Note however, in general duplicate content (for instance, content that is derived from other files) should not be committed back unless it needs to be committed in a different format for review.

      • Note Git is also not an ideal place for binaries, more consideration may be needed here to understand where this information should be stored. Things like Excel or other Office documents may be able to be contained on Microsoft 365.

    • Substantial database and training data will generally be stored on (database service not identified)

"Requirement" documentation ideals:

  • As noted, "Requirement" documentation (Capabilities / Design Decomposition Documentation, as noted below) should be committed and available in GitHub either at the same time or before design content (such as source files, 3d models) are committed.

    • This does not need to be fully flushed out requirement documentation, as long as there are some notes helping to give context to the expected changes in behavior from a top / user level, or improvements in technical application that drove changes to implementation.

  • "Requirement" documentation here I note with some aversion as I think semantics associated with the word "Requirement" can generally cause confusion. Especially for open-ended projects like this, it is easy for "requirements" to be conflated with "desires", and as soon as we attach the word "requirement", it can obscure our ability to see what elements are actually negotiable / what trade-offs might need to be considered. It is possible this is just a semantic bias I have, but as of now all AuroLeap documentation will be broken into 2 main types:

    • "Capabilities" which are oriented around the end-users expected behavior, and give context as to why the user wants that behavior. This could also link to videos, and example "test" scenarios that would verify expectations are met. Ideally this would be maintained in an excel document, where capabilities could be assigned stakeholder scores to help assert what capabilities need to take priority for development. These correlate to "Customer Needs" and "Customer Wants" in a single list where all information can be contained and prioritized, but it is important here to focus on end behavior, not an specific solution the customer may think need be employed. It is easy for all of us (end user or designer) to be trapped into a perspective oriented around predestined solution, but in order to make sure we all share the same real objective, it is important to write out the outcome that is expected, not what we imagine a solution could be.

      • All of these should be described only in terms of environmental interfaces /objects and what the system is expected to change about the object / interface.

      • Note this is all intended to ensure a shared vision between the writer and the reader, but all forms of media can be misinterpreted. It’s important all times to consider what other context (pictures / diagrams / videos / ect) can be used to better describe a capability.

    • "Design Decomposition Documentation" (referred to occasionally here as DDDs) which can be documented at various "levels" of the engineering design process (mechanical / electrical power / sensors / computer / network / software ) and along different interfaces. But all the individual design decomposition documentation should be able to be collected for a single project to describe in detail how the project proceeded from capabilities to low level implementation. (hardware selection, signal interface definition, material selection, ect). These effectively replace what would typically be called "Requirement" documentation in an organization, as the focus should always be ultimately on meeting the capability, without getting stuck on "requirements", which are often just describing implementation level decisions that were made at another level of the design process. That is - often a decision at one level, is a "requirement" at another. Design decisions and the respective restrictions that they may impose are still valid, but they should not be attributed as "requirements".

      • Note: In this way all design decomposition documentation should be able to be fit together like a puzzle, no gaps or overlaps should be present in terms of fully defining the end-product.

      • Additionally, interface level definitions are ideally generated automatically based on the requirement definitions (resolution, update rate, ect). This may be handled in the future, but I want to emphasize, at all points the goal should be to automate as much as possible.

      • Any diagrams should be entered in directly in the document using plantUML to generate the document on publication.

        • Note this will create some hazards in review, more negation here can be done.

  • All commits ideally reference a design documentation documentation ID.

    • How IDs will be designated is yet to be determined, related: I am not a big fan of UUIDs.

  • Capabilities and DDDs documented in .adoc format and reviewed in GitHub through pull requests.

    • Note here modelling language is useful to embed diagrams directly into requirement documentation (such as plantuml)

    • Requirements should always be decomposed into design decisions with well-defined interfaces and the full dimension of the interface should be described.

Development Tools

This is just my list of collected softwares that I would recommend. Please send suggestions.

For details and tools used in the creation of this website, please visit the AuroLeap example subsite

Aspect

Provider / Service

Repository

GitHub (Free, Private repository)

Documentation

Almost all content is written in adoc

Source Editing

IntelliJ IDEA Community Edition with adoc plugin

Graphics Editing

Inkscape for SVG images, Gimp for others

Model Editing

FreeCad or Autodesk Fusion

Model Simulation

(Undetermined, Gilbert will likely require a custom solver / renderer to integrate with it’s engine)

Note: ADOC format has been selected in spite of markdown due to its extensibility, consistency, and ability to build multiple different format documents. Markdown’s popularity may eventually drive me to convert documentation to markdown, but as of now adoc has very similar capabilities, while offering consistency.

Support and Sponsors

The following links are to my (founder) personal account. As this organization grows, I hope accounts will be maintained around the organization, but until then, all I can provide is a direct link

Sponsor through LiberaPay:

Sponsor through LiberaPay

Sponsor through GitHub Sponsors:

(Link Pending)

Organization tools

This organization is currently supported through free or very-low cost tools. Just a few noted here, but there are referenced in other locations as well:

Website hosting / generation

Cloudflare

Email support

Zoho

Contact

To contact, please refer to my contact information