Robo4J uses Gradle build system and is available on Github:

     git clone

available public SNAPSHOT: alpha-0.4.4-SNAPSHOT
repositories {
  maven { url "" }


dependencies {
  compile "com.robo4j:robo4j-core:${robo4jVersion}"
  compile "com.robo4j:robo4j-hw-rpi:${robo4jVersion}"
  compile "com.robo4j:robo4j-hw-lego:${robo4jVersion}"
  compile "com.robo4j:robo4j-units-rpi:${robo4jVersion}"
  compile "com.robo4j:robo4j-units-lego:${robo4jVersion}"
  compile "com.robo4j:robo4j-units-rpi-http:${robo4jVersion}"
  compile "com.robo4j:robo4j-socket-http:${robo4jVersion}"
  compile "com.robo4j:robo4j-math:${robo4jVersion}"   


Robo4J consists of a set of core “modules”. We will use the word “module” loosely here, as they are not quite yet JDK 9 modules. These modules are all defined as their own Gradle projects.

An example of currently available modules are displayed in the image below. Most Robo4J projects will at least use the main module robo4j-core and the units defined for the platform you are using for your robot. For example, robo4j-units-rpi for the Raspberry Pi, or robo4j-units-lego for a Lego EV3 robot. The hardware units will in turn refer to the related hardware module robo4j-hw-*. In the image below robo4j-db-sql is also shown, which allows data points of selected part of the system to be persisted.
Img.1. : Robo4J Modules organisation on example MyRobot project

robo4j-mathCommonly used constructs as points, scans (for laser range scans), feature extraction and similar. Most modules depend on this module.
robo4j-hw-*A platform specific module with easy to use abstractions for a certain hardware platform. For example robo4j-hw-rpi, which contains easy to use abstraction for common off-the-shelf hardware from Adafruit and Sparkfun.
robo4j-coreDefines the core high level concepts of the Robo4J framework, such as RoboContext, RoboUnit and RoboReference.
robo4j-units-*A platform specific module which defines high level RoboUnits that can be included into your projects. This modules basically ties the hardware specific module together into the Robo4J core framework, providing ready to use units that can simply be configured, either in XML or code.
robo4j-db-sqlRobo4J data persistence module. Module supports Hibernate/JPA

the robo4j-hw-* modules can be used without buying into the rest of the framework. If you simply want to bootstrap the use of the hardware you’ve purchased, without using the rest of the framework, that is certainly possible. Hopefully you will find the rest of the framework useful enough though.

Now you are ready to build up your 1st Robo4J project!
continue here: Getting Started with Robo4J