Control device and computer
Patent Information
- Application Number
- JP2024558538
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Filing Date
- 2025-05-07
- Publication Date
- 2025-07-24
AI Technical Summary
Industrial robots face challenges in safely navigating shared workspaces with humans due to the complexity of risk assessment and avoidance movements, which can lead to inefficient operation and increased cycle time, especially when handling various effectors with different properties and tasks.
A control device with a processor and storage unit that generates and controls avoidance routes for a robot based on sensor outputs and effector constraints, allowing for user-input settings and simulations to ensure safe and efficient operation by constraining changes in the position and orientation of the robot's effector.
The solution enables the robot to perform safe and efficient avoidance maneuvers, reducing the risk of contact and maintaining optimal effector posture, thereby improving cycle time and operational accuracy.
Abstract
Description
Control Devices and Computers
[0001] The present disclosure relates to a control device and a computer.
[0002] Collaborative robots that can work in a shared workspace with humans and have a safety function that detects contact with humans or objects and stops the robot are becoming increasingly common. Collaborative robot systems have been developed that use cameras, thermography, distance sensors, capacitance sensors, and the like to detect the approach of a human or object that needs to be avoided, generate an avoidance path, and avoid the object without contact. For example, see Patent Document 1.
[0003] In industrial robots, a function is generally known in which operational or inaccessible areas are set in advance to prevent the robot from interfering with the surrounding environment, and the robot is allowed to operate only within the non-interfering range. A function is also known that performs detailed interference calculations using 3D models of the robot and the surrounding environment. See, for example, Patent Document 2. For industrial robots, a technique is also known for generating a path so that the protrusions of the effector do not point toward a person or the like. See, for example, Patent Document 3.
[0004] JP 2019-206080 A JP 2017-094430 A JP 2016-196069 A
[0005] When teaching a robot, a sufficient risk assessment is required to ensure that the robot can operate safely. Basically, risk is reduced by limiting the spatial range of a robot's movement. When an approaching person or object is detected and an avoidance path is recalculated and the robot operates, a risk assessment that includes the avoidance action is required. Collaborative robots that can stop safely upon contact reduce risk to begin with. However, risk assessment that includes the robot's avoidance action can involve a huge number of considerations, as avoidance actions vary widely.
[0006] For example, if there is an appropriate range for the effector's posture, position, etc. to safely perform its function, it is desirable for the robot's avoidance behavior to satisfy this range. For example, if the avoidance behavior does not reflect the effector's characteristics, avoidance may lead to undesirable situations such as dropping a workpiece or other target. Alternatively, avoidance may reduce the stability of the robot's work. Effectors attached to the tip of a robot vary widely, including hands and suction cups for handling objects, welding torches, and inspection scanners. Therefore, it is desirable for the robot's behavior to be tailored to the effector. For example, setting the effector's posture to a specific state limits the number of avoidance path options, making it inefficient and potentially reducing cycle time. On the other hand, using physical simulation technology to calculate contact, tipping of objects including workpieces, etc. in real time and controlling the robot using the calculation results increases the computational cost. Technology is needed that allows configuration based on the effector type, the required function of the effector, the type of target, the type of task, and the functions required for the task.
[0007] A control device according to a first aspect of the present disclosure includes a processor and a memory unit that stores effector constraints, which are constraints on changes in at least one of the position and posture of a robot's effector as viewed from a predetermined reference coordinate, and the processor performs a generation process that generates an avoidance path based at least on the result of detection of an object to be avoided based on sensor output and the effector constraints, and a control process that causes the robot to operate along the generated avoidance path.
[0008] A control device of a second aspect of the present disclosure includes a processor, a memory unit, and a display device that displays a setting screen for setting a robot to perform avoidance operations based on sensor output, wherein the display device is capable of displaying a setting screen for effector constraints, which are constraints on changes in at least one of the position and posture of the robot's effector as viewed from a predetermined reference coordinate, and the setting screen is for setting the effector constraints based at least on user input.
[0009] A computer of a third aspect of the present disclosure includes a processor, a memory unit, and a display device that displays a setting screen for effector constraints, which are constraints on changes in at least one of the position and posture of a robot's effector as viewed from a predetermined reference coordinate, wherein the setting screen is for setting the effector constraints based at least on user input, and the processor performs a simulation to cause a model of the robot to perform an operation using at least the effector constraints, and determines whether the operation satisfies a standard.
[0010] 1 is a schematic diagram of a robot system including a robot of one embodiment; FIG. 2 is a block diagram showing the configuration of a control device for a robot of this embodiment; FIG. 3 is a schematic diagram of various effectors attached to a robot of this embodiment; FIG. 4 is a schematic diagram of the operation of an effector attached to a robot of this embodiment; FIG. 5 is an example of an effector constraint set in a control device of this embodiment; FIG. 6 is an example of a screen displayed by a control device of this embodiment; FIG. 7 is an example of a screen displayed by a control device of this embodiment; FIG. 8 is an example of a screen displayed by a control device of this embodiment; FIG. 9 is an example of a screen displayed by a control device of this embodiment; FIG. 10 is an example of a screen displayed by a control device of this embodiment; FIG. 11 is an example of a screen displayed by a control device of this embodiment; FIG. 12 is an example of a screen displayed by a control device of this embodiment;
[0011] A robot control device 1 according to one embodiment will be described below. The control device 1 is provided to control an arm 10A of a robot 10 ( FIG. 1 ). The robot 10 is not limited to a specific type, but the robot 10 according to this embodiment is a multi-joint robot having six axes. The robot 10 may also be a multi-joint robot having five or fewer axes or seven or more axes, a horizontal multi-joint robot, a multi-link robot, or the like. A multi-joint robot having seven or more axes is one of the preferred embodiments of this embodiment because it increases the number of options for avoidance paths. Furthermore, the robot 10 or its arm 10A may be supported by a traveling device such as a linear guide, an AGV (Automatic Guided Vehicle), a vehicle, a walking robot, or the like.
[0012] The arm 10A includes a plurality of movable parts 12 connected to each other by joints, and a plurality of servo motors 11 that respectively drive the plurality of movable parts 12 (FIGS. 1 and 2). Each servo motor 11 has an operating position detection device such as a sensor or encoder 11A for detecting its operating position. In this embodiment, the control device 1 receives the detection value of the encoder 11A.
[0013] As shown in FIG. 1, an effector 30 such as a hand or tool is attached to the tip of an arm 10A, and the arm 10A is part of a robot system that performs work on an object 2, which is a work target on a transport device, for example.
[0014] The work is a known work such as taking out the object 2, processing the object 2, or attaching parts to the object 2. The processing of the object 2 is a known process such as machining, painting, or cleaning. The transport device may be a conveyor, an AGV (Automatic Guided Vehicle), or anything that can move the object 2 such as a car under manufacture. In the case of a car under manufacture, the chassis, tires, motor, etc. function as the transport device, and the object 2, which is the body on the chassis, etc., is transported. The object 2 may be any of a variety of objects such as an industrial product, an article including food, etc., a part of an article, a part of a structure, an animal, a part of an animal, or a part of a person.
[0015] The effector 30 may be a dedicated hand, suction cup, etc. for handling an article. The effector 30 may also include a wide variety of devices, such as a tool for an assembly process, a gun for spot welding, a torch for arc welding, a scanner for an inspection system, etc. In this way, the effector 30 is not limited to a specific effector.
[0016] When the effector 30 has a moving part such as a finger of a hand, the effector 30 is equipped with a servo motor 31 that drives the moving part (FIG. 2). The servo motor 31 has an operating position detection device for detecting its operating position, and an example of the operating position detection device is an encoder. The detected value of the operating position detection device is sent to the control device 1. Various types of servo motors such as rotary motors and linear motors can be used as each of the servo motors 11 and 31.
[0017] The effector 30 is usually attached to the tip of the arm 10A, but may also be attached to a longitudinal intermediate portion or base end of the arm 10A. In a system in which a workpiece is transferred between the robot 10 and a person, a hand that grasps the object 2 or a hand that attracts the object 2 using a suction cup, magnet, electromagnet, or the like is often used as the effector 30, as shown in Figure 3. Alternatively, the object 2 may be placed in a container or flat tray that serves as the effector 30. The object 2 may also be placed in a box or basket that serves as the effector 30.
[0018] In recent years, hands that use flexible fingers to softly grasp objects have become popular, and these hands are well-suited to collaborative robots, which will be described later. The aforementioned effector 30 may have limited appropriate postures for functioning as an effector. As shown in FIG. 4 , an effector 30 that is a hand using, for example, a suction cup, magnet, or electromagnet may not be able to securely hold the object 2 if it cannot attract the object 2 from a predetermined direction, such as above. Furthermore, when placing the object 2 on the effector 30, which is, for example, a tray, the user must naturally take care to prevent the object 2 from falling. In the case of a collaborative robot, which will be described later, when avoiding an object to be avoided, the avoidance operation is preferably performed within a range of appropriate postures in light of the function of the effector 30.
[0019] 2, the control device 1 includes a processor 21 having one or more processor elements such as a CPU, a microcomputer, an image processor, etc., and a display device 22. The control device 1 also includes a storage unit 23 having a non-volatile storage, a ROM, a RAM, etc.
[0020] The control device 1 also has servo controllers 24 corresponding to the servo motors 11 of the robot 10, and servo controllers 25 corresponding to the servo motors 31 of the effector 30. The control device 1 also has an input unit 26 connected to the control device 1 by wire or wirelessly. In one example, the input unit 26 is an input device such as a portable operation panel that can be carried by the user. In another example, the input unit 26 is a tablet computer. In the case of a portable operation panel, tablet computer, etc., the input is performed using a touch screen function. The portable operation panel or tablet computer may also have a display device 22.
[0021] The memory unit 23 stores a system program 23A, which performs the basic functions of the control device 1. The memory unit 23 also stores one or more operation programs 23B. The operation program 23B includes a plurality of commands, information, etc. for operating the robot. In this embodiment, the operation program 23B includes at least information on the coordinates and postures of a plurality of teaching points, commands related to movements between the teaching points, etc.
[0022] The memory unit 23 also stores a control program 23C, a path generation program 23D, etc. The control program 23C is a known feedback program, feedforward program, etc. The control device 1 generates a path based on the operation program 23B using the path generation program 23D, and generates a control command to move the arm 10A along the path using the control program 23C, thereby controlling the arm 10A.
[0023] The control device 1 controls the robot 10 based on an operation program 23B, which is a series of operation commands preset by the user. The robot 10 is also a robot that can avoid contact with or approaching people, objects, etc. in the vicinity by using sensor outputs. Such a robot is sometimes called a collaborative robot.
[0024] In one example, the robot 10 is a collaborative robot. A collaborative robot has a function of detecting an external force, such as when a person, object, etc. comes into contact with the robot, and safely stopping the robot. The collaborative robot may also have a function of decelerating and stopping the robot just before coming into contact with a person, object, etc. In this embodiment, the robot preferably has a function of performing an avoidance operation when a situation in which there is a possibility of contact with a person, object, etc. is detected. The configuration of this embodiment can also be applied to a robot 10 that is not a collaborative robot.
[0025] The information about the object to be avoided obtained by the sensor 50 is mainly data such as coordinates of points indicating the location of the object to be avoided. Alternatively, the information obtained by the sensor 50 is known point cloud data, and the processor 21 can detect the shape, position, etc. of the object to be avoided in the reference coordinate system 1 from that data. The processor 21 may convert the shape information about the object to be avoided into a three-dimensional approaching object model. The approaching object model may be a primitive shape such as a sphere, a rectangular parallelepiped, or a cylinder, or a polyhedron formed by connecting points in a point cloud. Furthermore, the three-dimensional approaching object model does not need to have closed, solid surfaces, and may be planar. The object to be avoided may be indistinguishable from the surrounding environment.
[0026] Approaching objects are classified into types depending on whether the robot 10 can avoid them and whether the user wishes to avoid them. In this embodiment, an approaching object that can be avoided and that the user wishes to avoid is considered to be an avoidance target. An approaching object that can be avoided but that the user does not wish to avoid is considered to be an approaching object that does not need to be avoided, and an approaching object that cannot be avoided is considered to be an unavoidable approaching object. The processor 21 may switch an approaching object that does not need to be avoided to an avoidance target when the approaching object approaches within a predetermined distance.
[0027] An approaching object cannot be avoided if it is faster than the movement speed of the robot 10, faster than the detection speed of the sensor, or if it is of a size or nature that cannot be detected by the sensor. Even if the approaching object is moving slowly, if the object approaches near the base of the robot 10 which is fixed to the floor, the robot 10 cannot completely avoid the approaching object due to the restrictions on the range of movement of the robot 10. These unavoidable approaching objects are set in advance as unavoidable. When an unavoidable approaching object is detected, the processor 21 does not attempt to forcibly avoid it, but instead causes the arm 10A, which is likely to come into contact, to perform a certain degree of evasive action, and then stops the arm 10A in a safe state.
[0028] When the robot 10 receives an object 2, such as a workpiece, from the outside, the object 2 is an approaching object. However, this object may be set as an approaching object that does not require avoidance. The timing for handing over the object 2 may be instructed in advance, and the processor 21 may disable the avoidance function at that timing. Furthermore, when an approaching person intentionally contacts the robot 10, the processor 21 may determine that avoidance of the person is not required. For example, a worker working near the robot 10 may call out to the robot 10 by voice to hand over a workpiece at an unexpected time. If the robot 10 has a sensor that can detect this intention, the processor 21 may disable the avoidance function at that time. Furthermore, when a worker approaches with a specific gesture, hand signal, or voice call, the processor 21 may decelerate and stop the robot 10 without performing an avoidance operation.
[0029] Furthermore, the processor 21 does not need to take avoidance action for a person, target 2, etc. that is recognized as approaching close enough to come into contact but will not actually come into contact. By configuring the processor 21 to be able to distinguish between a specific approaching object and other approaching objects, it is also possible to configure the processor 21 not to take avoidance action for a specific approaching object. Such a setting can reduce unnecessary avoidance actions.
[0030] In this embodiment, the processor 21 calculates the distance between the models based on the interference calculation program 23H stored in the storage unit 23. More specifically, the processor 21 calculates the distance between the models using at least one model of the robot 10, the effector 30, and the target 2, models of the surrounding environment 4, and approaching objects including people and objects carried by people, and the operation program 23B. Based on the result of this calculation, the processor 21 determines whether or not interference will occur in the planned path of the robot 10.
[0031] If the sensor does not detect an approaching object, the processor 21 does not use the approaching object model. Also, if there is no approaching object and a pre-prepared operation is executed and it has been confirmed that there is no interference, the processor 21 may not perform interference calculations during operation. If the approaching object is moving, the processor 21 preferably predicts the operation of the approaching object and performs interference calculations. The processor 21 calculates the range that can be reached in the future from the time-series data of the operation of the approaching object model, and calculates interference within this range.
[0032] When an approaching object is in contact with the robot 10, it is close to interference. When an approaching object is in contact with the robot, the robot 10 generally stops. If a torque sensor, contact sensor, etc. is used and it is determined that the robot 10 is receiving an external force from the approaching object in a direction in which it can retreat, the robot 10 may be moved as a retreat operation. When this retreat operation is performed, the processor 21 preferably performs an interference calculation and determines whether retreat is possible so as to prevent the robot 10 from getting pinched by the approaching object.
[0033] For example, based on the interference calculation results, the processor 21 determines that interference is likely to occur in the planned path of the robot 10 and that the avoidance target needs to be avoided. In this case, the processor 21 generates an avoidance path using the path generation program 23D based on the path generated by the path generation program 23D based on the operation program 23B. The path generation program 23D may be divided into two programs: one for generating a normal path and one for generating an avoidance path. Alternatively, the processor 21 may temporarily generate an operation program 23B' by correcting the operation program 23B, and the corrected operation program 23B' may be used for the avoidance operation. When a collaborative robot avoids an avoidance target, an avoidance path generation process is required. Examples of avoidance paths include moving the robot 10 to a predetermined evacuation posture, moving the robot 10 away from the approaching direction of the avoidance target, and moving the robot 10 to increase the distance from the avoidance target. A widely known method involves recreating various postures in a simulation to find postures that do not interfere and connecting them to generate an interference-free path.
[0034] Since the object to be avoided is avoided to ensure safety, an avoidance operation that is not far enough from the object to be avoided is undesirable. A potential is set according to the distance from the surface of the 3D model used in the collision calculation, and the path with the lowest evaluation value (cost) calculated using the potential can be selected from among the paths connecting the current position and the position after avoidance. This generates an avoidance path that maintains a sufficient distance from the object to be avoided. For example, multiple types of paths are set in a potential field to generate the avoidance path, and an evaluation value for each path is calculated. Multiple passing points may be set on each path, and the sum, average, etc. of the evaluation values of the potential field at the passing points may be compared.
[0035] In addition to the potential calculation, if the smooth movement of the robot 10 is also evaluated, a sufficient distance from the object to be avoided can be maintained and smooth avoidance movement becomes possible. There are potential calculations using a normal three-dimensional space in a Cartesian coordinate system and potential calculations converted into the joint space (configuration space) of the robot 10, and a combination of both can also be used. Note that the method of generating an avoidance path is not limited to the above example.
[0036] In this embodiment, as a method for detecting the approach of an object to be avoided, such as a person or an object, an approach detection sensor such as a stereo camera, a thermograph, a distance sensor, or a capacitance sensor can be used. It is important to grasp the position, shape, etc. of the object to be avoided, and any sensor that can be used for such grasping can be used. The sensor may be provided in the surrounding environment 4, or the sensor may be provided in the robot 10, the effector 30, etc. Furthermore, the sensor may be provided in the surrounding environment 4 as well as in the robot 10 or the effector 30.
[0037] In this embodiment, as shown in Fig. 1, a sensor 50 capable of outputting data for visually grasping an object to be avoided, such as a stereo camera or a three-dimensional distance sensor, is provided above the robot 10. In this embodiment, it is necessary to calculate interference between at least one of the objects 2, such as the robot 10, the effector 30, or the workpiece, and the surrounding objects (objects to be avoided), the surrounding environment (objects to be avoided), etc. Basic information required for the interference calculation is explained below.
[0038] First, a 3D model of the robot 10, a 3D model of the effector 30, and a 3D model of the target 2, which is the workpiece, are stored in the memory unit 23. In an object handling operation, the target 2 is not always grasped, but may be integrated with the surrounding environment 4, and in particular, the target 2 may be moving on a transport device or may be grasped by another robot system. For this reason, it is desirable to distinguish between the state of the target 2 moving together with the effector 30 (target on the effector side) and the state of the target 2 moving together with the surrounding environment 4 (target on the surrounding environment 4 side). A 3D model corresponding to the surrounding environment 4 is also stored in the memory unit 23, and this 3D model is also used in the interference calculation.
[0039] When teaching the position and posture of the arm 10A of the robot 10, coordinates viewed from the robot's reference coordinate system 101 ( FIG. 1 ), which serves as a reference that does not move in space, are generally designated as the teaching points, etc. When the effector 30 is not present, the position and posture of a coordinate system set on the flange surface (mechanical interface) at the tip of the arm 10A are generally designated as the teaching points, etc. When the effector 30 is present, an effector coordinate system 102 ( FIG. 1 ) may be set at a predetermined position, etc., of the effector 30. In this case, the position and posture of the effector coordinate system 102 are generally designated as the teaching points, etc. The position and posture of the effector coordinate system 102 serve as a reference for operation during avoidance operation. In this embodiment, the coordinate system set at the tip of the arm 10A is also considered to be the effector coordinate system 102, and the coordinate system set on the flange surface is also treated as the effector coordinate system 102.
[0040] In this embodiment, a reference coordinate system 101 and an effector coordinate system 102 that does not move relative to the effector 30 are set. The effector coordinate system 102 may also be called by other names such as a tool coordinate system. The control device 1 recognizes the position and orientation of the effector coordinate system 102 in the reference coordinate system 101 by well-known calibration or the like.
[0041] In this embodiment, the user can set effector constraints that restrict relative changes in the effector coordinate system 102 with respect to the reference coordinate system 101. Examples of setting effector constraints are shown in FIG. 5. As shown in FIG. 5, a first example of an effector constraint is a restriction on the position coordinates (X, Y, Z) of the effector coordinate system 102. A second example of an effector constraint is a restriction on the orientation of the effector coordinate system 102 (around the X axis = θx, around the Y axis = θy, around the Z axis = θz). Note that in the example of FIG. 5, a location where "0" is input as both the upper and lower limits means that no change is allowed. The fact that no effector constraint is set may also be expressed by "-" or the like.
[0042] The constraint on the relative change of the effector coordinate system 102 in the first example may be set based on the position and orientation of the reference coordinate system 101, the effector coordinate system 102, or another coordinate system. Note that the reference coordinate system 101, the effector coordinate system 102, or another coordinate system is a predetermined coordinate system, which may be simply referred to as a coordinate system in the following description. The constraint on the orientation of the effector coordinate system 102 in the second example may also be set based on the position and orientation of a coordinate system. Note that the constraint on the position and orientation of the effector coordinate system 102 may be set based on the position and orientation of the effector coordinate system 102 before the arm 10A starts a certain operation.
[0043] 5 , a third example of an effector constraint is a constraint on the velocity of the effector coordinate system 102. The velocity is, for example, the velocity in the direction of travel of the effector coordinate system 102 in the coordinate system, or the velocities in each of the X, Y, and Z directions. A fourth example of an effector constraint is a constraint on the angular velocity of the effector coordinate system 102. The angular velocity is the angular velocity around an axis of the effector coordinate system 102 in the coordinate system, or the angular velocity around the X, Y, and Z axes.
[0044] 5 , a fifth example of an effector constraint is a constraint on the acceleration of the effector coordinate system 102. The acceleration is, for example, the acceleration in the direction of travel of the effector coordinate system 102 in the coordinate system, or the acceleration in each of the X, Y, and Z directions. A sixth example of an effector constraint is a constraint on the angular acceleration of the effector coordinate system 102. The angular acceleration is the angular acceleration around an axis of the effector coordinate system 102 in the coordinate system, or the angular acceleration around the X, Y, and Z axes. The third to sixth examples of effector constraints are also constraints on changes in at least one of the position and orientation of the effector 30.
[0045] The effector constraint may be a combination of two or more of the first to sixth examples. Also, a value or formula equivalent to a quantity obtained by time-differentiating the position and / or orientation three or more times may be used. The effector constraint may be any constraint on the change in the position and / or orientation of the effector coordinate system 102 relative to a predetermined reference coordinate. The change in the position and / or orientation of the effector coordinate system 102 relative to the predetermined reference coordinate is the change in the position and / or orientation of the effector relative to the predetermined reference coordinate. The constraints on the angular velocity, accelerations, etc. of the third to sixth examples are also constraints on the change in the position and / or orientation of the effector relative to the predetermined reference coordinate.
[0046] In a typical example of this embodiment, the operation program 23B sets coordinate and posture information, the command, and an effector constraint for each teaching point. In the screen 200 of FIG. 7 that the processor 21 of the control device 1 displays on the display device 22, no effector constraint is set for teaching point 1 (position and posture [1]) and teaching point 2 (position and posture [2]). On the other hand, effector constraints 1 and 2, which will be described later, are set for teaching point 3 (position and posture [3]) and teaching point 4 (position and posture [4]), respectively. Preferably, the screen 200 of FIG. 6 is a screen that accepts an operation for displaying a screen related to setting effector constraints. The operation may be, for example, tapping a predetermined position on the screen 200 or operating a predetermined button. The button may be provided on the input unit 26.
[0047] For example, when the user taps the area to the right of "smooth" at teaching point 3 on screen 200, an effector constraint setting screen 210 shown in Fig. 6 appears. An effector constraint or an effector constraint set, which will be described later, can be selected on setting screen 210. When this operation is repeated, an effector constraint or an effector constraint set is set at an arbitrary teaching point, as shown in Fig. 7.
[0048] In one example, the user can set, as effector constraints, a coordinate system and constraints on positional and pose changes of the effector coordinate system 102 relative to the reference coordinates. Preferably, an input unit 26 that allows the user to edit such settings is provided on a portable operation panel also known as a teach pendant. Settings such as effector constraints are stored in the memory unit 23, or a predetermined memory unit such as a memory unit of a separate control device or a memory unit on the cloud. When the effector constraints are stored in a memory unit of a separate control device or a memory unit on the cloud, these memory units and memory units function as the memory unit of the control device 1.
[0049] To set the effector constraints, for example, a screen related to the setting is displayed on the display device 22 of the input unit 26. For example, the processor 21 of the control device 1 causes the display device 22 to display a screen 300 shown in FIG. 8. The screen 300 is a screen on which the user selects transition to the effector constraint setting screen. The display device 22 displays an operation unit 500 for making the selection, etc. The operation unit 500 displays arrow keys, an enter key, a back key for returning to the screen before the transition or to the screen of a higher layer, etc., and the user performs input using these key operations. Note that buttons corresponding to the functions may be provided on the input unit 26.
[0050] When the user selects transition to an effector constraint setting screen on screen 300, processor 21 causes display device 22 to display screen 301 of Fig. 9. Screen 301 is a screen for the user to select transition to a reference coordinate system setting screen. When the user selects transition to a reference coordinate system setting screen on screen 301, processor 21 causes display device 22 to display screen 302 of Fig. 9. Screen 302 is a screen for the user to select the setting of any one of a plurality of reference coordinate systems.
[0051] When the user selects, for example, reference coordinate system 1 from among the multiple reference coordinate systems on screen 302, processor 21 causes display device 22 to display screen 303 of Fig. 9. Screen 303 is a screen for setting the reference coordinate system 1 selected by the user. As shown on screen 303, the user can set the position and orientation of reference coordinate system 1.
[0052] When the user selects reference coordinate system 2 on screen 302, the processor 21 causes the display device 22 to display screen 303 of Fig. 10. In Fig. 10, the user can set the selected reference coordinate system 2. The coordinate systems set by reference coordinate systems 1, 2, etc. can be used as the reference coordinate system 101. In this embodiment, the user can set multiple reference coordinate systems using screens 302 and 303. This configuration is useful for improving the degree of freedom in setting effector constraints, which will be described later.
[0053] When the user selects to transition to the effector coordinate setting screen after returning to screen 301 as shown in Fig. 11, the processor 21 causes the display device 22 to display screen 304 of Fig. 11. Screen 304 is a screen for the user to select the setting of any one of a plurality of effector coordinates.
[0054] When the user selects, for example, effector coordinate 1 from among the multiple effector coordinates on screen 304, the processor 21 causes the display device 22 to display screen 305 of Fig. 11. Screen 305 is a screen for setting the effector coordinate 1 selected by the user. As shown on screen 305, the user can set the position and orientation of effector coordinate 1.
[0055] When the user selects effector coordinate 2 on screen 304, the processor 21 causes the display device 22 to display screen 305 of Fig. 12. In Fig. 12, the user can set the selected effector coordinate 2. In this embodiment, the user can set multiple effector coordinates using screens 304 and 305. This configuration is useful for improving the degree of freedom in setting effector constraints, which will be described later.
[0056] When the user selects to transition to the effector constraint setting screen after returning to screen 301 as shown in Fig. 13, processor 21 causes display device 22 to display screen 306 of Fig. 13. Screen 306 is a screen that allows the user to select the setting of any one of a plurality of effector constraints.
[0057] When the user selects, for example, effector constraint 1 from among the multiple effector constraints on screen 306, processor 21 causes display device 22 to display screen 307 of Fig. 13. Screen 307 is a screen for setting effector constraint 1 selected by the user, and the user can set the effector constraint using screen 307. The effector constraint is used to restrict changes seen from predetermined reference coordinates of effector coordinate system 102 fixed to effector 30.
[0058] More specifically, as shown on screen 307, the user can set a reference coordinate system that serves as the basis for effector constraint 1. Effector constraint 2 can be set in a similar manner. If the reference coordinate system is always fixed, or if reference coordinate system 101 is used, setting the reference coordinate system on screen 307 can be omitted.
[0059] Furthermore, as shown on screen 307, the user can set effector coordinates for each effector constraint. On screen 307, effector coordinates 1 are set for effector constraint 1. Similarly, effector coordinates 2, for example, are set for effector constraint 2. Effector constraints restrict changes in the position and / or posture of the effector 30 as viewed from the set effector coordinates (predetermined reference coordinates). Therefore, the configuration in which effector coordinates can be set or selected as described above, and the configuration in which the user can set effector coordinates for each effector constraint, each lead to an improvement in the degree of freedom in settings by the user. Furthermore, effector constraint elements, which will be described later, are set for each effector constraint.
[0060] 11 and 12 show the position and orientation of the effector 30 at the set effector coordinates. In Fig. 11, effector coordinate 1 is set diagonally upward relative to the effector coordinate system 102, and in Fig. 12, effector coordinate 2 is set at a different position in the horizontal direction relative to the effector coordinate system 102.
[0061] In the example of the operation program 23B on the screen 200 described above, effector constraint 1 is set at teaching point 3 (position and attitude [3]). The processor 21 operates the arm 10A so that the effector 30 moves based on the operation program 23B. In this case, for example, between teaching point 2 (position and attitude [2]) and teaching point 3, changes in the position and attitude of the effector coordinate system 102 as viewed from effector coordinate 1 (predetermined reference coordinates) are constrained by the effector constraint element set in effector constraint 1. The processor 21 may also apply this constraint between teaching point 3 and teaching point 4. Similarly, with respect to teaching point 4, changes in the position and attitude of the effector coordinate system 102 as viewed from effector coordinate 2 (predetermined reference coordinates) are constrained by the effector constraint element set in effector constraint 2.
[0062] Here, the position of effector coordinate 1 (predetermined reference coordinate) for effector 30 at teaching point 3 corresponds to the position of effector 30 at effector coordinate 1 shown on screen 305 in Fig. 11. The position of effector coordinate 2 (predetermined reference coordinate) can be set in a similar manner.
[0063] Furthermore, when the above-described avoidance operation is performed during execution of the operation program 23B, the processor 21 may temporarily generate an operation program 23B' by correcting the operation program 23B, and generate the above-described avoidance path. In this case, for example, the position coordinates, attitude, etc. of each teaching point of the operation program 23B' that should be corrected due to the presence of an avoidance target are corrected to a position, attitude, etc. that allows the effector 30 to be sufficiently separated from the avoidance target. Alternatively, the processor 21 may newly generate a teaching point that allows the effector 30 to be sufficiently separated from the avoidance target. Instead of a teaching point, the processor 21 may correct a passing point or section that should be corrected among passing points of the operation program 23B or sections between adjacent teaching points. Furthermore, when the above-described avoidance operation is performed, the processor 21 may generate an avoidance path that is different from the original operation program 23B by using a potential field, etc.
[0064] In one example, when some teaching points of the operation program 23B on the screen 200 are corrected, the processor 21 generates an avoidance path using the effector constraints set for each teaching point to be corrected.
[0065] Note that a teaching point or a passing point between teaching points may be used as the predetermined reference coordinate. In other words, the change in position and posture at each teaching point or passing point of the effector 30 being moved by the operation program 23B is controlled so that it falls within the range of the effector constraint element as viewed from the position and posture of the teaching point or passing point. When a teaching point or a passing point between teaching points is used as the predetermined reference coordinate, the setting of the screen 305 in Figures 11 and 12 is unnecessary, and the setting of the effector coordinates on the screen 307 in Figure 13 is also unnecessary. The screen 307 in Figure 13 may be configured to accept the setting of the effector coordinates 1 as the position and posture of the teaching point or passing point.
[0066] It can also be said that the effector constraint element of the effector constraint indicates a range within which a change in the position of the effector 30 is permitted. Typically, when the processor 21 operates the arm 10A in the above-described configuration, the actual position and orientation of the effector 30 (effector coordinate system 102) are located within a range within which a change in the position of the effector 30 is permitted by the effector constraint. Similarly, when the processor 21 generates an avoidance path in the above-described configuration, a passing point of the avoidance path is typically included within a range within which a change in the position of the effector 30 is permitted by the effector constraint.
[0067] The target of effector constraint 1 may also be a section. In this case, for example, "Applicable range of effector constraint" is displayed on screen 307, and the user inputs the teaching point number or the like of the target of the effector constraint to the right of "Applicable range of effector constraint." If there are multiple consecutive teaching point numbers, that section becomes the target of effector constraint 1. The target section of the effector constraint may also be specified by describing the start / end of the effector constraint within operation program 23B. An effector constraint that is always applied regardless of operation program 23B may also be set. An operation program 23B that is always applied may also be set for each effector constraint.
[0068] Note that, for example, a space or a posture type of the arm 10A may be set as the "effector constraint application range" on the screen 307 shown in FIG. 13 . For example, the range indicated by the dashed line 307A in FIG. 13 indicates a range in the X-Z directions, but a range of, for example, several tens of centimeters in the Y direction may also be set within that range. When the user selects the space on the screen 307 and inputs it to the right of the "effector constraint application range," the space is set as the application range of effector constraint 1. Similarly, multiple posture types of the arm 10A may be displayed on the screen 307, and the selected posture type may be input to the right of the "effector constraint application range." In this case, effector constraint 1 is applied as long as the posture of the arm 10A corresponds to the selected posture type. Note that a configuration may also be adopted in which the user can set a path that is subject to the effector constraint on the screen 307. In cases such as when an avoidance path is generated during an operation not based on the operation program 23B, the processor 21 may generate, for example, a portion of the avoidance path that is located within the space while applying the effector constraint set for that space. It is also possible for the control device 1 to automatically set effector constraints based on the effector constraints set for each teaching point in the operation program 23B and other set effector constraints. These automatically set effector constraints are also based on the effector constraints set by the user for each teaching point, and are therefore effector constraints set based on user input.
[0069] In addition, a user may instruct the control device 1 on the space in which the arm 10A can operate and the type of task the arm 10A will perform on the object 2 using the effector 30, and the arm 10A may perform the task based on the instruction. For example, the arm 10A may be placed at a bar counter. The task may involve the arm 10A holding an object 2, such as a cup, using the effector 30 (hand) and offering the held object 2 to a customer at the bar. In this case, a visual sensor may be provided to observe the working range of the arm 10A, and the control device 1 may recognize the position of the effector 30, the position of the object 2, the surrounding environment 4 with movement within the space, and approaching objects, including the customer, based on the output of the visual sensor. The control device 1 sequentially calculates the path along which the effector 30 will move for the task while recognizing the surrounding environment 4 and the range of approaching objects. Even in this case, the processor 21 may apply the effector constraints set for the space when generating the path. Furthermore, if an approaching object enters the path while the arm 10A is moving the effector 30 along the path, the processor 21 can generate an avoidance path while applying the effector constraints set in the space.
[0070] Furthermore, as shown on screen 307, the user can set the movable range of the effector 30 in the X, Y, and Z directions as effector constraint 1. Screen 307 allows the user to set a "reference." The "reference" is indicated by coordinates in, for example, reference coordinate system 1, reference coordinate system 101, or effector coordinate system 102. Screen 307 also allows the user to set an "upper limit" and a "lower limit." The "upper limit" and "lower limit" are, for example, the movable amount or movable range relative to the "reference" coordinate. In this embodiment, the movable ranges in the X, Y, and Z directions each having a "reference," "upper limit," and "lower limit" are referred to as effector constraint elements. Similarly, the user can set the rotational movable range, angular velocity, and angular acceleration of the effector 30 around the X, Y, and Z axes, as well as the velocity and acceleration in the X, Y, and Z directions as effector constraint 1. Values or expressions corresponding to the amounts obtained by differentiating the rotational movement range, velocity, acceleration, angular velocity, angular acceleration, position or orientation three or more times with respect to time around the X, Y and Z axes are also referred to as effector constraint elements.
[0071] Note that when the position and orientation of the effector coordinates 1 set as the effector coordinates on the screen 307 are used as the "reference," or when the "reference" is automatically set by the control device 1, input and display of the "reference" may be omitted. Also, it is not necessary to set all effector constraint elements; if some of them are fixed, they may be automatically set by the control device 1.
[0072] In this embodiment, the user can arbitrarily set the "reference." Therefore, the user can set a position and orientation of the effector 30 set at each teaching point or a position and orientation of the effector coordinate system 1 set on the screen 307 as the "reference." This configuration increases the user's freedom of setting and leads to improved accuracy, safety, and efficiency of the operation of the arm 10A. For example, if there is a preferred orientation for each type of effector 30, the user can set "references" around the X, Y, and Z axes as neutral orientations of the effector 30. It is also possible to configure the processor 21 to perform control (referred to herein as restoration operation control) to bring the position and orientation of the effector 30 closer to the "reference." These configurations reduce and simplify the effort required for teaching, while improving the accuracy, safety, and efficiency of the operation of the arm 10A. In this embodiment, improving the efficiency of the operation of the arm 10A includes improving the cycle time of the operation of the arm 10A.
[0073] In this embodiment, when the user selects to transition to the effector constraint set setting screen after returning to screen 301 as shown in Fig. 15, the processor 21 causes the display device 22 to display screen 308 of Fig. 15. Screen 308 is a screen that allows the user to select the setting of any one of a plurality of effector constraint sets.
[0074] When the user selects, for example, set 1 from among the multiple sets on screen 308, processor 21 causes display device 22 to display screen 309 of Fig. 15. Screen 309 is a screen for setting effector constraint set 1 selected by the user, and the user can set the effector constraint set using screen 309. An effector constraint set can associate multiple effector constraints.
[0075] More specifically, as shown on screen 309, the user can incorporate arbitrarily selected effector constraints 1 to 3 into effector constraint set 1, and can also set each of effector constraints 1 to 3 to be enabled or disabled. The user can also set the relationship between multiple effector constraints 1 to 3 as "1∩2∩3," where "1∩2∩3" means effector constraint 1, effector constraint 2, and effector constraint 3. For example, the user can set "Effector Constraint Set 1" instead of "Effector Constraint 1" in the "Effector Constraint" column on screen 200 in FIG. 7.
[0076] This configuration improves the degree of freedom of settings by the user. Furthermore, this configuration allows the user to organize and apply multiple effector constraints set on screen 307, which leads to accuracy, safety, efficiency, etc. of the movement of arm 10A. Note that in this embodiment, screens 306, 307, etc. can be used to set each effector constraint and each effector constraint element to be enabled or disabled. It is also possible to omit the setting on screen 309 as necessary.
[0077] 14, the processor 21 uses the path generation program 23D to generate a path for moving the position and orientation of the effector coordinate system 102 from the previous teaching point to the target teaching point based on the operation program 23B, etc. For example, the processor 21 generates the path while performing a well-known interpolation calculation between the previous teaching point and the target teaching point.
[0078] 14, the processor 21 performs the interference calculation, and when it determines that an object to be avoided exists on the path plan of the operation program 23B, it generates the avoidance path based on the path generation program 23D. In FIG. 14, as an example, in order to generate the avoidance path, the processor 21 temporarily generates an operation program 23B' in which teaching points of the operation program 23B are corrected according to the position of the object to be avoided, and generates the avoidance path based on this. Alternatively, the processor 21 corrects the path using the path generation program 23D to generate the avoidance path.
[0079] If the result of the interference calculation indicates that there is a target to be avoided that is determined to have a possibility of contact and should be avoided because it exceeds a predetermined criterion, it is necessary to correct the control command. The processor 21 generates a provisional control command as an avoidance path based on the result of the interference calculation. The processor 21 executes the interference calculation again to confirm whether or not contact with the target to be avoided will be avoided if the provisional control command is executed. If the avoidance criterion is met, the processor 21 rewrites the original control command with the provisional control command.
[0080] In this embodiment, the processor 21 generates a path that takes effector constraints into consideration when generating a path to avoid the aforementioned avoidance target. For example, the configuration space changes by the amount of the effector constraint added. Constraints such as speed and acceleration are also added, so the potential field in path generation changes. If a neutral state is set for the effector constraint, this also affects the potential field. For this reason, a potential field that also takes effector constraints into consideration may be used. For example, when the processor 21 generates an avoidance path, it searches for a path with a low cost in the potential field. The potential field at this time differs depending on whether or not effector constraints are taken into consideration. An example of the potential field is a distribution of costs that indicate the degree of likelihood of contact. When effector constraints are taken into consideration, the distribution of the potential field changes, and the path selected by the processor 21 also changes.
[0081] 14, when generating a path, the processor 21 performs the path generation and the avoidance path generation while also applying the effector constraints of the operation program 23B and / or the effector constraints set in the space (range) as described above. Note that in this embodiment, the path generation and the avoidance path generation may be referred to as path generation or path generation. The processor 21 then transmits control commands according to the generated path to each servo controller 24.
[0082] Any state may be set within the effector constraints. Alternatively, if a suitable state for the effector 30 exists, that state may be set as the neutral state. For example, if the effector constraint is a ±5° constraint around the X axis and a suitable state is not set, the path generation may result in the effector 30 remaining tilted. For example, if 0° is set as the neutral state, the processor 21 may, for example, bring the final posture of the effector 30 closer to or return it to 0°.
[0083] When the user sets each teaching point using a jog operation or hand guide operation (described later), the position and orientation of the effector 30 at the time of setting each teaching point may be set as a neutral state. For example, the user places the effector 30 in a first position and orientation using a hand guide operation, and then performs an operation for setting a teaching point using, for example, the input unit 26. As a result, the first position and orientation are set for teaching point 1 on the screen 200, for example. The user can similarly set teaching points 2 and beyond. When setting each teaching point using a jog operation or hand guide operation, the user may position the actual position and orientation of the effector 30 to match the image of the arm 10A during operation. For this reason, a configuration in which the above-described first position and orientation are set as a neutral state at each teaching point is useful for reducing the user's effort while simultaneously achieving accuracy, safety, efficiency, and the like of the operation of the arm 10A.
[0084] The processor 21 controls the arm 10A to perform restoring operation control to return the position and posture of the effector 30 to a neutral state. The restoring operation control is performed using at least one of a constant velocity or angular velocity, a constant acceleration or angular acceleration, a value calculated according to the deviation from the neutral state, etc. To perform the restoring operation control, a spring-like variable that acts like a spring according to the deviation amount may be used. To perform the restoring operation control, a damper-like variable that acts like a damper according to the rate of change or angular velocity of change in the deviation amount may be used. To perform the restoring operation control, an inertial variable that acts like an inertial force according to the acceleration or angular acceleration of change in the deviation amount may be used. A combination of these variables may also be used.
[0085] For example, an example of handling an object is to carry an object 2 on a simple tray-shaped effector 30. Because of the tray shape, there is a possibility that the object 2 may fall due to tilting of the effector 30, an inappropriate speed, etc. For example, the position of the effector coordinate 1 is set slightly above the center of gravity of the object 2 by screens 305 and 307, and constraints on the posture, angular velocity, and angular acceleration are set.
[0086] Based on this setting, the processor 21 generates a path of the effector coordinate system 102 (effector 30) from one position and posture to another. At this time, the effector 30 carrying the target 2 tends to swing like a pendulum around the neutral position and posture set by the effector constraint. This limits large tilts and accelerations at the target 2's position, and the centrifugal force generated by the pendulum movement presses the target 2 against the effector 30, preventing the target 2 from falling. In another example, the user can set the effector constraint element to a value that corresponds to the allowable range of acceleration in the direction corresponding to the vertical direction of the effector 30 and the direction corresponding to the centrifugal force. The user can also set the allowable range of acceleration in other directions to a sufficiently small value, such as 1 / 5 or less of the above value. In this case, the effector 30 also tends to swing like a pendulum.
[0087] Note that the posture constraints in the effector constraints are not limited to Euler angle notation, and quaternion notation or the like may also be adopted. Furthermore, the constraints do not need to be scalar values, and may be set as functions. The effector constraints may be set to switch depending on the position, posture, etc. of the arm 10A. The effector constraints may be set to switch depending on the state of the arm 10A (whether or not the target 2 is being held, etc.).
[0088] When teaching a robot, usually, six degrees of freedom of position and orientation (X, Y, Z, θx, θy, θz) are specified for each teaching point and the entire path of the effector 30. When effector constraints are set, the effector constraints have the effect of specifying the position and orientation, so it becomes possible to teach positions and orientations that differ from normal teaching.
[0089] For example, in many cases of item handling, precise positioning is required when picking up and putting down the object 2, but at other positions, it is sufficient to determine the approximate position and orientation of the effector 30. Even in cases where an approximate position (X, Y, Z) is sufficient, conventional teaching methods require specifying the position and orientation for six axes (X, Y, Z, θx, θy, θz). When the orientation (θx, θy, θz) is constrained by the effector constraint, only the position information (X, Y, Z) is required for teaching. In this case, a path from one position to another is generated within the orientation constraint of the effector constraint.
[0090] The same applies to the generation of an avoidance path. For example, the attitude, speed, acceleration, angular velocity, angular acceleration, etc. of the effector 30 may be restricted by effector constraints. In this case, the user does not need to set the attitude, etc. of the effector 30, particularly the attitude of the effector 30, in the settings for the generation of an avoidance path by the processor 21. This configuration makes it possible to reduce and simplify the effort required for the setting work, while improving the accuracy, safety, efficiency, etc. of the operation of the arm 10A.
[0091] Furthermore, a configuration is adopted in which the user can select whether to use the original taught position or the effector constraint within the operation program 23B. For example, a "Constraint Priority" column is added to the screen 200 of FIG. 7 for each taught point and each section of the route, allowing the user to set whether the effector constraint takes priority over the taught point designation in the operation program 23B. In this case, the user can easily and reliably set whether to prioritize the operation program 23B or the effector constraint. Note that whether the position and orientation (X, Y, Z, θx, θy, θz) of the effector 30 are constrained by the taught position and taught orientation in the operation program 23B or the effector constraint is not limited to the above example. The above configuration leads to a reduction in the number of constraint settings for each taught point. Furthermore, the above configuration realizes operation of the arm 10A that can maintain the position and orientation of the effector 30 in an appropriate state by using the effector constraint, which can lead to the creation and selection of a route that improves cycle time.
[0092] As shown in screens 306 and 307 in Fig. 13 , in this embodiment, multiple effector constraints can be set, but a configuration in which only one effector constraint can be set may also be employed. The effector constraint function is realized by providing one set consisting of a reference coordinate system, effector coordinates, and effector constraint elements, but it may be difficult to express various functions using a single effector constraint. Therefore, as shown in screens 306 and 307 in Fig. 13 , a configuration in which multiple effector constraints can be set may also be employed. Furthermore, a configuration in which multiple effector constraints can be set so that they can be applied to each target section, range, teaching point, or other point may also be employed.
[0093] In the following example, an effector constraint set is set. For example, the user sets effector constraint 1 as the first effector constraint using screens 305, 306, and 307. In this case, the user sets reference coordinate system 1 at a position that does not move in space, and sets effector coordinates 1 above the center of gravity of the effector. Effector constraint 1 sets constraints that allow translational and rotational movement of the effector 30. Effector constraint 1 also sets constraints on angular velocity and angular acceleration. Note that if the user selects the corresponding tag on screen 307, it becomes possible to set angular velocity, angular acceleration, etc.
[0094] The user sets effector constraint 2 as the second effector constraint using screens 305, 306, and 307. At that time, the user sets the position and orientation of effector coordinates 2 as the position and orientation of reference coordinate system 2, and sets effector coordinates 2 below the center of gravity of the effector. Effector constraint 2 does not allow translation or rotation.
[0095] The user sets effector constraint 3 as the third effector constraint using screens 305, 306, and 307. At that time, the user constrains the position and orientation of effector coordinate 2 with respect to reference coordinate system 1. Effector constraint 3 is set to allow translational and rotational movements. Effector constraint 3 also constrains the translational speed and acceleration.
[0096] When an avoidance path is generated based on this setting, the tray-shaped effector 30 carrying the target 2 moves translationally at effector coordinate 1, moving like a pendulum, as shown in Figures 11 and 12. Furthermore, large translational acceleration is restricted at the position of effector coordinate 2. This setting is advantageous for preventing the target 2 from falling. This setting is merely one example, and the setting contents are not limited to the above example, and any number of effector constraints can be set.
[0097] The following example describes another example of setting an effector constraint set. For example, the user sets effector constraint 1 as the first effector constraint using screens 305, 306, and 307. At that time, the user sets reference coordinate system 1 at a position that does not move in space. The user also sets effector coordinates 1 on the rotation axis J3 of joint 3C shown in FIG. 1 and sets effector constraint 1. Effector constraint elements are set in effector constraint 1 to allow translational and rotational movements. Furthermore, angular velocity and angular acceleration are restricted in effector constraint 1.
[0098] The user sets effector constraint 2 as the second constraint using screens 305, 306, and 307. At that time, the user sets effector coordinate 1 as reference coordinate system 2 and sets effector coordinate 2 below the center of gravity of the effector. In effector constraint 2, effector constraint elements are set so that translational movement and rotational movement are permitted.
[0099] The user sets effector constraint 3 as the third effector constraint using screens 305, 306, and 307. At that time, the user constrains effector coordinates 2 with respect to reference coordinate system 1. In effector constraint 3, effector constraint elements are set so that translational motion is permitted. In effector constraint 3, effector constraint elements are also set so that the translational speed and acceleration are constrained.
[0100] In a typical robot, when attempting to move joint 3B in Figure 1 around its rotation axis J2, joint 3C also moves symmetrically around rotation axis J3, and the robot may move so as to maintain the posture of the wrist axis. On the other hand, when attempting to move the rotation axis, this action often does not occur. With conventional settings, it is difficult to perform movement around rotation axis J3 while maintaining the posture of the wrist and movable part 12 (J2 arm) between joints 3B and 3C.
[0101] When the effector constraint set in the other setting example described above is set, when a rotational movement about the rotation axis J3 is performed to move the arm 10A along the avoidance path, the rotation is restricted at the position of the effector coordinate system 2. This configuration and setting is useful for preventing the object 2 from falling.
[0102] By setting multiple effector constraints, the user can easily separate the operations according to their own ideas, etc., and the setting of the effector constraints is also easy for the user to understand. This configuration is useful for risk assessment of the robot, and is also useful for reducing errors in teaching and setting the operations of the arm 10A.
[0103] In this embodiment, a set of a reference coordinate system, effector coordinates, and effector constraints may be referred to as a single unit of effector constraint. An effector constraint is a collection of individual constraints such as position, velocity, and acceleration, and each individual constraint is referred to as an effector constraint element. Multiple effector constraints may be prepared, and the processor 21 retrieves and uses the required effector constraint from the storage unit 23.
[0104] A plurality of effector constraint sets may be prepared according to various states of the arm 10A. The state of the arm 10A differs depending on the type of effector 30, the type of target 2, the type of arm 10A, etc. An effector constraint set is a combination of a plurality of effector constraints. Furthermore, if one or more effector constraint sets are prepared for each state of the arm 10A or each operation program 23B, the user need only use the prepared effector constraint set. This configuration reduces the effort required for user configuration and also leads to accuracy, safety, efficiency, etc. of the operation of the arm 10A.
[0105] Setting effector constraints makes it possible to generate an avoidance path that takes into account the properties of the effector 30, target 2, etc., but it is difficult to accurately reflect the properties of the effector 30, target 2, etc. in the effector constraints. In some cases, a user can determine effector constraints using calculations, etc., but differences in experience among users can cause variations in the accuracy of the effector constraints. In such situations, trial and error is required to input effector constraints. Furthermore, there is a risk that settings for essential constraints may be omitted, leading to unintended problems. These problems can be improved by the following configuration.
[0106] [Priority] In this embodiment, an effector constraint includes multiple effector constraint elements, and a priority can be set for at least one of the multiple effector constraint elements, as shown on screen 307 in FIG. 13 . For example, screen 307 has a "Priority" column, and a priority can be set corresponding to each effector constraint element. On screen 307, an "absolute" priority is set for the "upper limit" and "lower limit" of the angle around the X-axis, which are effector constraint elements. An "absolute" priority can also be considered a must-have setting that must be used by the processor 21, for example. Priorities are also set for the other effector constraint elements, with "absolute," "high," and "low" being set in descending order of priority.
[0107] This configuration increases the degree of freedom for the user in setting. Also, for example, the robot 10 can operate under conditions where it is not necessary to observe any of the X, Y, and Z rotational position constraints among the effector constraints, and this increases the number of options for the avoidance paths that the processor 21 can set. Also, the processor 21 can select a more effective avoidance path that can be expected to improve the cycle time, etc.
[0108] In this embodiment, the effector constraints have priorities, such as constraints that must be observed and constraints that do not necessarily have to be observed. When generating an avoidance path, it may be desirable to observe all constraints, but it may also be possible to fail to select an effective avoidance path by trying to observe less important constraints. In other words, it may be possible to select an effective avoidance path by not observing constraints with low priorities. For this reason, the processor 21 may be configured to not observe constraints with low priorities based on preset criteria. To realize this configuration, a priority is set for each effector constraint and each effector constraint element, and the priorities are stored in the storage unit 23.
[0109] As will be described later, even when a user uses preset effector constraints, the presets can be prepared so that the priority of effector constraint elements differs. The more important an effector constraint element is in satisfying functional requirements, the higher its priority. The user can change the priority later.
[0110] Effector constraints include constraints that are intentionally set by the user and constraints that are not intentionally set. In this embodiment, a constraint that is intentionally set by the user (user-ordered) may be referred to as a designated constraint, and an optimizable constraint that is not intentionally set may be referred to as a dependent constraint. Information indicating whether a constraint is a designated constraint or a dependent constraint may be stored in the storage unit 23 along with each effector constraint. For example, for each effector constraint element, the control device 1 accepts a setting that the effector constraint element is a constraint element that forces the processor 21 to use a value designated by the user, or a setting that the effector constraint element is a constraint element that allows changes by the processor 21, and the accepted setting is stored in the storage unit 23. The settings are indicated by "designated" and "dependent" in FIGS. 13, 19, and 23.
[0111] As described below, when a user uses a preset effector constraint, it is desirable to initially set the effector constraint as a dependent constraint, since the details of the effector constraint are not set by the user. If the user edits a preset effector constraint, the effector constraint becomes a specified constraint. The user can later change whether the effector constraint is a specified constraint or a dependent constraint.
[0112] In addition, the priority of effector constraints and the distinction between designated and dependent constraints can be set for each effector constraint element, or they can be set collectively for each effector constraint set. In cases where there are multiple effector constraint sets, the intention of the constraints can be made easier to understand by setting the priority and distinguishing between designated and dependent constraints.
[0113] [Preset] In the present embodiment, preferably, a preset automatic setting program 23F that automatically sets effector constraints and / or effector constraint elements is stored in the storage unit 23. The preset automatic setting program 23F automatically sets effector constraints and / or effector constraint elements based on information about the effector 30 and the target 2 that the user can objectively obtain, and on the functions and performance (functional requirements) that the user subjectively expects.
[0114] The functional requirements may be expressed qualitatively, such as "don't want to shake," "don't want to tip," "don't want to drop," "don't want to tilt," or "don't want to move from that spot," with respect to the object 2. These functional requirements can be expressed as effector constraint elements. For this purpose, presets of effector constraint elements corresponding to the functional requirements are stored in advance in the storage unit 23.
[0115] In this case, for example, the system is configured so that the user can select from a plurality of preset types for the type of combination of the effector 30 and the target 2. Presets include a type that fits on a tray, a type that fits on a container, a type that fits into a box, a type that is grasped by hand, and a type that is sucked. Presets also include a type that processes the target with a welding gun, a type that processes the target with a welding torch, and a type that processes the target with various tools. This configuration does not limit the type of effector 30, and the presets are intended to assist in information input. Effectors that do not fit into the presets can also be used.
[0116] It is also desirable to use 3D-CAD models of the effector 30 and the target 2. In addition to this shape, if the center of gravity position and weight of the target 2, the center of gravity position and weight of the effector, the movable parts of the effector 30, etc. are used together with the 3D-CAD model, a more accurate physical model can be created. It is desirable to assign parameters necessary to explain physical behavior to the physical model, such as a spring constant indicating the hardness of the material, a damping coefficient that attenuates vibration, and a friction coefficient when objects rub against each other. With a physical model, it becomes possible to reproduce physical behavior such as the behavior of grabbing with a hand and the behavior of the target 2 falling in a simulation.
[0117] The physical model used in this embodiment is for performing physical simulations. Because various settings for a physical model require a lot of work, it is desirable for the model to be constructed from information that is easily available to the user. For a typical effector 30 and target 2, the approximate placement of the effector 30 and target 2 can be determined by selecting a preset type for the combination of the effector 30 and target 2 described above. Once the placement is determined, an approximate physical model can be generated simply by adding the shape, center of gravity, weight, etc. of the characteristic parts of the effector 30 and target 2.
[0118] The control device 1 stores information on the type, shape, etc. of the effector 30 and the target 2, information on functional requirements, and information on effector constraint elements appropriate for realizing the functional requirements in a mutually associated state in the storage unit 23. The processor 21 sets effector constraint elements based on the above information, functional requirements input by the user, information on the physical model, etc., and presents them to the user.
[0119] A more specific example will be described below. For example, a screen for setting using the preset is displayed on the display device 22 of the input unit 26. First, the processor 21 of the control device 1 causes the display device 22 to display a screen 401 shown in FIG. 16. The screen 401 may be displayed instead of the screen 301. The screen 401 is a screen on which the user selects transition to a setting screen for effector information. When the user selects transition to a setting screen for effector information on the screen 401, the processor 21 causes the display device 22 to display the screen 402 of FIG. 16. The screen 402 is a screen on which the user selects an arbitrary effector type setting from among a plurality of effector type settings.
[0120] When the user selects the setting of effector type 1 on screen 402, the processor 21 causes the display device 22 to display screen 403 of Fig. 16. Screen 403 is a screen for setting the effector type 1 selected by the user. As shown on screen 403, the user can set the effector type by selection.
[0121] When the user selects detailed settings for the selected effector type on screen 403, processor 21 causes display device 22 to display screen 404 of Fig. 16. Screen 404 is a screen for setting the dimensions, center of gravity, and other positions of the selected effector type. Preferably, screen 404 is configured so that the weight, material, and other settings of the selected effector type can also be set.
[0122] When the user selects to transition to the target information setting screen after returning to screen 401 as shown in Fig. 17, the processor 21 causes the display device 22 to display screen 405 of Fig. 17. Screen 405 is a screen for the user to select any target type setting from among multiple target type settings.
[0123] When the user selects the setting of object type 1 on screen 405, the processor 21 causes the display device 22 to display screen 406 of Fig. 17. Screen 406 is a screen for setting the object type 1 selected by the user. As shown on screen 406, the user can set the object type by selection.
[0124] When the user selects "Detailed setting of selected target type" on screen 406, processor 21 causes display device 22 to display screen 407 of Fig. 17. Screen 407 is a screen for setting the dimensions and position of the selected target type, such as the center of gravity. Preferably, screen 407 is configured so that the weight, material, etc. of the selected target type can also be set. Note that screen 407 may also be configured so that the position of the selected target type relative to the selected effector type can also be set.
[0125] When the user returns to screen 401 as shown in Fig. 18 and selects transition to the target positional relationship information setting screen, the processor 21 causes the display device 22 to display screen 408 of Fig. 18. Screen 408 is a screen for setting the positional relationship of the selected target type with respect to the selected effector type.
[0126] When the user selects, for example, the setting of positional relationship 1 on screen 408, the processor 21 causes the display device 22 to display screen 409 of Fig. 18. Screen 409 is a screen for setting the user-selected positional relationship 1. As shown on screen 409, the user can set the positional relationship by inputting numerical values and moving the displayed effector illustration and / or target illustration.
[0127] When the user returns to the screen 401 as shown in Fig. 19 and selects to transition to a setting screen for setting effector constraints from presets, the processor 21 causes the display device 22 to display the screen 410 of Fig. 19. The screen 410 is a screen for selecting an effector type, a target type, a target positional relationship, etc.
[0128] Note that when the effector type is fixed, the effector type information may be automatically set based on input information (input) from an external device. For example, when the effector 30 is connected to the control device 1, a signal may be transmitted from the effector 30 to the control device 1, and the processor 21 may set the effector type based on the input signal (input). Similarly, when the target type and target positional relationship are fixed, the target type and target positional relationship may be automatically set.
[0129] Screen 410 is a screen for selecting transition to a function request (request) setting screen and displaying the set function request. When the user performs a predetermined operation for setting the function request, for example, pressing the "Generate Settings" button, the processor 21 causes the display device 22 to display screen 411 of FIG. 19. Screen 411 is a screen for the user to select a function request. On screen 411, the word "Valid" is displayed in the position corresponding to each function request, indicating that the function request has been set. On screen 411, the user can also set multiple function requests. A function request (request) is, for example, a user request regarding an operation to be performed by the effector 30 on the target 2.
[0130] Effector constraints are set by the settings on screens 410 and 411. The effector constraints include, for example, the same settings as on screen 307. Therefore, the processor 21 can control the arm 10A using the set effector constraints.
[0131] When the user returns to screen 410 and presses "View Generation Log," the processor 21 causes the display device 22 to display screen 412 of Fig. 19. Screen 412 displays the contents of the set effector constraints and accepts changes to each setting of the effector constraints. Screen 412 is configured to accept user input for registering the effector constraint, the settings of which have been changed, as one of the presets.
[0132] In this way, the storage unit 23 stores a plurality of effector constraints. The effector constraints are also stored in the storage unit 23 so as to correspond to a plurality of combinations of the effector type, which is the type of the effector 30, and the target type, which is the type of the target 2. When the user inputs an arbitrary combination using the input unit 26 or the like, the processor 21 sets the corresponding effector constraint. This configuration reduces the effort required for setting by the user and also leads to accuracy, safety, efficiency, etc. of the operation of the arm 10A.
[0133] Note that the effector constraint may be set based solely on the effector type setting. Alternatively, the effector constraint may be set based solely on the target type setting. For example, in the case of an effector type or target whose task content and associated requirements are fixed, the effector constraint is set solely on the effector type or target type setting, without any other settings such as functional requirements. In this configuration, the user simply inputs information for setting the effector type or target type. That is, the processor 21 sets the effector constraint based on at least one of information about the effector type and information about the target type, and the user's input for the setting. When the effector 30 is connected to the control device 1, information, signals, etc. about the effector type may be input from the effector 30, which is an external device, to the control device 1. In this case, the processor 21 sets the effector constraint based at least on the information about the effector type and the input from the external device. These configurations lead to a further reduction in the effort required for setting by the user, and also contribute to improving the accuracy, safety, efficiency, etc. of the operation of the arm 10A. In addition, even an inexperienced user can appropriately perform effector constraints, which is useful for improving the accuracy, safety, efficiency, etc. of the operation of the arm 10A.
[0134] In this embodiment, the effector constraints are also set based on requests input by the user. This configuration is useful for achieving a high level of both reducing the effort required for user setting and improving the accuracy, safety, efficiency, etc. of the operation of the arm 10A.
[0135] [Simulator] In this embodiment, as described above, effector constraints are set based on user input values, and preset effector constraints are set based on functional requirements input by the user. However, even in the case of preset effector constraints, the set effector constraints do not necessarily function properly as expected by the user. There is a possibility that an important setting may be omitted, unnecessary settings may be present, or fine-tuning of effector constraint elements may be insufficient, resulting in a path that is not what the user expected.
[0136] The most reliable method of verification is to check the actual operation of the robot 10 based on the avoidance path. However, if there are any imperfections in the settings, the verification process itself poses a risk. Furthermore, since there are countless approach patterns of approaching objects, the above trial-and-error verification requires a huge amount of man-hours. For this reason, it is useful to verify the validity of effector constraints through simulation.
[0137] To perform a simulation, the user inputs the conditions assumed for an approaching object. The approach of a person can be easily represented by an approaching object with a primitive shape, such as a cylinder that resembles the human physique. A detailed 3D model of a human body may also be used. It is preferable to set the conditions according to the nature of the approaching object, such as an approaching object that needs to be avoided (avoidance target), an approaching object that does not need to be avoided, or an approaching object that cannot be avoided.
[0138] There can be an infinite number of motion patterns of approaching objects. For this reason, preferably, presets that are a comprehensive set of motion patterns are prepared in advance, and the user normally selects from the presets, and manually inputs individual exceptional cases.
[0139] 3D models of the surrounding environment 4, robot 10, effector 30, target 2, etc. are reproduced on the simulator, and a simulation of an avoidance operation is performed during, for example, automatic driving based on the operation program 23B. The simulation is preferably a physical simulation that can reproduce the tipping over of the target 2, etc. For example, already created physical models of the effector 30 and target 2 are utilized.
[0140] The simulation can calculate the accelerations of the effector 30 and the target 2, which cannot normally be monitored in reality. Simulation tolerances are set as allowable thresholds for the position, posture, speed, acceleration, angular speed, angular acceleration, etc. of the effector 30 and the target 2. The simulation can confirm whether the operation of the effector 30 falls within the simulation tolerances. If simulation tolerances corresponding to the functional requirements are prepared in advance, these tolerances may be used. Alternatively, values, settings, etc. used as simulation tolerances may be selected from the effector constraint set.
[0141] As a result of the simulation, a situation may arise in which contact cannot be avoided, and the arm 10A or the effector 30 may come into contact with an approaching object. Even if contact is avoided, there is a possibility that a malfunction in the work, such as the target 2 tipping over or dropping, may occur. The simulation can determine whether or not the functional requirements are met in the avoidance operation under any conditions assumed by the user. It is preferable that the processor 21 displays the state of the avoidance operation in the simulation on the display device 22 or the like.
[0142] If the avoidance target cannot be avoided, if the simulation tolerance requirements are not met, or if the cycle time does not satisfy the conditions, improvements can be made by reviewing the effector constraint elements.The user can also check the state of the simulation and fine-tune the effector constraint elements.
[0143] Based on the results of the simulation, the processor 21 may modify, improve, or optimize the following effector constraints using the constraint modification program 23G. This configuration is useful for reducing the user's workload while also ensuring the accuracy, safety, efficiency, etc. of the operation of the arm 10A.
[0144] For example, the aforementioned fine-tuning of effector constraint elements by the user is a trial-and-error process, which places a heavy burden on the user. If priority, importance, etc. are set when setting effector constraint elements, it is highly likely that effector constraint elements with low importance and low priority will be changed. These are the effector constraint elements to be adjusted. A constraint modification program 23G that modifies the effector constraint set based on the results of the simulation is stored in the storage unit 23.
[0145] A simulation is performed, and the rate at which the avoidance targets are avoided may be used as an avoidance success rate, which is an index for determining whether the effector constraint set is good or bad. Also, the magnitude of the risk when the avoidance is not possible may be used as an index for determining whether the effector constraint set is good or bad, which is the risk when the avoidance fails. An effector constraint with a high avoidance success rate and a low risk when the avoidance fails can be said to be a good effector constraint.
[0146] Alternatively, the cycle time may be an index for determining whether an effector constraint set is good or bad. The above-described indexes for determining whether an effector constraint set is good or bad are merely examples and are not limited to these. Whether a high avoidance success rate or a low risk in the event of avoidance failure should be prioritized varies depending on the user's risk assessment criteria. An effector constraint set index can be set as an index for determining whether an effector constraint set is good or bad, taking into account the avoidance success rate, the risk in the event of avoidance failure, other risk assessment criteria, etc.
[0147] For example, it is possible to define the effector constraint set as the one that best satisfies the condition for maximizing (or minimizing) the effector constraint set index. The following method is an example of a method for modifying an effector constraint set using simulation. First, a general genetic algorithm can be applied. After performing a simulation, the effector constraint set index is calculated. If the object to be avoided cannot be avoided, an alternative plan for the effector constraint element to be adjusted is created based on the results of the simulation. Multiple alternative plans may be created at once.
[0148] A simulation is performed again using the effector constraint elements of the alternative, and an effector constraint set index is calculated. Further alternatives are generated based on the effector constraint set with an improved effector constraint set index. The number of alternatives generated can be changed depending on the degree of improvement in the effector constraint set index.
[0149] The generation of alternative effector constraint sets as described above is performed a predetermined number of times, or until a predetermined effector constraint set index is exceeded. This process results in an effector constraint set suitable for avoiding the avoidance target. The above process is an example, and the present invention is not limited to this process.
[0150] The above simulation and the improvement or optimization of the effector constraints based on the simulation results may be performed by the processor 21 of the control device 1 or by another computer. The other computer has the same processor, display device, memory unit, input unit, etc. as the control device 1. The memory unit of the other computer stores the same programs, data, information, etc. as the memory unit 23. The memory unit of the other computer also stores a simulation program and models of the surrounding environment 4, robot 10, effector 30, target 2, etc.
[0151] Effector constraints improved or optimized by another computer may be input to the control device 1, and when the input is received, the processor 21 of the control device 1 may set the input effector constraints in the operation program 23B, etc. In this case, based on the input from the computer as an external device, the processor 21 causes the arm 10A to perform the operation and avoidance operation constrained by the effector constraints.
[0152] A more specific example will be described below. For example, a screen for performing an effector constraint simulation is displayed on the display device 22 of the input unit 26. When the user selects transition to the effector constraint simulation screen on the screen 401 shown in Fig. 20, the processor 21 causes the display device 22 to display the screen 421 shown in Fig. 21. The screen 421 is a screen that allows the user to select any one of a plurality of simulation condition settings.
[0153] When the user selects the setting of simulation condition 1 on screen 421, processor 21 causes display device 22 to display screen 422 of Fig. 21. Screen 422 is a screen for making various settings for the simulation. When the user selects the simulation setting on screen 422, processor 21 causes display device 22 to display screen 423 of Fig. 21. Screen 423 is a screen for setting evaluation items to be evaluated in the simulation, setting conditions for each evaluation item including setting the simulation tolerances, etc.
[0154] After making settings on screens 422 and 423, the user performs an operation to execute a simulation on screen 421. As a result, processor 21 displays simulation execution screen 424 in Fig. 22 and also displays the results of the evaluation items that were set on screens 425 and 426 in Fig. 22.
[0155] The processor 21 may also evaluate whether the operation of the effector 30 is within the simulation tolerance. If the operation of the effector 30 is not within the simulation tolerance, the processor 21 may display a screen 427 of Fig. 23. If the operation of the effector 30 is not within the simulation tolerance, the processor 21 may determine or estimate the effector constraint element that is causing this, and display the effector constraint element to the user, as in the screen 427. In the screen 427, the color of the effector constraint element determined to be the cause is changed.
[0156] The processor 21 can improve or optimize the effector constraints using the results of the simulation based on the constraint modification program 23G. For example, when "Optimize Settings" is selected on the screen 401, the effector constraints are improved or optimized.
[0157] As an example, a simulation using effector constraint 1 on screen 307 in FIG. 13 will be described. If some of the effector constraint elements of effector constraint 1 are determined to be the cause, the processor 21 modifies the effector constraint elements determined to be the cause. In this case, as described above, each effector constraint element on screen 307 in FIG. 13 is set to "designated," meaning a user-ordered constraint. Also, some of the effector constraint elements in the acceleration and angular acceleration tabs on screen 307 in FIG. 13 are the cause, as shown in FIG. 23 , but are not set to "designated," i.e., are dependent constraints (optimizable). For example, the processor 21 performs the improvement or optimization by modifying the effector constraint elements determined to be the cause and not set to "designated." In this case, the user can instruct the processor 21 to perform the improvement or optimization while recognizing which constraint elements are automatically changed and which are not. This configuration facilitates user configuration and contributes to the accuracy, safety, and efficiency of the operation of the arm 10A.
[0158] In this embodiment, the storage unit 23 stores effector constraints, which are constraints on changes in the position and posture of the effector 30 as viewed from a predetermined reference coordinate system. The processor 21 generates an avoidance path based at least on the detection result of the object to be avoided and the effector constraints, and causes the robot 10 to operate along the generated avoidance path. This leads to improved accuracy, safety, efficiency, and the like of the robot 10's operation. For example, it becomes easier or more reliable to set (avoid) a posture to be avoided depending on the type of effector 30 or object 2. It may also be possible to reduce or simplify the effort required for the teaching or setting work described above. It may also lead to the creation and selection of an avoidance path that improves cycle time while realizing operation of the arm 10A that can maintain the position and posture of the effector 30 in an appropriate state. Furthermore, when the control device 1 performs a real-time simulation to confirm the safety of the generated avoidance path and operates the arm 10A based on the confirmed safety avoidance path, the calculation cost may be reduced.
[0159] The control device 1 also includes an input unit 26 for the user to input effector constraint elements of the effector constraint, etc. This configuration is useful for setting appropriate effector constraints for a wide variety of effectors 30 and a wide variety of tasks.
[0160] Furthermore, the effector constraint can set at least one of a velocity constraint, an acceleration constraint, an angular velocity constraint, and an angular acceleration effector constraint element as viewed from a predetermined reference coordinate of the effector 30. This configuration is useful for setting appropriate effector constraints for a wide variety of effectors 30 and a wide variety of tasks. Furthermore, the setting of these effector constraint elements may facilitate the setting of motion settings or motion constraints for the arm 10A, for example, when setting a large number of teaching points for a complex task on the arm 10A.
[0161] Although the embodiments of the present disclosure have been described in detail, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible in these embodiments without departing from the gist of the present disclosure or the concept and spirit of the present disclosure derived from the content of the claims and their equivalents. For example, in the above-described embodiments, the order of each operation, the order of each process, the omission or addition of some operations depending on conditions, and the omission or addition of some processes depending on conditions are possible without being bound by the above examples. The same applies when numerical values or mathematical expressions are used in the description of the above embodiments.
[0162] [Supplementary Note 1] A control device comprising: a processor; and a memory unit for storing effector constraints which are constraints on changes in at least one of the position and orientation of a robot's effector as viewed from a predetermined reference coordinate, wherein the processor performs: a generation process for generating an avoidance path based at least on the result of detection of an object to be avoided based on sensor output and the effector constraints; and a control process for causing the robot to perform an avoidance operation along the generated avoidance path. [Supplementary Note 2] The control device according to Supplementary Note 1, wherein the processor calculates the position of the object to be avoided based on the output of the sensor which is an approach detection sensor. [Supplementary Note 3] The control device according to Supplementary Note 2, wherein the processor determines the possibility of contact between at least one of the robot and the effector and the object to be avoided based on the result of the calculation. [Supplementary Note 4] The control device according to Supplementary Note 1, wherein the memory unit is capable of storing a plurality of the effector constraints. [Supplementary Note 5] The control device according to Supplementary Note 1, wherein the memory unit is capable of storing an effector constraint set formed by combining a plurality of the effector constraints. [Supplementary Note 6] A control device comprising: a processor; a storage unit; and a display device that displays a setting screen for setting a robot to perform an avoidance operation based on sensor output, wherein the display device is capable of displaying a screen for setting an effector constraint that is a constraint on a change in at least one of a position and an attitude of an effector of the robot as viewed from a predetermined reference coordinate, and the screen is for setting the effector constraint based at least on a user's input. [Supplementary Note 7] A control device according to any of Supplements 1 to 6, comprising an input unit that can input the effector constraint. [Supplementary Note 8] A control device according to any of Supplements 1 to 7, wherein the storage unit stores a plurality of effector constraints, wherein the plurality of effector constraints respectively correspond to at least one of a type of the effector and a type of target of work by the effector, and the processor sets the effector constraint based at least on at least one of information on the type of the effector and information on the type of the target, and user input.[Supplementary Note 9] The control device according to Supplementary Note 8, wherein the user input is for setting a requirement desired by the user regarding the work performed by the effector. [Supplementary Note 10] The control device according to any of Supplements 1 to 7, wherein the effector constraint includes a plurality of effector constraint elements, wherein the effector constraint is capable of setting a priority for at least one of the plurality of effector constraint elements, and wherein the processor makes the robot perform the avoidance operation by at least using the effector constraint including the priority. [Supplementary Note 11] The control device according to any of Supplements 1 to 7, wherein the effector constraint includes a plurality of effector constraint elements, and wherein the control device is configured to accept, for each of the plurality of effector constraint elements, setting a designated constraint that causes the processor to use a value designated by a user, or setting a dependent constraint that allows change by the processor. [Supplementary Note 12] The control device according to any of Supplements 1 to 11, wherein the processor performs a simulation of making a model of the robot perform the avoidance operation by at least using the effector constraint, and determines whether the avoidance operation satisfies a criterion. [Supplementary Note 13] The control device according to Supplementary Note 12, wherein the processor modifies the effector constraint so that the avoidance operation satisfies the criterion when the avoidance operation does not satisfy the criterion. [Supplementary Note 14] The control device according to any of Supplements 1 to 13, wherein the effector constraint can set at least one of a constraint on a velocity of the effector as viewed from the predetermined reference coordinates, a constraint on an acceleration of the effector as viewed from the predetermined reference coordinates, a constraint on an angular velocity of the effector as viewed from the predetermined reference coordinates, a constraint on an angular acceleration of the effector as viewed from the predetermined reference coordinates, and a constraint on a value or expression equivalent to an amount obtained by differentiating the position or the attitude three or more times with respect to time.[Supplementary Note 15] A computer comprising: a processor, a storage unit, and a display device that displays a setting screen for effector constraints that are constraints on changes in at least one of the position and posture of a robot effector as viewed from a predetermined reference coordinate, wherein the setting screen is for setting the effector constraints based at least on a user's input, and the processor performs a simulation to make the robot model perform an avoidance operation using at least the effector constraints, and determines whether the avoidance operation satisfies a criterion. [Supplementary Note 16] The computer according to Supplementary Note 15, wherein the processor modifies the effector constraints so that the avoidance operation satisfies the criterion when the avoidance operation does not satisfy the criterion.
[0163] REFERENCE SIGNS LIST 1 Control device 2 Object 10 Robot 10A Arm 11 Servo motor 11A Encoder 12 Movable part 21 Processor 22 Display device 23 Memory unit 23A System program 23B Operation program 23C Control program 23D Path generation program 23F Automatic preset setting program 23G Constraint correction program 23H Interference calculation program 24 Servo controller 25 Servo controller 26 Input unit 50 Sensor 200 Screen (operation program) 300 to 309 Screens 401 to 412 Screens 421 to 427 Screen 500 Operation unit
Claims
1. A control device comprising: a processor; and a storage unit that stores effector constraints which are constraints on changes in at least one of the position and orientation of an effector of a robot as viewed from a predetermined reference coordinate system. The processor performs: a generation process of generating an avoidance path based on at least a result of detection of an object to be avoided based on an output of a sensor and the effector constraints; and a control process of causing the robot to perform an avoidance operation along the generated avoidance path.
2. The control device according to claim 1, wherein the processor calculates a position of the object to be avoided based on the output of the sensor which is a proximity detection sensor.
3. The control device according to claim 2, wherein the processor determines a possibility of contact between at least one of the robot and the effector and the object to be avoided based on a result of the calculation.
4. The control device according to claim 1, wherein the storage unit is capable of storing a plurality of the effector constraints.
5. The control device according to claim 1, wherein the storage unit is capable of storing an effector constraint set formed by combining a plurality of the effector constraints.
6. A control device comprising: a processor; a storage unit; and a display device that displays a setting screen for setting an avoidance operation to be performed by a robot based on an output of a sensor. The display device is capable of displaying a screen for setting effector constraints which are constraints on changes in at least one of the position and orientation of an effector of the robot as viewed from a predetermined reference coordinate system, and the screen is for setting the effector constraints based on at least an input of a user.
7. The control device according to any one of claims 1 to 6, further comprising an input unit capable of inputting the effector constraints.
8. The storage unit stores a plurality of effector constraints, the plurality of effector constraints respectively correspond to at least one of a type of the effector and a type of a target of an operation of the effector, and the processor sets the effector constraints based on at least one of information regarding the type of the effector and information regarding the type of the target and an input of a user. The control device according to any one of claims 1 to 6.
9. The input of the user is for setting a requirement that the user demands regarding the operation by the effector. The control device according to claim 8.
10. The effector constraint includes a plurality of effector constraint elements, the effector constraint can set priorities for at least one of the plurality of effector constraint elements, the processor causes the robot to perform the avoidance operation using at least the effector constraint including the priority, according to any one of claims 1 to 6.
11. The effector constraint includes a plurality of effector constraint elements, for each of the plurality of effector constraint elements, it is configured to receive setting of a specified constraint that allows a value specified by a user to be used by the processor or setting of a subordinate constraint that allows modification by the processor, according to any one of claims 1 to 6.
12. The processor performs a simulation that causes the model of the robot to perform the avoidance operation using at least the effector constraint, and determines whether the avoidance operation satisfies a standard, according to any one of claims 1 to 6.
13. The processor modifies the effector constraint so that the avoidance operation satisfies the standard when the avoidance operation does not satisfy the standard, according to claim 12.
14. The effector constraint can set at least one of a constraint on speed seen from the predetermined reference coordinates of the effector, a constraint on acceleration seen from the predetermined reference coordinates of the effector, a constraint on angular velocity seen from the predetermined reference coordinates of the effector, a constraint on angular acceleration seen from the predetermined reference coordinates of the effector, and a constraint on a value or formula corresponding to a quantity obtained by differentiating the position or the posture three or more times with respect to time, according to any one of claims 1 to 6.
15. A processor, a storage unit, a display device that displays a setting screen for an effector constraint that is a constraint on a change seen from a predetermined reference coordinate of at least one of the position and the posture of an effector of a robot, and the setting screen is for setting the effector constraint based at least on an input of a user, the processor is a computer that performs a simulation that causes the model of the robot to perform an avoidance operation using at least the effector constraint, and determines whether the avoidance operation satisfies a standard.
16. The computer according to claim 15, wherein the processor modifies the effector constraint so that the avoidance operation meets the criterion when the avoidance operation does not meet the criterion.