(57)【要約】      （修正有）【課題】コスト面において優れた移動体、移動体制御システム及び移動体の制御方法を提供する。【解決手段】移動体１は、位置情報を含む模様を撮像するカメラ７１，７２と、カメラ７１，７２によって撮影された画像信号から位置情報を取得する画像処理部５４と、画像処理部５４によって取得された位置情報に基づいて自己位置を推定し、推定された自己位置に基づいて、予め位置と関連づけられた走行面情報を取得し、当該走行面情報に基づいて、前記移動体の動作制御を行う制御計算部５１を備えている。【選択図】図５
2010117847.tif 000002
【特許請求の範囲】
【請求項１】
位置情報を含む模様を撮像するカメラと、
前記カメラによって撮影された画像信号から位置情報を取得する画像処理部と、
移動体を移動させる移動機構と、
前記画像処理部によって取得された位置情報に基づいて自己位置を推定し、推定された自己位置に基づいて、予め位置と関連づけられた走行面情報を取得し、当該走行面情報に基づいて、前記移動体の動作制御を行う制御計算部を備えた移動体。
【請求項２】
前記移動体は、さらに搭乗者を乗せる座面の角度を駆動制御する駆動部を備え、
前記制御計算部は、走行面情報に含まれる走行面の傾斜情報に基づいて、前記駆動部を制御して、座面制御を実行することを特徴とする請求項１記載の移動体。
【請求項３】
前記制御計算部は、走行面情報に含まれる障害物情報に基づいて、前記移動機構を駆動するための指令値を算出するときのゲインを制御することを特徴とする請求項１又は２記載の移動体。
【請求項４】
前記制御計算部は、前記障害物情報が当該移動体の周囲に障害物があることを示す場合に、当該ゲインを、通常よりも小さく切り替えることを特徴とする請求項３記載の移動体。
【請求項５】
前記制御計算部は、前記画像処理部によって位置情報が取得できない場合に、オドメトリによって自己位置を推定することを特徴とする請求項１〜４いずれかに記載の移動体。
【請求項６】
前記模様は、移動体が走行する床面に付されていることを特徴とする請求項１〜５いずれかに記載の移動体。
【請求項７】
移動体の周囲環境に付され、位置情報を含む模様を撮影して、移動体を制御する制御する移動体制御システムであって、
前記模様を撮像するカメラと、
前記カメラによって撮影された模様より位置情報を取得する画像処理部と、
前記画像処理部によって取得された位置情報に基づいて自己位置を推定し、推定された自己位置に基づいて、予め位置と関連づけられた走行面情報を取得し、当該走行面情報に基づいて、前記移動体の動作制御を行う制御計算部を備えた移動体制御システム。
【請求項８】
前記移動体は、さらに搭乗者を乗せる座面の角度を駆動制御する駆動部を備え、
前記制御計算部は、走行面情報に含まれる走行面の傾斜情報に基づいて、前記駆動部を制御して、座面制御を実行する請求項７記載の移動体制御システム。
【請求項９】
前記制御計算部は、走行面情報に含まれる障害物情報に基づいて、前記移動機構を駆動するための指令値を算出するときのゲインを制御する請求項７又は８記載の移動体制御システム。
【請求項１０】
前記制御計算部は、前記障害物情報が当該移動体の周囲に障害物があることを示す場合に、当該ゲインを、通常よりも小さく切り替えることを特徴とする請求項９記載の移動体制御システム。
【請求項１１】
前記制御計算部は、前記画像処理部によって位置情報が取得できない場合に、オドメトリによって自己位置を推定することを特徴とする請求項７〜１０いずれかに記載の移動体制御システム。
【請求項１２】
前記移動体制御システムは、通信装置と、移動体を備え、
当該通信装置は、前記カメラと、前記画像処理部と、当該画像処理部により取得された位置情報を前記移動体に対して送信する送信手段とを有し、
前記移動体は、前記送信手段より送信された位置情報を受信する受信手段と、前記制御計算部とを有し、
当該移動体の制御計算部は、受信した位置情報に基づいて、前記移動体の動作制御を行うことを特徴とする請求項７〜１１いずれかに記載の移動体制御システム。
【請求項１３】
前記制御計算部は、受信した位置情報に基づいて、当該位置情報により特定される位置に当該移動体が移動するように、前記移動機構の駆動制御を実行することを特徴とする請求項１２に記載の移動体制御システム。
【請求項１４】
位置情報を含む模様を撮像するステップと、
撮像された画像信号から位置情報を取得するステップと、
取得された位置情報に基づいて自己位置を推定するステップと、
推定された自己位置に基づいて、予め位置と関連づけられた走行面情報を取得するステップと、
当該走行面情報に基づいて、前記移動体の動作制御を行うステップを備えた移動体の制御方法。
【請求項１５】
前記移動体の動作制御を行うステップは、走行面情報に含まれる走行面の傾斜情報に基づいて、座面制御を実行することを特徴とする請求項１４記載の移動体の制御方法。
【請求項１６】
前記移動体の動作制御を行うステップは、走行面情報に含まれる障害物情報に基づいて、移動体の移動機構を駆動するための指令値を算出するときのゲインを制御することを特徴とする請求項１４又は１５記載の移動体の制御方法。
【請求項１７】
前記障害物情報が当該移動体の周囲に障害物があることを示す場合に、当該ゲインを、通常よりも小さく切り替えることを特徴とする請求項１６記載の移動体の制御方法。
【請求項１８】
位置情報が取得できない場合に、オドメトリによって自己位置を推定することを特徴とする請求項１４〜１７いずれかに記載の移動体の制御方法。
【請求項１９】
前記模様は、移動体が走行する床面に付されていることを特徴とする請求項１４〜１８いずれかに記載の移動体の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動体、移動体制御システム及び移動体の制御方法に関する。
【背景技術】
【０００２】
近年、搭乗者を搭乗させた状態で移動する移動体が開発されている（特許文献１〜４）。特許文献１〜３に開示された移動体では、搭乗者が搭乗する搭乗面に力センサを設け、力センサからの出力に応じて車輪を駆動している。より具体的には、特許文献１に開示された移動体は、搭乗者が進みたい方向に体重をかけることにより移動する。特許文献２には、車椅子型の移動体が開示されている。また、特許文献３には、利用者の動作を能動的に検知して、それに応じて自律的に動作する移動体が開示されている。さらに、特許文献４には、２足歩行型の移動体を動作させるためのインタフェイス装置が開示されている。
【０００３】
【特許文献１】特開２００６−２８２１６０号公報
【特許文献２】特開平１０−２３６１３号公報
【特許文献３】特開平１１−１９８０７５号公報
【特許文献４】特開平７−１３６９５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１〜４に開示された移動体では、コスト面の考慮が欠けている。即ち、これらの移動体では、比較的高価な姿勢角センサや距離計測センサを用いており、非常に高価にならざるをえなかった。
【０００５】
本発明は、コスト面において優れた移動体、移動体制御システム及び移動体の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明にかかる移動体は、位置情報を含む模様を撮像するカメラと、前記カメラによって撮影された画像信号から位置情報を取得する画像処理部と、移動体を移動させる移動機構と、前記画像処理部によって取得された位置情報に基づいて自己位置を推定し、推定された自己位置に基づいて、予め位置と関連づけられた走行面情報を取得し、当該走行面情報に基づいて、前記移動体の動作制御を行う制御計算部を備えたものである。
【０００７】
ここで、前記移動体は、さらに搭乗者を乗せる座面の角度を駆動制御する駆動部を備え、前記制御計算部は、走行面情報に含まれる走行面の傾斜情報に基づいて、前記駆動部を制御して、座面制御を実行することが好ましい。
また、前記制御計算部は、走行面情報に含まれる障害物情報に基づいて、前記移動機構を駆動するための指令値を算出するときのゲインを制御することが望ましい。
【０００８】
このとき、前記制御計算部は、前記障害物情報が当該移動体の周囲に障害物があることを示す場合に、当該ゲインを、通常よりも小さく切り替えることが望ましい。
また、前記制御計算部は、前記画像処理部によって位置情報が取得できない場合に、オドメトリによって自己位置を推定することが望ましい。
ここで、前記模様は、移動体が走行する床面に付されていることが望ましい。
【０００９】
本発明にかかる移動体制御システムは、移動体の周囲環境に付され、位置情報を含む模様を撮影して、移動体を制御する制御する移動体制御システムであって、前記模様を撮像するカメラと、前記カメラによって撮影された模様より位置情報を取得する画像処理部と、前記画像処理部によって取得された位置情報に基づいて自己位置を推定し、推定された自己位置に基づいて、予め位置と関連づけられた走行面情報を取得し、当該走行面情報に基づいて、前記移動体の動作制御を行う制御計算部を備えたものである。
【００１０】
ここで、前記移動体は、さらに搭乗者を乗せる座面の角度を駆動制御する駆動部を備え、前記制御計算部は、走行面情報に含まれる走行面の傾斜情報に基づいて、前記駆動部を制御して、座面制御を実行することが望ましい。
【００１１】
また、前記制御計算部は、走行面情報に含まれる障害物情報に基づいて、前記移動機構を駆動するための指令値を算出するときのゲインを制御することが望ましい。
【００１２】
さらに、前記制御計算部は、前記障害物情報が当該移動体の周囲に障害物があることを示す場合に、当該ゲインを、通常よりも小さく切り替えることが好ましい。
また、前記制御計算部は、前記画像処理部によって位置情報が取得できない場合に、オドメトリによって自己位置を推定することが望ましい。
【００１３】
前記移動体制御システムは、通信装置と、移動体を備え、当該通信装置は、前記カメラと、前記画像処理部と、当該画像処理部により取得された位置情報を前記移動体に対して送信する送信手段とを有し、前記移動体は、前記送信手段より送信された位置情報を受信する受信手段と、前記制御計算部とを有し、当該移動体の制御計算部は、受信した位置情報に基づいて、前記移動体の動作制御を行うようにしてもよい。
【００１４】
このとき、前記制御計算部は、受信した位置情報に基づいて、当該位置情報により特定される位置に当該移動体が移動するように、前記移動機構の駆動制御を実行することが好ましい。
【００１５】
本発明にかかる移動体の制御方法は、位置情報を含む模様を撮像するステップと、  撮像された画像信号から位置情報を取得するステップと、取得された位置情報に基づいて自己位置を推定するステップと、推定された自己位置に基づいて、予め位置と関連づけられた走行面情報を取得するステップと、当該走行面情報に基づいて、前記移動体の動作制御を行うステップを備えたものである。
【００１６】
ここで、前記移動体の動作制御を行うステップは、走行面情報に含まれる走行面の傾斜情報に基づいて、座面制御を実行することを特徴とするものである。
【００１７】
また、前記移動体の動作制御を行うステップは、走行面情報に含まれる障害物情報に基づいて、移動体の移動機構を駆動するための指令値を算出するときのゲインを制御することが好ましい。
【００１８】
また、前記障害物情報が当該移動体の周囲に障害物があることを示す場合に、当該ゲインを、通常よりも小さく切り替えることが望ましい。
また、位置情報が取得できない場合に、オドメトリによって自己位置を推定することが望ましい。
ここで、前記模様は、移動体が走行する床面に付されていることが望ましい。
【発明の効果】
【００１９】
本発明によれば、コスト面において優れた移動体、移動体制御システム及び移動体の制御方法を提供することができる。
【発明を実施するための最良の形態】
【００２０】
以下、本発明にかかる移動体の実施形態を、図面に基づいて詳細に説明する。但し、本発明が以下の実施形態に限定される訳ではない。また、説明を明確にするため、以下の記載及び図面は、適宜、簡略化されている。
【００２１】
発明の実施の形態１．
まず、図１を用いて、本実施の形態１にかかる移動体制御システムの概略構成について説明する。図１は、上面から当該移動体制御システムを見た図である。かかる移動体制御システムは、移動体１と、位置情報を埋め込んだ模様を有する床面２を備えている。
【００２２】
移動体１は、床面上を搭乗者を乗せた状態で移動する自律移動型の移動ロボットである。移動体１は、搭載されたカメラによって床面２上の模様を撮影し、当該模様に埋め込まれた位置情報を認識して、自己位置を推定し、推定された自己位置に基づいて走行制御を実行する。
【００２３】
本実施の形態１にかかる移動体１は、特に、推定した自己位置に基づいてマップに含まれる段差や坂道等の傾斜情報に基づいて、座面制御を実行する。例えば、当該移動体１は、走行面の傾斜情報によって走行面が傾斜することを検出した場合にも、座面が常に平坦面に対して水平に近づくように、座面制御を実行する。
【００２４】
また、本実施の形態１にかかる移動体１は、推定した自己位置に基づいて予め作成されたマップに含まれる障害物情報に基づいて、ゲイン制御を実行する。例えば、当該移動体１は、移動方向に障害物があると判定した場合には、ゲインが低くなるように変更し、障害物に衝突しないように制御する。
【００２５】
床面２には、位置情報がコード化された模様がプリントとしたシートが貼り付けられている。かかる模様を用いた位置認識システムは、特開２００８−５２４０３号公報に開示されている。図１に示される模様は、見た目ではランダムに数種類の図形が並んでいるように見える。しかし実際には、４つの図形を用いて、それぞれの図形の配置場所と回転角度に規則性を与えることによって、位置情報をコード化している（図２、図３）。模様中には、図３のように模様平面上での位置と１対１に対応しているＩＤが敷き詰められている。
【００２６】
ＩＤの表現方法を図４に例示する。各ＩＤは４種類の図形の回転角によって表現する。図４に記したようにそれぞれの図形をタイプ１、タイプ２、タイプ３、タイプ４と名付ける。タイプ１からタイプ４までの図形の中心（重心）を結ぶと内角が６０度と１２０度の平行四辺形になっており、タイプ１からタイプ４は順に時計回りに並んでいる。
【００２７】
タイプ１とタイプ２の中心を結んだ線分、またはタイプ３とタイプ４の中心を結んだ線分を基準線（base line）とし、各図形の点線で表した線分とのなす角によってＩＤを決定する。これらの図形は、それぞれ基準線に対して５、１５、２５、・・・、１７５度と１０度ごとに傾いており、１つの図形につき１８種類のＩＤを表現することができる。
【００２８】
この模様ではタイプ１、タイプ３、タイプ４が点対象の図形なので各図形１８種類しかＩＤを表現できないが、点対象ではない図形を使用することで1つの図形に対して３６種類のＩＤを表現できることになる。本模様ではタイプ４をＩＤの誤認識を防ぐための誤り検出図形として利用しており、タイプ４の傾きはタイプ１からタイプ３の傾きによって決定される。そのため、３種類の図形でＩＤ表現を行っており、合計１８３（＝５８３２）種類のＩＤを表わすことができる。床に１つのＩＤを２０［ｃｍ］×２０［ｃｍ］のスペースで表示したとすると、２３３．２８［ｍ２］の広さに対応することができる。ＩＤは図４に示されるように、各図形の角度を並べることにより表現されており、（タイプ１の傾き（α）、タイプ２の傾き（β）、タイプ３の傾き（γ）、タイプ４の傾き（δ）というように表示する。
【００２９】
このようにコード化されたＩＤを並べることによって模様を表現していく。模様を表現する際に、本手法では図形の種類を増やすことで、表現できるＩＤの数を容易に増やすことができる。各図形を１０度ずつ回転させるものでは、１つの図形を追加することにより１８倍、２つ追加することにより１８２倍というように指数関数的にＩＤの数を増加させることができ、部屋の広さに応じてＩＤの数を調整することができる。また、ＩＤの大きさや密度、各図形の配置位置を変えることにより用途に応じた様々な模様を作ることもできる。
【００３０】
本実施の形態１にかかる移動体１の構成について、図５、図６を用いて説明する。図５は、移動体１の構成を模式的に示す正面図であり、図６は、移動体１の構成を模式的に示す側面図である。なお、図５、図６には、ＸＹＺの直交座標系が示されている。Ｙ軸が移動体１の左右方向を示し、Ｘ軸が移動体１の前後方向を示し、Ｚ軸が鉛直方向を示している。従って、Ｘ軸がロール軸に対応し、Ｙ軸がピッチ軸、Ｚ軸がヨー軸となる。図５、６において、＋Ｘ方向が移動体１の前方向であるとして説明する。
【００３１】
図５に示されるように移動体１は、搭乗部３と、車台１３を備えている。車台１３は、移動体１の本体部であり、搭乗部３を支持している。車台１３は、車輪６、カメラ７、フットレスト１０、筐体１１、制御計算部５１、バッテリ５２、センサ処理部５３、画像処理部５４を備えている。車輪６は、前輪６０１と後輪６０２から構成されている。ここでは、１つの前輪６０１と２つの後輪６０２からなる３輪型の移動体１を説明する。
【００３２】
搭乗部３は、搭乗席８と、力センサ９を備えている。そして、搭乗席８の上面が座面８ａとなる。すなわち、座面８ａの上に、搭乗者が乗った状態で移動体１が移動する。座面８ａは平面でもよいし、臀部の形に合わせた形状となっていてもよい。さらに、搭乗席８に背もたれを設けてもよい。すなわち、搭乗席８を車椅子形状としてもよい。乗り心地を向上させるために、搭乗席８にクッション性を持たせてもよい。移動体１が水平面上にある場合、座面８ａが水平になっている。力センサ９は、搭乗者の体重移動を検知する。すなわち、力センサ９は、搭乗席８の座面８ａに加わる力を検出する。そして、力センサ９は、座面８ａに加わる力に応じた計測信号を出力する。力センサ９は、搭乗席８の下側に配置される。すなわち、車台１３と搭乗席８の間に、力センサ９が配設されている。
【００３３】
力センサ９としては、例えば、６軸力センサを用いることができる。この場合、図７に示されるように、３軸方向の並進力（ＳＦｘ、ＳＦｙ、ＳＦｚ）と各軸周りのモーメント（ＳＭｘ、ＳＭｙ、ＳＭｚ）を計測する。これらの並進力とモーメントは、力センサ９の中心を原点に取った値である。移動体１のセンサ処理部５３に出力する計測信号をモーメント（Ｍｘ、Ｍｙ、Ｍｚ）とし、それらのモーメントの制御座標原点を図６に示す（ａ、ｂ、ｃ）とすると、Ｍｘ、Ｍｙ、Ｍｚは、それぞれ以下のように表すことができる。
Ｍｘ＝ＳＭｘ＋ｃ・ＳＦｙ−ｂ・ＳＦｚ
Ｍｙ＝ＳＭｙ＋ａ・ＳＦｚ−ｃ・ＳＦｘ
Ｍｚ＝ＳＭｚ＋ｂ・ＳＦｘ−ａ・ＳＦｙ
【００３４】
なお、図７は、各軸を説明するための図である。力センサ９として、モーメント（Ｍｘ、Ｍｙ、Ｍｚ）を計測できるものであればよい。各軸周りのモーメント（ＳＭｘ、ＳＭｙ、ＳＭｚ）を計測できる３軸力センサを制御座標原点に配置して、Ｍｘ，Ｍｙ、Ｍｚを直接計測してもよい。また、１軸の力センサを３つ設けてもよい。さらには、歪みゲージや、ポテンショを用いたアナログジョイスティックなどでもよい。すなわち、直接的又は間接的に３軸周りのモーメントを計測できるものであればよい。そして、力センサ９は、３つのモーメント（Ｍｘ、Ｍｙ、Ｍｚ）を計測信号として出力する。
【００３５】
筐体１１は、箱形状を有しており、前方下側が突出している。そして、この突出した部分の上にフットレスト１０が配設されている。フットレスト１０は、搭乗席８の前方側に設けられている。従って、搭乗者が搭乗席８に搭乗した状態では、搭乗者の両足がフットレスト１０上に乗せられている。
【００３６】
筐体１１には、駆動モータ６０３、制御計算部５１、バッテリ５２、センサ処理部５３、画像処理部５４が内蔵されている。バッテリ５２は、駆動モータ６０３、制御計算部５１、センサ処理部５３、画像処理部５４、カメラ７、力センサ９などの各電気機器に電源を供給する。
【００３７】
筐体１１には、車輪６が回転可能に取り付けられている。ここでは、円盤上の車輪６が３つ設けられている。車輪６の一部は、筐体１１の下面よりも下側に突出している。従って、車輪６が床面と接触している。２つの後輪６０２は、筐体１１の後部に設けられている。後輪６０２は、駆動輪であり、駆動モータ６０３によって回転する。すなわち、駆動モータ６０３が駆動することによって、後輪６０２がその車軸周りに回転する。後輪６０２は、左右両側に設けられている。なお、後輪６０２には、その回転速度を読み取るためのエンコーダが内蔵されている。２つの後輪６０２は、同軸上に配置されている。左の後輪６０２の車軸と、右の後輪６０２の車軸は、同一直線上に配置されている。
【００３８】
また、車輪６には前輪６０１が含まれている。そして、1つの前輪６０１が筐体１１の前部中央に設けられている。従って、Ｙ方向において、２つの後輪６０２の間に、前輪６０１が配設されている。Ｘ方向において、前輪６０１の車軸と後輪６０２の車軸との間に、搭乗席８が設けられている。前輪６０１は、従動輪（補助輪）であり、移動体１の移動に応じて回転する。すなわち、後輪６０２の回転によって移動する方向、及び速度に応じて、前輪６０１が回転する。このように、後輪６０２の前に補助輪である前輪６０１を設けることで、転倒を防ぐことができる。前輪６０１は、フットレスト１０の下方に設けられている。
【００３９】
制御計算部５１はＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、通信用のインタフェイスなどを有する演算処理装置である。また、制御計算部５１は、着脱可能なＨＤＤ、光ディスク、光磁気ディスク等を有し、各種プログラム、制御パラメータやマップなどを記憶し、それらのプログラム、データやマップを必要に応じてメモリ（不図示）等に供給する。もちろん、制御計算部５１は、物理的に一つの構成に限られるものではない。制御計算部５１は、力センサ９からの出力に応じて駆動モータ６０３の動作を制御するための処理を行う。また、制御計算部５１は、カメラ７によって撮影され、画像処理部５４によって得られた位置情報タから自己位置を推定する。さらに、制御計算部５１は、推定した自己位置に基づいて、予め作成されたマップから、その推定自己位置及びその近傍の傾斜、障害物等の走行面の状態を示す走行面情報を取得する。そして、制御計算部５１は、当該走行面情報に基づいて、走行制御や座面制御を実行する。
【００４０】
このような制御を行う際に用いられるマップは、模様が設けられた床面２上の位置と、走行面情報が関連付けられて、制御計算部５１上の所定のメモリに格納されて構成される。例えば、当該マップは、位置を示す座標情報と、走行面情報が対応づけられたテーブル情報としてメモリに格納される。
【００４１】
センサ処理部５３は、力センサ９からの計測信号に対応する計測データに対して、演算処理を行う。これにより、制御計算部５１に入力される入力モーメント値が算出される。なお、センサ処理部５３は、力センサ９に内蔵されていてもよく、制御計算部５１に内蔵されていてもよい。
【００４２】
画像処理部５４は、カメラ７から画像信号を入力し、画像処理を行い、位置情報を取得して、これを制御計算部５１に出力する。
【００４３】
カメラ７は、床面２に設けられた模様を撮影する。カメラ７は、複数のカメラ７１〜７４より構成される。それぞれのカメラ７１〜７４は、図示しない配線により画像処理部５４に接続されている。カメラ７としては、例えば、比較的安価なＵＳＢ（Universal Serial Bus）カメラが用いられる。カメラ７１、７２は、筐体１１の左右両側面の下方部に設置されている。カメラ７３、７４は、筐体１１の前後両側面の下方部に設置されている。カメラ７１〜７４は、床面２に設けられた模様を撮影するために、下方及びその近傍領域を撮影する。
【００４４】
なお、本例におけるカメラ７は、４個のカメラより構成されているが、４個に限られず、１個であってもよい。また、カメラ７から得られた画像データは、移動体１の位置情報を取得するために用いられるが、さらに、移動体１の周辺の障害物を検出するために用いてもよい。特に、移動体１の前方を撮影可能なカメラ７３は前方の障害物を、移動体１の後方を撮影可能なカメラ７４は後方の障害物をそれぞれ検出することができる。
【００４５】
ここで、床面２の模様に基づいて位置情報を取得する処理について説明する。移動体１は、カメラ７によって模様の画像信号を取得する。そして、画像処理部５４は、撮影された模様の画像信号を画像処理して位置情報（ＩＤ）を識別する。制御計算部５１は、位置情報に基づいて移動体１の３次元位置を同定する。このように、カメラ７、画像処理部５４、制御計算部５１は、デコード手段として機能する。
【００４６】
画像処理部４の具体的に処理について、図２〜図４の例を用いて説明する。画像処理部４は、まず初めにＲＧＢの合計値に閾値を設け、キャプチャされた画像の全ピクセルに対して２値化処理を行う。そして、２値化処理されたそれぞれの領域に対してラベリング処理を行う。ラベリングされた図形は、頂点の数と辺の長さの情報によりタイプ１からタイプ４の図形に分類される。この時どれにも属さないものはタイプ分けされず、以降のステップには使用されない。タイプ分けされたそれぞれの図形は、その後ＩＤを示す図形群の1つとしてグループ化され、グループ化された図形群の基準線と各図形のひとつの辺の角度からＩＤが計算される。各ＩＤには１対１に対応した２次元の座標値が割り振られているため、求めたＩＤからカメラの模様平面上の２次元座標を求めることができる。
【００４７】
ＩＤ計算が終わった後はカメラ７に映っている図形の大きさから、あらかじめ計測して求めた計算式を使ってカメラ７が模様からどれだけ離れているかを計算する。例えば、タイプ１の図形のピクセル数を使用して、模様からカメラ７の距離を算出する。最後に、ＩＤから求めた模様平面上の２次元座標値と模様からの距離の値により３次元位置を同定する、という流れになっている。
【００４８】
ＩＤを示す図形群のグループ化の際には、タイプ１からタイプ４を１つずつ選びグループとしてまとめるのであるが、その手順は次の通りである。まず、キャプチャされた映像からタイプ１を見つける。そして、そのタイプ１と隣の図形までの距離の中にあるタイプ２を見つける。同様に、タイプ２から上記の一定距離内にあるタイプ３、タイプ３から一定距離内にあるタイプ４というように探していく。タイプ４が見つかった後、タイプ４から一定距離内にあるタイプ１を探し、それが初めのタイプ１と同じかどうかを確認する。タイプ４から探したタイプ１と最初のタイプ１が同じであれば、タイプ１からタイプ４までが時計周りに並んでいるかどうかをチェックした後、グループとして認識する。グループとして認識されない場合には、タイプ４で他の候補を選び確認する。タイプ４の候補が他になかったら、また、最初と違うタイプ４でもグループとして認識できなかったら、タイプ３の他の候補を選ぶというようにタイプ１を上位、タイプ４を下位として深さ優先探索を行っていく。ＩＤを示す図形群が多数あれば、全ての図形に対してこのアルゴリズムを適用し、全てのＩＤから得られた値の平均値をカメラの３次元位置とする。
【００４９】
次に、移動体１を移動させるための制御系について、図８を用いて説明する。図８は、移動体１を移動させるための制御系の構成を示すブロック図である。まず、力センサ９によって、座面８ａにかかる力を検出する。センサ処理部５３は、力センサ９からの計測信号に対して処理を行う。すなわち、力センサ９から出力される計測信号に対応する計測データに対して、演算処理を行う。これにより、制御計算部５１に入力される入力モーメント値が算出される。
【００５０】
このように、力センサ９で計測されたモーメント（Ｍｘ、Ｍｙ、Ｍｚ）が各軸周りの入力モーメント値（Ｍｘ'、Ｍｙ'、Ｍｚ'）に変換される。そして、入力モーメント値が各後輪６０２を動作させるために入力される入力値となる。このように、センサ処理部５３は、各軸毎に入力値を算出する。入力モーメント値の大きさは、モーメントの大きさに応じて決まる。入力モーメント値の符号は、計測されたモーメントの符号によって決まる。すなわち、モーメントが正の場合、入力モーメント値も正となり、モーメントが負の場合、入力モーメント値も負となる。例えば、モーメントＭｘが正の場合、入力モーメント値Ｍｘ'も正となる。従って、この入力モーメント値が搭乗者の意図する操作に対応する入力値となる。
【００５１】
制御計算部５１は、入力モーメント値（Ｍｘ'、Ｍｙ'、Ｍｚ'）に基づいて、入力トルクτｉを求める。例えば、入力トルクτｉ＝（Ｍｘ'、Ｍｙ'、Ｍｚ'）となる。そして、このトルクτｉに基づいて制御計算を行う。これにより、駆動モータ６０３を駆動するための指令値が算出される。通常、トルクτｉが大きいほど、指令値が大きくなる。この指令値は、駆動モータ６０３に出力される。なお、本実施形態では、左右の後輪６０２が駆動輪であるため、２つの駆動モータ６０３が図示されている。そして、一方の駆動モータ６０３が右の後輪６０２を回転させ、他方の駆動モータ６０３が左の後輪６０２を回転させる。駆動モータ６０３は、指令値に基づいて後輪６０２を回転させる。すなわち、駆動モータ６０３は、駆動輪である後輪６０２を回転させるための指令トルクを与える。もちろん、駆動モータ６０３は、減速機などを介して、後輪６０２に回転トルクを与えてもよい。例えば、制御計算部５１から、指令値として指令トルクが入力された場合、その指令トルクで、駆動モータ６０３が回転する。これにより、後輪６０２が回転して、移動体１が所望の方向に、所望の速度で移動する。もちろん、指令値は、駆動モータ６０３のトルクに限らず、回転速度、回転数であってもよい。
【００５２】
さらに、駆動モータ６０３にはそれぞれ、エンコーダ６０３ａが内蔵されている。このエンコーダ６０３ａは、駆動モータ６０３の回転速度等を検出する。そして、検出された回転速度は、制御計算部５１に入力される。制御計算部５１は、現在の回転速度と、目標となる回転速度とに基づいてフィードバック制御を行う。例えば、目標回転速度と現在回転速度との差分に、適当なゲインを乗じて、指令値を算出する。もちろん、左右の駆動モータ６０３に出力される指令値は、異なる値であってもよい。すなわち、前方、又は後方に直進する場合は、左右の後輪６０２の回転速度が同じになるように制御し、左右に旋回する場合は、左右の後輪６０２が、同じ方向で異なる回転速度になるよう制御する。また、その場旋回する場合は、左右の後輪６０２が反対方向に回転するように制御する。
【００５３】
例えば、搭乗者が前傾姿勢になると、搭乗席８にピッチ軸周りの力が加わる。すると、力センサ９が＋Ｍｙのモーメントを検出する（図７参照）。この＋Ｍｙのモーメントによって、センサ処理部５３は、移動体１を並進させるための入力モーメント値Ｍｙ'を算出する。同様に、センサ処理部５３は、Ｍｘに基づいて入力モーメント値Ｍｘ'を算出し、Ｍｚに基づいて、入力モーメント値Ｍｚ'を算出する。これにより、トルクτｉが求められる。
【００５４】
制御計算部５１が、入力モーメント値とエンコーダの読み値に基づいて、指令値を算出する。これにより、左右の後輪６０２が所望の回転速度で回転する。同様に、右方向に曲がる場合は、搭乗者が右側に体重移動する。これにより、搭乗席にロール軸周りの力が加わり、力センサ９が＋Ｍｘのモーメントを検出する。この＋Ｍｘのモーメントによって、センサ処理部５３は、移動体１を右方向に旋回させるための入力モーメント値Ｍｘ'を算出する。すなわち、移動体１が移動する方向に対応する舵角が求められる。そして、入力モーメント値に応じて、制御計算部５１が指令値を算出する。この指令値に応じて、左右の後輪６０２が異なる回転速度で回転する。すなわち、左側の後輪６０２が右側の後輪６０２よりも速い回転速度で回転する。
【００５５】
Ｍｙ'に基づいて、前後方向の並進移動に対する成分が求められる。すなわち、左右の後輪６０２を同じ方向に同じ回転速度で駆動するための駆動トルクなどが決定する。従って、Ｍｙ'、すなわち、Ｍｙが大きいほど、移動体１の移動速度が速くなる。Ｍｘ'に基づいて、移動方向、すなわち、舵角に対する成分が求められる。すなわち、左右の後輪６０２の回転トルク差が決定される。従って、Ｍｘ'、すなわち、Ｍｘが大きいほど、左右の後輪６０２の回転速度の違いが大きくなる。
【００５６】
Ｍｚ'に基づいて、その場旋回に対する成分が求められる。すなわち、左右の後輪６０２を反対方向に回転させて、その場旋回するための成分が求められる。従って、Ｍｚ'、すなわち、Ｍｚが大きいほど、左右の後輪６０２における反対方向の回転速度が大きくなる。例えば、Ｍｚ'が正の場合、上側から見て、左周りにその場旋回する駆動トルクなどが算出される。すなわち、右側の後輪６０２が前方に回転し、左側の後輪６０２が同じ回転速度で後方に回転することとなる。
【００５７】
そして、それぞれの入力モーメント値Ｍｘ'、Ｍｙ'、Ｍｚ'に基づいて算出された３つの成分を合成して、２つの後輪６０２を駆動するための指令値を算出する。これにより、左右の後輪６０２に対する指令値がそれぞれ算出される。駆動トルクや回転速度などが指令値として算出される。すなわち、入力モーメント値Ｍｘ'、Ｍｙ'、Ｍｚ'に対応する成分毎に算出された値を合成することで左右の後輪６０２に対する指令値が算出される。このように、計測されたモーメントＭｘ、Ｍｙ、Ｍｚに基づいて算出された入力モーメント値Ｍｘ'、Ｍｙ'、Ｍｚ'によって、移動体１が移動する。すなわち、搭乗者の体重移動によるモーメントＭｘ、Ｍｙ、Ｍｚによって、移動体１の移動方向、及び移動速度が決定する。
【００５８】
このように、搭乗者の動作によって、移動体１を移動させるための入力が行われる。すなわち、搭乗者の姿勢変化によって、各軸周りのモーメントが検出される。そして、これらのモーメントの計測値に基づいて、移動体１が移動する。これにより、搭乗者が、移動体１を簡便に操作することができる。すなわち、ジョイスティックやハンドルなどの操作が不要となり、体重移動のみでの操作が可能となる。例えば、右斜め前方に移動したい場合は、体重を右前方にかける。また、左斜め後方に移動したい場合は、体重を左後方にかける。これにより、搭乗者の重心位置が変化して、その変化量に応じた入力が行われる。すなわち、搭乗者の重心移動に応じたモーメントを検出することで、直感的に操作することができる。
【００５９】
なお、センサ処理部５３及び画像処理部５４などの各処理部は、制御計算部５１と同様に、ＣＰＵやＲＡＭなどから構成されている。そして、所定のプログラムにしたがって、演算処理を行う。もちろん、各処理部や制御計算部５１は、物理的に同じ構成であってもよい。すなわち、１つの演算処理回路において、処理や演算を行ってもよい。
【００６０】
移動体１には、搭乗席８を駆動するための駆動部５が設けられている。この駆動部５に対する制御について説明する。駆動部５は、ヨー軸機構５０１とピッチ軸機構５０２とロール軸機構５０３を有している。ヨー軸機構５０１とピッチ軸機構５０２とロール軸機構５０３は、回転関節であり、これらが動作することで、搭乗席８の姿勢が変化する。ヨー軸機構５０１は、搭乗席８をヨー軸周りに回転させる。ピッチ軸機構５０２は搭乗席８をピッチ軸周りに回転させる。ロール軸機構５０３は、搭乗席８をロール軸周りに回転させる。これにより、車台１３に対する座面８ａの角度が変化する。すなわち、車台１３に対して座面８ａが傾くようになる。したがって、駆動部５が搭乗席８を駆動する駆動部として、ヨー軸機構５０１とピッチ軸機構５０２とロール軸機構５０３はそれぞれ、関節駆動用のモータや減速器を有している。そして、その関節モータの回転角を検出するためのエンコーダ５０１ａ、５０２ａ、５０３ａがそれぞれ設けられている。
【００６１】
制御計算部５１は、上記のように、センサ処理部５３からのトルクに応じて、制御計算を行う。また、制御計算部５１は、カメラ７の画像信号に基づいて画像処理部５４によって取得された位置情報に基づいてマップより走行面情報を取得する。そして、制御計算部５１は、センサ処理部５３からのトルク及び走行面情報に基づいて、座面制御を行う。具体的に、制御計算部５１は、ヨー軸機構５０１、ピッチ軸機構５０２、及びロール軸機構５０３の関節を駆動するための指令値を生成する。すなわち、制御計算部５１は、トルクや走行面情報に基づいて、各軸機構の目標関節角度を算出する。例えば、走行面における段差や坂道等の傾斜に関する情報に基づいて、段差や坂道等の傾斜があっても、座面が基本的に平坦な面と水平になるよう、各軸機構の目標関節角度を算出する。そして、制御計算部５１は、目標関節角度に応じた指令値を算出して、各モータに出力する。これにより、ヨー軸機構５０１、ピッチ軸機構５０２、及びロール軸機構５０３の各関節が目標関節角度になる。すなわち、目標関節角度に追従するように、各軸機構が駆動する。よって、移動体１の姿勢が変化して、搭乗席８の座面８ａを所望の角度にすることができる。
【００６２】
このように、力センサ９に対する入力に応じて座面８ａの傾斜角度が変化する。これにより、搭乗者が入力値を直感的に把握することができる。よって、操作性を向上することができる。さらに、本実施の形態１では、走行面情報に応じて、座面８ａの傾斜角度が変化する。これにより、走行面の状態に応じた座面制御を行うことが可能となる。
【００６３】
次に、移動体１の姿勢を変化させるための構成について、図９を用いて説明する。図９は、姿勢を変化させるための機構の構成を示す図であり、車台１３の内部構成を示している。図９に示すように、車台１３には、姿勢を制御するためのフレーム部２が設けられている。フレーム部２は、筐体１１内に配設される。フレーム部２は、第１の平行リンク機構２０１と第２の平行リンク機構２０２とが、交差部分で相互の回転を拘束しないように、平面視Ｔ字状に連結されている。
【００６４】
第１の平行リンク機構２０１は、前後方向に配置されている。この第１の平行リンク機構２０１は、四本の横リンク２０１ａ、前後の縦リンク２０１ｂを備えている。横リンク２０１ａは、全て等しい長さとされている。横リンク２０１ａの両端には、図示を省略したが、縦リンク２０１ｂとの連結軸を嵌め込む嵌合穴が形成されている。二本の横リンク２０１ａは上下に配置されており、当該二本の横リンク２０１ａを一組として、縦リンク２０１ｂを挟み込むように、当該縦リンク２０１ｂの左右両側に配置されている。
【００６５】
縦リンク２０１ｂの左右両側部からは、図示を省略したが、それぞれ上下方向に等しい間隔を開けて相対峙する配置で、横リンク２０１ａとの連結軸が左右方向に突出している。この連結軸は、横リンク２０１ａと縦リンク２０１ｂとの回転軸として、横リンク２０１ａの嵌合穴に軸受け等を介して嵌め込まれている。
【００６６】
本実施形態の前側の縦リンク２０１ｂはＬ字形状に形成されている。縦リンク２０１ｂの垂直片の上下端部に、横リンク２０１ａが連結軸を介して回転可能に連結されている。縦リンク２０１ｂの水平片の先端に、車輪６として自在式のキャスターが設けられている。移動体１の移動方向が変化すると、その変化に応じてキャスターの方向が回転する。後側の縦リンク２０１ｂは、下側の横リンク２０１ａより下方に突出する突出部を備えている。この突出部の前後両側部からは、図示を省略したが、それぞれ相対峙する配置で第２の平行リンク機構２０２との連結軸が前後方向に突出している。さらに後側の縦リンク２０１ｂの前後両側部における上下の横リンク２０１ａの間の部分からも、図示を省略したが、それぞれ相対峙する配置で第２の平行リンク機構２０２との連結軸が前後方向に突出している。
【００６７】
第２の平行リンク機構２０２は、左右方向に配置されている。この第２の平行リンク機構２０２は、四本の横リンク２０２ａ、左右の縦リンク２０２ｂを備えている。横リンク２０２ａは、全て等しい長さとされている。横リンク２０２ａの両端には、図示を省略したが、縦リンク２０２ｂとの連結軸を嵌め込む嵌合穴が形成されている。さらに横リンク２０２ａの長手方向の略中央位置には、図示を省略したが、第１の平行リンク機構２０１との連結軸を嵌め込む嵌合穴が形成されている。二本の横リンク２０２ａは上下に配置されており、当該二本の横リンク２０２ａを一組として、縦リンク２０２ｂ及び第１の平行リンク機構２０１の後側の縦リンク２０１ｂを挟み込むように、当該縦リンク２０２ｂ及び第１の平行リンク機構２０１の後側の縦リンク２０１ｂの前後両側に配置されている。第１の平行リンク機構２０１の後側の縦リンク２０１ｂから突出する連結軸は、第１の平行リンク機構２０１と第２の平行リンク機構２０２との回転軸として、横リンク２０２ａの略中央位置の嵌合穴に軸受け等を介して嵌め込まれている。
【００６８】
縦リンク２０２ｂの前後両側部からは、図示を省略したが、それぞれ上下方向に等しい間隔を開けて相対峙する配置で、横リンク２０２ａとの連結軸が前後方向に突出している。この連結軸は、横リンク２０２ａと縦リンク２０２ｂとの回転軸として、横リンク２０２ａの端部の嵌合穴に軸受け等を介して嵌め込まれている。
【００６９】
その結果、第１の平行リンク機構２０１は、第２の平行リンク機構２０２に拘束されることなく、前後方向に回転可能な構成となる。一方、第２の平行リンク機構２０２は、第１の平行リンク機構２０１に拘束されることなく、左右方向に回転可能な構成となる。
【００７０】
搭乗部３は、フレーム部２の回転に連動する。具体的にいうと、搭乗部３は、第１の平行リンク機構２０１の上下の横リンク２０１ａに支持軸３０１を介して連結されている。この支持軸３０１の上部及び下部の左右両側部からは、図示を省略したが、第１の平行リンク機構２０１の上下の横リンク２０１ａとの連結軸が左右方向に突出している。第１の平行リンク機構２０１の横リンク２０１ａにおける長手方向の略中央位置には、図示を省略したが、支持軸３０１から突出する連結軸を嵌め込む嵌合穴が形成されている。支持軸３０１は、縦リンク２０１ｂを挟み込むように、当該縦リンク２０１ｂの左右に配置された横リンク２０１ａの間に挿入されている。支持軸３０１から突出する連結軸は、第１の平行リンク機構２０１の嵌合穴に軸受け等を介して嵌め込まれている。その結果、第１の平行リンク機構２０１が前後方向に回転すると、支持軸３０１と縦リンク２０１ｂとは平行状態を維持した状態で連動する。
【００７１】
駆動部５が駆動することで、フレーム部２が動作する。これにより、移動体１の姿勢が変化する。車台１３が傾くことで、搭乗部３の角度が変化する。なお、駆動部５には、ヨー軸周りに回転するヨー軸機構５０１と、ピッチ軸周りに回転するピッチ軸機構５０２と、ロール軸周りに回転するロール軸機構５０３が設けられている。ヨー軸機構５０１が３つの機構の中で、最も搭乗部３側に設けられている。なお、ヨー軸機構５０１は、搭乗部３をヨー軸周りに旋回させる旋回関節であり、ピッチ軸機構５０２及びロール軸機構５０３は搭乗部３を軸周りに回転させる回転関節である。
【００７２】
次に、移動体１の制御方法について図１０を用いて説明する。図１０は、移動体１の制御方法を示すフローチャートである。図１０は、移動体１の制御における１サイクルを示している。このフローチャートにしたがって、移動体１の移動制御と、姿勢制御（座面制御）が行われる。すなわち、図１０には、後輪６０２の駆動と、駆動部５の駆動の制御方法が示されている。
【００７３】
まず、ヨー軸機構５０１、ピッチ軸機構５０２、ロール軸機構５０３の関節角を検出する（ステップＳ１０１）。すなわち、各軸機構に設けられているエンコーダ５０１ａ、５０２ａ、５０３ａによって、それぞれの関節の角度を検出する。移動体１は、この関節角度に応じた姿勢となっている。次に、力センサ９によって、モーメントの値を検出する（ステップＳ１０２）。すなわち、モーメント（Ｍｘ，Ｍｙ、Ｍｚ）を測定する。そして、力センサ９のオフセット修正を行う（ステップＳ１０３）。すなわち、搭乗者が座っている位置がずれている場合に、その位置に対してオフセットを与える。入力されるモーメントに対して、搭乗位置の位置ずれを補正するように、制御目標原点にオフセットを与える。これにより、位置ずれを補正したモーメント（Ｍｘ'，Ｍｙ'、Ｍｚ'）を算出することができる。なお、ステップＳ１０１とステップＳ１０２の順番は反対でもよく、ステップＳ１０１とステップＳ１０２を並行して行ってもよい。
【００７４】
座面の平衡位置姿勢φＩＤを入力する（ステップＳ１０４）。上述のように、移動体１が平坦な床を移動している時に、座面８ａが水平になる位置が平衡位置姿勢となっている。本実施の形態１では、特に、走行面情報に含まれる段差や坂道等の傾斜情報に基づいて、平衡位置姿勢が決定される。この時のヨー軸機構５０１、ピッチ軸機構５０２、ロール軸機構５０３の関節角度が平衡位置姿勢に対応する。したがって、本実施の形態では、平衡位置姿勢が一定になっている。すなわち、移動状況によらず、各軸の関節角度が一定になるような平衡位置姿勢が選ばれている。
【００７５】
次に、コンプライアンス補償を行う（ステップＳ１０５）。ここでのコンプライアンス制御によって、ヨー軸機構５０１、ピッチ軸機構５０２、ロール軸機構５０３の目標関節角度が決定する。コンプライアンス制御とは、バネ特性、ダンピング特性を擬似的に備えている振る舞いをする制御である。ヨー軸機構５０１、ピッチ軸機構５０２、ロール軸機構５０３の動作によってバネ特性、ダンピング特性が示される。このコンプライアンス制御を導入することで、搭乗者の力に応じて、座面８ａを傾けることが可能になる。ここでは、ヨー軸機構５０１、ピッチ軸機構５０２、ロール軸機構５０３の関節角度、力センサ９のモーメント、座面８ａの平衡位置姿勢を用いて、コンプライアンス制御が行われる。これにより、ヨー軸機構５０１、ピッチ軸機構５０２、ロール軸機構５０３の目標関節角度が算出される。このステップの詳細については、後述する。
【００７６】
そして、座面８ａを制御する（ステップＳ１０６）。すなわち、ヨー軸機構５０１、ピッチ軸機構５０２、ロール軸機構５０３がそれぞれ目標関節角度になるように、各軸に設けられているモータを駆動する。これにより、座面８ａの傾きが変化して、現在目標位置姿勢となる。ここでは、力センサ９の出力に応じて、座面８ａの傾きが変化している。すなわち、座面８ａに対する力に応じて、搭乗者が座面８ａから力を受ける。よって、搭乗者１９が力センサ９への入力を直感的に把握することができる。これにより、操作性が向上し、搭乗者１９の意図通りに移動することができる。
【００７７】
次に動作モードの切替判断を行う（ステップＳ１０７）。すなわち、走行面情報に基づいて障害物があるかどうかを判定し、さらに、この判定結果に応じて、移動体１の動作モードを切替えるか否かを判定する。まず、画像処理部５４は、カメラ７によって撮影された画像信号より位置情報を取得する。さらに制御計算部５１は、位置情報に基づいて自己位置を推定する。そして、制御計算部５１は、マップに基づいて推定自己位置の近傍に障害物があるかどうかを判定する。その後、制御計算部５１は、障害物があると判定した場合には、障害物がある場合の動作モードである障害物モードに切り替える。障害物がないと判定した場合には、障害物がない場合の通常モードにする。障害物モードの場合、後述するステップＳ１１１において制御計算部５１が駆動モータ６０３を駆動するための指令値を算出するときのゲインを変更する。ここでは、ゲインを移動体モードの場合よりも、小さくする。そして、変更したゲインを適用して、駆動モータ６０３を駆動する。通常モードの場合には、ゲインを変更せずに、駆動モータ６０３を駆動する。
【００７８】
次に、車輪回転角、速度、トルクを検出する（ステップＳ１０８）。すなわち、エンコーダ６０３ａの出力に基づいて、左右の後輪６０２の動作状態を検知する。そして、ピッチ軸周りの目標関節角度から、移動体１の前後進速度を算出する（ステップＳ１０９）。このとき、ステップＳ１０５で求めた現在目標位置姿勢φｉに基づいて、前後進速度を算出している。すなわち、制御計算部５１は、ピッチ軸機構５０２の目標関節角度に基づいて前後進速度を算出している。よって、目標となる前後進速度は、力センサ９のモーメントと、座面の平衡位置姿勢と、各関節角度によって、決まる。
【００７９】
さらに、ロール軸、ヨー軸の関節角度から移動体１の旋回速度を算出する（ステップＳ１１０）。制御計算部５１は、ステップＳ１０５で求めた現在目標位置姿勢φｉに基づいて旋回速度を算出している。すなわち、制御計算部５１は、ヨー軸機構５０１、ロール軸機構５０３の目標関節角度に基づいて前後進速度を算出している。よって、目標となる前後進速度は、力センサ９のモーメントと、座面の平衡位置と、各関節角度によって、決まる。
【００８０】
そして、前後進速度と、旋回速度とを合成して、左右の後輪６０２の回転トルクを算出する（ステップＳ１１１）。すなわち、後輪６０２を回転させるための回転トルクを、計算する。左右の後輪６０２のトルクが指令値となって、駆動モータ６０３に出力される。ここでは、ステップＳ１０８で検出された後輪６０２の回転角と目標速度とを用いてフィードバック制御を行う。制御計算部５１が駆動モータ６０３を駆動するための指令値を出力する。これにより、ステップＳ１０９で算出された前後進速度、かつステップＳ１１０で算出された旋回速度に近い速度で移動体１が移動する。したがって、力センサ９による入力に応じて、移動体１が搭乗者の意図通りに移動する
【００８１】
ステップＳ１１１において、制御計算部５１は、搭乗者の体重移動に応じて指令値を算出する。ここで、ステップＳ１０７で障害物モードに切替えられた場合には、指令値を算出する際のゲインが変更されている。すなわち、ゲインを移動体モードの場合よりも、小さな値に変更されている。これにより、搭乗者の体重移動に対して、駆動モータ６０３への指令値を抑えることができ、移動体１の位置をゆっくりと移動させることができる。これにより、搭乗者にとっては、障害物の回避動作を行う時間的な余裕ができる。さらに、ゲインを０に変更した場合には、駆動モータ６０３の制御を行わないことになり、移動体１の位置を移動させないようにすることもできる。すなわち、移動体１の位置をその場に固定し、搭乗者の体重移動に応じて座面のみを動作させることもできる。
【００８２】
次に、ステップＳ１０５のコンプライアンス補償について、図１１を用いて説明する。図１１は、コンプライアンス制御の詳細を示すフローチャートである。まず、搭乗者が体重移動する（ステップＳ２０１）。すなわち、移動体１を移動させるため、体重移動によって入力を行う。これにより、力センサ９にかかる力が変化する。座面８ａにかかる３軸周りのトルクτｉを力センサ９で感知する（ステップＳ２０１）。このトルクτｉは、入力モーメントから算出することができる。ヨー軸周りのトルクτθｚ（＝Ｍｚ'）、ピッチ軸周りのトルクτθｙ（＝Ｍｙ'）、ロール軸周りのトルクτθｘ（＝Ｍｘ'）がそれぞれ算出される。このように、τｉは、トルクであり、ロール、ピッチ、ヨーに対する成分を含んでいる。すなわち、τｉは、τθｘ、τθｙ、τθｚの３成分を含んでいる。
【００８３】
また、ステップＳ２０１、Ｓ２０２と並行して、座面の平衡位置姿勢φＩＤを入力する（ステップＳ２０３）。この平衡位置姿勢φＩＤはヨー軸機構５０１、ピッチ軸機構５０２、ロール軸機構５０３の基準となる基準位置を示すものとなる。すなわち、各軸機構の基準となる関節角度が制御計算部５１に入力される。本実施の形態では、座面の平衡位置姿勢φＩＤの値は、カメラ７による撮影等により取得された位置情報に応じてマップより取得された走行面情報に基づき決定される。制御計算部５１のメモリ等に、平衡位置姿勢φＩＤに対して関節角度が記憶されている。そして、この関節角度を読み出すことによって、平衡位置姿勢φＩＤが入力される。移動体１が平坦な床を移動している時に、座面８ａが水平になる位置が平衡位置となっている。したがって、各軸機構における一定の関節角度が平衡位置姿勢φＩＤを示すことになる。平衡位置姿勢φＩＤは各軸周りに対して決められている。平衡位置姿勢φＩＤは、ロール軸周り平衡位置姿勢φθｘｄ、ピッチ軸周りの平衡位置姿勢φθｙｄ、ヨー軸周りの平衡位置姿勢φθｚｄの３成分から構成されている。これらは、各軸機構の基準となる関節角度に対応している。
【００８４】
次に、トルクτｉと平衡位置姿勢φＩＤから座面の現在目標位置姿勢φｉを求める（ステップＳ２０４）。ここでは、図１１のフローチャート上のステップＳ２０４に記載されている数式に基づいて、制御計算部５１が搭乗部３の現在目標位置姿勢φｉを算出している。すなわち、ステップＳ２０４に記載されている方程式を解くことで、現在目標位置姿勢φｉを算出することができる。現在目標位置姿勢φｉは、例えば、ヨー軸機構５０１の目標関節角度、ピッチ軸機構５０２の目標関節角度、ロール軸機構５０３における目標関節角度から構成されている。したがって、現在目標位置姿勢φｉはφθｘ、φθｙ、φθｚの３成分から構成されている。各軸機構における目標関節角度が、トルクτｉと平衡位置姿勢φＩＤに基づいて算出される。
【００８５】
ステップＳ２０４の方程式において、Ｍｉは慣性行列、Ｄｉは粘性係数行列、Ｋｉは剛性行列であり、これらは、３×３の行列である。慣性行列、粘性係数行列、剛性行列は、移動体１の構成、動作に応じて設定することができる。また、φｉ、φＩＤの上に付されている・（ドット）は、時間微分を示している。ドットが１個付されている場合は、１回微分を、２個付されている場合は、２回微分を示している。例えば、φｉの上に１個のドットが付されていると、目標姿勢速度となり、２個のドットが付されていると、目標姿勢加速度となる。同様に、φＩＤの上に１個のドットが付されていると、平衡位置姿勢速度となり、２個のドットが付されていると、平衡位置姿勢加速度となる。本実施形態では、平衡位置姿勢φＩＤが固定されているため、平衡位置姿勢速度、平衡位置姿勢加速度は、基本的に０となる。
【００８６】
次に、モードに応じてゲインを変更する（ステップＳ２０５）。障害物モードである場合には、ゲインをより小さなものに変更する。通常モードである場合には、ゲインを変更しない。
【００８７】
そして、現在目標位置姿勢φｉに基づいて移動制御を行う（ステップＳ２０６）。さらに、移動制御と並行して、座面の傾き制御を行う（ステップＳ２０７）。移動制御では、ステップＳ１０９、及びステップＳ１１０に示したように、現在目標位置姿勢φｉに基づいて前後進速度、及び旋回速度を算出する。すなわち、現在目標位置姿勢φθｙに応じて、移動体１の前後進速度が決まる。φθｙの値が大きいほど、前後進速度が大きくなる。また、現在目標位置姿勢φθｘ、φθｚに応じて移動体１の旋回速度が決まる。φθｘ、φθｚの値が大きいほど、旋回速度が大きくなる。そして、前後進速度、及び旋回速度から、左右の後輪６０２の回転トルクを算出する。ここでは、前後進速度と旋回速度を合成して、左右の後輪６０２に対する目標回転速度を算出する。そして、現在の回転速度と目標回転速度との差分から、回転トルクを算出するためのフィードバック制御を行っている。制御計算部５１は、この回転トルクを指令値として、駆動モータ６０３に出力する。このようにして、移動制御が行われる。
【００８８】
座面８ａの傾き制御も現在目標位置姿勢φｉに基づいて行われる。すなわち、現在目標位置姿勢φｉを入力として、各軸機構に対する指令値を算出する。現在目標位置姿勢φｉに基づいて、各軸機構の指令値が算出される。そして、この指令値に応じて、ヨー軸機構５０１、ピッチ軸機構５０２、ロール軸機構５０３が駆動する。よって、ヨー軸機構５０１の目標関節角度、ピッチ軸機構５０２の目標関節角度、ロール軸機構５０３における目標関節角度になるように座面８ａの傾きが変化する。このように、各軸機構が目標関節角度に追従するように駆動する。これにより、搭乗部３の姿勢が変化して、座面８ａの傾きが変化する。よって、搭乗者が座面８ａから力を受ける。そして、座面８ａが現在目標位置姿勢φｉになる。
【００８９】
このように、現在目標位置姿勢φｉを利用して、移動制御と、座面８ａの傾き制御が行われている。すなわち、各モータに対する指令値が現在目標位置姿勢φｉに基づいて算出されている。制御計算部５１は、搭乗席を駆動する駆動部５の駆動量と、座面８ａの平衡位置姿勢と、力センサ９からの計測信号とに基づいて、後輪６０２、及び駆動部５を駆動するための指令値を算出する。
【００９０】
このように、車台１３に搭乗席８を固定する方法が、剛体結合ではなく、入力に対してある程度変形、変位する構造となっている。よって、バネのような柔らかい動きをさせる制御をすることができる。すなわち、自動車で表すならサスペンションとして、駆動部５が機能する。そして、力センサ９での検出結果に基づいて、駆動部５を制御する。
【００９１】
これにより、操作性を向上することができる。すなわち、各軸周りの機構が駆動することで、どのくらいの操作量で操作しているかを直感的に把握することができる。実際の操作量と意図する操作量の違いを認識することができる。よって、意図する操作量に対する実際の操作量のずれを抑制することができる。また、搭乗者が遠心力を受けている場合でも、意図する移動を行うための操作が可能となる。すなわち、必要以上にスピードが出たり、必要以上にスピードが低下したりするのを防ぐことができる。これにより、操作性の高い移動体１を実現することができる。
【００９２】
ここで、カメラ７からの画像信号の基づく、座面制御やゲイン制御について、図１２に示すフローチャートを用いて説明する。
【００９３】
まず、移動体１は、走行中にカメラ７によって床面検出を実行する（ステップＳ３０１）。具体的には、移動体１は、カメラ７により、模様が描かれた床面２を撮影する。撮影により得られた撮像信号は、画像処理部５４に入力される。画像処理部６４は、入力された画像信号に対して所定の処理を実行し、位置情報を取得し、制御計算部５１に出力する。制御計算部５１は、位置情報に基づいて自己位置を推定する。さらに制御計算部５１は、マップから、推定自己位置の走行面情報を取得する。
【００９４】
制御計算部５１は、走行面情報から走行面に段差や坂道等の傾斜があるかどうかを判定する（ステップＳ３０２）。制御計算部５１は、傾斜があると判定した場合には、上述の座面制御を実行する（ステップＳ３０４）。かかる座面制御により、傾斜に応じて、動的に座面の水平を保つことができる。
【００９５】
制御計算部５１は、段差や傾斜がないと判定した場合には、さらに走行面情報から移動体１の近傍に壁等の障害物があるかどうかを判定する（ステップＳ３０３）。制御計算部５１は、障害物があると判定した場合には、上述の障害物モードに切り替えてゲイン調整を実行する（Ｓ３０５）。
【００９６】
制御計算部５１は、ステップＳ３０３において障害物がないと判定した場合や、座面制御（ステップＳ３０４）・ゲイン調整（ステップＳ３０５）を実行した場合には、走行制御を行う（ステップＳ３０６）。
【００９７】
以上、説明したように、本実施の形態１にかかる移動体１は、床面２に設けられた模様を画像認識して位置情報を抽出し、そして自己位置を推定して、これに応じた走行面情報をマップより取得することによって、走行面の状態、特に移動体１が移動する先の走行面の状態に対応した走行制御や座面制御を実行することができる。従って、約５０万円のレーザセンサーや約８０万円の姿勢角センサーを用いることなく、数千円のＵＳＢカメラ及び数万円の床模様加工によって床面検出することができるので、極めて安価に、走行面の状態に対応した走行制御や座面制御を実行することができる。特に、人間が運転する移動体においては、このようなシステムを搭載することにより、運転の補助も行うことができる。
【００９８】
発明の実施の形態２．
発明の実施の形態１では、床面に描かれた模様を検出できることを前提としている。しかしながら、床面に模様がない領域に移動体が進んでしまった場合や、床面が汚れている場合等のように、床面検出ができない場合がある。本実施の形態２にかかる移動体は、このように床面検出ができない場合には、オドメトリを利用して自己位置の推定を行う。オドメトリは、左右の車輪の回転速度から、移動体の併進速度と、移動体の角速度を求めて、これを積分して移動体の位置と姿勢を求める手法である。
【００９９】
本実施の形態２にかかる移動体の制御方法について、図１３のフローチャートを用いて説明する。まず、カメラ位置の座標変換処理を実行する（ステップＳ４０１）。これは、ロール軸、ピッチ軸、ヨー軸の変動に伴って、カメラの取り付け座標が変動してしまうため、制御上、カメラが同じ位置にあるようにするため、座標変換を行うことにしている。具体的には、制御計算部５１において当該座標変換処理を行う。なお、このような座標変換を行わないですむように、カメラ７が動的に鉛直方向を向くように駆動制御してもよく、また、カメラを筐体１１に設けられた軸に回動自在に吊り下げることにより鉛直方向に向くようにしてもよい。
【０１００】
次に、制御計算部５１は、床面検出ができたかどうかを判定する（ステップＳ４０２）。制御計算部５１は、床面検出できたと判定した場合には、発明の実施の形態１にかかる移動体と同様に、自己位置推定を行う（Ｓ４０４）。
【０１０１】
他方、制御計算部５１は、床面検出できなかったと判定した場合には、オドメトリによる自己位置推定を行う（ステップＳ４０３）。自己位置推定（ステップＳ４０３、ステップＳ４０４）の後、走行制御を実行する（ステップＳ４０５）。
【０１０２】
このように、本実施の形態によれば、床面検出ができない場合にもオドメトリにより自己位置推定を行うので、床面に模様がない領域に移動体が進んだ場合や、床面が汚れている場合にも、安定した移動制御を行うことができる。
【０１０３】
発明の実施の形態３．
発明の実施の形態１、２では、カメラを移動体１に設けていたが、発明の実施の形態３にかかる移動体制御システムでは、さらに、カメラを移動体１以外のユーザに持たせている。
【０１０４】
図１４は、当該移動体制御システムを説明するための説明図である。図に示されるように、カメラ付きの通信装置７０をユーザ６０が保持し、操作している。図１５は、当該移動体制御システムの構成を示す構成図である。
【０１０５】
図１５に示されるように、通信装置７０は、カメラ７０１、バッテリ７０２、画像処理部７０３、通信処理部７０４、アンテナ７０５を備えている。カメラ７０１は、床面２の模様を撮影する、例えば、ＵＳＢカメラである。バッテリ７０２は、、カメラ７０１、バッテリ７０２、画像処理部７０３、通信処理部７０４等に対して電力を供給する。画像処理部７０３は、カメラ７０１によって撮影され、取得された画像信号を入力し、所定の処理を行い、位置情報を取得する。通信処理部７０４は、画像処理部７０３によって取得された位置情報を含む通信信号を、アンテナ７０５を介して移動体１に対して送信するための通信処理を行う。通信装置７０は、本システムの専用機でなくとも、カメラ付き携帯電話によっても実現できる。
【０１０６】
移動体１は、発明の実施の形態１の移動体の構成に加えて、さらに、通信処理部５５と、アンテナ５６を備えている。通信処理部５５は、アンテナ５６を介して通信装置７０から送信された通信信号を受信し、この通信信号に含まれる位置情報を制御計算部５１に出力する。制御計算部５１は、この位置情報を取得して、通信装置７０の位置を認識して、通信装置７０の位置に移動するように、移動体１を走行制御する。なお、複数の通信装置７０によって移動体１の移動を制御する場合や、複数の移動体１が存在する中で、任意の移動体１の移動を制御する場合には、通信装置７０から送信する通信信号中に、送信元の通信装置７０を識別する識別情報や制御先の移動体１を識別する識別情報を含めるとよい。このとき、移動体１は、識別情報に基づいて識別した通信装置７０に対して移動を行う。また、移動体１は、自身を識別する識別情報を含む通信信号を受信した場合には、このような移動制御を実行するが、自身を識別する識別情報を含まない通信信号を受信した場合には、このような移動制御は実行しない。
【０１０７】
以上説明したように、本実施の形態３にかかる移動体制御システムにおいては、移動体とは離れた位置を、当該移動体に対して認識させることができ、例えば、このような認識位置に移動させるといった移動体制御を行うことができる。
【０１０８】
その他の実施の形態．
上述した実施の形態では、床面に模様が設けられていたが、これに限らず、壁面や天井面に模様が設けられていてもよく、これらの場合には、壁面や天井面を撮影可能な位置や方向にカメラが設置される。
【０１０９】
上述した実施の形態では、障害物モードの場合に、ゲインを変更するものとして説明したが、ゲインの変更方法としてはさまざま変更方法が考えられる。例えば、移動体１にゲインの大きさを調整する調整器を更に設けて、搭乗者１による調整器の操作量に応じて、ゲインの大きさを変更するようにしてもよい。これにより、搭乗者の体重移動に対して、駆動モータ６０３の応答性を変化させることで、例えば、障害物モードの場合には、移動体１の位置をゆっくりと移動させることができる。また、調整器の操作量に応じて、障害物モードと通常モードとの間を切替えるようにしてもよい。これにより、搭乗者の利用状況に応じて、より柔軟に移動体の制御モードを切替えることができ、高い操作性を実現することができる。
【０１１０】
また、本発明は、車輪型の移動体１に限らず、歩行型の移動体においても適用可能である。すなわち、車台１３などの本体部を床面に対して移動させる移動機構が設けられているものであればよい。
【図面の簡単な説明】
【０１１１】
【図１】発明の実施の形態１にかかる移動体制御システムを説明するための説明図である。
【図２】発明の実施の形態１にかかる移動体制御システムにおいて用いられる床面の模様について説明するための説明図である。
【図３】発明の実施の形態１にかかる移動体制御システムにおいて用いられる床面の模様について説明するための説明図である。
【図４】発明の実施の形態１にかかる移動体制御システムにおいて用いられる床面の模様について説明するための説明図である。
【図５】発明の実施の形態１にかかる移動体を模式的に示す正面図である。
【図６】発明の実施の形態１にかかる移動体を模式的に示す側面図である。
【図７】各軸周りの動作を説明するための図である。
【図８】発明の実施の形態１にかかる移動体を移動させるための制御系を示すブロック図である。
【図９】移動体の姿勢を変化させるための構成を示す斜視図である。
【図１０】発明の実施の形態１にかかる移動体の制御を示すフローチャートである。
【図１１】発明の実施の形態１にかかる移動体におけるコンプライアンス制御を示すフローチャートである。
【図１２】発明の実施の形態１にかかる移動体の制御を示すフローチャートである。
【図１３】発明の実施の形態２にかかる移動体の制御を示すフローチャートである。
【図１４】発明の実施の形態３にかかる移動体制御システムを説明するための説明図である。
【図１５】発明の実施の形態３にかかる移動体制御システムを構成を示すブロック図である。
【符号の説明】
【０１１２】
１  移動体、  ２  フレーム部、  ３  搭乗部、  ５  駆動部、
５０１  ヨー軸機構、  ５０１ａ  エンコーダ、
５０２  ピッチ軸機構、  ５０２ａ  エンコーダ、
５０３  ロール軸機構、  ５０３ａ  エンコーダ、
６０３  駆動モータ、  ６０３ａ  エンコーダ、
６  車輪、  ６０１  前輪、  ６０２  後輪、
６０３  駆動モータ、  ６０３ａ  エンコーダ、
７、７１〜７４  カメラ
８  搭乗席、  ８ａ  座面、  ９  力センサ、  １０  フットレスト、
１１  筐体、  １２  判別部、  １３  車台、
２０  肘掛部、  ２１  背もたれ部、  ２２  スイッチ、
５１  制御計算部、  ５２  バッテリ、  ５３  センサ処理部、  ５４  画像処理部、
５５  通信処理部、  ５６  アンテナ、  ７０  通信装置、
２０１  第１の平行リンク機構、  ２０１ａ  横リンク、  ２０１ｂ  縦リンク、
２０２  第２の平行リンク機構、  ２０２ａ  横リンク、  ２０２ｂ  縦リンク、
３０１  支持軸、
７０１  カメラ、  ７０２  バッテリ、  ７０３  画像処理部、
７０４  制御計算部、  ７０５  通信処理部７０５、  ７０６  アンテナ
【図１】
2010117847.tif 000003
【図２】
2010117847.tif 000004
【図３】
2010117847.tif 000005
【図４】
2010117847.tif 000006
【図５】
2010117847.tif 000007
【図６】
2010117847.tif 000008
【図７】
2010117847.tif 000009
【図８】
2010117847.tif 000010
【図９】
2010117847.tif 000011
【図１０】
2010117847.tif 000012
【図１１】
2010117847.tif 000013
【図１２】
2010117847.tif 000014
【図１３】
2010117847.tif 000015
【図１４】
2010117847.tif 000016
【図１５】
2010117847.tif 000017