WO2024042653A1 - 教示装置 - Google Patents

教示装置 Download PDF

Info

Publication number
WO2024042653A1
WO2024042653A1 PCT/JP2022/031928 JP2022031928W WO2024042653A1 WO 2024042653 A1 WO2024042653 A1 WO 2024042653A1 JP 2022031928 W JP2022031928 W JP 2022031928W WO 2024042653 A1 WO2024042653 A1 WO 2024042653A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
robot
teaching
conversion
unit
Prior art date
Application number
PCT/JP2022/031928
Other languages
English (en)
French (fr)
Inventor
邦彦 原田
悦来 王
康広 内藤
Original Assignee
ファナック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ファナック株式会社 filed Critical ファナック株式会社
Priority to PCT/JP2022/031928 priority Critical patent/WO2024042653A1/ja
Priority to JP2022572384A priority patent/JP7256932B1/ja
Priority to JP2023046385A priority patent/JP7448706B1/ja
Priority to TW112127527A priority patent/TW202409766A/zh
Publication of WO2024042653A1 publication Critical patent/WO2024042653A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/10Programme-controlled manipulators characterised by positioning means for manipulator elements
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine

Definitions

  • the present invention relates to a teaching device that performs offline teaching of a robot.
  • Patent Document 1 describes, "a dimension variable 3D model creation unit 71 that creates a 3D model of a workpiece with variable dimensions; a measurement unit 5 that measures the position, orientation, and dimensions of the actual workpiece; A system comprising a measurement-based three-dimensional model correction unit 72 that corrects a model, and an offline teaching unit 73 that teaches robot motion offline based on the corrected three-dimensional model” (abstract).
  • Patent Document 2 states, ⁇ In other words, conventionally, when a mechanism parameter is updated, an operation program is thereafter executed using the updated mechanism parameter, so the operation program taught before the update is executed as is. According to this aspect, by correcting the position data of the motion program using the mechanism parameters before update and the current mechanism parameters, it was not possible to realize the position and posture of the tip of the robot at the time of teaching.
  • a three-dimensional model that is in accordance with design values that is, does not include errors
  • a three-dimensional model that does not include errors may have errors between the position reached by the actual robot and the position reached by the actual robot.
  • Another possible approach is to measure the actual dimensions of the robot, modify the three-dimensional model of the robot, and perform offline teaching.
  • robots have connections between links, and it is difficult to accurately measure, for example, the distance between the centers of rotation of the links.
  • An object of the present invention is to provide a teaching device that can improve the accuracy of teaching using such a virtual robot.
  • One aspect of the present disclosure is a teaching device for teaching a robot, which provides mechanical data for determining the relationship between an angular position at a joint of the robot and a tip position of the robot, the mechanical error of the actual robot.
  • a storage unit that stores mechanical data including parameters; and a virtual robot control that controls the movement of the virtual robot based on the mechanical data so that a position error that occurs in the real robot due to the mechanical error parameter occurs in the virtual robot.
  • a teaching device comprising: Another aspect of the present disclosure is a teaching device for teaching a robot, the mechanism data for determining the relationship between the angular position at a joint of the robot and the position of the tip of the robot, the mechanism of an actual robot.
  • a storage unit that stores mechanism data and an operation program including error parameters, and a storage unit that stores position data in the operation program when the actual robot reaches the position when the mechanism data is applied when the mechanism data is not applied to the actual robot. Converting the position data so that the robot reaches the same position as the actual robot, or when applying the mechanism data to a real robot, the real robot reaches the same position as it would reach if the mechanism data were not applied.
  • the teaching device includes a converting unit that converts the position data so as to perform the conversion, and a linking unit that estimates data necessary for converting the position data and links the data to the position data for the conversion.
  • FIG. 1 is a diagram showing a calibration system according to a first embodiment and an offline teaching device that performs offline teaching.
  • FIG. 2 is a diagram showing the configuration of a robot. 3 is a flowchart illustrating a command position and measurement position collection process.
  • FIG. 3 is a diagram for explaining errors due to gravitational deflection of a robot arm.
  • FIG. 3 is a diagram for explaining an error caused by twisting between axes of a robot.
  • FIG. 3 is a diagram for explaining an angular transmission error.
  • 1 is a functional block diagram of an offline teaching device according to a first embodiment.
  • FIG. It is a figure which shows the example of UI screen by a mechanism data reading part.
  • FIG. 2 is a functional block diagram of a program conversion device according to a second embodiment.
  • FIG. 3 is a diagram showing an example of a UI screen for selecting a program to convert.
  • FIG. 6 is a diagram illustrating an example of a UI screen related to detailed conversion settings.
  • FIG. 6 is a diagram for explaining correction of the robot position based on mechanism data.
  • FIG. 7 is a functional block diagram of a program conversion device according to a third embodiment.
  • FIG. 3 is a functional block diagram of an offline teaching device according to a fourth embodiment.
  • FIG. 3 is a functional block diagram of a program conversion device according to a fifth embodiment. It is a functional block diagram of an offline teaching device concerning a 6th embodiment.
  • FIG. 7 is a diagram illustrating a first function of converting position data by the offline teaching device according to the sixth embodiment.
  • FIG. 12 is a diagram illustrating a second function of converting position data by the offline teaching device according to the sixth embodiment.
  • FIG. 7 is a functional block diagram of an offline teaching device according to a seventh embodiment. It is a figure explaining the layout modification function by the offline teaching device concerning a 7th embodiment. It is a functional block diagram of an offline offline teaching device according to an eighth embodiment.
  • FIG. 1 is a diagram showing a calibration system 100 and an offline teaching device 50 that performs offline teaching according to an embodiment.
  • errors may occur between the commanded position and the actually reached position due to processing errors, assembly errors, and the like.
  • the calibration system 100 can measure and output mechanism data including such processing errors and assembly errors (that is, calibrate the mechanism data).
  • the offline teaching device 50 is a device for teaching the virtual robot offline using the mechanism data output by the calibration system 100.
  • the offline teaching device 50 acquires calibrated mechanism data from the calibration system 100, causes the virtual robot to perform an operation (simulation) that reflects errors occurring in the real robot, and enables accurate teaching. .
  • the calibration system 100 includes a robot 1, a calibration device 130 that performs calibration of the robot 1, and a three-dimensional measuring device 20 that performs three-dimensional position measurement of an object.
  • the calibration device 130 is configured as a function realized by a processor in the robot control device 30 executing software.
  • the three-dimensional measuring device 20 is a three-dimensional position measuring device such as a laser tracker.
  • the robot control device 30 includes a teaching operation panel 40 that functions as an operation input device for operating the robot 1.
  • the teaching pendant 40 has a display section 41 and an input section 42.
  • the input unit 42 is a key input device, a touch panel input device, or the like. In the case of a touch panel input device, the display section 41 and the input section 42 are integrally configured.
  • the display section 41 includes, for example, a flat panel display.
  • the robot control device 30 has a storage unit 140 (ROM, RAM, nonvolatile memory, or other storage device).
  • the storage unit 140 stores various information necessary for the calibration device 130 to operate, such as operation programs and mechanical data.
  • the calibration device 130 is a function implemented within the robot control device 30, but there may also be a configuration example in which the calibration device 130 is implemented within the offline teaching device 50.
  • the robot 1 is assumed to be a 6-axis vertically articulated robot. Note that various types of robots may be used as the robot 1 depending on the work object, such as a parallel link type robot or a dual-arm robot.
  • the robot 1 can perform desired work using a work tool as an end effector attached to the wrist.
  • the work tool is an external device that can be replaced depending on the purpose, and includes, for example, a hand, a welding gun, and a tool.
  • FIG. 1 shows an example in which a welding gun is used as a work tool.
  • FIG. 2 shows a perspective view as an example of the configuration of the robot 1 of this embodiment.
  • the robot 1 includes a base 14, a swing base 13, a lower arm 12, an upper arm 11, a wrist 15, and a flange 16.
  • the lower arm 12 is supported by a pivot base 13.
  • the swing base 13 is supported by a base 14.
  • Wrist 15 is connected to the end of upper arm 11.
  • Wrist 15 includes a flange 16 for fixing welding gun 5 .
  • Components such as the upper arm 11 and the lower arm 12 are connected via joints.
  • the robot 1 includes a swing base 13, an upper arm 11, a lower arm 12, a wrist 15, and a drive motor arranged for each flange 16.
  • Welding gun 5 includes a tool drive device that drives welding gun 5, a motor that drives a movable electrode, and the like.
  • the origin of the world coordinate system 71 is set on the base 14 of the robot 1.
  • the world coordinate system 71 is immovable when the position and posture of the robot 1 change, and is also referred to as a reference coordinate system.
  • the robot 1 is set with a tool coordinate system 72 having an origin set at an arbitrary position of the work tool.
  • the position and orientation of the tool coordinate system 72 change together with the welding gun 5 .
  • the origin of the tool coordinate system 72 is set at the tool tip point 72a (the tip point of the fixed electrode).
  • the position of the robot 1 corresponds to the position of the tool tip point (the position of the origin of the tool coordinate system 72).
  • the posture of the robot 1 corresponds to the posture of the tool coordinate system 72 with respect to the world coordinate system 71.
  • FIG. 2 shows joint axes J1 to J6 in each joint.
  • joint angles D1 to D6 are defined.
  • the angle of a joint corresponds to the angle between the constituent members of the joint.
  • the angle of the joint corresponds to the rotational position of a drive motor disposed corresponding to each joint.
  • the calibration device 130 includes a command generation section 131, a command position acquisition section 132, a measurement position acquisition section 133, a mechanism data calibration section 134, a mechanism data output section 135, and a mechanism data correction section. 136.
  • the command generation unit 131 generates a command to move the robot 1 to an arbitrary position.
  • the robot control device 30 includes a servo control section (not shown) that executes servo control of the motors of each axis of the robot 1 according to commands generated by the command generation section 131.
  • the command position acquisition unit 132 acquires and stores the current command position output by the command generation unit 131.
  • the current command position is stored in the storage unit 140, for example.
  • the measurement position acquisition unit 133 gives a measurement command to the three-dimensional measuring instrument 20, and acquires and stores three-dimensional position information of the measurement target (for example, the tool tip point 72a).
  • the measured three-dimensional position information is stored in the storage unit 140, for example.
  • FIG. 3 shows the operational flow of the robot's command position and measurement position collection process.
  • the collection process is executed under the control of the calibration device 130 (processor).
  • the command generating unit 131 generates a command to move the robot 1 to an arbitrary position and operates the robot 1 (step S1).
  • the command position acquisition unit 132 records the command position for the robot 1 (step S2).
  • the measurement position acquisition unit 133 records the position of the robot 1 (for example, the position of the tool tip point 72a) measured by the three-dimensional measuring device 20 (step S3).
  • the calibration device 130 executes the processes from steps S1 to S3 until the specified number of times is reached (step S4: NO).
  • step S4 YES
  • a set of command positions and measurement positions necessary for identifying mechanism data is collected.
  • the mechanism data calibration unit 134 calculates mechanism data based on the difference between the command position held by the command position acquisition unit 132 and the measurement position measured by the three-dimensional measuring device 20.
  • the mechanism data includes DH parameters representing the relative relationship between adjacent joint axes of the robot.
  • the DH parameter is a parameter in the DH method (Denavit Hartenberg) method used in a relational expression that determines the relationship between the angular position of each drive shaft of the robot and the tip position of the robot.
  • DH method a coordinate system is set for each joint axis, and the position and posture of the robot are expressed based on the relationship between the coordinate systems of adjacent joint axes.
  • parameters ⁇ , d, a, ⁇ , and ⁇ are used.
  • Rotation angle from x i-1 axis to x i axis (around z i-1 axis)
  • d Distance from the origin of the i-1st coordinate system to the intersection of the z i-1 axis and the x i axis (link length)
  • a Distance from the intersection of the z i-1 axis and the x i axis to the origin of the i-th coordinate system (distance between joint axes)
  • Rotation angle from the z i-1 axis to the z i axis (around the x i axis)
  • Rotation angle from the z i-1 axis to the z i axis (around the y i axis)
  • the mechanism data includes mechanism error parameters.
  • Mechanism error parameters include errors in DH parameters ( ⁇ , d, a, ⁇ , ⁇ ), spring constants for torque generated in three-dimensional directions of each drive shaft (element representing arm deflection due to gravity or external force), and each axis. It may also include elements that change the tip position and posture of the robot, such as an angular transmission error that models the relationship between the encoder output and the amount of rotation.
  • each axis has three spring constants as error parameters, and the torque x spring constant is calculated as the above ⁇ , ⁇ , ⁇ . may be added as a correction amount.
  • a model with the ratio (a) of the amount of rotation (y) to the encoder output (x) as an error parameter (y ax), or a model with the relationship between the encoder output (x) and the amount of rotation (y)
  • the mechanism data may also include a table of coordinate values of each axis and orthogonal coordinate values for spatial correction and errors in the position of the origin of the world coordinate system.
  • the mechanism data may include a matrix or a relational expression indicating the relative positional relationship between joints adjacent to each other in the robot.
  • the mechanism data may include a homogeneous transformation matrix T that defines the positional relationship between adjacent joints determined by the above-mentioned DH parameters, and a relational expression developed by expanding this homogeneous transformation matrix T.
  • a coordinate system 75 indicates the coordinate system at the k-th joint.
  • a coordinate system 76 indicates a coordinate system at the (k+1)th joint next to the kth joint.
  • T k for calculating the (k+1)th coordinate system from the k -th coordinate system
  • T UT for calculating the tool coordinate system from the flange coordinate system
  • the first A homogeneous transformation matrix T 1P for calculating the position P P of the tool tip point from the coordinate system can be expressed by the following equation (1).
  • T 1P T 1 T 2 ... T n T UT ... (1)
  • a relational expression for calculating the position P P of the tool tip point from the first coordinate system can be obtained.
  • This homogeneous transformation matrix or relational expression may include an error with respect to the design value.
  • the mechanism data may be a transformation matrix or a relational expression defined by a parameter (ai + ⁇ ai) that includes an error ⁇ ai with respect to the design value parameter ai, and a parameter ( ⁇ i + ⁇ i) that includes the error ⁇ i with respect to the design value parameter ⁇ i. It's okay.
  • the mechanism data calibration unit 134 identifies mechanism data using a method such as the method of least squares so that the error between the measured position and the commanded position is minimized.
  • q be a vector whose elements are the above-mentioned error parameters
  • the mechanism data calibration unit 134 can calibrate the mechanism data to reflect the actual error in the position of the robot.
  • the mechanism data output unit 135 can output calibrated mechanism data.
  • the mechanism data output unit 135 can output mechanism data in a file format.
  • the mechanism data may be output to an external device or to the storage unit 140 within the calibration device 130.
  • the mechanism data file 90 generated from the mechanism data output unit 135 is in different formats depending on whether it is used for the purpose of generating errors in the virtual robot or for the purpose of correcting errors in the real robot. It's okay.
  • the data format can be shared by both the device used to generate errors in the virtual robot and the device used to correct errors in the real robot, and the data can be read in the real robot and virtual robot. The contents and usage may be determined on the side.
  • the robot has arms 61 and 62 and a joint portion 63. It is assumed that the arm 62 bends downward due to the influence of gravity. As shown in FIG. 4, when the arm 62 is deflected by gravity, the mechanism data calculated as described above by the mechanism data calibrator 134 reflects this deflection error.
  • the mechanical data for the real robot is data that can be corrected in the direction opposite to the error caused to the virtual robot so that the robot can reach the position and orientation shown in Figure 4 even if the arm is bent. (arrow B1 in the figure).
  • the torsion between the axes as one element of the mechanism error parameter of the mechanism data will be explained with reference to FIG. As shown in FIG. 5, it is assumed that an error occurs in the arm 61 due to torsion between the axes. In this case, the mechanism data calculated by the mechanism data calibration unit 134 as described above reflects this inter-axis torsion. By using this mechanical data (mechanical error parameter), it is possible to cause the arm 61 of the virtual robot to produce the same inter-axial twist as the inter-axial twist that occurs in the real robot (arrow A2 in the figure).
  • the mechanical data for the real robot is corrected in the opposite direction to the error caused in the virtual robot so that the real robot can reach the position and orientation shown by the solid line in Figure 4 even if there is inter-axis torsion. It may be data that can be multiplied by (arrow B2 in the figure).
  • the angular transmission error as one of the mechanism error parameters of the mechanism data will be explained with reference to FIG. 6.
  • the mechanism data calculated as described above by the mechanism data calibration unit 134 reflects the angular transmission error. It is assumed that the angular transmission error represented by the mechanism data has a characteristic as shown by the solid line in FIG. In this case, in order to cause the virtual robot to have the angular transmission error that occurs in the real robot, the angular transmission error A3 as shown by the solid line in FIG. 6 is given to the virtual robot.
  • the angular transmission error B3 as shown by the broken line which has the opposite characteristic to the angular transmission error shown by the solid line, is corrected so that the position error due to the angular transmission error shown by the solid line is corrected.
  • Data may be generated so as to give .
  • the mechanism data modification unit 136 provides a function of modifying or setting not to modify each element of the mechanical data of the real robot.
  • the correction may be performed by specifying the ratio to be applied to each mechanical error parameter.
  • the mechanism data is not modified (applying calibrated mechanism data) to the real robot
  • an offline program created using a virtual robot to which the mechanism data is applied may be used.
  • the position taught before application can be changed. It is also possible to make the data reachievable (see the second embodiment, fourth embodiment, etc. described later).
  • the off-line teaching device 50 can use this to correct the errors of the real robot in the virtual robot. be able to reflect it. As a result, it becomes possible to create and convert programs using a virtual robot that includes errors.
  • mechanism data correction unit 136 it is possible to select the rate at which mechanism data is applied to the actual robot according to the offline program creation/conversion method. As a result, taking into consideration the number of position data taught before applying the mechanism data, calibration was carried out, such as whether or not to apply the mechanism data to the actual robot, or only applying the data taught before application to the extent that no correction was necessary. It also becomes possible to apply mechanical data to robots in an optimal form.
  • the offline teaching device 50 can make the virtual robot reach an appropriate position that reflects the mechanism data. This allows the offline teaching device 50 to perform accurate teaching (offline programming).
  • the mechanism data includes (a) elements such as robot link length and assembly error that cannot be accurately reflected in the CAD model by data acquisition by measurement, and (b) ) May include elements that cannot be reflected in the CAD model, such as deflection due to gravity and angular transmission errors. Therefore, the offline teaching device 50 can perform accurate teaching that reflects the mechanism data including the mechanism error parameters as shown in (a) and (b) above.
  • FIG. 7 shows a functional block diagram of the offline teaching device 50.
  • the offline teaching device 50 may have a general computer configuration including a processor 150, a memory (storage unit 156), a display unit 154, an operation unit 155, and an input/output interface (not shown).
  • the offline teaching device 50 includes a mechanism data reading section 151, a model modification section 152, and a virtual robot control section 153.
  • the offline teaching device 50 has a display unit 154 and an operation unit 155 as a configuration for displaying a UI (user interface screen) related to robot teaching and accepting operations on the UI screen.
  • the operation unit 155 is a keyboard, a mouse, or a touch panel. In the case of a touch panel, the display section 154 and the operation section 155 are integrally configured.
  • the display unit 154 includes, for example, a flat panel display.
  • the mechanism data reading unit 151 provides a function of reading and storing the mechanism data file 90.
  • the mechanism data reading unit 151 displays a UI screen as shown in FIG. 8 on the display unit 154 and receives an operation for applying mechanism data to a virtual robot (that is, an operation for reading mechanism data).
  • the UI screen shown in FIG. 8 includes a virtual robot model 1M and an image representing a mechanism data file 90.
  • the mechanism data in the mechanism data file 90 is applied to the virtual robot model 1M.
  • the mechanism data reading unit 151 stores the read mechanism data in, for example, the storage unit 156, and also sends the mechanism data to the model correction unit 152 and the virtual robot control unit 153.
  • the model modification unit 152 modifies the CAD model of the virtual robot from information such as DH parameters among the mechanism data. By using the DH parameters, the model correction unit 152 can accurately reflect link lengths, assembly errors, etc. in the CAD model of the virtual robot.
  • the model modification unit 152 may further include a function to modify the CAD model of the workpiece or peripheral device.
  • the model modification unit 152 can modify the three-dimensional model of the workpiece or peripheral device defined by variable dimensions based on the dimensions measured using the three-dimensional measuring device 20.
  • the virtual robot control unit 153 can calculate a correction amount for correcting the position of the robot based on the mechanism data.
  • the virtual robot control unit 153 When controlling the virtual robot, the virtual robot control unit 153 generates an operation command so that correction is applied in the opposite direction to the calculated correction amount. Thereby, the virtual robot can be operated so that errors occurring in the real robot are reflected in the virtual robot.
  • a specific method for calculating the correction amount will be described below.
  • Step K1 Mechanism data before update (mechanism data before update by calibration)
  • D2 Mechanism data after update (mechanism data after update by calibration)
  • Step K1 The position data in the operation command in the mechanism data (D1) before application is set as each axis position (a).
  • Each axis position (a) is forward transformed (conversion by forward kinematics) using the mechanical data (D1) before application to obtain the orthogonal position p of the robot hand.
  • the orthogonal position p is inversely transformed (converted by inverse kinematics) using the applied mechanism data (D2) to obtain each axis position (b).
  • Step K3 (b) - (a) represent the correction amount.
  • the virtual robot control unit 153 generates a motion command so that a correction is applied in the direction opposite to the correction amount determined as described above, so that the error that occurs in the real robot also occurs in the virtual robot. can be controlled.
  • the virtual robot control unit 153 can take into account, for example, the deflection due to gravity that changes depending on the robot's posture and the angular transmission error into the calculation of the correction amount, and introduce them into the virtual robot. This makes it possible to improve the accuracy of interference detection and program creation/conversion regardless of the robot's posture.
  • One cell of the offline teaching system may have more than 30 robots, for example, and it may take time to select files one by one and apply mechanism data to the virtual robots. Furthermore, mechanical data related to deflection due to gravity can be reused if the same Romot model is used.
  • the mechanism data reading section employs a configuration that allows mechanism data to be applied to the robot model by drag and drop. This makes it possible to easily apply the same mechanism data to a plurality of virtual robots, and also to reduce the time required to apply mechanism data to a large number of robots.
  • the program conversion device 250 provides a function of converting the position data of the motion program so that the robot reaches an appropriate position and orientation that reflects the updated mechanism data. On the other hand, if the updated mechanism data is applied to the robot, there is a possibility that the position data taught in the motion program before application cannot be used.
  • the program conversion device 250 of this embodiment also provides a function of converting the position data of the operation program so that when the updated mechanism data is applied to the robot, the robot reaches the same position as when the updated mechanism data is not applied. It is composed of
  • the program conversion device 250 is realized as a function of the processor of the offline teaching device 50. Note that there may also be an example in which the program conversion device 250 is configured as a function realized by a processor within the robot control device 30.
  • FIG. 9 shows a functional block diagram of the program conversion device.
  • the program conversion device 250 includes a program extraction section 251, a program selection section 252, a mechanism data reading section 253, and a linking screen control section 260.
  • the mechanism data reading unit 253 reads the mechanism data file 90 output by the calibration device 130 (that is, the mechanism data calibrated using the actual robot) and stores it in the storage unit 254.
  • the program extraction unit 251 extracts programs including calibrated robot position data from the program list and lists them on the display screen.
  • the program selection unit 252 provides a function of selecting at least one program from the listed programs based on user operation. In response to the selection of a program via the program selection section 252, the association screen control section 260 is called.
  • the linking screen control section 260 As shown in FIG. 9, the linking screen control section 260.
  • the linked program selection unit 261 lists the selected programs on the display screen, and displays programs that lack data necessary for converting position data in a recognizable manner. For example, the linked program selection unit 261 may change the display color of programs that lack data necessary for converting position data.
  • the program display section 262 displays information regarding the content of the program selected by the linked program selection section 261 and various information provided by the linking section 263 and the linking setting section 264.
  • the linking unit 263 provides a function of estimating and displaying the data necessary for converting the position data based on the operation program, and allowing the user to modify the displayed result.
  • the association setting unit 264 provides a function of setting in advance the information included in the position data and the estimation method necessary for conversion.
  • the conversion selection unit 266 provides a function to set whether or not to convert each position data.
  • the conversion selection setting unit 267 provides a function of setting whether to convert or not according to the motion format such as a straight line, each axis, or circular arc, or the position format of position data (orthogonal, each axis).
  • the conversion selection unit 266 may be configured to accept user input for setting whether or not to convert each position data.
  • the conversion selection unit 266 can determine whether or not to convert each position data according to the settings made by the conversion selection setting unit 267.
  • the conversion selection setting section 267 may be configured to be able to generate setting information based on user input.
  • the conversion unit 265 calculates a correction amount based on the updated mechanism data, and adds or subtracts it from the position data. That is, the conversion unit 265 converts the position data in the operation program into (F1) Position data that is the same position as when mechanical data is applied to a real robot, or (F2) It is possible to provide a function that converts, when mechanical data is applied to a real robot, the position data to be the same as when it is not applied. Here, it may be possible to specify the ratio of the amount by which the position data is corrected.
  • the conversion unit 265 may notify the user when the location data cannot be converted. When the position data is set as a relative position, the conversion unit 265 may operate to return to the absolute position and then execute the conversion to return to the relative position.
  • the conversion unit 265 converts the position data by calculating the correction amount to be applied to the position data as follows.
  • the program conversion device 250 holds the following mechanism data. (D1) Mechanism data before update (mechanism data before update by calibration) (D2) Mechanism data after update (mechanism data after update by calibration)
  • the program conversion device 250 calculates the correction amount according to (procedure K1) to (procedure K3) described in the first embodiment described above.
  • a correction amount may be added to each axis position (a).
  • the mechanism data (D2) To apply the mechanism data (D2) to the actual robot and convert it to a position to which the mechanism data (D2) is not applied, the above correction amount is subtracted from each axis position (a). If it is taught in orthogonal format, inverse transformation is performed using mechanism data (D1) to obtain each axis position (a). In the case of the orthogonal format, the orthogonal position is obtained by sequentially converting each axis position after adding and subtracting the correction amount using the mechanism data (D1).
  • correction amount as described above can also be applied when replacing robots and updating mechanical data.
  • the above-mentioned conversion function by the conversion unit 265 can be explained with the schematic diagram of FIG. 12.
  • the reference numeral 301 is the position and orientation of the robot that is desired to be reached by offline programming (corresponding to each axis position (a) described above).
  • the actual robot assumes a position/posture that is bent downward from the position/posture indicated by reference numeral 301 due to the influence of deflection due to gravity, etc. (arrow A4 attached to the robot indicated by reference numeral 303).
  • the position and orientation of the robot indicated by reference numeral 302 is obtained by adding the correction amount obtained in the above-described conversion process to the position and orientation of the robot (each axis position (a)) indicated by reference numeral 301.
  • the corrected robot position data is as shown by reference numeral 302, but in an actual robot, due to the influence of gravitational deflection, the robot moves to the target position as shown by reference numeral 303 (robot position shown by reference numeral 301). will be reached.
  • the position correction unit 268 can provide a function of correcting the position obtained by the above conversion on the offline teaching device 50.
  • FIG. 10 is a diagram showing a configuration example of a UI screen for selecting a program to be converted.
  • the UI screen 280 shown in FIG. 10 is provided as a function by the program extraction section 251 and the program selection section 252.
  • the UI screen 280 includes a program list display area 281 that displays a list of programs extracted by the program extraction unit 251.
  • the user can select a program to be converted from the program list display area 281. For example, by selecting a program in the program list display area 281 and pressing the add button 283, the user can add the selected program to the conversion target program list display area 282 that displays a list of programs to be converted. I can do it.
  • FIG. 11 shows a UI screen 290 regarding detailed conversion settings.
  • the UI screen 290 may be activated in response to pressing the “Check estimated value” button 284 within the UI screen 280. That is, the UI screen 290 also has a function as a screen for checking the data estimated by the linking unit 263 as necessary for converting the position data.
  • the UI screen 290 is provided as a function by the association screen control unit 260.
  • the UI screen 290 includes a program list display area 291 for selecting a program to be processed on the UI screen 290 (a program to be linked).
  • the program list display area 291 programs selected on the UI screen 280 and included in the conversion target program list display area 282 are displayed.
  • the UI screen 290 includes a program display area 292 that displays the contents of the program selected from the program list display area 291.
  • a program display area 292 that displays the contents of the program selected from the program list display area 291.
  • the program display area 292 displays the contents of the program 'ABC'.
  • a column 293 in the right column of the program display area 292 is a column for displaying load setting information as a result of estimation of data necessary for conversion by the linking unit 263.
  • the functions provided in column 293 correspond to the functions of linking section 263.
  • a load setting number is set as load information.
  • the linking unit 263 can estimate load information corresponding to position data based on the content of the program.
  • the load information (load setting number) applied to the position data can be estimated from the load setting command (PAYLOAD) included in the program.
  • the load setting applied to the position data can be determined based on the placement position of the load setting command (PAYLOAD).
  • a load setting command that precedes a command sentence including position data and is closest to the command sentence may be estimated as the load setting information for the position data.
  • the user can check the load information estimated by the linking unit 263 and set in the column 293, and make corrections as necessary.
  • load setting By configuring the load setting to be estimated by the linking unit 263 in this way and allowing the user to modify it, the user's effort regarding the load setting can be omitted.
  • load information can be properly displayed for position data. can be set.
  • the linking unit 263 may be configured to perform load settings according to setting information provided by the linking setting unit 264.
  • the association setting unit 264 retains information representing the correspondence between the tool coordinate system number and the load setting number included in the position data.
  • the linking unit 263 can estimate and set the load setting number of each position data according to this setting information.
  • a field 294 further to the right of the program display area 292 it is possible to specify whether or not to convert position data for each command statement that includes position data.
  • the functions provided in column 294 correspond to the functions of conversion selection section 266.
  • the conversion selection unit 266 may be configured to automatically set whether or not to perform conversion according to the setting information of the conversion selection setting unit 267.
  • the conversion selection setting unit 267 is provided with setting information that defines whether or not to convert/not convert specific motion formats and position data of the robot. This makes it possible to set conversions (perform conversion/not perform conversion) all at once for specific movement formats and position data of the robot. Specifically, since accuracy is not required for each axis operation, it is possible to realize an operation in which no conversion is performed.
  • the position correction unit 268 can confirm the converted position, set the position, and reflect it in the position data of the program. For example, if a range of each axis is specified for the reference position and an alarm is generated if it is outside the range, it is possible to correct the position to a position where no alarm is generated.
  • the position correction unit 268 may be configured to provide a UI screen for correcting the converted position data and to accept an operation for correcting the position data.
  • the program conversion device 350 When mechanical data is applied to a robot, not only the robot's reached position but also its trajectory changes.
  • the program conversion device 350 has a function of converting the position data in the operation program based on the mechanism data like the conversion unit 265 according to the second embodiment, and also has the function of converting the position data in the operation program based on the mechanism data, and also converts the position data before and after the program conversion as a result of converting the position data. Provides a function to correct position data so that when a deviation of a certain value or more occurs in the trajectory, the deviation becomes smaller.
  • the program conversion device 350 is realized as a function by the processor of the offline teaching device 50. Note that there may also be an example in which the program conversion device 350 is configured as a function realized by a processor within the robot control device 30.
  • the program conversion device 350 includes a program selection section 351, a trajectory storage section 352, a mechanism data reading section 353, a conversion section 354, a trajectory comparison section 355, and a taught position correction section 356. Be prepared.
  • the program selection unit 351 provides a function to select a program to be converted.
  • the mechanism data reading unit 353 reads the mechanism data file 90 generated and output by the calibration device 130 and stores it in the storage unit 360.
  • the conversion unit 354 provides a function of converting the program by correcting the position data in the program selected via the program selection unit 351 with a correction value obtained based on the mechanism data. Note that the converter 354 has the same conversion function as the converter 265 in the second embodiment.
  • the trajectory storage unit 352 is - A motion trajectory of the robot based on the motion program selected by the program selection unit 351 (that is, a motion trajectory before applying the mechanical error based on the mechanical data) (hereinafter referred to as motion trajectory T1); - The robot's motion trajectory based on the converted motion program (the motion trajectory after applying the mechanical error due to the mechanical data) (hereinafter referred to as motion trajectory T2) is stored.
  • the trajectory comparison unit 355 compares the movement trajectory of the robot before and after the conversion, and determines whether a deviation of a certain amount or more has occurred. Specifically, when the conversion unit 354 performs the conversion using the conversion function (F1) described above, the trajectory comparison unit 355 compares the movement trajectory based on the converted position data and the movement trajectory T1. On the other hand, when the conversion unit 354 performs the conversion using the conversion function (F2) described above, the trajectory comparison unit 355 compares the movement trajectory based on the converted position data with the movement trajectory T2. If there is a deviation of a certain amount or more in the movement trajectory of the robot before and after conversion, the taught position correction unit 356 corrects at least one position data in the movement program after conversion so that the deviation becomes smaller.
  • trajectory data By viewing the trajectory data as time-series data, it is also possible to change the trajectory (correct the position data) so that there is no change in the robot's operating speed or operating time.
  • the functions of the configuration described in this embodiment may be provided as functions of the program conversion device 250 described in the second embodiment.
  • a position data conversion device 450 according to a fourth embodiment will be described below.
  • the position data conversion device 450 according to the fourth embodiment acquires the position data set for teaching the offline teaching device 50 or the real robot (robot control device 30), converts the position data based on the mechanism data, and converts the position data to the offline teaching device 50 or the real robot (robot control device 30).
  • the position data of the teaching device 50 or the real robot (robot control device 30) is changed.
  • the position data conversion device 450 is realized as a function by the processor of the offline teaching device 50.
  • FIG. 14 is a functional block diagram of an offline teaching device 50 according to the fourth embodiment.
  • the offline teaching device 50 includes a position data conversion device 450.
  • the offline teaching device 50 stores position data set in the operation program in the position data storage section 461.
  • the robot control device 30 stores position data to be taught and set regarding the actual robot in the position data storage unit 431.
  • the offline teaching device 50 acquires the position data set for the real robot from the robot control device 30 and stores it in the position data storage section 461.
  • the mechanism data reading unit 455 reads the mechanism data file 90 output by the calibration device 130 and stores it in the storage unit 460.
  • the conversion data extraction unit 451 extracts convertible position data and provides it to the conversion data selection unit 452.
  • the conversion data selection unit 452 displays the extracted position data in a selectable manner.
  • the conversion data selection unit 452 may be configured to display a UI screen for selecting position data to be converted, and select the position data based on user operation.
  • the linking unit 454 and the linking setting unit 453 have the same functions as the linking unit 263 and the linking setting unit 264 in the second embodiment, respectively. By providing the linking section 454 and the linking setting section 453, conversion can be efficiently performed when data required for conversion is not included in the position data.
  • Conversion unit 456 converts the selected position data so that when the mechanism data is applied to a real robot, the real robot reaches the same position as it would reach if the mechanism data were not applied. can be converted.
  • Robots in production have not only position data in the program, but also position data that can be shared by the entire robot system, such as coordinate systems taught and set in advance and return-to-origin positions.
  • position data can be converted to the position before application.
  • the functions of the configuration (conversion unit 456, etc.) described in this embodiment may be provided as functions of the program conversion device 250 described in the second embodiment.
  • a program conversion device 550 according to a fifth embodiment will be described.
  • position teaching is performed with respect to a coordinate system that sticks to the workpiece and moves.
  • the program conversion device 550 according to the fifth embodiment provides a function of converting position data of a dynamic coordinate system used for tracking based on mechanism data.
  • the program conversion device 550 is realized as a function by the processor of the offline teaching device 50. Note that there may also be an example in which the program conversion device 550 is configured as a function realized by a processor within the robot control device 30.
  • FIG. 15 is a functional block diagram of a program conversion device 550 according to the fifth embodiment.
  • the program conversion device 550 includes a program selection section 551, a mechanism data reading section 552, a conversion section 553, and a dynamic coordinate system setting section 554.
  • the program selection unit 551 provides a function to select a program to be converted.
  • the mechanism data reading unit 551 reads mechanism data generated and output by the calibration device 130 and stores it in the storage unit 560.
  • the dynamic coordinate system setting unit 554 provides a function of setting the movement of a dynamically moving coordinate system.
  • the dynamic coordinate system setting unit 554 sets the movement of the dynamic coordinate system based on, for example, user input.
  • the dynamic coordinate system setting unit 554 may acquire information regarding the movement of the dynamic coordinate system from an external device (for example, a robot control device).
  • the conversion unit 553 provides a function of converting the program by correcting the position data in the operation program selected via the program selection unit 551 using a correction value obtained based on the mechanism data. Note that the conversion unit 553 has the same conversion function as the conversion unit 265 in the second embodiment.
  • the conversion unit 553 converts the relative position into an absolute position, and converts the position data converted into the absolute position into the second embodiment.
  • the conversion is performed based on the mechanism data, and the process is performed to return to the relative position again.
  • dynamic coordinates appear in response to external signals, and the dynamic coordinate system moves to follow the movement of the conveyor or positioner.
  • Movement in the dynamic coordinate system is information specifying the starting position, direction, speed, shape, etc., such as "start from point A and move on the conveyor at a speed of Bmm/sec" as setting information regarding the motion program. can be confirmed.
  • the dynamic coordinate system associated with the position data is known, so by converting the relative position to an absolute position as described above, adding the correction amount, and returning to the relative position, tracking can be performed. programs can also be converted.
  • the functions of the configuration described in this embodiment may be provided as functions of the program conversion device 250 described in the second embodiment.
  • the offline teaching device 50 according to the sixth embodiment includes: (1) A function to convert the position data in the program so that the position and order reached by the robot match the teaching position information and teaching order information set in the workpiece model; (2) Provides a function to convert the position data of the program into the position reached by the robot before applying the mechanism data.
  • the offline teaching device 50 includes a mechanism data reading section 151, a model correction section 152, a virtual robot control section 153, and a position conversion section 651. Note that FIG. 16 also shows a display unit 154, which is a component of the offline teaching device 50.
  • the offline teaching device 50 according to this embodiment has work model information 652.
  • the work model information 652 includes a work model, teaching position information, and teaching order information.
  • the mechanism data reading unit 151, the model correction unit 152, and the virtual robot control unit 153 have the functions described above with respect to the first embodiment. That is, the virtual robot control unit 153 provides a function of obtaining a correction value for correcting position data based on the CAD model and mechanism data corrected by the model correction unit 152.
  • the display unit 154 displays images representing the motions (simulation motions) of the robot model, workpiece model, and other various models being taught.
  • FIG. 17A explains the above function (1) (the function of converting the position data in the program so that the position and order reached by the robot match the teaching position information and teaching order information set in the workpiece model).
  • FIG. 17A shows an example of teaching position information and teaching order information included in the workpiece model WM.
  • four teaching positions P[1], P[2], P[3], and P[4] are defined in the workpiece model WM. These taught positions represent the order of P[1], P[2], P[3], and P[4].
  • FIG. 17A also shows the reached positions M(1) to M(4) of the virtual robot corresponding to the taught positions P[1] to P[4] after applying the mechanism data to the virtual robot.
  • the position conversion unit 651 converts the teaching order and position (M(1) to M(4)) that the virtual robot reaches from the teaching order and position (P[1] to P[4]) included in the workpiece model. Convert the position data in the operating program to match the .
  • FIG. 17B is a diagram illustrating the above function (2) (the function of converting the position data of the program to the position reached by the robot before applying the mechanism data). Similar to FIG. 17A, the teaching order and positions set in the workpiece model WM are from P[1] to P[4], and the positions reached by the virtual robot after applying the mechanism data are from M(1) to M( 4).
  • the position conversion unit 651 converts the teaching order and position reached by the virtual robot from the teaching position of the workpiece model and the point object position K(1) with the virtual robot reaching positions M(1) to M(4) as centers of symmetry. The position data of the operation program is converted so that it becomes K(4).
  • the above has described a configuration example in which the position data of the operation program is converted according to the teaching order and position (teaching information) specified in the workpiece model, but instead of the workpiece model, the teaching position and order information ( The above-mentioned method may be applied to a program containing (teaching information) to convert position data.
  • the function of the position conversion unit 651 according to this embodiment may be provided as a function of the program conversion device 250 described in the second embodiment.
  • the offline teaching device 50 according to the seventh embodiment provides a function of modifying the work model so that the difference between the position reached by the virtual robot and the teaching position specified in the work model is reduced.
  • the offline teaching device 50 includes a mechanism data reading section 151, a model modification section 152, a virtual robot control section 153, a display section 154, a layout modification section 751, and work model information 752. .
  • the mechanism data reading unit 151, the model correction unit 152, and the virtual robot control unit 153 have the functions described above in relation to the first embodiment.
  • the work model information 752 includes a work model, teaching position information, and teaching order information.
  • the display unit 154 displays images representing the motions (simulation motions) of the robot model, workpiece model, and other various models being taught.
  • the layout correction unit 751 corrects the position and orientation of the workpiece model so that the difference between the position reached by the virtual robot and the teaching position specified for the workpiece model is reduced.
  • FIG. 19 is a diagram illustrating an example of the operation of the offline teaching device 50 according to this embodiment.
  • the work model WM includes teaching positions and orders P[1] to P[4].
  • the positions that the virtual robot reaches by applying the mechanism data to the virtual robot are set from M(1) to M(4).
  • the layout correction unit 752 adjusts the workpiece so that the difference between the positions M(1) to M(4) reached by the virtual robot and the taught positions P[1] to P[4] included in the workpiece model WM is small. Correct the model WM position and posture.
  • FIG. 19 shows a state in which the position of the workpiece model WM has been corrected by the layout correction unit 752, and the corrected workpiece model (indicated by reference numeral WM2) roughly matches the reached positions M(1) to M(4) of the virtual robot. The situation is shown.
  • the offline teaching device 50 provides a function of changing the position of the virtual robot to prevent interference when interference occurs between the virtual robot and peripheral devices after applying the mechanism data.
  • the offline teaching device 50 includes a mechanism data reading section 151, a model correction section 152, a virtual robot control section 153, a display section 154, an interference detection section 851, and an interference avoidance motion generation section 852. and work model information 853.
  • the mechanism data reading section 151, the model correction section 152, and the virtual robot control section 153 have the functions described above in relation to the first embodiment.
  • the work model information 853 includes a work model, teaching position information, and teaching order information.
  • the interference detection unit 851 detects whether the virtual robot after applying the mechanism data interferes with peripheral devices, etc.
  • the interference avoidance movement generation unit 852 Based on the teaching position information and teaching order included in the movement program or work model information 853, the interference avoidance movement generation unit 852 detects interference caused by the interference detection unit 851 when the virtual robot model is operated based on the movement program. Generate a trajectory based on the motion program so as not to be detected.
  • each of the program conversion devices described as the second embodiment, the third embodiment, and the fifth embodiment and the position data conversion device described as the fourth embodiment are the same as those described in the first embodiment. It may be implemented in addition to the functions of the offline teaching device 50 or as a function within the virtual robot control unit 153.
  • programs that execute various procedures are stored in various computer-readable recording media (for example, ROM, EEPROM, semiconductor memory such as flash memory, magnetic recording medium, It can be recorded on optical discs such as CD-ROM and DVD-ROM).

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

ロボットの教示を行うための教示装置(50)であって、ロボットの関節部における角度位置とロボットの先端位置との関係を求めるための機構データであって、実ロボットの機構誤差パラメータを含む機構データを記憶する記憶部(156)と、前記機構誤差パラメータにより前記実ロボットに発生する位置の誤差が仮想ロボットで発生するように前記機構データに基づき前記仮想ロボットの動作を制御する仮想ロボット制御部(153)と、を備える教示装置(50)が提供される。

Description

教示装置
 本発明は、ロボットのオフライン教示を行う教示装置に関する。
 ロボット、ワーク、周辺装置等の三次元モデルを仮想空間上に配置してロボット動作のオフライン教示を行う教示装置が広く用いられている。例えば、特許文献1は、「ワークの3次元モデルを寸法可変に作成する寸法可変3次元モデル作成部71、実際のワークの位置、姿勢、寸法を計測する計測部5、計測結果に基づき3次元モデルを修正する計測に基づく3次元モデル修正部72、修正された3次元モデルを基に、ロボット動作をオフラインで教示するオフライン教示部73を備えるシステム」を記載する(要約書)。
 実ロボットは、オフライン教示における仮想ロボットと異なり、製造誤差等により、指令位置と実際に到達する位置に誤差を生じる。そのため、実ロボットの実際に到達する位置が指令位置に可能な限り近くなるように、製造誤差等を含む機構データをキャリブレーションし、実ロボットの絶対位置精度を向上させることが行われる。これに関し、特許文献2は、「すなわち、従来、機構パラメータが更新されると、以降は更新された機構パラメータを用いて動作プログラムが実行されるので、更新前に教示された動作プログラムをそのまま実行したのでは、教示時のロボットの先端の位置および姿勢を実現できなかった。本態様によれば、更新前の機構パラメータと現在の機構パラメータとを用いて動作プログラムの位置データを補正することにより、現在の機構パラメータを用いて更新前に教示された動作プログラムを実行しても、教示時のロボットの先端の位置および姿勢を実現することができる。その結果、キャリブレーションの実行前に教示作業が行われた動作プログラムを、再教示作業を行うことなく再利用することができる。」と記載する(段落0009)。
特開平11-296218号公報 特許第6453918号公報
 従来、オフライン教示で用いられる仮想ロボットとしては、設計値通りの(すなわち、誤差を含まない)三次元モデルが用いられるのが一般的であった。誤差を含まない三次元モデルでは、実ロボットが到達する位置との間に誤差を生じる場合があった。ロボットの現実の寸法を計測により測定し、ロボットの三次元モデルを修正してオフライン教示を行うアプローチも考えられる。しかしながら、ロボットはリンク間等の接続部を有し、例えばリンク回転中心間の距離を計測により精確に測定することは難しい。
 本発明の目的は、このような仮想ロボットを用いた教示の精度を向上させることのできる教示装置を提供することである。
 本開示の一態様は、ロボットの教示を行うための教示装置であって、ロボットの関節部における角度位置とロボットの先端位置との関係を求めるための機構データであって、実ロボットの機構誤差パラメータを含む機構データを記憶する記憶部と、前記機構誤差パラメータにより前記実ロボットに発生する位置の誤差が仮想ロボットで発生するように前記機構データに基づき前記仮想ロボットの動作を制御する仮想ロボット制御部と、を備える教示装置である。本開示の別の態様は、ロボットの教示を行うための教示装置であって、ロボットの関節部における角度位置とロボットの先端位置との関係を求めるための機構データであって、実ロボットの機構誤差パラメータを含む機構データと動作プログラムを記憶する記憶部と、前記動作プログラム内の位置データに関し、実ロボットに前記機構データを適用しない場合に該実ロボットが前記機構データが適用された場合に到達する位置と同じ位置に到達するように前記位置データを変換する、或いは実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換する変換部と、前記位置データの変換に必要なデータを推定し、前記変換のために前記位置データに紐づける紐づけ部と、を備える教示装置である。
 上記構成によれば、仮想ロボットを用いた教示の精度を高めることが可能となる。
 添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
第1実施形態に係る実施形態に係るキャリブレーションシステムと、オフラインでの教示を行うオフライン教示装置とを示す図である。 ロボットの構成を表す図である。 指令位置及び測定位置の収集処理を表すフローチャートである。 ロボットのアームの重力の撓みによる誤差を説明するための図である。 ロボットの軸間のねじれによる誤差を説明するための図である。 角度伝達誤差を説明するための図である。 第1実施形態に係るオフライン教示装置の機能ブロック図である。 機構データ読み込み部によるUI画面の例を示す図である。 第2実施形態に係るプログラム変換装置の機能ブロック図である。 変換するプログラムを選択するためのUI画面の例を示す図である。 変換の詳細設定に関するUI画面の例を示す図である。 機構データに基づくロボットの位置の補正について説明するための図である。 第3実施形態に係るプログラム変換装置の機能ブロック図である。 第4実施形態に係るオフライン教示装置の機能ブロック図である。 第5実施形態に係るプログラム変換装置の機能ブロック図である。 第6実施形態に係るオフライン教示装置の機能ブロック図である。 第6実施形態に係るオフライン教示装置による位置データの変換の第1の機能について説明する図である。 第6実施形態に係るオフライン教示装置による位置データの変換の第2の機能について説明する図である。 第7実施形態に係るオフライン教示装置の機能ブロック図である。 第7実施形態に係るオフライン教示装置によるレイアウト修正機能について説明する図である。 第8実施形態に係るオフラインのオフライン教示装置の機能ブロック図である。
 次に、本開示の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
 第1実施形態
 図1は、一実施形態に係るキャリブレーションシステム100と、オフラインでの教示を行うオフライン教示装置50とを示す図である。実ロボットは、加工誤差や組み付け誤差などにより、指令位置と実際に到達する位置との間に誤差を生じ得る。キャリブレーションシステム100は、このような加工誤差や組む付け誤差を含む機構データを計測し出力すること(すなわち、機構データをキャリブレーションすること)ができる。オフライン教示装置50は、キャリブレーションシステム100が出力する機構データ用いて仮想ロボットによるオフラインでの教示を行うための装置である。オフライン教示装置50は、キャリブレーションシステム100からキャリブレーションされた機構データを取得し、仮想ロボットに実ロボットに生じる誤差を反映した動作(シミュレーション)を行わせ、精確な教示を行うことを可能とする。
 図1に示すように、キャリブレーションシステム100は、ロボット1と、ロボット1のキャリブレーションを実行するキャリブレーション装置130と、対象の三次元位置計測を行うための三次元測定器20とを含む。本実施形態では、キャリブレーション装置130は、ロボット制御装置30内のプロセッサがソフトウェアを実行することで実現される機能として構成される場合の例を示す。三次元測定器20は、レーザトラッカ等の三次元位置測定器である。
 図1に示すように、ロボット制御装置30は、ロボット1を操作するための操作入力装置としての機能を有する教示操作盤40を備える。教示操作盤40は、表示部41と入力部42とを有する。入力部42は、キー入力装置或いはタッチパネル入力装置等である。タッチパネル入力装置の場合、表示部41と入力部42は一体的に構成される。表示部41は、例えばフラットパネルディスプレイを有する。ロボット制御装置30は、記憶部140(ROM、RAM、不揮発性メモリ或いはその他の記憶装置)を有する。記憶部140には、例えば、動作プログラム、機構データなど、キャリブレーション装置130が動作を行う上で必要な各種情報が記憶される。
 本実施形態では、キャリブレーション装置130はロボット制御装置30内に実現される機能であるものとするが、キャリブレーション装置130を、オフライン教示装置50内に実現する構成例もあり得る。
 ロボット1は、本実施形態では、6軸の垂直多関節ロボットであるとする。なお、ロボット1としてパラレルリンク型ロボット、双腕ロボット等、作業対象に応じて様々なタイプのロボットが用いられても良い。ロボット1は、手首部に取り付けられたエンドエフェクタとしての作業ツールによって所望の作業を実行することができる。作業ツールは、用途に応じて交換可能な外部装置であり、例えば、ハンド、溶接ガン、工具等である。図1では、作業ツールとして溶接ガンが用いられている例を示す。
 図2に本実施形態のロボット1の構成例としての斜視図を示す。図2に示すように、ロボット1は、ベース14と、旋回ベース13と、下部アーム12と、上部アーム11と、リスト15と、フランジ16とを備える。下部アーム12は、旋回ベース13に支持されている。旋回ベース13は、ベース14に支持されている。リスト15は、上部アーム11の端部に連結されている。リスト15は、溶接ガン5を固定するフランジ16を含む。上部アーム11及び下部アーム12等の構成部材は、関節部を介して連結されている。
 ロボット1は、旋回ベース13,上部アーム11、下部アーム12、リスト15、及びフランジ16毎に配置された駆動モータを含む。溶接ガン5は、溶接ガン5を駆動するツール駆動装置、可動電極を駆動するモータ等を含む。
 ロボット1のベース14には、ワールド座標系71の原点が設定されている。ワールド座標系71は、ロボット1の位置および姿勢が変化したときに不動であり、基準座標系とも称される。ロボット1には、作業ツールの任意の位置に設定された原点を有するツール座標系72が設定されている。ツール座標系72は、溶接ガン5と共に位置及び姿勢が変化する。本実施形態では、ツール座標系72の原点は、ツール先端点72a(固定電極の先端点)に設定されている。例示として、本実施形態では、ロボット1の位置は、ツール先端点の位置(ツール座標系72の原点の位置)に対応する。また、ロボット1の姿勢は、ワールド座標系71に対するツール座標系72の姿勢に対応する。
 図2には、それぞれの関節部における関節軸J1からJ6が示されている。それぞれの関節軸J1からJ6において、関節部の角度D1からD6が定められる。例えば、関節部の角度は、関節部における構成部材同士の角度に相当する。また、関節部の角度は、それぞれの関節部に対応して配置された駆動モータの回転位置に対応する。
 図1に示すように、キャリブレーション装置130は、指令生成部131と、指令位置取得部132と、測定位置取得部133と、機構データ校正部134と、機構データ出力部135と、機構データ修正部136とを含む。
 指令生成部131は、ロボット1を任意の位置に移動させる指令を生成する。ロボット制御装置30は、指令生成部131が生成する指令に従ってロボット1の各軸のモータのサーボ制御を実行するサーボ制御部(不図示)を備えている。
 指令位置取得部132は、指令生成部131が出力する現在の指令位置を取得し記憶する。現在の指令位置は、例えば記憶部140に記憶される。
 測定位置取得部133は、三次元測定器20に測定指令を与え、測定対象(例えば、ツール先端点72a)の三次元位置情報を取得し記憶する。測定された三次元位置情報は、例えば記憶部140に記憶される。
 図3にロボットの指令位置及び測定位置の収集処理の動作フローを示す。当該収集処理はキャリブレーション装置130(プロセッサ)による制御の下で実行される。指令生成部131は、任意の位置にロボット1を移動させる指令を生成しロボット1を動作させる(ステップS1)。次に、指令位置取得部132は、ロボット1に対する指令位置を記録する(ステップS2)。次に、測定位置取得部133は、三次元測定器20により測定したロボット1の位置(例えば、ツール先端点72aの位置)を記録する(ステップS3)。キャリブレーション装置130は、ステップS1からS3の処理を、指定回数に到達するまで実行する(ステップS4:NO)。なお、指定回数は、機構データの同定計算を行うのに十分なデータ(指令位置、測定位置)を得るための回数である。ステップS1からS3の処理が指定回数に到達すると本処理を終了する(ステップS4:YES)。これにより機構データの同定のために必要な指令位置と測定位置のセットが収集される。
 機構データ校正部134は、指令位置取得部132が保持する指令位置と、三次元測定器20により測定された測定位置との差に基づいて機構データを計算する。機構データには、ロボットの隣り合う関節軸間の相対関係を表すためのDHパラメータが含まれる。DHパラメータは、ロボットの各駆動軸の角度位置とロボットの先端位置との関係を定める関係式において用いられるDH法(Denavit Hartenberg)法におけるパラメータである。DH法では、それぞれの関節軸に座標系を設定し、互いに隣り合う関節軸の座標系同士の間の関係に基づいてロボットの位置および姿勢を表現する。DH法では、パラメータθ,d,a,α,βが使用される。各パラメータの意味を以下に示す。
  θ:xi-1軸からxi軸までの回転角(zi-1軸まわり)
  d:第i-1座標系原点から、zi-1軸とxi軸との交点までの距離(リンク長)
  a:zi-1軸とxi軸との交点から、第i座標系原点までの距離(関節軸同士間の距離)
  α:zi-1軸からzi軸までの回転角(xi軸まわり)
  β:zi-1軸からzi軸までの回転角(yi軸まわり)
 機構データには、機構誤差パラメータが含まれる。機構誤差パラメータは、DHパラメータ(θ,d,a,α,β)の誤差、各駆動軸の三次元方向に発生するトルクに対するバネ定数(重力或いは外力によるアームの撓みを表す要素)、各軸のエンコーダ出力と回転量の関係をモデル化した角度伝達誤差など、ロボットの先端位置及び姿勢を変化させる要素を含んでいても良い。
 例えば、各軸のx,y,z軸まわりに生じるトルクに対する各軸の撓みを補正する場合、各軸に3つのばね定数を誤差パラメータとして持たせ、トルク×バネ定数を上記θ,α,βに補正量として加算しても良い。
 角度伝達誤差に関しては、エンコーダ出力(x)に対する回転量(y)の比(a)を誤差パラメータとして持つモデル(y=ax)、或いは、エンコーダ出力(x)と回転量(y)の関係を定式化したモデル(y=ax+b・cos(x))を用いて、上記θ,α,βに補正量として加算しても良い。
 また、機構データは、ワールド座標系の原点の位置の誤差、空間補正のための各軸座標値と直交座標値のテーブルを含んでいても良い。
 機構データは、ロボットにおいて互いに隣接する関節部同士の間の相対的な位置関係を示す行列または関係式を含んでも良い。この場合、機構データには、上記のDHパラメータによって定められた隣り合う関節部同士の位置関係を定めた同次変換行列T、この同次変換行列Tを展開した関係式が含まれ得る。
 図2を参照して、座標系75は、k番目の関節部における座標系を示す。座標系76は、k番目の関節部の隣の(k+1)番目の関節部における座標系を示す。k番目の座標系から(k+1)番目の座標系を算出するための同次変換行列Tk、およびフランジ座標系からツール座標系を算出するための同次変換行列TUTとすると、1番目の座標系からツール先端点の位置PPを算出するための同次変換行列T1Pは、次の式(1)で表すことができる。
        T1P=T12 ... TnUT  …(1)
 式(1)の同次変換行列を展開すると、1番目の座標系からツール先端点の位置PPを算出するための関係式を得ることができる。この同次変換行列または関係式は、設計値に対する誤差を含んでいても良い。例えば、機構データは、設計値のパラメータaiに対して誤差Δaiを含むパラメータ(ai+Δai)および設計値のパラメータαiに対して誤差Δαiを含むパラメータ(αi+Δαi)等によって定められる変換行列または関係式であっても良い。
 機構データ校正部134は、測定位置と指令位置との誤差が最小になるように、最小二乗法などの手法を用いて機構データを同定する。上述の誤差パラメータを要素とするベクトルをqとすると、ロボット先端部の三次元位置を示すベクトルpは、誤差モデルを考慮した関数fにより以下の様に表すことができる。
  p=f(q)
 ロボット先端部の指定位置と測定位置のずれ量を表すベクトルΔpは、各誤差パラメータの微小変動の線形結合の和で以下の様に近似できる。なおJAはヤコビアンである。
  Δp=(∂p/∂q)・Δq=JA・Δq
 三次元測定器は3次元位置の測定結果を得ることから、一つの姿勢計測から3つの方程式が成り立つ。これらのを複数の計測姿勢に拡張することで、これらの対応したずれ量を示すベクトルΔrとヤコビアンDが得られ、次のように表すことができる。
  Δr=D・Δq
 Δrを最小とする繰り返し推定問題を解くことで誤差パラメータを同定するのが一般的である。
 以上のように、機構データ校正部134は、ロボットの位置の実際の誤差を反映するように機構データをキャリブレーションすることができる。
 機構データ出力部135は、キャリブレーションされた機構データを出力することができる。機構データ出力部135は、機構データをファイル形式で出力することができる。機構データの出力先は、外部デバイスでも良いし、キャリブレーション装置130内の記憶部140でも良い。機構データ出力部135から生成される機構データファイル90は、仮想ロボットに誤差を発生させる目的で使用する場合と、実ロボットでの誤差を補正する目的で使用される場合とで、別の形式にしてもよい。或いは、仮想ロボットに誤差を発生させる目的で使用する側の装置と、実ロボットでの誤差を補正する目的で使用する側の装置で共通に参照可能なデータ形式とし、実ロボット、仮想ロボットの読み込み側で内容、使用方法を判別するようにしても良い。
 機構データの機構誤差パラメータの一つの要素としてのアームの重力による撓みについて図4を参照し説明する。図4(及び図5)では、説明を簡単にするため、ロボットをアーム61、62と、関節部63とを有する構成としている。アーム62が重力の影響により下方に撓むものとする。図4に示すように、アーム62に重力による撓みが発生する場合、機構データ校正部134により上述のように算出される機構データはこの撓みの誤差を反映する。この機構データ(機構誤差パラメータ)を用いることで仮想ロボットのアーム62に実ロボットに生じる重力による撓みと同じ撓みを生じさせることができる(図中矢印A1)。他方、実ロボット用の機構データとしては、アームが撓んでも図4に図示のロボットの位置姿勢に到達できるように、仮想ロボットに生じさせる誤差とは逆方向に補正が掛けられるようなデータとしても良い(図中矢印B1)。
 機構データの機構誤差パラメータの一つ要素としての軸間のねじれについて図5を参照して説明する。図5に示すように、アーム61に軸間のねじれによる誤差が生じているとする。この場合、機構データ校正部134により上述のように算出される機構データはこの軸間ねじれを反映する。この機構データ(機構誤差パラメータ)を用いることで仮想ロボットのアーム61に実ロボットに生じる軸間ねじれと同じ軸間ねじれ生じさせることができる(図中矢印A2)。他方、実ロボット用の機構データとしては、実ロボットでは、軸間ねじれが生じていても図4に実線で図示の位置姿勢に到達できるように、仮想ロボットに生じさせる誤差とは逆方向に補正が掛けられるようなデータとしても良い(図中矢印B2)。
 機構データの機構誤差パラメータの一つとしての角度伝達誤差について図6を参照して説明する。機構データ校正部134により上述のように算出される機構データは角度伝達誤差を反映する。機構データが表す角度伝達誤差が、図6の実線のような特性であるとする。この場合、仮想ロボットに実ロボットで生じている角度伝達誤差を生じさせるため、仮想ロボットには、図6の実線のような角度伝達誤差A3が付与される。他方、実ロボット用の機構データとしては、実線のような角度伝達誤差による位置の誤差が補正されるように、実線の角度伝達誤差とは逆特性となる破線の特性のような角度伝達誤差B3を付与するようにデータを生成しても良い。
 機構データ修正部136は、実ロボットの機構データの各要素について修正・或いは修正しないように設定する機能を提供する。各機構誤差パラメータについて適用する割合を指定して修正を行うようにしてもよい。
 なお、実ロボットに対して機構データの修正(キャリブレーション済み機構データの適用)を行わない場合、機構データを適用した仮想ロボットを用いて作成されたオフラインプログラムを用いるようにしても良い。実ロボットに対して機構データの修正(キャリブレーション済み機構データの適用)を行う場合、適用前に教示済みのプログラムやシステムに保存されている位置データを変換することで、適用前に教示した位置データを再度達成できるようにすることも可能である(後述の第2実施形態、第4実施形態等を参照)。
 上述のように機構データ校正部134により機構データを算出し、機構データ出力部135により機構データを出力できるようにすることで、オフライン教示装置50においてこれを用い、仮想ロボットに実ロボットの誤差を反映させることができるようになる。その結果、誤差を含んだ仮想ロボットを用いてプログラムの作成・変換を行うことが可能になる。
 さらに、機構データ修正部136を有することで、オフラインでのプログラムの作成・変換方法に応じて実ロボットに機構データを適用する割合を選択することができる。その結果、機構データ適用前に教示した位置データの数などを勘案し、実ロボットに機構データを適用する/しない或いは適用前に教示したデータの修正が不要な程度だけ適用するなど、キャリブレーションした機構データを最適な形態でロボットに適用することも可能になる。
 オフライン教示装置50は、キャリブレーション装置130により出力される機構データ(キャリブレーションされた機構データ)を用いることで、仮想ロボットを機構データを反映した適切な位置に到達させることができる。これにより、オフライン教示装置50は、正確な教示(オフラインプログラミング)を行うことを可能とする。
 特に、実施形態において、機構データ(機構誤差パラメータ)には、(a)ロボットのリンク長や組付け誤差など、計測によるデータ取得では精確にCADモデルには反映することができない要素や、(b)重力による撓みや角度伝達誤差など、CADモデルには反映できない要素を含み得る。したがって、オフライン教示装置50は、上記(a),(b)のような機構誤差パラメータを含む機構データを反映した精確な教示を行うことができる。
 図7に、オフライン教示装置50の機能ブロック図を示す。オフライン教示装置50は、プロセッサ150、メモリ(記憶部156)、表示部154、操作部155、更に入出力インタフェース(不図示)等、一般的なコンピュータとしての構成を有していても良い。図7に示すように、オフライン教示装置50は、機構データ読み込み部151と、モデル修正部152と、仮想ロボット制御部153とを含む。なお、オフライン教示装置50は、ロボットの教示に係わるUI(ユーザインタフェース画面)を表示し、UI画面に対する操作を受け付けるための構成として表示部154及び操作部155を有している。操作部155は、キーボード、マウス、或いは、タッチパネルである。タッチパネルの場合、表示部154と操作部155は一体的に構成される。表示部154は、例えばフラットパネルディスプレイを有する。
 機構データ読み込み部151は、機構データファイル90を読み込み記憶する機能を提供する。例えば、機構データ読み込み部151は、図8に示すようなUI画面を表示部154に表示して機構データを仮想ロボットに適用する操作(すなわち、機構データを読み込む操作)を受け付ける。図8に示すUI画面は、仮想ロボットモデル1Mと、機構データファイル90を表す画像とを含んでいる。このUI画面を介して、ユーザが機構データファイル90を仮想ロボットモデル1Mにドラッグアンドドロップすることで、仮想ロボットモデル1Mに機構データファイル90中の機構データが適用される。機構データ読み込み部151は、読み込んだ機構データを、例えば記憶部156に記憶すると共に、機構データをモデル修正部152と仮想ロボット制御部153に送る。
 モデル修正部152は、機構データのうち、DHパラメータ等の情報から、仮想ロボットのCADモデルを修正する。DHパラメータを用いることで、モデル修正部152は、リンク長や組み付け誤差等を精確に仮想ロボットのCADモデルに反映することができる。
 モデル修正部152は、更に、ワークや周辺装置のCADモデルを修正する機能を備えていても良い。この場合、モデル修正部152は、寸法可変の変数で定義されたワークや周辺装置の三次元モデルを、三次元測定器20を用いて計測した寸法に基づき修正することができる。
 仮想ロボット制御部153は、機構データに基づいて、ロボットの位置を補正するための補正量を算出することができる。仮想ロボット制御部153は、仮想ロボットを制御する際に、算出された補正量とは逆方向に補正が加わるように動作指令を生成する。これにより、実ロボットで発生する誤差を仮想ロボットに反映するように仮想ロボットを動作させることができる。補正量の具体的な計算手法について以下に説明する。
 オフライン教示装置50は、以下の2つの機構データを保持しているものとする。
(D1)更新前の機構データ(キャリブレーションによる更新前の機構データ)
(D2)更新後の機構データ(キャリブレーションによる更新後の機構データ)

(手順K1)適用前の機構データ(D1)における動作指令における位置データを各軸位置(a)とする。各軸位置(a)を適用前の機構データ(D1)を用いて順変換(順運動学による変換)しロボット手先の直交位置pを得る。

(手順K2)続いて、直交位置pを適用後の機構データ(D2)を用いて逆変換(逆運動学による変換)し、各軸位置(b)を得る。

(手順K3)(b)-(a)が補正量を表す。
 実ロボットに「適用後の機構データ(D2)」を適用しない場合において、動作指令の位置データ(各軸位置(a))を「適用後の機構データ(D2)」が適用された位置データに変換するには、動作指令の位置データ(各軸位置(a))に補正量を加算する。
 実ロボットに「適用後の機構データ(D2)」を適用する場合において、動作指令の位置データ(各軸位置(a))を、「適用後の機構データ(D2)」が適用されていない位置データに変換するには、動作指令の位置データ(各軸位置(a))から補正量を減算する。
 なお、上述の手順による補正量の計算は、ロボットを入れ替える場合にも適用することができる。
 仮想ロボット制御部153は、上述のように求められる補正量とは逆方向の補正がかけられるように動作指令を生成し、現実のロボットで発生している誤差が仮想ロボットにも発生するように制御することができる。
 これにより、仮想ロボット制御部153は、例えばロボットの姿勢により変化する重力によるたわみや、角度伝達誤差を補正量の計算に加味し、仮想ロボットに導入することができる。これにより、干渉検出やプログラムの作成・変換の精度を、ロボットの姿勢によらず向上させることが可能となる。
 オフライン教示システムの一つのセルは、例えばロボットの数が30台を超えることがあり、1台ずつファイルを選択して仮想ロボットに機構データを適用する操作を行うには時間を要する場合がある。また、重力による撓みに関連する機構データは、同一のロモットモデルであれば使いまわすことが可能である。この点、上述したように、機構データ読み込み部は、ドラッグアンドドロップにより機構データをロボットモデルに適用できる構成を採用した。これにより、同一の機構データを複数の仮想ロボットに容易に適用可能となり、多数のロボットに機構データを適用する場合においても時間を短縮することが可能となる。
 第2実施形態
 以下、第2実施形態に係るプログラム変換装置250について説明する。プログラム変換装置250は、更新された機構データを反映した適正な位置姿勢にロボットを到達させるように動作プログラムの位置データを変換する機能を提供する。他方、更新された機構データをロボットに適用すると、適用前に動作プログラム内に教示した位置データを使用できなくなる可能性がある。本実施形態のプログラム変換装置250は、更新された機構データがロボットに適用された場合において、適用しない場合と同じ位置に到達するようにする動作プログラムの位置データを変換する機能をも提供するように構成される。
 図9に示すように、本実施形態では、プログラム変換装置250は、オフライン教示装置50のプロセッサによる機能として実現されるものとする。なお、プログラム変換装置250をロボット制御装置30内のプロセッサにより実現される機能として構成する例も有り得る。
 図9にプログラム変換装置の機能ブロック図を示す。プログラム変換装置250は、プログラム抽出部251と、プログラム選択部252と、機構データ読み込み部253と、紐づけ画面制御部260とを含む。
 機構データ読み込み部253は、キャリブレーション装置130により出力される機構データファイル90(すなわち、実ロボットで校正された機構データ)を読み込んで記憶部254に記憶する。
 プログラム抽出部251は、プログラム一覧から、校正されたロボットの位置データを含むプログラムを抽出し表示画面に列挙する。プログラム選択部252は、ユーザ操作に基づき、列挙されたプログラムから、少なくとも一つのプログラムを選択する機能を提供する。プログラム選択部252を介したプログラムの選択に応じて、紐づけ画面制御部260が呼び出される。
 図9に示すように、紐づけ画面制御部260は。紐づけプログラム選択部261と、プログラム表示部262と、紐づけ部263と、紐づけ設定部264と、変換部265と、変換選択部266と、変換選択設定部267と、位置修正部268とを含む。
 紐づけプログラム選択部261は、選択されたプログラムを表示画面に列挙し、位置データの変換に必要なデータが不足しているプログラムを認識可能に表示する。例えば、紐づけプログラム選択部261は、位置データの変換に必要なデータが不足しているプログラムについて表示色を変えること等を行っても良い。
 プログラム表示部262は、紐づけプログラム選択部261で選択されたプログラムの内容に関する情報と、紐づけ部263及び紐づけ設定部264により提供される各種情報を表示する。
 紐づけ部263は、動作プログラムに基づき、位置データの変換に必要なデータを推定して表示し、表示結果をユーザが修正することができるようにする機能を提供する。紐づけ設定部264は、位置データに含まれる情報と、変換に必要な推定方法とを事前に設定する機能を提供する。
 変換選択部266は、位置データ毎に変換する/しないを設定する機能を提供する。変換選択設定部267は、直線、各軸、円弧などの動作形式や、位置データの位置形式(直交、各軸)に応じて変換する/しないを設定する機能を提供する。変換選択部266は、位置データ毎に変換する/しないを設定するためのユーザ入力を受け付けるように構成されていても良い。変換選択部266は、変換選択設定部267による設定に従って位置データ毎に変換する/しないを決定することができる。変換選択設定部267は、ユーザ入力によって設定情報を生成できるように構成されていても良い。
 変換部265は、更新された機構データに基づいて補正量を計算し、位置データに加算或いは減算する。すなわち、変換部265は、動作プログラム内の位置データを、
(F1)実ロボットに機構データを適用しない場合に、適用した場合と同じ位置となる位置データ、或いは、
(F2)実ロボットに機構データを適用した場合に、適用しない場合と同じ位置となる位置データ、に変換する機能を提供することができる。ここで、位置データを補正する量の割合を指定可能としても良い。変換部265は、位置データを変換できない場合に、ユーザに報知するようにしても良い。変換部265は、位置データが相対位置として設定されている場合には、絶対位置に戻してから変換を実行し、相対位置に戻すように動作しても良い。
 変換部265は、位置データに対して適用する補正量を以下の様に算出して位置データの変換を行う。
 プログラム変換装置250は、以下の機構データを保持している。
(D1)更新前の機構データ(キャリブレーションによる更新前の機構データ)
(D2)更新後の機構データ(キャリブレーションによる更新後の機構データ)

 プログラム変換装置250は、上述の第1実施形態で説明した(手順K1)から(手順K3)により補正量を計算する。
 実ロボットに機構データ(D2)を適用しないで、機構データ(D2)が適用された位置データに変換するには、各軸位置(a)に補正量を加算すればよい。
 実ロボットに機構データ(D2)を適用して、機構データ(D2)が適用されていない位置に変換するには、各軸位置(a)から上記補正量を減算する。
 直交形式で教示されている場合は、機構データ(D1)で逆変換して各軸位置(a)を得る。
 直交形式の場合は、補正量を加算・減算した各軸位置を、機構データ(D1)で順変換して直交位置を得る。
 上述のような補正量の適用は、ロボットを入れ替えて機構データを更新する場合にも対応することができる。
 変換部265による上述の変換機能を図12の模式図で説明することができる。符号301がオフラインプログラミングで到達させたいロボットの位置姿勢であるとする(上述の各軸位置(a)に相当する)。実ロボットは、重力による撓み等の影響で、符号301で示す位置姿勢よりも下方に撓んだ位置姿勢をとる(符号303で指すロボットに付した矢印A4)。符号302に示すロボットの位置姿勢は、上述の変換処理で求められた補正量を符号301で示すロボットの位置姿勢(各軸位置(a))に加えることで得られたものである。補正後のロボットの位置データは、符号302で示すようなものとなるが、実ロボットでは重力による撓みの影響により、符号303で示すようにロボットは目標の位置(符号301で示すロボットの位置)に到達することとなる。
 位置修正部268は、上記変換により得られた位置を、オフライン教示装置50上で修正する機能を提供することができる。
 図10及び図11を参照し、紐づけ画面制御部260の機能として提供されるUI(ユーザインタフェース)画面について説明する。図10は、変換するプログラムを選択するためのUI画面の構成例を示す図である。図10に示すUI画面280は、プログラム抽出部251及びプログラム選択部252による機能として提供される。UI画面280は、プログラム抽出部251により抽出されたプログラムの一覧を表示するプログラム一覧表示領域281を含む。ユーザは、プログラム一覧表示領域281から、変換の対象とするプログラムを選択することができる。ユーザは、例えばプログラム一覧表示領域281でプログラムを選択し、追加ボタン283を押下することで、当該選択したプログラムを、変換対象のプログラムの一覧を表示する変換対象プログラム一覧表示領域282に追加することができる。
 図11は、変換の詳細設定に関するUI画面290を示している。UI画面290は、UI画面280内の「推定値を確認」ボタン284を押下することに応じて起動されても良い。すなわち、UI画面290は、紐づけ部263が位置データの変換に必要なものとして推定したデータを確認する画面としての機能も有している。UI画面290は、紐づけ画面制御部260による機能として提供される。
 図11に示すように、UI画面290は、当該UI画面290での処理の対象となるプログラム(紐づけの対象とするプログラム)を選択するためのプログラム一覧表示領域291を含む。当該プログラム一覧表示領域291には、UI画面280において選択され変換対象プログラム一覧表示領域282に含まれているプログラムが表示される。
 UI画面290は、プログラム一覧表示領域291から選択したプログラムの内容を表示するプログラム表示領域292を含む。ここでは、プログラム一覧表示領域291から、プログラム‘ABC’が選択されているものとする。プログラム表示領域292には、プログラム‘ABC’の内容が表示されている。
 プログラム表示領域292には、プログラム‘ABC’の内容が各命令文ごとに示されている。
 プログラム表示領域292の右の列の欄293は、紐づけ部263による、変換に必要なデータの推定結果としての負荷設定情報を表示する欄である。欄293で提供される機能は、紐づけ部263の機能に相当する。本例では、負荷情報としての負荷設定番号が設定されている。
 紐づけ部263は、プログラムの内容に基づき、位置データに対応する負荷情報を推定することができる。例えば、プログラムに含まれる負荷設定命令(PAYLOAD)から位置データに適用される負荷情報(負荷設定番号)を推定することができる。この場合、負荷設定命令(PAYLOAD)の配置位置に基づき、位置データに適用される負荷設定を把握することができる。例えば、位置データを含む命令文より前にあり、当該命令文に最も近い位置にある負荷設定命令を当該位置データについての負荷設定情報として推定しても良い。
 ユーザは、紐づけ部263により推定され欄293に設定されている負荷情報を確認し、必要に応じ修正を行うことができる。
 このように紐づけ部263により負荷設定を推定するようにして、且つ、ユーザが修正できる構成とすることで、負荷設定に関するユーザの手間を省略することができる。また、位置データに対して複数の負荷設定が存在する状況(例えば、動作プログラム内において一つの位置レジスタに対して複数の負荷設定が含まれるような状況)においても位置データに対し適切に負荷情報を設定することができる。
 紐づけ部263は、紐づけ設定部264による設定情報にしたがって負荷設定を行うように構成されていても良い。例えば、紐づけ設定部264は、位置データに含まれるツール座標系番号と負荷設定番号との対応を表す情報を保有しておく。紐づけ部263は、この設定情報に従って、各位置データの負荷設定番号を推定して設定することができる。
 プログラム表示領域292の更に右側の欄294では、位置データを含む命令文毎に位置データを変換するか否かを指定することができる。欄294で提供される機能は、変換選択部266の機能に相当する。ここでは、プログラムに含まれる位置データ毎に変換を行うか否かを設定することができる。従って、ユーザは、位置データの性質に応じて変換を行うか否かを適宜決定することができる。例えば、ホーム位置など、ロボットを変換前の位置に戻したいような場合、ユーザは当該位置については変換を行わない設定をすることができる。
 変換選択部266は、変換選択設定部267の設定情報に従って変換を行うか否かの自動設定を行うように構成されていても良い。例えば、変換選択設定部267に、「ロボットの特定の動作形式や位置データに対して変換する/変換しない」を定義する設定情報をもたせる。これにより、ロボットの特定の動作形式や位置データに対して一括して変換の設定(変換を行う/変換を行わない)が可能になる。具体的には、各軸動作の場合には精度が要求されないため変換を行わない、といった動作を実現することができる。
 位置修正部268により、変換された位置を確認し、位置を設定し、プログラムの位置データに反映することができる。例えば、基準位置には各軸範囲が指定されていて、範囲外だとアラームが発生する場合に、アラームが発生しない位置に修正することができる。位置修正部268は、変換後の位置データを修正するためのUI画面を提供し、位置データを修正する操作を受け付けるように構成さえていても良い。
 第3実施形態
 以下、第3実施形態に係るプログラム変換装置350について説明する。ロボットに機構データを適用した場合、ロボットの到達位置のみでなく軌跡も変化する。プログラム変換装置350は、第2実施形態に係る変換部265のように機構データに基づいて動作プログラム内の位置データを変換する機能を有すると共に、位置データを変換した結果として、プログラム変換の前後で軌跡に一定以上の偏差が生じた場合に当該偏差が小さくなるように位置データを修正する機能を提供する。
 本実施形態では、プログラム変換装置350は、オフライン教示装置50のプロセッサによる機能として実現されているものとする。なお、プログラム変換装置350をロボット制御装置30内のプロセッサにより実現される機能として構成する例も有り得る。
 図13に示すように、プログラム変換装置350は、プログラム選択部351と、軌跡記憶部352と、機構データ読み込み部353と、変換部354と、軌跡比較部355と、教示位置修正部356とを備える。
 プログラム選択部351は、変換の対象となるプログラムを選択する機能を提供する。
 機構データ読み込み部353は、キャリブレーション装置130により生成され出力される機構データファイル90を読み込み記憶部360に記憶する。
 変換部354は、プログラム選択部351を介して選択されたプログラムにおける位置データを、機構データに基づいて得られる補正値により修正することでプログラムの変換を行う機能を提供する。なお、変換部354は、第2実施形態における変換部265による変換機能と同じ変換機能を有するものとする。
 軌跡記憶部352は、
・プログラム選択部351によって選択された動作プログラムに基づくロボットの動作軌跡(すなわち、機構データによる機構誤差を適用する前の動作軌跡)(以下、動作軌跡T1と記す)と、
・変換後の動作プログラムに基づくロボットの動作軌跡(機構データによる機構誤差を適用した後の動作軌跡)(以下、動作軌跡T2と記す)と、を記憶する。
 軌跡比較部355は、変換の前後でのロボットの動作軌跡を比較し、偏差が一定以上発生しているか否かを判断する。具体的には、軌跡比較部355は、変換部354が上述の変換機能(F1)による変換を行う場合には、変換後の位置データによる動作軌跡と上記動作軌跡T1とを比較する。他方、軌跡比較部355は、変換部354が上述の変換機能(F2)による変換を行う場合には、変換後の位置データによる動作軌跡と上記動作軌跡T2とを比較する。変換の前後でロボットの動作軌跡に一定以上の偏差が生じている場合、教示位置修正部356は、変換後の動作プログラムにおける少なくとも一つの位置データを、偏差が小さくなるように修正する。
 実ロボットに機構データ(機構誤差)を適用した場合、位置データだけでなく、動作軌跡も変化する。すなわち、実ロボットに機構データを適用し、機構データ適用前の目標位置へ動作するようにプログラムを変換しても、動作軌跡が変化してしまう。それにより、変換前には生じなかった干渉(ロボットと周辺機器等との干渉)が生じる可能性が有る。この点、本実施形態によれば、変換の前後における軌跡変化を小さくすることができる。これにより、動作プログラムを軌跡の変化が少なくなるように運用することができる。
 なお、軌跡データを時系列データとしてみることで、ロボットの動作速度や動作時間に変化が生じないように軌跡を変更すること(位置データを修正すること)も可能である。本実施形態で記載した構成の機能は、第2実施形態で記載したプログラム変換装置250の機能として提供されても良い。
 第4実施形態
 以下、第4実施形態に係る位置データ変換装置450について説明する。生産稼働中のロボットシステムに対して更新された機構データを適用する場合を考慮する。この場合、ロボットの動作プログラム内位置データのみでなく、事前に教示設定した座標系や原点復帰位置など、システム内で共有されるグローバルな位置データに関しても適切な変換を行うことが望まれる。第4実施形態に係る位置データ変換装置450は、オフライン教示装置50又は実ロボット(ロボット制御装置30)に教示設定されている位置データを取得し、機構データに基づいて位置データを変換し、オフライン教示装置50又は実ロボット(ロボット制御装置30)の位置データを変更する。
 本実施形態では、位置データ変換装置450は、オフライン教示装置50のプロセッサによる機能として実現されているものとする。
 図14は、第4実施形態に係るオフライン教示装置50の機能ブロック図である。オフライン教示装置50は、位置データ変換装置450を備える。オフライン教示装置50は、動作プログラム内に設定される位置データを位置データ保存部461内に保有している。また、ロボット制御装置30は、実ロボットに関し教示設定される位置データを位置データ保存部431内に保有している。オフライン教示装置50は、実ロボットに設定されている位置データをロボット制御装置30から取得し位置データ保存部461内に保存する。
 機構データ読み込み部455は、キャリブレーション装置130が出力する機構データファイル90を読み込み、記憶部460に記憶する。
 変換データ抽出部451は、変換可能な位置データを抽出し、変換データ選択部452に提供する。変換データ選択部452は、抽出された位置データを選択可能に表示する。変換データ選択部452、変換すべき位置データを選択するためのUI画面を表示し、ユーザ操作に基づき位置データを選択するように構成されていても良い。
 紐づけ部454,紐づけ設定部453は、それぞれ、第2実施形態における紐付け部263,紐づけ設定部264と同じ機能を有する。紐付け部454,紐づけ設定部453を備えることで、変換に必要なデータが位置データに含まれない場合の変換を効率的に行うことができる。
 変換部456は、選択された位置データに関し、実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換することができる。
 生産稼働中のロボットには、プログラム内の位置データのみでなく、事前に教示設定した座標系や原点復帰位置など、ロボットシステム全体で共有可能な位置データが存在する。本実施形態に係るオフライン教示システムを生産稼働中のロボットに適用し、生産稼働中の実ロボットに機構データを適用した場合に、システム全体の位置データを適用前の位置に変換できる。本実施形態で記載した構成(変換部456等)の機能は、第2実施形態で記載したプログラム変換装置250の機能として提供されても良い。
 第5実施形態
 第5実施形態に係るプログラム変換装置550について説明する。コンベヤ等により移動するワークに追従するトラッキング動作では、ワークに張り付いて動く座標系に対する位置教示を行う。第5実施形態に係るプログラム変換装置550は、機構データに基づき、トラッキングに用いられる動的座標系の位置データを変換する機能を提供する。
 本実施形態では、プログラム変換装置550は、オフライン教示装置50のプロセッサによる機能として実現されているものとする。なお、プログラム変換装置550をロボット制御装置30内のプロセッサにより実現される機能として構成する例も有り得る。
 図15は、第5実施形態に係るプログラム変換装置550の機能ブロック図である。図15に示すように、プログラム変換装置550は、プログラム選択部551と、機構データ読み込み部552と、変換部553と、動的座標系設定部554とを備える。
 プログラム選択部551は、変換の対象となるプログラムを選択する機能を提供する。
 機構データ読み込み部551は、キャリブレーション装置130により生成され出力される機構データを読み込み記憶部560に記憶する。
 動的座標系設定部554は、動的に動く座標系の動きを設定する機能を提供する。動的座標系設定部554は、例えば、ユーザ入力に基づき、動的座標系の動きを設定する。動的座標系設定部554は、動的座標系の動きに関する情報を外部装置(例えば、ロボット制御装置)から取得しても良い。
 変換部553は、プログラム選択部551を介して選択された動作プログラムにおける位置データを、機構データに基づいて得られる補正値により修正することでプログラムの変換を行う機能を提供する。なお、変換部553は、第2実施形態における変換部265と同じ変換機能を有する。変換部553は、選択された動作プログラム内の位置データが、動的座標系に対する相対位置データの場合に、相対位置を絶対位置に変換し、絶対位置に変換された位置データを第2実施形態の変換部265と同様に処理により機構データに基づいて変換し、再度相対位置に戻す処理を行う。
 トラッキング動作では、外部からの信号に応じて動的座標が出現し、コンベヤやポジショナの動きに追従して動的座標系が動くように動作する。動的座標系の動きは、動作プログラムに関する設定情報として、例えば、「A地点から開始してBmm/secの速度でコンベヤ上を動く」など、開始位置、方向、速度、形状等を指定した情報を確認することができる。これにより、位置データに関連付けられた動的座標系が既知となるため、上述したように相対位置を絶対位置に変換した上で補正量を加算した後に、相対位置に戻すことで、トラッキングのためのプログラムも変換可能となる。本実施形態で記載した構成の機能は、第2実施形態で記載したプログラム変換装置250の機能として提供されても良い。
 第6実施形態
 以下、第6実施形態に係るオフライン教示装置50について説明する。第6実施形態に係るオフライン教示装置50は、
(1)ロボットが到達する位置及び順序が、ワークモデルに設定されている教示位置情報及び教示順序情報に一致するようにプログラム内の位置データを変換する機能と、
(2)プログラムの位置データを、機構データを適用する前にロボットが到達していた位置に変換する機能と、を提供する。
 図16に示すように、オフライン教示装置50は、機構データ読み込み部151と、モデル修正部152と、仮想ロボット制御部153と、位置変換部651と、を備える。なお、図16には、オフライン教示装置50が有する構成要素である表示部154も図示している。本実施形態に係るオフライン教示装置50は、ワークモデル情報652を有する。ワークモデル情報652には、ワークモデル、教示位置情報、及び教示順序情報が含まれる。
 機構データ読み込み部151、モデル修正部152、及び仮想ロボット制御部153は、第1実施形態に関し上述した機能を有する。すなわち、仮想ロボット制御部153は、モデル修正部152により修正されたCADモデル及び機構データに基づいて、位置データを修正するための補正値を求める機能を提供する。
 表示部154には、ロボットモデル、ワークモデル、その他の各種モデルの教示中の動作(シミュレーション動作)を表す画像が表示される。
 図17Aは、上記機能(1)(ロボットが到達する位置及び順序が、ワークモデルに設定されている教示位置情報及び教示順序情報に一致するようにプログラム内の位置データを変換する機能)を説明する図である。図17AにはワークモデルWM含まれる教示位置情報及び教示順序情報の例が示されている。図17Aに示すように、ワークモデルWMに4つの教示位置P[1],P[2],P[3],P[4]が規定されている。これらの教示位置は、P[1],P[2],P[3],P[4]の順序であることを表している。
 図17Aには、仮想ロボットに機構データを適用した後の、教示位置P[1]からP[4]に対応する仮想ロボットの到達位置M(1)からM(4)も示している。機構データを適用した結果として、仮想ロボットの到達位置M(1)からM(4)は、ワークモデルが指定する教示位置P[1]からP[4]と一致しない状態となっている。位置変換部651は、仮想ロボットが到達する教示順序と位置(M(1)からM(4))が、ワークモデルに含まれている教示順序と位置(P[1]からP[4])と一致するように、動作プログラム内の位置データを変換する。
 図17Bは、上記機能(2)(プログラムの位置データを、機構データを適用する前にロボットが到達していた位置に変換する機能)を説明する図である。図17Aと同様に、ワークモデルWMに設定されている教示順序と位置はP[1]からP[4]であり、機構データ適用後の仮想ロボットの到達位置は、M(1)からM(4)である。位置変換部651は、仮想ロボットの到達する教示順序と位置が、仮想ロボットの到達位置M(1)からM(4)を対称中心としてワークモデルの教示位置と点対象の位置K(1)からK(4)となるように、動作プログラムの位置データを変換する。
 実ロボットに機構データを適用せず、上記機能(1)によりオフラインでプログラムの位置データを変更すると、実ロボットがワークモデルに合った理想的な位置(P[1]からP[4])に到達するプログラムを構築できる。
 他方、実機ロボットに機構データを適用し、更に、上記機能(2)によりオフラインでプログラムの位置データを変換すると、ロボットに機構データを適用する前にロボットが到達していた位置(M(1)からM(4))にロボットが到達する動作プログラムを構築することができる。
 なお、以上では、ワークモデルに指定された教示順序、位置(教示情報)に応じて動作プログラムの位置データを変換する構成例について説明したが、ワークモデルに代えて、教示位置と順序の情報(教示情報)を含むプログラムに関して、上述の手法を適用して、位置データの変換を行っても良い。本実施形態による位置変換部651の機能は、第2実施形態で記載したプログラム変換装置250の機能として提供されても良い。
 第7実施形態
 以下、第7実施形態に係るオフライン教示装置50について説明する。第7実施形態に係るオフライン教示装置50は、仮想ロボットが到達する位置とワークモデルに指定されている教示位置との差が小さくなるようにワークモデルを修正する機能を提供する。
 図18に示すように、オフライン教示装置50は、機構データ読み込み部151と、モデル修正部152と、仮想ロボット制御部153と、表示部154と、レイアウト修正部751、ワークモデル情報752とを備える。
 機構データ読み込み部151、モデル修正部152、及び仮想ロボット制御部153は、第1実施形態に関し上述した機能を有する。ワークモデル情報752には、ワークモデル、教示位置情報、及び教示順序情報が含まれる。
 表示部154には、ロボットモデル、ワークモデル、その他の各種モデルの教示中の動作(シミュレーション動作)を表す画像が表示される。
 レイアウト修正部751は、仮想ロボットが到達する位置とワークモデルに指定されている教示位置との差が小さくなるようにワークモデルの位置姿勢を修正する。
 図19は、本実施形態に係るオフライン教示装置50の動作例を説明する図である。ワークモデルWMには、教示位置及び順序P[1]からP[4]が含まれている。仮想ロボットに機構データを適用することで仮想ロボットが到達する位置をM(1)からM(4)とする。レイアウト修正部752は、仮想ロボットが到達する位置M(1)からM(4)と、ワークモデルWMに含まれる教示位置P[1]からP[4]との差が小さくなるように、ワークモデルWM位置、姿勢を修正する。図19には、レイアウト修正部752によりワークモデルWMの位置が修正され、修正後のワークモデル(符号WM2で示す)が仮想ロボットの到達位置M(1)からM(4)と概ね一致する状態となった状況が示されている。
 本実施形態によれば、現物(ワーク等)に合わせて教示された動作プログラムを用いて、ワーク等の位置・姿勢を修正することができるようになる。ワークのずれ量をモニタしたり、ワークの位置は固定されているとして、ロボットのズレ(経年劣化ぐあい)をモニタすることもできる。
 第8実施形態
 以下、第8実施形態に係るオフラインのオフライン教示装置50について説明する。オフライン教示装置50は、機構データを適用した後の仮想ロボットと周辺装置等との干渉が発生した場合に、仮想ロボットの位置を変化させて干渉を防ぐ機能を提供する。
 図20に示すように、オフライン教示装置50は、機構データ読み込み部151と、モデル修正部152と、仮想ロボット制御部153と、表示部154と、干渉検出部851と、干渉回避動作生成部852と、ワークモデル情報853と備える。機構データ読み込み部151、モデル修正部152、及び仮想ロボット制御部153は、第1実施形態に関し上述した機能を有する。ワークモデル情報853には、ワークモデル、教示位置情報、及び教示順序情報が含まれる。
 干渉検出部851は、機構データを適用後の仮想ロボットが、周辺装置等と干渉していないかを検出する。
 干渉回避動作生成部852は、動作プログラム或いはワークモデル情報853に含まれる教示位置情報と教示順序とを基に、動作プログラムに基づいて仮想ロボットモデルを動作させた場合に干渉検出部851による干渉が検出されないように、動作プログラムに基づく軌跡を生成する。
 本実施形態によれば、実ロボットの誤差を含む仮想ロボットを用いるので高精度な干渉検出が可能になる。特に、ロボットが動作中に姿勢変化する際の誤差も仮想ロボットに反映でき、より高精度に干渉の検出が可能である。
 本開示について詳述したが、本開示は上述した個々の実施形態に限定されるものではない。これらの実施形態は、本開示の要旨を逸脱しない範囲で、または、特許請求の範囲に記載された内容とその均等物から導き出される本開示の趣旨を逸脱しない範囲で、種々の追加、置き換え、変更、部分的削除等が可能である。また、これらの実施形態は、組み合わせて実施することもできる。例えば、上述した実施形態において、各動作の順序や各処理の順序は、一例として示したものであり、これらに限定されるものではない。また、上述した実施形態の説明に数値又は数式が用いられている場合も同様である。
 上述の第2実施形態、第3実施形態、及び第5実施形態として記載したプログラム変換装置、及び、第4実施形態として記載した位置データ変換装置の各々の機能は、第1実施形態において記載したオフライン教示装置50の機能に追加する形で、或いは、仮想ロボット制御部153内の機能として実装されても良い。
 上述した実施形態において各種手順(指令位置及び測定位置の収集処理など)を実行するプログラムは、コンピュータに読み取り可能な各種記録媒体(例えば、ROM、EEPROM、フラッシュメモリ等の半導体メモリ、磁気記録媒体、CD-ROM、DVD-ROM等の光ディスク)に記録することができる。
 1  ロボット
 20  三次元測定器
 30  ロボット制御装置
 40  教示操作盤
 41  表示部
 42  入力部
 50  オフライン教示装置
 90  機構データファイル
 100  キャリブレーションシステム
 130  キャリブレーション装置
 131  指令生成部
 132  指令位置取得部
 133  測定位置取得部
 134  機構データ校正部
 135  機構データ出力部
 136  機構データ修正部
 140  記憶部
 150  プロセッサ
 151  機構データ読み込み部
 152  モデル修正部
 153  仮想ロボット制御部
 154  表示部
 155  操作部
 156  記憶部
 250  プログラム変換装置
 251  プログラム抽出部
 252  プログラム選択部
 253  機構データ読み込み部
 254  記憶部
 260  紐づけ画面制御部
 261  紐づけプログラム選択部
 262  プログラム表示部
 263  紐づけ部
 264  紐づけ設定部
 265  変換部
 266  変換選択部
 267  変換選択設定部
 268  位置修正部
 350  プログラム変換装置
 351  プログラム選択部
 352  軌跡記憶部
 353  機構データ読み込み部
 354  変換部
 355  軌跡比較部
 356  教示位置修正部
 360  記憶部
 450  位置変換装置
 451  変換データ抽出部
 452  変換データ選択部
 453  紐づけ設定部
 454  紐付け部
 455  機構データ読み込み部
 456  変換部
 460  記憶部
 550  プログラム変換装置
 551  プログラム選択部
 552  機構データ読み込み部
 553  変換部
 554  動的座標系設定部
 560  記憶部
 651  位置変換部
 652  ワークモデル情報
 660  記憶部
 751  レイアウト修正部
 752  ワークモデル情報
 760  記憶部
 851  干渉検出部
 852  干渉回避動作生成部
 853  ワークモデル情報
 860  記憶部

Claims (29)

  1.  ロボットの教示を行うための教示装置であって、
     ロボットの関節部における角度位置とロボットの先端位置との関係を求めるための機構データであって、実ロボットの機構誤差パラメータを含む機構データを記憶する記憶部と、
     前記機構誤差パラメータにより前記実ロボットに発生する位置の誤差が仮想ロボットで発生するように前記機構データに基づき前記仮想ロボットの動作を制御する仮想ロボット制御部と、を備える教示装置。
  2.  前記機構データは、ロボットのリンク長、組み付け誤差の少なくともいずれかの要素を含み、
     前記教示装置は、前記機構データに含まれる前記ロボットのリンク長、組み付け誤差の少なくともいずれかに基づいて前記仮想ロボットの三次元モデルを修正するモデル修正部を更に備え、
     前記仮想ロボット制御部は、前記モデル修正部により修正された前記三次元モデルを用いて前記仮想ロボットの制御を実行する、請求項1に記載の教示装置。
  3.  前記仮想ロボットの三次元モデルと、前記記憶部に記憶された機構データを表す画像とを表示画面上に表示すると共に、当該機構データを表す画像を前記仮想ロボットの三次元モデルにドラッグアンドドロップする操作を受け付け、該操作に応じて前記機構データを読み込み前記記憶部に記憶する機構データ読み込み部を更に備える、請求項1又は2に記載の教示装置。
  4.  前記機構データ読み込み部は、一つのセルに配備される複数の仮想ロボットの三次元モデルを表示すると共に、前記機構データを表す画像を前記複数の仮想ロボットの三次元モデルの1以上にドラッグアンドドロップする操作を受け付け、該操作に応じて前記機構データを読み込んで前記1以上の仮想ロボットに用いる機構データとして前記記憶部に記憶する、請求項3に記載の教示装置。
  5.  動作プログラム内の位置データに関し、実ロボットに前記機構データを適用しない場合に該実ロボットが前記機構データが適用された場合に到達する位置と同じ位置に到達するように前記位置データを変換する変換部を更に備える、請求項1から4のいずれか一項に記載の教示装置。
  6.  動作プログラム内の位置データに関し、実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換する変換部を更に備える、請求項1から4のいずれか一項に記載の教示装置。
  7.  前記動作プログラムに基づき、前記位置データの変換に必要なデータを推定し、前記変換のために前記位置データに紐づける紐づけ部を更に備える、請求項5又は6に記載の教示装置。
  8.  前記位置データの変換に必要なデータの推定に用いる設定情報を設定するための紐づけ設定部を更に備える、請求項7に記載の教示装置。
  9.  前記位置データの変換に必要なデータは負荷設定情報である、請求項7又は8に記載の教示装置。
  10.  前記動作プログラム内の前記位置データの各々について変換を行うか否かを選択するための変換選択部を更に備える、請求項5から9のいずれか一項に記載の教示装置。
  11.  前記変換選択部が、前記位置データの各々について変換を行うか否かを決定するために用いる設定情報を設定するための変換選択設定部を更に備える、請求項10に記載の教示装置。
  12.  前記変換部による変換前の前記位置データによるロボットの第1動作軌跡と、前記変換部による変換後の位置データによるロボットの第2動作軌跡とを比較する軌跡比較部と、
     前記第1動作軌跡と前記第2動作軌跡との偏差が一定以上発生する場合に、当該偏差が小さくなるように前記第2動作軌跡を修正する修正部と、を備える請求項5から11のいずれか一項に記載の教示装置。
  13.  教示した座標系、原点復帰位置の少なくともいずれかを含む、グローバルに適用される位置データに関し、実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換する変換部を備える、請求項1から4のいずれか一項に記載の教示装置。
  14.  動的に変化する座標系の動きを設定するための動的座標系設定部を更に備え、
     前記変換部は、前記位置データが、前記動的座標系設定部において設定された動的座標系に対する相対位置として設定されている場合に、前記相対位置を絶対位置に変換した上で前記位置データに対する変換を実行し、変換された絶対位置としての位置データを相対位置に戻す、請求項5から12のいずれか一項に記載の教示装置。
  15.  前記記憶部は、教示位置情報及び教示順序情報を含む教示情報を記憶し、
     動作プログラム内の位置データに関し、前記仮想ロボットが到達する教示位置及び教示順序が、前記教示情報に設定された教示位置情報及び教示順序情報と一致するように変換を行う位置変換部を更に備える、請求項1から4のいずれか一項に記載の教示装置。
  16.  前記記憶部は、教示位置情報及び教示順序情報を含む教示情報を記憶し、
     動作プログラム内の位置データに関し、前記仮想ロボットが到達する教示位置が、変換前に前記仮想ロボットが到達する位置を対称中心として前記教示情報に設定された教示位置に対して点対称の位置に来るように変換を行う位置変換部を更に備える、請求項1から4のいずれか一項に記載の教示装置。
  17.  前記記憶部は、ワークモデル、及び当該ワークモデルに対する教示位置情報及び教示順序情報を含むワークモデル情報を記憶し、
     前記教示装置は、動作プログラムにより前記仮想ロボットが到達する位置と、前記ワークモデルの教示位置との差が小さくなるように前記ワークモデルの位置姿勢を修正するレイアウト修正部を更に備える、請求項1から4のいずれか一項に記載の教示装置。
  18.  前記記憶部は、教示位置情報及び教示順序情報を含む動作プログラムを記憶し、
     前記教示装置は、前記動作プログラムに基づき前記仮想ロボットを動作させた場合に、前記仮想ロボットと周辺装置モデルとの干渉が検出されたときに前記仮想ロボットの表示状態を変化させる干渉検出部を更に備える、請求項1から4のいずれか一項に記載の教示装置。
  19.  前記干渉検出部により干渉が検出された場合に、干渉が発生しないように前記動作プログラムによる動作軌跡を変更する干渉回避動作生成部を更に備える、請求項18に記載の教示装置。
  20.  ロボットの教示を行うための教示装置であって、
     ロボットの関節部における角度位置とロボットの先端位置との関係を求めるための機構データであって、実ロボットの機構誤差パラメータを含む機構データと動作プログラムを記憶する記憶部と、
     前記動作プログラム内の位置データに関し、実ロボットに前記機構データを適用しない場合に該実ロボットが前記機構データが適用された場合に到達する位置と同じ位置に到達するように前記位置データを変換する、或いは実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換する変換部と、
     前記位置データの変換に必要なデータを推定し、前記変換のために前記位置データに紐づける紐づけ部と、を備える教示装置。
  21.  前記位置データの変換に必要なデータの推定に用いる設定情報を設定するための紐づけ設定部を更に備える、請求項20に記載の教示装置。
  22.  前記位置データの変換に必要なデータは負荷設定情報である、請求項20又は21に記載の教示装置。
  23.  前記動作プログラム内の前記位置データの各々について変換を行うか否かを選択するための変換選択部を更に備える、請求項20から22のいずれか一項に記載の教示装置。
  24.  前記変換選択部が、前記位置データの各々について変換を行うか否かを決定するために用いる設定情報を設定するための変換選択設定部を更に備える、請求項23に記載の教示装置。
  25.  前記変換部による変換前の前記位置データによるロボットの第1動作軌跡と、前記変換部による変換後の位置データによるロボットの第2動作軌跡とを比較する軌跡比較部と、
     前記第1動作軌跡と前記第2動作軌跡との偏差が一定以上発生する場合に、当該偏差が小さくなるように前記第2動作軌跡を修正する修正部と、を備える請求項20から24のいずれか一項に記載の教示装置。
  26.  教示した座標系、原点復帰位置の少なくともいずれかを含む、グローバルに適用される位置データに関し、実ロボットに前記機構データを適用した場合に、該実ロボットが前記機構データが適用されない場合に到達する位置と同じ位置に到達するように前記位置データを変換する位置データ変換部を更に備える、請求項20から25のいずれか一項に記載の教示装置。
  27.  動的に変化する座標系の動きを設定するための動的座標系設定部を更に備え、
     前記変換部は、前記位置データが、前記動的座標系設定部において設定された動的座標系に対する相対位置として設定されている場合に、前記相対位置を絶対位置に変換した上で前記位置データに対する変換を実行し、変換された絶対位置としての位置データを相対位置に戻す、請求項20から26のいずれか一項に記載の教示装置。
  28.  前記記憶部は、教示位置情報及び教示順序情報を含む教示情報を記憶し、
     動作プログラム内の位置データに関し、前記仮想ロボットが到達する教示位置及び教示順序が、前記教示情報に設定された教示位置情報及び教示順序情報と一致するように変換を行う位置変換部を更に備える、請求項20から27のいずれか一項に記載の教示装置。
  29.  前記記憶部は、教示位置情報及び教示順序情報を含む教示情報を記憶し、
     動作プログラム内の位置データに関し、前記仮想ロボットが到達する教示位置が、変換前に前記仮想ロボットが到達する位置を対称中心として前記教示情報に設定された教示位置に対して点対称の位置に来るように変換を行う位置変換部を更に備える、請求項20から27のいずれか一項に記載の教示装置。
PCT/JP2022/031928 2022-08-24 2022-08-24 教示装置 WO2024042653A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2022/031928 WO2024042653A1 (ja) 2022-08-24 2022-08-24 教示装置
JP2022572384A JP7256932B1 (ja) 2022-08-24 2022-08-24 教示装置
JP2023046385A JP7448706B1 (ja) 2022-08-24 2023-03-23 教示装置
TW112127527A TW202409766A (zh) 2022-08-24 2023-07-24 教示裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/031928 WO2024042653A1 (ja) 2022-08-24 2022-08-24 教示装置

Publications (1)

Publication Number Publication Date
WO2024042653A1 true WO2024042653A1 (ja) 2024-02-29

Family

ID=85936729

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/031928 WO2024042653A1 (ja) 2022-08-24 2022-08-24 教示装置

Country Status (3)

Country Link
JP (2) JP7256932B1 (ja)
TW (1) TW202409766A (ja)
WO (1) WO2024042653A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116673796B (zh) * 2023-08-03 2023-11-10 成都飞机工业(集团)有限责任公司 一种用于机器人制孔系统的标定工具与标定方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185249A (ja) * 1997-09-10 1999-03-30 Honda Motor Co Ltd オフラインティーチング方法
JP2016140958A (ja) * 2015-02-03 2016-08-08 キヤノン株式会社 オフライン教示装置、オフライン教示方法及びロボットシステム
JP2017213668A (ja) * 2016-05-31 2017-12-07 ファナック株式会社 ロボット制御装置およびロボット制御方法
JP2019000923A (ja) * 2017-06-13 2019-01-10 川崎重工業株式会社 多関節ロボットの機構モデルパラメータ推定方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185249A (ja) * 1997-09-10 1999-03-30 Honda Motor Co Ltd オフラインティーチング方法
JP2016140958A (ja) * 2015-02-03 2016-08-08 キヤノン株式会社 オフライン教示装置、オフライン教示方法及びロボットシステム
JP2017213668A (ja) * 2016-05-31 2017-12-07 ファナック株式会社 ロボット制御装置およびロボット制御方法
JP2019000923A (ja) * 2017-06-13 2019-01-10 川崎重工業株式会社 多関節ロボットの機構モデルパラメータ推定方法

Also Published As

Publication number Publication date
TW202409766A (zh) 2024-03-01
JP7256932B1 (ja) 2023-04-12
JP7448706B1 (ja) 2024-03-12
JP2024038978A (ja) 2024-03-21

Similar Documents

Publication Publication Date Title
EP1936458B1 (en) Device, method, program and recording medium for robot offline programming
EP2282873B1 (en) A method and a system for facilitating calibration of an off-line programmed robot cell
US9149931B2 (en) Robot system, robot control device and method for controlling robot
RU2672654C2 (ru) Способ и система для определения по меньшей мере одного свойства манипулятора
Ginani et al. Theoretical and practical aspects of robot calibration with experimental verification
JP4137909B2 (ja) ロボットプログラム補正装置
KR101713326B1 (ko) 머니퓰레이터를 작동시키기 위한 방법 및 장치
US20110054685A1 (en) Robot off-line teaching method
JP2019166626A (ja) 制御装置及び機械学習装置
WO1995008143A1 (fr) Procede de correction de programmes d'apprentissage pour robots
JPH01159186A (ja) ロボット不正確度修正方法
JP2015089575A (ja) ロボット、制御装置、ロボットシステム及び制御方法
JP4111044B2 (ja) ロボット制御装置
JP7448706B1 (ja) 教示装置
JP3349652B2 (ja) オフラインティーチング方法
CN113365785A (zh) 校准工业机器人的工具的方法、控制系统和工业机器人
CN110450165B (zh) 一种基于零力控制的机器人标定方法
JP2003191186A (ja) ロボット教示データの補正方法
JPH06274213A (ja) ロボット装置の位置等の較正方法
JP2001100834A (ja) ロボット教示データの作成装置およびその方法
JP2001018182A (ja) ロボット機構較正演算方法及びシステム
JPS6069706A (ja) ロボツト座標系の較正方法
WO2023144892A1 (ja) 制御装置
da Motta et al. An off-line robot programming system including workcell and robot calibration
JP2023154527A (ja) 修正装置、修正方法、及びロボットシステム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22956481

Country of ref document: EP

Kind code of ref document: A1