(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-19
(45)【発行日】2024-04-30
(54)【発明の名称】情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置
(51)【国際特許分類】
G05B 19/4093 20060101AFI20240422BHJP
B25J 9/16 20060101ALI20240422BHJP
G05B 19/4069 20060101ALI20240422BHJP
【FI】
G05B19/4093 E
B25J9/16
G05B19/4069
(21)【出願番号】P 2019211778
(22)【出願日】2019-11-22
【審査請求日】2022-11-21
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003133
【氏名又は名称】弁理士法人近島国際特許事務所
(72)【発明者】
【氏名】木村 弦
【審査官】野口 絢子
(56)【参考文献】
【文献】特開2003-280710(JP,A)
【文献】特開2010-155328(JP,A)
【文献】特開2018-030210(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B19/18-19/416
G05B19/42-19/46
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
制御装置が、仮想空間において、第1物体モデルを移動させるための経路に関する情報を取得する情報処理方法であって、
前記第1物体モデルが移動する、第1位置および第2位置を取得する位置取得工程と、
前記仮想空間において
第1点を設定し、
前記第1位置または前記第2位置または前記第1および前記第2位置とは異なる位置から
前記第1点までを接続する方向に経路モデルを伸張する経路モデル伸張工程と、
前記経路モデル伸張工程において伸張した経路モデル上で前記第1物体モデルを移動させる際に、前記第1物体モデルと第2物体モデルとに干渉が発生している場合、前記第2物体モデルに沿って前記第1物体モデルを移動させ、その移動路を経路モデルとして取得する第1経路モデル取得工程と、
前記経路モデル伸張工程において伸張した経路モデル上で前記第1物体モデルを移動させる際に、前記第1物体モデルと前記第2物体モデルとに干渉が発生していない場合、伸長した当該経路モデルを取得する第2経路モデル取得工程と、
前記経路モデル伸張工程と、前記第1経路モデル取得工程または前記第2経路モデル取得工程と、を実行し、前記第1位置と前記第2位置とが、取得した経路モデルにより接続された場合、前記第1位置から前記第2位置までを接続する経路モデルを前記経路に関する情報として取得する経路取得工程と、
を有することを特徴とする情報処理方法。
【請求項2】
請求項
1に記載の情報処理方法において、
前記経路モデル伸張工程において、前記仮想空間においてランダムまたは定まった方向に
前記第1点を設定し、
前記経路モデル伸張工程において、前記第1点に最も近い位置が、前記第1位置または前記第2位置である場合、前記第1位置または前記第2位
置から前記第1点を接続する方向に経路モデルを伸張し、
前記第1経路モデル取得工程
または前記第2経路モデル取得工程において、経路モデルを取得できた場合、伸張した経路モデルにおける伸張した位置を第2点に設定する、
ことを特徴とする情報処理方法。
【請求項3】
請求項
2に記載の情報処理方法において、
前記経路モデル伸張工程において、前記第1点に最も近い位置が前記第2点である場合、前記第2
点から前記第1点を接続する方向に経路モ
デルを伸張する、
ことを特徴とする情報処理方法。
【請求項4】
請求項
1から
3のいずれか1項に記載の情報処理方法において、
前
記第1位置は前記第1物体モデルを移動させる際の始点であり、前記第2位置は前記第1物体モデルを移動させる際の終点である、
ことを特徴とする情報処理方法。
【請求項5】
請求項1から
4のいずれか1項に記載の情報処理方法において、
前記経路モデル伸張工程において、経路モデルを伸張させた際に当該経路モデルと前記第2物体モデルとが干渉する場合、当該経路モデル上で前記第1物体モデルを移動させる際に前記第1物体モデルと第2物体モデルとに干渉が発生すると判定する、
ことを特徴とする情報処理方法。
【請求項6】
請求項1から
5のいずれか1項に記載の情報処理方法において、
前記第1経路モデル取得工程において、前記第1物体モデルを前記第2物体モデルに接触させながら移動させる、
ことを特徴とする情報処理方法。
【請求項7】
請求項1から
6のいずれか1項に記載の情報処理方法において、
前記第1経路モデル取得工程において
、前記第1物体モデルと前記第2物体モデルとに関する動力学条件に基づいて前記第1物体モデルを前記第2物体モデルに沿って移動させる、
ことを特徴とする情報処理方法。
【請求項8】
請求項
7に記載の情報処理方法において、
前記第1経路モデル取得工程において、前記動力学条件に基づいて前記第1物体モデルを移動させる際、前記第1物体モデルにおい
て所定方向に力または速度ベクトルを与えて所定時間移動させる、
ことを特徴とする情報処理方法。
【請求項9】
請求項
8に記載の情報処理方法において、
前記第1経路モデル取得工程において、前記第2物体モデルにおける前記第1物体モデルの接触面に対して前記力または前記速度ベクトルを垂直成分および水平成分に分解することで、前記第1物体モデルを前記第2物体モデルに
沿って移動させる、
ことを特徴とする情報処理方法。
【請求項10】
請求項
7から
9のいずれか1項に記載の情報処理方法において、
前第1経路モデル取得工程において、前記動力学条件に基づいて前記第1物体モデルを移動させる際、前記第1物体モデルと前記第2物体モデルとの接触における接触力に基づき前記第1物体モデルを移動させる、
ことを特徴とする情報処理方法。
【請求項11】
請求項10に記載の情報処理方法において、
前記第1経路モデル取得工程において、前記接触力を前記第1物体モデルと前記第2物体モデルとにおける速度、質量、慣性、跳ね返り係数に基づき取得する、
ことを特徴とする情報処理方法。
【請求項12】
請求項1
から11のいずれか1項に記載の情報処理方法において、
前記第1物体モデルと前記第2物体モデルとはポリゴンで表示されており、
前記第1経路モデル取得工程において、前記第1物体モデルと前記第2物体モデルとの接触を前記ポリゴンに基づいて判定する、
ことを特徴とする情報処理方法。
【請求項13】
請求項1から1
2のいずれか1項に記載の情報処理方法において、
各工程における経路モデルの変化の過程を出力する出力工程を有する、
ことを特徴とする情報処理方法。
【請求項14】
請求項1
3に記載の情報処理方法において、
前記出力工程はアニメーションにより出力される、
ことを特徴とする情報処理方法。
【請求項15】
請求項
1から
14のいずれか1項に記載の情報処理方法において、
ユーザから前記第1位置または前記第2位置の入力を受け付ける受付工程を有する、
ことを特徴とする情報処理方法。
【請求項16】
請求項1から1
5のいずれか1項に記載の情報処理方法において、
経路モデルは、木構造における枝情報である、
ことを特徴とする情報処理方法。
【請求項17】
請求項1から16のいずれか1項に記載の情報処理方法において、
前記第1物体モデルが、仮想ロボットの躯体、または前記仮想ロボットにより操作される仮想対象物に相当し、
取得した前経路に関する情報を、前記仮想ロボットに対応するロボットを制御する制御データとして出力する工程を有する、
ことを特徴とする情報処理方法。
【請求項18】
請求項1から1
7のいずれか1項に記載の情報処理方法の各工程を、前記制御装置を構成するコンピュータに実行させるプログラム。
【請求項19】
請求項1
8に記載のプログラムを格納した、コンピュータで読み取り可能な記録媒体。
【請求項20】
請求項1から1
6のいずれか1項に記載の情報処理方法の前記第1物体モデルが、仮想ロボットの躯体、または前記仮想ロボットにより操作される仮想対象物に相当し、取得した前記経路に
関する情報に基づいて、前記仮想ロボットに対応するロボットにおける、前記仮想対象物に対応する対象物を操作する動作が制御されるロボットの制御方法。
【請求項21】
請求項2
0に記載の制御方法により制御される前記ロボットと、前記経路に基づいて前記ロボットの動作を制御するロボット制御装置と、を含むロボットシステム。
【請求項22】
請求項2
0に記載の制御方法により制御される前記ロボットが、前記対象物としてのワークを操作し、前記ワーク
により物品を製造する物品の製造方法。
【請求項23】
仮想空間において、第1物体モデルを移動させるための経路に関する情報を取得する情報処理装置であって、
前記第1物体モデルが移動する、第1位置および第2位置を取得する位置取得工程と、
前記仮想空間において
第1点を設定し、
前記第1位置または前記第2位置または前記第1および前記第2位置とは異なる位置から
前記第1点までを接続する方向に経路モデルを伸張する経路モデル伸張工程と、
前記経路モデル伸張工程において伸張した経路モデル上で前記第1物体モデルを移動させる際に、前記第1物体モデルと第2物体モデルとに干渉が発生している場合、前記第2物体モデルに沿って前記第1物体モデルを移動させ、その移動路を経路モデルとして取得する第1経路モデル取得工程と、
前記経路モデル伸張工程において伸張した経路モデル上で前記第1物体モデルを移動させる際に、前記第1物体モデルと前記第2物体モデルとに干渉が発生していない場合、伸長した当該経路モデルを取得する第2経路モデル取得工程と、
前記経路モデル伸張工程と、前記第1経路モデル取得工程または前記第2経路モデル取得工程と、を実行し、前記第1位置と前記第2位置とが、取得した経路モデルにより接続された場合、前記第1位置から前記第2位置までを接続する経路モデルを前記経路に関する情報として取得する経路取得工程と、を実行する
処理部を備える、
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置に関する。
【背景技術】
【0002】
工業製品、その部品などの設計ないし組み立てにCAD(コンピュータ支援設計)技術が広く利用されている。CADでは、3D表示、アニメーション表示など様々な出力形式を選択することができる。この種のCAD技術を利用したシミュレーション処理において工業製品、その部品、あるいはそれらを取り扱うロボット装置などの物体のモデルを取り扱う環境のことを仮想環境、などと呼ぶ場合がある。そして、この仮想環境において、工業製品、その部品、あるいはそれらを取り扱うロボット装置などを模擬した物体モデルを動かし、またその物体モデルの設計や動作の態様を評価することができる。
【0003】
一般に、製造工程で組み付けが必要な部品は、組み付けが可能な形状に設計する必要がある。ところが、従来のCAD技術では、出力画面の表示だけでは組み付け可能かどうかを確認することが難しい場合がある。
【0004】
そのような場合には、試作品を作成して、実際に組み付けを試行し、設計を評価をする必要がある。もし、試作品の組み付けができなければ、設計工程にその情報をフィードバックし、再度、CADを用いて設計をし直す必要があり、設計時間が伸びると同時に、試作コストがかかる問題がある。
【0005】
例えば、仮想空間で部品の組み付け軌道を生成して、組み付け可否の判定を確実に行えると、試作品のコストを削減し、設計時間を短縮することができる可能性がある。しかしながら、従来技術では、組み付け軌道といった部品同士が非常に接近する軌道の生成は、部品のとれる姿勢の領域が狭く、困難である場合が大きい。
【0006】
自動車や電機製品の生産ラインでは、産業用ロボットを投入して、溶接や組み立てなどの作業を自動化している。このような生産現場では、ロボット装置、ワーク、ワーク置き台や、冶具等の、その他周辺機器が、互いに接触する可能性がある状態で配置されている。
【0007】
近年、このような生産ラインにおける、ロボットの動作軌道の作成に、シミュレーションを利用する機会が増えており、更にはロボット装置が周辺機器と干渉しない軌道を自動で生成できる技術が開発されている。しかし、ワークの組み付けといった、物体間の距離が近くなる作業では、ロボットがとれる姿勢の領域が狭くなるため、ロボットが周辺機器と干渉を回避する軌道を作成するのは非常に困難である。
【0008】
従来では、ロボット装置や、それにより操作され移動する物体を障害物との干渉を回避ながら移動させる経路を探索する情報処理方法が知られている。このような情報処理方法としては、例えばRRT(Rapidly-exploring Random Trees)が知られている(非特許文献1)。
【0009】
図16は、このRRTによる仮想空間における経路探索の様子を示している。ここでは、物体モデルが移動する仮想空間としては、簡略化のため、2次元平面を考える。
図16において、物体モデルA、物体モデルBは、それぞれXY平面上を動作する円形状の剛体、四角形状の静止した剛体の物体モデルである。この例では、物体モデルAは、Bとの干渉(接触、衝突など)を回避しつつ、開始点Sから、目標点Gまで、到達する経路を探索する。
【0010】
このRRT演算では、最初にXY平面上のAの可動範囲内に、ランダムに点Rを置く処理を試行し、さらにこの点Rから最も近い木構造上の点Q1を計算する。
【0011】
次に、点Q1から点Rに向かって最大長さLまで伸長させた点をQ2とし、線分Q1-Q2上で、物体モデルAと物体モデルBの干渉がなければ、木構造の枝として、点Q2と、その親であるQ1の位置情報を保存する。以上のように、ランダムに発生させた点Rから木構造モデルを成長させる処理を繰り返し行うことにより、目標点Gまでの経路を生成することができる。
【先行技術文献】
【非特許文献】
【0012】
【文献】LaValle, Steven M. "Rapidly-exploring random trees: A new tool for path planning." (1998).
【発明の概要】
【発明が解決しようとする課題】
【0013】
上記非特許文献1に示されるようなRRT技術では、動作対象の物体が障害物との干渉を回避して、目標点まで到達する経路を探索することを目的としている。移動させる物体と、障害物との距離が近く、細い移動経路を潜り抜けなければならない狭い環境においては、木構造が成長せず、経路探索が進まなくなる可能性がある。従来のRRTでは、例えば、クリアランスの小さいピンを孔に嵌合させるようなロボット操作、あるいはそのような操作をロボットが狭い空間を通った先にある組み付け位置において行うような組み付け軌道を生成するのが難しい。
【0014】
本発明の課題は、以上の問題を鑑み、高速かつ確実に物体モデルを移動させる経路生成を行えるようにすることにある。
【課題を解決するための手段】
【0015】
本発明の一態様は、制御装置が、仮想空間において、第1物体モデルを移動させるための経路に関する情報を取得する情報処理方法であって、前記第1物体モデルが移動する、第1位置および第2位置を取得する位置取得工程と、前記仮想空間において第1点を設定し、前記第1位置または前記第2位置または前記第1および前記第2位置とは異なる位置から前記第1点までを接続する方向に経路モデルを伸張する経路モデル伸張工程と、前記経路モデル伸張工程において伸張した経路モデル上で前記第1物体モデルを移動させる際に、前記第1物体モデルと第2物体モデルとに干渉が発生している場合、前記第2物体モデルに沿って前記第1物体モデルを移動させ、その移動路を経路モデルとして取得する第1経路モデル取得工程と、前記経路モデル伸張工程において伸張した経路モデル上で前記第1物体モデルを移動させる際に、前記第1物体モデルと前記第2物体モデルとに干渉が発生していない場合、伸長した当該経路モデルを取得する第2経路モデル取得工程と、前記経路モデル伸張工程と、前記第1経路モデル取得工程または前記第2経路モデル取得工程と、を実行し、前記第1位置と前記第2位置とが、取得した経路モデルにより接続された場合、前記第1位置から前記第2位置までを接続する経路モデルを前記経路に関する情報として取得する経路取得工程と、を有することを特徴とする情報処理方法である。
【発明の効果】
【0016】
上記構成によれば、動作対象である物体と、障害物との距離、クリアランスが非常に小さいような動作においても、高速かつ精密に軌道生成ないし経路生成を行うことができる。
【図面の簡単な説明】
【0017】
【
図1】本発明の実施形態に係る軌道生成装置の構成を示した説明図である。
【
図2】本発明の実施形態に係る軌道生成の設定条件を示した説明図である。
【
図3】本発明の実施形態に係る経路を生成する処理を示した説明図である。
【
図4】本発明の実施形態に係る経路を生成する処理を示した説明図である。
【
図5】本発明の実施形態に係る経路を生成する処理を示した説明図である。
【
図6】本発明の実施形態に係る経路を生成する処理を示した説明図である。
【
図7】本発明の実施形態に係る経路を生成する処理を示した説明図である。
【
図8】本発明の実施形態に係る経路を生成する処理を示した説明図である。
【
図9】本発明の実施形態に係る経路を生成する処理を示した説明図である。
【
図10】本発明の実施形態に係る経路を生成する処理を示した説明図である。
【
図11】本発明の実施形態に係る経路の生成処理を説明するフローチャート図である。
【
図12】本発明の実施形態に係る軌道生成の異なる設定条件を示した説明図である。
【
図13】本発明の実施形態に係る軌道生成の異なる設定条件を示した説明図である。
【
図14】本発明の実施形態に係る軌道生成の異なる設定条件を示した説明図である。
【
図15】本発明の実施形態に係る経路生成処理を示した説明図である。
【
図16】従来のRRTによる経路探索の様子を示した説明図である。
【発明を実施するための形態】
【0018】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値の例示に過ぎない。
【0019】
<実施形態1>
図1は本実施形態に係る情報処理装置として、経路生成装置(軌道生成装置)の概略構成を示している。この経路生成装置(軌道生成装置)は、制御装置1と、教示者等がデータ入力などを行う入力部2と、動作プログラム等を記録する記録部3と、部品、ロボットの動作軌道の表示などに用いられる表示部4を備えている。制御装置1は、CPUなどの制御手段を中心にROM、RAMなどの周辺部を配した、例えばいわゆるPC(パーソナルコンピュータ)フォームの形態を有する制御装置である。記録部3は例えばHDDやSSDなどの外部記憶装置であり、表示部4はLCDディスプレイなどから構成される。
【0020】
図2は、本実施形態の軌道生成の条件設定を示している。ここでは、簡略化のため、仮想的な2次元空間において物体モデルA(第1の物体モデル)が、静止した物体モデルB(第2の物体モデル)との干渉を回避しながら、開始点Sから移動し、目標点Gまで到達する経路を探索する。物体モデルBは、コの字型の断面形状を有し、その凹部の奥に物体モデルAの移動に係る目標点Gが配置されている。物体モデルA、Bはいずれも現実世界の特定の剛体のモデルに相当する。
【0021】
物体モデルAは、例えばロボット装置により操作される、並進/回転の自由度を持った工業製品の部品などを模擬するものと考えてよい。物体モデルBは、ロボット装置の作業空間中に配置された障害物、あるいは物体モデルAに相当する部品と嵌合する受け側の部品と考えてもよく、また目標点Gは、例えば物体モデルAに相当する部品の組み付け位置に相当する。
【0022】
なお、物体モデルAは、一般的には動作するような動作体として広く認知されているものであればよく、特に限定して解釈されることを要しない。また、軌道生成対象の物体モデルAは、ロボット装置により操作される物体のみならず、ロボットの基準部位、例えばツールやツール中心に対応づけてもよい。この場合、ロボット装置の駆動方式などは任意であり、その関節構成は6軸多関節の形態、直動型の形態など、どのような構成であってもよい。
【0023】
ここで、
図10に
図1の制御装置1を構成する制御系の具体的なハードウェア構成の一例を示しておく。同図のような制御系は、例えばいわゆるPCフォームの実装形態で実現できる。
【0024】
図10の制御系は、主制御手段としてのCPU1601、記憶装置としてのROM1602、およびRAM1603を備えたPCハードウェアなどによって構成することができる。ROM1602には、本実施形態の経路生成の処理手順を実現するためのCPU1601の制御プログラムや定数情報などを格納しておくことができる。また、RAM1603は、その制御手順を実行する時にCPU1601のワークエリアなどとして使用される。また、
図10の制御系には、外部記憶装置1606が接続されている。外部記憶装置1606は、本発明の実施には必ずしも必要ではないが、HDDやSSD、ネットワークマウントされた他のシステムの外部記憶装置などから構成することができる。
【0025】
本実施形態の経路生成処理を実現するためのCPU1601の制御プログラムは、上記の外部記憶装置1606やROM1602(例えばEEPROM領域)のような記憶部に格納しておく。その場合、本実施形態の制御手順を実現するためのCPU1601の制御プログラムは、ネットワークインターフェース1607を介して、上記の各記憶部に供給し、また新しい(別の)プログラムに更新することができる。あるいは、後述の制御手順を実現するためのCPU1601の制御プログラムは、各種の磁気ディスクや光ディスク、フラッシュメモリなどの記憶手段と、そのためのドライブ装置を経由して、上記の各記憶部に供給し、また、その内容を更新することができる。本実施形態の制御手順を実現するためのCPU1601の制御プログラムを格納した状態における各種の記憶手段、記憶部、ないし記憶デバイスは、本発明の制御手順を格納したコンピュータ読み取り可能な記録媒体を構成する。
【0026】
ネットワークインターフェース1607は、例えばIEEE 802.3のような有線通信、IEEE 802.11、802.15のような無線通信による通信規格を用いて構成することができる。このネットワークインターフェース1607、およびネットワーク1608を介して、CPU1601は、他の装置1104と通信することができる。この他の装置1104として、生産ラインを構成するロボットシステムの統轄制御装置やサーバ装置を接続することができる。
【0027】
また、
図10の制御装置は、ユーザインターフェース装置400(UI装置)を備える。ユーザインターフェース装置400としては、LCDディスプレイ、キーボード、ポインティングデバイス(マウス、ジョイスティックなど)などから成るGUI(グラフィカルユーザインターフェース)を配置することができる。このようなGUIは、例えば、
図1の入力部2と表示部4によって構成することができる。このような例えばGUIで構成されたユーザインターフェース装置400を介して、経路生成処理の進行状況をユーザに報知することができる。例えば、ユーザインターフェース装置400を介して、後述の木構造モデルの変化の過程を刻々と出力表示するアニメーションなどを介して報知するのに用いることができる。また、ユーザインターフェース装置400を介して、経路生成処理を制御する各種パラメータの設定などを行うことができる。例えば、ユーザインターフェース装置400を介して、後述の物体モデルAの移動の始点(開始点)、および終点(目標点)を設定するユーザ操作を取り込むことができる。
【0028】
図11は、本実施形態による軌道(経路)生成処理の制御手順を示している。
図11のステップS100(設定工程)では、動作対象の物体モデルAと、その開始点S(始点)、目標点G(終点)、可動範囲を設定する。この設定は、ネットワークなどを介して、他の制御端末から読み込むか、あるいは入力部2と表示部4で構成したユーザインターフェース装置400を介して行われるユーザの設定操作に応じて行う。
【0029】
ステップS101では、物体モデルAの障害物として、静止した物体モデルBを設定する。この設定もステップS100と同様の手法で行う。
【0030】
ステップS102で、木構造Tに、物体モデルAを移動させる終点に相当する目標点Gを、ルートとして追加する。この木構造は枝によって接続される点の集合体とし、木構造上の点は、ルートを除いて親の点の情報及び、親の点からの経路情報(枝情報)を持つものとする。また、親および経路情報は空の状態にクリアする。このような木構造Tは、メモリ上では、例えばリンクトリストのような形態で記憶させることができる。
【0031】
なお、物体モデルAを移動させる終点に相当する目標点Gをルートとするのは、本実施形態では
図2の例では、目標点付近で物体モデルBが物体モデルAと接近するため、目標点から木構造を成長させた方が、探索が容易になるためである。しかしながら、木構造のルートを目標点に限らず開始点に置いても構わない。また、開始点と目標点の双方をルートとし、2つの木構造を成長させるといった方法を用いてもよい。この開始点と目標点の設定は、入力部2と表示部4で構成したユーザインターフェースを介してユーザが設定できるようにしておいてもよい。
【0032】
続いて、ステップS103~S105では、木構造モデルを構成する枝の生成を試行する(枝生成試行工程)。ステップS106では、生成を試行した枝上で、物体モデルAとBの干渉が発生したか否かを判定(干渉判定工程)し、その結果に応じて、異なる枝追加処理を行う(第1の枝追加工程または第2の枝追加工程:ステップS109またはS107)。
【0033】
上記の干渉判定において干渉が発生していなければ、ステップS103~S105で生成を試行した枝を木構造モデルに追加する(第2の枝追加工程:ステップS107)。また、干渉が発生している場合は、干渉に関する動力学条件に基づき動力学シミュレーション(ステップS108)を行い、生成を試行した枝の起点から物体モデルAを移動させる。そして、動力学シミュレーションにより得られた移動路を木構造モデルに枝として追加する(第1の枝追加工程:ステップS109)。
【0034】
そして、上記各工程を繰り返し実行し、開始点(始点)と目標点(終点)とが木構造モデルを通じて接続した場合は、前記木構造モデル上の始点から終点までを接続する枝を物体モデルAを移動させる経路として生成する(経路生成工程:ステップS111)。
【0035】
まず、ステップS103では、物体モデルAの可動範囲内にランダムもしくは、定まった方向に点Rを生成する。この場合、例えば、ループ中のステップS103では何回かに一回、開始点(と同じ位置)に点Rを発生させることが考えられる。これにより、探索に要する時間が短くなる可能性がある。
【0036】
ステップS104では、木構造Tの中から点Rに最も距離が近い点Q1(第2の点)を取得する。もし、木構造Tがルートである目標点Gだけであった場合は、目標点GをQ1とする。
【0037】
ステップS105では、Q1から点Rの方向に、最大Lの長さだけ枝を伸長させ、その位置を点Q2(第1の点)とする。もし、線分Q1-RがLよりも大きくなった場合は、線分Q1-R上に、線分Q1-Q2の長さがLになるようにQ2を設定する。一方、線分Q1-RがLよりも小さい場合は、点Rの位置をQ2とする。
【0038】
ステップS106で、線分Q1-Q2上で、物体モデルAと物体モデルBが干渉するか否かを判定する。干渉しない場合は、ステップS107に、干渉する場合は、ステップS108に遷移する。
【0039】
ステップS107では、親をQ1とし、線分Q1-Q2を点Q1から点Q2への経路として木構造Tに追加する。
【0040】
ここで、
図3は、木構造が目標点Gのみで構成される場合に、点Rを配置させたケースを示している。線分Q1-Rは長さL以下であるため、点RをそのままQ2としている。また、
図4は、
図3の木構造に更に点Rを配置したケースを示している。このケースでは、線分Q1-Rが長さLより大きいため、線分Q1-R上に、線分Q1-Q2の長さがLになるように点Q2を定めている。また、
図5は、
図4の木構造に更に点Rを配置し枝を伸ばそうとした状態を示している。この場合、線分Q1-Q2上で、物体モデルBとの交差が起きており、即ち、物体モデルAは物体モデルBに干渉しているので、ステップS106からステップS108に遷移することになる。ステップS106で線分Q1-Q2上で、物体モデルAと物体モデルBが干渉している場合は、ステップS108で周知の動力学シミュレータ処理によって、物体モデルAをQ1に移動させてからQ2の方向に力を与え、一定時間シミュレーションを行う。
【0041】
ここでいう、動力学シミュレータとは、外力と、物体同士の衝突による接触力とを考慮し、運動方程式から物体の運動の計算を行うシミュレータである。この動力学シミュレータでは、物体モデルの形状はポリゴンで表現され、ポリゴン同士の接触判定計算を行うことで衝突を検知し、物体モデルの速度、質量、慣性、跳ね返り係数などを用いて接触力を計算する。そして、動力学シミュレーションの結果得られた物体モデルAの動作経路は下記のステップS109で木構造に保存する。なお、物体モデルAを移動させるために力を与えることは特に本発明を限定するものではなく、ステップS108では、例えば物体モデルAにQ1の位置からQ2の方向に初速度を与え一定時間シミュレーションを行う手法を採用してもよい。
【0042】
図6は、上記の動力学シミュレーションによって、
図5の点Q1の位置から、物体モデルAに点Q2の方向に向かう力ないし速度のベクトルを用いて連続的に成長させた軌跡の例を示している。ここで、点Q1の位置から、点Q2の向かう速度ないし力のベクトルは、物体モデルBの壁に垂直な成分と水平な成分に分解することができる。
図6の動力学シミュレーションでは、物体モデルAは、同じ速度ないし力のベクトルの物体モデルBの壁に垂直および水平な成分によって、物体モデルBとの接触を保ちながら図中の左方に進むような軌跡が得られている。なお、物体モデルA、Bの接触ないし干渉が生じている間は、
図11の制御はステップS108を繰り返し実行し、毎回、上記の動力学シミュレーションが一定時間ずつ行われる。
【0043】
ステップS109では、点Q2の位置を、動力学シミュレーション後の物体モデルAの位置に置き換え、動力学シミュレーションで得た経路と、親の点Q1とを関連付けの上、点Q2を木構造Tに追加する。
図7は、
図6で示した物体モデルAの軌跡を元に、木構造に枝を追加した例を示している。
【0044】
ステップS110では、木構造上の点が、開始点Sに十分近いかを判定し、近ければ、開始点Sに木構造が到達したと判定してステップS111に遷移し、そうでなければステップS103に復帰し、上記の動作を繰り返す。
図8は、ステップS103~ステップS110の操作を繰り返した結果、開始点へと木構造が到達した状態の一例を示している。
【0045】
ステップS111では、開始点に到達した木構造上の点から、親へと経路をたどっていき、各木構造上の点に保存されている経路を合成し、開始点から目標点までの経路を出力する。
図9は、ステップS111で得られた、開始点から目標点までの経路を太線で示している。
【0046】
以上説明したように、本実施形態によれば、目標点付近で、動作対象の物体モデルと、静止した物体モデルとの距離が近くなるような環境においても、確実に干渉を回避する経路を生成することができる。また、経路生成の制御手順には、周知の物体動力学シミュレータを利用することができ、システム開発のメンテナンスのコストを低減できる。また、上述の物体モデルAをその作業空間を移動する移動型ロボットに置き換えれば、周りの障害物との距離が近い領域において、ロボットが周りの障害物との干渉を回避し、開始点から目標点に至る経路を生成することができる。
【0047】
あるいは、例えば、物体モデルAを工業製品の第1の部品に、静的な物体モデルBを物体モデルAの組み付け位置を囲む形状を備えた第2の部品や障害物に、対応づけることができる。そして、例えば、上記の制御手順により開始点から目標点に至る経路を生成できた場合には、物体モデルAに相当する第1の部品の組み付けが可能である、と判定することができる。これにより、例えば、第1の部品の設計の妥当性を評価することができる。このように、工業製品の部品の設計評価に本実施形態の制御手順を利用することにより、例えば従来必要であった上記の物体モデルAに相当する部品の試作が必要なくなり、部品の試作コストを軽減することができる。
【0048】
<実施形態2>
本実施形態2では、2つの回転関節を持った多関節ロボットの例えば手先などに対応する基準部位を開始点から目標点まで移動させる経路を生成する例を示す。
図12は、本実施形態の経路生成の課題条件を示している。
図12において、ロボット装置AAの躯体は2つの回転関節J1、J2で接続されたリンクを有する多関節ロボットである。同図では、ロボット装置AAの1軸目(J1)の関節角度がθ1、2軸目(J2)の関節角度がθ2となっており、このロボット装置AAの姿勢は2次元の関節空間上の点(θ1、θ2)が決まれば一意に決まる。なお、ここでは簡略化のため、2関節の単純なロボットを例示しているが、ロボット装置AAが例えば6軸多関節形式などの形式であっても、下記の制御は同様に実施可能である。
【0049】
本実施形態では、ロボット装置AAの先端が開始点Sの位置にあるときの姿勢を(θ1S、θ2S)とし、ロボット装置AAの先端が目標点Gの位置にあるときの姿勢を(θ1G、θ2G)とする。
図13、
図14はそれぞれ開始点S、目標点Gでのロボット装置AAの姿勢を示している。
【0050】
本実施形態においても、経路生成は
図11のような制御手順により実行することができる。ただし、本実施形態では、
図11の制御手順は、上記実施形態1の物体モデルAの経路生成処理をロボット装置AAの経路生成処理に読み換える必要がある。
【0051】
まず、ステップS100では、当然のことながら物体モデルAに換えてロボット装置AAのモデルを設定する。また、ステップS100での、開始点S、目標点Gは、関節空間上の点(θ1S、θ2S)、(θ1G、θ2G)をそれぞれ設定し、ステップS103~ステップS105における、点R、点Q1、点Q2、は全て関節空間上の点を設定する。
【0052】
また、ステップS106では、線分Q1-Q2上の点が表す姿勢で、順キネマティクス(運動学)計算を行い、ロボット装置AAが物体モデルBと干渉するか否を判定する。また、ステップS108では、動力学シミュレータ上で、ロボット装置AAを点Q1の表す姿勢にし、点Q2の方向に関節トルクを与えるか、あるいは、初速度として点Q2の方向に関節角速度を与える。
【0053】
図15は、以上の処理を行うことにより、生成された関節空間での木構造と、開始点と目標点を結ぶ経路を示したものである。開始点と目標点を結ぶ経路は、太線で示している。Cは静的な物体モデルBをロボット装置AAの関節空間に転写したものに相当する。そして、上記実施形態の場合と同様に、
図15のように生成された木構造から、
図16の太線で示すようにロボット装置AAを動作させる経路を生成することができる。なお、以上では、関節空間に点を置き、経路を計算する例を説明したが、関節空間ではなく、ロボット装置の手先などに設定された基準部位の仮想空間における位置に関する演算を行ってもよい。
【0054】
以上に示したように、本実施形態によれば、多関節ロボットなどから成るロボット装置AAが被操作物としてのワークから物品を製造する作業において、ロボット装置を動作させる経路を精密かつ高速に生成することができる。そして、生成した経路を、例えば教示点形式のロボット制御データとしてロボット装置AAを制御するロボット制御装置に対して転送する。ロボット制御装置は、例えば
図10の構成では、他の装置1104として配置しておくことができ、ロボット制御データはネットワーク1608を介して送信することができる。このようにして、生成した経路に基づき、ロボット制御装置を介してロボット装置を動作させ、ワークから物品を製造することができる。
【0055】
以上、本発明に係る実施形態を詳細に説明したが、これらはいずれも例示に過ぎず、特許請求の範囲を限定するものではない。例えば、以上では、主に仮想空間として2次元平面を考え、その中で物体モデルを移動させる制御の例を示したが、このような制御を敷衍し3次元空間における物体モデルの制御手法を得ることは容易である。そして、特許請求の範囲に記載の技術には、以上に例示した実施形態を様々に変形、変更したものが含まれる。
【0056】
本発明は上述の実施例の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。また、上述した種々の実施形態は、ロボット装置に限らず、制御装置が有する記憶装置の情報に基づき、伸縮、屈伸、上下移動、左右移動もしくは旋回の動作またはこれらの複合動作を自動的に行える各種の機械に適用可能である。
【符号の説明】
【0057】
1…制御装置、2…入力部、3…記録部、4…表示部、A、B…物体モデル、Q1、Q2…点、S…開始点(始点)、G…目標点(終点)。