(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-15
(45)【発行日】2022-07-26
(54)【発明の名称】自律移動ロボットおよび自律移動ロボットの制御方法
(51)【国際特許分類】
G05D 1/02 20200101AFI20220719BHJP
【FI】
G05D1/02 R
G05D1/02 H
(21)【出願番号】P 2019533357
(86)(22)【出願日】2017-12-22
(86)【国際出願番号】 AT2017060346
(87)【国際公開番号】W WO2018112495
(87)【国際公開日】2018-06-28
【審査請求日】2020-11-05
(31)【優先権主張番号】102016125408.8
(32)【優先日】2016-12-22
(33)【優先権主張国・地域又は機関】DE
(73)【特許権者】
【識別番号】514200752
【氏名又は名称】ロブアート ゲーエムベーハー
【氏名又は名称原語表記】ROBART GmbH
(74)【代理人】
【識別番号】110000718
【氏名又は名称】特許業務法人中川国際特許事務所
(72)【発明者】
【氏名】アルテス ハロルド
(72)【発明者】
【氏名】マッシャー エルウィン
(72)【発明者】
【氏名】アレクサンドロフ ウラジーミル
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2002-304205(JP,A)
【文献】特開2001-166828(JP,A)
【文献】米国特許出願公開第2016/0271795(US,A1)
【文献】米国特許出願公開第2013/0060458(US,A1)
【文献】独国特許出願公開第102010033768(DE,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/02
(57)【特許請求の範囲】
【請求項1】
自律移動ロボット(100)であって、
環境内で前記自律移動ロボット(100)を移動させるように構成された駆動モジュール(170)
、及び/又は、タスクを実行するように構成された作業モジュール(160)を有し、前記自律移動ロボット(100)は、さらに、
前記駆動モジュール(170)に第1の制御コマンドを送信する
か、前記作業モジュール(160)に第2の制御コマンドを送信するか、又は、前記駆動モジュール(170)及び前記作業モジュール(160)に第1の制御コマンド及び第2の制御コマンドを各々送信するように構成された制御モジュール(140)であって、前記
第1の制御コマンドは、前記自律移動ロボット(100)の動きを制御する
ためのものであ
り、前記第2の制御コマンドは前記自律移動ロボット(100)のタスクの実行を制御するためのものである制御モジュール(140)と、
安全モジュール(150)と、
を有し、
前記安全モジュール(150)は、
前記制御モジュール(140)とは独立して前記自律移動ロボット(100)の振る舞いを監視し、
所定の基準に基づいて、前記制御モジュール(140)によって制御される前記自律移動ロボット(100)の現在の動き
又はタスクの実行を危険として分類することにより、危険な状況を検出し
て前記駆動モジュール(170)又は前記作業モジュール(160)に少なくとも1つの第3の制御コマンドを送信し、
前記現在の動き
又はタスクの実行が危険として分類された場合に
前記少なくとも1つの第3の制御コマンドにより前記自律移動ロボット(100)の動き
又はタスクの実行を変更又は停止する
自律移動ロボット(100)。
【請求項2】
請求項1に記載の自律移動ロボット(100)であって、
前記安全モジュール(150)は、さらに、
前記安全モジュール(150)によって危険な状況として検出された状況において、前記制御モジュール(140)によって引き起こされた前記自律移動ロボット(100)の振る舞いを監視し、
前記振る舞いを所定の基準に基づいて適切又は不適切として分類する
ように構成される
自律移動ロボット(100)。
【請求項3】
請求項2に記載の自律移動ロボット(100)であって、
前記制御モジュール(140)の反応を監視することは、前記制御モジュール(140)により送信された制御コマンドを評価することを含み、前記制御コマンドから、前記自律移動ロボットの現在の動きが推測できる自律移動ロボット(100)。
【請求項4】
請求項2又は請求項3に記載の自律移動ロボット(100)であって、
前記制御モジュール(140)の反応を監視することは、前記駆動モジュール(170)から情報を受信することを含み、
この情報は、前記駆動モジュール(170)に送信される制御コマンド及び前記駆動モジュール(170)の現在の動作の少なくとも一方を示す
自律移動ロボット(100)。
【請求項5】
請求項2乃至請求項4の何れか一項に記載の自律移動ロボット(100)であって、
前記安全モジュール(150)は、前記動きが危険と分類され、かつ、前記制御モジュール(140)の反応が不適切として分類された場合にのみ、前記自律移動ロボット(100)の動きを変更または停止するように構成される
自律移動ロボット(100)。
【請求項6】
請求項1乃至請求項5の何れか一項に記載の自律移動ロボット(100)であって、
前記自律移動ロボット(100)は、さらに、センサモジュール(120)を有し、
前記センサモジュール(120)は、情報を提供し、
この情報は、前記自律移動ロボット(100)の内部状態及び前記自律移動ロボット(100)の前記環境の少なくとも一方に関係している
自律移動ロボット(100)。
【請求項7】
請求項6に記載の自律移動ロボット(100)であって、
前記安全モジュール(150)は、前記センサモジュール(120)の動作に誤りがあることが検出された場合に、前記センサモジュール(120)の動作を監視し、前記自律移動ロボット(100)を停止するように構成される
自律移動ロボット(100)。
【請求項8】
請求項6又は請求項7に記載の自律移動ロボット(100)であって、
前記センサモジュール(120)は、フロアの立ち下がりエッジを検出するように構成された少なくとも1つのフロアクリアランスセンサ(121)を有する
自律移動ロボット(100)。
【請求項9】
請求項8に記載の自律移動ロボット(100)であって、
前記立ち下がりエッジを検出するために、前記少なくとも1つのフロアクリアランスセンサ(121)は、前記自律移動ロボット(100)と前記自律移動ロボット(100)の下のフロア面との間の距離が最大値を超えるか否かを判定するか、又は、前記自律移動ロボット(100)と前記自律移動ロボット(100)の下のフロア面との間の距離を測定するよう構成される
自律移動ロボット(100)。
【請求項10】
請求項8又は請求項9に記載の自律移動ロボット(100)であって、
前記安全モジュール(150)は、前記少なくとも1つのフロアクリアランスセンサ(121)によって提供される情報に基づいて危険な状況を検出するように構成され、
及び/又は、
前記安全モジュール(150)は、前記少なくとも1つのフロアクリアランスセンサ(121)によって提供される情報に基づいて前記自律移動ロボット(100)の現在の動きが不適切であると分類するように構成されている
自律移動ロボット(100)。
【請求項11】
請求項6乃至請求項10の何れか一項に記載の自律移動ロボット(100)であって、
前記センサモジュール(120)は、
障害物を非接触で検出するための光学センサ、
障害物を接触して検出するための接触センサ、
前記環境の画像をキャプチャーするためのカメラ、
加速度センサ、
回転速度センサ、
距離センサ、
電流センサ、
車輪接触スイッチ、及び、
位置センサ
のうち少なくとも1つを有する
自律移動ロボット(100)。
【請求項12】
請求項6乃至請求項11の何れか一項に記載の自律移動ロボット(100)であって、
前記センサモジュール(120)は、少なくとも1つの慣性測定ユニットを有し、前記少なくとも1つの慣性測定ユニットは、前記少なくとも1つの慣性測定ユニットの加速度及び角速度のうち少なくとも1つを検出するように構成されている
自律移動ロボット(100)。
【請求項13】
請求項12に記載の自律移動ロボット(100)であって、
前記安全モジュール(150)は、
前記慣性測定ユニットの加速度及び/又は角速度に基づいて前記自律移動ロボット(100)の安定性を判定し、危険であるか又は危険でないかに分類し、
前記自律移動ロボット(100)の前記安定性が危険であると分類された場合には、前記自律移動ロボット(100)の動きを変更するか、又は、停止させる
ように構成されている
自律移動ロボット(100)。
【請求項14】
請求項1乃至請求項13の何れか一項に記載の自律移動ロボット(100)であって、
前記自律移動ロボット(100)は、前記環境の地図に基づいて前記環境を移動し、前記地図は、前記環境内の障害物に関する情報を有するように構成されている
自律移動ロボット(100)。
【請求項15】
請求項6乃至請求項14の何れか一項に記載の自律移動ロボット(100)であって、
前記安全モジュール(150)は、さらに、
前記センサモジュール(120)によって提供される情報、及び
請求項14を参照する限り、前記環境の前記地図に含まれる情報
のうちの少なくとも一方に基づいて危険な状況を検出するように構成されている
自律移動ロボット(100)。
【請求項16】
請求項1乃至請求項15の何れか一項に記載の自律移動ロボット(100)であって、
前記安全モジュール(150)は、前記安全モジュール(150)が前記自律移動ロボット(100)の動きの変更又は停止をする場合には、前記制御モジュール(140)に通知するように構成されている
自律移動ロボット(100)。
【請求項17】
請求項1乃至請求項16の何れか一項に記載の自律移動ロボット(100)であって、
前記安全モジュール(150)による前記自律移動ロボット(100)の動きの変更又は停止は、前記制御モジュール(140)により前記駆動モジュール(170)に送信された制御コマンドの書き換え又は却下を含む
自律移動ロボット(100)。
【請求項18】
請求項1乃至請求項17の何れか一項に記載の自律移動ロボット(100)であって、
前記自律移動ロボット(100)は、内部電源を有し、前記内部電源は、前記駆動モジュール(170)に電力を供給し、前記自律移動ロボット(100)の動きの変更又は停止をすることには、前記駆動モジュール(170)を前記内部電源から切り離すことが含まれる
自律移動ロボット(100)。
【請求項19】
請求項1乃至請求項18の何れか一項に記載の自律移動ロボット(100)であって、
前記駆動モジュール(170)は、少なくとも2つの駆動車輪(171)を有し、前記少なくとも2つの駆動車輪(171)は、電気駆動装置に接続され、前記自律移動ロボット(100)を前記環境内で移動させるように構成されている
自律移動ロボット(100)。
【請求項20】
請求項1乃至請求項19の何れか一項に記載の自律移動ロボット(100)であって、
前記安全モジュール(150)が、
前記自律移動ロボット(100)の前記環境内の障害物を検出し、
前記自律移動ロボット(100)の前記環境内で障害物が検出された場合には、前記自律移動ロボット(100)の最大許容速度を下げるように構成
されている
自律移動ロボット(100)。
【請求項21】
請求項1乃至請求項20の何れか一項に記載の自律移動ロボット(100)であって、
前記自律移動ロボット(100)は、作業モジュール(160)をさらに有し、前記作業モジュール(160)は、フロア面の処理をするように構成されている
自律移動ロボット(100)。
【請求項22】
請求項1乃至請求項20の何れか一項に記載の自律移動ロボット(100)であって、
前記自律移動ロボット(100)は、物体を運搬するための運搬台(104)又は把持アームを有する自律移動ロボット(100)。
【請求項23】
請求項1乃至請求項22の何れか一項に記載の自律移動ロボット(100)であって、さらに、通信モジュール(130)を有し、
前記通信モジュール(130)は、
ヒューマン・マシン・インターフェース(200)、及び、
外部デバイス(300)のうちの少なくとも1つへの通信接続を確立するように構成されている
自律移動ロボット(100)。
【請求項24】
請求項23に記載の自律移動ロボット(100)であって、
前記制御モジュール(140)は、前記通信接続を介して受信したデータに基づいて前記駆動モジュールのための制御コマンドを生成するように構成されている
自律移動ロボット(100)。
【請求項25】
請求項23又は請求項24に記載の自律移動ロボット(100)であって、
前記通信接続は、
直接無線接続、
ローカル無線ネットワーク接続、及び
インターネット接続
のうちの少なくとも1つを有する
自律移動ロボット(100)。
【請求項26】
請求項1乃至請求項25の何れか一項に記載の自律移動ロボット(100)であって、
前記制御モジュール(140)は、プロセッサを有し、前記プロセッサは、制御ソフトウェアを実行するように構成され、
前記安全モジュール(150)は、さらに、別個のプロセッサを有し、前記別個のプロセッサは、危険な状況を検出するためのソフトウェアを実行するように構成されている
自律移動ロボット(100)。
【請求項27】
自律移動ロボット(100)を制御する方法であって、
前記自律移動ロボット(100)を環境内で移動させるように構成された駆動モジュール(170)による前記自律移動ロボット(100)の動き
及び/又は作業モジュール(160)による前記自律移動ロボット(100)のタスクの実行を制御モジュール(140)によって制御するステップであって、
前記制御モジュール(140)から
前記駆動モジュール(170)に
第1の制御コマンドを送信する
か、前記制御モジュール(140)から前記作業モジュール(160)に第2の制御コマンドを送信するか、又は、前記制御モジュール(140)から前記駆動モジュール(170)及び前記作業モジュール(160)に各々第1の制御コマンド及び第2の制御コマンドを送信することを含み、
前記第1の制御コマンドは、前記自律移動ロボット(100)の動きを制御するためのものであり、前記第2の制御コマンドは、前記自律移動ロボット(100)のタスクの実行を制御するためのものであるステップと、
安全モジュール(150)により
前記制御モジュール(140)とは独立して前記自律移動ロボット(100)の振る舞いを監視し、所定の基準に基づいて前記自律移動ロボット(100)の現在の動き
又はタスクの実行を危険として分類する
ことにより危険な状況を検出して前記安全モジュール(150)が前記駆動モジュール(170)又は前記作業モジュール(160)に少なくとも1つの第3の制御コマンドを送信するステップと、
前記動き
又は前記タスクの実行が危険として分類された場合に、
前記第3の制御コマンドにより前記自律移動ロボット(100)の動き
又はタスクの実行の変更又は停止をするステップと、
を有する方法。
【請求項28】
請求項27に記載の自律移動ロボット(100)を制御する方法であって、
検出された危険な状況に対する前記制御モジュール(140)の反応を監視するステップと、
前記制御モジュール(140)の反応を、所定の基準に基づいて適切又は不適切として分類するステップと、
をさらに有する方法。
【請求項29】
請求項28に記載の自律移動ロボット(100)を制御する方法であって、
前記動きが危険であると分類され、前記制御モジュール(140)の前記反応が不適切と分類される場合にのみ、前記自律移動ロボット(100)の前記動きの変更又は停止をするステップをさらに有する方法。
【請求項30】
請求項27乃至請求項29の何れか一項に記載の自律移動ロボット(100)を制御する方法であって、
前記安全モジュール(150)が危険な状況を検出した場合に、前記制御モジュール(140)に通知するステップをさらに有する方法。
【請求項31】
請求項27乃至請求項30の何れか一項に記載の自律移動ロボット(100)を制御する方法であって、
前記安全モジュール(150)が前記自律移動ロボット(100)の動きの変更又は停止をした場合に、前記制御モジュール(140)に通知するステップをさらに有する方法。
【請求項32】
前記制御モジュール(140)と前記安全モジュール(150)の両方が前記駆動モジュール(170)又は前記作業モジュール(160)に制御コマンドを送信した場合には、前記制御モジュールからの制御コマンドを無視し、前記安全モジュールからの制御コマンドにのみ従う請求項1乃至請求項26の何れか一項に記載の自律移動ロボット(100)。
【請求項33】
前記制御モジュール(140)と前記安全モジュール(150)の両方が前記駆動モジュール(170)又は前記作業モジュール(160)に制御コマンドを送信した場合には、前記制御モジュールからの制御コマンドを無視し、前記安全モジュールからの制御コマンドにのみ従う請求項27乃至請求項31の何れか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、表面処理(床の清掃)、例えば、物体の運搬または領域の監視および検査を行うロボットなどの自律移動サービスロボット、およびそのような自律移動ロボットの制御方法に関する。
【背景技術】
【0002】
近年、自律移動式ロボット、特にサービスロボットは、家庭環境だけでなく職場環境でもますます使用されている。例えば、自律移動ロボットは、床面積の清掃、建物の監視、位置および活動に依存しない通信の実現、または物体の輸送に使用できる。
【0003】
自律移動ロボットには、通常、レーザスキャナ、超音波センサ、触覚センサなどのさまざまなセンサが装備されており、周囲の障害物を検出し、例えば、物体や人との衝突を防ぐ。この場合、例えば可能性のある立ち下がりエッジ(例えば階段)を検出してロボットの転倒を防止するために、床に向けられたセンサが知られている。転倒すると、ロボットまたは近くの物に損傷を与える可能性がある。また、移動ロボットの転倒の際に、人への危険が発生する可能性もある。センサで環境を検知してデータを評価することにより、ロボットは潜在的な危険を適時に検出し、危険の状況に応じて動きを調整することで事故を回避できる。
【先行技術文献】
【特許文献】
【0004】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
ますますインテリジェントなシステムを開発し市場に出すという要求と共に、自律移動ロボットで使用される行動ルーチンの複雑さは絶えず増大している。しかし、複雑さが増すと、通常は、多くの複雑なソフトウェアアプリケーションと同様に、エラーに対し動作異常を起こす可能性が高くなる。これは、ロボットが危険な状況を検出するためのセンサを有しているにもかかわらず、例えば故障、認識されないプログラミングエラーまたは外部からの望ましくない影響により、制御ソフトウェアが、検出された危険な状況に適切に応答しないことを意味する。ロボットが考えられるすべての危険な状況に適切かつ正確に反応するということを証明することは、制御ソフトウェアの複雑さが増すにつれてかなりの労力を要することになる。このような機能安全性の証明は、特定の用途では法律で要求される場合がある。機能安全性の要求もさまざまな規格の対象となっている(例えば、EN/IEC 61508およびEN/IEC 62061)。
【0007】
したがって、本発明の根底にある課題は、とりわけ、危険な状況を確実かつ証明可能に検知および回避する、自律移動ロボット用の堅牢な安全機構を提供することである。
【0008】
この課題は、請求項1に記載の自律移動ロボットおよび請求項27に記載の方法によって達成される。様々な実施形態およびさらなる発展は従属請求項の対象である。
【課題を解決するための手段】
【0009】
自律移動ロボットが記載される。本発明の一実施形態は、自律移動ロボットであって、環境内で前記自律移動ロボットを移動させるように構成された駆動モジュールと、駆動モジュールに制御コマンドを送信するように構成された制御モジュールであって、前記制御コマンドは、前記自律移動ロボットの動きを制御するものである制御モジュールと、安全モジュールと、を有し、前記安全モジュールは、所定の基準に基づいて、自律移動ロボットの現在の動きを危険として分類することにより、危険な状況を検出し、前記現在の動きが危険として分類された場合に前記自律移動ロボットの動きを変更又は停止する。
【0010】
自律移動ロボットを制御する方法が記載される。本発明の一実施形態は、自律移動ロボットを制御する方法であって、前記制御モジュールによって前記自律移動ロボットの動きの制御をするステップであって、前記動きの前記制御は、制御モジュールから駆動モジュールに制御コマンドを送信することを含み、前記駆動モジュールは、前記自律移動ロボットを環境内で移動させるように構成されるステップと、安全モジュールにより危険な状況を検出するステップと、危険な状況が検出された場合、所定の基準に基づいて前記自律移動ロボットの現在の動きを危険として分類するステップと、前記動きが危険として分類された場合に、前記安全モジュールにより前記自律移動ロボットの動きの変更又は停止をするステップと、を有する。
【発明の効果】
【0011】
危険な状況を確実かつ証明可能に検知および回避する、自律移動ロボット用の堅牢な安全機構が提供できる。
【図面の簡単な説明】
【0012】
【
図1】例として、様々な自律移動ロボットならびに可能性のある様々な危険な状況を示す図である。
【
図2】自律移動ロボットの一例の構成を示すブロック図である。
【
図3】自律移動ロボットを制御する方法を示すフローチャートである。
【
図4】自律移動ロボットの裏面の一例を示す平面図である。
【発明を実施するための形態】
【0013】
本発明は、図面に示される実施形態を参照してより詳細に説明される。図は必ずしも一定の縮尺ではなく、本発明は提示された実施態様に限定されない。むしろ、本発明の根底にある原理を表すことに重点が置かれている。
【0014】
図1は、自律移動ロボット100の様々な例、ならびに起こり得る危険な状況を示している。
図1(a)は、例えば、床面を掃除、特に床面のゴミを吸い取るために構成された掃除ロボットを示す図である。掃除ロボットは、通常、少なくとも3つの車輪(
図1(a)には図示せず)で前方に移動する。さらに、掃除ロボットの裏側には、通常、ロボット100が床面上を移動する間に汚れを集めるための回転ブラシなどが設けられている。
図1(b)に示すように、階段の段差のような立ち下がりエッジを越えて転倒すると、掃除ロボットが損傷する可能性がある。加えて、ロボット100が、その上で落下したりそれにぶつかったりすると、床面、近くの物体、または人間にも損傷が生じる可能性がある。したがって、一部の自律移動ロボット100は、転落を回避するために階段の段差などの立ち下がりエッジを適時に検出することができるフロアクリアランスセンサ(
図1には図示せず)を有している。フロアクリアランスセンサは、フロア検出センサ又は、フロアセンサとも呼ばれる。
【0015】
図1(c)はテレプレゼンスロボットの一例を示す図である。テレプレゼンスロボットは、通常、例えば、ディスプレイ、スマートフォン、タブレットなどのようなインターフェース101(ヒューマン・マシン・インターフェース(HMI)としても知られるユーザインターフェース)を有する。このインターフェース101は、ロボット100の垂直アーム102の上端に取り付けられている。垂直アーム102の下端には、駆動モジュール103を有するロボット本体が取り付けられている。例えば、駆動モジュール103は、テレプレゼンスロボットが前進するための1つ以上のモータおよび2つ以上の車輪を含み得る。ロボット100は独立してユーザを追跡することができるので、テレプレゼンスロボットは基本的に、ユーザの位置および活動に関係なく一方向のコミュニケーションを可能とする。ロボット100のスリムな形状の構成およびインターフェース101の垂直アーム102の上端部への取り付けにより、このようなテレプレゼンスロボットは比較的高い重心を有する。このため、基本的に、ロボットは自身でバランスを取る。しかしながら、例えば、急勾配の表面上を移動するとき、ロボット100はひっくり返る可能性があり、これにより装置が損傷を受ける可能性がある。加速度が高すぎたり、敷居や段差を超えたりした場合でも、ロボット100の転倒が発生する可能性がある。また、ロボット100が傾いたり、転倒したりすると、周囲の床面、近くのものや人が損傷する可能性がある。テレプレゼンスロボットの傾く一例は、
図1(d)に示されている。このため、テレプレゼンスロボットは、ロボット100の状態(特に傾斜)、加速度および/または角速度を決定するように構成されたセンサ(
図1には図示せず)を有することができる。同様に、テレプレゼンスロボットは、ロボットの走行挙動を適合させてロボットの傾きを回避するために敷居(例えば、ドア敷居)又は段差を検出するセンサを含むことができる。
【0016】
図1(e)は、補助ロボット、特に運搬ロボットの一例を示す図である。運搬ロボットは通常、運搬台104を有し、その上に、皿やグラスなどの搬送される物体が置かれる。運搬ロボットの裏面には、例えば車輪(
図1(e)には示されていない)が設けられ、これにより運搬ロボットは移動することができる。このようなロボット100は、例えば、日常生活の中で高齢者を支援することができ、したがって高齢者が独立して生活することを可能にする。介護施設でも、看護職員を職場で支援するために運搬ロボットを使用することができる。運搬ロボットには他の多くの用途(例えば、倉庫、レストランなど)が考えられる。運搬ロボットにとって、通常、運搬台104上に置かれた物品がひっくり返ったり動いたりしないようにゆっくりとした加速を確実にすることが重要である。例えば、運搬台104の領域に、運搬されるべき対象物の重量を検出するセンサ(
図1(e)には示されていない)を配置することができる。どの種類の対象物が運搬台104上に配置されているかをセンサによって決定することもできる。さらに、輸送されるべき物体またはロボット100全体の傾斜を回避するために衝突が回避されることが基本的に重要である。この目的のために、ロボット100は、ロボット100の環境内の静止または移動する物体または人を検出するように(場合によっては関連センサ信号処理を用いて)構成された多種多様なセンサ(例えばレーザ距離計、光学三角測量センサ、カメラなど)を有することができる。
【0017】
したがって、基本的に、様々な方法を使用して、ロボットをその使用領域で自律的に移動させ、その際に自律移動ロボット100にとって起こり得る危険な状況を認識し、認識された危険な状況に適切に対応することによって事故を回避することが可能である(それによって事故は回避されるか、少なくとも軽減される)。このようなロボット100は通常、自律移動ロボット100を制御するための制御ソフトウェアを含む。しかしながら、制御モジュール内のプロセッサによって実行されるそのような制御ソフトウェアは、ますます複雑になりつつある。制御ソフトウェアの複雑さが増すと、望ましくないプログラミングエラーのリスクが高まる。さらに、ますます多くの自律移動ロボット100がインターネットに接続されている。これにより、例えばユーザがロボット100の近くにいなくても、ロボット100を制御することができる。同様に、ロボット100のファームウェア、特に制御ソフトウェアはインターネットを介して更新することができる。たとえば、ソフトウェアアップデートは自動的に、または、ユーザの要求に応じて、ダウンロードすることもできる。この機能は、オーバ・ジ・エア・プログラミング(OTAプログラミング)、OTAアップグレード、またはファームウェア・オーバ・ジ・エア(FOTA)とも呼ばれる。
【0018】
しかしながら、自律移動ロボット100をインターネットに接続することは、見知らぬ人がロボット100にアクセスする危険(例えば、ロボットのいわゆるハッキング、クラッキング、またはジェイルブレイク)をもたらし、自律移動ロボット100が危険な状況に正しく反応しないように自律移動ロボット100に影響を与え、それにより事故が発生する恐れがある。制御ソフトウェア全体は、ロボット100自体、またはロボット内に配置された記憶媒体に格納することができる。しかしながら、制御ソフトウェアの一部をクラウドサーバ等の外部装置に保存することも可能である。制御ソフトウェアの一部が外部装置に格納されている場合、ロボット100の一部は一般にもはやリアルタイム対応ではない。ロボット100は、その制御ソフトウェアアルゴリズムが非決定論的モンテカルロ法または、例えばディープラーニング学習(ディープ機械学習としても知られる)などの機械学習を使用していることが知られている。モンテカルロアルゴリズムは、上限のある確率で誤った結果を出すことが許されているランダム化されたアルゴリズムである。通常は、決定論的アルゴリズムと比較して、モンテカルロアルゴリズムは効率的である。ディープラーニングは、通常、入力層と出力層との間に多数の隠れ層を有し、それによって大規模な内部構造を有する、人工ニューラルネットワークの一種の最適化方法である。モンテカルロアルゴリズムでも機械学習でも、因果関係は最初から決定されないため理解が困難である。このため、ロボット100の安全な動作を証明し、事故を回避するためにロボット100の制御ソフトウェアがいかなる危険な状況においても正しくかつ適時に反応することを保証することは非常に困難である。同時に、そのような新しいロボット制御方法の使用は、自律移動ロボット100をより知的にするために必要である。改善された知能は、ロボット100がユーザの生活およびそれらの環境により容易に適合することを可能にする。
【0019】
したがって、ロボット100の知能を制限することなく、安全が証明可能であるロボットの振る舞いを可能にすることが重要であるかまたは必要であり得る。一実施形態によれば、自律移動ロボット100は、(上述の制御ソフトウェアが実行される)制御モジュールに加えて、リスク検出モジュールとも呼ばれることがある安全モジュール150を含む。これは
図2のブロック図に例示されている。ここに記載の例では、安全モジュール150は制御モジュール140から独立して動作する。基本的に、安全モジュール150は、制御モジュールから独立してロボットの行動を監視し、危険な状況を認識するように構成されている。検出された危険状況におけるロボットの行動が「誤り」、「危険」、または「不適切」であると見なされた場合、安全モジュール150は適切な対策(安全対策)を開始することができる。対策としては、例えば、ロボット100を停止させたり、ロボット100の進行方向を変えたりすることが考えられる。この際、正しい動作を決定することよりも、安全ではないためどの動作を実行すべきでないかを決定することが通常容易であるという事実が利用される。
【0020】
図2に示す例によれば、ロボット100は他の様々なモジュールを有することができる。一般に、モジュールは、独立型アセンブリ(ハードウェア)、特定のロボット分野で所望のタスクを実行するロボット100を制御するためのソフトウェアのコンポーネント、またはその両方の組み合わせ(例えば、周辺コンポーネントを取り付けた専用ハードウェアおよび適切なソフトウェアおよび/またはファームウェア)であり得る。ロボット100の挙動を管理するソフトウェア(制御ソフトウェア)は、ロボット100の制御モジュール140で(制御ソフトウェアを実行するプロセッサおよび制御ソフトウェアが格納されるメモリによって)実行され得る。このプロセッサは、例えば、マイクロコントローラに含まれ得る。制御ソフトウェアの実行は、例えばホームネットワーク(例えば、LAN、WLAN)またはインターネット(クラウド)でアクセス可能な外部デバイス300(例えば、パーソナルコンピュータ、サーバなど)に少なくとも部分的に外部委託することができる。制御モジュール140は、自律移動ロボット100がその使用領域で自律的に移動し、タスクを実行することを可能にするために必要なすべての機能を有してもよい。特定の方法ステップまたは部分ステップがロボットによって実行される場合、方法ステップまたは部分ステップの全体が必ずしもロボットのハードウェアおよびソフトウェアのみによって実行される必要はない。また、ロボット100(通常はロボットの制御モジュール140)が単に方法ステップまたは部分ステップの実行が行われるように指示し、方法ステップまたは部分ステップの実際の実行が外部ハードウェアおよび/またはソフトウェア(例えば、データ接続を介してロボットと通信する外部コンピュータ又はサーバ330)によって行われることもあり得る。ロボットの「知性」は、ロボットのさまざまなモジュールに分散することもでき、必ずしも中央制御モジュールに集中する必要はない。特定の方法ステップまたは部分ステップがロボットによって実行される場合、ロボットの1つのモジュール(たとえば、制御モジュール140)のこれらの方法ステップまたは部分ステップは、複数のモジュールが一緒に、および/または外部ハードウェアおよびソフトウェアによって実行することができる。
【0021】
制御モジュール140は、センサモジュール120および/または通信モジュール130によって提供される情報に基づいて、駆動モジュール170および/または作業モジュール160のための制御コマンドを生成するように構成されている。さらに、制御ソフトウェアには、オブジェクト認識と作業計画の機能がある。さらに、制御モジュール140は、センサモジュール120によって提供される情報に基づいて危険な状況を認識し、危険を回避または軽減するのに適した制御コマンドを生成するように構成されてもよい。本実施形態では、自律移動ロボット100は、例えば、電動機、変速機および車輪を有し得る駆動モジュール170を有する。駆動モジュール170により、ロボット100は、理論的には、その使用領域のあらゆる点に到達することができる。ロボット100は、ヒューマン・マシン・インターフェース200(HMI)および/または他の外部デバイス300への通信接続を確立するための通信モジュール130をさらに含むことができる。通信接続は、例えば、直接無線接続(例えば、ブルートゥース(登録商標))、ローカル無線ネットワーク接続(例えば、WiFiまたはZig-Bee)、またはインターネット接続(例えば、クラウドサービスへ)であってもよい。例えば、ヒューマン・マシン・インターフェース200は、自律移動ロボット100に関する情報(例えば、バッテリー状態、現在の作業指示、地図情報など)をユーザに提供してもよく、例えば、自律移動ロボット100の作業指示に関連するユーザーコマンドを受信してもよい。ヒューマン・マシン・インターフェース200としては、例えば、タブレットPC、スマートフォン、スマートウォッチ、コンピュータまたはスマートテレビが用いられる。場合によっては、ヒューマン・マシン・インターフェース200は、ロボット100に直接統合されてもよく、キー、ジェスチャ、および/または音声入出力を介して操作されてもよい。前述の外部ハードウェアおよびソフトウェアの少なくとも一部分がヒューマン・マシン・インターフェース200に配置されてもよい。外部デバイス300の例は、計算および/またはデータを交換できるコンピュータおよびサーバ、追加情報を提供する外部センサ、または自律移動ロボット100が協力および/または情報を交換する他の家電製品(例えば、他のロボット)である。
【0022】
ロボット100は、例えば、床面の清掃またはアイテムの輸送などの特定のプロセスを実行する作業モジュール160(プロセスモジュール)をさらに含むことができる。作業モジュールは、例えば、床面を清掃するための清掃モジュール(例えば、ブラシ、吸塵装置)、トレイとして設計された高さ調整可能および/または旋回可能な運搬台、または物体をつかんで輸送するための把持アームであってもよい。テレプレゼンスロボットや監視ロボットなどの場合、作業モジュール160は必ずしも必要ではない。たとえば、テレプレゼンスロボットは通常、空間的に互いに離れた複数の人の間で通信するために、たとえばマイク、カメラ、画面などを有するマルチメディアユニット(
図1、インターフェース101を参照)を備えたヒューマン・マシン・インターフェース200に接続された複雑な通信モジュール130を備えている。別の例は、センサモジュール120を使用して監視走行で特定の(異常な)イベント(例えば、火災、光、無許可の人など)を検出し、それに応じて制御ステーションに通知できる監視ロボットである。
【0023】
自律的にタスクを実行できるようにするために、ロボット100は、オプションとして、自身の環境で自分自身の方向づけができるナビゲーションモジュールを備えていてもよい。ナビゲーションモジュールは、制御モジュール140の構成要素であってもよく、したがって
図2には明示的に示されていない。方向付けとナビゲーションのために、ナビゲーションモジュールは、センサモジュール120により検出(及びローカライズ)できるランドマーク(家具、ドアフレーム、部屋のコーナーなど)のナビゲーション特徴(それによりロボットの方向づけができる特徴)を処理し、ロボットの使用領域のナビゲーションに使用できる。そのようなナビゲーションモジュールは、例えば、検出及び回避戦略(sense and avoid strategy)および/または同時ローカリゼーションおよびマッピングアルゴリズム(SLAM, Simultaneous Localization and Mapping Algorithm)、および/またはロボット領域の1つまたは複数の地図を用いて動作することができる。このようなロボット使用領域の地図は、使用中にロボットが再作成したり、使用時にすでに存在する地図を使用したりできる。使用時にすでに存在する地図は、たとえば探査走行など、以前の使用中にロボットによって作成されたものでも、別のロボットおよび/または人間によって利用可能にされたものでもよく、メモリモジュール(
図2に不図示)に永続的に保存されても良い。メモリモジュールは、多くの場合、不揮発性メモリ(ソリッドステートディスク(SSD)など)で構成される。あるいは、ロボット使用領域の永続的に保存された地図は、ロボットの外部、たとえばロボットのユーザの家庭内のコンピュータ(タブレットPC、ホームサーバなど)またはインターネット経由でアクセス可能なコンピューター(たとえばクラウドサーバ)に保存されても良い。
【0024】
センサモジュール120は、例えば、ロボット100の環境を検出するため、および/またはロボット100の現在の状態を検出するための1つまたは複数のセンサを含むことができる。例えば、センサモジュール120は、送出された信号の三角測量または通過時間測定を用いて動作する光学および/または音響センサなどの環境内の物体までの距離を測定するための1つまたは複数のセンサ(例えば、三角測量センサ、飛行時間カメラ(Time-Of-Flight-Kamera)、レーザスキャナ、超音波センサなど)を含み得る。適切なセンサの他の典型的な例は、環境の画像を取得するためのカメラ、物体との物理的接触に反応する触覚センサ、加速度センサ、回転速度センサ、走行距離計、および/または前述の表面までの距離を検出する地上高センサである。地上高センサは、たとえば、可能性のある立ち下がりエッジを検出できる。ロボット100の現在の状態を検出するためのセンサの例は、アクチュエータ、特にモータの状態を決定するための電流センサ、ロボットが床面にしっかりと接触しているかどうかを決定するための車輪接触スイッチ、ロボット100の傾きを検出するための姿勢センサ、ホイールエンコーダなどの走行距離計、たとえば、ロボット100の動きを検出するための加速度センサ、回転率センサ(たとえば、慣性測定ユニット(FMU)に組み込まれている)などの慣性センサもある。
【0025】
さらに、自律移動ロボット100は、バッテリ(
図2には図示せず)などの電源を有してもよい。バッテリーは、例えば、自律移動ロボット100が基地局(図示せず)にドッキングされたときに充電され得る。基地局は、例えば、電力網に接続されてもよい。自律移動ロボット100は、バッテリーの充電が必要なとき、またはロボット100がそのタスクを完了したときに、自主的に基地局を目指して進むように構成されてもよい。
【0026】
安全モジュール150は、制御モジュール140とは無関係に独立してロボット100の自律的な動きの選択された安全関連の観点を監視するように構成されている。安全モジュール150は、制御モジュール140が危険な状況で応答しないか不十分なときに介入するようにさらに構成される。不適切な反応とは、危険な状況を回避できないか、または別の危険な状況を引き起こす反応である。不適切な状況とは、たとえば、ロボット100が傾斜または転倒する可能性があり、それにより人間の介入なしではロボット100のさらなる動作が不可能になり、又は、ロボット、周囲の物体、床、又は、周りに立っている人に損傷が発生し得る反応である。制御モジュール140からの上述の独立性を達成するために、安全モジュール150は、例えば、独自のプロセッサとメモリモジュールを有してもよい。たとえば、安全モジュールはロボットの別の構成グループとして実現され得る。メモリモジュールには、プロセッサが実行できる危険検出用のソフトウェアを保存できる。この場合、安全モジュール150が独自の別個のプロセッサと独自の別個のメモリモジュールとを持つことも可能である。しかし、セキュリティモジュール150がプロセッサおよび/またはメモリモジュールをロボット100の他の1つまたは複数のモジュールと共有することも可能である。一実施形態では、プロセッサの1つのプロセッサコアが安全モジュール150に割り当てられ、他のプロセッサコアが他のモジュール(例えば、制御モジュール140)によって使用される。例えば、制御モジュール140と安全モジュール150はプロセッサを共有してもよい。それにもかかわらず、安全モジュール150のソフトウェアは、制御モジュール140または他のモジュールのソフトウェアとは独立して動作してもよい。ただし、安全モジュール150が独自のプロセッサとメモリモジュールを持っている(またはプロセッサのプロセッサコアを独占的に使用している)場合、これにより干渉が減り、安全に関する安全モジュール150が確実に適時に応答できるようになる。
【0027】
危険検出用のソフトウェアは、危険な状況および危険な状況での反応の、追跡可能な、したがって証明可能な、信頼できる検出を保証するために、可能な限り単純に構成され得る。一実施形態によれば、自律移動ロボット100が複数の安全モジュール150を有し、安全モジュール150のそれぞれは、特定の危険な状況に対応するように構成された危険検出ソフトウェアを有し、特定の危険な状況に特化することも可能である。また、例えば、安全モジュール150の様々な態様およびタスクがハードウェアで(すなわち、特殊なソフトウェアなしで)実装されることも可能である。これにより、危険な出来事に対する非常に高速な応答が保証される。
【0028】
例えば、安全モジュール150および危険検出ソフトウェアの簡単化という目標を達成する1つの方法は、安全モジュール150にさまざまな反応的および/または行動的ロボット工学の概念を適用することである。そのような概念では、例えば、ロボット100の行動の仕方は、センサモジュール120の現在のセンサデータのみに基づいて決定される。しかし、そのような概念とは異なり、例外的な状況、例えば即時の危険が検出され、制御モジュール140が適切に応答しない場合には、安全モジュール150は、ロボット100の制御に介入する。この目的のために、例えば(センサモジュール120によって供給される現在の情報に基づいて)、安全モジュール150の介入なしには事故につながる可能性のある禁止または潜在的に危険な動きを決定することが可能である。安全モジュール150は、ロボット100がそのような禁止または危険な動きを実行するおよび/または実行すべきときに介入して、この禁止または危険な動きを阻止または変更するように構成される。例えば、安全モジュール150は、1つ以上のフロアクリアランスセンサ(例えば、センサモジュール120に含まれる)に結合されてもよい。フロアクリアランスセンサがフロアまでの異常に高い距離を示す場合(たとえば、ロボットが端を越えようとしているため、またはロボットが持ち上げられているため)、安全モジュール150はこの状況を危険な状況と判断する場合がある。問題のフロアクリアランスセンサがロボットの(進行方向の)正面にある場合、安全モジュール150は、現在の動きを潜在的に危険なものとして分類し、現在の動き停止又は変更(例えば、後退など、)することができる。この場合、安全モジュール150が危険な状況を検出するために使用する基準と、安全モジュール150が現在の動きを(危険または危険でないと)評価するために使用する基準は実質的に同じである。進行方向の前方にある落下センサが距離の増加を示している場合、危険な状況が検出され、現在の動きが危険であると評価される。安全モジュールは制御モジュールを「オーバライド」し(覆し)、駆動モジュールに現在の動作を停止または変更させる。特定の危険な状況の検出では(たとえば、エッジから急な下り坂が検出された場合)、安全モジュールはロボットの現在の動きを即座に停止し得る(実質的に現在の動きの継続は不適切/危険と見なされるため)。
【0029】
自律移動ロボット100の制御ソフトウェアは、通信モジュール130の接続(例えば、インターネット)を介して更新(ソフトウェアアップデート)され、又は、この接続を介して機能を追加(ソフトウェアアップグレード)してロボットの適用範囲を拡張され得る。ただし、通常、アップデートまたはアップグレードを行うと、制御ソフトウェアにエラーが追加されるリスクが生じる。加えて、例えば、ロボット100のインターネットへの接続は、第三者への攻撃の可能性のあるポイントを表し、したがって第三者は、権限なくロボットへのアクセスを取得し、これを制御し、それにより損傷を引き起こす可能性がある。この理由のために、安全モジュール150の危険検出ソフトウェアの更新は、例えば、追加の安全対策の下でのみ、および/または例外的な状況でのみ実行することができ得る。たとえば、危険検出ソフトウェアのアップデートはできないか、アップデートは有線通信インターフェースを介してのみ行うことができるか、またはアップデートはアップデートされるソフトウェアのソースの予めの安全な認証後にのみ行うことができる(たとえば、ソフトウェア証明書の交換後のみ)ように構成することができる。アップデートされるソフトウェアのソースの認証後に危険検出ソフトウェアと制御ソフトウェアの両方がアップデートされる場合、危険検出ソフトウェアと制御ソフトウェアとで異なる認証方法を使用し得る。原則として、任意の適切な認証方法を使用し得る。
【0030】
図3は、一例として、自律移動ロボット100を制御する方法を示している。第1のステップ301において、安全モジュール150は情報を受け取ることができる。情報は、例えば、センサモジュール120から送信されてもよく、センサモジュール120からの情報は、例えば、ロボット100の内部状態および/または環境に関連し得る。追加または代替として、安全モジュール150は、制御モジュール140によって駆動モジュール170に送信された制御コマンドに関する情報を受信してもよい。しかし、安全モジュール150は、追加的または代替的に、駆動モジュール170から情報を受け取ることも可能であり、駆動モジュール170からの情報は、例えば、現在の動き(例えば、方向および速度)および制御モジュール140から受け取った制御コマンドに関係し得る。追加または代替として、安全モジュール150は、制御モジュール140から作業モジュール160に送信された制御コマンドに関する情報を受信してもよい。このため、この情報は、例えば、ロボット100の環境に関する情報(例えば、立ち下がりエッジ、敷居、又は、障害物、又は障害物(例えば、人)の移動の情報)を含み得る。ロボット100の環境に関する受信された情報は、安全モジュール150によって、ロボット100の現在の動きまたは計画された動きに関する情報と関連付けられ得る。この場合、情報は、受信後に安全モジュール150で直接処理され、及び/または処理前に事前定義可能な期間または事前定義された距離(ロボット100が進む距離)保存され得る。
【0031】
加えて、受信された情報はまた、例えばナビゲーションモジュールによって作成および使用されるロボット100の環境の地図データに関連してもよい。たとえば、地図データには、立ち下がりエッジまたはその他の障害物に関する情報が含まれ得る。ロボット100は、通常の動作では、地図上の現在の自身の位置を知っている。
【0032】
受信された情報に基づいて、安全モジュール150は、危険な状況が存在するかどうかを確認することができる(ステップ302)。危険な状況とは、たとえば、立ち下がりエッジ、ロボット100の不利な場所(たとえば、湿った、滑らかな、急傾斜な、または不均一な表面)、または、ロボット100のすぐ近くの環境に障害物があること、又は、これらに向かう障害物(例えば、人)があることである。危険な状況が検出されない場合、何もせず、安全モジュール150はステップ301(情報の収集と分析)を続行する。
【0033】
安全モジュール150が危険な状況を検出した場合、安全モジュール150は、まず、危険な状況を検出したことを制御モジュール140に通知することができる(ステップ303)。しかしながら、検出された危険状況について制御モジュール140に通知することは必ずしも必要ではない。安全モジュール150は、「サイレントオブザーバ」としても機能し、制御モジュール140に通知することなく危険状況を検査することができる。さらに、安全モジュール150は、制御モジュール140が、検出された危険状況に適切に応答しているかどうかを検査してもよい。すなわち、安全モジュール150は、制御モジュール140が、ロボット100が障害物(または、立ち下がりエッジなど)に向う(それにより危険状況を悪化させる)ように駆動モジュール170を駆動しているか、またはロボット100が危険な状況から離れ、減速し、または停止するように駆動モジュール170を駆動しているかを検査することができる。この目的のために、安全モジュール150は、識別された危険状況に応じて、最初に、どの動きが原則としてロボット100の事故につながり得るかを判定することができる(ステップ304)。たとえば、事故につながる可能性のある動きは「危険な動き」に分類され、事故につながる可能性が低い動きは「安全な動き」と分類され得る。危険な動きは、例えば、ロボット100が直接、立ち下がりエッジまたは障害物に向かって移動する動きである。また、ロボット100が障害物にぶつかり、それにより、よろめき、落下、転倒するか、又は接触により障害物を損傷する可能性のある動きは、危険として分類することができる。
【0034】
動きを安全または危険として分類した後、安全モジュール150は、ロボット100の現在の動きが危険な動きまたは安全な動きであるかどうかを検査し得る(ステップ305)。安全モジュール150は、例えば、ロボット100がまだ危険な状況に向かって動いているか、それとも障害物を通り抜ける可能性があるか、方向を変えて危険な状況から離れるかを検査することができる。この目的のために、セキュリティモジュール150は、例えば、制御モジュール140から駆動モジュール170に送信される制御信号を評価することができる。代わりに、または追加で、駆動モジュールの動きを直接評価することもできる(たとえば、ホイール位置、ホイールの回転速度など)。安全モジュール150が、ロボット100が(さらに)危険な動きをしていないと判断した場合、何もせず、安全モジュール150はステップ301の動作に進む。しかしながら、ロボット100が危険な動きをしていることを安全モジュールが認識すると、ロボット100および周囲の物体の安全を確保し、事故を回避または少なくとも軽減する対策を開始する(ステップ306)。対策は、例えば、制御モジュール140の制御コマンドを安全モジュール150の制御コマンドで上書きすること、または駆動モジュール170をロボット100の電源(バッテリー)から切断することを含み得る。駆動モジュール170が電源から切断されると、ロボット100は現在の位置で停止する。安全モジュール150の制御コマンドは、例えば、ロボット100を現在の位置で停止させる停止信号を含んでもよい。しかしながら、安全モジュール150の制御信号は、例えば、ロボット100にその方向および/またはその速度を変化させる、方向および/または速度コマンドを含むこともできる。たとえば、移動する物体がロボットの意図した経路を横切るときに速度を下げることで、事故を回避できる。多くの場合、例えば、ロボット100が速度を変えずに、わずかにまたはそれ以上に方向を変えれば十分である可能性がある。ロボット100が完全に反対の方向に移動すること、すなわち、例えば、180°回転または逆走することも考えられる。ただし、速度の低下も方向の変更も事故状況の回避につながらない場合(たとえば、障害物がすでに近すぎる場合)、通常は、ロボット100を停止(緊急停止)することで事故を確実に防止することができる。
【0035】
制御モジュール140と安全モジュール150の両方が駆動コマンド170に制御コマンドを送信する場合、例えば、制御モジュールの制御コマンドは無視され、安全モジュール150の制御コマンドのみが考慮される。その結果、制御モジュール140の制御コマンドは、いわば上書きされたり、却下されたりする可能性がある。しかしながら、安全モジュール150が制御コマンドを送信しない限り、制御モジュール140の制御コマンドが考慮され得る。安全モジュール150は、検出された危険な状況で、特に、制御モジュール140が検出された危険な状況で適切に応答しない場合にのみ制御コマンドを送信するように構成されているため、制御モジュール140の制御コマンドは、そのような危険な状況でのみ安全モジュール150の制御コマンドによって却下される。
【0036】
この場合、安全モジュール150は、対策についての情報を制御モジュール140に通知することが(オプションで)可能である(ステップ307)。制御モジュール140は、通知の確認をしてもよい(ステップ308)。通知の確認は、例えば、認識された危険な状況に適合した修正された制御コマンドを制御モジュール140が駆動モジュール170に送信することによって行うことができる。しかしながら、制御モジュール140が安全モジュール150に直接、確認を送信することも可能である。そのような確認時に、例えば、安全モジュール150によって中断された電源が復帰され得る。
【0037】
例えば、所定の時間(例えば、1秒)後に制御モジュール140から応答がないか有効な応答がない場合、安全モジュール150は、ロボット100の安全な動作がもはや保証されないと想定し得る。この場合、ロボット100は、オプションで永久的に停止されてもよい(ステップ309)。ロボット100が安全モジュール150への対策として以前に停止された場合、例えば再び動かされることなく、ロボット100の電源がオフにされてもよい。対策として、ロボット100の動きに変化をもたらす制御コマンドが安全モジュール150によって発行された場合、ロボット100は、応答がない場合に停止およびスイッチオフすることができる。例えば、リスタートは、ユーザが積極的に許可していから、又は、ユーザまたは技術者によってロボット100が修理されて(例えば、センサのクリーニング)から、可能となり得る。
【0038】
本発明の実施形態によれば、制御モジュール140は、ロボット100のさらなる動作を可能にするために、安全モジュール150により危険と分類される動きを実行させる要求を安全モジュール150に送信することができる。この要求は、制御モジュール140が安全モジュール150によって危険な動きに対する対策を通知された後に行われ得る。代替的または追加的に、要求を予防措置として行うことができ、これにより計画された動きについて安全モジュール150に事前に通知され得る。その結果、たとえば、計画された動きの中断を回避できる。安全モジュール150は、この要求を検査し、要求された動きが許可されるかどうかを制御モジュール140に通知し得る。センサモジュール120のセンサは、多くのロボットにおいて、ロボット100の前方への移動、すなわち、通常の移動方向、すなわちロボット100の前の領域の方向のみを測定するように構成されている。つまり、ロボット100の背後の領域に関する情報をまったく提供しないか、非常に限られた情報のみを提供し得る。例えば、ロボット100の逆方向の走行は、例えば、5cm未満または10cm未満の非常に短い距離だけが安全であると考えられ得る。したがって、これより長い逆方向の走行は、例えば、安全モジュール150によって不許可とされ得る。しかし、ロボット100がその電力供給を再充電できる基地局に到着するとき、又は離れるとき、例えば、より長い逆方向の走行が必要になる場合がある。原則として、安全モジュール150は、この場合、基地局への安全な到着および基地局からの離脱が可能なようにユーザによって基地局が適切に配置されたと想定することができる。ロボット100が基地局に到着するか、基地局を離れるかしなければならず、このためにより長い逆方向の走行が必要な場合、制御モジュール140は安全モジュール150に対応する要求を送ることができる。次に、安全モジュール150は、例えば、ロボット100が実際に基地局にいるかどうかを検査することができる。例えば、このために、ロボット100の対応する充電接点に電圧が印加されているかどうかを確認できる。代替として、例えば、基地局にドッキングするとき、接触スイッチが閉じられるように構成できる。したがって、安全モジュール150は、接触スイッチが閉じているかどうかを検査することができる。これらは単なる例である。ロボット100が基地局にいるかどうかは、さらに他の適切な方法で確認することができる。安全モジュール150は、ロボット100が基地局にいることを検出すると、基地局を離れるのに必要な逆方向の走行の距離が通常の許容距離を超える場合であっても、それを許可し得る。しかしながら、ロボット100が基地局にいないことを安全モジュール150が検出した場合、逆方向の走行の通常許可された距離のみが許可され得る。これは単なる例である。安全モジュール150が、危険であると分類された動きを例外的に安全であるとみなし、それを許可する様々な他の状況が考えられる。
【0039】
本発明のさらなる実施形態によれば、安全モジュール150は、自己テストを実行するように構成されている。この場合、自己テストは、例えば、セキュリティモジュール150に属するメモリモジュールの読み取りおよび書き込みテストを有することができる。そのような自己テストが失敗した場合、ロボット100の動作がユーザによって許可されるまで、ロボット100は永久的に停止され、電源がオフにされ得る。自己テストに失敗した後は、原則としてロボット100の安全な動作が保証されない。自己テストは、たとえば、様々な部品の冗長構成によって実現することもできる。したがって、例えば、安全モジュール150のプロセッサおよび/またはメモリモジュールが重複して有することができ、両方のプロセッサで危険検出ソフトウェアを実行することが可能である。両方のプロセッサの結果が同一であるか、許容できる偏差がわずかである限り、セキュリティモジュール150は適切に機能すると想定できる。
【0040】
本発明の別の実施形態によれば、安全モジュール150は、センサモジュール120のセンサの信頼できる動作を監視するように構成されてもよい。この場合に、安全モジュール150に情報を提供するセンサのみを監視すれば十分であり得る。このセンサの監視により、センサが、たとえば欠陥または汚れによって、誤ったデータまたは信頼できないデータを供給しているかどうかを検出できる。この場合、監視されるセンサは、誤動作を個別に検出し、これらを安全モジュール150に報告するように構成され得る。代替的または追加的に、センサは、センサが完全に機能している限り、意味のある測定データのみを安全モジュール150に供給するように構成され得る。例えば、フロアまでの距離の一般的な値ではなく、フロアまでの距離がゼロ(または無限大)である場合、フロアクリアランスセンサは機能しないことがわかる。代替的または追加的に、セキュリティモジュール150は、センサから受信したデータの一貫性をチェックし得る。例えば、安全モジュール150は、ロボット100の動きを決定するために使用されるセンサデータが、制御モジュール140によって送信された制御コマンドと一貫性があるかどうかを検査してもよい。1つまたは複数の障害のあるセンサ信号が検出された場合、ロボット100の安全な動作を保証できないため、ユーザが再び動作を許可するまでロボットを永久に停止し、電源を切ることができる。
【0041】
危険な動きは、直接のセンサ測定に基づいて安全モジュール150によって決定し得る。直接のセンサ測定は、例えば、フロアクリアランスセンサによる測定である。しかし、解釈されたセンサ測定に基づいて危険な動きを判断することもできる。解釈されたセンサ測定は、例えば、ロボット100のカメラによる記録の画像認識によって検出されたオブジェクトである。例えば、ロボット100は、ロボット100の環境における標識または人物およびそれらの動きを検出するように構成されてもよい。標識は、例えば、新しく洗浄された、したがって滑りやすいフロアを警告する、設置された警告標識であり得る。そのような、主にフロアに設置された警告標識は、たとえばその形状に基づいて、そのように認識され得る。警告標識の表記(「注意、滑る危険」など)または警告標識に付けられたマーク、例えばQRコード(登録商標)(クイックレスポンスコード)等が検出され得る。検出された標識に関する情報は、安全モジュール150に送信される。安全モジュール150は、この情報を使用して状況を評価し、必要に応じて、ロボットの動きを評価するための基準を調整し得る。例えば、滑りやすい床が検出された場合、安全モジュール150は、安全と見なされるロボット100の最大速度を低下させ得る。
【0042】
しかしながら、ステップ304では、危険な動きの代わりに安全な動きが決定され得る。次に、ステップ305で、安全モジュール150は、ロボット100がそのような安全な動きを行っているかどうかを確認することができる。安全と検出された動きと一致するいかなる動きもロボット100が行っていないことが認識される場合、対策が開始され得る。
【0043】
原則として、既知の危険な状況は、説明した方法で検出できる。既知の危険な状況は、ロボット100の安全性を確認するためのテスト状況で目的に合致するように調整できる。例えば、そのような試験では、ロボット100は、潜在的に危険な状況に意図的に持ち込まれ得る(例えば、ロボットを立ち下がりエッジの近くに配置する)。次に、制御モジュール140が駆動モジュール170に誤ったおよび/またはランダムな制御コマンドを送信する場合をシミュレートすることができる。その後、安全モジュール150が確実に事故を防止できるかどうかを観察することができる。
【0044】
図4は、自律移動ロボット100の下側の平面図を例示的に示している。
図4は、清掃ロボットの一例を示しており、ロボットの清掃モジュールは、明確にするために示されていない。図示されたロボット100は、駆動モジュール170に属する2つの駆動輪171と、前輪172とを有する。前輪172は、例えば従動車輪であってもよく、それ自体は駆動力を持たず、フロア上でのロボット100の動きに伴って動くだけである。前輪172は、フロアに実質的に垂直な軸を中心に360°回転可能であり得る(回転方向は
図4に破線の矢印で示されている)。駆動輪171はそれぞれ、電気駆動装置(例えば、電気モーター)に接続され得る。駆動輪171の回転により、ロボット100は前進する。ロボット100は、フロアクリアランスセンサ121をさらに含む。
図4に示す例では、ロボット100は、3つのフロアクリアランスセンサ121R、121M、121Lを有する。第の1フロアクリアランスセンサ121Rは、例えば、ロボット100の右側(進行方向に見て)に配置される。このとき、第1のフロアクリアランスセンサ121Rは、ロボット100を前部と後部とに等分する中心軸x上に配置する必要はない。例えば、第1のフロアクリアランスセンサ121Rは、中心軸xからわずかに前方に配置され得る。例えば、第2のフロアクリアランスセンサ121Lは、ロボット100の左側(移動方向に見て)に配置される。この場合、第2のフロアクリアランスセンサ121Lも中心軸x上に配置する必要はない。第2のフロアクリアランスセンサ12ILも同様に、中心軸xからわずかに前方に位置してもよい。例えば、第3のフロアクリアランスセンサ121Mは、ロボット100の正面中央に配置され得る。例えば、少なくとも1つのフロアクリアランスセンサ121が各車輪の前に配置されており、前方に走行するときに車輪が立ち下がりエッジを通過する前に立ち下がりエッジが検出されるようになっている。
【0045】
フロアクリアランスセンサ121は、ロボット100のフロアまでの距離を検出するように構成され、または少なくとも一定の間隔内にフロア表面が存在するかどうかを検出するように構成される。ロボット100の通常の動作中、フロアクリアランスセンサ121の距離、すなわちロボット100のフロアまでの距離はわずかしか変化しないため、フロアクリアランスセンサ121は通常、比較的均一な値を供給する。特に、滑らかなフロアでは、通常、広範囲でフロアまでの距離はほぼ同じままである。例えば、駆動輪171および前輪172が沈む得るカーペット上では、値のわずかな偏差が生じる可能性がある。その結果、フロアクリアランスセンサ121を備えたロボット本体の地面までの距離が減少し得る。階段などの立ち下がりエッジは、例えば、フロアクリアランスセンサ121の少なくとも1つによって供給される値が急激に増加したときに検出することができる。例えば、少なくとも1つのフロアクリアランスセンサ121によって測定された値が所定のしきい値を超えて増加する場合に、立ち下がりエッジを検出することができる。フロアクリアランスセンサ121は、例えば、光学信号または音響信号用の送信機と、送信された信号の反射を検出するように構成された受信機とを含み得る。可能な測定方法には、フロア面から反射された信号の強度の測定、三角測量、または送信された信号とその反射の通過時間の測定が含まれる。たとえば、本発明の一実施形態によれば、フロアクリアランスセンサ121は、フロア面までのセンサの正確な距離を決定せず、フロア面が所定の距離内で検出されたかどうかを示すブール信号を提供するだけである(たとえば、最大5cmの距離で検出されるフロア面)。
【0046】
自律移動ロボットによって実行される一般的な動きには、前方への動き、右または左の回転、およびこれらの動きの組み合わせが含まれる。ロボット100がそのような運動を行う際に立ち下がりエッジに向かって動くとき、その運動は、少なくとも1つのフロアクリアランスセンサ121によって検出される。単純な幾何学的考察により、ロボット100の事故(この場合は衝突)につながる可能性のある動きを決定することが可能である。
例えば、ロボット100の横に配置された第1または第2のフロアクリアランスセンサ121R、121Lがトリガーされると、ロボット100は最大で、駆動輪171(車輪支持点)とフロアクリアランスセンサ121R、121Lとの間の距離に対応する第1の距離L1だけ前方に移動する。たとえば、ロボット100の前面にある第3のフロアクリアランスセンサ121Mがトリガーされた場合、ロボット100は最大で、前輪172(車輪支持点)と第3のフロアクリアランスセンサ121Mに対応する第2の距離L2だけ前方に移動できる。したがって、ロボット100は、全速力で走行中に立ち下がりエッジを検出し、減速のための制御信号を生成し、立ち下がりエッジの前で(すなわち、第1または第2の距離L1、L2内で)停止できなければならない。特に、必要な個々の部品の反応時間、すなわち センサモジュール120、制御モジュール140、安全モジュール150および駆動モジュール170、ならびにロボット100の速度、ロボット100を減速させる(負の)加速および関連する制動距離が考慮される。例えば、安全モジュール150は、地上クリアランスセンサ121の少なくとも1つがトリガーされる限り、ロボット100の後退のみを可能にするように構成されてもよい。フロアクリアランスが許容最大値を超えていることが検出されると、フロアクリアランスセンサがトリガーされる。
【0047】
図4に示す例では、第2の距離L2は第1の距離L1よりも短い。第3のフロアクリアランスセンサ121Mがトリガーされた後、立ち下がりエッジの前でロボット100が適時に停止することを保証できるようにするために、安全モジュール150は、例えば、第3のフロアクリアランス121Mがトリガーされるやいなや、制御信号を出力してロボット100を停止させる。例えば、安全モジュール150は、時間がかかりすぎる可能性があるため、最初に制御モジュール140の正しい挙動を検査しない場合がある。ロボット100の停止後に初めて、安全モジュール150は、例えば、制御モジュール140が、認識された状況に適した制御コマンドを、同様に、駆動モジュール170に送信するかどうかを検査することができる。そのような状況に適した制御コマンドには、たとえば、ロボットを停止する、後退させる、または立ち下がりエッジから遠ざかるように方向転換するコマンドが含まれる。安全モジュール150は、制御モジュール140が適切な制御コマンドを発行していることを認識すると、ロボット100の制御を完全に制御モジュール140に任すか、または制御モジュール140に返すことができる。しかしながら、安全モジュール150が、制御モジュール140が危険な動き(例えば、前進)を実行するための制御コマンドを発行していることを認識する場合、ロボットの制御を保持又は引き継ぎ得る。例えば、上記のように、安全モジュール150は、更に、ロボット100に停止するように命令し、駆動モジュール170への電源を切断し、または制御モジュール140の制御コマンドを無効にしてロボット100の安全な移動を引き起こす制御コマンドを発行する(例えば、後退の実行)。
【0048】
第1または第2のフロアクリアランスセンサ121R、121Lがトリガーされる場合、例えば、危険を回避するためにロボット100が停止するまでより多くの時間が利用可能であるため、危険な状況に対する制御モジュール140の反応を待つことで十分であり得る。例えば、そのような場合、安全モジュール150は、ロボット100が第3の距離L3を移動するのを待つことができる(例えば、L3 = L1-L2)。このとき、ロボット100は、事故を回避するために利用可能な第2の距離L2に必要な時間のみを有する。したがって、第3の距離L3に必要な時間の間、安全モジュール150は、制御コマンドを上書きしたりロボット100を停止したりすることなく、制御モジュール140を許可することができる。この間に制御モジュール140が適切に応答する場合、安全モジュール150の介入は不要であり、安全モジュール150は、受動的な状態のままである。第3の距離L3が既に走行されたかどうかは、例えば、経過時間および/または走行距離計により、ロボット100の可能な最大速度に基づいて決定することができる。例えば、安全モジュール150は、制御モジュール140が第1または第2のフロアクリアランスセンサ121R、121Lによる立ち下がりエッジの検出の後10ms以内にロボット100を停止および/または立ち下がりエッジから遠ざかる向きに走行させない場合は、ロボット100を停止し得る。
【0049】
コストの理由から、
図4に示すように、ロボット100は、ロボット100の前部に地上クリアランスセンサ121しか持たない場合も多く、その場合には、立ち下がりエッジはロボット100が前進するときにのみ検出できる。ロボット100は主に前進方向に前進するので、これは通常、立ち下がりエッジに関してロボット100の安全な動作を確保するのに十分である。状況によっては、障害物や立ち下がりエッジによって前方への動きがブロックされる場合がある。そのような状況では、この状況から抜け出すために、ロボット100は、全体として、またはその駆動輪171の少なくとも1つにより後方に移動することは避けられない可能性がある。しかし、ロボット100がこの方向で自身の道を知っている限り、ロボット100は、後方にしか走行できない。ロボット100がその道を知らない場合、ロボット100の後部にフロアクリアランスセンサがないため、例えば、ロボット100の後ろの立ち下がりエッジを認識できず、事故の危険がある。ロボット100が最後に移動した距離は、例えば直線として近似することができる。後進は、例えば、第4の距離Dに対して安全であると認識され得る。ここで、Dは、駆動輪171と、ロボット100の前側領域で地上距離センサ121が配置される円周Sとの間の距離である。ロボットが最後に第4の距離D未満で前方に移動した場合、前方に移動した最後の距離よりも大きくない距離だけ後退しても良い。前進と後退を組み合わせた場合、実際に移動した距離を決定し、必要な後退移動を考慮に入れることができる。
【0050】
例えば、安全モジュール150は、その環境に関する情報を持たず、その背後に立ち下がりエッジがあるかどうかを知らない可能性があるため、ロボット100の電源投入直後に後方への移動を許可しないように構成され得る。例えば、ロボット100は、ユーザによって、テーブルの端近くのテーブル上に、または階段や踊り場に置かれた可能性がある。この際に、例えば、前方方向が障害物または立ち下がりエッジによってブロックされている場合に、安全モジュール150は、ロボット100の後方への動きをブロックすることができる。例えば、上述のように、制御モジュール140は、基地局から離れる向きにロボット100を走行させようとする場合、対応する要求を安全モジュール150に送信することができる。安全モジュール150が、そのような要求に従ってロボット100が実際に基地局にいることを検証する場合には、安全モジュール150は、基地局から離れる方向に移動するのに必要とされる距離を後退移動の際に許可する。
【0051】
ロボット100の動きは、例えば走行距離計(例えば、ホイールエンコーダ)などのさまざまなセンサによって決定され、および/または制御モジュール140によって生成され、安全モジュール150によって記録された制御コマンドに基づいて計算されてもよい。この場合、例えば、ロボット100が移動した、所定の時間間隔および/または移動間隔ごとの距離が保存され得る。さらに、例えば、安全なフロアをより良く推定するために、フロアクリアランスセンサ121の位置または経路を保存することができる。
【0052】
本発明の一実施形態によれば、ロボット100が、予め、少なくとも円周Sの半径よりも大きい距離だけ前に移動した場合には、フロアクリアランスセンサ121が配置される円周Sは、安全に走行可能な領域と見なすことができる。この場合、安全モジュール150は、ロボット100が後進駆動中(及び後進駆動と組み合わされた短い前進運動中)に後退方向の移動により周囲Sから離れることを(例えば、制御コマンドおよび/または走行距離計の読み取りに基づいて)検出したときには、ロボット100を停止するように構成され得る。
【0053】
衝突を避けるために、いくつかのセンサを共有して障害物を検出できる。例えば、センサモジュール120は、障害物を非接触で検出するように構成された光学センサ(例えば、レーザースキャナ)を含む。センサモジュール120は、例えば、接触した場合に視覚的に検出が困難な障害物(例えばガラスドア)を検出するように設計された触覚センサを備えてもよい。たとえば、触覚センサには、障害物に触れたときに閉じるように構成された接触スイッチを含み得る。例えば、触覚センサは、ロボット100の本体が障害物に衝突する前にロボット100が減速することを可能にするスプリング偏位をさらに含むことができる。このような場合、安全モジュール150は、立ち下がりエッジの検出時にフロアクリアランスセンサ121をトリガーするときと同様に振る舞う。
【0054】
例えば、安全モジュール150は、ロボットの近くにある障害物を監視するように構成され得る。例えば、ロボット100から所定の距離内に障害物が検出された場合、安全モジュール150は、制限速度を超える速度での動きを阻止し得る。所定の距離は、障害物が検出される方向に依存し得る。例えば、通常、ロボット100の背後で検出された障害物によりロボット100の前方への動きに制限が加えられない。制限速度は、障害物までの距離および/または障害物が検出される方向に依存し得る。
【0055】
センサモジュール100は、例えば、生物、特に人またはペットおよびそれらの動きを検出するように構成されたセンサを備え得る。このために、センサは、例えば、周囲の画像を撮るように構成されたカメラを有し得る。例えば、顔認識および/または放射赤外線により(人または動物の体温に基づいて)、記録された画像から人および/または動物を認識することができる。物体の位置は、1つの固有の時点で決定することも、複数回の時点で連続して決定することもできる。これにより、物体が動いているかどうか、物体が動いている場合には、どれくらいの速度で動いているかを判断できる。対象の現在の速度から、この対象の未来の時点の可能な位置を決定できる。次いで、このデータに基づいて、安全モジュール150は、物体および/またはロボット100に対する脅威を判断し、決定された将来の位置へのロボット100の移動を防止することができる。
【0056】
安全モジュール150は、物体が検出されたときに、物体がどの速度でどの方向に移動するかに関係なく、所定の制限値より大きい速度および/または加速度を防ぐように構成することもできる。例えば、最大速度を制限することにより、物体の予期しない動きに応答するために、ロボット100が利用できる時間が増加する。同時に、最高速度を制限すると、速度が低下によりロボット100の運動エネルギーが低下するため、人や動物の負傷やロボットや物体の損傷のリスクが低減する。ロボット100の加速を制限することにより、環境内の人々はロボット100の挙動をよりよく評価し、ロボットの動きによりよく応答することができ、それによって事故のリスクも低減する。
【0057】
例えば、運搬ロボットなどの自律移動ロボット100のセンサモジュール120は、ロボット100が、どんな物体(例えばグラスまたは皿)を運んでいるかを検出するように構成されたセンサを含み得る。この情報に基づいて、ロボットの動きが適合され得る。例えば、ロボット100は、何も運ばない場合、より速く加速し、より速い速度で移動し得る。たとえば、皿などの平らな物体を運ぶ場合、グラスや瓶を運ぶ場合よりも速く加速し得る。
【0058】
たとえばテレプレゼンスロボットなどの自律移動ロボット100は、
図1(a)、
図1(b)、および
図4に示されるロボットとは対照的に、背が高くてスリムな構成を有し得る(
図1(c)および
図1(d)を参照)。しかしながら、この構成により、ロボット100は転倒しやすい可能性がある。ここで、ロボット100の安定性を決定するのは、その重心の位置、フロア表面との接触点、およびロボット100に作用する力および回転モーメントである。接触点は、例えば、駆動モジュール170の駆動輪である。力および回転モーメントは、例えば、重力、平坦または傾斜したフロア表面でのロボット100の加速力、衝撃などのロボット100に作用する外力、ならびに平坦または傾斜したフロア表面でのロボットの位置により決定される。ロボット100の位置の安定性に関する条件を分析する方法は一般に知られており、したがって、ここではさらに説明しない。
【0059】
ロボット100の現在の姿勢が安定しているかどうかは、例えば、ロボット100の少なくとも1つの点での慣性測定ユニットIMU(inertial measurement unit)の現在の加速度および角速度の測定によって決定することができる。たとえば、慣性測定ユニットIMUはロボットの重心の近くに配置され得る。さらに、ロボット100の姿勢は、例えば、ロボット100が平坦なフロア表面上にあるか傾斜したフロア表面上にあるかにより判定することができる。原則として、傾斜面上に立つロボット100は転倒しやすくなる(ロボット100の姿勢の安定性の損失、
図1(c)および
図1(d)を参照)。同様に、ロボット100の重心の位置を決定することができる。例えば、テレプレゼンスロボットでは、上部に取り付けられたマルチメディアユニット101は、ユーザのニーズに合わせて(例えば、ユーザが立っているか、または座っているかにより)高さを変えることができる。その結果、ロボットの重心の位置が変化し、それによりロボット100の動力学と姿勢安定性が変化する。
【0060】
安全モジュール150は、制御モジュール140が、ロボット100の姿勢の安定性を危険にする制御コマンドを駆動モジュール170に送信しないことを保証するように構成され得る。この目的のために、安全モジュール150は、例えば、制御モジュール140によって発行された制御コマンドに基づいてロボット100に作用し得る力と回転モーメント、およびこれらがロボット100の姿勢安定性に適合するかどうかを決定するように構成され得る。安全モジュール150は、ロボット100の姿勢安定性を危険にする可能性のある制御コマンドを認識すると、例えば、対策(安全対策)を開始することができる。この対策には、たとえばロボット100の停止が含まれ得る。加えて、制御モジュール140は、対策を通知され得る。ロボット100の姿勢安定性を危険にしる可能性のある制御コマンドの例は、ロボット100の加速が速すぎることである。これは、ロボット100を転倒させる可能性があるためである。最大可能加速度は、ロボット100の安定性の分析に基づいて比較的容易に決定され得る。最大可能加速度は、たとえば、ロボット100の姿勢(傾斜)、支持点の位置に対する加速度の方向(前方加速、制動、円弧上の移動など)、およびロボットの重心の位置に依存する。例えば、ロボット100は、斜面を下る場合の方が登る場合よりも加速が高くなり得る。ロボット100は、一般に、ロボットの重心が低い場合の方が、ロボットの重心が高い場合よりも強く加速することができる。安全モジュール150によって防止できる動きの別の例は、急勾配の傾斜路の走行である。例えば、安全モジュール150は、ロボットが水平から所定の角度よりも大きく傾いたときに、ロボット100のさらなる前方への動きを防止することができる。この傾斜角は、ロボットの重心の高さに依存し得る。
【0061】
しかしながら、ロボット100が予測できないほど不安定な姿勢になり、転倒する状況が生じ得る。例えば、人が通り過ぎることができるようにロボットが停止し、その際に人がロボットに衝突することもあり得る。この衝撃に対応するロボット100の自発的な運動で、ロボット100が転倒するのを防ぐことができる。例えば、安全モジュール150は、加速度および姿勢測定に基づいてそのような衝撃を検出するように構成され、その後、制御モジュール140が衝撃に適合した制御コマンドを送信しているかどうかを検査する。衝撃を補償し、ロボット100を安定させるようなロボット100の動きが必要であるため、制御コマンド「何もしない」または「停止」は、例えば、原則として、危険として分類し得る。例えば、安全モジュール150は、制御モジュール140の応答を待つのに時間がかかりすぎることを検出し、そのような場合には、制御モジュール140が応答するのを待たずに、衝撃に適合したロボット100の動きをもたらす制御コマンドを駆動モジュール170に送信し得る。安全モジュール150は、制御モジュール140が衝撃に不正確に応答または応答していないことを検出した場合、駆動モジュール170に衝撃に適合した動きをもたらす制御コマンドを送信することができる。
【0062】
安全モジュール150は、作業モジュール160の機能を監視するようにさらに構成されてもよい。これは、特に、作業モジュール160の活動が、作業モジュール160自体のより大きな動きおよび/または駆動モジュール170によるロボット100の動きに関連する場合に有利となり得る。
【0063】
例えば、作業モジュール160は、ごみを収集するためのブラシを含み得る。回転ブラシは、例えば、散らばっている靴の靴紐、カーペットの縁、または電化製品のケーブルを巻き込み、それによってブロックされるリスクがある。ブラシの回転は、例えば回転数エンコーダによって測定できる。ブラシの回転が検出されなくなることで、ブラシがブロックされたことを検出できる。また、たとえば、ブラシモータの電力消費を特定し、それによってブラシがブロックされたことを検出することもできる。
【0064】
ブロックされたブラシを解放するためのさまざまな方法が知られている。例えば、制御モジュール140は、ブラシを空転させ、ロボット100を逆走させ、その際にケーブルなどが再び巻き戻される。しかし、この方法には危険が伴う。ブラシがブロックされた状態でのロボット100の走行は、基本的に事故につながる可能性がある。ブラシに巻き付けられたケーブルが、例えば電気機器のケーブルである場合、ロボットが逆走の際に電気機器を引っ張る危険性が基本的にある。このような電気機器が高い位置、たとえば棚に配置されている場合、これはフロアに落ちて損傷する可能性がある。したがって、安全モジュール150は、例えば、ブラシを解放する手順が実行されるときにブラシがまだブロックされているかどうかを検出するように構成されてもよい。このような場合、物体に損傷を与えることなく前進も後退もできないため、ロボット100の移動が停止され得る。別の可能性は、ロボット100がその位置を変えることなく、ケーブルなどをブラシから解放するために、通常の移動方向とは反対の方向にブラシを回転させることである。
【符号の説明】
【0065】
100…自律移動ロボット
104…運搬台
120…センサモジュール
121…フロアクリアランスセンサ
130…通信モジュール
140…制御モジュール
150…安全モジュール
160…作業モジュール
170…駆動モジュール
171…駆動車輪
200…ヒューマン・マシン・インターフェース
300…外部デバイス