[go: up one dir, main page]

WO2020059342A1 - ロボットシミュレータ - Google Patents

ロボットシミュレータ Download PDF

Info

Publication number
WO2020059342A1
WO2020059342A1 PCT/JP2019/030923 JP2019030923W WO2020059342A1 WO 2020059342 A1 WO2020059342 A1 WO 2020059342A1 JP 2019030923 W JP2019030923 W JP 2019030923W WO 2020059342 A1 WO2020059342 A1 WO 2020059342A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
task
timing chart
program
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2019/030923
Other languages
English (en)
French (fr)
Inventor
小菅 昌克
吉田 昌弘
タン ナット ドアン
常田 晴弘
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nidec Corp
Original Assignee
Nidec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nidec Corp filed Critical Nidec Corp
Publication of WO2020059342A1 publication Critical patent/WO2020059342A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems

Definitions

  • the present invention relates to a robot simulator.
  • Japanese Patent Application Laid-Open Publication No. 2017-199077 discloses that in a production system having a plurality of industrial machines operated by an operation program, the operation program is automatically corrected for speed or acceleration. A simulator of a production system for improving and confirming the improvement result is disclosed.
  • Japanese Patent Application Laid-Open Publication No. 2018-094632 discloses that related process data relating to each of predetermined process instructions among the process instructions executed by the robot controller is collected and stored. ing.
  • an object of the present invention is to provide a robot simulator that can efficiently improve work using a robot.
  • An exemplary first invention of the present application is a program execution unit that executes a robot program describing the operation of a robot with respect to a plurality of element operations performed in sequence, and based on the execution result by the program execution unit,
  • a state information calculating unit that calculates state information that is information indicating the state of the robot, and corresponding to each of the plurality of element works on a time axis based on the state information obtained by the state information calculating unit.
  • a timing chart creating section for creating a first timing chart indicating the state of the robot, and a three-dimensional model of the robot are virtualized based on the state information obtained by the state information calculating section so that the period can be identified.
  • a simulation unit that operates in a space and displays the result on a display device, and the first timing chart is displayed on the display device.
  • FIG. 1 is a diagram illustrating an overall configuration of the robot simulator according to the embodiment.
  • FIG. 2 is a diagram illustrating a hardware configuration of each device included in the robot simulator 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 an example of the task list.
  • FIG. 9 is a diagram illustrating an example of a timing chart displayed by the robot simulator according to the embodiment.
  • FIG. 9 is a diagram illustrating an example of a timing chart displayed by the robot simulator according to the embodiment.
  • FIG. 10 is a diagram illustrating a user interface according to an example of the embodiment.
  • FIG. 11 is a functional block diagram of the robot simulator according to the embodiment.
  • FIG. 12 is an example of a sequence chart illustrating processing of the robot simulator according to the embodiment.
  • FIG. 13 is an example of a flowchart showing processing of the robot simulator according to the embodiment.
  • FIG. 14 is an example of a sequence chart illustrating processing of the robot simulator according to the embodiment.
  • FIG. 15 is a diagram illustrating an example of a timing chart displayed by the robot simulator according to the embodiment.
  • element work means work of a minimum unit performed by a robot in a series of works such as “take” and “place” an object.
  • article means an object to be processed by the robot, and is not limited to an object to be gripped by the robot (for example, a work that is a processed product), but is also an object related to the work by the robot (for example, a robot to be gripped by the robot). Shelves for placing objects).
  • the “reference point” of the robot means a position of the robot that 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.
  • FIG. 1 is a diagram illustrating an overall configuration of a robot simulator 1 according to an embodiment.
  • FIG. 2 is a diagram illustrating a hardware configuration of each device included in the robot simulator 1 of the present embodiment.
  • the robot simulator 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 executes the 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 signal according to the execution result of the robot program to the robot and operate the robot. Therefore, preferably, the robot control device 3 is 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 continuously displays 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 task database 221, a hierarchical list database 222, a three-dimensional model database 223, and an execution log database 224. The storage 22 stores data of a three-dimensional model referred to when executing the CAD software. In the example of the present embodiment, the storage 22 stores data of a three-dimensional model of a robot and an article (for example, a pen, a cap, a product, a pen tray, a cap tray, and a product tray described later). The storage 22 stores the execution log data acquired from the robot control device 3.
  • HDD hard disk drive
  • SSD solid state drive
  • the execution log data includes an execution result of the robot program and a temporary robot program described later, and robot state data described later.
  • the robot state data is used for creating a timing chart described later.
  • the robot status data may also be used to reproduce the motion of the robot in a virtual space by moving images (animation) by three-dimensional CAD.
  • the input device 23 is a device for receiving an operation input by a user, 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 results of the robot program and the temporary robot program, and the robot state data of the robot that executes the work described in the robot program.
  • the storage 32 has data of a model of the robot manipulator (the robot body including the arm 51 and the hand 52).
  • the control unit 31 executes a physical quantity (eg, angular displacement of the joint angle of the arm 51, angular velocity, The position of the hand 52 is calculated.
  • a physical quantity eg, angular displacement of the joint angle of the arm 51, angular velocity, The position of the hand 52 is calculated.
  • 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 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 user Before executing the simulation of the robot, the user 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 user 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, and performs operations related to teaching and moving image reproduction by CAD. 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 on a table T in a virtual space (hereinafter, “CAD” as appropriate). Image ") is displayed.
  • CAD virtual space
  • Image a virtual space
  • 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 an article. A product in which a cap is fitted to a pen is also an example of an article.
  • FIG. 4 shows a teaching window W2 according to an example of the present embodiment. What is displayed in the teaching window W2 is a robot R included in the CAD image of FIG. 3 and a hierarchical list indicating a hierarchical relationship between articles.
  • 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 the robot R and the article in the CAD image to a desired node in the tree-structured data format with the pointing device selected.
  • the hierarchical list can be completed by sequentially performing this operation on all the articles 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 holding a pen.
  • Node 62 (Cap): Hand holding a cap.
  • Node 63 (Pen_with_Cap): Hand holding a pen fitted with a cap.
  • 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 article held by the hand 52 of the robot R, it is set for each article 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.
  • an actuation method single solenoid or double solenoid, etc.
  • a sensor type are performed. be able to. Since the hand sequence depends on the article held by the hand 52 of the robot R, it is set for each article 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.
  • the components of the article include a jig (JIG), a pen tray (PenTray), a cap tray (CapTray), a product tray (ProductTray), a pen (Pen1, Pen2, ..., Pen12), and a cap (Cap1, Cap2, ..., Cap12). ) And products (PenProduct1, PenProduct2,..., PenProduct12).
  • JIG jig
  • penTray pen tray
  • CapTray a cap tray
  • ProductTray product tray
  • Pen Pen1, Pen2, ..., Pen12
  • Cap1, Cap2, ..., Cap12 Cap1, Cap2, ..., Cap12
  • Node 64 (PenProduct): a jig holding a product (PenProduct) ⁇ Node 65 (PenJ): a jig holding a pen (Pen) ⁇ Node 66 (CapJ): holding a cap (Cap) Jig in condition
  • Each of the nodes corresponding to the pens Pen1, Pen2,..., Pen12 is 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.
  • Robot R in the hierarchical list Robot_R in FIG. 4
  • articles jig (JIG), pen tray (PenTray), cap tray (CapTray), product tray (ProductTray), pens Pen1, @ Pen2, ..., Pen12
  • Each of the caps Cap1, @ Cap2, ..., Cap12 and the products PenProduct1, @ PenProduct2, ..., PenProduct12 is in a state of being associated with the corresponding three-dimensional model data. Therefore, even if the three-dimensional model of the robot R and the article in the hierarchical list is changed 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 is information on an element work, which is a minimum unit of work performed by the robot R in a series of works. Therefore, as shown in FIG. 5, in a period corresponding to a job (JOB), a period of a plurality of element works corresponding to a plurality of tasks T 1 , T 2 ,..., T n ⁇ 1 , T n and a robot R (ie, “move between tasks”).
  • 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 gripping an article 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.
  • the line with the 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 element work, 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 article that is the target of the element work.
  • the operation of the robot R before reaching the approach point AP1 corresponds to movement between elementary works (that is, movement between the previous elementary work and the elementary work shown in FIG. 6).
  • the operation of the robot R after the departure point DP2 corresponds to movement between elementary works (that is, movement between the elementary work shown in FIG. 6 and the next elementary work).
  • the movement of the robot R from the approach point AP1 to the departure point DP2 corresponds to one element work and one task, and the movement of the robot R between adjacent points in the element work corresponds to one motion. That is, 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 element work.
  • FIG. 6 illustrates a case where an interlock is set at approach points AP1 and AP2.
  • 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 user selects one of the nodes 61 to 63 of the hand (Hand) of the robot R (Robot_R) included in the robot area RA by the pointing device. Select with, 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 element work corresponding to the task, based on the user's operation input.
  • the teaching window W3 is a screen for performing detailed setting of a task, and displays items such as a task name (Name), a type of element work (Function), and a target of element work (Target).
  • a task name Name
  • a type of element work Function
  • a target of element work Target
  • the node of the target in the teaching window W3 is selected by left-clicking. Is input.
  • any one of a plurality of preset types of element work for example, pick (up), place (place), etc.
  • the work is configured to be selectable.
  • the selected article is displayed in the item of the target in the teaching window W3. Is entered.
  • the name (Name) of the task is automatically determined and displayed based on the data.
  • the user in order to create a task corresponding to the element work of “taking the pen Pen1 from the pen tray”, the user needs to use the node 61 in the robot area RA and the pointing device. Right-click on and select "Create Task”.
  • the pen tray (Target) in the teaching window W3 is displayed. PenTray) is input.
  • “take (Pickup)” is selected from a plurality of types of element work candidates.
  • the teaching window W3 shown in FIG. 7 is displayed.
  • a task named “Pickup_Pen1_From_PenTray” is created as information relating to the element work “take the pen Pen1 from the pen tray”.
  • the user can intuitively specify the task of the element work (here, “Pen Pen1”) and the start point (eg, “pen tray”) or end point of the element work on the hierarchical list. Can be created.
  • the name of the task includes the work content of the element work (for example, “Pickup”), the work target (for example, “Pen Pen1”), the article that is the start point of the element work (for example, “pen tray”), or the article that is the end point Are automatically created so as to include the content, so that the content of the task can be immediately known from the name of the task.
  • the work content of the element work for example, “Pickup”
  • the work target for example, “Pen Pen1”
  • the article that is the start point of the element work for example, “pen tray”
  • the article that is the end point are automatically created so as to include the content, so that the content of the task can be immediately known from the name of the task.
  • the approach point AP When a task is created, information on the approach point AP, target point TP, and departure point DP included in the task may be created automatically.
  • 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 article is set as the target point TP, and the center of gravity of the article is determined on a predetermined axis in the local coordinate system of the article ( 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.
  • buttons b2 (“create”) are provided in the teaching window W3 of FIG.
  • the task set in the teaching window W3 is registered in a task list described later.
  • a program for executing element work corresponding to the task shown in FIG. 6 includes a plurality of functions described below, and each function is a robot. It is described by a program (program module) for executing a motion corresponding to R.
  • the following move (AP1) may be defined separately as movement between elementary works.
  • the task list is information of a list of a plurality of tasks corresponding to each of a plurality of element works included in the job performed by the robot R. Tasks created 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 element works respectively corresponding to 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 tasks corresponding to the following six element tasks (i) to (vi). In this case, a case is shown in which a task with the name shown in parentheses is created by the teaching window W3 for creating a task.
  • 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 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 robot program corresponding to the job is created.
  • the robot program includes one or a plurality of program modules, and each program module corresponds to one task.
  • the program module based on each task is represented as a set of functions in which a program for causing the robot R to execute a plurality of motions is described.
  • the motion parameters (movement speed, acceleration, acceleration time, deceleration time, etc.) of the movement of the robot R during the element work corresponding to the continuous task may be predetermined as default values, It may be settable.
  • a robot program is created in the information processing device 2, and the robot program is executed in the robot control device 3.
  • the controller 31 of the robot controller 3 uses the manipulator model based on the data of the manipulator model of the robot R recorded in the storage 32. Is calculated as the robot state data (for example, the angular displacement of the joint angle of the arm 51, the angular velocity, and the like) according to the passage of time of each unit constituting the robot.
  • the execution log data including the job execution result and the robot status data is transmitted from the robot control device 3 to the information processing device 2.
  • the information processing device 2 creates and displays a timing chart based on the robot state data.
  • FIG. 9 shows an example of a timing chart displayed on the display device 24 of the information processing device 2.
  • the timing chart illustrated in FIG. 9 is a timing chart corresponding to a task named “Pickup from Pen Tray (Pickup_Pen1_From_PenTray)” in the job (“Pen Assembly”) illustrated in the teaching window W4 in FIG. ing.
  • the timing chart of FIG. 9 includes a portion A that displays a graph and a portion B that displays a task execution status, and the time from the start time of the job is displayed at the top. ing.
  • a cursor CU1 is provided.
  • the cursor CU1 can be moved right and left by the pointing device.
  • the cursor CU1 indicates the time from the start time of the job.
  • the graph displayed in part A of FIG. 9 is only a part of the plurality of types of robot state data.
  • the user can select the type of robot status data to be displayed from a plurality of types of robot status data.
  • a task name (“Task Function”) and a motion status (“Motion status”) are displayed.
  • the task name (“Task Function”) is “Pickup_Pen1_From_PenTray” as described above, and the period (start time and end time) of the task included in the job is known from FIG.
  • the motion status (“Motion status”) corresponds to the motion included in the task. That is, in the motion state (“Motion status”), the periods (start time and end time) of the following three types of motions (including a hand sequence in this case) are known.
  • the start time and end time of each motion match the execution start time and execution end time of the function corresponding to each motion.
  • the start time of each task matches the start time of the first motion among the multiple motions included in each task, and the end time of each task is the end time of the last motion among the multiple motions included in each task Matches.
  • the cause of the error may be displayed in the status column of the teaching window W4 in FIG.
  • Causes of the error include, for example, excessive speed, arrival at a target point, and arrival at a singular point.
  • the information processing apparatus 2 operates the three-dimensional model of the robot R and the article in the virtual space based on the robot state data, and outputs a simulation output of the movement of the robot R corresponding to the task as a simulation output.
  • Display video animation
  • the user can check the result of the job simulation on the CAD window.
  • the user interface UI shown in FIG. 10 is displayed on the information processing device 2 and provided to accept a user operation.
  • the user specifies a desired time on the displayed timing chart (illustrated in FIG. 9), and the task corresponding to the specified time is displayed in the user interface UI.
  • the coordinates of the robot position (the reference point of the robot) (the position in the world coordinate system) are displayed on the display unit 81, and are displayed on the coordinate display unit 82.
  • the current position of the robot is, for example, the current position of the tip flange of the manipulator.
  • a CAD image at a time designated on the timing chart is displayed on the display device 24.
  • the user interface UI deletes an instruction (first instruction) for changing the operation of the robot R in the element work (an example of the first element work) at the specified time, which is the time specified by the user, or deletes the element work. It has an operation target for receiving an instruction (second instruction). Specifically, it is as follows.
  • the user can switch whether to change the task at the specified time or the specified time (that is, select either the task selection menu 89 or the coordinate selection menu 90). .
  • the task selection menu 89 includes, as options, a plurality of tasks that are candidates for changing the task displayed on the task display section 81 (hereinafter, referred to as “change candidate tasks”). The user can select any one of the tasks. Selecting a change candidate task in the task selection menu 89 is an example of a first instruction to change the operation of the robot R. Note that simply operating the task selection menu 89 and selecting one of the change candidate tasks does not mean that the corresponding task has been changed and saved.
  • the coordinate selection menu 90 includes a plurality of candidate coordinates (hereinafter, referred to as “change candidate coordinates”) when changing the coordinates displayed on the coordinate display unit 82 as options.
  • the user can select any one of the coordinates. Selecting the change candidate coordinates in the coordinate selection menu 90 is an example of a first instruction for changing the operation of the robot R. Note that simply operating the coordinate selection menu 90 and selecting one of the change candidate coordinates does not mean that the corresponding coordinate has been changed and saved.
  • a moving image can be played from the time displayed on the coordinate display unit 82 in the task displayed on the task display unit 81.
  • the moving image can be reversely played from the time displayed on the coordinate display section 82 in the task displayed on the task display section 81.
  • the play button 83 Each time the operation is performed, it is possible to sequentially return to the beginning of the task displayed on the task display section 81 or to a desired task earlier than the beginning. Then, by operating the play button 83, the moving image corresponding to the task at that time can be played from the beginning.
  • the delete button 87 the task corresponding to the designated time or the task selected in response to the operation of the play button 85 can be deleted.
  • the changed robot program (hereinafter, referred to as the “changed robot program”).
  • the temporary robot program By executing the “temporary robot program”), a timing chart after the change can be created.
  • the user analyzes the changed timing chart and decides to change the task or the coordinate, the user operates the save button 92 to temporarily change the currently set task or coordinate. You can change it and save it.
  • the save button 92 is an example of an operation target for saving information corresponding to an element work whose robot operation has been changed.
  • the user can efficiently improve work using the robot. For example, when trying to improve the operation of a robot (for example, tact time) by looking at a timing chart obtained by executing a robot program at a certain point in time, after specifying a time that can be improved on the timing chart, By a selection operation in the task selection menu 89 or the coordinate selection menu 90, the task at the specified time or the position of the robot at the specified time can be temporarily changed.
  • the evaluation button 91 is operated, the provisional robot program based on the provisionally changed task or the provisionally changed robot position is executed, and the changed timing chart (an example of the second timing chart) is displayed.
  • the user can check whether the operation of the robot has been improved by the changed task or the changed position of the robot.
  • the motion of the robot may be reproduced as a moving image on the CAD based on the robot state data generated by executing the temporary robot program.
  • the temporarily changed task or the position of the temporarily changed robot is changed to the currently set task or the position of the robot (not the temporary). ) Saved as modified. Therefore, by using the user interface UI, the user can output the operation information of the robot (that is, output the timing chart), specify the improvement points based on the output on the timing chart, and change the task or the like. It is possible to streamline a series of operations, such as verification of improvement by the system.
  • the temporarily changed task or coordinates may be stored as execution history data.
  • the execution history data may be included in the options of the task selection menu 89 and the coordinate selection menu 90.
  • FIG. 11 is a functional block diagram of the robot simulator 1 according to the embodiment.
  • the robot simulator 1 includes a display control unit 101, a task creation unit 102, a program creation unit 103, a program execution unit 104, a state information calculation unit 105, a timing chart creation unit 106, a simulation unit 107, An interlock setting unit 108 is provided.
  • the robot simulator 1 further includes a task database 221, a hierarchical list database 222, a three-dimensional model database 223, and an execution log database 224.
  • the display control unit 101 controls the display device 24 to display the execution results of the teaching software and the CAD software.
  • the control unit 21 of the information processing device 2 generates image data including the output of the teaching software and the CAD software, buffers the image data, and transmits the image data to the display device 24.
  • the display device 24 drives a display drive circuit to display an image on a display panel.
  • the task creating unit 102 has a function of creating a task, which is information related to elementary work of a robot on an article, based on a user's operation input.
  • the control unit 21 of the information processing device 2 receives the user's operation input from the input device 23 to realize the function of the task creation unit 102, the control unit 21 shown in FIG. A task is created as a file including information on a target of the element work (Target), and recorded in the storage 22.
  • the control unit 21 determines a task name according to a predetermined rule based on the type (Function) of the element work and the target (Target) of the element work.
  • the storage 22 stores a task database 221 including the tasks created by the task creating unit 102.
  • the control unit 21 of the information processing device 2 sequentially creates tasks corresponding to a plurality of element works included in a job performed by the robot, and thereby creates a plurality of tasks associated with the job as a task list.
  • each task is recorded in a state associated with a specific job.
  • the display control unit 101 refers to the task database 221 of the storage 22 and displays a task list, which is a list of a plurality of tasks, on the display device 24. By displaying the task list, it is possible to easily manage the jobs performed by the robot when teaching the robot.
  • the names of the tasks in the displayed task list are configured so that the work contents of the element work of the robot can be recognized. Has become.
  • the display control unit 101 has a function of displaying a timing chart created by a timing chart creation unit 106 described later on the display device 24.
  • the display control unit 101 changes the state of the robot based on the robot state data obtained by the state information calculation unit 105 described below so that the period corresponding to the element work of the task can be identified on the time axis.
  • the timing chart shown is displayed on the display device 24.
  • the program creating unit 103 has a function of creating a program for causing the robot 5 to execute element work corresponding to the task based on the task created by the task creating unit 102.
  • the control unit 21 of the information processing device 2 determines the type of the element work included in the task, the target of the element work, the approach point, the departure point, the motion parameter, and the Based on the settings, a function that describes a program for causing the robot to execute element work corresponding to the task is created.
  • the program creating unit 103 automatically creates a program by referring to information included in a task and rewriting a coordinate position and the like in a predetermined program format according to the type of element work stored in the storage 22. I do.
  • the program execution unit 104 has a function of executing a robot program describing the operation of the robot with respect to a plurality of element operations performed sequentially.
  • the control unit 21 of the information processing device 2 transmits a robot program created based on at least one task to the robot control device 3 via the communication interface unit 25.
  • one job includes a plurality of element works described by a task and movement between the element works.
  • One task includes a plurality of motions and, if necessary, a hand sequence, and a program for executing an element work corresponding to the task is defined by a plurality of functions.
  • the movement between the robot element operations is defined by a function described by a program including predetermined default motion parameters.
  • a temporary robot program in which the task or the coordinates of the robot is temporarily changed in accordance with the operation of the user interface UI shown in FIG. 10 is created. Also in that case, the temporary robot program is transmitted to the robot control device 3. Upon receiving the robot program or the temporary robot program, the control unit 31 of the robot control device 3 executes the robot program or the temporary robot program for one job by sequentially executing a plurality of functions corresponding to each motion and the hand sequence. I do.
  • the state information calculation unit 105 has a function of calculating robot state data (an example of state information), which is information indicating the state of the robot over time, based on the execution result of the program execution unit 104.
  • the timing chart creation unit 106 indicates the state of the robot R based on the robot state data obtained by the state information calculation unit 105 so that a period corresponding to each of the plurality of element works can be identified on the time axis.
  • a function to create a timing chart is provided.
  • the timing charts created by the timing chart creation unit 106 are a timing chart based on execution of a robot program (an example of a first timing chart) and a timing chart based on a temporary robot program (an example of a second timing chart).
  • the functions of the state information calculation unit 105 and the timing chart creation unit 106 are realized as follows.
  • the control unit 31 of the robot control device 3 executes the robot program or the temporary robot program received from the information processing device 2 by sequentially executing the programs created based on each task. Then, the control unit 31 calculates robot state data of the entire job as an execution result of the robot program or the temporary robot program, and sequentially records the data in the storage 32.
  • the robot state data is data of physical quantities (for example, arm joint angles, arm speed and acceleration, hand position, and the like) indicating the state of the robot according to the passage of time calculated based on the manipulator model.
  • the control unit 31 reads the robot state data from the storage 32 for each predetermined reference time (for example, 1 ms) along the time axis of the progress of the job.
  • the control unit 31 transmits execution log data including the read robot state data and the execution result of the robot program 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 control unit 21 creates a timing chart based on the acquired robot state data for each reference time. The created timing chart is configured so that a period corresponding to a specific elemental operation can be identified for a series of operations of the robot.
  • the storage 22 stores a three-dimensional model database 223 including a three-dimensional model of the robot in the virtual space and information on the three-dimensional model of the article.
  • the simulation unit 107 has a function of operating a three-dimensional model in a virtual space and displaying the three-dimensional model on the display device 24 based on the robot state data obtained by the state information calculation unit 105.
  • the control unit 21 of the information processing device 2 reads the execution log data recorded in the execution log database 224, and in the virtual space based on the robot state data included in the execution log data.
  • the three-dimensional model of the robot and the article is operated and displayed on the display device 24.
  • the simulation unit 107 has a function of operating the three-dimensional model of the robot R in the virtual space and displaying it on the display device 24 based on the state information obtained by the state information calculation unit 105.
  • the simulation unit 107 has a function of displaying a three-dimensional model at a specified time that is a time specified by the user in the timing chart created and displayed by the timing chart creation unit 106.
  • the control unit 21 of the information processing device 2 operates the three-dimensional model of the robot R in the virtual space by referring to the robot state data, and displays the image of the three-dimensional model of the robot at the designated time. Can be.
  • the interlock setting unit 108 has a function of setting a timeout value of a waiting time for waiting for the operation of the robot at at least one of the target point, the approach point, and the departure point set in the task, based on a user operation input.
  • the control unit 21 of the information processing device 2 is configured based on the user's operation input received by the input device 23 (for example, the operation input in the teaching window W3 in FIG. 7).
  • the storage 22 is accessed to rewrite the timeout value of the interlock wait time set at the specific approach point or the departure point included in the task included in the task database 221.
  • the interlock setting unit 108 allows the user to easily set the timeout value of the standby time due to the interlock for each element work when performing offline teaching of the robot.
  • FIG. 12 is an example of a sequence chart illustrating a job execution process of the robot simulator according to the present embodiment.
  • the program creating unit 103 creates a robot program for executing the job on the robot R.
  • the robot program includes a plurality of functions in which a program for causing the robot R to execute element work corresponding to each task in the task list corresponding to the job is described.
  • the created robot program is transmitted from the information processing device 2 to the robot control device 3 (step S14), and is executed by the robot control device 3. That is, the program execution unit 104 executes the robot program on a task basis (step S16).
  • the state information calculation unit 105 calculates robot state data, which is information indicating the state of the robot R over time, based on the execution result of the program execution unit 104, and stores execution log data including the robot state data. 32 (step S18).
  • the processes in steps S16 and S18 are performed until all tasks included in the task list are completed.
  • the robot control device 3 transmits the execution log data to the information processing device 2 (step S22).
  • the execution log data includes the robot state data for each predetermined reference time (for example, 1 ms) along the time axis of the progress of the job, and the execution result of the robot program.
  • the information processing device 2 records the received execution log data in the execution log database 224.
  • the display control unit 101 displays a timing chart in a predetermined format based on the robot status data included in the execution log data received in step S22 (that is, the robot status data obtained by the status information calculation unit 105). It is displayed on the device 24 (step S24).
  • the simulation unit 107 operates the three-dimensional model in the virtual space based on the robot state data and displays the three-dimensional model on the display device 24 (Step S26).
  • the robot simulator 1 of the present embodiment calculates the robot state data based on the execution result of the robot program corresponding to the job, and performs the element work of the task on the time axis based on the robot state data.
  • the timing chart is displayed so that the corresponding period can be identified. Therefore, when displaying the result of the simulation for a series of operations of the robot, it is possible to identify a period corresponding to a specific elemental operation, and it is possible to support examination for each elementary operation.
  • a display example of the timing chart in step S24 is as shown in FIG.
  • FIG. 13 illustrates a process executed by the control unit 21 of the information processing device 2.
  • the user looks at the flowchart (see FIG. 9) created by executing the flowchart of FIG. 12 and finds a point where the operation of the robot (for example, tact time) should be improved, there is room for improvement on the timing chart.
  • the control unit 21 of the information processing device 2 displays a user interface UI including the task at the designated time and the coordinates of the robot position on the display device 24 (step S32). .
  • the coordinates of the task and the robot position at the designated time are displayed on, for example, the task display unit 81 and the coordinate display unit 82 in FIG.
  • the control unit 21 performs moving image reproduction by 3D CAD based on the robot state data according to the reproduction target.
  • the playback button 83 of the user interface UI step S36: “current element work”
  • the task displayed on the task display unit 81 displays the coordinate display unit 82
  • the moving image by the CAD is reproduced from the time displayed on the screen (step S38).
  • the play button 85 of the user interface UI it is possible to sequentially return to the beginning of the task displayed on the task display section 81 or to a desired task before that.
  • step S36 “designated previous element work”
  • step S40 a moving image by CAD of the designated element work
  • the user By executing the processing of the flowchart in FIG. 13, the user predicts a part that can be improved in the timing chart, and confirms that the operation of the robot R should be improved by actually playing back a moving image of the part. Can be.
  • FIG. 14 is a sequence chart showing a change in the operation of the robot R and a verification process.
  • FIG. 15 is a diagram showing a display example of a timing chart before and after the change.
  • the information processing device 2 displays a user interface UI including the task at the specified time and the coordinates of the robot position (step S52).
  • the coordinates of the task and the robot position at the designated time are displayed on, for example, the task display unit 81 and the coordinate display unit 82 in FIG.
  • step S56 when there is an instruction to temporarily change the task or the robot position at the designated time (step S54: YES), the information processing device 2 creates a temporary robot program (step S56).
  • the instruction to temporarily change the task or the robot position is made by operating the evaluation button 91 after performing a selection operation on the task selection menu 89 or the coordinate selection menu 90 on the user interface UI (FIG. 10).
  • step S56 the information processing device 2 creates a robot program in which the task or the robot position temporarily changed with respect to the current robot program is reflected.
  • the created temporary robot program is transmitted from the information processing device 2 to the robot control device 3 (Step S58), and is executed by the robot control device 3 (Step S60).
  • the robot control device 3 transmits the execution log data to the information processing device 2 (Step S62).
  • the execution log data includes the robot state data for each predetermined reference time (for example, 1 ms) along the time axis of the progress of the job, and the execution result of the temporary robot program.
  • the information processing apparatus 2 makes it possible to compare the timing chart based on the execution of the robot program (an example of the first timing chart) with the timing chart based on the execution of the temporary robot program (an example of the second timing chart) on the time axis. It is displayed (step S64).
  • FIG. 15 shows a display example of the timing chart in step S64.
  • a timing chart based on the execution of the robot program (the same as in FIG. 9) is displayed in the upper half, and a timing chart based on the execution of the temporary robot program is displayed in the lower half.
  • the second standby time WT in the upper half timing chart is deleted in the lower half timing chart, and the tact time for the corresponding task is improved.
  • the user can output the operation information of the robot (that is, output the timing chart), specify the improvement points based on the output on the timing chart, and change the task or the like.
  • the efficiency of a series of tasks such as verification of improvement through
  • the robot simulator according to the above-described embodiment does not need to have all the functions described in the functional block diagram of FIG. 11, but may have at least some of the functions.
  • the case where the robot simulator includes two devices, the information processing device and the robot control device has been described as an example.
  • the present invention is not limited thereto, and the robot simulator may be configured as an integrated device.
  • the case where the pointing device is included in the input device of the information processing apparatus has been described.
  • the present invention is not limited thereto, and another device may be used.
  • a display panel having a touch input function may be used to receive a touch input by a user.
  • a program for causing a computer to realize at least a part of the functions described in the functional block diagram of FIG. 11 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.
  • Switch, 89 ... Task selection menu, 90 coordinate selection menu, 91: evaluation button, $ 92: save button, 101: display control unit, 102: task creation 103, a program creation unit, 104, a program execution unit, 105, a state information calculation unit, 106, a timing chart creation unit, 107, a simulation unit, 108, an interlock setting unit, 221, a task database, 222, a hierarchical list database 223: 3D model database, 224: execution log database, RA: robot area, PA: article area, W1 to W4: window, b1 to b3: button, AP: approach point, TP: target point, DP: departure point , T ... table

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

本発明の一実施形態は、ロボットプログラムを実行するプログラム実行部と、プログラム実行部による実行結果に基づいて、時間の経過に応じたロボットの状態を示す情報である状態情報を演算する状態情報算出部と、状態情報に基づいて時間軸において各要素作業に相当する期間が識別可能となるように、ロボットの状態を示すタイミングチャートを作成するタイミングチャート作成部と、状態情報に基づいてロボットの3次元モデルを仮想空間内で動作させて表示装置に表示するシミュレーション部と、タイミングチャートを表示装置に表示する表示制御部と、を備え、シミュレーション部は、タイミングチャートにおいてユーザによって指定された時刻における3次元モデルを表示する、ロボットシミュレータである。

Description

ロボットシミュレータ
 本発明は、ロボットシミュレータに関する。
 コンピュータによるシミュレーションによってロボットの動作を評価できるようにしたロボットシミュレータが知られている。
 例えば、日本国公開公報特開2017-199077号公報には、動作プログラムによって動作する複数の産業機械を有する生産システムにおいて、動作プログラムの速度または加速度の修正を自動的に行うようにして動作プログラムを改良し、その改良結果を確認するための生産システムのシミュレータが開示されている。
 また、日本国公開公報特開2018-094632号公報には、ロボットコントローラによって実行されたプロセス命令の中の予め決められたプロセス命令の各々に関する関連したプロセスデータを収集し、記憶することが記載されている。
日本国公開公報:特開2017-199077号公報 日本国公開公報:特開2018-094632号公報
 ところで、従来のロボットシミュレータでは、ロボットの動作をタイミングチャートによって表示することが多い(例えば、日本国公開公報特開2017-199077号公報の図4)。しかし、タイミングチャートが表示されただけでは、ロボットによる作業全体の中のどのプロセス、若しくはプロセス内のどの動作を変更すれば作業を改善できるのか分かり難いという問題がある。
 そこで、本発明は、ロボットを利用した作業の改善を効率良く行うことを可能とするロボットシミュレータを提供することを目的とする。
 本願の例示的な第1発明は、順に行われる複数の要素作業に対するロボットの動作を記述したロボットプログラムを実行するプログラム実行部と、前記プログラム実行部による実行結果に基づいて、時間の経過に応じた前記ロボットの状態を示す情報である状態情報を演算する状態情報算出部と、前記状態情報算出部により得られた前記状態情報に基づいて、時間軸において前記複数の要素作業の各々に相当する期間が識別可能となるように、前記ロボットの状態を示す第1タイミングチャートを作成するタイミングチャート作成部と、前記状態情報算出部によって得られた状態情報に基づいて、ロボットの3次元モデルを仮想空間内で動作させて表示装置に表示するシミュレーション部と、前記第1タイミングチャートを前記表示装置に表示する表示制御部と、を備え、前記シミュレーション部は、前記第1タイミングチャートにおいてユーザによって指定された時刻である指定時刻における前記3次元モデルを表示する、ロボットシミュレータである。
 本発明によれば、ロボットを利用した作業の改善を効率良く行うことを可能とするロボットシミュレータを提供すことができる。
図1は、実施形態のロボットシミュレータの全体構成について示す図である。 図2は、実施形態のロボットシミュレータに含まれる各装置のハードウェア構成を示す図である。 図3は、実施形態の一例に係る3次元CAD用ウィンドウを示す図である。 図4は、実施形態の一例に係る教示用ウィンドウを示す図である。 図5は、ジョブを概念的に説明するための図である。 図6は、タスクを概念的に説明するための図である。 図7は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。 図8は、タスクリストの一例を示す図である。 図9は、実施形態に係るロボットシミュレータによって表示されるタイミングチャートの一例を示す図である。 図10は、実施形態の一例に係るユーザインタフェースを示す図である。 図11は、実施形態に係るロボットシミュレータの機能ブロック図である。 図12は、実施形態に係るロボットシミュレータの処理を示すシーケンスチャートの例である。 図13は、実施形態に係るロボットシミュレータの処理を示すフローチャートの例である。 図14は、実施形態に係るロボットシミュレータの処理を示すシーケンスチャートの例である。 図15は、実施形態に係るロボットシミュレータによって表示されるタイミングチャートの一例を示す図である。
 以下、本発明のロボットシミュレータの実施形態について説明する。
 以下の説明において、「要素作業」とは、物体を「取る」や「置く」等、一連の作業の中でロボットが行う最小単位の作業を意味する。
 「物品」とは、ロボットの作業の対象となる物体を意味し、ロボットが把持する物体(例えば、加工物品であるワーク)に限らず、ロボットの作業に関連する物体(例えば、ロボットが把持する物体を置く棚)をも含む。
 ロボットの「基準点」は、後述するロボットのアプローチ点、目標点、デパーチャ点等のロボットの教示点の基準となるロボットの位置を意味し、例えばロボットの作用点(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ソフトウェアによる動画再生を行うために、フレーム単位で画像を連続的に表示する。
 ストレージ22は、HDD(Hard Disk Drive)あるいはSSD(Solid State Drive)等の大容量記憶装置であり、制御部21のCPUにより逐次アクセス可能に構成されている。後述するように、ストレージ22には、タスクデータベース221、階層型リストデータベース222、3次元モデルデータベース223、および、実行ログデータベース224が格納される。
 ストレージ22には、CADソフトウェアを実行するときに参照される3次元モデルのデータが格納される。本実施形態の例では、ストレージ22には、ロボットおよび物品(例えば、後述するペン、キャップ、製品、ペントレイ、キャップトレイ、製品トレイ)の3次元モデルのデータが格納される。
 ストレージ22には、ロボット制御装置3から取得した実行ログデータが格納される。実行ログデータには、ロボットプログラムおよび後述する仮ロボットプログラムの実行結果と、後述するロボット状態データとが含まれる。
 ロボット状態データは、後述するタイミングチャートの作成に使用される。ロボット状態データはまた、3次元CADによってロボットの動作を仮想空間内で動画(アニメーション)により再現するために使用されてもよい。
 入力装置23は、ユーザによる操作入力を受け付けるためのデバイスであり、ポインティングデバイスを含む。
 表示装置24は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示するためのデバイスであり、表示駆動回路および表示パネルを含む。
 通信インタフェース部25は、ロボット制御装置3との間でイーサネット通信を行うための通信回路を含む。
 ロボット制御装置3は、制御部31と、ストレージ32と、通信インタフェース部33とを備える。
 制御部31は、CPU、ROM、RAM、および、制御回路を含む。制御部31は、情報処理装置2から受信するロボットプログラムを実行し、実行ログデータを出力する。上述したように、実行ログデータには、ロボットプログラムおよび仮ロボットプログラムの実行結果と、ロボットプログラムに記述された作業を実行するロボットのロボット状態データとを含む。
 ストレージ32は、ロボットのマニピュレータ(アーム51、ハンド52を含むロボット本体)のモデルのデータを備えている。制御部31は、ロボットプログラムおよび仮ロボットプログラムの実行結果に基づいて、マニピュレータを構成する各部のジョブを実行中の時間の経過に応じた物理量(例えば、アーム51の関節角の角度変位、角速度、ハンド52の位置等)を演算する。かかる物理量のデータが上記ロボット状態データに含まれる。
 ストレージ32は、HDDあるいはSSD等の大容量記憶装置であり、制御部31のCPUにより逐次アクセス可能に構成されている。ストレージ32には、ロボットのマニピュレータのモデルのデータの他に、ロボットプログラムおよび実行ログデータが格納される。
 通信インタフェース部33は、情報処理装置2との間でイーサネット通信を行うための通信回路を含む。
 (2)オフラインティーチング
 ロボットのシミュレーションを実行する前に、ユーザは、情報処理装置2を使用して、ロボットに対するオフラインティーチングを行い、ロボットプログラムを作成する。ロボットプログラムを作成するに当たって、本実施形態の好ましい例では、CADソフトウェアと教示ソフトウェアを情報処理装置2に実行させる。
 CADソフトウェアの実行結果はCAD用ウィンドウに表示され、教示ソフトウェアの実行結果は教示用ウィンドウに表示される。ユーザは、CAD用ウィンドウと教示用ウィンドウの両方を情報処理装置2に表示させ、あるいはCAD用ウィンドウと教示用ウィンドウを切り替えながら情報処理装置2に表示させ、ティーチングやCADによる動画再生に関連する操作を行う。
 図3に、本実施形態の一例に係るCAD用ウィンドウW1を示す。図3には、テーブルTの上に、ロボットRと、ペントレイ11と、キャップトレイ12と、治具13と、製品トレイ14とが、仮想空間に配置された状態の画像(以下、適宜「CAD画像」という。)が表示されている。
 図3に示す例では、ロボットRがペンにキャップを嵌めて製品(ペンにキャップが嵌められた状態の完成品)を組み立てる一連の作業を行うことが想定されている。ペントレイ11には複数のペンからなるペン群Pが配置され、キャップトレイ12には複数のキャップからなるキャップ群Cが配置されている。治具13は、ロボットRがペンを一時的に配置してキャップを嵌める作業を行うための部材である。製品トレイ14は、製品を置くための部材である。
 図3に示す例では、ペン群Pに含まれる各ペン、キャップ群Cに含まれる各キャップ、ペントレイ11、キャップトレイ12、治具13、製品トレイ14の各々は、ロボットRの作業対象である物品の例である。また、ペンにキャップが嵌められた製品も物品の例である。
 (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つの要素作業および1つのタスクに対応し、当該要素作業内において隣接する点間のロボットRの動きが1つのモーションに相当する。
 すなわち、タスクは、要素作業に関する情報のほか、目標点TP、アプローチ点AP、およびデパーチャ点DPのうち少なくともいずれかの点に関する情報を含んでもよい。
 図6では、アプローチ点AP1,AP2においてインターロックが設定されている場合が例示されている。インターロックは、他のロボット等との干渉を回避するために、所定の信号が入力されるまで、目標点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を取る」という要素作業に対応するタスクを作成するには、ロボット領域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において、教示用ウィンドウW4内の任意の位置を対象として右クリック操作を行い、「プログラム出力」が選択された場合、ジョブに対応したロボットプログラムを出力する。
 (2-6)ジョブのシミュレーション
 図8の教示用ウィンドウW4においてボタンb3が操作された場合、タスクリストに対応するロボットRのジョブのシミュレーションが実行される。
 ジョブのシミュレーションを実行するに当たっては、先ず、当該ジョブに対応するロボットプログラムが作成される。ロボットプログラムは、1または複数のプログラムモジュールを含み、各プログラムモジュール1つのタスクに対応している。
 各タスクに基づくプログラムモジュールは、前述したように、ロボットRに対応する複数のモーションを実行させるためのプログラムが記述された関数の集合体として表される。なお、連続するタスクに対応する要素作業の間のロボットRの移動についてのモーションパラメータ(移動速度、加速度、加速時間、減速時間等)は、デフォルト値として予め定められていてもよいし、ユーザが設定できるようにしてもよい。
 各タスクに基づくプログラムモジュールを組み合わせるに当たっては、入力信号あるいは条件によって実行するプログラムを切り替えるような分岐処理や、特定のプログラムを繰り返す処理等が組み込まれてもよい。
 本実施形態では、情報処理装置2においてロボットプログラムが作成され、ロボット制御装置3において当該ロボットプログラムが実行される。
 本実施形態では、ロボット制御装置3にロボットの実機が接続されていないため、ロボット制御装置3の制御部31は、ストレージ32に記録されているロボットRのマニピュレータのモデルのデータに基づいて、マニピュレータを構成する各部の時間の経過に応じた物理量(例えば、アーム51の関節角の角度変位、角速度等)を、ロボット状態データとして演算する。
 ジョブの実行結果とロボット状態データを含む実行ログデータは、ロボット制御装置3から情報処理装置2へ送信される。情報処理装置2は、ロボット状態データに基づいて、タイミングチャートを作成して表示する。
 図9に、情報処理装置2の表示装置24において表示されるタイミングチャートの一例を示す。
 図9に例示するタイミングチャートは、図8の教示用ウィンドウW4において例示したジョブ(「Pen Assembly」)の中の「ペントレイからペンを取る (Pickup_Pen1_From_PenTray)」という名称のタスクに対応するタイミングチャートを示している。
 図9のタイミングチャートは、グラフを表示する部分であるA部と、タスクの実行状況について表示する部分であるB部と、を含み、最上部には、ジョブの開始時刻からの時間が表示されている。図9に示す例では、カーソルCU1が設けられている。ポインティングデバイスによってカーソルCU1を左右に移動させることができる。カーソルCU1は、ジョブの開始時刻からの時間を示している。
 図9のA部には、ロボットRの以下のロボット状態データの参照時間(例えば1ms)ごとの変化をプロットした波形(グラフ)が表示される。なお、ロボットRの位置とは、例えば、マニピュレータの先端フランジの位置である。
 ・ロボットRのX座標(ワールド座標系)の位置の指令値(“posX”)
 ・ロボットRのY座標(ワールド座標系)の位置の指令値(“posY”)
 ・ロボットRのZ座標(ワールド座標系)の位置の指令値(“posZ”)
 ・アーム51の関節角の角速度の指令値(“Angular Velocity”)
 なお、図9のA部に表示されているグラフは、複数の種別のロボット状態データの一部の種別のデータに過ぎない。ユーザは、複数の種別のロボット状態データの中から、表示させるロボット状態データの種別を選択できる。
 図9のB部では、タスク名称(“Task Function”)とモーション状態(“Motion status”)が表示される。タスク名称(“Task Function”)は、上述したように“Pickup_Pen1_From_PenTray”であり、図9からジョブに含まれる当該タスクの期間(開始時刻および終了時刻)がわかる。
 モーション状態(“Motion status”)はタスクに含まれるモーションに対応している。すなわち、モーション状態(“Motion status”)では、以下の3種類のモーション(ここでは、ハンドシーケンスも含む。)の期間(開始時刻および終了時刻)がわかる。各モーションの開始時刻および終了時刻は、各モーションに対応する関数の実行開始時刻および実行終了時刻と一致する。各タスクの開始時刻は、各タスクに含まれる複数のモーションのうち最初のモーションの開始時刻と一致し、各タスクの終了時刻は、各タスクに含まれる複数のモーションのうち最後のモーションの終了時刻と一致する。
 ・Move(PTP)…円弧移動。主に、アプローチ点AP間の移動、および、デパーチャ点DP間の移動のうちのいずれかの移動に用いられる。
 ・Move(Line)…直線移動。主に、アプローチ点APから目標点TPまでの移動、および、目標点TPからデパーチャ点DPまでの移動のうちのいずれかの移動に用いられる。
 ・HandSequence()…ハンドシーケンス処理
 ロボットRのロボット状態データを算出するときにエラーが発生した場合には、図8の教示用ウィンドウW4のステータス(Status)の欄に、エラー原因を表示してもよい。エラー原因としては、例えば、速度超過、目標点不到達、特異点到達等が挙げられる。
 好ましくは、本実施形態では、情報処理装置2は、ロボット状態データに基づいて、ロボットRおよび物品の3次元モデルを仮想空間内で動作させ、シミュレーション出力として、タスクに対応するロボットRの動きの動画(アニメーション)の表示を行う。それによって、ユーザは、ジョブのシミュレーションの結果をCAD用ウィンドウで確認することができる。
 (3)ロボットシミュレータ1におけるユーザインタフェース
 図10に示すユーザインタフェースUIは、情報処理装置2に表示され、ユーザによる操作を受け入れるように設けられている。ユーザインタフェースUIを使用することによって、ユーザが、表示されているタイミングチャート(図9に例示)上の所望の時刻を指定することで、ユーザインタフェースUIには、指定した時刻に対応するタスクがタスク表示部81に表示され、ロボット位置(ロボットの基準点)の座標(ワールド座標系の位置)が座標表示部82に表示される。ロボットの現在位置とは、例えば、マニピュレータの先端フランジの現在位置である。図示しないが、タイミングチャート上で指定された時刻のCAD画像が表示装置24に表示される。
 ユーザインタフェースUIは、ユーザによって指定された時刻である指定時刻の要素作業(第1要素作業の例)内におけるロボットRの動作を変更する指示(第1指示)、または、当該要素作業を削除する指示(第2指示)を受け付ける操作対象を有する。具体的には、以下のとおりである。
 ・スイッチ88を切り替えることで、ユーザは、指定時刻のタスクまたは指定時刻のいずれを変更するか切り替えることができる(つまり、タスク選択メニュー89または座標選択メニュー90のいずれかを選択することができる)。
 ・タスク選択メニュー89には、タスク表示部81に表示されたタスクを変更するときの候補となるタスク(以下、「変更候補タスク」という。)が選択肢として複数含まれており、複数の変更候補タスクの中からいずれか1つをユーザが選択することができる。タスク選択メニュー89において変更候補タスクを選択することは、ロボットRの動作を変更する第1指示の一例である。
 なお、タスク選択メニュー89をユーザが操作していずれかの変更候補タスクを選択しただけでは、対応するタスクを変更して保存したことにはならない。
 ・座標選択メニュー90には、座標表示部82に表示された座標を変更するときの候補となる座標(以下、「変更候補座標」という。)が選択肢として複数含まれており、複数の変更候補座標の中からいずれか1つをユーザが選択することができる。座標選択メニュー90において変更候補座標を選択することは、ロボットRの動作を変更する第1指示の一例である。
 なお、座標選択メニュー90をユーザが操作していずれかの変更候補座標を選択しただけでは、対応する座標を変更して保存したことにはならない。
 ・再生ボタン83をユーザが操作することで、タスク表示部81に表示されているタスクにおいて、座標表示部82に表示されている時刻からの動画を再生することができる。
 ・再生ボタン84をユーザが操作することで、タスク表示部81に表示されているタスクにおいて、座標表示部82に表示されている時刻から動画を逆再生することができる
 ・再生ボタン85をユーザが操作する度に、タスク表示部81に表示されているタスクの最初、またはそれよりも前の所望のタスクに順次戻すことができる。その後、再生ボタン83を操作することによって、その時点のタスクに対応する動画を最初から再生することができる。
 ・削除ボタン87をユーザが操作することで、指定時刻に対応するタスク、または、再生ボタン85の操作に応じて選択されたタスクを削除することができる。
 ・例えば、タスクをいずれかの変更候補タスクに仮に変更し、または、座標をいずれかの変更候補座標に仮に変更した後にユーザが評価ボタン91を操作することによって、変更後のロボットプログラム(以下、「仮ロボットプログラム」という。)を実行し、変更後のタイミングチャートを作成することができる。
 ・変更後のタイミングチャートをユーザが分析した結果、ユーザがタスクまたは座標を変更することを決定した場合、ユーザが保存ボタン92を操作することによって、現在設定されているタスクまたは座標を仮変更したものに変更して保存することができる。保存ボタン92は、ロボットの動作が変更された要素作業に対応する情報を保存するための操作対象の一例である。
 ユーザインタフェースUIを使用することによってユーザは、ロボットを利用した作業の改善を効率良く行うことができる。例えば、ある時点でのロボットプログラムを実行することによって得られるタイミングチャートを見てロボットの動作(例えばタクトタイム)を改善しようとする場合、タイミングチャート上で改善の余地がある時刻を指定した後、タスク選択メニュー89または座標選択メニュー90における選択操作で、指定時刻のタスク、または指定時刻におけるロボットの位置を仮に変更することができる。
 評価ボタン91が操作された場合、仮に変更したタスクまたは仮に変更したロボットの位置に基づく仮ロボットプログラムが実行され、変更後のタイミングチャート(第2タイミングチャートの一例)が表示される。それによってユーザは、変更したタスクまたは変更したロボットの位置によってロボットの動作が改善されたかどうか確認することができる。このとき、仮ロボットプログラムの実行によって生成されたロボット状態データに基づき、ロボットの動作をCADにおいて動画再生してもよい。
 変更によってロボットの動作が改善された場合、保存ボタン92を操作することによって、仮に変更したタスクまたは仮に変更したロボットの位置が、現在設定されているタスクまたはロボットの位置が実際に(仮ではなく)変更された状態で保存される。
 よって、ユーザインタフェースUIを使用することによって、ユーザが、ロボットの動作情報の出力(つまり、タイミングチャートの出力)、当該出力を基にした改善点のタイミングチャート上での特定、そしてタスク等の変更による改善の検証、といった一連の作業を行うことを効率化できる。
 変更によってロボットの動作が改善されない場合であっても、仮に変更したタスクや座標を実行履歴データとして保存してもよい。その場合、当該実行履歴データは、タスク選択メニュー89および座標選択メニュー90の選択肢に含められるようにしてもよい。それによって、過去に試したことがあるタスクやロボット位置を、簡単に呼び出してロボットを再度動作させてみることができる。
 (4)ロボットシミュレータ1の機能
 次に、本実施形態のロボットシミュレータ1の機能について、図11を参照して説明する。図11は、実施形態に係るロボットシミュレータ1の機能ブロック図である。
 図11に示すように、ロボットシミュレータ1は、表示制御部101、タスク作成部102、プログラム作成部103、プログラム実行部104、状態情報算出部105、タイミングチャート作成部106、シミュレーション部107、および、インターロック設定部108を備える。
 ロボットシミュレータ1はさらに、タスクデータベース221、階層型リストデータベース222、3次元モデルデータベース223、および、実行ログデータベース224を備える。
 表示制御部101は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示装置24に表示させる制御を行う。表示制御部101の機能を実現するために、情報処理装置2の制御部21は、教示ソフトウェアおよびCADソフトウェアの出力を含む画像データを生成し、バッファリングし、表示装置24へ送信する。表示装置24は、表示駆動回路を駆動して画像を表示パネルに表示する。
 タスク作成部102は、ユーザの操作入力に基づいて、物品に対するロボットの要素作業に関する情報であるタスクを作成する機能を備える。
 タスク作成部102の機能を実現するために、情報処理装置2の制御部21は、入力装置23からユーザの操作入力を受け付けると、当該操作入力に基づき、図7の要素作業の種別(Function)および要素作業の目標物(Target)の情報を含むファイルとしてタスクを作成し、ストレージ22に記録する。制御部21は、要素作業の種別(Function)および要素作業の目標物(Target)に基づいて、所定の規則に従ってタスク名称を決定する。ストレージ22は、タスク作成部102によって作成されたタスクを含むタスクデータベース221を記憶する。
 情報処理装置2の制御部21は、ロボットが行うジョブに含まれる複数の要素作業に対応するタスクを順に作成し、それによって、当該ジョブに関連付けられた複数のタスクがタスクリストとして作成される。タスクデータベース221では、各タスクが特定のジョブに関連付けられた状態で記録されている。
 表示制御部101は、ストレージ22のタスクデータベース221を参照して、複数のタスクの一覧であるタスクリストを表示装置24に表示する。タスクリストが表示されることで、ロボットのティーチングを行うときに、ロボットが行うジョブを分かり易く管理することができる。本実施形態では、表示されるタスクリストの各タスクの名称が、ロボットの要素作業の作業内容が認識できるように構成されているため、一連の作業内容がユーザに直感的に理解しやすいものとなっている。
 表示制御部101は、後述するタイミングチャート作成部106によって作成されるタイミングチャートを表示装置24に表示する機能を備える。
 ここで、表示制御部101は、後述する状態情報算出部105により得られたロボット状態データに基づいて、時間軸においてタスクの要素作業に相当する期間が識別可能となるように、ロボットの状態を示すタイミングチャートを表示装置24に表示する。
 プログラム作成部103は、タスク作成部102によって作成されたタスクに基づいて、当該タスクに対応する要素作業をロボット5に実行させるためのプログラムを作成する機能を備える。
 プログラム作成部103の機能を実現するために、情報処理装置2の制御部21は、タスクに含まれる要素作業の種別、要素作業の目標物、アプローチ点、デパーチャ点、モーションパラメータ、およびインターロックの設定を基に、タスクに対応する要素作業をロボットに実行させるためのプログラムが記述された関数を作成する。例えば、プログラム作成部103は、タスクに含まれる情報を参照し、ストレージ22に保存された要素作業の種別に応じた所定のプログラムのフォーマットにおける座標位置等を書き換えることで、自動的にプログラムを作成する。
 プログラム実行部104は、順に行われる複数の要素作業に対するロボットの動作を記述したロボットプログラムを実行する機能を備える。
 プログラム実行部104の機能を実現するために、情報処理装置2の制御部21は、通信インタフェース部25を介して少なくとも1つのタスクに基づいて作成したロボットプログラムを、ロボット制御装置3へ送信する。
 前述したように、1つのジョブには、タスクによって記述される複数の要素作業と要素作業間の移動とが含まれる。1つのタスクには、複数のモーションと必要に応じてハンドシーケンスとが含まれ、タスクに対応する要素作業を実行するためのプログラムは、複数の関数によって定義される。ロボットの要素作業間の移動は、予め決められたデフォルトのモーションパラメータを含むプログラムによって記述された関数で定義される。
 本実施形態では、図10に示したユーザインタフェースUIの操作に応じて、タスクまたはロボットの座標を仮変更した仮ロボットプログラムが作成される。その場合も、仮ロボットプログラムがロボット制御装置3に送信される。
 ロボット制御装置3の制御部31は、ロボットプログラムまたは仮ロボットプログラムを受信すると、各モーションおよびハンドシーケンスに対応する複数の関数を順に実行することで、1つのジョブに対するロボットプログラムまたは仮ロボットプログラムを実行する。
 状態情報算出部105は、プログラム実行部104による実行結果に基づいて、時間の経過に応じたロボットの状態を示す情報であるロボット状態データ(状態情報の例)を演算する機能を備える。
 タイミングチャート作成部106は、状態情報算出部105により得られたロボット状態データに基づいて、時間軸において複数の要素作業の各々に相当する期間が識別可能となるように、ロボットRの状態を示すタイミングチャートを作成する機能を備える。
 タイミングチャート作成部106によって作成されるタイミングチャートは、ロボットプログラムの実行に基づくタイミングチャート(第1タイミングチャートの例)と、仮ロボットプログラムに基づくタイミングチャート(第2タイミングチャートの例)とである。
 状態情報算出部105およびタイミングチャート作成部106の機能は、以下のようにして実現される。ロボット制御装置3の制御部31は、上述したように、各タスクに基づいて作成されたプログラムを順に実行するようにして、情報処理装置2から受信したロボットプログラムまたは仮ロボットプログラムを実行する。そして、制御部31は、ロボットプログラムまたは仮ロボットプログラムの実行結果として、ジョブ全体におけるロボット状態データを演算して順次、ストレージ32に記録する。
 ロボット状態データは、マニピュレータのモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量(例えば、アームの関節角、アームの速度や加速度、ハンドの位置等)のデータである。
 ジョブ全体のロボットプログラムまたは仮ロボットプログラムの実行が終了すると、制御部31は、ストレージ32から、ジョブの進行の時間軸に沿った所定の参照時間(例えば1ms)ごとのロボット状態データを読み出す。制御部31は、読み出したロボット状態データと、ロボットプログラムの実行結果とを含む実行ログデータを、通信インタフェース部33を介して情報処理装置2へ送信する。
 情報処理装置2の制御部21は、ロボット制御装置3からロボット状態データを含む実行ログデータを取得すると、実行ログデータを実行ログデータベース224に記録する。
 制御部21は、取得した参照時間ごとのロボット状態データに基づいてタイミングチャートを作成する。作成されるタイミングチャートは、ロボットの一連の作業について特定の要素作業に相当する期間を識別可能となるように構成される。
 ストレージ22は、仮想空間におけるロボットの3次元モデルと、物品の3次元モデルの情報と、を含む3次元モデルデータベース223を記憶する。
 シミュレーション部107は、状態情報算出部105によって得られたロボット状態データに基づいて、3次元モデルを仮想空間内で動作させて表示装置24に表示する機能を備える。
 シミュレーション部107の機能を実現するため、情報処理装置2の制御部21は、実行ログデータベース224に記録した実行ログデータを読み出し、当該実行ログデータに含まれるロボット状態データを基に仮想空間上でロボットおよび物品の3次元モデルを動作させて表示装置24に表示する。これによって、ユーザは、各タスクのロボットの動作を視覚的に確認することができるため、各タスクの設定値(例えば、アプローチ点、デパーチャ点、モーションパラメータ等)や物品の配置(例えば、図3のキャップトレイ12の配置等)を再検討することが容易となる。
 シミュレーション部107は、状態情報算出部105によって得られた状態情報に基づいて、ロボットRの3次元モデルを仮想空間内で動作させて表示装置24に表示する機能を備える。
 シミュレーション部107は、タイミングチャート作成部106によって作成されて表示されるタイミングチャートにおいてユーザによって指定された時刻である指定時刻における3次元モデルを表示する機能を備える。
 実行ログデータベース224に記録した実行ログデータに含まれるロボット状態データに基づき、所定の参照時間ごとのロボットの状態を示す物理量のデータがわかる。そのため、情報処理装置2の制御部21は、ロボット状態データを参照することで、ロボットRの3次元モデルを仮想空間内で動作させるとともに、指定時刻におけるロボットの3次元モデルの画像を表示させることができる。
 インターロック設定部108は、ユーザの操作入力に基づき、タスクに設定された目標点、アプローチ点およびデパーチャ点の少なくともいずれかの点においてロボットの動作を待機させる待機時間のタイムアウト値を設定する機能を備える。
 インターロック設定部108の機能を実現するために、情報処理装置2の制御部21は、入力装置23が受け付けたユーザの操作入力(例えば、図7の教示用ウィンドウW3における操作入力)に基づいてストレージ22にアクセスし、タスクデータベース221に含まれるタスクに含まれる特定のアプローチ点又はデパーチャ点に設定されたインターロックの待機時間のタイムアウト値を書き換える。
 インターロック設定部108により、ロボットのオフラインティーチングを行うときに、インターロックによる待機時間のタイムアウト値を要素作業ごとにユーザが容易に設定することができる。
 (5)ジョブのシミュレーションの実行処理
 次に、図12を参照して、ロボットシミュレータ1によるジョブのシミュレーションの実行処理についてシーケンスチャートを参照して説明する。図12は、本実施形態に係るロボットシミュレータのジョブの実行処理を示すシーケンスチャートの例である。
 図8の教示用ウィンドウW4においてユーザによるボタンb3に対する操作入力(シミュレーションの実行指示)を受け付けると(ステップS10:YES)、プログラム作成部103は、ジョブをロボットRに実行するためのロボットプログラムを作成する(ステップS12)。このロボットプログラムには、ジョブに対応するタスクリストの各タスクに対応する要素作業をロボットRに実行させるためのプログラムが記述された複数の関数が含まれる。
 作成されたロボットプログラムは、情報処理装置2からロボット制御装置3へ送信されて(ステップS14)、ロボット制御装置3において実行される。すなわち、プログラム実行部104は、タスク単位でロボットプログラムを実行する(ステップS16)。状態情報算出部105は、プログラム実行部104による実行結果に基づいて、時間の経過に応じたロボットRの状態を示す情報であるロボット状態データを演算し、ロボット状態データを含む実行ログデータをストレージ32に記録する(ステップS18)。ステップS16,S18の処理は、タスクリストに含まれるすべてのタスクが終了するまで行われる。
 すべてのタスクについての処理が終了すると(ステップS20:YES)、ロボット制御装置3は、実行ログデータを情報処理装置2に送信する(ステップS22)。実行ログデータには、ジョブの進行の時間軸に沿った所定の参照時間(例えば1ms)ごとのロボット状態データと、ロボットプログラムの実行結果とが含まれる。情報処理装置2は、受信した実行ログデータを実行ログデータベース224に記録する。
 次いで、表示制御部101は、ステップS22で受信した実行ログデータに含まれるロボット状態データ(つまり、状態情報算出部105によって得られたロボット状態データ)に基づいて所定のフォーマットとしたタイミングチャートを表示装置24に表示する(ステップS24)。シミュレーション部107は、ロボット状態データに基づいて3次元モデルを仮想空間内で動作させて表示装置24に表示する(ステップS26)。
 以上説明したように、本実施形態のロボットシミュレータ1は、ジョブに対応するロボットプログラムの実行結果に基づいてロボット状態データを演算し、当該ロボット状態データに基づいて、時間軸においてタスクの要素作業に相当する期間が識別可能となるようにタイミングチャートを表示する。そのため、ロボットの一連の作業についてのシミュレーションの結果を表示するときに、特定の要素作業に相当する期間を識別可能とすることができ、要素作業ごとの検討を支援することができる。ステップS24のタイミングチャートの表示例は、図9に示したとおりである。
 (6)ユーザインタフェースUI(図10参照)を用いたロボットの動作改善、検証の処理
 (6-1)ロボットRの動作を改善すべき点の確認処理
 次に、ロボットRの動作を改善すべき点の確認処理について、図13のフローチャートを参照して説明する。図13のフローチャートは、情報処理装置2の制御部21によって実行される処理を示している。
 図12のフローチャートを実行することで作成されたフローチャート(図9参照)をユーザが見てロボットの動作(例えばタクトタイム)の改善すべき点を見つけた場合、タイミングチャート上で改善の余地がある時刻をカーソルCU1で指定すると(ステップS30:YES)、情報処理装置2の制御部21は、指定時刻におけるタスクとロボット位置の座標とを含むユーザインタフェースUIを表示装置24に表示する(ステップS32)。指定時刻におけるタスクとロボット位置の座標は、例えば、図10のタスク表示部81および座標表示部82に表示される。
 次いで、ユーザインタフェースUIによる再生指示があった場合には(ステップS34)、制御部21は、再生対象に応じて、ロボット状態データに基づき、3DCADによる動画再生を行う。
 例えば、ユーザインタフェースUIの再生ボタン83を操作することによる再生指示があった場合には(ステップS36:「現在の要素作業」)、タスク表示部81に表示されているタスクにおいて、座標表示部82に表示されている時刻からのCADによる動画を再生する(ステップS38)。
 ユーザインタフェースUIの再生ボタン85を操作する度に、タスク表示部81に表示されているタスクの最初、またはそれよりも前の所望のタスクに順次戻すことができる。その後に再生ボタン83を操作することによって再生指示があった場合には(ステップS36:「指定された前の要素作業」)、その時点のタスクに対応する動画を最初から再生する。つまり、指定された要素作業のCADによる動画を再生する(ステップS40)。
 図13のフローチャートの処理を実行することでユーザは、タイミングチャートにおいて改善の余地のある部分を予測し、実際にその部分を動画再生することでロボットRの動作を改善すべき点を確認することができる。
 (6-2)ロボットRの動作の変更と検証処理
 次に、ロボットRの動作の変更と検証処理について、図14および図15を参照して説明する。図14は、ロボットRの動作の変更と検証処理を示すシーケンスチャートである。図15は、変更前後のタイミングチャートの表示例を示す図である。
 図12のフローチャートを実行することで作成されたフローチャート(図9参照)をユーザが見てロボットの動作(例えばタクトタイム)の改善しようとする場合、タイミングチャート上で改善の余地がある時刻をカーソルCU1で指定すると(ステップS50:YES)、情報処理装置2は、指定時刻におけるタスクとロボット位置の座標とを含むユーザインタフェースUIを表示する(ステップS52)。指定時刻におけるタスクとロボット位置の座標は、例えば、図10のタスク表示部81および座標表示部82に表示される。
 次いで、指定時刻におけるタスクまたはロボット位置の仮変更の指示があった場合(ステップS54:YES)、情報処理装置2は仮ロボットプログラムを作成する(ステップS56)。タスクまたはロボット位置の仮変更の指示は、ユーザインタフェースUI(図10)において、タスク選択メニュー89または座標選択メニュー90における選択操作を行った後に、評価ボタン91を操作することにより行われる。
 ステップS56において、情報処理装置2は、現在のロボットプログラムに対して仮変更されたタスクまたはロボット位置を反映させたロボットプログラムを作成する。
 作成された仮ロボットプログラムは、情報処理装置2からロボット制御装置3へ送信されて(ステップS58)、ロボット制御装置3において実行される(ステップS60)。仮ロボットプログラムの実行が終了すると、ロボット制御装置3は、実行ログデータを情報処理装置2に送信する(ステップS62)。実行ログデータには、ジョブの進行の時間軸に沿った所定の参照時間(例えば1ms)ごとのロボット状態データと、仮ロボットプログラムの実行結果とが含まれる。
 次いで、情報処理装置2は、ロボットプログラムの実行に基づくタイミングチャート(第1タイミングチャートの例)と仮ロボットプログラムの実行に基づくタイミングチャート(第2タイミングチャートの例)とを時間軸を比較可能に表示する(ステップS64)。
 ステップS64におけるタイミングチャートの表示例を図15に示す。図15では、ロボットプログラムの実行に基づくタイミングチャート(図9と同じもの)が上半分に表示され、仮ロボットプログラムの実行に基づくタイミングチャートが下半分に表示される。この例では、上半分のタイミングチャートにおける2個目の待機時間WTが下半分のタイミングチャートでは削除され、対応するタスクに対するタクトタイムが改善されていることがわかる。
 よって、ユーザインタフェースUIを使用することによって、ユーザは、ロボットの動作情報の出力(つまり、タイミングチャートの出力)、当該出力を基にした改善点のタイミングチャート上での特定、そしてタスク等の変更による改善の検証、といった一連の作業を効率化できる。
 以上、本発明のロボットシミュレータの実施形態について詳述したが、本発明は上記の実施形態に限定されない。また、上記の実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更が可能である。
 上述した実施形態に係るロボットシミュレータは、図11の機能ブロック図に記載されたすべての機能を備えている必要はなく、少なくとも一部の機能を備えていればよい。
 上述した実施形態では、ロボットシミュレータは、情報処理装置とロボット制御装置の2つの装置を含む場合について例示したが、その限りではなく、一体の装置として構成してもよい。
 上述した実施形態では、情報処理装置の入力装置にポインティングデバイスが含まれる場合について説明したが、その限りではなく、他のデバイスであってもよい。例えば、タッチ入力機能を備えた表示パネルを使用し、ユーザによるタッチ入力を受け付けてもよい。
 上述した実施形態では、ジョブに含まれるタスクリストを、階層型リストを基に作成する例を説明したが、その限りではない。ジョブに含まれる複数の要素作業が特定される限り、階層型リストを基にジョブに含まれるタスクを定義する必要はない。
 上述した説明により、図11の機能ブロック図に記載された機能のうち少なくとも一部の機能をコンピュータに実現させるためのプログラム、および、当該プログラムが記録されたコンピュータ可読記憶媒体(不揮発性の記憶媒体をも含む。)が開示されていることは当業者に理解される。
 1…ロボットシミュレータ、2…情報処理装置、21…制御部、22…ストレージ、23…入力装置、24…表示装置、25…通信インタフェース部、3…ロボット制御装置、31…制御部、32…ストレージ、33…通信インタフェース部、11…ペントレイ、P…ペン群、12…キャップトレイ、C…キャップ群、13…治具、14…製品トレイ、EC…イーサネットケーブル、R…ロボットR、51…アーム、52…ハンド、61~68…ノード、UI…ユーザインタフェースUI、81…タスク表示部、82…座標表示部、83~85…再生ボタン、87…削除ボタン、88…スイッチ、89…タスク選択メニュー、90…座標選択メニュー、91…評価ボタン、   92…保存ボタン、101…表示制御部、102…タスク作成部、103…プログラム作成部、104…プログラム実行部、105…状態情報算出部、106…タイミングチャート作成部、107…シミュレーション部、108…インターロック設定部、221…タスクデータベース、222…階層型リストデータベース、223…3次元モデルデータベース、224…実行ログデータベース、RA…ロボット領域、PA…物品領域、W1~W4…ウィンドウ、b1~b3…ボタン、AP…アプローチ点、TP…目標点、DP…デパーチャ点、T…テーブル

Claims (6)

  1.  順に行われる複数の要素作業に対するロボットの動作を記述したロボットプログラムを実行するプログラム実行部と、
     前記プログラム実行部による実行結果に基づいて、時間の経過に応じた前記ロボットの状態を示す情報である状態情報を演算する状態情報算出部と、
     前記状態情報算出により得られた前記状態情報に基づいて、時間軸において前記複数の要素作業の各々に相当する期間が識別可能となるように、前記ロボットの状態を示す第1タイミングチャートを作成するタイミングチャート作成部と、
     前記状態情報算出部によって得られた状態情報に基づいて、ロボットの3次元モデルを仮想空間内で動作させて表示装置に表示するシミュレーション部と、
     前記第1タイミングチャートを前記表示装置に表示する表示制御部と、
     を備え、
     前記シミュレーション部は、前記第1タイミングチャートにおいてユーザによって指定された時刻である指定時刻における前記3次元モデルを表示する、
     ロボットシミュレータ。
  2.  表示制御部は、前記時刻における前記ロボットの基準点の座標を表示する、
     請求項1に記載されたロボットシミュレータ。
  3.  前記複数の要素作業のうち、前記指定時刻に対応する要素作業である第1要素作業の再生、または、前記第1要素作業より前の要素作業の再生を指示する指示対象を有するユーザインタフェースを備え、
     前記シミュレーション部は、前記指示対象に応じて、前記第1要素作業、前記第2要素作業、または、前記第3要素作業のいずれかに対する前記3次元モデルの動作を表示する、
     請求項1または2に記載されたロボットシミュレータ。
  4.  前記複数の要素作業のうち前記指定時刻に対応する要素作業である第1要素作業内における前記ロボットの動作を変更する第1指示、または、前記第1要素作業を削除する第2指示を受け付ける操作対象を有するユーザインタフェースを備え、
     前記プログラム実行部は、前記ユーザインタフェースによって受け付けられた前記第1指示または前記第2指示に基づいて作成された仮のロボットプログラムを実行し、
     前記タイミングチャート作成部は、前記仮のロボットプログラムの実行結果に基づいた前記ロボットの状態を示す第2タイミングチャートを作成する、
     請求項1から3のいずれか1項に記載されたロボットシミュレータ。
  5.  前記表示制御部は、前記第1タイミングチャートと前記第2タイミングチャートとを時間軸を比較可能に表示する、
     請求項4に記載されたロボットシミュレータ。
  6.  前記ユーザインタフェースは、前記複数の要素作業のうち前記ロボットの動作が変更された要素作業に対応する情報を保存するための操作対象を有する、
     請求項4または5に記載されたロボットシミュレータ。
PCT/JP2019/030923 2018-09-21 2019-08-06 ロボットシミュレータ Ceased WO2020059342A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018176775 2018-09-21
JP2018-176775 2018-09-21

Publications (1)

Publication Number Publication Date
WO2020059342A1 true WO2020059342A1 (ja) 2020-03-26

Family

ID=69886946

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/030923 Ceased WO2020059342A1 (ja) 2018-09-21 2019-08-06 ロボットシミュレータ

Country Status (1)

Country Link
WO (1) WO2020059342A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076631A (zh) * 2021-03-22 2021-07-06 广东博智林机器人有限公司 一种机器人模拟器生成方法、机器人模型仿真方法及装置
JP2023006301A (ja) * 2021-06-30 2023-01-18 オムロン株式会社 シミュレーションシステム、シミュレーションシステムの方法、およびシミュレーションのプログラム
WO2025037478A1 (ja) * 2023-08-14 2025-02-20 株式会社日立ハイテク 教示データ編集装置、ロボット教示システムおよび教示データ編集方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002103258A (ja) * 2000-09-28 2002-04-09 Sony Corp オーサリング・システム及びオーサリング方法、並びに記憶媒体
JP2014213413A (ja) * 2013-04-25 2014-11-17 東芝テック株式会社 ロボットモーション編集装置及び編集プログラム
US20160136815A1 (en) * 2014-05-21 2016-05-19 Bot & Dolly, Llc Closed-Loop Control System for Robotic Operation
JP2018015857A (ja) * 2016-07-29 2018-02-01 セイコーエプソン株式会社 制御装置、及びロボット
WO2019064916A1 (ja) * 2017-09-26 2019-04-04 日本電産株式会社 ロボットシミュレータ

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002103258A (ja) * 2000-09-28 2002-04-09 Sony Corp オーサリング・システム及びオーサリング方法、並びに記憶媒体
JP2014213413A (ja) * 2013-04-25 2014-11-17 東芝テック株式会社 ロボットモーション編集装置及び編集プログラム
US20160136815A1 (en) * 2014-05-21 2016-05-19 Bot & Dolly, Llc Closed-Loop Control System for Robotic Operation
JP2018015857A (ja) * 2016-07-29 2018-02-01 セイコーエプソン株式会社 制御装置、及びロボット
WO2019064916A1 (ja) * 2017-09-26 2019-04-04 日本電産株式会社 ロボットシミュレータ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076631A (zh) * 2021-03-22 2021-07-06 广东博智林机器人有限公司 一种机器人模拟器生成方法、机器人模型仿真方法及装置
JP2023006301A (ja) * 2021-06-30 2023-01-18 オムロン株式会社 シミュレーションシステム、シミュレーションシステムの方法、およびシミュレーションのプログラム
JP7721987B2 (ja) 2021-06-30 2025-08-13 オムロン株式会社 シミュレーションシステム、シミュレーションシステムの方法、およびシミュレーションのプログラム
WO2025037478A1 (ja) * 2023-08-14 2025-02-20 株式会社日立ハイテク 教示データ編集装置、ロボット教示システムおよび教示データ編集方法

Similar Documents

Publication Publication Date Title
JP2019171498A (ja) ロボットプログラム実行装置、ロボットプログラム実行方法、プログラム
EP1310844B1 (en) Simulation device
WO2019064916A1 (ja) ロボットシミュレータ
JP2019171501A (ja) ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム
JP7151713B2 (ja) ロボットシミュレータ
KR20160002329A (ko) 로봇 시뮬레이터 및 로봇 시뮬레이터의 파일 생성 방법
JP7259860B2 (ja) ロボットの経路決定装置、ロボットの経路決定方法、プログラム
JP7370755B2 (ja) 情報処理装置、情報処理方法、プログラム、記録媒体、および物品の製造方法
WO2020059342A1 (ja) ロボットシミュレータ
US20220281103A1 (en) Information processing apparatus, robot system, method of manufacturing products, information processing method, and recording medium
CN110000753A (zh) 用户交互方法、控制设备及存储介质
US6798416B2 (en) Generating animation data using multiple interpolation procedures
JPWO2019064919A1 (ja) ロボット教示装置
JP7167925B2 (ja) ロボット教示装置
CN118893635B (zh) 一种机械臂的控制方法以及机械臂系统
CN110000775A (zh) 设备管理方法、控制设备及存储介质
CN113733107B (zh) 机器人拖动示教的方法、机器人及计算机存储介质
JP7024795B2 (ja) ロボット教示装置
JP7099470B2 (ja) ロボット教示装置
JP2019171499A (ja) ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム
JP2019171500A (ja) ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム
WO2020066947A1 (ja) ロボットの経路決定装置、ロボットの経路決定方法、プログラム
JP7533235B2 (ja) コンピュータープログラム、ロボットの制御プログラムを作成する方法、及び、ロボットの制御プログラムを作成する処理を実行するシステム
US20230173670A1 (en) Information processing apparatus, system, information processing method, method of manufacturing products, and recording medium
JP2020175474A (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: 19862836

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: 19862836

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP