Robot control and control method
The robot system generates motion paths in joint angle space to suppress posture changes of the end effector, addressing the challenge of rapid and reliable path generation in dynamic environments.
Patent Information
- Application Number
- JP2024010395
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-01-26
- Publication Date
- 2025-08-07
AI Technical Summary
Existing robot motion path generation methods struggle to quickly and reliably generate paths that suppress changes in the posture of the end effector, especially in dynamic environments where posture changes are not necessary or undesirable.
A robot system with a multi-joint arm and a path generation unit that generates motion paths in joint angle space, suppressing changes in the posture of the end effector while moving, using a control device to operate the robot along the generated path, incorporating path storage, calling, and robot control units to ensure high reliability and adaptability.
The system enables rapid and reliable generation of motion paths that minimize unnecessary posture changes of the end effector, enhancing operational efficiency and adaptability to environmental changes.
Smart Images

Figure 2025115760000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a robot system and a control method. [Background technology]
[0002] Patent Document 1 discloses a method for planning a robot's motion path that will prevent interference between the robot and obstacles in the work environment when the robot's start and goal positions are given, using a computerized geometric model means that describes the geometric shapes of the robot and the work environment and their arrangement, and a computerized interference inspection means that inspects for interference between the models. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2000-20117 Summary of the Invention [Problem to be solved by the invention]
[0004] The present disclosure provides an effective system for quickly and reliably generating motion paths for a robot. [Means for solving the problem]
[0005] A robot system according to one aspect of the present disclosure includes a robot having a multi-joint arm that changes the position of the hand, a path generation unit that generates a motion path for moving the hand, and a robot control unit that operates the robot so that the hand moves along the generated motion path, wherein the path generation unit generates a motion path in the joint angle space of the multi-joint arm while suppressing changes in the posture of the hand when moving along the motion path.
[0006] 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 hand, the method including generating a motion path for the robot and operating the robot so that the hand moves along the generated motion path, wherein generating the motion path includes generating the motion path in the joint angle space of the multi-joint arm while suppressing changes in the posture of the hand moving along the motion path. [Effects of the Invention]
[0007] According to the present disclosure, it is possible to provide a system that is effective in quickly generating a robot's motion path with high reliability. [Brief explanation of the drawings]
[0008] [Figure 1] FIG. 1 is a schematic diagram illustrating a configuration of a robot system. [Figure 2] FIG. 1 is a schematic diagram illustrating an example of an operation path. [Figure 3] FIG. 10 is a schematic diagram illustrating a plurality of movement commands representing movement paths in joint angle space. [Figure 4] FIG. 10 is a schematic diagram illustrating a plurality of operation commands. [Figure 5] 10 is a timing chart illustrating the relationship between the movement of a robot and the timing of generating a path. [Figure 6] FIG. 2 is a block diagram illustrating a configuration of a path generation unit. [Figure 7] FIG. 10 is a schematic diagram showing an example of calculating a posture change using a two-axis rotation method. [Figure 8] FIG. 10 is a schematic diagram illustrating an input interface for a tolerance range. [Figure 9] FIG. 2 is a block diagram illustrating a hardware configuration of a controller. [Figure 10] 10 is a flowchart illustrating a status update procedure. [Figure 11] 10 is a flowchart illustrating a command calling procedure. [Figure 12] 10 is a flowchart illustrating a path generation procedure. [Figure 13] 10 is a flowchart illustrating a modified example of a path generation procedure. [Figure 14] 10 is a flowchart illustrating a robot control procedure. DETAILED DESCRIPTION OF THE INVENTION
[0009] Hereinafter, the embodiments will be described in detail with reference to the drawings. In the description, the same elements or elements having the same functions are denoted by the same reference numerals, and redundant description will be omitted.
[0010] [Robot System] The robot system 1 shown in FIG. 1 is a system that causes a robot 2 to perform work on a workpiece. Examples of work on a workpiece include workpiece transportation, workpiece processing, and workpiece assembly. Examples of workpiece processing include workpiece grinding and workpiece polishing. Examples of workpiece assembly include fastening multiple parts (workpiece components) together using bolts or the like, and joining multiple parts together by welding.
[0011] The robot system 1 includes a robot 2 and a control device 100. The robot 2 is, for example, an industrial vertical articulated robot, and includes an end effector 3 and an articulated arm 10.
[0012] The end effector 3 corresponds to the "hand" of the robot 2 and acts on a workpiece. Examples of the end effector 3 include, but are not limited to, a suction nozzle that holds a workpiece, a hand that grips a workpiece, a grinding tool that grinds the workpiece, a polishing tool that polishes the workpiece, a screw tightening tool (e.g., a screwdriver or wrench) that tightens a screw (e.g., tightening a bolt), a welding gun that performs spot welding, a welding torch that performs arc welding, and a paint gun that paints.
[0013] The articulated arm 10 changes the position of the end effector 3 by operating the articulated arms. 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 Cartesian space (e.g., the coordinates of the tip of the end effector 3), and rotating the end effector 3 around each coordinate axis.
[0014] For example, the articulated arm 10 has a base 11, a rotating section 12, a first arm 13, a second arm 14, a third arm 17, a tip 18, and a plurality of motors 40. The base 11 is installed on the floor of a work area, for example. The base 11 may also be installed on a moving body such as an automated guided vehicle that moves within the work area.
[0015] The swivel unit 12 is provided on the base 11 so as to swivel about a vertical axis 21. The first arm 13 is connected to the base 11 so as to swing about an axis 22 that intersects (e.g., is perpendicular to) the axis 21, and extends in a direction away from the axis 22. The intersection includes a mutually twisted relationship, such as an overpass. The same applies hereinafter.
[0016] Second arm 14 is connected to the end of pivot unit 12 so as to swing about axis 23 parallel to axis 22. Second arm 14 has an arm base 15 and an arm end 16. Arm base 15 extends in a direction away from axis 23. Second arm 14 is connected to the end of arm base 15 so as to swing about axis 24 along the central axis of arm base 15, and further extends from arm base 15 along axis 24.
[0017] Third arm 17 is connected to the end of arm end portion 16 so as to swing about axis 25 that intersects (e.g., is perpendicular to) axis 24, and extends in a direction away from axis 25. Tip portion 18 is connected to third arm 17 so as to pivot about axis 26 that is along the central axis of third arm 17. End effector 3 is attached to tip portion 18.
[0018] Thus, the articulated arm 10 has a joint 31 that enables the pivoting portion 12 to pivot about axis 21 relative to the base 11, a joint 32 that enables the first arm 13 to swing about axis 22 relative to the pivoting portion 12, a joint 33 that enables the arm base 15 to swing about axis 23 relative to the first arm 13, a joint 34 that enables the arm end 16 to pivot about axis 24 relative to the arm base 15, a joint 35 that enables the third arm 17 to swing about axis 25 relative to the arm end 16, and a joint 36 that enables the tip 18 to pivot about axis 26 relative to the third arm 17.
[0019] The multiple motors 40 respectively operate the multiple joints of the articulated arm 10. For example, the articulated arm 10 has motors 41, 42, 43, 44, 45, and 46 as the multiple motors 40. The motors 41, 42, 43, 44, 45, and 46 respectively operate the six-axis joints 31, 32, 33, 34, 35, and 36 to change the position and posture of the tip end 18. As a result, the position and posture of the tip end 18 as well as the position and posture of the end effector 3 are changed.
[0020] For example, motor 41 drives joint 31 to rotate rotating portion 12 around axis 21. Motor 42 drives joint 32 to swing first arm 13 around axis 22. Motor 43 drives joint 33 to swing arm base 15 around axis 23. Motor 44 drives joint 34 to rotate arm end 16 around axis 24. Motor 45 drives joint 35 to swing third arm 17 around axis 25. Motor 46 drives joint 36 to rotate tip end 18 around axis 26.
[0021] Each of the motors 41, 42, 43, 44, 45, and 46 is, for example, an electric motor. Each of the motors 41, 42, 43, 44, 45, and 46 may directly drive a driven object or may drive the driven object via a transmission element such as a reducer. Hereinafter, when there is no need to distinguish between the joints 31, 32, 33, 34, 35, and 36, the joints 31, 32, 33, 34, 35, and 36 will be referred to as multiple joints 30, and each of the joints 31, 32, 33, 34, 35, and 36 will be referred to as joint 30. Similarly, when there is no need to distinguish between the motors 41, 42, 43, 44, 45, and 46, the motors 41, 42, 43, 44, 45, and 46 will be referred to as multiple motors 40, and each of the motors 41, 42, 43, 44, 45, and 46 will be referred to as motor 40.
[0022] The configuration of the articulated arm 10 illustrated above is merely an example, and can be changed as long as it allows for changing the position and posture of the end effector 3. For example, the articulated arm 10 may be a redundant robot in which one or more redundant axes are added to the six joints described above. Furthermore, the articulated arm 10 may be a SCARA robot or a parallel link robot.
[0023] The control device 100 controls the articulated arm 10. For example, the control device 100 generates a motion path for moving the end effector 3, and operates the robot 2 so that the end effector 3 moves along the generated motion path.
[0024] For example, the control device 100 generates a movement path when the movement start position (position and posture of the end effector 3 at the start of the movement) and the movement end position (position and posture of the end effector 3 at the end of the movement) are determined, but the movement path from the movement start position to the movement end position cannot be uniquely determined.
[0025] The movement path is the transition of the position and posture of the end effector 3 from the movement start position to the movement end position. For example, as shown in Fig. 2, the control device 100 generates a movement path represented by a plurality of time-series via positions P11 to P17. The number of via points in Fig. 2 is an example and is not limited to this.
[0026] Each of the via positions P11 to P17 represents the position and posture of the end effector 3. The first via position P11 corresponds to the operation start position, and the last via position P17 corresponds to the operation end position. The operation path from the via position P11 to the via position P17 is determined by the via positions P12 to P17 located between the via position P11 and the via position P17.
[0027] The control device 100 may generate a movement path from a movement start position to a movement end position based on the surrounding environment information. For example, the control device 100 generates a movement path based on the surrounding environment information so that the robot 2 does not collide with surrounding objects.
[0028] The control device 100 may generate a motion path that directly represents the transition of the position and posture of the end effector 3 in Cartesian space, or may generate a motion path that indirectly represents the transition of the position and posture of the end effector 3 in joint angle space. The joint angle space is a space represented by coordinate axes the same number as the number of joints 30 (for example, six). The multiple coordinate axes correspond to the multiple joints 30, respectively. Each of the multiple coordinate axes represents the angle of the corresponding joint 30.
[0029] According to the coordinates in the joint angle space, the position and orientation of the end effector 3 can be uniquely calculated by a forward kinematics calculation. Therefore, the motion path generated in the joint angle space indirectly represents the transition of the position and orientation of the end effector 3. For example, according to the motion path generated in the joint angle space, each of the via positions P11 to P17 in Fig. 2 is indirectly represented by coordinates in the joint angle space.
[0030] According to the method of generating a motion path in joint angle space, the angles of the multiple joints 30 can be calculated without being constrained by the position and posture of the end effector 3. This makes it easier to distribute the motion to the multiple joints 30 compared to a method of generating a motion path of the end effector 3 directly in Cartesian space. This prevents any of the multiple joints 30 from performing an unreasonable motion, and allows the motion path of the robot 2 to be generated quickly and with high reliability. However, there is a possibility that the posture of the end effector 3 may change significantly while the robot 2 is moving along the motion path. For example, in FIG. 2, the posture of the end effector 3 at the via position P14 is significantly different from the postures of the end effector 3 at the via positions P11 and P17.
[0031] There is a possibility that energy will be wasted if the posture of the end effector 3 is changed significantly in a situation where there is no need to change the posture of the end effector 3. In addition, there may be cases where a large change in the posture of the end effector 3 cannot be tolerated, for example, when the robot 2 is made to transport a container containing liquid.
[0032] Therefore, the control device 100 generates a motion path in the joint angle space while suppressing changes in the posture of the end effector 3 when it moves along the motion path. This makes it possible to suppress changes in the posture of the end effector 3 while retaining the advantages of generating a motion path in the joint angle space. Therefore, this is effective in quickly generating a motion path for the robot 2 with high reliability.
[0033] In addition, the movement of the end effector 3 along the motion path generated in the joint angle space means that the end effector 3 moves along the transition of the position and posture of the end effector 3 that is indirectly determined based on the motion path.
[0034] For example, as shown in FIG. 1, the control device 100 has, as functional components (hereinafter referred to as "functional blocks"), a path generation unit 110, a path storage unit 121, a calling unit 122, a buffer 123, and a robot control unit 124. The path generation unit 110 generates a movement path in the joint angle space while suppressing changes in the posture of the end effector 3 when moving along the movement path. An example of a method for generating a movement path will be described later. For example, the path generation unit 110 generates a plurality of movement commands that represent movement paths in the joint angle space, and stores them in the path storage unit 121.
[0035] FIG. 3 is a schematic diagram illustrating a plurality of movement commands representing generated movement paths. Each line in FIG. 3 represents one movement command. In each movement command, the "J" after "Move" represents the movement command in joint angle space, and the parentheses contain numerical values representing the target angles of each of the plurality of joints 30. Each movement command determines that each of the plurality of joints 30 will move linearly from the start point of the movement path (for example, the target angle of the immediately preceding movement command) to the end point of the movement path (the target angle in parentheses).
[0036] 1, the calling unit 122 sequentially calls a plurality of operation commands from the path storage unit 121 and temporarily stores them in the buffer 123. The calling unit 122 sequentially fetches a plurality of operation commands and temporarily stores them in the buffer 123.
[0037] The robot control unit 124 operates the robot 2 so that the end effector 3 moves along the generated motion path. For example, the robot control unit 124 repeats the following steps 1 to 5 at a predetermined control cycle. Process 1) Based on a plurality of operation commands stored in the buffer 123, a speed pattern (time change of speed) including acceleration and deceleration is generated (updated). Process 2) Calculate the target positions (target angles) of the motors 41, 42, 43, 44, 45, and 46 for each control period. Process 3) The current positions (current angles) of the motors 41, 42, 43, 44, 45, and 46 are obtained. Process 4) Calculate the deviation between the target position and the current position. Process 5) The drive power required to reduce the deviation is calculated, and the calculated drive power is supplied to each of the motors 41, 42, 43, 44, 45, and 46.
[0038] The path generation unit 110 may generate at least a portion of the movement path while the robot control unit 124 is operating the robot 2. By generating the movement path at a timing close to the timing at which the robot 2 actually operates, changes in the surrounding environment can be reflected and the movement path can be generated with higher reliability. Operating the robot 2 by the robot control unit 124 includes maintaining a constant position and posture of the robot 2 by supplying drive power. For example, when the above-mentioned speed pattern includes a period of zero speed, the robot control unit 124 supplies drive power to the robot 2 to maintain a constant position and posture. Furthermore, even when there are no unexecuted movement commands in the buffer 123 due to a delay in path generation or the like, the robot control unit 124 supplies drive power to the robot 2 to maintain a constant position and posture.
[0039] The path generating unit 110 may generate at least a part of the movement path while the position and posture of the robot 2 are changing using the driving power supplied by the robot control unit 124. This reduces the timing at which the movement of the robot 2 is interrupted due to waiting for the generation of the movement path, allowing the robot 2 to operate efficiently.
[0040] The control device 100 may further include a command storage unit 125. The command storage unit 125 stores one or more pre-generated operation commands in addition to the operation commands generated by the path generation unit 110. For example, the command storage unit 125 stores a plurality of operation commands in chronological order. The plurality of operation commands stored in the command storage unit 125 include a move command and an auto command, and are sequentially called up by the calling unit 122.
[0041] The move command includes a target position (for example, a target position and a target posture of the end effector 3, or target angles of the joints 30) and a path generation condition to the target position. The path generation condition is a condition that uniquely determines the motion path from the start point of the motion path to the end point of the motion path. Examples of the path generation condition include the following: Condition 1) In Cartesian space, the end effector 3 is moved along a linear motion path from the start point of the motion path to the end point of the motion path. Condition 2) In Cartesian space, the end effector 3 is moved along an S-shaped motion path from the start point of the motion path to the end point of the motion path. Condition 3) In the joint angle space, the end effector 3 is moved along a linear motion path from the start point of the motion path to the end point of the motion path. Note that "J" in the movement commands in Figure 3 represents condition 3. Condition 3 means that the angles of each of the multiple end effectors 3 change linearly from the start point of the movement path to the end point of the movement path. According to condition 3, the movement path of the end effector 3 in Cartesian space is not necessarily linear.
[0042] An autocommand includes a target position but does not include a path generation condition. As described above, the "path generation condition" here refers to a condition that uniquely defines a motion path from the start point of the motion path to the end point of the motion path. An autocommand does not uniquely define a motion path, but may include conditions that limit the range in which the motion path is generated. To operate the robot 2 based on an autocommand that does not include a path generation condition that uniquely defines a motion path, it is necessary to generate a motion path to the target position included in the autocommand. Therefore, when an autocommand is called, the path generation unit 110 generates an air-cut path as the motion path, which moves the end effector 3 to the target position of the autocommand. The air-cut path is a motion path that moves the end effector 3 without coming into contact with surrounding objects or the workpiece.
[0043] Since the movement path of the robot 2 can be generated quickly and with high reliability, even if the movement path of the robot 2 is generated after an auto command is called, it is possible to prevent an increase in the period during which the movement of the robot 2 is interrupted while waiting for the generation of the movement path. By generating the movement path of the robot 2 after an auto command is called, the movement path is generated at a timing close to the timing at which the robot 2 actually moves, so a movement path that adapts to changes in the surrounding environment can be generated with higher reliability.
[0044] For example, the calling unit 122 sequentially calls a plurality of operation commands from the command storage unit 125, and if the called operation command is a move command, it temporarily stores the move command in the buffer 123. If the called operation command is an auto command, the calling unit 122 notifies the path generating unit 110 of the target position of the operation command called immediately before the auto command (hereinafter referred to as the "immediately preceding target position") and the target position of the auto command. The path generating unit 110 generates an air cut path from the immediately preceding target position to the target position of the auto command, and stores a plurality of operation commands representing the air cut path in the path storage unit 121.
[0045] After calling the autocommand, the calling unit 122 changes the call destination of the operation command from the command storage unit 125 to the path storage unit 121. After the path generation unit 110 has completed the generation of the operation path, the calling unit 122 sequentially calls the multiple operation commands from the path storage unit 121, and after calling all the multiple operation commands stored in the path storage unit 121, returns the call destination of the operation command from the path storage unit 121 to the command storage unit 125.
[0046] The autocommand may be associated with range information indicating an allowable range of posture change of the end effector 3. The path generation unit 110 may generate a movement path based on the range information corresponding to the autocommand called by the call unit 122 so that the posture change of the end effector 3 falls within the allowable range indicated by the range information. The narrower the allowable range, the greater the computational load for generating a movement path. In contrast, by associating the allowable range with the autocommand, the allowable range can be changed according to the autocommand. This makes it possible to strike a balance between suppressing posture change of the end effector 3 and reducing the computational load.
[0047] Fig. 4 is a schematic diagram illustrating a plurality of operation commands stored in the command storage unit 125. Fig. 4 shows a plurality of commands C11 to C19 arranged in chronological order. Commands C11, C13, C14, and C16 are move commands, and numerical values representing the target position and target posture of the end effector 3 in Cartesian space are included in parentheses. The "L" after "Move" indicates that the end effector 3 is to be moved along a linear operation path in Cartesian space from the start point of the operation path (for example, the target position and target posture of the immediately preceding operation command) to the end point of the operation path (the target position and target posture in parentheses) (the above-mentioned condition 1).
[0048] Commands C12 and C17 are also move commands, and the parentheses contain numerical values that represent, in Cartesian space, the target position and target posture of the end effector 3. In commands C12 and C17, the "S" after "Move" represents that the end effector 3 is to be moved along an S-shaped motion path in Cartesian space from the start point of the motion path (for example, the target position and target posture of the immediately preceding motion command) to the end point of the motion path (the target position and target posture in parentheses) (the above-mentioned condition 2).
[0049] Command C18 is also a move command, and the target angles in the joint angle space of each of the multiple joints 30 are included in parentheses. In command C18, as with the movement commands in Fig. 3, the "J" after "Move" indicates that the end effector 3 is to be moved along a linear movement path in the joint angle space from the start point of the movement path (for example, the target angle of the immediately preceding movement command) to the end point of the movement path (the target angle in parentheses) (condition 3 described above).
[0050] In commands C15 and C19, the "Auto" added after "Move" indicates that the command is an auto command. The parentheses in commands C15 and C19 contain numerical values representing the target position and target posture of the end effector 3 in Cartesian space, and range information representing the allowable range of posture change of the end effector 3.
[0051] The calling unit 122 sequentially calls commands C11 to C14, which are move commands, and temporarily stores them in a buffer 123. When the calling unit 122 calls command C15, which is an auto command, it notifies the path generating unit 110 of the target position of command C14 and the target position of command C15. The path generating unit 110 generates an air cut path from the target position of command C14 to the target position of command C15, and stores a plurality of operation commands representing the air cut path in a path storage unit 121.
[0052] After calling command C15, the calling unit 122 changes the call destination of the operation command from the command storage unit 125 to the path storage unit 121, calls all the multiple operation commands stored in the path storage unit 121 and stores them in a buffer 123, and then returns the call destination of the operation command from the path storage unit 121 to the command storage unit 125.
[0053] FIG. 5 is a timing chart showing the relationship between the operation period of the robot 2 and the generation period of an air cut pass by the path generation unit 110, with the horizontal axis representing the passage of time. As shown in FIG. 5, the path generation unit 110 starts generating an air cut pass at start timing t2, which is a generation margin time T11 before the predicted completion timing t1 of the operation based on the immediately preceding move command (hereinafter referred to as the "preceding operation"). The generation margin time T11 is equal to or greater than the air cut pass generation time T13. Therefore, if air cut pass generation is started at generation margin time T11, it is possible to complete the generation of the air cut pass by the predicted completion timing t1 when the preceding operation is completed.
[0054] 5, the predicted time T12 of the action corresponding to two or more move commands stored in the command storage unit 125 is longer than the generation margin time T11. Therefore, there is ample time until the preceding action is completed after the auto command is fetched, and the generation of the air cut pass can be started at the start timing t2, which is before the predicted completion timing t1 by the generation margin time T11.
[0055] If the predicted time T12 is shorter than the generation margin time T11, the start timing t2, which is the generation margin time T11 before the predicted completion timing t1, will already be in the past when the auto command is fetched, and it will be impossible to ensure sufficient time to generate the air cut pass before the predicted completion timing t1. To avoid this situation, the calling unit 122 may change the number of commands stored in the buffer 123 so that the predicted time T12 is longer than the generation margin time T11.
[0056] Fig. 6 is a block diagram illustrating an example of the configuration of the path generation unit 110. As shown in Fig. 6, the path generation unit 110 has, as functional blocks, a route angle generation unit 111, an attitude check unit 112, an interference check unit 113, and a command addition unit 114.
[0057] The via angles of the multiple joints 30 (hereinafter referred to as "joint angles") are generated between the angles of the multiple joints 30 corresponding to the start point of the air cut path (for example, the target angles of the immediately preceding movement command) and the angles of the multiple joints 30 corresponding to the end point of the air cut path (for example, the target angles corresponding to the target position and target posture of the auto command). For example, the via angle generation unit 111 generates via angles by randomly generating random numbers.
[0058] The posture check unit 112 checks whether the posture of the end effector 3 based on the route angle (posture in Cartesian space) falls within a predetermined allowable range. For example, the posture check unit 112 calculates the posture of the end effector 3 based on the route angle by forward kinematics calculation, and checks whether the calculated posture falls within the allowable range.
[0059] The interference check unit 113 checks, based on models of the robot 2 and the peripheral objects, whether the robot 2 will interfere with a peripheral object at a passing angle where the posture of the end effector 3 falls within an allowable range. For example, the control device 100 further includes a model storage unit 131 that stores models of the robot 2 and the peripheral objects. The models are numerical information that specify the shapes, structures, sizes, etc. of the robot 2 and the peripheral objects.
[0060] The interference check unit 113 simulates the posture of the robot 2 corresponding to the pass angle in virtual space based on the pass angle and the model of the robot 2 stored in the model storage unit 131, and checks whether the robot 2 will interfere with a peripheral object at the pass angle. Interference means that the robot 2 overlaps with a peripheral object in virtual space.
[0061] The peripheral objects to be checked for interference may include one or more machines, such as other robots, whose postures in Cartesian space change. Therefore, the control device 100 may further include a status storage unit 132 and a status update unit 133. The status update unit 133 acquires status information of the one or more machines from a higher-level controller, an external sensor, or the like, and stores the information in the status storage unit 132. Examples of the status information include joint angles of other robots. Examples of external sensors include a vision sensor including a camera and an image processing device. The interference check unit 113 may further simulate the operation of the one or more machines based on the models of the one or more machines stored in the model storage unit 131 and the status information stored in the status storage unit 132, and check whether the robot 2 will interfere with the one or more machines.
[0062] The command adding unit 114 adds to the path storage unit 121 a move command that sets the target angle as a via angle at which the posture of the end effector 3 falls within the allowable range and the robot 2 does not interfere with surrounding objects, and that sets the path generation condition to the above-mentioned condition 3. The command adding unit 114 also adds to the path storage unit 121 a move command that corresponds to the end point of the air cut path.
[0063] The interference check unit 113 simulates the movement of the robot 2 according to the multiple move commands added to the path storage unit 121 based on the model of the robot 2 stored in the model storage unit 131, and checks whether the robot 2 will interfere with a peripheral object over the entire area from the start point to the end point of the air cut path. For example, the interference check unit 113 operates the robot 2 in a virtual space according to the multiple movement commands in the path storage unit 121 based on the model of the robot 2 stored in the model storage unit 131, and checks whether the robot 2 will interfere with a peripheral object. If it is determined that the robot 2 will interfere with a peripheral object, the interference check unit 113 requests the route angle generation unit 111 to add a route angle for the section where the interference occurs. Thereafter, until it is determined that the robot 2 will not interfere with surrounding objects over the entire area from the start point to the end point of the air-cut path, the generation of the pass angle by the pass 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 a move command by the command addition unit 114, and the operation simulation by the interference check unit 113 are repeated. In this way, an air-cut path is generated that will not cause the robot 2 to interfere with surrounding objects over the entire area from the start point to the end point.
[0064] If the interference check unit 113 determines that the posture of the end effector 3 due to the via angle does not fall within the allowable range, it does not check whether the robot 2 will interfere with a peripheral object at that via angle, and requests the via angle generation unit 111 to regenerate the via angle. Narrowing the targets of the interference check to the via angles where the posture of the end effector 3 is within the allowable range reduces the calculation load, thereby speeding up the generation of the movement path.
[0065] The path generation unit 110 may further include an angle correction unit 115. When the posture of the end effector 3 due to the via angle does not fall within the allowable range, the angle correction unit 115 may correct the via angle so that the posture of the end effector 3 falls within the allowable range. For example, the angle correction unit 115 may correct the via angle of the joint 30 to be corrected by a simple inverse kinematics calculation targeting one of the multiple joints 30 (for example, joints 34, 35, 36) as the correction target. The interference check unit 113 may perform an interference check using the via angle corrected by the angle correction unit 115. By correcting and using a via angle that does not bring the posture of the end effector 3 within the allowable range rather than discarding it, the calculation load can be further reduced.
[0066] After generating an air cut path, the path generation unit 110 may perform post-processing such as smoothing on the generated air cut path. In the above, an example has been shown in which the posture check unit 112 performs a posture check on the pass angle before the command addition unit 114 adds a move command based on the pass angle to the path storage unit 121 (before the air cut path is generated), but this is not limiting. For example, the posture check unit 112 may perform a posture check on the pass angle of each move command after generating an air cut path. When the path generation unit 110 performs the above-mentioned post-processing, the posture check unit 112 may perform a posture check on the pass angle of each move command after the post-processing.
[0067] The path generation unit 110 may suppress a change in the posture of the end effector 3 so that it falls within an allowable range that includes at least one of the posture of the end effector 3 at the start point of the air cut path (hereinafter referred to as the "start posture") and the posture of the end effector 3 at the end point of the air cut path (hereinafter referred to as the "end posture"). By suppressing a change in the posture of at least one of the start posture and the end posture, unnecessary posture changes of the hand can be further suppressed. When the start posture and the end posture differ, the path generation unit 110 may suppress the change in posture so that it falls within an allowable range that includes both the start posture and the end posture. By providing a reasonable width for the allowable range, it is possible to achieve a balance between suppressing posture changes of the hand and reducing the computational load.
[0068] For example, the path generating unit 110 may further include a reference attitude setting unit 116. The reference attitude setting unit 116 sets at least one of the start attitude and the end attitude as the reference attitude. The attitude checking unit 112 calculates an allowable range for the attitude of the end effector 3 based on the reference attitude and a predetermined allowable change range, and checks whether the attitude of the end effector 3 due to the via angle falls within the calculated allowable range.
[0069] For example, when the starting posture is set as the reference posture, the posture checking unit 112 calculates the allowable range based on the starting posture and the allowable change range. When the end posture is set as the reference posture, the posture checking unit 112 calculates the allowable range based on the end posture and the allowable change range. When both the starting posture and the end posture are set as the reference posture, the posture checking unit 112 calculates the allowable range as a combination of a first allowable range based on the starting posture and the allowable change range, a second allowable range based on the end posture and the allowable change range, and the range from the starting posture to the end posture.
[0070] The path generating unit 110 may generate an air cutting path so as to suppress a change in posture relative to a posture trajectory that is determined so as to gradually change 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. While suppressing the posture change, it is possible to gradually transition from the posture of the hand at the start point to the posture of the hand at the end point.
[0071] For example, each time the via angle generation unit 111 generates a via angle, the reference attitude setting unit 116 may calculate a reference attitude corresponding to the generated via angle as part of the attitude trajectory. As an example, the reference attitude setting unit 116 calculates an intermediate attitude between the previous and next reference attitudes as the reference attitude corresponding to the generated via angle. The attitude check unit 112 calculates an allowable range for the attitude of the end effector 3 based on the reference attitude and a predetermined allowable change range, and checks whether the attitude of the end effector 3 due to the via angle falls within the calculated allowable range.
[0072] The control device 100 may further include a range setting unit 134. The range setting unit 134 sets an allowable range of posture change (the allowable change range) based on user input (for example, input to a user interface 196 described below). The path generating unit 110 suppresses posture change so that it falls within the allowable change range set by the user. The allowable change range can be customized, improving usability.
[0073] The range setting unit 134 may acquire the allowable change range expressed by the two-axis rotation method based on user input. The path generation unit 110 may calculate the posture change by the two-axis rotation method and generate an air cut path so that the calculated posture change falls within the allowable change range. By enabling intuitive specification of the allowable range, usability can be further improved.
[0074] The posture check unit 112 calculates rotation angles around two axes that represent a change in posture of the end effector 3 relative to the reference posture. For example, as shown in FIG. 7, the posture check unit 112 calculates the angle ψ of the k-axis passing through the origin relative to the Y-axis in the XY plane, the rotation angle Ra of the Z-axis around the k-axis, and the rotated rotation angle Ro around the Z-axis as parameters that represent a change in posture of the end effector 3 relative to the reference posture. The range setting unit 134 generates an input interface (see FIG. 8) that allows input of the allowable ranges of the angle ψ, the allowable ranges of the rotation angles Ra, and the allowable ranges of the rotation angles Ro, and sets the allowable ranges of the angle ψ, the rotation angle Ra, and the rotation angle Ro based on the input to the input interface. The posture check unit 112 checks whether the calculated angle ψ, the rotation angle Ra, and the rotation angle Ro are each within a preset allowable range. 8 is an example, and does not necessarily have to be configured to directly specify the values of 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 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 using 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 based on the specified level and the allowable ranges assigned to each level.
[0075] Fig. 9 is a block diagram illustrating an example of a hardware configuration of the control device 100. As shown in Fig. 9, the control device 100 includes a circuit 190. The circuit 190 includes a processor 191, a memory 192, a storage 193, a communication port 194, a servo circuit 195, and a user interface 196.
[0076] The storage 193 stores a program for causing the control device 100 to generate a motion path in joint angle space while suppressing changes in the posture of the end effector 3 when it moves along the motion path, and to operate the robot 2 so that the end effector 3 moves along the generated motion path. For example, the storage 193 stores a program for causing the control device 100 to configure each of the above-mentioned functional blocks.
[0077] Storage 193 includes one or more storage devices. The storage device is a volatile storage medium such as a hard disk drive or flash memory. The storage device may also include removable media such as an optical disk or a magnetic disk.
[0078] The memory 192 temporarily stores programs loaded from the storage 193. The memory 192 includes one or more memory devices. The memory devices are volatile storage media such as random access memories.
[0079] The processor 191 executes a program loaded into the memory 192 to configure each of the above-mentioned functional blocks in the control device 100. Data generated by the processor 191 is stored in the memory 192 as needed. The processor 191 includes one or more processing devices. Examples of the one or more processing devices include a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit).
[0080] The communication port 194 communicates with the upper controller 200 or the external sensor 300 via wired or wireless network communication in response to a request from the processor 191. The servo circuit 195 supplies current to the motors 41, 42, 43, 44, 45, and 46 in response to a request from the processor 191.
[0081] The user interface 196 inputs and outputs information to and from a human user in response 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 or a liquid crystal monitor. Examples of the one or more input devices include a keyboard, a mouse, a keypad, or a touchpad. Any of the one or more input devices may be integrated into any of the one or more display devices as a touch panel.
[0082] [Control procedure] As an example of a control method, a control procedure executed by the control device 100 is illustrated. This procedure includes generating a motion path for the robot 2 and operating the robot 2 so that the end effector 3 moves along the generated motion path. Generating the motion path includes generating the motion path in joint angle space while suppressing changes in the posture of the end effector 3 moving along the motion path.
[0083] For example, the procedures include a status update procedure, a command call procedure, a path generation procedure, and a robot control procedure. Each procedure will be described below.
[0084] (Status update procedure) This procedure is a procedure for updating the status of one or more machines that are peripheral objects of the robot 2. As shown in FIG. 10, the control device 100 executes steps S01 and S02. In step S01, the status update unit 133 acquires status information of one or more machines from the upper controller 200, the external sensor 300, etc., and updates the status information stored in the status storage unit 132 based on the acquired status information. In step S02, the status update unit 133 waits for a predetermined update period to elapse. Thereafter, the control device 100 returns the process to step S01. The control device 100 repeatedly executes the above procedure from the start to the completion of the control procedure.
[0085] (Command call procedure) This procedure is a procedure for sequentially calling up operation commands from the command storage unit 125 or the path storage unit 121. The command storage unit 125 is the destination for calling up operation commands at the start of execution. As shown in FIG. 11, the control device 100 first executes steps S11 and S12. In step S11, the calling unit 122 calls up one operation command from the destination storage unit. In step S12, the calling unit 122 checks whether the called operation command is an auto command.
[0086] If it is determined in step S12 that the operation command is an auto command, the control device 100 executes steps S13, S14, S15, and S16. In step S13, the calling unit 122 notifies the path generating unit 110 of the target position of the operation command called immediately before the auto command (the immediately preceding target position) and the target position of the auto command. In step S14, the path generating unit 110 waits for the start timing of path generation (for example, the start timing t2). In step S15, the path generating unit 110 generates an air cut path. The procedure for generating an air cut path will be described later. In step S16, the calling unit 122 changes the calling destination of the operation command from the command storage unit 125 to the path storage unit 121.
[0087] If it is determined in step S12 that the operation command is not an auto command but a move command, the control device 100 executes steps S21 and S22. In step S21, the calling unit 122 stores the called operation command in the buffer 123. In step S22, the calling unit 122 checks whether the path storage unit 121 is the call destination of the operation command.
[0088] If it is determined in step S22 that the path storage unit 121 is the call destination of the operation command, the control device 100 executes step S23. In step S23, the call unit 122 checks whether or not the call of all operation commands stored in the path storage unit 121 has been completed. If it is determined in step S23 that there are operation commands remaining in the path storage unit 121 that have not been called, the control device 100 returns the process to step S11 and continues calling operation commands from the path storage unit 121.
[0089] If it is determined in step S23 that all operation commands stored in the path storage unit 121 have been called, the control device 100 executes step S24. In step S24, the calling unit 122 changes the call destination of the operation command from the path storage unit 121 to the command storage unit 125.
[0090] Next, the control device 100 executes step S25. If it is determined in step S22 that the call destination of the operation command is the command storage unit 125, the control device 100 executes step S25 without executing steps S23 and S24. In step S25, the call unit 122 checks whether or not the call of all operation commands stored in the command storage unit 125 has been completed. If it is determined in step S25 that uncalled operation commands remain in the command storage unit 125, the control device 100 returns the process to step S11 and continues to call operation commands from the command storage unit 125. If it is determined in step S25 that the call of all operation commands stored in the command storage unit 125 has been completed, the control device 100 completes the call of the operation commands.
[0091] FIG. 12 is a flowchart illustrating the procedure for generating an air cut path in step S15. As shown in FIG. 12, the control device 100 first executes steps S31, S32, S33, S34, and S35. In step S31, the reference attitude setting unit 116 sets the above-described reference attitude. In step S32, the command adding unit 114 adds a move command corresponding to the end point of the air cut path to the path storage unit 121. In step S33, the route angle generating unit 111 generates the above-described route angle. In step S34, the attitude checking unit 112 calculates the change in attitude of the end effector 3 relative to the reference attitude based on the route angle. In step S35, the interference checking unit 113 checks whether the change in attitude of the end effector 3 is within a predetermined allowable change range. If it is determined in step S35 that the change in attitude is not within the allowable change range, the control device 100 returns the process to step S33 and regenerates the route angle.
[0092] If 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, the interference check unit 113 simulates in virtual space the posture of the robot 2 corresponding to the pass angle based on the pass angle and the model of the robot 2 stored in the model storage unit 131, and checks whether the robot 2 will interfere with a peripheral object at the pass angle. If it is determined in step S37 that the robot 2 will interfere with a peripheral object, the control device 100 returns the process to step S33 and regenerates the pass angle.
[0093] If it is determined in step S37 that the robot 2 will not interfere with a peripheral object, the control device 100 executes steps S38 and S39. In step S38, the command adding unit 114 adds a move command with the via angle as the target angle to the path storage unit 121. In step S39, the operation of the robot 2 according to the multiple move commands added to the path storage unit 121 is simulated based on the model of the robot 2 stored in the model storage unit 131, and a check is made to see if the robot 2 will interfere with a peripheral object over the entire area from the start point to the end point of the air-cut path. If it is determined in step S39 that the robot 2 will interfere with a peripheral object, the control device 100 returns the process to step S33 and regenerates the via angle. If it is determined in step S39 that the robot 2 will not interfere with a peripheral object, the control device 100 completes the generation of the air-cut path.
[0094] Instead of step S31, the control device 100 may calculate a reference attitude corresponding to the generated via angle as part of the attitude trajectory described above every time a via angle is generated in step S33.
[0095] 13, if it is determined in step S35 that the posture change is not within the allowable change range, the control device 100 may execute step S36. In step S36, the angle correction unit 115 corrects the via angle so that the posture of the end effector 3 falls within the allowable range. When step S36 is executed, in step S37, the interference check unit 113 performs an interference check based on the via angle corrected by the angle correction unit 115.
[0096] (Robot control procedure) This procedure is a procedure for operating the robot 2 based on the operation commands added to the buffer 123. As shown in FIG. 14, 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 the multiple operation commands stored in the buffer 123. In step S42, the robot control unit 124 calculates 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 acquires 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 drive power required to reduce the deviation and supplies the calculated drive power to each of the motors 41, 42, 43, 44, 45, and 46. In step S46, the robot control unit 124 waits for the control period to elapse. Thereafter, the control device 100 returns the process to step S41. The control device 100 repeatedly executes the above procedure.
[0097] 〔summary〕 The above-described exemplary embodiment includes the following configurations.
[0098] (1) A robot system 1 comprising a robot 2 having a multi-joint arm 10 that changes the position of the hand, a path generation unit 110 that generates a motion path for moving the hand, and a robot control unit 124 that operates the robot 2 so that the hand moves along the generated motion path, wherein the path generation unit 110 generates a motion path in the joint angle space of the multi-joint arm 10 while suppressing changes in the posture of the hand when moving along the motion path. The method of generating a motion path in joint angle space makes it easier to distribute motion among multiple joints compared to the method of generating a motion path in Cartesian space. This prevents unreasonable motion at any of the multiple joints, enabling the motion path of the robot 2 to be generated quickly and reliably. However, there is a possibility that the posture of the hand may change significantly while the robot 2 is moving along the motion path. Large changes in the posture of the hand when no change in the posture of the hand is necessary may result in unnecessary energy consumption. Furthermore, there may be cases where large changes in the posture of the hand cannot be tolerated, such as when the robot 2 is transporting a container containing liquid. In response to this, in the robot system 1, the path generator 110 generates a motion path in joint angle space while suppressing changes in the posture of the hand. This allows the hand posture to be suppressed while retaining the advantages of the method of generating a motion path in joint angle space. This is therefore effective for quickly and reliably generating a motion path of the robot 2.
[0099] (2) The robot system 1 described in (1), wherein the path generating unit 110 generates at least a part of the movement path while the robot control unit 124 is operating the robot 2. By generating a movement path at a timing close to the timing at which the robot 2 actually moves, the movement path can be generated with higher reliability. In addition, the timing at which the movement of the robot 2 is interrupted due to waiting for the generation of the movement path can be reduced, allowing the robot 2 to operate efficiently.
[0100] (3) The robot system 1 described in (2) further includes a command memory unit 125 that stores one or more operation commands that include an auto command including a target position and are called sequentially, and when an auto command is called, the path generation unit 110 generates an air cut path as an operation path that moves the hand to the target position of the auto command. Since the movement path of the robot 2 can be generated quickly and with high reliability, even if the movement path of the robot 2 is generated after an auto command is called, it is possible to prevent an increase in the period during which the movement of the robot 2 is interrupted while waiting for the generation of the movement path. By generating the movement path of the robot 2 after an auto command is called, the movement path is generated at a timing close to the timing at which the robot 2 actually moves, so a movement path that adapts to changes in the surrounding environment can be generated with higher reliability.
[0101] (4) The auto command is associated with range information that indicates the allowable range of the hand posture change, and the path generation unit 110 generates an operation path based on the range information corresponding to the called auto command so that the hand posture change falls within the allowable range indicated by the range information, in the robot system 1 described in (3). The narrower the tolerance range, the greater the computational load required to generate a motion path. By associating the tolerance range with the autocommand, the tolerance range can be changed according to the autocommand. This allows for a balance between suppressing hand posture changes and reducing the computational load.
[0102] (5) The path generation unit 110 includes a via angle generation unit 111 that generates a via angle through which the joint angle passes from the joint angle of the articulated arm 10 corresponding to the start point of the movement path to the joint angle corresponding to the end point of the movement path, and a posture check unit 112 that checks whether the posture of the hand due to the via angle falls within a predetermined tolerance range, and generates a movement path based on the via angle at which the posture of the hand falls within the tolerance range. The robot system 1 described in any one of (1) to (4) above. After calculating the via angle, it is checked whether the posture is within an allowable range, thereby easily suppressing changes in the posture of the hand even in the joint angle space.
[0103] (6) The path generation unit 110 further includes an interference check unit 113 that checks whether the robot 2 will interfere with a surrounding object at a route angle where the posture of the hand falls within an allowable range, based on a model of the robot 2 and the surrounding object, and generates an operating path based on a route angle where the robot 2 will not interfere with a surrounding object. (5) The robot system 1 described above. By narrowing down the targets of interference checks to the pass angles where the hand posture is within the allowable range and reducing the calculation load, it is possible to speed up the generation of motion paths.
[0104] (7) The robot system 1 described in (6) further includes an angle correction unit 115 that corrects the via angle when the posture of the hand due to the via angle does not fall within the allowable range so that the posture of the hand falls within the allowable range. The computational load can be further reduced by correcting and using the transit angles for which the hand posture is not within the allowable range rather than discarding them.
[0105] (8) The robot system 1 described in any one of (1) to (7), wherein the path generation unit 110 suppresses posture changes in the posture trajectory from the posture of the hand corresponding to the start point of the motion path to the posture of the hand corresponding to the end point of the motion path. It is possible to suppress changes in posture and to gradually transition the posture of the hand from the posture at the starting point to the posture at the end point.
[0106] (9) The robot system 1 described in any one of (1) to (7) above, wherein the path generation unit 110 suppresses the change in posture so that the posture falls within an allowable range that includes at least one of the posture of the hand at the start point of the motion path and the posture of the hand at the end point of the motion path. By suppressing the change in the posture of at least one of the hand posture at the start point and the hand posture at the end point, unnecessary changes in the posture of the hand can be further suppressed.
[0107] (10) The robot system 1 according to (9), wherein the path generating unit 110 suppresses a change in the posture so that the posture of the hand falls within an allowable range that includes both the posture of the hand at the start point and the posture of the hand at the end point. By providing a reasonable tolerance range, it is possible to achieve a balance between suppressing changes in the hand posture and reducing the computational load.
[0108] (11) The robot system 1 described in any one of (1) to (10) further includes a range setting unit 134 that sets an acceptable range for posture change based on input from a user, and the path generating unit 110 suppresses posture change so that it falls within the acceptable range. The allowable range of posture change can be customized, improving usability.
[0109] (12) The robot system 1 described in (11) is configured such that the range setting unit 134 obtains an allowable range expressed by the two-axis rotation method based on input from a user, and the path generation unit 110 calculates a posture change by the two-axis rotation method and generates a motion path so that the calculated posture change falls within the allowable range. By enabling intuitive specification of the tolerance range, usability can be further improved.
[0110] (13) A method for controlling a robot (2) having a multi-joint arm (10) that changes the position of a hand, the method comprising: generating a motion path for the robot (2); and operating the robot (2) so that the hand moves along the generated motion path, wherein generating the motion path includes generating a motion path in the joint angle space of the multi-joint arm (10) while suppressing changes in the posture of the hand moving along the motion path. [Explanation of symbols]
[0111] 1...Robot system, 10...Articulated arm, 2...Robot, 110...Path generation unit, 124...Robot control unit, 125...Command memory unit, 111...Route angle generation unit, 112...Posture check unit, 113...Interference check unit, 115...Angle correction unit, 134...Range setting unit.
Claims
1. a robot having a multi-joint arm that can change the position of its hand; a path generating unit that generates a motion path for moving the hand; a robot control unit that operates the robot so that the end effector moves along the generated motion path; Equipped with The path generation unit generates the motion path in the joint angle space of the articulated arm while suppressing changes in the posture of the hand when moving along the motion path.
2. the path generation unit generates at least a part of the motion path while the robot control unit is operating the robot; The robot system according to claim 1 .
3. a command storage unit for storing one or more operation commands, including an autocommand including a target position, that are sequentially called; the path generation unit generates, when the auto-command is called, an air-cut path for moving the hand to the target position of the auto-command as the motion path; The robot system according to claim 2 .
4. The autocommand is associated with range information that indicates an allowable range of a posture change of the hand, the path generation unit generates the motion path based on the range information corresponding to the called auto-command so that a change in posture of the hand falls within an allowable range indicated by the range information. The robot system according to claim 3 .
5. The path generation unit a pass angle generation unit that generates a pass angle through which the joint angle passes from a joint angle of the articulated arm corresponding to a start point of the motion path to the joint angle corresponding to an end point of the motion path; a posture check unit that checks whether the posture of the hand based on the route angle falls within a predetermined allowable range; and generating the motion path based on the via angle at which the posture of the hand falls within the tolerance range. The robot system according to any one of claims 1 to 4.
6. The path generation unit an interference check unit that checks, based on models of the robot and the peripheral object, whether or not the robot will interfere with a peripheral object at the pass angle at which the posture of the hand falls within the allowable range; and generating the motion path based on the via angle that prevents the robot from interfering with the peripheral object. The robot system according to claim 5 .
7. The path generation unit an angle correction unit that corrects the via angle so that the posture of the hand falls within the allowable range when the posture of the hand due to the via angle does not fall within the allowable range; Further comprising: The robot system according to claim 6.
8. the path generation unit suppresses the change in posture with respect to a posture trajectory from a posture of the hand corresponding to a start point of the motion path to a posture of the hand corresponding to an end point of the motion path. The robot system according to any one of claims 1 to 4.
9. the path generation unit suppresses the change in posture so as to fall within an allowable range including at least one of the posture of the hand at the start point of the motion path and the posture of the hand at the end point of the motion path. The robot system according to any one of claims 1 to 4.
10. the path generation unit suppresses the change in posture so that the posture falls within the allowable range that includes both the posture of the hand at the start point and the posture of the hand at the end point. The robot system according to claim 9.
11. a range setting unit that sets an allowable range of the posture change based on an input by a user; the path generation unit suppresses the posture change so that it falls within the allowable range. The robot system according to any one of claims 1 to 4.
12. the range setting unit acquires the allowable range expressed by a two-axis rotation method based on the input by the user; the path generation unit calculates the posture change by a two-axis rotation method, and generates the motion path so that the calculated posture change falls within the allowable range. The robot system of claim 11.
13. A method for controlling a robot having a multi-joint arm that changes the position of a hand, comprising: generating a motion path for the robot; operating the robot so that the hand moves along the generated motion path; Including, Generating the motion path includes generating the motion path in a joint angle space of the articulated arm while suppressing a change in posture of the hand moving along the motion path. A control method comprising:
Citation Information
Patent Citations
Method and device for planning operation route of robot
JP2000020117A