JP2021117519A - シミュレーション装置およびシミュレーションプログラム - Google Patents

シミュレーション装置およびシミュレーションプログラム Download PDF

Info

Publication number
JP2021117519A
JP2021117519A JP2020008221A JP2020008221A JP2021117519A JP 2021117519 A JP2021117519 A JP 2021117519A JP 2020008221 A JP2020008221 A JP 2020008221A JP 2020008221 A JP2020008221 A JP 2020008221A JP 2021117519 A JP2021117519 A JP 2021117519A
Authority
JP
Japan
Prior art keywords
cable
behavior
simulation
calculated
robot
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.)
Granted
Application number
JP2020008221A
Other languages
English (en)
Other versions
JP7467932B2 (ja
Inventor
慎太郎 岩村
Shintaro Iwamura
慎太郎 岩村
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
Omron Tateisi Electronics Co
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, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2020008221A priority Critical patent/JP7467932B2/ja
Priority to PCT/JP2020/047252 priority patent/WO2021149419A1/ja
Publication of JP2021117519A publication Critical patent/JP2021117519A/ja
Application granted granted Critical
Publication of JP7467932B2 publication Critical patent/JP7467932B2/ja
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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Robotics (AREA)
  • Manipulator (AREA)

Abstract

【課題】機器に取付けられるケーブルの引き回しを事前に設計する。【解決手段】機器に取付けられるケーブルの挙動を算出するシミュレーション装置は、機器に対応する仮想空間に配置された第1の対象の挙動に基づき、ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する仮想空間に配置された第2の対象の挙動を算出と、算出された第2の対象の挙動を、当該挙動に基づき評価する。【選択図】図1

Description

本開示は、3次元仮想空間に配置された対象の挙動を推定できるシミュレーション装置およびシミュレーションプログラムに関する。
コンピュータを用いたシミュレーションは様々な技術分野に応用されている。このようなシミュレーションをFA(Factory Automation)に利用した例として、例えば、特開2016−042378号公報(特許文献1)は、機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを開示する。
特開2016−042378号公報
FAの分野では、機械の一例である産業用ロボットに取付けられるケーブルの引き回しを事前に設計したいとの要望があった。具体的には、従来、産業用ロボットのケーブルを引き回す場合、ユーザは、ケーブルを実際に操作しながら、適切な取付け位置またはケーブル長を決定する作業をしていたが、この作業は試行錯誤を繰り返すことから長時間を要していた。したがって、ケーブル引き回し(取付け位置またはケーブル長など)を事前に設計したいとの要望があった。
本開示の目的は、機器に取付けられるケーブルの引き回しを事前に設計することを可能にするシミュレーション装置およびシミュレーションプログラムを提供することである。
本開示にかかるシミュレーション装置は、機器に取付けられるケーブルの挙動を算出するシミュレーション装置であって、機器に対応する仮想空間に配置された第1の対象の挙動に基づき、ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する仮想空間に配置された第2の対象の挙動を算出するケーブル挙動算出部と、ケーブル挙動算出部により算出された第2の対象の挙動を、当該挙動に基づき評価する評価部とを備える。
上述の開示によれば、機器の挙動に基づき、ケーブルの取付けに関するパラメータを用いてケーブルの挙動を算出できて、算出された挙動を評価することで、評価された当該取付けに関するパラメータから、ケーブルの引き回しを設計できる。
また、シミュレーションでは、ケーブルが取付けられるべき実機なしに、当該シミュレーションを実施して、ケーブル引回しを設計することができる。
上述の開示において、第1の対象の挙動は、所定のタイムステップ毎に算出された挙動を含み、ケーブル挙動算出部は、タイムステップ毎に、当該タイムステップに対応の第1の対象の挙動に基づき、パラメータを用いて、第2の対象の挙動を算出する。
上述の開示によれば、タイムステップ毎に算出される機器の挙動に基づき、タイムステップ毎にケーブルの挙動を算出することができる。
上述の開示において、ケーブル挙動算出部は、物理シミュレータを含む。
上述の開示によれば、ケーブルの挙動を、物理シミュレータで算出することができる。
上述の開示において、第2の対象は、隣接する剛体間をジョイントで接合して連ねられてモデル化された剛体リンクを含み、物理シミュレータは、モデル化された剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、第1の対象の挙動に基づいて実施することにより、第2の対象の挙動を算出する。
上述の開示によれば、ケーブルを拘束条件が課された剛体リンクにモデル化し、当該モデルを示す方程式により挙動を算出することができる。
上述の開示において、シミュレーション装置は、ケーブル挙動算出部により算出された第2の対象の挙動に基づき、当該第2の対象にかかる負荷を算出する負荷算出部を、さらに備える。
上述の開示によれば、算出された挙動に基づき、第2の対象にかかる負荷を算出することができる。
上述の開示において、負荷は、第2の対象が備える各剛体にかかる負荷を含む。
上述の開示によれば、各剛体にかかる負荷を算出することができる。
上述の開示において、シミュレーション装置は、タイムステップの時系列に従い、各タイムステップで算出された第2の対象の挙動に基づく負荷を表示する。
上述の開示によれば、タイムステップの時系列に従い、第2の対象にかかる負荷の変動を表示することができる。
上述の開示において、シミュレーション装置は、閾値を超える負荷の表示態様を変更する。
上述の開示によれば、閾値を超える負荷は、その表示態様を変更して提示することができる。
上述の開示において、評価部は、負荷算出部により算出された負荷に基づき、第2の対象の挙動を評価する。
上述の開示によれば、第2の対象の挙動の評価を、負荷に基づき評価することができる。
上述の開示において、シミュレーション装置は、パラメータを設定するパラメータ設定部を備え、負荷が所定条件を満たすとき、第2の対象の挙動の算出時に設定されたパラメータを出力する。
上述の開示によれば、シミュレーション実施時にはパラメータを設定(変更)することができて、負荷が所定条件を満たす時は、その挙動算出に用いたパラメータを出力することができる。
上述の開示において、パラメータは、ケーブルの長さまたはケーブルの取付け位置を含む。
上述の開示によれば、パラメータに、ケーブル長と取付け位置を含めることができる。
上述の開示において、パラメータは、ケーブルの硬さを表すパラメータを含む。
上述の開示によれば、パラメータに、機器に取付けられるべきケーブルの硬さを含めることができる。
上述の開示において、機器は、ロボットを含み、第1の対象の挙動は、前ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出される。
上述の開示によれば、ロボットに取付けられるケーブルについての挙動のシミュレーションを、ロボットプログラムのエミュレータで算出される第1の挙動に基づき実施することができる。
上述の開示において、仮想空間をビジュアル化した画像を生成する画像生成部を、さらに備える。
上述の開示によれば、シミュレーションされたオブジェクト配置の仮想空間を視覚化してユーザに提供することができる。
本開示にかかるシミュレーションプログラムは、コンピュータに、機器に取付けられるケーブルの挙動を算出する方法を実行させるシミュレーションプログラムである。この方法は、機器に対応する仮想空間に配置された第1の対象の挙動に基づき、ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する仮想空間に配置された第2の対象の挙動を算出するステップと、算出された第2の対象の挙動を、当該挙動に基づき評価するステップとを備える。
上述の開示によれば、シミュレーションプログラムが実行されることにより、機器の挙動に基づき、ケーブルの取付けに関するパラメータを用いてケーブルの挙動を算出できて、算出された挙動を評価することで、評価された当該取付けに関するパラメータから、ケーブルの引き回しを設計できる。また、ケーブルが取付けられるべき実機なしに、当該シミュレーションを実施して、ケーブル引回しを設計することができる。
本開示によれば、機器に取付けられるケーブルの引き回しを事前に設計することができる。
本実施の形態にかかるケーブルシミュレーション装置1Bの適用場面の一例を模式的に示す図である。 本実施の形態にかかるシミュレーション装置1によってシミュレーションされる機器を模式的に示す図である。 本実施の形態にかかる制御システム2のユニット構成の一例を示す模式図である。 本実施の形態にかかるシミュレーション装置1を実現するためのハードウェア構成の一例を示す模式図である。 本実施の形態にかかるシミュレーション装置1を実現するための機能構成の一例を示す模式図である。 本実施の形態にかかるケーブルシミュレーション装置1Bの処理のシーケンスの一例を模式的に示す図である。 本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の一例を模式的に示す図である。 本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の他の例を模式的に示す図である。 本実施の形態にかかるケーブルシミュレーションのデータの関連性をケーブルデータ146を用いて模式的に示す図である。 本実施の形態にかかるケーブルの物理シミュレーションモデルの一例を模式的に示す図である。 図10のケーブルの物理シミュレーションモデルの連立方程式147の一例を示す図である。 本実施の形態にかかる物理シミュレーションの位置の更新を模式的に示す図である。 本実施の形態にかかるケーブルシミュレーションと、それに関連する処理を概略的に示すフローチャートである。 本実施の形態にかかる負荷情報142の一例を模式的に示す図である。 本実施の形態にかかる評価処理のフローチャートである。 本実施の形態にかかる負荷情報142の表示画面の一例を示す図である。
以下に、図面を参照しつつ、各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
<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の間に取付けられる。
ケーブル341、342および343は、同様の特徴(形状、材料など)を有するので、これらに共通する説明においては、ケーブル340と総称する。ケーブル340は、例えば、信号線を構成する線状の導電体を絶縁体で被覆して構成される。絶縁体の材料としては、限定されないが、プラスチック、ゴム、ビニールなどの樹脂材料を用いることができる。また、導電体の材料としては、限定されないが、電気導電性を有する金属を用いることができる。また、ケーブルガイド350、351、352および353は、同様の特徴(形状、材料など)を有するので、これらに共通する説明においては、ケーブルガイド350と総称する。ケーブル340が、ケーブルガイド350を介してロボット30に取付けられることで、ロボットコントローラ310などの他の機器はケーブル340を介してロボット30との間で信号を遣り取りすることが可能となる。
一般にロボット用のケーブル340は高価であること、また上記に述べたように引き回し作業は長時間を要することに鑑みると、実機のロボット30に取付けられるケーブル340の適切な引き回しを事前に設計し、その設計結果に基づき、作業者がケーブル340の引き回しを実施すれば、ケーブル340の引き回しにかかるコスト(ケーブル340の費用および作業時間を含む)を低減できる。ケーブルシミュレーション装置1Bによってケーブルシミュレーションを実施することで、この事前設計が実現される。
具体的には、ケーブルシミュレーション装置1Bは、ロボット30に取付けられるケーブル340に対応するオブジェクト(以下、第2の対象とも呼ぶ)の3次元仮想空間における挙動を算出(推定)するケーブルシミュレータ165と、算出された当該挙動を評価する評価モジュール167とを備える。この3次元仮想空間は、図1では、例えば直交するX軸,Y軸およびZ軸で規定される。ケーブルシミュレーション装置1Bは、例えば汎用コンピュータで構成される情報処理装置100に実装され得て、情報処理装置100が、所定のプログラムを実行することによりケーブルシミュレータ165および評価モジュール167が実現される。
ケーブルシミュレーションは、機器挙動データ2520に基づいて、第2の対象の挙動を算出する。機器挙動データ2520は、ロボット30に対応するオブジェクト(以下、第1の対象とも呼ぶ)であって、ケーブル340のオブジェクトが配置される3次元仮想空間と同一の空間に配置されるオブジェクトの挙動を示す。この第1の対象は、限定されないが、例えば、ロボット30および当該ロボット30に装着されたロボットハンド210に対応するオブジェクトを含む。
ここでは、機器挙動データ2520は、情報処理装置100により算出される、または外部の装置からケーブルシミュレーション装置1Bに提供される。機器挙動データ2520は、ケーブルシミュレーション装置1Bに提供される。機器挙動データ2520は、例えば、所定のタイムステップti毎に、第1の対象の3次元仮想空間における挙動を算出するシミュレーションが実行されることによって、算出される。機器挙動データ2520が示す第1の対象の挙動は、第1の対象の3次元仮想空間において時系列に変化する位置を含む。
ケーブルシミュレータ165は、「ケーブル挙動算出部」の一実施例である。ケーブルシミュレータ165は、機器挙動データ2520が示す第1の対象の挙動、すなわち3次元仮想空間における時系列の位置に基づき、ケーブル340のロボット30への取付けに関するケーブルパラメータ139を用いて、上記の所定タイムステップに同期して、同一の3次元仮想空間に配置された第2の対象の挙動を算出する。ケーブルパラメータ139は、ケーブル340の引き回しの設計において考慮されるべき種類のパラメータであって、例えば、ケーブル340の長さ、ケーブル340の取付け位置(すなわち、ケーブルガイド350の位置)などを含むが、これらに限定されない。例えば、挙動に影響を及ぼすようなパラメータ、例えばケーブル340の材料に依存するパラメータ(例えば、ケーブル340の硬さを表すパラメータ)を含んでもよい。
ケーブルシミュレーションによって、3次元仮想空間におけるケーブル340に対応するオブジェクト(第2の対象)の、ロボット30に対応するオブジェクト(第1の対象)の挙動に同期した挙動が算出される。ケーブル340に対応するオブジェクト(第2の対象)の挙動は、3次元仮想空間におけるX,Y,Zの各軸における当該オブジェクトの位置と姿勢を含む。この姿勢は、例えばX軸、Y軸およびZ軸についての加速度成分であるロール角α、ピッチ角βおよびヨー角γの組合せで示される。
評価モジュール167は、「評価部」の一実施例である。評価モジュール167は、ケーブルシミュレータ165が算出した第2の対象の挙動に基づき、当該挙動を評価する。評価モジュール167は、例えば、第2の対象の挙動から算出される第2の対象にかかる負荷、より特定的には挙動に影響を及ぼすような負荷に基づき、当該挙動を評価する。このような負荷は、ケーブルシミュレーション装置1Bが備える負荷算出モジュール166によって算出される。
負荷算出モジュール166は、「負荷算出部」の一実施例である。負荷算出モジュール166は、タイムステップ毎に、第2の対象の挙動に基づき負荷を算出する。負荷の種類は、限定されないが、例えば第2の対象の伸び、曲げおよびひねり、および第2の対象の衝突回数、衝突した場合に第2の対象に加わる力等の少なくとも1つを含み得る。さらに、負荷の種類は、曲げ半径が最小曲げ半径(ケーブル340の仕様によって指定された値)を超えないか否かの値を含んでもよい。
評価モジュール167は、算出される負荷が所定条件を満たすと判定したとき、ケーブルシミュレーションにおいて設定されたパラメータが示すケーブル340の長さおよび取付け位置(すなわち、ケーブルガイド350の位置)は、最適な引き回しを実現できる設計値として評価する。ケーブルシミュレーション装置1Bは、評価の情報を出力し、または格納し、または通信する。
ケーブルシミュレーションでは、3次元仮想空間における、ロボット30に対応の第1の対象の挙動を示す機器挙動データ2520に基づき、取付けに関するパラメータを用いて、ケーブル340に対応する第2の対象の挙動が算出され、算出された第2の対象の挙動が評価される。評価によって、ケーブルシミュレーションに適用したパラメータが示すケーブル340の引き回しの設計値が適切であるか否かを示すことができる。したがって、実機(ロボット30、ケーブル340およびケーブルガイド350)がなくても、ケーブル340の引き回しにかかる最適な設計を実施することが可能となる。
以下、本実施の形態のより具体的な応用例について説明する。
<B.制御システムの例>
図2は、本実施の形態にかかるシミュレーション装置1によってシミュレーションされる機器を模式的に示す図である。シミュレーション装置1は、FAの生産ラインに備えられる制御システム2のPLC(プログラマブルロジックコントローラ)200が制御する実機である機器の挙動を推定するシステムシミュレーション装置1Aを備える。シミュレーション装置1は、たとえば、PC(Personal Computer)、タブレット端末などの端末装置を含む汎用コンピュータで構成される情報処理装置100に実装され得て、情報処理装置100が、所定のプログラムを実行することにより、機器の挙動を推定するシステムシミュレーションが実現される。情報処理装置100は、ユーザーが制御システム2を運用するのを支援するための支援ツールを提供する。支援ツールは、シミュレーションの実行環境、制御システム2のための制御プログラムの実行環境、および制御システム2の通信環境等を準備するための設定ツールを含む。支援ツールは、例えばUI(User Interface)によってユーザに提供される。
図2では、情報処理装置100は、PLC200に通信可能に接続されているが、PLC200と接続されない態様で、シミュレーションを実施することもできる。また、上記に述べたケーブルシミュレーション装置1Bは、シミュレーション装置1に備えられ得る。その場合は、シミュレーション装置1によってケーブルシミュレーションとシステムシミュレーションとを実施可能な環境が提供される。
図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)に従い通信する。
PLC200は、設計された制御プログラムをフィールドネットワーク22からのセンサの出力値などを含むフィールド値に基づき実行し、実行の結果に従ってロボットコントローラ310またはサーボモータドライバ531,532に対して、それぞれ目標値を与えることで、ロボット30およびコンベア230の搬送に関連する機器などを制御する。
サーボモータドライバ531,532は、コンベア230のサーボモータ41,42を駆動する。サーボモータ41,42の回転軸にはエンコーダ236,238が配置されている。当該エンコーダは、サーボモータ41,42のフィードバック値として、サーボモータの位置(回転角度)、回転速度、累積回転数などをPLC200へ出力する。
ロボット30とコンベア230は、相互に連携しながらワーク232を移動させる。なお、ここでは説明を簡単にするために、ワーク232の移動を説明するが、移動に限定されない。例えば、トレイ9に載置されたワーク232のロボット30による加工であってもよい。
図2では、ロボット30のドライブ装置の一例として、ロボット30に設けられるサーボモータ1301、1302,1033,1304(以下、「ロボットサーボモータ」とも総称する。)と、ロボットサーボモータを駆動するロボットコントローラ310を例示する。同様に、コンベア230のドライブ装置の一例として、コンベア230に設けられるサーボモータ41,42を駆動するサーボモータドライバ531,532を例示する。
ロボットコントローラ310は、ロボット30のロボットサーボモータを駆動する。各ロボットサーボモータの回転軸にはエンコーダ(図示しない)が配置されている。当該エンコーダは、ロボットサーボモータのフィードバック値として、サーボモータの位置(回転角度)、回転速度、累積回転数などをロボットコントローラ310へ出力する。
サーボモータドライバ531,532は、指令値に従い、対応するサーボモータ41,42を駆動する。制御システム2は、さらに、コンベア230に関連して光電センサ6および開閉可能なストッパ8を備える。光電センサ6は、コンベア230の搬送面上に備えられるトレイ9が所定のワークトラッキングエリアの前に到達したことを検出し、検出値をPLC200に送信する。ストッパ8は、指令値に従い、トラッキングエリア内に到達したトレイ9を停止(固定)させるように閉動作する。
ロボット30のロボットハンド210は、工程に応じて取付けられる。ロボットハンド210の種類は、例えば平行ハンド、多指ハンド、多指関節ハンドなどを含むが、これら限定されず、例えば吸着式によりワーク232をピックおよびプレースする種類も含み得る。
ロボット30は、ロボットコントローラ310からの指令値に従い、ピックアンドプレースを実施する。具体的には、ロボット30は、コンベア230上のトレイ9に載置されたワーク232をロボットハンド210によりピックし、ピックしたまま所定位置のテーブル55までワーク232を移動させてテーブル55上に置く(プレースする)。ロボットハンド210は、ロボットコントローラ310からの指令値に従い、ワーク232をピックまたはプレースするためのハンドの開閉動作が制御される。
システムシミュレーション装置1Aが実施するシミュレーションによって、その挙動が推定される機器として、ワーク232を搬送するコンベア230と、ワーク232を取り扱うロボット30(ロボット30およびロボットハンド210)などの機器を例示するが、挙動が推定される機器はこれらに限定されない。ケーブルシミュレーション装置1Bは、システムシミュレーションによって算出(推定)された機器の挙動に基づき、ケーブルの挙動を算出(推定)する。
情報処理装置100により、制御プログラムは、このようなシミュレーションの結果を用いて設計されてもよい。情報処理装置100上で設計された制御プログラムは、フィールドネットワーク22を介してPLC200に送られる。
<C.制御と3次元仮想空間の位置>
図2を参照して、システムシミュレーションの対象機器であるロボット30とコンベア230の制御と、これら機器の3次元仮想空間における挙動について説明する。
ロボット30とコンベア230は、上記に述べたように、複数の駆動軸により移動可能な可動部を有する。これらの各駆動軸は、サーボモータによって駆動される。具体的には、ロボット30は、ロボットサーボモータ(サーボモータ1301〜1304)が回転することで駆動される複数のアームを有している。ロボットサーボモータは、それぞれ回転することで、対応する各アームを駆動する。ロボットコントローラ310がロボットサーボモータの駆動を制御することで、各アームが3次元に駆動される。このような各アームの駆動により、ロボット30の挙動が実現される。同様に、コンベア230も、サーボモータ41,42が回転することでコンベア230および搬送面上のトレイ9が移動する。この移動量(移動の速度、向き、距離など)は、サーボモータ41,42の回転量(回転の向き、角度)により決まる。このようなサーボモータ41,42の駆動により、コンベア230およびトレイ9などの機器の挙動が実現される。
実施の形態では、ロボット30の各アーム301は、仮想的な軸が対応付けられ、各軸の位置からロボット30の位置が決まる。PLC200は、ロボット30を各軸の時系列に変換する目標位置に従い制御し、これにより、各アーム301の移動の速度および軌道は、目標に従う速度および軌道となるように変化する。
ロボット30の目標位置は、例えばPLC200に予め格納されている。ロボットコントローラ310は、PLC200から目標位置を受信し、受信した目標位置に基づき各ロボットサーボモータの回転量を決定し、決定した回転量を指定する指令値を、各ロボットサーボモータに対し出力する。
(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を出力する。
システムシミュレーション装置1Aは、ワーク232およびワーク232を搬送するコンベア230に対応するオブジェクトの3次元仮想空間における挙動も、ロボット30と同様に算出し、算出結果を機器挙動データ2520として出力することができる。
さらに、制御システム2では機器は互いに時刻同期する。具体的には、フィールドネットワーク22に接続される複数の機器、すなわちPLC100、ロボットコントローラ310、サーボモータドライバ531,532およびロボットハンド210は、互いに時刻同期されたタイマ90、91,92,93、94をそれぞれ有し、機器の間では、これらタイマに基き動作することで、制御指令を含むデータの送受信タイミングが同期されている。
<D.制御システムの全体構成>
図3は、本実施の形態にかかる制御システム2のユニット構成の一例を示す模式図である。図3を参照して、制御システム2は、PLC200と、PLC200とフィールドネットワーク22を介して接続されるサーボモータドライバ531,532およびリモートIOターミナル5と、ケーブル340を接続するロボットコントローラ310と、フィールドに設けられたIOデバイスである例えば、光電センサ6、ストッパ8が備える近接センサ87およびエンコーダ236、238を含む。
PLC200は、主たる演算処理を実行する演算ユニット13、1つ以上のIOユニット14および特殊ユニット17を含む。これらのユニットは、システムバス81を介して、データを互いに遣り取りできるように構成されるとともに、電源ユニット12から電源が供給される。演算ユニット13には、情報処理装置100が接続され得る。
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のメモリの値を参照して動作する。
フィールドネットワーク22は、ロボットコントローラ310、サーボモータドライバ531,532、およびリモートIOターミナル5が接続されてもよい。IOリモートターミナル5は、フィールドネットワーク22でのデータ伝送にかかる処理を行うための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、リモートIOターミナルバス51を介して、データを互いに遣り取りできるように構成される。
サーボモータドライバ531,532は、フィールドネットワーク22を介して演算ユニット13と接続されるとともに、演算ユニット13からの指令値に従ってサーボモータ41,42を駆動する。演算ユニット13は、これら指令値を、エンコーダ236,238からの検出値237,239に基き生成する。
演算ユニット13は、上記に述べたIOデバイスからの検出値を参照して、所定の制御プログラムを実行することで、ロボット30にピックアンドプレースを実施させる。具体的には、演算ユニット13は、光電センサ6の検出値61および近接センサ87の検出値71からワーク232が、所定のトラッキングエリアに接近したことを検出すると、ピックアンドプレースを実施させるロボットのアーム301のための制御指令211と、ロボットハンド210のための制御指令222を生成し、ロボットコントローラ310を介してケーブル340を経由してロボット30に出力する。
<E.ハードウェア構成>
次に、本実施の形態にかかるシミュレーション装置1のハードウェア構成の一例について説明する。
図4は、本実施の形態にかかるシミュレーション装置1を実現するためのハードウェア構成の一例を示す模式図である。本実施の形態では、シミュレーション装置1は、図4に示すような情報処理装置100に実装され得る。具体的には、情報処理装置100のプロセッサ102が必要なプログラムを実行することでシミュレーション装置1が実現される。図4では、シミュレーション装置1がシステムシミュレーションおよびケーブルシミュレーションを実施する環境を備えている。
情報処理装置100は、主たるコンポーネントとして、オペレーティングシステム(OS:Operating System)および後述するような各種プログラムを実行するプロセッサ102と、プロセッサ102でのプログラム実行に必要なデータを格納するための作業領域を提供する主メモリ104と、キーボードやマウスなどのユーザ操作を受付ける操作ユニット106と、ディスプレイ109、各種インジケータ、プリンタなどの処理結果を出力する出力ユニット108と、ネットワーク80を含む各種ネットワークに接続されるネットワークインターフェイス110と、光学ドライブ112と、外部装置と通信するローカル通信インターフェイス116と、ストレージ111とを含む。これらのコンポーネントは、内部バス118などを介してデータ通信可能に接続される。
情報処理装置100は、光学ドライブ112によって、コンピュータ読取可能なプログラムを非一過的に格納する光学記憶媒体(例えば、DVD(Digital Versatile Disc)など)を含むコンピュータ読取可能な記憶媒体114から、各種プログラムまたはデータを読取ってストレージ111などにインストールする。
情報処理装置100で実行される各種プログラムまたはデータは、コンピュータ読取可能な記憶媒体114を介してインストールされてもよいが、ネットワーク上の図示しないサーバ装置などからネットワークインターフェイス110を介してダウンロードする形でインストールするようにしてもよい。
ストレージ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を格納する。
ケーブルシミュレーションプログラム137は、実行されると、ケーブル340に対応するオブジェクトの3次元仮想空間における挙動を算出する。ケーブルシミュレーションプログラム137は、負荷算出プログラム138を含んでいる。負荷算出プログラム138は、実行されると、ケーブルシミュレーションプログラム137によって算出された挙動に基づき、ケーブル340かかる負荷を算出する。なお、負荷算出プログラム138は、ケーブルシミュレーションプログラム137が備えるとしているが、ケーブルシミュレーションプログラム137の実行タイミングに依存しない、すなわちケーブルシミュレーションプログラム137から独立したプログラムであってもよい。
評価プログラム143は、ケーブルシミュレーションプログラム137が算出したケーブル340に対応するオブジェクトの挙動に基づき、当該挙動を評価する。より特定的には、評価プログラム143は、後述する負荷情報142に基づき、当該挙動を評価し、評価結果を示す評価データ144を出力する。評価データ144は、ストレージ111に格納され得る。
パラメータ設定プログラム145は、例えば、情報処理装置100に対するユーザ操作内容に基づきケーブルパラメータ139をストレージ111に格納する。
仮想時刻生成プログラム120は、シミュレーションのための仮想時刻を生成する。シミュレーション装置1は、仮想時刻に基づく周期でシミュレーションを実行する。
物理シミュレーションプログラム122は、ワーク232の移動に関連して動作する機器に対応するオブジェクトの挙動を算出する。物理シミュレーションプログラム122により対応するオブジェクトの挙動が算出される機器は、例えば、ワーク232の搬送または移動に関連する光電センサ6、コンベア230、トレイ9、ストッパ8およびロボットハンド210を含む。物理シミュレーションプログラム122には、このような機器に対応したオブジェクトの挙動を規定するためのパラメータ、および、ワーク232の重さまたは形状などを規定するパラメータを含む、物理シミュレーションパラメータ124が与えられる。物理シミュレーションパラメータ124の値は、ユーザ操作または統合プログラム134などにより適宜変更されるようにしてもよい。
物理シミュレーションパラメータ124として、ワーク232の搬送または移動に関連した機器およびワーク232のCAD(Computer Aided Design)データを用いてもよい。CADデータを用いることで、オブジェクトを用いて現実の機器の挙動をより正確に再現できる。
PLCシミュレーションプログラム126は、物理シミュレーションプログラム122により対応のオブジェクトの挙動が算出される機器およびワーク232の位置を算出する。算出された位置は、物理シミュレーションプログラム122に与えられる。PLCシミュレーションプログラム126には、上記の位置を算出するために必要なパラメータを含むPLCパラメータ128が与えられる。
ロボットエミュレーションプログラム130は、ロボット30の挙動をオブジェクトによって再現するシミュレータとして機能する。ロボットエミュレーションプログラム130は、物理シミュレーションプログラム122によって算出される結果(オブジェクトの挙動)に基づいて、ロボット30によるワーク232のピックアンドプレースを再現する。ロボットエミュレーションプログラム130には、ロボット30の挙動を対応するオブジェクトで再現するために必要なパラメータを含むロボットパラメータ132が与えられる。
中継プログラム121は、物理シミュレーションプログラム122とロボットエミュレーションプログラム130とが互いのデータを遣り取りするための中継機能を提供する。中継プログラム121は、限定されないが、中継機能は、例えばスクリプトの命令で記述されている。
統合プログラム134は、物理シミュレーションプログラム122と、PLCシミュレーションプログラム126と、ロボットエミュレーションプログラム130と、中継プログラム121とを互いに連携させるための処理を実行する。具体的には、統合プログラム134は、典型的には主メモリ104上に、3次元仮想空間のオブジェクトの状態を記述する仮想空間情報105を生成および更新する。物理シミュレーションプログラム122、PLCシミュレーションプログラム126、および、ロボットエミュレーションプログラム130は、仮想空間情報105を参照(読出)して各シミュレーションの処理を実行するとともに、その実行結果のうち必要な情報を仮想空間情報105に反映する。統合プログラム134が提供する機能により、ワーク232を搬送する機器と、ピックアンドプレースによりワーク232を移動させるロボット30とを備える制御システム2における、機器の挙動および処理を再現する。
画像処理プログラム136は、ディスプレイ109に表示するための3D(three-dimensional)ビジュアライズデータ135が与えられる。3Dビジュアライズデータ135は、挙動データ252と画像データ253を含む。画像データ253は、シミュレートされる機器に対応のオブジェクトを描画するための機器画像データ2530およびケーブル340に対応のオブジェクトを描画するためのケーブル画像データ2531を含む。ケーブル画像データ2531は、剛体304(後述する)のオブジェクトに対応する画像データを含んでいる。
挙動データ252は、仮想空間情報105の各機器の位置に所定関数を用いて算出された位置である3次元座標P(x,y,z)およびその時系列データを含む機器挙動データ2520およびケーブル挙動データ2521を含む。ケーブル挙動データ2521は、ケーブルシミュレータ165が機器挙動データ2520のデータに基づき算出した、ケーブル340に対応する3次元仮想空間に配置されたオブジェクトの挙動を示す。
画像処理プログラム136は、機器画像データ2530および機器挙動データ2520を用いて、ワーク232と、ワーク232の搬送に関連する機器およびロボット30と、ロボット30に取付けられたロボットハンド210とに対象の各オブジェクトの挙動を、3次元仮想空間内で立体的に描画するための画像データを生成し、ディスプレイ109に出力する。また、画像処理プログラム136は、ケーブル画像データ2531およびケーブル挙動データ2521を用いて、ケーブル340に対応するオブジェクトの挙動を、3次元仮想空間内で立体的に描画するための画像データを生成し、ディスプレイ109に出力する。
これにより、ディスプレイ109には、シミュレーションにより算出された挙動に従いオブジェクトが表示されて、制御システム2の機器の挙動が再現され、また、機器の挙動に連動したケーブル340の挙動が再現される。なお、画像データ253は、CAD(Computer-Aided Design)データなどを含んでもよい。
ストレージ111は、ケーブルシミュレーションプログラム137のパラメータであるケーブルパラメータ139および負荷情報142を格納する。ケーブルパラメータ139は、ケーブルシミュレーションの実行開始時に用いられるパラメータの初期値140と、候補値141を含む。候補値141は、ケーブルシミュレーションで用いられるパラメータであって、一般的に初期値140とは異なる値を示す。負荷情報142は、負荷算出プログラム138が実行されることにより算出された負荷を示す。ケーブルパラメータ139は、ケーブル340の材料に固有のパラメータであって、ケーブル340の硬さを示すパラメータ149、例えば後述するパラメータStiffnessおよびパラメータDampingを含む。
図4には、単一の情報処理装置100でシミュレーション装置1を実現する例を示したが、複数の情報処理装置を連係させてシミュレーション装置1を実現するようにしてもよい。この場合には、シミュレーション装置1を実現するために必要な処理の一部を情報処理装置100で実行させるとともに、残りの処理をネットワーク上のサーバ(クラウド)などで実行するようにしてもよい。
図4は、プロセッサ102が1または複数のプログラムを実行することで、シミュレーション装置1が実現される例を示すが、シミュレーション装置1を実現するために必要な処理および機能の一部を、ASIC(Application Specific Integrated Circuit)または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が実行されることにより実現される機能を含み得る。
(f1.システムシミュレーション装置の構成)
図5を参照して、システムシミュレーション装置1Aは、仮想空間情報管理モジュール150と、PLCシミュレータ152と、ワーク挙動シミュレータ155と、物理シミュレータ156と、中継モジュール158と、ロボットエミュレータ160と、ワークトラッキングモジュール162と、3Dビジュアライザ164とを含む。
仮想空間情報管理モジュール150は、統合プログラム134(図4)が実行されることで実現され、シミュレーションが実施される3次元仮想空間の各オブジェクトの挙動(位置および姿勢など)の情報を規定するための仮想空間情報105を管理する。
PLCシミュレータ152は、PLCシミュレーションプログラム126(図4)が実行されることで実現され、物理シミュレーションパラメータ124に従って、ワーク232の搬送に関連する機器に対応のオブジェクトの挙動を算出する。PLCシミュレータ152により算出される情報は、仮想空間情報105に反映される。
PLCシミュレータ152は、ワーク232の搬送にかかる機器の挙動を推定するプログラムであって、PLCプログラムに含まれた複数の命令を含むシミュレーションプログラムに相当する。これら複数の命令は、PLCプログラムに含まれた搬送にかかる機器の挙動を制御するための命令群を含み得る。PLCプログラムは、例えばサイクリック実行型言語(例えば、ラダー言語)で記載されたプログラム言語)で記述される。
PLCシミュレータ152のこれら命令は、仮想空間情報105のデータに基づき実行される毎に、例えばコンベア230のサーボモータ41,42を制御するための指令値が生成されて、仮想空間情報105に格納される。
中継モジュール158は、ワーク232の画像計測パラメータ129を用いた計測処理によるワーク232の計測結果をロボットエミュレータ160に出力する。ロボットエミュレータ160は仮想空間に配置されたワークを搬送するロボット30の挙動を、中継モジュール158からの計測結果に応じて、再現する。ロボットエミュレータ160により算出されるロボット30の挙動の情報は、仮想空間情報105に反映される。ロボットエミュレータ160は、ロボットエミュレーションプログラム130が実行されることにより実現される。ロボットエミュレータ160は、3次元仮想空間に配置されたワーク232を移動させるロボット30の挙動を示す機器挙動データ2520を出力する。ロボットエミュレータ160は、ロボット30のアーム301およびその先端に取付けられたロボットハンド210を一体的な剛体とみなしてシミュレーションを実施する。
具体的には、ロボットエミュレーションプログラム130は、ロボットコントローラ310のプログラムに含まれる命令群を含む。この命令群は、ロボット30にワーク232を操作させる指令コードを有したロボットプログラムの指令を含む。これら指令は、仮想空間情報105のPLCシミュレータ152の出力データなどに基づき、ロボット30の目標の軌跡を算出し、算出された軌跡に基づき各軸の挙動を示す指令値など算出する命令などを含む。
このように、ロボットエミュレータ160は命令を実行すると、ロボット30の挙動を制御する各軸の指令値を生成し、生成した指令値を仮想空間情報管理モジュール150に出力する。仮想空間情報管理モジュールは150は、ロボットエミュレータからの指令値を仮想空間情報105として管理(格納)する。
ワーク挙動シミュレータ155は、3次元仮想空間に配置された1または複数のワーク232のオブジェクトの挙動を算出する。具体的には、ワーク挙動シミュレータ155は、物理シミュレーションプログラム122(図4)が実行されることで実現され、PLCシミュレータ152によるワーク232の搬送機器に対応するオブジェクトの挙動の情報に応じて、3次元仮想空間に配置されるワーク232の挙動を算出して更新する。ワーク挙動シミュレータ155は、ワーク232の挙動を算出するにあたって、ワーク232の位置、姿勢、移動速度、移動方向などを算出する。ワーク232の位置および姿勢は、ユーザなどから任意に設定されるワークパラメータに基づいて算出される。ワーク挙動シミュレータ155により算出されるワーク232の位置および姿勢の情報は、仮想空間情報105に反映される。ワークパラメータは、物理シミュレーションパラメータ124に含めることもできる。
物理シミュレータ156は、物理シミュレーションプログラム122(図4)が実行されることで実現される。物理シミュレータ156は、物理シミュレーションパラメータ124に従い、ワーク232を搬送または移動させるための機器に対応するオブジェクトの挙動(位置、姿勢、移動速度、移動方向など)を算出する。物理シミュレータ156によってシミュレーションされる対象は、光電センサ6、ストッパ8、トレイ9、ロボットハンド210、コンベア230およびワーク232を含む。
物理シミュレータ156は、これらオブジェクトの位置、姿勢などの挙動を所定の物理演算に従い算出する。物理シミュレータ156は、この物理演算に用いる物理シミュレーションパラメータ124のうち、オブジェクトの質量パラメータ127をゼロに設定して演算を実施する。
質量をゼロにセットする意味は次の通りである。すなわち、質量のパラメータがゼロでない場合、物理シミュレータ156は物理演算により各オブジェクトについて、当該オブジェクトの質量に基づく速度、加速度および重力などのオブジェクトに対する力学的作用の成分を算出し、その算出された力学的作用の成分によって、物理シミュレータ156が次のタイムステップにおけるオブジェクトの位置を計算(更新)することになる。その一方で、本実施の形態では、PLCシミュレータ152およびロボットエミュレータ160が各オブジェクトの位置を決定(支配)することになる。したがって、物理シミュレータ156によるオブジェクトの位置の更新成分をゼロ(無効化)するために、物理シミュレータ156の物理演算に用いる各オブジェクトの質量のパラメータをゼロに設定する。
物理演算により質量をゼロとして位置(挙動)が算出されたオブジェクトについては速度、加速度、重力などもゼロとなっているから、これらオブジェクトどうしが衝突した場合でも、物理演算では力学的成分(反発などのようなオブジェクトの跳ね返りなどの成分)はゼロ(無効化)と算出されるので、オブジェクトに対する力学的作用を無効化して3次元仮想空間における位置を検出することができる。
物理シミュレータ156は、物理演算により算出されたロボットハンド210の3次元位置座標P(x、y、z)を、機器挙動データ2520として格納する。物理シミュレータ156は、タイムステップ毎に実行されることにより、機器挙動データ2520は、ロボットハンド210に対応した時系列の3次元座標P(x、y、z)を含む。
ワークトラッキングモジュール162は、ロボットエミュレーションプログラム130が実行されることで実現される。ワークトラッキングモジュール162は、ロボットエミュレータ160からのロボット30の挙動情報に基づいて、3次元仮想空間においてロボット30によりピックアンドプレースされるワーク232をトラッキングする。ワークトラッキングモジュール162によりトラッキングされるワーク232の位置情報(ワーク位置)は、仮想空間情報105に反映される。
(f2.ケーブルシミュレーション装置の構成)
図5を参照して、ケーブルシミュレーション装置1Bは、ケーブルシミュレーションプログラム137が実行されることにより実現されるケーブルシミュレータ165および評価プログラム143が実行されることにより実現される評価モジュール167を含む。ケーブルシミュレータ165は、負荷算出モジュール166を有する。負荷算出モジュール166は、負荷算出プログラム138が実行されることにより実現される。なお、負荷算出モジュール166は、ケーブルシミュレータ165内に備えられずに、ケーブルシミュレータ165から独立していてもよい。
ケーブルシミュレータ165は、タイムステップ毎に実行されることにより、当該タイムステップに対応した機器挙動データ2520のデータに基づき、ケーブルパラメータ139を用いて、当該ケーブル340に対応する3次元仮想空間に配置されたオブジェクトの挙動を算出し、算出結果をケーブル挙動データ2521として格納する。
ケーブルシミュレータ165は、タイムステップ毎に、ケーブル340に対応するオブジェクトの挙動を算出することで、ケーブル挙動データ2521によって、3次元仮想空間におけるケーブル340の時系列の挙動が示される。
3Dビジュアライザ164は、3次元仮想空間を視覚化した画像を生成する画像生成部に相当する。3Dビジュアライザ164は、仮想空間情報105のタイムステップ毎の指令値に基づいて、ワーク232、ワーク232の搬送に関連する機器、ロボット30およびロボットハンド210に対応する3次元仮想空間のオブジェクトの3次元座標P(x、y、z)を算出する。時系列の3次元座標P(x、y、z)を含む機器挙動データ2520が算出される。
3Dビジュアライザ164は、機器挙動データ2520および機器画像データ2530に基づき、3次元仮想空間における機器の挙動を視覚化する画像データを生成し、また、ケーブル挙動データ2521およびケーブル画像データ2531に基づき、3次元仮想空間におけるケーブルの挙動を視覚化する画像データを生成する。これら画像データはディスプレイ109に出力される。これにより、システムシミュレーションによる算出された機器の挙動を示す画像と、ケーブルシミュレーションにより算出されたケーブル340の挙動を示す画像が、ディスプレイ109に表示される。
周期生成モジュール154は、仮想時刻生成プログラム120が実行されることにより実現される。周期生成モジュール154は、プロセッサ102が有するタイマ(図示せず)の出力に基づき、タイマの出力に同期した信号STを他の各部に出力する。各部は、周期生成モジュール154から信号STが出力される周期(以下、所定のタイムステップという)に同期して処理またはプログラムを実行する。これにより、図5の各部は、所定のタイムステップ毎に互いに同期して実行される。信号STの周期は、限定されないが、図3の制御システム2の時刻同期に従うフィールドネットワーク22の通信周期(以下、「制御周期」ともいう。)に基き決定されてもよい。なお、信号STに基づくタイムステップが示す周期は、可変であってよい。
図5に示すような各機能が互いに連携することで、機器の挙動に連動したケーブル340の挙動を再現することができる。
本実施の形態では、図5のシミュレーション装置1は、例えば操作ユニット106を介して受付けるユーザからの指示に従い、システムシミュレーション装置1Aとケーブルシミュレーション装置1Bの一方を起動することができる。また、シミュレーション装置1は、例えば操作ユニット106を介して受付けるユーザからの指示に従い、システムシミュレーション装置1Aまたはケーブルシミュレーション装置1Bを起動するタイミングを決定することができる。例えば、シミュレーション装置1は、システムシミュレーション装置1Aが起動され、その後に、ケーブルシミュレーション装置1Bの起動タイミングを設定する。これにより、ケーブルシミュレーション装置1Bが起動する際に、機器挙動データ2520をケーブルシミュレータに提供することができる。
なお、図5では、情報処理装置100は、システムシミュレーション装置1Aとケーブルシミュレーション装置1Bの両方を実装しているが、機器挙動データ2520がケーブルシミュレーション装置1Bに利用可能であれば、情報処理装置100はケーブルシミュレーション装置1Bのみを実装してもよい。
<G.ケーブルシミュレーション>
図6は、本実施の形態にかかるケーブルシミュレーション装置1Bの処理のシーケンスの一例を模式的に示す図である。図6では、ケーブルシミュレーション装置1Bが実施するケーブルシミュレーションの処理が、周辺処理と関連付けて示されている。説明のために、以下のケーブルシミュレーションが用いる機器挙動データ2520は、ロボット30(より特定的にはアーム301)に対応するオブジェクトの挙動を示している。
図6を参照して、ユーザーは、操作ユニット106を操作して、情報処理装置100に対して、システムシミュレーションを設定するための指示と、ケーブルシミュレーションを追加する指示を入力する(ステップS80、ステップS83)。プロセッサ102は、ユーザーからの指示に従い、システムシミュレーションを実行可能なように、例えば、システムシミュレーションのための各種パラメータを設定する。また、プロセッサ102は、ケーブルシミュレーションを追加する指示に従い、ケーブルシミュレーションを実行可能な状態を設定する。例えば、機器挙動データ2520を参照可能なようにケーブルシミュレータ165を設定する。
ユーザーは、操作ユニット106を操作して、情報処理装置100に対して、システムシミュレーションの実行と機器挙動データ2520の格納の指示を入力する(ステップS85)。
プロセッサ102は、システムシミュレーション装置1Aを起動し(ステップS87)、システムシミュレーションの結果である機器挙動データ2520をストレージ111に格納(保持)し(ステップS88)、機器挙動データ2520の格納が完了した旨の通知を、例えばディスプレイ109に出力する(ステップS89)。
ユーザーは、操作ユニット106を操作して、ケーブルパラメータ139を情報処理装置100に対して入力する(ステップS91)。プロセッサ102により実行されたパラメータ設定プログラム145は、操作ユニット106から受付けたケーブルパラメータ139をストレージ111に格納する。
ユーザーは、操作ユニット106を操作して、情報処理装置100に対して、ケーブルシミュレーションの実行開始の指示を入力する(ステップS93)。プロセッサ102は、ケーブルシミュレーションの実行開始指示に従い、ケーブルシミュレータ165を起動する。
ケーブルシミュレータ165は、起動されると、パラメータ毎(初期値140および候補値141のそれぞれ毎)にケーブルシミュレーションを繰返す処理(ループ処理)を実行する(ステップS100)。ケーブルシミュレータ165は、信号STに基づくタイムステップに同期して、機器挙動データ2520に基づきシミュレーションを実行することにより、タイムステップ毎にケーブル挙動データ2521を算出し格納する(ステップS100a)。また、ケーブルシミュレーションを実行時には、負荷算出モジュール166は、タイムステップ毎に、負荷情報142を算出し格納する。
評価モジュール167は評価処理を実行する(ステップS130)。具体的には、評価モジュール167は、ケーブル挙動データ2521に基づき、より特定的にはケーブル挙動データ2521から算出された負荷情報142に基づき、挙動を評価し、評価結果である評価データ144を格納する。評価モジュール167は、評価データ144の情報を出力する(ステップS140)。例えば、評価データ144に基づく画像をディスプレイ109に表示させる。
(g1.パラメータの設定)
上記に述べたケーブル340のパラメータ設定(ステップS91)のために、パラメータ設定プログラム145はUIツールを提供する。このようなUIツールを、図7と図8を参照して説明する。図7は、本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の一例を模式的に示す図である。図8は、本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の他の例を模式的に示す図である。本実施の形態にかかるケーブルシミュレーションにおいては、ケーブル340とケーブルガイド350は一体化しているものとして扱う。
図7は、ディスプレイ109に表示される3D画像の一例であって、3D画像は、ロボット30のアーム301と、アーム301にケーブルガイド350を取付けることによってケーブル340が取付けられる状態を示している。図7の3D画像は、プロセッサ102によって、機器画像データ2530およびケーブル画像データ2531のCADデータなどから生成される。ユーザーは、例えば、ディスプレイ109の画像を操作することにより、ケーブルガイド間にケーブル340を接続するかを否かを設定することができる。
ユーザーは、図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の長さを決定することができる。
(g2.データの関連性)
図9は、本実施の形態にかかるケーブルシミュレーションのデータの関連性をケーブルデータ146を用いて模式的に示す図である。本実施の形態では、図7と図8のユーザー設定操作によって、例えば、図1のように、4個のケーブルガイド350,351,352および353の取付け位置が設定される。これにより、各ケーブルガイド間に接続されるケーブル341,342および343が設定される。
図9では、図1のケーブル341,342および343のそれぞれに対応して、ケーブルデータ146が格納されることが示されている。ケーブルデータ146は、対応のケーブル340について、ケーブルパラメータ139の初期値140および2つの候補値141のそれぞれを用いたケーブルシミュレーションを実施した場合に取得されるデータを示す。
ケーブル341,342および343のケーブルデータ146を、それぞれ、ケーブルデータ(1)、ケーブルデータ(2)およびケーブルデータ(3)と称する。また、ケーブルデータ(1)、ケーブルデータ(2)およびケーブルデータ(3)に共通した説明では、ケーブルデータ146と総称する。
図9を参照して、ケーブルデータ146は、ケーブルパラメータ139の初期値140および候補値141のそれぞれに関連付けてケーブル挙動データ2521、負荷情報142および評価データ144を含む。
ここでは、ケーブルパラメータ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)を含む。
(g3.物理シミュレーションモデル)
図10は、本実施の形態にかかるケーブルの物理シミュレーションモデルの一例を模式的に示す図である。
本実施の形態にかかるケーブルシミュレータ165は、物理シミュレーションを実行する物理シミュレータを含む。図10を参照して、この物理シミュレーションでは、ケーブル340に対応するオブジェクト(第2の対象)は、隣接する剛体304間をジョイント(関節305)で接合することで複数の剛体304が連ねられてモデル化された剛体リンクを含む。具体的には、剛体304は所定のサイズおよび形状を有し、剛体リンクでは、剛体304間が関節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)に従い設定される。
ケーブルシミュレーションにおいては、ロボット30に対応する3次元仮想空間におけるオブジェクトの所与の挙動(機器挙動データ2520)に基づき、ケーブルパラメータ139を用いて、図10のモデルを表す拘束条件を含む拘束方程式を演算することによって、モデル(図10)の3次元仮想空間における挙動(ケーブル挙動データ2521)を算出する。
図11は、図10のケーブルの物理シミュレーションモデルの連立方程式147の一例を示す図である。方程式147は、図10の剛体304のそれぞれに対応の式Ati、BtiおよびCtiを含む。各式は、剛体304の位置(x軸、y軸およびz軸それぞれの座標)と姿勢(x軸、y軸およびz軸それぞれの傾きα(ロール)、β(ピッチ)、γ(ヨー))の変数を含み、これら変数の値を、連立方程式(方程式147)を解くことにより算出する。すなわち、ケーブルシミュレータ165は、連立方程式(方程式147)を、機器挙動データ2520に基づいて、パラメータ139を用いて、タイムステップti毎に繰返し解く。これにより、タイムステップti毎に、各剛体304の位置および姿勢に対応する変数の値を算出することができる。
(g4.拘束条件に従う位置更新)
さらに、ケーブルシミュレーションでは、位置ベースの物理シミュレーション(Position Based Dynamics:PBD)に従って、剛体304の位置が更新(修正)される。図12は、本実施の形態にかかる物理シミュレーションの位置の更新を模式的に示す図である。図12を参照して、ケーブルシミュレータ165が実施する剛体304の位置の更新処理を説明する。
具体的には、ケーブルシミュレーションでは、タイムステップ毎に、各剛体304の挙動が算出される。シミュレーションの結果、隣接する剛体304どうしが衝突すると、衝突した剛体304どうしの一方が他方に侵入(めり込む)することがある(図12(A))。ケーブルシミュレータ165は、剛体304が他の剛体304に侵入するか否かを検出する(図12(A))。
図12(A)では、ケーブルシミュレータ165は、タイムステップ毎に、算出されたオブジェクト(剛体304)どうしの3次元仮想空間における位置x0を用いて、予測位置Xpredict(Xpredict=x0+v×Δt、ただしx0=算出位置、Δt=タイムステップの時間、v=速度)を算出し、予測位置Xpredictの関係に基づき、オブジェクトどうしの衝突の有無を検出する。衝突は、例えば、3次元仮想空間におけるオブジェクトの位置(座標)と他のオブジェクトの位置(座標)との両者の距離が、例えば閾値以下であるとことを含む。閾値は、オブジェクトのサイズ(幅、高さなど)に基づく値であってもよい。なお、衝突の検出方法は、これに限定されない。
12(A)で侵入が検出されると、ケーブルシミュレータ165は、侵入を解決できるように、衝突した剛体304どうしの位置(位置:Xpredict)を変更する(図12(B))。この際、ある剛体304の位置X0(位置:Xpredict)が位置X(修正後の位置:Xcorrect)に変更されると、その変更に伴って、当該剛体304に隣接する他の剛体304の位置がずれる可能性がある。そして、このような位置の変更を繰返すと、ケーブルシミュレーションにおいて各剛体304の挙動が安定する状態となる。本実施の形態では、上記の拘束条件は、オブジェクトの挙動を、このような安定状態に移行させるための物理的な制約パラメータに対応する。
ケーブルシミュレータ165は剛体304の位置を変更すると、すなわち剛体304の位置X(修正後の位置:Xcorrect)を算出すると、速度vを変更する(図12(C))。具体的には、ケーブルシミュレータ165は、Vcorrect=(X−X0)/Δtにより変更後の速度Vcorrectを算出し、算出された速度Vcorrectを、次のタイムステップのための速度v(図12(A)の速度v)に設定する。
上記は剛体304のx座標の位置更新を説明しているが、ケーブルシミュレータ165は、y座標位置およびz座標位置についても、x座標位置の更新と同様に更新することができる。
このように、モデル化された剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式(式147および図12に示す式)に従う演算を、機器挙動データ2520に基づいて実施することにより、剛体リンクの挙動を算出する。これにより、各タイムステップでは、剛体304が侵入していない状態(めり込みが解消された状態)である剛体304からなる剛体リンクについて、その挙動を算出することができる。
(g5.ケーブル340の硬さに基づく位置更新)
本実施の形態にかかるケーブルシミュレーションでは、ケーブル340の挙動を安定状態に移行させるための拘束条件にかかるパラメータとして、ケーブル340の硬さを表すパラメータ149を含めることができる。硬さパラメータ149としては、例えば、ケーブル340の材料に固有のパラメータStiffnessおよびパラメータDampingを含む。パラメータStiffnessは、剛体304の変形のしにくさを示し、例えばヤング率と等価である。また、パラメータDampingは、剛体304の振動に対する減衰特性を示す。
パラメータDampingは、ケーブルシミュレーションにおいて、ケーブル340の振動を抑制するように作用する。具体的には、ロボット30に取付けられたケーブルガイド350は、ロボットエミュレータ160によって動く(挙動が変化する)ため、剛体304はロボット30の速度に応じて加速し、これに伴いケーブル340は振動し続けることになる。したがって、パラメータDampingを用いてケーブルシミュレーションが実施されることにより、ロボット30の挙動に伴いケーブルガイド350の位置が移動したときに、剛体304の速度を減速させてケーブル340の振動を抑制することが可能となる。
ケーブルシミュレータ165は、以下のSTEP1、STEP2およびSTEP3に示す演算を実行することにより、ケーブル340の硬さに基づく位置更新を実施する。
[STEP1]ケーブルシミュレータ165は、以下の(式1)の演算により、剛体304の直前のタイムステップで算出された位置(prevPositions[current])と現在のタイムステップで算出された位置(positions[current])から速度(var_velocity)を算出する。ケーブルシミュレータ165は、算出された速度に、(式2)〜(式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が衝突(一方が他方に侵入)しないと検出し、当該条件が満たされないと判定すると、当該衝突(侵入)があったと検出する。
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])を更新する。
prevPositions[current] = positions[current](式7);
positions[current] = positions[current] + velocity * Time.deltaTime(式8);
[STEP3]ケーブルシミュレータ165は、剛体304が隣接する他の剛体304に侵入した(めり込んだ)と検出した場合、侵入を解消する(めり込まない)位置まで、現在位置(positions[current])を変更する。この位置の変更は、図12で示した位置更新に従い実施される。
ケーブルシミュレータ165は、[STEP1]〜[STEP3]の操作を、すべての剛体304のx、yおよびzの各座標位置に対して繰返す。
これにより、各タイムスステップにおいて、剛体304それぞれの位置は、ケーブル340の材料に固有の硬さのパラメータ149に基づき算出さた位置であって、且つ侵入が解消(めり込みが解消)された位置となる。これにより、ケーブルシミュレータ165は、次のタイムステップのケーブルシミュレーションを、このような算出位置を用いて開始することができる。
<H.フローチャート>
図13は、本実施の形態にかかるケーブルシミュレーションと、それに関連する処理を概略的に示すフローチャートである。図13を参照して、ケーブルシミュレータ165は、ケーブルパラメータ139からパラメータ(ケーブル340の長さ(Cable length)パラメータ、ケーブル340の取付け位置(Offset From Guide Cad Data)パラメータ)を取得し、ケーブルシミュレーションプログラム137に設定する(ステップS103)。これにより、各ケーブルガイド間のケーブル340の長さ、すなわち剛体304の個数が設定される。ケーブルシミュレーションの開始時には、ステップS103では、初期値140のパラメータが設定される。説明のために、各ケーブルガイド間のケーブル340の長さは同じである。
ケーブルシミュレータ165は、タイムステップtiに初期値(i=1)を設定する(ステップS105)。その後は、タイムステップを1ステップづつ更新(すなわち、i=i+1)しながら(ステップS121)、(i=n)の条件が満たされるまで(ステップS107でYES)、機器挙動データ2520に基づき、ステップS103で設定されたパラメータを用いて、ケーブルシミュレーションを実施する(ステップS109〜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に格納される。
ステップS111において、現在のタイムステップtiにおけるオブジェクトの位置(各剛体304の位置)が算出されると、負荷算出モジュール166は、当該タイムステップtiのケーブルシミュレーション結果であるケーブル挙動データ2521に基づいて、剛体リンクにかかる負荷を算出し(ステップS113)、算出された負荷情報142を出力する(ステップS115)。負荷情報142は、ストレージ111に格納される。その後、次のタイムステップtiに進み(ステップS121)、ステップS107に戻る。ステップS107では、ケーブルシミュレータ165は、(ti>tn)の条件が満たされるかを判定する。
(ti>tn)の条件が満たされないときは(ステップS107でNO)、ステップS109に移行するが、当該条件は満たされると判定されると(ステップS107でYES)、ケーブルシミュレータ165は、ストレージ111に次のケーブルパラメータ139が格納されているか、すなわち候補値141が格納されているかを判定する(ステップS123)。
次のケーブルパラメータ139が格納されていないと判定されると(ステップS123でNO)、処理は終了するが、次のケーブルパラメータ139が格納されていると判定されると(ステップS123でYES)、ステップS103に戻る。これにより、次のケーブルパラメータ139(候補値141)が読出されて(ステップS103)、次のケーブルパラメータ139を用いたケーブルシミュレーション(ステップS105〜ステップS121)が実施される。
図13の処理によれば、ケーブルパラメータ139(初期値140、候補値141)のそれぞれに関連付けて、ケーブルのオブジェクト(剛体リンク)の挙動が算出されて(ステップS111)、算出結果であるケーブル挙動データ2521およびケーブル挙動データ2521に基づく負荷情報142が格納される(図9)。
<I.負荷の算出>
負荷算出モジュール166は、ケーブル挙動データ2521に基づき、図14に示すような、負荷情報142を算出する。本実施の形態では、ケーブル340にかかる負荷の種類1412として、曲げ、伸び、ひねり、衝突の回数、反発力を含むが、これらに限定されない。図14は、本実施の形態にかかる負荷情報142の一例を模式的に示す図である。図14では、ケーブル挙動データ(0)、ケーブル挙動データ(1)およびケーブル挙動データ(2)それぞれに関連付けられる、負荷情報(0)、負荷情報(1)および負荷情報(2)が示される。負荷情報(0)〜負荷情報(2)は、同様の項目を含むので、これらに共通した説明では負荷情報142と総称する。
図14を参照して、負荷情報142は、各ケーブルガイド間の位置1411毎に、当該ケーブルガイド間の剛体リンクを構成する各剛体304にかかる負荷であって、種類1412で示す負荷を含む。ケーブルガイド間の剛体リンクは、例えばj個の剛体304からなり、図14の位置1411は、各剛体304の位置(1、2,3,…jで示す位置)で特定されている。
負荷算出モジュール166は、各剛体304の挙動(位置と姿勢)に基づき、所定演算に従い当該剛体304、すなわち各位置1411にかかる負荷を算出する。例えば、各剛体304のひねり、曲げは、当該剛体304と隣接する剛体304の挙動から算出され、伸びは、隣接する剛体304間の距離(距離が大きいほど引っ張られている)から算出され、反発力は、上記に述べた衝突時に侵入した距離(距離が大きいほど反発力は大きい)から算出される。なお、負荷算出モジュール166が算出する衝突には、剛体304とは異なるオブジェクト(ロボット30、ワーク232、コンベア230など)との衝突が含まれてもよい。
<J.評価処理>
評価モジュール167は、負荷情報142(負荷情報(0)、負荷情報(1)および負荷情報(2))のそれぞれに基づき、当該負荷情報142に関連付けられた剛体リンクの挙動(ケーブル挙動データ2521)を評価する。評価モジュール167は、評価結果である評価データ144(評価データ(0)、評価データ(1)および評価データ(2))を、当該ケーブル挙動データ2521に関連付けて格納する(図9)。
図15は、本実施の形態にかかる評価処理のフローチャートである。評価モジュール167は、操作ユニット106からのユーザー操作に基づき、ケーブル挙動データ2521を評価するための条件を、評価プログラム143に設定する(ステップS131)。評価の所定条件は、例えば、負荷の種類1412毎の負荷の大きさの閾値を用いて示される。より具体的には、所定条件は、対応の負荷の値が最小であるケーブル挙動データ2521の算出に用いたケーブルパラメータ139を、ケーブル引き回しの設計のための最適値と特定してもよい。
評価モジュール167は、評価の所定条件に基づき、各ケーブルパラメータ139に関連付けられた負荷情報142を検索する(ステップS133)。検索の結果に基づき、評価モジュール167は、ケーブルパラメータ139それぞれに関連付けられた負荷情報142のうちから、所定条件を満たすような負荷情報142が検索されるか否かを判定する(ステップS135)。具体的には、全ての負荷の種類1412の値が、閾値未満となるような負荷情報142が検索できるか否かを判定する。
評価モジュール167は、所定条件を満たす負荷情報142が検索されないと判定すると(ステップS135でNO)、所定条件に一致するケーブル挙動データ2521は算出されていない、すなわちケーブルパラメータ139は設定されていない旨を出力する(ステップS139)。また、評価モジュール167は、所定条件を満たすような負荷情報142が検索されたと判定すると(ステップS135でYES)、所定条件に一致するケーブル挙動データ2521が算出されたので、当該算出に用いられた(当該算出時にステップS103で設定された)ケーブルパラメータ139、すなわち当該負荷情報142に関連付けられたケーブルパラメータ139を検索して出力する(ステップS137)。
ユーザーは、出力されたケーブルパラメータ139(ケーブル長(Cable Length)および取付け位置(Offset From Guide Cad Data)のパラメータ)から、評価の所定条件を満たすような最適なケーブル長と取付け位置となる、ケーブル340の引き回しを事前に設計することができる。また、引き回しの事前設計に従えば、したがってケーブル340の引き回し作業にかかる時間を短縮できるとともに、ケーブルガイド350などの引き回しの治具を事前に設計することも可能となる。
<K.表示例>
図16は、本実施の形態にかかる負荷情報142の表示画面の一例を示す図である。負荷算出モジュール166または評価モジュール167は、ディスプレイ109に、負荷情報142に基づく画像を表示する。図16では、例えば、曲げの負荷情報142のグラフが示される。グラフは、横軸に各剛体304の識別子(セグメント番号)である位置情報がとられて、縦軸には、曲げの値がとられている。また、図16では、タイムステップ毎のグラフが、タイムステップの時系列に従い、画面の奥行き方向に並べて表示されている。例えば3D表示により、各タイムステップにおけるオブジェクトの各位置にかかる負荷(曲げ)の大きさと、当該位置における負荷の大きさの経時的な変動を一画面で示すことができる。
ユーザーは、図16の画面から、ケーブル340のオブジェクトにおいて大きな負荷がかかる部分、または全体にかかる負荷を視認できるとともに、負荷情報142からオブジェクトに対応するケーブル340の寿命を予測することも可能となる。例えば、大きな負荷がかかる部分を特定するために、評価モジュール167は、各剛体304の識別子に対応した負荷のうち、閾値を超える負荷については、表示態様(表示色など)を変更する。図16は、曲げの情報の画面を例示するが、他の種類の負荷情報142であっても同様に表示することができる。
また、3Dビジュアライザ164は、シミュレーション結果である機器挙動データ2520およびケーブル挙動データ2521を用いて、3次元仮想空間をビジュアル化する画像データを生成してもよい。ディスプレイ109は、この画像データに基づく画像を表示する。これにより、ディスプレイ109は、ロボット30に取付けられたケーブル340がロボット30の動きに連動して動くような3次元画像を表示することができる。
<L.プログラム>
ケーブルシミュレーションは、図4の情報処理装置100のプロセッサ102がストレージ111などのメモリに格納されるプログラムを実行することにより提供される構成を例示したが、これらの提供される構成の一部または全部を、専用のハードウェア回路(たとえば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、情報処理装置100の主要部を、汎用的なアーキテクチャに従うハードウェアを用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOSを並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
また、情報処理装置100は、プロセッサを複数個備えてもよい。この場合は、ケーブルシミュレーションは、複数のプロセッサにより実行することが可能である。また、プロセッサ102が複数のコアを含む場合は、ケーブルシミュレーションは、プロセッサ102内の複数のコアにより実行することが可能である。
情報処理装置100の記憶媒体114は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。情報処理装置100のプロセッサ102は、これら記憶媒体から、上記に述べたケーブルシミュレーションにかかるプログラムまたは機器挙動データ2520を取得してもよい。
<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)とを備える、シミュレーションプログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
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 ケーブル画像。

Claims (15)

  1. 機器に取付けられるケーブルの挙動を算出するシミュレーション装置であって、
    前記機器に対応する仮想空間に配置された第1の対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出するケーブル挙動算出部と、
    前記ケーブル挙動算出部により算出された前記第2の対象の挙動を、当該挙動に基づき評価する評価部とを備える、シミュレーション装置。
  2. 前記第1の対象の挙動は、所定のタイムステップ毎に算出された挙動を含み、
    前記ケーブル挙動算出部は、
    前記タイムステップ毎に、当該タイムステップに対応の前記第1の対象の挙動に基づき、前記パラメータを用いて、前記第2の対象の挙動を算出する、請求項1に記載のシミュレーション装置。
  3. 前記ケーブル挙動算出部は、物理シミュレータを含む、請求項2に記載のシミュレーション装置。
  4. 前記第2の対象は、隣接する剛体間をジョイントで接合して連ねられてモデル化された剛体リンクを含み、
    前記物理シミュレータは、
    前記モデル化された前記剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、前記ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、前記第1の対象の挙動に基づいて実施することにより、前記第2の対象の挙動を算出する、請求項3に記載のシミュレーション装置。
  5. 前記ケーブル挙動算出部により算出された前記第2の対象の挙動に基づき、当該第2の対象にかかる負荷を算出する負荷算出部を、さらに備える、請求項4に記載のシミュレーション装置。
  6. 前記負荷は、前記第2の対象が備える各前記剛体にかかる負荷を含む、請求項5に記載のシミュレーション装置。
  7. 前記タイムステップの時系列に従い、各タイムステップで算出された前記第2の対象の挙動に基づく前記負荷を表示する、請求項5または6に記載のシミュレーション装置。
  8. 閾値を超える負荷の表示態様を変更する、請求項7に記載のシミュレーション装置。
  9. 前記評価部は、
    前記負荷算出部により算出された前記負荷に基づき、前記第2の対象の挙動を評価する、請求項5から8のいずれか1項に記載のシミュレーション装置。
  10. 前記パラメータを設定するパラメータ設定部を備え、
    前記負荷が所定条件を満たすとき、前記第2の対象の挙動の算出時に設定されたパラメータを出力する、請求項5から7のいずれか1項に記載のシミュレーション装置。
  11. 前記パラメータは、前記ケーブルの長さまたは前記ケーブルの取付け位置を含む、請求項1から8のいずれか1項に記載のシミュレーション装置。
  12. 前記パラメータは、前記ケーブルの硬さを表すパラメータを含む、請求項1から11のいずれか1項に記載のシミュレーション装置。
  13. 前記機器は、ロボットを含み、
    前記第1の対象の挙動は、前記ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出される、請求項1から12のいずれか1項に記載のシミュレーション装置。
  14. 前記仮想空間をビジュアル化した画像を生成する画像生成部を、さらに備える、請求項1から13のいずれか1項に記載のシミュレーション装置。
  15. コンピュータに、機器に取付けられるケーブルの挙動を算出する方法を実行させるシミュレーションプログラムであって、
    前記方法は、
    前記機器に対応する仮想空間に配置された第1の対象の挙動に基づき、前記ケーブルの取付けに関するパラメータを用いて、当該ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出するステップと、
    算出された前記第2の対象の挙動を、当該挙動に基づき評価するステップとを備える、シミュレーションプログラム。
JP2020008221A 2020-01-22 2020-01-22 シミュレーション装置およびシミュレーションプログラム Active JP7467932B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020008221A JP7467932B2 (ja) 2020-01-22 2020-01-22 シミュレーション装置およびシミュレーションプログラム
PCT/JP2020/047252 WO2021149419A1 (ja) 2020-01-22 2020-12-17 シミュレーション装置およびシミュレーションプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020008221A JP7467932B2 (ja) 2020-01-22 2020-01-22 シミュレーション装置およびシミュレーションプログラム

Publications (2)

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

Family

ID=76991680

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020008221A Active JP7467932B2 (ja) 2020-01-22 2020-01-22 シミュレーション装置およびシミュレーションプログラム

Country Status (2)

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

Families Citing this family (1)

* 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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182017A (ja) * 1993-12-24 1995-07-21 Nissan Motor Co Ltd 線条材のシミュレーション方法
JP2002073701A (ja) * 2000-08-30 2002-03-12 Toyota Central Res & Dev Lab Inc アセンブリ装置及びアセンブリ方法
WO2004104868A1 (ja) * 2003-05-19 2004-12-02 Fujitsu Limited ハーネス設計支援装置並びにハーネス設計支援プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6950347B2 (ja) 2017-08-10 2021-10-13 オムロン株式会社 情報処理装置、情報処理方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182017A (ja) * 1993-12-24 1995-07-21 Nissan Motor Co Ltd 線条材のシミュレーション方法
JP2002073701A (ja) * 2000-08-30 2002-03-12 Toyota Central Res & Dev Lab Inc アセンブリ装置及びアセンブリ方法
WO2004104868A1 (ja) * 2003-05-19 2004-12-02 Fujitsu Limited ハーネス設計支援装置並びにハーネス設計支援プログラムおよび同プログラムを記録したコンピュータ読取可能な記録媒体

Also Published As

Publication number Publication date
WO2021149419A1 (ja) 2021-07-29
JP7467932B2 (ja) 2024-04-16

Similar Documents

Publication Publication Date Title
JP6458713B2 (ja) シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP7388074B2 (ja) シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法
CN106181964B (zh) 机器人程序生成装置
CN109849025B (zh) 振动抑制装置
JP2017094407A (ja) シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP2019166626A (ja) 制御装置及び機械学習装置
US11975451B2 (en) Simulation-in-the-loop tuning of robot parameters for system modeling and control
WO2022137581A1 (ja) シミュレーション装置およびシミュレーションプログラム
WO2021149419A1 (ja) シミュレーション装置およびシミュレーションプログラム
JP7447568B2 (ja) シミュレーション装置およびプログラム
JP7475841B2 (ja) 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置
TWI781708B (zh) 學習裝置、學習方法、學習程式、控制裝置、控制方法及控制程式
EP4052865A1 (en) Information processing apparatus, robot system, information processing method, program, and recording medium
CN114800523B (zh) 机械臂轨迹修正方法、系统、计算机及可读存储介质
WO2021181804A1 (ja) シミュレーション装置およびプログラム
JP2022135939A (ja) 情報処理装置、ロボットシステム、物品の製造方法、情報処理方法、プログラム、及び記録媒体
US20230249347A1 (en) Path planning during execution of robot control
da Rosa et al. Design and Implementation of a Platform for Controlling the Mentor Robotic Arm
Fratu et al. Predictive strategy for robot behavioral control

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