-
Notifications
You must be signed in to change notification settings - Fork 8
Robot software
Disclaimer: Information that is presented here, might be deprecated.
Component owner: Anna, Marci
Date of assessment: 2016-05-10
-
A state machine determines the control logic of the robot
-
Written in Yakindu
-
Main capabilities of the state machine
-
An automated, pre-defined control sequence can be initiated in a dedicated state. This complex sequence is decomposed of multiple states
-
When manual control is active, states express the action to be taken in a "do" statement. Events generated by the motors and the sensors fire the transition back to the "IDLE" state
-
-
The state machine contains some safety considerations
-
If the grabber crane is lifted, it cannot be opened
-
If the grabber crane is lowered, the arm cannot rotate around the basis
-
There are transitions for emergency events that drive the state machine to a "STOP" state, which is basically a deadlock
-
-
Sends high level commands
-
-
Glue code consists of two main parts:
-
Glue code for MQTT
-
Publishes the messages to a designated MQTT topic
-
Subscribes to a given channel
-
-
Glue code for event and action translation
-
Converts messages to and from the protocol used by other components
-
Runs the code generated from the state machine
-
-
-
Due to the unreliable signals of the end-state sensors (touch sensors), occasionally the end states are not detected correctly. For this reason the initialization of the robot is a bit hacky (we can select if we want to skip the initialization step of the robot and set some values manually)
-
Error handling is missing from the glue code
-
Javadoc
-
Basic documentation for the state machine
-
Tests
-
Use the MQTT broker of the table
-
Use QoS
-
Use retained messages in event driven devices to store latest state for devices subsribing later
-
-
Logging and monitoring
-
Decouple the glue code and the state machine code as much as possible
-
Use hierarchical state machines
-
Also try to extract the glue code to state machines as much as possible
-
-
Monitoring using the GUI of the state machine
-
Anna: 1-2 month of work in the summer, potentially TDK
-
Marci: 1-2 month of work in the summer, potentially TDK