物体と移動体との距離を測定する距離センサ部と、前記距離センサ部からの信号を得て、前記移動体の位置、または姿勢を推定する位置姿勢推定部と、前記位置姿勢推定部からの信号を得て、前記移動体を移動させる経路を発生させ、前記移動体を移動させるように制御する経路追従制御部と、前記位置姿勢推定部、前記経路追従制御部が参照する経路情報を有する外部記憶部と、前記移動体を移動させる移動機構部と前記距離センサ部、前記位置姿勢推定部、前記経路追従制御部、外部記憶部、移動機構部に電力を供給する電源部と、前記距離センサ部、前記位置姿勢推定部、前記経路追従制御部、外部記憶部、移動機構部、電源部とを支持する筐体とを備えており、前記経路追従制御部の制御によって、移動する移動体において、前記距離センサ部と、前記位置姿勢推定部とを再起動させる第1の再起動系統と、前記経路追従制御部を再起動させる第2の再起動系統とが分かれて再起動され、前記距離センサ部と、前記位置姿勢推定部の異常を検出する第1の異常検出部を設け、前記第1の異常検出部が異常を検出した場合には、第1の再起動系統によって前記距離センサ部と、前記位置姿勢推定部の再起動の処理が実行され、前記経路追従制御部の異常を検出する第2の異常検出部を設け、前記第2の異常検出部が異常を検出した場合には、第2の再起動系統によって前記経路追従制御部の再起動の処理が実行されることを特徴とする移動体。物体と移動体との距離を測定する距離センサ部と、前記距離センサ部からの信号を得て、前記移動体の位置、または姿勢を推定する位置姿勢推定部と、前記位置姿勢推定部からの信号を得て、前記移動体を移動させる経路を発生させ、前記移動体を移動させるように制御する経路追従制御部と、前記位置姿勢推定部、前記経路追従制御部が参照する経路情報を有する外部記憶部と、前記移動体を移動させる移動機構部と前記距離センサ部、前記位置姿勢推定部、前記経路追従制御部、外部記憶部、移動機構部に電力を供給する電源部と、前記距離センサ部、前記位置姿勢推定部、前記経路追従制御部、外部記憶部、移動機構部、電源部とを支持する筐体とを備えており、前記経路追従制御部の制御によって、移動する移動体において、前記距離センサ部からの検出が出来る範囲の前記筐体上に校正用構造物を設け、前記距離センサ部と前記校正用構造物との位置に対応して予め設定した設定値と、前記距離センサ部によって前記校正用構造物の位置を検出した検出値との差が所定値よりも大きい場合には、前記距離センサ部の異常を検出することを特徴とする移動体。請求項2記載の移動体において前記距離センサ部と前記校正用構造物との位置に対応して予め設定した設定値と、前記距離センサ部によって前記校正用構造物の位置を検出した検出値との差から、前記距離センサ部からの検出信号の値を補正する補正値を得ることを特徴とする移動体。物体と移動体との距離を測定する距離センサ部と、前記距離センサ部からの信号を得て、前記移動体の位置、または姿勢を推定する位置姿勢推定部と、前記位置姿勢推定部からの信号を得て、前記移動体を移動させる経路を発生させ、前記移動体を移動させるように制御する経路追従制御部と、前記位置姿勢推定部、前記経路追従制御部が参照する経路情報を有する外部記憶部と、前記移動体を移動させる移動機構部と前記距離センサ部、前記位置姿勢推定部、前記経路追従制御部、外部記憶部、移動機構部に電力を供給する電源部と、前記距離センサ部、前記位置姿勢推定部、前記経路追従制御部、外部記憶部、移動機構部、電源部とを支持する筐体とを備えており、前記経路追従制御部の制御によって、移動する移動体において、前記移動体には一定時間毎に変化するカウント値により経過した時間の計測が可能なタイマを設け、前記外部記憶部は、前記移動体が移動する範囲の地図データを記憶し、前記位置姿勢推定部は、前記地図データを読み込む地図読み込み部を有し、前記地図読み込み部からの出力値と、前記距離センサ部からの検出値から前記移動体の位置を推定し、前記距離センサ部からの検出値が時刻に対応させた距離センサデータとして前記外部記憶部に記憶され、前記位置姿勢推定部の再起動後に、前記位置姿勢推定部は、再起動される前の時刻を前記外部記憶部から読出し、再起動後の前記タイマから得られるカウント値と比較して前記外部記憶部から読出された時刻と、前記タイマから得られるカウント値に対応する時刻との差分が所定値よりも小さい場合には、前記地図読み込み部が前記地図データから読み込む範囲が前記地図データに記憶されている全範囲よりも小さいことを特徴とする移動体。物体と移動体との距離を測定する距離センサ部と、前記距離センサ部からの信号を得て、前記移動体の位置、または姿勢を推定する位置姿勢推定部と、前記位置姿勢推定部からの信号を得て、前記移動体を移動させる経路を発生させ、前記移動体を移動させるように制御する経路追従制御部と、前記位置姿勢推定部、前記経路追従制御部が参照する経路情報を有する外部記憶部と、前記移動体を移動させる移動機構部と前記距離センサ部、前記位置姿勢推定部、前記経路追従制御部、外部記憶部、移動機構部に電力を供給する電源部と、前記距離センサ部、前記位置姿勢推定部、前記経路追従制御部、外部記憶部、移動機構部、電源部とを支持する筐体とを備えており、前記経路追従制御部の制御によって、移動する移動体において、前記外部記憶部は、前記移動体が移動する範囲の地図データを記憶し、前記位置姿勢推定部は、前記地図データを読み込む地図読み込み部を有し、前記地図読み込み部からの出力値と、前記距離センサ部からの検出値から前記移動体の位置を推定し、前記距離センサ部からの検出値が距離センサデータとして前記外部記憶部に記憶され、前記位置姿勢推定部の再起動後に、前記位置姿勢推定部は、再起動される前の距離センサデータを前記外部記憶部から読出し、再起動後の前記距離センサ部からの検出値と比較して前記外部記憶部から読出された距離センサデータと、再起動後の前記距離センサ部からの検出値との差分が所定値よりも小さい場合には、前記地図読み込み部が前記地図データから読み込む範囲が前記地図データに記憶されている全範囲よりも小さいことを特徴とする移動体。請求項4、または請求項5記載の移動体において前記地図読み込み部が前記地図データから読み込む範囲を前記センサ部が検出出来る範囲に対応する範囲とすることを特徴とする移動体。異常の発生に伴って電源が切られるなどして通常でない状態に陥ったロボットが、作業が可能な状態になるまでには、コントローラのOSの起動待ちや各種データの読み込み、センサや移動機構の動作確認などの準備が必要であり、多くの時間を要する。本発明ではこれらの準備に要する時間を短縮し、移動体以下では、表現として、移動体に限らず、ロボットと称することとするの作業可能な状態への復帰の迅速化を課題とする。前記課題を解決する為に、ロボットが再起動される際に、コントローラやセンサの状態を判定し、異常な状態にないコントローラやセンサは再起動しないようにして、再起動するデバイスを減らすことで起動に要する時間を短縮するようにする。ここで、前記にて説明した内容を表現を変えて、更に説明する。物体と移動体との距離を測定する距離センサ部と、前記距離センサ部からの信号を得て、前記移動体の位置、または姿勢を推定する位置姿勢推定部と、前記位置姿勢推定部からの信号を得て、前記移動体を移動させる経路を発生させ、前記移動体を移動させるように制御する経路追従制御部と、前記位置姿勢推定部、前記経路追従制御部が参照する経路情報を有する外部記憶部と、前記移動体を移動させる移動機構部と、前記距離センサ部、前記位置姿勢推定部、前記経路追従制御部、外部記憶部、移動機構部に電力を供給する電源部と、前記距離センサ部、前記位置姿勢推定部、前記経路追従制御部、外部記憶部、移動機構部、電源部とを支持する筐体とを備えており、前記経路追従制御部の制御によって、移動する移動体において、前記距離センサ部と、前記位置姿勢推定部とを再起動させる第1の再起動系統と、前記経路追従制御部を再起動させる第2の再起動系統とが分かれて再起動され、前記距離センサ部と、前記位置姿勢推定部の異常を検出する第1の異常検出部を設け、前記第1の異常検出部が異常を検出した場合には、第1の再起動系統によって前記距離センサ部と、前記位置姿勢推定部の再起動の処理が実行され、前記経路追従制御部の異常を検出する第2の異常検出部を設け、前記第2の異常検出部が異常を検出した場合には、第2の再起動系統によって前記経路追従制御部の再起動の処理が実行されるようにする。また、前記距離センサ部からの検出が出来る範囲の前記筐体上に校正用構造物を設け、前記距離センサ部と前記校正用構造物との位置に対応して予め設定した設定値と、前記距離センサ部によって前記校正用構造物の位置を検出した検出値との差が所定値よりも大きい場合には、前記距離センサ部の異常を検出するようにする。また、前記距離センサ部からの検出が出来る範囲の前記筐体上に校正用構造物を設け、前記距離センサ部と前記校正用構造物との位置に対応して予め設定した設定値と、前記距離センサ部によって前記校正用構造物の位置を検出した検出値との差から、前記距離センサ部からの検出信号の値を補正する補正値を得るようにする。また、前記移動体には一定時間毎に変化するカウント値により経過した時間の計測が可能なタイマを設け、前記外部記憶部は、前記移動体が移動する範囲の地図データを記憶し、前記位置姿勢推定部は、前記地図データを読み込む地図読み込み部を有し、前記地図読み込み部からの出力値と、前記距離センサ部からの検出値から前記移動体の位置を推定し、前記距離センサ部からの検出値が時刻に対応させた距離センサデータとして前記外部記憶部に記憶され、前記位置姿勢推定部の再起動後に、前記位置姿勢推定部は、再起動される前の時刻を前記外部記憶部から読出し、再起動後の前記タイマから得られるカウント値と比較して、前記外部記憶部から読出された時刻と、前記タイマから得られるカウント値に対応する時刻との差分が所定値よりも小さい場合には、前記地図読み込み部が前記地図データから読み込む範囲が前記地図データに記憶されている全範囲よりも小さいようにする。また、前記外部記憶部は、前記移動体が移動する範囲の地図データを記憶し、前記位置姿勢推定部は、前記地図データを読み込む地図読み込み部を有し、前記地図読み込み部からの出力値と、前記距離センサ部からの検出値から前記移動体の位置を推定し、前記距離センサ部からの検出値が距離センサデータとして前記外部記憶部に記憶され、前記位置姿勢推定部の再起動後に、前記位置姿勢推定部は、再起動される前の距離センサデータを前記外部記憶部から読出し、再起動後の前記距離センサ部からの検出値と比較して、前記外部記憶部から読出された距離センサデータと、再起動後の前記距離センサ部からの検出値との差分が所定値よりも小さい場合には、前記地図読み込み部が前記地図データから読み込む範囲が前記地図データに記憶されている全範囲よりも小さいようにする。また、前記地図読み込み部が前記地図データから読み込む範囲を前記センサ部が検出出来る範囲に対応する範囲とするようにする。本発明によれば、従来よりも、より操作性などの改善された移動体、または、ロボットを提供可能となる。本発明に関する実施例について、以下、図面を用いて説明をする。また、以下の説明において、ロボットと説明しているのは、前述の移動体の実施例としてのものである。また、前述の説明では、各部の間で出力、入力、受信、送信されたり、参照されたり、記憶されたり、設定される情報、データ、信号等を説明によっては、異なる表現としているが、その文言によって、限定されるものではない。例えば、値として、説明していても、データにのみ限定されるものではなく、情報、信号として扱い、表現しても同様の意味を表すものとする。これは、以下の説明においても、同様とする。ここでは、まず本実施例で想定するロボットの機能の構成基本的な処理の流れについて述べ、続いて、ロボットが移動中に障害物に衝突して停止した異常な状態に陥ってから作業可能な状態に復帰する例を通して、ロボットで行われる処理について述べる。ロボットの機能の構成を図1に示す。ロボット0101は、位置姿勢推定コントローラ部0102と経路追従制御コントローラ0103、外部記憶部0128、距離センサ部0104、距離センサキャリブレーション治具部0130、異常検出センサ部0105、移動機構部0116、再起動制御部0117、電源0118と、これらを支持する筐体から構成される。また、図1には、図示していないが、タイマも構成上有しており、例えば、制御信号を発生する際の基準などに使用される。ここで、タイマとは、一定時間毎に変化するカウント値により経過した時間の計測が可能な機能を有するものとする。なお、このタイマは、前記構成部の一部の電源が切られたり、再起動されても、停止することなく、タイマのカウント値が継続して更新され、時刻の計測が可能であるとする。まず、ロボットの起動完了後の自動走行時に行われる処理について述べる。ロボット0101は、距離センサ制御部0104により、環境中の物体までの距離計測が可能な距離センサ部0104を制御し、距離センサから環境の物体までの距離データを得る。この距離データは、計測を行ったセンサから見た障害物の方向と計測を行った時刻が付加されたデータであり、次の処理に渡されると共に時刻付き距離センサデータログ0122として外部記憶部0128に記憶、記録される。従って、異常の発生などで、停止したり、電源が切られたり、再起動される場合には、停止したり、電源が切られたり、再起動される直前の距離センサから環境の物体までの距離データ、計測を行ったセンサから見た障害物の方向と計測を行った時刻が記憶、記録されることになる。距離センサ部0104より得られる距離データには、距離センサキャリブレーション治具部0130を計測した結果も含まれているものとする。距離センサキャリブレーション治具部0130は、距離センサ部0104からの距離方向と形状、さらに治具そのものの姿勢が既知で距離センサによる計測が可能な物体であり、距離センサ部0104の計測範囲内に入るようにしてロボットの筐体に設置されている。この計測結果を用いることで、次の処理によって距離センサ部0104の異常を検出する。位置姿勢推定用デバイス異常検出部0111では、位置姿勢推定コントローラ0102の起動時に予め読み込んでおいた距離センサキャリブレーションデータ0123に記録されている距離センサ部0104から距離センサキャリブレーション治具部0130までの距離と、距離センサ部0104より距離センサキャリブレーション治具部0130を実際に計測して得た距離との差を求め、この距離の差の大きさが閾値以内に収まるか否かで異常の有無の判定を行う。ここで、距離センサキャリブレーション治具部0130は、前述の校正用構造物に対応するものである。また、位置姿勢推定用デバイス異常検出部0111では、位置姿勢推定コントローラ初期化部0106、距離センサデバイスチェック部0107の処理において、異常が検出された場合にも、その異常を検出して、再起動制御部に検出したことを出力出来るものとする。より具体的に述べる。今、距離センサキャリブレーションデータ0123に記録されている距離センサ部0104から距離センサキャリブレーション治具部0130までの距離を基準距離と呼ぶものとする。これは、距離センサ部0104から治具部0130までの距離を距離センサ部0104より高精度な別のセンサによって求めた値、あるいは、距離センサ部0104と距離センサキャリブレーション治具部0130の配置を設計した際に得られる設計値を想定する。なお、距離センサ部0104よって、検出、測定されて得られる距離データが、前記基準距離に対応するように、対応付けが出来るようになされているものとする。例えば、距離センサのキャリブレーションを行う場合には、前記距離センサ部0104が前記距離センサキャリブレーション治具部0130、または前記校正用構造物を検出し、距離、位置を測定できるように、前記距離センサ部0104の向きを変更、調整することなどである。但し、簡易的には、前記距離センサの検出する初期位置が前記距離センサキャリブレーション治具部0130を検出し、距離、位置を測定できる位置とするものであっても良い。より具体的には、例えば、180度の範囲を回転して前記距離センサが筐体に設置されて、距離等を検出する場合について、説明する。前記距離センサの回転角の内で90度の方向を前記筐体の前進する向きであるとした場合に、0度の向きの前記筐体上に、前記距離センサキャリブレーション治具部0130、または前記校正用構造物を設けるようにする。こうすることで、前記距離センサの検出する初期位置を0度とすれば、前記距離センサキャリブレーション治具部0130、または前記校正用構造物を検出して、位置、距離を測定することが出来るようになる。前記に限定されることなく、種々の方法によって、前記基準距離と、前記距離センサ部0104からの検出される情報との対応付けが行われるものであってよい。この基準距離と距離センサ部0104による実測で得られた距離との差の大きさが閾値より大きい場合は、想定している距離と実測した距離の差が大きいことから、距離センサ部0104に故障などが生じているものと見なし、異常として検出する。なお、前記基準距離は、前記距離センサ部と前記校正用構造物との位置に対応して予め設定した設定値とするものとする。また、距離センサ部0104による実測で得られた距離は、前記距離センサ部0104によって、距離センサキャリブレーション治具部0130または前記校正用構造物の位置を検出した検出値とするものとする。距離の差の大きさが、所定値、若しくは閾値以内に収まっている場合は、想定した通りの距離が計測できているということから距離センサ部0104は正常動作しているものと見なし、処理を次に進める。この際、距離センサキャリブレーションデータ0123に記録されている距離センサ部0104から距離センサキャリブレーション治具部0130までの距離から、距離センサ部0104より距離センサキャリブレーション治具部0130を計測して得た距離を引いた値が補正値として距離データと共に次の処理に渡される。また、ここでの距離センサ部0104の異常の検出結果は、再起動制御部0117宛に出力され、保存される。続いて、距離センサデータ補正対応位置姿勢推定部0112にて、ロボット0101の環境内での位置姿勢の算出処理が行われる。ここではまず、前述の補正を距離センサ部0104の距離の計測誤差と見なして、この計測誤差を距離データに加えることで、距離データの補正を行うと同時に、レーザを照射した方向と計測で得た距離の情報から、各方向でレーザが物体に当たった位置を求めることで、距離データを環境の幾何形状データに変換する。続いて、地図読み込み部0113にて予め読み込まれていた環境の幾何形状を記録した地図データ0125とのマッチングを行う。例えば距離センサ部0104が床面に平行な面をスキャンするレーザ距離センサとした場合は、そのスキャン面での環境の幾何形状データと、環境の幾何形状を記録した画像による地図データとが重なる割合が最大となるときの地図データ上での幾何形状データの位置姿勢、つまりはレーザ距離センサの位置姿勢を求める。地図データ0125における距離センサ部0104の位置姿勢が求まるが、ロボットの位置姿勢を表す際にはロボットの筐体のどこを基準としてもよいため、求まったレーザ距離センサの位置姿勢をもってロボット0101の位置姿勢とする。また、この位置姿勢の推定結果には時刻が付加され、時刻付き位置姿勢推定データログ0124に記録される。経路計画部0114は、環境内でロボットが通りうる経路と部分的な経路同士のつながり方とこの経路の属性、例えば部分的な経路の長さや道幅が記録された経路グラフデータ0126を読み込んでおき、距離センサデータ補正対応位置姿勢推定部0112で得られた推定位置姿勢をもとに、目的地までの経路を求める。そして、移動機構制御部0115では、ロボットが追従しようとしている経路に対してロボットの位置姿勢がどの程度ずれているかを求め、このずれを小さくするように移動機構部0116の制御、すなわち、車輪の回転速度やステアリングの切れ角などを求めてモータなどへの指示を随時出し、ロボットの車体を経路に追従させる。位置姿勢推定用デバイス異常検出部0111と異常検出センサ部0105によって異常が検出されていない間は、以上の処理に従って、ロボットは目的地までの自動走行を行う。以下では、この自動走行中のロボットが異常を検出して停止し、再起動など行って走行可能な状態に復帰するまでの処理の流れについて述べる。自動走行中にロボットの異常検出センサ部0105により異常が検出されたとする。ここでは例として障害物との接触を検出するバンパセンサを異常検出センサ部0105として備え、これによりロボットの障害物への衝突を検出した状況を考える。異常検出センサ部0105による異常の有無の検出結果は移動制御機構制御部0115に送信されており、異常が検出されると、ロボットによる事故の被害を抑えるために移動制御機構制御部0115から移動機構部0116に対して停止信号が出される。移動機構制御部0115また、一方で距離センサ部0104と位置姿勢推定コントローラ部0102の異常の有無の検出結果は位置姿勢推定用デバイス異常検出部0111に送信されており、ここでの異常の検出結果に応じて再起動するデバイスを選択する。より具体的には、位置姿勢推定用デバイス異常検出部0111により、距離センサ部0104の異常が検出され、かつ異常検出センサ部0105でも異常が検出されていた場合は、再起動指示線0120と再起動指示線0121に対して、再起動制御部0117から再起動を指示する制御信号が出力され再起動が行われる。また、距離センサ部0104の異常が検出されず、異常検出センサ部0105のみで異常が検出されていた場合は、距離センサ部0104と位置姿勢推定コントローラ部0102が接続されている再起動指示線0120へは再起動の指示をする制御信号は、出力されず、経路追従制御コントローラ部0103接続されている再起動指示線0121のみの再起動の指示をする制御信号が出力される。また、位置姿勢推定コントローラ0102のみで異常が検出されていた場合は、距離センサ部0104と位置姿勢推定コントローラ部0102が接続されている再起動指示線0120へは再起動の指示をする制御信号のみが出力される。なお、図1においては、図示していないが、異常検出センサ部0105とは、別に経路追従コントローラ部0103の異常を検出する検出部を設け、異常を検出した場合に、検出後、再起動制御部0117に検出したことを出力し、再起動制御部0117から再起動を指示する制御信号が出力され前記経路追従コントローラ部0103の再起動が行われるようにしても良い。但し、前記経路追従コントローラ部0103の再起動は、経路追従コントローラ部0103の異常を検出する検出部からの異常を検出したこと、そして、異常検出センサ部0105からの異常を検出したことの両者に各々対応するように、再起動されるものであっても良い。以上により、正常動作している距離センサ部0104と位置姿勢推定コントローラ部0102の不要な停止再起動を回避され、ロボットが自動走行などの通常の動作が行える状態に復帰するまでの時間の短縮が図られる。例えば、距離センサ部0104にレーザ距離センサを用いているとする。この場合、スキャンするためにレーザ照射器を回転させる機構を一般に備えており、その回転が安定するまでに時間がかかることがあり、ロボットが作業できる通常状態への復帰が遅くなる要因となりうる。この他、センサ内のチップやトランジスタ等の部品の温度変化に因む計測誤差を抑えるため、温度変化が落ち着くまでの待ち時間、あるいはレーザ距離センサの内部やコントローラとの通信チェックやレーザ照射部カバーの汚れチェックなどの待ち時間も同様の復帰が遅くなる要因となる。距離センサ部0104の他にも、位置姿勢推定コントローラ部0102がOSを備えているならばその起動時間、各種プログラムやデータ読み込みの時間が必要となり、同じくロボットの復帰が遅くなる原因となる。距離センサ部0104に異常がない場合には、前述のとおり、距離センサ部0104や位置姿勢推定コントローラ部0102の停止再起動を行わないようにすることで、ここに挙げたようなそれぞれの待ち時間が削減され、ひいては、ロボットに異常が生じてから、通常の作業が行える状態に復帰するまでの時間の短縮が可能となる。以下、位置姿勢推定用デバイス異常検出部0111により、距離センサ部0104の異常が検出されていなかった場合と検出されていた場合の処理の流れについて順に述べる。再起動制御部0117に記録されている距離センサ部0104の異常の検出結果において、異常が検出されていなかった場合は、距離センサ部0104と位置姿勢推定コントローラ部0102が接続されている再起動指示線0121へは再起動の指示をする制御信号は、出力されず、経路追従制御コントローラ部0103に接続されている再起動指示線0120への再起動の指示をする制御信号が出力される。経路追従制御コントローラ0103では、まず経路追従制御コントローラ初期化部0108によって、BIOSの読み込みやOSの起動が行われ、自動走行時に経路追従制御コントローラ内で用いられる機能の各部、具体的には経路計画部0114、移動機構制御部0115が起動される。続いて移動機構デバイスチェック部0109で、移動機構部0116との通信チェックやブレーキ信号の送信などが行われる。経路追従制御コントローラ初期化部0108と移動機構デバイスチェック部0109のそれぞれで異常の有無が確認され、確認結果は移動機構制御部0115に記録される。また、起動された経路計画部0114では、環境内でロボットが通りうる経路と部分的な経路同士のつながり方とこの経路の属性、例えば部分的な経路の長さや道幅が記録された経路グラフデータ0126を読み込み、また、道幅に対してロボットの通行可否を確認するための車体の形状情報、あるいは移動機構制御部0116に最大移動速度最大回転角速度等移動機構の仕様や設定が記録された移動機構キャリブレーションデータ0127の読み込みが行われ、これらのデータは移動機構制御部0115に送信される。距離センサ部0104と位置姿勢推定コントローラ0102は動作を継続しているため、以上によってロボットは通常の作業が行える状態への復帰が完了となる。再起動制御部0117に記録されている距離センサ部0104の異常の検出結果において、異常が検出されていた場合は、距離センサ部0104と位置姿勢推定コントローラ部0102の停止再起動が行われる。位置姿勢推定コントローラ0102では、まず位置姿勢推定コントローラ初期化部0106によって、BIOSの読み込みやOSの起動が行われ、自動走行時に位置姿勢推定コントローラ内で用いられる機能の各部、具体的には距離センサ制御部0110、位置姿勢推定用デバイス異常検出部0111、距離センサデータ補正対応位置姿勢推定部0112、地図読み込み部0113が起動される。続いて距離センサデバイスチェック部0107で、距離センサ部0104との通信チェックやレーザ照射部カバーの汚れチェックなどが行われる。位置姿勢推定コントローラ初期化部0106と距離センサデバイスチェック部0107のそれぞれで異常の有無が確認され、確認結果は位置姿勢推定用デバイス異常検出部0111に記録される。また、起動された位置姿勢推定用デバイス異常検出部0111では、距離センサキャリブレーションデータ0123に記録されている距離センサ部0104から距離センサキャリブレーション治具部0130までの距離、つまりは前述の基準距離のデータの読み込みが行われる。また、地図読み込み部0113は、時刻付き位置姿勢推定データログ0124より、異常が検出されて停止した位置姿勢と時刻のデータを読み出し、現在の時刻との差を求め、時刻の差の大きさが閾値以内の場合、ロボットが異常を検出されて停止して、現在起動するまでに時間が経ってないため、ロボットが移動された可能性は低く、前回推定した位置姿勢に今現在も停止しているものとみなして、この位置姿勢を中心に、距離センサ部0104の計測範囲分だけの地図を地図データ0125から読み込む。これにより、地図データ0125の読み込み範囲が絞られ、地図データ0125の読み込みの待ち時間が短縮される。以上によって、距離センサ部0104と位置姿勢推定コントローラ部0102の起動が完了し、並行して起動している経路追従制御コントローラの起動に伴い、ロボットの通常の作業が行える状態への復帰が完了となる。前記では、時刻付き位置姿勢推定データログ0124から時刻のデータを読み出した実施例を説明したが、これに限定されるものではない。例えば、前述したタイマから、前記の様に異常で停止した時刻、または、タイマカウンタ値を得るようにするものであっても良い。以上が、ロボットを構成する機能毎に行われる処理の概要となる。続いて、ロボットが移動中に障害物に衝突して停止した異常な状態に陥ってから作業可能な状態に復帰する例を通して、ロボットで行われる処理について、より具体的なハードウェアの構成とソフトウェアの処理を踏まえて説明する。ロボット0101のハードウェアとこれに格納されるソフトウェアの構成を図2に示す。ロボットは、前述の位置姿勢コントローラ0102と経路追従制御コントローラ0103に加え、外部記憶装置0208、レーザ距離センサ0209、バンパセンサ0210、再起動制御コントローラ0211、移動機構0212、ディスプレイ0213、入力機器0214、これらの機器同士が通信するための通信線0204より構成される。なお、図2では基本的に処理の流れに関わる通信線のみ表記しており、図1にあった電源の表記は省略している。ここでは距離センサ部0104として、レーザ距離センサ0209を用いるものとする。このセンサは、レーザを物体に照射してから、照射したレーザが物体によって反射してセンサに返ってくるまでの時間を計測することで、センサから物体までの距離を得るレーザ照射部を備え、さらにこのレーザ照射部を回転させながら、一定の回転角をなす方向毎にセンサから物体までの距離を計測することで、一定の角度範囲をスキャンし、スキャン面をなす平面内にある物体の幾何形状を計測するセンサである。本実施例では、スキャンする角度範囲を180度とし、この角度範囲において0.5度毎にレーザを照射し、物体までの距離を計測することを想定するがスキャンする角度範囲やレーザを照射する角度の刻み幅、距離の最大計測範囲などは異なっていてもよい。図3にロボット0310に搭載されたレーザ距離センサ0301によって環境中の物体を計測する様子を示す。同図はロボット0101に相当するロボットの車体を上から見下ろした様子を表している。この図において、レーザ0304は180度の角度範囲0302をスキャンし、この範囲において、センサのレーザ照射部の視点0303から環境中の物体までの距離として、例えば環境中の物体0306との距離0305を計測するものとする。本実施例では、以上のようなセンサを想定しているが、同様に物体の幾何形状の計測が可能なセンサであればセンサの方式は異なっていてもよい。例えばステレオカメラや、赤外線を面状に物体に照射することで画素毎の物体までの距離計測が可能なデプスカメラなどであってもよい。移動機構部0116としては、図3に示されるロボット0310を想定する。同ロボット0310には、前部にキャスタ0311が、また後部に駆動輪0312が備えられており、駆動輪の回転角速度の差を制御することで直進旋回を行えるようになっているものとする。しかし、環境内を移動する効果が得られるのであれば、無限軌道を備える車両、脚を備えるロボット、船舶、航空機、飛行船など他の移動機構であってもよい。また、本実施例においては、ロボットが自動走行する例を示しているが、ロボットは人が搭乗して操縦したり、あるいは遠隔からの通信によって操縦するようになっていてもよい。異常検出センサ部0105としては、ここでは非常停止ボタン0210を想定する。異常検出センサ部0105の異常の検出としては、非常停止ボタンの押し下げの検出の他に、バンパセンサによる衝突検出、電流センサによる過電流の検出、距離センサによるロボット周辺の障害物の検出、移動機構のエンコーダデータと加速度センサデータの比較によるスリップの検出、傾斜センサによる車体の揺れ傾きの検出など、様々な異常検出が考えられるが、ロボットの運用に合わせて異常を定義し、それを検出可能なセンサであれば方式や設置する位置数などは異なっていても良い。再起動制御部0117を、ここでは再起動制御コントローラ0211としているが、ここでは非常停止ボタン0210による異常検出結果や位置姿勢推定用デバイス異常検出プログラム0219などによる異常検出結果を受信し、これをもとにデバイスの再起動を促す信号の出力を制御するプログラムが搭載され、かつロボットやコントローラ、センサを駆動するための電源とは別に専用の電源を備えるマイコンを想定する。また、位置姿勢推定コントローラ0102は、プロセッサ0201、メモリ0202、記憶装置0203、OS0215、BIOS読み込みやOSの起動を行う位置姿勢コントローラ初期化プログラム0216、レーザ距離センサ0209との通信チェックなどを行うレーザ距離センサデバイスチェックプログラム0217、レーザ距離センサ0209から距離データを取得するレーザ距離センサ制御プログラム0218、位置姿勢推定用デバイス異常検出プログラム0219、レーザ距離センサデータと地図データとのマッチングによって位置姿勢を算出するレーザ距離センサデータ補正対応位置姿勢推定プログラム0220、地図の読み込み範囲を設定する地図読み込みプログラム0221から構成される。同様に、経路追従制御コントローラ0103は、プロセッサ0205、メモリ0206、記憶装置0207、OS0222、BIOS読み込みやOSの起動を行う経路追従制御コントローラ初期化プログラム0223、移動機構部0212との通信チェックやブレーキ信号の送信などを行う移動機構デバイスチェックプログラム0224、経路グラフデータ0230をもとに目的地に辿り着くための経路を算出する経路計画プログラム0225、経路に沿って車体が移動するように車輪の回転速度などを算出する移動機構制御プログラム0226から構成される。また、外部記憶装置0208には、レーザ距離センサデータ補正対応位置姿勢推定プログラム0220がマッチングに用いる地図データ0227、レーザ距離センサ0209より得られた距離データを時刻と共に記録した時刻付き距離センサデータログ0228、レーザ距離センサデータ補正対応位置姿勢推定プログラム0220によって得られるロボットの位置姿勢の推定結果を時刻と共に記録した時刻付き位置姿勢推定データログ0229、環境内でロボットが通りうる通路の長さや道幅が記録された経路グラフデータ0230、レーザ距離センサ0301からレーザ距離センサキャリブレーション治具0309までの距離である基準距離が記録されたレーザ距離センサキャリブレーションデータ0231、最大移動速度回転角速度等移動機構の仕様や標準移動速度等の設定が記録された移動機構キャリブレーションデータ0232が記録されている。ここで、レーザ距離センサキャリブレーション治具0309は、図1にて説明した距離センサキャリブレーション治具部0130に対応するものとする。なお、図3のプログラムやデータは、メモリにロードされた上で、プロセッサにより処理されることを想定しているが、これと同等の働きをするのであれば、FPGAFieldProgrammableGridArrayやCPLDComplexProgrammableLogicDeviceなどのプログラマブルなハードウェアで実現してもよい。また、プログラムやデータは、CDROM等の記憶媒体から移してもよいし、ネットワーク経由で他の装置からダウンロードしてもよい。また、プロセッサや記憶装置、移動機構など、ロボット0101を構成する各デバイスは、ここでは有線の通信線0204により互いに通信することを想定しているが無線であってもよく、また、通信が可能であれば、位置姿勢推定コントローラ0102と経路追従制御コントローラ0103、外部記憶装置0208、ディスプレイ0213、入力装置0214の各デバイスが物理的に遠隔にあってもよい。また、以上のハードウェアやソフトウェアは、実施形態に応じて、取捨選択してもよい。続いて、ロボットの起動が完了して通常の動作を行っているときの処理の流れについて述べ、その後に異常が検出されて再起動される際の処理の流れについて述べる。まず、ロボットの起動が完了して通常の稼動を行っているときの処理の流れ、より具体的には、図1の距離センサ部0104で計測を行い、距離センサ制御部0110位置姿勢推定用デバイス異常検出部0111地図読み込み部0113距離センサデータ補正対応位置姿勢推定部0112経路計画部0114を経て移動機構制御部0115により車体の制御が行われるまでの流れについて述べる。今、ロボットが起動され、位置姿勢コントローラ0102と経路追従制御コントローラ0103にて、BIOSやOSの読み込みなどの起動時の準備動作が終わり、自動走行用プログラム部距離センサ制御部0110、位置姿勢推定用デバイス異常検出部0111、距離センサデータ補正対応位置姿勢推定部0112、地図読み込み部1013、経路計画部0114、移動機構制御部0115に相当するプログラム群として、レーザ距離センサ制御プログラム0218、位置姿勢推定用デバイス異常検出プログラム0219、レーザ距離センサデータ補正対応位置姿勢推定プログラム0220、地図読み込みプログラム0221、経路計画プログラム0225、移動機構制御プログラム0226が起動された状態にあるとする。すなわち、位置姿勢コントローラ0102では、位置姿勢コントローラ初期化プログラム0216によるOS0215の読み込み、レーザ距離センサデバイスチェックプログラム0217によるレーザ距離センサ0209との通信チェックなどが行われ、続いてレーザ距離センサより計測結果を取り込むレーザ距離センサ制御プログラム0218とコントローラやセンサなどのデバイスの異常を検出する位置姿勢推定用デバイス異常検出プログラム0219、ロボットの位置姿勢推定を行うレーザ距離センサデータ補正対応位置姿勢推定プログラム0220、地図読み込み範囲を設定する地図読み込みプログラム0221が起動された状態にあり、また、経路追従制御コントローラ0103では、経路追従制御コントローラ初期化プログラム0223によるOS0222の読み込み、移動機構デバイスチェックプログラム0224による移動機構0212との通信チェックなどが行われ、続いて目的地までの経路を求める経路計画プログラム0225と車輪の回転速度などを求める移動機構制御プログラム0226が起動された状態にあるとする。ここまででロボットが通常の動作を行うための準備が完了となり、ここからは図5の処理の流れに沿って動作する。位置姿勢推定コントローラ0102と経路追従制御コントローラ0103のプログラム群が前述のように起動され、また準備動作が完了すると0501、目的地の設定を終了するかどうかの確認画面がディスプレイ0213に表示される。操作者は、ロボットに荷物の搬送などでロボットを移動させる場合は設定を行うことを入力装置0214により選択し0502、また、移動させる必要がなければ終了を選択して直ちにプログラムの終了となる0503。今、目的地の設定を行うとしたとすると、処理0504に進む。ここでは、ディスプレイ0213に表示される地図と搬送先の候補のリストから操作者が目的地を選択し、入力装置0214により設定する0505。ここでは、図4のように環境の地図データ0401が表示されている状態で、ロボット0406の目的地0403が設定されたとする。ロボットの移動開始時の位置が0402とすると、この位置0402から目的地0403までの移動経路0404が求められる0505。これは経路追従制御コントローラ0103の起動時に読み込まれた経路グラフデータ0230を用い、最短経路探索など行うことを想定する。最短経路探索の方法としては経路グラフにおける部分的な経路の距離と部分的な経路同士の接続情報をもとにダイクストラ法などで探索する方法などがあるが方式は異なっていてもよい。また、経路探索の基準として、距離が最短となる経路を求めることをここでは想定しているが、最長となる経路を求めるなど、他の基準であってもよい。続いてレーザ距離センサ制御プログラム0224によりレーザ距離センサ0209による距離データを得る。例えばロボットが図4の位置にまで移動していたとするとレーザ距離センサ0407によるスキャン範囲0403より、距離データが得られる0506。得られた距離データは位置姿勢推定用デバイス異常検出プログラム0219に送られ、ここでレーザ距離センサ0209の異常検出が行われる0507。この異常検出は、レーザ距離センサ0301のスキャン範囲に取り付けられたレーザ距離センサキャリブレーション治具0309を用いて行われる。今、レーザ照射部の視点0303から、レーザ距離センサキャリブレーション治具0309までの距離はレーザ距離センサキャリブレーションデータ0231に記録されており、また、距離データのどのデータがレーザ距離センサキャリブレーション治具0309を計測するデータなのか、つまりはレーザ距離センサキャリブレーション治具0309の方向もレーザ距離センサキャリブレーションデータ0231に記録されているものとする。また、位置姿勢推定用デバイス異常検出プログラム0219は起動時にこのデータを読み込んでいるものとする。これを用い、レーザ距離センサ制御プログラム0218より送られてきた実測による治具0309までの距離と、レーザ距離センサキャリブレーションデータ0231に記録されている基準距離との差を求め、この差の大きさが閾値以内の場合は、レーザ距離センサは正常動作しているものとみなし、閾値を越えた場合は異常が生じているものとみなす。この異常の検出結果は、再起動制御コントローラ0211に送られ、同コントローラ内に記憶、記録される。なお、ここでのレーザ距離センサキャリブレーションデータ0231に記録されている距離から治具0309を実測して得た距離を引いた値はセンサデータ補正値として、距離データと共に次の処理に送られる。なお、この治具0309について、図3では、センサの左側に1つだけ設置しているが、複数設置用いてもよい。続いて、レーザ距離センサデータ補正対応位置姿勢推定プログラム0220によって、まず、レーザ距離センサデータの補正が行われる0508。ここでは前の処理より送られてきたセンサデータ補正値を距離データに含まれる各方向の距離値に加えることで、治具0309の計測によって得られたレーザ距離センサ0209の計測誤差の補正を行う。また、ここで前述の通り、距離データは2次元の幾何形状データ0403に変換され、次の処理に渡される。続いて、得られた幾何形状データ0403と地図データ0401図2の0227とのマッチングが行われる0509。ここでは画像状に表現した幾何形状データ0401と同じく画像状に表現した地図データ0401を重ね合わせ、幾何形状データの中で障害物の存在を表す画素が地図データ0401上で障害物の存在を表す画素と重なる割合が最大となるときの地図データ上での幾何形状データの位置姿勢、つまりはレーザ距離センサの位置姿勢を求める。ここではこのレーザ距離センサの位置姿勢をロボットの位置姿勢とする。マッチングの手法としては、この他、センサデータと地図データをなす点のうち、点間距離が最短となる点同士を対応付けて、対応づけられた点間距離の総和が小さくなるように、つまりはセンサデータと地図データの幾何的特徴が最も重なり合うときのセンサデータと地図データ間の相対位置姿勢を求める、ICPIterativeClosestPointと呼ばれる手法の利用なども考えられるが、同様の効果が得られるならば手法は問わない。次にロボットが目的地に到着しているか否かの判定を行う0510。これは、前述の位置姿勢推定で得られた位置が目的地の座標から一定の距離内に入っているかどうかの判定によって行う。今、ロボットが目的地にまだ到着していとすると、経路計画プログラム0225によって、現在位置姿勢をもとに、経路計画で得られた経路に車体を移動させるための車輪の回転速度が算出される0512。続いて移動機構制御プログラム0226により、車輪の回転速度が所定の値となるように移動機構0212のモータに対する電流値の指示が出される0511。ロボットが移動していき、目的地に到着したと判定されたならば0510、目的地の設定確認の処理0502に戻る。以上が、ロボットが通常動作を行っている際の処理の流れとなる。次に、異常が検出されて再起動される際の処理の流れについて述べる。ロボットが通常の動作を開始すると、前述の通り、位置姿勢推定用デバイス異常検出プログラム0219による異常検出が行われ、結果が再起動制御コントローラ0211に送信される。この結果と、別途接続された異常検出用の非常停止ボタンの状態をもとに、再起動制御コントローラ0211は図6の流れに沿って処理を行う。具体的には、再起動制御コントローラ0211内のプログラムが開始されると0601、コントローラの停止の確認0602を経て、まず、非常停止ボタンの押し下げデータの取得0603と位置姿勢推定用デバイス異常検出プログラム0219より送られてくる異常検出データの取得0604が行われる。次に、レーザ距離センサ0209の状態と非常停止ボタン0210の状態に応じたデバイス毎の再起動の有無の判定を行う。まず、レーザ距離センサ0209と非常停止ボタン0210の両方にて異常が検出された場合0605、より具体的には、レーザ距離センサ0209による計測に大幅な誤差があり、また、非常停止ボタン0210の押し下げが判明した場合は、再起動制御コントローラを除く、位置姿勢推定と経路追従制御の両コントローラ、レーザ距離センサ0209、、を再起動する0606。レーザ距離センサ0209または非常停止ボタン0210のいずれかにのみ異常が検出された場合は、それぞれによって再起動の仕方が異なる。まず、レーザ距離センサ0209のみで異常が検出された場合0609、レーザ距離センサのみに異常が生じていることから、レーザ距離センサ0209とこれを制御している位置姿勢推定コントローラ0102の再起動の指示をする制御信号が出力され、これらのみが再起動される0607。また、非常停止ボタン0210のみで異常が検出された場合0611、正常動作しているレーザ距離センサ0209と位置姿勢推定コントローラ0102へは再起動の指示をする制御信号は、出力されず、経路追従制御コントローラ部0103のみの再起動の指示をする制御信号が出力される0610。なお、ここでは経路追従制御コントローラ部0103にセンサが接続されていないが、こちらに起動に時間の要するセンサやアクチュエータなどのデバイスがさらに接続されている場合は、その状態を移動機構制御部0115により監視しておき、それらのデバイスを経路追従制御コントローラ部0103の再起動に合わせて再起動するようにしてもよい。前述のとおり、レーザ距離センサ0209と位置姿勢推定コントローラ0102が動作可能な状態になるまでには時間を要するが、以上のように正常動作時しているデバイスの再起動を回避することで、ロボットが通常動作可能な状態になるまでの時間を短縮する。再起動された位置姿勢推定コントローラ0102の処理の流れを図7に示す。位置姿勢推定コントローラ0102が起動されると0701、位置姿勢推定コントローラ初期化プログラム0216による初期化動作0702として、BIOSの読み込み0705、OSの読み込み0706、OSとこれに関連するサービスソフトウェアの異常の確認が行われる0707。なお、ここでの異常の確認結果はメモリに一時的に記録される。続いて、位置姿勢コントローラ内の自動走行用プログラムとして、レーザ距離センサ制御プログラム0218、位置姿勢推定用デバイス異常検出プログラム0219、レーザ距離センサデータ補正対応位置姿勢推定プログラム0220、地図読み込みプログラム0221が起動される0708。続いて、レーザ距離センサデバイスチェックプログラム0217により、位置姿勢推定コントローラ0102に接続されているレーザ距離センサ0209との通信チェックが行われ0709、また、レーザ距離センサ自身によるチェック結果が取得される0710。これはレーザ距離センサそのものが行うレーザ照射部のカバー汚れのチェック結果などを受信するものである。既にメモリに記録済みのコントローラ初期化0702時の異常の検出結果と、処理0709や0710での異常の検出結果は合わせて位置姿勢推定用デバイス異常検出プログラムに送信され0711、プログラムは終了となる0704。位置姿勢推定コントローラ0102と同様に再起動された経路追従制御コントローラ0103の処理の流れを図8に示す。経路追従制御コントローラが起動されると0801、経路追従制御コントローラ初期化プログラム0223による初期動作0802として、BIOSの読み込み0805、OSの読み込み0806、OSとこれに関連するサービスソフトウェアの異常の確認が行われる。なお、ここでの異常の確認結果はメモリに一時的に記録される。続いて、経路追従制御コントローラ内の自動走行用プログラムとして、経路計画プログラム0225、移動機構制御プログラム0226が起動される0808。移動機構デバイスチェックプログラム0224により、経路追従制御コントローラ0103に接続されている移動機構0212との通信チェックが行われる0807。また、移動機構自身によるチェック結果が取得される0810。これは移動機構0212そのものが行うブレーキの動作チェック結果などを受信するものである。既にメモリに記録済みのコントローラ初期化0802時の異常の検出結果と、処理0809や0810での異常の検出結果は合わせて移動機構制御プログラムに送信され0811、プログラムは終了となる0804。続いて、起動された自動走行用プログラム群による準備が行われる。この準備に関わる処理の流れを図9に示す。自動走行用プログラム群の準備動作として、まず経路グラフデータ0230が読み込まれる。続けて地図データ0227の読み込みが行われる。このときの処理の流れを図10に示す。地図読み込みプログラム0221が開始されると1001、まず、レーザ距離センサ0209より距離データ、つまりはロボット再起動後の距離データを取得する1002。続いて、時刻付きレーザ距離センサデータログ0228よりロボットの再起動前で最新の距離データを取得する1003。次に、ロボットの再起動後の距離データの時刻と再起動前の距離データの時刻の差を求める1004。次に、ロボットの再起動後の距離データと再起動前の距離データ間のマッチングを行う1005。これは、レーザ距離センサデータ補正対応位置姿勢推定プログラム0220で行ったマッチング処理と同様の処理を行う。レーザ距離センサデータ補正対応位置姿勢推定プログラム0220では、地図データ0227に対して、幾何形状データが重なる割合を求めていたが、ここでは、再起動前後それぞれでの距離データを幾何形状データに変換した上で、これらが重なる割合を求める。ここまでで求めた時刻の差とマッチング割合に応じて地図データの読み込み範囲の設定を行う。まず、時刻の差が閾値以下であり、ロボットが停止されて再起動されるまでの時間が短いことによってロボットが移動していないと判定される場合、あるいは再起動前の幾何形状データと再起動後の幾何形状データのマッチング割合が閾値以上であり、レーザ距離センサ0555から見た周囲の環境が変化してないことによってロボットが移動していないと判定される場合1006には、時刻付き位置姿勢推定データログ0229より停止直前に記録された位置姿勢推定結果を取得する1007。この位置姿勢において、レーザ距離センサ0209による計測が可能な最大範囲を読み出し範囲と設定し、該当する範囲を地図データ0227より読み込む。このようにして、地図データ0227の読み込み範囲をロボットの停止の位置周辺に絞り込み、読み込みに要する時間を短縮する。処理1006において、時刻の差が閾値より大きい場合、あるいはマッチング割合が閾値より小さい場合はロボットの移動が想定される全域の地図データ0227を読み込み、地図データ0227の読み込み完了後、地図読み込みプログラム0213は自動走行時にロボットの移動に即して地図データ0227の読み込みを行うため、自動走行開始まで待機状態となる。地図データ0227の読み込みが完了すると、レーザ距離センサ制御プログラム0218により距離データが取得される0904。続いてこの距離データを用いて初期位置姿勢、すなわちロボット起動後の最初の位置姿勢の推定が行われる。この処理は、位置姿勢の推定に関する処理0509と同じ処理が行われる。以上によって、ロボットの起動時の準備動作が完了し0906、図5で示された通常の動作が可能な状態にロボットが復帰する。以上、前記実施例について、移動体、またはロボットの運用に際しては、障害物への衝突などの異常が検出された場合は、移動体、またはロボットを非常停止させ、障害物を取り除いた後にまたすぐに、移動体、またはロボットを再起動させることが考えられる。前記実施例にて説明をしているように、この移動体、またはロボットの再起動の際に、異常な状態にないコントローラやセンサについては再起動を行わず、異常な状態にあるデバイスを再起動させるようにすることで、移動体、またはロボットの作業への迅速な復帰を可能とする。