Path Generation Method Of Generating Path Of Robot Using Command From External Apparatus And Robot Control System
20230339113 · 2023-10-26
Inventors
Cpc classification
B25J9/1664
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
A method of the present disclosure is a path generation method of generating a path of a robot using a command from an external apparatus, including (a) sequentially receiving command information including a control command from the external apparatus, and (b) determining a path position with interpolation between a first target position and a second target position. The step (b) includes (b1) obtaining the path position by performing linear interpolation between the first target position and the second target position, (b2) determining whether or not path speed at the second target position is no lower than lower limit speed, and (b3) correcting the path speed between the first target position and the second target position so as to become no lower than the lower limit speed when it is determined that the path speed at the second target position fails to be no lower than the lower limit speed.
Claims
1. A path generation method of generating a path of a robot using a command from an external apparatus, the method comprising: (a) sequentially receiving command information including a control command from the external apparatus with a second control period longer than a first control period as a control period of a path related to a target position of a joint of the robot; and (b) determining a path position in each of the first control periods with interpolation between a first target position and a second target position next to the first target position using a first control command representing the first target position and a second control command representing the second target position, wherein the step (b) includes (b1) obtaining the path position in each of the first control periods by performing linear interpolation between the first target position and the second target position, (b2) determining whether or not path speed at the second target position is no lower than lower limit speed at which a third target position next to the second target position is reached at an estimated arrival time at the third target position when assuming that the path speed at the second target position is accelerated at an acceleration limit to the third target position using a third control command representing the third target position, and (b3) correcting the path speed between the first target position and the second target position so that the path speed at the second target position becomes no lower than the lower limit speed when it is determined that the path speed at the second target position fails to be no lower than the lower limit speed.
2. The path generation method according to claim 1, wherein the lower limit speed is obtained by subtracting a positional variation due to a speed variation when accelerated at the acceleration limit from the second target position until the third target position is reached from a difference between the third target position and the second target position, and then dividing a value obtained by the subtraction by a value corresponding to a length of the second control period.
3. The path generation method according to claim 1, wherein after the step (b3), the step (b) includes (b4) determining whether or not the path speed at the second target position is no higher than upper limit speed at which the third target position is not exceeded at the estimated arrival time at the third target position when assuming that path speed at the second target position is decelerated at a deceleration limit to the third target position, and (b5) correcting the path speed between the first target position and the second target position so that the path speed at the second target position becomes no higher than the upper limit speed when it is determined that the path speed at the second target position fails to be no higher than the upper limit speed.
4. The path generation method according to claim 1, wherein between the step (b1) and the step (b2), the step (b) includes correcting the path position so that path acceleration obtained from an interpolation result of the linear interpolation becomes no higher than the acceleration limit when the path acceleration exceeds the acceleration limit.
5. A robot control system comprising: a robot having a servo controller; a robot controller configured to transmit a control command to the servo controller; and an external apparatus configured to sequentially transmit command information including a control command to the robot controller with a second control period longer than a first control period as a control period of a path related to a target position of a joint of the robot, wherein the robot controller is configured to execute (a) processing of sequentially receiving the command information from the external apparatus with the second control period, and (b) processing of determining a path position in each of the first control periods with interpolation between a first target position and a second target position next to the first target position using a first control command representing the first target position and a second control command representing the second target position, and the processing (b) includes (b1) processing of obtaining the path position in each of the first control periods by performing linear interpolation between the first target position and the second target position, and (b2) processing of correcting the path position so that path acceleration obtained from an interpolation result of the linear interpolation becomes no higher than acceleration limit when the path acceleration exceeds the acceleration limit.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
DESCRIPTION OF EXEMPLARY EMBODIMENTS
A. First Embodiment
[0018]
[0019] The robot 100 is provided with a platform 110, a robot arm 120, and a servo controller 130. The servo controller 130 executes servo control related to actuators for operating joints of the robot arm 120. The servo controller 130 is coupled to the subordinate control device 200 as an external apparatus.
[0020] The robot arm 120 is sequentially coupled with four joints J1 through J4. On a tip portion of the robot arm 120, there are mounted a kinesthetic sensor 140 and an end effector 150. The kinesthetic sensor 140 can be eliminated. Further, it is possible to provide other sensors such as a gyro sensor and a vibration sensor to the robot arm 120. In the vicinity of the tip of the robot arm 120, there is seta TCP (Tool Center Point) as a control point of the robot 100. There is illustrated a four-axis robot having the four joints J1 through J4 in the present embodiment, but it is possible to use a robot having an arbitral arm mechanism having a plurality of joints. Further, the robot 100 according to the present embodiment is a horizontal articulated robot, but it is possible to use a vertical articulated robot.
[0021]
[0022] It is preferable for the superior control device 300 to be configured so as to generate the command information CI using an ROS (Robot Operating System) as versatile control software which does not depend on the model and the manufacturer of the robot 100. In contrast, it is preferable for the subordinate control device 200 to be configured so as to generate the control command CC from the command information CI using specific control software suitable for the model of the robot 100. By combining the superior control device 300 and the subordinate control device 200 described above with each other, it is possible to easily construct a system capable of executing the control of the robot 100 irrespective of the model and the manufacturer of the robot 100.
[0023] The robot arm 120 includes actuators 122 and sensors 124. The actuators 122 are respectively provided to the individual joints, and are used for operating the individual joints. The actuators 122 each include an encoder as a position sensor for representing a position of the individual joints. In the present disclosure, the “position” of the joint means a displacement or an angle of the joint. Further, the “speed” means a temporal differentiation of the displacement or angular velocity, and the “acceleration” means a second-order differentiation of the displacement or angular acceleration. The sensors 124 include a variety of sensors such as the kinesthetic sensor 140 shown in
[0024] The servo controller 130 has an actuator controller 132 for executing the control of the actuators 122, and a real-time communication unit 134. The real-time communication unit 134 has a function of performing synchronous communication with the subordinate control device 200 with the control period t.sub.c1. In the present embodiment, the control period t.sub.c1 is 2 ms. The servo controller 130 and the subordinate control device 200 are coupled to each other with a protocol capable of performing real-time communication with a constant period, and is coupled to each other with, for example, EtherCAT (Ethernet Control Automation Technology). In EtherCAT, digital data, analog data, and process data to which input/output information such as an encoder value is coupled can be communicated while being carried on an Ethernet frame. In the EtherCAT connection, the subordinate control device 200 functions as a master, while the servo controller 130 functions as a slave. The subordinate control device 200 and the superior control device 300 are coupled to each other with a protocol for performing non-real-time communication, and are coupled to each other with, for example, Ethernet.
[0025] The superior control device 300 has a command information generator 310 and a non-real-time communication unit 320. The command information generator 310 generates a trajectory of the robot arm 120 with a robot control program RP generated in advance, and then generates the command information CI for making the robot arm 120 operate with that trajectory. The command information CI includes a position command for making the robot arm 120 operate. The position command is a command representing target positions of the plurality of joints provided to the robot 100, and represents the target position of every control period t.sub.c2. The non-real-time communication unit 320 executes non-real-time communication with the non-real-time communication unit 210 of the subordinate control device 200. As described above, in the present embodiment, the superior control device 300 and the subordinate control device 200 are coupled to each other with Ethernet. In the non-real-time communication, the command information CI is transmitted from the superior control device 300 to the subordinate control device 200, and further, the robot state information RI is transmitted from the subordinate control device 200 to the superior control device 300. As described above, the robot state information RI includes position data of the joints of the robot arm 120, and sensor values of the sensors 124.
[0026] The command information generator 310 executes processing of generating the command information CI in accordance with the robot control program RP. The command information CI is generated using the robot state information RI in accordance with the robot control program RP.
[0027] The subordinate control device 200 has the non-real-time communication unit 210, a control command generator 220, a real-time communication unit 230, and a robot state transmitter 240. The command information CI transmitted from the superior control device 300 is received by the non-real-time communication unit 210, and is transferred to the control command generator 220. The control command generator 220 generates the control command CC in accordance with the command information CI. In the generation of the control command CC, the control command generator 220 executes path generation processing of generating path positions of the respective joints. The “path position” means both of a position set between the target positions using interpolation, and the target position. In the path generation processing, by interpolating the plurality of target positions designated by the plurality of pieces of command information CI, the path positions between the plurality of target positions are determined. The real-time communication unit 230 transmits the control command CC to the servo controller 130 every control period t.sub.c1, and at the same time, receives the robot state information RI from the servo controller 130. The robot state information RI is transmitted from the robot state transmitter 240 to the superior control device 300 via the non-real-time communication unit 210.
[0028] The servo controller 130 of the robot 100 executes the path control for achieving the target positions of the respective joints of the robot 100 in accordance with the control command CC received from the subordinate control device 200. In other words, the actuator controller 132 executes the path control for controlling the actuators 122 of the respective joints using the path positions obtained by the interpolation. The control period t.sub.c1 with which the servo controller 130 receives the control command CC from the subordinate control device 200 is referred to as a “first control period t.sub.c1,” and the control period t.sub.c2 with which the subordinate control device 200 receives the command information CI from the superior control device 300 is referred to as a “second control period t.sub.c2.” The first control period t.sub.c1 is set shorter than the second control period t.sub.c2. The servo controller 130 sequentially receives the control commands CC including the target positions from the subordinate control device 200 with the first control period t.sub.c1 shorter than the second control period t.sub.c2. It is preferable for the first control period t.sub.c1 to be set to a value obtained by dividing the second control period t.sub.c2 by an integer.
[0029]
[0030]
[0031] In the linear interpolation, assuming that the interpolation number m is an integer no smaller than 2, and k is an integer from 1 to m, the path position p.sub.k between arbitrary two target positions Tp.sub.N, Tp.sub.N+1 is determined as follows every time point t.sub.k in that zone.
[Math. 1]
p.sub.k=Tp.sub.N+k*Δp [1a]
Δp=(Tp.sub.N+1−Tp.sub.N)/m [1b]
[0032] In
[0033]
[0034] In the steps S120 through S140 shown in
[0035] In the step S140, the next path position p.sub.n is determined, for example, as follows.
[Math. 2]
p.sub.n=p.sub.n−1+Δp.sub.n [2a]
Δp.sub.n=(a.sub.Lim*d)*t.sub.c1+Δp.sub.n−1 [2b]
[0036] Here, p.sub.n represents the path position to be determined by the present correction, p.sub.n−1 represents the previous path position, Δp.sub.n represents an additional value for determining the present path position p.sub.n, Δp.sub.n−1 represents an additional value when determining the previous path position p.sub.n−1, a.sub.Lim represents the acceleration limit, t.sub.c1 represents the first control period, and d represents a constant fulfilling 0d≤1.
[0037] The dots drawn as “with accel. limit correction” in
[0038] When the correction in the step S140 is completed, the process returns to the step S110, and the linear interpolation between the path position p.sub.n corrected in the step S140 and the next target position is performed. In the example shown in
[0039] The steps S210 through S240 are processing of correcting the path positions taking a lower limit speed in the next interpolation zone into consideration. The “next interpolation zone” means the next interpolation zone to the interpolation zone subject to the present interpolation. For example, when assuming the present interpolation zone as a zone from the first target position Tp.sub.N to the second target position Tp.sub.N+1, the next interpolation zone is a zone from the second target position Tp.sub.N+1 to the third target position Tp.sub.N+2. The “lower limit speed in the next interpolation zone” means the speed at the second target position Tp.sub.N+1, and is the speed at which the third target position Tp.sub.N+2 is reached at an estimated arrival time at the third target position Tp.sub.N+2 when assuming that the acceleration is subsequently performed at the acceleration limit a.sub.Lim to the third target position Tp.sub.N+2.
[0040] In the step S210, a lower limit speed V.sub.min at the starting point of the next interpolation zone is calculated. The lower limit speed V.sub.min can be calculated with, for example, the following formula.
[0041] Here, Tp.sub.N+1 represents the second target position, Tp.sub.N+2 represents the third target position, a.sub.Lim represents the acceleration limit, t.sub.c1 represents the first control period, t.sub.c2 represents the second control period, and m represents the interpolation number.
[0042] A second term of a numerator in a right-hand side of the formula [3] described above corresponds to a positional variation due to a speed variation, namely an increment in distance due to the acceleration, when performing the acceleration at the acceleration limit a.sub.Lim from the second target position Tp.sub.N+1 until the third target position Tp.sub.N+2 is reached. The lower limit speed V.sub.min at the starting point of the next interpolation zone is obtained by subtracting the positional variation from a difference between the third target position Tp.sub.N+2 and the second target position Tp.sub.N+1, and then dividing the subtraction result by a length of the second control period t.sub.c2.
[0043] When expressing the formula [3] described above with discrete values in every first control period t.sub.c1, the formula [3] can be rewritten to the following formula [4].
[0044] Here, Δp′.sub.min represents a lower limit value of the positional increment at the starting point of the next interpolation zone, and is substantively the same as the lower limit speed V.sub.min in the formula [3] described above.
[0045] A second term of a numerator in a right-hand side of the formula [4] described above corresponds to a positional variation due to a speed variation when performing the acceleration at the acceleration limit a.sub.Lim from the second target position Tp.sub.N+1 until the third target position Tp.sub.N+2 is reached. Further, the interpolation number m in the denominator in the right-hand side of the formula [4] is a value corresponding to the length of the second control period t.sub.c2. As described above, the lower limit speed V.sub.min or Δp′.sub.min at the starting point of the next interpolation zone can be obtained by subtracting the positional variation due to the speed variation when performing the acceleration at the acceleration limit a.sub.Lim from the second target position Tp.sub.N+1 until the third target position Tp.sub.N+2 is reached from the difference between the third target position Tp.sub.N+2 and the second target position Tp.sub.N+1, and then dividing the subtraction result by a value corresponding to the length of the second control period t.sub.c2.
[0046]
[0047] In the step S220 shown in
[0048] In the step S230, whether or not the initial speed Vi at the starting point of the next interpolation zone IP12 is no lower than the lower limit speed V.sub.min is determined. When the initial speed Vi is no lower than the lower limit speed V.sub.min, the whole of the processing shown in
[0049] As shown in
[0050] In the example of the “with the correction of the initial speed Vi (with Vi correction)” shown in
[0051]
[Math. 5]
V.sub.min=V.sub.N+α*t.sub.a [5a]
Tp.sub.N+1−Tp.sub.N=V.sub.N*t.sub.c2+½α*t.sub.a.sup.2 [5b]
[0052] Here, V.sub.N represents speed at the starting point of the present interpolation zone IP.sub.N, Tp.sub.N+1 represents the target position at the end point of the present interpolation zone IP.sub.N, Tp.sub.N represents the target position at the starting point of the present interpolation zone IP.sub.N, and t.sub.c2 represents the second control period.
[0053] By solving the formulas [5a], [5b] described above, it is possible to obtain the solutions of the acceleration α and the time t.sub.a shown in
[0054] When the correction of the path speed in the step S240 ends, the process returns to the step S220, and the initial speed Vi at the starting point of the next interpolation zone IP12 is calculated once again. Further, in the step S230, whether or not the initial speed Vi at the starting point of the next interpolation zone IP12 is no lower than the lower limit speed V.sub.min is determined. In such a manner, the steps S220 through S240 are repeated until the initial speed Vi becomes no lower than the lower limit speed V.sub.min. It should be noted that when the correction processing in the step S240 is performed so that V.sub.min≤Vi is true, it is possible to arrange that the processing shown in
[0055] As described hereinabove, in the embodiment described above, since the correction of the path positions taking the acceleration limit into consideration is performed in the steps S120 through S140 shown in
[0056] It should be noted that it is possible to eliminate either one of the processing in the steps S120 through S140 and the processing in the steps S210 through S240.
B. Second Embodiment
[0057]
[0058] In the step S215, an upper limit speed V.sub.max at the starting point of the next interpolation zone is calculated. When assuming that the next interpolation zone is a zone from the second target position Tp.sub.N+1 to the third target position Tp.sub.N+2, the upper limit speed V.sub.max at the starting point of the next interpolation zone is the speed at which the third target position Tp.sub.N+2 is not exceeded at an estimated arrival time at the third target position Tp.sub.N+2 when assuming that deceleration is performed at a deceleration limit b.sub.Lim to the third target position Tp.sub.N+2. The upper limit speed V.sub.max can be calculated with, for example, the following formula.
[0059] Here, Tp.sub.N+1 represents the second target position, Tp.sub.N+2 represents the third target position, b.sub.Lim represents the deceleration limit, t.sub.c1 represents the first control period, t.sub.c2 represents the second control period, and m represents the interpolation number.
[0060] A second term of a numerator in a right-hand side of the formula [6] described above corresponds to a positional variation due to a speed variation, namely a decrement in distance due to the deceleration, when performing the deceleration at the deceleration limit b.sub.Lim from the second target position Tp.sub.N+1 until the third target position Tp.sub.N+2 is reached. The upper limit speed V.sub.max at the starting point of the next interpolation zone is obtained by adding the positional variation to the difference between the third target position Tp.sub.N+2 and the second target position Tp.sub.N+1, and then dividing the addition result by the length of the second control period t.sub.c2.
[0061] When expressing the formula [6] described above with discrete values in every first control period t.sub.c1, the formula [6] can be rewritten to the following formula [7].
[0062] Here, Δp′.sub.max max represents an upper limit value of the positional increment at the starting point of the next interpolation zone, and is substantively the same as the upper limit speed V.sub.max in the formula [6] described above.
[0063] A second term of a numerator in a right-hand side of the formula [7] described above corresponds to a positional variation due to a speed variation when performing the deceleration at the deceleration limit b.sub.Lim from the second target position Tp.sub.N+1 until the third target position Tp.sub.N+2 is reached. Further, the interpolation number m in the denominator in the right-hand side of the formula [7] is a value corresponding to the length of the second control period t.sub.c2. As described above, the upper limit speed V.sub.max or Δp′.sub.max at the starting point of the next interpolation zone can be obtained by adding the positional variation due to the speed variation when performing the deceleration at the deceleration limit b.sub.Lim from the second target position Tp.sub.N+1 until the third target position Tp.sub.N+2 is reached to the difference between the third target position Tp.sub.N+2 and the second target position Tp.sub.N+1, and then dividing the addition result by a value corresponding to the length of the second control period t.sub.c2.
[0064] The processing contents of the steps S220, S230 after the step S215 shown in
[0065] In the step S235, whether or not the initial speed Vi at the starting point of the next interpolation zone is no higher than the upper limit speed V.sub.max is determined. When the initial speed Vi is no higher than the upper limit speed V.sub.max, the whole of the processing shown in
[0066] As described above, in the second embodiment, since the correction of the path speed between the first target position and the second target position is performed so that the path speed at the second target position as the starting point of the next interpolation zone becomes no higher than the upper limit speed V.sub.max, it is possible to determine the path so that the third target position can be reached at the estimated arrival time at the third target position.
[0067] It should be noted that in the second embodiment, it is possible to arrange that whether or not the path acceleration exceeds the deceleration limit b.sub.Lim is determined after the linear interpolation in the step S110, for example, after the step S130, and when the path acceleration exceeds the deceleration limit b.sub.Lim, the path position is corrected so that the path acceleration becomes no higher than the deceleration limit b.sub.Lim. This point is substantially the same as in the first embodiment.
Other Embodiments
[0068] The present disclosure is not limited to the embodiments described above, but can be implemented in a variety of aspects within the scope or the spirit of the present disclosure. For example, the present disclosure can also be implemented by the following aspects. The technical features in the embodiments described above corresponding to the technical features in each of the aspects described below can arbitrarily be replaced or combined in order to solve some or all of the problems of the present disclosure, or to achieve some or all of the advantages of the present disclosure. Further, the technical feature can arbitrarily be eliminated unless described in the present specification as an essential element.
[0069] (1) According to a first aspect of the present disclosure, there is provided a path generation method of generating a path of a robot using a command from an external apparatus. This path generation method includes (a) sequentially receiving command information including a control command from the external apparatus with a second control period longer than a first control period as a control period of a path related to a target position of a joint of the robot, and (b) determining a path position in each of the first control periods with interpolation between a first target position and a second target position next to the first target position using a first control command representing the first target position and a second control command representing the second target position, wherein the step (b) includes (b1) obtaining the path position in each of the first control periods by performing linear interpolation between the first target position and the second target position, (b2) determining whether or not path speed at the second target position is no lower than a lower limit speed at which a third target position next to the second target position is reached at an estimated arrival time at the third target position when assuming that the path speed at the second target position is accelerated at an acceleration limit to the third target position using a third control command representing the third target position, and (b3) correcting the path speed between the first target position and the second target position so that the path speed at the second target position becomes no lower than the lower limit speed when it is determined that the path speed at the second target position fails to be no lower than the lower limit speed.
[0070] According to this path generation method, since the correction of the path speed between the first target position and the second target position is performed so that the path speed at the second target position becomes no lower than the lower limit speed after performing the linear interpolation, it is possible to determine the path so that the third target position can be reached at the estimated arrival time at the third target position.
[0071] (2) In the path generation method described above, the lower limit speed may be obtained by subtracting a positional variation due to a speed variation when accelerated at the acceleration limit from the second target position until the third target position is reached from a difference between the third target position and the second target position, and then dividing a value obtained by the subtraction by a value corresponding to a length of the second control period.
[0072] According to this path generation method, it is possible to obtain the lower limit speed at the second target position with a simple calculation.
[0073] (3) In the path generation method described above, after the step (b3), the step (b) may include (b4) determining whether or not the path speed at the second target position is no higher than upper limit speed at which the third target position is not exceeded at the estimated arrival time at the third target position when assuming that the path speed at the second target position is decelerated at a deceleration limit to the third target position, and (b5) correcting the path speed between the first target position and the second target position so that the path speed at the second target position becomes no higher than the upper limit speed when it is determined that the path speed at the second target position fails to be no higher than the upper limit speed.
[0074] According to this path generation method, since the correction of the path speed between the first target position and the second target position is performed so that the path speed at the second target position becomes no higher than the upper limit speed, it is possible to determine the path so that the third target position can be reached at the estimated arrival time at the third target position.
[0075] (4) In the path generation method described above, between the step (b1) and the step (b2), the step (b) may include correcting the path position so that path acceleration obtained from an interpolation result of the linear interpolation becomes no higher than the acceleration limit when the path acceleration exceeds the acceleration limit.
[0076] According to this path generation method, since the correction of the path position taking the acceleration limit into consideration is performed, it is possible to determine the path position of the robot without causing the exceedance over the acceleration limit.
[0077] (5) According to a second aspect of the present disclosure, there is provided a robot control system. The robot control system is provided with a robot having a servo controller, a robot controller configured to transmit a control command to the servo controller, and an external apparatus configured to sequentially transmit command information including a control command to the robot controller with a second control period longer than a first control period as a control period of a path related to a target position of a joint of the robot. The robot controller is configured to execute (a) processing of sequentially receiving the command information from the external apparatus with the second control period, and (b) processing of determining a path position in each of the first control periods with interpolation between a first target position and a second target position next to the first target position using a first control command representing the first target position and a second control command representing the second target position. The processing (b) includes (b1) processing of obtaining the path position in each of the first control periods by performing linear interpolation between the first target position and the second target position, and (b2) processing of correcting the path position so that path acceleration obtained from an interpolation result of the linear interpolation becomes no higher than acceleration limit when the path acceleration exceeds the acceleration limit.
[0078] The present disclosure can be implemented in a variety of aspects other than the above. For example, it is possible to implement the present disclosure in an aspect such as a robotic system provided with a robot and a robot control device, a computer program for realizing the function of the robot control device, or a non-transitory storage medium recording the computer program.