State Machines for Dynamic Path Planning

A state machine controller dynamically adjusts the robot's path and speed in response to detected obstacles, improving collision avoidance and mobility in dynamic workspaces.

JP7608115B2Active Publication Date: 2025-01-06FANUC LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2020181186
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-11-22
Filing Date
2020-10-29
Publication Date
2025-01-06
Estimated Expiration
2040-10-29

AI Technical Summary

Technical Problem

Existing robot control techniques rely on predetermined safety zones that cannot adapt to moving obstacles, limiting robot mobility and increasing collision risks in dynamic workspaces.

Method used

A state machine controller dynamically plans the robot's path by using sensors to detect objects in the workspace and adjusting speed and route in real-time to avoid collisions.

Benefits of technology

Enables seamless adaptation to moving obstacles, enhancing collision avoidance and maintaining robot operation in dynamic environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007608115000001
    Figure 0007608115000001
  • Figure 0007608115000002
    Figure 0007608115000002
  • Figure 0007608115000003
    Figure 0007608115000003
Patent Text Reader

Abstract

To provide a state machine controller for dynamically planning a route of a robot.SOLUTION: An industrial robot, for instance a multi-arm joint robot performs working in a work space in accordance with a program. A sensor or a camera monitors the work space, and detects an arbitrary object approaching or entering the work space for instance, a person for instance. The sensor inputs to a state machine controller. The state machine controller includes states of current route tracking, of speed change and of route re-planning. When the object approaches or enters the work space, a state machine determines whether or not transfer to the state of speed change is necessary. After reducing speed of the robot in the state of speed change, the state machine regains an original route and original speed when the object gets out of the work space, and further reduces the speed down to zero when required to avoid collision, or can transfer to a route re-planning state in order to calculate a new route up to a goal position at which the machine avoids the object in the work space.SELECTED DRAWING: Figure 1
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 path for a robot, where object sensors stream workspace data to a state machine, and the state machine determines states and transitions, and the states include current path tracking, speed changes, and new path replanning. [Background technology]

[0002] The use of industrial robots to repeatedly perform various manufacturing and assembly operations is well known. In some robot workspace environments, humans or vehicles, such as forklifts, may pass through the robot's field of motion. Collisions between the robot and humans, vehicles, or other obstacles must be avoided at all costs.

[0003] Prior art techniques for controlling robots in applications such as those mentioned above typically involve the use of predefined "safety zones." One type of safety zone defines an area within which an operator must remain, and the robot is accordingly programmed to avoid the safety zone at all times. Another type of safety zone uses sensors to detect the presence of a person or other object within the safety zone, and if such an obstacle is present, the robot is prevented from entering the safety zone, which usually means that the robot must stop. Yet another type of safety zone defines a zone of permissible work by the robot, and people and other objects must be prevented from entering the robot's work zone, typically by the use of a safety fence or other physical barricade.

[0004] While the above-mentioned techniques are generally effective in preventing collisions between the robot and any type of obstacle, such techniques rely on predefined safety zones that designate spaces within which the robot can or cannot operate, and these techniques cannot handle obstacles that may move into the robot's operational workspace at any time, position, speed, etc. Furthermore, safety zone techniques limit the mobility of the robot.

[0005] A state machine is a mathematical computational model. It is an abstract machine that can be in exactly one of a finite number of states at a given time, depending on some external inputs. It is known to use state machines for collision avoidance 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 adapt to obstacles entering or exiting the path of an articulated robot.

[0006] In light of the above, there is a need for an improved robot controller that uses a state machine for dynamic path planning. Summary of the Invention [Means for solving the problem]

[0007] According to the teachings of the present disclosure, a state machine controller for dynamically planning a robot path is disclosed. An industrial robot, for example a multi-arm articulated robot, works in a workspace according to a predefined program. A sensor or camera monitors the workspace and detects any object, for example a person, a forklift, or a mobile robot, approaching or entering the workspace. The sensor inputs into a state machine controller. The state machine controller includes states for current path tracking, speed change, and path re-planning. When an object approaches or enters the workspace, the state machine determines whether a transition to a speed change state is necessary. After reducing the robot speed in the speed change state, the state machine can resume the original path and speed when the object is clear of the workspace, and can further reduce the speed to zero if necessary to avoid a collision, or transition to a path re-planning state to calculate a new path to a goal position that avoids the object in the workspace. [Brief description of the drawings]

[0008] Additional features of the presently disclosed apparatus and methods will become apparent from the following description and the appended claims.

[0009] [Figure 1] FIG. 1 illustrates a system having an industrial robot in a workspace including sensors and a state machine controller that dynamically plans a path for the robot based on detected objects approaching or entering the workspace, in accordance with an embodiment of the present disclosure. [Diagram 2] FIG. 2 is a table of events and corresponding actions that illustrates basic operational characteristics of the state machine controller of FIG. 1 according to an embodiment of the present disclosure. [Diagram 3] FIG. 3 is a state diagram illustrating states and transitions of the state machine controller of FIG. 1 according to an embodiment of the present disclosure. [Figure 4] FIG. 4 is a flow chart diagram illustrating a method for dynamically planning a path for a robot to avoid collisions with objects in the robot workspace according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] The following discussion of embodiments of the present disclosure relating to a state machine controller for dynamically planning a path for a robot is intended to be merely exemplary and is in no way intended to limit the disclosed apparatus and techniques or their applications or uses.

[0011] The use of industrial robots for various manufacturing, assembly, and material movement operations is well known. 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 humans, forklift trucks, or autonomous robots may enter the workspace. In such applications, it is not practical to define a safety zone where the robot can safely operate without risk of collision with an object, since the workspace includes areas that require casual access and thus cannot be fenced to exclude all people and vehicles. In these applications where programming the robot to keep out of the safety zone is not an option and humans or other objects may randomly appear in the workspace, improved techniques are needed to dynamically plan the robot's path to avoid object collisions.

[0012] 1 illustrates a system 100 having an industrial robot in a workspace including sensors and a state machine controller that dynamically plans a path for the robot based on detected objects approaching or entering the workspace in accordance with an embodiment of the present disclosure. The state machine controller in the system 100 enables fast and reliable dynamic path planning to avoid collisions between the robot and any objects or obstacles that may appear in the workspace.

[0013] A finite state machine or finite state automaton, or simply state machine, is a mathematical computational model. It is an abstract machine that can be in exactly one of a finite number of states at a given time. A state machine can change from one state to another depending on some external inputs and / or when conditions are met. A change from one state to another is called a transition. A state machine is defined by its list of states, its initial state, and the conditions for each transition.

[0014] The system 100 includes a robot 110 operating within a workspace 120. For purposes of discussion, consider the robot 110 operating within an open warehouse area, running a program that picks up items from an incoming conveyor and places each item on a pallet for dispatch. This is, of course, only one example, and the robot 110 can perform any type of operation. The robot 110 includes a tool 112 (e.g., a gripper), and a typical program involves moving the tool 112 along a source path 114 to a goal or designated location 122.

[0015] An object 130, which may be a person, a forklift, or any other object, may move through the workspace 120. The object 130 is considered to move 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 moving. When the object path 132 passes through the danger zone 124, it is desirable to calculate a new path 116 rather than simply having the robot 110 stop and wait. The danger zone 124 is shown in two dimensions in FIG. 1, but may be calculated in three dimensions. In some applications, it is advantageous to calculate a new path that extends beyond the object 130.

[0016] One or more sensors 140 are provided with a field of view that covers the workspace 120. The sensors 140 may include one or more of a camera, a radar sensor, a LiDAR sensor, an ultrasonic sensor, an infrared sensor, or other object detection sensors. The sensors 140 can determine at least the presence and position of the object 130, and optionally the overall size of the object 130, and the object's speed. The sensors 140 provide data to a module 142, which converts the raw sensor data (e.g., camera images, LiDAR point data, etc.) into object data that can be used by the robot controller 150. The robot controller 150 is a state machine controller. The state machine controller controls the movement of the robot 110, as described in more detail below.

[0017] 2 is a table 200 of events and corresponding actions illustrating basic operational characteristics of the state machine controller 150 of FIG. 1 according to an embodiment of the present disclosure. The table 200 describes the overall strategy adopted by the controller 150 in controlling the robot 110. It is understood that the robot 110 runs a predefined program, for example a program for picking up and placing an object. When no object is detected by the sensor 140, the controller 150 provides movement commands to the robot 110 according to the predefined program.

[0018] If, in box 210, it is detected that the object 130 is approaching the danger zone 124, the controller 150 slows down the motion of the robot 110 in box 212. By slowing down the robot 110, it is possible to stop the robot 110 later, if necessary, without incurring excessive braking forces and torques. If, in box 220, the object 130 blocks the original path 114, i.e., if the object 130 occupies the danger zone 124, the controller 150 slows down the motion of the robot 110 to zero (stop) in box 222. In box 224, the controller 150 then starts planning a new path that avoids the object 130 and the danger zone 124.

[0019] In box 230, when the object 130 still blocks the original path 114 and the new path 116 is ready (i.e., the new path 116 and the corresponding articulation commands have been calculated), the controller 150 provides a command to the robot 110 to track the new path 116 in box 232. By using the new path 116, the robot 110 can still continue working even if the object 130 is located in the danger zone 124 and / or along the original path 114. In box 240, when the object 130 has left the danger zone 124 and is no longer on the original path 114, the controller 150 provides a command to the robot 110 to start tracking the original path 114 again in box 242.

[0020] 3 is a state diagram illustrating states and transitions of the state machine controller 150 of FIG. 1 in accordance with an embodiment of the present disclosure. The controller 150 receives object data from the modules 142 as described above. The object data from the modules 142 includes at least the position of the object 130 detected within the workspace 120, and may also include the size and shape of the object 130, and / or the velocity of the object 130. Different types and combinations of sensors 140 can provide different types of object data.

[0021] The controller 150 is formed as a state machine having an initialization state 310 and three other operational states, namely a path-following state 320, a speed change state 330, and a path-replanning state 340. Object data from the module 142 is provided to the state machine controller 150 and is available for calculations in each of the states 320, 330, and 340, as indicated by the dashed arrow 144. Based on the status of any object in the workspace 120, the state machine controller 150 will determine the appropriate action for the robot 110. The state machine controller 150 includes a processor and a memory, and can be understood to run a state machine algorithm having calculation steps at a regular time clock frequency, where new object data is provided and new state calculations are performed at each time step.

[0022] The initialization state 310 is the state entered when the state machine computing system is started and whenever the controller 150 begins executing its program, e.g., after completing a previous maneuver run. As will be apparent to those skilled in the art of state machines, the initialization state 310 has a transition 312 that returns to itself. Transition 312 is used when the controller 150 is initializing (restarting, checking communication with the robot 110 and the sensors 140, etc.) and is not yet ready to start moving the robot 110. When the system is ready, the controller 150 transitions from the initialization state 310 to the path-following state 320 via transition 314. The controller 150 remains in the path-following state 320, runs a predetermined program (e.g., a pick-up and place maneuver), and returns to the path-following state via transition 322, unless an object enters the workspace 120.

[0023] The controller 150 transitions to the change speed state 330 via transition 324 when an object enters the workspace 120, indicating the need to slow down the robot. In the change speed state 330, the controller can self-transition back to the change speed state 330 via transition 332. A self-transition occurs when a calculation is in progress and a transition to one of the other states has not yet been called for. From the change speed state 330, a transition 334 is made to the follow path state 320 if it is determined that the appropriate action is to continue on the current path at a reduced speed.

[0024] From the change speed state 330, it may be necessary to replan a new path. For example, if the speed has been reduced to zero and / or the object 130 is located in the danger zone 124 and possibly stopped, it is determined that the appropriate action is to make a transition 336 to the replan path state 340. A self transition 342 can be made to remain in the replan path state while the calculations are being made. When the new path is ready (fully calculated) or the object 130 has left the danger zone 124, a transition 344 is made to the path tracking state 320. Thus, returning to the path tracking state 320, if the object 130 has left the danger zone 124, the controller 150 instructs the robot 110 to track the original path, or else to track the new path.

[0025] 4 is a flowchart diagram 400 illustrating a method for dynamically planning a path for a robot to avoid collisions with objects in the robot workspace according to an embodiment of the present disclosure. The flowchart diagram 400 is shown as a collection of states from the state machine controller 150, along with the decisions and actions associated with each of the states and their respective transitions. The method of the flowchart diagram 400 is programmed within the state machine controller 150.

[0026] The method begins at state 310 where the controller 150 is initialized. After the controller 150 is initialized and ready to run, a source path is selected in box 412 based on the robot's predefined program. The method then transitions to a path-following state 320. In the path-following state 320, the controller runs the robot through its program (e.g., a pick-and-place operation). In decision diamond 422, which is part of the programming of the path-following state 320, it is determined whether a speed change is required based on workspace object data from module 142. If no objects were previously present in the workspace 120 and no objects are currently present in the workspace 120, then in decision diamond 422, no speed change is required and the process transitions to decision diamond 424.

[0027] At decision diamond 424, it is determined whether the robot's task is complete. For example, the task is complete if there are no more articles arriving on the incoming conveyor and all articles on the conveyor have been moved to a shipping pallet. When the task is complete, the process ends at terminal 426. When the task is not complete, the process remains in the path following state 320 and checks again to determine if a speed change is needed in the next time step.

[0028] If, in decision diamond 422, an object is detected in the workspace 120 approaching the danger zone 124, a speed change (deceleration) is required 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% deceleration can be applied upon detection of an object 130 approaching the danger zone 124 but still far enough away from it. After the speed change is applied, but while still in state 330, it is determined in decision diamond 432 whether a path change is also required. If a path change is not required in decision diamond 432, a transition back to the path following state 320 occurs and the robot program continues to run on the selected path at a reduced speed. The process can run in the path following state 320 at a reduced speed for several time steps before determining that another speed change is required.

[0029] If, at decision diamond 432 after the speed change, it is determined that a path change is also required, then a transition to the path replanning state 340 occurs. In the path replanning state 340, planning of a new path begins based on the workspace object data. For example, if the object 130 enters the danger zone 124 and is stopped, a path, such as the new path 116 of FIG. 1, may be calculated. In the path replanning state 340, the new path may be planned in one of several ways. For example, path points may be identified on the route from the current position of the tool 112 to the position of the goal 122 while avoiding the object 130 based on its position and motion. As known to those skilled in the art, once the path points are identified, a path planning routine may be used to fully define the new path along with the joint movements required to move the tool 112 along the new path. The path planning method for calculating the new path based on the object data and the position of the tool 112 relative to the goal 122 may be, by way of example, an optimization planning routine or a sampling and searching method. A stored alternative path may also be selected. The stored routes are pre-planned alternative routes or alternative routes that have been previously calculated and used in similar scenarios.

[0030] After planning of a new path is initiated in the replan path state 340, the process still proceeds in the replan path state 340 to determine whether the object 130 has left the workspace 120 in decision diamond 442. If the object 130 has left the workspace 120, the process returns to selecting the original path in box 412 and transitions back to the follow path state 320. If the object 130 has not left the workspace 120 in 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 replan path state 340 and are part of the logic used to determine when to transition out of the replan path state 340.

[0031] If the new path is not yet fully calculated and ready for use, the process remains in the replan path state 340. If the new path is ready for use in decision diamond 444, the new path is selected in box 446 and a transition to the path following state 320 occurs. The controller 150 then runs the robot program using the new path in the path following state 320 until the task is completed or a transition to the speed change state 330 occurs.

[0032] Using the method of flowchart diagram 400, state machine controller 150 can adapt to any situation involving the arrival or departure of an object within workspace 120. In another example situation, a new path is selected (as described above), the new path is used in path tracking state 320, and the object leaves workspace 120. In this case, a speed increase is called for in decision diamond 422, a transition to speed change state 330 occurs, and a reroute back to the original path in decision diamond 432 is appropriate. The system transitions to path replan state 340 and reselects the original path via decision diamond 442 and box 412. Thus, speed increases and decreases, and temporary selection of a new or original path may all be handled seamlessly within state machine controller 150.

[0033] In the flowchart diagram 400, other decision diamonds and action boxes can be added or steps can be rearranged without changing the basic structure of the state machine, which has three main operational states: path tracking, speed change, and path replanning.

[0034] Various computers and controllers are described or implied throughout the foregoing discussion. It will be appreciated that the software applications and modules of these computers and controllers execute on one or more computing devices having processors and memory modules. Specifically, this includes the processors in the object detection module 142 and the processors in the state machine robot controller 150 described above. Specifically, the processors in the controller 150 are configured to employ state machine control techniques for dynamic path planning as described above.

[0035] As outlined above, the disclosed technique for a state machine controller that dynamically plans a robot's path improves the speed and reliability of robot path planning to avoid collisions when objects with random sizes, trajectories, and velocities enter the robot workspace at any time.

[0036] While numerous exemplary features and implementations of a state machine controller for dynamic path planning have been described above, those skilled in the art will recognize modifications, permutations, additions, and subcombinations thereof, and it is therefore intended that the following appended claims, as well as any claims hereafter introduced, be construed to include all such modifications, permutations, additions, and subcombinations thereof as are within their true spirit and scope.

Claims

1. A method for dynamically planning a path for guiding an industrial robot to a goal or a specified position, comprising: The method further comprising: providing a state machine computing system having a processor and memory configured to run a state machine algorithm including a path tracking state, a speed change state, and a path replanning state; providing a sensor system including at least one sensor configured to detect objects within a workspace of the industrial robot, the sensor system providing signals to the state machine computing system; and using said state machine computation system to continuously compute a path to be followed by said tool on said industrial robot, including identifying workspace object data based on signals from said sensor system, controlling the movement of the tool on a current path in said path tracking state, transitioning to said speed change state when necessary based on said workspace object data, transitioning from said speed change state to said path tracking state using said current path at a new speed or to said path replanning state, and transitioning from said path replanning state to said path tracking state using a new path or an original path. Including, In the path replanning state, the new path is planned to guide the tool on the industrial robot to the goal or a specified location based on the workspace object data; Continuously calculating a path to be followed by the tool includes: transitioning to the speed change state to reduce robot speed based on the approach of an object to a path of the industrial robot; determining whether a path change is necessary in the speed change state, and causing the tool to follow the current path at a reduced robot speed if a path change is not necessary, while transitioning to the path replan state if a path change is necessary; and after entering the path re-planning state and starting planning of the new path, determining whether the object has left the workspace, and if the object has left the workspace, causing the tool to follow the original path, while if the object has not left the workspace and the new path has been planned, causing the tool to follow the new path. A method for dynamically planning paths for industrial robots.

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

3. The method of claim 1 , wherein identifying the workspace object data includes identifying a size and location of any object in the workspace, including a human, vehicle, mobile robot, or other machine.

4. The method of claim 3 , wherein identifying the workspace object data also includes knowing a velocity of any object in the workspace.

5. 2. The method of claim 1, wherein transitioning to the speed change state when necessary based on the workspace object data includes determining that a robot speed reduction is necessary based on an object approaching a path of the industrial robot, and determining that a robot speed increase is appropriate based on an object leaving the workspace.

6. 2. The method of claim 1 , 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 memory.

7. 2. The method of claim 1, wherein the state machine algorithm also includes an initialization state that is entered upon start-up of the state machine computing system, and the initialization state transitions to the path tracking state when the state machine computing system is ready to operate the industrial robot.

8. 1. A method for dynamically planning a path to lead a factory automation device to a goal or specified location, the method comprising: using a state machine computation system to continuously compute a path to be followed by the tool on the factory automation device, including identifying workspace object data based on signals from a sensor system, controlling operation of the tool on a current path in a path tracking state, transitioning to a speed change state when necessary based on the workspace object data, transitioning from the speed change state to the path tracking state using the current path at a new speed or to a path replanning state, and transitioning from the path replanning state to the path tracking state using the new path or the original path; In the path replanning state, the new path is planned to direct the tool on the factory automation equipment to the goal or a specified location based on the workspace object data; Continuously calculating a path to be followed by the tool includes: transitioning to the speed change state to reduce a speed of the factory automation device based on an approach of an object in a path of the factory automation device; determining if a path change is required in the speed change state, and causing the tool to follow the current path at the reduced speed if a path change is not required, while transitioning to the path replan state if a path change is required; and 2. A method for dynamically planning a path for a factory automation equipment, comprising: after transitioning to the path re-planning state to begin planning the new path, determining whether the object has left the workspace, and if the object has left the workspace, causing the tool to follow the original path, and if the object has not left the workspace and the new path has been planned, causing the tool to follow the new path.

9. A state machine dynamic path planning system for dynamically planning a path to guide an industrial robot to a goal or a specified position, the state machine dynamic path planning system comprising: a sensor system including at least one sensor configured to detect objects within a workspace of the industrial robot; a state machine robot controller having a processor and memory configured to run a state machine algorithm including a path tracking state, a speed change state, and a path replanning state; Including, the state machine algorithm is configured to identify workspace object data based on signals from the sensor system, control movement of the industrial robot on a current path in the path tracking state, continuously calculate a path to be followed by a tool on the industrial robot, including transitioning to the speed change state when necessary based on the workspace object data, transitioning from the speed change state to the path tracking state using the current path at a new speed or to the path re-planning state, and transitioning from the path re-planning state to the path tracking state using a new path or an original path; In the path replanning state, the new path is planned to guide the tool on the industrial robot to the goal or a specified location based on the workspace object data; Continuously calculating a path to be followed by the tool includes: transitioning to the speed change state to reduce robot speed based on the approach of an object to a path of the industrial robot; determining whether a path change is necessary in the speed change state, and causing the tool to follow the current path at a reduced robot speed if a path change is not necessary, while transitioning to the path replan state if a path change is necessary; and after entering the path re-planning state and starting planning of the new path, determining whether the object has left the workspace, and if the object has left the workspace, causing the tool to follow the original path, while if the object has not left the workspace and the new path has been planned, causing the tool to follow the new path. A state machine dynamic path planning system for industrial robots.

10. 10. The system of claim 9, wherein the at least one sensor comprises at least one of a camera, a radar sensor, a LiDAR sensor, an ultrasonic sensor, or an infrared sensor.

11. The system of claim 9 , wherein identifying the workspace object data includes identifying a size and location of any object in the workspace, including a human, vehicle, mobile robot, or other machine.

12. 10. The system of claim 9, wherein transitioning to the speed change state when necessary based on the workspace object data includes determining that a robot speed reduction is necessary based on an object approaching a path of the industrial robot, and determining that a robot speed increase is appropriate based on an object leaving the workspace.

13. 10. The system of claim 9, wherein the state machine algorithm also includes an initialization state that is entered upon start-up of the state machine robot controller, and the initialization state transitions to the path tracking state when the state machine robot controller is ready to operate the industrial robot.

Citation Information

Patent Citations

  • Robot device

    JP2013202772A

  • Robot control device, robot control method, robot system and computer program

    JP2017061026A

  • Robot control device and automatic assembly system

    JP2019123022A

  • Robot control device and robot system using same

    WO2019035362A1