Origin return path search device for robot and origin return path search program
The robot origin return route search device and program streamline the process of finding a robot's return route by thinning motion log data, reducing manual effort and ensuring accurate navigation back to the origin position.
Patent Information
- Application Number
- JP2021163458
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-10-29
- Filing Date
- 2021-10-04
- Publication Date
- 2025-05-16
- Estimated Expiration
- 2041-10-04
AI Technical Summary
Existing methods for a robot to return to its origin position after an abnormal stop require significant manual effort to create and modify robot programs, especially when additional equipment is added or when calculating a safe return path is challenging due to missing CAD data.
A robot origin return route search device and program that perform thinning processing on motion log data by deleting data between points at both ends of straight line sections in the robot's trajectory, reducing the number of operation log data used for searching the return route.
This approach reduces the time and effort required to search for the robot's origin return route by minimizing the amount of operation log data needed, while ensuring an accurate and obstacle-free return path.
Smart Images

Figure 0007678319000001 
Figure 0007678319000002 
Figure 0007678319000003
Abstract
Description
[Technical field]
[0001] An embodiment of the present invention relates to an origin return path searching device for a robot and an origin return path searching program. [Background technology]
[0002] In equipment that uses robots, if an abnormality occurs in the robot during automatic operation, the robot will abnormally stop. In this case, in order to return the robot to the task it was performing before it stopped, it is first necessary to perform a return to the origin, which returns the robot to the origin position specified in the robot program, and then restart the robot program. Approximately 60% of the man-hours required to start up such equipment are spent on creating and modifying the robot program to perform the return to origin operation when the robot stops due to an abnormality.
[0003] Depending on the environment where the robot is installed, equipment that was not in the original design may have been added, or the CAD data of the equipment may not have been imported in a way that the robot can recognize, so it may not be possible to calculate a safe return path based on the surrounding equipment models available from other companies. Due to these circumstances, it is generally time-consuming to make preparations in advance, such as setting the direction in which the return operation will be performed in advance and distinguishing between operations depending on the state of the robot.
[0004] For example, Patent Document 1 discloses a method for returning a robot to its original position, which enables the robot to return to its original position in a simple manner without increasing the load on the system when returning the robot from a stopped position to a work original position. [Prior art documents] [Patent documents]
[0005] [Patent Document 1] JP 2009-90383 A Summary of the Invention [Problem to be solved by the invention]
[0006] However, the technique disclosed in Patent Document 1 requires tasks such as registering in advance areas where interference with the robot's operation will occur and the robot's return direction, as well as generating area blocks that are the robot's operation areas, which is very time-consuming.
[0007] The present invention has been made in consideration of the above-mentioned circumstances, and its object is to provide a robot origin return path search device and an origin return path search program that can more easily perform origin return path search based on the robot's operation log data. [Means for solving the problem]
[0008] According to the origin return path search device for a robot described in claim 1, when the robot's trajectory is in a straight line, the return path search processing unit performs a thinning process to delete the motion log data between the two motion log data points at both ends of the straight line, and uses the remaining motion log data remaining at the time of completing the thinning process to search for the return path. In other words, for a section where the robot's trajectory is in a straight line, the return path can be searched without any problems if there is motion log data at both ends of the straight line. Therefore, the number of motion log data used to search for the return path can be reduced, thereby reducing the time required for the search.
[0009] According to the origin return path search device for a robot described in claim 2, when two consecutive line segments in the robot's trajectory can be regarded as a straight line, the return path search processing unit performs the same processing as in claim 1 on the operation log data of the two points at both ends of the two line segments. Here, "two consecutive line segments can be regarded as a straight line" means that there is no problem in treating the connection between the two line segments as substantially a straight line. In other words, even if a trajectory portion cannot be strictly called a straight line, it is possible to perform the same processing as in claim 1 on the trajectory portion that can be treated as a substantially straight line.
[0010] According to the origin return path search device for a robot described in claim 3, if the angle formed by the first vector determined by the motion log data D(R+X) and D(R) and the second vector determined by the motion log data D(R+X) and D(R+X+1) for each position and posture of the robot's hand exceeds a threshold, the return path search processing unit deletes the motion log data D(R+X), increments the variable X, and similarly compares the angle formed by the first and second vectors with the threshold. Note that "R, X" in the data D(R), D(R+X) are indexes that indicate the acquisition order of the motion log data by sequential numbers, etc., and the initial values of R and X are "1", and the motion log data D(1) indicates the return origin.
[0011] If the angle between the first and second vectors is equal to or smaller than the threshold, the motion log data D(R+X) is retained and the motion log data D(R+X) is set as the next motion log data D(R), i.e., the variable "R+X" is substituted for the variable X, the variable X is set to the initial value "1", and then the thinning process of comparing the angle between the first and second vectors with the threshold is repeated in the same manner. Then, when the motion log data D(R+X+1) reaches the current position, the thinning process is stopped.
[0012] With this configuration, if it is determined by setting the threshold that the three pieces of operation log data D(R), D(R+X), and D(R+X+1) are arranged in a straight line, the operation log data D(R+X) located between them can be deleted, thereby reducing the number of pieces of operation log data used to search for a return path.
[0013] According to the origin return path search device for a robot described in claim 4, if the amount of change in the position and posture of the robot's hand based on two adjacent pieces of remaining operation log data is less than or equal to a threshold, the return path search processing unit performs an integration process to integrate the nodes determined according to the two pieces of remaining operation log data into one node, and uses the node that has undergone the integration process to search for the return path. That is, depending on the trajectory of the robot's operation, the positions and postures of the hand indicated by the two pieces of remaining operation log data may be substantially the same, so integrating them may not hinder the search for the return path. In such a case, by integrating the nodes determined according to the two pieces of operation log data into one node, the number of nodes used to search for the return path can be reduced, and the time required for the search can be further reduced.
[0014] According to the origin return path search device for a robot described in claim 5, when the return path search processing unit searches for a return path based on the nodes that have been subjected to the integration process, if any of the operation log data deleted by the thinning process is located on a path connecting two nodes, the return path is generated by interpolating the node based on the operation log data between the two nodes. By interpolating the operation log data located on the path connecting two nodes after the search for the return path is completed, when the robot is actually moved to the return origin according to the searched path, the trajectory that the robot has taken from the return origin to the current position can be traced in the reverse direction more accurately. This can further reduce the possibility of the robot coming into contact with an obstacle or the like while moving to the return origin. [Brief description of the drawings]
[0015] [Figure 1] FIG. 1 is a diagram conceptually illustrating a configuration of a robot system including an operation log data recording device and an origin return path searching device according to a first embodiment. [Figure 2A] Flowchart showing the sequence of control operations (part 1) [Figure 2B] Flowchart showing the sequence of control (part 2) [Diagram 3]Diagram explaining the downsampling process (part 1) [Figure 4] Diagram explaining downsampling process (part 2) [Diagram 5] Diagram explaining downsampling process (part 3) [Figure 6] FIG. 13 is a diagram showing an example of operation log data obtained by a raw log data acquisition process; [Figure 7] FIG. 7 is a diagram showing an example of data remaining after downsampling processing is performed on the operation log data shown in FIG. [Figure 8] A diagram showing the case where the node used for route search has an undirected flag. [Figure 9] A diagram showing the case where the node used for route search has a directional flag. [Figure 10] An example of the results of a search for a return route (part 1) [Figure 11] An example of the results of a search for a return route (part 2) [Figure 12] FIG. 13 is a diagram showing an example of a route creation processing result. [Figure 13] FIG. 11 is a diagram showing another example of the return path search process and the thinning process according to the second embodiment (part 1); [Figure 14] FIG. 2-1 shows another example of the return path search process and the thinning process. [Figure 15] FIG. 2-2 shows another example of the return path search process and the thinning process. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] (First embodiment) A first embodiment will be described below with reference to Figs. 1 to 12. The robot system 1 shown in Fig. 1 includes an articulated robot 10 and a robot controller 20. The robot 10 is a vertical articulated robot having a plurality of arms, and is controlled by the robot controller 20. The robot 10 may be, for example, a horizontal articulated robot, a parallel link robot, or an orthogonal robot. The robot 10 and the robot controller 20 are configured to be capable of mutual communication by wire or wirelessly. The robot controller 20 may also be connected to other external devices, such as a personal computer or a mobile terminal such as a smartphone, to be capable of mutual communication by wire or wirelessly.
[0017] In this embodiment, the robot 10 is an industrial robot, and is configured as a vertical articulated robot having, for example, six axes. As shown in FIG. 1, the robot 10 has a base 11 and a plurality of arms 121 to 126, six in this case. If the robot 10 is installed in a fixed place for use, the base 11 is fixed to the installation surface. If the robot 10 is small enough to be carried by a person, the base 11 does not need to be fixed to the installation surface. The arms 121 to 126 are provided in order on the base 11. In this embodiment, the arms are referred to as a first arm 121, a second arm 122, a third arm 123, a fourth arm 124, a fifth arm 125, and a sixth arm 126 in order from the base 11 side. If the arms 121 to 126 are not specified, the arms 121 to 126 are collectively referred to simply as an arm 12.
[0018] The arms 121 to 126 are rotatably connected via a plurality of axes J1 to J6. In this case, from the base 11 side, the axes are called the first axis J1, the second axis J2, the third axis J3, the fourth axis J4, the fifth axis J5, and the sixth axis J6. When the axes J1 to J6 are not specified, the axes J1 to J6 are collectively called the axis J. The first axis J1 is a rotation axis extending vertically, and connects the first arm 121 to the base 11 so as to be rotatable in the horizontal direction. The second axis J2 is a rotation axis extending horizontally, and connects the second arm 122 to the first arm 121 so as to be rotatable in the vertical direction.
[0019] The third axis J3 is a rotation axis extending in the horizontal direction, and connects the third arm 123 to the second arm 122 so as to be rotatable in the vertical direction. The fourth axis J4 is a rotation axis extending in the longitudinal direction of the third arm 123, and connects the fourth arm 124 to the third arm 123 so as to be rotatable in the vertical direction. The fifth axis J5 is a rotation axis extending in the horizontal direction, and connects the fifth arm 125 to the fourth arm 124 so as to be rotatable in the vertical direction. And the sixth axis J6 is a rotation axis extending in the longitudinal direction of the fifth arm 125, and connects the sixth arm 126 to the fifth arm 125 so as to be rotatable.
[0020] The sixth arm 126 is a hand part of the robot 10, and is formed, for example, in a flange shape. The tool 13 is detachably attached to the tip part of the sixth arm 126. The tool 13 may be, for example, a chuck, a gripper, or a suction hand for gripping and transporting a workpiece, or a processing tool for performing various processes on a workpiece, such as a drill for screwing or drilling a hole. The tool 13 may be appropriately selected depending on the application of the robot 10. Although not shown in detail, the robot 10 also has a motor for driving each of the axes J1 to J6, an encoder for detecting the number of rotations and the position of each of the axes J1 to J6, and a brake for stopping the operation of each of the axes J1 to J6.
[0021] The robot controller 20 has a control unit 21, an input display device 22, a recording unit 23, an operation log data recording device 24, and an origin return path searching device 25. The control unit 21 is mainly composed of a microcomputer having, for example, a CPU 211 and a storage area 212 such as a ROM, RAM, and a rewritable flash memory, and controls the operation of the entire robot 10. The input display device 22 has a display function such as a touch panel, an electric or mechanical switch device, and a liquid crystal screen. The recording unit 23 is, for example, a so-called storage device that can write and read various information according to instructions from the robot controller 20, or a device that can write to recording media such as CDs and DVDs.
[0022] The recording unit 23 may be, for example, a recording device using a flash memory fixedly installed inside the housing of the robot controller 20, or a USB memory or memory card that can be inserted into or removed from the robot controller 20. The recording unit 23 may also be an external so-called online storage that is communicably connected via the Internet, a LAN, or a WAN.
[0023] The memory area 212 of the control unit 21 stores a robot control program for driving and controlling the robot 10. The robot controller 20 controls the operation of the robot 10 by executing the robot control program in the CPU 211. In addition, in the case of this embodiment, the memory area 212 stores an operation log data recording program and an origin return path searching program.
[0024] The control unit 21 executes an operation log data recording program in the CPU 211, thereby virtually implementing the raw log data acquisition processing unit 241, the downsampling processing unit 242, the recording processing unit 243, etc., by software. In this case, the raw log data acquisition processing unit 241, the downsampling processing unit 242, and the recording processing unit 243 constitute the operation log data recording device 24. That is, in this embodiment, the robot controller 20 is configured to include the operation log data recording device 24.
[0025] Moreover, the control unit 21 executes an origin return path search program in the CPU 211 to virtually realize a return origin setting processing unit 251 and a return path search processing unit 252 by software. In this case, the return origin setting processing unit 251 and the return path search processing unit 252 constitute an origin return path search device 25. That is, in this embodiment, the robot controller 20 is configured to include the origin return path search device 25.
[0026] The operation log data recording program and the origin return path search program may be stored in the recording unit 23 or another external recording medium and may be installed in the control unit 21 from the recording unit 23 or an external recording medium or may be executed directly. The raw log data acquisition processing unit 241, the downsampling processing unit 242, and the recording processing unit 243 may be realized in hardware, for example, as an integrated circuit integrated with the control unit 21. The return origin setting processing unit 251 and the return path search processing unit 252 may also be realized in hardware, for example, as an integrated circuit integrated with the control unit 21.
[0027] Next, the operation log data recording device 24 will be described. The operation log data recording device 24 is for acquiring operation log data during automatic operation of the robot 10, downsampling, i.e. thinning out, the acquired operation log data based on a predetermined condition, and recording the data in the recording unit 23. The operation log data recording device 24 can access the recording unit 23 by processing of the control unit 21. The operation log data recording device 24 is configured to include a raw log data acquisition processing unit 241, a downsampling processing unit 242, and a recording processing unit 243.
[0028] The raw log data acquisition processing unit 241 can execute a raw log data acquisition process. The raw log data acquisition process is a process for acquiring angle information of each axis J1 to J6 of the robot 10 when the robot 10 is operated at regular intervals as raw log data. In the following description, the operation log data related to the operation of the robot 10 may be simply referred to as log data, or may be referred to as operation log data D(N).
[0029] The motion log data may include at least angle information α1(N) to α6(N) related to the motion of each axis J1 to J6, and hand position information P(N), i.e., position information of the tip of the tool 13 or the tip of the sixth arm 126. In this case, the angle information α1(N) to α6(N) related to the motion of each axis J1 to J6 may be, for example, the motion angle, angular velocity, angular acceleration, etc. of each axis J1 to J6. Furthermore, the motion log data D(N) of the robot 10 may also include speed information and acceleration information of the tip of the tool 13 or the tip of the sixth arm 126. The above N indicates the order in which the motion log data is obtained, and may be expressed as a sequential number or as the time of acquisition.
[0030] The raw log data acquisition processing unit 241 acquires operation log data of the robot 10 at regular intervals, for example, at intervals of several milliseconds to several tens of milliseconds, during the operation of the robot 10. In the case of this embodiment, when the raw log data acquisition process is executed during the operation of the robot 10, the raw log data acquisition processing unit 241 temporarily stores and keeps the raw log data acquired during the operation of the robot 10 in a buffer of the storage area 212.
[0031] In this case, the raw log data acquisition process may include a process of temporarily storing the acquired raw log data D(N) in a buffer provided in a volatile memory such as a RAM in the storage area 212. In this case, when a predetermined amount of raw log data D(N) is accumulated in the buffer, the downsampling process unit 242 executes a downsampling process for each predetermined amount. The downsampling process is a process of excluding from the raw log data acquired by the raw log data acquisition process unit 241, data that satisfies a specific condition, from the data to be recorded.
[0032] Next, the operation of this embodiment will be described. Fig. 2 is a flow chart showing a series of control operations executed by the robot controller 20 in order to return the robot 10 to the origin position when the operation of the robot 10 is stopped, for example, due to collision with an obstacle. The processes shown in Fig. 2 include the above-mentioned raw log data acquisition process (S1), downsampling process (S3 to S9), calculation node creation process (S10 to S16), path search process (S18), path creation process (S19 to S23), and origin position return process (S24). First, an overview of each process will be described.
[0033] [Downsampling process] 3 to 7 show an outline of the downsampling process, which corresponds to the thinning process, in a model manner. For example, as shown in FIG. 3, when raw log data t1 to t5 are acquired by the raw log data acquisition process, the downsampling processing unit 242 compares the angle between the first vector formed by data t2→t1 and the second vector formed by data t2→t3 with a threshold value. The threshold value is set to, for example, 179 degrees. Here, since the angle formed by both vectors exceeds the threshold value, it is determined that the raw log data t1, t2, and t3 are arranged on a straight line, and the raw log data t2 is deleted.
[0034] 4, the downsampling processor 242 compares the angle between the first vector formed by the data t3→t1 and the second vector formed by the data t3→t4 with a threshold value. Since the angle between the two vectors exceeds the threshold value, it is determined that the raw log data t1, t3, and t4 are aligned in a straight line, and the raw log data t3 is deleted.
[0035] 5, the downsampling processor 242 compares the angle between the first vector formed by the data t4→t1 and the second vector formed by the data t4→t5 with a threshold value. Here, since the angle between the two vectors is equal to or smaller than the threshold value, the raw log data t4 is not deleted but left. Note that the comparison of the angle between the first and second vectors and the threshold value is performed for both P-type data, i.e., the position determined by the coordinate values of X, Y, and Z, and J-type data, i.e., the posture determined by the angles formed by the 4th, 5th, and 6th axes of the 6-axis robot 10.
[0036] Moreover, to generalize the above process, assume that there are three pieces of raw log data D(R), D(R+X), and D(R+X+1). The variables R and X are natural numbers, and if they are set to the initial value "1", this corresponds to the case in Figure 3, resulting in data D(1), D(2), and D(3). In the case of Figure 4 where data D(2) is deleted, the variable X is incremented to result in data D(1), D(3), and D(4), and in the case of Figure 5 where data D(3) is deleted, the variable X is further incremented to result in data D(1), D(4), and D(5).
[0037] If data t5 shown in FIG. 5 is followed by data t6;D(6) as shown in FIG. 6, in the case following the deletion of data D(4), the variable R is set to "4" and the variable X is set to the initial value "1". As a result, the three points of data become D(4), D(5), and D(6). In other words, the intermediate data D(R+X) becomes the starting point of the first and second vectors. The downsampling process is performed in this manner.
[0038] For example, as shown in FIG. 6, when downsampling processing is performed on data t1 to t17 obtained by the raw log data acquisition processing, only data t1-t4, t4-t7, t7-t10, t10-t14, and t14-t17 at both ends where the motion trajectory of the robot 10 is a straight line are left as shown in FIG. 7, and these become the remaining motion log data, and the raw log data in between them is deleted.
[0039] [Calculation node creation process] As shown in FIG. 7, in the motion trajectory from node t4 to node t7 and then to node t10, nodes t4 and t10 are close to each other. Even if two nodes close to each other in this way are integrated into one node, there is no problem in performing a path search. Therefore, the return path search processing unit 252 compares six values of the coordinate values (X, Y, Z) of the P type data and the angles (4th axis, 5th axis, 6th axis) of the J type data with thresholds for two nodes arranged in chronological order among the nodes consisting of the remaining motion log data, as in the case of downsampling processing, to determine whether the two nodes can be integrated. The threshold value for the position is set to about 1 mm, for example, and the threshold value for the angle is set to about 0.457 degrees, for example. FIG. 8 shows a state in which nodes t4 and t10 are integrated and considered as one node.
[0040] The nodes used in the route search may be either an undirected graph as shown in FIG. 9 or a directed graph as shown in FIG. 10. When an undirected graph is used, two nodes are connected in both directions, and the search is performed assuming that all routes can be traveled in both directions. An undirected graph has the advantage that the shortest route can be calculated. On the other hand, when a directed graph is used, two nodes are connected in one direction, and the search searches for the shortest route that goes back in the opposite direction to a route that has been traveled once. In a directed graph, the amount of route data associated with each node is half that of an undirected graph.
[0041] In addition, in the case of using the directed graph shown in Figure 10, the route back to the origin is originally The route is t10 → t7 → t4, but since nodes t4 and t10 have been integrated into one node, it is no longer necessary to take a route that goes round trip to node t7.
[0042] [Route search process] In this embodiment, a graph search such as Dijkstra's algorithm using a priority queue is applied to search for a return path. When a path from the current position t17 to the origin t1 is derived by graph search for the nodes shown in FIG. 8, the following is obtained as shown in FIG. t17→t4(&t10)→t1 The raw log data deleted in the downsampling process that is located on the return route is rearranged as shown in Fig. 12. As a result, the route for returning the robot 10 to the origin position is a more accurate reverse trace of the route from the origin position to the current position.
[0043] Next, a series of steps for performing the above processes will be described with reference to the flowchart shown in Fig. 2. When the robot 10 starts to move, the raw log data acquisition processing unit 241 starts to acquire raw log data (S1). When the robot 10 collides with an obstacle or the like and stops moving, the acquisition of the raw log data also stops (S2).
[0044] Next, the downsampling processing unit 242 performs the following on the three pieces of raw log data D(R), D(R+X), and D(R+X+1) arranged in chronological order: First vector: D(R+X) → D(R) Second vector: D(R+X) → D(R+X+1) Then, the angle between the first and second vectors in the XYZ space is compared with a threshold value (S3). If the angle between the two vectors exceeds the threshold value (YES), the angle between the two vectors in the 4-axis, 5-axis, and 6-axis spaces is compared with a threshold value (S4).
[0045] If the answer is "YES" in step S4, the data D(R+X) which is the starting point of both vectors is deleted (S5), and the variable X is incremented (S6). On the other hand, if the answer is "NO" in either step S3 or S4, the data D(R+X) is left (S7), (R+X) is substituted for the variable R, and the variable X is initialized to "1" (S8). Then, if all the log data has not been searched (S9; NO), the process returns to step S3. The above steps S3 to S9 are the downsampling process.
[0046] When all log data has been searched (S9; YES), the process proceeds to the calculation node creation process. The target of this process is the remaining operation log data that has been subjected to the downsampling process. First, it is determined whether the starting point of the search has been integrated with another node (S10), and if not (YES), it is determined whether the distance from the starting point to the next point is 1 mm or less (S12). If the distance is 1 mm or less (YES), it is then determined whether the displacement amounts of the 4th, 5th, and 6th axes are less than a specified value, 0.457 degrees in this case (S13).
[0047] If the answer is "YES" in step S13, the two points are recorded in the data array as the same node (S14), and then it is determined whether all points have been searched from the starting point (S15). If all points have been searched from the starting point (YES), it is determined whether all points in the remaining operation log data have been searched (S16). If the answer is "YES" here, the process proceeds to step S18. If the answer is "NO" in both steps S10 and S16, the start point of the search is advanced by one (S11, S17) and the process returns to step S10. If the answer is "NO" in both steps S12 and S13, the process proceeds to step S15. This is the end of the calculation node creation process.
[0048] Step S18 is a route search process, in which a graph search is performed based on the nodes created by the calculation node creation process, i.e., the nodes that have been partially integrated, so as to minimize the distance of the route to the goal, i.e., the return origin (S18). Then, the process proceeds to step S19, which is a route creation process.
[0049] In step S19, it is determined whether the current node and the next node on the searched return path are chronologically separated. Here, whether or not they are "chronologically separated" is determined to be "separate" if the distance between the two nodes is more than twice the period, for example, with the sampling period of the log data being a threshold. If the two nodes are not chronologically separated (NO), then those nodes are registered as they are on the return path (S20). On the other hand, if they are chronologically separated (YES), then the remaining log data existing on the path between the two nodes is interpolated, and these are registered together on the return path (S21).
[0050] Then, it is determined whether the final node of the return path, that is, the return origin, has been registered in the return path (S23). If the final node has not been registered (NO), the path creation process proceeds to the next node (S22) and returns to step S19. This is the path creation process. When registration up to the final node is completed (YES), the robot 10 is operated to perform origin position return process (S24) to return the robot 10 to the origin along the path.
[0051] As described above, according to this embodiment, in the origin return path searching device 25 mounted on the robot controller 20, the return path searching processing unit 252 performs downsampling processing to delete the operation log data between the two operation log data points at both ends of the line when the trajectory of the robot 10 is in a straight line, and uses the remaining operation log data remaining at the time of completing the processing to search for the return path. In other words, for the section where the trajectory of the robot 10 is in a straight line, the return path can be searched without any problem if there is operation log data located at both ends of the line. Therefore, the number of operation log data used to search for the return path can be reduced, thereby shortening the time required for the search.
[0052] Specifically, the return path search processing unit 252 deletes the data D(R+X) if the angle formed by the first vector determined by the action log data D(R+X) and D(R) and the second vector determined by the action log data D(R+X) and D(R+X+1) for each of the position and posture of the hand of the robot 10 exceeds a threshold, increments the variable X, and similarly compares the angle formed by the first and second vectors with the threshold. If the angle formed by the first and second vectors is equal to or less than the threshold, the action log data D(R+X) is left and the action log data D(R+X) is set as the next action log data D(R), that is, the variable "R+X" is substituted for the variable X, the variable X is set to the initial value "1", and the downsampling process is repeated in which the angle formed by the first and second vectors is compared with the threshold. Then, when the data D(R+X+1) reaches the current position, the downsampling process is stopped.
[0053] With this configuration, if it is determined by setting the threshold that the three pieces of operation log data D(R), D(R+X), and D(R+X+1) are arranged in a straight line, the operation log data D(R+X) located between them can be deleted, thereby reducing the number of pieces of operation log data used to search for a return path.
[0054] Furthermore, if the amount of change in the position and posture of the hand of the robot 10 based on two adjacent pieces of remaining motion log data is less than or equal to a threshold, the return path search processing unit 252 performs a merging process to merge the nodes determined based on the two pieces of remaining motion log data into one node, and uses the merged node in the search for the return path. This makes it possible to reduce the number of nodes used in the search for the return path, and further reduce the time required for the search.
[0055] Furthermore, when the return path search processing unit 252 searches for a return path based on the nodes that have been subjected to the integration processing, if any of the operation log data deleted by the downsampling processing is located on a path connecting two nodes, the return path search processing unit 252 generates a return path by interpolating the node based on the operation log data between the two nodes. This makes it possible to more accurately trace the trajectory of the robot 10 moving from the return origin to the current position in the reverse direction, and further reduces the possibility of the robot 10 coming into contact with an obstacle or the like while moving to the return origin.
[0056] Second embodiment The second embodiment shows another example of the thinning process in the return path search. As described in the first embodiment, the threshold value of the thinning process is set to 179 degrees. Therefore, as shown in Fig. 13 to Fig. 15, if the angle between the first vector and the second vector is 179 degrees, the connection between these two line segments cannot be said to be a straight line in the strict sense, but it means that there is no problem in treating it as a straight line.
[0057] 13, if t2→t1 is the first vector and t2→t3 is the second vector, then if the angle between these vectors is less than 179 degrees, the raw log data t2 remains without being thinned out. Next, if t3→t2 is the first vector and t3→t4 is the second vector, then if the angle between these vectors is 179 degrees, the raw log data t3 is thinned out.
[0058] As shown in Fig. 14, raw log data t1 to t4 are arranged in a straight line, so data t2 and t3 between them are sequentially thinned out. On the other hand, raw log data t4 to t7 are not arranged in a straight line, but if t5 → t4 is the first vector and t5 → t6 is the second vector, the angle between these vectors is 179 degrees or more, so raw log data t5 is thinned out. If t6 → t4 is the first vector and t6 → t7 is the second vector, the angle between these vectors is also 179 degrees or more, so raw log data t6 is also thinned out, as shown in Fig. 15.
[0059] The present invention is not limited to the embodiments described above and illustrated in the drawings, and can be modified, combined, or expanded as desired without departing from the spirit and scope of the present invention. The downsampling process does not necessarily have to be performed according to the procedures shown in FIGS. The process of integrating two adjacent nodes may be performed as necessary. A process for interpolating operation log data located between two nodes may also be performed as necessary. The specific values of the thresholds may be changed according to individual designs. The route search technique is not limited to graph search. [Explanation of symbols]
[0060] In the drawings, 1 indicates a robot system, 10 indicates a robot, 22 indicates a memory unit, 24 indicates an operation log data recording device, 241 indicates a raw log data acquisition processing unit, 242 indicates a downsampling processing unit, 243 indicates a recording processing unit, 25 indicates an origin return path searching device, 251 indicates a return point processing unit, and 252 indicates a return path searching processing unit.
Claims
1. In order to search for a return path, which is a path for returning the robot from a current position to a return origin set on the robot's trajectory, based on the robot's operation log data recorded in a recording unit, when tracing all of the operation log data from the return origin to the current position, When there is a portion where the robot's trajectory becomes a straight line, a thinning process is performed to delete the operation log data between the two points on either end of the line, and the remaining operation log data remaining at the time the thinning process is completed is used to search for the return path.
2. In order to search for a return path, which is a path for returning the robot from a current position to a return origin set on the robot's trajectory, based on the robot's operation log data recorded in a recording unit, when tracing all of the operation log data from the return origin to the current position, When two consecutive line segments in the robot's trajectory can be regarded as a straight line, a thinning process is performed to delete the operation log data between the two points on both ends of the two line segments, and the remaining operation log data remaining at the time the thinning process is completed is used to search for the return path.
3. The return path search processing unit performs the following with respect to three pieces of operation log data D(R; the initial value of R indicates the return origin), D(R+X; X is a natural number with an initial value of "1"), and D(R+X+1): A first vector determined by the operation log data D(R+X) and the operation log data D(R); If an angle formed between the motion log data D(R+X) and a second vector determined by the motion log data D(R+X+1) for each of the position and posture of the hand of the robot exceeds a threshold, the motion log data D(R+X) is deleted, the variable X is incremented, and then the angle formed between the first vector and the second vector is compared with the threshold; If the angle is equal to or smaller than the threshold value, the operation log data D(R+X) is retained, and the D(R+X) is set as the next operation log data D(R). The variable X is set to an initial value of "1" and a thinning process is repeated in which the angle between the first vector and the second vector is compared with the threshold value.
3. The origin return path search device for a robot according to claim 1, wherein the thinning process is stopped when the operation log data D(R+X+1) reaches the current position.
4. 4. The robot origin return path searching device of claim 1, wherein the return path searching processing unit performs an integration process for integrating nodes determined based on two adjacent pieces of remaining operation log data into one node if the changes in the position and posture of the robot's hand based on the two adjacent pieces of operation log data are each below a threshold value, and uses the node that has undergone the integration process in searching for the return path.
5. 5. The robot origin return path searching device of claim 4, wherein when the return path searching processing unit searches for the return path based on the nodes that have undergone the integration processing, if any of the operation log data deleted by the thinning processing is located on a path connecting two nodes, the return path is generated by interpolating the node based on the operation log data between the two nodes.
6. A control unit having a CPU and capable of accessing a recording unit capable of recording operation log data of the robot, In order to search for a return path, which is a path for returning the robot from a current position to a return origin set on the robot's trajectory, based on the robot's operation log data recorded in a recording unit, when tracing all of the operation log data from the return origin to the current position, A program for searching for a return path for a robot to its origin, which, when there is a portion where the robot's trajectory becomes a straight line, performs a thinning process to delete the operation log data between the operation log data of the two points at either end of the line, and executes a return path searching process to use the remaining operation log data remaining at the time the thinning process is completed in searching for the return path.
7. A control unit having a CPU and capable of accessing a recording unit capable of recording operation log data of the robot, In order to search for a return path, which is a path for returning the robot from a current position to a return origin set on the robot's trajectory, based on the robot's operation log data recorded in a recording unit, when tracing all of the operation log data from the return origin to the current position, A program for searching for a return path for a robot to its origin, which, when two consecutive line segments in the robot's trajectory can be regarded as a straight line, performs a thinning process to delete the operation log data between the operation log data of the two points at both ends of the two line segments, and executes a return path searching process to use the remaining operation log data remaining at the time the thinning process is completed in searching for the return path.
8. In the return path search process, for three chronologically arranged operation log data points D(R; the initial value of R indicates the return origin), D(R+X; X is a natural number with an initial value of "1"), and D(R+X+1), A first vector determined by the operation log data D(R+X) and the operation log data D(R); If an angle formed between the motion log data D(R+X) and a second vector determined by the motion log data D(R+X+1) for each of the position and posture of the hand of the robot exceeds a threshold, the motion log data D(R+X) is deleted, the variable X is incremented, and then the angle formed between the first vector and the second vector is compared with the threshold; If the angle is equal to or smaller than the threshold value, the operation log data D(R+X) is retained, and the D(R+X) is set as the next operation log data D(R). The variable X is set to an initial value of "1" and a thinning process is repeated in which the angle between the first vector and the second vector is compared with the threshold value.
8. The origin return path search program for a robot according to claim 6, wherein the thinning process is stopped when the operation log data D(R+X+1) reaches the current position.
9. 9. A robot origin return path search program as described in any one of claims 6 to 8, wherein, in the return path search process, if the amount of change in the position and posture of the robot's hand based on two adjacent operation log data for the remaining operation log data is each below a threshold value, an integration process is performed to integrate nodes determined based on the two adjacent operation log data into one node, and the node that has undergone the integration process is used to search for the return path.
10. 10. A program for searching for a return path for a robot as described in claim 9, wherein, in the return path searching process, when the return path is searched for based on the nodes that have undergone the integration process, if any of the operation log data deleted in the thinning process is located on a path connecting two nodes, a return path is generated by interpolating a node based on the operation log data between the two nodes.
Citation Information
Patent Citations
Automatic teaching method of industrial robot
JP1985039207A
Method and device for stopping motion of industrial robot
JP1990076691A
Transport robot controlling method
JP1995299777A
Programing device for teaching robot
JP1999090870A
Control system using working robot, and work machining method using that control system
JP2004261878A