Robot and arm control method

By adjusting the collision detection threshold based on intended contact or non-contact actions, the robot system reduces false collision detections, improving operational accuracy.

JP7808107B2Active Publication Date: 2026-01-28FUJI CORP
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023529359
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2021-06-24
Publication Date
2026-01-28
Estimated Expiration
2041-06-24

AI Technical Summary

Technical Problem

Existing robots with collision detection functions can erroneously detect collisions when a uniform threshold is used for external forces, regardless of the intended action, leading to potential false detections.

Method used

The robot system adjusts the collision detection threshold based on whether the intended action is non-contact or contact, using a control device to differentiate between intended and unintended interactions with objects, thereby reducing false collision detections.

Benefits of technology

This approach effectively suppresses false collision detections by dynamically adjusting the threshold according to the intended action, enhancing the accuracy of collision detection in robotic operations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007808107000001
    Figure 0007808107000001
  • Figure 0007808107000002
    Figure 0007808107000002
  • Figure 0007808107000003
    Figure 0007808107000003
Patent Text Reader

Abstract

A control device according to the present invention controls a drive device so that an arm can operate in accordance with an instructed operation, and detects a collision with another object at a portion, among portions of the arm, at which external force is greater than a threshold. When doing so, the control device switches the threshold depending on whether the instructed operation is a non-contact intent operation in which contact with another object is not intended or the instructed operation is a contact intent operation in which contact with another object is intended.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] This specification discloses a method for controlling a robot and an arm. [Background technology]

[0002] Conventionally, a robot has been proposed that includes an arm, a drive unit that drives the arm, and a control unit that controls the drive unit (see, for example, Patent Document 1). In this robot, the control unit controls the drive unit so that the arm operates according to an instructed motion. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] International Publication No. 2021 / 075031 Summary of the Invention [Problem to be solved by the invention]

[0004] In some cases, such robots are provided with a collision detection function that detects collisions with other objects at parts of the arm where the external force acting from the other object is greater than a threshold. In this case, if the threshold is set to a uniform value regardless of whether the command action is intended to contact the other object, there is a possibility that a collision with the other object will be erroneously detected.

[0005] A primary object of the present disclosure is to suppress erroneous detection of a collision with another object. [Means for solving the problem]

[0006] The present disclosure has adopted the following means to achieve the above-mentioned main object.

[0007] The robot of the present disclosure comprises: Arm and a drive device that drives the arm; an external force detection unit that detects an external force acting from another object on each part of the arm; a control device that controls the drive device so that the arm operates in accordance with an instruction operation and detects a collision between the arm and the other object and a portion of the arm where the external force is greater than a threshold; A robot comprising: the control device switches the threshold value depending on whether the instruction action is a non-contact intended action that does not intend to contact the other object or a contact intended action that intends to contact the other object. The gist of this is as follows.

[0008] In the robot disclosed herein, the control device controls the drive device so that the arm operates in accordance with an instructed motion, and detects a collision with another object for each part of the arm where an external force is greater than a threshold. At this time, the control device switches the threshold depending on whether the instructed motion is a non-contact intended motion that does not intend to contact the other object, or a contact intended motion that intends to contact the other object. This makes it possible to suppress false detection of a collision with another object for each part of the arm. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 2 is an external perspective view of the robot. [Figure 2] FIG. 2 is a side view of the robot body. [Figure 3] FIG. 2 is a block diagram showing the electrical connection relationship between the robot body and the control device. [Figure 4] 10 is a flowchart illustrating an example of a collision detection process. [Figure 5] 10 is a flowchart illustrating an example of a collision detection process. DETAILED DESCRIPTION OF THE INVENTION

[0010] Next, an embodiment of the present disclosure will be described with reference to the drawings. Fig. 1 is an external perspective view of a robot 10 according to this embodiment. Fig. 2 is a side view of a robot main body 20. Fig. 3 is a block diagram showing the electrical connection between the robot main body 20 and a control device 70. In Fig. 1, the left-right direction is the X-axis, the front-rear direction is the Y-axis, and the up-down direction is the Z-axis.

[0011] 1 to 3, the robot 10 of this embodiment includes a robot body 20 and a control device 70 that controls the robot body 20. As shown in Fig. 2, the robot body 20 includes a first arm 21, a second arm 22, a base 25, a base 26, a first arm driving device 35, a second arm driving device 36, a posture holding device 37, an elevation device 40, a three-axis rotation mechanism 50, a holder 60, and a force sensor 62. Note that the first arm 21, the second arm 22, and the three-axis rotation mechanism 50 may be simply referred to as the arms.

[0012] The base end of the first arm 21 is connected to the base 25 via a first joint shaft 31 extending in the vertical direction (Z-axis direction). The first arm driving device 35 includes a motor 35a that rotationally drives the first joint shaft 31, and an encoder 35b (see FIG. 3) that detects a rotation angle θm1 of the motor 35a. The first arm driving device 35 rotationally drives the first joint shaft 31 with the motor 35a, thereby rotating (pivoting) the first arm 21 along a horizontal plane (XY plane) around the first joint shaft 31 as a fulcrum.

[0013] The base end of the second arm 22 is connected to the tip end of the first arm 21 via a second joint shaft 32 extending in the vertical direction. The second arm driving device 36 includes a motor 36a that rotationally drives the second joint shaft 32, and an encoder 36b (see FIG. 3) that detects a rotation angle θm2 of the motor 36a. The rotation shaft of the motor 36a is connected to the second joint shaft 32 via a reducer (not shown). The second arm driving device 36 rotationally drives the second joint shaft 32 with the motor 36a, thereby rotating (pivoting) the second arm 22 along a horizontal plane around the second joint shaft 32 as a fulcrum.

[0014] The base 25 is movable up and down relative to the base 26 by an elevator device 40 installed on the base 26. As shown in FIGS. 1 and 2 , the elevator device 40 includes a slider 41 fixed to the base 25, a guide member 42 fixed to the base 26 and extending in the vertical direction to guide movement of the slider 41, a ball screw shaft 43 (elevation shaft) extending in the vertical direction and threadedly engaged with a ball screw nut (not shown) fixed to the slider 41, a motor 44 that rotates the ball screw shaft 43, and an encoder 35b (see FIG. 3 ). The elevator device 40 moves the base 25 fixed to the slider 41 up and down along the guide member 42 by rotating the ball screw shaft 43 using the motor 44. The encoder 45 detects a vertical position (elevation position) Hs of the slider 41 (base 25).

[0015] The attitude holding device 37 is a device that holds the attitude of the three-axis rotating mechanism 50 (the orientation of the first rotating shaft 51) in a fixed direction regardless of the attitudes of the first arm 21 and the second arm 22. The attitude holding device 37 includes a motor 37a that rotates the attitude holding shaft 33, which is connected to the three-axis rotating mechanism 50 and extends in the vertical direction, and an encoder 37b (see FIG. 3) that detects the rotation angle θm3 of the motor 37a.

[0016] The three-axis rotation mechanism 50 is connected to the tip of the second arm 22 via the attitude-maintaining shaft 33. The three-axis rotation mechanism 50 includes a first rotation shaft 51, a second rotation shaft 52, and a third rotation shaft 53 that are perpendicular to one another, a first rotation device 55 that rotates the first rotation shaft 51, a second rotation device 56 that rotates the second rotation shaft 52, and a third rotation device 57 that rotates the third rotation shaft 53. The first rotation shaft 51 is supported in an orthogonal orientation with respect to the attitude-maintaining shaft 33. The second rotation shaft 52 is supported in an orthogonal orientation with respect to the first rotation shaft 51. The third rotation shaft 53 is supported in an orthogonal orientation with respect to the second rotation shaft 52. A holder 60 for holding a tool T is attached to the lower end surface of the third rotation shaft 53 via a force sensor 62. In this embodiment, the tool T is held by the holder 60 so as to be coaxial with the third rotation shaft 53. The first rotation device 55 has a motor 55a that rotationally drives the first rotating shaft 51 and an encoder 55b (see FIG. 3) that detects a rotation angle θm4 of the motor 55a. The second rotation device 56 has a motor 56a that rotationally drives the second rotating shaft 52 and an encoder 56b (see FIG. 3) that detects a rotation angle θm5 of the motor 56a. The third rotation device 57 has a motor 57a that rotationally drives the third rotating shaft 53 and an encoder 57b (see FIG. 3) that detects a rotation angle θm6 of the motor 57a.

[0017] The force sensor 62 is attached between the third rotation axis 53 of the three-axis rotation mechanism 50 and the holder 60, and detects force components acting in the directions of the X-axis, Y-axis, and Z-axis as well as torque components acting around each axis as external forces acting on the third rotation axis 53, the holder 60, and the tool T from other objects outside the robot 10.

[0018] 3, the control device 70 is configured as a microcomputer having a CPU 71, ROM 72, RAM 73, flash memory, and input / output ports (not shown). Detection signals from the encoders 35b, 36b, 37b, 45, 55b, 56b, and 57b and a detection signal from the force sensor 62 are input to the control device 70 via the input ports. Drive control signals to the motors 35a, 36a, 37a, 44, 55a, 56a, and 57a are output from the control device 70 via the output ports.

[0019] In the robot 10 of this embodiment configured as described above, the third rotation axis 53, i.e., the tool T, can be moved to any position in any posture by a combination of translational motion in three directions (X-axis, Y-axis, and Z-axis) by the first arm driving device 35, the second arm driving device 36, and the lifting device 40, and rotational motion in three directions (around the X-axis (pitching), around the Y-axis (rolling), and around the Z-axis (yawing)) by the three-axis rotation mechanism 50. This allows the robot 10 to perform a required task using the tool T. For example, an example of a task performed by the robot 10 is to press the tool T against the body surface of a subject when the tool T is an ultrasound probe.

[0020] The operation of the robot 10, specifically, the control of the robot main body 20 by the control device 70, will be described below. The control device 70 (CPU 71) sets a target position and a target posture of the arm (first arm 21, second arm 22, and three-axis rotation mechanism 50) that holds the tool T, in accordance with an instruction operation based on a preset program, a user instruction, or the like. Next, the CPU 71 sets a target rotation angle θm1* of the first joint axis 31, a target rotation angle θm2* of the second joint axis 32, a target rotation angle θm3* of the posture maintaining axis 33, a target elevation position Hs* of the base 25, a target rotation angle θm4* of the first rotation axis 51, a target rotation angle θm5* of the second rotation axis 52, and a target rotation angle θm6* of the third rotation axis 53 at each time, in order to move the arm to the target position in the target posture. Then, the CPU 71 sets torque commands Tm1* to Tm6* and Tmh* for the motors 35a, 36a, 37a, 55a, 56a, 57a, and 44 by feedback control so that the rotation angles θm1 to θm6 or the elevation position Hs detected by the encoders 35b, 36b, 37b, 55b, 56b, and 57b or the encoder 45 become the target rotation angles θm1* to θm6* or the target elevation position Hs* at the corresponding time. In addition, the CPU 71 controls the motors 35a, 36a, 37a, 55a, 56a, 57a, and 44 so that the motors 35a, 36a, 37a, 55a, 56a, 57a, and 44 are driven by the corresponding torque commands Tm1* to Tm6* and Tmh*. The torque command Tm1* of the motor 35a is obtained by equation (1) using the angle difference Δθm1 obtained by subtracting the rotation angle θm1 from the target rotation angle θm1* and the proportional and integral gains kp1 and ki1. The torque commands Tm2* to Tm6* of the motors 36a, 37a, 55a, 56a, and 57a are obtained in the same manner as the torque command Tm1* of the motor 35a. The torque command Tmh* of the motor 44 is obtained by equation (2) using the position difference ΔHs obtained by subtracting the lift position Hs from the target lift position Hs* and the proportional and integral gains kph and kih.

[0021] Tm1*=kp1·(θm1*-θm1)+ki1·∫(θm1*-θm1)dt (1) Tmh*=kph·(Hs*-Hs)+kih·∫(Hs*-Hs)dt (2)

[0022] Here, the control device 70 sets the target rotation angle θm3* of the attitude-maintaining shaft 33 so that the axial direction of the first rotation shaft 51 is always oriented in the left-right direction (X-axis direction) regardless of the attitudes of the first arm 21 and the second arm 22, and controls the motor 44 so that the rotation angle θm3 detected by the encoder 45 matches the target rotation angle θm3*. Note that the target rotation angle θm3* of the attitude-maintaining shaft 33 can be set based on the rotation angle θm1 of the first joint shaft 31 and the rotation angle θm2 of the second joint shaft 32 detected by the encoders 35b, 36b. This enables the CPU 71 to independently control the translational motion in the three directions and the rotational motion in the three directions, making control easier.

[0023] Next, the operation of the robot 10 of this embodiment, particularly the operation when detecting a collision between each part of the arm of the robot main body 20 and another object (e.g., a worker, etc.), will be described. Examples of each part of the arm include each part of the first arm 21, each part of the second arm 22, each part of the first rotation shaft 51, each part of the second rotation shaft 52, and each part of the third rotation shaft 53. The parts of the first arm 21 are, for example, two parts (front and rear parts in the rotation direction) obtained by dividing the outer circumferential surface of the first arm 21 in half by a plane including the first joint shaft 31 and the central axis of the first arm 21. The parts of the second arm 22 are, for example, two parts (front and rear parts in the rotation direction) obtained by dividing the outer circumferential surface of the second arm 22 in half by a plane including the second joint shaft 32 and the central axis of the second arm 22. The portions of the first rotating shaft 51 are, for example, two portions (front and rear portions in the rotation direction) obtained by dividing the outer circumferential surface of the first rotating shaft 51 in half by a plane including the central axes of the attitude maintaining shaft 33 and the first rotating shaft 51. The portions of the second rotating shaft 52 are, for example, two portions (front and rear portions in the rotation direction) obtained by dividing the outer circumferential surface of the second rotating shaft 52 in half by a plane including the first rotating shaft 51 and the central axis of the first rotating shaft 51. The portions of the third rotating shaft 53 are, for example, a lower end surface (the end surface on the tool T side) and an upper end surface of the third rotating shaft 53, and at least two portions obtained by dividing the outer circumferential surface by at least one plane including the central axis of the third rotating shaft 53.

[0024] 4 is a flowchart showing an example of a collision detection process executed by the CPU 71 of the control device 70. This routine is executed when the arm starts to move in accordance with an instruction. In the following explanation, an ultrasonic probe is used as the tool T.

[0025] When the collision detection process of FIG. 4 is executed, the CPU 71 first determines whether the instruction action is a non-contact intended action that does not intend contact with another object, or a contact intended action that intends contact with another object (S100). Here, an example of a non-contact intended action is a preparatory action before pressing the tool T against the body surface of the subject. An example of a preparatory action is an action of moving the tool T to the work start position while placing the arm in the work start posture. An example of a contact intended action is an action of pressing the tool T against the body surface of the subject, or an action when the worker is expected to touch the tool T. Examples of times when the worker is expected to touch the tool T include when cleaning the tool T, when adjusting the position of the tool T, and when checking or changing the routing of wiring (not shown) extending from the tool T.

[0026] When the CPU 71 determines that the instruction action is a non-contact intended action, it sets all parts of the arm as non-contact intended parts that do not intend contact with another object (S110). On the other hand, when the CPU 71 determines that the instruction action is a contact intended action, it sets each part of the arm as a non-contact intended part or a contact intended part that intends contact with another object (S120). For example, when the instruction action is an action of pressing the tool T against the body surface of the subject as a contact intended action, it is assumed that an intended external force (contact force) acts in the axial direction of the third rotation shaft 53 on the lower end surface (the end surface on the tool T side) of the third rotation shaft 53 via the tool T and the force sensor 62 from the body surface of the subject. Therefore, of the parts of the arm, the lower end surface of the third rotation shaft 53 is set as a contact intended part, and the other parts are set as non-contact intended parts.

[0027] Next, the CPU 71 sets a target part i among the parts of the arm for determining whether or not there is a collision with another object (S130), and inputs an external force Fe(i) acting on the target part i from the other object (S140). Here, the external force Fe acting on each part of the arm can be detected, for example, as follows.

[0028] The external force Fe acting on each portion of the first arm 21 is obtained, for example, based on the deviation of the torque command Tm1* of the motor 35a from the reference torque Tm1r. The reference torque Tm1r is the torque command Tm1* of the motor 35a assumed when no external force is acting on the first arm 21, and is estimated, for example, based on the angular difference Δθm1 (= θm1* - θm1). When the rotation of the first arm 21 is restricted by another object, the absolute value of the angular difference Δθm1 becomes larger than expected, and as can be seen from equation (1), the torque command Tm1* has the same sign as the reference torque Tm1r but a larger absolute value. On the other hand, when the rotation of the first arm 21 is facilitated by another object, the absolute value of the angular difference Δθm1 becomes smaller than expected, and as can be seen from equation (1), the torque command Tm1* has the same sign as the reference torque Tm1r but a smaller absolute value or a different sign. When the first arm 21 has a front portion (front rotation portion) and a rear portion (rear rotation portion) in its rotation direction, if the torque command Tm1* is equal to the reference torque Tm1r, it is assumed that the external force Fe is not acting on either the front rotation portion or the rear rotation portion of the first arm 21. If the torque command Tm1* has the same sign as the reference torque Tm1r and its absolute value is larger, it is assumed that the external force Fe is acting on the front rotation portion of the first arm 21. If the torque command Tm1* has the same sign as the reference torque Tm1r and its absolute value is smaller or of a different sign, it is assumed that the external force Fe is acting on the rear rotation portion of the first arm 21. From these facts, the external force Fe acting on each portion of the first arm 21 can be obtained using the torque command Tm1* of the motor 35a. Similarly, the external force Fe acting on each portion of the second arm 22 is obtained using the torque command Tm2* of the motor 36a, the external force Fe acting on each portion of the first rotating shaft 51 is obtained using the torque command Tm3* of the motor 37a, and the external force Fe acting on each portion of the second rotating shaft 52 is obtained using the torque command Tm4* of the motor 55a. The external force Fe acting on each portion of the third rotating shaft 53 (the lower end surface, the upper end surface, and each portion in the circumferential direction of the outer circumferential surface) is obtained based on the detection value of the force sensor 62.

[0029] Then, the CPU 71 determines whether the target portion i is a non-contact-intended portion or a contact-intended portion (S150). If the CPU 71 determines that the target portion i is a non-contact-intended portion, it sets the threshold Feref(i) for collision determination for the target portion i to a value Fe1(i) (S160). On the other hand, if the CPU 71 determines that the target portion i is a contact-intended portion, it sets the threshold Feref(i) for the target portion i to a value Fe2(i) greater than the value Fe1(i) (S170). The processing of S160 and S170 is processing for switching the threshold Feref(i) based on whether the target portion (i) is a non-contact-intended portion or a contact-intended portion. For example, the value Fe1(i) is about several tens of Nm, and the value Fe2(i) is about 1.5 to 3 times the value Fe1(i). The values ​​Fe1(i) and Fe2(i) may be different values ​​for each target portion i, or a uniform value may be used. Therefore, the processes of S160 and S170 can also be said to be processes for switching the threshold Feref between the intended non-contact portion and the intended contact portion of each portion of the arm.

[0030] Furthermore, the CPU 71 determines whether or not the external force Fe(i) acting on the target portion i is greater than a threshold Feref(i) (S180). If the CPU 71 determines that the external force Fe(i) acting on the target portion i is equal to or less than the threshold Feref(i), it determines that no collision with another object has occurred for the target portion i (S190), and determines whether or not to terminate the arm movement in accordance with the command action (S200). If the CPU 71 determines not to terminate the arm movement, it returns to S130. The CPU 71 repeatedly executes the processes of S130 to S200, and terminates this routine if it determines in S200 to terminate the arm movement.

[0031] When the CPU 71 determines in S180 that the external force Fe(i) acting on the target part i is greater than the threshold Feref(i) while repeatedly executing the processes of S130 to S200, it determines that the target part i has collided with another object (S210), stops the instruction operation, performs a retreat operation (S220), and ends this routine. As the retreat operation, the CPU 71 controls the corresponding motor among the motors 35a, 36a, 37a, 44, 55a, 56a, 57a, and 44 so that the arm performs an operation to move the target part i away from the other object so that the external force Fe(i) acting on the target part i (the part where a collision has been detected) becomes smaller (for example, so that the value becomes 0).

[0032] In this way, the CPU 71 determines whether or not a collision has occurred for each part of the arm by comparing the external force Fe(i) for the target part i with the threshold Feref(i) while changing the target part i. At this time, for each part of the arm, the threshold Feref is switched between when it is an intended non-contact part and when it is an intended contact part, and the threshold Feref is switched between an intended non-contact part and an intended contact part among the parts of the arm. Since the external force Fe for the intended contact part may include a contact force (intentionally acting force) Ft acting due to a command action, setting the threshold Feref in this way for each part of the arm can suppress erroneous detection of a collision with another object.

[0033] Here, the correspondence between the main elements of the embodiment and the main elements of the present disclosure described in the claims will be described. That is, the first arm 21, the second arm 22, the first rotating shaft 51, the second rotating shaft 52, and the third rotating shaft 53 of the present embodiment correspond to the arms of the present disclosure, the motors 35a, 36a, 37a, 55a, 56a, 57a, and 44 correspond to the driving devices, and the control device 70 corresponds to the control device.

[0034] It goes without saying that the present disclosure is not limited to the above-described embodiments, and can be embodied in various forms as long as they fall within the technical scope of the present disclosure.

[0035] For example, in the above-described embodiment, the CPU 71 estimates the external force Fe acting on each portion of the first arm 21 based on the deviation of the torque command Tm1* of the motor 35a from the reference torque Tm1r. However, the CPU 71 may use the torque Tm1 of the motor 35a instead of the torque command Tm1*. If the second arm driving device 36 has a torque sensor that detects the torque of the motor 35a, the torque Tm1 may be detected by the torque sensor. The CPU 71 may use a value obtained by subjecting the torque command Tm1* or the torque Tm1 to a slow-change process such as an averaging process or a rate process. The CPU 71 may use the torque command Tm1* or the torque Tm1 and the change amount dθm1 per unit time of the rotation angle θm1 of the motor 35a detected by the encoder 35b. This is because when the motor 35a is driven with the same torque command Tm1*, the change amount dθm1 is affected by whether or not there is a collision with another object. The first arm 21 may have a force sensor, and the CPU 71 may use the detected value of the force sensor. The estimation of the external force Fe acting on each portion of the second arm 22, each portion of the first rotation shaft 51, and each portion of the second rotation shaft 52 can be considered to be similar to the estimation of the external force Fe acting on each portion of the first arm 21.

[0036] In the above-described embodiment, the CPU 71 estimates the external force Fe acting on each portion of the third rotating shaft 53 (the lower end surface, the upper end surface, and each portion in the circumferential direction of the outer circumferential surface) based on the detection value of the force sensor 62. However, the CPU 71 may use the torque commands Tm5*, Tm6*, and Tmh* of the motors 56a, 57a, and 44 instead of the detection value of the force sensor 62. The CPU 71 may also use the torques Tm5, Tm6, and Tmh of the motors 56a, 57a, and 44. If the second rotating device 56, the third rotating device 57, and the lifting device 40 each have a torque sensor, the torques Tm5, Tm6, and Tmh may be detected by these torque sensors. The CPU 71 may also use values ​​obtained by performing a gradual change process, such as an averaging process or a rate process, on the torque commands Tm5*, Tm6*, and Tmh* or the torques Tm5, Tm6, and Tmh. The CPU 71 may also use the torque commands Tm5*, Tm6*, Tmh* or the torques Tm5, Tm6, Tmh, the change per unit time dθm5, dθm6 of the rotation angles θm5, θm6 of the motors 56a, 57a detected by the encoders 56b, 57b, and the change per unit time dHs of the lifting position Hs of the base 25 detected by the encoder 45.

[0037] In the above-described embodiment, the CPU 71 executes the collision detection process of Fig. 4, but may execute the collision detection process of Fig. 5. The collision detection process of Fig. 5 differs from the collision detection process of Fig. 4 in that S162 is added and S170 is replaced with S172. In the collision detection process of Fig. 5, the CPU 71 inputs the external force Fe(i) of the target part i in S140. If the CPU 71 determines in S150 that the target part i is an intended contact part, the CPU 71 inputs a contact force (intentionally acting force) Ft(i) acting on the target part i due to a command action, which is included in the external force Fe(i) acting on the target part i from another object (S162). As shown in equation (3), the CPU 71 adds the contact force Ft(i) to the value Fe1(i) and sets an upper limit of the value Fe2(i) to set a threshold Feref(i) for the target part i (S172), and then executes the processes from S180 onwards.

[0038] Feref(i)=min(Fe1(i)+Ft(i), Fe2(i)) (3)

[0039] Here, a case will be described in which the lower end surface of the third rotation shaft 53 is the target portion i and also the intended contact portion. In this case, the external force Fe(i) acting on the target portion i is estimated using at least one of the torque commands Tm5*, Tm6*, and Tmh* of the motors 56a, 57a, and 44 and the detection value of the force sensor 62, and the contact force Ft(i) acting on the target portion i is estimated using the other of these. Note that the contact force Ft(i) acting on the target portion i may also be estimated based on an instruction action. 5, by setting a threshold Feref for the target part i using equation (3), it is possible to detect a collision of the target part i with another object when the force obtained by subtracting the contact force Ft(i) from the external force Fe(i) acting on the target part i from another object, that is, the collision force (unintentionally acting force) Ft(i) acting on the target part i without being caused by a command action, is greater than the value Fe1(i) or when the external force Fe(i) is greater than the value Fe2(i). This makes it possible to more appropriately detect a collision of the target part i with another object.

[0040] In the above-described embodiment, the CPU 71 divides the first arm 21 into a plurality of portions (for example, portions on the front and rear sides in the rotation direction) and determines whether or not a collision has occurred with another object using the external force Fe for each portion. However, the CPU 71 may also determine whether or not a collision has occurred with another object using the external force Fe in a plurality of directions for the first arm 21, for example, two directions in each of the X-axis, Y-axis, and Z-axis directions or two directions around each axis. The same can be applied to the second arm 22, the first rotation shaft 51, the second rotation shaft 52, and the third rotation shaft 53.

[0041] In the embodiment described above, the CPU 71 determines whether or not a collision occurs for each part of the arm while changing the target part i. However, the CPU 71 may determine whether or not a collision occurs for each part of the arm in parallel.

[0042] In the above-described embodiment, when CPU 71 detects a collision of any of the parts of the arm with another object, CPU 71 causes the arm to perform a retreat operation to reduce the external force Fe acting on the part where the collision was detected, specifically, to move the part where the collision was detected away from the other object. However, CPU 71 may also be configured to stop the arm when it detects a collision of any of the parts of the arm with another object.

[0043] In the above-described embodiment, the robot 20 includes the first arm 21, the second arm 22, the base 25, the base 26, the first arm driving device 35, the second arm driving device 36, the attitude holding device 37, the lifting device 40, the three-axis rotation mechanism 50, the holder 60, the force sensor 62, and the control device 70. However, the present invention is not limited to this, and the robot may include an arm, a driving device that drives the arm, an external force detection unit that detects external forces acting on each part of the arm from other objects, and a control device. Furthermore, the present invention is not limited to the form of a robot, and may also be in the form of an arm control method.

[0044] In the robot of the present disclosure, the control device may, when the instruction action is the non-contact intended action, set all of the parts as non-contact intended parts that do not intend contact with the other object, and when the instruction action is the contact intended action, set each of the parts as the non-contact intended parts or the contact intended parts that intend contact with the other object based on the instruction action, and switch the threshold between the non-contact intended parts and the contact intended parts. This makes it possible to further reduce false detection of collision with the other object for each part of the arm.

[0045] In this case, the control device may set the threshold for the intended contact portion to a value greater than the threshold for the intended non-contact portion. Furthermore, the control device may set, for each of the portions, the threshold for the intended contact portion to a value greater than the threshold for the intended non-contact portion. In this case, the external force detection unit may include a contact force detection unit that detects, for each of the portions, the external force acting from the other object due to the pointing action as a contact force when the portion becomes the intended contact portion, or that estimates the contact force based on the pointing action, and the control device may set, for each of the portions, the threshold for the intended contact portion to a value obtained by changing, based on the contact force, the threshold for the intended non-contact portion. In this way, the thresholds can be set more appropriately.

[0046] In the robot of the present disclosure, the control device may be configured to, when detecting a collision of any of the parts with the other object, control the drive device so that the arm performs an operation to reduce the external force acting on the detection part that detected the collision with the other object. In this way, the robot can be operated so as to reduce the external force acting from the other object.

[0047] In the robot of the present disclosure, the external force detection unit may have at least one of a force sensor and an estimation unit that estimates the external force based on an output-related value related to the output of the drive device or a command-related value related to the command value of the drive device.

[0048] The arm control method of the present disclosure is a method for controlling an arm that controls a drive device of the arm so that the arm operates in accordance with an instructed action, and includes the steps of: (a) detecting an external force acting from another object on each part of the arm; and (b) detecting a collision with the other object on each part of the arm where the external force is greater than a threshold value; and the step (b) switches the threshold value depending on whether the instructed action is a non-contact intended action that does not intend contact with the other object or a contact intended action that intends contact with the other object.

[0049] In the arm control method disclosed herein, when detecting a collision with another object for a part of the arm where the external force is greater than a threshold, the threshold is switched depending on whether the command action is a non-contact intended action that does not intend contact with the other object or a contact intended action that intends contact with the other object, thereby making it possible to suppress false detection of a collision with another object for each part of the arm. [Industrial Applicability]

[0050] The present disclosure is applicable to the robot manufacturing industry and the like. [Explanation of symbols]

[0051] 10 robot, 20 robot body, 21 first arm, 22 second arm, 25 base, 26 base, 31 first joint axis, 32 second joint axis, 33 attitude holding axis, 35 first arm drive device, 35a motor, 35b encoder, 36 second arm drive device, 36a motor, 36b encoder, 37 attitude holding device, 37a motor, 37b encoder, 40 lifting device, 41 slider, 42 guide member, 43 ball screw shaft, 44 motor, 45 encoder, 50 three-axis rotation mechanism, 51 first rotation axis, 52 second rotation axis, 53 third rotation axis, 55 first rotation device, 55a motor, 55b encoder, 56 second rotation device, 56a motor, 56b encoder, 57 third rotation device, 57a motor, 57b encoder, 60 holder, 62 Force sensor, 70 control device, 71 CPU, 72 ROM, 73 RAM, T tool.

Claims

1. Arm and a drive device that drives the arm; a holder for holding a tool attached to the arm; a force sensor that detects an external force acting on the holder from another object; a control device that controls the drive device so that the arm operates in accordance with an instructed operation, and detects a collision between the holder and the other object when the external force is greater than a threshold; A robot comprising: the control device sets a first value as the threshold value when the instruction action is a non-contact intended action that does not intend to contact the other object, and sets the threshold value based on a sum of the first value and a contact force acting on the holder due to the instruction action, among the external forces, when the instruction action is a contact intended action that intends to contact the other object. robot.

2. 1. A method for controlling an arm, which controls a drive device of the arm so that the arm operates in accordance with an instructed operation, a step (a) of detecting an external force acting from another object on a holder for holding a tool attached to the arm; a step (b) of detecting a collision with the other object when the external force applied to the holder is greater than a threshold value; Including, In the step (b), when the instruction action is a non-contact intended action that does not intend to contact the other object, a first value is set as the threshold value, and when the instruction action is a contact intended action that intends to contact the other object, the threshold value is set based on the sum of the first value and a contact force acting on the holder due to the instruction action, among the external forces. How the arm is controlled.

Citation Information

Patent Citations

  • Frame mapping and force feedback methods, apparatus, and systems

    JP2010524548A

  • System having motor driving structure, program used for the same, and weldment manufacturing method

    JP2013184249A

  • Robot control device

    WO2020045483A1

  • Multi-joint robot

    WO2021075031A1