(19)
(11)EP 3 579 161 A1

(12)EUROPEAN PATENT APPLICATION

(43)Date of publication:
11.12.2019 Bulletin 2019/50

(21)Application number: 18176798.9

(22)Date of filing:  08.06.2018
(51)International Patent Classification (IPC): 
G06Q 10/06(2012.01)
(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR
Designated Extension States:
BA ME
Designated Validation States:
KH MA MD TN

(71)Applicant: Hexagon Technology Center GmbH
9435 Heerbrugg (CH)

(72)Inventors:
  • MAUNZ, Johannes
    CH-9445 Rebstein (CH)
  • REIMANN, Bernd
    CH-9435 Heerbrugg (CH)

(74)Representative: Kaminski Harmann 
Patentanwälte AG Landstrasse 124
9490 Vaduz
9490 Vaduz (LI)

  


(54)WORKFLOW DEPLOYMENT


(57) The invention pertains to a workflow deployment system, comprising at least one computing device (20) having a memory unit and a first communication unit, and a plurality of software agents that are adapted to be used with a plurality of electronic apparatuses, wherein each software agent is installable on an electronic apparatus of the plurality of electronic apparatuses or installed on a communication module that is adapted to be connected to one of the electronic apparatuses and to exchange data with the apparatus connected to, wherein each software agent is adapted to exchange data with the electronic apparatus it is installed on or connected to, wherein the memory unit is adapted to store workflow data related to a workflow for performing a task (1), the workflow involving at least a first apparatus of the plurality of apparatuses and comprising at least a first workflow package for a first part of the task, wherein the computing device is adapted to assign the first workflow package to a first apparatus, and to provide workflow data related to the first workflow package to the software agent of the first apparatus, to receive a problem solution request (7) from the software agent of the first apparatus, to perform, upon reception of the request, a workflow modification process, in the context of which workflow modification process the computing device is adapted to generate, based on the request, customized data (8, 9), and to provide the customized data to the software agent of the first apparatus.




Description


[0001] The present invention pertains to a workflow deployment system and method for generating a task-specific workflow to perform a task jointly on a plurality of existing devices. More particularly, the invention relates to a configuration of surveying instruments by imparting new functionalities, to problem solution in the cloud, or to coordinating several devices, e. g. by distributing surveying tasks from one device to more than one.

[0002] In the art of general construction work such as building construction and civil engineering, important key factors are planning, progress observation, documentation and appropriate accounting. In many instances, those aspects are getting more and more complex and dynamic, in particular due to the many parties involved, fluctuating human and/or objective resources, increased complexity of the end results, tighter schedules, increased costs of human resources, etc. Work that was formerly planned and overseen by a single manager is nowadays too complex for a single person and a splitting between multiple people often miscarries at the thereby uprising interfaces.

[0003] Therefore, it has been tried to expand automation and computerization in this technical field by using building information models (BIM). In the art of building construction, the documents EP 2 629 210, JP 5489310, CN 103886139, US 2014/268064 or US 2014/192159 provide examples of so-called BIM-System approaches.

[0004] In the patent application EP18155182.1, a system "Edge Client" (EC) is described that provides extensible IoT edge solution, process automation, secure edge connectivity and dynamically changeable workflows. It can be used together with a system and data integration software such as "EdgeFrontier" (EF) of Intergraph. Some integration tools that can be used with EC are disclosed in documents EP 3 156 898 A1, US 2008/0005287 A1, US 2008/0010631 A1 or US 7,735,060 B2.

[0005] US 7,917,654 B2 discloses a system for synchronizing data between a host client and a field device via a virtual field device.

[0006] Methods and systems described in prior art however are not concerned with modifying workflows if unexpected problems occur or are predicted.

[0007] It is therefore an object of the present invention to provide an improved method and system for workflow deployment.

[0008] It is another object of the present invention to provide such a method and system that allow modifying workflows when a problem with an existing workflow is reported, predicted or expected.

[0009] Particularly, it is an object to provide such a method and system that can be used with existing devices, legacy systems, and untrained users.

[0010] In particular, it is an object to provide such a method and system wherein automatic workflow modification is enabled.

[0011] Another object is to provide such a method and system wherein a work package is re-assignable so that it can be performed jointly by two or more devices.

[0012] It is a further object to provide such a method and system wherein the task is a measuring task and the devices are measuring devices, particularly surveying and reality capture devices.

[0013] At least one of these objects is achieved by the system according to claim 1, the method according to claim 12 and/or the dependent claims of the present invention.

[0014] A first aspect of the invention relates to a workflow deployment system comprising at least one computing device having a memory unit and a first communication unit, and a plurality of software agents that are adapted to be used with a plurality of electronic apparatuses. Each software agent is installable on an electronic apparatus of the plurality of electronic apparatuses or installed on a communication module that is adapted to be connected to one of the electronic apparatuses and to exchange data with the apparatus connected to, wherein each software agent is adapted to exchange data with the electronic apparatus it is installed on or connected to.

[0015] According to this aspect of the invention, the memory unit is adapted to store workflow data related to a workflow for performing a task, the workflow involving at least a first apparatus of the plurality of apparatuses and comprising at least a first workflow package for a first part of the task. The computing device is adapted to assign the first workflow package to the first apparatus, and to provide workflow data related to the first workflow package to a first software agent of the first apparatus, and the first software agent is adapted to monitor and/or predict the occurrence of a problem that incapacitates the first apparatus to perform the first part of the task. If the occurrence of a problem is detected or predicted, the system is adapted to perform a workflow modification process for performing at least the first part of the task in a modified way, the workflow modification process comprising generating customized data related to a modified first workflow package.

[0016] According to one embodiment of the workflow deployment system, the computing device is adapted
  • to generate the workflow for performing the task, the workflow involving one or more of the apparatuses,
  • to generate the workflow data for each of the involved apparatuses, the workflow data allowing the respective apparatus to perform a part of the task, and
  • to provide the workflow data to the software agents of the involved apparatuses.


[0017] According to another embodiment of the workflow deployment system, the first software agent is adapted to generate a problem solution request related to the detected or predicted problem, wherein the computing device is adapted
  • to receive the problem solution request from the first software agent,
  • to perform the workflow modification process upon reception of the request, wherein the computing device is adapted to generate the customized data based on the request, and
  • to provide the customized data at least to the first software agent.


[0018] According to yet another embodiment of the workflow deployment system, in the context of the workflow modification process the computing device and/or the first software agent is adapted to analyse the problem of the first apparatus, to determine a solution for the problem, and to generate the customized data based on the solution. In a particular embodiment, the system has access to a machine learning database comprising data sets related to previously reported problems, wherein analysing the problem and determining the solution is based on data set entries from the machine learning database, particularly based on engineering models and/or data driven machine learning models.

[0019] According to a further embodiment of the workflow deployment system, the computing device is part of a cloud of interconnected remote computing devices, wherein at least the workflow modification process is performed jointly by a plurality of devices of the cloud, particularly wherein the workflow modification process comprises analysing a problem of the first apparatus in performing the first part of the task, and determining a solution for the problem, wherein the computing device has access to a machine learning database comprising data sets related to previously reported problems, wherein analysing the problem and determining the solution is based on data set entries from the machine learning database.

[0020] According to another embodiment of the workflow deployment system, the customized data comprises at least one of modified workflow data and reconfiguration data, wherein the modified workflow data comprises instructions for the first apparatus to perform the first part of the task in a modified way, and the reconfiguration data is adapted to reconfigure the first apparatus for providing functions that allow or improve performing the first part of the task.

[0021] According to yet another embodiment of the workflow deployment system, in the context of the workflow modification process the computing device and/or the first agent is configured to re-assign the first workflow package at least partially to a second apparatus of the plurality of apparatuses, wherein the customized data comprises modified workflow data that is provided at least to a second software agent of the second apparatus. In a particular embodiment the first workflow package is re-assigned to involve at least two cooperating apparatuses that work together to perform the first part of the task, and the customized data is provided to said cooperating apparatuses and comprises reconfiguration data that is adapted to reconfigure at least one of the cooperating apparatuses for providing functions that enable the cooperating apparatuses to work together.

[0022] According to a further embodiment of the workflow deployment system, in the context of the workflow modification process the computing device and/or the first agent is configured to request and receive from the plurality of agents task-specific data of the apparatuses, wherein the task-specific data comprises information about properties, a position and/or a workload that are associated with the respective apparatus, wherein the first workflow package is re-assigned based on the task-specific data.

[0023] In one embodiment of the system, the first apparatus is a measuring device and the first part of the task (1) comprises a measuring task. In particular, the first apparatus can be a geodetic surveying device, industrial measuring device, motorized imaging device or reality capture device, for instance comprising a total station, laser tracker or laser scanner. In a particular embodiment the customized data comprises reconfiguration data that is adapted to reconfigure the first apparatus to adapt a measuring precision and/or a measuring programme speed of the first apparatus.

[0024] In another embodiment of the system, wherein the problem comprises a presence of one or more persons and/or objects in a measurement area of the first apparatus, each object being assigned to at least one person, particularly wherein the presence constitutes an obstruction for the measurement task, the workflow modification process comprises
  • identifying the one or more persons that are present in the measurement area and/or are assigned to at least one object that is present in the measurement area, and
  • sending a notification to an electronic device assigned to each of the identified persons, particularly wherein each notification comprises information about the measurement task and an instruction to leave the measurement area and/or to remove the at least one assigned object from the measurement area.


[0025] According to yet another embodiment of the workflow deployment system, at least one of the software agents is installed on a communication module that is adapted to be connected to one of the electronic apparatuses and to exchange data with the apparatus connected to, wherein each of the communication modules comprises a communication unit adapted to communicate and exchange data with the first communication unit, particularly wherein a communication module with a first software agent is connected to the first apparatus.

[0026] A second aspect of the invention relates to a method for deploying a workflow, the method comprising
  • providing a workflow deployment system, such as a workflow deployment system according to the first aspect of the invention, wherein the workflow deployment system comprises a computing device having a memory unit and a first communication unit, and
  • providing a software agent to each one of a plurality of electronic apparatuses, wherein each software agent is adapted to exchange data with the electronic apparatus and wherein providing the software agent comprises installing a software agent on the apparatus or connecting a communication module to the apparatus, wherein a software agent is installed on the communication module.


[0027] According to this aspect of the invention, the method further comprises
  • providing, at the workflow deployment system, workflow data related to a workflow for performing a task, the workflow involving at least a first apparatus of the plurality of apparatuses and comprising at least a first workflow package for a first part of the task,
  • assigning, by the workflow deployment system, the first workflow package to the first apparatus,
  • providing workflow data related to the first workflow package to the software agent of the first apparatus,
  • monitoring or predicting, by the software agent of the first apparatus, an occurrence of a problem related to performing the first part of the task, and
  • performing, if a problem has occurred or is predicted to occur, a workflow modification process for performing at least the first part of the task in a modified way, the workflow modification process comprising generating customized data related to a modified first workflow package.


[0028] According to one embodiment of the method, the software agent of the first apparatus generates a problem solution request, the request comprising problem information related to the problem, the workflow deployment system receives the request and performs the workflow modification process, in the context of which the computing device generates, based on the problem information, customized data, and the workflow deployment system provides the customized data to the software agent of the first apparatus.

[0029] According to another embodiment the method further comprises
  • generating the workflow for performing the task, the workflow involving one or more of the apparatuses,
  • generating the workflow data for each of the involved apparatuses, the workflow data allowing the respective apparatus to perform a part of the task, and
  • providing the workflow data to the software agents of the involved apparatuses.


[0030] A third aspect of the invention relates to a computer programme product comprising programme code which is stored on a machine-readable medium, or being embodied by an electromagnetic wave comprising a programme code segment, and having computer-executable instructions for performing, in particular when run on a computing device of a system according to the first aspect of the invention, at least the following steps of the method according to the second aspect of the invention:
  • providing workflow data related to a workflow for performing a task, the workflow involving at least a first apparatus of the plurality of apparatuses and comprising at least a first workflow package for a first part of the task,
  • assigning the first workflow package to a first apparatus of the plurality of apparatuses,
  • providing workflow data related to the first workflow package to the software agent of the first apparatus,
  • monitoring, by the software agent of the first apparatus, an occurrence of a problem related to performing the first part of the task, and
  • performing, if a problem has occurred, a workflow modification process for performing at least the first part of the task in a modified way, the workflow modification process comprising generating customized data related to a modified first workflow package.


[0031] The invention in the following will be described in detail by referring to exemplary embodiments that are accompanied by figures, in which:
Fig. 1
shows a first exemplary embodiment of a system according to the invention;
Fig. 2
shows a second exemplary embodiment of a system according to the invention;
Fig. 3
illustrates an exemplary method for generating a workflow;
Fig. 4
illustrates an exemplary embodiment of a method for deploying a workflow according to the invention;
Fig. 5a
illustrates the information stream in an exemplary system for generating a workflow;
Fig. 5b
illustrates the information stream in an exemplary embodiment of a system for deploying a workflow according to the invention;
Fig. 6
shows an exemplary application for generating workflows;
Fig. 7
illustrates an intelligent information platform used together with a system according to the invention; and
Fig. 8
illustrates an exemplary application for a workflow deployment system according to the invention with three measuring devices.


[0032] Figure 1 illustrates an exemplary embodiment of a workflow deployment system 10 according to the invention. The shown system 10 comprises a computing device 20 and three software agents 30a-c (EC), wherein two agents are provided in agent modules 30a-b, each of which being connected to surveying devices 40a-b, and one software agent 30c is installed directly on a user device 45, e. g. as a mobile device application ("app").

[0033] Although the depicted devices 40a-b in these examples are adapted as surveying devices, the agents can also be provided in or at other kind of devices. These can be actuating devices like machine tools, industrial machines, manufacturing robots or construction machinery. Also other kinds of measuring devices than the depicted ones can be used, e. g. reality capture devices, laser trackers or total stations. Also unmanned aerial or ground vehicles (UAV/UGV) comprising surveying or other measuring equipment can be used, e. g. surveying drones or inspection robots.

[0034] The modules 30a-b with the agents installed thereon are connected to external devices 40a-b and adapted to exchange data with the respective connected device. For instance, such a connection might include using a universal serial bus (USB) or other hardware interface or a wireless data connection such as Bluetooth.

[0035] In the shown example, the devices comprise a laser scanning device 40a, a hand-held laser distance meter 40b, and a portable electronic device 45 that is assigned to a certain user. For instance, the portable device 45 can be a smartphone or tablet PC or a wearable such as a smart watch. As device 45 is adapted to allow installing external software or deploying a set of microservices, the respective agent 30c can be provided as a software application directly in the external device 45 instead of being provided in a module that is connectable to the device 45. It is also possible to provide the software by app delivery, e. g. by means of a mobile app that can be used for a certain workflow only or for a multitude of different workflows.

[0036] The computing device 20 comprises a computing unit 22 having a processor, a memory unit 24 adapted for storing data, and a communication unit 26 (e. g. comprising a modem) allowing data interchange with the agents 30a-c.

[0037] Alternatively, the computing device 20 can be embodied by a plurality of devices, with a user device operated by a user and further devices for performing the computing. Also, the application may run in a cloud. The computing device 20 may optionally also be embodied by a cloud or a plurality of devices.

[0038] As shown, the computing device 20 can be connected via the Internet with the remote agent modules 30a-b and the portable device 45 comprising the third agent 30c. This is especially useful, if a direct data transfer is not possible because the devices are positioned at a larger distance from each other, e. g. more than a hundred meters away, or if, for instance, a workflow comprises capturing data of a skyscraper with multiple measuring devices positioned in several stories of the building.

[0039] Alternatively, the computing device 20 and the agents 30a-c can be grouped locally together and connected with each other, for instance wirelessly, e. g. by means of a wireless local area network (WLAN) or by means of mesh networks such as LoRa (Long Range Wide Area Network) or ZigBee or Bluetooth. Also, some devices or modules may be connected via Internet and others connected locally to the computing device 20. Also, devices or modules can have both local and cloud connections.

[0040] The computing device 20 can be a user device such as a personal computer that is operated by a user and comprises input means such as keyboard and mouse for entering or selecting a task to be performed by the devices 40a-b, 45. Alternatively, especially in case of the second embodiment, the computing device 20 can be another portable device (such as the user device 45).

[0041] Task-specific workflows can be deployed on-demand and in a real-time manner to remote devices 40a-b as well as to other software applications or modules that run on the agent modules 30a-b or the second user device 45 and if needed may include human interaction. The workflow may also include coordinating interaction between two or more humans who are part of a specific workflow.

[0042] This allows sending customized on-demand step-by-step workflows to guide one or more users in carrying out a given operation or even allows unguided execution of these workflows. The workflows can comprise instructions for only human, or only machine, or both. It means that advantageously even a novice person can operate complex equipment and can carry out a complex job based on the on-demand workflow.

[0043] For example, a guided workflow on how to measure or layout a given object using any measurement devices (for example, as shown, a scanner 40a and a distance meter 40b) is sent on-demand via a cloud directly to the devices and machines. Advantageously, these workflows can be deployed to the agents in the measuring devices without rebuilding or changing the firmware. The cloud can be in the internet as well as a local cloud setup.

[0044] In addition, a high-level workflow can be sent to a hand-held device 45 of a user if a human input is needed. The input may simply comprise an authorization or a command to start the operation. Additionally, the input may comprise a prioritization of options. In a similar manner, further devices or entities can join the solution to provide additional services in the setup. As an example, an application running on a smart watch can monitor the process and subscribe to the warnings or errors, depending on the system configuration, to alert the user in a real-time manner. Similarly, the same application can be reconfigured in real-time to additionally also track the user. This can be used as part of the solution to provide value-added services like fatigue-monitoring. The wearables (smart watches, AR/VR devices, activity trackers, etc.) can provide a natural extension for edge intelligence platforms to sense and provide data and services to the user. Summarizing, this solution provides all the flexibility to augment an existing solution with new capabilities, to change the behavior of an existing system, or to reconfigure the solution to provide new services.

[0045] Such a high-level workflow can also be sent to multiple human users. For example, a scan measurement where one user is required to move a scanner to the next scanning position while another user gets real-time notifications to remove obstructions while the scan is in progress and yet another human user as a first verifier in the loop before committing the scans to the repository. Advantageously, none of these persons need to be pre-trained for such a complex setup. It is even possible to change the workflow every day without any pre-training of the involved personnel being required.

[0046] For instance, all users in or nearby the area of a scan or other measurement can get a notification on a mobile device to clear and not to enter the affected area for the time approximated for the measurement to be performed.

[0047] Advantageously, the device workflow can be adapted to the knowledge of a user and tailored to specific applications, situations and users. Optionally, a level of education or know-how of the operator can be detected (e. g. by means of machine learning), and workflows can be modified according to local regulations. In addition, the workflows can also be generated dynamically to take into consideration the situation at hand, e. g. capabilities of available devices, device health status, and device failure prediction, etc. Feedback about the quality of the job can be computed in real-time based on the achieved results and on key performance indicators (KPI), e. g. also based on past results or KPI.

[0048] For instance, a step-by-step workflow is sent to the hand-held device 45 of a forensic investigator to accurately and efficiently capture all the relevant details from a crime scene that may also involve different measurement devices 40a-b or other devices necessary to carry out this job. The workflow can be auto-generated based on various factors, e. g. on the nature and location of the crime scene, forensic devices present, technical know-how of the forensic investigator, other persons or agencies involved, etc.

[0049] The workflows mentioned above can be generated locally based on the local inputs to the system 10; they can also be computed in a cloud, optionally being also based on inputs from other sources or on the analytics on the previous and current data, e. g. using digital twin models combining and comparing engineering and data analytics driven approaches.

[0050] A generated workflow can be deployed via the agent modules 30a-c from the cloud to a user device (e. g. a hand-held device 45) and thus to a human, to the measuring devices 40a-b, or to both.

[0051] The workflow may also be deployed only to a user device 45 which controls the other devices 40a-b. For example, the user starts his application in a construction site, the application takes inventory of all available devices and enumerates their capabilities and sends this information to the cloud. The user then enters his wish to carry out a certain action, e. g. check if a building has been built according to the specifications. This input is processed by the cloud/local analytics engine and based on the available devices & resources. A customized workflow is generated and downloaded to the user device 40c which then guides the users, as well as controls the machines, to complete the job at hand.

[0052] In addition to the dynamically deployable workflows, the system may optionally also provide a functionality to orchestrate new functionalities for the devices 40a-c. These new functionalities may comprise e. g. algorithms, fog analytics, control system strategies or safety & security features.

[0053] This is possible e. g. through a combination of publishing of device information and reflection (= "self-description") of the devices' capabilities. The integration of all this information allows the orchestration of algorithms, analytics, etc. with the deployment of new workflows to specific systems. The system can play the role of the orchestrator of many systems with its ability to deploy workflows to other systems. Depending on the situation, one of the agents can also take the role of an orchestrator to manage other agents.

[0054] Also virtual devices can be formed that have capabilities of different devices merged. Devices can learn to understand, group and tailor device functionalities. Other devices can be mimicked. For instance, a total station, such as e. g. the Leica Nova MS60, could mimic the functions of a laser scanner, a handheld distance meter or even a plumb.

[0055] Figure 2 shows a total station 40a as an example of an apparatus that is provided with an agent module 30a to be connected with the computing device 20. The computing device 20 in this embodiment is part of a cloud 21 that runs the application. The cloud provides analytics functionality 25 using a database to allow machine learning, e. g. for automatically providing solutions when problems are reported by the total station 40a, its software agent 30a or its user.

[0056] If a user is out in the field with a device like the total station 40a, applications providing "smartness" to the device are provided within client software on the device itself or on a mobile user device, such as a tablet computer. If the software reaches a point where its "smartness" cannot solve a given task, the device and its user get stuck. If the user is experienced enough, he might be able to solve the problem manually. Otherwise, the task cannot be accomplished or a mistake occurs and is noticed only at a later point in time, if at all. The device can solve the issue only if the software providing the necessary "smartness" is available on the device or tablet.

[0057] In accordance with the present invention, if the device 40a gets stuck at a point while performing a task, it requests analysis from a central computing device 20 or from a cloud computing network 21 (cloud) comprising such computing devices 20. Based on learning from past data or by re-optimizing the overall process according to the new circumstances, the cloud 21 generates a workflow, e. g. a script which simply changes a behaviour of the device.

[0058] The workflow is deployed to the device, the device or tablet software executes the workflow and solves the issue. Successful execution and problem solving is fed back to the cloud 21 as feedback to the workflow. The feedback can then be gathered centrally and re-deployed when similar problems arise. Likewise, unsuccessful problem solving can be fed back as well. Both approaches improve by so-called reinforcement learning the capabilities of the underlying machine learning model to improve the machine learning.

[0059] The cloud 21 provides advanced analytics 25 that interacts with the device or tablet software.

[0060] The presented method for workflow deployment avoids "fat clients" that have a limited capability of solving issues if the installed algorithms reach their end at some point. With the presented method for deploying workflows, instruments in the field can change their behaviour when one algorithm reaches a dead end. A workflow can be deployed to learn and a new workflow can be deployed which solves this issue.

[0061] In one exemplary embodiment, the device is received at the customer, produced from stock and pre-customized for the customer. Once the customer starts the device, he needs to bring it online. The installed software agent 30a requests workflows for configuration of device, and the device is customized in the field.

[0062] In another exemplary embodiment, the system is adapted for machine-to-machine (M2M) task dispatching. On big sites, where several stake out tasks being executed in parallel, if one instance finishes, the others would not recognize this. With the proposed solution, every device would be able to share its work with others, even when offline and having machine-to-machine communication. This would create a Virtual Measurement Instrument as the sum of all sub-capabilities of all the instruments in the field, allowing e. g. prevention of redundancies or enhancing speed in surveying tasks using several scanners, or overall optimization of the usage of the fleet of devices.

[0063] Figure 3 shows a flowchart illustrating an exemplary method 100 for generating a workflow, as already described in the applicant's European patent application EP18155182.1. According to some embodiments, such a method 100 can be a part of or precede a method according to the invention.

[0064] In a first step 110 a task is received, e. g. through a user input in a computing device. This device requests task specific data of a plurality of remote devices from a plurality of connected software agents that provide a functionality or feature set. In this example there are three devices A, B and C, so that the method 100 comprises three steps 121-123 that can be performed basically simultaneously: step 121 requesting task specific data of device A, step 122 requesting task specific data of device B and step 123 requesting task specific data of device C. Subsequently, in steps 131, 132 and 133 the requested task specific data of devices A, B and C is received by the device, and in steps 141, 142 and 143 task-specific abilities of devices A, B and C are assessed by the device. Having assessed all devices' abilities, a workflow can be generated by the device in step 150. Workflow data for each device involved is generated in step 160 and subsequently transmitted to the involved devices in steps 171 and 173. In the shown example, as a result of the ability assessments (steps 141-143), the generated workflow only involves two of the three devices, wherefore only these two need to receive the respective workflow data to perform their part of the task.

[0065] Figure 4 shows a flowchart illustrating an exemplary embodiment of a method 200 for deploying a workflow according to the invention. According to a particular embodiment, the method 100 of Figure 3 may precede this method or be a part thereof.

[0066] In the illustrated embodiment, a workflow package related to a first part of a task is assigned to a first apparatus (step 210). Said apparatus is then provided with respective workflow data that allows the first apparatus to perform the part of the task according to the provided workflow data (step 220). The first apparatus then starts to perform the first part of the task. When the apparatus encounters a problem that it cannot solve, it sends information regarding the problem together with a request for a solution to the computing device (step 230).

[0067] Upon reception of the request, the computing device then performs a workflow modification process (step 240). Using a machine learning database, this process may comprise an analysis of the reported problem and determining a solution for the problem. In response to the request and based on the determined solution, customized data is generated and provided to the apparatus in order to solve the issue (step 250). The customized data can comprise adapted workflow data, e. g. instructions for the first device to perform the first task in a modified way, and/or configuration data, e. g. for reconfiguring the first apparatus for providing functions that allow or improve performing the part of the task.

[0068] At the apparatus, it is then determined whether the problem is solved with the adapted workflow (step 260). Feedback is sent to be used in the machine learning database for future problem analyses, e. g. by use of reinforcement learning.

[0069] If the determined solution comprises that the part of the task where the problem occurred should be partially or completely re-assigned to one or more other apparatuses, the customized data is also provided to these apparatuses.

[0070] Problems that might be determined or predicted by an apparatus for instance comprise a lack of battery power for completely performing the assigned task, obstructions in the working area, such as a mobile object blocking a field of view of a scanning or surveying task, etc.

[0071] Figure 5a illustrates the information stream in a system performing a method according to Figure 3. The computing device 20 receives information about a task 1 to be performed. Consequently, based on task-related device information 4 of available devices, the computing device 20 assesses the available devices' abilities with respect to the task 1 at hand. Optionally, the task-related device information 4 may be requested and received from the available devices.

[0072] Based on the ability assessment, an optimized workflow 55 involving all or some of the devices is calculated by the computing device 20. Workflow data 5 for each of the involved devices is generated that allows the respective device to perform its part of the task 1 as defined in the workflow 55. The workflow data 5 is then transmitted to the involved devices.

[0073] Furthermore, based on the workflow 55 and on the device information 4, the computing device 20 is adapted to generate configuration data 6 for one or more of the involved devices and provided it to the software agents of these devices. This configuration data 6 is adapted to reconfigure the device it is provided to in order to allow performing the part of the task according to the workflow.

[0074] The configuration data need not be generated for all involved devices. Instead, based on the device information 4, the computing unit 22 assesses which device can be reconfigured in which way in order to allow or improve performing a part of the task by the respective device thus improving the workflow.

[0075] Reconfiguration optionally may comprise also configuring a device to comply with company standards and regulations, user limitations, local regulations or environmental conditions.

[0076] If the device is a surveying device, the configuration data 6 for example can reconfigure the surveying device to adapt a measuring precision of the device or a measuring programme speed according to the needs given by the task or by the workflow. For instance, in case of a laser scanner, if a scan with only a low resolution is needed to proceed with the next steps of the workflow, the scanner can be reconfigured to perform the scan faster, thus accelerating the whole workflow.

[0077] If the scanner does not possess the capability required for this workflow, then the computing device 20 can contact the vendor or manufactures and by payment of a given fee, the feature can be activated in the scanner to continue with the workflow. This functionality is described in detail in the European Patent Application No. 17167585.3. Since the system has an overview of the capabilities and measurement speed, given the past metrics, it can potentially also calculate the monetary return (ROI) if a certain new feature needs to be enabled.

[0078] If the workflow involves the cooperation of two or more devices to work together to perform the task or a part of the task, and if these two or more devices are generally not adapted to work together, e. g. due to different manufacturers of the devices resulting in incompatible software standards, the configuration data 6 might reconfigure the devices in such a way that allow them to work together to perform the task.

[0079] If the device information 4 comprises information about a location of the devices, the configuration data optionally can reconfigure the devices to adapt to certain conditions of the location, such as legal regulations effective at that location. These legal regulations may include safety regulations. For instance, the light intensity of the laser of a distance measuring device can be adapted. The regulations may also include patent rights and the configuration data can deactivate certain protected functions of the devices.

[0080] The local conditions can also comprise the use of different systems of units used at different locations. The configuration data then, for instance, can be used to reconfigure all devices involved in the workflow to use the same system of units. Likewise, a standard language in which information is provided to a user of a device can be chosen based on the location, e. g. such that devices depending on language preferences of the user provide information in the most appropriate language.

[0081] Especially if the devices are remote devices, the workflow data 5 and configuration data 6 can be sent encrypted.

[0082] If the device is a machine, the task-related device information 4 comprises information about properties, a position and/or a workload of the machine, and the workflow data 5 comprises machine-readable instructions.

[0083] If the device is a user device, the task-related device information 4 comprises information about the user of the device, e. g. task-related knowledge, and the workflow data 5 comprises instructions for a human.

[0084] Figure 5b illustrates the information stream in an exemplary system according to the invention, performing a method according to Figure 4. In particular, the information stream of Figure 5b can succeed that of Figure 5a.

[0085] The computing device 20 (or the application running in the cloud, respectively) receives feedback 7 from one or more of the devices involved in a certain workflow, wherein a problem with performing a certain work package of the workflow is reported.

[0086] If a certain device performing a task or a part of a task according to an assigned work package gets stuck at a certain point - be it either due to unforeseen occurrences or circumstances, due to lack of a functionality in the device that would be necessary to perform the task according to the assigned work package, or due to a high failure risk calculated by a means of predictive maintenance algorithms - this is detected by the device and reported by sending problem-related data to the computing device 20. In particular, the device itself or a software agent installed thereon or connected thereto is enabled to detect the problem fully automatically. Alternatively or additionally, a user of the device can manually enter the problem request if the problem cannot be solved on-site easily.

[0087] The data related to the problem provided with the feedback is analyzed by the computing device 20, particularly in view of the complete task 1. A modified workflow 56 is generated, in particular using data from a machine learning database (see Figure 4) to allow learning from past problems and solutions. The modified workflow 56 comprises modifications to the original workflow 55 that can be either restricted to the work package in which the reported problem occurred or can affect also other work packages and even the complete workflow.

[0088] The modifications of the modified workflow 56 can affect all or some of the devices involved in the original workflow 55. Modified workflow data 8 for each of the affected devices is generated that allows the respective device to perform its part of the task 1 as defined in the modified workflow 56. The modified workflow data 8 is then transmitted to the affected devices.

[0089] Furthermore, based on the modified workflow 56 - and particularly also on device information 4 of the affected devices - the computing device 20 is adapted to generate re-configuration data 9 for one or more of the devices affected by the modifications and provides it to the software agents of these devices. This re-configuration data 9 is adapted to reconfigure the device it is provided to in order to allow performing the part of the task according to the modified workflow 56.

[0090] The re-configuration data 9 need not be generated for all involved devices. Instead, the computing device 20 assesses which device needs to be reconfigured in order to perform the task according to its work package assigned in the modified workflow 56.

[0091] The modified workflow, for instance, might comprise that the device reporting the problem receives a script as reconfiguration data 9, the script changing the device's behaviour to allow performing the task. Alternatively, a second device might receive modified workflow data 8 comprising the task to perform a part of the task that was originally assigned to the reporting device.

[0092] If a reconfigured device is a surveying device, the re-configuration data 9 for example can reconfigure the surveying device to adapt a measuring precision of the device or a measuring programme speed in view of the reported problem and the overall workflow requirements.

[0093] For instance, in case of a laser scanner, if circumstances prevent performing a scan in a given time as planned according to the original workflow 55, the scanner can be reconfigured to perform the scan with less precision but faster, to meet the demands of the whole workflow. If this is not possible, the whole workflow can be modified, e. g. by shifting more scanning devices to the task of the reporting device.

[0094] If the scanner does not possess the capability required for the modified workflow 56, then the computing device 20 can contact the vendor or manufactures and by payment of a given fee, the feature can be activated in the scanner to continue with the modified workflow. Since the system has an overview of the capabilities and measurement speed, given the past metrics, it can potentially also calculate the monetary return (ROI) if a certain new feature needs to be enabled.

[0095] Figure 6 shows an exemplary embodiment of an application 50 with several software agents provided in agent modules 30a-d connected to devices 40a-d and connected together using a service bus 52. A system according to the invention can comprise several agent modules 30a-d connected together using a service bus or a system and data integration software such as EdgeFrontier® (EF) of Intergraph Corporation. Applicable integration tools to be used with the application are generally known in the art and disclosed e. g. in the documents EP 3156898 A1, US 7,735,060 B2, US 2008/0005287 A1, and US 2008/0010631 A1.

[0096] The application 50 may run one or more workflows (WF) as described by a user using a descriptive language like XML or JSON and programming languages like Java Script and Python. These workflows are decomposed into simpler workflows 55 (WF1, WF2.1, WF2.2, WF3.1, WF3.2, ...) that can run on individual modules based on a dependency-tree analysis. This analysis works on the principle that if a workflow meets all of its dependencies in a given agent module 30a-d, then it should run locally there. However, if all the dependencies are not met in one module, then a part of the workflow will run at a higher level shown as the service bus 52.

[0097] The dependency-tree analysis does not need to be limited to only two levels (module and service bus). In fact, this principle targets the local-most possible execution of the logic in the workflows. If a workflow can run on the module, it will do so. If it needs information from several modules, then these modules can self-coordinate with each other to execute it. In this case the dependencies are expanded to include all of them and exclude all others. Finally, an enterprise service bus can be used if all of the underlying modules are needed as dependencies.

[0098] Alternatively, for instance if according to any pre-defined metric it would be more efficient, the logic can be run at the service bus level even though the dependencies are met at any level below it.

[0099] Although a server bus is shown in this Figure, in other embodiments, the software agents provided in agent modules 30a-d can also be connected directly to the application 50. Particularly, one of the modules 30a-d can be responsible for creating workflows, decomposing and dispatching them. Other embodiments comprise a combination of the two approaches, e. g. so that data can flow through the service bus 52 or directly via the agents to the application 50.

[0100] If the modules self-coordinate with each other to execute a workflow in a distributed setup there can be an elected master of the workflow that will be responsible for the workflow. This master can be automatically replaced with another module, e. g. if the master goes down because of an anomalous condition.

[0101] Figure 7 illustrates an intelligent information platform that can be used together with a system according to the invention and in some embodiments forms a part of the system according to the invention. In general, such a platform is described e. g. in the document EP 3 156 898 A1. The intelligent information platform provides a fully configurable distributed ERP-like (ERP = enterprise resource plan) information processing platform 60 that routes the information, based on certain rules and policies to a centralized decision-making engine 62.

[0102] Figure 8 illustrates an example of use of a workflow deployment system according to the invention. Three measuring devices are depicted, which in this example are embodied as total stations 40a-c. Software agents of a workflow deployment system (not shown here) according to the invention are assigned to each of the devices 40a-c.

[0103] Initially, a first total station 40a sequentially measures four targets 80 according to a local instruction set on the device, whereas a second total station 40b is idle and a third total station 40c performs another task.

[0104] Then an event occurs that effects the line of sight from the first total station 40a to one or more of the targets 80 to be blocked by an obstacle. For instance, a vehicle or other piece of equipment is moved between total station 40a and targets 80. Alternatively, moving obstacles constitute an obstruction that generally allows performing the measurement task but delays it unacceptably. For instance, such obstruction can be persons or cars that are constantly moving on a path or road between total station 40a and targets 80.

[0105] As the three total stations - by means of their software agents - are connected to the workflow deployment system, the first total station 40a "knows" that the third total station 40c - although capable to perform the task - at present is occupied with another task. Alternatively, information about availability and capability to perform the task or a part thereof can be requested when the problem is detected.

[0106] In this example the second total station 40b is available and capable to take over the task of the first total station 40a. Via the software agents, instructions can be sent from the first total station 40a to the second total station 40b so that the latter takes over the task and measures the distances to the targets 80 that are blocked for the first total station 40a.

[0107] If the second total station 40b is not capable to take over the task, the first total station 40a determines whether its task is prioritized over the task performed by the third total station 40c. In this case, the instructions will be sent to the third total station 40c so that the latter interrupts its present task and measures the distances to the targets 80 that are blocked for the first total station 40a. Further, it can be determined whether the first and/or second total stations 40a-b are capable to perform the original task of the third total station 40c. Then, instructions can be sent via the software agents from the third total station 40c to the first and/or second total stations 40a-b.

[0108] The same example applies to a setup with other measuring or surveying devices, e. g. three laser trackers or laser scanners.

[0109] If the obstructions are persons, particularly staff, these persons can be sent a notification to leave the area. If the obstructions are equipment or other objects assigned to a particular person, this person can be sent a notification to remove the object(s) from the area. The notification can be sent to a mobile device assigned to the person, e. g. a smartphone or other personal device.

[0110] The mobile device also can be a device especially designed for use with the workflow deployment system and for the purpose of receiving these notifications. It can be equipped with a position sensing device and transmit its position to the system.

[0111] The notification may further comprise information about extent of the measurement area that is to be kept clear and information about an expected duration of the measurement.

[0112] Every job (i.e. a set of measurement tasks) is created and deployed from the cloud to a device in the field. This job is created based on the task itself and the available device capabilities, and based on environment conditions (comprising e. g. temperature, vibration or lighting conditions). Once the job is deployed, the connected devices are aware of each other and can - for instance in case of a blocking situation as shown in Figure 8 - transfer the job to other devices depending on their availability and capability. The transfer can be performed either via the cloud or directly from machine to machine, i.e. without cloud interaction.

[0113] Before machines send jobs to other machines, they request the devices' capabilities. If necessary, the job can be adapted to the target machine.

[0114] A job can also be transferred partially, e. g. if only one line of sight is blocked, but the other targets 80 still can be measured by the first device 40a. A second device 40b then would measure only the blocked targets and send the result back to the first device 40a - taking into account its different position in relation to the object.

[0115] Although the invention is illustrated above, partly with reference to some preferred embodiments, it must be understood that numerous modifications and combinations of different features of the embodiments can be made. All of these modifications lie within the scope of the appended claims.


Claims

1. Workflow deployment system (10), comprising

- at least one computing device (20) having a memory unit (24) and a first communication unit (26), and

- a plurality of software agents (30a-d) that are adapted to be used with a plurality of electronic apparatuses (40a-d),

wherein each software agent (30a-d) is

- installable on an electronic apparatus (40a-d) of the plurality of electronic apparatuses (40a-d) or

- installed on a communication module that is adapted to be connected to one of the electronic apparatuses (40a-d) and to exchange data with the apparatus (40a-d) connected to,

wherein each software agent (30a-d) is adapted to exchange data with the electronic apparatus (40a-d) it is installed on or connected to,
characterized in that
the memory unit (24) is adapted to store workflow data (5) related to a workflow (55) for performing a task (1), the workflow (55) involving at least a first apparatus (40a) of the plurality of apparatuses (40a-d) and comprising at least a first workflow package for a first part of the task (1), wherein

- the computing device (20) is adapted to assign (210) the first workflow package to the first apparatus (40a), and to provide workflow data (5) related to the first workflow package to a first software agent (30a) of the first apparatus (40a), and

- the first software agent (30a) is adapted to monitor and/or predict the occurrence of a problem that incapacitates the first apparatus (40a) to perform the first part of the task (1),

wherein, if the occurrence of a problem is detected or predicted, the system (10) is adapted to perform (240) a workflow modification process for performing at least the first part of the task (1) in a modified way, the workflow modification process comprising generating customized data (8, 9) related to a modified first workflow package.
 
2. System (10) according to claim 1,
characterized in that
the computing device (20) is adapted

- to generate the workflow (55) for performing the task (1), the workflow (55) involving one or more of the apparatuses (40a-d),

- to generate the workflow data (5) for each of the involved apparatuses (40a-d), the workflow data (5) allowing the respective apparatus (40a-d) to perform a part of the task, and

- to provide the workflow data (5) to the software agents (30a-d) of the involved apparatuses (40a-d).


 
3. System (10) according to claim 1 or claim 2,
characterized in that
the first software agent (30a) is adapted to generate a problem solution request (7) related to the detected or predicted problem, wherein the computing device (20) is adapted

- to receive (230) the problem solution request (7) from the first software agent (30a),

- to perform (240) the workflow modification process upon reception of the request (7), wherein the computing device (20) is adapted to generate the customized data (8, 9) based on the request (7), and

- to provide (250) the customized data (8, 9) at least to the first software agent (30a).


 
4. System (10) according to any one of the preceding claims,
characterized in that
in the context of the workflow modification process the computing device (20) and/or the first software agent (30a) is adapted

- to analyse the problem of the first apparatus (40a),

- to determine a solution for the problem, and

- to generate the customized data (8, 9) based on the solution,

in particular wherein the system (10) has access to a machine learning database comprising data sets related to previously reported problems, wherein analysing the problem and determining the solution is based on data set entries from the machine learning database, particularly based on engineering models and/or data driven machine learning models.
 
5. System (10) according to any one of the preceding claims,
characterized in that
the computing device (20) is part of a cloud (21) of interconnected remote computing devices, wherein at least the workflow modification process is performed jointly by a plurality of devices of the cloud (21), particularly wherein the workflow modification process comprises analyzing a problem of the first apparatus (40a) in performing the first part of the task (1), and determining a solution for the problem, wherein the computing device (20) has access to a machine learning database comprising data sets related to previously reported problems, wherein analysing the problem and determining the solution is based on data set entries from the machine learning database.
 
6. System (10) according to any one of the preceding claims,
characterized in that
the customized data comprises at least one of modified workflow data (8) and reconfiguration data (9), wherein

- the modified workflow data (8) comprises instructions for the first apparatus (40a) to perform the first part of the task (1) in a modified way, and

- the reconfiguration data (9) is adapted to reconfigure the first apparatus (40a) for providing functions that allow or improve performing the first part of the task (1).


 
7. System (10) according to any one of the preceding claims,
characterized in that
in the context of the workflow modification process the computing device (20) and/or the first agent (30a) is configured to re-assign the first workflow package at least partially to a second apparatus of the plurality of apparatuses (40a-d), wherein the customized data comprises modified workflow data (9) that is provided at least to a second software agent of the second apparatus, particularly wherein

- the first workflow package is re-assigned to involve at least two cooperating apparatuses that work together to perform the first part of the task (1), and

- the customized data is provided to said cooperating apparatuses and comprises reconfiguration data (9) that is adapted to reconfigure at least one of the cooperating apparatuses for providing functions that enable the cooperating apparatuses to work together.


 
8. System (10) according to claim 7,
characterized in that
in the context of the workflow modification process the computing device (20) and/or the first agent (30a) is configured to request and receive from the plurality of agents (30a-d) task-specific data (4) of the apparatuses (40a-d), wherein the task-specific data (4) comprises information about properties, a position and/or a workload that are associated with the respective apparatus, wherein the first workflow package is re-assigned based on the task-specific data (4).
 
9. System (10) according to any one of the preceding claims,
characterized in that
the first apparatus (40a) is a measuring device and the first part of the task (1) comprises a measuring task, particularly wherein

- the first apparatus (40a) is a geodetic surveying device, industrial measuring device, motorized imaging device or reality capture device, in particular comprising a total station, laser tracker or laser scanner; and/or

- the customized data comprises reconfiguration data (9) that is adapted to reconfigure the first apparatus (40a) to adapt a measuring precision and/or a measuring programme speed of the first apparatus.


 
10. System (10) according to claim 9, wherein the problem comprises a presence of one or more persons and/or objects in a measurement area of the first apparatus (40a), each object being assigned to at least one person, particularly wherein the presence constitutes an obstruction for the measurement task,
characterized in that
the workflow modification process comprises

- identifying the one or more persons that are present in the measurement area and/or are assigned to at least one object that is present in the measurement area, and

- sending a notification to an electronic device assigned to each of the identified persons, particularly wherein each notification comprises information about the measurement task and an instruction to leave the measurement area and/or to remove the at least one assigned object from the measurement area.


 
11. System (10) according to any one of the preceding claims,
characterized in that
at least one of the software agents (30a-d) is installed on a communication module that is adapted to be connected to one of the electronic apparatuses (40a-d) and to exchange data with the apparatus (40a-d) connected to, wherein each of the communication modules comprises a communication unit adapted to communicate and exchange data with the first communication unit (26), particularly wherein a communication module with a first software agent (30a) is connected to the first apparatus (40a).
 
12. Method (200) for deploying a workflow, comprising

- providing a workflow deployment system (10), particularly a workflow deployment system (10) according to any one of the preceding claims, wherein the workflow deployment system (10) comprises a computing device (20) having a memory unit (24) and a first communication unit (26), and

- providing a software agent (30a-d) to each one of a plurality of electronic apparatuses (40a-d), wherein each software agent (30a-d) is adapted to exchange data with the electronic apparatus and wherein providing the software agent (30a-d) comprises

- installing a software agent (30a-d) on the apparatus (40a-d) or

- connecting a communication module to the apparatus (40a-d), wherein a software agent (30a-d) is installed on the communication module,

characterized in that
the method further comprises

- providing, at the workflow deployment system, workflow data (5) related to a workflow (55) for performing a task (1), the workflow (55) involving at least a first apparatus of the plurality of apparatuses (40a-d) and comprising at least a first workflow package for a first part of the task,

- assigning (210), by the workflow deployment system, the first workflow package to the first apparatus,

- providing workflow data (5) related to the first workflow package to the software agent (30a) of the first apparatus (40a),

- monitoring and/or predicting, by the software agent (30a) of the first apparatus (40a), an occurrence of a problem related to performing the first part of the task (1), and

- performing, if a problem has occurred or is predicted to occur, a workflow modification process for performing at least the first part of the task (1) in a modified way, the workflow modification process comprising generating customized data (8, 9) related to a modified first workflow package.


 
13. Method (200) according to claim 12,
characterized in that

- the software agent (30a) of the first apparatus (40a) generates a problem solution request (7), the request comprising problem information related to the problem,

- the workflow deployment system receives (230) the request and performs (240) the workflow modification process, in the context of which the computing device (20) generates, based on the problem information, customized data, and

- the workflow deployment system provides (250) the customized data to the software agent of the first apparatus.


 
14. Method (200) according to claim 12 or claim 13,
characterized in that
the method further comprises

- generating the workflow (55) for performing the task (1), the workflow (55) involving one or more of the apparatuses (40a-d),

- generating the workflow data (5) for each of the involved apparatuses (40a-d), the workflow data (5) allowing the respective apparatus (40a-d) to perform a part of the task (1), and

- providing the workflow data (5) to the software agents (30a-d) of the involved apparatuses (40a-d).


 
15. Computer programme product comprising programme code which is stored on a machine-readable medium, or being embodied by an electromagnetic wave comprising a programme code segment, and having computer-executable instructions for performing, in particular when run on a computing device (20) of a system (10) according to any one of claims 1 to 11, at least the following steps of the method according to one of the claims 12 to 13:

- providing workflow data (5) related to a workflow (55) for performing a task (1), the workflow (55) involving at least a first apparatus of the plurality of apparatuses (40a-d) and comprising at least a first workflow package for a first part of the task,

- assigning (210) the first workflow package to a first apparatus of the plurality of apparatuses (40a-d),

- providing workflow data (5) related to the first workflow package to the software agent (30a) of the first apparatus (40a),

- monitoring, by the software agent (30a) of the first apparatus (40a), an occurrence of a problem related to performing the first part of the task (1), and

- performing, if a problem has occurred, a workflow modification process for performing at least the first part of the task (1) in a modified way, the workflow modification process comprising generating customized data (8, 9) related to a modified first workflow package.


 




Drawing



















Search report






Search report




Cited references

REFERENCES CITED IN THE DESCRIPTION



This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

Patent documents cited in the description