Home

Awesome

YoVariables

ihmc-yovariables buildstatus

What is YoVariables

YoVariables provides a framework for organizing, storing, and manipulating variables used in algorithms. The variables are organized in a tree structure using registries.

This library was designed with the idea that a user should be able to:

Who would use YoVariables

Any developer using the Simulation Construction Set project for visualizing an algorithm.

Any developer who wants to organize control variables.

What is the goal of YoVariables?

The objective is to provide a data structure that is easy to implement and intuitive to use and usable in a real-time environment.

Content

YoRegistry and YoVariable

A YoVariable is an abstract class that represents a primitive that has a name and can be registered in a YoRegistry. Five implementations can be found:

YoRegistry represents a registry that contains variables and child registries.

YoParameter

A YoParameter can be seen as a read-only YoVariable that guarantees that the algorithm declaring it will only read the parameter value. As a consequence, when dealing with a YoParameter on the user side, for instance in SCS, it is ensured that the parameter is only modified by the user.

A YoParameter can be attributed an initial value at construction or can also be loaded from an XML parameter file. See XmlParameterReader and XmlParameterWriter from more details.

YoBuffer

YoBuffer provides an implementation of a buffer which can be used to store value history of collection of YoVariables.

Using YoVariables from .jar releases with Maven/Gradle

The releases .jars for YoVariables are hosted on Bintray. You can browse the IHMC release packages at https://bintray.com/ihmcrobotics/maven-release. Instructions for adding the Maven repository and identifying the artifacts can also be found on Bintray for each package.

At a minimum, you will need to have the following repository declared in your build script to use the YoVariables .jars:

repositories {
   mavenCentral()
}

dependencies {
   compile group: "us.ihmc", name: "ihmc-yovariables", version: "x.x"
}