Download Implementing a Time Optimal Task Sequence For Robot

Transcript
i
8i, j 2 V :
8
>
>Fixturei = Fixture j > 0 ^
>
>
>
>FixtureOrder j = 0 ^
<
j = SubAssemblyi = SubAssembly j ^
>
>
>
Component j = Componenti + 1 ^
>
>
>
:Component 6= 0
i
(27)
On all fixture nodes, there are constraints which are deduced from the assembly graph.
These constraints are posted on nodes which all have the same component index as well
as between nodes with different component indices such that the final assembly order
is preserved. The constraint (26) ensure the ordering within each set of component
fixture nodes Fixturesc is maintained, while (27) ensure that the ordering of the final
assembly is preserved.
For the purpose of evaluating the model in Section 6, the number of precedence constraints posted can be regulated through an input parameter given to the solver. The
difference is such that either the component drop-off only precedes the direct successor of that component, or such that the first component drop-off must be before all other
drop-offs. The resulting model would accept the same solutions, but this approach allows testing the model with different amounts of constraints and different levels of
propagation.
5.3.2
Avoiding Arm Collisions
In order to avoid collisions on certain nodes in the assembly, a temporal disjunction as
described in Section 4.7.5 is necessary. Such collections of nodes are the fixture nodes
which represent the same location in the cell and the camera and tray nodes with the
same index since they are in close proximity to each other. The other locations of the
cell are only visited once in each assembly.
The interval variables of each node allows using the D ISJUNCTIVE constraint and will
ensure that the affected nodes are not overlapping.
D ISJUNCTIVE({interval j⇤ | j 2 V, Fixture j > 0})
(28)
When several nodes are close together, the robot arms risk to collide if operating too
close to each other. This is specifically the case on the fixture nodes where both arms
work to drop components and perform other tasks. For all interval variables of nodes
where the Fixture index is non-zero, the D ISJUNCTIVE constraint (28) is posted. The
constraint covers all interval variables for all nodes; as mentioned in Section 4.7.5 we
can ignore all interval variables for each node where the value of activei is false.
8i 2 C \ {0}
D ISJUNCTIVE({interval j⇤ | j 2 V, Tray j = i _Camera j = i})
(29)
Also, in order for the arms not to block the view of the other arm, camera nodes cannot
be visited while the same tray note is visited. In order to separate these visits, the
38