= Robonomics
image:https://github.com/airalab/robonomics/blob/master/web3_foundation_grants_badge_black.jpg["Web3 Foundation Grants — Wave Two Recipient", link="https://medium.com/web3foundation/web3-foundation-grants-wave-two-recipients-16d9b996501d"]
:Author: Robonomics Network Developers :Revision: 0.6.0 :toc: :sectnums:
image:https://img.shields.io/github/license/airalab/robonomics["License", link="https://github.com/airalab/robonomics/blob/master/LICENSE"] image:https://github.com/airalab/robonomics/workflows/Testing/badge.svg?branch=master["CI Status", link="https://github.com/airalab/robonomics/actions"] image:https://img.shields.io/github/release/airalab/robonomics.svg["Release", link="https://github.com/airalab/robonomics/releases"] image:https://img.shields.io/github/downloads/airalab/robonomics/total.svg["Downloads", link="https://github.com/airalab/robonomics/releases"] image:https://img.shields.io/matrix/robonomics:matrix.org["Matrix", link="https://matrix.to/#/#robonomics:matrix.org"]
Implementation of a https://robonomics.network node in Rust, based on the https://substrate.dev[Substrate framework].
This repo contains runtimes for the Earth Parachain, Mars Parachain, and Robonomics Relay chain networks. The README provides information about installing the robonomics binary and developing on the codebase. For more specific guides, like how to be a node, see the https://wiki.robonomics.network[Robonomics Wiki].
Robonomics platform includes a set of open-source packages and infrastructure for Robotics, Smart Cities and Industry 4.0 developers.
== Try it out
. https://get.robonomics.network[Get Node] and/or https://parachain.robonomics.network[Open Portal]. . Run the https://wiki.robonomics.network/docs/playground-overview/[Robonomics Playground].
== The Robonomics Crates
Structure of Robonomics followed:
Full docs available at https://crates.robonomics.network.
== Building from source
Ensure you have Rust and the support software installed:
curl https://sh.rustup.rs -sSf | sh
You will also need to install the following packages:
. Linux: [source, shell] sudo apt install cmake git clang libclang-dev protobuf-compiler
. Mac: [source, shell] brew install cmake pkg-config git llvm
Install robonomics node from git source.
[source, shell] cargo install --force --git https://github.com/airalab/robonomics --tag v1.0.0 robonomics-node
And then launch full node of robonomics testnet parachain.
[source, shell] robonomics
Or run your local development network.
[source, shell] robonomics --dev
=== Building with Nix
. Install Nix package manager: [source, shell] curl https://nixos.org/nix/install | sh
== Network maintaining
Currently Robonomics is maintained by developers but anyone can https://www.robonomics.events/#/collators[support the project]. Every additional full node of blockchain helps it to be more sustainable and fault tolerant. Robonomics node binaries is available in https://github.com/airalab/robonomics/releases[release] assets or it could be <<building-from-source,build from source>>.
=== Gatekeepers updates
== Robonomics I/O
Especially to make hardware interaction easy we introduce https://crates.robonomics.network/robonomics_io/index.html[robonomics_io] crate. This crate implements two kinds of devices: source
- device that intended to read a data and sink
- device that intended to write data. This approach suits the pipelines paradigm well and implemented in Robonomics CLI as io
subcommand.
$ robonomics io
robonomics-io 0.25.1
Run I/O actions using Robonomics Framework.
USAGE:
robonomics io [FLAGS] [OPTIONS] <SUBCOMMAND>
SUBCOMMANDS:
help Prints this message or the help of the given subcommand(s)
read Read information from device
write Write information into device
For example, the sentence that simple read value from Nova SDS011 sensor is followed.
$ robonomics io read sds011
{"timestamp":"1588090281","pm25":0.5,"pm10":1.5}
Is it also possible to combine IO actions to get something useful.
Following sentence reads JSON values from a sensor and publishes it into my-sensor-data
topic.
$ robonomics io read sds011 | robonomics io write pubsub my-sensor-data
Read https://wiki.robonomics.network/docs/rio-overview/[full guide on wiki].
== Robotics integration
Of course, Robonomics should integrate open-source robotics, our main target is http://www.ros.org[ROS]-enabled robots. The node implements a few features to make robotics integration as easy as it possible.