JP2022099420A - シミュレーション装置およびシミュレーションプログラム - Google Patents
シミュレーション装置およびシミュレーションプログラム Download PDFInfo
- Publication number
- JP2022099420A JP2022099420A JP2020213178A JP2020213178A JP2022099420A JP 2022099420 A JP2022099420 A JP 2022099420A JP 2020213178 A JP2020213178 A JP 2020213178A JP 2020213178 A JP2020213178 A JP 2020213178A JP 2022099420 A JP2022099420 A JP 2022099420A
- Authority
- JP
- Japan
- Prior art keywords
- cable
- behavior
- partial
- simulation
- parameter
- 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.)
- Pending
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 225
- 238000004364 calculation method Methods 0.000 claims abstract description 56
- 230000036544 posture Effects 0.000 claims description 61
- 238000000034 method Methods 0.000 claims description 48
- 238000011156 evaluation Methods 0.000 claims description 23
- 230000002093 peripheral effect Effects 0.000 claims description 15
- 238000005304 joining Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 abstract description 6
- 230000006399 behavior Effects 0.000 description 216
- 230000033001 locomotion Effects 0.000 description 58
- 238000005457 optimization Methods 0.000 description 35
- 230000010365 information processing Effects 0.000 description 31
- 238000012545 processing Methods 0.000 description 29
- 230000008569 process Effects 0.000 description 23
- 238000003860 storage Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 14
- 238000011960 computer-aided design Methods 0.000 description 11
- 238000005452 bending Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 238000007726 management method Methods 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 238000013016 damping Methods 0.000 description 5
- 238000006073 displacement reaction Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 239000012636 effector Substances 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 239000012212 insulator Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000005483 Hooke's law Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 229920001971 elastomer Polymers 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920003023 plastic Polymers 0.000 description 1
- 239000011347 resin Substances 0.000 description 1
- 229920005989 resin Polymers 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
- 125000000391 vinyl group Chemical group [H]C([*])=C([H])[H] 0.000 description 1
- 229920002554 vinyl polymer Polymers 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1671—Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2113/00—Details relating to the application field
- G06F2113/16—Cables, cable trees or wire harnesses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/14—Force analysis or force optimisation, e.g. static or dynamic forces
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
- Electric Cable Installation (AREA)
Abstract
【課題】機器に取付けられるケーブルの引き回しを事前に設計する。【解決手段】ケーブルシミュレータは、各部分ケーブルについて、複数のパラメータセットそれぞれについて、当該パラメータセットを用いて算出される当該部分ケーブルに対応する対象の挙動を算出し、算出された挙動に基づき当該対象にかかる負荷を算出する。ケーブルシミュレータは、各部分ケーブルについて、制約条件を満たす負荷を有した挙動の算出に用いられたパラメータセットを判定し、判定されたパラメータセットの集合から、ケーブル全体の取付けに関するパラメータセットを決定する。【選択図】図1
Description
本開示は、3次元仮想空間に配置された対象の挙動を推定できるシミュレーション装置およびシミュレーションプログラムに関する。
コンピュータを用いたシミュレーションは様々な技術分野に応用されている。このようなシミュレーションをFA(Factory Automation)に利用した例として、例えば、特開2016-042378号公報(特許文献1)は、機械の動きを制御するコントローラにおいて実行される制御プログラムのシミュレーションを開示する。
FAの分野では、機械の一例である産業用ロボットに取付けられるケーブルの引き回しを事前に設計したいとの要望があった。より具体的には、従来、産業用ロボットのケーブルを引き回す場合、ユーザは、ケーブルを実際に操作しながら、適切な取付け位置またはケーブル長を決定する作業をしていたが、この作業は試行錯誤を繰り返すことから長時間を要していた。したがって、ケーブル引き回し(取付け位置またはケーブル長など)を事前に設計したいとの要望があった。
本開示の目的は、機器に取付けられるケーブルの引き回しを事前に設計することを可能にするシミュレーション装置およびシミュレーションプログラムを提供することである。
この開示に係る、機器に複数ガイドを介し取付けられるケーブルの挙動を算出するシミュレーション装置は、仮想空間に配置された機器に対応する第1の対象の挙動に基づき、当該仮想空間における各複数ガイドの位置および姿勢と、各ガイド間の部分ケーブル長とを含むケーブル取付けに関するパラメータセットを用いて、各ガイド間の部分ケーブルに対応する仮想空間に配置された第2の対象の挙動を算出する部分ケーブル挙動算出部と、各部分ケーブルについて、複数のパラメータセットそれぞれについて、部分ケーブル挙動算出部により当該パラメータセットを用いて算出される当該部分ケーブルに対応する第2の対象の挙動に基づき、当該部分ケーブルに対応する当該第2の対象にかかる負荷を算出し、各のパラメータセットについて、当該部分ケーブルに対応する第2の対象の算出された負荷の大きさが、制約条件を満たすかを判定するパラメータ判定部と、各部分ケーブルについて、パラメータ判定部によって制約条件を満たすと判定された1つ以上のパラメータセットから、各部分ケーブルをあわせたケーブル全体の取付けに関する条件を満たすパラメータセットを決定するパラメータ決定部と、を備える。
この開示によれば、部分ケーブル毎にパラメータセットを判定し、各部分ケーブルの判定されたパラメータセットからケーブル全体を機器に取付けるためのパラメータセットを決定できる。
上述の開示では、制約条件は、部分ケーブルに対応する第2の対象にかかる負荷の大きさが閾値を超えないとの条件を含む。
この開示によれば、各部分ケーブルのパラメータを、当該部分ケーブルに対応する第2の対象にかかる負荷の大きさが閾値を超えないとの条件に従い判定できる。
上述の開示では、制約条件は、部分ケーブルの長さが予め定められた範囲で変化する場合に、当該部分ケーブルに対応する第2の対象にかかる負荷の大きさが閾値を超えないとの条件を含む。
この開示によれば、部分ケーブルのパラメータ判定の条件には、部分ケーブルの長さが所定範囲で変化しても負荷の大きさが閾値を超えない、すなわちケーブルの長さに対する頑強性を満たすとの条件を適用できる。
上述の開示では、ケーブル全体の取付けに関する条件は、隣接する部分ケーブルの間で共有されるガイドの位置および姿勢は共通するとの条件を含む。
この開示によれば、ケーブル全体のパラメータの条件は、隣接する部分ケーブルの間で共有されるガイドの位置および姿勢は共通するとの条件を含む。
上述の開示では、第1の対象の挙動は、所定のタイムステップ毎に算出された挙動を含み、部分ケーブル挙動算出部は、タイムステップ毎に、当該タイムステップに対応の第1の対象の挙動に基づき、パラメータセットを用いて、第2の対象の挙動を算出する。
上述の開示によれば、タイムステップ毎に算出される機器の挙動に基づき、タイムステップ毎にケーブルの挙動を算出することができる。
上述の開示では、部分ケーブル挙動算出部は、物理シミュレータを含む。
上述の開示によれば、ケーブルの挙動を、物理シミュレータで算出することができる。
上述の開示によれば、ケーブルの挙動を、物理シミュレータで算出することができる。
上述の開示では、第2の対象は、隣接する剛体間をジョイントで接合して連ねられてモデル化された剛体リンクを含み、物理シミュレータは、モデル化された剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、第1の対象の挙動に基づいて実施することにより、第2の対象の挙動を算出する。
上述の開示によれば、ケーブルを拘束条件が課された剛体リンクにモデル化し、当該モデルを示す方程式により挙動を算出することができる。
上述の開示では、拘束条件は、ケーブルの硬さを表すパラメータを含む。
上述の開示によれば、機器に取付けられるべきケーブルの硬さを用いて、部分ケーブルに対応の第2の対象の挙動を算出できる。
上述の開示によれば、機器に取付けられるべきケーブルの硬さを用いて、部分ケーブルに対応の第2の対象の挙動を算出できる。
上述の開示では、負荷は、第2の対象が備える各剛体にかかる負荷を含む。
上述の開示によれば、各剛体にかかる負荷を算出することができる。
上述の開示によれば、各剛体にかかる負荷を算出することができる。
上述の開示では、部分ケーブル挙動算出部により算出された第2の対象の挙動を、算出される負荷に基づき評価する評価部を、さらに備える。
上述の開示によれば、部分ケーブル毎に、対応の第2の対象の挙動を、算出される負荷に基づき評価できる。
上述の開示では、機器は、ロボットを含み、第1の対象の挙動は、ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出される。
上述の開示によれば、ロボットに取付けられるケーブルについての挙動のシミュレーションを、ロボットプログラムのエミュレータで算出される第1の対象の挙動に基づき実施することができる。
上述の開示では、シミュレーション装置は、仮想空間に配置された、上記ロボットの周辺機器に対応する対象の挙動を、当該周辺機器を制御する命令またはパラメータを含むシミュレーションプログラムを実行して算出する。
上述の開示によれば、同一仮想空間における、ケーブルに対応する第2の対象の挙動とと、周辺機器に対応する対象の挙動とを算出できる。
上述の開示では、シミュレーション装置は、仮想空間をビジュアル化した画像を生成する画像生成部を、さらに備える。
上述の開示によれば、シミュレーションされたオブジェクト配置の仮想空間を視覚化してユーザに提供することができる。
本開示にかかるシミュレーションプログラムは、コンピュータに、複数ガイドを介し機器に取付けられるケーブルの挙動を算出する方法を実行させるプログラムである。
上記の方法は、仮想空間に配置された機器に対応する第1の対象の挙動に基づき、当該仮想空間における各複数ガイドの位置および姿勢と、各ガイド間の部分ケーブル長とを含むケーブル取付けに関するパラメータセットを用いて、各ガイド間の部分ケーブルに対応する仮想空間に配置された第2の対象の挙動を算出するステップと、各部分ケーブルについてパラメータを判定するステップと、を備え、パラメータを判定するステップは、各部分ケーブルについて、複数のパラメータセットそれぞれについて、当該パラメータセットを用いて算出される当該部分ケーブルに対応する第2の対象の挙動に基づき、当該部分ケーブルに対応する当該第2の対象にかかる負荷を算出するステップと、各複数のパラメータセットについて、当該部分ケーブルに対応する第2の対象の算出された負荷の大きさが、制約条件を満たすかを判定するステップと、を含み、方法は、さらに、パラメータを判定するステップにおいて、各部分ケーブルについて、制約条件を満たすと判定された1つ以上のパラメータセットから、各部分ケーブルをあわせたケーブル全体の取付けに関する条件を満たすパラメータセットを決定するステップを、備える。
この開示によれば、部分ケーブル毎にパラメータセットを判定し、各部分ケーブルの判定されたパラメータセットからケーブル全体を機器に取付けるためのパラメータセットを決定できる。
本開示によれば、機器に取付けられるケーブルの引き回しを事前に設計することができる。
以下に、図面を参照しつつ、各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
<A.適用例>
本発明が適用される場面の一例について説明する。図1は、本実施の形態にかかるケーブルシミュレーション装置1Bの適用場面の一例を模式的に示す図である。図1を参照して、ケーブルシミュレーション装置1Bは、FAの生産ラインに備えられる機器の一例であるロボット30に取付けられ得るケーブル340の挙動を算出(推定)する。なお、ケーブル340が取付けられる機器は、ロボット30に限定されない。また、ロボット30は、限定されないが、例えば多関節で構成されるアーム301を備える。ロボット30は、先端のアーム301に、コネクタ7によって脱着自在に装着されるロボットハンド210を備える。ケーブル340は、ロボットハンド210のケーブルガイド、アーム301の表面306(図21参照)に設置されるケーブルガイド350および351を介して取付けられる。以下では、ケーブルガイドを、単にガイドともいう。これら複数のガイドによってケーブル340がロボット30に取付けられる状態において、各ガイド間のケーブルを部分ケーブルと呼ぶ。図1において、部分ケーブルは、ロボットハンド210のガイドとガイド350の間の部分ケーブル341、ガイド350と351の間の部分ケーブル342、およびガイド351と352の間の部分ケーブル343を含む。ケーブル340を、部分ケーブルと区別するために、全体ケーブル340とも呼ぶ。
本発明が適用される場面の一例について説明する。図1は、本実施の形態にかかるケーブルシミュレーション装置1Bの適用場面の一例を模式的に示す図である。図1を参照して、ケーブルシミュレーション装置1Bは、FAの生産ラインに備えられる機器の一例であるロボット30に取付けられ得るケーブル340の挙動を算出(推定)する。なお、ケーブル340が取付けられる機器は、ロボット30に限定されない。また、ロボット30は、限定されないが、例えば多関節で構成されるアーム301を備える。ロボット30は、先端のアーム301に、コネクタ7によって脱着自在に装着されるロボットハンド210を備える。ケーブル340は、ロボットハンド210のケーブルガイド、アーム301の表面306(図21参照)に設置されるケーブルガイド350および351を介して取付けられる。以下では、ケーブルガイドを、単にガイドともいう。これら複数のガイドによってケーブル340がロボット30に取付けられる状態において、各ガイド間のケーブルを部分ケーブルと呼ぶ。図1において、部分ケーブルは、ロボットハンド210のガイドとガイド350の間の部分ケーブル341、ガイド350と351の間の部分ケーブル342、およびガイド351と352の間の部分ケーブル343を含む。ケーブル340を、部分ケーブルと区別するために、全体ケーブル340とも呼ぶ。
部分ケーブル341、342および343は、これらに共通する説明においては、「部分ケーブル」と呼ぶ。ケーブル340は、例えば、信号線を構成する線状の導電体を絶縁体で被覆して構成される。絶縁体の材料としては、限定されないが、プラスチック、ゴム、ビニールなどの樹脂材料を用いることができる。また、導電体の材料としては、限定されないが、電気導電性を有する金属を用いることができる。ケーブル340は、例えば、空気などの気体が流通するエアケーブルを含んでもよい。また、ガイド350、351および352は、同様の特徴(形状、材料など)を有するので、これらに共通する説明においては、「ガイド」と総称する。ケーブル340が、ガイドを介してロボット30に取付けられることで、ロボットコントローラ310(図2参照)などの他の機器はケーブル340を介してロボット30との間で信号を遣り取りすることが可能となる。
一般にロボット用のケーブル340は高価であること、また上記に述べたように引き回し作業は長時間を要することに鑑みると、実機のロボット30に取付けられるケーブル340の適切な引き回しを事前に設計し、その設計結果に基づき、ユーザがケーブル340の引き回しを実施すれば、ケーブル340の引き回しにかかる費用および作業時間を含むコストを低減できる。ケーブルシミュレーション装置1Bによってケーブルシミュレーションを実施することで、この事前設計が実現される。
より具体的には、ケーブルシミュレーション装置1Bは、機器(ロボット30)の挙動を表す機器挙動データ2520を生成する機器挙動生成モジュール151と、ロボット30に取付けられるケーブル340に対応するオブジェクト(以下、第2の対象とも呼ぶ)の3次元仮想空間における挙動を算出(推定)するケーブルシミュレータ165とを含む。機器挙動データ2520は、ロボット30に対応するオブジェクト(以下、第1の対象とも呼ぶ)であって、全体ケーブル340のオブジェクトが配置される3次元仮想空間と同一の空間に配置されるオブジェクトの挙動を示す。「第1の対象」は、限定されないが、例えば、ロボット30および当該ロボット30に装着されたロボットハンド210に対応するオブジェクトを含む。
ケーブルシミュレータ165は、オブジェクトの3次元仮想空間における挙動を、機器挙動データ2520および複数のパラメータセットを用いて算出する。この3次元仮想空間には、例えば直交するX軸,Y軸およびZ軸で規定される3次元の絶対座標系が適用される。ケーブルシミュレーション装置1Bは、例えば汎用コンピュータで構成される情報処理装置100に実装され得て、情報処理装置100が、所定のプログラムを実行することにより、機器挙動生成モジュール151、ケーブルシミュレータ165および評価モジュール177が実現される。
ケーブルシミュレータ165は、ロボット30に設置された複数ガイドを介して取付けられるケーブル340の挙動を算出し、算出された挙動に基づき、複数のパラメータセットのうちから、ケーブル340全体の取付けに関する最適なパラメータセットを決定する。ケーブルシミュレータ165は、ケーブル340全体の取付けに関する最適なパラメータセットを決定するために、各部分ケーブルのパラメータセットを最適化するための部分ケーブル最適化部と、ケーブル340全体のパラメータセットを最適化するための全体ケーブル最適化部とを含む。部分ケーブル最適化部は、各部分ケーブルについて取付けに関する最適なパラメータセットを判定する「パラメータ判定部」の一実施例である。本開示では、取付けに関するパラメータセットは、ガイドの位置・姿勢とケーブル長を含む。
部分ケーブル最適化部は、「部分ケーブル挙動算出部」の一実施例である部分ケーブル挙動算出モジュール166と、「負荷算出部」の一実施例である負荷算出モジュール167と、「制約条件判定部」の一実施例である制約条件判定モジュール168と、頑強性判定モジュール169とを含む。部分ケーブル挙動算出モジュール166は、隣り合う位置で設置されたガイド間の部分ケーブルそれぞれについて、当該部分ケーブルの取付けに関するパラメータセットを、負荷算出モジュール167、制約条件判定モジュール168および頑強性判定モジュール169を用いて最適化する。より具体的には、部分ケーブル挙動算出モジュール166によって、仮想空間に配置された機器に対応する第1の対象の挙動(機器挙動データ2520)に基づき、当該仮想空間における各ガイドの位置と、各ガイド間の部分ケーブル長とを含む各パラメータセットを用いて、各パラメータセットについて、各ガイド間の部分ケーブルに対応する仮想空間に配置された第2の対象の挙動を算出する。
負荷算出モジュール167は、複数のパラメータセットそれぞれについて、部分ケーブル挙動算出モジュール166により算出された各部分ケーブルに対応する第2の対象の挙動に基づき、当該第2の対象にかかる負荷を算出する。負荷算出モジュール167が算出する負荷の種類は限定されないが、例えば機器挙動データ2520に従って機器が挙動した場合に、第2の対象の曲げ、伸び、ひねり、および衝撃(第2の対象の衝突)、衝突した場合に第2の対象に加わる力(反応力)などを含み得る。
制約条件判定モジュール168は、各部分ケーブルに対応する第2の対象について算出された負荷の大きさが制約条件を満たすかを判定する。より具体的には、制約条件は、当該負荷の大きさが閾値を超えないとの条件を含み得る。また、制約条件には、各部分ケーブルの長さが予め定められた範囲で変化する場合であっても、当該部分ケーブルに対応する第2の対象にかかる負荷の大きさが上記の閾値を超えないとの条件(以下、頑強性条件ともいう)が含まれ得る。制約条件判定モジュール168は、各種の負荷の大きさが閾値を超えないとき、各種負荷の大きさが制約条件を満たすことを判定する。頑強性判定モジュール169は、各部分ケーブルの対応する第2の対象について算出された負荷の大きさが、上記の頑強性条件を満たすかを判定する。
ケーブルシミュレータ165は、制約条件判定モジュール168または頑強性判定モジュール169によって、各部分ケーブルについて、制約条件(または頑強性条件を含む制約条件)を満たすと判定された1つ以上のパラメータセットを、当該部分ケーブルの最適パラメータセットの集合D2,nに決定する。
全体ケーブル最適化部のパラメータ決定モジュール170は、「パラメータ決定部」の一実施例である。パラメータ決定モジュール170は、制約条件を満たすと判定された各部分ケーブルの最適パラメータセットの集合D2,nから、各部分ケーブルをあわせた全体ケーブル340の取付けに関する条件を満たす全体ケーブルの最適パラメータセットd*を決定する。全体ケーブル340の取付けに関する条件は、例えば、各部分ケーブルを合わせた全体ケーブル340のケーブル長を最短にするようなパラメータセットであるとの条件を含む。
本開示では、制約条件を満たすパラメータセットは、さらに、シミュレーションによる計算の誤差やユーザのケーブル装着の誤差といった外乱に対する頑強性を満たすように構成されてもよい。より具体的には、各部分ケーブルの最適パラメータセットは、当該部分ケーブル長が一定範囲で短縮および延長された場合であっても、上記の制約条件を満たすようなパラメータセットが最適であると判定される。
部分ケーブル毎の最適パラメータセットが判定されると、パラメータ決定モジュール170は、全体ケーブル340の取付けに関する最適パラメータセットを決定する。パラメータ決定モジュール170は、隣り合う部分ケーブル同士を結合するためには、両部分ケーブルの間でガイドの位置・姿勢が共有される必要があるとの隣接条件の下で、各部分ケーブルの最適パラメータセットの集合から、全体ケーブル340の最適パラメータセットd*を決定する。また、全体ケーブル340について複数の最適パラメータセットが得られる場合は、パラメータ決定モジュール170は、複数の最適パラメータセットのうちから、全体ケーブル340の長さを最短とするようなパラメータセットを選択する。
このように、本開示では機器挙動データ2520が示すロボット30の予め定められたモーションに対して、ケーブル取付けに関するパラメータ、すなわちケーブル長とガイドを設置する位置・姿勢(「位置・姿勢」は、位置および姿勢を表す)で構成されるパラメータセットを最適化する。シミュレーションにおいて、仮に、全体ケーブル340を取付けるガイドの位置・姿勢とガイド間のケーブル長を同時に最適化対象とすると、パラメータ数が多すぎて当該シミュレーションに多くのコスト(計算時間など)がかかる。対照的に、本開示に係るケーブルシミュレータ165は、全体ケーブル340の取付けに関するパラメータセットの最適化を、各部分ケーブルのパラメータセットの最適化に分割して実施する。これにより、シミュレーションによるパラメータセットの最適化を、隣り合うガイドの位置・姿勢とそれらガイド間の部分ケーブル長からなる限られた数のパラメータの最適化に置き換えることができる。したがって、シミュレーションにかかるコストを低減して、シミュレーションによる決定された全体ケーブル340のパラメータセットを用いて、機器に取付けられるケーブルの引き回しを事前に設計できる。
以下、本実施の形態のより具体的な応用例について説明する。
<B.制御システムの例>
図2は、本実施の形態にかかるシミュレーション装置1によってシミュレーションされる機器を模式的に示す図である。シミュレーション装置1は、FAの生産ラインに備えられる制御システム2のPLC(プログラマブルロジックコントローラ)200が制御する実機である機器の挙動を推定するシステムシミュレーション装置1Aを備える。シミュレーション装置1は、たとえば、PC(Personal Computer)、タブレット端末などの端末装置を含む汎用コンピュータで構成される情報処理装置100に実装され得て、情報処理装置100が、所定のプログラムを実行することにより、機器の挙動を推定するシステムシミュレーションが実現される。情報処理装置100は、ユーザが制御システム2を運用するのを支援するための支援ツールを提供する。支援ツールは、シミュレーションの実行環境、制御システム2のための制御プログラムの実行環境、および制御システム2の通信環境などを準備するための設定ツールを含む。支援ツールは、例えばUI(User Interface)によってユーザに提供される。
<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に送られる。
また、PLC200が、情報処理装置100が有するシミュレーション装置1のコンポーネントを有してもよい。
<C.制御システムの全体構成>
図3は、本実施の形態にかかる制御システム2のユニット構成の一例を示す模式図である。図3を参照して、制御システム2は、PLC200と、PLC200とフィールドネットワーク22を介して接続されるサーボモータドライバ531,532およびリモートIOターミナル5と、ケーブル340を接続するロボットコントローラ310と、フィールドに設けられたIOデバイスである例えば、光電センサ6、ストッパ8が備える近接センサ87およびエンコーダ236、238を含む。
図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に出力する。
<D.ハードウェア構成>
次に、本実施の形態にかかるシミュレーション装置1のハードウェア構成の一例について説明する。
次に、本実施の形態にかかるシミュレーション装置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、物理シミュレーションに関する物理シミュレーションパラメータ124、PLCシミュレーションプログラム126、PLCシミュレーションに関するPLCパラメータ128、ロボットエミュレーションプログラム130、ロボットエミュレーションに関するロボットパラメータ132、統合プログラム134およびケーブルシミュレーションプログラム137を格納する。ストレージ111は、さらに、3次元仮想空間に配置されたオブジェクトを表示する画像を生成する画像処理プログラム136、評価プログラム143およびパラメータ設定プログラム145を格納する。
ケーブルシミュレーションプログラム137は、実行されると、図1に示した部分ケーブル最適化部の各種モジュールと、全体ケーブル最適化部のパラメータ決定モジュール170を有するケーブルシミュレータ165を実現する。ケーブルシミュレーションプログラム137は、制約条件判定モジュール168を実現する制約条件判定プログラム1371および頑強性判定モジュール169を実現するための頑強性判定プログラム1372を含む。ケーブルシミュレーションプログラム137が実行されることによって算出されるケーブルのオブジェクトにかかる負荷は、負荷情報142として格納される。
評価プログラム143は、ケーブルシミュレーションプログラム137が算出したケーブル340に対応するオブジェクトの挙動に基づき、当該挙動を評価し、評価結果を示す評価データ144を出力する。評価データ144は、ストレージ111に格納され得る。評価データは、ケーブルシミュレーションにおいてケーブルのモデルにかかる負荷を評価すデータを含む。
パラメータ設定プログラム145は、例えば、情報処理装置100に対するユーザ操作内容に基づき設定されるケーブルパラメータ139を、ストレージ111に格納する。ケーブルパラメータ139は、制約条件の閾値、後述する頑強性の範囲R、候補パラメータセットなどを含む。ケーブルパラメータ139は、さらに、ケーブル340の曲げ定数、ダンピング係数、Stiffness(剛性)の値などを含む。
仮想時刻生成プログラム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)データなどを含んでもよい。
図4には、単一の情報処理装置100でシミュレーション装置1を実現する例を示したが、複数の情報処理装置を連係させてシミュレーション装置1を実現するようにしてもよい。この場合には、シミュレーション装置1を実現するために必要な処理の一部を情報処理装置100で実行させるとともに、残りの処理をネットワーク上のサーバ(クラウド)などで実行するようにしてもよい。
図4は、プロセッサ102が1または複数のプログラムを実行することで、シミュレーション装置1が実現される例を示すが、シミュレーション装置1を実現するために必要な処理および機能の一部を、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)などの回路を用いて実装するようにしてもよい。
<E.機能構成>
次に、本実施の形態にかかるシミュレーション装置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が実行されることにより実現される機能を含み得る。
次に、本実施の形態にかかるシミュレーション装置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が実行されることにより実現される機能を含み得る。
(E1.システムシミュレーション装置1Aの構成)
図5を参照して、システムシミュレーション装置1Aは、仮想空間情報管理モジュール150と、PLCシミュレータ152と、ワーク挙動シミュレータ155と、物理シミュレータ156と、中継モジュール158と、ロボットエミュレータ160と、ワークトラッキングモジュール162とを含む。
図5を参照して、システムシミュレーション装置1Aは、仮想空間情報管理モジュール150と、PLCシミュレータ152と、ワーク挙動シミュレータ155と、物理シミュレータ156と、中継モジュール158と、ロボットエミュレータ160と、ワークトラッキングモジュール162とを含む。
仮想空間情報管理モジュール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は、物理演算により算出されたロボットハンド210の3次元座標P(x、y、z)を、機器挙動データ2520として格納する。物理シミュレータ156は、タイムステップti(i=1,2,3,・・・)毎に実行されることにより、機器挙動データ2520は、ロボットハンド210に対応した時系列の3次元座標P(x、y、z)を含む。
ワークトラッキングモジュール162は、ロボットエミュレーションプログラム130が実行されることで実現される。ワークトラッキングモジュール162は、ロボットエミュレータ160からのロボット30の挙動情報に基づいて、3次元仮想空間においてロボット30によりピックアンドプレースされるワーク232をトラッキングする。ワークトラッキングモジュール162によりトラッキングされるワーク232の位置情報(ワーク位置)は、仮想空間情報105に反映される。
(E2.ケーブルシミュレーション装置1Bの構成)
図5を参照して、ケーブルシミュレーション装置1Bは、ケーブルシミュレーションプログラム137が実行されることにより実現されるケーブルシミュレータ165および評価プログラム143が実行されることにより実現される評価モジュール177を含む。
図5を参照して、ケーブルシミュレーション装置1Bは、ケーブルシミュレーションプログラム137が実行されることにより実現されるケーブルシミュレータ165および評価プログラム143が実行されることにより実現される評価モジュール177を含む。
ケーブルシミュレータ165は、タイムステップti毎に実行されることにより、当該タイムステップtiに対応した機器挙動データ2520のデータに基づき、ケーブルパラメータ139を用いて、当該ケーブル340に対応する3次元仮想空間に配置されたオブジェクトの挙動を算出し、算出結果をケーブル挙動データ2521として格納する。
ケーブルシミュレータ165は、タイムステップti毎に、ケーブル340に対応するオブジェクトの挙動を算出することで、ケーブル挙動データ2521によって、3次元仮想空間におけるケーブル340の時系列の挙動が示される。
3Dビジュアライザ164は、3次元仮想空間を視覚化した画像を生成する画像生成部に相当する。3Dビジュアライザ164は、仮想空間情報105のタイムステップti毎の指令値に基づいて、ワーク232、ロボット30、ロボットハンド210および周辺機器にそれぞれ対応する3次元仮想空間のオブジェクトの3次元座標P(x、y、z)を算出する。時系列の3次元座標P(x、y、z)を含む機器挙動データ2520が算出される。周辺機器は、例えばロボット30(ロボットアーム301)の周辺機器であって、ワーク232の搬送に関連する機器などを含む。
3Dビジュアライザ164は、機器挙動データ2520および機器画像データ2530に基づき、3次元仮想空間における機器の挙動を視覚化する画像データを生成し、また、ケーブル挙動データ2521およびケーブル画像データ2531に基づき、3次元仮想空間におけるケーブルの挙動を視覚化する画像データを生成する。これら画像データはディスプレイ109に出力される。これにより、システムシミュレーションによる算出された機器の挙動を示す画像と、ケーブルシミュレーションにより算出されたケーブル340の挙動を示す画像が、ディスプレイ109に表示される。
周期生成モジュール154は、仮想時刻生成プログラム120が実行されることにより実現される。周期生成モジュール154は、プロセッサ102が有するタイマ(図示せず)の出力に基づき、タイマの出力に同期した信号STを他の各部に出力する。各部は、周期生成モジュール154から信号STが出力される周期である所定のタイムステップtiに同期して処理またはプログラムを実行する。これにより、図5の各部は、タイムステップti毎に互いに同期して実行される。信号STの出力周期は、限定されないが、図3の制御システム2の時刻同期に従うフィールドネットワーク22の通信周期(以下、「制御周期」ともいう。)に基き決定されてもよい。なお、信号STに基づくタイムステップtiが示す周期は、可変であってよい。タイムステップtiの「i」の値は、信号STの出力周期に同期して、例えば1,2,3・・・のように予め定められた最大値まで変化し、当該最大値は、上記に述べた予め定められたモーションの開始から終了までの所要時間の長さに基づき決定され得る。
図5に示すような各機能が互いに連携することで、機器の挙動に連動したケーブル340の挙動を再現することができる。
本実施の形態では、図5のシミュレーション装置1は、例えば操作ユニット106を介して受付けるユーザからの指示に従い、システムシミュレーション装置1Aとケーブルシミュレーション装置1Bの一方を起動することができる。また、シミュレーション装置1は、例えば操作ユニット106を介して受付けるユーザからの指示に従い、システムシミュレーション装置1Aまたはケーブルシミュレーション装置1Bを起動するタイミングを決定することができる。例えば、シミュレーション装置1は、システムシミュレーション装置1Aが起動され、その後に、ケーブルシミュレーション装置1Bの起動タイミングを設定する。これにより、ケーブルシミュレーション装置1Bが起動する際に、機器挙動データ2520をケーブルシミュレータに提供することができる。
なお、図5では、情報処理装置100は、システムシミュレーション装置1Aとケーブルシミュレーション装置1Bの両方を実装しているが、機器挙動データ2520が利用可能な態様でケーブルシミュレーション装置1Bに提供されれば、情報処理装置100はケーブルシミュレーション装置1Bのみを実装してもよい。
<F.3次元仮想空間と機器挙動データ>
再び図2を参照して、システムシミュレーションの対象機器であるロボット30とコンベア230の制御と、これら機器の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から目標位置を受信し、受信した目標位置に基づき各ロボットサーボモータの回転量を決定し、決定した回転量を指定する指令値を、各ロボットサーボモータに対し出力する。
システムシミュレーション装置1Aは、ワーク232およびワーク232を搬送するコンベア230に対応するオブジェクトの3次元仮想空間における挙動も、ロボット30と同様に算出し、算出結果を機器挙動データ2520として出力することができる。
さらに、制御システム2では機器は互いに時刻同期する。具体的には、フィールドネットワーク22に接続される複数の機器、すなわちPLC100、ロボットコントローラ310、サーボモータドライバ531,532およびロボットハンド210は、互いに時刻同期されたタイマ90、91,92,93、94をそれぞれ有し、機器の間では、これらタイマに基き動作することで、制御指令を含むデータの送受信タイミングが同期されている。
(F1.機器挙動データ(関節角度時系列データT(t)))
本実施の形態にかかるロボット30の3次元仮想空間における位置・姿勢を算出する過程の一例を説明する。本実施の形態では、3次元仮想空間における座標系をロボット30およびPLC200などの各部が共通して備える絶対座標系を例示する。絶対座標系における位置を算出する際に、本実施の形態では、サーボモータ1301の回転量をαA、サーボモータ1302の回転量をαB、サーボモータ1303の回転量をαCおよびサーボモータ1304の回転量をαDとして示す。サーボモータ回転量(αA、αB、αC、αD)それぞれに対し、所定関数を用いて演算を施すことで、サーボモータ回転量(αA、αB、αC、αD)それぞれを、3次元仮想空間における関節の位置(3次元座標P(x、y、z))に変換することができる。本実施の形態では、システムシミュレーション装置1Aは、機器挙動生成モジュール151によって、機器(より特定的には、ロボット30のアーム301)に対応する3次元仮想空間に配置される第1の対象の挙動(3次元仮想空間における位置)の時系列の変化)を算出し、算出結果である機器挙動データ2520として関節角度時系列データT(t)を出力する。
本実施の形態にかかるロボット30の3次元仮想空間における位置・姿勢を算出する過程の一例を説明する。本実施の形態では、3次元仮想空間における座標系をロボット30およびPLC200などの各部が共通して備える絶対座標系を例示する。絶対座標系における位置を算出する際に、本実施の形態では、サーボモータ1301の回転量をαA、サーボモータ1302の回転量をαB、サーボモータ1303の回転量をαCおよびサーボモータ1304の回転量をαDとして示す。サーボモータ回転量(αA、αB、αC、αD)それぞれに対し、所定関数を用いて演算を施すことで、サーボモータ回転量(αA、αB、αC、αD)それぞれを、3次元仮想空間における関節の位置(3次元座標P(x、y、z))に変換することができる。本実施の形態では、システムシミュレーション装置1Aは、機器挙動生成モジュール151によって、機器(より特定的には、ロボット30のアーム301)に対応する3次元仮想空間に配置される第1の対象の挙動(3次元仮想空間における位置)の時系列の変化)を算出し、算出結果である機器挙動データ2520として関節角度時系列データT(t)を出力する。
(F2.関節角度時系列データT(t)の生成方法)
また、関節角度時系列データT(t)は、上記に述べたサーボモータの回転量の時系列変化によらずCAD(Computer-Aided Design)を利用して生成されてもよい。より具体的には、機器挙動生成モジュール151がCAD(Computer-Aided Design)モジュールを有する場合、ユーザはロボット30のアームが取るべき予め定められたモーション(挙動)を指定すると、CADモジュールによって、当該指定されたモーションについてモーションプランニングが実行されて、モーションプランニングの算出結果として、関節角度時系列データT(t)が取得される。以下では、上記の予め定められたモーションとして、産業用ロボットアプリケーションとして多く利用されるピックアンドプレースを例示するが、モーションの種類はピックアンドプレースに限定されない。
また、関節角度時系列データT(t)は、上記に述べたサーボモータの回転量の時系列変化によらずCAD(Computer-Aided Design)を利用して生成されてもよい。より具体的には、機器挙動生成モジュール151がCAD(Computer-Aided Design)モジュールを有する場合、ユーザはロボット30のアームが取るべき予め定められたモーション(挙動)を指定すると、CADモジュールによって、当該指定されたモーションについてモーションプランニングが実行されて、モーションプランニングの算出結果として、関節角度時系列データT(t)が取得される。以下では、上記の予め定められたモーションとして、産業用ロボットアプリケーションとして多く利用されるピックアンドプレースを例示するが、モーションの種類はピックアンドプレースに限定されない。
<G.シミュレーション対象のモデル>
図6は、ケーブルとガイドを取付けたロボットのアームのモデルの一例を模式的に示す図である。本実施の形態では、シミュレーション対象のモデルとして、図6に示すN個のリンクを有するNリンクロボットアームを用いる。図6のモデルは、アームの根元から先端のエンドエフェクタ(ロボットハンド210)の方向に関節θ1、θ2、θ3・・・θNを有する。アームは、さらに絶対座標系ΣL0の原点(アームの根元)と関節θ1をつなぐリンクL0、関節θ1と関節θ2をつなぐリンクL1、関節θ2と関節θ3をつなぐリンクL2、・・・、関節θN-1と関節θNをつなぐN個のリンクLNとを含む。リンクは、各関節間をつなぐ軸に相当する。モデルは、さらに、リンクLn(1≦n≦N)について設置されたガイドGn(1≦n≦N)と、隣り合うガイドGnとガイドG(n+1)の間に張られて取付けられる部分ケーブルCn(n=1,2,・・・,N)を含む。
図6は、ケーブルとガイドを取付けたロボットのアームのモデルの一例を模式的に示す図である。本実施の形態では、シミュレーション対象のモデルとして、図6に示すN個のリンクを有するNリンクロボットアームを用いる。図6のモデルは、アームの根元から先端のエンドエフェクタ(ロボットハンド210)の方向に関節θ1、θ2、θ3・・・θNを有する。アームは、さらに絶対座標系ΣL0の原点(アームの根元)と関節θ1をつなぐリンクL0、関節θ1と関節θ2をつなぐリンクL1、関節θ2と関節θ3をつなぐリンクL2、・・・、関節θN-1と関節θNをつなぐN個のリンクLNとを含む。リンクは、各関節間をつなぐ軸に相当する。モデルは、さらに、リンクLn(1≦n≦N)について設置されたガイドGn(1≦n≦N)と、隣り合うガイドGnとガイドG(n+1)の間に張られて取付けられる部分ケーブルCn(n=1,2,・・・,N)を含む。
モデルには、リンクL0の根元を原点とする絶対座標系ΣL0と、リンクLnの根元(リンクLnの原点側の端)にリンクLnと共に回転する座標系ΣLnが導入される。モデルでは、座標系ΣLnは、時間tにおける関節角度θ(t)=[θ1(t)、θ2(t)、・・・、θN-1(t)]Tの非線形関数で表される。図6において、リンクLn上の黒丸は取付け位置を表している。この取付け位置とは、ガイドやセンサの設置位置を想定し、実機のロボット30のアームにおける予め用意されたネジ穴の位置と姿勢に相当する。モデルにおいて、座標系ΣLnにおけるガイドGnの位置・姿勢は、当該取付け位置を基準とした相対的な位置・姿勢Pnによって与えられる。説明を簡単にするために、以下では、位置・姿勢PnをガイドGnの位置・姿勢Pnと呼ぶ。モデルの絶対座標系ΣL0におけるガイドGnの位置・姿勢は、関節角度θn(t)(1≦n≦N)と位置・姿勢Pn(1≦n≦N)の関数として扱うことができる。
(G1.部分ケーブルのモデル)
図7は、シミュレーションのための部分ケーブルのモデルを模式的に示す図である。本実施の形態に係るシミュレーションでは、部分ケーブル形状を表すモデルを生成し、生成されたモデルを用いて物理シミュレーションを実施する。本実施の形態では、部分ケーブルのモデルは、ケーブルを構成する複数のセグメントと、各セグメント間を結合するジョイントを含む。モデルのセグメントは、物理シミュレーションでは剛体として扱われ、ジョイントは両側のセグメントの挙動に対する拘束条件として作用する。つまり、シミュレーションでは、セグメントの挙動を算出する場合に、当該挙動の成分に対し、フックの法則に従い、隣接するセグメントの相対位置および姿勢と初期相対位置および姿勢との差に比例した式(1)に示す力およびトルクを与える。式(1)のバネ定数の算出方法については後述する。
図7は、シミュレーションのための部分ケーブルのモデルを模式的に示す図である。本実施の形態に係るシミュレーションでは、部分ケーブル形状を表すモデルを生成し、生成されたモデルを用いて物理シミュレーションを実施する。本実施の形態では、部分ケーブルのモデルは、ケーブルを構成する複数のセグメントと、各セグメント間を結合するジョイントを含む。モデルのセグメントは、物理シミュレーションでは剛体として扱われ、ジョイントは両側のセグメントの挙動に対する拘束条件として作用する。つまり、シミュレーションでは、セグメントの挙動を算出する場合に、当該挙動の成分に対し、フックの法則に従い、隣接するセグメントの相対位置および姿勢と初期相対位置および姿勢との差に比例した式(1)に示す力およびトルクを与える。式(1)のバネ定数の算出方法については後述する。
図7に示す部分ケーブルCnのモデルは、合計Sn個の同じ長さのセグメントSegとそれらを1列につなぐ図示されないジョイントによって構成される。モデルでは、1番目のセグメントはガイドGnの位置・姿勢Pnに固定され、Sn番目のセグメントSegは部分ケーブルC(n+1)の1番目のセグメントSegとSn番目のジョイントを介して接続される。したがって、部分ケーブルCnのモデルによれば、部分ケーブルCnの形状はSn個のセグメントの位置・姿勢を計算することで与えられる。より具体的には、セグメントSeg間の結合は近隣に限られるために、式(1)に示す拘束方程式は疎な行列式として構成される。そこで、シミュレーションでは、例えばガウス・ザイデル法のような反復法を用いて収束解を導出する。シミュレーションによって、時間tの経過とともに算出されるガイドGnの位置・姿勢PnおよびガイドG(n+1)の位置・姿勢P(n+1)が変化することで、部分ケーブルCnの形状(挙動)も変化することになる。
<H.物理シミュレーションの具体的なモデルと挙動の計算>
図8、図9および図10を参照して、部分ケーブルのモデルを用いた物理シミュレーションの具体例を説明する。
図8、図9および図10を参照して、部分ケーブルのモデルを用いた物理シミュレーションの具体例を説明する。
(H1.部分ケーブルの物理シミュレーションの具体的モデル)
図8は、本実施の形態にかかるケーブルの物理シミュレーションのモデルの一例を模式的に示す図である。
図8は、本実施の形態にかかるケーブルの物理シミュレーションのモデルの一例を模式的に示す図である。
本実施の形態にかかるケーブルシミュレータ165は、物理シミュレーションを実行する物理シミュレータを含む。物理シミュレーションの対象である部分ケーブルに対応するオブジェクト(第2の対象)は、隣接するセグメントである剛体304間をジョイント305で接合することで複数の剛体304が連ねられてモデル化された剛体リンクを含む。具体的には、シミュレーションでは、剛体304は所定のサイズおよび形状を有したセグメントとして扱われ、剛体リンクでは、剛体304間がジョイント305により一列に接続されている。物理シミュレーションパラメータ124は、セグメントのサイズおよび形状などのパラメータを含む。
剛体304は、例えば、円柱形状の変形しない物体である。物理シミュレーションでは、剛体304の中心に着目して、剛体304は、当該中心の現在位置と直前位置を有した質点として定義される。ジョイント305は、例えばバネまたはダンパなどのジョイントに相当し、ジョイント305は、モデルでは、隣接する剛体304のx、yおよびzの各軸方向の平行移動と回転に対する制約となる上記に述べた拘束条件に相当する。図8では、剛体304の列の両端を、ケーブルのガイド350に対応するオブジェクト302によってロボット30のアームの表面306に取付けられた状態が示される。このようにケーブルシミュレーションでは、剛体リンクは、剛体304の位置・姿勢について隣接する剛体同士の関係に拘束条件を加えたジョイント構造でモデル化されたものである。図8では、剛体リンクは3個の剛体304からなるとしているが、剛体304は3個に限定されない。すなわち、剛体304の個数は、パラメータセットによって指定されるケーブル長(図23のCable length)に従い設定される。
ケーブルシミュレーションにおいては、部分ケーブル挙動算出モジュール166は、物理シミュレータを含む。物理シミュレータは、ロボット30に対応する3次元仮想空間におけるオブジェクトの所与の挙動(関節角度時系列データT(t))に基づき、パラメータセットを用いて、図8の剛体リンクモデルを表す拘束条件を含む拘束方程式を演算することによって、剛体リンクモデルの3次元仮想空間における挙動(ケーブル挙動データ2521)を算出する。
図9は、図8のケーブルの物理シミュレーションモデルの連立方程式147の一例を示す図である。連立方程式147は、図8の剛体304のそれぞれに対応の式Ati、BtiおよびCtiを含む。連立方程式147の各式は、剛体304の位置(x軸、y軸およびz軸それぞれの座標)と姿勢(x軸、y軸およびz軸それぞれの傾きψ(ロール)、θ(ピッチ)、φ(ヨー))の変数を含み、これら変数の値を、連立方程式(方程式147)を解くことにより算出する。すなわち、ケーブルシミュレータ165は、連立方程式(方程式147)を、関節角度時系列データT(t)に基づいて、パラメータ139を用いて、タイムステップti毎に繰返し解く。これにより、タイムステップti毎に、各剛体304の位置・姿勢に対応する変数の値を算出することができる。
(H2.拘束条件に従う位置更新)
部分ケーブル挙動算出モジュール166は,物理シミュレータを含む。より具体的には、ケーブルシミュレーションでは、位置ベースの物理シミュレーション(Position Based Dynamics:PBD)に従って、剛体304の位置が更新(修正)される。図10は、本実施の形態にかかる物理シミュレーションの位置の更新を模式的に示す図である。図10を参照して、ケーブルシミュレーションにおいて実施される剛体304の位置の更新処理を説明する。
部分ケーブル挙動算出モジュール166は,物理シミュレータを含む。より具体的には、ケーブルシミュレーションでは、位置ベースの物理シミュレーション(Position Based Dynamics:PBD)に従って、剛体304の位置が更新(修正)される。図10は、本実施の形態にかかる物理シミュレーションの位置の更新を模式的に示す図である。図10を参照して、ケーブルシミュレーションにおいて実施される剛体304の位置の更新処理を説明する。
具体的には、ケーブルシミュレーションでは、タイムステップti毎に、各剛体304の挙動が算出される。シミュレーションの結果、隣接する剛体304どうしが衝突すると、衝突した剛体304どうしの一方が他方に侵入(めり込む)することがある(図10の(A))。ケーブルシミュレータ165によって、剛体304が他の剛体304に侵入するか否かが検出される(図10の(A))。
図10の(A)では、ケーブルシミュレータ165は、タイムステップti毎に、算出されたオブジェクト(剛体304)どうしの3次元仮想空間における位置x0を用いて、予測位置Xpredict(Xpredict=x0+v×Δt、ただしx0=算出位置、Δt=タイムステップtiの時間、v=速度)を算出し、オブジェクト間の予測位置Xpredictの関係に基づき、オブジェクトどうしの衝突の有無を検出する。衝突は、例えば、3次元仮想空間におけるオブジェクトの位置(座標)と他のオブジェクトの位置(座標)との両者の距離が、例えば閾値以下であるとことを含む。閾値は、オブジェクトのサイズ(幅、高さなど)に基づく値であってもよい。なお、衝突の検出方法は、これに限定されない。
図10の(A)で侵入が検出されると、ケーブルシミュレータ165は、侵入を解決できるように、衝突した剛体304どうしの位置(位置:Xpredict)を変更する(図10の(B))。この際、ある剛体304の位置X0(位置:Xpredict)が位置X(修正後の位置:Xcorrect)に変更されると、その変更に伴って、当該剛体304に隣接する他の剛体304の位置がずれる可能性がある。そして、このような位置の変更を繰返すと、ケーブルシミュレーションにおいて各剛体304の挙動が安定する状態となる。本実施の形態では、上記に述べた拘束条件は、オブジェクトの挙動を、このような安定状態に移行させるための物理的な制約パラメータに対応する。
ケーブルシミュレータ165によって剛体304の位置が変更されると、すなわち剛体304の位置X(修正後の位置:Xcorrect)が算出されると、速度vが変更される(図10の(C))。具体的には、ケーブルシミュレータ165によって、Vcorrect=(X-X0)/Δtに従い変更後の速度Vcorrectが算出されて、算出された速度Vcorrectは、次のタイムステップtiのための速度v(図10の(A)の速度vt)に設定される。
上記では剛体304のx座標の位置更新が説明されるが、ケーブルシミュレーションでは、y座標位置およびz座標位置についても、x座標位置の更新と同様に更新は実施される。
このように、部分ケーブルCnをモデル化した剛体リンクにおける隣接する剛体同士の位置・姿勢の関係と、ジョイント305に対応する条件であって剛体同士の位置・姿勢の関係に課された拘束条件とを表す方程式(式147および式(1))に従う演算を、関節角度時系列データT(t)に基づいて繰り返し実施されることにより、剛体リンクの挙動が算出される。シミュレーションの各タイムステップtiでは、剛体304の侵入がない状態(めり込みが解消された状態)の剛体リンクについて、その挙動を算出することができる。
本実施の形態にかかるケーブルシミュレーションでは、部分ケーブルCnの挙動を安定状態に移行させるための式(1)の拘束条件にかかるパラメータとして、ケーブル340の硬さを表すパラメータを含めることができる。硬さパラメータは、例えば、ケーブル340の材料に固有のパラメータStiffnessおよびパラメータDampingを含む。パラメータStiffnessは、剛体304の変形のしにくさを示し、例えばヤング率と等価である。また、パラメータDampingは、剛体304の振動に対する減衰特性を示す。
<I.部分ケーブル最適化>
本実施の形態に係る部分ケーブル最適化の処理を説明する。ケーブルシミュレータ165は、部分ケーブル挙動算出モジュール166によって、部分ケーブルCnを対象として、部分ケーブル経路の最適化を実施する。部分ケーブル経路の最適化は、部分ケーブルCnの取付けパラメータセットの最適化に相当する。部分ケーブルCnの取付けパラメータセットは、部分ケーブルCnを構成するセグメント数Sn、ガイドGnの位置・姿勢PnおよびガイドG(n+1)の位置・姿勢P(n+1)の3つのパラメータを含む。
本実施の形態に係る部分ケーブル最適化の処理を説明する。ケーブルシミュレータ165は、部分ケーブル挙動算出モジュール166によって、部分ケーブルCnを対象として、部分ケーブル経路の最適化を実施する。部分ケーブル経路の最適化は、部分ケーブルCnの取付けパラメータセットの最適化に相当する。部分ケーブルCnの取付けパラメータセットは、部分ケーブルCnを構成するセグメント数Sn、ガイドGnの位置・姿勢PnおよびガイドG(n+1)の位置・姿勢P(n+1)の3つのパラメータを含む。
ケーブルシミュレータ165は、パラメータ候補からなる全ての種類の候補パラメータセットを用いて、部分ケーブル経路の最適化を実施する。より具体的には、物理パラメータに基づいてケーブル形状モデルを作成し、当該ケーブル形状モデルから、1の候補パラメータセットと関節角度時系列データT(t)のうちのt=0に該当する初期関節角度データT(0)に基づいて、ロボットアーム形状に対応するケーブル初期形状のモデルを生成する。次に、ケーブルシミュレータ165は、当該生成されたモデルに基づき時間tの経過とともに、物理シミュレーションにより関節角度時系列T(t)に対応するケーブル形状を表すケーブル挙動データ2521を算出する。ケーブルシミュレータ165は、算出された時系列のケーブル形状から、シミュレーションに用いた候補パラメータセットが以下の制約条件を満たすかを判定する。制約条件を満たすと判定された候補パラメータセットは、当該部分ケーブルCnの最適パラメータセットとして保持される。
(I1.負荷の算出)
負荷算出モジュール167は、ケーブル挙動データ2521に基づき、部分ケーブルCnの剛体リンク(第2の対象)にかかる負荷を示す負荷情報142を算出する。本実施の形態では、算出可能な負荷の種類は、曲げ、伸び、ひねり、衝撃、反発力を含むが、これらに限定されない。
負荷算出モジュール167は、ケーブル挙動データ2521に基づき、部分ケーブルCnの剛体リンク(第2の対象)にかかる負荷を示す負荷情報142を算出する。本実施の形態では、算出可能な負荷の種類は、曲げ、伸び、ひねり、衝撃、反発力を含むが、これらに限定されない。
負荷算出モジュール167は、各剛体304の挙動(位置と姿勢)に基づき、所定演算に従い当該剛体304、すなわち各位置1411にかかる負荷を算出する。例えば、各剛体304のひねり、曲げは、当該剛体304と隣接する剛体304の挙動から算出され、伸びは、隣接する剛体304間の距離(距離が大きいほど引っ張られている)から算出され、反発力は、衝突時に侵入した距離(距離が大きいほど反発力は大きい)から算出される。なお、負荷算出モジュール167が算出する衝撃には、剛体304と剛体304とは異なる他のオブジェクトとの衝突が含まれてもよい。他のオブジェクトは、周辺機器、アーム301を有するロボット30およびワーク232などのオブジェクトを含む。負荷算出モジュール167は、剛体304と他のオブジェクトとの衝突を検出する。より具体的には、負荷算出モジュール167は、ケーブル挙動データ2521が示すケーブルの剛体304の挙動(位置・姿勢)と機器挙動データ2520が示す他のオブジェクトの挙動(位置・姿勢)との間の3次元仮想空間における相対的位置関係に基づき上記の衝突を検出する。負荷算出モジュール167は、例えば剛体304とアーム301のオブジェクトの衝突を、ケーブル挙動データ2521が示すタイムステップtiの剛体304の位置・姿勢と、関節角度時系列データT(t)が示すアームの位置・姿勢との間の3次元仮想空間における相対的位置関係に基づき検出する。
(I2.制約条件)
上記の制約条件は、例えば、部分ケーブルCnの剛体リンクにかかる負荷の大きさが閾値を超えないことを示す以下の条件を含む。ケーブルパラメータ139は、これら閾値をパラメータとして含む。
上記の制約条件は、例えば、部分ケーブルCnの剛体リンクにかかる負荷の大きさが閾値を超えないことを示す以下の条件を含む。ケーブルパラメータ139は、これら閾値をパラメータとして含む。
条件1.ケーブルがロボットアームや周辺機器との接触から受ける衝撃が閾値(Impulse_th)以下である。
条件2.ケーブルのセグメント間の初期距離に対する距離の伸び率が閾値(Stretch_th)以下である。
条件3.ケーブルの曲率半径はケーブルの材質によって決まる閾値(Curvature_th)を下回らない。
部分ケーブルCnのパラメータセットの最適化では、最初に、取付けパラメータ候補の全組合せから生成される候補パラメータセットの集合D1,nを定式化する。
上記に述べた条件1、条件2および条件3を満たす候補パラメータセットの集合D1,nは式(3)で表現される。
ここで、集合D1,nのパラメータセットの集合を、そのまま部分ケーブルCnの最適パラメータセットの集合とはせずに、本実施の形態では、頑強性のファクトに基づき、各部分ケーブルCnのパラメータセットをより最適化する。
なぜなら、集合D1,nのパラメータセットのパラメータセットに従いケーブルを取付けた場合、ケーブルのモデリング誤差、物理シミュレーションの誤差、ケーブル取付け時の装着誤差によって、ロボット30の運転時に障害発生の要因となり得るパラメータセットが集合D1,nに含まれる可能性があるからである。特に、ケーブル配線はユーザの熟練度に起因した装着誤差のバラツキが大きくなり、集合D1,nの最適パラメータセット通りにケーブルが取付けられないケースが発生し得る。
上記のケースの発生を防止するために、ケーブルシミュレータ165は、集合D1,nに対して頑強性の条件を適用して、部分ケーブルCnについて最適なパラメータセットを決定する。本実施の形態では、頑強性とは最適化すべきパラメータセットが上記の誤差の影響を受けやすいかどうかを示す。誤差の影響を受けにくいパラメータセットは、頑強性を有し、誤差の影響を受けやすいパラメータセットは頑強性がない。
本実施の形態では、部分ケーブルCnのセグメント数Snの頑強性に着目する。より具体的には、セグメント数Snが一定範囲±Rで増減した場合でも、上記に述べた式(3)の制約を満たすことを課す。つまり、集合D1,nのうち、セグメント数Snが一定範囲±Rで増減した場合でも条件1~条件3を満たすパラメータセットの部分集合は、当該頑強性を有する最適パラメータセットの集合D2,nである。最適パラメータセットの集合D2,nは、次の式(4)で示される。ケーブルパラメータ139は、範囲Rのパラメータを含む。
ケーブルシミュレータ165は、以上の処理(シミュレーション)を各部分ケーブルCnについて実施する。これにより、各部分ケーブルCnについて、最適パラメータセットの集合D1,nと集合D2,nとが算出される。
<J.全体ケーブル最適化>
ケーブルシミュレータ165は、部分ケーブル最適化によって得られた各部分ケーブルCnの最適パラメータセットの集合D2,nに基づいて、全体ケーブルのケーブル長が最短となるように、すなわち全体ケーブルのセグメント数が最小となるパラメータセットを導出する。これにより、全体ケーブルを取付けるための最適化パラメータセットが決定される。
ケーブルシミュレータ165は、部分ケーブル最適化によって得られた各部分ケーブルCnの最適パラメータセットの集合D2,nに基づいて、全体ケーブルのケーブル長が最短となるように、すなわち全体ケーブルのセグメント数が最小となるパラメータセットを導出する。これにより、全体ケーブルを取付けるための最適化パラメータセットが決定される。
より具体的には、ケーブルシミュレータ165は、隣り合う部分ケーブルCnの集合D2,nのパラメータセットのうち共有条件を満たす1つ以上のパラメータセットを導出する。本実施の形態では、共有条件とは、隣り合う(隣接する)部分ケーブルCnどうしは、両部分ケーブルの間で中継している、すなわち両部分ケーブルで共有しているガイドGn(G(n+1))の位置・姿勢Pn(P(n+1))が共通するとの条件を含む。ケーブルシミュレータ165は、各部分ケーブルCnの最適パラメータセットの集合D2,nから、この共有条件を満たす1つ以上のパラメータセットを抽出し、各部分ケーブルCnについて抽出された1つ以上のパラメータセットからなる全体ケーブルのパラメータセット集合D3,nを決定する。
より具体的には、パラメータ決定モジュール170によって、隣り合う(隣接する)部分ケーブルCnと部分ケーブルC(n+1)の各組について、各部分ケーブルの集合D2,nのパラメータセットが照合される。照合の結果、パラメータ決定モジュール170によって、当該組の両部分ケーブルの間を中継するガイドGnの位置・姿勢Pnが、両部分ケーブルで共有する(共通する)との条件を満たすような、1以上の最適パラメータセットが、部分ケーブルCnの集合D2,nと部分ケーブルC(n+1)の集合D2,nからそれぞれ抽出(決定)される。上記の中継するガイドは、例えば図6の隣接する部分ケーブルC1とC2の組では、ガイドG2を示す。
パラメータ決定モジュール170によって、上記に述べた手順に従い、共有条件に基づき各部分ケーブルCnの集合D2,nから1つ以上の最適パラメータセットが抽出されて、抽出された、これら部分ケーブルCnの最適パラメータからなる集合D3は式(5)で示される。
集合D3で示される各部分ケーブルCnの1つ以上の最適パラメータセットは、制約条件(衝撃、伸び率、曲率半径)および共有条件を満たすパラメータセットであって、実装可能パラメータセットとも称する。
パラメータ決定モジュール170によって、最終的に、集合D3の1つ以上のパラメータセットの中で、全体ケーブル340を構成するセグメント数を最小とする、すなわち部分ケーブルCnのセグメント数Snの合計値を最小とするようなパラメータセットを各部分ケーブルCnについて決定し、決定された各部分ケーブルCnのパラメータセットの集合を、式(6)に示す最適パラメータセットd*とする。
なお、全体ケーブル340を構成するセグメント数の合計が一致する最適パラメータセットd*が複数算出される場合には、パラメータ決定モジュール170によって、全ての部分ケーブルCnのセグメントが受ける衝撃、セグメント間の伸び率および曲げ半径に基づき、複数の最適パラメータセットd*から、1の最適パラメータセットd*が選択される。
<K.シミュレーションの概略処理フロー>
図11は、本実施の形態にかかるシミュレーションのシーケンスの一例を模式的に示す図である。図11では、ケーブルシミュレーション装置1Bが実施するケーブルシミュレーションの処理が、周辺処理と関連付けて示されている。説明のために、以下のケーブルシミュレーションが用いる機器挙動データ2520は関節角度時系列データT(t)を示す。
図11は、本実施の形態にかかるシミュレーションのシーケンスの一例を模式的に示す図である。図11では、ケーブルシミュレーション装置1Bが実施するケーブルシミュレーションの処理が、周辺処理と関連付けて示されている。説明のために、以下のケーブルシミュレーションが用いる機器挙動データ2520は関節角度時系列データT(t)を示す。
図11を参照して、ユーザは、操作ユニット106を操作して、情報処理装置100に対して、システムシミュレーションを設定するための指示と、ケーブルシミュレーションを追加する指示を入力する(ステップS80、ステップS83)。プロセッサ102は、ユーザからの指示に従い、システムシミュレーションを実行可能なように、例えば、システムシミュレーションのための各種パラメータを設定する。また、プロセッサ102は、ケーブルシミュレーションを追加する指示に従い、ケーブルシミュレーションを実行可能な状態を設定する。例えば、機器挙動データ2520(関節角度時系列データT(t))を参照可能なようにケーブルシミュレータ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は、起動されると、ケーブルシミュレーションを実施する(ステップS100)。より具体的には、部分ケーブル最適化のために各部分ケーブルについて時間tを変化させながら、シミュレーションを繰返し(ループ処理)、各部分ケーブルについて算出された最適パラメータセットに基づき全体ケーブル最適化処理を実施する。
評価モジュール177はケーブルシミュレーション結果の評価処理を実行する(ステップS130)。評価モジュール177は、評価結果である評価データ144の情報を出力する(ステップS140)。例えば、評価データ144に基づく画像をディスプレイ109に表示させる。
(K1.ケーブルシミュレーションの概略処理フロー)
図12は、図11のケーブルシミュレーション(ステップS100)の処理フローチャートである。図12を参照して、ユーザは、操作ユニット106から予め定められたモーション(ピックアンドプレース)を指定すると、ケーブルシミュレータ165の機器挙動生成モジュール151が有するモーションプランニングによって、機器挙動データ2520に相当する関節角度時系列データT(t)が算出される(ステップS88a)。
図12は、図11のケーブルシミュレーション(ステップS100)の処理フローチャートである。図12を参照して、ユーザは、操作ユニット106から予め定められたモーション(ピックアンドプレース)を指定すると、ケーブルシミュレータ165の機器挙動生成モジュール151が有するモーションプランニングによって、機器挙動データ2520に相当する関節角度時系列データT(t)が算出される(ステップS88a)。
ケーブルシミュレータ165は、n個の各部分ケーブルについて、部分ケーブル最適化の処理を実施し(ステップS110)、各部分ケーブルCnについて1つ以上の最適パラメータセットからなるパラメータセットの集合D2,n(n=1,2,3・・・)を算出し、算出された各部分ケーブルCnの最適パラメータセットの集合D2,nに基づき、全体ケーブル340の最適化されたパラメータセットd*を算出する(ステップS120)。最適パラメータセットd*は、ロボット30にケーブルの取付けを可能にする実装可能パラメータセットに相当する。
(K2.部分ケーブル最適化の処理フロー)
図13は、図12の部分ケーブル最適化処理(ステップS110)の処理フローチャートである。図13を参照して、ある部分ケーブルCnの最適パラメータセットの集合D2,nを算出する処理を説明する。他の部分ケーブルについても同様の処理が実施されることで、当該他の部分ケーブルの最適パラメータセットの集合D2,nが算出される。ここでは、ケーブルパラメータ139は、ユーザによって設定された複数の候補パラメータセットを含む。
図13は、図12の部分ケーブル最適化処理(ステップS110)の処理フローチャートである。図13を参照して、ある部分ケーブルCnの最適パラメータセットの集合D2,nを算出する処理を説明する。他の部分ケーブルについても同様の処理が実施されることで、当該他の部分ケーブルの最適パラメータセットの集合D2,nが算出される。ここでは、ケーブルパラメータ139は、ユーザによって設定された複数の候補パラメータセットを含む。
まず、ケーブルパラメータ139の1つ目の候補パラメータセットがシミュレーションの対象パラメータセットに設定されるとともに、関節角度時系列データT(t)が設定される(ステップS111)。部分ケーブル挙動算出モジュール166によって、部分ケーブルCnの初期形状のモデルが、対象パラメータセット、物理シミュレーションパラメータ124のセグメントのサイズおよびロボットアームの形状モデルなどを用いて生成される(ステップS112)。この部分ケーブルCnのモデルは、例えば図8の剛体リンクのモデルおよび図9の式147で示される。
部分ケーブルCnの初期形状のモデルから、ロボット30のアーム301の挙動に伴うケーブルの挙動(形状変化)が算出される(ステップS113)。すなわち、部分ケーブル挙動算出モジュール166によって、連立方程式(式147)を、関節角度時系列データT(t)に基づいて、タイムステップti毎に繰返し解くことにより、タイムステップti毎の、各剛体304の位置・姿勢に対応する変数Pnの値、すなわち挙動が算出される。
当該部分ケーブルについて算出された時系列に変化する位置・姿勢Pnに基づき、当該部分ケーブルの挙動は制約条件を満たすかが判定される(ステップS114)。より具体的には、負荷算出モジュール167によって、部分ケーブルのモデルである剛体リンクにかかる負荷が算出されて、制約条件判定モジュール168によって、当該負荷に基づき、当該部分ケーブルの挙動は、ケーブルパラメータ139の制約条件の閾値を用いて制約条件を満たすかが判定される(ステップS115)。
制約条件が満たされないと判定されると(ステップS115でNO)、当該部分ケーブルのパラメータセットの最適化が終了したか否か、すなわちケーブルパラメータ139の全ての候補パラメータセットを用いて当該部分ケーブル最適化の処理が実施されたか否かが判定される(ステップS19)。当該部分ケーブルのパラメータセットの最適化が終了したと判定されると(ステップS119でYES)、図8の処理は終了するが、当該部分ケーブルのパラメータセットの最適化が終了していないと判定されると(ステップS119でNO)、ステップS111に戻る。ステップS111では、ケーブルパラメータ139の次の候補パラメータセットがシミュレーションの対象パラメータセットに設定されて、対象パラメータセットについてステップS112以降の処理が上述と同様に繰り返される。
一方、制約条件が満たされると判定されると(ステップS115でYES)、頑強性判定モジュール169により、ケーブルパラメータ139の範囲Rを用いて当該部分ケーブルの挙動は頑強性の条件を満たすか否かが判定される(ステップS116)。
頑強性の条件が満たされると判定されないと(ステップS117でNO)、ステップS119に移行するが、頑強性の条件が満たされると判定されると(ステップS117でYES)、ケーブルシミュレータ165は、当該対象パラメータセットを、当該部分ケーブルCnの最適パラメータセットとして登録する(ステップS118)。すなわち、ケーブルシミュレータ165は、対象パラメータセットを当該部分ケーブルCnの集合D2,nに含める。
図13の処理が各部分ケーブルについて実施されることにより、各部分ケーブルCnについて、1つ以上の最適パラメータセットからなる集合D2,nが算出される。
(K3.全体ケーブル最適化の処理フロー)
図14は、図12の全体ケーブル最適化処理(ステップS120)の処理フローチャートである。図14を参照して、最適パラメータセットd*を算出する手順を説明する。
図14は、図12の全体ケーブル最適化処理(ステップS120)の処理フローチャートである。図14を参照して、最適パラメータセットd*を算出する手順を説明する。
パラメータ決定モジュール170によって、各部分ケーブルCnの集合D2,nと、当該部分ケーブルCnに隣接する部分ケーブルC(n+1)の集合D2,nとの間で各パラメータセットの位置・姿勢Pnの値を比較し、比較の結果に基づき、隣接条件を満たす位置・姿勢Pnを有するパラメータセットが決定される。各部分ケーブルCnの集合D2,nにおいて決定された隣接条件を満たすパラメータセットの組合わせが1つ以上取得される。
パラメータ決定モジュール170によって、1つ以上の組合わせのうち、1つ目の組合わせが対象組合わせに設定されて、対象組合わせに含まれる各部分ケーブルのセグメント数Snの合計が算出されて(ステップS122)、算出された合計値が示す全体ケーブル長が全ての組合わせの全体ケーブル長のうちの最短であるかが判定される(ステップS123)。
算出されたセグメント数Snの合計値が最短ケーブル長を示すと判定されないと(ステップS124でNO)、隣接条件を満たすパラメータセットの全ての組合わせについて、図14の処理が実施されたか否かが判定される(ステップS126)。全ての組合わせについて、図14の処理が実施されたと判定されると(ステップS126でNO)、処理は終了する。一方、全ての組合わせについて、図14の処理が実施されていないと判定されると(ステップS126でNO)、ステップS122に戻り、次の組合せが対象組合せに設定されて、当該対象組合せについて、ステップS122以降の処理が上述と同様に実施される。
一方、対象組合せについて算出されたセグメント数Snの合計値が最短ケーブル長を示すと判定されると(ステップS124でNO)、当該対象組合せが示すパラメータセット(各部分ケーブルのセグメント数Sn、各ガイドの位置・姿勢Pn)は、全体ケーブルの最適パラメータセットd*、すなわち実装可能パラメータセットに決定される。
<L.ケーブルシミュレーションの具体例>
ケーブルシミュレーションの具体例を、6軸垂直多関節ロボットのアームにケーブルを取付けるケースで説明する。ここでは、オムロン株式会社製の型番Viper850のロボットのアームに、株式会社フジクラ製の品番AWG28x5PIFVV-SBのケーブルを取付けるケースで説明する。
ケーブルシミュレーションの具体例を、6軸垂直多関節ロボットのアームにケーブルを取付けるケースで説明する。ここでは、オムロン株式会社製の型番Viper850のロボットのアームに、株式会社フジクラ製の品番AWG28x5PIFVV-SBのケーブルを取付けるケースで説明する。
まず、ガイドとケーブルの配置を説明し、その後に、図12に示す処理手順に従って、関節角度時系列生成、部分ケーブル最適化、および全体ケーブル最適化の3つの処理を説明する。シミュレーションは、複数のモーションを想定して各モーションについてケーブル経路を最適化する。
(L1.ガイドとケーブルの配置例)
図15は、ロボットのアームにおいて、最適化すべきセグメント数とガイド位置・姿勢を説明する図である。ロボットアームの根元に絶対座標系ΣL0を定める。また、リンクL3およびL4における機器取付け位置を原点とした座標系をそれぞれΣL3およびΣL4と定める。リンクL6にはエンドエフェクタ(ロボットハンド210)が装着されるので、ガイドG6はエンドエフェクタに付随するケーブル差込口で代替される。すなわち、ガイドG6の位置・姿勢P6は固定となる。ロボットアームの構造上、リンクL5にはガイドGnを設置することはできない。そのため、リンクL4のガイドG4とガイドG6の間は部分ケーブルC4が接続されて、部分ケーブルC4について最適化対象となるパラメータはセグメント数S4およびガイド位置・姿勢P4である。また、リンクL3のガイドG3とガイドG4の間は部分ケーブルC3が接続されて、部分ケーブルC3について最適化対象となるパラメータはセグメント数S3およびガイド位置・姿勢P3およびP4である。さらに、リンクL2の図示しないガイドG2とG3の間は、図示しない部分ケーブルC2で接続されることもあり得るが、架台または天井からのケーブルはガイドG3に接続されることが一般的であるために、部分ケーブルC2のパラメータは適化の対象とはしない。
図15は、ロボットのアームにおいて、最適化すべきセグメント数とガイド位置・姿勢を説明する図である。ロボットアームの根元に絶対座標系ΣL0を定める。また、リンクL3およびL4における機器取付け位置を原点とした座標系をそれぞれΣL3およびΣL4と定める。リンクL6にはエンドエフェクタ(ロボットハンド210)が装着されるので、ガイドG6はエンドエフェクタに付随するケーブル差込口で代替される。すなわち、ガイドG6の位置・姿勢P6は固定となる。ロボットアームの構造上、リンクL5にはガイドGnを設置することはできない。そのため、リンクL4のガイドG4とガイドG6の間は部分ケーブルC4が接続されて、部分ケーブルC4について最適化対象となるパラメータはセグメント数S4およびガイド位置・姿勢P4である。また、リンクL3のガイドG3とガイドG4の間は部分ケーブルC3が接続されて、部分ケーブルC3について最適化対象となるパラメータはセグメント数S3およびガイド位置・姿勢P3およびP4である。さらに、リンクL2の図示しないガイドG2とG3の間は、図示しない部分ケーブルC2で接続されることもあり得るが、架台または天井からのケーブルはガイドG3に接続されることが一般的であるために、部分ケーブルC2のパラメータは適化の対象とはしない。
以下では、図15に示された、ガイドG4経由でガイドG3とガイドG6を接続する部分ケーブルC3およびC4についてケーブル経路最適化を説明する。すなわち、上記に述べた通り、ガイドG5は使用されない。また、ガイドG6の位置・姿勢P6はエンドエフェクタの仕様で一意に決まる。したがって、最適化すべきパラメータは、部分ケーブルC3およびC4のセグメント数S3およびS4とガイド位置・姿勢P3およびP4となる。なお、シミュレーションの対象とされるべき部分ケーブルは部分ケーブルC3とC4に限定されない。
(L2.関節角度時系列生成の具体例)
モーションプランニングによる関節角度時系列データT(t)の生成を、図15と図16を参照して説明する。図16は、ロボットアームのピックアンドプレースのモーションの一例を模式的に示す図である。ユーザが所定モーションとしてピックアンドプレースを指定した場合、所定モーションは、ロボットアームが正面に配置された対象(対象はワーク232に相当する)をピックし、図15に示した絶対座標系ΣL0のX軸方向に例えば300mmおよびY軸方向に300mm離れた場所に既定の角度θをつけてプレースするという一連の動きを含む。ユーザは、角度θを、座標ΣL0を基準としてZ軸周りに-45°から45°まで15°刻みで7種類を設定する。これにより、ユーザはピックアンドプレースのモーションとして、角度θに対応した7種類のピックアンドプレースのモーションを指定することができる。7種類のモーションを、それぞれモーションθと呼ぶ。ここでは絶対座標系ΣL0のX軸に平行な角度を90°とする。7種類のモーションのそれぞれは、図16の(a)に示すinitial poseから開始されて、次に、図16の(b)に示すpick poseに移行し、その後、7種類の角度θのいずれか1つに対応のplace posesに移行し、最後に図16の(a)のinitial poseに戻る。図16の(c)、(d)および(e)では、モーションθとして-45°、0°および45°のplace poseが例示されている。ユーザが指定した7種類のPick and Placeのモーションそれぞれについて、機器挙動生成モジュール151によってタイムステップtiに従いモーションプランニングが実行されて、7種類のPick and Placeのモーションそれぞれについて、タイムステップtiに従う関節角度時系列データT(t)が算出される。
モーションプランニングによる関節角度時系列データT(t)の生成を、図15と図16を参照して説明する。図16は、ロボットアームのピックアンドプレースのモーションの一例を模式的に示す図である。ユーザが所定モーションとしてピックアンドプレースを指定した場合、所定モーションは、ロボットアームが正面に配置された対象(対象はワーク232に相当する)をピックし、図15に示した絶対座標系ΣL0のX軸方向に例えば300mmおよびY軸方向に300mm離れた場所に既定の角度θをつけてプレースするという一連の動きを含む。ユーザは、角度θを、座標ΣL0を基準としてZ軸周りに-45°から45°まで15°刻みで7種類を設定する。これにより、ユーザはピックアンドプレースのモーションとして、角度θに対応した7種類のピックアンドプレースのモーションを指定することができる。7種類のモーションを、それぞれモーションθと呼ぶ。ここでは絶対座標系ΣL0のX軸に平行な角度を90°とする。7種類のモーションのそれぞれは、図16の(a)に示すinitial poseから開始されて、次に、図16の(b)に示すpick poseに移行し、その後、7種類の角度θのいずれか1つに対応のplace posesに移行し、最後に図16の(a)のinitial poseに戻る。図16の(c)、(d)および(e)では、モーションθとして-45°、0°および45°のplace poseが例示されている。ユーザが指定した7種類のPick and Placeのモーションそれぞれについて、機器挙動生成モジュール151によってタイムステップtiに従いモーションプランニングが実行されて、7種類のPick and Placeのモーションそれぞれについて、タイムステップtiに従う関節角度時系列データT(t)が算出される。
(L3.部分ケーブル最適化の具体例)
部分ケーブル最適化では、関節角度時系列データT(t)を用いて、例えば部分ケーブルC3およびC4について、セグメント数S3およびS4とガイドG3とG4の位置・姿勢P3およびP4を含む最適パラメータセットを取得する。最適パラメータセットを取得する場合、ケーブルシミュレータ165は、パラメータ集合の探索範囲を決定する。
部分ケーブル最適化では、関節角度時系列データT(t)を用いて、例えば部分ケーブルC3およびC4について、セグメント数S3およびS4とガイドG3とG4の位置・姿勢P3およびP4を含む最適パラメータセットを取得する。最適パラメータセットを取得する場合、ケーブルシミュレータ165は、パラメータ集合の探索範囲を決定する。
本実施の形態では、セグメント数S3の探索範囲について、最小値はガイド間距離に基づいて設定されて、最大値はケーブルとロボットアームの接触を避けるためにガイド間距離の数倍程度に設定される。このようにセグメント数S3の探索範囲を設定した場合、ケーブル長としては、ケーブルC3は100mm以上300mm以下およびケーブルC4は200mm以上440mm以下の範囲を探索することになる。本実施の形態では、単位セグメント長は5mmに設定されて、セグメント数Snのサンプリング間隔は4に設定されるので、セグメント数S3およびS4の候補は、それぞれ、(S3,1、S3,2・・・、S3,11)=(20,24,‥,60)および(S4,1、S4,2・・・、S4,13)=(40,44,‥,88)となる。セグメント数S3およびS4それぞれの最適パラメータの候補数はI3=11およびI4=13である。
前述したように、Pnの位置(x、y、z)および姿勢(φ、θ、ψ)は、リンクLnの座標系ΣLnにおける機器取付け位置を基準としている。姿勢のφ方向はケーブルTwist方向であるが、ケーブルが予めひねられてロボットに装着されると、ケーブルの寿命を縮める原因となるために、本実施の形態ではφは0に固定される。本実施の形態では、位置P3の最適パラメータの集合である位置候補集合は{(x,y,z)|x=0,y=-40,0,40,z=0,20}と設定される。また、上述した理由から、位置P3の姿勢(φ、θ、ψ)=(0,0,0)に固定にされて、J3=6である。一方、位置P4の最適パラメータの集合である位置候補集合は{(x,y,z)|x=0,50,y=-50,0,50,z=0,20}は設定される。位置P4の最適パラメータの集合である姿勢候補集合は{(φ,θ,ψ)|φ=0,θ=0,45,ψ=-90,0,90}と設定される。したがって、J4=72である。なお、上述したようにガイドG6の位置・姿勢P6は固定されているのでJ6=1である。ここで、位置の単位はmmであり、姿勢の単位は度である。最適パラメータに組合わせの候補はケーブルC3について4,752通り、およびケーブルC4について936通りとなる。シミュレーションにおいては、単位セグメント長を円柱と空隙で表現し、円柱の長さを3.5mmおよび空隙の長さを1.5mmに設定され、セグメントを表現する円柱の直径は8mmに設定される。
ケーブルシミュレータ165は、部分ケーブルC3およびC4それぞれについて、最適パラメータセットを算出する。ここでは、制約条件として、ケーブルの衝撃閾値(Impulse_th)に0、セグメント間の伸び率の閾値(Stretch_th)に102%、および曲率半径の閾値(Curvature_th)に48mmがそれぞれ設定される。なお、曲率半径の閾値は、例えばケーブルの保証基準である直径の6倍に基づいて設定される。本実施の形態では、ケーブルC3について、候補パラメータセットの集合D0,3に含まれる全てのパラメータセットそれぞれを用いて物理シミュレーションが実施されて、制約条件である条件1~3の3つの条件を満たす候補パラメータセットの集合D1,3が算出される。この集合D1,3に対して、ケーブルの長さに対するセグメント数が一定範囲R(例えば、R=8mm)のもとで頑強性の条件を満たす候補パラメータセットの集合である、部分ケーブルC3の最適パラメータセットの集合D2,3が算出される。部分ケーブルC4について、部分ケーブルC3と同様の手順に従い、候補パラメータセットの集合D0,4に含まれる全てのパラメータセットそれぞれを用いて物理シミュレーションが実施されて、制約条件を満たす候補パラメータセットの集合D1,4が算出され、集合D1,4のうちから頑強性の条件を満たす最適パラメータセットの集合D2,4が算出される。
(L4.全体ケーブル最適化の具体例)
部分ケーブルのパラメータセットの最適化の結果に基づき、全体ケーブルのパラメータセットの最適化が実施される。より具体的には、ケーブルシミュレータ165によって、部分ケーブルC3およびC4の最適パラメータセットの集合D2,3および集合D2,4に基づいて、部分ケーブルC3と部分ケーブルC4間の隣接条件を満たす実装可能パラメータセットの集合D3が算出されて、算出された集合D3から全体ケーブルの最適パラメータセットd*が算出される。
部分ケーブルのパラメータセットの最適化の結果に基づき、全体ケーブルのパラメータセットの最適化が実施される。より具体的には、ケーブルシミュレータ165によって、部分ケーブルC3およびC4の最適パラメータセットの集合D2,3および集合D2,4に基づいて、部分ケーブルC3と部分ケーブルC4間の隣接条件を満たす実装可能パラメータセットの集合D3が算出されて、算出された集合D3から全体ケーブルの最適パラメータセットd*が算出される。
図17は、シミュレーションの結果を示すグラフである。グラフは、複数のモーションと実装可能パラメータセット数との関係を定量的に示す。これらは、評価モジュール177によって生成されて表示されてもよい。図18は、図17の各モーションと全体ケーブルの最適パラメータセットおよびケーブルの形状との関係を示す図である。図17のグラフの横軸は、モーションの種類としてPlace Pose(プレース時の姿勢)をとった場合のアームの角度を示し、縦軸は、横軸のPlace Poseの種類毎(プレース時の姿勢をとった場合のアームの角度毎)に、実装可能パラメータセットの数を示す。
図17では、Place Pose時のリンクL3とリンクL4間の角度差が0°となるモーション45°において算出される実装可能パラメータセットは71個であり、Place Pose時の角度の減少に伴い実装可能パラメータセット数は減少する。モーション-60°では実装可能パラメータセット数は1個であり、モーション-75°では実装可能パラメータセット数は0個である。図17に示されるように、モーション-75°を実現するロボットアームにはケーブル経路が存在しない。本実施の形態では、評価モジュール177によって、図17のグラフを含む評価データ144が生成されて、ディスプレイ109に出力される。図15のシミュレーション結果から、生産ラインのユーザは、ロボットアームのモーション、ワーク232の配置角度、および周辺機器の配置を含めた生産ラインの設計を見直す必要があるかの判断基準を得ることができる。
図18では、各モーションθ(=45°,0°,-45°)に関連づけて、当該モーションθについて算出された実装可能パラメータセットd*(すなわち最適パラメータセットd*)とPick Pose時およびPlace Pose時のケーブル形状が示される。本実施の形態では、評価モジュール177によって、図18の関連づけの情報を含む評価データ144が生成されて、ディスプレイ109に出力される。図18に示されるように、モーションθ=45°は、リンクL3とリンクL4間の角度差が0°のため左右対称の最適パラメータセット、すなわちright-to-leftおよびleft-to-right形状のケーブル取付け態様が存在する。Place Pose時の角度が小さくなると、リンクL3に対してリンクL4が反時計回りに回転するために、ケーブル取付け態様は、left-to-right形状に限定される。モーションθ=0°と比較するとモーションθ=-45°のPlace Poseは、リンクL3に対するリンクL4の回転角度が大きくなるケースにあたる。このケースでは、ケーブルがロボットアームに干渉(接触)する可能性があるが、当該干渉を回避し得るように、モーションθ=-45°のガイドG4の位置が、モーションθ=0°におけるガイドG4のよりも右上側に移動している。これにより、モーションθ=-45°のPlace Pose時の曲げ半径制約を回避することができるが、このモーションθ=-45°の実装可能パラメータセットd*は、モーションθ=0°の実装可能パラメータセットd*と比較すると、セグメント数Snが大きくなる。例えば、部分ケーブルC4のケーブル長が60mm延長されて、部分ケーブルC3のケーブル長が40mm短縮されて、その結果、全体ケーブル340のケーブル長の延長は20mmのみになっている。
図17に示される情報によって、実装可能パラメータセット数に基づき、ケーブル経路の有無およびケーブル取付けの難易度を定量的に判定できるようユーザをサポートできる。また、図18に示される情報によって、実装可能パラメータセットd*に基づいて、Place Pose時のリンクL3とL4間の角度の増加に伴い、ケーブル長およびガイド位置・姿勢の最適値が変化する様子を、定性的に分析できるようユーザをサポートできる。ここで示した各部分ケーブルの最適パラメータセットまたは全体ケーブルの実装可能パラメータセットの導出、および、導出結果に対する図17または図18の情報が示す分析方法は、本実施の形態で対象としたモーションとは異なる種類のモーションに対するケーブル経路最適化にも適用できる。
<M.パラメータセットの設定とUI画面>
上記に述べたケーブルシミュレーションのためのセグメント数とガイドの位置・姿勢を含む候補パラメータセットは、ユーザにより設定され得る。パラメータ設定プログラム145によって、パラメータセット設定のためにユーザを支援するUIツールが提供される。図23は、本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の一例を模式的に示す図である。
上記に述べたケーブルシミュレーションのためのセグメント数とガイドの位置・姿勢を含む候補パラメータセットは、ユーザにより設定され得る。パラメータ設定プログラム145によって、パラメータセット設定のためにユーザを支援するUIツールが提供される。図23は、本実施の形態にかかるケーブルのパラメータ設定にかかるUI画面の一例を模式的に示す図である。
UIツールによって、図23のUI画面はディスプレイ109に表示される。UI画面の右側には、3Dビジュアライザ164によって、ケーブル340が取付けられるロボット30のアームの3D画像が、ワーク232のオブジェクト画像Wとともに表示される。3D画像は、プロセッサ102によって、機器画像データ2530のCADデータなどから生成される。
ユーザは、図23の左側のUI画面を操作して、ケーブルのパラメータ139として、候補パラメータセットを設定できる。候補パラメータセットは、それぞれ、全体ケーブル340の長さ(Cable Length)を含むパラメータ191と、各ケーブルガイド350の位置・姿勢および部分ケーブル長を含むパラメータ192(または193)とを含む。図23では、例えば2つの候補パラメータセットとしてパラメータ191と192のセットと、パラメータ191と193のセットが示されるが、候補パラメータセットの数は2個に限定されない。パラメータ設定プログラム145は、所定演算に従い、パラメータ192(または193)から、各ガイドの絶対座標の位置・姿勢Pnを算出するとともに、各ガイド間に取付けられる部分ケーブルのセグメント数Snを算出する。
また、UI画面において、ユーザは、制約条件に関するパラメータ194および頑強性の範囲Rを指定するパラメータ195を設定できる。パラメータ194は、曲率半径の閾値(例えば、5など)と、シミュレーションで算出された負荷が、制約条件の各閾値を超えた場合の3D画像の表示色を含む。UI画面で設定されたパラメータセットに従いケーブルシミュレーションが実施されて、例えば、ある部分ケーブルの負荷(伸び率、曲率半径および衝撃)が所定の閾値を超えると判定された場合、3Dビジュアライザ164によって、評価データ144に基づき、図23の画面の右側の3D画像の当該部分ケーブルに対応のオブジェクト画像の表示色は、パラメータ194で指定された色(例えば青、赤または緑)に変更される。したがって、部分ケーブルの剛体リンクモデルにかかる負荷の大きさは、ディスプレイ109に表示されるケーブルの画像の表示色で視覚的に提示される。
図24は、本実施の形態に係る実装可能パラメータセットを表形式で示す画面の一例を示す図である。ケーブルシミュレータ165によって算出された実装可能パラメータセットは、評価モジュール177によって、例えば表形式でディスプレイ109に表示される。図24の表では、部分ケーブル長196は、頑強性の範囲R内の値で示される。ユーザが、図24のUI画面において、パラメータセットを選択すると、3Dビジュアライザ164によって、選択されたパラメータセットに従ってケーブルおよびガイドが取付けられたロボットの3D画像が表示される。仮想空間情報管理モジュール150によって、機器挙動データ2520(すなわち関節角度時系列データT(t))およびケーブル挙動データ2521に基づき、実装可能パラメータセットに従ってロボット30のアームと当該アームに取付けられたケーブルの挙動を表す仮想空間情報105が生成される。3Dビジュアライザ164は、生成された仮想空間情報105に従う3D画像をディスプレイ109に表示する。
<N.バネ定数の算出方法>
本実施の形態では、式(1)のバネ定数は、例えば、Hermansson et al.によって提案されているScan2Flexを利用して推定されるが、推定方法は、Scan2Flexを利用する方法に限定されない。バネ定数のうち曲げバネ定数kθの推定(算出)方法を図19と図20を参照して説明する。図19は、バネ定数の推定の方法を模式的に示す図である。図20は、図19の(a)の各ケーブル長に対する測定された垂直変位を表形式で示す図である。バネ定数の推定では、重力によるケーブル形状変化に基づいて、ジョイント辺りの曲げバネ定数が算出される。推定のために、図19の(a)に示すように、実機のケーブルの一方の端点を水平固定し、ケーブル長を100mmから200mmまで20mm間隔で変化させて先端部の垂直変位が測定される。各ケーブル長(Cable Length)に対する測定された垂直変位(Vertical Displacement)が図20にされる。推定では、図19の(b)に示すように、シミュレーションにより、図19の(a)と同様の長さを有するケーブルモデルを作成し、ケーブルモデルの一方の端点は水平に固定される。全体のケーブル質量が一致するように、ケーブルモデルを構成するセグメント質量を設定し、重力として鉛直方向の加速度-9.8[m/s2]を与えて、ケーブル長毎に測定した垂直変位を実現する曲げバネ定数(Swing Stiffness)を算出する。算出の結果は図20の表の最下段に示される。算出値の平均値から、曲げバネ定数kθは70.5に設定される。
本実施の形態では、式(1)のバネ定数は、例えば、Hermansson et al.によって提案されているScan2Flexを利用して推定されるが、推定方法は、Scan2Flexを利用する方法に限定されない。バネ定数のうち曲げバネ定数kθの推定(算出)方法を図19と図20を参照して説明する。図19は、バネ定数の推定の方法を模式的に示す図である。図20は、図19の(a)の各ケーブル長に対する測定された垂直変位を表形式で示す図である。バネ定数の推定では、重力によるケーブル形状変化に基づいて、ジョイント辺りの曲げバネ定数が算出される。推定のために、図19の(a)に示すように、実機のケーブルの一方の端点を水平固定し、ケーブル長を100mmから200mmまで20mm間隔で変化させて先端部の垂直変位が測定される。各ケーブル長(Cable Length)に対する測定された垂直変位(Vertical Displacement)が図20にされる。推定では、図19の(b)に示すように、シミュレーションにより、図19の(a)と同様の長さを有するケーブルモデルを作成し、ケーブルモデルの一方の端点は水平に固定される。全体のケーブル質量が一致するように、ケーブルモデルを構成するセグメント質量を設定し、重力として鉛直方向の加速度-9.8[m/s2]を与えて、ケーブル長毎に測定した垂直変位を実現する曲げバネ定数(Swing Stiffness)を算出する。算出の結果は図20の表の最下段に示される。算出値の平均値から、曲げバネ定数kθは70.5に設定される。
次に、ねじりバネ定数の算出方法を、図21と図22を参照して説明する。図21は、円柱の軸に対するねじりモーメント(Torsional Moment)とねじり角(Angle of Twist)の関係を模式的に示す図である。図22は、ねじり角とねじりモーメントの関係を示すグラフである。本実施の形態では、ケーブルのねじり角とねじりモーメントの関係からジョイント辺りのねじりバネ定数kφが推定される。図21に示されるように、ケーブルにねじりモーメントMが加えられるときのケーブルのねじり角φとすると、両者の関係はM=kφ×φと示される。
ロボットアームによりケーブルに与えたねじりモーメントMとねじり角φの関係の一例が図22のグラフで示される。当該グラフの傾きは、最小二乗法により、例えば25.7と算出される。これは、ケーブル全体のねじりバネ定数k’φに相当する。すなわち、シミュレーションではセグメント単位長を5mmとしているので、ケーブル長が300mmであるケーブルに含まれるセグメント数Snは60であり、それらを接続するジョイント数Nも60となる。したがって、k’φ=kφ/Nの関係から、kφ=1,542と算出される。
本実施の形態では、ダンピング係数については計算の収束性を見ながら試行錯誤的に決定される。
<O.プログラム>
情報処理装置100のプロセッサ102は、シミュレーションのプログラムを実行することによりシステムシミュレーション装置1Aまたはケーブルシミュレーション装置1Bを実現する。ストレージ111には、これらシミュレーション装置を実現するためのプログラムおよびデータなどを記憶し得る。
情報処理装置100のプロセッサ102は、シミュレーションのプログラムを実行することによりシステムシミュレーション装置1Aまたはケーブルシミュレーション装置1Bを実現する。ストレージ111には、これらシミュレーション装置を実現するためのプログラムおよびデータなどを記憶し得る。
ストレージ111の記憶媒体は、HDDまたはSSDに限定されない。
また、シミュレーションに関するプログラムまたはデータは、各種通信回線を介してストレージ111にダウンロードされてもよい。または、記憶媒体114を介してストレージ111にダウンロードされるとしてもよい。記憶媒体114は、コンピュータその他装置、機械などが記録されたプログラムなどの情報を読み取り可能なように、当該プログラムなどの情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。情報処理装置100は、この記憶媒体114から、シミュレーションに関するプログラムまたはデータを取得してもよい。
また、シミュレーションに関するプログラムまたはデータは、各種通信回線を介してストレージ111にダウンロードされてもよい。または、記憶媒体114を介してストレージ111にダウンロードされるとしてもよい。記憶媒体114は、コンピュータその他装置、機械などが記録されたプログラムなどの情報を読み取り可能なように、当該プログラムなどの情報を、電気的、磁気的、光学的、機械的または化学的作用によって蓄積する媒体である。情報処理装置100は、この記憶媒体114から、シミュレーションに関するプログラムまたはデータを取得してもよい。
プログラムは、CPUなどの1つ以上のプロセッサにより、またはプロセッサとASIC(Application Specific Integrated Circuit),FPGA(Field-Programmable Gate Array)などの回路との組合せにより実行され得る。
<P.付記>
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
機器(30)に複数ガイド(Gn)を介し取付けられるケーブル(340)の挙動を算出するシミュレーション装置(1)であって、
仮想空間に配置された前記機器に対応する第1の対象の挙動に基づき、当該仮想空間における各前記複数ガイドの位置および姿勢と、各ガイド間の部分ケーブル長とを含むケーブル取付けに関するパラメータセット(Pn、Sn)を用いて、各ガイド間の部分ケーブル(Cn)に対応する前記仮想空間に配置された第2の対象の挙動を算出する部分ケーブル挙動算出部(166)と、
各前記部分ケーブルについて、
複数の前記パラメータセットそれぞれについて、前記部分ケーブル挙動算出部により当該パラメータセットを用いて算出される当該部分ケーブルに対応する前記第2の対象の挙動に基づき、当該部分ケーブルに対応する当該第2の対象にかかる負荷を算出し、
各前記複数のパラメータセットについて、当該部分ケーブルに対応する前記第2の対象の算出された負荷の大きさが、制約条件を満たすかを判定するパラメータ判定部(167,168,169)と、
前記各部分ケーブルについて、前記パラメータ判定部によって前記制約条件を満たすと判定された1つ以上の前記パラメータセットから、前記各部分ケーブルをあわせたケーブル全体の取付けに関する条件を満たすパラメータセットを決定するパラメータ決定部(170)と、を備える、シミュレーション装置。
[構成2]
前記制約条件は、
前記部分ケーブルに対応する前記第2の対象にかかる前記負荷の大きさが閾値を超えないとの条件を含む、構成1に記載のシミュレーション装置。
[構成3]
前記制約条件は、
前記部分ケーブルの長さが予め定められた範囲(R)で変化する場合に、当該部分ケーブルに対応する前記第2の対象にかかる前記負荷の大きさが閾値を超えないとの条件を含む、構成1に記載のシミュレーション装置。
[構成4]
前記ケーブル全体の取付けに関する条件は、隣接する前記部分ケーブルの間で共有されるガイドの位置および姿勢は共通するとの条件を含む、構成1から3のいずれか1に記載のシミュレーション装置。
[構成5]
前記第1の対象の挙動は、所定のタイムステップ(ti)毎に算出された挙動を含み、
前記部分ケーブル挙動算出部は、
前記タイムステップ毎に、当該タイムステップに対応の前記第1の対象の挙動に基づき、前記パラメータセットを用いて、前記第2の対象の挙動を算出する、構成1から4のいずれか1に記載のシミュレーション装置。
[構成6]
前記部分ケーブル挙動算出部は、物理シミュレータを含む、構成1から5のいずれか1に記載のシミュレーション装置。
[構成7]
前記第2の対象は、隣接する剛体(304)間をジョイント(305)で接合して連ねられてモデル化された剛体リンクを含み、
前記物理シミュレータは、
前記モデル化された前記剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、前記ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、前記第1の対象の挙動に基づいて実施することにより、前記第2の対象の挙動を算出する、構成6に記載のシミュレーション装置。
[構成8]
前記拘束条件は、前記ケーブルの硬さを表すパラメータを含む、構成7に記載のシミュレーション装置。
[構成9]
前記負荷は、前記第2の対象が備える各前記剛体にかかる負荷を含む、構成8に記載のシミュレーション装置。
[構成10]
前記部分ケーブル挙動算出部により算出された前記第2の対象の挙動を、算出される前記負荷に基づき評価する評価部(177)を、さらに備える、構成1から9のいずれか1に記載のシミュレーション装置。
[構成11]
前記機器は、ロボット(30)を含み、
前記第1の対象の挙動は、前記ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出される、構成1から10のいずれか1に記載のシミュレーション装置。
[構成12]
前記シミュレーション装置は、
前記仮想空間に配置された、前記ロボットの周辺機器(230)に対応する対象の挙動を、当該周辺機器を制御する命令またはパラメータを含むシミュレーションプログラム(126、122)を実行して算出する、構成11に記載のシミュレーション装置。
[構成13]
前記仮想空間をビジュアル化した画像を生成する画像生成部(164)を、さらに備える、構成1から11のいずれか1に記載のシミュレーション装置。
[構成14]
コンピュータ(100)に、複数ガイド(Gn)を介し機器(30)に取付けられるケーブル(340)の挙動を算出する方法を実行させるシミュレーションプログラムであって、
前記方法は、
仮想空間に配置された前記機器に対応する第1の対象の挙動に基づき、当該仮想空間における各前記複数ガイドの位置および姿勢と、各ガイド間の部分ケーブル長とを含むケーブル取付けに関するパラメータセット(Pn,Sn)を用いて、各ガイド間の部分ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出するステップと、
各前記部分ケーブルについてパラメータを判定するステップと、を備え、
前記パラメータを判定するステップは、
各前記部分ケーブルについて、
複数の前記パラメータセットそれぞれについて、当該パラメータセットを用いて算出される当該部分ケーブルに対応する前記第2の対象の挙動に基づき、当該部分ケーブルに対応する当該第2の対象にかかる負荷を算出するステップと、
各前記複数のパラメータセットについて、当該部分ケーブルに対応する前記第2の対象の算出された負荷の大きさが、制約条件を満たすかを判定するステップと、を含み、
前記方法は、さらに、
前記パラメータを判定するステップにおいて、前記各部分ケーブルについて、前記制約条件を満たすと判定された1つ以上の前記パラメータセットから、前記各部分ケーブルをあわせたケーブル全体の取付けに関する条件を満たすパラメータセットを決定するステップを、備える、シミュレーションプログラム。
上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
機器(30)に複数ガイド(Gn)を介し取付けられるケーブル(340)の挙動を算出するシミュレーション装置(1)であって、
仮想空間に配置された前記機器に対応する第1の対象の挙動に基づき、当該仮想空間における各前記複数ガイドの位置および姿勢と、各ガイド間の部分ケーブル長とを含むケーブル取付けに関するパラメータセット(Pn、Sn)を用いて、各ガイド間の部分ケーブル(Cn)に対応する前記仮想空間に配置された第2の対象の挙動を算出する部分ケーブル挙動算出部(166)と、
各前記部分ケーブルについて、
複数の前記パラメータセットそれぞれについて、前記部分ケーブル挙動算出部により当該パラメータセットを用いて算出される当該部分ケーブルに対応する前記第2の対象の挙動に基づき、当該部分ケーブルに対応する当該第2の対象にかかる負荷を算出し、
各前記複数のパラメータセットについて、当該部分ケーブルに対応する前記第2の対象の算出された負荷の大きさが、制約条件を満たすかを判定するパラメータ判定部(167,168,169)と、
前記各部分ケーブルについて、前記パラメータ判定部によって前記制約条件を満たすと判定された1つ以上の前記パラメータセットから、前記各部分ケーブルをあわせたケーブル全体の取付けに関する条件を満たすパラメータセットを決定するパラメータ決定部(170)と、を備える、シミュレーション装置。
[構成2]
前記制約条件は、
前記部分ケーブルに対応する前記第2の対象にかかる前記負荷の大きさが閾値を超えないとの条件を含む、構成1に記載のシミュレーション装置。
[構成3]
前記制約条件は、
前記部分ケーブルの長さが予め定められた範囲(R)で変化する場合に、当該部分ケーブルに対応する前記第2の対象にかかる前記負荷の大きさが閾値を超えないとの条件を含む、構成1に記載のシミュレーション装置。
[構成4]
前記ケーブル全体の取付けに関する条件は、隣接する前記部分ケーブルの間で共有されるガイドの位置および姿勢は共通するとの条件を含む、構成1から3のいずれか1に記載のシミュレーション装置。
[構成5]
前記第1の対象の挙動は、所定のタイムステップ(ti)毎に算出された挙動を含み、
前記部分ケーブル挙動算出部は、
前記タイムステップ毎に、当該タイムステップに対応の前記第1の対象の挙動に基づき、前記パラメータセットを用いて、前記第2の対象の挙動を算出する、構成1から4のいずれか1に記載のシミュレーション装置。
[構成6]
前記部分ケーブル挙動算出部は、物理シミュレータを含む、構成1から5のいずれか1に記載のシミュレーション装置。
[構成7]
前記第2の対象は、隣接する剛体(304)間をジョイント(305)で接合して連ねられてモデル化された剛体リンクを含み、
前記物理シミュレータは、
前記モデル化された前記剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、前記ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、前記第1の対象の挙動に基づいて実施することにより、前記第2の対象の挙動を算出する、構成6に記載のシミュレーション装置。
[構成8]
前記拘束条件は、前記ケーブルの硬さを表すパラメータを含む、構成7に記載のシミュレーション装置。
[構成9]
前記負荷は、前記第2の対象が備える各前記剛体にかかる負荷を含む、構成8に記載のシミュレーション装置。
[構成10]
前記部分ケーブル挙動算出部により算出された前記第2の対象の挙動を、算出される前記負荷に基づき評価する評価部(177)を、さらに備える、構成1から9のいずれか1に記載のシミュレーション装置。
[構成11]
前記機器は、ロボット(30)を含み、
前記第1の対象の挙動は、前記ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出される、構成1から10のいずれか1に記載のシミュレーション装置。
[構成12]
前記シミュレーション装置は、
前記仮想空間に配置された、前記ロボットの周辺機器(230)に対応する対象の挙動を、当該周辺機器を制御する命令またはパラメータを含むシミュレーションプログラム(126、122)を実行して算出する、構成11に記載のシミュレーション装置。
[構成13]
前記仮想空間をビジュアル化した画像を生成する画像生成部(164)を、さらに備える、構成1から11のいずれか1に記載のシミュレーション装置。
[構成14]
コンピュータ(100)に、複数ガイド(Gn)を介し機器(30)に取付けられるケーブル(340)の挙動を算出する方法を実行させるシミュレーションプログラムであって、
前記方法は、
仮想空間に配置された前記機器に対応する第1の対象の挙動に基づき、当該仮想空間における各前記複数ガイドの位置および姿勢と、各ガイド間の部分ケーブル長とを含むケーブル取付けに関するパラメータセット(Pn,Sn)を用いて、各ガイド間の部分ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出するステップと、
各前記部分ケーブルについてパラメータを判定するステップと、を備え、
前記パラメータを判定するステップは、
各前記部分ケーブルについて、
複数の前記パラメータセットそれぞれについて、当該パラメータセットを用いて算出される当該部分ケーブルに対応する前記第2の対象の挙動に基づき、当該部分ケーブルに対応する当該第2の対象にかかる負荷を算出するステップと、
各前記複数のパラメータセットについて、当該部分ケーブルに対応する前記第2の対象の算出された負荷の大きさが、制約条件を満たすかを判定するステップと、を含み、
前記方法は、さらに、
前記パラメータを判定するステップにおいて、前記各部分ケーブルについて、前記制約条件を満たすと判定された1つ以上の前記パラメータセットから、前記各部分ケーブルをあわせたケーブル全体の取付けに関する条件を満たすパラメータセットを決定するステップを、備える、シミュレーションプログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
1 シミュレーション装置、1A システムシミュレーション装置、1B ケーブルシミュレーション装置、2 制御システム、30 ロボット、100 情報処理装置、102 プロセッサ、104 主メモリ、105 仮想空間情報、106 操作ユニット、108 出力ユニット、109 ディスプレイ、110 ネットワークインターフェイス、111 ストレージ、112 光学ドライブ、114 記憶媒体、116 ローカル通信インターフェイス、118 内部バス、120 仮想時刻生成プログラム、121 中継プログラム、122 物理シミュレーションプログラム、124 物理シミュレーションパラメータ、126 PLCシミュレーションプログラム、130 ロボットエミュレーションプログラム、132 ロボットパラメータ、134 統合プログラム、135 3Dビジュアライズデータ、136 画像処理プログラム、137 ケーブルシミュレーションプログラム、139 ケーブルパラメータ、142 負荷情報、143 評価プログラム、144 評価データ、145 パラメータ設定プログラム、147 連立方程式、150 仮想空間情報管理モジュール、151 機器挙動生成モジュール、152 PLCシミュレータ、154 周期生成モジュール、155 ワーク挙動シミュレータ、156 物理シミュレータ、158 中継モジュール、160 ロボットエミュレータ、162 ワークトラッキングモジュール、164 3Dビジュアライザ、165 ケーブルシミュレータ、166 部分ケーブル挙動算出モジュール、167 負荷算出モジュール、168 制約条件判定モジュール、169 頑強性判定モジュール、170 パラメータ決定モジュール、177 評価モジュール、210 ロボットハンド、232 ワーク、252 挙動データ、253 画像データ、301 アーム、304 剛体、306 表面、310 ロボットコントローラ、340 全体ケーブル、341,342,343,Cn 部分ケーブル、350,351,G,Gn ケーブルガイド、1371 制約条件判定プログラム、2520 機器挙動データ、2521 ケーブル挙動データ、2530 機器画像データ、2531 ケーブル画像データ、Sn セグメント数、Pn 挙動・姿勢、R 範囲。
Claims (14)
- 機器に複数ガイドを介し取付けられるケーブルの挙動を算出するシミュレーション装置であって、
仮想空間に配置された前記機器に対応する第1の対象の挙動に基づき、当該仮想空間における各前記複数ガイドの位置および姿勢と、各ガイド間の部分ケーブル長とを含むケーブル取付けに関するパラメータセットを用いて、各ガイド間の部分ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出する部分ケーブル挙動算出部と、
各前記部分ケーブルについて、
複数の前記パラメータセットそれぞれについて、前記部分ケーブル挙動算出部により当該パラメータセットを用いて算出される当該部分ケーブルに対応する前記第2の対象の挙動に基づき、当該部分ケーブルに対応する当該第2の対象にかかる負荷を算出し、
各前記複数のパラメータセットについて、当該部分ケーブルに対応する前記第2の対象の算出された負荷の大きさが、制約条件を満たすかを判定するパラメータ判定部と、
前記各部分ケーブルについて、前記パラメータ判定部によって前記制約条件を満たすと判定された1つ以上の前記パラメータセットから、前記各部分ケーブルをあわせたケーブル全体の取付けに関する条件を満たすパラメータセットを決定するパラメータ決定部と、を備える、シミュレーション装置。 - 前記制約条件は、
前記部分ケーブルに対応する前記第2の対象にかかる前記負荷の大きさが閾値を超えないとの条件を含む、請求項1に記載のシミュレーション装置。 - 前記制約条件は、
前記部分ケーブルの長さが予め定められた範囲で変化する場合に、当該部分ケーブルに対応する前記第2の対象にかかる前記負荷の大きさが閾値を超えないとの条件を含む、請求項1に記載のシミュレーション装置。 - 前記ケーブル全体の取付けに関する条件は、隣接する前記部分ケーブルの間で共有されるガイドの位置および姿勢は共通するとの条件を含む、請求項1から3のいずれか1項に記載のシミュレーション装置。
- 前記第1の対象の挙動は、所定のタイムステップ毎に算出された挙動を含み、
前記部分ケーブル挙動算出部は、
前記タイムステップ毎に、当該タイムステップに対応の前記第1の対象の挙動に基づき、前記パラメータセットを用いて、前記第2の対象の挙動を算出する、請求項1から4のいずれか1項に記載のシミュレーション装置。 - 前記部分ケーブル挙動算出部は、物理シミュレータを含む、請求項1から5のいずれか1項に記載のシミュレーション装置。
- 前記第2の対象は、隣接する剛体間をジョイントで接合して連ねられてモデル化された剛体リンクを含み、
前記物理シミュレータは、
前記モデル化された前記剛体リンクにおける隣接する剛体同士の位置および姿勢の関係と、前記ジョイントに対応する条件であって剛体同士の位置および姿勢の関係に課された拘束条件とを表す方程式に従う演算を、前記第1の対象の挙動に基づいて実施することにより、前記第2の対象の挙動を算出する、請求項6に記載のシミュレーション装置。 - 前記拘束条件は、前記ケーブルの硬さを表すパラメータを含む、請求項7に記載のシミュレーション装置。
- 前記負荷は、前記第2の対象が備える各前記剛体にかかる負荷を含む、請求項8に記載のシミュレーション装置。
- 前記部分ケーブル挙動算出部により算出された前記第2の対象の挙動を、算出される前記負荷に基づき評価する評価部を、さらに備える、請求項1から9のいずれか1項に記載のシミュレーション装置。
- 前記機器は、ロボットを含み、
前記第1の対象の挙動を、前記ロボットを操作する指令コードを有したロボットプログラムのエミュレーションにより算出する、請求項1から10のいずれか1項に記載のシミュレーション装置。 - 前記シミュレーション装置は、
前記仮想空間に配置された、前記ロボットの周辺機器に対応する対象の挙動を、当該周辺機器を制御する命令またはパラメータを含むシミュレーションプログラムを実行して算出する、請求項11に記載のシミュレーション装置。 - 前記仮想空間をビジュアル化した画像を生成する画像生成部を、さらに備える、請求項1から12のいずれか1項に記載のシミュレーション装置。
- コンピュータに、複数ガイドを介し機器に取付けられるケーブルの挙動を算出する方法を実行させるシミュレーションプログラムであって、
前記方法は、
仮想空間に配置された前記機器に対応する第1の対象の挙動に基づき、当該仮想空間における各前記複数ガイドの位置および姿勢と、各ガイド間の部分ケーブル長とを含むケーブル取付けに関するパラメータセットを用いて、各ガイド間の部分ケーブルに対応する前記仮想空間に配置された第2の対象の挙動を算出するステップと、
各前記部分ケーブルについてパラメータを判定するステップと、を備え、
前記パラメータを判定するステップは、
各前記部分ケーブルについて、
複数の前記パラメータセットそれぞれについて、当該パラメータセットを用いて算出される当該部分ケーブルに対応する前記第2の対象の挙動に基づき、当該部分ケーブルに対応する当該第2の対象にかかる負荷を算出するステップと、
各前記複数のパラメータセットについて、当該部分ケーブルに対応する前記第2の対象の算出された負荷の大きさが、制約条件を満たすかを判定するステップと、を含み、
前記方法は、さらに、
前記パラメータを判定するステップにおいて、前記各部分ケーブルについて、前記制約条件を満たすと判定された1つ以上の前記パラメータセットから、前記各部分ケーブルをあわせたケーブル全体の取付けに関する条件を満たすパラメータセットを決定するステップを、備える、シミュレーションプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020213178A JP2022099420A (ja) | 2020-12-23 | 2020-12-23 | シミュレーション装置およびシミュレーションプログラム |
CN202180079396.1A CN116635799A (zh) | 2020-12-23 | 2021-03-11 | 模拟装置和模拟程序 |
PCT/JP2021/009843 WO2022137581A1 (ja) | 2020-12-23 | 2021-03-11 | シミュレーション装置およびシミュレーションプログラム |
EP21909743.3A EP4269049A1 (en) | 2020-12-23 | 2021-03-11 | Simulation device and simulation program |
US18/038,797 US20240005060A1 (en) | 2020-12-23 | 2021-03-11 | Simulation device, storage medium having simulation program and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020213178A JP2022099420A (ja) | 2020-12-23 | 2020-12-23 | シミュレーション装置およびシミュレーションプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022099420A true JP2022099420A (ja) | 2022-07-05 |
Family
ID=82157717
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020213178A Pending JP2022099420A (ja) | 2020-12-23 | 2020-12-23 | シミュレーション装置およびシミュレーションプログラム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240005060A1 (ja) |
EP (1) | EP4269049A1 (ja) |
JP (1) | JP2022099420A (ja) |
CN (1) | CN116635799A (ja) |
WO (1) | WO2022137581A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022163830A (ja) * | 2021-04-15 | 2022-10-27 | 株式会社神戸製鋼所 | 多関節ロボットの線状部材形状シミュレータ、該方法および該プログラム |
CN118046421B (zh) * | 2024-04-16 | 2024-06-21 | 以诺康医疗科技(苏州)有限公司 | 手术机器人关节实际力矩的自动采集方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06291190A (ja) * | 1993-03-31 | 1994-10-18 | Matsushita Electric Ind Co Ltd | 集積回路のマスクレイアウト設計方法 |
JP2993341B2 (ja) * | 1993-12-24 | 1999-12-20 | 日産自動車株式会社 | 線条材のシミュレーション方法 |
JP4164785B2 (ja) * | 2000-03-02 | 2008-10-15 | マツダ株式会社 | 線条材の配線設計支援装置及び配線設計支援方法及びコンピュータ読み取り可能な記憶媒体 |
JP2005293331A (ja) * | 2004-04-01 | 2005-10-20 | Nissan Motor Co Ltd | ロボット付加非剛体物のシミュレーション方法およびロボット付加非剛体物の状態診断方法 |
JP5927270B2 (ja) * | 2014-11-06 | 2016-06-01 | ファナック株式会社 | ロボットシミュレーション装置 |
JP6052372B2 (ja) | 2015-11-12 | 2016-12-27 | オムロン株式会社 | シミュレーション装置、シミュレーション方法、および、シミュレーションプログラム |
JP7155664B2 (ja) * | 2017-10-31 | 2022-10-19 | セイコーエプソン株式会社 | シミュレーション装置、制御装置およびロボット |
JP6988573B2 (ja) * | 2018-03-01 | 2022-01-05 | オムロン株式会社 | シミュレーション装置、シミュレーション方法及びシミュレーションプログラム |
-
2020
- 2020-12-23 JP JP2020213178A patent/JP2022099420A/ja active Pending
-
2021
- 2021-03-11 CN CN202180079396.1A patent/CN116635799A/zh active Pending
- 2021-03-11 US US18/038,797 patent/US20240005060A1/en active Pending
- 2021-03-11 WO PCT/JP2021/009843 patent/WO2022137581A1/ja active Application Filing
- 2021-03-11 EP EP21909743.3A patent/EP4269049A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116635799A (zh) | 2023-08-22 |
WO2022137581A1 (ja) | 2022-06-30 |
EP4269049A1 (en) | 2023-11-01 |
US20240005060A1 (en) | 2024-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7439206B2 (ja) | 情報処理方法、情報処理装置、プログラム、記録媒体、生産システム、ロボットシステム、物品の製造方法 | |
US9387589B2 (en) | Visual debugging of robotic tasks | |
JP5908544B2 (ja) | 駆動軸のジャークを低下させるロボットプログラムを生成するロボットプログラム生成装置 | |
JP7388074B2 (ja) | シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法 | |
WO2022137581A1 (ja) | シミュレーション装置およびシミュレーションプログラム | |
JP7293267B2 (ja) | 情報処理装置、情報処理方法及びロボットシステム | |
JP2011031309A (ja) | 移動体姿勢生成方法および移動体姿勢生成装置 | |
JP7447568B2 (ja) | シミュレーション装置およびプログラム | |
WO2021149419A1 (ja) | シミュレーション装置およびシミュレーションプログラム | |
JP7475841B2 (ja) | 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置 | |
TWI781708B (zh) | 學習裝置、學習方法、學習程式、控制裝置、控制方法及控制程式 | |
JP5803179B2 (ja) | ロボットの制御方法およびロボットの制御装置 | |
JP2022132506A (ja) | シミュレーション方法、シミュレーションシステムおよびモジュールデータのデータ構造 | |
JP7424122B2 (ja) | シミュレーション装置およびプログラム | |
CN115008439A (zh) | 信息处理设备和方法、机器人系统、产品制造方法 | |
WO2022168609A1 (ja) | 制御システム、動作計画装置、制御装置、動作計画及び制御方法、動作計画方法、並びに制御方法 | |
Le et al. | Graphical simulator for teaching robot with parallel wire type teaching device | |
Daneshjo et al. | An Algorithm in the Process of Planning of Safety Pathway–A Collision-Free Pathway of a Robot | |
Chang | Model-Based Manipulation of Linear Flexible Objects | |
Qin | Simulation of Path Planning Model of Manipulator Based on Artificial Intelligence Algorithm | |
Sychova | Motion Control of the Angular Type Educational Manipulator Using Visual Components | |
JP2023076836A (ja) | ロボット装置、ロボット装置の制御方法、ロボット装置を用いた物品の製造方法、制御プログラム、記録媒体 | |
CN116940447A (zh) | 操纵操纵器的方法、控制系统及工业机器人 | |
Fratu et al. | Physical Robots Programming by Imitation Using Virtual Robot Prototypes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20240702 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240730 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20240813 |