WO2020066949A1 - ロボットの経路決定装置、ロボットの経路決定方法、プログラム - Google Patents

ロボットの経路決定装置、ロボットの経路決定方法、プログラム Download PDF

Info

Publication number
WO2020066949A1
WO2020066949A1 PCT/JP2019/037124 JP2019037124W WO2020066949A1 WO 2020066949 A1 WO2020066949 A1 WO 2020066949A1 JP 2019037124 W JP2019037124 W JP 2019037124W WO 2020066949 A1 WO2020066949 A1 WO 2020066949A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
interference
point
candidate
shape data
Prior art date
Application number
PCT/JP2019/037124
Other languages
English (en)
French (fr)
Inventor
タン ナット ドアン
吉田 昌弘
小菅 昌克
常田 晴弘
Original Assignee
日本電産株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電産株式会社 filed Critical 日本電産株式会社
Priority to JP2020549167A priority Critical patent/JP7259860B2/ja
Publication of WO2020066949A1 publication Critical patent/WO2020066949A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/06Safety devices
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/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 programme data in numerical form
    • G05B19/4093Numerical 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 programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine

Definitions

  • the present invention relates to a robot path determination device, a robot path determination method, and a program.
  • Japanese Patent Application Laid-Open Publication No. 2008-254172 discloses a programming unit which has a storage unit for storing information on a teaching point of a robot and information on a surrounding environment model of the robot and creates a robot program offline, A robot program creation device including a control unit is described.
  • the robot control unit controls the operation of the robot, moves the robot to an actual teaching point, captures information on the actual teaching point, and teaches the teaching point on the robot program.
  • Japanese Patent Application Laid-Open Publication No. 2014-024162 discloses that when a movable section including an arm and an end effector provided at the tip of the arm is moved along a plurality of teaching points, It is described that it is determined whether or not the movable part and the obstacle interfere with each other based on the position information and the position information of the obstacle.
  • access restriction information and separation restriction information are determined. The teaching point is added between the first teaching point and the second teaching point based on.
  • an object of the present invention is to be able to generate a motion path of a robot that avoids interference with a simple operation and in a short time.
  • An exemplary first invention of the present application is a storage unit that stores at least one of three-dimensional data of a robot, a work to be worked by the robot, and a peripherally arranged object arranged around the robot.
  • a data creation unit for creating an approximate shape data of the three-dimensional data by arranging one or a plurality of spheres in the three-dimensional data stored in the storage unit so as to cover an outer surface of the three-dimensional data;
  • an interference determination unit that determines whether or not interference of the approximate shape data occurs, and when it is determined that interference occurs by the interference determination unit,
  • a candidate point setting unit that sets a plurality of candidate points that become candidates for waypoints through which the robot passes on the surface of a sphere having a larger diameter than the sphere in which interference has occurred among the approximate shape data
  • a candidate point where interference of the approximate shape data does not occur when the robot is moved along the path from the start point to the candidate point and the path from the candidate point to the end point, among the plurality of candidate points
  • a candidate point where
  • a motion path of a robot that avoids interference can be generated with a simple operation and in a short time.
  • FIG. 1 is a diagram illustrating an overall configuration of a route determination device according to an embodiment.
  • FIG. 2 is a diagram illustrating a hardware configuration of each device included in the route determination device according to the embodiment.
  • FIG. 3 is a diagram illustrating a three-dimensional CAD window according to an example of the embodiment.
  • FIG. 4 is a diagram illustrating a teaching window according to an example of the embodiment.
  • FIG. 5 is a diagram for conceptually explaining a job.
  • FIG. 6 is a diagram for conceptually explaining a task.
  • FIG. 7 is a diagram illustrating transition of the teaching window according to an example of the embodiment.
  • FIG. 8 is a diagram illustrating a display example of the task list.
  • FIG. 9 is a diagram illustrating a display example of the task list.
  • FIG. 1 is a diagram illustrating an overall configuration of a route determination device according to an embodiment.
  • FIG. 2 is a diagram illustrating a hardware configuration of each device included in the route determination device according to the embodiment.
  • FIG. 10 is a diagram illustrating a three-dimensional model of a robot and approximate shape data at a different level.
  • FIG. 11 is a diagram conceptually showing a data configuration of the robot and the parts.
  • FIG. 12 is a diagram illustrating transition of the teaching window according to an example of the embodiment.
  • FIG. 13 is a diagram illustrating a method of determining interference between spheres.
  • FIG. 14 is a diagram illustrating a display mode when a three-dimensional model of a robot and a part interfere with each other.
  • FIG. 15 is a diagram illustrating transition of the teaching window according to an example of the embodiment.
  • FIG. 16 is an example of a flowchart of the interference determination according to the embodiment.
  • FIG. 17 is an example of a flowchart showing a method for determining a waypoint of the robot.
  • FIG. 18 is a diagram illustrating setting of candidate points.
  • FIG. 19 is a diagram illustrating a display example of candidate points.
  • FIG. 20 is a diagram illustrating a case where interference occurs on a route from a determined via point to an end point.
  • FIG. 21 is a diagram illustrating a case where a new candidate point is set on the route from the determined waypoint to the end point.
  • FIG. 22 is a diagram illustrating a preferable example of setting candidate points.
  • FIG. 23 is a functional block diagram of the route determination device according to the embodiment.
  • FIG. 24 is a modification of the flowchart of FIG.
  • the element work of the robot is referred to as a “task”.
  • the elemental work of the robot means a work of a minimum unit performed by the robot in a series of works such as “take” and “place” an object.
  • the term “parts” means an object to be worked by the robot, and is not limited to an object held by the robot (for example, a work in a factory), and a peripherally arranged object (for example, the robot is placed around the robot). Shelves for placing objects to be grasped).
  • the “reference point” of the robot means a position of the robot which is a reference point of the robot teaching point such as an approach point, a target point, and a departure point of the robot described later, and is, for example, an action point (TCP: Tool Center Point) of the robot. is there.
  • the robot path determination device is a device that determines by simulation whether there is interference between the robot itself (for example, interference between a hand and an arm) or between a robot and a component.
  • the robot path determination device can support offline teaching without connecting to the actual robot.
  • FIG. 1 is a diagram illustrating an overall configuration of a route determination device 1 according to the present embodiment.
  • FIG. 2 is a diagram illustrating a hardware configuration of each device included in the route determination device 1 of the present embodiment.
  • the route determination device 1 includes an information processing device 2 and a robot control device 3.
  • the information processing device 2 and the robot control device 3 are communicably connected by, for example, an Ethernet (registered trademark) cable EC.
  • the information processing device 2 is a device for teaching an operation to a robot installed on a factory line.
  • the information processing apparatus 2 is provided for performing offline teaching by an operator, and is disposed, for example, at a position away from a factory where the robot is installed (for example, at a work place of the operator).
  • the robot control device 3 executes a robot program transmitted from the information processing device 2.
  • the robot control device 3 is not connected to the robot.
  • the robot control device 3 it is possible to send a control pulse corresponding to the execution result of the robot program to the robot and operate the robot. Therefore, the robot control device 3 is preferably disposed near the actual robot.
  • the information processing device 2 includes a control unit 21, a storage 22, an input device 23, a display device 24, and a communication interface unit 25.
  • the control unit 21 includes a CPU (Central Processing Unit), a ROM (Read Only Memory), and a RAM (Random Access Memory).
  • the ROM stores a three-dimensional CAD application program and teaching software.
  • the CPU loads the three-dimensional CAD application software (hereinafter, referred to as “CAD software”) and the teaching software on the ROM into the RAM and executes the software.
  • the teaching software and the CAD software execute processing in cooperation through an API (Application Program Interface).
  • the control unit 21 causes the display device 24 to continuously display images in frame units in order to perform moving image reproduction by CAD software.
  • the storage 22 is a large-capacity storage device such as a hard disk drive (HDD) or a solid state drive (SSD), and is configured to be sequentially accessible by the CPU of the control unit 21. As described later, the storage 22 stores a robot program 221, a hierarchical list database 222, a three-dimensional model database 223, an execution log database 224, and an approximate shape model database 225 (for these databases, see FIG. 23). Is stored.
  • the hierarchical list database 222 includes data constituting a hierarchical list described later.
  • the three-dimensional model database 223 includes data of a three-dimensional model referred to when executing the CAD software.
  • the three-dimensional model database 223 includes data of a three-dimensional model of a robot and a part (for example, a pen, a cap, a product, a pen tray, a cap tray, and a product tray described later).
  • the execution log database 224 includes execution log data acquired from the robot controller 3.
  • the execution log data includes an execution result of the robot program and robot state data described later.
  • the robot state data is used for reproducing a motion of the robot by a moving image (animation) in a virtual space by three-dimensional CAD, and for performing an interference determination described later.
  • the approximate shape model database 225 the approximate shape data is associated with a three-dimensional model (an example of three-dimensional data) on which the approximate shape data is based.
  • the approximate shape data is data obtained by approximating a three-dimensional model by a set of spheres, as described later.
  • the storage 22 is an example of a storage unit.
  • the input device 23 is a device for receiving an operation input by an operator, and includes a pointing device.
  • the display device 24 is a device for displaying an execution result of the teaching software and the CAD software, and includes a display driving circuit and a display panel.
  • the communication interface unit 25 includes a communication circuit for performing Ethernet communication with the robot control device 3.
  • the robot control device 3 includes a control unit 31, a storage 32, and a communication interface unit 33.
  • the control unit 31 includes a CPU, a ROM, a RAM, and a control circuit.
  • the control unit 31 executes the robot program received from the information processing device 2 and outputs execution log data.
  • the execution log data includes the execution result of the robot program and the robot state data of the robot that executes the work described in the robot program.
  • the storage 32 has model data (for example, link parameters, etc.) of the manipulator (the robot body including the arm 51 and the hand 52) of the robot.
  • the control unit 31 executes a physical quantity (for example, joint angle, reference point, , Etc.). Such physical quantity data is included in the robot state data.
  • the storage 32 is a large-capacity storage device such as an HDD or an SSD, and is configured to be sequentially accessible by the CPU of the control unit 31.
  • the storage 32 stores a robot program transmitted from the information processing device 2 and execution log data, in addition to the data of the robot manipulator model.
  • the communication interface unit 33 includes a communication circuit for performing Ethernet communication with the information processing device 2.
  • the operator performs offline teaching on the robot using the information processing device 2 to create a robot program.
  • the information processing apparatus 2 executes CAD software and teaching software.
  • the execution result of the CAD software is displayed in the CAD window, and the execution result of the teaching software is displayed in the teaching window.
  • the operator causes the information processing device 2 to display both the CAD window and the teaching window, or displays the CAD window and the teaching window on the information processing device 2 while switching between the CAD window and the teaching window. I do.
  • FIG. 3 shows a CAD window W1 according to an example of the present embodiment.
  • FIG. 3 shows an image in which a robot R, a pen tray 11, a cap tray 12, a jig 13, and a product tray 14 are arranged in a virtual space on a table TL (hereinafter referred to as “CAD” as appropriate).
  • Image a virtual space on a table TL (hereinafter referred to as “CAD” as appropriate).
  • Image is displayed.
  • the robot R performs a series of operations for fitting a cap to the pen and assembling a product (a completed product in a state where the cap is fitted to the pen).
  • a pen group P composed of a plurality of pens is arranged on the pen tray 11, and a cap group C composed of a plurality of caps is arranged on the cap tray 12.
  • the jig 13 is a member for the robot R to temporarily place a pen and fit a cap.
  • the product tray 14 is a member for placing products.
  • each pen included in the pen group P, each cap included in the cap group C, the pen tray 11, the cap tray 12, the jig 13, and the product tray 14 are work targets of the robot R. It is an example of a part.
  • a product in which a cap is fitted to a pen is also an example of a component.
  • Each pen, each cap, and a product in which the cap is fitted to the pen are examples of a work.
  • the pen tray 11, the cap tray 12, the jig 13, and the product tray 14 are examples of peripheral components.
  • FIG. 4 shows a teaching window W2 according to an example of the present embodiment. Displayed in the teaching window W2 is a robot-type list included in the CAD image of FIG. 3 and a hierarchical list indicating a hierarchical relationship between components.
  • the teaching software can create a hierarchical list in cooperation with the CAD software.
  • a tree-structured data format is prepared by the teaching software as a hierarchical list.
  • the operator performs an operation of dragging a robot R and a part in the CAD image to a desired node in the data format of the tree structure in a state where the CAD window and the teaching window are displayed with the pointing device selected.
  • the hierarchical list can be completed by sequentially performing this operation on all parts necessary for teaching the robot R.
  • the name of each node displayed in the hierarchical list the name of the original three-dimensional model may be applied as it is, or the name may be changed later.
  • FIG. 3 illustrates a CAD image in the case where there is one robot, but when there are two or more robots, the two or more robots can be registered in a hierarchical list.
  • the nodes 61 to 63 mean the following contents.
  • Node 61 (Pen): Hand corresponding to the work of holding the pen -Node 62 (Cap): Hand corresponding to the work of holding the cap Node 63 (Pen_with_Cap): A hand corresponding to the operation of gripping the pen with the cap fitted
  • a right-click operation is performed on any of the nodes 61 to 63 and “hand sequence operation” is selected
  • settings related to the hand sequence such as an actuation method (single solenoid or double solenoid, etc.) and a sensor type are performed. be able to. Since the hand sequence depends on the components held by the hand 52 of the robot R, it is set for each component held by the hand 52. If a task described later is created when a hand sequence is not set, a warning display may be output to the display device 24 because a program based on the task cannot be executed.
  • Components include jigs (JIG), pen trays (PenTray), cap trays (CapTray), product trays (ProductTray), pens (Pen1, Pen2, ..., Pen12), caps (Cap1, Cap2, ..., Cap12). ) And products (PenProduct1, PenProduct2,..., PenProduct12).
  • JIG jigs
  • pen trays PenTray
  • CapTray cap trays
  • ProductTray product trays
  • pens Pen1, Pen2, ..., Pen12
  • caps Cap1, Cap2, ..., Cap12
  • PenProduct1, PenProduct2,..., PenProduct12 jigs
  • Pen12 are provided below the nodes of the pen tray (PenTray). Nodes corresponding to caps Cap1, Cap2,..., Cap12 are provided below the nodes of the cap tray (CapTray). Below the nodes of the product tray (ProductTray), nodes corresponding to the products PenProduct1, PenProduct2,..., PenProduct12 are provided.
  • the robot R in the hierarchical list (Robot_R in FIG. 4) and the parts (jig (JIG), pen tray (PenTray), cap tray (CapTray), product tray (ProductTray), pens Pen1, @ Pen2, ..., Pen12, Cap12, Cap12,..., Cap12, and the products PenProduct1,... PenProduct2,..., PenProduct12) are in a state of being associated with the corresponding three-dimensional model data. Therefore, even if there is a change in the three-dimensional model of the robot R and the parts in the hierarchical list after the hierarchical list is created, it is not necessary to register the three-dimensional model again in the hierarchical list.
  • FIG. 5 is a diagram for conceptually explaining a job.
  • FIG. 6 is a diagram for conceptually explaining a task.
  • a job is a series of operations performed by the robot R.
  • the task means an element work which is a minimum unit work performed by the robot R in a series of works as described above.
  • the period corresponding to the job (JOB), a plurality of tasks T 1, T 2, ..., a period corresponding to T n-1, T n, between the robot R task Movement (hereinafter, referred to as “movement between tasks” as appropriate).
  • a plurality of tasks are defined for a job performed by the robot R.
  • Each task includes a plurality of motions (meaning “the motion of the robot R”) M 1 to M n .
  • the task may include a hand sequence (HS) in addition to the motion.
  • the hand sequence is a series of processes for grasping a component by the hand 52 of the robot R.
  • a standby time WT due to an interlock or the like described later may be set between adjacent motions.
  • a line with an arrow conceptually shows the trajectory of the hand 52 of the robot R.
  • the trajectory includes approach points AP1 and AP2, which are passing points before reaching the target point TP of the task, a target point TP, and departure points DP1 and DP2 which are passing points after reaching the target point TP.
  • the target point TP indicates the position of the component that is the target of the task.
  • the operation of the robot R before reaching the approach point AP1 corresponds to movement between tasks (that is, movement between the previous task and the task illustrated in FIG. 6).
  • the movement of the robot R after the departure point DP2 corresponds to movement between tasks (that is, movement between the task shown in FIG. 6 and the next task).
  • the operation of the robot R from the approach point AP1 to the departure point DP2 corresponds to one task, and the movement of the robot R between adjacent points in the task corresponds to one motion.
  • the robot program for executing the task may include information on at least one of the target point TP, the approach point AP, and the departure point DP, in addition to the information on the content of the task.
  • FIG. 6 illustrates a case where interlocks IL1 and IL2 are set at approach points AP1 and AP2, respectively.
  • the interlock controls the operation of the robot R at at least one of the target point TP, the approach point AP, and the departure point DP until a predetermined signal is input in order to avoid interference with another robot or the like. This is the process of waiting.
  • the task may include information on the interlock setting, including the setting of the interlock and the timeout value of the standby time due to the interlock.
  • FIG. 7 is a diagram illustrating transition of the teaching window according to an example of the present embodiment.
  • the operator points to any one of the nodes 61 to 63 of the hand (Hand) of the robot R (Robot_R) included in the robot area RA. Select on the device, right-click, and select "Create Task". That is, the node is selected from the objects to be held by the hand of the robot R in the task based on the operation input of the operator.
  • the teaching window W3 is a screen for performing detailed setting of a task, and displays items such as a task name (Name), a task type (Function), and a target of the task (Target).
  • a task name Name
  • a task type Function
  • a target of the task Target
  • the node of the target in the teaching window W3 is selected by left-clicking. Is input.
  • one of a plurality of preset task types for example, pick (Pickup), place (Place), etc.
  • a part to be worked on is selected with the pointing device from the part area PA of the hierarchical list and a left-click operation is performed, so that the selected part is added to the item of the target in the teaching window W3. Is entered.
  • the name of the task is automatically determined based on the data and displayed.
  • the node 61 in the robot area RA of the hierarchical list shown in FIG. Right-click on the pointing device and select "Create Task".
  • the pen tray (Target) in the teaching window W3 is displayed. PenTray) is input.
  • “Pick up” is selected from a plurality of task type candidates.
  • a task program named “Pickup_Pen1_From_PenTray” is created corresponding to the task “Pen Pen1 from pen tray”.
  • the operator can intuitively specify a part (here, “Pen Pen1”) to be subjected to element work and a start point (for example, “pen tray”) or an end point of the element work on a hierarchical list.
  • a task program can be created.
  • the name of the task program is the work content of the task (for example, "Pickup"), the work target of the task (for example, "Pen Pen1”), the component that becomes the start point of the task (for example, "Pen Tray”), or the end point. Since the contents are automatically created so as to include the components, the contents of the task can be immediately known from the name of the task program.
  • the operator may operate the button b1 ("detailed setting") of the teaching window W3 to set one or more approach points and / or departure points.
  • the center of gravity of the part is set as the target point TP, and the center of gravity of the part is determined on a predetermined axis in the local coordinate system of the part ( For example, the approach point AP and the departure point DP may be set on the Z axis).
  • the motion parameter is a parameter relating to the movement of the hand 52 or the like of the robot R between adjacent approach points AP included in the task, between the approach point AP and the target point TP, and between the target point TP and the departure point DP. It is.
  • such parameters include a moving speed, an acceleration, an acceleration time, a deceleration time, a posture of the robot R, and the like.
  • motion parameter setting the motion parameters can be changed from default values.
  • the timeout value of the interlock standby time and the setting of the operation when the standby time exceeds the timeout value and an error is determined can be changed from the default values.
  • a button b2 (“Create”) is provided in the teaching window W3 of FIG. By operating the button b2 (“create”), the task set in the teaching window W3 is registered in a task list described later.
  • the task program corresponding to the task illustrated in FIG. 6 includes a plurality of functions described below, and each function is a program for causing the robot R to execute a motion corresponding to the task (hereinafter, appropriately referred to as a “motion program”). It has been described.
  • the following move (AP1) may be defined separately as movement between tasks.
  • Task list is information including a plurality of tasks included in a job performed by the robot R, and is information on a list of task program names corresponding to each of the plurality of tasks.
  • the tasks defined by the teaching window W3 for a specific job are sequentially registered in a task list corresponding to the job. It is preferable that the order of the plurality of tasks included in the task list indicates the execution order of the plurality of tasks in order to manage the job.
  • the teaching window W4 in FIG. 8 displays an example of a task list corresponding to a job (“Pen Assembly”), which is a series of operations of “assembling a product by putting a cap on a pen”.
  • An example of this task list includes the following six tasks (i) to (vi). In this case, a case is shown in which a task program with a name shown in parentheses is created by the teaching window W3 for creating a task program.
  • the operator can set the selected tasks in an arbitrary order in the task list by performing a drag operation in a state where one of the tasks is selected with the pointing device in the task list.
  • any one of “task editing”, “task addition”, and “task deletion” can be selected.
  • task edit the process returns to the teaching window W3 of the selected task, and information on the task can be changed.
  • add task read and insert the created task in the order immediately after the selected task, or return to the teaching window W3 to create and insert the task. can do.
  • delete task the selected task can be deleted from the task list. The task program is changed, added, or deleted according to the operation of the operator.
  • each task in the task list is associated with a development icon EI for displaying a plurality of motions included in each task.
  • a development icon EI for displaying a plurality of motions included in each task.
  • a plurality of motions included in the task corresponding to the operated expansion icon EI are displayed.
  • the teachings window W5 shown in FIG. 9 is displayed.
  • the motion name M 21 ⁇ M 25 is a name for identifying a plurality of motion of less included in the task T 2 is displayed in association with each other.
  • Motion name M 21 ... Movement to approach point AP2 (Approach_point_2)
  • Motion name M 22 ... operation up to the approach point AP1 (Approach_point_1)
  • Motion name M 23 ... Movement to target point TP (Target_point)
  • Motion name M 24 ... Hand operation (Hand-Open)
  • Motion name M 25 Operation up to departure point DP1 (Departure_point_1)
  • approximate shape data is created in association with a three-dimensional model of a robot and a part, and the storage 22 Is stored.
  • the approximate shape data is data obtained by approximating a three-dimensional model with a set of spheres so that the outer surface of the three-dimensional model is covered with a plurality of spheres in order to detect the presence or absence of interference between the three-dimensional models at high speed.
  • FIG. 10 illustrates a three-dimensional model of the robot and approximate shape data at a different level.
  • the approximate shape data of level 1, level 2, and level 3 indicate that the diameter of the sphere, which is the basic shape, decreases in order. Since the number of spheres included in the approximate shape data increases as the diameter of the sphere decreases, the level 3 approximate shape data is a model in which the outer surface of the three-dimensional model is accurately reproduced. Further, the level of the approximate shape data may be further increased by further reducing the diameter of the sphere.
  • the calculation time required for the interference determination takes a long time in the order of levels 1 to 3 of the approximate shape data.
  • the present embodiment is configured to perform the interference determination in a short time by performing the interference determination while sequentially increasing the approximate shape data from a low level to a high level, as described later.
  • Spherical data at different levels are managed in a tree structure for each approximate shape data. For example, two level 2 spheres are associated with one specific level 1 sphere in the approximate shape data, and four level 3 spheres are associated with the level 2 sphere. And so on.
  • FIG. 11 is a diagram conceptually showing a data configuration of the robot and the parts.
  • the three-dimensional model and the approximate shape data of levels 1 to 3 (L1 to L3) are associated with the robot R and each part constituting the hierarchical list.
  • a three-dimensional model of the robot R and each part, or approximate shape data associated with the three-dimensional model is arranged in a virtual space. You.
  • approximate shape data associated with two or more identical three-dimensional models is efficiently created. That is, when approximate shape data corresponding to any one of the three or more three-dimensional models is already created and included in the approximate shape model database 225, the approximate shape data is created.
  • the created approximate shape data is associated with the three-dimensional model that does not exist. For example, in the example shown in FIG. 11, when the approximate shape data for the three-dimensional model corresponding to the pen Pen1 has been created, the approximate shape data of the pen Pen1 is copied as the approximate shape data for the remaining pens Pen2 to Pen12. And associated with the three-dimensional model for the pens Pen2 to Pen12.
  • Each sphere forming the approximate shape data corresponding to the robot R has local coordinates, or the local coordinates are referred to.
  • the local coordinates of each sphere of the approximate shape data corresponding to the robot R are the same as each link coordinate system of the robot R.
  • the virtual space of the approximate shape data corresponding to the three-dimensional model is changed according to the change in the position of the three-dimensional model in the virtual space. Is performed (for example, at every timing of a predetermined period for performing the interference check). At this time, the position of the sphere is updated using the local coordinates set for each sphere in the approximate shape data.
  • the homogeneous transformation matrices between adjacent link coordinate systems with respect to the reference coordinates (robot coordinates) of the robot R are represented by T 1 , T 2 , T 3 , T 4 , T 5 , T Assuming that 6 , each homogeneous transformation matrix is obtained from the angle of each joint.
  • the coordinates of the origin of the sphere in the updated robot coordinate system are the same as the coordinates of the origin of the sphere in the robot coordinate system before the update, and the homogeneous transformation matrices T 1 , T 2 , T 3 , It is calculated by multiplying one or more matrices corresponding to the link to which the sphere belongs among T 4 , T 5 , and T 6 .
  • FIG. 12 is a diagram illustrating transition of the teaching window according to an example of the embodiment.
  • FIG. 13 is a diagram illustrating a method of determining interference between spheres.
  • FIG. 14 is a diagram illustrating a display mode when a three-dimensional model of a robot and a part interfere with each other.
  • the intra-task interference check is to determine whether or not interference between the robot, the work, and the three-dimensional model of the peripheral arrangement occurs in the virtual space when the robot performs the task selected by the operator. It is to judge. Intra-task interference check is performed by selecting any task registered in the task list. For example, as shown in FIG. 12, to perform a task in the interference check of the task T 2 of the task list, the operator, right-click on the selected task T 2, button b14 (the "Operation Check") Then, an operation of selecting the button b141 (“intra-task interference check”) is performed.
  • the task program of the selected task is transmitted from the information processing device 2 to the robot control device 3, and the robot control device 3 executes the task program.
  • the robot control device 3 returns execution log data including robot status data to the information processing device 2 as the execution result of the task program.
  • the robot state data is a physical quantity (for example, a joint angle for each predetermined reference time (for example, 1 ms), a coordinate position of a reference point, and the like) indicating a state of the robot according to the passage of time calculated based on the model of the manipulator 50. Data.
  • the CAD software of the information processing device 2 operates the robot R and the three-dimensional model of the work held by the robot R in the virtual space according to the robot state data. At this time, the information processing device 2 determines whether or not the approximate shape data corresponding to the three-dimensional model interferes with the approximate shape data corresponding to the three-dimensional model of the other robot R and the component.
  • the timing of the interference determination may be appropriately set. For example, the interference determination is performed every time the reference point of the robot moves by 10 mm. At the timing of the interference determination, as described above, the position of each sphere constituting the approximate shape data of the robot is updated and used for the interference determination.
  • the interference determination processing is easy. That is, in FIG. 13, when two spheres to be subjected to interference determination are spheres Cb1 and Cb2 (the radii r1 and r2 of each sphere are known according to the level), the robot coordinates of each of the spheres Cb1 and Cb2 The updated origins O1 and O2 in the system are calculated as described above. When the distance L between the origins O1 and O2 is larger than the sum of the radius r1 of the sphere Cb1 and the radius r2 of the sphere Cb2, it can be determined that there is no interference between the sphere Cb1 and the sphere Cb2.
  • the distance L between the origins O1 and O2 is equal to or smaller than the sum of the radius r1 of the sphere Cb1 and the radius r2 of the sphere Cb2, it can be determined that there is interference between the sphere Cb1 and the sphere Cb2.
  • the robot or the part to which the sphere Cb1 belongs and the robot or the part to which the sphere Cb2 belongs have interfered.
  • the interference determination between the robots R and between the robot R and the parts is basically performed on a brute force basis, but the interference determination may not be performed for a combination that does not clearly interfere with each other.
  • the interference determination need not be performed. This is because no interference can occur in (i), no interference can occur in (ii) because both are in a stationary relationship, and in (iii) they cannot exist simultaneously.
  • a period during which interference determination is performed may be limited according to the type of task. For example, when determining the interference between the robot or a peripheral object and the work on the hand, if the task type is “Pick up”, the interference determination is performed in a period after the first departure point. If the task type is “Place”, the interference determination may be performed in the period from the first approach point to the target point.
  • a part where the interference occurs in the three-dimensional model may be displayed in a mode different from a part where the interference does not occur.
  • a part R INF of the three-dimensional model of the robot R that interferes with a part may be displayed in a different form (for example, a different color, pattern, luminance, or the like) from a part that does not interfere. This allows the operator to recognize which part of the robot R causes the interference, so that it is possible to support a teaching operation such as changing the teaching point of the robot R or changing the arrangement of parts.
  • the interfering part R INF may be displayed in a manner different from that of the three-dimensional model, and the interfering part R INF may be displayed as approximate shape data. At this time, it is preferable to display the sizes of the spheres constituting the approximate shape data. This makes it easy for the operator to recognize how much the teaching point of the robot R can be changed to avoid interference, based on the size of the sphere that forms the approximate shape data.
  • FIG. 14 illustrates a case where a three-dimensional model of the robot R is displayed, approximate shape data corresponding to the three-dimensional model may be displayed instead of the three-dimensional model of the robot R.
  • the CAD software may hide any three-dimensional model selected by the operator in the virtual space.
  • the three-dimensional model hidden in the virtual space by the CAD software is not subjected to the determination as to whether or not interference occurs. This makes it easier for the operator to recognize the presence or absence of interference with respect to the part that the operator wants to pay attention to. For example, depending on the viewpoint at the time of displaying the virtual space, a part that the operator wants to pay attention to and a part may overlap with each other. It is easy for the operator to check whether or not the problem occurs.
  • Inter-task interference check is to determine whether or not interference between the three-dimensional model of the robot, the work, and the peripheral object occurs in the virtual space during the movement of the robot between two tasks selected by the operator. It is.
  • the inter-task interference check is performed, for example, by selecting at least two or more tasks registered in the task list. As shown in FIG. 15, for example, in order to perform the inter-task interference check of the tasks T 2 to T 4 in the task list, the operator selects the tasks T 2 to T 4 , right-clicks the button, and presses the button b14 ( The user performs an operation of selecting “operation check”) and selecting the button b142 (“inter-task interference check”).
  • a robot program (for example, the above-described move (AP1)) of a portion in which an operation between two or more selected tasks is set is transmitted from the information processing device 2 to the robot control device 3, and the robot The robot program is executed in the control device 3.
  • the robot control device 3 returns execution log data including robot status data to the information processing device 2 as an execution result of the robot program.
  • the robot state data is a physical quantity (for example, a joint angle for each predetermined reference time (for example, 1 ms), a coordinate position of a reference point, and the like) indicating a state of the robot according to the passage of time calculated based on the model of the manipulator 50. Data.
  • the CAD software of the information processing device 2 operates the robot R and the three-dimensional model of the work held by the robot R in the virtual space according to the robot state data. At this time, the information processing device 2 determines whether or not the approximate shape data corresponding to the three-dimensional model interferes with the approximate shape data corresponding to the three-dimensional model of the other robot R and the component.
  • the timing of the interference determination may be appropriately set. For example, the interference determination is performed every time the reference point of the robot moves by 10 mm. At the timing of the interference determination, as described above, the position of each sphere constituting the approximate shape data of the robot is updated and used for the interference determination.
  • step S12 every time the reference point of the robot R moves by 10 mm, the processing after step S12 is performed.
  • the position of the approximate shape data is updated (step S12).
  • the update of the position of the approximate shape data is performed by updating all the origins of one or a plurality of spheres constituting the approximate shape data.
  • the control unit 21 performs a round-robin determination of the interference between the robots R and between the robot R and the parts.
  • interference determination is performed using the level 1 approximate shape data having the largest sphere size as the approximate shape data of the robot R and the component (step S14).
  • the presence or absence of interference is determined by focusing on one sphere from each of two approximate shape data to be subjected to interference determination and determining whether or not the spheres interfere with each other by a distance between the origins. And the sum of the radii of the respective spheres set in advance as level 1.
  • the spheres of interest are sequentially changed with respect to the two approximate shape data to be subjected to interference determination, and it is determined whether or not the spheres interfere with each other in a round robin manner. As a result, when no spheres interfere with each other (step S16: NO), the control unit 21 determines that the two approximate shape data do not interfere with each other (step S18), and ends.
  • the control unit 21 In the interference check using the approximate shape data at level 1 in step S14, among the combinations of the robots R and the combinations of the robot R and the components, for the combination in which the interference has occurred (step S16: YES), the control unit 21 The interference determination is performed using the approximate shape data of Level 2 in which the size of the sphere is smaller than Level 1 (Step S20). Except that the size of the sphere is different, the process of interference determination is the same as step S14. That is, when no two spheres interfere with each other for two pieces of approximate shape data to be subjected to interference determination (step S22: NO), the control unit 21 determines that the two pieces of approximate shape data do not interfere (step S18). ),finish.
  • the control unit 21 In the interference check using the approximate shape data at the level 2 in step S20, among the combinations of the robots R and the combinations of the robot R and the components, for the combination in which the interference has occurred (step S22: YES), the control unit 21 The interference determination is performed using the approximate shape data of Level 3 in which the size of the sphere is smaller than Level 2 (Step S24). Except that the size of the sphere is different, the process of interference determination is the same as step S14. That is, when no two spheres interfere with each other for two pieces of approximate shape data to be subjected to interference determination (step S26: NO), the control unit 21 determines that the two pieces of approximate shape data do not interfere with each other (step S18). ),finish.
  • step S24 when interference occurs between the combination of the robots R and the combination of the robot R and the components (step S26: YES), it is determined that there is interference. Then (step S28), the data of the interference determination result is recorded in the storage 22, and the process ends.
  • the data of the interference determination result includes data of the position of the robot R and / or the sphere that has interfered with the robot R and the component.
  • the interference determination is performed in a stepwise manner using the low-precision level 1 approximate shape data and the high-precision level 3 approximate shape data in order.
  • the interference check of the combinations in which interference has occurred, only the interfering sphere is used as high-precision level approximate shape data. Therefore, the calculation load required for the interference determination is reduced as compared with the case where the interference determination is performed using the highly accurate level 3 approximate shape data from the beginning.
  • FIG. 17 is a diagram illustrating the setting of a candidate point (described later).
  • the flowchart shown in FIG. 1 is described in the teaching program, and is executed by the control unit 21 of the information processing device 2.
  • the control unit 21 when moving the robot R from a predetermined start point to a predetermined end point, the control unit 21 extracts necessary data such as coordinate data and approximate shape data of the start point and the end point (step S30), and A check is performed (step S32).
  • necessary data such as coordinate data and approximate shape data of the start point and the end point
  • step S32 A check is performed.
  • the specific processing of the interference check is as described with reference to FIG.
  • step S34 NO
  • the process ends because there is no need to provide a waypoint between the start point and the end point.
  • step S34: YES when interference occurs (step S34: YES), the process proceeds to step S36 to set a waypoint.
  • the control unit 21 sets a candidate point on the surface of the sphere obtained by increasing the diameter of the sphere that interferes with the robot in the approximate shape data of the component constituted by the sphere (step S36).
  • the candidate points mean points that can be the waypoints of the route from the start point to the end point of the robot R and are candidates for waypoints. For example, when interference occurs in a specific level 3 sphere (see FIG. 10) of a part, the level 3 sphere is placed on the surface of the corresponding level 2 sphere (see FIG. 10) on the tree structure. Set candidate points.
  • FIG. 18 shows a sphere Cb10 (L2) of level 2 in which the candidate points VC are set.
  • a candidate is set to a larger-diameter level 2 sphere Cb10 (L2) associated with the sphere. It is assumed that the point VC is set.
  • the number of candidate points VC specified by the user is uniformly set on the surface of the level 2 sphere Cb10 (L2).
  • the control unit 21 After setting the plurality of candidate points VC, the control unit 21 performs an interference check to determine whether or not interference will occur if each candidate point VC is a temporary point. Specifically, the control unit 21 performs an interference check when the robot R is moved from the start point to the candidate point VC (step S38), and performs an interference check when the robot R is moved from the candidate point VC to the end point. A check is performed (step S40). The processing in steps S38 and S40 is performed for all the candidate points VC set in step S36 (step S42: NO). The control unit 21 records the results of the interference check in steps S38 and S40 for each candidate point VC in the storage 22.
  • step S44 when it is determined that there is at least one candidate point VC that can avoid the interference (step S44: YES), any one of the candidate points VC that can avoid the interference
  • the candidate point VC is displayed so that the user can select the VC (step S46).
  • FIG. 19 shows a preferred display example in step S46.
  • the groups are divided into the following four groups, and each group is displayed in a different display mode.
  • each group is displayed in a different display mode.
  • the different display modes of each group are merely examples, and any display mode may be used as long as different groups can be identified. For example, different colors may be displayed for each group.
  • step S48 YES
  • the control unit 21 determines the selected candidate point VC. It is determined as a waypoint (step S50).
  • step S44 If it is determined in step S44 that there is no candidate point VC that can avoid the interference (step S44: NO), the control unit 21 sets the sphere having a size one size larger than the sphere for which the candidate point VC has been set in step S36. A candidate point VC is set on the surface of (step S52). Then, the processing of steps S38 to S42 is repeated again. Increasing the sphere for setting the candidate point VC increases the possibility of avoiding interference.
  • two or more waypoints may be set.
  • one of the candidate points VC in the second candidate point group is determined as the first via point V1. That is, in the example shown in FIG. 20, no interference occurs on the path from the start point to the first via point V1, but on the path from the first via point V1 to the end point, the sphere Cb12 ( L3).
  • the processing of FIG. 17 is executed on the path from the start point to the end point when the first via point V1 is set as the start point. That is, as shown in FIG.
  • candidate points are set on the surface of the level 2 sphere Cb12 (L2) having a larger diameter than the level 3 sphere Cb12 (L3) of the approximate shape data.
  • FIG. 21 shows an example in which the second via point V2 is determined from the candidate points on the surface of the level 2 sphere Cb12 (L2).
  • the occurrence of interference is avoided by the route of the robot R from the start point ⁇ the first waypoint V1 ⁇ the second waypoint V2 ⁇ the end point.
  • a plane PL1 where the diameter of a circle that intersects with the level-2 sphere Cb10 (L2) among the cut surfaces of the level-2 sphere Cb10 (L2) orthogonal to the straight line DL connecting the start point and the end point is the largest.
  • a plurality of candidate points VC may be set on a circle on the plane PL1 that intersects the surface of the sphere Cb10 (L2) at level 2.
  • the candidate point VC farthest from the straight line DL on the surface of the sphere Cb10 (L2) at level 2 is included, so that interference can be avoided.
  • the nature becomes high.
  • the number of candidate points VC can be reduced as compared with the case where the candidate points VC are evenly provided on the surface of the sphere Cb10 (L2) of level 2, and the calculation load for determining the waypoint is reduced.
  • FIG. 23 is a functional block diagram of the route determination device 1 according to the embodiment.
  • the route determination device 1 includes a display control unit 101, a data creation unit 102, a program execution unit 103, a state information calculation unit 104, an interference determination unit 105, a candidate point setting unit 106, and a candidate point identification.
  • the unit 107 is provided.
  • the storage 22 of the information processing device 2 includes, as described above, the robot program 221, the hierarchical list database 222, the three-dimensional model database 223, the execution log database 224, and the approximate shape model.
  • a database 225 is provided.
  • the display control unit 101 controls the display device 24 to display the execution results of the teaching software and the CAD software.
  • the display control unit 101 has a function of arranging a three-dimensional model of a robot, a work, and a peripherally arranged object in a virtual space and displaying the three-dimensional model on the display device 24. This function is realized by the CAD software referring to the three-dimensional model database 223.
  • the display control unit 101 has a function of arranging approximate shape data in a virtual space and displaying the approximate shape data on the display device 24.
  • the control unit 21 of the information processing device 2 accesses the approximate shape model database 225 of the storage 22, and reads out the approximate shape data to be arranged in the virtual space.
  • the approximate shape data is associated with the three-dimensional model in the three-dimensional model database 223.
  • the display control unit 101 has a function of displaying the candidate points specified by the candidate point specifying unit 107 on the display device 24 so that the user can select a waypoint from the candidate points.
  • the data creation unit 102 has a function of creating approximate shape data in which three-dimensional data included in the three-dimensional model database 223 is approximated by a set of spheres.
  • the control unit 21 of the information processing device 2 reads out the three-dimensional models of the robot and the parts from the three-dimensional model database 223, and covers the outer surface of the three-dimensional model with one or a plurality of spheres. By arranging the spheres, approximate shape data corresponding to the three-dimensional model is created. The created approximate shape data is recorded in the approximate shape model database 225.
  • the program execution unit 103 has a function of executing all or a part of the robot program according to an operation input by an operator.
  • an operation of the button b141 (“intra-task interference check”) in a state where any task in the task list is selected, or two or more tasks in the task list are executed.
  • the robot program is transmitted to the robot controller 3 via the communication interface unit 25 in response to the operation of selecting the button b142 (“inter-task interference check”) in the selected state.
  • the range of the robot program to be transmitted is based on the task selected in the task list.
  • the control unit 31 of the robot control device 3 executes the robot program.
  • the state information calculation unit 104 has a function of calculating robot state data, which is information indicating the state of the robot over time, based on the execution result of the program execution unit 103.
  • the control unit 31 of the robot control device 3 executes the robot program from the information processing device 2, calculates the robot state data as the execution result of the robot program, and sequentially executes the robot state data. Record in the storage 32.
  • the robot state data is a physical quantity (for example, a joint angle for each predetermined reference time (for example, 1 ms), a coordinate position of a reference point, and the like) indicating a state of the robot according to the passage of time calculated based on the model of the manipulator 50. Data.
  • the control unit 31 reads the robot state data from the storage 32 at every predetermined reference time (for example, 1 ms) along the time axis.
  • the control unit 31 transmits the execution log data including the read robot state data to the information processing device 2 via the communication interface unit 33.
  • the control unit 21 of the information processing device 2 records the execution log data in the execution log database 224.
  • the interference determination unit 105 has a function of determining whether or not interference of the approximate shape data occurs when the robot R is moved on the path from the start point to the end point. The presence or absence of the interference is determined based on the execution log data of the robot program.
  • the interference determination unit 105 corresponds to the interference determination processing in FIG.
  • the candidate point setting unit 106 sets a candidate for a via point that the robot R passes through on the surface of a sphere having a larger diameter than the sphere in which the interference has occurred in the approximate shape data. And a function of setting a plurality of candidate points.
  • the candidate point setting unit 106 corresponds to, for example, the process of step S36 in the flowchart of FIG.
  • the candidate point specifying unit 107 determines a plurality of candidate points that do not cause interference of the approximate shape data when the robot R is moved along the path from the start point to the candidate point and the path from the candidate point to the end point. It has a function to specify from points.
  • the candidate point specifying unit 107 corresponds to, for example, the processing of steps S38 to S44 in the flowchart of FIG.
  • the data creation unit 102 creates a plurality of approximate shape data having different diameters of the spheres corresponding to the three-dimensional data, and the sphere of the plurality of approximate shape data is such that a sphere having a larger diameter has a larger diameter than the sphere.
  • the candidate point setting unit 106 sets a plurality of candidate points on the surface of a sphere having a larger diameter that is associated with the sphere in which the interference has occurred in the approximate shape data. Note that it is not essential to set candidate points on the surface of a large-diameter sphere corresponding to the tree structure for a sphere in which interference has occurred in the approximate shape data. For example, a candidate point may be set on the surface of a larger-diameter sphere concentric with the sphere in which interference has occurred in the approximate shape data.
  • the candidate point setting unit 106 A plurality of candidate points may be newly set on the surface of a sphere having a larger diameter associated with the set sphere.
  • the candidate point specifying unit 107 specifies, from among the plurality of newly set candidate points, a candidate point at which interference of the approximate shape data does not occur.
  • the route determination device 1 of the present embodiment when a robot or a part is modeled by approximate shape data constituted by an aggregate of one or a plurality of spheres and the robot is operated using the approximate shape data Is determined.
  • a plurality of candidate points are set as candidates for waypoints through which the robot passes on the surface of the sphere having a larger diameter than the sphere in which the interference has occurred among the approximate shape data, and the plurality of candidate points are set.
  • a candidate point where interference does not occur is specified from the points. Then, from the specified candidate points, the waypoint is determined according to the user's selection.
  • the plurality of candidate points are set, for example, on a larger-diameter sphere previously associated with the sphere in which the interference has occurred. Then, interference determination when passing through each candidate point can be performed by simple processing as described with reference to FIG. That is, the determination of a candidate point that is a candidate for a via point that does not cause interference can be performed in a short time. Via points are determined by a simple operation of the user from candidate points where no interference occurs. Therefore, according to the route determination device 1 of the present embodiment, a motion path of the robot that avoids interference can be generated with a simple operation and in a short time.
  • FIG. 24 shows a modified example of the flowchart in FIG.
  • the result of the interference check is displayed as illustrated in FIG. 19, and it is displayed that the user does not select any candidate point as a waypoint.
  • the process proceeds to step S52.
  • the route is determined flexibly by setting a plurality of waypoints without increasing the size of the sphere on which the candidate point is set. Can be.
  • a program for causing a computer to realize at least a part of the functions described in the functional block diagram of FIG. 23, and a computer-readable storage medium (non-volatile storage medium) storing the program It is understood by those skilled in the art that is disclosed.

Abstract

本発明の一実施形態は、ロボットや周辺配置物等の3次元データを、1または複数の球体を配置することで当該3次元データの近似形状データを作成するデータ作成部と、ロボットを移動させたときに近似形状データの干渉が発生するか否かを判定する干渉判定部と、干渉が発生すると判定された場合、近似形状データのうち干渉が発生した球体より大径の球体の表面上に、ロボットが経由する経由点の候補となる複数の候補点を設定する候補点設定部と、始点から候補点までの経路、および、候補点から終点までの経路において近似形状データの干渉が発生しない候補点を、複数の候補点の中から特定する候補点特定部と、特定された候補点から経由点を選択可能となるように表示する表示制御部と、を備えたロボットの経路決定装置である。

Description

ロボットの経路決定装置、ロボットの経路決定方法、プログラム
本発明は、ロボットの経路決定装置、ロボットの経路決定方法、および、プログラムに関する。
ロボットが動作したときに、ロボット同士、またはロボットと周辺部品との間の干渉の有無をシミュレーションで判定する経路決定装置が知られている。

 例えば日本国公開公報特開2008-254172号公報には、ロボットの教示点の情報とロボットの周囲環境モデルの情報とを格納する記憶部を有しロボットプログラムをオフラインで作成するプログラミング部と、ロボット制御部と、を備えたロボットプログラム作成装置が記載されている。日本国公開公報特開2008-254172号公報では、ロボット制御部は、ロボットの動作を制御し、ロボットを実際の教示点に移動させ、実際の教示点の情報を捕え、ロボットプログラム上の教示点の情報を修正する。

 また、日本国公開公報特開2014-024162号公報には、アームと、アームの先端に設けられたエンドエフェクターと、からなる可動部を、複数の教示点に沿って移動させる時に、教示点の位置情報と障害物の位置情報とに基づいて可動部と障害物とが干渉するか否かを判定することが記載されている。日本国公開公報特開2014-024162号公報では、第1の教示点と第2の教示点との間で可動部と障害物とが干渉すると判定された場合に、接近制限情報及び離脱制限情報に基づいて第1の教示点と第2の教示点との間に教示点が追加される。
日本国公開公報:特開2008-254172号公報 日本国公開公報:特開2014-024162号公報
しかし、日本国公開公報特開2008-254172号公報では、実機で修正する必要がある教示点を表示部の画面に一覧表示し、オペレータがこの画面を見てプログラム部に修正要の教示情報を送信する操作が必要となる。

 他方、日本国公開公報特開2014-024162号公報では、干渉有無の判定を行い、さらにエンドエフェクターの様々な情報から変更先の教示点を計算する必要があるため、干渉を回避するように経路修正するのに長い時間が掛かるという難点がある。 
そこで、本発明は、簡易な操作で、かつ短時間で、干渉を回避するロボットの動作経路を生成できるようにすることを目的とする。
本願の例示的な第1発明は、ロボット、前記ロボットの作業対象となるワーク、および、前記ロボットの周辺に配置される周辺配置物のうち少なくともいずれかの3次元データを記憶する記憶部と、前記記憶部に記憶される3次元データを、当該3次元データの外表面を覆うように1または複数の球体を配置することで当該3次元データの近似形状データを作成するデータ作成部と、始点から終点までの経路において前記ロボットを移動させたときに、前記近似形状データの干渉が発生するか否かを判定する干渉判定部と、前記干渉判定部によって干渉が発生すると判定された場合、前記近似形状データのうち干渉が発生した球体より大径の球体の表面上に、前記ロボットが経由する経由点の候補となる複数の候補点を設定する候補点設定部と、前記始点から候補点までの経路、および、候補点から前記終点までの経路において前記ロボットに移動させたときに、前記近似形状データの干渉が発生しない候補点を、前記複数の候補点の中から特定する候補点特定部と、前記候補点特定部によって特定された候補点を、当該候補点の中からユーザが前記経由点を選択可能となるように、表示装置に表示する表示制御部と、を備えたロボットの経路決定装置である。
本発明によれば、簡易な操作で、かつ短時間で、干渉を回避するロボットの動作経路を生成できる。
図1は、実施形態の経路決定装置の全体構成について示す図である。 図2は、実施形態の経路決定装置に含まれる各装置のハードウェア構成を示す図である。 図3は、実施形態の一例に係る3次元CAD用ウィンドウを示す図である。 図4は、実施形態の一例に係る教示用ウィンドウを示す図である。 図5は、ジョブを概念的に説明するための図である。 図6は、タスクを概念的に説明するための図である。 図7は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。 図8は、タスクリストの表示例を示す図である。 図9は、タスクリストの表示例を示す図である。 図10は、ロボットの3次元モデルと異なるレベルの近似形状データとを例示する図である。 図11は、ロボットおよび部品のデータ構成を概念的に示す図である。 図12は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。 図13は、球体同士の干渉判定方法について説明する図である。 図14は、ロボットの3次元モデルと部品とが干渉する場合の表示態様を例示する図である。 図15は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。 図16は、実施形態に係る干渉判定のフローチャートの一例である。 図17は、ロボットの経由点の決定方法を示すフローチャートの一例である。 図18は、候補点の設定について説明する図である。 図19は、候補点の表示例について示す図である。 図20は、決定済みの経由点から終点までの経路で干渉する場合について説明する図である。 図21は、決定済みの経由点から終点までの間の経路で新たな候補点を設定する場合について示す図である。 図22は、候補点の好ましい設定例について説明する図である。 図23は、実施形態に係る経路決定装置の機能ブロック図である。 図24は、図17のフローチャートの変形例である。
以下、本発明のロボットの経路決定装置の実施形態について説明する。

 以下の説明において、ロボットの要素作業を「タスク」という。ロボットの要素作業とは、物体を「取る」や「置く」等、一連の作業の中でロボットが行う最小単位の作業を意味する。

 「部品」とは、ロボットの作業の対象となる物体を意味し、ロボットが把持する物体(例えば、工場内のワーク)に限らず、ロボットの周辺に配置される周辺配置物(例えば、ロボットが把持する物体を置く棚)をも含む。

 ロボットの「基準点」は、後述するロボットのアプローチ点、目標点、デパーチャ点等のロボットの教示点の基準となるロボットの位置を意味し、例えばロボットの作用点(TCP:Tool Center Point)である。 
ロボットの経路決定装置は、ロボット自体の干渉(例えば、ハンドとアームの干渉)、あるいはロボットと部品との干渉の有無をシミュレーションによって判定する装置である。ロボットの経路決定装置によって、ロボットの実機に接続しないオフラインティーチングを支援することができる。 
(1)本実施形態に係る経路決定装置の構成

 以下、本実施形態の経路決定装置1の構成について、図1および図2を参照して説明する。図1は、本実施形態の経路決定装置1の全体構成について示す図である。図2は、本実施形態の経路決定装置1に含まれる各装置のハードウェア構成を示す図である。 
図1に示すように、経路決定装置1は、情報処理装置2およびロボット制御装置3を備える。情報処理装置2とロボット制御装置3とは、例えばイーサネット(登録商標)ケーブルECにより通信可能に接続される。

 情報処理装置2は、工場のラインに設置されたロボットに対して動作を教示するための装置である。情報処理装置2は、オペレータによるオフラインティーチングを行うために設けられており、例えばロボットが設置される工場から離れた位置(例えば、オペレータの作業場所)に配置される。 
ロボット制御装置3は、情報処理装置2から送信されるロボットプログラムを実行する。本実施形態ではロボット制御装置3はロボットと接続されないが、ロボットと接続された場合には、ロボットプログラムの実行結果に応じた制御パルスをロボットに送り、ロボットを動作させることが可能である。そのため、ロボット制御装置3は、好ましくはロボットの実機の近傍に配置される。 
図2に示すように、情報処理装置2は、制御部21と、ストレージ22と、入力装置23と、表示装置24と、通信インタフェース部25とを備える。

 制御部21は、CPU(Central Processing Unit)、ROM(Read Only Memory)、および、RAM(Random Access Memory)を含む。ROMには、3次元CADアプリケーションプログラムと教示ソフトウェアが記憶されている。CPUは、ROM上の3次元CADアプリケーションソフトウェア(以下、適宜「CADソフトウェア」という。)と教示ソフトウェアをRAMに展開して実行する。教示ソフトウェアとCADソフトウェアは、API(Application Program Interface)を介して協調して処理を実行する。

 制御部21は、CADソフトウェアによる動画再生を行うために、フレーム単位で画像を連続的に表示装置24に表示させる。 
ストレージ22は、HDD(Hard Disk Drive)あるいはSSD(Solid State Drive)等の大容量記憶装置であり、制御部21のCPUにより逐次アクセス可能に構成されている。後述するように、ストレージ22には、ロボットプログラム221、階層型リストデータベース222、3次元モデルデータベース223、実行ログデータベース224、および、近似形状モデルデータベース225(これらのデータベースについては、図23を参照)が格納される。

 階層型リストデータベース222には、後述する階層型リストを構成するデータが含まれる。

 3次元モデルデータベース223には、CADソフトウェアを実行するときに参照される3次元モデルのデータが含まれる。本実施形態の例では、3次元モデルデータベース223には、ロボットおよび部品(例えば、後述するペン、キャップ、製品、ペントレイ、キャップトレイ、製品トレイ)の3次元モデルのデータが含まれる。

 実行ログデータベース224には、ロボット制御装置3から取得した実行ログデータが含まれる。実行ログデータは、ロボットプログラムの実行結果と、後述するロボット状態データとを含む。ロボット状態データは、3次元CADによってロボットの動作を仮想空間内で動画(アニメーション)により再現するため、および、後述する干渉判定を行うために使用される。

 近似形状モデルデータベース225には、近似形状データが当該近似形状データの基礎となる3次元モデル(3次元データの一例)に対応付けられている。近似形状データは、後述するように、3次元モデルを球体の集合によって近似したデータである。

 ストレージ22は、記憶部の一例である。 
入力装置23は、オペレータによる操作入力を受け付けるためのデバイスであり、ポインティングデバイスを含む。

 表示装置24は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示するためのデバイスであり、表示駆動回路および表示パネルを含む。

 通信インタフェース部25は、ロボット制御装置3との間でイーサネット通信を行うための通信回路を含む。 
ロボット制御装置3は、制御部31と、ストレージ32と、通信インタフェース部33とを備える。

 制御部31は、CPU、ROM、RAM、および、制御回路を含む。制御部31は、情報処理装置2から受信するロボットプログラムを実行し、実行ログデータを出力する。上述したように、実行ログデータには、ロボットプログラムの実行結果と、ロボットプログラムに記述された作業を実行するロボットのロボット状態データとを含む。

 ストレージ32は、ロボットのマニピュレータ(アーム51、ハンド52を含むロボット本体)のモデルのデータ(例えばリンクパラメータ等)を備えている。制御部31は、ロボットプログラムの実行結果に基づいて、マニピュレータを構成する各部のジョブを実行中の時間の経過に応じた物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等のデータ)を演算する。かかる物理量のデータが上記ロボット状態データに含まれる。 
ストレージ32は、HDDあるいはSSD等の大容量記憶装置であり、制御部31のCPUにより逐次アクセス可能に構成されている。ストレージ32には、ロボットのマニピュレータのモデルのデータの他に、情報処理装置2から送信されるロボットプログラムと、実行ログデータとが格納される。

 通信インタフェース部33は、情報処理装置2との間でイーサネット通信を行うための通信回路を含む。 
(2)オフラインティーチングにおけるユーザインタフェース

 ロボットのシミュレーションを実行する前に、オペレータは、情報処理装置2を使用して、ロボットに対するオフラインティーチングを行い、ロボットプログラムを作成する。ロボットプログラムを作成するに当たって、本実施形態の好ましい例では、CADソフトウェアと教示ソフトウェアを情報処理装置2に実行させる。

 CADソフトウェアの実行結果はCAD用ウィンドウに表示され、教示ソフトウェアの実行結果は教示用ウィンドウに表示される。オペレータは、CAD用ウィンドウと教示用ウィンドウの両方を情報処理装置2に表示させ、あるいはCAD用ウィンドウと教示用ウィンドウを切り替えながら情報処理装置2に表示させ、ティーチングやCADによる動画再生に関連する操作を行う。 
図3に、本実施形態の一例に係るCAD用ウィンドウW1を示す。図3には、テーブルTLの上に、ロボットRと、ペントレイ11と、キャップトレイ12と、治具13と、製品トレイ14とが、仮想空間に配置された状態の画像(以下、適宜「CAD画像」という。)が表示されている。

 図3に示す例では、ロボットRがペンにキャップを嵌めて製品(ペンにキャップが嵌められた状態の完成品)を組み立てる一連の作業を行うことが想定されている。ペントレイ11には複数のペンからなるペン群Pが配置され、キャップトレイ12には複数のキャップからなるキャップ群Cが配置されている。治具13は、ロボットRがペンを一時的に配置してキャップを嵌める作業を行うための部材である。製品トレイ14は、製品を置くための部材である。 
図3に示す例では、ペン群Pに含まれる各ペン、キャップ群Cに含まれる各キャップ、ペントレイ11、キャップトレイ12、治具13、製品トレイ14の各々は、ロボットRの作業対象である部品の例である。また、ペンにキャップが嵌められた製品も部品の例である。

 各ペン、各キャップ、および、ペンにキャップが嵌められた製品は、それぞれワークの一例である。ペントレイ11、キャップトレイ12、治具13、および、製品トレイ14は、それぞれ周辺配置物の一例である。 
(2-1)階層型リスト

 図4に、本実施形態の一例に係る教示用ウィンドウW2を示す。教示用ウィンドウW2に表示されているのは、図3のCAD画像に含まれているロボットR、および、部品の階層関係を示す階層型リストである。 
教示ソフトウェアは、CADソフトウェアと連携して階層型リストを作成することができる。階層型リストとして木構造のデータフォーマットが教示ソフトウェアによって用意される。オペレータは、CAD用ウィンドウと教示用ウィンドウを表示させた状態で、CAD画像内のロボットRおよび部品をポインティングデバイスで選択した状態で上記木構造のデータフォーマットの所望のノードまでドラッグする操作を行う。この操作を、ロボットRの教示を行うのに必要となるすべての部品に対して順に行うことで、階層型リストを完成させることができる。階層型リストに表示される各ノードの名称は、元となる3次元モデルの名称がそのまま適用されてもよいが、後で名称を変更できるようにしてもよい。 
以下の説明では、CAD画像内のロボットR、部品を階層型リストのいずれかのノードに含めるようにすることを、ロボットR又は部品を「階層型リストに登録する」という。図3では、ロボットが1体である場合のCAD画像を例示しているが、ロボットが2体以上存在する場合には、当該2体以上のロボットを階層型リストに登録することができる。 
図4に示す階層型リストにおいて、ロボットR(Robot_R)のノードの下層には、ハンドに関連する3個のノードが設けられている。ハンドに対して複数のノードを設けているのは、ハンドに想定される作業状態を考慮するためである。すなわち、ノード61~63は、以下の内容を意味する。 

 ・ノード61(Pen)…ペンを把持する作業に対応したハンド

 ・ノード62(Cap)…キャップを把持する作業に対応したハンド

 ・ノード63(Pen_with_Cap)…キャップが嵌められたペンを把持する作業に対応したハンド 
ノード61~63のいずれかを対象として右クリック操作を行い、「ハンドシーケンス操作」を選択すると、アクチュエーション方式(シングルソレノイド、又はダブルソレノイド等)、センサ種類などのハンドシーケンスに関連する設定を行うことができる。

 ハンドシーケンスは、ロボットRのハンド52が把持する部品に依存するため、ハンド52が把持する部品ごとに設定される。ハンドシーケンスが設定されていない場合に後述するタスクを作成した場合には、タスクに基づくプログラムを実行できないため、表示装置24に警告表示を出力してもよい。 
部品の構成要素には、治具(JIG)、ペントレイ(PenTray)、キャップトレイ(CapTray)、製品トレイ(ProductTray)、ペン(Pen1, Pen2,…,Pen12)、キャップ(Cap1, Cap2,…,Cap12)、および、製品(PenProduct1, PenProduct2,…,PenProduct12)が含まれる。

 治具(JIG)のノードの下位には、治具を対象とした作業に対応して、例えば、以下のノードが設けられる。 

 ・ノード64(PenProduct)…製品(PenProduct)を保持した状態の治具

 ・ノード65(PenJ)…ペン(Pen)を保持した状態の治具

 ・ノード66(CapJ)…キャップ(Cap)を保持した状態の治具 
ペントレイ(PenTray)のノードの下位には、ペンPen1, Pen2,…,Pen12に対応する各ノードが設けられる。キャップトレイ(CapTray)のノードの下位には、キャップCap1, Cap2,…,Cap12に対応する各ノードが設けられる。製品トレイ(ProductTray)のノードの下位には、製品PenProduct1, PenProduct2,…,PenProduct12に対応する各ノードが設けられる。 
階層型リストの中のロボットR(図4のRobot_R)、および部品(治具(JIG)、ペントレイ(PenTray)、キャップトレイ(CapTray)、製品トレイ(ProductTray)、ペンPen1, Pen2,…,Pen12、キャップCap1, Cap2,…,Cap12、および、製品PenProduct1, PenProduct2,…,PenProduct12)の各ノードは、各々に対応する3次元モデルのデータと関連付けられた状態となっている。そのため、階層型リストを作成後に階層型リスト内のロボットRおよび部品の3次元モデルに変更があった場合であっても、階層型リストに再度登録する必要はない。 

 (2-2)ジョブおよびタスクについて

 次に、ジョブおよびタスクについて、図5および図6を参照して説明する。

 図5は、ジョブを概念的に説明するための図である。図6は、タスクを概念的に説明するための図である。 
ジョブとは、ロボットRが行う一連の作業である。タスクとは、前述したように一連の作業の中でロボットRが行う最小単位の作業である要素作業を意味する。従って、図5に示すように、ジョブ(JOB)に相当する期間には、複数のタスクT,T,…,Tn-1,Tに対応する期間と、ロボットRのタスク間の移動(以下、適宜「タスク間移動」という。)と、が含まれる。図5に示すように、本実施形態では、ロボットRが行うジョブに対して複数のタスクが定義される。 
各タスクには、複数のモーション(「ロボットRの動き」を意味する。)M~Mが含まれる。タスクには、モーションの他、ハンドシーケンス(HS)が含まれてもよい。ハンドシーケンスは、ロボットRのハンド52による部品の把持についての一連の処理である。隣接するモーションの間には、後述するインターロック等による待機時間WTが設定される場合がある。 
図6において、矢印付きの線は、ロボットRのハンド52の軌跡を概念的に示している。当該軌跡は、タスクの目標点TPに到達する前の通過点であるアプローチ点AP1,AP2と、目標点TPと、目標点TPに到達した後の通過点であるデパーチャ点DP1,DP2とを含む。目標点TPは、タスクの対象である部品の位置を示している。 
図6に示す例では、アプローチ点AP1に到達する前のロボットRの動作が、タスク間の移動(つまり、前のタスクと図6に示すタスクとの間の移動)に相当する。デパーチャ点DP2から後のロボットRの動作が、タスク間の移動(つまり、図6に示すタスクと次のタスクとの間の移動)に相当する。アプローチ点AP1からデパーチャ点DP2までのロボットRの動作が1つのタスクに対応し、当該タスク内において隣接する点間のロボットRの動きが1つのモーションに相当する。

 タスクを実行させるロボットプログラムには、タスクの内容に関する情報のほか、目標点TP、アプローチ点AP、およびデパーチャ点DPのうち少なくともいずれかの点に関する情報が含まれうる。 
図6では、アプローチ点AP1,AP2においてそれぞれインターロックIL1,IL2が設定されている場合が例示されている。インターロックは、他のロボット等との干渉を回避するために、所定の信号が入力されるまで、目標点TP、アプローチ点AP、およびデパーチャ点DPの少なくともいずれかの点においてロボットRの動作を待機させる処理である。

 タスクには、インターロックを設定する点と、インターロックによる待機時間のタイムアウト値とを含むインターロック設定に関する情報を含んでもよい。 

 (2-3)タスクに対応するロボットプログラムの作成

 次に、階層型リストを用いたタスクに対応するロボットプログラム(以下、適宜「タスクプログラム」という。)の作成方法について、図4および図7を参照して説明する。図7は、本実施形態の一例に係る教示用ウィンドウの遷移を示す図である。

 図4に示す階層型リストにおいてタスクプログラムを作成するには、先ず、ロボット領域RAに含まれるロボットR(Robot_R)のハンド(Hand)のノード61~63のうちいずれかのノードを、オペレータがポインティングデバイスで選択して右クリック操作を行い、「タスク作成」を選択する。すなわち、ノードの選択は、オペレータの操作入力に基づいて、タスクにおけるロボットRのハンドの把持対象から選択される。 
「タスク作成」が選択されると、図7のタスクプログラム作成のための教示用ウィンドウW3が表示される。教示用ウィンドウW3はタスクの詳細設定を行うための画面であり、タスク名称(Name)と、タスクの種別(Function)、タスクの目標物(Target)の各項目が表示される。ここで、階層型リストのパーツ領域PAの中からいずれかの部品に対応するノードをポインティングデバイスで左クリックすることで、教示用ウィンドウW3の目標物(Target)の項目に、左クリックにより選択された部品が入力される。タスクの種別(Function)の欄には、予め設定された複数の種類のタスクの種別(例えば、取る(Pick up)、置く(Place)等)の候補からなるプルダウンメニューの中からいずれかのタスクの種別を選択できるように構成されている。 
次いで、階層型リストのパーツ領域PAの中から作業対象となる部品をポインティングデバイスで選択して左クリック操作を行うことにより、教示用ウィンドウW3の目標物(Target)の項目に、選択された部品が入力される。

 タスクの種別(Function)と目標物(Target)の各項目についてデータが入力されると、当該データに基づいて、タスクの名称(Name)が自動的に決定されて表示される。 
例えば、ロボットRのハンドが何も把持していない状態において、「ペントレイからペンPen1を取る」というタスクを作成するには、図4に示す階層型リストのロボット領域RA内のノード61を、オペレータはポインティングデバイスで右クリックしてから「タスク作成」を選択する。次いで、階層型リストのパーツ領域PAの中からペントレイ(PenTray)に対応するノード67を対象としてポインティングデバイスで左クリック操作を行うことで教示用ウィンドウW3の目標物(Target)の項目に、ペントレイ(PenTray)が入力される。タスクの種別(Function)の欄では、複数のタスクの種別の候補の中から「取る(Pick up)」を選択する。そして、階層型リストのパーツ領域PAの中から作業対象となるペンPen1に対応するノード68を対象としてポインティングデバイスで左クリック操作を行うことで、図7に示す教示用ウィンドウW3が表示される。 
以上の操作の結果、「ペントレイからペンPen1を取る」というタスクに対応して、“Pickup_Pen1_From_PenTray”という名称のタスクプログラムが作成される。

 本実施形態では、要素作業の対象となる部品(ここでは「ペンPen1」)と、要素作業の始点(例えば「ペントレイ」)若しくは終点とを階層型リスト上で指定することで、オペレータは直感的にタスクプログラムを作成することができる。また、タスクプログラムの名称は、タスクの作業内容(例えば「Pickup」)と、タスクの作業対象(例えば「ペンPen1」)と、タスクの始点となる部品(例えば「ペントレイ」)、又は終点となる部品とを含むように自動的に作成されるため、タスクプログラムの名称からタスクの内容が直ちに分かるようになっている。 
タスクプログラムを作成する際に、タスクに含まれるアプローチ点AP、目標点TP、および、デパーチャ点DPについての情報が自動的に作成されてもよい。あるいは、オペレータが教示用ウィンドウW3のボタンb1(「詳細設定」)を操作し、1又は複数のアプローチ点及び/又はデパーチャ点を設定してもよい。自動的にアプローチ点AP、目標点TP、および、デパーチャ点DPを作成する場合、部品の重心を目標点TPとして設定し、部品の重心を基準とした部品のローカル座標系において所定の軸上(例えばZ軸上)にアプローチ点APおよびデパーチャ点DPを設定してもよい。 
図7を参照すると、教示用ウィンドウW3のボタンb1(「詳細設定」)を操作することで、オペレータは、「アプローチ点、デパーチャ点設定」のほか、「モーションパラメータ設定」および「インターロック設定」のいずれかを選択することができる。

 モーションパラメータとは、タスクに含まれる隣接するアプローチ点AP間、アプローチ点APから目標点TPまでの間、および、目標点TPからデパーチャ点DPまでの間のロボットRのハンド52等の動きに関するパラメータである。例えば、かかるパラメータとして、移動速度、加速度、加速時間、減速時間、ロボットRの姿勢等が挙げられる。「モーションパラメータ設定」を選択することで、上記モーションパラメータをデフォルト値から変更することができる。

 「インターロック設定」を選択することで、インターロックの待機時間のタイムアウト値と、待機時間がタイムアウト値を超えてエラーと判断したときの動作の設定とを、デフォルト値から変更することができる。 
図7の教示用ウィンドウW3には、ボタンb2(「作成」)が設けられている。ボタンb2(「作成」)が操作されることで、教示用ウィンドウW3によって設定されたタスクが後述するタスクリストに登録される。 
(2-4)タスクに基づくプログラムの作成

 例えば、図6に示すタスクに対応するタスクプログラムは、以下の複数の関数からなり、各関数は、ロボットRに対応するモーションを実行させるためのプログラム(以下、適宜「モーションプログラム」という。)によって記述されている。

 なお、以下のmove(AP1)は、タスク間の移動として別に定義されてもよい。 

 ・move(AP1) …アプローチ点AP1までの移動

 ・interlock(IL1)…アプローチ点AP1でインターロック(IL1)による待機

 ・move(AP2)…アプローチ点AP2までの移動

 ・interlock(IL2)…アプローチ点AP2でインターロック(IL2)による待機

 ・move(TP)…目標点TPまでの移動

 ・handSequence()…ハンドシーケンス処理

 ・move(DP1)…デパーチャ点DP1までの移動

 ・move(DP2)…デパーチャ点DP2までの移動

 なお、interlock(IL1)およびinterlock(IL2)の関数において、タスクごとの動作確認を行う場合、プログラムは作成されるが、インターロックによる待機時間のタイムアウト値が無効となっている。 

 (2-5)タスクリスト

 タスクリストとは、ロボットRが行うジョブに含まれる複数のタスクを含む情報であり、複数のタスクの各々に対応するタスクプログラムの名称の一覧の情報である。特定のジョブを対象として教示用ウィンドウW3によって定義されたタスクは、順次、当該ジョブに対応するタスクリストに登録されていく。タスクリストに含まれる複数のタスクの順序は、当該複数のタスクの実行順序を示していることが、ジョブを管理する上で好ましい。 
図8の教示用ウィンドウW4は、「ペンにキャップを嵌めて製品を組み立てる」という一連の作業であるジョブ(「Pen Assembly」)に対応するタスクリストの一例を表示する。このタスクリストの一例は、以下の(i)~(vi)の6個のタスクを含む。この場合、タスクプログラム作成のための教示用ウィンドウW3によって、括弧内に表された名称のタスクプログラムが作成された場合を示している。

 (i) ペントレイからペンを取る (Pickup_Pen1_From_PenTray)

 (ii) 取ったペンを治具にセットする (Place_to_PenJ_in_PenProduct)

 (iii) キャップトレイからキャップを取る (Pickup_Cap1_From_CapTray)

 (iv) 治具上のペンにキャップを嵌める (Place_to_CapJ_in_PenJ)

 (v) キャップが嵌められたペンを取る (Pickup_PenProduct_From_JIG)

 (vi) キャップが嵌められたペンを製品トレイに置く (Place_to_PenProduct1_in_ProductTray) 
オペレータは、タスクリストにおいて、いずれかのタスクをポインティングデバイスで選択した状態でドラッグ操作を行うことで、選択されたタスクをタスクリスト中の任意の順序に設定することができる。 

 図8に示すように、タスクリストのいずれかのタスクをポインティングデバイスで選択した状態で右クリックを行うと、「タスク編集」、「タスク追加」、「タスク削除」のいずれかの処理を選択できる。ここで、「タスク編集」が選択された場合には、選択されているタスクの教示用ウィンドウW3に戻って、当該タスクについての情報を変更することができる。「タスク追加」が選択された場合には、選択されているタスクのすぐ後の順序に、作成済みのタスクを読み込んで挿入するか、あるいは、教示用ウィンドウW3に戻ってタスクを作成して挿入することができる。「タスク削除」が選択された場合には、選択されているタスクをタスクリストから削除することができる。

 オペレータの操作に応じてタスクプログラムが変更され、追加され、あるいは削除される。 
図8に示すように、タスクリスト中の各タスクには、各タスクに含まれる複数のモーションを表示するための展開アイコンEIが対応付けられている。いずれかの展開アイコンEIを操作することで、操作された展開アイコンEIに対応するタスクに含まれる複数のモーションが表示される。例えば、図8のタスクリストにおいてタスクTに対応する展開アイコンEIが操作されると、図9に示す教示用ウィンドウW5が表示される。 
図9に示す例では、タスクTには、タスクTに含まれる以下の複数のモーションを特定する名称であるモーション名称M21~M25が対応付けられて表示される。

 ・モーション名称M21… アプローチ点AP2までの動作 (Approach_point_2) 

 ・モーション名称M22… アプローチ点AP1までの動作 (Approach_point_1)

 ・モーション名称M23… 目標点TPまでの動作 (Target_point)

 ・モーション名称M24… ハンドの動作(Hand-Open)

 ・モーション名称M25… デパーチャ点DP1までの動作 (Departure_point_1)
図9に示す教示用ウィンドウW5では、展開アイコンEIに代えて折畳みアイコンFIがタスクTに対応付けられるとともに、タスクTに含まれるモーション名称M21~M25が表示される。なお、折畳みアイコンFIが操作されると、モーション名称M21~M25が非表示となり、再度図8に示す教示用ウィンドウW4が表示される。 
(2-6)近似形状データについて

 本実施形態の経路決定装置1では、後述するタスク内干渉チェックおよびタスク間干渉チェックを高速で実行するために、ロボットおよび部品の3次元モデルと対応付けて、近似形状データが作成されてストレージ22に記憶される。近似形状データは、3次元モデル同士の干渉の有無を高速で行うために、3次元モデルの外表面を複数の球体で覆うように、3次元モデルを球体の集合によって近似したデータである。 
好適には、1つの3次元モデルに対応して、球体のサイズが異なる複数の近似形状データが作成される。

 図10には、ロボットの3次元モデルと異なるレベルの近似形状データとが例示される。図10において、レベル1、レベル2、および、レベル3の近似形状データは、順に基本形状である球体の径が小さくなっていることがわかる。球体の径が小さいほど近似形状データに含まれる球体の数が多くなるため、レベル3の近似形状データは、3次元モデルの外表面が精度良く再現されたモデルである。また、球体の径をさらに小さくすることで、近似形状データのレベルをさらに上げてもよい。その一方で、干渉判定に要する計算時間については、近似形状データのレベル1~3の順に多くの時間がかかることになる。本実施形態は、後述するように、近似形状データの低レベルから高レベルへ順に上げていきながら干渉判定を行うことで、短時間で干渉判定を行うように構成される。

 近似形状データごとに、異なるレベルの球体のデータがツリー構造で管理されている。例えば、近似形状データの特定のレベル1の球体1つに対して、レベル2の球体2つが対応付けられ、当該レベル2の球体1つに対してレベル3の球体が4つ対応付けられている、といった具合である。 

 図11に、ロボットおよび部品のデータ構成を概念的に示す図である。

 図11に示すように、本実施形態では、階層型リストを構成するロボットRおよび各部品に対して、3次元モデルと、レベル1~3(L1~L3)の近似形状データとが対応付けられる。ロボットRの干渉判定結果を可視化するためにロボットRの動作のシミュレーションを実行するときには、ロボットRおよび各部品の3次元モデル、または3次元モデルに対応付けられた近似形状データが仮想空間に配置される。 
本実施形態では、同一である2以上の3次元モデルに対応付けられる近似形状データが効率的に作成される。すなわち、同一である2以上の3次元モデルのうちいずれかの3次元モデルに対応する近似形状データが作成済みで近似形状モデルデータベース225に含まれている場合には、近似形状データが作成されていない3次元モデルに対して、作成済みの近似形状データが対応付けられる。例えば、図11に示す例において、ペンPen1に対応する3次元モデルに対する近似形状データが作成済みである場合には、残りのペンPen2~Pen12に対する近似形状データとして、ペンPen1の近似形状データが複製され、ペンPen2~Pen12に対する3次元モデルに対応付けられる。 

 ロボットRに対応する近似形状データを構成する各球体は、それぞれ局所座標を有するか、または局所座標が参照される。ロボットRに対応する近似形状データの各球体の局所座標は、ロボットRの各リンク座標系と同じである。

 本実施形態の経路決定装置1では、ロボットRが動作するときの干渉チェックを行うときに、3次元モデルの仮想空間における位置の変更に伴って、3次元モデルに対応する近似形状データの仮想空間内の位置を逐次(例えば、干渉チェックを行う所定期間のタイミング毎に)変更する処理が行われる。このとき、近似形状データの各球体に設定された局所座標を利用して球体の位置の更新が行われる。

 例えばロボットRが6関節ロボットである場合に、ロボットRの基準座標(ロボット座標)に対する隣接するリンク座標系間の同次変換行列をT,T,T,T,T,Tとすると、各同次変換行列は、各関節の角度からもとめられる。そこで、本実施形態では、更新後のロボット座標系における球体の原点の座標は、更新前のロボット座標系における球体の原点の座標に対して、同次変換行列T,T,T,T,T,Tのうち球体が属するリンクに応じた分の1または複数の行列を掛け合わせることで算出される。例えば、TおよびTによって変換される局所座標を有する球体について、変更前および変更後のロボット座標系における球体の原点の座標をP,Pt+1とすると、Pt+1=(T・T)P,となる。なお、ロボットRの移動に応じて同次変換行列も更新されるため、原点の座標の更新に当たっては、更新後の行列が適用される。

 ロボットRの移動に応じて球体の原点の位置を順次更新していくことで、ロボットRが移動する度に3次元モデルに球体を再設定する必要がなくなるため、干渉判定処理のさらなる高速化を実現できる。 
(2-7)タスク内干渉チェック

 次に、タスク内干渉チェックについて、図12~図14を参照して説明する。図12は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。図13は、球体同士の干渉判定方法について説明する図である。図14は、ロボットの3次元モデルと部品とが干渉する場合の表示態様を例示する図である。 
タスク内干渉チェックとは、オペレータによって選択されたタスクをロボットが行ったときに当該タスク内に、ロボット、ワーク、および、周辺配置物の3次元モデルの干渉が仮想空間において発生するか否かを判定することである。

 タスク内干渉チェックを実行するには、タスクリストに登録されたいずれかのタスクを選択することにより行う。例えば、図12に示すように、タスクリストのうちタスクTのタスク内干渉チェックを行うには、オペレータは、タスクTを選択した上で右クリックし、ボタンb14(「動作確認」)を選択し、ボタンb141(「タスク内干渉チェック」)を選択する操作を行う。 
タスク内干渉チェックでは、選択されたタスクのタスクプログラムが情報処理装置2からロボット制御装置3へ送信され、ロボット制御装置3においてタスクプログラムが実行される。ロボット制御装置3は、タスクプログラムの実行結果としてロボット状態データを含む実行ログデータを情報処理装置2に返す。ロボット状態データは、マニピュレータ50のモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等)のデータである。 
情報処理装置2のCADソフトウェアは、ロボット状態データに従って仮想空間内でロボットRおよびロボットRに把持されたワークの3次元モデルを動作させる。このとき、情報処理装置2は、当該3次元モデルに対応する近似形状データが、他のロボットRおよび部品の3次元モデルに対応する近似形状データと干渉するか否かについて判定を行う。

 干渉判定のタイミングは適宜設定してよいが、例えば、ロボットの基準点が10mm移動する度に干渉判定が行われる。干渉判定のタイミングで、前述したように、ロボットの近似形状データを構成する各球体の位置が更新されて、干渉判定に利用される。 
本実施形態の例では、近似形状データが複数の球体で構成されているため、干渉の判定処理が容易である。すなわち、図13において、干渉判定対象の2個の球体が球体Cb1,Cb2(各球体の半径r1,r2はレベルに応じて既知である。)とした場合、球体Cb1,Cb2のそれぞれのロボット座標系における更新後の原点O1,O2が、前述したようにして算出される。そして、原点O1,O2間の距離Lが、球体Cb1の半径r1と球体Cb2の半径r2の和よりも大きい場合には、球体Cb1と球体Cb2の干渉が無いと判断できる。逆に、原点O1,O2間の距離Lが、球体Cb1の半径r1と球体Cb2の半径r2の和と同じかそれより小さい場合には、球体Cb1と球体Cb2の干渉があると判断できる。球体Cb1と球体Cb2の干渉がある場合には、球体Cb1が属するロボットまたは部品と、球体Cb2が属するロボットまたは部品とが干渉したと判断される。 
ロボットR同士およびロボットRと部品との干渉判定は、基本的には総当りで行われるが、明らかに干渉しない組合せについては干渉判定を行わなくてもよい。例えば、(i) ロボットRのハンドと、ハンド上のワーク、(ii) 周辺配置物と、周辺配置物に配置されたワーク、(iii) ハンド上のワークと、周辺配置物に配置された当該ワーク、については、干渉判定を行わなくてもよい。(i)については干渉が発生し得ず、(ii)については両者とも静止関係にあるために干渉が発生し得ず、(iii)については同時に存在し得ないもの同士であるためである。

 また、干渉判定の対象の特定の組合せについては、タスクの種別に応じて干渉判定を行う期間を限定してもよい。例えば、ロボット若しくは周辺配置物と、ハンド上のワークとの干渉を判定する際に、タスクの種別が「取る(Pick up)」である場合には最初のデパーチャ点以降の期間において干渉判定を行い、タスクの種別が「置く(Place)」である場合には最初のアプローチ点から目標点までの期間において干渉判定を行うようにしてもよい。 
干渉判定の結果は、3次元モデルのうち干渉が発生する部分を、干渉が発生しない部分と異なる態様で表示してもよい。例えば図14に示すように、ロボットRの3次元モデルのうち部品と干渉する部分RINFを干渉していない部分と異なる態様(例えば、異なる色、模様、輝度など)で表示してもよい。それによって、ロボットRのどの部位に干渉が発生するのかオペレータが認識できるため、ロボットRの教示点を変更する、あるいは部品の配置を変更する等の教示作業を支援することができる。 
干渉する部分RINFを3次元モデルと異なる様態で表示するとともに、干渉する部分RINFを近似形状データで表示してもよい。その際、近似形状データを構成する球体のサイズを表示することが好ましい。それによってオペレータは、近似形状データを構成する球体のサイズから、ロボットRの教示点をどの程度変更することで干渉を回避することができるのか認識することが容易となる。

 なお、図14では、ロボットRの3次元モデルが表示される場合について例示しているが、ロボットRの3次元モデルに代えて当該3次元モデルに対応する近似形状データが表示されてもよい。 
なお、CADソフトウェアは、オペレータによって選択されたいずれかの3次元モデルを仮想空間内で非表示にしてもよい。その場合、CADソフトウェアにより仮想空間内で非表示にされた3次元モデルについては、干渉が発生するか否かについての判定の対象としないようにすることが好ましい。それによって、オペレータが注目したい部分についての干渉の有無が認識しやすくなる。例えば、仮想空間を表示するときの視点によっては、オペレータが注目したい部分と、部品とが重なってしまう場合が生じうるが、その場合に、当該部品を非表示とすることで注目したい部分で干渉が生ずるか否かオペレータが確認しやすくなる。 
(2-8)タスク間干渉チェック

 タスク間干渉チェックは、オペレータによって選択された2つのタスク間のロボットの移動中に、ロボット、ワーク、および、周辺配置物の3次元モデルの干渉が仮想空間において発生するか否かを判定することである。 
タスク間干渉チェックを実行するには、例えば、タスクリストに登録された少なくとも2以上のタスクを選択することにより行う。図15に示すように、例えば、タスクリストのうちタスクT~Tのタスク間干渉チェックを行うには、オペレータは、タスクT~Tを選択した上で右クリックし、ボタンb14(「動作確認」)を選択し、ボタンb142(「タスク間干渉チェック」)を選択する操作を行う。 
タスク間干渉チェックでは、選択された2以上のタスクのタスク間の動作が設定された部分のロボットプログラム(例えば、上記move(AP1))が情報処理装置2からロボット制御装置3へ送信され、ロボット制御装置3においてロボットプログラムが実行される。ロボット制御装置3は、ロボットプログラムの実行結果としてロボット状態データを含む実行ログデータを情報処理装置2に返す。ロボット状態データは、マニピュレータ50のモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等)のデータである。 
情報処理装置2のCADソフトウェアは、ロボット状態データに従って仮想空間内でロボットRおよびロボットRに把持されたワークの3次元モデルを動作させる。このとき、情報処理装置2は、当該3次元モデルに対応する近似形状データが、他のロボットRおよび部品の3次元モデルに対応する近似形状データと干渉するか否かについて判定を行う。

 干渉判定のタイミングは適宜設定してよいが、例えば、ロボットの基準点が10mm移動する度に干渉判定が行われる。干渉判定のタイミングで、前述したように、ロボットの近似形状データを構成する各球体の位置が更新されて、干渉判定に利用される。 
(2-9)干渉判定処理

 次に、図16のフローチャートを参照して、干渉判定(干渉チェック)の処理について説明する。図16のフローチャートは、主として情報処理装置2の制御部21によって実行される。 
図16に示すフローチャートにおいて、ロボットRの基準点が10mm移動する度にステップS12以降の処理が行わる。ロボットRの基準点が前回から10mm移動した場合(ステップS10:YES)、近似形状データの位置の更新を行う(ステップS12)。近似形状データの位置の更新は、当該近似形状データを構成する1または複数の球体の原点をすべて更新することによって行われる。 
次いで、制御部21は、ロボットR同士、およびロボットRと部品との干渉判定を総当りで行う。このとき、ロボットRおよび部品の近似形状データとして、最も球体のサイズが大きいレベル1の近似形状データを用いて、干渉判定が行われる(ステップS14)。干渉の有無は、図13を参照して説明したように、干渉判定の対象となる2つの近似形状データからそれぞれ1つの球体に着目し、球体同士が干渉するか否かを、原点間の距離と、レベル1として予め設定されている各球体の半径の和との大小に基づいて行う。干渉判定の対象となる2つの近似形状データに対して着目する球体を順次変更し、総当りで球体同士が干渉するか否かを判定する。その結果、1つも球体同士が干渉しない場合には(ステップS16:NO)、制御部21は、2つの近似形状データが干渉しないと判断し(ステップS18)、終了する。 
ステップS14のレベル1の近似形状データでの干渉チェックにおいて、ロボットR同士の組合せ、およびロボットRと部品の組合せのうち、干渉が生じた組合せについては(ステップS16:YES)、制御部21は、球体のサイズがレベル1より小さいレベル2の近似形状データを用いて干渉判定を行う(ステップS20)。球体のサイズが異なる点を除けば、干渉判定の処理は、ステップS14と同じである。すなわち、制御部21は、干渉判定の対象となる2つの近似形状データについて1つも球体同士が干渉しない場合には(ステップS22:NO)、2つの近似形状データが干渉しないと判断し(ステップS18)、終了する。 
ステップS20のレベル2の近似形状データでの干渉チェックにおいて、ロボットR同士の組合せ、およびロボットRと部品の組合せのうち、干渉が生じた組合せについては(ステップS22:YES)、制御部21は、球体のサイズがレベル2よりさらに小さいレベル3の近似形状データを用いて干渉判定を行う(ステップS24)。球体のサイズが異なる点を除けば、干渉判定の処理は、ステップS14と同じである。すなわち、制御部21は、干渉判定の対象となる2つの近似形状データについて1つも球体同士が干渉しない場合には(ステップS26:NO)、2つの近似形状データが干渉しないと判断し(ステップS18)、終了する。 
ステップS24のレベル3の近似形状データでの干渉チェックにおいて、ロボットR同士の組合せ、およびロボットRと部品の組合せに対して干渉が生じた場合には(ステップS26:YES)、干渉があると判断し(ステップS28)、干渉判定結果のデータをストレージ22に記録して終了する。干渉判定結果のデータは、ロボットR、および/または、ロボットRと部品における干渉した球体の位置のデータが含まれる。

 図16のフローチャートに示すように、好ましくは、干渉判定は、精度が低いレベル1の近似形状データから精度が高いレベル3の近似形状データを順に用いて、段階的に干渉判定が行われる。また、好ましくは、干渉チェックにおいて、干渉が生じた組合せのうち、干渉した球体のみを高精度のレベルの近似形状データとする。そのため、最初から精度が高いレベル3の近似形状データを用いて干渉判定を行う場合と比較して、干渉判定に要する演算負荷が低減される。 
(3)干渉が発生する場合の経由点の設定

 次に、ロボットRを始点から終点まで移動させる場合の経由点の設定方法について、図17のフローチャートを参照して説明する。例えば、ロボットRを始点から終点まで移動させるときに、途中で部品と干渉が発生する場合には、当該部品を避けるようにして経由点を設ける必要がある。 
以下、図18の例示を参照しながら、図17のフローチャートについて説明する。図18は、候補点(後述する)の設定について説明する図である。図1に示すフローチャートは教示プログラムに記述されており、情報処理装置2の制御部21によって実行される。 図17において、所定の始点から所定の終点までロボットRを移動させる場合、制御部21は、例えば、始点や終点の座標データや近似形状データ等の必要なデータを抽出し(ステップS30)、干渉チェックを行う(ステップS32)。干渉チェックの具体的な処理は、図16を参照して説明したとおりである。

 ステップS32の結果、干渉が発生しない場合には(ステップS34:NO)、始点と終点の間に経由点を設ける必要がないため、終了する。ステップS32の結果、干渉が発生する場合には(ステップS34:YES)、経由点を設定するためにステップS36以降に進む。 
ロボットと部品の干渉が発生した場合、制御部21は、球体で構成される部品の近似形状データにおいてロボットと干渉する球体を大径化した球体の表面に候補点を設定する(ステップS36)。候補点とは、ロボットRの始点から終点までの経路の経由点となり得る、経由点の候補となる点を意味する。

 例えば、部品の特定のレベル3の球体(図10参照)において干渉が発生する場合、当該レベル3の球体に対して、ツリー構造上で対応するレベル2の球体(図10参照)の表面上に候補点を設定する。 
図18は、候補点VCが設定されたレベル2の球体Cb10(L2)を示している。この例では、始点と終点の間に存在するレベル3の球体(図示せず)において干渉が発生したため、当該球体に対応付けられている、より径の大きいレベル2の球体Cb10(L2)に候補点VCが設定された場合が想定されている。干渉が発生した球体よりも一回り大きな球体の表面上に候補点VCを設定することで、現在生じている干渉を回避しつつ、別の部品との新たな干渉が発生する可能性を低くすることができる。 
図18に示す例では、レベル2の球体Cb10(L2)の表面上に、ユーザによって指定された数の候補点VCを均等に設定している。 
複数の候補点VCを設定した後、制御部21は、各候補点VCを仮に経由点とした場合に干渉が発生するか否かの干渉チェックを行う。具体的には、制御部21は、ロボットRを始点から候補点VCまで移動させたときの干渉チェックを行うとともに(ステップS38)、ロボットRを当該候補点VCから終点まで移動させたときの干渉チェックを行う(ステップS40)。ステップS38およびS40の処理は、ステップS36で設定されたすべての候補点VCを対象として行う(ステップS42:NO)。制御部21は、各候補点VCに対するステップS38,S40の干渉チェックの結果をストレージ22に記録する。

 各候補点VCに対する干渉チェックの結果、干渉を回避できる候補点VCが1つでも存在したと判定された場合(ステップS44:YES)、干渉を回避できる候補点VCの中からいずれかの候補点VCをユーザが選択可能となるように、候補点VCを表示する(ステップS46)。 
ステップS46における好ましい表示例を図19に示す。

 図19に示す表示例では、以下の4グループに分けて、各グループを異なる表示態様で表示する。このようにグループ分けして候補点VCを表示することで、ユーザに対して、候補点VCの中から適切な経由点を選択するための有用な情報を与えることができる。

 なお、各グループの異なる表示態様は一例に過ぎず、異なるグループが識別できる限り如何なる表示態様であってもよい。例えば、グループごとに異なる色で表示してもよい。 

 ・「●」:始点から候補点VCまでの経路、および、候補点VCから終点までの経路において近似形状データの干渉が発生しないという第1条件を満たす候補点(第1候補点の一例)からなる第1候補点からなる第1候補点グループ

 ・「△」:始点から候補点VCまでの経路において近似形状データの干渉が発生せず、候補点VCから終点までの経路において近似形状データの干渉が発生するという第2条件を満たす候補点(第2候補点の一例)からなる第2候補点グループ

 ・「▲」:始点から候補点VCまでの経路において近似形状データの干渉が発生し、候補点VCから終点までの経路において近似形状データの干渉が発生しないという第3条件を満たす候補点(第3候補点の一例)からなる第3候補点グループ

 ・「×」:始点から候補点VCまでの経路、および、候補点VCから終点までの経路のいずれにおいても近似形状データの干渉が発生するという第4条件を満たす候補点からなる第4候補点グループ 
ユーザが例えばポインティングデバイスを用いて、ステップS46に表示された候補点VCの中からいずれかの候補点VCを選択した場合(ステップS48:YES)、制御部21は、選択された候補点VCを経由点として決定する(ステップS50)。 
ステップS44において、干渉を回避できる候補点VCが1つも存在しないと判定された場合(ステップS44:NO)、制御部21は、ステップS36で候補点VCを設定した球体よりもさらに1サイズ大きい球体の表面上に候補点VCを設定する(ステップS52)。そして、ステップS38~S42の処理を再び繰り返す。候補点VCを設定する球体を大きくすることで、干渉を回避できる可能性が高くなる。 
図17のフローチャートのステップS44において、干渉を回避する候補点VCが1つも存在しない場合には、2以上の経由点を設定するようにしてもよい。

 例えば図20において、干渉を回避する候補点VCが1つも存在しない場合、第2候補点グループの中のいずれかの候補点VCを、第1の経由点V1として決定する。つまり、図20に示す例では、始点から第1の経由点V1までの経路で干渉が発生しないが、第1の経由点V1から終点までの経路で、近似形状データのレベル3の球体Cb12(L3)と干渉する。

 かかる場合には、第1の経由点V1を始点とした場合の始点から終点までの経路において、図17の処理を実行する。すなわち、図21に示すように、近似形状データのレベル3の球体Cb12(L3)より大径化した、レベル2の球体Cb12(L2)の表面上に候補点を設定する。図21には、レベル2の球体Cb12(L2)の表面上に候補点から第2の経由点V2が決定された例が示される。図21に示した例では、始点→第1の経由点V1→第2の経由点V2→終点、のロボットRの経路によって干渉の発生が回避される。 
図18に示した例では、レベル2の球体Cb10(L2)の表面上に、ユーザによって指定された数の候補点VCを均等に設定した場合を示したが、その限りではない。

 図22に示すように、始点と終点とを結ぶ直線DLと直交するレベル2の球体Cb10(L2)の切断面のうちレベル2の球体Cb10(L2)と交わる円の径が最大となる平面PL1を定義したときに、当該平面PL1上であってレベル2の球体Cb10(L2)の表面と交わる円上に複数の候補点VCを設定してもよい。この場合、設定された複数の候補点VCの中には、レベル2の球体Cb10(L2)の表面上で直線DLから最も離れた候補点VCが含まれることになるため、干渉を回避できる可能性が高くなる。また、レベル2の球体Cb10(L2)の表面上に均等に候補点VCを設けるよりも、候補点VCの数が少なくて済むため、経由点を決定するための演算負荷が低減する。 
(4)経路決定装置1の機能

 次に、本実施形態の経路決定装置1の機能について、図23を参照して説明する。図23は、実施形態に係る経路決定装置1の機能ブロック図である。

 図23に示すように、経路決定装置1は、表示制御部101、データ作成部102、プログラム実行部103、状態情報算出部104、干渉判定部105、候補点設定部106、および、候補点特定部107を備える。

 本実施形態の経路決定装置1において、情報処理装置2のストレージ22は、前述したように、ロボットプログラム221、階層型リストデータベース222、3次元モデルデータベース223、実行ログデータベース224、および、近似形状モデルデータベース225を備える。 
表示制御部101は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示装置24に表示させる制御を行う。

 表示制御部101は、ロボット、ワーク、および、周辺配置物の3次元モデルを仮想空間内に配置して表示装置24に表示させる機能を備える。当該機能は、CADソフトウェアが3次元モデルデータベース223を参照することによって実現される。

 表示制御部101は、近似形状データを仮想空間内に配置して表示装置24に表示させる機能を備える。当該機能を実現するために、情報処理装置2の制御部21は、ストレージ22の近似形状モデルデータベース225にアクセスして、仮想空間に配置すべき近似形状データを読み出す。近似形状データは、3次元モデルデータベース223の3次元モデルに対応付けられている。 
表示制御部101は、候補点特定部107によって特定された候補点を、当該候補点の中からユーザが経由点を選択可能となるように、表示装置24に表示する機能を備える。 
データ作成部102は、3次元モデルデータベース223に含まれる3次元データを球体の集合によって近似した近似形状データを作成する機能を備える。当該機能を実現するために、情報処理装置2の制御部21が、3次元モデルデータベース223からロボットおよび部品の3次元モデルを読み出し、3次元モデルの外表面を1または複数の球体で覆うようにして球体を配置することで、3次元モデルに対応する近似形状データを作成する。作成された近似形状データは、近似形状モデルデータベース225に記録される。 
プログラム実行部103は、オペレータの操作入力に応じて、ロボットプログラムの全部または一部を実行する機能を備える。

 プログラム実行部103の機能を実現するために、タスクリストのうちいずれかのタスクを選択した状態でのボタンb141(「タスク内干渉チェック」)の操作、または、タスクリストのうち2以上のタスクを選択した状態でのボタンb142(「タスク間干渉チェック」)を選択する操作に応じて、通信インタフェース部25を介してロボットプログラムをロボット制御装置3へ送信する。送信対象とするロボットプログラムの範囲は、タスクリストにおいて選択されたタスクに基づく。ロボット制御装置3の制御部31は、ロボットプログラムを受信すると、ロボットプログラムを実行する。 
状態情報算出部104は、プログラム実行部103による実行結果に基づいて、時間の経過に応じたロボットの状態を示す情報であるロボット状態データを演算する機能を備える。 
状態情報算出部104の機能を実現するために、ロボット制御装置3の制御部31は、情報処理装置2からロボットプログラムを実行し、ロボットプログラムの実行結果として、ロボット状態データを演算して順次、ストレージ32に記録する。

 ロボット状態データは、マニピュレータ50のモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等)のデータである。

 ロボットプログラムの実行が終了すると、制御部31は、ストレージ32から、時間軸に沿った所定の基準時間(例えば1ms)ごとのロボット状態データを読み出す。制御部31は、読み出したロボット状態データを含む実行ログデータを、通信インタフェース部33を介して情報処理装置2へ送信する。情報処理装置2の制御部21は、ロボット制御装置3からロボット状態データを含む実行ログデータを取得すると、実行ログデータを実行ログデータベース224に記録する。 
干渉判定部105は、始点から終点までの経路においてロボットRを移動させたときに、近似形状データの干渉が発生するか否かを判定する機能を備える。干渉の有無は、ロボットプログラムの実行ログデータに基づいて決定される。干渉判定部105は、図16の干渉判定処理に相当する。 
候補点設定部106は、干渉判定部105によって干渉が発生すると判定された場合、近似形状データのうち干渉が発生した球体より大径の球体の表面上に、ロボットRが経由する経由点の候補となる複数の候補点を設定する機能を備える。候補点設定部106は、例えば、図17のフローチャートのステップS36の処理に対応する。 
候補点特定部107は、始点から候補点までの経路、および、候補点から前記終点までの経路においてロボットRに移動させたときに、近似形状データの干渉が発生しない候補点を、複数の候補点の中から特定する機能を備える。候補点特定部107は、例えば、図17のフローチャートのステップS38~S44の処理に相当する。 
データ作成部102は、3次元データに対応して、それぞれ球体の径が異なる複数の近似形状データを作成し、当該複数の近似形状データの各球体は、径が大きい球体が当該球体よりも径が小さい2以上の球体と対応付けられるようにツリー構造によって構成されてもよい。その場合、候補点設定部106は、近似形状データのうち干渉が発生した球体に対応付けられている、より径が大きい球体の表面上に、複数の候補点を設定する。

 なお、近似形状データのうち干渉が発生した球体に対して、ツリー構造に対応する大径の球体の表面上に候補点を設定することは必須ではない。例えば、近似形状データのうち干渉が発生した球体と同心の、より大径の球体の表面上に候補点を設定してもよい。 
図17のフローチャートのステップS52に示したように、候補点特定部107が、近似形状データの干渉が発生しない候補点を特定することができない場合には、候補点設定部106は、候補点が設定されている球体に対応付けられている、より径が大きい球体の表面上に、複数の候補点を新たに設定してもよい。その場合、候補点特定部107は、新たに設定した複数の候補点の中から、近似形状データの干渉が発生しない候補点を特定する。 
以上説明したように、本実施形態の経路決定装置1では、1または複数の球体の集合体で構成した近似形状データでロボットや部品をモデル化し、近似形状データを用いてロボットを動作させたときの干渉判定を行う。干渉が発生した場合には、近似形状データのうち干渉が発生した球体より大径の球体の表面上に、ロボットが経由する経由点の候補となる複数の候補点を設定し、当該複数の候補点の中から干渉が発生しない候補点を特定する。そして、特定された候補点の中から、ユーザの選択に従って経由点を決定する。

 複数の候補点は、例えば、干渉が発生した球体に対して予め対応付けられた、より大径の球体上に設定される。そして、各候補点を経由するときの干渉判定は、図13を参照して説明したように簡単な処理で行うことができる。すなわち、干渉が発生しない経由点の候補となる候補点を経由点の決定は短時間で行うことができる。干渉が発生しない候補点の中からユーザによる簡易な操作で経由点が決定される。したがって、本実施形態の経路決定装置1によれば、簡易な操作で、かつ短時間で、干渉を回避するロボットの動作経路を生成できる。 
以上、本発明の経路決定装置の実施形態について詳述したが、本発明は上記の実施形態に限定されない。また、上記の実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更が可能である。

 例えば、図24に、図17のフローチャートの変形例を示す。図24では、各候補点に対する干渉チェックが終了した後(ステップS42:YES)、干渉チェック結果を図19に例示したようにして表示し、ユーザがいずれの候補点も経由点として選択しないことを決定した場合にステップS52に進む。この変形例では、干渉が発生しない候補点が存在しない場合であっても、候補点を設定する球体を大きくすることなく、複数の経由点を設定することで柔軟に経路を決定していくことができる。 
上述した説明により、図23の機能ブロック図に記載された機能のうち少なくとも一部の機能をコンピュータに実現させるためのプログラム、および、当該プログラムが記録されたコンピュータ可読記憶媒体(不揮発性の記憶媒体をも含む。)が開示されていることは当業者に理解される。
1…経路決定装置、2…情報処理装置、21…制御部、22…ストレージ、23…入力装置、24…表示装置、25…通信インタフェース部、3…ロボット制御装置、31…制御部、32…ストレージ、33…通信インタフェース部、11…ペントレイ、P…ペン群、12…キャップトレイ、C…キャップ群、13…治具、14…製品トレイ、EC…イーサネットケーブル、R…ロボット、51…アーム、52…ハンド、61~68…ノード、101…表示制御部、102…データ作成部、103…プログラム実行部103…状態情報算出部104…干渉判定部、106…候補点設定部、107…候補点特定部、221…ロボットプログラム、222…階層型リストデータベース、223…3次元モデルデータベース、224…実行ログデータベース、225…近似形状モデルデータベース、RA…ロボット領域、PA…パーツ領域、W1~W5…ウィンドウ、b1~b2,b11~b13,b141,b142…ボタン、AP…アプローチ点、TP…目標点、DP…デパーチャ点、TL…テーブル、T…タスク、M…モーション名称、Cb1,Cb2…球体、Cb10(L2),Cb12(L2)…レベル2の球体、Cb12(L3)…レベル3の球体、O1,O2…原点、VC…候補点、V…経由点、DL…直線DL、PL1…切断面、CL1…円

Claims (8)


  1.  ロボット、前記ロボットの作業対象となるワーク、および、前記ロボットの周辺に配置される周辺配置物のうち少なくともいずれかの3次元データを記憶する記憶部と、

     前記記憶部に記憶される3次元データを、当該3次元データの外表面を覆うように1または複数の球体を配置することで当該3次元データの近似形状データを作成するデータ作成部と、

     始点から終点までの経路において前記ロボットを移動させたときに、前記近似形状データの干渉が発生するか否かを判定する干渉判定部と、

     前記干渉判定部によって干渉が発生すると判定された場合、前記近似形状データのうち干渉が発生した球体より大径の球体の表面上に、前記ロボットが経由する経由点の候補となる複数の候補点を設定する候補点設定部と、

     前記始点から候補点までの経路、および、候補点から前記終点までの経路において前記ロボットに移動させたときに、前記近似形状データの干渉が発生しない候補点を、前記複数の候補点の中から特定する候補点特定部と、

     前記候補点特定部によって特定された候補点を、当該候補点の中からユーザが前記経由点を選択可能となるように、表示装置に表示する表示制御部と、

     を備えた、ロボットの経路決定装置。

  2.  前記データ作成部は、前記3次元データに対応して、それぞれ球体の径が異なる複数の近似形状データを作成し、当該複数の近似形状データの各球体は、径が大きい球体が当該球体よりも径が小さい2以上の球体と対応付けられるようにツリー構造によって構成され、

     前記候補点設定部は、前記近似形状データのうち干渉が発生した球体に対応付けられている、より径が大きい球体の表面上に、前記複数の候補点を設定する、

     請求項1に記載されたロボットの経路決定装置。

  3.  前記候補点特定部が、前記近似形状データの干渉が発生しない候補点を特定することができない場合には、前記候補点設定部は、候補点が設定されている球体に対応付けられている、より径が大きい球体の表面上に、複数の候補点を新たに設定し、

     前記候補点特定部は、新たに設定した前記複数の候補点の中から、前記近似形状データの干渉が発生しない候補点を特定する、

     請求項2に記載されたロボットの経路決定装置。

  4.  前記表示制御部は、前記複数の候補点のうち、

      前記始点から候補点までの経路、および、候補点から前記終点までの経路において前記近似形状データの干渉が発生しないという第1条件を満たす第1候補点と、

      前記始点から候補点までの経路において前記近似形状データの干渉が発生せず、候補点から前記終点までの経路において前記近似形状データの干渉が発生するという第2条件を満たす第2候補点と、

      前記始点から候補点までの経路において前記近似形状データの干渉が発生し、候補点から前記終点までの経路において前記近似形状データの干渉が発生しないという第3条件を満たす第3候補点と、

     を異なる表示態様で表示する、

     請求項1から3のいずれか1項に記載されたロボットの経路決定装置。

  5.  前記候補点設定部は、前記複数の候補点を設定すべき球体の表面上に、前記ユーザによって指定された数の候補点を均等に設定する、

     請求項1から4のいずれか1項に記載された、ロボットの経路決定装置。

  6.  前記候補点設定部は、前記始点と前記終点とを結ぶ直線と直交する面のうち前記表面と交わる円の径が最大となる平面を定義したときに、当該平面上であって前記表面と交わる円上に前記複数の候補点を設定する、

     請求項1から4のいずれか1項に記載された、ロボットの経路決定装置。

  7.  ロボット、前記ロボットの作業対象となるワーク、および、前記ロボットの周辺に配置される周辺配置物のうち少なくともいずれかの3次元データを用いて前記ロボットの経路を決定する経路決定方法であって、

     前記3次元データを、当該3次元データの外表面を覆うように1または複数の球体を配置することで当該3次元データの近似形状データを作成し、

     始点から終点までの経路において前記ロボットを移動させたときに、前記近似形状データの干渉が発生するか否かを判定し、

     干渉が発生すると判定された場合、前記近似形状データのうち干渉が発生した球体より大径の球体の表面上に、前記ロボットが経由する経由点の候補となる複数の候補点を設定し、

     前記始点から候補点までの経路、および、候補点から前記終点までの経路において前記ロボットに移動させたときに、前記近似形状データの干渉が発生しない候補点を、前記複数の候補点の中から特定し、

     前記特定された候補点を、当該候補点の中からユーザが前記経由点を選択可能となるように、表示装置に表示する、

     ロボットの経路決定方法。

  8.  ロボット、前記ロボットの作業対象となるワーク、および、前記ロボットの周辺に配置される周辺配置物のうち少なくともいずれかの3次元データを記憶する記憶装置を参照して、前記ロボットの経路を決定するためのプログラムであって、コンピュータに、

     前記記憶装置に記憶される3次元データを、当該3次元データの外表面を覆うように1または複数の球体を配置することで当該3次元データの近似形状データを作成するデータ作成手段と、

     始点から終点までの経路において前記ロボットを移動させたときに、前記近似形状データの干渉が発生するか否かを判定する干渉判定手段と、

     前記干渉判定手段によって干渉が発生すると判定された場合、前記近似形状データのうち干渉が発生した球体より大径の球体の表面上に、前記ロボットが経由する経由点の候補となる複数の候補点を設定する候補点設定手段と、

     前記始点から候補点までの経路、および、候補点から前記終点までの経路において前記ロボットに移動させたときに、前記近似形状データの干渉が発生しない候補点を、前記複数の候補点の中から特定する候補点特定手段と、

     前記候補点特定手段によって特定された候補点を、当該候補点の中からユーザが前記経由点を選択可能となるように、表示装置に表示する表示制御手段と、

     を実現させるためのプログラム。
PCT/JP2019/037124 2018-09-26 2019-09-20 ロボットの経路決定装置、ロボットの経路決定方法、プログラム WO2020066949A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020549167A JP7259860B2 (ja) 2018-09-26 2019-09-20 ロボットの経路決定装置、ロボットの経路決定方法、プログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-179924 2018-09-26
JP2018179924 2018-09-26

Publications (1)

Publication Number Publication Date
WO2020066949A1 true WO2020066949A1 (ja) 2020-04-02

Family

ID=69949433

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/037124 WO2020066949A1 (ja) 2018-09-26 2019-09-20 ロボットの経路決定装置、ロボットの経路決定方法、プログラム

Country Status (2)

Country Link
JP (1) JP7259860B2 (ja)
WO (1) WO2020066949A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022030414A1 (ja) * 2020-08-05 2022-02-10 ファナック株式会社 ロボットの構成部材の干渉を検出するロボット装置
WO2022190545A1 (ja) * 2021-03-09 2022-09-15 オムロン株式会社 安全検証装置、安全検証方法、およびプログラム
JP7454046B2 (ja) 2020-06-25 2024-03-21 株式会社日立ハイテク ロボット教示装置及び作業教示方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63158620A (ja) * 1986-10-29 1988-07-01 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 案内物体移動制御方法および装置
JPH05250023A (ja) * 1991-10-23 1993-09-28 Sanyo Electric Co Ltd ロボットマニピュレータの経路自動生成法
JPH0934524A (ja) * 1995-07-18 1997-02-07 Kobe Steel Ltd ロボットマニピュレータの移動経路の自動生成方法
JPH0981228A (ja) * 1995-09-19 1997-03-28 Fanuc Ltd ロボット教示操作盤およびロボットプログラムの更新方法
JPH1020916A (ja) * 1996-07-01 1998-01-23 Kubota Corp 移動体の移動経路の生成方法及び装置
JP2004046542A (ja) * 2002-07-11 2004-02-12 Mitsubishi Heavy Ind Ltd モデル加工方法およびモデル加工システム
JP2005081405A (ja) * 2003-09-10 2005-03-31 Murata Mach Ltd パンチプレス用干渉チェック装置
JP2009233757A (ja) * 2008-03-25 2009-10-15 Ihi Corp ロボット装置の制御方法及びロボット装置
JP2009291540A (ja) * 2008-06-09 2009-12-17 Hitachi Ltd 移動ロボットシステム
JP2017217143A (ja) * 2016-06-06 2017-12-14 東芝メディカルシステムズ株式会社 X線診断装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009110090A1 (ja) 2008-03-07 2009-09-11 三菱電機株式会社 加飾部品

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63158620A (ja) * 1986-10-29 1988-07-01 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 案内物体移動制御方法および装置
JPH05250023A (ja) * 1991-10-23 1993-09-28 Sanyo Electric Co Ltd ロボットマニピュレータの経路自動生成法
JPH0934524A (ja) * 1995-07-18 1997-02-07 Kobe Steel Ltd ロボットマニピュレータの移動経路の自動生成方法
JPH0981228A (ja) * 1995-09-19 1997-03-28 Fanuc Ltd ロボット教示操作盤およびロボットプログラムの更新方法
JPH1020916A (ja) * 1996-07-01 1998-01-23 Kubota Corp 移動体の移動経路の生成方法及び装置
JP2004046542A (ja) * 2002-07-11 2004-02-12 Mitsubishi Heavy Ind Ltd モデル加工方法およびモデル加工システム
JP2005081405A (ja) * 2003-09-10 2005-03-31 Murata Mach Ltd パンチプレス用干渉チェック装置
JP2009233757A (ja) * 2008-03-25 2009-10-15 Ihi Corp ロボット装置の制御方法及びロボット装置
JP2009291540A (ja) * 2008-06-09 2009-12-17 Hitachi Ltd 移動ロボットシステム
JP2017217143A (ja) * 2016-06-06 2017-12-14 東芝メディカルシステムズ株式会社 X線診断装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7454046B2 (ja) 2020-06-25 2024-03-21 株式会社日立ハイテク ロボット教示装置及び作業教示方法
WO2022030414A1 (ja) * 2020-08-05 2022-02-10 ファナック株式会社 ロボットの構成部材の干渉を検出するロボット装置
JP7415013B2 (ja) 2020-08-05 2024-01-16 ファナック株式会社 ロボットの構成部材の干渉を検出するロボット装置
WO2022190545A1 (ja) * 2021-03-09 2022-09-15 オムロン株式会社 安全検証装置、安全検証方法、およびプログラム

Also Published As

Publication number Publication date
JP7259860B2 (ja) 2023-04-18
JPWO2020066949A1 (ja) 2021-08-30

Similar Documents

Publication Publication Date Title
US11213945B2 (en) Robot simulator, robot system and simulation method
US9387589B2 (en) Visual debugging of robotic tasks
WO2020066949A1 (ja) ロボットの経路決定装置、ロボットの経路決定方法、プログラム
US11007646B2 (en) Programming assistance apparatus, robot system, and method for generating program
JP6676286B2 (ja) 情報処理方法、および情報処理装置
JP2019171501A (ja) ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム
EP1310844B1 (en) Simulation device
WO2019064916A1 (ja) ロボットシミュレータ
JP6449534B2 (ja) ロボットシミュレータ用の教示点プログラム選択方法
JP2019532827A (ja) 衝突回避動作計画のための方法
JP7151713B2 (ja) ロボットシミュレータ
JPWO2019064919A1 (ja) ロボット教示装置
JP2019171498A (ja) ロボットプログラム実行装置、ロボットプログラム実行方法、プログラム
JPH1177569A (ja) オフラインティーチング装置
CN115703227A (zh) 机器人的控制方法、机器人以及计算机可读存储介质
WO2020059342A1 (ja) ロボットシミュレータ
US20220395985A1 (en) Information processing apparatus, information processing method, display apparatus, display method, robot system, article production method, program, and storage medium
US20220281103A1 (en) Information processing apparatus, robot system, method of manufacturing products, information processing method, and recording medium
JP7099470B2 (ja) ロボット教示装置
JP7024795B2 (ja) ロボット教示装置
WO2020066947A1 (ja) ロボットの経路決定装置、ロボットの経路決定方法、プログラム
Solvang et al. Robot programming in machining operations
JP7167925B2 (ja) ロボット教示装置
JP2019171499A (ja) ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム
JP2019171500A (ja) ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム

Legal Events

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

Ref document number: 19865964

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020549167

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19865964

Country of ref document: EP

Kind code of ref document: A1