Program and teaching support device
Patent Information
- Application Number
- JP2023126325
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-08-02
- Publication Date
- 2025-02-14
AI Technical Summary
【0011】 本発明の一側面によれば、作業者が始点又は終点などのようなノードを元に戻すような再入力しなくても済む。
Smart Images

Figure 2025022083000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates to a program and a teaching support device. [Background technology]
[0002] Patent Document 1 discloses a technique for, when replacing a part or the entirety of a horizontal articulated robot, using the teaching data used before the replacement even after the replacement.
[0003] Conventionally, articulated robots operate automatically according to an operating program. A production line using such articulated robots is constructed in the following order:
[0004] First, the worker decides where to install the articulated robot. The worker decides the start point and end point of the end effector of the articulated robot. The worker uses a teaching device such as a teaching pendant to teach the articulated robot the path from the start point to the end point. If the time it takes for the articulated robot to move the end effector from the start point to the end point does not meet certain requirements, the worker resets the installation location, start point, and end point of the articulated robot, and re-teaches the path.
[0005] When a production line is constructed as described above, workers need to move the articulated robot and the surrounding equipment. Such work places a large burden on the workers, and there is a risk that the workers may accidentally damage the articulated robot and the surrounding equipment. To solve this problem, simulators are used. The simulator sets up a robot model in a virtual three-dimensional space through calculations, and displays the robot model on a display device using computer graphic technology. When a worker operates the simulator's input device to input the installation location, start point, end point, etc. of the robot model into the simulator, the simulator calculates the path from the start point to the end point.
[0006] The path calculated by the simulator may not meet the necessary conditions. In such a case, the worker operates the input device of the simulator to change the installation location of the robot model in the three-dimensional space. As the robot model moves, the start point and end point also move, so the worker must re-input the start point and end point to return them to their original state. Re-inputting the start point and end point is cumbersome for the worker. [Prior art documents] [Patent documents]
[0007] [Patent Document 1] Patent No. 7097722 Summary of the Invention [Problem to be solved by the invention]
[0008] Therefore, it is an object of one or more embodiments of the present invention to allow an operator to move the base model of a robot model in three-dimensional space without the operator having to re-input nodes, such as the start point or end point, to return them to their original positions. [Means for solving the problem]
[0009] In order to solve the above problems, according to one aspect of the present invention, a program causes a processor to: a first acquisition process of acquiring a position and an orientation of a tool model of the robot model in a three-dimensional space as position information and orientation information of at least one node in an absolute coordinate system through an operation of an input device by an operator; a second acquisition process for acquiring, when the operator moves a base model of the robot model by operating the input device, a position and an orientation of the base model after the movement as position information and orientation information of the base model in the absolute coordinate system; a conversion process for converting the position information and orientation information of the node acquired by the first acquisition process into position information and orientation information in a base coordinate system based on the base model, based on the position information and orientation information of the base model acquired by the second acquisition process; a calculation process of calculating angles of the joints of the robot model from the position information and the posture information of the nodes after the transformation by the transformation process; Execute the command.
[0010] In order to solve the above problems, according to one aspect of the present invention, a teaching support device includes a processor, The processor, a first acquisition process of acquiring a position and an orientation of a tool model of the robot model in a three-dimensional space as position information and orientation information of at least one node in an absolute coordinate system through an operation of an input device by an operator; a second acquisition process for acquiring, when the operator moves a base model of the robot model by operating the input device, a position and an orientation of the base model after the movement as position information and orientation information of the base model in the absolute coordinate system; a conversion process for converting the position information and orientation information of the node acquired by the first acquisition process into position information and orientation information in a base coordinate system based on the base model, based on the position information and orientation information of the base model acquired by the second acquisition process; a calculation process of calculating angles of the joints of the robot model from the position information and the posture information of the nodes after the transformation by the transformation process; Execute. Effect of the Invention
[0011] According to one aspect of the present invention, the operator does not have to re-input nodes such as start points or end points back to their original state. [Brief description of the drawings]
[0012] [Figure 1]FIG. 1 is a diagram showing a robot, a robot control device, and a teaching support device. [Diagram 2] FIG. 2 is a diagram showing a virtual three-dimensional space used for calculations by the teaching support device. [Diagram 3] FIG. 3 is a block diagram of the teaching support device. [Figure 4] FIG. 4 is an example of a display screen displayed on the display device of the teaching support device. [Diagram 5] FIG. 5 is a flowchart showing a series of processes executed by the processor of the teaching support device. [Figure 6] FIG. 6 is a flowchart showing a series of processes executed by the processor of the teaching support device. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0013] Hereinafter, the embodiments will be described with reference to the drawings. The features and technical effects of the embodiments will be understood from the following detailed description and drawings. However, the scope of the present invention is not limited to the embodiments disclosed below. The drawings are provided for illustrative purposes only, and therefore the scope of the present invention is not limited to the illustrations in the drawings.
[0014] <1. Overview of the teaching support device> FIG. 1 is a diagram showing a robot 1, a robot control device 2, and a teaching support device 50.
[0015] The teaching support device 50 is a device that supports a teaching operation by an operator 99. The teaching operation refers to an operation in which the operator 99 uses the teaching support device 50 to teach the robot 1 so that the robot 1 can perform a desired operation while avoiding obstacles. Specifically, when the operator 99 inputs data such as numerical values and commands to the teaching support device 50, the teaching support device 50 creates an operation program executable by the robot control device 2. The operator 99 copies the operation program created by the teaching support device 50 to the robot control device 2 using a network or a portable storage medium.
[0016] The robot 1 is a vertical articulated robot with six or seven degrees of freedom having six or seven joints 1a. That is, the robot 1 has a base 1c at the proximal end of the robot 1, a tool 1d at the distal end of the robot 1, and a plurality of joints 1a and links 1b connecting the base 1c and the tool 1d. The joints 1a and links 1b are alternately arranged from the base 1c to the tool 1d. The proximal side refers to the side of the robot 1 that is closer to the base 1c, and the distal side refers to the side of the robot 1 that is farther from the tool 1d. The robot 1 is also called a manipulator. The tool 1d is also called an end effector. The number of joints of the robot 1 may be other than six or seven. The base 1c of the robot 1 may be installed on a floor, wall, shelf, ceiling, pedestal, pillar, or stand, for example.
[0017] The operation program is executable by the robot controller 2. When the robot controller 2 controls the robot 1 in accordance with the operation program, the robot 1 operates in accordance with the control of the robot controller 2.
[0018] The operation program includes time series data in which the posture of the robot 1 is arranged in time series. The posture of the robot 1 is expressed by the angle of each joint of the robot 1. That is, the operation program includes first time series data in which the angle of each joint of the robot 1 is arranged in time series for each joint. The posture of the robot 1 may be expressed by the position and posture of the tool 1d in addition to the angle of each joint of the robot 1. That is, the operation program may include second time series data in which the position and posture of the tool 1d in a three-dimensional coordinate system are arranged in time series in addition to the first time series data. The second time series data can also be called trajectory data of the tool 1d. The three-dimensional coordinate system here refers to a base coordinate system based on the base 1c of the robot 1. The origin of the base coordinate system is determined, for example, on the base 1c of the robot 1, the position of the tool 1d is expressed by xyz coordinates in the base coordinate system, and the posture of the tool 1d is expressed by a roll angle, a pitch angle, and a yaw angle. The x-axis, y-axis, and z-axis in the base coordinate system are mutually orthogonal. The x-coordinate represents the position in the x-axis direction. The y coordinate represents the position along the y axis. The z coordinate represents the position along the z axis. The roll angle represents the angle of rotation around the x axis. The pitch angle represents the angle of rotation around the y axis. The yaw axis represents the angle of rotation around the z axis.
[0019] 2 is a diagram showing a virtual three-dimensional space used for calculations by the teaching support device 50. The robot model 10 is a model of the robot 1. The base model 11 is a model of the base 1c of the robot 1. The link model 12 is a model of the link 1b of the robot 1. The tool model 13 is a model of the tool 1d of the robot 1.
[0020] During the teaching operation, the operator 99 operates the teaching support device 50, whereby the operator inputs the position and orientation of the base model 11 of the robot model 10 to the teaching support device 50 in the absolute coordinate system. Then, the teaching support device 50 recognizes the position and orientation of the base model 11. The position of the base model 11 in the absolute coordinate system is expressed by XYZ coordinates. The orientation of the base model 11 in the absolute coordinate system is expressed by an absolute roll angle, an absolute pitch angle, and an absolute yaw angle. The position and orientation of the base model 11 in the absolute coordinate system represent the relationship between the absolute coordinate system and the base coordinate system. Therefore, the teaching support device 50 can convert the XYZ coordinates, absolute roll angle, absolute pitch angle, and absolute yaw angle in the absolute coordinate system into the xyz coordinates, roll angle, pitch angle, and yaw angle in the base coordinate system based on the position and orientation of the base model 11. Furthermore, the teaching support device 50 can convert the xyz coordinates, roll angle, pitch angle and yaw angle in the base coordinate system into XYZ coordinates, absolute roll angle, absolute pitch angle and absolute yaw angle in the absolute coordinate system based on the position and orientation of the base model 11.
[0021] In the teaching operation, the operator 99 operates the teaching support device 50, and inputs the position and orientation of the obstacle model 20 modeled in the relative coordinate system to the teaching support device 50 in the absolute coordinate system. Then, the teaching support device 50 recognizes the position, orientation, and range of the obstacle model 20. The position of the obstacle model 20 in the absolute coordinate system is expressed in XYZ coordinates. The orientation of the obstacle model 20 in the absolute coordinate system is expressed in absolute roll angle, absolute pitch angle, and absolute yaw angle. The shape data of the obstacle model 20 is expressed in uvw coordinates in the relative coordinate system, so that the obstacle model 20 is modeled in the relative coordinate system. The range of the obstacle model 20 in the absolute coordinate system is determined from the position and orientation of the obstacle model in the absolute coordinate system and the shape data of the obstacle model 20 expressed in the relative coordinate system. Here, the u axis, v axis, and w axis in the relative coordinate system are mutually orthogonal. The u coordinate represents the position in the u axis direction. The v coordinate represents the position in the v axis direction. The w coordinate represents the position in the w-axis direction. Note that the input of the position and orientation of the obstacle model 20 may be omitted.
[0022] In the teaching operation, the worker 99 operates the teaching support device 50, and the worker inputs a plurality of nodes to the teaching support device 50 in order in the absolute coordinate system. Then, the teaching support device 50 recognizes these nodes. A node is a point through which the tool 1d passes when the robot 1 operates according to the operation program. The first input node is the starting point where the movement of the tool 1d begins when the robot 1 starts operating. The last input node is the end point where the movement of the tool 1d ends when the robot 1 ends operating. A node represents the position and orientation of the tool 1d arranged at that node in the absolute coordinate system. The position of the tool 1d in the absolute coordinate system is represented by XYZ coordinates in the absolute coordinate system, and the orientation of the tool 1d in the absolute coordinate system is represented by an absolute roll angle, an absolute pitch angle, and an absolute yaw angle. The X-axis, Y-axis, and Z-axis in the absolute coordinate system are mutually orthogonal. The X-coordinate represents the position in the X-axis direction. The Y-coordinate represents the position in the Y-axis direction. The Z-coordinate represents the position in the Z-axis direction. Absolute roll represents the angle of rotation around the X axis. Absolute pitch represents the angle of rotation around the Y axis. Absolute yaw represents the angle of rotation around the Z axis.
[0023] After inputting the positions, orientations, and nodes of the base model 11 and obstacle model 20 of the robot model 10, the operator 99 gives an analysis start command to the teaching support device 50. Then, the teaching support device 50 calculates first time series data based on the nodes expressed by the position and orientation of the tool 1d in the absolute coordinate system, and calculates second time series data as necessary.
[0024] Incidentally, during the teaching work, the worker 99 may wish to change the position and posture of the base 11 of the robot model 10. If the worker 99 re-inputs the nodes after changing the position and posture of the base 11 of the robot model 10, the re-input of the nodes is troublesome for the worker 99. Therefore, the teaching support device 50 is provided to avoid such troublesomeness for the worker 99.
[0025] <2. Configuration of the teaching support device> FIG. 3 is a block diagram of the teaching support device 50. As shown in FIG. The teaching support device 50 is a computer system such as a laptop computer system, a tablet computer system, a desktop computer system, a cloud computer system, a host computer system, or a smartphone.
[0026] The teaching support device 50 includes a processor 51, a memory 52, an input device 33, a display device 54, and a storage 55. The teaching support device 50 may include components other than those illustrated in FIG.
[0027] The processor 51 is a computer having one or more CPUs (Central Processing Units). In addition to the CPU, the processor 51 may have a GPU (Graphics Processing Unit) that performs calculations under the command of the CPU. The processor 51 performs various calculation processes and also controls the entire teaching support device 50.
[0028] The memory 52 is configured by a RAM such as a volatile memory, etc. The memory 52 provides the processor 51 with a storage area and a working area for temporarily storing data during arithmetic processing by the processor 51.
[0029] The input device 53 is configured by devices such as a touch panel, a mouse, a touch pad, a starry skype, a pointing device, a keyboard, a key, or a push button. When the worker 99 performs a gesture such as pressing, moving, sliding, dragging, dropping, clicking, multi-clicking, touching, multi-touching, tapping, multi-tapping, or swiping on the input device 53, the processor 51 recognizes and acquires input information or a command corresponding to the gesture. A gesture is also called an operation.
[0030] The display device 54 is configured by a display device such as a liquid crystal display device or an organic EL (Electro Luminescence) display device, etc. The processor 51 generates a screen for implementing a GUI (Graphical User Interface), a video signal of the screen is output to the display device 54, and the display device 54 displays the screen in accordance with the video signal.
[0031] The storage 55 is configured by a storage device such as a semiconductor storage device or a magnetic storage device. The storage 55 may be a NAS (Network Attached Storage), a data server, a file server, or a cloud computing system connected to the teaching support device 50 via a computer network. An OS (Operating System) is installed in the teaching support device 50, and various programs constituting the OS are stored in the storage. The processor 51 can execute various programs constituting the OS. The OS may be a general-purpose OS such as Windows (registered trademark), Android (registered trademark), iOS (registered trademark), macOS (registered trademark), Linux (registered trademark), or Unix (registered trademark). A program 56 is stored in the storage 55, and the program 56 is installed in the OS. The processor 51 can execute the program 56 on the OS. Data 57 to 59 available in the program 56 are stored in the storage 55.
[0032] The specification data 57 includes first movable range data 57a, link length data 57b, second movable range data 57c, and singular point data 57d. The first movable range data 57a represents the movable range of each joint 1a of the robot 1. The link length data 57b represents the length of each link 1b of the robot 1. The second movable range data 57c represents the movable range of the tool 1d in the base coordinate system. The singular point data 57d represents an uncontrollable singular posture that the robot 1 cannot take, as the angle of the joint 1a of the robot 1 that has taken the singular posture. The angle is also called a singular point.
[0033] The robot model data 58 includes shape data, joint data, and reference position data. The shape data represents the shapes of models 11, 12, and 13 of the base 1c, link 1b, and tool 1d of the robot 1 in a relative coordinate system. The joint data represents the positions of the proximal and distal joints 1a of the base 1c, link 1b, and tool 1d for each of the models 11, 12, and 13 in a relative coordinate system. The reference position data represents the position and orientation of the base model 11 in the base coordinate system.
[0034] The obstacle model data 59 includes shape data that represents the shape of the obstacle model 20 in a relative coordinate system.
[0035] <3. Operation of the teaching support device> The following describes the teaching operation performed by the operator using the teaching support device 50. Additionally, the following describes the flow of a series of processes executed by the processor 51 in accordance with the program 56.
[0036] (1) Startup When the operator 99 issues a command to start the program 56 by operating the input device 53, the processor 51 follows the command to start the program 56. Then, the processor 51 executes the following series of processes according to the program 56.
[0037] (2) Display of the model First, the processor 51 reads the specification data 57, the robot model data 58, and the obstacle model data 59.
[0038] Next, the processor 51 sets the position and posture of the base model 11 of the robot model 10 to default values in the absolute coordinate system, and also sets the posture of the robot model 10, i.e., the angles of each joint of the robot model 10, to default values. Then, the processor 51 sets the robot model 10 in the three-dimensional space of the absolute coordinate system in accordance with the robot model data 58.
[0039] Furthermore, the processor 51 sets the position and orientation of the obstacle model 20 to default values in the absolute coordinate system. Then, the processor 51 sets the obstacle model 20 in the three-dimensional space of the absolute coordinate system in accordance with the obstacle model data 59. Note that the obstacle model 20 does not necessarily have to be set in the three-dimensional space of the absolute coordinate system.
[0040] The processor 51 generates an image obtained by viewing the robot model 10 and the obstacle model 20 in a three-dimensional space from a predetermined viewpoint in the three-dimensional space. Specifically, the processor 51 converts the coordinate systems of the robot model 10 and the obstacle model 20 from a three-dimensional absolute coordinate system to a two-dimensional screen coordinate system so that the robot model 10 and the obstacle model 20 are perspectively projected onto a screen perpendicular to the line of sight from the viewpoint, and then rasterizes the two-dimensional robot model 10 and the obstacle model 20. In this way, an image obtained by rasterizing the two-dimensional robot model 10 and the obstacle model 20 is generated. The robot model 10 and the obstacle model 20 are drawn in the image. The processor 51 composites an object into the image by placing the object in the foreground.
[0041] The processor 51 displays a screen including the image on the display device 54. FIG. 4 is a diagram showing an example of such a display screen. As shown in FIG. 4, the display screen displays a robot model 10, an obstacle model 20, and objects 31 and 32. The object 31 is a GUI (Graphical User Interface) element such as a button for instructing the processor 51 to switch between selection and non-selection of the fixed mode. The fixed mode will be described in detail later. The object 32 is a GUI element such as a button for instructing the processor 51 to start creating an operation program.
[0042] (3) Support for teaching tasks 4 is displayed on the display device 54, when the operator 99 operates the input device 53 to input numerical values, commands, etc., the processor 51 executes processing according to the input, and the teaching work performed by the operator 99 is supported by the teaching support device 50. The teaching work of the operator 99 and the processing of the processor 51 will be described in detail below.
[0043] (3-1) Selecting or deselecting fixed mode The worker selects object 31 by operating input device 53. Then, processor 51 recognizes the selection of fixed mode, and processor 51 stores the selection of fixed mode in memory 52. Meanwhile, the worker deselects object 31 by operating input device 53. Then, processor 51 recognizes that fixed mode has not been selected, and processor 51 stores the selection of fixed mode in memory 52.
[0044] (3-2) Moving the obstacle model The worker 99 operates the input device 53 to select the obstacle model 20. Then, the processor 51 recognizes the selection of the obstacle model 20. After selecting the obstacle model 20, the worker 99 operates the input device 53 to move the obstacle model 20 and input the position and orientation of the obstacle model 20 after the movement. Then, the processor 51 recognizes and acquires the position and orientation of the obstacle model 20 in the absolute coordinate system. Furthermore, the processor 51 resets the obstacle model 20 after the movement in the three-dimensional space of the absolute coordinate system. Then, the processor 51 generates an image obtained by viewing the robot model 10 and the obstacle model 20 in the three-dimensional space from a predetermined viewpoint in the three-dimensional space. The processor 51 causes the display device 54 to display a screen including the image. Therefore, the obstacle model 20 moves on the display screen of the display device 54. Even if the obstacle model 20 is not set in the three-dimensional space of the absolute coordinate system in the above-mentioned "(2)", the operator 99 may perform an operation similar to that in "(3-2)", and the processor 51 may perform a process similar to that in "(3-2)". In this case, the obstacle model 20 is newly displayed on the display screen of the display device 54.
[0045] (3-3) Obtaining node position and orientation information and calculating joint angles The worker 99 operates the input device 53 to select the tool model 13 of the robot model 10. The processor 51 then recognizes the selection of the tool model 13. After selecting the tool model 13, the worker 99 operates the input device 53 to move the tool model 13 of the robot model 10 and input the position and orientation of the tool model 13 after the movement. The processor 51 then recognizes and acquires the position and orientation of the tool model 13 in the absolute coordinate system, numbers the position and orientation as the first node, and stores it in the memory 52. The node consists of position information and orientation information in the absolute coordinate system. The position information represents the position of the tool model 13 in the absolute coordinate system. The orientation information represents the orientation of the tool model 13 in the absolute coordinate system.
[0046] Next, the processor 51 converts the position information and orientation information of the node in the absolute coordinate system into position information and orientation information of the node in the base coordinate system based on the position and orientation of the base model 11 in the absolute coordinate system. The processor 51 associates the position information and orientation information of the node in the base coordinate system with the position information and orientation information of the node in the absolute coordinate system, and stores the position information and orientation information of the node in the base coordinate system in the memory 52. The position information of the node in the base coordinate system represents the position of the tool model 13 in the base coordinate system. The orientation information of the node in the base coordinate system represents the orientation of the tool model 13 in the base coordinate system.
[0047] Next, the processor 51 uses the specification data 57, particularly the first movable range data 57a and the link length data 57b, to calculate the angle of each joint of the robot model 10 from the position information and posture information of the node in the base coordinate system by inverse kinematics analysis. The processor 51 associates the calculated angle of each joint with the position information and posture information of the node in the absolute coordinate system and the base coordinate system, and stores the calculated angle of each joint in the memory 52. The calculated angle of each joint is the posture of the robot model 10 when the tool model 13 is in a position and posture similar to the position information and posture information of the node.
[0048] Next, the processor 51 resets the robot model 10 in the three-dimensional space of the absolute coordinate system by reflecting the angles calculated as described above in each joint of the robot model 10 set in the three-dimensional space of the absolute coordinate system. The processor 51 generates an image obtained by viewing the robot model 10 and the obstacle model 20 in the three-dimensional space from a predetermined viewpoint in the three-dimensional space. The processor 51 displays a screen including the image on the display device 54. Therefore, on the display screen of the display device 54, the position and posture of the tool model 13 are changed, and the posture of the robot model 10 is also changed.
[0049] When the worker 99 performs similar operations one after another, the processor 51 performs similar processing for each similar operation. For this purpose, the processor 51 numbers a plurality of nodes in ascending order, and stores, for each number, the position information and posture information of the node in the absolute coordinate system and the base coordinate system in association with the angles of each joint of the robot model 10 in the memory 52. Also, on the display screen of the display device 54, the position and posture of the tool model 13 are changed one after another, and the posture of the robot model 10 is changed one after another.
[0050] (3-4) Changing the base position The operator 99 operates the input device 53 to select the base model 11 of the robot model 10. Then, the processor 51 recognizes the selection of the base model 11. After selecting the base model 11, the operator 99 operates the input device 53 to move the base model 11 of the robot model 10 and input the position and posture of the base model 11 after the movement. When the fixed mode is not selected, the posture of the robot model 10 does not change on the display screen of the display device 54, and the robot model 10 moves with the change in the position and posture of the base model 11. When the fixed mode is selected, the posture of the robot model 10 changes on the display screen of the display device 54, without changing the position and posture of the tool model 13. To achieve this, the processor 51 executes a series of processes as follows. The series of processes will be described in detail below with reference to FIG. 5.
[0051] (3-4-1) Step S1 In step S1, the processor 51 determines whether or not the base model 11 has been moved based on the operation of the input device 53 by the worker 99. At this time, the worker 99 operates the input device 53 to move the base model 11, thereby inputting the position and orientation of the base model 11 after the movement. Then, the processor 51 recognizes the position and orientation of the base model 11 after the movement, and the processing of the processor 51 proceeds to step S2.
[0052] (3-4-2) Step S2 In step S2, processor 51 determines whether or not the fixed mode is selected. If the fixed mode is not selected, the process of processor 51 proceeds to step S3. If the fixed mode is selected, the process of processor 51 proceeds to step S5.
[0053] (3-4-3) Step S3 In step S3, the processor 51 obtains the difference between the position and orientation of the base model 11 before the movement and the position and orientation of the base model 11 after the movement. As described above in "(3-3)", the position information and orientation information of the node in the absolute coordinate system are stored in the memory 52, and the processor 51 updates the position information and orientation information of the node in the absolute coordinate system by subtracting the difference from the position information and orientation information of the node in the absolute coordinate system.
[0054] (3-4-4) Step S4 In step S4 after step S3, the processor 51 sets the base model 11 of the robot model 10 set in the three-dimensional space of the absolute coordinate system to the position and posture input in step S1. Furthermore, the processor 51 reflects the angle associated with any node in the memory 52 to each joint of the robot model 10, thereby resetting the robot model 10 after the movement of the base model 11 in the three-dimensional space of the absolute coordinate system. Then, the processor 51 generates an image obtained by viewing the robot model 10 and the obstacle model 20 in the three-dimensional space from a predetermined viewpoint in the three-dimensional space. The processor 51 displays a screen including the image on the display device 54. Therefore, on the display screen of the display device 54, the robot model 10 moves in accordance with the change in the position and posture of the base model 11 without changing the posture of the robot model 10.
[0055] Thereafter, the process of processor 51 returns to step S1.
[0056] (3-4-5) Step S5 In step S5, processor 51 sets count value N to 1. Count value N indicates the number of the node that is the target of the processes in steps S6 to S9.
[0057] (3-4-6) Step S6 In step S6 after step S5, the processor 51 converts the position information and orientation information of the node numbered "N" in the absolute coordinate system into position information and orientation information in the base coordinate system based on the position and orientation of the base model 11 input in step S1. Then, the processor 51 updates the position information and orientation information of the node numbered "N" in the base coordinate system to the converted position information and orientation information. Here, the position information and orientation information of the node numbered "N" in the absolute coordinate system are stored in the memory 52 as in the above-mentioned "(3-3)". The position information and orientation information before the update in the base coordinate system are stored in the memory 52 as in the above-mentioned "(3-3)". The updated position information and orientation information in the base coordinate system are stored in the memory 52 associated with the number "N".
[0058] (3-4-7) Step S7 In step S7 after step S6, the processor 51 uses the specification data 57, particularly the first movable range data 57a and the link length data 57b, to calculate the angles of each joint of the robot model 10 from the updated position information and posture information in the base coordinate system by inverse kinematics analysis. Then, the processor 51 updates the angles of each joint associated with the number "N" in the memory 52 to the angles calculated here.
[0059] (3-4-8) Step S8 In step S8 after step S7, the processor 51 sets the base model 11 of the robot model 10 set in the three-dimensional space of the absolute coordinate system to the position and orientation input in step S1. Furthermore, the processor 51 reflects the updated angles in each joint of the robot model 10, thereby resetting the robot model 10 after the movement of the base model 11 in the three-dimensional space of the absolute coordinate system. Then, the processor 51 generates an image obtained by viewing the robot model 10 and the obstacle model 20 in the three-dimensional space from a predetermined viewpoint in the three-dimensional space. The processor 51 displays a screen including the image on the display device 54. Therefore, on the display screen of the display device 54, the orientation of the robot model 10 changes without changing the position and orientation of the tool model 13.
[0060] (3-4-9) Step S9 In step S9 after step S8, processor 51 detects whether an error has occurred. Processor 51 executes a series of processes as described below. The series of processes will be described in detail below with reference to FIG.
[0061] (3-4-9-1) Step S21 In step S21, the processor 51 compares the updated position information and orientation information in the base coordinate system with the second movable range data 57c. The processor 51 determines whether or not the updated position information and orientation information in the base coordinate system falls within the movable range of the second movable range data 57c. If the updated position information and orientation information in the base coordinate system falls within the movable range of the second movable range data 57c, the process of the processor 51 proceeds to step S23. If the updated position information and orientation information in the base coordinate system does not fall within the movable range of the second movable range data 57c, the process of the processor 51 proceeds to step S22.
[0062] (3-4-9-2) Step S22 In step S22, the processor 51 determines that there is an error regarding the movable range of the tool 1d. After that, the process of the processor 51 proceeds to step S23.
[0063] (3-4-9-3) Step S23 In step S23, the processor 51 compares the updated angle of each joint with the singularity data 57d. The processor 51 determines whether or not the updated angle of each joint matches a singularity in the singularity data 57d. If the updated angle of each joint does not match a singularity in the singularity data 57d, the process of the processor 51 proceeds to step S25. If the updated angle of each joint matches a singularity in the singularity data 57d, the process of the processor 51 proceeds to step S24.
[0064] (3-4-9-4) Step S24 In step S24, the processor 51 determines an error regarding a singular point of the robot 1. After that, the process of the processor 51 proceeds to step S25.
[0065] (3-4-9-5) Step S25 In step S25, the processor 51 determines whether or not the robot model 10 has self-collided, based on the updated angles of each joint and the link length data 57b. If the processor 51 determines that the robot model 10 has not self-collided, the process of the processor 51 proceeds to step S27. If the processor 51 determines that the robot model 10 has self-collided, the process of the processor 51 proceeds to step S26. A self-collision refers to a state in which the models 11, 12, and 13 of the robot model 10 partially overlap each other in the three-dimensional space in the absolute coordinate system when each joint of the robot model 10 takes the updated angle.
[0066] (3-4-9-6) Step S26 In step S26, the processor 51 determines that there is an error regarding the self-collision of the robot 1. After that, the process of the processor 51 proceeds to step S27.
[0067] (3-4-9-7) Step S27 In step S27, the processor 51 determines whether or not there is a collision between the robot model 10 and the obstacle model 20, based on the updated angles of each joint, the link length data 57b, and the position, posture, and range of the obstacle model 20. If the processor 51 determines that there is no collision, the process of the processor 51 proceeds to step S10. If the processor 51 determines that there is a collision, the process of the processor 51 proceeds to step S28. Note that a self-collision between the robot model 10 and the obstacle model 20 refers to the models 11, 12, and 13 of the robot model 10 partially overlapping with the obstacle model 20 in the three-dimensional space in the absolute coordinate system.
[0068] (3-4-9-8) Step S28 In step S28, processor 51 determines an error regarding a collision between robot 1 and an obstacle. After that, the process of processor 51 transitions to step S10.
[0069] (3-4-10) Step S10 In step S10 after detecting the presence or absence of an error, the processor 51 determines whether or not an error has been recognized in steps S22, 24, S26, and S28. If the processor 51 recognizes an error in step S22, 24, S26, or S28, the process of the processor 51 proceeds to step S11. If the processor 51 does not recognize an error in any of steps S22, 24, S26, and S28, the process of the processor 51 proceeds to step S12.
[0070] (3-4-11) Step S11 In step S11, processor 51 causes display device 54 to display an error. Here, if processor 51 determines an error in step S22, processor 51 causes display device 54 to display an error regarding the movable range. If processor 51 determines an error in step S24, processor 51 causes display device 54 to display an error regarding a singular point. If processor 51 determines an error in step S26, processor 51 causes display device 54 to display an error regarding a self-collision. If processor 51 determines an error in step S28, processor 51 causes display device 54 to display an error regarding a collision with an obstacle. Thereafter, the process of processor 51 returns to step S1.
[0071] (3-4-12) Step S12 After step S10, in step S12, the processor 51 increments the count value N by adding one to the count value N.
[0072] (3-4-13) Step S13 In step S13 after step S12, the processor 51 compares the maximum node number stored in the memory 52 with the count value N. If the comparison result shows that the count value N exceeds the maximum node number, the processor 51 resets the count value N, and the processing of the processor 51 returns to step S1. Therefore, when the worker 99 moves the base model 11 again by operating the input device 53, the processing of the processor 51 shifts from step S1 to step S2.
[0073] If the comparison result in step S13 indicates that count value N is equal to or less than the maximum node number, the process of processor 51 returns to step S6. Therefore, the node with the number equal to the incremented count value N becomes the target of the processes in steps S6 to S9.
[0074] (3-5) Creating an operation program 4 is displayed on the display device 54, the worker 99 operates the input device 53 to select and confirm the object 32. Then, the processor 51 recognizes the selection and confirmation of the object 32. As a result, the processor 51 creates an operation program based on the position information and posture information of the node base coordinate system stored in the memory 52, the angles of each joint associated with the node number, and the specification data 57.
[0075] <4. Summary> As described in "(3-3)", the operator 99 operates the input device 53 to move the tool model 13 of the robot model 10 and input the position and orientation of the tool model 13 after the movement. Then, the processor 51 acquires the position information and orientation information of the node in the absolute coordinate system. In the subsequent step S1, when the operator 99 operates the input device 53 to move the base model 11, the processor 51 acquires the position and orientation of the base model 11 after the movement. In the case of the selection of the fixed mode, in the subsequent step S6, the processor 51 converts the position information and orientation information of the node in the absolute coordinate system into the position information and orientation information of the node in the base coordinate system based on the position and orientation of the base model 11 after the movement. In the subsequent step S7, the processor 51 uses the link length data 57b to calculate the angle of each joint of the robot model 10 from the converted node position information and orientation information by inverse kinematic analysis. In the subsequent step S8, the processor 51 sets the base model 11 of the robot model 10, which is set in the three-dimensional space of the absolute coordinate system, to the position and posture input in step S1. Furthermore, the processor 51 reflects the angles calculated in step S7 to each joint of the robot model 10. Therefore, on the display screen of the display device 54, the posture of the robot model 10 changes without changing the position and posture of the tool model 13. Therefore, the operator 99 does not need to re-input the nodes to return the tool model 13 to its original state.
[0076] In step S21, the processor 51 determines whether or not the node position information and orientation information after conversion in step S6 falls within the movable range of the second movable range data 57c. If the node position information and orientation information after conversion do not fall within the movable range of the second movable range data 57c, the processor 51 displays an error regarding the movable range on the display device 54 in step S11. This allows the operator to recognize the appropriateness of the position and orientation of the base model 11 after movement.
[0077] In step S23, the processor 51 determines whether or not the angle of each joint calculated in step S7 matches a singularity in the singularity data 57d. If the angle of each joint matches a singularity in the singularity data 57d, in step S11, the processor 51 displays an error regarding the singularity on the display device 54. This allows the operator to recognize the appropriateness of the position and posture of the base model 11 after the movement.
[0078] In step S25, the processor 51 determines whether or not the robot model 10 has self-collided based on the angles of the joints calculated in step S7 and the link length data 57b. If a self-collision of the robot model 10 is detected, the processor 51 displays an error regarding the self-collision on the display device 54. This allows the operator to recognize the appropriateness of the position and posture of the base model 11 after the movement.
[0079] In step S27, the processor 51 determines whether or not there is a collision between the robot model 10 and the obstacle model 20, based on the angles of each joint and the link length data 57b calculated in step S7, and the position, posture, and range of the obstacle model 20. If a collision between the robot model 10 and the obstacle model 20 is recognized, the processor 51 displays an error regarding the collision with the obstacle on the display device 54. This allows the operator to recognize the appropriateness of the position and posture of the base model 11 after the movement. [Explanation of symbols]
[0080] 10 Robot Models 11 Base model 12 Link Model 13 Tool Model 20 Obstacle Model 50 Teaching support device 51 Processors 55 Storage 56 Programs 57 Specification Data 58 Robot model data 59 Obstacle model data
Claims
1. To the processor, a first acquisition process of acquiring a position and an orientation of a tool model of the robot model in a three-dimensional space as position information and orientation information of at least one node in an absolute coordinate system through an operation of an input device by an operator; a second acquisition process for acquiring, when the operator moves a base model of the robot model by operating the input device, a position and an orientation of the base model after the movement as position information and orientation information of the base model in the absolute coordinate system; a conversion process for converting the position information and orientation information of the node acquired by the first acquisition process into position information and orientation information in a base coordinate system based on the base model, based on the position information and orientation information of the base model acquired by the second acquisition process; a calculation process of calculating angles of the joints of the robot model from the position information and the posture information of the nodes after the transformation by the transformation process; A program that executes the following.
2. The calculation process includes: The processor uses the length of each link model of the robot model to calculate angles of the joints of the robot model by inverse kinematic analysis from position information and posture information of the nodes after the conversion by the conversion process. is The program according to claim 1.
3. The processor executes the conversion process and the calculation process for each of a plurality of nodes for which position information and acquisition information are acquired by the first acquisition process.
3. The program according to claim 1 or 2.
4. The plurality of nodes includes a start point of the tool when a robot motion begins and an end point of the tool when the robot motion ends. The program according to claim 1 or 2.
5. The processor, a third acquisition process of acquiring a position and an orientation of the base model before the base model is moved as position information and orientation information of the base model in the absolute coordinate system; a second conversion process for converting the position information and orientation information of the node acquired by the first acquisition process into position information and orientation information in the base coordinate system based on the position information and orientation information of the base model acquired by the third acquisition process; a second calculation process of calculating angles of joints of the robot model from position information and posture information of the nodes after the transformation by the second transformation process; The program according to claim 1,
6. The processor, a determination process for determining whether or not the position information and the orientation information of the node after the conversion process are within a predetermined movable range; a process of outputting an error if the determination process determines that the position information and the orientation information of the node are not within the predetermined movable range; The program according to claim 1,
7. The processor, a determination process for determining whether or not the angle of the joint calculated by the calculation process coincides with a singular point; a process of outputting an error if the determination process determines that the angle of the joint coincides with the singular point; The program according to claim 1,
8. The processor, a determination process for determining whether or not the robot model overlaps with the obstacle model based on the angles of the joints calculated by the calculation process and the position, posture, and range of the obstacle model set in the three-dimensional space; a process of outputting an error if the determination process determines that the robot model overlaps with the obstacle model; The program according to claim 1,
9. The processor, A process of setting the obstacle model so as to move the obstacle model in the three-dimensional space in accordance with an operation of the input device by the worker. The program according to claim 8, which causes the program to execute the steps of:
10. Equipped with a processor, The processor, a first acquisition process of acquiring a position and an orientation of a tool model of the robot model in a three-dimensional space as position information and orientation information of at least one node in an absolute coordinate system through an operation of an input device by an operator; a second acquisition process for acquiring, when the operator moves a base model of the robot model by operating the input device, a position and an orientation of the base model after the movement as position information and orientation information of the base model in the absolute coordinate system; a conversion process for converting the position information and orientation information of the node acquired by the first acquisition process into position information and orientation information in a base coordinate system based on the base model, based on the position information and orientation information of the base model acquired by the second acquisition process; a calculation process of calculating angles of the joints of the robot model from the position information and the posture information of the nodes after the transformation by the transformation process; A teaching support device that performs the above.
Citation Information
Patent Citations
How to restore robot location information
JP7097722B2