(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】動作計画装置、動作計画方法、及び、プログラム
(51)【国際特許分類】
B25J 13/00 20060101AFI20241106BHJP
【FI】
B25J13/00 Z
(21)【出願番号】P 2023508264
(86)(22)【出願日】2021-03-24
(86)【国際出願番号】 JP2021012275
(87)【国際公開番号】W WO2022201365
(87)【国際公開日】2022-09-29
【審査請求日】2023-09-13
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】向後 卓磨
【審査官】杉山 悟史
(56)【参考文献】
【文献】特表2018-505788(JP,A)
【文献】特開2013-184233(JP,A)
【文献】特許第6707485(JP,B2)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび前記搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、前記ロボットが、前記搬送物体を把持して搬送しているときに、前記ロボットの前記被衝突回避物体周りの前記移動可能領域と搬送されている前記搬送物体の前記被衝突回避物体周りの前記移動可能領域とが一致するという第2条件とを設定する条件設定手段と、
前記第1条件と、前記第2条件とに基づき、前記ロボットの動作計画を算出する動作計画手段と、を有
し
前記第1条件は、前記搬送物体が前記被衝突回避物体周りの前記移動可能領域の内部に位置するという第3条件を含み、
前記動作計画手段は、前記動作計画を算出する場合、前記搬送物体が前記ロボットにより搬送されていないときには、前記第3条件についての評価をスキップする動作計画装置。
【請求項2】
1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび前記搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、前記ロボットが、前記搬送物体を把持して搬送しているときに、前記ロボットの前記被衝突回避物体周りの前記移動可能領域と搬送されている前記搬送物体の前記被衝突回避物体周りの前記移動可能領域とが一致するという第2条件とを設定する条件設定手段と、
前記第1条件及び前記第2条件を含む制約条件と、前記ピックアンドプレースが完了するまでのタイムステップ数又は前記ロボットの移動距離の少なくとも一方に関する目的関数とに基づく最適化モデルの解を算出し、当該最適化モデルの解を前記ロボットの動作計画として出力する動作計画手段と、
を有する動作計画装置。
【請求項3】
前記搬送物体の初期位置と目標位置とに基づき、前記ロボットの予測通過確率が閾値よりも低い前記搬送物体周りの前記移動可能領域を、前記ロボットの経路とすることにペナルティがある制約経路として設定する、制約経路設定手段をさらに有し、
前記動作計画手段は、前記条件設定手段が設定した条件と、前記制約経路とに基づき、前記動作計画を算出する、請求項1または2に記載の動作計画装置。
【請求項4】
前記制約経路設定手段は、前記搬送物体の下方に位置する移動可能領域を、前記制約経路に含める、請求項3に記載の動作計画装置。
【請求項5】
前記制約経路設定手段は、水平面に対応する2つの座標軸において前記初期位置と前記目標位置との距離が短い座標軸の軸方向において前記搬送物体の両側に位置する移動可能領域を、前記制約経路に含める、請求項3または4に記載の動作計画装置。
【請求項6】
前記動作計画手段は、前記動作計画として、前記ロボットに関する軌道情報と、前記ロボットの操作に関する操作情報とを生成する、請求項1~5のいずれか一項に記載の動作計画装置。
【請求項7】
前記ロボットは、エンドエフェクタを有し、
前記動作計画手段は、前記エンドエフェクタを前記ロボットとみなして前記第1条件及び前記第2条件の判定を行う、請求項1~
6のいずれか一項に記載の動作計画装置。
【請求項8】
コンピュータが、
1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび前記搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、前記ロボットが、前記搬送物体を把持して搬送しているときに、前記ロボットの前記被衝突回避物体周りの前記移動可能領域と搬送されている前記搬送物体の前記被衝突回避物体周りの前記移動可能領域とが一致するという第2条件とを設定し、
前記第1条件と、前記第2条件とに基づき、前記ロボットの動作計画を算出
し、
前記第1条件は、前記搬送物体が前記被衝突回避物体周りの前記移動可能領域の内部に位置するという第3条件を含み、
前記動作計画を算出する場合、前記搬送物体が前記ロボットにより搬送されていないときには、前記第3条件についての評価をスキップする動作計画方法。
【請求項9】
1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび前記搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、前記ロボットが、前記搬送物体を把持して搬送しているときに、前記ロボットの前記被衝突回避物体周りの前記移動可能領域と搬送されている前記搬送物体の前記被衝突回避物体周りの前記移動可能領域とが一致するという第2条件とを設定し、
前記第1条件と、前記第2条件とに基づき、前記ロボットの動作計画を算出
し、
前記第1条件は、前記搬送物体が前記被衝突回避物体周りの前記移動可能領域の内部に位置するという第3条件を含み、
前記動作計画を算出する場合、前記搬送物体が前記ロボットにより搬送されていないときには、前記第3条件についての評価をスキップする処理をコンピュータに実行させるプログラム。
【請求項10】
コンピュータが、
1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび前記搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、前記ロボットが、前記搬送物体を把持して搬送しているときに、前記ロボットの前記被衝突回避物体周りの前記移動可能領域と搬送されている前記搬送物体の前記被衝突回避物体周りの前記移動可能領域とが一致するという第2条件とを設定し、
前記第1条件及び前記第2条件を含む制約条件と、前記ピックアンドプレースが完了するまでのタイムステップ数又は前記ロボットの移動距離の少なくとも一方に関する目的関数とに基づく最適化モデルの解を算出し、当該最適化モデルの解を前記ロボットの動作計画として出力する動作計画方法。
【請求項11】
1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび前記搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、前記ロボットが、前記搬送物体を把持して搬送しているときに、前記ロボットの前記被衝突回避物体周りの前記移動可能領域と搬送されている前記搬送物体の前記被衝突回避物体周りの前記移動可能領域とが一致するという第2条件とを設定し、
前記第1条件及び前記第2条件を含む制約条件と、前記ピックアンドプレースが完了するまでのタイムステップ数又は前記ロボットの移動距離の少なくとも一方に関する目的関数とに基づく最適化モデルの解を算出し、当該最適化モデルの解を前記ロボットの動作計画として出力する処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットの動作計画を算出する動作計画装置、動作計画方法及び記憶媒体に関する。
【背景技術】
【0002】
製品や部品などの物体(以降、搬送物体と記載する)のピックアンドプレースを、ロボットを用いて、自動化している工場や倉庫がある。ピックアンドプレースは、所定の位置にある搬送物体を取り上げ、搬送し、別の所定の位置に置く、という一連の動作である。
【0003】
非特許文献1に開示されているシステムは、双腕ロボットの2本のアームそれぞれが複数の搬送物体に対して同時にピックアンドプレースを実行する動作計画を算出する。より具体的には、非特許文献1に開示されているシステムは、ロボット及び搬送物体のダイナミクスと、各搬送物体についてピックアンドプレースが完了したか否かを判定する論理を、混合整数線形計画問題として定式化した最適化モデルを有し、最適化モデルに対して求解計算を実行することで得られる解を動作計画として出力する。
【0004】
非特許文献2に開示されているシステムは、UAV(Unmanned Aerial Vehicles)といった移動ロボットが障害物を回避しながら目的地まで移動する経路計画を算出する。より具体的には、非特許文献2に開示されているシステムは、障害物の周囲の領域群から移動ロボットが当該障害物と衝突しないものを移動経路として選択する制約条件を含む、混合整数線形計画問題として定式化した最適化モデルを有し、最適化モデルに対して求解計算を実行することで得られる解を経路計画として出力する。
【先行技術文献】
【非特許文献】
【0005】
【文献】M. Katayama、 et al、 “Fast LTL-Based Flexible Planning for Dual-Arm Manipulation”、IEEE/RS International Conference on Intelligent Robots and System、pp.6605-6612、2020.
【文献】M. Arantes、 et al、 “Collision-Free Encoding for Chance-Constrained Nonconvex Path Planning”、 IEEE Transactions on Robotics、vol.35,No.2、April、2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
仮に非特許文献1及び非特許文献2に基づき衝突回避を考慮したピックアンドプレースの動作計画を算出した場合、搬送物体の個数が増加するとその計算量が爆発的に増加してしまうため実用化が困難となる。
【0007】
本発明の目的の一つは、上述した課題を解決するために、衝突回避を考慮したピックアンドプレースの動作計画を好適に算出可能な動作計画装置、動作計画方法及び記憶媒体を提供することである。
【課題を解決するための手段】
【0008】
動作計画装置の一の態様は、
1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび前記搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、前記ロボットが、前記搬送物体を把持して搬送しているときに、前記ロボットの前記被衝突回避物体周りの前記移動可能領域と搬送されている前記搬送物体の前記被衝突回避物体周りの前記移動可能領域とが一致するという第2条件とを設定する条件設定手段と、
前記第1条件と、前記第2条件とに基づき、前記ロボットの動作計画を算出する動作計画手段と、を有し
前記第1条件は、前記搬送物体が前記被衝突回避物体周りの前記移動可能領域の内部に位置するという第3条件を含み、
前記動作計画手段は、前記動作計画を算出する場合、前記搬送物体が前記ロボットにより搬送されていないときには、前記第3条件についての評価をスキップする動作計画装置である。
【0009】
動作計画方法の一の態様は、
コンピュータが、
1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび前記搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、前記ロボットが、前記搬送物体を把持して搬送しているときに、前記ロボットの前記被衝突回避物体周りの前記移動可能領域と搬送されている前記搬送物体の前記被衝突回避物体周りの前記移動可能領域とが一致するという第2条件とを設定し、
前記第1条件と、前記第2条件とに基づき、前記ロボットの動作計画を算出し、
前記第1条件は、前記搬送物体が前記被衝突回避物体周りの前記移動可能領域の内部に位置するという第3条件を含み、
前記動作計画を算出する場合、前記搬送物体が前記ロボットにより搬送されていないときには、前記第3条件についての評価をスキップする動作計画方法である。なお、コンピュータは、複数の装置から構成されてもよい。
【0010】
プログラムの一の態様は、
1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび前記搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、前記ロボットが、前記搬送物体を把持して搬送しているときに、前記ロボットの前記被衝突回避物体周りの前記移動可能領域と搬送されている前記搬送物体の前記被衝突回避物体周りの前記移動可能領域とが一致するという第2条件とを設定し、
前記第1条件と、前記第2条件とに基づき、前記ロボットの動作計画を算出し、
前記第1条件は、前記搬送物体が前記被衝突回避物体周りの前記移動可能領域の内部に位置するという第3条件を含み、
前記動作計画を算出する場合、前記搬送物体が前記ロボットにより搬送されていないときには、前記第3条件についての評価をスキップする処理をコンピュータに実行させるプログラムである。
【発明の効果】
【0011】
衝突回避を考慮したピックアンドプレースの動作計画を好適に算出することができる。
【図面の簡単な説明】
【0012】
【
図1】第1実施形態に係るロボット制御システム及び動作計画装置の第1構成例を示す概略ブロック図である。
【
図2】第1実施形態に係るロボット制御システム及び動作計画装置の第2構成例を示す概略ブロック図である。
【
図3】第1実施形態に係るロボット制御システム及び動作計画装置の第3構成例を示す概略ブロック図である。
【
図4】第1実施形態に係る動作計画装置のハードウェア構成の一例である。
【
図5】第1実施形態に係るロボット制御システムのハードウェア構成の一例である。
【
図6】(A)障害物周りの移動可能領域を示すx-y平面図である。(B)移動可能領域の第1の例を示す。(C)移動可能領域の第2の例を示す。第1実施形態に係る被衝突回避物体周りの移動可能領域を示す図である。
【
図7】(A)エンドエフェクタが障害物の周りを移動する際の移動可能領域の切り替わりを表した第1の図である。(B)エンドエフェクタが障害物の周りを移動する際の移動可能領域の切り替わりを表した第2の図である。(C)エンドエフェクタが障害物の周りを移動する際の移動可能領域の切り替わりを表した第3の図である。
【
図8】(A)エンドエフェクタが搬送物体を搬送している状態での障害物周辺のx-z平面図である。(B)エンドエフェクタが搬送物体を搬送している状態での障害物周辺のx-z平面図である。
【
図9】第1実施形態に係る動作計画の処理工程の例を示すフローチャートである。
【
図10】(A)第2実施形態に係るソフト経路制約の対象となる移動可能領域の一例を示すx-z平面図である。(B)第2実施形態に係るソフト経路制約の対象となる移動可能領域の一例を示すx-y平面図である。
【
図11】第2実施形態に係る動作計画の処理工程の例を示すフローチャートである。
【
図12】第3実施形態に係る動作計画装置の概略構成図を示す。
【
図13】第3実施形態に係る動作計画の処理工程の例を示すフローチャートである。
【発明を実施するための形態】
【0013】
<課題の説明>
本願の発明者は、仮に非特許文献1及び非特許文献2に基づき衝突回避を考慮したピックアンドプレースの動作計画を算出した場合、搬送物体の個数が増加するとその計算量が爆発的に増加してしまい、実用化ができないという課題を見出した。
【0014】
この課題は、より詳細には、混合整数線形計画問題を解くことで動作計画を算出するが、その求解計算を困難にするバイナリ変数とbig-M法による制約条件のそれぞれの個数が搬送物体の個数の増加に応じて増加してしまうという課題である。一般的な混合整数線形計画問題において、バイナリ変数は、判定や論理をモデル化するために用いられる決定変数である。また一般的な混合整数線形計画問題において、big-M法は、連続値をバイナリ値に変換する際に用いられる制約条件の定式化技法である。特に、バイナリ変数およびbig-M法は、障害物との衝突回避において、移動体の位置座標(連続値)と、障害物と衝突しない領域にあるか否かの判定(バイナリ値)とを関係付けるために用いられる。すなわち、障害物との衝突回避においてバイナリ変数及びbig-M法による制約条件は必要不可欠であり、搬送物体の障害物との衝突回避にバイナリ変数およびbig-M法による制約条件を必要とする。
【0015】
この課題は、さらに詳細には、ロボットに把持されていないときの搬送物体は、障害物及びエンドエフェクタだけでなく他の搬送物体にも衝突しないように扱う必要があるため、搬送物体の個数が増えると取り扱う衝突回避に関するバイナリ変数とbig-M法による制約条件それぞれの個数が二乗のオーダーで増加してしまうという課題である。その結果として、「搬送物体の個数が増加すると、動作計画の求解において計算時間の爆発が生じる」という課題を発明者は見出した。
【0016】
発明者は、係る課題を見出すとともに、係る課題を解決する手段を導出するに至った。発明者は、搬送物体がエンドエフェクタに搬送されているときに搬送物体とそれを搬送するエンドエフェクタの移動可能領域を同一にすることで、衝突回避に係るバイナリ変数の個数を削減でき、その結果として、時間効率が高い衝突回避を考慮したピックアンドプレースの動作計画の算出を実現できることを見出した。ここで、「時間効率が高い」とは、動作計画を、その同程度の品質に対してより短い時間で算出することを表す。さらに、発明者は、ピックアンドプレースにおける移動経路の特性を利用して搬送物体の移動経路についてのソフト制約を追加することで、衝突回避に係るbig-M法による制約条件の個数を実質的に削減でき、その結果として、時間効率が高い衝突回避を考慮したピックアンドプレースの動作計画の算出を実現できることを見出した。
【0017】
以下、図面を参照しながら、動作計画装置、動作計画方法及び記憶媒体の実施形態について説明する。なお、以下の実施形態は請求の範囲に係る発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0018】
<第1実施形態>
図1を参照しながら、第1実施形態の動作計画装置10を含むロボット制御システム1が有する構成の一例を詳細に説明する。
図1は、第1実施形態におけるロボット制御システム1の第1構成例を示す概略ブロック図である。
【0019】
ロボット制御システム1は、大別して、動作計画装置10と、制御装置20と、設定記憶装置30と、計測装置40と、ロボット50とを備える。動作計画装置10は動作計画部100を有する。制御装置20は制御部200を有する。設定記憶装置30は設定記憶部300を有する。
【0020】
動作計画装置10は、制御装置20、設定記憶装置30、及び、計測装置40と、通信回線を介して通信可能に接続されている。さらに制御装置20は、設定記憶装置30、計測装置40、及び、ロボット50と、通信回線を介して通信可能に接続されている。通信回線は、例えば、専用線、インターネット、VPN(Virtual Private Network )、LAN(Local Area Network)、USB(Universal Serial Bus)、Wi-Fi(登録商標)、Blue Tooth(登録商標)などが挙げれる。なお、通信回線の占有形態及び有線回線、無線回線などの通信回線の物理形態などの通信回線の形態は問わず、任意の形態により構成されていてもよい。
【0021】
動作計画装置10は、所望のピックアンドプレースを実現する動作計画情報を算出する。より具体的には、動作計画部100は、設定記憶部300から計画設定情報を読み込み、計測装置40から計測情報を読み込み、読み込んだこれらを用いて動作計画情報を算出する。動作計画部100は、算出した動作計画情報を制御部200に送信する。動作計画情報は、どの時刻にロボット50の代表点がどこに位置するかを表す軌道情報と、どの時刻にロボット50がどの操作を行うかを表す操作情報とによって構成される。ここで、ロボット50の操作とは、具体的には、搬送物体のピック動作やプレース動作であり、単なる移動動作だけでなくエンドエフェクタの制御を含むロボット50の動作である。動作計画情報の算出方法、軌道情報、操作情報、計画設定情報、計測情報の詳細については後述する。動作計画装置10は、例えば、パーソナルコンピュータ、ワークステーション等のコンピュータで実現される。
【0022】
制御装置20は、動作計画部100が算出した動作計画を実現するロボット50の制御を行うための制御指令情報を算出し、算出した制御指令情報をロボット50に送信する。より具体的には、制御部200は、設定記憶部300から制御設定情報を読み込み、計測装置40から計測情報を読み込み、ロボット50からロボット状態情報を読み込み、動作計画部100から動作計画情報を読み込む。そして、制御部200は、読み込んだこれらの情報を用いてロボット50の制御指令情報を算出し、算出した制御指令情報をロボット50に送信する。制御部200は、制御指令情報を算出する場合、軌道情報と操作情報をロボット50の各駆動部の出力に対応付けるよう変換しつつ、同時に時間的に内挿して動作計画情報よりも時間解像度が高くなるようにアップサンプリング変換も行う。ロボット状態情報は、例えば、ロボットの各駆動部の状態(位置、角度等)やロボットの各駆動部に対する制御シーケンスの進捗状態などがある。制御設定情報は、例えば、ロボットの各駆動部の出力の上限値及び下限値を示す情報を含む。制御装置20は、例えば、パーソナルコンピュータ、ワークステーション等のコンピュータにより実現される。
【0023】
設定記憶装置30の設定記憶部300は、計画設定情報及び制御設定情報を記憶する。計画設定情報及び制御設定情報は、ユーザインターフェースを介してユーザが入力することで生成された情報であってもよい。ユーザインターフェースは、パーソナルコンピュータ、ワークステーション、タブレット、スマートフォン等のコンピュータ、または、キーボード、マウス、タッチパネルディスプレイ、音声入力装置等の入力デバイスである。ただし、ユーザインターフェースは、これらの例に限定されない。設定記憶装置30は、例えば、パーソナルコンピュータ、ワークステーション等のコンピュータで実現される。
【0024】
計測装置40は、搬送物体の位置と姿勢をセンシング及び推定し、当該センシング及び推定結果を計測情報として出力する。計測装置40は、例えば、ステレオカメラ、パターンプロジェクションカメラ、LIDAR(Laser Imaging Detection and Ranging)等のセンシングデバイス、または、これらセンシングデバイスと対象物体の位置と姿勢を推定する後処理装置とが一体化したセンシングシステムである。ただし、計測装置40はこれらの例に限定されず、種々の外界センサを含む構成であってもよい。
【0025】
ロボット50は、制御指令情報に従って駆動することで搬送物体を把持して所定の搬送先に移動させることができるロボットであり、例えば、多関節ロボット、双腕ロボット、スカラロボット、パラレルロボット等である。ロボット50の先端部には搬送物体を把持するデバイスであるエンドエフェクタが備えられており、エンドエフェクタは、例えば、2爪グリッパ、3爪グリッパ、真空吸着ハンド、磁力吸着ハンド、汎用ハンド等である。ロボット50及びエンドエフェクタはこれらの例に限定されず、種々の構成を有してもよい。
【0026】
ロボット制御システム1は
図1に示されている構成に限定されず、種々の変更が行われてもよい。
図2は、第1実施形態の第2構成例に係るロボット制御システム1aの概略ブロック図である。
図2に示す第2構成例では、動作計画装置10aは、制御部200を有し、ロボット50に直接的に制御指令情報を送信する。
図3は、第1実施形態の第3構成例に係るロボット制御システム1bの概略ブロック図である。
図3に示す第3構成例では、動作計画装置10bは、制御部200と設定記憶部300を有し、ロボット50に直接的に制御指令情報を送信し、かつ、計画設定情報と制御設定情報を記憶する。
【0027】
図4は、動作計画装置10のハードウェア構成の一例を示す。動作計画装置10は、ハードウェアとして、プロセッサ11と、メモリ12と、インターフェース13とを含む。プロセッサ11、メモリ12、及びインターフェース13は、データバス19を介して接続されている。
【0028】
プロセッサ11は、メモリ12に記憶されているプログラムを実行することにより、動作計画装置10の全体の制御を行うコントローラ(演算装置)として機能する。プロセッサ11は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、TPU(Tensor Processing Unit)などのプロセッサである。プロセッサ11は、複数のプロセッサから構成されてもよい。プロセッサ11は、コンピュータの一例である。プロセッサ11は、例えば、
図1に示す動作計画装置10における動作計画部100、又は、
図2若しくは
図3に示す動作計画装置10a、10bにおける動作計画部100及び制御部200として機能する。
【0029】
メモリ12は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ12には、動作計画装置10が実行する処理を実行するためのプログラムが記憶される。なお、メモリ12が記憶する情報の一部は、動作計画装置10と通信可能な1又は複数の外部記憶装置により記憶されてもよく、動作計画装置10に対して着脱自在な記憶媒体により記憶されてもよい。メモリ12は、例えば、
図3に示す動作計画装置10bにおける設定記憶部300として機能する。
【0030】
インターフェース13は、動作計画装置10と他の装置(制御装置20、設定記憶装置30、計測装置40、ロボット50)とを電気的に接続するためのインターフェースである。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。なお、
図2に示す動作計画装置10a及び
図3に示す動作計画装置10bについても
図4に示すハードウェア構成を有する。
【0031】
図5は、ロボット制御システム1のハードウェア構成の一例である。作業台71には、多関節ロボット51が取り付けられている。多関節ロボット51の先端部には、エンドエフェクタとして2爪グリッパ501が装着されている。位置姿勢推定カメラシステム41は、作業台の側の支柱74に取り付けられている。位置姿勢推定カメラシステム41は、作業台71上に置かれた搬送物体61の位置と姿勢を計測及び推定する。搬送物体61は、作業台71上に置かれた状態から、作業台71の横に設置された棚板72、棚板81、棚柱73で構成される棚の棚板72上または棚板81上に置かれた状態となるように、多関節ロボット51によってピックアンドプレースされる。仮想障害物82は、物理的な実体を伴わない障害物であり、エンドエフェクタ501が侵入してはならない領域として設定される。ここでは、仮想障害物82は、多関節ロボット51の自己接触を防ぐために設けられている。
図5には、動作計画装置10、制御装置20、設定記憶装置30が明示されていないが、これらは作業台71の横側、内部、または離れた場所に設置される。ワールド座標系91は、
図5中のロボット制御システム1のワールド座標の軸方向を表している。ここでは、一例として、水平方向に沿ってx軸及びy軸が設けられ、高さ方向に沿ってz軸が設けられている。
【0032】
次に、動作計画部100が使用する計画設定情報、動作計画情報及び計測情報の算出(生成)方法について、引き続き
図5を参照しながら説明する。はじめに動作計画情報の算出方法を説明し、その後計画設定情報、計測情報の順にその算出方法を説明する。
【0033】
動作計画部100は、一連のピックアンドプレースを混合整数線形計画問題に定式化した最適化モデルを用いて動作計画情報を算出する。より詳細には、動作計画部100は、最適化モデルを生成した後に、最適化ソルバーを用いて最適化モデルの求解計算を行うことで最適化モデルの解を算出し、最後に、得られた解に対して後処理を行い動作計画情報に変換する、という一連の処理を行う。
【0034】
最適化ソルバーは、混合整数線形計画問題を求解可能なものであればいずれでもよい。例えば、連続緩和と線形計画法を用いる分岐限定法、または、切除平面法、局所探索法、メタヒューリスティクス等と組み合わせた分岐限定法が好適であるが、これらの例に限定されない。
【0035】
最適化モデルは、全ての対象とする搬送物体についてピックアンドプレースが完了する時間ステップ数を最小にしつつ、その中でエンドエフェクタの移動距離を最小にする目的関数を有する。目的関数はこれの例に限定されず、望ましいピックアンドプレースとなるようなものであればよい。例えば、目的関数は、上述の時間ステップ数、又は、エンドエフェクタの移動距離の一方のみを最小化する目的関数であってもよい。
【0036】
また、最適化モデルは、エンドエフェクタ及び搬送物体それぞれの移動についてのダイナミクスをハイブリッドシステムとしてモデル化した制約条件を有する。この制約条件は、エンドエフェクタに把持されて搬送されているときには搬送物体がエンドエフェクタと一体となって移動を行い、エンドエフェクタに把持されていないときには搬送物体は移動せずに同じ位置に居続けるということをモデル化したものである。
【0037】
さらに、最適化モデルは、エンドエフェクタと障害物間、搬送物体と障害物間、エンドエフェクタと搬送物体間、搬送物体と他の搬送物体間の衝突回避についてモデル化した制約条件を有する。この制約条件は、エンドエフェクタなどの衝突回避物体と障害物などの被衝突回避物体(衝突回避物体が衝突を回避すべき物体)が満たすべき条件であり、予め定義した被衝突回避物体の周囲の移動可能領域を衝突回避物体が被衝突回避物体と衝突することなく移動する条件をモデル化したものである。
【0038】
他にも、最適化モデルは、上述の目的関数及び制約条件の定式化に補助的に必要な制約条件を有する。
【0039】
上述の最適化モデルについて、より詳細な一例を示す。この最適化モデルでは、多関節ロボットについては、エンドエフェクタの部分のみをモデル化の対象とする。また、衝突回避すべき障害物として定める物体を必要最小限にするように、エンドエフェクタ501の可動領域をユーザが設定することができるものとする。例えば、
図5のハードウェア構成では、作業台71、棚板72、棚柱73、支柱74、位置姿勢推定カメラシステム41を、エンドエフェクタ501の可動領域の内部に位置しないように設定することで、衝突回避すべき障害物を、棚板81と仮想障害物82に限定することができる。さらに、モデル化の対象となるエンドエフェクタ、搬送物体、障害物、エンドエフェクタの可動領域、被衝突回避物体周りの移動可能領域は、軸平行な直方体(AABB:Axis Aligned Bounding Box)としてモデル化されるものとする。エンドエフェクタ、搬送物体、障害物の位置はそれぞれそれらに対応する直方体の重心とする。エンドエフェクタは搬送物体の上方からアプローチして把持を行い、搬送状態においてはエンドエフェクタの下面と搬送物体の上面が接触した状態になるものとする。
【0040】
また、この最適化モデルの例では、以下の(a)~(k)に示される定数、係数、変数、記号、表記を用いる。バイナリ変数については、値0と1それぞれが対応する状態を括弧内に記している。なお、以後において、これらの記号等を文中で使用する場合には、表示の簡潔化のため、適宜下付きのインデックスを省略する。
【0041】
(a)補助変数:インデックス番号
【0042】
【0043】
(b)定数・係数:個数
【0044】
【0045】
(c)定数・係数:初期値・目標値
【0046】
【0047】
(d)定数・係数:上限値・下限値
【0048】
【0049】
(e)定数・係数:形状
【0050】
【0051】
【0052】
(g)定数・係数:その他
【0053】
【0054】
(h)決定変数:バイナリ値
【0055】
【0056】
(i)決定変数:連続値
【0057】
【0058】
【0059】
【0060】
(j)記号
【0061】
【0062】
(k)表記
【0063】
【0064】
各記号の混合整数線形計画問題における同値となる制約条件への定式化は、以下の式(1)~(3)で表される。
【0065】
【0066】
各インデックス番号を表す補助変数の取りうる値は、式(4)~(8)で表される。
【0067】
【0068】
各連続変数の上下限範囲に関する制約条件は、式(9)~(18)で表される。式(9)は、エンドエフェクタの可動領域を表している。
【0069】
【0070】
【0071】
エンドエフェクタの位置、速度および搬送物体の位置の初期値に関する制約条件は、式(19)~(21)で表される。
【0072】
【0073】
「同時に2個以上の搬送物体が把持状態になってはいけない」という制約条件は、式(22)で表される。
【0074】
【0075】
「搬送物体のエンドエフェクタによる把持開始状態は非搬送状態から搬送状態へ遷移したときと一致する」という制約条件は、式(23)で表される。把持開始状態は、エンドエフェクタがアプローチ点から搬送物体に対してピック動作を行い、ピック動作後にアプローチ点に戻る一連の動作状態である。
【0076】
【0077】
「搬送物体のエンドエフェクタによる把持終了状態は搬送状態から非搬送状態へ遷移したときと一致する」という制約条件は、式(24)で表される。把持終了状態は、エンドエフェクタがアプローチ点から搬送物体に対してプレース動作を行い、プレース動作後にアプローチ点に戻る一連の動作状態である。
【0078】
【0079】
「搬送物体のエンドエフェクタによる搬送状態は把持開始状態を除いた把持状態である」という制約条件は、式(25)で表される。つまり、把持状態は、把持開始状態または搬送状態である。
【0080】
【0081】
「搬送物体の把持開始状態、把持終了状態、搬送状態それぞれの初期値は0である」という制約条件は、式(26)で表される。
【0082】
【0083】
「エンドエフェクタの位置は、時間ステップが1つ前のエンドエフェクタの位置と速度によって更新される」という制約条件は、式(27)で表される。
【0084】
【0085】
「非把持状態のときの搬送物体の位置は、時間ステップが1つ前の搬送物体の位置と一致する」という制約条件は、式(28)及び式(29)で表される。
【0086】
【0087】
「搬送状態のときの搬送物体の位置は、エンドエフェクタの位置から一定距離だけ離れた位置と一致する」という制約条件は、式(30)及び式(31)で表される。
【0088】
【数26】
ここで、一定距離だけ離れた位置は、エンドエフェクタと搬送物体が把持により密着する位置となる。b
onは、搬送状態のときのエンドエフェクタと搬送物体との距離であり、後述する式(54)により定められる。
【0089】
「把持開始状態および把持終了状態のときの搬送物体の位置は、一定距離だけ離れた位置と一致する」という制約条件は、式(32)及び式(33)で表される。
【0090】
【0091】
ここで、一定距離だけ離れた位置は、把持開始状態のときはエンドエフェクタが搬送物体をピックする前のアプローチ位置となり、把持終了状態のときはエンドエフェクタが搬送物体をプレースした後の戻り位置となる。boffは、把持開始状態および把持終了状態のときのエンドエフェクタと搬送物体との距離であり、後述する式(55)により定められる。
【0092】
「搬送物体の目標位置到達状態は、搬送物体の位置がその目標値と一致する」という制約条件は、式(34)及び式(35)で表される。以降では、「目標位置」は位置の目標値(即ち、目標となる位置の座標)を指すものとする。
【0093】
【0094】
「搬送物体が非把持状態のときのみに目標位置到達状態となりうる」という制約条件は、式(36)で表される。
【0095】
【0096】
「ピックアンドプレースの完了状態は、現在から将来の全時間ステップに渡って全ての搬送物体が目標位置到達状態となっている」という制約条件は、式(37)で表される。
【0097】
【0098】
「最終的にはピックアンドプレースの完了状態となる」という制約条件は、式(38)で表される。
【0099】
【0100】
続いて、移動可能領域に関する制約条件について説明を行う前に、
図6(A)~
図6(C)と
図7(A)~
図7(C)を用いて移動可能領域について説明する。
【0101】
図6(A)は、障害物80周りの移動可能領域を示すx-y平面図である。
図6(A)では、直方体によりモデル化された障害物80の各面に沿った仮想面800を明示している。移動可能領域は、軸平行な直方体(AABB)としてモデル化される。
図6(B)は、移動可能領域810の第1の例を示し、
図6(C)は、移動可能領域810の第2の例を示すx-y平面図である。
図6(B)及び
図6(C)では、移動可能領域810がハッチングされている。
図6(B)及び
図6(C)に示すように、移動可能領域810は、仮想面800により区切られた領域であり、具体的には、仮想面800の外側の半空間に相当する。3次元空間の場合、被衝突回避物体(ここでは障害物80)周りの移動可能領域は、6個の仮想面800に対応する6個の半空間の領域となる。なお、移動可能領域810は、実際には、衝突回避物体(エンドエフェクタまたは搬送物体)の可動領域との積集合で表される有限な領域となる。
【0102】
図7(A)~
図7(C)は、エンドエフェクタ500が障害物の周りを移動する際の移動可能領域の切り替わりを表したx-y平面図の一例である。
図7(A)に示すように、エンドエフェクタ500は1つの移動可能領域810内部に位置している。
図7(A)において、エンドエフェクタ500はこの移動可能領域810内部を矢印83Aの方向に移動すると、エンドエフェクタ500は2つの移動可能領域810内部に位置するようになり、
図7(B)に示す状態に至る。その後、
図7(B)の状態において、エンドエフェクタ500は新たに位置するようになった移動可能領域810内部を矢印83Bの方向に移動すると、エンドエフェクタ500は移動前とは異なる2つの移動可能領域810内部に位置するようになる。その後、エンドエフェクタ500は、
図7(C)に示す状態に至る。そして、エンドエフェクタ500は、さらに矢印83Cの方向に移動する。
【0103】
このように衝突回避物体(
図7(A)~
図7(C)の例ではエンドエフェクタ500)は移動可能領域を切り替えながら移動することで、被衝突回避物体(
図7(A)~
図7(C)の例では障害物50)との衝突を回避しながら移動することができる。ただし、移動可能領域の切り替え前と切り替え後の連続する2つの時間ステップにおいて少なくも1個以上の移動可能領域に衝突回避物体が位置している必要がある。
【0104】
次に、移動可能領域に関する制約条件について説明する。「エンドエフェクタが、障害物周りの移動可能領域に位置している」という制約条件は、式(39)及び式(40)で表される。
【0105】
【0106】
「エンドエフェクタが、搬送物体周りの移動可能領域に位置している」という制約条件は、式(41)及び式(42)で表される。
【0107】
【0108】
「搬送物体が、障害物周りの移動可能領域に位置している」という制約条件は、式(43)及び式(44)で表される。
【0109】
【0110】
【0111】
「搬送物体が、別の搬送物体周りの移動可能領域に位置している」という制約条件は、式(45)及び式(46)で表される。
【0112】
【0113】
【0114】
「エンドエフェクタは、連続する2つの時間ステップにおいて、少なくとも1以上の障害物周りの1個以上の移動可能領域の内部に位置する」という制約条件は、式(47)で表される。
【数38】
【0115】
「エンドエフェクタは、連続する2つの時間ステップにおいて、少なくとも搬送物体周りの1個以上の移動可能領域の内部に位置する」という制約条件は、式(48)で表される。
【0116】
【数39】
なお、上述した式(47)及び式(48)は、1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという制約条件に相当し、本開示における「第1条件」の一例である。
【0117】
また、本実施形態では、搬送物体が搬送状態のときに、搬送物体とそれを搬送するエンドエフェクタの移動可能領域を同一にする。これにより、動作計画部100は、決定変数φdlv,obs、φdlv,dlvをバイナリ変数ではなく連続変数にし、かつ、「搬送物体が被衝突回避物体周りの移動可能領域の内部に位置する」という制約条件を満たすように動作計画を算出する。「搬送物体が被衝突回避物体周りの移動可能領域の内部に位置する」という制約条件は、本開示における第3条件の一例である。
【0118】
搬送物体が搬送状態のときに、搬送物体とそれを搬送するエンドエフェクタの移動可能領域を同一にすることの作用効果について補足説明する。比較例として、搬送物体と障害物周りの移動可能領域、及び、ある搬送物体とその他の搬送物体の移動可能領域周りの移動可能領域について、式(47)及び式(48)と同様の制約条件(「比較例に係る制約条件」とも呼ぶ。)を追加し、それらの衝突回避をモデル化する例も考えられる。一方、この場合、決定変数φdlv,obs、φdlv,dlvはバイナリ変数であるから、搬送物体の個数の増加によってバイナリ変数φdlv,obs、φdlv,dlvの個数が増加することになる。これに対し、本実施形態では、搬送物体が搬送状態のときに搬送物体とそれを搬送するエンドエフェクタの移動可能領域を同一にするという工夫を行うことで、決定変数φdlv,obs、φdlv,dlvをバイナリ変数ではなく、連続変数にする。これにより本来であれば搬送物体の個数の増加によって増加するバイナリ変数φdlv,obs、φdlv,dlvの個数を0にすることができる。決定変数φdlv,obs、φdlv,dlvを連続変数にできるのは、後述の制約条件である式(49)及び式(50)によってバイナリ変数φee,obs、φee,dlvのバイナリ値を決定変数φdlv,obs、φdlv,dlvに選択的に伝搬させることができるためである。
【0119】
図8(A)及び
図8(B)を用いて、搬送物体が搬送状態のときに搬送物体とそれを搬送するエンドエフェクタの移動可能領域を同一にすることについて、さらに詳細に説明する。
図8(A)は、エンドエフェクタ500が搬送物体60を搬送している状態での障害物80周辺のx-z平面図であり、
図8(B)は、エンドエフェクタ501が搬送物体60を搬送していない状態での障害物80周辺のx-z平面図である。
【0120】
図8(A)に示すように、搬送物体60の障害物80周りの移動可能領域810は、搬送状態のときに限り、エンドエフェクタ500の障害物80周りの移動可能領域810と同一となる。一方、
図8(B)に示すように、搬送物体60が搬送状態でないときは、障害物80周りの移動可能領域についての判定は考慮する必要がない。なぜならば、搬送物体60について衝突が発生しうるのは搬送状態のときのみであり、搬送物体60はピック前およびプレース後には他の被衝突回避物体と衝突しない位置に存在するためである。
【0121】
以上を勘案し、動作計画部100は、「搬送物体60の障害物80周りの移動可能領域810は、搬送状態のときに限り、エンドエフェクタ500の障害物80周りの移動可能領域810と同一となる」に対応する条件として、後述の式(49)及び式(50)で表される制約条件を追加する。一方、動作計画部100は、「搬送物体60が搬送状態でないときは、障害物80周りの移動可能領域についての判定は考慮する必要がない」という条件を反映するため、式(47)及び式(48)に相当する、比較例に係る制約条件(即ち、搬送物体が被衝突回避物体周りの移動可能領域の内部に位置するという制約条件)を不要とする。言い換えると、動作計画部100は、動作計画を算出する場合、搬送物体がロボット(ここではエンドエフェクタ)により搬送されていないときには、搬送物体が被衝突回避物体周りの移動可能領域の内部に位置するという制約条件についての評価をスキップする。この態様により、動作計画部100は、「搬送物体が被衝突回避物体周りの移動可能領域の内部に位置する」という制約条件を満たすように動作計画を算出することが可能である。
【0122】
再び最適化モデルにおける制約条件について説明する。「搬送物体の障害物周りの移動可能領域は、搬送状態のときにエンドエフェクタの障害物周りの移動可能領域と一致する」という制約条件は、式(49)で表される。
【0123】
【0124】
「搬送物体の他の搬送物体周りの移動可能領域は、搬送状態のときにエンドエフェクタの他の搬送物体周りの移動可能領域と一致する」という制約条件は、式(50)で表される。
【0125】
【数41】
式(49)及び式(50)は、ロボットが、搬送物体を把持して搬送しているときに、ロボットの被衝突回避物体周りの移動可能領域と搬送されている搬送物体の被衝突回避物体周りの移動可能領域とが一致するという制約条件に相当し、本開示における「第2条件」の一例である。
【0126】
「搬送物体は、搬送物体自身周りの移動可能領域には位置できない」という制約条件は、式(51)で表される。
【0127】
【0128】
エンドエフェクタの速度をその絶対値に変換するための制約条件は、式(52)及び(53)で表される。より正確には、目的関数におけるveeの絶対値(|vee|)の最小化を、υeeの最小化と式(52)及び式(53)で表される制約条件の組合せにより実現する。
【0129】
【0130】
把持操作におけるエンドエフェクタと搬送物体の距離bon、boffの値は、それぞれ式(54)及び式(55)で定めることができる。
【0131】
【数44】
ここで、「i=N
dim」はz成分と対応し、「i<N
dim」はx、y成分と対応する。すなわち、把持操作におけるエンドエフェクタと搬送物体のそれぞれの重心位置の距離は、x、y成分では0となり、z成分では、エンドエフェクタと搬送物体がぴったり密着する大きさ、または、エンドエフェクタと搬送物体がぴったり密着する大きさからさらにマージンを加えた大きさとなる。
【0132】
目的関数は、式(56)のように表される。
【0133】
【数45】
ここで、式(56)の第1項は、ピックアンドプレースが完了状態になるのに要する時間ステップ数(所要時間長)を0~1の値域となるように正規化した値に対応しており、0に近いほど早く完了状態となることに対応し、1に近いほど遅く完了状態になることに対応する。第2項はエンドエフェクタのL1ノルムの意味での総移動距離に対応している。第2項の重み係数εを十分に小さい正の実数とすることで、目的関数の第1項、第2項の順に最小化の優先順位付けをすることができる。
【0134】
以上が、最適化モデルの定義の一例である。動作計画部100は、上述の最適化モデルを生成し、最適化モデルに対して求解計算を行うことで、全ての決定変数を要素に持つベクトルXに対する解X*(例えば最適解)を得る。以後では、解X*の各要素となる決定変数について”*”を付して表記する。以上が、動作計画部100による動作計画情報の算出方法の一例である。
【0135】
次に、動作計画情報について説明する。動作計画部100は、解X*から動作計画情報を抽出する。具体的には、解X*のうち、pee*を軌道情報として、θpck*、θplc*、θcry*を操作情報として抽出し、これらを合わせて動作計画情報として出力する。「∨θpck*」が1であることは、当該時間ステップにおいてエンドエフェクタが把持操作を開始して搬送物体を取り上げることに対応する。「∨θplc*」が1であることは、当該時間ステップにおいてエンドエフェクタが把持操作を終了して搬送物体を置くことに対応する。「∨θcry*」が1であることは、当該時間ステップにおいてエンドエフェクタが搬送物体を把持しながら移動すること、つまり搬送することに対応する。
【0136】
次に、計画設定情報について説明する。設定記憶部300は、計画設定情報を記憶する。計画設定情報は、具体的には、搬送物体数Ndlvとpdlv,initを除いた上述の定数及び係数である。これら定数及び係数は、ユーザが設定するものと設定記憶部300が自動で算出するものに分かれていてもよい。例えば、次元数Ndimやvee,initなどの自明なデフォルト値(それぞれ3と0)が存在する定数及び係数については、ユーザが設定することをスキップできるものとしてもよい。他にも、距離bon及び距離boffはそれぞれ式(54)及び式(55)により算出することができるものとしてもよいし、これら以外のM、εなど定数・係数についても、他の定数・係数を用いて設定記憶部300が適切な値を算出できるものとしてもよい。
【0137】
計測情報について補足説明する。動作計画部100は、計測装置40が出力する搬送物体の位置情報と姿勢情報を合わせた計測情報を取得する。動作計画部100は、取得した計測情報から搬送物体の個数を特定して次元数Ndimを決定しつつ、計測情報とインデックス番号m、kとの対応関係を特定する。また動作計画部100は、取得した計測情報から位置情報をpdlv,initとして読み込む。さらに、動作計画部100は、取得した計測情報のうち姿勢情報を用い、設定記憶部300から読み込んだsdlvの値を更新してもよい。
【0138】
動作計画部100は、
図9に示す手順で計算を実行する。
図9は、動作計画部100の処理工程の例を示すフローチャートである。
【0139】
動作計画部100は、設定記憶部300から計画設定情報を読み込む(ステップS101)。これにより、動作計画部100は、例えば、「(b)定数・係数:個数」、「(c)定数・係数:初期値・目標値」、「(d)定数・係数:上限値・下限値」、「(e)定数・係数:形状」、「(f)定数・係数:距離」、「(g)定数・係数:その他」で説明した各定数及び係数(Ndlv及びpdlv,initを除く)を取得する。
【0140】
次に、動作計画部100は、計測装置40から搬送物体の位置座標を取得する(ステップS102)。これにより、動作計画部100は、例えば、搬送物体数Ndlv及び搬送物体の位置の初期値pdlv,initを取得する。
【0141】
次に、動作計画部100は、読み込んだ計画設定情報および取得した搬送物体の位置座標を用いて最適化モデルを生成する(ステップS103)。例えば、動作計画部100は、式(1)~式(53)に示される制約条件を用い、式(56)に示される決定変数のベクトルXに関する最適化モデルを生成する。
【0142】
そして、動作計画部100は、生成した最適化モデルに対して求解計算を実行し、得られた解から動作計画情報を算出する(ステップS104)。この場合、動作計画部100は、例えば、式(56)に示される最適化モデルの解となる決定変数のベクトルXの解X*を求め、求めた解X*から、軌道情報に相当するpee*と、操作情報に相当するθpck*、θplc*、θcry*を動作計画情報として抽出する。
【0143】
動作計画部100は、算出した動作計画情報を出力する(ステップS105)。そして、動作計画部100は、ステップS105の処理が実行された後、
図9の処理を終了する。
【0144】
以上に説明したように、本実施形態の動作計画装置は、1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、ロボットが、搬送物体を把持して搬送しているときに、ロボットの被衝突回避物体周りの移動可能領域と搬送されている搬送物体の被衝突回避物体周りの移動可能領域とが一致するという第2条件とを設定する。そして、動作計画装置は、第1条件と、第2条件とに基づき、ロボットの動作計画を算出する。その結果、本実施形態の動作計画装置は、時間効率が高い衝突回避を考慮したピックアンドプレースの動作計画の算出が可能である。
【0145】
<第2実施形態>
第1実施形態では、バイナリ変数の個数を削減することを主な目的としていたが、第2実施形態では、big-M法による制約条件の個数を実質的に削減することを主な目的とする。具体的には、式(43)及び式(44)で表される制約条件(即ち、搬送物体が障害物周りの移動可能領域に位置しているか否かを判定しうる制約条件)の個数を実質的に削減することを狙いとする。
【0146】
第2実施形態における動作計画装置及び動作計画装置を含むロボット制御システムのシステム構成は、第1実施形態において
図1~
図3を参照して説明したロボット制御システム1、1a、1bと同様である。また、第2実施形態におけるロボット制御システムのハードウェア構成についても、第1実施形態において
図5を参照して説明した構成と同様である。また、第2実施形態における動作計画装置のハードウェア構成についても、第1実施形態において
図4を参照して説明した構成と同様である。さらに第2実施形態において用いる最適化モデルについても第1実施形態と同様である。以後では、第1実施形態と同様の要素については同一の符号を付し、適宜その説明を省略する。
【0147】
第2実施形態では、式(43)及び式(44)で表される制約条件の個数を実質的に削減とすることを、決定変数φee,dlvの取りうる値をソフト的に制約することで実現する。これは、衝突回避の観点で支障がない範囲で式(43)及び式(44)を取り除くことに相当する。具体的には、第2実施形態では、以下の式(57)に示される最適化モデルを設定する。
【0148】
【数46】
式(57)に示される目的関数は、第3項を有する点において、第1実施形態において説明した式(56)に示される目的関数と異なる。
【0149】
式(57)に示される目的関数の第3項を「ソフト経路制約」と呼ぶこととする。また、「Rc」はロボットの経路とすることにペナルティがある移動可能領域のインデックス番号の集合であり、「制約経路」と呼ぶこととする。ソフト経路制約は、目的関数を最小化するために、ロボットが位置する移動可能領域により生じるペナルティをできるだけ小さくする、即ち、できるだけ多くのφee,dlvを0にするように働く。つまり、制約経路Rcに属する移動可能領域については、φee,dlvの値がソフト経路制約によって定まるようなときは、式(43)及び式(44)の評価を実質的にスキップすることができる。これは、big-M法による制約条件の個数を実質的に削減することに対応する。
【0150】
ソフト経路制約は、制約経路Rcに属する移動可能領域をできるだけ通過しないような経路を優先して選択することに対応する。従って、通過する可能性が低いと予測される移動可能領域を制約経路Rcの要素とすることで、効率的に上述の制約条件の削減効果を得ることができる。
【0151】
なお、制約条件「φee,dlv=0」を設けることにより強制的に制約経路Rcに属する移動可能領域を通過しないようにすることも考えられる。しかし、一般的にはエンドエフェクタが障害物および搬送物体周りを移動する経路は多数存在して、それらは複雑な依存関係にあるため、通過する可能性が全くない移動可能領域を特定することは困難か、または、保守的に少数の移動可能領域についてのみに制約条件を与えることになる。このような理由により、制約条件「φee,dlv=0」を用いる方法は、効率良くφee,dlvの値を定める効果を発揮しにくい。一方で、ソフト経路制約による方法は、事前に通過する可能性が全くない移動可能領域を特定することを必要としないため、実用的にφee,dlvの値を定める効果を発揮する。
【0152】
制約経路Rcの算出方法について、
図5と
図10(A)及び
図10(B)を参照しながら説明する。
図10(A)は、ソフト経路制約の対象となる移動可能領域(即ち制約経路Rc)のx-z平面図の一例であり、
図10(B)は、
図10(A)に対応するx-y平面図である。
図10(A)及び
図10(B)では、制約経路Rcに該当する移動可能領域をハッチングしている。
【0153】
ピックアンドプレースという動作の特性として、エンドエフェクタは搬送物体の上方の移動可能領域を移動する確率(予測通過確率)が高く、反対に、搬送物体の下方の移動可能領域を移動する確率(予測通過確率)が低い。従って、
図10(A)に示す例では、搬送物体60の下方(即ちz方向において搬送物体60より下)の移動可能領域が制約経路Rcとなっている。
【0154】
他にもピックアンドプレースという動作の特性として、搬送物体の初期位置(搬送元)から目標位置(搬送先)までの経路をエンドエフェクタは移動するが、x方向またはy方向のいずれかの移動距離が他方の軸方向の移動距離よりも長い場合が多い。
図5の例については、x方向の移動距離の方がy方向の移動距離よりも大きい場合である。エンドエフェクタは、移動距離が短い軸方向(
図5の例ではy方向)の両側の移動可能領域を経由しなくとも、搬送物体の上方の移動可能領域と移動距離が長い軸方向(
図5の例ではx方向)の両側の移動可能領域を経由することで、一連のピックアンドプレースを完了させることができる場合が多い。
【0155】
これらのピックアンドプレースの特性は制約経路Rcの算出に活用できる。具体的には、動作計画部100は、制約経路Rcに、z方向において搬送物体60よりも下側に位置する移動可能領域を追加する(
図10(A)参照)。続いて、動作計画部100は、移動距離が短い軸方向(
図10(A)、(B)の例ではy方向とする)において搬送物体60の両側に位置する移動可能領域を追加する(
図10(B)参照)。動作計画部100は、移動距離が短い軸を決定する場合、例えば、複数の搬送物体の初期位置と目標位置の重心をそれぞれ算出し、それらの差分のx成分の絶対値とy成分の絶対値の大小関係を比較して小さい方の軸を移動距離が短い軸とすることができる。
【0156】
なお、制約経路Rcの算出方法は、
図10(A)及び
図10(B)を参照して説明した例に限定されず、計画設定情報および計測情報を用いて通過する可能性が低い移動可能領域を予測に基づいて算出方法であればよい。具体的には、動作計画部100は、搬送物体の初期位置と目標位置とに基づき、ロボットの予測通過確率が閾値よりも低いと予測される移動可能領域を、制約経路Rcとして設定する。
【0157】
また、
図10(A)及び
図10(B)を参照して説明した例では、制約経路Rcは、全搬送物体および全時間ステップにおいて共通のものとしたが、搬送物体毎、時間ステップ毎に異なるようにしてもよい。この場合、制約経路Rcは、制約経路Rc(m,t)のようにm及びtを変数に持つものとなり、よりきめ細やかに制約経路を決めることができるようになり、その結果、ソフト経路制約により多くのφ
ee,dlvの値を定めることができるという効果を発揮する。
【0158】
好適な例では、さらに、ソフト経路制約におけるφee,dlvに重み係数を乗ずることで、より効率良くφee,dlvの値を定めるようにしてもよい。重み係数は、当該移動可能領域を通過する確率などに基づいて算出するようにしてもよい。
【0159】
図11は、第2実施形態における動作計画部100の処理工程の例を示すフローチャートである。
【0160】
動作計画部100は、設定記憶部300から計画設定情報を読み込む(ステップS201)。動作計画部100は、計測装置40から搬送物体の位置座標を取得する(ステップS202)。ステップS201及びステップS202の処理は、
図9のフローチャートのステップS101及びステップS102と同一である。
【0161】
動作計画部100は、読み込んだ計画設定情報および取得した搬送物体の位置座標を用いて経路制約Rcを算出する(ステップS203)。例えば、動作計画部100は、z軸方向で下側の移動可能領域と、移動距離が短い軸方向で両側の移動可能領域とを、経路制約Rcに追加する。
【0162】
次に、動作計画部100は、読み込んだ計画設定情報、取得した搬送物体の位置座標、および算出した制約経路Rcを用いてソフト経路制約付き最適化モデルを生成する(ステップS204)。具体的には、動作計画部100は、式(1)~式(53)に示される制約条件を用い、式(57)に示される決定変数のベクトルXに関する最適化モデルを生成する。
【0163】
動作計画部100は、生成した最適化モデルに対して求解計算を実行し、得られた解から動作計画情報を算出する(ステップS205)。この場合、動作計画部100は、例えば、式(57)に示される最適化モデルの解となる決定変数のベクトルXの解X*を求め、求めた解X*から、軌道情報に相当するpee*と、操作情報に相当するθpck*、θplc*、θcry*を動作計画情報として抽出する。
【0164】
動作計画部100は、算出した動作計画情報を出力する(ステップS206)。動作計画部100は、ステップS206の処理が実行された後、
図10の処理を終了する。
【0165】
以上に説明したように、第2実施形態に係る動作計画装置10は、搬送物体の初期位置と目標位置とに基づき、ロボットの予測通過確率が閾値よりも低い搬送物体周りの移動可能領域を、ロボットの経路とすることにペナルティがある制約経路として設定する。そして、動作計画装置10は、設定した制約条件と、制約経路とに基づき、ロボットの動作計画を算出する。その結果、本実施形態の動作計画装置は、時間効率が高い衝突回避を考慮したピックアンドプレースの動作計画の算出が可能である。
【0166】
<第3実施形態>
図12は、第3実施形態における動作計画装置10Xの概略構成図を示す。動作計画装置10Xは、主に、条件設定手段90Xと、動作計画手段100Xとを有する。なお、動作計画装置10Xは、複数の装置から構成されてもよい。動作計画装置10Xは、例えば、第1実施形態及び第2実施形態における動作計画装置10、10a、10bのいずれかとすることができる。
【0167】
条件設定手段90Xは、1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび前記搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、ロボットが、搬送物体を把持して搬送しているときに、ロボットの被衝突回避物体周りの移動可能領域と搬送されている搬送物体の被衝突回避物体周りの移動可能領域とが一致するという第2条件とを設定する。動作計画手段100Xは、第1条件と第2条件とに基づき、ロボットの動作計画を算出する。条件設定手段90Xと動作計画手段100Xとは、第1実施形態及び第2実施形態における動作計画部100の一例である。
【0168】
図13は、第3実施形態において動作計画装置10Xが実行するフローチャートの一例である。条件設定手段90Xは、1以上の搬送物体に対してピックアンドプレースを実行するロボットおよび前記搬送物体は、被衝突回避物体に衝突することがない領域である移動可能領域の内部に位置するという第1条件と、ロボットが、搬送物体を把持して搬送しているときに、ロボットの被衝突回避物体周りの移動可能領域と搬送されている搬送物体の被衝突回避物体周りの移動可能領域とが一致するという第2条件とを設定する(ステップS301)。そして、動作計画手段100Xは、第1条件と第2条件とに基づき、ロボットの動作計画を算出する(ステップS302)。
【0169】
第3実施形態によれば、動作計画装置10Xは、衝突回避を考慮したピックアンドプレースの時間効率が高い動作計画を好適に算出することができる。
【0170】
なお、本開示において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium )を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体(tangible storage medium )を含む。非一時的なコンピュータ可読媒体の例は、磁気記憶媒体(たとえばフレキシブルディスク、磁気テープ、ハードディスク)、光磁気記憶媒体(たとえば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、DVD(Digital Versatile Disc)、BD(Blu-ray(登録商標) Disc)、半導体メモリ(たとえば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM )、フラッシュROM、RAM(Random Access Memory)を含む。また、本開示における動作計画装置の構成は、コンピュータを用いた構成に限定されない。たとえば、動作計画装置が、ASIC(Application Specific Integrated Circuit )やFPGA(Field Programmable Gate Array)を用いて構成されるなど、専用のハードウェアを用いて構成されていてもよい。
【0171】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、引用した上記の非特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0172】
1、1a、1b ロボット制御システム
10、10a、10b 動作計画装置
20 制御装置
30 設定記憶装置
40 計測装置
50 ロボット