ROBOT OPERATION SIMULATION DEVICE, ROBOT CONTROL DEVICE, AND ROBOT OPERATION SIMULATION METHOD
The robot motion simulation device addresses the challenge of adapting robot motion to the attributes of fitted objects by simulating and comparing velocity, acceleration, and acting forces with user-defined constraints, thereby preventing damage to the fittings.
Patent Information
- Application Number
- JP2022574052
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-01-07
- Filing Date
- 2022-01-04
- Publication Date
- 2025-04-01
- Estimated Expiration
- 2042-01-04
AI Technical Summary
Industrial robots equipped with various fittings face challenges in adapting their motion to the attributes of the fittings, such as load capacity and rigidity, leading to potential damage due to excessive loads.
A robot motion simulation device that acquires the position of the fitting relative to the robot, calculates expected velocity, acceleration, and acting forces, and compares these with user-set constraints to ensure the robot's motion is compatible with the fitting's attributes.
The solution effectively adapts the robot's motion to the fitted object, preventing damage by ensuring that the speed, acceleration, and acting forces remain within the safe limits defined by the fitting's load capacity and rigidity.
Smart Images

Figure 0007654691000002 
Figure 0007654691000003 
Figure 0007654691000004
Abstract
Description
[Technical field]
[0001] The present invention relates to a robot motion simulation device, a robot control device, and a robot motion simulation method. [Background technology]
[0002] Conventionally, it is known to determine whether the position of the tip of a tool is within a motion restriction area of any size set by coordinate values in a world coordinate system, and to restrict at least one of the robot's speed and acceleration if the position of the tip of the tool is within the motion restriction area (see, for example, Patent Document 1). [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2018-062026 A Summary of the Invention [Problem to be solved by the invention]
[0004] Industrial robots are equipped with various attachments such as end effectors. Since these attachments each have different load-bearing capacity and rigidity values, if the robot's operation is not adapted to the attachment, the attachment may be subjected to a large load and unexpectedly damaged depending on the robot's operation.
[0005] The technology described in the above patent documents is intended to limit at least one of the robot's speed and acceleration when a specific tool attached to the tip of the robot is within a restricted motion area, but does not envisage any restriction on the robot's motion based on attributes such as the load-bearing capacity or rigidity value of an attachment attached to the robot.
[0006] In order to adapt the robot's movements to accessories with various attributes that are attached to the robot, it is preferable to allow the user to set constraints on the robot's movements according to the attributes of the accessories. However, the technology described in the above patent document does not assume that the user will set constraints on the robot's movements according to the attributes of the accessories.
[0007] For this reason, the technology described in the above patent documents has the potential for the robot's movements to be incompatible with the attachment, resulting in the attachment being subjected to a load greater than expected and being damaged.
[0008] In addition, the attachments include tools such as end effectors attached to the tip of the robot, as well as attachments between the axes of the robot's joints. The technology described in the above patent documents does not assume any restriction of the robot's movement depending on the attachment's attachment position relative to the robot. For this reason, there is a possibility that the robot's movement will not match the attachments attached to the robot in various positions, and there is a problem that the attachments may be damaged by receiving a load greater than expected.
[0009] In one aspect, an object of the present invention is to provide a robot operation simulation device, a robot control device, and a robot operation simulation method that are capable of adapting the robot's operation to an attachment attached to the robot and suppressing damage to the attachment. [Means for solving the problem]
[0010] The gist of the present disclosure is as follows.
[0011] In one aspect of the present invention, a robot motion simulation device includes an acquisition unit that acquires a position of an attachment attached to a link connected to a joint of a robot having a joint that can rotate or move linearly with respect to the robot, and a constraint condition for at least one of a speed, an acceleration, and an acting force generated in the attachment when the robot moves, and a calculation unit that calculates the acquired position of the attachment with respect to the robot when the robot executes a motion. Based on locationThe device includes a calculation unit that calculates at least one of the velocity, acceleration, and acting force that is expected to occur in the attachment as a different value, and a comparison unit that compares at least one of the velocity, acceleration, and acting force calculated by the calculation unit with the constraint condition.
[0012] The vehicle may further include a determination unit that determines whether or not at least one of the velocity, acceleration, and acting force calculated by the calculation unit satisfies the constraint condition based on a result of the comparison by the comparison unit.
[0013] The determination unit may further include a display processing unit that, when it determines that at least one of the velocity, acceleration, and acting force calculated by the calculation unit does not satisfy the constraint condition, determines a portion of an operation program describing the operation of the robot that does not satisfy the constraint condition, and performs processing to display the portion of the operation program that does not satisfy the constraint condition on a display device.
[0014] The system may further include a correction instruction creation unit that creates a correction instruction for correcting the operation program so that at least one of the velocity, acceleration, and acting force calculated by the calculation unit satisfies the constraint condition when at least one of the velocity, acceleration, and acting force calculated by the calculation unit does not satisfy the constraint condition, and the display processing unit may perform processing to display the correction instruction on the display device.
[0015] The correction instruction creation unit may create a correction instruction for correcting the operation program so as to increase the speed or acceleration corresponding to the constraint condition within the range of the constraint condition when the speed or acceleration calculated by the calculation unit satisfies the constraint condition.
[0016] The calculation unit may calculate at least one of a velocity, an acceleration, and an acting force that is expected to be generated in the attachment when the robot performs an operation based on the modified operation program that has been modified based on the modification instructions, and the comparison unit may compare at least one of the velocity, acceleration, and acting force calculated by the calculation unit based on the modified operation program with the constraint condition.
[0017] The system may further include a modification unit that, when at least one of the velocity, acceleration, and acting force calculated by the calculation unit does not satisfy the constraint condition, modifies the operation program so that at least one of the velocity, acceleration, and acting force calculated by the calculation unit satisfies the constraint condition.
[0018] The modification unit may modify the operation program so as to increase the speed or acceleration corresponding to the constraint condition within the range of the constraint condition when the speed or acceleration calculated by the calculation unit satisfies the constraint condition. The robot may be a multi-joint robot having the axis at each of a plurality of the joints, and the attachment may be attached to the links connecting to adjacent joints or to the link at the most distal end of the robot.
[0019] In another aspect of the present invention, a robot control device includes the robot motion simulation device described above, and further includes a robot control unit that controls the motion of the robot.
[0020] In still another aspect of the present invention, a method for simulating the movement of a robot includes the steps of: acquiring a position of an attachment attached to a link connected to a joint of a robot having a rotational or translatory axis at a joint of the robot, and a constraint condition for at least one of a speed, an acceleration, and an acting force generated in the attachment when the robot moves; and calculating a constraint condition for the acquired position of the attachment relative to the robot when the robot executes a movement. Based on locationThe method includes a step of calculating at least one of the velocity, acceleration, and acting force that is expected to occur on the attachment as a different value, and a step of comparing the calculated at least one of the velocity, acceleration, and acting force with the constraint condition. Effect of the Invention
[0021] According to the present invention, it is possible to suppress damage to an attachment attached to the robot by adapting the robot's movement to the attachment. [Brief description of the drawings]
[0022] [Figure 1] 1 is a schematic configuration diagram of a robot system in which a robot operation simulation device is implemented according to one embodiment. [Diagram 2] FIG. 2 is a schematic configuration diagram of a control device. [Diagram 3] FIG. 2 is a functional block diagram of a processor. [Figure 4] 1A and 1B are schematic diagrams for explaining the attachment position and center of gravity position of an attachment with respect to a robot. [Diagram 5] 1A and 1B are schematic diagrams for explaining the attachment position and center of gravity position of an attachment with respect to a robot. [Figure 6] 13 is a schematic diagram showing display contents related to the modification of an operation program displayed on a display screen of a display device; FIG. [Figure 7] 4 is a flowchart for explaining the processing of a robot operation simulation method according to the present embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0023] Hereinafter, some embodiments of the present invention will be described with reference to the drawings. However, these descriptions are intended to merely exemplify preferred embodiments of the present invention, and are not intended to limit the present invention to such specific embodiments.
[0024] 1 is a schematic diagram of a robot system 1000 in which a robot operation simulation device is implemented according to one embodiment. The robot system 1000 includes a robot 100, a tool 200 attached to the tip of the robot 100, a control device 300 that controls the robot 100 and the tool 200, a display device 400, and a teaching pendant 500.
[0025] The robot 100 is a multi-joint robot, and has six joints in the example shown in FIG. 1. In the following, a multi-joint robot having rotatable axes at its joints will be exemplified as the robot 100, but the robot 100 may be any robot, such as a robot having linearly movable axes at its joints, a one-axis robot, or a delta robot. The robot 100 has a base 102, a rotating stage 104, a first arm 106, a second arm 108, and a wrist 110. Each of the rotating stage 104, the first arm 106, the second arm 108, and the wrist 110 is supported by an axis provided at the joint to which they are attached, and is operated by a servo motor driving the axis.
[0026] The base 102 is a member that serves as a base when the robot 100 is placed on the floor 1. The rotating stage 104 is attached to the top surface of the base 102 by a joint 112 so as to be rotatable about an axis that is provided perpendicular to one surface of the base 102.
[0027] One end of the first arm 106 is attached to the rotation stage 104 at a joint 114 provided on the rotation stage 104. In this embodiment, as shown in Fig. 1, the first arm 106 is rotatable at the joint 114 about an axis that is provided parallel to the surface of the base 102 on which the rotation stage 104 is attached.
[0028] One end of the second arm 108 is attached to the first arm 106 at a joint 116 provided on the other end of the first arm 106 opposite the joint 114. In this embodiment, as shown in Fig. 1, the second arm 108 is rotatable at the joint 116 about an axis that is provided parallel to the surface of the base 102 on which the rotation stage 104 is attached.
[0029] The wrist 110 is attached via a joint 118 to the tip of the second arm 108 on the opposite side to the joint 116. The wrist 110 has a joint 120, and is bendable at the joint 120 around an axis parallel to the axis of the joint 114 and the axis of the joint 116. Furthermore, the wrist 110 is rotatable at the joint 118 on a plane perpendicular to the longitudinal direction of the second arm 108 around an axis parallel to the longitudinal direction of the second arm 108 as the rotation center. Furthermore, the wrist 110 is configured such that a tool mounting surface (tool mounting portion) 122 at the tip of the wrist 110 on the opposite side to the joint 118 is rotatable at a joint 119. The rotation axis of the joint 120 is configured to be perpendicular to the rotation axis of the joint 118 and the rotation axis of the joint 119 at the same point.
[0030] The tool 200 is attached to the tool attachment surface 122. The tool 200 has a mechanism or device for performing an operation on the workpiece W. For example, the tool 200 may have a laser for processing the workpiece W, or may have a servo gun for welding the workpiece W. Alternatively, the tool 200 may have an end effector (robot hand) for gripping the workpiece W or a part to be assembled to the workpiece W.
[0031] The control device 300 is one aspect of a robot motion simulation device. The control device 300 is connected to the robot 100 via a communication line 302, and receives information indicating the operation status of servo motors that drive shafts provided at each joint of the robot 100 from the robot 100 via the communication line 302. The control device 300 controls the position and posture of each movable part of the robot 100 by controlling the servo motors based on the received information and information indicating the motion of the robot 100 received from a higher-level control device (not shown) or set in advance.
[0032] The display device 400 is composed of, for example, a liquid crystal display (LCD) or the like. The display device 400 displays information related to the modification of the operation program, which will be described later, based on a command from the control device 300. An operator inputs operations into the teaching operation panel 500. Through manual operation of the teaching operation panel 500, the operator creates, modifies, and registers the operation program of the robot 100, or sets various parameters, and also performs playback operation and jog feed of the robot 100 according to the operation program. The display device 400 and the teaching operation panel 500 may be configured integrally. The teaching operation panel 500 may also have operation input members such as a mouse and a keyboard.
[0033] 1, a coordinate system Σb fixed to a robot base (hereinafter referred to as the robot coordinate system) and a coordinate system Σf fixed to a tool mounting surface 122 (hereinafter referred to as the tool mounting surface coordinate system) are set in the robot system 1000. Within the control device 300, the position of the origin and the orientation of the tool mounting surface coordinate system Σf can be known at any time based on the specifications of the robot 100 such as the angles of the joints and the arm length of the robot 100.
[0034] The robot 100 operates according to an operation program. For example, when the tool 200 is an end effector, the robot 100 moves its tip from a first position (initial position) to a second position where the end effector can grip the workpiece W, and after gripping the workpiece W at the second position, moves the workpiece W to a third position to perform a predetermined processing (such as welding) on the workpiece W, according to the operation program. In these operations, the first to third positions (coordinates) and the speed and acceleration at which the robot 100 operates are described in the operation program.
[0035] When the robot 100 operates according to the operation program, an acting force (inertial force) is generated in the tool 200 attached to the tool attachment surface 122 at the tip of the robot 100. In addition, if the tool 200 is an end effector, when the workpiece W is gripped by the end effector, the workpiece W generates an acting force on the end effector when the robot 100 operates. The generated acting force may cause stress to concentrate on, for example, the base of the tool 200.
[0036] In addition to the tool 200, various attachments are attached to the robot 100, and some of these attachments are attached to a position other than the tip of the robot 100. Examples of attachments attached to a position other than the tip of the robot 100 include a wire, a clamping metal plate, a feeder, a terminal block, and an air solenoid valve. These attachments attached to a position other than the tip of the robot 100 are attached between the axes of the joints of the robot 100. When the robot 100 operates, an acting force is also generated on the attachments attached to a position other than the tip of the robot 100.
[0037] The filaments include cables, air tubes, and the like. The cables include, for example, a current supply cable for supplying power to the tool 200 at the tip of the robot 100 or a servo motor or the like provided at a joint, and a signal cable for sending a control signal to the tool 200. The air tube is, for example, a tube for supplying air to the tool 200 at the tip of the robot 100. The clamp sheet metal is a metal fitting for fixing these filaments along the first arm 106 and the second arm 108. When the tool 200 is a welding torch, the feeder supplies welding material to the welding torch. The terminal block is a block on which terminals for connecting the filaments to each other are fixed. The air solenoid valve is a valve for controlling the supply of air from the air tube to the tool 200.
[0038] If the acting force generated by the operation of the robot 100 is large, it is expected that the attached object may be damaged by the acting force. For this reason, it is preferable to operate the robot 100 so that the acting force generated is within a range according to the load capacity, rigidity value, etc. of the attached object. Since the magnitude of the acting force generated on the attached object is determined by the mass and acceleration of the attached object, it is preferable to limit the acceleration when the robot 100 operates to a predetermined threshold value or less so that the acting force falls within the range according to the load capacity, rigidity value, etc. of the attached object.
[0039] Regarding the speed at which the robot 100 operates, theoretically no acting force is generated as long as the robot 100 operates at a constant speed, but if the speed is high, there may be inconveniences. If the speed is high, the amount of air that the attachment or the workpiece W receives increases according to the operation of the robot 100, which may cause inconveniences. For example, if the object to be grasped by the end effector is fresh food, if the speed at which the robot 100 operates is high, the fresh food may be easily spoiled due to contact with more air. In addition, if the speed at which the robot 100 operates is high, a specific vibration may be generated in the robot 100. Therefore, it is preferable that the speed of the robot 100 is also limited to be equal to or less than a predetermined threshold. The predetermined threshold that specifies the upper limit of the speed may be determined based on the user's experience.
[0040] In view of the above, in this embodiment, the user specifies at least one of the constraint conditions (threshold values) among the speed, acceleration, and acting force acting on the attachment. In addition, the acting force acting on the attachment when the robot 100 operates varies depending on the attachment position relative to the robot 100 and the center of gravity of the attachment, so the user specifies position information indicating which part of the robot 100 the attachment is attached to and the center of gravity of the attachment. The center of gravity of the attachment is one aspect of the position of the attachment relative to the robot. Then, without actually operating the robot 100, at least one of the speed, acceleration, and acting force of the attachment is calculated from the operation information of the robot 100 by simulation, and it is determined whether or not the calculated value satisfies each constraint condition. Then, if at least one of the speed, acceleration, and acting force of the attachment does not satisfy the constraint condition, the operation program is modified so as to satisfy the constraint condition. As a result, when the robot 100 is controlled by the modified operation program, the speed, acceleration, or acting force of the robot 100 when it operates falls within the range of the constraint conditions, thereby preventing damage to attached items when the robot 100 operates.
[0041] The configuration of the control device 300 for realizing the above-mentioned processing will be described below. FIG. 2 is a schematic diagram of the control device 300. The control device 300 has a communication interface 310, a drive circuit 320, a memory 330, and a processor 340. The communication interface 310 includes, for example, a communication interface for connecting the control device 300 to a communication line 302 and a circuit for executing processing related to transmission and reception of signals via the communication line 302. The communication interface 310 receives information representing the operating status of the servo motor 130, such as a measured value of the rotation amount from an encoder for detecting the rotation amount of the servo motor 130, from the robot 100 via the communication line 302, and passes the information to the processor 340. Note that, although one servo motor 130 is representatively illustrated in FIG. 3, the robot 100 may have a servo motor for driving the axis of each joint.
[0042] The communication interface 310 also includes an interface circuit for connecting the processor 340 to the display device 400 or the teaching pendant 500, and a circuit for executing processing related to sending and receiving signals to and from the teaching pendant 500 or the display device 400, and the like.
[0043] The drive circuit 320 is connected to the servo motor 130 via a current supply cable, and supplies power to the servo motor 130 according to the torque, rotation direction, or rotation speed to be generated by the servo motor 130 under the control of the processor 340.
[0044] The memory 330 includes, for example, a readable and writable semiconductor memory (RAM: Random Access Memory), a read only semiconductor memory (ROM: Read Only Memory), a non-volatile memory, etc. Furthermore, the memory 330 may include a storage medium such as a semiconductor memory card, a hard disk, or an optical storage medium, and a device for accessing the storage medium.
[0045] The memory 330 stores various computer programs for controlling the robot 100, such as the above-mentioned operation program of the robot 100, which are executed by the processor 340 of the control device 300. Specifically, a system program supporting the basic functions of the robot 100 and the control device 300 is stored in the ROM of the memory 330. In addition, data related to the specifications and specifications of the robot 100, such as the arm length between each joint of the robot 100, is also stored in the ROM of the memory 330. In addition, the operation program of the robot (e.g., a spot welding program) taught according to an application and related setting data are stored in the non-volatile memory of the memory 330. In addition, the memory 330 stores information for controlling the operation of the robot 100 when the robot 100 is operated. In addition, the memory 330 stores information indicating the operating status of the servo motor 130 obtained from the robot 100 during the operation of the robot 100, and the like.
[0046] FIG. 3 is a functional block diagram of the processor 340 relating to a process of determining whether or not at least one of the speed, acceleration, and acting force of the robot 100 satisfies a constraint condition, correcting the operation program when the constraint condition is not satisfied, and controlling the robot 100 using the operation program. The processor 340 has an acquisition unit 341, a calculation unit 342, a comparison unit 343, a determination unit 344, a program correction unit 345, a display processing unit 346, and a robot control unit 347. The program correction unit 345 includes a correction instruction creation unit 345a and an automatic correction unit 345b. Each of these units of the processor 340 is, for example, a functional module realized by a computer program executed on the processor 340. Alternatively, each of these units may be implemented as a dedicated arithmetic circuit implemented in a part of the processor 340. The computer program for executing the processing of each unit of the processor 340 may be provided in a form recorded on a computer-readable recording medium such as a semiconductor memory, a magnetic recording medium, or an optical recording medium.
[0047] The processor 340, with the configuration shown in FIG. 3, calculates the speed, acceleration, or acting force generated when the robot 100 operates by simulation without actually operating the robot 100, and determines whether the constraint conditions are satisfied. If the constraint conditions are not satisfied, the processor 340 performs processing to correct the operation program. In the configuration example shown in FIG. 3, the processor 340 has a robot control unit 347, but the robot operation simulation device according to this embodiment may not control the robot 100, and in this case may not have the robot control unit 347. For example, the robot operation simulation device may be implemented in an electronic device that does not control the robot 100, such as a personal computer.
[0048] The acquisition unit 341 of the processor 340 acquires at least one of the speed, acceleration, and force constraint conditions of the wearable item input by the user operating the teaching operation panel 500. The constraint conditions are specified by the user based on the load-bearing capacity, rigidity value, etc. of the wearable item and are input from the teaching operation panel 500. For example, if the wearable item is a robot hand attached to the tip of the robot 100, the load-bearing capacity of the robot hand is F [N], the mass of the object to be transported (workpiece W) transported by the robot hand is m [kg], and the acceleration of the object to be transported is a [m / s 2 . Assuming that both the load-bearing capacity F and the acceleration a are positive values, since F>ma needs to be satisfied, the acceleration constraint condition is a <F / m. Here, the load-bearing capacity F of the robot hand is the load-bearing capacity only for the force generated by the object to be transported, excluding the force generated by the self-weight of the robot hand.
[0049] In addition, the acquisition unit 341 acquires information about the wearable item input by the user operating the teaching operation panel 500. The information about the wearable item includes the attachment position of the wearable item to the robot 100, the mass of the wearable item, and the center-of-gravity position of the wearable item. The attachment position is the position on the robot 100 where the wearable item is attached. For example, it is the position (coordinates) of the wearable item with respect to the axis closest to the wearable item on the pedestal 102 side. The center-of-gravity position is the coordinates viewed from the attachment position (coordinates with the attachment position as the origin).
[0050] Figures 4 and 5 are schematic diagrams for explaining the attachment position and center-of-gravity position of the wearable item 600 with respect to the robot 100, and are diagrams showing the axes of the respective joints and the arm of the robot 100 in a simplified manner. In Figures 5 and 6, the six axes of the respective joints of the robot 100 are shown in order as the first axis a1, the second axis a2, the third axis a3, the fourth axis a4, the fifth axis a5, and the sixth axis a6 from the pedestal 102 toward the tip of the robot 100. The first axis a1 is the axis of the joint 112, the second axis a2 is the axis of the joint 114, the third axis a3 is the axis of the joint 116, the fourth axis a4 is the axis of the joint 118, the fifth axis a5 is the axis of the joint 120, and the sixth axis a6 is the axis of the joint 119.
[0051] The attachment 600 is attached to a link that is connected to a joint of a robot having a rotatable or translatable shaft at a joint, and that is rotatable or translatable with respect to the joint. Note that "attaching the attachment to the link" includes both a case where the attachment 600 is directly attached to the link and a case where the attachment 600 is attached to the link via another part. For example, when the attachment 600 is the above-mentioned filament, the attachment 600 is attached to the link via a clamp metal plate, and such a mode is also included in "attaching the attachment to the link". In the example of the articulated robot shown in FIG. 1, the attachment 600 is attached to the tip side of the robot 100 from the sixth axis a6 such as the tool mounting surface 122, or is attached between the i-th axis and the i+1-th axis of the robot 100. When the attachment 600 is attached to the tip side of the robot 100 relative to the sixth axis a6, the attachment 600 is attached on a link (including on the tool mounting surface 122) that connects to the tip side of the robot 100 relative to the joint 119 of the sixth axis a6. When the attachment 600 is attached between the i-th axis and the i+1-th axis, the attachment 600 is attached on a link (for example, on the first arm 106 or the second arm 108) that connects to the joint of the i-th axis and the i+1-th axis. Note that i is a natural number, and the maximum value of i is a value obtained by subtracting 1 from the number of joints (number of axes) of the robot 100. For example, in the case of the six-axis robot 100 shown in FIG. 1, FIG. 4, and FIG. 5, i=1, 2, 3, 4, 5.
[0052] Fig. 4 shows an example in which an attachment 600 is attached to the tool attachment surface 122, similar to Fig. 1, and the attachment 600 corresponds to the tool 200 in Fig. 1. Fig. 5 shows an example in which the attachment 600 is attached between the third axis a3 and the fourth axis a4. That is, Fig. 5 corresponds to the case where i=3.
[0053] In FIG. 4, the attachment 600 is attached at position P1 to the tool attachment surface 122 provided on the link connected to the tip side of the robot 100 with respect to the sixth axis a6. In FIG. 4, P2 indicates the position of the center of gravity of the attachment 600. In FIG. 5, the attachment 600 is attached to the second arm 108 of the robot 100 at position P3, and P4 indicates the position of the center of gravity of the attachment 600. If the attachment position is the position with respect to the axis closest to the base 102 side, in the case of FIG. 4, the attachment position P1 is the position with respect to the sixth axis a6, and in the case of FIG. 5, the attachment position P3 is the position with respect to the third axis a3. In addition, the position of the center of gravity is a coordinate as seen from the attachment position, and for example, a value that is predetermined according to the specifications, shape, etc. of the attachment 600, or a value calculated based on the density, shape, etc. of the attachment 600 can be used.
[0054] 4, the user inputs the mounting position P1 and the center of gravity P2 as information on the attachment 600 through the teaching operation panel 500. In the case of Fig. 5, the user inputs the center of gravity P3 and the center of gravity P4 of the attachment 600 through the teaching operation panel 500. The input mounting position and center of gravity are acquired by the acquisition unit 341.
[0055] The calculation unit 342 of the processor 340 calculates at least one of the velocity, acceleration, and acting force of the attachment that occurs when the robot 100 executes an operation. If the attachment 600 is attached between the i-th axis and the i+1-th axis, the relationship between the angular velocity of each of the first axis to the i-th axis and the velocity of the center of gravity and the attitude angular velocity of the attachment is expressed by the Jacobian matrix J. The Jacobian matrix J is obtained by partially differentiating the forward kinematic relationship between "the angle of each axis from the first axis to the i-th axis (the angle of each axis on the base 102 side of the attachment), the positional relationship between each axis (parameters determined from the specifications of the robot 100, such as the lengths of the first arm 106 and the second arm 108), the position of the center of gravity of the attachment as viewed from the center of the i-th axis" and "the position of the center of gravity of the attachment as viewed from the origin of the robot coordinate system Σb" based on information input by the user. For parameters determined from the specifications of the robot 100, such as the lengths of the first arm 106 and the second arm 108, values stored in advance in the ROM of the memory 303 are used. The position of the center of gravity of the attachment viewed from the center of the i-th axis is obtained from the attachment position of the attachment to the robot 100 and the position of the center of gravity of the attachment, both acquired by the acquisition unit 341.
[0056] Specifically, if the position and orientation of the center of gravity of the attachment viewed from the origin of the robot coordinate system Σb is r, the angle from the first axis to the i-th axis is θ, and the Jacobian matrix is J, then the small displacement of the center of gravity of the attachment and the small rotation angle of its orientation are functions of the small rotation angles of each axis and are expressed by the following well-known equation (1). Furthermore, by differentiating both sides of equation (1) with respect to time, the following equation (2) is obtained, which gives the relationship between the "angular acceleration of each axis from the first axis to the i-th axis" and the "acceleration and orientation acceleration of the center of gravity of the attachment". Note that r is a vector having six components of the position and orientation with respect to the three axes x, y, and z of the robot coordinate system Σb. For example, in the example of FIG. 5, r represents the position (x, y, z) and orientation (φ x ,φ y ,φ z ) vector. θ is the angle from the first axis to the i-th axis (θ1, θ2, . . . , θ i ) is a vector whose components are the center of gravity P4 position and orientation (vector r) relative to the robot coordinate system Σb. From forward kinematics, the angle from the first axis to the i-th axis (θ1, θ2, . . . , θi ), the positional relationship between the axes, and the position of the center of gravity P4 of the attachment as seen from the center of the i-th axis, so by partially differentiating this, the Jacobian matrix is obtained. In the example of Figure 5, i=3.
[0057]
number
[0058] As described above, the velocity, acceleration, attitude angular velocity, and attitude angular acceleration of the center of gravity of the attachment can be calculated from the angular velocity and angular acceleration of each of the first axis to the i-th axis by using the Jacobian matrix J. The calculation unit 342 calculates the velocity, acceleration, attitude angular velocity, and attitude angular acceleration of the center of gravity of the attachment from the angular velocity and angular acceleration of each of the first axis to the i-th axis according to the relationship shown in equations (1) and (2).
[0059] At this time, the calculation unit 342 can obtain information on the angular velocity of each of the first to i-th axes from the operation program that defines the operation of the robot 100, and can also obtain information on the angular acceleration of each of the first to i-th axes. For example, the calculation unit 342 can calculate the angular velocity and angular acceleration of each of the first to i-th axes from the angular velocity and angular acceleration information of the tip of the robot 100 described in the operation program, and calculate the velocity, acceleration, attitude angular velocity, and attitude angular acceleration of the center of gravity position of the attachment based on this. Alternatively, if the angular velocity and angular acceleration information of each of the first to i-th axes is described in the operation program, the calculation unit 342 may calculate the velocity, acceleration, attitude angular velocity, and attitude angular acceleration of the center of gravity position of the attachment based on this.
[0060] In addition, the calculation unit 342 calculates the acting force acting on the attachment by multiplying the calculated acceleration of the attachment by the mass of the attachment.
[0061] In the above description, the attachment 600 has been described as being attached between the i-th axis and the (i+1)-th axis, but even if the attachment 600 is attached closer to the tip of the robot 100 than the sixth axis a6, the calculation unit 342 similarly calculates the center of gravity velocity, acceleration, attitude angular velocity, and attitude angular acceleration of the attachment 600 at the center of gravity position of the attachment 600. For example, in the example of FIG. 4, the position and attitude (vector r) of the center of gravity position P2 with respect to the robot coordinate system Σb are calculated from the forward kinematics by the angle (θ1, θ2, . . . , θ i+1 ) and the positional relationship between the axes and the position of the center of gravity P2 of the attachment as seen from the center of the (i+1)th axis. By partially differentiating this, the Jacobian matrix is obtained. Furthermore, in the case where the robot 100 is a delta robot (parallel robot), the calculation unit 342 can calculate the velocity, acceleration, attitude angular velocity, and attitude angular acceleration of the center of gravity of the attachment from parameters (angular velocity, angular acceleration) representing the movement of the actuators equipped in the delta robot, the attachment position of the attachment relative to the links connected to the joints of the delta robot, and the center of gravity of the attachment, in the same manner as in the case of a multi-joint robot. In this case, the links connected to the joints include the traveling plate of the delta robot. As for the relationship of the forward kinematics of the delta robot, a known one can be appropriately used. For example, in the case of a 6-axis parallel robot, the Jacobian matrix and forward kinematics described in the document "Development of a 6-degree-of-freedom high-speed parallel robot HEXA," Uchiyama Masaru et al., Journal of the Robotics Society of Japan, Vol. 12, No. 3, pp. 451-458, 1994, may be applied.
[0062] The comparison unit 343 of the processor 340 compares the speed, acceleration, or acting force of the attachment calculated by the calculation unit 342 with the speed, acceleration, or acting force of the constraint condition acquired by the acquisition unit 341. In addition to comparing whether the speed, acceleration, or acting force of the attachment calculated by the calculation unit 342 is greater than the speed, acceleration, or acting force of the constraint condition acquired by the acquisition unit 341, the comparison unit 343 compares the value calculated by the calculation unit 342 with the value of the constraint condition, such as what percentage the speed, acceleration, or acting force of the attachment calculated by the calculation unit 342 is of the speed, acceleration, or acting force of the constraint condition acquired by the acquisition unit 341. When the operation program is modified as described below, the comparison unit 343 compares the speed, acceleration, or acting force of the attachment calculated by the calculation unit 342 based on the modified program with the speed, acceleration, or acting force of the constraint condition acquired by the acquisition unit 341.
[0063] The determination unit 344 of the processor 340 determines whether or not the speed, acceleration, or acting force of the attachment calculated by the calculation unit 342 satisfies the speed, acceleration, or acting force of the constraint condition acquired by the acquisition unit 341 based on the result of the comparison by the comparison unit 343. The determination unit 344 determines that the constraint condition is not satisfied when the speed, acceleration, or acting force of the attachment calculated by the calculation unit 342 is greater than the speed, acceleration, or acting force of the constraint condition acquired by the acquisition unit 341. The determination unit 344 may also determine that the constraint condition is not satisfied when the speed, acceleration, or acting force of the attachment calculated by the calculation unit 342 exceeds a predetermined percentage (e.g., 80%) of the speed, acceleration, or acting force of the constraint condition acquired by the acquisition unit 341.
[0064] Furthermore, when the determination unit 344 determines that the speed, acceleration, or acting force of the attachment calculated by the calculation unit 342 does not satisfy the constraint condition, the determination unit 344 further determines a portion in the operation program that does not satisfy the constraint condition. For example, the determination unit 344 determines, based on the speed or acceleration of the attachment resulting from the movement (angular velocity, angular acceleration) of each axis when the tip of the robot 100 is moved at the speed or acceleration described in the operation program, a specific portion (specific line) in the operation program that describes an operation that requires the attachment to move at a speed, acceleration, or acting force that exceeds the constraint condition, as a portion that does not satisfy the constraint condition.
[0065] The program correction unit 345 of the processor 340 performs processing to correct the operation program of the robot 100 when the speed, acceleration, or acting force of the attachment calculated by the calculation unit 342 does not satisfy the speed, acceleration, or acting force of the constraint condition acquired by the acquisition unit 341.
[0066] There are two possible methods for correcting the operation program: a method in which the user manually corrects the operation program, and a method in which the processor 340 automatically corrects the operation program. Therefore, the process for correcting the operation program performed by the program correction unit 345 includes a process for creating a correction instruction for instructing the user to correct the operation program, and a process for automatically correcting the operation program. When the user manually corrects the operation program, the correction instruction creation unit 345a of the program correction unit 345 creates a correction instruction for correcting the operation program so that the speed, acceleration, or acting force of the attachment satisfies the constraint condition. The automatic correction unit 345b of the program correction unit 345 automatically corrects the operation program without the user's help so that the speed, acceleration, or acting force of the attachment satisfies the constraint condition. The user can specify whether to correct the operation program manually or automatically by operating the teaching operation panel 500.
[0067] Furthermore, if the speed, acceleration, or acting force of the attachment calculated by the calculation unit 342 is smaller than the constraint conditions based on the result of the comparison by the comparison unit 343 and there is a margin for the constraint conditions, the automatic correction unit 345b can correct the operation program so as to increase the speed, acceleration, or acting force of the attachment within the range of the constraint conditions. This makes the operation of the robot 100 faster within the range of the constraint conditions. The user can specify, by operating the teaching operation panel 500, that the operation of the robot 100 be made faster within the range of the constraint conditions.
[0068] Similarly, based on the result of the comparison by the comparison unit 343, if the speed, acceleration, or acting force of the attachment calculated by the calculation unit 342 is smaller than the constraint conditions and there is a margin for the constraint conditions, the correction instruction creation unit 345a can create a correction instruction to correct the operation program so as to increase the speed, acceleration, or acting force of the attachment within the range of the constraint conditions.
[0069] An example of automatic correction of an operation program based on the speed and acceleration will be described in detail below. In the following example, the speed or acceleration is evaluated in absolute value and the operation program is corrected. The basic idea is that based on the above-mentioned formula (1), when the speed of the center of gravity of the attachment shown on the left side of formula (1) (first-order differential of vector r) is increased or decreased by x%, the angular velocity of each axis on the right side of formula (1) (first-order differential of angle θ) is increased or decreased by x%. Therefore, the speed of the tip of the robot 100 described in the operation program is corrected to increase or decrease by x%.
[0070] Furthermore, based on the above-mentioned formula (2), when the acceleration of the center of gravity of the attachment shown on the left side of formula (2) (second-order differential value of vector r) is increased or decreased by x%, both the angular velocity of each axis (first-order differential value of angle θ) and the angular acceleration of each axis (second-order differential value of angle θ) on the right side of formula (2) are increased or decreased by x%. Therefore, the acceleration of the tip of the robot 100 described in the operation program is corrected to increase or decrease by x%. However, in this case, since there is a possibility that the velocity of the center of gravity of the attachment will not satisfy the constraint condition, it is necessary to take the velocity constraint condition into consideration when increasing the acceleration.
[0071] First, a case where the operation program is modified based on the speed constraint condition will be described. Here, the threshold value of the speed constraint condition of the attachment acquired by the acquisition unit 341 is set to v lim The velocity of the attachment calculated by the calculation unit 342 is v act The determination unit 344 determines whether v act -v lim If ≦0, the constraint is satisfied, and v act -v lim If the constraint condition is not satisfied, the automatic correction unit 345b determines that the constraint condition is not satisfied. act -v lim ) / v act )*100[%] to reduce the angular velocity of each axis.
[0072] Furthermore, when the speed constraint condition is satisfied, the automatic correction unit 345b can increase the speed to speed up the movement of the robot 100. In this case, the automatic correction unit 345b can calculate the speed of the robot 100 by |(v lim -v act ) / v act Increase the angular velocity of each axis by |*100[%].
[0073] Next, a case where the operation program is modified based on the constraint condition of acceleration will be described. Here, the threshold value of the constraint condition of the acceleration of the attachment acquired by the acquisition unit 341 is a lim The acceleration of the attachment calculated by the calculation unit 342 is a act The determination unit 344 determines whether act -a lim If ≦0, the constraint is satisfied, and aact -a lim If the constraint condition is not satisfied, the automatic correction unit 345b determines that the constraint condition is not satisfied. act -a lim ) / a act )*100[%] to reduce the angular velocity and angular acceleration of each axis.
[0074] Furthermore, if the constraint on acceleration is satisfied, the automatic correction unit 345b can increase the speed and acceleration to speed up the movement of the robot 100. In this case, the automatic correction unit 345b can calculate the speed and acceleration of the robot 100 by calculating (v lim -v act ) / v act ≧(a lim -a act ) / a act In this case, the margin for the constraint is smaller for acceleration than for velocity, so based on acceleration, ((a lim -a act ) / a act )*100[%] to increase the angular velocity and angular acceleration of each axis.
[0075] In addition, the automatic correction unit 345b lim -v act ) / v act |<(a lim -a act ) / a act If so, the margin for the constraint is smaller for the velocity than for the acceleration, so based on the velocity, |(v lim -v act ) / v act However, if there is no speed constraint, the automatic correction unit 345b increases the angular velocity and the angular acceleration of each axis by |*100[%]. lim -a act ) / a act )*100[%]. Also, since there is a possibility that the speed of the attachment may not satisfy the constraints as mentioned above, the speed constraints are taken into account when increasing the acceleration.
[0076] When the user manually modifies the operation program, the modification instruction creating unit 351a creates a modification instruction including a percentage by which the speed or acceleration should be decreased or increased.
[0077] The display processing unit 346 of the processor 340 performs processing for displaying content related to the correction of the operation program on the display device 400. For example, the display processing unit 346 performs processing for displaying the operation program of the robot 100 stored in the memory 330 on the display device 400. The display processing unit 346 also performs processing for displaying on the display device 400 the parts (lines) in the operation program that do not satisfy the constraint conditions, which are determined by the determination unit 344. Furthermore, the display processing unit 346 performs processing for displaying on the display device 400 the correction instructions created by the correction instruction creation unit 345a. To display these, the display processing unit 346 performs processing for emitting light from pixels of corresponding parts on the display screen of the display device 400.
[0078] 6 is a schematic diagram showing the display contents related to the correction of the operation program, displayed on the display screen 402 of the display device 400. As shown in Fig. 6, an operation program 404 is displayed on the display screen 402. The first line of the operation program 404 contains the position of the tip of the robot 100 (the position of the axis located at the tip) P[1], the velocity A[mm / s], and the acceleration (Acc) E[mm / s 2 6 shows the position, velocity, and acceleration of the tip of the robot 100. Similarly, the second to fourth lines of the operation program 404 show the position, velocity, and acceleration of the tip of the robot 100. The operation of the robot 100 transitions in sequence from the first line. According to this operation program 404, for example, when the tip of the robot 100 is located at P[2], the tip of the robot 100 moves at a velocity B and an acceleration F. Note that, although the velocity and acceleration of the displacement of the robot 100 in the operation program 404 are shown in FIG. 6, the angular velocity and angular acceleration of the posture may also be displayed in the same way. The velocity and acceleration of each axis may also be shown in the operation program 404.
[0079] When the robot 100 operates according to the conditions described in each line of the operation program 404, if the constraint conditions specified by the user are not satisfied, the line describing the destination point after movement is highlighted. FIG. 6 shows a case where the acceleration calculated by the calculation unit 342 does not satisfy the constraint conditions when the tip of the robot 100 moves from position P[2] to P[3], and in this case, the third line of the operation program 404 is highlighted. As described above, the line in the operation program 404 that does not satisfy the constraint conditions is determined by the determination unit 344. Then, the display processing unit 346 performs processing for highlighting. The highlighting is performed in a color different from the background or character color on the display screen 402. This allows the user to visually recognize on the display screen 402 which line in the operation program 404 does not satisfy the constraint conditions.
[0080] Moreover, above the display position of the operation program 404, a correction instruction message 406 is displayed stating, "The third line does not satisfy the constraint condition of the acceleration. The acceleration needs to be reduced by XX%." The correction instruction message 406 is generated by the correction instruction generating unit 345a. This makes it possible to show the user which condition in the operation program 404 does not satisfy and how the operation program 404 should be corrected, and to encourage the user to correct the operation program 404. Although FIG. 6 shows a case where the acceleration of the operation program does not satisfy the constraint condition, a similar message 406 is also displayed when the speed of the operation program 404 does not satisfy the constraint condition.
[0081] Also displayed below the operation program 404 are an automatic correction button 408 for the user to select automatic correction, and a speed-up button 410 for the user to select speeding up the robot 100 when the constraint conditions are satisfied. The user can select automatic correction by operating the teaching operation panel 500 to move the cursor on the display screen 402 to the automatic correction button 408 and pressing (clicking) the automatic correction button 408. When automatic correction is selected, the automatic correction unit 345b automatically corrects the operation program 404, and the highlighted line (the third line) in the operation program 404 is automatically rewritten so as to satisfy the constraint conditions.
[0082] Similarly, when the constraint conditions are satisfied, the user can select to speed up the operation of the robot 100 while satisfying the constraint conditions by operating the teaching operation panel 500 to align the cursor on the display screen 402 with the speed-up button 410 and pressing the speed-up button 410.
[0083] 6 illustrates an example of the message 406 when the constraint conditions are not satisfied, but when the constraint conditions are satisfied, the message 406 encouraging the user to increase the speed may be displayed. In this case, for example, a message 406 such as "The acceleration constraint conditions are satisfied, and the acceleration can be increased by XX%" is displayed. The user can increase the speed of the robot 100 by clicking the speed-up button 410 or modifying the operation program 404 based on the message 406 encouraging the user to increase the speed.
[0084] The robot control unit 347 of the processor 340 controls the servo motors of the joints based on the operation program, thereby controlling the operation of the robot 100. When the operation program is modified, the robot control unit 347 controls the operation of the robot 100 according to the modified operation program.
[0085] Next, the processing of the robot motion simulation method according to this embodiment will be described with reference to the flowchart of Fig. 7. The processing shown in Fig. 7 is performed at each predetermined control period by the processor 340 of the control device 300. As a prerequisite for performing the robot motion simulation, a user creates an operation program and stores it in the memory 330.
[0086] First, the acquisition unit 341 of the processor 340 acquires constraint conditions related to the attachment and information related to the attachment (mass, attachment position, center of gravity position, etc. of the attachment) (step S10). After acquiring the constraint conditions related to the attachment and the information related to the attachment, the processor 340 starts a motion simulation of the robot 100 (step S12).
[0087] Next, the calculation unit 342 of the processor 340 uses the Jacobian matrix to calculate the speed, acceleration, and acting force of the attachment from the information (speed, acceleration) of each axis of the robot 100 (step S14). Next, the comparison unit 343 compares the constraint conditions with the speed, acceleration, or acting force of the attachment calculated in step S14, and the determination unit 344 determines whether the constraint conditions are satisfied (step S16).
[0088] If it is determined in step S16 that the constraints are not satisfied, the correction instruction creation unit 345a creates correction instructions to allow the user to correct the operation program, and the display processing unit 346 displays the correction instructions together with the inappropriate parts of the operation program on the display screen of the display device 400 (step S18).
[0089] Next, it is determined whether the automatic correction button 408 has been pressed (step S20), and if the automatic correction button 408 has been pressed, the automatic correction unit 345b automatically corrects the operation program (step S22). After step S22, the processing in this control cycle ends.
[0090] Furthermore, if the automatic correction button 408 is not pressed in step S20, the user manually corrects the operation program, so the correction details of the operation program input by the user from the teaching operation panel 500 are obtained (step S28), and the operation simulation processing returns to step S12 and subsequent steps.
[0091] Furthermore, if it is determined in step S16 that the constraint conditions are satisfied, it is determined whether or not the speed-up button 410 has been pressed (step S24), and if the speed-up button 410 has been pressed, the automatic correction unit 345b automatically corrects the operation program so as to speed up the operation of the robot 100 (step S26). After step S26, the processing in this control cycle ends. Furthermore, if the speed-up button 410 has not been pressed in step S24, the processing in this control cycle ends. Note that in step S26, instead of the automatic correction unit 345b automatically correcting the operation program, the user may manually correct the operation program based on the correction instruction created by the correction instruction creation unit 345a.
[0092] The robot system 1000 may include a plurality of robots 100 and a plurality of control devices 300 corresponding to the plurality of robots 100. Each of the plurality of control devices 300 calculates at least one of the speed, acceleration, and acting force generated in the attachment of the corresponding robot 100, and compares the calculation result with the constraint condition. The plurality of control devices 300 may be connected to each other via a network, and may be further connected via a network to a higher-level device that receives the comparison results by the plurality of control devices 300. The higher-level device may perform failure prediction based on the received comparison results of each of the control devices 300. Even if the speed, acceleration, or acting force of the attachment of each of the robots 100 satisfies the constraint condition, the higher-level device can recognize the possibility of failure in the attachment of each of the robots 100 by obtaining information such as the degree of margin of the speed, acceleration, or acting force of the attachment of each of the robots 100 with respect to the constraint condition, and can perform failure prediction for each of the robots 100.
[0093] As described above, according to this embodiment, whether or not the speed, acceleration, or acting force of the attachment satisfies the constraint conditions is determined by simulation without actually operating the robot 100, and if the constraint conditions are not satisfied, the operation program is modified. Therefore, by modifying the operation program in advance so as to satisfy the constraint conditions, unexpected damage to the attachment when the robot 100 is actually operated is suppressed. In addition, since the constraint conditions of the attachment and information on the attachment such as the mass, attachment position, and center of gravity position of the attachment are set by the user, it is possible to create and modify the operation program to suit various attachments attached to the robot 100, so that it is not necessary to select the attachment according to the constraints of the operation of the robot 100 when selecting the attachment. This makes it possible to easily create an operation program that satisfies the constraint conditions for various different attachments.
[0094] All examples and specific terms used herein are intended for instructional purposes to help the reader understand the concepts contributed by the inventor to the advancement of the present invention and the technology, and should not be construed as limiting the present invention to any example configuration, specific examples and conditions used herein, with respect to showing the advantages and disadvantages of the present invention. Although the embodiments of the present invention have been described in detail, it should be understood that various changes, substitutions and alterations can be made thereto without departing from the spirit and scope of the present invention. [Explanation of symbols]
[0095] 1 Bed 100 Robots 102 Pedestal 104 Rotating Stage 106 First Arm 108 Second Arm 110 List 112,114,116,118,119,120 Joints 122 Tool mounting surface 130 Servo motor 200 Tools 300 Control device 302 Communication lines 310 Communication Interface 320 Drive circuit 330 Memory 340 Processor 341 Acquisition Department 342 Calculation Department 343 Comparison Section 344 Judgment section 345 Program Modification Section 345a Correction Instructions Creation Department 345b Automatic correction section 346 Display Processing Unit 347 Robot Control Unit 400 display device 402 Display screen 404 Operation Program 406 Message 408 Autocorrect Button 410 Speed Up Button 500 Teaching Operation Panel 600 Wear 1000 Robot System
Claims
1. an acquisition unit that acquires a position of an attachment attached to a link connected to a joint of a robot having a rotational or linear axis at a joint, relative to the robot, and a constraint condition for at least one of a speed, an acceleration, and an acting force generated in the attachment when the robot operates; a calculation unit that calculates at least one of a velocity, an acceleration, and an acting force that is expected to be generated in the attachment as a different value for each position based on the acquired position of the attachment relative to the robot when the robot performs an action; A comparison unit that compares at least one of the velocity, acceleration, and acting force calculated by the calculation unit with the constraint condition; A robot motion simulation device comprising:
2. 2. The robot motion simulation device according to claim 1, further comprising a determination unit that determines whether or not at least one of the velocity, acceleration, and acting force calculated by the calculation unit satisfies the constraint condition based on a result of the comparison by the comparison unit.
3. when it is determined that at least one of the velocity, acceleration, and acting force calculated by the calculation unit does not satisfy the constraint condition, the determination unit further determines a portion that does not satisfy the constraint condition in an operation program that describes an operation of the robot; 3. The robot operation simulation device according to claim 2, further comprising a display processing unit that performs processing for displaying, on a display device, a portion of said operation program that does not satisfy said constraint conditions.
4. a correction instruction creating unit that creates a correction instruction for correcting the operation program so that at least one of the velocity, acceleration, and acting force calculated by the calculation unit satisfies the constraint condition when at least one of the velocity, acceleration, and acting force calculated by the calculation unit does not satisfy the constraint condition, The robot motion simulation device according to claim 3 , wherein the display processing unit performs processing for displaying the correction instruction on the display device.
5. 5. The robot motion simulation device according to claim 4, wherein, when the speed or acceleration calculated by the calculation unit satisfies the constraint condition, the correction instruction creation unit creates a correction instruction for correcting the motion program so as to increase the speed or acceleration corresponding to the constraint condition within a range of the constraint condition.
6. the calculation unit calculates at least one of a velocity, an acceleration, and an acting force that is expected to be generated in the attachment when the robot executes an action based on the modified action program modified based on the modification instruction; 5. The robot motion simulation device according to claim 4, wherein the comparison unit compares at least one of the velocity, acceleration, and acting force calculated by the calculation unit based on the modified motion program with the constraint condition.
7. 4. The robot motion simulation device according to claim 3, further comprising a correction unit that corrects the motion program when at least one of the velocity, acceleration, and acting force calculated by the calculation unit does not satisfy the constraint condition so that at least one of the velocity, acceleration, and acting force calculated by the calculation unit satisfies the constraint condition.
8. 8. The robot motion simulation device according to claim 7, wherein, when the speed or acceleration calculated by the calculation unit satisfies the constraint condition, the modification unit modifies the motion program so as to increase the speed or acceleration corresponding to the constraint condition within the range of the constraint condition.
9. 9. The robot motion simulation device according to claim 1, wherein the robot is a multi-joint robot having the axis at each of a plurality of the joints, and the attachment is attached to the link connecting to each of the adjacent joints or to the link at the forefront of the robot.
10. A robot operation simulation device according to any one of claims 1 to 9, Further, a robot control unit for controlling the operation of the robot is provided. Robot control device.
11. A step of acquiring a position of an attachment attached to a link connected to a joint of a robot having a rotational or translational axis at a joint, relative to the robot, and a constraint condition for at least one of a velocity, an acceleration, and an acting force generated in the attachment when the robot operates; calculating at least one of a velocity, an acceleration, and an acting force that is expected to occur in the attachment as a different value for each position based on the acquired positions of the attachment relative to the robot when the robot performs an action; comparing at least one of the calculated velocities, accelerations, and forces with the constraints; A method for simulating robot operation comprising:
Citation Information
Patent Citations
Working program generating system
JP1989291307A
Numerical control device
JP1996066844A
Device and method for revising program of industrial robot
JP2016087755A
Robot control device with function for restricting speed and acceleration of robot
JP2018062026A
Industrial robot, and method for imparting safety control of the same
JP2020114623A