A method for inspection and a robot for inspection based on concurrent execution of actions
Patent Information
- Application Number
- CN202311623957.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-11-30
- Publication Date
- 2026-09-25
- Estimated Expiration
- 2043-11-30
AI Technical Summary
但是,由于机器人巡检任务是个大量动作调度执行的过程,传统的并发执行技术难以满足复杂的机器人巡检业务场景,存在以下问题需要解决:1、机器人的动作有不同类型,如:静态动作(拍照,录像,图像识别等)、动态动作(机器人行走,云台旋转等),传统的并发执行技术无法做到不同类型的动作并发执行,并保证相互之间不会有影响
[0019]有益效果:本发明提供一种基于动作并发执行的巡检方法及巡检机器人,是一种高效并发巡检方法,通过将动作命令按优先级划分,在同一个巡检点内,实现高于或等于当前优先级的动作可以同时并发执行,各动作命令的优先级可以根据实际需要,支持动态灵活配置;同时约定优先级最高的动作依然采用串行执行方式,兼顾了某些动作必须串行执行的场景。同时,调度引擎每次只取一个动作组执行,各动作组之间相互独立,针对动作组内的所有动作,并兼容串行执行方式、兼顾串行执行场景,既保证动作执行顺序不会紊乱,巡检点之间不会有冲突影响,又能缩短巡检整体耗时、大幅提高巡检效率,单线程无锁实现方式,内部数据交互、管理与资源共享高效便捷。
Smart Images

Figure CN117921687B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the technical field of inspection methods for inspection robots, specifically to an inspection method and inspection robot based on concurrent execution of actions. Background Technology
[0002] With the rapid development of industries such as power, communications, and transportation, inspection robots are being used more and more widely in various fields. Inspection robots can automatically detect, diagnose, and restore equipment, pipelines, and lines without human intervention, greatly improving the efficiency and accuracy of equipment maintenance. However, for some application scenarios, the inspection window is relatively limited, requiring the robot to complete the entire inspection task within a specified time, placing high demands on the robot's inspection efficiency. When creating robot inspection tasks, existing implementations typically pre-arrange action commands in a fixed order to ensure that robot action execution does not become disordered, and then these commands are executed sequentially in the scheduling engine. For example, audio analysis can only be performed after audio recording is completed; video recording can only be performed after audio analysis is completed, and then video analysis can only follow.
[0003] While this fixed-sequence task orchestration method makes the business process clear and explicit, the sequential execution of each action command means that the next command can only be executed after the previous one has finished. Since an inspection task often includes multiple inspection points, and each inspection point is bound to multiple inspection objects, the overall inspection task time can become excessively long, severely impacting inspection efficiency and user experience. For example, consider an inspection point within an inspection task; the inspection process for that point might be as follows: Figure 1 As shown (assuming the time spent on the green commands before preparation is ignored, among the blue commands: taking a photo takes 1 second, recording video takes 10 seconds, and recording audio takes 15 seconds; the yellow commands are executed in the background and take no time). If executed sequentially as usual, each action command must be executed in order (not considering the time spent on the green commands), the entire process takes 26 seconds, which is quite long overall.
[0004] To address the time-consuming nature of serial execution, one approach is to shorten inspection time and improve efficiency through concurrent execution of action commands. However, since robot inspection tasks involve scheduling and executing a large number of actions, traditional concurrent execution techniques struggle to meet the demands of complex robot inspection scenarios, presenting the following challenges: 1. Robot actions vary, including static actions (taking photos, recording videos, image recognition, etc.) and dynamic actions (robot walking, gimbal rotation, etc.). Traditional concurrent execution techniques cannot execute different types of actions concurrently without interfering with each other. For example, a robot cannot walk and rotate its gimbal simultaneously while taking photos; it must only take photos after reaching its designated position. 2. For interdependent actions, it's impossible to ensure that dependent actions are executed first based on their execution order. For example, image recognition must wait until photos are taken before it can proceed. 3. An inspection task typically consists of multiple inspection points and actions. Effective management of concurrent execution of actions at different inspection points is difficult, leading to conflicts between inspection points and overall task execution disorder. For example, each inspection point is located in a different position, and the robot can only inspect one point at a time. Summary of the Invention
[0005] Purpose of the invention: The purpose of this invention is to address the shortcomings of existing technologies by providing an inspection method based on concurrent action execution, which can significantly shorten the overall time of robot inspection tasks and improve inspection efficiency.
[0006] Meanwhile, the present invention also provides an inspection robot based on concurrent action execution to solve the above problems.
[0007] Technical solution: This invention provides an inspection method based on concurrent action execution, which is carried out according to the following steps:
[0008] S1. The inspection task includes multiple independent inspection points. Each inspection point is bound to one or more inspection objects. An inspection object is broken down into one or more action commands with an execution order. All action commands contained in each inspection point form an action group.
[0009] S2. Set priority numbers for action commands within the action group, and set the scheduling mode in the scheduling engine to serial execution and concurrent execution;
[0010] S3. When the scheduling engine performs scheduling, if the priority number of the action command to be executed is the highest priority, the scheduling mode is to select serial execution.
[0011] If the priority number of the action command to be executed is not the highest priority, the scheduling mode is selected to execute concurrently. The scheduling engine traverses the action group to which the action command to be executed belongs, and the action commands that meet the following conditions are executed concurrently: (1) the execution order of the action command is after the action command to be executed; (2) the priority of the action command is higher than or equal to the priority of the action command to be executed.
[0012] S4. The scheduling engine executes step S3, traversing all action commands within the action group to complete the inspection of an inspection object.
[0013] A further limitation of the technical solution of the present invention is that the action command in step S1 is set with three or more states, wherein the first state is: start; the last state is end; one state of the action command is the smallest execution unit executed each time in the scheduling, and after the current state is completed, it switches to the next state to continue execution.
[0014] Furthermore, in step S3, when the scheduling engine performs scheduling, if the action command to be executed is already in the last state, the scheduling engine will skip the action command.
[0015] Furthermore, in step S3, when action commands are executed concurrently,
[0016] If action command 1, which is executed earlier in the execution order, is completed before action command 2, then after action command 1 is completed, the scheduling engine pointer will point to action command 2 and continue to execute the unfinished action command 2 until all concurrent action commands are completed.
[0017] If action command 1, which is executed earlier in the execution order, is completed later than action command 2, then after action command 2 is completed, the scheduling engine pointer will point to action command 1. After action command 1 is completed, the scheduling engine pointer will continue to point to action command 2. Once action command 2 is identified as the last state, the scheduling engine will switch to executing other action commands that are executed later in the execution order until all concurrent action commands are completed.
[0018] In addition, the present invention also provides an inspection robot based on concurrent action execution that performs the above-described method.
[0019] Beneficial Effects: This invention provides an inspection method and robot based on concurrent action execution. It is a highly efficient concurrent inspection method that divides action commands by priority, allowing actions with priorities higher than or equal to the current priority to be executed concurrently within the same inspection point. The priority of each action command can be dynamically and flexibly configured according to actual needs. Simultaneously, it stipulates that the highest priority action still uses a serial execution method, accommodating scenarios where certain actions must be executed serially. Furthermore, the scheduling engine executes only one action group at a time, with each action group operating independently. It handles all actions within an action group, supporting both serial execution and scenarios requiring serial execution. This ensures that the action execution order is not disordered and there are no conflicts between inspection points, while also shortening the overall inspection time and significantly improving inspection efficiency. The single-threaded, lock-free implementation ensures efficient and convenient internal data interaction, management, and resource sharing. Attached Figure Description
[0020] Figure 1 This is the traditional serial scheduling execution process in the background technology of this invention;
[0021] Figure 2 This is a framework diagram of the inspection tasks in an inspection method based on concurrent execution of actions;
[0022] Figure 3 This is a detailed diagram of the components of the inspection objects in the inspection method based on concurrent execution of actions;
[0023] Figure 4 This is a state framework diagram of action commands in an inspection method based on concurrent execution of actions;
[0024] Figure 5 This is a flowchart of the scheduling engine executing action A in the inspection method based on concurrent action execution;
[0025] Figure 6 This is the process of the scheduling engine executing action BCD in scenario 1 of the embodiment. Figure 1 ;
[0026] Figure 7 This is the process of the scheduling engine executing action BCD in scenario 1 of the embodiment. Figure 2 ;
[0027] Figure 8 This is an execution flowchart of the method of the present invention applied to an inspection point according to an embodiment;
[0028] Figure 9 This is a modified execution flowchart of the method of the present invention applied to an inspection point in an embodiment. Detailed Implementation
[0029] The technical solution of the present invention will be described in detail below with reference to the accompanying drawings, but the scope of protection of the present invention is not limited to the embodiments described.
[0030] Example 1: This example provides an inspection method based on concurrent execution of actions and an inspection robot using this method. Without changing the original programming order, by dividing action commands according to priority, actions with a priority higher than or equal to the current priority can be executed concurrently within the same inspection point. At the same time, it is agreed that the highest priority action will still be executed serially, taking into account scenarios where some actions must be executed serially.
[0031] The following are the detailed steps of the inspection method based on concurrent action execution:
[0032] S1. The inspection task includes multiple independent inspection points. Each inspection point is bound to one or more inspection objects. An inspection object is broken down into one or more action commands with an execution order. All action commands contained in each inspection point form an action group.
[0033] In this embodiment, in the robot's specific inspection operations, the multiple inspection points corresponding to the inspection task and the multiple inspection objects bound to each inspection point are basically composed as follows: Figure 2 As shown, examples include objects photographed in visible light, objects recognized in images, and objects analyzed in audio.
[0034] An inspection object is broken down into one or more action commands. For example, an image recognition object consists of a visible light photography action command and an image recognition action command. Therefore, for an inspection point, it is ultimately composed of numerous action commands, forming an action group, such as... Figure 3 As shown.
[0035] Simultaneously, the action command sets three or more states, and sets a maximum number of executions for each state. When a state is successfully executed or the number of executions exceeds a threshold, it proceeds to the next state. The first state is "Start," and the last state is "End." Each state of the action command represents the smallest execution unit in the scheduling process. A state can be executed once or multiple times. Only after the current state is successfully executed or the number of executions exceeds the set threshold will it switch to the next state to continue execution; otherwise, the scheduling engine will re-execute the current state.
[0036] In this embodiment, three simple states are used as examples: start, execution, and end. Figure 4As shown, state 1: Start, performing preparatory operations such as data initialization; state 2: Execution, performing specific actions such as taking photos, recording videos, and recording audio; state 3: End, performing cleanup operations such as resource release and data persistence. Each action command starts from the start state, and after the current state is completed, it switches to the next state to continue execution, eventually entering the end state. If an action command is already in the end state, the scheduling engine will skip that action.
[0037] S2. Set a priority number for each action command within the action group, and set the scheduling mode in the scheduling engine to serial execution and concurrent execution.
[0038] In this embodiment, action commands are assigned priority numbers, with lower priority numbers indicating higher priority levels. When the priority number of an action command is 0, it represents the highest priority level.
[0039] S3. When the scheduling engine performs scheduling, if the priority number of the action command to be executed is the highest priority, the scheduling method is to execute it serially. In this embodiment, when the priority number of an action command is 0, the scheduling will be done serially, and only that action can be executed at the current moment. Only after that action is completed can subsequent actions be executed.
[0040] If the priority number of the action command to be executed is not the highest priority, the scheduling mode is selected to execute concurrently. The scheduling engine traverses the action group to which the action command to be executed belongs, and the action commands that meet the following conditions are executed concurrently: (1) the execution order of the action command is after the action command to be executed; (2) the priority of the action command is higher than or equal to the priority of the action command to be executed.
[0041] When the scheduling engine performs scheduling, if the action command to be executed is already in the last state, the scheduling engine will skip the action command.
[0042] In this embodiment, it is assumed that the original serial action group consists of 4 action commands, namely A->B->C->D, which are executed sequentially. Using an efficient concurrent execution method, the actions are first divided according to priority, such as: A(0), B(1), C(1), D(2).
[0043] The scheduling engine first executes action command A. Because action command A has a priority of 0 and its concurrent execution attribute is disabled, the scheduling engine does not consider whether subsequent actions within this action command group are executed concurrently; at any given moment, only action command A can be executed alone. Only after action command A has been completed will the next action command B be executed, and the execution flow is as follows. Figure 5 As shown.
[0044] When executing action command B, according to the principle that "action commands with a priority higher than or equal to the current priority can be executed concurrently," the scheduling engine iterates through all actions following action command B within the action group. As long as the priority of the action is higher than or equal to the priority of action command B, it will be executed concurrently. Therefore, action command C will be executed concurrently with action command B.
[0045] When action commands are executed concurrently, if action command 1, which is executed earlier in the execution order, is completed before action command 2, which is executed later in the execution order, then after action command 1 is completed, the scheduling engine pointer will point to action command 2 and continue executing the unfinished action command 2 until all concurrent action commands are completed. If action command 1, which is executed earlier in the execution order, is completed after action command 2, then after action command 2 is completed, the scheduling engine pointer will point to action command 1. After action command 1 is completed, the scheduling engine pointer will continue to point to action command 2, recognize that the state of action command 2 is the last state, and switch to executing other action commands that are executed later in the execution order until all concurrent action commands are completed.
[0046] In this embodiment, action command C and action command B are executed concurrently, resulting in two possible execution outcomes:
[0047] Scenario 1: If action command B is completed before action command C, the scheduling engine pointer will point to action command C and continue executing the incomplete action command C. Only after action command C is completed will the scheduling engine pointer point to action command D and continue executing action command D.
[0048] Scenario 2: If action command B is executed later than action command C, then after action command C completes, the scheduling engine pointer will still point to action command B, and execution of action command B will continue. After action command B completes, the scheduling engine pointer will point to action command C, but by then action command C has already completed, and the scheduling engine pointer will immediately point to the next action command D, and execution of action command D will continue. Taking Scenario 1 as an example, the execution flow of actions B and C is as follows: Figure 6 and Figure 7 As shown.
[0049] S4. The scheduling engine executes step S3, traversing all action commands within the action group to complete the inspection of an inspection object.
[0050] Based on the above approach, the inspection robot employing a concurrent action execution-based inspection method sets the action commands "robot walking," "gimbal rotation," and "camera magnification and focus adjustment" to priority -P0; "take photo," "record video," and "record audio" to priority -P1; "image recognition" to priority -P2; "video recognition" to priority -P3; and audio recognition to priority -P4. Simultaneously, without altering the original sequence of action commands, the overall process for a single inspection point is as follows: Figure 8 As shown.
[0051] Compared to the serial execution process, the modified execution process, which adopts an efficient concurrent execution method, is as follows: Figure 9 As shown, commands with a priority higher than or equal to the current priority will be executed concurrently. That is, after the "camera magnification and focus adjustment" command is completed, the "take a picture," "record video," and "record audio" actions will be executed simultaneously. The final execution time for this part is the time taken by the last action command to complete. After the "take a picture" action is completed, the scheduling engine will immediately execute the next "image recognition" action according to the pre-arranged order, without waiting for "record video" and "record audio" to complete. While executing "image recognition," the unfinished "record video" and "record audio" actions will continue to be executed concurrently, making the entire task execution more intelligent and rational. If the process order remains unchanged (excluding the time taken by green commands), the overall execution time is only 15 seconds, saving 11 seconds compared to serial execution. Especially when the inspection task contains many inspection objects, the overall inspection time will be significantly shortened, and the inspection efficiency will be greatly improved.
[0052] As described above, although the invention has been shown and described with reference to specific preferred embodiments, it should not be construed as limiting the invention itself. Various changes in form and detail may be made without departing from the spirit and scope of the invention as defined in the appended claims.
Claims
1. A patrol inspection method based on concurrent action execution, characterized in that, Follow these steps: S1. The inspection task includes multiple independent inspection points. Each inspection point is bound to one or more inspection objects. An inspection object is broken down into one or more action commands with an execution order. All action commands contained in each inspection point form an action group. The action command described in step S1 has three or more states, where the first state is "start" and the last state is "end". Each state of the action command is the smallest execution unit in the scheduling process. After the current state is completed, the execution switches to the next state to continue. S2. Set priority numbers for action commands within the action group, and set the scheduling mode in the scheduling engine to serial execution and concurrent execution; S3. When the scheduling engine performs scheduling, if the priority number of the action command to be executed is the highest priority, the scheduling mode is to select serial execution. In step S3, when the scheduling engine performs scheduling, if the action command to be executed is already in the last state, the scheduling engine will skip the action command. If the priority number of the action command to be executed is not the highest priority, the scheduling mode is selected to execute concurrently. The scheduling engine traverses the action group to which the action command to be executed belongs, and the action commands that meet the following conditions are executed concurrently: (1) the execution order of the action command is after the action command to be executed; (2) the priority of the action command is higher than or equal to the priority of the action command to be executed. In step S3, when action commands are executed concurrently, If action command 1, which is executed earlier in the execution order, is completed before action command 2, then after action command 1 is completed, the scheduling engine pointer will point to action command 2 and continue to execute the unfinished action command 2 until all concurrent action commands are completed. If action command 1, which is executed earlier in the execution order, is completed later than action command 2, then after action command 2 is completed, the scheduling engine pointer will point to action command 1. After action command 1 is completed, the scheduling engine pointer will continue to point to action command 2. Once action command 2 is identified as the last state, the scheduling engine will switch to executing other action commands that are executed later in the execution order until all concurrent action commands are completed. S4. The scheduling engine executes step S3, traversing all action commands within the action group to complete the inspection of an inspection object.
2. An inspection robot that performs the method of claim 1.
Citation Information
Patent Citations
Wind power plant booster station equipment inspection method
CN113778091A
Systems and methods for assigning priority to jobs in a reporting system
US7509671B1