WO2021157574A1 - 制御装置 - Google Patents

制御装置 Download PDF

Info

Publication number
WO2021157574A1
WO2021157574A1 PCT/JP2021/003743 JP2021003743W WO2021157574A1 WO 2021157574 A1 WO2021157574 A1 WO 2021157574A1 JP 2021003743 W JP2021003743 W JP 2021003743W WO 2021157574 A1 WO2021157574 A1 WO 2021157574A1
Authority
WO
WIPO (PCT)
Prior art keywords
error
coordinate system
node
control point
unit
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2021/003743
Other languages
English (en)
French (fr)
Inventor
浩貴 澤岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
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 Fanuc Corp filed Critical Fanuc Corp
Priority to JP2021526389A priority Critical patent/JP6940724B1/ja
Priority to US17/789,418 priority patent/US12461503B2/en
Priority to CN202180012329.8A priority patent/CN115066660B/zh
Priority to DE112021000864.1T priority patent/DE112021000864B4/de
Publication of WO2021157574A1 publication Critical patent/WO2021157574A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form
    • G05B19/404Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of program data in numerical form characterised by control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Program-controlled manipulators
    • B25J9/16Program controls
    • B25J9/1656Program controls characterised by programming, planning systems for manipulators
    • B25J9/1664Program controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37506Correction of position error
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39444Display of position, of shape of robot and tool

Definitions

  • the present invention relates to a control device.
  • a control point to be controlled included in the machine tool or the robot is controlled by using a command value in a program.
  • the tool root position is usually set as a control point.
  • the tool tip position is set as the control point. Then, control is executed so that these control points move to the coordinate values specified by the command value.
  • a numerical control device that controls a machine tool having a straight axis and a rotary axis, and calculates the position correction amount of the straight axis from the translation error and the attitude error depending on the motion of the straight axis.
  • a rotation axis-dependent position correction amount calculation means that calculates the position correction amount of the straight axis from the calculation means, a translation error and an attitude error that depend on the motion of the rotation axis, and a part of the attitude error that depends on the motion of the straight axis.
  • Rotation axis angle correction amount calculation means that calculates the rotation axis angle correction amount from a part of the posture error that depends on the motion of the rotation axis, and position addition that calculates the position correction amount of the straight axis corresponding to the rotation axis correction amount.
  • a technique relating to a numerical control device having a correction amount calculation means is known (see, for example, Patent Document 1).
  • a technique for correcting an error in a machine tool having an arbitrary machine configuration by using a graph having a component as a node is desired.
  • One aspect of the present disclosure is a control device that expresses and holds a machine configuration to be controlled in a graph format having components as nodes, and controls points and a coordinate system for each node of the graph of the machine configuration.
  • the control point coordinate system insertion unit that inserts the An error information storage unit that stores the identifier assigned to the coordinate system, an error node generation unit that converts the machine error into an equivalent error node, and an error node addition that adds the error node in the graph of the machine configuration.
  • a control point coordinate system designation unit that specifies one or more sets of control points and coordinate systems by the identifier, and the control point and the coordinates designated by the control point coordinate system designation unit with respect to the unit and the graph of the machine configuration.
  • a command value determination unit that determines whether one or more command values commanded in the program correspond to a coordinate value on which coordinate system with respect to which control point by the system, and the coordinate value of the control point is the command. It is a control device including a movement command unit that commands the movement of the control point so as to be a value.
  • One aspect of the present disclosure is a control device that expresses and holds a machine configuration to be controlled in a graph format having components as nodes, and controls points and a coordinate system for each node of the graph of the machine configuration.
  • a control point coordinate system insertion unit that has An error information storage unit that stores the identifier assigned to the coordinate system, an error node generation unit that converts the machine error into an equivalent error node, and an error node addition that adds the error node in the graph of the machine configuration.
  • a control point coordinate system designation unit that specifies one or more sets of control points and coordinate systems by the identifier, and the control point and the coordinates designated by the control point coordinate system designation unit with respect to the unit and the graph of the machine configuration.
  • a command value determination unit that determines whether one or more command values commanded in the program correspond to a coordinate value on which coordinate system with respect to which control point by the system, and the coordinate value of the control point is the command. It is a control device including a movement command unit that commands the movement of the control point so as to be a value.
  • FIG. 1 shows a configuration example of the control device 100 according to the embodiment of the present invention.
  • the control device 100 mainly includes a CPU 11, a ROM 12, a RAM 13, a CMOS 14, interfaces 15, 18, 19, a PMC (programmable machine controller) 16, an I / O unit 17, and an axis control circuit 30 to. 34, servo amplifiers 40 to 44, a spindle control circuit 60, and a spindle amplifier 61 are provided.
  • the CPU 11 is a processor that controls the control device 100 as a whole.
  • the CPU 11 reads the system program stored in the ROM 12 via the bus 20 and controls the entire control device 100 according to the system program.
  • the RAM 13 stores temporary calculation data, display data, and various data input by the operator via the display / MDI unit 70.
  • the CMOS memory 14 is configured as a non-volatile memory that is backed up by a battery (not shown) and that retains its storage state even when the power of the control device 100 is turned off.
  • the CMOS memory 14 stores a machining program read via the interface 15, a machining program input via the display / MDI unit 70, and the like.
  • the ROM 12 includes a machine configuration graph storage unit 141 and an error information storage unit 142.
  • FIG. 2 shows the configuration of the ROM 12.
  • the machine configuration graph storage unit 141 stores a graph-type machine configuration generated by the graph generation unit 111, which will be described later, that is, the “machine configuration tree” in the present embodiment.
  • the error information storage unit 142 stores information related to the machine error in the industrial machine as the control target and an identifier assigned to the coordinate system in which the machine error is observed. This identifier is assigned by the identifier allocation unit 114, which will be described later. The function related to the input / output of information between the error information storage unit 142 and other components provided in the CPU 11 will be described later in the description of the CPU 11.
  • machining programs such as a machining program for executing the present invention can be input via the interface 15 and the display / MDI unit 70 and stored in the CMOS memory 14.
  • the interface 15 enables connection between the control device 100 and an external device 72 such as an adapter. Machining programs, various parameters, etc. are read from the external device 72 side. Further, the machining program edited in the control device 100 can be stored in the external storage means via the external device 72.
  • the PMC (programmable machine controller) 16 is a sequence program built in the control device 100, and sends a signal to an auxiliary device of an industrial machine (for example, an actuator such as a robot hand for changing tools) via an I / O unit 17. Output and control. Further, after receiving signals from various switches of the operation panel provided in the main body of the industrial machine and performing necessary signal processing, the signals are passed to the CPU 11.
  • the display / MDI unit 70 is a manual data input device equipped with a display, a keyboard, and the like.
  • the interface 18 receives commands and data from the keyboard of the display / MDI unit 70 and passes them to the CPU 11.
  • the interface 19 is connected to an operation panel 71 provided with a manual pulse generator or the like.
  • the axis control circuits 30 to 34 of each axis receive the movement command amount of each axis from the CPU 11 and output the command of each axis to the servo amplifiers 40 to 44.
  • the servo amplifiers 40 to 44 receive this command and drive the servo motors 50 to 54 of each axis.
  • the servomotors 50 to 54 of each axis have a built-in position / speed detector, and the position / speed feedback signal from the position / speed detector is fed back to the axis control circuits 30 to 34 to perform position / speed feedback control. conduct. In the block diagram, the position / velocity feedback is omitted.
  • the spindle control circuit 60 receives a spindle rotation command to an industrial machine and outputs a spindle speed signal to the spindle amplifier 61. In response to this spindle speed signal, the spindle amplifier 61 rotates the spindle motor 62 of the machine tool at the commanded rotation speed to drive the tool.
  • a pulse encoder 63 is coupled to the spindle motor 62 with a gear, a belt, or the like.
  • the pulse encoder 63 outputs a feedback pulse in synchronization with the rotation of the spindle.
  • the feedback pulse is read by the CPU 11 via the bus 20.
  • FIG. 43 is a functional block diagram showing a function in which the CPU 11 reads a system program and an application program stored in the ROM 12 via the bus 20 and realizes the system program and the application program according to the system program and the application program.
  • the CPU 11 includes a graph generation unit 111, a control point coordinate system insertion unit 113, an identifier allocation unit 114, an error node generation unit 115, a control point coordinate system designation unit 116, a command value determination unit 117, and a movement command unit. It is equipped with 118.
  • the graph generation unit 111 generates the machine configuration to be controlled in a graph format. The detailed operation will be described in detail in "2. Generation of mechanical building” below.
  • the graph generation unit 111 includes an error node addition unit 112.
  • the function of the error node addition unit 112 will be described later.
  • the control point coordinate system insertion unit 113 inserts the control point and the coordinate system into the graph of the machine configuration.
  • the identifier assigning unit 114 assigns an identifier to each of the control point and the coordinate system.
  • the detailed operation of the control point coordinate system insertion unit 113 and the identifier assignment unit 114 will be described in detail in the following "3. Abstraction of command address” to "8. Derivation of coordinate system from machine configuration tree".
  • the error node generation unit 115 converts the mechanical error stored in the error information storage unit 142 into a value relative to the error node insertion position.
  • the error node converted by the error node generation unit 115 is added to the machine configuration generated by the error node addition unit 112 in a graph format, that is, the "machine configuration tree" in the present embodiment.
  • the control point coordinate system designation unit 116 designates the control point and the coordinate system by the above identifier. Specifically, the control point coordinate system designation unit 116 uses, for example, a command in a program, parameter setting, screen operation, or an input value from an input means to the control device 100 to control the above-mentioned control points and coordinates. Specify the system.
  • the command value determination unit 117 determines whether the command value in the program is a coordinate value on which coordinate system with respect to which control point. The detailed operation of the control point coordinate system designation unit 116 and the command value determination unit 117 will be described in detail in the following "3. Abstraction of command address" to "8. Derivation of coordinate system from machine configuration tree".
  • the movement command unit 118 commands the movement of the control point so that the coordinate value of the control point becomes the command value in the program.
  • the detailed operation of the movement command unit 118 will be described in detail in "9. Movement pulse generation method" below. Further, FIG. 4 shows a configuration example of the movement command unit 118.
  • the movement command unit 118 includes a simultaneous equation generation unit 181, a simultaneous equation solving unit 182, and a movement pulse generation unit 183.
  • the simultaneous equation generation unit 181 obtains the first coordinate conversion formula of the command value from the designated coordinate system and the graph of the machine configuration by the method described in "9. Moving pulse generation method” below, and also designates it.
  • the second coordinate conversion equation of the control point is obtained from the obtained control point and the graph of the machine configuration, and a multidimensional multiple-order simultaneous equation that defines that the first coordinate conversion equation and the second coordinate conversion equation are equal is generated.
  • the simultaneous equation solving unit 182 finds the solution of the above-mentioned multiple-dimensional simultaneous equations.
  • the moving pulse generation unit 183 uses the solution generated by the simultaneous equation solving unit 182 to generate a moving pulse to be used for the movement command.
  • the control device 100 first generates a graph showing a mechanical configuration.
  • a generation method for generating a machine constituent tree will be described in detail with reference to FIGS. 5 to 8.
  • a method of generating a machine configuration tree expressing the configuration of the machine shown in FIG. 5 will be described.
  • the X-axis is set perpendicular to the Z-axis
  • the tool 1 is installed on the X-axis
  • the tool 2 is installed on the Z-axis.
  • the B-axis is set on the Y-axis
  • the C-axis is set on the B-axis
  • the work 1 and the work 2 are installed on the C-axis.
  • the method of expressing this machine structure as a machine structure tree is as follows.
  • each node of the machine configuration tree is not limited to the above information, for example, an identifier (name), an identifier of its own parent node, an identifier of all child nodes having its own parent, and an offset relative to the parent node ( Crossover offset), relative coordinate value with respect to the parent node, relative movement direction with respect to the parent node (unit vector), node type (straight line axis / rotation axis / unit (described later) / control point / coordinate system / origin, etc.), physical axis number, It may or may not have information related to the conversion formula between the Cartesian coordinate system and the physical coordinate system.
  • each node of the machine configuration tree may or may not have the information necessary for the node itself to be a control point or a coordinate system.
  • the information required to be a control point or a coordinate system will be described in detail later, but is, for example, information such as offset, attitude matrix, and whether or not to add movement or offset, and these may or may not be included. You may.
  • the embodiment of the control point coordinate system designation unit which will be described later, differs depending on whether or not the node itself has the information necessary for being a control point or a coordinate system. If the node does not have the necessary information, the necessary information can be given to the node by the control point coordinate system insertion unit and the control point coordinate system identifier assignment unit, which will be described later.
  • FIG. 8 shows a generalized flowchart of the above-mentioned machine configuration tree generation method, particularly the method of setting each value to each node.
  • step S11 the graph generation unit 111 receives the value of the parameter set for the node.
  • step S12 when the set parameter item is "own parent node" (S12: YES), the process proceeds to step S13. If it is not the "own parent node” (S12: NO), the process proceeds to step S17.
  • step S13 if the parent node has already been set for the node for which the parameter is set (S13: YES), the process proceeds to step S14. If the parent node is not set (S13: NO), the process proceeds to step S15.
  • step S14 the graph generation unit 111 deletes its own identifier from the "child node" item of the current parent node of the node for which the parameter is set, and updates the machine configuration tree.
  • step S15 the graph generation unit 111 sets a value in the corresponding item of the node for which the parameter is set.
  • step S16 the graph generation unit 111 adds its own identifier to the item of "child node" for the parent node, updates the machine configuration tree, and then ends the flow.
  • step S17 the graph generation unit 111 ends the flow after setting a value in the corresponding item of the node for which the parameter is set.
  • the parent-child relationship means, for example, as shown in FIG. 9A, when there are two rotation axis nodes 104 and 105, the change in the coordinate value of one node 104 is the geometrical state of the other node 105 (typically). Is a relationship that has a one-sided effect on (position / posture).
  • the nodes 104 and 105 are referred to as having a parent-child relationship
  • the node 104 is referred to as a parent
  • the node 105 is referred to as a child.
  • FIG. 9A when there are two rotation axis nodes 104 and 105, the change in the coordinate value of one node 104 is the geometrical state of the other node 105 (typically). Is a relationship that has a one-sided effect on (position / posture).
  • the nodes 104 and 105 are referred to as having a parent-child relationship
  • the node 104 is referred to as a parent
  • the node 105 is referred to as
  • the unit has two connection points 110 and 120 as shown in FIG. 10A, and when the unit is inserted into the machine configuration tree as shown in FIG. 10B, the parent node has the connection point 120 as shown in FIG. 10C. And the child node is connected to the connection point 110.
  • the unit also has a conversion matrix from the connection point 120 to the connection point 110. This transformation matrix is represented by the coordinate values of each node included in the unit. For example, in the case of a machine configuration as shown in FIG.
  • the unit representing this mechanical configuration has an homogeneous transformation matrix such as T in the above mathematical formula [Equation 1].
  • the homogeneous matrix is a 4 ⁇ 4 matrix that can collectively express the position and posture as in the formula of [Equation 2] below.
  • a unit in which a plurality of nodes are grouped into one may be defined in advance and configured in the machine configuration tree. ..
  • FIG. 12A shows an example of a flow when the numerical control device reads a script originally written by the user.
  • the control device 100 reads the script defined by the user.
  • the control device 100 analyzes the content of the read script and newly defines the unit.
  • the control device 100 newly registers the newly defined unit as a component that can be inserted into the machine configuration graph.
  • the user can insert the registered unique unit (MyUnit in the example of FIG. 12B) into the machine configuration tree.
  • the numerical control device may read the script written by the user and analyze the contents thereof to newly define the unit and use it to configure the unit in the machine configuration tree.
  • FIG. 12B shows an example in which the newly defined unique unit MyUnit is inserted into the machine configuration tree by the script described in FIG. 12A.
  • the graph of the machine configuration can include a unit in which a plurality of axes are grouped into one as a component.
  • the above machine configuration tree can be graphically displayed on the display 70 as shown in FIG. 13A, and can be easily set on the display 70 using a graphical user interface (GUI).
  • GUI graphical user interface
  • nodes can be arranged by drag and drop operation as shown in FIG. 13B
  • parent-child relationships between nodes can be set by drag operation as shown in FIG. 13C
  • a setting menu is opened by mouse click operation as shown in FIG. 13D. You can set the attributes of.
  • the parent-child relationships between the components are also diverse, but usually, numerical control devices do not have information on the parent-child relationships between the components. Controls that require such information are not possible.
  • the numerical control device can control machine tools and robots having various machine configurations by using the above-mentioned machine structure tree or a data generation method having a machine structure tree-like data structure. Convenience is improved.
  • the user can intuitively set the machine configuration tree in the numerical control device by using the graphical user interface (GUI).
  • GUI graphical user interface
  • each axis is given an axis name.
  • a movement is commanded by using a combination of an axis name and a coordinate value of a movement destination or a numerical value meaning a movement amount.
  • the arc path is realized by moving the rotation axis C of the rotary table by 180 degrees, but in the case of 217, the arc path is realized by issuing an arc interpolation command by the linear axis XY.
  • the program is different, such as realizing.
  • the addresses that can be commanded were determined for each G-code modal, and when the modal changed, it was necessary to change the command address accordingly.
  • a command is given by each rotation axis address (for example, addresses A, B, C) in the type 1 mode, and a tool posture vector (for example, in the type 2 mode).
  • Addresses that can be commanded are determined during each mode, such as commands with addresses I, J, K). Therefore, for example, it was not possible to give a command with addresses I, J, K during the type 1 mode, or conversely, give a command with the rotation axis addresses A, B, C during the type 2 mode.
  • an abstract address that defines the position, orientation, etc. of a certain control point in a certain coordinate system is used instead of the axis name.
  • a command is given as shown in 218 of FIG. 15 to define the address.
  • addresses ⁇ and ⁇ suitable for a predefined identifier (identifier L1 representing the first linear axis position and identifier L2 representing the second linear axis position) are assigned regardless of the actual axis name in the machine configuration.
  • the address ⁇ is defined as the first linear axis position of the Cartesian coordinate system
  • the address ⁇ is defined as the second linear axis position of the Cartesian coordinate system.
  • each address representing the tool posture vector may be defined. good.
  • a suitable address is substituted for the identifiers R1 and R2 representing the first and second rotation axis positions defined in advance regardless of the actual axis name, and the address representing each rotation axis position is defined. May be good. If these are not defined in the program, the default address set by the parameter in the control device 100 is defined as an address representing the abstract meaning of each of the first linear axis position, the second linear axis position, and the like. After that, as shown in 219 of FIG.
  • an arbitrary address assigned to the identifier defined in advance for each meaning can be used regardless of the axis name included in the graph of the machine configuration.
  • the above "meaning” includes the position of the control point, the posture of the control point, and the angular position of the rotation axis that determines the posture.
  • each node of the machine configuration graph can have information necessary for itself to become a control point or a coordinate system, but it may not have it. .. If the node does not have the information necessary to become a control point or coordinate system, specify various positions on the machine configuration as control points and set the coordinate system of various points on the machine configuration. Therefore, the following method is carried out using the mechanical constituent tree generated in the above "2. Generation of mechanical constituent tree”.
  • the X1 axis is set perpendicular to the Z1 axis, and the tool 1 is installed on the X1 axis.
  • the X2 axis is set perpendicular to the Z2 axis, and the tool 2 is installed on the X2 axis.
  • the C1 axis and the C2 axis are set in parallel on the C axis, and the work 1 and the work 2 are installed on each of the C1 axis and the C2 axis.
  • this machine structure is represented by a machine structure tree, it becomes the machine structure tree shown in FIG. 16B.
  • the coordinate system and control points are automatically set for each of the machine origin, C axis, C1 axis, C2 axis, work 1 and work 2. insert. This is performed not only for the table but also for all of the series of nodes connected from each tool to the machine origin, that is, the X1 axis, the X2 axis, the Z1 axis, the Z2 axis, the tool 1, and the tool 2.
  • control points and coordinate systems corresponding to each of the nodes constituting the machine constituent tree are automatically inserted. Normally, when machining, a coordinate system and a tool are specified as control points for the work.
  • each control point and coordinate system has an offset. Therefore, it is possible to set a point away from the node center as a control point or the origin of the coordinate system.
  • each control point and coordinate system has a posture matrix. This posture matrix represents the posture (direction, inclination) of the control point in the case of the posture matrix of the control points, and represents the posture of the coordinate system in the case of the posture matrix of the coordinate system.
  • the offset and attitude matrices are represented in a form associated with the corresponding nodes.
  • each control point and coordinate system has information on whether or not to take into account the "movement" and "crossing offset" of the nodes existing on the path to the root of the machine constituent tree, and set them. can.
  • FIG. 20 shows a generalized flowchart of the above method of automatically inserting control points.
  • this flowchart includes chart A and chart B, and as will be described later, chart B is executed in the middle of chart A.
  • step S31 the graph generation unit 111 sets the machine constituent tree.
  • step S32 chart B is executed and the flow of chart A is terminated.
  • step S41 of the chart B if the node has already inserted the control point / coordinate system (S41: YES), the node ends the flow. If the control point / coordinate system has not been inserted into the node (S41: NO), the process proceeds to step S42.
  • step S43 if the nth child node exists in the node (S43: YES), the process proceeds to step S44. If the nth child node does not exist in the node (S43: NO), the process proceeds to step S46.
  • step S44 the chart B itself is recursively executed for the nth child node.
  • step S46 one variable n is popped, and the flow of chart B ends.
  • the control point coordinate system insertion unit 113 inserts the control point and the coordinate system as nodes into each node of the graph of the machine configuration.
  • the control point coordinate system insertion unit 113 is used for each node in the graph of the machine configuration.
  • An embodiment in which a control point and a coordinate system are provided as information is also possible.
  • the graph generation unit has the information necessary for the machine configuration tree (each node is a control point or a coordinate system) as shown in FIG. It is also possible to generate a mechanical construction tree). In this case, since the machine constituent tree already has information as a control point or a coordinate system, the control point coordinate system insertion part is not always necessary.
  • a route is defined as an arrangement of nodes existing between a certain node in a machine configuration tree.
  • the path p1 from the node Z1 to the control point [tool 1] is represented as follows.
  • the starting point x 1 in the above route is the route.
  • Control points represented by this route the homogeneous matrix M C of the position and orientation relative to the root, Is calculated by However, the meanings of the symbols are as follows.
  • S Homogeneous transformation matrix by each node
  • N Number of a series of nodes from the root of the machine configuration tree to the control point
  • M [ctrl] A homogeneous matrix of offsets and attitudes relative to the parent node of the control point, and is defined from the offset vector and attitude matrix defined at the control points according to the formula of [Equation 2]
  • a xi The cross offset of the node xi is added (1), not added (0)
  • b xi The movement of the node xi is added (1), not added (0);
  • a xi and b xi are information that can be specified when the control point is specified, and the details will be described later in [8. Customization of the coordinate system derived from the machine configuration tree] will be explained
  • the homogeneous transformation matrix S changes depending on the node type (straight line axis / rotation axis / unit / control point / coordinate system, etc.) and is represented as follows.
  • the meanings of the symbols are as follows.
  • x i coordinate value of the node xi; ofs xi : Offset vector relative to the parent node of node xi;
  • v xi Movement direction vector of node xi;
  • T (0) Identity matrix (non-transformation matrix);
  • T (1) Homogeneous transformation matrix from the connection point 120 defined in the unit node to the connection point 110;
  • the unit conversion homologous matrix is, for example, a homologous conversion matrix defined for each unit such as T in the mathematical expression of [Equation 1] as described above.
  • the homologous transformation matrix S is an identity matrix.
  • command point position and command point attitude calculation method As shown in FIG. 24, when the command position vector pos W and the command posture matrix mat W are specified as the command values on a certain designated coordinate system, the position and posture of the command values with respect to the root of the machine constituent tree are represented.
  • the homogeneous matrix MM is calculated by the following formula.
  • the homogeneous matrix M w of the command value is defined as follows. Also, it considered similarly to the case of the control point, and the path p 3 to a coordinate system that is the root of the machine structure in the tree is as follows. As a result, the homogeneous matrix MM becomes Is calculated by However, the meanings of the symbols are as follows.
  • S Homogeneous transformation matrix by each node; L: Number of a series of nodes connected from the root of the machine configuration tree to the coordinate system; M [cord] : An homogeneous matrix of offsets and attitudes relative to the parent node of the coordinate system, which is defined from the offset vector and attitude matrix defined in the coordinate system according to the formula of [Equation 2]; a xi : The cross offset of the node xi is added (1), not added (0); b xi : The movement of the node xi is added (1), not added (0); a xi and b xi are information that can be specified when specifying the coordinate system, and the details will be described later in [8. Customization of the coordinate system derived from the machine configuration tree] will be explained. Further, the homogeneous transformation matrix S is the same as that described using the mathematical formulas of [Equation 6] to [Equation 8].
  • FIG. 25 shows an example of a method of designating the coordinate system in the program.
  • the command illustrated in FIG. 25 is a sentence example in which the first half specifies a coordinate system and the second half specifies a control point.
  • FIG. 25 will be repeated, but the command contents of each line in the program will be described.
  • the node "work 1" is designated as the coordinate system by "G54.9 P ⁇ work 1>;" on the first line.
  • another identifier "WORK1” is set in the node "work 1”.
  • the node "work 1” is designated as the coordinate system by another identifier "WORK1” by "G54.9 P ⁇ WORK1>;” on the third line.
  • the coordinate system crossing offset of the node “C1” is set by "G54.7 P ⁇ C1>X_Y_Z_;" on the fourth line.
  • the coordinate system attitude matrix of the node “C1” is set in Roll / Pitch / Yaw by "G54.6 P ⁇ C1>I_J_K_;" on the 5th line.
  • “G54.9 P ⁇ C1>;” on the sixth line specifies the node “C1” as the coordinate system, and the above-mentioned cross offset and attitude matrix are added.
  • the node “tool 1” is designated as a control point by "G43.9 ⁇ tool 1>;” on the 7th line.
  • G43.8 P ⁇ tool 1> ⁇ TOOL1>; on the 8th line, another identifier "TOOL1" is set in the node "tool 1".
  • the node "tool 1" is designated as a control point by another identifier "TOOL1" by "G43.9 P ⁇ TOOL1>;” on the 9th line.
  • the control point crossing offset of the node “B1” is set by "G43.7 P ⁇ B1>X_Y_Z_;” on the 10th line.
  • the control point attitude matrix of the node “B1” is set in Roll / Pitch / Yaw by "G43.6 P ⁇ B1>I_J_K_;" on the 11th line.
  • the node “B1” is designated as a control point, and the above-mentioned cross offset and attitude matrix are added.
  • FIG. 26 shows an example of a method of specifying the control points and the coordinate system inserted into the machine configuration tree in the program by the above "4. Automatic insertion of the control points and the coordinate system".
  • the command illustrated in FIG. 26 is a sentence example in which the first half specifies a coordinate system and the second half specifies a control point.
  • the description of FIG. 26 will be repeated, but the command contents of each line in the program will be described.
  • the coordinate system [work 1] is specified by "G54.9 ⁇ coordinate system [work 1]>;" on the first line. According to the second line "G54.8 P ⁇ coordinate system [work 1]> ⁇ WORK1>;", the identifier "WORK1” is set in the coordinate system [work 1].
  • the coordinate system [work 1] is specified by another identifier "WORK1” by “G54.9 P ⁇ WORK1>;” on the third line.
  • the crossing offset of the coordinate system [C1] is set by "G54.7 P ⁇ coordinate system [C1]>X_Y_Z_;" on the fourth line.
  • the attitude matrix of the coordinate system [C1] is set in Roll / Pitch / Yaw by "G54.6 P ⁇ coordinate system [C1]>I_J_K_;" on the fifth line.
  • the coordinate system [C1] is specified by "G54.9 P ⁇ coordinate system [C1]>;” on the sixth line, and the above-mentioned cross offset and attitude matrix are added.
  • the control point [tool 1] is specified by "G54.9 ⁇ control point [tool 1]>;” on the 7th line.
  • the identifier "TOOL1" is set at the control point [tool 1] by "G54.8 P ⁇ control point [tool 1]> ⁇ TOOL1>;" on the 8th line.
  • the control point [tool 1] is designated by another identifier "TOOL1" by "G54.9 P ⁇ TOOL1>;” on the 9th line.
  • the crossing offset of the control point [B1] is set by "G54.7 P ⁇ control point [B1]>X_Y_Z_;” on the 10th line.
  • the attitude matrix of the control point [B1] is set in Roll / Pitch / Yaw by "G54.6 P ⁇ control point [B1]>I_J_K_;" on the 11th line.
  • the control point [B1] is specified by "G54.9 P ⁇ control point [B1]>;" on the 12th line, and the above cross offset is added.
  • each G code that specifies the control point and the coordinate system has a separate number, but in FIG. 26, each G code that specifies the control point and the coordinate system can be made common.
  • the coordinate system control point insertion unit and the identifier assignment unit are not indispensable for the practice of the present invention, but may be introduced.
  • a suitable coordinate system in the machine configuration tree can be selected by a program command, and the command values on the selected coordinate system have been described using the mathematical formulas [Equation 9] to [Equation 11].
  • a series of a xi and b xi corresponding to each node in the path p3 are basically calculated as 1 as follows. In this case, all intersection offsets and movements of a series of nodes are taken into account.
  • a p3 and b p3 have elements corresponding to each element of the route p3, and can be seen as an accompanying route. Therefore, these are referred to as the accompanying paths a p3 and b p3 of p3 .
  • the coordinate system does not rotate only with respect to a specific axis. For example, if you want to turning by C1-axis on the following coordinate system defined by the path p 4 in FIGS. 19A and 19B, easier to use not Limit your As the C1 axis.
  • the coordinate system can be customized so as not to be carried only on the C1 axis.
  • the accompanying route can be specified by a program command as shown in FIG. 27.
  • ac1 of the coordinate system inserted in the work 1 can be specified as 0 by the G254.9P ⁇ work 1> Q ⁇ C1> 0 command.
  • the bc1 of the coordinate system inserted in the work 1 can be specified as 0 by the G154.9P ⁇ work 1> Q ⁇ C1> 0 command.
  • control points since there are accompanying paths not only in the coordinate system but also in the control points, customized control points can be used by specifying the accompanying paths in the program as well.
  • the coordinate system and the control points can be arbitrarily customized by changing the information for defining the coordinate system and the control points.
  • the coordinate system and control points can eliminate the effects of specific nodes, specifically the movement and offset of specific nodes.
  • the first coordinate conversion formula of the command value is obtained by the method of [Calculation method of command point position and command point attitude].
  • the second coordinate conversion formula of the control point is obtained by the method of [Calculation method of control point position and control point attitude].
  • a multi-dimensional and multi-order simultaneous equation that defines that the first coordinate conversion equation and the second coordinate conversion equation are equal is obtained.
  • the movement pulse used for the movement command is generated by using the solution of the above-mentioned multi-dimensional multiple-order simultaneous equations calculated using, for example, the Gröbner basis.
  • the axis x2 is set on the axis x1, the axis x3 is set on the axis x2, N nodes are connected in the same manner, and the end thereof is the axis xN. .. Further, it is assumed that a control point is installed on the axis xN.
  • the axis y2 is set on the axis y1, the axis y3 is set on the axis y2, L nodes are connected in the same manner, and the end thereof is the axis yL.
  • the work is installed on the axis yL.
  • xi and yj are node names, but at the same time, the coordinate values of each node are also represented.
  • each node is given the offset shown in FIG. 28, the node type (straight line / rotation / unit / control point / coordinate system), the axial direction, the attitude matrix, and the coordinate values.
  • the homogeneous matrix Mc representing the current position / orientation of the control point with respect to the route (machine origin) is obtained by the following equation.
  • the meaning of the symbol is [5. Calculation method of control point position and control point posture], so it is omitted here.
  • the homogeneous matrix Mcw representing the current position / orientation of the control point on the designated coordinate system is obtained by the following equation using Mc. From this, the current position vector pos cw of the control point on the designated coordinate system is obtained as follows.
  • the next interpolation position vector pos w'in the designated coordinate system is obtained by the following equation using pos w.
  • F is a designated moving speed for each interpolation cycle.
  • the current tool direction vector vc cw of the control point on the designated coordinate system is obtained as follows assuming that the tool reference direction vector is (0, 0, 1, 0).
  • the tool reference direction vector is not limited to the above, and may be changed by a command, parameter setting, or the like.
  • next interpolation position vector pose'and the next interpolation tool direction vector vecw' as described above, the following simultaneous equations are established for each of the positions and orientations of the control points.
  • the next interpolation position for each axis can be obtained.
  • constraint conditions such as not moving some axes or giving command values directly to some axes are appropriately added to the formula of [Equation 23]. It can be dealt with by adding and coalescing. Alternatively, some axes can be dealt with by giving an attribute of an auxiliary axis that normally does not move and moving it only in the vicinity of the singular point for the singular point avoidance operation. Alternatively, it is possible to deal with it by adding an auxiliary control point and instructing it as well.
  • a rotation axis in which the tool direction of a control point with respect to a specified coordinate system changes due to a change in coordinate values is called a tool change rotation axis in order to distinguish it from a rotation axis that does not contribute to a change in the tool direction.
  • each node of the machine configuration tree has information on whether or not it is a tool change rotation axis.
  • each route from the route to the control point / coordinate system is represented by the mathematical formula of [Equation 15], and the list of tool change rotation axis nodes included in each route is the mathematical formula of [Equation 24].
  • the order is first and second in order from the one farthest from the root, and then the third and second in order from the tool change rotation axis on the coordinate system side from the root.
  • the order of the tool change rotation axis can be defined exactly for any machine construction tree.
  • xn will be referred to as a first tool change rotation axis
  • ym will be referred to as a second tool change rotation axis.
  • an identifier R1 representing the first tool change rotation axis and an identifier R2 representing the second tool change rotation axis are used to give a command as shown in FIG. 34.
  • next interpolation positions xn'and yn' of the first tool change rotation axis and the second tool change rotation axis can be obtained by the following equations.
  • the node coordinate values of the first tool change rotation axis and the second tool change rotation axis are determined, so that the tool direction vector is also determined. Then, since it is not necessary to solve the simultaneous equations for the tool direction vector, it is sufficient to solve the simultaneous equations for the following command positions.
  • the coordinate value of a specific node can be directly specified as the command value in the program. This makes it possible to reduce the number of simultaneous types.
  • the first embodiment is an embodiment in which an error node related to a three-dimensional rotation error is inserted next to the machine origin in the machine configuration tree.
  • FIG. 35 is a diagram illustrating a method of actually measuring an error in the machine tool 65.
  • a mirror 67 is installed at the tip of a tool 66 of a machine tool 65, and a laser interferometer (not shown) irradiates the mirror 67 with a laser to measure an error in the position of the mirror 67.
  • the error in the position of the mirror 67 consists of a translation error and a rotation error.
  • the translation error is an error related to the deviation of the center position of the mirror 67, and is actually measured as an offset of the center position.
  • the rotation error is an error related to the posture of the mirror 67, and is actually measured as a rotation angle around the X axis, a rotation angle around the Y axis, and a rotation angle around the Z axis.
  • the translation error and the rotation error are difference values on the machine coordinate system.
  • the rotation error matrix representing the rotation error of the mirror 67 the rotation angles a and b around the X-axis, the rotation angle b around the Y-axis, and the rotation angle c around the Z-axis of the mirror 67 are used.
  • c is small, it can be roughly calculated by the following formula.
  • These translation error vectors and rotation error matrices are stored in the error information storage unit 142 as error information. Further, it is stored in the error information storage unit 142 as a coordinate system in which the machine coordinate system observes the error.
  • the error at the mirror position stored in the error information storage unit 142 is converted into the error at the error node insertion position by the error node generation unit 115.
  • the error is converted into the error at the machine origin 68 of the machine tool 65.
  • the vector from the machine origin 68 to the position of the mirror 67 is referred to here as an “error offset vector”.
  • the error offset vector can be calculated from the machine construction tree.
  • a node separated by an error offset vector from the node 352 corresponding to the mirror is added as an error node 354 next to the node 353 corresponding to the machine origin. do.
  • the translation error at the mirror position is Rotation error at the mirror position Translation error at machine origin position Rotation error at machine origin position Error offset vector
  • the error node generation unit 115 converts the error at the mirror position into the error at the machine origin and generates the error node corresponding to the error at the machine origin by using the following equation.
  • the above formula is a formula when the movement of the position is calculated first in the coordinate value in the forward kinematics transformation among the positions / postures stored in the nodes of the machine constituent tree. To the formula when the rotation of the posture is calculated first Can be converted with.
  • the error node addition unit 112 adds the error node 354 generated by the error node generation unit 115 to the machine configuration tree next to the node 353 corresponding to the machine origin.
  • FIG. 41 shows the machine configuration tree after the error node 354 has been added.
  • control device 100 calculates the motor command value using the machine configuration tree to which the error node 354 is added.
  • Example 1 it is possible to correct the error even when the cause of the measured error cannot be separated for each axis.
  • the second embodiment is an embodiment in which an error node related to a three-dimensional rotation error is inserted at a mirror position in a machine configuration tree.
  • the translational error vector and the rotation error matrix are stored in the error information storage unit 142 as error information, and the mirror position stored in the error information storage unit 142.
  • the error in is converted into an error at the error node insertion position by the error node generation unit 115.
  • the error node generation unit 115 provides two nodes corresponding to the mirror offset. as well as To generate.
  • the "mirror offset” is a vector from the center position of the mirror 67 to the root position of the tool 66 as shown in FIG. 42. That is, it is a vector from the position where the error is measured until the error node is inserted, and corresponds to the error offset vector of the above "Example 1".
  • the error node addition unit 112 adds the error node 354 generated by the error node generation unit 115 and the two mirror offset nodes 355A and 355B to the machine configuration tree. More specifically, as shown in FIG. 43, two mirror offset nodes 355A and 355B are added next to the node 356 corresponding to the tool, and an error node 354 is placed between the two mirror offset nodes 355A and 355B. to add.
  • the node in which these 355A, 354, and 355B are combined corresponds to the error at the error node insertion position 357Z.
  • control device 100 calculates the motor command value using the machine configuration tree to which the error node 354 and the two mirror offset nodes 355A and 355B are added.
  • the third embodiment is an embodiment in which an error node corresponding to the squareness error of each axis is inserted into one of the error nodes corresponding to each axis on the machine origin side in the machine configuration tree.
  • a ball bar is used to obtain Wzx, which is a squareness error around the ZZ axis, Wyz, which is a squareness error around the YY axis, and squareness error around the XY axis.
  • Wxy can be measured.
  • the measured information is stored in the error information storage unit 142 as error information.
  • the ball bar is a measuring instrument that measures the relative displacement between two balls attached to both ends of a telescopic rod having a built-in displacement meter.
  • FIG. 44 shows the squareness error around each axis.
  • the error node generation unit 115 converts each squareness error stored in the error information storage unit 142 into a squareness error matrix for each axis by using the following mathematical formula.
  • the error node addition unit 112 adds error nodes 354A to 354C, which are squareness error matrices generated by the error node generation unit 115, to the machine configuration tree. More specifically, as shown in FIG. 45, the error node addition unit 112 is provided in the machine configuration tree. The error node 354A corresponding to is added in front of the node 357Z corresponding to the Z axis when viewed from the machine origin. Similarly, the error node addition unit 112 in the machine configuration tree The error node 354B corresponding to is added in front of the node 357Y corresponding to the Y axis when viewed from the machine origin. Similarly, the error node addition unit 112 in the machine configuration tree The error node 354C corresponding to is added in front of the node 357X corresponding to the X axis when viewed from the machine origin.
  • control device 100 calculates the motor command value using the machine configuration tree to which the error nodes 354A to 354C are added.
  • the error node 354 is inserted immediately before the axis that causes the error, it is possible to generate a machine component tree that most faithfully reproduces the actual machine tool.
  • the fourth embodiment is an embodiment in which an error node related to an error measured on the machine tool is inserted into the machine constituent tree.
  • the artifact 75 as shown in FIG. 46 is prepared.
  • the "artifact” is an artificial object having a reference shape for measurement.
  • the artifact 75 has a shape in which each of the four spheres 76 to 79 is the apex of the triangular pyramid.
  • the true value of the vector from sphere 76 to sphere 77 in the coordinate system on the C-axis node The true value of the vector from sphere 76 to sphere 78 in the coordinate system on the C-axis node, The true value of the vector from sphere 76 to sphere 79 in the coordinate system on the C-axis node, And.
  • the artifact 75 is placed on the table 80 provided in the machine tool and measured with the coordinates of the spheres 76 to 79 by the probe 90 attached to the tool tip of the machine tool.
  • the "probe” is a measuring instrument that measures the origin, position, posture, etc. of the work installed on the table 80.
  • the central axis of the table 80 is referred to as the C axis here.
  • the measured value of the vector from the sphere 76 to the sphere 77 obtained from the measured value of the coordinates of the spheres 76 to 79, Measured values of the vector from sphere 76 to sphere 78 in the coordinate system on the C-axis node, Measured values of the vector from sphere 76 to sphere 79 in the coordinate system on the C-axis node, And.
  • the error information storage unit 142 stores these true values and measured values as error information.
  • the error node generation unit 115 converts each measured value stored in the error information storage unit 142 into a true value by using the following mathematical formula. And generate the error node 354 corresponding to this.
  • the error node addition unit 112 adds the error node 354 generated by the error node generation unit 115 to the machine configuration tree. More specifically, as shown in FIG. 48, the error node addition unit 112 is placed between the node 359 corresponding to the work and the node 360 corresponding to the C axis. The error node 354 corresponding to is added.
  • control device 100 calculates the motor command value using the machine configuration tree to which the error node 354 is added.
  • Example 4 measures the error in the table coordinate system, and the error can be measured by attaching a contact probe instead of the tool. Therefore, an expensive sensor such as a laser interferometer is not required.
  • the shape of the artifact does not matter as long as the true value can be known, the workpiece machined by the user is measured with a three-dimensional coordinate measuring machine and corrected as the true value, that is, the result of the inspection process is processed. It can also be used for feeding back to the process, or measuring and correcting the installation position error of the work.
  • the control device according to the present embodiment is a control device (for example, the above-mentioned "control device 100") that expresses and holds the machine configuration to be controlled in a graph format in which the constituent elements are nodes, and the machine configuration.
  • a control point coordinate system insertion unit (for example, the above-mentioned "control point coordinate system insertion unit 113") that inserts a control point and a coordinate system as a node, the inserted control point, and the said An identifier assigning unit that assigns an identifier to the coordinate system (for example, the above-mentioned "identifier assigning unit 114"), information related to the mechanical error in the controlled object, and an identifier assigned to the coordinate system in which the mechanical error is observed are stored.
  • An error information storage unit for example, the above-mentioned "error information storage unit 142”
  • an error node generation unit for example, the above-mentioned "error node generation unit 115" that converts the mechanical error into an equivalent error node.
  • control point and the coordinate system are set to 1 by the identifier with respect to the error node addition unit (for example, the above “error node addition unit 112”) to which the error node is added and the graph of the machine configuration.
  • error node addition unit for example, the above “error node addition unit 112”
  • control point coordinate system designation unit for example, the above-mentioned "control point coordinate system designation unit 116" designated by the set or more, the control point designated by the control point coordinate system designation unit, and the coordinate system.
  • a command value determination unit that determines whether one or more command values commanded in A movement command unit (for example, the above-mentioned “movement command unit 118”) that commands the movement of the control point is provided.
  • control device 100 is a control device (for example, the above-mentioned "control device 100") that expresses and holds the machine configuration to be controlled in a graph format in which the constituent elements are nodes.
  • a control point coordinate system insertion unit (for example, the above-mentioned “control point coordinate system insertion unit 113") that gives each node of the graph of the machine configuration a control point and a coordinate system as information, and the inserted control.
  • An identifier assigning unit that assigns an identifier to a point and the coordinate system (for example, the above-mentioned "identifier assigning unit 114"), information related to a mechanical error in the controlled object, and an identifier assigned to the coordinate system in which the mechanical error is observed.
  • An error information storage unit that stores the above (for example, the above-mentioned "error information storage unit 142") and an error node generation unit that converts the mechanical error into an equivalent error node (for example, the above-mentioned "error node generation unit 115").
  • An error node addition unit for adding the error node for example, the above "error node addition unit 112" in the machine configuration graph, and control points and coordinates according to the identifier for the machine configuration graph.
  • the control point coordinate system designation unit for example, the above-mentioned "control point coordinate system designation unit 116" that specifies one or more sets of systems, the control point designated by the control point coordinate system designation unit, and the coordinate system.
  • a command value determination unit that determines whether one or more command values commanded in the program correspond to a coordinate value on which coordinate system with respect to which control point, and the coordinate value of the control point is the command value. As such, it includes a movement command unit (for example, the above-mentioned “movement command unit 118”) that commands the movement of the control point.
  • a movement command unit for example, the above-mentioned “movement command unit 118”
  • the present invention is not limited to the above-described embodiments.
  • the effects described in the present embodiment merely list the most preferable effects arising from the present invention, and the effects according to the present invention are not limited to those described in the present embodiment.
  • the control method by the control device 100 is realized by software.
  • the programs constituting the software are installed in the computer (control device 100).
  • these programs may be recorded on removable media and distributed to users, or may be distributed by being downloaded to a user's computer via a network. Further, these programs may be provided to the user's computer (control device 100) as a Web service via the network without being downloaded.

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)

Abstract

構成要素をノードとするグラフを用いることにより、任意の機械構成を有する工作機械における誤差を補正する。制御装置は、機械構成のグラフの各ノードに対し、制御点及び座標系をノードとして挿入する制御点座標系挿入部と、挿入された制御点及び座標系に識別子を割り当てる識別子割り当て部と、制御対象における機械誤差に係る情報と、機械誤差を観測した座標系に割り当てられた識別子とを記憶する誤差情報記憶部と、機械誤差を等価な誤差ノードに変換する誤差ノード生成部と、機械構成のグラフにおいて、誤差ノードを追加する誤差ノード追加部とを備える。

Description

制御装置
 本発明は、制御装置に関する。
 通常、工作機械やロボットを制御する制御装置においては、工作機械やロボットに含まれる制御対象となる制御点に対して、プログラム上で指令値を用いることにより制御する。例えば、工作機械においては、通常、工具根元位置が制御点とされている。一方で、工具長補正機能を用いたり、工具先端点制御を実施したりする場合には、工具先端位置が制御点とされる。そして、これらの制御点が、指令値により指定した座標値に移動するように、制御が実行される。
 しかし、実際の機械においては、工具先端点の位置や、工具根元位置、工具の姿勢等を示す数値には誤差が存在することが多い。そのため、この誤差に起因して、工具先端点位置や工具姿勢が指令値通りの軌道にならないことがある。
 この点、誤差を補正する技術として、直進軸の運動に依存する並進誤差及び姿勢誤差と、回転軸の運動に依存する並進誤差と姿勢誤差による影響を補正して高精度な加工を実現するため、直進軸と回転軸とを有する工作機械を制御する数値制御装置であって、直進軸の運動に依存する並進誤差と姿勢誤差とから直進軸の位置補正量を計算する直進軸依存位置補正量計算手段と、回転軸の運動に依存する並進誤差と姿勢誤差とから直進軸の位置補正量を計算する回転軸依存位置補正量計算手段と、直進軸の運動に依存する姿勢誤差の一部と回転軸の運動に依存する姿勢誤差の一部とから回転軸の角度補正量を計算する回転軸角度補正量計算手段と、回転軸補正量に対応する直進軸の位置補正量を計算する位置加算補正量計算手段とを有する数値制御装置に係る技術が知られている(例えば、特許文献1参照)。
 一方で、制御対象となる産業機械の機械構成を、構成要素をノードとするグラフ形式で表現し、このグラフに基づくことにより、任意の機械構成を有する産業機械を制御する技術が知られている(例えば、特許文献2参照)。
特許第5105024号公報 特許第6549683号公報
 通常の誤差補正技術は、任意の機械構成を有する工作機械には対応していないため、例えば上記のような、構成要素をノードとするグラフを用いる制御技術を、誤差補正に適用する手段が考えられる。しかし、従来の構成要素をノードとするグラフを用いる制御技術を、そのまま誤差補正に適用することは困難であった。
 構成要素をノードとするグラフを用いることにより、任意の機械構成を有する工作機械における誤差を補正する技術が望まれている。
 本開示の一態様は、制御対象の機械構成を、構成要素をノードとするグラフ形式で表現し、保持する制御装置であって、前記機械構成のグラフの各ノードに対し、制御点及び座標系をノードとして挿入する制御点座標系挿入部と、前記挿入された前記制御点及び前記座標系に識別子を割り当てる識別子割り当て部と、前記制御対象における機械誤差に係る情報と、前記機械誤差を観測した座標系に割り当てられた識別子とを記憶する誤差情報記憶部と、前記機械誤差を等価な誤差ノードに変換する誤差ノード生成部と、前記機械構成のグラフにおいて、前記誤差ノードを追加する誤差ノード追加部と、前記機械構成のグラフに対し、前記識別子により制御点及び座標系を1組以上指定する制御点座標系指定部と、前記制御点座標系指定部により指定された前記制御点と前記座標系により、プログラム中で指令された1つ以上の指令値が、どの制御点に対するどの座標系上の座標値に対応するか判断する指令値判断部と、前記制御点の前記座標値が前記指令値となるように、前記制御点の移動を指令する移動指令部と、を備える制御装置である。
 本開示の一態様は、制御対象の機械構成を、構成要素をノードとするグラフ形式で表現し、保持する制御装置であって、前記機械構成のグラフの各ノードに対し、制御点及び座標系を情報として持たせる制御点座標系挿入部と、前記挿入された前記制御点及び前記座標系に識別子を割り当てる識別子割り当て部と、前記制御対象における機械誤差に係る情報と、前記機械誤差を観測した座標系に割り当てられた識別子とを記憶する誤差情報記憶部と、前記機械誤差を等価な誤差ノードに変換する誤差ノード生成部と、前記機械構成のグラフにおいて、前記誤差ノードを追加する誤差ノード追加部と、前記機械構成のグラフに対し、前記識別子により制御点及び座標系を1組以上指定する制御点座標系指定部と、前記制御点座標系指定部により指定された前記制御点と前記座標系により、プログラム中で指令された1つ以上の指令値が、どの制御点に対するどの座標系上の座標値に対応するか判断する指令値判断部と、前記制御点の前記座標値が前記指令値となるように、前記制御点の移動を指令する移動指令部と、を備える制御装置である。
 本発明によれば、構成要素をノードとするグラフを用いることにより、任意の機械構成を有する工作機械における誤差を補正することが可能となる。
本発明の実施形態に係る制御装置の構成を示す図である。 本発明の実施形態に係る制御装置に備わるCMOSメモリの機能を示すブロック図である。 本発明の実施形態に係る制御装置に備わるCPUの機能を示すブロック図である。 本発明の実施形態に係る移動指令部のCPUの機能を示すブロック図である。 本発明の実施形態に係る機械構成木を生成する対象となる機械の例を示す図である。 本発明の実施形態に係る機械構成木の生成方法を示す図である。 本発明の実施形態に係る機械構成木の生成方法を示す図である。 本発明の実施形態において生成された機械構成木の生成動作を示す図である。 本発明の実施形態に係る機械構成の親子関係の例を示す図である。 本発明の実施形態に係る機械構成の親子関係の例を示す図である。 本発明の実施形態に係る機械構成に含まれるユニットの例を示す図である。 本発明の実施形態に係る機械構成に含まれるユニットの例を示す図である。 本発明の実施形態に係る機械構成に含まれるユニットの例を示す図である。 本発明の実施形態に係る機械構成の例を示す図である。 本発明の実施形態に係る機械構成に含まれるユニットの定義方法を示す図である。 本発明の実施形態に係る機械構成に含まれるユニットの例を示す図である。 本発明の実施形態におけるGUI(グラフィカル・ユーザ・インタフェース)の例を示す図である。 本発明の実施形態におけるGUI(グラフィカル・ユーザ・インタフェース)の例を示す図である。 本発明の実施形態におけるGUI(グラフィカル・ユーザ・インタフェース)の例を示す図である。 本発明の実施形態におけるGUI(グラフィカル・ユーザ・インタフェース)の例を示す図である。 通常のテーブルに設置されたワークに対する指令の例を示す図である。 本発明の実施形態に係る数値制御装置による指令の例を示す図である。 機械構成木の生成対象となる機械の例を示す図である。 機械構成木の生成対象となる機械に対応する機械構成木の例を示す図である。 本発明の実施形態において、機械の各ノードに座標系及び制御点が挿入された例を示す図である。 本発明の実施形態における、座標系及び制御点が挿入された機械構成木の例を示す図である。 本発明の実施形態において、各ノードにオフセット及び姿勢マトリクスが挿入される機械の例を示す図である。 本発明の実施形態において、機械の各ノードにオフセット及び姿勢マトリクスが挿入された例を示す図である。 本発明の実施形態において、機械構成木に制御点を挿入する生成動作を示す図である。 本発明の実施形態における、座標系及び制御点が挿入された機械構成木の例を示す図である。 本発明の実施形態における、機械構成木の例を示す図である。 本発明の実施形態における、機械座標系の機械原点に対する制御点位置ベクトル及び制御点姿勢マトリクスを示す図である。 本発明の実施形態における、機械座標系の機械原点に対する指令値位置ベクトル及び指令値姿勢マトリクスを示す図である。 本発明の実施形態における、プログラムの例を示す図である。 本発明の実施形態における、プログラムの例を示す図である。 本発明の実施形態における、プログラムの例を示す図である。 本発明の実施形態において、移動パルスを生成する際に用いる情報の例を示す図である。 本発明の実施形態における、プログラムの例を示す図である。 本発明の実施形態における、プログラムの例を示す図である。 本発明の実施形態において、移動パルスを生成する際に用いる情報の例を示す図である。 本発明の実施形態において、移動パルスを生成する際に用いる情報の例を示す図である。 本発明の実施形態において、移動パルスを生成する際に用いる情報の例を示す図である。 本発明の実施形態における、プログラムの例を示す図である。 工作機械における誤差の実測方法についての説明図である。 工作機械に設置されたミラーの誤差としてのオフセットについての説明図である。 工作機械に設置されたミラーの誤差としてのロール、ピッチ、及びヨーについての説明図である。 工作機械における誤差オフセットベクトルについての説明図である。 本発明の実施形態における機械構成木において、誤差ノードの挿入箇所を示す図である。 本発明の実施形態において、異なる座標系の間で並進誤差と回転誤差とを変換する方法を示す図である。 本発明の実施形態における、機械構成木の例を示す図である。 工作機械におけるミラーオフセットについての説明図である。 本発明の実施形態における、機械構成木の例を示す図である。 工作機械における直角度誤差についての説明図である。 本発明の実施形態における、機械構成木の例を示す図である。 計測用の基準形状を有する人工物であるアーティファクトの構成例を示す図である。 本発明の実施形態において、アーティファクトの設置例を示す図である。 本発明の実施形態における、機械構成木の例を示す図である。
 以下、本発明の実施形態について、図1~図48を参照しながら詳述する。まず、本発明の実施形態に係る制御装置の構成について説明する。
 〔1.発明の構成〕
 図1には、本発明の実施形態に係る制御装置100の構成例が示されている。制御装置100は、主として、CPU11と、ROM12と、RAM13と、CMOS14と、インタフェース15、18、19と、PMC(プログラマブル・マシン・コントローラ)16と、I/Oユニット17と、軸制御回路30~34と、サーボアンプ40~44と、スピンドル制御回路60と、スピンドルアンプ61とを備える。
 CPU11は制御装置100を全体的に制御するプロセッサである。CPU11は、ROM12に格納されたシステムプログラムを、バス20を介して読み出し、該システムプログラムに従って制御装置100の全体を制御する。
 RAM13には、一時的な計算データや表示データ、及び表示器/MDIユニット70を介してオペレータが入力した各種データが格納される。
 CMOSメモリ14は、図示しないバッテリでバックアップされ、制御装置100の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。CMOSメモリ14中には、インタフェース15を介して読み込まれた加工プログラムや、表示器/MDIユニット70を介して入力された加工プログラム等が記憶される。
 なお、本実施形態において、ROM12は、機械構成グラフ記憶部141と、誤差情報記憶部142とを備える。図2は、ROM12の構成を示す。
 機械構成グラフ記憶部141は、後述のグラフ生成部111によって生成されるグラフ形式の機械構成、すなわち本実施形態における「機械構成木」を記憶する。
 誤差情報記憶部142は、制御対象としての産業機械における、機械誤差に係る情報と、機械誤差を観測した座標系に割り当てられた識別子とを記憶する。なお、この識別子は、後述の識別子割り当て部114により割り当てられたものである。
 なお、誤差情報記憶部142と、CPU11に備わる他の構成要素との情報の入出力に係る機能については、CPU11に係る説明の中で後述する。
 ROM12には、加工プログラムの作成及び編集のために必要とされる編集モードの処理や自動運転のための処理を実施するための各種システムプログラムが、予め書き込まれている。
 本発明を実行する加工プログラム等の各種加工プログラムは、インタフェース15や表示器/MDIユニット70を介して入力し、CMOSメモリ14に格納することができる。
 インタフェース15は、制御装置100とアダプタ等の外部機器72との接続を可能とするものである。外部機器72側からは加工プログラムや各種パラメータ等が読み込まれる。また、制御装置100内で編集した加工プログラムは、外部機器72を介して外部記憶手段に記憶させることができる。
 PMC(プログラマブル・マシン・コントローラ)16は、制御装置100に内蔵されたシーケンスプログラムで、産業機械の補助装置(例えば、工具交換用のロボットハンドといったアクチュエータ)にI/Oユニット17を介して信号を出力して制御する。また、産業機械の本体に配備された操作盤の各種スイッチ等の信号を受け、必要な信号処理をした後、信号をCPU11に渡す。
 表示器/MDIユニット70は、ディスプレイやキーボード等を備えた手動データ入力装置である。インタフェース18は、表示器/MDIユニット70のキーボードからの指令やデータを受けて、これらをCPU11に渡す。インタフェース19は、手動パルス発生器等を備えた操作盤71に接続されている。
 各軸の軸制御回路30~34は、CPU11からの各軸の移動指令量を受けて、各軸の指令をサーボアンプ40~44に出力する。
 サーボアンプ40~44は、この指令を受けて、各軸のサーボモータ50~54を駆動する。各軸のサーボモータ50~54は、位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路30~34にフィードバックし、位置・速度のフィードバック制御を行う。なお、ブロック図では、位置・速度のフィードバックについては省略している。
 スピンドル制御回路60は、産業機械への主軸回転指令を受け、スピンドルアンプ61にスピンドル速度信号を出力する。スピンドルアンプ61は、このスピンドル速度信号を受けて、工作機械のスピンドルモータ62を指令された回転速度で回転させ、工具を駆動する。
 スピンドルモータ62には、歯車あるいはベルト等でパルスエンコーダ63が結合されている。パルスエンコーダ63は、主軸の回転に同期して帰還パルスを出力する。その帰還パルスは、バス20を経由してCPU11によって読み取られる。
 なお、図31に示す制御装置100の構成例では、軸制御回路30~34の5つの軸制御回路と、サーボモータ50~54の5つのサーボモータが示されている。しかし、本発明は、これには限定されず、任意の個数の軸制御回路及びサーボモータを備えることが可能である。
 図43は、上記のCPU11が、ROM12に格納されたシステムプログラム及びアプリケーションプログラムを、バス20を介して読み出し、該システムプログラム及びアプリケーションプログラムに従って実現する機能を示す機能ブロック図である。CPU11は、グラフ生成部111と、制御点座標系挿入部113と、識別子割り当て部114と、誤差ノード生成部115と、制御点座標系指定部116と、指令値判断部117と、移動指令部118とを備える。
 グラフ生成部111は、制御対象の機械構成をグラフ形式で生成する。その詳細な動作については、以下の「2.機械構成木の生成」で詳述する。
 また、グラフ生成部111は、誤差ノード追加部112を備える。誤差ノード追加部112の機能については、後述する。
 制御点座標系挿入部113は、機械構成のグラフに対し、制御点及び座標系を挿入する。
 識別子割り当て部114は、制御点及び座標系のそれぞれに識別子を割り当てる。
 制御点座標系挿入部113及び識別子割り当て部114の詳細な動作については、以下の「3.指令アドレスの抽象化」~「8.機械構成木からの座標系の導出」で詳述する。
 誤差ノード生成部115は、誤差情報記憶部142に記憶された機械誤差を、誤差ノード挿入位置からの相対的な値に変換する。
 誤差ノード生成部115によって変換された誤差ノードは、誤差ノード追加部112によって、機械構成をグラフ形式で生成された機械構成、すなわち本実施形態における「機械構成木」に追加される。
 誤差情報記憶部142、誤差ノード生成部115、及び誤差ノード追加部112の機能の具体例については、以下の「10.実施例」において説明する。
 制御点座標系指定部116は、上記の識別子により、上記の制御点及び座標系を指定する。具体的には、制御点座標系指定部116は、例えば、プログラム中の指令、パラメータ設定、画面操作、及び制御装置100への入力手段からの入力値のいずれかにより、上記の制御点及び座標系を指定する。
 指令値判断部117は、プログラム中の指令値が、どの制御点に対するどの座標系上の座標値か判断する。
 制御点座標系指定部116及び指令値判断部117の詳細な動作については、以下の「3.指令アドレスの抽象化」~「8.機械構成木からの座標系の導出」で詳述する。
 移動指令部118は、制御点の座標値がプログラム中の指令値となるように、制御点の移動を指令する。移動指令部118の詳細な動作については、以下の「9.移動パルス生成方法」で詳述する。また、図4は移動指令部118の構成例を示す。
 図4に示すように、移動指令部118は、連立方程式生成部181と、連立方程式求解部182と、移動パルス生成部183とを備える。
 連立方程式生成部181は、以下の「9.移動パルス生成方法」に記載の方法により、指定された座標系と機械構成のグラフとから、指令値の第1座標変換式を求め、また、指定された制御点と機械構成のグラフとから、制御点の第2座標変換式を求め、第1座標変換式と第2座標変換式とが等しいことを定義する多元多次連立方程式を生成する。
 連立方程式求解部182は、上記の多元多次連立方程式の解を求める。
 移動パルス生成部183は、連立方程式求解部182が生成した解を用いて、移動指令に用いる移動パルスを生成する。
 〔2.機械構成木の生成〕
 本発明の実施形態に係る制御装置100は、最初に、機械構成を表すグラフを生成する。グラフの一例として機械構成木を生成する生成方法について、図5~図8を参照しながら詳述する。
 例として、図5に示す機械の構成を表現する機械構成木の生成方法について説明する。図5の機械においては、Z軸に対して垂直にX軸が設定され、X軸には工具1が設置され、Z軸には工具2が設置されているとする。一方で、Y軸上にB軸が設定され、B軸上にC軸が設定され、C軸にはワーク1とワーク2が設置されているとする。この機械構成を機械構成木として表現する方法は、以下の通りである。
 まず、図6に示すように、原点201とノード202A~202Gのみを配置する。この段階では、原点201とノード202、及びノード202間でのつながりは持たず、原点及びノードの各々の名称も設定されていない。
 次に、各軸の軸名称(軸型)、各工具の名称、各ワークの名称、各原点の名称、各軸の物理軸番号(軸型)を設定する。次に、各軸の親ノード(軸型)、各工具の親ノード、各ワークの親ノードを設定する。最後に、各軸の交叉オフセット(軸型)、各工具の交叉オフセット、各ワークの交叉オフセットを設定する。その結果、図7に示す機械構成木が生成される。
 なお、機械構成木の各ノードは、上記の各情報に限られず、例えば、識別子(名称)、自身の親ノードの識別子、自身を親とする全ての子ノードの識別子、親ノードに対する相対オフセット(交叉オフセット)、親ノードに対する相対座標値、親ノードに対する相対移動方向(単位ベクトル)、ノード種別(直線軸/回転軸/ユニット(後述)/制御点/座標系/原点等)、物理軸番号、直交座標系と物理座標系の変換式に係る情報を有してもよく、あるいは、有さなくてもよい。
 また、機械構成木の各ノードは、ノード自身が制御点あるいは座標系であるために必要な情報を有してもよく、有さなくてもよい。制御点あるいは座標系であるために必要な情報としては、詳しくは後述するが、例えばオフセット、姿勢マトリクス、移動やオフセットを加味するか/しないかという情報であり、これらを含んでもよく、含まなくてもよい。このとき、ノード自身が制御点あるいは座標系であるために必要な情報を有するか有さないかによって、後述の制御点座標系指定部の実施形態が異なる。また、必要な情報を有しない場合は、後述の制御点座標系挿入部及び制御点座標系識別子割当て部により必要な情報をノードに付与することもできる。
 このように各ノードに値を設定していくことにより、制御装置100内に機械構成木状のデータ構造を有するデータを生成する。更に、別の機械(又はロボット)を追加する場合も、原点を追加し、更にノードを追加することができる。
 上記の機械構成木生成方法、とりわけ各ノードへの各値の設定方法を一般化したフローチャートを図8に示す。
 ステップS11において、グラフ生成部111は、ノードに対して設定するパラメータの値を受け取る。
 ステップS12において、設定されたパラメータの項目が「自身の親ノード」の場合(S12:YES)には、処理はステップS13に移行する。「自身の親ノード」ではない場合(S12:NO)には、処理はステップS17に移行する。
 ステップS13において、パラメータが設定されるノードに、既に親ノードが設定されている場合(S13:YES)には、処理はステップS14に移行する。親ノードが設定されていない場合(S13:NO)には、処理はステップS15に移行する。
 ステップS14において、グラフ生成部111は、パラメータが設定されるノードの、現在の親ノードが持つ「子ノード」の項目から、自身の識別子を削除し、機械構成木を更新する。
 ステップS15において、グラフ生成部111は、パラメータを設定するノードの該当項目に値を設定する。
 ステップS16において、グラフ生成部111は、親ノードに対し、「子ノード」の項目に自身の識別子を追加し、機械構成木を更新した後、フローを終了する。
 ステップS17において、グラフ生成部111は、パラメータを設定するノードの該当項目に値を設定した後、フローを終了する。
 上記の機械構成木状のデータ構造を有するデータの生成方法を用いることにより、機械の構成要素同士の親子関係を設定することが可能である。
 ここで親子関係とは、例えば図9Aのように、2つの回転軸ノード104、105があったとき、一方のノード104の座標値の変化が、他方のノード105の幾何的状態(典型的には、位置・姿勢)に対して一方的に影響を及ぼすような関係のことである。この場合ノード104、105は親子関係にあると呼び、ノード104を親、ノード105を子と呼ぶ。
 しかし、例えば図9Bに示すように、2つの直線軸ノード102、103と4つのフリージョイント101により構成された機械構成においては、ノード102、103の一方の座標値(長さ)が変わることにより、他方の幾何的状態だけでなく、自身の幾何的状態も変わるような、相互に影響を及ぼす機構が存在する。このような場合は、互いに親であり子、すなわち親子関係が双方向であるとみなすことができる。
 このように、あるノードの変化が他のノードに互いに影響し合うような機構については、利便性の観点から、1つのユニットとして捉え、このユニットを機械構成木に挿入することにより全体の機械構成木を生成する。ユニットは、図10Aのように二つの接続点110及び接続点120を持っており、ユニットが図10Bのように機械構成木に挿入された場合、図10Cのように、親ノードは接続点120に接続され、また、子ノードは接続点110に対して接続される。また、ユニットは、接続点120から接続点110への変換マトリクスを持っている。この変換マトリクスは、ユニットに含まれる各ノードの座標値によって表される。例えば図11のような機械構成の場合、接続点120における位置・姿勢を表す同次マトリクスをMとし、接続点110における位置・姿勢を表す同次マトリクスをMとすると、それらのマトリクス間の変換式はユニットに含まれる各直線軸ノードの座標値x、xを用いて以下のように表される。
Figure JPOXMLDOC01-appb-M000001
 この機械構成を表すユニットは上記の[数1]の数式中のTのような同次変換マトリクスを持つ。同次マトリクスとは、以下の[数2]の数式のように位置・姿勢をまとめて表現できる4×4マトリクスのことである。
Figure JPOXMLDOC01-appb-M000002
 また、親子関係が相互でない場合であっても、計算処理や設定を簡単にするために、ある複数のノードを予め1つにまとめたユニットを定義し、機械構成木中に構成してもよい。
 また、このようなユニットは、予め数値制御装置に定義されていてもよいし、ユーザが独自に記述したスクリプトを数値制御装置が読み込んでもよい。
 図12Aは、ユーザが独自に記述したスクリプトを数値制御装置が読み込む際のフローの例を示す。
 ステップS21において、制御装置100が、ユーザによって定義されたスクリプトを読み込む。
 ステップS22において、制御装置100が、読み込んだスクリプトの内容を解析し、ユニットを新たに定義する。
 ステップS23において、制御装置100が、新たに定義したユニットを、機械構成グラフに挿入可能な構成要素として、新たに登録する。
 その結果、ステップS24において、ユーザは登録された独自ユニット(図12Bの例においては、MyUnit)を機械構成木に挿入することが可能となる。
 すなわち、ユーザが独自に記述したスクリプトを数値制御装置が読み込み、その内容を解析することで、ユニットを新たに定義し、これを用いて、機械構成木中に構成することができてもよい。
 図12Bは、図12Aに記載のスクリプトにより、新たに定義された独自ユニットMyUnitが機械構成木に挿入された例を示す。これにより、ユーザの所望の形式のユニットが数値制御装置に予め定義されていなくても、ユーザが独自に定義を追加できるため、利便性が向上する。
 上記のように、本実施形態においては、機械構成のグラフは、複数の軸をまとめて1つにしたユニットを構成要素として含むことができる。
 なお、上記の機械構成木は、図13Aのように表示器70にグラフィカルに表示すること、及び、表示器70上でグラフィカル・ユーザ・インタフェース(GUI)を用いて簡単に設定することが可能である。例えば、図13Bのようにドラッグアンドドロップ操作でノードを配置でき、図13Cのようにドラッグ操作でノード同士の親子関係を設定でき、図13Dのようにマウスクリック操作で設定用メニューを開いてノードの属性を設定することができたりする。
 工作機械等の産業機械は多様な機械構成を持つため構成要素同士の親子関係もまた多様であるが、通常、数値制御装置においては、構成要素同士の親子関係に関する情報を持っていないため、そのような情報が必要な制御はできない。しかし、数値制御装置は、上記の機械構成木、あるいは、機械構成木状のデータ構造を有するデータの生成方法を用いることにより、多様な機械構成を持つ工作機械やロボットを制御できるようになり、利便性が向上する。また、ユーザは、グラフィカル・ユーザ・インタフェース(GUI)を用いることにより、直感的に機械構成木を数値制御装置に設定することが可能となる。
 〔3.指令アドレスの抽象化〕
 上記のように、機械構成木を生成する際には、個々の軸に軸名称を付ける。通常、数値制御装置で使用される加工プログラムにおいては、軸名称と移動先の座標値又は移動量を意味する数値との組み合わせを用いて、移動を指令する。
 しかし、軸名称を任意に設定できても、機械の軸構成が異なる場合には、個々の軸名称にて指令を行う限り、プログラムは異ならざるをえない。例えば、図14に示すように、ワーク212に対して工具213を用いて加工を行う場合、(a)のようにワークが回転テーブル214に載っている場合と、(b)のように直動テーブル211上に載っている場合とでは、ワーク212に対する工具213の所望の相対加工経路215が同じであったとしても、それを実現する指令は、(a)の場合には216であり、(b)の場合には217であるように、プログラムが異なってしまう。具体的には、216の場合には、回転テーブルの回転軸Cを180度移動させることで円弧経路を実現するが、217の場合には、直線軸XYにより円弧補間指令を行うことで円弧経路を実現するといったように、プログラムが異なる。
 また、従来はGコードモーダル毎に指令可能なアドレスは決まっており、モーダルが変わった場合には、それに合わせて指令アドレスを変える必要があった。例えば、工具先端点制御において工具の姿勢を表すには、タイプ1モード中であれば各回転軸アドレス(例えばアドレスA,B,C)で指令し、タイプ2モード中であれば工具姿勢ベクトル(アドレスI,J,K)で指令するといったように、それぞれのモード中に指令可能なアドレスが決まっている。そのため、例えばタイプ1モード中にアドレスI,J,Kで指令をしたり、逆にタイプ2モード中に回転軸アドレスA,B,Cで指令をしたりすることはできなかった。
 そこで、本発明においては、軸名称ではなく、ある座標系における、ある制御点の位置や姿勢等を定義する抽象的アドレスを用いる。具体的には、まず、アドレスを定義するために図15の218のように指令を行う。218では、機械構成中の実際の軸名称とは無関係に予め定義された識別子(第一直線軸位置を表す識別子L1や第二直線軸位置を表す識別子L2)に対して好適なアドレスα、βを代入することにより、直交座標系の第一直線軸位置としてアドレスαを、直交座標系の第二直線軸位置としてアドレスβを定義する。同様にして、実際の軸名称とは無関係に予め定義された工具姿勢ベクトルを表す識別子V1,V2,V3に対して好適なアドレスを代入して、工具姿勢ベクトルを表す各アドレスを定義してもよい。あるいは、実際の軸名称とは無関係に予め定義された第一・第二回転軸位置を表す識別子R1,R2に対して好適なアドレスを代入して、各回転軸位置を表すアドレスを定義してもよい。プログラム中でこれらが定義されない場合は、制御装置100にパラメータで設定されたデフォルトのアドレスが第一直線軸位置・第二直線軸位置等各々の抽象的意味を表すアドレスとして定義される。そして、以降は図15の219に示すように、これらα、βをプログラムで用いることにより、どのような機械構成でも、また、実際の軸名称が異なる機械同士でも、共通の形式でプログラムを記述できるようになる。また、同じ制御点に対する指令でも、図15の220のようにアドレスを変えるだけで、例えばあるブロックでは工具方向を決めるためにベクトルで指令したり、あるブロックでは回転軸角度で指令したりと、その都度プログラム作成者にとって好適な様々な指令方法を使うことが可能になる。
 上記のように、本実施形態においては、指令値として、機械構成のグラフに含まれる軸名称とは無関係に、意味毎に予め定義された識別子に対して割り当てた、任意のアドレスを用いることができる。なお、上記の「意味」は、制御点の位置、制御点の姿勢、及び、姿勢を決定する回転軸の角度位置を含む。
 〔4.制御点と座標値の自動挿入〕
 「2.機械構成木の生成」にて述べたように、機械構成グラフの各ノードは、自身が制御点あるいは座標系となるために必要な情報を持つことができるが、持たないこともできる。ノードが制御点あるいは座標系となるために必要な情報を持たない場合には、機械構成上の様々な位置を、制御点として指定すると共に、機械構成上の様々な箇所の座標系を設定するため、上記の「2.機械構成木の生成」で生成された機械構成木を用いて、以下の方法を実施する。
 例えば、図16Aに示すロータリインデックスマシン300においては、Z1軸に対して垂直にX1軸が設定され、X1軸に工具1が設置されている。また、Z2軸に対して垂直にX2軸が設定され、X2軸上に工具2が設置されている。更に、テーブルにおいては、C軸上にC1軸とC2軸が並列に設定され、C1軸とC2軸の各々にワーク1とワーク2が設置されているとする。この機械構成を機械構成木で表わすと、図16Bに示す機械構成木となる。
 各ワークから機械原点に連なる一連のノードを例に取ると、図17に示すように、機械原点、C軸、C1軸、C2軸、ワーク1、ワーク2の各々に座標系と制御点を自動挿入する。これを、テーブルに対してのみならず、各工具から機械原点に連なる一連のノード、すなわちX1軸、X2軸、Z1軸、Z2軸、工具1、工具2のすべてに対して実施する。その結果、図18に示すように、機械構成木を構成するすべてのノードに対して、各々に対応する制御点と座標系が自動挿入される。通常、加工を行う場合にはワークに座標系、工具を制御点として指定する。これにより、例えば、ワーク自身を所定の位置へ移動させるために、ワークに制御点を指定したい場合や、ある工具で別の工具を研磨するために、工具自身に座標系を設定したい場合といった様々な場合に対応することも可能となる。
 また、図19Aに示すように、各制御点及び座標系は、オフセットを有する。そのため、ノード中心から離れた点を制御点や座標系原点にすることも可能である。更に、各制御点及び座標系は姿勢マトリクスを持つ。この姿勢マトリクスは、制御点の姿勢マトリクスである場合、制御点の姿勢(向き、傾き)を表し、座標系の姿勢マトリクスの場合、座標系の姿勢を表わす。図19Bに示す機械構成木においては、オフセット及び姿勢マトリクスは、各々が対応するノードに紐づく形で表現される。更に、各制御点及び座標系は、機械構成木のルートまでの経路上に存在するノードの「移動」及び「交叉オフセット」それぞれを加味するか/しないかの情報を持っており、それらを設定できる。
 上記の制御点の自動挿入方法を一般化したフローチャートを図20に示す。このフローチャートは、詳細には、チャートAとチャートBとを含み、後述のように、チャートAの途中でチャートBが実行されるという構成となっている。
 まず、チャートAについて説明する。
 ステップS31において、グラフ生成部111は、機械構成木を設定する。
 ステップS32において、チャートBを実行し、チャートAのフローを終了する。
 次に、チャートBについて説明する。
 チャートBのステップS41において、ノードは制御点・座標系を挿入済である場合(S41:YES)には、フローを終了する。ノードに制御点・座標系を挿入済でない場合(S41:NO)には、処理はステップS42に移行する。
 ステップS42において、制御点座標系挿入部113は、ノードに制御点・座標系を挿入し、変数nを1つスタックする。また、n=1とする。
 ステップS43において、ノードにn番目の子ノードが存在する場合(S43:YES)には、処理はステップS44に移行する。ノードにn番目の子ノードが存在しない場合(S43:NO)には、処理はステップS46に移行する。
 ステップS44において、n番目の子ノードについて、チャートB自身を再帰的に実行する。
 ステップS45において、nを1だけインクリメントする。すなわちn=n+1とし、処理はステップS43に戻る。
 ステップS46において、変数nを1つポップし、チャートBのフローを終了する。
 上記の方法により、制御点座標系挿入部113は、機械構成のグラフの各ノードに対し、制御点及び座標系をノードとして挿入する。なお、上記では、制御点及び座標系をノードとして追加する場合の実施例を示したが、図21に示すように、制御点座標系挿入部113は、機械構成のグラフの各ノードに対し、制御点及び座標系を情報として持たせる実施形態も同様に可能である。また、「2.機械構成木の生成」でも述べたように、グラフ生成部が図22に示すような機械構成木(各ノードが制御点あるいは座標系であるために必要な情報を持っている機械構成木)を生成することも可能である。この場合、機械構成木は既に制御点あるいは座標系としての情報を持っているため、制御点座標系挿入部は必ずしも必要ではない。
 〔5.制御点位置及び制御点姿勢の計算方法〕
 図23に示すように、機械構成木のルートに対する、機械構成木中のある制御点の位置・姿勢を表す同次マトリクスをMとした場合、これは以下のように求められる。
 まず、機械構成木中のあるノードからあるノードまでの間に存在するノードを並べたものを経路と定義する。例えば、図17においてノードZ1から制御点[工具1]までの経路p1は以下のように表される。
Figure JPOXMLDOC01-appb-M000003
 機械構成木中のルートからある制御点までの経路p2が以下のようであるとする。
Figure JPOXMLDOC01-appb-M000004
 上記経路中の始点xがルートである。この経路によって表される制御点の、ルートに対する位置姿勢の同次マトリクスMは、
Figure JPOXMLDOC01-appb-M000005
により、算出される。ただし、記号の意味は、以下の通りである。
S:各ノードによる同次変換マトリクス;
N:機械構成木のルートから制御点まで連なる一連のノード個数;
[ctrl]:制御点の親ノードに対する相対オフセット・姿勢の同次マトリクスであり、制御点に定義されたオフセットベクトル・姿勢マトリクスから[数2]の数式に従って定義される;
xi:ノードxiの交叉オフセットを加味する(1)、加味しない(0);
xi:ノードxiの移動を加味する(1)、加味しない(0);
 ここで、axi、bxiは制御点を指定する際に指定することもできる情報で、詳細については後述の〔8.機械構成木から導出した座標系のカスタマイズ〕において説明する。
 また、同次変換マトリクスSはノードの種別(直線軸/回転軸/ユニット/制御点/座標系等)によって変わり、以下のように表される。
 直線軸の場合
Figure JPOXMLDOC01-appb-M000006
 により、算出される。ただし、記号の意味は、以下の通りである。
:ノードxiの座標値;
ofsxi:ノードxiの親ノードに対する相対オフセットベクトル;
xi:ノードxiの移動方向ベクトル;
 回転軸の場合
Figure JPOXMLDOC01-appb-M000007
により、算出される。ただし、記号の意味は、以下の通りである。
:ノードxiの回転軸方向ベクトルの第1成分;
:ノードxiの回転軸方向ベクトルの第2成分;
:ノードxiの回転軸方向ベクトルの第3成分;
 ユニットの場合
Figure JPOXMLDOC01-appb-M000008
により、算出される。ただし、記号の意味は、以下の通りである。
T(0):単位行列(無変換行列);
T(1):ユニットノードに定義された接続点120から接続点110への同次変換マトリクス;
ユニットの変換同次マトリクスについては、先述した通り例えば[数1]の数式中のTのようなユニット毎に定義された同次変換マトリクスである。
 また、特に規定が無い場合、同次変換マトリクスSは単位行列とする。
 〔6.指令点位置及び指令点姿勢の計算方法〕
 図24に示すように、ある指定座標系上の指令値として、指令位置ベクトルpos、指令姿勢マトリクスmatが指定されている場合、この指令値の、機械構成木のルートに対する位置姿勢を表す同次マトリクスMは、以下の式により求められる。
 まず、指令値の同次マトリクスMを以下のように定義する。
Figure JPOXMLDOC01-appb-M000009
 また、制御点の場合と同様に考え、機械構成木中のルートからある座標系までの経路pが以下のようであるとする。
Figure JPOXMLDOC01-appb-M000010
 これにより、同次マトリクスM
Figure JPOXMLDOC01-appb-M000011
により、算出される。ただし、記号の意味は、以下の通りである。
S:各ノードによる同次変換マトリクス;
L:機械構成木のルートから座標系まで連なる一連のノード個数;
[coord]:座標系の親ノードに対する相対オフセット・姿勢の同次マトリクスであり、座標系に定義されたオフセットベクトル・姿勢マトリクスから[数2]の数式に従って定義される;
xi:ノードxiの交叉オフセットを加味する(1)、加味しない(0);
xi:ノードxiの移動を加味する(1)、加味しない(0);
xi、bxiは座標系を指定する際に指定することのできる情報で、詳細については後述の〔8.機械構成木から導出した座標系のカスタマイズ〕において説明する。
また、同次変換マトリクスSは[数6]~[数8]の数式を用いて説明したものと同様である。
 〔7.プログラム内における制御点及び座標系の指定方法〕
 まず、上記の「2.機械構成木の生成」において、各ノードが制御点あるいは座標系であるために必要な情報を持つように機械構成木が生成された場合に、各ノードを制御点あるいは座標系としてプログラム内で指定する方法の一例を、図25に示す。
 図25に例示するコマンドは、前半部が座標系を指定する文例であり、後半部が制御点を指定する文例である。以下、図25の繰り返しとなるが、プログラム内の各行の指令内容について説明する。
 1行目の「G54.9 P<ワーク1>;」により、ノード「ワーク1」を座標系として指定する。
 2行目の「G54.8 P<ワーク1><WORK1>;」により、ノード「ワーク1」に“WORK1”という別の識別子を設定する。
 3行目の「G54.9 P<WORK1>;」により、「WORK1」という別の識別子により、ノード「ワーク1」を座標系として指定する。
 4行目の「G54.7 P<C1> X_Y_Z_;」により、ノード「C1」の座標系交叉オフセットを設定する。
 5行目の「G54.6 P<C1> I_J_K_;」により、ノード「C1」の座標系姿勢マトリクスをRoll/Pitch/Yawで設定する。
 6行目の「G54.9 P<C1>;」により、ノード「C1」を座標系として指定すると共に、上記の交叉オフセット及び姿勢マトリクスが加味される。
 7行目の「G43.9 <工具1>;」により、ノード「工具1」を制御点として指定する。
 8行目の「G43.8 P<工具1><TOOL1>;」により、ノード「工具1」に「TOOL1」という別の識別子を設定する。
 9行目の「G43.9 P<TOOL1>;」により、「TOOL1」という別の識別子により、ノード「工具1」を制御点として指定する。
 10行目の「G43.7 P<B1> X_Y_Z_;」により、ノード「B1」の制御点交叉オフセットを設定する。
 11行目の「G43.6 P<B1> I_J_K_;」により、ノード「B1」の制御点姿勢マトリクスをRoll/Pitch/Yawで設定する。
 12行目の「G43.9 P<B1>;」により、ノード「B1」を制御点として指定する共に、上記の交叉オフセット及び姿勢マトリクスが加味される。
 次に、上記の「4.制御点と座標系の自動挿入」により、機械構成木に対して挿入された制御点と座標系を、プログラム内で指定する方法の一例を、図26に示す。
 図26に例示するコマンドは、前半部が座標系を指定する文例であり、後半部が制御点を指定する文例である。以下、図26の記載の繰り返しとなるが、プログラム内の各行の指令内容について説明する。
 1行目の「G54.9 <座標系[ワーク1]>;」により、座標系[ワーク1]を指定する。
 2行目の「G54.8 P<座標系[ワーク1]><WORK1>;」により、座標系[ワーク1]に“WORK1”という識別子を設定する。
 3行目の「G54.9 P<WORK1>;」により、“WORK1”という別の識別子により、座標系[ワーク1]を指定する。
 4行目の「G54.7 P<座標系[C1]> X_Y_Z_;」により、座標系[C1]の交叉オフセットを設定する。
 5行目の「G54.6 P<座標系[C1]> I_J_K_;」により、座標系[C1]の姿勢マトリクスをRoll/Pitch/Yawで設定する。
 6行目の「G54.9 P<座標系[C1]>;」により、座標系[C1]を指定すると共に、上記の交叉オフセット及び姿勢マトリクスが加味される。
 7行目の「G54.9 <制御点[工具1]>;」により、制御点[工具1]を指定する。
 8行目の「G54.8 P<制御点[工具1]><TOOL1>;」により、制御点[工具1]に“TOOL1”という識別子を設定する。
 9行目の「G54.9 P<TOOL1>;」により、“TOOL1”という別の識別子により、制御点[工具1]を指定する。
 10行目の「G54.7 P<制御点[B1]> X_Y_Z_;」により、制御点[B1]の交叉オフセットを設定する。
 11行目の「G54.6 P<制御点[B1]> I_J_K_;」により、制御点[B1]の姿勢マトリクスをRoll/Pitch/Yawで設定する。
 12行目の「G54.9 P<制御点[B1]>;」により、制御点[B1]を指定する共に、上記の交叉オフセットが加味される。
 このように、各ノードが制御点あるいは座標系であるために必要な情報を持つにせよ、持たないにせよ、機械構成木中の適切な箇所を制御点あるいは座標系として指定することが可能である。図25においては、制御点と座標系を指定する各々のGコードは番号が分かれているが、図26においては、制御点と座標系を指定する各々のGコードは共通にすることもできる。このように、座標系制御点挿入部及び識別子割り当て部は本発明の実施上不可欠なものではないが、導入してもよい。
 〔8.機械構成木から導出した座標系のカスタマイズ〕
 上述の通り、機械構成木中の好適な座標系をプログラム指令により選択することができ、選択された座標系上の指令値は、[数9]~[数11]の数式を用いて説明したように機械座標値に変換することができる。この変換において、経路p3中の各ノードに対応する一連のaxi、bxiは基本的には以下のように全て1として計算される。
Figure JPOXMLDOC01-appb-M000012
 この場合、一連のノードの交差オフセット及び移動は全て加味される。
 ここで、ap3及びbp3は経路p3の各要素に対応する要素を持ち、随伴する経路のように見ることができる。そこでこれらをp3の随伴経路ap3、bp3と呼ぶことにする。
 ところで、[発明が解決しようとする課題]で先述したように、特定の軸に対してのみ座標系が連れ回らない方が好適な場合もある。例えば図19A及び図19Bにおいて以下の経路pにて定義される座標系上でC1軸により旋削加工を行いたい場合は、C1軸に連れ回らない方が使いやすい。
Figure JPOXMLDOC01-appb-M000013
 この場合、以下のように随伴経路ap4,bp4を指定すれば、C1軸にのみ連れ回らないように座標系をカスタマイズすることができる。
Figure JPOXMLDOC01-appb-M000014
 このように、指定した座標系に対し随伴経路を適宜指定することで、使い方に応じて好適なように座標系をカスタマイズすることができる。随伴経路は、図27に示すようにプログラム指令により指定できる。プログラムの内容を説明すると、G254.9P<ワーク1>Q<C1>0指令により、ワーク1に挿入された座標系のac1を0に指定できる。
 また、G154.9P<ワーク1>Q<C1>0指令により、ワーク1に挿入された座標系のbc1を0に指定できる。
 そしてG54.9P<ワーク1>指令により、ac1=0,bc1=0としてカスタマイズされた座標系[ワーク1]を指定することができる。
 また、座標系だけでなく制御点にも同様に随伴経路が存在するため、これも同様に好適なように随伴経路をプログラムで指定することで、カスタマイズされた制御点を使うことができる。
 上記のように、本実施形態においては、座標系及び制御点を規定するための情報を変更することにより、座標系及び制御点は、任意のカスタマイズをすることが可能である。
 とりわけ、座標系及び制御点は、特定のノードの影響、具体的には、特定のノードの移動及びオフセットによる影響を除くことが可能である。
 〔9.移動パルス生成方法〕
 次に、本発明の実施形態に係る制御装置100は、〔3.指令アドレスの抽象化〕の方法により指令されたプログラム内の指令値を、〔7.プログラム内における制御点及び座標系の指定方法〕及び〔8.機械構成木から導出した座標系のカスタマイズ〕の方法により指定された座標系上の座標値と解釈し、指定された制御点の座標値が、この指令値となるように制御点を移動させるために必要な移動パルスを生成する。
 具体的には、まず、指定された座標系と機械構成木とから、〔6.指令点位置及び指令点姿勢の計算方法〕の方法により指令値の第1座標変換式を求める。次に、指定された制御点と機械構成木とから、〔5.制御点位置及び制御点姿勢の計算方法〕の方法により制御点の第2座標変換式を求める。次に、第1座標変換式と第2座標変換式とが等しいことを定義する多元多次連立方程式を求める。最後に、例えばグレブナー基底を用いて算出した、上記の多元多次連立方程式の解を用いて、移動指令に用いる移動パルスを生成する。
 例えば、図28に示すように、軸x1の上に軸x2が設定され、軸x2の上に軸x3が設定され、以下同様にN個のノードが連なり、その末端が軸xNであるとする。更に、軸xN上に制御点が設置されているとする。同様に、軸y1の上に軸y2が設定され、軸y2の上に軸y3が設定され、以下同様にL個のノードが連なり、その末端が軸yLであるとする。更に、軸yL上にワークが設置されているとする。ここで、xi,yjはノード名称だが、同時に各ノードの座標値も表わすこととする。
 また、図29に示すように、プログラムにより直交座標位置を表すアドレスX,Y,Zと工具姿勢を表すアドレスI,J,Kが指定されており、これらのアドレスにより指令値として位置posw=(X,Y,Z)と、工具方向ベクトルvecw=(I,J,K)が与えられているとする。また、図30に示すように、プログラムにより制御点[xN]と座標系[yM]が指定されているとする。
 このとき、ここで指定された制御点の機械構成木ルートからの経路pctrl及び座標系の機械構成木ルートからの経路pcoordは以下[数15]のようになる。
Figure JPOXMLDOC01-appb-M000015
 また、制御点及び座標系の随伴経路については特にプログラムによる指定が無いため、それぞれの経路の随伴経路apctrl,bpctrl,apcoord,bpcoordの要素は以下[数16]の数式のように全て1となる。
Figure JPOXMLDOC01-appb-M000016
 更に、各ノードには図28に示すオフセット、ノード種別(直線/回転/ユニット/制御点/座標系)、軸方向、姿勢マトリクス、座標値が与えられているとする。
 この時、図31に示すように、ルート(機械原点)に対する制御点の現在位置・姿勢を表す同次マトリクスMcは、以下の式で求められる。
Figure JPOXMLDOC01-appb-M000017
ただし、記号の意味は、〔5.制御点位置及び制御点姿勢の計算方法〕で説明した通りなので割愛する。
 また、指定座標系上における制御点の現在位置・姿勢を表す同次マトリクスMcwは、Mcを用いて以下の式で求められる。
Figure JPOXMLDOC01-appb-M000018
 ここから、指定座標系上における制御点の現在位置ベクトルposcwは以下のように求められる。
Figure JPOXMLDOC01-appb-M000019
 次に、図32に示すように、指定座標系における次の補間位置ベクトルpos’は、poscwを用いて、以下の式で求められる。
Figure JPOXMLDOC01-appb-M000020
 ただし、ここでFとは、補間周期毎の指定移動速度のことである。こうすることで、指定座標系における現在位置・指令点位置とを結ぶ直線上の、補間周期毎の位置を求めることができる。
 一方、指定座標系上における制御点の現在工具方向ベクトルveccwは工具基準方向ベクトルを(0、0、1、0)と仮定すると以下のように求められる。
Figure JPOXMLDOC01-appb-M000021
 なお、工具基準方向ベクトルは上記に限定されるものではなく、指令やパラメータ設定等により変えてもよい。
 よって、図33に示すような、指定座標系上における制御点の次の補間工具方向ベクトルvec’は、以下の式で求められる。
Figure JPOXMLDOC01-appb-M000022
 ただし、記号の説明は以下の通りである。
 Rot(θ’,axis):ベクトルaxis方向回りにθ’だけ回転する回転行列。[数7]にて説明した行列Rと同様のもの。
 以上のように次の補間位置ベクトルposw’と、次の補間工具方向ベクトルvecw’を求めたら、制御点の位置及び姿勢それぞれについて、以下の連立方程式を立てる。
Figure JPOXMLDOC01-appb-M000023
 この連立方程式を、各x,yに関して解くことにより、各軸の次の補間位置が求まる。
 なお、連立方程式を解く際は、例えばグレブナー基底を用いて解を算出することが可能である。具体的には、辞書式順序x>x>・・・>x>y>y>・・・yに基づき、例えば、Buchburgerアルゴリズム等を用いて、上記連立方程式のグレブナー基底を求めると、最下位順序yについての一元多次方程式が求まる。これを解けばyの解が求められ、この解を用いて他のグレブナー基底についても式を順番に解くことで、上記連立方程式を各x,yに関して解を求めることができる。
 このようにして求めた各解x’,y’を用いて各軸に対してΔx’=x’-x,Δy’=y’-yなる移動量を出力することで、指定座標系上における指定速度での移動を実現できる。
 なお、機械構成の自由度が冗長な場合は、例えば、いくつかの軸は移動させなかったり、いくつかの軸に対して直接指令値を与えたりといった拘束条件を適宜[数23]の数式に追加して連立することによって、対処することができる。又は、いくつかの軸に対しては通常は移動しない補助軸という属性を持たせておき、特異点近辺でのみ特異点回避動作のためにだけ移動させる方法によって対処することができる。あるいは、補助制御点を追加し、それに対しても指令することにより、対処することが可能である。
 また、機械構成の自由度が冗長でない場合であっても、いくつかの軸に対して直接指令値を与えることによって、連立方程式の式連立を省略することもできる。例えば、座標値が変化することにより、指定座標系に対する制御点の工具方向が変化するような回転軸を、工具方向の変化に寄与しない回転軸と区別するために、工具変化回転軸と呼ぶことにし、機械構成木の各ノードは工具変化回転軸であるか否かの情報を持つとする。また、ルートから制御点・座標系への各経路が[数15]の数式で表され、各経路に含まれる工具変化回転軸ノードの一覧が[数24]の数式であるとする。
Figure JPOXMLDOC01-appb-M000024
 また、制御点側の工具変化回転軸のうち、ルートから遠いものから順に第一、第二と順序を付け、その後座標系側の工具変化回転軸のうちルートから遠いものから順に第三、第四、と順序を付けることで、いかなる機械構成木に対しても厳密に工具変化回転軸の順序を定義できる。これに従い、xnを第一工具変化回転軸、ymを第二工具変化回転軸と呼ぶことにする。ここで、第一工具変化回転軸を表す識別子R1、第二工具変化回転軸を表す識別子R2を用いて、図34のように指令する。このように指定されたアドレスA、Bを用いることで、工具方向ベクトルではなく、工具変化回転軸の角度値を直接指令することができる。
 この場合、第一工具変化回転軸、第二工具変化回転軸の次の補間位置xn’,yn’は以下の式で求めることができる。
Figure JPOXMLDOC01-appb-M000025
 これにより、第一工具変化回転軸、第二工具変化回転軸のノード座標値は決まるため、工具方向ベクトルも決まる。そうすると、工具方向ベクトルに関して連立方程式を解く必要は無くなるため、以下の指令位置に関する連立方程式を解くだけでよくなる。
Figure JPOXMLDOC01-appb-M000026
 ただし、上式中において、ノードxn,ynの座標値は上記で求めた値を代入し、定数とみなして解く。
 上記のように、プログラム中の指令値として、特定のノードの座標値を直接指定できる。これにより、連立式の個数を減らすことが可能となる。
 〔10.実施例〕
 〔10.1 実施例1〕
 以下、図35~図41を参照することにより、実施例1について説明する。実施例1は、機械構成木において、3次元の回転誤差に係る誤差ノードを機械原点の隣りに挿入する実施例である。
 図35は、工作機械65における誤差の実測方法について説明する図である。図35に示すように、工作機械65の工具66の先端にミラー67を設置し、レーザー干渉計(不図示)でレーザーをミラー67に照射することにより、ミラー67の位置の誤差を実測する。
 ミラー67の位置の誤差は、並進誤差と回転誤差からなる。並進誤差は、図36に示すように、ミラー67の中心位置のズレに係る誤差であり、中心位置のオフセットとして実測される。一方で、回転誤差は、図37に示すように、ミラー67の姿勢に係る誤差であり、X軸回りの回転角、Y軸回りの回転角、Z軸回りの回転角として実測される。また、前記並進誤差と前記回転誤差は機械座標系上の差分値とする。
 ミラー67の並進誤差を表す並進誤差ベクトルは、ミラー67のオフセットの実測値(x,y,z)=(T,T,T)を用いることにより、以下の数式で求めることができる。
Figure JPOXMLDOC01-appb-M000027
 一方、ミラー67の回転誤差を表す回転誤差行列は、ミラー67のX軸回りの回転角a、Y軸回りの回転角b、Z軸回りの回転角cを用いることにより、回転角a,b,cが小さい場合には近似的に以下の数式で求めることができる。
Figure JPOXMLDOC01-appb-M000028
 これら、並進誤差ベクトルと回転誤差行列は、誤差情報として、誤差情報記憶部142に記憶される。また、機械座標系が誤差を観測した座標系として、誤差情報記憶部142に記憶される。
 次に、誤差情報記憶部142に記憶されているミラー位置での誤差を、誤差ノード生成部115により、誤差ノード挿入位置での誤差に変換する。なお、ここでは例として、工作機械65の機械原点68での誤差に変換するものとする。
 図38に示すように、機械原点68からミラー67の位置までのベクトルを、ここでは「誤差オフセットベクトル」と呼称する。前記誤差オフセットベクトルは機械構成木から計算可能である。このとき、図39に示す機械構成木において、ミラーに対応するノード352から、誤差オフセットベクトル分だけ離れたノードを、機械原点に対応するノード353の隣りに、誤差ノード354として追加することを想定する。
 図40に示すように、ミラー位置における並進誤差を、
Figure JPOXMLDOC01-appb-M000029
ミラー位置における回転誤差を
Figure JPOXMLDOC01-appb-M000030
機械原点位置における並進誤差を
Figure JPOXMLDOC01-appb-M000031
機械原点位置における回転誤差を
Figure JPOXMLDOC01-appb-M000032
誤差オフセットベクトルを
Figure JPOXMLDOC01-appb-M000033
とすると、誤差ノード生成部115は、以下の式を用いることにより、ミラー位置での誤差を、機械原点での誤差に変換し、機械原点での誤差に対応する誤差ノードを生成する。
Figure JPOXMLDOC01-appb-M000034
 上記の式は、機械構成木のノードに格納される位置・姿勢のうち、順キネマティクス変換において、座標値に位置の移動が先に計算される場合の式である。姿勢の回転が先に計算される場合の式へは
Figure JPOXMLDOC01-appb-M000035
で変換可能である。
 次に、誤差ノード追加部112は、機械構成木に対して、誤差ノード生成部115によって生成された誤差ノード354を、機械原点に対応するノード353の隣りに追加する。図41は、誤差ノード354が追加された後の、機械構成木を示す。
 最後に、制御装置100は、誤差ノード354が追加された機械構成木を用いて、モータ指令値を算出する。
 実施例1は、測定される誤差の原因が、軸毎に分離できない場合にでも誤差の補正を行うことが可能である。
 〔10.2 実施例2〕
 以下、図42及び図43を参照することにより、実施例2について説明する。実施例2は、機械構成木において、3次元の回転誤差に係る誤差ノードをミラー位置に挿入する実施例である。
 まず、実施例2においても、実施例1と同様に、並進誤差ベクトルと回転誤差行列とを、誤差情報として誤差情報記憶部142に記憶すると共に、誤差情報記憶部142に記憶されているミラー位置での誤差を、誤差ノード生成部115により誤差ノード挿入位置での誤差に変換する。
 
 実施例2においては、これと並行して、誤差ノード生成部115により、ミラーオフセットに対応する2つのノードである
Figure JPOXMLDOC01-appb-M000036
及び
Figure JPOXMLDOC01-appb-M000037
を生成する。
 ここで、「ミラーオフセット」とは、図42に示すようにミラー67の中心位置から工具66の根元位置までのベクトルのことである。すなわち、誤差を測定した位置から誤差ノードを挿入するまでベクトルであり、上記の「実施例1」の誤差オフセットベクトルに相当する。
 次に、誤差ノード追加部112は、機械構成木に対して、誤差ノード生成部115によって生成された誤差ノード354と、2つのミラーオフセットノード355A及び355Bを追加する。より詳細には、図43に示すように、2つのミラーオフセットノード355A及び355Bを、工具に対応するノード356の隣りに追加し、2つのミラーオフセットノード355A及び355Bの間に、誤差ノード354を追加する。
 これら、355A、354、355Bを結合したノードは、誤差ノード挿入位置357Zでの誤差に相当する。
 最後に、制御装置100は、誤差ノード354と2つのミラーオフセットノード355A及び355Bが追加された機械構成木を用いて、モータ指令値を算出する。
 実施例2においては、測定した誤差を誤差ノード挿入位置からの相対値に変換する必要が無いため、手間が減る。それは、355A及び355Bを機械構成木に追加することにより、前記「実施例1」の数33に相当する計算が移動指令部で行われるからである。
 〔10.3 実施例3〕
 以下、図44及び図45を参照することにより、実施例3について説明する。実施例3は、機械構成木において、各軸の直角度誤差に対応する誤差ノードを、各軸に対応する誤差ノードの1つ機械原点側に挿入する実施例である。
 一般的な手法として、ボールバー(ball bar)を用いてZ-X軸周りの直角度誤差であるWzx、Y-Z軸周りの直角度誤差であるWyz、X-Y軸周りの直角度誤差であるWxyを測定することができる。測定した情報を誤差情報として、誤差情報記憶部142に記憶する。
 なお、ボールバーとは、変位計を内蔵した伸縮自在な棒の両端に取り付けた二つの球の間の相対変位を測定する測定器である。図44は各軸周りの直角度誤差を示す。
 次に、誤差ノード生成部115で、誤差情報記憶部142に記憶された各直角度誤差を、以下の数式を用いることにより、各軸の直角度誤差行列に変換する。
Figure JPOXMLDOC01-appb-M000038
 次に、誤差ノード追加部112は、機械構成木に対して、誤差ノード生成部115によって生成された直角度誤差行列である誤差ノード354A~354Cを追加する。より詳細には、図45に示すように、誤差ノード追加部112は、機械構成木において、
Figure JPOXMLDOC01-appb-M000039
に対応する誤差ノード354Aを、機械原点から見て、Z軸に対応するノード357Zの手前に追加する。同様に、誤差ノード追加部112は、機械構成木において、
Figure JPOXMLDOC01-appb-M000040
に対応する誤差ノード354Bを、機械原点から見て、Y軸に対応するノード357Yの手前に追加する。同様に、誤差ノード追加部112は、機械構成木において、
Figure JPOXMLDOC01-appb-M000041
に対応する誤差ノード354Cを、機械原点から見て、X軸に対応するノード357Xの手前に追加する。
 最後に、制御装置100は、誤差ノード354A~354Cが追加された機械構成木を用いて、モータ指令値を算出する。
 実施例3においては、誤差の原因となる軸の直前に誤差ノード354を挿入するため、実際の工作機械を、最も忠実に再現した機械構成木を生成することが可能となる。
 〔10.4 実施例4〕
 以下、図46~図48を参照することにより、実施例4について説明する。実施例4は、機械構成木に対して、工作機械の機上で測定した誤差に係る誤差ノードを挿入する実施例である。
 まず、図46に示すようなアーティファクト75を準備する。ここで、「アーティファクト(artifact)」とは、計測用の基準形状を有する人工物のことである。図46に示す例において、アーティファクト75は、球76~球79の4つの球の各々が三角錐の頂点となる形状を有する。また、球76から球77へのベクトルのC軸ノード上の座標系での真値を、
Figure JPOXMLDOC01-appb-M000042
球76から球78へのベクトルのC軸ノード上の座標系での真値を、
Figure JPOXMLDOC01-appb-M000043
球76から球79へのベクトルのC軸ノード上の座標系での真値を、
Figure JPOXMLDOC01-appb-M000044
とする。
 次に、図47に示すように、アーティファクト75を、工作機械が備えるテーブル80の上に設置して、工作機械の工具先端に取り付けたプローブ90で、球76~79の座標と測定する。ここで、「プローブ」とは、テーブル80に設置されるワークの原点、位置、姿勢等を測定する測定器のことである。また、テーブル80の中心軸を、ここではC軸とする。
 球76~79の座標の測定値から得られる、球76から球77へのベクトルの測定値を、
Figure JPOXMLDOC01-appb-M000045
球76から球78へのベクトルのC軸ノード上の座標系での測定値を、
Figure JPOXMLDOC01-appb-M000046
球76から球79へのベクトルのC軸ノード上の座標系での測定値を、
Figure JPOXMLDOC01-appb-M000047
とする。
 誤差情報記憶部142は、誤差情報として、これらの真値及び測定値を記憶する。
 次に、誤差ノード生成部115は、以下の数式を用いることにより、誤差情報記憶部142に記憶された各測定値を真値に変換する行列
Figure JPOXMLDOC01-appb-M000048
を求め、これに対応する誤差ノード354を生成する。
Figure JPOXMLDOC01-appb-M000049
 次に、誤差ノード追加部112は、機械構成木に対して、誤差ノード生成部115によって生成された誤差ノード354を追加する。より詳細には、図48に示すように、誤差ノード追加部112は、ワークに対応するノード359とC軸に対応するノード360との間に、
Figure JPOXMLDOC01-appb-M000050
に対応する誤差ノード354を追加する。
 最後に、制御装置100は、誤差ノード354が追加された機械構成木を用いて、モータ指令値を算出する。
 実施例4は、テーブル座標系での誤差を測定するものであり、工具の代わりに接触プローブを取り付けることにより誤差測定が可能である。このため、レーザー干渉計のような高価なセンサは必要ではない。また、アーティファクトは真値が分かるものであれば形状は問わないため、ユーザが加工したワークを3次元座標測定機で測定して、それを真値として補正する、すなわち、検査工程の結果を加工工程にフィードバックしたり、あるいは、ワークの設置位置誤差を測定し補正したりする等の使い方も可能である。
 〔11.本実施形態が奏する効果〕
 本実施形態に係る制御装置は、制御対象の機械構成を、構成要素をノードとするグラフ形式で表現し、保持する制御装置(例えば、上記の「制御装置100」)であって、前記機械構成のグラフの各ノードに対し、制御点及び座標系をノードとして挿入する制御点座標系挿入部(例えば、上記の「制御点座標系挿入部113」)と、前記挿入された前記制御点及び前記座標系に識別子を割り当てる識別子割り当て部(例えば、上記の「識別子割り当て部114」)と、前記制御対象における機械誤差に係る情報と、前記機械誤差を観測した座標系に割り当てられた識別子とを記憶する誤差情報記憶部(例えば、上記の「誤差情報記憶部142」)と、前記機械誤差を等価な誤差ノードに変換する誤差ノード生成部(例えば、上記の「誤差ノード生成部115」)と、前記機械構成のグラフにおいて、前記誤差ノードを追加する誤差ノード追加部(例えば、上記の「誤差ノード追加部112」)と、前記機械構成のグラフに対し、前記識別子により制御点及び座標系を1組以上指定する制御点座標系指定部(例えば、上記の「制御点座標系指定部116」」)と、前記制御点座標系指定部により指定された前記制御点と前記座標系により、プログラム中で指令された1つ以上の指令値が、どの制御点に対するどの座標系上の座標値に対応するか判断する指令値判断部と、前記制御点の前記座標値が前記指令値となるように、前記制御点の移動を指令する移動指令部(例えば、上記の「移動指令部118」)と、を備える。
 あるいは、本実施形態に係る制御装置100は、制御対象の機械構成を、構成要素をノードとするグラフ形式で表現し、保持する制御装置(例えば、上記の「制御装置100」)であって、前記機械構成のグラフの各ノードに対し、制御点及び座標系を情報として持たせる制御点座標系挿入部(例えば、上記の「制御点座標系挿入部113」)と、前記挿入された前記制御点及び前記座標系に識別子を割り当てる識別子割り当て部(例えば、上記の「識別子割り当て部114」)と、前記制御対象における機械誤差に係る情報と、前記機械誤差を観測した座標系に割り当てられた識別子とを記憶する誤差情報記憶部(例えば、上記の「誤差情報記憶部142」)と、前記機械誤差を等価な誤差ノードに変換する誤差ノード生成部(例えば、上記の「誤差ノード生成部115」)と、前記機械構成のグラフにおいて、前記誤差ノードを追加する誤差ノード追加部(例えば、上記の「誤差ノード追加部112」)と、前記機械構成のグラフに対し、前記識別子により制御点及び座標系を1組以上指定する制御点座標系指定部(例えば、上記の「制御点座標系指定部116」」)と、前記制御点座標系指定部により指定された前記制御点と前記座標系により、プログラム中で指令された1つ以上の指令値が、どの制御点に対するどの座標系上の座標値に対応するか判断する指令値判断部と、前記制御点の前記座標値が前記指令値となるように、前記制御点の移動を指令する移動指令部(例えば、上記の「移動指令部118」)と、を備える。
 これらにより、構成要素をノードとするグラフを用いることで、任意の機械構成を有する工作機械における誤差を補正することが可能となる。
 以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
 制御装置100による制御方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータ(制御装置100)にインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。更に、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータ(制御装置100)に提供されてもよい。
 11 CPU
 100 数値制御装置
 111 グラフ生成部
 112 誤差ノード追加部
 113 制御点座標系挿入部
 114 識別子割り当て部
 115 誤差ノード生成部
 116 制御点座標系指定部
 117 指令値判断部
 118 移動指令部
 141 機械構成グラフ記憶部
 142 誤差情報記憶部
 181 連立方程式生成部
 182 連立方程式求解部
 183 移動パルス生成部

Claims (4)

  1.  制御対象の機械構成を、構成要素をノードとするグラフ形式で表現し、保持する制御装置であって、
     前記機械構成のグラフの各ノードに対し、制御点及び座標系をノードとして挿入する制御点座標系挿入部と、
     前記挿入された前記制御点及び前記座標系に識別子を割り当てる識別子割り当て部と、
     前記制御対象における機械誤差に係る情報と、前記機械誤差を観測した座標系に割り当てられた識別子とを記憶する誤差情報記憶部と、
     前記機械誤差を等価な誤差ノードに変換する誤差ノード生成部と、
     前記機械構成のグラフにおいて、前記誤差ノードを追加する誤差ノード追加部と、
     前記機械構成のグラフに対し、前記識別子により制御点及び座標系を1組以上指定する制御点座標系指定部と、
     前記制御点座標系指定部により指定された前記制御点と前記座標系により、プログラム中で指令された1つ以上の指令値が、どの制御点に対するどの座標系上の座標値に対応するか判断する指令値判断部と、
     前記制御点の前記座標値が前記指令値となるように、前記制御点の移動を指令する移動指令部と、を備える制御装置。
  2.  制御対象の機械構成を、構成要素をノードとするグラフ形式で表現し、保持する制御装置であって、
     前記機械構成のグラフの各ノードに対し、制御点及び座標系を情報として持たせる制御点座標系挿入部と、
     前記挿入された前記制御点及び前記座標系に識別子を割り当てる識別子割り当て部と、
     前記制御対象における機械誤差に係る情報と、前記機械誤差を観測した座標系に割り当てられた識別子とを記憶する誤差情報記憶部と、
     前記機械誤差を等価な誤差ノードに変換する誤差ノード生成部と、
     前記機械構成のグラフにおいて、前記誤差ノードを追加する誤差ノード追加部と、
     前記機械構成のグラフに対し、前記識別子により制御点及び座標系を1組以上指定する制御点座標系指定部と、
     前記制御点座標系指定部により指定された前記制御点と前記座標系により、プログラム中で指令された1つ以上の指令値が、どの制御点に対するどの座標系上の座標値に対応するか判断する指令値判断部と、
     前記制御点の前記座標値が前記指令値となるように、前記制御点の移動を指令する移動指令部と、を備える制御装置。
  3.  前記機械構成のグラフは、複数の軸をまとめて1つにしたユニットを構成要素として含
    むことができる、請求項1又は2のいずれか1項に記載の制御装置。
  4.  ユーザが記述したスクリプトを解析することにより、前記ユニットを定義し、定義され
    た前記ユニットを前記機械構成のグラフの構成要素として含むことができる、請求項3に
    記載の制御装置。
PCT/JP2021/003743 2020-02-04 2021-02-02 制御装置 Ceased WO2021157574A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021526389A JP6940724B1 (ja) 2020-02-04 2021-02-02 制御装置
US17/789,418 US12461503B2 (en) 2020-02-04 2021-02-02 Control device
CN202180012329.8A CN115066660B (zh) 2020-02-04 2021-02-02 控制装置
DE112021000864.1T DE112021000864B4 (de) 2020-02-04 2021-02-02 Steuerung und Konfiguration einer Steuerung

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020017342 2020-02-04
JP2020-017342 2020-02-04

Publications (1)

Publication Number Publication Date
WO2021157574A1 true WO2021157574A1 (ja) 2021-08-12

Family

ID=77200196

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/003743 Ceased WO2021157574A1 (ja) 2020-02-04 2021-02-02 制御装置

Country Status (5)

Country Link
US (1) US12461503B2 (ja)
JP (1) JP6940724B1 (ja)
CN (1) CN115066660B (ja)
DE (1) DE112021000864B4 (ja)
WO (1) WO2021157574A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018120543A (ja) * 2017-01-27 2018-08-02 ファナック株式会社 数値制御装置
JP2019012342A (ja) * 2017-06-29 2019-01-24 ファナック株式会社 仮想オブジェクト表示システム
JP6549683B2 (ja) * 2016-12-12 2019-07-24 ファナック株式会社 制御装置
JP2019212041A (ja) * 2018-06-05 2019-12-12 ファナック株式会社 仮想オブジェクト表示システム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS515024B2 (ja) * 1972-07-13 1976-02-17
JPH07141317A (ja) * 1993-09-22 1995-06-02 Sanyo Electric Co Ltd 階層型ツリー構造を有するニューロファジィ知識獲得装置
JP5105024B2 (ja) 2010-02-25 2012-12-19 三菱電機株式会社 数値制御装置
KR101126808B1 (ko) * 2010-03-02 2012-03-23 경북대학교 산학협력단 다축 제어 기계의 오차 평가 방법 및 장치
JP2012248098A (ja) * 2011-05-30 2012-12-13 Okuma Corp 機械の誤差補償値計算方法
JP5792251B2 (ja) * 2013-09-27 2015-10-07 ファナック株式会社 誤差補正量作成装置
JP6676286B2 (ja) * 2015-05-12 2020-04-08 キヤノン株式会社 情報処理方法、および情報処理装置
CN104950808B (zh) * 2015-07-20 2017-05-10 攀枝花学院 基于加强朴素贝叶斯网络的机床热误差补偿方法
US11402818B2 (en) * 2016-12-12 2022-08-02 Fanuc Corporation Numerical controller and data structure
JP6538761B2 (ja) * 2017-06-22 2019-07-03 ファナック株式会社 数値制御装置
CN109726066B (zh) * 2017-10-27 2022-06-24 伊姆西Ip控股有限责任公司 用于标识存储系统中的问题部件的方法和设备
CN108555908B (zh) * 2018-04-12 2020-07-28 同济大学 一种基于rgbd相机的堆叠工件姿态识别及拾取方法
CN108469783B (zh) * 2018-05-14 2021-02-02 西北工业大学 基于贝叶斯网络的深孔圆度误差预测方法
CN108873807B (zh) * 2018-07-12 2021-04-09 上海优尼斯工业服务有限公司 一种考虑加工稳定性的三轴数控机床精度评价方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6549683B2 (ja) * 2016-12-12 2019-07-24 ファナック株式会社 制御装置
JP2018120543A (ja) * 2017-01-27 2018-08-02 ファナック株式会社 数値制御装置
JP2019012342A (ja) * 2017-06-29 2019-01-24 ファナック株式会社 仮想オブジェクト表示システム
JP2019212041A (ja) * 2018-06-05 2019-12-12 ファナック株式会社 仮想オブジェクト表示システム

Also Published As

Publication number Publication date
US12461503B2 (en) 2025-11-04
DE112021000864T5 (de) 2022-11-17
CN115066660B (zh) 2025-08-22
CN115066660A (zh) 2022-09-16
JP6940724B1 (ja) 2021-09-29
DE112021000864B4 (de) 2025-09-11
US20230050158A1 (en) 2023-02-16
JPWO2021157574A1 (ja) 2021-08-12

Similar Documents

Publication Publication Date Title
CN108227631B (zh) 数值控制装置以及数据结构
JP6549683B2 (ja) 制御装置
TWI381256B (zh) 用於控制一工具機系統之複數個可移動軸之移動之系統、方法及電腦可讀媒體
US11958190B2 (en) Information processing method and information processing apparatus
US8000838B2 (en) Systems and methods that facilitate motion control through coordinate system transformations
JP5620825B2 (ja) 複合機械加工の方法および装置
JP6806736B2 (ja) 位置情報表示システム
CN108363360B (zh) 数值控制装置
CN112987650B (zh) 控制系统
JP6781201B2 (ja) 仮想オブジェクト表示システム
JP4644490B2 (ja) ツール運動の直接制御のために複雑なn曲線を描写するためのシステムおよび方法
JP6538761B2 (ja) 数値制御装置
JP2021151696A (ja) 情報処理方法、情報処理装置、ロボット装置、情報処理プログラム、およびコンピュータ読み取り可能な記録媒体
JP6900533B2 (ja) 情報処理方法、情報処理装置、ロボット装置、情報処理プログラム、およびコンピュータ読み取り可能な記録媒体
JP6940724B1 (ja) 制御装置
TW202011131A (zh) 加工傾斜平面的多軸工具機的程式碼產生方法及其裝置
CN111650887A (zh) 控制系统
WO2024185132A1 (ja) 数値制御装置
CN121374077A (zh) 机器人连杆组装方法、电子设备及存储介质
da Motta et al. An off-line robot programming system including workcell and robot calibration
JPH0735031B2 (ja) ロボツトのオフライン・プロミラミング装置

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2021526389

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 21751222

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 21751222

Country of ref document: EP

Kind code of ref document: A1

WWG Wipo information: grant in national office

Ref document number: 202180012329.8

Country of ref document: CN

WWG Wipo information: grant in national office

Ref document number: 112021000864

Country of ref document: DE

WWG Wipo information: grant in national office

Ref document number: 17789418

Country of ref document: US