State machine for dynamic path planning

By dynamically planning the robot path through a state machine controller and using sensors to detect obstacles and adjust the speed and path, the collision problem caused by obstacles in the robot's workspace is solved, and the flexibility and safety of the robot's operation are improved.

CN112828880BActive Publication Date: 2025-10-17FANUC LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202011301864.9
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-11-22
Filing Date
2020-11-19
Publication Date
2025-10-17
Estimated Expiration
2040-11-19

AI Technical Summary

Technical Problem

Existing technologies cannot effectively handle obstacles that appear randomly in the robot's workspace, resulting in collisions between the robot and the obstacles, and existing safe zone technologies limit the robot's mobility.

Method used

Using a state machine controller, sensors detect obstacles in the workspace and dynamically plan the robot's path, including reducing speed and replanning the path to avoid collisions.

Benefits of technology

The flexibility and reliability of robot path planning are achieved, and the path can be seamlessly adjusted when obstacles appear to avoid collisions, thereby improving the safety and efficiency of robot operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112828880B_ABST
    Figure CN112828880B_ABST
Patent Text Reader

Abstract

A state machine controller for dynamically planning a path for a robot. Industrial robots, such as multi-arm articulated robots, operate in a workspace according to a program. Sensors or cameras monitor the workspace and detect any objects, such as people, approaching or entering the workspace. The sensors provide input to the state machine controller, which includes the following states; track current path, change speed, and re-plan path. When an object approaches or enters the workspace, the state machine determines whether a transition to the change speed state is required. After reducing the robot speed in the change speed state, the state machine can resume the original path and speed, further reduce the speed to zero if necessary to avoid a collision, or transition to the re-plan path state to calculate a new path to the target position that avoids the object in the workspace.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to the field of industrial robot motion control, and more specifically, to a state machine controller for dynamically planning a robot path, where an object sensor streams workspace data to the state machine, and the state machine determines states and transitions, and the states include; tracking a current path, changing velocity, and re-planning a new path. BACKGROUND

[0002] It is well known to use industrial robots to repeatedly perform a wide variety of manufacturing and assembly operations. In some robotic work space environments, it is possible for a human or a vehicle such as a forklift to pass through the robot's motion field. Collisions between the robot and the human, vehicle, or other obstacle must be absolutely avoided.

[0003] In applications such as those discussed above, prior art techniques for controlling robots typically involve the use of predetermined "safety zones". One type of safety zone defines an area that must be maintained by an operator, and the robot is programmed accordingly to always avoid the safety zone. Another type of safety zone uses sensors to detect the presence of a human or another object within the safety zone, and prevents the robot from entering the safety zone if such an obstacle is present, typically meaning that the robot must stop. Yet another type of safety zone defines an area within which the robot is allowed to operate, and typically by using a safety fence or other physical barrier, humans and other objects must be prevented from entering the robot's operating area.

[0004] While the above techniques are generally effective in preventing collisions between the robot and any type of obstacle, they rely on predetermined safety zones of designated space within which the robot can or cannot operate, and these techniques cannot handle obstacles that can move into the robot's operating workspace at any time, location, velocity, etc. Furthermore, the safety zone techniques limit the mobility of the robot.

[0005] A state machine is a mathematical model of computation. It is an abstraction machine that at any given time can be in exactly one of a finite number of states in response to certain external inputs. It is known to use state machines to avoid collisions in applications such as autonomous road vehicles, mobile robots, and unmanned aerial vehicles. However, these and other applications of state machines do not consider the states and transitions necessary to seamlessly accommodate obstacles moving into and out of a path of a jointed robot.

[0006] In view of the above, there is a need for an improved robot controller that uses a state machine to dynamically plan a path. SUMMARY

[0007] In accordance with the teachings of the present disclosure, a state machine controller is disclosed that dynamically plans a robot's path. An industrial robot, such as a multi-armed articulated robot, operates in a workspace according to a defined program. Sensors or cameras monitor the workspace and detect any objects, such as people, forklifts, or mobile robots, that approach or enter the workspace. The sensors provide input to the state machine controller that includes the following states; track current path, change speed, and re-plan path. When an object approaches or enters the workspace, the state machine determines whether a transition to the change speed state is required. After reducing the robot's speed in the change speed state, the state machine can resume the original path and speed, further reduce the speed to zero if necessary to avoid a collision, or transition to the re-plan path state to calculate a new path to the target position that avoids the object in the workspace. BRIEF DESCRIPTION OF DRAWINGS

[0008] Additional features of the presently disclosed devices and methods will be apparent from the following description and appended claims, taken in conjunction with the accompanying drawings.

[0009] Figure 1 is an illustration of a system having an industrial robot operating in a workspace that includes sensors and a state machine controller that dynamically plans the robot's path based on sensed objects that approach or enter the workspace in accordance with an embodiment of the present disclosure;

[0010] Figure 2 is a table describing the basic operational characteristics of the state machine controller of Figure 1 in accordance with an embodiment of the present disclosure;

[0011] Figure 3 is a state diagram showing the states and transitions of the state machine controller of Figure 1 in accordance with an embodiment of the present disclosure; and

[0012] Figure 4 is a flowchart of a method for dynamically planning a robot's path to avoid collisions with objects in the robot's workspace in accordance with an embodiment of the present disclosure. DETAILED DESCRIPTION

[0013] The following discussion of embodiments of the present disclosure refers to a state machine controller for dynamically planning a robot's path, which is merely exemplary in nature, and is in no way intended to limit the disclosed devices and techniques or their application or uses.

[0014] It is well known to use industrial robots for various manufacturing, assembly, and material movement operations. Some types of robotic operations - such as those in which a robot is used to pack or unpack items on pallets in a warehouse - are performed in open spaces where people, forklifts, or autonomous robots can enter the workspace. In applications such as these, it is impractical to define a safety zone in which the robot can safely work without risk of collision with objects, because the workspace includes areas that need to be occasionally accessed, and thus cannot be isolated to exclude all people and vehicles. In these applications, in which it is not an option to program the robot to work outside the safety zone, and in which people or other objects can randomly appear in the workspace, there is a need for an improved technique for dynamically planning the robot's path to avoid object collisions.

[0015] Figure 1 is a diagram of a system 100 with an industrial robot operating in a workspace in accordance with embodiments of the present disclosure, the system including sensors and a state machine controller that dynamically plans the robot's path based on sensed objects approaching or entering the workspace. The state machine controller in system 100 provides fast and reliable dynamic path planning to avoid collisions of the robot with any objects or obstacles that can appear in the workspace.

[0016] A finite state machine or finite state automaton, or simply a state machine, is a mathematical model of computation. It is an abstract machine that can be in only a finite number of states at any given time. The state machine can change from one state to another in response to some external input and / or when a condition is met; the change from one state to another is called a transition. The state machine is defined by its list of states, its initial state, and the conditions for each transition.

[0017] System 100 includes a robot 110 operating in a workspace 120. For purposes of discussion, consider that robot 110 operates in an open warehouse area, running a program in which it picks up items from an inbound conveyor and places each item on a pallet for shipping. This is of course merely one example, and robot 110 can perform any type of operation. Robot 110 includes a tool 112 (e.g., a gripper), and the normal program involves moving tool 112 to target or destination locations 122 along an original path 114.

[0018] An object 130, which can be a human, a forklift, or any other object, can move through the workspace 120. Consider that the object 130 is moving along an object path 132 that passes through a danger zone 124 in the workspace 120. The danger zone 124 is generally defined as the area between where the robot 110 and tool 112 are located and where they are traveling. When the object path 132 passes through the danger zone 124, it is desirable to compute a new path 116 rather than simply stopping the robot 110 and waiting. The danger zone 124 is shown in Figure 1 two dimensions in the figure, but can also be computed in three dimensions, where in some applications it can be advantageous to compute a new path that goes over the object 130.

[0019] One or more sensors 140 are provided that have a field of view that covers the workspace 120. The sensor(s) 140 can include one or more of a camera, a radar sensor, a LiDAR sensor, an ultrasonic sensor, an infrared sensor, or other object detection sensor. The sensor(s) 140 are capable of determining at least the presence and location of the object 130, and optionally the general dimensions of the object 130 as well as the speed of the object. The sensor(s) 140 provide data to a module 142 that converts the raw sensor data (e.g., camera images, LiDAR point data, etc.) into object data that is usable by the robot controller 150. The robot controller 150 is a state machine controller that controls the motion of the robot 110 in the manner discussed in detail below.

[0020] Figure 2 Table 200 of events and corresponding actions that describe the basic operational characteristics of the state machine controller 150 in accordance with embodiments of the present disclosure Figure 1 The robot 110 is understood to be running a predetermined program, e.g., for picking and placing objects. When the sensor 140 does not detect an object, the controller 150 provides motion commands to the robot 110 according to the predetermined program.

[0021] At block 210, when an object 130 is detected approaching the danger zone 124, at block 212 the controller 150 slows the motion of the robot 110. Slowing the robot 110 down allows the robot 110 to stop at a later time, if necessary, without causing excessive braking forces and torques. At block 220, when the object 130 is blocking the original path 114, i.e., the object 130 is occupying the danger zone 124, the controller 150 slows the motion of the robot 110 to zero (stops) at block 222. At block 224, the controller 150 then begins to plan a new path that avoids the object 130 and the danger zone 124.

[0022] At block 230, when the object 130 is still blocking the original path 114 and the new path 116 is ready (meaning the new path 116 and corresponding joint motion instructions have been calculated), the controller 150 provides instructions at block 232 for the robot 110 to follow the new path 116. By using the new path 116, the robot 110 can continue to operate even when the object 130 is in the danger zone 124 and / or along the original path 114. At block 240, when the object 130 has left the danger zone 124 and the original path 114 is clear, the controller 150 provides instructions for the robot 110 to resume following the original path 114 at block 242.

[0023] Figure 3 is an embodiment according to the present disclosure Figure 1 140 . As previously described, controller 150 receives object data from module 142 . The object data from module 142 includes at least the position of object 130 detected in workspace 120 and may also include the size and shape of object 130 and / or the velocity of object 130. Different types and combinations of sensors 140 can provide different types of object data.

[0024] The controller 150 is configured as a state machine having an Initialization state 310 and three other operating states: a Track Path state 320, a Change Speed ​​state 330, and a Replan Path state 340. Object data from the module 142 is provided to the state machine controller 150 and is available for use in calculations in each of the states 320, 330, and 340, as indicated by dashed arrows 144. Based on the state of any object in the workspace 120, the state machine controller 150 will determine the appropriate action for the robot 110. It will be understood that the state machine controller 150 includes a processor and memory and executes a state machine algorithm having calculation steps at a regular clock frequency, where new object data is provided at each time step and a new state calculation is performed.

[0025] The initialization state 310 is the state entered when the controller 150 starts up and each time the controller 150 begins running its program (e.g., after completing a previous operational run). The initialization state 310 has a transition 312 back to itself, as will be appreciated by those skilled in the state machine art. The transition 312 is used when the controller 150 is initializing (starting up, checking communications with the robot 110 and sensors 140, etc.) and is not yet ready to begin moving the robot 110. When the system is ready, the controller 150 transitions from the initialization state 310 to the track path state 320 via transition 314. The controller 150 remains in the track path state 320, running the predetermined program (e.g., an item pick and place operation) and transitions back to itself via transition 322 as long as no objects enter the workspace 120.

[0026] When an object enters the workspace 120 indicating that the robot speed needs to be reduced, the controller 150 transitions to the change speed state 330 via transition 324. In the change speed state 330, the controller can transition back to the change speed state 330 via transition 332, which will occur while calculations are in progress and a transition to one of the other states has not yet been warranted. From the change speed state 330, a transition 334 to the track path state 320 is taken when it is determined that the appropriate action is to continue at a reduced speed on the current path.

[0027] From the change speed state 330, it can be necessary to re-plan a new path. For example, when the speed has been reduced to zero, and / or the object 130 is located in and can stop in the danger zone 124, it is determined that the appropriate action is to take a transition 336 to the re-plan path state 340. While calculations are in progress, a self-transition 342 can be taken to remain in the re-plan path state 340. When the new path is ready (fully calculated), or when the object 130 has left the danger zone 124, a transition 344 to the track path state 320 is taken. When returning to the track path state 320 in this manner, if the object 130 has left the danger zone 124, the controller 150 instructs the robot 110 to track the original path, otherwise the controller 150 instructs the robot 110 to track the new path.

[0028] Figure 4 is a flowchart 400 of a method for dynamically planning a path for a robot to avoid collisions with objects in a workspace of the robot in accordance with an embodiment of the present disclosure. The flowchart 400 is depicted as a collection of states from the state machine controller 150 described above and the decisions and actions associated with the states and their respective transitions. The method of the flowchart 400 is programmed in the state machine controller 150.

[0029] The method begins in state 310, where the controller 150 is initialized. After the controller 150 is initialized and ready to run, the original path is selected at block 412 according to the predefined program of the robot. The method then transitions to the track path state 320. In the track path state 320, the controller runs the robot through its program, such as a pick and place operation. At decision diamond 422, which is part of the programming of the track path state 320, a determination is made whether a speed change is needed based on the workspace object data from the module 142. If there were no objects previously in the workspace 120, and there are no objects currently in the workspace 120, then no speed change will be needed at decision diamond 422, and the process will move to decision diamond 424.

[0030] At decision diamond 424, a determination is made whether the task of the robot is complete. For example, if no more items arrive on the inbound conveyor, and all items on the conveyor have been moved to the shipping pallet, then the task is complete. When the task is complete, the process ends at end point 426. When the task is not complete, the process remains in the track path state 320, and again checks to determine whether a speed change is needed at the next time step.

[0031] If at decision diamond 422 an object is detected in the workspace 120 that is close to the danger zone 124, then a speed change (decrease) is needed and a transition to the change speed state 330 occurs. In the change speed state 330, a speed change is first applied based on the object data. For example, a 50% decrease in speed can be applied when the object 130 is detected to be close, but still completely outside of the danger zone 124. After the speed change has been applied, but while still in state 330, a determination is made at decision diamond 432 whether a path change is also needed. If no path change is needed at decision diamond 432, then a transition back to the track path state 320 occurs, and the robot program continues to run on the selected path at the decreased speed. The process can run in the track path state 320 at the decreased speed for several time steps before a determination is made that another speed change is needed.

[0032] If at decision diamond 432 after any speed change a determination is made that a path change is also needed, then a transition to the re-plan path state 340 occurs. In the re-plan path state 340, a plan for a new path is initiated based on the workspace object data. For example, if the object 130 has entered the danger zone 124 and stopped, a path can be calculated such as Figure 1the new path can be accomplished in one of several ways. For example, waypoints can be identified on a route from the current position of the tool 112 to the position of the target 122 while avoiding the objects 130 based on their positions and movements. Once the waypoints are identified, a path planning routine can be used to fully define the new path and the joint motions required for the tool 112 to move along the new path, as is known in the art. The path planning method to calculate the new path based on the object data and the position of the tool 112 relative to the target 122 can be, but is not limited to, an optimization planning routine or a sampling-search method. It can also be possible to select a stored alternative path, where the stored path is a pre-planned alternative or replacement path that was previously calculated and used in a similar situation.

[0033] After starting to plan the new path in the replanning path state 340, the process continues in the replanning path state 340 to determine whether the objects 130 have left the workspace 120 at decision diamond 442. If the objects 130 have left the workspace 120, the process continues back to selecting the original path at block 412 and transitions back to the track path 320. If the objects 130 have not left the workspace 120 at decision diamond 442, the process moves to decision diamond 444 where it is determined whether the new path is fully calculated and ready for use. Decision diamonds 442 and 444 are still in the replanning path state 340 and are part of the logic to determine when to transition out of the replanning path state 340.

[0034] If the new path is not fully calculated and ready for use, the process remains in the replanning path state 340. If the new path is ready for use at decision diamond 444, the new path is selected at block 446 and a transition to the track path state 320 occurs. The controller 150 then runs the robot program in the track path state 320 using the new path until the task is complete or a transition to the change speed state 330 occurs.

[0035] Using the method of flowchart 400, the state machine controller 150 can accommodate any situation involving an object arriving or leaving the workspace 120. Another example scenario is that a new path has been selected (as discussed above), the new path is being used in the track path state 320, and an object leaves the workspace 120. In this case, a speed increase is called for at decision diamond 422, a transition to the change speed state 330 occurs, and it is determined at decision diamond 432 that a path change back to the original path is appropriate. The system will transition to the re-plan path state 340 and reselect the original path through decision diamond 442 and block 412. In this way, the reduction and increase in speed, as well as the selection of a temporary new path or the original path, can all be handled seamlessly in the state machine controller 150.

[0036] In the flowchart 400, other decision diamonds and action blocks can be added, or the steps can be rearranged, without changing the basic design of the state machine, which has three main operating states of track path, change speed, and re-plan path.

[0037] Throughout the foregoing discussion, various computers and controllers have been described and implied. It should be understood that the software applications and modules of these computers and controllers are executed on one or more computing devices having processors and memory modules. In particular, this includes the processors in the object detection module 142 and the processors in the state machine robot controller 150 discussed above. Specifically, the processors in the controller 150 are configured to use state machine control techniques for dynamic path planning in the manner discussed above.

[0038] As discussed above, the disclosed techniques for a state machine controller for dynamic planning of robot paths improve the speed and reliability of robot path planning for collision avoidance when objects of random size, trajectory, and speed can enter the robot workspace at any time.

[0039] While a number of exemplary aspects and embodiments have been discussed above, those of skill in the art will recognize certain modifications, permutations, additions and sub-combinations thereof. It is therefore intended that the following claims be interpreted as including all such modifications, permutations, additions and sub-combinations as fall within the true spirit and scope of the claims.

Claims

1. A method for dynamically planning a path of an industrial robot, the method comprising: providing a state machine computing system having a processor and a memory, the state machine computing system being configured to execute a state machine algorithm including tracking a path state, changing a speed state, and replanning a path state; providing a sensor system comprising at least one sensor configured to detect an object in a workspace of the robot, the sensor system providing a signal to the state machine computing system; as well as continuously computing a path for a tool on the robot to follow using the state machine computing system, including identifying workspace object data based on the signals from the sensor system, controlling movement of the tool on a current path in the track path state, transitioning to the change speed state based on the object data, transitioning from the change speed state to the track path state or to the replan path state at a new speed using the current path, and transitioning from the replan path state to the track path state using a new path or an original path, wherein the change speed state includes reducing robot speed based on the object data and determining whether a path change is required, wherein when a path change is required, a transition to the replan path state occurs, wherein in the replan path state, the new path is planned based on the workspace object data to guide the tool on the robot to a target location; The state machine algorithm further includes an initialization state entered when the state machine computing system is started, and when the computing system is ready to operate the robot, the initialization state transitions to the tracking path state.

2. The method according to claim 1, wherein The at least one sensor includes at least one of a camera, a radar sensor, a LiDAR sensor, an ultrasonic sensor, or an infrared sensor.

3. The method according to claim 1, wherein Identifying workspace object data includes identifying the size and location of any objects in the workspace, including people, vehicles, mobile robots, or other machines.

4. The method according to claim 3, wherein: Identifying workspace object data also includes identifying the velocity of any objects in the workspace.

5. The method according to claim 1, wherein Transitioning to the changed speed state based on the object data includes determining that a robot speed reduction is required based on an object approaching the robot's path and determining that a robot speed increase is appropriate based on an object exiting the workspace.

6. The method of claim 1 , wherein the re-pathing state comprises starting to plan a new path based on the workspace object data, determining whether any previously detected objects have left the workspace, and determining whether the new path is calculated and ready for use.

7. The method according to claim 6, wherein: Planning the new path includes calculating the new path using a path planning routine based on a current robot configuration, a target robot configuration, and the workspace object data, or selecting a previously calculated path stored in a memory.

8. The method according to claim 6, wherein: When any previously detected object has left the workspace, the original path is selected and a transition to the tracking path state occurs, and when the new path is ready to be used, the new path is selected and a transition to the tracking path state occurs.

9. A method for dynamically planning a path for factory automation equipment, the method comprising continuously calculating a path to be followed by a tool on the equipment using a state machine computing system, comprising identifying workspace object data based on signals from a sensor system, controlling movement of the tool on a current path in a tracking path state, transitioning to a change speed state based on the object data, transitioning from the change speed state to the tracking path state or to a replanning path state at a new speed using the current path, and transitioning from the replanning path state to the tracking path state using a new path or an original path, wherein the change speed state comprises reducing the robot speed based on the object data and determining whether a path change is required, wherein when a path change is required, a transition to the replanning path state occurs, wherein in the replanning path state, the new path is planned based on the workspace object data to guide the tool on the robot to a target position, wherein the state machine algorithm also includes an initialization state entered when the state machine computing system is started, and the initialization state transitions to the tracking path state when the computing system is ready to operate the robot.

10. A state machine dynamic path planning system for an industrial robot, the system comprising: a sensor system comprising at least one sensor configured to detect an object in a workspace of the industrial robot; as well as a state machine robot controller having a processor and a memory, the state machine robot controller being configured to run a state machine algorithm including a track path state, a change velocity state, and a replan path state; The state machine algorithm is configured to continuously calculate a path for a tool on the robot to follow, including identifying workspace object data based on signals from the sensor system, controlling the movement of the robot on the current path in the tracking path state, transitioning to the change speed state based on the object data, transitioning from the change speed state to the tracking path state or to the replanning path state at a new speed using the current path, and transitioning from the replanning path state to the tracking path state using a new path or the original path, wherein the change speed state includes reducing the robot speed based on the object data and determining whether a path change is required, wherein when a path change is required, a transition to the replanning path state occurs, wherein in the replanning path state, the new path is planned based on the workspace object data to guide the tool on the robot to a target position, wherein the state machine algorithm also includes an initialization state entered when the state machine robot controller is started, and the initialization state transitions to the tracking path state when the controller is ready to operate the robot.

11. The system according to claim 10, wherein: The at least one sensor includes at least one of a camera, a radar sensor, a LiDAR sensor, an ultrasonic sensor, or an infrared sensor.

12. The system according to claim 10, wherein: Identifying workspace object data includes identifying the size and location of any objects in the workspace, including people, vehicles, mobile robots, or other machines.

13. The system according to claim 10, wherein: Transitioning to the changed speed state based on the object data includes determining a decrease in robot speed based on an object approaching the robot's path and determining an increase in robot speed based on an object exiting the workspace.

14. The system of claim 10 , wherein the re-planning path state comprises initiating planning of a new path based on the workspace object data, transitioning to the tracking path state using the original path when any previously detected object has left the workspace, and transitioning to the tracking path state using the new path when the new path is calculated and ready for use.

Citation Information

Patent Citations

  • Robot controlling device and automatic assembling system

    CN110026977A

  • Robot device

    JP2013202772A

  • Autonomous mobile body

    US20130166134A1