Design of Intelligent Assistance Systems

in context of cyber-physical production systems

Our conventional production lines in factories are a twentieth century artifact. They were focussed on mass production of identical products. In today’s world, products are customized to the extent of personalization. Hence, the production process for each individual piece may differ.

Monolithic assembly lines are not the best suited strategy in today’s scenario where products are customized to the extent of personalization.

Such production systems can neither be fully automated, due to a huge catalogue and no fixed dropping sequence, nor can an unaided human reliably manage a high number of variants. This has led to the rise of tools and systems that help operators in human-centric workplaces. One of the plausible solutions is to help operators through an assistance system during manual assembly processes.

Figure 1: Schematic description of an assistance system. The figure shows a central system and various Cyber Physical System (CPS) modules attached to it.


Our process will involve a fixed number of kinds of parts. For example, our process may require two kinds of screws {S₁} and {S₂} and a part {P}. Some of these kinds of parts may be only a transient product created during the assembly process, e.g. {Pₐ} and {Pₑ}, which will be produced while trying to get to the final product {F}. At each point in the assembly process, we will have a finite number of each kind of part on the workplace.

Figure 2 : An example of a state. State depicts the presence and absence of a kind of part in a system.
Figure 3: An example of a statechart explaining nomenclature of state vectors. Both the central system and CPS modules have state diagrams that are expressed in the form of state vectors.

State Transition Decision Framework

Here, I propose a framework for how the decision of moving from the current state to the next state of a process should be made. Different states of a process are defined using vectors. State diagram resides on central system as well as CPS modules. When a valid event corresponding to a state occurs, central system sends query against next possible states to all the attached modules.

State Evolution

Figure 4: An example of a precedence graph showing the prerequistes for each part, if any.


We will illustrate the evolution and the state transition using an example with a weighing module and a hand-tracking module.

Figure 5: An example of how a state diagram and state vectors of a process. The process includes three compoments: a part and two screws, and their assembly.
a -> b -> c -> e; 
b -> d -> f -> g -> e;
d -> c -> e;
  • {getNextState} provides a list of possible valid next states
  • All modules validate the state
  • {Validate} function for weighing module is below
IF{diff == 0}
STATE return 0
ELSIF{diff == n * component}
STATE return 1
STATE return -1
  • {setState} function broadcasts the current state to all the modules


Communication between central system and CPS modules is shown in the figure below. At the onset, central system initializes the system. Modules (weighing module, as an example in the figure below) send ACK to the central system. In the second step, central system broadcasts the present state to all modules. After the central system and modules have the same state, system waits for an event.

Figure 6: Sequence diagram showing communication between central system and weighing (CPS) module. Sequence daigram shows how objects operate with respect to time.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store