(57)【要約】【課題】本発明は、予測される傾きに応じて事前に姿勢を制御するロボットを提供することを目的とする。【解決手段】本発明によれば、進行方向前方の地面の３次元形状を計測する３次元形状計測手段と、本体の姿勢を安定化するための姿勢安定化手段と、計測した前記３次元形状の特徴量を生成する特徴量生成手段と、前記特徴量から所定の予測モデルに基づいてロボットが前記進行方向前方の地面に接地したときの前記本体の傾き角度の予測値を生成する傾き角度予測手段と、前記予測値に基づいてロボットが転倒しないように前記姿勢安定化手段を制御する転倒回避制御手段と、を含む、ロボットが提供される。【選択図】図１
2017010529.tif 000002
【特許請求の範囲】
【請求項１】
進行方向前方の地面の３次元形状を計測する３次元形状計測手段と、
本体の姿勢を安定化するための姿勢安定化手段と、
計測した前記３次元形状の特徴量を生成する特徴量生成手段と、
前記特徴量から所定の予測モデルに基づいてロボットが前記進行方向前方の地面に接地したときの前記本体の傾き角度の予測値を生成する傾き角度予測手段と、
前記予測値に基づいてロボットが転倒しないように前記姿勢安定化手段を制御する転倒回避制御手段と、
を含む、ロボット。
【請求項２】
前記予測モデルは、
地面の３次元形状の特徴量を説明変数とし該地面にロボットが接地したときの前記本体の傾き角度を目的変数とする回帰モデルである、
請求項１に記載のロボット。
【請求項３】
さらに、前記本体の傾き角度を計測する傾き角度計測手段と、
前記傾き角度計測手段が計測した前記傾き角度に基づいて前記予測値を補正する予測値補正手段とを含む、
請求項１または２に記載のロボット。
【請求項４】
前記転倒回避制御手段は、
前記予測値に基づいて前記本体を走行させるための走行手段を制御してロボットの進行方向を変更する、
請求項１〜３のいずれか一項に記載のロボット。
【請求項５】
さらに、前記特徴量生成手段が生成する地面の３次元形状の特徴量と該地面にロボットが接地したときに前記傾き角度計測手段が計測する前記傾き角度の組み合わせを学習データとして生成する学習データ生成手段と、
生成した前記学習データを用いた機械学習によって前記予測モデルを生成する予測モデル生成手段と、
を含む、
請求項３または４に記載のロボット。
【請求項６】
前記傾き角度は、ロール角およびピッチ角である、
請求項１〜５のいずれか一項に記載のロボット。
【請求項７】
前記転倒回避制御手段は、
ロボットが前記進行方向前方の地面に到着するまでの時間が、ロボットが転倒しないように前記姿勢安定化手段を制御するのに要する時間よりも長くなるように、該ロボットの走行速度を制御する、
請求項１〜６のいずれか一項に記載のロボット。
【請求項８】
前記転倒回避制御手段は、
ロボットが前記進行方向前方の地面に到着するまでの時間が、ロボットが転倒しないように前記姿勢安定化手段を制御するのに要する時間と略等しくなるように、該ロボットの走行速度を制御する、
請求項７に記載のロボット。
【請求項９】
前記予測値を格納するための先入れ先出し方式の待ち行列手段であって、最大でｎ個（ｎは２以上の整数。以下同様。）の前記予測値を格納可能な待ち行列手段を含み、
前記３次元形状計測手段は、
ロボットが距離ｄを移動する度に、距離（（ｎ＋１）×ｄ）前方の前記地面の３次元形状を計測し、
前記傾き角度予測手段は、
ロボットが距離ｄを移動する度に、前記予測値を生成し、該予測値を前記待ち行列手段に格納し、
前記転倒回避制御手段は、
ロボットが距離ｄを移動する度に、前記待ち行列手段から前記予測値を読み出し、該予測値に基づいて前記姿勢安定化手段を制御する、
請求項７または８に記載のロボット。
【請求項１０】
進行方向前方の地面の３次元形状を計測する３次元形状計測手段と本体の姿勢を安定化するための姿勢安定化手段を備えるロボットを制御するコンピュータを、
計測された前記３次元形状の特徴量を生成する特徴量生成手段、
地面の３次元形状の特徴量を説明変数とし該地面にロボットが接地したときの本体の傾き角度を目的変数とする予測モデルに基づいて、生成された前記特徴量から前記進行方向前方の地面に接地したときの本体の傾き角度の予測値を生成する傾き角度予測手段、
前記予測値に基づいてロボットが転倒しないように前記姿勢安定化手段を制御する転倒回避制御手段、
として機能させるためのプログラム。
【請求項１１】
１以上のロボットと情報処理装置とがネットワークを介して接続された情報処理システムであって、
前記ロボットは、
進行方向前方の地面の３次元形状を計測する３次元形状計測手段と、
本体の姿勢を安定化するための姿勢安定化手段と、
計測した前記３次元形状の特徴量を生成して前記情報処理装置に送信する特徴量生成手段と、
を含み、
前記情報処理装置は、
前記ロボットから受信した前記特徴量から所定の予測モデルに基づいて該ロボットが前記進行方向前方の地面に接地したときの前記本体の傾き角度の予測値を生成して該ロボットに送信する傾き角度予測手段を含み、
前記ロボットは、
前記情報処理装置から受信した前記予測値に基づいてロボットが転倒しないように前記姿勢安定化手段を制御する転倒回避制御手段を含む、
情報処理システム。
【請求項１２】
前記ロボットは、
前記本体の傾き角度を計測する傾き角度計測手段と、
前記特徴量生成手段が生成する地面の３次元形状の特徴量と該地面に該ロボットが接地したときに前記傾き角度計測手段が計測する前記傾き角度の組み合わせを学習データとして生成して前記情報処理装置に送信する学習データ生成手段と、
を含み、
前記情報処理装置は、
前記ロボットから受信した前記学習データを用いた機械学習によって前記予測モデルを生成する予測モデル生成手段、
を含む、
請求項１１に記載の情報処理システム。
【請求項１３】
進行方向前方の地面の３次元形状を計測する３次元形状計測手段と本体の姿勢を安定化するための姿勢安定化手段を備える１以上のロボットと情報処理装置とがネットワークを介して接続された情報処理システムにおいて実行される方法であって、
前記ロボットが、
進行方向前方の地面の３次元形状を計測するステップと、
計測した前記３次元形状の特徴量を生成し、該特徴量を前記情報処理装置に送信するステップと、
を実行し、
前記情報処理装置が、
前記ロボットから受信した前記特徴量から所定の予測モデルに基づいて該ロボットが前記進行方向前方の地面に接地したときの前記本体の傾き角度の予測値を生成し、該予測値を該ロボットに送信するステップを実行し、
前記ロボットが、
前記情報処理装置から受信した前記予測値に基づいてロボットが転倒しないように前記姿勢安定化手段を制御するステップを実行する、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットに関する。
【背景技術】
【０００２】
自律走行するロボットがバランスを崩して転倒するのを防ぐために、傾き角度をセンシングしてロボットが水平を保つように姿勢制御する技術が既に知られている。しかしながら、これまでの傾き角度に基づく姿勢制御は、フィードバック方式であったため、地面形状が急峻に変化する環境では、制御が間に合わずロボットが転倒してしまうといったことが起こっていた。
【０００３】
この点につき、特開２００９−２４１２４６号公報（特許文献１）は、転倒を防止する目的で、レーザーレンジファインダーを用いて地面をセンシングして、その地面の形状に対して適応的に可動腕を自律制御する自律走行型ロボットを開示する。
【０００４】
しかしながら、特許文献１が開示するロボットは、矩形形状の不整地を想定した単純な物理モデルに基づいて姿勢制御を行うものであるため、複雑な形状の不整地に対応することができないという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、上記従来技術における課題に鑑みてなされたものであり、予測される傾きに応じて事前に姿勢を制御するロボットを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明者は、予測される傾きに応じて事前に姿勢を制御するロボットの構成につき鋭意検討した結果、以下の構成に想到し、本発明に至ったのである。
【０００７】
すなわち、本発明によれば、進行方向前方の地面の３次元形状を計測する３次元形状計測手段と、本体の姿勢を安定化するための姿勢安定化手段と、計測した前記３次元形状の特徴量を生成する特徴量生成手段と、前記特徴量から所定の予測モデルに基づいてロボットが前記進行方向前方の地面に接地したときの前記本体の傾き角度の予測値を生成する傾き角度予測手段と、前記予測値に基づいてロボットが転倒しないように前記姿勢安定化手段を制御する転倒回避制御手段と、を含む、ロボットが提供される。
【発明の効果】
【０００８】
上述したように、本発明によれば、予測される傾きに応じて事前に姿勢を制御するロボットが提供される。
【図面の簡単な説明】
【０００９】
【図１】本実施形態のロボットの模式図。
【図２】本実施形態のロボットの模式図。
【図３】本実施形態の姿勢安定化手段の模式図。
【図４】本実施形態のロボットのハードウェア構成図。
【図５】本実施形態のロボットの機能ブロック図。
【図６】学習データを生成する手順を示すフローチャート。
【図７】訓練フェーズを説明するための模式図。
【図８】特徴量生成手段が実行する処理を説明するための概念図。
【図９】特徴量生成手段が実行する処理を説明するための概念図。
【図１０】学習データセットの概念図。
【図１１】予測モデルを示す図。
【図１２】本番走行フェーズを説明するための模式図。
【図１３】本番走行フェーズにおいて実行される処理を示すフローチャート。
【図１４】予測値補正手段が実行する処理を説明するための概念図。
【図１５】転倒回避制御手段が実行する処理を示すフローチャート。
【図１６】転倒回避制御手段が実行する処理を説明するための概念図。
【図１７】本実施形態のロボットを含むネットワークシステムを示す図。
【図１８】本番走行フェーズにおいて実行される処理を示すフローチャート。
【図１９】本番走行フェーズを説明するための模式図。
【発明を実施するための形態】
【００１０】
以下、本発明を、実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。
【００１１】
図１は、本発明の実施形態であるロボット１００の模式図である。なお、図１（ａ）は、ロボット１００の斜視図であり、図１（ｂ）は、ロボット１００を正面から見た図であり、図１（ｃ）は、ロボット１００を側面から見た図である。
【００１２】
図１に示すように、本実施形態のロボット１００は、自律移走行型ロボットであり、本体１０と、本体１０を走行させるための走行手段１６と、進行方向前方の地面（走行面）の３次元形状を計測するための３次元形状計測手段１２と、本体１０の傾き角度を計測するための傾き角度計測手段１４と、ロボット１００の姿勢を安定化するための姿勢安定化手段１８と、ロボット１００の自律走行を制御するコンピュータ２０とを含んで構成されている。
【００１３】
３次元形状計測手段１２は、進行方向前方の地面の３次元形状を計測することができる手段であればよい。３次元形状計測手段１２としては、３次元レーザーレンジファインダーやステレオカメラを例示することができる。
【００１４】
傾き角度計測手段１４は、本体１０の傾き角度としてロール角およびピッチ角を計測することができる手段であればよい。傾き角度計測手段１４としては、ジャイロセンサを例示することができる。
【００１５】
走行手段１６は、本体１０を所望の進行方向に走行させることができる機構を備えるものであればよい。本実施形態では、走行手段１６として、４輪独立駆動機構を採用した場合を例にとって説明を行うが、他の実施形態では、走行手段１６として、操舵装置を備える前輪駆動機構または後輪駆動機構やクローラ機構などを採用することができる。
【００１６】
姿勢安定化手段１８は、ロボット１００が転倒しないようにロボット１００の姿勢を安定化することができる機構を備えるものであればよい。本実施形態では、姿勢安定化手段１８として、４本の伸縮自在なアクチュエータ１８を採用した場合を例にとって説明を行う。本実施形態においては、４本のアクチュエータ１８のそれぞれに対して独立駆動する４つの車輪が軸支されており、各アクチュエータ１８を独立して伸縮制御することができるように構成されている。
【００１７】
そして、本実施形態では、図１（ｂ）に示すように、進行方向左右のアクチュエータ１８の長さを異ならしめることにより、本体１０のロール角を変更することができ、図１（ｃ）に示すように、進行方向前後のアクチュエータ１８の長さを異ならしめることにより、本体１０のピッチ角を変更することができるように構成されている。なお、他の実施形態では、姿勢安定化手段１８として、本体１０の傾き角度を変更することができる他の適切な手段の他、ロボット１００の重心を移動させる手段を採用することができる。
【００１８】
図２は、姿勢安定化手段として、重心を移動させる重心位置制御装置４０を搭載し、走行手段１６として、クローラ機構１６ａ，１６ｂを搭載したロボット１００ａの模式図である。なお、図２（ａ）は、ロボット１００ａの斜視図であり、図２（ｂ）は、ロボット１００ａを正面から見た図であり、図２（ｃ）は、ロボット１００ａを側面から見た図である。
【００１９】
図２に示すロボット１００ａでは、一対のクローラ機構１６ａ，１６ａが主駆動系として機能する。加えて、ロボット１００ａにおいては、各クローラ機構１６ａに対して、可動腕として機能する一対のクローラ機構１６ｂ，１６ｂが回転軸Ｒ１またはＲ２を中心に回転自在に固定されている。
【００２０】
図３は、重心位置制御装置４０を例示的に示す。なお、図３（ａ）は、重心位置制御装置４０の斜視図であり、図３（ｂ）は、重心位置制御装置４０を側面から見た図である。図３に示す例では、重心位置制御装置４０は、錘４８（運搬物であってもよい）を搭載可能なチルトテーブル４２と、本体１０の上面を基準としたチルトテーブル４２の傾き角度（ロール角およびピッチ角）を変更するためのリンク機構を含んで構成されている。ここで、チルトテーブル４２は、支柱４２ａと本体１０がボールジョイント４３を介して接続されることにより、全方位に揺動自在となっている。また、重心位置制御装置４０は、リンク機構として、ロール角を変更するための第１のリンク機構と、ピッチ角を変更するための第２のリンク機構を含む。
【００２１】
第１および第２のリンク機構は、それぞれ、ステッピングモータ４４、平歯車４５およびリンク４６を含んで構成されており、リンク４６の一端は、平歯車４５に固定され、その他端は、ボールジョイント４７を介してチルトテーブル４２の裏面に固定されている。本実施形態においては、図３（ｂ）に示すように、ステッピングモータ４４の回転に伴って平歯車４５が回転し、平歯車４５の回転に伴って、平歯車４５とチルトテーブル４２を連結するリンク４６が伸縮することでチルトテーブル４２のロール角またはピッチ角が変更されるようになっている。本実施形態では、例えば、ロボット１００ａが登坂・降坂する際に、チルトテーブル４２のテーブル面を水平を維持することによって、錘４８を含むロボット１００ａ全体の重心の位置を変更することができ、これにより、ロボット１００ａの転倒を回避することができる。
【００２２】
なお、チルトテーブル４２に錘４８として機能する運搬物が積載されていない場合や、重心の位置を変更だけではロボット１００ａの転倒を回避できない場合には、図２（ｂ）、（ｃ）に示すように、少なくとも１つのクローラ機構１６ｂ（可動腕）を必要な角度回転させて、本体１０のロール角およびピッチ角を変更することで、ロボット１００ａの転倒を回避することができる。この場合、クローラ機構１６ｂ（可動腕）が重心位置制御装置４０とともに姿勢安定化手段として機能することになる。
【００２３】
ここで、ロボット１００に搭載されるコンピュータ２０のハードウェア構成を図４に基づいて説明する。
【００２４】
すなわち、ロボット１００に搭載されるコンピュータ２０は、少なくとも、ロボット１００全体の動作を制御するプロセッサ２２と、ブートプログラムやファームウェアプログラムなどを保存するＲＯＭ２３と、プログラムを実行するための実行空間を提供するＲＡＭ２４と、オペレーティングシステム（ＯＳ）や各種アプリケーションおよびデータを保存するための記憶手段である補助記憶装置２５と、無線信号または有線信号の入出力を行う通信インタフェース２６と、３次元形状計測手段１２および傾き角度計測手段１４から送信されるセンサ信号を受け付けるセンサ・インタフェース２７と、走行手段１６および姿勢安定化手段１８との間で制御信号のやりとりを行う入出力インタフェース２８とを備えており、コンピュータ２０が適切なＯＳの管理下で所定のプログラムを実行することにより、後述する各機能手段を実現する。
【００２５】
続いて、コンピュータ２０が実現するロボット１００の機能手段を図５に示す機能ブロック図に基づいて説明する。
【００２６】
本実施形態のロボット１００は、特徴量生成手段１０２と、学習データ生成手段１０３と、予測モデル生成手段１０４と、傾き角度予測手段１０６と、予測値補正手段１０７と、転倒回避制御手段１０８とを含んで構成される。
【００２７】
特徴量生成手段１０２は、３次元形状計測手段１２によって計測された地面の３次元形状の特徴量を生成するための機能手段である。
【００２８】
学習データ生成手段１０３は、傾き角度計測手段１４によって計測された本体１０の傾き角度と特徴量生成手段１０２が生成した地面の３次元形状の特徴量の組み合わせを機械学習の学習データとして生成するための機能手段である。
【００２９】
予測モデル生成手段１０４は、進行方向前方の地面にロボット１００が接地したときの本体１０の傾き角度を予測するための予測モデルを生成するための機能手段であり、学習データ生成手段１０３が生成した学習データを用いて機械学習を行う学習器の機能を備える。
【００３０】
傾き角度予測手段１０６は、予測モデル生成手段１０４が生成した予測モデルに基づいて、特徴量生成手段１０２が生成した進行方向前方の地面の３次元形状の特徴量から当該地面にロボット１００が接地したときの本体１０の傾き角度の予測値を生成するための機能手段である。
【００３１】
予測値補正手段１０７は、傾き角度計測手段１４によって取得された本体１０の傾き角度に基づいて、傾き角度予測手段１０６が生成した予測値を補正するための機能手段である。
【００３２】
転倒回避制御手段１０８は、補正後の予測値に基づいて、本体１０の転倒が回避されるように、走行手段１６または姿勢安定化手段１８の少なくとも一方を制御するための機能手段である。
【００３３】
以上、本実施形態のロボット１００の機能手段について説明してきたが、続いて、上述した各機能手段が実行する処理の内容を、「訓練フェーズ」と「本番走行フェーズ」に分けて説明する。ここで、「訓練フェーズ」は、ロボット１００が走行環境を機械学習するフェーズであり、「本番走行フェーズ」は、ロボット１００が機械学習の成果を利用して実際に自律走行するフェーズである。なお、以下の説明では、適宜、図４および図５を参照するものとする。
【００３４】
（訓練フェーズ）
訓練フェーズでは、ロボット１００は、走行環境に関する機械学習を行って予測モデルを生成する。ここでいう予測モデルは、地面の特徴量を説明変数とし、当該地面にロボット１００が接地したときの本体１０の傾き角度を目的変数とする回帰モデルである。本実施形態では、ロボット１００は、教師あり機械学習によって傾き角度の予測モデルを生成する。
【００３５】
ここでは、まず、教師あり機械学習に供する学習データを生成する手順を図６に示すフローチャートに基づいて説明する。
【００３６】
ステップ１０１では、学習用の地面の３次元形状を計測する。具体的には、まず、図７（ａ）に示すように、学習用の地面ｇの手前に地面形状計測装置３０を設置する。ここで、地面形状計測装置３０は、ロボット１００の３次元形状計測手段１２と同等の機能を持つ３次元形状計測手段３２とこれを支持する支持体３４を含んで構成されている。
【００３７】
ステップ１０１では、３次元形状計測手段３２のセンサ座標系（３次元直交座標系ｘ’ｙ’ｚ’）のｘｙ平面と、鉛直方向をｚ軸とする世界座標系（３次元直交座標系ｘｙｚ）のｘｙ平面が一致するように、支持体３４を調整して３次元形状計測手段３２の姿勢を固定した状態で、地面ｇの表面形状を計測する。このとき、３次元形状計測手段３２の測定範囲（ｖ×ｕ）は、ロボット１００の底面の大きさ（長さＬ×幅Ｗ）よりも広い範囲とする。なお、ロボット１００の３次元形状計測手段１２のセンサ座標系（３次元直交座標系ｘ’’ｙ’’ｚ’’）のｘ’’ｙ’’平面と３次元形状計測手段３２のセンサ座標系のｘ’ｙ’平面が一致するように、ロボット１００の３次元形状計測手段１２の位置を調節する。
【００３８】
図８（ａ）は、地面ｇの計測によって取得された３次元形状データを示す。図８（ａ）に示すように、地面ｇの３次元形状データは、各点が３次元座標（x’,y’,z’）を持つ３次元点群データとして取得される。
【００３９】
本実施形態においては、図７（ａ）に示すように、地面形状計測装置３０が取得した地面ｇの３次元点群データをロボット１００に無線で転送し、ロボット１００は、受信した地面ｇの３次元点群データを所定の記憶領域に記憶する。
【００４０】
続くステップ１０２では、図７（ｂ）に示すように、ロボット１００を地面ｇの測定領域（ｖ×ｕ）の上に移動させて、ロボット１００の傾き角度を計測する。具体的には、ロボット１００は、図８（ｂ）に示すように、地面ｇの測定領域（ｖ×ｕ）の中心とロボット１００の重心位置Ｏが一致したときに傾き角度計測手段１４が検出した傾き角度（ロール角およびピッチ角）を所定の記憶領域に記憶する。
【００４１】
ステップ１０２は、具体的には以下のような手順で行うことができる。例えば、３次元形状計測手段３２がステレオカメラである場合、３次元形状計測手段３２を図７（ａ）に示す状態のまま動かさないようにする一方で、ロボット１００の重心位置Ｏを適切な方法であらかじめマーキングしておく。その後、ステレオカメラの画像を見ながらロボット１００を移動させ、ロボット１００のマーカー位置と測定領域（ｖ×ｕ）の中心が一致するように目視で位置合わせを行う。
【００４２】
その後、特徴量生成手段１０２がステップ１０３〜１０９の処理を実行する。
【００４３】
まず、ステップ１０３では、ステップ１０１で記憶した地面ｇの３次元点群データを記憶領域から読み出し、読み出した３次元点群データから、ステップ１０２で傾き角度を計測した際にロボット１００が接地した領域（ロボット１００の底面の大きさ（長さＬ×幅Ｗ）に対応する領域）に含まれる点群データを抽出する。具体的には、図８（ｃ）に示すように、測定範囲の中心からx’方向左右にＷ/２、y’方向左右にＬ/２の範囲内にある点群データのみを残し、その余の領域の点群データを削除する。
【００４４】
なお、上述したステップ１０２〜１０３の別法として、以下の方法をとってもよい。すなわち、３次元形状計測手段３２で測定する際、その設置位置が形状情報取得後に自動で、あるいは人の目で見て明らかに判別可能であるマーカーを用意する。このマーカーを設置することで、幅Ｗ、長さＬ分の大きさの長方形領域が判別可能であり、かつマーカーを置くことでその領域内の地形の形状を取得することに影響を与えないものとする。具体例として、反射率の高い色が使用された長方形型の窓枠のようなものが挙げられる。上記マーカーを３次元形状の計測前に人手で設置し、３次元形状計測手段３２の測定範囲内にマーカー収まるようにして、マーカーとともに地形を測定する。ロボット１００を動かす際には、上記で設置したマーカーの範囲内へロボットを移動させる。この場合、マーカーを設置する位置については、必ずしも測定範囲の中心とロボットの重心位置を一致させる必要はない。なお、接地領域の抽出処理においては、上記マーカーの位置をもとにして長方形領域を自動あるいは人手で抽出する。
【００４５】
続くステップ１０４では、ステップ１０３で抽出した点群データからノイズを除去する。なお、ステップ１０４では、ＩＣＰ(Iterative Closest Points)のアルゴリズムを用いてノイズ除去を実施してもよいし、点群の３次元座標のz’値について定めた所定の閾値（上限・下限）に基づいて、z’値が極端に高い点もしくは低い点を外れ値として取り除くことでノイズ除去を実施してもよい。
【００４６】
続くステップ１０５では、ステップ１０４で得られたノイズ除去後の３次元点群データのｘｙ平面を格子状に分割する。例えば、ステップ１０４で図９（ａ）に示す３次元点群データが得られた場合、これを図９（ｂ）に示すように、ｍ×ｎ個のグリッドに分割する。
【００４７】
続くステップ１０６では、各グリッドに含まれる１以上の点群のz’値について、その代表値（例えば、平均値）を計算する。その結果、図９（ｃ）に示すように、各グリッドの代表値（ｚ1,1,ｚ1,２,ｚ1,３…）が得られる。
【００４８】
続くステップ１０７では、１つの点群も含まないグリッド（以下、欠損グリッドという）があるか否かを確認する。これは、３次元点群データの欠損によって、１つの点群も含まないグリッドが生じる場合があるからである。ステップ１０７の判断の結果、欠損グリッドがない場合は（Ｓ１０７、Ｎｏ）、処理はステップ１０９に進む。一方、欠損グリッドがある場合は（Ｓ１０７、Ｙｅｓ）、処理はステップ１０８に進む。
【００４９】
続くステップ１０８では、欠損グリッドのz’値の代表値を補完する。具体的には、注目する欠損グリッドに隣接する近傍グリッドについて求まったz’値の代表値の平均値を当該欠損グリッドの代表値とする。図９（ｄ）は、欠損グリッドの上下左右の４つのグリッドを近傍グリッドとして欠損グリッドの代表値を補完する態様を例示するが、欠損グリッドを囲む８つのグリッドを近傍グリッドとして代表値を補完してもよい。欠損グリッドについて補完処理を行った結果、図９（ｃ）に示すように、ｍ×ｎ個の代表値（ｘ1,1〜ｘm,n）が得られる。
【００５０】
続くステップ１０９では、上述した手順で得られたｍ×ｎ個のz’値（代表値）に基づいて地面ｇの特徴量を生成する。具体的には、ｍ×ｎ個のz’値をｍ×ｎ次元の特徴ベクトル（ｚ1,1,ｚ1,２, 1,３…ｚm,n）に変換し、得られた特徴ベクトルを地面ｇの特徴量として所定の記憶領域に記憶する。
【００５１】
続くステップ１１０では、学習データ生成手段１０３が、ステップ１０９で記憶した地面ｇに係るｍ×ｎ次元の特徴ベクトル（ｚ1,1,ｚ1,２, 1,３…ｚm,n）と、ステップ１０２で記憶した傾き角度（ロール角およびピッチ角）をそれぞれ所定の記憶領域から読み出した後、読み出した特徴ベクトルに傾き角度のラベル（教師信号）を付けたものを学習データとして生成する。このとき、学習データ生成手段１０３は、ロール角を教師信号とする学習データとピッチ角を教師信号とする学習データをそれぞれ生成する。
【００５２】
本実施形態においては、上述した一連の手順（Ｓ１０１〜１１０）を、Ｎ種類の学習用地面に係る学習データが生成されるまで繰り返し実行し（Ｓ１１１、Ｎｏ）、Ｎ種類の学習用地面に係る学習データが生成された時点で（Ｓ１１１、Ｙｅｓ）、処理を終了する。なお、訓練フェーズでは、ロボット１００を走行させる実際の地面におけるＮ個の異なる領域の特徴量から学習データを生成してもよいし、不整地を人工的に再現した模型の地面をＮ種類用意し、当該模型の地面の特徴量から学習データを生成してもよい。
【００５３】
図１０は、上述した手順を経て生成されるＮ個の学習データからなるロール角の学習データセットと、Ｎ個の学習データからなるピッチ角の学習データセットを概念的に示す。
【００５４】
以上、学習データを生成する手順について説明してきたが、続いて、予測モデルを生成する処理を説明する。
【００５５】
予測モデル生成手段１０４は、上述した手順で生成したロール角の学習データセット（サンプル数Ｎ）を入力として受け取り、ロール角θrollを目的変数とし、地面の特徴量（特徴ベクトル）を説明変数とする第１の回帰モデル（関数）を出力する。同様に、予測モデル生成手段１０４は、上述した手順で生成したピッチ角の学習データセット（サンプル数Ｎ）を入力として受け取り、ピッチ角θpitchを目的変数とし、地面の特徴量（特徴ベクトル）を説明変数とする第２の回帰モデルを（関数）を出力する。なお、予測モデル生成手段１０４は、サポートベクターマシン回帰やランダムフォレスト回帰などのアルゴリズムを実行する学習器として参照することができる。
【００５６】
図１１（ａ）は、予測モデル生成手段１０４が生成する第１の回帰モデルおよび第２の回帰モデルを例示的に示す。なお、第１の回帰モデルは下記式（１）のように定式化され、第２の回帰モデルは下記式（２）のように定式化される。
【００５７】
【数１】
2017010529.tif 000003
【００５８】
なお、ここでは、第１および第２の回帰モデルとして線形モデルを生成する場合を例にとって説明したが、第１および第２の回帰モデルは、非線形モデルであってもよい。本実施形態においては、このようにして得た第１の回帰モデルおよび第２の回帰モデルを、それぞれ、ロール角を予測するための第１の予測モデルおよびピッチ角を予測するための第２の予測モデルとして、ロボット１００の補助記憶装置２５が提供する記憶領域１０５に格納する。
【００５９】
以上、「訓練フェーズ」において実行される処理について説明してきたが、続いて、「本番走行フェーズ」において実行される処理を説明する。
【００６０】
（本番走行フェーズ）
図１２に示すように、本番走行フェーズでは、ロボット１００の３次元形状計測手段１２が進行方向前方の地面Ｇの形状をリアルタイム計測するとともに、傾き角度計測手段１４が本体１０の傾き角度（ロール角およびピッチ角）をリアルタイム計測する。なお、本番走行フェーズにおける３次元形状計測手段１２の測定範囲は、訓練フェーズにおける測定範囲（ｖ×ｕ）と同等に設定する。
【００６１】
以下、「本番走行フェーズ」において実行される処理を図１３に示すフローチャートに基づいて説明する。
【００６２】
「本番走行フェーズ」では、特徴量生成手段１０２が、「訓練フェーズ」と同様の手順で、ステップ２０１〜２０８の処理を実行する。
【００６３】
ステップ２０１では、３次元形状計測手段１２が計測する進行方向前方の地面Ｇの３次元形状データ（３次元点群データ）を取得する。
【００６４】
続くステップ２０２では、ステップ２０１で取得した地面Ｇの３次元点群データからロボット１００の大きさに対応する領域（長さＬ×幅Ｗ）に含まれる点群データを抽出し、続くステップ２０３では、抽出した点群データの中からノイズを除去する。
【００６５】
続くステップ２０４では、ノイズ除去後の３次元点群データのｘｙ平面を格子状に分割し、続くステップ２０５では、分割してなる各グリッドに含まれる１以上の点群のz’値の代表値（例えば、平均値）を計算する。その後、ステップ２０６で欠損グリッドの有無を判断し、欠損グリッドがある場合は（Ｓ２０６、Ｙｅｓ）、ステップ２０７で、欠損グリッドのz’値の代表値を補完する。
【００６６】
続くステップ２０８では、各グリッドのz’値（代表値）に基づいて地面Ｇの特徴量（特徴ベクトル）を生成する。
【００６７】
続くステップ２０９では、傾き角度予測手段１０６は、図１１（ｂ）に示すように、記憶領域１０５に格納された第１および第２の予測モデルに基づいて、地面Ｇの特徴量（特徴ベクトル）に対応する傾き角度の予測値θＰを取得する。具体的には、傾き角度予測手段１０６は、ロール角を予測するための第１の予測モデルを表す上記式（１）の説明変数（ｚ1,1,ｚ1,２, 1,３…ｚm,n）の項に対して、ステップ２０８で生成した特徴量（特徴ベクトル）を代入し、その結果として得られるθＰ_rollをロール角の予測値として取得する。同様に、ピッチ角を予測するための第２の予測モデルを表す上記式（２）の説明変数（ｚ1,1,ｚ1,２, 1,３…ｚm,n）の項に対して、ステップ２０８で生成した特徴量（特徴ベクトル）を代入し、その結果として得られるθＰ_pitchをピッチ角の予測値として取得する。
【００６８】
続くステップ２１０では、予測値補正手段１０７が傾き角度予測手段１０６が計測する傾き角度（ロール角およびピッチ角）を取得する。
【００６９】
続くステップ２１１では、先のステップ２１０で取得した傾き角度に基づいて、ステップ２０９で取得した傾き角度の予測値を補正する。これは、ステップ２０９で取得される傾き角度の予測値が、ロボット１００のロボット座標系（３次元直交座標系ｘ’ｙ’ｚ’）のｘ’ｙ’平面を基準とした傾き角度であることによる。
【００７０】
例えば、図１４（ａ）に示すように、ロボット１００が水平面を走行している場合、ロボット座標系（３次元直交座標系ｘ’ｙ’ｚ’）のｘ’ｙ’平面と、鉛直方向をｚ軸とする世界座標系（３次元直交座標系ｘｙｚ）のｘｙ平面は、平行な位置関係にあるので、ステップ２０９で取得される傾き角度の予測値θＰを、そのまま、世界座標系のｘｙ平面を基準とした傾き角度として扱うことができる。一方、図１４（ｂ）に示すように、ロボット１００が水平面に対してＭ度の傾きを持った斜面を走行しているような場合、ロボット座標系のｘ’ｙ’平面と、世界座標系のｘｙ平面は、平行な位置関係にないので、ステップ２０９で取得される予測値θＰを世界座標系のｘｙ平面を基準とした傾き角度として扱うことができない。
【００７１】
この点につき、予測値補正手段１０７は、ステップ２１１で、下記式（３）および（４）に基づいて補正後のロール角の予測値θ’Ｐ_rollおよび補正後のピッチ角の予測値θ’Ｐ_pitchを求める。なお、下記式（３）において、θＰ_rollはステップ２０９で取得したロール角の予測値を示し、θＭ_rollはステップ２１０で取得したロール角の実測値を示す。また、下記式（４）において、θＰ_pitchはステップ２０９で取得したピッチ角の予測値を示し、θＭ_pitchはステップ２１０で取得したピッチ角の実測値を示す。
【００７２】
【数２】
2017010529.tif 000004
【００７３】
続くステップ２１２では、転倒回避制御手段１０８が、ステップ２１１で得られた予測値(θ’Ｐ_roll,θ’Ｐ_pitch）に基づいて転倒回避処理を実行する。その後、処理は、再び、ステップ２０１に戻り、以降、上述した一連の処理（Ｓ２０１〜２１２）を繰り返し実行する。
【００７４】
ここで、転倒回避制御手段１０８が実行する転倒回避処理を図１５に示すフローチャートに基づいて説明する。
【００７５】
先のステップ２１１においてロール角およびピッチ角の予測値(θ’Ｐ_roll,θ’Ｐ_pitch）が取得されたことを受けて、転倒回避制御手段１０８は、以下の処理を実行する。
【００７６】
ステップ３０１では、ロール角の予測値θ’Ｐ_rollおよびピッチ角の予測値θ’Ｐ_pitchの少なくとも一方が予め設定した転倒回避限界値を超えているか否かを判断する。ここで、転倒回避限界値とは、姿勢安定化手段１８の制御によって転倒を回避することが可能な傾き角度の限界値を意味する。ステップ３０１の判断の結果、少なくとも一方の予測値が転倒回避限界値を超えている場合は（Ｓ３０１、Ｙｅｓ）、処理はステップ３０６に進む。
【００７７】
ステップ３０６では、走行手段１６を制御して、ロボット１００を左方向（または右方向）に所定角度旋回させ、処理を終了する。この場合、ロボット１００の進路が変更され、ロボット１００は、危険箇所を迂回することによって転倒を回避する。なお、ステップ３０６においては、ロール角の予測値θ’Ｐ_rollが正の値を示す場合（すなわち、ロボット１００が進行方向左側に傾くことが予測される場合）には、走行手段１６を制御してロボット１００を左方向に旋回させ、ロール角の予測値θ’Ｐ_rollが負の値を示す場合（すなわち、ロボット１００が進行方向右側に傾くことが予測される場合）には、走行手段１６を制御してロボット１００を右方向に旋回させることが好ましい。
【００７８】
一方、ステップ３０１の判断の結果、いずれの予測値も転倒回避限界値以下であった場合は（Ｓ３０１、Ｎｏ）、処理はステップ３０２に進み、ピッチ角の予測値θ’Ｐ_pitchに基づいて必要加速度αを算出する。ここで、必要加速度αとは、進行方向前方の地面の傾斜に起因してロボット１００の進行方向に作用する重力加速度を相殺するために必要な加速度を意味し、例えば、下記式（５）で求めることができる。なお、下記式（５）において、ピッチ角の予測値[ｄｅｇ.]は、先のステップ２１１において取得される予測値θ’Ｐ_pitchであり、ロボット１００の進行方向前方が後方より高い位置にあるときに正の値をとり、ロボット１００の進行方向前方が後方より低い位置にあるときに負の値をとる。
【００７９】
【数３】
2017010529.tif 000005
【００８０】
続くステップ３０３では、傾き角度を予測した進行方向前方の地面にロボット１００が到達するまでの所要時間ｔを算出する。具体的には、先のステップ２０１で取得した３次元形状を計測した測定領域（ｖ×ｕ）の中心とロボット１００の重心位置が一致するまでの所要時間ｔを算出する（図８（ｂ）参照）。なお、所要時間ｔは、現時点における測定領域（ｖ×ｕ）の中心とロボット１００の重心位置の離間距離、ロボット１００の現時点の走行速度、および先のステップ３０２で算出した必要加速度αから導出することができる。
【００８１】
続いて、ステップ３０４およびステップ３０５を並行して実行する。
【００８２】
ステップ３０４では、走行手段１６を制御して、ロボット１００の走行速度を先のステップ３０２で算出した必要加速度αで加速する。進行方向前方の地面が上り坂になっている場合は、必要加速度αは正の値を取るので、ロボット１００に作用する進行方向逆向きの重力加速度が相殺され、ロボット１００が上り坂で減速して止まってしまうといったことが回避される。一方、進行方向前方の地面が下り坂になっている場合は、必要加速度αは負の値を取るので、ロボット１００に作用する進行方向の重力加速度が相殺され、ロボット１００が下り坂で加速して危険な状態に陥るといったことが回避される。
【００８３】
一方、ステップ３０５では、図１６に示すように、時間ｔ経過後のロボット１００の傾き角度（ロール角およびピッチ角）が所定の許容範囲に収まるように姿勢安定化手段１８を制御する。ここで、所定の許容範囲は、ロボット１００が転倒しないで走行する上で許容される傾き角度の範囲であり、本実施形態においては、ロール角およびピッチ角のそれぞれの許容範囲として、０度を中心とした適切な角度範囲を予め設定しておく。
【００８４】
図１６（ａ）は、予測されたロール角方向の傾きを解消するように、前もって姿勢安定化手段１８が制御された結果、時間ｔ経過後において、ロボット１００のロール角がゼロになった様子を示す。また、図１６（ｂ）は、予測されたピッチ角方向の傾きを解消するように、前もって姿勢安定化手段１８が制御された結果、時間ｔ経過後において、ロボット１００のピッチ角がゼロになった様子を示す。なお、図１６では、説明の便宜上、ロール角およびピッチ角が個別に制御される態様を示したが、実際には、時間ｔ経過後に、ロール角とピッチ角の両方が同時に許容範囲に収まるように、姿勢安定化手段１８を制御する。
【００８５】
以上、説明したように、本実施形態のロボット１００は、進行方向前方の地面の形状から予測される傾き角度に基づいて、その傾きを解消するように前もって姿勢を変えるので、地面形状が急峻に変化するようなシーンでも転倒を回避することができる。また、本実施形態のロボット１００は、機械学習によって構築された傾き角度の予測モデルに基づいて姿勢制御を行うので、事前に適切な機械学習を行っておくことで様々な走行環境に対応することが可能になる。
【００８６】
なお、これまで、ロボット単体の発明について説明してきたが、本発明は、図１７に示すように、1以上のロボット１００と情報処理装置２００をＬＡＮまたはＷＡＮとして参照されるネットワーク５０を介して相互通信可能に接続してなる情報処理システム１０００として構成することもできる。情報処理システム１０００においては、ロボット１００の先述した機能手段（図５参照）のうち、予測モデル生成手段１０４、傾き角度予測手段１０６および記憶領域１０５を情報処理装置２００上に実現する。
【００８７】
この場合、訓練フェーズにおいて、ロボット１００の学習データ生成手段１０３は、生成した学習データをネットワーク５０を介して情報処理装置２００に送信する。これを受けて、情報処理装置２００の予測モデル生成手段１０４は、ロボット１００から受信した学習データに基づいて機械学習を行って傾き角度（ロール角／ピッチ角）の予測モデルを生成し、生成した予測モデルを記憶領域１０５に格納する。
【００８８】
一方、本番走行フェーズにおいて、ロボット１００の特徴量生成手段１０２は、生成した進行方向前方の地面の特徴量をネットワーク５０を介して情報処理装置２００に送信する。これを受けて、情報処理装置２００の傾き角度予測手段１０６は、記憶領域１０５に格納された予測モデルに基づいて、ロボット１００から受信した特徴量に対応する傾き角度の予測値θＰを取得し、取得した予測値θＰをロボット１００に送信する。ロボット１００の予測値補正手段１０７は、情報処理装置２００から受信した予測値θＰを補正し、転倒回避制御手段１０８が補正後の予測値θ’Ｐに基づいて転倒回避処理を実行する。
【００８９】
上述した情報処理システム１０００においては、各ロボット１００から随時的に提供される学習データに基づいて機械学習が継続されるので、予測モデルの精度が時間を追うごとに向上し、各ロボット１００は、その成果を共有することができる。
【００９０】
上述したように、本実施形態のロボット１００は、進行方向前方の地面に接地したときの本体１０の傾き角度の予測値に基づいて自身の姿勢を安定化することにより転倒を回避する。したがって、本実施形態では、ロボット１００が傾き角度を予測した地面に到達した時点で、ロボット１００の姿勢安定化が完了している必要がある。ただし、ロボット１００の姿勢安定化が完了するタイミングが、ロボット１００が傾き角度を予測した地面に到達するタイミングよりも早すぎると、ロボット１００の姿勢がかえって不安定になる虞がある。
【００９１】
この点につき、本実施形態では、「本番走行フェーズ」において、後述する処理を実行することにより、ロボット１００が傾き角度を予測した地面に到達するタイミングとロボット１００の姿勢安定化が完了するタイミングを合わせることができる。以下、図１８に示すフローチャートに基づいて処理の内容を具体的に説明する。
【００９２】
ステップ４０１では、ロボット１００の移動量を累積加算する。なお、ロボット１００の移動量は、既存のオドメトリ手法（ホイールエンコーダーを用いる方法、加速度センサの値を積分する方法、ビジュアルオドメトリーなど）を用いて求めることができる。
【００９３】
続くステップ４０２では、移動量の累積値が所定の距離Δｄメートルに達したか否かを監視する（Ｓ４０２、Ｎｏ）。（ｄは正の実数である。以下同様。）ここで、距離Δｄメートルは、３次元形状計測手段１２の取り付け角度や、コンピュータ２０の処理速度、ロボット１００の最高速度などを考慮して適切な値を事前に決定しておく。
【００９４】
その後、移動量の累積値が距離Δｄメートルに達した時点で（Ｓ４０２、Ｙｅｓ）、処理はステップ４０３に進む。ステップ４０３では、“傾き角度予測処理”が実行される。ここで、ステップ４０３の“傾き角度予測処理”では、図１３を参照して説明したステップ２０１〜２１１が実行される。
【００９５】
ここで、本実施形態では、図１９（ａ）に示すように、３次元形状計測手段１２がロボット１００の重心位置から見て距離（（ｎ＋１）×ｄ）メートル前方に位置する地面の３次元形状を計測するように位置決めされており（ｎは２以上の整数である。以下同様。）、ステップ４０３の“傾き角度予測処理”では、ロボット１００の本体１０から見て距離（（ｎ＋１）×ｄ）メートル前方に位置する地面の３次元形状データ（３次元点群データ）に基づいて、ロボット１００のロール角およびピッチ角の予測値(θ’Ｐ_roll,θ’Ｐ_pitch）が取得される。
【００９６】
続くステップ４０４では、先のステップ４０３で取得したロール角の予測値θ’Ｐ_rollおよびピッチ角の予測値θ’Ｐ_pitchの少なくとも一方が予め設定した転倒回避限界値を超えているか否かを判断する。その結果、いずれの予測値も転倒回避限界値以下であった場合は（Ｓ４０４、Ｎｏ）、処理はステップ４０５に進み、先のステップ４０３で取得した最新の予測値（θ’Ｐ_roll，θ’Ｐ_pitch）を待ち行列に書き込む（エンキュー）とともに、最古の予測値（θ’Ｐ_roll，θ’Ｐ_pitch）を待ち行列から読み出す（デキュー）。
【００９７】
ここでいう“待ち行列”とは、先入れ先出し方式（First-in First-out: FIFO）の待ち行列手段（メモリ構造）であり、本実施形態では、最大でｎ個の予測値（θ’Ｐ_roll，θ’Ｐ_pitch）を格納することができる待ち行列が用意される。
【００９８】
その後、続くステップ４０６で、移動量の累積加算値をリセットした後、続くステップ４０７で、先のステップ４０５で読み出した予測値（θ’Ｐ_roll，θ’Ｐ_pitch）に基づいて、逆運動学計算により、姿勢安定化手段１８の必要な制御量を算出する。
【００９９】
例えば、先のステップ４０５で読み出したロール角の予測値（θ’Ｐ_roll，）およびピッチ角の予測値（θ’Ｐ_pitch）が、それぞれ、φ[rad]およびθ[rad]であった場合には、これを相殺するために、ロボット１００の本体１０のロール角およびピッチ角を、それぞれ、-φ[rad]および-θ[rad]に変更する必要があり、ステップ４０６では、本体１０のロール角およびピッチ角を-φ[rad]および-θ[rad]に変更するために必要な姿勢安定化手段１８の制御量を逆運動学（IK）によって求める。なお、IKは、姿勢安定化手段１８が採用するの機械的構成に準じてあらかじめモデリングしておく。
【０１００】
続くステップ４０８では、先のステップ４０７で算出した制御量に基づいて、ロボット１００の移動速度を以下の手順で算出する。なお、以下では、姿勢安定化手段１８が一定の角速度ω[rad/s]で駆動する機械的構成を採用するものであり、先のステップ４０７において、姿勢安定化手段１８の制御量がステッピングモータの角度入力値[rad]として算出される場合を例にとって説明する。
【０１０１】
この場合、姿勢安定化手段１８を先のステップ４０７で算出した制御量Δψ[rad]（制御目標値と現在の角度入力値の差分）だけ駆動させるのに要する時間Δτは下記式（６）で表される。
【０１０２】
【数４】
2017010529.tif 000006
【０１０３】
ここで、ロボット１００が速度ｖ[ｍ／s]の等速直線運動で移動していることを仮定すると、ロボット１００が距離Δｄ[ｍ]前方の地面に到達するまでに要する時間Δｔは下記式（７）で表される。
【０１０４】
【数５】
2017010529.tif 000007
【０１０５】
ここで、本実施形態では、ロボット１００が傾き角度を予測した地面に到達した時点で、ロボット１００の姿勢安定化が完了している必要があるため、下記式（８）を満たしていなければならないことになる。
【０１０６】
【数６】
2017010529.tif 000008
【０１０７】
ここで、上記（６）〜（８）を整理すると、下記式（９）が導き出される。
【０１０８】
【数７】
2017010529.tif 000009
【０１０９】
ここで、ロボット１００の姿勢安定化が完了するタイミングが、ロボット１００が傾き角度を予測した地面に到達するタイミングよりも早くなりすぎないようにするためには、上記式（９）の右辺と左辺の差が大きくなりすぎないようにする必要がある。そこで、本実施形態では、ロボット１００が距離Δｄ[ｍ]前方の地面まで移動する際の移動速度ｖを下記式（１０）に基づいて算出する。
【０１１０】
【数１】
2017010529.tif 000010
【０１１１】
上記式（１０）において、係数βは、１未満の正の実数であり、マージンを考慮して事前に適切な値を設定しておく。これにより、ロボット１００が距離Δｄ[ｍ]前方の地面に到着するまでの時間が、姿勢安定化手段１８を制御量Δψ[rad]だけ駆動させる制御するのに要する時間と略等しくなる。
【０１１２】
先のステップ４０８で、ロボット１００の移動速度ｖが算出されたことを受けて、続くステップ４０９で、先のステップ４０７で算出した制御量Δψ[rad]で姿勢安定化手段１８を制御すると同時に、ステップ４１０で、先のステップ４０８で算出した移動速度ｖで走行手段１６を走行制御する。その後、処理は、ステップ４０１に戻って、上述した一連の処理を繰り返す。
【０１１３】
一方、先のステップ４０４の判断の結果、少なくとも一方の予測値が転倒回避限界値を超えている場合は（Ｓ４０４、Ｙｅｓ）、処理はステップ４１１に進む。
【０１１４】
ステップ４１１では、走行手段１６を制御して、ロボット１００を左方向（または右方向）に所定角度旋回させる。これにより、ロボット１００の進路が変更され、ロボット１００は、危険箇所を迂回することによって転倒を回避する。
【０１１５】
その後、続くステップ４１２で、移動量の累積加算値をリセットし、続くステップ４１３で、待ち行列をクリアする。その後、処理は、ステップ４０１に戻って、上述した一連の処理を繰り返す。
【０１１６】
以上、説明したように、本実施形態では、上記式（１０）に従ってロボット１００の移動速度ｖが決定されるので、ロボット１００が距離Δｄ[ｍ]前方の地面に到達するタイミングと、ロボット１００の姿勢安定化が完了するタイミングを概ね合致させることが可能となり、ロボット１００の安定した走行が実現される。
【０１１７】
ここで、図１８に示したステップ４０１〜４１０の処理の内容の理解を深めるために、図１９を参照してさらに説明を続ける。
【０１１８】
図１９（ｂ）に示すように、ロボット１００は、Ａ地点に到達した時点で、Ａ地点から見て所定距離（Δｄ×５）前方に位置するＦ地点の地面の３次元形状を取得し、取得した３次元形状に基づいて、Ｆ地点の地面にロボット１００が接地したときの本体１０の傾き角度の予測値（θ’Ｐ_roll，θ’Ｐ_pitch）を取得する。以下、このＦ地点に係る予測値を予測値[Ｆ]という。（他の地点に係る予測値についても同様。）
【０１１９】
これを受けて、ロボット１００は、図１９（ｂ）の右側に示すように、新たに取得した最新の予測値[Ｆ]を待ち行列に書き込むとともに、その時点で待ち行列に格納されている最古の予測値[Ｂ]を読み出す。
【０１２０】
これを受けて、ロボット１００は、移動量をリセットした後、予測値[Ｂ]に基づいて姿勢安定化手段１８の制御量を算出し、算出した制御量に基づいて、ロボット１００の移動速度[ｖＢ]を算出し、算出した制御量で姿勢安定化手段１８を制御すると同時に、算出した移動速度[ｖＢ]で走行手段１６を制御する。これを受けて、ロボット１００は、図１９（ｃ）に示すように、Ａ地点からＢ地点に向かって移動速度[ｖＢ]で移動する。ロボット１００がＢ地点に向かって移動する間、待ち行列には、図１９（ｃ）の右側に示すように、４つの予測値が[Ｃ]，[Ｄ]，[Ｅ]，[Ｆ]の順番で保持される。
【０１２１】
その後、図１９（ｄ）に示すように、ロボット１００は、Ｂ地点に到達した時点で、Ｂ地点から見て所定距離（Δｄ×５）前方に位置するＧ地点の地面の３次元形状を取得し、取得した３次元形状に基づいて、Ｇ地点に係る予測値[Ｇ]を取得する。
【０１２２】
これを受けて、ロボット１００は、図１９（ｄ）の右側に示すように、新たに取得した最新の予測値[Ｇ]を待ち行列に書き込むとともに、その時点で待ち行列に格納されている最古の予測値[Ｃ]を読み出す。
【０１２３】
これを受けて、ロボット１００は、移動量をリセットした後、予測値[Ｃ]に基づいて姿勢安定化手段１８の制御量を算出し、算出した制御量に基づいて、ロボット１００の移動速度[ｖＣ]を算出し、算出した制御量で姿勢安定化手段１８を制御すると同時に、算出した移動速度[ｖＣ]で走行手段１６を制御する。これを受けて、ロボット１００は、図１９（ｅ）に示すように、Ｂ地点からＣ地点に向かって移動速度[ｖＣ]で移動する。ロボット１００がＣ地点に向かって移動する間、待ち行列には、図１９（ｄ）の右側に示すように、４つの予測値が[Ｄ]，[Ｅ]，[Ｆ]，[Ｇ]の順番で保持される。
【０１２４】
以降、上述したのと同様の手順が繰り返される。
【０１２５】
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【０１２６】
なお、上述した実施形態の各機能は、Ｃ、Ｃ＋＋、Ｃ＃、Ｊａｖａ（登録商標）などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、フレキシブルディスク、ＥＥＰＲＯＭ、ＥＰＲＯＭなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
【符号の説明】
【０１２７】
１０…本体
１２…３次元形状計測手段
１４…傾き角度計測手段
１６…走行手段
１８…アクチュエータ
１８…姿勢安定化手段
２０…コンピュータ
２２…プロセッサ
２３…ＲＯＭ
２４…ＲＡＭ
２５…補助記憶装置
２６…通信インタフェース
２７…センサ・インタフェース
２８…入出力インタフェース
３０…地面形状計測装置
３２…３次元形状計測手段
３４…支持体
４０…重心位置制御装置
４２…チルトテーブル
４２ａ…支柱
４３…ボールジョイント
４４…ステッピングモータ
４５…平歯車
４６…リンク
４７…ボールジョイント
４８…錘
５０…ネットワーク
１００…ロボット
１０２…特徴量生成手段
１０３…学習データ生成手段
１０４…予測モデル生成手段
１０５…記憶領域
１０６…傾き角度予測手段
１０７…予測値補正手段
１０８…転倒回避制御手段
２００…情報処理装置
１０００…情報処理システム
【先行技術文献】
【特許文献】
【０１２８】
【特許文献１】特開２００９−２４１２４６号公報
【図１】
2017010529.tif 000011
【図２】
2017010529.tif 000012
【図３】
2017010529.tif 000013
【図４】
2017010529.tif 000014
【図５】
2017010529.tif 000015
【図６】
2017010529.tif 000016
【図７】
2017010529.tif 000017
【図８】
2017010529.tif 000018
【図９】
2017010529.tif 000019
【図１０】
2017010529.tif 000020
【図１１】
2017010529.tif 000021
【図１２】
2017010529.tif 000022
【図１３】
2017010529.tif 000023
【図１４】
2017010529.tif 000024
【図１５】
2017010529.tif 000025
【図１６】
2017010529.tif 000026
【図１７】
2017010529.tif 000027
【図１８】
2017010529.tif 000028
【図１９】
2017010529.tif 000029