(58)【調査した分野】(Int.Cl.,DB名)
前記少なくとも1つの操作ウィジェットは、前記移動体が走行する方向および速度を制御するジョイスティック型スライダを含む、請求項1に記載のモバイルコンピュータ。
前記処理回路は、前記タッチスクリーンパネルの出力に基づいて、前記ユーザが、前記ジョイスティック型スライダが表示された前記表示装置上の基準位置にタッチしたこと、および、前記基準位置からのスライド量およびスライド方向を検出し、前記スライド量に応じた速度で、かつ、前記スライド方向に応じた方向に前記移動体を走行させるための指令を含む制御信号を生成し、
前記通信回路は、前記制御信号を前記移動体に送信する、請求項2に記載のモバイルコンピュータ。
前記処理回路は、前記スライド方向に応じて、前記移動体を前方向、後方向および円弧に沿った方向のいずれかに走行させるための指令を含む制御信号を生成する、請求項3に記載のモバイルコンピュータ。
前記処理回路は、前記タッチスクリーンパネルの出力に基づいて前記ユーザによる前記フォワードボタンへのタッチを検出すると、前記移動体を前方向に走行させるための指令を含む制御信号を生成し、
前記通信回路は、前記制御信号を前記移動体に送信する、請求項5に記載のモバイルコンピュータ。
前記処理回路は、前記タッチスクリーンパネルの出力に基づいて前記ユーザによる前記バックワードボタンへのタッチを検出すると、前記移動体を後方向に走行させるための指令を含む制御信号を生成し、
前記通信回路は、前記制御信号を前記移動体に送信する、請求項7に記載のモバイルコンピュータ。
前記少なくとも1つの操作ウィジェットは、前記移動体を右回りに旋回させる右旋回ボタン、および、左回りに旋回させる左旋回ボタンを含む、請求項1から8のいずれかに記載のモバイルコンピュータ。
前記処理回路は、前記タッチスクリーンパネルの出力に基づいて前記ユーザによる前記右旋回ボタンおよび前記左旋回ボタンの一方へのタッチを検出すると、タッチが検出されたボタンに関連付けられた方向に前記移動体を旋回させるための指令を含む制御信号を生成し、
前記通信回路は、前記制御信号を前記移動体に送信する、請求項9に記載のモバイルコンピュータ。
前記処理回路は、前記タッチスクリーンパネルの出力に基づいて前記ユーザによる前記少なくとも1つの操作ウィジェットへのタッチを検出し続けている期間中、前記少なくとも1つの操作ウィジェットに関連付けられた、前記移動体の走行制御または設定処理を行う、請求項1から10のいずれかに記載のモバイルコンピュータ。
前記走行経路データは、前記移動体の位置および向きを、各マーカデータが取得された順序で変化させることによって前記移動体の走行経路を規定するデータである、請求項1に記載のモバイルコンピュータ。
前記処理回路は、前記モバイルコンピュータの起動直後に前記表示装置に表示される前記GUIに、前記複数の走行経路の中から予め選択された少なくとも1つの走行経路を表示する、請求項20に記載のモバイルコンピュータ。
ユーザからグラフィカル・ユーザ・インタフェース(GUI)を介して入力を受け付けて移動体の動作を制御するモバイルコンピュータを動作させるコンピュータプログラムであって、
前記モバイルコンピュータは、
前記移動体と通信することが可能な通信回路と、
各々が、前記移動体の走行制御または設定処理に関連付けられた複数のウィジェットを含むGUIを表示する表示装置と、
前記ユーザによる前記表示装置へのタッチを検出して検出位置のデータを出力するタッチスクリーンパネルと、
コンピュータである処理回路と
を備え、
前記コンピュータプログラムは、前記処理回路に、
前記移動体の走行制御のための少なくとも1つの操作ウィジェット、前記移動体に空間の地図を作成させるための地図作成ウィジェット、前記移動体の通過位置を指定して前記移動体の走行経路を作成するためのキャプチャウィジェット、および、作成された1つまたは複数の走行経路のうちから一つの走行経路を選択するための経路選択ウィジェットを含むGUIを前記表示装置に表示させ、
前記タッチスクリーンパネルから出力された、前記検出位置のデータを受け取らせ、
前記検出位置に配置された前記ウィジェットに関連付けられた、前記移動体の走行制御または設定処理を行わせるための指令を、前記通信回路を介して送信させ、
前記移動体は、
モータと、
前記モータを制御して前記移動体を移動させる駆動装置と、
周囲の空間をセンシングしてセンサデータを出力するセンサと、
地図データを記憶するための記憶装置と、
前記センサデータおよび前記地図データを利用して、前記移動体の位置を推定する演算回路と、
前記モバイルコンピュータと通信することが可能な通信装置と
を有しており、
前記モバイルコンピュータの処理回路は、前記タッチスクリーンパネルの出力に基づいて前記キャプチャウィジェットへのタッチを検出すると、前記移動体を経路作成モードに移行させ、
前記処理回路は、
前記タッチスクリーンパネルの出力に基づいて前記キャプチャウィジェットへのタッチを検出する度に、検出した時点における前記移動体の位置を示すマーカデータを、前記移動体に記憶させ、
前記移動体に複数のマーカデータが記憶された後に、前記キャプチャウィジェットへの予め定められたタッチ操作を検出すると、前記複数のマーカデータに基づく走行経路データを前記移動体に生成させ、
前記GUIは更に前記マーカデータの編集を行う編集ボタンを有し、
前記処理回路は、前記タッチスクリーンパネルの出力に基づいて前記編集ボタンへのタッチを検出すると、前記マーカデータのX座標と、Y座標との少なくとも一つの値を変更可能にする、コンピュータプログラム。
【発明を実施するための形態】
【0012】
以下、添付の図面を参照しながら、本開示によるモバイルコンピュータ、および、当該モバイルコンピュータと移動体とを有する移動体制御システムの一例を説明する。本明細書では、モバイルコンピュータの一例として、タブレットコンピュータ20を挙げる。モバイルコンピュータの他の例は、スマートフォン、ラップトップ型PCである。また本明細書では、移動体の一例として無人搬送車を挙げる。無人搬送車はAGV(Automated Guided Vehicle)と呼ばれており、本明細書でも「AGV」と記述する。
【0013】
図1は、本開示による、各AGVの走行を制御する制御システム100の概要を示している。制御システム100は、AGV10とタブレットコンピュータ20とを含む。AGV10とタブレットコンピュータ20とは、たとえば1対1で接続されてBluetooth(登録商標)規格に準拠した通信を行い、または、1または複数のアクセスポイント2a、2b等を利用してWi−Fi(登録商標)に準拠した通信を行う。複数のアクセスポイント2a、2bはスイッチングハブ3に接続されている。スイッチングハブ3を介してデータフレームが転送されることにより、AGV10およびタブレットコンピュータ20の間の双方向通信が実現される。
【0014】
ユーザ1はタブレットコンピュータ20を利用して、AGV10の動作を制御する。具体的には、ユーザ1はタブレットコンピュータ20を利用して、走行する空間Sの地図をAGV10に作成させ、地図の作成後にAGV10の走行経路を設定または変更し、AGV10を手動により走行させることができる。
【0015】
ユーザ1によるタブレットコンピュータ20の操作は、グラフィカル・ユーザ・インタフェース(以下「GUI」と記述する。)を介して行われる。GUIは、タブレットコンピュータ20のディスプレイとタッチスクリーンパネルとによって実現される。GUIは複数のウィジェットを含んでいる。「ウィジェット」とは、GUIのボタン、スライダ、アイコン等の、ディスプレイに表示されたユーザインタフェース部品を意味する。ユーザインタフェース部品は、「UIパーツ」と呼ばれることもある。個々のウィジェットは、AGV10を走行させるための走行制御動作、または、地図の作成、走行経路の設定または変更等の設定処理に関連付けられている。タブレットコンピュータ20は、GUIを介してユーザ1からの入力を受け付けて走行制御動作または設定処理を行う。GUIの詳細は後述する。
【0016】
なお、
図1には1台のAGV10が示されているが、AGVは複数台であってもよい。ユーザ1はタブレットコンピュータ20のGUIを介して、登録された複数のAGVのうちから一台のAGV10を選択して、走行制御動作または設定処理を行うことができる。
【0017】
以下では、まずAGV10の構成を説明し、その後、タブレットコンピュータ20の構成、GUIおよび動作を説明する。
【0018】
図2は、本実施形態にかかる例示的なAGV10の外観図である。AGV10は、4つの車輪11a〜11dと、フレーム12と、搬送テーブル13と、走行制御装置14と、レーザレンジファインダ15とを有する。なお、AGV10は複数のモータも有するが
図2には示されていない。また、
図2には、前輪11a、後輪11bおよび後輪11cが示されているが、前輪11dはフレーム12の蔭に隠れているため明示されていない。
【0019】
走行制御装置14は、AGV10の動作を制御する装置であり、主としてマイコン(後述)を含む集積回路、電子部品およびそれらが搭載された基板を含む。走行制御装置14は、上述した、タブレットコンピュータ20とのデータの送受信、および、前処理演算を行う。
【0020】
レーザレンジファインダ15は、たとえば赤外のレーザ光15aを目標物に照射し、当該レーザ光15aの反射光を検出することにより、目標物までの距離を測定する光学機器である。本実施形態では、AGV10のレーザレンジファインダ15は、たとえばAGV10の正面を基準として左右135度(合計270度)の範囲の空間に、0.25度ごとに方向を変化させながらパルス状のレーザ光15aを放射し、各レーザ光15aの反射光を検出する。これにより、0.25度ごと、合計1080ステップ分の角度で決まる方向における反射点までの距離のデータを得ることができる。
【0021】
AGV10の位置および姿勢と、レーザレンジファインダ15のスキャン結果とにより、AGV10は、空間Sの地図を作成することができる。地図には、AGVの周囲の壁、柱等の構造物、床の上に載置された物体の配置が反映され得る。地図のデータは、AGV10内に設けられた記憶装置に格納される。
【0022】
一般に、移動体の位置および姿勢は、ポーズ(pose)と呼ばれる。2次元面内における移動体の位置および姿勢は、XY直交座標系における位置座標(x, y)と、X軸に対する角度θによって表現される。AGV10の位置および姿勢、すなわちポーズ(x, y, θ)を、以下、単に「位置」と呼ぶことがある。
【0023】
なお、レーザ光15aの放射位置から見た反射点の位置は、角度および距離によって決定される極座標を用いて表現され得る。本実施形態では、レーザレンジファインダ15は極座標で表現されたセンサデータを出力する。ただし、レーザレンジファインダ15は、極座標で表現された位置を直交座標に変換して出力してもよい。
【0024】
レーザレンジファインダの構造および動作原理は公知であるため、本明細書ではこれ以上の詳細な説明は省略する。なお、レーザレンジファインダ15によって検出され得る物体の例は、人、荷物、棚、壁である。
【0025】
レーザレンジファインダ15は、周囲の空間をセンシングしてセンサデータを取得するための外界センサの一例である。そのような外界センサの他の例としては、イメージセンサおよび超音波センサが考えられる。
【0026】
走行制御装置14は、レーザレンジファインダ15の測定結果と、自身が保持する地図データとを比較して、自身の現在位置を推定することができる。地図データは、SLAM(Simultaneous Localization and Mapping)技術を用いて、AGV10自身によって取得されてもよい。
【0027】
図3は、AGV10のハードウェアの構成を示している。また
図3は、走行制御装置14の具体的な構成も示している。
【0028】
AGV10は、走行制御装置14と、レーザレンジファインダ15と、2台のモータ16aおよび16bと、駆動装置17とを備えている。
【0029】
走行制御装置14は、マイコン14aと、メモリ14bと、記憶装置14cと、通信回路14dと、測位装置14eとを有している。マイコン14a、メモリ14b、記憶装置14c、通信回路14dおよび測位装置14eは通信バス14fで接続されており、相互にデータを授受することが可能である。またレーザレンジファインダ15もまた通信インタフェース(図示せず)を介して通信バス14fに接続されており、計測結果である計測データを、マイコン14a、測位装置14eおよび/またはメモリ14bに送信する。
【0030】
マイコン14aは、走行制御装置14を含むAGV10の全体を制御するための演算を行うプロセッサまたは制御回路(コンピュータ)である。典型的にはマイコン14aは半導体集積回路である。マイコン14aは、制御信号であるPWM(Pulse Width Modulation)信号を駆動装置17に送信して駆動装置17を制御し、モータに印加する電圧を調整させる。これによりモータ16aおよび16bの各々が所望の回転速度で回転する。
【0031】
メモリ14bは、マイコン14aが実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ14bは、マイコン14aおよび測位装置14eが演算を行う際のワークメモリとしても利用され得る。
【0032】
記憶装置14cは、不揮発性の半導体メモリ装置である。ただし、記憶装置14cは、ハードディスクに代表される磁気記録媒体、または、光ディスクに代表される光学式記録媒体であってもよい。さらに、記憶装置14cは、いずれかの記録媒体にデータを書き込みおよび/または読み出すためのヘッド装置および当該ヘッド装置の制御装置を含んでもよい。
【0033】
記憶装置14cは、走行する空間Sの地図データM、および、1または複数の走行経路のデータ(走行経路データ)Rを記憶する。地図データMは、AGV10が地図作成モードで動作することによって作成され記憶装置14cに記憶される。走行経路データRは、地図データMが作成された後、AGV10が経路作成モードで動作することによって作成され記憶装置14cに記憶される。
【0034】
走行経路データRは、マーカの位置を示すマーカデータを含む。「マーカ」は走行するAGV10の通過位置(経由点)を示す。走行経路データRは、走行開始位置を示す開始マーカおよび走行終了位置を示す終了マーカを少なくとも含む。走行経路データRは、さらに、1以上の中間経由点を含んでもよい。1以上の中間経由点を含む場合には、開始マーカから、当該走行経由点を順に経由して終了マーカに至る経路が、走行経路として定義される。
【0035】
なお、各マーカデータは、次のマーカに移動するまでのAGV10の向き(角度)、走行速度、当該走行速度に達するまでに加速する加速時間、および/または、当該走行速度から減速する減速時間のデータを含み得る。
【0036】
AGV10は、作成された地図と走行中に取得されたレーザレンジファインダ15が出力したセンサデータとを利用して自己位置を推定しながら、選択された走行経路に沿って走行することができる。なお、本実施形態では、地図データMおよび走行経路データRは同じ記憶装置14cに記憶されているが、異なる記憶装置に記憶されてもよい。
【0037】
通信回路14dは、たとえば、Bluetooth(登録商標)および/またはWi−Fi(登録商標)規格に準拠した無線通信を行う無線通信回路である。いずれの規格も、2.4GHz帯の周波数を利用した無線通信規格を含む。本明細書では、Bluetooth(登録商標)規格に準拠した無線通信を行い、1対1でタブレットコンピュータ20と通信する例を挙げる。
【0038】
測位装置14eは、レーザレンジファインダ15からセンサデータを受け取り、また、記憶装置14cに記憶された地図データMを読み出す。レーザレンジファインダ15のスキャン結果から作成された局所的地図データを、より広範囲の地図データMと照合(マッチング)することにより、地図データM上における自己位置(x, y, θ)を同定する。測位装置14eは、局所的地図データが地図データMに一致した程度を表す「信頼度」を生成する。自己位置(x, y, θ)、および、信頼度の各データは、AGV10からタブレットコンピュータ20に送信され得る。タブレットコンピュータ20は、自己位置(x, y, θ)、および、信頼度の各データを受信して、内蔵された表示装置に表示することができる。
【0039】
本実施形態では、マイコン14aと測位装置14eとは別個の構成要素であるとしているが、これは一例である。マイコン14aおよび測位装置14eを統合し、マイコン14aおよび測位装置14eの各動作を独立して行うことが可能な1つのチップ回路または半導体集積回路を設けてもよい。
図3には、マイコン14aおよび測位装置14eを包括するチップ回路14gが示されている。以下では、マイコン14aおよび測位装置14eが別個独立に設けられている例で説明する。さらに、測位装置14eとレーザレンジファインダ15とは別個の構成要素であるとしているが、これも一例である。測位装置14eおよびレーザレンジファインダ15を統合したレーザ測位システムを採用してもよい。
【0040】
2台のモータ16aおよび16bは、それぞれ2つの車輪11bおよび11cに取り付けられ、各車輪を回転させる。つまり、2つの車輪11bおよび11cはそれぞれ駆動輪である。本明細書では、モータ16aおよびモータ16bは、それぞれAGV10の右輪および左輪を駆動するモータであるとして説明する。
【0041】
駆動装置17は、2台のモータ16aおよび16bの各々に印加される電圧を調整するためのモータ駆動回路17aおよび17bを有する。モータ駆動回路17aおよび17bの各々はいわゆるインバータ回路であり、マイコン14aから送信されたPWM信号によって各モータに流れる電流をオンまたはオフし、それによりモータに印加される電圧を調整する。
【0042】
図4は、タブレットコンピュータ20のハードウェア構成を示している。タブレットコンピュータ20は、CPU21と、メモリ22と、通信回路23と、画像処理回路24と、ディスプレイ25と、タッチスクリーンパネル26と、通信バス27とを有する。CPU21、メモリ22、通信回路23、画像処理回路24およびタッチスクリーンパネル26は通信バス27で接続されており、通信バス27を介して相互にデータを授受することが可能である。
【0043】
CPU21は、タブレットコンピュータ20の動作を制御する信号処理回路(コンピュータ)である。典型的にはCPU21は半導体集積回路である。CPU21を単に「処理回路」と呼ぶこともある。
【0044】
メモリ22は、CPU21が実行するコンピュータプログラムを記憶する、揮発性の記憶装置である。メモリ22は、CPU21が演算を行う際のワークメモリとしても利用され得る。コンピュータプログラムは、図示されない不揮発性の記憶装置、たとえばEEPROMに格納されていてもよい。CPU21は、タブレットコンピュータ20の起動時に不揮発性の記憶装置からコンピュータプログラムを読み出してメモリ22に展開し、実行する。
【0045】
通信回路23は、たとえば、Bluetooth(登録商標)および/またはWi−Fi(登録商標)規格に準拠した無線通信を行う無線通信回路である。AGV10の通信回路14dと同様、本明細書では、タブレットコンピュータ20は、Bluetooth(登録商標)規格に準拠した無線通信を行い、1対1でAGV10と通信する。通信回路23は、AGV10に送信すべきデータを、バス27を介してCPU21から受信する。また通信回路23は、AGV10から受信したデータ(通知)を、バス27を介してCPU21および/またはメモリ22に送信する。
【0046】
画像処理回路24は、CPU21の指示に従い、ディスプレイ25に表示する画像を生成する。たとえば画像処理回路24は、GUIのための画像を表示し、タッチスクリーンパネル26を介して受け付けたユーザ1のタッチ操作に応じて、ディスプレイ25上の画像を書き換える。
【0047】
タッチスクリーンパネル26は、指やペンなどで行われたユーザ1のタッチを検出することができる。検出方式として、静電式、抵抗膜式、光学式、超音波方式、電磁式などが知られている。たとえば、静電容量方式のタッチスクリーンパネル26の場合、タッチスクリーンパネル26は、特定の位置における静電容量の変化を検出し、当該変化に関するデータを、通信バス27を介してCPU21に送信する。CPU21は、送られてきたデータに基づいて、ユーザによるタッチの有無を判断する。「変化に関するデータ」の例は、静電容量が変化した位置および変化した時間長のデータである。
【0048】
「タッチ」は、短押し(またはタップ)、長押し、スライド等の種々の操作を含む。短押しは、ユーザ1がタッチスクリーンパネル26に指を触れた後、予め定められた基準時間以内に指を離す操作である。長押しは、ユーザ1がタッチスクリーンパネル26に指を触れてから指を動かさずにその状態を維持し、当該基準時間よりも長い時間が経過した後、指を離す操作である。スライドは、ユーザ1がタッチスクリーンパネル26に指を触れてから、指を離さずにタッチスクリーンパネル26上を、例えば左右に滑らして、操作が終了したら、タッチスクリーンパネル26から指を離す操作である。
【0049】
本実施形態では、タッチスクリーンパネル26はディスプレイ25に重畳して設けられている。ユーザ1は、ディスプレイ25に表示された画像を見ながら、当該画像へのタッチを行う。CPU21は、タッチスクリーンパネル26から出力された検出位置のデータが、ディスプレイ25に表示されている画像のどの位置を示しているかを判定する。判定の結果、CPU21は、位置に表示されている画像に対応付けられた機能を実行することができる。
【0050】
次に、タブレットコンピュータ20のGUIおよびGUIを介したユーザ1の操作によるAGV10の動作を説明する。
【0051】
AGV10とタブレットコンピュータ20との間に接続が確立されると、タブレットコンピュータ20のCPU21は、AGV10の走行制御または設定処理を行うことができる。
【0052】
AGV10は、タブレットコンピュータ20を用いたユーザ1からのリアルタイムの操作に従って走行する手動走行と、作成された走行経路に従って走行する自動走行とを行うことができる。AGV10を手動走行させるか、自動走行させるかは、ユーザ1がタブレットコンピュータ20のGUIから選択することができる。
【0053】
本実施形態では、AGV10とタブレットコンピュータ20との接続が確立されると、AGV10およびタブレットコンピュータ20は数百ミリ秒ごとに通信を行い、接続が維持されていることを確認する。これにより、手動走行時には、ほぼリアルタイムで、タブレットコンピュータ20からAGV10の走行の開始および走行の停止等の制御を実現できる。接続の維持が確認できなくなった場合には、AGV10は走行を停止する。AGV10は、タブレットコンピュータ20からの制御が可能な状態下で、タブレットコンピュータ20を介して手動走行を行うことができる。
【0054】
図5は、タブレットコンピュータ20のディスプレイ25に表示されたGUIの画像例を示している。GUIは、AGV10の走行制御または設定処理に関連付けられた複数のウィジェットを含んでいる。具体的には、GUIは、フォワードボタン30a、バックワードボタン30b、右旋回ボタン30c、左旋回ボタン30d、ジョイスティック型スライダ31、地図作成ボタン32、キャプチャボタン33、オプション設定ボタン34、および、経路選択ボタン35を有する。また、ディスプレイ25上には、AGV10の測位装置14eから受信した、AGV10の推定された自己位置(x, y, θ)、推定の信頼度等を表示する領域36が設けられている。
【0055】
フォワードボタン30a、バックワードボタン30b、右旋回ボタン30c、左旋回ボタン30dおよびジョイスティック型スライダ31は、AGV10の手動走行を制御するための操作ウィジェットである。ユーザ1が各ボタン30a〜30dおよびスライダ31にタッチし続けている間、AGV10が動作する。なおジョイスティック型スライダ31は、任意の方向にスライドさせることが可能である。タブレットコンピュータ20は、ユーザ1によるジョイスティック型スライダ31のスライド方向およびスライド量に応じてAGV10の進行方向を制御する。
【0056】
地図作成ボタン32は、AGV10の動作モードを、空間Sの地図を作成させるための地図作成モードに移行させるためのウィジェットである。キャプチャボタン33は、AGV10の動作モードを、AGV10の走行経路を作成するための経路作成モードに移行させるためのウィジェットである。オプション設定ボタン34は、AGV10に適用される種々のパラメータを設定するための設定モードに移行させるためのウィジェットである。経路選択ボタン35は、作成された1つまたは複数の走行経路のうちから一つの走行経路を選択するためのウィジェットである。
【0057】
以下、GUIを構成する各ウィジェットとAGV10の動作との関係を具体的に説明する。
【0058】
図6Aおよび
図6Bは、フォワードボタン30aを利用したAGV10の手動運転の例を示している。ユーザ1が指でディスプレイ25に表示されたフォワードボタン30aをタッチする。タブレットコンピュータ20のCPU21は、タッチスクリーンパネル26から出力されたタッチ位置の座標がフォワードボタン30aの座標であると判定する。これにより、CPU21は、ユーザ1がフォワードボタン30aにタッチしたことを検出する。
【0059】
フォワードボタン30aへのタッチを検出すると、CPU21は、AGV10を前方向に直進させるための指令を含む制御信号を生成する。通信回路23は、生成された制御信号をAGV10に送信する。CPU21は、フォワードボタン30aへのタッチが検出されなくなるまで同じ制御信号を生成し、継続的にAGV10に送信する。
【0060】
AGV10のマイコン14aは、通信回路14dを介してタブレットコンピュータ20から制御信号を受信する。マイコン14aは、制御信号に含まれるAGV10を前方向へ走行させる指令に応答して、モータ駆動回路17aおよび17bにそれぞれPWM信号を送信する。当該PWM信号は、モータ16aおよび16bを同じ回転速度で正回転させるための信号である。なお「正回転」とは、AGV10を前方向へ走行させる方向への回転を意味する。AGV10は、
図6Bに示されるように直進する。
【0061】
CPU21は、フォワードボタン30aへのタッチが検出されなくなると、AGV10の走行を停止させるための指令を含む制御信号を生成してAGV10に送信する。これにより、ユーザ1の指がフォワードボタン30aから離れるとAGV10は走行を停止する。
【0062】
なお、
図5に示すバックワードボタン30bがタッチされたときのタブレットコンピュータ20およびAGV10の動作は、フォワードボタン30aがタッチされたときの動作と同様である。バックワードボタン30bがタッチされると、AGV10を後方向に直進させる制御信号が生成され、当該制御信号によりAGV10が後方向に直進することを除いて、フォワードボタン30aがタッチされたときの動作と同様である。
【0063】
なお、前方向または後方向への直進時の速度は、AGV10の最高速度であってもよいし、ユーザが予め設定しておいてもよい。
【0064】
図7Aおよび
図7Bは、右旋回ボタン30cを利用したAGV10の手動運転の例を示している。CPU21は、ユーザ1が右旋回ボタン30cにタッチしたことを検出する。検出処理はフォワードボタン30aへのタッチの検出処理に準ずるため、説明は省略する。なお、以降の検出処理についても同様に説明を省略する。
【0065】
右旋回ボタン30cへのタッチを検出すると、CPU21は、AGV10をその場で右旋回させるための指令を含む制御信号を生成する。通信回路23は、生成された制御信号をAGV10に送信する。CPU21は、フォワードボタン30aへのタッチが検出されなくなるまで同じ制御信号を生成し、継続的にAGV10に送信する。
【0066】
AGV10のマイコン14aは、通信回路14dを介してタブレットコンピュータ20から制御信号を受信する。マイコン14aは、制御信号に含まれるAGV10を右旋回させる指令に応答して、モータ駆動回路17aおよび17bにそれぞれPWM信号を送信する。当該PWM信号は、モータ16aおよび16bを互いに逆回転させるための信号である。CPU21は、同じ回転速度でモータ16aを逆回転させ、モータ16bを正回転させるための制御信号を生成する。これにより、
図7Bに示されるように、AGV10はその場で右旋回する。
【0067】
CPU21は、右旋回ボタン30cへのタッチが検出されなくなると、AGV10の旋回を停止させるための指令を含む制御信号を生成してAGV10に送信する。これにより、ユーザ1の指がフォワードボタン30aから離れるとAGV10は旋回を停止する。
【0068】
なお、
図5に示す左旋回ボタン30dがタッチされたときのタブレットコンピュータ20およびAGV10の動作は、右旋回ボタン30cがタッチされたときの動作と同様である。左旋回ボタン30dがタッチされると、AGV10を左旋回させる制御信号が生成され、当該制御信号によりAGV10が左旋回する。
【0069】
なお、右旋回時または左旋回時は、各モータが最速で回転してもよいし、ユーザが予め設定した旋回速度(角速度)になるよう、各モータが回転してもよい。ユーザによる設定は、たとえばオプション設定ボタン34を利用して行うことができる。ユーザ1がオプション設定ボタン34をタッチすると、CPU21は、AGV10の旋回速度の入力を受け付ける。なおCPU21は、旋回速度とは別に、AGV10の前方向または後方向への走行時の最大速度を受け付けてもよい。
【0070】
図8Aおよび
図8Bは、ジョイスティック型スライダ31を利用したAGV10の手動運転の例を示している。CPU21は、ジョイスティック型スライダ31へのタッチを検出すると、ジョイスティック型スライダ31のスライド方向に応じた方向に、かつ、スライド量に応じた速度でAGV10を走行させるための制御信号を生成する。たとえば
図8Aに示されるように、ユーザ1がジョイスティック型スライダ31を右上の方向にスライドさせる。すると、AGV10は、
図8Bに示されるように、右斜め前方向に走行する。ジョイスティック型スライダ31は、ユーザ1が、直感的に、AGV10の進行方向および走行速度を操作できるようにするために設けられている。
【0071】
図9は、ジョイスティック型スライダ31のスライド方向θおよびスライド量dの例を示している。図示されるように、X軸、Y軸および原点Oを設定する。図面上、原点Oの右側が+X方向、上側が+Y方向であるとする。+Y方向はAGV10の直進方向である。+X方向はAGV10の右手の真横の方向である。
【0072】
CPU21は、タッチスクリーンパネル26から、スライドされたジョイスティック型スライダ31の中心座標P(X,Y)を取得する。スライド方向θおよびスライド量dは以下のように求めることができる。
θ=tan
-1(Y/X) ・・・(1)
d=(X
2+Y
2)
1/2 ・・・(2)
【0073】
なお、Xが0に近付くと、θの値が算出できなくなる。よって、CPU21は、Xが予め定められた値よりも小さな値になった場合で、Y>0のときはθ=90度、Y<0のときはθ=270度であると判定してもよい。
【0074】
いま、設定された最大速度をVmaxとし、AGV10のモータの基準回転速度をVbaseとする。また、原点OからX軸およびY軸の端までの距離を100とおく。今、下記の式(3)によってVbaseを求める。
Vbase=Vmax・d/100 ・・・(3)
【0075】
CPU21は、座標Pについて、X=0で、Y>0のときはモータ16aおよびモータ16bを、Vbaseで回転(正回転)させ、Y<0のときはモータ16aおよびモータ16bを−Vbaseで回転させる。
【0076】
CPU21は、座標Pについて、Y=0で、X>0のときは、モータ16aを逆回転させ、モータ16bを正回転させる。いずれも速さはVbaseである。これによりAGV10は右旋回する。一方、X<0のときは、モータ16aを正回転させ、モータ16bを逆回転させる。いずれも速さはVbaseである。これによりAGV10は左旋回する。
【0077】
座標PのXおよびYの各値が0ではない場合には、座標Pが存在する象限によって、以下の表に示す速度でモータ16aおよびモータ16bを回転させる。
【0079】
なお表1では、右軸車輪回転速度V
rおよび左軸車輪回転速度V
lは、それぞれモータ16aおよびモータ16bの回転速度を意味している。
【0080】
上述したように、ユーザ1がジョイスティック型スライダ31を+Y方向、−Y方向、またはそれら以外の方向にスライドさせる。すると、CPU21はスライド方向に応じて、AGV10を前方向、後方向および円弧に沿った方向等に走行させるための制御信号を生成する。ジョイスティック型スライダ31を利用することにより、ユーザ1は直感的にAGV10の進行方向を制御でき、さらにスライド量に応じた速度で走行させることができる。
【0081】
次に、ユーザ1が地図作成ボタン32(
図5)をタッチしたときのタブレットコンピュータ20の処理およびAGV10の動作を説明する。
【0082】
CPU21は、地図作成ボタン32へのタッチを検出すると、AGV10を、空間Sの地図を作成させるための地図作成モードに移行させる。地図作成モードでは、AGV10はレーザレンジファインダ15を利用して空間Sをスキャンし、測位装置14eを用いて地図を作成する。
【0083】
図10A〜
図10Fは、移動しながら地図を生成するAGV10を示す。ユーザ1は、上述したジョイスティック型スライダ31を利用してAGV10を移動させてもよいし、フォワードボタン30a、バックワードボタン30b、右旋回ボタン30c、左旋回ボタン30dを用いてAGV10を移動させてもよい。
【0084】
図10Aには、レーザレンジファインダ15を用いて周囲の空間をスキャンするAGV10が示されている。所定のステップ角毎にレーザ光が放射され、スキャンが行われる。なお、図示されたスキャン範囲は模式的に示した例であり、上述した合計270度のスキャン範囲とは異なっている。
【0085】
図10A〜
図10Fの各々では、レーザ光の反射点の位置が、記号「・」で表される複数の黒点4を用いて示されている。測位装置14eは、走行に伴って得られる黒点4の位置を、たとえばメモリ14bに蓄積する。AGV10が走行しながらスキャンを継続して行うことにより、地図が徐々に完成されてゆく。
図10Bから
図10Eでは、簡略化のためスキャン範囲のみが示されている。当該スキャン範囲は例示であり、上述した合計270度の例とは異なる。
【0086】
図10Fは、完成した地
図60の一部を模式的に示す。測位装置14eは、地
図60のデータ(地図データM)をメモリ14bまたは記憶装置14cに蓄積する。なお図示されている黒点の数または密度は一例である。
【0087】
地図データMの作成が完了すると、ユーザ1はAGV10の走行経路を設定することができる。
【0088】
図11は、キャプチャボタン33(
図5)を利用した走行経路の作成手順の例を示している。CPU21は、キャプチャボタン33へのタッチを検出すると、AGV10を経路作成モードに移行させる。ユーザ1は、新たに作成しようとする走行経路の開始位置までAGV10を移動させ、さらにキャプチャボタン33にタッチする。CPU21は、その時点におけるAGV10のポーズ(x, y, θ)を取得させる指令をAGV10に送信する。AGV10のマイコン14aは、指令に従い、そのときのポーズ(x, y, θ)のデータをメモリ14bまたは記憶装置14cに「マーカ」として記憶する。
図11のマーカM1は、AGV10の走行開始位置を示している。
【0089】
図12は、マーカの設定数の数字アイコン33aが表示されたキャプチャボタン33を示している。マーカM1が取得された時点では、数字アイコン33aは「1」を示している。
【0090】
さらにユーザ1がAGV10を、走行経路上の次の通過位置まで移動させてキャプチャボタン33にタッチする。すると、AGV10のマイコン14aは、タブレットコンピュータ20の指令に従い、そのときのポーズ(x, y, θ)のデータをメモリ14bまたは記憶装置14cに記憶する。同様の操作が繰り返されると、AGV10は、走行経路の各通過位置におけるAGV10のポーズ(x, y, θ)を順に取得する。
図11のマーカM2〜M4は、そのようにして取得された通過点を示している。
【0091】
マーカM5が取得された後、ユーザ1がキャプチャボタン33を長押しすると、走行経路の作成が完了する。これにより、マーカM5は走行終了位置を表すことになる。なお、走行経路の作成後、ユーザ1が走行経路を判別するための経路名を付すことができてもよい。
【0092】
マーカM1、M2、・・・、M5は、マーカM1から順にマーカM2、・・・、M4を経由して、マーカM5に至るAGV10の通過経路を示している。AGV10は、位置および向きであるポーズを、各マーカデータが取得された順序で変化させて、走行開始位置から走行終了位置まで移動する。走行経路データRは、複数のマーカの集合として定義され得る。作成された走行経路データRは記憶装置14cに記憶される。
【0093】
図13Aは、ある走行経路データRに含まれるマーカデータの例を示している。番号M1〜M5で示される各マーカには、X座標、Y座標および角度θを含むマーカデータが存在する。なお、マーカM3の位置はマーカM2の位置と同じである。しかしながら、AGV10は、マーカM2におけるポーズから、角度φだけ左旋回したことにより、異なるマーカとして取得されている。
【0094】
さらに
図13Bは、
図13Aの例よりも豊富なデータが設定されたマーカデータの例を示している。
図13Bの例では、一部のマーカのマーカデータは、走行速度、加速時間および減速時間のデータを有している。以下、一般化して説明する。
【0095】
「走行速度」は、k番目(k:1以上の整数)のマーカデータが示す位置から、(k+1)番目に取得されたマーカデータが示す位置に移動するまでのAGV10の走行速度を示している。「加速時間」は、走行速度に達するまでに加速する加速時間であり、「減速時間」は走行速度から減速する減速時間である。なお、走行速度、加速時間および減速時間は常に同時に設定される必要はない。マーカM2のように、走行速度、加速時間および減速時間がいずれも設定されていない場合もあり得るし、走行速度、加速時間および減速時間のうちの任意の一つまたは複数が設定され得る。
【0096】
上述の手順により、ユーザ1は、1つまたは複数の走行経路を作成することができる。上述したように、走行経路データRは、AGV10の記憶装置14cに記憶されるが、AGV10とタブレットコンピュータ20との間で接続が確立されると、走行経路データRがAGV10からタブレットコンピュータ20に転送される。ユーザ1は、タブレットコンピュータ20上で、転送された走行経路データRを構成するマーカデータを編集することができる。マーカデータの編集は、たとえば一部のマーカデータの削除、X座標、Y座標および/または角度θの値の変更である。
【0097】
図14は、経路選択ボタン35(
図5)へのタッチ後にディスプレイ25に表示される、複数の走行経路R1〜R3の表示例を示している。各経路番号と、ユーザ1によって付された経路名が表示されている。
【0098】
ユーザ1は、表示された経路番号または経路名をタッチして選択する。
図14では、選択された走行経路R2がハイライト表示されている。CPU21は、AGV10に、走行経路R2が選択されたことを示す指令を送信する。指令を受信したAGV10のマイコン14aは、記憶装置14cに記憶している複数の走行経路の中から走行経路R2の各マーカデータを読み出す。ユーザ1が、走行経路R2の走行開始位置までAGV10を移動させ、たとえばスタートボタン(図示せず)をタッチすることにより、AGV10のマイコン14aは走行経路R2に沿って自動運転を開始する。
【0099】
図14には、選択した走行経路の編集を行うためのメニュー40が示されている。メニュー40は、個々のマーカデータの編集を行う編集ボタン40a、削除ボタン等が含まれている。ディスプレイ25上に、走行経路に関する選択だけでなく、編集も可能にするためのメニュー40を設けることにより、ユーザ1の利便性を向上させることができる。
【0100】
ユーザの利便性をさらに向上させるために、さらに以下の方法を採用してもよい。すなわち、1つ以上の走行経路の設定が完了した後、ユーザ1にとって走行経路を毎回選択することが煩わしいと感じる場合がある。走行経路の選択手順を簡略化する方法として、一部の走行経路を予め登録しておくことが考えられる。
【0101】
図15は、タブレットコンピュータ20上でAGV10を制御するアプリケーションが起動された直後のGUI(初期GUI)の画像例を示している。初期GUIには、予め登録された複数の走行経路50aおよび50bが表示されている。これらは、
図14における走行経路R1およびR2に対応している。さらに初期GUIには、スタートボタン51が表示されている。ユーザ1は、走行経路の選択を完了し、スタートボタン51にタッチする。すると、CPU21は、走行経路の指定および走行開始指示を、AGV10に送信する。
【0102】
AGV10は、選択された走行経路の各マーカデータを読み出し、その後、各マーカを通過しながら走行する。ユーザ1は、アプリケーションを起動した後すぐに、AGV10を走行させることが可能になる。