Implementation of a https://robonomics.network node in Rust, based on the 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 Robonomics Wiki.
Robonomics platform includes a set of open-source packages and infrastructure for Robotics, Smart Cities and Industry 4.0 developers.
-
Get Node and/or Open Portal.
-
Run the Robonomics Playground.
Structure of Robonomics followed:
-
Robonomics Node - substrate-based blockchain node with Robonomics Network extensions.
-
Robonomics CLI - console line primitives that make framework functions runnable.
-
Robonomics IO - stream-oriented library with support general set of sensors and actuators (including virtual devices like PubSub or stdin/stdout) that makes hardware interaction easy.
-
Robonomics Protocol - network library that helps to build P2P communication in Industry 4.0 and Smart City cases.
-
Robonomics Frame - a collection of pallets suitable for Smart City and Industry 4.0 cases.
Full docs available at https://crates.robonomics.network.
Ensure you have Rust and the support software installed:
curl https://sh.rustup.rs -sSf | sh
# on Windows download and run rustup-init.exe
# from https://rustup.rs instead
rustup target add wasm32-unknown-unknown --toolchain nightly
In case of error: toolchain 'nightly-x86_64-unknown-linux-gnu' is not installed
rustup toolchain install nightly
You will also need to install the following packages:
-
Linux:
sudo apt install cmake git clang libclang-dev
-
Mac:
brew install cmake pkg-config git llvm
-
Windows (PowerShell):
# Install LLVM # Download and install the Pre Build Windows binaries # of LLVM from http://releases.llvm.org/download.html
Install robonomics node from git source.
cargo install --force --git https://github.com/airalab/robonomics --tag v1.0.0 robonomics-node
And then launch full node of robonomics testnet parachain.
robonomics
Or run your local development network.
robonomics --dev
Currently Robonomics is maintained by developers but anyone can support the project. Every additional full node of blockchain helps it to be more sustainable and fault tolerant. Robonomics node binaries is available in release assets or it could be build from source.
Launch command:
robonomics --validator --parachain-id 1000 --collator-eth-account <your_eth_address>
Especially to make hardware interaction easy we introduce 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 full guide on wiki.
Of course, Robonomics should integrate open-source robotics, our main target is ROS-enabled robots. The node implements a few features to make robotics integration as easy as it possible.
-
Install ROS using instruction.
-
Import ROS environment:
source /opt/ros/melodic/setup.bash
-
Build with
ros
feature:cd bin/node && cargo build --release --features ros
Available examples are in this directory.
Simple but yet a complete sample of Robonomics launch
and datalog
functions.
You can find full documentation on Robonomics Wiki.