(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-15
(45)【発行日】2023-08-23
(54)【発明の名称】回避軌道生成装置、方法、及びプログラム
(51)【国際特許分類】
B25J 9/22 20060101AFI20230816BHJP
G05B 19/42 20060101ALI20230816BHJP
【FI】
B25J9/22 A
G05B19/42 R
(21)【出願番号】P 2019190558
(22)【出願日】2019-10-17
【審査請求日】2022-08-17
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】倉谷 僚一
【審査官】仁木 学
(56)【参考文献】
【文献】特開2018-144223(JP,A)
【文献】特開2016-190315(JP,A)
【文献】特開2015-160277(JP,A)
【文献】特開平05-119814(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/42
(57)【特許請求の範囲】
【請求項1】
複数のロボットの各々について、動作の軌道を示す軌道情報と、キネマティクス情報、設置位置情報、及び形状情報を含む仕様情報とを取得する取得部と、
前記取得部により取得された前記軌道情報と前記仕様情報とに基づいて、前記複数のロボットの各々が前記動作を実行する際のロボット間の干渉の有無を判定する判定部と、
前記複数のロボットのうち、回避軌道を生成する対象のロボットについて、前記判定部により干渉すると判定された時点の姿勢における前記対象のロボットの一部の位置を障害物の位置として登録する登録部と、
前記登録部により登録された障害物を回避する回避軌道を生成する生成部と、
を含む回避軌道生成装置。
【請求項2】
前記対象のロボットの一部は、ロボットの手先部分を含む請求項1に記載の回避軌道生成装置。
【請求項3】
前記判定部は、前記対象のロボットの動作時間を所定の時間間隔で分割した各時刻ステップにおける前記対象のロボットの姿勢と、同時刻ステップにおける前記複数のロボットの内の他のロボットの姿勢とに基づいて、前記ロボット間の干渉の有無を判定する請求項1又は請求項2に記載の回避軌道生成装置。
【請求項4】
前記登録部は、前記判定部により干渉すると判定された時点の姿勢における前記他のロボットの一部の位置を障害物の位置として登録す
る請求項
3に記載の回避軌道生成装置。
【請求項5】
前記登録部は、前記生成部による回避軌道の生成の妨げになる場合、前記他のロボットの一部を障害物として登録しない請求項4に記載の回避軌道生成装置。
【請求項6】
前記生成部は、前記対象のロボットの開始姿勢から、前記障害物を回避し、終了姿勢に至るまでの軌道を回避軌道として生成する請求項1~請求項5のいずれか1項に記載の回避軌道生成装置。
【請求項7】
前記生成部は、前記取得部が取得した軌道情報が示す開始姿勢から終了姿勢までの元の軌道において、干渉直前の第1中間姿勢と、干渉直後の第2中間姿勢とを特定し、前記第1中間姿勢から前記第2中間姿勢までの前記障害物を回避する部分的な軌道を生成し、前記開始姿勢から前記第1中間姿勢までの前記元の軌道と、生成した前記部分的な軌道と、前記第2中間姿勢から前記終了姿勢までの前記元の軌道とを組み合わせて、回避軌道を生成する請求項1~請求項5のいずれか1項に記載の回避軌道生成装置。
【請求項8】
取得部が、複数のロボットの各々について、動作の軌道を示す軌道情報と、キネマティクス情報、設置位置情報、及び形状情報を含む仕様情報とを取得し、
判定部が、前記取得部により取得された前記軌道情報と前記仕様情報とに基づいて、前記複数のロボットの各々が前記動作を実行する際のロボット間の干渉の有無を判定し、
登録部が、前記複数のロボットのうち、回避軌道を生成する対象のロボットについて、前記判定部により干渉すると判定された時点の姿勢における前記対象のロボットの一部の位置を障害物の位置として登録し、
生成部が、前記登録部により登録された障害物を回避する回避軌道を生成する
回避軌道生成方法。
【請求項9】
コンピュータを、
複数のロボットの各々について、動作の軌道を示す軌道情報と、キネマティクス情報、設置位置情報、及び形状情報を含む仕様情報とを取得する取得部、
前記取得部により取得された前記軌道情報と前記仕様情報とに基づいて、前記複数のロボットの各々が前記動作を実行する際のロボット間の干渉の有無を判定する判定部、
前記複数のロボットのうち、回避軌道を生成する対象のロボットについて、前記判定部により干渉すると判定された時点の姿勢における前記対象のロボットの一部の位置を障害物の位置として登録する登録部、及び、
前記登録部により登録された障害物を回避する回避軌道を生成する生成部
として機能させるための回避軌道生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、回避軌道生成装置、回避軌道生成方法、及び回避軌道生成プログラムに関する。
【背景技術】
【0002】
複数のロボットの動作生成を行う際、従来技術では、ロボット同士の干渉を判定し、干渉が発生する場合、干渉時の相手ロボットの形状を障害物として設定し、障害物を回避するような回避動作を生成している。
【0003】
例えば、実環境で複数台のロボットアームを動作させる時、その通過領域が互いに交差する可能性を低減できるように、ロボットの軌道生成を行う方法が提案されている。この方法では、複数のロボットアームの軌道の始点及び終点を含む動作指令リストを生成し、動作指令リストに基づき各々の軌道生成を行う順序を決定し、動作指令リスト中の特定のロボットアームに関し、始点及び終点に基づき、障害物メモリに他のロボットアームの軌道生成に関して登録された障害物空間を回避するよう、軌道生成を行う。そして、生成軌道で当該ロボットアームを動作させた際、当該アームの躯体によって掃引される掃引空間を、他のロボットアームが回避すべき障害物空間として障害物メモリに追加する(特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、他のロボットを障害物として登録する場合、他のロボットのどの部分と干渉しているかを求めることは計算コストがかかる。一方、他のロボットの全体や、特許文献1に記載の発明のように、アームの躯体によって掃引される掃引空間を障害物空間として登録する場合、障害物の範囲が大きくなり過ぎてしまい、障害物を回避可能な回避軌道が生成される確率、すなわち回避軌道の生成の成功率が低下するという問題がある。
【0006】
本発明は、上記の点に鑑みてなされたものであり、複数のロボットの動作生成において、ロボット同士が干渉する場合の回避軌道の生成の成功率を向上させることを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明に係る回避軌道生成装置は、複数のロボットの各々について、動作の軌道を示す軌道情報と、キネマティクス情報、設置位置情報、及び形状情報を含む仕様情報とを取得する取得部と、前記取得部により取得された前記軌道情報と前記仕様情報とに基づいて、前記複数のロボットの各々が前記動作を実行する際のロボット間の干渉の有無を判定する判定部と、前記複数のロボットのうち、回避軌道を生成する対象のロボットについて、前記判定部により干渉すると判定された時点の姿勢における前記対象のロボットの一部の位置を障害物の位置として登録する登録部と、前記登録部により登録された障害物を回避する回避軌道を生成する生成部と、を含んで構成される。
【0008】
また、前記対象のロボットの一部は、ロボットの手先部分を含むことができる。
【0009】
また、前記判定部は、前記対象のロボットの動作時間を所定の時間間隔で分割した各時刻ステップにおける前記対象のロボットの姿勢と、同時刻ステップにおける前記複数のロボットの内の他のロボットの姿勢とに基づいて、前記ロボット間の干渉の有無を判定することができる。
【0010】
また、前記登録部は、前記判定部により干渉すると判定された時点の姿勢における前記他のロボットの一部の位置を障害物の位置として登録することができる。
【0011】
また、前記登録部は、前記生成部による回避軌道の生成の妨げになる場合、前記他のロボットの一部を障害物として登録しないようにすることができる。
【0012】
また、前記生成部は、前記対象のロボットの開始姿勢から、前記障害物を回避し、終了姿勢に至るまでの軌道を回避軌道として生成することができる。
【0013】
また、前記生成部は、前記取得部が取得した軌道情報が示す開始姿勢から終了姿勢までの元の軌道において、干渉直前の第1中間姿勢と、干渉直後の第2中間姿勢とを特定し、前記第1中間姿勢から前記第2中間姿勢までの前記障害物を回避する部分的な軌道を生成し、前記開始姿勢から前記第1中間姿勢までの前記元の軌道と、生成した前記部分的な軌道と、前記第2中間姿勢から前記終了姿勢までの前記元の軌道とを組み合わせて、回避軌道を生成することができる。
【0014】
また、本発明に係る回避軌道生成方法は、取得部が、複数のロボットの各々について、動作の軌道を示す軌道情報と、キネマティクス情報、設置位置情報、及び形状情報を含む仕様情報とを取得し、判定部が、前記取得部により取得された前記軌道情報と前記仕様情報とに基づいて、前記複数のロボットの各々が前記動作を実行する際のロボット間の干渉の有無を判定し、登録部が、前記複数のロボットのうち、回避軌道を生成する対象のロボットについて、前記判定部により干渉すると判定された時点の姿勢における前記対象のロボットの一部の位置を障害物の位置として登録し、生成部が、前記登録部により登録された障害物を回避する回避軌道を生成する方法である。
【0015】
また、本発明に係る回避軌道生成プログラムは、コンピュータを、複数のロボットの各々について、動作の軌道を示す軌道情報と、キネマティクス情報、設置位置情報、及び形状情報を含む仕様情報とを取得する取得部、前記取得部により取得された前記軌道情報と前記仕様情報とに基づいて、前記複数のロボットの各々が前記動作を実行する際のロボット間の干渉の有無を判定する判定部、前記複数のロボットのうち、回避軌道を生成する対象のロボットについて、前記判定部により干渉すると判定された時点の姿勢における前記対象のロボットの一部の位置を障害物の位置として登録する登録部、及び、前記登録部により登録された障害物を回避する回避軌道を生成する生成部として機能させるためのプログラムである。
【発明の効果】
【0016】
本発明に係る回避軌道生成装置、方法、及びプログラムによれば、複数のロボットの動作生成において、ロボット同士が干渉する場合の回避軌道の生成の成功率を向上させることができる。
【図面の簡単な説明】
【0017】
【
図1】第1~第3実施形態に係るロボット制御システムの概略構成を示す図である。
【
図2】第1~第3実施形態に係る回避軌道生成装置のハードウェア構成を示すブロック図である。
【
図3】第1~第3実施形態に係る回避軌道生成装置の機能構成の例を示すブロック図である。
【
図4】第1実施形態における回避軌道生成処理の一例を示すフローチャートである。
【
図5】第2実施形態における回避軌道生成処理の一例を示すフローチャートである。
【
図6】第3実施形態における回避軌道生成処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0019】
<第1実施形態>
図1に示すように、第1実施形態に係るロボット制御システム100は、回避軌道生成装置10と、ロボット制御装置12と、ロボット16A、16Bとを含んで構成される。なお、
図1の例では、ロボット制御システム100に2台のロボット16A、16Bが含まれる場合を示しているが、3台以上のロボットを含んでもよい。また、以下では、ロボット16A、16Bを区別なく説明する場合には、単に「ロボット16」と表記する。
【0020】
ロボット16は、例えば、3次元空間における動作に必要な6自由度の構成を備えた垂直多関節型のロボットである。なお、ロボット16の自由度は、6自由度に冗長自由度を加えた7自由度としてもよい。また、ロボット16は、垂直多関節型に限定されるものではなく、例えば、水平多関節型(スカラロボット)にも適用可能である。ロボット16は、回避軌道生成装置10から出力される軌道情報に従って、ロボット制御装置12により制御されて動作する。
【0021】
ロボット制御装置12は、回避軌道生成装置10から出力される軌道情報に従って、ロボット16の動作を制御する。
【0022】
回避軌道生成装置10は、ロボット16A、16Bの各々を軌道情報に従って動作させた際の、ロボット16Aとロボット16Bとの干渉の有無を判定する。また、回避軌道生成装置10は、干渉が発生する場合に、干渉を回避する回避軌道を示す軌道情報を生成して、ロボット制御装置12へ出力する。
【0023】
本実施形態では、軌道情報とは、ロボット16の手先(ロボットハンドなどのツールが取り付けられる側)の所定位置を、任意の始点から終点まで動作させるときのロボット16の各時刻における姿勢と、姿勢を変化させる速度及び加速度とを時系列に並べたものである。ロボット16の姿勢は、ロボット16の手先の所定位置がある位置(x,y,z)及び姿勢(roll,pitch,yaw)にあると想定した場合の、ロボット16の第1関節(ジョイントJ1)から第N関節(ジョイントJN、Nはロボットの関節数)までの各関節の値(回転角度)の系列(θJ1,θJ2,・・・,θJN)で表される。
【0024】
図2は、本実施形態に係る回避軌道生成装置10のハードウェア構成を示すブロック図である。
図2に示すように、回避軌道生成装置10は、CPU(Central Processing Unit)32、メモリ34、記憶装置36、入力装置38、出力装置40、記憶媒体読取装置42、及び通信I/F(Interface)44を有する。各構成は、バス46を介して相互に通信可能に接続されている。
【0025】
記憶装置36には、回避軌道生成処理を実行するための回避軌道生成プログラムが格納されている。CPU32は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU32は、記憶装置36からプログラムを読み出し、メモリ34を作業領域としてプログラムを実行する。CPU32は、記憶装置36に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0026】
メモリ34は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置36は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0027】
入力装置38は、例えば、キーボードやマウス等の、各種の入力を行うための装置である。出力装置40は、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための装置である。出力装置40として、タッチパネルディスプレイを採用することにより、入力装置38として機能させてもよい。記憶媒体読取装置42は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。
【0028】
通信I/F44は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0029】
次に、第1実施形態に係る回避軌道生成装置10の機能構成について説明する。
【0030】
図3は、回避軌道生成装置10の機能構成の例を示すブロック図である。
図3に示すように、回避軌道生成装置10は、機能構成として、取得部22と、判定部24と、登録部26と、生成部28とを含む。各機能構成は、CPU32が記憶装置36に記憶された回避軌道生成プログラムを読み出し、メモリ34に展開して実行することにより実現される。
【0031】
取得部22は、ロボット16A、16Bの各々について、各ロボット16の開始姿勢から終了姿勢までの動作を示す軌道情報と、各ロボット16のキネマティクス情報、設置位置、及び形状情報を含む仕様情報とを取得する。軌道情報は、モーションプランニングにより生成されたものであってもよいし、ユーザによるティーチングにより生成されたものであってもよい。取得部22は、取得した軌道情報及び仕様情報を、判定部24及び生成部28へ受け渡す。
【0032】
判定部24は、取得部22から受け渡された軌道情報と仕様情報とに基づいて、ロボット16A、16Bの各々が動作を実行する際のロボット16間の干渉の有無を判定する。
【0033】
具体的には、判定部24は、軌道情報に基づいて、回避軌道を生成する対象のロボット(本実施形態では、ロボット16Aとする)の動作時間を所定の時間間隔で分割した各時刻ステップにおける対象のロボットの姿勢を特定する。また、判定部24は、仕様情報に基づいて、特定した姿勢において、ロボット16Aが占める領域を特定する。また、判定部24は、同時刻ステップにおける他のロボット(本実施形態では、ロボット16Bとする)の姿勢及びその姿勢においてロボット16Bが占める領域を特定し、領域の重複に基づいて、ロボット16A、16B間の干渉の有無を判定する。
【0034】
判定部24は、干渉が生じると判定した場合には、干渉が生じる時刻ステップにおけるロボット16Aの姿勢を登録部26に通知する。
【0035】
登録部26は、判定部24から通知された、回避軌道を生成する対象のロボット16Aの干渉時の姿勢におけるロボット16Aの一部の位置を障害物の位置として、所定の記憶領域に記憶することで登録する。ロボット16Aの一部としては、例えば、ロボット16Aの手先部分とすることができる。なお、ロボット16Aのベースリンクに近い位置を障害物の位置として登録することもできるが、障害物の位置がベースリンクに近いほど、障害物を回避する動作の生成が困難となる。そのため、ロボット16Aの手先に近い位置を障害物の位置として登録する方が好ましい。また、障害物として登録する位置は、所定の位置を含む領域とすることができ、例えば、手先を含むロボット16Aの手の部分や、手先を含む末端のリンク全体とすることができる。
【0036】
生成部28は、取得部22から受け渡された軌道情報及び仕様情報に基づいて、登録部26により登録された障害物を回避する回避軌道を生成する。具体的には、生成部28は、対象のロボット16Aの開始姿勢から、障害物を回避し、終了姿勢に至るまでの軌道を回避軌道として生成する。生成部28は、生成した回避軌道を示す軌道情報をロボット制御装置12へ出力する。また、生成部28は、判定部24によりロボット16A、16B間に干渉が生じないと判定された場合には、取得した軌道情報をそのままロボット制御装置12へ出力する。
【0037】
これにより、ロボット制御装置12により、ロボット16A、16Bの動作が制御される。
【0038】
次に、第1実施形態に係るロボット制御システム100の作用について説明する。
【0039】
図4は、回避軌道生成装置10のCPU32により実行される回避軌道生成処理の流れを示すフローチャートである。CPU32が記憶装置36から回避軌道生成プログラムを読み出して、メモリ34に展開して実行することにより、CPU32が回避軌道生成装置10の各機能構成として機能し、
図4に示す回避軌道生成処理が実行される。
【0040】
ステップS12で、取得部22が、ロボット16A、16Bの各々について、各ロボット16の開始姿勢から終了姿勢までの動作を示す軌道情報と、各ロボット16のキネマティクス情報、設置位置、及び形状情報を含む仕様情報とを取得する。そして、取得部22は、取得した軌道情報及び仕様情報を、判定部24及び生成部28へ受け渡す。
【0041】
次に、ステップS14で、判定部24が、軌道情報に基づいて、回避軌道を生成する対象のロボット16Aの動作時間をN分割する。
【0042】
次に、ステップS16で、判定部24が、N分割した動作時間の各時刻1~Nステップの各々について、各時刻ステップにおいて、対象のロボット16Aと、他のロボット16Bとに干渉が生じているか否かを判定する。干渉が生じている場合には、処理はステップS18へ移行し、判定部24が、干渉が生じている時刻のステップ数を所定領域に記憶する。干渉が生じていない場合には、ステップS18をスキップする。
【0043】
次に、ステップS20で、判定部24が、所定領域に時刻のステップ数が記憶されているか否かを判定することにより、ロボット16A、16B間に干渉が生じる時刻があるか否かを判定する。干渉が生じる時刻がある場合には、判定部24が、干渉が生じる時刻ステップにおけるロボット16Aの姿勢を登録部26に通知し、処理はステップS22へ移行する。干渉が生じる時刻がない場合には、処理はステップS26へ移行する。
【0044】
ステップS22では、登録部26が、判定部24から通知された、回避軌道を生成する対象のロボット16Aの干渉時の姿勢におけるロボット16Aの一部の位置、例えば手先部分を障害物の位置として登録する。
【0045】
次に、ステップS24で、生成部28が、取得部22から受け渡された軌道情報及び仕様情報と、登録部26により登録された障害物とに基づいて、対象のロボット16Aの開始姿勢から、障害物を回避し、終了姿勢に至るまでの軌道を回避軌道として生成する。
【0046】
次に、ステップS26で、生成部28が、生成した回避軌道を示す軌道情報をロボット制御装置12へ出力する。また、上記ステップS20で否定判定となって本ステップへ移行した場合、すなわち、判定部24によりロボット16A、16B間に干渉が生じないと判定された場合には、生成部28は、取得部22から取得した軌道情報をそのままロボット制御装置12へ出力する。そして、回避軌道生成処理は終了する。
【0047】
以上説明したように、第1実施形態に係るロボット制御システムでは、回避軌道を生成する対象のロボットと他のロボットとが干渉する場合、干渉時の姿勢における対象のロボットの一部の位置を障害物の位置として登録する。そして、障害物の位置を回避する回避軌道を生成する。これにより、干渉時の他のロボットの位置を障害物の位置として登録する場合に比べ、障害物の範囲を小さく設定できる。したがって、複数のロボットの動作生成において、障害物を回避可能な回避軌道が生成される確率、すなわち回避軌道の生成の成功率を向上させることができる。
【0048】
また、障害物の範囲を小さく設定できることで、回避軌道が小回りになり、全体の動作時間が長くなることを抑制することができる。
【0049】
<第2実施形態>
次に、第2実施形態について説明する。なお、第2実施形態に係るロボット制御システムにおいて、第1実施形態に係るロボット制御システム100と同様の構成については、同一符号を付して詳細な説明を省略する。
【0050】
図1に示すように、第2実施形態に係るロボット制御システム200は、回避軌道生成装置210と、ロボット制御装置12と、ロボット16A、16Bとを含んで構成される。
【0051】
図3に示すように、回避軌道生成装置210は、機能構成として、取得部22と、判定部24と、登録部226と、生成部228とを含む。
【0052】
登録部226は、第1実施形態における登録部26と同様に、ロボット16A、16B間に干渉が生じる場合に、干渉時の姿勢における対象のロボット16Aの一部の位置を障害物の位置として登録する。加えて、登録部226は、干渉時の姿勢における他のロボット16Bの一部の位置を障害物の位置として登録する。
【0053】
生成部228は、取得部22から受け渡された軌道情報が示す元の軌道において、干渉直前、すなわち登録された障害物の領域に入る直前の第1中間姿勢と、干渉直後、すなわち障害物の領域から出た直後の第2中間姿勢とを特定する。そして、生成部28は、障害物を回避する部分的な軌道を生成し、開始姿勢から第1中間姿勢までの元の軌道と、生成した部分的な軌道と、第2中間姿勢から終了姿勢までの元の軌道とを組み合わせて、回避軌道を生成する。
【0054】
回避軌道生成装置210のハードウェア構成は、
図2に示す、第1実施形態に係る回避軌道生成装置10のハードウェア構成と同様であるため、説明を省略する。
【0055】
次に、第2実施形態に係るロボット制御システム200の作用について説明する。
【0056】
図5は、回避軌道生成装置210のCPU32により実行される回避軌道生成処理の流れを示すフローチャートである。CPU32が記憶装置36から回避軌道生成プログラムを読み出して、メモリ34に展開して実行することにより、CPU32が回避軌道生成装置210の各機能構成として機能し、
図5に示す回避軌道生成処理が実行される。なお、
図5に示す回避軌道生成処理において、第1実施形態における回避軌道生成処理(
図4)と同様の処理については、同一のステップ番号を付与して、詳細な説明を省略する。
【0057】
ステップS12~S22を経て、干渉時の姿勢における対象のロボット16Aの一部の位置が障害物の位置として登録されると、次のステップS222へ移行する。
【0058】
ステップS222では、登録部226が、干渉時の姿勢における他のロボット16Bの一部の位置、例えば手先部分を障害物の位置として登録する。
【0059】
次に、ステップS224で、生成部228が、取得部22から受け渡された軌道情報が示す元の軌道において、干渉直前、すなわち登録された障害物の領域に入る直前の第1中間姿勢と、干渉直後、すなわち障害物の領域から出た直後の第2中間姿勢とを特定する。そして、生成部28は、障害物を回避する部分的な軌道を生成し、開始姿勢から第1中間姿勢までの元の軌道と、生成した部分的な軌道と、第2中間姿勢から終了姿勢までの元の軌道とを組み合わせて、回避軌道を生成する。
【0060】
以下、第1実施形態と同様に処理して、回避軌道生成処理は終了する。
【0061】
以上説明したように、第2実施形態に係るロボット制御システムでは、回避軌道を生成する対象のロボットと他のロボットとが干渉する場合、干渉時の姿勢における対象のロボットの一部の位置に加え、他のロボットの一部の位置を障害物の位置として登録する。そして、障害物の位置を回避する回避軌道を生成する。これにより、第1実施形態の場合に比べ、確実に障害物を回避可能な回避軌道を生成することができる。また、他のロボットの一部の位置を障害物の位置として登録することで、障害物の範囲が不要に大きくなり過ぎることを抑制して、回避軌道の生成の成功率を向上させることができる。
【0062】
また、障害物を回避する部分的な軌道を生成して、元の軌道と組み合わせて回避軌道を生成することにより、元の軌道を利用して、回避軌道生成のための処理コストを削減することができる。
【0063】
なお、第2実施形態において、第1実施形態と同様に、開始姿勢から、障害物を回避して、終了姿勢に至る全体の軌道を生成してもよい。この場合、回避軌道全体が滑らかになる。なお、障害物の領域の大きさが所定の閾値以上の場合には第1実施形態の生成方法、閾値未満の場合には第2実施形態の生成方法を選択して回避軌道を生成するようにしてもよい。
【0064】
<第3実施形態>
次に、第3実施形態について説明する。なお、第3実施形態に係るロボット制御システムにおいて、第1実施形態に係るロボット制御システム100と同様の構成については、同一符号を付して詳細な説明を省略する。
【0065】
図1に示すように、第3実施形態に係るロボット制御システム300は、回避軌道生成装置310と、ロボット制御装置12と、ロボット16A、16Bとを含んで構成される。
【0066】
図3に示すように、回避軌道生成装置310は、機能構成として、取得部22と、判定部24と、登録部326と、生成部28とを含む。
【0067】
登録部326は、第2実施形態における登録部226と同様に、ロボット16A、16B間に干渉が生じる場合に、干渉時の姿勢の対象のロボット16Aの一部、及び他のロボット16Bの一部の位置を障害物の位置として登録する。この際、登録部326は、生成部28による回避軌道の生成の妨げになる場合、他のロボット16Bの一部を障害物として登録しない。回避軌道の生成の妨げになる場合とは、例えば、対象のロボット16Aの開始姿勢又は終了姿勢において、他のロボット16Bと干渉する場合等である。
【0068】
回避軌道生成装置310のハードウェア構成は、
図2に示す、第1実施形態に係る回避軌道生成装置10のハードウェア構成と同様であるため、説明を省略する。
【0069】
次に、第3実施形態に係るロボット制御システム300の作用について説明する。
【0070】
図6は、回避軌道生成装置310のCPU32により実行される回避軌道生成処理の流れを示すフローチャートである。CPU32が記憶装置36から回避軌道生成プログラムを読み出して、メモリ34に展開して実行することにより、CPU32が回避軌道生成装置310の各機能構成として機能し、
図6に示す回避軌道生成処理が実行される。なお、
図6に示す回避軌道生成処理において、第2実施形態における回避軌道生成処理(
図5)と同様の処理については、同一のステップ番号を付与して、詳細な説明を省略する。
【0071】
ステップS12~S22を経て、干渉時の姿勢における対象のロボット16Aの一部の位置が障害物の位置として登録されると、次のステップS322へ移行する。
【0072】
ステップS322で、登録部326が、干渉時の姿勢における他のロボット16Bの一部の位置を障害物の位置として登録した場合、生成部28による回避軌道の生成の妨げになるか否かを判定する。回避軌道の生成の妨げになる場合には、処理はステップS24へ移行し、回避軌道の生成の妨げにならない場合には、処理はステップS222へ移行する。
【0073】
したがって、回避軌道の生成の妨げにならない場合には、他のロボット16Bの一部の位置が障害物の位置として登録される。一方、回避軌道の生成の妨げになる場合には、他のロボット16Bの一部の位置は、障害物の位置として登録されない。
【0074】
以下、第2実施形態と同様に処理して、回避軌道生成処理は終了する。
【0075】
以上説明したように、第3実施形態に係るロボット制御システムでは、回避軌道を生成する対象のロボットと他のロボットとが干渉する場合、干渉時の姿勢における対象のロボットの一部の位置に加え、他のロボットの一部の位置を障害物の位置として登録する。その際、干渉時が対象のロボットの開始姿勢時又は終了姿勢時の場合には、他のロボットの一部の位置は障害物の位置として登録しない。これにより、回避軌道の生成が困難となる障害物が登録されることを回避し、回避軌道の生成の成功率を向上させることができる。
【0076】
なお、上記各実施形態では、回避軌道生成装置とロボット制御装置とを別々の装置とする場合について説明したが、ロボット制御装置内に回避軌道生成装置を組み込む形態としてもよい。また、回避軌道生成装置の各機能構成を、それぞれ異なる装置で実現し、上記の回避軌道生成処理を分散処理により実現してもよい。
【0077】
また、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した回避軌道生成処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、回避軌道生成処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0078】
また、上記各実施形態では、回避軌道生成プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM、ブルーレイディスク、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0079】
10、210、310 回避軌道生成装置
12 ロボット制御装置
16 ロボット
22 取得部
24 判定部
26、226、326 登録部
28、228 生成部
32 CPU
34 メモリ
36 記憶装置
38 入力装置
40 出力装置
42 記憶媒体読取装置
44 通信I/F
46 バス
100、200、300 ロボット制御システム