Patent Publication Number: US-2022226990-A1

Title: Robotic arm system, control method thereof and computer program product thereof

Description:
This application claims the benefit of Taiwan application Serial No. 110101979, filed Jan. 19, 2021, the subject matter of which is incorporated herein by reference. 
     TECHNICAL FIELD 
     The disclosure relates in general to a robotic arm system, a control method thereof and a computer program product thereof. 
     BACKGROUND 
     The technology that uses dual robotic arms to coordinate and transport an object becomes more and more common. However, if applying force applied to the object grabbed (or held) by the dual robotic arms is uneven during transportation, it causes the problems of pulling, twisting, squeezing, etc. to occur in the object during transportation, and these problems cause deformation, damage or even falling of the object. Therefore, how to propose a technology that could resolving the problem of the uneven force applied to the object by the aforementioned dual robotic arms is one of the goals of the industry in this technical field. 
     SUMMARY 
     According to an embodiment, a robotic arm system is provided. The robotic arm system includes a first robotic arm, a second robotic arm and a main controller. The first robotic arm and the second robotic are configured to grab an object. The main controller is configured to: determine whether a first force vector of a first force applied by the first robotic arm to the object is equal to a second force vector of a second force applied by the second robotic arm to the object; when the first force vector and the second force vector are not equal, obtain a first difference between the first force vector and the second force vector; and according to the first difference, change at least one of the first force applied by the first robotic arm to the object and the second force applied by the second robotic arm to the object so that the first force vector and the second force are equal. 
     According to another embodiment, a control method for a robotic arm system is provided. The control method includes the following steps: determining whether a first force vector of a first force applied by a first robotic arm to an object is equal to a second force vector of a second force applied by a second robotic arm to the object; when the first force vector and the second force vector are not equal, obtaining a first difference between the first force vector and the second force vector; and according to the first difference, changing at least one of the first force applied by the first robotic arm to the object and the second force applied by the second robotic arm to the object so that the first force vector and the second force are equal. 
     According to another embodiment, a computer program product is provided. The computer program product is installed in a robotic arm system to execute a control method, wherein the control method includes: determining whether a first force vector of a first force applied by a first robotic arm to an object is equal to a second force vector of a second force applied by a second robotic arm to the object; when the first force vector and the second force vector are not equal, obtaining a first difference between the first force vector and the second force vector; and according to the first difference, changing at least one of the first force applied by the first robotic arm to the object and the second force applied by the second robotic arm to the object so that the first force vector and the second force are equal. 
     The above and other aspects of the disclosure will become better understood with regard to the following detailed description of the preferred but non-limiting embodiment (s). The following description is made with reference to the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  shows a schematic diagram of a robotic arm system according to an embodiment of the present disclosure; 
         FIG. 2  shows a diagram of a forced pattern (e.g., translation) of an object clamped by the robotic arm system of  FIG. 1A ; 
         FIG. 3  shows a diagram of another forced pattern (e.g., rotation) of the object clamped by the robotic arm system of  FIG. 1 ; 
         FIG. 4  shows a schematic diagram of several first force vectors of the first force of  FIG. 1 ; 
         FIG. 5  shows a schematic diagram of the second force vectors of the second force of  FIG. 1 ; 
         FIG. 6  shows a schematic diagram of the first force vectors and the second force vectors of  FIG. 1  being mapped in a common coordinate system; 
         FIG. 7  shows a schematic diagram of several first force vectors of the first force of  FIG. 3 ; 
         FIG. 8  shows a schematic diagram of the second force vectors of the second force of  FIG. 3 ; 
         FIG. 9  shows a schematic diagram of the first force vectors and the second force vectors of  FIG. 7  being mapped in the common coordinate system; and 
         FIG. 10  shows a flow chart of one of the control methods for the robotic arm system of  FIG. 1 . 
     
    
    
     In the following detailed description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed embodiments. It will be apparent, however, that one or more embodiments may be practiced without these specific details. In other instances, well-known structures and devices are schematically shown in order to simplify the drawing. 
     DETAILED DESCRIPTION 
     Referring to  FIGS. 1 to 3 .  FIG. 1  shows a schematic diagram of a robotic arm system  100  according to an embodiment of the present disclosure, and  FIG. 2  shows a diagram of a forced pattern (e.g., translation) of an object  10  clamped by the robotic arm system  100  of  FIG. 1A , and  FIG. 3  shows a diagram of another forced pattern (e.g., rotation) of the object  10  clamped by the robotic arm system  100  of  FIG. 1 . 
     The robotic arm system  100  includes a first robotic arm  110 , a second robotic arm  120 , a main controller  130 , a first force sensor  140 , a second force sensor  150 , a first driver  160 , a first arm controller  165 , a second driver  170  and a second arm controller  175 . The first robotic arm  110  and the second robotic arm  120  could jointly (or together) grab the object  10  and translate (for example, move in a straight direction) and/or rotate the object  10  to transport the object  10 . As shown in  FIG. 2 , the first force Fa applied by the first robotic arm  110  and the second force Fb applied by the second robotic arm  120  to the object  10  are substantially in same direction and parallel to each other, and such forced pattern could translate the object  10 . As shown in  FIG. 3 , the first force Fa applied by the first robotic arm  110  and the second force Fb applied by the second robotic arm  120  to the object  10  are in opposite directions respectively, and such forced pattern could rotate the object  10 . In an embodiment, depending on the magnitude and the direction of the first force Fa and the second force Fb, the object  10  could be subjected to one of translation and rotation, or both. 
     In addition, as shown in  FIGS. 1 to 3 , the point a and the point b of the object  10  are applied force points at which the first robotic arm  110  and the second robotic arm  120  apply force to two ends of the object  10  respectively. 
     The main controller  130  is configured to: (1) determine whether a first force vector of the first force Fa applied by the first robotic arm  110  and a second force vector of the second force Fb applied by the second robotic arm  120  to the object  10  are equal; (2). when the first force vector is not equal to the second force vector, obtain a first difference between the first force vector and the second force vector; (3). change at least one of the first force Fa applied by the first robotic arm  110  to the object  10  and the second force Fb applied by the second robotic arm  120  to the object  10  according to the first difference so that the first force vector is equal to the second force vector. The “difference” herein refers to a result value of the subtraction operation. As a result, the main controller  130  could control the force applied by the robotic arm to the object  10  to make the first force vector be equal to the second force vector, so as to eliminate the composite of internal force in the object  10 . The less the composite of internal force in the object  10  is, the less the internal stress and deformation of the object  10  are. 
     By the aforementioned control method, even if the object  10  is pulled, twisted, squeezed, etc. during the process of transporting the object  10  by the robotic arm system  100 , the main controller  130  could change the force applied by the robotic arm to the object  10  at any time and immediately to reduce the composite of internal force. In addition, as long as the main controller  130  could control the force applied by the robotic arm to the object  10  and eliminate the composite of internal force, the present disclosure does not limit the method and/or the process of the main controller  130  controlling the force applied by the robotic arm to the object  10 . 
     In the present embodiment, the first force sensor  140  could be disposed on the first robotic arm  110  and configured to sense the first force Fa. The information of the first force Fa sensed by the first force sensor  140  could be transmitted to the main controller  130 . The second force sensor  150  is disposed on the second robotic arm  120  and configured to sense the second force Fb. The information of the second force Fb sensed by the second force sensor  150  could be transmitted to the main controller  130 . 
     In another embodiment, the information of the first force Fa and the information of the second force Fb could be provided to the main controller  130  by the driver of the robotic arm. For example, the first driver  160  is connected to the first robotic arm  110  and configured to drive the first robotic arm  110  to move. The first arm controller  165  is electrically connected to the first driver  160  and configured to obtain the first force Fa according to feedback signal E 1  from the first driver  160 , and then provide the feedback signal E 1  and/or the first force Fa to the main controller  130 . Similarly, the second driver  170  is connected to the second robotic arm  120  and configured to drive the second robotic arm  120  to move. The second arm controller  175  is electrically connected to the second driver  170  and configured to obtain the second force Fb according to feedback signal E 2  from the second driver  170 , and then provide the feedback signal E 2  and/or the second force Fb to the main controller  130 . In the present example, the robotic arm system  100  could optionally omit the first force sensor  140  and the second force sensor  150 . 
     Embodiment: The Situation of the Object being Translated 
     Referring to  FIGS. 4 to 6 ,  FIG. 4  shows a schematic diagram of several first force vectors F aX , F aY  and F aZ  of the first force Fa of  FIG. 1 , and  FIG. 5  shows a schematic diagram of the second force vectors F bX , F bY  and F bZ  of the second force Fb of  FIG. 1 , and  FIG. 6  shows a schematic diagram of the first force vectors F aX , F aY  and F aZ  and the second force vectors F bX , F bY  and F bZ  of  FIG. 1  being mapped in a common coordinate system X-Y-Z. 
     The main controller  130  is configured to: (1) define the common coordinate system XYZ, wherein the common coordinate system XYZ has a first axis X, a second axis Y and a third axis Z that are perpendicular to each other; (2). obtain the first force vectors F aX , F aY  and F aZ  of the first force Fa relative to the common coordinate system X-Y-Z, wherein the first force vector F aX  is component of the first force Fa projected on the first axis X, the first force vector F aY  is component of the first force Fa projected on the second axis Y, and the first force vector F aZ  is component of the first force Fa projected on the third axis Z; (3). obtain the second force vectors F bX , F bY  and F bZ  of the second force Fb relative to the common coordinate system X-Y-Z, wherein the second force vector F bX  is component of the second force Fb projected on the first axis X, the second force vector F bY  is component of the second force Fb projected on the second axis Y, and the second force vector F bZ  is component of the second force Fb projected on the third axis Z; and, (4). map the first force vectors F aX , F aY  and F aZ  and the second force vectors F bX , F bY  and F bZ  to the common coordinate system X-Y-Z, and determine whether the first force vectors F aX , F aY  and F aZ  are equal to the second force vectors F bX , F bY  and F bZ  in the common coordinate system X-Y-Z. 
     As shown in  FIG. 6 , the main controller  130  is further configured to: (1) determine whether the first force vectors (F aX , F aY  and/or F aZ ) and the second force vectors (F bX , F bY  and/or F bZ ) are in the same direction; (2). obtain the first difference ΔFx between the first force vector (F aX , F aY  and/or F aZ ) and the second force vector F bX ; (3). when the first force vector (F aX , F aY  and/or F aZ ) and the second force vector F bX  are in the same direction, control the first robotic arm  110  or the second robotic arm  120 , such that the sum of the first difference ΔFx and the smaller one of the first force vector F aX  and the second force vector F bX  is equal to the larger one of the first force vector (F aX , F aY  and/or F aZ ) and the second force vector (F bX , F bY  and/or F bZ ). In other words, the main controller  130  could first obtain the smaller one of the first force vector (F aX , F aY  and/or F aZ ) and the second force vector (F bX , F bY  and/or F bZ ), and then obtain (or calculate) the sum of the smaller one and the first difference ΔFx, and then control the force applied by the first robotic arm  110  or the second robotic arm  120  to the object  10  for making the sum be substantially equal to the larger one of the first force vector (F aX , F aY  and/or F aZ ) and the second force vector (F bX , F bY  and/or F bZ ). In an embodiment, the aforementioned first difference is, for example, the absolute value of the difference between the first force vector and the second force vector. 
     Furthermore, the first force vector F aX  greater than the second force vector F bX  is taken for example. The main controller  130  could determine the first difference (could be regarded as adjusting the force) ΔFx applied by the first robotic arm  110  and/or the second robotic arm  120  to the object  10  according to the following formulas (a) and (b). As shown in the following formula (b), due to the second force vector F bX  being smaller than the first force vector F aX , the second robotic arm  120  is controlled to apply the adjusted second force vector F′ bX  to the object  10 , wherein the second force vector F′ bX  is the sum of the second force vector F bX  and the first difference ΔFx. 
       | F   aX   −F   bX   |=ΔFx   (a)
 
         F   bX   +ΔFx=F′   bX   (b)
 
     In another embodiment, the main controller  130  is configured to: (1) control the first robotic arm  110  or the second robotic arm  120  so that a second difference between the larger one of the first force vectors (F aX , F aY  and/or F aZ ) and the second force vectors (F bX , F bY  and/or F bZ ) and the first difference ΔFx is equal to the smaller one of the first force vectors (F ax , F aY  and/or F aZ ) and the second force vectors (F bX , F bY  and/or F bZ ). The “difference” herein refers to a result value of the subtraction operation. In other words, the main controller  130  could first obtain the larger one of the first force vector (F aX , F aY  and/or F aZ ) and the second force vector (F bX , F bY  and/or F bZ ), and then obtain (or calculate) the difference (i.e., the second difference) between the larger one and the first difference ΔFx, and then control the force applied by the first robotic arm  110  or the second robotic arm  120  to the object  10  for making the second difference be substantially equal to the smaller one. 
     Furthermore, the first force vector F aX  greater than the second force vector F bX  is taken as example, the main controller  130  could determine the first difference ΔFx applied by the first robotic arm  110  and/or the second robotic arm  120  to the object  10  according to the following formulas (a). As shown in the following formula (c), due to the first force vector F aX  being larger than the second force vector F bX , the first robotic arm  110  is controlled to apply the adjusted first force vector F′ aX  to the object  10 , wherein the adjusted first force vector F′ aX  is the second difference between the first force vector F aX  and the first difference. 
         F   aX   −ΔFx=F′   aX   (c)
 
     The first force vector F aY  and the second force vectors F bY  could be threated and the first force vector F aZ  and the second force vectors F bZ  could be threated using the same or similar to the aforementioned method for the first force vector F aX  and the second force vectors F bX , and the description is not repeated here. The main controller  130  could determine the adjustment force (e.g., the first difference) of the first robotic arm  110  and/or the second robotic arm  120  according to the aforementioned principles so that the first force vector is equal to the second force vector in the same axis to make the first force Fa and the second force Fb be equal. As a result, the first robotic arm  110  and the second robotic arm  120  could translate the object  10  at a constant speed, and thus it could reduce the compression deformation and/or the tension deformation of the object  10 , or even the compression deformation and/or the tension deformation do no occur. 
     In summary, when the object  10  is translated, the force applied by the first robotic arm  110  and/or the second robotic arm  120  to the object  10  could be increased or reduced so that the first force Fa and the second force Fb are equal. As a result, the first robotic arm  110  and the second robotic arm  120  could translate the object  10  at a constant speed and thus it could reduce the compression deformation and/or the tension deformation of the object  10 , or even the compression deformation and/or the tension deformation do no occur. 
     Embodiment: The Situation of the Object being Rotated 
     Referring  FIGS. 7 to 9 ,  FIG. 7  shows a schematic diagram of several first force vectors F aX , F aY  and F aZ  of the first force Fa of  FIG. 3 , and  FIG. 8  shows a schematic diagram of the second force vectors F bX , F bY  and F bZ  of the second force Fb of  FIG. 3 , and  FIG. 9  shows a schematic diagram of the first force vectors F aX , F aY  and F aZ  and the second force vectors F bX , F bY  and F bZ  of  FIG. 7  being mapped in the common coordinate system X-Y-Z. 
     The main controller  130  is configured to: (1) define the common coordinate system XYZ, wherein the common coordinate system XYZ has the first axis X, the second axis Y and the third axis Z that are perpendicular to each other; (2). obtain the first force vectors F aX , F aY  and F aZ  of the first force Fa relative to the common coordinate system X-Y-Z, wherein the first force vector F aX  is the component of the first force Fa projected on the first axis X, the first force vector F aY  is the component of the first force Fa projected on the second axis Y, and the first force vector F aZ  is the component of the first force Fa projected on the third axis Z; (3). obtain the second force vectors F bX , F bY  and F bZ  of the second force Fb relative to the common coordinate system X-Y-Z, wherein the second force vector F bX  is the component of the second force Fb projected on the first axis X, the second force vector F bY  is the component of the second force Fb projected on the second axis Y, and the second force vector F b z is the component of the second force Fb projected on the third axis Z; and, (4). map the first force vectors F aX , F aY  and F aZ  and the second force vectors F bX , F bY  and F bZ  to the common coordinate system X-Y-Z, wherein the first force vectors F aX , F aY  and F aZ  are equal to the second force vectors F bX , F bY  and F b z are determined in the common coordinate system X-Y-Z. 
     As shown in  FIG. 7 , the main controller  130  is further configured to: (1) determine whether the first force vectors (F aX , F aY  and/or F aZ ) is opposite to the second force vectors (F bX , F bY  and/or F bZ ); (2). obtain the first difference ΔFx between the first force vector F aX  and the second force vector F bX ; (3). when the first force vector (F aX , F aY  and/or F aZ ) is opposite to the second force vector (F bX , F bY  and/or F b z), control the first robotic arm  110  or the second robotic arm  120 , such that the sum of the first difference ΔFx and the smaller one of the first force vector (F aX , F aY  and/or F aZ ) and the second force vector (F bX , F bY  and/or F bZ ) is equal to the larger one of the first force vector F aX  and the second force vector F bX . In other words, the main controller  130  could first obtain the smaller one of the first force vector (F aX , F aY  and/or F aZ ) and the second force vector (F bX , F bY  and/or F b z), and then obtain (or calculate) the sum of the smaller one and the first difference ΔFx, and then control the force applied by the first robotic arm  110  or the second robotic arm  120  to the object  10  for making the sum be substantially equal to the larger one of the first force vector (F aX , F aY  and/or F aZ ) and the second force vector (F bX , F bY  and/or F bZ ). In an embodiment, the aforementioned first difference is, for example, the absolute value of the difference between the first force vector and the second force vector. 
     Furthermore, the first force vector F aX  greater than the second force vector F bX  is taken for example. The main controller  130  could determine the first difference ΔFx applied by the first robotic arm  110  and/or the second robotic arm  120  to the object  10  according to the following formulas (d) and (e). As shown in the following formula (e), due to the second force vector F bX  being smaller than the first force vector F aX , the second robotic arm  120  is controlled to apply the adjusted second force vector F′ bX  to the object  10 , wherein the second force vector F′ bX  is the sum of the second force vector F bX  and the first difference ΔFx. 
       | F   aX   −F   bX   |=ΔFx   (d)
 
         F   bX   +ΔFx=F′   bX   (e)
 
     Since the first force vector F aX  is equal to the adjusted second force vector F′ bX , the first torque T 1  (i.e., T 1 =R 1 ×F aX ) generated by the cross product of a distance R 1  to the first force vector F aX  between the point a and the point b in the object  10  is equal to the second torque T 2  (i.e., T 2 =R 1 ×F bX ) generated by cross product of the distance R 1  to the second force vector F bX . 
     In another embodiment, the main controller  130  is configured to: (1) control the first robotic arm  110  or the second robotic arm  120  so that a second difference between the larger one of the first force vectors (F aX , F aY  and/or F aZ ) and the second force vectors (F bX , F bY  and/or F bZ ) and the first difference ΔFx is equal to the smaller one of the first force vectors (F aX , F aY  and/or F aZ ) and the second force vectors (F bX , F bY  and/or F bZ ). In other words, the main controller  130  could first obtain the larger one of the first force vector (F aX , F aY  and/or F aZ ) and the second force vector (F bX , F bY  and/or F bZ ), and then obtain (or calculate) the difference (i.e., the second difference) between the larger one and the first difference ΔFx, and then control the force applied by the first robotic arm  110  or the second robotic arm  120  to the object  10  for making the second difference be substantially equal to the smaller one. 
     Furthermore, the first force vector F aX  greater than the second force vector F bX  is taken as example, the main controller  130  could determine the first difference ΔFx applied by the first robotic arm  110  and/or the second robotic arm  120  to the object  10  according to the following formulas (d). As shown in the following formula (f), due to the first force vector F aX  being larger than the second force vector F bX , the first robotic arm  110  is controlled to apply the adjusted first force vector F′ aX , to the object  10 , wherein the adjusted first force vector F′ aX  is the second difference between the first force vector F aX  and the first difference. 
         F   aX   −ΔFx=F′   aX   (f)
 
     The first force vector F aY  and the second force vectors F bY  could be threated and the first force vector F aZ  and the second force vectors F bZ  could be threated using the same or similar to the aforementioned method (in the situation of the object being rotated) for the first force vector F aX  and the second force vectors F bX , and the description is not repeated here. 
     In summary, when the object  10  is rotated, the main controller  130  could determine the adjustment force applied by the first robotic arm  110  and/or the second robotic arm  120  according to the aforementioned principles so that the torque generated by the first force vector is equal to the torque generated by the second force vector. As a result, the first robotic arm  110  and the second robotic arm  120  could rotate the object  10  at a constant speed, and it could reduce the distortion of the object  10 , or even the distortion do not occur. 
     Referring to  FIG. 10 ,  FIG. 10  shows a flow chart of one of the control methods for the robotic arm system  100  of  FIG. 1 . 
     In step S 110 , the main controller  130  obtains the first force Fa applied by the first robotic arm  110  to the object  10 . The information of obtaining the first force Fa could be obtained through the detection signal of the aforementioned sensor, or obtained according to the feedback signal of the driver. 
     In step S 120 , the main controller  130  obtains the second force Fb applied by the second robotic arm  120  to the object  10 . The information of obtaining the second force Fb could be obtained through the detection signal of the aforementioned sensor, or obtained according to the feedback signal of the driver. 
     In step S 130 , the main controller  130  determines whether the first force vectors F aX , F aY  and F aZ  of the first force Fa are equal to the second force vectors F bX , F bY  and F bZ  of the second force Fb. For example, if the first force vector F aX  is equal to the second force vector F bX , the first force vector F aY  is equal to the second force vector F bY , and the first force vector F aZ  is equal to the second force vector F bZ , it means that the robotic arm system  100  could translate the object  10  at the constant speed or rotate the object  10  at the constant speed, and thus it could maintain the current force control. If the first force vector F aX  is not equal to the second force vector F bX , the first force vector F aY  is not equal to the second force vector F bY , and/or the first force vector F aZ  is not equal to the second force vector F bZ , the process proceeds to step S 140 . 
     In step S 140 , the main controller  130  obtains the first difference between the first force vector F aX  and the second force vector F bX , the first difference between the first force vector F aY  and the second force vector F bY , and the first difference between the vector F aZ  and the second force vector F bZ . 
     In step S 150 , the main controller  130  changes at least one of the first force Fa applied to the object  10  by the first robotic arm  110  and the second force Fb applied to the object  10  by the second robotic arm  120  according to at least one of the first differences so that the first force vectors F aX , F aY  and F aZ  are substantially equal to the second force vectors F bX , F bY  and F bZ . 
     The other control methods for the robotic arm system  100  in the embodiment of the present disclosure have been described above, and it will not be repeated here. 
     In summary, the embodiments of the present disclosure provide a robotic arm system including a first robotic arm, a second robotic arm and a main controller. The main controller could obtain the first force applied by the first robotic arm and the second force applied by the second robotic arm to the object, and accordingly adjust the first force and/or the second force to make the first robotic arm and the second robotic arm translate and/or rotates the object at the constant speed. 
     It will be apparent to those skilled in the art that various modifications and variations could be made to the disclosed embodiments. It is intended that the specification and examples be considered as exemplary only, with a true scope of the disclosure being indicated by the following claims and their equivalents.