運搬システム
【課題】
到着位置に誤差の生じるロボットへの運搬物搭載を、人手を介さずに行うことができるシステムを提供することを目的とする。
【解決手段】
運搬システムにおける計算機は、キャリブレーション用の第一のトレーを、カメラを制御して撮影する撮影部と、撮影部が撮影した撮影画像中の、第一のトレーのトレー位置を算出するトレー位置算出部と、ハンドロボットが第一のトレーにキャリブレーション用の第一の運搬物を搭載するときの、当該ハンドロボットの位置を示すハンド位置を取得するハンド位置取得部と、トレー位置及びハンド位置に基づいて、キャリブレーションデータを算出するキャリブレーション部と、移動ロボットが、到着予定領域に到着したとき、キャリブレーションデータに基づいて、当該移動ロボットが備える第二のトレーに、第二の運搬物を搭載するよう、ハンドロボットを制御する運搬物搭載部を備える。
到着位置に誤差の生じるロボットへの運搬物搭載を、人手を介さずに行うことができるシステムを提供することを目的とする。
【解決手段】
運搬システムにおける計算機は、キャリブレーション用の第一のトレーを、カメラを制御して撮影する撮影部と、撮影部が撮影した撮影画像中の、第一のトレーのトレー位置を算出するトレー位置算出部と、ハンドロボットが第一のトレーにキャリブレーション用の第一の運搬物を搭載するときの、当該ハンドロボットの位置を示すハンド位置を取得するハンド位置取得部と、トレー位置及びハンド位置に基づいて、キャリブレーションデータを算出するキャリブレーション部と、移動ロボットが、到着予定領域に到着したとき、キャリブレーションデータに基づいて、当該移動ロボットが備える第二のトレーに、第二の運搬物を搭載するよう、ハンドロボットを制御する運搬物搭載部を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動ロボット(以下、ロボットと略す)を用いた運搬システムに関する。
【背景技術】
【0002】
従来のロボットを用いたシステムは、食事や飲み物を提供する場所(厨房等)から客席まで物品を運ぶ機能を備えている。当該ロボットは、飲料や食事の運搬、タッチパネルによる注文受付、マーカやレールなどの目印に沿った移動、障害物を避けた走行等を行う(特許文献1参照)。
【0003】
【特許文献1】特開2001−300876号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
特許文献1では、厨房等から客席まで物品を運ぶ部分に関して記載されているが、食事や飲み物等の運搬物をロボットに搭載する部分に関しては考慮されていない。
【0005】
飲料など運搬時の安定性が求められる物を運搬する時には、ロボットの備えるトレー上に正確に運搬物を搭載する必要があるが、ロボットの到着位置に誤差が生じる可能性が高いため、運搬物の搭載は、人手を介して行われているのが現状である。
【0006】
そこで、本発明の目的は、到着位置に誤差の生じるロボットへの運搬物搭載を、人手を介さずに行うことができるシステムを提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明の望ましい態様の一つは次の通りである。
【0008】
移動ロボットと、カメラ及びハンドロボットに接続される計算機、を備える運搬システムにおいて、当該計算機は、キャリブレーション用の第一のトレーを、カメラを制御して撮影する撮影部と、撮影部が撮影した撮影画像中の、第一のトレーのトレー位置を算出するトレー位置算出部と、ハンドロボットが第一のトレーにキャリブレーション用の第一の運搬物を搭載するときの、当該ハンドロボットの位置を示すハンド位置を取得するハンド位置取得部と、トレー位置及びハンド位置に基づいて、キャリブレーションデータを算出するキャリブレーション部と、移動ロボットが、到着予定領域に到着したとき、キャリブレーションデータに基づいて、当該移動ロボットが備える第二のトレーに、第二の運搬物を搭載するよう、ハンドロボットを制御する運搬物搭載部を備える。
【発明の効果】
【0009】
本発明によれば、到着位置に誤差の生じるロボットへの運搬物搭載を、人手を介さずに行うことができるシステムを提供することができる。
【発明を実施するための最良の形態】
【0010】
以下、実施形態について、図面を参照しながら説明する。
【0011】
図1は、本実施例のシステム構成を示す図である。
【0012】
本システムは、運搬物提供装置1、ロボット2、運搬指示用計算機3、及び、中継器4とからなる。運搬物提供装置1及び運搬指示用計算機3は、有線又は無線で中継器4に接続され、ロボット2は、無線で中継器4に接続される。
【0013】
図2は、運搬物提供装置1の構成を示す図である。(A)は、運搬物提供装置1を横から見た図、(B)は、運搬物提供装置1を真上から見た図である。
【0014】
運搬物提供装置1は、計算機21、ハンドロボット(以下、ハンドと略す)22、カメラ23、及び、運搬物サーバ(例えば、運搬物が飲料である場合の飲料を準備するポット等)24とからなる。25は、ロボット2の到着予定領域を示し、ハンド22の可動範囲内に存在する。カメラ23を取り付ける位置や角度は、到着予定領域25の撮影が可能であれば、特に限定しない。26は、ロボット2に搭載されるトレーが止まる領域を示す。
【0015】
図3は、ロボット2の構成を示す図である。
【0016】
ロボット2は、移動台車31、レーザ等を用いて障害物までの距離を計測するセンサ32、ロボットやセンサを制御するロボット用計算機33、高さを調整するための伸縮制御可能なポール34、及び、運搬物を搭載するトレー35とからなる。
【0017】
図4は、運搬物提供装置1の計算機21のハードウェア構成を示す図である。
【0018】
計算機21は、CPU41、主記憶装置42、ハードディスク等の記憶装置43、及び、それらの構成要素を相互に接続するバス44とからなる。又、バス44を介して、CPU41の制御により動作するハンド22、及び、カメラ23が接続される。
【0019】
記憶装置43は、カメラ23を制御して領域を撮影し撮影画像442(後述)を作成する撮影部431、撮影画像442内のトレー部分を抽出する抽出部432、カメラ座標系(後述)におけるトレー位置443(後述)を算出するトレー位置算出部433、ハンド22を駆動する駆動部434、ハンド位置444を取得するハンド位置取得部435、キャリブレーションデータ445(後述)を算出するキャリブレーション部436、種々の信号を送信する信号送信部437、種々の信号を受信する信号受信部438、ロボット2が到着したと判定する到着判定部439、運搬物をロボット2に搭載するための準備を行う運搬物準備部440、及び、ハンド22を制御して運搬物をトレー35上に搭載する運搬物搭載部441等のプログラム、並びに、カメラ23にて撮影した撮影画像442、カメラ座標系におけるトレー35の代表位置を示すトレー位置443、ハンド22がトレー35に運搬物を搭載する時のハンド座標系(後述)におけるハンド22の位置を示すハンド位置444、カメラ座標系における座標系とハンド座標系における座標系の相対関係を求めるための値であるキャリブレーションデータ445、撮影画像442内のトレー部分を抽出したデータを示すトレー画像446、ハンド座標系における運搬物位置を示す運搬物位置447(運搬物が飲料の場合は運搬物サーバ24の位置)、ハンド座標系における空のコップが置いてある位置を示すコップ待機位置448、ハンド座標系における運搬物サーバ24下のコップ設置位置を示すコップ設置位置449、ハンド座標系における蓋が置いてある位置を示す蓋待機位置450、及び、ハンド22の圧力値(空のコップを把持する時の圧力、蓋を把持する時の圧力、飲料が入ったコップを把持する時の圧力等)を示すハンド圧力値451等のデータを格納する。
【0020】
運搬物準備部440は、コップ待機位置448にハンド22を移動し、ハンド22の指先でハンド圧力値451に従いコップを把持するよう制御するコップ取得部4401、ハンド22で把持したコップを運搬物位置447に設置するよう制御するコップ設置部4402、ハンド22を運搬物サーバ24に対して飲料を注ぐ操作をするよう制御する飲料注ぎ部4403、蓋待機位置450にハンド22を移動し、ハンド22の指先で蓋を把持するよう制御するコップ蓋取得部4404、及び、コップに蓋をはめ込むよう制御するコップ蓋はめ込み部4405等のプログラムを含む。これらのプログラムは、運搬物が飲料物の場合に使用される。
【0021】
CPU41は、記憶装置43に格納されるプログラムを主記憶装置42に読み込み、実行することにより、種々の処理を行う。これらのプログラムやデータは、予め記憶装置43に格納しておいてもよいし、CD−ROM等の記憶媒体から入力してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。又、該プログラムにより実現される機能を、専用のハードウェアにより実現してもよい。これらについては、後述する運搬指示用計算機3、ロボット用計算機33においても同様である。
【0022】
尚、本稿では、処理主体がプログラムであるかのように説明する場合があるが、該処理をソフトウェアで実現する場合の主体は、プログラムを実行するCPUであることはいうまでもない。
【0023】
図5は、本システムのフローを示す図である。
【0024】
まず、運搬物提供装置1において、事前にキャリブレーションを行っておく(ステップ51)。ここで、キャリブレーションとは、ロボット2がその時々で異なる場所に停止しても(ロボット2を特定の場所に正確に停止させるのは困難であり、数センチの誤差が生じる可能性がある)、そのトレー35上に運搬物を搭載できるように、カメラ23で撮影した撮影画像442に基づいてハンド位置444を算出するためのキャリブレーションデータを、事前に算出することを示す。
【0025】
尚、トレー35を大きくすることで、ロボット2の到着位置誤差を吸収する方法も考えられるが、そうすると、例えばコップのように縦に長く転倒しやすいものを運搬する時、運搬物が転倒する危険性が高まるため、この方法は望ましくない。
【0026】
次に、操作者等の操作に応じて、運搬指示用計算機3は、運搬物提供装置1及びロボット2に対して、配達指示を示す信号を送信すると共に、ロボット2には、運搬物の内容と配達先の位置を示す情報も送信する(ステップ52)。当該信号を受信すると、ロボット2は、運搬物提供装置1への移動を開始する(ステップ53)と共に、運搬物提供装置1も、運搬物をロボット2へ搭載するための準備を開始する(ステップ54)。ここで、準備とは、運搬物位置447等に基づいて、運搬物をハンド22で把持し、ロボット2が到着したらすぐに搭載できる位置までハンド22を移動させておく一連の作業を示す。運搬物が飲料の場合には、コップに飲料を注ぎ、蓋を閉める、等の動作も含まれる。
【0027】
ロボット2が運搬物提供装置1に到着すると(ステップ55)、運搬物提供装置1は、ハンド22を制御して、運搬物をトレー35上に搭載する(ステップ56)。
【0028】
運搬物が搭載されると、ロボット2は、配達先(ここでは、運搬指示用計算機3)へ移動し(ステップ57)、配達先へ到着すると(ステップ58)、操作者等が運搬物を受け取る(ステップ59)。その後、ロボット2は、初期位置へ戻る(ステップ60)。
【0029】
尚、配達先は、運搬指示用計算機3とは別の場所であってもよい。
【0030】
図6は、運搬物提供装置1のフローを示す図である。
【0031】
キャリブレーション(図5のステップ51)では、まず、到着予定領域25に、キャリブレーション用トレーを搭載した、ロボット2のトレー35と同じ高さのトレーを固定した三脚等を用意しておく。トレー35の高さを再現できるものであれば、トレーを固定する物は三脚であってもロボット2であっても構わない。又、当該トレー及び運搬物は、実際に使用する物を用いるのが望ましい。更に、認識しやすくするため、トレーに一定色を着色するか、印を予め付しておく等の加工を施した物を使用するのが望ましい。
【0032】
撮影部431は、カメラ23を制御して、キャリブレーション用トレーを撮影し、撮影した画像を撮影画像442として記憶装置43に格納する(ステップ601)。
【0033】
次に、抽出部432は、当該撮影画像442内のトレー部分を抽出し(ステップ602)、トレー位置算出部433は、抽出されたトレー部分の代表位置(例えば、トレーが円の場合は、円の中心)を、トレー位置443として算出し、当該位置を記憶装置43に格納する(ステップ603)。格納するトレー位置443は、カメラ座標系における2次元座標値であり、mi=(xi yi 1)t と表す。トレー位置は、ワールド座標系では、Pi=(Xi Yi 1)t と表すことにする。t は、転置行列を示す。
【0034】
ここで、本実施例では、ワールド座標系、カメラ座標系、及びハンド座標系を用いる。ワールド座標系とは、実空間におけるある場所を原点とした場合の3次元座標系を示す。カメラ座標系とは、撮影画像におけるある場所を原点とした場合の2次元座標系を示す。ハンド座標系とは、ハンド22のある場所を原点とした場合の3次元座標系を示す。
【0035】
本実施例では、ロボット上のトレーの高さが一定であり、ロボットは床面上を移動するため、トレーは、床面に対して水平方向にしか移動しないものとする。
【0036】
次に、駆動部434は、ハンド22にキャリブレーション用運搬物を把持させ、操作者等が位置を確認しながら、当該運搬物を正確に到着予定領域25に設置されたトレー上に搭載できる位置にハンドを移動し(ステップ604)、ハンド位置取得部435は、その時のハンド位置444を取得し、記憶装置43に格納する(ステップ605)。格納するハンド位置444は、ハンド座標系における3次元座標値であり、qi=(qxi qyi qzi)t と表す。
【0037】
トレー位置443とハンド位置444の算出は、異なるトレー位置Pi=(Xi Yi 1)t において複数回繰り返す必要がある。即ち、ステップ605の後、トレー位置443とハンド位置444の算出及び格納が所定の回数(本実施例では4回)に達しているか否かを判定し、達していなければ、ステップ601に戻り、達していればステップ607に移る(ステップ606)。ステップ601に戻る際、操作者等が、キャリブレーション用トレーを、高さを固定したまま到着予定領域25内における任意の異なる位置Pi に移動する。
【0038】
次に、キャリブレーション部435は、キャリブレーションデータ445を算出し、当該データを記憶装置43に格納する(ステップ607)。
【0039】
キャリブレーションデータの算出については、以下の計算を実施する。まず、4組のパラメータ{ qi, mi }(i = 1,2,3,4)から、
【0040】
【数1】
【0041】
(以下、数式1)を満たす行列 B を求める。数式1の、左辺と右辺を結ぶ記号は、両辺のベクトルがスカラー倍の自由度を残して等しいことを示す等号である。行列 B は、
【0042】
【数2】
【0043】
と表すことができるので、数式1における未知数は実質8個になる。一方、一つの対応する qi 及び mi の組み合わせで得られる一つの式(数式1)からは、2つの線形方程式が得られる。よって、8つの未知パラメータは、4組の qi 及び mi の組み合わせが得られれば、一意に決定できる。
【0044】
しかし、 b1 〜 b8 のみでは、数式1の両辺のベクトルがスカラー倍の自由度を残しているため、 qi が全て同一平面上にあるという拘束条件を追加する。トレーは床面に対して水平にしか移動しないため、 Pi は同一平面上しか移動せず、従って、 qi も全て同一平面上を移動することになる。 qi からなる平面を式で表すと、
【0045】
【数3】
【0046】
となる。ここで、 h は qi からなる平面の法線を示す単位ベクトル、 g は qi からなる平面とワールド座標原点の距離を示すスカラーであり、それぞれ未知である。そして、例えば、qi (i = 1,2,3) を用いて、
【0047】
【数4】
【0048】
(以下、数式2)、及び
【0049】
【数5】
【0050】
(以下、数式3)を求める。数式1より求めた B 、数式2より求めた h 、及び、数式3より求めた g が、キャリブレーションデータに相当する。
【0051】
ステップ601〜607が、図5のステップ51に相当する。
【0052】
次に、信号受信部438が運搬指示用計算機3から配達指示を示す信号を受信すると(ステップ608)、運搬物準備部440は、運搬物を搭載するための準備を行う(ステップ609、ステップ54)。
【0053】
信号受信部438は、ロボット2から到着信号を受信すると(ステップ610)、撮影部431は、カメラ23でロボット2に搭載されたトレー35を撮影し、抽出部432は、当該撮影画像442よりトレー部分を抽出し(ステップ612)、トレー位置算出部433は、撮影画像442内のトレー位置 m=(x y 1)t を算出する(ステップ613)。ハンド位置取得部435は、この m と、ステップ607で得られた B , h , g を入力とし、
【0054】
【数6】
【0055】
よりハンド位置 q を算出する(ステップ614)。これにより、トレーに運搬物を搭載する際のハンド22の動作が確定する。
【0056】
次に、運搬物搭載部441は、把持した運搬物を、算出した q に示される位置において、当該指部分を開いて運搬物を離す(ステップ615)。
【0057】
図7は、運搬物提供装置1の機能モジュールのフローを示す図である。図6の説明と重複するため、詳細な説明は省略する。
【0058】
図8は、トレーの加工例を示す図である。
【0059】
認識しやすい模様を描いたトレー81、一定色で着色したトレー82、中央に点を付記したトレー83等を用いると、認識がより容易になる。
【0060】
又、床面に対して同じ高さの4つの異なる場所のトレーを表すのに、トレー模様を描いた、歪みのない一枚の板を用いてもよい。例えば、81に示す模様のトレーを板上に4箇所描いた板84を用いてもよい。
【0061】
図9は、運搬指示用計算機3のハードウェア構成を示す図である。
【0062】
運搬指示用計算機3は、CPU91、主記憶装置92、記憶装置93、バス96の他、入力装置93、及び、表示装置95とからなる。
【0063】
記憶装置93は、環境地図935(後述)を表示する地図表示部931、ロボット2が移動する度にその位置を環境地図935上に表示するロボット位置表示部932、種々の信号を送信する信号送信部933、及び、種々の信号を受信する信号受信部934等のプログラム、並びに、ロボット2が移動する環境の地図を示す環境地図935、環境地図935内におけるロボット2の位置を示すロボット位置936、配達先の位置を示す配達先位置937、及び、配達時のポール34の高さを示す配達時ポール高938等のデータを格納する。
【0064】
尚、環境地図935は、ロボット2が、室内の通行可能な場所を移動しながらセンサ32で距離情報を取得し、各位置において取得した距離情報を一つに統合したものである。配達先位置937は、予め記憶装置に保持していてもよいし、入力装置94から、表示装置95に表示される環境地図935上に該当位置をクリックできるようにしてもよい。又、配達時ポール高938も、希望する高さが決まっている場合はその高さデータを予め記憶装置に保持していてもよいし、入力装置94から指定してもよい。
【0065】
図10は、運搬指示用計算機3のフロー図である。
【0066】
配達を依頼するためのアプリケーションが起動されると、地図表示部931は、表示装置95上において、環境地図935を表示すると共に、ロボット位置表示部932は、ロボット位置936を環境地図935上の該当位置に表示する(ステップ101)。
【0067】
次に、信号送信部933は、入力装置94から入力された指示(配達に該当するボタンを押下される等)に基づき、配達指示信号を送信する(ステップ102)。当該信号は、運搬物提供装置1の計算機21、ロボット用計算機33に送信される。又、ロボット用計算機33には、配達先位置937及び配達時ポール高938も送信される。
【0068】
ロボット2が運搬物を配達先まで運搬した後、信号受信部934は、運搬物の到着信号をロボット2より受信し(ステップ103)、運搬物が到着したことを操作者等に知らせる(到着した旨を知らせるウィンドウを表示する、音を鳴らす等)。運搬物が受け取られると、入力装置94から入力された指示(受取に該当するボタンが押下される等)に基づき、信号送信部933は、運搬物の受取信号をロボット2に送信する(ステップ104)。
【0069】
図11は、ロボット用計算機33のハードウェア構成を示す図である。
【0070】
CPU111、主記憶装置112、記憶装置113、移動台車31、センサ32、ポール34等が、バス114を介して接続される。
【0071】
記憶装置113は、センサデータ1139(後述)を処理するセンサデータ処理部1131、ロボット2の移動経路を作成する経路作成部1132、経路座標値1145に従いロボット2が次に進むべき座標値にロボット2を移動するよう制御するロボット制御部1133、ロボット2の現在位置を算出する自己位置算出部1134、種々の信号を送信する信号送信部1135、種々の信号を受信する信号受信部1136、ポールの高さを調整するポール高調整部1137、及び、タッチセンサ処理部1138(後述)等のプログラム、並びに、図9と同じデータである環境地図935、配達先位置937、配達時ポール高938の他、センサ32から受信したロボット2と周辺の障害物の間の距離情報を示すセンサデータ1139、ロボット2の初期位置を示すロボット初期位置1140、ロボット2の環境地図935上の位置を示すロボット位置1141、ロボット2の大きさを示すロボットサイズ1142、運搬物提供装置1の位置を示す運搬物提供装置位置1143、ロボット2の移動経路作成時の目的地の位置を示す目的地1144、ロボット2が進む経路を(点郡の座標値を順次記載)示す経路座標値1145、及び、運搬物提供装置1から運搬物を受け取る時のポールの高さを示す受取時ポール高1146等のデータを格納する。
【0072】
尚、経路作成において、作成が必要となる経路は、ロボット初期位置1140から運搬物提供装置位置1143、運搬物提供装置位置1143から配達先位置937、配達先位置937からロボット初期位置1140、の3経路である。そこで、経路作成部1132は、出発地の座標値、配達先の座標値、及び、ロボットサイズを入力として、環境地図935における最短経路の経路点郡データを作成し、経路座標値1145として記憶装置113に格納する。又、ロボット制御部1133は、ロボットサイズ1142により、ロボットの通行可能な経路を限定することもできる。又、自己位置算出部1134は、センサ32から得られたセンサデータ1139と環境地図935のマッチングを随時行い、自身の現在地を算出し、ロボット位置1141を更新する。更に、目的地1144には、それぞれの移動に応じて、運搬物提供装置位置1143、配達先位置937、ロボット初期位置1140のうち、適切な値を用いる。
【0073】
図12は、ロボット用計算機33のフローを示す図である。
【0074】
まず、センサデータ処理部1131は、センサ32を制御して、センサデータ1139を受信する(ステップ1201)。
【0075】
次に、自己位置算出部1134は、ロボット2が正確にどの位置にいるか探索する(ステップ1202)。具体的には、先に得られたセンサデータ1139と予めセンサ32で取得した環境地図935とのマッチングにより合致する場所を探索し、合致した場所をロボット位置1141として記憶装置113に格納すると共に、当該ロボット位置1141を、運搬指示用計算機3に送信する。
【0076】
信号受信部1135は、運搬指示用計算機3から送信された配達指示信号を受信すると(ステップ1203)、同時に送信された配達先位置937と配達時ポール高938を記憶装置113に格納し、ロボット制御部1133は、経路作成部1132が作成した運搬物提供装置1までの経路に従い、ロボット2を移動させる(ステップ1204)。
【0077】
ロボット2が第1の目的地である運搬物提供装置1に到着したら、ポール高調整部1137は、受取時ポール高1146の値の高さまでポール34を伸長し(ステップ1205)、信号送信部1136は、運搬物を受け取る準備が出来たことを示す信号を、運搬物提供装置1に送信する(ステップ1206)。
【0078】
運搬物提供装置1でロボット到着信号を受信したら、ハンド22を制御して運搬物をポール34上のトレー35に搭載し、信号受信部1136は、運搬物設置終了を知らせる信号を運搬物提供装置1より受信したら(ステップ1207)、ポールの高さを元の最短の状態に戻し、経路作成部1132が作成した経路に基づき、ロボット制御部1133がロボット2を配達先まで移動させる(ステップ1208)。ポールの高さを最短の状態に戻して移動するのは、移動時に周囲の障害物との衝突を極力避け、運搬物を極力安定した状態で運搬するためである。
【0079】
ロボット2が第2の目的地である配達先に到着したら、ポール高調整部1137は、配達先ポール高938の値の高さまでポール34を伸長し(ステップ1209)、信号発信部1135は、配達物が到着したことを知らせる信号を運搬指示用計算機3に送信する。
【0080】
配達先にて配達物を受け取ったことを知らせる信号を受信したら(ステップ1210)、ポールの高さを元の最短の状態に戻し、ロボット制御部1133は、ロボット2を元の位置に移動させる(ステップ1211)。
【0081】
図13は、運搬物が飲料物である場合の運搬物準備部440(図4)のフロー図である。
【0082】
まず、コップ取得部4401は、コップ待機位置にハンド22を移動し、ハンド22の指部分を閉じてコップをつかむよう制御する(ステップ1301)。この時の指部分の移動量は、ハンド圧力値452の、空のコップを掴む時の値を用いる。
【0083】
次に、コップ設置部4402は、空のコップをハンド22で把持したまま、コップ待機位置から運搬物サーバ位置に移動させる(ステップ1302)。
【0084】
次に、飲料注ぎ部4403は、ハンド22で運搬物サーバ24の飲料を注ぐ操作を実施する(ステップ1303)。例えば、ボタンを押す、レバーを下げる等の動作が挙げられる。
【0085】
飲料を注ぎ終わったら、コップ蓋取得部4404は、蓋待機位置にハンド22を移動し、ハンド22の指部分を閉じて蓋をつかむよう制御する(ステップ1304)。この時の指部分の移動量は、ハンド圧力値452の、蓋を掴む時の値を用いる。
【0086】
次に、コップ蓋はめ込み部4405は、蓋をハンド22で把持したまま、蓋待機位置から運搬物サーバ位置にある飲料の注がれたコップ上に移動し、ハンド22の指部分を開いて蓋を離し、ハンド22指部分を蓋の上部に水平になるように移動し、上から数度、幅を変えて押さえることにより蓋をコップにはめ込むよう制御する(ステップ1305)。
【0087】
図14は、運搬指示用計算機3の表示装置95の画面例である。
【0088】
環境地図935は、環境地図と部屋の地図を重ね合わせて表示すると分かりやすい。環境地図と部屋の地図の重ね合わせを1401に、環境地図のみを抽出したデータを1402に示す。又、環境地図上には、運搬物提供装置位置1143、ロボット位置1140、配達先位置937、ロボットサイズ1142、及び、ロボットのスタート地点とゴール地点との間を補間する経路1145等を表示する。
【0089】
1403には、配達指示信号をロボット2や運搬物提供装置1に送信するためのボタン、配達先位置を指定するためのボタン、運搬物を受け取ったことをロボット2に送信するためのボタン等を表示する。
【0090】
尚、上記実施例において、ロボット2の到着検知、運搬物の搭載や受取の検知等を、他の計算機からの信号を受信することにより行うとして説明したが、それに限定されない。例えば、ロボット2の到着検知は、カメラ23を用いて行うこともできる。この場合、到着判定部439は、撮影画像442とトレー画像447を比較して、トレー35が静止したらロボット2が到着したと判定する。又、運搬物搭載等の検知では、タッチセンサを用いて行うこともできる。この場合、トレー35の底部分にタッチセンサを設置しておき、タッチセンサ処理部1138が、トレー35上に運搬物が搭載されているか否か判断する。更に、運搬物の有無を判断するためのセンサは、タッチセンサに限定されず、レーザセンサ、カメラ等を用いてもよい。
【図面の簡単な説明】
【0091】
【図1】システム構成を示す図。
【図2】運搬物提供装置1の構成を示す図。
【図3】ロボット2の構成を示す図。
【図4】運搬物提供装置1の計算機21のハードウェア構成を示す図。
【図5】本システムのフロー図。
【図6】運搬物提供装置1のフロー図。
【図7】運搬物提供装置1の機能モジュールのフロー図。
【図8】運搬物の加工例を示す図。
【図9】運搬指示用計算機3のハードウェア構成を示す図。
【図10】運搬指示用計算機3のフロー図。
【図11】ロボット用計算機33のハードウェア構成を示す図。
【図12】ロボット用計算機32のフロー図。
【図13】運搬物が飲料物である場合の運搬物準備部440のフロー図。
【図14】運搬指示用計算機3の表示装置95の画面例。
【符号の説明】
【0092】
1・・・運搬物提供装置、2・・・ロボット、3・・・運搬指示用計算機、4・・・中継器。
【技術分野】
【0001】
本発明は、移動ロボット(以下、ロボットと略す)を用いた運搬システムに関する。
【背景技術】
【0002】
従来のロボットを用いたシステムは、食事や飲み物を提供する場所(厨房等)から客席まで物品を運ぶ機能を備えている。当該ロボットは、飲料や食事の運搬、タッチパネルによる注文受付、マーカやレールなどの目印に沿った移動、障害物を避けた走行等を行う(特許文献1参照)。
【0003】
【特許文献1】特開2001−300876号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
特許文献1では、厨房等から客席まで物品を運ぶ部分に関して記載されているが、食事や飲み物等の運搬物をロボットに搭載する部分に関しては考慮されていない。
【0005】
飲料など運搬時の安定性が求められる物を運搬する時には、ロボットの備えるトレー上に正確に運搬物を搭載する必要があるが、ロボットの到着位置に誤差が生じる可能性が高いため、運搬物の搭載は、人手を介して行われているのが現状である。
【0006】
そこで、本発明の目的は、到着位置に誤差の生じるロボットへの運搬物搭載を、人手を介さずに行うことができるシステムを提供することにある。
【課題を解決するための手段】
【0007】
上記課題を解決するため、本発明の望ましい態様の一つは次の通りである。
【0008】
移動ロボットと、カメラ及びハンドロボットに接続される計算機、を備える運搬システムにおいて、当該計算機は、キャリブレーション用の第一のトレーを、カメラを制御して撮影する撮影部と、撮影部が撮影した撮影画像中の、第一のトレーのトレー位置を算出するトレー位置算出部と、ハンドロボットが第一のトレーにキャリブレーション用の第一の運搬物を搭載するときの、当該ハンドロボットの位置を示すハンド位置を取得するハンド位置取得部と、トレー位置及びハンド位置に基づいて、キャリブレーションデータを算出するキャリブレーション部と、移動ロボットが、到着予定領域に到着したとき、キャリブレーションデータに基づいて、当該移動ロボットが備える第二のトレーに、第二の運搬物を搭載するよう、ハンドロボットを制御する運搬物搭載部を備える。
【発明の効果】
【0009】
本発明によれば、到着位置に誤差の生じるロボットへの運搬物搭載を、人手を介さずに行うことができるシステムを提供することができる。
【発明を実施するための最良の形態】
【0010】
以下、実施形態について、図面を参照しながら説明する。
【0011】
図1は、本実施例のシステム構成を示す図である。
【0012】
本システムは、運搬物提供装置1、ロボット2、運搬指示用計算機3、及び、中継器4とからなる。運搬物提供装置1及び運搬指示用計算機3は、有線又は無線で中継器4に接続され、ロボット2は、無線で中継器4に接続される。
【0013】
図2は、運搬物提供装置1の構成を示す図である。(A)は、運搬物提供装置1を横から見た図、(B)は、運搬物提供装置1を真上から見た図である。
【0014】
運搬物提供装置1は、計算機21、ハンドロボット(以下、ハンドと略す)22、カメラ23、及び、運搬物サーバ(例えば、運搬物が飲料である場合の飲料を準備するポット等)24とからなる。25は、ロボット2の到着予定領域を示し、ハンド22の可動範囲内に存在する。カメラ23を取り付ける位置や角度は、到着予定領域25の撮影が可能であれば、特に限定しない。26は、ロボット2に搭載されるトレーが止まる領域を示す。
【0015】
図3は、ロボット2の構成を示す図である。
【0016】
ロボット2は、移動台車31、レーザ等を用いて障害物までの距離を計測するセンサ32、ロボットやセンサを制御するロボット用計算機33、高さを調整するための伸縮制御可能なポール34、及び、運搬物を搭載するトレー35とからなる。
【0017】
図4は、運搬物提供装置1の計算機21のハードウェア構成を示す図である。
【0018】
計算機21は、CPU41、主記憶装置42、ハードディスク等の記憶装置43、及び、それらの構成要素を相互に接続するバス44とからなる。又、バス44を介して、CPU41の制御により動作するハンド22、及び、カメラ23が接続される。
【0019】
記憶装置43は、カメラ23を制御して領域を撮影し撮影画像442(後述)を作成する撮影部431、撮影画像442内のトレー部分を抽出する抽出部432、カメラ座標系(後述)におけるトレー位置443(後述)を算出するトレー位置算出部433、ハンド22を駆動する駆動部434、ハンド位置444を取得するハンド位置取得部435、キャリブレーションデータ445(後述)を算出するキャリブレーション部436、種々の信号を送信する信号送信部437、種々の信号を受信する信号受信部438、ロボット2が到着したと判定する到着判定部439、運搬物をロボット2に搭載するための準備を行う運搬物準備部440、及び、ハンド22を制御して運搬物をトレー35上に搭載する運搬物搭載部441等のプログラム、並びに、カメラ23にて撮影した撮影画像442、カメラ座標系におけるトレー35の代表位置を示すトレー位置443、ハンド22がトレー35に運搬物を搭載する時のハンド座標系(後述)におけるハンド22の位置を示すハンド位置444、カメラ座標系における座標系とハンド座標系における座標系の相対関係を求めるための値であるキャリブレーションデータ445、撮影画像442内のトレー部分を抽出したデータを示すトレー画像446、ハンド座標系における運搬物位置を示す運搬物位置447(運搬物が飲料の場合は運搬物サーバ24の位置)、ハンド座標系における空のコップが置いてある位置を示すコップ待機位置448、ハンド座標系における運搬物サーバ24下のコップ設置位置を示すコップ設置位置449、ハンド座標系における蓋が置いてある位置を示す蓋待機位置450、及び、ハンド22の圧力値(空のコップを把持する時の圧力、蓋を把持する時の圧力、飲料が入ったコップを把持する時の圧力等)を示すハンド圧力値451等のデータを格納する。
【0020】
運搬物準備部440は、コップ待機位置448にハンド22を移動し、ハンド22の指先でハンド圧力値451に従いコップを把持するよう制御するコップ取得部4401、ハンド22で把持したコップを運搬物位置447に設置するよう制御するコップ設置部4402、ハンド22を運搬物サーバ24に対して飲料を注ぐ操作をするよう制御する飲料注ぎ部4403、蓋待機位置450にハンド22を移動し、ハンド22の指先で蓋を把持するよう制御するコップ蓋取得部4404、及び、コップに蓋をはめ込むよう制御するコップ蓋はめ込み部4405等のプログラムを含む。これらのプログラムは、運搬物が飲料物の場合に使用される。
【0021】
CPU41は、記憶装置43に格納されるプログラムを主記憶装置42に読み込み、実行することにより、種々の処理を行う。これらのプログラムやデータは、予め記憶装置43に格納しておいてもよいし、CD−ROM等の記憶媒体から入力してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。又、該プログラムにより実現される機能を、専用のハードウェアにより実現してもよい。これらについては、後述する運搬指示用計算機3、ロボット用計算機33においても同様である。
【0022】
尚、本稿では、処理主体がプログラムであるかのように説明する場合があるが、該処理をソフトウェアで実現する場合の主体は、プログラムを実行するCPUであることはいうまでもない。
【0023】
図5は、本システムのフローを示す図である。
【0024】
まず、運搬物提供装置1において、事前にキャリブレーションを行っておく(ステップ51)。ここで、キャリブレーションとは、ロボット2がその時々で異なる場所に停止しても(ロボット2を特定の場所に正確に停止させるのは困難であり、数センチの誤差が生じる可能性がある)、そのトレー35上に運搬物を搭載できるように、カメラ23で撮影した撮影画像442に基づいてハンド位置444を算出するためのキャリブレーションデータを、事前に算出することを示す。
【0025】
尚、トレー35を大きくすることで、ロボット2の到着位置誤差を吸収する方法も考えられるが、そうすると、例えばコップのように縦に長く転倒しやすいものを運搬する時、運搬物が転倒する危険性が高まるため、この方法は望ましくない。
【0026】
次に、操作者等の操作に応じて、運搬指示用計算機3は、運搬物提供装置1及びロボット2に対して、配達指示を示す信号を送信すると共に、ロボット2には、運搬物の内容と配達先の位置を示す情報も送信する(ステップ52)。当該信号を受信すると、ロボット2は、運搬物提供装置1への移動を開始する(ステップ53)と共に、運搬物提供装置1も、運搬物をロボット2へ搭載するための準備を開始する(ステップ54)。ここで、準備とは、運搬物位置447等に基づいて、運搬物をハンド22で把持し、ロボット2が到着したらすぐに搭載できる位置までハンド22を移動させておく一連の作業を示す。運搬物が飲料の場合には、コップに飲料を注ぎ、蓋を閉める、等の動作も含まれる。
【0027】
ロボット2が運搬物提供装置1に到着すると(ステップ55)、運搬物提供装置1は、ハンド22を制御して、運搬物をトレー35上に搭載する(ステップ56)。
【0028】
運搬物が搭載されると、ロボット2は、配達先(ここでは、運搬指示用計算機3)へ移動し(ステップ57)、配達先へ到着すると(ステップ58)、操作者等が運搬物を受け取る(ステップ59)。その後、ロボット2は、初期位置へ戻る(ステップ60)。
【0029】
尚、配達先は、運搬指示用計算機3とは別の場所であってもよい。
【0030】
図6は、運搬物提供装置1のフローを示す図である。
【0031】
キャリブレーション(図5のステップ51)では、まず、到着予定領域25に、キャリブレーション用トレーを搭載した、ロボット2のトレー35と同じ高さのトレーを固定した三脚等を用意しておく。トレー35の高さを再現できるものであれば、トレーを固定する物は三脚であってもロボット2であっても構わない。又、当該トレー及び運搬物は、実際に使用する物を用いるのが望ましい。更に、認識しやすくするため、トレーに一定色を着色するか、印を予め付しておく等の加工を施した物を使用するのが望ましい。
【0032】
撮影部431は、カメラ23を制御して、キャリブレーション用トレーを撮影し、撮影した画像を撮影画像442として記憶装置43に格納する(ステップ601)。
【0033】
次に、抽出部432は、当該撮影画像442内のトレー部分を抽出し(ステップ602)、トレー位置算出部433は、抽出されたトレー部分の代表位置(例えば、トレーが円の場合は、円の中心)を、トレー位置443として算出し、当該位置を記憶装置43に格納する(ステップ603)。格納するトレー位置443は、カメラ座標系における2次元座標値であり、mi=(xi yi 1)t と表す。トレー位置は、ワールド座標系では、Pi=(Xi Yi 1)t と表すことにする。t は、転置行列を示す。
【0034】
ここで、本実施例では、ワールド座標系、カメラ座標系、及びハンド座標系を用いる。ワールド座標系とは、実空間におけるある場所を原点とした場合の3次元座標系を示す。カメラ座標系とは、撮影画像におけるある場所を原点とした場合の2次元座標系を示す。ハンド座標系とは、ハンド22のある場所を原点とした場合の3次元座標系を示す。
【0035】
本実施例では、ロボット上のトレーの高さが一定であり、ロボットは床面上を移動するため、トレーは、床面に対して水平方向にしか移動しないものとする。
【0036】
次に、駆動部434は、ハンド22にキャリブレーション用運搬物を把持させ、操作者等が位置を確認しながら、当該運搬物を正確に到着予定領域25に設置されたトレー上に搭載できる位置にハンドを移動し(ステップ604)、ハンド位置取得部435は、その時のハンド位置444を取得し、記憶装置43に格納する(ステップ605)。格納するハンド位置444は、ハンド座標系における3次元座標値であり、qi=(qxi qyi qzi)t と表す。
【0037】
トレー位置443とハンド位置444の算出は、異なるトレー位置Pi=(Xi Yi 1)t において複数回繰り返す必要がある。即ち、ステップ605の後、トレー位置443とハンド位置444の算出及び格納が所定の回数(本実施例では4回)に達しているか否かを判定し、達していなければ、ステップ601に戻り、達していればステップ607に移る(ステップ606)。ステップ601に戻る際、操作者等が、キャリブレーション用トレーを、高さを固定したまま到着予定領域25内における任意の異なる位置Pi に移動する。
【0038】
次に、キャリブレーション部435は、キャリブレーションデータ445を算出し、当該データを記憶装置43に格納する(ステップ607)。
【0039】
キャリブレーションデータの算出については、以下の計算を実施する。まず、4組のパラメータ{ qi, mi }(i = 1,2,3,4)から、
【0040】
【数1】
【0041】
(以下、数式1)を満たす行列 B を求める。数式1の、左辺と右辺を結ぶ記号は、両辺のベクトルがスカラー倍の自由度を残して等しいことを示す等号である。行列 B は、
【0042】
【数2】
【0043】
と表すことができるので、数式1における未知数は実質8個になる。一方、一つの対応する qi 及び mi の組み合わせで得られる一つの式(数式1)からは、2つの線形方程式が得られる。よって、8つの未知パラメータは、4組の qi 及び mi の組み合わせが得られれば、一意に決定できる。
【0044】
しかし、 b1 〜 b8 のみでは、数式1の両辺のベクトルがスカラー倍の自由度を残しているため、 qi が全て同一平面上にあるという拘束条件を追加する。トレーは床面に対して水平にしか移動しないため、 Pi は同一平面上しか移動せず、従って、 qi も全て同一平面上を移動することになる。 qi からなる平面を式で表すと、
【0045】
【数3】
【0046】
となる。ここで、 h は qi からなる平面の法線を示す単位ベクトル、 g は qi からなる平面とワールド座標原点の距離を示すスカラーであり、それぞれ未知である。そして、例えば、qi (i = 1,2,3) を用いて、
【0047】
【数4】
【0048】
(以下、数式2)、及び
【0049】
【数5】
【0050】
(以下、数式3)を求める。数式1より求めた B 、数式2より求めた h 、及び、数式3より求めた g が、キャリブレーションデータに相当する。
【0051】
ステップ601〜607が、図5のステップ51に相当する。
【0052】
次に、信号受信部438が運搬指示用計算機3から配達指示を示す信号を受信すると(ステップ608)、運搬物準備部440は、運搬物を搭載するための準備を行う(ステップ609、ステップ54)。
【0053】
信号受信部438は、ロボット2から到着信号を受信すると(ステップ610)、撮影部431は、カメラ23でロボット2に搭載されたトレー35を撮影し、抽出部432は、当該撮影画像442よりトレー部分を抽出し(ステップ612)、トレー位置算出部433は、撮影画像442内のトレー位置 m=(x y 1)t を算出する(ステップ613)。ハンド位置取得部435は、この m と、ステップ607で得られた B , h , g を入力とし、
【0054】
【数6】
【0055】
よりハンド位置 q を算出する(ステップ614)。これにより、トレーに運搬物を搭載する際のハンド22の動作が確定する。
【0056】
次に、運搬物搭載部441は、把持した運搬物を、算出した q に示される位置において、当該指部分を開いて運搬物を離す(ステップ615)。
【0057】
図7は、運搬物提供装置1の機能モジュールのフローを示す図である。図6の説明と重複するため、詳細な説明は省略する。
【0058】
図8は、トレーの加工例を示す図である。
【0059】
認識しやすい模様を描いたトレー81、一定色で着色したトレー82、中央に点を付記したトレー83等を用いると、認識がより容易になる。
【0060】
又、床面に対して同じ高さの4つの異なる場所のトレーを表すのに、トレー模様を描いた、歪みのない一枚の板を用いてもよい。例えば、81に示す模様のトレーを板上に4箇所描いた板84を用いてもよい。
【0061】
図9は、運搬指示用計算機3のハードウェア構成を示す図である。
【0062】
運搬指示用計算機3は、CPU91、主記憶装置92、記憶装置93、バス96の他、入力装置93、及び、表示装置95とからなる。
【0063】
記憶装置93は、環境地図935(後述)を表示する地図表示部931、ロボット2が移動する度にその位置を環境地図935上に表示するロボット位置表示部932、種々の信号を送信する信号送信部933、及び、種々の信号を受信する信号受信部934等のプログラム、並びに、ロボット2が移動する環境の地図を示す環境地図935、環境地図935内におけるロボット2の位置を示すロボット位置936、配達先の位置を示す配達先位置937、及び、配達時のポール34の高さを示す配達時ポール高938等のデータを格納する。
【0064】
尚、環境地図935は、ロボット2が、室内の通行可能な場所を移動しながらセンサ32で距離情報を取得し、各位置において取得した距離情報を一つに統合したものである。配達先位置937は、予め記憶装置に保持していてもよいし、入力装置94から、表示装置95に表示される環境地図935上に該当位置をクリックできるようにしてもよい。又、配達時ポール高938も、希望する高さが決まっている場合はその高さデータを予め記憶装置に保持していてもよいし、入力装置94から指定してもよい。
【0065】
図10は、運搬指示用計算機3のフロー図である。
【0066】
配達を依頼するためのアプリケーションが起動されると、地図表示部931は、表示装置95上において、環境地図935を表示すると共に、ロボット位置表示部932は、ロボット位置936を環境地図935上の該当位置に表示する(ステップ101)。
【0067】
次に、信号送信部933は、入力装置94から入力された指示(配達に該当するボタンを押下される等)に基づき、配達指示信号を送信する(ステップ102)。当該信号は、運搬物提供装置1の計算機21、ロボット用計算機33に送信される。又、ロボット用計算機33には、配達先位置937及び配達時ポール高938も送信される。
【0068】
ロボット2が運搬物を配達先まで運搬した後、信号受信部934は、運搬物の到着信号をロボット2より受信し(ステップ103)、運搬物が到着したことを操作者等に知らせる(到着した旨を知らせるウィンドウを表示する、音を鳴らす等)。運搬物が受け取られると、入力装置94から入力された指示(受取に該当するボタンが押下される等)に基づき、信号送信部933は、運搬物の受取信号をロボット2に送信する(ステップ104)。
【0069】
図11は、ロボット用計算機33のハードウェア構成を示す図である。
【0070】
CPU111、主記憶装置112、記憶装置113、移動台車31、センサ32、ポール34等が、バス114を介して接続される。
【0071】
記憶装置113は、センサデータ1139(後述)を処理するセンサデータ処理部1131、ロボット2の移動経路を作成する経路作成部1132、経路座標値1145に従いロボット2が次に進むべき座標値にロボット2を移動するよう制御するロボット制御部1133、ロボット2の現在位置を算出する自己位置算出部1134、種々の信号を送信する信号送信部1135、種々の信号を受信する信号受信部1136、ポールの高さを調整するポール高調整部1137、及び、タッチセンサ処理部1138(後述)等のプログラム、並びに、図9と同じデータである環境地図935、配達先位置937、配達時ポール高938の他、センサ32から受信したロボット2と周辺の障害物の間の距離情報を示すセンサデータ1139、ロボット2の初期位置を示すロボット初期位置1140、ロボット2の環境地図935上の位置を示すロボット位置1141、ロボット2の大きさを示すロボットサイズ1142、運搬物提供装置1の位置を示す運搬物提供装置位置1143、ロボット2の移動経路作成時の目的地の位置を示す目的地1144、ロボット2が進む経路を(点郡の座標値を順次記載)示す経路座標値1145、及び、運搬物提供装置1から運搬物を受け取る時のポールの高さを示す受取時ポール高1146等のデータを格納する。
【0072】
尚、経路作成において、作成が必要となる経路は、ロボット初期位置1140から運搬物提供装置位置1143、運搬物提供装置位置1143から配達先位置937、配達先位置937からロボット初期位置1140、の3経路である。そこで、経路作成部1132は、出発地の座標値、配達先の座標値、及び、ロボットサイズを入力として、環境地図935における最短経路の経路点郡データを作成し、経路座標値1145として記憶装置113に格納する。又、ロボット制御部1133は、ロボットサイズ1142により、ロボットの通行可能な経路を限定することもできる。又、自己位置算出部1134は、センサ32から得られたセンサデータ1139と環境地図935のマッチングを随時行い、自身の現在地を算出し、ロボット位置1141を更新する。更に、目的地1144には、それぞれの移動に応じて、運搬物提供装置位置1143、配達先位置937、ロボット初期位置1140のうち、適切な値を用いる。
【0073】
図12は、ロボット用計算機33のフローを示す図である。
【0074】
まず、センサデータ処理部1131は、センサ32を制御して、センサデータ1139を受信する(ステップ1201)。
【0075】
次に、自己位置算出部1134は、ロボット2が正確にどの位置にいるか探索する(ステップ1202)。具体的には、先に得られたセンサデータ1139と予めセンサ32で取得した環境地図935とのマッチングにより合致する場所を探索し、合致した場所をロボット位置1141として記憶装置113に格納すると共に、当該ロボット位置1141を、運搬指示用計算機3に送信する。
【0076】
信号受信部1135は、運搬指示用計算機3から送信された配達指示信号を受信すると(ステップ1203)、同時に送信された配達先位置937と配達時ポール高938を記憶装置113に格納し、ロボット制御部1133は、経路作成部1132が作成した運搬物提供装置1までの経路に従い、ロボット2を移動させる(ステップ1204)。
【0077】
ロボット2が第1の目的地である運搬物提供装置1に到着したら、ポール高調整部1137は、受取時ポール高1146の値の高さまでポール34を伸長し(ステップ1205)、信号送信部1136は、運搬物を受け取る準備が出来たことを示す信号を、運搬物提供装置1に送信する(ステップ1206)。
【0078】
運搬物提供装置1でロボット到着信号を受信したら、ハンド22を制御して運搬物をポール34上のトレー35に搭載し、信号受信部1136は、運搬物設置終了を知らせる信号を運搬物提供装置1より受信したら(ステップ1207)、ポールの高さを元の最短の状態に戻し、経路作成部1132が作成した経路に基づき、ロボット制御部1133がロボット2を配達先まで移動させる(ステップ1208)。ポールの高さを最短の状態に戻して移動するのは、移動時に周囲の障害物との衝突を極力避け、運搬物を極力安定した状態で運搬するためである。
【0079】
ロボット2が第2の目的地である配達先に到着したら、ポール高調整部1137は、配達先ポール高938の値の高さまでポール34を伸長し(ステップ1209)、信号発信部1135は、配達物が到着したことを知らせる信号を運搬指示用計算機3に送信する。
【0080】
配達先にて配達物を受け取ったことを知らせる信号を受信したら(ステップ1210)、ポールの高さを元の最短の状態に戻し、ロボット制御部1133は、ロボット2を元の位置に移動させる(ステップ1211)。
【0081】
図13は、運搬物が飲料物である場合の運搬物準備部440(図4)のフロー図である。
【0082】
まず、コップ取得部4401は、コップ待機位置にハンド22を移動し、ハンド22の指部分を閉じてコップをつかむよう制御する(ステップ1301)。この時の指部分の移動量は、ハンド圧力値452の、空のコップを掴む時の値を用いる。
【0083】
次に、コップ設置部4402は、空のコップをハンド22で把持したまま、コップ待機位置から運搬物サーバ位置に移動させる(ステップ1302)。
【0084】
次に、飲料注ぎ部4403は、ハンド22で運搬物サーバ24の飲料を注ぐ操作を実施する(ステップ1303)。例えば、ボタンを押す、レバーを下げる等の動作が挙げられる。
【0085】
飲料を注ぎ終わったら、コップ蓋取得部4404は、蓋待機位置にハンド22を移動し、ハンド22の指部分を閉じて蓋をつかむよう制御する(ステップ1304)。この時の指部分の移動量は、ハンド圧力値452の、蓋を掴む時の値を用いる。
【0086】
次に、コップ蓋はめ込み部4405は、蓋をハンド22で把持したまま、蓋待機位置から運搬物サーバ位置にある飲料の注がれたコップ上に移動し、ハンド22の指部分を開いて蓋を離し、ハンド22指部分を蓋の上部に水平になるように移動し、上から数度、幅を変えて押さえることにより蓋をコップにはめ込むよう制御する(ステップ1305)。
【0087】
図14は、運搬指示用計算機3の表示装置95の画面例である。
【0088】
環境地図935は、環境地図と部屋の地図を重ね合わせて表示すると分かりやすい。環境地図と部屋の地図の重ね合わせを1401に、環境地図のみを抽出したデータを1402に示す。又、環境地図上には、運搬物提供装置位置1143、ロボット位置1140、配達先位置937、ロボットサイズ1142、及び、ロボットのスタート地点とゴール地点との間を補間する経路1145等を表示する。
【0089】
1403には、配達指示信号をロボット2や運搬物提供装置1に送信するためのボタン、配達先位置を指定するためのボタン、運搬物を受け取ったことをロボット2に送信するためのボタン等を表示する。
【0090】
尚、上記実施例において、ロボット2の到着検知、運搬物の搭載や受取の検知等を、他の計算機からの信号を受信することにより行うとして説明したが、それに限定されない。例えば、ロボット2の到着検知は、カメラ23を用いて行うこともできる。この場合、到着判定部439は、撮影画像442とトレー画像447を比較して、トレー35が静止したらロボット2が到着したと判定する。又、運搬物搭載等の検知では、タッチセンサを用いて行うこともできる。この場合、トレー35の底部分にタッチセンサを設置しておき、タッチセンサ処理部1138が、トレー35上に運搬物が搭載されているか否か判断する。更に、運搬物の有無を判断するためのセンサは、タッチセンサに限定されず、レーザセンサ、カメラ等を用いてもよい。
【図面の簡単な説明】
【0091】
【図1】システム構成を示す図。
【図2】運搬物提供装置1の構成を示す図。
【図3】ロボット2の構成を示す図。
【図4】運搬物提供装置1の計算機21のハードウェア構成を示す図。
【図5】本システムのフロー図。
【図6】運搬物提供装置1のフロー図。
【図7】運搬物提供装置1の機能モジュールのフロー図。
【図8】運搬物の加工例を示す図。
【図9】運搬指示用計算機3のハードウェア構成を示す図。
【図10】運搬指示用計算機3のフロー図。
【図11】ロボット用計算機33のハードウェア構成を示す図。
【図12】ロボット用計算機32のフロー図。
【図13】運搬物が飲料物である場合の運搬物準備部440のフロー図。
【図14】運搬指示用計算機3の表示装置95の画面例。
【符号の説明】
【0092】
1・・・運搬物提供装置、2・・・ロボット、3・・・運搬指示用計算機、4・・・中継器。
【特許請求の範囲】
【請求項1】
移動ロボットと、カメラ及びハンドロボットに接続される計算機、を備える運搬システムにおいて、
前記計算機は、
キャリブレーション用の第一のトレーを、前記カメラを制御して撮影する撮影部と、
前記撮影部が撮影した撮影画像中の、前記第一のトレーのトレー位置を算出するトレー位置算出部と、
前記ハンドロボットが前記第一のトレーにキャリブレーション用の第一の運搬物を搭載するときの、当該ハンドロボットの位置を示すハンド位置を取得するハンド位置取得部と、
前記トレー位置及び前記ハンド位置に基づいて、キャリブレーションデータを算出するキャリブレーション部と、
前記移動ロボットが、到着予定領域に到着したとき、前記キャリブレーションデータに基づいて、当該移動ロボットが備える第二のトレーに、第二の運搬物を搭載するよう、前記ハンドロボットを制御する運搬物搭載部を備える、運搬システム。
【請求項2】
前記撮影部、前記トレー位置算出部、及び前記ハンド位置取得部は、所定の回数処理を行い、
前記キャリブレーション部は、前記所定の回数分の、トレー位置、及びハンド位置に基づいて、前記キャリブレーションデータを算出する、請求項1記載の運搬システム。
【請求項3】
前記計算機は、更に、
前記移動ロボットから送信された到着信号を受信する信号受信部を備え、
前記運搬物搭載部は、前記到着信号を受信した場合、前記移動ロボットが前記到着予定領域に到着したと判断する、請求項1記載の運搬システム。
【請求項4】
前記キャリブレーションデータとは、カメラ座標系とハンドロボット座標系の相対関係を求めるためのデータである、請求項1記載の運搬システム。
【請求項5】
前記第一のトレーは、着色される、請求項1記載の運搬システム。
【請求項6】
前記移動ロボットは、
センサと、
環境地図と、
前記環境地図における移動経路を作成する経路作成部と、
前記センサから取得する距離情報と、前記環境地図と、前記移動経路に基づいて、当該移動ロボットを移動するよう制御するロボット制御部を備える、請求項1記載の運搬システム。
【請求項7】
前記経路作成部は、前記移動ロボットのスタート地点、ゴール地点、及び、当該移動ロボットのサイズを入力として、前記移動経路を作成する、請求項6記載の運搬システム。
【請求項8】
前記計算機は、更に、
前記撮影画像と前記トレーの画像を比較し、前記撮影画像内で前記トレーが静止したときに、前記移動ロボットが前記到着予定領域に到着したと判定する到着判定部を備える、請求項1記載の運搬システム。
【請求項9】
前記移動ロボットは、更に、
タッチセンサと、
前記タッチセンサに基づいて、前記第二の運搬物が前記第二のトレーに搭載されたと判断するセンサデータ受信部を備える、請求項1記載の運搬システム。
【請求項10】
カメラ及びハンドロボットに接続される計算機において、
キャリブレーション用の第一のトレーに、キャリブレーション用の第一の運搬物を搭載するよう、前記ハンドロボットを制御する駆動部と、
前記ハンドロボットが前記第一のトレーに前記第一の運搬物を搭載するときの、前記第一のトレーを、前記カメラを制御して撮影する撮影部と、
前記ハンドロボットが前記第一のトレーに前記第一の運搬物を搭載するときの、当該ハンドロボットの位置を示すハンド位置を取得するハンド位置取得部と、
前記撮影部が撮影した撮影画像中の前記第一のトレーのトレー位置を算出するトレー位置算出部と、
前記トレー位置及び前記ハンド位置に基づいて、キャリブレーションデータを算出するキャリブレーション部と、
前記移動ロボットが、到着予定領域に到着したとき、前記キャリブレーションデータに基づいて、当該移動ロボットが備える第二のトレーに、第二の運搬物を搭載するよう、前記ハンドロボットを制御する運搬物搭載部を備える、計算機。
【請求項1】
移動ロボットと、カメラ及びハンドロボットに接続される計算機、を備える運搬システムにおいて、
前記計算機は、
キャリブレーション用の第一のトレーを、前記カメラを制御して撮影する撮影部と、
前記撮影部が撮影した撮影画像中の、前記第一のトレーのトレー位置を算出するトレー位置算出部と、
前記ハンドロボットが前記第一のトレーにキャリブレーション用の第一の運搬物を搭載するときの、当該ハンドロボットの位置を示すハンド位置を取得するハンド位置取得部と、
前記トレー位置及び前記ハンド位置に基づいて、キャリブレーションデータを算出するキャリブレーション部と、
前記移動ロボットが、到着予定領域に到着したとき、前記キャリブレーションデータに基づいて、当該移動ロボットが備える第二のトレーに、第二の運搬物を搭載するよう、前記ハンドロボットを制御する運搬物搭載部を備える、運搬システム。
【請求項2】
前記撮影部、前記トレー位置算出部、及び前記ハンド位置取得部は、所定の回数処理を行い、
前記キャリブレーション部は、前記所定の回数分の、トレー位置、及びハンド位置に基づいて、前記キャリブレーションデータを算出する、請求項1記載の運搬システム。
【請求項3】
前記計算機は、更に、
前記移動ロボットから送信された到着信号を受信する信号受信部を備え、
前記運搬物搭載部は、前記到着信号を受信した場合、前記移動ロボットが前記到着予定領域に到着したと判断する、請求項1記載の運搬システム。
【請求項4】
前記キャリブレーションデータとは、カメラ座標系とハンドロボット座標系の相対関係を求めるためのデータである、請求項1記載の運搬システム。
【請求項5】
前記第一のトレーは、着色される、請求項1記載の運搬システム。
【請求項6】
前記移動ロボットは、
センサと、
環境地図と、
前記環境地図における移動経路を作成する経路作成部と、
前記センサから取得する距離情報と、前記環境地図と、前記移動経路に基づいて、当該移動ロボットを移動するよう制御するロボット制御部を備える、請求項1記載の運搬システム。
【請求項7】
前記経路作成部は、前記移動ロボットのスタート地点、ゴール地点、及び、当該移動ロボットのサイズを入力として、前記移動経路を作成する、請求項6記載の運搬システム。
【請求項8】
前記計算機は、更に、
前記撮影画像と前記トレーの画像を比較し、前記撮影画像内で前記トレーが静止したときに、前記移動ロボットが前記到着予定領域に到着したと判定する到着判定部を備える、請求項1記載の運搬システム。
【請求項9】
前記移動ロボットは、更に、
タッチセンサと、
前記タッチセンサに基づいて、前記第二の運搬物が前記第二のトレーに搭載されたと判断するセンサデータ受信部を備える、請求項1記載の運搬システム。
【請求項10】
カメラ及びハンドロボットに接続される計算機において、
キャリブレーション用の第一のトレーに、キャリブレーション用の第一の運搬物を搭載するよう、前記ハンドロボットを制御する駆動部と、
前記ハンドロボットが前記第一のトレーに前記第一の運搬物を搭載するときの、前記第一のトレーを、前記カメラを制御して撮影する撮影部と、
前記ハンドロボットが前記第一のトレーに前記第一の運搬物を搭載するときの、当該ハンドロボットの位置を示すハンド位置を取得するハンド位置取得部と、
前記撮影部が撮影した撮影画像中の前記第一のトレーのトレー位置を算出するトレー位置算出部と、
前記トレー位置及び前記ハンド位置に基づいて、キャリブレーションデータを算出するキャリブレーション部と、
前記移動ロボットが、到着予定領域に到着したとき、前記キャリブレーションデータに基づいて、当該移動ロボットが備える第二のトレーに、第二の運搬物を搭載するよう、前記ハンドロボットを制御する運搬物搭載部を備える、計算機。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2008−68342(P2008−68342A)
【公開日】平成20年3月27日(2008.3.27)
【国際特許分類】
【出願番号】特願2006−247481(P2006−247481)
【出願日】平成18年9月13日(2006.9.13)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成20年3月27日(2008.3.27)
【国際特許分類】
【出願日】平成18年9月13日(2006.9.13)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]