本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
§1 適用例
図1を参照して、本発明が適用される場面の一例について説明する。図1は、実施の形態に係る搬送システムの全体構成を示す概略図である。図1に例示される搬送システム5は、生産現場に適用される。搬送システム5は、搬送ロボット1と上位システム4とを備える。搬送ロボット1と上位システム4とは、無線通信を用いて、データを互いに送受信する。
上位システム4は、搬送ロボット1に対して、指定場所2に置かれた物体3を回収する指示(回収指示)と、回収された物体3を別の指定場所に配布する指示(配布指示)とを行なう。
搬送ロボット1は、上位システム4から受けた回収指示および配布指示に従って、指定場所2に置かれた物体3を回収することおよび指定場所2に物体3を重ねて配布することの少なくとも一方である対象動作を実行する。物体3は、作業者によって指定場所2に置かれる。そのため、物体3の位置姿勢は一定ではない。物体3は、生産現場において使用され、生産対象となる物、部品、部品等の対象物を収容するコンテナなどを含む。図1に示す物体3は、平面視矩形状のコンテナであり、積み上げ可能である。
図1に示されるように、搬送ロボット1は、自律走行ロボット100と、上物装置200と、1以上の制御装置300と、を備える。
自律走行ロボット100は、規定方向に沿って進行および後退する。規定方向は、図中Y軸の正方向である。なお、X軸は、Y軸を含む水平面に含まれ、かつ、Y軸に直交する。Z軸は、鉛直方向に沿う。さらに、自律走行ロボット100は、方向転換を行なうことが可能である。方向転換が行なわれることにより、進行方向(すなわちY軸の正方向)が変更される。
上物装置200は、自律走行ロボット100上に搭載される。上物装置200は、把持部210と、測距センサ220と、回動機構230と、平行リンク機構240と、昇降機構250と、荷台260と、を含む。
把持部210は、物体3を把持する。把持部210は、例えば2指ハンドであり、2つの指部を備える。把持部210は、2つの指部の間隔を変更することにより、物体3を把持する。
測距センサ220は、光、超音波、電波を出力し、その反射信号に基づいて、周囲に存在する物体との距離を測定する。以下、光を用いて物体との距離を測定する測距センサ220を例にとり説明する。測距センサ220は、光を照射するポイント(以下、「光照射ポイント」と称する。)を有し、光照射ポイントと、物体によって光が反射されたポイントとの間の距離を計測する。
測距センサ220は、光の進行方向が水平面に平行となるように、把持部210に取り付けられる。そのため、測距センサ220と把持部210との相対位置関係は一定である。
平行リンク機構240は、把持部210を支持し、把持部210が有する2つの指部が水平面に平行である状態を維持しながら、把持部210を並進移動させる。
昇降機構250は、平行リンク機構240を支持し、平行リンク機構240、把持部210および測距センサ220を昇降させる。
回動機構230は、昇降機構250を支持し、回転軸231を中心に昇降機構250を回転させる。昇降機構250が回転することにより、平行リンク機構240、把持部210および測距センサ220は回動する。すなわち、回動機構230は、回転軸231を中心に把持部210、測距センサ220および平行リンク機構240を回動させる。
平行リンク機構240、昇降機構250および回動機構230の各々は、1以上の駆動軸を有し、駆動軸が操作されることにより、作動する。
荷台260には、把持部210によって物体3が置かれる。これにより、搬送ロボット1は、指定場所2から回収した物体3が荷台260に置かれた状態で別の指定場所に移動できる。
1以上の制御装置300は、自律走行ロボット100および上物装置200(回動機構230を含む)を制御する。1以上の制御装置300は、以下の第1~第4のステップを実行する。
第1のステップは、指定場所2に対応する目標位置姿勢に移動するように自律走行ロボット100を制御するステップである。これにより、自律走行ロボット100は、目標位置姿勢に移動する。目標位置姿勢は、指定場所2において理想的な位置姿勢に置かれた物体3を把持部210が把持することが可能な位置であり、予め定められる。しかしながら、作業者によって置かれた物体3の位置姿勢は、理想的な位置姿勢からずれる可能性がある。そのため、1以上の制御装置300は、第2~第4のステップを実行する。
第2のステップは、自律走行ロボット100が目標位置姿勢に移動したことに応じて、回動機構230を制御して測距センサ220を回動させるステップである。回動角度による測距センサ220の計測距離の変化は、物体3の位置姿勢に依存する。そのため、第3のステップが実行される。
第3のステップは、回動角度による測距センサ220の計測距離の変化と物体3の形状とに基づいて、物体3の位置姿勢を検出するステップである。1以上の制御装置300は、予め物体3の形状に関する情報を記憶しており、当該情報と上記の波形とに基づいて、物体3の位置姿勢を検出する。次に、第4のステップが実行される。
第4のステップは、物体3の位置姿勢の検出結果に応じて、把持部210が物体3を把持可能なように自律走行ロボット100の位置を調整するステップである。これにより、把持部210は、物体3を把持することができる。その結果、物体3の搬送に失敗する頻度を抑制することができる。
§2 具体例
<物体の例>
図2は、搬送の対象となる物体の一例を示す斜視図である。図2に示されるように、物体3は、例えば、平面視矩形の箱状であり、底板を含む基部3aと、基部3aの上に設けられる胴部3bと、胴部3bの上端に設けられる鍔部3cと、を有する。
基部3aの側壁は、基部3aの上端のサイズが底板のサイズよりも大きくなるように、底板に対して傾斜している。胴部3bの側壁は、底板に対して垂直である。そのため、物体3の上に別の物体3を積み上げたとき、上側の物体3の基部3aは、下側の物体3の胴部3bおよび基部3aの内部空間に挿入される。
物体3の高さは、Hである。また、胴部3bの縦幅および横幅はそれぞれLおよびWである。
胴部3bは、平面視矩形であり、4つの側面を有する。表裏関係にある一対の側面3b1の面積は、互いに同一である。同様に、表裏関係にある一対の側面3b2の面積は、互いに同一である。側面3b1の面積は、側面3b2の面積よりも大きい。すなわち、側面3b1の幅は縦幅Lであり、側面3b2の幅は横幅Wである。
図1に示す1以上の制御装置300の少なくとも1つは、物体3の形状を示す形状データを予め記憶している。形状データは、少なくとも、物体3の高さH、胴部3bの縦幅Lおよび胴部3bの横幅Wを示す。
把持部210は、胴部3bを把持する。これにより、鍔部3cが把持部210に引っかかり、物体3が把持部210から落下することを防止できる。
なお、把持部210は、2つの指部が一対の側面3b2に接触して物体3を把持するように設計されている。
<搬送ロボットのハードウェア構成>
図3は、図1に示す搬送ロボットのハードウェア構成の一例を示す模式図である。図3に示されるように、搬送ロボット1は、1以上の制御装置300(図1参照)として、統合制御装置310と上物制御装置320とを備える。
自律走行ロボット100は、通信ユニット110と、走行コントローラ120と、駆動部130と、位置姿勢センサ140と、車輪150~152と、を有する。通信ユニット110は、統合制御装置310との間のデータの送受信を行なう。
走行コントローラ120は、統合制御装置310からの走行指示に従って、駆動部130を制御する。走行指示は、自律走行ロボット100の位置または速度に関する目標値を含む。走行コントローラ120は、走行指示に含まれる目標値に応じた操作量を計算し、計算した操作量を駆動部130に出力する。
走行コントローラ120は、典型的には、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラム(命令コード)を実行することで、本実施の形態に係る処理を実行する。なお、プログラムの実行により提供される機能の一部もしくは全部を、ASICなどの専用のハードウェア回路として実装してもよい。
駆動部130は、走行コントローラ120からの操作量に応じて、車輪150を駆動するとともに、車輪151,152の向きを変更する。車輪150が駆動されることにより、自律走行ロボット100は、Y軸に沿って進行または後退する。車輪151,152の向きが変更されることにより、自律走行ロボット100の進行方向(Y軸の方向)が転換される。
位置姿勢センサ140は、公知の技術を用いて、自律走行ロボット100の位置姿勢を計測する。例えば、位置姿勢センサ140には、GPS、ビーコン測位手法、方位センサなどが適用され得る。位置姿勢センサ140によって計測された位置姿勢を示すデータは、走行コントローラ120に送られる。
上物装置200は、把持部210、測距センサ220、平行リンク機構240、昇降機構250、回動機構230、および荷台260に加えて、センサ270を含む。
センサ270は、把持部210がホームポジションであるか否かを判断するために利用される。把持部210のホームポジションは、平面視において、把持部210が自律走行ロボット100からはみ出さず、かつ、把持部210の先端が荷台260に対向する位置である。
センサ270は、発光部271と受光部272とを有する。把持部210の先端が荷台260に対向しているときに発光部271から発せられた光が受光部272に入射するように、発光部271および受光部272は、把持部210の先端および荷台260にそれぞれ取り付けられる。センサ270は、受光部272の受光量が閾値を超えることに応じてオン信号を出力し、受光部272の受光量が閾値以下であることに応じてオフ信号を出力する。そのため、センサ270からオン信号が出力されているとき、把持部210がホームポジションに位置している。
荷台260は、物体3が置かれる板261と、板261の上方に配置される支持部材266と、支持部材266の下面に取り付けられ、支持部材266の下方に存在する物体までの距離を計測する測距センサ262と、を含む。上記の受光部272は、支持部材266に取り付けられる。測距センサ262の計測結果は、板261上に置かれた物体3の個数を計算するために利用される。
統合制御装置310は、自律走行ロボット100の動作と上物装置200の動作とを連係させるための制御を実行する。上物制御装置320は、上物装置200の動作を制御する。
統合制御装置310および上物制御装置320の各々は、典型的には、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラム(命令コード)を実行することで、本実施の形態に係る処理を実行する。このようなプログラムは、典型的には、各種記録媒体などに格納された状態で流通し、あるいは、ネットワークなどを介して統合制御装置310および上物制御装置320の各々にインストールされる。
このような汎用的なコンピュータを利用する場合には、本実施の形態に係る処理を実行するためのアプリケーションに加えて、コンピュータの基本的な処理を実行するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行されてもよい。本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
さらに、本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。なお、プログラムの実行により提供される機能の一部もしくは全部を、ASICなどの専用のハードウェア回路として実装してもよい。
図3に示されるように、統合制御装置310は、通信ユニット311と、プロセッサ312と、記憶装置313と、を有する。
通信ユニット311は、上位システム4、自律走行ロボット100および上物制御装置320との間のデータ伝送を仲介する。通信ユニット311は、無線LAN(Local Area Network)を用いて上位システム4との間のデータ伝送を行ない、図示しないローカルバスを用いて、自律走行ロボット100および上物制御装置320との間のデータ伝送を行なう。
記憶装置313は、例えばハードディスク、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリなどの半導体記憶装置等によって構成され、プログラム群314とプログラム群314の実行に関連する各種のデータとを記憶する。プロセッサ312は、記憶装置313が記憶するプログラム群314を実行する。
図3に示されるように、上物制御装置320は、通信ユニット321と、プロセッサ322と、記憶装置323と、を有する。
通信ユニット321は、統合制御装置310との間のデータ伝送を仲介する。通信ユニット321は、図示しないローカルバスを用いて、統合制御装置310との間のデータ伝送を行なう。
記憶装置323は、例えばハードディスク、RAM、ROM、フラッシュメモリなどの半導体記憶装置等によって構成され、プログラム群324とプログラム群324の実行に関連する各種のデータとを記憶する。プロセッサ322は、記憶装置323が記憶するプログラム群324を実行する。
<搬送ロボットの機能構成>
図4は、搬送ロボットが備える走行コントローラ、統合制御装置および上物制御装置の機能構成を示す模式図である。図4において、破線矢印は、安全に関する制御のためのデータまたは信号の流れを示す。実線矢印は、自律走行ロボット100および上物装置200の動作に関する制御のためのデータまたは信号の流れを示す。
走行コントローラ120は、走行許可受付部121と、走行制御部122と、状態出力部123と、を含む。
走行許可受付部121は、統合制御装置310から走行許可信号を受け付ける。走行許可信号がオン状態である場合、走行許可受付部121は、走行制御部122による制御を許可する。走行許可信号がオフ状態である場合、走行許可受付部121は、走行制御部122による制御を禁止する。
走行制御部122は、統合制御装置310から受けた走行指示に従って、駆動部130(図3参照)に出力する操作量を計算する。走行指示は、目標位置姿勢へ移動するための指示である。走行制御部122は、位置姿勢センサ140(図3参照)によって計測された現在位置姿勢が目標位置姿勢に到達したことに応じて、駆動部130の動作を停止させるとともに、目標位置姿勢への到着を統合制御装置310に報告する。
状態出力部123は、自律走行ロボット100の状態を示す信号を統合制御装置310に出力する。自律走行ロボット100の状態を示す信号は、自律走行ロボット100が走行中および停止中のいずれかを示す。例えば、状態出力部123は、走行制御部122から駆動部130に出力される操作量を監視することにより、自律走行ロボット100の状態を示す信号を生成する。あるいは、状態出力部123は、車輪150の回転速度を監視することにより、自律走行ロボット100の状態を示す信号を生成してもよい。
統合制御装置310は、位置確認部331と、動作遷移管理部332と、搬送指示処理部333と、を含む。
位置確認部331は、荷台260と把持部210との相対位置関係が基準関係であるか否かを確認し、確認結果を示す信号を動作遷移管理部332に出力する。基準状態は、把持部210が荷台260に対向する状態、すなわち把持部210がホームポジションに位置している状態である。そのため、位置確認部331は、センサ270からの信号がオン状態であるときに、把持部210の位置がホームポジションであることを示す信号を出力し、センサ270からの信号がオフ状態であるときに把持部210の位置がホームポジションではないことを示す信号を出力する。
動作遷移管理部332は、自律走行ロボット100および上物装置200の動作の遷移を管理する。
動作遷移管理部332は、状態出力部123からの信号に応じて、移載許可信号を上物制御装置320に出力する。自律走行ロボット100が走行中であるときに上物装置200が動作すると、把持部210、平行リンク機構240などが周囲の物(人を含む)に衝突する可能性がある。そのため、動作遷移管理部332は、状態出力部123からの信号が走行中を示すことに応じて、オフ状態の動作許可信号を出力する。動作遷移管理部332は、状態出力部123からの信号が停止中を示すことに応じて、オン状態の移載許可信号を出力する。
動作遷移管理部332は、位置確認部331からの信号に応じて、走行許可信号を自律走行ロボット100に出力する。把持部210がホームポジションでないときに自律走行ロボット100が走行すると、把持部210、平行リンク機構240などが周囲の物(人を含む)に衝突する可能性がある。そのため、動作遷移管理部332は、位置確認部331からの信号に応じて、把持部210の位置がホームポジションであるときにオン状態の走行許可信号を出力し、把持部210の位置がホームポジションでないときにオフ状態の走行許可信号を出力する。このように、動作遷移管理部332は、センサ270によって把持部210がホームポジションに位置していることが検出されたことに応じて、自律走行ロボット100の走行を許可する。
搬送指示処理部333は、上位システム4からの搬送指示に応じた処理を実行する。搬送指示には、指定場所2から物体3を指定個数だけ回収する回収指示と、別の指定場所に物体3を指定個数だけ配布する配布指示とが含まれる。
搬送指示処理部333は、回収指示を受けると、自律走行ロボット100の位置姿勢センサ140によって計測される現在位置姿勢から目標位置姿勢まで移動するための走行指示を生成し、生成した走行指示を自律走行ロボット100に出力する。目標位置姿勢は、指定場所に応じて予め定められる。
搬送指示処理部333は、自律走行ロボット100が目標位置姿勢に到達したことに応じて、回収動作の開始指示を上物制御装置320に出力する。回収動作には、回収準備動作と回収本動作とが含まれる。
搬送指示処理部333は、回収準備動作の間、上物制御装置320から受けたデータ(後述する調整量を示すデータ)に基づいて、位置調整指示を自律走行ロボット100に出力する。位置調整指示は、走行指示の一態様である。
搬送指示処理部333は、回収準備動作が失敗した場合、回収準備動作が失敗であることを示す第1結果データを上物制御装置320から受ける。搬送指示処理部333は、第1結果データを受けると、回収不能であることを示す通知を上位システム4に出力する。
搬送指示処理部333は、回収準備動作が成功した場合、回収準備動作の後に実行される回収本動作の結果を示す第2結果データを上物制御装置320から受け、第2結果データに基づいて、回収動作の結果を上位システム4に転送する。
搬送指示処理部333は、配布指示を受けると、自律走行ロボット100の位置姿勢センサ140によって計測される現在位置姿勢から目標位置姿勢まで移動するための走行指示を生成し、生成した走行指示を自律走行ロボット100に出力する。目標位置姿勢は、指定場所に応じて予め定められる。
搬送指示処理部333は、自律走行ロボット100が目標位置姿勢に到達したことに応じて、配布動作の開始指示を上物制御装置320に出力する。配布動作には、配布準備動作と配布本動作とが含まれる。
搬送指示処理部333は、配布準備動作の間、上物制御装置320から受けたデータ(後述する調整量を示すデータ)に基づいて、位置調整指示を自律走行ロボット100に出力する。位置調整指示は、走行指示の一態様である。
搬送指示処理部333は、配布準備動作が失敗した場合、配布準備動作が失敗であることを示す第3結果データを上物制御装置320から受ける。搬送指示処理部333は、第3結果データを受けると、配布不能であることを示す通知を上位システム4に出力する。
搬送指示処理部333は、配布準備動作が成功した場合、配布準備動作の後に実行される配布本動作の結果を示す第4結果データを上物制御装置320から受け、第4結果データに基づいて、配布動作の結果を上位システム4に転送する。
上物制御装置320は、アクセスルールデータベース340と、在荷確認部341と、情報取得部342と、移載許可受付部343と、上物動作制御部344と、軸コントローラ345と、を含む。
アクセスルールデータベース340は、回収動作または配布動作に関するルールを示すデータの集合である。アクセスルールデータベース340は、物体3の形状データ、回収動作手順データ、配布動作手順データ、荷台260に現在置かれている物体3の個数(以下、「在荷数」と称する。)を示すデータ(「以下、「在荷数データ」と称する。)、測距センサ220の位置を定義するためのパラメータの値を示すデータなどを含む。
準備動作手順データは、回収準備動作および配布準備動作を行なうための、上物装置200が有する各駆動軸の駆動手順を示す。
回収動作手順データは、物体3の回収本動作を行なうための、上物装置200が有する各駆動軸の駆動手順を示す。上述したように、物体3は積み重ねられる。把持部210は、複数の物体3が積み重ねられている場合であっても、上から順に1つずつ物体3を把持する。そのため、積み上げられた3つの物体3のうちの一番上の物体3を把持するときと、積み上げられた2つの物体3のうちの一番上の物体3を把持するときとでは、上物装置200が有する各駆動軸の駆動手順が異なる。そのため、アクセスルールデータベース340は、指定場所における物体3の積み上げ個数と荷台260における在荷数との組み合わせごとの回収動作手順データを含む。
配布動作手順データは、物体3の配布本動作を行なうための、上物装置200が有する各駆動軸の駆動手順を示す。アクセスルールデータベース340は、指定場所における物体3の積み上げ個数と荷台260における在荷数との組み合わせごとの配布動作手順データを含む。
在荷確認部341は、測距センサ262の計測距離に基づいて在荷数を確認する。在荷確認部341は、確認結果に基づいて、アクセスルールデータベース340に含まれる在荷数データを更新する。
情報取得部342は、上物装置200に含まれる各駆動軸の状態および測距センサ220の計測距離を示す情報を周期的に取得する。情報取得部342は、取得した情報を上物動作制御部344に出力する。
移載許可受付部343は、統合制御装置310から移載許可信号を受け付ける。移載許可信号がオン状態である場合、移載許可受付部343は、上物動作制御部344による制御を許可する。移載許可信号がオフ状態である場合、移載許可受付部343は、上物動作制御部344による制御を禁止する。
上物動作制御部344は、統合制御装置310から受ける動作の開始指示に応じて、上物装置200の各駆動軸の目標値を決定し、決定した目標値を軸コントローラ345に出力する。統合制御装置310から受ける動作の開始指示には、回収動作の開始指示および配布動作の開始指示が含まれる。
上物動作制御部344は、回収動作の開始指示を受けたことに応じて、回収準備動作を実行する。上物動作制御部344は、回収準備動作が成功した場合、回収本動作を実行する。
上物動作制御部344は、準備動作手順データに基づいて、回収準備動作を行なうための各駆動軸の目標値を決定し、決定した目標値を軸コントローラ345に出力する。その結果、情報取得部342は、回収準備動作に関する情報を取得し、取得した情報を上物動作制御部344に出力する。上物動作制御部344は、当該情報に基づいて、回収準備動作が成功したか否かを判断する。上物動作制御部344は、回収準備動作が失敗した場合、回収準備動作が失敗したことを示す第1結果データを生成し、生成した第1結果データを統合制御装置310に出力する。
また、上物動作制御部344は、回収準備動作に関する情報に基づいて、指定場所に置かれた物体3を把持するための、自律走行ロボット100の位置および把持部210の姿勢の各々の調整量を決定する。上物動作制御部344は、決定した調整量を示すデータを統合制御装置310に出力する。
さらに、上物動作制御部344は、回収準備動作に関する情報に基づいて、指定場所2に置かれた物体の積み上げ個数を計算する。
上物動作制御部344は、回収準備動作が成功したことに応じて、回収本動作を行なうための各駆動軸の目標値を決定する。具体的には、上物動作制御部344は、指定場所2に置かれた物体の積み上げ個数と在荷数とに基づいて、アクセスルールデータベース340の中から適切な回収動作手順データを読み出し、読み出した回収動作手順データに基づいて、各駆動軸の目標値を決定する。上物動作制御部344は、決定した目標値を軸コントローラ345に出力する。
回収動作の開始指示には、指定個数を示すデータが付加されている。そのため、上物動作制御部344は、指定個数分だけ回収本動作を繰り返す。ただし、指定場所2に置かれた物体3の積み上げ個数および在荷数に応じて、指定個数の物体3の回収ができない可能性がある。その場合、上物動作制御部344は、回収可能な個数分だけ回収本動作を繰り返す。
上物動作制御部344は、回収動作の結果を示す第2結果データを生成し、生成した第2結果データを統合制御装置310に出力する。第2結果データは、指定個数のうち回収できた個数を示す。
上物動作制御部344は、配布動作の開始指示を受けたことに応じて、配布準備動作を実行する。上物動作制御部344は、配布準備動作が成功した場合、配布本動作を実行する。
上物動作制御部344は、準備動作手順データに基づいて、配布準備動作を行なうための各駆動軸の目標値を決定し、決定した目標値を軸コントローラ345に出力する。その結果、情報取得部342は、配布準備動作に関する情報を取得し、取得した情報を上物動作制御部344に出力する。上物動作制御部344は、当該情報に基づいて、配布準備動作が成功したか否かを判断する。上物動作制御部344は、配布準備動作が失敗した場合、配布準備動作が失敗したことを示す第3結果データを生成し、生成した第3結果データを統合制御装置310に出力する。
また、上物動作制御部344は、配布準備動作に関する情報に基づいて、指定場所に既に置かれている物体3の上に物体3を積み上げるための、自律走行ロボット100の位置および把持部210の姿勢の各々の調整量を決定する。上物動作制御部344は、決定した調整量を示すデータを統合制御装置310に出力する。
さらに、上物動作制御部344は、配布準備動作に関する情報に基づいて、指定場所2に既に置かれている物体3の積み上げ個数を計算する。
上物動作制御部344は、配布準備動作が成功したことに応じて、配布本動作を行なうための各駆動軸の目標値を決定する。具体的には、上物動作制御部344は、指定場所2に既に置かれている物体3の積み上げ個数と在荷数とに基づいて、アクセスルールデータベース340の中から適切な配布動作手順データを読み出し、読み出した配布動作手順データに基づいて、各駆動軸の目標値を決定する。上物動作制御部344は、決定した目標値を軸コントローラ345に出力する。
配布動作の開始指示には、指定個数を示すデータが付加されている。そのため、上物動作制御部344は、指定個数分だけ配布本動作を繰り返す。ただし、指定場所2に置かれた物体の積み上げ個数および在荷数に応じて、指定個数の物体3の配布ができない可能性がある。その場合、上物動作制御部344は、配布可能な個数分だけ配布本動作を繰り返す。
上物動作制御部344は、配布動作の結果を示す第4結果データを生成し、生成した第4結果データを統合制御装置310に出力する。第4結果データは、指定個数のうち配布できた個数を示す。
軸コントローラ345は、上物装置200に含まれる各駆動軸の制御量が上物動作制御部344から受けた目標値と一致するように、各駆動軸の操作量を決定し、決定した操作量を上物装置200に出力する。
<動作遷移>
図5は、搬送ロボットにおける状態の遷移を示す図である。搬送ロボット1における動作には、走行動作と移載動作(回収動作および配布動作)とが含まれる。図5において、状態10は、走行動作および移載動作のいずれも実施されていない状態である。状態11は、走行動作が実施され、移載動作が実施されていない状態である。状態12は、移載動作が実施され、走行動作が実施されていない状態である。図5に示されるように、搬送ロボット1が取り得る状態は、状態10,11,12に限定される。言い換えると、搬送ロボット1において、走行動作と移載動作とが同時に実施されることはない。すなわち、自律走行ロボット100が走行しながら、上物装置200が動くことはない。その結果、上物装置200が周の物(人を含む)と衝突する事態が回避される。
状態10では、自律走行ロボット100が停止中であり、かつ、把持部210がホームポジションに位置している。状態10において、統合制御装置310は、走行動作および移載動作のいずれかの開始指示を出力できる。
状態10において走行指示が出力されると、自律走行ロボット100は、走行を開始する。その結果、搬送ロボット1の状態は、状態11に遷移する。
状態11において、自律走行ロボット100が指定場所に到着し停止すると、搬送ロボット1の状態は、状態10に遷移する。
状態10において移載動作の開始指示が出力されると、上物制御装置320は、上物装置200の動作を開始する。その結果、搬送ロボット1の状態は、状態12に遷移する。
状態12において、移載動作が完了し、把持部210がホームポジションに戻ると、搬送ロボット1の状態は、状態10に遷移する。
<回収指示を受けたときの処理の流れ>
図6は、搬送ロボットが回収指示を受けたときの処理の流れの一例を示すフローチャートである。
まず、統合制御装置310のプロセッサ312は、上位システム4からの回収指示を受け付ける(ステップS1)。回収指示には、指定場所2を示すデータと、回収個数「A個」を示すデータとが付加される。
次に、プロセッサ312は、自律走行ロボット100に対して、指定場所2に応じて定められる目標位置姿勢への走行動作の開始指示を出力する(ステップS2)。
自律走行ロボット100の走行コントローラ120は、走行許可信号がオン状態であるか否かを判断する(ステップS3)。走行許可信号がオフ状態である場合(ステップS3でNO)、走行コントローラ120は、処理をステップS3に戻す。
走行許可信号がオン状態である場合(ステップS3でYES)、走行コントローラ120は、駆動部130を制御して、目標位置姿勢への移動を開始する(ステップS4)。
走行コントローラ120は、目標位置姿勢に到達したことに応じて、目標位置姿勢への到着を統合制御装置310に報告する(ステップS5)。
次に、プロセッサ312は、回収動作の開始指示を上物制御装置320に出力する(ステップS6)。回収動作の開始指示には、回収個数「A個」を示すデータが付加される。
次に、回収動作の開始指示を受けた上物制御装置320のプロセッサ322は、移載許可信号がオン状態であるか否かを判断する(ステップS7)。移載許可信号がオフ状態である場合(ステップS7でNO)、プロセッサ322は、処理をステップS7に戻す。
移載許可信号がオン状態である場合(ステップS7でYES)、プロセッサ322は、回収準備動作のための制御を実行する(ステップS8)。回収準備動作の詳細については後述する。
次に、プロセッサ322は、回収準備動作が成功したか否かを判断する(ステップS9)。プロセッサ322は、失敗フラグを確認することにより、回収準備動作が成功したか否かを判断すればよい。すなわち、プロセッサ322は、失敗フラグがオン状態であるときに、回収準備動作が失敗したと判断する。
回収準備動作が失敗した場合(ステップS9でNO)、プロセッサ312は、回収準備動作が失敗したことを示す第1結果データを生成し、生成した第1結果データを統合制御装置310に出力する。これにより、統合制御装置310のプロセッサ312は、回収不能を上位システム4に通知する(ステップS14)。
回収準備動作が成功した場合(ステップS9でYES)、プロセッサ312は、回収本動作の制御を実行する(ステップS10)。
プロセッサ312は、回収本動作が完了すると、把持部210をホームポジションに戻すための制御を実行する(ステップS11)。具体的には、プロセッサ312は、把持部210をホームポジションに戻すための各駆動軸の操作量を計算し、計算した操作量を上物装置200に出力する。これにより、把持部210は、ホームポジションに戻る。
次に、プロセッサ312は、回収動作の完了を統合制御装置310に報告する(ステップS12)。具体的には、プロセッサ312は、回収本動作の結果を示す第2結果データを生成し、生成した第2結果データを統合制御装置310に出力する。
次に、統合制御装置310のプロセッサ312は、回収結果を上位システム4に通知する(ステップS13)。例えば、第2結果データが回収個数を示す場合、プロセッサ312は、第2結果データを上位システム4に転送すればよい。
<回収準備動作>
図7~図28を参照して、回収準備動作の詳細について説明する。図7は、図6に示すステップS8のサブルーチンに含まれるステップS21~S28の流れを示すフローチャートである。
まず、上物制御装置320のプロセッサ322は、上物装置200が探索基準状態となるように、上物装置200を制御する(ステップS21)。探索基準状態は、アクセスルールデータベース340に含まれる準備動作手順データによって定義される。
図8は、探索基準状態である上物装置の一部とその周囲とを示す平面図である。図9は、探索基準状態である上物装置の一部とその周囲とを示す側面図である。ステップS21は、図6に示すステップS5の後に実行される。そのため、自律走行ロボット100は、指定場所2に応じて定められる目標位置姿勢に到達している。従って、図8および図9には、目標位置姿勢の自律走行ロボット100に搭載される上物装置200が示される。
図8および図9において、指定場所2の予め定められた位置(理想位置)に予め定められた姿勢(理想姿勢)で置かれた物体3が示される。なお、図8において、物体3の鍔部3cの図示は省略されている。
上物装置200の平行リンク機構240は、把持部210が回動機構230の回転軸231に最も近くなる第1状態と、把持部210が回転軸231から最も遠くなる第2状態との間を取りうる。上物装置200が探索基準状態であるとき、平行リンク機構240は第1状態である。
図8および図9に示されるように、目標位置姿勢および探索基準状態は、以下の条件A~Fを満たすように、指定場所ごとに予め定められる。なお、X軸は、Y軸に直交し、かつ、回動機構230の回転軸231に直交する。すなわち、XY平面の原点は、回転軸231上に存在する。
・条件A:自律走行ロボット100の進行方向(Y軸に沿った方向)は、指定場所の理想位置に理想姿勢で置かれた物体3の胴部3bの側面3b1に平行である。
・条件B:探索基準状態である平行リンク機構240は、X軸に沿って把持部210を並進移動させる。
・条件C:指定場所の理想位置に理想姿勢で置かれた物体3の胴部3bの中心Pwは、X軸と回転軸231とを含む平面に含まれる。
・条件D:把持部210の2つの指部の開き方向は、Y軸に沿っている。
・条件E:探索基準状態である上物装置200の平行リンク機構240を第2状態に変化させたときに、理想位置に理想姿勢で置かれた物体3を把持部210が把持可能である。
・条件F:測距センサ220から出力される光の軸の高さは、理想位置に理想姿勢で置かれた物体3の胴部3bの高さ範囲に含まれる。
測距センサ220は、把持部210の任意の場所に取り付けられる。図8には、把持部210に取り付けられた測距センサ220の光照射ポイントの例として、ポイントE1~E3が示される。ポイントE1~E3から照射される光の進行方向F1~F3は、平行リンク機構240による把持部210の並進移動の方向に平行である。上物装置200が探索基準状態である場合、光の進行方向F1~F3は、X軸に平行である。探索基準状態である上物装置200において、ポイントE3は、X軸上に位置している。すなわち、探索基準状態である上物装置200において、ポイントE3の座標は、(r3,0)で表される。なお、r3>0である。一方、探索基準状態である上物装置200において、ポイントE1,E2は、X軸上に位置しない。すなわち、探索基準状態である上物装置200において、ポイントE1,E2の座標は、(r1,a1),(r2,a2)でそれぞれ表される。なお、r1>0、r2>0、a1<0、a2>0である。
図7に戻って、次にプロセッサ322は、測距センサ220をオン状態にする(ステップS22)。
次に、プロセッサ322は、探索基準状態を基準姿勢とし、基準姿勢からの回動角度θが-ΨからΨとなるように測距センサ220を回動させる。なお、探索基準状態では、X軸と測距センサ220から照射される光の進行方向とのなす角度は0である。そのため、回動角度θは、X軸と測距センサ220から照射される光の進行方向とのなす角度と同一である。なお、回動角度θは、上からみたときに、基準姿勢から時計回りの方向に回動しているときにプラスの値をとり、基準状態から反時計回りの方向に回動しているときにマイナスの値をとるものとする。そして、プロセッサ322は、回動角度θによる測距センサ220の計測距離nの変化を示す波形を取得する(ステップS23)。
図10は、ステップS23において取得される波形の一例を示す図である。図10には、光照射ポイントがポイントE3(図8参照)である測距センサ220から得られる波形が示される。図10の上段は、物体3と、回転軸231と、測距センサ220の光照射ポイント(ポイントE3)との位置関係を示し、図10の下段は波形を示す。また、図10において、左列は、物体3が理想位置に理想姿勢で置かれたときの位置関係および波形を示し、中列および右列は、物体3が理想位置とは異なる位置に理想姿勢と異なる姿勢で置かれたときの位置関係および波形を示す。図10に示されるように、物体3の位置姿勢に応じて、波形が異なる。そのため、プロセッサ322は、波形に基づいて、物体3の位置姿勢を特定する。
図7に戻って、次にプロセッサ322は、波形から距離n1~n3を抽出する(ステップS24)。
距離n1~n3の抽出方法について、図10を参酌しながら説明する。測距センサ220から照射された光41の進行方向に物体が存在しない場合、測距センサ220から出力される計測距離nは、計測可能範囲の上限値より大きい値またはエラー値を示す。そのため、プロセッサ322は、波形から計測可能範囲に含まれる計測距離nを示す回動角度θの範囲を特定する。プロセッサ322は、特定した範囲のうち最も回動角度θが小さいときの計測距離nを距離n1として抽出する。プロセッサ322は、特定した範囲のうち最も回動角度θが大きいときの計測距離nを距離n3として抽出する。さらに、プロセッサ322は、最も小さい計測距離nを距離n2として抽出する。
図10の右列に示されるように、物体3の位置姿勢によって、距離n1と距離n2とが同一の場合が有り得る。同様に、物体3の位置姿勢によって、距離n2と距離n3とが同一の場合も有り得る。
図7に戻って、次にプロセッサ322は、距離ni(i=1,2,3)が計測されたときに物体3において光が照射された点(以下、「特徴点Pi」と称する。)の座標(Xi,Yi)を計算する(ステップS25)。
特徴点Piの座標(Xi,Yi)の計算方法について、図10および図11を参照しながら説明する。
上述したように、探索基準状態である上物装置200において、ポイントE3は、X軸上に位置している。また、探索基準状態である上物装置200において、ポイントE3から照射される光の軸は、X軸に平行である。そのため、ポイントE3から照射される光の軸は、ポイントE3と回転軸231とを結ぶ線と重なる。これは、回動機構230を回動させたとしても維持される。また、探索基準状態である上物装置200において、ポイントE3の座標は、(r3,0)で表される。そのため、回動機構230が作動すると、ポイントE3は、回動半径r3で回動する。
従って、光照射ポイントがポイントE3(図8参照)である測距センサ220の場合、図10に示されるように、計測距離nが計測されたときに物体3において光が照射された点Pと回転軸231との距離は、計測結果nとポイントE3の回動半径r3との合計n+r3である。回転軸231は、XY平面の原点である。また、回動角度θは、点Pと回転軸231とを結ぶ線とX軸とのなす角度と同じである。点Pの座標(Xp,Yp)は、以下の式で表される。
Xp=(n+r3)cosθ
Yp=(n+r3)sinθ
ポイントE3の座標(r3,0)は、測距センサ220の位置に応じて予め定められる。ポイントE3の座標(r3,0)を示すデータは、アクセスルールデータベース340に予め含まれる。そのため、プロセッサ322は、当該データによって示される回動半径r3を用いて、計測距離nが計測されたときに物体3において光が照射された点Pの座標(Xp,Yp)を計算できる。
したがって、プロセッサ322は、以下の式に従って、特徴点Piの座標(Xi,Yi)を計算すればよい。θiは、距離niが計測されたときの回動角度である。
Xi=(ni+r3)cos(θi)
Yi=(ni+r3)sin(θi)
図11は、特徴点Piの座標(Xi,Yi)の計算方法を説明する図である。図11には、光照射ポイントがポイントE1(図8参照)である測距センサ220を用いたときの特徴点Piの座標(Xi,Yi)の計算方法が示される。
上述したように、探索基準状態である上物装置200において、ポイントE1の座標は、(r1,a1)で表される。なお、r1>0、a1<0である。そのため、回動機構230が作動すると、ポイントE1は、回動半径R(=(r12+a12)1/2)で回動する。
図11において、仮想線42は、ポイントE1から照射される光41の進行方向に平行であり、かつ、回転軸231と交差する。仮想線42とX軸とのなす角度は、回動角度θと同一である。ポイントE1から仮想線42に下した垂線の長さは|a1|であり、当該垂線の足と回転軸231との距離はr1となる。
従って、光照射ポイントがポイントE1である測距センサ220の場合、図11に示されるように、計測距離nが計測されたときに物体3において光が照射された点Pの座標(Xp,Yp)は、以下の式で表される。
Xp=Rcos(θ+β)+ncosθ
Yp=Rsin(θ+β)+nsinθ
上記の式において、βは、以下の式で表される。
β=tan-1(a1/r1)
ポイントE1の座標(r1,a1)は、測距センサ220の位置に応じて予め定められる。ポイントE1の座標(r1,a1)を示すデータは、アクセスルールデータベース340に予め含まれる。そのため、プロセッサ322は、当該データによって示されるr1,a1を用いて、計測距離nが計測されたときに物体3において光が照射された点Pの座標(Xp,Yp)を計算できる。
したがって、プロセッサ322は、以下の式に従って、特徴点Piの座標(Xi,Yi)を計算すればよい。
Xi=Rcos(θi+β)+(ni)cos(θi)
Yi=Rsin(θi+β)+(ni)sin(θi)
図7に戻って、次にプロセッサ322は、特徴点P1,P2間の長さD1を計算する(ステップS26)。長さD1は、以下の式を用いて計算される。
D1={(X2-X1)2+(Y2-Y1)2}1/2
次にプロセッサ322は、特徴点P2,P3間の長さD2を計算する(ステップS27)。長さD2は、以下の式を用いて計算される。
D2={(X3-X2)2+(Y3-Y2)2}1/2
次にプロセッサ322は、特徴点P1,P3間の長さD3を計算する(ステップS28)。長さD3は、以下の式を用いて計算される。
D3={(X3-X1)2+(Y3-Y1)2}1/2
次にプロセッサ322は、物体3の位置姿勢の検出処理を行ない、検出結果に応じて、自律走行ロボット100の位置および平行リンク機構240の姿勢の各々の調整量の計算処理を実行する。測距センサ220の光照射ポイントからの物体3の見え方は、以下の4パターンがある。第1の見え方パターンは、物体3の胴部3bについて、面積の大きい側面3b1のみが見えるパターンである。第2の見え方パターンは、物体の胴部3bについて、面積の小さい側面3b2のみが見えるパターンである。第3の見え方パターンは、物体3の胴部3bについて、側面3b1が左側に見え、かつ、側面3b2が右側に見えるパターンである。第4の見え方パターンは、物体3の胴部3bについて、側面3b2が左側に見え、かつ、側面3b1が右側に見えるパターンである。プロセッサ322は、パターンに応じて調整量を計算する。
プロセッサ322は、図12に示すステップS29~S34に従って、自律走行ロボット100の位置および平行リンク機構240の姿勢の各々の調整量を計算する。ステップS29~S32は、第1のパターンに対応する。
図12は、図6に示すステップS8のサブルーチンに含まれるステップS29~S34の流れを示すフローチャートである。
まずステップS29において、プロセッサ322は、長さD3が物体3の胴部3bの縦幅Lと一致または近似するか否かを判断する。具体的には、プロセッサ322は、D3とLとの差の絶対値が閾値未満であることに応じて、長さD3が縦幅Lと一致または近似すると判断する。
図13は、自律走行ロボットの位置および把持部の姿勢の各々の調整量の計算方法の第1の例を説明する図である。図13には、ステップS29でYESの場合における調整量の計算方法が示される。また、ステップS29でYESの場合、特徴点P1,P3は、測距センサ220に対向する側面3b1の左端および右端にそれぞれ位置する。
上述したように、把持部210は、2つの指部が一対の側面3b2に接触して物体3を把持するように設計されている。そのため、図13に示されるように、物体3の中心Pwを通る鉛直方向の基準線46を含み、かつ、物体3に対して予め定められた方向に平行な仮想面43上に把持部210が位置し、当該仮想面43に沿って把持部210を並進移動させることが好ましい。物体3に対して予め定められた方向は、本実施の形態では、側面3b1に直交する方向である。従って、回動機構230の回転軸231が仮想面43上の位置し、かつ、仮想面43に沿って把持部210が並進移動するように平行リンク機構240を物体3の傾き角φだけ回動させる必要がある。そこで、プロセッサ322は、把持部210の姿勢の調整量として、物体3の傾き角φを計算する。
なお、物体3の傾き角φは、X軸に対する仮想面43の傾斜角度と一致する。X軸に対して仮想面43がY軸の正方向側に傾斜している場合に、傾き角φがプラスの値をとり、X軸に対して仮想面43がY軸の負方向側に傾斜している場合に、傾き角φがマイナスの値をとるものとする。図13に示す例では、仮想面43は、X軸に対してY軸の負方向側に傾斜している。
図12に示されるように、ステップS29でYESの場合、プロセッサ322は、特徴点P1,P3のX座標と縦幅Lとを用いて、以下の式に従って、物体3の傾き角φを計算する(ステップS30)。
φ=sin-1{(X1-X3)/L}
次にプロセッサ322は、以下の式に従って、特徴点P1,P3の中点Pmの座標(Xm,Ym)を計算する(ステップS31)。
Xm=(X1+X3)/2
Ym=(Y1+Y3)/2
次にプロセッサ322は、以下の式に従って、中点Pmに対する物体3の中心Pwのオフセット量Xo,Yoを計算する(ステップS32)。なお、上述したように、Wは、物体3の胴部3bの横幅を表している。
Xo=(W/2)cosφ
Yo=(W/2)sinφ
次にプロセッサ322は、以下の式に従って、物体3の中心Pwの座標(Xw,Yw)を計算する(ステップS33)。
Xw=Xm+Xo
Yw=Ym+Yo
次にプロセッサ322は、以下の式に従って、補正必要移動量Yaを計算する(ステップS34)。
Ya=Yw-(Xw)tanφ
補正必要移動量Yaは、回動機構230の回転軸231が仮想面43上に位置するために必要なY軸方向の移動量であり、自律走行ロボットの位置の調整量に対応する。また、傾き角φは、把持部210の姿勢の調整量に対応する。そのため、プロセッサ322は、補正必要移動量Yaおよび傾きφを示すデータを統合制御装置310に出力する。
ステップS29においてNOの場合、プロセッサ322は、処理を図14に示すステップS35に移す。
図14は、図6に示すステップS8のサブルーチンに含まれるステップS35~S38の流れを示すフローチャートである。ステップS35~S38は、第4の見え方パターンに対応する。
ステップS35において、プロセッサ322は、長さD1が物体3の胴部3bの横幅Wと一致または近似するか否かを判断する。具体的には、プロセッサ322は、D1とWとの差の絶対値が閾値未満であることに応じて、長さD1が横幅Wと一致または近似すると判断する。
図15は、自律走行ロボットの位置および把持部の姿勢の各々の調整量の計算方法の第2の例を説明する図である。図15には、ステップS35でYESの場合における調整量の計算方法が示される。図15に示されるように、第4の見え方パターンの場合、物体3の傾き角φは、マイナスの値を取る。また、ステップS35でYESの場合、特徴点P1,P2は、測距センサ220に対向する側面3b2の左端および右端にそれぞれ位置する。
ステップS35でYESの場合、プロセッサ322は、特徴点P1,P2のY座標と横幅Wとを用いて、以下の式に従って、物体3の傾き角φを計算する(ステップS36)。
φ=sin-1{(Y1-Y2)/W}
次にプロセッサ322は、以下の式に従って、特徴点P1,P2の中点Pmの座標(Xm,Ym)を計算する(ステップS37)。
Xm=(X1+X2)/2
Ym=(Y1+Y2)/2
次にプロセッサ322は、以下の式に従って、特徴点P1,P2の中点Pmに対する物体3の中心Pwのオフセット量Xo,Yoを計算する(ステップS38)。
Xo=-(L/2)sinφ
Yo=(L/2)cosφ
ステップS38の後、プロセッサ322は、処理を図12のステップS33に戻す。
ステップS35においてNOの場合、プロセッサ322は、処理を図16に示すステップS39に移す。
図16は、図6に示すステップS8のサブルーチンに含まれるステップS39~S42の流れを示すフローチャートである。ステップS39~S42は、第3の見え方パターンに対応する。
ステップS39において、プロセッサ322は、長さD1が物体3の胴部3bの縦幅Lと一致または近似するか否かを判断する。具体的には、プロセッサ322は、D1とLとの差の絶対値が閾値未満であることに応じて、長さD1が横幅Lと一致または近似すると判断する。
図17は、自律走行ロボットの位置および把持部の姿勢の計算方法の第3の例を説明する図である。図17には、ステップS39でYESの場合における調整量の計算方法が示される。図17に示されるように、第3の見え方パターンの場合、物体3の傾き角φは、プラスの値を取る。また、ステップS39でYESの場合、特徴点P1,P2は、測距センサ220に対向する側面3b1の左端および右端にそれぞれ位置する。
ステップS39でYESの場合、プロセッサ322は、特徴点P1,P2のY座標と縦幅Lとを用いて、以下の式に従って、物体3の傾き角φを計算する(ステップS40)。
φ=sin-1{(Y2-Y1)/L}
次にプロセッサ322は、以下の式に従って、特徴点P1,P2の中点Pmの座標(Xm,Ym)を計算する(ステップS41)。
Xm=(X1+X2)/2
Ym=(Y1+Y2)/2
次にプロセッサ322は、以下の式に従って、特徴点P1,P2の中点Pmに対する物体3の中心Pwのオフセット量Xo,Yoを計算する(ステップS42)。
Xo=(W/2)cosφ
Yo=(W/2)sinφ
ステップS47の後、プロセッサ322は、処理を図12のステップS33に戻す。
ステップS39においてNOの場合、プロセッサ322は、処理を図18に示すステップS43に移す。
図18は、図6に示すステップS8のサブルーチンに含まれるステップS43~S46の流れを示すフローチャートである。ステップS43~S46は、第3の見え方パターンに対応する。
ステップS43において、プロセッサ322は、長さD2が物体3の胴部3bの横幅Wと一致または近似するか否かを判断する。具体的には、プロセッサ322は、D2とWとの差の絶対値が閾値未満であることに応じて、長さD2が横幅Wと一致または近似すると判断する。
図19は、自律走行ロボットの位置および把持部の姿勢の各々の調整量の計算方法の第4の例を説明する図である。図19には、ステップS43でYESの場合における調整量の計算方法が示される。測距センサ220に対向する側面3b1と測距センサ220からの光の進行方向とが略平行である場合、距離n1の計測誤差が大きくなりやすい。その結果、特徴点P1と特徴点P2との長さD1が側面3b1の幅(つまり縦幅L)と一致または近似しなくなる。この場合、図16のステップS39でNOとなるが、図18のステップS43においてYESとなる。ステップS43でYESの場合、特徴点P2,P3は、測距センサ220に対向する側面3b2の左端および右端にそれぞれ位置する。
ステップS43でYESの場合、プロセッサ322は、特徴点P2,P3のY座標と横幅Wとを用いて、以下の式に従って、物体3の傾き角φを計算する(ステップS44)。
φ=sin-1{(Y3-Y2)/W}
次にプロセッサ322は、以下の式に従って、特徴点P2,P3の中点Pmの座標(Xm,Ym)を計算する(ステップS45)。
Xm=(X2+X3)/2
Ym=(Y2+Y3)/2
次にプロセッサ322は、以下の式に従って、特徴点P2,P3の中点Pmに対する物体3の中心Pwのオフセット量Xo,Yoを計算する(ステップS46)。
Xo=(L/2)sinφ
Yo=-(L/2)cosφ
ステップS46の後、プロセッサ322は、処理を図12のステップS33に戻す。
ステップS43においてNOの場合、プロセッサ322は、処理を図20に示すステップS47に移す。
図20は、図6に示すステップS8のサブルーチンに含まれるステップS47~S50の流れを示すフローチャートである。ステップS47~S50は、第4の見え方パターンに対応する。
ステップS47において、プロセッサ322は、長さD2が物体3の胴部3bの縦幅Lと一致または近似するか否かを判断する。具体的には、プロセッサ322は、D2とLとの差の絶対値が閾値未満であることに応じて、長さD2が縦幅Lと一致または近似すると判断する。
図21は、自律走行ロボットの位置および把持部の姿勢の各々の調整量の計算方法の第5の例を説明する図である。図21には、ステップS47でYESの場合における調整量の計算方法が示される。測距センサ220に対向する側面3b2と測距センサ220からの光の進行方向とが略平行である場合、距離n1の計測誤差が大きくなりやすい。その結果、特徴点P1と特徴点P2との長さD1が側面3b2の幅(つまり横幅W)と一致または近似しなくなる。この場合、図14のステップS35でNOとなるが、図20のステップS47においてYESとなる。ステップS47でYESの場合、特徴点P2,P3は、測距センサ220に対向する側面3b1の左端および右端にそれぞれ位置する。
ステップS47でYESの場合、プロセッサ322は、特徴点P2,P3のY座標と縦幅Lとを用いて、以下の式に従って、物体3の傾き角φを計算する(ステップS48)。
φ=sin-1{(X2-X3)/L}
次にプロセッサ322は、以下の式に従って、特徴点P2,P3の中点Pmの座標(Xm,Ym)を計算する(ステップS49)。
Xm=(X2+X3)/2
Ym=(Y2+Y3)/2
次にプロセッサ322は、以下の式に従って、特徴点P2,P3の中点Pmに対する物体3の中心Pwのオフセット量Xo,Yoを計算する(ステップS50)。
Xo=-(W/2)sinφ
Yo=-(W/2)cosφ
ステップS50の後、プロセッサ322は、処理を図12のステップS33に戻す。
このようにして、ステップS30,S36,S40,S44,S48のいずれかにおいて傾き角φが計算され、ステップS34において補正必要移動量Yaが計算される。ステップS34の後、搬送ロボット1は、処理を図22のステップS51に移す。
図20のステップS47でNOの場合、処理は、図22のステップS60に移る。ステップS47でNOの場合は、第2の見え方パターンに対応する。第2の見え方パターン(測距センサ220の光照射ポイントから側面3b2のみが見えるパターン)のときには、物体3の姿勢が理想姿勢から大きく外れている。そのため、自律走行ロボット100の位置および把持部210の姿勢を調整しただけでは、物体3を把持することができない。従って、調整量が計算されることなく、処理はステップS60に移る。
図22は、図6に示すステップS8のサブルーチンに含まれるステップS51~S60の流れを示すフローチャートである。
統合制御装置310のプロセッサ312は、調整量を示すデータを受けると、補正必要移動量Yaだけ移動させるための位置調整指示を自律走行ロボット100に出力する(ステップS51)。これにより、自律走行ロボット100は、補正必要移動量Yaだけ移動する。なお、補正必要移動量Yaがプラスである場合、自律走行ロボット100は、Y軸に沿って進行する(Y軸の正方向に移動する)。補正必要移動量Yaがプラスである場合、自律走行ロボット100は、Y軸に沿って後退する(Y軸の負方向に移動する)。
次に、プロセッサ312は、上物制御装置320に、傾き角φの回動指示を出力する(ステップS52)。これにより、上物制御装置320のプロセッサ322は、探索基準状態からワーク傾きφだけ回動するように、回動機構230を制御する。
次に、プロセッサ322は、現状態を基準姿勢とし、基準姿勢からの回動角度θが-ΨからΨとなるように測距センサ220を回動させる。そして、プロセッサ322は、回動角度θによる測距センサ220の計測距離nの変化を示す波形を取得する(ステップS53)。
図23は、ステップS53において取得された波形の一例を示す図である。自律走行ロボット100の位置および回動機構230の姿勢が調整されているため、図23に示されるように、ステップS53において取得される波形は、概ね図10の左列の波形と同一または近似する。なお、自律走行ロボット100の位置および回動機構230の姿勢の調整誤差が生じるため、ステップS53において取得される波形は、必ずしも図10の左列の波形と一致しない。
次に、プロセッサ322は、ステップS53において得られた波形から、距離n2’,n3’を抽出し、抽出した距離n2’,n3’に対応する特徴点P2’,P3’の座標(X2’,Y2’),(X3’,Y3’)をそれぞれ計算する(ステップS54)。距離n2’,n3’の抽出方法は、距離n2,n3の抽出方法と同じである。
次に、プロセッサ322は、以下の式に従って、把持部210の2つの指部の開き方向のずれ量Jを計算する(ステップS55)。
J=|L/2-D3’|
上記の式において、D3’は、特徴点P2’と特徴点P3’との距離であり、ステップS28と同様の方法によって計算される。
図24は、ずれ量Jを示す図である。上述したように、自律走行ロボット100の位置および回動機構230の姿勢の調整誤差が生じ得る。この場合、図24に示されるように、回転軸231および特徴点P2’を含む仮想面44は、物体3の中心Pwを通らない。ずれ量Jは、仮想面44と物体3の中心Pwとの距離に相当する。
次に、プロセッサ322は、特徴点P2’と回転軸231との距離D’を計算する(ステップS56)。回転軸231の座標は、(0,0)で表される。そのため、プロセッサ322は、以下の式に従って、距離D’を計算する。
D’={(X2’)2+(Y2’)2}1/2
次に、プロセッサ322は、物体3に把持部210が到達するか否かを判断する(ステップS57)。把持部210の可動範囲は、平行リンク機構240の仕様に依存する。そのため、プロセッサ322は、距離D’と平行リンク機構240の仕様に応じて定められる閾値とを比較し、距離D’が閾値未満であることに応じて、物体3に把持部210が到達可能と判断する。
ステップS57でYESの場合、プロセッサ322は、ずれ量Jが(Wa-L)/2未満であるか否かを判断する(ステップS57)。Waは、把持部210の2つの指部の最大開き幅である。
図25は、把持部の最大開き幅Waとずれ量Jとの関係を示す図である。図25に示されるように、ずれ量Jが(Wa-L)/2以上である場合、把持部210を物体3に向けて並進移動する間に、把持部210の2つの指部の一方が物体3に衝突することになる。
ステップS57でNOの場合、または、ステップS58でNOの場合、プロセッサ322は、ステップS51を3回実行したか否かを判断する(ステップS59)。ステップS59でNOの場合、処理はステップS51に移る。
ステップS60でYESの場合、および、図20のステップS47でNOの場合、プロセッサ322は、失敗フラグをオン状態に切り替える(ステップS60)。ステップS60の後、処理は、図6のステップS9に戻る。
ステップS58でYESの場合、処理は、図26のステップS61に移る。
図26は、図6に示すステップS8のサブルーチンに含まれるステップS61~S65の流れを示すフローチャートである。
ステップS61において、プロセッサ322は、昇降機構250を制御して、測距センサ220を上限まで上げる。そして、プロセッサ322は、測距センサ220の高さhによる測距センサ220の計測距離nの変化を示す波形を取得する。
図27は、ステップS61において取得される波形の一例を示す図である。図27に示されるように、波形は、1以上の谷部40を含む。谷部40は、測距センサ220からの光が物体3の鍔部3cに照射されたときの距離nに対応する。
図26に戻って、次にプロセッサ322は、ステップS61で取得した波形に基づいて、指定場所2に置かれた物体3の積み上げ個数Q1を計算する(ステップS62)。具体的には、プロセッサ322は、図27に示す波形の谷部40の個数を積み上げ個数Q1としてカウントする。
次にプロセッサ322は、在荷数Q2を計算する(ステップS63)。上述したように、在荷数Q2は、荷台260に置かれている物体3の個数である。
図28は、在荷数の計算方法を説明する図である。図28に示されるように、測距センサ262は、板261の置かれている1以上の物体3のうち1番上の物体3までの距離Nzを計測する。
プロセッサ322は、以下の式に従って、在荷数Q2を計算する。
Q2=(N0-Nz-H)Hn+1
上記の式において、N0は、測距センサ262と板261との距離である。Hは、上述したように物体3の高さである。Hnは、物体3を積み上げたときの2つの物体3間のピッチである。N0は、物体3の形状に応じて予め定められる。Hnは、荷台260の仕様に応じて予め定められる。
次にプロセッサ322は、以下の式に従って、回収可能個数Qcを計算する(ステップS64)。
Qc=Q0-Q2
上記の式において、Q0は、荷台260の最大在荷数であり、荷台260の仕様に応じて予め定められる。
次にプロセッサ322は、回収準備動作において取得された各種のパラメータを示すデータをアクセスルールデータベース340に含める(ステップS65)。ステップS65においてアクセスルールデータベース340に含められるデータには、例えば、傾き角φ、補正必要移動量Ya、積み上げ個数Q1、在荷数Q2、回収可能個数Qcの各々を示すデータが含まれる。ステップS65の後、処理は、図6のステップS9に戻る。
<キャリブレーション>
測距センサ220の光照射ポイントは、上物装置200の設計によって決定される。そのため、光照射ポイントの位置を定義するためのパラメータ(すなわち、探索基準状態における上物装置200の光照射ポイントの座標を定義付けるr3,r1,a1,r2,a2)は、基本的に一定である。そのため、プロセッサ322は、上物装置200の設計によって予め決定されるパラメータの値を用いて、回収準備動作のための制御(つまり、物体3の位置姿勢を検出する処理)を行なえばよい。
しかしながら、測距センサ220の寸法誤差、測距センサ220の把持部210への取り付け誤差などに起因して、光照射ポイントの位置は、上物装置200ごとに個体差を有し得る。当該個体差を考慮して、光照射ポイントの位置を定義付けるパラメータのキャリブレーションが実行されてもよい。以下、光照射ポイントの位置を定義付けるパラメータのキャリブレーションの方法について説明する。
図29は、キャリブレーションの方法を説明する図である。図29には、光照射ポイントがポイントE1(図8参照)となるように設計された測距センサ220に関するキャリブレーションの例が示される。また、探索基準状態における上物装置200の光照射ポイント(ポイントE1)の座標は、設計上(r1,a1)(図8参照)であるが、個体差により(r1‘,a1’)にずれているものとする。
なお、測距センサ220は、把持部210の指部に取り付けられる。指部の延伸方向は、把持への影響が大きい。そのため、指部の延伸方向の精度が比較的良い。従って、測距センサ220の光照射ポイントから照射される光の進行方向の個体差は、通常無視できる程度に小さい。
キャリブレーションでは、指定場所2の理想位置に理想姿勢で物体3が置かれ、かつ、自律走行ロボット100が指定場所2に対応する目標位置姿勢の状態において、プロセッサ322は、図7に示すステップS21~S23を実行する。すなわち、回転軸231に対する位置姿勢が既知である物体3について、ステップS21~S23が実行される。ステップS21の実行によって、上物装置200が探索基準状態に設定されると、回動機構230の回転軸231およびX軸は、物体3の胴部3bの側面3b1の中心Pc(Xc,0)を通る。
プロセッサ322は、ステップS23の実行により得られた波形から、計測距離nが最も短い距離ncと、距離ncが計測されたときの回動角度θmとを特定する。
距離ncは、測距センサ220からの光が中心Pcに照射されたときに計測される。そのため、プロセッサ322は、以下の式に従って、距離ncが計測されたときの光照射ポイントの座標(Xd,Yd)を計算する。
Xd=Xc-(nc)cos(θm)
Yd=-(nc)sin(θm)
次に、プロセッサ322は、以下の式に従って、座標(Xd,Yd)の点と中心Pc(Xc,0)とを結ぶ直線の傾きεを計算する。
ε=(Yd-0)/(Xd-Xc)
回転軸231を通り、かつ、傾きεの仮想線45と座標(Xd,Yd)の点との距離は、a1’に相当する。そのため、プロセッサ322は、以下の式に従って、a1’を計算する。
a1’=|ε(Xd)-Yd|/{(ε2+1)1/2}
次に、プロセッサ322は、以下の式に従って、座標(Xd,Yd)の点と原点(0,0)との距離R’(つまり、座標(Xd,Yd)の点と回転軸231との距離)を計算する。
R’={(Xd)2+(Yd)2}1/2
次に、プロセッサ322は、以下の式に従って、座標(Xd,Yd)の点と原点(0,0)とを結ぶ直線と仮想線45とのなす角度β’を計算する。
β’=sin-1(a1’/R’)
次に、プロセッサ322は、以下の式に従って、r1’を計算する。
r1’=R’cosβ’
次に、プロセッサ322は、上物装置200の個体差(つまり、(r1,a1)と(r1’,a1’)との偏差)に起因する角度ずれθcを計算する。
図30は、角度ずれθcを示す図である。図30において、θ0は、探索基準状態における上物装置200の光照射ポイントの座標が設計通りの(r1,a1)であったときに、計測距離nが最も短くなるときの回動角度である。θ0は、r1,a1等の設計上のパラメータの値から予め定められる。プロセッサ322は、以下の式に従って、角度ずれθcを計算する。
θc=θm-θ0
プロセッサ322は、角度ずれθcと予め定められる閾値とを比較する。閾値は、把持部210の2つの指部の最大開き幅Wa等を考慮して、把持に影響のない範囲の上限に設定される。そのため、プロセッサ322は、角度ずれθcが閾値を超える場合に、測距センサ220の取り付けのし直しを促す。
角度ずれθcが閾値以下である場合、プロセッサ322は、アクセスルールデータベース340の中の(r1,a1)を示すデータを、(r1’,a1’)を示すデータに更新する。さらに、プロセッサ322は、角度ずれθcを示すデータをアクセスルールデータベース340に含める。プロセッサ322は、ステップS23,S52において波形を取得する際、回動角度θを角度ずれθcだけ補正する。
このように、上物制御装置320のプロセッサ322は、回転軸231に対する位置姿勢が既知である物体3について、回動角度による測距センサ220の計測距離nの変化を取得し、取得された変化に基づいて、測距センサ220の位置を定義するためのパラメータを決定する。
<回収本動作>
図31は、図6に示すステップS10のサブルーチンの処理の流れを示すフローチャートである。
プロセッサ322は、回収可能個数Qcが指定個数「A個」以上であるか否かを判断する(ステップS71)。
ステップS71でYESの場合、プロセッサ322は、指定場所2の積み上げ個数Q1が指定個数「A個」以上である否かを判断する(ステップS72)。ステップS72でYESの場合、プロセッサ322は、回収本動作の制御をA回繰り返して実行し、A個の物体3を上物装置200に回収させる(ステップS73)。すなわち、上物制御装置3202のプロセッサ322は、把持部210、回動機構230、平行リンク機構240および昇降機構250を制御して、指定場所2から荷台260上にA個の物体3を移動させる。ステップS72でNOの場合、プロセッサ322は、回収本動作の制御をQ1回繰り返して実行し、Q1個の物体3を上物装置200に回収させる(ステップS74)。ステップS73、S74の後、処理は、図6のステップS11に戻る。
ステップS71でNOの場合、プロセッサ322は、回収可能個数Qcが指定場所2の積み上げ個数Q1以上であるか否かを判断する(ステップS75)。ステップS75でYESの場合、処理はステップS74に移る。ステップS75でNOの場合、プロセッサ322は、回収本動作の制御をQc回繰り返して実行し、Qc個の物体3を上物装置200に回収させる(ステップS76)。ステップS76の後、処理は、図6のステップS11に戻る。
このように、上物制御装置320のプロセッサ322は、積み上げ個数Q1と荷台260に存在する物体3の個数(在荷数Q2)とに基づいて、荷台260に移動すべき物体3の個数を決定する。そして、プロセッサ322は、把持部210、回動機構230、平行リンク機構240および昇降機構250を制御して、指定場所2から荷台260上に、決定された個数の物体3を移動させる。
<配布指示を受けたときの処理の流れ>
図32は、搬送ロボットが配布指示を受けたときの処理の流れの一例を示すフローチャートである。
まず、統合制御装置310のプロセッサ312は、上位システム4からの配布指示を受け付ける(ステップS81)。配布指示には、指定場所を示すデータと、配布個数「B個」を示すデータとが付加される。
次に、プロセッサ312は、自律走行ロボット100に対して、指定場所に応じて定められる目標位置姿勢への走行動作の開始指示を出力する(ステップS82)。
自律走行ロボット100の走行コントローラ120は、走行許可信号がオン状態であるか否かを判断する(ステップS83)。走行許可信号がオフ状態である場合(ステップS83でNO)、走行コントローラ120は、処理をステップS83に戻す。
走行許可信号がオン状態である場合(ステップS83でYES)、走行コントローラ120は、駆動部130を制御して、目標位置姿勢への移動を開始する(ステップS84)。
走行コントローラ120は、目標位置姿勢に到達したことに応じて、目標位置姿勢への到着を統合制御装置310に報告する(ステップS85)。
次に、プロセッサ312は、配布動作の開始指示を上物制御装置320に出力する(ステップS86)。配布動作の開始指示には、配布個数「B個」を示すデータが付加される。
次に、配布動作の開始指示を受けた上物制御装置320のプロセッサ322は、移載許可信号がオン状態であるか否かを判断する(ステップS87)。移載許可信号がオフ状態である場合(ステップS87でNO)、プロセッサ322は、処理をステップS87に戻す。
移載許可信号がオン状態である場合(ステップS87でYES)、プロセッサ322は、配布準備動作のための制御を実行する(ステップS88)。配布準備動作の詳細については後述する。
次に、プロセッサ322は、配布準備動作が成功したか否かを判断する(ステップS89)。プロセッサ322は、失敗フラグを確認することにより、配布準備動作が成功したか否かを判断すればよい。すなわち、プロセッサ322は、失敗フラグがオン状態であるときに、配布準備動作が失敗したと判断する。
配布準備動作が失敗した場合(ステップS89でNO)、プロセッサ312は、配布準備動作が失敗したことを示す第3結果データを生成し、生成した第3結果データを統合制御装置310に出力する。これにより、統合制御装置310のプロセッサ312は、配布不能を上位システム4に通知する(ステップS94)。
配布準備動作が成功した場合(ステップS89でYES)、プロセッサ312は、配布本動作の制御を実行する(ステップS90)。
プロセッサ312は、配布本動作が完了すると、把持部210をホームポジションに戻すための制御を実行する(ステップS91)。具体的には、プロセッサ312は、把持部210をホームポジションに戻すための各駆動軸の操作量を計算し、計算した操作量を上物装置200に出力する。これにより、把持部210は、ホームポジションに戻る。
次に、プロセッサ312は、配布動作の完了を統合制御装置310に報告する(ステップS92)。具体的には、プロセッサ312は、配布本動作の結果を示す第4結果データを生成し、生成した第4結果データを統合制御装置310に出力する。
次に、統合制御装置310のプロセッサ312は、配布結果を上位システム4に通知する(ステップS93)。例えば、第4結果データが配布個数を示す場合、プロセッサ312は、第4結果データを上位システム4に転送すればよい。
<配布準備動作>
図33は、図32に示すステップS88のサブルーチンの処理の流れを示すフローチャートである。
まず、上物制御装置320のプロセッサ322は、上物装置200が探索基準状態となるように、上物装置200を制御する(ステップS101)。ステップS101は、図7に示すステップS21と同様の処理である。次にプロセッサ322は、測距センサ220をオン状態にする(ステップS102)。
次に、プロセッサ322は、探索基準状態を基準状態とし、基準状態からの回動角度θが-ΨからΨとなるように測距センサ220を回動させる。そして、プロセッサ322は、回動角度θによる測距センサ220の計測距離nの変化を示す波形を取得する(ステップS103)。
次に、プロセッサ322は、波形から距離n1,n2,n3の抽出ができるか否かを判断する(ステップS104)。配布動作を行なう場合、指定場所には、物体3が存在しないケースが有り得る。指定場所に物体3が存在しない場合、測距センサ220の計測距離は、計測可能範囲の上限値を超える値またはエラー値を示す。このような場合、プロセッサ322は、波形から距離n1,n2,n3の抽出ができないと判断する。
ステップS104でNOの場合、プロセッサ322は、指定場所における物体3の積み上げ個数Q1を0と決定する(ステップS105)。この場合、指定場所の任意の位置に任意の姿勢で物体3を配布することができるため、自律走行ロボット100の位置の調整および把持部210の姿勢の調整は必要ない。ステップS105の後、図26に示すステップS62,S63が実行される。ステップS63,S64が実行された後、処理はステップS106に移る。
ステップS104でYESの場合、図7,12,14,16,18,20,22,26のステップS24~S63が実行される。ステップS24~S64が実行された後、処理はステップS106に移る。
ステップS106において、プロセッサ322は、以下の式に従って、配布可能個数Qhを計算する。
Qh=Qm-Q1
Qmは、上物装置200が積み上げ可能な最大個数であり、指定場所の高さ、物体3の仕様および昇降機構250の仕様に応じて予め定められる。
次に、プロセッサ322は、配布準備動作において取得された各種のパラメータを示すデータをアクセスルールデータベース340に含める(ステップS107。ステップS107においてアクセスルールデータベース340に含められるデータには、例えば、傾き角φ、補正必要移動量Ya、積み上げ個数Q1、在荷数Q2、配布可能個数Qhの各々を示すデータが含まれる。ステップS107の後、処理は、図32のステップS89に戻る。
<配布本動作>
図34は、図32に示すステップS90のサブルーチンの処理の流れを示すフローチャートである。
プロセッサ322は、配布可能個数Qhが指定個数「B個」以上であるか否かを判断する(ステップS111)。
ステップS111でYESの場合、プロセッサ322は、在荷数Q2が指定個数「B個」以上である否かを判断する(ステップS112)。ステップS112でYESの場合、プロセッサ322は、配布本動作の制御をB回繰り返して実行し、B個の物体3を上物装置200に配布させる(ステップS113)。ステップS112でNOの場合、プロセッサ322は、配布本動作の制御をQ2回繰り返して実行し、Q2個の物体3を上物装置200に配布させる(ステップS114)。ステップS113、S114の後、処理は、図32のステップS91に戻る。
ステップS111でNOの場合、プロセッサ322は、配布可能個数Qhが在荷数Q2以上であるか否かを判断する(ステップS115)。ステップS115でYESの場合、処理はステップS114に移る。ステップS115でNOの場合、プロセッサ322は、配布本動作の制御をQh回繰り返して実行し、Qh個の物体3を上物装置200に回収させる(ステップS116)。ステップS116の後、処理は、図32のステップS91に戻る。
<変形例1>
物体3は、平面視矩形の箱状に限定されず、他の形状を有していてもよい。例えば、物体3は、円柱状または多角柱状であってもよい。
図35は、物体の別の例を示す図である。図35には、円柱状の物体3が示される。円柱状の物体3に対して図7に示すステップS21~S25が実行されると、図35に示されるように、円柱状の物体3の側面に含まれる特徴点P1~P3の座標が計算される。特徴点P1~P3の座標に基づいて、物体3の中心の座標が計算される。これにより、物体3の位置が検出される。
図36は、物体のさらに別の例を示す図である。図36には、六角柱状の物体3が示される。六角柱状の物体3に対して図7に示すステップS21~S25が実行されると、図36に示されるように、六角柱状の物体3の側面間の境界に含まれる特徴点P1~P3の座標が計算される。特徴点P1~P3の座標に基づいて、物体3の位置姿勢が検出される。
<変形例2>
図37は、変形例2に係る搬送ロボットの構成を示す図である。図37に示されるように、変形例2に係る搬送ロボット1Aは、図4に示す搬送ロボット1と比較して、上物装置200の代わりに上物装置200Aを備える点で相違する。上物装置200Aは、上物装置200と比較して、荷台260の代わりに荷台260Aを備える点で相違する。荷台260Aは、荷台260と比較して、測距センサ262の代わりに物体検出センサセット263を含む点で相違する。
物体検出センサセット263は、複数の物体検出センサを有する。複数の物体検出センサは、積み上げられる複数の物体3の高さ方向のピッチを間隔として、上下方向に並べて配置される。そのため、板261の上にk個の物体3が積み上げられた場合、下からk番目までの物体検出センサは物体3の存在を検出し、k番目よりも上に配置された物体検出センサは物体3の存在を検出しない。そのため、上物制御装置320の在荷確認部341は、物体検出センサセット263のうち物体3の存在を検出したセンサ個数を在荷数として決定できる。
<変形例3>
図38は、変形例3に係る搬送ロボットの構成を示す図である。図38に示されるように、変形例3に係る搬送ロボット1Bは、図4に示す搬送ロボット1と比較して、上物装置200の代わりに上物装置200Bを備える点で相違する。上物装置200Bは、上物装置200と比較して、荷台260の代わりに荷台260Bを備える点で相違する。荷台260Bは、荷台260と比較して、板261、測距センサ262および支持部材266の代わりに複数の板265および複数の物体検出センサ264を含む点で相違する。
複数の板265は、上下方向に、所定の間隔をあけて配置される。複数の板265の各々には、1つの物体3が置かれる。このように、変形例3における搬送ロボット1Bでは、荷台260Bにおいて、物体3は積み上げられない。
複数の板265の各々には、物体検出センサ264が設けられる。物体検出センサ264は、対応する板265上の物体3の有無を検出する。そのため、上物制御装置320の在荷確認部341は、複数の物体検出センサ264のうち物体3の存在を検出したセンサ個数を在荷数として決定できる。
<変形例4>
図39は、変形例4に係る搬送ロボットの構成を示す図である。図39に示されるように、変形例4に係る搬送ロボット1Cは、変形例3に係る搬送ロボット1Bと比較して、上物装置200Bの代わりに上物装置200Cを備え、かつ、上物制御装置320の代わりに上物制御装置320Cを備える点で相違する。上物装置200Cは、上物装置200Bと比較して、荷台260Bの代わりに荷台260Cを含み、かつ、カメラ280を含む点で相違する。上物制御装置320Cは、上物制御装置320と比較して、上物動作制御部344の代わりに上物動作制御部344Cを含み、さらに反転確認部346を含む点で相違する。
カメラ280は、光軸が平行リンク機構240による把持部210の並進移動方向に平行となるように、把持部210または把持部210の近傍の部材に取り付けられる。カメラ280は、指定場所2に置かれた物体3を撮像する。カメラ280の撮像により得られる画像は、上物制御装置320Cに出力される。
荷台260Cは、荷台260Bと比較して、複数の板265の各々の上に反転機構267を含む点で相違する。反転機構267は、鉛直方向に沿った回転軸を中心として180°回転する。そのため、反転機構267の上に置かれた物体3は、鉛直方向に沿った回転軸を中心として180°回転する。
図40は、変形例4において搬送される物体の例を示す図である。図40に示されるように、物体3は、鉛直方向に沿った軸を中心として180°回転したときに、異なる視認性を与える。具体的には、物体3において、側面3dと側面3dの裏側の側面3eとは、異なる特徴と有する。例えば、側面3dは、右側が第1色、左側が第2色となるように左右に色分けされる。一方、側面3eは、右側が第2色、左側が第1色となるように左右に色分けされる。
また、図40に示されるように、物体3の重ね方によって、ネスティングとスタッキングとが使い分けることができる。図40に示す例では、同色が重なるように積むとスタッキングされ、異色が重なるように積むとネスティングされる。物体3に関する技術は、例えば実開平05-35647号公報(特許文献2)に示されている。
側面3d,3eの向きによってネスティングとスタッキングとが使い分けることができるため、物体3は、側面3d,3eの向きを考慮して搬送されることが好ましい。そのため、変形例4では、指定場所2から回収され、荷台260Cに置かれた物体3の側面3d,3eの向きが一定となるように制御される。
具体的には、上物制御装置320Cの反転確認部346は、カメラ280の撮像により得られる画像に基づいて、側面3dおよび側面3eのうちのいずれが把持部210に対向しているかを判断する。反転確認部346の判断結果は、上物動作制御部344Cに出力される。
上物動作制御部344Cは、上物動作制御部344と同様の制御に加えて、反転機構267の制御を行なう。具体的には、上物動作制御部344Cは、側面3eが把持部210に対向していることを示す判断結果に応じて、反転機構267を動作させる。これにより、荷台260Cに置かれる物体3の側面3d,3eの向きが揃う。
<変形例5>
変形例5は、変形例4のさらなる変形である。変形例5では、反転機構267が省略される。そのため、指定場所2に置かれた物体3の側面3eが把持部210に対向している場合、荷台260Cにおいて、側面3dが把持部210に対向するように当該物体3を置くことができない。従って、上物動作制御部344Cは、側面3eが把持部210に対向していることを示す判断結果に応じて、物体3の向きが異常である旨の通知を出力する。例えば、上物動作制御部344Cは、図示しないインジケータを点灯させてもよいし、統合制御装置310を介して、上位システムに通知を出力してもよい。
<変形例6>
図41は、変形例6に係る搬送ロボットの構成を示す図である。図41に示されるように、変形例6に係る搬送ロボット1Dは、図4に示す搬送ロボット1と比較して、上物装置200の代わりに上物装置200Dを備える点で相違する。上物装置200Dは、上物装置200と比較して、計測器290を含む点で相違する。
計測器290は、把持部210が物体3を把持しているときに物体3の重量を計測する。計測器290は、物体3の重量を直接的に計測してもよい。あるいは、計測器290は、回動機構230、昇降機構250、平行リンク機構240、把持部210および物体3の合計重量を計測し、回動機構230、昇降機構250、平行リンク機構240および把持部210の重量を合計重量から差し引くことにより、物体3の重量を間接的に計測してもよい。
上物制御装置320の情報取得部342は、計測器290による計測結果を取得する。上物動作制御部344は、計測器290による計測結果を監視し、計測結果の変動量が閾値を超えたことに応じて、物体3に収容される対象物が落下したことを通知する。例えば、上物動作制御部344Cは、図示しないインジケータを点灯させてもよいし、統合制御装置310を介して、上位システムに通知を出力してもよい。
これにより、作業者は、落下物の確認を即座に行なうことができる。変形例6に係る搬送ロボット1Dは、コンテナである物体3に収容される対象物が液体のようなこぼれやすい生産現場に適用され得る。
<他の変形例>
上記の説明では、搬送ロボット1,1A~1Dは、2つの制御装置(統合制御装置および上物制御装置)を備えるものとした。しかしながら、搬送ロボット1,1A~1Dは、統合制御装置および上物制御装置をまとめた1つの制御装置を備えてもよいし、統合制御装置および上物制御装置の一部の機能を実行するさらに別の1以上の制御装置を備えてもよい。
§3 付記
以上のように、本実施の形態は以下のような開示を含む。
(構成1)
指定場所(2)に置かれた物体(3)を回収することおよび指定場所に前記物体(3)を重ねて配布することの少なくとも一方である対象動作を実行する搬送ロボット(1,1A,1B,1C,1D)であって、
自律走行ロボット(100)と、
前記自律走行ロボット(100)に搭載され、前記物体(3)を把持するための把持部(210)と、
前記自律走行ロボット(100)に搭載される測距センサ(220)と、
前記自律走行ロボット(100)に設けられた第1回転軸(231)を中心に前記測距センサ(220)および前記把持部(210)を回動させる回動機構(230)と、
前記自律走行ロボット(100)および前記回動機構(230)を制御する1以上の制御装置(300,310,320)と、を備え、
前記1以上の制御装置(300,310,320,320C)は、
前記指定場所に対応する目標位置姿勢に移動するように前記自律走行ロボット(100)を制御するステップと、
前記自律走行ロボット(100)が前記目標位置姿勢に移動したことに応じて、前記回動機構(230)を制御して前記測距センサ(220)を回動させるステップと、
回動角度による前記測距センサ(220)の計測距離の変化と前記物体(3)の形状とに基づいて、前記指定場所に存在する前記物体(3)の位置姿勢を検出するステップと、
前記物体(3)の位置姿勢の検出結果に応じて、前記把持部(210)が前記対象動作を実行可能なように前記自律走行ロボット(100)の位置および前記把持部(210)の姿勢を調整するステップと、を実行する、搬送ロボット(1,1A,1B,1C,1D)。
(構成2)
前記物体(3)の位置姿勢を検出するステップは、前記第1回転軸(231)に対する前記測距センサ(220)の位置を定義するためのパラメータを用いて実行され、
前記1以上の制御装置(300,310,320,320C)は、
前記第1回転軸(231)に対する位置姿勢が既知である前記物体(3)について、前記回動角度による前記測距センサ(220)の計測距離の変化を取得し、取得された変化に基づいて、前記パラメータを決定するステップをさらに実行する、構成1に記載の搬送ロボット(1,1A,1B,1C,1D)。
(構成3)
前記搬送ロボット(1,1A,1B,1C,1D)は、前記把持部(210)を並進移動させる平行リンク機構(240)をさらに備え、
前記回動機構(230)は、前記把持部(210)とともに、前記第1回転軸(231)を中心に前記平行リンク機構(240)を回動させ、
前記調整するステップは、
前記指定場所に存在する前記物体(3)の中心を通る鉛直方向の基準線を含み、かつ、前記指定場所に存在する前記物体(3)に対して予め定められた方向に平行な基準面(43)上に前記把持部(210)が位置するように、前記自律走行ロボット(100)の位置を調整するステップと、
前記並進移動の方向が前記基準面(43)と平行になるように前記把持部(210)の姿勢を調整するステップと、を含む、構成1または2に記載の搬送ロボット(1,1A,1B,1C,1D)。
(構成4)
前記搬送ロボット(1,1A,1B,1C,1D)は、前記自律走行ロボット(100)上に設けられ、前記物体(3)が置かれる荷台(260,260A,260B,260C)をさらに備え、
前記1以上の制御装置(300,310,320,320C)は、前記把持部(210)、前記回動機構(230)および前記平行リンク機構(240)を制御して、前記指定場所(2)から前記荷台(260,260A,260B,260C)上に前記物体(3)を移動させるステップをさらに実行する、構成3に記載の搬送ロボット(1,1A,1B,1C,1D)。
(構成5)
前記物体(3)は、前記指定場所(2)において積み上げ可能であり、
前記搬送ロボット(1,1A,1B,1C,1D)は、前記測距センサ(220)および前記把持部(210)を昇降させる昇降機構(250)をさらに備え、
前記1以上の制御装置(300,310,320,320C)は、
前記昇降機構(250)を制御して前記測距センサ(220)を昇降させるステップと、
前記測距センサ(220)の高さによる前記測距センサ(220)の計測距離の変化に基づいて、前記指定場所に存在する前記物体(3)の積み上げ個数を検出するステップと、
前記積み上げ個数と前記荷台(260,260A,260B,260C)に存在する前記物体(3)の個数とに基づいて、前記荷台(260,260A,260B,260C)に移動すべき前記物体(3)の個数を決定するステップと、をさらに実行し、
前記物体(3)を移動させるステップは、前記把持部(210)、前記回動機構(230)、前記平行リンク機構(240)および前記昇降機構(250)を制御して、前記指定場所(2)から前記荷台(260,260A,260B,260C)上に、決定された個数の前記物体(3)を移動させるステップを含む、構成4に記載の搬送ロボット(1,1A,1B,1C,1D)。
(構成6)
前記搬送ロボット(1,1A,1B,1C,1D)は、
前記自律走行ロボット(100)上に設けられ、前記物体(2)が置かれる荷台(260,260A,260B,260C)と、
前記荷台(260,260A,260B,260C)と前記把持部(210)との相対位置関係を検出する位置センサ(270)と、をさらに備え、
前記1以上の制御装置は、
前記位置センサ(270)によって検出される前記相対位置関係が基準関係であることに応じて、前記自律走行ロボット(100)の走行を許可するステップをさらに実行する、構成1から3のいずれかに記載の搬送ロボット(1,1A,1B,1C,1D)。
(構成7)
前記物体(3)は、第1側面(3d)と前記第1側面(3d)の裏側の第2側面(3e)とを有し、
前記第1側面(3d)および前記第2側面(3e)は、互いに異なる特徴を有し、
前記搬送ロボット(1C)は、前記自律走行ロボット(100)に搭載された、前記物体(3)を撮像するためのカメラ(280)をさらに備え、
前記1以上の制御装置(320C)は、
前記カメラ(280)による撮像結果に基づいて、前記指定場所に存在する前記物体について、前記第1側面(3d)および前記第2側面(3e)のうちのいずれが前記把持部(210)に対向しているかを判断するステップと、
前記第2側面(3e)が前記把持部(210)に対向していると判断したことに応じて、前記指定場所に存在する前記物体(3)の向きが異常である旨の通知を出力するステップと、をさらに実行する、構成1から6のいずれかに記載の搬送ロボット(1C)。
(構成8)
前記物体(3)は、第1側面(3d)と前記第1側面(3d)の裏側の第2側面(3e)とを有し、
前記第1側面(3d)および前記第2側面(3e)は、互いに異なる特徴を有し、
前記搬送ロボット(1C)は、前記自律走行ロボット(100)に搭載された、前記物体(3)を撮像するためのカメラ(280)と、
鉛直方向に沿った第2回転軸を中心に前記物体(3)を180°回転させる反転機構(267)と、をさらに備え、
前記1以上の制御装置(320C)は、
前記カメラ(280)による撮像結果に基づいて、前記指定場所に存在する前記物体について、前記第1側面(3d)および前記第2側面(3e)のうちのいずれが前記把持部(210)に対向しているかを判断するステップと、
前記第2側面(3e)が前記把持部(210)に対向していると判断したことに応じて、前記反転機構(267)を動作させるステップと、をさらに実行する、構成1から6のいずれかに記載の搬送ロボット。
(構成9)
前記物体(3)は、対象物を収容するコンテナであり、
前記搬送ロボット(1D)は、前記把持部(210)が前記物体(3)を把持しているときに前記物体(3)の重量を計測する計測器(290)をさらに備え、
前記1以上の制御装置(320)は、
前記計測器による計測結果を監視するステップと、
前記計測結果の変動量が閾値を超えたことに応じて、前記対象物が落下したことを通知するステップと、をさらに実行する、構成1から8のいずれかに記載の搬送ロボット(1D)。
(構成10)
指定場所(2)に置かれた物体(3)を回収することおよび指定場所に前記物体(3)を重ねて配布することの少なくとも一方である対象動作を実行する搬送ロボット(1,1A,1B,1C,1D)の制御方法であって、
前記搬送ロボット(1,1A,1B,1C,1D)は、
自律走行ロボット(100)と、
前記自律走行ロボット(100)に搭載され、前記物体(3)を把持するための把持部(210)と、
前記自律走行ロボット(100)に搭載される測距センサ(220)と、
前記自律走行ロボット(100)に設けられた第1回転軸(231)を中心に前記測距センサ(220)および前記把持部(210)を回動させる回動機構(230)と、を含み、
前記制御方法は、
前記指定場所に対応する目標位置姿勢に移動するように前記自律走行ロボット(100)を制御するステップと、
前記自律走行ロボット(100)が前記目標位置姿勢に移動したことに応じて、前記回動機構(230)を制御して前記測距センサ(220)を回動させるステップと、
回動角度による前記測距センサ(220)の計測距離の変化と前記物体(3)の形状とに基づいて、前記指定場所に存在する前記物体(3)の位置姿勢を検出するステップと、
前記物体(3)の位置姿勢の検出結果に応じて、前記把持部(210)が前記対象動作を実行可能なように前記自律走行ロボット(100)の位置および前記把持部(210)の姿勢を調整するステップと、を備える、制御方法。
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。