JPH02224004A - Interference check device for moving body - Google Patents

Interference check device for moving body

Info

Publication number
JPH02224004A
JPH02224004A JP1274748A JP27474889A JPH02224004A JP H02224004 A JPH02224004 A JP H02224004A JP 1274748 A JP1274748 A JP 1274748A JP 27474889 A JP27474889 A JP 27474889A JP H02224004 A JPH02224004 A JP H02224004A
Authority
JP
Japan
Prior art keywords
sphere
interference
spheres
bodies
spherical
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.)
Granted
Application number
JP1274748A
Other languages
Japanese (ja)
Other versions
JP2826138B2 (en
Inventor
Kan Nakano
冠 中野
Minoru Tanaka
稔 田中
Toshiaki Ikeda
利明 池田
Toshitaka Kuno
久野 敏孝
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.)
Toyota Central R&D Labs Inc
Original Assignee
Toyota Central R&D Labs 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26551175&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JPH02224004(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Toyota Central R&D Labs Inc filed Critical Toyota Central R&D Labs Inc
Priority to JP1274748A priority Critical patent/JP2826138B2/en
Priority to GB8925634A priority patent/GB2227106B/en
Publication of JPH02224004A publication Critical patent/JPH02224004A/en
Application granted granted Critical
Publication of JP2826138B2 publication Critical patent/JP2826138B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40479Use graphic display, layout of robot path, obstacles to indicate interference
    • 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/49Nc machine tool, till multiple
    • G05B2219/49145Spheres replace object, check first collision for large spheres, then small

Abstract

PURPOSE:To decrease the number of spherical bodies and simplify hiearachic structure, to improve a modeling speed, and to speed up interference decision making operation by performing modeling by spherical bodies which cover the surfaces of respective bodies and excluding the insides of the bodies from the modeling. CONSTITUTION:A hiearachic spherical body model generating means B performs the modeling wherein the surfaces of the respective bodies are covered hiearachically with the spherical bodies which have plural kinds of radii according to image information showing the surfaces of the respective bodies. A spherical body interference arithmetic means E detects spherical bodies which interfere with each other according to the position of a modeled spherical body regarding two bodies at optional time which are stored in a spherical model storage means C and further detects interfering bodies among spherical bodies, which have small radii and belong to the mutual interfering spherical bodies as to only the spherical bodies which are judged to interfere with each other, hiearachically in order from the spherical body with the large diameter. Then when there is the mutually interfering spherical bodies which have the smallest radius eventually, it is judged that the two bodies interfere with each other, the interference position of the two bodies is found from the positions of the mutually interfering spherical bodies which have the smallest radii, and the arithmetic result is outputted. Consequently, the modeling speed is improved and the interference decision of the object is speeded up.

Description

【発明の詳細な説明】[Detailed description of the invention] 【産業上の利用分野】[Industrial application field]

本発明は、移動物体の干渉を高速且つ高精度で判断する
干渉チェック装置に関し、例えば、教示したロボットの
動作の安全性をグラフィックシミュレータ等によりm認
する装置やロボット動作における物体との干渉をリアル
タイムで判定したり、無人車におけるリアルタイムでの
干渉判定装置等に応用できる。
The present invention relates to an interference checking device that judges interference between moving objects at high speed and with high precision, such as a device that checks the safety of the motion of a taught robot using a graphic simulator or the like, and a device that checks interference with objects during robot motion in real time. It can be applied to real-time collision detection devices for unmanned vehicles.

【従来技術】[Prior art]

従来、例えば、ロボットの干渉判定においては、画面上
で動作径路の各位置でロボットの姿勢を表示してロボッ
トの連続動作を教示したり、プログラムされたロボット
の動作を画面上に連続的に表示するグラフィックシミュ
レータが知られている。 この装置では、ロボットの連続動作が実際の移動速度で
表示されてその動作がシミュレートされるのであるが、
移動するロボツ[アーム間やロボットアームと静止物体
との干渉の有無を高精度且つ高速度で検出することが必
要となっている。 この干渉判定を行う手法は、各種のものが知られている
。 例えば、第1の方法として、特開昭62−43706号
公報に見られるように、ロボット及び作業環境の各部材
を多面体で被覆して、その多面体の射影図形から干渉の
有無を判定する方法、第2の方法として、特開昭60−
99591号公報に見られるように、ロボット及び作業
環境の各部材を線分で表現し、それらの線分間の距離を
演算して干渉の有無を判定する方法、第3の方法として
、ロボ・ノド学会誌6巻1号35真に見られるように、
ロボット又は環境物体の移動位置を時間関数として表現
し、その関数から頂点が面と衝突したり、辺と辺とが衝
突した時に干渉と判定する方法が知られている。 又、第4の方法として、ロボット学会誌5巻3号2I頁
に見られるように、ロボット及び環境物体を大きさの異
なる立方体で階層的に近似して、2つの物体間の各立方
体の包含関係を調べることにより干渉判定を行ったり、
第5の方法として、第6回日本ロボット学会学術講演会
予稿集105頁に見られるように、ロボット及び環境物
体を半径の異なる球体で階層的に近似して、その半径の
異なる球体の包含関係を調べることにより、物体の干渉
判定を行う方法が知られている。
Conventionally, for example, when determining robot collisions, the posture of the robot is displayed at each position of the motion path on the screen to teach the robot's continuous motion, or the programmed robot motion is displayed continuously on the screen. Graphic simulators that do this are known. With this device, the robot's continuous motion is displayed at its actual movement speed and the motion is simulated.
It is necessary to detect interference between moving robot arms or between a robot arm and a stationary object with high precision and high speed. Various methods are known for performing this interference determination. For example, as a first method, as seen in Japanese Patent Application Laid-Open No. 62-43706, each member of the robot and the work environment is covered with a polyhedron, and the presence or absence of interference is determined from the projected figure of the polyhedron; As a second method, JP-A-60-
As seen in Publication No. 99591, there is a method in which each member of the robot and the work environment is expressed as a line segment, and the distance between these line segments is calculated to determine the presence or absence of interference. As seen in the academic journal, Vol. 6, No. 1, 35,
A known method is to express the moving position of a robot or an environmental object as a time function, and use the function to determine that there is interference when a vertex collides with a surface or when edges collide. In addition, as a fourth method, as shown in the Journal of the Robotics Society of Japan, Vol. 5, No. 3, p. 2I, the robot and environmental objects are hierarchically approximated by cubes of different sizes, and each cube is included between two objects. Interference can be determined by examining the relationship,
As a fifth method, as shown in the proceedings of the 6th Annual Conference of the Robotics Society of Japan, page 105, the robot and environmental objects are hierarchically approximated by spheres with different radii, and the inclusion relationship between the spheres with different radii is calculated. A method is known in which interference between objects is determined by examining .

【発明が解決しようとする課題] 上記第1の方法では、例え、ば部材が開立体であり形状
を単なる円柱又は直方体で近似することが困難となるよ
うな場合に精度の高い干渉チェックができないし、第2
の方法では、高速判定が可能であるが、モデル化が単純
すぎて干渉判定の精度が良くないし、第3の方法では、
面の数が多くなると計W量が増大し、処理速度が非常に
遅くなるという問題がある。 又、第4の方法は、所謂、オクトツリーの階層的構造に
よる手法であるが、立方体近似であるため、連続する移
動体を表現するための座標変換が複雑になり時間がかか
るという問題がある。 更に、第5の方法は、この座標変換を単純化するために
、ロボット及び環境物体を半径の異なる球体で階層的に
近似しているのであるが、下位階層の球体を発生させる
方法が上位階層の球体に内接する正多面体を求め、その
正多面体を構成する各面と外接し、その中心が多面体の
重心と一致する球体として求めているため、下位階層の
球体の発生機構が複雑となりモデル化に時間がかかると
いう問題がある。又、球体と球体との重複部分が多くな
ったり、上位階層の球体の外部を内部に包含する下位階
層の球体が発生したり、同一球体が上位階層の異なる2
つの球体に属したり、1階層上位の球体には属するが2
階層以上上位の球体には属さない球体が発生されたりす
るため、モデル化効率が良くなくひいてはモデル化に時
間がかかるという欠点がある。更に、モデル化する対象
物体の形状を表現するのに不必要な物体の内部及び外部
に対して、−様に階層構造の球体が発生されるため球体
の数が多くなり、同様にモデル化効率が良くないという
問題がある。又、精度は最小球の半径に依存し、干渉判
定の演算速度は球体間の干渉判定回数、即ち、球体の階
層化構造に依存する。しかし、各階層の球体の半径比が
用いられる多面体の面数により固定的に決定されること
から、半径比を要求される干渉判定精度に基づいて任意
に設定することができない。従って、階層化構造と最小
球の半径とを任意に変化させることが困難であり、精度
と演算速度との調整が困難となる。 又、ある階層に属する多面体は重なりを生じるが、次の
下位の階層の球体を求める時に、多面体の重なりに関し
ては一切配慮されていないので、無駄に球体が発生され
てしまい、探索速度が低下するという問題がある。 本発明は、上記の課題を解決するために成されたもので
あり、その目的とするところは、物体のモデル化速度を
向上させると共に球体の階層化構造を簡略化することに
より球体間の干渉判定回数を減少させ、物体の干渉判定
を高速且つ精度良く実行することにある。 【課題を解決するための手段及び作用】上記課題を解決
するための発明の構成は、第1図に示すように、 各物体の表面を表す面情報を記憶した面情報記憶手段A
と、面情報に基づいて各物体の表面を各々複数種類の半
径からなる球体により階層的に被覆してモデル化する階
層球体モデル生成手段Bと、生成されたモデル化球体の
位置を記憶する球体モデル記憶手段Cと、移動体に関す
る複数種類の半径のモデル化球体の位置を物体の移動に
応じて更新して球体モデル記憶手段Cに出力する球体位
置更新手段りと、球体モデル記憶手段Cに記憶された任
意時刻の2つの物体に関するモデル化球体の位置に基づ
いて、相互に干渉する球体を検出しその干渉すると判断
された球体同志のみについてその相互に干渉する球体に
属するより半径の小さい球体の中からさらに干渉する球
体を検出するという手順を半径の大きい球体から順に半
径の小さい球体へと階層的に実行し、最終的に相互に干
渉する最小半径の球体が存在するときに2つの物体は干
渉すると判断しその相互に干渉する最小半径の球体の位
置から2つの物体の干渉位置を求め、これらの演算結果
を出力する球体干渉演算手段Eとから成る。 上記面情報記憶手段Aは物体の表面を形成している平面
、曲面に関する情報を記憶する手段であり、例えば、構
成平面や構成白面の関数を記憶した装置である。 階層球体モデル生成手段Bは、上記面情報に基づいて決
定される物体の表面を被覆する球体を発生し、その球体
の位置を生成する手段であり、指定された階層数及び指
定半径の球体にて、上記物体の表面を階層的に被覆して
、物体の表面を階層球体によりモデル化する手段である
。 球体モデル記憶手段Cは生成された各階層の球体の位置
、例えば、中心位置や半径を記憶する手段である。 球体位置更新手段りは物体の移動に応じて各階層の球体
の位置を更新して、球体モデル記憶手段Cに記憶する手
段である。例えば、物体の位置及び姿勢は物体に固定さ
れた座標系の平行移動及び回転移動で表されるが、この
平行移動と回転移動とを同時に1つの行列で表すことが
できる。従って、移動後の各球体の絶対座標系から見た
中心位置は、各物体に固定された座標系で見た中心位置
に上記の変換行列をかけて求めることができる。 球体干渉演算手段Eは物体の移動に際し、物体間の干渉
の有無及びその位置を球体モデル記憶手段Cに記憶され
た各球体の位置から演算する手段である。より具体的に
は、先ず、2つの物体間で最大半径の球体、即ち、最上
位階層の球体が干渉するか否が判定される。この干渉判
定は、例えば、2つの球体の中心間の距離が各球体の半
径の和より小さいか否かにより判定される。そして、干
渉しないと判定された場合には、他の物体間の干渉判定
が行われる。一方、干渉有りと判定されると、その球体
に属する次に半径の小さな球体、即ち、下位階層の球体
に対して、同様に干渉有無の判定が実行される。干渉有
りと判定されると更に、その干渉する球体に属する更に
下位階層の球体に対して干渉判定が順次実行される。一
方、ある階層の球体で干渉する球体が存在しない場合に
は、1つ上位の階層に遡り、その階層で他に干渉する球
体を検出する演算を実行し、干渉する球体が有れば、上
記した手順により更に下位階層の球体について干渉判定
を行い、干渉法が無ければ、更に、上位階層に遡り、同
様に干渉する球体を検出するという演算が実行される。 そして、最終的に相互に干渉する最小半径の球体が存在
するときに2つの物体は干渉すると判断しその相互に干
渉する最小半径の球体の位置から2つの物体の干渉位置
が求められる。
[Problems to be Solved by the Invention] The first method described above cannot perform a highly accurate interference check, for example, when the member is an open solid and it is difficult to approximate the shape with a simple cylinder or rectangular parallelepiped. And the second
With the method, high-speed determination is possible, but the modeling is too simple and the accuracy of interference determination is not good, and with the third method,
There is a problem in that as the number of surfaces increases, the total amount of W increases and the processing speed becomes extremely slow. In addition, the fourth method is a method using a so-called octree hierarchical structure, but because it uses cubic approximation, there is a problem that the coordinate transformation to represent a continuous moving object is complicated and takes time. . Furthermore, in the fifth method, in order to simplify this coordinate transformation, the robot and environmental objects are hierarchically approximated by spheres with different radii. Because we are finding a regular polyhedron that is inscribed in the sphere, circumscribed by each face that makes up the regular polyhedron, and whose center coincides with the center of gravity of the polyhedron, the generation mechanism of lower-level spheres becomes complicated and difficult to model. The problem is that it takes time. In addition, there may be many overlapping parts between spheres, a sphere of a lower hierarchy may contain the outside of a sphere of a higher hierarchy, or the same sphere may overlap two spheres of different upper hierarchy.
It may belong to one sphere, or it may belong to a sphere one level higher, but two
Since spheres that do not belong to spheres higher in the hierarchy or higher may be generated, the modeling efficiency is poor and modeling takes time. Furthermore, since spheres with a hierarchical structure are generated for the inside and outside of the object that are unnecessary to express the shape of the target object to be modeled, the number of spheres increases, which also reduces modeling efficiency. The problem is that it is not good. Further, the accuracy depends on the radius of the smallest sphere, and the calculation speed of collision determination depends on the number of collision determinations between spheres, that is, the hierarchical structure of the spheres. However, since the radius ratio of the spheres in each layer is fixedly determined by the number of faces of the polyhedron used, the radius ratio cannot be arbitrarily set based on the required interference determination accuracy. Therefore, it is difficult to arbitrarily change the hierarchical structure and the radius of the minimum sphere, making it difficult to adjust accuracy and calculation speed. Also, polyhedra belonging to a certain layer overlap, but when searching for spheres in the next lower layer, no consideration is given to the overlap of polyhedra, so spheres are generated unnecessarily and the search speed decreases. There is a problem. The present invention has been made to solve the above problems, and its purpose is to improve the modeling speed of objects and to simplify the hierarchical structure of spheres, thereby reducing the interference between spheres. The object of the present invention is to reduce the number of times of determination and to perform collision determination of objects at high speed and with high accuracy. [Means and operations for solving the problems] As shown in FIG. 1, the structure of the invention for solving the above problems is as follows: surface information storage means A that stores surface information representing the surface of each object;
a hierarchical sphere model generation means B that hierarchically covers and models the surface of each object with spheres each having a plurality of types of radii based on the surface information; and a sphere that stores the position of the generated modeling sphere. a model storage means C; a sphere position update means for updating the position of a modeling sphere with a plurality of radii related to a moving object according to the movement of the object and outputting it to the sphere model storage means C; Based on the memorized positions of modeling spheres regarding two objects at arbitrary times, spheres that interfere with each other are detected, and for only those spheres that are determined to interfere, a sphere with a smaller radius that belongs to the spheres that interfere with each other. The procedure of detecting spheres that interfere with each other is executed hierarchically from the sphere with the largest radius to the sphere with the smallest radius, and finally when there is a sphere with the smallest radius that interferes with each other, the two objects consists of a spherical interference calculation means E which determines the interference position of two objects from the position of the spheres with the minimum radius that interfere with each other, and outputs the results of these calculations. The surface information storage means A is a means for storing information regarding planes and curved surfaces forming the surface of an object, and is, for example, a device that stores functions of constituent planes and constituent white surfaces. Hierarchical sphere model generation means B is means for generating a sphere that covers the surface of the object determined based on the surface information, and for generating the position of the sphere. This method covers the surface of the object in a hierarchical manner and models the surface of the object using hierarchical spheres. The spherical model storage means C is a means for storing the positions of the generated spheres in each hierarchy, such as the center position and radius. The sphere position updating means is means for updating the position of the sphere in each layer according to the movement of the object and storing it in the sphere model storage means C. For example, the position and orientation of an object are expressed by parallel and rotational movements of a coordinate system fixed to the object, and these parallel and rotational movements can be expressed simultaneously by one matrix. Therefore, the center position of each sphere after movement as seen from the absolute coordinate system can be found by multiplying the center position as seen from the coordinate system fixed to each object by the above transformation matrix. The spherical interference calculation means E is a means for calculating the presence or absence of interference between objects and its position from the position of each sphere stored in the spherical model storage means C when the objects move. More specifically, first, it is determined whether or not a sphere with the largest radius, that is, a sphere in the highest hierarchy, interferes between two objects. This interference determination is made, for example, by determining whether the distance between the centers of two spheres is smaller than the sum of the radii of each sphere. If it is determined that there is no interference, interference determination between other objects is performed. On the other hand, if it is determined that there is interference, the determination of the presence or absence of interference is similarly executed for the sphere with the next smallest radius that belongs to that sphere, that is, the sphere in the lower hierarchy. When it is determined that there is interference, interference determination is sequentially executed for spheres in lower hierarchies that belong to the interfering sphere. On the other hand, if there are no interfering spheres in a certain hierarchy, go back to the next higher hierarchy and perform calculations to detect other interfering spheres in that hierarchy, and if there are interfering spheres, the above According to the above procedure, interference determination is performed for spheres in a lower hierarchy, and if there is no interference method, a calculation is executed to go back to the upper hierarchy and detect spheres that interfere in the same way. Finally, it is determined that the two objects will interfere when there is a sphere with the minimum radius that interferes with each other, and the interference position of the two objects is determined from the position of the sphere with the minimum radius that interferes with each other.

【実施例】【Example】

以下、本発明を具体的な実施例に基づいて説明する。 第1実施例 本第1実施例は、ロボットや作業環境に関する形状や位
置のデータを入力しC、ロボット及び作業環境をグラフ
ィックデイスプレィ上に表示し、ロボットの動作のシミ
3レーシヨンを行う場合において、ロボット間又はロボ
ットと物体間の干渉チェックを行う装置である。 第2図に示すように、本装置はコンピュータ装置で構成
されており、論理演算等を実行するCPU1とその処理
手順を示すプログラムを記憶したROM2と各種のデー
タを記憶するRAM3とロボットや作業環境の位置及び
形状データを入力したりシミュレート開始指令等の各種
の指令を与えるデ・−タ入力装@4と経時変化するロボ
ットの姿勢や作業環境を微小サンプリングタイム毎に表
示するグラフィックデイスプレィ5とデータ入力装置4
及グラフイツクデイスプレイ5をCI’U1と接続する
ための入出力インタフエース6.7とから構成されてい
る。又、RAM3にはロボットアームや作業環境の各構
成部材毎にそれらの形状を表現する面や頂点、稜線の情
報を記憶する形状データメモリ31と、各構成部材の表
面を階層化したときの各球体の中心位置と半径及び階層
に関する情報を記憶する球体モデルメモリ32と、ロボ
ットの現在のジヨイント座標を記憶する関節角メモリ3
3と、ロボットや作業環境の各構成5部材毎にそられの
現在の位置を記憶する部材位置メモリ34とが形成され
ている。 次に、本装置の作用をCPUIの処理手順を示した第3
図のフローチャートに従って説明する。 ステップ100では、まずロボットや作業環境の各構成
部材毎にそれぞれの形状を生成するためのデータがデー
タ入力装置4から入力される。この入力により、各構成
部材の形状を表す頂点、稜線、面等のデータが演算され
る。これらの形状データは形状データメモリ31に記憶
される。 次に、ステップ102では、ロボットや作業環境の各構
成部材に関して、それらの拘束関係や絶対座標での位置
のデータがデータ入力装置4から入力される。この入力
データが入力されるに連れてグラフィックデイスプレィ
5にロボットや作業環境を表示するようにしており、入
力データの誤りの検出やデータ入力が容易に実行される
ように構成されている。そして、ロボット及び作業環境
の拘束関係や位置のデー・夕は部材位置メモリ34に記
憶される。 ステップ102での位置データの入力が完了すると、ス
テップ】04でデータ入力装置4により干渉の対象とな
る1】ボット及び作業環境を指定するデータが入力され
る。 次に、ステップ10Gにぢいて、ステップ104で指定
されたロボットあるいは作業環境について各構成部材毎
にその構成部材の各表面を大、中、小の3稲類の球体に
より階層的に被覆して、表面の階層的な球体モデル化が
行われる。この表面の球体モデル化は次のように実行さ
れる。 第4図に示すように、1つの構成部材11を内°包する
直方体形状の外包体12をその構成部材11の形状デー
タメモリ31から参照した面情報データより発生する。 更に、その外包体12に外接する球体を考え、その球体
を大球14とする。このように、最上位階層の大球工4
は3、構成部材IIを内包する球体として発生される。 そして、構成部材11にとられた基準座標から見た大球
14の中心位置とその半径が球体モデルメモリ32に記
憶される。 次に、第5図(a)に示すように、外包体12を中球1
5の半径rI11に対l−で、1辺が6m=ffrn+
  の立法体の複数のセル17に分割する。外包体12
の各辺の長さは必ずしもセル17の辺の長さの倍数とは
ならないので、各セル17はオーバーラツプさせて配置
される。次に、第5図(b)に示すように、各セル17
に外接する球体20を発生させ、ぞの球体20のうち、
構成部材11の表面13七交差する球体のみを抽出し、
その抽出された球体を中球15とする。そして、構成部
材11にとられた基準座標から見た各中球15の中心位
置が球体モデルメ(す32に記憶される。 次に、第6図(a)に示すように、中球15に内接する
セル17に注目し、その1つのセル17に対1.で、更
に、小球の半径をrsとして、−辺をβS=ffrsと
する立方体のセル18に分割する。このとき各セル18
は中球の発生時と同様にオーバーラツプするように配置
されている。次に、この各セル18に外接する各球体2
1を発生させ、構成部材110表面13と交差する球体
のみを抽出し、その抽出された球体を小球16とする。 そして、構成部材11にとられた基準座標から見た各小
球16の中心位置が球体モデルメモリ32に記憶される
。 このようにして、第7図に示すように、構成部材11は
、全体を外包する大球14と構成部材11の表面13を
含むそれより小さい中球15.更に小さい小球16の半
径の異なる3種類の球体により階層的にモデル化される
。即ち、第8図によると、全ての小球は何れかの1つの
中球にのみ属し、中球の全ては大球に属するというよう
にツリー状に階層化されることが分る。 尚、小球16の半径rsは、干渉判定の精度を考慮して
任意に設定される。次に中球15の半径「mは、大球の
半径rlと小球の半径rsとから次式%式% により自動的に求める。本式によれば、小球と中球、中
球と大球との体積比を等しくできる。このことにより干
渉判定時の探索に効率の良い階層構造が得られる。 又、例外として、構成部材11の外寸が小さいため、大
球14の径が与えられた小球16の径より小さくなる場
合は小球16の生成は行わず、大球14のみのモデルと
する。 以上のように各構成部材の階層的球体モデル化が完了す
ると、処理はステップ108へ移行して、ロボットの動
作指令をデータ入力装置4から入力する。次に、ステッ
プ110へ移行して、補間点に対する微小移動動作に対
応して、微小移動後のロボットのジヨイント座標、即ち
、関節角の演算を行い、その関節角データは関節角メモ
リ33に記憶される。次に、関節角の演算が完了すると
、ステップ112へ移行して、各構成部材にとられた基
準座標系と絶対座標系とを関係づける変換行列Tが、そ
の時の関節角から演算される。上記の変換行列Tは、ロ
ボット或いは作業環境を構成する各構成部材にとられた
基準座標の絶対座標から見た位置及び姿勢を3X4の行
列で表したものである。そして、各構成部材にとられた
基準座標から見た各球体の中心位置を表すベクトルをP
relとすると、絶対座標から見た各球体の中心位置を
表すベクトルPabsは次式 により求められる。ロボットなど各構成部材が動く物体
については、動作するたびに各関節角から変換行列Tを
計算し、構成部材をモデル化する全ての球体の中心位置
の絶対座標を更新する必要がある。但し、この絶対座標
の更新については、計算の効率化を図るため、干渉チェ
ックの対象となる球体についてのみ行っても良い。 このように、球体モデルメモリ32には、各構成部材に
とられた基準座標から見た各球体の中心位置Ptelと
、現在時刻における各球体の絶対座標から見た中心位置
Pabsとが記憶されていることになる。 次に、ステップ114へ移行して、以下の手順により干
渉チェックの演算が実行される。 ステップ114にて、大球、中球、小球の順で球体同士
の干渉チェックを階層的に行い、ステップ116にて、
最下位階層の球体(小球)同士で干渉部と判定された場
合に、ステップ118へ移行して、干渉の発生及び干渉
部位をその相互に干渉する小球の中心位置から求めて表
示すると共に、ステップ120にて、干渉状態にあるロ
ボットと作業環境との表示が行われ、本プログラムを終
了する。 次に、ステップ114における、大球、中球、小球によ
る階層的なチェックの手順を以下に示す。 5tepl、  第9図(a)に示すように、大球14
a、 14b同士のチェックを行い、干渉するものが有
れば5tep2.を実行する。なければチェック終了と
する。 従って、まず、各構成部材がある程度接近するまでは、
大球同士の干渉判定となり、演算時間は極めて短い。 5tep2.  第9図ら)に示すように、1つの大球
14aと、相手の大球14bに含まれる中球15b1〜
15bnとの干渉チェックを実行し、干渉する中球15
bl。 15b2.15b3を抽出する。又、逆に、大球14b
と相手の大球14aに含まれる中球15aI〜15an
との干渉チェックを実行し、干渉する中球15a1.1
5a2を抽出する。干渉する中球が1つもなければ、2
つの構成部材は干渉しないと判断し、演算を中断する。 5tep3.  第9図ce>に示すように、抽出され
た中球15bL 15b2.15h3.15a1.15
a2同士の干渉チェックを行い、相互に干渉する中球1
5bi、 15b2.15alを抽出し、3tep4を
実行する。又、相互に干渉する中球が存在しない場合に
は、2つの構成部材は干渉しないと判断して、チェック
演算を中断する。 5tep4.  第9図(d)に示すように、干渉する
1つの中球15b2と、相手の中球15a1に含まれる
小球16all〜16aly+ +との干渉チェックを
行い、干渉する小球16all、 16a12を抽出す
る。そして、逆に、干渉する1つの中球15a1と、相
手の中球15b2に含まれる小球16b21〜16b2
n*のなかから干渉する小球が抽出され、次の5tep
5を実行する。また、干渉する小球が存在しない場合に
は、中球15 b 1と、相手の中球15a1に属する
小球16all〜16aln 、との干渉判定が同様に
実行される。干渉する小球が検出されない場合には、相
互に干渉する他の中球について同様に実行し、相互に干
渉する中球が存在しなくなると、2つの構成部材は干渉
しないと判定される。 5tep5.  第9図(e)に示すように、抽出され
た小球16all、 16a12.16b21.16b
22.16b23同士のチェックを行い、相互に干渉す
る小球16a11.16b21を抽出する。そして、こ
の場合には、2つの構成部材は小球16a1.1.16
b21の部位で干渉すると判断する。 又、相互に干渉する小球が存在しない場合には、相互に
干渉する他の中球の抽出5tepへ戻ることになる。 結局、最終的に、最下位階層の小球同士の干渉が検出さ
れた時に、干渉有りと判定し、その小球の位置を干渉部
位と判断する。小球同士の干渉が存在しない場合には、
上位階層の他の相互に干渉する中球に対する処理が実行
され、その相互に干渉する中球が存在しない場合には、
最終的に、干渉無しと判定される。従って、第8図に示
すツリー構造を干渉の可能性のある枝路に沿って、探索
していくことになり、−様に全ての小球同士の干渉を同
時に判定するより、数段、干渉判定の時間が短くなる。 尚、球体の干渉判定は、二つの球の半径をそれぞれrl
+ r、、中心位置をp、、 p、とするとき、次式%
式% を満足するか否かによって判定さ、れる。上式を満足す
れば、その2つの球体は干渉するきする。 以」二のような、大球、中球、小球の階層的なチェック
により、干渉発生部を効率良く絞り込み、簡易且つ高速
の干渉チェックを行うことができる。 尚、ステップ116にて、最下位階層の球体で干渉が発
生しないと判定されると、その構成部材間での干渉が発
生してないのであるから、ステップ122へ移行して、
全ての構成部材間の組合せに対しで干渉チェックの演算
が実行されたか否かが判定され、全ての部材の組合せに
ついて演算が完了していない場合には、ステップ114
へ戻り、その構成部材間での干渉チェックが同様に実行
される。 又、全ての構成部材の組合せについて干渉チェック演算
が完了した場合には、ステップ124へ移行して全ての
指定された物体について干渉チェック演算が完了したか
否が判定され、完了していない場合には、他の物体間で
の干渉チェック判定が同様に実行される。 ステップ124にて、全ての指定された物体の組合せに
ついて干渉チェック演算が完了したと判定された場合に
は、ステップ126へ移行して、関節角メモリ33に記
憶されているその時の関節角からロボットの姿勢が演W
され、その姿勢でロボットを表示すると共に作業環境の
表示が行われる。次に、ステップ128へ移行して、全
ての移動動作が完了したか否が判定される。移動未完了
の場合には、ステップ1.10へ戻り次の移動点に対し
上記の干渉判定処理が繰り返し実行される。又、移動完
了と判定されると、本プログラムは終了する。 以、−ヒ説明したように、本発明に係る装置は、要請さ
れる精度と演算速度との両条件を容易に満足させること
ができるので、例えばロボットのラフ・モーション時に
おける高速干渉チェックを行う場合に特に有効である。 又、本発明の装置はいかなる形状の部材も同じ精度でモ
デル化できる他、実ロボットにもオフラインシミュレー
タにも適用可能な汎用性の高い装置である。 第2実施例 本第2実施例は、物体の大きさや最小球の半径等を考慮
し、干渉が発生する部位の探索効率が最適となるように
球体モデルの階層数および各階層の球の半径を自動的に
設定するものである。以下に前記第1実施例との相違点
のみについて説明する。 階層球体モデル生成手段Bにおいて、物体を内包する最
大法の半径r5、干渉チェックの精度を決定する最小球
の半径r7および下位の球との半径比ρ1を与えること
により、階層の深さ(階層数)nと各階層での球の半径
rlを、夫々次の(1)、(2)式で算出する。 log  ρr 但し、nは四捨五入し整数とする。 但し、i工1,2・・・・・n ここで、(1)式の導出過程を示す。 各階層の球の半径をriとすると、下位の球(半径r+
++)との体積比ρ、は(3)式で表される。 ρ9が各階層で一定とすると、最大法の半径r1と最小
球の半径r。との関係は(4)式で表される。 ここで、上位・下位の球の半径比をρ、とすると、(3
)式よりρ9=ρrsであるので、(4)式は(5)式
のように表される。 r、  =r%、  ρ、!(a−11、、、、(5)
(5)式の両辺の対数をとることにより、(1)式が得
られる。 また、前記(3)式は(5)式よりr 、 @ =r 
、 @・p、 8 (@ −1)の関係があるから両式
より導出される。 上述においては、上位・下位の球の体積比pvを一定、
すなわち上位の球内に一定数の下位の球を含むという関
係を規定することにより、各階層において各法が有する
下位の球の数を全体にわたって均一化できるので、最大
法から最小球に至る階層数および各階層にふける球の数
を探索効率上最適に設定できる。 さらに、上位・下位の球の面積比 ρs = (r+/rtや、)″を一定としても、同様
に上位・下位の球の半径比ρ1一定の関係に帰着される
ことはいうまでもない。 なお、半径比p、は物体の大きさ、形状に応じて設定さ
れるものであるが、本実施例では約2としている。 上述の如く決定された階層数nおよび各階層での球半径
r1.を用いて、物体の球体モデルを次のよう生成する
。 ステップ1:物体を内包する直方体Rec 1とその直
方体Rac 1を内包する球体Sphを生成する。 (階層レベル:に=l) ステップ2:階層レベルをに=に+1とし、直方体Re
c k−1を半径r+gの球に内接する立方体セル(す
なわち−辺が72” r bの立方体)で分割する。 ここで、各立方体セルは、直方体Rec k−1の各辺
と各立方体の辺とを一致するように配置するので、第1
0図(a)においてハツチング部で示すように、多くの
場合各室方体セルは夫々隣接セルとオーバラップする。 このオーバラップ部は、後述するように削除して直方体
セルReck、jとして再構成し、全てのセルN=1.
2・・・・・・・・)についてステップ3を実行する。 ステップ3:直方体セルRack、jを包む球が物体の
表面と交わっているかどうかを調べる。交わっている場
合はその球を球体モデルのデータに加え、kin (す
なわち、階層レベルkが最下層レベルでない)ならば、
直方体Rec k+1について更にステップ2を実行す
る。 ここで、立方体セルのオーバラップ部の削除について説
明する。 上述のように各階層レベルにおいて、下位法(すなわち
下位セル)が生成される順に優先的にオーバラップ部を
加えていき、順序が後になるセルについてはオーバラッ
プ部を除いた直方体セルとしで定義するものである。す
なわち、第10図(b)にふいて立方体セルRee k
−1を半径r1の9つの球Sph k、1〜Sph k
、9により各直方体セルReck、 1〜Rec k、
 9に分割する場合、最初の球5phk、1に内接する
ように立方体→=ルReck、1を決め、次の球5ph
k、2に対してはSph k、2に内接する立方体にお
いて前記16ck、1とのオーバラップ部を除く部分を
直方体セルReck、2と定義する。以下、5phk、
3〜5phk、9に対し、順次同様の操作を行って、夫
々オーバラップ部のない各直方体セルRec k、1 
=Rec k、9を定義する。次に、下位の球Spb 
k+l、iを生成する場合は、前記各直方体セルRec
k、1〜Rec k+ 9を前述と同様に分割するので
、オーバラップしていた部分で生成される球5phk+
1. iの重複はなくなり、球データ数を必要最小限に
減らすことができる。こうして、物体の表面を表現する
(モデル化)するに際し、各階層での球の数を必要最小
限にすることができるので、干渉チエックの際の探索効
率が低下することがない。 次に、と記のように生成された物体X、Yの夫々の階層
数が”WIrnVである階層球対モデルに対し1、球体
干渉演算手段Bにおいて階層的に干渉チユブラする再帰
的アルゴリズムを以下に示す。このアルゴリズムは、前
記階層数が等しくない(nx≠む)場合にも適用できる
が、基本的には前記第1実施例の場合と同じである。な
お、以下の各ステップにおいてr true/fals
eを返す」とは、一つ前のステップにtrue/f a
 Iseを返すことを意味する。 ステップ1:二つの物体X、Yの各最上位(階層レベル
に−1)の球について、夫々の球データに干渉の可能性
を表すマークを付け(フラグに1を立てる)ステップ2
を実行する。ステップ2で真(true)という結果が
得られた場合は、物体XとYは互いに干渉しているもの
とする。そうでない場合(偽(false)という結果
が得られた場合)は、物体XとYは互いに干渉していな
いものとする。 ステップ2:物体X、Yに夫々属するチェック対象とな
る球の全ての組合せについてステップ3を実行する。ス
テップ3がtrueならばtrueを返す5゜また、ス
テップ3でtruet!::なる組合せが一つも存在し
ない場合はfalseを返す、。 ステップ3ニーつの組合せの夫々物体X、Yに属す、各
球データのどちらにも干渉可能性を示すマークが付いて
いるならば、それら球同士の干渉チェックを行う。そう
でなければfalseを返す。上記チェックの結果、球
同士が干渉している場合は、その二つの球についてステ
ップ4を実行する。干渉していなi:jればfalse
を返ず。また、ステップ4の結果がtrueならばtr
ueを、falseならばfalseを返す。 ステップ4:二つの球が共に最下位階層(口、。 ny)であれば、物体XとYは互いに干渉しているもの
と判定しtrueを返す。そうでない場合、物体X、Y
のどちらか一方に属する球のみが最下位階層ならばステ
ップ5を、また、二つの球が共に最下位階層でない場合
は、ステップ6を夫々実行する。ステップ5およびステ
ップ6の夫々の結果がtrueならばtrueを、fa
lseならばfalseを返す。 ステップ5:物体X、Yの一方に属する最下位階層の球
と、他方の物体に属する最下位でない階層の球の1階層
下の階層の球との全ての組合せについて球同士の干渉チ
ェックを行う。干渉が有る場合は、ステップ4を実行す
る。干渉有の球が一つもなければfalseを返す。ス
テップ4の結果がtrueならばtrueを、fals
eならばfalseを返す。 なお、ここでマークを全てクリヤ(フラグを0にする)
することによりセットし、次にまた物体間の干渉チェッ
クをする際に、ステップ1から直ちに始められるように
しておく。 ステップ6:物体Xに属する一つの球と、物体Yに職す
る一つの球の1階層下の階層の複数の球との全ての組合
せについて、球同士の干渉チエ−1lりを行う。干渉が
発生している場合は、前記物体Yに属する一つの球の1
階層下の階層の球データにマークを付ける。マークの付
いた球が一つも存在しない場合はfalseを返す。同
様の処理を、物体Yに属する一つの球と、物体Xに属す
る一つの球の1階層下の階層の複数の球との全ての組合
せについても行う。このようにして、物体X側の球およ
び物体Y側の球夫々について、階層のレベルを徐々に下
げて上位階層の球との干渉の可能性のある球を選び出す
。そして、マークの付いた球があれば、ステップ2を全
ての組合せについて実行する。ステップ2の結果がtr
ueならばtrueを、falseならばfalseを
返す。なお、ここでステップ5と同様に、マークを全て
クリヤ(フラグを0にする)する。 次に、上記アルゴリズムに従って干渉判定を行うための
CPt1lの処理手順を第12図(a)、(b)に基づ
いて説明する。 (a)階層化されたX球とY球との階層数が同一である
場合。 ステップ200において、物体Xの現探索階層iが1に
、物体Yの現探索階層jが1の最上位階層に初期設定さ
れ、最上位球の干渉フラグがオンとされる。最上位球の
干渉フラグをオンとすることで、下位階層への球対の探
索が開始される。次に、ステップ202にふいて、現探
索階層(i、 j>において、干渉フラグが共にオンの
全球対の探索が終了したか否かが判定される。判定結果
がN口の場合には、ステップ204以下のステップが実
行され、判定結果がYESの場合には、ステップ250
以下のステップが実行される。最上位球に関する最初の
実行時には、全球対の探索が終了していないのであるか
ら、ステップ2020判定結果は、当然に、NOとなる
。 ステップ204では、干渉フラグがオンの球であって、
階層iに属する1つのX球と、階層jに属する1つのY
球とが選択され、未探索の1つの球対(iX、jY)が
発生される。次のステップ206では、ステップ204
で発生された球対(iL jY)の干渉演算が実行され
、次のステップ208で2つの球iXとjYは干渉する
か否かが判定される。尚、干渉演算は、第1実施例で示
したように、2つの球の中心間の距離がその2つの球の
半径の和よりも小さいか否かによって判定される。 次に、ステップ210で、球対(iX、 jY)は共に
最下位階層に存在するか否かが判定され、判定結果がN
Oの場合には、ステップ212へ移行する。ステップ2
12では、球対(iX、 jY)の一方の球は最下位階
層に存在するか否かが判定され、判定結果がNOの場合
には、ステップ214へ移行する。 ステップ214では、球iXと、球jYに属する1階層
下の下位球の全てに対して干渉判定が行われる。 そして、干渉する場合には、その球jYの下位球の干渉
フラグがオンとされる。次に、ステップ216へ移行し
て、ステップ214の干渉判定の結果、球」Yの下位球
のうち少なくとも1球が、球iXと干渉しているか否か
が判定され、判定結果がYESの場合には、ステップ2
18が実行される。 ステップ218では、ステップ214と同様にして、球
jYと、球iXに属する1階層下の下位球の全てに対し
て干渉判定が行われる。そして、干渉する場合には、そ
の球iXの下位球の干渉フラグがオンとされる。次に、
ステップ220へ移行して、ステップ218の干渉判定
の結果、球iXの下位球のうち少なくとも1球が、球j
Yと干渉しているか否かが判定され、判定結果がYES
の場合には、ステップ222が実行される。 次に、ステップ222において、現探索階層(i、j)
における次の探索球対の選択が可能なように、現探索球
対(iX、 jY)が領域D(i、j)に記憶される。 又、現探索階層(i、j)へ復帰後の処理の継続に必要
な他のパラメータもスタックされる。 次に、ステップ224において、現探索階層(i、 j
)が、それぞれ、1階層下げられる。 尚、現探索階層(i、 j)は、注目している球対(i
X、jY)の存在する階層として定義される。即ち、親
疎iXと、親疎jYに属する1階層下の下位球との干渉
演算が実行されている場合の現探索階層(i、 Dは、
親疎iX、 jYの属する階層として定義される。 又、現探索球対(iX、 jY)とは、注目されている
親球iXと親疎jYとの球対として定義される。 このように、ステップ222.224にて、復帰のため
のスタック処理と現探索階層の更新処理が完了すると、
ステップ202へ戻り、現探索階層が次の下位階層とな
った状態で、上述の処理が繰り返される。 と記のステップ202からステップ224が分岐するこ
となく繰り返されると、干渉球対を探索する探索枝は、
X球、Y球共に、最短経路で下位階層へ伸びて行く。 尚、上記のステップ202からステップ224のルーチ
ンの中に、判断結果により処理ステップを分岐するステ
ップが含まれているが、分岐されることにより、探索枝
は、上位階層に戻りその上位階層で水平方向に伸びて又
下位階層に伸びるというようにして進行して行く。 上記の分岐ステップのうち、ステップ208で、球対(
iX、 jY)が干渉しないと判定されると、ステップ
202へ戻り、ステップ204において、干渉フラグが
オンに設定された球であって、現探索階層(i、j)に
属する他の球対(iX、 jY)が発生される。 そして、ステップ206以下において、上述したように
、同様にその球対(iX、jYンの干渉が判定され、干
渉する場合には、親疎iXと、親疎jYに属する下位の
子球との干渉判定と、親疎jYと、親疎jXに属する下
位の子球との干渉判定とが実行され、その干渉する子球
の干渉フラグがオンとされる。また、ステップ216で
、親疎jYに属する親疎1xと干渉する子球が存在しな
いと判定された場合、又は、ステップ220で、親疎j
Xに属する親疎iYと干渉する子球が存在しないと判定
された場合には、その親疎iXと親疎jYとは本来干渉
しないのであるから、その球対(iX、 jY)から下
位階層へ、向けて、探索枝を伸ばす必要がない。したが
って、この場合には、ステップ202へ戻り、続くステ
ップ204で現探索階層(i、 j)に属する他の球対
(iX、 jY)が生成され、ステップ206以下の処
理により、その球対(iX、 jY)から探索枝が伸ば
される。 又、ステップ202で現探索階層ci、 j)に属する
探索フラグオンの球対の全てが探索されたと判定された
場合には、ステップ250へ移行する。 ステップ250では、その現探索階層(i、 j)が最
上位階Fl (1,1>であるか否かが判定される。判
定結果がNOの場合には、ステップ252へ移行して、
現探索階層(i、j)に属する探索の対象となった全球
対は干渉し7ないのであるから、その全球対を構成する
球の千沙フラグがオフとされる。 そして、ステップ254へ移行して、現探索階層(i、
j)が1階層上にあげられる。これにより探索枝は上記
階層に戻ることになる。 探、索枝がある上位階層から下位階層へ伸びるときに、
ステップ222でその上位階層の現探索球対等のデータ
が記憶されたが、ステップ256では、下位階層からそ
の上位階層へ戻る時に、その上位階層での現探索球対等
のデータが復元される。従って、ステップ202へ戻る
と、その上位階層において、次の未探索の球対から、干
渉域の探索が継続されることになる。 一方、ステップ250において、現探索階層ci、 j
)が最上位階層と判定された場合には、最上位球が干渉
しないことを意味している。従って、この場合は、ステ
ップ258へ移行して、物体Xと物体Yとは干渉しない
という結論を出すことになる。 これに対し、干渉域の探索が進行する過程において、ス
テップ210において、ステップ20gで干渉すると判
定された現探索球対(iX、 jY)の球IxL球jY
とが共に最下位階層であると判定された場合には、物体
X止物体Yとはその球対(iX、 jY)の存在する部
分で干渉していると判定することができる。よって、こ
の場合には、ステップ226へ移行して、2物体は干渉
するという結論を出すことができる。 (ロ)階層化されたX球とY球との階層数が異なる場合
。 現慄索球対(iX、 jY)のいずれか一方の球が、最
下位階層になるまでは、上記したステップ200〜22
4及びステップ250〜258が実行される。 上記の処理過程において、ステップ212で、現探索球
対(iX、 jY)の一方の球が最下位階層であると判
定されると、ステップ280以下が実行される3゜ステ
ップ280では、現探索球対(iX、jY)のうち、最
下位階層の球をL1相手球をMとするとき、球りと、相
手球闘に属する1階層下の下位法、即ち、子球のうち1
つの球kM(kは子球によって変化する変数)が選択さ
れ、未探索球対(L、 kM)が発生される。そして、
次のステップ282で、その球対(L、 kM)の干渉
演算が実行され、次のステップ284で、その球対(L
、 kM)は干渉するか否かが判定される。 判定結果がYBSの場合には、ステップ286へ移行し
て、将来、親疎りと親疎Mの存在する階層として定義さ
れる現探索階層(i、 j)に復帰する場合に、継続し
てその階層の干渉法の探索が実行されるように、親疎り
と親疎鷺との球対で定義される現探索球対(iX、 j
Y) (=(L、 M)) カ領域D(i、j)l:記
憶サレる。又、その他の復帰に必要なパラメータがスタ
ックされる。 次に、ステップ288において、親疎の存在する現探索
階層(i、j)が1階層下げられる。この時、球iXが
最下位階層に存在する場合には、Y球の階層jが1階層
下げられる。これに対し、球iYが最下位階層に存在す
る場合には、X球の階層iが1階層下げられる。 次に、ステップ290へ移行して、現在の球りと子球k
Mが、次の干渉法の探索過程における新しい親疎とみな
される。このために、親疎の球対で定義される現探索球
対(iX、 jY)が球対(L、 kM)として再定義
される。そして、ステップ210へ戻り、次の干渉法の
探索が進行される。 このようにして、一方の球が最下位階層に属する場合に
は、他方の球だけが、下位階層に向かって探索される。 又、ステップ284で、球対(L、 kM)は非干渉と
判定されると、ステップ292へ移行して、子球kMは
親疎Mに属する最後の球か否かが判定される。判定結果
がNOの場合には、ステップ280へ戻り、親疎賛に属
する他の子球kMが選択される。そして、ステップ28
2以下で、上述と同様に、球対(L、 kM)の干渉判
定が実行される。 ステップ292で、子球kMは親疎Mに属する最後の球
であると判定された場合には、結果的に、親疎りと親疎
賛とは非干渉であることを意味するので、現探索球対(
iX、 jY)を変更する必要がある。 ステップ294はそのために存在する。 ステップ294では、現探索階層(i、 j)において
、X球の階層iとY球の階層jとが等しいか否かが判定
される。判定結果がYESの場合には、同一階層に属す
る他の球対を発生すればよいので、ステップ202へ戻
る。 ステップ294の判定結果がNOの場合は、現探索球対
(iX、 jY)が、親疎りと、親疎Mの属する1階層
上の親疎との球対に戻され、干渉法の探索はその状態か
ら継続される必要がある。このために、次のステップ2
96で、現探索階層(i、j)が1階層上げられる。尚
、この場合、球iXが最下位階層に存在する場合には、
Y球の階層jが1階層上げられる。これに対し、球iY
が最下位階層に存在する場合には、X球の階層iが1階
層上げられる。又、ステップ298で、更新された現探
索階層(i、 j)において、干渉法の探索を行ってい
た最後の探索球対が現探索球対(iX、jY)として復
元される。尚、その球対は、以前に実行されたステップ
286において、領域D(i、j)に記憶されている値
である。 そして、ステップ210へ戻り、ステップ212でYE
Sと判定され、ステップ280に移行する。そして、ス
テップ280で、現探索球対(iX、jY)を親疎とし
て、次の新しい未探索の球対(L、 kM)が発生され
、その球対に対して干渉判定が行われる。 以上、説明したようにして、干渉する可能性のある球に
ついてのみ、下位階層に向けて、順次探索されていくの
で、探索速度が向上する。 次に、上述の干渉法の探索アルゴリズム及びcPulに
より実行される探索処理手順により、どの様に干渉法が
求められるかを、第11図に示す例に基づき説明する。 第11図には、物体Xが5階層、物体Yが3階層の階層
球体モデルで表される場合について第8図と同様に、最
上位の球(物体Yでは球X、物体Yでは球y)から最下
位の球(物体Xでは球X。 1 tl ”” I X 81m1m111、物体Yで
は球3’11.・”’ * V i、、)に至る各階層
の関係が示されている。なあ、図中の■−■は、物体間
の球同士の干渉チェックの手順を示すもので、以下の記
載に対応している。さらに、以下の記載に参いてr(x
、y)の干渉チェック」とは、球Xと球yとの間の干渉
チェックを行うことを意味する。まず、物体Xと物体Y
との間の干渉チェックを実行するにあたり、x、  y
に夫々干渉可能性を示すマーク付けをする(干渉フラグ
をオン)。 ■(x、y)の干渉チェックにより干渉有のため、x、
yを夫々干渉有とする。 ■干渉有とされた)Cとyの下位階層のり、yz。 y、、との全ての組合せ(x、 yl)、 (x、 y
l)。 ・lx、y−の干渉チェックにより、Xとy、およびy
、との間で干渉有のため、yII !I’2に夫々マー
ク付けをする。 ■同様に、yとXの下位階層の’l+ X2*  ””
H)1mとの全ての組合せの干渉チェックにより、干渉
有のX 1 + X xに夫々7−り付けをする。 ■マークを付けられた球の組合せ全部(X+、yl)。 (xi、yzL (xz、Yi)+ (X 2.Yl)
の干渉チェックより、×、とYiとの間で干渉有のため
、X++Y+を夫々干渉有とする。すなわち、マークを
付けられていないX1+  ・−、x−とys+  ・
・、y、との間の干渉チェックは行わない。 ■ ■と同様に、干渉有とされたX++Y+に対し、x
l、!:yIの下位階層のY+++ Yi2+  ・・
、y3、との全ての組合せの干渉チェックにより、干渉
有のYz、Yizに夫々マーク付けをする。 ■ ■と同様に、干渉有とされたX++!l”に対し、
y、とX、の下位階層のXll+ Xl7.”” +X
Imとの全ての組合せの干渉チェックにより、干渉有の
XlllXI2に夫々マーク付けをする。 ■マークを付けられた球の組合せ全部(Xz、Yz)。 (Xll、yli)+ (X+2.yII)+ (XI
ly12)の干渉チェックより、Xllとy、との間で
干渉有のため、Xz+yiを夫々干渉有とする。なお、
V++は物体Yの最下位階層の球であるため、これ以後
は物体Yのチェック対象球は常にyIIとなる。 ■干渉有とされたXIIIYI+に対し、yIIとXl
lの下位階層のX111+X112.””+Xl1mと
の全ての組合せに対し順次、干渉チェックを行う。! 
+ + + L ! + +とは干渉が無いので次に(
Xiis、Yz)の干渉チェックを行う。その結果、X
112とyllとの間で干渉が発生しているためXzm
を干渉有とするとともに、チェック対象をXlI2から
X1l11の下位階層の球へ変更する。 ■y、とx1□の下位階層のX、□との干渉チェックに
より干渉が無いため、次に(Xzz*、yII)の干渉
チェックを行う。この結果、Xl1112とyl、との
間で干渉が発生しているためx、、2を干渉有とする。 Xll□は最下位階層の球であるので、ここで処理を終
了し、次のX11211に関しては干渉の有無に関係な
く干渉チェックを行わない。 こうして、物体Xと物体Yとは球X1l12と球Y++
の存在する一部位で干渉していると直ちに判断される。 但し、物体の全部位について干渉の有無を知りたい場合
は、■においてチェック対象から外したXll3+ ”
”r X11m1全てについても、X1+ I:の干渉
チェックを行えば良い。 以上説明したように、他の物体の上位階層の球との間で
のチェックにより、干渉の可能性ありとL5てマークを
付けられた球同士に付いてのみ干渉チェックを行うため
、チェック対象となる球の組合せの数を極めて少なくす
ることができるので、物体間の干渉チェックの効率を非
常に高めることができる。
The present invention will be described below based on specific examples. First Embodiment This first embodiment is used when inputting data on the shape and position of a robot and working environment, displaying the robot and working environment on a graphic display, and simulating the movements of the robot. This is a device that checks for interference between robots or between a robot and an object. As shown in Fig. 2, this device is composed of a computer device, including a CPU 1 that executes logical operations, etc., a ROM 2 that stores programs indicating its processing procedures, a RAM 3 that stores various data, and a robot and work environment. Data input device @ 4 for inputting position and shape data and various commands such as simulation start command, and graphic display 5 for displaying the robot's posture and work environment that change over time at every minute sampling time. and data input device 4
and an input/output interface 6.7 for connecting the graphic display 5 to the CI'U1. In addition, the RAM 3 includes a shape data memory 31 that stores information on surfaces, vertices, and ridge lines that express the shape of each component of the robot arm and work environment, and information on each component when the surface of each component is layered. A sphere model memory 32 that stores information regarding the center position, radius, and hierarchy of the sphere, and a joint angle memory 3 that stores the robot's current joint coordinates.
3, and a member position memory 34 for storing the current position of each of the five constituent members of the robot and work environment. Next, we will explain the operation of this device in the third section, which shows the processing procedure of the CPUI.
The explanation will be given according to the flowchart shown in the figure. In step 100, data for generating shapes for each component of the robot and work environment is first input from the data input device 4. Based on this input, data such as vertices, edges, and surfaces representing the shape of each component are calculated. These shape data are stored in the shape data memory 31. Next, in step 102, data on the constraint relationships and absolute coordinate positions of the robot and each component of the work environment are input from the data input device 4. As this input data is input, the robot and work environment are displayed on the graphic display 5, so that errors in input data can be easily detected and data input can be easily executed. The constraint relationships and position data of the robot and the work environment are stored in the member position memory 34. When the input of the position data in step 102 is completed, data specifying the bot to be interfered with and the work environment is input by the data input device 4 in step 04. Next, in step 10G, for each component of the robot or work environment specified in step 104, each surface of the component is hierarchically covered with spheres of three types of rice, large, medium, and small. , a hierarchical spherical modeling of the surface is performed. This spherical modeling of the surface is performed as follows. As shown in FIG. 4, a rectangular parallelepiped-shaped outer envelope 12 enclosing one component 11 is generated from surface information data referenced from the shape data memory 31 of the component 11. Furthermore, a sphere circumscribing the outer envelope 12 is considered, and this sphere is referred to as a large sphere 14. In this way, the top level big ball player 4
3 is generated as a sphere containing component II. Then, the center position and radius of the large sphere 14 viewed from the reference coordinates set for the component 11 are stored in the spherical model memory 32. Next, as shown in FIG. 5(a), the outer envelope 12 is attached to the inner sphere 1.
5 radius rI11 vs. l-, one side is 6m = ffrn+
is divided into a plurality of cells 17 of a cube. Outer envelope 12
Since the length of each side of the cell 17 is not necessarily a multiple of the length of the side of the cell 17, the cells 17 are arranged in an overlapping manner. Next, as shown in FIG. 5(b), each cell 17
A sphere 20 circumscribed by is generated, and among the spheres 20,
Extract only the seven intersecting spheres on the surface 13 of the component 11,
The extracted sphere is referred to as the medium sphere 15. Then, the center position of each medium sphere 15 as seen from the reference coordinates set on the component 11 is stored in the sphere model memory 32.Next, as shown in FIG. 6(a), the center position of each medium sphere 15 is Paying attention to the inscribed cells 17, one cell 17 is further divided into cubic cells 18 with the radius of the sphere being rs and the − side being βS=ffrs.At this time, each cell 18
are arranged so as to overlap in the same way as when the middle ball is generated. Next, each sphere 2 circumscribing each cell 18
1 is generated, only the spheres that intersect with the surface 13 of the component 110 are extracted, and the extracted spheres are defined as the small spheres 16. Then, the center position of each small sphere 16 viewed from the reference coordinates set for the component 11 is stored in the spherical model memory 32. In this way, as shown in FIG. 7, the component 11 has a large outer sphere 14 and a smaller medium 15 which includes the surface 13 of the component 11. The model is hierarchically modeled using three types of smaller spheres 16 having different radii. That is, according to FIG. 8, it can be seen that all the small spheres belong to only one medium sphere, and all the medium spheres belong to the large sphere, so that they are hierarchically arranged in a tree-like manner. Note that the radius rs of the small ball 16 is arbitrarily set in consideration of the accuracy of interference determination. Next, the radius "m" of the medium sphere 15 is automatically determined from the radius rl of the large sphere and the radius rs of the small sphere using the following formula. According to this formula, the small sphere, the medium sphere, and the medium sphere The volume ratio can be made equal to that of the large sphere.This provides an efficient hierarchical structure for searching when determining interference.Also, as an exception, since the outer dimensions of the component 11 are small, the diameter of the large sphere 14 is If the diameter is smaller than the diameter of the small sphere 16, the small sphere 16 is not generated and only the large sphere 14 is modeled.When the hierarchical sphere modeling of each component is completed as described above, the process proceeds to step The process moves to step 108, where a robot motion command is inputted from the data input device 4. Next, the process moves to step 110, in which the joint coordinates of the robot after the minute movement, i.e. , the joint angles are calculated, and the joint angle data is stored in the joint angle memory 33.Next, when the joint angle calculations are completed, the process moves to step 112, and the reference coordinate system taken for each component is A transformation matrix T that relates the and absolute coordinate system is calculated from the joint angles at that time. The position and orientation of each sphere are expressed as a 3x4 matrix.The vector representing the center position of each sphere viewed from the reference coordinates taken for each component is P.
Assuming that rel is the vector Pabs representing the center position of each sphere viewed from absolute coordinates, it can be found by the following equation. For objects such as robots whose constituent members move, it is necessary to calculate a transformation matrix T from each joint angle each time the object moves, and update the absolute coordinates of the center positions of all spheres that model the constituent members. However, in order to improve the efficiency of calculation, this update of the absolute coordinates may be performed only for the sphere that is the object of the interference check. In this way, the spherical model memory 32 stores the center position Ptel of each sphere as seen from the reference coordinates set for each component, and the center position Pabs as seen from the absolute coordinates of each sphere at the current time. There will be. Next, the process moves to step 114, and an interference check calculation is performed according to the following procedure. In step 114, interference checks between the spheres are performed hierarchically in the order of large balls, medium balls, and small balls, and in step 116,
If it is determined that the spheres (small spheres) in the lowest hierarchy are interfering with each other, the process proceeds to step 118, in which the occurrence of interference and the interference area are determined and displayed from the center positions of the small spheres that interfere with each other. , In step 120, the robot and work environment in the interference state are displayed, and the program ends. Next, the procedure of hierarchical checking using large balls, medium balls, and small balls in step 114 will be described below. 5 tepl, as shown in Figure 9(a), a large ball 14
Check between a and 14b, and if there is any interference, go to step 2. Execute. If not, the check ends. Therefore, first, until each component comes close to a certain extent,
The calculation time is extremely short since interference is determined between large balls. 5 step 2. As shown in FIG. 9 et al., one large ball 14a and medium balls 15b1 to 15b1 included in the opponent's large ball 14b.
Perform interference check with 15bn and find medium ball 15 that interferes.
bl. Extract 15b2.15b3. Also, conversely, large ball 14b
and medium balls 15aI to 15an included in the opponent's large balls 14a.
Check the interference with the medium ball 15a1.1 that interferes with the
Extract 5a2. If there is no interfering medium ball, 2
It is determined that the two components do not interfere, and the calculation is interrupted. 5step3. As shown in Figure 9ce, the extracted medium sphere 15bL 15b2.15h3.15a1.15
Check the interference between a2 and find the medium balls 1 that interfere with each other.
Extract 5bi, 15b2.15al and execute 3tep4. Furthermore, if there are no intermediate spheres that interfere with each other, it is determined that the two constituent members do not interfere, and the check calculation is interrupted. 5step4. As shown in FIG. 9(d), an interference check is performed between one interfering medium ball 15b2 and the small balls 16all to 16aly++ included in the opponent medium ball 15a1, and interfering small balls 16all and 16a12 are extracted. do. And, conversely, one medium ball 15a1 interfering with the small balls 16b21 to 16b2 included in the opponent medium ball 15b2.
Interfering globules are extracted from n*, and the next 5 steps
Execute step 5. Furthermore, when there is no interfering small ball, interference determination between the medium ball 15 b 1 and the small balls 16all to 16aln belonging to the opponent medium ball 15a1 is similarly executed. If no interfering small sphere is detected, the same process is performed for other interfering medium spheres, and when there are no mutually interfering medium spheres, it is determined that the two components do not interfere. 5step5. As shown in FIG. 9(e), the extracted globules 16all, 16a12.16b21.16b
22.16b23 are checked and the small balls 16a11.16b21 that interfere with each other are extracted. And in this case, the two components are the small balls 16a1.1.16
It is determined that there is interference at part b21. Furthermore, if there are no small spheres that interfere with each other, the process returns to step 5 to extract other medium spheres that interfere with each other. In the end, when interference between the globules in the lowest hierarchy is detected, it is determined that there is interference, and the position of the globules is determined to be the interference site. If there is no interference between the globules,
When processing is performed on other mutually interfering medium spheres in the upper hierarchy, and there are no mutually interfering medium spheres,
Finally, it is determined that there is no interference. Therefore, the tree structure shown in Fig. 8 is searched along the branch paths where there is a possibility of interference. Judgment time becomes shorter. In addition, when determining the interference of spheres, the radius of the two spheres is determined by rl.
+ r,, when the center position is p,, p, the following formula %
It is determined whether the formula % is satisfied or not. If the above formula is satisfied, the two spheres will interfere. By hierarchically checking large balls, medium balls, and small balls as described in (2) above, it is possible to efficiently narrow down the areas where interference occurs and perform a simple and high-speed interference check. Incidentally, if it is determined in step 116 that no interference occurs in the sphere in the lowest hierarchy, since no interference has occurred between the constituent members, the process moves to step 122.
It is determined whether or not the interference check calculation has been performed for all combinations of component members, and if the calculation has not been completed for all combinations of members, step 114
The interference check between the constituent members is similarly performed. If the interference check calculations have been completed for all the combinations of constituent members, the process moves to step 124, where it is determined whether the interference check calculations have been completed for all specified objects. In this case, interference check determination between other objects is similarly performed. If it is determined in step 124 that the interference check calculation has been completed for all specified combinations of objects, the process moves to step 126, and the robot calculates the joint angles stored in the joint angle memory 33 at that time. The attitude is acting W
The robot is displayed in that posture, and the working environment is also displayed. Next, the process moves to step 128, where it is determined whether all moving operations have been completed. If the movement is not completed, the process returns to step 1.10 and the above-mentioned interference determination process is repeatedly executed for the next moving point. Further, when it is determined that the movement is completed, this program ends. As explained below, the device according to the present invention can easily satisfy both the required conditions of accuracy and calculation speed, so it can be used, for example, to check high-speed interference during rough motion of a robot. This is particularly effective in cases where Furthermore, the apparatus of the present invention can model members of any shape with the same precision, and is a highly versatile apparatus that can be applied to both real robots and offline simulators. Second Example In this second example, the number of layers of the sphere model and the radius of the sphere in each layer are determined in order to optimize the search efficiency for areas where interference occurs, taking into account the size of the object, the radius of the minimum sphere, etc. is set automatically. Only the differences from the first embodiment will be explained below. In hierarchical sphere model generation means B, the depth of the hierarchy (hierarchy (number) n and the radius rl of the sphere at each level are calculated using the following equations (1) and (2), respectively. log ρr However, n is rounded off to an integer. However, i 1, 2...n Here, the process of deriving equation (1) is shown. If the radius of the sphere at each level is ri, then the lower sphere (radius r +
++) is expressed by equation (3). If ρ9 is constant at each level, the radius r1 of the maximum sphere and the radius r of the minimum sphere. The relationship with is expressed by equation (4). Here, if the radius ratio of the upper and lower spheres is ρ, then (3
) From the equation, ρ9=ρrs, so the equation (4) can be expressed as the equation (5). r, = r%, ρ,! (a-11, ,, (5)
By taking the logarithm of both sides of equation (5), equation (1) is obtained. Also, the above equation (3) is determined from equation (5) by r , @ = r
, @・p, 8 (@ -1), so it can be derived from both equations. In the above, the volume ratio pv of the upper and lower spheres is constant,
In other words, by defining the relationship that a certain number of lower spheres are included in the upper sphere, it is possible to equalize the number of lower spheres for each law in each hierarchy, so that the hierarchy from the maximum to the minimum sphere can be made uniform throughout the hierarchy. The number of balls and the number of balls in each layer can be set optimally in terms of search efficiency. Furthermore, even if the area ratio ρs = (r+/rt, )'' of the upper and lower spheres is constant, it goes without saying that the radius ratio ρ1 of the upper and lower spheres is similarly constant. Note that the radius ratio p is set depending on the size and shape of the object, and is set to approximately 2 in this embodiment.The number of layers n determined as described above and the radius r1 of the sphere at each layer A spherical model of the object is generated as follows using . Step 1: Generate a rectangular parallelepiped Rec 1 that contains the object and a sphere Sph that contains the rectangular parallelepiped Rac 1. (Hierarchical level: = l) Step 2 : Set the hierarchy level to +1, and set the rectangular parallelepiped Re
Divide c k-1 into cubic cells inscribed in a sphere of radius r + g (i.e., a cube with -side 72" r b). Here, each cubic cell is divided by each side of rectangular parallelepiped Rec k-1 and each cube Since the sides are arranged so that they match, the first
As shown by the hatched area in FIG. 0(a), in many cases each chamber cell overlaps with its adjacent cell. This overlapping portion is deleted as described later and reconfigured as a rectangular parallelepiped cell Rec,j, and all cells N=1.
2...)). Step 3: Check whether the sphere surrounding the rectangular parallelepiped cell Rack,j intersects with the surface of the object. If they intersect, add the sphere to the sphere model data, and if kin (i.e., hierarchy level k is not the lowest level), then
Step 2 is further executed for the rectangular parallelepiped Rec k+1. Here, deletion of the overlapping portion of cubic cells will be explained. As mentioned above, at each hierarchical level, overlap parts are added preferentially in the order in which lower order methods (i.e. lower cells) are generated, and cells that are later in the order are defined as rectangular parallelepiped cells excluding the overlap parts. It is something to do. That is, as shown in FIG. 10(b), the cubic cell Ree k
-1 as nine spheres Sph k with radius r1, 1 ~ Sph k
, 9, each rectangular parallelepiped cell Rec, 1 to Rec k,
When dividing into 9, determine the cube → = Le Rec, 1 so that it is inscribed in the first sphere 5phk, 1, and the next sphere 5ph
For k,2, the portion of the cube inscribed in Sph k,2 excluding the overlapping portion with the 16ck,1 is defined as a rectangular parallelepiped cell Rec,2. Below, 5phk,
3 to 5 phk, 9 are sequentially subjected to the same operation to obtain each rectangular parallelepiped cell Rec k, 1 without an overlapping portion, respectively.
=Reck,9 is defined. Next, the lower ball Spb
When generating k+l,i, each rectangular parallelepiped cell Rec
Since k, 1 to Rec k+ 9 are divided in the same way as above, the sphere 5phk+ generated in the overlapping part
1. Duplication of i is eliminated, and the number of sphere data can be reduced to the necessary minimum. In this way, when representing (modeling) the surface of an object, the number of spheres in each layer can be minimized, so that the search efficiency during interference checking does not decrease. Next, a recursive algorithm for hierarchical sphere pair model in which the number of layers of objects X and Y generated as shown below is ``WIrnV'' is described below. This algorithm can be applied even when the number of layers is unequal (nx≠m), but it is basically the same as the case of the first embodiment.In addition, in each step below, r true /fals
"return e" means to return true/f a to the previous step.
It means to return Ise. Step 1: Add a mark to the sphere data representing the possibility of interference (set 1 to the flag) for each sphere at the top level (-1 to the hierarchy level) of the two objects X and Y.Step 2
Execute. If the result of step 2 is true, it is assumed that objects X and Y are interfering with each other. If this is not the case (if a false result is obtained), it is assumed that the objects X and Y do not interfere with each other. Step 2: Step 3 is executed for all combinations of spheres to be checked that belong to objects X and Y, respectively. If step 3 is true, return true 5゜ Also, step 3 is true! :: Returns false if there is no such combination. Step 3 If both of the ball data belonging to the objects X and Y in the knee combination have marks indicating the possibility of interference, check for interference between these balls. Otherwise, returns false. As a result of the above check, if the balls interfere with each other, step 4 is executed for those two balls. If there is no interference i:j then false
did not return. Also, if the result of step 4 is true, tr
If ue is false, return false. Step 4: If both spheres are in the lowest hierarchy (mouth, ny), it is determined that objects X and Y are interfering with each other, and true is returned. If not, objects X, Y
If only the ball belonging to one of the balls is in the lowest hierarchy, step 5 is executed, and if both balls are not in the lowest hierarchy, step 6 is executed. If each result of step 5 and step 6 is true, set true, fa
If it is lse, returns false. Step 5: Check for interference between spheres for all combinations of balls in the lowest hierarchy belonging to one of objects . If there is interference, execute step 4. Returns false if there is no ball with interference. true if the result of step 4 is true, false
If e, return false. In addition, clear all the marks here (set the flag to 0)
By doing this, you can set it up so that you can immediately start from step 1 the next time you check for interference between objects. Step 6: For all combinations of one ball belonging to object If interference occurs, one of the spheres belonging to the object Y
Mark the sphere data in the lower hierarchy. Returns false if there are no marked balls. Similar processing is also performed for all combinations of one ball belonging to object Y and a plurality of balls one layer below the one ball belonging to object X. In this way, the hierarchy level is gradually lowered for each of the balls on the object X side and the balls on the object Y side, and balls that are likely to interfere with balls in higher hierarchy are selected. Then, if there is a ball with a mark, step 2 is executed for all combinations. The result of step 2 is tr
If it is UE, it returns true, and if it is false, it returns false. Note that, as in step 5, all marks are cleared (the flag is set to 0). Next, the processing procedure of CPt1l for determining interference according to the above algorithm will be explained based on FIGS. 12(a) and 12(b). (a) When the number of layers of the layered X sphere and Y sphere is the same. In step 200, the current search hierarchy i of the object X is initialized to 1, the current search hierarchy j of the object Y is initially set to the topmost hierarchy of 1, and the interference flag of the topmost sphere is turned on. By turning on the interference flag of the topmost sphere, a search for a pair of spheres in the lower hierarchy is started. Next, in step 202, it is determined whether or not the search for global pairs with both interference flags on has been completed in the current search hierarchy (i, j>).If the determination result is N, Step 204 and subsequent steps are executed, and if the determination result is YES, step 250
The following steps are performed. Since the search for all sphere pairs has not been completed during the first execution regarding the topmost sphere, the result of the determination in step 2020 is naturally NO. In step 204, the ball with the interference flag on,
One X sphere belonging to hierarchy i and one Y sphere belonging to hierarchy j
A sphere is selected, and one unsearched pair of spheres (iX, jY) is generated. In the next step 206, step 204
An interference calculation is performed for the pair of spheres (iL jY) generated in step 208, and it is determined in the next step 208 whether or not the two spheres iX and jY interfere. Note that, as shown in the first embodiment, the interference calculation is determined based on whether the distance between the centers of two spheres is smaller than the sum of the radii of the two spheres. Next, in step 210, it is determined whether the pair of spheres (iX, jY) both exist in the lowest hierarchy, and the determination result is N.
In the case of O, the process moves to step 212. Step 2
In step 12, it is determined whether one of the spheres in the pair of spheres (iX, jY) exists in the lowest hierarchy, and if the determination result is NO, the process moves to step 214. In step 214, interference determination is performed for the sphere iX and all of the lower spheres one hierarchy below that belong to the sphere jY. If the ball jY interferes, the interference flag of the ball below that ball jY is turned on. Next, the process moves to step 216, and as a result of the interference determination in step 214, it is determined whether at least one of the lower balls of ball "Y" is interfering with ball iX, and if the determination result is YES, Step 2
18 is executed. In step 218, similarly to step 214, interference determination is performed for the sphere jY and all of the lower spheres one hierarchy below that belong to the sphere iX. If the ball iX interferes, the interference flag of the ball below that ball iX is turned on. next,
Proceeding to step 220, as a result of the interference determination in step 218, at least one of the lower balls of ball iX is lower than ball j.
It is determined whether or not there is interference with Y, and the determination result is YES.
If so, step 222 is executed. Next, in step 222, the current search hierarchy (i, j)
The current search sphere pair (iX, jY) is stored in the area D(i, j) so that the next search sphere pair can be selected at . Further, other parameters necessary for continuation of processing after returning to the current search hierarchy (i, j) are also stacked. Next, in step 224, the current search hierarchy (i, j
) are each lowered one level. Note that the current search hierarchy (i, j) is the sphere pair (i, j) of interest.
X, jY) exists. In other words, the current search hierarchy (i, D is
It is defined as the hierarchy to which relative iX, jY belong. Further, the current search sphere pair (iX, jY) is defined as a sphere pair of the parent sphere iX and the parent sphere jY that are being noticed. In this way, in steps 222 and 224, when the stack processing for restoration and the update processing of the current search hierarchy are completed,
Returning to step 202, the above-described process is repeated with the current search hierarchy set to the next lower hierarchy. When steps 202 to 224 are repeated without branching, the search branch for searching for a pair of interference spheres is
Both the X sphere and the Y sphere extend to the lower hierarchy through the shortest route. Note that the above routine from step 202 to step 224 includes a step of branching the processing step depending on the judgment result, but by branching, the search branch returns to the upper layer and horizontally returns to the upper layer. It progresses by extending in the direction and then extending to the lower hierarchy. Among the above branching steps, in step 208, the sphere pair (
If it is determined that there is no interference between the spheres (i iX, jY) are generated. Then, in step 206 and subsequent steps, as described above, interference between the pair of spheres (i Then, a collision determination between the parent/sparse jY and the subordinate child sphere belonging to the parent/sparse jX is executed, and the interference flag of the interfering child sphere is turned on.Furthermore, in step 216, the parent/sparse 1x belonging to the parent/sparse jY is determined. If it is determined that there is no interfering child ball, or in step 220, the parent/distance j
If it is determined that there is no child sphere that interferes with parent/disparate iY belonging to Therefore, there is no need to extend the search branch. Therefore, in this case, the process returns to step 202, and in the subsequent step 204, another sphere pair (iX, jY) belonging to the current search hierarchy (i, j) is generated, and through the processes from step 206 onwards, that sphere pair ( A search branch is extended from iX, jY). If it is determined in step 202 that all sphere pairs with search flags on that belong to the current search hierarchy ci, j) have been searched, the process moves to step 250. In step 250, it is determined whether the current search hierarchy (i, j) is the highest floor Fl (1, 1>).If the determination result is NO, the process moves to step 252,
Since the global pair that is the search target belonging to the current search hierarchy (i, j) does not interfere, the Chisa flag of the spheres that make up the global pair is turned off. Then, the process moves to step 254, where the current search hierarchy (i,
j) is raised one level higher. This causes the search branch to return to the above hierarchy. When a search branch extends from a certain upper layer to a lower layer,
In step 222, data such as the current search sphere pair in the upper layer is stored, but in step 256, when returning from the lower layer to the higher layer, the data such as the current search sphere pair in the higher layer is restored. Therefore, when the process returns to step 202, the search for the interference area continues from the next unsearched pair of spheres in the upper layer. Meanwhile, in step 250, the current search hierarchy ci, j
) is determined to be the highest hierarchy, it means that the highest sphere does not interfere. Therefore, in this case, the process moves to step 258 and a conclusion is made that object X and object Y do not interfere. On the other hand, as the search for the interference region progresses, in step 210, the sphere IxL sphere jY of the current search sphere pair (iX, jY) determined to interfere in step 20g is determined.
If it is determined that both of them are in the lowest hierarchy, it can be determined that object Therefore, in this case, it is possible to proceed to step 226 and conclude that the two objects interfere. (b) When the number of layers of the layered X sphere and Y sphere is different. Steps 200 to 22 described above are performed until either one of the current pair of funicular spheres (iX, jY) reaches the lowest level.
4 and steps 250-258 are executed. In the above processing process, if it is determined in step 212 that one of the current search sphere pair (iX, jY) is in the lowest hierarchy, steps 280 and subsequent steps are executed. Among the pair of balls (iX, jY), when the ball at the lowest level is L1 and the opponent ball is M, the ball and the lower level one level below that belong to the opponent ball match, that is, one of the child balls.
One sphere kM (k is a variable that varies depending on the child sphere) is selected, and an unsearched sphere pair (L, kM) is generated. and,
In the next step 282, the interference calculation for the sphere pair (L, kM) is performed, and in the next step 284, the sphere pair (L, kM) is
, kM) are determined to interfere. If the determination result is YBS, the process moves to step 286, and when returning to the current search hierarchy (i, j), which is defined as a hierarchy in which estranged and estranged M exist, that hierarchy will be continued. The current search sphere pair (iX, j
Y) (=(L, M)) Area D(i, j)l: Memory is lost. In addition, other parameters necessary for restoration are stacked. Next, in step 288, the current search hierarchy (i, j) in which close relatives exist is lowered by one level. At this time, if the sphere iX exists at the lowest level, the level j of the Y sphere is lowered by one level. On the other hand, when the sphere iY exists in the lowest hierarchy, the hierarchy i of the X sphere is lowered by one hierarchy. Next, the process moves to step 290, where the current ball and child ball k are
M is considered as a new relative in the next interferometry search process. For this purpose, the current search sphere pair (iX, jY) defined as a sparse parent sphere pair is redefined as a sphere pair (L, kM). Then, the process returns to step 210 to proceed with the search for the next interferometry method. In this way, if one sphere belongs to the lowest hierarchy, only the other sphere is searched towards the lower hierarchy. If it is determined in step 284 that the pair of spheres (L, kM) does not interfere, the process proceeds to step 292, where it is determined whether the child sphere kM is the last sphere belonging to parent/disparate member M. If the determination result is NO, the process returns to step 280, and another child ball kM belonging to the parent/favorite group is selected. And step 28
2 or less, interference determination for the pair of spheres (L, kM) is performed in the same way as described above. In step 292, if it is determined that the child sphere kM is the last sphere belonging to the parent/disparate member M, this means that the parent/disapproval and the parent/disapprove do not interfere with each other, so the current search sphere (
iX, jY) must be changed. That is why step 294 exists. In step 294, it is determined whether or not the hierarchy i of the X sphere and the hierarchy j of the Y sphere are equal in the current search hierarchy (i, j). If the determination result is YES, it is sufficient to generate another pair of spheres belonging to the same hierarchy, so the process returns to step 202. If the determination result in step 294 is NO, the current search sphere pair (iX, jY) is returned to the sphere pair of the parent/disparate sphere and the parent/disparate sphere one layer above which the parent/disparate member M belongs, and the interferometry search is performed in that state. It needs to be continued from For this, the following step 2
At 96, the current search hierarchy (i, j) is raised by one hierarchy. In this case, if sphere iX exists in the lowest hierarchy,
The layer j of the Y sphere is raised by one layer. On the other hand, the sphere iY
exists in the lowest hierarchy, the hierarchy i of the X sphere is raised by one hierarchy. Also, in step 298, in the updated current search hierarchy (i, j), the last search sphere pair for which the interferometry search was performed is restored as the current search sphere pair (iX, jY). Note that the sphere pair is the value stored in area D(i,j) in step 286 previously executed. Then, return to step 210, and in step 212 select Y.
It is determined as S, and the process moves to step 280. Then, in step 280, the next new pair of unsearched spheres (L, kM) is generated with the current search sphere pair (iX, jY) as close and distant, and interference determination is performed for this pair of spheres. As described above, since only the balls that are likely to interfere are sequentially searched for in the lower hierarchy, the search speed is improved. Next, how the interferometry is determined by the above-mentioned interferometry search algorithm and the search processing procedure executed by cPul will be explained based on the example shown in FIG. 11. Figure 11 shows the topmost sphere (sphere X for object Y, sphere y for object Y, as in Figure 8 for the case where object ) to the lowest sphere (for object X, sphere X. 1 tl ”” I By the way, ■-■ in the figure indicates the procedure for checking interference between spheres between objects, and corresponds to the following description.Furthermore, referring to the following description, r(x
, y) means to perform an interference check between the ball X and the ball y. First, object X and object Y
When performing interference check between x, y
Mark each to indicate the possibility of interference (turn on the interference flag). ■ Due to the interference check of (x, y), x,
Let y be the presence of interference. ■C and y's lower layer glue (which was determined to have interference), yz. All combinations of y, (x, yl), (x, y
l).・By checking the interference of lx, y-, X, y, and y
, due to interference between yII! Mark I'2 respectively. ■Similarly, 'l+X2* "" in the lower hierarchy of y and
H) By checking the interference of all combinations with 1m, assign 7- to each of X 1 + X x that has interference. ■All combinations of marked balls (X+, yl). (xi, yzL (xz, Yi) + (X 2.Yl)
According to the interference check, there is interference between x and Yi, so X++ and Y+ are determined to have interference, respectively. That is, unmarked X1+ ・−, x− and ys+ ・
, y, is not checked for interference. ■ Similarly to ■, for X++Y+ which is considered to have interference,
l,! :Y+++ Yi2+ of the lower layer of yI...
, y3, and Yz and Yiz with interference are marked respectively. ■ Similar to ■, X++ was found to have interference! l”,
Xll+Xl7. of the lower hierarchy of y, and X. ”” +X
By checking the interference of all combinations with Im, each XlllXI2 with interference is marked. ■All combinations of marked balls (Xz, Yz). (Xll,yli)+ (X+2.yII)+ (XI
According to the interference check in ly12), there is interference between Xll and y, so Xz+yi is determined to have interference. In addition,
Since V++ is the lowest level sphere of object Y, the sphere to be checked for object Y will always be yII from now on. ■For XIIIYI+, which was found to have interference, yII and Xl
X111+X112 in the lower hierarchy of l. Interference checks are sequentially performed for all combinations of ""+Xl1m. !
+ + + L! Since there is no interference with + +, next (
Xiis, Yz) interference check. As a result,
Because interference occurs between 112 and yll, Xzm
is determined to have interference, and the check target is changed from XlI2 to a ball in the lower hierarchy of X1l11. ■Since there is no interference in the interference check between y and X and □ in the lower hierarchy of x1□, next an interference check is performed on (Xzz*, yII). As a result, since interference has occurred between Xl1112 and yl, x, 2 is determined to have interference. Since Xll□ is a sphere in the lowest hierarchy, the process ends here, and no interference check is performed for the next X11211, regardless of whether there is interference. In this way, object X and object Y are sphere X1l12 and sphere Y++
It is immediately determined that there is interference in a part where the However, if you want to know whether there is interference in all parts of the object, use Xll3+, which was excluded from the check in step
”r For all X11m1, it is sufficient to check the interference of Since the interference check is performed only on the attached balls, the number of combinations of balls to be checked can be extremely reduced, so the efficiency of checking for interference between objects can be greatly increased.

【発明の効果】【Effect of the invention】

本発明は、上記したように、各物体の表面を被覆する球
体でモデル化しており、物体内部及び外部はモデル化か
ら除外しているので、球体の数が少なく階層構造が単純
化されると共にモデル化速度が向上する。従って、干渉
チェックの演算時間が短くなるという効果を有している
。 又、球体でモデル化しているので、物体の移動に伴う球
体の移動は、その球体の中心位置の移動演算だけ行えば
良く、移動に伴う球体の更新演算が簡略化される。 更に、干渉判定の精度は最小球の半径に依存し、その最
小球の半径を任意に設定できるので、干渉判定精度を任
意に変化させることができる。 更に、階層的にモデル化しているので、階層を深くする
ことにより演算時間の短縮化を図ることもできる。 更に、球体の干渉判定を干渉の可能性の高い上位階層の
球体から順次その干渉球体に属する下位階層の球体に対
して階層的に実行しているので、干渉判定速度が向上す
るという効果がある。即ち、粗いチェックから詳細なチ
ェックへ移る過程にふいて干渉の可能性のない部分を除
外していくことにより、干渉発生部を効率良く絞り込む
ことができる。
As described above, in the present invention, each object is modeled using a sphere that covers its surface, and the inside and outside of the object are excluded from modeling, so the number of spheres is small and the hierarchical structure is simplified. Improves modeling speed. Therefore, this has the effect of shortening the computation time for interference checking. Furthermore, since the model is made of a sphere, the movement of the sphere accompanying the movement of the object requires only the movement calculation of the center position of the sphere, and the updating calculation of the sphere accompanying the movement is simplified. Further, the accuracy of interference determination depends on the radius of the minimum sphere, and since the radius of the minimum sphere can be set arbitrarily, the accuracy of interference determination can be changed arbitrarily. Furthermore, since the model is hierarchical, the computation time can be shortened by increasing the depth of the hierarchy. Furthermore, collision detection of spheres is performed hierarchically, starting with the spheres in the upper hierarchy that are most likely to interfere, and then to the spheres in the lower hierarchy that belong to the interfering sphere, which has the effect of improving the speed of collision determination. . In other words, by eliminating portions where there is no possibility of interference in the process of moving from a rough check to a detailed check, it is possible to efficiently narrow down the portions where interference occurs.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の全体の構成を示したブロックダイヤグ
ラム、第2図は本発明の具体的な実施例に係る装置の構
成を示したブロックダイヤグラム、第3図は同実施例の
装置に使用されたCPUの処理手順を示したフローチャ
ート、第4図、第5図、第6図は、それぞれ、大球、中
球、小球の発生方法を示した説明図、第7図、第8図は
球体モデルの階層構造を示した説明図、第9図は干渉判
定の論理を示した説明図、第10図はオーバラップのあ
る立方体セル及びオーバラップ部を削除した直方体セル
とそれらを内包する球の関係を示した模式図、第11図
は階層数の異なる球体モデル間の干渉チェックを示した
説明図、第12図は干渉法の探索を行うCPuの処理手
順を示したフローチャートである。 1・・−・CPU  3・・・・RAM31・・・・形
状データメモリ  32 ・・・球体モデルメモリ33
・・−・関節角メモリ    34・・・部材位置メモ
リ特許出願人 株式会社豊田中央研究所
Fig. 1 is a block diagram showing the overall structure of the present invention, Fig. 2 is a block diagram showing the structure of a device according to a specific embodiment of the present invention, and Fig. 3 is a block diagram showing the structure of a device according to a specific embodiment of the present invention. FIGS. 4, 5, and 6 are flowcharts showing the processing procedure of the CPU, respectively. is an explanatory diagram showing the hierarchical structure of the spherical model, Fig. 9 is an explanatory diagram showing the logic of collision detection, and Fig. 10 is a cubic cell with overlap, a rectangular parallelepiped cell with the overlap part removed, and the cells that contain them. FIG. 11 is a schematic diagram showing the relationship between spheres, FIG. 11 is an explanatory diagram showing interference checking between spherical models with different numbers of layers, and FIG. 12 is a flowchart showing the processing procedure of CPU for searching by interferometry. 1...CPU 3...RAM31...Shape data memory 32...Spherical model memory 33
...Joint angle memory 34...Part position memory Patent applicant Toyota Central Research Institute Co., Ltd.

Claims (1)

【特許請求の範囲】 移動する物体を含む複数の物体に対し、物体相互の干渉
をチェックする装置において、 各物体の表面を表す面情報を記憶した面情報記憶手段と
、 前記面情報に基づいて各物体の表面を各々複数種類の半
径からなる球体により階層的に被覆してモデル化する階
層球体モデル生成手段と、 前記生成されたモデル化球体の位置を記憶する球体モデ
ル記憶手段と、 移動体に関する前記複数種類の半径のモデル化球体の位
置を物体の移動に応じて更新して前記球体モデル記憶手
段に出力する球体位置更新手段と、前記球体モデル記憶
手段に記憶された任意時刻の2つの物体に関するモデル
化球体の位置に基づいて、相互に干渉する球体を検出し
その干渉すると判断された球体同士のみについてその相
互に干渉する球体に属するより半径の小さい球体の中か
らさらに干渉する球体を検出するという手順を半径の大
きい球体から順に半径の小さい球体へと階層的に実行し
、最終的に相互に干渉する最小半径の球体が存在すると
きに2つの物体は干渉すると判断しその相互に干渉する
最小半径の球体の位置から2つの物体の干渉位置を求め
、これらの演算結果を出力する球体干渉演算手段と を有することを特徴とする物体の干渉チェック装置。
[Scope of Claim] A device for checking mutual interference of a plurality of objects including a moving object, comprising a surface information storage means storing surface information representing the surface of each object; hierarchical spherical model generation means for modeling the surface of each object by covering it hierarchically with spheres each having a plurality of different radii; spherical model storage means for storing the position of the generated modeling sphere; and a moving object. sphere position updating means for updating the position of the modeling sphere with a plurality of types of radii according to the movement of the object and outputting it to the sphere model storage means; and an arbitrary time point stored in the sphere model storage means. Based on the position of the modeling spheres with respect to the object, we detect spheres that interfere with each other, and for only those spheres that are determined to interfere, select spheres that further interfere with each other from among spheres with a smaller radius that belong to the spheres that interfere with each other. The detection procedure is executed hierarchically from the sphere with the largest radius to the sphere with the smallest radius, and finally, when there is a sphere with the smallest radius that interferes with each other, it is determined that the two objects will interfere, and the two objects are determined to interfere with each other. 1. An interference checking device for objects, comprising: a spherical interference calculation means for determining the interference position of two objects from the position of a sphere with a minimum radius of interference, and outputting the calculation results.
JP1274748A 1988-11-12 1989-10-21 Mobile body interference check device Expired - Fee Related JP2826138B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP1274748A JP2826138B2 (en) 1988-11-12 1989-10-21 Mobile body interference check device
GB8925634A GB2227106B (en) 1988-11-12 1989-11-13 Apparatus for detecting the collision of moving objects

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP63-286347 1988-11-12
JP28634788 1988-11-12
JP1274748A JP2826138B2 (en) 1988-11-12 1989-10-21 Mobile body interference check device

Publications (2)

Publication Number Publication Date
JPH02224004A true JPH02224004A (en) 1990-09-06
JP2826138B2 JP2826138B2 (en) 1998-11-18

Family

ID=26551175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1274748A Expired - Fee Related JP2826138B2 (en) 1988-11-12 1989-10-21 Mobile body interference check device

Country Status (2)

Country Link
JP (1) JP2826138B2 (en)
GB (1) GB2227106B (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761391A (en) * 1996-05-22 1998-06-02 Fujitsu Ltd. Arithmetic unit for calculating distance between objects
JPH10312217A (en) * 1997-05-12 1998-11-24 Shinko Electric Co Ltd Running managing controller and its method
US5943056A (en) * 1995-07-11 1999-08-24 Fujitsu Ltd. Interference checking method
JP2002092650A (en) * 2000-09-14 2002-03-29 Namco Ltd Hit checking method between objects and game device
JP2006338389A (en) * 2005-06-02 2006-12-14 Toyota Motor Corp Inter-object collision decision device and method
JP2011131303A (en) * 2009-12-22 2011-07-07 Honda Motor Co Ltd Interference checking device
JP2017512078A (en) * 2014-02-05 2017-05-18 インテュイティブ サージカル オペレーションズ, インコーポレイテッド System and method for dynamic virtual collision object
JP2019025604A (en) * 2017-07-31 2019-02-21 ファナック株式会社 Control device of multi-joint robot

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7349919B2 (en) 2003-11-21 2008-03-25 International Business Machines Corporation Computerized method, system and program product for generating a data mining model
US7523106B2 (en) 2003-11-24 2009-04-21 International Business Machines Coporation Computerized data mining system, method and program product
DE102004019285A1 (en) * 2004-04-21 2005-11-10 Bosch Rexroth Ag Method for collision checking of two objects
JP4163718B2 (en) * 2006-02-28 2008-10-08 株式会社コナミデジタルエンタテインメント Object display device, object arrangement method, and program
AU2007233560A1 (en) * 2006-03-30 2007-10-11 Monash University Method of modelling the interaction between deformable objects
CN101546435B (en) * 2008-03-24 2012-03-28 鸿富锦精密工业(深圳)有限公司 System and method for detecting article collision
DE102009006256B4 (en) * 2009-01-27 2019-01-03 Deutsches Forschungszentrum für künstliche Intelligenz GmbH Method for avoiding collisions controlled moving parts of a plant
TWI402130B (en) * 2011-01-12 2013-07-21 Ind Tech Res Inst Interference preventing method and device
CN112008729A (en) * 2020-09-01 2020-12-01 云南电网有限责任公司电力科学研究院 Collision detection method for overhead line maintenance mechanical arm

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2196763A (en) * 1986-10-29 1988-05-05 Philips Electronic Associated Solid modeling

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5943056A (en) * 1995-07-11 1999-08-24 Fujitsu Ltd. Interference checking method
US5761391A (en) * 1996-05-22 1998-06-02 Fujitsu Ltd. Arithmetic unit for calculating distance between objects
JPH10312217A (en) * 1997-05-12 1998-11-24 Shinko Electric Co Ltd Running managing controller and its method
JP2002092650A (en) * 2000-09-14 2002-03-29 Namco Ltd Hit checking method between objects and game device
JP4510257B2 (en) * 2000-09-14 2010-07-21 株式会社バンダイナムコゲームス Method for checking hit between objects and game device
JP2006338389A (en) * 2005-06-02 2006-12-14 Toyota Motor Corp Inter-object collision decision device and method
JP4569390B2 (en) * 2005-06-02 2010-10-27 トヨタ自動車株式会社 Apparatus and method for collision detection between objects
JP2011131303A (en) * 2009-12-22 2011-07-07 Honda Motor Co Ltd Interference checking device
JP2017512078A (en) * 2014-02-05 2017-05-18 インテュイティブ サージカル オペレーションズ, インコーポレイテッド System and method for dynamic virtual collision object
US10849591B2 (en) 2014-02-05 2020-12-01 Intuitive Surgical Operations, Inc. System and method for dynamic virtual collision objects
JP2019025604A (en) * 2017-07-31 2019-02-21 ファナック株式会社 Control device of multi-joint robot
US10759056B2 (en) 2017-07-31 2020-09-01 Fanuc Corporation Control unit for articulated robot

Also Published As

Publication number Publication date
GB8925634D0 (en) 1990-01-04
GB2227106B (en) 1993-05-19
JP2826138B2 (en) 1998-11-18
GB2227106A (en) 1990-07-18

Similar Documents

Publication Publication Date Title
US5056031A (en) Apparatus for detecting the collision of moving objects
JPH02224004A (en) Interference check device for moving body
JP6879464B2 (en) Interference determination method, interference determination system and computer program
CN111360824B (en) Double-arm self-collision detection method and computer-readable storage medium
Kallman et al. Motion planning using dynamic roadmaps
EP0753837B1 (en) Interference checking method
US20040010346A1 (en) Method of real-time collision detection between solid geometric models
JP6895082B2 (en) Interference determination method, interference determination system and computer program
CN113618742B (en) Robot obstacle avoidance method and device and robot
RU2308764C2 (en) Method for moving a virtual jointed object in virtual space with prevention of collisions of jointed object with elements of environment
WO2024037658A1 (en) Method and apparatus for controlling pointing action of robot, and electronic device and storage medium
Zacharias et al. The capability map: A tool to analyze robot arm workspaces
Zeghloul et al. SMAR: A robot modeling and simulation system
He et al. Haptic-aided robot path planning based on virtual tele-operation
Tang et al. Hierarchical and controlled advancement for continuous collision detectionof rigid and articulated models
CN114012726A (en) Aerospace mechanical arm collision detection method
Lee et al. Dynamic simulation of interactive robotic environment
Mirolo et al. A solid modelling system for robot action planning
Fragkopoulos et al. Dynamic efficient collision checking method of robot arm paths in configuration space
Khoury et al. Efficient sampling of transition constraints for motion planning under sliding contacts
Ham et al. Collision detection and response of multibody systems using a position difference method and non-interpenetration constraint in shipbuilding simulation
Sun et al. Computer simulation of sensor-based robot collision avoidance in an unknown environment
JPH0727582B2 (en) Shape modeling system in CAD system
JPH02260008A (en) Method and device for dividing searching space
Wang et al. Human-machine collaboration in robotics: Integrating virtual tools with a collision avoidance concept using conglomerates of spheres

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees