(57)【要約】【課題】ケーブルフォーミングのシミュレーションにおける処理量を低減する。【解決手段】事前設定部４２は、拘束条件テーブル６０において、被組立部品のケーブルの通過点それぞれに対応付けて拘束条件を記憶し、シミュレーション部４４は、シミュレーションにおいて被組立部品の所定の通過点にケーブルが近接すると、ケーブル２０のうち通過点に近接する部分（ノード）の拘束条件として、通過点に予め設定されている拘束条件を転写してシミュレーションを実行する。【選択図】図３
2019159542.tif 000002
【特許請求の範囲】
【請求項１】
ロボットが物体に対して柔軟物をフォーミングする作業をシミュレーションする情報処理装置であって、
前記物体のうち、前記柔軟物を拘束する拘束箇所それぞれに対応付けて拘束条件データを記憶部に記憶する記憶処理部と、
前記シミュレーションを実行する実行部と、を備え、
前記実行部は、前記シミュレーションにおいて前記物体の所定の拘束箇所に前記柔軟物が近接すると、前記柔軟物のうち前記所定の拘束箇所に近接する部分の拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用して、前記シミュレーションを実行する、ことを特徴とする情報処理装置。
【請求項２】
前記柔軟物には、所定間隔をあけて複数のノードが設定されており、
前記実行部は、前記所定の拘束箇所に設定された拘束範囲に含まれ、かつ前記拘束範囲の中心と最も近接しているノードの拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用して、前記シミュレーションを実行する、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記実行部は、前記柔軟物のうち前記所定の拘束箇所に近接するノードを前記拘束範囲の中心に移動させた状態で、該ノードの拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用する、ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記記憶処理部は、拘束箇所の種類ごとに用意された拘束条件データに基づいて、前記拘束箇所それぞれに対応付けて拘束条件データを前記記憶部に記憶する、ことを特徴とする請求項１〜３のいずれか一項に記載の情報処理装置。
【請求項５】
前記実行部は、前記柔軟物の動きに合わせて、前記所定の拘束箇所に対応付けて前記記憶部に記憶された拘束条件データを適用する前記柔軟物の部分を異ならせる、ことを特徴とする請求項１〜４のいずれか一項に記載の情報処理装置。
【請求項６】
前記実行部は、前記シミュレーションの結果を表示する際に、前記物体の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データと、前記柔軟物の各部分に適用された拘束条件データとを異なる態様で表示する、ことを特徴とする請求項１〜５のいずれか一項に記載の情報処理装置。
【請求項７】
ロボットが物体に対して柔軟物をフォーミングする作業をシミュレーションするシミュレーションプログラムであって、
前記物体のうち、前記柔軟物を拘束する拘束箇所それぞれに対応付けて拘束条件データを記憶部に記憶し、
前記シミュレーションを実行する、処理をコンピュータに実行させ、
前記シミュレーションを実行する処理では、前記シミュレーションにおいて前記物体の所定の拘束箇所に前記柔軟物が近接すると、前記柔軟物のうち前記所定の拘束箇所に近接する部分の拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用して、前記シミュレーションを実行する、ことを特徴とするシミュレーションプログラム。
【請求項８】
ロボットが物体に対して柔軟物をフォーミングする作業をシミュレーションするシミュレーション方法であって、
前記物体のうち、前記柔軟物を拘束する拘束箇所それぞれに対応付けて拘束条件データを記憶部に記憶し、
前記シミュレーションを実行する、処理をコンピュータが実行し、
前記シミュレーションを実行する処理では、前記シミュレーションにおいて前記物体の所定の拘束箇所に前記柔軟物が近接すると、前記柔軟物のうち前記所定の拘束箇所に近接する部分の拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用して、前記シミュレーションを実行する、ことを特徴とするシミュレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、シミュレーションプログラム及びシミュレーション方法に関する。
【背景技術】
【０００２】
電子機器を製造する際には、ケーブルをワークと呼ばれる被組立部品の所定位置に這わせ、所望の形状に変化させるなどすることで、ケーブルが邪魔にならないようにする必要がある。この作業は、ケーブルフォーミングと呼ばれている。ロボットを用いてケーブルフォーミングを行う場合、事前のシミュレーションにより、予め定めておいた動作をロボットに実行させたときに正確にケーブルフォーミングができるかどうかを確かめることがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−８５１９１号公報
【特許文献２】特開２００４−１３９９７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
シミュレーションにおいては、被組立部品の壁面に定義された干渉面に対するケーブル表面の接触を検知してケーブルの位置を拘束し、ケーブルの拘束状態を考慮したうえでケーブルの動きを把握するのが一般的である。また、ケーブルは柔軟物であるため、非常に多くの面を組み合せて各面の接続角度を逐次変化させることで柔軟性を表現している。
【０００５】
しかしながら、上記のようなシミュレーションにおいては、ケーブルフォーミングを行っている間のケーブルの移動や変形に応じて、ケーブル表面と干渉面との接触を逐次検知する必要がある。このため、計算量は膨大となり、シミュレーション結果を得るまでに多大な時間を要する。
【０００６】
１つの側面では、本発明は、シミュレーションにおける処理量を低減することが可能な情報処理装置、シミュレーションプログラム及びシミュレーション方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様では、情報処理装置は、ロボットが物体に対して柔軟物をフォーミングする作業をシミュレーションする情報処理装置であって、前記物体のうち、前記柔軟物を拘束する拘束箇所それぞれに対応付けて拘束条件データを記憶部に記憶する記憶処理部と、前記シミュレーションを実行する実行部と、を備え、前記実行部は、前記シミュレーションにおいて前記物体の所定の拘束箇所に前記柔軟物が近接すると、前記柔軟物のうち前記所定の拘束箇所に近接する部分の拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用して、前記シミュレーションを実行する情報処理装置である。
【発明の効果】
【０００８】
シミュレーションにおける処理量を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態においてシミュレーションに用いる被組立部品及びケーブルの一例を示す図である。
【図２】一実施形態に係る情報処理装置のハードウェア構成を示す図である。
【図３】図２の情報処理装置の機能ブロック図である。
【図４】図４（ａ）〜図４（ｅ）は、拘束の種類の例を示す図である。
【図５】被組立部品に設定される通過点及び拘束条件の一例を示す図である。
【図６】図６（ａ）は、拘束の種類ごとに予め用意されている拘束条件を示す図であり、図６（ｂ）は、拘束条件テーブルを示す図である。
【図７】ケーブルに設定されているノードを示す図である。
【図８】図８（ａ）、図８（ｂ）は、ノードテーブルを示す図である。
【図９】情報処理装置の処理を示すフローチャートである。
【図１０】図１０（ａ）は、通過点の拘束がフック拘束である場合の通過点及び拘束影響範囲を模式的に示す図であり、図１０（ｂ）は、拘束影響範囲にケーブルの一部が入った状態を示す図である。
【図１１】図１１（ａ）は、フック拘束を上方から見た状態を示す図であり、図１１（ｂ）は、フック拘束の拘束条件を示す図であり、図１１（ｃ）は、溝拘束を上方から見た状態を示す図であり、図１１（ｄ）は、溝拘束の拘束条件を示す図である。
【図１２】図１２（ａ）〜図１２（ｃ）は、図９のステップＳ１８〜Ｓ２２の処理を説明するための図である。
【図１３】図１３（ａ）、図１３（ｂ）は、シミュレーションの具体例を説明するための図（その１）である。
【図１４】図１４（ａ）、図１４（ｂ）は、シミュレーションの具体例を説明するための図（その２）である。
【発明を実施するための形態】
【００１０】
以下、ケーブルフォーミングのシミュレーションを実行する情報処理装置の一実施形態について、図１〜図１４に基づいて詳細に説明する。本実施形態の情報処理装置１０は、ロボットにケーブルフォーミングのための動作を実行させたときに、物体としての被組立部品３０（図１参照）上で柔軟物としてのケーブル２０を適切にフォーミングできるかどうかを確認するためのシミュレーションを実行する。ここで、フォーミングとは、ケーブル２０を所望の形状に変化させることを意味する。なお、本実施形態のシミュレーションにおいては、ケーブル２０の両端に設けられているコネクタ２２、２４の少なくとも一方を被組立部品３０に接続した状態からロボットを動作させ、ケーブル２０の位置や姿勢を調整した場合に、ケーブル２０を図１に示すような状態（「ケーブル布線ルート」と呼ぶ）にフォーミングできるかを確認する。なお、図１では、図面の見やすさのため、ケーブルを黒太線にて示している。
【００１１】
図２には、本実施形態に係る情報処理装置１０のハードウェア構成が示されている。図２に示すように、情報処理装置１０は、ＣＰＵ（Central Processing Unit）９０、ＲＯＭ（Read Only Memory）９２、ＲＡＭ（Random Access Memory）９４、記憶部（ここではＨＤＤ（Hard Disk Drive））９６、ネットワークインタフェース９７、表示部９３、入力部９５、及び可搬型記憶媒体用ドライブ９９等を備えている。これら情報処理装置１０の構成各部は、バス９８に接続されている。情報処理装置１０では、ＲＯＭ９２あるいはＨＤＤ９６に格納されているプログラム（シミュレーションプログラムを含む）、或いは可搬型記憶媒体用ドライブ９９が可搬型記憶媒体９１から読み取ったプログラム（シミュレーションプログラムを含む）をＣＰＵ９０が実行することにより、図３に示す、各部の機能が実現される。なお、図３の各部の機能は、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field Programmable Gate Array）等の集積回路により実現されてもよい。なお、図３の各部の詳細については後述する。
【００１２】
図３には、情報処理装置１０の機能ブロック図が示されている。図３に示すように、情報処理装置１０は、ＣＰＵ９０がプログラムを実行することで、入力受付部４０、記憶処理部としての事前設定部４２、及び実行部としてのシミュレーション部４４として機能する。
【００１３】
入力受付部４０は、ユーザが入力部９５を介して入力した情報を取得し、事前設定部４２に送信する。
【００１４】
事前設定部４２は、入力受付部４０からユーザが入力した情報を受信し、受信した情報に基づいて、事前設定を行う。具体的には、事前設定部４２は、被組立部品３０のうち、ユーザが指定した通過点（ケーブル２０を適切な状態にフォーミングしたときにケーブル２０が通過するケーブル布線ルート上の点）に対して拘束条件を事前設定する。事前設定した拘束条件は、記憶部としての拘束条件テーブル６０に格納される。なお、通過点には、ケーブル布線ルート上の中継点、変曲点、被組立部品３０上の構造物（フック状構造物など）の位置が含まれ、ケーブルを拘束する拘束箇所であると言える。
【００１５】
ここで、被組立部品３０によるケーブル２０の拘束には、例えば、図４（ａ）〜図４（ｅ）において模式的に示すような拘束があるものとする。
【００１６】
図４（ａ）は、完全拘束の例を示している。例えば結束バンド等を用いてケーブル２０を拘束した場合に、図４（ａ）に示すような完全拘束となる。完全拘束では、ケーブル２０は全方向（Ｘ、Ｙ、Ｚ、θＸ、θＹ、θＺ）に関して拘束された状態となる。なお、図４（ａ）〜図４（ｅ）では、ケーブル２０が伸びる方向をＸ軸方向とし、Ｘ軸方向に直交する２軸方向をＹ軸及びＺ軸方向として示している。
【００１７】
図４（ｂ）は、穴拘束の例を示している。穴拘束では、ケーブル２０は、Ｙ軸方向、Ｚ軸方向、及びθＸ、θＹ、θＺ方向に関して拘束され、Ｘ軸方向に関して解放されている（自由度がある）。なお、図４（ｂ）及び図４（ｃ）〜図４（ｅ）においては、解放されている方向（回転方向は除く）を破線矢印にて示している。
【００１８】
図４（ｃ）は、フック拘束の例を示している。図４（ｃ）のフック拘束では、ケーブル２０は、＋Ｙ方向、Ｚ軸方向及びθＸ、θＹ方向に関して拘束され、−Ｙ方向、Ｘ軸方向及びθＺ方向に関して解放されている。なお、フックの向きによっては、−Ｙ方向に関して拘束され、＋Ｙ方向に関して解放される場合もある。
【００１９】
図４（ｄ）は、溝拘束の例を示している。溝拘束では、ケーブル２０は、Ｙ軸方向、−Ｚ方向及びθＸ、θＺ方向に関して拘束され、＋Ｚ方向、Ｘ軸方向及びθＹ方向に関して解放されている。
【００２０】
図４（ｅ）は、床拘束の例を示している。床拘束では、ケーブル２０は、−Ｚ方向及びθＸ方向に関して拘束され、＋Ｚ方向、Ｘ軸方向、Ｙ軸方向及びθＹ、θＺ方向に関して解放されている。
【００２１】
本実施形態では、事前設定部４２は、ユーザが例えば図５に示す通過点１、２、…、ｐ、…を選択し、各通過点の拘束の種類を選択した場合に、各通過点１、２、…、ｐ、…に対して拘束条件を設定する。例えば、図５の通過点ｐの拘束の種類としてフック拘束が選択されると、通過点ｐを通るケーブル２０が伸びる方向をＸ軸方向、図５の紙面直交方向をＺ軸方向、Ｘ軸とＹ軸に直交する方向をＹ軸方向として、破線矢印で示す方向を「解放」とする拘束条件が設定される。この場合、事前設定部４２は、図６（ａ）に示すように拘束の種類ごとに拘束条件のデータを予め用意しておき、ユーザが拘束の種類を選択すると、選択された拘束の種類に対応する拘束条件のデータを読み出す。そして、事前設定部４２は、図６（ｂ）に示す拘束条件テーブル６０において、ユーザが選択した通過点のプロパティとして読み出した拘束条件のデータを追加する。なお、図６（ｂ）の拘束条件テーブル６０は、選択された通過点ごとにプロパティを有しており、各軸の自由度として「固定」及び「解放」のいずれかが格納される。また各通過点のプロパティには、転写自由度の情報が格納される。なお、転写自由度の詳細については、後述する。
【００２２】
図３に戻り、シミュレーション部４４は、シミュレーション実行部５２、ケーブル近接検知部５４、拘束条件転写部５６を有する。
【００２３】
シミュレーション実行部５２は、予め設定された動作シーケンスに従ってロボットを動作させたときのケーブルの状態をシミュレーションし、シミュレーションしたケーブルの状態を表示部９３上にアニメーション表示する。このとき、シミュレーション実行部５２は、ケーブル近接検知部５４と拘束条件転写部５６を制御して、ノードテーブル６２を適宜更新する。そして、シミュレーション実行部５２は、ノードテーブル６２を適宜参照して、シミュレーションを実行する。
【００２４】
以下、ケーブル近接検知部５４と拘束条件転写部５６の処理について具体的に説明する。図７は、ケーブル２０に設定されているノードを示す図である。図７に示すように、ケーブル２０には、所定間隔で、十字印で示すノード１、２、…、ｎ、…が設定されている。各ノードには、ローカル座標系（ＸＹＺ座標系）が設定されているものとする。ローカル座標系のＸ軸方向は、各ノードにおいてケーブル２０が伸びる方向となっている。なお、図７においては、ケーブル２０の一端（図７における上側の端部）からノードｎまでのケーブル２０の長さをＬｎとしている。
【００２５】
ケーブル近接検知部５４は、シミュレーションの間、各ノードの位置（ｘｎ，ｙｎ，ｚｎ）を監視し、被組立部品３０の各通過点（ｘｐ，ｙｐ，ｚｐ）に最も近接するケーブル２０のノードを検知する。そして、ケーブル近接検知部５４は、通過点それぞれに最も近接するノードの情報を拘束条件転写部５６に通知する。
【００２６】
拘束条件転写部５６は、例えば、通過点ｐに最も近接しているノードとしてノードｎが検出されると、拘束条件テーブル６０から通過点ｐの拘束条件を取得し、ノードテーブル６２に格納されているノードｎのプロパティの拘束条件に転写（コピー）する。
【００２７】
ここで、ノードテーブル６２には、図８（ａ）に示すように、ノードごとのプロパティが格納されている。シミュレーションの初期段階では、自由度や転写自由度は空欄となっているが、例えばノードｎが通過点ｐに最も近接すると、図８（ｂ）に示すように、ノードｎの拘束条件として通過点ｐの拘束条件（図６（ｂ）参照）がそのまま転写（コピー）される。
【００２８】
（情報処理装置１０の処理について）
次に、情報処理装置１０の処理の詳細について、図９のフローチャートに沿って、その他図面を適宜参照しつつ詳細に説明する。なお、図９の処理の前提として、ケーブル布線対象ワークとして、図１の被組立部品３０のモデルが用意されており、ケーブル布線ルートとして、図１に示すようなケーブル２０の最終形状が用意されているものとする。
【００２９】
まず、ステップＳ１２では、事前設定部４２が、シミュレーションの事前設定処理として、ケーブル布線ルート上に通過点を割り付ける処理を実行する。具体的には、図１の被組立部品３０のモデルにおいてユーザが通過点ｐの位置を指定すると、事前設定部４２は、選択された通過点の座標（ｘｐ，ｙｐ，ｚｐ）を特定し、拘束条件テーブル６０に記憶する。なお、通過点の座標は、図１に示す、被組立部品３０に設定されたｘｙｚ座標系上における座標である。
【００３０】
次いで、ステップＳ１４では、事前設定部４２が、各通過点に拘束の種類に応じた拘束条件を定義する。すなわち、通過点それぞれの拘束の種類をユーザが選択すると、事前設定部４２は、拘束条件テーブル６０の各通過点のプロパティに、拘束の種類に応じた拘束条件を設定する（図６（ｂ）参照）。なお、事前設定部４２は、被組立部品３０のＣＡＤ（computer-aided design）データに基づいて、通過点を中心とする拘束影響範囲を算出し、拘束条件テーブル６０に記憶しておく。なお、拘束影響範囲は、拘束条件テーブル６０で定義されている拘束の影響が及ぶ範囲を意味する。図１０（ａ）は、通過点の拘束がフック拘束である場合における、通過点と拘束影響範囲の関係を模式的に示す図である。
【００３１】
次いで、ステップＳ１６では、シミュレーション実行部５２が、シミュレーションを開始する。すなわち、ロボットに対して予め設定されている動作シーケンスを最初から一動作だけ進める。
【００３２】
次いで、ステップＳ１８では、シミュレーション実行部５２がケーブル近接検知部５４に対して、各通過点に最接近しているノードを検出させる。そして、シミュレーション実行部５２は、拘束条件転写部５６に対し、検出されたノードの拘束条件として、該ノードが最接近している通過点の拘束条件を転写させる。
【００３３】
ここで、ステップＳ１８の処理について、より詳細に説明する。
【００３４】
ロボットが動作した結果、図１０（ｂ）に示すように、拘束影響範囲にケーブル２０のノードｎ−１、ｎが入ったとする。この場合、ケーブル近接検知部５４は、拘束影響範囲に含まれるノードｎ−１、ｎのうち通過点に最も近接しているノードを特定する。なお、図１０（ｂ）の例では、通過点に最も近接しているノードとしてノードｎが特定される。
【００３５】
次いで、拘束条件転写部５６は、ノードｎの位置を通過点まで移動し、移動後のノードｎの拘束条件として、通過点の拘束条件を転写する。
【００３６】
ここで、ノードｎを通過点まで移動する際には、転写自由度を考慮する必要がある。転写自由度は、ノードｎを移動するときにノードｎのローカル座標系と、通過点で拘束条件を定義している座標系とを合わせる必要があるか否かを定めたものであり、拘束の種類により異なっている。図１１（ａ）には、フック拘束を上方から見た状態が示され、図１１（ｃ）には、溝拘束を上方から見た状態が示されている。なお、図１１（ａ）、図１１（ｃ）の実線で示す座標系は、ノードｎにおけるローカル座標系を示し、破線で示す座標系は通過点において拘束条件を定義している座標系を示している。
【００３７】
図１１（ａ）のフック拘束においては、ノードｎを通過点まで移動するときに、ケーブル２０のノードｎの座標系（実線で示す座標系）がＺ軸回りの回転方向に関して、通過点において拘束条件を定義している座標系（破線で示す座標系）と一致していなくてもよい。このため、フック拘束における転写自由度は、図１１（ｂ）に示すように、θＸ、θＹ方向は「固定」、θＺ方向は「解放」（回転を許容）となっている。
【００３８】
一方、図１１（ｃ）の溝拘束においては、ケーブル２０のノードｎを通過点まで移動するときに、ケーブル２０のノードｎの座標系（実線で示す座標系）がＺ軸回りの回転方向に関して、通過点において拘束条件を定義している座標系（破線で示す座標系）と一致している必要がある。一方、Ｙ軸回り方向に関しては、一致していなくてもよい。このため、溝拘束における転写自由度は、図１１（ｄ）に示すように、θＸ、θＺ方向は「固定」、θＹ方向は「解放」（回転を許容）となっている。なお、転写自由度がノードの回転自由度と同一の場合には、転写自由度を考慮しなくてもよい。
【００３９】
次いで、ステップＳ２０では、シミュレーション実行部５２が、シミュレーションが終了したか否かを判断する。すなわち、シミュレーション実行部５２は、予め設定されている動作シーケンスの全てを、ロボットが実行し終えたか否かを判断する。このステップＳ２０の判断が否定された場合には、ステップＳ２２に移行する。
【００４０】
ステップＳ２２に移行すると、シミュレーション実行部５２は、ノードテーブル６２の各ノードの拘束条件を参照し、シミュレーションに適用した上で、ロボットの動作を一動作だけ進める。その後は、ステップＳ１８に戻る。ステップＳ１８に戻ると、前述と同様の処理を実行する。
【００４１】
例えば、前回のステップＳ１８において、図１２（ａ）に示すようにノードｎの拘束条件として通過点ｐの拘束条件が転写されていたとする。この場合において、ロボットの動作を進めた結果、ケーブル２０が＋Ｘ方向にズレたため、図１２（ｂ）に示すように、ノードｎよりもノードｎ＋１の方が通過点ｐに近接したとする。この場合、次のステップＳ１８では、拘束条件転写部５６は、図１２（ｃ）に示すように、ノードｎ＋１を通過点ｐに移動した上で、ノードｎ＋１の拘束条件として、通過点ｐの拘束条件を転写する。また、ノードｎのプロパティからは、拘束条件を削除する（空欄に戻す）。
【００４２】
以上のようにして、ステップＳ１８〜Ｓ２２を繰り返している間、シミュレーション実行部５２は、ロボットの動きやケーブル２０の動きを表示部９３に表示する。そして、ステップＳ１８〜Ｓ２２の繰り返しの結果、ロボットの動作シーケンスがすべて終了すると、ステップＳ２０の判断が肯定され、図９の全処理が終了する。
【００４３】
ユーザは、表示部９３に表示されるロボットの動きやケーブル２０の動きを確認し、適切でないと判断した場合には、ロボットの動作シーケンスを調整して、再度シミュレーションを実行する。このように、動作シーケンスの調整とシミュレーションを繰り返すことで、ユーザは、ケーブルを適切にフォーミングすることが可能なロボットの動作シーケンスを特定することが可能となる。
【００４４】
（具体例）
図１３（ａ）〜図１４（ｂ）は、シミュレーションの具体例を模式的に示す図である。なお、図示及び説明の便宜上、本例においては、ロボットの動作中、ケーブル２０の一方のコネクタ２２は被組立部品３０に固定するが、他方のコネクタ２４は固定しないものとする。
【００４５】
図１３（ａ）に示すように、被組立部品３０には、フック状の構造物７２、７６と、溝部７４が存在するものとする。構造物７２、７６に設定された通過点Ｐ１、Ｐ３には、フック拘束の拘束条件が設定され、溝部７４に設定された通過点Ｐ２には、溝拘束の拘束条件が設定されているものとする（図１３（ａ）の破線矢印参照）。
【００４６】
この図１３（ａ）の状態から、図１３（ｂ）に示すようにケーブル２０の一方のコネクタ２２が被組立部品３０に固定され、ロボットのハンド８０が他方のコネクタ２４を保持して動作を開始する。この動作により、ケーブル２０が構造物７２の近傍に位置すると、ケーブル２０の通過点Ｐ１に最接近したノード（Ｎ１とする）の拘束条件として、通過点Ｐ１の拘束条件が転写される（図１３（ｂ）の実線矢印参照）。なお、通過点Ｐ１に最接近しているノードがノードＮ１以外になるまで、ノードＮ１の拘束条件は維持される。
【００４７】
次いで、図１４（ａ）に示すように、ハンド８０が動作シーケンスを継続し、通過点Ｐ２にケーブル２０のノード（Ｎ２とする）が最接近すると、ケーブル２０の通過点Ｐ２に最接近したノードＮ２の拘束条件として、通過点Ｐ２の拘束条件が転写される（図１４（ａ）の実線矢印参照）。
【００４８】
更に、図１４（ｂ）に示すように、ハンド８０が動作を継続し、通過点Ｐ３にケーブル２０のノード（Ｎ３とする）が最接近すると、ケーブル２０の通過点Ｐ３に最接近したノードＮ３の拘束条件として、通過点Ｐ３の拘束条件が転写される（図１４（ｂ）の実線矢印参照）。
【００４９】
情報処理装置１０は、表示部９３に、図１３（ａ）〜図１４（ｂ）の動きをアニメーション表示するとき、通過点に設定されている拘束条件とケーブル２０のノードに転写された拘束条件とを異なる態様で表示することができる。例えば、図１３（ａ）〜図１４（ｂ）に示すように、通過点に設定されている拘束条件（解放の方向）を破線矢印で表し、ノードに転写された拘束条件（解放の方向）を実線矢印で表すなどすることができる。これにより、ユーザは、ケーブル２０のどの位置が拘束され、どの位置が拘束されていないかを適切に把握することができる。
【００５０】
なお、図１３（ａ）〜図１４（ｂ）では、ロボットが１つのハンド８０を用いてケーブルフォーミングを行う場合について図示しているが、これに限らず、ロボットは複数のハンド８０を用いてケーブルフォーミングを行うこととしてもよい。
【００５１】
以上、詳細に説明したように、本実施形態によると、事前設定部４２は、拘束条件テーブル６０において、被組立部品３０のケーブル２０の通過点それぞれに対応付けて拘束条件を記憶しており、シミュレーション部４４は、シミュレーションにおいて被組立部品３０の所定の通過点にケーブル２０が近接すると、通過点に近接するケーブル２０のノードの拘束条件として、通過点に予め設定されている拘束条件を転写してシミュレーションを実行する。これにより、本実施形態では、ケーブル表面と被組立部品３０の拘束面との接触を逐次検知しなくても、ケーブルに対して拘束条件を設定することができる。このため、シミュレーションにおける計算量（処理量）を低減することができ、シミュレーション結果を得るまでに要する時間を短縮することができる。
【００５２】
また、本実施形態では、シミュレーション部４４は、ケーブル２０のうち通過点に最も近接するノードを通過点まで移動させた状態で、ノードの拘束条件として通過点に設定された拘束条件を転写する。このように、通過点に最も近接するノードを拘束条件の転写のために理想的な位置に配置したうえで、拘束条件の転写を行うことで、適切なシミュレーション結果を得ることができる。
【００５３】
また、本実施形態では、事前設定部４２は、図６（ａ）に示すように、拘束の種類ごとに予め用意しておいた拘束条件の中から、通過点の拘束の種類に対応する拘束条件を読み出して、拘束条件テーブル６０の通過点のプロパティとして設定する（図６（ｂ）参照）。これにより、各通過点の拘束条件を簡易に設定することができる。
【００５４】
また、本実施形態では、シミュレーション部４４は、ケーブル２０の動きに合わせて、各通過点の拘束条件を適用するノードを異ならせる。これにより、シミュレーション中にケーブル２０が移動しても、適切なノードに対して適切な拘束条件を設定することができる。
【００５５】
また、本実施形態では、シミュレーション部４４は、シミュレーションの結果を表示部９３に表示する際に、通過点に設定されている拘束条件と、ケーブル２０が拘束されたときの拘束条件を異なる態様で表示することができる。これにより、ユーザは、ケーブルのどの位置が拘束されているかを適切に把握することができる。
【００５６】
なお、上記実施形態では、通過点をユーザが選択（入力）し、通過点の拘束の種類をユーザが選択（入力）する場合について説明したが、これに限られるものではない。例えば、事前設定部４２が、ＣＡＤデータ等から通過点の位置や、各通過点の拘束の種類を特定できるような場合には、自動的に通過点及び拘束の種類を特定するようにしてもよい。
【００５７】
なお、上記実施形態では、事前設定部４２は、図６（ａ）に示すように拘束の種類ごとに拘束条件を予め用意しておき、通過点の拘束の種類が選択された場合に、選択された拘束の種類に応じた拘束条件を拘束条件テーブル６０の通過点のプロパティとして設定する場合について説明した。しかしながら、これに限られるものではなく、例えば、ユーザが各通過点の拘束条件を都度設定（入力）することとしてもよい。
【００５８】
なお、上記実施形態では、通過点に最も近接しているノードを通過点に移動した後に、ノードの拘束条件として通過点の拘束条件を転写することとしたが、これに限られるものではない。例えば、通過点に最も近接しているノードを通過点に移動させずに、ノードの拘束条件として通過点の拘束条件を転写することとしてもよい。
【００５９】
なお、上記実施形態では、フォーミング対象の柔軟物がケーブルである場合について説明したが、これに限られるものではない。フォーミング対象は、ワイヤーなどのその他の柔軟物であってもよい。
【００６０】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記憶媒体（ただし、搬送波は除く）に記録しておくことができる。
【００６１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記憶媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００６２】
プログラムを実行するコンピュータは、例えば、可搬型記憶媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記憶媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【００６３】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【００６４】
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
（付記１）  ロボットが物体に対して柔軟物をフォーミングする作業をシミュレーションする情報処理装置であって、
前記物体のうち、前記柔軟物を拘束する拘束箇所それぞれに対応付けて拘束条件データを記憶部に記憶する記憶処理部と、
前記シミュレーションを実行する実行部と、を備え、
前記実行部は、前記シミュレーションにおいて前記物体の所定の拘束箇所に前記柔軟物が近接すると、前記柔軟物のうち前記所定の拘束箇所に近接する部分の拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用して、前記シミュレーションを実行する、ことを特徴とする情報処理装置。
（付記２）  前記柔軟物には、所定間隔をあけて複数のノードが設定されており、
前記実行部は、前記所定の拘束箇所に設定された拘束範囲に含まれ、かつ前記拘束範囲の中心と最も近接しているノードの拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用して、前記シミュレーションを実行する、ことを特徴とする付記１に記載の情報処理装置。
（付記３）  前記実行部は、前記柔軟物のうち前記所定の拘束箇所に近接するノードを前記拘束範囲の中心に移動させた状態で、該ノードの拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用する、ことを特徴とする付記２に記載の情報処理装置。
（付記４）  前記記憶処理部は、拘束箇所の種類ごとに用意された拘束条件データに基づいて、前記拘束箇所それぞれに対応付けて拘束条件データを前記記憶部に記憶する、ことを特徴とする付記１〜３のいずれかに記載の情報処理装置。
（付記５）  前記実行部は、前記柔軟物の動きに合わせて、前記所定の拘束箇所に対応付けて前記記憶部に記憶された拘束条件データを適用する前記柔軟物の部分を異ならせる、ことを特徴とする付記１〜４のいずれかに記載の情報処理装置。
（付記６）  前記実行部は、前記シミュレーションの結果を表示する際に、前記物体の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データと、前記柔軟物の各部分に適用された拘束条件データとを異なる態様で表示する、ことを特徴とする付記１〜５のいずれかに記載の情報処理装置。
（付記７）  ロボットが物体に対して柔軟物をフォーミングする作業をシミュレーションするシミュレーションプログラムであって、
前記物体のうち、前記柔軟物を拘束する拘束箇所それぞれに対応付けて拘束条件データを記憶部に記憶し、
前記シミュレーションを実行する、処理をコンピュータに実行させ、
前記シミュレーションを実行する処理では、前記シミュレーションにおいて前記物体の所定の拘束箇所に前記柔軟物が近接すると、前記柔軟物のうち前記所定の拘束箇所に近接する部分の拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用して、前記シミュレーションを実行する、ことを特徴とするシミュレーションプログラム。
（付記８）  前記柔軟物には、所定間隔をあけて複数のノードが設定されており、
前記シミュレーションを実行する処理では、前記所定の拘束箇所に設定された拘束範囲に含まれ、かつ前記拘束範囲の中心と最も近接しているノードの拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用して、前記シミュレーションを実行する、ことを特徴とする付記７に記載のシミュレーションプログラム。
（付記９）  前記シミュレーションを実行する処理では、前記柔軟物のうち前記所定の拘束箇所に近接するノードを前記拘束範囲の中心に移動させた状態で、該ノードの拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用する、ことを特徴とする付記８に記載のシミュレーションプログラム。
（付記１０）  前記記憶する処理では、拘束箇所の種類ごとに用意された拘束条件データに基づいて、前記拘束箇所それぞれに対応付けて拘束条件データを前記記憶部に記憶する、ことを特徴とする付記７〜９のいずれかに記載のシミュレーションプログラム。
（付記１１）  前記シミュレーションを実行する処理では、前記柔軟物の動きに合わせて、前記所定の拘束箇所に対応付けて前記記憶部に記憶された拘束条件データを適用する前記柔軟物の部分を異ならせる、ことを特徴とする付記７〜１０のいずれかに記載のシミュレーションプログラム。
（付記１２）  前記シミュレーションを実行する処理では、前記シミュレーションの結果を表示する際に、前記物体の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データと、前記柔軟物の各部分に適用された拘束条件データとを異なる態様で表示する、ことを特徴とする付記７〜１１のいずれかに記載のシミュレーションプログラム。
（付記１３）  ロボットが物体に対して柔軟物をフォーミングする作業をシミュレーションするシミュレーション方法であって、
前記物体のうち、前記柔軟物を拘束する拘束箇所それぞれに対応付けて拘束条件データを記憶部に記憶し、
前記シミュレーションを実行する、処理をコンピュータが実行し、
前記シミュレーションを実行する処理では、前記シミュレーションにおいて前記物体の所定の拘束箇所に前記柔軟物が近接すると、前記柔軟物のうち前記所定の拘束箇所に近接する部分の拘束条件データとして、前記所定の拘束箇所に対応付けて前記記憶部に記憶されている拘束条件データを適用して、前記シミュレーションを実行する、ことを特徴とするシミュレーション方法。
【符号の説明】
【００６５】
１０  情報処理装置
２０  柔軟物（ケーブル）
３０  被組立部品（物体）
４２  事前設定部（記憶処理部）
４４  シミュレーション部（実行部）
６０  拘束条件テーブル（記憶部）
【図１】
2019159542.tif 000003
【図２】
2019159542.tif 000004
【図３】
2019159542.tif 000005
【図４】
2019159542.tif 000006
【図５】
2019159542.tif 000007
【図６】
2019159542.tif 000008
【図７】
2019159542.tif 000009
【図８】
2019159542.tif 000010
【図９】
2019159542.tif 000011
【図１０】
2019159542.tif 000012
【図１１】
2019159542.tif 000013
【図１２】
2019159542.tif 000014
【図１３】
2019159542.tif 000015
【図１４】
2019159542.tif 000016