INFORMATION PROCESSING METHOD, CONTROL METHOD OF ROBOT DEVICE, ROBOT SYSTEM, ARTICLE MANUFACTURING METHOD AND INFORMATION PROCESSING APPARATUS
20210170599 · 2021-06-10
Inventors
Cpc classification
B25J19/0025
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1664
PERFORMING OPERATIONS; TRANSPORTING
B25J19/007
PERFORMING OPERATIONS; TRANSPORTING
G06F3/0484
PHYSICS
G06N3/126
PHYSICS
International classification
Abstract
An information processing method includes an output step in which a control device outputs a wire model having a length and a fixed position that satisfy a predetermined condition based on an initial value of at least one fixed position where a wire wired outside of a movable unit is fixed, an initial value of the length of the wire, and search conditions including physical constraints imposed on the wire associated with a move of the movable unit.
Claims
1. An information processing method comprising: an output step in which a control device outputs a wire model having a length and a fixed position that satisfy a predetermined condition based on an initial value of at least one fixed position where a wire wired outside of a movable unit is fixed, an initial value of the length of the wire, and search conditions including physical constraints imposed on the wire associated with a move of the movable unit.
2. The information processing method according to claim 1, further comprising: an initial value setting step in which the control device sets the initial value of the fixed position and the initial value of the length of the wire based on user operation; and a search condition setting step in which the control device sets the search conditions based on user operation.
3. The information processing method according to claim 1, further comprising: a first wire model generating step in which the control device generates a first wire model corresponding to the wire based on the initial value of the fixed position and the initial value of the length of the wire; and a second wire model generating step in which the control device generates at least one second wire model having a length and a fixed position different from those of the first wire model based on the search condition, wherein the control device outputs the wire model having a length and a fixed position that satisfy the predetermined condition based on the first wire model and/or the second wire model in the output step.
4. The information processing method according to claim 3, further comprising: an evaluation step in which the control device generates an evaluation value for a length and a fixed position of the first wire model and/or the second wire model based on a result of a simulation that simulates a motion of a device model corresponding to the movable unit and a motion of the first wire model and/or the second wire model associated with the motion of the device model in a virtual environment, wherein the control device searches based on the evaluation value in the output step.
5. The information processing method according to claim 4, wherein the movable unit is a robot device and the control device simulates a motion of the robot device and a motion of the first wire model and/or the second wire model associated with the motion of the robot device in a virtual environment.
6. The information processing method according to claim 4, wherein the search conditions include a definition of a passable area of the wire model in the virtual environment.
7. The information processing method according to claim 3, wherein the control device generates a length and/or a fixed position of the second wire model based on search ranges of the length and/or the fixed position set by user operation.
8. The information processing method according to claim 3, wherein the physical constraints include a value of a minimum radius of curvature of the second wire model.
9. The information processing method according to claim 3, wherein the physical constraints include a value of a maximum load at an end portion of the second wire model.
10. The information processing method according to claim 1, wherein the control device searches the wire model having the length and the fixed position that satisfy the predetermined conditions by a genetic algorism in the output step.
11. A non-transitory computer-readable recording medium configured to store a control program for executing processes of the information processing method according to claim 1.
12. A control method of a robot device, wherein the movable unit in the information processing method according to claim 1 is a robot device around which the wire is wired, and wherein the robot device finds a wire model by the information processing method according to claim 1 and controls a motion of the robot device based on the wire model.
13. A robot system comprising the robot device controlled by the control method according to claim 12.
14. An article manufacturing method configured to manufacture articles from workpieces manipulated by the robot system according to claim 13.
15. An information processing apparatus comprising: a control device that outputs a wire model having a length and a fixed position that satisfy a predetermined condition based on an initial value of at least one fixed position where a wire wired outside of a movable unit is fixed, an initial value of the length of the wire and search conditions including a physical constraint imposed on the wire associated with a motion of the movable unit.
16. The information processing apparatus according to claim 15, wherein the control device generates a first wire model corresponding to the wire based on the initial value of the fixed position and the initial value of the length of the wire, wherein the control device generates at least one second wire model having a length and a fixed position different from those of the first wire model, and wherein the control device outputs the wire model having the length and the fixed position that satisfy the predetermined condition based on the first wire model and/or the second wire model.
17. The information processing apparatus according to claim 16, further comprising a user interface unit configured to output a motion of a device model corresponding to the movable unit and a motion of the second wire model associated with the motion of the device model in a virtual environment.
18. The information processing apparatus according to claim 15, further comprising a user interface unit configured to output the wire model having the length and the fixed position that satisfy the predetermined conditions.
19. The information processing apparatus according to claim 15, further comprising a user interface unit that receives user operation for setting the initial value of at least one fixed position where the wire wired outside of the movable unit is fixed and/or the initial value of the length of the wire.
20. The information processing apparatus according to claim 15, further comprising a user interface unit that receives user operation for setting the search conditions including the physical constraints to be satisfied by the wire in association with the motion of the movable unit.
21. The information processing apparatus according to claim 15, further comprising a user interface unit configured to output that there exists no wire model in a case where the wire model that has a length and a fixed position satisfying the predetermined conditions does not exist.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
DESCRIPTION OF THE EMBODIMENTS
[0033] Modes for carrying out of the present disclosure will be described below with reference to the attached drawings. Note that configurations described below are examples to the end, and a person skilled in the art would be able to appropriately modify their detailed configurations for example within a scope not departing from a gist of the present disclosure. Still further, numerical values adopted in the present exemplary embodiment are merely illustrations of reference numerical values.
First Exemplary Embodiment
[0034] A cable wiring design support system of the present exemplary embodiment will be described below with reference to
[0035]
[0036] The control device 1 in
[0037] A control program for causing the CPU 20 to execute control steps described later is stored in the ROM 21. Then, based on the control program stored in the ROM 21, the CPU 20 executes a control procedure described later. The RAM 22 composes a storage device for temporarily storing process results of the CPU 20. The HDD 23 is an external storage device and stores various information such as parts data, calculation formula of three-dimensional finite element method and others in advance. The HDD 23 stores data such as calculation results of the CPU 20 in accordance with an instruction of the CPU 20.
[0038] The control device 1 corresponds to an information processing apparatus as a control main body executing an information processing method for supporting design of a wire of the present exemplary embodiment. The control device 1 is provided with operation input portions including pointing devices such as a keyboard 11 connected through the interface 25 and a mouse 12 connected through the interface 26 to be able to receive various operation inputs. The control device 1 is also provided with a monitor 13 connected through the interface 27 to be able to display various screens such as a data input, i.e., data edit, screen and a display screen for displaying parts and others in a virtual three-dimensional space. A user interface is constructed by using the operation input portions such as the monitor, i.e., the display, 13, the keyboard 11 and the mouse 12. It is possible to realize GUIs (Graphical User Interface) provided with dialogs and menus as described later by this user interface, and the user can make input settings related to conditions for searching intended cable wiring for example.
[0039] The interface 28 is configured to be able to connect the external storage device 14 such as rewritable non-volatile memory and an external HDD. A recording disk drive 24 enables to access to the recording disk 15 in reading/writing from/to it. The recording disk 15 can store a program for causing the CPU 20 serving as the control device to execute wiring design support calculation of the present exemplary embodiment. In a case where the recording disk 15 stores the program of the wiring design support calculation of the present exemplary embodiment, the recording disk 15 composes a computer-readable non-temporal storage medium of the present exemplary embodiment. Note that it is also possible to install the program of the wiring design support calculation of the present exemplary embodiment in a rewritable storage area of the external storage device 14, the RAM 22 or the ROM 21 by using the recording disk 15. It is also possible to update an already installed program by using the recording disk 15. However, the installment and update of the program of the wiring design support calculation of the present exemplary embodiment may be performed through a network or the like not illustrated.
[0040]
[0041] It is desirable to be able to confirm states how the robot device motions in an arbitrary environment to perform the cable wiring design corresponding to the motion of the robot device and its surrounding environment. To that end, the control device 1 of the present exemplary embodiment is constructed as a cable wiring design support system 1301 including functional blocks as illustrated in
[0042] A cable, i.e., a wire, which is an object of the cable wiring design support system 1301 is disposed outside of the robot device along a body thereof and is deformed or is displaced in association with a motion of the robot device. Accordingly, it is preferable for the cable wiring design support system 1301 to include the robot simulating function 1302 if the cable wiring design support system 1301 is to simulate specifications such as a position of an end point and a length, i.e., a whole length, of the cable, i.e., the wire.
[0043] The robot simulating function 1302, the cable model generating function 1303 and the cable wiring searching function 1304 of the cable wiring design support system 1301 will be described below.
[0044]
[0045] The cable model generating function 1303 in
[0046] It is noted that the “fixed positions” of the “end points” where the cable, i.e., the wire, is fixed and is connected are for reference only and do not always mean cut end surfaces of both ends of the cable, i.e., the wire, in the present specification. The “end point positions” and “fixed positions” refer to positions where the cable is fixed to a movable device or the surrounding environment by a clip or a connector in specific directions, i.e., a posture expressed by rotation angles α±, β±, γ± described later in a specific three-dimensional coordinate X, Y and Z described later.
[0047] The actual robot device 41 manipulates the workpiece serving as the object to be worked 42 with the same motion with a motion simulated by the robot simulating function 1302. This arrangement makes it possible to manufacture articles such as industrial products from the workpieces serving as the object to be worked 42 in a robot system composing a production line in which the robot device 41 is disposed.
[0048]
[0049]
[0050] In the GUI 1340 in
[0051] The GUI 1330 in
[0052] In the GUI 1330 in
[0053] Still further, as for the length 74 of the cable, it is preferable to set a length having a sufficient margin such that the cable will not be fully extended even if the robot moves. The positions 72 and 73 as the fixed positions and the length 74 of the cable in the GUI 1330 in
[0054] When a cable generating button 75 in the GUI 1330 in
[0055] A length (L) per divisional unit of the cable for example is determined in generating the cable model, i.e., the wire model. While the shorter the length of the divisional unit, the smoother the cable can be simulated, a calculation time increases because the number of divisions increases. As a standard for performing a fully smooth simulation, the divisional unit length (L) can be determined from a diameter (φ) of the cable, as follows:
L=ø Eq.1
[0056] Because a shape of the cable division unit is a cylinder having the length (L), information of mass (m), inertia (I) and gravity (g) which are parameters related to the mass can be calculated from a diameter (φ), the divisional unit length (L) and the density (D) as follows. Here, this cylinder is assumed to be extending in a Z-direction of the part coordinate system:
[0057] Next, stiffness coefficient (k) and viscosity coefficient (d) per cable division unit are calculated from Young's modulus (E), Poisson's ratio (P), attenuation factor (δ) and others which are parameters related to characteristics of the curve of the cable. These stiffness coefficient (k) and viscosity coefficient (d) can be calculated as follows about the respective directions of x, y and z of the part coordinate system. As a matter of course, values indicated by the table in
[0058] A cable model, i.e., a first wire model, in an initial state can be generated by a length specified by the user by connecting the cylindrical models of the cable division unit calculated as described above through a spherical joint and others for example.
[0059] In a cable posture calculation step 1323 in
[0060] Here, a root of the cable model of the generated cable model, i.e., the wire model, is installed at the position A where the end point is fixed. While the cable is not deformed and the position B does not coincide with the distal end of the cable in this stage, a variation of the divided cable part can be calculated by performing an inverse kinematics computing such that the distal end of the cable model coincides with the position of the end point B.
[0061] Thus, the cable model, i.e., the first wire model, corresponding to the initial state defined by the fixed positions and the length of the initial values by which the end points are fixed, respectively, is generated by the cable posture calculation step 1323. Then, the cable model generated as the first wire model in the initial state in the cable model outputting step 1324 in
[0062] According to the present exemplary embodiment, it is possible to search a wire model, i.e., a cable wiring, having appropriate end point positions and a length by a cable wiring searching function 1350, i.e., the cable wiring searching function 1304 in
[0063] In the cable wiring searching function 1350, it is possible to search and specify the wire model having the appropriate end point fixed positions and the length meeting the eligible criteria by considering results of the robot simulation. Then, it is possible to output the appropriate end point fixed positions and the length meeting the eligible criteria of the wire model.
[0064] In the GUI 1360 in
[0065] Still further, it is possible to specify physical constraints to be imposed on the cable model in the robot motion as a part of the search conditions in 105, 106 and 107. Included among the search conditions are an allowable cable minimum radius of curvature in 105, a cable end maximum load in 106 and an interference detected object in 107 for example. The interference detected object in 107 can be specified in a form as illustrated in
[0066] In the specification of the robot motion 101 in the GUI 1360 in
[0067] Still further, in
[0068] Finally, the search conditions are inputted. The physical constraints to be imposed on the cable model such as a setting in 105 of the minimum value of the radius of curvature of the cable, a setting 106 of the maximum value of the load applied to the cable ends and a setting 1 in 07 of the object that should not come into contact with the cable are inputted. After inputting all these parameters, the wiring search can be started by pressing the search start button 108.
[0069] In the wiring candidate generating step 1352 in
[0070] The second wire model to be generated as the evaluation candidate is defined by the parameters of the specific positions A and B and the length included in the specified search ranges 102 through 104 similarly to the first wire model in the initial state. Due to that, the second wire model can be generated by the same routine with the cable model generating function 1303 described above by using the specific positions A and B and the length.
[0071] Although a shape of the specific cable mode, i.e., the first or second wire model, may change in association with the motion of the robot device (device model) around which the cable model is disposed, the cable model is defined uniquely by the parameters of the fixed positions, i.e., the positions A and B and the length. Accordingly, such descriptions as “search of candidates of end point positions and length” used below may be considered to be equivalent with “search of a cable model, i.e., a wire model”.
[0072] In a wiring candidate evaluating step 1353 in
[0073] If the simulation results do not satisfy the search conditions described above, an evaluation value 0 is generated as a lowest evaluation value. Because calculation systems of the detection of interference of the cable with the robot and the surrounding environment and of the load applied to the cable end to be performed in the wiring candidate evaluating step 1353 in
[0074] It is possible to calculate the radius of curvature at each division point of the cable model divided into the fine division unit as described above as illustrated in
[0075] The radius of curvature (R) of the cable model is changed in association with the simulated robot motion. It is possible to calculate the variation (S) of the radius of curvature (R) from the division unit 111 to the division unit 112, as follow for example:
S=∫.sub.t=0.sup.T|R.sub.t+1−R.sub.t| Eq. 5
[0076] The variation (S) of the radius of curvature is calculated between all divided parts composing the cable model. In such a case, a place of a division unit where a maximum value (S.sub.MAX) of the variation (S) is calculated may be considered to be a spot where a possibility of being broken or damaged is highest.
[0077] Then, because the accumulation of a load to the cable is considered to be proportional to the variation (S) of the radius of curvature, it is possible to calculate the evaluation value (V) of the wiring candidate by using the maximum value (S.sub.MAX) of the variation for example, as follows:
[0078] It is possible to generate the evaluation values of the related model or its fixed positions and the length by making the abovementioned calculations on all of the second wire model or the first wire model as the wiring candidates. It is also possible to rank the wiring design of the second wire model or the first wire model as the wiring candidate by using the evaluation values.
[0079] Then, a GUI 1370 as illustrated in
[0080] Note that it is possible to arrange such that the search process in the search step is outputted by the three-dimensional simulation display 161 by the user interface composed of the GUI using the monitor 13, the mouse 12 and others. Still further, the robot motion and the motion of the cable model in the virtual environment can be outputted by the simulation display 161 at that time. In such a case, it is possible to present the position and others of the division unit where the maximum value (S.sub.MAX) of the variation (S) of the radius of curvature has been calculated as a spot which may be highly possible to be broken by such method of indicating by a mark within the simulation display 161, of changing a display color or of highlight.
[0081] Still further, in a case where all of the sought wiring candidates do not satisfy the search conditions and the evaluation value is zero, a dialog in a GUI 1420 as illustrated in
[0082] As described above, according to the present exemplary embodiment, it is possible to design an efficient wiring associated with the motion of the robot device serving as the movable unit and the surrounding environment thereof. In such a case, it is possible to output the values related to the length i.e., a whole length, and the fixed positions that satisfy the eligible criteria concerning the cable, i.e., the wire, of a specific type which has less possibility of been broken and which interferes with no surrounding environment.
Second Exemplary Embodiment
[0083] The example of outputting one of the second wire model or the first wire model which has been evaluated most in the wiring candidate evaluating step as illustrated in
[0084] In a wiring design work, there may be a case where it is preferable to compare computation results of the respective parameters of the different fixed positions, i.e., the positions A and B, and the length (L). If such a need is taken into consideration, it is conceivable to be effective to present the user of those whose evaluations have been superior among the wiring search results by the GUI 1410 in
Third Exemplary Embodiment
[0085]
[0086]
[0087] Next, a wiring candidate, i.e., a second wire model, is generated for the cable model specified by the field 181 in the wiring candidate generating step in
[0088]
[0089] Thus, the present exemplary embodiment enables to select the optimum cable associated with the motion of the movable unit and the surrounding environment among a plurality of types of cables and to perform the wiring design including the cable length and the fixed positions of the cable ends.
Fourth Exemplary Embodiment
[0090] An extended function of the cable wiring design support system will be described by citing
[0091] In designing a work environment using the robot device, a layout such as positions of a robot and peripheral units is often determined first and then teaching of the robot is made to determine its motion. It is conceivable that a need of setting a range where the cable passes occurs at the time of layout in a case of using the wiring design support system.
[0092] In order to accommodate with this need in the wiring design support system, it is considered to be effective to introduce a cable passable area in the search conditions.
[0093]
[0094]
[0095] Then, a process for confirming whether the cable does not deviate out of the passable area just needs to be performed in the wiring candidate evaluating step 1353 in
[0096] As described above, according to the present exemplary embodiment, it is possible to output the cable model, i.e., the wire model, the length thereof and the fixed positions of the end portions thereof in particular by considering the constraint that the cable does not deviate out of the cable passable area designed in advance. Because no three-dimensional model of the robot surrounding environment needs to be prepared as a secondary effect in the case where the cable passable area is added, the search calculation of the cable wiring can be realized more readily. Note that while the example of setting the cuboid cable passable area has been illustrated in the present exemplary embodiment, it is needless to say that it is possible to calculate the evaluation values by the similar method even if the passable area is cylindrical or is complicated.
Fifth Exemplary Embodiment
[0097] A possibility of speeding up the process for searching the cable model, i.e., the wire model, will be studied in the present exemplary embodiment. For instance, the search ranges of the end point fixed positions, i.e., the positions A and B, and the length (L) specified in the GUIs 1360 and 1380 in
[0098] Then, it is necessary to lower the search grain size to lower the calculation costs in some cases depending on performance of the CPU 20 serving as the arithmetic unit of the wiring design support system. However, if the search grain size is too low, there is a possibility that optimality of the wiring design finally outputted is lowered.
[0099] As a technique for solving such an issue, it is conceivable to use a genetic algorism which is one type of meta-heuristic like the present exemplary embodiment.
[0100]
[0101] In a search parameter inputting step in Step S101 in
[0102] Next, finite genes are generated at random within the search ranges in a gene initializing step in Step S102. For instance, genes having various cable end point positions and cable lengths are generated like an initial generation 1G as illustrated in an upper case in
[0103] It is judged whether the optimization is being fully in progress in an optimization completion judging step in Step S104. The optimization completion judging step in Step S104 functions also for determining an escape condition of the searching process. A comparison operation for determining whether a number of generations of the genes and evaluation values of the wiring candidates exceed a certain number in the optimization completion judging step in Step S104. Then, if it is judged that the optimization has been fully achieved in Step S104, the optimization is completed and an optimum wiring candidate is outputted in Step S105.
[0104] In a case where it is judged that the optimization is not in progress in the optimization completion judging step in Step S104, the process shifts to a wiring candidate generating step in Step S106 of the genetic algorism to replace genetic codes by altering generations of the genes and to generate wiring candidates, i.e., second wire models, of a next generation.
[0105] In the wiring candidate generating step in Step S106 of the genetic algorism, the wiring candidates are generated from end point positions and lengths of the cables specified by the respective genes to alter generations of the genes, i.e., 1G to 2G to 3G . . . in
[0106] For instance, in the examples in
[0107] A genetic probability of genetic codes of highly evaluated genes is enhanced by searching the wiring candidate, i.e., the wire model, by the arithmetic operation of the genetic algorism as described above. Still further, a eugenic control process affects according to this technique. Therefore, there is a possibility of being able to search a highly optimum wiring candidate, i.e., a wire model, more effectively than a technique of exhaustively searching a large amount of wiring candidates, i.e., wire models, i.e., than a so-called Brute force approach.
[0108] As described above, according to the present exemplary embodiment, there is a possibility that the highly optimum wiring design can be obtained in a short time with a calculation resources with limited processing ability by searching the wiring candidates, i.e., the wire models, by the arithmetic operation of the genetic algorism.
[0109] The configuration and effects of the exemplary embodiments described above are exemplary to the end, and a person skilled in the art would be able to add design change to the exemplary embodiments described above within a range not departing from the thought of the present disclosure. For instance, the wire model, i.e., the cable model, has been described as having the parameters of the two fixed positions and the length in the exemplary embodiments described above. However, there may be a case where a wire, i.e., a cable, is fixed to a movable unit at a plurality of fixed positions in actual hardware. In such a configuration, an arithmetic operation may be made by allotting a partial wire from one fixed position to another fixed position to the wire model, the cable model, in the exemplary embodiments described above. Still further, while the robot device has been illustrated as the movable unit, a number of joints and disposition of the joints of the robot device are arbitral. The movable unit may be a movable unit driven by some power other than the robot device. Still further, the wire, i.e., the cable, includes a pipe and a tube for transmitting other medium such as air and liquid other than the wire for electrical transmission such as signal cable.
[0110] The present disclosure can also be realized by a process that supplies a program that realizes one or more functions of the abovementioned exemplary embodiments to a system or an apparatus through a network or a storage medium, wherein one or more processors within the system or the apparatus read and execute the program. Still further, the present disclosure can be realized by a circuit, e.g., ASIC, that realizes one or more functions.
[0111] Still further, while the various exemplary embodiments described above have illustrated the configuration in which the robot device 41 is equipped with the articulate robot arm having a plurality of joints, the number of joints is not limited to that. Still further, while the vertical multi-shaft configuration has been illustrated as the form of the robot device, it is possible to carry out the same configuration with those described above even by joints having different form such as a parallel-link type joints.
[0112] The various exemplary embodiments described above are applicable to machines that can automatically perform a telescopic motion, a flexion motion, a vertical move, a lateral move or a swivel motion or their composite motion based on information in the storage unit provided in the control device.
[0113] Note that the present disclosure is not limited to the exemplary embodiments described above and may be modified variously within a technical concept of the present disclosure. Still further, the advantageous effects described above in the exemplary embodiments are merely an enumeration of most preferable effects brought about from the present disclosure. That is, the advantageous effects of the present disclosure are not limited to those described in the exemplary embodiments of the present disclosure.
OTHER EMBODIMENTS
[0114] Embodiment(s) of the present disclosure can also be realized by a computer of a system or apparatus that reads out and executes computer executable instructions (e.g., one or more programs) recorded on a storage medium (which may also be referred to more fully as a ‘non-transitory computer-readable storage medium’) to perform the functions of one or more of the above-described embodiment(s) and/or that includes one or more circuits (e.g., application specific integrated circuit (ASIC)) for performing the functions of one or more of the above-described embodiment(s), and by a method performed by the computer of the system or apparatus by, for example, reading out and executing the computer executable instructions from the storage medium to perform the functions of one or more of the above-described embodiment(s) and/or controlling the one or more circuits to perform the functions of one or more of the above-described embodiment(s). The computer may comprise one or more processors (e.g., central processing unit (CPU), micro processing unit (MPU)) and may include a network of separate computers or separate processors to read out and execute the computer executable instructions. The computer executable instructions may be provided to the computer, for example, from a network or the storage medium. The storage medium may include, for example, one or more of a hard disk, a random-access memory (RAM), a read only memory (ROM), a storage of distributed computing systems, an optical disk (such as a compact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™), a flash memory device, a memory card, and the like.
[0115] While the present disclosure includes exemplary embodiments, it is to be understood that the disclosure is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
[0116] This application claims the benefit of Japanese Patent Application No. 2019-221557, filed Dec. 6, 2019, which is hereby incorporated by reference herein in its entirety.