JP2021077149A - Information processing method, information processing equipment, and robot system - Google Patents

Information processing method, information processing equipment, and robot system Download PDF

Info

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

Links

Images

Abstract

To obtain proximity points required for contact force calculation according to the analytical method so that appropriate and highly accurate simulation processing can be continued, even after an overlap occurs.SOLUTION: When multiple object models overlap in a certain simulation step (S8), the state of simulation is rolled back to a second simulation step in the past where no overlap has occurred (S10). In the rolled-back simulation step, proximity points that are close to each other within a predetermined threshold of the object models are acquired (S11 to S14), and relative velocities before and after the contact of the acquired proximity points are used to calculate a contact force acting between the object models when the object models come into contact with each other (S16).SELECTED DRAWING: Figure 3

Description

本発明は、複数の物体モデルが存在する仮想空間で、少なくとも1つの物体モデルを動作させるシミュレーションを行う情報処理方法、情報処理装置、およびロボットシステムに関する。 The present invention relates to an information processing method, an information processing device, and a robot system that perform a simulation of operating at least one object model in a virtual space in which a plurality of object models exist.

昨今様々な生産現場でロボットが用いられており、それらロボットの動作確認をオフラインで行う事ができるシミュレータの需要が高まっている。例えば、ロボットが他の治具に衝突していないかを確認するシミュレーションや、ロボット・治具・ワークなどの機構を構成する部品の挙動をコンピュータでシミュレートすることで組立プロセス設計を支援するダイナミクスシミュレーションが挙げられる。 Recently, robots are used in various production sites, and the demand for simulators that can check the operation of these robots offline is increasing. For example, dynamics that support assembly process design by simulating whether a robot collides with other jigs or by simulating the behavior of parts that make up a mechanism such as a robot, jig, or work with a computer. Simulation can be mentioned.

産業用ロボットで物体を組み立てる工程のダイナミクスシミュレーションを行う場合、物体モデル同士が接触した際に発生する接触力を正確に計算する必要がある。この接触力の計算方式は、計算量が少ないペナルティ法と、計算量が多いが理論的に正確性が保証されている解析法に大別する事ができる。 When performing a dynamics simulation of the process of assembling an object with an industrial robot, it is necessary to accurately calculate the contact force generated when the object models come into contact with each other. This contact force calculation method can be roughly divided into a penalty method with a small amount of calculation and an analysis method with a large amount of calculation but whose accuracy is theoretically guaranteed.

特許文献1は、物体モデル同士のオーバーラップ量から接触力を求めるペナルティ法に、弾性計算を導入した際の問題点を解決する手法を開示している。特許文献1の手法では、接触の開始時と終了時に発生する計算誤差を軽減するために、計算時間を細かく分割する。 Patent Document 1 discloses a method for solving a problem when elastic calculation is introduced into a penalty method for obtaining a contact force from an amount of overlap between object models. In the method of Patent Document 1, the calculation time is subdivided in order to reduce the calculation error that occurs at the start and end of the contact.

非特許文献1は、解析法を用いて、接触力を正確に計算する手法を開示している。非特許文献1の手法は、物体同士の近接点において接触前と接触後の相対速度が理論的に正しくなるように連立方程式を立て、近接点の速度と接触力に関する条件式を用い、線形相補性問題として解くものである。 Non-Patent Document 1 discloses a method for accurately calculating a contact force by using an analysis method. In the method of Non-Patent Document 1, simultaneous equations are established so that the relative velocities before and after contact are theoretically correct at the proximity points between objects, and linear complementation is performed using conditional equations regarding the velocity and contact force of the proximity points. It is solved as a sexual problem.

特開2011−123558号公報Japanese Unexamined Patent Publication No. 2011-123558

“Fast Contact Force Computation for Non-Penetrating Rigid Bodies”, SIGGRAPH 94, pp. 23-34 (1994).“Fast Contact Force Computation for Non-Penetrating Rigid Bodies”, SIGGRAPH 94, pp. 23-34 (1994).

コンピュータグラフィックスなどの分野では、接触力の計算にはペナルティ法が用いられる傾向がある。これに対して、産業用のロボットのシミュレーションなどにおいては、接触力の計算には精度が求められるため解析法が望ましい。 In fields such as computer graphics, the penalty method tends to be used to calculate contact force. On the other hand, in the simulation of industrial robots, the analysis method is desirable because the calculation of contact force requires accuracy.

解析法では、接触力を計算するために物体同士が十分近づいた際の近接点を用いるが、物体同士がオーバーラップすると、近接点を計算する事ができなくなる。そこで、オーバーラップ前に、物体同士が十分近づいたかどうかを物体同士の距離を接触閾値と比較して判定する必要がある。このとき、物体同士のオーバーラップ状態を防ぐ目的では、比較的大きな接触閾値を設定する。これにより、実際の接触点とかけ離れた点が力計算のための近接点として選ばれる傾向が生じ、シミュレーション精度が低下する可能性がある。 In the analysis method, the proximity points when the objects are sufficiently close to each other are used to calculate the contact force, but when the objects overlap each other, the proximity points cannot be calculated. Therefore, before the overlap, it is necessary to determine whether or not the objects are sufficiently close to each other by comparing the distance between the objects with the contact threshold value. At this time, a relatively large contact threshold value is set for the purpose of preventing the overlapping state of the objects. As a result, a point far from the actual contact point tends to be selected as a proximity point for force calculation, which may reduce the simulation accuracy.

本発明の課題は、上記の問題点に鑑み、オーバーラップが発生した後も、解析法の接触力演算に必要な近接点を求め、適切、かつ高精度なシミュレーション処理を継続することができるようにすることにある。 In view of the above problems, the object of the present invention is to obtain the proximity points required for the contact force calculation of the analysis method even after the overlap occurs, and to continue the appropriate and highly accurate simulation processing. To do.

上記課題を解決するため、本発明においては、複数の物体モデルが存在する仮想空間で、少なくとも1つの物体モデルを動作させるシミュレーションを行う情報処理方法において、制御装置が、第1のシミュレーションステップにおいて、複数の物体モデルのオーバーラップが発生しているか否かを判定し、前記複数の物体モデルのオーバーラップが発生している場合、シミュレーションの状態をオーバーラップが生じていない過去の第2のシミュレーションステップにロールバックさせる工程と、前記制御装置が、ロールバックさせた前記第2のシミュレーションステップにおいて、前記物体モデルの所定の閾値以内の距離で互いに近接する近接点を取得し、取得した前記近接点の接触前と接触後の相対速度を用いて、前記物体モデル同士が接触した場合に前記物体モデルの間に働く接触力を演算する工程と、を含む構成を採用した。 In order to solve the above problems, in the present invention, in an information processing method for performing a simulation in which at least one object model is operated in a virtual space where a plurality of object models exist, a control device is used in a first simulation step. It is determined whether or not the overlap of the plurality of object models has occurred, and if the overlap of the plurality of object models has occurred, the simulation state is the second simulation step in the past in which the overlap does not occur. In the step of rolling back to and the second simulation step of rolling back, the control device acquires proximity points that are close to each other within a predetermined threshold of the object model, and the acquired proximity points of the acquired proximity points. A configuration including a step of calculating the contact force acting between the object models when the object models come into contact with each other by using the relative velocities before and after the contact is adopted.

上記構成によれば、物体モデルのオーバーラップが発生した後も、解析法の接触力演算に必要な近接点を求め、適切、かつ高精度なシミュレーション処理を継続することができる。 According to the above configuration, even after the overlap of the object models occurs, the proximity points required for the contact force calculation of the analysis method can be obtained, and the appropriate and highly accurate simulation processing can be continued.

本発明の実施形態に係る情報処理装置として、シミュレーション装置の制御系を示したブロック図である。It is a block diagram which showed the control system of the simulation apparatus as the information processing apparatus which concerns on embodiment of this invention. 本発明の実施形態に係るシミュレーション処理の概略を示したフローチャート図である。It is a flowchart which showed the outline of the simulation process which concerns on embodiment of this invention. 本発明の実施形態に係るシミュレーションの計算処理を詳細に示したフローチャート図である。It is a flowchart which showed the calculation process of the simulation which concerns on embodiment of this invention in detail. (a)〜(d)は、物体モデル同士のオーバーラップに係る種々の状態を示した説明図である。(A) to (d) are explanatory views showing various states relating to overlap between object models. 本発明の実施形態に係る接触閾値の拡大の例を示した説明図である。It is explanatory drawing which showed the example of the expansion of the contact threshold value which concerns on embodiment of this invention. 本発明の実施形態に係る接触閾値を設定するユーザーインターフェースの構成例を示した説明図である。It is explanatory drawing which showed the structural example of the user interface which sets the contact threshold value which concerns on embodiment of this invention. 本発明の実施形態に係るシミュレーション装置の外観、および画面表示の構成例を示した説明図である。It is explanatory drawing which showed the appearance of the simulation apparatus which concerns on embodiment of this invention, and the structural example of the screen display. 本発明の実施形態に係る、ロボット制御プログラム設定のためのユーザーインターフェースの構成例を示した説明図である。It is explanatory drawing which showed the configuration example of the user interface for setting the robot control program which concerns on embodiment of this invention. 本発明の実施形態において、最大ロールバック回数を超えた場合に用いるユーザーインターフェースの構成例を示した説明図である。It is explanatory drawing which showed the structural example of the user interface used when the maximum number of rollbacks is exceeded in embodiment of this invention. 本発明の実施形態において、接触閾値が最大値を超えた場合に用いるユーザーインターフェースの構成例を示した説明図である。It is explanatory drawing which showed the structural example of the user interface used when the contact threshold value exceeds the maximum value in embodiment of this invention. 本発明の実施形態に係る、接触閾値の初期値を考慮したシミュレーションの計算処理を詳細に示したフローチャート図である。It is a flowchart which showed in detail the calculation process of the simulation which considered the initial value of the contact threshold value which concerns on embodiment of this invention. 本発明の実施形態に係る、接触閾値の初期値を設定可能なユーザーインターフェースの構成例を示した説明図である。It is explanatory drawing which showed the structural example of the user interface which can set the initial value of the contact threshold value which concerns on embodiment of this invention. 物体モデル同士が接触する場合の速度を示した説明図である。It is explanatory drawing which showed the velocity when the object models come into contact with each other. 物体モデル同士の相対速度を示した説明図である。It is explanatory drawing which showed the relative velocity between object models. 本発明の実施形態において、接触閾値を用いた物体同士の距離、接触状態、ないしオーバーラップに係る判定を示した説明図である。In the embodiment of the present invention, it is explanatory drawing which showed the determination which concerns on the distance, contact state, or overlap between objects using the contact threshold value.

以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は参考数値の例示に過ぎない。 Hereinafter, embodiments for carrying out the present invention will be described with reference to the accompanying drawings. The configuration shown below is merely an example, and for example, a person skilled in the art can appropriately change the detailed configuration without departing from the spirit of the present invention. Moreover, the numerical values taken up in this embodiment are merely examples of reference numerical values.

<実施形態1>
本実施形態のシミュレーション処理(情報処理方法)を実行可能な情報処理装置の構成例を図1に示す。図1の装置は、例えば、ロボット装置を制御するロボット制御プログラムに記述された態様で、ロボット装置が操作する対象の物体に対応する物体モデルを仮想空間で動作させるシミュレーション装置である。
<Embodiment 1>
FIG. 1 shows a configuration example of an information processing apparatus capable of executing the simulation process (information processing method) of the present embodiment. The device of FIG. 1 is, for example, a simulation device for operating an object model corresponding to an object to be operated by the robot device in a virtual space in a mode described in a robot control program for controlling the robot device.

図1のシミュレーション装置1は、演算部としてのCPU20、記憶媒体としてのROM21、RAM22、HDD23、記録ディスクドライブ24、各種のインターフェース25,26,27,28を備えている。CPU20には、これらROM21、RAM22、HDD23、記録ディスクドライブ24、インターフェース25,26,27,28が、バス29を介して相互に通信可能に接続されている。 The simulation device 1 of FIG. 1 includes a CPU 20 as a calculation unit, a ROM 21, a RAM 22, an HDD 23 as a storage medium, a recording disk drive 24, and various interfaces 25, 26, 27, 28. The ROM 21, RAM 22, HDD 23, recording disk drive 24, and interfaces 25, 26, 27, and 28 are connected to the CPU 20 so as to be able to communicate with each other via the bus 29.

また、図7はこのシミュレーション装置1と、ロボット制御装置180、ロボット装置181から成るロボットシステムを含む構成の一例を示している。図7では、シミュレーション装置1は、図1のCPU20を中心としたブロック(ROM21、RAM22、HDD23など)を含む、例えばPC(パーソナルコンピュータ)のような形態の制御端末として図示してある。シミュレーション装置1には、キーボード11、マウス12、モニタ13が接続されている。 Further, FIG. 7 shows an example of a configuration including the simulation device 1, a robot control device 180, and a robot system including the robot device 181. In FIG. 7, the simulation device 1 is illustrated as a control terminal in the form of, for example, a PC (personal computer) including blocks (ROM21, RAM22, HDD23, etc.) centered on the CPU 20 of FIG. A keyboard 11, a mouse 12, and a monitor 13 are connected to the simulation device 1.

図7のモニタ13は、シミュレーション画面100を表示している。シミュレーション画面100は、ロボットモデルや、それにより操作される部品(物体モデル)を表示するCG画面を備える。このシミュレーション画面100は、さらに接触閾値などの設定操作を行うためのユーザーインターフェース40(図6)や、ロボット制御プログラムを設定するためのユーザーインターフェース1000(図8)などを備えている。 The monitor 13 of FIG. 7 displays the simulation screen 100. The simulation screen 100 includes a CG screen that displays a robot model and parts (object models) operated by the robot model. The simulation screen 100 further includes a user interface 40 (FIG. 6) for performing setting operations such as a contact threshold value, a user interface 1000 (FIG. 8) for setting a robot control program, and the like.

本実施形態のシミュレーション装置1は、接触を伴うロボット装置181の動作をオフラインで確認するような用途を想定している。例えば、図7において、シミュレーション装置1は、ロボット制御装置180がロボット装置181を駆動制御するためのロボット制御プログラムの検証などに利用できる。例えば、ハンド182、アーム、操作するワーク183、184などの各物体の接触を伴う動作をシミュレーションすることにより、ロボット装置181を駆動制御するロボット制御プログラムの妥当性を検証することができる。 The simulation device 1 of the present embodiment is intended to be used for offline confirmation of the operation of the robot device 181 accompanied by contact. For example, in FIG. 7, the simulation device 1 can be used for verification of a robot control program for the robot control device 180 to drive and control the robot device 181. For example, the validity of the robot control program that drives and controls the robot device 181 can be verified by simulating the movement of each object such as the hand 182, the arm, and the workpieces 183 and 184 to be operated with contact.

ROM21には、CPU20を動作させるための各種のプログラムが格納されており、CPU20は、ROM21に格納されたプログラムに基づいて後述する部品の組立シミュレーションの演算処理を実行可能となっている。RAM22は、CPU20の処理結果を一時的に記憶するための記憶手段である。HDD23は、記憶装置であり、部品データ、ダイナミクス計算や接触力計算の計算式等の各種情報を予め記憶している。また、CPU20は、HDD23は、CPU20による演算結果等のデータを記憶させる。 Various programs for operating the CPU 20 are stored in the ROM 21, and the CPU 20 can execute arithmetic processing of a component assembly simulation described later based on the programs stored in the ROM 21. The RAM 22 is a storage means for temporarily storing the processing result of the CPU 20. The HDD 23 is a storage device, and stores various information such as component data, dynamics calculation, and contact force calculation formulas in advance. Further, the CPU 20 stores data such as a calculation result by the CPU 20 in the HDD 23.

図1の制御系は、主制御手段としてのCPU20、記憶装置としてのROM21、およびRAM22を備えたPCハードウェアなどによって構成されている。ROM21には、本実施形態の組立シミュレーションを実現するためのCPU20の制御プログラムや定数情報などを格納しておくことができる。また、RAM22は、その制御手順を実行する時にCPU20のワークエリアなどとして使用される。 The control system of FIG. 1 is composed of a CPU 20 as a main control means, a ROM 21 as a storage device, and PC hardware including a RAM 22. The ROM 21 can store a control program of the CPU 20, constant information, and the like for realizing the assembly simulation of the present embodiment. Further, the RAM 22 is used as a work area of the CPU 20 when executing the control procedure.

本実施形態のシミュレーション処理を実現するためのCPU20の制御プログラムは、上記のHDD23やROM21の(例えばEEPROM領域)のような記憶部に格納しておくことができる。その場合、本実施形態の制御手順を実現するためのCPU20の制御プログラムは、ネットワークインターフェースなどを介して、上記の各記憶部に供給し、また新しい(別の)プログラムに更新することができる。また、あるいは、後述の制御手順を実現するためのCPU20の制御プログラムは、例えば記録ディスクドライブ24から上記の各記憶部に供給し、またその内容を更新することができる。記録ディスクドライブ24は、例えば、各種の磁気ディスクや光ディスク、フラッシュメモリなどの記憶手段と、そのためのドライブ装置などから成る。本実施形態の制御手順を実現するためのCPU20の制御プログラムを格納した状態における各種の記憶手段、記憶部、ないし記憶デバイスは、本発明の制御手順を格納したコンピュータ読み取り可能な記録媒体を構成することになる。 The control program of the CPU 20 for realizing the simulation process of the present embodiment can be stored in a storage unit such as the above-mentioned HDD 23 or ROM 21 (for example, EEPROM area). In that case, the control program of the CPU 20 for realizing the control procedure of the present embodiment can be supplied to each of the above-mentioned storage units via a network interface or the like, and can be updated to a new (other) program. Alternatively, the control program of the CPU 20 for realizing the control procedure described later can be supplied from, for example, the recording disk drive 24 to each of the above-mentioned storage units, and the contents thereof can be updated. The recording disk drive 24 includes, for example, storage means such as various magnetic disks, optical disks, and flash memories, and a drive device for the storage means. Various storage means, storage units, or storage devices in a state in which the control program of the CPU 20 for realizing the control procedure of the present embodiment is stored constitutes a computer-readable recording medium in which the control procedure of the present invention is stored. It will be.

シミュレーション装置1は、インターフェース25を介して接続されたキーボード11及びインターフェース26を介して接続されたマウス12などから成る操作入力部を備える。この操作入力部ハードウェアを用いて構成されるユーザーインターフェースを介して、ユーザは各種の設定操作を行うことができる。さらに、シミュレーション装置1には、インターフェース27を介して接続されたモニタ13が備えられており、データ入力(編集)画面、部品等を仮想三次元空間に表示する表示画面などの各種画面が表示可能となっている。また、インターフェース28は、書き換え可能な不揮発性メモリや外付けHDD等の外部記憶装置14が接続可能に構成されている。 The simulation device 1 includes an operation input unit including a keyboard 11 connected via the interface 25 and a mouse 12 connected via the interface 26. The user can perform various setting operations through the user interface configured by using the operation input unit hardware. Further, the simulation device 1 is provided with a monitor 13 connected via an interface 27, and can display various screens such as a data input (editing) screen and a display screen for displaying parts and the like in a virtual three-dimensional space. It has become. Further, the interface 28 is configured so that an external storage device 14 such as a rewritable non-volatile memory or an external HDD can be connected.

図2はシミュレーション全体の処理の流れを示している。以下で説明するシミュレーション処理は、複数の物体モデルが存在する仮想空間で、少なくとも1つの物体モデルを動作させるものである。これらシミュレーションモデルとしての物体モデルは、例えば、産業用のロボット装置、ないしそのロボット装置に対応するワークなどの物体、あるいはロボット装置が配置された実環境(仮想空間に相当)中に配置された障害物などの物体に相当する。なお、以下の仮想空間における物体モデルについては、簡略に「物体」と記載する場合がある。また、以下のシミュレーション処理の説明では、部品(ワーク)ロボット(装置)、障害物などの物体に相当する物体モデルも、「部品(ワーク)」、「ロボット(装置)」、「障害物」など、実環境における部材名称により言及する場合がある。 FIG. 2 shows the processing flow of the entire simulation. The simulation process described below operates at least one object model in a virtual space in which a plurality of object models exist. The object model as these simulation models is, for example, an industrial robot device, an object such as a work corresponding to the robot device, or an obstacle placed in a real environment (corresponding to a virtual space) in which the robot device is placed. Corresponds to an object such as an object. The object model in the following virtual space may be simply described as "object". In addition, in the following explanation of simulation processing, object models corresponding to objects such as parts (work) robots (devices) and obstacles are also referred to as "parts (work)", "robots (devices)", "obstacles", etc. , May be referred to by the member name in the actual environment.

本実施形態において、例えばロボット装置を動作させるロボット装置を制御するロボット制御プログラムに記述された態様で、前記ロボット装置が操作する対象の物体に対応する前記物体モデルを前記仮想空間で動作させる。このシミュレーション処理により、ロボット制御プログラムに記述されたロボット動作を検証することができる。そして、検証し、あるいはさらに必要な修正を行ったロボット制御プログラムを用いて、実際のロボット装置に物体モデルに相当するワークを操作させる組立動作を行い、例えば、物品の製造を実施することができる。 In the present embodiment, for example, in the embodiment described in the robot control program that controls the robot device that operates the robot device, the object model corresponding to the target object operated by the robot device is operated in the virtual space. By this simulation process, the robot operation described in the robot control program can be verified. Then, using a robot control program that has been verified or further modified as necessary, an assembly operation that causes an actual robot device to operate a work corresponding to an object model can be performed, and for example, an article can be manufactured. ..

本実施形態のシミュレーション処理は以下のように行われる。まず、ロボット装置のリンクやワークの位置情報、質量、慣性モーメント、重心位置、3Dモデルとして記述された物体モデル、その初期変位、初期速度、初期加速度、などの情報を読み込み、シミュレーションモデルの設定を行う(S1)。 The simulation process of this embodiment is performed as follows. First, read the information such as the link and work position information of the robot device, mass, moment of inertia, center of gravity position, the object model described as a 3D model, its initial displacement, initial velocity, initial acceleration, etc., and set the simulation model. Do (S1).

次に、シミュレーション時間、シミュレーション時間間隔、物体同士の反発係数、部品同士が接触したと判断するための所定の閾値、即ち接触閾値など、シミュレーション全体に係るシミュレーション条件について設定する(S2)。シミュレーションを行う準備ができたら、シミュレーション計算を開始する(S3)。 Next, simulation conditions related to the entire simulation, such as a simulation time, a simulation time interval, a coefficient of restitution between objects, and a predetermined threshold value for determining that parts are in contact with each other, that is, a contact threshold value, are set (S2). When the simulation is ready to be performed, the simulation calculation is started (S3).

本実施形態のシミュレーション計算では、1ステップずつ計算を行い、シミュレーションを進める。ここで、図3および図4を参照して本実施形態のシミュレーション計算について説明する。 In the simulation calculation of this embodiment, the calculation is performed step by step to proceed with the simulation. Here, the simulation calculation of the present embodiment will be described with reference to FIGS. 3 and 4.

図3は、接触計算を含むシミュレーション計算のフローチャートを表している。シミュレーション計算では、まず、後述の過去のシミュレーションステップへロールバックした後、用いるため、現在のシミュレーションステップ(第1のシミュレーションステップ)における位置と速度をバックアップする(S4)。下式においてqbackupで示す位置と加速度の変数領域は、例えばRAM22などに確保される。 FIG. 3 shows a flowchart of simulation calculation including contact calculation. In the simulation calculation, first, the position and speed in the current simulation step (first simulation step) are backed up for use after rolling back to the past simulation step described later (S4). The variable area of the position and acceleration indicated by q backup in the following equation is secured in, for example, RAM 22.

Figure 2021077149
Figure 2021077149

次に以降で説明するロールバックのために、シミュレーションの接触計算に用いる近接点数のゼロクリアを行う(S5)。なお、この接触計算の概略は、例えば以下の疑似プログラムコードに示すような判定処理である。 Next, for the rollback described later, the number of proximity points used in the contact calculation of the simulation is cleared to zero (S5). The outline of this contact calculation is, for example, a determination process as shown in the following pseudo program code.

Figure 2021077149
Figure 2021077149

次に下式のようなダイナミクス計算を行い、物体にかかる力から加速度を計算する(S6)。その場合、剛体の運動方程式は下式に示すように記述できる。 Next, the dynamics calculation as shown in the following equation is performed, and the acceleration is calculated from the force applied to the object (S6). In that case, the equation of motion of the rigid body can be described as shown in the following equation.

Figure 2021077149
Figure 2021077149

上式において、q、その微分、2階微分はそれぞれ剛体の変位、速度、加速度、τは剛体にかかる接触力である。また、H()は慣性項、C()はコリオリ・遠心項、G()は重力項である。上式の接触力τを用い、下式のように、剛体にかかる接触力から加速度を計算することができる。 In the above equation, q, its derivative, and the second derivative are the displacement, velocity, and acceleration of the rigid body, respectively, and τ is the contact force applied to the rigid body. Further, H () is an inertial term, C () is a Coriolis / centrifugal term, and G () is a gravity term. Using the contact force τ in the above equation, the acceleration can be calculated from the contact force applied to the rigid body as in the equation below.

Figure 2021077149
Figure 2021077149

次に、加速度から速度と位置を計算する積分計算を行う(S7)。剛体の初期状態は、一般的には下式のように与えられる。 Next, an integral calculation is performed to calculate the velocity and position from the acceleration (S7). The initial state of a rigid body is generally given by the following equation.

Figure 2021077149
Figure 2021077149

シミュレーション計算では、この初期状態(初期シミュレーションステップ)から離散ステップ(t)だけ進んだ次の状態(シミュレーションステップ)を、数値積分手法で連続的に計算する。例えばオイラー積分の場合、シミュレーション計算は下式のように計算することができる。 In the simulation calculation, the next state (simulation step) advanced by the discrete step (t) from this initial state (initial simulation step) is continuously calculated by the numerical integration method. For example, in the case of Euler integration, the simulation calculation can be calculated as follows.

Figure 2021077149
Figure 2021077149

そして、この歩進させた後のシミュレーションステップにおいて、接触計算を行い部品同士のオーバーラップがあるかどうかを確認する(S8)。ここでオーバーラップがなければ(S8のNO)、シミュレーションが完了したかを確認(S9)し、シミュレーションを続行する場合(S9のNO)は、制御をループさせ、次のシミュレーションステップの計算に移る。 Then, in the simulation step after this step, contact calculation is performed to confirm whether or not there is overlap between the parts (S8). If there is no overlap here (NO in S8), it is confirmed whether the simulation is completed (S9), and if the simulation is continued (NO in S9), the control is looped and the calculation of the next simulation step is started. ..

図4(a)〜(d)は、シミュレーション計算結果の一例を示している。図4(a)〜(d)において、物体31はシミュレーション対象の物体であり、物体331、332は障害物を示しており、ここでは、物体31と、物体331、332は互いに接近する速度を持っているものとする。シミュレーション計算を行うことにより、シミュレーション対象の物体31は、図4(a)〜(d)に32、327〜329で示すような位置に移動する。32、329の場合は、物体と障害物はオーバーラップしていない状態である。 4 (a) to 4 (d) show an example of the simulation calculation result. In FIGS. 4A to 4D, the object 31 is an object to be simulated, and the objects 331 and 332 show obstacles. Here, the object 31 and the objects 331 and 332 approach each other at different velocities. Suppose you have. By performing the simulation calculation, the object 31 to be simulated moves to the position shown in 32, 327 to 329 in FIGS. 4 (a) to 4 (d). In the case of 32 and 329, the object and the obstacle do not overlap.

ところで、シミュレーション計算は離散ステップで行われるため、例えば、図4(a)〜(d)に示すように、位置を計算した際に物体同士、例えば物体331ないし332と物体327ないし328がオーバーラップする可能性がある。 By the way, since the simulation calculation is performed in discrete steps, for example, as shown in FIGS. 4A to 4D, when the positions are calculated, the objects, for example, the objects 331 to 332 and the objects 327 to 328 overlap each other. there's a possibility that.

解析法で接触力計算を行う場合は物体間の近接点の計算が必要であるが、オーバーラップが発生すると近接点が計算できないので接触力計算ができなくなる。図4(b)は、オーバーラップした場合のシミュレーション計算の結果を表している。ここでは、シミュレーション計算の結果、327で示すように、物体31が物体331(障害物)とオーバーラップしている。そして、オーバーラップが確認(S8のYES)された場合には、シミュレーション状態を過去のシミュレーションステップにロールバックする(S10)。このロールバック操作では、バックアップしたシミュレーションデータ(数式1に示した位置、加速度の変数領域)を用い、下式のようにシミュレーション状態(位置、加速度)を以前の状態(シミュレーションステップ)に戻す。 When calculating the contact force by the analysis method, it is necessary to calculate the proximity points between the objects, but if the overlap occurs, the proximity points cannot be calculated, so the contact force cannot be calculated. FIG. 4B shows the result of the simulation calculation when they overlap. Here, as a result of the simulation calculation, as shown by 327, the object 31 overlaps with the object 331 (obstacle). Then, when the overlap is confirmed (YES in S8), the simulation state is rolled back to the past simulation step (S10). In this rollback operation, the backed up simulation data (position, acceleration variable region shown in Equation 1) is used to return the simulation state (position, acceleration) to the previous state (simulation step) as shown in the following equation.

Figure 2021077149
Figure 2021077149

図4(b)のように、離散ステップt+Δtで物体のオーバーラップが検出されると、上記のようにロールバックしたステップ(第2のシミュレーションステップ)で接触力が発生したものとして取り扱う。具体的には、物体が接触閾値内に存在するまで接触閾値の拡大(図3のS11)と、接触閾値内に物体が存在するか否かの判定(S12)を実施し、その後に近接点の取得計算(S13)を行う。接触閾値の拡大フローの最後には、閾値拡大によって近接点の数が増加したかどうかを判定し(S14)、近接点が増加した場合(S14のYES)には、近接点数を保存する(S15)。この近接点数の保存は、接触閾値拡大後の接触力計算に基づき、再度オーバーラップ判定が生じた場合に必要となるために行うものである。 As shown in FIG. 4B, when the overlap of the objects is detected in the discrete step t + Δt, it is treated as if the contact force was generated in the step rolled back as described above (second simulation step). Specifically, the contact threshold is expanded until the object is within the contact threshold (S11 in FIG. 3), and whether or not the object is within the contact threshold is determined (S12), and then the proximity point. Acquisition calculation (S13) is performed. At the end of the contact threshold expansion flow, it is determined whether or not the number of proximity points has increased due to the threshold expansion (S14), and if the number of proximity points has increased (YES in S14), the number of proximity points is saved (S15). ). This storage of the number of proximity points is performed because it is necessary when the overlap determination occurs again based on the contact force calculation after the contact threshold value is expanded.

なお、物体(例えばロボットで操作する部品やワーク)同士のオーバーラップや、接触閾値以内に物体同士が存在するかの判定方法については、公知の技術を利用できる。この種の干渉検出の手法は、例えば”Real−Time Collision Detection”,CRC Press,2004になどに記載されている。 It should be noted that known techniques can be used for overlapping objects (for example, parts and workpieces operated by a robot) and a method for determining whether objects exist within a contact threshold value. Techniques for this type of interference detection are described, for example, in "Real-Time Collection Detection", CRC Press, 2004 and the like.

例えば、部品の接触確認は、3Dモデルの3角形ポリゴン情報を用いて行う。2つの部品の3角形ポリゴンの要素それぞれについて交差が起きているかどうかを判定することにより、物体同士が接触しているかどうかを確認できる。3角形同士の交差の有無の判定手法は様々であるが、三角形の3頂点情報の関係性を用いた幾何学的演算により容易に計算することができる。同様に、接触閾値以内に物体同士が存在するか否かは、下記の疑似プログラムコードに示すような演算において、2つの部品の3角形ポリゴンのそれぞれについての距離Lと閾値Tを比較することで容易に判定できる。 For example, the contact confirmation of parts is performed using the triangular polygon information of the 3D model. By determining whether or not each of the elements of the triangular polygons of the two parts intersects, it is possible to confirm whether or not the objects are in contact with each other. There are various methods for determining the presence or absence of intersections between triangles, but it can be easily calculated by geometric calculation using the relationship of the information of the three vertices of a triangle. Similarly, whether or not the objects exist within the contact threshold value is determined by comparing the distance L and the threshold value T for each of the triangular polygons of the two parts in the calculation as shown in the pseudo program code below. It can be easily determined.

Figure 2021077149
Figure 2021077149

接触閾値内に物体が存在した場合には、接触力の計算を行う(S16)。この接触力に関しては、非特許文献1に記載の方法を利用して計算を行う。この非特許文献1の手法は、物体同士の近接点において接触前と接触後の相対速度が理論的に正しくなるように連立方程式を立て、近接点の速度と接触力に関する条件式を用い、線形相補性問題として解くものである。 If the object is within the contact threshold, the contact force is calculated (S16). This contact force is calculated by using the method described in Non-Patent Document 1. In this method of Non-Patent Document 1, simultaneous equations are established so that the relative velocities before and after contact are theoretically correct at the proximity points between objects, and linear equations are used for the velocity and contact force of the proximity points. It is solved as a complementarity problem.

図5は、物体31と物体33に関して、接触閾値を拡大するデータ操作を示している。本実施形態において、接触閾値は、この値よりも物体同士が近接した場合に接触が発生したとするための基準である。図5において、最初は、接触閾値は351の状態であり、このとき閾値(351)以内の距離に物体31と物体33(障害物)が存在しない。本実施形態の処理では、この場合、接触閾値を352の状態に拡大する。このとき、物体31と障害物33は互いに接触閾値の相対距離に存在するため、接触が発生しているものとして取り扱えるようになる。この閾値拡大の操作について、ロールバック時の拡大量の設定は、予めシミュレーション条件設定(S2)で行うことが考えられる。 FIG. 5 shows a data manipulation that expands the contact threshold for the object 31 and the object 33. In the present embodiment, the contact threshold value is a standard for assuming that contact occurs when objects are closer to each other than this value. In FIG. 5, the contact threshold value is initially 351 and at this time, the object 31 and the object 33 (obstacle) do not exist within the distance within the threshold value (351). In the process of this embodiment, in this case, the contact threshold is expanded to the state of 352. At this time, since the object 31 and the obstacle 33 exist at a relative distance of the contact threshold value, they can be treated as if they are in contact with each other. Regarding this threshold value expansion operation, it is conceivable that the expansion amount at the time of rollback is set in advance in the simulation condition setting (S2).

図8は、ロボット制御プログラムを設定するためのユーザーインターフェース1000を示している。図8のユーザーインターフェース1000は、マウス12のクリックやドラッグ、あるいはキーボード11からのキーボードショートカット操作などによって操作することができる。ユーザーインターフェース1000のダイアログは、メニュー101を有し、このメニュー101は、例えばプルダウン(アップ)メニューなどの形態で実装され、シミュレーションに用いるロボット制御プログラムを指定できるように構成される。メニュー101のメニューアイテムには、HDD23などに現在格納されているロボット制御プログラムがリストされる。 FIG. 8 shows a user interface 1000 for setting a robot control program. The user interface 1000 of FIG. 8 can be operated by clicking or dragging the mouse 12, or operating a keyboard shortcut from the keyboard 11. The dialog of the user interface 1000 has a menu 101, which is implemented in the form of, for example, a pull-down (up) menu, and is configured so that a robot control program to be used for simulation can be specified. The menu item of the menu 101 lists the robot control programs currently stored in the HDD 23 or the like.

メニュー101でロボット制御プログラムを選択し、図8の開始ボタン1011を操作すると、仮想空間内で、ロボット制御プログラムで定義された動作を行うよう、仮想ロボットを動作させるシミュレーションを開始させることができる。仮想ロボット(当然ながら、これもシミュレーション対象の物体モデルの1つである)の動作は、図7のシミュレーション画面100中で、例えば3D表示などの形態でアニメーション表示させることができる。図8の停止ボタン1012は開始させたシミュレーションを停止(一時停止)させるために用いられる。 When the robot control program is selected from the menu 101 and the start button 1011 of FIG. 8 is operated, the simulation of operating the virtual robot can be started so as to perform the operation defined by the robot control program in the virtual space. The operation of the virtual robot (which is, of course, also one of the object models to be simulated) can be animated and displayed in the simulation screen 100 of FIG. 7, for example, in a form such as 3D display. The stop button 1012 of FIG. 8 is used to stop (pause) the started simulation.

図8のユーザーインターフェース1000で選択されるロボット制御プログラムには、位置制御や力制御などのパラメータが記述されている。シミュレーションする仮想環境中では、もちろん、ロボット装置のアームやハンドなどの部位は、ロボット装置が操作するワークなどとともに、物体モデルとして取り扱う。シミュレーション環境で、ロボット制御プログラムに従い、これらの物体モデルを動作させることにより、例えば、ロボット制御プログラムの妥当性を検証することができる。 In the robot control program selected by the user interface 1000 of FIG. 8, parameters such as position control and force control are described. In the virtual environment to be simulated, of course, parts such as the arm and hand of the robot device are treated as an object model together with the work operated by the robot device. By operating these object models according to the robot control program in the simulation environment, for example, the validity of the robot control program can be verified.

シミュレーション計算における接触計算は計算コストが大きいため、図6のようなインターフェース40を用いてシミュレーションの精度と速度を調整できるようにしておくとよい。 Since the contact calculation in the simulation calculation has a high calculation cost, it is preferable to be able to adjust the accuracy and speed of the simulation by using the interface 40 as shown in FIG.

図6のユーザーインターフェース40のダイアログにおいて、フィールド43は、最大ロールバック回数を指定するための、例えば数値入力フィールドである。ユーザは、フィールド43を介して図3のS10で行われるロールバックの回数の上限を指定することができる。最大ロールバック回数の値は、S10から始まるフローの無限ループの可能性を排除するために有効な設定項目である。 In the dialog of the user interface 40 of FIG. 6, the field 43 is, for example, a numerical input field for specifying the maximum number of rollbacks. The user can specify an upper limit of the number of rollbacks performed in S10 of FIG. 3 via the field 43. The value of the maximum number of rollbacks is an effective setting item for eliminating the possibility of an infinite loop of the flow starting from S10.

最大ロールバック回数がフィールド43を介して指定した上限値に達した場合には、図9に示すようなダイアログ1100をポップアップ表示し、シミュレーション継続の如何をユーザに尋ねる。図9のダイアログ1100は、最大ロールバック回数が指定した上限値に達したことを報知する、例えばテキスト、あるいはさらにアイコンなどのシンボル表示によるメッセージ1103を備える。また、図9のダイアログ1100は、ユーザがシミュレーションを継続させるための継続ボタン1101と、シミュレーションを停止させるための停止ボタン1102と、を有する。 When the maximum number of rollbacks reaches the upper limit value specified via the field 43, the dialog 1100 as shown in FIG. 9 is popped up and the user is asked whether to continue the simulation. The dialog 1100 of FIG. 9 includes a message 1103 that notifies that the maximum number of rollbacks has reached a specified upper limit value, for example, by displaying a symbol such as a text or an icon. Further, the dialog 1100 of FIG. 9 has a continuation button 1101 for the user to continue the simulation and a stop button 1102 for stopping the simulation.

図6のユーザーインターフェース40を構成するダイアログにおいて、フィールド44は、ユーザが接触閾値の拡大幅を指定するための、例えば数値入力フィールドである。この接触閾値の拡大幅は、図3のS11で用いられる接触閾値の拡大幅に相当する。ここで与える拡大幅が小さいほど接触計算の精度が上がるが、計算コストが大きくなる。なお、フィールド44では、0以下の拡大幅は設定できないものとする。 In the dialog constituting the user interface 40 of FIG. 6, the field 44 is, for example, a numerical input field for the user to specify the expansion width of the contact threshold value. The expansion width of the contact threshold value corresponds to the expansion width of the contact threshold value used in S11 of FIG. The smaller the enlargement width given here, the higher the accuracy of the contact calculation, but the higher the calculation cost. In the field 44, it is not possible to set an enlargement width of 0 or less.

図6のダイアログ40において、フィールド45は、図3のS11〜S13で用いられる接触閾値の最大値をユーザが指定するための、例えば数値入力フィールドである。この接触閾値の最大値は、図3のS10から始まるフローの無限ループの可能性を排除するために有効である。 In the dialog 40 of FIG. 6, the field 45 is, for example, a numerical input field for the user to specify the maximum value of the contact threshold value used in S11 to S13 of FIG. This maximum value of the contact threshold is effective in eliminating the possibility of an infinite loop of the flow starting from S10 in FIG.

図6のフィールド45から指定した接触閾値が上限(最大値)に達した場合には図10のようなダイアログ提示する。シミュレーション継続の如何をユーザに問うのが適当である。また、図10のダイアログ1100は、接触閾値が上限(最大値)に達したことを報知する、例えばテキスト、あるいはさらにアイコンなどのシンボル表示によるメッセージ1104を備える。また、図10のダイアログ1100は、ユーザがシミュレーションを継続させるための継続ボタン1101と、シミュレーションを停止させるための停止ボタン1102と、を有する。 When the contact threshold value specified from the field 45 of FIG. 6 reaches the upper limit (maximum value), a dialog as shown in FIG. 10 is presented. It is appropriate to ask the user how to continue the simulation. Further, the dialog 1100 of FIG. 10 includes a message 1104 that notifies that the contact threshold has reached the upper limit (maximum value), for example, by displaying a symbol such as a text or an icon. Further, the dialog 1100 of FIG. 10 has a continuation button 1101 for the user to continue the simulation and a stop button 1102 for stopping the simulation.

図4(c)は、図4(b)のシミュレーションをロールバックし、閾値拡大を行い、近接点を計算した場合のシミュレーション結果の一例を示している。図4中の341、342は、物体31、332同士の近接点を表している。近接点341と近接点342はペアになっており、この2点間の位置関係により反発力や摩擦力の方向が計算される。図4(c)例では、実線で示した物体31に対して、接触力を元にシミュレーション計算を行った結果、328で示すように、シミュレーション対象の物体31が障害物331とオーバーラップしている結果となっている。 FIG. 4C shows an example of the simulation result when the simulation of FIG. 4B is rolled back, the threshold value is expanded, and the proximity point is calculated. 341 and 342 in FIG. 4 represent close points between objects 31 and 332. The proximity point 341 and the proximity point 342 are paired, and the directions of the repulsive force and the frictional force are calculated based on the positional relationship between the two points. In the example of FIG. 4 (c), as a result of performing simulation calculation based on the contact force with respect to the object 31 shown by the solid line, as shown in 328, the object 31 to be simulated overlaps with the obstacle 331. The result is that.

図4(d)は、シミュレーションステップをロールバックし、物体31と、332の近接点341、342と、物体31と、331の近接点343、344を計算した状態である。この状態から、物体31の位置、速度、加速度などから接触力をシミュレーション計算することができる。 FIG. 4D shows a state in which the simulation step is rolled back and the proximity points 341 and 342 of the object 31 and 332 and the proximity points 343 and 344 of the object 31 and 331 are calculated. From this state, the contact force can be simulated and calculated from the position, velocity, acceleration, and the like of the object 31.

これにより、接触力計算を無効にしてしまう物体31と障害物33のオーバーラップは解消される。そして、この場合は、シミュレーションをロールバックさせた位置、速度、加速度などから計算した物体31が物体331と物体332に対する接触力によって跳ね返るシミュレーションが実行できている(329)。 As a result, the overlap between the object 31 and the obstacle 33, which invalidates the contact force calculation, is eliminated. Then, in this case, the simulation in which the object 31 calculated from the rollback position, speed, acceleration, etc. of the simulation bounces off due to the contact force with respect to the object 331 and the object 332 can be executed (329).

以上に示したように、本実施形態のシミュレーション演算によれば、シミュレーション中に物体同士のオーバーラップが発生した場合でも、適切にシミュレーション演算を継続する事ができる。また、本実施形態のユーザーインターフェースによれば、シミュレーションをロールバックさせる場合には、接触閾値を拡大することができ、これにより、ロールバックした状態からのオーバーラップを解消できる可能性を増大させることができる。また、本実施形態ユーザーインターフェースによれば、接触閾値の拡大幅を小さな値に制限することもでき、シミュレーションを物体同士がより近接した接触状態に近い位置から続行させることができる。これにより、続行されるシミュレーションの接触力計算の精度を向上させることができる。また、ロールバックを行ってもオーバーラップが解消していなければ、オーバーラップを繰り返し、実行させることができる。その場合、本実施形態のユーザーインターフェースによれば、繰り返し実行回数を制限することができ、シミュレーション演算が無限ループ状態に入るような障害を回避することができる。 As described above, according to the simulation calculation of the present embodiment, the simulation calculation can be appropriately continued even when the objects overlap with each other during the simulation. Further, according to the user interface of the present embodiment, when the simulation is rolled back, the contact threshold value can be increased, thereby increasing the possibility of eliminating the overlap from the rolled back state. Can be done. Further, according to the user interface of the present embodiment, the expansion width of the contact threshold value can be limited to a small value, and the simulation can be continued from a position closer to the contact state where the objects are closer to each other. This can improve the accuracy of the contact force calculation of the continuing simulation. Further, if the overlap is not eliminated even after the rollback is performed, the overlap can be repeated and executed. In that case, according to the user interface of the present embodiment, the number of repeated executions can be limited, and it is possible to avoid an obstacle such that the simulation calculation enters an infinite loop state.

即ち、本実施形態によれば、複数の物体間の接触力を用いるシミュレーション処理において、物体同士のオーバーラップが発生しても解析法を用いたシミュレーションを継続することができる。また、オーバーラップが発生した際には状況に応じて最小な接触閾値が決定される。このため、従来技術におけるように、あらかじめ大きな接触閾値を設定する必要がなく、接触シミュレーションの精度が向上する。また、物体同士がオーバーラップした時のみ接触力計算を行うように計算を進めることができ、物体同士がオーバーラップしていない間の物体同士の接触閾値内判定を省略できるため、処理コストを大きく低減する事ができる。 That is, according to the present embodiment, in the simulation process using the contact force between a plurality of objects, the simulation using the analysis method can be continued even if the objects overlap each other. Further, when the overlap occurs, the minimum contact threshold value is determined according to the situation. Therefore, unlike the prior art, it is not necessary to set a large contact threshold value in advance, and the accuracy of contact simulation is improved. In addition, the calculation can proceed so that the contact force is calculated only when the objects overlap each other, and the determination within the contact threshold between the objects while the objects do not overlap can be omitted, so that the processing cost is increased. It can be reduced.

<実施形態2>
シミュレーション開始前に、上述の接触閾値の初期値を適宜設定しておき、物体モデル同士のオーバーラップが生じる前に、ロールバックを行うことなく接触力のシミュレーション演算が行われるよう制御手順を構成することもできる。
<Embodiment 2>
Before the start of the simulation, the initial value of the above-mentioned contact threshold value is appropriately set, and the control procedure is configured so that the simulation calculation of the contact force is performed without rolling back before the overlap between the object models occurs. You can also do it.

本実施形態の図11の制御手順は、図3の制御に、接触閾値の初期値を判定し、接触閾値以内に物体モデル同士が近接した場合にステップS13に分岐するためのステップS17を追加したものである。図11の他のステップは、上述の図3で説明したものと同じであるため、ここでは重複した説明は省略する。 In the control procedure of FIG. 11 of the present embodiment, step S17 for determining the initial value of the contact threshold value and branching to step S13 when the object models are close to each other within the contact threshold value is added to the control of FIG. It is a thing. Since the other steps in FIG. 11 are the same as those described in FIG. 3 above, duplicate description will be omitted here.

また、図12は、接触閾値の初期値を考慮した図6のユーザーインターフェースに、接触閾値の初期値を設定するための入力フィールド46を追加したユーザーインターフェースを示している。図12のユーザーインターフェースにおいて、入力フィールド46により設定された接触閾値の初期値は、図11のステップS17で用いられる接触閾値の初期値である。 Further, FIG. 12 shows a user interface in which an input field 46 for setting an initial value of the contact threshold value is added to the user interface of FIG. 6 in consideration of the initial value of the contact threshold value. In the user interface of FIG. 12, the initial value of the contact threshold value set by the input field 46 is the initial value of the contact threshold value used in step S17 of FIG.

以上のように、本実施形態は、シミュレーション制御に図11のようにステップS17の分岐を追加しておき、適宜接触閾値の初期値を設定できるよう構成されている。このような構成により、物体モデル同士のオーバーラップが生じる前に、ロールバックを行うことなく接触力のシミュレーション演算を行わせることができる。従って、本実施形態によれば、接触力シミュレーションをより高速化することができる。 As described above, the present embodiment is configured so that the branch of step S17 is added to the simulation control as shown in FIG. 11 and the initial value of the contact threshold value can be appropriately set. With such a configuration, it is possible to perform the simulation calculation of the contact force without performing rollback before the overlap between the object models occurs. Therefore, according to the present embodiment, the contact force simulation can be made faster.

なお、シミュレーション装置は、図3の制御手順と、図11の制御手順を双方とも用意しておき、適当な選択ユーザーインターフェース(不図示)を介していずれかの制御手順を選択できるように構成してもよい。あるいは、上記の選択ユーザーインターフェースは、図11のステップS17の分岐制御を挿入(有効化)するか否かを決定するラジオボタンなどにより構成してもよい。このような構成により、接触状態が少ないと予想されるようなシミュレーションでは図3の制御を用い、接触状態が多いと予想されるようなシミュレーションでは、図11の制御を用いるような選択が可能となる。 The simulation device is configured so that both the control procedure of FIG. 3 and the control procedure of FIG. 11 are prepared so that either control procedure can be selected via an appropriate selection user interface (not shown). You may. Alternatively, the selected user interface may be configured by a radio button or the like that determines whether or not to insert (enable) the branch control in step S17 of FIG. With such a configuration, it is possible to select to use the control of FIG. 3 in the simulation where the contact state is expected to be small, and to use the control of FIG. 11 in the simulation where the contact state is expected to be large. Become.

<実施形態3>
上記実施形態1では、シミュレーション中にオーバーラップが発生し、ロールバックを行う場合に、物体モデル同士のオーバーラップないし近接状態を判定するための接触閾値を拡大する、またその拡大幅を設定可能な構成を例示した。
<Embodiment 3>
In the first embodiment, when overlap occurs during simulation and rollback is performed, the contact threshold value for determining the overlap or proximity state between the object models can be expanded, and the expansion width can be set. The configuration is illustrated.

上記実施形態1の例は、接触閾値の拡大幅を手動設定するものであった。しかしながら、このような手動設定によると、ユーザが選択した接触閾値の拡大幅の設定と、シミュレーションする環境やモデルの構成との不整合によって、好ましくない制御状態が生じる可能性がある。例えば、接触閾値の拡大幅は、小さすぎると近接点検出までの閾値拡大の繰り返し回数が多くなり、大きすぎると意図しない近接点を検出してしまう。 In the example of the first embodiment, the expansion width of the contact threshold value is manually set. However, according to such a manual setting, an unfavorable control state may occur due to an inconsistency between the setting of the expansion width of the contact threshold selected by the user and the configuration of the environment or model to be simulated. For example, if the expansion width of the contact threshold value is too small, the number of times the threshold value expansion is repeated until the proximity point is detected increases, and if it is too large, an unintended proximity point is detected.

そこで、接触閾値の拡大幅の適正値を、物体モデルの状態に応じて自動設定する構成が考えられる。本実施形態では、接触閾値の拡大幅を、物体モデルの状態、例えば物体モデルの相対速度に基づき、計算、設定する例を示す。 Therefore, a configuration is conceivable in which the appropriate value of the expansion width of the contact threshold value is automatically set according to the state of the object model. In this embodiment, an example of calculating and setting the expansion width of the contact threshold value based on the state of the object model, for example, the relative velocity of the object model is shown.

図13は、シミュレーション中にオーバーラップする物体モデル36、39(例えば部品)を示している。ここで、物体モデル36は1ステップ後に位置37に移動するような速度38を有し、物体モデル39は1ステップ後に位置42に移動するような速度41を有する。実施形態1と同様の制御によると、物体モデル36、39が位置37、42を占めた時、オーバーラップが発生し、シミュレーションステップのロールバックが行われる。 FIG. 13 shows object models 36, 39 (eg, parts) that overlap during simulation. Here, the object model 36 has a velocity 38 such that it moves to the position 37 after one step, and the object model 39 has a velocity 41 that moves to the position 42 after one step. According to the same control as in the first embodiment, when the object models 36 and 39 occupy the positions 37 and 42, the overlap occurs and the simulation step is rolled back.

この場合、本実施形態では、例えば下式のような演算によって、接触閾値の拡大幅を計算する。まず、物体モデル36の速度38(v)と物体モデル39の速度41(v)を用いて、物体モデル36と物体モデル39の相対速度42‐1(vrel)を算出する。ここで、図14は、図13中の速度38(v)、物体モデル39の速度41(v)、物体モデル36と物体モデル39の相対速度42‐1(vrel)のベクトル表現で示している。 In this case, in the present embodiment, the expansion width of the contact threshold value is calculated by an operation such as the following equation. First, the relative velocity 42-1 (v rel ) of the object model 36 and the object model 39 is calculated by using the velocity 38 (v 1 ) of the object model 36 and the velocity 41 (v 2) of the object model 39. Here, FIG. 14 is a vector representation of the velocity 38 (v 1 ) in FIG. 13, the velocity 41 (v 2 ) of the object model 39, and the relative velocity 42-1 (v rel) of the object model 36 and the object model 39. Shown.

Figure 2021077149
Figure 2021077149

そして、下式のように相対速度にシミュレーションの1ステップの時間(Δt)を乗算することにより、それぞれの物体モデル(例えば部品)がシミュレーションの1ステップにおいて近づく距離(D)を算出できる。 Then, by multiplying the relative velocity by the time (Δt) of one step of the simulation as shown in the following equation, the distance (D) that each object model (for example, a part) approaches in one step of the simulation can be calculated.

Figure 2021077149
Figure 2021077149

以上のように、相対速度42‐1にシミュレーションの1ステップの時間を掛けた値を接触閾値の拡大幅とすることにより、たかだか1回の接触閾値拡大の試行で物体同士の近接点43‐1と近接点43‐2のペアを取得することができる(図15)。 As described above, by multiplying the relative velocity 42-1 by the time of one step of the simulation as the expansion width of the contact threshold value, the proximity point 43-1 between the objects can be obtained by at most one trial of the contact threshold expansion. And a pair of proximity points 43-2 can be obtained (Fig. 15).

以上のように、本実施形態によれば、シミュレーション処理に必要な物体モデルの接触閾値の拡大幅の適正値を、物体モデルの状態に応じて自動設定することができる。例えば、接触閾値の拡大幅は、物体モデルの状態、例えば物体モデルの相対速度に基づき、計算、設定することができる。従って、熟練を必要とする手動設定を行う必要がなく、自動的にシミュレーション処理に必要な物体モデルの接触閾値の拡大幅の適正値を、物体モデルの状態に応じて自動設定することができる。 As described above, according to the present embodiment, it is possible to automatically set an appropriate value of the expansion width of the contact threshold value of the object model required for the simulation process according to the state of the object model. For example, the expansion width of the contact threshold value can be calculated and set based on the state of the object model, for example, the relative velocity of the object model. Therefore, it is not necessary to perform manual setting that requires skill, and it is possible to automatically set an appropriate value of the expansion width of the contact threshold value of the object model required for the simulation process according to the state of the object model.

本発明は上述の実施例の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。 The present invention supplies a program that realizes one or more functions of the above-described embodiment to a system or device via a network or storage medium, and one or more processors in the computer of the system or device reads and executes the program. But it is feasible. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.

1…シミュレーション装置、13…モニタ、20…CPU、21…ROM、22…RAM、23…HDD、25〜28…インターフェース、1000…ユーザーインターフェース、1011…開始ボタン、1012…停止ボタン、31、32、331、332…物体(物体モデル)。 1 ... Simulation device, 13 ... Monitor, 20 ... CPU, 21 ... ROM, 22 ... RAM, 23 ... HDD, 25-28 ... Interface, 1000 ... User interface, 1011 ... Start button, 1012 ... Stop button, 31, 32, 331, 332 ... Object (object model).

Claims (16)

複数の物体モデルが存在する仮想空間で、少なくとも1つの物体モデルを動作させるシミュレーションを行う情報処理方法において、
制御装置が、第1のシミュレーションステップにおいて、複数の物体モデルのオーバーラップが発生しているか否かを判定し、前記複数の物体モデルのオーバーラップが発生している場合、シミュレーションの状態をオーバーラップが生じていない過去の第2のシミュレーションステップにロールバックさせる工程と、
前記制御装置が、ロールバックさせた前記第2のシミュレーションステップにおいて、前記物体モデルの所定の閾値以内の距離で互いに近接する近接点を取得し、取得した前記近接点の接触前と接触後の相対速度を用いて、前記物体モデル同士が接触した場合に前記物体モデルの間に働く接触力を演算する工程と、を含む情報処理方法。
In an information processing method that simulates the operation of at least one object model in a virtual space where multiple object models exist.
In the first simulation step, the control device determines whether or not the overlap of the plurality of object models has occurred, and if the overlap of the plurality of object models has occurred, the simulation states are overlapped. The process of rolling back to the second simulation step in the past where
In the second simulation step rolled back, the control device acquires proximity points that are close to each other within a predetermined threshold of the object model, and the acquired proximity points are relative to each other before and after contact. An information processing method including a step of calculating a contact force acting between the object models when the object models come into contact with each other using a speed.
請求項1に記載の情報処理方法において、前記制御装置は、ロールバックさせた前記第2のシミュレーションステップにおいて、前記近接点を取得する場合、前記近接点が得られるよう、前記閾値を初期値よりも拡大して前記物体モデルの所定の閾値以内の距離で互いに近接する近接点を取得する情報処理方法。 In the information processing method according to claim 1, when the control device acquires the proximity point in the second simulation step rolled back, the threshold value is set from an initial value so that the proximity point can be obtained. An information processing method for acquiring proximity points that are close to each other within a predetermined threshold value of the object model. 請求項1に記載の情報処理方法において、前記制御装置は、前記閾値を拡大しながら、前記近接点の取得を繰り返し試行し、前記物体モデル同士の近接点の数が増加した場合、取得した前記近接点の接触前と接触後の相対速度を用いて前記物体モデルの間の接触力を演算する情報処理方法。 In the information processing method according to claim 1, the control device repeatedly tries to acquire the proximity points while expanding the threshold value, and when the number of proximity points between the object models increases, the acquired said. An information processing method for calculating the contact force between the object models using the relative velocities before and after the contact of the proximity points. 請求項2または3に記載の情報処理方法において、前記制御装置が、ユーザーインターフェース装置を介して、ユーザによる、前記閾値に係る数値の設定操作を受け付ける情報処理方法。 The information processing method according to claim 2 or 3, wherein the control device receives an operation of setting a numerical value related to the threshold value by a user via a user interface device. 請求項2から4のいずれか1項に記載の情報処理方法において、前記制御装置が、前記閾値の拡大幅を前記物体モデル同士の相対速度を用いて決定する情報処理方法。 The information processing method according to any one of claims 2 to 4, wherein the control device determines the expansion width of the threshold value by using the relative speed between the object models. 請求項1から5のいずれか1項に記載の情報処理方法において、前記制御装置が、前記複数の物体モデルをそれぞれ構成するポリゴンの交差の有無に応じて、複数の物体モデルのオーバーラップが発生しているか否かを判定する情報処理方法。 In the information processing method according to any one of claims 1 to 5, the control device causes overlap of a plurality of object models depending on the presence or absence of intersection of polygons constituting the plurality of object models. An information processing method that determines whether or not a polygon is used. 請求項1から6のいずれか1項に記載の情報処理方法に記載の各工程を前記制御装置を構成するコンピュータに実行させる制御プログラム。 A control program for causing a computer constituting the control device to execute each step according to the information processing method according to any one of claims 1 to 6. 請求項7に記載の制御プログラムを格納したコンピュータ読み取り可能な記録媒体。 A computer-readable recording medium in which the control program according to claim 7 is stored. 複数の物体モデルが存在する仮想空間で、少なくとも1つの物体モデルを動作させるシミュレーションを行う情報処理装置において、
第1のシミュレーションステップにおいて、複数の物体モデルのオーバーラップが発生しているか否かを判定し、前記複数の物体モデルのオーバーラップが発生している場合、シミュレーションの状態をオーバーラップが生じていない過去の第2のシミュレーションステップにロールバックさせ、ロールバックさせた前記第2のシミュレーションステップにおいて、前記物体モデルの所定の閾値以内の距離で互いに近接する近接点を取得し、取得した前記近接点の接触前と接触後の相対速度を用いて、前記物体モデル同士が接触した場合に前記物体モデルの間に働く接触力を演算する制御装置を備えた情報処理装置。
In an information processing device that performs simulation to operate at least one object model in a virtual space where a plurality of object models exist.
In the first simulation step, it is determined whether or not the overlap of the plurality of object models has occurred, and if the overlap of the plurality of object models has occurred, the simulation states have not overlapped. In the second simulation step of rolling back to the second simulation step in the past and rolling back, the proximity points close to each other within a predetermined threshold of the object model are acquired, and the acquired proximity points of the acquired proximity points are acquired. An information processing device including a control device that calculates the contact force acting between the object models when the object models come into contact with each other by using the relative velocities before and after the contact.
請求項9に記載の情報処理装置において、前記制御装置は、ロールバックさせた前記第2のシミュレーションステップにおいて、前記近接点を取得する場合、前記閾値を初期値よりも拡大して前記物体モデルの所定の閾値以内の距離で互いに近接する近接点を取得する情報処理装置。 In the information processing device according to claim 9, when the control device acquires the proximity point in the second simulation step rolled back, the threshold value is expanded from the initial value to obtain the object model. An information processing device that acquires proximity points that are close to each other within a predetermined threshold. 請求項9に記載の情報処理装置において、前記制御装置は、前記閾値を拡大しながら、前記近接点の取得を繰り返し試行し、前記物体モデル同士の近接点の数が増加した場合に、取得した前記近接点の接触前と接触後の相対速度を用いて前記物体モデルの間の接触力を演算する情報処理装置。 In the information processing device according to claim 9, the control device repeatedly tries to acquire the proximity points while expanding the threshold value, and acquires the proximity points when the number of proximity points between the object models increases. An information processing device that calculates the contact force between the object models using the relative velocities before and after the contact of the proximity points. 請求項10または11に記載の情報処理装置において、前記制御装置が、ユーザーインターフェース装置を介して、ユーザによる、前記閾値に係る数値の設定操作を受け付ける情報処理装置。 In the information processing device according to claim 10 or 11, the information processing device receives an operation of setting a numerical value related to the threshold value by a user via a user interface device. 請求項10から12のいずれか1項に記載の情報処理装置において、前記制御装置が、前記閾値の拡大幅を前記物体モデル同士の相対速度を用いて決定する情報処理装置。 The information processing device according to any one of claims 10 to 12, wherein the control device determines the expansion width of the threshold value by using the relative speed between the object models. 請求項9から13のいずれか1項に記載の情報処理装置において、前記制御装置が、前記複数の物体モデルをそれぞれ構成するポリゴンの交差の有無に応じて、前記複数の物体モデルのオーバーラップが発生しているか否かを判定する情報処理装置。 In the information processing device according to any one of claims 9 to 13, the control device causes the plurality of object models to overlap depending on the presence or absence of intersection of polygons constituting the plurality of object models. An information processing device that determines whether or not it has occurred. 請求項9から14のいずれか1項に記載の情報処理装置と、ロボット装置と、を備え、前記情報処理装置が、前記ロボット装置を制御するロボット制御プログラムに記述された態様で、前記ロボット装置が操作する対象物体に対応する前記物体モデルを前記仮想空間で動作させて前記ロボット制御プログラムを検証し、検証した前記ロボット制御プログラムによって前記ロボット装置を動作させるロボットシステム。 The robot device includes the information processing device according to any one of claims 9 to 14 and a robot device, and the robot device is described in a robot control program for controlling the robot device. A robot system in which the robot control program is verified by operating the object model corresponding to the target object operated by the robot in the virtual space, and the robot device is operated by the verified robot control program. 請求項15に記載のロボットシステムの前記ロボット装置により、前記対象物体としてのワークを操作し、前記ワークから物品を製造する物品の製造方法。 A method for manufacturing an article in which a work as a target object is operated by the robot device of the robot system according to claim 15 and an article is manufactured from the work.
JP2019203868A 2019-11-11 2019-11-11 Information processing method, information processing device, and robot system Active JP7374723B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019203868A JP7374723B2 (en) 2019-11-11 2019-11-11 Information processing method, information processing device, and robot system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019203868A JP7374723B2 (en) 2019-11-11 2019-11-11 Information processing method, information processing device, and robot system

Publications (2)

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

Family

ID=75898015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019203868A Active JP7374723B2 (en) 2019-11-11 2019-11-11 Information processing method, information processing device, and robot system

Country Status (1)

Country Link
JP (1) JP7374723B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113298945A (en) * 2021-06-08 2021-08-24 上海宝冶工程技术有限公司 Calculation method of container packing scheme

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004094750A (en) 2002-09-02 2004-03-25 Ricoh Co Ltd Three-dimensional configuration processor, interference model detecting method, program and storage medium
JP2007114866A (en) 2005-10-18 2007-05-10 Canon Inc Contact decision system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113298945A (en) * 2021-06-08 2021-08-24 上海宝冶工程技术有限公司 Calculation method of container packing scheme

Also Published As

Publication number Publication date
JP7374723B2 (en) 2023-11-07

Similar Documents

Publication Publication Date Title
US11868882B2 (en) Training action selection neural networks using apprenticeship
US7194396B2 (en) Simulation device
CN108145709B (en) Method and apparatus for controlling robot
US20200104685A1 (en) Learning motor primitives and training a machine learning system using a linear-feedback-stabilized policy
US8924185B2 (en) Designing a navigation scene
CN109605367B (en) Robot programming method, device and equipment and storage medium
Gao et al. Virtual assembly planning and assembly-oriented quantitative evaluation of product assemblability
US20210375021A1 (en) Neural State Machine Digital Character Animation
JP6560227B2 (en) Automatic operation of computer-aided design model
Koestler et al. Mobile robot simulation with realistic error models
JP2021077149A (en) Information processing method, information processing equipment, and robot system
Kim et al. Using VPS (Voxmap PointShell) as the basis for interaction in a virtual assembly environment
US6798416B2 (en) Generating animation data using multiple interpolation procedures
JP4446068B2 (en) Numerical control device for machine tool and numerical control method for controlling machine tool
EP4052865A1 (en) Information processing apparatus, robot system, information processing method, program, and recording medium
Tagawa et al. Manipulation of dynamically deformable object using impulse-based approach
US10032304B1 (en) Automatic creation of temporary rigid relationships between moving parts in motion simulation
US20190262698A1 (en) Simulation of Multiple Connected Bodies for Real-Time Application
US20240058963A1 (en) Multi-mode robot programming
US20240025035A1 (en) Robotic simulations using multiple levels of fidelity
Hou et al. A prediction method using interpolation for smooth six-DOF haptic rendering in multirate simulation
WO2023157235A1 (en) Arithmetic device
Harris Design and implementation of an autonomous robotics simulator
del Pozo et al. Simulator for control and automation using an interactive and configurable 3D virtual environment
Schneider et al. Interactive path editor for industrial robots using a 3d-simulation environment

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20200206

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230912

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230926

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231025

R151 Written notification of patent or utility model registration

Ref document number: 7374723

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151