Giter Club home page Giter Club logo

moabian's Introduction

Welcome to Project Moab

Project Moab is an open source ball balancing robot built to demonstrate the end-to-end Microsoft Project Bonsai Platform, a low-code AI platform for building autonomous systems.

If you have the hardware kit, you can find all the setup documentation in the Wiki.

You can find an introduction to Autonomous systems and an overview of the Project Bonsai platform here.

For step-by-step tutorials of how to train a brain to balance a ball on Moab, visit the Project Moab Website.

Simulation is a huge component of Project Bonsai. You can find the python simulator for Project Moab here. This is also where you can find the inkling files for the Project Moab tutorials.

There is also a MathWorks Project Moab simulation. You can find the Simulink and Simscape Multibody model here. Connecting this simulation to Project Bonsai requires the Microsoft Project Bonsai Simulink Toolbox.

Microsoft Open Source Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

https://opensource.microsoft.com/codeofconduct

Trademark Notice

Trademarks This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.

moabian's People

Contributors

defeirst avatar journeyman-msft avatar jralexander avatar microsoftopensource avatar polzounov avatar scotstan avatar scottstanfield avatar sstanfie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moabian's Issues

New brains aren't recognized after bot reset

When deploying a custom brain, the new brain shows in the menu but throws a "brain not found" error after bot reset.
Current workaround: tap power button or use sudo reboot 0.

Use AI to locate the ball

Great suggestion from @mikeestee

  1. Train an ONYX/TF model to turn "ball in video frame" into a "normalized x/y" coord.
  2. Update the simulator to render the ball as a video frame, instead of synthesizing it directly from the physics.
  3. Import that and then combine it with one or more concepts for controlling the servos
  4. Export to moab.
  5. ???
  6. Profit

We use openCV computer vision algorithms to find the dominate hue of the center pixel space during calibration. Then use that color for the Hough circle detection algorithm. It does mean you have to recalibrate for different color balls, and the detection is sensitive to changing ambient lights (dark room vs sunny).

Would require the synthesis of simulated data and/or lots of real frames of data. Since we have labeled data now from ideal conditions (i.e., we can easily save videos with meta-data of circles where the ball is), we can get a good start.

Easier version migration

Some ideas on making it easier to upgrade Moabian:

  • Automatic firmware version detect and flash
  • flash will default to latest firmware (and remove old firmware from main)
  • Faster setup of MOABIAN variable in /etc/environment doesn't require system or firmware update.

Built in Brain not in menu

On Version 3.1.1, when testing Kiosk mode, I noticed the built in Brain is no longer in the menu. Even when I scroll up to refresh the menu the brain does not show up in the menu.

Fine tune the 3 arms for perfect level

While the robots three arms are calibrated during assembly, it's possible that the servos drift as the tolerance is a rough 0.5ΒΊ. When the plate is in manual mode, it should be level to your desk. If not, we are building a small command-line tool to find the right +/- degree offsets to fine tune the bot.

Show bot's IP address in the OLED menu

There is support in the existing Moab firmware to display IP address and FW version. This issue is to send that information to the bot.

This makes it easier for headless Moab units to show their DHCP-assigned IP address when connected via cat-5 / ethernet.

Show a QR code to Moab to set wifi

If you don't have an ethernet cable and you don't have an HDMI monitor + keyboard, there's no way to configure Moab (easily) to put it on your wifi network.

An idea came up where one could "show" Moab's camera a QR code with wifi details.

Refactor SPI interface

Python to Hat communication over the SPI bus is unnecessarily complex due to the need for root access.

docker-compose.yml version number invalid

Report from Muntazir Mehdi reporting:

ERROR: The Compose file './docker-compose.yml' is invalid because:

Invalid top-level property "iversion". Valid top-level sections for this Compose file are: version, services, networks, volumes, secrets, configs, and extensions starting with "x-".


You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.

For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/

To track this down, I'll be asking for a screenshot of the following commands:

splash
docker-compose --version
docker --version
head -5 ~/moab/docker-compose.yml

My moab output:

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.