(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-16
(45)【発行日】2024-08-26
(54)【発明の名称】ロボット動作に使用される安全システム及び方法
(51)【国際特許分類】
B25J 19/06 20060101AFI20240819BHJP
【FI】
B25J19/06
(21)【出願番号】P 2023524134
(86)(22)【出願日】2021-10-22
(86)【国際出願番号】 US2021056317
(87)【国際公開番号】W WO2022093650
(87)【国際公開日】2022-05-05
【審査請求日】2023-06-06
(32)【優先日】2020-10-26
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520296244
【氏名又は名称】リアルタイム ロボティクス, インコーポレーテッド
【氏名又は名称原語表記】REALTIME ROBOTICS, INC.
【住所又は居所原語表記】27 Wormwood St.,Suite #110,Boston,Massachusetts 02210 United States of America
(74)【代理人】
【識別番号】100105131
【氏名又は名称】井上 満
(74)【代理人】
【識別番号】100105795
【氏名又は名称】名塚 聡
(72)【発明者】
【氏名】ホプキンソン,スコット
(72)【発明者】
【氏名】ラム, ジェニ
(72)【発明者】
【氏名】ゴパラクリシュナン, ベンカット, ケー
(72)【発明者】
【氏名】シーバーリング,アルネ
【審査官】牧 初
(56)【参考文献】
【文献】特開2018-130793(JP,A)
【文献】特開2020-049623(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのロボットが動作する動作環境を監視するためのプロセッサベースのシステムの動作方法であって、
前記動作環境の少なくとも第一部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた第一センサーから情報を受信するステップと、
前記動作環境の少なくとも第二部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた少なくとも第二センサーから情報を受信するステップであって、前記動作環境の前記第二部分は前記動作環境の前記第一部分と少なくとも部分的に重なり、前記第二センサーは、前記第一センサーに対して異種である、該ステップと、
前記第一センサー及び少なくとも前記第二センサーのそれぞれについて、少なくとも1つのプロセッサによって、前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップと、
前記第一センサー及び少なくとも前記第二センサーの評価されたそれぞれの前記動作状態に少なくとも部分的に基づいてシステムステータスを特定するルールのセットに少なくとも部分的に基づいて前記システムステータスの妥当性を確認するステップと、
少なくとも1回、異常なシステムステータスが存在するとの決定をするステップと、
異常なシステムステータスが存在するとの決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御するために、前記少なくとも1つのプロセッサによって信号を提供するステップ
を含む、方法。
【請求項2】
前記異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御するために信号を提供するステップは、少なくとも前記異常なシステムステータスが緩和されるまで、前記少なくとも1つのロボットの移動を防止又は減速する信号を提供するステップを含む、請求項1に記載の方法。
【請求項3】
前記異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御するために信号を提供するステップは、モーションプラニングについては遮蔽されたものとして扱われるべき前記動作環境のエリアを示す信号を提供するステップを含む、請求項1に記載の方法。
【請求項4】
前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップは、前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを、少なくとも1つのプロセッサによって決定するステップを含む、請求項1に記載の方法。
【請求項5】
前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するステップが、前記第一センサー及び前記第二センサーから受信された前記情報に表されるフィデューシャルがある期間で動いたかどうかを決定するステップを含む、請求項4に記載の方法。
【請求項6】
前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するステップが、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかどうかを決定するステップを含む、請求項4に記載の方法。
【請求項7】
前記フィデューシャルは前記少なくとも1つのロボットの一部分であるか、又は前記少なくとも1つのロボットの前記一部分によって担持され、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかかどうかを決定するステップは、前記フィデューシャルの前記動きが、前記期間での前記少なくとも1つのロボットの前記一部分の動きとマッチするかどうかを決定するステップを含む、請求項6に記載の方法。
【請求項8】
前記フィデューシャルは前記少なくとも1つのロボットとは別に移動し、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかかどうかを決定するステップは、前記フィデューシャルの前記動きが前記期間の前記フィデューシャルの予想される動きとマッチするかどうかを決定するステップを含む、請求項6に記載の方法。
【請求項9】
前記第一センサー又は前記第二センサーのうちの少なくとも1つはある期間中に所定のパターンで動き、前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するステップは、前記第一センサー及び前記第二センサーから受信された前記情報に表されるフィデューシャルの識別できる動きが前記期間中の前記第一センサー又は前記第二センサーの前記動きに基づいて、ある前記期間での前記フィデューシャルの予想される識別できる動きと矛盾しないかどうかを決定するステップを含む、請求項4に記載の方法。
【請求項10】
前記第一センサーは第一動作モダリティを有し、前記第二センサーは第二動作モダリティを有し、前記第二動作モダリティは前記第一動作モダリティとは異なり、第一センサーから情報を受信するステップは前記第一センサーから第一モダリティフォーマットで情報を受信するステップを含み、第二センサーから情報を受信するステップは前記第二センサーから第二モダリティフォーマットで情報を受信するステップを含み、前記第二モダリティフォーマットは、前記第一モダリティフォーマットとは異なる、請求項1~9のいずれかに記載の方法。
【請求項11】
前記第一センサーの前記第一動作モダリティが画像センサーであり、前記第一モダリティフォーマットがデジタル画像であり、前記第二センサーの前記第二動作モダリティがレーザスキャナ、受動赤外線モーションセンサー又は熱センサーのうちの少なくとも1つであり、前記第二モダリティフォーマットが画像ではないデジタル信号である、請求項10に記載の方法。
【請求項12】
前記第一センサーが前記動作環境の第一視野を有し、前記第二センサーが前記動作環境の第二視野を有し、前記第二視野が前記第一視野とは異なり、前記第一センサーから情報を受信するステップが、前記第一視野を有する前記第一センサーから情報を受信するステップを含み、前記第二センサーから情報を受信するステップが、前記第二視野を有する前記第二センサーから情報を受信するステップを含む、請求項1~9のいずれかに記載の方法。
【請求項13】
前記第一センサーがセンサーの第一の構造及びモデルであり、前記第二センサーがセンサーの第二の構造及びモデルであり、前記センサーの第二の構造又はモデルのうちの少なくとも1つが、前記センサーの第一の構造及びモデルのそれぞれの1つとは異なり、第一センサーから情報を受信するステップが、前記第一の構造及びモデルの前記第一センサーから情報を受信するステップを含み、第二センサーから情報を受信するステップが、前記センサーの第二の構造及びモデルの前記第二センサーから情報を受信するステップを含む、請求項1~9のいずれかに記載の方法。
【請求項14】
前記第一センサーが第一動作モダリティを有し、前記第二センサーが第二動作モダリティを有し、前記第二動作モダリティが前記第一動作モダリティとは異なる、請求項13に記載の方法。
【請求項15】
前記第一センサーが第一動作モダリティを有し、前記第二センサーが第二動作モダリティを有し、前記第二動作モダリティが前記第一動作モダリティと同じである、請求項13に記載の方法。
【請求項16】
前記第一センサーが第一サンプリングレートを有し、前記第二センサーが第二サンプリングレートを有し、前記第二サンプリングレートが前記第一サンプリングレートとは異なり、第一センサーから情報を受信するステップが、前記第一サンプリングレートでキャプチャされた前記第一センサーから情報を受信するステップを含み、第二センサーから情報を受信するステップが、前記第二サンプリングレートでキャプチャされた前記第二センサーから情報を受信するステップを含む、請求項1~9のいずれかに記載の方法。
【請求項17】
前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップは、前記第一センサーから受信された情報が前記第一センサーの前記第一サンプリングレートと矛盾しないかどうかを決定するステップと、前記第二センサーから受信された情報が前記第二センサーの前記第二サンプリングレートと矛盾しないかどうかを決定するステップを含む、請求項16に記載の方法。
【請求項18】
前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップは、前記第一センサー及び少なくとも前記第二センサーから受信された前記情報を、前記動作環境の前記第二部分と前記第一部分との前記少なくとも部分的な重複について比較して、不一致が存在するかどうかを決定するステップを含む、請求項1~9のいずれかに記載の方法。
【請求項19】
不一致が存在するという決定に応答して、前記異常なシステムステータスが存在すると決定し、前記不一致が解消されるまで前記少なくとも1つのロボットの動きを防止する、請求項18に記載の方法。
【請求項20】
不一致が存在するという決定に応答して、前記異常なシステムステータスが存在すると決定させ、前記不一致が存在する前記動作環境の一部を、前記不一致が解消されるまで、モーションプランニング中は遮蔽されたものとして扱わせる、請求項18に記載の方法。
【請求項21】
前記動作環境の少なくとも第三部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた少なくとも第三センサーから情報を受信するステップであって、前記動作環境の前記第三部分は前記動作環境の前記第一部分及び前記第二部分と少なくとも部分的に重なり、前記第三センサーは前記第一センサー又は前記第二センサーのうちの少なくとも1つに関して異種である、該ステップをさらに含み、
前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップは、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーから受信された情報に少なくとも部分的に基づいて、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーのそれぞれの動作状態の評価を実行するステップを含む、請求項1~9のいずれかに記載の方法。
【請求項22】
前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーのそれぞれの動作状態の評価を実行するステップは、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーの大部分の間の一貫性に少なくとも部分的に基づく、請求項21に記載の方法。
【請求項23】
少なくとも1回、非異常なシステムステータスが存在するとの決定をするステップと、
前記非異常なシステムステータスが存在するとの決定に応答して、前記少なくとも1つのプロセッサによって少なくとも部分的に前記ロボットの動作を制御する信号を提供するステップ
をさらに含む、請求項1~9のいずれかに記載の方法。
【請求項24】
前記非異常なシステムステータスが存在するとの決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御する信号を提供するステップは、前記センサーのうちの少なくとも2つが互いに整合するとの決定に応答して、ワークセル全体が遮蔽されるという仮定の緩和を可能にする信号を提供するステップを含む、請求項23に記載の方法。
【請求項25】
前記非異常なシステムステータスが存在するとの決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御する信号を提供するステップは、前記少なくとも1つのロボットが移動することを許容する、又は前記動作環境のエリアが遮蔽されたものとして表されないことを示す信号を提供するステップを含む、請求項23に記載の方法。
【請求項26】
少なくとも1つのロボットが動作する動作環境を監視するシステムであって、
前記動作環境の少なくとも第一部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた第一センサーと、
前記動作環境の少なくとも第二部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた少なくとも第二センサーであって、前記動作環境の前記第二部分が前記動作環境の前記第一部分と少なくとも部分的に重なり、前記第二センサーが前記第一センサーに対して異種である、該第二センサーと、
前記第一センサー及び少なくとも前記第二センサーから情報を受信するように通信可能に結合された少なくとも1つのプロセッサであって、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、請求項1~25のいずれかに記載の方法を実行させる、プロセッサ実行可能命令を実行するように動作可能な、該少なくとも1つのプロセッサ
を含む、システム。
【請求項27】
実行されると、1つ又は複数のプロセッサに、請求項1~25のいずれかに記載の方法を実行させる、プロセッサ実行可能命令を記憶するプロセッサ可読媒体。
【請求項28】
少なくとも1つのロボットが動作する動作環境を監視するシステムであって、
前記動作環境の少なくとも第一部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた第一センサーと、
前記動作環境の少なくとも第二部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた少なくとも第二センサーであって、前記動作環境の前記第二部分が前記動作環境の前記第一部分と少なくとも部分的に重なり、前記第二センサーが前記第一センサーに対して異種である、該第二センサーと、
前記第一センサー及び少なくとも前記第二センサーから情報を受信するように通信可能に結合された少なくとも1つのプロセッサであって、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップと、
前記第一センサー及び少なくとも前記第二センサーの評価されたそれぞれの動作状態に少なくとも部分的に基づいてシステムステータスを特定するルールのセットに少なくとも部分的に基づいて前記システムステータスの妥当性を確認する、該ステップと、
少なくとも1回、前記システムステータスが異常なシステムステータスが存在すること示すと決定するステップと、
異常なシステムステータスが存在するとの決定に応答して、少なくとも部分的に少なくとも1つのロボットの動作を制御するために、前記少なくとも1つのプロセッサによって信号を提供するステップ
を実行させる、プロセッサ実行可能命令を実行するように動作可能な、該少なくとも1つのプロセッサ
を含む、システム。
【請求項29】
前記異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御する信号を提供するために、前記少なくとも1つのプロセッサは、少なくとも前記異常なシステムステータスが緩和されるまで、前記少なくとも1つのロボットの移動を防止又は減速する信号を提供する、請求項28に記載のシステム。
【請求項30】
前記異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御するための信号を提供するために、前記少なくとも1つのプロセッサは、モーションプラニングについては遮蔽されたものとして扱われるべき前記動作環境のエリアを示す信号を提供する、請求項28に記載のシステム。
【請求項31】
前記第一センサー及び少なくとも前記第二センサーの動作状態の評価を実行するために、前記少なくとも1つのプロセッサによって実行されると、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサに、
前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定させる、請求項28に記載のシステム。
【請求項32】
前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するために、前記少なくとも1つのプロセッサは、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルがある期間に動いたかどうかを決定する、請求項31に記載のシステム。
【請求項33】
前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するために、前記少なくとも1つのプロセッサは、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかどうかを決定する、請求項31に記載のシステム。
【請求項34】
前記フィデューシャルは前記少なくとも1つのロボットの一部分であるか、又は前記少なくとも1つのロボットの前記一部分によって担持され、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかどうかを決定するために、前記少なくとも1つのプロセッサは、前記フィデューシャルの前記動きが
、前記期間での前記少なくとも1つのロボットの前記一部分の動きとマッチするかどうかを決定する、請求項33に記載のシステム。
【請求項35】
前記フィデューシャルは前記少なくとも1つのロボットとは別に移動し、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかどうかを決定するために、前記少なくとも1つのプロセッサは、前記フィデューシャルの前記動き
が前記期間での前記フィデューシャルの予想される動きとマッチするかどうかを決定する、請求項33に記載のシステム。
【請求項36】
前記第一センサー又は前記第二センサーのうちの少なくとも1つはある期間中に所定のパターンで移動し、前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するために、前記少なくとも1つのプロセッサは、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの識別できる動きがある前記期間での前記フィデューシャルの予想される識別できる動きと矛盾しないかどうかを、前記期間中の前記第一センサー又は前記第二センサーの前記動きに基づいて決定する、請求項31に記載のシステム。
【請求項37】
前記第一センサーが第一動作モダリティを有し、前記第二センサーが第二動作モダリティを有し、前記第二動作モダリティが前記第一動作モダリティとは異なる、請求項28~36のいずれかに記載のシステム。
【請求項38】
前記第一センサーの前記第一動作モダリティは画像センサーであり、第一モダリティフォーマットはデジタル画像であり、前記第二センサーの前記第二動作モダリティはレーザスキャナ、受動赤外線モーションセンサー又は熱センサーのうちの少なくとも1つであり、第二モダリティフォーマットは画像ではないデジタル信号である、請求項37に記載のシステム。
【請求項39】
前記第一センサーは前記動作環境の第一視野を有し、前記第二センサーは前記動作環境の第二視野を有し、前記第二視野は前記第一視野とは異なる、請求項28~36のいずれかに記載のシステム。
【請求項40】
前記第一センサーはセンサーの第一の構造及びモデルであり、前記第二センサーはセンサーの第二の構造及びモデルであり、前記センサーの第二の構造又はモデルのうちの少なくとも1つは、前記センサーの第一の構造及びモデルのそれぞれの1つとは異なる、請求項28~36のいずれかに記載のシステム。
【請求項41】
前記第一センサーが第一動作モダリティを有し、前記第二センサーが第二動作モダリティを有し、前記第二動作モダリティが前記第一動作モダリティとは異なる、請求項40に記載のシステム。
【請求項42】
前記第一センサーが第一動作モダリティを有し、前記第二センサーが第二動作モダリティを有し、前記第二動作モダリティが前記第一動作モダリティと同じである、請求項40に記載のシステム。
【請求項43】
前記第一センサーが第一サンプリングレートを有し、前記第二センサーが第二サンプリングレートであり、前記第二サンプリングレートが前記第一サンプリングレートとは異なる、請求項28~36のいずれか一項に記載のシステム。
【請求項44】
前記少なくとも1つのプロセッサによって実行されたときに、前記第一センサー及び少なくとも前記第二センサーの動作状態の評価を実行するために、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサに、
前記第一センサーから受信された情報が前記第一センサーの前記第一サンプリングレートと矛盾しないかどうかを決定させ、前記第二センサーから受信された情報が前記第二センサーの前記第二サンプリングレートと矛盾しないかどうかを決定させる、請求項43に記載のシステム。
【請求項45】
前記第一センサー及び少なくとも前記第二センサーの動作状態の評価を実行するために、前記少なくとも1つのプロセッサが、前記第一センサー及び少なくとも前記第二センサーから受信された前記情報を、前記動作環境の前記第二部分と前記第一部分との前記少なくとも部分的な重複について比較して、不一致があるかどうかを決定する、請求項28から36のいずれかに記載のシステム。
【請求項46】
不一致が存在するという決定に応答して、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、前記異常なシステムステータスが存在すると決定させ、前記不一致が解消されるまで前記少なくとも1つのロボットの移動を防止させる、請求項45に記載のシステム。
【請求項47】
不一致が存在するという決定に応答して、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、前記異常なシステムステータスが存在すると決定させ、前記不一致が存在する前記動作環境の一部を、前記不一致が解消されるまで、モーションプランニング中は遮蔽されたものとして扱わせる、請求項45に記載のシステム。
【請求項48】
前記動作環境の少なくとも第三部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた少なくとも第三センサーであって、前記動作環境の前記第三部分は前記動作環境の前記第一部分及び前記第二部分と少なくとも部分的に重なり、前記第三センサーは前記第一センサー又は前記第二センサーのうちの少なくとも1つに関して異種である、該第三センサーをさらに含み、前記少なくとも1つのプロセッサは第三センサーからの情報を受信するようにさらに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されたとき、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーから受信された前記情報の少なくとも一部に基づいて、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーの動作状態の評価を実行させる、請求項28~36のいずれかに記載のシステム。
【請求項49】
前記第一センサー、前記第二センサー、及び前記少なくとも第三センサーの動作状態の評価を実行するために、前記少なくとも1つのプロセッサが、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーの大部分の間で矛盾がないこと評価する、請求項48に記載のシステム。
【請求項50】
前記少なくとも1つのプロセッサによって実行されたとき、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサに、
少なくとも1回、前記システムステータスが非異常なシステムステータスが存在することを示すと決定させ、
前記非異常なシステムステータスが存在するとの前記決定に応答して、前記少なくとも1つのプロセッサによって少なくとも部分的に前記ロボットの動作を制御する信号を提供させる、
請求項28~36のいずれかに記載のシステム。
【請求項51】
前記非異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御する信号を提供するために、前記少なくとも1つのプロセッサは、前記センサーのうちの少なくとも2つが互いに整合するという決定に応答して、ワークセル全体が遮蔽されるという仮定を緩和する信号を提供する、請求項50に記載のシステム。
【請求項52】
前記非異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御する信号を提供するために、前記少なくとも1つのプロセッサは、前記少なくとも1つのロボットが移動することを可能にする、又は前記動作環境のエリアが遮蔽されたものとして表されないことを示す信号を提供する、請求項50に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して、ロボットに関し、特に、ロボット動作(又は、ロボットオペレーション/ロボット操作)において使用される安全システム及び方法に関し、例えば、動作環境においてロボットを駆動するためのモーションプラン(又は、動作プラン/動作計画)を生成するためにモーションプランニング(又は、モーション計画/動作計画)を使用し得るロボット制御システムと併せて使用されるものに関する。
【背景技術】
【0002】
関連技術の説明
ロボットは、様々な用途及び環境においてユビキタスになりつつある。
【0003】
典型的には、ロボット制御システムがロボット(複数可)のモーションプランニング及び/又は制御を実行する。ロボット制御システムは例えば、典型的には1つ又は複数のセンサー(例えば、カメラ、接触センサー、力センサー、エンコーダ)を有するプロセッサベースのシステムの形態をとり得る。ロボット制御システムは、ロボットに一連のタスクを実行させるためのモーションプランを決定及び/又は実行し得る。モーションプランニングは、ロボット制御及びロボット工学における基本的な問題である。モーションプランはロボットが開始状態から目標状態まで辿ることができる経路(又は、パス)を指定し、典型的には、動作環境において人間を含む任意の障害物と衝突することなく、又は動作環境において任意の障害物と衝突する可能性が低減されたタスクを完了する。モーションプランニングへの挑戦は、環境の特性が変化しても非常に速い速度でモーションプランニングを実行する能力を含む。例えば、環境内の1つ又は複数の障害物の場所(又は、位置)又は向き等の特性は、経時的に変化し得る。課題は比較的低コストの機器を用いて、比較的低エネルギー消費で、限られた量の記憶装置(例えば、プロセッサチップ回路上のメモリ回路)を用いて、モーションプランニングを実行することをさらに含む。
【0004】
ロボット動作の安全性、特にロボット又はその一部の安全な移動は、典型的には人間、例えばロボットオペレータが1つ又は複数のロボットが動作する動作環境に入るか、又は入り得る場合に重大な関心事である。
【0005】
安全が懸念される状況では、専用の安全システムを使用し得る。専用安全システムは、ロボット(複数可)のモーションプランニング及び/又は管理を実行するロボット管理システムに加えてもよい。専用安全システムは例えば、典型的には1つ又は複数のセンサー(例えば、カメラ)を有するプロセッサベースのワークセル安全システムの形態をとり得る。プロセッサベースのワークセル安全システムはハザード(又は、障害物/危険)、特に、人間又は人間であり得るオブジェクト(又は、物体)の存在について、動作環境を監視する。
【0006】
ロボット工学で使用される安全システムは安全認定されてもよく、その場合、それらは通常、複数の安全認定センサーを使用する。そのような安全認定センサーの数を増やすことは、典型的には遮蔽(又は、オクルージョン/閉鎖/occlusion)の可能性、すなわち、センサーの視界から遮蔽されるエリア(又は、領域)を低減する。しかしながら、安全認定センサーは、より一般的な市販の既製(COTS)センサーと比較して非常に高価である。したがって、遮蔽の発生を低減するために安全認定センサーを追加したいという要望と、安全が認定された(safety certified)安全システムにより多くの安全認定センサーを追加するという著しいコストとの間には、しばしば、困難なバランスが存在する。
【0007】
プロセッサベースのワークセル安全システムは典型的には安全システムが特定の安全関連条件、例えば、ロボット又はロボットの軌道に近接する人間の検出を検出したときに、ロボット動作の安全関連の停止又は減速をトリガすることによって動作する。事故を防ぐのに役立つ一方で、不必要な停止又は減速は、ロボット(複数可)の全体的な性能に悪影響を及ぼす。
【発明の概要】
【課題を解決するための手段】
【0008】
複数のCOTSセンサーを使用して安全が認定された安全システムを達成することが有利であり、これは、通常、安全認定センサーよりも実質的にコストが低い。また、ロボット動作の停止又は減速の総数及び/又は継続時間を低減又は排除することが有利である。
【0009】
プロセッサベースのワークセル安全システムは2つの部分、すなわち、動作環境又はワークセルの少なくとも一部を監視するように位置付けられ(又は、配置され)、方向付けられたセンサーと、そのセンサーに通信可能に結合され、そのセンサーによって提供されるセンサーデータを処理するプロセッサベースのシステムとから構成されると考えることができる。いくつかの実装形態は人間が、必ずしもワークセル内の人間の位置又は場所ではないが、動作環境に入ったときを検出する追加のタイプのセンサーを含み得る。そのようなセンサーは例えば、人間によって装着されたRFIDトランスポンダを検出する無線周波数識別(RFID)質問システム、レーザスキャナ、圧力センサー、及び/又はワークセル内の人間の存在を検出する受動赤外線(PIR)動作検出器のうちの1つ又は複数を含み得る。
【0010】
ほとんどの状況ではロボット(複数可)の位置及び向きは例えば、ロボット(複数可)の既知のジョイント角度に基づいて、プロセッサに知られ、又はそのような情報は安全証明可能な方法で取得し得る。プロセッサベースのワークセル安全システムが静的オブジェクト(例えば、テーブル)を見失った場合、静的オブジェクトは一般に人に当たらないので、一般に安全上のハザードとはみなされない。したがって、安全証明のために、主要な問題は、1人又は複数以上の人間が1つ又は複数のロボットが動作する動作環境にいる場所を追跡することである。
【0011】
安全システムは非常に短い時間量(すなわち、人間とロボットとの間の衝突につながり得る時間量未満の時間量)の間、人間(複数可)を見失うことが許容されることができる。言い換えれば、(例えば、センサーノイズ、サンプリングレート、遮蔽に起因する)人間の位置についてのある量の不確実性が常に存在することになる。人間の位置がシステムに未知のままであるほど、不確実性の領域(すなわち、人間が存在し得る領域)は、時間の経過とともに大きくなる。例えば、人間の場所がある期間知られていなかった場合、その人間は例えば、約2メートル/秒にその人間の位置が最後に知られてからの時間量を乗算したものの範囲内にある、未知の位置にいることがあり得る。安全のために、プロセッサベースのワークセル安全システムは、ワークセル又は動作環境全体を、あたかもその領域に人間が存在するかのように扱わせることができる。そのような処置は慎重(又は、注意/用心/caution)(に)しすぎて誤る(又は、にすぎる)が、モーションプランニング及びロボット動作に悪影響を及ぼす可能性がある。代替的に人間の位置がある期間にわたって失われ、それによって不確実性の領域が増加する場合、プロセッサベースのワークセル安全システムは不確実性の領域がロボットのモーションプランニング及び/又は実行又は移動中に遮られたものとして扱われるべきであるという指示を提供し得る。
【0012】
安全性を確保するために、プロセッサベースのワークセル安全システムの両方の機能的側面(すなわち、感知及び処理)は、安全であると考えられなければならない。
【0013】
処理に関しては、様々なアプローチが採用されることができる。例えば、システムは、デュアルモジュラー冗長(DMR)を使用し得る。DMRは、2つのモジュールが不整合(disagree)の場合、問題を検出したものとして扱われ、ロボット動作が停止するか、遅くなるか、又は遮蔽エリアがモーションプランニングに導入されるため、十分である。また、例えば、プロセッサベースのワークセル安全システムは三重モジュール冗長性(TMR)を使用することができ、システムは大多数のモジュールの出力を使用する(例えば、3つのモジュールのうちの2つが整合する(in agreement)場合、システムは、整合するモジュールの出力を使用する)。
【0014】
検知に関して、例えば、1つ又は複数の故障モード(及び)影響解析(FMEA)プロセス又は技術を使用することによって、センサーデータの故障モードを軽減することが有利である。例示を目的として、いくつかの例示的な故障モード及び影響解析プロセス又は技術を以下に説明する。
【0015】
1つの可能な故障モード影響解析アプローチ又は技術は安全システムが予想通りにセンサーデータ(例えば、画像)を受信していることを確認することであり、例えば、安全システムのプロセッサがセンサーからセンサーデータを受信すべきときに、安全システムのプロセッサがセンサーデータを受信していることを確認することである。例えば、センサーが30Hzで画像をサンプリング又はキャプチャする画像センサーである場合、安全システムのプロセッサは、1/30秒毎に画像を受信すべきである。そのようなものは、例えば、ウォッチドッグ機構を介してチェックされる又は妥当性が確認される(又は、検証される/validated)ことができる。特に、そのようなチェックはセンサーがいつスタックしたかを検出しない(例えば、動作環境の検知された部分が変化したとしても、同じ古い(又は、陳腐化した/stale)センサーデータを誤って繰り返し又は継続的に送信する)。
【0016】
別の可能な故障モード影響解析アプローチはセンサーデータ上のループを閉じること、例えば、センサーデータが既知の状況を所与として意味をなすか、又は既知の状況と矛盾しない(又は、一致する/両立する/consistent with)かどうかを決定することを含む(例えば、ロボット(複数可)及び/又はフィデューシャルを含み、センサーを含む動作環境における様々なオブジェクトの位置、向き、及び/又は移動について既知であることと一致するセンサーデータ)。以下のアプローチのうちの任意の1つ又は複数が、センサーデータが既知の状況と一致するか、又は既知の状況が与えられると意味をなすかどうかを決定するために使用されることができる。
【0017】
プロセッサベースのワークセル安全システムは、動作環境を監視するために複数の異種センサーを有利に使用し得る。異種センサーは互いに異なるセンサーモダリティ(例えば、異なる動作モード)のセンサーを含むことができ、センサーは、互いに異なる視野(又は、優位/vantage)点にあるか、又はさもなければ互いに異なる視野を有するか、互いに異なるサンプリングレートを有するか、及び/又は互いに異なる製造業者からのものであるか、又は互いに異なるモデルである[(注)モダリティ:様式/態様/属性/modality]。例えば、プロセッサベースのワークセル安全システムは互いに異なる感知(又は、センシング)モダリティを有する複数のセンサー(例えば、1Dレーザスキャナ、2次元(2D)カメラ、3次元(3D)カメラ、飛行時間カメラ、熱センサー)を使用し得る。これらのセンサー自体のそれぞれは、例外的に信頼性があるわけではなく、安全が認定されていない。各センサーはセンサーが何らかのフォーマットでサンプルをキャプチャする(例えば、画像をキャプチャし、距離測定値をキャプチャし、3次元表現をキャプチャする)サンプリングレート(例えば、フレームレート、画像捕捉レート)を有する。各サンプルは、感知モダリティに依存する。異種センサーの使用は保守を妨げ、したがって、通常は回避されることができるが、異種センサー(例えば、センサーモダリティにおける多様性(又は、ダイバーシティ)、空間的(異なる視点)、時間的(異なる時間)、製造業者、モデル)はCOTSセンサーが安全が認定されたプロセッサベースのワークセル安全システムを実現する際に使用される場合、特に有利である。ダイバーシティはコモンモード故障から保護する(例えば、同じ視野点における2つのセンサーが同じボクセルを見逃し、同じモダリティの2つのセンサーが同じ動作環境において同じ方法で、又は同じ条件に起因して故障する)。
【0018】
2つ以上のセンサーが動作環境(ワークセルとも呼ばれる)の重複領域を捕捉する場合、プロセッサベースのワークセル安全システムは、2つ以上のセンサーからのセンサーデータを比較して、故障が存在する可能性を推測し得る。例えば、2つ以上の画像センサーによってキャプチャされた画像を比較し得る。2つのセンサーのみでは、プロセッサベースのワークセル安全システムがどのセンサーが故障しているか、又は両方のセンサーが故障しているかどうかさえも、気づかない(又は、知らない/not know)であろう。しかしながら、2つのセンサーが信頼できないことは明らかであろう。これに応じて、プロセッサベースのワークセル安全システムは安全を確保するために、ロボットの動作又は移動を停止又は減速させ得る。代替的に、プロセッサベースのワークセル安全システムは2つのセンサーによって監視されるエリア又は領域を、モーションプランニング目的のために遮蔽されているものとして示すことができ、それによって、ロボットの動作又は移動を完全に停止することなく、安全性のレベルを高めることができる。3つ以上のセンサーが動作環境の重複領域を捕捉する場合、プロセッサベースのワークセル安全システムは3つ以上のセンサーからのセンサーデータを比較し、センサーの大部分からのセンサーデータが互いに矛盾しない(又は、一致する/両立する/consistent with)か、又は互いに整合する(又は一致する/in agreement)かどうかを決定し得る。次いで、プロセッサベースのワークセル安全システムは少数のセンサーが信頼できないことを推測し、整合するセンサーの大部分からのセンサーデータに基づいてアクションをとり得る。
【0019】
いくつかの実装形態は1つ又は複数のセンサーから受信されたセンサーデータが意味をなすかどうかを決定するために、既知の又は知ることができる(例えば、感知される)方法で移動する1つ又は複数のフィデューシャルを有利に使用し得る。例えば、プロセッサベースのワークセル安全システムはフィデューシャルの位置、場所及び/又は動き(例えば、方向及び/又は大きさ)を知ることができる。例えば、プロセッサベースのワークセル安全システムは、所与のフィデューシャルが所与の期間中に右に1cm移動することを知ることができる。次いで、プロセッサベースのワークセル安全システムは、任意の所与のセンサーによるそのフィデューシャルの知覚に対して、フィデューシャルの既知の動きがどのような影響を有するべきかを知るか、又は決定し得る。例えば、プロセッサベースのワークセル安全システムは所与のセンサーにおける特定の故障を検出するために、「移動前」画像を「移動後」画像と比較し得る。例えば、そのような比較は有利にはプロセッサベースのワークセル安全システムがセンサーの視野内のオブジェクトの位置が関連する時間期間で変化したとしても、所与のセンサーがスタックしていると決定することを可能にし、同じ古い画像データ(例えば、画像)を何度も繰り返して誤って送信することを可能にし得る。そのようなものは、例えば、センサーによって監視される動作環境の一部分が変化した期間にわたって、同じ位置にある何か(例えば、センサーの視野内の右上平方センチメートル)を常に感知するセンサーによって示されることができる。ロボット又はその一部はロボットの状態又は構成の安全認証可能な知識が存在する場合(例えば、ロボットが安全認証された方法で、又は何らかの他の機構によってジョイント角度を提供する場合)、フィデューシャルとして機能し得る。プロセッサベースのワークセル安全システムはセンサーデータが取得される各時点において、フィデューシャルを備えるか又は担持するロボット又はその一部が空間内にあると想定される場所を知っているので、プロセッサベースのワークセル安全システムはロボットを観察するセンサーが正しく動作していることを検証し得る。
【0020】
いくつかの実装形態は1つ又は複数の固定フィデューシャルを使用し得、1つ又は複数のセンサーは安全認定された既知の又は知ることができる方法で移動する。センサー(複数可)の動きが知られている場合(例えば、センサーを運ぶロボットのジョイント位置が知られているか、又は安全認証された方法で問い合わせることができるか、又はセンサーを動かすモータの回転数が知られているか、又は安全認証された方法で問い合わせることができる)、プロセッサベースのワークセル安全システムはセンサーの動きの前後に収集されたセンサーデータを比較して、例えば、動きの後にキャプチャされた画像をセンサーの動きの前にキャプチャされた画像と比較することによって、故障を検出し得る。
【0021】
いくつかの実装形態では、プロセッサベースのワークセル安全システムがワークセル又は動作環境の全体が遮蔽されていることを示すデフォルト状態を採用することができ、領域が遮蔽されていないことと両立するか又は互いに一致する少なくとも2つのセンサーからのセンサーデータを有する場合にのみ、その仮定を緩和する。このデフォルトの仮定は明らかに悲観的であるが、安全性を保証する。他の実装形態は、ワークセル又は動作環境のエリア又は領域を、エリア又は領域をカバーする少なくとも2つのセンサーからのセンサーデータが両立しないか又は整合しないと決定したことに応答して、遮蔽されたものとして示すことができる。上述のように、いくつかの実装形態は、大多数のセンサーからのセンサーデータが互いに両立する又は整合するという決定に基づいて動作し得る。
【0022】
センサーのダイバーシティ(例えば、時間的、光学的、幾何学的、センサーモダリティ、製造業者、モデル)、安全証明可能な既知又は知ることができる情報とのセンサーデータの無矛盾性(又は、一貫性)のチェック、及び/又はセンサー間の無矛盾性又は整合のチェックを含む多面的なFMEAアプローチは有利にはCOTSセンサーの使用を容易にし、一方で、a)全てのセンサーから、b)同時に、及びc)永続的に長期間、ロボットを人間に走らせる動作環境内の人間の検出に失敗する確率は、安全証明される安全システムに対するハザードのリスクが十分に低いことを保証する。
【0023】
安全が認定された作業環境又はワークセルは以下に分解し得る:i)ロボットを動作させる機能システム(すなわち、ロボット制御システム)及びii)安全を保証するプロセッサベースのワークセル安全システム。機能システムは、1つ又は複数のセンサーと、センサーに通信可能に結合され、1つ又は複数のロボットのモーションプランニング及び/又は制御を実行する1つ又は複数のプロセッサを備えるプロセッサベースのシステムとを含み得る。プロセッサベースのワークセル安全システムは同様に、1つ又は複数のセンサーと、センサーに通信可能に結合され、安全解析を実行する1つ又は複数のプロセッサを備えるプロセッサベースのシステムとを含み得る。この動作の分離は様々な理由で有用であり、最も顕著なのは、機能ロボットのモーションプランニング及び/又は制御システムの設計がプロセッサベースのワークセル安全システムの設計から独立していることを可能にするからである。
【0024】
安全が認定された動作環境又はワークセルでは、プロセッサベースのワークセル安全システムが機能システムが安全ルールのセットによって定義されるように、ロボットが人間に近づきすぎることを引き起こすときはいつでも、ロボットの停止又は減速をトリガする。何が「近づきすぎる」を構成するかという概念は、典型的には安全システムがどのように構成され、動作するかに依存する。例えば、プロセッサベースのワークセル安全システムはレーザスキャナを使用して、フロアを8×8グリッドの領域に分割することができ、安全システムは、ロボットが人間の1つのグリッド領域内にあるときはいつでも、ロボット動作を中断するようにトリガされる。
【0025】
機能システムはプロセッサベースのワークセル安全システムがどのように機能するかを認識し、考慮して、安全システムをトリガするものを認識するようにロボット(複数可)を動作させることによって、安全トリガによる停止又は減速又は予防的オクルージョン(又は、予防的遮蔽)をトリガすることを低減又は回避するように設計又は構成されることができる。すなわち、機能システムがプロセッサベースのワークセル安全システムがどのように動作するか、及び停止又は減速又は予防的オクルージョンの導入をトリガすることを認識している場合、機能システムは、ロボット(複数可)を動作させて、プロセッサベースのワークセル安全システムをトリガする可能性が低くなる。グリッドを生成するレーザセンサーの上記の例では、機能システムが人間とロボットとの間の未加工の距離が必ずしも危険ではない場合であっても、ロボットを人間の1つのグリッド領域内に配置しないことを知っている。機能システムは例えば、プロセッサベースのワークセル安全システムが実行する、又はプロセッサベースのワークセル安全システムが安全ルールの違反を検出する際に依存する安全ルール及び条件のセットにアクセスし得る。
【0026】
さらに、機能システムは安全システムをトリガする確率を低減しながら、モーションプランニングを実行するときに人間の予想される又は予測される動きも考慮するように最適化されることができる。例えば、機能システムは、人間の振る舞いのモデルにアクセスし得る。追加的に又は代替的に、機能システムは、動作環境に入る人間が一組の定義されたガイドラインに従って訓練されたことを反映する論理に依拠することができ、したがって、人間は動作環境又はワークセルのかなり予測可能なセグメント内に留まること、又はさもなければ予測可能な方法(例えば、予測可能な速度又は最大速度)で移動することが期待される。機能システムは、そのような情報を考慮に入れて、人間の振る舞いの予測又は予測によって任意選択的に強化される、安全システムが認識する方式でモーションプランを生成し得る。例えば、人間がロボットの隣のグリッド領域に入ると予測される場合、機能システムは安全システムをトリガすることを回避し、次に停止又は減速を回避するために、ロボットを積極的に遠ざけることができる。
【図面の簡単な説明】
【0027】
図面において、同一の参照番号は、同様の要素又は作用を示す。図面における要素のサイズ及び相対位置は、必ずしも一定の縮尺で描かれてはいない。例えば、さまざまな要素の形状及び角度は一定の縮尺で描かれず、これらの要素のいくつかは、図面を見やすくするために、随時適当に拡大及び配置されている。さらに、描かれている要素の特定の形状は、特定の要素の実際の形状に関するいかなる情報も伝えることを意図しておらず、図面における認識を容易にするためにのみ選択されている。
【
図1】
図1は1つの例示された実施形態による、ロボットシステムの概略図であり、タスクを実行するために動作環境において動作する複数のロボットを含み、ロボットのためのモーションプランを動的に生成するモーションプランナを有する1つ又は複数のロボット制御システムと、ロボットの経路に入る人間等のハザードについて動作環境を監視する1つ又は複数のプロセッサベースのワークセル安全システムとを含む。
【
図2】
図2は1つの例示された実施形態による、プロセッサベースのワークセル安全システムの機能ブロック図であり、いくつかのセンサーと、センサーに通信可能に結合され、安全システムのセンサーの動作状態(又は、ステータス)を評価するように動作可能な少なくとも1つのプロセッサとを含み、安全システムのシステムステータスは、異常なシステムステータスが存在するかどうかを決定し、システムステータスに基づいて適切な行動をとり、危険な条件の発生について動作環境を監視するためのものである。
【
図3】
図3は、例示された一実施形態による、第一ロボット及び少なくとも第一ロボットの動作を制御するためのモーションプランを生成するモーションプランナを有するロボット制御システムの機能ブロック図である。
【
図4】
図4は、1つの例示的な実施形態による、動作環境又はワークセルにおいて動作するロボットの例示的なモーションプランニンググラフである。
【
図5】
図5は、少なくとも1つの例示された実装形態による、動作環境におけるロボット動作を制御するための動作環境の安全監視を実施するためのプロセッサベースのワークセル安全システムにおける高レベル動作方法を安全監視システムの妥当性確認とともに示すフロー図である。
【
図6】
図6は、動作環境におけるロボット動作を制御するための動作環境の安全監視を実施するためのプロセッサベースのワークセル安全システムにおける低レベルの動作方法を安全監視システムの妥当性確認とともに示すフロー図であり、少なくとも1つの図示された実施形態によれば、低レベルの方法は、
図5に図示された高レベルの方法を実行することの一部として実行可能である。
【
図7】
図7は
図5に示される高レベルの方法を実行する一部として実行可能な、安全監視システムの妥当性確認と共に、少なくとも1つの示された実施形態に従って、動作環境におけるロボット動作を制御するための動作環境の安全監視を実施するためのプロセッサベースのワークセル安全システムにおける低レベルの動作方法を示すフロー図である。
【
図8】
図8は、少なくとも1つの例示された実装形態による、プロセッサベースのワークセル安全システムのトリガリングを低減するように動作環境においてロボット動作を制御するためのプロセッサベースのロボット制御システムの動作の低レベルの方法を示すフロー図である。
【発明を実施するための形態】
【0028】
詳細な説明
種々の実施態様が正しく理解されるように、開示内容の詳細を以下に説明する。但し、当業者ならば、これら特定の細部の1つ又は2つ以上を欠いても、又は他の方法、他の構成部材、他の材料でも実施が可能であることは容易に理解するところであろう。他の例では、コンピュータシステム、アクチュエータシステム、及び/又は通信ネットワークに関連する周知の構造は実施形態の説明を不必要に不明瞭にすることを避けるために、詳細に図示又は説明されていない。他の事例では実施形態の説明を不必要に不明瞭にすることを避けるために、1つ又は複数のオブジェクトなどの感知データ及び体積表現を生成するための周知のコンピュータビジョン方法及び技法は詳細に説明されていない。
【0029】
文脈上別段の要求がない限り、以下の明細書及び特許請求の範囲を通して、「含む(comprise)」という用語、ならびに「含む(comprises)」及び「含む(comprising)」などのその変形は「含むが、これらに限定されない」という開かれた包括的な意味で解釈されるべきである
【0030】
本明細書を通して、「1つの実装形態」又は「1つの実施形態」への言及は、実施形態に関連して説明される特定の特徴、構成又は特徴が少なくとも1つの実施形態又は少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体の様々な場所における「1つの実装」(one implementation)又は「1つの実装」(a implementation)又は「1つの実施形態において」(in one embodiment)又は「1つの実施形態において」(in an embodiment)という表現の出現は、必ずしもすべてが同じ実装又は実施形態を指すわけではない。さらに、特定の特徴、構造又は特性は、1つ又は複数の実装形態又は実施形態において、任意の適切な方法で組み合わされることができる。
【0031】
本明細書及び同時提出の特許請求の範囲で用いられているように、単数表現はコンテンツが明確に定められていない限り、複数の存在を包含するものである。また、表現”又は”は一般に、コンテンツが明確に定められていない限り、”及び/又は”を包含する意味で用いられる。
【0032】
本明細書及び添付の特許請求の範囲で使用されるように、用語は、衝突が発生するか結果が生じるかという文脈で使用されるときに決定(determine)、決定(determining)、及び決定され(determined)、所与のポーズ(又は、姿勢)又はいくつかの中間ポーズを介した2つのポーズ間の移動がロボットの一部分といくつかのオブジェクト(例えば、ロボットの別の部分、別のロボットの一部分、持続性障害物(又は、永続的障害物/persistent obstacle)、一時的障害物(transient obstacle)、例えば人間)との間の衝突をもたらすかどうかに関する評価又は予測が行われることを意味する。
【0033】
本明細書及び添付の特許請求の範囲で使用されるように、ロボット又は複数のロボットの両方、及び/又はロボット又は複数のロボットの一部を意味するロボット又は複数のロボットへの言及がある。
【0034】
本明細書及び添付の特許請求の範囲で使用される場合、「フィデューシャル(又は、基準/fiducial)」という用語は参照点(point of reference)又は尺度として使用するために、センサー(複数可)によって生成されるセンサーデータ(例えば、画像)に現れる1つ又は複数のセンサー(例えば、撮像システムの画像センサー(複数可))の視野内の物体及び/又はマーク又はマークの組などの参照基準(又は、参照標準/standard of reference)を意味する。フィデューシャル(複数可)は、1つ又は複数のロボットの中又は上に配置されてもよく、又はロボット(複数可)とは独立して移動するように取り付けられてもよい。
【0035】
本明細書及び添付の特許請求の範囲で使用される場合、用語「経路(又は、path)」は2次元又は3次元空間内の点の集合又は軌跡を意味し、用語「軌道(又は、trajectory)」はそれらの点のうちの特定の点に到達する時間を含みかつ、速度及び/又は加速度も同様に含み得る経路を意味する。
【0036】
発明の名称及び要約は便宜上のものであり、本発明の範囲を表すものではなく、又は実施形態を意味するものでもない。
【0037】
図1は、1つの例示された実施形態による、タスクを実行するために動作環境104(ワークセルとも呼ばれる)で動作する1つ又は複数のロボット102a、102b(2つ示し、まとめて102)を含むロボットシステム100を示す。
【0038】
ロボット102は、多種多様な形態のいずれかをとり得る。典型的には、ロボット102が1つ又は複数のロボット付属物(又は、付属肢/appendage)の形態をとるか、又はロボット付属物を有する。ロボット102は1つ又は複数のジョイントを有する1つ又は複数のリンク機構と、制御信号又は駆動信号に応答してリンク機構を移動させるように結合され、動作可能なアクチュエータ(例えば、電気モータ、ステッピングモータ、ソレノイド、空気圧アクチュエータ又は油圧アクチュエータ)とを含み得る。空気圧アクチュエータは例えば、1つ又は複数のピストン、シリンダ、弁、ガスのリザーバ、及び/又は圧力源(例えば、圧縮機、ブロワ)を含み得る。油圧アクチュエータは例えば、1つ又は複数のピストン、シリンダ、弁、流体のリザーバ(例えば、低圧縮性の油圧流体)、及び/又は圧力源(例えば、圧縮機、ブロワ)を含み得る。ロボットシステム100は他の形態のロボット102、例えば、移動可能な付属物を有するか又は有さない自律車両を使用し得る。
【0039】
動作環境104は典型的にはロボット102a、102bが動作し、移動し得る3次元空間を表すが、特定の限定された実装形態では動作環境104は2次元空間を表し得る。動作環境104はロボット102の少なくとも一部が空間及び時間において重複するか、又はさもなければ衝突を回避するためにモーション(又は、動き/動作)が制御されない場合衝突し得る、ボリューム(又は、体積)又はエリアである。ワークセル又は動作環境104は、ロボット102a、102bのそれぞれの「構成空間」又は「C空間」とは異なることに留意されたい。
【0040】
本明細書で説明するように、ロボット102a又はその一部は別のロボット102bの視点(すなわち、別のロボット102bのモーションプランニング時)から考えると、障害物を構成してもよい。動作環境104はさらに他の障害物、例えば、機械(例えば、コンベヤ106)の一部分(又は、ピース)、支柱、柱、壁、天井、床、テーブル、人間、及び/又は動物をさらに含み得る。動作環境104はさらに、ロボット102がタスクを実行する一部として操作する1つ又は複数のワークアイテム又はワークピース108、例えば、1つ又は複数の小包、パッケージング、ファスナ、ツール、アイテム又は他のオブジェクトを含み得る。少なくともいくつかの実装形態では、動作環境104が1つ又は複数のフィデューシャル111a、111b(2つのみが示され、集合的に111となる)をさらに含み得る。本明細書に詳細に記載するように、フィデューシャル111a、111bは、1つ又は複数のセンサーが適切に動作しているかどうかの決定(又は、判断/判定)を容易にし得る。1つ又は複数のフィデューシャル111aはロボット102bの特有の部分であってもよく、又はロボット102bの一部分によって担持されもよく、安全認証可能な既知の又は知ることができる方法で(例えば、ジョイント回転角度に基づいて、経時的に既知の又は識別可能な軌道)ロボットの一部分とともに移動する。1つ又は複数のフィデューシャル111bはロボット102a、102bとは別個でありかつ区別され、移動のために(例えば、トラック又はレール113上に)取り付けられ、アクチュエータ(例えば、モータ、ソレノイド)によって駆動されて、安全認証可能な既知の又は知ることができる方法で(例えば、ロータリエンコーダによって捕捉されたモータの駆動シャフトの回転速度に基づいて、例えば、経時的に知られている又は識別可能な軌道)移動し得る。
【0041】
ロボットシステム100は1つ又は複数のモーションプランナ(又は、動作プランナ)、例えば、それぞれロボット102a、102bの各々についてそれぞれのモーションプランナ110a、110b(2つが示され、集合的に110)を含む、1つ又は複数のロボット制御システム109a、109b(2つが示され、集合的に109)を含み得る。少なくともいくつかの実装形態では、単一のモーションプランナ110を使用して、2つ、それ以上又はすべてのロボット102のモーションプランを生成し得る。モーションプランナ110は、ロボット102のそれぞれを制御するように通信可能に結合される。モーションプランナ110はまた、例えば、ロボット幾何学モデル112a、112b(キネマティック(又は、運動学的)モデルとしても知られる、集合的に112)、タスク114a、114b(集合的に114)、及びモーションプラン116a、116b(集合的に116)、又は動作環境104において動作する他のロボット102のための動作の他の表現を含む、様々なタイプの入力を受信するように通信可能に結合される。ロボット幾何学モデル112は例えば、ジョイント、自由度、寸法(例えば、リンク機構の長さ)に関して、及び/又はロボット102のそれぞれのC空間に関して、所与のロボット102のジオメトリを定義する。ロボット幾何学モデル112のモーションプランニンググラフへの変換は、例えばプロセッサベースのサーバシステム(
図1には図示せず)によって実行される実行時(又は、ランタイム)又はタスク実行の前に行うことができる。代替的に、モーションプランニンググラフが例えば、種々の技術のいずれかを使用して、1つ又は複数のプロセッサベースのロボット制御システム109a、109bによって生成されてもよい。タスク114は例えば、それぞれのロボット102のエンドポーズ、エンド構成又はエンド状態、及び/又は中間ポーズ、中間構成又は中間状態に関して実行されるタスクを指定する。ポーズ、構成又は状態は例えば、それぞれのロボット102のジョイント位置及びジョイント角度/回転(例えば、ジョイントポーズ、ジョイント座標)に関して定義されることができる。
【0042】
モーションプランナ110a、110bは、任意選択で、入力として静的オブジェクトデータ118a、118b(集合的に118)を受信するように通信可能に結合される。静的オブジェクトデータ118はワークセル又は動作環境104内の静的オブジェクトの代表(例えば、サイズ、形状、位置、占有空間)であり、例えば、先験的に知られていてもよい。静的オブジェクトは例えば、ワークセル又は動作環境内の1つ又は複数の固定構造、例えば、支柱、柱、壁、天井、床、コンベヤ106を含み得る。ロボット102は共有ワークセル又は動作環境104において動作しているので、静的オブジェクトは典型的には各ロボットについて同一である。したがって、少なくともいくつかの実装形態では、モーションプランナ110に供給される静的オブジェクトデータ118a、118bは同一である。他の実装形態では、モーションプランナ110に供給される静的オブジェクトデータ118a、118bは例えば、環境内のロボット102の位置又は向き、又はロボット102の環境視点に基づいて、ロボットごとに異なり得る。さらに、上述のように、いくつかの実装形態では、単一モーションプランナ110が2つ又はそれ以上のロボット102のためのモーションプランを生成し得る。
【0043】
モーションプランナ110は任意選択で、例えば知覚サブシステム124によって提供される入力知覚データ120を受信するように通信可能に結合される。知覚データ120は、先験的に知られていないワークセル又は動作環境104内の静的及び/又は動的オブジェクトを表す。知覚データ120は1つ又は複数のセンサー(例えば、2次元又は3次元カメラ122a、122b、飛行時間カメラ、レーザスキャナ、LIDAR、LEDベースの光電センサー、レーザベースのセンサー、超音波センサー、ソナーセンサー)を介して感知された、及び/又は知覚サブシステム124によって障害物のデジタル表現に変換された生データであり得る。そのようなセンサーは、COTSセンサーの形態をとってもよく、安全が認定された安全システムの一部として使用されてもよく、又は使用されなくてもよい。
【0044】
オプションの知覚サブシステム124は知覚サブシステム124に、ロボット102が様々な異なるシナリオのタスクを実行するように動作する環境の表現のそれぞれの離散化を生成させる1つ又は複数の機械可読命令を実行し得る1つ又は複数のプロセッサを含み得る。
【0045】
オプションの知覚センサー(例えば、カメラ122a、122b)は生の知覚情報(例えば、点群)を知覚サブシステム124に提供する。オプションの知覚サブシステム124は生の知覚情報を処理することができ、結果として生じる感知データは点群、占有グリッド、ボックス(例えば、バウンディングボックス(又は、境界ボックス))又は他の幾何学的オブジェクト、又は環境内に存在する障害物を表すボクセルのストリーム(すなわち、「ボクセル」は、3Dピクセル又はボリュメトリック(又は、体積)ピクセルに相当する)として提供されることができる。障害物の表現は任意選択で、1つ又は複数のプロセッサ、例えば、任意選択の知覚サブシステム124の1つ又は複数のプロセッサのいずれかのオンチップメモリに記憶されることができる。知覚データ120はどのボクセル又はサブボリューム(例えば、ボックス)が現在の時間(例えば、実行時)に環境内で占有されているかを表し得る。いくつかの実装形態ではロボット又は環境内の別の障害物のいずれかを表すとき、ロボット又は障害物(例えば、他のロボットを含む)のそれぞれの表面はボクセル又はポリゴン(しばしば三角形)のメッシュのいずれかとして表されることができる。場合によっては、オブジェクトを代わりにボックス(矩形プリズム、バウンディングボックス)又は他の幾何学的オブジェクトとして表現することが有利である。オブジェクトがランダムに成形されないという事実のために、ボクセルがどのように編成されるかにはかなりの量の構造があり得、オブジェクト内の多くのボクセルが3D空間内で互いにすぐ隣にある。したがって、オブジェクトをボックスとして表現することは、はるかに少ないビットを必要とし得る(すなわち、ボックスの2つの対向する角のためのx、y、zデカルト座標だけを必要とし得る)。また、ボックスの交差テストを実行することは、ボクセルの交差テストを実行することと複雑さが同等である。
【0046】
少なくともいくつかの実装形態は複数のセンサーの出力を組み合わせることができ、センサーは、非常に細かい粒状度(又は、粒度/granularity)のボクセル化を提供し得る。しかしながら、モーションプランナがモーションプランニングを効率的に実行するために、様々な状態、構成又はポーズの間で遷移を行うときに、ロボット102又はその一部によって掃引される3D空間内の環境及びボリュームを表すためにより粗いボクセル(すなわち、「プロセッサボクセル」)が使用されることができる。したがって、任意選択の知覚サブシステム124はセンサー(例えば、カメラ122a、122b)の出力をそれに応じて変換し得る。例えば、カメラ122a、122bの出力は各軸上で10ビットの精度を使用することができ、したがって、カメラ122a、122bから直接的に生じる各ボクセルは30ビットのIDを有し、230のセンサーボクセルが存在する。ロボット制御システム109a、109bは18ビットのプロセッサボクセルIDに対して各軸上で6ビットの精度を使用することができ、218のプロセッサボクセルが存在する。したがって、例えば、プロセッサボクセル当たり212のセンサーボクセルがあり得る。実行時に、システムが、プロセッサボクセル内のセンサーボクセルのいずれかが占有されていると決定した場合、ロボット制御システム109a、109bはプロセッサボクセルが占有されているとみなし、それに応じて占有グリッドを生成する。
【0047】
ロボットシステム100は複数のセンサー、例えば、第一センサー132a、第二センサー132b、第三センサー132c及び第四センサー132d(4つのみを示し、集合的に132)と、安全システム130のセンサー132に通信可能に結合された1つ又は複数のプロセッサ134とを含む、1つ又は複数のプロセッサベースのワークセル安全システム130(1つが示される)を含み得る。
【0048】
センサー132は、動作環境104の大部分又は全部を集合的に知覚又は監視するように配置され、方向付けられる。好ましくは、センサー132の少なくとも対が動作環境の様々な部分のカバレッジにおいて重複し、FMEAアプローチ又は技法の適用を介して安全認定動作を容易にする。4つのセンサー132が図示されているが、より少数の、又はさらにより可能性の高いより多くの数のセンサー132が使用されてもよい。安全システム130によって使用されるセンサー132の総数は、典型的には動作環境のサイズ及び構成、センサー132のタイプ、所望又は指定される安全性のレベル、及び/又は許容可能と見なされるオクルージョンのレベル又は程度の一部に依存する。本明細書で説明するように、センサー132は有利にはCOTSセンサーの形態をとり得るが、FMEAアプローチ又は技法の適用を通じて、その少なくともいくつかが本明細書で説明されているが、全体的なプロセッサベースのワークセル安全システム130は安全認定される。
【0049】
センサー132は、好ましくは一組の異種センサーを含む。
【0050】
異種センサー132は例えば、第一動作モダリティを有する第一センサー、第二動作モダリティを有する第二センサーの形態をとり得る。第二動作モダリティは、有利には第一動作モダリティとは異なり得る。そのような実装形態ではプロセッサベースのシステムが有利には第一モダリティフォーマットで第一センサーから情報を受信し、第二モダリティフォーマットで第二センサーから情報を受信し、第二モダリティフォーマットは第一モダリティフォーマットとは異なる。例えば、第一センサーは画像センサーの形態をとってもよく、第一モダリティフォーマットはデジタル画像の形態をとってもよい。また、例えば、第二センサーはレーザスキャナ、受動赤外線(PIR)モーションセンサー、超音波、ソナー、LIDAR又は熱センサーの形態をとることができ、第二モダリティフォーマットはアナログ信号又はデジタル信号であり、いずれもデジタル画像フォーマットではない。任意の所与の実装形態では、第三センサー、第四センサー、又はさらにはそれ自体のそれぞれの動作モダリティを有するより多くのセンサーが存在し得、多様性及び異種性を増大させる。
【0051】
異種センサー132は例えば、動作環境の第一視野を有する第一センサーと、動作環境の第二視野を有する第二センサーとの形態をとることができ、第二視野は、第一視野とは異なる。そのような実装形態では、プロセッサベースのシステムが有利には第一視野を有する第一センサーから情報を受信し、第二視野を有する第二センサーから情報を受信する。任意の所与の実装形態では、第三センサー、第四センサー、又はさらにはそれ自体のそれぞれの視野を有するより多くのセンサーが存在し得、多様性及び異種性を増大させる。いくつかの事例では2つ又はそれ以上のセンサーの視野が部分的に重複するか又は完全に重複することができ、2つ又はそれ以上のセンサーのいくつかの視野はすべての点で同一の広がりを持つ。
【0052】
異種センサー132は例えば、センサーの第一のメーク(又は、構造)(すなわち、製造者)及びモデルを有する第一センサーと、第二センサーはセンサーの第二のメーク及びモデルを有する第二センサーとの形態をとることができ、第二センサーの第二のメーク又はモデルのうちの少なくとも1つは、それぞれの第一センサーの第一のメーク及びモデルとは異なる。そのような実装形態では、プロセッサベースのシステムが有利にはセンサーの第一のメーク及び/又はモデルに固有であり得る第一フォーマットで第一センサーから情報を受信し、センサーの第二のメーク及び/又はモデルに固有であり得る第二フォーマットで第二センサーから情報を受信する。任意の所与の実装形態では、第三センサー、第四センサー、又はさらにはそれ自体のそれぞれのメーク及びモデルを有するより多くのセンサーが存在し得、多様性及び異種性を増大させる。
【0053】
異種センサーは例えば、第一サンプリングレートを有する第一センサーと、第二サンプリングレートを有する第二センサーとの形態をとることができ、第二サンプリングレートは第一サンプリングレートとは異なる。そのような実装形態では、プロセッサベースのシステムが有利には第一サンプリングレートでキャプチャされた第一センサーからの情報を受信し、第二サンプリングレートでキャプチャされた第二センサーからの情報を受信する。任意の所与の実装形態では、第三センサー、第四センサー、又はさらにはそれ自体のそれぞれのサンプリングレートを有するより多くのセンサーが存在し得、多様性及び異種性を増加させる。
【0054】
異種センサーの任意の1つ又は複数の組合せを使用し得る。一般に、センサーのセットの異種性を増加させることは全体的な安全システムの安全証明を達成するために有利に使用されることができるが、センサーのセットの異種性を増加させることは保守コストを不利に増加させることがあり、したがって、典型的には回避されることになる。
【0055】
センサー132は知覚サブシステム124のカメラ122a、122bとは別個であり、かつ区別され得る。代替的に、1つ又は複数のセンサー132が知覚サブシステム124の一部であり得る。センサー132は動作環境104内のオブジェクトを検知することができ、特に動作環境104を検知して、動作環境104内の1人又は複数の人間の存在、位置、及び/又は移動又は軌道を検知し得る、多種多様な形態のいずれかをとり得る。センサー132は、非限定的な例では2次元デジタルカメラ、3次元デジタルカメラ、飛行時間カメラ、レーザスキャナ、レーザベースセンサー、超音波センサー、ソナー、受動赤外線センサー、LIDAR、及び/又は熱センサーの形態をとり得る。本明細書で使用される場合、センサーという用語は動作環境104の物理的特性を検出するセンサー又はトランスデューサ、ならびにそのようなセンサーに関連する任意のトランスデューサ又は他のエネルギー源、例えば、発光ダイオード、他の光源、レーザ及びレーザダイオード、スピーカ、触覚エンジン、超音波エネルギー源等を含む。
【0056】
図示されていないが、いくつかの実装形態は人間が動作環境に入ったときを検出する追加のタイプのセンサー、例えば、人間によって装着されたRFIDトランスポンダを検出する無線周波数識別(RFID)質問(又は、インタロゲーション)システム、レーザスキャナ、圧力センサー、ワークセル内の人間の存在を検出するが、必ずしもワークセル内の人間の位置又は場所は検出しない受動赤外線(PIR)動作検出器を含み得る。
【0057】
プロセッサベースのワークセル安全システム130の1つ又は複数のプロセッサ134及び他の構成要素(例えば、通信ポート、無線機(又は、ラジオ)、アナログデジタルコンバータ)は、センサー132に通信可能に結合され、そこからセンサーデータを受信する。プロセッサベースのワークセル安全システム130のプロセッサ(複数可)134は例えば、非一時的なプロセッサ可読媒体(例えば、読み出し専用メモリ、ランダムアクセスメモリ、フラッシュメモリ、ソリッドステートドライブ、磁気ハードディスクドライブ)内のプロセッサ実行可能命令として記憶された論理を実行する。
【0058】
例えば、プロセッサベースのワークセル安全システム130は、少なくとも1つの非一時的プロセッサ可読媒体上に1つ又は複数の組のセンサー状態ルール125aを記憶し得る。センサー状態ルール125aは、それぞれのセンサー132又はセンサーのタイプのためのルール、動作条件、値、様々なパラメータの値又は値の範囲及び/又は他の基準を指定する。プロセッサベースのワークセル安全システム130はセンサー状態ルール125aを適用して、任意の所与のセンサー132の動作状態、すなわち、それぞれのセンサー132が通常の又は許容可能な境界内で動作している(すなわち、故障がない条件、動作状態)かどうかを評価するか、又はさもなければ決定することができ、あるいは、故障している又は潜在的に故障しているセンサー132又は他の許容不可能な状態(すなわち、故障条件、動作不能状態)を識別し得る。評価は、センサー132の各々について1つ、2つ又はそれを上回る動作条件を評価し得る。センサー動作状態はオン状態又はオフ状態のうちのいずれか1つ又は複数の評価に基づくことができ、センサーはセンサー情報を提供し、センサーはセンサーの公称サンプリングレートでセンサー情報を提供し、センサーはスタック状態にない(すなわち、センサーによって提供されるセンサー情報が変化している、既知の所定の環境条件に対して予想される方法で変化している、及び/又は他のセンサー(複数可)によって感知される変化、例えば、別のロボット又は他の基準の動きと一致する方法で変化している)。評価は例えば、2つ又はそれ以上のセンサー132の間の比較(例えば、2つ又はそれ以上のセンサー132の出力の比較)によって所与のセンサーの動作状態を評価することができ、その例は本明細書に記載されている。一例として、各センサー132は、それぞれのサンプリングレートに関連付けられ得る。センサー状態ルール125aは、それぞれの許容可能なサンプリング範囲、又は許容可能であると考えられるサンプリングレート誤差のパーセンテージ、又は逆に許容不可能であると考えられる同様の値を定義し得る。また、一例として、センサー状態ルール125aは、センサー132がスタックし得るそれぞれの時間量、又はセンサー132がスタックしていないことを確認するための周波数であって、許容可能であると考えられるもの、又は逆に許容可能でないと考えられる同様の値を定義し得る。センサーの動作状態又は動作状態の評価は1つ又は複数のセンサー132が、予想通りに動作しているか、及び/又は、性能パラメータ又は条件の定義されたセット内で動作しているかどうかを示し得、したがって、個々のセンサーは安全なワークセル又は動作環境104を提供するために依拠されることができるか、又は不良状態又は動作不能状態、又は潜在的に不良状態又は動作不能状態が存在するかどうかを示し得る。
【0059】
センサー状態ルール125aは、センサータイプによって、又は個々のセンサー識別情報によってさえ、記憶されることができるか、又は探索可能であり得る。
【0060】
また、例えば、プロセッサベースのワークセル安全システム130は、少なくとも1つの非一時的プロセッサ可読媒体上に1つ又は複数の組のシステム妥当性確認ルール(又は、システム検証ルール/システムバリデーションルール/system validation rule)125bを記憶し得る。システム妥当性確認ルール125bは、プロセッサベースのワークセル安全システム130の動作状態の妥当性を確認する(又は、検証する/validate)ために使用されるルール、動作条件、パラメータの値、及び/又は他の基準を指定する。妥当性確認は例えば、センサー132の決定された動作状態に基づき得る。システム妥当性確認ルール125bは例えば、選択センサー132及び/又はセンサー132の1つ又は複数の選択グループのためのルールを指定し得る(例えば、すべてのセンサーが動作可能でなければならない、必要に応じて特定されたセンサーが動作可能でなければならず、他のセンサーが動作可能であっても動作可能でなくてもよい、センサーのセットのセンサーの大部分が整合しなければならない。)。プロセッサベースのワークセル安全システム130は、システム妥当性確認ルール125bを評価して又はさもなければ適用して、安全認証動作を保証するために安全システム130に依存するために正常又は許容範囲内で動作している十分なセンサー132があるかどうかを決定し得る。安全認定動作を保証するために安全システム130に依拠するために正常又は許容範囲内で動作している十分なセンサー132があるとき、プロセッサベースのワークセル安全システム130は、非異常なシステムステータスの存在を識別又は示すことができる。逆に、安全認定動作を保証するために安全システム130に依拠するために正常又は許容範囲内で動作するには不十分なセンサー132が存在する場合、プロセッサベースのワークセル安全システム130は、異常なシステムステータスの存在を識別又は示すことができる。
【0061】
また、本明細書で説明されるように、プロセッサベースのワークセル安全システム130はプロセッサベースのワークセル安全システム130について、異常なシステムステータス、又は非異常なシステムステータスを示すシステム妥当性確認の結果が存在するかどうかを任意選択で決定することができ、これは、全体的なプロセッサベースのワークセル安全システム130を信頼できなくする。そのようなことは、第一センサー、第二センサー、及び場合によってはより多くのセンサーの評価の少なくとも一部に基づくことができる。プロセッサベースのワークセル安全システム130のためのシステムステータスは非異常状態が存在するために何個の及び/又はどのセンサー132が動作可能又は信頼できると考えられるか、又は逆に、異常なシステムステータスが存在するために何個の及び/又はどのセンサー132が動作不能又は信頼できないと考えられるかを指定する一組のシステム妥当性確認ルール125bを介して定義し得る。システム妥当性確認ルール125bはセンサー132のうちの任意の単一の特定の1つ(すなわち、必要な(necessary)又は要求される(又は、必要な/required)センサー)における定義されたエラー又は故障表示又は動作状態が、プロセッサベースのワークセル安全システム130のための異常なシステムステータスを構成することを指定し得る。システム妥当性確認ルール125bは、2つ又はそれ以上の特定のセンサー132の組における定義されたエラー又は故障表示又は動作状態がプロセッサベースのワークセル安全システム130のための異常なシステムステータスを構成することを指定し得る。例えば、一組のセンサーの任意の単一の1つにおける故障状態又は故障動作状態の検出、又は一組のセンサーの全てのセンサーにおける故障状態又は故障動作状態の検出、又は一組のセンサーの大部分における故障状態又は故障動作状態の検出は、プロセッサベースのワークセル安全システム130の異常なシステムステータスを構成する。代替的に、システム妥当性確認ルール125bは、センサー132の大部分の間に矛盾があるときに存在するためのプロセッサベースのワークセル安全システム130の異常なシステムステータスを定義し得る。いくつかの実装形態ではセンサー132の大部分の間に一貫性がある場合、少なくとも1つのプロセッサはセンサー132が動作環境内又はその一部分内で安全動作を提供するのに十分に信頼できると決定し得る。
【0062】
また、例えば、プロセッサベースのワークセル安全システム130は、少なくとも1つの非一時的プロセッサ可読媒体上に1つ又は複数の組の安全監視ルール(safety monitoring rules)125cを記憶し得る。安全監視ルール125cは、規定された安全基準の違反について動作環境を評価するために使用される規則、条件、パラメータの値、及び/又は他の基準を規定する。例えば、安全監視ルール125cは、ロボット又はその一部と、人間であるか、又は人間であり得るオブジェクトとの間で特定の条件が維持されることを必要とする規則又は基準を指定し得る。例えば、安全監視ルール125cはオブジェクト(例えば、人間)とロボットの一部分又はロボットの経路又は軌道との間に、例えば、そのロボットがその経路又は軌道に沿って移動するのにかかる時間にわたって、少なくとも1つの定義された測定単位(例えば、グリッドの領域)が存在することを指定し得る。プロセッサベースのワークセル安全システム130はセンサー132のうちの1つ又は複数によって提供されるセンサーデータを評価して、オブジェクトの位置を決定し、及び/又はオブジェクトが人間であるか又は人間であり得るかどうかを評価し得る。プロセッサベースのワークセル安全システム130は1つ又は複数のセンサー132によって提供されるセンサーデータ、知覚サブシステム124によって提供されるセンサーデータ、及び/又はロボット制御システム109a、109bからの、又はロボット102a、102b自体からの情報(例えば、ジョイント角度)を評価して、所与の時間にわたるロボット102a、102bの位置及び向き及び/又は軌道を決定し得る。プロセッサベースのワークセル安全システム130は、人の位置、経路又は軌道と、ロボット102a、102bの位置、経路又は軌道が安全監視ルール125cのうちの1つ又は複数に違反するか否かを決定し得る。安全監視ルール125cの違反の検出に応答して、プロセッサベースのワークセル安全システム130は、停止、減速、予防的オクルージョンの導入を引き起こす、又はさもなければ1つ又は複数のロボット102a、102bの動作を禁止する1つ又は複数の信号を提供し得る。
【0063】
図1には、様々な通信経路が矢印で示されている。通信経路は例えば、1つ又は複数の有線通信経路(例えば、電気導体、信号バス又は光ファイバ)及び/又は1つ又は複数のワイヤレス通信経路(例えば、RF又はマイクロ波ラジオ及びアンテナ、赤外線トランシーバを介する)の形態をとり得る。特に、モーションプランナ110a、110bの各々はロボット102a、102bのそれぞれの1つのモーションプランをモーションプランナ110a、110bの他の1つに提供するために、直接的又は間接的のいずれかで、互いに通信可能に結合される。例えば、モーションプランナ110a、110bはネットワークインフラストラクチャ、例えば、非専有(又は、非プロプライエタリー/non-proprietary)ネットワークインフラストラクチャ(例えば、イーサネット(登録商標)ネットワークインフラストラクチャ)126を介して互いに通信可能に結合されることができる。また、特に、プロセッサベースのワークセル安全システム130は、任意選択で、ロボット制御システム109a、109bに通信可能に結合され、それに信号を提供する。例えば、プロセッサベースのワークセル安全システム130は例えば、異常なシステムステータスが存在するという決定に応答して、1つ又は複数のロボット102の移動を停止又は遅くするための信号を提供し得る。また、例えば、プロセッサベースのワークセル安全システム130は例えば、ロボット制御システム109a、109bに信号を提供して、モーションプランナ110a、110bに、動作環境の1つ又は複数のエリア又は領域を遮蔽されたものとして扱わせることができる。例えば、1つ又は複数のセンサーによって監視されるエリア又は領域はそれぞれのセンサー(複数可)132が1組の期待される条件外(例えば、センサー(複数可)の誤動作状態)で動作しているとの決定に応答して、遮蔽されたものとして識別されることができる。また、例えば、プロセッサベースのワークセル安全システム130はロボット制御システム109a、109b及び/又はモーションプランナ110a、110bに、安全監視ルール125cの1つ又は複数のセットへのアクセスを提供し得る。そのようなことは、ロボットシステム100のロボット制御部分(例えば、ロボット制御システム109a、109b、モーションプランナ110a、110b)が本明細書に記載されるように、モーションプランを開発及び/又は実行するときに、安全システムの構成、特に、ロボット動作の阻害をトリガする条件を有利に考慮することを可能にし得る。したがって、ロボットシステム100の機能部分は一般に、プロセッサベースのワークセル安全システム130とは独立して構成されることができるが、ロボット制御システム109a、109bはプロセッサベースのワークセル安全システム130の動作を有利に考慮に入れ、停止、減速、及び/又は予防的オクルージョンの使用を低減し得る。
【0064】
「環境」という用語はロボットの現在のワークセルを指すために使用され、これは1つ、2つ又はそれ以上のロボットが同じ作業空間内で動作する動作環境である。環境は障害物及び/又はワークピース(すなわち、ロボットが相互作用し、その上で作用し、又はそれと共に作用するアイテム)を含み得る。「タスク」という用語は、ロボットがその環境内の障害物と衝突することなく、ポーズAからポーズBに移行するロボットタスクを指すために使用される。タスクは、おそらく、アイテムの把持又は非把持、アイテムの移動又はドロップ、アイテムの回転、アイテムの取り出し又は配置を含み得る。ポーズAからポーズBへの遷移は、任意選択で、1つ又は複数の中間ポーズ間の遷移を含み得る。「シナリオ」という用語は、環境/タスクの対のクラスを指すために使用される。例えば、あるシナリオは、「3フィートのテーブル又はコンベヤを備えた環境におけるピックアンドプレースタスク、及び所与の範囲内のサイズ及び形状を有するx及びy障害物の間」であり得る。目標の場所ならびに障害物のサイズ及び形状に応じて、そのような基準に適合する多くの異なるタスク/環境の対があり得る。
【0065】
モーションプランナ110はモーションプラン116を動的に生成して、ロボット102に環境内のタスクを実行させるように動作可能であり、一方、ロボット102のうちの他のものの(例えば、それぞれのモーションプラン116又は結果として生じる掃引ボリュームによって表される)計画されたモーションを考慮に入れ、及び/又は、任意選択で、プロセッサベースのワークセル安全システム130によって採用される規則及び条件を考慮に入れる。モーションプランナ110は任意選択で、モーションプラン116を生成するときに、静的オブジェクトデータ118及び/又は知覚データ120によって表される先験的静的オブジェクトの表現を考慮し得る。任意選択で、モーションプランナ110はモーションプランを生成するときに、プロセッサベースのワークセル安全システム130によって実装される安全監視ルール125cを考慮に入れてもよい。任意選択で、モーションプランナ110は所与の時間における他のロボット102の動作状態、例えば、別のロボット102が所与のモーション又はタスクを完了したかどうかを考慮し、他のロボットのうちの1つのモーション又はタスクが完了したことに基づいてモーションプランの再計算を可能にし、したがって、以前に除外された経路又は軌道を利用可能にして選択し得る。任意選択的に、モーションプランナ110はロボット102の動作状態、例えば、故障状態の発生又は検出、遮断状態の発生又は検出、及び/又はモーションプランニング要求を促進又は代替的に遅延又はスキップするための要求の発生又は検出を考慮し得る。
【0066】
図2は、例示的な一実施形態による、プロセッサベースのワークセル安全システム200を示す。プロセッサベースのワークセル安全システム200は、プロセッサベースのワークセル安全システム130(
図1)を実装し得る。
【0067】
プロセッサベースのワークセル安全システム200は、いくつかのセンサー232、好ましくは一組の異種センサー、1つ又は複数のプロセッサ222、及び1つ又は複数の関連する非一時的コンピュータ可読又はプロセッサ可読記憶媒体、例えばシステムメモリ224a、ディスクドライブ224b、及び/又はプロセッサ222のメモリ又はレジスタ(図示せず)を備え得る。非一時的コンピュータ可読又はプロセッサ可読記憶媒体は、システムバス227等の1つ又は複数の通信チャネルを介してプロセッサ(複数可)222に通信可能に結合される。システムバス227は、メモリコントローラを有するメモリバス、周辺バス、及び/又はローカルバスを含む、任意の既知のバス構造又はアーキテクチャを採用し得る。そのような構成要素のうちの1つ又は複数はまた、又はその代わりに、1つ又は複数の他の通信チャネル、例えば、1つ又は複数のパラレルケーブル、シリアルケーブル、又は高速通信可能なワイヤレスネットワークチャネル、例えば、ユニバーサルシリアルバス(「USB」)3.0、周辺構成要素相互接続エクスプレス(PCIe)を介して、又はThunderbolt(登録商標)を介して互いに通信し得る。
【0068】
上述のように、プロセッサベースのワークセル安全システム200は1つ又は複数のプロセッサ222(すなわち、回路)、非一時的記憶媒体、及び様々なシステム構成要素を結合するシステムバス227を含み得る。プロセッサ222は、1つ又は複数の中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、プログラマブルロジックコントローラ(PLC)等の任意の論理処理ユニットであり得る。システムメモリ224aは、リードオンリーメモリ(「ROM」)226、ランダムアクセスメモリ(「RAM」)228、フラッシュメモリ230、EEPROM(図示せず)を含み得る。基本入出力システム(「BIOS」)232はROM226の一部を形成することができ、起動中等に、プロセッサベースのワークセル安全システム200内の要素間で情報を転送するのを助ける基本ルーチンを含む。
【0069】
ディスクドライブ224bは例えば、磁気ディスクからの読み取り及び磁気ディスクへの書き込みのためのハードディスクドライブ、ソリッドステートメモリからの読み取り及びソリッドステートメモリへの書き込みのためのソリッドステート(例えば、フラッシュメモリ)ドライブ、及び/又はリムーバブル光ディスクからの読み取り及びリムーバブル光ディスクへの書き込みのための光ディスクドライブであり得る。プロセッサベースのワークセル安全システム200はまた、様々な異なる実施形態におけるそのようなドライブの任意の組合せを含み得る。ディスクドライブ224bは、システムバス227を介してプロセッサ(複数可)222と通信し得る。ディスクドライブ(複数可)224bは当業者に知られているように、そのようなドライブとシステムバス227との間に結合されたインターフェース又はコントローラ(図示せず)を含み得る。ディスクドライブ224b及びその関連するコンピュータ可読媒体は、コンピュータ可読又はプロセッサ可読及び/又は実行可能な命令、データ構造、プログラムモジュール、及びプロセッサベースのワークセル安全システム200のための他のデータの不揮発性記憶装置を提供する。当業者は、WORMドライブ、RAIDドライブ、磁気カセット、デジタルビデオディスク(「DVD」)、ベルヌーイカートリッジ、RAM、ROM、スマートカード等、コンピュータによってアクセス可能なデータを記憶し得る他のタイプのコンピュータ可読媒体が使用されることができることを理解するであろう。
【0070】
実行可能な命令及びデータ、例えば、オペレーティングシステム236、1つ又は複数のアプリケーションプログラム238、他のプログラム又はモジュール240及びデータ242はシステムメモリ224aに記憶されることができる。アプリケーションプログラム238はプロセッサ(複数可)222に、センサー状態ルール125a(
図1)に少なくとも部分的に基づいてセンサー動作状態を評価することと、システム妥当性確認ルール125b(
図1)に少なくとも部分的に基づいてシステム動作状態を評価することと、特定のセンサー232及び/又はセンサー232のグループ又はセットのセンサー状態に基づいて、プロセッサベースのワークセル安全システム200について非異常なシステムステータスが存在するか又は異常なシステムステータスが存在するかどうかを決定することと、安全監視ルール125c(
図1)に少なくとも部分的に基づいて動作環境の安全監視を実行することとのうちの1つ又は複数を実行させる、プロセッサ実行可能命令を含み得る。プロセッサ222は例えば、方法500、600、700及び800(それぞれ、
図5、6、7及び8)のここで説明される様々なアルゴリズムを実行する命令を実行し得る。アプリケーションプログラム238はさらに、プロセッサ(複数可)222に他の動作を実行させる、例えば、センサー232を介してキャプチャされたセンサーデータを任意選択で処理させる、1つ又は複数の機械可読及び機械実行可能命令を含み得る。アプリケーションプログラム238はプロセッサ(複数可)222に、本明細書に及び参照により本明細書に組み込まれる参考文献に記載の様々な他の方法を実行させる1つ又は複数の機械実行可能命令をさらに含み得る。
【0071】
データ242は例えば、少なくとも1つの非一時的プロセッサ可読媒体上に記憶されたセンサー状態ルール125a(
図1)の1つ又は複数のセットを含み得る。データ242は例えば、少なくとも1つの非一時的プロセッサ可読媒体上のシステム妥当性確認ルール125b(
図1)の1つ又は複数のセットを含み得る。データ242は例えば、少なくとも1つの非一時的プロセッサ可読媒体上に安全監視ルール125c(
図1)の1つ又は複数のセットを含み得る。
【0072】
様々な実装形態では、上記で説明した動作のうちの1つ又は複数がネットワークインターフェースを介した通信ネットワークを介してリンクされる1つ又は複数のリモート処理デバイス又はコンピュータによって実行されることができる。
【0073】
図2にはシステムメモリ224aに記憶されているものとして示されているが、オペレーティングシステム236、アプリケーションプログラム238、他のプログラム/モジュール240及びプログラムデータ242は他の非一時的なコンピュータ可読媒体又はプロセッサ可読媒体、例えば、ディスクドライブ(複数可)224bに記憶されることができる。
【0074】
プロセッサ(複数可)222は、1つ又は複数の中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックコントローラ(PLC)等の任意の論理処理ユニットであってよく、又はそれらを含み得る。市販のコンピュータシステムの非限定的な例としては米国Intel(登録商標)社が提供するマイクロプロセッサのCeleron、Core、Core 2、Itanium及びXeonファミリー、米国アドバンストマイクロデバイス社が提供するK8、K10、Bulldozer及びBobcatシリーズマイクロプロセッサ、米国アップルコンピュータ社が提供するA5、A6及びA7シリーズマイクロプロセッサ、米国クアルコム社が提供するスナップドラゴンシリーズマイクロプロセッサならびに米国オラクル社が提供するSPARCシリーズマイクロプロセッサが含まれるが、これらに限定されない。
図2に示される様々な構造の構築及び動作は、2017年6月9日に出願された「自律走行車及び再構成可能なモーションプランプロセッサのためのモーションプラン」、2016年1月5日に出願された「特殊化されたロボットモーションプランハードウェア及びその使用方法」、及び/又は2018年1月12日に出願された「動的なオブジェクトを有する環境における自律走行車のモーションプランを容易にするための装置、方法及び物品」に記載された又はそれらに記述されたものに類似する構造、技術及びアルゴリズムを実施又は使用し得る。
【0075】
必須ではないが、実装の多くはコンピュータ可読又はプロセッサ可読媒体に記憶され、障害物表現、衝突評価、及び他のモーションプランニング動作を実行し得る1つ又は複数のコンピュータ又はプロセッサによって実行される、プログラムアプリケーションモジュール、オブジェクト又はマクロ等のコンピュータ実行可能命令の一般的な文脈で説明される。
【0076】
図3は、少なくとも図示の実施形態による、第一ロボット制御システム300及び第一ロボット302を示す。第一ロボット制御システム300は、第一ロボット302の動作を制御するための第一モーションプラン306を生成する第一モーションプランナ304を含む。
【0077】
同様に、他のロボット制御システムの他のモーションプランナは、他のロボット(
図3には図示せず)の動作を制御するための他のモーションプランを生成する。
【0078】
ロボット制御システム(複数可)300は例えば、少なくとも1つの通信チャネル(例えば、送信機、受信機、送受信機、無線機、ルータ、イーサネット(登録商標))を介して、モーションプランニンググラフ及び/又は掃引ボリューム表現を、モーションプランニンググラフ及び/又は掃引ボリューム表現の1つ又は複数のソースから受信するように、通信可能に結合されることができる。モーションプラングラフ及び/又は掃引ボリュームのソース(複数可)は1つの図示された実施形態によれば、モーションプランナ304とは別個であり、かつ区別され得る。モーションプランニンググラフ及び/又は掃引ボリュームのソース(複数可)は例えば、1つ又は複数のプロセッサベースのコンピューティングシステム(例えば、サーバコンピュータ)であってもよく、これは、ロボット302のそれぞれの製造業者によって、又は何らかの他のエンティティによって動作又は制御されることができる。モーションプランニンググラフはそれぞれ、それぞれのロボットの状態、構成又はポーズを表すノードのセットと、ノードのそれぞれの対のノードを結合し、状態、構成又はポーズ間の合法的又は有効な遷移を表すエッジのセットとを含み得る。状態、構成又はポーズは例えば、それぞれのロボット302のジョイントの各々についてのジョイント位置、向き、ポーズ又は座標のセットを表し得る。したがって、各ノードは、ロボット302を構成するジョイントのポーズによって完全に定義されるようなロボット302又はその一部のポーズを表すことができる。モーションプランニンググラフは実行時の前に(すなわち、タスクの実行の前に定義されて)、例えば、実行時前(又は、事前実行時/プリランタイム)又は構成時(又は、コンフィギュレーション時/準備時)中に、決定され、セットアップされ又は定義されることができる。掃引ボリュームは、ロボット302又はその一部がモーションプランニンググラフのそれぞれのエッジに対応する動き又は遷移を実行するときに占めるであろうそれぞれのボリュームを表す。掃引ボリュームは例えば、ボクセル、ユークリッド距離フィールド、幾何学的オブジェクトの階層として、様々な形態のいずれかで表すことができる。これは、有利なことに、応答性が特定の関心事ではないときに、最も計算集約的な作業のいくつかを実行時の前に実行することを可能にする。
【0079】
ロボット制御システム(複数可)300は任意選択で、例えば少なくとも1つの通信チャネル(例えば、送信機、受信機、送受信機、無線機、ルータ、イーサネット(登録商標))を介して、プロセッサベースのワークセル安全システム130(
図1)又はプロセッサベースのワークセル安全システム200(
図2)から、例えば、ロボット動作を停止するための、ロボット動作を遅くするための、遮蔽されたエリア又は領域を示すための、及び/又は安全監視ルール125c(
図1)にアクセスするための信号を含む、信号及び/又はデータを受信するために通信可能に結合されることができる。代替的に、安全監視ルール125c(
図1)は任意選択的に、ロボット制御システム(複数可)300に記憶されてもよい。
【0080】
各ロボット302は一組のリンク、ジョイント、エンドオブアームツール又はエンドエフェクタ、及び/又はジョイントの周りでリンクを移動させるように動作可能なアクチュエータ318a、318b、318c(3つ、集合的に318で示される)を含み得る。各ロボット302は例えばモーションプラン306の形態の制御信号を受信し、アクチュエータ318を駆動するための駆動信号を提供する、1つ又は複数のモーションコントローラ(例えば、モータコントローラ)320(1つのみ図示)を含み得る。
【0081】
ロボット302ごとにそれぞれのロボット制御システム300があってもよく、代替的に、1つのロボット制御システム300が2つ又はそれ以上のロボット302のモーションプランニングを実行してもよい。1つのロボット制御システム300について、説明のために詳細に説明する。当業者は、説明が他のロボット制御システムの同様の又は同一の追加の事例に適用されることができることを認識するであろう。
【0082】
ロボット制御システム300は、1つ又は複数のプロセッサ322と、システムメモリ324a、ディスクドライブ324b、及び/又はプロセッサ322のメモリ又はレジスタ(図示せず)等の1つ又は複数の関連する非一時的コンピュータ可読又はプロセッサ可読記憶媒体とを備え得る。非一時的コンピュータ可読又はプロセッサ可読記憶媒体は、システムバス327等の1つ又は複数の通信チャネルを介してプロセッサ(複数可)322に通信可能に結合される。システムバス327は、メモリコントローラを有するメモリバス、周辺バス、及び/又はローカルバスを含む、任意の既知のバス構造又はアーキテクチャを採用し得る。そのような構成要素のうちの1つ又は複数はまた、又はその代わりに、1つ又は複数の他の通信チャネル、例えば、1つ又は複数のパラレルケーブル、シリアルケーブル、又は高速通信可能なワイヤレスネットワークチャネル、例えば、ユニバーサルシリアルバス(「USB」)3.0、周辺構成要素相互接続エクスプレス(PCIe)を介して、又はThunderbolt(登録商標)を介して互いに通信し得る。
【0083】
ロボット制御システム300はまた、例えば、ネットワークインターフェース(図示せず)を介して、ロボット制御システム300の様々な構成要素に直接通信可能に結合又は間接的に通信可能に結合される、1つ又は複数のリモートコンピュータシステム、例えば、サーバコンピュータ(例えば、モーションプランニンググラフのソース)、デスクトップコンピュータ、ラップトップコンピュータ、ウルトラポータブルコンピュータ、タブレットコンピュータ、スマートフォン、ウェアラブルコンピュータ、及び/又はセンサー(
図3に図示せず)に通信可能に結合されることができる。リモートコンピューティングシステム(例えば、サーバコンピュータ(例えば、モーションプランニンググラフのソース))を使用して、ロボット制御システム300及びロボット制御システム300内の様々な構成要素にデータ(例えば、モーションプランニンググラフ、掃引ボリューム、タスク仕様315)をプログラムし、構成し、制御し、又はさもなければインターフェースし、又は入力し得る。そのような接続は1つ又は複数の通信チャネル、例えば、1つ又は複数のワイドエリアネットワーク(WAN)、例えば、イーサネット(登録商標)、又はインターネットプロトコルを使用するインターネットを介してもよい。上述のように、実行時前計算(例えば、モーションプランニンググラフのファミリーの生成)はロボット制御システム300又はロボット302とは別個のシステムによって実行されてもよく、一方、実行時計算はロボット制御システム300のプロセッサ(複数可)322によって実行されてもよく、いくつかの実装形態ではロボット302に搭載されてもよい。
【0084】
前述のように、ロボット制御システム300は1つ又は複数のプロセッサ322(すなわち、回路)、非一時的記憶媒体(例えば、システムメモリ324a、ディスクドライブ(複数可)324b)、及び様々なシステム構成要素を結合するシステムバス327を含み得る。プロセッサ322は、1つ又は複数の中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、プログラマブルロジックコントローラ(PLC)等の任意の論理処理ユニットであり得る。システムメモリ324aは、リードオンリーメモリ(「ROM」)326、ランダムアクセスメモリ(「RAM」)328、フラッシュメモリ330、EEPROM(図示せず)を含み得る。基本入出力システム(「BIOS」)332はROM326の一部を形成することができ、起動中等にロボット制御システム300内の要素間で情報を転送するのを助ける基本ルーチンを含む。
【0085】
ドライブ324bは例えば、磁気ディスクから読み書きするためのハードディスクドライブ、ソリッドステートメモリから読み書きするためのソリッドステート(例えば、フラッシュメモリ)ドライブ、及び/又はリムーバブル光ディスクから読み書きするための光ディスクドライブであり得る。ロボット制御システム300はまた、様々な異なる実施形態において、そのような駆動装置の任意の組み合わせを含み得る。ドライブ324bは、システムバス327を介してプロセッサ(複数可)322と通信し得る。ドライブ(複数可)324bは当業者に知られているように、そのようなドライブとシステムバス327との間に結合されたインターフェース又はコントローラ(図示せず)を含み得る。ドライブ324b及びその関連するコンピュータ可読媒体は、コンピュータ可読及び/又はプロセッサ可読及び/又は実行可能な命令、データ構造、プログラムモジュール、及びロボット制御システム300のための他のデータの不揮発性記憶装置を提供する。当業者は、WORMドライブ、RAIDドライブ、磁気カセット、デジタルビデオディスク(「DVD」)、ベルヌーイカートリッジ、RAM、ROM、スマートカード等、コンピュータによってアクセス可能なデータを記憶し得る他のタイプのコンピュータ可読媒体が使用されることができることを理解するであろう。
【0086】
実行可能な命令及びデータはシステムメモリ324a、例えば、オペレーティングシステム336、1つ又は複数のアプリケーションプログラム338、他のプログラム又はモジュール340及びプログラムデータ342に記憶し得る。アプリケーションプログラム338はプロセッサ322に、以下のうちの1つ又は複数を実行させるプロセッサ実行可能命令を含み得る:他のロボットの計画されたモーションが障害物として表されることができる環境内に障害物及び/又はターゲットオブジェクト又はワークピースを含む、ロボット302が動作する環境の離散化された表現を生成することと、衝突評価の結果の呼び出し又はさもなければ取得し、モーションプランニンググラフにおけるエッジのためのコスト値を設定し、そのモーションプランニンググラフにおける利用可能な経路を評価することを含む、モーションプラン又はロードマップを生成することと、任意選択で、決定された複数のモーションプラン又はロードマップを記憶することと、及び/又は、任意選択で、プロセッサベースのワークセル安全システム130、200にトリガさせそうな状況を識別し、そのようなことを遅延させるために、コストを対応する遷移と関連付け、それによって、潜在的に、停止、減速、又は予防的オクルージョンの導入を回避すること。モーションプランの構築(例えば、衝突検出又は評価、衝突検出又は評価に基づくモーションプランニンググラフにおけるエッジのコストの更新、及び/又はプロセッサベースのワークセル安全システムをトリガする規則及び条件、ならびに経路探索又は評価)は、本明細書及び参照により本明細書に組み込まれる参考文献に記載されるように実行し得る。衝突検出又は評価は、本明細書の他の場所で説明される様々な構造及び技法を使用して、衝突検出又は評価を実行し得る。アプリケーションプログラム338はさらに、プロセッサ322に他の動作を実行させる、例えば、(センサーを介してキャプチャされた)知覚データを任意選択で処理させる、1つ又は複数の機械可読及び機械実行可能命令を含み得る。アプリケーションプログラム338はプロセッサ322に、本明細書及び参照により本明細書に組み込まれる参考文献に記載の様々な他の方法を実行させる1つ又は複数の機械実行可能命令をさらに含み得る。
【0087】
任意選択的に、安全監視ルール125c(
図1)は、ロボット制御システム(複数可)300、例えばシステムメモリ324aに記憶されてもよい。
【0088】
様々な実施形態では、上述の動作のうちの1つ又は複数がネットワークインターフェースを介した通信ネットワーク(例えば、ネットワーク)を介してリンクされる1つ又は複数のリモート処理デバイス又はコンピュータによって実行されることができる。
【0089】
図3にはシステムメモリ324aに記憶されているものとして示されているが、オペレーティングシステム336、アプリケーションプログラム338、他のプログラム/モジュール340及びプログラムデータ342は他の非一時的コンピュータ可読媒体又はプロセッサ可読媒体、例えば、ドライブ(複数可)324bに記憶されることができる。
【0090】
ロボット制御システム300のモーションプランナ304は専用のモーションプランナハードウェアを含むことができ、又は、プロセッサ322及びシステムメモリ324a及び/又はドライブ324bに記憶されたプロセッサ実行可能命令を介して、全部又は一部が実装されることができる。
【0091】
モーションプランナ304は、モーションコンバータ350、衝突検出器352、ルールアナライザ359、コスト設定器354及び経路アナライザ356を含むか、又は実装し得る。
【0092】
モーションコンバータ350は、他の1つのロボットのモーションを障害物の表現に変換する。モーションコンバータ350は、他のモーションプランナからモーションプラン又はモーションの他の表現を受信する。次いで、モーションコンバータ350は、そのモーション(複数可)に対応するエリア又はボリュームを決定する。例えば、モーションコンバータはモーションプランによって表されるように、モーションを対応する掃引ボリューム、すなわち、ポーズ間を移動又は遷移する際に対応するロボット又はその一部によって掃引されるボリュームに変換し得る。有利なことに、モーションプランナ304は単に障害物(例えば、掃引ボリューム)を待ち行列に入れるだけでよく、対応するモーション又は掃引ボリュームについて時間を決定、追跡、又は指示する必要がなくてもよい。他のロボットのモーションを障害物に変換する所与のロボット302のモーションコンバータ350として説明したが、いくつかの実装形態では他のロボット302bが特定のモーションの障害物表現(例えば、掃引ボリューム)を所与のロボット302に提供し得る。
【0093】
衝突検出器352は衝突検出又は分析を実行し、所与のロボット302又はその一部の遷移又はモーションが障害物との衝突をもたらすかどうかを決定する。上述のように、他のロボットのモーションは、有利には障害物として表されることができる。したがって、衝突検出器352は1つのロボットのモーションが、ワークセル又は動作環境104を通って移動する別のロボットとの衝突をもたらすかどうかを決定し得る。
【0094】
いくつかの実装形態では、衝突検出器352がソフトウェアベースの衝突検出又は評価を実装し、例えば、バウンディングボックス-バウンディングボックス衝突評価を実行するか、又は移動中にロボット302又はその一部によって掃引されるボリュームの幾何学的(例えば、球)表現の階層に基づいて評価する。いくつかの実装形態では、衝突検出器352がハードウェアベースの衝突検出又は評価を実装し、例えば、障害物を表すための専用ハードウェア論理回路のセットを採用し、専用ハードウェア論理回路を通してモーションの表現をストリーミングする。ハードウェアベースの衝突検出又は評価では、衝突検出器が回路の1つ又は複数の構成可能なアレイ、例えば、1つ又は複数のFPGA358を使用することができ、任意選択でブール衝突評価を生成し得る。
【0095】
ルールアナライザ359は、モーション又は遷移(グラフ内のエッジによって表される)がプロセッサベースのワークセル安全システムがロボット動作の停止、減速、又は予防的オクルージョン、又は他の抑制をトリガすることになる可能性又は確率を決定又は評価する。例えば、ルールアナライザ359は1つ又は複数のロボットのモーションプラン又はその一部(例えば、エッジ)を評価又はシミュレートし、任意の遷移が安全ルールに違反する(例えば、プロセッサベースのワークセル安全システムによって実装される安全監視ルール125c(
図1)によって定義されるように、ロボット(複数可)又はその一部が人間のあまりに近くを通りすぎる結果となる)かどうかを決定し得る。例えば、ルールアナライザ359はオブジェクト(例えば、人間)又はその一部の位置及び/又は経路又は軌道を評価又はシミュレートし、そのオブジェクトの任意の位置又は動きが安全ルールに違反する(例えば、プロセッサベースのワークセル安全システムによって実装される安全監視ルール125c(
図1)によって定義されるように、人間又はその一部が1つのロボット又は複数のロボットのあまりに近くを通りすぎる結果となる)かどうかを判定し得る。例えば、プロセッサベースのワークセル安全システムが動作環境の一部分をグリッドに区分するレーザスキャナを使用し、プロセッサベースのワークセル安全によって実施されるルールが人間がロボットの一部分の位置の1つのグリッド位置内にあるときに停止、減速、又は予防的オクルージョンを引き起こす場合、ルールアナライザ359はロボットの一部分を人間の位置又は人間の予測される位置の1つのグリッド内にもたらす遷移を識別し、その結果、それらの識別された遷移に対応するエッジに関連する重みを調整する(例えば、増加させる)ことができる。
【0096】
コスト設定器354は、衝突検出又は評価に少なくとも部分的に基づいて、及び任意選択で、プロセッサベースのワークセル安全システム130(
図1)、200(
図2)によって適用されるルール及び条件のルールアナライザ359による分析に基づいて、モーションプランニンググラフ内のエッジのコストを設定又は調整し得る。例えば、コスト設定器354は衝突をもたらすか、又は衝突をもたらす可能性が高い、及び/又はプロセッサベースのワークセル安全システム130、200をトリガさせる可能性が高い、状態間の遷移又はポーズ間のモーションを表すエッジに対し比較的高いコスト値を設定することができ、それによって、停止、減速、又は予防的オクルージョンの導入を潜在的に回避し得る。また、例えば、コスト設定器354は衝突をもたらさない、またもたらさない可能性が高い、及び/又はプロセッサベースのワークセル安全システム130、200をトリガさせない可能性が高い、状態間の遷移又はポーズ間の動きを表すエッジのための比較的低いコスト値を設定することができ、それによって、停止、減速、又は予防的オクルージョンの導入を潜在的に回避する。コストを設定することは、何らかのデータ構造(例えば、フィールド、ポインタ、テーブル)を介して対応するエッジに論理的に関連付けられるコスト値を設定することを含み得る。
【0097】
経路アナライザ356はコスト値を有するモーションプランニンググラフを使用して経路(例えば、最適又は最適化された)を決定し得る。例えば、経路アナライザ356は、2つの状態、構成又はポーズの間の最低コスト又は比較的低コストの経路を決定する最小コスト経路最適化器を構成することができ、状態、構成又はポーズはモーションプランニンググラフ内のそれぞれのノードによって表される。経路アナライザ356は、衝突の可能性及び/又は安全システムをトリガする可能性を表す各エッジに関連するコスト値を考慮に入れて、任意の様々な経路発見アルゴリズム、例えば最低コスト経路発見アルゴリズムを使用又は実行し得る。
【0098】
ベルマン・フォードアルゴリズムを実装するものを含む、最小コスト経路を決定するための様々なアルゴリズム及び構造が使用されることができるが、それだけに限らないが、最小コスト経路が、その構成エッジのコスト又は重みの合計が最小化されるように、モーションプランニンググラフ内の2つのノード間の経路として決定される任意のそのようなプロセスを含む、他のものが使用されることができる。このプロセスは、他のロボットのモーションを障害物として表すモーションプランニンググラフ及び衝突検出を使用することによって、ロボット102、302のモーションプランニングの技術を改善し、衝突なしにタスクを実行するための「最良の」経路を見つけるための効率及び応答時間を向上させる。
【0099】
モーションプランナ304は任意選択で、プルーナ(又は、除去器/pruner)360を含み得る。プルーナ360は他のロボットによるモーションの完了を表す情報を受信することができ、この情報は、モーション完了メッセージと呼ばれる。代替的に、完了を示すためにフラグをセットし得る。それに応答して、プルーナ360は、今し方完了したモーションを表す障害物又は障害物の一部分を除去し得る。これは所与のロボットの新しいモーションプランの生成を可能にすることができ、これはより効率的であり得るか、又は他のロボットの運動によって以前は防止されたタスクの実行に、所与のロボットが参加することを可能にすることができる。このアプローチは、モーションコンバータ350がモーションの障害物表現を生成するときにモーションのタイミングを無視することを有利に可能にする一方で、他の技法を使用するよりも良好なスループットを依然として実現する。モーションプランナ304はさらに、衝突検出器352に、障害物の修正を与えられた新しい衝突検出又は評価を実行させて、エッジに関連するエッジ重み又はコストが修正された更新されたモーションプランニンググラフを生成し、コスト設定器354及び経路アナライザ356に、コスト値を更新させ、それに応じて新しい又は修正されたモーションプランを決定させ得る。
【0100】
モーションプランナ304は任意選択のセンサー362(例えば、デジタルカメラ)からの出力(例えば、環境のデジタル化された表現)を障害物の表現に変換する環境コンバータ363を任意選択で含み得る。したがって、モーションプランナ304は、環境内の一時的なオブジェクト、例えば人、動物等を考慮に入れたモーションプランニングを実行し得る。
【0101】
プロセッサ(複数可)322及び/又はモーションプランナ304は、1つ又は複数の中央処理ユニット(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックコントローラ(PLC)等の任意の論理処理ユニットでああってよく、又はそれらを含み得る。市販のコンピュータシステムの非限定的な例としては米国Intel(登録商標)社が提供するマイクロプロセッサのCeleron、Core、Core 2、Itanium及びXeonファミリー、米国アドバンストマイクロデバイス社が提供するK8、K10、Bulldozer及びBobcatシリーズマイクロプロセッサ、米国アップルコンピュータ社が提供するA5、A6及びA7シリーズマイクロプロセッサ、米国クアルコム社が提供するスナップドラゴンシリーズマイクロプロセッサならびに米国オラクル社が提供するSPARCシリーズマイクロプロセッサが含まれるが、これらに限定されない。
図3に示される様々な構造の構築及び動作は、2017年6月9日に出願された「自律走行車及び再構成可能なモーションプランプロセッサのためのモーションプラン」、2016年1月5日に出願された「特殊化されたロボットモーションプランハードウェア及びその使用方法」、及び/又は2018年1月12日に出願された「動的なオブジェクトを有する環境における自律走行車のモーションプランを容易にするための装置、方法及び物品」に記載された又はそれらに記述されたものに類似する構造、技術及びアルゴリズムを実施又は使用し得る。
【0102】
必須ではないが、実装の多くはコンピュータ可読又はプロセッサ可読媒体に記憶され、障害物表現、衝突評価、及び他のモーションプランニング動作を実行し得る1つ又は複数のコンピュータ又はプロセッサによって実行される、プログラムアプリケーションモジュール、オブジェクト又はマクロ等のコンピュータ実行可能命令の一般的な文脈で説明される。
【0103】
モーションプランニングオペレーション(又は、モーションプランニング操作/モーションプランニング動作)は、ロボット幾何学モデル112(
図1)、タスク114(
図1)に基づくロボット幾何学の表現、及び様々な状態又はポーズにおける、及び/又は状態又はポーズ間の移動中にロボットによって占有されるボリューム(例えば、掃引ボリューム)の表現のうちの1つ、複数又はすべてを生成する又はそれらをデジタル形式、例えば、点群、ユークリッド距離フィールド、データ構造フォーマット(例えば、階層フォーマット、非階層フォーマット)、及び/又は曲線(例えば、多項式又はスプライン表現)に変換することを含み得るが、これらに限定されない。モーションプランニングオペレーションは、静的オブジェクトデータ118(
図1)によって表される静的又は持続性障害物の表現、及び/又は静的又は一時的障害物を表す知覚データ120(
図1)のうちの1つ、複数又はすべてを生成する又はそれらをデジタル形式、例えば、点群、ユークリッド距離フィールド、データ構造フォーマット(例えば、階層フォーマット、非階層フォーマット)、及び/又は曲線(例えば、多項式又はスプライン表現)に変換することを任意選択で含み得るが、これらに限定されない。
【0104】
モーションプランニングオペレーションは限定はしないが、様々な衝突評価技法又はアルゴリズム(例えば、ソフトウェアベース、ハードウェアベース)を使用して、ロボットの様々な状態又はポーズ、又は状態又はポーズ間のロボットのモーションの衝突を決定又は検出又は予測することを含み得る。
【0105】
いくつかの実装形態ではモーションプランニングオペレーションが限定はしないが、1つ又は複数のモーションプランニンググラフ、モーションプラン又はロードマップを決定すること、決定されたプランニンググラフ(複数可)、モーションプラン又はロードマップを記憶すること、及び/又はプランニンググラフ(複数可)、モーションプラン(複数可)、又はロードマップ(複数可)を提供してロボットの動作を制御することを含み得る。
【0106】
一実装形態では、衝突検出又は評価が関数呼び出し又は同様のプロセスに応答して実行され、ブール値をそれに返す。衝突検出器352は、1つ又は複数のフィールドプログラマブルゲートアレイ(FPGA)及び/又は1つ又は複数の特定用途向け集積回路(ASIC)を介して実装されて、低レイテンシ(又は、待ち時間)、比較的低い電力消費、及び処理可能な情報量の増加を達成しながら衝突検出を実行し得る。
【0107】
様々な実装形態では、そのような動作が完全にハードウェア回路で、又はシステムメモリ324a等のメモリストレージに記憶され、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、グラフィックス処理ユニット(GPU)プロセッサ、プログラムされた論理コントローラ(PLC)、電気的プログラマブルリードオンリーメモリ(EEPROM)等の1つ又は複数のハードウェアプロセッサ322によって実行されるソフトウェアとして実行されることができ、又はハードウェア回路とメモリストレージに記憶されたソフトウェアとの組合せとして実行されることができる。
【0108】
全体で又は部分で使用されうる、知覚、プランニンググラフ構築、衝突検出及び経路探索の種々の側面は、2017年6月9日付国際特許出願第PCT/US2017/036880号「自律的媒体及び再構成可能なモーションプラン処理装置のためのモーションプラン」、2016年1月5日付国際特許出願公開第WO2016/122840号「特別なロボットモーションプラン装置及び同一物の使用方法」、2018年1月12日付米国特許出願第62/616,783号「動的物体を有する自律的媒体のモーションプランを容易にするための装置、方法及び物品」、2019年6月3日付米国特許出願第62/856,548号「動的障害のある環境での移動計画」にも記載されている。当業者は、図示された実装、ならびに他の実装がロボット、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベース又はプログラム可能な家庭用電化製品、パーソナルコンピュータ(「PC」)、ネットワーク化されたPC、ミニコンピュータ、メインフレームコンピュータ等のものを含む、他のシステム構造及び配置、ならびに/又は他のコンピューティングシステム構造及び配置とともに実施されることができることを理解するであろう。実装又は実施形態又はそれらの一部(例えば、構成時及び実行時)は、タスク又はモジュールが通信ネットワークを介してリンクされるリモート処理デバイスによって実行される分散コンピューティング環境において実施されることができる。分散コンピューティング環境では、プログラムモジュールがローカル及びリモートメモリ記憶デバイス又は媒体の両方に配置されることができる。しかし、特定のタイプの情報がどこに、そしてどのように記憶されるかは、モーションプランニングを改善するのを助けるために重要である。
【0109】
例えば、ロードマップ(すなわち、モーションプランニンググラフ)をプロセッサ(例えば、FPGA)に「焼き付ける」(又は、「ベークイン」する)様々なモーションプランニングソリューションがあり、ロードマップ内の各エッジは、プロセッサの非再構成可能ブール回路に対応する。プランニンググラフがプロセッサに「焼き付けられる」設計は複数の又は大きいプランニンググラフを記憶するための限られたプロセッサ回路を有するという問題をもたらし、一般に、異なるロボットでの使用のために再構成可能ではない。
【0110】
1つの解決策は、プランニンググラフ情報をメモリストレージ(又は、記憶装置)に入れる再構成可能な設計を提供する。このアプローチは回路に焼き付けられる代わりに、メモリに情報を記憶する。別のアプローチはメモリの代わりに、テンプレート化された再構成可能な回路を使用する。
【0111】
上述のように、情報のいくつか(例えば、ロボット幾何学モデル)は実行時前の構成時中に、捕捉、受信、入力又は提供されることができる。受信された情報は処理された情報(例えば、モーションプランニンググラフ)を生成するために構成時中に処理され、動作を加速し、又は実行時中の計算複雑性を低減し得る。
【0112】
実行時中に、ロボットの任意の部分が、ロボット自体の別の部分、他のロボット又はその部分、環境内の持続性又は静的障害物、又は未知の軌道を有する環境内の一時的障害物(例えば、人々又は人)と衝突するか又は衝突すると予測されるかどうかを、任意のポーズ又はポーズ間の移動について決定することを含む、環境全体に対して衝突検出を実行し得る。
【0113】
図4は、ロボット102、302の目標が静的障害物及び動的障害物との衝突を回避しながらタスクを実行することである場合の、ロボット102(
図1)、302(
図3)のための例示的な計画グラフ400を示し、障害物はワークセル又は動作環境104内で動作する他のロボットを含みうる。
【0114】
プランニンググラフ400はそれぞれ、エッジ410a~410h(図ではノードの対の間の直線として表されている)によって接続された複数のノード408a~408i(図では白丸として表されている)を備える。各ノードは、ロボット102、302の構成空間におけるロボット102、302の状態を特徴付ける時間及び変数を、暗黙的に又は明示的に表す。構成空間は、C空間と呼ばれることが多く、プランニンググラフ400に表されるロボット102、302の状態又は構成又はポーズの空間である。例えば、各ノードはロボット102、302の状態、構成又はポーズを表すことができ、これは位置、向き、又は位置と向きの組合せを含み得るが、これらに限定されない。状態、構成又はポーズは例えば、ロボット102、302のジョイントについてのジョイント位置及びジョイント角度/回転(例えば、ジョイントポーズ、ジョイント座標)のセットによって表されることができる。
【0115】
プランニンググラフ400内のエッジは、ロボット102、302のこれらの状態、構成、又はポーズ間の有効な又は許容される遷移を表す。プランニンググラフ400のエッジは、デカルト座標における実際の動きを表すのではなく、C空間における状態、構成、又は姿勢間の遷移を表す。プランニンググラフ400の各エッジは、ノードのそれぞれの対の間のロボット102、302の遷移を表す。例えば、エッジ410aは、2つのノード間のロボット102、302の遷移を表す。特に、エッジ410aは、ノード408bに関連する特定の構成におけるロボット102、302の状態と、ノード408cに関連する特定の構成におけるロボット102、302の状態との間の遷移を表す。ノードは互いに様々な距離で示されているが、これは例示のみを目的としており、これはいかなる物理的距離にも関係しない。プランニンググラフ400内のノード又はエッジの数に制限はないが、プランニンググラフ400内で使用されるノード及びエッジが多ければ多いほど、モーションプランナはタスクを実行するために、ロボット102、302の1つ又は複数の状態、構成又はポーズに従って最適経路をより正確に決定し得る可能性があり、これは最小コスト経路を選択するための経路がより多いためである。
【0116】
各エッジは例えば、実行時に割り当てを更新し得るコスト値に割り当てられるか、又は関連付けられる。コスト値は、対応するエッジによって表される動作に対する衝突評価を表し得る。コスト値は、プロセッサベースのワークセル安全システムをトリガさせ、それによって停止、減速、又は予防的オクルージョンの生成を引き起こす、対応するエッジによって表される動作の可能性の評価を表し得る。本明細書で説明されるように、安全監視ルール125c(
図1)は、どのような条件又は状況がプロセッサベースのワークセル安全システムをトリガするかを決定するために使用されることができる。エッジに割り当てられたコスト値(例えば、重み)は、プロセッサベースのワークセル安全システムをトリガする可能性が高いと考えられる遷移に対応するそれらのエッジについて増加させられ、それらの遷移を含む経路を選択する傾向を低減し得る。
【0117】
典型的には、ロボット102、302は特定の障害物、例えば、共有ワークセル又は動作環境内の他のロボットを回避することが望ましい。いくつかの状況では、ロボット102、302が例えば、オブジェクト又はワークピースを把持又は移動させるために、共有ワークセル又は動作環境内の特定のオブジェクトに接触するか、又は近接することが望ましい場合がある。
図4は、ロボット102、302の目標が、タスク(例えば、オブジェクトをピッキングし、配置すること)を実行する際に、いくつかのポーズを通って移動する間に、1つ又は複数の障害物との衝突を回避することである場合に、ロボット102、302のための経路を識別するために、モーションプランナによって使用されるプランニンググラフ400を示す。
【0118】
障害物は例えば、バウンディングボックス、指向性バウンディングボックス、曲線(例えば、スプライン)、ユークリッド距離フィールド、又は幾何学的エンティティの階層としてデジタル的に表されてもよく、いずれのデジタル表現も、障害物のタイプ及び実行される衝突検出のタイプに最も適切であり、それ自体は、使用される特定のハードウェア回路に依存し得る。いくつかの実装形態では、ロードマップ内の掃引ボリュームは事前計算される。衝突評価の例は、2017年6月9日に出願された「自律走行車及び再構成可能なモーションプランプロセッサのためのモーションプラン」と題された国際特許出願第PCT/US2017/036880号、2018年8月23日に出願された「ロボットのためのモーションプランに有用な衝突検出」と題された米国特許出願第62/722,067号、及び2016年1月5日に出願された「特殊ロボットモーションプランハードウェア及びその製造及び使用方法」と題された国際特許出願公開第WO2016/122840号に記載されている。
【0119】
モーションプランナ又はその一部(例えば、衝突検出器352(
図3))は、動作又は遷移(エッジによって表される)が障害物との衝突をもたらす可能性又は確率を決定又は評価する。いくつかの事例では決定がブール値をもたらし、一方、他の例では決定が確率として表されることができる。
【0120】
ノード間の直接遷移が障害物との衝突を引き起こす確率があるプランニンググラフ400内のノードについて、モーションプランナ(例えば、コスト設定器354(
図3))は障害物との衝突の確率を示すコスト値又は重みを、それらのノード間で遷移するプランニンググラフ400のエッジ(例えば、エッジ410a、410b、410c、410d、410e、410f、410g、410h)に割り当てる。
図4に示す例では比較的確率の高いC空間の領域がグラフ部414として示されているが、物理的な領域には対応していない。
【0121】
例えば、モーションプランナは、障害物との衝突のそれぞれの確率が衝突の定義された閾値確率を下回るプランニンググラフ400のいくつかのエッジの各々に対して、ゼロに等しい又は近い値を有するコスト値又は重みを割り当て得る。本例では、モーションプランナが障害物との衝突の確率が全くないか、又はほとんどないロボット102、302の遷移又は動作を表す、プランニンググラフ400内のエッジに、ゼロのコスト値又は重みを割り当てている。環境内の障害物との衝突のそれぞれの確率が衝突のその定義された衝突の閾値確率を上回る、プランニンググラフ400のいくつかのエッジの各々に対して、モーションプランナは、実質的にゼロよりも大きい値を有するコスト値又は重みを割り当てる。本例では、モーションプランナが障害物との衝突の確率が比較的高い、プランニンググラフ400内のエッジに、ゼロより大きいコスト値又は重みを割り当てている。衝突の確率のために使用される特定の閾値は変化し得る。例えば、閾値は、衝突の確率が40%、50%、60%、又はそれより低くても高くてもよい。また、ゼロよりも大きい値を有するコスト値又は重みを割り当てることは、衝突のそれぞれの確率に対応する、ゼロよりも大きい大きさを有するコスト値又は重みを割り当てることを含み得る。他の実装形態では、コスト値又は重みは衝突と衝突なしとの間の二値選択を提示することができ、コスト値又は重みをエッジに割り当てる際に、2つのコスト値又は重みのみが選択される。
【0122】
モーションプランナ又はその一部(例えば、ルールアナライザ359、
図3)は、(エッジによって表される)動作又は遷移がプロセッサベースのワークセル安全システムが停止、減速又は予防的オクルージョンをトリガすることになる可能性又は確率を決定又は評価する。例えば、モーションプランナ又はその一部(例えば、ルールアナライザ359、
図3)はモーションプランをシミュレートすることができ、任意の遷移が安全ルールに違反する(例えば、プロセッサベースのワークセル安全システムによって実装される安全監視ルール125c(
図1)によって定義されるように、ロボット又はその一部が人間に近すぎる結果となる)かどうかを決定する。モーションプランナは衝突の確率、例えば、プロセッサベースのワークセル安全システムに、停止、減速又は予防的オクルージョンをトリガさせる確率に加えて、要因又はパラメータに基づいて、各エッジのコスト値又は重みを割り当て、設定又は調整することができる。
【0123】
例えば、プランニンググラフ400に示されるように、モーションプランナは衝突の確率がより高い及び/又は停止、減速又は予防的オクルージョンをトリガする確率がより高いエッジ410b、410e及び410fに5のコスト値又は重みを割り当てているが、モーションプランナが衝突の確率がはるかに低い及び/又は停止、減速又は予防的オクルージョンをトリガする確率がはるかに低いと決定した、エッジ410aにはより低い大きさの0を、エッジ410c及び410gには1の大きさの、コスト値又は重みを割り当てている。
【0124】
モーションプランナが衝突評価に少なくとも部分的に基づいて、任意選択的に、プロセッサベースのワークセル安全システムに停止、減速又は予防的オクルージョンをトリガさせる確率、及び/又は任意選択的に他の要因(例えば、待ち時間、電力消費)に基づいて、ロボット102、302の障害物との衝突の確率を表すコスト値又は重みを設定した後、モーションプランナ(例えば、経路アナライザ356、
図3)は最適化を実行して、結果として得られるプランニンググラフ400内の(太線の重みによって示される)経路412を識別し、ワークセル又は動作環境内で動作する他のロボットを含む障害物との衝突の可能性がない、又は比較的低い、及び/又はプロセッサベースのワークセル安全システムに停止、減速又は予防的オクルージョンをトリガさせる可能性がない、又は比較的低い、経路によって指定されるような、ロボット102、302のための動作プランを提供する。
【0125】
0116
一実装形態ではプランニンググラフ400のすべてのエッジコストが割り当て又は設定されると、モーションプランナ(例えば、
図3の経路アナライザ356)は目標ノードによって表される目標状態への、又は目標状態に向かう最小コスト経路を決定するための計算を実行し得る。例えば、経路アナライザ356(
図3)はプランニンググラフ400内のロボット102、302の現在の状態から、可能な状態、構成又はポーズまで、最小コストの経路アルゴリズムを実行し得る。次に、プランニンググラフ400内の最小コスト(ゼロに最も近い)経路が、モーションプランナによって選択される。上記で説明したように、コストは、衝突の確率、及び/又はプロセッサベースのワークセル安全システムに停止、減速又は予防的オクルージョンをトリガさせる確率だけでなく、他の要因又はパラメータも反映し得る。本例ではプランニンググラフ400内のロボット102、302の現在の状態、構成又はポーズはノード408aにあり、経路はプランニンググラフ400内の経路412(ノード408aからノード408iを通って延びるセグメントを含む太線経路)として示される。
【0126】
多くの鋭いターンを有するプランニンググラフ400内の経路として示されているが、そのようなターンはルート内の対応する物理的ターンを表すのではなく、ロボット102、302の状態、構成又はポーズ間の論理的な遷移を表す。例えば、識別された経路412内の各エッジは環境内のロボット102、302の物理的構成に対する状態変化を表し得るが、必ずしも
図4に示される経路412の角度に対応するロボット102、302の方向の変化を表すとは限らない。
【0127】
図5は、少なくとも1つの例示された実装形態による、動作環境におけるロボット動作を制御するための動作環境の安全監視を実装するためのプロセッサベースのシステムの動作の高レベル方法500を、安全監視システムの妥当性確認とともに示す。方法500は例えば、プロセッサベースの安全システム130(
図1)の1つ又は複数のプロセッサ134(
図1)、例えば、プロセッサベースのワークセル安全システム200(
図2)の1つ又は複数のプロセッサ222(
図2)によって実行されることができる。プロセッサベースのワークセル安全システム200は例えば、モーションプランを生成し、及び/又は動作環境内の1つ又は複数のロボット102a、102b(
図1)の動作を制御するロボット制御システム300(
図3)と任意選択で通信可能に接続されてもよい。本明細書及び特許請求の範囲で使用される場合、ロボットの動作又は移動はロボット全体又はその一部(例えば、ロボット付属物、エンドオブアームツール、エンドエフェクタ)の動作又は移動を含む。ロボットに関して一般的に論じられているが、様々な動作及び行為はその中で1つ、2つ又はそれ以上のロボットが動作する動作環境に適用可能である。
【0128】
方法500は、502で開始する。例えば、方法500は、プロセッサベースのワークセル安全システム200、ロボット制御システム300及び/又はロボット102の電源投入(powering on)、又は呼び出しルーチンからの呼び出し(又は、コール)又は起動(又は、呼び出し/invocation)に応答して開始し得る。方法500は例えば、1つ又は複数のロボット102の動作中に、継続的に、又はさらには連続的に実行し得る。
【0129】
504において、プロセッサベースのワークセル安全システム200のプロセッサ(複数可)222(
図2)は動作環境の少なくとも第一部分において、もし居れば(又は、人ら居る場合に)、人の位置を検出するように配置され、方向付けられた第一センサー132a(
図1)から情報を受信する。
【0130】
506において、プロセッサベースのワークセル安全システム200のプロセッサ(複数可)222(
図2)は動作環境の少なくとも第二部分において、もし居れば、人の位置を検出するように配置され、方向付けられた少なくとも第二センサー132b(
図1)から情報を受信する。動作環境の第二部分は、動作環境の第一部分と少なくとも部分的に重複する。第二センサー132bは、有利には第一センサー132aに対して異種である。特に、506において、プロセッサベースのワークセル安全システム200は動作環境の少なくとも一部分において、もし居れば、人の位置を検出するように配置方され、向付けられた、それぞれの位置及び向き又は視野にそれぞれ関連する、第三、第四、又はさらにより多くのセンサー132から情報を受信し得る。いくつかの実装形態では2つ又はそれより多くのセンサー132が特定の動作特性(例えば、センサー動作モダリティ、メーク及びモデル、サンプリングレート)を共有し得るが、様々なセンサー間の動作特性の多様性は全体的な動作安全性を高めるために非直感的に望ましい。
【0131】
第一、第二及び任意の追加のセンサー132は、安全監視専用のセンサーであってもよく、専用プロセッサベースのワークセル安全システム200の一部を形成してもよい。代替的に、モーションプランニングのために使用されるセンサー122(
図1)は安全監視を実行するために、プロセッサベースのワークセル安全システム200にセンサーデータを提供することもできる。ロボット制御システム109a、109b(
図1)はプロセッサベースのワークセル安全システム200とは別個であり、任意選択で通信可能に結合されることができる。第一、第二及び任意の追加のセンサー132は、有利には既製のセンサーよりも低コストであり得る。上述のように、第一、第二及び任意の追加のセンサー132を含むセットは異種のセンサーのセットであってもよく、プロセッサベースのワークセル安全システム200の2つ、より多く、又はさらにすべてのセンサーは互いに異なる動作特性を有する。そのようなものは、一般的な既製のセンサーからの所望の安全マージン、例えば、実質的により拡張的な安全認定センサーに典型的に関連する安全マージンを有利に達成し得る。
【0132】
508において、プロセッサベースのワークセル安全システム200の少なくとも1つのプロセッサ222(
図2)は、存在する場合、プロセッサベースのワークセル安全システム200の第一及び少なくとも第二センサー、並びに他のセンサー132の1つ又は複数の動作状態の評価を実行する。その評価は少なくとも部分的に、センサー132の各々について1つ、2つ又はそれより多くの動作状態又は条件を評価するために、又は、プロセッサベースのワークセル安全システム200のセンサー132間の動作状態又は条件を評価する(例えば、2つ又はそれより多くのセンサーの出力を比較する)ために適用されるセンサー状態ルール125a(
図1)の1つ又はそれより多くのセットに基づくことができ、その例を本明細書で説明する。動作状態又は条件、又は動作状態又は条件の評価は、予想通りに動作しているか、及び/又は1つ又は複数のセンサー132が性能パラメータ、状態又は条件の定義されたセット内で、動作しているかどうかを示し得、したがって、安全な動作環境を提供するために依拠されることができる。
【0133】
評価は、様々な要因、動作状態、条件、パラメータ、基準、及び/又はルールのうちの1つ又は複数を指定するセンサー状態ルール125aの1つ又は複数のセットに基づき得る。例えば、プロセッサベースのワークセル安全システム200の少なくとも1つのプロセッサ222(
図2)は、有利にはセンサー132が正しく動作しているかどうかを評価し得る。例えば、プロセッサベースのワークセル安全システム200の少なくとも1つのプロセッサ222(
図2)は有利には、第一及び少なくとも第二センサー132から受信した情報が、プロセッサベースのワークセル安全システム200のセンサー132が予想される方法で(例えば、定義された又は公称サンプリングレートで、2つ又はそれより多くのセンサー132が同じ事象を一貫して(又は、両立して/調和して)感知している)感知された情報を提供していること、及び/又はセンサー132のいずれもがスタック(すなわち、動作環境内の条件が変化し、異なる情報が関連する期間にわたって提供されるべきであるのに対して、同じ古い情報を何度も誤って繰り返し提供している)していないことを示すかどうかを評価し得る。評価のうちのいくつか(例えば、サンプリングレート)は各センサー132に対して個別に実行されてもよく、一方、他の評価(例えば、2つ又はそれより多くのセンサー132によって感知された情報を比較すること)は、プロセッサベースのワークセル安全システム200の2つ又はそれより多くのセンサー132に対して集合的に実行されてもよい。
【0134】
例えば、各センサー132は、それぞれのサンプリングレートに関連付けられ得る。ルールは、それぞれの許容可能なサンプリング範囲、又は許容可能であると考えられるサンプリングレート誤差のパーセンテージ、又は逆に許容不可能であると考えられる同様の値を定義し得る。また、例えば、ルールは、許容可能であると考えられる、センサーがスタックし得るそれぞれの時間量、若しくはセンサーがスタックしていないことを確認するための頻度(又は、周波数)、又は逆に許容不可能であると考えられる同様の値を定義し得る。
【0135】
510において、プロセッサベースのワークセル安全システム200の少なくとも1つのプロセッサ222はシステムステータスの妥当性の確認を実行し、システム検証ルール125b(
図1)の1つ又は複数のセットに少なくとも部分的に基づいて、そのプロセッサベースのワークセル安全システム200のステータス(すなわち、システムステータス)の妥当性を確認する。妥当性の確認は例えば、センサー132の決定された動作状態に基づき得る。システム妥当性確認ルール125bは例えば、選択センサー132及び/又はセンサー132の1つ又は複数の選択グループのためのルールを指定し得る(例えば、すべてのセンサーが動作可能でなければならない、必要であると識別されたセンサーがすべて動作可能でなければならないが他のセンサーは動作可能であっても動作可能でなくてもよい、センサーのセットのセンサーの大部分が整合しなければならない)。プロセッサベースのワークセル安全システム200のプロセッサ(複数可)222はシステム妥当性確認ルール125bを評価又はさもなければ適用して、安全認定動作を保証するためにプロセッサベースのワークセル安全システム200に依拠するのに十分なセンサー132が正常な又は許容可能な範囲内で動作している(すなわち、故障の条件、動作状態がない)かどうかを決定し得る。安全認定動作を保証するためにプロセッサベースのワークセル安全システム200に依拠するために、正常な又は許容可能な範囲内で動作している十分なセンサー132が存在する場合、プロセッサベースのワークセル安全システム200のプロセッサ(複数可)222は、非異常なシステムステータスの存在を識別又は示すことができる。逆に、安全認定動作を保証するためにプロセッサベースのワークセル安全システム200に依拠するために、正常な又は許容可能な境界(すなわち、故障状態、動作不能状態)内で動作しているセンサー132が不十分である場合、プロセッサベースのワークセル安全システム200のプロセッサ(複数可)222は、異常なシステムステータスの存在を識別又は示すことができる。
【0136】
例えば、システム妥当性確認ルール125bは異常なシステム条件が存在するために、どれだけの数の、及び/又はどのセンサー132が動作不能であるか、又は信頼性がないと見なされることができるかを指定し得る。システム妥当性確認ルール125bは、任意の単一のセンサー132の動作不能又はデフォルトのセンサー状態がシステムの異常なシステムステータスを構成又は示すことを指定し得る。追加的に又は代替的に、システム妥当性確認ルール125bは、特定のセンサー132のうちの1つ又は組合せについての動作不能又はデフォルトのセンサー状態がシステムについての異常なシステムステータスを構成する又は示す、2つ又はそれ以上の特定のセンサー132のセットを指定し得る。例えば、異常なシステムステータスはセットのセンサー132のうちの1つ、2つ、それ以上又はすべてが、故障しているか、動作不能であるか、又は潜在的に故障しているか、又は潜在的に動作不能である場合に存在し得る。代替的に、システム妥当性確認ルール125bはセンサー132の大部分の間に一貫性がないときに、プロセッサベースのワークセル安全システム200が存在するための異常なシステムステータスを定義し得る。センサー132の大部分の間に一貫性がある場合、少なくとも1つのプロセッサ222は、グループ又はセットとしてのセンサー132が、動作環境又はその一部内で安全な動作を提供するのに十分な信頼性があると決定し得る。
【0137】
512において、プロセッサベースのワークセル安全システム200の少なくとも1つのプロセッサ222は、システム妥当性確認ルール125bに基づく評価の結果がそのプロセッサベースのワークセル安全システム200について異常なシステムステータスが存在することを示すかどうかを決定する。
【0138】
プロセッサベースのワークセル安全システム200について異常なシステムステータスが存在する(例えば、全てのセンサー132が定義された動作パラメータ内で動作しているわけではない、不十分な数のセンサー132が定義された動作パラメータ内で動作している、大多数のセンサー132が定義された動作パラメータ内で互いに一貫して動作していない)ことを示す妥当性の確認に応答して、514において、少なくとも1つのプロセッサ222は、ロボット(複数可)102(
図1)の動作を少なくとも部分的に制御する、移動を停止する、移動を減速する、予防的オクルージョンを加える、又はさもなければ1つ又は複数のロボット102の動作を阻害する、ための信号を提供する。例えば、少なくとも1つのプロセッサ222は少なくとも異常なシステムステータスが緩和されるまで、ロボット(複数可)102の移動を防止又は減速する信号を提供してもよく、例えば、ロボット制御システム109a、109b(
図1)又はロボット102(
図1)のモーションコントローラ320(
図3)に信号を提供する。また、例えば、少なくとも1つのプロセッサ222はモーションプランニングのために予防的に遮蔽されるものとして扱われるべき動作環境104(
図1)のエリア、例えば、故障しているか又は動作不能な動作状態を有する1つ又は複数のセンサー132によってカバーされるエリアを示す信号を提供することができ、例えば、ロボット制御システム109a、109b又はロボット(複数可)102のモーションコントローラ320に信号を提供する。次いで、方法500は、524で終了する。
【0139】
プロセッサベースのワークセル安全システム200について異常なシステムステータスが存在しない(例えば、全てのセンサー132が定義された動作パラメータ内で動作している、十分な数のセンサー132が定義された動作パラメータ内で動作している、大多数のセンサー132が定義された動作パラメータ内で一貫して動作している)ことを示す妥当性の確認に応答して、516において、プロセッサベースのワークセル安全システム200(
図2)の少なくとも1つのプロセッサ222(
図2)は安全監視ルール125c(
図1)の違反の発生について動作環境104(
図1)を監視し、安全ルール違反について動作環境を監視するために、プロセッサ(複数可)222は、動作環境104(
図1)内のオブジェクトを表すセンサーデータを使用し得る。プロセッサ(複数可)222は、人間である又は人間であるように見えるオブジェクトを識別し得る。プロセッサ(複数可)222は、動作環境における1人又は複数の人間の現在位置及び/又は人間(複数可)が占める3次元エリアを決定し得る。プロセッサ(複数可)222は、任意選択で、ある期間での人間の経路又は軌道、及び/又はその期間にわたる人間(複数可)によって占有される3次元エリアを予測し得る。例えば、プロセッサ(複数可)222は、人間(複数可)の現在の位置に基づいて、及び人間(複数可)の以前の動きに基づいて、及び/又は人間(複数可)の予測された振る舞い(又は、行動/挙動)又は訓練に基づいて、経路又は軌道又は3次元エリアを決定し得る。プロセッサ(複数可)222は、人間の経路又は軌道を予測するために人工知能又は機械学習を使用し得る。プロセッサ(複数可)222はロボット(複数可)の現在位置、及び/又はある期間にわたってロボット(複数可)によって占有される3次元エリアを決定し得る。例えば、プロセッサ(複数可)222は、ロボット(複数可)の現在位置及びロボットのモーションプランに基づいて、経路又は軌道又は3次元エリアを決定し得る。
【0140】
例えば、プロセッサ(複数可)222は、ロボット(複数可)の位置及び/又は経路又は軌道に関する人間(複数可)の位置及び/又は予測される経路又は軌道が1つ又は複数の安全監視ルール125c(
図1)に違反するかどうかを決定し得る。例えば、1つ又は複数の安全監視ルール125cの違反は人間(複数可)及び/又はロボット(複数可)のモーションが、人間(複数可)とロボット(複数可)との間の距離を定義された閾値安全距離内に収める場合に存在すると決定されることができる。これは直線距離計算に基づいて決定されてもよいが、特定のセンサー132(
図1)の動作特性に基づいて決定されてもよい。例えば、そのようなものは、センサーの分解能(又は、解像度)又は粒状度を考慮することができ、例えば、動作環境104(
図1)又はその一部を、(例えば、等しい又は等しくないサイズの)単一領域(又は、単位領域)にセグメント化されるように扱うことができ、安全監視ルール125cは停止、減速又は予防的オクルージョンのトリガを回避するために、人間(複数可)とロボット(複数可)との間に維持されるべき少なくとも定義された数の単一領域の分離を必要とする。
【0141】
518において、プロセッサベースのワークセル安全システム200(
図2)の少なくとも1つのプロセッサ222(
図2)は、安全ルール125c(
図1)のうちの1つ又は複数が違反されたかどうかを決定する。近さ又は近接性が直線距離として又は互いから離れるいくつかの単位量によって定義して、例えば、人間がロボット102に近すぎる場合、又は人間の経路又は軌道がロボット102に近すぎることになる場合、又はロボット102の経路又は軌道に近すぎることになる場合、安全ルールは違反され得る。
【0142】
安全監視ルール125c(
図1)が違反されなかったという決定に応答して、520において、少なくとも1つのプロセッサ222はロボット(複数可)102の動作を少なくとも部分的に制御するための信号を提供し、ロボット(複数可)の動作又は移動を可能にする。例えば、少なくとも1つのプロセッサ222は、1つ又は複数のロボット102が移動することを可能にする信号を、例えばロボット制御システム109a、109b(
図1)又はロボット(複数可)102のモーションコントローラ320(
図3)に提供し得る。また、例えば、少なくとも1つのプロセッサ222は、動作環境のエリアがモーションプランニングにおいて使用するために遮蔽されるものとして表されるべきではないことを示す信号を提供し得る。いくつかの実装形態では、デフォルト条件が全体のワークセル又は動作環境104(
図1)を遮蔽されているとして示すことであり得、したがって、少なくとも1つのプロセッサ222はプロセッサベースのワークセル安全システム200のシステムステータスが非異常なシステムステータスである(例えば、十分なセンサーカバレージが故障していないか又は動作可能なセンサー状態を有するセンサー132によって与えられる)との決定に応答して、全体のワークセル又は動作環境104が遮蔽されているという仮定の緩和を可能にする信号を提供し得る。次いで、制御は504に戻り、方法500の部分が繰り返される。
【0143】
安全監視ルール125c(
図1)のうちの1つ又は複数の違反の検出に応答して、522において、少なくとも1つのプロセッサ222は1つ又は複数のロボットの動作(例えば、移動)を停止させる、減速させる、又はさもなければ阻害する信号を提供する。プロセッサ(複数可)222は例えば、動作を停止又は遅くするためにロボット制御システム300(
図3)に信号を提供するか、又はモーションプランナ110a、110b(
図1)に信号を提供して、モーションプランニング目的のために遮蔽された1つ又は複数のエリア又は領域を識別し得る。次いで、方法500は例えば、再び呼び出されるまで、524で終了する。いくつかの実装形態では、方法500が例えば、ロボット又はその一部分に電力が供給されている間、継続的に、又はさらには周期的に動作し得る。
【0144】
図6は、少なくとも1つの例示された実施形態による、動作環境におけるロボット動作を制御するための動作環境の安全監視を実装するためのプロセッサベースのシステムの動作の低レベル方法600を、安全監視システムの妥当性確認とともに示す。方法600は例えば、プロセッサベースのワークセル安全システム200(
図2)の1つ又は複数のプロセッサ222(
図2)によって実行されることができる。プロセッサベースのワークセル安全システム200は例えば、モーションプランを生成し、及び/又は動作環境104(
図1)内の1つ又は複数のロボット102(
図1)の動作を制御するロボット制御システム300(
図3)と任意選択で通信可能に結合されてもよい。方法600は例えば、センサーの1つ又は複数の動作状態を評価するステップ508(
図5)の一部として実行されることができる。
【0145】
602において、少なくとも1つのプロセッサ222は、第一センサー及び少なくとも第二センサーから受信された情報が第一センサー又は第二センサーのいずれか又は両方がスタックしている(すなわち、センサーによってカバーされるエリア又は領域における活動がその時間にわたって変化した場合に同じ古いデータ又は情報を誤って繰り返し送信する)ことを示すかどうかを決定する。
【0146】
例えば、少なくとも1つのプロセッサ222は、第一センサー及び少なくとも第二センサーから受信された情報に表されたフィデューシャル111(
図1)がある期間で(又は、ある期間にわたって)移動したかどうかを決定し得る。また、例えば、少なくとも1つのプロセッサは第一センサー及び少なくとも第二センサーから受信された情報に表されたフィデューシャル111の動きが、ある期間にわたるフィデューシャル111の予想される動きと一致するかどうかを決定し得る。
【0147】
少なくともいくつかの実装形態では、フィデューシャル111aがロボット102の一部分であるか、又はロボット102の一部分によって運ばれる。そのような実装形態では少なくとも1つのプロセッサ222が例えば、第一及び第二センサー132から受信された情報に表されたフィデューシャル111aの動きが、ある期間にわたるフィデューシャル111aの予想される動きと一致するかどうかを決定し得る。そのようなことは例えば、フィデューシャル111aの動きが、ある期間にわたるロボット102aの部分の動きと一致するかどうかを決定することを含み得る。これは、例えば、遷移又は移動中にロボット102aの既知のジョイント角度を使用して実行されてもよい。
【0148】
少なくともいくつかの実装形態では、フィデューシャル111bがロボット102とは別個かつ区別され、ロボット102とは別個に移動する。そのような実装形態では少なくとも1つのプロセッサ222が例えば、第一及び第二センサー132から受信された情報に表されたフィデューシャル111bの動きが、ある期間にわたるフィデューシャル111bの予想される動きと一致するかどうかを決定し得る。そのようなことは例えば、フィデューシャル111bの動きが、ある期間にわたるフィデューシャル111bの予想される動きと一致するかどうかを決定することを含み得る。
【0149】
少なくともいくつかの実装形態では、第一センサー又は第二センサー132のうちの少なくとも1つはある期間中に定義されたパターンで移動する。そのような実装形態では少なくとも1つのプロセッサ222が例えば、第一及び第二センサー132から受信された情報に表されたフィデューシャル111の識別できる動き(又は、見かけの動き)が、ある期間中の第一又は第二センサー132の動きに基づいて、ある期間にわたるフィデューシャル111の予想される識別できる動きと一致するかどうかを決定し得る。
【0150】
604において、少なくとも1つのプロセッサ222は、センサー132から受信された情報がセンサーのそれぞれのサンプリングレートと一致するかどうかを決定する。例えば、第一センサー132は、毎秒30フレームで画像をキャプチャするデジタルカメラの形態をとり得る。したがって、センサー132から受信された情報は、毎秒30フレームを有すると予想される。レーザスキャナは毎秒120サンプルで情報をキャプチャすることができ、したがって、センサーから受信された情報は、毎秒120セットのデータを有すると予想される。
【0151】
606において、少なくとも1つのプロセッサ222は、動作環境104(
図1)の第一部分と第二部分との少なくとも部分的な重複について、第一及び少なくとも第二センサー132から受信された情報を比較して、不一致(又は、矛盾/discrepancy)があるかどうかを決定する。例えば、2つ又はそれ以上のセンサー132の視野内にある空間を占める固定オブジェクト又は移動オブジェクト(例えば、ロボット102の一部分)が存在し得る。少なくとも1つのプロセッサ222はこれらのセンサー132の各々から感知された情報を分析して、固定又は移動オブジェクトがセンサー132の各々によって検出されたこと、及び/又は、センサー132の各々によってキャプチャされたオブジェクトのポーズ(すなわち、位置及び/又は向き)が他のセンサー132によってキャプチャされたオブジェクトのポーズと一致することを決定する。ポーズを評価する際、少なくとも1つのプロセッサはセンサー132の異なるそれぞれの視野を考慮してもよく、例えば、別の視野に対して、又は定義された基準フレームに対して1つ又は複数の視野を正規化してもよい。例えば、第一画像センサー132による画像キャプチャは例えばグラフィックス処理ユニット(GPU)を介して、第二画像センサーに対する第一画像センサーの視野に基づいて操作されることができる(例えば、3次元に並進及び/又は回転されることができる)。次いで、少なくとも1つのプロセッサ222は、第二センサー132によってキャプチャされた画像と第一センサー132からの操作された画像との間の比較を実行して、両方のセンサーが互いに一貫してオブジェクトをキャプチャしたことを決定し得る。例示の便宜上、画像ベースのセンサー132に関して説明し、視野の用語が使用されたが、センサー132は画像ベースのセンサー132に限定されない。また、2つ又はそれ以上のセンサー132によって提供される情報の比較は、同じ動作モダリティを有するセンサー132に限られない(例えば、PIRモーションセンサー及びレーザセンサーによって収集された情報が比較されることができる)。
【0152】
図7は、少なくとも1つの例示された実施形態による、動作環境におけるロボット動作を制御するための動作環境の安全監視を実施するためのプロセッサベースのシステムの動作の低レベル方法700を、安全監視システムの妥当性確認とともに示す。方法700は例えば、プロセッサベースのワークセル安全システム200(
図2)の1つ又は複数のプロセッサ222(
図2)によって実行されることができる。プロセッサベースのワークセル安全システム200は例えば、モーションプランを生成し、及び/又は動作環境内の1つ又は複数のロボットの動作を制御するロボット制御システム300(
図3)と任意選択で通信可能に結合されることができる。方法700は例えば、システム妥当性確認の結果(
図5の方法500の510)が、安全システムについて異常なシステム状態(
図5の方法500の512)が存在することを示すかどうかを決定することの一部として実行されることができる。
【0153】
702において、プロセッサベースのワークセル安全システム200の少なくとも1つのプロセッサ222は、必須であると識別されたセンサー132(
図1)がもしあれば、故障又は潜在的に故障した動作状態を有すると決定されたかどうかを決定する。故障又は潜在的に故障した動作状態の存在又は不在の決定は方法600(
図6)の実行の一部として、例えば、センサー132がスタックしているかどうか、センサー132が公称サンプリングレートでサンプルを提供しているかどうか、センサー132の出力が意味をなすか、又は期待される出力又は他のセンサー132の出力と一致するかどうかを検証することによって実行されることができる。
【0154】
必須であると識別された1つ又は複数のセンサー132が故障又は潜在的に故障した動作状態を有するという決定に応答して、少なくとも1つのプロセッサ222は、704において、i)ロボット動作の停止を引き起こす、ii)ロボット動作に減速を引き起こす、及び/又はiii)遮蔽状態として識別されるべきエリア又は領域を示す信号を提供する。次いで、方法700は、故障が解決され、方法700が再び呼び出されるまで、706において終了し得る。代替的に、必須であると識別された1つ又は複数のセンサーが故障又は潜在的に故障した動作状態を有さないという決定に応答して、制御は708に進む。
【0155】
708において、プロセッサベースのワークセル安全システム200の少なくとも1つのプロセッサ222は必要であると識別されたセンサー132の任意のセット又は組合せが、もしあれば、故障又は潜在的に故障した動作状態を有すると決定されたかどうかを決定する。故障又は潜在的に故障した動作状態の存在又は不在の決定は方法600(
図6)の実行の一部として、例えば、センサー132がスタックしているかどうか、センサー132が公称サンプリングレートでサンプルを提供しているかどうか、センサー132の出力が意味をなすか、期待される出力又は他のセンサー132の出力と一致するかどうかを検証することによって、実行されることができる。
【0156】
必要であるとして識別された任意のセット又は組み合わせのセンサー132のうちの1つ又は複数のセンサー132が故障又は潜在的に故障した動作状態を有するという決定に応答して、少なくとも1つのプロセッサ222は、704において、i)ロボット動作の停止を引き起こす、ii)ロボット動作に減速を引き起こす、及び/又はiii)遮蔽状態として識別されるべきエリア又は領域を示す信号を提供する。次いで、方法700は、故障が解決され、方法700が再び呼び出されるまで、706において終了し得る。代替的に、必要であると識別されたセンサー132の任意のセット又は組合せのうちの1つ又は複数が故障又は潜在的に故障した動作状態を有さないという決定に応答して、制御は710に進む。
【0157】
710において、プロセッサベースのワークセル安全システム200の少なくとも1つのプロセッサ222は、動作環境の各エリア又は領域が、故障を有さないか、又は潜在的に故障した動作状態を有さないと決定されたセンサー132による十分なセンサーカバレージを有するかどうかを決定する。故障又は潜在的に故障した動作状態の不在又は存在の決定は方法600(
図6)の実行の一部として、例えば、センサー132がスタックしているかどうか、センサー132が公称サンプリングレートでサンプルを提供しているかどうか、センサー132の出力が意味をなすか、期待される出力又は他のセンサー132の出力と一致するかどうかを検証することによって、実行されることができる。
【0158】
動作環境104(
図1)の1つ又は複数のエリア又は領域が、故障を有さないか、又は潜在的に故障した動作状態を有しないと決定されたセンサー132による十分なセンサーカバレージを有していないという決定に応答して、少なくとも1つのプロセッサ222は、704において、i)ロボット動作の停止を引き起こす、ii)ロボット動作に減速を引き起こす、及び/又はiii)遮蔽状態として識別されるべきそれぞれのエリア又は領域を示す信号を提供する。次いで、方法700は、故障が解決され、方法700が再び呼び出されるまで、706において終了し得る。代替的に、エリア又は領域が故障を有さず、又は潜在的に故障した動作状態を有さないと決定されたセンサー132による十分なセンサーカバレージを有するという決定に応答して、712において、プロセッサ222は、ロボットモーションプランニング及び/又はロボット動作が中断されずに進行することを可能にする。
【0159】
図8は、少なくとも1つの例示された実装形態による、プロセッサベースのワークセル安全システムのトリガリングを低減するように動作環境においてロボット動作を制御するためのプロセッサベースのシステムの動作の方法800を示す。方法800は例えば、モーションプランを生成し、及び/又は動作環境104(
図1)内の1つ又は複数のロボット102(
図1)の動作を制御するロボット制御システム300(
図3)の1つ又は複数のプロセッサ322(
図3)によって実行されることができる。ロボット制御システム300は例えば、任意選択で、プロセッサベースのワークセル安全システムと通信可能に結合されることができる。
【0160】
プロセッサベースのワークセル安全システム200は、安全監視ルール125c(
図1)のセットに基づいて、プロセッサベースのワークセル安全システム200がワークセル又は動作環境104において動作する少なくとも1つのロボット102の動作の減速又は停止のうちの少なくとも1つをトリガするいくつかの条件を含む、安全条件を評価する。例えば、プロセッサベースのワークセル安全システム200は停止又は減速をトリガすることができ、又は、ロボット102の一部の定義された距離内に、又はロボット102の一部の投影された(又は、推定された/projected)軌道の定義された距離内に位置する一時的オブジェクト(transient object)(例えば、人間又は潜在的に人間)の検出に応答して、動作環境104の一部が予防措置として遮蔽状態と示すことさえできる。距離は直線距離であってもなくてもよく、例えば、特定のセンサー132(
図1)の分解能を考慮に入れてもよい。また、例えば、プロセッサベースのワークセル安全システム200は停止又は減速をトリガすることができ、又は、1つ又は複数のロボット102の一部分の投影された軌道を有する一時的オブジェクト(例えば、人間又は潜在的に人間)の軌道の予測される衝突又は近接接近の検出に応答して、動作環境104の一部分を予防措置として遮蔽状態と示すことさえできる。
【0161】
停止、減速及び予防的オクルージョンはロボット動作を妨げ、可能な場合にはそのようなことを制限するか、又は回避さえすることが有利である。そのような停止、減速及び予防的オクルージョンを緩和するために、プロセッサベースのロボット制御システム300(
図3)は、モーションプランニングを実行するときにプロセッサベースのワークセル安全システム200(
図2)をトリガする安全監視ルール125c(
図1)を有利に考慮に入れる。
【0162】
方法800は、802で開始する。例えば、方法800はプロセッサベースのシステム(例えば、プロセッサベースのロボット制御システム300、プロセッサベースのワークセル安全システム200)の電源投入に応答して、1つ又は複数のロボット102の電源投入に応答して、又は呼び出しルーチンからの呼び出し又は起動に応答して開始し得る。方法800は例えば、1つ又は複数のロボット102の動作中に、継続的に実行し得る。
【0163】
804において、プロセッサベースのロボット制御システム300の少なくとも1つのプロセッサ322(
図3)は、プロセッサベースのワークセル安全システム200(
図2)によって実装される安全監視ルール125c(
図1)の記憶されたセットにアクセスする。安全監視ルール125c(
図1)のセットはプロセッサベースのロボット制御システム300にローカルに記憶されることができるが、好ましくは最新にアップデートされたルール及び条件のセットが使用されることを保証するために、プロセッサベースのワークセル安全システム200に記憶され、そこから取り出されることができる。
【0164】
任意選択で、806において、プロセッサベースのロボット制御システム300の少なくとも1つのプロセッサ322はワークセルもしくは動作環境104内にいる、又はワークセルもしくは動作環境104に入る可能性が高いと思われる人間(例えば、オペレータ)の予測される振る舞いを決定する。少なくとも1つのプロセッサ322は例えば、同様の動作環境及びロボットシナリオのデータセット上で訓練されている機械学習又は人工知能を使用して、ワークセル又は動作環境104内の人の予測される振る舞いを決定し得る。少なくとも1つのプロセッサ322は例えば、動作環境104に存在するときのオペレータ及び他の人間の位置もしくは場所及び時間及び/又は移動速度を指定するオペレータトレーニングガイドラインのセットに少なくとも部分的に基づいて、ワークセル又は動作環境104における人間の予測される振る舞いを決定し得る。少なくとも1つのプロセッサ222は例えば、ワークセル又は動作環境104を少なくとも部分的に通る人間の予測軌道(例えば、経路、速度)を決定し得る。
【0165】
任意選択で、808において、プロセッサベースのロボット制御システム300の少なくとも1つのプロセッサ322は例えば、人間が予測された振る舞いと一貫して行動しているかどうかを決定し得る。人間が予測された振る舞いと一貫して行動していないという決定に応答して、少なくとも1つのプロセッサは例えば、810において、ロボット(複数可)102の移動の減速を引き起こす、及び/又はロボット(複数可)102が予測不可能な人間と衝突する可能性又は確率を低減する別の行動を引き起こす、例えば、ロボット(複数可)102を人間の現在の位置から離れるように移動させる信号を提供し得る。次いで、制御は812に移る。人間が予測された振る舞いと一貫して行動しているという決定に応答して、制御は直接812に渡される。
【0166】
812において、プロセッサベースのロボット制御システム300の少なくとも1つのプロセッサ322はプロセッサベースの安全システム200(
図2)の安全監視ルール125c(
図1)に少なくとも部分的に基づいて、また、任意選択で動作環境104内の人(もし居れば)の予測された振る舞いに部分的に基づいて、少なくとも1つのロボット102(
図1)のモーションプランを決定する。少なくとも1つのプロセッサ322は例えば、少なくとも1つのロボット102のモーションプランを決定することができ、それは、プロセッサベースのワークセル安全システム200(
図2)が少なくとも1つのロボット102の動作の減速又は停止のうちの少なくとも1つをトリガする確率を少なくとも低減するか、又は予防的オクルージョンの使用を低減するか、又はさらには排除する。
【0167】
少なくとも1つのプロセッサ322は例えば、プロセッサベースのワークセル安全システム200の少なくとも1つの構成要素(例えば、センサー132)の分解能又は粒状度に基づいて、モーションプランを決定し得る。少なくとも1つのプロセッサ322は例えば、プロセッサベースのワークセル安全システム200の少なくとも1つのセンサー132の分解能又は粒状度に基づいて、モーションプランを決定し得る。例えば、少なくとも1つのプロセッサ322は例えば、センサー132(例えば、レーザベースのセンサー)が動作環境又はその一部をグリッド状又はアレイ状のセクションに分割する場合、グリッド状の領域(例えば、楔形又は三角形の領域、矩形の領域、六角形の領域)の寸法のセットに基づいて、モーションプランを決定し得る。人間の予測される振る舞いが決定された場合、プロセッサベースロボット制御システム300の少なくとも1つのプロセッサ322は例えば、プロセッサベース安全システム200の安全監視ルール125c(
図1)に部分的に基づいて、かつ動作空間又はワークセル104内の人間の決定された予測された振る舞いの少なくとも一部に基づいて、少なくとも1つのロボット102(
図1)のモーションプランを決定し得る。少なくとも1つのプロセッサ322は例えば、人間の決定された予測された振る舞い(例えば、位置/場所、時間、速度、軌道)の少なくとも一部に基づいて、少なくとも1つのロボット102のモーションプランを決定し得る。
【0168】
プロセッサベースのロボット制御システム300の少なくとも1つのプロセッサ322は、様々な技法を採用して、プロセッサベースのワークセル安全システム200が少なくとも1つのロボット102の動作の減速又は停止の少なくとも1つをトリガする確率を有利に低減する又は排除さえするか、又は予防的オクルージョンの使用を低減する又は排除さえするモーションプランを決定し得る。例えば、少なくとも1つのプロセッサ322はプロセッサベースのワークセル安全システム200によって実施される安全監視ルール125c(
図1)のセットによって指定された1つ又は複数の安全ルール又は条件に違反するであろうロボット構成間の遷移を表す、エッジに関連するコスト値又は重みを調整するか、又はさもなければ、停止、減速又は予防的オクルージョンを引き起こすようにプロセッサベースのワークセル安全システム200をトリガし得る。コスト値又は重みは、関連する遷移がプロセッサベースのロボット制御システム300による計画グラフの最小コスト経路分析中に選択される確率を低減するように調整(例えば、増加)されることができる。重みは、遷移がロボットの一部と人間との間の衝突を必ずしももたらさない場合であっても、所与の遷移がプロセッサベースのワークセル安全システム200をトリガし介入させる(例えば、停止、減速又は予防的オクルージョンを引き起こす)場合であっても、調整されることができる。
【0169】
モーションプランが決定された後、制御は814に進むことができる。
【0170】
814において、プロセッサベースのロボット制御システム300の少なくとも1つのプロセッサ322は少なくとも1つのロボット102に、決定されたモーションプランに従って移動させる。例えば、プロセッサベースのロボット制御システム300の少なくとも1つのプロセッサ322は1つ又は複数のモーションコントローラ320(
図3)、例えば、1つ又は複数のロボット102(
図1)の移動(例えば、制御モータ)を制御するモータコントローラに信号を提供し得る。
【0171】
方法800は例えば、再び呼び出されるまで、816で終了する。いくつかの実装形態では、方法800が例えば、ロボット又はその一部分に電力が供給されている間、継続的に、又はさらには周期的に動作し得る。
【0172】
上記の詳細説明においては、ブロック図、模式図及び実施例を用いて、多様な装置及び/又は方法の実施形態について記載している。これらのブロックダイヤグラム、概略図及び実施例は1つ又は2つ以上の機能及び/又は動作を含んでいるが、当業者には明らかなように、これらのブロックダイヤグラム、流れ図及び実施例におけるそれぞれの機能及び/又は動作は個々に及び/又は一括して、多様なハードウェア、ソフトウェア、ファームウェア、又は事実上任意のこれらの組み合わせによって実装し得る。一実施形態では、本主題がブール回路、特定用途向け集積回路(ASIC)及び/又はFPGAを介して実装されることができる。しかしながら、本明細書に開示される実施形態は全体的に又は部分的に、標準的な集積回路における様々な異なる実装形態において、1つ又は複数のコンピュータ上で実行される1つ又は複数のコンピュータプログラムとして(例えば、1つ又は複数のコンピュータシステム上で実行される1つ又は複数のプログラムとして)、1つ又は複数のプロセッサ(例えば、マイクロプロセッサ)上で実行される1つ又は複数のプログラムとして、ファームウェアとして、又はそれらの実質的に任意の組合せとして、実装されることができ、ソフトウェア及び/又はファームウェアのための回路及び/又はコードを設計することは、本開示に照らして、十分に当業者の技術の範囲内であることを認識されたい。
【0173】
当業者は本明細書に記載された方法又はアルゴリズムの多くが、追加の行為を採用してもよく、いくつかの行為を省略してもよく、及び/又は指定されたものとは異なる順序で行為を実行してもよいことを認識するであろう。
【0174】
さらに、当業者は、本明細書で教示される機構がハードウェア、例えば、1つ又は複数のFPGA又はASICにおいて実装されることが可能であることを理解するであろう。
【0175】
上記の種々の実施形態は、更なる実施形態を提供するように組み合わされることが可能である。2017年6月9日に出願された「自律走行車及び再構成可能なモーションプランプロセッサのためのモーションプラン」と題された国際特許出願第PCT/US2017/036880号、2016年1月5日に出願された「特殊ロボットモーションプランハードウェア及びその製造及び使用方法」と題された国際特許出願第WO2016/122840号、2018年1月12日に出願された「動的物体を有する環境における自律走行車のモーションプランを容易にするための装置、方法及び物品」と題された米国特許出願第62/616,783号、2018年2月6日に出願された「MOTION PLANNING OF A ROBOT STORING A DISCRETIZED ENVIRONMENT ON ONE OR MORe PROCESSORS AND IMPROVED OPERATION OF Same」と題された米国特許出願第62/626,939号、2019年6月3日に出願された「APPARATUS, METHODS AND ARTICLES TO FACILITATE MOTION PLANNING IN ENVIRONMENTS HAVING DYNAMIC OBSTACLES」と題された米国特許出願第62/856,548号、2019年6月24日に出願された「共有された作業空間における複数のロボットのためのモーションプラン」と題された米国特許出願第62/865,431号、2020年10月26日に出願された「ロボット動作に用いられる安全システム及び方法」と題された米国特許出願第63/105,542号、及び2020年6月23日に出願された「共有された作業空間における複数のロボットのためのモーションプラン」と題された国際特許出願PCT/US2020/039193号、を含むがこれらに限られない、本願明細書で言及されている、及び/又は出願データシートに記載されている、譲渡された米国特許出願、米国特許出願、外国特許出願のすべては、それぞれその全体が参照により本明細書に組み込まれる。上記の詳細説明に照らして、上記の及び他の変形がそれらの実施形態に対して行われることが可能である。一般に、以下の特許請求の範囲において、使用される用語は特許請求の範囲を、本明細書及び特許請求の範囲に開示される特定の実施形態に限定するように解釈されるべきではなく、そのような特許請求の範囲が権利を与えられる等価物の全範囲とともに、すべての可能な実施形態を含むように解釈されるべきである。したがって、特許請求の範囲は、本開示によって限定されない。
下記は、本願の出願当初に記載の発明である。
<請求項1>
少なくとも1つのロボットが動作する動作環境を監視するためのプロセッサベースのシステムの動作方法であって、
前記動作環境の少なくとも第一部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた第一センサーから情報を受信するステップと、
前記動作環境の少なくとも第二部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた少なくとも第二センサーから情報を受信するステップであって、前記動作環境の前記第二部分は前記動作環境の前記第一部分と少なくとも部分的に重なり、前記第二センサーは、前記第一センサーに対して異種である、該ステップと、
前記第一センサー及び少なくとも前記第二センサーのそれぞれについて、少なくとも1つのプロセッサによって、前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップと、
前記第一センサー及び少なくとも前記第二センサーの評価されたそれぞれの前記動作状態に少なくとも部分的に基づいてシステムステータスを特定するルールのセットに少なくとも部分的に基づいて前記システムステータスの妥当性を確認するステップと、
少なくとも1回、異常なシステムステータスが存在するとの決定をするステップと、
異常なシステムステータスが存在するとの決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御するために、前記少なくとも1つのプロセッサによって信号を提供するステップ
を含む、方法。
<請求項2>
前記異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御するために信号を提供するステップは、少なくとも前記異常なシステムステータスが緩和されるまで、前記少なくとも1つのロボットの移動を防止又は減速する信号を提供するステップを含む、請求項1に記載の方法。
<請求項3>
前記異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御するために信号を提供するステップは、モーションプラニングについては遮蔽されたものとして扱われるべき前記動作環境のエリアを示す信号を提供するステップを含む、請求項1に記載の方法。
<請求項4>
前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップは、前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを、少なくとも1つのプロセッサによって決定するステップを含む、請求項1に記載の方法。
<請求項5>
前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するステップが、前記第一センサー及び前記第二センサーから受信された前記情報に表されるフィデューシャルがある期間で動いたかどうかを決定するステップを含む、請求項4に記載の方法。
<請求項6>
前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するステップが、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかどうかを決定するステップを含む、請求項4に記載の方法。
<請求項7>
前記フィデューシャルは前記少なくとも1つのロボットの一部分であるか、又は前記少なくとも1つのロボットの前記一部分によって担持され、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかかどうかを決定するステップは、前記フィデューシャルの前記動きが、前記期間での前記少なくとも1つのロボットの前記一部分の動きとマッチするかどうかを決定するステップを含む、請求項6に記載の方法。
<請求項8>
前記フィデューシャルは前記少なくとも1つのロボットとは別に移動し、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかかどうかを決定するステップは、前記フィデューシャルの前記動きが前記期間の前記フィデューシャルの予想される動きとマッチするかどうかを決定するステップを含む、請求項6に記載の方法。
<請求項9>
前記第一センサー又は前記第二センサーのうちの少なくとも1つはある期間中に所定のパターンで動き、前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するステップは、前記第一センサー及び前記第二センサーから受信された前記情報に表されるフィデューシャルの識別できる動きが前記期間中の前記第一センサー又は前記第二センサーの前記動きに基づいて、ある前記期間での前記フィデューシャルの予想される識別できる動きと矛盾しないかどうかを決定するステップを含む、請求項4に記載の方法。
<請求項10>
前記第一センサーは第一動作モダリティを有し、前記第二センサーは第二動作モダリティを有し、前記第二動作モダリティは前記第一動作モダリティとは異なり、第一センサーから情報を受信するステップは前記第一センサーから第一モダリティフォーマットで情報を受信するステップを含み、第二センサーから情報を受信するステップは前記第二センサーから第二モダリティフォーマットで情報を受信するステップを含み、前記第二モダリティフォーマットは、前記第一モダリティフォーマットとは異なる、請求項1~9のいずれかに記載の方法。
<請求項11>
前記第一センサーの前記第一動作モダリティが画像センサーであり、前記第一モダリティフォーマットがデジタル画像であり、前記第二センサーの前記第二動作モダリティがレーザスキャナ、受動赤外線モーションセンサー又は熱センサーのうちの少なくとも1つであり、前記第二モダリティフォーマットが画像ではないデジタル信号である、請求項10に記載の方法。
<請求項12>
前記第一センサーが前記動作環境の第一視野を有し、前記第二センサーが前記動作環境の第二視野を有し、前記第二視野が前記第一視野とは異なり、前記第一センサーから情報を受信するステップが、前記第一視野を有する前記第一センサーから情報を受信するステップを含み、前記第二センサーから情報を受信するステップが、前記第二視野を有する前記第二センサーから情報を受信するステップを含む、請求項1~9のいずれかに記載の方法。
<請求項13>
前記第一センサーがセンサーの第一の構造及びモデルであり、前記第二センサーがセンサーの第二の構造及びモデルであり、前記センサーの第二の構造又はモデルのうちの少なくとも1つが、前記センサーの第一の構造及びモデルのそれぞれの1つとは異なり、第一センサーから情報を受信するステップが、前記第一の構造及びモデルの前記第一センサーから情報を受信するステップを含み、第二センサーから情報を受信するステップが、前記センサーの第二の構造及びモデルの前記第二センサーから情報を受信するステップを含む、請求項1~9のいずれかに記載の方法。
<請求項14>
前記第一センサーが第一動作モダリティを有し、前記第二センサーが第二動作モダリティを有し、前記第二動作モダリティが前記第一動作モダリティとは異なる、請求項13に記載の方法。
<請求項15>
前記第一センサーが第一動作モダリティを有し、前記第二センサーが第二動作モダリティを有し、前記第二動作モダリティが前記第一動作モダリティと同じである、請求項13に記載の方法。
<請求項16>
前記第一センサーが第一サンプリングレートを有し、前記第二センサーが第二サンプリングレートを有し、前記第二サンプリングレートが前記第一サンプリングレートとは異なり、第一センサーから情報を受信するステップが、前記第一サンプリングレートでキャプチャされた前記第一センサーから情報を受信するステップを含み、第二センサーから情報を受信するステップが、前記第二サンプリングレートでキャプチャされた前記第二センサーから情報を受信するステップを含む、請求項1~9のいずれかに記載の方法。
<請求項17>
前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップは、前記第一センサーから受信された情報が前記第一センサーの前記第一サンプリングレートと矛盾しないかどうかを決定するステップと、前記第二センサーから受信された情報が前記第二センサーの前記第二サンプリングレートと矛盾しないかどうかを決定するステップを含む、請求項16に記載の方法。
<請求項18>
前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップは、前記第一センサー及び少なくとも前記第二センサーから受信された前記情報を、前記動作環境の前記第二部分と前記第一部分との前記少なくとも部分的な重複について比較して、不一致が存在するかどうかを決定するステップを含む、請求項1~9のいずれかに記載の方法。
<請求項19>
不一致が存在するという決定に応答して、前記異常なシステムステータスが存在すると決定し、前記不一致が解消されるまで前記少なくとも1つのロボットの動きを防止する、請求項18に記載の方法。
<請求項20>
不一致が存在するという決定に応答して、前記異常なシステムステータスが存在すると決定させ、前記不一致が存在する前記動作環境の一部を、前記不一致が解消されるまで、モーションプランニング中は遮蔽されたものとして扱わせる、請求項18に記載の方法。
<請求項21>
前記動作環境の少なくとも第三部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた少なくとも第三センサーから情報を受信するステップであって、前記動作環境の前記第三部分は前記動作環境の前記第一部分及び前記第二部分と少なくとも部分的に重なり、前記第三センサーは前記第一センサー又は前記第二センサーのうちの少なくとも1つに関して異種である、該ステップをさらに含み、
前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップは、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーから受信された情報に少なくとも部分的に基づいて、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーのそれぞれの動作状態の評価を実行するステップを含む、請求項1~9のいずれかに記載の方法。
<請求項22>
前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーのそれぞれの動作状態の評価を実行するステップは、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーの大部分の間の一貫性に少なくとも部分的に基づく、請求項21に記載の方法。
<請求項23>
少なくとも1回、非異常なシステムステータスが存在するとの決定をするステップと、
前記非異常なシステムステータスが存在するとの決定に応答して、前記少なくとも1つのプロセッサによって少なくとも部分的に前記ロボットの動作を制御する信号を提供するステップ
をさらに含む、請求項1~9のいずれかに記載の方法。
<請求項24>
前記非異常なシステムステータスが存在するとの決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御する信号を提供するステップは、前記センサーのうちの少なくとも2つが互いに整合するとの決定に応答して、ワークセル全体が遮蔽されるという仮定の緩和を可能にする信号を提供するステップを含む、請求項23に記載の方法。
<請求項25>
前記非異常なシステムステータスが存在するとの決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御する信号を提供するステップは、前記少なくとも1つのロボットが移動することを許容する、又は前記動作環境のエリアが遮蔽されたものとして表されないことを示す信号を提供するステップを含む、請求項23に記載の方法。
<請求項26>
少なくとも1つのロボットが動作する動作環境を監視するシステムであって、
前記動作環境の少なくとも第一部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた第一センサーと、
前記動作環境の少なくとも第二部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた少なくとも第二センサーであって、前記動作環境の前記第二部分が前記動作環境の前記第一部分と少なくとも部分的に重なり、前記第二センサーが前記第一センサーに対して異種である、該第二センサーと、
前記第一センサー及び少なくとも前記第二センサーから情報を受信するように通信可能に結合された少なくとも1つのプロセッサであって、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、請求項1~25のいずれかに記載の方法を実行させる、プロセッサ実行可能命令を実行するように動作可能な、該少なくとも1つのプロセッサ
を含む、システム。
<請求項27>
実行されると、1つ又は複数のプロセッサに、請求項1~25のいずれかに記載の方法を実行させる、プロセッサ実行可能命令を記憶するプロセッサ可読媒体。
<請求項28>
少なくとも1つのロボットが動作する動作環境を監視するシステムであって、
前記動作環境の少なくとも第一部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた第一センサーと、
前記動作環境の少なくとも第二部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた少なくとも第二センサーであって、前記動作環境の前記第二部分が前記動作環境の前記第一部分と少なくとも部分的に重なり、前記第二センサーが前記第一センサーに対して異種である、該第二センサーと、
前記第一センサー及び少なくとも前記第二センサーから情報を受信するように通信可能に結合された少なくとも1つのプロセッサであって、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
前記第一センサー及び少なくとも前記第二センサーのそれぞれの動作状態の評価を実行するステップと、
前記第一センサー及び少なくとも前記第二センサーの評価されたそれぞれの動作状態に少なくとも部分的に基づいてシステムステータスを特定するルールのセットに少なくとも部分的に基づいて前記システムステータスの妥当性を確認する、該ステップと、
少なくとも1回、前記システムステータスが異常なシステムステータスが存在すること示すと決定するステップと、
異常なシステムステータスが存在するとの決定に応答して、少なくとも部分的に少なくとも1つのロボットの動作を制御するために、前記少なくとも1つのプロセッサによって信号を提供するステップ
を実行させる、プロセッサ実行可能命令を実行するように動作可能な、該少なくとも1つのプロセッサ
を含む、システム。
<請求項29>
前記異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御する信号を提供するために、前記少なくとも1つのプロセッサは、少なくとも前記異常なシステムステータスが緩和されるまで、前記少なくとも1つのロボットの移動を防止又は減速する信号を提供する、請求項28に記載のシステム。
<請求項30>
前記異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御するための信号を提供するために、前記少なくとも1つのプロセッサは、モーションプラニングについては遮蔽されたものとして扱われるべき前記動作環境のエリアを示す信号を提供する、請求項28に記載のシステム。
<請求項31>
前記第一センサー及び少なくとも前記第二センサーの動作状態の評価を実行するために、前記少なくとも1つのプロセッサによって実行されると、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサに、
前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定させる、請求項28に記載のシステム。
<請求項32>
前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するために、前記少なくとも1つのプロセッサは、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルがある期間に動いたかどうかを決定する、請求項31に記載のシステム。
<請求項33>
前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するために、前記少なくとも1つのプロセッサは、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかどうかを決定する、請求項31に記載のシステム。
<請求項34>
前記フィデューシャルは前記少なくとも1つのロボットの一部分であるか、又は前記少なくとも1つのロボットの前記一部分によって担持され、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかどうかを決定するために、前記少なくとも1つのプロセッサは、前記フィデューシャルの前記動きが、前記前記期間での前記少なくとも1つのロボットの前記一部分の動きとマッチするかどうかを決定する、請求項33に記載のシステム。
<請求項35>
前記フィデューシャルは前記少なくとも1つのロボットとは別に移動し、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの動きが、ある期間での前記フィデューシャルの予想される動きと矛盾しないかどうかを決定するために、前記少なくとも1つのプロセッサは、前記フィデューシャルの前記動きが前記前記期間での前記フィデューシャルの予想される動きとマッチするかどうかを決定する、請求項33に記載のシステム。
<請求項36>
前記第一センサー又は前記第二センサーのうちの少なくとも1つはある期間中に所定のパターンで移動し、前記第一センサー及び少なくとも前記第二センサーから受信された前記情報が、前記第一センサー又は前記第二センサーのいずれか又は両方が古い情報を誤って繰り返し送信していることを示すかどうかを決定するために、前記少なくとも1つのプロセッサは、前記第一センサー及び前記第二センサーから受信された前記情報で表されるフィデューシャルの識別できる動きがある前記期間での前記フィデューシャルの予想される識別できる動きと矛盾しないかどうかを、前記期間中の前記第一センサー又は前記第二センサーの前記動きに基づいて決定する、請求項31に記載のシステム。
<請求項37>
前記第一センサーが第一動作モダリティを有し、前記第二センサーが第二動作モダリティを有し、前記第二動作モダリティが前記第一動作モダリティとは異なる、請求項28~36のいずれかに記載のシステム。
<請求項38>
前記第一センサーの前記第一動作モダリティは画像センサーであり、第一モダリティフォーマットはデジタル画像であり、前記第二センサーの前記第二動作モダリティはレーザスキャナ、受動赤外線モーションセンサー又は熱センサーのうちの少なくとも1つであり、第二モダリティフォーマットは画像ではないデジタル信号である、請求項37に記載のシステム。
<請求項39>
前記第一センサーは前記動作環境の第一視野を有し、前記第二センサーは前記動作環境の第二視野を有し、前記第二視野は前記第一視野とは異なる、請求項28~36のいずれかに記載のシステム。
<請求項40>
前記第一センサーはセンサーの第一の構造及びモデルであり、前記第二センサーはセンサーの第二の構造及びモデルであり、前記センサーの第二の構造又はモデルのうちの少なくとも1つは、前記センサーの第一の構造及びモデルのそれぞれの1つとは異なる、請求項28~36のいずれかに記載のシステム。
<請求項41>
前記第一センサーが第一動作モダリティを有し、前記第二センサーが第二動作モダリティを有し、前記第二動作モダリティが前記第一動作モダリティとは異なる、請求項40に記載のシステム。
<請求項42>
前記第一センサーが第一動作モダリティを有し、前記第二センサーが第二動作モダリティを有し、前記第二動作モダリティが前記第一動作モダリティと同じである、請求項40に記載のシステム。
<請求項43>
前記第一センサーが第一サンプリングレートを有し、前記第二センサーが第二サンプリングレートであり、前記第二サンプリングレートが前記第一サンプリングレートとは異なる、請求項28~36のいずれか一項に記載のシステム。
<請求項44>
前記少なくとも1つのプロセッサによって実行されたときに、前記第一センサー及び少なくとも前記第二センサーの動作状態の評価を実行するために、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサに、
前記第一センサーから受信された情報が前記第一センサーの前記第一サンプリングレートと矛盾しないかどうかを決定させ、前記第二センサーから受信された情報が前記第二センサーの前記第二サンプリングレートと矛盾しないかどうかを決定させる、請求項43に記載のシステム。
<請求項45>
前記第一センサー及び少なくとも前記第二センサーの動作状態の評価を実行するために、前記少なくとも1つのプロセッサが、前記第一センサー及び少なくとも前記第二センサーから受信された前記情報を、前記動作環境の前記第二部分と前記第一部分との前記少なくとも部分的な重複について比較して、不一致があるかどうかを決定する、請求項28から36のいずれかに記載のシステム。
<請求項46>
不一致が存在するという決定に応答して、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、前記異常なシステムステータスが存在すると決定させ、前記不一致が解消されるまで前記少なくとも1つのロボットの移動を防止させる、請求項45に記載のシステム。
<請求項47>
不一致が存在するという決定に応答して、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、前記異常なシステムステータスが存在すると決定させ、前記不一致が存在する前記動作環境の一部を、前記不一致が解消されるまで、モーションプランニング中は遮蔽されたものとして扱わせる、請求項45に記載のシステム。
<請求項48>
前記動作環境の少なくとも第三部分において、人間が居る場合に人間の位置を検出するように配置され、方向付けられた少なくとも第三センサーであって、前記動作環境の前記第三部分は前記動作環境の前記第一部分及び前記第二部分と少なくとも部分的に重なり、前記第三センサーは前記第一センサー又は前記第二センサーのうちの少なくとも1つに関して異種である、該第三センサーをさらに含み、前記少なくとも1つのプロセッサは第三センサーからの情報を受信するようにさらに通信可能に結合され、前記少なくとも1つのプロセッサによって実行されたとき、前記プロセッサ実行可能命令は前記少なくとも1つのプロセッサに、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーから受信された前記情報の少なくとも一部に基づいて、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーの動作状態の評価を実行させる、請求項28~36のいずれかに記載のシステム。
<請求項49>
前記第一センサー、前記第二センサー、及び前記少なくとも第三センサーの動作状態の評価を実行するために、前記少なくとも1つのプロセッサが、前記第一センサー、前記第二センサー、及び少なくとも前記第三センサーの大部分の間で矛盾がないこと評価する、請求項48に記載のシステム。
<請求項50>
前記少なくとも1つのプロセッサによって実行されたとき、前記プロセッサ実行可能命令は、前記少なくとも1つのプロセッサに、
少なくとも1回、前記システムステータスが非異常なシステムステータスが存在することを示すと決定させ、
前記非異常なシステムステータスが存在するとの前記決定に応答して、前記少なくとも1つのプロセッサによって少なくとも部分的に前記ロボットの動作を制御する信号を提供させる、
請求項28~36のいずれかに記載のシステム。
<請求項51>
前記非異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御する信号を提供するために、前記少なくとも1つのプロセッサは、前記センサーのうちの少なくとも2つが互いに整合するという決定に応答して、ワークセル全体が遮蔽されるという仮定を緩和する信号を提供する、請求項50に記載のシステム。
<請求項52>
前記非異常なシステムステータスが存在するとの前記決定に応答して、少なくとも部分的に前記少なくとも1つのロボットの動作を制御する信号を提供するために、前記少なくとも1つのプロセッサは、前記少なくとも1つのロボットが移動することを可能にする、又は前記動作環境のエリアが遮蔽されたものとして表されないことを示す信号を提供する、請求項50に記載のシステム。
<請求項53>
少なくとも1つのロボットの動作を制御するプロセッサベースのロボット制御システムにおける動作方法であって、
前記プロセッサベースのロボット制御システムの少なくとも1つのプロセッサによって、プロセッサベースのワークセル安全システムによって実装される安全ルール及び動作条件の記憶されたセットにアクセスするステップであって、前記プロセッサベースのワークセル安全システムは、前記プロセッサベースのワークセル安全システムが前記ワークセル内で動作する前記少なくとも1つのロボットの動作の減速又は停止のうちの少なくとも1つをトリガするいくつかの動作条件を含む安全ルールの前記セットに基づいて、安全条件を評価する、該ステップと、
前記プロセッサベースのワークセル安全システムのための前記安全ルール及び動作条件に少なくとも部分的に基づいて、前記少なくとも1つのロボットのためのモーションプランを決定するステップと、
決定された前記モーションプランに従って、前記少なくとも1つのロボットを移動させるステップ、
を含む方法。
<請求項54>
前記プロセッサベースのワークセル安全システムのための前記安全ルール及び動作条件に少なくとも部分的に基づいて、前記少なくとも1つのロボットのためのモーションプランを決定するステップは、前記プロセッサベースのワークセル安全システムが前記少なくとも1つのロボットの動作の前記減速又は前記停止のうちの少なくとも1つをトリガする確率を少なくとも低減する、前記少なくとも1つのロボットのためのモーションプランを決定するステップを含む、請求項53に記載の方法。
<請求項55>
前記プロセッサベースのワークセル安全システムが前記少なくとも1つのロボットの動作の前記減速又は前記停止のうちの少なくとも1つをトリガする確率を少なくとも低減する、前記少なくとも1つのロボットのためのモーションプランを決定するステップは、前記プロセッサベースのワークセル安全システムの少なくとも1つの構成要素の分解能又は粒状度に基づいてモーションプランを決定するステップを含む、請求項54に記載の方法。
<請求項56>
前記プロセッサベースのワークセル安全システムが前記少なくとも1つのロボットの動作の前記減速又は前記停止のうちの少なくとも1つをトリガする確率を少なくとも低減する、前記少なくとも1つのロボットのためのモーションプランを決定するステップは、前記プロセッサベースのワークセル安全システムの少なくとも1つのセンサーの分解能又は粒状度に基づいてモーションプランを決定するステップを含む、請求項54に記載の方法。
<請求項57>
前記プロセッサベースのワークセル安全システムはレーザスキャナを使用して、フロアをグリッド状の領域に分割し、前記プロセッサベースのワークセル安全システムが前記少なくとも1つのロボットの動作の前記減速又は前記停止のうちの少なくとも1つをトリガする確率を少なくとも低減する、前記少なくとも1つのロボットのためのモーションプランを決定するステップは、前記グリッド状の領域の寸法のセットに基づいてモーションプランを決定するステップを含む、請求項54に記載の方法。
<請求項58>
前記ワークセル内の人の予測される振る舞いを決定するステップをさらに含み、前記安全システムのための前記安全ルール及び動作条件に少なくとも部分的に基づいて、前記少なくとも1つのロボットのためのモーションプランを決定するステップは、前記ワークセル内の前記人の決定された予測される振る舞いに少なくとも部分的に基づいて、前記少なくとも1つのロボットのための前記モーションプランを決定するステップを含む、請求項53に記載の方法。
<請求項59>
前記ワークセル内の人の予測される振る舞いを決定するステップは、オペレータトレーニングガイドラインのセットに基づいて、前記ワークセル内の前記人の前記予測される振る舞いを決定するステップを含む、請求項58に記載の方法。
<請求項60>
前記ワークセルを少なくとも部分的に通る人の予測軌道を決定するステップをさらに含み、前記安全システムのための前記安全ルール及び動作条件に少なくとも部分的に基づいて、前記少なくとも1つのロボットのためのモーションプランを決定するステップは、前記人の決定された予測軌道に少なくとも部分的に基づいて、前記少なくとも1つのロボットのための前記モーションプランを決定するステップを含む、請求項53に記載の方法。
<請求項61>
前記人が前記予測軌道上にいないと決定するステップと、前記人が前記予測軌道上にいないとの決定に応答して、前記ロボットの動きを減速又は停止させるステップ、をさらに含む、請求項60に記載の方法。
<請求項62>
前記プロセッサベースのロボット制御システムがセンサーのセットを含み、前記センサーのセットが前記プロセッサベースのワークセル安全システムのセンサーのセットとは別個であり、前記少なくとも1つのプロセッサによって、前記プロセッサベースのロボット制御システムの前記センサーのセットから情報を受信するステップをさらに含む、請求項53に記載の方法。
<請求項63>
少なくとも1つのロボットの動作を制御するプロセッサベースのロボット制御システムであって、
動作環境の少なくとも第一部分を監視するように配置され、方向付けられたいくつかのセンサーと、
前記いくつかのセンサーのうち第一センサー及び少なくとも第二センサーから情報を受信するように通信可能に結合された少なくとも1つのプロセッサであって、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、請求項53~62のいずれかに記載の方法を実行させる、プロセッサ実行可能命令を実行するように動作可能な、該プロセッサと、を備える、システム。
<請求項64>
実行されると、1つ又は複数のプロセッサに、請求項53~62のいずれかに記載の方法を実行させる、プロセッサ実行可能命令を記憶するプロセッサ可読媒体。
<請求項65>
少なくとも1つのロボットの動作を制御するプロセッサベースのロボット制御システムであって、プロセッサベースのワークセル安全システムが、ワークセル内で動作する前記少なくとも1つのロボットの動作の減速又は停止のうちの少なくとも1つを前記プロセッサベースのワークセル安全システムがトリガするいくつかの動作条件を含む安全ルールのセットに基づいて安全条件を評価する、プロセッサベースのロボット制御システムであって、
前記ワークセルの少なくとも第一部分を監視するように配置され、方向付けられたいくつかのセンサーと、
前記いくつかのセンサーのうちの第一センサー及び少なくとも第二センサーから情報を受信するように通信可能に結合された少なくとも1つのプロセッサであって、前記少なくとも1つのプロセッサによって実行されると、前記少なくとも1つのプロセッサに、
前記安全システムによって実施される前記安全ルール及び動作条件の記憶されたセットにアクセスするステップと、
前記安全システムのための前記安全ルール及び動作条件に少なくとも部分的に基づいて、及び前記センサーによって提供される情報に少なくとも部分的に基づいて、前記少なくとも1つのロボットのためのモーションプランを決定するステップと、
前記決定されたモーションプランに従って、前記少なくとも1つのロボットに動作させるステップ
を実行させる、プロセッサ実行可能命令を実行するように動作可能な、該少なくとも1つのプロセッサ
を含む、プロセッサベースのロボット制御システム。
<請求項66>
前記安全システムのための前記安全ルール及び動作条件に少なくとも部分的に基づいて、前記少なくとも1つのロボットのためのモーションプランを決定するために、前記少なくとも1つのプロセッサは、前記プロセッサベースのワークセル安全システムが前記少なくとも1つのロボットの動作の前記減速又は前記停止のうちの少なくとも1つをトリガする確率を少なくとも低減する、前記少なくとも1つのロボットのためのモーションプランを決定する、請求項65に記載のプロセッサベースのロボット制御システム。
<請求項67>
前記プロセッサベースのワークセル安全システムが前記少なくとも1つのロボットの動作の前記減速又は前記停止のうちの少なくとも1つをトリガする確率を少なくとも低減する、前記少なくとも1つのロボットのためのモーションプランを決定するために、前記少なくとも1つのプロセッサが、前記プロセッサベースのワークセル安全システムの少なくとも1つの構成要素の分解能又は粒状度に基づいて、モーションプランを決定する、請求項66に記載のプロセッサベースのロボット制御システム。
<請求項68>
前記プロセッサベースのワークセル安全システムが前記少なくとも1つのロボットの動作の前記減速又は前記停止のうちの少なくとも1つをトリガする確率を少なくとも低減する、前記少なくとも1つのロボットのモーションプランを決定するために、前記少なくとも1つのプロセッサが、前記プロセッサベースのワークセル安全システムの少なくとも1つのセンサーの分解能又は粒状度に基づいて、モーションプランを決定する、請求項66に記載のプロセッサベースのロボット制御システム。
<請求項69>
前記プロセッサベースのワークセル安全システムはレーザスキャナを使用して、フロアをグリッド状の領域に分割し、前記プロセッサベースのワークセル安全システムが前記少なくとも1つのロボットの動作の前記減速又は前記停止のうちの少なくとも1つをトリガする確率を少なくとも低減する、前記少なくとも1つのロボットのモーションプランを決定するために、前記少なくとも1つのプロセッサは、前記グリッド状の領域の寸法のセットに基づいてモーションプランを決定する、請求項66に記載のプロセッサベースのロボット制御システム。
<請求項70>
前記プロセッサ実行可能命令は、実行されると、前記少なくとも1つのプロセッサにさらに、
前記ワークセル内の人の予測される振る舞いを決定させ、前記安全システムのための前記安全ルール及び動作条件に少なくとも部分的に基づいて、前記少なくとも1つのロボットのためのモーションプランを決定するために、前記少なくとも1つのプロセッサは、前記ワークセル内の前記人の前記決定された予測される振る舞いに少なくとも部分的に基づいて、前記少なくとも1つのロボットのための前記モーションプランを決定させる、請求項65に記載のプロセッサベースのロボット制御システム。
<請求項71>
前記ワークセル内の人の予測される振る舞いを決定するために、前記少なくとも1つのプロセッサはオペレータトレーニングガイドラインのセットに基づいて、前記ワークセル内の前記人の前記予測される振る舞いを決定する、請求項70に記載のプロセッサベースのロボット制御システム。
<請求項72>
前記プロセッサ実行可能命令は、実行されると、前記少なくとも1つのプロセッサに、さらに
前記ワークセルを少なくとも部分的に通る人の予測軌道を決定させ、前記安全システムの前記安全ルール及び動作条件に少なくとも部分的に基づいて、前記少なくとも1つのロボットのためのモーションプランを決定するために、前記少なくとも1つのプロセッサは、前記人の前記決定された予測軌道に少なくとも部分的に基づいて、前記少なくとも1つのロボットのためのモーションプランを決定させる、請求項65に記載のプロセッサベースのロボット制御システム。
<請求項73>
前記人が前記予測軌道上にいないと決定するステップをさらに含み、
前記人が前記予測軌道上にいないとの決定に応答して、前記少なくとも1つのプロセッサは、前記ロボットの動きの減速又は停止を引き起こす、請求項72に記載のプロセッサベースのロボット制御システム。
<請求項74>
前記プロセッサベースのロボット制御システムはセンサーのセットを含み、前記センサーのセットは前記プロセッサベースのワークセル安全システムのセンサーのセットとは別個であり、前記少なくとも1つのプロセッサは、前記プロセッサベースのロボット制御システムの前記センサーのセットから情報を受信するように通信可能に結合される、請求項73に記載のプロセッサベースのロボット制御システム。