Skip to content

Overview


JCS dev_host is the interface between a JCS network and your higher level robotic software. dev_host is available as a C++ library for Linux operating systems.

JCS dev_host is a synchronous system that is ticked at a rate defined by configuration. Upon each tick of the network, dev_host transmits user data to any devices or processes, ticks the devices and processes and receives any data from the devices or processes to be presented to the user.

dev_host manages device and process configuration, startup and shutdown and monitors device health.

dev_host supports a number of useful features:

  • Concise network and device configuration via YAML files. This allows robot configuration to be version controlled and easily modifiable.
  • Tools to manage startup and shutdown of devices and processes.
  • Synchronous signals API in which real time data is exchanged with the network at fixed rates.
  • Configurable sub rates to allow exchange of data and ticking of processes at rates other than the configured base rate.
  • An asynchronous parameter interface to configure and query devices and processes.

Definitions

Here are some useful definitions that are used around JCS:

Term Definition
Signal Some data (e.g. a floating point value) that is transferred around the network.
Tick Ticking of the synchronous system is advancing forward by a time step.
Rate The frequency at which a particular tick occurs.
Base-rate The primary rate at which the JCS system is ticked at.
Sub-rate A rate slower than the base rate.
Device A piece of JCS specific hardware.
Process A thing that can run on some JCS devices. Examples are PID controllers, solver and transformations.