(57)【要約】【課題】  簡易に柔軟物の硬さを調整することができる演算装置、演算方法および演算プログラムを提供する。【解決手段】  演算装置は、位置ベース物理シミュレーションを用いた変形シミュレーションにより柔軟物モデルを目標形状にマッチングした場合の第１結果と前記目標形状との差が第１しきい値以下となるように、前記位置ベース物理シミュレーションの複数のパラメータのうち、硬さへの感度が高い第１パラメータを探索する第１探索部と、前記第１探索部が探索した前記第１パラメータを用いた前記変形シミュレーションにより前記柔軟物モデルを前記目標形状にマッチングした場合の第２結果と前記目標形状との差が第２しきい値以下となるように、前記複数のパラメータのうち、硬さへの感度が低い第２パラメータを探索する第２探索部と、を備える。【選択図】  図１
2018156614.tif 000002
【特許請求の範囲】
【請求項１】
位置ベース物理シミュレーションを用いた変形シミュレーションにより柔軟物モデルを目標形状にマッチングした場合の第１結果と前記目標形状との差が第１しきい値以下となるように、前記位置ベース物理シミュレーションの複数のパラメータのうち、硬さへの感度が高い第１パラメータを探索する第１探索部と、
前記第１探索部が探索した前記第１パラメータを用いた前記変形シミュレーションにより前記柔軟物モデルを前記目標形状にマッチングした場合の第２結果と前記目標形状との差が第２しきい値以下となるように、前記複数のパラメータのうち、硬さへの感度が低い第２パラメータを探索する第２探索部と、を備えることを特徴とする演算装置。
【請求項２】
前記第１パラメータは、前記柔軟物モデルの分割メッシュ数であることを特徴とする請求項１記載の演算装置。
【請求項３】
前記第２パラメータは、前記柔軟物モデルの剛性値または拘束計算繰返回数であることを特徴とする請求項１または２に記載の演算装置。
【請求項４】
位置ベース物理シミュレーションを用いた変形シミュレーションにより柔軟物モデルを目標形状にマッチングした場合の第１結果と前記目標形状との差が第１しきい値以下となるように、前記位置ベース物理シミュレーションの複数のパラメータのうち、硬さへの感度が高い第１パラメータを第１探索部が探索し、
前記第１探索部が探索した前記第１パラメータを用いた前記変形シミュレーションにより前記柔軟物モデルを前記目標形状にマッチングした場合の第２結果と前記目標形状との差が第２しきい値以下となるように、前記複数のパラメータのうち、硬さへの感度が低い第２パラメータを第２探索部が探索する、ことを特徴とする演算方法。
【請求項５】
コンピュータに、
位置ベース物理シミュレーションを用いた変形シミュレーションにより柔軟物モデルを目標形状にマッチングした場合の第１結果と前記目標形状との差が第１しきい値以下となるように、前記位置ベース物理シミュレーションの複数のパラメータのうち、硬さへの感度が高い第１パラメータを探索する第１処理と、
前記第１処理で探索された前記第１パラメータを用いた前記変形シミュレーションにより前記柔軟物モデルを前記目標形状にマッチングした場合の第２結果と前記目標形状との差が第２しきい値以下となるように、前記複数のパラメータのうち、硬さへの感度が低い第２パラメータを探索する第２処理と、を実行させることを特徴とする演算プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、演算装置、演算方法および演算プログラムに関する。
【背景技術】
【０００２】
例えば、工場の製造効率化には、柔軟物組立作業のロボット化が望まれている。ロボット動作の妥当性を短時間で検証するために、柔軟物の変形シミュレーションが用いられる（例えば、特許文献１，２参照）。柔軟物の変形シミュレーションは、力ベース物理シミュレーションと位置ベース物理シミュレーションとに大別される。力ベース物理シミュレーションは、物体に作用する力をニュートンの運動方程式に従って時間積分し、柔軟物の変形形状を求める手法のことである。位置ベース物理シミュレーションは、物体の硬さを拘束条件として表現し、拘束条件を要素ごとに適応することで柔軟物の変形形状を求める手法である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２３４０３９号公報
【特許文献２】特開２００１−２５０４３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
位置ベース物理シミュレーションでは、柔軟物の硬さが剛性値以外の要素に大きく依存するため、硬さの調整に手間がかかる。
【０００５】
１つの側面では、本発明は、簡易に柔軟物の硬さを調整することができる演算装置、演算方法および演算プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの態様では、演算装置は、位置ベース物理シミュレーションを用いた変形シミュレーションにより柔軟物モデルを目標形状にマッチングした場合の第１結果と前記目標形状との差が第１しきい値以下となるように、前記位置ベース物理シミュレーションの複数のパラメータのうち、硬さへの感度が高い第１パラメータを探索する第１探索部と、前記第１探索部が探索した前記第１パラメータを用いた前記変形シミュレーションにより前記柔軟物モデルを前記目標形状にマッチングした場合の第２結果と前記目標形状との差が第２しきい値以下となるように、前記複数のパラメータのうち、硬さへの感度が低い第２パラメータを探索する第２探索部と、を備える。
【発明の効果】
【０００７】
簡易に柔軟物の硬さを調整することができる。
【図面の簡単な説明】
【０００８】
【図１】実施例１に係る演算装置のブロック図である。
【図２】ケーブルモデルの硬さ調整を説明するための図である。
【図３】タイムステップΔｔごとのケーブルモデルの形状を例示する図である。
【図４】ケーブルモデルを例示する図である。
【図５】位置ベース物理シミュレーションを例示する図である。
【図６】干渉チェック処理を例示する図である。
【図７】演算装置による硬さ調整を例示するフローチャートである。
【図８】メッシュ数の設定を例示する図である。
【図９】（ａ）は剛性値の設定を例示する図であり、（ｂ）は拘束計算繰返回数の設定を例示する図である。
【図１０】（ａ）は演算装置のハードウェア構成を説明するためのブロック図であり、（ｂ）は演算装置の他の例について例示する図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照しつつ、実施例について説明する。
【実施例１】
【００１０】
図１は、実施例１に係る演算装置１００のブロック図である。図１で例示するように、演算装置１００は、入力装置１０、目標形状生成部２０、第１探索部３０、第２探索部４０、パラメータ格納部５０、シミュレーション部６０、および表示装置７０を備える。入力装置１０は、ユーザが情報を入力するための装置であり、キーボード、マウスなどである。表示装置７０は、液晶ディスプレイ、エレクトロルミネッセンスパネルなどであり、シミュレーション結果などを表示する。
【００１１】
シミュレーション部６０は、位置ベース物理シミュレーションを用いた変形シミュレーションを行う。本実施例においては、位置ベース物理シミュレーションが対象とする柔軟物の一例としてケーブルモデルを用いる。図２は、硬さに応じたケーブルモデル８０の静止形状を説明するための図である。図２の中央図で例示するように、ケーブルモデル８０の一端を保持した状態で重力が作用すると、ケーブルモデル８０の他端が下方へ垂れ下がる。ケーブルモデル８０が硬くなると、図２の左図のように他端の垂れ下がり量が少なくなる。ケーブルモデル８０が柔らかくなると、図２の右図のように他端の垂れ下がり量が多くなる。本実施例においては、位置ベース物理シミュレーションのパラメータを調整することで、ケーブルモデル８０の硬さを自動調整する。
【００１２】
ここで、シミュレーション部６０による位置ベース物理シミュレーションについて説明する。位置ベースシ物理ミュレーションでは、時間の刻み幅であるタイムステップ時間毎に、柔軟物の形状が更新される。この１タイムステップΔｔ（秒）後の形状計算方法が、１ステップ計算フローである。図３は、タイムステップΔｔごとのケーブルモデル８０の形状を例示する図である。図３で例示するように、ｔ秒後のケーブルモデル８０の形状が、タイムステップΔｔごとに変化している。
【００１３】
図４は、ケーブルモデル８０を例示する図である。図４で例示するように、ケーブルモデル８０は、節点（質点）ｘ０〜ｘｎ＋１を連結した折れ線で表現される。各２つの節点間をメッシュと称する。２つの節点間には、伸縮を抑制する伸縮拘束が設定されている。例えば、節点ｘ０についてΔｘ０の位置変化が拘束条件として設定され、節点ｘ１についてΔｘ１の位置変化が拘束条件として設定される。３つの節点間には、曲げを抑制する曲げ拘束が設定される。例えば、節点ｘ０〜ｘ２について、節点ｘ１における曲げ角度θが拘束条件として設定される。このため、メッシュ分割数が多い程、伸縮拘束および曲げ拘束が多く設定されることになる。このケーブルモデル８０に対して位置ベース物理シミュレーションを行うことで、１タイムステップ後のケーブル形状が得られる。
【００１４】
図５は、位置ベース物理シミュレーションの各処理を例示する図である。図５で例示するように、位置ベース物理シミュレーションには、重力・初期速度付加処理、減衰処理、干渉チェック処理、各種拘束計算処理、速度更新処理などが含まれる。
【００１５】
重力・初期速度付加処理は、重力等の外部作用速度の影響による形状の予測位置を計算する処理である。具体的には、ケーブルモデル８０の各節点に対して重力および初期速度を付加して時間積分を実行し、各節点の予測位置および予測速度を計算する処理である。時間積分法として、例えば、Ｓｙｍｐｌｅｃｔｉｃ  Ｅｕｌｅｒ法を用いることができる。下記式（１）は、予測位置を算出するための数式である。下記式（１）の左辺が、重力および初期速度を付加した後の予測位置である。下記式（２）は、予測速度を算出するための数式である。下記式（２）の左辺が、重力および初期速度を付加した後の予測速度である。また、Δｔは、タイムステップである。ｆｅｘｔ（ｘｉ）は、重力である。ｗｉは、節点質量の逆数である。
【数１】
2018156614.tif 000003
【数２】
2018156614.tif 000004
【００１６】
次に、減衰処理は、安定性向上および形状品質向上のための速度減衰処理のことである。具体的には、減衰処理とは、節点の速度に比例した抵抗力を発生させる処理のことである。位置ベース物理シミュレーションでは、例えば、「Position Based Dynamics」, C. Mendoza, I. Navazo (Editors), Matthias Muller Bruno Heidelberger Marcus Hennix John Ratcliff, 3rd Workshop in Virtual Reality Interactions and Physical Simulation "VRIPHYS" (2006)の３．５  Ｄａｍｐｉｎｇに記述された特殊な減衰処理を行ってもよい。減衰処理によりケーブル形状計算の安定性向上・形状品質向上が見込める。
【００１７】
次に、干渉チェック処理は、節点が剛体に貫入したかどうかを判定する処理である。例えば、図６で例示するように、節点が剛体に貫入した場合、節点が剛体の外部に出るような拘束条件を設定する。
【００１８】
次に、各種拘束計算処理は、複数の拘束条件の近似平衡状態を計算する処理である。拘束条件は、節点位置ｘに依存した関数であり、等号拘束：Ｃ（ｘ）＝０（例えば伸縮拘束）と、不等号拘束：Ｃ（ｘ）＞０（例えば干渉拘束）とがある。位置ベース物理シミュレーションでは、計算フローの各種拘束計算処理ステップの中で、これらの拘束条件を満たすように節点位置ｘを動かす。拘束条件を満たす計算を実行するときの節点位置の変化量Δｘは、下記式（３）のように表すことができる。下記式（３）において、ｋ（０≦ｋ≦１）は、剛性値である。剛性値ｋは、各拘束条件に設定されている。
【数３】
2018156614.tif 000005
【００１９】
各種拘束計算処理では、ケーブルモデル８０に設定した様々な拘束条件を満たすような計算を実行する。例えば、伸縮拘束、曲げ拘束、干渉拘束の他にも、ケーブルモデル８０が剛体に固定されるような拘束がある。この場合の拘束条件を満たす計算は、拘束計算繰返回数分だけループを回す。例えば、
ｌｏｏｐ  拘束計算繰返回数  ｔｉｍｅｓ
モデルに設定した拘束条件計算実行
例えば
伸縮拘束を満たす計算
曲げ拘束を満たす計算
干渉拘束を満たす計算
…
ｅｎｄ  ｌｏｏｐ
を行う。なお、剛性値ｋは、各拘束条件に設定されている。また、メッシュ分割数に比例して、拘束条件が設定される。したがって、メッシュ分割数が多いほど、拘束条件が多く設定される。
【００２０】
次に、速度更新処理は、形状変形に伴う適切な速度の計算を行う処理である。具体的には、速度更新処理は、重力・初期速度付加処理および各種拘束計算処理で確定した各節点位置に合わせて、運動方程式に適合するよう、各節点速度を調整する処理である。例えば、調整後の速度は、下記式（４）のように表すことができる。なお、括弧内の左は各種拘束計算処理の確定した位置であり、括弧内の右は重力・初期速度付加後の予測位置である。
【数４】
2018156614.tif 000006
【００２１】
以上説明したように、位置ベース物理シミュレーションにおいては、例えば、タイムステップ、メッシュ分割数、拘束計算繰返回数、および剛性値の４つのパラメータが設定される。これら４つのパラメータは、図１で例示するように、パラメータ格納部５０に格納されている。また、パラメータ格納部５０には、メッシュ分割数の最大値（上限値）および拘束計算繰返回数の最大値（上限値）も格納されている。
【００２２】
タイムステップの調整により、ケーブルモデル８０の柔から硬まで幅広く対応することができる。しかしながら、タイムステップは、環境変数であるため、他のケーブルにも影響を及ぼす。次に、メッシュ分割数は、ケーブルモデル８０の硬さへの感度が高いため、ケーブルモデル８０の柔から硬まで幅広く対応することができる。硬さへの感度が高いと、微調整には不向きである。次に、拘束計算繰返回数は、ケーブルモデル８０の硬さへの感度が低く、ケーブルモデル８０の柔から中硬くらいまで対応可能である。硬い表現は、計算時間が増大し、現実的ではない。したがって、拘束計算繰返回数は、微調整に向いている。次に、剛性値（０〜１）は、ケーブルモデル８０の硬さへの感度が低く、柔に対応可能である。一方、剛性値の最大値である「１」を用いても硬いケーブルモデル８０の表現が困難である。したがって、剛性値は、微調整に向いている。以上のことから、本実施例においては、演算装置１００は、ケーブルモデル８０を目標形状にマッチングする際に、メッシュ分割数の調整により形状マッチングを概括的に実施し、その後、拘束計算繰返回数および剛性値の調整により形状マッチングの微調整を行う。
【００２３】
図７は、演算装置１００による硬さ調整を例示するフローチャートである。以下、図７のフローチャートを用いて演算装置１００による硬さ調整を説明する。まず、目標形状生成部２０は、ユーザが入力装置１０によって入力したケーブルの情報を用いて、ケーブルモデル８０の目標形状を生成する（ステップＳ１）。本実施例においては、図２で説明したように、ケーブルモデル８０の一端を保持した状態で重力が作用した場合の静止形状を生成する。
【００２４】
次に、第１探索部３０は、２分法を用い、ケーブルモデル８０の硬さへの感度が高い第１パラメータとして、メッシュ分割数の最適値の探索を行う（ステップＳ２）。まず、第１探索部３０は、メッシュ分割数以外の３つのパラメータを固定する。例えば、第１探索部３０は、剛性値を１に固定し、その他の２つのパラメータを、妥当なシミュレーション形状となる値に設定する。次に、第１探索部３０は、図８で例示するように、少数メッシュ時の形状と多数メッシュ時の形状とで、目標形状を上下で挟み込む形状を生成する。次に、シミュレーション部６０は、これらの少数メッシュ数および多数メッシュ数を初期値とし、位置ベース物理シミュレーションを用いた変形シミュレーションによりケーブルモデル８０を目標形状にマッチングする。この場合、シミュレーション部６０は、上記初期値からメッシュ分割数を徐々に変更する。第１探索部３０は、目標形状とシミュレーション形状（第１結果）との誤差を最小化するメッシュ数を、２分法を用いて決定する。
【００２５】
次に、第１探索部３０は、分割メッシュ数の最大値までで誤差が第１しきい値以下となったか否かを判定する（ステップＳ３）。ステップＳ３で「Ｎｏ」と判定された場合、表示装置７０は、ユーザに、硬さ調整に失敗した旨の警告を表示する（ステップＳ４）。その後、フローチャートの実行が終了する。
【００２６】
ステップＳ３で「Ｙｅｓ」と判定された場合、パラメータ格納部５０は、ステップＳ２で得られたメッシュ分割数を格納する。次に、第２探索部４０は、ステップＳ２で得られたメッシュ分割数でのシミュレーション形状（第１結果）が目標形状より硬いか否かを判定する（ステップＳ５）。
【００２７】
ステップＳ５で「Ｙｅｓ」と判定された場合、シミュレーション部６０は、図９（ａ）で例示するように、剛性値を徐々に小さくしつつ、位置ベース物理シミュレーションを用いた変形シミュレーションによりケーブルモデル８０を目標形状にマッチングする。第２探索部４０は、シミュレーション形状（第２結果）と目標形状との誤差が最小となる剛性値を探索する（ステップＳ６）。ステップＳ５で「Ｎｏ」と判定された場合、シミュレーション部６０は、図９（ｂ）で例示するように、拘束計算繰返回数を徐々に大きくしつつ、位置ベース物理シミュレーションを用いた変形シミュレーションによりケーブルモデル８０を目標形状にマッチングする。第２探索部４０は、シミュレーション形状（第２結果）と目標形状との誤差が最小となる拘束計算繰返回数を探索する（ステップＳ７）。ステップＳ６およびステップＳ７においては、例えば、Ｎｅｌｄｅｒ−Ｍｅａｄ法等の微分不要な反復型最適化問題を利用し、目標形状とシミュレーション形状との誤差を最小化するパラメータ値を探索する。
【００２８】
ステップＳ６またはステップＳ７の実行後、第２探索部４０は、ステップＳ６で得られた剛性値またはステップＳ７で得られた拘束計算繰返回数でのシミュレーション形状（第２結果）と目標形状との誤差が第２しきい値以内であるか否かを判定する（ステップＳ８）。第２しきい値は、第１しきい値よりも小さい値である。ステップＳ６の実行後においては、第２探索部４０は、剛性値の最小値（＝０）までで誤差が第２しきい値以内となったか否かを判定する。ステップＳ７の実行後においては、第２探索部４０は、拘束計算繰返回数の最大値までで誤差が第２しきい値以内となったか否かを判定する。ステップＳ８で「Ｎｏ」と判定された場合、ステップＳ４が実行される。ステップＳ８で「Ｙｅｓ」と判定された場合、フローチャートの実行が終了する。表示装置７０は、形状マッチングの成功に係る情報と、得られたメッシュ分割数、剛性値、および拘束計算繰返回数とを表示する。
【００２９】
本実施例によれば、位置ベース物理シミュレーションを用いた変形シミュレーションによりケーブルモデル８０を目標形状にマッチングした場合の第１結果と目標形状との差が第１しきい値以下となるように、硬さへの感度が高いメッシュ分割数が探索される。この場合、まず、ケーブルモデル８０の硬さを概括的に調整することができる。次に、探索されたメッシュ分割数を用いた変形シミュレーションによりケーブルモデル８０を目標形状にマッチングした場合の第２結果と目標形状との差が第２しきい値以下となるように、硬さへの感度が低い剛性値または拘束計算繰返回数が探索される。この場合、ケーブルモデル８０の硬さを微調整することができる。このように、ケーブルモデル８０の硬さを概括的に調整した後に微調整することで、簡易に硬さを調整することができる。
【００３０】
なお、上記実施例では、ステップＳ５でシミュレーション形状が目標形状よりも硬いと判定された場合には剛性値が調整され、柔らかいと判定された場合には拘束計算繰返回数が調整されているが、逆であってもよい。例えば、剛性値の初期値を「１」よりも小さい値とすれば、剛性値を大きい値に調整することができる。または、ステップＳ５でシミュレーション形状が目標形状よりも硬いと判定された場合に拘束計算繰返回数を調整し、柔らかいと判定された場合に拘束計算繰返回数または剛性値を調整してもよい。
【００３１】
（他の例）
図１０（ａ）は、演算装置１００のハードウェア構成を説明するためのブロック図である。図１０（ａ）で例示するように、演算装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、記憶装置１０３、入力装置１０、表示装置７０等を備える。
【００３２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１は、中央演算処理装置である。ＣＰＵ１０１は、１以上のコアを含む。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２は、ＣＰＵ１０１が実行するプログラム、ＣＰＵ１０１が処理するデータなどを一時的に記憶する揮発性メモリである。記憶装置１０３は、不揮発性記憶装置である。記憶装置１０３として、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリなどのソリッド・ステート・ドライブ（ＳＳＤ）、ハードディスクドライブに駆動されるハードディスクなどを用いることができる。記憶装置１０３は、演算プログラムを記憶している。例えば、ＣＰＵ１０１が記憶装置１０３に記憶されている演算プログラムを実行することで、図１の目標形状生成部２０、第１探索部３０、第２探索部４０、パラメータ格納部５０およびシミュレーション部６０が実現されてもよい。なお、図１の目標形状生成部２０、第１探索部３０、第２探索部４０、パラメータ格納部５０およびシミュレーション部６０として、専用の回路などのハードウェアを用いてもよい。
【００３３】
図１０（ｂ）は、演算装置の他の例について例示する図である。入力装置１０および表示装置７０を備える端末２０１が、インターネットなどの電気通信回線２０２を通じてサーバ２０３に接続されていてもよい。この場合、サーバ２０３が、図１の目標形状生成部２０、第１探索部３０、第２探索部４０、パラメータ格納部５０およびシミュレーション部６０の機能を有する。
【００３４】
上記実施例において、第１探索部３０が、位置ベース物理シミュレーションを用いた変形シミュレーションにより柔軟物モデルを目標形状にマッチングした場合の第１結果と前記目標形状との差が第１しきい値以下となるように、前記位置ベース物理シミュレーションの複数のパラメータのうち、硬さへの感度が高い第１パラメータを探索する第１探索部の一例として機能する。第２探索部４０が、前記第１探索部が探索した前記第１パラメータを用いた前記変形シミュレーションにより前記柔軟物モデルを前記目標形状にマッチングした場合の第２結果と前記目標形状との差が第２しきい値以下となるように、前記複数のパラメータのうち、硬さへの感度が低い第２パラメータを探索する第２探索部の一例として機能する。
【００３５】
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００３６】
１０  入力装置
２０  目標形状生成部
３０  第１探索部
４０  第２探索部
５０  パラメータ格納部
６０  シミュレーション部
７０  表示装置
８０  ケーブルモデル
１００  演算装置
【図１】
2018156614.tif 000007
【図２】
2018156614.tif 000008
【図３】
2018156614.tif 000009
【図４】
2018156614.tif 000010
【図５】
2018156614.tif 000011
【図６】
2018156614.tif 000012
【図７】
2018156614.tif 000013
【図８】
2018156614.tif 000014
【図９】
2018156614.tif 000015
【図１０】
2018156614.tif 000016