JP7374723B2 - 情報処理方法、情報処理装置、およびロボットシステム - Google Patents

情報処理方法、情報処理装置、およびロボットシステム Download PDF

Info

Publication number
JP7374723B2
JP7374723B2 JP2019203868A JP2019203868A JP7374723B2 JP 7374723 B2 JP7374723 B2 JP 7374723B2 JP 2019203868 A JP2019203868 A JP 2019203868A JP 2019203868 A JP2019203868 A JP 2019203868A JP 7374723 B2 JP7374723 B2 JP 7374723B2
Authority
JP
Japan
Prior art keywords
information processing
simulation
contact
object models
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019203868A
Other languages
English (en)
Other versions
JP2021077149A (ja
Inventor
裕宣 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2019203868A priority Critical patent/JP7374723B2/ja
Publication of JP2021077149A publication Critical patent/JP2021077149A/ja
Application granted granted Critical
Publication of JP7374723B2 publication Critical patent/JP7374723B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Manipulator (AREA)

Description

本発明は、複数の物体モデルが存在する仮想空間で、少なくとも1つの物体モデルを動作させるシミュレーションを行う情報処理方法、情報処理装置、およびロボットシステムに関する。
昨今様々な生産現場でロボットが用いられており、それらロボットの動作確認をオフラインで行う事ができるシミュレータの需要が高まっている。例えば、ロボットが他の治具に衝突していないかを確認するシミュレーションや、ロボット・治具・ワークなどの機構を構成する部品の挙動をコンピュータでシミュレートすることで組立プロセス設計を支援するダイナミクスシミュレーションが挙げられる。
産業用ロボットで物体を組み立てる工程のダイナミクスシミュレーションを行う場合、物体モデル同士が接触した際に発生する接触力を正確に計算する必要がある。この接触力の計算方式は、計算量が少ないペナルティ法と、計算量が多いが理論的に正確性が保証されている解析法に大別する事ができる。
特許文献1は、物体モデル同士のオーバーラップ量から接触力を求めるペナルティ法に、弾性計算を導入した際の問題点を解決する手法を開示している。特許文献1の手法では、接触の開始時と終了時に発生する計算誤差を軽減するために、計算時間を細かく分割する。
非特許文献1は、解析法を用いて、接触力を正確に計算する手法を開示している。非特許文献1の手法は、物体同士の近接点において接触前と接触後の相対速度が理論的に正しくなるように連立方程式を立て、近接点の速度と接触力に関する条件式を用い、線形相補性問題として解くものである。
特開2011-123558号公報
コンピュータグラフィックスなどの分野では、接触力の計算にはペナルティ法が用いられる傾向がある。これに対して、産業用のロボットのシミュレーションなどにおいては、接触力の計算には精度が求められるため解析法が望ましい。
解析法では、接触力を計算するために物体同士が十分近づいた際の近接点を用いるが、物体同士がオーバーラップすると、近接点を計算する事ができなくなる。そこで、オーバーラップ前に、物体同士が十分近づいたかどうかを物体同士の距離を接触閾値と比較して判定する必要がある。このとき、物体同士のオーバーラップ状態を防ぐ目的では、比較的大きな接触閾値を設定する。これにより、実際の接触点とかけ離れた点が力計算のための近接点として選ばれる傾向が生じ、シミュレーション精度が低下する可能性がある。
本発明の課題は、上記の問題点に鑑み、オーバーラップが発生した後も、解析法の接触力演算に必要な近接点を求め、適切、かつ高精度なシミュレーション処理を継続することができるようにすることにある。
上記課題を解決するため、本発明においては、複数の物体モデルが存在する仮想空間で、少なくとも1つの物体モデルを動作させるシミュレーションを行う情報処理方法において、制御装置が、第1のシミュレーションステップにおいて、複数の物体モデルのオーバーラップが発生しているか否かを判定し、前記複数の物体モデルのオーバーラップが発生している場合、シミュレーションの状態をオーバーラップが生じていない過去の第2のシミュレーションステップにロールバックさせる工程と、前記制御装置が、ロールバックさせた前記第2のシミュレーションステップにおいて、前記物体モデルの所定の閾値以内の距離で互いに近接する近接点を取得し、取得した前記近接点の接触前と接触後の相対速度を用いて、前記物体モデル同士が接触した場合に前記物体モデルの間に働く接触力を演算する工程と、を含む構成を採用した。
上記構成によれば、物体モデルのオーバーラップが発生した後も、解析法の接触力演算に必要な近接点を求め、適切、かつ高精度なシミュレーション処理を継続することができる。
本発明の実施形態に係る情報処理装置として、シミュレーション装置の制御系を示したブロック図である。 本発明の実施形態に係るシミュレーション処理の概略を示したフローチャート図である。 本発明の実施形態に係るシミュレーションの計算処理を詳細に示したフローチャート図である。 (a)~(d)は、物体モデル同士のオーバーラップに係る種々の状態を示した説明図である。 本発明の実施形態に係る接触閾値の拡大の例を示した説明図である。 本発明の実施形態に係る接触閾値を設定するユーザーインターフェースの構成例を示した説明図である。 本発明の実施形態に係るシミュレーション装置の外観、および画面表示の構成例を示した説明図である。 本発明の実施形態に係る、ロボット制御プログラム設定のためのユーザーインターフェースの構成例を示した説明図である。 本発明の実施形態において、最大ロールバック回数を超えた場合に用いるユーザーインターフェースの構成例を示した説明図である。 本発明の実施形態において、接触閾値が最大値を超えた場合に用いるユーザーインターフェースの構成例を示した説明図である。 本発明の実施形態に係る、接触閾値の初期値を考慮したシミュレーションの計算処理を詳細に示したフローチャート図である。 本発明の実施形態に係る、接触閾値の初期値を設定可能なユーザーインターフェースの構成例を示した説明図である。 物体モデル同士が接触する場合の速度を示した説明図である。 物体モデル同士の相対速度を示した説明図である。 本発明の実施形態において、接触閾値を用いた物体同士の距離、接触状態、ないしオーバーラップに係る判定を示した説明図である。
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は参考数値の例示に過ぎない。
<実施形態1>
本実施形態のシミュレーション処理(情報処理方法)を実行可能な情報処理装置の構成例を図1に示す。図1の装置は、例えば、ロボット装置を制御するロボット制御プログラムに記述された態様で、ロボット装置が操作する対象の物体に対応する物体モデルを仮想空間で動作させるシミュレーション装置である。
図1のシミュレーション装置1は、演算部としてのCPU20、記憶媒体としてのROM21、RAM22、HDD23、記録ディスクドライブ24、各種のインターフェース25,26,27,28を備えている。CPU20には、これらROM21、RAM22、HDD23、記録ディスクドライブ24、インターフェース25,26,27,28が、バス29を介して相互に通信可能に接続されている。
また、図7はこのシミュレーション装置1と、ロボット制御装置180、ロボット装置181から成るロボットシステムを含む構成の一例を示している。図7では、シミュレーション装置1は、図1のCPU20を中心としたブロック(ROM21、RAM22、HDD23など)を含む、例えばPC(パーソナルコンピュータ)のような形態の制御端末として図示してある。シミュレーション装置1には、キーボード11、マウス12、モニタ13が接続されている。
図7のモニタ13は、シミュレーション画面100を表示している。シミュレーション画面100は、ロボットモデルや、それにより操作される部品(物体モデル)を表示するCG画面を備える。このシミュレーション画面100は、さらに接触閾値などの設定操作を行うためのユーザーインターフェース40(図6)や、ロボット制御プログラムを設定するためのユーザーインターフェース1000(図8)などを備えている。
本実施形態のシミュレーション装置1は、接触を伴うロボット装置181の動作をオフラインで確認するような用途を想定している。例えば、図7において、シミュレーション装置1は、ロボット制御装置180がロボット装置181を駆動制御するためのロボット制御プログラムの検証などに利用できる。例えば、ハンド182、アーム、操作するワーク183、184などの各物体の接触を伴う動作をシミュレーションすることにより、ロボット装置181を駆動制御するロボット制御プログラムの妥当性を検証することができる。
ROM21には、CPU20を動作させるための各種のプログラムが格納されており、CPU20は、ROM21に格納されたプログラムに基づいて後述する部品の組立シミュレーションの演算処理を実行可能となっている。RAM22は、CPU20の処理結果を一時的に記憶するための記憶手段である。HDD23は、記憶装置であり、部品データ、ダイナミクス計算や接触力計算の計算式等の各種情報を予め記憶している。また、CPU20は、HDD23は、CPU20による演算結果等のデータを記憶させる。
図1の制御系は、主制御手段としてのCPU20、記憶装置としてのROM21、およびRAM22を備えたPCハードウェアなどによって構成されている。ROM21には、本実施形態の組立シミュレーションを実現するためのCPU20の制御プログラムや定数情報などを格納しておくことができる。また、RAM22は、その制御手順を実行する時にCPU20のワークエリアなどとして使用される。
本実施形態のシミュレーション処理を実現するためのCPU20の制御プログラムは、上記のHDD23やROM21の(例えばEEPROM領域)のような記憶部に格納しておくことができる。その場合、本実施形態の制御手順を実現するためのCPU20の制御プログラムは、ネットワークインターフェースなどを介して、上記の各記憶部に供給し、また新しい(別の)プログラムに更新することができる。また、あるいは、後述の制御手順を実現するためのCPU20の制御プログラムは、例えば記録ディスクドライブ24から上記の各記憶部に供給し、またその内容を更新することができる。記録ディスクドライブ24は、例えば、各種の磁気ディスクや光ディスク、フラッシュメモリなどの記憶手段と、そのためのドライブ装置などから成る。本実施形態の制御手順を実現するためのCPU20の制御プログラムを格納した状態における各種の記憶手段、記憶部、ないし記憶デバイスは、本発明の制御手順を格納したコンピュータ読み取り可能な記録媒体を構成することになる。
シミュレーション装置1は、インターフェース25を介して接続されたキーボード11及びインターフェース26を介して接続されたマウス12などから成る操作入力部を備える。この操作入力部ハードウェアを用いて構成されるユーザーインターフェースを介して、ユーザは各種の設定操作を行うことができる。さらに、シミュレーション装置1には、インターフェース27を介して接続されたモニタ13が備えられており、データ入力(編集)画面、部品等を仮想三次元空間に表示する表示画面などの各種画面が表示可能となっている。また、インターフェース28は、書き換え可能な不揮発性メモリや外付けHDD等の外部記憶装置14が接続可能に構成されている。
図2はシミュレーション全体の処理の流れを示している。以下で説明するシミュレーション処理は、複数の物体モデルが存在する仮想空間で、少なくとも1つの物体モデルを動作させるものである。これらシミュレーションモデルとしての物体モデルは、例えば、産業用のロボット装置、ないしそのロボット装置に対応するワークなどの物体、あるいはロボット装置が配置された実環境(仮想空間に相当)中に配置された障害物などの物体に相当する。なお、以下の仮想空間における物体モデルについては、簡略に「物体」と記載する場合がある。また、以下のシミュレーション処理の説明では、部品(ワーク)ロボット(装置)、障害物などの物体に相当する物体モデルも、「部品(ワーク)」、「ロボット(装置)」、「障害物」など、実環境における部材名称により言及する場合がある。
本実施形態において、例えばロボット装置を動作させるロボット装置を制御するロボット制御プログラムに記述された態様で、前記ロボット装置が操作する対象の物体に対応する前記物体モデルを前記仮想空間で動作させる。このシミュレーション処理により、ロボット制御プログラムに記述されたロボット動作を検証することができる。そして、検証し、あるいはさらに必要な修正を行ったロボット制御プログラムを用いて、実際のロボット装置に物体モデルに相当するワークを操作させる組立動作を行い、例えば、物品の製造を実施することができる。
本実施形態のシミュレーション処理は以下のように行われる。まず、ロボット装置のリンクやワークの位置情報、質量、慣性モーメント、重心位置、3Dモデルとして記述された物体モデル、その初期変位、初期速度、初期加速度、などの情報を読み込み、シミュレーションモデルの設定を行う(S1)。
次に、シミュレーション時間、シミュレーション時間間隔、物体同士の反発係数、部品同士が接触したと判断するための所定の閾値、即ち接触閾値など、シミュレーション全体に係るシミュレーション条件について設定する(S2)。シミュレーションを行う準備ができたら、シミュレーション計算を開始する(S3)。
本実施形態のシミュレーション計算では、1ステップずつ計算を行い、シミュレーションを進める。ここで、図3および図4を参照して本実施形態のシミュレーション計算について説明する。
図3は、接触計算を含むシミュレーション計算のフローチャートを表している。シミュレーション計算では、まず、後述の過去のシミュレーションステップへロールバックした後、用いるため、現在のシミュレーションステップ(第1のシミュレーションステップ)における位置と速度をバックアップする(S4)。下式においてqbackupで示す位置と加速度の変数領域は、例えばRAM22などに確保される。
Figure 0007374723000001
次に以降で説明するロールバックのために、シミュレーションの接触計算に用いる近接点数のゼロクリアを行う(S5)。なお、この接触計算の概略は、例えば以下の疑似プログラムコードに示すような判定処理である。
Figure 0007374723000002
次に下式のようなダイナミクス計算を行い、物体にかかる力から加速度を計算する(S6)。その場合、剛体の運動方程式は下式に示すように記述できる。
Figure 0007374723000003
上式において、q、その微分、2階微分はそれぞれ剛体の変位、速度、加速度、τは剛体にかかる接触力である。また、H()は慣性項、C()はコリオリ・遠心項、G()は重力項である。上式の接触力τを用い、下式のように、剛体にかかる接触力から加速度を計算することができる。
Figure 0007374723000004
次に、加速度から速度と位置を計算する積分計算を行う(S7)。剛体の初期状態は、一般的には下式のように与えられる。
Figure 0007374723000005
シミュレーション計算では、この初期状態(初期シミュレーションステップ)から離散ステップ(t)だけ進んだ次の状態(シミュレーションステップ)を、数値積分手法で連続的に計算する。例えばオイラー積分の場合、シミュレーション計算は下式のように計算することができる。
Figure 0007374723000006
そして、この歩進させた後のシミュレーションステップにおいて、接触計算を行い部品同士のオーバーラップがあるかどうかを確認する(S8)。ここでオーバーラップがなければ(S8のNO)、シミュレーションが完了したかを確認(S9)し、シミュレーションを続行する場合(S9のNO)は、制御をループさせ、次のシミュレーションステップの計算に移る。
図4(a)~(d)は、シミュレーション計算結果の一例を示している。図4(a)~(d)において、物体31はシミュレーション対象の物体であり、物体331、332は障害物を示しており、ここでは、物体31と、物体331、332は互いに接近する速度を持っているものとする。シミュレーション計算を行うことにより、シミュレーション対象の物体31は、図4(a)~(d)に32、327~329で示すような位置に移動する。32、329の場合は、物体と障害物はオーバーラップしていない状態である。
ところで、シミュレーション計算は離散ステップで行われるため、例えば、図4(a)~(d)に示すように、位置を計算した際に物体同士、例えば物体331ないし332と物体327ないし328がオーバーラップする可能性がある。
解析法で接触力計算を行う場合は物体間の近接点の計算が必要であるが、オーバーラップが発生すると近接点が計算できないので接触力計算ができなくなる。図4(b)は、オーバーラップした場合のシミュレーション計算の結果を表している。ここでは、シミュレーション計算の結果、327で示すように、物体31が物体331(障害物)とオーバーラップしている。そして、オーバーラップが確認(S8のYES)された場合には、シミュレーション状態を過去のシミュレーションステップにロールバックする(S10)。このロールバック操作では、バックアップしたシミュレーションデータ(数式1に示した位置、加速度の変数領域)を用い、下式のようにシミュレーション状態(位置、加速度)を以前の状態(シミュレーションステップ)に戻す。
Figure 0007374723000007
図4(b)のように、離散ステップt+Δtで物体のオーバーラップが検出されると、上記のようにロールバックしたステップ(第2のシミュレーションステップ)で接触力が発生したものとして取り扱う。具体的には、物体が接触閾値内に存在するまで接触閾値の拡大(図3のS11)と、接触閾値内に物体が存在するか否かの判定(S12)を実施し、その後に近接点の取得計算(S13)を行う。接触閾値の拡大フローの最後には、閾値拡大によって近接点の数が増加したかどうかを判定し(S14)、近接点が増加した場合(S14のYES)には、近接点数を保存する(S15)。この近接点数の保存は、接触閾値拡大後の接触力計算に基づき、再度オーバーラップ判定が生じた場合に必要となるために行うものである。
なお、物体(例えばロボットで操作する部品やワーク)同士のオーバーラップや、接触閾値以内に物体同士が存在するかの判定方法については、公知の技術を利用できる。この種の干渉検出の手法は、例えば”Real-Time Collision Detection”,CRC Press,2004になどに記載されている。
例えば、部品の接触確認は、3Dモデルの3角形ポリゴン情報を用いて行う。2つの部品の3角形ポリゴンの要素それぞれについて交差が起きているかどうかを判定することにより、物体同士が接触しているかどうかを確認できる。3角形同士の交差の有無の判定手法は様々であるが、三角形の3頂点情報の関係性を用いた幾何学的演算により容易に計算することができる。同様に、接触閾値以内に物体同士が存在するか否かは、下記の疑似プログラムコードに示すような演算において、2つの部品の3角形ポリゴンのそれぞれについての距離Lと閾値Tを比較することで容易に判定できる。
Figure 0007374723000008
接触閾値内に物体が存在した場合には、接触力の計算を行う(S16)。この接触力に関しては、非特許文献1に記載の方法を利用して計算を行う。この非特許文献1の手法は、物体同士の近接点において接触前と接触後の相対速度が理論的に正しくなるように連立方程式を立て、近接点の速度と接触力に関する条件式を用い、線形相補性問題として解くものである。
図5は、物体31と物体33に関して、接触閾値を拡大するデータ操作を示している。本実施形態において、接触閾値は、この値よりも物体同士が近接した場合に接触が発生したとするための基準である。図5において、最初は、接触閾値は351の状態であり、このとき閾値(351)以内の距離に物体31と物体33(障害物)が存在しない。本実施形態の処理では、この場合、接触閾値を352の状態に拡大する。このとき、物体31と障害物33は互いに接触閾値の相対距離に存在するため、接触が発生しているものとして取り扱えるようになる。この閾値拡大の操作について、ロールバック時の拡大量の設定は、予めシミュレーション条件設定(S2)で行うことが考えられる。
図8は、ロボット制御プログラムを設定するためのユーザーインターフェース1000を示している。図8のユーザーインターフェース1000は、マウス12のクリックやドラッグ、あるいはキーボード11からのキーボードショートカット操作などによって操作することができる。ユーザーインターフェース1000のダイアログは、メニュー101を有し、このメニュー101は、例えばプルダウン(アップ)メニューなどの形態で実装され、シミュレーションに用いるロボット制御プログラムを指定できるように構成される。メニュー101のメニューアイテムには、HDD23などに現在格納されているロボット制御プログラムがリストされる。
メニュー101でロボット制御プログラムを選択し、図8の開始ボタン1011を操作すると、仮想空間内で、ロボット制御プログラムで定義された動作を行うよう、仮想ロボットを動作させるシミュレーションを開始させることができる。仮想ロボット(当然ながら、これもシミュレーション対象の物体モデルの1つである)の動作は、図7のシミュレーション画面100中で、例えば3D表示などの形態でアニメーション表示させることができる。図8の停止ボタン1012は開始させたシミュレーションを停止(一時停止)させるために用いられる。
図8のユーザーインターフェース1000で選択されるロボット制御プログラムには、位置制御や力制御などのパラメータが記述されている。シミュレーションする仮想環境中では、もちろん、ロボット装置のアームやハンドなどの部位は、ロボット装置が操作するワークなどとともに、物体モデルとして取り扱う。シミュレーション環境で、ロボット制御プログラムに従い、これらの物体モデルを動作させることにより、例えば、ロボット制御プログラムの妥当性を検証することができる。
シミュレーション計算における接触計算は計算コストが大きいため、図6のようなインターフェース40を用いてシミュレーションの精度と速度を調整できるようにしておくとよい。
図6のユーザーインターフェース40のダイアログにおいて、フィールド43は、最大ロールバック回数を指定するための、例えば数値入力フィールドである。ユーザは、フィールド43を介して図3のS10で行われるロールバックの回数の上限を指定することができる。最大ロールバック回数の値は、S10から始まるフローの無限ループの可能性を排除するために有効な設定項目である。
最大ロールバック回数がフィールド43を介して指定した上限値に達した場合には、図9に示すようなダイアログ1100をポップアップ表示し、シミュレーション継続の如何をユーザに尋ねる。図9のダイアログ1100は、最大ロールバック回数が指定した上限値に達したことを報知する、例えばテキスト、あるいはさらにアイコンなどのシンボル表示によるメッセージ1103を備える。また、図9のダイアログ1100は、ユーザがシミュレーションを継続させるための継続ボタン1101と、シミュレーションを停止させるための停止ボタン1102と、を有する。
図6のユーザーインターフェース40を構成するダイアログにおいて、フィールド44は、ユーザが接触閾値の拡大幅を指定するための、例えば数値入力フィールドである。この接触閾値の拡大幅は、図3のS11で用いられる接触閾値の拡大幅に相当する。ここで与える拡大幅が小さいほど接触計算の精度が上がるが、計算コストが大きくなる。なお、フィールド44では、0以下の拡大幅は設定できないものとする。
図6のダイアログ40において、フィールド45は、図3のS11~S13で用いられる接触閾値の最大値をユーザが指定するための、例えば数値入力フィールドである。この接触閾値の最大値は、図3のS10から始まるフローの無限ループの可能性を排除するために有効である。
図6のフィールド45から指定した接触閾値が上限(最大値)に達した場合には図10のようなダイアログ提示する。シミュレーション継続の如何をユーザに問うのが適当である。また、図10のダイアログ1100は、接触閾値が上限(最大値)に達したことを報知する、例えばテキスト、あるいはさらにアイコンなどのシンボル表示によるメッセージ1104を備える。また、図10のダイアログ1100は、ユーザがシミュレーションを継続させるための継続ボタン1101と、シミュレーションを停止させるための停止ボタン1102と、を有する。
図4(c)は、図4(b)のシミュレーションをロールバックし、閾値拡大を行い、近接点を計算した場合のシミュレーション結果の一例を示している。図4中の341、342は、物体31、332同士の近接点を表している。近接点341と近接点342はペアになっており、この2点間の位置関係により反発力や摩擦力の方向が計算される。図4(c)例では、実線で示した物体31に対して、接触力を元にシミュレーション計算を行った結果、328で示すように、シミュレーション対象の物体31が障害物331とオーバーラップしている結果となっている。
図4(d)は、シミュレーションステップをロールバックし、物体31と、332の近接点341、342と、物体31と、331の近接点343、344を計算した状態である。この状態から、物体31の位置、速度、加速度などから接触力をシミュレーション計算することができる。
これにより、接触力計算を無効にしてしまう物体31と障害物33のオーバーラップは解消される。そして、この場合は、シミュレーションをロールバックさせた位置、速度、加速度などから計算した物体31が物体331と物体332に対する接触力によって跳ね返るシミュレーションが実行できている(329)。
以上に示したように、本実施形態のシミュレーション演算によれば、シミュレーション中に物体同士のオーバーラップが発生した場合でも、適切にシミュレーション演算を継続する事ができる。また、本実施形態のユーザーインターフェースによれば、シミュレーションをロールバックさせる場合には、接触閾値を拡大することができ、これにより、ロールバックした状態からのオーバーラップを解消できる可能性を増大させることができる。また、本実施形態ユーザーインターフェースによれば、接触閾値の拡大幅を小さな値に制限することもでき、シミュレーションを物体同士がより近接した接触状態に近い位置から続行させることができる。これにより、続行されるシミュレーションの接触力計算の精度を向上させることができる。また、ロールバックを行ってもオーバーラップが解消していなければ、オーバーラップを繰り返し、実行させることができる。その場合、本実施形態のユーザーインターフェースによれば、繰り返し実行回数を制限することができ、シミュレーション演算が無限ループ状態に入るような障害を回避することができる。
即ち、本実施形態によれば、複数の物体間の接触力を用いるシミュレーション処理において、物体同士のオーバーラップが発生しても解析法を用いたシミュレーションを継続することができる。また、オーバーラップが発生した際には状況に応じて最小な接触閾値が決定される。このため、従来技術におけるように、あらかじめ大きな接触閾値を設定する必要がなく、接触シミュレーションの精度が向上する。また、物体同士がオーバーラップした時のみ接触力計算を行うように計算を進めることができ、物体同士がオーバーラップしていない間の物体同士の接触閾値内判定を省略できるため、処理コストを大きく低減する事ができる。
<実施形態2>
シミュレーション開始前に、上述の接触閾値の初期値を適宜設定しておき、物体モデル同士のオーバーラップが生じる前に、ロールバックを行うことなく接触力のシミュレーション演算が行われるよう制御手順を構成することもできる。
本実施形態の図11の制御手順は、図3の制御に、接触閾値の初期値を判定し、接触閾値以内に物体モデル同士が近接した場合にステップS13に分岐するためのステップS17を追加したものである。図11の他のステップは、上述の図3で説明したものと同じであるため、ここでは重複した説明は省略する。
また、図12は、接触閾値の初期値を考慮した図6のユーザーインターフェースに、接触閾値の初期値を設定するための入力フィールド46を追加したユーザーインターフェースを示している。図12のユーザーインターフェースにおいて、入力フィールド46により設定された接触閾値の初期値は、図11のステップS17で用いられる接触閾値の初期値である。
以上のように、本実施形態は、シミュレーション制御に図11のようにステップS17の分岐を追加しておき、適宜接触閾値の初期値を設定できるよう構成されている。このような構成により、物体モデル同士のオーバーラップが生じる前に、ロールバックを行うことなく接触力のシミュレーション演算を行わせることができる。従って、本実施形態によれば、接触力シミュレーションをより高速化することができる。
なお、シミュレーション装置は、図3の制御手順と、図11の制御手順を双方とも用意しておき、適当な選択ユーザーインターフェース(不図示)を介していずれかの制御手順を選択できるように構成してもよい。あるいは、上記の選択ユーザーインターフェースは、図11のステップS17の分岐制御を挿入(有効化)するか否かを決定するラジオボタンなどにより構成してもよい。このような構成により、接触状態が少ないと予想されるようなシミュレーションでは図3の制御を用い、接触状態が多いと予想されるようなシミュレーションでは、図11の制御を用いるような選択が可能となる。
<実施形態3>
上記実施形態1では、シミュレーション中にオーバーラップが発生し、ロールバックを行う場合に、物体モデル同士のオーバーラップないし近接状態を判定するための接触閾値を拡大する、またその拡大幅を設定可能な構成を例示した。
上記実施形態1の例は、接触閾値の拡大幅を手動設定するものであった。しかしながら、このような手動設定によると、ユーザが選択した接触閾値の拡大幅の設定と、シミュレーションする環境やモデルの構成との不整合によって、好ましくない制御状態が生じる可能性がある。例えば、接触閾値の拡大幅は、小さすぎると近接点検出までの閾値拡大の繰り返し回数が多くなり、大きすぎると意図しない近接点を検出してしまう。
そこで、接触閾値の拡大幅の適正値を、物体モデルの状態に応じて自動設定する構成が考えられる。本実施形態では、接触閾値の拡大幅を、物体モデルの状態、例えば物体モデルの相対速度に基づき、計算、設定する例を示す。
図13は、シミュレーション中にオーバーラップする物体モデル36、39(例えば部品)を示している。ここで、物体モデル36は1ステップ後に位置37に移動するような速度38を有し、物体モデル39は1ステップ後に位置42に移動するような速度41を有する。実施形態1と同様の制御によると、物体モデル36、39が位置37、42を占めた時、オーバーラップが発生し、シミュレーションステップのロールバックが行われる。
この場合、本実施形態では、例えば下式のような演算によって、接触閾値の拡大幅を計算する。まず、物体モデル36の速度38(v)と物体モデル39の速度41(v)を用いて、物体モデル36と物体モデル39の相対速度42‐1(vrel)を算出する。ここで、図14は、図13中の速度38(v)、物体モデル39の速度41(v)、物体モデル36と物体モデル39の相対速度42‐1(vrel)のベクトル表現で示している。
Figure 0007374723000009
そして、下式のように相対速度にシミュレーションの1ステップの時間(Δt)を乗算することにより、それぞれの物体モデル(例えば部品)がシミュレーションの1ステップにおいて近づく距離(D)を算出できる。
Figure 0007374723000010
以上のように、相対速度42‐1にシミュレーションの1ステップの時間を掛けた値を接触閾値の拡大幅とすることにより、たかだか1回の接触閾値拡大の試行で物体同士の近接点43‐1と近接点43‐2のペアを取得することができる(図15)。
以上のように、本実施形態によれば、シミュレーション処理に必要な物体モデルの接触閾値の拡大幅の適正値を、物体モデルの状態に応じて自動設定することができる。例えば、接触閾値の拡大幅は、物体モデルの状態、例えば物体モデルの相対速度に基づき、計算、設定することができる。従って、熟練を必要とする手動設定を行う必要がなく、自動的にシミュレーション処理に必要な物体モデルの接触閾値の拡大幅の適正値を、物体モデルの状態に応じて自動設定することができる。
本発明は上述の実施例の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
1…シミュレーション装置、13…モニタ、20…CPU、21…ROM、22…RAM、23…HDD、25~28…インターフェース、1000…ユーザーインターフェース、1011…開始ボタン、1012…停止ボタン、31、32、331、332…物体(物体モデル)。

Claims (16)

  1. 複数の物体モデルが存在する仮想空間で、少なくとも1つの物体モデルを動作させるシミュレーションを行う情報処理方法において、
    制御装置が、第1のシミュレーションステップにおいて、複数の物体モデルのオーバーラップが発生しているか否かを判定し、前記複数の物体モデルのオーバーラップが発生している場合、シミュレーションの状態をオーバーラップが生じていない過去の第2のシミュレーションステップにロールバックさせる工程と、
    前記制御装置が、ロールバックさせた前記第2のシミュレーションステップにおいて、前記物体モデルの所定の閾値以内の距離で互いに近接する近接点を取得し、取得した前記近接点の接触前と接触後の相対速度を用いて、前記物体モデル同士が接触した場合に前記物体モデルの間に働く接触力を演算する工程と、を含む情報処理方法。
  2. 請求項1に記載の情報処理方法において、前記制御装置は、ロールバックさせた前記第2のシミュレーションステップにおいて、前記近接点を取得する場合、前記近接点が得られるよう、前記閾値を初期値よりも拡大して前記物体モデルの所定の閾値以内の距離で互いに近接する近接点を取得する情報処理方法。
  3. 請求項1に記載の情報処理方法において、前記制御装置は、前記閾値を拡大しながら、前記近接点の取得を繰り返し試行し、前記物体モデル同士の近接点の数が増加した場合、取得した前記近接点の接触前と接触後の相対速度を用いて前記物体モデルの間の接触力を演算する情報処理方法。
  4. 請求項2または3に記載の情報処理方法において、前記制御装置が、ユーザーインターフェース装置を介して、ユーザによる、前記閾値に係る数値の設定操作を受け付ける情報処理方法。
  5. 請求項2から4のいずれか1項に記載の情報処理方法において、前記制御装置が、前記閾値の拡大幅を前記物体モデル同士の相対速度を用いて決定する情報処理方法。
  6. 請求項1から5のいずれか1項に記載の情報処理方法において、前記制御装置が、前記複数の物体モデルをそれぞれ構成するポリゴンの交差の有無に応じて、複数の物体モデルのオーバーラップが発生しているか否かを判定する情報処理方法。
  7. 請求項1から6のいずれか1項に記載の情報処理方法に記載の各工程を前記制御装置を構成するコンピュータに実行させる制御プログラム。
  8. 請求項7に記載の制御プログラムを格納したコンピュータ読み取り可能な記録媒体。
  9. 複数の物体モデルが存在する仮想空間で、少なくとも1つの物体モデルを動作させるシミュレーションを行う情報処理装置において、
    第1のシミュレーションステップにおいて、複数の物体モデルのオーバーラップが発生しているか否かを判定し、前記複数の物体モデルのオーバーラップが発生している場合、シミュレーションの状態をオーバーラップが生じていない過去の第2のシミュレーションステップにロールバックさせ、ロールバックさせた前記第2のシミュレーションステップにおいて、前記物体モデルの所定の閾値以内の距離で互いに近接する近接点を取得し、取得した前記近接点の接触前と接触後の相対速度を用いて、前記物体モデル同士が接触した場合に前記物体モデルの間に働く接触力を演算する制御装置を備えた情報処理装置。
  10. 請求項9に記載の情報処理装置において、前記制御装置は、ロールバックさせた前記第2のシミュレーションステップにおいて、前記近接点を取得する場合、前記閾値を初期値よりも拡大して前記物体モデルの所定の閾値以内の距離で互いに近接する近接点を取得する情報処理装置。
  11. 請求項9に記載の情報処理装置において、前記制御装置は、前記閾値を拡大しながら、前記近接点の取得を繰り返し試行し、前記物体モデル同士の近接点の数が増加した場合に、取得した前記近接点の接触前と接触後の相対速度を用いて前記物体モデルの間の接触力を演算する情報処理装置。
  12. 請求項10または11に記載の情報処理装置において、前記制御装置が、ユーザーインターフェース装置を介して、ユーザによる、前記閾値に係る数値の設定操作を受け付ける情報処理装置。
  13. 請求項10から12のいずれか1項に記載の情報処理装置において、前記制御装置が、前記閾値の拡大幅を前記物体モデル同士の相対速度を用いて決定する情報処理装置。
  14. 請求項9から13のいずれか1項に記載の情報処理装置において、前記制御装置が、前記複数の物体モデルをそれぞれ構成するポリゴンの交差の有無に応じて、前記複数の物体モデルのオーバーラップが発生しているか否かを判定する情報処理装置。
  15. 請求項9から14のいずれか1項に記載の情報処理装置と、ロボット装置と、を備え、前記情報処理装置が、前記ロボット装置を制御するロボット制御プログラムに記述された態様で、前記ロボット装置が操作する対象物体に対応する前記物体モデルを前記仮想空間で動作させて前記ロボット制御プログラムを検証し、検証した前記ロボット制御プログラムによって前記ロボット装置を動作させるロボットシステム。
  16. 請求項15に記載のロボットシステムの前記ロボット装置により、前記対象物体としてのワークを操作し、前記ワークから物品を製造する物品の製造方法。
JP2019203868A 2019-11-11 2019-11-11 情報処理方法、情報処理装置、およびロボットシステム Active JP7374723B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019203868A JP7374723B2 (ja) 2019-11-11 2019-11-11 情報処理方法、情報処理装置、およびロボットシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019203868A JP7374723B2 (ja) 2019-11-11 2019-11-11 情報処理方法、情報処理装置、およびロボットシステム

Publications (2)

Publication Number Publication Date
JP2021077149A JP2021077149A (ja) 2021-05-20
JP7374723B2 true JP7374723B2 (ja) 2023-11-07

Family

ID=75898015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019203868A Active JP7374723B2 (ja) 2019-11-11 2019-11-11 情報処理方法、情報処理装置、およびロボットシステム

Country Status (1)

Country Link
JP (1) JP7374723B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113298945A (zh) * 2021-06-08 2021-08-24 上海宝冶工程技术有限公司 集装箱装箱方案的计算方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004094750A (ja) 2002-09-02 2004-03-25 Ricoh Co Ltd 3次元形状処理装置、干渉モデル検出方法、プログラム、及び記憶媒体
JP2007114866A (ja) 2005-10-18 2007-05-10 Canon Inc 接触判定方式

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004094750A (ja) 2002-09-02 2004-03-25 Ricoh Co Ltd 3次元形状処理装置、干渉モデル検出方法、プログラム、及び記憶媒体
JP2007114866A (ja) 2005-10-18 2007-05-10 Canon Inc 接触判定方式

Also Published As

Publication number Publication date
JP2021077149A (ja) 2021-05-20

Similar Documents

Publication Publication Date Title
EP3195990B1 (en) Robot trajectory generation method, apparatus, computer program and computer readable storage medium
EP2923805A2 (en) Object manipulation driven robot offline programming for multiple robot system
CN108145709B (zh) 控制机器人的方法和设备
US20090319892A1 (en) Controlling the Motion of Virtual Objects in a Virtual Space
JP2019519387A (ja) 拡張現実ロボットシステムの可視化
US8217932B2 (en) Systems and methods for implementing haptic systems and stimulated environments
KR102027594B1 (ko) 컴퓨터 지원 설계 시스템의 3차원 장면에서 오브젝트들의 어셈블리를 동적으로 조작하기 위한 방법 및 시스템
CN102682150B (zh) 设计导航场景
Gao et al. Virtual assembly planning and assembly-oriented quantitative evaluation of product assemblability
WO2020104864A1 (en) Method and system for predicting motion-outcome data of a robot moving between a given pair of robotic locations
JP7374723B2 (ja) 情報処理方法、情報処理装置、およびロボットシステム
JP6335439B2 (ja) コンピュータ支援設計システムの三次元シーンにおける、オブジェクトのアセンブリの動的シミュレーションのための、初期条件を設定するためのコンピュータ実装方法
JP6560227B2 (ja) コンピュータ支援設計モデルの自動動作
CN108236782B (zh) 外接设备的定位方法及装置、虚拟现实设备及系统
JP2009274180A (ja) ロボット動作計画方法及び装置
US8599220B2 (en) Position fine tuning in a computer aided modeling
EP4052865A1 (en) Information processing apparatus, robot system, information processing method, program, and recording medium
JP2021082222A (ja) 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置
CN114454981B (zh) 双足机器人的弹跳运动控制方法、装置及双足机器人
JP2008059375A (ja) 情報処理方法、情報処理装置
US10032304B1 (en) Automatic creation of temporary rigid relationships between moving parts in motion simulation
US10864434B2 (en) Simulation of multiple connected bodies for real-time application
JP4508776B2 (ja) 画像処理プログラムおよび画像処理装置
US20240058963A1 (en) Multi-mode robot programming
WO2021154251A1 (en) Automatic simplification of a rigid-body simulation

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200206

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230912

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230926

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231025

R151 Written notification of patent or utility model registration

Ref document number: 7374723

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151