Apparatus, method, and computer program for limiting movement of robot
By acquiring the robot's current position and generating first and second movement commands, the robot's movement is restricted or permitted, solving the problem of the robot moving outside its permissible range of motion and achieving safe and precise operation.
Patent Information
- Application Number
- CN202380096041.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-03-27
- Publication Date
- 2025-11-04
AI Technical Summary
When a robot is performing a task, how can we prevent it from moving outside the predetermined allowable range of motion and ensure that it moves along the boundary of the allowable range of motion?
The robot's current position is obtained by the position acquisition unit, the direction setting unit determines a first direction toward the outside and a second direction orthogonal to it, and generates first and second movement commands to restrict or permit the robot's movement. The movement restriction unit restricts movement based on the first movement command and permits movement based on the second movement command.
Effectively restricting the robot's movement outside its permissible range of motion ensures safe movement within the permitted area, improving the safety and accuracy of operations.
Smart Images

Figure CN120897833A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to an apparatus, a method, and a computer program that restrict movement of a robot toward the outside of an allowable action range. BACKGROUND
[0002] A method of restricting movement of a robot toward the outside of a predetermined allowable action range is known (for example, Patent Literature 1).
[0003] PRIOR ART DOCUMENTS
[0004] PATENT LITERATURE
[0005] Patent Literature 1: Japanese Patent Application Publication No. 2020-49592 SUMMARY
[0006] PROBLEMS TO BE SOLVED BY THE INVENTION
[0007] For example, when a robot is caused to perform a prescribed work, or when an action is taught to the robot for the work, there is a demand to avoid movement of the robot toward the outside of an allowable action range, and to cause the robot to move along the boundary of the allowable action range.
[0008] MEANS FOR SOLVING THE PROBLEMS
[0009] In one embodiment of the present disclosure, an apparatus that restricts movement of a robot toward the outside of a predetermined allowable action range, wherein there are: a position acquisition unit that acquires a current position of the robot; a direction setting unit that determines a first direction toward the outside and a second direction orthogonal to the first direction, based on the current position acquired by the position acquisition unit and a boundary of the allowable action range that is close to the current position; an instruction generation unit that generates a first movement instruction that causes the robot to move in the first direction determined by the direction setting unit, and a second movement instruction that causes the robot to move in the second direction determined by the direction setting unit, in order to cause the robot to move; and a movement restriction unit that restricts movement of the robot based on the first movement instruction, and on the other hand, permits movement of the robot based on the second movement instruction.
[0010] A method of restricting movement of a robot toward the outside of a predetermined allowable action range, a processor acquires a current position of the robot, determines a first direction toward the outside and a second direction orthogonal to the first direction, based on the acquired current position and a boundary of the allowable action range that is close to the current position, generates a first movement instruction that causes the robot to move in the determined first direction, and a second movement instruction that causes the robot to move in the determined second direction, in order to cause the robot to move, and restricts movement of the robot based on the first movement instruction, and on the other hand, permits movement of the robot based on the second movement instruction. BRIEF DESCRIPTION OF DRAWINGS
[0011] Figure 1 is a schematic diagram of a robot system according to an embodiment.
[0012] Figure 2 is Figure 1 is a block diagram of a robot system according to an embodiment.
[0013] Figure 3 represents an example of an allowable action range.
[0014] Figure 4 is an example of a flow of steps S5 in Figure 2 is a flowchart of an example of a flow of actions of a robot system according to an embodiment.
[0015] Figure 5 represents a state in which the robot is disposed in the approach region.
[0016] Figure 6 is an example of a flow of steps S5 in Figure 4
[0017] Figure 7 represents a reference point set in step S11 in Figure 6
[0018] Figure 8 represents an action range coordinate system and first and second directions set in step S12 in Figure 6
[0019] Figure 9 represents a target position acquired in step S13 in Figure 6
[0020] Figure 10 represents an example of an image generated as a notification signal in step S14 in Figure 6
[0021] Figure 11 represents first and second movement instructions generated in step S16 in Figure 6
[0022] Figure 12 is a block diagram schematically representing a transmission path of a signal in movement restriction processing performed in steps S18 and S19 in Figure 6
[0023] Figure 13 is a block diagram of other functions of a robot system according to an embodiment. Figure 1
[0024] Figure 14 is a flowchart of an example of step S5 performed by a robot system according to an embodiment. Figure 13
[0025] Figure 15 indicates the first force component and the second force component calculated in step S21 in Figure 14 .
[0026] Figure 16 is a block diagram schematically indicating a transmission path of a signal in the movement restriction processing performed in steps S22 to S25 in Figure 14 .
[0027] Figure 17 is a block diagram indicating another other function of the robot system shown in Figure 1 .
[0028] Figure 18 indicates the position and the movement path of the robot in the movement restriction.
[0029] Figure 19 indicates the newly set allowable action range.
[0030] Figure 20 indicates another example of the allowable action range.
[0031] Figure 21 indicates the first direction and the second direction set in accordance with the boundary of the allowable action range shown in Figure 20 . DETAILED DESCRIPTION
[0032] Hereinafter, an embodiment of the present disclosure will be described in detail with reference to the drawings. Furthermore, in various embodiments described below, the same reference numerals are assigned to the same elements, and repetitive description will be omitted. First, a robot system 10 of one embodiment will be described with reference to Figure 1 and Figure 2 . The robot system 10 has a robot 12, a control device 14, and a teaching device 16.
[0033] In the present embodiment, the robot 12 is a vertical multi-joint robot having a robot base 18, a swivel body 20, a lower arm portion 22, an upper arm portion 24, a wrist portion 26, and an end effector 28. The robot base 18 is fixed to a floor of a work cell or an automated guided vehicle (AGV). The swivel body 20 is provided to the robot base 18 so as to be able to swivel about a vertical axis. The base end portion of the lower arm portion 22 is provided to the swivel body 20 so as to be able to rotate about a horizontal axis.
[0034] The base of the upper arm portion 24 is rotatably disposed at the front end of the lower arm portion 22. The wrist portion 26 has: a wrist base 26a, which is rotatably disposed at the front end of the upper arm portion 24 about two mutually orthogonal axes; and a wrist flange 26b, which is rotatably disposed on the wrist base 26a. An end effector 28 is detachably mounted on the wrist flange 26b. The end effector 28 is, for example, a robotic arm, a welding torch, a cutting tool, or a laser processing head, which performs a prescribed operation (workpiece handling, welding, cutting, or laser processing) on a workpiece (not shown).
[0035] Servo motors 30 are installed on each component of robot 12 (robot base 18, rotating body 20, lower arm 22, upper arm 24, wrist 26). Figure 2 These servo motors 30, according to instructions from the control unit 14, drive the drive shafts of the robot 12 to rotate, thereby causing the movable components of the robot 12, such as the rotating body 20, lower arm 22, upper arm 24, wrist base 26a, and wrist flange 26b (i.e., end effector 28), to rotate about the drive shafts. Thus, the robot 12 can move the workpiece W held by the end effector 28 to any position.
[0036] Additionally, a force sensor 32 is installed on robot 12 to detect the force F applied to robot 12. Figure 2 Force sensor 32, for example, is a six-axis force sensor disposed on any component of robot 12 (e.g., robot base 18 or wrist 26), or a torque sensor disposed on each drive axis of robot 12 driven by servo motor 30, and supplies the detection data Df of the detected force F to control device 14.
[0037] like Figure 1 As shown, a robot coordinate system C1 and a tool coordinate system C2 are set for the robot 12. The robot coordinate system C1 is a fixed coordinate system used to control the movement of each movable component of the robot 12. In this embodiment, the robot coordinate system C1 is set for the robot base 18 with its origin located at the center of the robot base 18 and its z-axis parallel (specifically, consistent) with the rotation axis of the rotary body 20.
[0038] On the other hand, the tool coordinate system C2 is a translation coordinate system within the robot coordinate system C1 that defines the position of the end effector 28. In this embodiment, the tool coordinate system C2 is set for the end effector 28 such that its origin (so-called TCP) is configured at the working position (workpiece holding position, welding position, cutting position, or laser exit position) of the end effector 28. Furthermore, the tool coordinate system C2 can be configured at any position.
[0039] When moving the end effector 28 in the robot coordinate system C1, the control device 14 sets the tool coordinate system C2 in the robot coordinate system C1, generates an instruction to each servo motor 30 so as to arrange the end effector 28 at a position indicated by the set tool coordinate system C2. In this way, the control device 14 can position the end effector 28 at an arbitrary position in the robot coordinate system C1 by driving each servo motor 30. In addition, in the present specification, "position" sometimes indicates a position and an attitude.
[0040] The control device 14 is a computer having a processor 34, a memory 36, an I / O interface 38, a display device 40, and an input device 42. The processor 34 has a CPU or a GPU or the like, is communicably connected to the memory 36, the I / O interface 38, the display device 40, and the input device 42 via a bus 43, communicates with these components, and performs an arithmetic processing for realizing various functions described later.
[0041] The memory 36 has a RAM or a ROM or the like, and temporarily or permanently stores various data. The memory 36 can also be a semiconductor memory, a magnetic recording medium, or an optical recording medium or the like, which is a non-transitory recording medium that can be read by a computer. The I / O interface 38 has, for example, an Ethernet (registered trademark) port, a USB port, a fiber connector, or an HDMI (registered trademark) terminal, and communicates data between an external device by wire or wirelessly under an instruction from the processor 34.
[0042] The display device 40 has a liquid crystal display or an organic EL display or the like, and displays various data in a visually recognizable manner under an instruction from the processor 34. The input device 42 has a push button, a switch, a keyboard, a mouse, or a touch panel or the like, and receives an input of data from an operator. In addition, the display device 40 and the input device 42 can be integrally assembled to a housing of the control device 14, or can also be a computer (PC or the like) separate from the housing of the control device 14, and connected to the I / O interface 38.
[0043] The teaching device 16 teaches an operation of the robot 12. Specifically, the teaching device 16 is a computer having a processor 44, a memory 46, an I / O interface 48, a display device 50, and an input device 52. In addition, the teaching device 16 can also be a teach pendant, or any type of computer such as a notebook or a tablet PC.
[0044] The processor 44 is communicatively connected to the memory 46, I / O interface 48, display device 50, and input device 52 via bus 53. Furthermore, the structure of the processor 44, memory 46, I / O interface 48, display device 50, and input device 52 is the same as that of the processor 34, memory 36, I / O interface 38, display device 40, and input device 42 described above; therefore, repeated descriptions are omitted.
[0045] In this embodiment, the processor 34 of the control device 14 is configured to execute jog mode MD1 and direct teaching mode MD2 as the operation mode MD of the robot 12. In jog mode MD1, the processor 34 moves the movable components of the robot 12 in the direction input by the operator to the input device 52 according to the jog command Cj input by the operator through the input device 52 of the teaching device 16.
[0046] On the other hand, in direct teaching mode MD2, the processor 34 moves the movable component to which the operating force Fh is applied (e.g., wrist 26 or end effector 28) of the robot 12 in the direction of the operating force Fh. The operator can operate the input device 42 of the teaching device 16 to select either jog mode MD1 or direct teaching mode MD2 as the operation mode MD.
[0047] Here, in order to ensure the safety of the robot 12's movements when performing operations or teaching the robot 12, the permissible range of motion 100 is predetermined for the robot 12. Figure 3 This represents an example where the allowed action range is 100. In Figure 3 In the example shown, the permissible range of motion 100 is defined as a generally circular (e.g., cylindrical) range within a distance specified from the robot base 18 (i.e., the origin of the robot coordinate system C1). The outer edge of the permissible range of motion 100 is defined by a cylindrical boundary 100a, and the processor 34 restricts the robot 12 to move outward of the permissible range of motion 100.
[0048] The following is for reference Figure 4 The method for restricting the movement of robot 12 is described. When processor 34 receives an action start command from the operator, the host controller, or the computer program PG, it begins... Figure 4 The process. In Figure 4 At the start of the process, robot 12 (i.e., end effector 28) is within the allowed range of motion 100.
[0049] In step S1, the processor 34 determines whether it has received an instruction to move the robot 12. For example, in the case of executing jog mode MD1, the processor 34 determines that it has received the aforementioned jog instruction Cj from the teaching pendant 16. As another example, in the case of executing direct teaching mode MD2, the processor 34 continuously (e.g., periodically) calculates the magnitude and direction of the operating force Fh applied by the operator to the movable components of the robot 12 to move it, based on the detection data Df from the force sensor 32.
[0050] Thus, processor 34 acts as force acquisition unit 62, which acquires operating force Fh based on detection data Df. Figure 2 The processor 34 performs its function. Furthermore, if the acquired operating force Fh exceeds a predetermined threshold Fth (Fh ≥ Fth), the processor 34 determines that it is yes. If the determination is yes, the processor 34 proceeds to step S2; otherwise, if the determination is no, it proceeds to step S6. The following describes the case where the operator provides the processor 34 with an instruction (jog instruction Cj or operating force Fh) to move the end effector 28 of the robot 12 outside the allowed range of motion 100.
[0051] In step S2, the processor 34 obtains the current position Pc of the robot 12. Specifically, the processor 34 obtains the coordinates Qc(x) of the origin of the tool coordinate system C2 and the robot coordinate system C1 at that time point based on the detection data Dr of the rotation detection sensor (encoder or Hall element, etc.) that detects the rotation position (or rotation angle) of each servo motor 30 at that time point. c y c , z c The current position Pc is used as the position data. Thus, the processor 34 serves as the position acquisition unit 64 for acquiring the current position Pc of the robot 12. Figure 2 To fulfill its function.
[0052] In step S3, the processor 34 determines whether the robot 12 is located within the proximity area 100b of the boundary 100a of the permissible range of motion 100. This proximity area 100b is predetermined by the operator based on the boundary 100a of the permissible range of motion 100. Figure 5 This represents an example close to region 100b. Figure 5 In the example shown, the proximity region 100b is defined as the range from the boundary 100a to the inside of the allowed range of motion 100 (e.g., the origin of the robot coordinate system C1) where the distance d is 0 ≤ d ≤ d1.
[0053] The processor 34 determines NO in a case where the current position Pc acquired in the immediately preceding step S2 is located outside the approach region 100b (i.e., a position more inward than the approach region 100b in the allowable action range 100), and proceeds to step S4, whereas determines YES in a case where the current position Pc is located within the approach region 100b, and proceeds to step S5. Figure 5 An example of the position of the robot 12 (end effector 28) when the determination in this step S3 is YES is shown.
[0054] In step S4, the processor 34 causes the robot 12 to execute a normal action. For example, in a case where the point action mode MD1 is executed, the processor 34 causes the end effector 28 of the robot 12 to move in accordance with the point action instruction Cj received in the immediately preceding step S1. Alternatively, in a case where the direct teaching mode MD2 is executed, the processor 34 causes the end effector 28 to which the operation force Fh is applied to move in the direction of the operation force Fh in accordance with the operation force Fh acquired in the immediately preceding step S1.
[0055] On the other hand, in a case where the determination in step S3 is YES, in step S5, the processor 34 executes a movement restriction process. Referring to Figure 6 This step S5 will be described. In step S11, the processor 34 determines a point on the boundary 100a that approaches the current position Pc acquired in the immediately preceding step S2 as a reference point Pr.
[0056] Specifically, the processor 34 determines a point Pr on the boundary 100a that has the smallest distance δ from the currently acquired current position Pc. Figure 7 A point Pr at which the distance δ becomes the minimum value δ0 is shown. The processor 34 determines this point Pr as the reference point Pr, and acquires coordinates Qr(x r , y r , z r ) in the robot coordinate system C1 of the reference point Pr. In this way, the processor 34 functions as a reference point setting unit 66 that determines a reference point Pr. Figure 2
[0057] In step S12, the processor 34 determines a first direction DR1 toward the outside of the allowable action range 100 and a second direction DR2 orthogonal to the first direction DR1, based on the current position Pc acquired in the immediately preceding step S2 and the boundary 100a of the allowable action range 100 that approaches the current position Pc. In the present embodiment, the processor 34 determines the first direction DR1 and the second direction DR2 with reference to the reference point Pr determined on the boundary 100a that approaches the current position Pc in the preceding step S11.
[0058] More specifically, as Figure 8 As shown, the processor 34 sets the action range coordinate system C3 that defines the first direction DR1 and the second direction DR2 in the robot coordinate system Cl. The origin of the action range coordinate system C3 is disposed at the reference point Pr determined in the previous step Sll. In addition, the y-axis of the action range coordinate system C3 is parallel to the normal direction of the boundary 100a at the reference point Pr, and the positive direction of the y-axis is oriented to the outside of the action range 100 (i.e., the direction away from the origin of the robot coordinate system Cl). Further, the z-axis of the action range coordinate system C3 can also be parallel to the z-axis of the robot coordinate system Cl.
[0059] Thus, the processor 34 sets the action range coordinate system C3 with the reference point Pr as the origin. The y-axis direction of this action range coordinate system C3 defines the first direction DR1, and the x-axis direction and the z-axis direction (in other words, the x-z plane) of the action range coordinate system C3 define the second direction DR2. That is, in the present embodiment, the first direction DR1 is parallel to the normal direction of the boundary 100a at the reference point Pr. The processor 34 acquires the coordinates Qo(x r , y r , z r , w o , p o , r o ) of the action range coordinate system C3 set in the robot coordinate system Cl.
[0060] The (x r , y r , z r ) of the coordinates Qo indicates the coordinates of the origin of the action range coordinate system C3 (i.e., the reference point Pr) in the robot coordinate system Cl, and the (w o , p o , r o ) indicates the posture of the action range coordinate system C3 relative to the robot coordinate system Cl (i.e., the direction of each axis). Thus, the processor 34 sets the action range coordinate system C3 with reference to the reference point Pr determined from the current position Pc and the boundary 100a, and thereby determines the first direction DR1 and the second direction DR2. Therefore, the processor 34 functions as a direction setting section 68 Figure 2 ) that determines the first direction DR1 and the second direction DR2 from the current position Pc and the boundary 100a.
[0061] In step S13, the processor 34 acquires a target position Pt that causes the robot 12 to move from the current position Pc acquired in the immediately preceding step S2. As an example, in a case where the point-and-go mode MD1 is executed, the processor 34 calculates the target position Pt from the point-and-go instruction Cj received in the immediately preceding step S1 and the current position Pc acquired in the immediately preceding step S2. The point-and-go instruction Cj contains information that specifies a movement direction DRm and a movement amount Δ that cause the end effector 28 to move.
[0062] As another example, in a case where the direct teaching mode MD2 is executed, the processor 34 calculates the target position Pt from the operation force Fh acquired in the immediately preceding step S1 and the current position Pc acquired in the immediately preceding step S2. For example, a relationship R Fh_Δ between the magnitude of the operation force Fh and the movement amount Δ that causes the robot 12 (e.g., the end effector 28) to move in accordance with the operation force Fh can be determined in advance Fh_Δ and stored in advance in the memory 36 (or 46). For example, the relationship R Fh_Δ may be determined as a mathematical expression of Δ = f(Fh) = α × Fh (α is a prescribed coefficient). Furthermore, each term of the function f(Fh) of the operation force Fh can be arbitrarily determined by the operator.
[0063] The processor 34 applies the operation force Fh acquired in the immediately preceding step S1 to the relationship R Fh_Δ (i.e., the mathematical expression) to find the corresponding movement amount Δ. Then, the processor 34 calculates the target position Pt from the found movement amount Δ, the direction of the operation force Fh acquired in the immediately preceding step S1, and the current position Pc. Figure 9 An example of the target position Pt thus found is shown.
[0064] In the present embodiment, the operator causes the robot 12 (the end effector 28) to move outside the allowable action range 100, and thus the calculated target position Pt is located at a position that is further outside the allowable action range 100 (in other words, in the vicinity of the boundary B) than the current position Pc. In this way, the processor 34 functions as a position calculation section 70 Figure 2 that finds the target position Pt.
[0065] In step S14, the processor 34 generates an announcement signal Sn. The announcement signal Sn announces to the operator the movement direction DRm Figure 9 and the distance δ of the target position Pt from the boundary 100a. For example, the processor 34 generates the image 110 shown in FIG. 11 as the announcement signal Sn. This image 110 is a graphical user interface (GUI) for visually announcing to the operator the movement direction DRm and the distance δ. Figure 10
[0066] Specifically, the image 110 superimposes a robot model 12M (e.g., a 3D CAD model) modeled from the robot 12 and the allowable motion range 100 (the boundary 100a). In addition, the image 110 superimposes the motion range coordinate system C3 (i.e., the first direction DR1 and the second direction DR2) set in the previous step S12 and the reference point Pr on the robot model 12M disposed at the current position Pc.
[0067] Also, the image 110 superimposes the target position Pt and the movement direction DRm obtained in the previous step S13 on the robot model 12M, and displays the distance δ of the target position Pt from the boundary 100a in the distance display field 112. The processor 34 displays the generated image 110 on the display device 40 (or 50). In this way, the processor 34 functions as a notification signal generation section 72 (the image 110) that generates a notification signal Sn. Figure 2
[0068] Further, the processor 34 can also display the distance δ of the current position Pc from the boundary 100a in the distance display field 112. In addition, the processor 34 can also display at least one of the robot coordinate system Cl and the tool coordinate system C2, the coordinates Qc of the current position Pc, the coordinates Qr of the reference point Pr, and the coordinates Qo of the motion range coordinate system C3 in the image 110. Further, the processor 34 can also display only either one of the movement direction DRm and the distance δ in the image 110. In addition, as the notification signal Sn, the processor 34 can also generate a sound signal that describes the movement direction DRm or the distance δ in a voice instead of the image 110.
[0069] In step S15, the processor 34 generates a movement instruction Cm that moves the robot 12 (the end effector 28) from the current position Pc to the target position Pt outside the allowable motion range 100. The movement instruction Cm includes, for example, a position instruction Cm p , a speed instruction Cm v , a torque instruction Cm q , or an acceleration instruction Cm a , and drives each servo motor 30 of the robot 12 to move the end effector 28 to the target position Pt. In this way, the processor 34 functions as an instruction generation section 74 (the movement instruction Cm) Figure 2
[0070] In step S16, the processor 34 functions as an instruction generating section 74 to generate a first movement instruction Cml and a second movement instruction Cm2 with reference to the action range coordinate system C3 set in the latest step S12. The first movement instruction Cml is an instruction for moving the robot 12 (specifically, the end effector 28) in the first direction DR1 (i.e., the positive direction of the y-axis of the action range coordinate system C3) determined in the latest step S12. On the other hand, the second movement instruction Cm2 is an instruction for moving the end effector 28 in the second direction DR2 (i.e., a direction along the x-z plane of the action range coordinate system C3) determined in the latest step S12.
[0071] In the present embodiment, the processor 34 calculates a component Cml of the positive direction of the y-axis of the action range coordinate system C3 (i.e., the first direction DR1) of the movement instruction Cm based on the coordinates Qo of the action range coordinate system C3 in the robot coordinate system Cl and the movement instruction Cm generated in the latest step S15. Referring to Figure 11 The calculation is described. In Figure 11 , the vector Cm represents a movement vector of the end effector 28 based on the movement instruction Cm generated in step S15.
[0072] In Figure 15 , the movement vector based on the movement instruction Cm is represented in the action range coordinate system C3 set in the latest step S12. The component Cml of the movement instruction Cm is calculated according to the formula Cml = Cm • sin θ. Here, θ is an angle between the movement instruction Cm (movement vector) and the x-z plane of the action range coordinate system C3 (i.e., the second direction DR2). The processor 34 converts the component Cml represented by the action range coordinate system C3 into the robot coordinate system Cl to generate the first movement instruction Cml.
[0073] The first movement instruction Cml contains, for example, a first position instruction Cm p1 , a first velocity instruction Cm v1 , a first torque instruction Cm q1 , or a first acceleration instruction Cm a1 . The first position instruction Cm p1 is an instruction for moving the end effector 28 to a position Pt y ( Figure 11 ) of the y-coordinate of the action range coordinate system C3 in the positive direction of the y-axis (the first direction DR1) of the action range coordinate system C3 to a target position Pt.
[0074] The first velocity instruction Cm v1 contains a specification for moving the end effector 28 to the position Pt yThe speed command value V1 is V1. The first torque command Cm. q1 Includes specifications for causing the end effector 28 to position Pt y The torque command value q1 for driving each servo motor 30 during movement. First acceleration command Cm. a1 Includes a specification that causes the end effector 28 to move towards position Pt y The acceleration command value a1 during movement.
[0075] Furthermore, processor 34 calculates the component Cm2 of the xz plane (i.e., the second direction DR2) of the coordinate system C3, which is the action range coordinate system of the movement instruction Cm, based on coordinates Qo and the movement instruction Cm. Figure 11 In the example shown, component Cm2 is represented as Cm2 = Cm·cosθ. Processor 34 converts component Cm2, represented by the motion range coordinate system C3, to the robot coordinate system C1, generating the second movement command Cm2. The second movement command Cm2 includes the second position command Cm. p2 Second speed command Cm v2 Second torque command Cm q2 Or the second acceleration command Cm a2 wait.
[0076] exist Figure 11 In the example shown, the second position instruction Cm p2 The x-coordinate Pt of the motion range coordinate system C3 is used to move the end effector 28 to the target position Pt in the positive x-axis direction (second direction DR2) of the motion range coordinate system C3. x The command. Second speed command Cm v2 This includes specifying that the end effector 28 moves to position Pt in the positive x-axis direction of the motion range coordinate system C3. x The speed command value V2 is V2.
[0077] Second torque command Cm q2 Includes specifications for causing the end effector 28 to position Pt x The torque command value q2 for driving each servo motor 30 during movement. Second acceleration command Cm. a2 Includes a specification that causes the end effector 28 to move towards position Pt x The acceleration instruction value a2 during movement is a2. In this way, the processor 34 functions as the instruction generation unit 74, using the action range coordinate system C3 as a reference, to generate the first movement instruction Cm1 and the second movement instruction Cm2.
[0078] In step S17, the processor 34 determines whether the target position Pt obtained in the most recent step S13 is outside the allowed operating range 100. If the target position Pt is outside the allowed operating range 100, the processor 34 determines that it is yes and proceeds to step S19; otherwise, if it is no, it proceeds to step S18.
[0079] In step S18, the processor 34 restricts the movement of the robot 12. Specifically, the processor 34 restricts the movement of the robot 12 (specifically, the end effector 28) based on the first movement command Cm1 generated in the most recent step S16 by reducing the command value of the first movement command Cm1 (e.g., speed command value V1, torque command value q1, acceleration command value a1).
[0080] As an example, processor 34 can also reduce the speed command value V1, q1, or a1 contained in the first movement command Cm1 by multiplying it by a predetermined coefficient β (for example, β < 1) (i.e., β·V1, β·q1, or β·a1). Furthermore, the coefficient β can also be determined as a function of the distance δ from boundary 100a to the current position Pc: β = f(δ).
[0081] The function β = f(δ) can also be defined as follows: as the distance δ decreases (in other words, as the current position Pc approaches the boundary 100a), the coefficient β decreases, and when δ = 0 (when the current position Pc is on the boundary 100a), β = 0. That is, in this case, when the end effector 28 reaches the boundary 100a, the instruction value V1, q1, or a1 of the first movement instruction Cm1 that causes the end effector 28 to move in the first direction DR1 is zero. As a result, the movement of the end effector 28 in the first direction DR1 is prohibited.
[0082] As another example, processor 34 can also correct the first position instruction Cm contained in the first move instruction Cm1. p1 This restricts the movement of the end effector 28 in the first direction DR1. For example, the processor 34 can also control the first position instruction Cm. p1 Perform corrections so that the first position command Cm is accurate. p1 The target position Pt of the first direction DR1 of the end effector 28 y It becomes the inside of boundary 100a.
[0083] Thus, processor 34 applies a multiplication operation with coefficient β or a position instruction Cm to the first move instruction Cm1 generated in step S15 above. p1correction or the like, thereby changing the first movement command Cm1' to be supplied to each servo motor 30. Thus, it is possible to restrict the movement of the robot 12 based on the first movement command Cm1.
[0084] On the other hand, the processor 34 permits the movement of the robot 12 based on the second movement command Cm2. As an example, the processor 34 supplies the second movement command Cm2 generated in the step S15 described above to each servo motor 30 without applying a change. That is, in this case, the processor 34 supplies each servo motor 30 with the second position command Cm p2 , the second speed command Cm v2 (v2), the second torque command Cm q2 (q2) or the second acceleration command Cm a2 (a2) included in the second movement command Cm2 without changing them.
[0085] Thus, in this case, the command values v2, q2 or a2 of the second movement command Cm2 are not reduced, and the processor 34 causes the end effector 28 to move in the second direction DR2 (the positive direction of the x-axis of the action range coordinate system C3 in the example) in accordance with the second movement command Cm2 (the command values v2, q2 or a2). Figure 11
[0086] As another example, the processor 34 can set the speed command value v2, the torque command value q2 or the acceleration command value a2 included in the second movement command Cm2 to a constant Vc (≥ v2), qc (≥ q2) or ac (≥ a2) that is equal to or greater than the value obtained in the step S16, as the second movement command Cm2' to be supplied to each servo motor 30. That is, in this case, the processor 34 causes the end effector 28 to move in the second direction DR2 at a constant speed Vc, torque qc or acceleration ac.
[0087] Further as another example, the processor 34 can multiply the speed command value v2, the torque command value q2 or the acceleration command value a2 included in the second movement command Cm2 by a predetermined coefficient γ (i.e., set to γ · v2, γ · q2 or γ · a2), as the second movement command Cm2' to be supplied to each servo motor 30. Here, the coefficient γ can be determined as a function of the distance δ: γ = f (δ).
[0088] This function: γ = f (δ) can be determined such that the coefficient γ becomes larger as the distance δ becomes smaller. That is, in this case, the command values γ · v2, γ · q2 or γ · a2 of the second movement command Cm2 are not reduced in accordance with the distance δ, but rather, as the end effector 28 approaches the boundary 100a, the movement of the end effector 28 in the second direction DR2 is promoted (accelerated).
[0089] Thus, processor 34 permits (or does not restrict) the movement of robot 12 based on the second movement instruction Cm2. Thus, processor 34 acts as the movement restriction unit 76. Figure 2 The movement restriction unit 76 performs its function by restricting the movement of robot 12 based on the first movement command Cm1, while allowing the movement of robot 12 based on the second movement command Cm2. After step S18, the processor 34 enters... Figure 4 Step S6 in the process.
[0090] On the other hand, if the determination is yes in step S17, in step S19, the processor 34 functions as a movement restriction unit 76, restricting the movement of the robot 12. Specifically, the processor 34 prohibits the robot 12 from moving in the first direction DR1. For example, the processor 34 prohibits the robot 12 from moving in the first direction DR1 by setting the speed command value V1, torque command value q1, or acceleration command value a1 included in the first movement command Cm1 to zero. Alternatively, the processor 34 can also modify the first position command Cm... p1 Make corrections so that the first movement command Cm1 contains the first position command Cm. p1 Target position Pt in the first direction DR1 y On boundary 100a (or inside it).
[0091] Thus, processor 34 executes the instruction Cm1 generated in step S15 above, changing its instruction value V1, q1, or a1 to zero or correcting the position instruction Cm. p1 After processing, the operation is changed to a first movement command Cm1', which is then supplied to each servo motor 30. This prevents the end effector 28 from moving in the first direction DR1. On the other hand, similar to step S18 described above, the processor 34 allows (or does not restrict) the movement of the robot 12 based on the second movement command Cm2.
[0092] Figure 12 The movement restriction processing in steps S18 and S19 is illustrated schematically. For example... Figure 12As shown, the first movement command Cml generated in step S15 by the command generating section 74 is delivered to the first signal processing line PLl and input to the arithmetic unit 80 of the movement restriction section 76. Then, in step S18 or S19, the movement restriction section 76 performs the multiplication operation by the coefficient β or the like for the movement restriction on the first movement command Cml and changes it to the first movement command Cml'. Also, the first movement command Cml' is output to the servo motor 30, which causes the robot 12 to perform the restricted movement in accordance with the first movement command Cml'. Thus, the movement of the robot 12 based on the first movement command Cml is subjected to the above-described restriction.
[0093] On the other hand, the second movement command Cm2 generated in step S15 by the command generating section 74 is delivered to the second signal processing line PL2 different from the first signal processing line PLl and input to the arithmetic unit 82 of the movement restriction section 76. Then, in step S18 or S19, the movement restriction section 76 supplies the second movement command Cm2 to each servo motor 30 without changing it, or performs the multiplication operation by the coefficient γ or the like and supplies it to each servo motor 30 as the second movement command Cm2'.
[0094] Thus, the movement of the robot 12 based on the second movement command Cm2 is permitted. In this embodiment, thus, the first movement command Cml and the second movement command Cm2 generated by the command generating section 74 are delivered to the different signal processing lines PLl and PL2, respectively, and subjected to different signal processing by the movement restriction section 76, respectively.
[0095] In step S20, the processor 34 generates an alarm AL. For example, the processor 34 generates the alarm AL of an image or sound such as "Stop the movement of the robot outside the allowable range of motion." Then, the processor 34 displays the generated alarm AL on the display device 40 (or 50) or outputs it through a speaker (not shown).
[0096] Instead, a light-emitting device (rotating lamp, LED lamp, or the like) can be provided in the control device 14, the teaching device 16, or the robot 12, and the processor 34 generates the alarm AL of causing the light-emitting device to emit light. Alternatively, a vibrator (or a tactile generating device) can be provided in the teaching device 16 or the robot 12, and the processor 34 generates the alarm AL of causing the vibrator to vibrate. After step S20, the processor 34 proceeds to step S6 in Figure 4
[0097] Referring again to Figure 4 In step S6, the processor 34 determines whether or not the motion end start instruction is received from the operator, the upper-level controller, or the computer program PG. The processor 34 ends the process in step S6 when the determination is YES. Figure 4 On the other hand, in the case where it is determined NO, the process returns to step S1.
[0098] As described above, in the present embodiment, the processor 34 functions as the force acquisition section 62, the position acquisition section 64, the reference point setting section 66, the direction setting section 68, the position calculation section 70, the notification signal generation section 72, the command generation section 74, and the movement restriction section 76, and restricts the movement of the robot 12 toward the outside of the allowable action range 100. Therefore, the force acquisition section 62, the position acquisition section 64, the reference point setting section 66, the direction setting section 68, the position calculation section 70, the notification signal generation section 72, the command generation section 74, and the movement restriction section 76 constitute the device 60 that restricts the movement of the robot 12 toward the outside of the allowable action range 100. Figure 2
[0099] In the device 60, the position acquisition section 64 acquires the current position Pc of the robot 12 (step S2), and the direction setting section 68 determines the first direction DR1 toward the outside of the allowable action range 100 and the second direction DR2 orthogonal to the first direction DR1, based on the current position Pc acquired by the position acquisition section 64 and the boundary 100a of the allowable action range 100 close to the current position Pc (step S12).
[0100] In addition, the command generation section 74 generates the first movement command Cml that moves the robot 12 in the first direction DR1 determined by the direction setting section 68, and the second movement command Cm2 that moves the robot 12 in the second direction DR2 determined by the direction setting section 68, in order to move the robot 12. Then, the movement restriction section 76 restricts the movement of the robot 12 based on the first movement command Cml, on the other hand, permits the movement of the robot 12 based on the second movement command Cm2 (steps S18, S19).
[0101] According to this structure, it is possible to reliably avoid the movement of the robot 12 toward the outside of the allowable action range 100, and thus it is possible to ensure the safety of the action of the robot 12. On the other hand, for example, when the teaching described above is performed, the operator sometimes wants to move the robot 12 (the end effector 28) along the boundary 100a of the allowable action range 100 (i.e., the second direction DR2). In such a case, the operator can effectively move the robot 12.
[0102] Further, in the device 60, the reference point setting section 66 determines a point Pr on the boundary 100a that is close to the current position Pc acquired by the position acquisition section 64 as the reference point Pr (step Sll). Then, the direction setting section 68 determines the first direction DRl and the second direction DR2 with reference to the reference point Pr set by the reference point setting section 66 (step S12). According to this structure, the first direction DRl and the second direction DR2 can be appropriately determined on the boundary 100a in accordance with the current position Pc of the robot 12. As a result, the movement of the robot 12 in the first direction DRl based on the first movement instruction Cml can be appropriately restricted.
[0103] Further, in the device 60, the reference point setting section 66 determines a point Pr on the boundary 100a that is closest to the current position Pc as the reference point Pr. According to this structure, the reference point Pr that serves as a reference for the first direction DRl and the second direction DR2 can be appropriately determined in correspondence with the current position Pc. Further, in the device 60, the direction setting section 68 determines the normal direction of the boundary 100a at the reference point Pr determined by the reference point setting section 66 as the first direction DRl. According to this structure, the first direction DRl can be appropriately determined in correspondence with the current position Pc of the robot 12 even if the boundary 100a is curved (e.g., circular).
[0104] Further, in the device 60, the direction setting section 68 sets an action range coordinate system C3 having a first axis (y axis) that defines the first direction DRl and a second axis (x axis, z axis) that defines the second direction DRl with the reference point Pr set by the reference point setting section 66 as the origin. Then, the instruction generation section 74 generates the first movement instruction Cml in the direction of the first axis (y axis direction) and the second movement instruction Cm2 in the direction of the second axis (x-z plane direction) with reference to the action range coordinate system C3. According to this structure, the operation processing of the first movement instruction Cml and the second movement instruction Cm2 can be executed independently of each other in parallel with reference to the action range coordinate system C3, and thus the efficiency of the operation processing can be improved.
[0105] Further, in the device 60, the instruction generation section 74 generates a movement instruction Cm that allows the robot 12 to move outside the allowable action range 100 (step S15), generates the component Cml of the first direction DRl of the movement instruction Cm as the first movement instruction Cml, and generates the component Cm2 of the second direction DRl of the movement instruction Cm as the second movement instruction Cm2. According to this structure, the first movement instruction Cml and the second movement instruction Cm2 can be generated in a relatively simple algorithm in accordance with the movement instruction Cm. Thus, the operation processing of generating the first movement instruction Cml and the second movement instruction Cm2 can be speeded up.
[0106] In addition, in the device 60, the first movement instruction Cm1 and the second movement instruction Cm2 include an instruction value V1 and V2 of a speed V1 and V2 of the robot 12, an acceleration a1 and a2 of the robot, or a torque q1 and q2 for driving the robot 12. Then, the movement restriction section 76 restricts the movement of the robot 12 based on the first movement instruction Cm1 by reducing the instruction value V1, a1, or q1 of the first movement instruction Cm1.
[0107] On the other hand, the movement restriction section 76 permits the movement of the robot 12 based on the second movement instruction Cm2 without reducing the instruction value V2, a2, or q2 of the second movement instruction Cm2. According to this structure, the movement restriction of the robot 12 based on the first movement instruction Cm1 can be implemented with a simple algorithm, and a more various movement restriction can be designed, for example, by appropriately setting the above-mentioned coefficient β. Further, the movement restriction section 76 can also slightly reduce the instruction value V2, a2, or q2 of the second movement instruction Cm2 to the extent that the movement of the robot 12 based on the second movement instruction Cm2 is permitted.
[0108] In addition, in the device 60, the position calculation section 70 calculates a target position Pt at which the robot 12 is to be moved from the current position Pc, and the notification signal generation section 72 generates a notification signal Sn that notifies of the movement direction DRm from the current position Pc to the target position Pt or the distance δ of the target position Pt from the boundary 100a (step S14). According to this structure, the operator can intuitively recognize the movement direction DRm or the distance δ.
[0109] In addition, in the device 60, in a case where the target position Pt calculated by the position calculation section 70 is outside the allowable action range 100 (YES in step S17), the movement restriction section 76 prohibits the movement of the robot 12 in the first direction DR1 (step S19). According to this structure, it is possible to reliably avoid the movement of the robot 12 outside the allowable action range 100.
[0110] Further, Figure 4 and Figure 6 The flow illustrated in FIG. 13 is an example, and various changes can be made to these flows. For example, after the flow illustrated in FIG. 13, the processor 34 can first execute steps S13 and S15, and then execute steps S11, S12, and S14, and then execute steps S16 to S20 in order. Figure 6
[0111] Further, in the present embodiment, the case where the processor 34 determines, in step Sll described above, as the reference point Pr, the point Pr on the boundary 100a closest to the current position Pc (δ = δ0) is described. However, the present application is not limited to this, and the point P on the boundary 100a closest to the current position Pc can be determined by any other algorithm.
[0112] For example, in step Sll, the processor 34 can determine, as the intersection P of the direction of one axis (for example, the z-axis of the tool coordinate system C2 at the time point) of the tool coordinate system C2 and the boundary 100a, the reference point Pr. Instead, in the flow of FIG. 9, in the case where steps S13 and S15 are performed first and then step Sll is performed, the processor 34 can determine, in step S13 or S15, the intersection P of the direction of the moving direction Dm (the z-axis of the tool coordinate system C2 at the time point) and the boundary 100a, and then determine, in step Sll, the intersection P as the reference point Pr. Figure 9 Figure 6 For example, in step Sll, the processor 34 can determine, as the intersection P of the direction of one axis (for example, the z-axis of the tool coordinate system C2 at the time point) of the tool coordinate system C2 and the boundary 100a, the reference point Pr. Instead, in the flow of FIG. 9, in the case where steps S13 and S15 are performed first and then step Sll is performed, the processor 34 can determine, in step S13 or S15, the intersection P of the direction of the moving direction Dm (the z-axis of the tool coordinate system C2 at the time point) and the boundary 100a, and then determine, in step Sll, the intersection P as the reference point Pr. Figure 9
[0113] Further, in the present embodiment, the case where the processor 34 determines, in step S12 described above, the normal direction of the boundary 100a at the reference point Pr as the first direction DRl (the y-axis direction of the action range coordinate system C3) is described. However, the present application is not limited to this, and the processor 34 can determine the first direction DRl (the y-axis direction of the action range coordinate system C3) by any other algorithm. For example, in step S12, the processor 34 can determine, as the first direction DRl (the positive direction of the y-axis of the action range coordinate system C3), the direction from the origin (O) of the tool coordinate system C2 at the time point toward the point Pr on the boundary 100a closest to the origin. Figure 8
[0114] Further, in the present embodiment, the case where the processor 34 sets the action range coordinate system C3 in step S12 described above is described. However, the present application is not limited to this, and the processor 34 can set the first direction DRl and the second direction DR2 with reference to the reference point Pr without setting the action range coordinate system C3 in step S12.
[0115] Further, step S14 can be omitted from the flow of FIG. 9. That is, in this case, the notification signal generation section 72 can be omitted from the device 60. Further, step S14 can be omitted from the flow of FIG. 9. That is, in this case, the notification signal generation section 72 can be omitted from the device 60. Figure 6 Figure 6 Step S20 is omitted from the flowchart. Further, in the above-described embodiment, the case where the processor 34 is capable of executing the point operation mode MD1 and the direct teaching mode MD2 is described. However, the processor 34 can not execute the direct teaching mode MD2, but can execute only the point operation mode MD1. That is, in this case, the force sensor 32 can be omitted from the robot 12, and the force acquisition unit 62 can be omitted from the device 60.
[0116] Next, the functions of the robot system 10 shown in FIG. 1 will be described with reference to the flowchart of FIG. 2. Figure 13 Further functions of the robot system 10 will be described. In the present embodiment, the processor 34 functions as the device 60, but the device 60 also has the function of the force component calculation unit 78. Hereinafter, the functions of the robot system 10 shown in FIG. 1 will be described with reference to the flowchart of FIG. 3. Figure 4 Figure 14 Further, the functions of the robot system 10 shown in FIG. 1 will be described with reference to the flowchart of FIG. 4. Figure 13 In the present embodiment, the processor 34 executes the flowchart of FIG. 5 in the above-described direct teaching mode MD2. Figure 4
[0117] Therefore, in step S1, the processor 34 determines whether or not an instruction to move the robot 12 (operation force Fh) is accepted, based on the operation force Fh acquired as the force acquisition unit 62 functions. Herein, in the present embodiment, the processor 34 executes the flowchart of FIG. 6 as step S5 (movement restriction process). Further, in the flowchart shown in FIG. 6, the same step numbers are assigned to the same processes as the flowchart of FIG. 5, and the repeated description is omitted. Figure 14 Figure 14 Figure 6
[0118] In step S5 of FIG. 4, after the above-described steps S11 to S14 are executed, in step S21, the processor 34 calculates a first force component Fh1 of the first direction DR1 and a second force component Fh2 of the second direction DR2 of the operation force Fh acquired in the most recent step S1. The calculation of the force components will be described with reference to FIG. 7. Figure 15
[0119] In step S5 of FIG. 4, after the above-described steps S11 to S14 are executed, in step S21, the processor 34 calculates a first force component Fh1 of the first direction DR1 and a second force component Fh2 of the second direction DR2 of the operation force Fh acquired in the most recent step S1. The calculation of the force components will be described with reference to FIG. 7. Figure 15 Figure 15 In step S5 of FIG. 4, after the above-described steps S11 to S14 are executed, in step S21, the processor 34 calculates a first force component Fh1 of the first direction DR1 and a second force component Fh2 of the second direction DR2 of the operation force Fh acquired in the most recent step S1. The calculation of the force components will be described with reference to FIG. 7. In step S5 of FIG. 4, after the above-described steps S11 to S14 are executed, in step S21, the processor 34 calculates a first force component Fh1 of the first direction DR1 and a second force component Fh2 of the second direction DR2 of the operation force Fh acquired in the most recent step S1. The calculation of the force components will be described with reference to FIG. 7.
[0120] On the other hand, the component Fh2 of the operation force Fh in the x-z plane of the action range coordinate system C3 (i.e., the second direction DR2) is expressed as Fh2 = Fh cos θ. The processor 34 calculates the component Fh2 expressed by the action range coordinate system C3, converts it into the robot coordinate system Cl based on the coordinates Q0 and the operation force Fh, and acquires the second force component Fh2. In this way, the processor 34 functions as a force component calculation section 78 that calculates the component Fh1 of the operation force Fh in the first direction DR1 as the first force component Fh1 and the component Fh2 of the operation force Fh in the second direction DR2 as the second force component Fh2. Figure 13 ) functions as a force component calculation section 78 that calculates the component Fh1 of the operation force Fh in the first direction DR1 as the first force component Fh1 and the component Fh2 of the operation force Fh in the second direction DR2 as the second force component Fh2.
[0121] After the step S21, the processor 34 executes the step S17. When the determination is NO in the step S17, the processor 34 functions as a movement restriction section 76 that restricts the movement of the robot 12 in the step S22. Specifically, the processor 34 restricts the movement of the robot 12 based on the first movement instruction Cm1 generated in the subsequent step S23 by reducing the first force component Fh1 calculated in the latest step S21.
[0122] As an example, the processor 34 can reduce the first force component Fh1 by multiplying it by a predetermined coefficient ε (e.g., ε < 1) (i.e., set to ε Fh1), thereby changing it to a first force component Fh1'. Further, the coefficient ε can be determined as a function of the distance δ from the current position Pc to the boundary 100a: ε = f(δ).
[0123] The function: ε = f(δ) can be determined such that the coefficient ε becomes smaller as the distance δ becomes smaller, and ε = 0 when δ = 0. That is, in this case, when the end effector 28 reaches the boundary 100a, the first movement instruction Cm1 generated in the subsequent step S23 becomes zero, as a result of which the movement of the end effector 28 in the first direction DR1 is prohibited.
[0124] On the other hand, the processor 34 does not reduce the second force component Fh2, but permits (or does not restrict) the movement of the robot 12 based on the second movement instruction Cm2 generated in the subsequent step S23. As an example, the processor 34 does not change the second force component Fh2. As another example, the processor 34 can change it to a second force component Fh2' by setting the second force component Fh2 to a constant Fhc (≥ Fh2) that is equal to or larger than the value calculated in the step S21.
[0125] Further, as another example, the processor 34 can also change the second force component Fh2 to a second force component Fh2' (= ζ · Fh2) by multiplying the second force component Fh2 by a predetermined coefficient ζ. Here, the coefficient ζ can also be determined as a function of the distance δ: ζ = f(δ). This function: ζ = f(δ) can also be determined such that the coefficient ζ becomes larger as the distance δ becomes smaller.
[0126] That is, in this case, the second force component Fh2 does not decrease in accordance with the distance δ, and instead, as the end effector 28 approaches the boundary 100a, movement of the end effector 28 in the second direction DR2 based on the second movement command Cm2 generated in the subsequent step S23 is promoted. In this way, the processor 34 permits (or does not restrict) movement of the robot 12 based on the second movement command Cm2.
[0127] In step S23, the processor 34 functions as an instruction generation section 74 to generate the first movement command Cm1 and the second movement command Cm2. Specifically, the processor 34 generates the first movement command Cm1 based on the first force component Fh1' (= ε · Fh1) obtained as a result of the previous step S22, and supplies it to each servo motor 30. In the previous step S22, the first force component Fh1 calculated in step S21 is reduced to the first force component Fh1', and thus movement of the end effector 28 in the first direction DR1 based on the first movement command Cm1 generated at this time is restricted.
[0128] In addition, the processor 34 generates the second movement command Cm2 based on the second force component Fh2, Fhc, or ζ · Fh2 obtained as a result of the previous step S22. In the previous step S22, the second force component Fh2 calculated in step S21 is not reduced, and thus movement of the end effector 28 in the second direction DR2 based on the second movement command Cm2 generated at this time is permitted (or not restricted).
[0129] On the other hand, in the case where the determination in step S17 is YES, in step S24, the processor 34 functions as a movement restriction section 76 to restrict movement of the robot 12. Specifically, the processor 34 prohibits movement of the robot 12 in the first direction DR1 based on the first movement command Cm1 generated in the subsequent step S25 by setting the first force component Fh1 calculated in the most recent step S21 to zero. In this way, the processor 34 changes the first force component Fh1 calculated in step S21 to the first force component Fh1' (= 0). On the other hand, similarly to the above-described step S22, the processor 34 permits (or does not restrict) movement of the robot 12 based on the second movement command Cm2.
[0130] In step S25, the processor 34 functions as an instruction generation unit 74, generating a first movement instruction Cm1 and a second movement instruction Cm2. Specifically, the processor 34 generates the first movement instruction Cm1 based on the first force component Fh1' (=0) obtained as a result of the previous step S24, and supplies it to each servo motor 30. As a result, the movement of the end effector 28 in the first direction DR1 is prohibited.
[0131] Furthermore, processor 34 generates a second movement command Cm2 based on the second force component Fh2, Fhc, or ζ·Fh2 obtained as a result of the previous step S24. This permits (or does not restrict) the end effector 28 to move in the second direction DR2. After step S25, processor 34 proceeds to step S20 as described above.
[0132] Figure 16 This schematically illustrates the movement restriction processing in steps S21 to S25. For example... Figure 16 As shown, in step S21, the first force component Fh1 calculated by the force component calculation unit 78 is sent to the first signal processing line PL1 and input to the arithmetic unit 80 of the movement restriction unit 76. Then, in steps S22 and S24, the movement restriction unit 76 performs movement restriction operations such as multiplication of the coefficient ε on the first force component Fh1, changing it to the first force component Fh1'.
[0133] Then, the first force component Fh1' is input to the command generation unit 74. In step S23 or S25, the command generation unit 74 generates a first movement command Cm1 based on the first force component Fh1' and outputs it to each servo motor 30. The movement of the robot 12 based on the first movement command Cm1 generated in this way is subject to the restrictions described above.
[0134] On the other hand, the second force component Fh2 calculated by the force component calculation unit 78 in step S21 is sent to the second signal processing line PL2 and input to the arithmetic unit 82 of the movement restriction unit 76. Then, in step S22 or S24, the movement restriction unit 76 either does not modify the second force component Fh2 and supplies it to the instruction generation unit 74, or performs calculations such as multiplication of coefficient ζ and supplies it to the instruction generation unit 74 as the second force component Fh2'.
[0135] The command generation section 74 generates the second movement command Cm2 based on the second force component Fh2 or Fh2' in step S23 or S25, and supplies it to each servo motor 30. With the second movement command Cm2 thus generated, the robot 12 is permitted to move in the second direction DR2. In this way, in the present embodiment, the first force component Fhl and the second force component Fh2 generated by the force component generation section 78 are respectively fed to different signal processing lines PLl and PL2, and subjected to different signal processing by the movement restriction section 76.
[0136] As described above, in the apparatus 60 shown in Figure 13 The force acquisition section 62 acquires the operation force Fh applied to the robot 12 in order to move the robot 12 based on the detection data Df of the force sensor 32 that detects the force F applied to the robot 12 in step S1. Further, the force component calculation section 78 calculates the component Fhl of the operation force Fh acquired by the force acquisition section 62 in the first direction DRl as the first force component Fhl, and calculates the component Fh2 of the operation force Fh in the second direction DR2 as the second force component Fh2 in step S21.
[0137] Then, the command generation section 74 generates the first movement command Cml based on the first force component Fhl calculated by the force component calculation section 78, and generates the second movement command Cm2 based on the second force component Fh2 calculated by the force component calculation section 78 in steps S23 and S25. According to this structure, for example, when the operator applies the operation force Fh to the robot 12 in the direct teaching mode MD2, the robot 12 can be accurately moved in the first direction DRl and the second direction DR2 by the movement amount corresponding to the operation force Fh, respectively.
[0138] Further, in the apparatus 60 shown in Figure 13 The movement restriction section 76 restricts the movement of the robot 12 based on the first movement command Cml by reducing the first force component Fhl, and on the other hand, permits the movement of the robot 12 based on the second movement command Cm2 without reducing the second force component Fh2 in steps S22 and S24. According to this structure, the movement restriction of the robot 12 based on the first movement command Cml can be implemented with a simple algorithm, and for example, by appropriately setting the coefficient ε described above, more various movement restrictions can be designed. Further, the movement restriction section 76 can also slightly reduce the second force component Fh2 to the extent that the movement of the robot 12 based on the second movement command Cm2 is permitted.
[0139] Next, another other function of the robot system 10 will be described with reference to Figure 17 The processor 34 functions as the apparatus 60 in the present embodiment, but the apparatus 60 also has the function of the action range setting section 84. Hereinafter, the function of the action range setting section 84 will be described. Figure 13The functions of the robot system 10 shown are described. In the present embodiment, the processor 34 executes the flow of Figure 6 or Figure 14 in the above-described steps S18, S19, S22, or S24, functions as the movement restriction section 76, and causes the robot 12 to perform the restricted movement (i.e., restricts movement in the first direction DR1, and on the other hand, permits movement in the second direction DR2).
[0140] During the execution of the restricted movement, the processor 34 repeatedly executes the above-described step S2, functions as the position acquisition section 64, and repeatedly acquires the current position Pc n of the robot 12 (i.e., the end effector 28) in the restricted movement (n = 1, 2, 3,...). Figure 18 The current positions Pc1, Pc2, and Pc3 of the end effector 28 acquired in the restricted movement are shown. Here, in the present embodiment, the processor 34 sets a new allowable action range 120 based on the current positions Pc n acquired in the restricted movement. As an example, the processor 34 sets the new allowable action range 120 in the robot coordinate system Cl in such a manner that the new allowable action range 120 passes through the current positions Pc1, Pc2, and Pc3.
[0141] As another example, the processor 34 generates a movement path MP that passes through the current positions Pc1, Pc2, and Pc3 based on the current positions Pc1, Pc2, and Pc3, and sets the new allowable action range 120 in the robot coordinate system Cl in such a manner that the new allowable action range 120 is in contact with the generated movement path MP. In this way, in the present embodiment, the processor 34 functions as the action range setting section 84 n that sets the new allowable action range 120 based on the current positions Pc Figure 17 acquired in the restricted movement.
[0142] Figure 19 An example of the allowable action range 120 thus set is shown. As shown in Figure 19 , the allowable action range 120 is disposed inside the boundary 100a of the predetermined allowable action range 100, and the boundary 120a of the allowable action range 120 extends along (e.g., in parallel with) the boundary 100a. The processor 34 stores data (e.g., coordinates in the robot coordinate system Cl) of the newly set allowable action range 120 in the memory 36 (or 46). Thereafter, the processor 34 can execute the flow of Figure 4 based on the new allowable action range 120.
[0143] As described above, in the device 60 shown in Figure 17 , the position acquisition section 64 repeatedly acquires the current position Pc of the robot 12 when the movement restriction section 76 causes the robot 12 to perform the restricted movement.n Then, the action range setting section 84 sets a new allowable action range 120 based on the current position Pc n which the position acquisition section 64 has acquired in the restricted movement.
[0144] According to this structure, for example, when the operator performs teaching in the above point teaching mode MD1 or the direct teaching mode MD2, it is possible to easily set a new allowable action range 120 based on the position Pc n (or the movement path MP) of the robot 12 which has been restricted to move along the boundary 100a of the predetermined allowable action range 100.
[0145] Further, in the above-described embodiment, a case where the predetermined allowable action range 100 is circular (or cylindrical) has been described. However, it is not limited thereto, and the allowable action range 100 may, for example, be an arbitrary shape such as a polygonal (quadrangular, pentagonal, etc.) shape, a semispherical shape, or a random shape composed of a plurality of curved surfaces.
[0146] Further, in the above-described embodiment, a case where the processor 34 determines the reference point Pr in step S11 has been described. However, it is not limited thereto, and the processor 34 can determine the first direction DR1 and the second direction DR2 without determining the reference point Pr. The reference Figure 20 and Figure 21 will be described.
[0147] In the present embodiment, an allowable action range 130 of a substantially quadrangular shape is predetermined, and the boundary 130a of the allowable action range 130 has boundaries 130a1, 130a2, 130a3, and 130a4 which respectively demarcate one side of the quadrangular shape. Further, an action range coordinate system C3 is set for the allowable action range 130. The action range coordinate system C3 is a coordinate system which specifies the position of the allowable action range 130 in the robot coordinate system Cl.
[0148] In the example shown in FIG. 13, the action range coordinate system C3 is set such that its origin is disposed on the intersection of the boundaries 130a1 and 130a2 (i.e., one vertex of the quadrangular shape), its x-axis is parallel to the boundaries 130a1 and 130a3, its y-axis is parallel to the boundaries 130a2 and 130a4, and its z-axis is parallel to the z-axis of the robot coordinate system Cl. The coordinates Qo of the action range coordinate system C3 in the robot coordinate system Cl are known. Figure 20 In the present embodiment, the processor 34 executes the flow shown in FIG. 14 in accordance with the allowable action range 130. Here, the processor 34 starts the flow in step S31.
[0149] Figure 4 In the present embodiment, the processor 34 executes the flow shown in FIG. 14 in accordance with the allowable action range 130. Here, the processor 34 starts the flow in step S31. Figure 6 or Figure 14 During step S5, step S12 is executed instead of step S11. In step S12, the processor 34 functions as the direction setting unit 68, and determines a first direction DR1 toward the outside of the allowable movement range 130 and a second direction DR2 orthogonal to the first direction DR1, based on the current position Pc obtained in the most recent step S2 and the boundary 130a1 of the allowable movement range 130 near the current position Pc.
[0150] Specifically, such as Figure 21 As shown, processor 34 determines the boundary 130a1 closest to the current position Pc among the boundaries 130a1, 130a2, 130a3, and 130a4 of the allowed action range 130. Next, processor 34 defines the direction parallel to the normal direction of the determined boundary 130a1 and pointing outwards from the allowed action range 130, i.e., the negative y-axis direction of the action range coordinate system C3, as the first direction DR1. Furthermore, processor 34 defines the direction of the xz plane of the action range coordinate system C3, which is orthogonal to the first direction DR1, as the second direction DR2.
[0151] Furthermore, assuming that the boundary 130a2 of the boundaries 130a1, 130a2, 130a3, and 130a4 of the action range 130 is close to the current position Pc, the processor 34 determines the negative x-axis direction of the action range coordinate system C3 as the first direction DR1, and determines the direction of the yz plane of the action range coordinate system C3 as the second direction. Thus, in this embodiment, the first direction DR1 and the second direction can be determined as the x-axis direction or y-axis direction of the action range coordinate system C3 based on the boundary 130a1, 130a2, 130a3, or 130a4 that is close to the current position Pc.
[0152] Thus, the processor 34 uses the predetermined motion range coordinate system C3 as a reference and determines the first direction DR1 and the second direction DR2 based on the boundary 130a1 near the current position Pc. In this embodiment, the processor 34 then executes sequentially based on the motion range coordinate system C3 and the set first direction DR1 and second direction DR2. Figure 6 Steps S13 to S20, or Figure 14 Steps S13, S14, S21, S17, S22-25, and S20. Thus, according to this embodiment, it is possible to... Figure 4 or Figure 6 Step S11 is omitted in the process. That is, the reference point setting unit 66 can be omitted from the device 60.
[0153] In addition, processor 34 can also execute according to computer program PG pre-stored in memory 36 (or 46). Figure 4The functions of the device 60 (i.e., the force acquisition section 62, the position acquisition section 64, the reference point setting section 66, the direction setting section 68, the position calculation section 70, the notification signal generation section 72, the instruction generation section 74, the movement restriction section 76, the force component calculation section 78, and the movement range setting section 84) executed by the processor 34 can also be functional modules realized by the computer program PG.
[0154] In the above-described embodiments, the case where the processor 34 executes the flow of Figure 4 when teaching in the point mode MD1 or the direct teaching mode MD2 has been described. However, the present disclosure is not limited thereto, and for example, the processor 34 can execute the flow of Figure 4 when the operator cooperates with the robot 12 to perform work.
[0155] In the above-described embodiments, the case where the functions of the device 60 are installed in the control device 14 has been described. However, the present disclosure is not limited thereto, and at least one of the functions of the device 60 can also be installed in the teaching device 16. For example, the notification signal generation section 72 among the functions of the device 60 can also be installed in the teaching device 16. In this case, the processor 44 of the teaching device 16 can also function as the notification signal generation section 72 to generate the image 110 illustrated in Figure 10 and display it on the display device 50. Further, at least one of the functions of the device 60 can also be installed in any computer (PC or the like) other than the control device 14 and the teaching device 16.
[0156] The present disclosure has been described in detail, but the present disclosure is not limited to the above-described embodiments. The embodiments can be variously added, replaced, changed, partially deleted, or the like within a range not departing from the gist of the present disclosure, or within a range not departing from the gist of the present disclosure derived from the content described in the claims and equivalents thereof. Further, the embodiments can also be implemented in combination. For example, in the above-described embodiments, the order of each action, the order of each process is indicated as an example, and is not limited thereto. The same applies to the case where numerical values or mathematical expressions are used in the description of the above-described embodiments.
[0157] The present disclosure discloses the following modes.
[0158] (way 1) An apparatus 60 that restricts movement of a robot 12 toward the outside of a predetermined allowable action range 100, 130, wherein there are: a position acquisition section 64 that acquires a current position Pc of the robot 12; a direction setting section 68 that determines a first direction DR1 toward the outside and a second direction DR2 orthogonal to the first direction DR1, based on the current position Pc acquired by the position acquisition section 64 and a boundary 100a, 130a of the allowable action range 100, 130 that approaches the current position Pc; an instruction generation section 74 that generates a first movement instruction Cm1 that causes the robot 12 to move in the first direction DR1 determined by the direction setting section 68 and a second movement instruction Cm2 that causes the robot 12 to move in the second direction DR2 determined by the direction setting section 68, in order to cause the robot 12 to move; and a movement restriction section 76 that restricts movement of the robot 12 based on the first movement instruction Cm1, and on the other hand, permits movement of the robot 12 based on the second movement instruction Cm2.
[0159] (way 2) The apparatus 60 according to way 1, wherein there is further: a reference point setting section 66 that determines a point P on the boundary 100a, 130a that approaches the current position Pc acquired by the position acquisition section 64 as a reference point Pr, and the direction setting section 68 determines the first direction DR1 and the second direction DR2 with reference to the reference point Pr set by the reference point setting section 66.
[0160] (way 3) The apparatus 60 according to way 2, wherein the reference point setting section 66 determines the point P that is the minimum distance δ from the current position Pc as the reference point Pr.
[0161] (way 4) The apparatus according to way 2 or 3, wherein the direction setting section 68 determines the normal direction of the boundary 100a, 130a at the reference point Pr determined by the reference point setting section 66 as the first direction DR1.
[0162] (way 5) The apparatus 60 according to any one of ways 2 to 4, wherein the direction setting section 68 sets an action range coordinate system C3 having a first axis (y axis) that prescribes the first direction DR1 and a second axis (x axis, z axis) that prescribes the second direction DR2, with the reference point Pr set by the reference point setting section 66 as the origin, and the instruction generation section 74 generates the first movement instruction Cm1 in the direction of the first axis and the second movement instruction Cm2 in the direction of the second axis, with reference to the action range coordinate system C3.
[0163] (way 6) The apparatus 60 according to any one of ways 1 to 5, wherein the instruction generation section 74 generates a movement instruction Cm to move the robot 12 to the outside, generates a component Cml of the first direction DRl of the movement instruction Cm as the first movement instruction Cml, and generates a component Cm2 of the second direction DR2 of the movement instruction Cm as the second movement instruction Cm2.
[0164] (way 7) The apparatus 60 according to way 6, wherein the first movement instruction Cml and the second movement instruction Cm2 contain instruction values Vl, V2, al, a2, ql, q2 of a speed VI, V2, an acceleration al, a2, or a torque ql, q2 of the robot 12, and the movement restriction section 76 restricts movement of the robot 12 based on the first movement instruction Cml by reducing the instruction values VI, al, ql of the first movement instruction Cml, and on the other hand, permits movement of the robot 12 based on the second movement instruction Cm2 without reducing the instruction values V2, a2, q2 of the second movement instruction Cm2.
[0165] (way 8) The apparatus 60 according to any one of ways 1 to 5, further comprising: a force acquisition section 62 that acquires an operation force Fh applied to the robot 12 in order to move the robot 12, based on detection data Df of a force sensor 32 that detects a force F applied to the robot 12; a force component calculation section 78 that calculates a component Fhl of the operation force Fh acquired by the force acquisition section 62 in the first direction DRl as a first force component Fhl, and calculates a component Fh2 of the operation force Fh in the second direction DR2 as a second force component Fh2, and the instruction generation section 74 generates the first movement instruction Cml based on the first force component Fhl calculated by the force component calculation section 78, and generates the second movement instruction Cm2 based on the second force component Fh2 calculated by the force component calculation section 78.
[0166] (way 9) The apparatus 60 according to way 8, wherein the movement restriction section 76 restricts movement of the robot 12 based on the first movement instruction Cml by reducing the first force component Fhl, and on the other hand, permits movement of the robot 12 based on the second movement instruction Cm2 without reducing the second force component Fh2.
[0167] (way 10) The apparatus 60 according to any one of ways 1 to 9, further comprising: a position calculation section 70 that calculates a target position Pt to move the robot 12 from a current position Pc, and further comprising: a notification signal generation section 72 that generates a notification signal Sn that notifies of a movement direction DRm from the current position Pc to the target position Pt, or a distance δ of the target position Pt from the boundary 100a, 130a.
[0168] (Manner 11) The apparatus 60 according to any one of Manners 1 to 10, further having a position calculating section 70 that calculates a target position Pt at which the robot 12 is to be moved from the current position Pc, wherein the movement restricting section 76 prohibits movement of the robot 12 in the first direction DR1 in a case where the target position Pt calculated by the position calculating section 70 is outside the allowable movement range 100, 130.
[0169] (Manner 12) The apparatus 60 according to any one of Manners 1 to 11, wherein the position acquiring section 64 repeatedly acquires the current position Pc of the robot 12 while the movement restricting section 76 restricts movement of the robot 12 n , the apparatus 60 further having a movement range setting section 84 that sets a new allowable movement range 120 in accordance with the current position Pc acquired by the position acquiring section 64 in the movement restriction. n
[0170] (Manner 13) A method of restricting movement of a robot 12 toward an outside of a predetermined allowable movement range 100, 130, wherein a processor 34, 44 acquires a current position Pc of the robot 12, determines a first direction DR toward the outside and a second direction DR2 orthogonal to the first direction DR1 in accordance with the acquired current position Pc and a boundary 100a, 130a of the allowable movement range 100, 130 that is proximate to the current position Pc, generates a first movement instruction Cm1 that causes the robot 12 to move in the determined first direction DR1 and a second movement instruction Cm2 that causes the robot 12 to move in the determined second direction DR2 in order to cause the robot 12 to move, restricts movement of the robot 12 based on the first movement instruction Cm1, and on the other hand, permits movement of the robot 12 based on the second movement instruction Cm2.
[0171] (Manner 14)
[0172] A computer program PG that causes a processor 34, 44 to execute the method of Manner 13.
[0173] Explanation of Reference Numerals
[0174] 10 Robot system
[0175] 12 Robot
[0176] 14 Control apparatus
[0177] 16 Teaching apparatus
[0178] 32 Force sensor
[0179] 34, 44 Processor
[0180] 60 Apparatus
[0181] 64 position acquisition section
[0182] 66 reference point setting section
[0183] 68 direction setting section
[0184] 70 position calculation section
[0185] 72 notification signal generation section
[0186] 74 instruction generation section
[0187] 76 movement restriction section
[0188] 78 force component calculation section
[0189] 84 action range setting section
[0190] 100, 120, 130 allowable action range
Claims
1. A device for restricting the movement of a robot toward the outside of a predetermined permissible range of motion, characterized in that, have: The position acquisition unit acquires the current position of the robot; The direction setting unit determines a first direction toward the outside and a second direction orthogonal to the first direction based on the current position obtained by the position acquisition unit and the boundary of the allowable range of motion near the current position; The instruction generation unit generates a first movement instruction that causes the robot to move in the first direction determined by the direction setting unit and a second movement instruction that causes the robot to move in the second direction determined by the direction setting unit in order to move the robot. The movement restriction unit restricts the movement of the robot based on the first movement command, while permitting the movement of the robot based on the second movement command.
2. The apparatus according to claim 1, characterized in that, The device further includes a reference point setting unit, which determines a point on the boundary of the current position obtained by the position acquisition unit as a reference point. The direction setting unit determines the first direction and the second direction based on the reference point set by the reference point setting unit.
3. The apparatus according to claim 2, characterized in that, The reference point setting unit determines the point with the smallest distance from the current position as the reference point.
4. The apparatus according to claim 2, characterized in that, The direction setting unit determines the normal direction of the boundary at the reference point determined by the reference point setting unit as the first direction.
5. The apparatus according to claim 2, characterized in that, The direction setting unit uses the reference point set by the reference point setting unit as the origin, and sets up a range coordinate system having a first axis defining the first direction and a second axis defining the second direction. The instruction generation unit uses the motion range coordinate system as a reference to generate a first movement instruction in the direction of the first axis and a second movement instruction in the direction of the second axis.
6. The apparatus according to claim 1, characterized in that, The instruction generation unit generates a movement instruction that causes the robot to move outward, generates the first direction component of the movement instruction as the first movement instruction, and generates the second direction component of the movement instruction as the second movement instruction.
7. The apparatus according to claim 6, characterized in that, The first movement command and the second movement command include command values specifying the robot's speed, the robot's acceleration, or the torque driving the robot. The movement restriction unit restricts the movement of the robot based on the first movement command by reducing the command value of the first movement command, while allowing the movement of the robot based on the second movement command without reducing the command value of the second movement command.
8. The apparatus according to claim 1, characterized in that, The device also has: A force acquisition unit acquires the operating force applied to the robot to make it move; The force component calculation unit calculates the first-direction component of the operating force obtained by the force acquisition unit as a first force component, and calculates the second-direction component of the operating force as a second force component. The instruction generation unit generates the first movement instruction based on the first force component calculated by the force component calculation unit, and generates the second movement instruction based on the second force component calculated by the force component calculation unit.
9. The apparatus according to claim 8, characterized in that, The movement restriction unit restricts the movement of the robot based on the first movement command by reducing the first force component, while allowing the movement of the robot based on the second movement command without reducing the second force component.
10. The apparatus according to claim 1, characterized in that, The device further includes a position calculation unit that calculates a target position that causes the robot to move from its current position. The device further includes: a notification signal generation unit that generates a notification signal that notifies the direction of movement from the current position to the target position or the distance between the target position and the boundary.
11. The apparatus according to claim 1, characterized in that, The device further includes a position calculation unit that calculates a target position that causes the robot to move from its current position. If the target position calculated by the position calculation unit is outside the allowed range of motion, the movement restriction unit prohibits the robot from moving in the first direction.
12. The apparatus according to claim 1, characterized in that, The position acquisition unit repeatedly acquires the current position when the movement restriction unit restricts the robot's movement. The device further includes an action range setting unit that sets a new permissible action range based on the current position obtained by the position acquisition unit during the restricted movement.
13. A method for restricting the movement of a robot toward the outside of a predetermined permissible range of motion, characterized in that, The processor obtains the robot's current position, and based on the obtained current position and the boundary of the allowable range of motion near the current position, determines a first direction toward the outside and a second direction orthogonal to the first direction. In order to move the robot, it generates a first movement command that moves the robot in the determined first direction and a second movement command that moves the robot in the determined second direction. It restricts the robot's movement based on the first movement command, and on the other hand, permits the robot's movement based on the second movement command.
14. A computer program, characterized in that, The processor is then made to execute the method of claim 13.
Citation Information
Patent Citations
Control method of robot
JP2020049592A