WO2020066947A1 - ロボットの経路決定装置、ロボットの経路決定方法、プログラム - Google Patents
ロボットの経路決定装置、ロボットの経路決定方法、プログラム Download PDFInfo
- Publication number
- WO2020066947A1 WO2020066947A1 PCT/JP2019/037120 JP2019037120W WO2020066947A1 WO 2020066947 A1 WO2020066947 A1 WO 2020066947A1 JP 2019037120 W JP2019037120 W JP 2019037120W WO 2020066947 A1 WO2020066947 A1 WO 2020066947A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- robot
- point
- task
- interference
- evacuation
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/06—Safety devices
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical 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/4093—Numerical 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 robot when an unexpected problem such as an error occurs during operation of the robot, the robot can be automatically moved to a safe position.
- 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 device 2 is provided for performing offline teaching by a user, and is disposed, for example, at a position (for example, a user's work place) away from a factory where a robot is installed.
- 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.
- 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.
- 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 user 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 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.
- 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
- FIG. 5 is a diagram for conceptually explaining a job.
- FIG. 6 is a diagram for conceptually explaining a 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.
- 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 user 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 approach point AP When creating a task program, information on the approach point AP, the target point TP, and the departure point DP included in the task may be automatically created.
- the user 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 user 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 task in the task list is selected with a pointing device and right-clicked, 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.
- a task program is changed, added, or deleted according to a user operation.
- 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)
- FIG. 10 is a diagram showing transition of the teaching window according to an example of the embodiment.
- FIG. 11 is a diagram illustrating a display example of the determination result of the 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 three-dimensional model interferes with the three-dimensional models of other robots R and components.
- 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.
- FIGS. 15A and 15B are diagrams for explaining a method of determining an evacuation route.
- FIG. 15A illustrates the result of the inter-task interference check by a line
- FIG. 15B illustrates the result of the inter-task interference check in a table format.
- three tasks Task_A, Task_B, and Task_C are set as elemental tasks of the robot, and a retreat task Task_Escape is set.
- the target point TP of the evacuation task Task_Escape is the evacuation point.
- step S20 the robot is moved to either the first approach point AP or the last departure point DP according to the position of the robot within the task. Move. Specifically, when the robot has not reached the target point TP (Step S24: NO), the robot is sequentially moved to the immediately preceding approach point AP without returning to the target point TP (Step S26). ). Then, when reaching the leading approach point AP (step S28: YES), the robot is moved to the evacuation point according to the determined evacuation route from the approach point AP (step S34).
- 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 program execution unit 102, a state information calculation unit 103, an interference determination unit 104, a route determination unit 105, and a setting unit 106.
- the storage 22 of the route determination device 1 includes the robot program 221, the hierarchical list database 222, the three-dimensional model database 223, and the execution log database 224.
- the display control unit 101 has a function of displaying, on the display device 24, a task list that is a list of task program names of tasks of the robot with respect to a work to be worked by the robot, in a display mode in which the contents of the tasks can be recognized by the user.
- a task list that is a list of task program names of tasks of the robot with respect to a work to be worked by the robot, in a display mode in which the contents of the tasks can be recognized by the user.
- the job performed by the robot includes a plurality of tasks.
- a function for causing the robot to move between tasks for example, the above-described move (AP1); hereinafter, referred to as an “task moving program”
- the condition is set when any one of two or more tasks is executed by a conditional branch.
- the interference determination unit 104 has a function of determining whether or not interference occurs in a robot movement path (evacuation path) between any two tasks of a plurality of tasks (element work) (that is, a function of performing an inter-task interference check). Function to execute). In this case, the interference determination unit 104 sets the distance between the departure point (an example of a post-pass point) of one of the arbitrary two tasks of the plurality of tasks and the approach point (an example of the pre-pass point) of the other task. It may be determined whether or not interference occurs on the movement path of the robot. The interference determination unit 104 further has a function of determining whether or not interference occurs in the movement path of the robot between each of the plurality of tasks (element tasks) and the evacuation point input by the user.
- a program for causing a computer to realize at least a part of the functions described in the functional block diagram of FIG. 22 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.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
Abstract
本発明の一実施形態は、ワークに対する複数の要素作業を行うロボットの移動経路を決定するロボットの経路決定装置であって、複数の要素作業の任意の2つの要素作業間のロボットの移動経路において、干渉が発生するか否かを判定する第1干渉判定部と、複数の要素作業の各々とユーザによって入力される退避点との間のロボットの移動経路において、干渉が発生するか否かを判定する第2干渉判定部と、第1干渉判定部によって干渉が発生しないと判定された要素作業間の移動経路、および、第2干渉判定部によって干渉が発生しないと判定された要素作業と退避点の間の移動経路に基づいて、干渉が発生しない退避点までの移動経路を決定する経路決定部と、を備える。
Description
本発明は、ロボットの経路決定装置、ロボットの経路決定方法、および、プログラムに関する。
ロボットが動作したときに、ロボット同士、またはロボットと周辺部品との間の干渉の有無をシミュレーションで判定する経路決定装置が知られている。 例えば日本国公開公報特開2015-160277号公報には、ロボットの動作プログラムのシミュレーションを実行して、第1の動作経路を取得する動作経路取得部と、第1の動作経路における干渉を検出して、該干渉が発生する前後の教示点である第1の教示点及び第2の教示点を特定する教示点特定部と、を含むロボットシミュレーション装置が記載されている。
ところで、ロボットを動作させているときに予期しないエラーが発生してロボットが停止した場合、ロボットを安全な位置まで移動させることが望まれる。安全な位置まで移動させることで、その後のメンテナンスやロボットの再稼動が容易となるためである。
しかし、エラーが発生したタイミングでのロボットの状態はエラーが発生する都度異なり、また、予測できないことから、ロボットが停止した位置から安全な位置まで移動した場合、周辺機器との干渉が発生し、あるいはロボットが予想外の動作を行う虞がある。そのため、従来は、ロボットの安全な位置までの移動は、ユーザが目視で確認しながら、ティーチングペンダント等でロボットを直接操作することで行っていたため、煩雑であった。
しかし、エラーが発生したタイミングでのロボットの状態はエラーが発生する都度異なり、また、予測できないことから、ロボットが停止した位置から安全な位置まで移動した場合、周辺機器との干渉が発生し、あるいはロボットが予想外の動作を行う虞がある。そのため、従来は、ロボットの安全な位置までの移動は、ユーザが目視で確認しながら、ティーチングペンダント等でロボットを直接操作することで行っていたため、煩雑であった。
そこで、本発明は、ロボットの動作中にエラー等の予期しない問題が発生した場合に、自動的にロボットを安全な位置まで移動させるようにすることを目的とする。
本願の例示的な第1発明は、ワークに対する複数の要素作業を行うロボットの移動経路を決定するロボットの経路決定装置であって、前記複数の要素作業の任意の2つの要素作業間の前記ロボットの移動経路において、干渉が発生するか否かを判定する第1干渉判定部と、前記複数の要素作業の各々とユーザによって入力される退避点との間の前記ロボットの移動経路において、干渉が発生するか否かを判定する第2干渉判定部と、前記第1干渉判定部によって干渉が発生しないと判定された要素作業間の移動経路、および、前記第2干渉判定部によって干渉が発生しないと判定された要素作業と前記退避点の間の移動経路に基づいて、干渉が発生しない前記退避点までの移動経路を決定する経路決定部と、を備えた、ロボットの経路決定装置である。
本発明によれば、ロボットの動作中にエラー等の予期しない問題が発生した場合に、自動的にロボットを安全な位置まで移動させることができる。
以下、本発明のロボットの経路決定装置の実施形態について説明する。
以下の説明において、ロボットの要素作業を「タスク」という。ロボットの要素作業とは、物体を「取る」や「置く」等、一連の作業の中でロボットが行う最小単位の作業を意味する。
「部品」とは、ロボットの作業の対象となる物体を意味し、ロボットが把持する物体(例えば、工場内のワーク)に限らず、ロボットの周辺に配置される周辺配置物(例えば、ロボットが把持する物体を置く棚)をも含む。
ロボットの「基準点」は、後述するロボットのアプローチ点、目標点、デパーチャ点等のロボットの教示点の基準となるロボットの位置を意味し、例えばロボットの作用点(TCP:Tool Center Point)である。
以下の説明において、ロボットの要素作業を「タスク」という。ロボットの要素作業とは、物体を「取る」や「置く」等、一連の作業の中でロボットが行う最小単位の作業を意味する。
「部品」とは、ロボットの作業の対象となる物体を意味し、ロボットが把持する物体(例えば、工場内のワーク)に限らず、ロボットの周辺に配置される周辺配置物(例えば、ロボットが把持する物体を置く棚)をも含む。
ロボットの「基準点」は、後述するロボットのアプローチ点、目標点、デパーチャ点等のロボットの教示点の基準となるロボットの位置を意味し、例えばロボットの作用点(TCP:Tool Center Point)である。
ロボットの経路決定装置は、ロボットの動作中にエラー等の予期しない問題が発生した場合に、自動的にロボットを安全な位置である退避点まで移動させる経路を決定する装置である。
(1)本実施形態に係る経路決定装置の構成
以下、本実施形態の経路決定装置1の構成について、図1および図2を参照して説明する。図1は、本実施形態の経路決定装置1の全体構成について示す図である。図2は、本実施形態の経路決定装置1に含まれる各装置のハードウェア構成を示す図である。
以下、本実施形態の経路決定装置1の構成について、図1および図2を参照して説明する。図1は、本実施形態の経路決定装置1の全体構成について示す図である。図2は、本実施形態の経路決定装置1に含まれる各装置のハードウェア構成を示す図である。
図1に示すように、経路決定装置1は、情報処理装置2およびロボット制御装置3を備える。情報処理装置2とロボット制御装置3とは、例えばイーサネット(登録商標)ケーブルECにより通信可能に接続される。
情報処理装置2は、工場のラインに設置されたロボットに対して動作を教示するための装置である。情報処理装置2は、ユーザによるオフラインティーチングを行うために設けられており、例えばロボットが設置される工場から離れた位置(例えば、ユーザの作業場所)に配置される。
情報処理装置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に表示させる。
制御部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が格納される。
階層型リストデータベース222には、後述する階層型リストを構成するデータが含まれる。
3次元モデルデータベース223には、CADソフトウェアを実行するときに参照される3次元モデルのデータが含まれる。本実施形態の例では、3次元モデルデータベース223には、ロボットおよび部品(例えば、後述するペン、キャップ、製品、ペントレイ、キャップトレイ、製品トレイ)の3次元モデルのデータが含まれる。
実行ログデータベース224には、ロボット制御装置3から取得した実行ログデータが含まれる。実行ログデータは、ロボットプログラムの実行結果と、後述するロボット状態データとを含む。ロボット状態データは、3次元CADによってロボットの動作を仮想空間内で動画(アニメーション)により再現するため、および、後述する干渉判定を行うために使用される。
階層型リストデータベース222には、後述する階層型リストを構成するデータが含まれる。
3次元モデルデータベース223には、CADソフトウェアを実行するときに参照される3次元モデルのデータが含まれる。本実施形態の例では、3次元モデルデータベース223には、ロボットおよび部品(例えば、後述するペン、キャップ、製品、ペントレイ、キャップトレイ、製品トレイ)の3次元モデルのデータが含まれる。
実行ログデータベース224には、ロボット制御装置3から取得した実行ログデータが含まれる。実行ログデータは、ロボットプログラムの実行結果と、後述するロボット状態データとを含む。ロボット状態データは、3次元CADによってロボットの動作を仮想空間内で動画(アニメーション)により再現するため、および、後述する干渉判定を行うために使用される。
入力装置23は、ユーザによる操作入力を受け付けるためのデバイスであり、ポインティングデバイスを含む。
表示装置24は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示するためのデバイスであり、表示駆動回路および表示パネルを含む。
通信インタフェース部25は、ロボット制御装置3との間でイーサネット通信を行うための通信回路を含む。
表示装置24は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示するためのデバイスであり、表示駆動回路および表示パネルを含む。
通信インタフェース部25は、ロボット制御装置3との間でイーサネット通信を行うための通信回路を含む。
ロボット制御装置3は、制御部31と、ストレージ32と、通信インタフェース部33とを備える。
制御部31は、CPU、ROM、RAM、および、制御回路を含む。制御部31は、情報処理装置2から受信するロボットプログラムを実行し、実行ログデータを出力する。上述したように、実行ログデータには、ロボットプログラムの実行結果と、ロボットプログラムに記述された作業を実行するロボットのロボット状態データとを含む。
ストレージ32は、ロボットのマニピュレータ(アーム51、ハンド52を含むロボット本体)のモデルのデータ(例えばリンクパラメータ等)を備えている。制御部31は、ロボットプログラムの実行結果に基づいて、マニピュレータを構成する各部のジョブを実行中の時間の経過に応じた物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等のデータ)を演算する。かかる物理量のデータが上記ロボット状態データに含まれる。
制御部31は、CPU、ROM、RAM、および、制御回路を含む。制御部31は、情報処理装置2から受信するロボットプログラムを実行し、実行ログデータを出力する。上述したように、実行ログデータには、ロボットプログラムの実行結果と、ロボットプログラムに記述された作業を実行するロボットのロボット状態データとを含む。
ストレージ32は、ロボットのマニピュレータ(アーム51、ハンド52を含むロボット本体)のモデルのデータ(例えばリンクパラメータ等)を備えている。制御部31は、ロボットプログラムの実行結果に基づいて、マニピュレータを構成する各部のジョブを実行中の時間の経過に応じた物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等のデータ)を演算する。かかる物理量のデータが上記ロボット状態データに含まれる。
ストレージ32は、HDDあるいはSSD等の大容量記憶装置であり、制御部31のCPUにより逐次アクセス可能に構成されている。ストレージ32には、ロボットのマニピュレータのモデルのデータの他に、情報処理装置2から送信されるロボットプログラムと、実行ログデータとが格納される。
通信インタフェース部33は、情報処理装置2との間でイーサネット通信を行うための通信回路を含む。
通信インタフェース部33は、情報処理装置2との間でイーサネット通信を行うための通信回路を含む。
(2)オフラインティーチングにおけるユーザインタフェース
ロボットのシミュレーションを実行する前に、ユーザは、情報処理装置2を使用して、ロボットに対するオフラインティーチングを行い、ロボットプログラムを作成する。ロボットプログラムを作成するに当たって、本実施形態の好ましい例では、CADソフトウェアと教示ソフトウェアを情報処理装置2に実行させる。
CADソフトウェアの実行結果はCAD用ウィンドウに表示され、教示ソフトウェアの実行結果は教示用ウィンドウに表示される。ユーザは、CAD用ウィンドウと教示用ウィンドウの両方を情報処理装置2に表示させ、あるいはCAD用ウィンドウと教示用ウィンドウを切り替えながら情報処理装置2に表示させ、ティーチングやCADによる動画再生に関連する操作を行う。
ロボットのシミュレーションを実行する前に、ユーザは、情報処理装置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に示す例では、ロボットRがペンにキャップを嵌めて製品(ペンにキャップが嵌められた状態の完成品)を組み立てる一連の作業を行うことが想定されている。ペントレイ11には複数のペンからなるペン群Pが配置され、キャップトレイ12には複数のキャップからなるキャップ群Cが配置されている。治具13は、ロボットRがペンを一時的に配置してキャップを嵌める作業を行うための部材である。製品トレイ14は、製品を置くための部材である。
図3に示す例では、ペン群Pに含まれる各ペン、キャップ群Cに含まれる各キャップ、ペントレイ11、キャップトレイ12、治具13、製品トレイ14の各々は、ロボットRの作業対象である部品の例である。また、ペンにキャップが嵌められた製品も部品の例である。
各ペン、各キャップ、および、ペンにキャップが嵌められた製品は、それぞれワークの一例である。ペントレイ11、キャップトレイ12、治具13、および、製品トレイ14は、それぞれ周辺配置物の一例である。
各ペン、各キャップ、および、ペンにキャップが嵌められた製品は、それぞれワークの一例である。ペントレイ11、キャップトレイ12、治具13、および、製品トレイ14は、それぞれ周辺配置物の一例である。
(2-1)階層型リスト
図4に、本実施形態の一例に係る教示用ウィンドウW2を示す。教示用ウィンドウW2に表示されているのは、図3のCAD画像に含まれているロボットR、および、部品の階層関係を示す階層型リストである。
図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に警告表示を出力してもよい。
ハンドシーケンスは、ロボットRのハンド52が把持する部品に依存するため、ハンド52が把持する部品ごとに設定される。ハンドシーケンスが設定されていない場合に後述するタスクを作成した場合には、タスクに基づくプログラムを実行できないため、表示装置24に警告表示を出力してもよい。
部品の構成要素には、治具(JIG)、ペントレイ(PenTray)、キャップトレイ(CapTray)、製品トレイ(ProductTray)、ペン(Pen1, Pen2,…,Pen12)、キャップ(Cap1, Cap2,…,Cap12)、および、製品(PenProduct1, PenProduct2,…,PenProduct12)が含まれる。
治具(JIG)のノードの下位には、治具を対象とした作業に対応して、例えば、以下のノードが設けられる。
治具(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は、タスクを概念的に説明するための図である。
次に、ジョブおよびタスクについて、図5および図6を参照して説明する。
図5は、ジョブを概念的に説明するための図である。図6は、タスクを概念的に説明するための図である。
ジョブとは、ロボットRが行う一連の作業である。タスクとは、前述したように一連の作業の中でロボットRが行う最小単位の作業である要素作業を意味する。従って、図5に示すように、ジョブ(JOB)に相当する期間には、複数のタスクT1,T2,…,Tn-1,Tnに対応する期間と、ロボットRのタスク間の移動(以下、適宜「タスク間移動」という。)と、が含まれる。図5に示すように、本実施形態では、ロボットRが行うジョブに対して複数のタスクが定義される。
各タスクには、複数のモーション(「ロボットRの動き」を意味する。)M1~Mnが含まれる。タスクには、モーションの他、ハンドシーケンス(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のうち少なくともいずれかの点に関する情報が含まれうる。
タスクを実行させるロボットプログラムには、タスクの内容に関する情報のほか、目標点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のハンドの把持対象から選択される。
次に、階層型リストを用いたタスクに対応するロボットプログラム(以下、適宜「タスクプログラム」という。)の作成方法について、図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)が自動的に決定されて表示される。
タスクの種別(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」)と、タスクの始点となる部品(例えば「ペントレイ」)、又は終点となる部品とを含むように自動的に作成されるため、タスクプログラムの名称からタスクの内容が直ちに分かるようになっている。
本実施形態では、要素作業の対象となる部品(ここでは「ペン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の姿勢等が挙げられる。「モーションパラメータ設定」を選択することで、上記モーションパラメータをデフォルト値から変更することができる。
「インターロック設定」を選択することで、インターロックの待機時間のタイムアウト値と、待機時間がタイムアウト値を超えてエラーと判断したときの動作の設定とを、デフォルト値から変更することができる。
モーションパラメータとは、タスクに含まれる隣接するアプローチ点AP間、アプローチ点APから目標点TPまでの間、および、目標点TPからデパーチャ点DPまでの間のロボットRのハンド52等の動きに関するパラメータである。例えば、かかるパラメータとして、移動速度、加速度、加速時間、減速時間、ロボットRの姿勢等が挙げられる。「モーションパラメータ設定」を選択することで、上記モーションパラメータをデフォルト値から変更することができる。
「インターロック設定」を選択することで、インターロックの待機時間のタイムアウト値と、待機時間がタイムアウト値を超えてエラーと判断したときの動作の設定とを、デフォルト値から変更することができる。
図7の教示用ウィンドウW3には、ボタンb2(「作成」)が設けられている。ボタンb2(「作成」)が操作されることで、教示用ウィンドウW3によって設定されたタスクが後述するタスクリストに登録される。
(2-4)タスクに基づくプログラムの作成
例えば、図6に示すタスクに対応するタスクプログラムは、以下の複数の関数からなり、各関数は、ロボットRに対応するモーションを実行させるためのプログラム(以下、適宜「モーションプログラム」という。)によって記述されている。
なお、以下のmove(AP1)は、タスク間の移動として別に定義されてもよい。
例えば、図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によって定義されたタスクは、順次、当該ジョブに対応するタスクリストに登録されていく。タスクリストに含まれる複数のタスクの順序は、当該複数のタスクの実行順序を示していることが、ジョブを管理する上で好ましい。
タスクリストとは、ロボット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)
(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のタスクリストにおいてタスクT2に対応する展開アイコンEIが操作されると、図9に示す教示用ウィンドウW5が表示される。
図9に示す例では、タスクT2には、タスクT2に含まれる以下の複数のモーションを特定する名称であるモーション名称M21~M25が対応付けられて表示される。
・モーション名称M21… アプローチ点AP2までの動作 (Approach_point_2)
・モーション名称M22… アプローチ点AP1までの動作 (Approach_point_1)
・モーション名称M23… 目標点TPまでの動作 (Target_point)
・モーション名称M24… ハンドの動作 (Hand-Open)
・モーション名称M25… デパーチャ点DP1までの動作 (Departure_point_1)
・モーション名称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がタスクT2に対応付けられるとともに、タスクT2に含まれるモーション名称M21~M25が表示される。なお、折畳みアイコンFIが操作されると、モーション名称M21~M25が非表示となり、再度図8に示す教示用ウィンドウW4が表示される。
(2-6)タスク間干渉チェック
次に、タスク間干渉チェックについて、図10および図11を参照して説明する。図10は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。図11は、タスク間干渉チェックの判定結果の表示例を示す図である。
次に、タスク間干渉チェックについて、図10および図11を参照して説明する。図10は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。図11は、タスク間干渉チェックの判定結果の表示例を示す図である。
タスク間干渉チェックは、ユーザによって選択された2つのタスク間のロボットの移動中に、ロボット、ワーク、および、周辺配置物の3次元モデルの干渉が仮想空間において発生するか否かを判定することである。
タスク間干渉チェックを実行するには、タスクリストに登録された少なくとも2以上のタスクを選択することにより行う。例えば、図10に示すように、タスクリストのうちタスクT2~T4のタスク間干渉チェックを行うには、ユーザは、タスクT2~T4を選択した上で右クリックし、ボタンb14(「動作確認」)を選択し、ボタンb142(「タスク間干渉チェック」)を選択する操作を行う。
タスク間干渉チェックを実行するには、タスクリストに登録された少なくとも2以上のタスクを選択することにより行う。例えば、図10に示すように、タスクリストのうちタスクT2~T4のタスク間干渉チェックを行うには、ユーザは、タスクT2~T4を選択した上で右クリックし、ボタンb14(「動作確認」)を選択し、ボタンb142(「タスク間干渉チェック」)を選択する操作を行う。
タスク間干渉チェックでは、選択された2以上のタスクのタスク間の動作が設定された部分のロボットプログラム(例えば、上記move(AP1))が情報処理装置2からロボット制御装置3へ送信され、ロボット制御装置3においてロボットプログラムが実行される。ロボット制御装置3は、ロボットプログラムの実行結果としてロボット状態データを含む実行ログデータを情報処理装置2に返す。ロボット状態データは、マニピュレータ50のモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等)のデータである。
情報処理装置2のCADソフトウェアは、ロボット状態データに従って仮想空間内でロボットRおよびロボットRに把持されたワークの3次元モデルを動作させる。このとき、情報処理装置2は、当該3次元モデルが、他のロボットRおよび部品の3次元モデルと干渉するか否かについて判定を行う。
干渉判定のタイミングは適宜設定してよいが、例えば、ロボットの基準点が10mm移動する度に干渉判定が行われる。
干渉判定のタイミングは適宜設定してよいが、例えば、ロボットの基準点が10mm移動する度に干渉判定が行われる。
図10に示す例では3個のタスクが選択された場合のタスク間干渉チェックを実行する場合について説明したが、本実施形態の教示プログラムは、所定の操作入力に応じて、タスクリストに含まれるすべてのタスクの中の任意の2つのタスク間の干渉判定を行う。干渉判定の結果は、図11に示すように、タスクリストに含まれる複数のタスクの中の任意の2つのタスク間の判定結果が一覧できるテーブルを表示することが好ましい。このように一覧表示することで、どのタスク間で問題が生ずるか把握でき、タスクの順序設定等を支援することができる。なお、所定の操作入力に基づいて、判定結果が一覧できるテーブルをファイル出力できるようにすることが好ましい。それによってユーザが、干渉が発生しない範囲でタスクの実行順序を変更することが容易となる。
図11に示すテーブルでは、タスクリストに含まれるすべてのタスクが行と列に配置され、行に配置されたいずれかのタスクと列に配置されたいずれかのタスクとの間のタスク間移動における干渉の判定結果が、「○」(干渉無し)または「×」(干渉有り)のいずれかのマークで示される。
タスク間干渉チェックにおいてロボットR同士およびロボットRと部品との干渉判定は、基本的には総当りで行われるが、明らかに干渉しない組合せについて干渉判定を行わなくてもよい。
また、干渉判定の対象の特定の組合せについては、タスク間移動の前の方のタスクの種別に応じて、当該タスク間移動の干渉判定を行わなくてもよい。例えば、ロボット若しくは周辺配置物と、ハンド上のワークとの干渉を判定する際に、タスク間移動の前の方のタスクの種別が「置く(Place)」である場合には、タスク間移動中にハンド上のワークが存在しないため、タスク間移動における干渉判定を行わなくてもよい。
また、干渉判定の対象の特定の組合せについては、タスク間移動の前の方のタスクの種別に応じて、当該タスク間移動の干渉判定を行わなくてもよい。例えば、ロボット若しくは周辺配置物と、ハンド上のワークとの干渉を判定する際に、タスク間移動の前の方のタスクの種別が「置く(Place)」である場合には、タスク間移動中にハンド上のワークが存在しないため、タスク間移動における干渉判定を行わなくてもよい。
(2-7)退避点および退避タスクの設定
図7を参照してタスクプログラムを作成する方法について説明したが、本実施形態では、ロボットRを安全な場所である退避点に移動させるタスクプログラムを作成することができる。この作成方法について、図12および図13を参照して説明する。図12は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。図13は、タスクリストの表示例を示す図である。
図7を参照してタスクプログラムを作成する方法について説明したが、本実施形態では、ロボットRを安全な場所である退避点に移動させるタスクプログラムを作成することができる。この作成方法について、図12および図13を参照して説明する。図12は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。図13は、タスクリストの表示例を示す図である。
画面上でユーザがポインティングデバイスで選択して右クリック操作を行い、「タスク作成」を選択する。「タスク作成」が選択されると、図12のタスクプログラム作成のための教示用ウィンドウW6が表示される。ここで、ユーザが、タスクの種別(Function)の欄においてプルダウンメニューの中から「Escape」というタスクの種別を選択し、目標(Target)として所定のワールド座標(図12では、仮に “Point_X”としている。)を入力することで、設定された退避点までロボットRを移動させるためのタスクプログラムが作成される。
図13に例示するタスクリストには、図12において作成された「Escape_Point_X」とい名称のタスクが追加されている。
図13に例示するタスクリストには、図12において作成された「Escape_Point_X」とい名称のタスクが追加されている。
(3)退避経路の決定方法
以下、教示プログラムによって退避経路の決定方法について、図14~図22を参照して説明する。
本実施形態では、ロボットRの動作中にエラー等の予期しない問題が発生した場合に、ロボットRがどのような位置にあったとしても自動的にロボットRを退避点まで移動させるようにプログラムされる。そのため、教示プログラムは、タスク間干渉チェックを行い、そのタスク間干渉チェックの結果に基づいて、すべてのタスクのアプローチ点APまたはデパーチャ点DPから退避点までの移動経路(退避経路)を予め決定し、保存しておく。実際にロボットRの動作中に問題が発生した場合には、ロボットプログラムは、保存されている退避経路の中から、問題が発生した時点のロボットRの位置に応じた退避経路を特定し、特定した退避経路に従ってロボットRを動作させる。
以下、教示プログラムによって退避経路の決定方法について、図14~図22を参照して説明する。
本実施形態では、ロボットRの動作中にエラー等の予期しない問題が発生した場合に、ロボットRがどのような位置にあったとしても自動的にロボットRを退避点まで移動させるようにプログラムされる。そのため、教示プログラムは、タスク間干渉チェックを行い、そのタスク間干渉チェックの結果に基づいて、すべてのタスクのアプローチ点APまたはデパーチャ点DPから退避点までの移動経路(退避経路)を予め決定し、保存しておく。実際にロボットRの動作中に問題が発生した場合には、ロボットプログラムは、保存されている退避経路の中から、問題が発生した時点のロボットRの位置に応じた退避経路を特定し、特定した退避経路に従ってロボットRを動作させる。
(3-1)退避経路を決定する手順
図14は、教示プログラムを実行することによって退避経路を決定する手順を示すフローチャートである。
図14において、図12に示したように、教示プログラムを実行する情報処理装置2の制御部21は、ユーザの入力に従って退避点を設定する(ステップS10)。退避点が設定されると、制御部21は退避タスクを作成し(ステップS12)、図13に示したようにタスクリストに追加する。
次いで、タスクリストに設定されているすべてのタスク対象として、タスク間干渉チェックを実行する(ステップS14)。タスク間干渉チェックの結果は例えば図11に示したが、ここでは、退避タスクとそれ以外のタスクとの間のタスク間干渉チェックも実行する。退避タスクとそれ以外のタスクのロボットRの移動の可否が確認できなければ、結局のところ退避点に到達できない場合があるためである。
図14は、教示プログラムを実行することによって退避経路を決定する手順を示すフローチャートである。
図14において、図12に示したように、教示プログラムを実行する情報処理装置2の制御部21は、ユーザの入力に従って退避点を設定する(ステップS10)。退避点が設定されると、制御部21は退避タスクを作成し(ステップS12)、図13に示したようにタスクリストに追加する。
次いで、タスクリストに設定されているすべてのタスク対象として、タスク間干渉チェックを実行する(ステップS14)。タスク間干渉チェックの結果は例えば図11に示したが、ここでは、退避タスクとそれ以外のタスクとの間のタスク間干渉チェックも実行する。退避タスクとそれ以外のタスクのロボットRの移動の可否が確認できなければ、結局のところ退避点に到達できない場合があるためである。
次いで、情報処理装置2の制御部21は、ステップS14のタスク間干渉チェックの結果を基に、退避タスク以外のすべてのタスクのアプローチ点APおよびデパーチャ点DPから退避点に移動するときの経路が確保されるように、退避経路を決定し(ステップS16)、決定した退避経路を保存しておく。
(3-2)退避経路の決定方法
次に、図14のステップS16で行われる退避経路の決定方法について、図15を参照して説明する。図15は、退避経路の決定方法について説明する図であり、(a)はタスク間干渉チェックの結果を線で示しており、(b)はタスク間干渉チェックの結果をテーブル形式で示している。
図15に示す例では、ロボットの要素作業として3個のタスクTask_A,Task_B,Task_Cが設定されるとともに、退避タスクTask_Escapeが設定される。退避タスクTask_Escapeの目標点TPが退避点である。4個のタスクTask_A~Task_Cの各々のアプローチ点APおよびデパーチャ点DP, Task_Escapeの目標点TPの間のロボットの移動についてタスク間干渉チェックを行った結果の例が、図15に示されている。
図15(a)では、干渉無しの場合の経路を太線で表し、干渉有りの場合の経路を細線で表している。図15(b)では、干渉が無いタスク間の移動を「○」で表し、干渉が有るタスク間の移動を「×」で表している。
次に、図14のステップS16で行われる退避経路の決定方法について、図15を参照して説明する。図15は、退避経路の決定方法について説明する図であり、(a)はタスク間干渉チェックの結果を線で示しており、(b)はタスク間干渉チェックの結果をテーブル形式で示している。
図15に示す例では、ロボットの要素作業として3個のタスクTask_A,Task_B,Task_Cが設定されるとともに、退避タスクTask_Escapeが設定される。退避タスクTask_Escapeの目標点TPが退避点である。4個のタスクTask_A~Task_Cの各々のアプローチ点APおよびデパーチャ点DP, Task_Escapeの目標点TPの間のロボットの移動についてタスク間干渉チェックを行った結果の例が、図15に示されている。
図15(a)では、干渉無しの場合の経路を太線で表し、干渉有りの場合の経路を細線で表している。図15(b)では、干渉が無いタスク間の移動を「○」で表し、干渉が有るタスク間の移動を「×」で表している。
図15のタスク間干渉チェックの結果を基に、タスクTask_A,Task_B,Task_Cの各々のアプローチ点APおよびデパーチャ点DPから退避タスクTask_Escapeの目標点TPまでの退避経路を、以下のとおり決定することができる。なお、以下の説明では、特定のタスクのアプローチ点AP、デパーチャ点DP、目標点TPをそれぞれ、当該タスクの名称の後に、_AP, _DP, _TPを付けて表記する。
図15の例では、各タスクからの退避経路は、以下のとおりである。
(I) タスクTask_Aからの退避経路
・Task_A_AP → Task_Escape
・Task_A_DP → Task_Escape
(II) タスクTask_Bからの退避経路
・Task_B_AP → Task_A_DP → Task_Escape、または、Task_B_AP → Task_C_DP → Task_Escape
・Task_B_DP → Task_A_AP → Task_Escape
(III) タスクTask_Cからの退避経路
・Task_C_AP → Task_B_DP → Task_A_AP → Task_Escape
・Task_C_DP → Task_Escape
(I) タスクTask_Aからの退避経路
・Task_A_AP → Task_Escape
・Task_A_DP → Task_Escape
(II) タスクTask_Bからの退避経路
・Task_B_AP → Task_A_DP → Task_Escape、または、Task_B_AP → Task_C_DP → Task_Escape
・Task_B_DP → Task_A_AP → Task_Escape
(III) タスクTask_Cからの退避経路
・Task_C_AP → Task_B_DP → Task_A_AP → Task_Escape
・Task_C_DP → Task_Escape
図15の例では、タスクTask_Bのアプローチ点APからの退避経路は2通りあるが、いずれの退避経路とするかについては、優先度に応じて決定することが好ましい。
例えば総移動距離が短い退避経路や、特定の点を経由する退避経路を優先させてもよい。総移動距離が短い退避経路を優先させた場合、エラー発生時にロボットを移動させる時間が短くて済み、より安全である。
例えば総移動距離が短い退避経路や、特定の点を経由する退避経路を優先させてもよい。総移動距離が短い退避経路を優先させた場合、エラー発生時にロボットを移動させる時間が短くて済み、より安全である。
(3-3)ロボットを退避させるときの処理
次に、図16を参照して、ロボットの動作中にエラー等の予期しない問題が発生した場合にロボットを退避させるとこの処理について説明する。図16は、ロボットを退避させるときのロボット制御装置3によるロボットプログラムの実行処理を示すフローチャートである。
図14のフローチャートに従って、退避タスクTask_Escapeを除くすべてのタスクのアプローチ点APとデパーチャ点DPからの退避点までの退避経路が決定されるが、実際にエラー等の予期しない問題が発生した時点ではロボットがアプローチ点APとデパーチャ点DPに位置するとは限らない。そこで、エラー等の予期しない問題が発生した場合には、ロボットRを先ず、現在位置からアプローチ点APまたはデパーチャ点DPに移動させ、アプローチ点APまたはデパーチャ点DPから、予め決定済みの退避経路に従ってロボットRを退避点まで移動させる。
次に、図16を参照して、ロボットの動作中にエラー等の予期しない問題が発生した場合にロボットを退避させるとこの処理について説明する。図16は、ロボットを退避させるときのロボット制御装置3によるロボットプログラムの実行処理を示すフローチャートである。
図14のフローチャートに従って、退避タスクTask_Escapeを除くすべてのタスクのアプローチ点APとデパーチャ点DPからの退避点までの退避経路が決定されるが、実際にエラー等の予期しない問題が発生した時点ではロボットがアプローチ点APとデパーチャ点DPに位置するとは限らない。そこで、エラー等の予期しない問題が発生した場合には、ロボットRを先ず、現在位置からアプローチ点APまたはデパーチャ点DPに移動させ、アプローチ点APまたはデパーチャ点DPから、予め決定済みの退避経路に従ってロボットRを退避点まで移動させる。
なお、図16のフローチャートは、後で例示する図17のように、退避タスクTask_Escapeを除く各タスクに複数のアプローチ点APおよび/または複数のデパーチャ点DPが設定される場合も想定している。
図16を参照すると、ロボット制御装置3は、ロボットを退避させることを決定した場合、ロボットの現在位置がタスク内であるか、タスク間であるか判定する(ステップS20)。ロボットの現在位置がタスク間である場合には(ステップS20:タスク間)、1つ前のタスクの最後のデパーチャ点DPまで移動し(ステップS22)、その後、当該デパーチャ点DPからの決定済みの退避経路に従って退避点まで移動させる(ステップS34)。1つ前のタスクに戻るのは、現在位置まで移動済みであるため、安全な経路であると考えられるためである。
ロボットの現在位置がタスク内である場合には(ステップS20:タスク内)、当該タスク内のロボットの位置に応じて、先頭のアプローチ点AP、または、最後のデパーチャ点DPのいずれかにロボットを移動させる。
具体的には、ロボットが目標点TPに到達していない場合には(ステップS24:NO)、目標点TPに到達させることなく、直前のアプローチ点APへ順次移動させる(順次戻す)(ステップS26)。そして、先頭のアプローチ点APに到達した場合には(ステップS28:YES)、当該アプローチ点APからの決定済みの退避経路に従って退避点まで移動させる(ステップS34)。
他方、ロボットが目標点TPに到達済みである場合には(ステップS24:YES)、次のデパーチャ点DPへ順次移動させる(ステップS30)。そして、最後のデパーチャ点DPに到達した場合には(ステップS32:YES)、当該デパーチャ点DPからの決定済みの退避経路に従って退避点まで移動させる(ステップS34)。
ステップS24~S34に示すように、ロボットの現在位置がタスク内を移動中である場合、干渉の恐れがある目標点TPを跨ぐことなく、目標点TPから最も離れたアプローチ点APまたはデパーチャ点DPに移動し、そこから決定済みの退避経路に従って移動させるようにする。
具体的には、ロボットが目標点TPに到達していない場合には(ステップS24:NO)、目標点TPに到達させることなく、直前のアプローチ点APへ順次移動させる(順次戻す)(ステップS26)。そして、先頭のアプローチ点APに到達した場合には(ステップS28:YES)、当該アプローチ点APからの決定済みの退避経路に従って退避点まで移動させる(ステップS34)。
他方、ロボットが目標点TPに到達済みである場合には(ステップS24:YES)、次のデパーチャ点DPへ順次移動させる(ステップS30)。そして、最後のデパーチャ点DPに到達した場合には(ステップS32:YES)、当該デパーチャ点DPからの決定済みの退避経路に従って退避点まで移動させる(ステップS34)。
ステップS24~S34に示すように、ロボットの現在位置がタスク内を移動中である場合、干渉の恐れがある目標点TPを跨ぐことなく、目標点TPから最も離れたアプローチ点APまたはデパーチャ点DPに移動し、そこから決定済みの退避経路に従って移動させるようにする。
以上のようにして、各タスクのアプローチ点APおよびデパーチャ点DPからの退避経路を予め決定しておくことで、ロボットの動作中にエラー等の予期しない問題が発生した場合には、先ず、ロボットをアプローチ点APまたはデパーチャ点DPに移動させる。そして、アプローチ点APまたはデパーチャ点DPから予め決定された退避経路に従ってロボットを移動させることで、自動的にロボットを安全な位置(退避点)まで移動させることができる。
(3-4)退避経路の決定方法の変形例1
次に、退避経路の決定方法の変形例1について、図17~図19を参照して説明する。図17~図19は、それぞれ、退避経路の決定方法の変形例1について説明する図である。
図15に示した例では、退避タスクTask_Escapeを除くすべてのタスクのアプローチ点APおよびデパーチャ点DPからの退避経路が決定された場合を示したが、必ずしもその限りではない。例えば、図17に示す例を考える。図17では、タスクTask_A,Task_Bと退避タスクTask_Escapeが設けられている場合において、2個のタスクTask_A, Task_Bの各々のアプローチ点APおよびデパーチャ点DP, Task_Escapeの目標点TPの間のロボットの移動についてタスク間干渉チェックを行った結果の例が示されている。この例においても、図15(a)と同様、干渉無しの場合の経路を太線で表し、干渉有りの場合の経路を細線で表している。
次に、退避経路の決定方法の変形例1について、図17~図19を参照して説明する。図17~図19は、それぞれ、退避経路の決定方法の変形例1について説明する図である。
図15に示した例では、退避タスクTask_Escapeを除くすべてのタスクのアプローチ点APおよびデパーチャ点DPからの退避経路が決定された場合を示したが、必ずしもその限りではない。例えば、図17に示す例を考える。図17では、タスクTask_A,Task_Bと退避タスクTask_Escapeが設けられている場合において、2個のタスクTask_A, Task_Bの各々のアプローチ点APおよびデパーチャ点DP, Task_Escapeの目標点TPの間のロボットの移動についてタスク間干渉チェックを行った結果の例が示されている。この例においても、図15(a)と同様、干渉無しの場合の経路を太線で表し、干渉有りの場合の経路を細線で表している。
図17の例では、タスクTask_Bのアプローチ点AP1からの退避経路が存在しないことが問題である。タスクTask_Bのアプローチ点AP1からアプローチ点AP2へ移動する経路、および、タスクTask_Bのアプローチ点AP1からタスクTask_Aのデパーチャ点DP2,DP1へ移動する経路では干渉がなくロボットが移動できるが、その先に移動することができない。
なお、退避経路においては、目標点TPを通過する経路を含めないようにしている。これは、各タスクにおいて目標点TPは要素作業を行う位置であり、作業のための干渉が発生する可能性が高い位置であるためである。
なお、退避経路においては、目標点TPを通過する経路を含めないようにしている。これは、各タスクにおいて目標点TPは要素作業を行う位置であり、作業のための干渉が発生する可能性が高い位置であるためである。
そこで、タスク間干渉チェックの結果から、いずれかのアプローチ点APまたはデパーチャ点DPからの退避経路が存在しない場合、タスク内において目標点TPを跨いでアプローチ点APとデパーチャ点DPの間を移動可能であるか否かの干渉チェックを行う。そして、タスク内においてアプローチ点APとデパーチャ点DPの間の経路で干渉がない場合には、当該経路を退避経路の一部として含めるようにする。それによって、すべてのタスクのアプローチ点APおよびデパーチャ点DPからの退避経路を設定できる可能性を高めることができる。
例えば、図18(b)に示すように、退避タスクTask_Escapeを除くすべてのタスクTask_A, Task_Bについてタスク内のアプローチ点APとデパーチャ点DPの間の経路の干渉チェックを行う。
このとき、タスク内に複数のアプローチ点APおよび/または複数のデパーチャ点DPが設定されている場合には、最も目標点TPに近いアプローチ点APと最も目標点TPに近いデパーチャ点DPの間の経路の干渉チェックを行うことが好ましい。これは、作業位置である目標点TPから離れた位置のアプローチ点APまたはデパーチャ点DPでは、他の部品との干渉の可能性が高くなるためである。
例えば、図18(a)に示すように、タスクTask_Aにアプローチ点AP1,AP2およびデパーチャ点DP1,DP2が設定されている場合、目標点TPに最も近いアプローチ点AP2とデパーチャ点DP1との間の経路で干渉チェックを行う。
このとき、タスク内に複数のアプローチ点APおよび/または複数のデパーチャ点DPが設定されている場合には、最も目標点TPに近いアプローチ点APと最も目標点TPに近いデパーチャ点DPの間の経路の干渉チェックを行うことが好ましい。これは、作業位置である目標点TPから離れた位置のアプローチ点APまたはデパーチャ点DPでは、他の部品との干渉の可能性が高くなるためである。
例えば、図18(a)に示すように、タスクTask_Aにアプローチ点AP1,AP2およびデパーチャ点DP1,DP2が設定されている場合、目標点TPに最も近いアプローチ点AP2とデパーチャ点DP1との間の経路で干渉チェックを行う。
図18に示すように、タスクTask_Aのアプローチ点AP2とデパーチャ点DP1の間の経路での干渉チェックの結果、干渉が無い場合を想定する。その場合のタスク間干渉チェックを行った結果が、図19に示される。図17との違いは、タスクTask_Aのアプローチ点AP2とデパーチャ点DP1との間の経路が退避経路として使用できることになった点である。
その結果、タスクTask_Bのアプローチ点AP1からの退避経路を決定することが可能となる。すなわち、Task_B_AP1 → Task_A_DP2 → Task_A_DP1 → Task_A_AP2 → Task_A_AP1 → Task_Escapeの順路で退避経路を決定することができる。
その結果、タスクTask_Bのアプローチ点AP1からの退避経路を決定することが可能となる。すなわち、Task_B_AP1 → Task_A_DP2 → Task_A_DP1 → Task_A_AP2 → Task_A_AP1 → Task_Escapeの順路で退避経路を決定することができる。
(3-5)退避経路の決定方法の変形例2
次に、退避経路の決定方法の変形例2について説明する。図20~図22は、それぞれ、退避経路の決定方法の変形例2について説明する図である。
この例では、退避タスクTask_Escapeにおいて、目標点TPに移動する前の経由点として、1または複数の退避アプローチ点APが設けられる。1または複数の退避アプローチ点APは、各退避アプローチ点APから目標点TP(退避点)までの間の経路で干渉が生じないように、予め設定される。例えば、図20(a)では、退避タスクTask_Escapeに2つの退避アプローチ点AP1,AP2が設定された場合が示される。この場合、退避アプローチ点AP1から目標点TPまでの経路、および、退避アプローチ点AP2から目標点TPまでの経路で干渉が生じないことが前提である。
いずれかのタスクのアプローチ点APまたはデパーチャ点DPから退避タスクTask_Escapeの目標点TPまでの直接的な経路で干渉が生ずる場合、変形例1で説明したようにタスク内の経路を確保したとしても退避経路を決定することができない場合が生じうる。そこで、この例では、退避タスクTask_Escapeの目標点TPまでの他のタスクからの経路が決定できない場合に、退避タスクTask_Escapeの退避アプローチ点APを追加する。退避アプローチ点APは、退避タスクTask_Escapeの目標点TPまでの移動を干渉無く移動させることが可能な経由点である限り、如何なる座標の点にも設定することが可能である。
退避アプローチ点APを設定することで、各タスクのアプローチ点APおよびデパーチャ点DPから退避タスクTask_Escapeの目標点TPまでの経路を変更させることができるため、干渉が生じない退避経路を決定できる可能性をさらに高くすることができる。
次に、退避経路の決定方法の変形例2について説明する。図20~図22は、それぞれ、退避経路の決定方法の変形例2について説明する図である。
この例では、退避タスクTask_Escapeにおいて、目標点TPに移動する前の経由点として、1または複数の退避アプローチ点APが設けられる。1または複数の退避アプローチ点APは、各退避アプローチ点APから目標点TP(退避点)までの間の経路で干渉が生じないように、予め設定される。例えば、図20(a)では、退避タスクTask_Escapeに2つの退避アプローチ点AP1,AP2が設定された場合が示される。この場合、退避アプローチ点AP1から目標点TPまでの経路、および、退避アプローチ点AP2から目標点TPまでの経路で干渉が生じないことが前提である。
いずれかのタスクのアプローチ点APまたはデパーチャ点DPから退避タスクTask_Escapeの目標点TPまでの直接的な経路で干渉が生ずる場合、変形例1で説明したようにタスク内の経路を確保したとしても退避経路を決定することができない場合が生じうる。そこで、この例では、退避タスクTask_Escapeの目標点TPまでの他のタスクからの経路が決定できない場合に、退避タスクTask_Escapeの退避アプローチ点APを追加する。退避アプローチ点APは、退避タスクTask_Escapeの目標点TPまでの移動を干渉無く移動させることが可能な経由点である限り、如何なる座標の点にも設定することが可能である。
退避アプローチ点APを設定することで、各タスクのアプローチ点APおよびデパーチャ点DPから退避タスクTask_Escapeの目標点TPまでの経路を変更させることができるため、干渉が生じない退避経路を決定できる可能性をさらに高くすることができる。
退避タスクTask_Escapeにおける退避アプローチ点APの設定は、例えば、図12の退避タスクの教示用ウィンドウにおいて、ボタンb1(「詳細設定」)をユーザが操作し、座標を入力あるいは選択することにより行われる。
図21は、図19の例に対して、退避タスクTask_Escapeに退避アプローチ点AP1,AP2を追加した例を示している。図22は、図21のタスク間干渉チェックの結果をテーブル形式で示している。本変形例では、タスク間干渉チェックにおいて、退避タスクTask_Escapeを除くすべてのタスクのアプローチ点APおよびデパーチャ点DPから退避タスクTask_Escapeの各退避アプローチ点APまでの経路において干渉の有無のチェックが行われる。
なお、この変形例2では、図19(変形例1)に示したように、タスクTask_A, Task_Bの各々のタスク内のアプローチ点AP2とデパーチャ点DP1の間の経路における干渉チェックも行われている。図19(変形例1)の場合、タスクTask_Bのデパーチャ点DP2からの退避経路を決定することができないが、本変形例の場合には、Task_B_DP2 → Task_Escape_AP2 → Task_Escape_TP の順路で退避経路を決定することができる。
なお、この変形例2では、図19(変形例1)に示したように、タスクTask_A, Task_Bの各々のタスク内のアプローチ点AP2とデパーチャ点DP1の間の経路における干渉チェックも行われている。図19(変形例1)の場合、タスクTask_Bのデパーチャ点DP2からの退避経路を決定することができないが、本変形例の場合には、Task_B_DP2 → Task_Escape_AP2 → Task_Escape_TP の順路で退避経路を決定することができる。
(4)経路決定装置1の機能
次に、本実施形態の経路決定装置1の機能について、図23を参照して説明する。図23は、実施形態に係る経路決定装置1の機能ブロック図である。
図23に示すように、経路決定装置1は、表示制御部101、プログラム実行部102、状態情報算出部103、干渉判定部104、経路決定部105、および、設定部106を備える。
経路決定装置1のストレージ22は、前述したように、ロボットプログラム221、階層型リストデータベース222、3次元モデルデータベース223、および、実行ログデータベース224を備える。
次に、本実施形態の経路決定装置1の機能について、図23を参照して説明する。図23は、実施形態に係る経路決定装置1の機能ブロック図である。
図23に示すように、経路決定装置1は、表示制御部101、プログラム実行部102、状態情報算出部103、干渉判定部104、経路決定部105、および、設定部106を備える。
経路決定装置1のストレージ22は、前述したように、ロボットプログラム221、階層型リストデータベース222、3次元モデルデータベース223、および、実行ログデータベース224を備える。
表示制御部101は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示装置24に表示させる制御を行う。表示制御部101は、タスク間干渉チェックの結果を表示装置24に表示させる制御も行う。
表示制御部101は、ロボットの作業対象であるワークに対するロボットのタスクについてのタスクプログラム名称の一覧であるタスクリストを、タスクの内容がユーザに認識可能な表示態様で表示装置24に表示させる機能を備える。図8に示す例では、表示されるタスクプログラム名称(例えばタスクT2の場合、“Place_to_PenJ_in_PenProduct”)によりタスクの内容がユーザに認識可能となっている。
表示制御部101の機能を実現するために、本実施形態では、以下のようにしてロボットプログラムが作成される。
すなわち、情報処理装置2のストレージ22には、タスクの種別(Function)ごとに、テンプレートとなるプログラムコードがタスクの関数として記録されている。ユーザによりタスクの種別(Function)、タスクの目標物(Target)、アプローチ点、デパーチャ点、モーションパラメータ等が設定されると(図7参照)、情報処理装置2の制御部21は、設定されたタスクの種別に対応するプログラムコードのテンプレートに、設定された情報を埋め込むことで、ロボットプログラムのコードを作成する。
また、タスクの種別ごとのテンプレートとなるプログラムコードには、当該タスクに含まれる複数のモーションの各々に対応するプログラムコードが含まれている。そのため、上記設定された情報をテンプレートに埋め込むことで、モーションプログラムのコードが自動的に生成されることになる。
すなわち、情報処理装置2のストレージ22には、タスクの種別(Function)ごとに、テンプレートとなるプログラムコードがタスクの関数として記録されている。ユーザによりタスクの種別(Function)、タスクの目標物(Target)、アプローチ点、デパーチャ点、モーションパラメータ等が設定されると(図7参照)、情報処理装置2の制御部21は、設定されたタスクの種別に対応するプログラムコードのテンプレートに、設定された情報を埋め込むことで、ロボットプログラムのコードを作成する。
また、タスクの種別ごとのテンプレートとなるプログラムコードには、当該タスクに含まれる複数のモーションの各々に対応するプログラムコードが含まれている。そのため、上記設定された情報をテンプレートに埋め込むことで、モーションプログラムのコードが自動的に生成されることになる。
例えば、タスクの種別として「取る(Pick up)」が設定された場合、「取る(Pick up)」に対応するプログラムコードのテンプレートには、アプローチ点AP1まで移動させる関数move(AP1)やアプローチ点AP2まで移動させる関数move(AP2)等が含まれており、設定されたアプローチ点AP1,AP2の具体的な座標値を埋め込むことで、モーションプログラムである関数move(AP1),move(AP2)が作成される。「取る(Pick up)」に含まれるすべてのモーションプログラムが作成されると、結果的に「取る(Pick up)」に対応するタスクプログラムが作成される。
タスクプログラムの名称およびモーションプログラムの名称として、テンプレートに応じた名称が自動的に設定される。情報処理装置2の制御部21は、生成されたタスクプログラムおよびモーションプログラムをそれぞれの名称と関連付けてストレージ22に記録する。
タスクプログラムの名称およびモーションプログラムの名称として、テンプレートに応じた名称が自動的に設定される。情報処理装置2の制御部21は、生成されたタスクプログラムおよびモーションプログラムをそれぞれの名称と関連付けてストレージ22に記録する。
ロボットが行うジョブは、複数のタスクを含む。ユーザがロボットのタスク間移動のためのモーションパラメータを設定することで、ロボットにタスク間移動させる関数(例えば、上記move(AP1);以下、「タスク間移動プログラム」という。)が作成される。ロボットの動作内容によっては、2以上のタスクの中からいずれかのタスクを条件分岐によって実行させる場合に当該条件が設定される。
以上説明したように、ジョブに対応する全体のロボットプログラムは、複数のタスクプログラムと、タスク間移動プログラムとを含む。各タスクプログラムは、タスクプログラムの名称によって識別される。
教示プログラムを実行すると、情報処理装置2の制御部21は、ストレージ22に記憶されているロボットプログラムを読み出し、ロボットプログラムに含まれる複数のタスクプログラムに基づいてタスクリストを構成し、表示装置24に表示させる。
教示プログラムを実行すると、情報処理装置2の制御部21は、ストレージ22に記憶されているロボットプログラムを読み出し、ロボットプログラムに含まれる複数のタスクプログラムに基づいてタスクリストを構成し、表示装置24に表示させる。
表示制御部101は、ロボット、ワーク、および、周辺配置物の3次元モデルを仮想空間内に配置して表示装置24に表示させる機能を備える。当該機能は、CADソフトウェアが3次元モデルデータベース223を参照することによって実現される。
プログラム実行部102は、ユーザの操作入力に応じて、ロボットプログラムの全部または一部を実行する機能を備える。前述したように、本実施形態では、ロボットプログラムが情報処理装置2によって作成され、ロボット制御装置3がロボットプログラムを実行する。ロボットプログラムには、図16に示したフローチャートの処理も含まれる。
状態情報算出部103は、プログラム実行部102による実行結果に基づいて、時間の経過に応じたロボットの状態を示す情報であるロボット状態データを演算する機能を備える。
状態情報算出部103の機能を実現するために、ロボット制御装置3の制御部31は、情報処理装置2からロボットプログラムを実行し、ロボットプログラムの実行結果として、ロボット状態データを演算して順次、ストレージ32に記録する。
ロボット状態データは、マニピュレータ50のモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等)のデータである。
ロボットプログラムの実行が終了すると、制御部31は、ストレージ32から、時間軸に沿った所定の基準時間(例えば1ms)ごとのロボット状態データを読み出す。制御部31は、読み出したロボット状態データを含む実行ログデータを、通信インタフェース部33を介して情報処理装置2へ送信する。情報処理装置2の制御部21は、ロボット制御装置3からロボット状態データを含む実行ログデータを取得すると、実行ログデータを実行ログデータベース224に記録する。
ロボット状態データは、マニピュレータ50のモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等)のデータである。
ロボットプログラムの実行が終了すると、制御部31は、ストレージ32から、時間軸に沿った所定の基準時間(例えば1ms)ごとのロボット状態データを読み出す。制御部31は、読み出したロボット状態データを含む実行ログデータを、通信インタフェース部33を介して情報処理装置2へ送信する。情報処理装置2の制御部21は、ロボット制御装置3からロボット状態データを含む実行ログデータを取得すると、実行ログデータを実行ログデータベース224に記録する。
干渉判定部104は、複数のタスク(要素作業)の任意の2つのタスク間のロボットの移動経路(退避経路)において、干渉が発生するか否かを判定する機能(つまり、タスク間干渉チェックを実行する機能)を備える。この場合、干渉判定部104は、複数のタスクの任意の2つのタスクのうち一方のタスクのデパーチャ点(事後通過点の一例)と他方のタスクのアプローチ点(事前通過点の一例)との間のロボットの移動経路において干渉が発生するか否かを判定してもよい。
干渉判定部104はさらに、複数のタスク(要素作業)の各々とユーザによって入力される退避点との間のロボットの移動経路において、干渉が発生するか否かを判定する機能を備える。この場合、干渉判定部104は、各タスクのアプローチ点と退避点の間、および、各タスクのデパーチャ点と退避点の間の移動経路において干渉が発生するか否かを判定してもよい。
干渉の有無は、教示プログラムの実行結果に基づいて決定される。干渉判定部104の機能は、図14のフローチャートのタスク間干渉チェック(ステップS14)に相当する。
干渉判定部104はさらに、複数のタスク(要素作業)の各々とユーザによって入力される退避点との間のロボットの移動経路において、干渉が発生するか否かを判定する機能を備える。この場合、干渉判定部104は、各タスクのアプローチ点と退避点の間、および、各タスクのデパーチャ点と退避点の間の移動経路において干渉が発生するか否かを判定してもよい。
干渉の有無は、教示プログラムの実行結果に基づいて決定される。干渉判定部104の機能は、図14のフローチャートのタスク間干渉チェック(ステップS14)に相当する。
干渉判定部104は、複数のタスク(要素作業)の各々において、1または複数のアプローチ点(事前通過点の一例)のうち最も目標点に近いアプローチ点と、1または複数のデパーチャ点(事後通過点の一例)のうち最も目標点に近いデパーチャ点と、の間の要素作業内のロボットの移動経路において、干渉が発生するか否かを判定する機能を備えてもよい。当該機能は、例えば、図18(a)において、アプローチ点AP2(最も目標点TPに近いアプローチ点)とデパーチャ点DP1(最も目標点TPに近いデパーチャ点)の間のタスクTask_A内の干渉チェックを行うことに相当する。
経路決定部105は、退避経路の決定方法の変形例1に示したように、干渉判定部104によって干渉が発生しないと判定されたタスク(要素作業)間の移動経路、および、干渉が発生しないと判定されたタスクと退避点の間の移動経路に基づいて、干渉が発生しない退避点までの移動経路を決定する機能を備える。当該機能は、図14のフローチャートにおいて、各タスクのアプローチ点およびデパーチャ点から退避点までの退避経路を決定する処理(ステップS16)に相当する。
経路決定部105は、特定のタスクから退避点までの移動経路として、干渉が発生しない複数の移動経路が存在する場合、当該複数の移動経路のうち、退避点に到達するまでの総移動距離が最も短い移動経路を選択してもよい。
経路決定部105は、さらに、干渉判定部104によって干渉が発生しないと判定されたタスク内の移動経路をも考慮して、退避点までの移動経路を決定してもよい。
経路決定部105は、特定のタスクから退避点までの移動経路として、干渉が発生しない複数の移動経路が存在する場合、当該複数の移動経路のうち、退避点に到達するまでの総移動距離が最も短い移動経路を選択してもよい。
経路決定部105は、さらに、干渉判定部104によって干渉が発生しないと判定されたタスク内の移動経路をも考慮して、退避点までの移動経路を決定してもよい。
設定部106は、退避経路の決定方法の変形例2に示したように、ユーザの操作入力に基づいて、退避点に到達する前のロボットの通過点である1または複数の退避アプローチ点(退避通過点の一例)を設定する機能を備える。設定部106は、ロボットが退避点に直接移動するように各退避アプローチ点を設定する。例えば、図21において、退避タスクTask_Escapeの目標点TP(退避点)に直接移動可能となる退避アプローチ点AP1,AP2が退避通過点の一例である。
設定部106によって1または複数の退避アプローチ点が設定される場合、干渉判定部104は、各タスクのアプローチ点と各退避アプローチ点の間、および、各タスクのデパーチャ点と退避アプローチ点の間の移動経路において干渉が発生するか否かを判定する。
設定部106によって1または複数の退避アプローチ点が設定される場合、干渉判定部104は、各タスクのアプローチ点と各退避アプローチ点の間、および、各タスクのデパーチャ点と退避アプローチ点の間の移動経路において干渉が発生するか否かを判定する。
以上、本発明の経路決定装置の実施形態について詳述したが、本発明は上記の実施形態に限定されない。また、上記の実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更が可能である。
上述した説明により、図22の機能ブロック図に記載された機能のうち少なくとも一部の機能をコンピュータに実現させるためのプログラム、および、当該プログラムが記録されたコンピュータ可読記憶媒体(不揮発性の記憶媒体をも含む。)が開示されていることは当業者に理解される。
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…状態情報算出部、104…干渉判定部、105…経路決定部、106…設定部、221…ロボットプログラム、222…階層型リストデータベース、223…3次元モデルデータベース、224…実行ログデータベース、RA…ロボット領域、PA…パーツ領域、W1~W7…ウィンドウ、b1,b2,b11~b14,b141,b142…ボタン、AP…アプローチ点、TP…目標点、DP…デパーチャ点、TL…テーブル、T…タスク、M…モーション名称
Claims (8)
-
ワークに対する複数の要素作業を行うロボットの移動経路を決定するロボットの経路決定装置であって、
前記複数の要素作業の任意の2つの要素作業間の前記ロボットの移動経路において、干渉が発生するか否かを判定する第1干渉判定部と、
前記複数の要素作業の各々とユーザによって入力される退避点との間の前記ロボットの移動経路において、干渉が発生するか否かを判定する第2干渉判定部と、
前記第1干渉判定部によって干渉が発生しないと判定された要素作業間の移動経路、および、前記第2干渉判定部によって干渉が発生しないと判定された要素作業と前記退避点の間の移動経路に基づいて、干渉が発生しない前記退避点までの移動経路を決定する経路決定部と、
を備えた、ロボットの経路決定装置。 -
前記経路決定部は、特定の要素作業から前記退避点までの移動経路として、干渉が発生しない複数の移動経路が存在する場合、当該複数の移動経路のうち、前記退避点に到達するまでの総移動距離が最も短い移動経路を選択する、
請求項1に記載されたロボットの経路決定装置。 -
各作業要素は、作業要素の目標点に到達する前の前記ロボットの通過点である事前通過点、および、前記目標点に到達した後の前記ロボットの通過点である事後通過点が関連付けられており、
前記第1干渉判定部は、前記任意の2つの要素作業のうち一方の作業要素の事後通過点と他方の要素作業の事前通過点との間の前記ロボットの移動経路において干渉が発生するか否かを判定する、
請求項1または2に記載されたロボットの経路決定装置。 -
前記第2干渉判定部は、各要素作業の事前通過点と前記退避点の間、および、各要素作業の事後通過点と前記退避点の間の移動経路において干渉が発生するか否かを判定する、
請求項3に記載されたロボットの経路決定装置。 -
前記複数の要素作業の各々において、1または複数の事前通過点のうち最も目標点に近い事前通過点と、1または複数の事後通過点のうち最も目標点に近い事後通過点と、の間の要素作業内の前記ロボットの移動経路において、干渉が発生するか否かを判定する第3干渉判定部、を備え、
前記経路決定部は、前記干渉が発生しないと判定された要素作業間の移動経路、前記干渉が発生しないと判定された要素作業と前記退避点の間の移動経路、および、前記第3干渉判定部によって干渉が発生しないと判定された要素作業内の移動経路に基づいて、干渉が発生しない前記退避点までの移動経路を決定する、
請求項4に記載されたロボットの経路決定装置。 -
ユーザの操作入力に基づいて、前記退避点に到達する前の前記ロボットの通過点である1または複数の退避通過点を設定する設定手段であって、前記ロボットが前記退避点に直接移動するように各退避通過点を設定する前記設定手段、を備え、
前記第2干渉判定部は、各要素作業の事前通過点と各退避通過点の間、および、各要素作業の事後通過点と前記退避通過点の間の移動経路において干渉が発生するか否かを判定する、
請求項4または5に記載されたロボットの経路決定装置。 -
ワークに対する複数の要素作業を行うロボットの移動経路を決定するロボットの経路決定方法であって、
前記複数の要素作業の任意の2つの要素作業間の前記ロボットの移動経路において、干渉が発生するか否かを判定し、
前記複数の要素作業の各々とユーザによって入力される退避点との間の前記ロボットの移動経路において、干渉が発生するか否かを判定し、
干渉が発生しないと判定された前記任意の2つの要素作業間の移動経路、および、発生しないと判定された要素作業と前記退避点の間の移動経路に基づいて、干渉が発生しない前記退避点までの移動経路を決定する、
ロボットの経路決定方法。 -
ワークに対する複数の要素作業を行うロボットの移動経路を決定するためのプログラムであって、コンピュータに、
前記複数の要素作業の任意の2つの要素作業間の前記ロボットの移動経路において、干渉が発生するか否かを判定する第1干渉判定手段と、
前記複数の要素作業の各々とユーザによって入力される退避点との間の前記ロボットの移動経路において、干渉が発生するか否かを判定する第2干渉判定手段と、
前記第1干渉判定手段によって干渉が発生しないと判定された要素作業間の移動経路、および、前記第2干渉判定手段によって干渉が発生しないと判定された要素作業と前記退避点の間の移動経路に基づいて、干渉が発生しない前記退避点までの移動経路を決定する経路決定手段と、
を実現させるためのプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018178469 | 2018-09-25 | ||
JP2018-178469 | 2018-09-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020066947A1 true WO2020066947A1 (ja) | 2020-04-02 |
Family
ID=69952179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/037120 WO2020066947A1 (ja) | 2018-09-25 | 2019-09-20 | ロボットの経路決定装置、ロボットの経路決定方法、プログラム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2020066947A1 (ja) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6286412A (ja) * | 1985-10-11 | 1987-04-20 | Hitachi Ltd | 電子部品挿入順序決定方法 |
JP2003200368A (ja) * | 2001-10-25 | 2003-07-15 | Yaskawa Electric Corp | 複数ロボットの作業教示方法および作業教示装置 |
JP2010162682A (ja) * | 2008-12-18 | 2010-07-29 | Yaskawa Electric Corp | 基板搬送ロボット及びそれを備えた基板搬送装置、半導体製造装置 |
JP2015116631A (ja) * | 2013-12-18 | 2015-06-25 | セイコーエプソン株式会社 | 制御装置、ロボット、制御方法及びロボットシステム |
JP2015160277A (ja) * | 2014-02-27 | 2015-09-07 | ファナック株式会社 | ロボットの動作経路を生成するロボットシミュレーション装置 |
JP2018144171A (ja) * | 2017-03-06 | 2018-09-20 | 三菱電機株式会社 | ロボット制御方法 |
-
2019
- 2019-09-20 WO PCT/JP2019/037120 patent/WO2020066947A1/ja active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6286412A (ja) * | 1985-10-11 | 1987-04-20 | Hitachi Ltd | 電子部品挿入順序決定方法 |
JP2003200368A (ja) * | 2001-10-25 | 2003-07-15 | Yaskawa Electric Corp | 複数ロボットの作業教示方法および作業教示装置 |
JP2010162682A (ja) * | 2008-12-18 | 2010-07-29 | Yaskawa Electric Corp | 基板搬送ロボット及びそれを備えた基板搬送装置、半導体製造装置 |
JP2015116631A (ja) * | 2013-12-18 | 2015-06-25 | セイコーエプソン株式会社 | 制御装置、ロボット、制御方法及びロボットシステム |
JP2015160277A (ja) * | 2014-02-27 | 2015-09-07 | ファナック株式会社 | ロボットの動作経路を生成するロボットシミュレーション装置 |
JP2018144171A (ja) * | 2017-03-06 | 2018-09-20 | 三菱電機株式会社 | ロボット制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11090807B2 (en) | Motion generation method, motion generation device, system, and computer program | |
WO2019064916A1 (ja) | ロボットシミュレータ | |
US8706302B2 (en) | Method for offline programming of an NC-controlled manipulator | |
JP2019171501A (ja) | ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム | |
JP7151713B2 (ja) | ロボットシミュレータ | |
CN110573308A (zh) | 机器人***的混合现实辅助空间编程 | |
JP7259860B2 (ja) | ロボットの経路決定装置、ロボットの経路決定方法、プログラム | |
JP2019171498A (ja) | ロボットプログラム実行装置、ロボットプログラム実行方法、プログラム | |
WO2021246416A1 (ja) | プログラミング装置 | |
JP4505295B2 (ja) | Nc加工シミュレーション方法及びnc加工シミュレーション装置 | |
KR20180081774A (ko) | 매니퓰레이터 프로그램의 그래픽 사용자 인터페이스를 만들기 위한 방법 및 컴퓨터 프로그램 | |
JPWO2019064919A1 (ja) | ロボット教示装置 | |
US20230286169A1 (en) | Numerical control system and robot control method | |
JP2022500260A (ja) | ロボット装置のための制御装置、ロボット装置、方法、コンピュータプログラム及び機械可読記憶媒体 | |
WO2020066947A1 (ja) | ロボットの経路決定装置、ロボットの経路決定方法、プログラム | |
WO2020059342A1 (ja) | ロボットシミュレータ | |
JP7099470B2 (ja) | ロボット教示装置 | |
JP7024795B2 (ja) | ロボット教示装置 | |
JP2019171499A (ja) | ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム | |
JP7167925B2 (ja) | ロボット教示装置 | |
JP2019171500A (ja) | ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム | |
US20240256229A1 (en) | Program creation device | |
JP2521338B2 (ja) | パレタイジング/デパレタイジング制御方法 | |
US20230109876A1 (en) | Information processing apparatus, information processing method, and method of manufacturing products | |
JP2024011847A (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: 19867786 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19867786 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |