User Tools

Site Tools


Control System

The figure below shows the complete control system for our delta roboter. The building blocks together with their connecting signals are denoted as given in the code. Control System of the Delta Roboter

Inputs and Outputs

Lets start with the blue boxes at the bottom center of the diagram. This boxes represent the motor package, included the motor, the encoder and the gear. The encoders of the motor packages are defined as “Peripheral Input”. This “Peripheral Inputs” are described in the HAL configuration file. To initialize the encoder inputs, you'll have to call the constructor of the “Peripheral Input” and add the respective “signalId” from the HAL file as parameter, e.g.

eeros::control::PeripheralInput<double> encoder1("enc1");

Because the HAL is configured correctly, we get the current position in radian of each encoder. Next up, the “Mux” collects the four encoder values and puts them into a AxisVector. AxisVector is defined as

using AxisVector = eeros::math::Matrix<4, 1>;


The Direct Kinematic converts the position of the motors into cartesian coordinates of the TCP (target center point). The output now contains the x, y, z and phi value of the TCP.


Now we switch to the left. We got two possible input types. The “Mouse Input” gets the movement of the mouse and all the buttons attached to it, we use this block to manually control the Delta robot. The output of the “Mouse Input” is an AxisVector containing x, y, z and phi values. X and y change with the mouse movement. Z changes when scrolling up or down on the mouse wheel. Phi changes when pressing the mouse wheel to left or to right. To initialize the “Mouse Input” you have to add the input device as parameter to the constructor, e.g.

eeros::control::MouseInput mouse("/dev/input/event1");

Do not use “/dev/input/mice” or “/dev/input/mouse0” as parameter. The “Mouse” of EEROS uses mouse events.
The “PathPlanner”, as the name says, plans the path to the next point. This is used for auto moving of the Delta robot.

The “Motor Model” gets the actual speed and the calculated torque as input, and outputs the desired voltage for each motor.
The “voltageSetPoint” serves for the initializing of the encoder. This block is no longer used after reaching Safety Level “systemReady”.

control_system.txt · Last modified: 2019/04/01 09:25 by fink