(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-27
(45)【発行日】2024-10-07
(54)【発明の名称】ピッキング装置、制御装置、及びプログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20240930BHJP
B25J 15/06 20060101ALN20240930BHJP
【FI】
B25J13/08 Z
B25J15/06 A
(21)【出願番号】P 2020075350
(22)【出願日】2020-04-21
【審査請求日】2022-11-18
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】大明 準治
(72)【発明者】
【氏名】増田 哲也
(72)【発明者】
【氏名】堀内 晴彦
(72)【発明者】
【氏名】井上 順一
(72)【発明者】
【氏名】牛山 隆文
【審査官】尾形 元
(56)【参考文献】
【文献】特開2015-217451(JP,A)
【文献】特開2020-15110(JP,A)
【文献】特開2004-276125(JP,A)
【文献】特開2018-158439(JP,A)
【文献】特開2016-117141(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
搬送対象物をピッキングして把持する把持部と、
前記把持部を移動させて前記把持部に前記搬送対象物を搬送させるアーム部と、
前記アーム部に取り付けられ、前記把持部にかかる力を検出する検出部と、
前記把持部及び前記アーム部の動作を制御する制御部と、
前記制御部は、
最小二乗法に基づくフィッティング処理を行
うことにより、重力補償演算用のパラメータ及び慣性力補償演算用のパラメータとして
それぞれ搬送対象物の質量ごとに予め推定された重力補償パラメータ及び慣性力補償パラメータの中から
、前記搬送対象物の質量に応じた係数として選択された
前記重力補償パラメータ及び前記慣性力補償パラメータの一方を含む
それぞれの演算式を用いて、前記把持部が前記搬送対象物を把持して移動させる際に前記把持部にかかる重力及び慣性力を算出する算出部と、
前記検出部が検出した前記把持部にかかる力から、前記算出部が算出した前記重力及び前記慣性力を減算する減算部と、
前記減算部の減算結果と、予め定められた衝突閾値との比較結果に基づいて、衝突を検知する衝突検知部と、を備える、
ピッキング装置。
【請求項2】
前記係数は、前記把持部が前記搬送対象物を把持しない空荷の場合の第1係数と、前記把持部に負荷がある場合の第2係数と、を備える、
請求項1に記載のピッキング装置。
【請求項3】
前記係数は、前記把持部が前記搬送対象物を把持しない空荷の場合の第1係数と、前記把持部に把持される前記搬送対象物の質量に応じてそれぞれ区分された区分対応係数と、を備える、
請求項1に記載のピッキング装置。
【請求項4】
前記搬送対象物の質量を取得する取得部と、
前記取得部が取得した質量に応じた係数を選択する選択部と、を備える、
請求項3に記載のピッキング装置。
【請求項5】
前記係数は、前記重力を算出するための重力算出係数と、前記慣性力を算出するための慣性力算出係数と、を含み、
前記重力算出係数は、前記把持部を極低速動作させた場合の前記アーム部の角度データに基づいて決定される、
請求項1に記載のピッキング装置。
【請求項6】
前記係数は、前記重力を算出するための重力算出係数と、前記慣性力を算出するための慣性力算出係数と、を含み、
前記慣性力算出係数は、前記把持部を高加減速動作させた場合の前記アーム部の加速度データに基づいて決定される、
請求項1に記載のピッキング装置。
【請求項7】
搬送対象物をピッキングして把持する把持部と、
前記把持部を移動させて前記把持部に前記搬送対象物を搬送させるアーム部と、
前記アーム部に取り付けられ、前記把持部にかかる力を検出する検出部と、を備えるピッキングロボットを制御する制御部と、
前記搬送対象物の質量を取得する取得部と、を有し、
前記制御部は、
最小二乗法に基づくフィッティング処理を行
うことにより、重力補償演算用のパラメータ及び慣性力補償演算用のパラメータとして
それぞれ搬送対象物の質量ごとに予め推定された重力補償パラメータ及び慣性力補償パラメータの中から
、前記搬送対象物の質量に応じた係数として選択された
前記重力補償パラメータ及び前記慣性力補償パラメータの一方を含む
それぞれの演算式を用いて、前記把持部が前記搬送対象物を把持して移動させる際に前記把持部にかかる重力及び慣性力を算出する算出部と、
前記検出部が検出した前記把持部にかかる力から、前記算出部が算出した前記重力及び前記慣性力を減算する減算部と、
前記減算部の減算結果と、予め定められた衝突閾値との比較結果に基づいて、衝突を検知する衝突検知部と、を備える、
制御装置。
【請求項8】
搬送対象物をピッキングして把持する把持部と、
前記把持部を移動させて前記把持部に前記搬送対象物を搬送させるアーム部と、
前記アーム部に取り付けられ、前記把持部にかかる力を検出する検出部と、を備えるピッキングロボットを制御し、
前記搬送対象物の質量を取得する制御装置に、
最小二乗法に基づくフィッティング処理を行
うことにより、重力補償演算用のパラメータ及び慣性力補償演算用のパラメータとして
それぞれ搬送対象物の質量ごとに予め推定された重力補償パラメータ及び慣性力補償パラメータの中から
、前記搬送対象物の質量に応じた係数として選択された
前記重力補償パラメータ及び前記慣性力補償パラメータの一方を含む
それぞれの演算式を用いて、前記把持部が前記搬送対象物を把持して移動させる際に前記把持部にかかる重力及び慣性力を算出させ、
前記検出部が検出した前記把持部にかかる力から、前記重力及び前記慣性力を減算させ、
前記減算の結果と、予め定められた衝突閾値との比較結果に基づいて、衝突を検知させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ピッキング装置、制御装置、及びプログラムに関する。
【背景技術】
【0002】
搬送の対象となる対象物をピッキングして把持し、搬送するピッキング装置において、搬送物の搬送中に搬送物やピッキング装置に衝突が生じると、物品を落としたり傷つけたりすることがある。このため、物品の搬送中に衝突が発生することを判定することが望まれるが、衝突を簡易に判定することが難しかった。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明が解決しようとする課題は、搬送対象物の搬送中に発生する衝突を簡易に検知することができるピッキング装置、制御装置、及びプログラムを提供することである。
【課題を解決するための手段】
【0005】
実施形態のピッキング装置は、把持部と、アーム部と、検出部と、制御部と、を持つ。把持部は、搬送対象物をピッキングして把持する。アーム部は、前記把持部を移動させて前記把持部に前記搬送対象物を搬送させる。検出部は、前記アーム部に取り付けられ、前記把持部にかかる力を検出する。制御部は、前記把持部及び前記アーム部の動作を制御する。前記制御部は、算出部と、減算部と、を持つ。算出部は、前記搬送対象物の質量に応じて定められた係数を含む演算式を用いて、前記把持部が前記搬送対象物を把持して移動させる際に前記把持部にかかる重力及び慣性力を算出する。減算部は、前記検出部が検出した前記把持部にかかる力から、前記算出部が算出した前記重力及び前記慣性力を減算する。
【図面の簡単な説明】
【0006】
【
図1】実施形態のピッキング装置1の全体を示す図。
【
図3】重力補償パラメータテーブル282の一例を示す図。
【
図4】慣性力補償パラメータテーブル284の一例を示す図。
【
図5】コントローラ200の処理の一例を示すフローチャート。
【
図6】重力補償パラメータテーブル282及び慣性力補償パラメータテーブル284を作成する手順の一例を示すフローチャート。
【
図7】第1軸111を極低速で往復動作させたときのX
E方向の第1力fxの時間変化を最小二乗法でフィッティングした場合の一例を示すグラフ。
【
図8】第1軸111を極低速で往復動作させたときのZ
E方向の第1力fxの時間変化を最小二乗法でフィッティングした場合の一例を示すグラフ。
【
図9】第1軸111~第3軸113を往復動作させたときのX
E方向の加速度目標値と実加速度の一例を示すグラフ。
【
図10】第1軸111~第3軸113を往復動作させたときのZ
E方向の加速度目標値と実加速度の一例を示すグラフ。
【
図11】
図9に示す高加減速高速動作時の加速度のデータを(4)式に基づいてフィッティングした結果を示すグラフ。
【
図12】
図10に示す高加減速高速動作時の加速度のデータを(5)式に基づいてフィッティングした結果を示すグラフ。
【
図13】力センサ150が検出した力に対して、重力補償と慣性補償を施した際の第1力fxの残差波形の一例を示すグラフ。
【
図14】力センサ150が検出した力に対して、重力補償と慣性補償を施した際の第2力fzの残差波形の一例を示すグラフ。
【発明を実施するための形態】
【0007】
以下、実施形態のピッキング装置、制御装置、及びプログラムを、図面を参照して説明する。なお以下の説明では、同一または類似の機能を有する構成に同一の符号を付す。そして、それら構成の重複する説明は省略する場合がある。なお、本願でいう「XXに基づく」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また、「XXに基づく」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の情報)である。
【0008】
図1は、実施形態のピッキング装置の全体を示す図である。ピッキング装置1は、ピッキングロボット100と、コントローラ200と、インターフェース300と、を備える。ピッキングロボット100は、ピッキング用の6軸ロボットアームを備える。ピッキング装置1は、例えば、物品用コンテナにおいて把持した物品を搬送して集荷用コンテナに詰める。ピッキング装置1は、これらの要素の他、各コンテナを引き込むベルトコンベアや物品を認識するためのカメラなどを備える。
【0009】
ピッキングロボット100は、アーム部110と、力センサ150と、吸着ハンド160と、を備える。ピッキングロボット100は、例えば、物品用コンテナC1に収容された搬送対象物Pを吸着して、集荷用コンテナC2に搬送する。コントローラ200は制御装置の一例であり、力センサ150は検出部の一例であり、吸着ハンド160は把持部の一例である。
【0010】
アーム部110は、第1軸111~第6軸116の6つの軸を備える。第1軸111~第6軸116は、基台117と吸着ハンド160との間に配置される。第1軸~第6軸の呼称には、通常、基台117に近い側から順に若い番号を付すが、実施形態では、説明の便宜上、適宜順序を入れ替えて説明する。基台117には、第4軸114を介して胴部118が設けられ、胴部118には、第1軸111を介して第1アーム121の一端が接続される。
【0011】
第1アーム121の他端には、第2軸112を介して第2アーム122の一端が接続され、第2アーム122の他端には、第5軸115を介して第3アーム123の一端が接続される。第2アーム122と第3アーム123は、同軸状に位置される。第3アーム123の他端には、第3軸113を介して手首部124の一端が接続され、手首部124の他端には、第6軸116が接続される。第6軸116には、力センサ150が取り付けられ、力センサ150には吸着ハンド160が取り付けられる。
【0012】
第1軸111~第6軸116には、それぞれコントローラ200に制御によって駆動するモータが設けられる。第4軸114は、基台117に対して胴部118を鉛直軸周りに回転させる。第1軸111は、胴部118に対して第1アーム121を水平軸周りに回転させる。第2軸112は、第1アーム121に対して第2アーム122を水平軸周りに回転させる。
【0013】
第5軸115は、第2アーム122が延在する方向に沿った軸周りに第3アーム123を回転させる。第3軸113は、第3アーム123に対して手首部124を、第3アーム123及び手首部124がそれぞれ延在する方向に沿った2軸のそれぞれに対して直交する軸周りに回転させる。第6軸116は、手首部124が延在する方向に沿った軸周りに力センサ150及び吸着ハンド160を回転させる。
【0014】
力センサ150は、吸着ハンド160にかかる力を検出する。力センサ150は、吸着ハンド160にかかる力について、XYZの各方向の成分に分けて検出する。力センサ150は、検出結果を検出信号としてコントローラ200に出力する。吸着ハンド160は、コントローラ200の制御に応じて、搬送対象物Pを把持したり把持した搬送対象物Pを解放したりする。吸着ハンド160は、搬送対象物Pを吸着するものに代えて、搬送対象物Pを挟持するもの等でもよい。
【0015】
図2は、コントローラ200の構成図である。コントローラ200は、例えば、通信部210と、算出部220と、減算部230と、衝突検知部240と、動作制御部250と、記憶部280と、を備える。算出部220と、減算部230と、衝突検知部240と、動作制御部250と、は、例えば、CPU(Central Processing Unit)(コンピュータ)等のハードウェアプロセッサがプログラム(ソフトウェア)を実行することにより実現される。また、これらの構成要素のうち一部または全部は、LSI(Large Scale Integration)やASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、GPU(Graphics Processing Unit)等のハードウェア(回路部;circuitryを含む)によって実現されてもよいし、ソフトウェアとハードウェアの協働によって実現されてもよい。プログラムは、予めコントローラ200のHDDやフラッシュメモリ等の記憶装置(非一過性の記憶媒体を備える記憶装置)に格納されていてもよいし、DVDやCD-ROM等の着脱可能な記憶媒体に格納されており、記憶媒体(非一過性の記憶媒体)がドライブ装置に装着されることでコントローラ200のHDDやフラッシュメモリにインストールされてもよい。記憶部280は、重力補償パラメータテーブル282と、慣性力補償パラメータテーブル284と、衝突閾値286と、を記憶する。算出部220と、減算部230と、衝突検知部240と、動作制御部250と、を備えるハードウェアプロセッサは、制御部の一例である。
【0016】
通信部210は、例えば、ピッキングロボット100やインターフェース300等との間で情報や信号の入出力を行う。通信部210は、例えば、力センサ150が出力した検出信号を算出部220に通知する。通信部210は、例えば、動作制御部250により通知される動作制御信号をアーム部110のモータや吸着ハンド160に出力する。
【0017】
算出部220は、例えば、取得部222と、重力補償部224と、慣性力補償部226と、を備える。取得部222は、力センサ150が出力した検出信号に基づいて、ピッキングロボット100が搬送する搬送対象物Pの質量を算出して取得する。取得部222は、計測した搬送対象物Pの質量を示す質量情報を重力補償部224及び慣性力補償部226に通知する。ピッキングロボット100は、力センサ150に代えてまたは加えて、搬送対象物Pの質量を計測する計測部を備え、取得部222は、計測部が出力する搬送対象物Pの質力を取得してもよい。
【0018】
重力補償部224は、例えば、補償重力値を算出する補償重力算出式と、ピッキングロボット100が搬送する搬送対象物Pの質量に応じた重力補償パラメータを選択する。重力補償部224は、選択した重力補償パラメータを利用して、力センサ150が検出した力に含まれる重力成分を算出する。重力補償部224は、選択部の一例である。重力補償部224は、算出した補償重力値を減算部230に通知する。補償重力算出式については、後に説明する。
【0019】
図3は、重力補償パラメータテーブル282の一例を示す図である。重力補償パラメータは、例えば、搬送対象物Pの質量ごとにまとめられて重力補償パラメータテーブル282として記憶部280に記憶される。重力補償パラメータテーブル282には、0[kg]~10[kg]までの1[kg]ごとの合計11個の質量に応じた重力補償パラメータが記憶される。重力補償パラメータとしては、例えば、補償重力算出式に用いられる6つの重力補償パラメータg
xs、g
xc、g
xf、g
zs、g
zc、g
zfが記憶される。重力補償パラメータは、重力を算出するための重力算出係数の一例である。0[kg]の重力補償パラメータは、吸着ハンド160が搬送対象物Pを把持しない空荷の状態の第1係数の一例であり、1[kg]~10[kg]の重力補償パラメータは、吸着ハンド160に負荷がある場合の第2係数、及び吸着ハンド160に把持される搬送対象物Pの質量に応じてそれぞれ区分された区分対応係数の一例である。重力補償パラメータを決定し、重力補償パラメータテーブル282を作成する手順は、後に説明する。
【0020】
慣性力補償部226は、例えば、補償慣性力値を算出する補償慣性力算出式と、ピッキングロボット100が搬送する搬送対象物Pの質量に応じた慣性力補償パラメータを選択する。慣性力補償部226は、選択した慣性力補償パラメータを利用して、力センサ150が検出した力に含まれる慣性力成分を算出する。慣性力補償部226は、選択部の一例である。利用して、力センサ150が検出した力に含まれる慣性力成分を算出する。慣性力補償部226は、算出した補償慣性力値を減算部230に通知する。補償慣性力算出式については、後に説明する。
【0021】
図4は、慣性力補償パラメータテーブル284の一例を示す図である。慣性力補償パラメータは、例えば、搬送対象物Pの質量ごとにまとめられて慣性力補償パラメータテーブル284として記憶部280に記憶される。慣性力補償パラメータテーブル284には、0[kg]~10[kg]までの1[kg]ごとの合計11個の質量に応じた慣性力補償パラメータが記憶される。慣性力補償パラメータとしては、例えば、補償慣性力算出式に用いられる3つの慣性力補償パラメータm
1x、m
1z、m
1o、m
2x、m
2z、m
2oが記憶される。慣性力補償パラメータは、慣性力を算出するための慣性力算出係数の一例である。0[kg]の慣性力補償パラメータは、第1係数の一例であり、1[kg]~10[kg]の慣性力補償パラメータは、吸着ハンド160に負荷がある場合の第2係数、及び区分対応係数の一例である。慣性力補償パラメータを決定し、慣性力補償パラメータテーブル284を作成する手順は、後に説明する。
【0022】
減算部230は、力センサ150が出力した検出信号に基づく力から、重力補償部224が通知した補償重力値と、慣性力補償部226が通知した補償慣性力値と、を減算する。減算部230は、減算結果を衝突検知部240に通知する。
【0023】
衝突検知部240は、減算部230が通知した減算結果と、記憶部280に記憶された衝突閾値286を比較した比較結果に基づいて、搬送対象物Pを搬送しているときに、ピッキングロボット100に衝突が発生したことを検知する。「ピッキングロボット100が衝突する」とは、例えば、ピッキングロボット100のアーム部110、力センサ150、吸着ハンド160等が他の物体に衝突(接触)する場合や、ピッキングロボット100が搬送する搬送対象物Pが、搬送の過程で接触する予定のない他の物体に衝突(接触)する場合を含む。衝突検知部240は、ピッキングロボット100に衝突が発生したことを検知した場合に、衝突信号を動作制御部250に通知する。
【0024】
動作制御部250は、オペレータがインターフェース300を用いて入力した動作指令に応じて、ピッキングロボット100のモータや吸着ハンド160を制御する。動作制御部250は、衝突検知部240が衝突信号を通知した場合に、ピッキングロボット100のモータや吸着ハンド160の動作を停止させる。
【0025】
インターフェース300は、例えば、入力装置と表示装置を備える。入力装置は、例えば、オペレータ等のユーザ操作が可能であり、所定の情報を入力させるデバイス、例えばマウスである。操作装置は、マウス以外のデバイス、例えばキーボードやジョイスティック等でもよい。表示装置がタッチパネルであり、表示装置と入力装置が一体となっていてもよい。
【0026】
次に、コントローラ200の処理について説明する。
図5は、コントローラ200の処理の一例を示すフローチャートである。コントローラ200は、例えば、オペレータによるインターフェース300に対する入力操作に応じてピッキングロボット100を作動させ(ステップS101)、搬送対象物Pを物品用コンテナC1から集荷用コンテナC2に搬送させる。ピッキングロボット100が作動されると、力センサ150は、吸着ハンド160にかかる力を検出する。力センサ150は、検出結果に応じた検出信号をコントローラ200に出力する。
【0027】
続いて、通信部210は、力センサ150が出力した検出信号を入力し(ステップS103)、算出部220に通知する。算出部220における取得部222は、通知された検出信号に応じた検出結果に基づいて、吸着ハンド160が搬送する搬送対象物Pの質量を算出して取得する(ステップS105)。
【0028】
続いて、重力補償部224及び慣性力補償部226は、取得部222が取得した搬送対象物Pの質量に基づいて、重力補償パラメータ及び慣性力補償パラメータを、重力補償パラメータテーブル282及び慣性力補償パラメータテーブル284からそれぞれ選択する(ステップS107)。
【0029】
続いて、減算部230は、力センサ150が出力した検出信号に応じた検出結果が示す質量から、重力補償パラメータ及び慣性力補償パラメータを減算する減算処理を行い(ステップS109)、減算値を算出する。
【0030】
続いて、衝突検知部240は、減算部230が算出した減算値と、記憶部280に記憶された衝突閾値を比較し、減算値が衝突閾値を超えているか否かを判定する(ステップS111)。減算値が衝突閾値を超えていると判定した場合、衝突検知部240は、動作制御部250に衝突信号を出力し、動作制御部250は、ピッキングロボット100の動作を停止させる(ステップS113)。コントローラ200は、衝突検知部240が衝突を検知して動作制御部250がピッキングロボット100の動作を停止させた際に、衝突が発生したことをインターフェース300の表示制御装置に表示させる。
【0031】
減算値が衝突閾値を超えていない(衝突閾値以下である)と衝突検知部240が判定した場合、動作制御部250は、搬送対象物Pが物品用コンテナC1から集荷用コンテナC2に搬送されて、搬送が完了したか否かを判定する(ステップS115)。搬送が完了していないと判定した場合、動作制御部250は、ステップS103の処理に戻る。搬送が完了したと判定した場合、コントローラ200は、
図5に示す処理を終了する。
【0032】
次に、重力補償パラメータ及び慣性力補償パラメータを決定する手順について、衝突判定に利用する原理とともに説明する。重力補償パラメータ及び慣性力補償パラメータは、例えば、ピッキング装置1に重力補償パラメータテーブル282及び慣性力補償パラメータテーブル284を記憶させる前に、パラメータ推定装置(以下、「推定装置」という)を用いて、推定されて決定される。推定装置は、例えば、ピッキングロボット100を実際に動作させて重力補償パラメータ及び慣性力補償パラメータを推定する。
【0033】
実施形態では、6軸のロボットアームを備えるピッキングロボット100のアーム部110を鉛直旋回3軸ロボットアームに見立てて説明を進める。実施形態では6次元のアーム部110を2次元の3軸ロボットアームに見立てて、二次元の回転行列を用いて説明を行うが、6次元のアーム部110についても、回転行列を二次元から三次元に変更するのみで、共通の原理でピッキングロボット100の制御を行うことができる。
【0034】
基本的な考え方として、まず、吸着ハンド160が空荷の状態のときに力センサ150にかかる重力と慣性力を完全に除去する。このために、オフライオンの最小二乗法に基づくフィッティング処理を行い、リアルタイムでの重力及び慣性力補償演算用のパラメータとして、重力補償パラメータ及び慣性力補償パラメータを推定して決定しておく。吸着ハンド160の質量が搬送対象物Pより大きい場合には、この場合の重力補償パラメータ及び慣性力補償パラメータを用いるのみでも衝突閾値を小さくすることができる。
【0035】
次に、搬送対象物Pを把持した状態における重力と慣性力の差分を補償する原理について説明する。ここでの補償は、ロボットアームの動力学モデルは非線形であるが、質量や慣性を与える物理パラメータに関しては線形であり、慣性力や重力の補償について、重ね合わせの定理が成り立つことを利用するものである。
【0036】
図6は、重力補償パラメータテーブル282及び慣性力補償パラメータテーブル284を作成する手順の一例を示すフローチャートである。まず、推定装置は、吸着ハンド160が空荷の状態(0[kg]の搬送対象物Pを搬送する状態)とする(ステップS201)。続いて、推定装置は、ピッキングロボット100のアーム部110を極低速動作させて(ステップS203)、重力補償パラメータを推定する(ステップS205)。
【0037】
アーム部110を極低速度で動作させると、力センサ150にかかる慣性力は、無視できる程度に小さくなるため、ピッキングロボット100の動作に伴う力の影響として、重力の影響を取り出すことができる。説明に利用するベース座標系として、鉛直方向に沿ったZ軸と水平方向に沿ったX軸を定義する。3軸のロボットアームに見立てたアーム部110の第1アーム121、第2アーム122、第3アーム123、及び手首部124がZ軸に沿って同軸状に配置されるときの第1軸111の回転角度(以下、「第1回転角度」という)θ1、第2軸112の回転角度(以下、「第2回転角度」という)θ2、第3軸113の回転角度(以下、「第3回転角度」という)θ3をそれぞれ0°とする。第1回転角度θ1、第2回転角度θ2、及び第3回転角度θ3は、いずれも
図1の方向に見て反時計回りの角度を示す。第1回転角度θ1、第2回転角度θ2、及び第3回転角度θ3は、角度データの一例である。
【0038】
さらに、アーム部110先端の作業座標系(吸着ハンド160の作業座標系)として、先端方向をXE軸、下向きをZE軸と定義する。このときのアーム部110先端の作業座標系は、下記(1)式で表される。
【0039】
【0040】
上記(1)式から、力センサ150にかかる質量による重力は、c123,s123の関数となることは明らかである。力センサ150の座標系は、アーム部110先端の作業座標系と同一であり、力センサ150は、XE方向にかかる第1力fx[N]と、ZE方向にかかる第2力fz[N]を検出する。したがって、重力補償パラメータを定義すると、XE方向の第1力fx及びZE方向の第2力fzと、第1回転角度θ1~第3回転角度θ3との関係は、下記(2)式及び(3)式で表すことができる。
fx=gxss123+gxcc123+gxf ・・・(2)
fz=gzss123+gzcc123+gzf ・・・(3)
【0041】
上記(2)式及び(3)式における右辺の第3項は、幾何学的誤差などを吸収するために設けたオフセットである。上記(2)式及び(3)式を用いて、ピッキングロボット100の極低速時の第1回転角度~第3回転角度と、力センサ150が検出した力に基づくデータを最小二乗法でフィッティングすることにより、重力補償パラメータを算出することができる。重力補償パラメータgxs、gxc、gxf、gzs、gzc、gzfは、吸着ハンド160を極低速動作させた場合の第1回転角度θ1、第2回転角度θ2、及び第3回転角度θ3に基づいて推定されて決定される。
【0042】
図7は、第1軸111を極低速で往復動作させたときのX
E方向の第1力fxの時間変化を最小二乗法でフィッティングした場合の一例を示すグラフ、
図8は、そのZ
E方向の第2力fzの一例を示すグラフである。
図7では、第1力fxを実線L11で示し、フィッティングさせたグラフを破線L21で示す。
図8では、第2力fzを実線L12で示し、フィッティングさせたグラフを破線L22で示す。ここでは、第1軸111は、第1回転角度が0°から90°を経て0°に戻るように往復動作させられている。
図7及び
図8に示す変化が得られた場合には、重力補償パラメータg
xs、g
xc、g
xf、g
zs、g
zc、g
zfは、それぞれ以下の数値となる。
【0043】
gxs=-2.2856e+01
gxc=-5.3106e-01
gxf=-4.0144e-00
gzs=4.5867e-01
gzc=-2.2287e+01
gzf=-1.9212e+00
【0044】
続いて、推定装置は、ピッキングロボット100のアーム部110を高加減速動作させて(ステップS207)、慣性力補償パラメータを推定する(ステップS209)。ここでは、推定装置は、例えば3~40m/s2の加減速度かつ例えば100%の高速でアーム部110を高加減速で、例えば、第1回転角度θ1=第2回転角度θ2=第3回転角度θ3=0°の状態から、第1回転角度θ1=第2回転角度θ2=第3回転角度θ3=90°の状態を経て第1回転角度θ1=第2回転角度θ2=第3回転角度θ3=0°とする往復動作を行わせる。
【0045】
慣性力補償パラメータを推定する際に利用する加速度は、吸着ハンド160自体の重心位置の加速度に設定する。
図9は、第1軸111~第3軸113を往復動作させたときの重心位置のX
E方向の加速度目標値と実加速度の一例を示すグラフ、
図10は、そのZ
E方向の加速度目標値と実加速度の一例を示すグラフである。
図9では、加速度目標値を破線L23で示し、実加速度a
xを実線L13で示す。
図10では、加速度目標値を破線L24で示し、実加速度a
zを実線L14で示す。この例では、実加速度が目標加速度によく追従しているので、加速度として、ノイズが少ない加速度目標値を用いて慣性力補償パラメータm
1x、m
1z、m
1o、m
2x、m
2z、m
2oを推定する。
【0046】
アーム部110先端の作業座標系でのX
E方向及びZ
E方向の力と加速度の関係は、下記(4)式及び(5)式により表すことができる。
図9及び
図10に示す高加減速高速動作時の加速度のデータを下記(4)式及び(5)式に基づいて最小二乗法によりフィッティングすることにより、慣性力補償パラメータを推定することができる。(4)式及び(5)式において、重心位置のX
E方向の加速度を第1加速度a
xとし、重心位置のZ
E方向の加速度を第2加速度a
zとする。
【0047】
fx=m1xax+m1zaz+m1o ・・・(4)
fz=m2xax+m2zaz+m2o ・・・(5)
【0048】
図11及び
図12は、
図9及び
図10に示す高加減速高速動作時の加速度のデータを上記(4)式及び(5)式に基づいてフィッティングした結果を示すグラフである。
図11では、
図9に示す加速度について、フィッティング前の加速度を実線L15で示し、フィッティング後の加速度を破線L25で示す。
図12では、
図10に示す加速度について、フィッティング前の加速度を実線L16で示し、フィッティング後の加速度を破線L26で示す。
図11及び
図12に示す変化が得られた場合には、慣性力補償パラメータm
1x、m
1z、m
1o、m
2x、m
2z、m
2oは、それぞれ以下の数値となる。慣性力補償パラメータm
1x、m
1z、m
1o、m
2x、m
2z、m
2oは、吸着ハンド160を高加減速動作させた場合のアーム部110の重心位置の加速度データに基づいて推定されて決定される。
【0049】
m1x=-2.0595e-01
m1z=-2.2449e+00
m1o=3.6781e+00
m2x=2.3688e+00
m2z=-2.1822e-01
m2o=-3.5314e-01
【0050】
吸着ハンド160の重心位置は、おおよその位置に設定すればよく、厳密な位置に設定しなくてもよい。吸着ハンド160の重心位置にある程度の誤差があったとしても、上記(4)式及び(5)式の枠組みの中で吸収することができる。
以上が、吸着ハンド160が空荷の状態(0[kg]の搬送対象物Pを搬送する状態)での重力補償パラメータ及び慣性力補償パラメータの推定手順である。
【0051】
続いて、推定装置は、吸着ハンド160が搬送する搬送対象物Pの質量が10[kg]になるまで(ステップS211)、何らかの方法で質量が1[kg]加算された搬送対象物Pについて、質量が1[kg]加算された(ステップS213)重力補償パラメータ及び慣性力補償パラメータの推定の処理(ステップS203~S209)を繰り返す。
【0052】
上記の質量の1[kg]加算を繰り返し、搬送対象物Pの質量が10[kg]に達すれば、推定装置は、ステップS205及びステップS209を経て推定した重力補償パラメータ及び慣性力補償パラメータに基づいて、重力補償パラメータテーブル282及び慣性力補償パラメータテーブル284を作成する(ステップS215)。こうして、推定装置は、
図6に示す処理を終了する。
【0053】
以下、ピッキング装置1におけるコントローラ200による衝突検知の一例を示す。
図13は、力センサ150が検出した力に対して、重力補償と慣性力補償を施した際の第1力fxの残差波形の一例を示すグラフ、
図14は、その第2力fzの残差波形の一例を示すグラフである。ここで力センサ150が検出した力は、例えば、5[N]~10[N]程度である。
【0054】
図13及び
図14から分かるように、第1力fx及び第2力fzのいずれにおいても、重力補償及び慣性力補償をした後の力は5[N]~10[N]の範囲に収まっていた。この結果、吸着ハンド160が空荷の際の衝突検知にあたって、重力や慣性力の影響を考慮する必要が無くなるので、衝突閾値286を大きく、例えば重力や慣性力の影響を考慮する場合の1/10程度まで引き下げることができる。
【0055】
例えば、吸着ハンド160と搬送対象物Pの質量が合計で10[kg]である場合の付加を10[m/s2](およそ1[G])で加速すると、およそ100[N]の慣性力が力センサ150により検出される。このため、そのまま衝突検知を行おうとすると、衝突検知のための衝突閾値を大きく設定する必要があり、検知精度の低下を招く恐れがある。さらに、力センサ150には重力もかかる。力センサ150によって検出された検出値から重力及び慣性力を除去して衝突検知を行うためにカルマンフィルタに基づく方法が提案されているが、演算量が多くなる上に未知質量の搬送対象物Pを把持した場合に、カルマンフィルタの過渡的な性能の頑健性が問題になる。この点、上記の実施形態では、予め定められた重力補償パラメータ及び慣性力補償パラメータを用いた演算処理を利用して衝突検知を行う。このため、吸着ハンド160が搬送対象物Pを搬送している場合にも同様に、衝突閾値286を引き下げることができ、検知精度の低下を抑制できる。さらに、コントローラ200に組込むCPUでリアルタイムに演算できる程度に簡易かつ頑健に衝突検知を行うことができる。
【0056】
ピッキング装置1は、吸着ハンド160が搬送対象物Pを把持している搬送している状態では、吸着ハンド160が搬送対象物Pを把持した瞬間の前後における力センサ150の検出結果に応じた力の差分に基づいて、搬送対象物Pの質量を算出することができる。このため、ピッキング装置1は、重力補償パラメータテーブル282及び慣性力補償パラメータテーブル284を参照して搬送対象物Pの質量に応じた重力補償パラメータ及び慣性力補償パラメータを選択する。重力補償パラメータテーブル282及び慣性力補償パラメータテーブル284は、それぞれ0[kg]~10[kg]までの1[kg]刻みの質量について、予め、それぞれ6個のセットを11通り作成された重力補償パラメータと慣性力補償パラメータを含む。このため、搬送対象物Pの質量が予め求められていない場合でも、ピッキングロボット100の衝突を簡易に検知できる。1[kg]刻みの搬送対象物Pを把持する際の慣性力補償パラメータでは、加速度が作用する重心位置が変化することもあるが、質量の刻みと(4)式及び(5)式の枠組みの中で、これらの変化を吸収することができる。
【0057】
上記の実施形態では、重力補償パラメータ及び慣性力補償パラメータを1[kg]ごとに推定して重力補償パラメータテーブル282及び慣性力補償パラメータテーブル284を作成したが、重力補償パラメータ及び慣性力補償パラメータを推定する単位を0.1[kg]ごと、0.5[kg]ごとなど細かく刻んでもよいし、2[kg]ごとなど大きくしてもよい。重力補償パラメータ及び慣性力補償パラメータを推定する質量の単位は、一定間隔でなくてもよいし、重力補償パラメータと慣性力補償パラメータで異なっていてもよい。重力補償パラメータ及び慣性力補償パラメータは、搬送対象物Pの質量等に応じて、ユーザが任意に決定できるようにしてもよい。上記の実施形態では、重力補償パラメータテーブル282及び慣性力補償パラメータテーブル284を参照して重力補償パラメータ及び慣性力補償パラメータを決定するが、予め重力補償パラメータ及び慣性力補償パラメータを規定した演算式を搬送対象物Pに質量に応じて決定しておいてもよい。実施形態では、制御部の一例である算出部220、減算部230、衝突検知部240、及び動作制御部250は、ピッキングロボット100と別体のコントローラ200に設けられるが、制御部は、ピッキングロボット100に設けられてもよい。
【0058】
以上説明した少なくともひとつの実施形態によれば、物体をピッキングして把持する把持部と、前記把持部を移動させて前記把持部に搬送対象物を搬送させるアーム部と、前記アーム部に取り付けられ、前記把持部にかかる力を検出する検出部と、前記把持部及び前記アーム部の動作を制御する制御部と、を備え、前記制御部は、前記搬送対象物の質量に応じて定められた係数を含む演算式を用いて、前記把持部が搬送対象物を把持して移動させる際に前記把持部にかかる重力及び慣性力を算出する算出部と、前記検出部が検出した前記把持部にかかる力から前記算出部が算出した前記質量及び前記慣性力を減算する減算部と、を備える、ピッキング装置であるので、搬送対象物の搬送中に発生する衝突を簡易に検知することができる。
【0059】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【0060】
1…ピッキング装置、100…ピッキングロボット、110…アーム部、111…第1軸、112…第2軸、113…第3軸、114…第4軸、115…第5軸、116…第6軸、121…第1アーム、122…第2アーム、123…第3アーム、124…手首部、150…力センサ、160…吸着ハンド、200…コントローラ、210…通信部、220…算出部、222…取得部、224…重力補償部、226…慣性力補償部、230…減算部、240…衝突検知部、250…動作制御部、280…記憶部、282…重力補償パラメータテーブル、284…慣性力補償パラメータテーブル、286…衝突閾値、300…インターフェース