Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7467932B2 - Simulation device and simulation program - Google Patents
[go: Go Back, main page]

JP7467932B2 - Simulation device and simulation program - Google Patents

Simulation device and simulation program Download PDF

Info

Publication number
JP7467932B2
JP7467932B2 JP2020008221A JP2020008221A JP7467932B2 JP 7467932 B2 JP7467932 B2 JP 7467932B2 JP 2020008221 A JP2020008221 A JP 2020008221A JP 2020008221 A JP2020008221 A JP 2020008221A JP 7467932 B2 JP7467932 B2 JP 7467932B2
Authority
JP
Japan
Prior art keywords
cable
behavior
simulation
robot
calculated
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.)
Active
Application number
JP2020008221A
Other languages
Japanese (ja)
Other versions
JP2021117519A (en
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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2020008221A priority Critical patent/JP7467932B2/en
Priority to PCT/JP2020/047252 priority patent/WO2021149419A1/en
Publication of JP2021117519A publication Critical patent/JP2021117519A/en
Application granted granted Critical
Publication of JP7467932B2 publication Critical patent/JP7467932B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Description

本開示は、3次元仮想空間に配置された対象の挙動を推定できるシミュレーション装置およびシミュレーションプログラムに関する。 This disclosure relates to a simulation device and a simulation program that can estimate the behavior of an object placed in a three-dimensional virtual space.

コンピュータを用いたシミュレーションは様々な技術分野に応用されている。このようなシミュレーションをFA(Factory Automation)に利用した例として、例えば、特開2016-042378号公報(特許文献1)は、機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを開示する。 Simulations using computers are applied in a variety of technical fields. As an example of the use of such simulations in FA (Factory Automation), for example, JP 2016-042378 A (Patent Document 1) discloses a simulation of a control program executed in a controller that controls the movement of a machine.

特開2016-042378号公報JP 2016-042378 A

FAの分野では、機械の一例である産業用ロボットに取付けられるケーブルの引き回しを事前に設計したいとの要望があった。具体的には、従来、産業用ロボットのケーブルを引き回す場合、ユーザは、ケーブルを実際に操作しながら、適切な取付け位置またはケーブル長を決定する作業をしていたが、この作業は試行錯誤を繰り返すことから長時間を要していた。したがって、ケーブル引き回し(取付け位置またはケーブル長など)を事前に設計したいとの要望があった。 In the field of FA, there has been a demand for designing in advance the routing of cables to be attached to industrial robots, which are an example of machinery. Specifically, in the past, when routing cables for industrial robots, the user would actually manipulate the cable to determine the appropriate installation position or cable length, but this work required repeated trial and error and took a long time. Therefore, there has been a demand for designing cable routing (installation position or cable length, etc.) in advance.

本開示の目的は、機器に取付けられるケーブルの引き回しを事前に設計することを可能にするシミュレーション装置およびシミュレーションプログラムを提供することである。 The objective of this disclosure is to provide a simulation device and a simulation program that enable the prior design of cable routing to be attached to equipment.

本開示にかかるシミュレーション装置は、機器に取付けられるケーブルの挙動を算出するシミュレーション装置であって、機器に対応する仮想空間に配置された第1の対象の挙動に基づき、ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する仮想空間に配置された第2の対象の挙動を算出するケーブル挙動算出部と、ケーブル挙動算出部により算出された第2の対象の挙動を、当該挙動に基づき評価する評価部とを備える。 The simulation device according to the present disclosure is a simulation device that calculates the behavior of a cable attached to a device, and includes a cable behavior calculation unit that calculates the behavior of a second object placed in a virtual space corresponding to the device using parameters related to the cable attachment based on the behavior of a first object placed in a virtual space corresponding to the device, and an evaluation unit that evaluates the behavior of the second object calculated by the cable behavior calculation unit based on the behavior.

上述の開示によれば、機器の挙動に基づき、ケーブルの取付けに関するパラメータを用いてケーブルの挙動を算出できて、算出された挙動を評価することで、評価された当該取付けに関するパラメータから、ケーブルの引き回しを設計できる。 According to the above disclosure, the behavior of the cable can be calculated based on the behavior of the equipment using parameters related to the cable installation, and by evaluating the calculated behavior, the cable routing can be designed from the evaluated parameters related to the installation.

また、シミュレーションでは、ケーブルが取付けられるべき実機なしに、当該シミュレーションを実施して、ケーブル引回しを設計することができる。 In addition, the simulation can be performed to design cable routing without the need for an actual device to which the cable will be attached.

上述の開示において、第1の対象の挙動は、所定のタイムステップ毎に算出された挙動を含み、ケーブル挙動算出部は、タイムステップ毎に、当該タイムステップに対応の第1の対象の挙動に基づき、パラメータを用いて、第2の対象の挙動を算出する。 In the above disclosure, the behavior of the first object includes behavior calculated for each predetermined time step, and the cable behavior calculation unit calculates the behavior of the second object for each time step using parameters based on the behavior of the first object corresponding to that time step.

上述の開示によれば、タイムステップ毎に算出される機器の挙動に基づき、タイムステップ毎にケーブルの挙動を算出することができる。 According to the above disclosure, it is possible to calculate the behavior of the cable for each time step based on the behavior of the equipment calculated for each time step.

上述の開示において、ケーブル挙動算出部は、物理シミュレータを含む。
上述の開示によれば、ケーブルの挙動を、物理シミュレータで算出することができる。
In the above disclosure, the cable behavior calculation unit includes a physical simulator.
According to the above disclosure, the behavior of the cable can be calculated using a physical simulator.

上述の開示において、第2の対象は、隣接する剛体間をジョイントで接合して連ねられてモデル化された剛体リンクを含み、物理シミュレータは、モデル化された剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、第1の対象の挙動に基づいて実施することにより、第2の対象の挙動を算出する。 In the above disclosure, the second object includes a modeled rigid body link in which adjacent rigid bodies are connected by joints, and the physical simulator calculates the behavior of the second object by performing calculations based on the behavior of the first object according to equations that represent the relationship between the positions and orientations of adjacent rigid bodies in the modeled rigid body link and the constraints imposed on the relationship between the positions and orientations of the rigid bodies, which are conditions corresponding to the joints.

上述の開示によれば、ケーブルを拘束条件が課された剛体リンクにモデル化し、当該モデルを示す方程式により挙動を算出することができる。 According to the above disclosure, the cable can be modeled as a rigid link with constraints imposed, and its behavior can be calculated using equations that represent the model.

上述の開示において、シミュレーション装置は、ケーブル挙動算出部により算出された第2の対象の挙動に基づき、当該第2の対象にかかる負荷を算出する負荷算出部を、さらに備える。 In the above disclosure, the simulation device further includes a load calculation unit that calculates the load on the second object based on the behavior of the second object calculated by the cable behavior calculation unit.

上述の開示によれば、算出された挙動に基づき、第2の対象にかかる負荷を算出することができる。 According to the above disclosure, the load on the second object can be calculated based on the calculated behavior.

上述の開示において、負荷は、第2の対象が備える各剛体にかかる負荷を含む。
上述の開示によれば、各剛体にかかる負荷を算出することができる。
In the above disclosure, the load includes the load applied to each rigid body included in the second object.
According to the above disclosure, the load acting on each rigid body can be calculated.

上述の開示において、シミュレーション装置は、タイムステップの時系列に従い、各タイムステップで算出された第2の対象の挙動に基づく負荷を表示する。 In the above disclosure, the simulation device displays a load based on the behavior of the second object calculated at each time step according to a time series of time steps.

上述の開示によれば、タイムステップの時系列に従い、第2の対象にかかる負荷の変動を表示することができる。 According to the above disclosure, it is possible to display the fluctuations in the load on the second object according to a time series of time steps.

上述の開示において、シミュレーション装置は、閾値を超える負荷の表示態様を変更する。 In the above disclosure, the simulation device changes the display mode of a load that exceeds a threshold.

上述の開示によれば、閾値を超える負荷は、その表示態様を変更して提示することができる。 According to the above disclosure, a load that exceeds a threshold can be presented by changing the display mode.

上述の開示において、評価部は、負荷算出部により算出された負荷に基づき、第2の対象の挙動を評価する。 In the above disclosure, the evaluation unit evaluates the behavior of the second object based on the load calculated by the load calculation unit.

上述の開示によれば、第2の対象の挙動の評価を、負荷に基づき評価することができる。 According to the above disclosure, the behavior of the second object can be evaluated based on the load.

上述の開示において、シミュレーション装置は、パラメータを設定するパラメータ設定部を備え、負荷が所定条件を満たすとき、第2の対象の挙動の算出時に設定されたパラメータを出力する。 In the above disclosure, the simulation device includes a parameter setting unit that sets parameters, and when the load satisfies a predetermined condition, outputs the parameters that were set when calculating the behavior of the second target.

上述の開示によれば、シミュレーション実施時にはパラメータを設定(変更)することができて、負荷が所定条件を満たす時は、その挙動算出に用いたパラメータを出力することができる。 According to the above disclosure, parameters can be set (changed) when a simulation is performed, and when the load satisfies a specified condition, the parameters used to calculate the behavior can be output.

上述の開示において、パラメータは、ケーブルの長さまたはケーブルの取付け位置を含む。 In the above disclosure, the parameters include the length of the cable or the location of the cable attachment.

上述の開示によれば、パラメータに、ケーブル長と取付け位置を含めることができる。
上述の開示において、パラメータは、ケーブルの硬さを表すパラメータを含む。
According to the above disclosure, the parameters can include cable length and mounting location.
In the above disclosure, the parameters include a parameter representative of the stiffness of the cable.

上述の開示によれば、パラメータに、機器に取付けられるべきケーブルの硬さを含めることができる。 In accordance with the above disclosure, the parameters can include the stiffness of the cable to be attached to the device.

上述の開示において、機器は、ロボットを含み、第1の対象の挙動は、前ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出される。 In the above disclosure, the device includes a robot, and the behavior of the first object is calculated by emulation of a robot program having command codes for operating the robot.

上述の開示によれば、ロボットに取付けられるケーブルについての挙動のシミュレーションを、ロボットプログラムのエミュレータで算出される第1の挙動に基づき実施することができる。 According to the above disclosure, a simulation of the behavior of a cable attached to a robot can be performed based on a first behavior calculated by an emulator of a robot program.

上述の開示において、仮想空間をビジュアル化した画像を生成する画像生成部を、さらに備える。 In the above disclosure, an image generation unit is further provided that generates an image that visualizes the virtual space.

上述の開示によれば、シミュレーションされたオブジェクト配置の仮想空間を視覚化してユーザに提供することができる。 According to the above disclosure, a virtual space with a simulated object arrangement can be visualized and provided to a user.

本開示にかかるシミュレーションプログラムは、コンピュータに、機器に取付けられるケーブルの挙動を算出する方法を実行させるシミュレーションプログラムである。この方法は、機器に対応する仮想空間に配置された第1の対象の挙動に基づき、ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する仮想空間に配置された第2の対象の挙動を算出するステップと、算出された第2の対象の挙動を、当該挙動に基づき評価するステップとを備える。 The simulation program according to the present disclosure is a simulation program that causes a computer to execute a method for calculating the behavior of a cable attached to a device. This method includes a step of calculating the behavior of a second object placed in a virtual space corresponding to the cable based on the behavior of a first object placed in a virtual space corresponding to the device, using parameters related to the cable attachment, and a step of evaluating the calculated behavior of the second object based on the behavior.

上述の開示によれば、シミュレーションプログラムが実行されることにより、機器の挙動に基づき、ケーブルの取付けに関するパラメータを用いてケーブルの挙動を算出できて、算出された挙動を評価することで、評価された当該取付けに関するパラメータから、ケーブルの引き回しを設計できる。また、ケーブルが取付けられるべき実機なしに、当該シミュレーションを実施して、ケーブル引回しを設計することができる。 According to the above disclosure, by executing the simulation program, the behavior of the cable can be calculated based on the behavior of the device using parameters related to the cable installation, and by evaluating the calculated behavior, the cable layout can be designed from the evaluated parameters related to the installation. In addition, the simulation can be performed without the actual device to which the cable is to be installed, and the cable layout can be designed.

本開示によれば、機器に取付けられるケーブルの引き回しを事前に設計することができる。 This disclosure allows the routing of cables to be attached to equipment to be designed in advance.

本実施の形態にかかるケーブルシミュレーション装置1Bの適用場面の一例を模式的に示す図である。FIG. 1 is a diagram illustrating an example of an application scene of a cable simulation device 1B according to an embodiment of the present invention. 本実施の形態にかかるシミュレーション装置1によってシミュレーションされる機器を模式的に示す図である。1 is a diagram illustrating a schematic diagram of a device simulated by a simulation device 1 according to an embodiment of the present invention. 本実施の形態にかかる制御システム2のユニット構成の一例を示す模式図である。FIG. 2 is a schematic diagram showing an example of a unit configuration of a control system 2 according to the present embodiment. 本実施の形態にかかるシミュレーション装置1を実現するためのハードウェア構成の一例を示す模式図である。FIG. 1 is a schematic diagram showing an example of a hardware configuration for implementing a simulation device according to an embodiment of the present invention. 本実施の形態にかかるシミュレーション装置1を実現するための機能構成の一例を示す模式図である。FIG. 1 is a schematic diagram showing an example of a functional configuration for implementing a simulation device according to an embodiment of the present invention. 本実施の形態にかかるケーブルシミュレーション装置1Bの処理のシーケンスの一例を模式的に示す図である。FIG. 2 is a diagram illustrating an example of a processing sequence of the cable simulation device 1B according to the present embodiment. 本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の一例を模式的に示す図である。10 is a diagram illustrating an example of a UI screen for setting parameters of a cable according to the embodiment; FIG. 本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の他の例を模式的に示す図である。13 is a diagram illustrating another example of a UI screen for setting parameters of a cable according to the embodiment. FIG. 本実施の形態にかかるケーブルシミュレーションのデータの関連性をケーブルデータ146を用いて模式的に示す図である。FIG. 13 is a diagram illustrating a data association of the cable simulation according to the present embodiment, using cable data 146. 本実施の形態にかかるケーブルの物理シミュレーションモデルの一例を模式的に示す図である。FIG. 2 is a diagram illustrating an example of a physical simulation model of the cable according to the present embodiment. 図10のケーブルの物理シミュレーションモデルの連立方程式147の一例を示す図である。FIG. 11 is a diagram showing an example of simultaneous equations 147 for the physical simulation model of the cable of FIG. 本実施の形態にかかる物理シミュレーションの位置の更新を模式的に示す図である。11A and 11B are diagrams illustrating an example of updating a position in a physical simulation according to the present embodiment. 本実施の形態にかかるケーブルシミュレーションと、それに関連する処理を概略的に示すフローチャートである。1 is a flowchart illustrating a cable simulation according to the present embodiment and related processing. 本実施の形態にかかる負荷情報142の一例を模式的に示す図である。FIG. 2 is a diagram illustrating an example of load information 142 according to the present embodiment. 本実施の形態にかかる評価処理のフローチャートである。4 is a flowchart of an evaluation process according to the present embodiment. 本実施の形態にかかる負荷情報142の表示画面の一例を示す図である。FIG. 2 is a diagram showing an example of a display screen of load information 142 according to the embodiment.

以下に、図面を参照しつつ、各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。 Each embodiment will be described below with reference to the drawings. In the following description, the same parts and components are given the same symbols. Their names and functions are also the same. Therefore, detailed descriptions thereof will not be repeated.

<A.適用例>
本発明が適用される場面の一例について説明する。図1は、本実施の形態にかかるケーブルシミュレーション装置1Bの適用場面の一例を模式的に示す図である。図1を参照して、ケーブルシミュレーション装置1Bは、FAの生産ラインに備えられる機器の一例であるロボット30に取付けられ得るケーブルの挙動を算出(推定)する。なお、ケーブルが取付けられる機器は、ロボット30に限定されない。また、ロボット30は、限定されないが、例えば多関節で構成されるアーム301を備える。ロボット30は、先端のアーム301に、コネクタ7によって脱着自在に装着されるロボットハンド210を備える。アーム301には、それぞれ、ケーブル341、342および343が、アーム301の表面306(図10)のケーブルガイド350,351、352および353を用いて取付けられる。ケーブルガイド350は、ロボットハンド210に取付けられている。ケーブル341は、ケーブルガイド350と351の間に取付けられて、ケーブル342は、ケーブルガイド351と352の間に取付けられて、ケーブル343は、ケーブルガイド352と353の間に取付けられる。
<A. Application Examples>
An example of a scene in which the present invention is applied will be described. Fig. 1 is a diagram showing a schematic diagram of an example of a scene in which a cable simulation device 1B according to the present embodiment is applied. The device 1B calculates (estimates) the behavior of a cable that can be attached to a robot 30, which is an example of a device provided in an FA production line. Note that the device to which the cable is attached is not limited to the robot 30. The robot 30 includes, but is not limited to, an arm 301 that is configured with multiple joints. The robot 30 includes a robot hand 210 that is detachably attached to the arm 301 at the tip end by a connector 7. The arm 301 includes , cables 341, 342 and 343 are attached using cable guides 350, 351, 352 and 353 on surface 306 (FIG. 10) of arm 301. Cable guide 350 is attached to robot hand 210. Cable 341 is mounted between cable guides 350 and 351 , cable 342 is mounted between cable guides 351 and 352 , and cable 343 is mounted between cable guides 352 and 353 .

ケーブル341、342および343は、同様の特徴(形状、材料など)を有するので、これらに共通する説明においては、ケーブル340と総称する。ケーブル340は、例えば、信号線を構成する線状の導電体を絶縁体で被覆して構成される。絶縁体の材料としては、限定されないが、プラスチック、ゴム、ビニールなどの樹脂材料を用いることができる。また、導電体の材料としては、限定されないが、電気導電性を有する金属を用いることができる。また、ケーブルガイド350、351、352および353は、同様の特徴(形状、材料など)を有するので、これらに共通する説明においては、ケーブルガイド350と総称する。ケーブル340が、ケーブルガイド350を介してロボット30に取付けられることで、ロボットコントローラ310などの他の機器はケーブル340を介してロボット30との間で信号を遣り取りすることが可能となる。 Because the cables 341, 342, and 343 have similar characteristics (shape, material, etc.), they are collectively referred to as cable 340 in the common description. The cable 340 is formed, for example, by covering a linear conductor constituting a signal line with an insulator. The material of the insulator can be, but is not limited to, a resin material such as plastic, rubber, or vinyl. The material of the conductor can be, but is not limited to, a metal having electrical conductivity. Because the cable guides 350, 351, 352, and 353 have similar characteristics (shape, material, etc.), they are collectively referred to as cable guide 350 in the common description. By attaching the cable 340 to the robot 30 via the cable guide 350, other devices such as the robot controller 310 can exchange signals with the robot 30 via the cable 340.

一般にロボット用のケーブル340は高価であること、また上記に述べたように引き回し作業は長時間を要することに鑑みると、実機のロボット30に取付けられるケーブル340の適切な引き回しを事前に設計し、その設計結果に基づき、作業者がケーブル340の引き回しを実施すれば、ケーブル340の引き回しにかかるコスト(ケーブル340の費用および作業時間を含む)を低減できる。ケーブルシミュレーション装置1Bによってケーブルシミュレーションを実施することで、この事前設計が実現される。 Considering that cables 340 for robots are generally expensive and that the work of laying them takes a long time as described above, if the appropriate layout of the cable 340 to be attached to the actual robot 30 is designed in advance and an operator lays the cable 340 based on the design results, the cost of laying the cable 340 (including the cost of the cable 340 and the work time) can be reduced. This advance design is realized by performing a cable simulation using the cable simulation device 1B.

具体的には、ケーブルシミュレーション装置1Bは、ロボット30に取付けられるケーブル340に対応するオブジェクト(以下、第2の対象とも呼ぶ)の3次元仮想空間における挙動を算出(推定)するケーブルシミュレータ165と、算出された当該挙動を評価する評価モジュール167とを備える。この3次元仮想空間は、図1では、例えば直交するX軸,Y軸およびZ軸で規定される。ケーブルシミュレーション装置1Bは、例えば汎用コンピュータで構成される情報処理装置100に実装され得て、情報処理装置100が、所定のプログラムを実行することによりケーブルシミュレータ165および評価モジュール167が実現される。 Specifically, the cable simulation device 1B includes a cable simulator 165 that calculates (estimates) the behavior in a three-dimensional virtual space of an object (hereinafter also referred to as a second target) corresponding to the cable 340 attached to the robot 30, and an evaluation module 167 that evaluates the calculated behavior. In FIG. 1, this three-dimensional virtual space is defined, for example, by orthogonal X-, Y-, and Z-axes. The cable simulation device 1B can be implemented in an information processing device 100 that is configured, for example, by a general-purpose computer, and the cable simulator 165 and the evaluation module 167 are realized by the information processing device 100 executing a predetermined program.

ケーブルシミュレーションは、機器挙動データ2520に基づいて、第2の対象の挙動を算出する。機器挙動データ2520は、ロボット30に対応するオブジェクト(以下、第1の対象とも呼ぶ)であって、ケーブル340のオブジェクトが配置される3次元仮想空間と同一の空間に配置されるオブジェクトの挙動を示す。この第1の対象は、限定されないが、例えば、ロボット30および当該ロボット30に装着されたロボットハンド210に対応するオブジェクトを含む。 The cable simulation calculates the behavior of the second object based on the equipment behavior data 2520. The equipment behavior data 2520 indicates the behavior of an object (hereinafter also referred to as the first object) corresponding to the robot 30, which is placed in the same three-dimensional virtual space as the object of the cable 340. This first object is not limited to, but includes, for example, an object corresponding to the robot 30 and the robot hand 210 attached to the robot 30.

ここでは、機器挙動データ2520は、情報処理装置100により算出される、または外部の装置からケーブルシミュレーション装置1Bに提供される。機器挙動データ2520は、ケーブルシミュレーション装置1Bに提供される。機器挙動データ2520は、例えば、所定のタイムステップti毎に、第1の対象の3次元仮想空間における挙動を算出するシミュレーションが実行されることによって、算出される。機器挙動データ2520が示す第1の対象の挙動は、第1の対象の3次元仮想空間において時系列に変化する位置を含む。 Here, the equipment behavior data 2520 is calculated by the information processing device 100, or provided to the cable simulation device 1B from an external device. The equipment behavior data 2520 is provided to the cable simulation device 1B. The equipment behavior data 2520 is calculated, for example, by executing a simulation that calculates the behavior of the first object in the three-dimensional virtual space for each predetermined time step ti. The behavior of the first object indicated by the equipment behavior data 2520 includes the position of the first object that changes over time in the three-dimensional virtual space.

ケーブルシミュレータ165は、「ケーブル挙動算出部」の一実施例である。ケーブルシミュレータ165は、機器挙動データ2520が示す第1の対象の挙動、すなわち3次元仮想空間における時系列の位置に基づき、ケーブル340のロボット30への取付けに関するケーブルパラメータ139を用いて、上記の所定タイムステップに同期して、同一の3次元仮想空間に配置された第2の対象の挙動を算出する。ケーブルパラメータ139は、ケーブル340の引き回しの設計において考慮されるべき種類のパラメータであって、例えば、ケーブル340の長さ、ケーブル340の取付け位置(すなわち、ケーブルガイド350の位置)などを含むが、これらに限定されない。例えば、挙動に影響を及ぼすようなパラメータ、例えばケーブル340の材料に依存するパラメータ(例えば、ケーブル340の硬さを表すパラメータ)を含んでもよい。 The cable simulator 165 is an example of a "cable behavior calculation unit." The cable simulator 165 calculates the behavior of a second object placed in the same three-dimensional virtual space in synchronization with the above-mentioned predetermined time step using cable parameters 139 related to the attachment of the cable 340 to the robot 30 based on the behavior of the first object indicated by the equipment behavior data 2520, i.e., the time-series position in the three-dimensional virtual space. The cable parameters 139 are parameters of a type that should be considered in the design of the routing of the cable 340, and include, but are not limited to, the length of the cable 340 and the attachment position of the cable 340 (i.e., the position of the cable guide 350). For example, the cable parameters 139 may include parameters that affect the behavior, such as parameters that depend on the material of the cable 340 (e.g., parameters that represent the hardness of the cable 340).

ケーブルシミュレーションによって、3次元仮想空間におけるケーブル340に対応するオブジェクト(第2の対象)の、ロボット30に対応するオブジェクト(第1の対象)の挙動に同期した挙動が算出される。ケーブル340に対応するオブジェクト(第2の対象)の挙動は、3次元仮想空間におけるX,Y,Zの各軸における当該オブジェクトの位置と姿勢を含む。この姿勢は、例えばX軸、Y軸およびZ軸についての加速度成分であるロール角α、ピッチ角βおよびヨー角γの組合せで示される。 The cable simulation calculates the behavior of an object (second target) corresponding to cable 340 in a three-dimensional virtual space, which is synchronized with the behavior of an object (first target) corresponding to robot 30. The behavior of the object (second target) corresponding to cable 340 includes the position and orientation of the object on each of the X, Y, and Z axes in the three-dimensional virtual space. This orientation is represented by a combination of roll angle α, pitch angle β, and yaw angle γ, which are acceleration components for the X, Y, and Z axes, for example.

評価モジュール167は、「評価部」の一実施例である。評価モジュール167は、ケーブルシミュレータ165が算出した第2の対象の挙動に基づき、当該挙動を評価する。評価モジュール167は、例えば、第2の対象の挙動から算出される第2の対象にかかる負荷、より特定的には挙動に影響を及ぼすような負荷に基づき、当該挙動を評価する。このような負荷は、ケーブルシミュレーション装置1Bが備える負荷算出モジュール166によって算出される。 The evaluation module 167 is one example of an "evaluation unit." The evaluation module 167 evaluates the behavior of the second object based on the behavior of the second object calculated by the cable simulator 165. The evaluation module 167 evaluates the behavior based on, for example, a load on the second object calculated from the behavior of the second object, more specifically, a load that affects the behavior. Such a load is calculated by a load calculation module 166 provided in the cable simulation device 1B.

負荷算出モジュール166は、「負荷算出部」の一実施例である。負荷算出モジュール166は、タイムステップ毎に、第2の対象の挙動に基づき負荷を算出する。負荷の種類は、限定されないが、例えば第2の対象の伸び、曲げおよびひねり、および第2の対象の衝突回数、衝突した場合に第2の対象に加わる力等の少なくとも1つを含み得る。さらに、負荷の種類は、曲げ半径が最小曲げ半径(ケーブル340の仕様によって指定された値)を超えないか否かの値を含んでもよい。 The load calculation module 166 is one example of a "load calculation unit." The load calculation module 166 calculates the load for each time step based on the behavior of the second object. The type of load is not limited, but may include at least one of the following: elongation, bending, and twisting of the second object, the number of collisions of the second object, and the force applied to the second object when a collision occurs. Furthermore, the type of load may include a value indicating whether or not the bending radius exceeds the minimum bending radius (a value specified by the specifications of the cable 340).

評価モジュール167は、算出される負荷が所定条件を満たすと判定したとき、ケーブルシミュレーションにおいて設定されたパラメータが示すケーブル340の長さおよび取付け位置(すなわち、ケーブルガイド350の位置)は、最適な引き回しを実現できる設計値として評価する。ケーブルシミュレーション装置1Bは、評価の情報を出力し、または格納し、または通信する。 When the evaluation module 167 determines that the calculated load satisfies the predetermined conditions, it evaluates the length and attachment position of the cable 340 (i.e., the position of the cable guide 350) indicated by the parameters set in the cable simulation as design values that can realize optimal routing. The cable simulation device 1B outputs, stores, or communicates the evaluation information.

ケーブルシミュレーションでは、3次元仮想空間における、ロボット30に対応の第1の対象の挙動を示す機器挙動データ2520に基づき、取付けに関するパラメータを用いて、ケーブル340に対応する第2の対象の挙動が算出され、算出された第2の対象の挙動が評価される。評価によって、ケーブルシミュレーションに適用したパラメータが示すケーブル340の引き回しの設計値が適切であるか否かを示すことができる。したがって、実機(ロボット30、ケーブル340およびケーブルガイド350)がなくても、ケーブル340の引き回しにかかる最適な設計を実施することが可能となる。 In the cable simulation, the behavior of a second object corresponding to the cable 340 is calculated using attachment parameters based on equipment behavior data 2520 indicating the behavior of a first object corresponding to the robot 30 in a three-dimensional virtual space, and the calculated behavior of the second object is evaluated. The evaluation can indicate whether the design values for the routing of the cable 340 indicated by the parameters applied to the cable simulation are appropriate. Therefore, even if there is no actual device (robot 30, cable 340, and cable guide 350), it is possible to implement an optimal design for the routing of the cable 340.

以下、本実施の形態のより具体的な応用例について説明する。
<B.制御システムの例>
図2は、本実施の形態にかかるシミュレーション装置1によってシミュレーションされる機器を模式的に示す図である。シミュレーション装置1は、FAの生産ラインに備えられる制御システム2のPLC(プログラマブルロジックコントローラ)200が制御する実機である機器の挙動を推定するシステムシミュレーション装置1Aを備える。シミュレーション装置1は、たとえば、PC(Personal Computer)、タブレット端末などの端末装置を含む汎用コンピュータで構成される情報処理装置100に実装され得て、情報処理装置100が、所定のプログラムを実行することにより、機器の挙動を推定するシステムシミュレーションが実現される。情報処理装置100は、ユーザーが制御システム2を運用するのを支援するための支援ツールを提供する。支援ツールは、シミュレーションの実行環境、制御システム2のための制御プログラムの実行環境、および制御システム2の通信環境等を準備するための設定ツールを含む。支援ツールは、例えばUI(User Interface)によってユーザに提供される。
A more specific application example of this embodiment will now be described.
B. Example of a Control System
FIG. 2 is a diagram showing a schematic diagram of a device simulated by the simulation device 1 according to the present embodiment. The simulation device 1 includes a system simulation device 1A that estimates the behavior of a device, which is an actual device controlled by a PLC (Programmable Logic Controller) 200 of a control system 2 provided in an FA production line. The simulation device 1 can be implemented in an information processing device 100 that is configured with a general-purpose computer including a terminal device such as a PC (Personal Computer) or a tablet terminal, and the information processing device 100 executes a predetermined program to realize a system simulation that estimates the behavior of the device. The information processing device 100 provides a support tool for supporting a user in operating the control system 2. The support tool includes a setting tool for preparing an execution environment of the simulation, an execution environment of a control program for the control system 2, and a communication environment of the control system 2. The support tool is provided to the user by, for example, a UI (User Interface).

図2では、情報処理装置100は、PLC200に通信可能に接続されているが、PLC200と接続されない態様で、シミュレーションを実施することもできる。また、上記に述べたケーブルシミュレーション装置1Bは、シミュレーション装置1に備えられ得る。その場合は、シミュレーション装置1によってケーブルシミュレーションとシステムシミュレーションとを実施可能な環境が提供される。 In FIG. 2, the information processing device 100 is communicatively connected to the PLC 200, but it is also possible to perform a simulation without being connected to the PLC 200. The cable simulation device 1B described above may be provided in the simulation device 1. In that case, the simulation device 1 provides an environment in which cable simulation and system simulation can be performed.

図2を参照して、制御システム2は、PLC200、ロボットコントローラ310およびサーボモータドライバ531,532を含む。PLC200、ロボットコントローラ310およびサーボモータドライバ531,532は、フィールドネットワーク22を介してデイジーチェーンで接続されている。フィールドネットワーク22には、たとえば、EtherCAT(登録商標)が採用される。但し、フィールドネットワーク22は、EtherCATに限定されない。PLC200には、ネットワーク80を介して情報処理装置100が接続され得る。ネットワーク80には、有線または無線の任意の通信手段が採用され得る。PLC200および情報処理装置100は、例えばUSB(Universal Serial Bus)に従い通信する。 Referring to FIG. 2, the control system 2 includes a PLC 200, a robot controller 310, and servo motor drivers 531 and 532. The PLC 200, the robot controller 310, and the servo motor drivers 531 and 532 are connected in a daisy chain via a field network 22. For example, EtherCAT (registered trademark) is adopted for the field network 22. However, the field network 22 is not limited to EtherCAT. The information processing device 100 may be connected to the PLC 200 via a network 80. Any wired or wireless communication means may be adopted for the network 80. The PLC 200 and the information processing device 100 communicate with each other according to, for example, USB (Universal Serial Bus).

PLC200は、設計された制御プログラムをフィールドネットワーク22からのセンサの出力値などを含むフィールド値に基づき実行し、実行の結果に従ってロボットコントローラ310またはサーボモータドライバ531,532に対して、それぞれ目標値を与えることで、ロボット30およびコンベア230の搬送に関連する機器などを制御する。 The PLC 200 executes the designed control program based on field values including sensor output values from the field network 22, and controls the robot 30 and the equipment related to the transport of the conveyor 230 by providing target values to the robot controller 310 or the servo motor drivers 531, 532, respectively, according to the results of the execution.

サーボモータドライバ531,532は、コンベア230のサーボモータ41,42を駆動する。サーボモータ41,42の回転軸にはエンコーダ236,238が配置されている。当該エンコーダは、サーボモータ41,42のフィードバック値として、サーボモータの位置(回転角度)、回転速度、累積回転数などをPLC200へ出力する。 Servomotor drivers 531 and 532 drive servomotors 41 and 42 of the conveyor 230. Encoders 236 and 238 are arranged on the rotation shafts of the servomotors 41 and 42. The encoders output the servomotor position (rotation angle), rotation speed, cumulative number of rotations, etc. to the PLC 200 as feedback values for the servomotors 41 and 42.

ロボット30とコンベア230は、相互に連携しながらワーク232を移動させる。なお、ここでは説明を簡単にするために、ワーク232の移動を説明するが、移動に限定されない。例えば、トレイ9に載置されたワーク232のロボット30による加工であってもよい。 The robot 30 and the conveyor 230 work together to move the workpiece 232. For simplicity, the movement of the workpiece 232 will be described here, but it is not limited to this. For example, the robot 30 may process the workpiece 232 placed on the tray 9.

図2では、ロボット30のドライブ装置の一例として、ロボット30に設けられるサーボモータ1301、1302,1033,1304(以下、「ロボットサーボモータ」とも総称する。)と、ロボットサーボモータを駆動するロボットコントローラ310を例示する。同様に、コンベア230のドライブ装置の一例として、コンベア230に設けられるサーボモータ41,42を駆動するサーボモータドライバ531,532を例示する。 In FIG. 2, as an example of a drive device for the robot 30, servo motors 1301, 1302, 1033, and 1304 (hereinafter collectively referred to as "robot servo motors") provided on the robot 30 and a robot controller 310 that drives the robot servo motors are shown. Similarly, as an example of a drive device for the conveyor 230, servo motor drivers 531 and 532 that drive servo motors 41 and 42 provided on the conveyor 230 are shown.

ロボットコントローラ310は、ロボット30のロボットサーボモータを駆動する。各ロボットサーボモータの回転軸にはエンコーダ(図示しない)が配置されている。当該エンコーダは、ロボットサーボモータのフィードバック値として、サーボモータの位置(回転角度)、回転速度、累積回転数などをロボットコントローラ310へ出力する。 The robot controller 310 drives the robot servo motors of the robot 30. An encoder (not shown) is disposed on the rotation axis of each robot servo motor. The encoder outputs the position (rotation angle), rotation speed, cumulative number of rotations, etc. of the servo motor as feedback values for the robot servo motor to the robot controller 310.

サーボモータドライバ531,532は、指令値に従い、対応するサーボモータ41,42を駆動する。制御システム2は、さらに、コンベア230に関連して光電センサ6および開閉可能なストッパ8を備える。光電センサ6は、コンベア230の搬送面上に備えられるトレイ9が所定のワークトラッキングエリアの前に到達したことを検出し、検出値をPLC200に送信する。ストッパ8は、指令値に従い、トラッキングエリア内に到達したトレイ9を停止(固定)させるように閉動作する。 The servo motor drivers 531, 532 drive the corresponding servo motors 41, 42 according to the command values. The control system 2 further includes a photoelectric sensor 6 and an openable/closable stopper 8 associated with the conveyor 230. The photoelectric sensor 6 detects that a tray 9 provided on the transport surface of the conveyor 230 has arrived in front of a specified work tracking area, and transmits the detection value to the PLC 200. The stopper 8 closes according to the command value to stop (fix) the tray 9 that has arrived within the tracking area.

ロボット30のロボットハンド210は、工程に応じて取付けられる。ロボットハンド210の種類は、例えば平行ハンド、多指ハンド、多指関節ハンドなどを含むが、これら限定されず、例えば吸着式によりワーク232をピックおよびプレースする種類も含み得る。 The robot hand 210 of the robot 30 is attached according to the process. The types of the robot hand 210 include, but are not limited to, parallel hands, multi-fingered hands, and multi-jointed hands, and may also include types that pick and place the workpiece 232 by suction.

ロボット30は、ロボットコントローラ310からの指令値に従い、ピックアンドプレースを実施する。具体的には、ロボット30は、コンベア230上のトレイ9に載置されたワーク232をロボットハンド210によりピックし、ピックしたまま所定位置のテーブル55までワーク232を移動させてテーブル55上に置く(プレースする)。ロボットハンド210は、ロボットコントローラ310からの指令値に従い、ワーク232をピックまたはプレースするためのハンドの開閉動作が制御される。 The robot 30 performs pick-and-place in accordance with command values from the robot controller 310. Specifically, the robot 30 picks up the workpiece 232 placed on the tray 9 on the conveyor 230 with the robot hand 210, moves the picked-up workpiece 232 to a predetermined position on the table 55, and places it on the table 55. The opening and closing operation of the robot hand 210 to pick or place the workpiece 232 is controlled in accordance with command values from the robot controller 310.

システムシミュレーション装置1Aが実施するシミュレーションによって、その挙動が推定される機器として、ワーク232を搬送するコンベア230と、ワーク232を取り扱うロボット30(ロボット30およびロボットハンド210)などの機器を例示するが、挙動が推定される機器はこれらに限定されない。ケーブルシミュレーション装置1Bは、システムシミュレーションによって算出(推定)された機器の挙動に基づき、ケーブルの挙動を算出(推定)する。 The equipment whose behavior is estimated by the simulation performed by the system simulation device 1A includes, for example, the conveyor 230 that transports the workpiece 232 and the robot 30 (robot 30 and robot hand 210) that handles the workpiece 232, but the equipment whose behavior is estimated is not limited to these. The cable simulation device 1B calculates (estimates) the behavior of the cable based on the behavior of the equipment calculated (estimated) by the system simulation.

情報処理装置100により、制御プログラムは、このようなシミュレーションの結果を用いて設計されてもよい。情報処理装置100上で設計された制御プログラムは、フィールドネットワーク22を介してPLC200に送られる。 The information processing device 100 may design a control program using the results of such simulations. The control program designed on the information processing device 100 is sent to the PLC 200 via the field network 22.

<C.制御と3次元仮想空間の位置>
図2を参照して、システムシミュレーションの対象機器であるロボット30とコンベア230の制御と、これら機器の3次元仮想空間における挙動について説明する。
C. Control and position in 3D virtual space
With reference to FIG. 2, the control of the robot 30 and the conveyor 230, which are the target devices in the system simulation, and the behavior of these devices in the three-dimensional virtual space will be described.

ロボット30とコンベア230は、上記に述べたように、複数の駆動軸により移動可能な可動部を有する。これらの各駆動軸は、サーボモータによって駆動される。具体的には、ロボット30は、ロボットサーボモータ(サーボモータ1301~1304)が回転することで駆動される複数のアームを有している。ロボットサーボモータは、それぞれ回転することで、対応する各アームを駆動する。ロボットコントローラ310がロボットサーボモータの駆動を制御することで、各アームが3次元に駆動される。このような各アームの駆動により、ロボット30の挙動が実現される。同様に、コンベア230も、サーボモータ41,42が回転することでコンベア230および搬送面上のトレイ9が移動する。この移動量(移動の速度、向き、距離など)は、サーボモータ41,42の回転量(回転の向き、角度)により決まる。このようなサーボモータ41,42の駆動により、コンベア230およびトレイ9などの機器の挙動が実現される。 As described above, the robot 30 and the conveyor 230 have movable parts that can be moved by multiple drive axes. Each of these drive axes is driven by a servo motor. Specifically, the robot 30 has multiple arms that are driven by the rotation of the robot servo motors (servo motors 1301 to 1304). Each robot servo motor drives each corresponding arm by rotating. The robot controller 310 controls the driving of the robot servo motors, so that each arm is driven three-dimensionally. The behavior of the robot 30 is realized by driving each arm in this way. Similarly, the conveyor 230 and the tray 9 on the conveying surface move when the servo motors 41 and 42 rotate. The amount of movement (speed, direction, distance, etc. of movement) is determined by the amount of rotation (direction of rotation, angle) of the servo motors 41 and 42. The behavior of the conveyor 230 and the tray 9 and other devices is realized by driving the servo motors 41 and 42 in this way.

実施の形態では、ロボット30の各アーム301は、仮想的な軸が対応付けられ、各軸の位置からロボット30の位置が決まる。PLC200は、ロボット30を各軸の時系列に変換する目標位置に従い制御し、これにより、各アーム301の移動の速度および軌道は、目標に従う速度および軌道となるように変化する。 In the embodiment, each arm 301 of the robot 30 is associated with a virtual axis, and the position of the robot 30 is determined from the position of each axis. The PLC 200 controls the robot 30 according to a target position converted into a time series for each axis, and the speed and trajectory of the movement of each arm 301 are changed to a speed and trajectory that follows the target.

ロボット30の目標位置は、例えばPLC200に予め格納されている。ロボットコントローラ310は、PLC200から目標位置を受信し、受信した目標位置に基づき各ロボットサーボモータの回転量を決定し、決定した回転量を指定する指令値を、各ロボットサーボモータに対し出力する。 The target position of the robot 30 is stored in advance, for example, in the PLC 200. The robot controller 310 receives the target position from the PLC 200, determines the amount of rotation of each robot servo motor based on the received target position, and outputs a command value specifying the determined amount of rotation to each robot servo motor.

(c1.3次元仮想空間の座標系)
本実施の形態にかかるロボット30の各アーム301に相当する軸の3次元仮想空間における位置を算出する過程の一例を説明する。本実施の形態では、3次元仮想空間における座標系をロボット30およびPLC200などの各部が共通して備えるワールド座標系を例示する。ワールド座標系における位置を算出する際に、本実施の形態では、サーボモータ1301の回転量をαA、サーボモータ1302の回転量をαB、サーボモータ1303の回転量をαCおよびサーボモータ1304の回転量をαDとして示す。サーボモータ回転量(αA、αB、αC、αD)それぞれに対し、所定関数を用いて演算を施すことで、サーボモータ回転量(αA、αB、αC、αD)それぞれを、3次元仮想空間における位置に変換することができる。例えばワーク232をピックする各アーム301の軸の3次元座標P(x、y、z)が算出されると、各アーム301の3次元座標P(x、y、z)の時系列の変化によりロボット30に対応するオブジェクトの3次元仮想空間における挙動を示すことができる。本実施の形態では、システムシミュレーション装置1Aが、機器(より特定的には、ロボット30)に対応する3次元仮想空間に配置される第1の対象の挙動(3次元座標P(x、y、z)の時系列の変化)を算出し、算出結果である機器挙動データ2520を出力する。
(c1. Coordinate system of three-dimensional virtual space)
An example of a process for calculating the position of the axis corresponding to each arm 301 of the robot 30 in the three-dimensional virtual space according to the present embodiment will be described. In this embodiment, the coordinate system in the three-dimensional virtual space is exemplified as a world coordinate system shared by each unit such as the robot 30 and the PLC 200. When calculating the position in the world coordinate system, in this embodiment, the rotation amount of the servo motor 1301 is represented as αA, the rotation amount of the servo motor 1302 as αB, the rotation amount of the servo motor 1303 as αC, and the rotation amount of the servo motor 1304 as αD. By performing a calculation using a predetermined function for each of the servo motor rotation amounts (αA, αB, αC, αD), each of the servo motor rotation amounts (αA, αB, αC, αD) can be converted into a position in the three-dimensional virtual space. For example, when the three-dimensional coordinates P (x, y, z) of the axis of each arm 301 that picks the workpiece 232 are calculated, the behavior of the object corresponding to the robot 30 in the three-dimensional virtual space can be shown by the time-series change in the three-dimensional coordinates P (x, y, z) of each arm 301. In this embodiment, the system simulation device 1A calculates the behavior (time-series change in three-dimensional coordinates P (x, y, z)) of a first object placed in a three-dimensional virtual space corresponding to an equipment (more specifically, a robot 30), and outputs equipment behavior data 2520, which is the calculation result.

システムシミュレーション装置1Aは、ワーク232およびワーク232を搬送するコンベア230に対応するオブジェクトの3次元仮想空間における挙動も、ロボット30と同様に算出し、算出結果を機器挙動データ2520として出力することができる。 The system simulation device 1A can also calculate the behavior in the three-dimensional virtual space of the object corresponding to the workpiece 232 and the conveyor 230 that transports the workpiece 232 in the same manner as the robot 30, and output the calculation results as equipment behavior data 2520.

さらに、制御システム2では機器は互いに時刻同期する。具体的には、フィールドネットワーク22に接続される複数の機器、すなわちPLC100、ロボットコントローラ310、サーボモータドライバ531,532およびロボットハンド210は、互いに時刻同期されたタイマ90、91,92,93、94をそれぞれ有し、機器の間では、これらタイマに基き動作することで、制御指令を含むデータの送受信タイミングが同期されている。 Furthermore, in the control system 2, the devices are time-synchronized with each other. Specifically, the multiple devices connected to the field network 22, namely the PLC 100, the robot controller 310, the servo motor drivers 531 and 532, and the robot hand 210, each have timers 90, 91, 92, 93, and 94 that are time-synchronized with each other, and the devices operate based on these timers, thereby synchronizing the timing of sending and receiving data, including control commands.

<D.制御システムの全体構成>
図3は、本実施の形態にかかる制御システム2のユニット構成の一例を示す模式図である。図3を参照して、制御システム2は、PLC200と、PLC200とフィールドネットワーク22を介して接続されるサーボモータドライバ531,532およびリモートIOターミナル5と、ケーブル340を接続するロボットコントローラ310と、フィールドに設けられたIOデバイスである例えば、光電センサ6、ストッパ8が備える近接センサ87およびエンコーダ236、238を含む。
<D. Overall configuration of the control system>
Fig. 3 is a schematic diagram showing an example of a unit configuration of the control system 2 according to the present embodiment. Referring to Fig. 3, the control system 2 includes a PLC 200, servo motor drivers 531, 532 and a remote IO terminal 5 connected to the PLC 200 via a field network 22, a robot controller 310 to which a cable 340 is connected, and IO devices provided in the field, such as a photoelectric sensor 6, a proximity sensor 87 provided in a stopper 8, and encoders 236, 238.

PLC200は、主たる演算処理を実行する演算ユニット13、1つ以上のIOユニット14および特殊ユニット17を含む。これらのユニットは、システムバス81を介して、データを互いに遣り取りできるように構成されるとともに、電源ユニット12から電源が供給される。演算ユニット13には、情報処理装置100が接続され得る。 The PLC 200 includes an arithmetic unit 13 that performs the main arithmetic processing, one or more IO units 14, and a special unit 17. These units are configured to be able to exchange data with each other via a system bus 81, and are supplied with power from a power supply unit 12. An information processing device 100 can be connected to the arithmetic unit 13.

IOユニット14は、光電センサ6、ストッパ8の近接センサ87、エンコーダ236,238などを含むIOデバイスから検出値61、71および237および239を収集する。近接センサ87は、ストッパ8に対するトレイ9が所定距離まで接近したことを非接触で検出する。各IOデバイスからの検出値は、例えばIOユニット14が備えるメモリに設定(書込)される。演算ユニット13は、IOユニット14により収集された値を用いて制御プログラムの演算を実行し、演算結果の値をIOユニット14のメモリに設定(書込)する。周辺機器またはIOデバイスは、IOユニット14のメモリの値を参照して動作する。 The IO unit 14 collects detection values 61, 71, 237, and 239 from IO devices including the photoelectric sensor 6, the proximity sensor 87 of the stopper 8, and the encoders 236, 238. The proximity sensor 87 detects without contact that the tray 9 has approached the stopper 8 to a predetermined distance. The detection values from each IO device are set (written) in, for example, a memory provided in the IO unit 14. The calculation unit 13 executes calculations of the control program using the values collected by the IO unit 14, and sets (writes) the values of the calculation results in the memory of the IO unit 14. The peripheral devices or IO devices operate by referring to the values in the memory of the IO unit 14.

フィールドネットワーク22は、ロボットコントローラ310、サーボモータドライバ531,532、およびリモートIOターミナル5が接続されてもよい。IOリモートターミナル5は、フィールドネットワーク22でのデータ伝送にかかる処理を行うための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、リモートIOターミナルバス51を介して、データを互いに遣り取りできるように構成される。 The field network 22 may be connected to a robot controller 310, servo motor drivers 531, 532, and a remote IO terminal 5. The IO remote terminal 5 includes a communication coupler 52 for performing processing related to data transmission in the field network 22, and one or more IO units 53. These units are configured to be able to exchange data with each other via a remote IO terminal bus 51.

サーボモータドライバ531,532は、フィールドネットワーク22を介して演算ユニット13と接続されるとともに、演算ユニット13からの指令値に従ってサーボモータ41,42を駆動する。演算ユニット13は、これら指令値を、エンコーダ236,238からの検出値237,239に基き生成する。 The servo motor drivers 531 and 532 are connected to the arithmetic unit 13 via the field network 22, and drive the servo motors 41 and 42 according to command values from the arithmetic unit 13. The arithmetic unit 13 generates these command values based on the detection values 237 and 239 from the encoders 236 and 238.

演算ユニット13は、上記に述べたIOデバイスからの検出値を参照して、所定の制御プログラムを実行することで、ロボット30にピックアンドプレースを実施させる。具体的には、演算ユニット13は、光電センサ6の検出値61および近接センサ87の検出値71からワーク232が、所定のトラッキングエリアに接近したことを検出すると、ピックアンドプレースを実施させるロボットのアーム301のための制御指令211と、ロボットハンド210のための制御指令222を生成し、ロボットコントローラ310を介してケーブル340を経由してロボット30に出力する。 The arithmetic unit 13 executes a predetermined control program by referring to the detection values from the IO devices described above, causing the robot 30 to perform pick-and-place. Specifically, when the arithmetic unit 13 detects that the workpiece 232 has approached a predetermined tracking area from the detection value 61 of the photoelectric sensor 6 and the detection value 71 of the proximity sensor 87, it generates a control command 211 for the robot arm 301 that performs pick-and-place, and a control command 222 for the robot hand 210, and outputs them to the robot 30 via the robot controller 310 and the cable 340.

<E.ハードウェア構成>
次に、本実施の形態にかかるシミュレーション装置1のハードウェア構成の一例について説明する。
E. Hardware Configuration
Next, an example of a hardware configuration of the simulation device 1 according to the present embodiment will be described.

図4は、本実施の形態にかかるシミュレーション装置1を実現するためのハードウェア構成の一例を示す模式図である。本実施の形態では、シミュレーション装置1は、図4に示すような情報処理装置100に実装され得る。具体的には、情報処理装置100のプロセッサ102が必要なプログラムを実行することでシミュレーション装置1が実現される。図4では、シミュレーション装置1がシステムシミュレーションおよびケーブルシミュレーションを実施する環境を備えている。 Fig. 4 is a schematic diagram showing an example of a hardware configuration for realizing the simulation device 1 according to this embodiment. In this embodiment, the simulation device 1 can be implemented in an information processing device 100 as shown in Fig. 4. Specifically, the simulation device 1 is realized by the processor 102 of the information processing device 100 executing necessary programs. In Fig. 4, the simulation device 1 is provided with an environment for performing a system simulation and a cable simulation.

情報処理装置100は、主たるコンポーネントとして、オペレーティングシステム(OS:Operating System)および後述するような各種プログラムを実行するプロセッサ102と、プロセッサ102でのプログラム実行に必要なデータを格納するための作業領域を提供する主メモリ104と、キーボードやマウスなどのユーザ操作を受付ける操作ユニット106と、ディスプレイ109、各種インジケータ、プリンタなどの処理結果を出力する出力ユニット108と、ネットワーク80を含む各種ネットワークに接続されるネットワークインターフェイス110と、光学ドライブ112と、外部装置と通信するローカル通信インターフェイス116と、ストレージ111とを含む。これらのコンポーネントは、内部バス118などを介してデータ通信可能に接続される。 The information processing device 100 includes, as its main components, a processor 102 that executes an operating system (OS) and various programs as described below, a main memory 104 that provides a working area for storing data necessary for the processor 102 to execute the programs, an operation unit 106 that accepts user operations such as a keyboard and mouse, an output unit 108 that outputs processing results such as a display 109, various indicators, and a printer, a network interface 110 that is connected to various networks including a network 80, an optical drive 112, a local communication interface 116 that communicates with external devices, and a storage 111. These components are connected to enable data communication via an internal bus 118 or the like.

情報処理装置100は、光学ドライブ112によって、コンピュータ読取可能なプログラムを非一過的に格納する光学記憶媒体(例えば、DVD(Digital Versatile Disc)など)を含むコンピュータ読取可能な記憶媒体114から、各種プログラムまたはデータを読取ってストレージ111などにインストールする。 The information processing device 100 reads various programs or data from a computer-readable storage medium 114, which includes an optical storage medium (e.g., a DVD (Digital Versatile Disc)) that non-transiently stores computer-readable programs, using the optical drive 112, and installs the programs or data in the storage 111, etc.

情報処理装置100で実行される各種プログラムまたはデータは、コンピュータ読取可能な記憶媒体114を介してインストールされてもよいが、ネットワーク上の図示しないサーバ装置などからネットワークインターフェイス110を介してダウンロードする形でインストールするようにしてもよい。 The various programs or data executed by the information processing device 100 may be installed via a computer-readable storage medium 114, or may be installed by downloading them via the network interface 110 from a server device (not shown) on the network.

ストレージ111は、例えば、HDD(Hard Disk Drive)またはSSD(Flash Solid State Drive)などで構成され、プロセッサ102で実行されるプログラムを格納する。具体的には、ストレージ111は、本実施の形態にかかるシミュレーションを実現するためのシミュレーションプログラムとして、仮想時刻生成プログラム120、中継プログラム121、物理シミュレーションプログラム122、PLCシミュレーションプログラム126、ロボットエミュレーションプログラム130、統合プログラム134およびケーブルシミュレーションプログラム137を格納する。ストレージ111は、さらに、3次元仮想空間に配置されたオブジェクトを表示する画像を生成する画像処理プログラム136、評価プログラム143およびパラメータ設定プログラム145を格納する。 The storage 111 is composed of, for example, a hard disk drive (HDD) or a flash solid state drive (SSD), and stores the programs executed by the processor 102. Specifically, the storage 111 stores a virtual time generation program 120, a relay program 121, a physical simulation program 122, a PLC simulation program 126, a robot emulation program 130, an integration program 134, and a cable simulation program 137 as simulation programs for realizing the simulation according to this embodiment. The storage 111 further stores an image processing program 136 that generates an image displaying an object arranged in a three-dimensional virtual space, an evaluation program 143, and a parameter setting program 145.

ケーブルシミュレーションプログラム137は、実行されると、ケーブル340に対応するオブジェクトの3次元仮想空間における挙動を算出する。ケーブルシミュレーションプログラム137は、負荷算出プログラム138を含んでいる。負荷算出プログラム138は、実行されると、ケーブルシミュレーションプログラム137によって算出された挙動に基づき、ケーブル340かかる負荷を算出する。なお、負荷算出プログラム138は、ケーブルシミュレーションプログラム137が備えるとしているが、ケーブルシミュレーションプログラム137の実行タイミングに依存しない、すなわちケーブルシミュレーションプログラム137から独立したプログラムであってもよい。 When the cable simulation program 137 is executed, it calculates the behavior of the object corresponding to the cable 340 in the three-dimensional virtual space. The cable simulation program 137 includes a load calculation program 138. When the load calculation program 138 is executed, it calculates the load on the cable 340 based on the behavior calculated by the cable simulation program 137. Note that although the load calculation program 138 is said to be included in the cable simulation program 137, it may be a program that does not depend on the execution timing of the cable simulation program 137, i.e., is independent of the cable simulation program 137.

評価プログラム143は、ケーブルシミュレーションプログラム137が算出したケーブル340に対応するオブジェクトの挙動に基づき、当該挙動を評価する。より特定的には、評価プログラム143は、後述する負荷情報142に基づき、当該挙動を評価し、評価結果を示す評価データ144を出力する。評価データ144は、ストレージ111に格納され得る。 The evaluation program 143 evaluates the behavior based on the behavior of the object corresponding to the cable 340 calculated by the cable simulation program 137. More specifically, the evaluation program 143 evaluates the behavior based on the load information 142 described below, and outputs evaluation data 144 indicating the evaluation result. The evaluation data 144 can be stored in the storage 111.

パラメータ設定プログラム145は、例えば、情報処理装置100に対するユーザ操作内容に基づきケーブルパラメータ139をストレージ111に格納する。 The parameter setting program 145 stores the cable parameters 139 in the storage 111 based on, for example, user operations on the information processing device 100.

仮想時刻生成プログラム120は、シミュレーションのための仮想時刻を生成する。シミュレーション装置1は、仮想時刻に基づく周期でシミュレーションを実行する。 The virtual time generation program 120 generates virtual time for the simulation. The simulation device 1 executes the simulation at a period based on the virtual time.

物理シミュレーションプログラム122は、ワーク232の移動に関連して動作する機器に対応するオブジェクトの挙動を算出する。物理シミュレーションプログラム122により対応するオブジェクトの挙動が算出される機器は、例えば、ワーク232の搬送または移動に関連する光電センサ6、コンベア230、トレイ9、ストッパ8およびロボットハンド210を含む。物理シミュレーションプログラム122には、このような機器に対応したオブジェクトの挙動を規定するためのパラメータ、および、ワーク232の重さまたは形状などを規定するパラメータを含む、物理シミュレーションパラメータ124が与えられる。物理シミュレーションパラメータ124の値は、ユーザ操作または統合プログラム134などにより適宜変更されるようにしてもよい。 The physical simulation program 122 calculates the behavior of an object corresponding to equipment that operates in relation to the movement of the workpiece 232. Equipment for which the behavior of the corresponding object is calculated by the physical simulation program 122 includes, for example, the photoelectric sensor 6, the conveyor 230, the tray 9, the stopper 8, and the robot hand 210 that are related to the transportation or movement of the workpiece 232. The physical simulation program 122 is provided with physical simulation parameters 124 that include parameters for defining the behavior of the object corresponding to such equipment, and parameters for defining the weight or shape of the workpiece 232. The values of the physical simulation parameters 124 may be changed as appropriate by user operation, the integrated program 134, or the like.

物理シミュレーションパラメータ124として、ワーク232の搬送または移動に関連した機器およびワーク232のCAD(Computer Aided Design)データを用いてもよい。CADデータを用いることで、オブジェクトを用いて現実の機器の挙動をより正確に再現できる。 CAD (Computer Aided Design) data of the workpiece 232 and the equipment related to the transportation or movement of the workpiece 232 may be used as the physical simulation parameters 124. By using CAD data, the behavior of the actual equipment can be reproduced more accurately using objects.

PLCシミュレーションプログラム126は、物理シミュレーションプログラム122により対応のオブジェクトの挙動が算出される機器およびワーク232の位置を算出する。算出された位置は、物理シミュレーションプログラム122に与えられる。PLCシミュレーションプログラム126には、上記の位置を算出するために必要なパラメータを含むPLCパラメータ128が与えられる。 The PLC simulation program 126 calculates the positions of the equipment and work 232 whose corresponding object behaviors are calculated by the physical simulation program 122. The calculated positions are provided to the physical simulation program 122. The PLC simulation program 126 is provided with PLC parameters 128, which include parameters necessary to calculate the above positions.

ロボットエミュレーションプログラム130は、ロボット30の挙動をオブジェクトによって再現するシミュレータとして機能する。ロボットエミュレーションプログラム130は、物理シミュレーションプログラム122によって算出される結果(オブジェクトの挙動)に基づいて、ロボット30によるワーク232のピックアンドプレースを再現する。ロボットエミュレーションプログラム130には、ロボット30の挙動を対応するオブジェクトで再現するために必要なパラメータを含むロボットパラメータ132が与えられる。 The robot emulation program 130 functions as a simulator that reproduces the behavior of the robot 30 using an object. The robot emulation program 130 reproduces the pick-and-place of the workpiece 232 by the robot 30 based on the results (behavior of the object) calculated by the physical simulation program 122. The robot emulation program 130 is provided with robot parameters 132 including parameters necessary to reproduce the behavior of the robot 30 using the corresponding object.

中継プログラム121は、物理シミュレーションプログラム122とロボットエミュレーションプログラム130とが互いのデータを遣り取りするための中継機能を提供する。中継プログラム121は、限定されないが、中継機能は、例えばスクリプトの命令で記述されている。 The relay program 121 provides a relay function for the physical simulation program 122 and the robot emulation program 130 to exchange data with each other. The relay program 121 is not limited to this, but the relay function is described, for example, by a script command.

統合プログラム134は、物理シミュレーションプログラム122と、PLCシミュレーションプログラム126と、ロボットエミュレーションプログラム130と、中継プログラム121とを互いに連携させるための処理を実行する。具体的には、統合プログラム134は、典型的には主メモリ104上に、3次元仮想空間のオブジェクトの状態を記述する仮想空間情報105を生成および更新する。物理シミュレーションプログラム122、PLCシミュレーションプログラム126、および、ロボットエミュレーションプログラム130は、仮想空間情報105を参照(読出)して各シミュレーションの処理を実行するとともに、その実行結果のうち必要な情報を仮想空間情報105に反映する。統合プログラム134が提供する機能により、ワーク232を搬送する機器と、ピックアンドプレースによりワーク232を移動させるロボット30とを備える制御システム2における、機器の挙動および処理を再現する。 The integration program 134 executes processing for linking the physical simulation program 122, the PLC simulation program 126, the robot emulation program 130, and the relay program 121 with each other. Specifically, the integration program 134 generates and updates virtual space information 105, which describes the state of an object in a three-dimensional virtual space, typically on the main memory 104. The physical simulation program 122, the PLC simulation program 126, and the robot emulation program 130 refer to (read) the virtual space information 105 to execute the processing of each simulation, and reflect necessary information from the execution results in the virtual space information 105. The function provided by the integration program 134 reproduces the behavior and processing of the equipment in the control system 2 that includes an equipment that transports the workpiece 232 and a robot 30 that moves the workpiece 232 by pick-and-place.

画像処理プログラム136は、ディスプレイ109に表示するための3D(three-dimensional)ビジュアライズデータ135が与えられる。3Dビジュアライズデータ135は、挙動データ252と画像データ253を含む。画像データ253は、シミュレートされる機器に対応のオブジェクトを描画するための機器画像データ2530およびケーブル340に対応のオブジェクトを描画するためのケーブル画像データ2531を含む。ケーブル画像データ2531は、剛体304(後述する)のオブジェクトに対応する画像データを含んでいる。 The image processing program 136 is provided with 3D (three-dimensional) visualization data 135 for display on the display 109. The 3D visualization data 135 includes behavior data 252 and image data 253. The image data 253 includes equipment image data 2530 for drawing an object corresponding to the equipment being simulated, and cable image data 2531 for drawing an object corresponding to the cable 340. The cable image data 2531 includes image data corresponding to an object of the rigid body 304 (described below).

挙動データ252は、仮想空間情報105の各機器の位置に所定関数を用いて算出された位置である3次元座標P(x,y,z)およびその時系列データを含む機器挙動データ2520およびケーブル挙動データ2521を含む。ケーブル挙動データ2521は、ケーブルシミュレータ165が機器挙動データ2520のデータに基づき算出した、ケーブル340に対応する3次元仮想空間に配置されたオブジェクトの挙動を示す。 The behavior data 252 includes equipment behavior data 2520 and cable behavior data 2521, which include three-dimensional coordinates P (x, y, z) that are positions calculated using a predetermined function for the positions of each piece of equipment in the virtual space information 105, and time series data. The cable behavior data 2521 indicates the behavior of an object placed in the three-dimensional virtual space corresponding to the cable 340, calculated by the cable simulator 165 based on the equipment behavior data 2520.

画像処理プログラム136は、機器画像データ2530および機器挙動データ2520を用いて、ワーク232と、ワーク232の搬送に関連する機器およびロボット30と、ロボット30に取付けられたロボットハンド210とに対象の各オブジェクトの挙動を、3次元仮想空間内で立体的に描画するための画像データを生成し、ディスプレイ109に出力する。また、画像処理プログラム136は、ケーブル画像データ2531およびケーブル挙動データ2521を用いて、ケーブル340に対応するオブジェクトの挙動を、3次元仮想空間内で立体的に描画するための画像データを生成し、ディスプレイ109に出力する。 The image processing program 136 uses the equipment image data 2530 and the equipment behavior data 2520 to generate image data for stereoscopically depicting the behavior of each object, namely, the workpiece 232, the equipment and robot 30 related to the transport of the workpiece 232, and the robot hand 210 attached to the robot 30, in a three-dimensional virtual space, and outputs the image data to the display 109. The image processing program 136 also uses the cable image data 2531 and the cable behavior data 2521 to generate image data for stereoscopically depicting the behavior of the object corresponding to the cable 340 in a three-dimensional virtual space, and outputs the image data to the display 109.

これにより、ディスプレイ109には、シミュレーションにより算出された挙動に従いオブジェクトが表示されて、制御システム2の機器の挙動が再現され、また、機器の挙動に連動したケーブル340の挙動が再現される。なお、画像データ253は、CAD(Computer-Aided Design)データなどを含んでもよい。 As a result, objects are displayed on the display 109 according to the behavior calculated by the simulation, the behavior of the equipment of the control system 2 is reproduced, and the behavior of the cable 340 linked to the behavior of the equipment is also reproduced. Note that the image data 253 may include CAD (Computer-Aided Design) data, etc.

ストレージ111は、ケーブルシミュレーションプログラム137のパラメータであるケーブルパラメータ139および負荷情報142を格納する。ケーブルパラメータ139は、ケーブルシミュレーションの実行開始時に用いられるパラメータの初期値140と、候補値141を含む。候補値141は、ケーブルシミュレーションで用いられるパラメータであって、一般的に初期値140とは異なる値を示す。負荷情報142は、負荷算出プログラム138が実行されることにより算出された負荷を示す。ケーブルパラメータ139は、ケーブル340の材料に固有のパラメータであって、ケーブル340の硬さを示すパラメータ149、例えば後述するパラメータStiffnessおよびパラメータDampingを含む。 The storage 111 stores cable parameters 139 and load information 142, which are parameters of the cable simulation program 137. The cable parameters 139 include initial values 140 and candidate values 141 of parameters used when starting execution of the cable simulation. The candidate values 141 are parameters used in the cable simulation, and generally indicate values different from the initial values 140. The load information 142 indicates the load calculated by executing the load calculation program 138. The cable parameters 139 are parameters specific to the material of the cable 340, and include parameters 149 indicating the stiffness of the cable 340, such as the parameters Stiffness and Damping, which will be described later.

図4には、単一の情報処理装置100でシミュレーション装置1を実現する例を示したが、複数の情報処理装置を連係させてシミュレーション装置1を実現するようにしてもよい。この場合には、シミュレーション装置1を実現するために必要な処理の一部を情報処理装置100で実行させるとともに、残りの処理をネットワーク上のサーバ(クラウド)などで実行するようにしてもよい。 While FIG. 4 shows an example in which the simulation device 1 is realized by a single information processing device 100, the simulation device 1 may be realized by linking multiple information processing devices. In this case, part of the processing required to realize the simulation device 1 may be executed by the information processing device 100, and the remaining processing may be executed by a server (cloud) on a network, etc.

図4は、プロセッサ102が1または複数のプログラムを実行することで、シミュレーション装置1が実現される例を示すが、シミュレーション装置1を実現するために必要な処理および機能の一部を、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)などの回路を用いて実装するようにしてもよい。 Figure 4 shows an example in which the processor 102 executes one or more programs to realize the simulation device 1, but some of the processing and functions required to realize the simulation device 1 may be implemented using circuits such as an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array).

<F.機能構成>
次に、本実施の形態にかかるシミュレーション装置1の機能構成の一例について説明する。図5は、本実施の形態にかかるシミュレーション装置1を実現するための機能構成の一例を示す模式図である。図5に示す機能は、典型的には、情報処理装置100のプロセッサ102がプログラム(仮想時刻生成プログラム120、中継プログラム121、物理シミュレーションプログラム122、PLCシミュレーションプログラム126、ロボットエミュレーションプログラム130、統合プログラム134、画像処理プログラム136、ケーブルシミュレーションプログラム137、評価プログラム143およびパラメータ設定プログラム145など)を実行することで実現される。シミュレーション装置1は、システムシミュレーション装置1Aおよびケーブルシミュレーション装置1Bのための機能と、システムシミュレーションおよびケーブルシミュレーションの実行周期を生成する周期生成モジュール154と、シミュレーション結果に基づき3次元仮想空間にオブジェクトを描画するための3Dビジュアライザ164を備える。3Dビジュアライザ164は、画像処理プログラム136が実行されることにより実現される機能を含み得る。
<F. Functional Configuration>
Next, an example of the functional configuration of the simulation device 1 according to the present embodiment will be described. FIG. 5 is a schematic diagram showing an example of the functional configuration for realizing the simulation device 1 according to the present embodiment. The functions shown in FIG. 5 are typically realized by the processor 102 of the information processing device 100 executing programs (such as a virtual time generation program 120, a relay program 121, a physical simulation program 122, a PLC simulation program 126, a robot emulation program 130, an integration program 134, an image processing program 136, a cable simulation program 137, an evaluation program 143, and a parameter setting program 145). The simulation device 1 includes functions for the system simulation device 1A and the cable simulation device 1B, a period generation module 154 that generates an execution period of the system simulation and the cable simulation, and a 3D visualizer 164 for drawing an object in a three-dimensional virtual space based on the simulation result. The 3D visualizer 164 may include a function realized by the image processing program 136 being executed.

(f1.システムシミュレーション装置の構成)
図5を参照して、システムシミュレーション装置1Aは、仮想空間情報管理モジュール150と、PLCシミュレータ152と、ワーク挙動シミュレータ155と、物理シミュレータ156と、中継モジュール158と、ロボットエミュレータ160と、ワークトラッキングモジュール162と、3Dビジュアライザ164とを含む。
(f1. Configuration of the System Simulation Device)
Referring to Figure 5, the system simulation device 1A includes a virtual space information management module 150, a PLC simulator 152, a work behavior simulator 155, a physical simulator 156, a relay module 158, a robot emulator 160, a work tracking module 162, and a 3D visualizer 164.

仮想空間情報管理モジュール150は、統合プログラム134(図4)が実行されることで実現され、シミュレーションが実施される3次元仮想空間の各オブジェクトの挙動(位置および姿勢など)の情報を規定するための仮想空間情報105を管理する。 The virtual space information management module 150 is realized by executing the integrated program 134 (Figure 4), and manages the virtual space information 105 that specifies the behavior (position, posture, etc.) of each object in the three-dimensional virtual space in which the simulation is performed.

PLCシミュレータ152は、PLCシミュレーションプログラム126(図4)が実行されることで実現され、物理シミュレーションパラメータ124に従って、ワーク232の搬送に関連する機器に対応のオブジェクトの挙動を算出する。PLCシミュレータ152により算出される情報は、仮想空間情報105に反映される。 The PLC simulator 152 is realized by executing the PLC simulation program 126 (FIG. 4), and calculates the behavior of objects corresponding to equipment related to the transport of the workpiece 232 according to the physical simulation parameters 124. The information calculated by the PLC simulator 152 is reflected in the virtual space information 105.

PLCシミュレータ152は、ワーク232の搬送にかかる機器の挙動を推定するプログラムであって、PLCプログラムに含まれた複数の命令を含むシミュレーションプログラムに相当する。これら複数の命令は、PLCプログラムに含まれた搬送にかかる機器の挙動を制御するための命令群を含み得る。PLCプログラムは、例えばサイクリック実行型言語(例えば、ラダー言語)で記載されたプログラム言語)で記述される。 The PLC simulator 152 is a program that estimates the behavior of the equipment involved in the transport of the workpiece 232, and corresponds to a simulation program that includes a plurality of instructions included in the PLC program. These multiple instructions may include a group of instructions for controlling the behavior of the equipment involved in the transport that is included in the PLC program. The PLC program is written in, for example, a cyclic execution language (e.g., a programming language written in a ladder language).

PLCシミュレータ152のこれら命令は、仮想空間情報105のデータに基づき実行される毎に、例えばコンベア230のサーボモータ41,42を制御するための指令値が生成されて、仮想空間情報105に格納される。 Each time these commands of the PLC simulator 152 are executed based on the data of the virtual space information 105, command values for controlling, for example, the servo motors 41 and 42 of the conveyor 230 are generated and stored in the virtual space information 105.

中継モジュール158は、ワーク232の画像計測パラメータ129を用いた計測処理によるワーク232の計測結果をロボットエミュレータ160に出力する。ロボットエミュレータ160は仮想空間に配置されたワークを搬送するロボット30の挙動を、中継モジュール158からの計測結果に応じて、再現する。ロボットエミュレータ160により算出されるロボット30の挙動の情報は、仮想空間情報105に反映される。ロボットエミュレータ160は、ロボットエミュレーションプログラム130が実行されることにより実現される。ロボットエミュレータ160は、3次元仮想空間に配置されたワーク232を移動させるロボット30の挙動を示す機器挙動データ2520を出力する。ロボットエミュレータ160は、ロボット30のアーム301およびその先端に取付けられたロボットハンド210を一体的な剛体とみなしてシミュレーションを実施する。 The relay module 158 outputs the measurement results of the workpiece 232 by the measurement process using the image measurement parameters 129 of the workpiece 232 to the robot emulator 160. The robot emulator 160 reproduces the behavior of the robot 30 that transports the workpiece arranged in the virtual space according to the measurement results from the relay module 158. The information on the behavior of the robot 30 calculated by the robot emulator 160 is reflected in the virtual space information 105. The robot emulator 160 is realized by executing the robot emulation program 130. The robot emulator 160 outputs the equipment behavior data 2520 that indicates the behavior of the robot 30 that moves the workpiece 232 arranged in the three-dimensional virtual space. The robot emulator 160 performs a simulation by regarding the arm 301 of the robot 30 and the robot hand 210 attached to the tip of the arm 301 as an integrated rigid body.

具体的には、ロボットエミュレーションプログラム130は、ロボットコントローラ310のプログラムに含まれる命令群を含む。この命令群は、ロボット30にワーク232を操作させる指令コードを有したロボットプログラムの指令を含む。これら指令は、仮想空間情報105のPLCシミュレータ152の出力データなどに基づき、ロボット30の目標の軌跡を算出し、算出された軌跡に基づき各軸の挙動を示す指令値など算出する命令などを含む。 Specifically, the robot emulation program 130 includes a set of instructions included in the program of the robot controller 310. The set of instructions includes robot program instructions having command codes for causing the robot 30 to operate the workpiece 232. These commands include instructions for calculating a target trajectory of the robot 30 based on output data from the PLC simulator 152 of the virtual space information 105, and for calculating command values indicating the behavior of each axis based on the calculated trajectory.

このように、ロボットエミュレータ160は命令を実行すると、ロボット30の挙動を制御する各軸の指令値を生成し、生成した指令値を仮想空間情報管理モジュール150に出力する。仮想空間情報管理モジュールは150は、ロボットエミュレータからの指令値を仮想空間情報105として管理(格納)する。 In this way, when the robot emulator 160 executes a command, it generates command values for each axis that controls the behavior of the robot 30, and outputs the generated command values to the virtual space information management module 150. The virtual space information management module 150 manages (stores) the command values from the robot emulator as virtual space information 105.

ワーク挙動シミュレータ155は、3次元仮想空間に配置された1または複数のワーク232のオブジェクトの挙動を算出する。具体的には、ワーク挙動シミュレータ155は、物理シミュレーションプログラム122(図4)が実行されることで実現され、PLCシミュレータ152によるワーク232の搬送機器に対応するオブジェクトの挙動の情報に応じて、3次元仮想空間に配置されるワーク232の挙動を算出して更新する。ワーク挙動シミュレータ155は、ワーク232の挙動を算出するにあたって、ワーク232の位置、姿勢、移動速度、移動方向などを算出する。ワーク232の位置および姿勢は、ユーザなどから任意に設定されるワークパラメータに基づいて算出される。ワーク挙動シミュレータ155により算出されるワーク232の位置および姿勢の情報は、仮想空間情報105に反映される。ワークパラメータは、物理シミュレーションパラメータ124に含めることもできる。 The work behavior simulator 155 calculates the behavior of one or more workpiece 232 objects arranged in a three-dimensional virtual space. Specifically, the work behavior simulator 155 is realized by executing the physical simulation program 122 (FIG. 4), and calculates and updates the behavior of the workpiece 232 arranged in the three-dimensional virtual space according to the information on the behavior of the object corresponding to the transport device of the workpiece 232 by the PLC simulator 152. When calculating the behavior of the workpiece 232, the work behavior simulator 155 calculates the position, posture, moving speed, moving direction, etc. of the workpiece 232. The position and posture of the workpiece 232 are calculated based on work parameters arbitrarily set by the user, etc. The information on the position and posture of the workpiece 232 calculated by the work behavior simulator 155 is reflected in the virtual space information 105. The workpiece parameters can also be included in the physical simulation parameters 124.

物理シミュレータ156は、物理シミュレーションプログラム122(図4)が実行されることで実現される。物理シミュレータ156は、物理シミュレーションパラメータ124に従い、ワーク232を搬送または移動させるための機器に対応するオブジェクトの挙動(位置、姿勢、移動速度、移動方向など)を算出する。物理シミュレータ156によってシミュレーションされる対象は、光電センサ6、ストッパ8、トレイ9、ロボットハンド210、コンベア230およびワーク232を含む。 The physical simulator 156 is realized by executing the physical simulation program 122 (Figure 4). The physical simulator 156 calculates the behavior (position, posture, moving speed, moving direction, etc.) of an object corresponding to equipment for transporting or moving the workpiece 232 according to the physical simulation parameters 124. The objects simulated by the physical simulator 156 include the photoelectric sensor 6, the stopper 8, the tray 9, the robot hand 210, the conveyor 230, and the workpiece 232.

物理シミュレータ156は、これらオブジェクトの位置、姿勢などの挙動を所定の物理演算に従い算出する。物理シミュレータ156は、この物理演算に用いる物理シミュレーションパラメータ124のうち、オブジェクトの質量パラメータ127をゼロに設定して演算を実施する。 The physics simulator 156 calculates the behavior of these objects, such as their positions and orientations, in accordance with a predetermined physics calculation. The physics simulator 156 performs the calculation by setting the mass parameter 127 of the object, which is one of the physics simulation parameters 124 used in the physics calculation, to zero.

質量をゼロにセットする意味は次の通りである。すなわち、質量のパラメータがゼロでない場合、物理シミュレータ156は物理演算により各オブジェクトについて、当該オブジェクトの質量に基づく速度、加速度および重力などのオブジェクトに対する力学的作用の成分を算出し、その算出された力学的作用の成分によって、物理シミュレータ156が次のタイムステップにおけるオブジェクトの位置を計算(更新)することになる。その一方で、本実施の形態では、PLCシミュレータ152およびロボットエミュレータ160が各オブジェクトの位置を決定(支配)することになる。したがって、物理シミュレータ156によるオブジェクトの位置の更新成分をゼロ(無効化)するために、物理シミュレータ156の物理演算に用いる各オブジェクトの質量のパラメータをゼロに設定する。 The significance of setting the mass to zero is as follows. That is, if the mass parameter is not zero, the physics simulator 156 uses physics calculations to calculate the components of the mechanical action on each object, such as the velocity, acceleration, and gravity based on the mass of the object, and the physics simulator 156 calculates (updates) the position of the object in the next time step using the calculated components of the mechanical action. Meanwhile, in this embodiment, the PLC simulator 152 and the robot emulator 160 determine (control) the position of each object. Therefore, in order to zero (invalidate) the update components of the object's position by the physics simulator 156, the mass parameter of each object used in the physics calculations of the physics simulator 156 is set to zero.

物理演算により質量をゼロとして位置(挙動)が算出されたオブジェクトについては速度、加速度、重力などもゼロとなっているから、これらオブジェクトどうしが衝突した場合でも、物理演算では力学的成分(反発などのようなオブジェクトの跳ね返りなどの成分)はゼロ(無効化)と算出されるので、オブジェクトに対する力学的作用を無効化して3次元仮想空間における位置を検出することができる。 For objects whose position (behavior) is calculated using physics calculations with a mass of zero, the speed, acceleration, gravity, etc. are also zero, so even if these objects collide with each other, the physics calculations calculate the mechanical components (components such as the object bouncing back, such as repulsion) as zero (nullified), making it possible to nullify the mechanical effects on the object and detect its position in three-dimensional virtual space.

物理シミュレータ156は、物理演算により算出されたロボットハンド210の3次元位置座標P(x、y、z)を、機器挙動データ2520として格納する。物理シミュレータ156は、タイムステップ毎に実行されることにより、機器挙動データ2520は、ロボットハンド210に対応した時系列の3次元座標P(x、y、z)を含む。 The physical simulator 156 stores the three-dimensional position coordinates P(x, y, z) of the robot hand 210 calculated by physical calculation as equipment behavior data 2520. The physical simulator 156 is executed for each time step, so that the equipment behavior data 2520 includes the time-series three-dimensional coordinates P(x, y, z) corresponding to the robot hand 210.

ワークトラッキングモジュール162は、ロボットエミュレーションプログラム130が実行されることで実現される。ワークトラッキングモジュール162は、ロボットエミュレータ160からのロボット30の挙動情報に基づいて、3次元仮想空間においてロボット30によりピックアンドプレースされるワーク232をトラッキングする。ワークトラッキングモジュール162によりトラッキングされるワーク232の位置情報(ワーク位置)は、仮想空間情報105に反映される。 The work tracking module 162 is realized by executing the robot emulation program 130. The work tracking module 162 tracks the work 232 picked and placed by the robot 30 in a three-dimensional virtual space based on behavior information of the robot 30 from the robot emulator 160. The position information (work position) of the work 232 tracked by the work tracking module 162 is reflected in the virtual space information 105.

(f2.ケーブルシミュレーション装置の構成)
図5を参照して、ケーブルシミュレーション装置1Bは、ケーブルシミュレーションプログラム137が実行されることにより実現されるケーブルシミュレータ165および評価プログラム143が実行されることにより実現される評価モジュール167を含む。ケーブルシミュレータ165は、負荷算出モジュール166を有する。負荷算出モジュール166は、負荷算出プログラム138が実行されることにより実現される。なお、負荷算出モジュール166は、ケーブルシミュレータ165内に備えられずに、ケーブルシミュレータ165から独立していてもよい。
(f2. Configuration of cable simulation device)
5, the cable simulation device 1B includes a cable simulator 165 that is realized by executing the cable simulation program 137, and an evaluation module 167 that is realized by executing the evaluation program 143. The cable simulator 165 has a load calculation module 166. The load calculation module 166 is realized by executing the load calculation program 138. Note that the load calculation module 166 may not be provided in the cable simulator 165, but may be independent from the cable simulator 165.

ケーブルシミュレータ165は、タイムステップ毎に実行されることにより、当該タイムステップに対応した機器挙動データ2520のデータに基づき、ケーブルパラメータ139を用いて、当該ケーブル340に対応する3次元仮想空間に配置されたオブジェクトの挙動を算出し、算出結果をケーブル挙動データ2521として格納する。 The cable simulator 165 is executed for each time step, and calculates the behavior of an object placed in the three-dimensional virtual space corresponding to the cable 340 using the cable parameters 139 based on the equipment behavior data 2520 corresponding to that time step, and stores the calculation result as cable behavior data 2521.

ケーブルシミュレータ165は、タイムステップ毎に、ケーブル340に対応するオブジェクトの挙動を算出することで、ケーブル挙動データ2521によって、3次元仮想空間におけるケーブル340の時系列の挙動が示される。 The cable simulator 165 calculates the behavior of the object corresponding to the cable 340 for each time step, and the cable behavior data 2521 indicates the time series behavior of the cable 340 in the three-dimensional virtual space.

3Dビジュアライザ164は、3次元仮想空間を視覚化した画像を生成する画像生成部に相当する。3Dビジュアライザ164は、仮想空間情報105のタイムステップ毎の指令値に基づいて、ワーク232、ワーク232の搬送に関連する機器、ロボット30およびロボットハンド210に対応する3次元仮想空間のオブジェクトの3次元座標P(x、y、z)を算出する。時系列の3次元座標P(x、y、z)を含む機器挙動データ2520が算出される。 The 3D visualizer 164 corresponds to an image generation unit that generates an image that visualizes the three-dimensional virtual space. The 3D visualizer 164 calculates the three-dimensional coordinates P (x, y, z) of objects in the three-dimensional virtual space corresponding to the workpiece 232, the equipment related to the transport of the workpiece 232, the robot 30, and the robot hand 210, based on the command values for each time step of the virtual space information 105. Equipment behavior data 2520 including the time-series three-dimensional coordinates P (x, y, z) is calculated.

3Dビジュアライザ164は、機器挙動データ2520および機器画像データ2530に基づき、3次元仮想空間における機器の挙動を視覚化する画像データを生成し、また、ケーブル挙動データ2521およびケーブル画像データ2531に基づき、3次元仮想空間におけるケーブルの挙動を視覚化する画像データを生成する。これら画像データはディスプレイ109に出力される。これにより、システムシミュレーションによる算出された機器の挙動を示す画像と、ケーブルシミュレーションにより算出されたケーブル340の挙動を示す画像が、ディスプレイ109に表示される。 The 3D visualizer 164 generates image data for visualizing the behavior of the equipment in a three-dimensional virtual space based on the equipment behavior data 2520 and the equipment image data 2530, and also generates image data for visualizing the behavior of the cable in a three-dimensional virtual space based on the cable behavior data 2521 and the cable image data 2531. These image data are output to the display 109. As a result, an image showing the behavior of the equipment calculated by the system simulation and an image showing the behavior of the cable 340 calculated by the cable simulation are displayed on the display 109.

周期生成モジュール154は、仮想時刻生成プログラム120が実行されることにより実現される。周期生成モジュール154は、プロセッサ102が有するタイマ(図示せず)の出力に基づき、タイマの出力に同期した信号STを他の各部に出力する。各部は、周期生成モジュール154から信号STが出力される周期(以下、所定のタイムステップという)に同期して処理またはプログラムを実行する。これにより、図5の各部は、所定のタイムステップ毎に互いに同期して実行される。信号STの周期は、限定されないが、図3の制御システム2の時刻同期に従うフィールドネットワーク22の通信周期(以下、「制御周期」ともいう。)に基き決定されてもよい。なお、信号STに基づくタイムステップが示す周期は、可変であってよい。 The period generating module 154 is realized by executing the virtual time generating program 120. Based on the output of a timer (not shown) possessed by the processor 102, the period generating module 154 outputs a signal ST synchronized with the output of the timer to each of the other parts. Each part executes a process or program in synchronization with the period (hereinafter referred to as a predetermined time step) at which the signal ST is output from the period generating module 154. As a result, each part in FIG. 5 executes in synchronization with each other at each predetermined time step. The period of the signal ST is not limited, but may be determined based on the communication period of the field network 22 (hereinafter also referred to as the "control period") that follows the time synchronization of the control system 2 in FIG. 3. Note that the period indicated by the time step based on the signal ST may be variable.

図5に示すような各機能が互いに連携することで、機器の挙動に連動したケーブル340の挙動を再現することができる。 By linking the various functions shown in FIG. 5 together, it is possible to reproduce the behavior of the cable 340 in conjunction with the behavior of the device.

本実施の形態では、図5のシミュレーション装置1は、例えば操作ユニット106を介して受付けるユーザからの指示に従い、システムシミュレーション装置1Aとケーブルシミュレーション装置1Bの一方を起動することができる。また、シミュレーション装置1は、例えば操作ユニット106を介して受付けるユーザからの指示に従い、システムシミュレーション装置1Aまたはケーブルシミュレーション装置1Bを起動するタイミングを決定することができる。例えば、シミュレーション装置1は、システムシミュレーション装置1Aが起動され、その後に、ケーブルシミュレーション装置1Bの起動タイミングを設定する。これにより、ケーブルシミュレーション装置1Bが起動する際に、機器挙動データ2520をケーブルシミュレータに提供することができる。 In this embodiment, the simulation device 1 in FIG. 5 can start one of the system simulation device 1A and the cable simulation device 1B according to an instruction from a user received, for example, via the operation unit 106. The simulation device 1 can also determine the timing to start the system simulation device 1A or the cable simulation device 1B according to an instruction from a user received, for example, via the operation unit 106. For example, the simulation device 1 starts the system simulation device 1A, and then sets the start timing of the cable simulation device 1B. This makes it possible to provide the equipment behavior data 2520 to the cable simulator when the cable simulation device 1B starts.

なお、図5では、情報処理装置100は、システムシミュレーション装置1Aとケーブルシミュレーション装置1Bの両方を実装しているが、機器挙動データ2520がケーブルシミュレーション装置1Bに利用可能であれば、情報処理装置100はケーブルシミュレーション装置1Bのみを実装してもよい。 In FIG. 5, the information processing device 100 is implemented with both the system simulation device 1A and the cable simulation device 1B, but if the equipment behavior data 2520 is available for the cable simulation device 1B, the information processing device 100 may be implemented with only the cable simulation device 1B.

<G.ケーブルシミュレーション>
図6は、本実施の形態にかかるケーブルシミュレーション装置1Bの処理のシーケンスの一例を模式的に示す図である。図6では、ケーブルシミュレーション装置1Bが実施するケーブルシミュレーションの処理が、周辺処理と関連付けて示されている。説明のために、以下のケーブルシミュレーションが用いる機器挙動データ2520は、ロボット30(より特定的にはアーム301)に対応するオブジェクトの挙動を示している。
<G. Cable Simulation>
Fig. 6 is a diagram showing a schematic example of a processing sequence of the cable simulation device 1B according to the present embodiment. In Fig. 6, the processing of the cable simulation performed by the cable simulation device 1B is shown in association with peripheral processing. For the sake of explanation, the device behavior data 2520 used in the following cable simulation indicates the behavior of an object corresponding to the robot 30 (more specifically, the arm 301).

図6を参照して、ユーザーは、操作ユニット106を操作して、情報処理装置100に対して、システムシミュレーションを設定するための指示と、ケーブルシミュレーションを追加する指示を入力する(ステップS80、ステップS83)。プロセッサ102は、ユーザーからの指示に従い、システムシミュレーションを実行可能なように、例えば、システムシミュレーションのための各種パラメータを設定する。また、プロセッサ102は、ケーブルシミュレーションを追加する指示に従い、ケーブルシミュレーションを実行可能な状態を設定する。例えば、機器挙動データ2520を参照可能なようにケーブルシミュレータ165を設定する。 Referring to FIG. 6, the user operates the operation unit 106 to input to the information processing device 100 an instruction to set up a system simulation and an instruction to add a cable simulation (steps S80 and S83). The processor 102, in accordance with the user's instructions, sets, for example, various parameters for the system simulation so that the system simulation can be executed. Also, in accordance with the instruction to add a cable simulation, the processor 102 sets a state in which the cable simulation can be executed. For example, the cable simulator 165 is set so that the equipment behavior data 2520 can be referenced.

ユーザーは、操作ユニット106を操作して、情報処理装置100に対して、システムシミュレーションの実行と機器挙動データ2520の格納の指示を入力する(ステップS85)。 The user operates the operation unit 106 to input instructions to the information processing device 100 to execute a system simulation and store the equipment behavior data 2520 (step S85).

プロセッサ102は、システムシミュレーション装置1Aを起動し(ステップS87)、システムシミュレーションの結果である機器挙動データ2520をストレージ111に格納(保持)し(ステップS88)、機器挙動データ2520の格納が完了した旨の通知を、例えばディスプレイ109に出力する(ステップS89)。 The processor 102 starts the system simulation device 1A (step S87), stores (holds) the equipment behavior data 2520, which is the result of the system simulation, in the storage 111 (step S88), and outputs a notification that the storage of the equipment behavior data 2520 has been completed, for example, to the display 109 (step S89).

ユーザーは、操作ユニット106を操作して、ケーブルパラメータ139を情報処理装置100に対して入力する(ステップS91)。プロセッサ102により実行されたパラメータ設定プログラム145は、操作ユニット106から受付けたケーブルパラメータ139をストレージ111に格納する。 The user operates the operation unit 106 to input the cable parameters 139 to the information processing device 100 (step S91). The parameter setting program 145 executed by the processor 102 stores the cable parameters 139 received from the operation unit 106 in the storage 111.

ユーザーは、操作ユニット106を操作して、情報処理装置100に対して、ケーブルシミュレーションの実行開始の指示を入力する(ステップS93)。プロセッサ102は、ケーブルシミュレーションの実行開始指示に従い、ケーブルシミュレータ165を起動する。 The user operates the operation unit 106 to input an instruction to start the execution of the cable simulation to the information processing device 100 (step S93). The processor 102 starts the cable simulator 165 in accordance with the instruction to start the execution of the cable simulation.

ケーブルシミュレータ165は、起動されると、パラメータ毎(初期値140および候補値141のそれぞれ毎)にケーブルシミュレーションを繰返す処理(ループ処理)を実行する(ステップS100)。ケーブルシミュレータ165は、信号STに基づくタイムステップに同期して、機器挙動データ2520に基づきシミュレーションを実行することにより、タイムステップ毎にケーブル挙動データ2521を算出し格納する(ステップS100a)。また、ケーブルシミュレーションを実行時には、負荷算出モジュール166は、タイムステップ毎に、負荷情報142を算出し格納する。 When the cable simulator 165 is started, it executes a process (loop process) of repeating a cable simulation for each parameter (for each of the initial value 140 and the candidate value 141) (step S100). The cable simulator 165 executes a simulation based on the equipment behavior data 2520 in synchronization with the time step based on the signal ST, thereby calculating and storing cable behavior data 2521 for each time step (step S100a). In addition, when executing the cable simulation, the load calculation module 166 calculates and stores load information 142 for each time step.

評価モジュール167は評価処理を実行する(ステップS130)。具体的には、評価モジュール167は、ケーブル挙動データ2521に基づき、より特定的にはケーブル挙動データ2521から算出された負荷情報142に基づき、挙動を評価し、評価結果である評価データ144を格納する。評価モジュール167は、評価データ144の情報を出力する(ステップS140)。例えば、評価データ144に基づく画像をディスプレイ109に表示させる。 The evaluation module 167 executes the evaluation process (step S130). Specifically, the evaluation module 167 evaluates the behavior based on the cable behavior data 2521, more specifically based on the load information 142 calculated from the cable behavior data 2521, and stores the evaluation result, which is evaluation data 144. The evaluation module 167 outputs information on the evaluation data 144 (step S140). For example, it causes the display 109 to display an image based on the evaluation data 144.

(g1.パラメータの設定)
上記に述べたケーブル340のパラメータ設定(ステップS91)のために、パラメータ設定プログラム145はUIツールを提供する。このようなUIツールを、図7と図8を参照して説明する。図7は、本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の一例を模式的に示す図である。図8は、本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の他の例を模式的に示す図である。本実施の形態にかかるケーブルシミュレーションにおいては、ケーブル340とケーブルガイド350は一体化しているものとして扱う。
(g1. Parameter setting)
For the parameter setting of the cable 340 described above (step S91), the parameter setting program 145 provides a UI tool. Such a UI tool will be described with reference to Figs. 7 and 8. Fig. 7 is a diagram showing a typical example of a UI screen for setting parameters of a cable according to this embodiment. Fig. 8 is a diagram showing a typical example of a UI screen for setting parameters of a cable according to this embodiment. In the cable simulation according to this embodiment, the cable 340 and the cable guide 350 are treated as being integrated.

図7は、ディスプレイ109に表示される3D画像の一例であって、3D画像は、ロボット30のアーム301と、アーム301にケーブルガイド350を取付けることによってケーブル340が取付けられる状態を示している。図7の3D画像は、プロセッサ102によって、機器画像データ2530およびケーブル画像データ2531のCADデータなどから生成される。ユーザーは、例えば、ディスプレイ109の画像を操作することにより、ケーブルガイド間にケーブル340を接続するかを否かを設定することができる。 Figure 7 is an example of a 3D image displayed on the display 109, and shows the arm 301 of the robot 30 and the state in which the cable 340 is attached by attaching a cable guide 350 to the arm 301. The 3D image in Figure 7 is generated by the processor 102 from CAD data of the equipment image data 2530 and the cable image data 2531. The user can set whether or not to connect the cable 340 between the cable guides by, for example, manipulating the image on the display 109.

ユーザーは、図8のUI画面を操作して、ケーブルのパラメータ139として、初期値140および候補値141を設定する。例えば、パラメータの初期値140のセット(0)を設定できるとともに、候補値141のセット(1)~(5)を設定できる。パラメータの各セットは、ケーブル340の長さ(Cable Length)と、各ケーブルガイド350の位置(Offset From Guide Cad Data)を含む。パラメータ設定プログラム145は、各ケーブルガイド350の位置を、図7でユーザーが設定した3D画面上の位置から換算する。これにより各ケーブルガイド間の距離が決まるので、パラメータ設定プログラム145は、当該ケーブルガイド間のケーブル340の長さを決定することができる。 The user operates the UI screen in FIG. 8 to set initial values 140 and candidate values 141 as cable parameters 139. For example, a set (0) of parameter initial values 140 can be set, and sets (1) to (5) of candidate values 141 can be set. Each set of parameters includes the length of the cable 340 (Cable Length) and the position of each cable guide 350 (Offset From Guide Cad Data). The parameter setting program 145 converts the position of each cable guide 350 from the position on the 3D screen set by the user in FIG. 7. This determines the distance between each cable guide, and the parameter setting program 145 can then determine the length of the cable 340 between the cable guides.

(g2.データの関連性)
図9は、本実施の形態にかかるケーブルシミュレーションのデータの関連性をケーブルデータ146を用いて模式的に示す図である。本実施の形態では、図7と図8のユーザー設定操作によって、例えば、図1のように、4個のケーブルガイド350,351,352および353の取付け位置が設定される。これにより、各ケーブルガイド間に接続されるケーブル341,342および343が設定される。
(g2. Data Relevance)
Fig. 9 is a diagram showing a schematic diagram of data associations in a cable simulation according to this embodiment, using cable data 146. In this embodiment, the attachment positions of four cable guides 350, 351, 352, and 353 are set, for example, as shown in Fig. 1, by the user setting operations of Fig. 7 and Fig. 8. As a result, cables 341, 342, and 343 to be connected between each cable guide are set.

図9では、図1のケーブル341,342および343のそれぞれに対応して、ケーブルデータ146が格納されることが示されている。ケーブルデータ146は、対応のケーブル340について、ケーブルパラメータ139の初期値140および2つの候補値141のそれぞれを用いたケーブルシミュレーションを実施した場合に取得されるデータを示す。 In FIG. 9, cable data 146 is stored corresponding to each of cables 341, 342, and 343 in FIG. 1. Cable data 146 indicates data obtained when a cable simulation is performed for the corresponding cable 340 using the initial value 140 and each of two candidate values 141 of cable parameter 139.

ケーブル341,342および343のケーブルデータ146を、それぞれ、ケーブルデータ(1)、ケーブルデータ(2)およびケーブルデータ(3)と称する。また、ケーブルデータ(1)、ケーブルデータ(2)およびケーブルデータ(3)に共通した説明では、ケーブルデータ146と総称する。 The cable data 146 for cables 341, 342, and 343 are referred to as cable data (1), cable data (2), and cable data (3), respectively. In addition, in explanations common to cable data (1), cable data (2), and cable data (3), they are collectively referred to as cable data 146.

図9を参照して、ケーブルデータ146は、ケーブルパラメータ139の初期値140および候補値141のそれぞれに関連付けてケーブル挙動データ2521、負荷情報142および評価データ144を含む。 Referring to FIG. 9, the cable data 146 includes cable behavior data 2521, load information 142, and evaluation data 144 associated with the initial values 140 and candidate values 141 of the cable parameters 139, respectively.

ここでは、ケーブルパラメータ139の候補値141として、候補値(1)と候補値(2)の2種類が示されるが、候補値141の種類は2種類に限定されない。ケーブル挙動データ2521は、初期値140、候補値(1)および候補値(2)それぞれに関連付けて、ケーブル挙動データ(0)、ケーブル挙動データ(1)およびケーブル挙動データ(2)を含む。ケーブル挙動データ(0)、ケーブル挙動データ(1)およびケーブル挙動データ(2)は、それぞれ、初期値140、候補値(1)および候補値(2)のパラメータを用いたケーブルシミュレーションによって、タイムステップti(i=1,2,…n)毎に算出されたケーブル挙動データ2521を示す。図9では、負荷情報142は、ケーブル挙動データ(0)、ケーブル挙動データ(1)およびケーブル挙動データ(2)それぞれに関連付けて、当該ケーブル挙動データから算出された負荷情報(0)、負荷情報(1)および負荷情報(2)を含む。評価データ144は、負荷情報(0)、負荷情報(1)および負荷情報(2)それぞれに関連付けて、当該負荷情報から挙動を評価した結果である評価データ(0)、評価データ(1)および評価データ(2)を含む。 Here, two types of candidate values 141 of the cable parameter 139, candidate value (1) and candidate value (2), are shown, but the types of the candidate values 141 are not limited to two. The cable behavior data 2521 includes cable behavior data (0), cable behavior data (1), and cable behavior data (2) associated with the initial value 140, candidate value (1), and candidate value (2), respectively. The cable behavior data (0), cable behavior data (1), and cable behavior data (2) indicate the cable behavior data 2521 calculated for each time step ti (i = 1, 2, ... n) by the cable simulation using the parameters of the initial value 140, candidate value (1), and candidate value (2), respectively. In FIG. 9, the load information 142 includes load information (0), load information (1), and load information (2) calculated from the cable behavior data associated with the cable behavior data (0), cable behavior data (1), and cable behavior data (2), respectively. The evaluation data 144 includes evaluation data (0), evaluation data (1), and evaluation data (2) that are associated with load information (0), load information (1), and load information (2), respectively, and are the results of evaluating behavior from the load information.

(g3.物理シミュレーションモデル)
図10は、本実施の形態にかかるケーブルの物理シミュレーションモデルの一例を模式的に示す図である。
(g3. Physical Simulation Model)
FIG. 10 is a diagram illustrating an example of a physical simulation model of the cable according to the present embodiment.

本実施の形態にかかるケーブルシミュレータ165は、物理シミュレーションを実行する物理シミュレータを含む。図10を参照して、この物理シミュレーションでは、ケーブル340に対応するオブジェクト(第2の対象)は、隣接する剛体304間をジョイント(関節305)で接合することで複数の剛体304が連ねられてモデル化された剛体リンクを含む。具体的には、剛体304は所定のサイズおよび形状を有し、剛体リンクでは、剛体304間が関節305により一列に接続されている。 The cable simulator 165 according to this embodiment includes a physical simulator that executes a physical simulation. With reference to FIG. 10, in this physical simulation, an object (second target) corresponding to the cable 340 includes a rigid body link modeled by connecting a plurality of rigid bodies 304 together by connecting adjacent rigid bodies 304 with joints (articulations 305). Specifically, the rigid bodies 304 have a predetermined size and shape, and in the rigid body link, the rigid bodies 304 are connected in a row by the joints 305.

剛体304は、例えば、円柱形状の変形しない物体である。物理シミュレーションでは、剛体304の中心に着目して、剛体304は、当該中心の現在位置と直前位置を有した質点として定義される。関節305は、例えばバネまたはダンパなどのジョイントに相当し、関節305は、モデルでは、隣接する剛体304のx、yおよびzの各軸方向の平行移動と回転に対する制約となる拘束条件に相当する。図10では、剛体304の列の両端を、ケーブルガイド350に対応するオブジェクト302によってロボット30に取付けられた状態が示される。このようにケーブルシミュレーションでは、剛体リンクは、剛体304の位置および姿勢について隣接する剛体同士の関係に拘束条件を加えたジョイント構造でモデル化されたものである。図10では、剛体リンクは3個の剛体304からなるとしているが、剛体304は3個に限定されない。すなわち、剛体304の個数は、ケーブルパラメータ139によって指定されるケーブル長(図8のCable length)に従い設定される。 The rigid body 304 is, for example, a cylindrical object that does not deform. In the physical simulation, focusing on the center of the rigid body 304, the rigid body 304 is defined as a mass point having the current position and the previous position of the center. The joint 305 corresponds to a joint such as a spring or a damper, and in the model, the joint 305 corresponds to a constraint condition that restricts the translation and rotation of adjacent rigid bodies 304 in the x, y, and z axial directions. In FIG. 10, both ends of the row of rigid bodies 304 are shown attached to the robot 30 by the object 302 corresponding to the cable guide 350. In this way, in the cable simulation, the rigid body link is modeled with a joint structure that adds a constraint condition to the relationship between adjacent rigid bodies with respect to the position and orientation of the rigid body 304. In FIG. 10, the rigid body link is made up of three rigid bodies 304, but the number of rigid bodies 304 is not limited to three. In other words, the number of rigid bodies 304 is set according to the cable length (Cable length in FIG. 8) specified by the cable parameter 139.

ケーブルシミュレーションにおいては、ロボット30に対応する3次元仮想空間におけるオブジェクトの所与の挙動(機器挙動データ2520)に基づき、ケーブルパラメータ139を用いて、図10のモデルを表す拘束条件を含む拘束方程式を演算することによって、モデル(図10)の3次元仮想空間における挙動(ケーブル挙動データ2521)を算出する。 In the cable simulation, the behavior of the model (Figure 10) in the three-dimensional virtual space (cable behavior data 2521) is calculated by calculating a constraint equation including constraint conditions representing the model of Figure 10 using cable parameters 139 based on the given behavior of the object in the three-dimensional virtual space corresponding to the robot 30 (equipment behavior data 2520).

図11は、図10のケーブルの物理シミュレーションモデルの連立方程式147の一例を示す図である。方程式147は、図10の剛体304のそれぞれに対応の式Ati、BtiおよびCtiを含む。各式は、剛体304の位置(x軸、y軸およびz軸それぞれの座標)と姿勢(x軸、y軸およびz軸それぞれの傾きα(ロール)、β(ピッチ)、γ(ヨー))の変数を含み、これら変数の値を、連立方程式(方程式147)を解くことにより算出する。すなわち、ケーブルシミュレータ165は、連立方程式(方程式147)を、機器挙動データ2520に基づいて、パラメータ139を用いて、タイムステップti毎に繰返し解く。これにより、タイムステップti毎に、各剛体304の位置および姿勢に対応する変数の値を算出することができる。 11 is a diagram showing an example of simultaneous equations 147 of the physical simulation model of the cable in FIG. 10. Equation 147 includes equations Ati, Bti, and Cti corresponding to each of the rigid bodies 304 in FIG. 10. Each equation includes variables of the position (coordinates of the x-axis, y-axis, and z-axis) and attitude (tilts α (roll), β (pitch), and γ (yaw) of the x-axis, y-axis, and z-axis), respectively, of the rigid body 304, and the values of these variables are calculated by solving simultaneous equations (equation 147). That is, the cable simulator 165 repeatedly solves the simultaneous equations (equation 147) for each time step ti using parameters 139 based on the equipment behavior data 2520. This allows the values of variables corresponding to the position and attitude of each rigid body 304 to be calculated for each time step ti.

(g4.拘束条件に従う位置更新)
さらに、ケーブルシミュレーションでは、位置ベースの物理シミュレーション(Position Based Dynamics:PBD)に従って、剛体304の位置が更新(修正)される。図12は、本実施の形態にかかる物理シミュレーションの位置の更新を模式的に示す図である。図12を参照して、ケーブルシミュレータ165が実施する剛体304の位置の更新処理を説明する。
(g4. Position update according to constraints)
Furthermore, in the cable simulation, the position of the rigid body 304 is updated (modified) in accordance with a position-based physical simulation (Position Based Dynamics: PBD). Fig. 12 is a diagram showing a schematic diagram of updating the position of the physical simulation according to the present embodiment. The process of updating the position of the rigid body 304 performed by the cable simulator 165 will be described with reference to Fig. 12.

具体的には、ケーブルシミュレーションでは、タイムステップ毎に、各剛体304の挙動が算出される。シミュレーションの結果、隣接する剛体304どうしが衝突すると、衝突した剛体304どうしの一方が他方に侵入(めり込む)することがある(図12(A))。ケーブルシミュレータ165は、剛体304が他の剛体304に侵入するか否かを検出する(図12(A))。 Specifically, in the cable simulation, the behavior of each rigid body 304 is calculated for each time step. As a result of the simulation, when adjacent rigid bodies 304 collide with each other, one of the colliding rigid bodies 304 may invade (sink) into the other (Figure 12 (A)). The cable simulator 165 detects whether a rigid body 304 invades another rigid body 304 (Figure 12 (A)).

図12(A)では、ケーブルシミュレータ165は、タイムステップ毎に、算出されたオブジェクト(剛体304)どうしの3次元仮想空間における位置x0を用いて、予測位置Xpredict(Xpredict=x0+v×Δt、ただしx0=算出位置、Δt=タイムステップの時間、v=速度)を算出し、予測位置Xpredictの関係に基づき、オブジェクトどうしの衝突の有無を検出する。衝突は、例えば、3次元仮想空間におけるオブジェクトの位置(座標)と他のオブジェクトの位置(座標)との両者の距離が、例えば閾値以下であるとことを含む。閾値は、オブジェクトのサイズ(幅、高さなど)に基づく値であってもよい。なお、衝突の検出方法は、これに限定されない。 In FIG. 12(A), the cable simulator 165 calculates a predicted position Xpredict (Xpredict=x0+v×Δt, where x0=calculated position, Δt=time of time step, and v=velocity) for each time step using the calculated position x0 of the objects (rigid bodies 304) in the three-dimensional virtual space, and detects whether or not the objects collide with each other based on the relationship between the predicted positions Xpredict. A collision includes, for example, the distance between the position (coordinates) of an object and the position (coordinates) of another object in the three-dimensional virtual space being equal to or less than a threshold value. The threshold value may be a value based on the size (width, height, etc.) of the objects. Note that the method of detecting a collision is not limited to this.

12(A)で侵入が検出されると、ケーブルシミュレータ165は、侵入を解決できるように、衝突した剛体304どうしの位置(位置:Xpredict)を変更する(図12(B))。この際、ある剛体304の位置X0(位置:Xpredict)が位置X(修正後の位置:Xcorrect)に変更されると、その変更に伴って、当該剛体304に隣接する他の剛体304の位置がずれる可能性がある。そして、このような位置の変更を繰返すと、ケーブルシミュレーションにおいて各剛体304の挙動が安定する状態となる。本実施の形態では、上記の拘束条件は、オブジェクトの挙動を、このような安定状態に移行させるための物理的な制約パラメータに対応する。 12(A), the cable simulator 165 changes the positions (position: Xpredict) of the colliding rigid bodies 304 so as to resolve the intrusion (FIG. 12(B)). In this case, when the position X0 (position: Xpredict) of a certain rigid body 304 is changed to the position X (corrected position: Xcorrect), the position of the other rigid bodies 304 adjacent to the rigid body 304 may shift due to the change. Then, by repeating such position changes, the behavior of each rigid body 304 in the cable simulation becomes stable. In this embodiment, the above constraint conditions correspond to physical constraint parameters for transitioning the behavior of the object to such a stable state.

ケーブルシミュレータ165は剛体304の位置を変更すると、すなわち剛体304の位置X(修正後の位置:Xcorrect)を算出すると、速度vを変更する(図12(C))。具体的には、ケーブルシミュレータ165は、Vcorrect=(X-X0)/Δtにより変更後の速度Vcorrectを算出し、算出された速度Vcorrectを、次のタイムステップのための速度v(図12(A)の速度v)に設定する。 When the cable simulator 165 changes the position of the rigid body 304, that is, when it calculates the position X of the rigid body 304 (corrected position: Xcorrect), it changes the velocity v (Figure 12 (C)). Specifically, the cable simulator 165 calculates the corrected velocity Vcorrect using Vcorrect = (X - X0) / Δt, and sets the calculated velocity Vcorrect as the velocity v for the next time step (velocity v in Figure 12 (A)).

上記は剛体304のx座標の位置更新を説明しているが、ケーブルシミュレータ165は、y座標位置およびz座標位置についても、x座標位置の更新と同様に更新することができる。 The above describes updating the x-coordinate position of the rigid body 304, but the cable simulator 165 can also update the y-coordinate position and z-coordinate position in the same manner as updating the x-coordinate position.

このように、モデル化された剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式(式147および図12に示す式)に従う演算を、機器挙動データ2520に基づいて実施することにより、剛体リンクの挙動を算出する。これにより、各タイムステップでは、剛体304が侵入していない状態(めり込みが解消された状態)である剛体304からなる剛体リンクについて、その挙動を算出することができる。 In this way, the behavior of the rigid body link is calculated by performing calculations based on the equipment behavior data 2520 according to equations (Equation 147 and the equation shown in FIG. 12) that represent the relationship in position and orientation between adjacent rigid bodies in the modeled rigid body link and the constraint conditions that correspond to the joints and are imposed on the relationship in position and orientation between the rigid bodies. As a result, at each time step, the behavior of the rigid body link made up of rigid body 304 in a state where rigid body 304 has not intruded (a state where the embedment has been resolved) can be calculated.

(g5.ケーブル340の硬さに基づく位置更新)
本実施の形態にかかるケーブルシミュレーションでは、ケーブル340の挙動を安定状態に移行させるための拘束条件にかかるパラメータとして、ケーブル340の硬さを表すパラメータ149を含めることができる。硬さパラメータ149としては、例えば、ケーブル340の材料に固有のパラメータStiffnessおよびパラメータDampingを含む。パラメータStiffnessは、剛体304の変形のしにくさを示し、例えばヤング率と等価である。また、パラメータDampingは、剛体304の振動に対する減衰特性を示す。
(g5. Position update based on stiffness of cable 340)
In the cable simulation according to this embodiment, a parameter 149 representing the stiffness of the cable 340 can be included as a parameter related to a constraint condition for transitioning the behavior of the cable 340 to a stable state. The stiffness parameter 149 includes, for example, a parameter Stiffness and a parameter Damping that are specific to the material of the cable 340. The parameter Stiffness indicates how difficult it is for the rigid body 304 to deform, and is equivalent to, for example, Young's modulus. The parameter Damping indicates the damping characteristic of the rigid body 304 against vibration.

パラメータDampingは、ケーブルシミュレーションにおいて、ケーブル340の振動を抑制するように作用する。具体的には、ロボット30に取付けられたケーブルガイド350は、ロボットエミュレータ160によって動く(挙動が変化する)ため、剛体304はロボット30の速度に応じて加速し、これに伴いケーブル340は振動し続けることになる。したがって、パラメータDampingを用いてケーブルシミュレーションが実施されることにより、ロボット30の挙動に伴いケーブルガイド350の位置が移動したときに、剛体304の速度を減速させてケーブル340の振動を抑制することが可能となる。 The parameter Damping acts to suppress vibration of the cable 340 in the cable simulation. Specifically, the cable guide 350 attached to the robot 30 is moved (its behavior changes) by the robot emulator 160, so the rigid body 304 accelerates according to the speed of the robot 30, and the cable 340 continues to vibrate accordingly. Therefore, by performing a cable simulation using the parameter Damping, it is possible to suppress vibration of the cable 340 by decelerating the speed of the rigid body 304 when the position of the cable guide 350 moves in accordance with the behavior of the robot 30.

ケーブルシミュレータ165は、以下のSTEP1、STEP2およびSTEP3に示す演算を実行することにより、ケーブル340の硬さに基づく位置更新を実施する。 The cable simulator 165 performs the calculations shown in STEP 1, STEP 2, and STEP 3 below to perform position updates based on the stiffness of the cable 340.

[STEP1]ケーブルシミュレータ165は、以下の(式1)の演算により、剛体304の直前のタイムステップで算出された位置(prevPositions[current])と現在のタイムステップで算出された位置(positions[current])から速度(var_velocity)を算出する。ケーブルシミュレータ165は、算出された速度に、(式2)~(式6)の演算により、重力と減衰、形を維持しようとする力を加える。 [STEP 1] The cable simulator 165 calculates the velocity (var_velocity) from the position (prevPositions[current]) calculated in the previous time step of the rigid body 304 and the position (positions[current]) calculated in the current time step, using the calculations of the following (Equation 1). The cable simulator 165 adds gravity, damping, and a force that tries to maintain the shape to the calculated velocity, using the calculations of (Equations 2) to (Equation 6).

var_velocity=(positions[current]-prevPositions[current])/prevDeltaTime(式1);
var_geometricError=distance-data.maxDistance(式2);この(式2)では、隣接する2つの剛体304の間の距離(distance)と許容最大距離である閾値(data.maxDistance)との差(var_geometricError)が算出される。ケーブルシミュレータ165は、(var_geometricError=0)の条件が満たされたと判定すると、隣接する2つの剛体304が衝突(一方が他方に侵入)しないと検出し、当該条件が満たされないと判定すると、当該衝突(侵入)があったと検出する。
var_velocity = (positions[current] - prevPositions[current]) / prevDeltaTime (Equation 1);
var_geometricError=distance-data.maxDistance (Formula 2); in this (Formula 2), the difference (var_geometricError) between the distance (distance) between two adjacent rigid bodies 304 and a threshold value (data.maxDistance) that is the maximum allowable distance is calculated. If the cable simulator 165 determines that the condition (var_geometricError=0) is satisfied, it detects that the two adjacent rigid bodies 304 do not collide (one penetrates the other), and if it determines that the condition is not satisfied, it detects that the collision (intrusion) has occurred.

positionForce(F)=stiffness ×- geometricError(式3);
velocity += positionForce * Time.deltaTime(式4);
velocity += Vector3.down * gravity * Time.deltaTime(式5);
velocity *= damping(式6);
[STEP2]ケーブルシミュレータ165は、上記の[STEP1]において算出した速度(velocity)に基づき、(式7)および(式8)を演算することより、現在のタイムステップにおける位置(positions[current])を更新する。
positionForce(F)=stiffness×−geometricError (Equation 3);
velocity += positionForce * Time.deltaTime (Equation 4);
velocity += Vector3.down * gravity * Time.deltaTime (Equation 5);
velocity *= damping (Eq. 6);
[STEP 2] The cable simulator 165 updates the positions (positions[current]) at the current time step by calculating (Equation 7) and (Equation 8) based on the velocity calculated in [STEP 1] above.

prevPositions[current] = positions[current](式7);
positions[current] = positions[current] + velocity * Time.deltaTime(式8);
[STEP3]ケーブルシミュレータ165は、剛体304が隣接する他の剛体304に侵入した(めり込んだ)と検出した場合、侵入を解消する(めり込まない)位置まで、現在位置(positions[current])を変更する。この位置の変更は、図12で示した位置更新に従い実施される。
prevPositions[current] = positions[current] (Equation 7);
positions[current] = positions[current] + velocity * Time.deltaTime (Equation 8);
[STEP 3] When the cable simulator 165 detects that the rigid body 304 has invaded (sunk into) another adjacent rigid body 304, it changes the current position (positions[current]) to a position where the intrusion is resolved (no sinking). This position change is performed in accordance with the position update shown in FIG. 12.

ケーブルシミュレータ165は、[STEP1]~[STEP3]の操作を、すべての剛体304のx、yおよびzの各座標位置に対して繰返す。 The cable simulator 165 repeats the operations of [STEP 1] to [STEP 3] for each of the x, y, and z coordinate positions of all rigid bodies 304.

これにより、各タイムスステップにおいて、剛体304それぞれの位置は、ケーブル340の材料に固有の硬さのパラメータ149に基づき算出さた位置であって、且つ侵入が解消(めり込みが解消)された位置となる。これにより、ケーブルシミュレータ165は、次のタイムステップのケーブルシミュレーションを、このような算出位置を用いて開始することができる。 As a result, at each time step, the position of each rigid body 304 is a position calculated based on the hardness parameter 149 specific to the material of the cable 340, and is a position where the intrusion (sinking) is eliminated. This allows the cable simulator 165 to start the cable simulation for the next time step using such calculated positions.

<H.フローチャート>
図13は、本実施の形態にかかるケーブルシミュレーションと、それに関連する処理を概略的に示すフローチャートである。図13を参照して、ケーブルシミュレータ165は、ケーブルパラメータ139からパラメータ(ケーブル340の長さ(Cable length)パラメータ、ケーブル340の取付け位置(Offset From Guide Cad Data)パラメータ)を取得し、ケーブルシミュレーションプログラム137に設定する(ステップS103)。これにより、各ケーブルガイド間のケーブル340の長さ、すなわち剛体304の個数が設定される。ケーブルシミュレーションの開始時には、ステップS103では、初期値140のパラメータが設定される。説明のために、各ケーブルガイド間のケーブル340の長さは同じである。
<H. Flowchart>
Fig. 13 is a flow chart showing the cable simulation and the associated processing according to the present embodiment. Referring to Fig. 13, the cable simulator 165 obtains parameters (the cable 340 length parameter and the cable 340 attachment position (Offset From Guide Cad Data) parameter) from the cable parameters 139 and sets them in the cable simulation program 137 (step S103). This sets the length of the cable 340 between each cable guide, i.e., the number of rigid bodies 304. At the start of the cable simulation, the parameters of the initial values 140 are set in step S103. For the sake of explanation, the length of the cable 340 between each cable guide is the same.

ケーブルシミュレータ165は、タイムステップtiに初期値(i=1)を設定する(ステップS105)。その後は、タイムステップを1ステップづつ更新(すなわち、i=i+1)しながら(ステップS121)、(i=n)の条件が満たされるまで(ステップS107でYES)、機器挙動データ2520に基づき、ステップS103で設定されたパラメータを用いて、ケーブルシミュレーションを実施する(ステップS109~S115)。 The cable simulator 165 sets the time step ti to an initial value (i=1) (step S105). After that, the cable simulator 165 updates the time step one step at a time (i.e., i=i+1) (step S121) and performs a cable simulation using the parameters set in step S103 based on the equipment behavior data 2520 until the condition (i=n) is satisfied (YES in step S107) (steps S109 to S115).

具体的には、ケーブルシミュレータ165は、機器挙動データ2520から、現在のタイムステップtiに対応する挙動データを読出し(ステップS109)、読出された挙動データに基づき、ステップS103で設定されたケーブルパラメータ139を用いて、ケーブル340に対応するオブジェクトの挙動を算出する(ステップS111)。ステップS111では、ケーブルシミュレータ165は、図11の式147で示す連立方程式と、図12の拘束条件に従う位置更新(ステップS11a)の方程式およびケーブル340の硬さパラメータ149に従う位置更新(ステップS11b)の方程式を用いて実施する。この拘束条件を用いた拘束方程式の演算には、例えばProjected Gauss-Seidel法を利用することができる。ステップS111で算出されたケーブル340の挙動を示すケーブル挙動データ2521は、ストレージ111に格納される。 Specifically, the cable simulator 165 reads out the behavior data corresponding to the current time step ti from the equipment behavior data 2520 (step S109), and calculates the behavior of the object corresponding to the cable 340 based on the behavior data read out using the cable parameters 139 set in step S103 (step S111). In step S111, the cable simulator 165 performs the calculation using the simultaneous equations shown in equation 147 in FIG. 11, the equation for position update according to the constraint conditions (step S11a) in FIG. 12, and the equation for position update according to the stiffness parameters 149 of the cable 340 (step S11b). For example, the Projected Gauss-Seidel method can be used to calculate the constraint equations using these constraint conditions. The cable behavior data 2521 indicating the behavior of the cable 340 calculated in step S111 is stored in the storage 111.

ステップS111において、現在のタイムステップtiにおけるオブジェクトの位置(各剛体304の位置)が算出されると、負荷算出モジュール166は、当該タイムステップtiのケーブルシミュレーション結果であるケーブル挙動データ2521に基づいて、剛体リンクにかかる負荷を算出し(ステップS113)、算出された負荷情報142を出力する(ステップS115)。負荷情報142は、ストレージ111に格納される。その後、次のタイムステップtiに進み(ステップS121)、ステップS107に戻る。ステップS107では、ケーブルシミュレータ165は、(ti>tn)の条件が満たされるかを判定する。 When the position of the object (the position of each rigid body 304) at the current time step ti is calculated in step S111, the load calculation module 166 calculates the load on the rigid link based on the cable behavior data 2521, which is the cable simulation result for that time step ti (step S113), and outputs the calculated load information 142 (step S115). The load information 142 is stored in the storage 111. Then, the process proceeds to the next time step ti (step S121) and returns to step S107. In step S107, the cable simulator 165 determines whether the condition (ti>tn) is satisfied.

(ti>tn)の条件が満たされないときは(ステップS107でNO)、ステップS109に移行するが、当該条件は満たされると判定されると(ステップS107でYES)、ケーブルシミュレータ165は、ストレージ111に次のケーブルパラメータ139が格納されているか、すなわち候補値141が格納されているかを判定する(ステップS123)。 If the condition (ti>tn) is not satisfied (NO in step S107), the process proceeds to step S109. However, if it is determined that the condition is satisfied (YES in step S107), the cable simulator 165 determines whether the next cable parameter 139 is stored in the storage 111, i.e., whether the candidate value 141 is stored (step S123).

次のケーブルパラメータ139が格納されていないと判定されると(ステップS123でNO)、処理は終了するが、次のケーブルパラメータ139が格納されていると判定されると(ステップS123でYES)、ステップS103に戻る。これにより、次のケーブルパラメータ139(候補値141)が読出されて(ステップS103)、次のケーブルパラメータ139を用いたケーブルシミュレーション(ステップS105~ステップS121)が実施される。 If it is determined that the next cable parameter 139 is not stored (NO in step S123), the process ends. However, if it is determined that the next cable parameter 139 is stored (YES in step S123), the process returns to step S103. This causes the next cable parameter 139 (candidate value 141) to be read (step S103), and a cable simulation (steps S105 to S121) is performed using the next cable parameter 139.

図13の処理によれば、ケーブルパラメータ139(初期値140、候補値141)のそれぞれに関連付けて、ケーブルのオブジェクト(剛体リンク)の挙動が算出されて(ステップS111)、算出結果であるケーブル挙動データ2521およびケーブル挙動データ2521に基づく負荷情報142が格納される(図9)。 According to the process of FIG. 13, the behavior of the cable object (rigid link) is calculated (step S111) in association with each of the cable parameters 139 (initial value 140, candidate value 141), and the cable behavior data 2521, which is the calculation result, and the load information 142 based on the cable behavior data 2521 are stored (FIG. 9).

<I.負荷の算出>
負荷算出モジュール166は、ケーブル挙動データ2521に基づき、図14に示すような、負荷情報142を算出する。本実施の形態では、ケーブル340にかかる負荷の種類1412として、曲げ、伸び、ひねり、衝突の回数、反発力を含むが、これらに限定されない。図14は、本実施の形態にかかる負荷情報142の一例を模式的に示す図である。図14では、ケーブル挙動データ(0)、ケーブル挙動データ(1)およびケーブル挙動データ(2)それぞれに関連付けられる、負荷情報(0)、負荷情報(1)および負荷情報(2)が示される。負荷情報(0)~負荷情報(2)は、同様の項目を含むので、これらに共通した説明では負荷情報142と総称する。
<I. Load Calculation>
The load calculation module 166 calculates the load information 142 as shown in FIG. 14 based on the cable behavior data 2521. In this embodiment, the type of load 1412 applied to the cable 340 includes, but is not limited to, bending, stretching, twisting, the number of collisions, and repulsive force. FIG. 14 is a diagram showing an example of the load information 142 according to this embodiment. In FIG. 14, load information (0), load information (1), and load information (2) associated with cable behavior data (0), cable behavior data (1), and cable behavior data (2), respectively, are shown. Since the load information (0) to the load information (2) include similar items, they are collectively referred to as the load information 142 in a common description.

図14を参照して、負荷情報142は、各ケーブルガイド間の位置1411毎に、当該ケーブルガイド間の剛体リンクを構成する各剛体304にかかる負荷であって、種類1412で示す負荷を含む。ケーブルガイド間の剛体リンクは、例えばj個の剛体304からなり、図14の位置1411は、各剛体304の位置(1、2,3,…jで示す位置)で特定されている。 Referring to FIG. 14, the load information 142 is the load applied to each rigid body 304 constituting the rigid link between the cable guides for each position 1411 between the cable guides, and includes the load indicated by type 1412. The rigid link between the cable guides is made up of, for example, j rigid bodies 304, and the position 1411 in FIG. 14 is specified by the position of each rigid body 304 (positions indicated by 1, 2, 3, ... j).

負荷算出モジュール166は、各剛体304の挙動(位置と姿勢)に基づき、所定演算に従い当該剛体304、すなわち各位置1411にかかる負荷を算出する。例えば、各剛体304のひねり、曲げは、当該剛体304と隣接する剛体304の挙動から算出され、伸びは、隣接する剛体304間の距離(距離が大きいほど引っ張られている)から算出され、反発力は、上記に述べた衝突時に侵入した距離(距離が大きいほど反発力は大きい)から算出される。なお、負荷算出モジュール166が算出する衝突には、剛体304とは異なるオブジェクト(ロボット30、ワーク232、コンベア230など)との衝突が含まれてもよい。 The load calculation module 166 calculates the load acting on each rigid body 304, i.e., each position 1411, according to a predetermined calculation based on the behavior (position and posture) of each rigid body 304. For example, the twist and bend of each rigid body 304 is calculated from the behavior of the rigid body 304 and adjacent rigid bodies 304, the extension is calculated from the distance between adjacent rigid bodies 304 (the greater the distance, the greater the pulling force), and the repulsive force is calculated from the penetration distance at the time of the collision described above (the greater the distance, the greater the repulsive force). Note that the collision calculated by the load calculation module 166 may include a collision with an object other than the rigid body 304 (such as the robot 30, the workpiece 232, or the conveyor 230).

<J.評価処理>
評価モジュール167は、負荷情報142(負荷情報(0)、負荷情報(1)および負荷情報(2))のそれぞれに基づき、当該負荷情報142に関連付けられた剛体リンクの挙動(ケーブル挙動データ2521)を評価する。評価モジュール167は、評価結果である評価データ144(評価データ(0)、評価データ(1)および評価データ(2))を、当該ケーブル挙動データ2521に関連付けて格納する(図9)。
J. Evaluation Process
Based on each of the load information 142 (load information (0), load information (1), and load information (2)), the evaluation module 167 evaluates the behavior (cable behavior data 2521) of the rigid link associated with the load information 142. The evaluation module 167 stores the evaluation results, that is, evaluation data 144 (evaluation data (0), evaluation data (1), and evaluation data (2)), in association with the cable behavior data 2521 ( FIG. 9 ).

図15は、本実施の形態にかかる評価処理のフローチャートである。評価モジュール167は、操作ユニット106からのユーザー操作に基づき、ケーブル挙動データ2521を評価するための条件を、評価プログラム143に設定する(ステップS131)。評価の所定条件は、例えば、負荷の種類1412毎の負荷の大きさの閾値を用いて示される。より具体的には、所定条件は、対応の負荷の値が最小であるケーブル挙動データ2521の算出に用いたケーブルパラメータ139を、ケーブル引き回しの設計のための最適値と特定してもよい。 FIG. 15 is a flowchart of the evaluation process according to this embodiment. The evaluation module 167 sets conditions for evaluating the cable behavior data 2521 in the evaluation program 143 based on user operations from the operation unit 106 (step S131). The predetermined conditions for evaluation are indicated, for example, using a threshold value of the load magnitude for each load type 1412. More specifically, the predetermined conditions may specify the cable parameters 139 used in calculating the cable behavior data 2521 for which the corresponding load value is the smallest, as the optimal values for designing the cable routing.

評価モジュール167は、評価の所定条件に基づき、各ケーブルパラメータ139に関連付けられた負荷情報142を検索する(ステップS133)。検索の結果に基づき、評価モジュール167は、ケーブルパラメータ139それぞれに関連付けられた負荷情報142のうちから、所定条件を満たすような負荷情報142が検索されるか否かを判定する(ステップS135)。具体的には、全ての負荷の種類1412の値が、閾値未満となるような負荷情報142が検索できるか否かを判定する。 The evaluation module 167 searches for load information 142 associated with each cable parameter 139 based on the specified evaluation conditions (step S133). Based on the search results, the evaluation module 167 determines whether or not load information 142 that satisfies the specified conditions can be found from the load information 142 associated with each cable parameter 139 (step S135). Specifically, it determines whether or not load information 142 can be found in which the values of all load types 1412 are less than the threshold value.

評価モジュール167は、所定条件を満たす負荷情報142が検索されないと判定すると(ステップS135でNO)、所定条件に一致するケーブル挙動データ2521は算出されていない、すなわちケーブルパラメータ139は設定されていない旨を出力する(ステップS139)。また、評価モジュール167は、所定条件を満たすような負荷情報142が検索されたと判定すると(ステップS135でYES)、所定条件に一致するケーブル挙動データ2521が算出されたので、当該算出に用いられた(当該算出時にステップS103で設定された)ケーブルパラメータ139、すなわち当該負荷情報142に関連付けられたケーブルパラメータ139を検索して出力する(ステップS137)。 When the evaluation module 167 determines that the load information 142 satisfying the predetermined condition has not been found (NO in step S135), it outputs that the cable behavior data 2521 that matches the predetermined condition has not been calculated, i.e., the cable parameters 139 have not been set (step S139). When the evaluation module 167 determines that the load information 142 satisfying the predetermined condition has been found (YES in step S135), the cable behavior data 2521 that matches the predetermined condition has been calculated, so it searches for and outputs the cable parameters 139 used in the calculation (set in step S103 at the time of the calculation), i.e., the cable parameters 139 associated with the load information 142 (step S137).

ユーザーは、出力されたケーブルパラメータ139(ケーブル長(Cable Length)および取付け位置(Offset From Guide Cad Data)のパラメータ)から、評価の所定条件を満たすような最適なケーブル長と取付け位置となる、ケーブル340の引き回しを事前に設計することができる。また、引き回しの事前設計に従えば、したがってケーブル340の引き回し作業にかかる時間を短縮できるとともに、ケーブルガイド350などの引き回しの治具を事前に設計することも可能となる。 The user can design in advance the routing of the cable 340 from the output cable parameters 139 (parameters for cable length (Cable Length) and installation position (Offset From Guide Cad Data)) to provide the optimal cable length and installation position that satisfies the specified evaluation conditions. In addition, by following the pre-design of the routing, the time required for the task of routing the cable 340 can be shortened, and it is also possible to design the routing jig, such as the cable guide 350, in advance.

<K.表示例>
図16は、本実施の形態にかかる負荷情報142の表示画面の一例を示す図である。負荷算出モジュール166または評価モジュール167は、ディスプレイ109に、負荷情報142に基づく画像を表示する。図16では、例えば、曲げの負荷情報142のグラフが示される。グラフは、横軸に各剛体304の識別子(セグメント番号)である位置情報がとられて、縦軸には、曲げの値がとられている。また、図16では、タイムステップ毎のグラフが、タイムステップの時系列に従い、画面の奥行き方向に並べて表示されている。例えば3D表示により、各タイムステップにおけるオブジェクトの各位置にかかる負荷(曲げ)の大きさと、当該位置における負荷の大きさの経時的な変動を一画面で示すことができる。
<K. Display example>
16 is a diagram showing an example of a display screen of the load information 142 according to the present embodiment. The load calculation module 166 or the evaluation module 167 displays an image based on the load information 142 on the display 109. For example, a graph of bending load information 142 is shown in FIG. 1. The horizontal axis of the graph represents position information, which is an identifier (segment number) of each rigid body 304, and the vertical axis represents bending values. In addition, in FIG. 16, the graphs for each time step are displayed in the depth direction of the screen according to the time step chronology. For example, the load applied to each position of the object at each time step can be displayed in 3D. The magnitude of the bending and the variation of the magnitude of the load at that location over time can be shown on one screen.

ユーザーは、図16の画面から、ケーブル340のオブジェクトにおいて大きな負荷がかかる部分、または全体にかかる負荷を視認できるとともに、負荷情報142からオブジェクトに対応するケーブル340の寿命を予測することも可能となる。例えば、大きな負荷がかかる部分を特定するために、評価モジュール167は、各剛体304の識別子に対応した負荷のうち、閾値を超える負荷については、表示態様(表示色など)を変更する。図16は、曲げの情報の画面を例示するが、他の種類の負荷情報142であっても同様に表示することができる。 From the screen of FIG. 16, the user can visually check the parts of the cable 340 object that are subject to heavy loads or the load that is applied to the entire object, and can also predict the lifespan of the cable 340 corresponding to the object from the load information 142. For example, in order to identify the parts that are subject to heavy loads, the evaluation module 167 changes the display mode (display color, etc.) for loads that exceed a threshold value among the loads corresponding to the identifiers of each rigid body 304. FIG. 16 shows an example of a bending information screen, but other types of load information 142 can also be displayed in a similar manner.

また、3Dビジュアライザ164は、シミュレーション結果である機器挙動データ2520およびケーブル挙動データ2521を用いて、3次元仮想空間をビジュアル化する画像データを生成してもよい。ディスプレイ109は、この画像データに基づく画像を表示する。これにより、ディスプレイ109は、ロボット30に取付けられたケーブル340がロボット30の動きに連動して動くような3次元画像を表示することができる。 The 3D visualizer 164 may also generate image data that visualizes the three-dimensional virtual space using the equipment behavior data 2520 and cable behavior data 2521, which are the results of the simulation. The display 109 displays an image based on this image data. This allows the display 109 to display a three-dimensional image in which the cable 340 attached to the robot 30 moves in conjunction with the movement of the robot 30.

<L.プログラム>
ケーブルシミュレーションは、図4の情報処理装置100のプロセッサ102がストレージ111などのメモリに格納されるプログラムを実行することにより提供される構成を例示したが、これらの提供される構成の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、情報処理装置100の主要部を、汎用的なアーキテクチャに従うハードウェアを用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
<L. Program>
The cable simulation is exemplified by a configuration provided by the processor 102 of the information processing device 100 in FIG. 4 executing a program stored in a memory such as the storage 111, but some or all of the provided configuration may be implemented using a dedicated hardware circuit (for example, an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array)). Alternatively, the main part of the information processing device 100 may be realized using hardware that conforms to a general-purpose architecture. In this case, virtualization technology may be used to run multiple OSs with different uses in parallel, and necessary applications may be run on each OS.

また、情報処理装置100は、プロセッサを複数個備えてもよい。この場合は、ケーブルシミュレーションは、複数のプロセッサにより実行することが可能である。また、プロセッサ102が複数のコアを含む場合は、ケーブルシミュレーションは、プロセッサ102内の複数のコアにより実行することが可能である。 In addition, the information processing device 100 may include multiple processors. In this case, the cable simulation can be performed by the multiple processors. In addition, if the processor 102 includes multiple cores, the cable simulation can be performed by the multiple cores in the processor 102.

情報処理装置100の記憶媒体114は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。情報処理装置100のプロセッサ102は、これら記憶媒体から、上記に述べたケーブルシミュレーションにかかるプログラムまたは機器挙動データ2520を取得してもよい。 The storage medium 114 of the information processing device 100 is a medium that stores information such as a program by electrical, magnetic, optical, mechanical, or chemical action so that a computer or other device, machine, etc. can read the recorded information such as the program. The processor 102 of the information processing device 100 may acquire the program or equipment behavior data 2520 related to the cable simulation described above from these storage media.

<M.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
機器(30)に取付けられるケーブル(340)の挙動を算出するシミュレーション装置(1B)であって、
前記機器に対応する仮想空間に配置された第1の対象の挙動(2520)に基づき、前記ケーブルの取付けに関するパラメータ(139)を用いて、当該ケーブルに対応する前記仮想空間に配置された第2の対象の挙動(304、305)を算出するケーブル挙動算出部(165)と、
前記ケーブル挙動算出部により算出された前記第2の対象の挙動を、当該挙動に基づき評価する評価部(167)とを備える、シミュレーション装置。
[構成2]
前記第1の対象の挙動は、所定のタイムステップ毎(ti)に算出された挙動を含み、
前記ケーブル挙動算出部は、
前記タイムステップ毎に、当該タイムステップに対応の前記第1の対象の挙動に基づき、前記パラメータを用いて、前記第2の対象の挙動を算出する、構成1に記載のシミュレーション装置。
[構成3]
前記ケーブル挙動算出部は、物理シミュレータを含む、構成2に記載のシミュレーション装置。
[構成4]
前記第2の対象は、隣接する剛体(304)間をジョイント(304)で接合して連ねられてモデル化された剛体リンクを含み、
前記物理シミュレータは、
前記モデル化された前記剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、前記ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、前記第1の対象の挙動に基づいて実施することにより、前記第2の対象の挙動を算出する、構成3に記載のシミュレーション装置。
[構成5]
前記ケーブル挙動算出部により算出された前記第2の対象の挙動に基づき、当該第2の対象にかかる負荷を算出する負荷算出部(166)を、さらに備える、構成4に記載のシミュレーション装置。
[構成6]
前記負荷は、前記第2の対象が備える各前記剛体にかかる負荷を含む、構成5に記載のシミュレーション装置。
[構成7]
前記タイムステップの時系列に従い、各タイムステップで算出された前記第2の対象の挙動に基づく前記負荷を表示する、構成5または6に記載のシミュレーション装置。
[構成8]
閾値を超える負荷の表示態様を変更する、構成7に記載のシミュレーション装置。
[構成9]
前記評価部は、
前記負荷算出部により算出された前記負荷に基づき、前記第2の対象の挙動を評価する、構成5から8のいずれか1に記載のシミュレーション装置。
[構成10]
前記パラメータを設定するパラメータ設定部(145)を備え、
前記負荷が所定条件を満たすとき、前記第2の対象の挙動の算出時に設定されたパラメータを出力する、構成5から7のいずれか1に記載のシミュレーション装置。
[構成11]
前記パラメータは、前記ケーブルの長さまたは前記ケーブルの取付け位置(140、141)を含む、構成1から8のいずれか1に記載のシミュレーション装置。
[構成12]
前記パラメータは、前記ケーブルの硬さを表すパラメータ(149)を含む、構成1から11のいずれか1に記載のシミュレーション装置。
[構成13]
前記機器は、ロボット(30)を含み、
前記第1の対象の挙動は、前記ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出される、構成1から12のいずれか1に記載のシミュレーション装置。
[構成14]
前記仮想空間をビジュアル化した画像を生成する画像生成部(164)を、さらに備える、構成1から13のいずれか1に記載のシミュレーション装置。
[構成15]
コンピュータ(100)に、機器(30)に取付けられるケーブル(340)の挙動を算出する方法を実行させるシミュレーションプログラム(138)であって、
前記方法は、
前記機器に対応する仮想空間に配置された第1の対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出するステップ(S100)と、
算出された前記第2の対象の挙動を、当該挙動に基づき評価するステップ(S130)とを備える、シミュレーションプログラム。
<M. Note>
The present embodiment as described above includes the following technical idea.
[Configuration 1]
A simulation device (1B) for calculating a behavior of a cable (340) attached to a device (30), comprising:
a cable behavior calculation unit (165) that calculates behaviors (304, 305) of a second object that is placed in the virtual space and corresponds to the cable, based on a behavior (2520) of a first object that is placed in the virtual space and corresponds to the device, using parameters (139) related to the installation of the cable;
and an evaluation unit (167) that evaluates the behavior of the second object calculated by the cable behavior calculation unit based on the behavior.
[Configuration 2]
The behavior of the first target includes a behavior calculated for each predetermined time step (ti),
The cable behavior calculation unit
2. The simulation apparatus according to configuration 1, further comprising: a calculation unit for calculating, for each time step, a behavior of the second object based on a behavior of the first object corresponding to the time step, using the parameters.
[Configuration 3]
3. The simulation apparatus according to configuration 2, wherein the cable behavior calculation unit includes a physical simulator.
[Configuration 4]
The second object includes a rigid body link modeled as a series of adjacent rigid bodies (304) connected by joints (304);
The physical simulator includes:
the simulation device according to configuration 3, wherein the behavior of the second object is calculated by performing, based on the behavior of the first object, an operation according to an equation expressing a relationship in positions and orientations between adjacent rigid bodies in the modeled rigid link and a constraint condition corresponding to the joint and imposed on the relationship in positions and orientations between the rigid bodies.
[Configuration 5]
5. The simulation apparatus according to configuration 4, further comprising: a load calculation unit (166) that calculates a load on the second target based on the behavior of the second target calculated by the cable behavior calculation unit.
[Configuration 6]
6. The simulation apparatus of claim 5, wherein the load includes a load acting on each of the rigid bodies of the second object.
[Configuration 7]
The simulation device according to configuration 5 or 6, further comprising: a display unit that displays the load based on the behavior of the second object calculated at each time step in accordance with a time series of the time steps.
[Configuration 8]
8. The simulation device according to configuration 7, further comprising: a display mode of a load exceeding a threshold value being changed.
[Configuration 9]
The evaluation unit is
The simulation device according to any one of configurations 5 to 8, further comprising: a load calculation unit that calculates a behavior of the second target based on the load calculated by the load calculation unit.
[Configuration 10]
A parameter setting unit (145) for setting the parameters,
8. The simulation device according to any one of configurations 5 to 7, further comprising: a parameter set at the time of calculating the behavior of the second target, the parameter being output when the load satisfies a predetermined condition.
[Configuration 11]
9. The simulation apparatus of any one of configurations 1 to 8, wherein the parameters include a length of the cable or an attachment position of the cable (140, 141).
[Configuration 12]
12. The simulation apparatus of any one of configurations 1 to 11, wherein the parameters include a parameter (149) representing a stiffness of the cable.
[Configuration 13]
The apparatus includes a robot (30);
13. The simulation device according to any one of configurations 1 to 12, wherein the behavior of the first object is calculated by emulation of a robot program having a command code for operating the robot.
[Configuration 14]
14. The simulation device according to any one of configurations 1 to 13, further comprising an image generation unit (164) that generates an image that visualizes the virtual space.
[Configuration 15]
A simulation program (138) for causing a computer (100) to execute a method for calculating a behavior of a cable (340) attached to a device (30), comprising:
The method comprises:
A step (S100) of calculating a behavior of a second object, which is placed in the virtual space and corresponds to the cable, based on a behavior of a first object, which is placed in the virtual space and corresponds to the device, using a parameter related to the installation of the cable;
and evaluating the calculated behavior of the second object based on the behavior (S130).

今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed herein should be considered to be illustrative and not restrictive in all respects. The scope of the present invention is indicated by the claims, not by the description of the embodiments above, and is intended to include all modifications within the meaning and scope of the claims.

1 シミュレーション装置、1A システムシミュレーション装置、1B ケーブルシミュレーション装置、30 ロボット、100 情報処理装置、102 プロセッサ、104 主メモリ、105 仮想空間情報、106 操作ユニット、108 出力ユニット、109 ディスプレイ、111 ストレージ、112 光学ドライブ、114 記憶媒体、120 仮想時刻生成プログラム、121 中継プログラム、122 物理シミュレーションプログラム、124 物理シミュレーションパラメータ、126 シミュレーションプログラム、130 ロボットエミュレーションプログラム、132 ロボットパラメータ、134 統合プログラム、135 ビジュアライズデータ、136 画像処理プログラム、137 ケーブルシミュレーションプログラム、138 負荷算出プログラム、139 ケーブルパラメータ、140 初期値、141 候補値、142 負荷情報、143 評価プログラム、144 評価データ、145 パラメータ設定プログラム、146 ケーブルデータ、147 方程式、149 硬さパラメータ、150 仮想空間情報管理モジュール、154 周期生成モジュール、155 ワーク挙動シミュレータ、156 物理シミュレータ、160 ロボットエミュレータ、164 3Dビジュアライザ、165 ケーブルシミュレータ、166 負荷算出モジュール、167 評価モジュール、210 ロボットハンド、252 挙動データ、253 画像データ、301 アーム、304 剛体、305 関節、340,341,342,343 ケーブル、350,351,352 ケーブルガイド、2520 機器挙動データ、2521 ケーブル挙動データ、2530 機器画像データ、2531 ケーブル画像。 1 Simulation device, 1A System simulation device, 1B Cable simulation device, 30 Robot, 100 Information processing device, 102 Processor, 104 Main memory, 105 Virtual space information, 106 Operation unit, 108 Output unit, 109 Display, 111 Storage, 112 Optical drive, 114 Storage medium, 120 Virtual time generation program, 121 Relay program, 122 Physical simulation program, 124 Physical simulation parameters, 126 Simulation program, 130 Robot emulation program, 132 Robot parameters, 134 Integration program, 135 Visualization data, 136 Image processing program, 137 Cable simulation program, 138 Load calculation program, 139 Cable parameters, 140 Initial value, 141 Candidate value, 142 Load information, 143 Evaluation program, 144 Evaluation data, 145 Parameter setting program, 146 Cable data, 147 Equation, 149 Hardness parameters, 150 Virtual space information management module, 154 Period generation module, 155 Work behavior simulator, 156 Physical simulator, 160 Robot emulator, 164 3D visualizer, 165 Cable simulator, 166 Load calculation module, 167 Evaluation module, 210 Robot hand, 252 Behavior data, 253 Image data, 301 Arm, 304 Rigid body, 305 Joint, 340, 341, 342, 343 Cable, 350, 351, 352 Cable guide, 2520 Equipment behavior data, 2521 Cable behavior data, 2530 Equipment image data, 2531 Cable image.

Claims (14)

ネットワークを介して通信する指令に従って動作が制御される機器について、当該機器に取付けられるケーブルの挙動を算出するシミュレーション装置であって、
前記機器に対応する仮想空間に配置された第1の対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出するケーブル挙動算出部と、
前記ケーブル挙動算出部により算出された前記第2の対象の挙動を、当該挙動に基づき評価する評価部とを備え
前記第1の対象の挙動は、前記ネットワークの通信周期に基づく周期を示すタイムステップ毎に算出された挙動を含み、
前記ケーブル挙動算出部は、
前記タイムステップ毎に、当該タイムステップに対応の前記第1の対象の挙動に基づき、前記パラメータを用いて、前記第2の対象の挙動を算出する、シミュレーション装置。
A simulation device that calculates behavior of a cable attached to a device whose operation is controlled according to commands communicated via a network, comprising:
a cable behavior calculation unit that calculates a behavior of a second object that is placed in the virtual space and corresponds to the cable, based on a behavior of a first object that is placed in the virtual space and corresponds to the device, by using a parameter related to installation of the cable;
an evaluation unit that evaluates the behavior of the second object calculated by the cable behavior calculation unit based on the behavior ,
The behavior of the first target includes a behavior calculated for each time step indicating a period based on a communication period of the network,
The cable behavior calculation unit
A simulation device that calculates, for each time step, a behavior of the second object based on the behavior of the first object corresponding to that time step, using the parameters .
前記ケーブル挙動算出部は、物理シミュレータを含む、請求項に記載のシミュレーション装置。 The simulation device according to claim 1 , wherein the cable behavior calculation unit includes a physical simulator. 前記第2の対象は、隣接する剛体間をジョイントで接合して連ねられてモデル化された剛体リンクを含み、
前記物理シミュレータは、
前記モデル化された前記剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、前記ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、前記第1の対象の挙動に基づいて実施することにより、前記第2の対象の挙動を算出する、請求項に記載のシミュレーション装置。
The second object includes a rigid body link modeled by connecting adjacent rigid bodies with joints;
The physical simulator includes:
3. The simulation device according to claim 2, wherein the behavior of the second object is calculated by performing, based on the behavior of the first object, an operation according to an equation that represents a relationship in positions and orientations between adjacent rigid bodies in the modeled rigid link and a constraint condition that corresponds to the joint and is imposed on the relationship in positions and orientations between the rigid bodies.
前記ケーブル挙動算出部により算出された前記第2の対象の挙動に基づき、当該第2の対象にかかる負荷を算出する負荷算出部を、さらに備える、請求項に記載のシミュレーション装置。 The simulation device according to claim 3 , further comprising a load calculation unit that calculates a load acting on the second target based on the behavior of the second target calculated by the cable behavior calculation unit. 前記負荷は、前記第2の対象が備える各前記剛体にかかる負荷を含む、請求項に記載のシミュレーション装置。 The simulation apparatus according to claim 4 , wherein the load includes a load applied to each of the rigid bodies included in the second target. 前記タイムステップの時系列に従い、各タイムステップで算出された前記第2の対象の挙動に基づく前記負荷を表示する、請求項またはに記載のシミュレーション装置。 The simulation device according to claim 4 , further comprising : a display unit configured to display the load based on the behavior of the second target calculated at each time step in accordance with a time series of the time steps. 閾値を超える負荷の表示態様を変更する、請求項に記載のシミュレーション装置。 The simulation device according to claim 6 , wherein a display manner of a load exceeding a threshold value is changed. 前記評価部は、
前記負荷算出部により算出された前記負荷に基づき、前記第2の対象の挙動を評価する、請求項からのいずれか1項に記載のシミュレーション装置。
The evaluation unit is
The simulation device according to claim 4 , further comprising: a load calculation unit that calculates a behavior of the second target based on the load calculated by the load calculation unit.
前記パラメータを設定するパラメータ設定部を備え、
前記負荷が所定条件を満たすとき、前記第2の対象の挙動の算出時に設定されたパラメータを出力する、請求項からのいずれか1項に記載のシミュレーション装置。
A parameter setting unit that sets the parameters,
The simulation device according to claim 4 , further comprising: a parameter set at the time of calculating the behavior of the second target, the parameter being output when the load satisfies a predetermined condition.
前記パラメータは、前記ケーブルの長さまたは前記ケーブルの取付け位置を含む、請求項1からのいずれか1項に記載のシミュレーション装置。 The simulation device according to claim 1 , wherein the parameters include a length of the cable or an attachment position of the cable. 前記パラメータは、前記ケーブルの硬さを表すパラメータを含む、請求項1から10のいずれか1項に記載のシミュレーション装置。 The simulation device according to claim 1 , wherein the parameters include a parameter representing a stiffness of the cable. 前記機器は、ロボットを含み、
前記第1の対象の挙動は、前記ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出される、請求項1から11のいずれか1項に記載のシミュレーション装置。
The device includes a robot;
The simulation device according to claim 1 , wherein the behavior of the first target is calculated by emulation of a robot program having a command code for operating the robot.
前記仮想空間をビジュアル化した画像を生成する画像生成部を、さらに備える、請求項1から12のいずれか1項に記載のシミュレーション装置。 The simulation device according to claim 1 , further comprising an image generation unit that generates an image that visualizes the virtual space. ネットワークを介して通信する指令に従って動作が制御される機器について、当該機器に取付けられるケーブルの挙動を算出する方法を、コンピュータに実行させるシミュレーションプログラムであって、
前記方法は、
前記機器に対応する仮想空間に配置された第1の対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出するステップと、
算出された前記第2の対象の挙動を、当該挙動に基づき評価するステップとを備え、
前記第1の対象の挙動は、前記ネットワークの通信周期に基づく周期を示すタイムステップ毎に算出された挙動を含み、
前記第2の対象の挙動を算出するステップでは、
前記タイムステップ毎に、当該タイムステップに対応の前記第1の対象の挙動に基づき、前記パラメータを用いて、前記第2の対象の挙動が算出される、シミュレーションプログラム。
A simulation program for causing a computer to execute a method for calculating behavior of a cable attached to a device whose operation is controlled according to commands communicated via a network, the method comprising:
The method comprises:
calculating a behavior of a second object, which is placed in a virtual space corresponding to the cable, based on a behavior of a first object, which is placed in the virtual space corresponding to the device, by using a parameter related to the installation of the cable;
and evaluating the calculated behavior of the second object based on the behavior ,
The behavior of the first target includes a behavior calculated for each time step indicating a period based on a communication period of the network,
In the step of calculating the behavior of the second target,
a behavior of the second object is calculated for each time step using the parameters based on the behavior of the first object corresponding to that time step .
JP2020008221A 2020-01-22 2020-01-22 Simulation device and simulation program Active JP7467932B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020008221A JP7467932B2 (en) 2020-01-22 2020-01-22 Simulation device and simulation program
PCT/JP2020/047252 WO2021149419A1 (en) 2020-01-22 2020-12-17 Simulation device, and simulation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020008221A JP7467932B2 (en) 2020-01-22 2020-01-22 Simulation device and simulation program

Publications (2)

Publication Number Publication Date
JP2021117519A JP2021117519A (en) 2021-08-10
JP7467932B2 true JP7467932B2 (en) 2024-04-16

Family

ID=76991680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020008221A Active JP7467932B2 (en) 2020-01-22 2020-01-22 Simulation device and simulation program

Country Status (2)

Country Link
JP (1) JP7467932B2 (en)
WO (1) WO2021149419A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11886174B2 (en) 2020-07-31 2024-01-30 Dassault Systemes Americas Corp. Virtualized cable modeling for manufacturing resource simulation
JP7694271B2 (en) * 2021-09-03 2025-06-18 オムロン株式会社 Simulation system, simulation method, and simulation program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073701A (en) 2000-08-30 2002-03-12 Toyota Central Res & Dev Lab Inc Assembly device and assembly method
WO2004104868A1 (en) 2003-05-19 2004-12-02 Fujitsu Limited Harness design support device, harness design support program, and computer-readable recording medium having the program recorded therein
JP2019036014A (en) 2017-08-10 2019-03-07 オムロン株式会社 Information processing apparatus, information processing method and program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2993341B2 (en) * 1993-12-24 1999-12-20 日産自動車株式会社 Simulation method of wire rod

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073701A (en) 2000-08-30 2002-03-12 Toyota Central Res & Dev Lab Inc Assembly device and assembly method
WO2004104868A1 (en) 2003-05-19 2004-12-02 Fujitsu Limited Harness design support device, harness design support program, and computer-readable recording medium having the program recorded therein
JP2019036014A (en) 2017-08-10 2019-03-07 オムロン株式会社 Information processing apparatus, information processing method and program

Also Published As

Publication number Publication date
JP2021117519A (en) 2021-08-10
WO2021149419A1 (en) 2021-07-29

Similar Documents

Publication Publication Date Title
JP7729367B2 (en) Simulation device, simulation program, and simulation method
JP7556283B2 (en) Simulation device and simulation program
US9387589B2 (en) Visual debugging of robotic tasks
US9694495B1 (en) Virtual tools for programming a robot arm
JP6419323B2 (en) Multi-axis mechanical device simulator, operation command device design support device, motor control device design support device, and motor capacity selection device
CN106181964A (en) Robot program production system
TWI781708B (en) Learning apparatus, learning method, learning program, control apparatus, control method, and control program
WO2022208983A1 (en) Simulation-in-the-loop tuning of robot parameters for system modeling and control
JP7275840B2 (en) simulation device
JP7467932B2 (en) Simulation device and simulation program
EP4052865A1 (en) Information processing apparatus, robot system, information processing method, program, and recording medium
JP7475841B2 (en) Information processing method, robot system, article manufacturing method, and information processing device
JP7447568B2 (en) Simulation equipment and programs
Velarde-Sanchez et al. 5-DOF manipulator simulation based on MATLAB-Simulink methodology
Zou et al. Development of robot programming system through the use of augmented reality for assembly tasks
JP7424122B2 (en) Simulation equipment and programs
WO2018180298A1 (en) Robot teaching device, method for controlling robot teaching device, and robot teaching program
Kim et al. Kinematic Implementation of 3-DOF 2-Link Type Vehicle Simulator: Kinematic analysis and motion control method for 3-DOF 2-link type vehicle simulator
WO2018180297A1 (en) Robot teaching device, robot teaching program, and method for controlling robot teaching device
da Rosa et al. Design and Implementation of a Platform for Controlling the Mentor Robotic Arm
JP2022135939A (en) Information processor, robot system, article manufacturing method, information processing method, program, and recording medium
Rosario et al. An integrated environment for the modeling and simulation of mechatronics devices
Rosario et al. A 3 DOF robotic platform dynamics control using rapid prototyping tools

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240318

R150 Certificate of patent or registration of utility model

Ref document number: 7467932

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150