JP6069923B2 - ロボットシステム、ロボット、ロボット制御装置 - Google Patents

ロボットシステム、ロボット、ロボット制御装置 Download PDF

Info

Publication number
JP6069923B2
JP6069923B2 JP2012161281A JP2012161281A JP6069923B2 JP 6069923 B2 JP6069923 B2 JP 6069923B2 JP 2012161281 A JP2012161281 A JP 2012161281A JP 2012161281 A JP2012161281 A JP 2012161281A JP 6069923 B2 JP6069923 B2 JP 6069923B2
Authority
JP
Japan
Prior art keywords
data
collision detection
representative point
node
unit
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
JP2012161281A
Other languages
English (en)
Other versions
JP2014021810A (ja
JP2014021810A5 (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2012161281A priority Critical patent/JP6069923B2/ja
Priority to US13/921,437 priority patent/US20140025203A1/en
Priority to CN201310303138.4A priority patent/CN103568022B/zh
Publication of JP2014021810A publication Critical patent/JP2014021810A/ja
Publication of JP2014021810A5 publication Critical patent/JP2014021810A5/ja
Application granted granted Critical
Publication of JP6069923B2 publication Critical patent/JP6069923B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39085Use of two dimensional maps and feedback of external and joint sensors
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39095Use neural geometric modeler, overlapping spheres

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Processing Or Creating Images (AREA)
  • Manipulator (AREA)
  • Image Processing (AREA)

Description

本発明は、ロボットシステム、ロボット、ロボット制御装置等に関する。
物体間の衝突や近接の有無を判定することは多くの分野で必要とされている。例えばロボットなどの分野において、衝突の発生は非常に大きな問題となる。このため、従来より、実際に衝突が発生する以前に、衝突の有無や、許容された以上の近接を、コンピューターによる計算により判定する手法が研究、開発されている。このような衝突判定手法の従来技術としては、例えば特許文献1等に開示される技術が知られている。
特許文献1の手法では、物体がポリゴンデータにより表されており、そのポリゴンデータの各ポリゴンを所定半径の球で覆い、それらの球をより大きな半径の球に統合していき、それらの球のデータを、球の統合関係を表す二分木構造のデータとして構成する。そして、その二分木構造のデータを階層毎に逐次的に衝突判定することにより、物体間の衝突判定を行う。
特開平11−250122号公報
特許文献1のようにポリゴンデータを用いて衝突検出を行う手法では、検出対象となる物体のCAD(Computer Aided Design)データが必要となる。しかしながら、現実的には、CADデータが存在しない物体やCADデータを入手できない物体は多数存在しているため、そのような物体に上記手法を適用することは困難であるという課題がある。
本発明の幾つかの態様によれば、物体のポリゴンデータを入手できない場合等であっても衝突検出可能な衝突検出システム、衝突検出用データ生成装置、ロボットシステム、ロボット、衝突検出用データ生成方法及びプログラム等を提供できる。
本発明の一態様は、物体の衝突検出用データとして、第1の物体に対応する第1の衝突検出用データと第2の物体に対応する第2の衝突検出用データとを記憶する記憶部と、前記第1の衝突検出用データと前記第2の衝突検出用データとに基づいて、ワールド座標系における前記第1の物体と前記第2の物体との衝突判定を行う処理部と、を含み、前記記憶部は、前記物体のモデル座標系において所定の視点から前記物体を見たときの深度マップデータを前記モデル座標系に設定された立方体領域により離散化して得られた代表点データを、前記衝突検出用データとして記憶する衝突検出システムに関係する。
このようにすれば、モデル座標系に設定された立方体領域により物体の深度マップデータが離散化されて得られた代表点データが、衝突検出用データとして記憶部に記憶され、その衝突検出用データに基づいて第1の物体と第2の物体の衝突検出が行われる。これにより、物体のポリゴンデータを入手できない場合等であっても衝突検出を行うことが可能になる。
また本発明の一態様では、前記記憶部は、前記物体を内包するバウンディングボックスの前記代表点データと、前記バウンディングボックスを分割した立方体領域により前記深度マップデータを離散化して得られた前記代表点データである分割代表点データと、を前記衝突検出用データとして記憶し、前記処理部は、前記第1の物体を内包する第1のバウンディングボックスと前記第2の物体を内包する第2のバウンディングボックスとが衝突すると判定した場合に、前記第1の物体の前記分割代表点データと前記第2の物体の前記分割代表点データとに基づいて前記第1の物体と前記第2の物体との衝突判定を行ってもよい。
このようにすれば、バウンディングボックスが非衝突と判定された段階で、第1の物体と第2の物体が非衝突であると確定判定できるため、より小さな立方体領域での衝突判定を省略して処理を簡素化できる。
また本発明の一態様では、記記憶部は、前記衝突検出用データとして木構造のデータを記憶し、前記木構造のデータは、親ノードの立方体領域を分割した複数の立方体領域に対応する前記代表点データを、前記親ノードから分岐する子ノードの前記代表点データとして有してもよい。
このようにすれば、木構造の上位階層のノードから下位階層のノードに向かって階層ごとに順次衝突検出を行うことが可能となる。このような再帰的な処理により、衝突検出を並列処理化できる。
また本発明の一態様では、前記親ノードの立方体領域を分割した前記子ノードの前記複数の立方体領域は、前記所定の視点から見たときの前記親ノードの立方体領域を、2×2領域に分割するとともに、前記2×2領域の各領域を、前記所定の視点の奥行き方向に2分割することで得られた2×2×2個の立方体領域であり、前記木構造のデータは、前記所定の視点から見たときの前記2×2領域の各領域に対応して前記子ノードが設定された4分木構造のデータであり、前記4分木構造における前記子ノードのデータは、前記2×2領域の前記各領域において、前記奥行き方向の2つの立方体領域のうち少なくとも一方に存在する前記代表点データであってもよい。
このような4分木構造のデータに基づいて衝突検出を行うことにより、各階層でのノード対の組み合わせを4×4=16個にすることができ、例えばスレッド数が数十程度のCPU(Central Processing Unit)等を用いて衝突検出システムを実現することが可能になる。
また本発明の一態様では、前記処理部は、前記親ノードのデータに基づく前記衝突判定において、衝突すると判定された前記親ノードが存在する場合には、前記衝突すると判定された前記親ノードから分岐する前記子ノードのデータに基づいて前記衝突判定を行い、前記親ノードのデータに基づく前記衝突判定において、衝突すると判定された前記親ノードが存在しない場合には、前記第1の物体と前記第2の物体が非衝突であると確定判定してもよい。
このようにすれば、木構造の上位階層のノードから下位階層のノードに向かって階層ごとに順次衝突検出を行う再帰的な衝突検出処理を実現することができる。また、ノード対の全ての組み合わせについて非衝突と判定された階層がある場合には、その階層を処理した段階で第1の物体と第2の物体が非衝突であると確定判定できるので、処理を簡素化できる。
また本実施形態では、前記深度マップデータは、前記物体の3次元情報を測定する3次元情報測定装置により生成された深度マップデータであってもよい。
また本発明の他の態様は、物体のモデル座標系における所定の視点から前記物体を見たときの深度マップデータを取得する深度マップデータ取得部と、前記物体の前記モデル座標系における代表点データを前記衝突検出用データとして生成する衝突検出用データ生成部と、を含み、前記衝突検出用データ生成部は、前記物体の前記モデル座標系に設定された立方体領域により前記深度マップデータを離散化することにより、前記代表点データを生成する衝突検出用データ生成装置に関係する。
本発明の他の態様によれば、モデル座標系に設定された立方体領域により物体の深度マップデータが離散化され、その離散化により衝突検出用データとして代表点データが生成される。このようにして衝突検出用データを生成することで、物体のポリゴンデータを入手できない場合であっても衝突検出を行うことが可能になる。
また本発明の他の態様では、前記衝突検出用データ生成部は、親ノードの立方体領域を分割した複数の立方体領域に対応するノードを、子ノードとして前記親ノードに接続し、前記衝突検出用データとして木構造のデータを生成してもよい。
このようにすれば、深度マップデータを離散化した代表点データから木構造のデータを構成できる。また、このような木構造のデータを生成することで、衝突検出において再帰的な並列処理を行うことができる。
また本発明の他の態様では、前記親ノードの立方体領域を分割した前記子ノードの前記複数の立方体領域は、前記所定の視点から見たときの前記親ノードの立方体領域を、2×2領域に分割するとともに、前記2×2領域の各領域を、前記所定の視点の奥行き方向に2分割することで得られた2×2×2個の立方体領域であり、前記衝突検出用データ生成部は、前記所定の視点から見たときの前記2×2領域の各領域に対応して前記子ノードが設けられた4分木構造のデータを、前記木構造のデータとして生成し、前記4分木構造のデータにおける前記子ノードのデータは、前記2×2領域の前記各領域において、前記奥行き方向の2つの立方体領域のうち少なくとも一方に存在する前記代表点データであってもよい。
このようにすれば、所定の視点から見たときの2×2領域の各領域に対応して子ノードを設定することで、深度マップデータを立方体領域により離散化した代表点データから4分木構造のデータを構成することができる。
また本発明の他の態様では、前記衝突検出用データ生成部は、処理対象の代表点と、前記処理対象の代表点の周囲26近傍の立方体領域の外側に存在する代表点との間に、前記代表点データが欠落する立方体領域があると判断した場合に、前記代表点データが欠落する立方体領域に、前記代表点データを補完してもよい。
このようにして衝突検出用データを生成することで、代表点データが欠落する立方体領域において実際には衝突可能性があるにも関わらず非衝突と判定されてしまうような誤検出を抑制することが可能になる。
また本発明の他の態様では、前記所定の視点の奥行き方向に遠ざかるほど深度値が大きくなる場合に、前記衝突検出用データ生成部は、前記処理対象の代表点の代表深度値から、前記処理対象の代表点の周囲に存在する代表点の代表深度値を減算した差分値が、負であると判定した場合に、前記処理対象の代表点に対して前記奥行き方向側の立方体領域に、前記代表点データを補完してもよい。
このようにすれば、差分値が負である場合には、その代表点が処理対象の代表点よりも奥行き方向側に存在することになるため、処理対象の代表点データに対して奥行き方向側の立方体領域に代表点データを補完できる。
また本発明の他の態様では、前記深度マップデータは、前記物体の3次元情報を測定する3次元情報測定装置により生成された深度マップデータであってもよい。
また本発明の更に他の態様は、可動部を有するロボットと、物体の衝突検出用データとして、第1の物体に対応する第1の衝突検出用データと第2の物体に対応する第2の衝突検出用データとを記憶する記憶部と、前記第1の衝突検出用データと前記第2の衝突検出用データとに基づいて、ワールド座標系における前記第1の物体と前記第2の物体との衝突判定を行う処理部と、前記処理部により行われた前記衝突判定の結果に基づいて前記可動部の動作を制御する制御部と、を含み、前記記憶部は、前記物体のモデル座標系において所定の視点から前記物体を見たときの深度マップデータを前記モデル座標系に設定された立方体領域により離散化して得られた代表点データを、前記衝突検出用データとして記憶するロボットシステムに関係する。
また本発明の更に他の態様は、可動部と、物体の衝突検出用データとして、第1の物体に対応する第1の衝突検出用データと第2の物体に対応する第2の衝突検出用データとを記憶する記憶部と、前記第1の衝突検出用データと前記第2の衝突検出用データとに基づいて、ワールド座標系における前記第1の物体と前記第2の物体との衝突判定を行う処理部と、前記処理部により行われた前記衝突判定の結果に基づいて前記可動部の動作を制御する制御部と、を含み、前記記憶部は、前記物体のモデル座標系において所定の視点から前記物体を見たときの深度マップデータを前記モデル座標系に設定された立方体領域により離散化して得られた代表点データを、前記衝突検出用データとして記憶するロボットに関係する。
また本発明の更に他の態様は、物体のモデル座標系における所定の視点から前記物体を見たときの深度マップデータを取得し、前記物体の前記モデル座標系に設定された立方体領域により前記深度マップデータを離散化し、前記離散化して得られる代表点データを前記衝突検出用データとして生成する衝突検出用データ生成方法に関係する。
また本発明の更に他の態様は、物体のモデル座標系における所定の視点から前記物体を見たときの深度マップデータを取得する深度マップデータ取得部と、前記物体の前記モデル座標系における代表点データを前記衝突検出用データとして生成する衝突検出用データ生成部として、コンピューターを機能させ、前記衝突検出用データ生成部は、前記物体の前記モデル座標系に設定された立方体領域により前記深度マップデータを離散化することにより、前記代表点データを生成するプログラムに関係する。
図1(A)は、本実施形態の衝突検出用データ生成装置の構成例。図1(B)は、本実施形態の衝突検出システムの構成例。 図2(A)は、本実施形態の衝突検出システムを含むロボットシステムの例。図2(B)は、本実施形態の衝突検出システムを含むロボットの例。 衝突検出用データの生成手法についての説明図。 衝突検出用データの生成手法についての説明図。 衝突検出用データの生成手法についての説明図。 衝突検出用データの生成手法についての説明図。 衝突検出用データの生成手法についての説明図。 衝突検出用データの生成手法についての説明図。 図9(A)〜図9(C)は、本実施形態の衝突検出用データ生成装置が生成する4分木構造のデータの例。 図10(A)、図10(B)は、本実施形態の衝突検出用データ生成装置が生成する4分木構造のデータの例。 図11(A)〜図11(C)は、本実施形態の衝突検出用データ生成装置が生成する4分木構造のデータの例。 衝突検出の手法についての説明図。 図13(A)〜図13(C)は、衝突検出の手法についての説明図。 衝突検出の手法についての説明図。 衝突検出の手法についての説明図。 衝突検出の手法についての説明図。 本実施形態の衝突検出用データ生成装置の詳細な構成例。 衝突検出用データ生成処理のフローチャート。 1階層分のデータ生成処理の詳細なフローチャート。 4分木構造生成処理の詳細なフローチャート。 本実施形態の衝突検出システムの詳細な構成例。 衝突検出処理のフローチャート。 再帰的ノード対衝突検出処理の詳細なフローチャート。
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
1.構成
ロボット(マニピュレーター)の動作においては、周辺構造物や周辺機器への衝突や、自己衝突や、他のロボットへの衝突は非常に大きな問題となる。本実施形態の衝突検出手法では、このような衝突をシミュレーションにより事前に検出する。
このような本実施形態の衝突検出手法が用いられる形態としては、大別して、オフラインでの使用(事前確認)と、ラインタイムでの使用(予測、先読み)が考えられる。オフラインの使用では、周辺環境などが既知且つ静的であり、ロボットの動作が既知である場合に、システムの作成時に、その衝突を検証する。一方、ラインタイムの使用では、周辺環境などが動的に変化する場合(例えば周囲に複数のロボットが存在したり、作業者が存在する場合)に、ロボットの実際の動作に先行して、シミュレーションにより衝突を検出する。
従来では、このようなロボットにおける衝突検出手法として、物体(オブジェクト)のポリゴンデータを入手可能であることを前提としたアルゴリズムを使用する場合が多かった。ポリゴンデータは、物体の構造を設計する際等に物体の形状を多数のポリゴンの組み合わせによって表現したCADデータである。しかしながら、衝突検出の対象となる物体は多種多様であり、それらの全てについてCADデータを入手することは、現実的には困難であるという課題がある。
また、ポリゴンデータを使用する従来の衝突検出手法には、上述した特許文献1のように、各ポリゴンについて二分木構造の球データを生成し、そのデータを使用して衝突検出を行う手法がある。しかしながら、このような手法では、大量の無駄な衝突検出用データや無駄な衝突検出処理が発生するため、効率的な衝突検出を行うことが困難である。
具体的には、現実の物体を記述したポリゴンデータは、必ずしも、衝突検出において重要な物体表面のポリゴンデータのみを含むわけではない。衝突検出において重要でないポリゴンデータとして、物体内部を表現するポリゴンデータや、物体の外部からは見えない部分を表現するポリゴンデータ等を大量に含んでいる。このようなポリゴンデータからポリゴン単位で球データを生成すると、二分木構造のデータには、衝突検出に関係しない球データが大量に含まれることになる。特許文献1では、このような衝突検出において重要でないポリゴンデータへの対処法について無言であり、衝突検出に関係しない球データについても衝突検出処理が行われることで非効率な処理となってしまう。
また、現実の物体を記述したポリゴンデータには、非常に多岐にわたる大きさのポリゴンが含まれており、これらを同一のアルゴリズムで扱うことは効率的ではない。例えば、ロボットのパーツや、ロボットが取り扱う道具類には細い棒上の物体が多く、このような物体は微小なポリゴンで表現される。また、物体の複雑な形状等にも、多数の微小なポリゴンが使用されている。ポリゴンを覆う球の大きさは近接の許容範囲程度の大きさがあればよいと考えられるので、それよりも小さいポリゴンで表現される構造を木構造のデータで表現した場合、データが非常に冗長となる。そうすると、微小な構造が衝突検出で重要となることは少ないにも関わらず、微小な構造によって無駄な衝突検出処理が大量に発生してしまう。
図1(A)に、以上のような問題を解決できる本実施形態の衝突検出用データ生成装置の構成例を示す。なお本実施形態の衝突検出用データ生成装置の構成は図1(A)の構成には限定されず、その一部の構成要素(例えば操作部、外部I/F部等)を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
この衝突検出用データ生成装置は、処理部110と、記憶部150を含む。また衝突検出用データ生成装置は、操作部170、外部I/F(インターフェース)部180、情報記憶媒体190を含むことができる。この衝突検出用データ生成装置は例えば情報処理装置によって構成され、その情報処理装置のハードウェアーやプログラムにより衝突検出用データ生成装置が実現される。
処理部110は、各種のデータ生成処理や制御処理などを行うものであり、例えばCPU等の各種のプロセッサー、専用回路(ASIC)などのハードウェアーや、プロセッサー上で実行されるプログラムなどにより実現できる。処理部110は、深度マップデータ取得部112、衝突検出用データ生成部114を含む。
深度マップデータ取得部112は、衝突検出用データを生成するための深度マップデータを取得する処理を行う。ここで深度マップとは、所定の視点(例えば無限遠の視点)から見た場合における物体の深度値により表されるマップであり、ピクセル単位の深度値がマトリクス配列されたマップである。深度マップデータ取得部112には、例えば情報記憶媒体190に予め保存されたCADデータが入力され、あるいは外部I/F部180を介して不図示の三次元情報測定装置(例えば3Dスキャナー)からの測定情報が入力される。そして、深度マップデータ取得部112は、入力されたCADデータや測定情報から深度マップデータを生成する。
衝突検出用データ生成部114は、衝突検出処理に用いるためのデータを深度マップデータから生成する処理を行う。具体的には、図3等で後述するように、深度マップデータにおける位置及び深度値を立方体領域で離散化し、物体の表面を覆う離散化された代表値データを衝突検出用データとして生成する。衝突検出用データ生成部114は、立方体領域のサイズを順次分割(又は統合)しながら代表点データを生成し、その分割(又は統合)の従属関係を表した木構造のデータを構成する。生成された衝突検出用データは、情報記憶媒体190に格納される。
記憶部150は、処理部110などのワーク領域となるもので、RAM(SRAM、DRAM等)などのメモリーにより実現できる。操作部170は、使用者が各種の操作情報を入力するためのものである。外部I/F部180は、外部との間で有線や無線で情報の通信処理等を行うものである。情報記憶媒体190は(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク、HDD、或いはメモリーなどにより実現できる。処理部110は、情報記憶媒体190に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体190には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
図1(B)に、上述した問題を解決できる本実施形態の衝突検出システムの構成例を示す。なお本実施形態の衝突検出システムの構成は図1(B)の構成には限定されず、その一部の構成要素(例えば操作部、外部I/F部等)を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
この衝突検出システムは、処理部10と、記憶部50を含む。また衝突検出システムは、操作部70、外部I/F(インターフェース)部80、情報記憶媒体90を含むことができる。
記憶部50は、処理部10などのワーク領域となるもので、RAM(SRAM、DRAM等)などのメモリーにより実現できる。この記憶部50は、代表点データ記憶部52を含む。
代表点データ記憶部52は、衝突検出用データ生成装置により生成された衝突検出用データを記憶する。例えば、衝突検出用データ生成装置は衝突検出システムと別体に構成され、衝突検出用データは外部I/F部80を介して情報記憶媒体90に記憶される。そして、衝突検出処理を実行する際には、処理部10は、情報記憶媒体90の衝突検出用データを記憶部50のRAMに展開し、そのRAM上のデータを参照して衝突検出処理を行う。なお、衝突検出用データ生成装置は衝突検出システムと一体に構成されてもよい。この場合、深度マップデータ取得部112と衝突検出用データ生成部114は処理部10に含まれ、処理部10により生成された衝突検出用データが情報記憶媒体90に格納される。
処理部10は、各種の判定処理や制御処理などを行うものであり、例えばCPU等の各種のプロセッサー、専用回路(ASIC)などのハードウェアーや、プロセッサー上で実行されるプログラムなどにより実現できる。処理部10は、オブジェクト空間設定部12、衝突判定部14を含む。
オブジェクト空間設定部12は、複数の物体をオブジェクト空間に配置設定する処理等を行う。具体的には、ワールド座標系での物体の位置や回転角度を決定し、その位置にその回転角度で物体を配置する。ここでワールド座標系とは、衝突検出処理を行う空間に設定された座標系であり、衝突検出対象の物体に対して共通に設定された座標系である。また物体(オブジェクト)とは、ロボット等の衝突検出対象物や、周辺構造物や周辺機器などの被衝突検出対象物を、モデル化したものである。本実施形態では、各物体に対してそれぞれモデル座標系が設定されており、そのモデル座標系における代表点データにより物体が表現される。オブジェクト空間設定部12は、このモデル座標系における代表点データの座標を、ワールド座標系における座標に変換することで、ワールド座標系に複数の物体を配置する。
衝突判定部14は、衝突検出対象の物体(第1の物体)と被衝突検出対象の物体(第2の物体)との間の衝突判定処理を行う。具体的には、図8以降で後述するように、立方体領域のサイズが大きい上位階層の代表点データで衝突判定を行い、衝突する(衝突の可能性がある)と判定されたノードが存在する場合には、そのノードの子ノードの代表点データで衝突判定を行う。最下位階層で衝突すると判定されたノードが存在する場合には、衝突と確定判定し、最下位階層よりも上位の階層で非衝突(衝突の可能性が無い)と判定された場合には、その非衝突と判定された階層よりも下位階層の衝突判定を行わず、非衝突と確定判定する。
操作部70は、使用者が各種の操作情報を入力するためのものである。外部I/F部80は、外部との間で有線や無線で情報の通信処理等を行うものである。情報記憶媒体90は(コンピューターにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク、HDD、或いはメモリーなどにより実現できる。処理部10は、情報記憶媒体90に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体90には、本実施形態の各部としてコンピューター(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピューターに実行させるためのプログラム)が記憶される。
以上のように、深度マップデータを立方体領域で離散化して衝突検出用データを生成することで、CADデータを入手できない物体であっても衝突検出が可能となる。また、代表点データは、衝突検出に重要な物体表面を表すデータのみで構成されるため、効率的な衝突検出処理が可能となる。また、代表点データは、ポリゴンの大きさに左右されない非冗長なデータであるため、無駄な衝突検出処理を抑制できる。
図2(A)に本実施形態の衝突検出システムを含むロボットシステムの例を示す。このロボットシステムは、制御装置300(情報処理装置)とロボット310とを含む。制御装置300はロボット310の制御処理を行う。具体的には、動作シーケンス情報(シナリオ情報)に基づいてロボット310を動作させる制御を行う。ロボット310は、アーム320及びハンド(把持部)330等の可動部を有する。そして制御装置300からの動作指示にしたがって可動部が動作する。例えば、図示しないパレットに載せられたワークを把持したり、移動するなどの動作を行う。また、図示しない撮像装置で取得された撮像画像情報に基づいて、ロボットの姿勢やワークの位置などの情報が検出され、検出された情報が制御装置300に送られる。
ここで可動部とは、可動部が動作することにより物体間の相対的な距離や姿勢を変化(又は移動)させるものである。例えば、本実施形態のロボット310はロボットアーム320やハンド330を有しており、そのロボットアーム320やハンド330を動かして作業を行う場合、そのロボットアーム320やハンド330を構成する各パーツや、そのパーツをジョイントする関節が可動部に相当する。この例では、例えばハンド330が物体を保持(或は把持、吸着等)しており、ロボットアーム320やハンド330が動くことによって、ハンド330が保持する物体とロボット310周辺の物体(例えば構造物や設置物、部品等)とが相対的に移動する。或は、ロボットアーム320やハンド330が動くことによって、ロボットアーム320やハンド330を構成するパーツとロボット310周辺の物体とが相対的に移動したり、或は、ロボットアーム320やハンド330の関節でジョイントされたパーツとパーツとが相対的に移動する。本実施形態では、このように可動部によって移動された物体間の衝突を検出している。
本実施形態の衝突検出システムは例えば図2(A)の制御装置300に設けられ、例えば制御装置300のハードウェアーやプログラムにより衝突検出システムが実現される。そして、ラインタイムの使用では、周辺環境などが動的に変化する場合に、ロボット310の実際の動作に先行して、本実施形態の衝突検出システムがシミュレーションにより衝突の判定処理を行う。そして制御装置300は、ロボット310が周辺構造物や周辺機器などに衝突しないように、判定処理の結果に基づいてロボット310の制御を行う。一方、オフラインの使用では、本実施形態の衝突検出システムにより、動作シーケンス情報等の作成時にシミュレーションにより衝突を検証する。そして制御装置300は、衝突が起こらないように作成された動作シーケンス情報(シナリオ情報)に基づいて、ロボット310を制御する。
なお図2(A)はロボット310と制御装置300とが別体として存在するロボットシステムの例であるが、本実施形態では、制御装置300がロボット310に内蔵されたロボットであってもよい。
図2(B)に、本実施形態の衝突検出システムを含むロボットの例を示す。このロボットは、ロボット本体310(アーム320及びハンド330を有する)と、ロボット本体310を支えるベースユニット部と、を含み、そのベースユニット部に制御装置300が格納される。図2(B)のロボットでは、ベースユニット部に車輪等が設けられ、ロボット全体が移動可能な構成となっている。なお、図2(A)は単腕型の例であるが、ロボットは図2(B)に示すように双腕型等の多腕型のロボットであってもよい。なお、ロボットの移動は人手で行われてもよいし、車輪を駆動するモーターを設け、そのモーターを制御装置300により制御することで行なってもよい。
2.衝突検出用データの生成手法
次に、本実施形態における衝突検出用データの生成手法について説明する。なお図3〜図7では、モデル座標系は物体OBに対して設定されており、そのモデル座標系を右手系の直交XYZ座標で表すものとする。
図3に示すように、深度マップデータ取得部112は、物体OBを所定の視点(視線方向)から見たときの深度マップデータZDを取得する。所定の視点は、例えば、+Z方向側、−Z方向側、+X方向側、−X方向側、+Y方向側、−Y方向側から物体OBを見る6つの視点(視線方向)である。深度マップデータ取得部112は、その6つの視点のそれぞれについて深度マップデータを取得する。図3には、例として+Z方向側の視点から見たときの深度マップデータZDのXZ平面における断面図を示す。この例では、モデル座標系のZ軸に沿って深度マップデータの深度値が変化し、モデル座標系のX軸、Y軸に沿って深度マップデータ上の位置(ピクセル位置)が変化する。
衝突検出用データ生成部114は、X座標、Y座標、Z座標を所定の間隔で離散化し、モデル座標系が設定された空間(以下では適宜、モデル空間と呼ぶ)を、立方体領域CAに離散化する。この立方体領域CAは、モデル空間及び物体OBに対して固定された領域であり、上記の6つの視点のいずれから見た場合にも同一位置に設定されている。
衝突検出用データ生成部114は、離散化したモデル空間を方向DS(例えば+X方向)に沿ってスキャンし、物体OBの表面(外郭)に対応する立方体領域CAHに代表点PAを設定する。具体的には、同一XY座標の立方体領域の列DIRに注目した場合、A1に示すように、列DIRを視点から見たときに最初に物体OBに交差する立方体領域に代表点を設定する。そして、この処理を方向DSに沿って移動しながら順次行い、視点から見たときの物体OBの表面に代表点PAを設定する。代表点は、例えば立方体領域の重心に設定され、その重心のXYZ座標によって表される。深度マップデータにおいて最背面に対応する領域には、代表点PAを設定しない。最背面は、深度値で表現できる深度範囲において視点から最遠の深度となる面である。
ここでモデル空間での離散化は、深度マップデータにおいて深度値とその位置を離散化することに相当し、モデル空間の代表点に対応して、深度マップデータにおける代表深度値と代表位置が決定されることになる。図3の例では、代表点のZ座標と代表深度値とが対応し、代表点のXY座標と代表位置とが対応する。
図4に示すように、衝突検出用データ生成部114は、+X方向のスキャンを例えば+Y方向に順次移動しながら行い、離散化されたXY座標の全てについて代表点PAの設定処理を行う。図4には、設定した代表点PAの一部のみを図示しているが、スキャンが終了すると物体OBを覆うように代表点PAが設定される。
さて、図5のB1に示すように、上述した代表点の設定処理を行っても物体OBの表面を代表点で覆いきれていない場合がある。これは、同一のXY座標をもつ立方体領域のうち1つの立方体領域にのみ代表点を設定するためである。このような代表点が欠落したデータを用いて衝突判定を行った場合、B1に示す立方体領域に対して−X方向側から他の物体が接近すると、衝突の可能性を正しく検出できない可能性がある。
そのため図6のE1に示すように、衝突検出用データ生成部114は、物体OBの表面が連続的に覆われるように代表点を補完(補充)する処理を行う。具体的には、図5のB2に示す代表点と立方体領域に注目した(処理対象とする)場合、B3に示す周囲26近傍の立方体領域で代表点が欠落しているか否かを判定する。即ちB4に示すように、視点から周囲26近傍の立方体領域を見たときに、その周囲26近傍の立方体領域よりも遠方側(奥行き方向側、図5では−Z方向側)に代表点が存在する場合、B2に示す立方体領域の遠方側に隣接するB1に示す立方体領域に代表点を補完する。ここで周囲26近傍の立方体領域とは、注目する立方体領域を囲む直近の26(=3×3×3−1)個の立方体領域である。図5では、2次元の断面図を図示しているため8近傍となっているが、3次元では、注目する立方体領域に対して±Y方向側に存在する立方体領域を合わせて26近傍となる。
衝突検出用データ生成部114は、上記のような補完処理を方向DS(例えば+X方向)にスキャンしながら行い、図5のB5、B6に示すように代表点が欠落した立方体領域に対して、図6のE2、E3に示すように代表点を補完する。そして、方向DSのスキャンを例えば+Y方向に順次移動しながら行い、離散化されたXY座標の全てについて補完処理を行う。
以上のようにして、最終的に物体OBの表面が連続的に覆われた代表点データを生成することで、物体OBに対する衝突可能性を正しく検出できるようになる。なお、注目する代表点(図5のB2)の遠方側(B1)に代表点を補完するのは、物体OBの凸部を太らせないためである。仮に注目する代表点よりも視点に近い側に代表点を補完したとすると、例えばB6に示す立方体領域ではなくB7に示す立方体領域に代表点が補完される。そうすると、実際の凸部よりも、代表点が表現する凸部の方が無駄に太くなってしまい、実際には凸部に衝突しないにも関わらず衝突可能性があると判定される可能性がある。本実施形態では注目する代表点の遠方側に代表点を補完するので、凸部が太らず、正確な衝突判定が可能である。
ここで図5では、B2の立方体領域とB4の立方体領域の間隔が立方体領域1個分である場合を例に説明したが、間隔が立方体領域2個分以上である場合には、その2個分以上の立方体領域に対して代表点を補完する。例えばB4に示す代表点が仮にB8に示す位置に存在した場合、B1に示す立方体領域に加えてB9に示す立方体領域にも代表点を補完する。
図7には、+X方向側の視点から見たときの深度マップデータZD’のXZ平面における断面図である。図7では、モデル座標系のX軸に沿って深度マップデータの深度値が変化し、モデル座標系のY軸、Z軸に沿って深度マップデータにおける位置(ピクセル位置)が変化する。
図7に示すように、衝突検出用データ生成部114は、+Z方向側から見た視点以外の視点についても、上述した手法により深度マップデータZD’から代表点データを生成する。このとき、図7のF1に示す代表点のように、図6のE4に示す他の視点での代表点と重複する場合がある。衝突検出用データ生成部114は、F1に示すような重複する代表点を削除し、+X方向側から見た視点での最終的な代表点データを生成する。そして、6つの視点で生成した代表点データを合わせて、あらゆる視点から見て物体OBの表面が代表点で覆われるような衝突検出用データを生成する。
図8に示すように、衝突検出用データ生成部114は、立方体領域のサイズを変えてモデル空間を離散化し、その立方体領域CBに対応する代表点PBのデータを生成する。立方体領域CBのサイズは、立方体領域CAの辺の長さを2倍にしたサイズであり、立方体領域CBを2×2×2分割した各領域が立方体領域CAに対応している。衝突検出用データ生成部114は、このようにして立方体領域のサイズを順次大きくしてデータ生成処理を行い、各サイズに対応する代表点データを生成し、それらを統合して4分木構造のデータを生成する。4分木において最上位の立方体領域は、物体OBを内包する立方体領域(バウンディングボックス)である。また4分木において最下位階層の立方体領域のサイズは、例えばロボット等の衝突検出での許容誤差程度(例えば数cm)にすればよい。
以上で説明した階層毎の処理において1階層分の処理は、深度マップを3次元ベクトル量子化することに相当する。また、衝突検出用データは、3次元ベクトル量子化の量子化刻みが異なるデータを、4分木構造に統合したものに相当する。3次元ベクトル量子化における量子化刻みは、立方体領域のサイズに対応しており、量子化刻みが同じデータを同一階層のデータとして4分木構造に統合する。
なお、立方体領域CA、CBのサイズ比は2倍に限定されず、例えば3倍や4倍等であってもよい。また上記では、立方体領域のサイズを順次大きくしてデータ生成する場合を例に説明したが、本実施形態はこれに限定されず、立方体領域のサイズを順次小さく(例えば1/2倍に)しながらデータ生成してもよい。
3.データ構成例
図9(A)〜図11(C)に、本実施形態の衝突検出用データ生成装置が生成する4分木構造のデータの例。なお以下では、+Z方向側から見た視点を所定の視点として3階層のデータを生成する場合を例に説明する。
図9(A)は、+Z方向側から見たときの立方体領域の分割関係を表した図である。領域A〜Vは、立方体領域をXY平面に対して垂直に投影した領域を表す。領域Aは、物体OBを内包する立方体領域に対応している。そして、物体OBを内包する立方体領域が2×2×2分割され、その各立方体領域が更に2×2×2分割されるに従って、領域Aが領域B〜Dに2×2分割され、領域B〜Dがそれぞれ領域F〜I、J〜M、O〜R、S〜Vに2×2分割される。
図9(B)に示すように、領域A〜Vの分割関係に従って代表点データを4分木構造に構成する。即ち、4分木構造の最上位(ルート)のノードAには、図9(A)の領域Aに対応した物体OBを内包する立方体領域の代表点データを設定する。そして、ノードAを親ノードとする子ノードB〜Eには、図9(A)の領域B〜Eに存在する代表点データを設定する。ここで、領域B〜Eには、それぞれZ方向に2つの立方体領域が並んでおり、そのZ方向に並んだ2つの立方体領域のうち基本的には一方に代表点が設定されている。例えば、図8のG1に示す代表点が設定された立方体領域を分割すると、図3のA2に示す立方体領域となる。図3のA2に示す立方体領域を視点から見たとき、Z方向に並ぶ2つの立方体領域のうち一方に代表点が設定されている。ノードB〜Eには、基本的には、このような2つの立方体領域のうち一方に存在する代表点データが設定される。同様にしてノードB〜Eをそれぞれ親ノードとする子ノードF〜I、J〜M、O〜R、S〜Vには、図9(A)の領域F〜I、J〜M、O〜R、S〜Vに存在する代表点データを設定する。
図9(C)に、各ノードのデータ構成例を示す。なお簡単のためノードC〜Eの子ノードの図示を省略した。図9(C)に示すように、ノードA〜Vは、ノードAxy〜Vxyと、そのノードAxy〜Vxyに従属するサブノードAz〜Vzにより構成される。ノードAxy〜Vxyには、代表点のXY座標が記憶され、サブノードAz〜Vzには、代表点の深度値(Z値)が記憶される。±X、±Y方向側から見た視点での代表点データの場合には、深度値はX、Y方向に変化するが、深度値がZ方向に変化するように適当な座標変換を行って4分木を構成する。あるいは、±X、±Y方向側から見た視点での代表点データにおいて、ノードAxy〜Vxyに代表点のYZ、ZX座標を記憶し、サブノードAz〜VzにX、Y方向における深度値を記憶してもよい。
ここで、上述のような親ノードに対して複数の子ノードが接続される分木構造において、そのノードの親子関係における世代をデータの階層と呼ぶ。即ち、ノードの親子関係において同一世代のノードは、同一階層のノードとなる。例えば図9(B)の例では、ルートノードAが1つの階層を構成し、そのルートノードAの子ノードB〜Eが1つの階層を構成する。そして、子ノードB〜Eを親ノードとする子ノードF〜V(ルートノードAからみて孫世代のノード)が、更に1つの階層を構成する。
図10(A)に、図6等で説明した代表点補完処理を行った場合のデータ構成例を示す。例えばノードCの代表点Caに対して、同一XY座標で深度値が異なる2つの代表点Cb、Ccが補完されているとする。この場合、それら同一XY座標の3つの代表点データCa、Cb、Ccを1つのノードCに設定する。
具体的には、図10(B)に示すように、代表点データCa、Cb、Ccの共通のXY座標をノードCxyに記憶し、そのノードCxyに従属するサブノードCaz、Cbz、Cczにそれぞれ代表点データCa、Cb、Ccの深度値を記憶する。ノードCxyに接続されるサブノードCaz、Cbz、Cczは、例えばリスト構造で構成することが想定される。このようにデータを構成すれば、ノードAxy〜Vxyは必ず4分木で接続されるので、補完データが存在しても4分木構造のデータを構成できる。なお図10(B)では簡単のためノードC〜Eの子ノードの図示を省略した。
図11(A)は、+Z方向側から見たときの物体OBXと立方体領域を表した図である。図11(A)の例では、領域Eを分割した領域S〜Vのうち、物体OBXに交差する領域はSのみである。そのため図11(B)に示すように、ノードEに接続される子ノードS〜Vのうち、代表点が存在するのはノードSのみである。
この場合、図11(C)に示すように、ノードSxy、サブノードSzにはそれぞれ代表点のXY座標、深度値が記憶される。ノードTxy〜Vxyには代表点は存在しないが、代表点が設定される位置のXY座標が記憶される。サブノードTz〜Vzには深度値が記憶されず、ノードTxy〜VxyにはNULLリストが接続されることになる。例えば、図11(C)においてノードAxy〜VxyからサブノードAz〜Vzを指す矢印が、実装において例えばポインターで実現される場合、サブノードTz〜Vzを指す矢印は例えばNULLポインターで実現される。このようにデータを構成すれば、ノードAxy〜Vxyは必ず4分木で接続されるので、代表点が存在しないノードが存在しても4分木構造のデータを構成できる。なお図11(C)では簡単のためノードC〜Eの子ノードの図示を省略した。
4.衝突検出の手法
次に、図1(B)で説明した衝突検出システムが行う衝突検出の手法について説明する。図12に、衝突判定を行う対象である第1の物体OB1と第2の物体OB2の、ワールド座標系における断面図を示す。物体OB1、OB2は、例えばロボット等のパーツや、そのパーツ間を接続する関節部分や、ロボット等の作業空間に配置された構造物などである。
図12に示すように、衝突判定部14は、まず衝突検出用データのうち立方体領域のサイズが最大の代表点データ(即ち、4分木構造のルートデータ)を用いて衝突判定を行う。具体的には、オブジェクト空間設定部12が、4分木構造のルートの代表点と立方体領域を、物体OB1、OB2のモデル座標系からワールド座標系に座標変換する。そして、衝突判定部14は、物体OB1、OB2の立方体領域BA1、BA2がワールド座標系において交差するか否かを判断する。
具体的には図13(A)に示すように、衝突判定部14は、物体OB1の代表点DP1と物体OB2の代表点DP2との距離DSを求める。ここで、物体OB1の立方体領域BA1の一辺の長さをSI1とし、物体OB2の立方体領域BA2の一辺の長さをSI2とする。衝突判定部14は、DS>√3×(SI1+SI2)を満たすと判定した場合には、立方体領域BA1を内包する球KY1と立方体領域BA2を内包する球KY2とが非交差であると判断する。この場合、立方体領域BA1、BA2は非衝突であると確定判定する。
一方、図13(B)に示すように、DS>√3×(SI1+SI2)を満たさないと判定した場合には、球KY1、KY2が交差していると判断し、立方体領域BA1、BA2が交差しているか否かを判定する。具体的には図13(C)に示すように、衝突判定部14は、立方体領域BA1、BA2の相対的な位置と相対的な回転角度に基づいて交差判定を行う。この相対的な位置と相対的な回転角度は、例えばワールド座標系における立方体領域BA1、BA2の位置と姿勢から知ることができ、例えば立方体領域BA2を基準として立方体領域BA1の位置と回転角度を求めればよい。
このように、球の交差判定と立方体領域の交差判定を組み合わせることで、処理を簡素にできる。即ち、球が交差していない場合には、立方体領域の交差判定よりも比較的簡素な処理である球の交差判定のみで終了できる。なお、上記では球が交差すると判定した場合に立方体領域が交差するか否かを判定したが、本実施形態では球が交差すると判定した時点で立方体領域が衝突すると確定判定してもよい。この場合、更に処理を簡素化できる。
上記の交差判定において立方体領域BA1、BA2が交差すると判定した場合、衝突判定部14は、立方体領域BA1、BA2よりも小さいサイズの立方体領域で衝突判定を行う。即ち図14に示すように、立方体領域BA1を分割した立方体領域BB1〜BG1と、立方体領域BA2を分割した立方体領域BB2〜BG2との交差判定を、全ての組み合わせについて行う。例えば立方体領域BB1と立方体領域BB2、BC2とが交差すると判定した場合、図15に示すように、立方体領域BB1、BB2、BC2を更に分割した立方体領域で交差判定を行う。
具体的には、衝突判定部14は、立方体領域BB1、BB2内で代表点が最も近い立方体領域BH1、BH2が非交差であると判定し、且つ、立方体領域BB1、BC2内で代表点が最も近い立方体領域BI1、BI2が非交差であると判定した場合には、物体OB1、OB2が非衝突であると確定判定する。一方、交差すると判定された立方体領域が存在し、且つ、判定している階層が4分木構造の最下位階層である場合には、物体OB1、OB2に衝突可能性があると確定判定する。
なお、上述の図14、図15では、4分木構造の1階層分の衝突判定を省略し、2階層下の衝突判定を図示しているが、実際には衝突判定は1階層ずつ行われる。
即ち、図16に示すように、衝突判定部14は、物体OB1、OB2の4分木構造のデータにおいて、まずルートのノードNA1、NA2の代表点データを用いて衝突判定を行う。そして、ノードNA1、NA2の立方体領域が交差すると判定した場合、ノードNA1、NA2の子ノードNB1〜NE1、NB2〜NE2の代表点データを用いて、全ての組み合わせについて衝突判定を行う。例えばノードNE1、NC2の立方体領域が交差すると判定した場合、ノードNE1の子ノードであるNS1〜NV1の代表点データとNC2の子ノードであるNJ2〜NM2の代表点データとを用いて、これら代表点データの全ての組み合わせについて衝突判定を行う。一方、立方体領域が非交差であると判定されたノードの子ノードについては、それ以上の衝突判定を行わない。
ノードNS1〜NV1、NJ2〜NM2の衝突判定において、例えばノードNT1、NK2の立方体領域が交差すると判定したとする。図16の例では、ノードNT1は最下位階層のノードであり、ノードNK2は更に下位の子ノードが存在する。この場合、衝突判定部14は、ノードNT1の代表点データと、ノードNK2の子ノードNW2〜NZ2の代表点データとを用いて衝突判定を行う。ノードNT1の立方体領域と、最下位階層のノードである例えばノードNX2の立方体領域とが交差すると判定した場合、物体OB1、OB2に衝突可能性があると確定判定する。一方、いずれかの階層において全てのノードが非衝突と判定された場合には、その時点で物体OB1、OB2が非衝突であると確定判定し、物体OB1、OB2についての衝突判定を終了する。
さて上述したように、ポリゴンデータを用いた従来の衝突検出手法では、CADデータを入手できない物体が現実的には多数存在するため、そのような物体には適用が困難であるという課題がある。また、ポリゴンの大きさに依存して処理が冗長となるという課題や、衝突検出に重要でないポリゴンデータが多数含まれるため無駄な処理が行われるという課題がある。
この点本実施形態では、図3等で説明したように、衝突検出用データ生成部114は、物体OBのモデル座標系に設定された立方体領域CAにより深度マップデータを離散化することにより、物体OBのモデル座標系における代表点PAのデータを衝突検出用データとして生成する。ここでモデル座標系とは、衝突検出対象の個々の物体に対して設定されたモデル空間の座標系である。また立方体領域とは、モデル空間において各辺の長さが同一となる立方体であり、深度マップデータ上では、辺の長さは深度幅及び平面方向の距離に対応する。また代表点データとは、立方体領域の位置を代表する代表点(例えば立方体領域の中心点)を表すデータであり、深度マップデータ上における代表深度値及び代表位置のデータ(あるいはモデル座標系におけるXYZ座標のデータ)である。
また本実施形態では、記憶部50は、代表点PAのデータを衝突検出用データとして記憶し、処理部10は、第1の物体に対応する第1の衝突検出用データと第2の物体に対応する第2の衝突検出用データとに基づいて、ワールド座標系における第1の物体と第2の物体との衝突判定を行う。ここでワールド座標系とは、例えばロボットの作業空間等に対応しており、モデル座標系から座標変換を行うことにより衝突検出対象の物体がワールド座標系に配置される。
このように本実施形態では、深度マップデータから衝突検出用データを生成できるため、CADデータが無くても衝突検出を行うことができる。例えば、衝突検出対象の物体の中にCADデータが無い物体がある場合に、3Dスキャナー等を用いてその物体の深度マップデータを取得することによって、衝突検出用データを作成できる。
また、モデル空間を立方体領域で離散化するため、代表点データにはポリゴンのような大きさのバラつきが生じず、ポリゴンを球で覆った場合のような冗長な重なりも生じない。このような非冗長なデータを用いることで衝突検出の処理負荷を軽減できる。また、深度マップデータを用いることで、物体の外側表面にだけ代表点を設定することができるため、ポリゴンを用いる場合のような物体内部のデータが生じず、衝突検出に重要でない無駄な処理を無くすことができる。また、衝突検出を行うノード対の数はノード数の二乗に比例することから、冗長なデータや無駄なデータが生じない本実施形態では、処理の高速化が期待できる。
ここでノード対とは、衝突判定の判定対象として選択された1組のノードのことである。図16で説明した第1のオブジェクトOB1と第2のオブジェクトOB2の間の衝突判定を行う場合、OB1のデータから選択された1つのノードと、OB2のデータから選択された1つのノードとの組み合わせがノード対となる。本実施形態では、衝突有りと判定したノードの子ノードについて階層毎に衝突判定を行うので、例えばOB1の第3階層のうちNE1の子ノードNS1〜NV1から1つのノードを選択し、OB2の第3階層のうちNC2の子ノードNJ2〜NM2から1つのノードを選択し、ノード対を選択することになる。このように本実施形態では、判定対象の階層や判定対象の子ノードから選択したノードの組み合わせがノード対である。
また本実施形態では、記憶部50は、物体OBを内包するバウンディングボックス(図9(A)の領域A)の代表点データ(図9(B)のノードA)と、そのバウンディングボックスを分割した立方体領域(領域B〜E)により深度マップデータを離散化して得られた分割代表点データ(ノードB〜E)と、を衝突検出用データとして記憶する。処理部10は、第1の物体OB1を内包するバウンディングボックス(図16のノードNA1)と第2の物体OB2を内包するバウンディングボックス(ノードNA2)とが衝突すると判定した場合に、第1の物体OB1の分割代表点データ(ノードNB1〜NE1)と第2の物体OB2の分割代表点データ(ノードNB2〜NE2)とに基づいて衝突判定を行う。
このようにすれば、バウンディングボックスが非衝突と判定された段階で、分割代表点データの処理を行うことなく第1の物体と第2の物体が非衝突であると確定判定できるため、処理を簡素化できる。
より具体的には、衝突検出用データ生成部114は、親ノード(例えば図9(B)のノードB)の立方体領域(図9(A)の領域B)を分割した複数の立方体領域(領域F〜I)に対応するノード(ノードF〜I)を子ノードとして親ノードに接続し、衝突検出用データとして木構造のデータを生成する。衝突検出システムの記憶部50は、このような木構造のデータを記憶し、処理部10は、その木構造のデータに基づいて衝突検出を行う。
このような木構造のデータを用いることで、ノード対の再帰的な衝突検出を行うことが可能となるため、例えばCPU等による並列処理を容易に実現できる。具体的には、本実施形態では4分木構造のデータが生成され、このような4分木構造を用いた場合、再帰的な衝突検出の各階層では4×4=16通りのノード対の衝突検出が行われることになる。そのため、数万〜数十万の並列処理が可能なGPU(Graphics Processing Unit)を使用しなくても、数十スレッド程度の並列処理を行うCPUを用いて衝突検出システムを実現でき、GPU省略によるコスト低減を図ることが可能となる。
なお本実施形態の木構造のデータは4分木構造のデータに限定されず、例えばバウンディングボックスのノードに対して最小立方体領域のノードが直接に接続された(中間階層が無い)データであってもよい。この場合、最小立方体領域のノード対の組み合わせ数が多くなるので、GPUなどを用いて衝突検出システムを構成することが想定される。
5.衝突検出用データ生成装置の詳細な構成
図17に、本実施形態の衝突検出用データ生成装置の詳細な構成例を示す。この衝突検出用データ生成装置は、処理部110、記憶部150を含む。処理部110は、深度マップデータ取得部112、代表点設定部200、4分木構造生成部220を含む。記憶部150は、物体1〜物体Nの衝突検出用データを記憶する代表点データ記憶部MA1〜MANを含む。
代表点設定部200は、モデル空間を離散化して代表点を設定する処理を行うものであり、空間離散化部202、代表点選択部204、代表点補完部206、代表点重複削除部208を含む。なお、代表点設定部200と4分木構造生成部220は図1(A)の衝突検出用データ生成部114に対応する。
次に、この衝突検出用データ生成装置の詳細な処理例について図18〜図20のフローチャートを用いて説明する。
図18に示すように、データ生成処理が開始されると、深度マップデータ取得部112は、複数視点の深度マップデータを取得する(ステップS1)。深度マップデータ取得部112は、例えばCADデータ入力部280から入力されたCADデータ(ポリゴンデータ)に基づいて、複数視点から見た物体を描画し、各視点についての深度マップデータを生成する。あるいは、3次元情報測定装置290から入力される情報に基づいて深度マップデータを取得する。3次元情報測定装置290としては、例えば3Dスキャナーやステレオカメラなどが想定される。3Dスキャナーの場合、深度マップデータ取得部112は、3Dスキャナーが生成した深度マップデータを取得する。
次に、空間離散化部202は、ルートノードの立方体領域の一辺の長さ(最大離散化値)を離散化値SIに設定する(ステップS2)。次に空間離散化部202は、離散化値SIが、予め設定された所定の最小値よりも小さいか否かを判定する(ステップS3)。所定の最小値としては、例えばロボット等の位置把握精度を考慮して、近接許容誤差よりも小さい値に設定する。離散化値SIが所定の最小値よりも小さい場合には、代表点データ記憶部MA1〜MANのうち対応する記憶部にデータを格納し、データ生成処理を終了する。離散化値SIが所定の最小値以上である場合には、4分木構造の1階層分のデータ生成処理が行われる(ステップS4)。1階層分のデータ生成処理の詳細については後述する。
次に、4分木構造生成部220は、ステップS4でデータ生成された階層の上位階層が存在するか否かを判定する(ステップS5)。上位階層が存在する場合には、4分木構造生成部220は、ステップS4で生成されたデータを4分木構造に構成する処理を行い(ステップS6)、空間離散化部202がステップS7を実行する。4分木構造生成処理の詳細については後述する。上位階層が存在しない場合には、空間離散化部202は、離散化値SIを1/2倍の値に更新し(ステップS7)、ステップS3を再び実行する。
図19に、ステップS4の1階層分のデータ生成処理の詳細なフローチャートを示す。なお図19では、視点から遠ざかる方向に深度値が大きくなる場合を例に説明するが、本実施形態はこれに限定されない。
この処理が開始されると、空間離散化部202はモデル空間の離散化値SIを設定する(ステップS20)。次に空間離散化部202は、複数視点の全ての視点について代表点の設定処理を行ったか否かを判定する(ステップS21)。未処理の視点が存在する場合には、未処理の視点の中から1つの視点を選択する(ステップS22)。次に空間離散化部202は、1辺の長さが離散化値SIの立方体領域で深度マップデータを離散化する(ステップS23)。
次に代表点選択部204は、離散化された深度マップデータをスキャンし、代表点を設定する(ステップS24)。次に代表点選択部204は、深度マップにおける最背面の代表点データを削除する(ステップS25)。最背面の代表点データは、とり得る深度値範囲の中で最大(又はその近傍)の深度値をもつ代表点である。
次に代表点補完部206は、設定された代表点をスキャンし、代表点と、その代表点の26近傍より外側の代表点との間で連続的に代表点が設定されていない場合、その代表点の背面側(深度値が大きい側、例えば図5の−Z方向側)に代表点を補完する(ステップS26)。具体的には代表点補完部206は、注目する代表点(例えば図5のB2)の深度値から、その代表点の近傍の代表位置に存在する代表点(B4)の深度値を引いた差分DVを求める。ここで近傍の代表位置とは、注目する代表点を視点から見たときに、その注目する代表点の代表位置を中心とする周囲8つの代表位置である。そして、代表点補完部206は、差分DV<0であり、且つ、|DV|>SIである場合に、|DV|/SI個の代表点を、注目する代表点の背面側(B1)に補完する。ステップS26が終了したら、ステップS20を実行する。
ステップS21において、複数視点の全ての視点について代表点を設定していた場合には、代表点重複削除部208は、複数視点の代表点の中で重複する代表点を削除する処理を、全ての代表点について行ったか否かを判定する(ステップS27)。未処理の代表点が存在する場合には、代表点重複削除部208は、未処理の代表点の中から1つの代表点を選択する(ステップS28)。代表点重複削除部208は、は、選択した代表点と他の全ての代表点とを比較し、同一の代表点が存在する場合には、その同一の代表点を削除し(ステップS29)、ステップS27を実行する。ステップS27において、全ての代表点について処理が終了していた場合には、1階層分のデータ生成処理を終了する。
図20に、ステップS6の4分木構造生成処理の詳細なフローチャートを示す。この処理が開始されると、4分木構造生成部220は、ステップS4でデータ生成された階層の上位階層の離散化値SIを取得する(ステップS40)。次に、4分木構造生成部220は、複数視点の全ての視点について処理を行ったか否かを判定する(ステップS41)。全ての視点について処理を終了していた場合には、4分木構造生成処理を終了する。未処理の視点が存在する場合には、未処理の視点の中から1つの視点を選択する(ステップS42)。
次に4分木構造生成部220は、上位階層の全ての代表点について処理を行ったか否かを判定する(ステップS43)。例えば図9(B)のノードF〜Vについて処理する場合、その上位階層であるノードB〜Cの全てについて判定する。上位階層の全ての代表点について処理を終了していた場合には、ステップS41を実行する。未処理の代表点が存在した場合には、4分木構造生成部220は、未処理の代表点の中から1つの代表点を選択する(ステップS44)。次に4分木構造生成部220は、その選択した代表点を親ノードとして子ノードの代表点を接続し、下位階層の4分木構造を構成する(ステップS45)。例えば図9(C)のノードBxyを選択している場合、ノードBxyが親ノードであり、そのノードBxyに対して子ノードFxy〜Ixy、Fz〜Izを接続する。ノードFxy〜Ixyには代表位置のXY座標が設定され、ノードFz〜Izはこの時点では空のノード(例えばNULLノード)である。
次に4分木構造生成部220は、4つの子ノードの全てについて代表点データの設定処理を行ったか否かを判定する(ステップS46)。4つの子ノードの全てについて処理を終了していた場合には、ステップS43を実行する。未処理の子ノードが存在した場合には、4分木構造生成部220は、未処理の子ノードの中から1つの子ノードを選択する(ステップS47)。次に4分木構造生成部220は、選択した子ノードの代表位置に存在する代表点を検出する(ステップS48)。
次に、選択した子ノードの代表位置に代表点が検出されたか否かを判定する(ステップS49)。代表点が検出された場合には、4分木構造生成部220は、検出された全ての代表点を子ノードに連結する(ステップS50)。例えば図9(C)のノードFxyを選択しており、1つの代表点のみが検出された場合、その1つの代表点の代表深度値をノードFzとしてノードFxyに接続する。また図10(B)のノードCxyのように複数の代表点が検出された場合には、その複数の代表点の代表深度値をリスト構造のノードCaz〜CczとしてノードCxyに接続する。ステップS49において代表点が検出されなかった場合には、4分木構造生成部220は子ノードに代表点が無い旨の情報を設定する(ステップS51)。例えば図11(C)で説明したように、ノードTxyに対してNULLノードTzを接続する。ステップS50、S51が終了したらステップS46を実行する。
6.衝突検出システムの詳細な構成
図21に、本実施形態の衝突検出システムの詳細な構成例を示す。この衝突検出システムは、処理部10、記憶部50を含む。処理部10は、代表点データ選択部250、再帰的ノード対衝突検出部260、衝突判定出力部270を含む。記憶部50は、物体1〜物体Nの衝突検出用データを記憶する代表点データ記憶部MB1〜MBNを含む。
なお、代表点データ選択部250、再帰的ノード対衝突検出部260、衝突判定出力部270は、図1(B)の衝突判定部14、オブジェクト空間設定部12に対応する。ここで、衝突検出システムと衝突検出用データ生成装置を一体に構成する場合には、代表点データ記憶部MB1〜MBNと図17の代表点データ記憶部MA1〜MANが共通化されてもよい。
次に、この衝突検出システムの詳細な処理例について図22、図23のフローチャートを用いて説明する。
図22に示すように、衝突検出処理が開始されると、代表点データ選択部250は、全ての物体の組み合わせについて衝突検出処理を行ったか否かを判定する(ステップS60)。未処理の組み合わせが存在する場合には、代表点データ選択部250は、未処理の組み合わせの中から1組の物体(第1の物体、第2の物体)を選択する(ステップS61)。
次に再帰的ノード対衝突検出部260は、第1の物体の最上位ノードをノードN1に設定し、第2の物体の最上位ノードをノードN2に設定する(ステップS62)。次に再帰的ノード対衝突検出部260は、ノードN1、N2に対して再帰的ノード対衝突検出処理を行う(ステップS63)。この再帰的ノード対衝突検出処理の詳細については後述する。次に衝突判定出力部270は、衝突判定結果を出力し、処理部10は、衝突判定結果に応じた種々の処理を行う(ステップS64)。例えば、処理部10は、衝突すると判定された場合に、衝突しないように物体の軌道を修正する処理や、動作を停止する処理などを行う。ステップS64が終了したらステップS60を実行する。ステップS60において全ての物体の組み合わせについて処理を終了していた場合には、衝突検出処理を終了する。
図23に、再帰的ノード対衝突検出処理の詳細なフローチャートを示す。この処理が開始されると、再帰的ノード対衝突検出部260は、処理対象のノード対であるノードN1、N2を設定する(ステップS80)。次に、ワールド座標系においてノードN1、N2の立方体領域に重なりがあるか否かを判定する(ステップS81)。重なりが無い場合には、ノードN1、N2が非衝突であると判断して処理を終了する。重なりが有る場合には、再帰的ノード対衝突検出部260は、ノードN1に子ノードが存在するか否かを判定する(ステップS82)。
ノードN1に子ノードが存在する場合には、再帰的ノード対衝突検出部260は、ノードN2に子ノードが存在するか否かを判定する(ステップS83)。ノードN2に子ノードが存在する場合には、ノードN1、N2の子ノードの全ての組み合わせについて、再帰的にノード対の衝突検出を行う(ステップS84)。即ち、ノードN1、N2の子ノードの組み合わせの中に、立方体領域が重なると判定された組み合わせ(例えば図16のノードNE1、NC1)が存在した場合、そのノード対を新たにノードN1、N2に設定し、ステップS81以降を再び実行する。この再帰的な衝突検出は、ステップS84で立方体領域が重なると判定された全てのノード対に対して行う。仮に、最下位階層まで立方体領域が重なるノード対が存在すれば、この再帰的な処理が最下位階層まで繰り返されることになる。ステップS83においてノードN2に子ノードが存在しなかった場合には、再帰的ノード対衝突検出部260は、ノードN1の子ノードとノードN2との全ての組み合わせについて再帰的なノード対の衝突検出を行う(ステップS85)。
ステップS82においてノードN1に子ノードが存在しなかった場合には、再帰的ノード対衝突検出部260は、ノードN2に子ノードが存在するか否かを判定する(ステップS86)。ノードN2に子ノードが存在する場合には、ノードN1とノードN2の子ノードとの全ての組み合わせについて、再帰的にノード対の衝突検出を行う(ステップS87)。ノードN2に子ノードが存在しなかった場合には、ノードN1、N2に衝突可能性があると判断して処理を終了する。
ステップS84、S85、S87を実行した場合、再帰的ノード対衝突検出部260は、その再帰的なノード対衝突検出において最下位階層のノード対に衝突が検出されたか否かを判定し(ステップS88)、その判定結果を出力して処理を終了する。
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また本実施形態及び変形例の全ての組み合わせも、本発明の範囲に含まれる。また衝突検出用データ生成装置や衝突検出システムの構成・動作や、衝突検出用データの生成手法や衝突検出の手法等も、本実施形態で説明したものに限定されず、種々の変形実施が可能である。
10 処理部、
12 オブジェクト空間設定部、14 衝突判定部、50 記憶部、
52 代表点データ記憶部、70 操作部、80 外部I/F部、
90 情報記憶媒体、110 処理部、112 深度マップデータ取得部、
114 衝突検出用データ生成部、150 記憶部、170 操作部、
180 外部I/F部、190 情報記憶媒体、200 代表点設定部、
202 空間離散化部、204 代表点選択部、206 代表点補完部、
208 代表点重複削除部、220 4分木構造生成部、
250 代表点データ選択部、260 再帰的ノード対衝突検出部、
270 衝突判定出力部、280 CADデータ入力部、
290 3次元情報測定装置、300 制御装置、310 ロボット、
320 アーム、
A〜V ノード、Axy〜Vxy ノード、Az〜Vz サブノード、
CA,CB 立方体領域、MA1〜MAN,MB1-MBN 代表点データ記憶部、
OB 物体、OB1 第1の物体、OB2 第2の物体、
PA,PB 代表点、SI 離散化値、ZD 深度マップデータ

Claims (4)

  1. 可動部を有するロボットと、
    物体の衝突検出用データとして、第1の物体に対応する第1の衝突検出用データと第2の物体に対応する第2の衝突検出用データとを記憶する記憶部と、
    前記第1の衝突検出用データと前記第2の衝突検出用データとに基づいて、ワールド座標系における前記第1の物体と前記第2の物体との衝突判定を行う処理部と、
    前記処理部により行われた前記衝突判定の結果に基づいて前記可動部の動作を制御する制御部と、
    を含み、
    前記記憶部は、
    前記衝突検出用データとして前記物体のモデル座標系において所定の視点から前記物体を見たときの深度マップデータを、親ノードの立方体領域を分割した複数の立方体領域に対応する代表点データである前記親ノードから分岐する子ノードの4分木構造のデータとして記憶することを特徴とするロボットシステム。
  2. 請求項1において、
    前記親ノードの立方体領域を分割した前記子ノードの前記複数の立方体領域は、
    前記所定の視点から見たときの前記親ノードの立方体領域を、2×2領域に分割するとともに、前記2×2領域の各領域を、前記所定の視点の奥行き方向に2分割することで得られた2×2×2個の立方体領域であり、
    前記木構造のデータは、
    前記所定の視点から見たときの前記2×2領域の各領域に対応して前記子ノードが設定された4分木構造のデータであり、
    前記4分木構造における前記子ノードのデータは、
    前記2×2領域の前記各領域において、前記奥行き方向の2つの立方体領域のうち少なくとも一方に存在する前記代表点データであることを特徴とするロボットシステム。
  3. 可動部と、
    物体の衝突検出用データとして、第1の物体に対応する第1の衝突検出用データと第2の物体に対応する第2の衝突検出用データとを記憶する記憶部と、
    前記第1の衝突検出用データと前記第2の衝突検出用データとに基づいて、ワールド座標系における前記第1の物体と前記第2の物体との衝突判定を行う処理部と、
    前記処理部により行われた前記衝突判定の結果に基づいて前記可動部の動作を制御する制御部と、
    を含み、
    前記記憶部は、
    前記衝突検出用データとして前記物体のモデル座標系において所定の視点から前記物体を見たときの深度マップデータを、親ノードの立方体領域を分割した複数の立方体領域に対応する代表点データである前記親ノードから分岐する子ノードの4分木構造のデータとして記憶することを特徴とするロボット。
  4. 物体のモデル座標系における所定の視点から前記物体を見たときの深度マップデータを取得する深度マップデータ取得部と、
    前記物体の前記モデル座標系における代表点データを衝突検出用データとして生成する衝突検出用データ生成部と、を含み
    前記衝突検出用データ生成部は、
    前記衝突検出用データとして前記物体のモデル座標系において前記所定の視点から前記物体を見たときの深度マップデータを、親ノードの立方体領域を分割した複数の立方体領域に対応する代表点データである前記親ノードから分岐する子ノードの4分木構造のデータとして記憶することを特徴とするロボットの制御装置。
JP2012161281A 2012-07-20 2012-07-20 ロボットシステム、ロボット、ロボット制御装置 Active JP6069923B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012161281A JP6069923B2 (ja) 2012-07-20 2012-07-20 ロボットシステム、ロボット、ロボット制御装置
US13/921,437 US20140025203A1 (en) 2012-07-20 2013-06-19 Collision detection system, collision detection data generator, and robot
CN201310303138.4A CN103568022B (zh) 2012-07-20 2013-07-18 碰撞检测系统、碰撞检测用数据生成装置以及机械手

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012161281A JP6069923B2 (ja) 2012-07-20 2012-07-20 ロボットシステム、ロボット、ロボット制御装置

Publications (3)

Publication Number Publication Date
JP2014021810A JP2014021810A (ja) 2014-02-03
JP2014021810A5 JP2014021810A5 (ja) 2015-08-27
JP6069923B2 true JP6069923B2 (ja) 2017-02-01

Family

ID=49947229

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012161281A Active JP6069923B2 (ja) 2012-07-20 2012-07-20 ロボットシステム、ロボット、ロボット制御装置

Country Status (3)

Country Link
US (1) US20140025203A1 (ja)
JP (1) JP6069923B2 (ja)
CN (1) CN103568022B (ja)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101793485B1 (ko) * 2014-01-03 2017-11-03 인텔 코포레이션 깊이 카메라를 사용하는 실시간 3d 재구성
CN103884302B (zh) * 2014-03-20 2016-04-13 安凯 空间机械臂与舱体的碰撞检测方法
KR101626795B1 (ko) * 2014-10-22 2016-06-02 삼인정보시스템(주) 충돌 검사 방법 및 그 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체
GB2531585B8 (en) 2014-10-23 2017-03-15 Toshiba Res Europe Limited Methods and systems for generating a three dimensional model of a subject
EP3020514B1 (de) * 2014-11-17 2023-10-11 KRONES Aktiengesellschaft Handhabungsvorrichtung und verfahren zur handhabung von artikeln
WO2016122840A1 (en) 2015-01-26 2016-08-04 Duke University Specialized robot motion planning hardware and methods of making and using same
DE102015007395A1 (de) * 2015-06-08 2016-12-08 Kuka Roboter Gmbh Verfahren und System zum Betreiben und/oder Überwachen einer Maschine, insbesondere eines Roboters
WO2016197247A1 (en) * 2015-06-12 2016-12-15 Nureva, Inc. Method and apparatus for managing and organizing objects in a virtual repository
CN105512377B (zh) * 2015-11-30 2017-12-12 腾讯科技(深圳)有限公司 实时虚拟场景中圆柱碰撞体与凸体碰撞探测的方法和系统
EP3537248A1 (en) 2016-06-10 2019-09-11 Duke University Motion planning for autonomous vehicles and reconfigurable motion planning processors
CN106127764B (zh) * 2016-06-22 2019-01-25 东软集团股份有限公司 Svg图形碰撞检测方法及装置
DE102016120763B4 (de) 2016-10-31 2019-03-14 Pilz Gmbh & Co. Kg Verfahren zur kollisionsfreien Bewegungsplanung
JP6420296B2 (ja) 2016-12-01 2018-11-07 ファナック株式会社 ロボットの干渉領域を自動で設定するロボット制御装置
CN106625662A (zh) * 2016-12-09 2017-05-10 南京理工大学 一种基于虚拟现实带电作业机械臂防碰撞保护方法
KR101756946B1 (ko) 2017-01-20 2017-07-11 장수진 경도선/위도선을 기반으로 교통로를 구성하고, 지도 검색을 수행하는 방법 및 장치
CN107515736B (zh) * 2017-07-01 2021-01-15 广州深域信息科技有限公司 一种在嵌入式设备上加速深度卷积网络计算速度的方法
JP6879464B2 (ja) * 2017-08-02 2021-06-02 オムロン株式会社 干渉判定方法、干渉判定システム及びコンピュータプログラム
CN108032333B (zh) * 2017-10-30 2020-06-09 广州明珞汽车装备有限公司 可批量自动检查机器人仿真姿态的方法
KR102418451B1 (ko) * 2017-12-27 2022-07-07 주식회사 한화 로봇 제어 시스템
WO2019139815A1 (en) 2018-01-12 2019-07-18 Duke University Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects
TWI822729B (zh) 2018-02-06 2023-11-21 美商即時機器人股份有限公司 用於儲存一離散環境於一或多個處理器之一機器人之運動規劃及其改良操作之方法及設備
PL3769174T3 (pl) 2018-03-21 2022-10-24 Realtime Robotics, Inc. Planowanie przemieszczania robota do różnych środowisk i zadań oraz jego ulepszone działanie
CN108714894A (zh) * 2018-05-03 2018-10-30 华南理工大学 一种求解双冗余机械臂互相碰撞的动力学方法
EP3784449A1 (en) * 2018-05-30 2021-03-03 Sony Corporation Control apparatus, control method, robot apparatus and program
CN108898676B (zh) * 2018-06-19 2022-05-13 青岛理工大学 一种虚实物体之间碰撞及遮挡检测方法及系统
EP3627250B1 (en) * 2018-09-21 2023-12-06 Tata Consultancy Services Limited Method and system for free space detection in a cluttered environment
CN109558676B (zh) * 2018-11-28 2023-11-10 珠海金山数字网络科技有限公司 一种碰撞检测方法及装置、一种计算设备及存储介质
CN111325070B (zh) * 2018-12-17 2023-12-08 北京京东尚科信息技术有限公司 基于图像的碰撞检测方法和装置
CN109732599B (zh) * 2018-12-29 2020-11-03 深圳市越疆科技有限公司 一种机器人碰撞检测方法、装置、存储介质及机器人
CN109920057B (zh) * 2019-03-06 2022-12-09 珠海金山数字网络科技有限公司 一种视点变换方法及装置、计算设备及存储介质
CN113905855B (zh) 2019-04-17 2023-08-25 实时机器人有限公司 运动规划图生成用户界面、系统、方法和规则
US11634126B2 (en) 2019-06-03 2023-04-25 Realtime Robotics, Inc. Apparatus, methods and articles to facilitate motion planning in environments having dynamic obstacles
CN114466730B (zh) 2019-08-23 2023-05-23 实时机器人有限公司 用于使机器人优化速度同时保持对加速度和加加速度的限制的运动规划
JP7505877B2 (ja) 2019-12-02 2024-06-25 ファナック株式会社 制御システム
CN113001537B (zh) * 2019-12-20 2022-08-02 深圳市优必选科技股份有限公司 机械臂控制方法、机械臂控制装置及终端设备
TW202146189A (zh) 2020-01-22 2021-12-16 美商即時機器人股份有限公司 於多機器人操作環境中之機器人之建置
EP4213123A1 (en) 2020-09-14 2023-07-19 Konica Minolta, Inc. Safety monitoring device, safety monitoring method, and program
US11794107B2 (en) * 2020-12-30 2023-10-24 Activision Publishing, Inc. Systems and methods for improved collision detection in video games
CN112619152A (zh) * 2021-01-05 2021-04-09 网易(杭州)网络有限公司 游戏包围盒的处理方法、装置及电子设备
CN113211495A (zh) * 2021-04-12 2021-08-06 北京航天飞行控制中心 一种机械臂碰撞检测方法、系统、存储介质和机械臂
CN113344303B (zh) * 2021-07-19 2023-05-23 安徽工程大学 一种三维地形下多移动机器人能耗优化的时间窗动态避障方法
CN113580130B (zh) * 2021-07-20 2022-08-30 佛山智能装备技术研究院 六轴机械臂避障控制方法、系统及计算机可读存储介质
CN114310892B (zh) * 2021-12-31 2024-05-03 梅卡曼德(北京)机器人科技有限公司 基于点云数据碰撞检测的物体抓取方法、装置和设备
CN114851202B (zh) * 2022-05-20 2024-05-10 梅卡曼德(北京)机器人科技有限公司 碰撞检测方法、控制方法、抓取系统及计算机存储介质
CN115048824B (zh) * 2022-08-15 2022-12-06 北京华航唯实机器人科技股份有限公司 一种碰撞检测方法、装置及计算机可读介质
CN115952569B (zh) * 2023-03-14 2023-06-16 安世亚太科技股份有限公司 仿真方法、装置、电子设备及计算机可读存储介质
CN116502479B (zh) * 2023-06-29 2023-09-01 之江实验室 一种三维物体在仿真环境中的碰撞检测方法和装置

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4694404A (en) * 1984-01-12 1987-09-15 Key Bank N.A. High-speed image generation of complex solid objects using octree encoding
FR2625345A1 (fr) * 1987-12-24 1989-06-30 Thomson Cgr Procede de visualisation en trois dimensions d'objets codes numeriquement sous forme arborescente et dispositif de mise en oeuvre
US5056031A (en) * 1988-11-12 1991-10-08 Kabushiki Kaisha Toyota Chuo Kenyusho Apparatus for detecting the collision of moving objects
US5347459A (en) * 1993-03-17 1994-09-13 National Research Council Of Canada Real time collision detection
JP3340198B2 (ja) * 1993-08-12 2002-11-05 株式会社東芝 形状復元装置
US5572634A (en) * 1994-10-26 1996-11-05 Silicon Engines, Inc. Method and apparatus for spatial simulation acceleration
US5548694A (en) * 1995-01-31 1996-08-20 Mitsubishi Electric Information Technology Center America, Inc. Collision avoidance system for voxel-based object representation
US5812138A (en) * 1995-12-19 1998-09-22 Cirrus Logic, Inc. Method and apparatus for dynamic object indentification after Z-collision
US5793900A (en) * 1995-12-29 1998-08-11 Stanford University Generating categorical depth maps using passive defocus sensing
US5999187A (en) * 1996-06-28 1999-12-07 Resolution Technologies, Inc. Fly-through computer aided design method and apparatus
US6236405B1 (en) * 1996-07-01 2001-05-22 S3 Graphics Co., Ltd. System and method for mapping textures onto surfaces of computer-generated objects
JP3425760B2 (ja) * 1999-01-07 2003-07-14 富士通株式会社 干渉チェック装置
US7292255B2 (en) * 2000-05-31 2007-11-06 Canon Kabushiki Kaisha Image data acquisition optimisation
GB0120039D0 (en) * 2001-08-16 2001-10-10 Univ London Method for dressing and animating dressed beings
US8072470B2 (en) * 2003-05-29 2011-12-06 Sony Computer Entertainment Inc. System and method for providing a real-time three-dimensional interactive environment
EP1721287A4 (en) * 2004-03-02 2009-07-15 Sarnoff Corp METHOD AND APPARATUS FOR DETECTING PRESENCE
JP4522129B2 (ja) * 2004-03-31 2010-08-11 キヤノン株式会社 画像処理方法および画像処理装置
JP5008572B2 (ja) * 2004-12-21 2012-08-22 キヤノン株式会社 画像処理方法、画像処理装置およびコンピュータ可読媒体
US7663630B2 (en) * 2005-12-08 2010-02-16 Electronics And Telecommunications Research Institute Apparatus and method for processing collision information in graphic system
KR100791381B1 (ko) * 2006-06-01 2008-01-07 삼성전자주식회사 이동 로봇의 원격 조종을 위한 충돌방지 시스템, 장치 및방법
US7928993B2 (en) * 2006-07-28 2011-04-19 Intel Corporation Real-time multi-resolution 3D collision detection using cube-maps
JP5191167B2 (ja) * 2007-06-06 2013-04-24 オリンパスメディカルシステムズ株式会社 医用ガイドシステム
JP2009099082A (ja) * 2007-10-19 2009-05-07 Sony Corp 力学シミュレーション装置及び力学シミュレーション方法、並びにコンピュータ・プログラム
US8472689B2 (en) * 2008-03-04 2013-06-25 Carestream Health, Inc. Method for enhanced voxel resolution in MRI image
CN101393872A (zh) * 2008-11-07 2009-03-25 华中科技大学 一种视觉引导下的拾放装置
JP5073065B2 (ja) * 2009-01-15 2012-11-14 三菱電機株式会社 衝突判定装置および衝突判定プログラム
US8405680B1 (en) * 2010-04-19 2013-03-26 YDreams S.A., A Public Limited Liability Company Various methods and apparatuses for achieving augmented reality
JP2012081577A (ja) * 2010-09-17 2012-04-26 Denso Wave Inc ロボットの移動方向決定方法及びロボットの制御装置
GB2487421A (en) * 2011-01-21 2012-07-25 Imagination Tech Ltd Tile Based Depth Buffer Compression
JP5708196B2 (ja) * 2011-04-21 2015-04-30 セイコーエプソン株式会社 衝突検出システム、ロボットシステム、衝突検出方法及びプログラム
US20130016099A1 (en) * 2011-07-13 2013-01-17 2XL Games, Inc. Digital Rendering Method for Environmental Simulation
TW201308253A (zh) * 2011-08-04 2013-02-16 Univ Nat Taiwan 運動量分析方法及採用此方法之運動量分析裝置
US9116011B2 (en) * 2011-10-21 2015-08-25 Here Global B.V. Three dimensional routing
US9196083B2 (en) * 2012-01-16 2015-11-24 Intel Corporation Time-continuous collision detection using 3D rasterization
US20140002595A1 (en) * 2012-06-29 2014-01-02 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Apparatus, system and method for foreground biased depth map refinement method for dibr view synthesis
JP6046246B2 (ja) * 2012-07-02 2016-12-14 クゥアルコム・インコーポレイテッドQualcomm Incorporated 3dビデオコーディングのための深度マップのイントラコーディング

Also Published As

Publication number Publication date
JP2014021810A (ja) 2014-02-03
CN103568022B (zh) 2017-04-12
US20140025203A1 (en) 2014-01-23
CN103568022A (zh) 2014-02-12

Similar Documents

Publication Publication Date Title
JP6069923B2 (ja) ロボットシステム、ロボット、ロボット制御装置
JP6879464B2 (ja) 干渉判定方法、干渉判定システム及びコンピュータプログラム
US9827675B2 (en) Collision avoidance method, control device, and program
US20200338730A1 (en) Trajectory planning device, trajectory planning method and program
JP5872077B2 (ja) 干渉チェック装置
US10671081B1 (en) Generating and utilizing non-uniform volume measures for voxels in robotics applications
KR20190022435A (ko) 로봇의 장애물 회피 제어 시스템, 방법, 로봇 및 저장매체
WO2013108749A1 (ja) 搬入経路計画システム
JP2018008347A (ja) ロボットシステムおよび動作領域表示方法
JP5361004B2 (ja) 円滑経路生成装置および円滑経路生成方法
US20170197308A1 (en) Teaching data generating device and teaching data-generating method for work robot
US20080034023A1 (en) Contact geometry calculation device, contact geometry calculation method, and computer program product
JP5775279B2 (ja) 経路生成装置
WO2014141928A1 (ja) 搬入経路計画システム
JP2021016922A (ja) 三次元データ生成装置及びロボット制御システム
JP5766936B2 (ja) 3次元環境復元装置、3次元環境復元方法、及びロボット
JP6285849B2 (ja) 行動制御システム、その方法及びプログラム
JP5857803B2 (ja) 産業用機械の干渉判定装置、干渉判定方法、コンピュータプログラムおよび記録媒体
JP2017131990A (ja) 干渉回避方法
JP7347169B2 (ja) 情報提示装置、情報提示方法、及び情報提示プログラム
JP2014238687A (ja) 画像処理装置、ロボット制御システム、ロボット、画像処理方法及び画像処理プログラム
Alemán et al. Autonomous navigation for a holonomic drive robot in an unknown environment using a depth camera
Yu et al. A mixed reality platform for online motion planning of mobile robots via Hololens 2
WO2023007621A1 (ja) シミュレーション装置
WO2024105847A1 (ja) 制御装置、3次元位置計測システム、及びプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20150108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150708

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160422

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160608

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20160609

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20160613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160906

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161005

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: 20161206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161219

R150 Certificate of patent or registration of utility model

Ref document number: 6069923

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150