(57)【要約】【課題】自律走行可能な自律移動装置において、自律移動装置において実行されている制御プログラムが正常に機能しなくなったときでも、自律移動装置の業務自体を停止させることなく、制御プログラムをリセットして再起動させ、業務続行を可能とする【解決手段】マイクロコンピュータ機能を有する駆動制御部３及びヒューマンインタフェース制御部７により、互いに相手の制御部で実行されている制御プログラムが正常に機能しているか否かをモニタし、いずれか一方の制御部で実行されている制御プログラムが正常に機能してないとき（機能停止）は、その正常に機能していない制御プログラムをリセットして再起動させる。制御プログラムが正常に機能していないときは、所定の信号が出力されないか、又は所定の信号が出力される周期が略一定でなくなるので、制御プログラムの実行中に所定の信号を略一定の周期で出力させ、出力される信号をモニタすることにより、制御プログラムが正常に機能しているか否かを判断することができる。【選択図】図１
2005149376.tif 000002
【特許請求の範囲】
【請求項１】
自律的に移動するための駆動部と、
前記駆動部を制御するための駆動制御部と、
自律的に移動可能な範囲の地図を記憶した地図記憶部と、
移動の際、経路上及びその近傍に障害物が存在するか否かを検出する計測部と、
操作者から指令の入力及び操作者に対して自律移動装置の状態を表示するためのヒューマンインタフェース部と、
前記ヒューマンインタフェース部を制御するためのヒューマンインタフェース制御部とを備え、
前記駆動制御部及び前記ヒューマンインタフェース制御部は、それぞれ制御プログラムの実行中に略一定の周期で所定の信号を出力し、
前記駆動制御部は、前記ヒューマンインタフェース制御部から出力される信号をモニタし、前記ヒューマンインタフェース制御部で実行されている制御プログラムが正常に機能しているか否かを判断し、
前記ヒューマンインタフェース制御部は、前記駆動制御部から出力される信号をモニタし、前記駆動制御部で実行されている制御プログラムが正常に機能しているか否かを判断し、
前記駆動制御部又は前記ヒューマンインタフェース制御部で実行されている制御プログラムが正常に機能していないときに、その正常に機能していない制御プログラムをリセットして、再起動させることを特徴とする自律移動装置。
【請求項２】
自律的に移動するための駆動部と、
前記駆動部を制御するための駆動制御部と、
自律的に移動可能な範囲の地図を記憶した地図記憶部と、
移動の際、経路上及びその近傍に障害物が存在するか否かを検出する計測部と、
操作者から指令の入力及び操作者に対して自律移動装置の状態を表示するためのヒューマンインタフェース部と、
前記ヒューマンインタフェース部を制御するためのヒューマンインタフェース制御部と、
前記駆動制御部及び前記ヒューマンインタフェース制御部で実行されている制御プログラムが正常に機能しているか否かを判断する制御状態判断部を備え、
前記駆動制御部又は前記ヒューマンインタフェース制御部で実行されている制御プログラムは、それぞれ所定のルーチンを繰り返すごとに出力される所定の信号を出力し、
前記制御状態判断部は、前記駆動制御部及び前記ヒューマンインタフェース制御部から出力される信号をモニタし、前記駆動制御部又はび前記ヒューマンインタフェース制御部から出力される信号が正常に機能していないと判断したときに、その制御プログラムをリセットし、再起動させることを特徴とする自律移動装置。
【請求項３】
前記ヒューマンインタフェース制御部で実行されている制御プログラムが正常に機能していないと判断すると、前記駆動制御部は、前記駆動部を制御して、前記地図記憶部に記憶されている地図上のあらかじめ設定された場所又は前記計測部により障害物の存在が検出されていない場所に移動して、前記ヒューマンインタフェース制御部で実行されている制御プログラムをリセットして、再起動させることを特徴とする請求項１又は請求項２に記載の自律移動装置。
【請求項４】
前記ヒューマンインタフェース制御部で実行されている制御プログラムが再起動された後、前記駆動制御部は、前記ヒューマンインタフェース制御部に対して、前記制御プログラムが正常に機能しなくなる直前の状態に復旧させるために、所定の信号又はデータを出力することを特徴とする請求項１乃至請求項３のいずれかに記載の自律移動装置。
【請求項５】
前記駆動制御部で実行されている制御プログラムが正常に機能していないと判断すると、前記ヒューマンインタフェース制御部は、前記駆動部への電源供給を遮断して移動を停止させると共に、前記駆動制御部で実行されている制御プログラムをリセットして、再起動させることを特徴とする請求項１又は請求項２に記載の自律移動装置。
【請求項６】
前記駆動制御部で実行されている制御プログラムが再起動された後、前記ヒューマンインタフェース制御部は、記憶している最終位置データを前記駆動制御部に出力し、前記駆動制御部は前記最終位置データを用いて、前記地図記憶部に記憶されている地図上における自己の現在位置を特定することを特徴とすることを特徴とする請求項５に記載の自律移動装置。
【請求項７】
前記駆動制御部で実行されている制御プログラムが再起動された後、前記駆動制御部は、前記計測部による計測結果と前記特定された地図上における自己の現在位置を照合し、現在位置を修正することを特徴とする請求項６に記載の自律移動装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動的に物の搬送、人の先導、人への追従などの業務を遂行する自律移動装置に関し、制御プログラムが正常に機能しなくなったときでも、安全かつ確実にそれらの業務を遂行することが可能な自律移動装置に関する。
【背景技術】
【０００２】
従来から、無人状態で自動走行可能な車両などにおいて、複数の動作を同時に制御するために、２つのマイクロコンピュータを用いて、それぞれ制御機能を分担させることが行われている。さらに、例えば特許文献１に記載されているように、これら２つのマイクロコンピュータを用いて、互いにもう１つのマイクロコンピュータが正常に機能しているか否かを診断させ、いずれか一方のマイクロコンピュータが正常に機能していないときは、車両を緊急停止させると共に、正常に機能していないマイクロコンピュータを特定して正常なものと交換することが行われている。
【０００３】
しかしながら、従来の方法によれば、マイクロコンピュータが完全に故障した場合だけでなく、単に制御プログラムが正常に機能しなくなった場合にも車両が緊急停止してしまう。また、単なる制御プログラムの異常で停止した場合であっても、マイクロコンピュータが正常であるか否かを判断した後、車両を再起動させなければ、作業を続行することができないという問題を有していた。
【特許文献１】特開平７−３６７２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、上記の問題を解決するためになされたものであり、制御プログラムが正常に機能しなくなったときでも、自律移動装置の業務自体を停止させることなく、制御プログラムをリセットして再起動させ、業務続行を可能とする自律移動装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために請求項１の発明は、自律移動装置であって、自律的に移動するための駆動部と、前記駆動部を制御するための駆動制御部と、自律的に移動可能な範囲の地図を記憶した地図記憶部と、移動の際、経路上及びその近傍に障害物が存在するか否かを検出する計測部と、操作者から指令の入力及び操作者に対して自律移動装置の状態を表示するためのヒューマンインタフェース部と、前記ヒューマンインタフェース部を制御するためのヒューマンインタフェース制御部とを備え、
前記駆動制御部及び前記ヒューマンインタフェース制御部は、それぞれ制御プログラムの実行中に略一定の周期で所定の信号を出力し、前記駆動制御部は、前記ヒューマンインタフェース制御部から出力される信号をモニタし、前記ヒューマンインタフェース制御部で実行されている制御プログラムが正常に機能しているか否かを判断し、前記ヒューマンインタフェース制御部は、前記駆動制御部から出力される信号をモニタし、前記駆動制御部で実行されている制御プログラムが正常に機能しているか否かを判断し、前記駆動制御部又は前記ヒューマンインタフェース制御部で実行されている制御プログラムが正常に機能していないときに、その正常に機能していない制御プログラムをリセットして、再起動させることを特徴とする。
【０００６】
また、請求項２の発明は、自律移動装置であって、自律的に移動するための駆動部と、前記駆動部を制御するための駆動制御部と、自律的に移動可能な範囲の地図を記憶した地図記憶部と、移動の際、経路上及びその近傍に障害物が存在するか否かを検出する計測部と、操作者から指令の入力及び操作者に対して自律移動装置の状態を表示するためのヒューマンインタフェース部と、前記ヒューマンインタフェース部を制御するためのヒューマンインタフェース制御部と、前記駆動制御部及び前記ヒューマンインタフェース制御部で実行されている制御プログラムが正常に機能しているか否かを判断する制御状態判断部を備え、
前記駆動制御部又は前記ヒューマンインタフェース制御部で実行されている制御プログラムは、それぞれ所定のルーチンを繰り返すごとに出力されるハイ状態とロー状態を繰り返す所定のパルス信号を出力し、前記制御状態判断部は、前記駆動制御部及び前記ヒューマンインタフェース制御部から出力される信号をモニタし、前記駆動制御部又はび前記ヒューマンインタフェース制御部から出力される信号が正常に機能していないと判断したときに、その制御プログラムをリセットし、再起動させることを特徴とする。
【０００７】
請求項３の発明は、請求項１又は請求項２の自律移動装置において、前記ヒューマンインタフェース制御部で実行されている制御プログラムが正常に機能していないと判断すると、前記駆動制御部は、前記駆動部を制御して、前記地図記憶部に記憶されている地図上のあらかじめ設定された場所又は前記計測部により障害物の存在が検出されていない場所に移動して、前記ヒューマンインタフェース制御部で実行されている制御プログラムをリセットして、再起動させることを特徴とする。
【０００８】
請求項４の発明は、請求項１乃至請求項３の自律移動装置において、前記ヒューマンインタフェース制御部で実行されている制御プログラムが再起動された後、前記駆動制御部は、前記ヒューマンインタフェース制御部に対して、前記制御プログラムが正常に機能しなくなる直前の状態に復旧させるために、所定の信号又はデータを出力することを特徴とする。
【０００９】
請求項５の発明は、請求項１又は請求項２の自律移動装置において、前記駆動制御部で実行されている制御プログラムが正常に機能していないと判断すると、前記ヒューマンインタフェース制御部は、前記駆動部への電源供給を遮断して移動を停止させると共に、前記駆動制御部で実行されている制御プログラムをリセットして、再起動させることを特徴とする。
【００１０】
請求項６の発明は、請求項５の自律移動装置において、前記駆動制御部で実行されている制御プログラムが再起動された後、前記ヒューマンインタフェース制御部は記憶している最終位置データを前記駆動制御部に出力し、前記駆動制御部は前記最終位置データを用いて前記地図記憶部に記憶されている地図上における自己の現在位置を特定することを特徴とする。
【００１１】
請求項７の発明は、請求項６の自律移動装置において、前記駆動制御部で実行されている制御プログラムが再起動された後、前記駆動制御部は、前記計測部による計測結果と前記特定された地図上における自己の現在位置を照合し、現在位置を修正することを特徴とする。
【発明の効果】
【００１２】
請求項１の発明によれば、駆動制御部及びヒューマンインタフェース制御部により、互いに相手の制御部で実行されている制御プログラムが正常に機能しているか否かをモニタし、いずれか一方の制御部で実行されている制御プログラムが正常に機能してないとき（機能停止）は、その正常に機能していない制御プログラムをリセットして再起動させるので、マイクロコンピュータなどの故障でなく、単に制御プログラムが正常に機能していないだけのときは、自律移動装置の業務をそのまま続行することができる。また、制御プログラムが正常に機能していないときは、所定の信号が出力されないか、又は所定の信号が出力される周期が略一定でなくなるので、制御プログラムの実行中に所定の信号を略一定の周期で出力させ、出力される信号をモニタすることにより、制御プログラムが正常に機能しているか否かを判断することができる。
【００１３】
請求項２の発明によれば、制御状態判断部を設けて駆動制御部及びヒューマンインタフェース制御部で実行されている制御プログラムが正常に機能しているか否かを判断しているので、請求項１の場合と同様に、マイクロコンピュータなどの故障でなく、単に制御プログラムが正常に機能していないだけのときは、制御プログラムをリセットし再起動させることにより、自律移動装置の業務をそのまま続行することができる。
【００１４】
請求項３の発明によれば、ヒューマンインタフェース制御部で実行されている制御プログラムが正常に機能していないときに、あらかじめ設定された場所又は障害物の存在が検出されていない場所に移動して、制御プログラムをリセットして再起動させるので、制御プログラムが再起動されるまでの間、人や他の自律移動装置などの通行を妨げることを防止することができる。
【００１５】
請求項４の発明によれば、ヒューマンインタフェース制御部で実行されている制御プログラムが再起動された後、例えばリセットされたことを示す信号や他の記憶装置などに記憶されていたバックアップデータなどをヒューマンインタフェース制御部に対して出力し、制御プログラムが正常に機能しなくなる直前の状態に復旧させるので、制御プログラムの再起動後、あたかも制御プログラムのリセットがなかったかのようにして、自律移動装置の業務を続行することができる。
【００１６】
請求項５の発明によれば、駆動制御部で実行されている制御プログラムが正常に機能していないときは、駆動部への電源供給を遮断して移動を停止させ、駆動制御部で実行されている制御プログラムをリセットして再起動させるので、自律移動装置が誤った方向に移動することを防止することができる。
【００１７】
請求項６の発明によれば、さらに、駆動制御部で実行されている制御プログラムが再起動された後、ヒューマンインタフェース制御部に記憶されている最終位置データを用いて地図上における自己の現在位置を特定するので、自律移動装置は、制御プログラムが正常に機能しなくなり停止した位置から業務を再開することができる。
【００１８】
請求項７によれば、駆動制御部で実行されている制御プログラムが再起動された後、計測部による計測結果と特定された地図上における自己の現在位置を照合し、現在位置を修正するので、制御プログラムが機能停止に陥ってから、自律移動装置が停止するまでに移動した距離分を修正することができ、自律移動装置の移動誤差を小さくすることができる。
【発明を実施するための最良の形態】
【００１９】
（第１の実施の形態）
本発明の第１の実施の形態ついて図面を参照して説明する。第１の実施の形態に係る自律移動装置の構成を図１に示す。
【００２０】
自律移動装置１は、一般的に、移動するためのモータを中心に構成された駆動部２と、駆動部２を制御するための駆動制御部３を備える。図１は、車輪により移動する自律移動装置（ロボット）１を例示している。この場合、車輪２１を回転させるモータ２２にはエンコーダ２３が取り付けられている。駆動制御部３は、エンコーダ２３からの信号を処理することにより、自律移動装置１の現在位置と進行方向を演算し、演算結果に基づいて目的とする地点へ自律移動装置１を移動させるように、モータ２２を制御する。
【００２１】
駆動制御部３には、第１記憶部４及び計測部５が接続されている。第１記憶部４は地図記憶部として機能し、自律移動装置１が自律的に移動可能な範囲の地図を記憶する。また、第１記憶部４は、駆動制御部３で実行される制御プログラムや、所定のデータなどを記憶する。駆動制御部３は、この地図上に、自律移動装置１の現在位置と進行方向の算出結果を重ねることにより、自律移動を制御する。計測部５は、例えば超音波センサやカメラなどのセンサを搭載し、自律移動装置１の走行路上及びその近傍に障害物が存在するか否かなどを計測する。
【００２２】
また、自律移動装置１には、操作者が指示を入力すると共に、自律移動装置１の状態を操作者又は周囲にいる人に表示するためのヒューマンインタフェース部６Ａ及び６Ｂと、ヒューマンインタフェース部６Ａ及び６Ｂを制御するヒューマンインタフェース制御部７が設けられている。さらに、ヒューマンインタフェース制御部７には、ヒューマンインタフェース制御部７で実行される制御プログラム、所定のデータ、操作者から入力された指示データなどを記憶するための第２記憶部８が接続されている。ヒューマンインタフェース制御部７と駆動制御部３とは、必要な情報を送受信するように、通信ケーブルや無線通信装置などにより接続されている。
【００２３】
次に、駆動制御部３及びヒューマンインタフェース制御部７の概略構成を図２に示す。駆動制御部３は、ＣＰＵ、ＲＯＭ及びＲＡＭなどで構成され、所定の制御プログラムを実行するマイクロコンピュータに相当する第１演算部３１と、第１演算部３１から出力される所定の信号やデータなどをヒューマンインタフェース制御部７に送信すると共に、ヒューマンインタフェース制御部７から送信される所定の信号やデータなどを受信する入出力インタフェースなどで構成された第１入出力部３２とを備えている。同様に、ヒューマンインタフェース制御部７は、ＣＰＵ、ＲＯＭ及びＲＡＭなどで構成され、所定の制御プログラムを実行するマイクロコンピュータに相当する第２演算部７１と、第２演算部７１から出力される所定の信号やデータなどを駆動制御部３に送信すると共に、駆動制御部３から送信される所定の信号やデータなどを受信する入出力インタフェースなどで構成された第２入出力部７２とを備えている。第１入出力部３２と第２入出力部７２とは、前述のように通信ケーブルや無線通信装置などにより接続されている。
【００２４】
駆動制御部３の第１演算部３１は、第１記憶部４に記憶されている制御プログラムを読み出して実行する。制御プログラムは、そのプログラムが正常に機能していること示すために、略一定の周期で所定の信号を出力するようにプログラムされている。所定の信号の一例として、第１入出力部３２のパラレルポートのうちいずれか１つのポートの出力が、制御プログラムが所定のルーチンを繰返す毎にハイ状態とロー状態を繰返すパルス信号Ｓ１とすることができる。パルス信号Ｓ１は、ヒューマンインタフェース制御部７の第２入出力部７２に入力される。ヒューマンインタフェース制御部７の第２演算部７１は、第２入出力部７２を介して入力されたパルス信号Ｓ１ハイ状態とロー状態の持続時間などを測定しつつ、パルス信号Ｓ１をモニタし、第１演算部３１で実行されている制御プログラムが正常に機能しているか否かを判断する。例えば、制御プログラムが正常に機能していないときは、パルス信号Ｓ１のハイ状態及び／又はロー状態（周期）が異常に長く又は短くなるので、第２演算部７１は、第１演算部３１で実行されている制御プログラムが正常に機能していないと判断することができる。
【００２５】
同様に、ヒューマンインタフェース制御部７の第２演算部７１は、第２記憶部８に記憶されている制御プログラムを読み出して実行する。制御プログラムは、制御プログラムが所定のルーチンを繰返す毎に所定の周期でハイ状態とロー状態を繰返すパルス信号Ｓ２を出力し、パルス信号Ｓ２は駆動制御部３の第１入出力部３２に入力される。駆動制御部３の第１演算部３１は、第１入出力部３２を介して入力されたパルス信号Ｓ２をモニタし、第２演算部７１で実行されている制御プログラムが正常に機能しているか否かを判断する。
【００２６】
ヒューマンインタフェース制御部７の第２演算部７１は、駆動制御部３の第１演算部３１で実行されている制御プログラムが正常に機能していないと判断すると、第２入出力部７２を介して第１演算部３１にリセット信号を出力する。なお、図２では、駆動制御部３及びヒューマンインタフェース制御部７のそれぞれのリセット端子にリレーの接点を設け、駆動制御部３のパラレルポートの出力を用いてヒューマンインタフェース制御部７側の接点を制御し、ヒューマンインタフェース制御部７のパラレルポートの出力を用いて駆動制御部３側の接点を制御するように構成されている。あるいは、リセット信号を、第１入出力部３２を介して第１演算部３１に入力してもよい。リセット信号が入力されると、第１演算部３１は、現在実行している制御プログラムを中止し、改めて第１記憶部４から制御プログラムを読み出して実行（再起動）する。
【００２７】
同様に、駆動制御部３の第１演算部３１は、ヒューマンインタフェース制御部７の第２演算部７１で実行されている制御プログラムが正常に機能していないと判断すると、第１入出力部３２を介して第２演算部７１にリセット信号を出力する。リセット信号が入力されると、第２演算部７１は、現在実行している制御プログラムを中止し、改めて第２記憶部８から制御プログラムを読み出して実行（再起動）する。
【００２８】
このように、駆動制御部３の第１演算部３１とヒューマンインタフェース制御部７の第２演算部７１を用いて、互いに相手方の制御部で実行されている制御プログラムが正常に機能しているか否かをモニタさせることにより、駆動制御部３で実行されている制御プログラム及びヒューマンインタフェース制御部７で実行されている制御プログラムが正常に機能しているか否かを判断することができる。さらに、相手方の制御部で実行されている制御プログラムが正常に機能していないと判断したときに、相手方の制御部にリセット信号を出力して制御プログラムを再起動させるので、自律移動装置１の業務を中止することなく、続行することができる。なお、マイクロコンピュータで構成された第１演算部３１又は第２演算部７１が故障している場合は、上記制御プログラムをリセットしても正常に機能しないので、所定回数だけリセット作業を繰り返しても制御プログラムが正常に機能しないときは、マイクロコンピュータの故障と判断することができる。
【００２９】
なお、駆動制御部３で実行されている制御プログラムが正常に機能しているときに出力される所定の信号と、ヒューマンインタフェース制御部７で実行されている制御プログラムが正常に機能しているときに出力される所定の信号は同じ信号であってもよいし、異なる信号であってもよい。例えば、所定の信号がパルス信号である場合、パルス信号の周波数（又は周期Ｔ１とＴ２）を変えることにより、後述する第２の実施の形態のように、駆動制御部３及びヒューマンインタフェース制御部７以外の他のマイクロコンピュータ機能を有する制御状態判断部により、どちらの制御部で実行されている制御プログラムが正常に機能しなくなったのかを、正常に機能している制御プログラムから出力される信号の周波数に基づいて判断することができる。
【００３０】
このような構成により、駆動制御部３及びヒューマンインタフェース制御部７のいずれかで実行されている制御プログラムが、何らかの原因により機能停止状態となった場合、もう一方の制御部がそれを検知し、機能停止状態となった方の制御部で実行されている制御プログラムをリセットして再起動させるので、自律移動装置１の全体の機能を停止させることなく、自動的に復旧させることができる。また、誤った指示を受けて駆動部３が動作することを防止することが可能となる。
【００３１】
次に、上記自律移動装置１における制御プログラムのリセット及び再起動動作について説明する。図３のフローチャートは駆動制御部３による動作を示すものであって、自律移動装置１の移動中に、ヒューマンインタフェース制御部７で実行されている制御プログラムが何らかの原因により機能停止し、これを駆動制御部３が検出した場合に、自律移動装置１を所定の場所に待避させて、機能停止した制御プログラムをリセットして再起動させるものである。
【００３２】
第１記憶部（地図記憶部）４に記憶されている地図上には、１ヶ所以上の待避場所があらかじめ設定されている。通常、操作者により自律移動装置１が移動する目的地が設定され（Ｓ１）、駆動制御部３は、制御プログラムを実行して駆動部２を制御し、設定された目的地に向かって移動を行う（Ｓ２）。自律移動装置１の移動中、駆動制御部３は、ヒューマンインタフェース制御部７で実行されている制御プログラムが正常に機能しているか否かをモニタしている（Ｓ３）。そして、エンコーダ２３や計測部２の出力などを用いて、目的地に到着する（Ｓ４、Ｓ５）まで、駆動制御（Ｓ２）及び制御プログラムのモニタ（Ｓ３）を続ける。
【００３３】
一方、駆動制御部３が、ヒューマンインタフェース制御部７で実行されている制御プログラムが正常に機能していないと判断すると（Ｓ３でＮＯ）、駆動制御部３は、現在位置から最も近い待避場所に目的地を変更し（Ｓ６）、変更した目的地に向けて移動を開始する。そして、待避地点に到着後（Ｓ７でＹＥＳ）、リセット信号を出力して、ヒューマンインタフェース制御部７で実行されている制御プログラムをリセットして再起動させる（Ｓ８）。制御プログラムの再起動後、ステップＳ１に戻って、当初の目的地に向けて再び移動を開始する。
【００３４】
このように、ヒューマンインタフェース制御部７で実行されている制御プログラムが正常に機能していないときに、あらかじめ設定された待避場所に移動して、制御プログラムをリセットして再起動させるので、制御プログラムが再起動されるまでの間、人や他の自律移動装置などの通行を妨げることを防止することができる。
【００３５】
図４に示す第１変形例では、第１記憶部（地図記憶部）４に記憶されている地図上には、待避場所があらかじめ設定されておらず、自律移動装置１自体の計測部を用いて、障害物の存在しない待避可能な場所を検出し、自律移動装置１を検出した場所に待避させて、機能停止した制御プログラムをリセットして再起動させるものである。なお、ステップＳ１からＳ５までは上記図３に示す場合と同じであるので、その説明は省略する。
【００３６】
駆動制御部３が、ヒューマンインタフェース制御部７で実行されている制御プログラムが正常に機能していないと判断すると（Ｓ３でＮＯ）、駆動制御部３は、計測部を用いて、障害物の存在しない待避可能な場所を検出する（Ｓ１１）。そして、検出した場所に目的地を変更し（Ｓ１２）、変更した目的地に向けて移動を開始する。そして、待避地点に到着後（Ｓ１３でＹＥＳ）、ヒューマンインタフェース制御部７で実行されている制御プログラムをリセットして再起動させる（Ｓ１４）。制御プログラムの再起動後、ステップＳ１に戻って、当初の目的地に向けて再び移動を開始する。
【００３７】
この第１変形例では待避場所があらかじめ設定されていないので、あらかじめ設定されている待避場所よりも近くに待避可能な場所が存在するときには、待避場所があらかじめ設定されている場合よりも早期に制御プログラムの再起動が可能になる。逆に、待避可能な場所がなかなか検出できないときには、制御プログラムの再起動までに時間が掛かることもあり得る。いずれにしても、制御プログラムが再起動されるまでの間、人や他の自律移動装置などの通行を妨げることを防止することができる。
【００３８】
図５に示す第２変形例では、ヒューマンインタフェース制御部で実行されている制御プログラムが一旦機能停止に陥った後、リセットされ再起動された場合に、ヒューマンインタフェース制御部７の状態を機能停止となる直前の状態に戻すことを可能とするものである。従って、ステップＳ１からＳ８までは上記図３に示す場合と同じであるので、その説明は省略する。
【００３９】
第２変形例では、制御プログラムが正常に機能しなくなる直前のヒューマンインタフェース制御部７の状態、例えば操作者により入力された目的地などの指示を、第２記憶部８又は駆動制御部３側の第１記憶部４などにバックアップとして記憶しておく。そして、ステップＳ８において、ヒューマンインタフェース制御部７で実行されている制御プログラムがリセットされ再起動されると、駆動制御部３は、ヒューマンインタフェース制御部７に対して、制御プログラムが正常に機能しなくなる直前の状態に復旧させるために、所定の信号又はデータを出力する（Ｓ９）。ヒューマンインタフェース制御部７は、駆動制御部３からの所定の信号を受信すると、第２記憶部８に記憶されているバックアップデータを読み出し、あるいは、駆動制御部３からバックアップデータが送信されたときには、そのバックアップデータを用いて、制御プログラムが正常に機能しなくなる直前の状態に復旧する（Ｓ１０）。その結果、制御プログラムの再起動後、あたかも制御プログラムのリセットがなかったかのようにして、自律移動装置１の業務を続行することができる。
【００４０】
図６のフローチャートは、ヒューマンインタフェース制御部７による動作を示すものであって、自律移動装置１の移動中に、駆動制御部３で実行されている制御プログラムが何らかの原因により機能停止し、これをヒューマンインタフェース制御部７が検出した場合に、自律移動装置１の移動をその場所で停止させて、機能停止した制御プログラムをリセットして再起動させるものである。
【００４１】
自律移動装置１が、操作者により指示された目的地に向かって走行しているときは、ヒューマンインタフェース制御部７は、ヒューマンインタフェース部６Ａ又は６Ｂに対して、自律移動装置１の走行中を示す所定の表示を行わせるように制御を行う（Ｓ２１）。この制御と並行して、ヒューマンインタフェース制御部７は、駆動制御部３で実行されている制御プログラムが正常に機能しているか否かをモニタしている（Ｓ２２）。そして、目的地に到着すると（Ｓ２３でＹＥＳ）、ヒューマンインタフェース部６Ａ又は６Ｂに対して、自律移動装置１が目的地に到着したことを示す所定の表示を行わせるように制御を行う（Ｓ２４）。
【００４２】
ヒューマンインタフェース制御部７が、駆動制御部３で実行されている制御プログラムが正常に機能していないと判断すると（Ｓ２２でＮＯ）、ヒューマンインタフェース制御部７は、駆動部２のモータ２２への電源供給を遮断して移動を停止させる（Ｓ２５）と共に、リセット信号を出力して、駆動制御部３で実行されている制御プログラムをリセットして再起動させる（Ｓ２６）。
【００４３】
このように、駆動制御部３で実行されている制御プログラムが正常に機能していないときは、駆動部２への電源供給を遮断して、その場所で移動を停止させ、駆動制御部３で実行されている制御プログラムをリセットして再起動させるので、誤った指示により自律移動装置１が誤った方向に移動することを防止することができる。
【００４４】
図７に示すように、ステップＳ２６において、駆動制御部３で実行されている制御プログラムを再起動した後、ヒューマンインタフェース制御部７から、記憶している最終位置データ、すなわち制御プログラムが機能停止した時点における地図上の自己位置を駆動制御部３に出力する（Ｓ２７）ように構成してもよい。それにより、自律移動装置１は、駆動制御部３で実行されている制御プログラムが正常に機能しなくなり停止した位置から業務を再開することができる。この場合、駆動制御部３により演算された地図上の現在位置は、第１記憶部４に記憶されると共に、ヒューマンインタフェース制御部７に転送されて、第２記憶部８にバックアップ保存されるように構成する。
【００４５】
さらに、図８に示すように、ステップＳ２７において、ヒューマンインタフェース制御部７から駆動制御部３に最終位置データが出力された後、駆動制御部３において再起動された制御プログラム上に現在位置が設定されている間、ヒューマンインタフェース６Ａ及び／又は６Ｂに対して、駆動制御部３における制御プログラムが再起動中であることを表示させる（Ｓ２８）ように構成してもよい。例えば、自律移動装置１に設けられているヒューマンインタフェース６Ａに、自律移動装置１の制御プログラムが再起動中であることを表示することにより、自律移動装置１の付近にいる人に対しては、自律移動装置１の制御プログラムが再起動中であることを知らせることができる。また、制御プログラムが再起動後には、自律移動装置１が再び動き出す可能性があることに注意を促すことができる。さらに、自律移動装置１から離れた位置に設けられている又は操作者が手にしているヒューマンインタフェース６Ｂに、自律移動装置１の制御プログラムが再起動中であることを表示することにより、目的地で自律移動装置１の到着を待っている人などに対して、自律移動装置１の到着が遅れることを知らせることができる。
【００４６】
図９に示す変形例では、駆動制御部３で実行されている制御プログラムが再起動された後、自律移動装置１の業務を再開するに当たって、自律移動装置１の現在位置を修正するものである。図９中、自律移動装置１の業務再開後のステップＳ３５からＳ４２は、図３におけるステップＳ１からＳ８までと基本的に同じであるため、その説明を省略する。
【００４７】
例えば図７のフローチャートのステップＳ２６において、駆動制御部３で実行されている制御プログラムがリセットされ再起動されたものとする。駆動制御部３は、ヒューマンインタフェース制御部７から最終位置データが出力されたか否かを判断する（Ｓ３１）。最終位置データが出力されている場合（Ｓ３１でＹＥＳ）、駆動制御部３は、最終位置データを用いて地図上における自己の現在位置を設定する（Ｓ３２）。また、計測部５を用いて、例えば地図上であらかじめ設定されている複数の標識までの距離を測定して、地図上の現在位置と照合する（Ｓ３３）。そして、地図上の現在位置と計測部５による計測結果とが一致していないときは、計測部５による計測結果を用いて地図上の現在位置を修正する（Ｓ３４）。そして、修正した現在位置から、自律移動装置１の業務を再開する（Ｓ３５〜Ｓ４２）。
【００４８】
このように、駆動制御部３で実行されている制御プログラムが再起動された時点における実際の自律移動装置１の位置として、制御プログラムが機能停止した時点における地図上の自己位置（最終位置データ）を計測部５による計測結果を用いて修正したデータを用いることにより、駆動制御部３で実行されている制御プログラムが機能停止に陥ってから、駆動部２への通電を遮断して、自律移動装置１が停止するまでに移動した距離分を修正することができ、自律移動装置１の移動誤差を小さくすることができる。
【００４９】
（第２の実施の形態）
次に、本発明の第２の実施の形態に係る自律移動装置の構成を図１０に示す。図１に示す第１の実施の形態と比較して、第２の実施の形態では、駆動制御部３とヒューマンインタフェース制御部７の間に、制御状態判別部９が接続されている点が異なる。その他の構成は同様であるため、その説明は省略する。
【００５０】
上記第１の実施の形態では、駆動制御部３及びヒューマンインタフェース制御部７により、互いに相手の制御部で実行されている制御プログラムが正常に機能しているか否かを判断させたが、第２の実施の形態では、別に制御状態判断部９を設けて、駆動制御部３及びヒューマンインタフェース制御部７で実行されている制御プログラムが正常に機能しているか否かを判断させている。
【００５１】
駆動制御部３、ヒューマンインタフェース制御部７及び制御状態判別部９の概略構成を図１２に示す。第１の実施の形態における図２と比較して、制御プログラムが所定のルーチンを実行するごとに出力される所定の信号、例えばパルス信号Ｓ１及びＳ２は、それぞれ制御状態判断部９に入力される。
【００５２】
制御状態判断部９は、駆動制御部３及びヒューマンインタフェース制御部７と同様に、ＣＰＵ、ＲＯＭ及びＲＡＭなどで構成され、所定の制御プログラムを実行するマイクロコンピュータに相当する第３演算部９１と、駆動制御部３及びヒューマンインタフェース制御部７から送信される所定の信号やデータなどを受信する入出力インタフェースなどで構成された第３入出力部９２で構成されている。
【００５３】
制御状態判断部９の第３演算部９１は、第３入出力部９２を介して入力される駆動制御部３及びヒューマンインタフェース制御部７からの所定の信号Ｓ１及びＳ２をモニタし、駆動制御部３及びヒューマンインタフェース制御部７で実行されている制御プログラムが正常に機能しているか否かを判断する。第２の実施の形態では、駆動制御部３及びヒューマンインタフェース制御部７のうち、どちらの制御部で実行されている制御プログラムが正常に機能しなくなったのかを識別するために、駆動制御部３で実行されている制御プログラムが正常に機能しているときに出力される所定の信号と、ヒューマンインタフェース制御部７で実行されている制御プログラムが正常に機能しているときに出力される所定の信号は異なる信号である。例えば、所定の信号がパルス信号である場合、パルス信号の周波数（又は周期Ｔ１とＴ２）を変えることにより、どちらの制御部で実行されている制御プログラムが正常に機能しなくなったのかを正確に識別することができる。
【００５４】
制御状態判断部９は，駆動制御部３の第１演算部３１又はヒューマンインタフェース制御部７の第２演算部７１で実行されている制御プログラムをリセットして再起動させるために、第３入出力部９２を介して第１演算部３１又は第２演算部７１にリセット信号を出力する。なお、図１１では、駆動制御部３及びヒューマンインタフェース制御部７のそれぞれのリセット端子にリレーの接点を設け、制御状態判断部９のパラレルポートの出力を用いてヒューマンインタフェース制御部７側及び駆動制御部３側の接点を制御するように構成されている。あるいは、リセット信号を、第１入出力部３２又は第２入出力部７２を介して第１演算部３１又は第２演算部７２に入力してもよい。リセット信号が入力されると、第１演算部３１又は第２演算部７２は、現在実行している制御プログラムを中止し、改めて第１記憶部４又は第２記憶部８から制御プログラムを読み出して実行（再起動）する。
【００５５】
このように、第２の実施の形態にれば、制御状態判断部９を設けて駆動制御部３及びヒューマンインタフェース制御部７で実行されている制御プログラムが正常に機能しているか否かを判断しているので、第１の実施の形態の場合と同様に、マイクロコンピュータなどの故障でなく、単に制御プログラムが正常に機能していないだけのときは、制御プログラムをリセットし再起動させることにより、自律移動装置１の業務をそのまま続行することができる。特に、駆動制御部３及びヒューマンインタフェース制御部７で実行されている制御プログラムが同時に機能停止になったときであっても、制御プログラムをリセットし再起動させることにより、自律移動装置１の業務をそのまま続行することができる。
【００５６】
なお、第２の実施の形態において、制御状態判断部９は、ノイズなどの影響を受けにくい場所に設置されることは言うまでもない。また、図３から図９に示す各フローチャートに示した動作例は、第２の実施の形態においてもそのまま応用できることは言うまでもない。
【００５７】
さらに、第１及び第２の実施の形態において、駆動制御部３における制御データや計測部５による計測データなどは、第１記憶部４に記憶されると共に、第２記憶部８にバックアップされるように構成してもよい。同様に、ヒューマンインタフェース制御部７における制御データや操作者により入力された指示データなどは、第２記憶部８に記憶されると共に、第１記憶部４にバックアップされるように構成してもよい。
【図面の簡単な説明】
【００５８】
【図１】本発明の第１の実施の形態に係る自律移動装置の構成を示すブロック図。
【図２】第１の実施の形態における駆動制御部及びヒューマンインタフェース制御部の概略構成をに示す図。
【図３】第１の実施の形態における駆動制御部による動作を示すフローチャート。
【図４】第１の実施の形態における駆動制御部による動作の第１変形例を示すフローチャート。
【図５】第１の実施の形態における駆動制御部による動作の第２変形例を示すフローチャート。
【図６】第１の実施の形態におけるヒューマンインタフェース制御部による動作を示すフローチャート。
【図７】第１の実施の形態におけるヒューマンインタフェース制御部による動作の変形例を示すフローチャート。
【図８】第１の実施の形態におけるヒューマンインタフェース制御部による動作の他の変形例を示すフローチャート。
【図９】第１の実施の形態におけるヒューマンインタフェース制御部による動作のさらに別の変形例を示すフローチャート。
【図１０】本発明の第２の実施の形態に係る自律移動装置の構成を示すブロック図。
【図１１】第２の実施の形態における駆動制御部、ヒューマンインタフェース制御部及び制御状態判断部の概略構成をに示す図。
【符号の説明】
【００５９】
１  自律移動装置
２  駆動部
３  駆動制御部
４  第１記憶部
５  計測部
６Ａ、６Ｂ  ヒューマンインタフェース部
７  ヒューマンインタフェース制御部
８  第２記憶部
９  制御状態判断部
【図１】
2005149376.tif 000003
【図２】
2005149376.tif 000004
【図３】
2005149376.tif 000005
【図４】
2005149376.tif 000006
【図５】
2005149376.tif 000007
【図６】
2005149376.tif 000008
【図７】
2005149376.tif 000009
【図８】
2005149376.tif 000010
【図９】
2005149376.tif 000011
【図１０】
2005149376.tif 000012
【図１１】
2005149376.tif 000013