(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-06-09
(45)【発行日】2025-06-17
(54)【発明の名称】干渉判定装置、ロボット制御システム、及び干渉判定方法
(51)【国際特許分類】
B25J 19/06 20060101AFI20250610BHJP
【FI】
B25J19/06
(21)【出願番号】P 2020214160
(22)【出願日】2020-12-23
【審査請求日】2023-07-18
(73)【特許権者】
【識別番号】000006633
【氏名又は名称】京セラ株式会社
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100132045
【氏名又は名称】坪内 伸
(74)【代理人】
【識別番号】100195534
【氏名又は名称】内海 一成
(72)【発明者】
【氏名】宮本 卓哉
(72)【発明者】
【氏名】森 雅人
(72)【発明者】
【氏名】大野 一樹
(72)【発明者】
【氏名】文野 祥
【審査官】松浦 陽
(56)【参考文献】
【文献】特開2019-198914(JP,A)
【文献】特開2018-144163(JP,A)
【文献】特開2015-009314(JP,A)
【文献】国際公開第2019/230037(WO,A1)
【文献】特開2006-338389(JP,A)
【文献】特開2018-017654(JP,A)
【文献】特開2008-033522(JP,A)
【文献】特開2019-025621(JP,A)
【文献】特開2019-126866(JP,A)
【文献】特開平08-147020(JP,A)
【文献】特開2012-223845(JP,A)
【文献】特開平04-201096(JP,A)
【文献】特開平06-246663(JP,A)
【文献】特開2011-079105(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/18 - 19/416
G05B 19/42 - 19/46
(57)【特許請求の範囲】
【請求項1】
複数の関節で接続されるアームを有し、前記関節の駆動によって動作するロボットと、物体との干渉を判定する制御部を備え、
前記制御部は、
実空間における前記ロボットの動作範囲に存在する物体
を表す空間点群情報を取得し、
前記空間点群情報に含まれる点の数よりも少ない数の頂点
を有するとともに、前記物体の外形を含有する図形で前記物体を表し、
前記ロボットが前記実空間において前記頂点に干渉する場合における前記ロボットの状態を特定するパラメータの値を干渉値として計算し、
前記パラメータを基底とする構成空間において、前記パラメータの干渉値を包含する干渉領域を決定する、干渉判定装置。
【請求項2】
前記制御部は、前記実空間における前記ロボットの形状に更に基づいて前記干渉値を計算する、請求項1に記載の干渉判定装置。
【請求項3】
前記制御部は、前記ロボットの状態に所定量以上の影響を及ぼすパラメータを対象として前記干渉値を計算する、請求項1又は2に記載の干渉判定装置。
【請求項4】
前記制御部は、前記アームの柱状の形状の軸に直交する断面の形状に基づいて前記物体の外形を含有する図形を外側に拡大し、前記アームを線分とみなして前記干渉値を計算する、請求項1から3までのいずれか一項に記載の干渉判定装置。
【請求項5】
前記制御部は、前記ロボットが動作する場合に前記構成空間において前記パラメータの値が前記干渉領域に干渉しないように、前記ロボットの経路を計画する、請求項1から4までのいずれか一項に記載の干渉判定装置。
【請求項6】
請求項5に記載の干渉判定装置と、前記干渉判定装置で計画された経路に基づいて前記ロボットの操作量を生成する操作量生成装置と、前記ロボットとを備えるロボット制御システム。
【請求項7】
複数の関節で接続されるアームを有し、前記関節の駆動によって動作するロボットの実空間における動作範囲に存在する物体
を表す空間点群情報を取得することと、
前記空間点群情報に含まれる点の数よりも少ない数の頂点
を有するとともに、前記物体の外形を含有する図形で前記物体を表すことと、
前記物体の頂点に基づいて、前記ロボットが前記頂点に干渉する場合における前記ロボットの状態を特定するパラメータの値を干渉値として計算することと、
前記パラメータを基底とする構成空間において、前記パラメータの干渉値を包含する干渉領域を決定することと
を含む、干渉判定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、干渉判定装置、ロボット制御システム、及び干渉判定方法に関する。
【背景技術】
【0002】
従来、ロボットが物体を回避する方法が知られている。例えば特許文献1には、3次元ロボットモデルを2次元ロボットモデルに変換して2次元モデルの干渉判定を行う装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
3次元ロボットモデルを2次元ロボットモデルに変換する方法は、水平多関節ロボットの物体回避に適用できるものの、3次元空間を自在に移動できる6軸マニピュレータに適用できない。また、6軸マニピュレータに物体を回避させる経路計画を計算するために、6軸マニピュレータの各リンクの位置又は姿勢が考慮される必要がある。ロボットに物体を回避させる場合における利便性の向上が求められる。
【0005】
本開示の目的は、ロボットに物体を回避させる場合における利便性を向上できる干渉判定装置、ロボット制御システム、及び干渉判定方法を提供することにある。
【課題を解決するための手段】
【0006】
本開示の一実施形態に係る干渉判定装置は、ロボットと物体との干渉を判定する制御部を備える。前記ロボットは、複数の関節で接続されるアームを有し、前記関節の駆動によって動作する。前記制御部は、実空間における前記ロボットの動作範囲に存在する物体の頂点を取得する。前記制御部は、前記ロボットが前記実空間において前記物体の頂点に干渉する場合における前記ロボットの状態を特定するパラメータの値を干渉値として計算する。前記制御部は、前記パラメータを基底とする構成空間において、前記パラメータの干渉値を包含する干渉領域を決定する。
【0007】
本開示の一実施形態に係るロボット制御システムは、前記干渉判定装置と、前記干渉判定装置で計画された経路に基づいて前記ロボットの操作量を生成する操作量生成装置と、前記ロボットとを備える。
【0008】
本開示の一実施形態に係る干渉判定方法は、ロボットの実空間における動作範囲に存在する物体の頂点を取得することを含む。前記ロボットは、複数の関節で接続されるアームを有し、前記関節の駆動によって動作する。前記干渉判定方法は、前記物体の頂点に基づいて、前記ロボットが物体の頂点に干渉する場合における前記ロボットの状態を特定するパラメータの値を干渉値として計算することを含む。前記干渉判定方法は、前記パラメータを基底とする構成空間において、前記パラメータの干渉値を包含する干渉領域を決定することを含む。
【発明の効果】
【0009】
本開示の一実施形態に係る干渉判定装置、ロボット制御システム、及び干渉判定方法によれば、ロボットに物体を回避させる場合における利便性が向上され得る。
【図面の簡単な説明】
【0010】
【
図1】一実施形態に係るロボット制御システムの構成例を示す模式図である。
【
図2】一実施形態に係るロボット制御システムの構成例を示すブロック図である。
【
図3】ロボットのアームの位置と関節の角度との関係の一例を示す図である。
【
図4】ロボットの状態を表す関節の角度をプロットした構成空間の一例を示す図である。
【
図5】ロボットが動作する空間に位置する障害物の一例を示す図である。
【
図6】ロボットが障害物の頂点に干渉する場合における関節の角度の値の組み合わせを構成空間上で表した軌跡(干渉領域)の一例を示す図である。
【
図7】
図6の干渉領域を包含する領域の一例を示す図である。
【
図8】干渉判定装置が実行する干渉判定方法の手順例を示すフローチャートである。
【発明を実施するための形態】
【0011】
(ロボット制御システム1の構成例)
図1に示されるように、一実施形態に係るロボット制御システム1は、ロボット2と、ロボット制御装置10とを備える。本実施形態において、ロボット2は、作業対象物8を作業開始地点6から作業目標地点7へ移動させるとする。つまり、ロボット制御装置10は、作業対象物8が作業開始地点6から作業目標地点7へ移動するようにロボット2を制御する。作業対象物8は、作業対象とも称される。
【0012】
図2に示されるように、ロボット制御装置10は、干渉判定装置20と、操作量生成装置70とを備える。ロボット制御装置10は、ロボット2が作業を実施する空間に関する情報に基づいて、ロボット2を制御する。空間に関する情報は、空間情報とも称される。以下、
図1及び
図2を参照して、ロボット制御システム1の各構成部が説明される。
【0013】
<ロボット2>
ロボット2は、アーム2Aと、エンドエフェクタ2Bとを備える。アーム2Aは、例えば、6軸又は7軸の垂直多関節ロボットとして構成されてよい。アーム2Aは、3軸又は4軸の水平多関節ロボット又はスカラロボットとして構成されてもよい。アーム2Aは、2軸又は3軸の直交ロボットとして構成されてもよい。アーム2Aは、パラレルリンクロボット等として構成されてもよい。アーム2Aを構成する軸の数は、例示したものに限られない。言い換えれば、ロボット2は、複数の関節で接続されるアーム2Aを有し、関節の駆動によって動作する。
【0014】
エンドエフェクタ2Bは、例えば、作業対象物8を把持できるように構成される把持ハンドを含んでよい。把持ハンドは、複数の指を有してよい。把持ハンドの指の数は、2つ以上であってよい。把持ハンドの指は、1つ以上の関節を有してよい。エンドエフェクタ2Bは、作業対象物8を吸着できるように構成される吸着ハンドを含んでもよい。エンドエフェクタ2Bは、作業対象物8を掬うことができるように構成される掬いハンドを含んでもよい。エンドエフェクタ2Bは、ドリル等の工具を含み、作業対象物8に穴を開ける作業等の種々の加工を実施できるように構成されてもよい。エンドエフェクタ2Bは、これらの例に限られず、他の種々の動作ができるように構成されてよい。
図1に例示される構成において、エンドエフェクタ2Bは、把持ハンドを含むとする。
【0015】
ロボット2は、アーム2Aを動作させることによって、エンドエフェクタ2Bの位置を制御できる。エンドエフェクタ2Bは、作業対象物8に対して作用する方向の基準となる軸を有してもよい。エンドエフェクタ2Bが軸を有する場合、ロボット2は、アーム2Aを動作させることによって、エンドエフェクタ2Bの軸の方向を制御できる。ロボット2は、エンドエフェクタ2Bが作業対象物8に作用する動作の開始及び終了を制御する。ロボット2は、エンドエフェクタ2Bの位置、又は、エンドエフェクタ2Bの軸の方向を制御しつつ、エンドエフェクタ2Bの動作を制御することによって、作業対象物8を動かしたり加工したりすることができる。
図1に例示される構成において、ロボット2は、作業開始地点6でエンドエフェクタ2Bに作業対象物8を把持させ、エンドエフェクタ2Bを作業目標地点7へ移動させる。ロボット2は、作業目標地点7でエンドエフェクタ2Bに作業対象物8を解放させる。このようにすることで、ロボット2は、作業対象物8を作業開始地点6から作業目標地点7へ移動させることができる。
【0016】
<センサ3>
図2に示されるように、ロボット制御システム1は、更にセンサ3を備える。センサ3は、ロボット2の物理情報を検出する。ロボット2の物理情報は、ロボット2の各構成部の現実の位置若しくは姿勢、又は、ロボット2の各構成部の速度若しくは加速度に関する情報を含んでよい。ロボット2の物理情報は、ロボット2の各構成部に作用する力に関する情報を含んでよい。ロボット2の物理情報は、ロボット2の各構成部を駆動するモータに流れる電流又はモータのトルクに関する情報を含んでよい。ロボット2の物理情報は、ロボット2の実際の動作の結果を表す。つまり、ロボット制御システム1は、ロボット2の物理情報を取得することによって、ロボット2の実際の動作の結果を把握することができる。
【0017】
センサ3は、ロボット2の物理情報として、ロボット2に作用する力、分布圧、若しくはすべり等を検出する力覚センサ又は触覚センサを含んでよい。センサ3は、ロボット2の物理情報として、ロボット2の位置若しくは姿勢、又は、速度若しくは加速度を検出するモーションセンサを含んでよい。センサ3は、ロボット2の物理情報として、ロボット2を駆動するモータに流れる電流を検出する電流センサを含んでよい。センサ3は、ロボット2の物理情報として、ロボット2を駆動するモータのトルクを検出するトルクセンサを含んでよい。
【0018】
センサ3は、ロボット2の関節、又は、関節を駆動する関節駆動部に設置されてよい。センサ3は、ロボット2のアーム2A又はエンドエフェクタ2Bに設置されてもよい。
【0019】
センサ3は、検出したロボット2の物理情報をロボット制御装置10に出力する。センサ3は、所定のタイミングでロボット2の物理情報を検出して出力する。センサ3は、ロボット2の物理情報を時系列データとして出力する。
【0020】
<カメラ4>
図1に示される構成例において、ロボット制御システム1は、2台のカメラ4を備えるとする。カメラ4は、ロボット2の動作に影響を及ぼす可能性がある影響範囲5に位置する物品又は人間等を撮影する。カメラ4が撮影する画像は、モノクロの輝度情報を含んでもよいし、RGB(Red, Green and Blue)等で表される各色の輝度情報を含んでもよい。影響範囲5は、ロボット2の動作範囲を含む。影響範囲5は、ロボット2の動作範囲を更に外側に広げた範囲であるとする。影響範囲5は、ロボット2の動作範囲の外側から動作範囲の内側へ向かって移動する人間等がロボット2の動作範囲の内側に入るまでにロボット2を停止できるように設定されてよい。影響範囲5は、例えば、ロボット2の動作範囲の境界から所定距離だけ外側まで拡張された範囲に設定されてもよい。カメラ4は、ロボット2の影響範囲5若しくは動作範囲又はこれらの周辺の領域を俯瞰的に撮影できるように設置されてもよい。カメラ4の数は、2つに限られず、1つであってもよいし、3つ以上であってもよい。
【0021】
<ロボット制御装置10>
ロボット制御装置10は、種々の機能を実行するための制御及び処理能力を提供するために、少なくとも1つのプロセッサを含んで構成されてよい。ロボット制御装置10の各構成部は、少なくとも1つのプロセッサを含んで構成されてもよい。例えば、干渉判定装置20は、少なくとも1つのプロセッサを含んで構成されてもよい。ロボット制御装置10の各構成部のうち複数の構成部が1つのプロセッサで実現されてもよい。ロボット制御装置10の全体が1つのプロセッサで実現されてもよい。プロセッサは、ロボット制御装置10の種々の機能を実現するプログラムを実行しうる。プロセッサは、単一の集積回路として実現されてよい。集積回路は、IC(Integrated Circuit)とも称される。プロセッサは、複数の通信可能に接続された集積回路及びディスクリート回路として実現されてよい。プロセッサは、他の種々の既知の技術に基づいて実現されてよい。
【0022】
ロボット制御装置10は、記憶部を備えてよい。記憶部は、磁気ディスク等の電磁記憶媒体を含んでよいし、半導体メモリ又は磁気メモリ等のメモリを含んでもよい。記憶部は、各種情報及びロボット制御装置10で実行されるプログラム等を格納する。記憶部は、非一時的な読み取り可能媒体として構成されてもよい。記憶部は、ロボット制御装置10のワークメモリとして機能してよい。記憶部の少なくとも一部は、ロボット制御装置10とは別体として構成されてもよい。
【0023】
<干渉判定装置20>
図2に示されるように、干渉判定装置20は、空間情報取得部52と、認識部50と、制御部30と、ロボット情報取得部40と、計画部60とを備える。以下、干渉判定装置20の各構成が説明される。
【0024】
<<空間情報取得部52>>
空間情報取得部52は、空間情報として、空間に存在する物体に関する空間点群情報を取得する。空間点群情報は、空間を特徴点によって表す情報である。空間情報取得部52は、空間情報として、空間のRGB情報を取得してよい。空間情報取得部52は、空間情報を認識部50に出力する。
【0025】
ロボット制御システム1は、空間点群情報を検出する視覚センサを備えてよい。空間情報取得部52は、視覚センサから空間点群情報を取得してよい。視覚センサは、ロボット2のアーム2Aの先端若しくはエンドエフェクタ2Bの先端、ロボット2の全体、ロボット2の影響範囲5、又は、ロボット2の影響範囲5の周辺を俯瞰的に捉えられる箇所に設置されてよい。
【0026】
空間情報取得部52は、カメラ4から撮像画像を取得してよい。空間情報取得部52は、カメラ4を含んで構成されてもよい。カメラ4は、ロボット2のアーム2Aの先端、又は、エンドエフェクタ2Bの先端に設置されてもよい。空間情報取得部52は、カメラ4から取得した撮像画像のRGB情報を取得する。空間情報取得部52は、撮像画像のデプス情報に基づいて空間点群情報を検出してよい。デプス情報は、カメラ4の被写体の奥行に関する情報を含む。
【0027】
<<認識部50>>
認識部50は、空間情報取得部52から得た空間情報に基づいて、ロボット2に実行させる作業の対象を認識し、対象の情報を取得する。認識部50は、作業の対象として作業対象物8を認識してよい。認識部50は、作業の対象として作業開始地点6及び作業目標地点7を認識してよい。
【0028】
認識部50は、作業の対象と、作業の対象ではない背景又は障害物等の物体とを区別して物体を認識する。物体を区別した認識は、クラスタリングとも称される。認識部50は、クラスタリングした物体を多面体で近似してよい。認識部50は、物体を近似して得られた多面体の頂点情報を取得してよい。認識部50は、クラスタリングした各物体の空間点群情報を取得してよい。認識部50は、空間点群情報を生成せずに各物体を認識してもよい。
【0029】
認識部50は、作業の対象を認識することによって、ロボット2に実行させる動作を認識する。認識部50は、認識した作業の対象に関する情報、又は、ロボット2に実行させる動作に関する情報を制御部30に出力する。認識部50がロボット2の作業に関する情報として認識した情報は、認識情報とも称される。認識情報は、作業の対象である物体の頂点に関する情報を含む。認識情報は、作業の対象ではない物体の頂点に関する情報を含む。作業の対象ではない物体は、障害物80(
図5等参照)とも称される。認識部50が空間点群情報を生成せずに物体を認識する場合、認識情報は、物体の外形に関する情報を含む。
【0030】
<<ロボット情報取得部40>>
ロボット情報取得部40は、センサ3の検出結果としてロボット2の物理情報を取得してよい。ロボット情報取得部40は、センサ3によって直接検出できない物理情報を推定することによって取得してもよい。ロボット情報取得部40は、取得した物理情報を、制御部30及び計画部60に出力する。
【0031】
<<制御部30>>
制御部30は、干渉領域計算部32を備える。干渉領域計算部32は、認識部50から認識情報を取得するとともに、ロボット情報取得部40からロボット2の物理情報を取得する。干渉領域計算部32は、認識情報とロボット2の物理情報とに基づいて、ロボット2の動作範囲に存在する物体と、ロボット2との干渉を判定する。
【0032】
干渉領域計算部32は、ロボット2が障害物を避けつつ対象の物体に対する作業を実行する空間において、ロボット2と物体との干渉を判定する。ロボット2が作業を実行する空間は、実空間とも称される。実空間は、人間によって現実の空間として視認される空間に対応する。
【0033】
ここで、ロボット2が関節の駆動によって動作する場合、実空間におけるロボット2の位置及び姿勢は、ロボット2の各関節の角度によって特定される。ロボット2の位置及び姿勢を特定するパラメータは、回転方向に駆動される各関節の角度に限られない。パラメータは、並進方向に駆動される部品の移動量を含んでもよい。
【0034】
ロボット2の位置及び姿勢は、ロボット2の状態と総称される。ロボット2は、異なる位置に移動したり異なる姿勢に変化したりすることによって異なる状態に遷移する。ロボット2の状態は、複数のパラメータによって特定される。各パラメータの値の1つの組み合わせは、ロボット2の1つの状態に対応する。言い換えれば、ロボット2の状態は、各パラメータの値の組み合わせとして表される。ロボット2の状態は、各パラメータの値を要素として有する状態ベクトルによって表される。状態ベクトルは、各パラメータを基底とする状態空間において定義される。ロボット2の状態を特定する各パラメータを基底とする状態空間は、構成空間とも称される。
【0035】
ロボット2の状態は、
図3に例示されるように、アーム2Aの位置及び姿勢によって特定される。ロボット2は、関節2C及び2Dを更に有する。アーム2Aの位置及び姿勢は、関節2Cの駆動角度θ1の値と、関節2Dの駆動角度θ2の値とで特定されるとする。つまり、ロボット2の状態は、θ1及びθ2の値で特定されるとする。また、関節2C及び2Dは、アーム2AをXY平面内で回転させるとする。つまり、ロボット2のアーム2Aは、XY平面内に位置する。θ1及びθ2は、XY平面内で定義される角度である。
【0036】
ロボット2の状態は、θ1及びθ2を基底とするベクトル平面(2次元ベクトル空間)上の点として表される。具体的には、ロボット2の状態は、
図4に例示される、θ1及びθ2それぞれを軸として表される平面上の点として表される。
図3においてアーム2Aの位置が実線で表されているロボット2の状態が第1状態であるとする。ロボット2の第1状態は、
図4の平面上の点P1として表される。
【0037】
ロボット2が移動したり姿勢を変えたりする場合、ロボット2の状態は、異なる状態に遷移する。ここで、ロボット2の状態が第1状態から第2状態に遷移すると仮定する。
図3においてアーム2Aの位置が破線で表されているロボット2の状態が第2状態であるとする。ロボット2の第2状態は、
図4の平面上の点P2として表される。
【0038】
ロボット2の状態は、連続的に遷移するとみなされ得るし、離散的に遷移するともみなされ得る。本実施形態において、ロボット2の状態は、連続的に遷移するとみなされる。ロボット2が所定の動作を実行する間、ロボット2の状態が連続的に遷移する。ロボット2の状態が連続的に遷移することによって、ロボット2の状態を特定する各パラメータの値が連続的に変化する。
図4に例示されるベクトル平面のような構成空間内でロボット2の状態に対応する点は、連続的に移動して構成空間内に軌跡を描く。ロボット2の状態が第1状態から第2状態に遷移する場合において、ロボット2の状態に対応する点の軌跡は、P1とP2とを結ぶ種々の経路として描かれ得る。例えば、軌跡は、
図4において実線で示されるようにP1とP2とを結ぶ直線として描かれてもよいし、破線で示されるようにP1とP2とを結ぶ曲線として描かれてもよい。
【0039】
図5に示されるように、ロボット2が動作する実空間に、障害物80が位置すると仮定する。障害物80は、4つの頂点81~84を有する長方形として表されている。干渉領域計算部32は、障害物80の頂点の座標を取得する。干渉領域計算部32は、認識部50でクラスタリングされた各物体の空間点群情報を取得し、各物体の空間点群情報に含まれる少なくとも一部の点を、その物体の頂点とみなしてよい。干渉領域計算部32は、ロボット2の少なくとも一部が障害物80の各頂点と干渉する場合におけるロボット2の状態を算出する。ロボット2の複数の状態において、ロボット2の少なくとも一部が頂点81と干渉する。ロボット2の複数の状態は、構成空間内の点の集合又は連続する点によって構成される軌跡若しくは領域として表される。つまり、ロボット2の少なくとも一部が頂点81と干渉する場合におけるロボット2の状態は、構成空間内の点の集合又は点が連続することによって描かれる軌跡若しくは領域として表される。
【0040】
例えば、干渉領域計算部32は、
図6に示されるように、θ1及びθ2それぞれを軸として表される平面上に、ロボット2の少なくとも一部が頂点81と干渉する場合におけるロボット2の状態を表す軌跡T81を描くことができる。また、干渉領域計算部32は、ロボット2の少なくとも一部が頂点82、83及び84それぞれと干渉する場合におけるロボット2の状態を表す軌跡T82、T83及びT84を描くことができる。
【0041】
ロボット2の少なくとも一部が障害物80等の物体と干渉する場合におけるロボット2のパラメータの値は、干渉値とも称される。ロボット2の少なくとも一部が障害物80等の物体と干渉する場合におけるロボット2の状態を表す点の集合、軌跡又は領域は、干渉領域とも総称される。つまり、干渉領域計算部32は、構成空間において干渉値に対応する点、軌跡又は領域の集合として干渉領域を生成する。
【0042】
干渉領域計算部32は、構成空間内でロボット2の状態を表す点が干渉領域の外側に位置する場合、ロボット2が障害物80等の物体と干渉しないと判定できる。したがって、干渉領域計算部32は、構成空間で生成した干渉領域に基づいて、実空間においてロボット2が障害物80等の物体を避けて動作できるか判定できる。
【0043】
具体的には、干渉領域計算部32は、ロボット2が作業を実行する場合の動作を仮定して、仮定した動作の間にロボット2が遷移し得る状態に対応する構成空間内の点の集合、軌跡又は領域を生成する。干渉領域計算部32は、ロボット情報取得部40から取得したロボット2の物理情報に基づいて、ロボット2の動作を仮定してよい。ロボット2が動作中に遷移する状態を表す、構成空間内の点、軌跡又は領域は、動作領域とも総称される。
【0044】
干渉領域計算部32は、仮定したロボット2の動作に対応する動作領域の全てが干渉領域に重ならない場合、仮定した動作によってロボット2が障害物80等の物体に干渉しないと判定してよい。干渉領域計算部32は、仮定した動作によってロボット2が物体に干渉しないと判定した場合、判定結果を計画部60に出力してよい。
【0045】
干渉領域計算部32は、仮定したロボット2の動作に対応する動作領域の少なくとも一部が干渉領域に重なる場合、仮定した動作によってロボット2が障害物80等の物体に干渉すると判定してよい。干渉領域計算部32は、仮定した動作によってロボット2が物体に干渉すると判定した場合、他の動作を新たに仮定して動作領域を生成し、新たに仮定した動作によってロボット2が物体に干渉するか判定してよい。
【0046】
干渉領域は、
図6に例示されるように複数の点、軌跡又は領域の集合として生成され得る。この場合、複数の点、軌跡又は領域の間の点は、ロボット2が物体に干渉しない状態を表す。しかし、干渉領域は、物体の一部の点に基づいて生成されている。したがって、干渉領域に含まれない点で表される状態であっても、ロボット2は、物体の少なくとも一部と干渉することがある。
【0047】
そこで、制御部30の構成空間近似部34は、干渉領域を構成する点、軌跡又は領域を包含する領域を新たに生成する。構成空間近似部34が新たに生成する領域は、補正干渉領域とも称される。構成空間近似部34は、例えば、
図7に例示されるように、4本の軌跡Tを全て含む領域として破線の四辺形で示される領域Aを補正干渉領域として新たに生成してよい。構成空間近似部34は、構成空間が2次元空間である場合、補正干渉領域として多角形等の種々の平面図形で表される領域を生成してよい。構成空間近似部34は、構成空間が3次元空間である場合、補正干渉領域として多面体等の種々の立体図形で表される領域を生成してよい。構成空間近似部34は、構成空間が4次元以上の多次元空間である場合、補正干渉領域として多次元空間で定義される種々の図形で表される領域を生成してよい。
【0048】
構成空間近似部34は、構成空間内に生成された干渉領域を包含する領域を近似した領域として補正干渉領域を生成してよい。構成空間近似部34は、例えば、干渉領域を包含する領域を単純な図形で近似することによって、単純な形状の補正干渉領域を生成してよい。具体的には、構成空間が2次元空間である場合、構成空間近似部34は、干渉領域を三角形又は四角形等の単純な平面図形に近似して補正干渉領域として生成してよい。構成空間が3次元空間である場合、構成空間近似部34は、干渉領域を直方体又は立方体等の単純な多面体に近似して補正干渉領域として生成してよい。
【0049】
干渉領域計算部32は、構成空間近似部34から補正干渉領域を取得し、補正干渉領域に基づいてロボット2が物体に干渉するか判定してよい。
【0050】
<<計画部60>>
計画部60は、障害物80等の物体と干渉しないと判定されたロボット2の動作に関する情報を制御部30から取得するとともに、ロボット情報取得部40からロボット2の物理情報を取得する。ロボット2の動作に関する情報は、動作情報とも称される。計画部60は、ロボット2の動作情報と物理情報とに基づいて、ロボット2が操作する際に移動する経路を計画するとともに、計画した経路の各位置におけるロボット2の速度又は加速度を計画する。計画部60は、計画した経路及び経路の各位置における速度又は加速度を特定する情報を、操作量生成装置70に出力する。計画部60が計画した経路及び経路の各位置における速度又は加速度を特定する情報は、計画情報とも称される。
【0051】
計画部60は、経路計画部62と、動作計画部64とを備える。経路計画部62は、ロボット2の各部が移動する経路を計画する。具体的には、経路計画部62は、ロボット2の各部が移動する経路の始点若しくは終点又は経由点を、XYZ座標系で定義される空間座標情報によって表してよい。経路計画部62は、ロボット2の経路に含まれる各位置における各部の姿勢を、ロボット2の各関節2Cの角度として表してもよい。動作計画部64は、ロボット2の経路に含まれる各位置におけるロボット2の速度若しくは角速度、又は、加速度若しくは角加速度を計画する。
【0052】
以上説明してきたように、干渉判定装置20は、ロボット2が他の物体と干渉しないようにロボット2の動作を計画し、計画情報を操作量生成装置70に出力する。
【0053】
<操作量生成装置70>
操作量生成装置70は、干渉判定装置20の計画部60から取得した計画情報に基づいてロボット2を適切に制御できるように、ロボット2に対する操作量を生成してロボット2に出力する。ロボット2に対する操作量は、例えば、ロボット2の関節2C等の各部を駆動するモータの出力を制御する情報を含んでよい。操作量生成装置70は、ロボット2のアーム2Aに対する操作量を生成するアーム制御部と、ロボット2のエンドエフェクタ2Bに対する操作量を生成するエンドエフェクタ制御部とを備えてよい。
【0054】
(干渉判定装置20の動作例)
干渉判定装置20は、上述してきたように、ロボット2の動作を仮定して、仮定した動作によってロボット2の少なくとも一部が物体と干渉するか判定する。干渉判定装置20は、ロボット2と物体との干渉を判定した結果に基づいて、ロボット2の動作の経路等を決定する。
【0055】
干渉判定装置20は、
図8に例示されるフローチャートの手順を含む干渉判定方法を実行してもよい。干渉判定方法は、干渉判定装置20を構成するプロセッサに実行させる干渉判定プログラムとして実現されてもよい。干渉判定プログラムは、非一時的なコンピュータ読み取り可能な媒体に格納されてよい。
【0056】
空間情報取得部52は、空間情報を取得する(ステップS1)。空間情報取得部52は、空間情報として、ロボット2が動作する空間に存在する障害物80等の物体の空間点群情報を取得する。
【0057】
認識部50は、空間情報に基づいて物体をクラスタリングする(ステップS2)。具体的には、認識部50は、空間情報に含まれる複数の物体の空間点群情報を物体毎に分類し、各物体の空間点群情報を生成する。
【0058】
制御部30は、干渉領域を生成する(ステップS3)。具体的には、制御部30の干渉領域計算部32は、ロボット2が動作する空間に存在する物体に対応する干渉値を算出する。干渉領域計算部32は、算出した干渉値を構成空間内の点の集合、軌跡又は領域として表すことによって、点の集合、軌跡又は領域を含む干渉領域を生成する。
【0059】
制御部30は、補正干渉領域を生成する(ステップS4)。具体的には、制御部30の構成空間近似部34は、干渉領域計算部32で生成した干渉領域を含む新たな領域を生成する。構成空間近似部34は、干渉領域を含む単純な図形で表される領域を新たな領域として生成してよい。
【0060】
制御部30は、動作領域を生成する(ステップS5)。具体的には、制御部30の干渉領域計算部32は、ロボット2の動作を仮定する。干渉領域計算部32は、仮定した動作によってロボット2のパラメータがとり得る値を算出する。干渉領域計算部32は、算出したパラメータの値を構成空間内の点の集合、軌跡又は領域として表すことによって、点の集合、軌跡又は領域を含む動作領域を生成する。
【0061】
制御部30は、ロボット2の少なくとも一部が物体と干渉するか判定する(ステップS6)。具体的には、制御部30は、仮定された動作をロボット2が実行した場合に、ロボット2の少なくとも一部が障害物80等の物体と干渉するか、動作領域と補正干渉領域とに基づいて判定する。制御部30は、動作領域の全てが補正干渉領域と重ならない場合、仮定された動作によってロボット2の全体が物体と干渉しないと判定する。制御部30は、動作領域の少なくとも一部が補正干渉領域と重なる場合、仮定された動作によってロボット2の少なくとも一部が物体と干渉すると判定する。
【0062】
制御部30は、ロボット2の少なくとも一部が物体と干渉すると判定した場合(ステップS6:YES)、ステップS5の手順に戻って、動作の仮定及び動作領域の生成をやり直す。制御部30は、ロボット2の全体が物体と干渉しないと判定した場合(ステップS6:NO)、計画部60に動作情報を出力する(ステップS7)。制御部30は、動作情報として、ロボット2の全体が物体と干渉しないと判定した動作に関する情報を出力する。
【0063】
計画部60は、動作情報に基づいて計画情報を生成する(ステップS8)。計画部60は、生成した計画情報を操作量生成装置70に出力する。
【0064】
干渉判定装置20は、ステップS8の手順の実行後、
図8のフローチャートの手順の実行を終了する。
【0065】
(本実施形態の小括、及び、比較例との対比)
以上述べてきたように、本実施形態に係る干渉判定装置20は、ロボット2が動作する空間に存在する障害物80等の物体の頂点についてロボット2の干渉値を算出し、構成空間内で干渉領域を生成する。干渉判定装置20は、物体の各頂点に対応する干渉領域を全て包含する補正干渉領域を生成する。干渉判定装置20は、ロボット2の動作を仮定し、仮定した動作に対応する動作領域を構成空間内で生成する。干渉判定装置20は、補正干渉領域と動作領域とに基づいて、仮定した動作によってロボット2が物体に干渉するか判定する。干渉判定装置20は、ロボット2が物体に干渉しない動作を生成し、その動作の計画情報を生成する。
【0066】
ここで、比較例に係る判定方法として、物体の全体について干渉値が算出され得る。物体の全体について干渉値を算出する場合、物体の頂点について干渉値を算出する場合よりも、演算量が増大する。例えば、ロボット2を線分で表した場合、物体の全体について干渉値を算出するために、物体の表面とロボット2を表す線分とが交わるか判定する。一方で、本実施形態に係る干渉判定方法のように物体の頂点について干渉値を算出する場合、ロボット2を表す線分が頂点を通過するか判定すればよい。面と線分とが交わる判定のために、物体の表面を数式で表す必要があり、線分が点を通過することを確認するだけの演算よりも、演算量が増加する。したがって、本実施形態に係る干渉判定装置20は、物体の頂点について干渉値を算出することによって、ロボット2に物体を回避させるための計算負荷を低減できる。その結果、ロボット2の利便性が向上する。
【0067】
また、本実施形態に係る干渉判定方法によれば、計算負荷を低減できることによって、ロボット2の動作計画のリアルタイム性が向上する。動作計画のリアルタイム性の向上によってロボット2の反応が速くなる。その結果、ロボット2の安全性が向上し得る。また、本実施形態に係る干渉判定方法によれば、ロボット2のアーム2A又はエンドエフェクタ2B等の構成を変更した場合においても、干渉値を新たに算出するための負荷が低減される。したがって、ロボット2の構成変更がロボット2の干渉判定に迅速に反映され得る。
【0068】
また、比較例に係る判定方法として、ロボット2又は物体を2次元空間上で表現して情報量を削減することによって干渉判定の演算量が低減され得る。この方法は、水平多関節ロボットに対して適用できるものの、3次元空間を自在に移動できる6軸マニピュレータ等に対して適用できない。また、6軸マニピュレータの場合は、干渉領域を避けた経路計画の計算に各リンクの位置又は姿勢も考慮する必要があり、計算量がどうしても膨大になってしまう。比較例において、仮に干渉領域をロボット2の構成空間に写像し、構成空間上で経路計画するとしても、種々の問題が生じる。例えば、ロボット2が動作する実空間上の障害物に対して、ロボット2の複数のパラメータの一部を固定したままで、残りのパラメータを変化させ、干渉する領域を構成空間に写像し、写像した物体の端点同士を結び多角形に近似することで干渉が判定され得る。この方法において、実空間に存在する障害物の情報ほぼ全てが写像される。したがって、本実施形態において物体の頂点だけを写像することと比較して、計算負荷が高い。つまり、本実施形態において物体の頂点を写像することによって、計算負荷が低減される。その結果、ロボット2の利便性が向上する。
【0069】
また、比較例に係る判定方法として、障害物を球体に近似し、ロボット2の構成と球体との位置関係を幾何学的に計算して干渉領域を構成空間に写像し、更にそれを単純な図形に近似することによって干渉判定の演算量が低減され得る。この方法は、障害物を球体近似することによるデメリットとして、障害物の形状が球体と大きく異なる場合、実際には障害物が存在しない部分に対してもロボット2が干渉すると判定されてしまう。つまり、この方法は、適用できる障害物の形状が制限される。これに対して、本実施形態に係る干渉判定方法によれば、物体の頂点を写像することによって、干渉の判定対象とする障害物の形状が制限されにくい。その結果、ロボット2の利便性が向上する。また、物体の頂点を写像することによって、障害物の形状が干渉判定に簡易に反映され得る。その結果、ロボット2が障害物80等の物体を自律的に回避する汎用性の高い軌道生成が可能となる。
【0070】
(他の実施形態)
以下、他の実施形態が説明される。
【0071】
<特異点及びポテンシャル>
ロボット2は、動作不可能な状態に陥る特異点を有する。特異点は、構成空間において点又は領域として表され得る。干渉判定装置20の干渉領域計算部32は、構成空間において干渉領域だけでなく特異点にも基づいて、ロボット2の動作の妥当性を判定してもよい。また、干渉領域計算部32は、特異点を考慮しなくても、干渉領域を考慮するだけでロボット2に自動的に特異点を回避させ得る。つまり、構成空間でロボット2の動作の妥当性を判定することによって、特異点が容易に回避され得る。
【0072】
また、干渉領域計算部32は、構成空間において特異点又はその近傍にポテンシャルを設置し、ポテンシャルを避けるようにロボット2の動作の妥当性を判定してもよい。ポテンシャルは、例えば干渉領域又は特異点とロボット2の状態を表す点との距離に基づいて定まる値に対応する。ポテンシャルは、ロボット2の状態を表す点が干渉領域又は特異点に近づくほど、高い値に定まるとする。干渉領域計算部32は、ロボット2の動作を仮定する場合において、ロボット2の動作中に遷移する各状態におけるポテンシャルの積分値又は合計値が小さくなるようにロボット2の動作を仮定してよい。このようにすることで、ロボット2が障害物80等の物体又は特異点に接近しすぎないように、ロボット2の動作が仮定され得る。また、ロボット2の経路が短くなるように、ロボット2の動作が仮定され得る。なぜならば、ポテンシャルの値を低い値とするために、ロボット2が干渉領域又は特異点から離れるように、かつ、ロボット2の経路が短くなるように、ロボット2の動作が仮定されるからである。
【0073】
<ロボット2の形状の反映>
制御部30の干渉領域計算部32は、実空間におけるロボット2の形状に更に基づいて干渉値を計算してもよい。具体的には、干渉領域計算部32は、ロボット2のアーム2Aを線分とみなして障害物80等の物体の頂点に対する干渉値を計算した上で、アーム2Aが実際に有する形状を考慮した干渉値を算出してよい。アーム2Aを線分とみなして計算し、更にアーム2Aの形状を考慮することによって、干渉値の算出負荷が低減され得る。
【0074】
<干渉値の計算対象とするパラメータの選択>
制御部30の干渉領域計算部32は、ロボット2の位置及び姿勢に所定量以上の影響を及ぼすパラメータを対象として干渉値を計算してもよい。具体的には、干渉領域計算部32は、ロボット2の状態を特定する一部のパラメータについて干渉値を計算してよい。
【0075】
干渉領域計算部32は、ロボット2の状態を特定するパラメータに優先順位を設定し、上位の順位が設定されたパラメータについて干渉値を計算してもよい。干渉領域計算部32は、ロボット2の状態を特定するパラメータのうち、上位n位までの順位が設定されたパラメータについて干渉値を計算してよい。優先順位は、各パラメータの変動量に対するロボット2の座標の変化量又は姿勢を表す角度の変化量の比率に基づいて設定されてよい。例えば、パラメータの変化量に対してアーム2Aの座標の変化量又はアーム2Aの角度の変化量が大きいほど、そのパラメータの優先順位が高い順位に設定されてよい。
【0076】
干渉領域計算部32は、各パラメータを所定値だけ変化させた場合におけるロボット2の特定の部分の座標の変化量が所定量以上となる場合、そのパラメータを、ロボット2の状態に所定量以上の影響を及ぼすパラメータとみなしてよい。干渉領域計算部32は、ロボット2の特定の部分の座標の変化量のうち所定の割合の変化量に寄与するパラメータを、ロボット2の状態に所定量以上の影響を及ぼすパラメータとみなしてもよい。ロボット2の特定の部分は、例えばロボット2の先端に位置するエンドエフェクタ2B等であってよい。
【0077】
干渉領域計算部32は、ロボット2の各パラメータを所定値だけ変化させた場合におけるロボット2の特定の変化量を算出し、全パラメータに関する変化量の合計に対する各パラメータに関する変化量の割合を算出してよい。例えば、干渉領域計算部32は、変化量の合計に対して5%以上の変化量となるパラメータが存在し、かつ、変化量の合計に対して5%未満の変化量となるパラメータが存在する場合、変化量の合計に対して5%以上の変化量となるパラメータを、所定量以上の影響を及ぼすパラメータとみなしてよい。所定の割合は、5%に限られず、10%、15%又は20%等の種々の値に設定されてよい。また、干渉領域計算部32は、変化量の合計に対する各パラメータの変化量の割合の差異が例えば10%以内に収まる場合、全てのパラメータを所定量以上の影響を及ぼすパラメータとみなしてもよい。
【0078】
具体的にロボット2が6個の関節(第1関節から第6関節まで)を有すると仮定する。干渉領域計算部32は、6個の関節それぞれの角度を所定量だけ変化させたことによるロボット2の先端の座標の移動量を算出する。干渉領域計算部32は、各関節に対応するロボット2の先端の座標の移動量の合計を算出する。干渉領域計算部32は、ロボット2の先端の座標の移動量の合計に対する各関節に対応するロボット2の先端の座標の移動量の比率を算出する。第1関節に対応する移動量の比率は、60%であったとする。第2関節に対応する移動量の比率は、20%であったとする。第3関節に対応する移動量の比率は、10%であったとする。第4関節に対応する移動量の比率は、5%であったとする。第5関節に対応する移動量の比率は、3%であったとする。第6関節に対応する移動量の比率は、2%であったとする。例えば、所定の割合が15%に設定される場合、第1関節及び第2関節の角度が所定量以上の影響を及ぼすパラメータとみなされる。例えば、所定の割合が5%に設定される場合、第1関節、第2関節、第3関節及び第4関節の角度が所定量以上の影響を及ぼすパラメータとみなされる。
【0079】
<実空間における物体の頂点の認識>
上述してきたように、認識部50は、空間点群情報を生成せずに物体を認識して、物体の外形に関する情報を認識情報として出力してよい。この場合、制御部30の干渉領域計算部32は、物体の外形を含有する近似図形を生成してよい。ロボット2が2次元で動作する場合、干渉領域計算部32は、物体の外形を多角形等の平面図形で近似してよい。ロボット2が3次元で動作する場合、干渉領域計算部32は、物体の外形を多面体等の立体図形で近似してよい。立体図形は、例えば、直方体、正多面体(正四面体、正六面体、正八面体、正十二面体及び正二十面体)、又は、三角柱若しくは四角柱等の角柱等を含んでよい。干渉領域計算部32は、近似図形の頂点を物体の頂点とみなしてロボット2の各パラメータの干渉値を計算する。
【0080】
干渉領域計算部32は、物体の認識情報として空間点群情報を取得した場合、空間点群情報に含まれる点を物体の頂点とみなしてよい。干渉領域計算部32は、物体の認識情報として空間点群情報と物体の外形に関する情報とをあわせて取得してもよい。この場合においても、干渉領域計算部32は、物体の外形を含有する近似図形を生成し、近似図形の頂点を物体の頂点とみなしてもよい。
【0081】
また、干渉領域計算部32は、物体の外形を含有する図形で物体を表し、その図形の頂点を物体の頂点とみなしてもよい。例えば、物体が空間点群情報で表される場合、干渉領域計算部32は、空間点群情報に含まれる点の数よりも少ない数の頂点を有する図形で物体を表してもよい。干渉領域計算部32は、空間点群情報に含まれる点の数と同じ数の頂点を有する図形で物体を表してもよいし、空間点群情報に含まれる点の数より多い数の頂点を有する図形で物体を表してもよい。干渉領域計算部32は、物体を表すデータ形式が簡易になるように物体を表してよい。このようにすることで、干渉値の計算負荷が低減され得る。干渉領域計算部32は、物体を表す図形の頂点間の距離が所定距離未満になるように、所定距離以上離れた頂点の間を補間する点を含む図形で物体を表してもよい。このようにすることで、ロボット2が頂点間をすり抜けることによる干渉値の計算漏れが低減され得る。
【0082】
干渉領域計算部32は、ロボット2のアーム2Aが柱状である場合、アーム2Aの柱状の形状の軸に直交する断面の形状に基づいて、物体を表す図形を外側に拡大してよい。この場合、干渉領域計算部32は、ロボット2のアーム2Aを線分とみなして干渉値を計算してよい。このようにすることで、干渉値の計算負荷が低減され得る。
【0083】
以上、ロボット制御システム1の実施形態を説明してきたが、本開示の実施形態としては、システム又は装置を実施するための方法又はプログラムの他、プログラムが記録された記憶媒体(一例として、光ディスク、光磁気ディスク、CD-ROM、CD-R、CD-RW、磁気テープ、ハードディスク、又はメモリカード等)としての実施態様をとることも可能である。
【0084】
また、プログラムの実装形態としては、コンパイラによってコンパイルされるオブジェクトコード、インタプリタにより実行されるプログラムコード等のアプリケーションプログラムに限定されることはなく、オペレーティングシステムに組み込まれるプログラムモジュール等の形態であっても良い。さらに、プログラムは、制御基板上のCPUにおいてのみ全ての処理が実施されるように構成されてもされなくてもよい。プログラムは、必要に応じて基板に付加された拡張ボード又は拡張ユニットに実装された別の処理ユニットによってその一部又は全部が実施されるように構成されてもよい。
【0085】
本開示に係る実施形態について説明する図は模式的なものである。図面上の寸法比率等は、現実のものとは必ずしも一致していない。
【0086】
本開示に係る実施形態について、諸図面及び実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形又は改変を行うことが可能であることに注意されたい。従って、これらの変形又は改変は本開示の範囲に含まれることに留意されたい。例えば、各構成部等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部等を1つに組み合わせたり、或いは分割したりすることが可能である。
【0087】
本開示に記載された構成要件の全て、及び/又は、開示された全ての方法、又は、処理の全てのステップについては、これらの特徴が相互に排他的である組合せを除き、任意の組合せで組み合わせることができる。また、本開示に記載された特徴の各々は、明示的に否定されない限り、同一の目的、同等の目的、または類似する目的のために働く代替の特徴に置換することができる。したがって、明示的に否定されない限り、開示された特徴の各々は、包括的な一連の同一、又は、均等となる特徴の一例にすぎない。
【0088】
さらに、本開示に係る実施形態は、上述した実施形態のいずれの具体的構成にも制限されるものではない。本開示に係る実施形態は、本開示に記載された全ての新規な特徴、又は、それらの組合せ、あるいは記載された全ての新規な方法、又は、処理のステップ、又は、それらの組合せに拡張することができる。
【0089】
本開示において「第1」及び「第2」等の記載は、当該構成を区別するための識別子である。本開示における「第1」及び「第2」等の記載で区別された構成は、当該構成における番号を交換することができる。例えば、第1状態は、第2状態と識別子である「第1」と「第2」とを交換することができる。識別子の交換は同時に行われる。識別子の交換後も当該構成は区別される。識別子は削除してよい。識別子を削除した構成は、符号で区別される。本開示における「第1」及び「第2」等の識別子の記載のみに基づいて、当該構成の順序の解釈、小さい番号の識別子が存在することの根拠に利用してはならない。
【符号の説明】
【0090】
1 ロボット制御システム(3:センサ、4:カメラ、5:影響範囲、6:作業開始地点、7:作業目標地点、8:作業対象物)
2 ロボット(2A:アーム、2B:エンドエフェクタ、2C、2D:関節)
10 ロボット制御装置
20 干渉判定装置
30 制御部(32:干渉領域計算部、34:構成空間近似部)
40 ロボット情報取得部
50 認識部
52 空間情報取得部
60 計画部(62:経路計画部、64:動作計画部)
70 操作量生成装置
80 障害物(81~84:頂点)