(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-23
(45)【発行日】2022-05-31
(54)【発明の名称】移動ロボットの制御装置および移動ロボットシステム
(51)【国際特許分類】
G05D 1/02 20200101AFI20220524BHJP
【FI】
G05D1/02 H
(21)【出願番号】P 2019558056
(86)(22)【出願日】2018-10-22
(86)【国際出願番号】 JP2018039140
(87)【国際公開番号】W WO2019111559
(87)【国際公開日】2019-06-13
【審査請求日】2020-12-22
(31)【優先権主張番号】P 2017233085
(32)【優先日】2017-12-05
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000232302
【氏名又は名称】日本電産株式会社
(72)【発明者】
【氏名】山本 惇史
【審査官】大古 健一
(56)【参考文献】
【文献】特開平3-166074(JP,A)
【文献】特開昭63-233413(JP,A)
【文献】特開平7-152810(JP,A)
【文献】特表2013-508183(JP,A)
【文献】特開2008-52323(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00 - 1/12
(57)【特許請求の範囲】
【請求項1】
左右一対の車輪と、
前記車輪をそれぞれ駆動するモータと、
前記車輪をそれぞれ回転可能に支持する車体と、
前記車体に対して鉛直方向の軸回りに回転自在に連結された回転台と、を備える移動ロボットの制御装置であって、
前記回転台の回転角度を取得する回転角度取得部と、
前記回転角度取得部により取得された前記回転台の回転角度に基づいて、前記移動ロボットのスリップ角を推定するスリップ角推定部と、を備え
、
前記回転台は、他の移動ロボットの前記回転台に連結された連結部材に固定されており、
前記回転角度取得部は、前記回転台の回転角度を、前記移動ロボットの姿勢角として取得することを特徴とする移動ロボットの制御装置。
【請求項2】
前記スリップ角推定部により推定されたスリップ角を用いて、前記移動ロボットの位置を推定する位置推定部をさらに備えることを特徴とする請求項1に記載の移動ロボットの制御装置。
【請求項3】
前記車輪の車輪速度をそれぞれ取得する車輪速度取得部と、
前記車輪速度取得部により取得された車輪速度に基づいて、前記移動ロボットの並進速度を算出する並進速度算出部と、
前記並進速度算出部により算出された並進速度と、前記スリップ角推定部により推定されたスリップ角とに基づいて、前記移動ロボットの横滑り速度を算出する横滑り速度算出部と、をさらに備え、
前記位置推定部は、
前記並進速度算出部により算出された並進速度と、
前記横滑り速度算出部により算出された横滑り速度と、に基づいて、前記移動ロボットの位置を推定することを特徴とする請求項
2に記載の移動ロボットの制御装置。
【請求項4】
前記回転角度取得部により取得された前記回転台の回転角度に基づいて、前記回転台の回転角速度を算出する角速度算出部をさらに備え、
前記並進速度算出部は、
前記車輪速度取得部により取得された車輪速度のうち旋回内側の車輪の車輪速度と、
前記角速度算出部により算出された回転角速度と、に基づいて、前記移動ロボットの並進速度を算出することを特徴とする請求項
3に記載の移動ロボットの制御装置。
【請求項5】
左右一対の車輪と、
前記車輪をそれぞれ駆動するモータと、
前記車輪をそれぞれ回転可能に支持する車体と、
前記車体に対して鉛直方向の軸回りに回転自在に連結された回転台と、を備え
、前記回転台は、他の移動ロボットの前記回転台に連結された連結部材に固定されている移動ロボットの制御方法であって、
前記回転台の回転角度を前記移動ロボットの姿勢角として取得するステップと、
取得された前記回転台の回転角度に基づいて、前記移動ロボットのスリップ角を推定するステップと、を含むことを特徴とする移動ロボットの制御方法。
【請求項6】
請求項1から4のいずれか1項に記載の移動ロボットの制御装置と、
前記制御装置と通信可能に接続された前記移動ロボットと、を備えることを特徴とする移動ロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動ロボットの制御装置および移動ロボットシステムに関する。
【背景技術】
【0002】
移動ロボットの走行経路を制御するためには、移動ロボットの位置を推定することが必要となる。一般に、移動ロボットの位置推定には、移動ロボットの運動方程式を用い、スタート位置からの微小変化量を時々刻々と積算していく手法が用いられる。
ところで、実際の移動ロボットでは、地面とタイヤとの間でスリップが生じる。そのため、移動ロボットを制御して目標位置に正確に向かわせるためには、タイヤのスリップを考慮した位置推定が不可欠となる。
【0003】
タイヤのスリップには、移動ロボットの進行方向のすべりと、移動ロボットの横方向のすべりとの2種類がある。ここで、移動ロボットの位置推定において大きく問題となるのは、移動ロボットの旋回時に生じる横滑りである。横滑りを表現するパラメータとしては、移動ロボットが実際に向いている方向と移動ロボットの進行方向とのなす角であるスリップ角がある。
特許文献1には、車両の前後加速度、横加速度および車体速度を用いて、車体スリップ角を推定する点が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、上記特許文献1に記載の技術では、少なくとも2つの加速度センサと、車輪速センサとが必要であり、スリップ角を精度良く推定するためには多くのセンサが必要である。つまり、スリップ角の推定に必要なパラメータが多く、アルゴリズムが複雑化する。
そこで、本発明は、多くのセンサを必要とすることなくスリップ角を適切に推定することができる移動ロボットの制御装置および移動ロボットシステムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明の一つの態様の移動ロボットの制御装置は、左右一対の車輪と、前記車輪をそれぞれ駆動するモータと、前記車輪をそれぞれ回転可能に支持する車体と、前記車体に対して鉛直方向の軸回りに回転自在に連結された回転台と、を備える移動ロボットの制御装置であって、前記回転台の回転角度を取得する回転角度取得部と、前記回転角度取得部により取得された前記回転台の回転角度に基づいて、前記移動ロボットのスリップ角を推定するスリップ角推定部と、を備える。
【0007】
また、本発明の一つの態様の移動ロボットの制御方法は、左右一対の車輪と、前記車輪をそれぞれ駆動するモータと、前記車輪をそれぞれ回転可能に支持する車体と、前記車体に対して鉛直方向の軸回りに回転自在に連結された回転台と、を備える移動ロボットの制御方法であって、前記回転台の回転角度を取得するステップと、取得された前記回転台の回転角度に基づいて、前記移動ロボットのスリップ角を推定するステップと、を含む。
【0008】
さらに、本発明の一つの態様の移動ロボットシステムは、上記の移動ロボットの制御装置と、前記制御装置と通信可能に接続された前記移動ロボットと、を備える。
【発明の効果】
【0009】
本発明の一つの態様によれば、多くのセンサを必要とすることなく、また、複雑なアルゴリズムを必要とすることなく、スリップ角を適切に推定することができる。
【図面の簡単な説明】
【0010】
【
図1】
図1は、移動ロボットシステムを構成する移動ロボットを示す斜視図である。
【
図2】
図2は、移動ロボットの回転台ユニットの正面図である。
【
図3】
図3は、複数の移動ロボットを備える移動装置を示す側面図である。
【
図4】
図4は、複数の移動ロボットを備える移動装置を示す斜視図である。
【
図5】
図5は、移動ロボットを含む制御システムのブロック図である。
【
図7】
図7は、目標速度演算部の構成例を示すブロック図である。
【
図9】
図9は、旋回時に発生する垂直抗力について説明する図である。
【発明を実施するための形態】
【0011】
以下、図面を用いて本発明の実施の形態について説明する。
なお、本発明の範囲は、以下の実施の形態に限定されるものではなく、本発明の技術的思想の範囲内で任意に変更可能である。また、以下の図面においては、各構成をわかりやすくするために、実際の構造と各構造における縮尺や数等を異ならせる場合がある。
【0012】
<移動ロボット>
図1は、本発明の実施形態に係る移動ロボットシステムを構成する移動ロボット(移動体)1を示す斜視図である。移動ロボット1は、車体(シャーシ、支持体)2と、車体2に回転可能に支持された左右一対の車輪4A,4Bとを備える。車体2は、移動ロボット1の下部に設けられたほぼ水平なフレームである。車輪4A,4Bは、同形同大であり、同心に配置されている。
【0013】
車体2には、車輪4A,4Bをそれぞれ駆動するモータ6A,6Bが積載されている。また、車体2には、モータ6A,6Bを駆動するための電源であるバッテリが収容されたバッテリケース8が積載されている。さらに、車体2には、モータ6A,6Bを駆動するためのプリント基板10A,10B,12A,12Bが実装されている。ここで、プリント基板10Aおよび10Bは、インバータやモータドライバを含む駆動回路を含み、プリント基板12Aおよび12Bは、マイコンボードを含むメイン制御回路を含む。
なお、
図1では、プリント基板10A,10B,12A,12Bが棚板上に実装されている場合について示しているが、プリント基板10A,10B,12A,12Bそのものが棚板になっていてもよい。
【0014】
さらに、車体2には、複数(本実施形態では、3本)の支柱14が取り付けられており、各支柱14は、回転台ユニット16を支持している。回転台ユニット16は、互いに同じ直径を有する支持台18と回転台20とを備える。支持台18は、支柱14の上端に固定されている。回転台20は、支持台18に同心に配置されている。
【0015】
図2に示すように、支持台18の上面には、軸受22が取り付けられ、軸受22には、回転台20の下面に設けられた回転台用金具24が挿入されている。なお、回転台20に軸受22が取り付けられ、軸受22に支持台18の回転台用金具24が挿入されていてもよい。いずれにせよ、回転台20は、支持台18(車体2)に対して鉛直方向の軸回りに回転自在に連結されている。
なお、本実施形態では、支持台18と回転台20とは、軸受22を介して互いに回転可能に連結されている場合について説明するが、回転治具は軸受22に限定されるものではなく、例えば回転盤であってもよい。
【0016】
図1に戻って、移動ロボット1には、回転台20の回転角度を測定する測定装置として、フォトセンサ26が設けられている。具体的には、
図1に示すように、支持台18にブラケット28が取り付けられ、ブラケット28にフォトセンサ26が支持されている。フォトセンサ26は、例えば2つのフォトリフレクタ29a,29bを有する。
【0017】
回転台20の外周面(側面)には、複数の白い部分と複数の黒い部分とが交互に設けられている。複数の白い部分は、互いに均等な角間隔をおいて配置され、複数の黒い部分も、互いに均等な角間隔をおいて配置されている。白い部分および黒い部分は、着色により設けてもよいし、白いテープと黒いテープとを回転台20に貼付することにより設けてもよい。
【0018】
フォトリフレクタ29a,29bの各々は、発光素子(例えば発光ダイオード)と受光素子(例えばフォトトランジスタ)とを有しており、発光素子から発せられた光のうち、回転台20の外周面(側面)で反射した光を受光素子が受光するよう構成されている。受光素子は、受光した光の強度に応じた電気信号を出力する。受光素子が出力する電気信号のレベルは、受光素子が白い部分に対面するか黒い部分に対面するかによって異なる。したがって、回転台20が基準の角度位置にあった時からの電気信号のレベルの変化の回数を把握することによって、回転台20の回転角度を測定することができる。
【0019】
また、2つのフォトリフレクタ29a,29bは、回転台20に対する角度位置がそれぞれ異なるように設けられている。この角度位置の相違により、2つのフォトリフレクタ29a,29bの出力位相が異なるため、回転台20の回転方向(CW、CCW)を判別することができる。
なお、本実施形態では、回転台20の回転角度を測定する測定装置がフォトセンサである場合について説明するが、測定装置は、フォトセンサに限定されるものではなく、回転台20の回転角度および回転方向を測定可能でセンサ(装置)であってよい。
【0020】
<移動装置>
図3および
図4は、実施形態に係る移動ロボットシステムを構成する移動装置(搬送装置)30を示す。この移動装置30は、2つの移動ロボット1の回転台20が連結荷台(連結部材)32によって連結された構成を有する。
【0021】
具体的には、
図3に示すように、各回転台20の上面における中心位置には、溝または凹部34が形成され、連結荷台32の下面には2つの突起36が形成または取付けされている。突起36は、凹部34にそれぞれ嵌め込まれている。凹部34および突起36は、上面視において例えば三角形状であり、各移動ロボット1の回転台20に対して、連結荷台32は回転しない。
なお、凹部34および突起36の形状は、三角形に限定されるものではなく、嵌合させることで連結荷台32が回転台20に対して回転しない構成となる形状であればよく、例えば四角形等であってもよい。
【0022】
連結荷台32の上面は平坦であり、当該上面には荷物38を積載することができる。つまり、移動装置30は、2つの移動ロボット1により荷物38を搬送可能に構成されている。
この場合、2つの移動ロボット1のそれぞれの走行方向に応じて、連結荷台32で連結された2つの移動ロボット1の回転台20が回転するので、2つの移動ロボット1の走行を阻害しない。
【0023】
このように、移動ロボット1の車輪支持部は、移動ロボット1の本体部に対して、回転台20の中心位置における鉛直方向の軸回りに回転可能な構成を有する。ここで、上記本体部は、本実施形態では、移動ロボット1の回転台20である。また、上記車輪支持部は、車輪4Aおよび4Bを支持する部材であり、本実施形態では、車体2、車輪4A,4B、モータ6A,6B、バッテリケース8、プリント基板10A,10B,12A,12B、支柱14および支持台18である。
【0024】
なお、移動装置30を構成する移動ロボット1は2つに限定されるものではなく、荷物38の重量に応じて、3つ以上とすることもできる。この場合、3つ以上の移動ロボット1の回転台20を、連結荷台32によって連結してもよい。
【0025】
<制御システム>
図5は、本発明の実施形態に係る移動ロボットシステム100の主要部分のブロック図である。
本実施形態では、移動ロボットシステム100は、2つの移動ロボット1を備える移動装置30と、移動ロボット1を制御する外部コンピュータ(制御装置)40と、を備える。移動ロボット1は、外部コンピュータ40と無線通信により通信可能に接続されている。無線通信の手法としては、特に限定されないが、例えば無線LAN規格(例えば、IEEE802.11規格シリーズ)に準拠した通信とすることができる。
【0026】
移動ロボット1は、モータ6A,6Bにそれぞれ対応する2つのモータユニットを有する。具体的には、移動ロボット1は、モータ6Aに対応する第1のモータユニット42Aと、モータ6Bに対応する第2のモータユニット42Bと、を有する。
モータユニット42A,42Bは、電源43により給電される。電源43は、バッテリケース8(
図1参照)に収容されたバッテリである。フォトセンサ26も電源43により給電される。
【0027】
第1のモータユニット42Aは、モータ6A、無線通信回路44A、メイン制御部46A、メモリ48A、モータ駆動制御部50A、駆動回路52Aおよび、センサ部54Aを有する。第2のモータユニット42Bは、モータ6B、無線通信回路44B、メイン制御部46B、メモリ48B、モータ駆動制御部50B、駆動回路52Bおよびセンサ部54Bを有する。以下、モータ6Aを第1のモータ6Aと呼ぶことがあり、モータ6Bを第2のモータ6Bと呼ぶことがある。
【0028】
無線通信回路44A、メイン制御部46A、メモリ48A、モータ駆動制御部50Aおよび駆動回路52Aの各々は、プリント基板10Aまたは12A(
図1参照)に実装される。無線通信回路44B、メイン制御部46B、メモリ48B、モータ駆動制御部50Bおよび駆動回路52Bの各々は、プリント基板10Bまたは12B(
図1参照)に実装される。
具体的には、無線通信回路44A、メイン制御部46A、メモリ48Aおよびモータ駆動制御部50Aは、プリント基板12Aに実装され、駆動回路52Aは、プリント基板10Aに実装される。無線通信回路44B、メイン制御部46B、メモリ48Bおよびモータ駆動制御部50Bは、プリント基板12Bに実装され、駆動回路52Bは、プリント基板10Bに実装される。
【0029】
無線通信回路44A,44Bは、外部コンピュータ40と無線通信する機能を有する。無線通信回路44A,44Bは、例えばWiFiモジュールにより構成することができる。
但し、本実施形態では、第1のモータユニット42Aの無線通信回路44Aのみを通常、使用する。第2のモータユニット42Bの無線通信回路44Bは、無線通信回路44Aに異常が発生した場合の予備として使用することができる。あるいは、第2のモータユニット42Bの無線通信回路44Bを補助的に使用することができる。例えば、無線通信回路44Aを外部コンピュータ40からの受信に使用し、無線通信回路44Bを外部コンピュータ40への送信に使用してもよい。
【0030】
メイン制御部46A,46Bの各々は、プロセッサであり、記録媒体(図示せず)に記憶されたプログラムを読み出して実行することによって、動作する。したがって、記録媒体から読み出されたプログラム(プログラムコード)自体が実施形態の機能を実現することもできる。また、当該プログラムを記録した記録媒体は本発明を構成することができる。
メイン制御部46Aは、無線通信回路44Aを用いて、外部コンピュータ40と無線通信する。また、メイン制御部46Aは、モータ駆動制御部50Aを制御することにより、モータ6Aの駆動を制御する。さらに、メイン制御部46Aは、第2のモータユニット42Bのメイン制御部46Bと通信可能に有線接続されている。
【0031】
メイン制御部46Bは、モータ駆動制御部50Bを制御することにより、モータ6Bの駆動を制御する。また、メイン制御部46Bは、必要に応じて、無線通信回路44Bを用いて、外部コンピュータ40と無線通信することができる。
メモリ48A,48Bの各々は、メイン制御部46Aまたは46Bが処理を行うために必要なデータを記憶する。メイン制御部46A,46Bの各々は、メモリ48Aまたは48Bに必要なデータを書き込んだり、メモリ48Aまたは48Bから必要なデータを読み出したりすることができる。メモリ48A,48Bは、揮発性メモリ(例えば、SRAM)であるが、不揮発性メモリ(例えば、フラッシュメモリ)であってもよい。また、メモリ48A,48Bの各々が、揮発性メモリと不揮発性メモリの両方を備えていてもよい。
【0032】
モータ駆動制御部50Aは、メイン制御部46Aからの指令に従って、モータ6Aの駆動(例えば回転速度)を制御する。モータ駆動制御部50Bは、メイン制御部46Bからの指令に従って、モータ6Bの駆動(例えば回転速度)を制御する。モータ駆動制御部50A,50Bの各々は、例えば、PID制御またはベクトル制御を行うことができ、例えば、マイクロプロセッサ、ASIC(Application Specific Integrated Circuit)、またはDSP(Digital Signal Processor)により構成されている。
【0033】
また、モータ駆動制御部50A,50Bは、例えばPID制御等によりモータ6A、6Bの速度指令値を算出し、算出した速度指令値に基づいて、PWM制御のためのデューティー比を演算する。そして、モータ駆動制御部50A,50Bは、演算したデューティー比に応じたPWM信号を駆動回路52A、52Bにそれぞれ出力する。
駆動回路52Aは、モータ駆動制御部50Aの制御の下で、モータ6Aを駆動する。駆動回路52Bは、モータ駆動制御部50Bの制御の下で、モータ6Bを駆動する。
具体的には、駆動回路52A,52Bは、電源43から電力が供給され、モータ駆動制御部50A,50Bから出力されるPWM信号をもとにモータ6A,6Bをそれぞれ駆動する。
【0034】
センサ部54A,54Bは、それぞれモータ6A,6Bの駆動制御に用いる各種信号を検出するセンサ群であり、例えばモータ電流を検出する電流センサ、モータ位置を検出する位置センサ、モータ回転速度を検出する速度センサ、車輪の回転角度を検出するセンサなどを含む。センサ部54Aの出力信号は、モータ駆動制御部50Aに供給され、センサ部54Bの出力信号は、モータ駆動制御部50Bに供給される。モータ駆動制御部50A,50Bによって測定された各種信号は、メイン制御部46A,46Bに通知され、メイン制御部46A,46Bは、通知された信号を使用して、モータ駆動制御部50A,50Bにモータ6A,6Bの駆動の制御のための指令を与える。
例えば、上記速度センサは、モータ6A,6Bの内部に取り付けられたホールセンサであって、磁界を電気信号に変換する。モータ駆動制御部50A,50Bは、速度センサの出力信号に基づいてモータ6A,6Bの回転速度を判定することができる。すなわち、モータ駆動制御部50Aはモータ6Aの回転速度を測定し、モータ駆動制御部50Bはモータ6Bの回転速度を測定することができる。
また、モータ駆動制御部50A,50Bは、それぞれ駆動回路52A,52Bの電流値に基づいて、公知の計算方式で、モータ6A,6Bのトルクを計算することができる。すなわち、モータ駆動制御部50Aはモータ6Aのトルクを測定し、モータ駆動制御部50Bはモータ6Bのトルクを測定することができる。
【0035】
また、第1のモータユニット42Aのメイン制御部46Aには、フォトセンサ26の2つのフォトリフレクタ29a,29bの出力信号も供給される。メイン制御部46Aは、上記の方式によって、フォトリフレクタ29a,29bの出力信号に基づいて、回転台20の回転方向を判別するとともに、回転台20の回転角度を測定する。
本実施形態では、メイン制御部46Aは、回転台20の回転角度を移動ロボット1の姿勢角として測定する。
【0036】
<モータの制御の動作例>
次に、外部コンピュータ40からの制御コマンドに基づく、モータユニット42A,42Bのモータ6A,6Bの制御の動作例について説明する。以下に説明する動作は、複数の移動ロボット1を備える移動装置30(
図3および
図4参照)では、各移動ロボット1について個別に実行される。
【0037】
外部コンピュータ40は、モータ6A,6Bを制御するコマンドを第1のモータユニット42Aに無線通信により送信する。ここで、上記コマンドは、第1のモータ6Aの制御情報(目標速度)と、第2のモータ6Bの制御情報(目標速度)と、を含む。
第1のモータユニット42Aのメイン制御部46Aが無線通信回路44Aを介して上記制御情報を含むコマンドを受信すると、メイン制御部46Aは、第1のモータ6Aの制御情報をモータ駆動制御部50Aに出力する。また、メイン制御部46Aは、第2のモータ6Bの制御情報をメイン制御部46Bに送信する。メイン制御部46Bは、メイン制御部46Aから第2のモータ6Bの制御情報を受信すると、受信した第2のモータ6Bの制御情報をモータ駆動制御部50Bに出力する。
これにより、第1のモータ6Aおよび第2のモータ6Bの回転速度が目標速度となるように制御される。
【0038】
また、外部コンピュータ40は、モータ6A,6Bの状態の測定に関する測定コマンドを、第1のモータユニット42Aに無線通信により送信する。当該測定コマンドは、モータ6A,6Bの状態を示す情報(モータユニット情報)を測定し、報告を指示するコマンドである。ここで、モータユニット情報は、モータ6A,6Bの位置、速度およびトルク等のモータ6A,6Bに関する情報や、フォトセンサ26の出力信号、センサ部54A,54Bの出力信号等を含む。
【0039】
第1のモータユニット42Aのメイン制御部46Aが無線通信回路44Aを介して測定コマンドを受信すると、メイン制御部46Aは、第2のモータ6Bのモータユニット情報の測定、報告を指示するコマンドをメイン制御部46Bに送信する。メイン制御部46Bは、メイン制御部46Aから上記コマンドを受信すると、第2のモータ6Bのモータユニット情報をメイン制御部46Aに送信する。そして、メイン制御部46Aは、第1のモータ6Aのモータユニット情報と、第2のモータ6Bのモータユニット情報とを外部コンピュータ40へ送信するよう無線通信回路44Aに指示する。
【0040】
外部コンピュータ40は、移動ロボット1からモータユニット情報を受信すると、受信したモータユニット情報に基づいて、移動ロボット1の位置を推定する。ここで、モータユニット情報は、移動ロボット1の左右車輪4A,4Bの回転角(θR、θL)と、移動ロボット1の回転台20の回転角(θr)と、を含む。つまり、外部コンピュータ40は、移動ロボット1の左右車輪4A,4Bの回転角(θR、θL)と、移動ロボット1の回転台20の回転角(θr)と、を取得する回転角度取得部を備える。
本実施形態では、外部コンピュータ40は、回転台20の回転角θrを移動ロボット1の姿勢角として用い、車輪4A,4Bの回転角θR、θLと、移動ロボット1の姿勢角θrとに基づいて、移動ロボット1のスリップ角を推定する。そして、外部コンピュータ40は、推定されたスリップ角を用いて、移動ロボット1の位置を推定する。
【0041】
そして、外部コンピュータ40は、推定された位置情報をもとに、移動ロボット1が予め設定された目標走行経路を走行するよう移動ロボット1の目標速度Vx_ref、Vω_refを演算する。また、外部コンピュータ40は、演算した目標速度Vx_ref、Vω_refを、モータ6A、6Bの上述した制御情報として移動ロボット1へ送信する。ここで、Vx_refは、移動ロボット1の目標並進速度であり、Vω_refは、移動ロボット1の目標旋回速度である。
【0042】
前提条件として、移動装置30の旋回時は、必ず一旦2台の移動ロボット1が停止してから旋回を開始し、移動方向の修正時には、移動ロボット1が1台ずつ目標姿勢角へ回転するようにする。この理由は、2台の移動ロボット1が同時に旋回した場合、回転台20の回転角θrに2台の移動ロボット1の相対回転角が反映されてしまうことと、横滑り力が2台の移動ロボット1の総和となってしまうことを防ぐためである。
【0043】
<移動ロボットの位置推定方法>
まず、移動ロボット1の位置推定方法について説明する。
横滑りを考慮した差動二輪型ロボットの運動方程式は、次式で表される。
【0044】
【0045】
ここで、
図6に示すように、xwは世界座標系のx軸座標、ywは世界座標系のy軸座標、xbはロボット座標系のx軸座標、ybはロボット座標系のy軸座標、θは姿勢角である。また、Vxはロボットの並進速度、Vyはロボットの横滑り速度、V
Rは右車輪4Aの車輪速度、V
Lは左車輪4Bの車輪速度、ωは旋回速度、Lはトレッド幅である。
上記(1)、(2)式における姿勢角θは、左右車輪の回転角θ
R、θ
Lから算出される旋回角度θmが閾値δ以下である場合、θ=θm、θm>δである場合、θ=θrとする。ここで、δは、移動ロボット1が旋回しているとみなすための閾値である。つまり、旋回時には、回転台20の回転角θrを姿勢角θとして位置推定に用い、直進時には、左右車輪の回転角θ
R、θ
Lから算出される旋回角度θmを姿勢角θとして位置推定に用いるものとする。
上記の式を積分すれば、ロボットの並進距離と旋回角度とを推定することができる。
【0046】
<目標速度演算部の構成例>
図7は、外部コンピュータ40が備える目標速度演算部41の構成例を示すブロック図である。
目標速度演算部41は、旋回角度算出部41aと、車輪速度算出部(車輪速度取得部)41bと、スリップ角推定部41cと、角速度算出部41dと、並進速度算出部41eと、横滑り速度算出部41fと、位置推定部41gと、目標速度算出部41hと、を備える。
旋回角度算出部41aは、車輪4A,4Bの回転角θ
Rおよびθ
Lに基づいて、移動ロボット1の旋回角度θmを算出する。車輪速度算出部41bは、車輪4A,4Bの回転角θ
Rおよびθ
Lに基づいて、車輪速度V
RおよびV
Lを算出する。
【0047】
スリップ角推定部41cは、移動ロボット1の回転台20の回転角θrと、旋回角度算出部41aにより算出された旋回角度θmとに基づいて、移動ロボット1のスリップ角βを推定する。
ここで、旋回角度θmは、車輪4A、4Bに取り付けられたセンサ(エンコーダやホールセンサ等)により検出された回転角θ
R、θ
Lから算出された旋回角度であり、
図8に示すように、移動ロボット1の実際の姿勢角θrとは異なる。上述したように、本実施形態では、回転台20の回転角θrを移動ロボット1の実際の姿勢角θrとして取得するため、次式をもとにスリップ角βを推定することができる。
β=θr-θm ………(5)
【0048】
角速度算出部41dは、移動ロボット1の回転台20の回転角θrをローパスフィルタに通して微分し、回転台20の回転角速度dθr/dtを算出する。回転台20の回転角θrは、タイヤのスリップに依存しないため、回転台20の回転角速度dθr/dtは、移動ロボット1の実際の旋回速度として用いることができる。
並進速度算出部41eは、移動ロボット1の実際の並進速度Vx_realを算出する。この並進速度Vx_realは、横滑りが存在し得る車輪速度VR、VLから算出される並進速度Vx=(VR+VL)/2とは異なる。
並進速度Vx_realは、次式により表される。
Vx_real=(VR_real+VL_real)/2 ………(6)
ここで、VR_realは、右車輪の実際の車輪速度、VL_realは、左車輪の実際の車輪速度である。
【0049】
また、移動ロボット1の実際の旋回角度dθr/dtは、次式により表すことができる。
dθr/dt=(VR_real-VL_real)/L ………(7)
上記(6)(7)式により、以下の式が導出される。
Vx_real=(2VR_real-L・dθr/dt)/2 ………(8)
Vx_real=(2VL_real-L・dθr/dt)/2 ………(9)
【0050】
上記(8)(9)式におけるV
R_realおよびV
L_realは、実際にはセンシングできない値である。しかしながら、旋回時に作用する遠心力によって、信用できる実測値があるため、本実施形態では、その信用できる車輪の車輪速度を用いて、実際の並進速度Vx_realを算出するものとする。
重心が移動ロボット1の左右車輪間の中心にあると仮定すると、
図9(a)に示すように移動ロボット1が右に旋回する場合、遠心力により左車輪4Bに右車輪4Aよりも大きな垂直抗力が発生し、左車輪4Bのタイヤを歪める。このため、左車輪のタイヤ半径が変化し、車輪の回転誤差となるおそれがある。
【0051】
つまり、
図9(a)に示すように移動ロボット1が右旋回している場合には、旋回内側である右車輪の車輪速度V
Rが信用できる実測値となる。一方、
図9(b)に示すように移動ロボット1が左旋回している場合には、旋回内側である左車輪の車輪速度V
Lが信用できる実測値となる。
そこで、
図9(a)に示すように移動ロボット1が右旋回している場合には、右車輪の車輪速度V
Rを実際の車輪速度V
R_realとし、上記(8)式を用いて実際の並進速度Vx_realを算出する。一方、
図9(b)に示すように移動ロボット1が左旋回している場合には、左車輪の車輪速度V
Lを実際の車輪速度V
L_realとし、上記(9)式を用いて実際の並進速度Vx_realを算出する。
なお、本実施形態では、移動ロボット1は、旋回時に旋回内側の車輪が浮くほどの遠心力では走行しないと仮定する。
【0052】
横滑り速度算出部41fは、移動ロボット1の実際の横滑り速度Vy_realを算出する。横滑り速度Vy_realは、次式をもとに算出することができる。
Vy_real=Vx_real・tanβ ………(10)
位置推定部41gは、実際の並進速度Vx_realと、実際の横滑り速度Vy_realとを用いて、位置xb、ybを推定する。具体的には、上記(1)(2)式を積分することで位置xb、ybを算出する。
目標速度算出部41hは、移動ロボット1の位置情報xb、ybおよびθに基づいて、移動ロボット1の目標速度(目標並進速度Vx_ref、目標旋回速度Vω_ref)を算出する。なお、上記の目標速度の算出には、公知の方法を用いることができる。
【0053】
<効果>
以上のように、本実施形態では、外部コンピュータ(制御装置)40は、移動ロボット1の回転台20の回転角度θrを取得し、取得された回転台20の回転角度θrに基づいて、移動ロボット1のスリップ角を推定する。
つまり、本実施形態では、外部コンピュータ(制御装置)40は、回転台20の回転角度θrが移動ロボット1の旋回時に生じるスリップに依存しないことを利用し、回転台20の回転角度θrをもとに移動ロボット1の実際の姿勢角を把握する。移動ロボットの姿勢角が分かれば、車輪速度VR、VLに基づいて算出される移動ロボット1の旋回角度θmとの差分を取ることで、スリップ角βを容易に推定することができる。したがって、多くのセンサを必要とすることなく、また、複雑なアルゴリズムを必要とすることなく、スリップ角βを適切に推定することができる。
【0054】
また、本実施形態では、移動装置30において、一方の移動ロボット1の回転台20は、他方の移動ロボット1の回転台20に連結された連結荷台(連結部材)32に固定されており、外部コンピュータ(制御装置)40は、回転台20の回転角度θrを移動ロボット1の実際の姿勢角として直接取得することができる。このように、移動ロボット1の実際の姿勢角を容易に取得することができるので、スリップ角βを容易かつ適切に推定することができる。
さらに、本実施形態では、外部コンピュータ(制御装置)40は、上記により推定されたスリップ角βを用いて移動ロボット1の位置xb、ybを推定するので、横滑りを考慮した適切な位置推定が可能である。
【0055】
また、外部コンピュータ(制御装置)40は、移動ロボット1の位置推定に際し、車輪の車輪速度VR、VLをそれぞれ取得し、取得された車輪速度VR、VLに基づいて、移動ロボット1の並進速度Vx_realを算出する。また、外部コンピュータ(制御装置)40は、算出された並進速度Vx_realと、推定されたスリップ角βとに基づいて、移動ロボット1の横滑り速度Vy_realを算出する。そして、外部コンピュータ(制御装置)40は、並進速度Vx_realと横滑り速度Vy_realとに基づいて、移動ロボット1の位置xb、ybを推定する。
これにより、移動ロボット1の横滑り速度Vy_realを適切に推定することができ、横滑りを考慮した移動ロボット1の位置推定を適切に行うことができる。
【0056】
さらに、外部コンピュータ(制御装置)40は、回転台20の回転角度θrに基づいて、回転台20の回転角速度dθr/dtを算出し、当該回転角速度dθr/dtと車輪速度VR、VLのうち旋回内側の車輪の車輪速度とに基づいて、移動ロボット1の並進速度Vx_realを算出する。
このように、旋回走行時には、旋回外側のタイヤの垂直抗力が大きくなり、車輪の回転誤差が生じることを考慮し、信用できる旋回内側の車輪(右旋回時には右タイヤ、左旋回時には左タイヤ)の回転速度を用いて移動ロボット1の並進速度Vx_realを算出する。また、回転台20にはタイヤのスリップによるすべりが存在しないことに着目し、回転台20の回転角速度dθr/dtを移動ロボットの旋回速度として、並進速度Vx_realの算出に使用する。これにより、移動ロボット1の実際の並進速度Vx_realを適切に算出することができる。
【0057】
移動ロボット1を工場内で走行させる場合、移動ロボット1の走行経路を適切に制御するためには移動ロボット1の位置を適切に推定する必要があるが、横滑り等によって位置推定の誤差が生じることが問題となりうる。
従来、車両の前後加速度、横加速度および車体速度を用いて、車体スリップ角を推定したり、移動ロボットの回転角とカメラによって得られた映像情報とからスリップ角を推定したりする方法などが提案されている。しかしながら、これらの技術では、スリップ角の推定に多くのセンサが必要である。つまり、スリップ角の推定に必要なパラメータが多く、アルゴリズムが複雑化する。
【0058】
これに対して、本実施形態では、多くのセンサを必要とすることなく、また、複雑なアルゴリズムを必要とすることなく、スリップ角を適切に推定することができ、横滑りを考慮した高精度な位置推定を容易に行うことが可能となる。
【0059】
<変形例>
上記実施形態においては、各移動ロボット1に2つの車輪4A,4Bが設けられ、2つの車輪4A,4Bに対応して2つのモータ6A,6Bが設けられている。しかしながら、各移動ロボット1に3つ以上の車輪、およびこれら3つ以上の車輪に対応する3つ以上のモータが設けられてもよい。
【0060】
また、上記実施形態においては、第1のモータユニット42Aのメイン制御部46Aが回転台20の回転角度を測定する場合について説明したが、第2のモータユニット42Bのメイン制御部46Bが測定してもよい。
【0061】
さらに、上記実施形態においては、外部コンピュータ40が移動ロボット1の位置を推定する場合について説明したが、移動ロボット1が自己位置を推定し、外部コンピュータ40に報告してもよい。つまり、移動ロボット1自体が、移動ロボット1のスリップ角の推定および位置推定を行う制御装置として動作してもよいし、他のPC等が当該制御装置として動作してもよい。
【符号の説明】
【0062】
1…移動ロボット、2…車体、4A,4B…車輪、6A,6B…モータ、20…回転台、26…フォトセンサ、29a,29b…フォトリフレクタ、30…移動装置、32…連結荷台(連結部材)、38…荷物、40…外部コンピュータ(制御装置)、41…目標速度演算部、41a…旋回角度算出部、41b…車輪速度算出部、41c…スリップ角推定部、41d…角速度算出部、41e…並進速度算出部、41f…横滑り速度算出部、41g…位置推定部、41h…目標速度算出部