(57)【要約】【課題】  安価で再利用可能なナビゲーション及び堅牢な安全機構の提供。【解決手段】  制御信号に従ってロボットを動かす駆動ユニットと、ナビゲーション特徴を検出するナビゲーションセンサと、ナビゲーションセンサからの情報を受信し、ロボットの動きを計画するナビゲーションユニットと、ナビゲーションユニットによって計画された動きを表す動き情報に基づいて制御信号を生成する制御ユニットと、制御ユニットに結合された更なるセンサと、を有する自律移動ロボットが開示されいる。制御ユニットは、更なるセンサからの更なるセンサ情報を前処理し、前処理された更なるセンサ情報を予め定義されたフォーマットでナビゲーションユニットに提供する。ナビゲーションユニットによるロボットの動きの計画は、ナビゲーションセンサからの情報と、制御ユニットによって提供される前処理されたセンサ情報に基づいて行われる。【選択図】図２
2021527889.tif 000002
【特許請求の範囲】
【請求項１】
自律移動ロボットであって、
制御信号を受信し、前記制御信号に従って前記自律移動ロボットを動かすように構成された駆動ユニット（１７０）と、
ナビゲーション特徴を検出するためのナビゲーションセンサ（１２５）と、
前記ナビゲーションセンサ（１２５）に結合され、前記ナビゲーションセンサ（１２５）から情報を受信し、前記自律移動ロボットの動きを計画するように構成されたナビゲーションユニット（１４０）と、
前記ナビゲーションユニット（１４０）によって計画された動きを表す動き情報を受信し、前記動き情報に基づいて前記制御信号を生成するように構成された制御ユニット（１５０）と、
前記制御ユニット（１５０）に結合された更なるセンサ（１２０）と、
を有し、
前記制御ユニット（１５０）は、前記更なるセンサ（１２０）から更なるセンサ情報を受信し、前記更なるセンサ情報を前処理し、前処理された前記センサ情報を予め定義されたフォーマットで前記ナビゲーションユニット（１４０）に提供し、
前記ナビゲーションユニット（１４０）による前記自律移動ロボットの動きの計画は、前記ナビゲーションセンサ（１２５）からの情報と、前記制御ユニット（１５０）から提供された前処理されたセンサ情報に基づいて行われる
自律移動ロボット。
【請求項２】
請求項１に記載の自律移動ロボットであって、
前記ナビゲーションユニット（１４０）及び前記制御ユニット（１５０）は機能的に独立しており、前記前処理されたセンサ情報のための前記予め定義されたフォーマットは、前記更なるセンサ（１２０）の実装とは独立している
自律移動ロボット。
【請求項３】
請求項１又は請求項２に記載の自律移動ロボットであって、
前記制御ユニット（１５０）と前記ナビゲーションユニット（１４０）の両方が、同期したクロックジェネレータをそれぞれ有しており、
前記前処理されたセンサ情報のための前記予め定義されたフォーマットは、前記前処理されたセンサ情報に関連付けられたタイムスタンプを有し、及び／又は、前記ナビゲーションユニット（１４０）によって提供された前記動き情報は、計画された動きに関連付けられたタイムスタンプを有する
自律移動ロボット。
【請求項４】
請求項１乃至請求項３の何れか一項に記載の自律移動ロボットであって、
前記制御ユニット（１５０）及び前記ナビゲーションユニット（１４０）の両方は、異なるプロセッサ又はプロセッサコア上で実行されるソフトウェアによって少なくとも部分的に実装されている
自律移動ロボット。
【請求項５】
請求項１乃至請求項３の何れか一項に記載の自律移動ロボットであって、
前記ナビゲーションユニット（１４０）は、第１のメモリ又はメモリ領域が割り当てられた第１の計算ユニットを有し、前記制御ユニット（１５０）は、第２のメモリ又はメモリ領域が割り当てられた第２の計算ユニットを有し、
前記第１の計算ユニットは、前記自律移動ロボットの環境の地図を使用するナビゲーションソフトウェアを実行するように構成されている
自律移動ロボット。
【請求項６】
請求項５に記載の自律移動ロボットであって、
前記ナビゲーションソフトウェアは、前記第１の計算ユニット上で実行されると、前記ナビゲーションユニット（１４０）が、前記ナビゲーションセンサ（１２５）から受信した情報に基づいて前記自律移動ロボットの環境の地図を作成し、前記自律移動ロボットの前記地図上での位置及び向きを決定する
自律移動ロボット。
【請求項７】
請求項１乃至請求項６の何れか一項に記載の自律移動ロボットであって、
前記ナビゲーションユニット（１４０）は、特に前記自律移動ロボットの地図情報やステータス情報の提供のために外部デバイスとの通信を可能にする通信ユニット（１３０）のインターフェースを有する
自律移動ロボット。
【請求項８】
請求項７に記載の自律移動ロボットであって、
前記ナビゲーションユニット（１４０）は、前記通信ユニット（１３０）を介して受信したコマンドに応じて、前記自律移動ロボットの動きの計画を実行するように構成されている自律移動ロボット。
【請求項９】
請求項１乃至請求項８の何れか一項に記載の自律移動ロボットであって、
前記更なるセンサ（１２０）は、前記自律移動ロボットに近接する環境に関する情報を検出する安全センサ（１２２）を含み、及び／又は、
前記更なるセンサ（１２０）は、前記自律移動ロボットの現在の動きに関する情報を検出するモーションセンサ（１２３）を含み、及び／又は、
前記更なるセンサ（１２０）は、前記自律移動ロボットの状態に関する情報を検出するステータスセンサ（１２４）を含む
自律移動ロボット。
【請求項１０】
請求項１０に記載の自律移動ロボットであって、
前記モーションセンサ（１２３）が距離センサであり、前処理された前記センサ情報が、距離センサによって提供されたセンサ信号に依存する情報を含む
自律移動ロボット。
【請求項１１】
請求項１乃至請求項１０の何れか一項に記載の自律移動ロボットであって、
前記制御ユニット（１５０）は、前記ナビゲーションユニット（１４０）から受信した動き情報をチェックして、前記計画された動きが危険な状況を引き起こすかどうか、又は危険な状況を引き起こす可能性があるかどうかを、前記更なるセンサ情報を考慮して決定するように構成された安全モジュール（１５１）を含む
自律移動ロボット。
【請求項１２】
自律移動ロボットのための方法であって、
ナビゲーション特徴を検出するナビゲーションセンサによって提供される情報に基づいて、前記自律移動ロボットのナビゲーションユニット（１４０）で前記自律移動ロボットの動きを計画するステップと、
前記ナビゲーションユニット（１４０）によって計画された動きを表す動き情報を前記自律移動ロボットの制御ユニット（１５０）に送信するステップと、
前記制御ユニット（１５０）において、送信された前記動き情報に基づいて前記自律移動ロボットの駆動ユニット（１７０）の制御信号を生成するステップと、
更なるセンサ（１２０）から更なるセンサ情報を受信し、前記制御ユニット（１５０）によって前記更なるセンサ情報を前処理し、前処理された前記センサ情報を予め定義されたフォーマットで準備するステップと、
前記前処理されたセンサ情報を前記予め定義されたフォーマットで前記ナビゲーションユニット（１５０）に送信するステップと、
を有し、
前記ナビゲーションユニット（１４０）による前記自律移動ロボットの動きの計画は、前記ナビゲーションセンサ（１２５）からの情報と前記制御ユニット（１５０）によって提供された前記前処理されたセンサ情報に基づいて行われる
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、表面処理（例えば、床の清掃）、例えば、物体の運搬または領域の監視および検査を行うロボットなどの自律移動サービスロボット、およびそのような自律移動ロボットの制御方法に関する。
【背景技術】
【０００２】
近年、自律移動式ロボット、特にサービスロボットは、家庭環境だけでなく職場環境でもますます使用されている。例えば、自律移動ロボットは、床面の清掃、建物の監視、位置および活動に依存しない通信の実現、または物体の輸送に使用できる。
【０００３】
その際に、ＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  Ｍａｐｐｉｎｇ：同時位置特定およびマッピング）アルゴリズムを使用してターゲットのナビゲーションをするため環境の地図を生成するシステムがますます使用されている（例えば、非特許文献１参照）。ロボットの制御と監視に使用されるアルゴリズムは、使用されるセンサとアクチュエータ、およびロボットの特定の形状に関して高度に最適化され得る。これには、実装されたソフトウェアが大規模な適応開発でしか再利用できないという欠点がある。別のアプローチでは、さまざまなハードウェア構成をサポートするため、ソフトウェアに様々なレベルの抽象化が組み込まれる。これらの解決は、多くの場合、計算量が多いため、より高価なハードウェアが必要になる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】ＢＨ  Ｄｕｒｒａｎｔ−Ｗｈｙｔｅ  ａｎｄ  Ｔ．  Ｂａｉｌｅｙ著、「Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  Ｍａｐｐｉｎｇ  （ＳＬＡＭ）：  Ｐａｒｔ  Ｉ  Ｔｈｅ  Ｅｓｓｅｎｔｉａｌ  Ａｌｇｏｒｉｔｈｍｓ」、ＩＥＥＥ  Ｒｏｂｏｔｉｃｓ  ａｎｄ  Ａｕｔｏｍａｔｉｏｎ  Ｍａｇａｚｉｎｅ、第１３巻、第２号、９９〜１１０頁、２００６年６月
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ますますインテリジェントなシステムを開発し市場に出すという要求と共に、自律移動ロボットで使用される行動ルーチンの複雑さは絶えず増大している。しかし、複雑さが増すと、通常は、多くの複雑なソフトウェアアプリケーションと同様に、エラーに対し動作異常を起こす可能性が高くなる。これは、ロボットが危険な状況を検出するためのセンサを有しているにもかかわらず、例えば故障、認識されないプログラミングエラーまたは外部からの望ましくない影響により、ナビゲーションソフトウェア及び制御ソフトウェアが、検出された危険な状況に適切に応答しないことを意味する。ロボットが考えられるすべての危険な状況に適切かつ正確に反応するということを証明することは、ナビゲーションソフトウェア及び制御ソフトウェアの複雑さが増すにつれてかなりの労力を要することになる。このような機能安全性の証明は、特定の用途では法律で要求される場合がある。機能安全性の要求もさまざまな規格の対象となっている（例えば、ＥＮ／ＩＥＣ  ６１５０８およびＥＮ／ＩＥＣ  ６２０６１）。
【０００６】
したがって、本発明の基礎となる目的は、とりわけ、安価で再利用可能なナビゲーションソリューション、および自律移動ロボットのための堅牢な安全機構を有する自律移動ロボット及び対応する制御方法を提供することである。
【課題を解決するための手段】
【０００７】
上記目的は、請求項１に記載の自律移動ロボット及び請求項１２に記載の方法によって達成される。様々な例示的な実施形態及びさらなる開発は、従属請求項の主題である。
【０００８】
以下に、自律移動ロボットが記載される。一実施形態によれば、自律移動ロボットは、制御信号を受信し、前記制御信号に従って前記自律移動ロボットを動かすように構成された駆動ユニットと、ナビゲーション特徴を検出するためのナビゲーションセンサと、ナビゲーションセンサに結合されたナビゲーションユニットと、を有する。このナビゲーションユニットは、ナビゲーションセンサから情報を受信し、自律移動ロボットの動きを計画するように構成される。自律移動ロボットは、さらに、ナビゲーションユニットによって計画された動きを表す動き情報を受信し、動き情報に基づいて制御信号を生成するように構成された制御ユニットを有する。自律移動ロボットは、さらに、制御ユニットに結合され、更なるセンサを有し、制御ユニットは、更なるセンサから更なるセンサ情報を受信する。制御ユニットは、更なるセンサ情報を前処理し、前処理されたセンサ情報を予め定義されたフォーマットでナビゲーションユニットに提供する。ナビゲーションユニットによる自律移動ロボットの動きの計画は、ナビゲーションセンサからの情報と、制御ユニットから提供された前処理されたセンサ情報に基づいて行われる。このように構成されたロボットは、ナビゲーションユニットと制御ユニットを完全に機能的に分離することができる。さらに、対応する方法が記載される。
【発明の効果】
【０００９】
安価で再利用可能なナビゲーションソリューション、および自律移動ロボットのための堅牢な安全機構を有する自律移動ロボット及び対応する制御方法が提供できる。
【図面の簡単な説明】
【００１０】
【図１】例として、様々な自律移動ロボット及び様々な起こり得る危険な状況を示している。
【図２】自律移動ロボットの構成を例示するブロック図である。
【図３】自律移動ロボットの制御ユニットの例示的な構造と、ナビゲーションユニットとモータ制御とのインターフェースのブロック図である。
【図４】自律移動ロボットの下面の一例を示す上面図である。
【発明を実施するための形態】
【００１１】
本発明は、図に示される実施形態を用いて、以下でより詳細に説明される。図は必ずしも縮尺通りではなく、本発明は示されている態様に限定されない。むしろ、本発明の基礎となる原理を説明することに重点が置かれている。
【００１２】
図１は、自律的に活動を実行し、地図によりその環境をナビゲートする自律移動ロボット１００の様々な例、ならびに起こり得る危険な状況を示している。本願の意味における活動は、その環境におけるロボットの単なるナビゲーションを超えたものであり、例えば、床処理、床清掃、検査および監視活動、搬送作業、またはユーザの娯楽のための活動などが含まれる。
【００１３】
図１（ａ）は、例えば、床面を掃除、特に床面のゴミを吸い取るために構成された掃除ロボットを示す図である。掃除ロボットは、通常、少なくとも３つの車輪（通常、そのうち２つが駆動される）で前方に移動する（図１（ａ）には図示せず）。さらに、掃除ロボットの裏側には、通常、ロボット１００が床面上を移動する間に汚れを集めるための回転ブラシ及び／又は吸引ユニットなどが設けられている。図１（ｂ）に示すように、階段の段差のような立ち下がりエッジを越えて転倒すると、掃除ロボットが損傷する可能性がある。加えて、ロボット１００が、床面上に落下したり近くの物体又は人間にぶつかったりすると、床面、近くの物体、又は人間にも損傷が生じる可能性がある。したがって、一部の自律移動ロボット１００は、転落を回避するために階段の段差などの立ち下がりエッジを適時に検出することができる床面距離センサ（図１には図示せず）を有している。床面距離センサは、床検出センサ又は、床センサとも呼ばれる。
【００１４】
図１（ｃ）はテレプレゼンスロボットの一例を示す図である。テレプレゼンスロボットは、通常、例えば、ディスプレイ、スマートフォン、タブレットなどのようなインターフェース１０１（ヒューマン・マシン・インターフェース（ＨＭＩ）としても知られるユーザインターフェース）を有する。このインターフェース１０１は、ロボット１００の垂直アーム１０２の上端に取り付けられている。垂直アーム１０２の下端には、駆動モジュール１０３を有するロボット本体が取り付けられている。ロボット１００のスリムな形状の構成およびインターフェース１０１の垂直アーム１０２の上端部への取り付けにより、このようなテレプレゼンスロボットは比較的高い重心を有する。基本的に、ロボットは自身でバランスを取る。しかしながら、例えば、急勾配の表面上を移動するとき、ロボット１００はひっくり返る可能性があり、これにより装置が損傷を受ける可能性がある。加速度が高すぎたり、敷居や段差を超えたりした場合でも、ロボット１００の転倒が発生する可能性がある。また、ロボット１００が傾いたり、転倒したりすると、周囲の床面、近くの物や人が損傷する可能性がある。テレプレゼンスロボットの傾く一例は、図１（ｄ）に示されている。このため、テレプレゼンスロボットは、ロボット１００の状態（特に傾斜）、加速度および／または角速度を決定するように構成されたセンサ（図１には図示せず）を有することができる。同様に、テレプレゼンスロボットは、ロボットの走行挙動を適合させてロボットの傾きを回避するために敷居（例えば、ドア敷居）又は段差を検出するセンサを含むことができる。
【００１５】
図１（ｅ）は、補助ロボット、特に運搬ロボットの一例を示す図である。運搬ロボットは通常、運搬台１０４を有し、その上に、皿やグラスなどの搬送される物体が置かれる。運搬ロボットの裏面には、例えば車輪（図１（ｅ）には示されていない）が設けられ、これにより運搬ロボットは移動することができる。このようなロボット１００は、例えば、日常生活の中で高齢者を支援することができ、したがって高齢者が独立して生活することを可能にする。運搬ロボットにとって、輸送されるべき物体またはロボット１００全体の傾斜を回避するために衝突が回避されることが基本的に重要である。この目的のために、ロボット１００は、ロボット１００の環境内の静止または移動する物体または人を検出するように（場合によっては関連センサ信号処理を用いて）構成された多種多様なセンサ（例えばレーザ距離計、光学三角測量センサ、カメラなど）を有することができる。
【００１６】
したがって、基本的に、様々な方法を使用して、ロボットをその使用領域で自律的に移動させ、その際に自律移動ロボット１００にとって起こり得る危険な状況を認識し、認識された危険な状況に適切に対応することによって事故を回避することが可能である（それによって事故は回避されるか、少なくとも軽減される）。このようなロボット１００は通常、自律移動ロボット１００を制御するためのナビゲーションソフトウェア及び制御ソフトウェアを含む。しかしながら、制御モジュール内のプロセッサによって実行されるそのようなナビゲーションソフトウェア及び制御ソフトウェアは、ますます複雑になりつつある。ナビゲーションソフトウェア及び制御ソフトウェアの複雑さが増すと、望ましくないプログラミングエラーのリスクが高まる。さらに、ますます多くの自律移動ロボット１００がインターネットに接続されている。これにより、例えばユーザがロボット１００の近くにいなくても、ロボット１００を制御することができる。同様に、ロボット１００のファームウェア、特にナビゲーションソフトウェア及び制御ソフトウェアはインターネットを介して更新することができる。たとえば、ソフトウェアアップデートは自動的に、または、ユーザの要求に応じて、ダウンロードすることもできる。この機能は、オーバ・ジ・エア・プログラミング（ＯＴＡプログラミング）、ＯＴＡアップグレード、またはファームウェア・オーバ・ジ・エア（ＦＯＴＡ）とも呼ばれる。
【００１７】
しかしながら、自律移動ロボット１００をインターネットに接続することは、見知らぬ人がロボット１００にアクセスする危険（例えば、ロボットのいわゆるハッキング、クラッキング、またはジェイルブレイク）をもたらし、自律移動ロボット１００が危険な状況に正しく反応しないように自律移動ロボット１００に影響を与え、それにより事故が発生する恐れがある。ナビゲーションソフトウェア及び制御ソフトウェア全体は、ロボット１００自体、またはロボット内に配置された記憶媒体に格納することができる。しかしながら、ナビゲーションソフトウェア及び制御ソフトウェアの一部をクラウドサーバ等の外部装置に保存することも可能である。ナビゲーションソフトウェア及び制御ソフトウェアの一部が外部装置に格納されている場合、ロボット１００の一部は一般にもはやリアルタイム対応ではない。ロボット１００は、そのナビゲーションソフトウェア及び制御ソフトウェアのアルゴリズムが非決定論的モンテカルロ法または、例えばディープラーニング学習（ディープ機械学習としても知られる）などの機械学習を使用していることが知られている。モンテカルロアルゴリズムは、上限のある確率で誤った結果を出すことが許されているランダム化されたアルゴリズムである。通常は、決定論的アルゴリズムと比較して、モンテカルロアルゴリズムは効率的である。ディープラーニングは、通常、入力層と出力層との間に多数の隠れ層を有し、それによって大規模な内部構造を有する、人工ニューラルネットワークの一種の最適化方法である。モンテカルロアルゴリズムでも機械学習でも、因果関係は最初から決定されないため理解が困難である。このため、ロボット１００の安全な動作を証明し、事故を回避するためにロボット１００のナビゲーションソフトウェア及び制御ソフトウェアがいかなる危険な状況においても正しくかつ適時に反応することを保証することは非常に困難である。同時に、そのような新しいロボット制御方法の使用は、自律移動ロボット１００をより知的にするために必要である。改善された知能は、ロボット１００がユーザの生活およびそれらの環境により容易に適合することを可能にする。
【００１８】
したがって、ロボット１００の知能を制限することなく、安全が証明可能であるロボットの振る舞いを可能にすることが重要であるかまたは必要であり得る。一実施形態によれば、自律移動ロボット１００は、前記ナビゲーションソフトウェアを使用して経路及び作業計画を実行するナビゲーションユニットに加えて、リスク検出モジュールとも呼ばれる安全モジュールを含んでいる。ここに記載の例では、安全モジュールはナビゲーションモジュールから機能的に独立して動作する。基本的に、安全モジュールは、ナビゲーションモジュールから独立してロボットの行動を監視し、危険な状況を認識するように構成されている。検出された危険状況におけるロボットの行動が「誤り」、「危険」、または「不適切」であると見なされた場合、安全モジュールは適切な対策（安全対策）を開始することができる。対策としては、例えば、ロボット１００を停止させたり、ロボット１００の進行方向を変えたりすることが考えられる。この際、正しい動作を決定することよりも、安全ではないためどの動作を実行すべきでないかを決定することが通常容易であるという事実が利用される。
【００１９】
自律移動ロボットは、プライベート及びジネスの環境でますますサービスを提供している。基本的な機能の一つは、適切なセンサを用いて環境の地図を作成し、その地図を利用して自律的にナビゲーションを行うことである。ロボット工学のさらなる開発における根本的な問題は、使用されるソフトウェアとアルゴリズムが、駆動装置のモータ又はその他活動に必要な作業ユニット及びロボットに組み込まれたセンサなどの基盤となるハードウェアと強く結びついていることである。新しいロボットの構築におけるソフトウェアの再利用は、このような強い結びつきによって困難になっている。
【００２０】
この問題には２つのアプローチが知られている。１つは、ロボットの移動に必要なすべての要件を提供するモバイルプラットフォームを利用できるようにすることである。新しいアプリケーションは、このプラットフォーム上に構築する必要があり、このアプローチは柔軟性に欠けるものとなる。もう１つのアプローチは、ハードウェアに依存したモジュールとハードウェアに依存しないモジュールを分離して、ソフトウェアを強力にモジュール化することである。これは、高レベルのハードウェア抽象化が必要となる場合があり、通常、システムのパフォーマンスに悪影響を及ぼす。
【００２１】
対照的に、本発明の一実施形態に従って追求されるアプローチは、特定のハードウェアと関連するアルゴリズムの機能的な分離を目指している。これは、先に説明したナビゲーションユニットと安全モジュールの分離と組み合わせることができる。
【００２２】
図２は、機能的に分離された複数のユニットを有する自律移動ロボット１００の例示的な構造をブロック図で示している。一般に、ユニットは、独立したアセンブリ（ハードウェア）、特定のロボット使用領域で所望のタスクを実行するロボット１００を制御するためのソフトウェアのコンポーネント、又は、両方の組み合わせ（例えば、接続された周辺コンポーネントを備えた専用ハードウェア及び適切なソフトウェア及び／又はファームウェア）である。
【００２３】
本実施形態では、自律移動ロボット１００は、駆動ユニット１７０を含み、この駆動ユニット１７０は、例えば、電動モータ、歯車、車輪などを含み得る。ロボット１００は、例えば、床面の清掃またはアイテムの輸送などの特定のプロセスを実行する作業ユニット１６０（プロセスユニット）をさらに含むことができる。作業ユニット１６０は、例えば、床面を清掃するための清掃ユニット（例えば、ブラシ、吸塵装置）、トレイとして設計された高さ調整可能及び／又は旋回可能な運搬台、または物体をつかんで輸送するための把持アームであってもよい。テレプレゼンスロボットや監視ロボットなどの場合、作業ユニット１６０は必ずしも必要ではない。例えば、テレプレゼンスロボットは通常、空間的に互いに離れた複数の人の間で通信するために、たとえばマイク、カメラ、画面などを有するマルチメディアユニット（図１、インターフェース１０１を参照）を備え、ヒューマン・マシン・インターフェース２００に接続された複雑な通信ユニット１３０を備えている。別の例は、特別なセンサ（例えば、カメラ、モーションセンサ、マイクロフォン）を使用して監視走行で特定の（異常な）イベント（例えば、火災、光、無許可の人など）を検出し、それに応じて制御ステーションに通知できる監視ロボットである。
【００２４】
ロボット１００は、ヒューマン・マシン・インターフェース（ＨＭＩ）２００及び／又は他の外部デバイス３００への通信接続を確立するための通信ユニット１３０をさらに含むことができる。通信接続は、例えば、直接無線接続（例えば、ブルートゥース（登録商標））、ローカル無線ネットワーク接続（例えば、ＷｉＦｉまたはＺｉｇ−Ｂｅｅ）、またはインターネット接続（例えば、クラウドサービスへ）であってもよい。ヒューマン・マシン・インターフェース２００としては、例えば、タブレットＰＣ、スマートフォン、スマートウォッチ、コンピュータ又はスマートテレビが用いられる。場合によっては、ヒューマン・マシン・インターフェース２００は、ロボット１００に直接統合されてもよく、キー、ジェスチャ、及び／又は音声入出力を介して操作されてもよい。前述の外部ハードウェア及びソフトウェアの少なくとも一部分がヒューマン・マシン・インターフェース２００に配置されてもよい。外部デバイス３００の例は、計算および／またはデータを交換できるコンピュータおよびサーバ、追加情報を提供する外部センサ、または自律移動ロボット１００が恊働及び／又は情報を交換する他の家電製品（例えば、他のロボット）である。例えば、通信ユニット１３０を介して、自律移動ロボット１００に関する情報（例えば、バッテリ状態、現在の作業指示、地図情報など）が提供されてもよく、又は、例えば、自律移動ロボット１００の作業指示に関連する命令（例えば、ユーザコマンド）が受信されてもよい。
【００２５】
図２に図示された例によれば、ロボット１００は、情報を交換するように構成されたナビゲーションユニット１４０及び制御ユニット１５０を有し得る。この際に、制御ユニット１５０は、ナビゲーションユニット１４０によって生成された移動情報（動き情報）及び作業情報を受信する。移動情報は、例えば、計画された経路ポイント、経路セグメント（例えば円弧）、または速度情報である。経路ポイントは、例えば、現在のロボットの姿勢（姿勢は位置と向きを表す）を基準に指定することができる。例えば、経路セグメントの場合は、移動すべき距離と回転角度を指定することができる（距離がゼロの場合はその場で回転し、回転角度がゼロの場合は直進する）。速度情報としては、例えば、予め定められた時間駆動される並進速度と角速度とを用いることができる。このように、ナビゲーションユニット１４０は、特定の移動（例えば、特定の経路セグメント）を前もって計画し、これを（移動情報として）制御ユニット１５０に伝達する。制御ユニット１５０は、移動情報から駆動ユニット１７０に対する制御信号を生成するように構成されている。これらの制御信号は、駆動部のアクチュエータ（特にモータ）を制御するのに適した全ての信号とすることができる。例えば、差動駆動装置の左右の車輪の必要回転数であってもよい。代替的に、電圧及び／又は電流を変更することにより、モータを直接制御することができる。原則として、ナビゲーションユニット１４０から受信した移動情報から制御信号を生成するためには、ロボットの特定のハードウェア構成（アクチュエータの種類および位置）が知られていなければならないが、移動情報は、より抽象的なレベルで、主として使用されているハードウェアとは独立して決定される。このように、駆動ユニット１６０が変更された場合、必要な適応開発は制御ユニット１５０に限定される。
【００２６】
移動情報と同様に、作業情報を作業ユニット１６０の制御信号に変換してもよい。作業情報は、例えば、作業ユニットがアクティブであるか、どのような能力でアクティブであるかを記述することができる。例えば、作業ユニット１６０は、回転ブラシや吸引ユニットを備えた清掃ユニットであってもよい。作業情報には、清掃ユニットが現在アクティブであるかどうか、どの程度の強さで作業すべきかなどが含まれている。これにより発生した制御信号は、例えば、ブラシや吸引ユニットのモータの動力を直接制御する。ナビゲーションユニット１４０は、特に、ナビゲーションセンサ１２５から提供された情報を、前述した移動計画の立案や、ロボット使用領域の地図の構築・更新に利用する。このようなナビゲーションセンサ１２５は、例えば、非接触型の光センサ（例えば、三角測量センサ）であり得る。
【００２７】
さらに、制御ユニット１５０は、ロボットに固有のセンサ情報を収集する制御センサ１２０から情報を収集し得る。これには、例えば、ロボットの近くの環境における安全上重要な状況を検出するための安全センサ１２２が含まれる。安全センサの一例としては、前述した立ち下がりエッジを検出するための床面距離センサが挙げられる。他の安全センサ１２２は、障害物との接触を検出するための触覚センサ（例えば、接触スイッチ）、またはロボットの近くの障害物を検出するための近距離センサ（例えば、赤外線センサ）であり得る。これにより、障害物との意図しない衝突を良好に検出することができる。制御センサ１２０の別の例としては、モーションセンサ１２３があり、これは、制御ユニット１５０によって特別に制御されるロボット１００の動きを監視するために使用され、この動きは、実際には、ナビゲーションユニット１４０によって計画された動きと正確には一致しない。これには、例えば、ホイールエンコーダなどの走行距離計、加速度計、ジャイロスコープ（例えば、慣性計測ユニット（ＩＭＵ）に統合されたもの）などが含まれる。制御センサ１２０の別の例は、ロボット１００の傾き及びその変化を決定するための姿勢（位置）センサである。制御センサ１２０の他の例としては、ロボットの各部の状態を検知するためのステータスセンサ１２４が挙げられる。これには、例えば、駆動ユニットの消費電力が決定される電流計や電圧計などが含まれる。他のステータスセンサ（状態センサ）は、ロボットが床面に接触しているかどうかを判断するための車輪接触スイッチや、ブラシやゴミ入れなどの部品の有無を示すスイッチを含んでもよい。
【００２８】
制御センサ１２０の測定値は、制御ユニット１５０によって検知され、評価される。その結果は、標準化された形式でナビゲーションユニット１４０に提供され得る。これは、規則的な間隔で行ってもよいし、周期的な間隔で行ってもよいし、ナビゲーションユニット１４０からの要求があった後に行ってもよい。情報の種類はセンサに依存し、センサに典型的なセンサモデルにマッピングすることができる。例えば、差動駆動装置の場合、オドメトリデータには、車輪の１回転（ホイールエンコーダ）の端数を記述することができる。これにより、エンコーダに属する車輪がどれだけ距離を移動したかを判断することができる。差動駆動装置の両輪の組み合わせとその位置によって、走行距離と向きの変化が生じる。ナビゲーションモジュール１４０に渡されるオドメトリ情報は、最後の情報以降のロボットの位置及び向きの変化を示している。例えば、床面距離センサを用いて立ち下がりエッジを判定することができ、この判定には、多くの測定原理を用いることが可能である。制御ユニット１５０は、床面距離センサからの生データに基づいて、いずれかのセンサが立ち下がりエッジを検出したか否かを判定する。検出された立ち下がりエッジの位置は、ロボットの（例えば、差動駆動装置の運動中心から始まる）固定座標系に対する、トリガーされた床面距離センサの位置の形でナビゲーションユニット１４０に送信されてもよい。あるいは、センサに関連付けられた番号（ＩＤ）をナビゲーションユニット１４０に送信してもよい。ナビゲーションユニット１４０において、この番号（ＩＤ）から、予め決定されたパラメータからの、トリガーされた床面距離センサに関連付けられた位置が決定される。関連するパラメータ（センサの番号と位置）は、例えばナビゲーションユニットの初期化中にロードすることができる。これにより、データトラフィックが削減され、計算はナビゲーションユニット内のより強力なプロセッサに移行される。このように、制御センサ１２０によって提供される情報は、特定のセンサとは独立した抽象化された形でナビゲーションユニット１４０に渡される。
【００２９】
このようなセンサの他の例としては、障害物（例えば、衝突）との接触を検出するための触覚センサが挙げられる。検出された接触に関する対応する情報は、イベントが検出された場合に、（立ち下がりエッジが検出された場合と同様に）トリガーされたセンサの位置または番号（ＩＤ）を用いて送信できる。衝突を回避するセンサは、接触することなく近接する障害物を検出できる。このために、例えば、赤外線信号を発する赤外線センサが使用される。その反射から障害物の有無や距離を推測することができる。これらのセンサについては、センサ位置に加えて、例えば、障害物が確実に存在しない距離をナビゲーション装置に送信することができる。
【００３０】
図２に示された例によれば、制御ユニット１５０からのセンサ情報に加えて、ナビゲーションユニット１４０はまた、ロボットが自分自身を方向付けるために使用することができるロボットの環境に関する情報を提供する１つ以上のナビゲーションセンサ１２５からの直接的なセンサ測定値を受信する。これは、（単数又は複数の）センサ１２５を用いて、地図を構築するのに適したナビゲーション特徴の位置が決定され得ることを意味す
る。このようなナビゲーションセンサ１２５は、例えば、より長い距離の物体までの距離を非接触で測定するためのセンサであり、例えば、特にレーザ距離センサまたは３Ｄカメラのように、三角測量または飛行時間測定によって距離を決定するセンサである。これらのセンサは、障害物の位置に関する情報を提供し、地図上に記録することができる。追加的に又は代替的に、ナビゲーションセンサ１２５は、ロボットの周囲の環境の画像を提供するカメラであってもよい。画像は直接ナビゲーション特徴として機能し得る。追加的に又は代替的に、物体認識及び画像処理により、ナビゲーション特徴として機能する周囲の画像のコーナやエッジなどの特徴を検出し得る。特に、制御ユニット１５０からのオドメトリ情報（走行距離情報）とナビゲーション特徴とを組み合わせることにより、それ自体既知のＳＬＡＭアルゴリズムを用いて環境の地図を構築することができ、地図内のロボットの位置を決定し、ナビゲーションおよび作業計画のために使用することができる。このような地図は、一時的に（つまり、使用するたびに）構築することもできるし、繰り返し使用するために保存し、必要に応じてロードすることもできる。このソリューションの利点は、ナビゲーションセンサとそれに関連するアルゴリズムが密接に統合されることである。したがって、ナビゲーションユニット１４０とナビゲーションセンサ１２５との組み合わせは、新しいロボットアプリケーションに比較的容易に組み込むことができる。必要な条件は、前述の標準化された形式（標準化されたフォーマット）でデータを交換するための所定のインターフェースを有する制御ユニット１５０のみである。さらに、ロボット内のナビゲーションセンサ１２５の位置及び向きのようないくつかのパラメータは、予め定められ、及び／又は（例えば、較正によって）決定されなければならない。
【００３１】
また、環境を検出するためのセンサの他に、ナビゲーションに不可欠な他のセンサをナビゲーションユニットに密接に接続し、その信号をナビゲーションユニットにより直接評価することができる。その一例として、加速度や角速度を測定するための慣性計測ユニット（ＩＭＵ）がある。これにより、制御ユニットから受信したオドメトリ情報の整合性を判断して、地図上でのロボットの位置決定性を向上させることができる。特に、車輪が空転する際に発生するような、計画された動きから逸脱した加速度を検出するためにＩＭＵを使用することができる。また、重力による加速度に対するロボットの相対的な位置を求めることができる。これは、環境情報を解釈し、ナビゲーションセンサの測定方向を決定するために使用される。
【００３２】
例えば、ナビゲーションユニット１４０は、障害物回避戦略（ｓｅｎｓｅ  ａｎｄ  ａｖｏｉｄ  ｓｔｒａｔｅｇｙ）及び／又は同時局在化及びマッピング（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  Ｍａｐｐｉｎｇ）（ＳＬＡＭ）アルゴリズム、及び／又はロボット使用領域の１つ以上の地図を使用して動作し得る。ロボットは、使用中にこのようなロボット使用領域の地図（複数可）を作成したり、使用開始時に既存の地図を使用したりすることができる。既存の地図は、偵察走行のような以前の使用中にロボット自身が作成したものであってもよいし、他のロボットや人間が提供したものであってもよい。例えば、ナビゲーションユニット１４０のナビゲーション及び作業計画は、目的地点を作成すること、目的地点間の経路を計画すること、および目的地への経路中または目的地での作業ユニット１６０の活動を決定することを含む。また、ナビゲーションユニット１４０は、予め計画されたアクティビティが入力されたカレンダー（スケジューラ）を管理し得る。例えば、ユーザは、毎日決まった時間に清掃ロボットが清掃を開始する旨を登録することができる。
【００３３】
なお、図２に示す実施形態のように、通信ユニット１３０と、ナビゲーションユニット１４０と、制御ユニット１５０とを有するシステムは、通信ユニット１３０とナビゲーションユニット１４０との間、およびナビゲーションユニット１４０と制御ユニット１５０との間でのみ情報を交換するように構成されていてもよい。特に、高速でデータ量の多い通信を通信ユニット１３０で処理する場合に有用である。これにより、データの流れも単純化される。
【００３４】
後でより詳細に説明するように、ナビゲーションセンサ１２５を含むナビゲーションユニット１４０は、制御センサ１２０によって提供されるセンサ情報を加工する制御ユニット１５０とは機能的に独立している。ナビゲーションユニット１４０と制御ユニット１５０との間で交換されるデータ／情報は、使用されるセンサハードウェアに依存しない定義されたフォーマットで送信される。異なるナビゲーションセンサ１２５がロボット１００の後継モデルで使用される場合、ナビゲーションユニット１４０のソフトウェア（および場合によってはいくつかのハードウェアコンポーネント）のみが新しいナビゲーションセンサに適合される必要があるが、この変更は制御ユニット１５０には影響を与えない。同様に、異なるまたは追加の制御センサ１２０又は異なる駆動ユニット１７０又は異なる作業ユニット１６０がロボット１００の後継モデルで使用される場合には、制御ユニット１５０のソフトウェア（特にドライバおよび場合によってはいくつかのハードウェアコンポーネント）のみを適合させる必要がある。したがって、使用されるナビゲーションユニット１４０及びナビゲーションセンサ１２５は、制御ユニット１５０及び制御ユニットに接続されたハードウェア（制御センサ１２０、作業ユニット１６０、駆動ユニット１７０）から機能的に完全に切り離されている。制御ユニット１５０およびナビゲーションユニット１４０の両方は、前述したように、少なくとも部分的にソフトウェアによって実装されてもよく、これらのソフトウェアは、異なるプロセッサ（計算ユニット）又はプロセッサコア上で互いに独立して実行され得る。さらに、別個のメモリデバイスまたは別個の（例えば、保護された）メモリ領域が、異なるプロセッサ又はプロセッサコアに割り当てられ、制御ユニット１５０のソフトウェア及びナビゲーションユニット１４０のソフトウェアが互いに独立して実行され得る。
【００３５】
制御ユニット１５０及びナビゲーションユニット１４０によるセンサ情報及び他のイベント（例えば、ユーザ入力）の別個の処理のため、時間の割り当ては簡単にはできない。データ処理、ナビゲーション、経路計画、作業計画を簡素化するために、各測定と検出された各イベントにタイムスタンプを割り当てることができる。これは、少なくともナビゲーションユニット１４０によって曖昧さなく解釈されるべきである。このためには、制御ユニット１５０とナビゲーションユニットの両方が、クロックジェネレータ１４５を介して同期したクロックを使用することが必要である。クロックジェネレータは、例えば、ナビゲーションユニット１４０と制御ユニット１５０の両方が受信する時刻信号を一定の間隔で出力するシステムクロックであってもよい。あるいは、ナビゲーションユニット１４０又は制御ユニット１５０の演算ユニット内のクロックジェネレータを使用してもよい。
【００３６】
例えば、ナビゲーションユニット１４０のクロックジェネレータを用いてもよい。このクロックに基づいて、ナビゲーションユニット１４０は、内部的に与えるタイムスタンプを決定する。周期的な間隔（例えば、１秒毎）で、クロックジェネレータ１４５から制御ユニット１５０にクロック信号が送信される。このクロック信号は、制御ユニット１５０の内部クロックをナビゲーションユニットで使用されているクロックと同期させるために使用される。このようにして、制御ユニット１５０は、ナビゲーションユニット１４０のタイムスタンプと同期するタイムスタンプをセンサ情報および他の検出されたイベントに割り当てることができる。例えば、制御ユニット１５０は、走行距離計（オドメータ）からの測定値に基づいて走行距離情報（オドメトリ情報）を決定する。これらは、タイムスタンプが付与され、ナビゲーションユニット１４０に送信される。ナビゲーションユニット１４０は、ナビゲーションセンサ（特に、ナビゲーション特徴）からの、同様にタイムスタンプが押されたセンサ情報を受信する。タイムスタンプに基づいて、ナビゲーションユニット１４０は、現在、必要な走行距離情報を既に受信したかどうかを判断し、必要に応じて、新しい走行距離情報を受信するのを待つことができる。タイムスタンプに基づいて、測定値は時間順に並べられ、ＳＬＡＭアルゴリズムのフレームワーク内で一緒に扱われ、地図の状態とその地図内のロボットの位置（姿勢）が更新される。
【００３７】
さらに、自律移動ロボット１００は、バッテリ（図２には図示せず）などの電源を有してもよい。バッテリは、例えば、自律移動ロボット１００が基地局（図示せず）にドッキングされたときに充電され得る。基地局は、例えば、電力網に接続されてもよい。自律移動ロボット１００は、バッテリの充電が必要なとき、またはロボット１００がそのタスクを完了したときに、自主的に基地局を目指して進むように構成されてもよい。
【００３８】
図３は、制御ユニット１５０の実施形態をより詳細に示す。制御ユニット１５０は、例えば、安全モジュール１５１と、モータコントローラ１５２と、予測モジュール１５３とを有していてもよい。モータコントローラ１５２は、ナビゲーションユニット１４０から受信した移動情報および作業情報から、駆動ユニット７０および作業ユニット１６０のモータおよびアクチュエータを制御するための具体的な信号を生成するように構成されている。このため、予め定められた期間だけ制御信号を一時的に記憶するバッファを構築し得る。この場合、移動情報にはロボットの即時停止を含めることができ、その際に、バッファに含まれるすべての制御信号は削除され、アクティブなブレーキ制御信号に置き換え得る。制御のために、電流や電圧の測定情報（ステータスセンサ１２４）及びエンコーダ情報（モーションセンサ１２３）も制御ループで利用することができる。
【００３９】
制御信号を生成するとき、ハードウェア固有の適応が必要となる場合があり、これは、実際に制御される動きとナビゲーションユニット１４０によって最初に計画された動きとの間に特定の偏差をもたらす。また、駆動ユニット１７０で使用される駆動部材（モータ、パワードライバ等）の制限（最小曲線半径、最大加速度、制御精度の制限等）も、このような逸脱につながる可能性がある。このため、予測モジュール１５３は、制御信号のバッファに基づいて、ロボットの将来の動きを決定し得る。その際、計算モデルを使用することができ、この計算モデルは、ロボットの慣性、駆動電子回路の特性、及び／又は駆動ユニットの特定の構成（車輪の位置及びサイズなど）を考慮に入れることができる。その結果は、例えば、１以上の予め定められた時間間隔での位置や向きの変更である。この予測は、ナビゲーションユニット１４０に伝達され、ナビゲーションや作業計画の際に考慮され得る。
【００４０】
安全モジュール１５１は、ナビゲーションユニット１４０とは無関係に独立してロボット１００の自律的な動きの選択された安全関連の観点を監視するように構成されている。安全モジュール１５１は、ナビゲーションユニット１４０が危険な状況で応答しないか不適切な反応の際に介入するようにさらに構成される。不適切な反応とは、危険な状況を回避できないか、または別の危険な状況を引き起こす反応である。不適切な状況とは、たとえば、ロボット１００が傾斜または転倒する可能性があり、それにより人間の介入なしではロボット１００のさらなる動作が不可能になり、又は、ロボット、周囲の物体、床、又は、周りに立っている人に損傷が発生し得る反応である。この点において、安全モジュール１５１は、ナビゲーションユニット１４０によって計画されたロボットの動きを「フィルタリング」、すなわち拒否又は修正し得る。
【００４１】
ナビゲーションユニット１４０からの制御ユニット１５０の上述の機能的な独立性を達成するために、安全モジュール１５１を有する制御ユニット１５０は、上述のように独自のプロセッサとメモリモジュールを有してもよい。メモリモジュールには、プロセッサによって実行される危険検出用のソフトウェアを保存できる。しかし、安全モジュール１５１を有する制御ユニット１５０がプロセッサ及び／又はメモリモジュールをロボット１００の他の１つまたは複数のユニットと共有することも可能である。一実施形態では、マルチコアプロセッサの１つのプロセッサコアが安全モジュール１５１を有する制御ユニット１５０に割り当てられ、他のプロセッサコアがロボット１００の他のユニット（例えば、ナビゲーションユニット１４０）によって使用され得る。それにもかかわらず、安全モジュール１５０のソフトウェアは、制御モジュール１４０または他のモジュールのソフトウェアとは機能的に独立して動作してもよい。制御ユニット１５０が独自のプロセッサとメモリモジュールを持っている（又はマルチコアプロセッサのプロセッサコアを独占的に使用している）場合、これにより干渉が減り、制御ユニット１５０の安全に関する安全モジュール１５１が高い信頼性で適時に応答できることがより容易に確実となる。制御センサ１２０からの情報を必ずしもリアルタイムで受信しないナビゲーションモジュール１４０とは異なり、制御ユニット１５０ひいては安全モジュール１５０は、制御センサ１２０からのセンサ情報をリアルタイムで利用可能な状態にしており、したがって、危険な状況を迅速かつ確実に検出して対応することができる。
【００４２】
安全モジュール１５１の危険検出用のソフトウェアは、危険な状況および危険な状況での反応の、追跡可能な、したがって証明可能な、信頼できる検出を保証するために、可能な限り単純に構成され得る。一実施形態によれば、自律移動ロボット１００の制御ユニット１５０が複数の安全モジュール１５１を有し、安全モジュール１５１のそれぞれは、特定の危険な状況に対応するように構成された危険検出ソフトウェアを有し、特定の危険な状況（例えば、階段から落下する差し迫った危険）に特化することも可能である。
【００４３】
例えば、安全モジュール１５１及び危険検出ソフトウェアの簡単化という目標を達成（し、したがって、安全モジュールの機能の簡単な検証を可能に）する１つの方法は、安全モジュール１５１に反応的及び／又は行動的ロボット工学の様々な概念を適用することである。そのような概念では、例えば、ロボット１００の行動の仕方は、センサモジュール１２０の現在のセンサデータのみに基づいて決定される。そのような概念では、例えば、ロボット１００の行動の仕方は、現在のセンサデータのみに基づいて決定される。しかし、そのような概念とは異なり、例外的な状況、例えば即時の危険が検出され、ナビゲーションモジュール１４０が適切に応答しない場合には、安全モジュール１５１は、ロボット１００の計画された行動に介入するように構成されている。この目的のために、安全モジュール１５１は、ナビゲーションユニット１４０から動き及び作業情報並びに予測モジュール１５３の将来の動きの予測を受け取ることができる。動作情報が安全な動作を示す場合には、それはモータコントローラ１５２に渡される。安全でない動作の場合、動作情報は、モータコントローラ１５２に渡される前に、安全モジュール１５１によって変更または破棄され得る。追加的又は代替的に、安全モジュール１５１は、「緊急停止」のためのコマンドをモータコントローラ１５２に送信することができる。これにより、バッファに格納されたすべての制御信号が破棄され、ロボット１００のブレーキの起動（及び場合によっては後方への移動）のための新しい制御信号が生成される。この目的のために、安全モジュール１５１は、制御センサ１２０によって供給される現在の（ナビゲーションユニット１４０から受信される）情報に基づいて禁止される又は潜在的に危険な動作情報であって、安全モジュール１５１の介入なしには事故につながる可能性がある動作情報を認識するように構成され得る。あるいは、安全モジュール１５１は、モータコントローラ１５２をバイパスして駆動ユニットを直接制御して、ロボットの動きにブレーキをかけてもよい。さらに、安全モジュール１５１は、駆動ユニットへの電流又は駆動ユニット内のモータを遮断してもよい。
【００４４】
例えば、安全モジュール１５１は、安全センサ１２２として１つ以上の床距離センサに結合されてもよい。床距離センサが床までの距離が異常に高いことを示している場合（例えば、ロボットが縁を越えて走行しようとしている、又はロボットが高く持ち上げられているため）、安全モジュール１５１は、この状況を危険な状況であると判断し得る。関係するセンサがロボットの（進行方向の）正面にある場合、安全モジュール１５１は、現在の動きを潜在的に危険なものとして分類し、現在の動きの停止又は変更（例えば、後退など）することができる。この場合、安全モジュール１５１が危険な状況を検出するために使用する基準と、安全モジュール１５１が現在の動きを（危険又は危険でないと）評価するために使用する基準は実質的に同じである。進行方向の前方にある落下センサが距離の増加を示している場合、危険な状況が検出され、現在の動きが危険であると評価される。安全モジュールは、ナビゲーションユニット１４０によって計画された前方移動を破棄し、現在の移動を停止する。特定の危険な状況が検出された際には（たとえば、エッジからの差し迫った落下が検出された場合）、安全モジュールはロボットの現在の動きを即座に停止し得る（実質的に現在の動きのいかなる継続も不適切／危険と見なされるため）。
【００４５】
ナビゲーションユニット１４０が送信した移動情報を評価するために制御センサ１２０が出力する情報が評価され得る。例えば、制御センサ１２０の情報は、ロボット１００の内部状態（ステータスセンサ１２４）及び／又は環境（安全センサ１２２）に関連し得る。したがって、この情報は、例えば、ロボット１００の環境に関連する情報、例えば、立ち下がりエッジ、敷居、障害物の位置、または障害物（例えば、人）の移動などを含み得る。ロボット１００の環境に関して受信された情報は、安全モジュール１５０によって、ロボット１００の現在の動き（モーションセンサ１２３）又は計画された動き（予測モジュール１５３）に関する情報と結合され得る。情報は、受信された直後に安全モジュール１５１内で処理されてもよく、及び／又は、処理及び／又は考慮される前に、最初に、予め定められた期間又は予め定められた距離（ロボット１００によって移動された距離）の間、安全モジュール１５１に格納されてもよい。
【００４６】
加えて、受信された情報はまた、例えばナビゲーションユニット１４０によって作成及び使用されるロボット１００の環境の地図データに関連してもよい。たとえば、地図データには、立ち下がりエッジまたはその他の障害物に関する情報が含まれ得る。ロボット１００は、通常の動作では、地図上の現在の自身の位置を「知って」いる。
【００４７】
受信された情報に基づいて、安全モジュール１５０は、危険な状況が存在するかどうかを確認し得る。危険な状況とは、たとえば、立ち下がりエッジ、ロボット１００の不利な場所（たとえば、湿った、滑らかな、急傾斜な、または不均一な表面）、または、ロボット１００のすぐ近くの環境に障害物があること、又は、これらに向かう障害物（例えば、人）があることである。危険な状況が検出されない場合、何もせず、安全モジュール１５１は、移動情報を変更せずにモータコントローラ１５２に渡す。
【００４８】
安全モジュール１５１が危険な状況を検出した場合、安全モジュール１５１は、まず、危険な状況を検出したことを制御モジュール１４０に通知することができる。例えば、検出された立ち下がりエッジ又は切迫した衝突に関する情報がナビゲーションユニット１４０に送信されてもよい。しかしながら、検出された危険状況についてナビゲーションユニット１４０に通知することは必ずしも必要ではない。安全モジュール１５１は、「サイレントオブザーバ」としても機能し、ナビゲーションユニット１４０に通知することなく危険状況を検査することができる。この場合、前述したように、センサ情報（例えば、タイムスタンプ付きのオドメトリ情報）のみが送信されることになる。さらに、安全モジュール１５１は、ナビゲーションユニット１４０が、検出された危険状況に適切に応答しているかどうかを検査してもよい。すなわち、安全モジュール１５１は、ナビゲーションユニット１４０の移動情報が、ロボット１００を障害物（または、立ち下がりエッジなど）に向わせる（それにより危険状況を悪化させる）か、又はロボット１００を危険な状況から遠ざけるように操舵、減速、又は停止させているかを検査し得る。この目的のために、安全モジュール１５１は、識別された危険状況に応じて、最初に、どの動きが原則としてロボット１００の事故につながり得るかを判定し得る。たとえば、事故につながる可能性のある動きは「危険な動き」に分類され、事故につながる可能性が低い動きは「安全な動き」と分類され得る。危険な動きは、例えば、ロボット１００が直接、立ち下がりエッジ又は障害物に向かって移動する（又はそこから離れない）動きである。また、ロボット１００が障害物にぶつかり、それにより、よろめき、落下、転倒するか、又は接触により障害物を損傷する可能性のある動きは、危険として分類することができる。
【００４９】
動きを安全又は危険として分類した後、安全モジュール１５１は、ロボット１００の現在の動きが危険な動き又は安全な動きであるかどうかを検査し得る。安全モジュール１５０は、例えば、ロボット１００がまだ危険な状況に向かって動いているか、それとも障害物を通り抜ける可能性があるか、方向を変えて危険な状況から離れるかを検査することができる。この目的のために、安全モジュール１５１は、例えば、予測モジュール１５３の予測、オドメトリ情報（モーションセンサ１２３）及び／又はナビゲーションユニット１４０から送信された移動情報を使用して、解析してもよい。ロボット１００が危険な動きをしていることを安全モジュールが認識すると、ロボット１００および周囲の物体の安全を確保し、事故を回避又は少なくとも軽減する対策（安全対策）を開始する。対策としては、例えば、ナビゲーションユニット１４０の移動情報を破棄したり、変更したりすることが挙げられる。安全モジュール１５０の制御信号は、例えば、ロボット１００に対してその方向及び／又はその速度を変化させる、方向及び／又は速度コマンドを含むこともできる。たとえば、移動する物体がロボットの予定している経路を横切るときに速度を下げることで、事故を回避できる。多くの場合、例えば、ロボット１００が速度を変えずに、わずかに又はそれ以上に方向を変えれば十分であり得る。同様に、ロボット１００が完全に反対の方向に移動すること、すなわち、例えば、１８０°回転又は逆走することも考えられる。通常は、ロボット１００を停止（緊急停止）することで事故を確実に防止することができる。
【００５０】
上述したように、安全モジュール１５１がナビゲーションユニットからの移動情報を破棄又は修正した場合、安全モジュール１５１が制御ユニット１４０に対策を通知することが（任意に）可能である。ナビゲーションユニット１４０は、この情報の受信を確認し得る。この確認は、例えば、ナビゲーションユニット１４０が、検出された危険な状況に適合して修正された移動情報を送信することによってなされ得る。しかし、ナビゲーションユニット１４０が安全モジュール１５１に直接確認応答を送信するようにしてもよい。
【００５１】
例えば、所定の時間（例えば、１秒）後にナビゲーションユニット１４０から応答がないか有効な応答がない場合、安全モジュール１５１は、ロボット１００の安全な動作がもはや保証されないと想定し得る。この場合、ロボット１００は、オプションで永久的に停止されてもよい。例えば、リスタートは、ユーザが積極的に許可してから、又は、ユーザ又は技術者によってロボット１００が修理されて（例えば、センサのクリーニング）から、可能となり得る。
【００５２】
本発明の実施形態によれば、ナビゲーションユニット１４０は、ロボット１００のさらなる動作を可能にするために、安全モジュール１５１により危険と分類される動きを、それにもかかわらず実行させる要求を安全モジュール１５１に送信することができる。この要求は、ナビゲーションユニット１４０が安全モジュール１５１によって危険な動きに対する対策を通知された後に行われ得る。代替的または追加的に、要求を予防措置として行うことができ、これにより計画された動きについて安全モジュール１５１に事前に通知され得る。その結果、たとえば、計画された動きの中断を回避できる。安全モジュール１５１は、この要求を検査し、要求された動きが許可されるかどうかをナビゲーションユニット１４０に通知し得る。
【００５３】
ロボットのセンサ（特にセンサモジュール１２２）は、多くのロボットにおいて、ロボット１００の前方への移動、すなわち、通常の移動方向、すなわちロボット１００の前の領域の方向のみを測定するように構成されている。つまり、ロボット１００の背後の領域に関する情報をまったく提供しないか、非常に限られた情報のみを提供し得る。例えば、ロボット１００の逆方向の走行は、例えば、５ｃｍ未満又は１０ｃｍ未満の非常に短い距離だけが安全であると考えられ得る。したがって、これより長い逆方向の走行は、例えば、安全モジュール１５１によって不許可とされ得る。しかし、ロボット１００がその電力供給手段を再充電できる基地局に到着するとき、又は離れるとき、例えば、より長い逆方向の走行が必要になる場合がある。原則として、安全モジュール１５０は、この場合、基地局への安全な到着及び基地局からの離脱が可能なようにユーザによって基地局が適切に配置されたと想定することができる。ロボット１００が基地局に到着するか、基地局を離れるかしなければならず、このためにより長い逆方向の走行が必要な場合、ナビゲーションユニット１４０は安全モジュール１５１に対応する要求を送ることができる。次に、安全モジュール１５１は、例えば、ロボット１００が実際に基地局にいるかどうかを検査することができる。例えば、このために、ロボット１００の対応する充電接点に電圧が印加されているかどうかを確認できる。この場合、充電接点は、ロボットが充電ステーションにドッキングしたかどうかを検出することができる一種のステータスセンサ１２４を形成する。代替として、例えば、基地局にドッキングするとき、接触スイッチが閉じられるように構成できる。したがって、安全モジュール１５１は、接触スイッチが閉じているかどうかを検査することができる。これらは単なる例である。ロボット１００が基地局にいるかどうかは、さらに他の適切な方法で確認することができる。安全モジュール１５１は、ロボット１００が基地局にいることを検出すると、基地局を離れるのに必要な逆方向の走行の距離が通常の許容距離を超える場合であっても、それを許可し得る。しかしながら、ロボット１００が基地局にいないことを安全モジュール１５１が検出した場合、逆方向の走行の通常許可された距離のみが許可され得る。これは単なる例である。安全モジュール１５１が、危険であると分類された動きを例外的に安全であるとみなし、それを許可する様々な他の状況が考えられる。
【００５４】
本発明のさらなる実施形態によれば、安全ユニット１５０、特に安全モジュール１５１は、自己テストを実行するように構成されている。この場合、自己テストは、例えば、安全モジュール１５０に属するメモリモジュールの読み取りテスト及び書き込みテストを有することができる。そのような自己テストが失敗した場合、ロボット１００の動作がユーザによって許可されるまで、ロボット１００は永久的に停止され、電源がオフにされ得る。自己テストに失敗した後は、原則としてロボット１００の安全な動作が保証されない。自己テストは、たとえば、様々な部品の冗長構成によって実現することもできる。したがって、例えば、安全モジュール１５０のプロセッサ及び／又はメモリモジュールを重複して有することができ、両方のプロセッサで危険検出ソフトウェアを実行することが可能である。両方のプロセッサの結果が同一であるか、許容できる僅かな偏差である限り、安全モジュール１５１は適切に機能していると想定できる。
【００５５】
本発明の別の実施形態によれば、安全モジュール１５１は、制御センサ１２０の信頼できる動作を監視するように構成されてもよい。この際、安全に関係する情報を提供するセンサのみを監視すれば十分であり得る。このセンサの監視により、センサが、たとえば欠陥又は汚れによって、誤ったデータまたは信頼できないデータを供給しているかどうかを検出できる。この場合、監視されるセンサは、誤動作を個別に検出し、これらを安全モジュール１５１に報告するように構成され得る。代替的または追加的に、センサは、センサが完全に機能している間だけ、意味のある測定データを供給するように構成され得る。例えば、床面までの距離の一般的な値ではなく、床面までの距離がゼロ（または無限大）である場合、床面距離センサは機能しないことが検知される。代替的または追加的に、安全モジュール１５１は、センサから受信したデータの一貫性をチェックし得る。例えば、安全モジュール１５１は、ロボット１００の動きを決定するために使用されるセンサデータ（モーションセンサ１２３、特にホイールエンコーダ）が、駆動ユニットの測定された消費電力（ステータスセンサ１２４、電流計、電圧計）と一致しているかどうかをチェックしてもよい。１つまたは複数の障害のあるセンサ信号が検出された場合、ロボット１００の安全な動作を保証できないため、ユーザが再び動作を許可するまでロボットを永久に停止し、電源を切ることができる。
【００５６】
原則として、既知の危険な状況は、説明した方法で検出できる。既知の危険な状況は、ロボット１００の安全性を確認するためのテスト状況で目的に合致するように調整できる。例えば、そのようなテストでは、ロボット１００は、潜在的に危険な状況に意図的に持ち込まれ得る（例えば、ロボットを立ち下がりエッジの近くに配置する）。次に、ナビゲーションユニット１４０が誤った及び／又はランダムな移動情報を制御ユニット１５０に送信する場合をシミュレートすることができる。その後、安全モジュール１５１が確実に事故を防止できるかどうかを観察することができる。このために、ナビゲーションユニット１４０は、特別なテスト動作を可能にしてもよく、特別なテスト動作では、予め定義された移動パターンが生成され、及び／又は移動情報が通信ユニット１３０を介して（例えば、遠隔制御により）予め与えられ得る。
【００５７】
図４は、自律移動ロボット１００の下側の平面図を例示的に示している。図４は、清掃ロボットの一例を示しており、ロボットの清掃モジュールは、明確にするために示されていない。図示されたロボット１００は、駆動モジュール１７０に属する２つの駆動輪１７１（差動駆動）と、前輪１７２とを有する。前輪１７２は、例えば従動車輪であってもよく、それ自体は駆動力を持たず、床面上でロボット１００の動きに伴って動くだけである。前輪１７２は、床面に実質的に垂直な軸を中心に３６０°回転可能であり得る（回転方向は図４に破線の矢印で示されている）。駆動輪１７１はそれぞれ、電気駆動装置（例えば、電気モータ）に接続され得る。駆動輪１７１の回転により、ロボット１００は前進する。ロボット１００は、床面距離センサ１２１を（安全センサ１２２の一部として）さらに有する。図４に示す例では、ロボット１００は、３つの床面距離センサ１２１Ｒ、１２１Ｍ、１２１Ｌを有する。第１の床面距離センサ１２１Ｒは、例えば、ロボット１００の右側（進行方向に見て）に配置される。このとき、第１の床面距離センサ１２１Ｒは、ロボット１００を前部と後部とに等分する中心軸ｘ上に配置する必要はない。例えば、第１の床面距離センサ１２１Ｒは、中心軸ｘからわずかに前方に配置され得る。例えば、第２の床面距離センサ１２１Ｌは、ロボット１００の左側（移動方向に見て）に配置される。この場合、第２の床面距離センサ１２１Ｌも中心軸ｘ上に配置する必要はない。第２の床面距離センサ１２ＩＬも同様に、中心軸ｘからわずかに前方に位置し得る。例えば、第３の床面距離センサ１２１Ｍは、ロボット１００の正面中央に配置され得る。例えば、少なくとも１つの床面距離センサ１２１が各車輪の前に配置されており、前方に走行するときに車輪が立ち下がりエッジを通過する前に立ち下がりエッジが検出されるようになっている。
【００５８】
床面距離センサ１２１は、ロボット１００の床面までの距離を検出するように構成され、または少なくとも一定の間隔内に床面が存在するかどうかを検出するように構成される。ロボット１００の通常の動作中、床面距離センサ１２１の距離、すなわちロボット１００の床面までの距離はわずかしか変化しないため、床面距離センサ１２１は通常、比較的均一な値を供給する。特に、滑らかな床面では、通常、広範囲で床面までの距離はほぼ同じままである。例えば、駆動輪１７１および前輪１７２が沈む得るカーペット上では、値のわずかな偏差が生じる可能性がある。その結果、床面距離センサ１２１を備えたロボット本体の床面までの距離が減少し得る。階段などの立ち下がりエッジは、例えば、床面距離センサ１２１の少なくとも１つによって供給される値が急激に増加したときに検出することができる。例えば、少なくとも１つの床面距離センサ１２１によって測定された値が所定のしきい値を超えて増加する場合に、立ち下がりエッジを検出することができる。床面距離センサ１２１は、例えば、光学信号又は音響信号用の送信機と、送信された信号の反射を検出するように構成された受信機とを含み得る。可能な測定方法には、床面から反射された信号の強度の測定、三角測量、又は送信された信号とその反射の通過時間の測定が含まれる。たとえば、本発明の一実施形態によれば、床面距離センサ１２１は、床面までのセンサの正確な距離を決定せず、床面が所定の距離内で検出されたかどうかを示すブール信号を提供するだけである（たとえば、床面距離センサ１２１まで最大５ｃｍの距離で検出される床面）。なお、センサ信号の実際の評価及び解釈は、制御ユニット１５０において行われ得る。
【００５９】
自律移動ロボットによって実行される一般的な動き（又は、ナビゲーションユニット１４０により計画され、移動情報の形式で制御ユニット１４０に送られる動き）には、前方への動き、右又は左の回転、およびこれらの動きの組み合わせが含まれる。ロボット１００がそのような運動を行う際に立ち下がりエッジに向かって動くと、その運動は、少なくとも１つの床面距離センサ１２１によって検出される。単純な幾何学的考察により、ロボット１００の事故（この場合は衝突）につながる可能性のある動きを決定することが可能である。例えば、ロボット１００のサイドに配置された第１又は第２の床面距離センサ１２１Ｒ、１２１Ｌがトリガーされると、ロボット１００は最大で、駆動輪１７１（車輪支持点）と床面距離センサ１２１Ｒ、１２１Ｌとの間の距離に対応する第１の距離Ｌ１だけ前方に移動しても良い。たとえば、ロボット１００の前面にある第３の床面距離センサ１２１Ｍがトリガーされた場合、ロボット１００は最大で、前輪１７２（車輪支持点）と第３の床面距離センサ１２１Ｍに対応する第２の距離Ｌ２だけ前方に移動しても良い。したがって、ロボット１００は、全速力で走行中に立ち下がりエッジを検出し、減速のための制御信号を生成し、立ち下がりエッジの前で（すなわち、第１又は第２の距離Ｌ１、Ｌ２内で）停止できなければならない。特に、必要な個々の部品の反応時間、すなわち関係する安全センサ１２２、ナビゲーションユニット１４０、安全モジュール１５１を有する安全ユニット及び駆動ユニット１７０、並びにロボット１００の速度、ロボット１００を減速させる（負の）加速及び関連する制動距離が考慮される。例えば、安全モジュール１５０は、床面距離センサ１２１の少なくとも１つがトリガーされる限り、ロボット１００の後退のみを許可にするように構成されてもよい。床面距離が許容最大値を超えていることが検出されると、床面距離センサがトリガーされる。
【００６０】
図４に示す例では、第２の距離Ｌ２は第１の距離Ｌ１よりも短い。第３の床面距離センサ１２１Ｍがトリガーされた後、立ち下がりエッジの前でロボット１００が適時に停止することを保証できるようにするために、安全モジュール１５１は、例えば、第３の床面距離センサ１２１Ｍがトリガーされるやいなや、ナビゲーションユニット１４０からの全ての移動情報を破棄し、ロボット１００を停止させる制御信号をモータコントローラに出力させるように構成されても良い。例えば、安全モジュール１５１は、時間がかかりすぎる可能性があるため、最初にナビゲーションユニット１４０の正しい挙動を検査しない場合がある。ロボット１００の停止後に初めて、安全モジュール１５１は、例えば、ナビゲーションユニット１４０が、認識された状況に適した移動情報を、同様に、送信するかどうかを検査することができる。そのような状況に適した移動情報には、たとえば、ロボットを停止する、後退させる、又は立ち下がりエッジから遠ざかるように方向転換するコマンドが含まれる。このような移動情報は、安全モジュール１５１によってモータコントローラにそのまま（異議無しに）渡されることになる。しかしながら、安全モジュール１５１が、ナビゲーションユニット１４０によって危険な動き（例えば、前進）を実行するための移動情報が生成されていることを検知する場合、この移動情報を破棄することによりロボットの制御を保持又は引き継ぎ得る。
【００６１】
第１又は第２の床面距離センサ１２１Ｒ、１２１Ｌがトリガーされる場合、例えば、危険を回避するためにロボット１００が停止するまでより多くの時間が利用可能であるため、危険な状況に対するナビゲーションユニット１４０の反応を待つことで十分であり得る。例えば、そのような場合、安全モジュール１５１は、ロボット１００が第３の距離Ｌ３を移動するのを待つことができる（例えば、Ｌ３＝Ｌ１-Ｌ２）。このとき、ロボット１００は、事故を回避するために利用可能な第２の距離Ｌ２に必要な時間のみを有する。したがって、第３の距離Ｌ３に必要な時間の間、安全モジュール１５１は、その移動情報を破棄したり、ロボット１００を停止したりすることなく、ナビゲーションユニット１４０の自由にさせる得る。この間にナビゲーションユニット１４０が適切に応答する場合（ロボット１００が検知された立ち下がりエッジから遠ざかる移動情報の場合）、安全モジュール１５１の介入は不要であり、安全モジュール１５１は、受動的な状態のままである（移動情報を変更せずに渡す）。第３の距離Ｌ３が既に走行されたかどうかは、例えば、経過時間及び／又は走行距離計により、ロボット１００の可能な最大速度に基づいて決定することができる。例えば、安全モジュール１５１は、ナビゲーションユニット１４０が第１又は第２の床面距離センサ１２１Ｒ、１２１Ｌによる立ち下がりエッジの検出の後１０ｍｓ以内にロボット１００の停止及び／又は立ち下がりエッジから遠ざかる向きに走行させない場合は、ロボット１００を停止し得る。距離Ｌ３の決定と、この距離を移動した時を判断する際には、予測モジュール１５３の移動予測を利用し得る。
【００６２】
コストの理由から、図４に示すように、ロボット１００は、ロボット１００の前部に床面距離センサ１２１しか持たない場合も多く、その場合には、立ち下がりエッジはロボット１００が前進するときにのみ検出できる。ロボット１００は主に前進方向に移動するので、これは通常、立ち下がりエッジに関してロボット１００の安全な動作を確保するのに十分である。状況によっては、障害物や立ち下がりエッジによって前方への動きがブロックされる場合がある。そのような状況では、この状況から抜け出すために、ロボット１００は、全体として、またはその駆動輪１７１の少なくとも１つにより後方に移動することは避けられない可能性がある。しかし、ロボット１００が自身の後方の経路を知っていれば、それだけ確かにロボット１００は後方に走行できる。ロボット１００がその経路を知らない場合、ロボット１００の後部に床面距離センサがないため、例えば、ロボット１００の後ろの立ち下がりエッジを認識できず、事故の危険がある。ロボット１００が最後に移動した距離は、例えば直線として近似することができる。後進は、例えば、第４の距離Ｄに対して安全であると認識され得る。ここで、距離Ｄは、駆動輪１７１と、ロボット１００の前側領域で床面距離センサ１２１が配置される円周Ｓとの間の距離である。ロボットが最後に第４の距離Ｄよりも短い距離だけ前方に移動した場合、前方に移動した最後の距離よりも大きくない距離だけ後退しても良い。前進と後退を組み合わせた場合、実際に移動した距離を（例えば、モーションセンサ１２３で）決定し、必要な後退移動を考慮し得る。
【００６３】
例えば、安全モジュール１５１は、その環境に関する情報を持たず、その背後に立ち下がりエッジがあるかどうかを知らない可能性があるため、ロボット１００の電源投入直後に後方への移動を許可しないように構成され得る。例えば、ロボット１００は、ユーザによって、テーブルの端近くのテーブル上に、または階段や踊り場に置かれた可能性がある。この際に、例えば、前方方向が障害物又は立ち下がりエッジによってブロックされている場合に、安全モジュール１５０は、ロボット１００の後方への動きもブロックすることができる。例えば、上述のように、制御ユニット１４０は、基地局から離れる向きにロボット１００を走行させようとする場合、対応する要求を安全モジュール１５１に送信することができる。安全モジュール１５１が、そのような要求に続いてロボット１００が実際に基地局にいることを確認する場合には、安全モジュール１５１は、基地局から離れる方向に移動するのに必要とされる距離の後退移動を許可する。
【００６４】
ロボット１００の動きは、例えば走行距離計（例えば、ホイールエンコーダ）などのさまざまなセンサによって決定され、及び／又は予測モジュール１５３の制御信号に基づいて計算され得る。この場合、例えば、ロボット１００が移動した、所定の時間間隔及び／又は移動間隔ごとの距離が保存され得る。さらに、例えば、安全な床面をより良く推定するために、床面距離センサ１２１の位置又は経路を保存することができる。
【００６５】
本発明の一実施形態によれば、ロボット１００が、以前に、少なくとも円周Ｓの半径よりも大きい距離だけ前に移動した場合には、床面距離センサ１２１が配置される円周Ｓは、安全に走行可能な領域と見なすことができる。この場合、安全モジュール１５１は、ロボット１００が後進駆動中（及び後進駆動と組み合わされた短い前進移動中）に後退方向の移動により円周Ｓから離れることを（例えば、制御コマンド及び／又は走行距離計の読み取りに基づいて）検出したときには、ロボット１００を停止するように構成され得る。
【００６６】
衝突を避けるために、いくつかのセンサを共有して障害物を検出できる。例えば、安全センサ１２２は、障害物をロボットの近接領域において非接触で検出するように構成された光学センサ（例えば、床面距離センサとは異なる測定原理の赤外線センサ）を含む。安全センサ１２２は、例えば、接触した場合に視覚的に検出が困難な障害物（例えばガラスドア）を検出するように構成された触覚センサを備えてもよい。たとえば、触覚センサには、障害物に触れたときに閉じるように構成された接触スイッチを含み得る。例えば、触覚センサは、ロボット１００の本体が障害物に衝突する前にロボット１００が減速することを可能にするスプリング偏位手段をさらに含み得る。このような場合、安全モジュール１５１は、立ち下がりエッジの検出時に床面距離センサ１２１をトリガーするときと同様に振る舞う。
【００６７】
例えば、安全モジュール１５１は、ロボットの近くにある障害物を監視するように構成され得る。例えば、ロボット１００から所定の距離内に障害物が検出された場合、安全モジュール１５０は、制限速度を超える速度での動きを阻止し得る。所定の距離は、障害物が検出される方向に依存し得る。例えば、通常、ロボット１００の背後で検出された障害物によりロボット１００の前方への動きに制限が加えられない。制限速度は、障害物までの距離及び／又は障害物が検出される方向に依存し得る。
【００６８】
安全モジュール１５１は、生物（人間、ペット）がロボットの環境で適切な安全センサ１２２（例えば、温度画像）により検出されたときに、生物がどの速度でどの方向に移動するかに関係なく、所定の制限値より大きい速度及び／または加速度を防ぐように構成することもできる。例えば、最大速度を制限することにより、物体の予期しない動きに応答するために、ロボット１００が利用できる時間が増加する。同時に、最高速度を制限すると、速度の低下によりロボット１００の運動エネルギーが低下するため、人や動物の負傷やロボットや物体の損傷のリスクが低減する。ロボット１００の加速を制限することにより、環境内の人々はロボット１００の挙動をよりよく判断でき、ロボットの動きによりよく応答することができ、それによって事故のリスクも低減する。
【００６９】
例えば、運搬ロボットなどの自律移動ロボット１００のステータスセンサ１２４は、ロボット１００が、物体を運んでいるか、及び、どんな物体（例えばグラスまたは皿）を運んでいるかを検出するように構成されたセンサを含み得る。この情報に基づいて、ロボットの動きが適合され制限され得る。例えば、ロボット１００は、何も運ばない場合、より速く加速し、より速い速度で移動し得る。たとえば、皿などの平らな物体を運ぶ場合、グラスや瓶を運ぶ場合よりも速く加速し得る。
【００７０】
安全モジュール１５１は、作業モジュール１６０の機能を監視するようにさらに構成され得る。これは、特に、作業モジュール１６０の活動が、作業モジュール１６０自体のより大きな動き及び／又は駆動モジュール１７０によるロボット１００の動きに関連する場合に有利となり得る。
【００７１】
例えば、作業モジュール１６０は、ごみを収集するためのブラシを含み得る。回転ブラシは、例えば、散らばっている靴の靴紐、カーペットの縁、または電化製品のケーブルを巻き込み、それによってブロックされるリスクがある。ブラシの回転は、例えば回転数エンコーダによって測定できる。ブラシの回転が検出されなくなることで、ブラシがブロックされたことを検出できる。また、たとえば、ブラシモータの電力消費を特定し、それによってブラシがブロックされたことを検出することもできる。
【００７２】
ブロックされたブラシを解放するためのさまざまな方法が知られている。例えば、ブラシが空転に切り替わり、ロボット１００が逆走し、その際にケーブルなどが再び巻き戻される。しかし、この方法には危険が伴う。ブラシがブロックされた状態でのロボット１００の走行は、基本的に事故につながる可能性がある。ブラシに巻き付けられたケーブルが、例えば電気機器のケーブルである場合、ロボットが逆走の際にロボットと一緒に電気機器を引っ張る危険性が基本的にある。このような電気機器が高い位置、たとえば棚に配置されている場合、これは床に落ちて損傷する可能性がある。したがって、安全モジュール１５１は、例えば、ブラシを解放する手順が実行されるときにブラシがまだブロックされているかどうかを検出するように構成されてもよい。このような場合、物体に損傷を与えることなく前進も後退もできないため、ロボット１００の移動が停止され得る。別の可能性は、ロボット１００がその位置を変えることなく、ケーブルなどをブラシから解放するために、通常の移動方向とは反対の方向にブラシを回転させることである。
【符号の説明】
【００７３】
１００…自律移動ロボット
１２０…センサ
１２２…安全センサ
１２３…モーションセンサ
１２４…ステータスセンサ
１２５…ナビゲーションセンサ
１３０…通信ユニット
１４０…ナビゲーションユニット
１４５…クロックジェネレータ
１５０…制御ユニット
１５１…安全モジュール
１７０…駆動ユニット
３００…外部デバイス
【図１】
2021527889.tif 000003
【図２】
2021527889.tif 000004
【図３】
2021527889.tif 000005
【図４】
2021527889.tif 000006
【国際調査報告】
2021527889.tif 000007
2021527889.tif 000008
2021527889.tif 000009
2021527889.tif 000010