Common

The Common package defines the common software components of the low level software implementation. It is split into a model part and a utility part:
- The model subpackage defines the model tree needed to keep a virtual state of the robot up to date at any time.
- The util subpackage defines cpp interfaces and useful functions

Model

The model subpackage contains:

States

Classes representing the virtual state of each hardware component at any moment. The hierarchy allows powerful polymorphism so that we can interpret each component differently based on the information we need to obtain.

Abstract Hardware State inheritance graph

Abstract Hardware State inheritance graph

Enums

They are enhanced enums to keep trace of various enumeration and be able to have useful utilities attached to them (like conversion to string).

Hardware Type Enum inheritance graph

Hardware Type Enum inheritance graph

Commands

Classes representing single and synchronize commands, for steppers and dynamixels. They are used to queue commands in the ttl_driver packages.

Commands graphs

ISingleMotorCmd inheritance graph

ISynchronizeMotorCmd inheritance graph

Single Cmd

Sync Cmd

Each type of command is an alias to specified versions of two base template classes: AbstractSynchronizeMotorCmd and AbstractSingleMotorCmd

Util

The util subpackage contains:

  • Cpp interfaces, used globally in the stack for polymorphism

  • Utility functions usable globally in the stack