Energy optimization problem of robotic cells formulated as an Integer Linear Programming problem.
General description
Although the energy optimization problem of robotic cells is inherently non-linear, it is possible to formulate it as an Integer Linear Programming problem if the non-linear convex functions are piece-wise linearized. These functions correspond to energy functions of robot movements which express the dependency of the energy consumption on the duration of the movement for a fixed trajectory. A solution for one robot can be perceived as the most energy efficient closed path through the specified stop coordinates, called locations. During the waiting in a stationary robot position a power saving mode of a robot can be applied. If the whole robotic cell is optimized, time synchronizations and the spatial compatibility have to be met, i.e. a workpiece is handed over from one robot to another at the right place at the right time. Finally, as robots are close to each other, the collisions have to be avoided.
Table of used symbols
Table of variables
Integer Linear Programming model
Description of constraints
constraint(s) | description | reference |
(1) | Minimization of the total energy consumed by all the activities. | RoboticLineSolverILP::construct |
(2) | Propagation of the energy consumption of static activities to the criterion with respect to the selected locations, power saving modes of robots, and durations. | ConstraintsGenerator::addEnergyFunctions1 |
(3) | Propagation of the energy consumption of dynamic activities to the criterion with respect to the selected movements and robot speeds. | ConstraintsGenerator::addEnergyFunctions2 |
(4), (5), (6) | Only one power saving mode and location is assigned to each static activity, and each mandatory dynamic activity has assigned just one movement. Constraints (6) can be omitted as flow preservation constraints (7), (8) and the timing enforce the implicit selection. | ConstraintsGenerator::addUniqueModeSelection |
(7), (8) | Flow preservation constraints ensure that if the robot enters to a location it also has to leave the same location. | ConstraintsGenerator::addFlowConstraints |
(9), (10) | Ensure a correct timing for fixed precedences of activities | ConstraintsGenerator::addFixedPrecedences |
(11), (12), (13) | Ensure a correct timing of optional precedences that model alternative orders of operations. | ConstraintsGenerator::addPrecedenceSelectionConstraints, ConstraintsGenerator::addSelectablePrecedences |
(14), (15) | Restrictions on durations of static and dynamic activities, respectively. | ConstraintsGenerator::addDurationConstraints |
(16) | Time synchronization between robots is ensured by time lags. | ConstraintsGenerator::addTimeLags |
(17) | Constraints enforcing the spatial compatibility for handover operations. | ConstraintsGenerator::addSpatialCompatibilityConstraints |
(18), (19) | Constraints ensure that two related activities are time disjunctive for different multiples of the production cycle time, and therefore, the collision is resolved. | ConstraintsGenerator::addCollisions |
(20) | Domain of variables, all the variables of the model are either positive floats or binary variables. | VariableMappingILP |