Git Product home page Git Product logo

luos's Introduction

Luos: robotic product development made easy

Build Status

Luos is an end-to-end system to fully orchestrate your robot, all the way from hardware control to high level behaviors and Apps management.

It includes out of the box sensors acquisitions and filtering, drivers for advanced motor control for precise and eye-pleasing smooth motion. In the future, most commonly used robotic and AI algorithms will also be available.

Its sandboxed multi-layer architectures and elegant APIs allows for efficient and productive programming.

more information on our website>>

Getting started

Follow our tutorials and go from zero to blinking an Led in Rust in under 30 minutes!

Architecture

Luos is written in Rust and built around 2 main concepts:

  • drivers defines standardized API as Rust traits for common robotics parts (e.g. a servo motor, a position encoder, a distance sensor, etc.). This enforces compatibility amongst drivers and let you seamlessly switch from one actuator/sensor implementation to another without breaking the rest of your code.
  • core represents a physical boards and its associated local drivers. It handles automatically the communication with the other cores - and thus the remote drivers - so you can develop your project with a modular approach.

Development

Luos is lightweight, it can run on low-cost microcontrollers. We currently use the ARM Cortex M0 and develop on STM32F0 µC.

Discover our development boards to test and use Luos.

Example

A typical example of an app developed with Luos will look like this. You can define your own drivers based on the pre-defined traits or use already developed ones. Then, they can be easily composed to make complex behaviors.

extern crate luos;
use luos::{AngleEncoder, Motor};

extern crate luos_driver;
// We use a pre-defined driver for a known motor
use luos_driver::PololuluServoMotor;

// We define our implementation for our own encoder
struct MySpecificEncoder { ... }
impl AngleEncoder for MySpecificEncoder {
    // The API is standardized by traits
    // also enforcing units
    fn get_angle(&self) -> Degrees { ... }
}

fn main() {
    let encoder = MySpecificEncoder { pin: hal::GPIO::PA9 };
    let motor = PololuluServoMotor { pin: hal::GPIO::PB10 };

    asserv::loop(&encoder, &mut motor).run();
}

Join the community

We'd love you to join and contribute to Luos!

We'd love you to contribute to Luos! You can:

You can also contribute by becoming a patron of the project. It will give you exclusive access and content for a monthly donation.

License

This project is licensed under the Apache License, Version 2.0, (LICENSE-APACHE).

Please respect the attribution condition by adding a link to www.luos.io and the following powered by luos logo on any communication and documentation of your project.

This logo is also available in black and white for optimal integration in your design.

luos's People

Contributors

jgrizou avatar matthieu-lapeyre avatar pierre-rouanet avatar

Watchers

 avatar

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.