Robot system and control method

By generating the robot action path in the joint angle space and suppressing the change of the end effector posture, the reliability and speed problems when generating the path in the prior art are solved, and efficient robot operation is achieved.

CN120382477APending Publication Date: 2025-07-29YASKAWA DENKI KK

Patent Information

Application Number
CN202510109299.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-01-26
Filing Date
2025-01-23
Publication Date
2025-07-29

AI Technical Summary

Technical Problem

The prior art is difficult to take into account high reliability and rapidity when generating robot motion paths, especially in the coordination problems of end effector posture changes and joint angle space.

Method used

By generating an action path in the joint angle space and suppressing posture changes of the end effector, an efficient action path is generated and executed by using the coordinated work of the path generation unit, the robot control unit and the path storage unit.

Benefits of technology

It realizes the rapid generation of action paths with high reliability in the robot system, reduces action interruptions caused by path generation delay, and improves the efficiency and accuracy of robot operation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120382477A_ABST
    Figure CN120382477A_ABST
Patent Text Reader

Abstract

A robot system and a control method. A robot system (1) is provided with: a robot (2) having a multi-joint arm (10) for changing the position of a fingertip; a path generation unit (110) that generates an operation path for moving a fingertip; and a robot control unit (124) that operates the robot (2) so that the fingertip moves along the generated operation path, and the path generation unit (110) generates the operation path in the joint angle space of the articulated arm (10) while suppressing a change in the posture of the fingertip when moving along the operation path.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a robot system and a control method. Background Art

[0002] In Japanese Patent Laid-Open No. 2000-20117, the following method is disclosed: Using a geometric model unit on a computer that describes the geometric shapes of a robot and a work environment and their configurations, and an interference check unit on a computer that checks for interference between the model, when the start and target configurations of the robot are given, plan the movement path of the robot such that there is no interference between the robot and obstacles in the work environment. Summary of the Invention

[0003] The present disclosure provides a system effective for quickly generating a movement path of a robot with high reliability.

[0004] A robot system according to one aspect of the present disclosure includes: a robot having a multi-joint arm that changes the position of a fingertip; a path generation unit that generates a movement path for moving the fingertip; and a robot control unit that causes the robot to move in such a manner that the fingertip moves along the generated movement path. The path generation unit suppresses the change in the posture of the fingertip when moving along the movement path, and generates a movement path in the joint angle space of the multi-joint arm.

[0005] A control method according to another aspect of the present disclosure is a method for controlling a robot having a multi-joint arm that changes the position of a fingertip, the method including: generating a movement path of the robot; and causing the robot to move in such a manner that the fingertip moves along the generated movement path. Generating the movement path includes: suppressing the change in the posture of the fingertip when moving along the movement path, and generating a movement path in the joint angle space of the multi-joint arm.

[0006] Effects of the Invention

[0007] According to the present disclosure, it is possible to provide a system effective for quickly generating a movement path of a robot with high reliability. Brief Description of the Drawings

[0008] Figure 1 is a schematic diagram illustrating the structure of a robot system.

[0009] Figure 2 is a schematic diagram illustrating a movement path.

[0010] Figure 3 is a schematic diagram illustrating a plurality of movement commands representing a movement path in the joint angle space.

[0011] Figure 4 is a schematic diagram illustrating a plurality of movement commands.

[0012] Figure 5 It is a timing chart illustrating the relationship between the actions of the robot and the generation time of the path.

[0013] Figure 6 It is a block diagram illustrating the structure of the path generation unit.

[0014] Figure 7 It is a schematic diagram showing a calculation example of the posture change based on the biaxial rotation method.

[0015] Figure 8 It is a schematic diagram illustrating the input interface of the allowable range.

[0016] Figure 9 It is a block diagram illustrating the hardware structure of the controller.

[0017] Figure 10 It is a flowchart illustrating the state update process.

[0018] Figure 11 It is a flowchart illustrating the command call process.

[0019] Figure 12 It is a flowchart illustrating the path generation process.

[0020] Figure 13 It is a flowchart showing a modified example of the path generation process.

[0021] Figure 14 It is a flowchart illustrating the robot control process. Detailed Implementation Manner

[0022] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings. In the description, the same reference numerals are assigned to elements having the same elements or the same functions, and repeated descriptions are omitted.

[0023] [Robot System]

[0024] Figure 1 The shown robot system 1 is a system that makes the robot 2 perform operations on workpieces. Examples of operations on workpieces include workpiece conveyance, workpiece machining, workpiece assembly, etc. Examples of workpiece machining include workpiece grinding, workpiece polishing, etc. Examples of workpiece assembly include fastening of multiple components (components of the workpiece) to each other based on bolt tightening, etc., and joining of multiple components to each other based on welding, etc.

[0025] The robot system 1 includes a robot 2 and a control device 100. The robot 2 is, for example, an industrial vertical multi-joint robot and has an end effector 3 and a multi-joint arm 10.

[0026] The end effector 3 is equivalent to the "fingertip" of the robot 2 and acts on the workpiece. As examples of the end effector 3, an adsorption nozzle for holding the workpiece, a hand for gripping the workpiece, a grinding tool for grinding the workpiece, a polishing tool for polishing the workpiece, a thread tightening tool (such as a screwdriver or a wrench) for performing thread tightening (such as screwing in a bolt), a welding gun for spot welding, a welding gun for arc welding, a painting gun for painting, etc. can be cited, but are not limited to these examples.

[0027] The multi-joint arm 10 changes the position of the end effector 3 through the movement of multiple joints. Changing the position of the end effector 3 includes changing the posture of the end effector 3. For example, changing the position of the end effector 3 includes changing the coordinates of the end effector 3 in the Cartesian space (such as the coordinates of the end of the end effector 3), and includes rotating the end effector 3 around each coordinate axis.

[0028] For example, the multi-joint arm 10 has a base 11, a rotating part 12, a first arm 13, a second arm 14, a third arm 17, an end part 18, and multiple motors 40. The base 11 is, for example, set on the ground of the working area. The base 11 can also be set on a moving body such as an automated guided vehicle that moves within the working area.

[0029] The rotating part 12 is set on the base 11 so as to rotate around a vertical axis 21. The first arm 13 is connected to the base 11 so as to swing around an axis 22 that intersects (such as being perpendicular to) the axis 21, and extends in a direction away from the axis 22. The intersection, for example, includes a relationship of being twisted with each other like a cloverleaf interchange. The same applies hereinafter.

[0030] The second arm 14 is connected to the end of the rotating part 12 so as to swing around an axis 23 parallel to the axis 22. The second arm 14 has an arm base 15 and an arm end 16. The arm base 15 extends in a direction away from the axis 23. The second arm 14 is connected to the end of the arm base 15 so as to rotate around an axis 24 along the central axis of the arm base 15, and further extends along the axis 24 from the arm base 15.

[0031] The third arm 17 is connected to the end of the arm end 16 so as to swing around an axis 25 that intersects (such as being perpendicular to) the axis 24, and extends in a direction away from the axis 25. The end part 18 is connected to the third arm 17 so as to rotate around an axis 26 along the central axis of the third arm 17. The end effector 3 is installed on the end part 18.

[0032] Thus, the multi-joint arm 10 has: a joint 31 that enables the rotating part 12 to rotate relative to the base part 11 about the axis 21; a joint 32 that enables the first arm 13 to swing relative to the rotating part 12 about the axis 22; a joint 33 that enables the arm base part 15 to swing relative to the first arm 13 about the axis 23; a joint 34 that enables the arm end part 16 to rotate relative to the arm base part 15 about the axis 24; a joint 35 that enables the third arm 17 to swing relative to the arm end part 16 about the axis 25; and a joint 36 that enables the end part 18 to rotate relative to the third arm 17 about the axis 26.

[0033] A plurality of motors 40 drive the respective joints of the multi-joint arm 10. For example, the multi-joint arm 10 has motors 41, 42, 43, 44, 45, 46 as the plurality of motors 40. The motors 41, 42, 43, 44, 45, 46 drive the six-axis joints 31, 32, 33, 34, 35, 36 respectively to change the position and posture of the end part 18. Thereby, the position and posture of the end effector 3 are changed together with the position and posture of the end part 18.

[0034] For example, the motor 41 drives the joint 31 in such a way as to rotate the rotating part 12 about the axis 21. The motor 42 drives the joint 32 in such a way as to swing the first arm 13 about the axis 22. The motor 43 drives the joint 33 in such a way as to swing the arm base part 15 about the axis 23. The motor 44 drives the joint 34 in such a way as to rotate the arm end part 16 about the axis 24. The motor 45 drives the joint 35 in such a way as to swing the third arm 17 about the axis 25. The motor 46 drives the joint 36 in such a way as to rotate the end part 18 about the axis 26.

[0035] Each of the motors 41, 42, 43, 44, 45, 46 is, for example, an electric motor. Each of the motors 41, 42, 43, 44, 45, 46 can directly drive the driven object or can drive it via a transmission element such as a speed reducer. Hereinafter, when it is not necessary to distinguish the joints 31, 32, 33, 34, 35, 36 from each other, the joints 31, 32, 33, 34, 35, 36 are referred to as a plurality of joints 30, and the joints 31, 32, 33, 34, 35, 36 are respectively referred to as the joint 30. Similarly, when it is not necessary to distinguish the motors 41, 42, 43, 44, 45, 46 from each other, the motors 41, 42, 43, 44, 45, 46 are referred to as a plurality of motors 40, and the motors 41, 42, 43, 44, 45, 46 are respectively referred to as the motor 40.

[0036] The structure of the multi-joint arm 10 exemplified above is merely an example and can be changed as long as the position and posture of the end effector 3 can be changed. For example, the multi-joint arm 10 can also be a redundant robot with one or more redundant axes added to the above-mentioned 6-axis joints. In addition, the multi-joint arm 10 can be a SCARA-type robot or a parallel link-type robot.

[0037] The control device 100 controls the multi-joint arm 10. For example, the control device 100 performs: generating a motion path for moving the end effector 3; and causing the robot 2 to move in such a way that the end effector 3 moves along the generated motion path.

[0038] For example, when the start position of the motion (the position / posture of the end effector 3 at the start of the motion) and the end position of the motion (the position / posture of the end effector 3 at the end of the motion) are determined, but the motion path from the start position of the motion to the end position of the motion is not uniquely determined, the control device 100 generates a motion path.

[0039] The motion path is the transition of the position / posture of the end effector 3 from the start position of the motion to the end position of the motion. For example, as Figure 2 shown, the control device 100 generates a motion path represented by a plurality of intermediate positions P11 to P17 in time series. Figure 2 The number of intermediate points in [] is an example and is not limited thereto.

[0040] The intermediate positions P11 to P17 respectively represent the position / posture of the end effector 3. The first intermediate position P11 corresponds to the start position of the motion, and the last intermediate position P17 corresponds to the end position of the motion. The motion path from the intermediate position P11 to the intermediate position P17 is determined by the intermediate positions P12 to P17 from the intermediate position P11 to the intermediate position P17.

[0041] The control device 100 can also generate a motion path from the start position of the motion to the end position of the motion based on the surrounding environment information. For example, the control device 100 generates a motion path in such a way that the robot 2 does not collide with surrounding objects based on the surrounding environment information.

[0042] The control device 100 can generate a motion path that directly represents the transition of the position / posture of the end effector 3 in the Cartesian space, or can generate a motion path that indirectly represents the transition of the position / posture of the end effector 3 in the joint angle space. The joint angle space is a space represented by the same number (for example, 6) of coordinate axes as the plurality of joints 30. The plurality of coordinate axes respectively correspond to the plurality of joints 30. The plurality of coordinate axes respectively represent the angles of the corresponding joints 30.

[0043] Based on the coordinates in the joint angle space, the position / pose of the end effector 3 can be uniquely calculated through forward kinematics operations. Therefore, based on the motion path generated in the joint angle space, the change in the position / pose of the end effector 3 is indirectly represented. For example, based on the motion path generated in the joint angle space, Figure 2 The passing positions P11 to P17 are respectively indirectly represented by the coordinates in the joint angle space.

[0044] According to the way of generating the motion path in the joint angle space, the angles of multiple joints 30 can be calculated without being restricted by the position / pose of the end effector 3. Therefore, compared with the way of directly generating the motion path of the end effector 3 in the Cartesian space, it is easier to disperse the motion to multiple joints 30. Therefore, it is possible to prevent any of the multiple joints 30 from performing unreasonable actions, and the motion path of the robot 2 can be generated quickly with high reliability. However, during the motion of the robot 2 along the motion path, the pose of the end effector 3 may change significantly. For example, in Figure 2 The pose of the end effector 3 at the passing position P14 is very different from the poses of the end effector 3 at the passing positions P11 and P17.

[0045] In a situation where it is not necessary to change the pose of the end effector 3, when the pose of the end effector 3 changes significantly, energy may be wasted. In addition, for example, when the robot 2 is used to carry a container filled with liquid, there may also be a situation where a significant change in the pose of the end effector 3 is not allowed.

[0046] Therefore, the control device 100 suppresses the change in the pose of the end effector 3 when moving along the motion path and generates a motion path in the joint angle space. For example, the control device 100 generates a motion path by generating a motion path that moves the end effector 3 in the joint angle space of the multi-joint arm 10 and adjusting the motion path in the joint angle space in a way that suppresses the change in the pose of the end effector 3 when moving along the motion path. Thereby, the advantages of the way of generating a motion path in the joint angle space can be retained, and the change in the pose of the end effector 3 can be suppressed. Therefore, it is effective for quickly generating the motion path of the robot 2 with high reliability.

[0047] In addition, the end effector 3 moving along the motion path generated in the joint angle space means that the end effector 3 moves along the change in the position / pose of the end effector 3 indirectly obtained according to the motion path.

[0048] For example, as Figure 1As shown in the figure, the control device 100 has a path generation unit 110, a path storage unit 121, a call unit 122, a buffer 123, and a robot control unit 124 as functionally configured elements (hereinafter referred to as "function blocks"). The path generation unit 110 suppresses the posture change of the end effector 3 when moving along the motion path, and generates a motion path in the joint angle space. An example of the method for generating the motion path will be described later. For example, the path generation unit 110 generates a plurality of motion commands representing the motion path in the joint angle space and stores them in the path storage unit 121.

[0049] Figure 3 is a schematic diagram illustrating a plurality of motion commands representing the generated motion path. Figure 3 One line in is one motion command. In each motion command, "J" after "Move" represents a motion command in the joint angle space, and the values representing the target angles of the respective plurality of joints 30 are included in parentheses. Each motion command determines that the plurality of joints 30 are linearly displaced from the starting point of the motion path (for example, the target angle of the immediately preceding motion command) to the ending point of the motion path (the target angle in parentheses).

[0050] Return Figure 1 The call unit 122 sequentially calls a plurality of motion commands from the path storage unit 121 and temporarily stores them in the buffer 123. Sequentially extracts a plurality of motion commands and temporarily stores them in the buffer 123.

[0051] The robot control unit 124 operates the robot 2 in such a manner that the end effector 3 moves along the generated motion path. For example, the robot control unit 124 repeatedly performs the following processes 1 to 5 at a predetermined control cycle.

[0052] Process 1) Generate (update) a speed pattern (temporal change of speed) including acceleration and deceleration based on the plurality of motion commands stored in the buffer 123.

[0053] Process 2) Calculate the target positions (target angles) of the motors 41, 42, 43, 44, 45, 46 for each control cycle.

[0054] Process 3) Obtain the current positions (current angles) of the motors 41, 42, 43, 44, 45, 46.

[0055] Process 4) Calculate the deviation between the target position and the current position.

[0056] Process 5) Calculate the drive power for reducing the deviation, and supply the calculated drive power to the motors 41, 42, 43, 44, 45, 46 respectively.

[0057] The path generation unit 110 may also generate at least a part of the motion path while the robot control unit 124 moves the robot 2. By generating the motion path at a time close to the actual motion time of the robot 2, changes in the surrounding environment can be reflected, and the motion path can be generated with higher reliability. The robot control unit 124 moving the robot 2 includes maintaining a fixed position / pose of the robot 2 by supplying drive power. For example, when the above speed pattern includes a period in which the speed is zero, the robot control unit 124 supplies drive power to the robot 2 to maintain a fixed position / pose. In addition, when there are no unexecuted motion commands in the buffer 123 due to delays in path generation or the like, the robot control unit 124 also supplies drive power to the robot 2 to maintain a fixed position / pose.

[0058] The path generation unit 110 may also generate at least a part of the motion path while the position / pose of the robot 2 changes due to the drive power supplied by the robot control unit 124. The time when the motion of the robot 2 is interrupted in order to wait for the generation of the motion path can be reduced, so that the robot 2 can move efficiently.

[0059] The control device 100 may also further include a command storage unit 125. The command storage unit 125 stores one or more pre-generated motion commands different from the motion commands generated by the path generation unit 110. For example, the command storage unit 125 stores a plurality of motion commands in time series. The plurality of motion commands stored in the command storage unit 125 include movement commands and automatic commands, which are sequentially called by the calling unit 122.

[0060] The movement command includes a target position (for example, the target position and target pose of the end effector 3, or the target angles of a plurality of joints 30), and path generation conditions up to the target position. The path generation conditions are conditions that uniquely determine the motion path from the start point to the end point of the motion path. As an example of the path generation conditions, the following conditions can be cited.

[0061] Condition 1) In the Cartesian space, move the end effector 3 along a linear motion path from the start point to the end point of the motion path.

[0062] Condition 2) In the Cartesian space, move the end effector 3 along an S-shaped motion path from the start point to the end point of the motion path.

[0063] Condition 3) In the joint angle space, move the end effector 3 along a linear motion path from the start point to the end point of the motion path.

[0064] In addition, Figure 3In the motion command, "J" represents Condition 3. Condition 3 means that the angles of the respective multiple joints 30 change linearly from the start point to the end point of the motion path. According to Condition 3, the motion path of the end effector 3 in the Cartesian space does not necessarily become linear.

[0065] The automatic command includes the target position but does not include the path generation condition. Additionally, as described above, the "path generation condition" here is the condition that uniquely determines the motion path from the start point to the end point of the motion path. The automatic command does not uniquely define the motion path, but may include conditions for restricting the generation range of the motion path. In order to move the robot 2 based on the automatic command that does not include the path generation condition for uniquely determining the motion path, it is necessary to generate the motion path to the target position included in the automatic command. Therefore, when the automatic command is called, the path generation unit 110 generates an air cut path for moving the end effector 3 to the target position of the automatic command as the motion path. The air cut path is a motion path for moving the end effector 3 without contacting surrounding objects and workpieces.

[0066] Since the motion path of the robot 2 can be generated quickly with high reliability, even if the motion path of the robot 2 is generated after the automatic command is called, it is possible to suppress an increase in the period during which the motion of the robot 2 is interrupted while waiting for the generation of the motion path. By generating the motion path of the robot 2 after the automatic command is called, the motion path is generated at a time close to the actual motion time of the robot 2, so that a motion path adaptable to changes in the surrounding environment can be generated with higher reliability.

[0067] For example, the call unit 122 sequentially calls a plurality of motion commands from the command storage unit 125. When the called motion command is a movement command, the movement command is temporarily stored in the buffer 123. When the called motion command is an automatic command, the call unit 122 notifies the path generation unit 110 of the target position of the motion command called immediately before this automatic command (hereinafter referred to as the "immediately preceding target position") and the target position of this automatic command. The path generation unit 110 generates an air cut path from the immediately preceding target position to the target position of the automatic command, and stores a plurality of motion commands representing the air cut path in the path storage unit 121.

[0068] After calling the automatic command, the call unit 122 changes the call destination of the motion command from the command storage unit 125 to the path storage unit 121. After the generation of the motion path by the path generation unit 110 is completed, the call unit 122 sequentially calls a plurality of motion commands from the path storage unit 121. After all the plurality of motion commands stored in the path storage unit 121 are called, the call destination of the motion command is returned from the path storage unit 121 to the command storage unit 125.

[0069] The automatic command can be associated with range information indicating the allowable range of the posture change of the end effector 3. The path generation unit 110 can generate an action path in such a manner that the posture change of the end effector 3 converges within the allowable range indicated by the range information, based on the range information corresponding to the automatic command called by the call unit 122. The narrower the allowable range, the greater the computational load for generating the action path. On the other hand, by associating the allowable range with the automatic command, the allowable range can be changed according to the automatic command. Thus, it is possible to achieve a balance between suppressing the posture change of the end effector 3 and reducing the computational load.

[0070] Figure 4 It is a schematic diagram of a plurality of action commands stored in the example command storage unit 125. Figure 4 A plurality of commands C11 to C19 arranged in time series are shown. Commands C11, C13, C14, and C16 are movement commands, and numerical values indicating the target position and target posture of the end effector 3 in the Cartesian space are included in parentheses. The "L" after "Move" indicates that the end effector 3 is moved in the Cartesian space along a linear action path from the start point of the action path (e.g., the target position and target posture of the immediately preceding action command) to the end point of the action path (the target position and target posture in parentheses) (the above condition 1).

[0071] Commands C12 and C17 are also movement commands, and numerical values indicating the target position and target posture of the end effector 3 in the Cartesian space are included in parentheses. In commands C12 and C17, the "S" after "Move" indicates that the end effector 3 is moved in the Cartesian space along an S-shaped action path from the start point of the action path (e.g., the target position and target posture of the immediately preceding action command) to the end point of the action path (the target position and target posture in parentheses) (the above condition 2).

[0072] Command C18 is also a movement command, and the target angles of the respective joints 30 in the joint angle space are included in parentheses. In command C18, similar to Figure 3 the action command, the "J" after "Move" indicates that the end effector 3 is moved in the joint angle space along a linear action path from the start point of the action path (e.g., the target angle of the immediately preceding action command) to the end point of the action path (the target angle in parentheses) (the above condition 3).

[0073] In commands C15 and C19, "Auto" attached after "Move" indicates that the command is an automatic command. In the parentheses of commands C15 and C19, numerical values indicating the target position and target posture of the end effector 3 in the Cartesian space, and range information indicating the allowable range of the posture change of the end effector 3 are included.

[0074] The calling unit 122 sequentially calls commands C11 to C14 as movement commands and temporarily stores them in the buffer 123. When the command C15 as an automatic command is called, the target position of the command C14 and the target position of the command C15 are notified to the path generation unit 110. The path generation unit 110 generates an idle cut path from the target position of the command C14 to the target position of the command C15, and stores a plurality of action commands representing the idle cut path in the path storage unit 121.

[0075] After the command C15 is called, the calling unit 122 changes the call destination of the action command from the command storage unit 125 to the path storage unit 121. After all the action commands stored in the path storage unit 121 are called and stored in the buffer 123, the call destination of the action command is returned from the path storage unit 121 to the command storage unit 125.

[0076] Figure 5 is a timing chart showing the relationship between the operation period of the robot 2 and the period in which the path generation unit 110 generates an idle cut path, and the horizontal axis represents the passage of time. As Figure 5 shown, the path generation unit 110 generates the start time t2 of the margin time T11 earlier than the completion prediction time t1 of the immediately preceding movement command-based operation (hereinafter referred to as "preceding operation"). The path generation unit 110 starts generating an idle cut path. The generated margin time T11 is equal to or longer than the generation time T13 of the idle cut path. Therefore, if the generation of the idle cut path starts before the generation of the margin time T11, the generation of the idle cut path can be completed before the completion prediction time t1 of the preceding operation.

[0077] In Figure 5 , the expected time T12 of the operation corresponding to two or more movement commands stored in the command storage unit 125 is longer than the generation margin time T11. Therefore, there is a margin in the time from the extraction of the automatic command until the completion of the preceding operation, and the start time t2 of the generation margin time T11 can be generated earlier than the completion prediction time t1, and the generation of the idle cut path can be started.

[0078] If the expected time T12 is shorter than the generation margin time T11, then at the moment of extracting the automatic command, the start time t2 of the generation margin time T11, which is earlier than the completion prediction time t1, has already passed. Therefore, the generation time of the idle cut path cannot be sufficiently ensured before the completion prediction time t1. To avoid such a situation, the calling unit 122 can also change the number of commands stored in the buffer 123 so that the expected time T12 is longer than the generation margin time T11.

[0079] Figure 6 is a block diagram illustrating the structure of the path generation unit 110. As Figure 6As shown in the figure, the path generation unit 110 includes the angle generation unit 111, the posture inspection unit 112, the interference inspection unit 113, and the command addition unit 114 as functional blocks.

[0080] Between the angles of the plurality of joints 30 corresponding to the start point of the air cutting path (for example, the target angles of the immediately preceding motion commands) and the angles of the plurality of joints 30 corresponding to the end point of the air cutting path (for example, the target angles corresponding to the target position / target posture of the automatic command), the passing angles (hereinafter referred to as "joint angles") of the plurality of joints 30 are generated. For example, the passing angle generation unit 111 generates passing angles through random random number generation.

[0081] The posture inspection unit 112 checks whether the posture of the end effector 3 based on the passing angle (posture in the Cartesian space) converges within a predetermined allowable range. For example, the posture inspection unit 112 calculates the posture of the end effector 3 based on the passing angle through forward kinematics calculation, and checks whether the calculated posture converges within the allowable range.

[0082] The interference inspection unit 113 checks, based on the models of the robot 2 and the surrounding objects, whether the robot 2 interferes with the surrounding objects at the passing angles where the posture of the end effector 3 converges within the allowable range. For example, the control device 100 also has a model storage unit 131 that stores the models of the robot 2 and the surrounding objects. The model is numerical information that determines the shape, structure, size, etc. of the robot 2 and the surrounding objects.

[0083] The interference inspection unit 113 simulates the posture of the robot 2 corresponding to the passing angle in the virtual space based on the passing angle and the model of the robot 2 stored in the model storage unit 131, and checks whether the robot 2 interferes with the surrounding objects at the passing angle. Interference means that the robot 2 overlaps with the surrounding objects in the virtual space.

[0084] The surrounding objects to be inspected for interference sometimes include, for example, other robots, etc., and one or more machines whose postures in the Cartesian space change. Therefore, the control device 100 may also have a state storage unit 132 and a state update unit 133. The state update unit 133 obtains the state information of one or more machines from the upper controller, external sensors, etc., and stores it in the state storage unit 132. Examples of the state information include the joint angles of other robots. Examples of the external sensors include visual sensors including cameras and image processing devices. The interference inspection unit 113 may also further simulate the actions of one or more machines based on the models of one or more machines stored in the model storage unit 131 and the state information stored in the state storage unit 132, and check whether the robot 2 interferes with one or more machines.

[0085] The control device 100 can also generate an action path by selecting a via angle at which the posture of the end effector 3 converges within an allowable range. The control device 100 can also generate an action path by selecting a via angle at which the posture of the end effector 3 converges within an allowable range and the robot 2 does not interfere with surrounding objects. For example, the command addition unit 114 adds a movement command to the path storage unit 121. In this movement command, the via angle at which the posture of the end effector 3 converges within the allowable range and the robot 2 does not interfere with surrounding objects is set as the target angle, and the path generation condition is set as the above condition 3. In addition, the command addition unit 114 adds a movement command corresponding to the end point of the retraction path to the path storage unit 121.

[0086] Based on the model of the robot 2 stored in the model storage unit 131, the interference check unit 113 simulates the movement of the robot 2 based on the multiple movement commands added to the path storage unit 121, and checks whether the robot 2 interferes with surrounding objects in the entire area from the start point to the end point of the retraction path. For example, based on the model of the robot 2 stored in the model storage unit 131, the interference check unit 113 causes the robot 2 to move in the virtual space through the multiple action commands of the path storage unit 121, and checks whether the robot 2 interferes with surrounding objects. When it is determined that the robot 2 interferes with surrounding objects, the via angle generation unit 111 is requested to add a via angle to the interfering section. Then, the generation of the via angle by the via angle generation unit 111, the posture check by the posture check unit 112, the interference check by the interference check unit 113, the addition of the movement command by the command addition unit 114, and the action simulation by the interference check unit 113 are repeated until it is determined that the robot 2 does not interfere with surrounding objects in the entire area from the start point to the end point. Thus, a retraction path in which the robot 2 does not interfere with surrounding objects in the entire area from the start point to the end point is generated.

[0087] Before the control device 100 checks whether the robot 2 interferes with surrounding objects, it checks whether the posture of the end effector 3 based on the via angle converges within a predetermined allowable range. If it is determined that the posture of the end effector 3 based on the via angle does not converge within the allowable range, the check of whether the robot 2 interferes with surrounding objects at the via angle may not be performed, and the via angle may be changed. Changing the via angle may be regenerating the via angle. Changing the via angle may also be partially correcting the via angle. When it is determined that the posture of the end effector 3 based on the via angle does not converge within the allowable range, the interference check unit 113 does not check whether the robot 2 interferes with surrounding objects at the via angle, but requests the via angle generation unit 111 to regenerate the via angle. By narrowing the object of the interference check to the via angles at which the posture of the end effector 3 is within the allowable range, the computational load is suppressed, and high-speed generation of the motion path can be achieved.

[0088] The path generation unit 110 may also include an angle correction unit 115. The angle correction unit 115 may also correct the via angle in such a way that the posture of the end effector 3 converges within the allowable range when the posture of the end effector 3 based on the via angle does not converge within the allowable range. For example, the angle correction unit 115 may correct the via angle of the joint 30 to be corrected through a simple inverse kinematics operation with any of the plurality of joints 30 (such as joints 34, 35, 36) as the correction object. It may also be that the interference check unit 113 performs an interference check with the via angle corrected by the angle correction unit 115. By correcting and using the via angles at which the posture of the end effector 3 is not within the allowable range without discarding them, the computational load can be further suppressed.

[0089] The path generation unit 110 may also perform post-processing such as smoothing on the generated empty cut path after generating the empty cut path. Above, an example is shown in which the posture check unit 112 performs a posture check for the via angle before the command addition unit 114 adds a movement command based on the via angle to the path storage unit 121 (before generating the empty cut path), but this is not limited thereto. For example, the posture check unit 112 may perform a posture check for the via angle of each movement command after generating the empty cut path. When the path generation unit 110 performs the above post-processing, the posture check unit 112 may perform a posture check for the via angle of each movement command after the post-processing.

[0090] The path generation unit 110 can suppress the posture change of the end effector 3 so as to converge within an allowable range that includes at least any one of the posture of the end effector 3 at the start point of the air cutting path (hereinafter referred to as the "start posture") and the posture of the end effector 3 at the end point of the air cutting path (hereinafter referred to as the "end posture"). By suppressing the posture change with respect to at least any one of the start posture and the end posture, unnecessary posture changes of the fingertips can be further suppressed. When the start posture and the end posture are different, the path generation unit 110 can also suppress the posture change so as to converge within an allowable range that includes both the start posture and the end posture. By making the allowable range have a reasonable amplitude, a balance between suppressing the posture change of the fingertips and reducing the computational load can be achieved.

[0091] For example, the path generation unit 110 may further include a reference posture setting unit 116. The reference posture setting unit 116 sets at least any one of the start posture and the end posture as a reference posture. The posture inspection unit 112 calculates the allowable range of the posture of the end effector 3 based on the reference posture and a predetermined allowable change range, and checks whether the posture of the end effector 3 based on the angle converges within the calculated allowable range.

[0092] For example, when the start posture is set as the reference posture, the posture inspection unit 112 calculates the allowable range based on the start posture and the allowable change range. When the end posture is set as the reference posture, the posture inspection unit 112 calculates the allowable range based on the end posture and the allowable change range. When both the start posture and the end posture are set as the reference postures, the posture inspection unit 112 calculates the synthesized range of the first allowable range based on the start posture and the allowable change range, the second allowable range based on the end posture and the allowable change range, and the range from the start posture to the end posture as the allowable range.

[0093] Alternatively, the path generation unit 110 generates an air cutting path in such a way as to suppress the posture change of the posture trajectory that gradually changes from the posture of the end effector 3 corresponding to the start point of the air cutting path to the posture of the end effector 3 corresponding to the end point of the air cutting path. Posture changes can be suppressed, and the posture of the fingertips can be slowly transferred from the start point to the end point.

[0094] For example, it can also be that every time the via-angle generation unit 111 generates a via-angle, the reference posture setting unit 116 calculates, as part of the posture trajectory, a reference posture corresponding to the generated via-angle. As an example, the reference posture setting unit 116 calculates an intermediate posture between the front and rear reference postures as the reference posture corresponding to the generated via-angle. The posture inspection unit 112 calculates the allowable range of the posture of the end effector 3 based on the reference posture and a predetermined allowable change range, and checks whether the posture of the end effector 3 based on the via-angle converges within the calculated allowable range.

[0095] The control device 100 may also include a range setting unit 134. The range setting unit 134 sets the allowable range of posture change (the above-mentioned allowable change range) based on a user input (for example, an input to the user interface 196 described later). The path generation unit 110 suppresses the posture change so as to converge within the allowable range set by the user. The allowable change range can be customized, thereby improving the usability.

[0096] The range setting unit 134 may also obtain the allowable change range represented by the biaxial rotation method based on a user input. The path generation unit 110 can calculate the posture change by the biaxial rotation method and generate a retraction path so that the calculated posture change converges within the allowable range. By being able to intuitively specify the allowable range, the usability can be further improved.

[0097] The posture inspection unit 112 calculates the rotation angles about two axes representing the posture change of the end effector 3 relative to the reference posture. For example, as Figure 7 shown, as parameters representing the posture change of the end effector 3 relative to the reference posture, the posture inspection unit 112 calculates the angle ψ of the k-axis passing through the origin in the XY plane relative to the Y-axis, the rotation angle Ra about the Z-axis of the k-axis, and the rotation angle Ro about the rotated Z-axis. The range setting unit 134 generates an input interface (refer to Figure 8 ) that can respectively input the allowable range of the angle ψ, the allowable range of the rotation angle Ra, and the allowable range of the rotation angle Ro, and sets the allowable ranges of the angle ψ, the rotation angle Ra, and the rotation angle Ro respectively based on the input to the input interface. The posture inspection unit 112 checks whether the calculated angle ψ, rotation angle Ra, and rotation angle Ro are respectively within the preset allowable ranges. In addition, Figure 8The input interface is an example and may not necessarily be values that directly specify the allowable range of the angle ψ, the allowable range of the rotation angle Ra, and the allowable range of the rotation angle Ro. For example, the input interface may also be configured to specify the allowable range of the angle ψ, the allowable range of the rotation angle Ra, and the allowable range of the rotation angle Ro at levels such as "Level 1", "Level 2", and "Level 3". In this case, the range setting unit sets the allowable ranges of the angle ψ, the rotation angle Ra, and the rotation angle Ro respectively based on the specified level and the allowable ranges assigned to each level.

[0098] Figure 9 is a block diagram illustrating the hardware configuration of the control device 100. As Figure 9 shown, the control device 100 has a circuit 190. The circuit 190 has a processor 191, a memory 192, a storage 193, a communication port 194, a servo circuit 195, and a user interface 196.

[0099] The storage 193 stores programs for causing the control device 100 to perform the following actions: suppressing the posture change of the end effector 3 when moving along the action path and generating an action path in the joint angle space; and causing the robot 2 to act in such a manner that the end effector 3 moves along the generated action path. For example, the storage 193 stores programs for causing the control device 100 to constitute the above-mentioned respective functional blocks.

[0100] The storage 193 includes one or more storage devices. The storage device is, for example, a non-volatile storage medium such as a hard disk drive or a flash memory. The storage device may also include a removable medium such as an optical disc or a magnetic disk.

[0101] The memory 192 temporarily stores programs loaded from the storage 193. The memory 192 includes one or more memory devices. The memory device is, for example, a volatile storage medium such as a random access memory.

[0102] The processor 191 causes the control device 100 to constitute the above-mentioned respective functional blocks by executing the programs loaded into the memory 192. The data generated by the processor 191 is stored in the memory 192 as needed. The processor 191 includes one or more processing devices. As an example of the one or more processing devices, a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit) can be cited.

[0103] The communication port 194 communicates with the upper controller 200, the external sensor 300, etc. through wired or wireless network communication according to a request from the processor 191. The servo circuit 195 supplies current to the motors 41, 42, 43, 44, 45, 46 based on a request from the processor 191.

[0104] The user interface 196 inputs and outputs information with a human user according to a request from the processor 191. For example, the user interface 196 includes one or more display devices and one or more input devices. Examples of the one or more display devices include an organic EL (ELECTRO LUMINESCENCE) monitor, a liquid crystal monitor, etc. Examples of the one or more input devices include a keyboard, a mouse, a keypad, or a touchpad, etc. Any of the one or more input devices can also be integrated with any of the one or more display devices as a touch panel.

[0105] 〔Control Process〕

[0106] As an example of the control method, the control process executed by the control device 100 is illustrated. This process includes: generating a motion path of the robot 2; and moving the robot 2 in such a way that the end effector 3 moves along the generated motion path. Generating the motion path includes: suppressing the posture change of the end effector 3 moving along the motion path and generating a motion path in the joint angle space.

[0107] As an example, this process includes a state update process, a command call process, a path generation process, and a robot control process. Hereinafter, each process is illustrated.

[0108] (State Update Process)

[0109] This process is a process of updating the states of one or more machines that are peripheral objects of the robot 2. As Figure 10 shown, the control device 100 executes steps S01, S02. In step S01, the state update unit 133 acquires the state information of one or more machines from the upper controller 200, the external sensor 300, etc., and updates the state information stored in the state storage unit 132 according to the acquired state information. In step S02, the state update unit 133 waits for the elapse of a pre-determined update period. Then, the control device 100 returns the process to step S01. The control device 100 repeatedly executes the above process from the start to the completion of the control process.

[0110] (Command Call Process)

[0111] This process is a process of sequentially calling action commands from the command storage unit 125 or the path storage unit 121. The call destination of the action command at the start of execution is the command storage unit 125. As Figure 11 shown, the control device 100 first executes steps S11 and S12. In step S11, the call unit 122 calls one action command from the storage unit that is the call destination. In step S12, the call unit 122 confirms whether the called action command is an automatic command.

[0112] When it is determined in step S12 that the action command is an automatic command, the control device 100 executes steps S13, S14, S15, and S16. In step S13, the call unit 122 notifies the path generation unit 110 of the target position of the action command called immediately before the automatic command (the above-mentioned immediately preceding target position) and the target position of the automatic command. In step S14, the path generation unit 110 waits for the start time of path generation (for example, the above-mentioned start time t2). In step S15, the path generation unit 110 generates an idle cut path. The process of generating the idle cut path will be described later. In step S16, the call unit 122 changes the call destination of the action command from the command storage unit 125 to the path storage unit 121.

[0113] When it is determined in step S12 that the action command is not an automatic command but a movement command, the control device 100 executes steps S21 and S22. In step S21, the call unit 122 causes the buffer 123 to store the called action command. In step S22, the call unit 122 confirms whether the call destination of the action command is the path storage unit 121.

[0114] When it is determined in step S22 that the call destination of the action command is the path storage unit 121, the control device 100 executes step S23. In step S23, the call unit 122 confirms whether all the action commands stored in the path storage unit 121 have been called. When it is determined in step S23 that there are still uncalled action commands remaining in the path storage unit 121, the control device 100 returns the process to step S11 and continues to call action commands from the path storage unit 121.

[0115] When it is determined in step S23 that all the action commands stored in the path storage unit 121 have been called, the control device 100 executes step S24. In step S24, the call unit 122 changes the call destination of the action command from the path storage unit 121 to the command storage unit 125.

[0116] Next, the control device 100 executes step S25. When it is determined in step S22 that the call destination of the action command is the command storage unit 125, the control device 100 does not execute steps S23 and S24 but executes step S25. In step S25, the call unit 122 confirms whether the call of all the action commands stored in the command storage unit 125 has been completed. When it is determined in step S25 that there are still un-called action commands remaining in the command storage unit 125, the control device 100 returns the process to step S11 and continues to call action commands from the command storage unit 125. When it is determined in step S25 that the call of all the action commands stored in the command storage unit 125 has been completed, the control device 100 completes the call of the action commands.

[0117] Figure 12 It is a flowchart exemplifying the generation process of the dry cut path in step S15. As Figure 12 shown, the control device 100 first executes steps S31, S32, S33, S34, and S35. In step S31, the reference posture setting unit 116 sets the above-mentioned reference posture. In step S32, the command adding unit 114 adds a movement command corresponding to the end point of the dry cut path to the path storage unit 121. In step S33, the passing angle is generated via the angle generation unit 111. In step S34, the posture inspection unit 112 calculates the posture change of the end effector 3 with respect to the reference posture based on the passing angle. In step S35, the interference inspection unit 113 confirms whether the posture change of the end effector 3 is within a predetermined allowable change range. When it is determined in step S35 that the posture change is not within the allowable change range, the control device 100 returns the process to step S33 to regenerate the passing angle.

[0118] When it is determined in step S35 that the posture change is within the allowable change range, the control device 100 executes step S37. In step S37, based on the passing angle and the model of the robot 2 stored in the model storage unit 131, the interference inspection unit 113 simulates the posture of the robot 2 corresponding to the passing angle in the virtual space and checks whether the robot 2 interferes with surrounding objects at the passing angle. When it is determined in step S37 that the robot 2 interferes with surrounding objects, the control device 100 returns the process to step S33 to regenerate the passing angle.

[0119] When it is determined in step S37 that the robot 2 does not interfere with surrounding objects, the control device 100 executes steps S38 and S39. In step S38, the command addition unit 114 adds a movement command using the passing angle as the target angle to the path storage unit 121. In step S39, based on the model of the robot 2 stored in the model storage unit 131, the movement of the robot 2 based on the multiple movement commands added to the path storage unit 121 is simulated, and it is checked whether the robot 2 interferes with surrounding objects in the entire area from the start point to the end point of the plunge cutting path. When it is determined in step S39 that the robot 2 interferes with surrounding objects, the control device 100 returns the process to step S33 to regenerate the passing angle. When it is determined in step S39 that the robot 2 does not interfere with surrounding objects, the control device 100 completes the generation of the plunge cutting path.

[0120] Instead of step S31, the control device 100 may also execute, each time a passing angle is generated in step S33, the calculation of the reference posture corresponding to the generated passing angle as a part of the above-mentioned posture trajectory.

[0121] As Figure 13 shown, when it is determined in step S35 that the posture change is not within the allowable change range, the control device 100 may also execute step S36. In step S36, the angle correction unit 115 corrects the passing angle so that the posture of the end effector 3 converges within the allowable range. When step S36 is executed, in step S37, the interference check unit 113 performs an interference check based on the passing angle corrected by the angle correction unit 115.

[0122] (Robot control process)

[0123] This process is a process of moving the robot 2 based on the movement commands added to the buffer 123. As Figure 14As shown, the control device 100 executes steps S41, S42, S43, S44, S45, and S46. In step S41, the robot control unit 124 generates (updates) a speed pattern including acceleration and deceleration based on a plurality of motion commands stored in the buffer 123. In step S42, the robot control unit 124 calculates the target positions (target angles) of the motors 41, 42, 43, 44, 45, and 46 for each control cycle. In step S43, the robot control unit 124 obtains the current positions (current angles) of the motors 41, 42, 43, 44, 45, and 46. In step S44, the deviation between the target position and the current position is calculated. In step S45, the robot control unit 124 calculates the driving power for reducing the deviation and supplies the calculated driving power to the motors 41, 42, 43, 44, 45, and 46 respectively. In step S46, the robot control unit 124 waits for the passage of the control cycle. Then, the control device 100 returns the process to step S41. The control device 100 repeatedly executes the above process.

[0124] 〔Summary〕

[0125] The embodiments exemplified above include the following structures.

[0126] (1) A robot system 1 having: a robot 2 having a multi-joint arm 10 that changes the position of the fingertip; a path generation unit 110 that generates a motion path for moving the fingertip; and a robot control unit 124 that moves the robot 2 in such a way that the fingertip moves along the generated motion path. The path generation unit 110 suppresses the change in the posture of the fingertip when moving along the motion path and generates a motion path in the joint angle space of the multi-joint arm 10.

[0127] According to the method of generating a motion path in the joint angle space, compared with the method of generating a motion path according to the Cartesian space, it is easier to disperse the motion to multiple joints. Therefore, it is possible to prevent any joint among the multiple joints from performing an unreasonable action, and it is possible to quickly generate the motion path of the robot 2 with high reliability. However, in the motion of the robot 2 along the motion path, the posture of the fingertip may change significantly. When the posture of the fingertip changes significantly in a situation where the posture of the fingertip does not need to be changed, energy may be wasted. In addition, for example, when the robot 2 transports a container filled with liquid, there may also be a situation where a significant change in the posture of the fingertip is not allowed. In contrast, in this robot system 1, the path generation unit 110 suppresses the change in the posture of the fingertip and generates a motion path in the joint angle space. Therefore, it is possible to retain the advantages of the method of generating a motion path in the joint angle space and suppress the change in the posture of the fingertip. Therefore, it is effective for quickly generating the motion path of the robot 2 with high reliability.

[0128] (2) In the robot system 1 described in (1), the path generation unit 110 generates at least a part of the motion path during the period when the robot control unit 124 causes the robot 2 to operate.

[0129] By generating the motion path at a time close to the actual operation time of the robot 2, the motion path can be generated with higher reliability. In addition, the time when the operation of the robot 2 is interrupted to wait for the generation of the motion path can be reduced, so that the robot 2 can operate efficiently.

[0130] (3) In the robot system 1 described in (2), the robot system 1 further includes a command storage unit 125 that stores one or more operation commands that include an automatic command including a target position and are sequentially called. When the automatic command is called, the path generation unit 110 generates a non-cutting path that moves the fingertip to the target position of the automatic command as the motion path.

[0131] Since the motion path of the robot 2 can be quickly generated with high reliability, even if the motion path of the robot 2 is generated after the automatic command is called, the period during which the operation of the robot 2 is interrupted to wait for the generation of the motion path can be suppressed from increasing. By generating the motion path of the robot 2 after the automatic command is called and generating the motion path at a time close to the actual operation time of the robot 2, a motion path adaptable to changes in the surrounding environment can be generated with higher reliability.

[0132] (4) In the robot system 1 described in (3), the automatic command is associated with range information indicating the allowable range of the posture change of the fingertip. The path generation unit 110 generates a motion path in such a manner that the posture change of the fingertip converges within the allowable range indicated by the range information, based on the range information corresponding to the called automatic command.

[0133] The narrower the allowable range, the greater the computational load for generating the motion path. On the other hand, by associating the allowable range with the automatic command, the allowable range can be changed according to the automatic command. Thereby, a balance between suppressing the posture change of the fingertip and reducing the computational load can be achieved.

[0134] (5) In the robot system 1 described in any one of (1) to (4), the path generation unit 110 includes: a passing angle generation unit 111 that generates a passing angle through which the joint angle passes between the joint angle of the multi-joint arm 10 corresponding to the start point of the motion path and the joint angle corresponding to the end point of the motion path; and a posture inspection unit 112 that inspects whether the posture of the fingertip based on the passing angle converges within a predetermined allowable range, and generates a motion path based on the passing angle at which the posture of the fingertip converges within the allowable range.

[0135] By checking whether the posture is within the allowable range after calculating the passing angle, it is also possible to easily suppress the change in the posture of the fingertip in the joint angle space.

[0136] (6) In the robot system 1 described in (5), the path generation unit 110 further includes an interference check unit 113. The interference check unit 113 checks, based on the models of the robot 2 and the surrounding objects, whether the robot 2 interferes with the surrounding objects when the posture of the fingertip converges to the passing angle within the allowable range, and generates an action path based on the passing angle at which the robot 2 does not interfere with the surrounding objects.

[0137] By narrowing down the object of interference check to the passing angle at which the posture of the fingertip is within the allowable range, the calculation load is suppressed, and high-speed generation of the action path can be achieved.

[0138] (7) In the robot system 1 described in (6), the path generation unit 110 further includes an angle correction unit 115. When the posture of the fingertip based on the passing angle does not converge within the allowable range, the angle correction unit 115 corrects the passing angle so that the posture of the fingertip converges within the allowable range.

[0139] By correcting and using the passing angle without discarding the passing angle at which the posture of the fingertip is not within the allowable range, the calculation load can be further suppressed.

[0140] (8) In the robot system 1 described in any one of (1) to (7), the path generation unit 110 suppresses the change in the posture trajectory with respect to the posture of the fingertip corresponding to the start point of the action path to the posture of the fingertip corresponding to the end point of the action path.

[0141] It is possible to suppress the change in posture and slowly transfer from the posture of the fingertip at the start point to the posture of the fingertip at the end point.

[0142] (9) In the robot system 1 described in any one of (1) to (7), the path generation unit 110 suppresses the change in posture to converge within the allowable range including at least any one of the posture of the fingertip at the start point of the action path and the posture of the fingertip at the end point of the action path.

[0143] By suppressing the change in posture with respect to at least one of the posture of the fingertip at the start point and the posture of the fingertip at the end point, unnecessary change in the posture of the fingertip can be further suppressed.

[0144] (10) In the robot system 1 described in (9), the path generation unit 110 suppresses the change in posture to converge within the allowable range including both the posture of the fingertip at the start point and the posture of the fingertip at the end point.

[0145] By making the allowable range have a reasonable magnitude, it is possible to achieve a balance between suppressing the posture change of the fingertip and reducing the calculation load.

[0146] (11) In the robot system 1 according to any one of (1) to (10), there is also a range setting unit 134. The range setting unit 134 sets the allowable range of posture change based on the user's input, and the path generation unit 110 suppresses the posture change so that it converges within the allowable range.

[0147] The allowable range of posture change can be customized, which can improve the usability.

[0148] (12) In the robot system 1 described in (11), the range setting unit 134 obtains the allowable range represented by the biaxial rotation method based on the user's input, and the path generation unit 110 calculates the posture change by the biaxial rotation method and generates an action path in such a way that the calculated posture change converges within the allowable range.

[0149] By being able to intuitively specify the allowable range, the usability can be further improved.

[0150] (13) A method for controlling a robot (2), the robot (2) having a multi-joint arm (10) that changes the position of the fingertip. The control method includes: generating an action path of the robot 2; and moving the robot 2 in such a way that the fingertip moves along the generated action path. Generating the action path includes: suppressing the posture change of the fingertip moving along the action path and generating an action path in the joint angle space of the multi-joint arm 10.

Claims

1. A robot system, wherein, The robot system has: a robot having a multi-joint arm that changes the position of the fingertip; a path generation unit that generates the motion path in the joint angle space of the multi-joint arm in such a manner as to suppress the change in the posture of the fingertip when moving along the motion path for the motion path for moving the fingertip; and a robot control unit that causes the robot to operate in such a manner that the fingertip moves along the generated motion path.

2. The robot system according to claim 1, wherein the path generation unit generates at least a part of the motion path during the period in which the robot control unit causes the robot to operate.

3. The robot system according to claim 2, wherein the robot system further has a command storage unit that stores one or more motion commands including an automatic command including a target position and called in sequence, and the path generation unit generates a non-cutting path for moving the fingertip to the target position of the automatic command as the motion path when the automatic command is called.

4. The robot system according to claim 3, wherein the automatic command is associated with range information indicating an allowable range of change in the posture of the fingertip, and the path generation unit generates the motion path in such a manner that the change in the posture of the fingertip converges within the allowable range indicated by the range information based on the range information corresponding to the called automatic command.

5. The robot system according to any one of claims 1 to 4, wherein the path generation unit has: a via angle generation unit that generates a via angle of the motion path in the joint angle space; and a posture inspection unit that inspects whether the posture of the fingertip based on the via angle converges within a predetermined allowable range, and generates the motion path by selecting the via angle at which the posture of the fingertip converges within the allowable range.

6. The robot system according to claim 5, wherein the path generation unit further has an interference inspection unit that inspects whether the robot interferes with the surrounding object at the via angle at which the posture of the fingertip converges within the allowable range based on models of the robot and the surrounding object, and generates the motion path by selecting the via angle at which the posture of the fingertip converges within the allowable range and the robot does not interfere with the surrounding object.

7. The robot system according to claim 6, wherein the posture inspection unit inspects whether the posture of the fingertip based on the via angle converges within a predetermined allowable range before the interference inspection unit inspects whether the robot interferes with the surrounding object, and the via angle generation unit does not cause the interference inspection unit to perform an inspection of whether the robot interferes with the surrounding object at the via angle and changes the via angle when the posture inspection unit determines that the posture of the fingertip based on the via angle does not converge within the allowable range.

8. The robot system according to claim 6, wherein The path generation unit further includes an angle correction unit that corrects the passing angle in such a manner that the posture of the fingertip based on the passing angle converges within the allowable range when the posture of the fingertip does not converge within the allowable range.

9. The robot system according to any one of claims 1 to 4, wherein the path generation unit generates a motion path from a specified starting posture of the fingertip to a specified ending posture of the fingertip, and the path generation unit generates the motion path in such a manner as to suppress the posture change with respect to a specified posture trajectory from the starting posture to the ending posture.

10. The robot system according to any one of claims 1 to 4, wherein the path generation unit generates a motion path from a specified starting posture of the fingertip to a specified ending posture of the fingertip, and the path generation unit generates the motion path in such a manner that the posture of the fingertip converges within an allowable range including the starting posture or the ending posture.

11. The robot system according to any one of claims 1 to 4, wherein the path generation unit generates a motion path from a specified starting posture of the fingertip to a specified ending posture of the fingertip, and the path generation unit generates the motion path in such a manner that the posture of the fingertip converges within an allowable range including both the starting posture and the ending posture.

12. The robot system according to any one of claims 1 to 4, wherein the robot system further includes a range setting unit that sets an allowable range of the posture change based on a user input, and the path generation unit generates the motion path in such a manner that the posture change converges within the allowable range.

13. The robot system according to claim 12, wherein the range setting unit obtains the allowable range represented by the biaxial rotation method based on the user input, and the path generation unit calculates the posture change by the biaxial rotation method and generates the motion path in such a manner that the calculated posture change converges within the allowable range.

14. A control method, which is a method for controlling a robot having a multi-joint arm that changes the position of a fingertip, the control method including: generating, in a joint angle space of the multi-joint arm, a motion path for moving the fingertip in such a manner as to suppress a change in the posture of the fingertip when moving along the motion path; and causing the robot to move in such a manner that the fingertip moves along the generated motion path.

Citation Information

Patent Citations

  • Method and device for planning operation route of robot

    JP2000020117A

Cited By

  • Robot end effector trajectory planning method and device

    CN121403419A