IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ソニー株式会社の特許一覧

特開2022-187584情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022187584
(43)【公開日】2022-12-20
(54)【発明の名称】情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
(51)【国際特許分類】
   G05D 1/02 20200101AFI20221213BHJP
【FI】
G05D1/02 H
G05D1/02 S
【審査請求】未請求
【請求項の数】19
【出願形態】OL
(21)【出願番号】P 2021095647
(22)【出願日】2021-06-08
(71)【出願人】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100093241
【弁理士】
【氏名又は名称】宮田 正昭
(74)【代理人】
【識別番号】100101801
【弁理士】
【氏名又は名称】山田 英治
(74)【代理人】
【識別番号】100086531
【弁理士】
【氏名又は名称】澤田 俊夫
(74)【代理人】
【識別番号】100095496
【弁理士】
【氏名又は名称】佐々木 榮二
(74)【代理人】
【識別番号】110000763
【氏名又は名称】特許業務法人大同特許事務所
(72)【発明者】
【氏名】宮川 洋
【テーマコード(参考)】
5H301
【Fターム(参考)】
5H301BB14
5H301DD06
5H301GG08
5H301GG09
5H301GG10
5H301LL06
5H301LL11
5H301LL14
5H301LL17
(57)【要約】
【課題】事前定義地図にない新たな障害物が発生した際に、ロボットの作業領域として規定されるアプローチ領域を迅速に修正可能とした装置、方法を提供する。
【解決手段】ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、事前定義地図に記録された領域であり、ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有する。アプローチ領域修正部は、事前設定アプローチ領域の内部に設定したサンプリング点について差分障害物にロボットが接触することなく作業可能であるか否かを判定して修正アプローチ領域を生成する。
【選択図】図28
【特許請求の範囲】
【請求項1】
ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
前記アプローチ領域修正部は、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理装置。
【請求項2】
前記アプローチ領域修正部は、
前記事前設定アプローチ領域の外部にはサンプリング点を設定せず、
前記事前設定アプローチ領域の内部に設定したサンプリング点が、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定する処理を実行して前記修正アプローチ領域を生成する請求項1に記載の情報処理装置。
【請求項3】
前記アプローチ領域修正部は、
前記事前設定アプローチ領域の内部に設定したサンプリング点のみに対して、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定し、
前記差分障害物に前記ロボットが接触することなく作業可能であると判定されたサンプリング点のみによって構成される領域を前記修正アプローチ領域として設定する請求項1に記載の情報処理装置。
【請求項4】
前記アプローチ領域修正部は、
前記事前設定アプローチ領域の内部に設定したサンプリング点の各々について、
前記差分障害物に前記ロボットが接触することなく、予め設定された作業対象物に対して予め設定された作業動作が可能であるか否かを判定する請求項3に記載の情報処理装置。
【請求項5】
前記事前定義地図は、
前記ロボットの走行開始前に作成された地図である請求項1に記載の情報処理装置。
【請求項6】
前記事前定義地図は、
外部装置から前記情報処理装置に入力された地図である請求項1に記載の情報処理装置。
【請求項7】
前記情報処理装置は、
前記事前定義地図を含む作業定義データを管理する作業定義データ管理部を有し、
前記アプローチ領域修正部は、
前記作業定義データ管理部から前記事前定義地図を入力し、
前記差分障害物検出部から、前記事前定義地図に存在しない新たな障害物に関する情報である差分障害物情報を入力して、
前記修正アプローチ領域を生成する請求項1に記載の情報処理装置。
【請求項8】
前記情報処理装置は、
前記事前定義地図を含む作業定義データを管理する作業定義データ管理部を有し、
前記作業定義データ管理部は、
(a)事前定義地図
(b)作業シーケンス情報
(c)作業動作情報
上記(a)~(c)各データを有する作業定義データを管理する請求項1に記載の情報処理装置。
【請求項9】
前記情報処理装置は、
前記ロボットの動作シーケンスを制御するシーケンス制御部を有し、
前記シーケンス制御部は、
前記作業定義データ管理部から入力する作業シーケンス情報に従って、前記ロボットの作業シーケンスを制御する請求項8に記載の情報処理装置。
【請求項10】
前記情報処理装置は、
前記アプローチ領域修正部が生成した修正アプローチ領域を記録した統合環境地図を生成する環境地図統合部を有する請求項1に記載の情報処理装置。
【請求項11】
前記環境地図統合部は、
前記事前定義地図と、
前記アプローチ領域修正部が生成した修正アプローチ領域を入力して、
修正アプローチ領域を記録した統合環境地図を生成する請求項10に記載の情報処理装置。
【請求項12】
前記情報処理装置は、
前記アプローチ領域修正部が生成した修正アプローチ領域を記録した統合環境地図を生成する環境地図統合部と、
前記環境地図統合部が生成した統合環境地図を用いて前記ロボットの移動経路を計画する経路計画部を有する請求項1に記載の情報処理装置。
【請求項13】
前記アプローチ領域修正部は、
過去に実行したアプローチ領域修正処理において生成した生成済み修正アプローチ領域に対して、新たに発生した差分障害物を考慮して再度、修正した再修正アプローチ領域を生成する処理を実行する構成であり、
前記アプローチ領域修正部は、
前記生成済み修正アプローチ領域の内部に設定したサンプリング点について、前記新たに発生した差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記再修正アプローチ領域を生成する請求項1に記載の情報処理装置。
【請求項14】
ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムであり、
前記ユーザ端末は、
前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
前記ロボットに装着された前記情報処理装置は、
前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
前記アプローチ領域修正部は、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理システム。
【請求項15】
前記ユーザ端末は、
(a)事前定義地図
(b)作業シーケンス情報
(c)作業動作情報
上記(a)~(c)各データを有する作業定義データを前記ロボットの前記情報処理装置に入力し、
前記ロボットの前記情報処理装置は、
上記(a)~(c)各データを有する作業定義データを利用して、前記修正アプローチ領域の生成処理と、
前記修正アプローチ領域を反映した統合環境地図の生成処理と、
前記統合環境地図を参照した前記ロボットの制御処理を実行する請求項14に記載の情報処理システム。
【請求項16】
前記ロボットの前記情報処理装置は、
前記修正アプローチ領域の生成処理において、
前記事前設定アプローチ領域の外部にはサンプリング点を設定せず、
前記事前設定アプローチ領域の内部に設定したサンプリング点が、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定する処理を実行して前記修正アプローチ領域を生成する請求項14に記載の情報処理システム。
【請求項17】
情報処理装置において実行する情報処理方法であり、
差分障害物検出部が、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出ステップと、
アプローチ領域修正部が、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正ステップを実行し、
前記アプローチ領域修正ステップは、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成するステップである情報処理方法。
【請求項18】
ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
前記ユーザ端末が、
前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
前記ロボットに装着された前記情報処理装置が、
前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出処理と、
前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正処理を実行し、
前記アプローチ領域修正処理において、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理方法。
【請求項19】
情報処理装置において情報処理を実行させるプログラムであり、
差分障害物検出部に、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出させる差分障害物検出ステップと、
アプローチ領域修正部に、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成させるアプローチ領域修正ステップを実行させ、
前記アプローチ領域修正ステップにおいては、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。具体的にはロボットに所定の動作を実行させるための制御を行う情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。
【背景技術】
【0002】
近年、様々な分野でロボットの利用が増大している。
例えば、工場では、従来、人が行っていた作業の多くをロボットが行うようになっている。
【0003】
ロボットが行なう処理は様々であるが、その一例として例えば、ある作業位置Aで作業aを行い、その後、次の作業位置Bに移動して、作業位置Bで作業bを行うといった移動と作業を繰り返し行う構成がある。
例えば作業位置Aで荷物をピックアップし、作業位置Bに移動して荷物を下ろすといった作業である。
【0004】
なお、移動体に作業用のハンド部やアーム部からなるマニピュレータを搭載したロボットとしてモバイルマニピレータがある。
モバイルマニピュレータは、移動体が移動することで、様々な作業領域で作業を行うことが可能となる。
【0005】
ロボットが複数の作業位置を移動しながら、各作業位置で作業を行う場合には、予め作業位置A,Bの各々で予定の作業が可能なロボット位置を確認し、さらにこれらの作業位置間を安全に移動するための経路を規定することが必要となる。
例えばモバイルマニピュレータの移動部が障害物で前方に進めず、ハンド部が作業対象物に届かなければ予定の作業を行うことができない。
【0006】
ロボットが各作業位置において作業可能な位置を算出するためには、作業対象となる物体に届く移動部の位置を求める逆運動学を用いた位置算出処理や、机等の障害物との干渉(接触)判定のための計算処理を行う必要があり、このための演算量は膨大となる。従ってロボットが移動しながらリアルタイムで移動経路や作業可能位置を算出することは困難である。
【0007】
このような問題を解決する手法を開示した従来技術として、例えば特許文献1(特許第6641804号公報)がある。この特許文献1は、ロボットによる作業の開始前に、ロボットが作業を行う作業位置毎に作業対象物体に対する作業可能領域を算出し、ロボットを各作業可能領域に移動して作業を実行させる構成を開示している。
【0008】
しかし、この特許文献1の手法では、予め算出した作業可能領域内に新たな障害物が置かれてしまった場合には、事前に作成した作業可能領域にロボットを移動させることができなくなり、予定作業を行うことができなくなるという問題がある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特許第6641804号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
本開示は、例えば上記問題点に鑑みてなされたものであり、予め算出した作業可能領域内に新たな障害物が置かれてしまった場合でも、障害物を考慮した新たな作業可能領域を効率的に作成して、ロボットに予定の作業を行わせることを可能とした情報処理装置、情報処理システム、および情報処理方法、並びにプログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
本開示の第1の側面は、
ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
前記アプローチ領域修正部は、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理装置にある。
【0012】
さらに、本開示の第2の側面は、
ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムであり、
前記ユーザ端末は、
前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
前記ロボットに装着された前記情報処理装置は、
前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
前記アプローチ領域修正部は、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理システムにある。
【0013】
さらに、本開示の第3の側面は、
情報処理装置において実行する情報処理方法であり、
差分障害物検出部が、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出ステップと、
アプローチ領域修正部が、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正ステップを実行し、
前記アプローチ領域修正ステップは、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成するステップである情報処理方法にある。
【0014】
さらに、本開示の第4の側面は、
ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
前記ユーザ端末が、
前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
前記ロボットに装着された前記情報処理装置が、
前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出処理と、
前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正処理を実行し、
前記アプローチ領域修正処理において、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理方法にある。
【0015】
さらに、本開示の第5の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
差分障害物検出部に、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出させる差分障害物検出ステップと、
アプローチ領域修正部に、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成させるアプローチ領域修正ステップを実行させ、
前記アプローチ領域修正ステップにおいては、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成させるプログラムにある。
【0016】
なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体によって提供可能なプログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、情報処理装置やコンピュータ・システム上でプログラムに応じた処理が実現される。
【0017】
本開示のさらに他の目的、特徴や利点は、後述する本開示の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0018】
本開示の一実施例の構成によれば、本開示の一実施例の構成によれば、事前定義地図にない新たな障害物が発生した際に、ロボットの作業領域として規定されるアプローチ領域を迅速に修正可能とした装置、方法が実現される。
具体的には、例えば、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、事前定義地図に記録された領域であり、ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有する。アプローチ領域修正部は、事前設定アプローチ領域の内部に設定したサンプリング点について差分障害物にロボットが接触することなく作業可能であるか否かを判定して修正アプローチ領域を生成する。
本構成により、事前定義地図にない新たな障害物が発生した際に、ロボットの作業領域として規定されるアプローチ領域を迅速に修正可能とした装置、方法が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
【図面の簡単な説明】
【0019】
図1】本開示の処理を実行する情報処理システムの全体構成例について説明する図である。
図2】ロボットに組み込まれた情報処理装置の一例について説明する図である。
図3】ロボットに組み込まれた情報処理装置の構成例について説明する図である。
図4】事前定義地図と、事前定義地図を利用したロボットの移動と作業シーケンスの一例について説明する図である。
図5】障害物地図作成部が生成する「障害物地図」と、環境地図統合部が生成する「統合環境地図」の例について説明する図である。
図6】ユーザ端末の構成例について説明する図である。
図7】ユーザがユーザ端末に入力する作業定義データ生成用の情報の例について説明する図である。
図8】作業定義データ管理部が、アプローチ領域生成部と事前定義地図生成部とともに生成する「事前定義地図」の具体例について説明する図である。
図9】作業定義データ管理部が生成する「作業シーケンス情報」の具体例について説明する図である。
図10】作業シーケンスに従ったロボットの動作イメージの具体例について説明する図である。
図11】作業定義データ管理部が生成する「作業動作情報」の具体例について説明する図である。
図12】アプローチ領域生成部が実行するアプローチ領域生成処理の具体例について説明する図である。
図13】各サンプリング点の判定処理によって決定されたアプローチ領域の具体例について説明する図である。
図14】ユーザ端末のアプローチ領域生成部が実行するアプローチ領域生成処理の処理シーケンスの一例について説明するフローチャートを示す図である。
図15】ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。
図16】ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。
図17】ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。
図18】ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。
図19】ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。
図20】ユーザ端末のアプローチ領域生成部が実行する処理の具体例について説明する図である。
図21】作業シーケンスに従ったロボットの動作イメージの具体例について説明する図である。
図22】「差分障害物(新規障害物)」が検出された場合、「事前定義地図」上の事前設定アプローチ領域が作業を実行できない領域になる具体例について説明する図である。
図23】アプローチ領域修正部が実行するアプローチ領域の修正の具体例について説明する図である。
図24】アプローチ領域修正部が実行するアプローチ領域の修正の具体例について説明する図である。
図25】アプローチ領域修正部が実行するアプローチ領域の修正処理のシーケンスについて説明するフローチャートを示す図である。
図26】アプローチ領域修正部が実行するアプローチ領域の修正の具体例について説明する図である。
図27】アプローチ領域修正部が実行するアプローチ領域の修正の具体例について説明する図である。
図28】作業シーケンスに従った作業を実行する場合のロボットの動作例の具体例について説明する図である。
図29】本開示の情報処理装置のハードウェア構成例について説明する図である。
【発明を実施するための形態】
【0020】
以下、図面を参照しながら本開示の情報処理装置、情報処理システム、および情報処理方法、並びにプログラムの詳細について説明する。なお、説明は以下の項目に従って行なう。
1.本開示の処理を実行する情報処理システムの全体構成例について
2.情報処理装置およびユーザ端末の構成について
3.ユーザ端末における作業定義データ生成処理の詳細について
4.アプローチ領域生成処理の処理シーケンスについて
5.作業定義データに基づくロボットの動作の詳細について
6.ロボットの情報処理装置のアプローチ領域修正部が実行するアプローチ領域修正処理の処理シーケンスについて
7.ロボットの情報処理装置が生成した修正アプローチ領域を反映した環境地図を用いたロボットによる作業シーケンスについて
8.本開示の情報処理装置のハードウェア構成例について
9.本開示の構成のまとめ
【0021】
[1.本開示の処理を実行する情報処理システムの全体構成例について]
まず、図1を参照して本開示の処理を実行する情報処理システムの全体構成例について説明する。
本開示の処理を実行する情報処理システムは、図1に示すように、ロボット10と、ユーザ20が操作するユーザ端末30を有するシステムである。
【0022】
ロボット10は、例えば車輪等を有し、床面を走行して移動する移動部11と、作業対象となる物体等を操作するアーム部12とハンド部13を有する。すなわち、移動部11に作業用のアーム部12やハンド部13からなるマニピュレータを搭載したモバイルマニピレータ型のロボットである。
【0023】
モバイルマニピュレータ型のロボット10は移動することで、様々な作業領域で作業を行うことが可能となる。
なお、ロボット10内部には、ロボット10の制御や、外部との通信等を行うための情報処理装置が組み込まれている。
この情報処理装置の詳細構成については後述する。
【0024】
ユーザ端末30は、ロボット10の使用者が、ロボット10に行わせる作業や、ロボット10を使用する環境(部屋の構造など)の情報を入力するために使用する。
また、ロボットに対する作業の開始や停止などの指示操作や、ロボットの状態表示も、ユーザ端末10を介して行うことができる。
【0025】
ユーザ端末30は、具体的には、例えばタブレット型端末や、スマホや、PC等、様々な情報処理装置によって構成可能である。
ロボット10とユーザ端末30は通信可能な構成である。
【0026】
なお、ユーザ端末30を利用して実行する処理やユーザ端末30の機能をロボット10内部の情報処理装置に全て組み込んだ構成も可能であり、この場合はユーザ端末30を用いずにロボット10単独で本開示の処理を実行することが可能となる。
【0027】
前述したように、ロボット10内部には、ロボット10の制御や、外部との通信等を行うための情報処理装置が組み込まれている。
例えば図2に示すように、情報処理装置100がロボット10内部に組み込まれている。
【0028】
[2.情報処理装置およびユーザ端末の構成について]
次にロボット10内部の情報処理装置とユーザ端末の構成について説明する。
【0029】
図2を参照して説明したように、ロボット10の内部には情報処理装置100が組み込まれている。
図3を参照してこの情報処理装置100の構成例について説明する。
【0030】
図3に示すように、情報処理装置100は、センサ101、自己位置推定部102、障害物地図作成部103、作業定義データ管理部104、事前定義地図管理部105、差分障害物検出部106、アプローチ領域修正部107、環境地図統合部108、通信IIF111、ロボット操作UI112、ロボット制御部113、シーケンス制御部114、移動部経路計画部121、移動部制御部122、ロボットアーム経路計画部123、ロボットアーム制御部124を有する。
【0031】
センサ101は、ロボット周囲の障害物などの周囲環境を検知するためのセンサであり、例えば、カメラやLiDAR(Light Detection and Ranging)等によって構成される。
なお、センサ101は、カメラ、LiDARに限らず、これらの他のセンサを備えた構成としてもよい。例えば、ToFセンサ、超音波センサ、レーダ、ソナー等を備えた構成でもよい。
【0032】
自己位置推定部102は、センサ101から取得した情報等を利用して、ロボット10の現在位置を推定する。
なお、自己位置推定部102による自己位置推定処理は、センサ101からの取得情報の他、IMU、車輪の回転角度などの情報、外部カメラの情報などを利用した処理として実行してもよい。
【0033】
自己位置算出部102は、例えば、SLAM(simultaneous localization and mapping)処理を適用した自己位置推定を行う。
SLAM処理は、カメラで画像(動画像)を撮影し、複数の撮影画像に含まれる特徴点の軌跡を解析することで、特徴点の3次元位置を推定するとともに、カメラ(自己)の位置姿勢を推定(ローカリゼーション)する処理であり、特徴点の3次元位置情報を用いて周囲の地図(環境地図)を作成(mapping)することができる。
【0034】
障害物地図作成部103は、例えば、センサ101によって得られた周囲情報や、自己位置推定部102が算出したロボット10の現在位置情報を利用してロボット10の周囲に存在する障害物の配置位置を示す地図である「障害物地図」を作成する。
障害物地図作成部103は、例えば占有格子地図(Occupancy Grid Map)のような「障害物地図」を作成する。
【0035】
占有格子地図(グリッドマップ)は、格子によって規定される各区画(グリッド)内に障害物が存在する確率値を設定した地図である。
ロボット10は、占有格子地図(グリッドマップ)の区画中、障害物の存在する確率の低い区画(グリッド)を走行ルートとして選択して走行することで障害物に衝突することなく安全に走行することができる。
【0036】
事前定義地図管理部105は、作業定義データ管理部104から「事前定義地図」を取得し、取得した「事前定義地図」を差分障害物検出部106、アプローチ領域修正部107、環境地図統合部108に提供する。
【0037】
なお、作業定義データ管理部104が管理する作業定義データには以下のデータが含まれる。
(1)事前定義地図
(2)作業シーケンス情報
(3)作業動作情報
これらのデータの詳細については後段で説明する。
【0038】
「事前定義地図」とは、ロボット10が走行する走行環境内の障害物位置や、ロボット10が作業領域においてアーム部12やハンド部13を駆動して作業を安全に実行可能であると判定された作業可能領域である「アプローチ領域」を規定した地図である。
なお、「事前定義地図」とは、ロボット10の走行開始前、すなわち事前に作成される地図である。
【0039】
「事前定義地図」は、例えばユーザ20がユーザ端末30を用いて作成して、ユーザ端末30からロボット10の情報処理装置100に送信される。ユーザ端末30からの送信データは、通信IF111、ロボット制御部113を介して作業定義データ管理部104に入力され、作業定義データ管理部104内の記憶部、あるいは作業定義データ管理部104がアクセス可能な記憶部内に格納される。
なお、「事前定義地図」は、ユーザ20が、直接ロボット操作UI112を介して入力してもよい。
【0040】
図4(1a)に「事前定義地図」の一例を示す。
図4(1a)に「事前定義地図」には2つの障害物と、障害物各々の近傍に設定された「事前設定アプローチ領域」が記録されている。なお、「事前定義地図」に記録された「アプローチ領域」を「事前設定アプローチ領域」と呼ぶ。
【0041】
図4(1b)は、図4(1a)に示す「事前定義地図」を利用したロボット10の移動と作業シーケンスの例を示す図である。
ロボット10はスタート地点(S)から移動を開始して、「事前設定アプローチ領域AX」に到達すると、「事前設定アプローチ領域AX」内で作業対象Xに対する作業を行う。例えば作業対象Xの把持処理や移動処理などの作業を実行する。
【0042】
この作業が終了すると、ロボット10は、次の作業領域に移動する。すなわち、「事前定義地図」に記録されている「事前設定アプローチ領域AY」に移動する。「事前設定アプローチ領域AY」に到達すると、「事前設定アプローチ領域AY」内で作業対象Yに対する作業を行う。例えば作業対象Yの把持処理や移動処理などの作業を実行する。その後ゴール地点(G)に移動して処理を終了する。
【0043】
このように、「アプローチ領域」とは、ロボット10がアーム部12やハンド部13を駆動して作業を実行する領域であり、「事前定義地図」に記録された「アプローチ領域」を「事前設定アプローチ領域」と呼ぶ。
【0044】
図4(1b)に示すように、ロボット10は、移動部11を利用した移動処理により「事前設定アプローチ領域AX」に移動し、この「事前設定アプローチ領域AX」で、アーム部12やハンド部13を駆動して例えば1つの作業対象Xの把持などの作業を行う。
その後、「事前設定アプローチ領域AY」に移動し、この「事前設定アプローチ領域AY」で、別の作業、例えば作業対象Yの把持などの作業を行う。
【0045】
このように、「アプローチ領域」は、ロボット10が障害物に衝突や接触することなく予定の作業を実行可能な領域として規定される領域であり、事前に作成される「事前定義地図」には、ロボット10が障害物に衝突や接触することなく予定の作業を実行可能な領域である「事前設定アプローチ領域」が記録される。
【0046】
上述したように、事前定義地図管理部105は、作業定義データ管理部104から「事前定義地図」を取得し、取得した「事前定義地図」を差分障害物検出部106、アプローチ領域修正部107、環境地図統合部108に提供する。
「事前定義地図」には、ロボット10が走行する走行環境内の障害物位置や、ロボット10が作業領域においてアーム部12やハンド部13を駆動して作業を安全に実行可能であると判定された作業可能領域である「事前設定アプローチ領域」が記録されている。
【0047】
しかし、「事前定義地図」はロボット10走行前に作成される地図であり、「事前定義地図」の作成後に新たな障害物が置かれた場合、「事前設定アプローチ領域」内であっても、ロボット10が作業を行えなくなる場合が発生する。
【0048】
これに対して、前述した障害物地図作成部103が作成する「障害物地図」は、ロボット10のセンサ101によって得られた周囲情報や、自己位置推定部102が算出したロボット10の現在位置情報を利用した地図であり、ロボット10周囲の最新の障害物情報を含む地図となる。
【0049】
差分障害物検出部106は、事前に作成された「事前定義地図」と、ロボット10周囲の最新の障害物情報を含む「障害物地図」を比較し、「事前定義地図」に存在しない新たな障害物を「差分障害物」として検出する。
【0050】
アプローチ領域修正部107は、以下の各情報を入力する。
(a)事前定義地図管理部105から「事前定義地図」、
(b)差分障害物検出部106が検出した「事前定義地図」に存在しない新たな障害物である「差分障害物」情報、
アプローチ領域修正部107は、これらの入力情報を利用して、「事前定義地図」上に定義された「事前設定アプローチ領域」の修正処理を行う。
具体的には、差分障害物検出部106が検出した「事前定義地図」に存在しない新たな障害物である「差分障害物」を考慮した「修正アプローチ領域」を生成する。
【0051】
環境地図統合部108は、以下の各情報を入力する。
(a)事前定義地図管理部105から「事前定義地図」、
(b)障害物地図作成部103から「障害物地図」、
(c)アプローチ領域修正部107から、「修正アプローチ領域情報」と「差分障害物情報」
環境地図統合部108は、これらの入力情報を利用して「統合環境地図」を作成する。
すなわち最新の障害物の位置と、「事前定義地図」に記録された「事前設定アプローチ領域」を最新の障害物の位置に基づいて修正した「修正アプローチ領域」を記録した「統合環境地図」を作成する。
【0052】
図5を参照して、障害物地図作成部103が生成する「障害物地図」と、環境地図統合部108が生成する「統合環境地図」の例について説明する。
図5(2a)は、障害物地図作成部103が生成する「障害物地図」の一例を示す図である。
図5(2a)に示す「障害物地図」は、先に図4(1a)を参照して説明した「事前定義地図」と同じ場所の地図である。
【0053】
図4(1a)を参照して説明した「事前定義地図」はロボット10の走行前に作成された地図であるのに対し、図5(2a)に示す「障害物地図」は、ロボット10のセンサによる取得情報に基づいて作成された最新の障害物位置を反映した地図である。
図5(2a)に示す「障害物地図」には、先に図4(1a)を参照して説明した「事前定義地図」に含まれていない新規な「差分障害物」が含まれる。
この「差分障害物」は、「事前定義地図」の作成時には存在しなかった障害物であり、「障害物地図」作成時に新たに検出された障害物である。
【0054】
図4(1a)を参照して説明した「事前定義地図」には、ロボット10が作業可能な領域である「事前設定アプローチ領域」が記録されているが、「事前定義地図」に記録されている「事前設定アプローチ領域」は、新規の「差分障害物」の存在を考慮していない領域である。
【0055】
環境地図統合部108は、事前定義地図」に記録されている「事前設定アプローチ領域」を、「差分障害物(新規障害物)」を考慮して修正し、「修正アプローチ領域」を記録した「統合環境地図」を作成する。
すなわち、図5(2b)に示すような「統合環境地図」を作成する。
【0056】
環境地図統合部108は、
(a)事前定義地図管理部105から「事前定義地図」、
(b)障害物地図作成部103から「障害物地図」、
(c)アプローチ領域修正部107から、「修正アプローチ領域情報」と「差分障害物情報」
これらの入力情報を利用して、「事前定義地図」に記録された「事前設定アプローチ領域」を最新の障害物の位置に基づいて修正した「修正アプローチ領域」を記録した「統合環境地図」、すなわち、図5(2b)に示すような「統合環境地図」を作成する。
【0057】
図5(2b)に示す「統合環境地図」に記録された「修正アプローチ領域」は、既存の障害物や、差分障害物(新規障害物)に接触することなくロボット10が予定の作業を実行可能な作業領域として規定される。
なお、具体的なアプローチ領域の生成処理、修正処理については、後段で説明する。
【0058】
図3に戻り、情報処理装置100の構成についての説明を続ける。
シーケンス制御部114は、作業定義データに定義された作業シーケンスに基づいて、ロボット10の移動部11と、アーム部12、ハンド部13を動かし、その進捗を管理し、シーケンス制御を行う。
【0059】
移動部経路計画部121は、シーケンス制御部114からの指示に従い、ロボット10の移動部11を指示位置へ移動させる。
移動部経路計画部121は、環境地図統合部108が生成した「統合環境地図」と、自己位置推定部102で推定された自己位置を基に、シーケンス制御部114が指示するロボット10の移動経路上の経由点や、各作業位置での作業可能領域であるアプローチ領域を、障害物を回避しながら走行可能な経路情報(走行ルート情報)を生成し、生成した経路情報を移動体制御部122に出力する。
【0060】
なお、環境地図統合部108は、ロボット10の走行中にセンサ101が新たな障害物を検知した場合は、遂次「統合環境地図」を更新する。すなわち、新たな障害物と、その新たな障害物の位置に応じて修正した「修正アプローチ領域」を記録した「統合環境地図」を更新する。
【0061】
移動部経路計画部121は、環境地図統合部108において「統合環境地図」の更新がなされた場合は、その更新された最新の「統合環境地図」を用いて経路情報(走行ルート情報)を更新し、更新した経路情報を移動体制御部122に出力する。
【0062】
移動体制御部122は、移動体経路計画部121が生成した経路情報(走行ルート情報)と、自己位置推定部102で推定されたロボット10の自己位置に基づいて、経路情報(走行ルート情報)に従ってロボット10を移動させるように、ロボットの移動部11を制御する。例えば移動部11の車輪を駆動するモータドライバなどの制御を実行する。
【0063】
ロボットアーム経路計画部123は、シーケンス制御部114からの指示に従い、指示された作業を行うためのロボット10のアーム部12やハンド部13の経路(軌跡)を計画し、生成した経路(軌跡)をロボットアーム制御部124に出力する。
【0064】
ロボットアーム制御部124は、ロボットアーム経路計画部123が生成したロボット10のアーム部12やハンド部13の経路(軌跡)を用いてロボット10のアーム部12やハンド部13が動くように、ロボット10のアーム部やハンド部13の関節等の駆動部を駆動する。例えばロボット10のアーム部やハンド部13の関節等のモータドライバを制御する。
【0065】
通信IF111は、外部装置、例えばユーザ端末30と通信を行い、ユーザ20がユーザ端末30で作成した作業定義データや、ユーザ端末30から入力したロボット操作情報を受信する。また、ロボット10の状態や、ロボット10の作業の進行状況などをユーザ端末30に送信してもよい。
【0066】
ロボット操作UI112は、ロボット10本体に搭載されたタッチパネル等によって構成されたユーザインタフェースである。ロボット10の状態や、ロボット10が外部から受信している作業定義データの一覧等を表示し、作業の選択や、作業の開始、停止などの指示を入力する。また、ロボット10の作業の進行状況を表示してもよい。
【0067】
ロボット制御部113は、ロボット操作UI112、もしくは通信I/F111を介してユーザ端末30等の外部装置から入力する指示データを入力して、作業定義データ管理部104やシーケンス制御部114に必要情報を転送する処理や、ロボット10全体の制御処理を実行する。
【0068】
なお、上述した説明では、差分障害物検出部106は、「事前定義地図」にない新たな障害物を検出し、環境地図統合部108は、新たな障害物を考慮して「修正アプローチ領域」を記録した「統合環境地図」を生成するものとして説明した。
【0069】
差分障害物検出部106は、「事前定義地図」にない新たな障害物のみならず、例えば「事前定義地図」に記録されている既存障害物の移動なども検出してもよい。
アプローチ領域修正部107は、新たな障害物のみならず既存障害物の移動位置も考慮して「修正アプローチ領域」を決定する。この場合、環境地図統合部108は、新たな障害物のみならず既存障害物の移動位置も考慮して修正された「修正アプローチ領域」を記録した「統合環境地図」を生成する。
【0070】
さらに、差分障害物検出部106は、作業対象物の位置の変化なども検出する構成としてもよい。
アプローチ領域修正部107は、作業対象物の位置変化を考慮して「修正アプローチ領域」を決定する。この場合、環境地図統合部108は、作業対象物の位置変化を考慮して修正された「修正アプローチ領域」を記録した「統合環境地図」を生成する。
【0071】
このように、差分障害物検出部106は、障害物のみならず、「事前定義地図」と異なる様々な環境変化について検出し、アプローチ領域修正部107は、差分障害物検出部が検出した様々な環境変化を考慮して「修正アプローチ領域」を決定することが可能である。
この場合、環境地図統合部108は、様々な環境変化を考慮して修正された「修正アプローチ領域」を記録した「統合環境地図」を生成する。
【0072】
次に、図6を参照してユーザ端末30の構成例について説明する。
前述したように、ユーザ端末30は、例えばタブレット端末、スマホ、PC等の様々な情報処理装置によって構成される。
ユーザ端末30は、ロボット10を操作するUIとしての機能と、ロボット10に行わせる作業を定義する作業定義データの作成UIとしての機能を有する。
【0073】
図6に示すように、ユーザ端末30は、ユーザインタフェース(UI)201、ユーザインタフェース(UI)制御部202、ロボット操作情報管理部203、作業定義データ管理部204、アプローチ領域生成部205、事前定義地図生成部206、作業定義データ記憶部207、通信IF208を有する。
【0074】
ユーザインタフェース(UI)201は、例えばユーザ端末30に対するユーザ操作情報の入力処理やデータ表示処理が可能なタッチパネル型表示部によって構成される。
ユーザインタフェース(UI)制御部202の制御によって様々なデータが表示される。
またユーザ20は、ロボット10の制御に利用可能な様々な情報、例えば作業シーケンス情報や、走行経路情報などを入力することができる。
【0075】
ユーザインタフェース(UI)201にユーザが入力した情報は、ユーザインタフェース(UI)201を介して、ユーザインタフェース(UI)制御部202に出力される。
【0076】
ユーザインタフェース(UI)制御部202は、ユーザ20が入力した情報に応じてユーザインタフェース(UI)201に表示する内容を切り替える。
また、ユーザインタフェース(UI)制御部202は、ユーザ20によるユーザインタフェース(UI)201に対する入力情報をロボット操作情報管理部203や、作業定義データ管理部204に出力する。
【0077】
ロボット操作情報管理部203は、例えば通信IF208を介してロボット10の情報処理装置100から入力されるロボット10の状態や、ロボット10が受信している作業定義データの一覧、作業中の作業の進行状況などを取得し、ユーザインタフェース(UI)201への表示内容を生成し、ユーザインタフェース(UI)制御部202に出力する。
【0078】
また、ロボット操作情報管理部203は、ユーザインタフェース(UI)制御部202を介してユーザによる入力情報を受け取ると、通信IF208を介してユーザ入力情報をロボット10に送信する。ユーザ入力情報は、例えばロボット10が実行する作業の選択情報や、作業の開始・停止などの指示データである。
【0079】
作業定義データ管理部204は、作業定義データ作成用UIを生成して、ユーザインタフェース(UI)制御部202を介してユーザインタフェース(UI)201に出力し、ユーザ20が、作業定義データ作成用UIを利用して入力した作業定義データを取得し、作業定義データ記憶部207に格納するとともに、通信IF208を介してロボット10の情報処理装置100に送信する。
【0080】
なお、ユーザ20がユーザインタフェース(UI)201を介して入力する作業定義データ生成用情報は例えば図7に示すような情報である。すなわち、以下の情報である。
(1)障害物情報=ロボットが作業する空間に存在する障害物の設定情報
(2)経由点情報=ロボットが移動する際に通過する経由点の設定情報
(3)作業対象情報=ロボットが作業を行う対象の位置、もしくは領域の設定情報
(4)作業動作情報=作業対象物体に対してロボットが行う作業に必要となるアーム部やハンド部の動作の設定情報
(5)作業シーケンス情報=ロボットの移動や作業動作などの一連の流れについての設定情報
【0081】
作業定義データ管理部204は、例えば上記(1)~(5)の作業定義データ生成用情報を入力するために利用可能なUIを、ユーザインタフェース(UI)制御部202を介してユーザインタフェース(UI)201に出力する。
【0082】
さらに、作業定義データ管理部204は、ユーザインタフェース(UI)201を介してユーザが入力した情報に従って、アプローチ領域生成部205と事前定義地図生成部206とともに作業定義データを生成し、生成した作業定義データを作業定義データ記憶部に格納するとともに、通信IF208を介してロボット10の情報処理装置100に送信する。
【0083】
なお、作業定義データ管理部204が、アプローチ領域生成部205と事前定義地図生成部206とともに生成する作業定義データは、以下のデータを含むデータである。
(1)事前定義地図
(2)作業シーケンス情報
(3)作業動作情報
これらのデータの詳細については後段で説明する。
【0084】
アプローチ領域生成部205は、作業定義データ管理部204を介してアプローチ領域の生成に必要となるユーザ入力情報を入力し、各作業領域に対応する「事前設定アプローチ領域」を決定する。ユーザが入力した作業対象の位置・領域や、作業動作と、障害物情報を用いて、障害物にロボット10が干渉(接触)せずに作業対象物に対する予定の作業を行うことが可能な領域を「事前設定アプローチ領域」として生成する。
【0085】
事前定義地図生成部206は、「事前定義地図」を生成する。
事前定義地図生成部206は、「事前定義地図」の生成に必要となる情報を、作業定義データ管理部204を介して入力して「事前定義地図」を生成する。例えばユーザインタフェース(UI)201を介して入力したユーザ設定情報に含まれる障害物位置情報や経由点情報、さらに、アプローチ領域生成部205が生成した「事前設定アプローチ領域」情報などを入力して、「事前定義地図」を生成する。
【0086】
作業定義データ管理部204は、ユーザインタフェース(UI)201を介して入力したユーザ設定情報、すなわち図7を参照して説明したユーザ設定情報と、事前定義地図生成部206が生成した「事前定義地図」を含む作業定義データを作業定義データ記憶部207に格納するとともに、通信IF208を介してロボット10の情報処理装置100に送信する。
【0087】
なお、本実施例ではユーザ端末30内でアプローチ領域の生成や、「事前定義地図」の生成処理を実行しているが、これらの処理は、通信IF208を介して外部のサーバに依頼してもよい。
【0088】
作業定義データ記憶部207は、作業定義データ管理部204の指示に従い、作業定義データ管理部204が生成した作業定義データを記憶する。なお、作業定義データには図7を参照して説明したユーザ設定情報と、事前定義地図生成部206が生成した「事前定義地図」が含まれる。
作業定義データ記憶部207は、具体的には、例えば、フラッシュメモリなどの不揮発性記憶部によって構成される。
【0089】
通信IF208は、ロボット10の情報処理装置100と通信を行い、ユーザ20がユーザ端末30において作成した作業定義データや、ユーザ端末30上のUI201を利用して行った入力情報や操作情報を送信する。また、ロボット10の情報処理装置100からロボット状態情報や、作業進行状況などの情報を受信する。受信情報は、ロボット操作情報管理部203を介してユーザインタフェース(UI)201に出力表示される。
【0090】
なお、前述したように、ユーザ端末30の機能をロボット10内部の情報処理装置に全て組み込んだ構成も可能である。この場合、図6に示す構成はロボット10の情報処理装置100内に構成されることになる。
このような構成とした場合、ユーザ端末30を用いずにロボット10単独で本開示の処理が実行される。
【0091】
先に説明したように、作業定義データ管理部204が、アプローチ領域生成部205と事前定義地図生成部206とともに生成する作業定義データは、以下のデータを含むデータである。
(1)事前定義地図
(2)作業シーケンス情報
(3)作業動作情報
以下、これらのデータの詳細について説明する。
【0092】
まず、図8を参照して、作業定義データ管理部204が、アプローチ領域生成部205と事前定義地図生成部206とともに生成する「事前定義地図」の具体例について説明する。
なお、図8に示す例は、2次元(2D)地図であるが、3次元(3D)地図としてもよい。また、グリッドマップやボクセルマップのような格子状のマップを用いてもよい。また、各領域を囲む形状の頂点情報のみ持つようなベクター形式のマップでもよい。
【0093】
「事前定義地図」は、前述したように、ロボット10の作業空間にある障害物の情報や、ユーザの指示した作業を障害物に接触することなく実行可能な作業領域である「事前設定アプローチ領域」が記録された地図である。
さらに、ユーザにより指定されたロボットの経由点情報や、作業対象情報等も記録されることになる。
【0094】
図8に示すように、「事前定義地図」には、経由点A~Gが記録されている。これらの経由点A~Gはユーザが入力した情報であり、ロボット10をA~Gの順に移動させることを指定した情報である。経由点Aがスタート位置であり、経由点Gがゴール位置になる。
経由点は、ロボットが空間を移動するにあたり、通るべきルートを指定するために設定する。地図の移動可能な領域(障害物領域ではないところ)に設定される。
【0095】
なお、図8に示す地図上では経由点A~Gを点として示しているが、地図に付属する属性データには各点の位置情報が記録されている。
【0096】
「事前定義地図」には、さらに、作業対象情報が記録される。図8に示す例では作業対象X、作業対象Y、これら2つの作業対象が記録されている。
【0097】
なお、図8に示す地図には作業対象X,Yとして円柱状の図形が示されているが、地図に付属する属性データには各作業対象の位置情報や領域情報、3次元形状情報等が記録されている。
【0098】
作業対象の位置情報や領域情報は、ロボット10がアーム部12やハンド部13を用いて作業を行う物体の置かれている位置や領域を示す情報である。
また、作業対象物体が複数、置かれている場合や、作業物体が位置決めされていない場合は、作業対象物体の置かれる範囲を領域情報として記録する。
【0099】
障害物は、ロボット10が接触、衝突する可能性のある障害物である。なお、図8に示す地図には障害物として平面状の図形を示しているが、地図に付属する属性データには各障害物の位置、領域情報、3次元形状情報等が記録されている。
【0100】
例えば、机や棚などの物理的な障害物の他、ロボットの進入を禁止したい領域についても障害物として設定することができる。なお、2Dで表現しても、高さ情報と合わせて3Dで表現してもよい。
なお、障害物領域は、ロボット10の移動部11のみが進入できない領域であり、ロボット10のアーム部12は進入可能な領域である。ただし、必要に応じて、ロボット10のアーム部12は進入可能な領域であっても障害物領域として設定することは可能である。
【0101】
「アプローチ領域」は、ユーザの指示した作業を障害物に接触することなく実行可能な作業領域として規定される領域であり、各作業対象X,Yに対応して個別に設定される。なお、前述したように、「事前定義地図」に規定される「アプローチ領域」は、「事前設定アプローチ領域」である。
先に図5等を参照して説明したように、「事前設定アプローチ領域」は、ロボット10のセンサ検出情報を用いて生成される「障害物地図」を用いて修正される場合がある。
【0102】
なお、図8に示すアプローチ領域は楕円状の形状となっているが、ロボットアームの運動学を反映した、より複雑な形状を有していてもよい。
また、アプローチ領域を生成する際にサンプリング点を生成している場合、そのサンプリング点に関する情報を合わせて保持してもよい。
なお、サンプリング点を利用したアプローチ領域の生成手法については後段で説明する。
【0103】
次に、図9を参照して、作業定義データ管理部204が生成する「作業シーケンス情報」の具体例について説明する。
作業定義データ管理部204は、ユーザの入力情報、すなわち先に図7を参照して説明したユーザの入力情報中の「(5)作業シーケンス情報」に従って、作業定義データとしての「作業シーケンス情報」を生成する。
【0104】
図9に示すように、作業定義データ管理部204が生成する「作業シーケンス情報」は、ロボット10に実行させる移動処理や作業を時系列に並べた情報である。
時系列順のシーケンスNo.に対応させてロボット10に実行させる移動処理や作業情報を記録している。
【0105】
図9に示す「作業シーケンス情報」は、地点Aに待機しているロボットに、作業対象Xに対して作業した後、移動して作業対象Yに対して作業を行い、その後地点Gに移動するシーケンスを記録したものである。
【0106】
この作業シーケンスに従ったロボットの動作イメージは図10に示すものとなる。
図10に示すように、ロボット10は、経由点Aから経由点Bに移動し、作業対象X対応のアプローチ領域AXに侵入する。その後、ロボット10は、アプローチ領域AX内で作業対象Xに対する予定の作業(P)を実行する。予定作業(P)の完了後、経由点C,Dを通過して、作業対象Y対応のアプローチ領域AYに侵入する。その後、ロボット10は、アプローチ領域AY内で作業対象Yに対する予定の作業(Q)を実行する。予定作業(Q)の完了後、経由点E,F,Gを順次移動してシーケンスを終了する。
図9に示す作業シーケンスに従ったロボット10の動作シーケンスはこのようなものとなる。
【0107】
次に、図11を参照して、作業定義データ管理部204が生成する「作業動作情報」の具体例について説明する。
【0108】
作業定義データ管理部204は、ユーザの入力情報、すなわち先に図7を参照して説明したユーザの入力情報中の「(4)作業動作情報」に従って、作業定義データとしての「作業動作情報」を生成する。
【0109】
「作業動作情報」は、作業対象物体に対してロボットが行う作業に必要となるアーム部やハンド部の動作の設定情報である。
作業定義データ管理部204が生成する「作業動作情報」の具体例を図11に示す。
【0110】
図11に示すように、作業定義データ管理部204が生成する「作業動作情報」は、ロボット10がアプローチ領域に到達し、作業対象物体に対する作業を行う際、予定の作業を行う場合のロボット10のアーム部12の軌道やハンド部13の向きや状態(Open/Close)を記述したデータである。
【0111】
例えば先に図10を参照して説明した作業対象Xに対する作業Pや、作業対象Yに対する作業Qを行うためのロボット10のアーム部12の軌道やハンド部13の向きや状態(Open/Close)を記述する。
【0112】
このように、ユーザ端末30の作業定義データ管理部204は、アプローチ領域生成部205と事前定義地図生成部206とともに以下のデータ、すなわち、
(1)事前定義地図
(2)作業シーケンス情報
(3)作業動作情報
これらのデータを含む「作業定義データ」を生成し、作業定義データ記憶部207に格納するとともに、ロボット10の情報処理装置100に送信する。
【0113】
ロボット10の情報処理装置100は、ユーザ端末30から受信する上記(1)~(3)のデータを含む「作業定義データ」に従って、ロボット10に所定の動作、すなわち移動処理、作業処理を実行させる。
【0114】
[3.ユーザ端末における作業定義データ生成処理の詳細について]
次に、ユーザ端末30における作業定義データ生成理の詳細について
【0115】
上述したように、「作業定義データ」、すなわち、
(1)事前定義地図
(2)作業シーケンス情報
(3)作業動作情報
これらのデータを含む「作業定義データ」の生成処理は、ユーザ端末30において、ユーザ入力情報を用いて実行される。
【0116】
以下では、この作業定義データ生成処理の詳細について説明する。
ユーザ端末30では、「作業定義データ」の生成処理に際して以下の各情報の生成処理を行う。
(1)障害物情報の生成処理
(2)作業対象情報の生成処理
(3)経由点情報の生成処理
(4)作業動作情報の生成処理
(5)アプローチ領域情報の生成定処理
(6)作業シーケンス情報の生成処理
以下、これら各情報の生成処理の具体例について、順次、説明する。
【0117】
(1)障害物情報の生成処理
まず、ユーザ端末30における障害物情報の生成処理の具体例について説明する。
ユーザ20は、ユーザ端末30の画面を障害物設定モードにし、画面上で、障害物の位置を示す座標を指定し、障害物の形状に相当する長方形や直方体、円などの形状を描画する。
【0118】
あるいは、ロボット10を作業空間内で事前に動かし、その際にロボット10の障害物地図作成部103が生成した「障害物地図」をユーザ端末30に転送して、ユーザ端末30内で「障害物地図」に記録された障害物を抽出して障害物情報として使用してもよい。
【0119】
(2)作業対象情報の生成処理
次にユーザ端末30における作業対象情報の生成処理の具体例について説明する。
ユーザ20は、ユーザ端末30の画面を作業対象物設定モードにし、画面上で作業対象物の位置を示す座標を指定する。
【0120】
なお、作業対象物の位置を示す座標は、作業対象物中、ロボット10のハンド部13が掴む位置を指定する。また、作業対象物の形状に相当する長方形や直方体、円などの形状を描画してもよい。
【0121】
(3)経由点情報の生成処理
次にユーザ端末30における経由点情報の生成処理の具体例について説明する。
ユーザ20は、ユーザ端末30の画面を経由点入力モードにし、画面上で経由点の位置を示す座標を指定する。
また、経由点に名前を付けてもよい。
【0122】
(4)作業動作情報の生成処理
次にユーザ端末30における作業動作情報の生成処理の具体例について説明する。
作業動作情報は、先に図11を参照して説明したデータである。すなわち、ロボット10がアプローチ領域に到達し、作業対象物体に対する作業を行う際、予定の作業を行う場合のロボット10のアーム部12の軌道やハンド部13の向きや状態(Open/Close)を記述したデータである。
【0123】
ユーザ端末30において作業動作情報を生成する際、ユーザ20は、まずユーザ端末30の画面を作業動作情報入力モードにし、画面上でロボット10のアーム部12やハンド部13の作業動作を時系列データとして入力する。
【0124】
例えば、作業対象物に対して行いたい作業を、ロボット10のハンド部13の位置(TCP:Tool Center Point)の時系列データとして入力する。ハンド部の位置(TCP)は、2指グリッパであれば、指間の中心位置である。
また、どの作業対象に対する作業なのかも合わせて設定する。
【0125】
作業動作の設定は、3D空間上にハンド部13やアーム部12の時系列軌跡を示す経由点を指定することで設定することができる。
または、ロボット10のアーム部12やハンド部13をCG上で動かして任意の姿勢を取らせ、その姿勢を移動する順に登録していくような方法で設定してもよい。
あるいは、ロボット10の実機を用いたダイレクトティーチングを行い、ロボット10(実機)の姿勢情報をユーザ端末30に転送し、この転送データから得られるハンド部13やアーム部12の時系列軌跡を示す経由点から作業動作情報を生成してもよい。
【0126】
(5)アプローチ領域情報の生成定処理
次にユーザ端末30におけるアプローチ領域情報の生成処理の具体例について説明する。
【0127】
アプローチ領域は、ロボット10が障害物に干渉(接触)せずに作業対象物に対する予定の作業を行うことが可能な領域である。
ユーザ端末30は、ユーザ20が入力した作業対象の位置・領域や、作業動作と、障害物情報を用いて、障害物にロボット10が干渉(接触)せずに作業対象物に対する予定の作業を行うことが可能な領域を「アプローチ領域」として決定する。
【0128】
先に図6を参照して説明したように、アプローチ領域の生成処理は、ユーザ端末30のアプローチ領域生成部205において実行される。
ユーザ20は、ユーザインタフェース(UI)201を介して障害物情報、作業対象情報、作業動作情報を入力し、これらの各情報の入力完了後、ユーザインタフェース(UI)201に表示されたアプローチ領域生成指示アイコンを操作すると、アプローチ領域生成部205においてアプローチ領域生成処理が開始される。
【0129】
なお、アプローチ領域生成部205におけるアプローチ領域生成処理の実行タイミングは、様々な設定が可能である。例えば、ユーザ端末30で生成した作業定義データを作業定義データ記憶部207に保存する直前のタイミングや、ロボット10へ転送する直前のタイミングなどに行う構成としてもよい。
【0130】
図12を参照してアプローチ領域生成部205が実行するアプローチ領域生成処理の具体例について説明する。
【0131】
図12は、机などの障害物上に置かれた作業対象物Xに対してユーザ20が設定した作業動作(P)をロボット10が実行する際に、ロボット10が障害物に接触することなく安全に作業(P)を実行可能な領域である「アプローチ領域AX」を生成する場合の処理例を示す図である。
【0132】
作業対象物Xの位置を、PosX(XposX,YposX,ZposX)、
ロボット10の移動部11が走行する平面をz=0平面とし、
作業対象物Xの位置PosXを、ロボット10の移動部11の走行平面(z=0)に投影した位置を、PosX2d(XposX,YposX,0)
とする。
【0133】
ロボット10の移動部11の基準点(例えば4輪車両であれば、後輪の車軸中心)からロボット10のアーム部12を最大限に伸ばした際のロボット10のハンド部13の位置(TCP)までの距離をRとする。
作業対象物Xの位置PosXのロボット走行平面(z=0)への投影位置PosX2dを中心とした半径Rの円、サークルX(CircleX)を設定して、この円内に複数のサンプリング点を設定する。
【0134】
図12に示す例では、サンプリング点は黒丸(●)で示している。
これらのサンプリング点(●)は、作業対象の配置位置(PosX)をロボット走行平面(z=0)へ投影した投影点(PosX2d)を中心とする規定半径(上記R)内に規定密度で設定した点をサンプリング点として示している。
【0135】
アプローチ領域生成部205は、アプローチ領域生成処理に際して、図12に示す例では、サンプリング点(●)の全てに対して、ロボット10が各サンプリング点に位置した状態で、障害物に干渉(接触)することなく、作業対象Xに対する予定の作業を実行できるか否かを判定する。
アプローチ領域生成部205は、この判定処理によって、作業が実行可能と判定したサンプリング点のみを選択し、選択したサンプリング点のみによって規定される領域をアプローチ領域として決定する。
【0136】
なお、図12に示す例では、サンプリング点を一定間隔ごとに格子状に設定しているが、ランダムにサンプリング点を設定してもよい。
【0137】
アプローチ領域生成部205が実行する各サンプリング点の具体的な判定処理について説明する。
アプローチ領域生成部205は、作業対象物Xの位置PosXのロボット走行平面(z=0)への投影位置PosX2dを中心とした半径Rの円、サークルX(CircleX)内に設定した複数のサンプリング点各々について、以下の判定処理を行う。
(判定処理1)ロボット10のハンド部13の位置(TCP)が、作業対象Xに対する予定作業(P)を行う際に必要となる位置に到達可能か否か。
(判定処理2)ロボット10全体(移動部11、アーム部12、ハンド部13)が障害物と干渉(接触)しないか否か。
【0138】
(判定処理1)は、サンプリング点の位置にロボット10を配置したうえで、作業対象の位置にロボット10のハンド部13の位置(TCP)が届くロボット10やアーム部12の姿勢を、逆運動学を用いて計算し、算出できれば届くとみなす。
【0139】
(判定処理2)は、サンプリング点の位置にロボット10を配置し、その上で(判定処理1)で算出したロボット10やアーム部12の姿勢に設定したとき、周辺の全ての障害物と干渉(接触)しないことを確認する。もし干渉(接触)する場合は、干渉(接触)せずにロボット10のハンド部13の位置(TCP)が作業対象の位置に届く他のロボット10やアーム部12の姿勢が無いか逆運動学を用いて計算する。
【0140】
上記(判定処理1)、(判定処理2)は、サンプリング点上で移動部の向きを変えて、各向きで判定を行う。
このようにして各サンプリング点を判定した上で、ロボット10のハンド部13の位置(TCP)が作業対象に届き、かつ障害物と干渉(接触)しないサンプリング点のうち、外周にある点を結ぶことで、アプローチ領域を生成する。
【0141】
図13には、各サンプリング点の判定処理によって決定されたアプローチ領域を示している。
白丸(〇)で示すサンプリング点がアプローチ領域内のサンプリング点である。すなわち、サンプリング点中、障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行可能であることが確認された作業可能サンプリング点である。
【0142】
一方、黒丸(●)で示すサンプリング点は、作業不可能サンプリング点であり、アプローチ領域外のサンプリング点である。すなわち、サンプリング点中、障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行不可能であることが確認された作業不可能サンプリング点である。
【0143】
アプローチ領域生成部205は、このようなサンプリング点各々についての作業可能性判定処理によってアプローチ領域を決定する。
なお、アプローチ領域生成部205が実行するアプローチ領域生成処理の処理シーケンスの詳細例については、後段において図14に示すフローチャートを参照して説明する。
【0144】
(6)作業シーケンス情報の生成定処理
次にユーザ端末30における作業シーケンス情報の生成処理の具体例について説明する。
【0145】
作業シーケンス情報は、先に図9を参照して説明した情報であり、図9に示すように、ロボット10に実行させる移動処理や作業を時系列に並べた情報である。
時系列順のシーケンスNo.に対応させてロボット10に実行させる移動処理や作業情報を記録した情報である。
【0146】
ユーザ20はユーザ端末30に、ロボット10に行わせたい作業シーケンスを順次、入力する。
先に説明した図10に示すシーケンスを設定する場合の例について説明する。
ユーザ20は、例えば以下のようなロボット10の動作(移動、作業)を順次、入力する。
・経由点Aから経由点Bへの移動、
・作業対象X対応のアプローチ領域AXに侵入してアプローチ領域AX内で作業対象Xに対する予定の作業(P)を実行、
・予定作業(P)の完了後、経由点C,Dを通過して、作業対象Y対応のアプローチ領域AYに侵入、
・アプローチ領域AY内で作業対象Yに対する予定の作業(Q)を実行、
・予定作業(Q)の完了後、経由点E,F,Gを順次移動して終了する。
【0147】
なお、図9に示す作業シーケンス情報は表形式の表現となっているが、BASICのような言語や、Scratch等のブロックを組み合わせるようなビジュアルプログラミング言語を使用してもよい。また、条件分岐などの制御文や、他の言語機能を併用してもよい。
【0148】
これらの処理によって、ユーザ端末30において、作業定義データ、すなわち、
(1)事前定義地図
(2)作業シーケンス情報
(3)作業動作情報
これらのデータを含む「作業定義データ」の生成が完了する。
【0149】
ユーザ端末30において生成された作業定義データは、ユーザの操作等によりユーザ端末の作業定義データ記憶部207に保存されるとともに、作業定義データ管理部204から通信IF208を介してロボット10の情報処理装置100に送信される。
ロボット10の情報処理装置100は通信IF111、ロボット制御部113を経由して作業定義データ管理部104が作業定義データを受け取り、記憶部に記憶する。これにより、ロボット10は、作業定義データに従った作業を開始できる状態になる。
【0150】
[4.アプローチ領域生成処理の処理シーケンスについて]
次に、アプローチ領域生成処理の処理シーケンスについて説明する。
【0151】
図14は、ユーザ端末30のアプローチ領域生成部205が実行するアプローチ領域生成処理の処理シーケンスの一例について説明するフローチャートを示す図である。
【0152】
なお、このフローに従った処理は、ユーザ端末30のデータ処理部であるアプローチ領域生成部205が、ユーザ端末30の記憶部に格納されたプログラムに従って実行することが可能である。例えばプログラム実行機能を有するCPU等のプロセッサによるプログラム実行処理として行うことができる。
【0153】
ただし、前述したように、先に図6を参照して説明したユーザ端末30の機能をロボット10内部の情報処理装置に全て組み込んだ構成も可能であり、この場合はユーザ端末30を用いずにロボット10単独で図14に示すフローに従った処理を実行することが可能である。
【0154】
以下では、一例として、ユーザ端末30のアプローチ領域生成部205が図14に示すフローに従った処理を実行するものとして説明する。
なお、図14に示すフローチャートは、先に図12を参照して説明したサンプリング点の設定処理が完了した後の各サンプリング点の判定処理とアプローチ領域決定処理の処理シーケンスを示している。
すなわち、各サンプリング点がアプローチ領域内の作業可能サンプリング点(〇)であるか、アプローチ領域外の作業不可能サンプリング点(●)であるかの判定処理と判定結果に基づくアプローチ領域決定処理の処理シーケンスを示すフローチャートである。
【0155】
ユーザ端末30のアプローチ領域生成部205は、図14に示すフローの前処理として、先に図12を参照して説明した処理に従ったサンプリング点設定処理を行っているものとする。
【0156】
すなわち、作業対象物Xの位置PosXをロボット10の移動部11の走行平面(z=0)に投影した位置を、PosX2d(XposX,YposX,0)を中心とした半径Rの円、サークルX(CircleX)を設定して、この円内に複数のサンプリング点を設定する処理を完了しているものとする。
なお、半径Rは、ロボット10の移動部11の基準点(例えば4輪車両であれば、後輪の車軸中心)からロボット10のアーム部12を最大限に伸ばした際のロボット10のハンド部13の位置(TCP)までの距離Rに相当する長さである。
【0157】
以下、図14に示すフローの各ステップの処理について説明する。
(ステップS101)
まず、ユーザ端末30のアプローチ領域生成部205は、ステップS101において、半径Rの円サークルX(CircleX)内の全サンプリング点から、1つの判定対象サンプリング点を選択する。
【0158】
図15を参照して、この(ステップS101)の処理の具体例について説明する。
図15(S101)には、ロボット10と、机等の障害物に置かれた作業対象Xを示している。
なお、ユーザによって指定された作業内容は、図に示すように作業対象Xを右上に移動させる処理であるとする。
ロボット10には、基準点(例えば4輪車両であれば、後輪の車軸中心)を●で示している。
【0159】
まず、ステップS101では、1つの判定対象サンプリング点を選択する。図15には複数のサンプリング点を示しており、この中の1つのサンプリング点を判定対象サンプリング点として選択する。
【0160】
(ステップS102)
次に、アプローチ領域生成部205は、ステップS102において、選択した判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットを回転させ、障害物に接触しない回転位置の有無を判定する。
【0161】
図15を参照して、この(ステップS102)の処理の具体例について説明する。
図15(S102)には、ステップS101で選択した判定対象サンプリング点にロボット10の基準点を一致させた状態で、ロボット10を回転させ、障害物に接触しない回転位置の有無を判定する処理を示している。
【0162】
(ステップS103)
ステップS103は、ステップS102における判定処理の結果に基づく分岐ステップである。
【0163】
アプローチ領域生成部205は、ステップS102における判定処理、すなわち、選択した判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置があるか否かの判定処理において、ロボットが障害物に接触しない回転位置があると判定した場合はステップS103の判定結果がYesとなり、ステップS105に進む。
【0164】
一方、ロボットが障害物に接触しない回転位置がないと判定した場合はステップS103の判定結果がNoとなり、ステップS104に進む。
【0165】
図16を参照して、この(ステップS103)の処理の具体例について説明する。
図16には、
(ステップS103の判定=Yes)非接触回転位置あり、
(ステップS103の判定=No)非接触回転位置なし、
これら2つの具体例を示している。
【0166】
(ステップS103の判定=Yes)非接触回転位置あり、
この例は、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出された例である。
このような場合には、ステップS103の判定結果がYesとなり、ステップS105に進む。
【0167】
一方、(ステップS103の判定=No)非接触回転位置なし、
この例は、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置を検出できなかった場合の例である。
このような場合には、ステップS103の判定結果がNoとなり、ステップS104に進む。
【0168】
(ステップS104)
ステップS104の処理は、ステップS103の判定がNoの場合、すなわち、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出されなかった場合に実行する。
【0169】
この場合、アプローチ領域生成部205は、ステップS104において、判定対象サンプリング点を作業不可サンプリング点、すなわち、アプローチ領域外のサンプリング点に設定する。
【0170】
(ステップS105)
ステップS105の処理は、ステップS103の判定がYesの場合、すなわち、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出された場合に実行する。
【0171】
この場合、アプローチ領域生成部205は、ステップS105において、障害物に接触しないロボットの回転位置で予定作業が実行可能か否かを判定する。
なお、予定作業はユーザ20が入力した作業動作情報から取得する。
【0172】
図17を参照して、この(ステップS105)の処理の具体例について説明する。
本処理例では、ユーザが入力した作業指示は図17に示すように作業対象Xを右上に移動させる処理であるとする。
この場合、アプローチ領域生成部205は、ステップS105において、障害物に接触しないロボットの回転位置で、この作業が実行可能か否かを判定する。
【0173】
(ステップS106)
ステップS106は、ステップS105における判定処理の結果に基づく分岐ステップである。
【0174】
アプローチ領域生成部205は、ステップS105における判定処理、すなわち、障害物に接触しないロボットの回転位置で予定作業が実行可能か否かの判定処理において、予定作業が実行可能であると判定した場合はステップS106の判定結果がYesとなり、ステップS107に進む。
【0175】
一方、予定作業が実行不可能であると判定した場合はステップS106の判定結果がNoとなり、ステップS104に進む。
【0176】
図18を参照して、この(ステップS106)の処理の具体例について説明する。
図18には、
(ステップS106の判定=Yes)障害物に接触しないロボットの回転位置で予定作業が実行可能、
(ステップS106の判定=No)障害物に接触しないロボットの回転位置で予定作業が実行不可能、
これら2つの具体例を示している。
【0177】
(ステップS106の判定=Yes)障害物に接触しないロボットの回転位置で予定作業が実行可能、
この例は、判定対象サンプリング点にロボット基準点を一致させ、かつ障害物に接触しないロボットの回転位置で予定作業が実行可能であることが確認された例である。
このような場合には、ステップS106の判定結果がYesとなり、ステップS107に進む。
【0178】
一方、(ステップS106の判定=No)障害物に接触しないロボットの回転位置で予定作業が実行不可能、
この例は、判定対象サンプリング点にロボット基準点を一致させ、かつ障害物に接触しないロボットの回転位置で予定作業が実行不可能であることが確認された例である。
このような場合には、ステップS106の判定結果がNoとなり、ステップS104に進む。
【0179】
(ステップS104)
ここで、再度、ステップS104について説明する。
ステップS104の処理は、ステップS103の判定がYesの場合でも、ステップS106の判定がNoの場合にも実行される。
【0180】
すなわち、ステップS103において、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出されたが、
ステップS106で障害物に接触しないロボットの回転位置で予定作業が実行不可能と判定された場合にも実行する。
【0181】
この場合、アプローチ領域生成部205は、ステップS104において、判定対象サンプリング点を作業不可サンプリング点、すなわち、アプローチ領域外のサンプリング点に設定する。
【0182】
(ステップS107)
一方、ステップS107の処理は、ステップS106の判定がYesの場合、すなわち、障害物に接触しないロボットの回転位置で予定作業が実行可能、と判定した場合に実行する。
【0183】
この場合、アプローチ領域生成部205は、ステップS107において、判定対象サンプリング点を作業可能サンプリング点、すなわち、アプローチ領域内のサンプリング点に設定する。
【0184】
(ステップS108)
ステップS104の処理、すなわち、判定対象サンプリング点を作業不可能サンプリング点、すなわち、アプローチ領域外のサンプリング点に設定する処理、または、
ステップS107の処理、すなわち、判定対象サンプリング点を作業可能サンプリング点、すなわち、アプローチ領域内のサンプリング点に設定する処理、これらの処理のいずれかの処理が完了した場合、ステップS108の処理を実行する。
【0185】
これら、いずれかの場合、アプローチ領域生成部205は、ステップS108において、未処理のサンプリング点、すなわち判定処理が完了していないサンプリング点が残っていないかを判定する。
未処理サンプリング点がある場合は、ステップS101に戻り、未処理サンプリング点の処理を実行する。
一方、未処理サンプリング点がない場合は、ステップS109に進む。
【0186】
(ステップS109)
全てのサンプリング点の判定処理が完了すると、アプローチ領域生成部205は、ステップS109において、作業可能サンプリング点のみからなる領域をアプローチ領域に設定する。
【0187】
図19を参照して、この(ステップS109)の処理の具体例について説明する。
図19には、半径Rの円サークルX(CircleX)内の各サンプリング点の判定処理によって決定されたアプローチ領域を示している。
【0188】
白丸(〇)で示すサンプリング点がアプローチ領域内のサンプリング点である。すなわち、サンプリング点中、障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行可能であることが確認された作業可能サンプリング点である。
【0189】
一方、黒丸(●)で示すサンプリング点は、作業不可能サンプリング点であり、アプローチ領域外のサンプリング点である。すなわち、サンプリング点中、障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行不可能であることが確認された作業不可能サンプリング点である。
【0190】
アプローチ領域生成部205は、このようなサンプリング点各々に対する作業可能性判定処理によってアプローチ領域を決定する。
【0191】
図19に示すアプローチ領域AXにロボット10の基準点があれば、障害物に対する接触や干渉(接触)を起こすことなく、作業対象Xに対する予定の作業、すなわちユーザが入力した作業動作情報に従った処理を実行することが可能となる。
【0192】
アプローチ領域生成部205は、作業対象物が複数ある場合、作業対象物各々に対して、図14を参照して説明したフローに従った処理を実行する。すなわちサンプリング点各々に対する作業可能性判定処理によるアプローチ領域生成処理を実行する。
【0193】
例えば先に説明した図9に示す「作業シーケンス情報」に従ってロボット10を動作させる場合、この作業シーケンスに従ったロボットの動作イメージは図10に示すものとなる。
図10に示す動作シーケンスでは、2つの作業対象X,Yがあり、これら2つの作業対象X,Y各々に対して、図14を参照して説明したフローに従った処理を実行してアプローチ領域を生成する。
【0194】
図10に示す作業対象Yに対応するアプローチ領域の設定例を図20に示す。
図20は、作業対象Yの配置位置(PosY)をロボット走行平面(z=0)へ投影した投影点(PosY2d)を中心とする半径Rの円サークルY(CircleY)内の各サンプリング点の判定処理によって決定されたアプローチ領域を示している。
【0195】
白丸(〇)で示すサンプリング点がアプローチ領域内のサンプリング点である。すなわち、図14を参照して説明したフローに従った処理を実行して障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行可能であることが確認された作業可能サンプリング点である。
【0196】
一方、黒丸(●)で示すサンプリング点は、作業不可能サンプリング点であり、アプローチ領域外のサンプリング点である。これらは、図14を参照して説明したフローに従った処理を実行して、障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行不可能であることが確認された作業不可能サンプリング点である。
【0197】
アプローチ領域生成部205は、このようなサンプリング点各々に対する作業可能性判定処理によってアプローチ領域を決定する。
【0198】
図20に示すアプローチ領域AYにロボット10の基準点があれば、障害物に対する接触や干渉(接触)を起こすことなく、作業対象Yに対する予定の作業、すなわちユーザが入力した作業動作情報に従った処理を実行することが可能となる。
【0199】
[5.作業定義データに基づくロボットの動作の詳細について]
次に、作業定義データに基づくロボットの動作の詳細について説明する。
【0200】
上述したように、ユーザ端末30では、「作業定義データ」、すなわち、
(1)事前定義地図
(2)作業シーケンス情報
(3)作業動作情報
これらのデータを含む「作業定義データ」を生成する。
【0201】
ユーザ端末30において生成された作業定義データは、ユーザの操作等によりユーザ端末の作業定義データ記憶部207に保存されるとともに、作業定義データ管理部204から通信IF208を介してロボット10の情報処理装置100に送信される。
ロボット10の情報処理装置100は通信IF111、ロボット制御部113を経由して作業定義データ管理部104が作業定義データを受け取り、記憶部に記憶する。これにより、ロボット10は、作業定義データに従った作業を開始できる状態になる。
【0202】
以下、作業定義データに従ったロボット10の動作の詳細について説明する。
まず、ユーザ20が操作を行い、ロボット10が作業を開始するまでの流れについて説明する。
【0203】
ユーザ20は、まず、ロボット10に実行させる作業に適用する「作業定義データ」をロボット10の情報処理装置100に入力する。
ロボット10の情報処理装置100に対する「作業定義データ」の入力処理は、ロボット10に装着された図3に示す構成を有する情報処理装置100のロボット操作UI112を介して入力する。
または、図6に示す構成を有するユーザ端末30を操作して、ユーザ端末30の通信IF208からロボット10の情報処理装置100の通信IF111を経由して入力する。
【0204】
以下においては、ロボット10の情報処理装置100に入力された「作業定義データ」に先に図9を参照して説明した「作業シーケンス情報」が含まれており、ロボット10を図9に示す「作業シーケンス情報」に従って動作させる場合の処理例について説明する。
【0205】
すなわち、作業シーケンスに従ったロボットの動作イメージは図21に示すものとなる。
図21に示すように、ロボット10は、経由点Aから経由点Bに移動し、作業対象X対応のアプローチ領域AXに侵入する。その後、ロボット10は、アプローチ領域AX内で作業対象Xに対する予定の作業(P)を実行する。予定作業(P)の完了後、経由点C,Dを通過して、作業対象Y対応のアプローチ領域AYに侵入する。その後、ロボット10は、アプローチ領域AY内で作業対象Yに対する予定の作業(Q)を実行する。予定作業(Q)の完了後、経由点E,F,Gを順次移動してシーケンスを終了する。
【0206】
ロボット10は、最初、図21の地点Aにあるものとする。
ロボット10本体のロボット操作UI112、またはユーザ端末30を介してユーザ20が作業開始の指示操作を行うと、作業開始指示が、ロボット10の情報処理装置100のロボット制御部113に入力される。
【0207】
なお、ロボット制御部113に入力される作業開始指示には、作業に使用する作業定義データを示す情報(作業定義データの名前、IDなど)が付与されていてもよい。
また、事前に作業開始指示とは別に、使用する作業定義データを指定する情報がロボット操作UI112、もしくはユーザ端末30からロボット制御部113に送信されていてもよい。
【0208】
作業開始指示を入力したロボット制御部113は、作業定義データ管理部104に、ユーザ20から指定された「作業定義データ」の読み出しを要求する。
作業定義データ管理部104は、ユーザ20から指定された「作業定義データ」を情報処理装置100内の記憶部から読み出す。
【0209】
なお、前述したように、「作業定義データ」には、以下の各データが含まれる。
(1)事前定義地図
(2)作業シーケンス情報
(3)作業動作情報
【0210】
作業定義データ管理部104は、読み出した「作業定義データ」内の事前定義地図(地図データ)を事前定義地図管理部105に出力する。
さらに、作業シーケンス情報と、作業動作情報をシーケンス制御部114に出力する。
これらの処理の後、ロボット10は「作業定義データ」に従って動き始めることができるようになる。
【0211】
次に、ロボット10が作業中にセンサ101から入力するセンサ検出情報を用いた処理について説明する。
【0212】
ロボット10は、ユーザ20が入力した「作業定義データ」に従った動作を開始後、センサ101を用いて、ロボット走行環境にある障害物検出処理を継続して実行する。
先に図3を参照して説明したようにセンサ101はロボット周囲の障害物などの周囲環境を検知するためのセンサであり、例えば、カメラやLiDAR(Light Detection and Ranging)等によって構成される。
【0213】
障害物地図作成部103は、センサ101の検出情報に基づいて、ロボット10から各障害物までの距離や相対的な位置関係、障害物の形状を解析し、さらに自己位置推定部102で推定した自己位置情報を用いて「障害物地図」を生成する。
【0214】
「障害物地図」は、先に図5(2a)を参照して説明したように、ロボット10の周囲に存在する障害物の配置位置を示す地図であり、ロボット10周囲の最新の障害物情報を含む地図である。
【0215】
障害物地図作成部103は、例えば占有格子地図(Occupancy Grid Map)のような「障害物地図」を作成する。
前述したように、占有格子地図(グリッドマップ)は、格子によって規定される各区画(グリッド)内に障害物が存在する確率値を設定した地図である。る各区画(グリッド)の各々を「占有」「空き」「未知」等に分類した地図もある。
ロボット10は、占有格子地図(グリッドマップ)の区画中、障害物の存在する確率の低い区画(グリッド)を走行ルートとして選択して走行することで障害物に衝突することなく安全に走行することができる。
【0216】
障害物地図作成部103が生成した「障害物地図」は、差分障害物検出部106に入力される。
差分障害物検出部106は、障害物地図作成部103が生成した「障害物地図」と、ユーザ20が指定した「作業定義データ」に含まれる「事前定義地図」を比較して、2つの地図の差分を検出する。
具体的には、例えば障害物地図作成部103が生成した「障害物地図」には存在するが、「事前定義地図」にない差分障害物(新規障害物)を検出する。
【0217】
先に図4図5を参照して説明したように、図4(1a)に示す「事前定義地図」はロボット10の走行前に作成された地図であるのに対し、図5(2a)に示す「障害物地図」は、ロボット10のセンサによる取得情報に基づいて作成された最新の障害物位置を反映した地図である。
図5(2a)に示す「障害物地図」には、先に図4(1a)を参照して説明した「事前定義地図」に含まれていない新規障害物である「差分障害物」が含まれる可能性がある。
この「差分障害物」は、「事前定義地図」の作成時には存在しなかった障害物であり、「障害物地図」作成時に新たに検出された障害物である。
【0218】
差分障害物検出部106は、2つの地図の比較処理において、まず、例えばARマーカーなどを要所(例えば経由点Aなど)に配置し、それを自己位置推定部102が検出することで、「事前定義地図」と「障害物地図」の位置合わせを行う。
【0219】
さらに「事前定義地図」と「障害物地図」の位置合わせ後、各地図の対応位置同士の障害物の有無状態を比較する。「事前定義地図」に障害物が無く、「障害物地図」に障害物が存在する場合、その障害物を「事前定義地図」生成後に発生した「差分障害物(新規障害物)」と判定する。
【0220】
差分障害物検出部106は、検出した差分障害物情報をアプローチ領域修正部107に出力する。
【0221】
アプローチ領域修正部107は、以下の各情報を入力する。
(a)事前定義地図管理部105から「事前定義地図」、
(b)差分障害物検出部106が検出した「事前定義地図」に存在しない新たな障害物である「差分障害物」情報、
アプローチ領域修正部107は、これらの入力情報を利用して、「事前定義地図」上に定義された「事前設定アプローチ領域」の修正処理を行う。
具体的には、差分障害物検出部106が検出した「事前定義地図」に存在しない新たな障害物である「差分障害物」を考慮した「修正アプローチ領域」を生成する。
【0222】
すなわち、例えば図22に示すような「差分障害物(新規障害物)」が検出された場合、「事前定義地図」上に設定済の事前設定アプローチ領域である「アプローチ領域AX」の一部は、ロボット10が障害物に接触せずに作業対象Xに対する作業を実行できない領域になる。
【0223】
すなわち、「事前定義地図」上に設定済の事前設定アプローチ領域である「アプローチ領域AX」は「差分障害物(新規障害物)」を考慮しないで設定されたアプローチ領域である。
アプローチ領域修正部107は、このような「事前定義地図」上に設定済の事前設定アプローチ領域を修正し、「差分障害物」を考慮した「修正アプローチ領域」を生成する。
【0224】
図23を参照してアプローチ領域修正部107が実行するアプローチ領域の修正の具体例について説明する。
【0225】
まず、「事前定義地図」上に設定済の「事前設定アプローチ領域」内にサンプリング点を設定する。例えば、「事前設定アプローチ領域」内に均等間隔でサンプリング点を設定する。
なお、先に図12図13、および図14のフローを参照して説明した「事前設定アプローチ領域」を生成する際に利用したサンプリング点(作業可能サンプリング点)をそのまま利用してもよい。
新たなサンプリング点を設定してもよい。
【0226】
アプローチ領域修正部107は、「事前設定アプローチ領域」内に設定したサンプリング点各々について、ロボット10が作業対象に対する予定の作業を行った場合に差分障害物(新規障害物)と干渉(接触)が発生するか否かを確認する。
【0227】
具体的には、各サンプリング点について、ロボット全体(移動部、ロボットアーム等)が差分障害物と干渉(接触)しないことを確認する。
例えば、以下の判定処理を行う。
(判定処理1)ロボット10のハンド部13の位置(TCP)が、作業対象Xに対する予定作業(P)を行う際に必要となる位置に到達可能か否か。
(判定処理2)ロボット10全体(移動部11、アーム部12、ハンド部13)が差分障害物(新規障害物)と干渉(接触)しないか否か。
【0228】
(判定処理1)は、サンプリング点の位置にロボット10を配置したうえで、作業対象の位置にロボット10のハンド部13の位置(TCP)が届くロボット10やアーム部12の姿勢を、逆運動学を用いて計算し、算出できれば届くとみなす。
【0229】
(判定処理2)は、サンプリング点の位置にロボット10を配置し、その上で(判定処理1)で算出したロボット10やアーム部12の姿勢に設定したとき、周辺の差分障害物(新規障害物)と干渉(接触)しないことを確認する。もし干渉(接触)する場合は、干渉(接触)せずにロボット10のハンド部13の位置(TCP)が作業対象の位置に届く他のロボット10やアーム部12の姿勢が無いか逆運動学を用いて計算する。
【0230】
上記(判定処理1)、(判定処理2)は、サンプリング点上で移動部の向きを変えて、各向きで判定を行う。
このようにして各サンプリング点を判定した上で、ロボット10のハンド部13の位置(TCP)が作業対象に届き、かつ差分障害物(新規障害物)と干渉(接触)しないサンプリング点のうち、外周にある点を結ぶことで、修正アプローチ領域を生成する。
【0231】
図24には、「事前設定アプローチ領域」内に設定したサンプリング点各々の判定処理によって決定された修正アプローチ領域を示している。
白丸(〇)で示すサンプリング点が修正アプローチ領域内のサンプリング点である。すなわち、「事前設定アプローチ領域」内に設定したサンプリング点中、差分障害物(新規障害物)と干渉(接触)せずに作業対象に対して予定の作業動作を実行可能であることが確認された作業可能サンプリング点である。
【0232】
一方、黒丸(●)で示すサンプリング点は作業不可能サンプリング点である。これらは、元々は事前設定アプローチ領域内の作業可能サンプリング点であったが、差分障害物(新規障害物)と干渉(接触)することが判明し、作業不可能サンプリング点に変更された点である。これらは、修正アプローチ領域外のサンプリング点となる。
【0233】
アプローチ領域修正部107は、このようなサンプリング点各々についての作業可能性判定処理によって修正アプローチ領域を決定する。
なお、アプローチ領域修正部107が実行するアプローチ領域修正処理の処理シーケンスの詳細例については、後段において図25に示すフローチャートを参照して説明する。
【0234】
なお、アプローチ領域修正部107は、アプローチ領域の修正を、事前定義地図の事前設定アプローチ領域に対してのみではなく、ロボット10の情報処理装置100のアプローチ領域修正部107自身が、前回走行時に生成した修正アプローチ領域に対して行ってもよい。
この場合は、差分障害物検出部106から入力した新たな差分障害物に対して、前回生成した修正アプローチ領域内にサンプリング点を打って、新たな差分障害物との干渉(接触)を確認して、前回生成した修正アプローチ領域に対して、さらに修正を行う。
【0235】
すなわち、アプローチ領域修正部107は、過去に実行したアプローチ領域修正処理において生成した生成済み修正アプローチ領域に対して、新たに発生した差分障害物を考慮して再度、修正した再修正アプローチ領域を生成する処理を実行する。
この場合、アプローチ領域修正部107は、生成済み修正アプローチ領域の内部に設定したサンプリング点について、新たに発生した差分障害物にロボット10が接触することなく作業可能であるか否かを判定して、再修正アプローチ領域を生成する。
【0236】
アプローチ領域修正部107は、このように事前定義地図等に設定済の事前設定アプローチ領域内のみにサンプリング点を設定して、その限られたサンプリング点について、差分障害物との干渉(接触)判定を行って、事前設定アプローチ領域内に新たな修正アプローチ領域を生成する。
【0237】
このような限定された領域内のサンプリング点の干渉(接触)判定を行うことで、先に図12図14を参照して説明したような広範囲の多数のサンプリング点に対する処理に比較して短時間で効率的に処理を行うことが可能となる。
【0238】
先に図12図14を参照して説明した処理では、作業対象物Xの位置PosXのロボット走行平面(z=0)への投影位置PosX2dを中心とした半径Rの円(CircleX)内に設定した多数のサンプリング点各々について、干渉(接触)判定を行う必要があるため、処理に時間を要する。
【0239】
これに対して、アプローチ領域修正部107は、図23図24を参照して説明したように、事前定義地図等に設定済の事前設定アプローチ領域内のみにサンプリング点を設定して、その限られたサンプリング点について、差分障害物との干渉(接触)判定を行って、事前設定アプローチ領域内に新たな修正アプローチ領域を生成するため、短時間で効率的に処理を行うことができる。
【0240】
環境地図統合部108は、以下の各情報を入力する。
(a)事前定義地図管理部105から「事前定義地図」、
(b)障害物地図作成部103から「障害物地図」、
(c)アプローチ領域修正部107から、「修正アプローチ領域情報」と「差分障害物情報」
環境地図統合部108は、これらの入力情報を利用して「統合環境地図」を作成する。
すなわち最新の障害物の位置と、「事前定義地図」に記録された「事前設定アプローチ領域」を最新の障害物の位置に基づいて修正した「修正アプローチ領域」を記録した「統合環境地図」を作成する。
【0241】
環境地図統合部108が生成する「統合環境地図」は、以下の各情報を有する地図となる。
障害物情報=「事前定義地図」と「障害物地図」の双方の障害物情報を持つ。
アプローチ領域情報=修正された事前設定アプローチ領域について修正アプローチ領域、修正されていない事前設定アプローチ領域は、事前設定アプローチ領域が残存する。
その他、作業対象の位置・領域、経由点の各情報は、事前定義地図の情報がそのまま継承される。
【0242】
[6.ロボットの情報処理装置のアプローチ領域修正部が実行するアプローチ領域修正処理の処理シーケンスについて]
次に、ロボット10の情報処理装置100のアプローチ領域修正部107が実行するアプローチ領域修正処理の処理シーケンスについて
【0243】
図25は、ロボット10の情報処理装置100のアプローチ領域修正部107が実行するアプローチ領域修正処理の処理シーケンスの一例について説明するフローチャートを示す図である。
【0244】
なお、このフローに従った処理は、ロボット10の情報処理装置100のアプローチ領域修正部107が、情報処理装置100の記憶部に格納されたプログラムに従って実行することが可能である。例えばプログラム実行機能を有するCPU等のプロセッサによるプログラム実行処理として行うことができる。
【0245】
なお、図25に示すフローチャートは、先に図23を参照して説明した事前設定アプローチ領域に対するサンプリング点の設定処理が完了した後の各サンプリング点の判定処理とアプローチ領域決定処理の処理シーケンスを示している。
【0246】
先に図23を参照して説明したように、ロボット10の情報処理装置100のアプローチ領域修正部107は、まず、予め生成された「事前定義地図」上に設定済の「事前設定アプローチ領域」内にサンプリング点を設定する。例えば、「事前設定アプローチ領域」内に均等間隔でサンプリング点を設定する。
なお、前述したように、「事前設定アプローチ領域」生成時に設定したサンプリング点(図13に示す事前設定アプローチ領域内の作業可能サンプリング点)をそのまま利用してもよい。
【0247】
図25に示すフローチャートは、このように事前設定アプローチ領域内にサンプリング点設定処理完了後、設定した事前設定アプローチ領域内のサンプリング点が、差分障害物(新規障害物)に干渉(接触)することなく予定の作業が可能となる作業可能サンプリング点(〇)であるか、作業できない作業不可能サンプリング点(●)であるかの判定処理と判定結果に基づく修正アプローチ領域決定処理の処理シーケンスを示すフローチャートである。
【0248】
以下、図25に示すフローの各ステップの処理について説明する。
(ステップS201)
まず、ロボット10の情報処理装置100のアプローチ領域修正部107は、ステップS201において、予め生成された「事前定義地図」上に設定済の「事前設定アプローチ領域」内のサンプリング点から、1つの判定対象サンプリング点を選択する。
【0249】
図26を参照して、この(ステップS201)の処理の具体例について説明する。
図26(S201)には、机等の障害物に置かれた作業対象Xと、その前に設定された「事前設定アプローチ領域」と、差分障害物(新規障害物)を示している。
「事前設定アプローチ領域」は、予め生成された「事前定義地図」上に設定済の「事前設定アプローチ領域」であり、その中には複数のサンプリング点が設定済である。
【0250】
まず、ステップS201では、「事前設定アプローチ領域」内のサンプリング点から1つの判定対象サンプリング点を選択する。図26には「事前設定アプローチ領域」内の複数のサンプリング点を示しており、この中の1つのサンプリング点を判定対象サンプリング点として選択する。
【0251】
(ステップS202)
次に、アプローチ領域修正部107は、ステップS202において、選択した判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットを回転させ、障害物に接触しない回転位置の有無を判定する。
【0252】
なお、ここで接触可能性の判定対象とするのは、差分障害物(新規障害物)のみでよい。既存障害物については、「事前設定アプローチ領域」生成時に接触せずに予定作業が可能であることが既に確認されているからである。
【0253】
(ステップS203)
ステップS203は、ステップS202における判定処理の結果に基づく分岐ステップである。
【0254】
アプローチ領域修正部107は、ステップS202における判定処理、すなわち、選択した判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置があるか否かの判定処理において、ロボットが障害物に接触しない回転位置があると判定した場合はステップS203の判定結果がYesとなり、ステップS205に進む。
【0255】
一方、ロボットが障害物に接触しない回転位置がないと判定した場合はステップS203の判定結果がNoとなり、ステップS204に進む。
【0256】
(ステップS204)
ステップS204の処理は、ステップS203の判定がNoの場合、すなわち、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出されなかった場合に実行する。
【0257】
この場合、アプローチ領域修正部107は、ステップS204において、判定対象サンプリング点を作業不可サンプリング点、すなわち、修正アプローチ領域外のサンプリング点に設定する。
【0258】
(ステップS205)
ステップS205の処理は、ステップS203の判定がYesの場合、すなわち、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出された場合に実行する。
【0259】
この場合、アプローチ領域修正部107は、ステップS205において、障害物に接触しないロボットの回転位置で予定作業が実行可能か否かを判定する。
なお、予定作業はユーザ20が入力した作業動作情報から取得する。
【0260】
(ステップS206)
ステップS206は、ステップS205における判定処理の結果に基づく分岐ステップである。
【0261】
アプローチ領域修正部107は、ステップS205における判定処理、すなわち、障害物に接触しないロボットの回転位置で予定作業が実行可能か否かの判定処理において、予定作業が実行可能であると判定した場合はステップS206の判定結果がYesとなり、ステップS207に進む。
【0262】
一方、予定作業が実行不可能であると判定した場合はステップS206の判定結果がNoとなり、ステップS204に進む。
【0263】
(ステップS204)
ここで、再度、ステップS204について説明する。
ステップS204の処理は、ステップS203の判定がYesの場合でも、ステップS206の判定がNoの場合にも実行される。
【0264】
すなわち、ステップS203において、判定対象サンプリング点にロボット基準点を一致させた状態で、ロボットが障害物に接触しない回転位置が検出されたが、
ステップS206で障害物に接触しないロボットの回転位置で予定作業が実行不可能と判定された場合にも実行する。
【0265】
この場合、アプローチ領域修正部107は、ステップS204において、判定対象サンプリング点を作業不可サンプリング点、すなわち、修正アプローチ領域外のサンプリング点に設定する。
【0266】
(ステップS207)
一方、ステップS207の処理は、ステップS206の判定がYesの場合、すなわち、障害物に接触しないロボットの回転位置で予定作業が実行可能、と判定した場合に実行する。
【0267】
この場合、アプローチ領域修正部107は、ステップS207において、判定対象サンプリング点を作業可能サンプリング点、すなわち、修正アプローチ領域内のサンプリング点に設定する。
【0268】
(ステップS208)
ステップS204の処理、すなわち、判定対象サンプリング点を作業不可能サンプリング点、すなわち、修正アプローチ領域外のサンプリング点に設定する処理、または、
ステップS207の処理、すなわち、判定対象サンプリング点を作業可能サンプリング点、すなわち、修正アプローチ領域内のサンプリング点に設定する処理、これらの処理のいずれかの処理が完了した場合、ステップS208の処理を実行する。
【0269】
これら、いずれかの場合、アプローチ領域修正部107は、ステップS208において、未処理のサンプリング点、すなわち判定処理が完了していないサンプリング点が残っていないかを判定する。
未処理サンプリング点がある場合は、ステップS201に戻り、未処理サンプリング点の処理を実行する。
一方、未処理サンプリング点がない場合は、ステップS209に進む。
【0270】
(ステップS209)
全てのサンプリング点の判定処理が完了すると、アプローチ領域修正部107は、ステップS209において、作業可能サンプリング点のみからなる領域を修正アプローチ領域に設定する。
【0271】
図27を参照して、この(ステップS209)の処理の具体例について説明する。
図27には、机等の障害物に置かれた作業対象Xと、その前に設定された「事前設定アプローチ領域」と、差分障害物(新規障害物)と、図25に示すフローに従って決定された「修正アプローチ領域AX」を示している。
【0272】
図27に示す「事前設定アプローチ領域」は、予め生成された「事前定義地図」上に設定済の「事前設定アプローチ領域」である。その中の複数のサンプリング点について図25に示すフローに従った判定処理が行われて「修正アプローチ領域AX」が決定される。
【0273】
白丸(〇)で示すサンプリング点が修正アプローチ領域内のサンプリング点である。すなわち、サンプリング点中、差分障害物(新規障害物)を含むすべての障害物と干渉(接触)せずに作業対象に対して予定の作業動作を実行可能であることが確認された作業可能サンプリング点である。
【0274】
一方、黒丸(●)で示すサンプリング点は、作業不可能サンプリング点であり、修正アプローチ領域外のサンプリング点である。これらのサンプリング点は、「事前定義地図」上に設定済の「事前設定アプローチ領域」内のサンプリング点であり、「事前設定アプローチ領域」生成時に存在した既存の障害物に接触することなく定の作業動作を実行可能であるが、差分障害物(新規障害物)と干渉(接触)せずに作業対象に対して予定の作業動作を実行不可能であることが確認された新たな作業不可能サンプリング点である。
【0275】
アプローチ領域修正部107は、このように、事前設定アプローチ領域内のサンプリング点各々に対する作業可能性判定処理によって修正アプローチ領域を決定する。
【0276】
図27に示す修正アプローチ領域AXにロボット10の基準点があれば、障害物に対する接触や干渉(接触)を起こすことなく、作業対象Xに対する予定の作業、すなわちユーザが入力した作業動作情報に従った処理を実行することが可能となる。
【0277】
アプローチ領域修正部107は、「事前定義地図」上に設定済の「事前設定アプローチ領域」が複数ある場合、「事前設定アプローチ領域」各々に対して、図25を参照して説明したフローに従った処理を実行する。
【0278】
[7.ロボットの情報処理装置が生成した修正アプローチ領域を反映した環境地図を用いたロボットによる作業シーケンスについて]
次に、ロボットの情報処理装置が生成した修正アプローチ領域を反映した「統合環境地図」を用いたロボットによる作業シーケンスについて説明する。
【0279】
上述したように、アプローチ領域修正部107は「事前定義地図」上に定義された「事前設定アプローチ領域」の修正処理を行い、差分障害物検出部106が検出した「事前定義地図」に存在しない新たな障害物である「差分障害物(新規障害物)」を考慮した「修正アプローチ領域」を生成する。
アプローチ領域修正部107が生成した「修正アプローチ領域」は環境地図統合部108へ出力される。
【0280】
環境地図統合部108は、以下の入力情報を利用して「統合環境地図」を作成する。
(a)事前定義地図管理部105から「事前定義地図」、
(b)障害物地図作成部103から「障害物地図」、
(c)アプローチ領域修正部107から、「修正アプローチ領域情報」と「差分障害物情報」
環境地図統合部108は、これらの入力情報を利用して「統合環境地図」を作成する。
【0281】
すなわち、環境地図統合部108は最新の障害物の位置と、「事前定義地図」に記録された「事前設定アプローチ領域」を最新の障害物の位置に基づいて修正した「修正アプローチ領域」を記録した「統合環境地図」を作成する。
【0282】
「統合環境地図」は、先に図5を参照して説明したように「修正アプローチ領域」が記録されている。「修正アプローチ領域」は、既存の障害物や、差分障害物(新規障害物)に接触することなくロボット10が予定の作業を実行可能な作業領域として規定された領域である。
【0283】
以下、ロボット10の情報処理装置100のアプローチ領域修正部107が生成した修正アプローチ領域を反映した「統合環境地図」を用いたロボットによる作業シーケンスについて説明する。
【0284】
先に図3を参照して説明したように、ロボット10に装着された情報処理装置100のシーケンス制御部114は、ユーザ端末30において生成された作業定義データ内の作業シーケンスに基づいて、ロボット10の移動部11と、アーム部12、ハンド部13を動かし、その進捗を管理し、シーケンス制御を行う。
【0285】
シーケンス制御部114は、ロボット制御部113からの作業開始指示に従い、作業定義データ管理部104から受け取った作業シーケンスに基づき、移動体経路計画部121とロボットアーム経路計画部123に、移動体とロボットアームの動作指示を行う。
【0286】
移動部経路計画部121は、シーケンス制御部114からの指示に従い、ロボット10の移動部11を指示位置へ移動させる。
【0287】
移動体経路計画部121には、シーケンス制御部114から主に下記の指示が入力される。
*経由点への移動指示
*作業対象のアプローチ領域への移動指示
【0288】
移動体経路計画部121は、これらの指示に応じて、環境地図統合部108が生成した「統合環境地図」を用いて、指示された動作を実現するための経路を生成する。
【0289】
移動部経路計画部121は、環境地図統合部108が生成した「統合環境地図」と、自己位置推定部102で推定された自己位置を基に、シーケンス制御部114が指示するロボット10の移動経路上の経由点や、各作業位置での作業可能領域であるアプローチ領域を、障害物を回避しながら走行可能な経路情報(走行ルート情報)を生成し、生成した経路情報を移動体制御部122に出力する。
【0290】
なお、移動部経路計画部121が実行する現在位置から経由点までの移動計画生成処理に際しては、移動経路生成の既存手法である例えばAスター(A*)やRRT(Rapidly-exploring random tree)を利用することが可能である。
【0291】
移動部経路計画部121が実行するアプローチ領域への移動経路生成処理の具体例について説明する。
なお、移動部経路計画部121は、事前設定アプローチ領域を修正した修正アプローチ領域がある場合は、修正アプローチ領域への移動経路生成処理を行う。事前設定アプローチ領域を修正した修正アプローチ領域がない場合は、事前設定アプローチ領域への移動経路生成処理を行う。
【0292】
移動部経路計画部121は、まずアプローチ領域(修正アプローチ領域または事前設定アプローチ領域)内からアプローチ位置の候補を選定する。
アプローチ領域内はどこでも障害物と干渉(接触)せずに作業対象に作業することが可能であることが確認されているので、アプローチ領域内であれば、どこを選んでも問題ない。
【0293】
例えば、移動時の制御誤差や自己位置推定の誤差等により発生する移動位置の誤差を考慮するならば、アプローチ領域の内部、中心よりの点を採用した方がよい。具体的には、アプローチ領域を三角形などの凸多角形の組み合わせに分割した上、分割した凸多角形のそれぞれの中心(重心)の中で、外周部から最も離れた点を採用してもよい。
【0294】
また、作業シーケンスにおける次の作業・目標位置を考慮して、最短経路となるようなアプローチ位置を選定してもよい。
例えば、先に説明した図9に示す作業シーケンスに従った作業を実行する場合のロボット10の動作例について図28を参照して説明する。
【0295】
ロボット10は、図28に示すように、経由点Aをスタート後、
経由点B→作業対象Xに対して作業→経由点C
この順に移動を行う。
作業対象Xに対して作業するためのアプローチ位置をAXとする。
【0296】
この場合、移動部経路計画部121は、経由点Bから経由点Cまでの移動距離を最短とするアプローチ位置AXを決定する。すなわち、
経由点Bから経由点Cまでの移動距離=距離(B-AX)+距離(AX-C)
上記距離が最短となるアプローチ領域内のアプローチ位置AXを算出する。
【0297】
アプローチ位置AXの位置を決定したら、その点AXを経由する経路、すなわち、
経由点B→アプローチ位置AX→経由点C
これらの点を結ぶ経路生成を行う。
経路生成の方法としては、経由点への移動と同様に、例えばAスター(A*)やRRTを用いることが可能である。
【0298】
また、移動部経路計画部121が選択候補としたアプローチ位置の周辺が狭隘でアプローチ位置の決定に失敗した場合は、他のアプローチ位置候補を選択して、再度経路生成を試みる。
【0299】
他のアプローチ位置の候補位置の選定方法としては、例えば、アプローチ位置の候補選定時の次点の候補(例えば、前後の経由点との移動距離が2番目に短い点)に変更したり、アプローチ領域内からランダムに点を選択したり、現在のアプローチ位置の候補から一定距離離れた点を使用するといったアルゴリズムの適用が可能である。
【0300】
また、移動体経路計画部121が経路を生成するタイミングは、シーケンス制御部114から動作指示を受けたタイミングだけでなく、作業シーケンスに記述された移動指示について事前に生成してもよい。
【0301】
また、環境地図統合部108で統合環境地図が更新されたタイミングや、差分障害物検出部106で新たな差分障害物が検出され、環境地図統合部108においてその差分障害物を反映した統合環境地図を生成したタイミングで経路生成を行ってもよい。
移動体経路計画部121で経路が生成されたら、その経路は移動体制御部122に渡される。
【0302】
移動体制御部122は、移動体経路計画部121が生成した経路情報(走行ルート情報)と、自己位置推定部102で推定されたロボット10の自己位置に基づいて、経路情報(走行ルート情報)に従ってロボット10を移動させるように、ロボットの移動部11を制御する。すなわち、移動体経路計画部121が生成した経路情報(走行ルート情報)の経路を追従するようにロボットを走行させる。
経路追従制御アルゴリズムとしては、例えば、Pure Pursuitなどの利用が可能である。
【0303】
ロボットアーム経路計画部123は、シーケンス制御部114からの指示に従い、指示された作業、すなわち作業定義データで設定された作業を行うためのロボット10のアーム部12やハンド部13の経路(軌跡)を計画し、生成した経路(軌跡)をロボットアーム制御部124に出力する。
【0304】
また、ロボットアーム経路計画部123は、ロボット10に搭載されたセンサ101を構成するカメラの撮影情報を用いて作業対象の位置をより精密に測定し、その測定結果に基づき目標位置を修正し、合わせて軌道を修正してもよい。
【0305】
ロボットアーム経路計画部123が生成したロボットアームの軌道はロボットアーム制御部124に渡され、ロボットアーム制御部124は生成軌道に追従するようにロボットアームを制御する。
【0306】
すなわち、ロボットアーム制御部124は、ロボットアーム経路計画部123が生成したロボット10のアーム部12やハンド部13の経路(軌跡)を用いてロボット10のアーム部12やハンド部13が動くように、ロボット10のアーム部やハンド部13の関節等の駆動部を駆動する。例えばロボット10のアーム部やハンド部13の関節等のモータドライバを制御する。
【0307】
以上、説明したように、本開示のロボット制御処理では、ロボット10が作業対象物に対する作業を行う際に障害物に接触しない「事前設定アプローチ領域」や障害物情報を記録した「事前定義地図」を生成する。
次に、ロボット10の走行中のセンシング結果に基づいて、「事前定義地図」にない差分障害物を検出する。
さらに、「事前設定アプローチ領域」の修正処理として、差分障害物との干渉(接触)を確認し、干渉(接触)が発生する領域を削除した「修正アプローチ領域」を生成する。
【0308】
「修正アプローチ領域」の生成時には、「事前設定アプローチ領域」内にのみサンプリング点を設定して判定処理を行う。この処理を行うことで、作業定義データの作成後に、障害物が増えた際、演算量を大きく増やすことなくアプローチ領域を修正することが可能となり、演算遅延によりロボット作業が停止したしまう可能性を低減できる。
【0309】
なお、本開示のロボット10は実施例に記載した車輪などの移動機構で地面を走行するものに限らない。例えば、水上、空中を移動するものでもよい。なお、アプローチ領域も3次元の広がりを持つ領域として設定可能であり、この場合は、アプローチ領域空間を、3次元表現(例えばボクセルマップなど)を用いて表現する。
【0310】
[8.本開示の情報処理装置のハードウェア構成例について]
次に、本開示の情報処理装置のハードウェア構成の一例について説明する。
【0311】
図29を参照して本開示の情報処理装置のハードウェア構成の一例について説明する。
なお、図29に示す情報処理装置のハードウェア構成は、ロボット10に装着された情報処理装置100のハードウェア構成の一構成例である。また、ユーザ端末30のハードウェア構成の一構成例でもある。
【0312】
CPU(Central Processing Unit)301は、ROM(Read Only Memory)302、または記憶部308に記憶されているプログラムに従って各種の処理を実行するデータ処理部として機能する。例えば、上述した実施例において説明したシーケンスに従った処理を実行する。RAM(Random Access Memory)303には、CPU301が実行するプログラムやデータなどが記憶される。これらのCPU301、ROM302、およびRAM303は、バス304により相互に接続されている。
【0313】
CPU301はバス304を介して入出力インタフェース305に接続され、入出力インタフェース305には、各種スイッチ、キーボード、タッチパネル、マウス、マイクロホン、ユーザ入力部などからなる入力部306と、ディスプレイ、スピーカーなどからなる出力部307が接続されている。
【0314】
なお、ロボット10に装着された情報処理装置100の場合、入力部306には、カメラ、LiDAR等各種センサ321からのセンサ検出情報も入力される。
また、ロボット10に装着された情報処理装置100の場合、出力部307は、ロボット等の駆動を行う駆動部322に対する駆動情報も出力する。
【0315】
CPU301は、入力部306から入力される指令や状況データ等を入力し、各種の処理を実行し、処理結果を例えば出力部307に出力する。
入出力インタフェース305に接続されている記憶部308は、例えばフラッシュメモリ、ハードディスク等からなり、CPU301が実行するプログラムや各種のデータを記憶する。通信部309は、インターネットやローカルエリアネットワークなどのネットワークを介したデータ通信の送受信部として機能し、外部の装置と通信する。
また、CPUの他、カメラから入力される画像情報などの専用処理部としてGPU(Graphics Processing Unit)を備えてもよい。
【0316】
入出力インタフェース305に接続されているドライブ310は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア311を駆動し、データの記録あるいは読み取りを実行する。
【0317】
[9.本開示の構成のまとめ]
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
【0318】
なお、本明細書において開示した技術は、以下のような構成をとることができる。
(1) ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
前記アプローチ領域修正部は、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理装置。
【0319】
(2) 前記アプローチ領域修正部は、
前記事前設定アプローチ領域の外部にはサンプリング点を設定せず、
前記事前設定アプローチ領域の内部に設定したサンプリング点が、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定する処理を実行して前記修正アプローチ領域を生成する(1)に記載の情報処理装置。
【0320】
(3) 前記アプローチ領域修正部は、
前記事前設定アプローチ領域の内部に設定したサンプリング点のみに対して、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定し、
前記差分障害物に前記ロボットが接触することなく作業可能であると判定されたサンプリング点のみによって構成される領域を前記修正アプローチ領域として設定する(1)または(2)に記載の情報処理装置。
【0321】
(4) 前記アプローチ領域修正部は、
前記事前設定アプローチ領域の内部に設定したサンプリング点の各々について、
前記差分障害物に前記ロボットが接触することなく、予め設定された作業対象物に対して予め設定された作業動作が可能であるか否かを判定する(3)に記載の情報処理装置。
【0322】
(5) 前記事前定義地図は、
前記ロボットの走行開始前に作成された地図である(1)~(4)いずれかに記載の情報処理装置。
【0323】
(6) 前記事前定義地図は、
外部装置から前記情報処理装置に入力された地図である(1)~(5)いずれかに記載の情報処理装置。
【0324】
(7) 前記情報処理装置は、
前記事前定義地図を含む作業定義データを管理する作業定義データ管理部を有し、
前記アプローチ領域修正部は、
前記作業定義データ管理部から前記事前定義地図を入力し、
前記差分障害物検出部から、前記事前定義地図に存在しない新たな障害物に関する情報である差分障害物情報を入力して、
前記修正アプローチ領域を生成する(1)~(6)いずれかに記載の情報処理装置。
【0325】
(8) 前記情報処理装置は、
前記事前定義地図を含む作業定義データを管理する作業定義データ管理部を有し、
前記作業定義データ管理部は、
(a)事前定義地図
(b)作業シーケンス情報
(c)作業動作情報
上記(a)~(c)各データを有する作業定義データを管理する(1)~(7)いずれかに記載の情報処理装置。
【0326】
(9) 前記情報処理装置は、
前記ロボットの動作シーケンスを制御するシーケンス制御部を有し、
前記シーケンス制御部は、
前記作業定義データ管理部から入力する作業シーケンス情報に従って、前記ロボットの作業シーケンスを制御する(8)に記載の情報処理装置。
【0327】
(10) 前記情報処理装置は、
前記アプローチ領域修正部が生成した修正アプローチ領域を記録した統合環境地図を生成する環境地図統合部を有する(1)~(9)いずれかに記載の情報処理装置。
【0328】
(11) 前記環境地図統合部は、
前記事前定義地図と、
前記アプローチ領域修正部が生成した修正アプローチ領域を入力して、
修正アプローチ領域を記録した統合環境地図を生成する(10)に記載の情報処理装置。
【0329】
(12) 前記情報処理装置は、
前記アプローチ領域修正部が生成した修正アプローチ領域を記録した統合環境地図を生成する環境地図統合部と、
前記環境地図統合部が生成した統合環境地図を用いて前記ロボットの移動経路を計画する経路計画部を有する(1)~(11)いずれかに記載の情報処理装置。
【0330】
(13) 前記アプローチ領域修正部は、
過去に実行したアプローチ領域修正処理において生成した生成済み修正アプローチ領域に対して、新たに発生した差分障害物を考慮して再度、修正した再修正アプローチ領域を生成する処理を実行する構成であり、
前記アプローチ領域修正部は、
前記生成済み修正アプローチ領域の内部に設定したサンプリング点について、前記新たに発生した差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記再修正アプローチ領域を生成する(1)~(12)いずれかに記載の情報処理装置。
【0331】
(14) ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムであり、
前記ユーザ端末は、
前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
前記ロボットに装着された前記情報処理装置は、
前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、
前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有し、
前記アプローチ領域修正部は、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理システム。
【0332】
(15) 前記ユーザ端末は、
(a)事前定義地図
(b)作業シーケンス情報
(c)作業動作情報
上記(a)~(c)各データを有する作業定義データを前記ロボットの前記情報処理装置に入力し、
前記ロボットの前記情報処理装置は、
上記(a)~(c)各データを有する作業定義データを利用して、前記修正アプローチ領域の生成処理と、
前記修正アプローチ領域を反映した統合環境地図の生成処理と、
前記統合環境地図を参照した前記ロボットの制御処理を実行する(14)に記載の情報処理システム。
【0333】
(16) 前記ロボットの前記情報処理装置は、
前記修正アプローチ領域の生成処理において、
前記事前設定アプローチ領域の外部にはサンプリング点を設定せず、
前記事前設定アプローチ領域の内部に設定したサンプリング点が、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定する処理を実行して前記修正アプローチ領域を生成する(14)または(15)に記載の情報処理システム。
【0334】
(17) 情報処理装置において実行する情報処理方法であり、
差分障害物検出部が、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出ステップと、
アプローチ領域修正部が、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正ステップを実行し、
前記アプローチ領域修正ステップは、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成するステップである情報処理方法。
【0335】
(18) ユーザ端末と、ロボットに装着された情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
前記ユーザ端末が、
前記ロボットの走行環境の障害物の位置と、前記ロボットによる作業を前記障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を含む事前定義地図を生成して前記ロボットに装着された前記情報処理装置に入力し、
前記ロボットに装着された前記情報処理装置が、
前記ロボットの走行環境情報を取得するセンサの情報に基づいて、
前記ユーザ端末から入力した前記事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出処理と、
前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正処理を実行し、
前記アプローチ領域修正処理において、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成する情報処理方法。
【0336】
(19) 情報処理装置において情報処理を実行させるプログラムであり、
差分障害物検出部に、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出させる差分障害物検出ステップと、
アプローチ領域修正部に、前記事前定義地図に記録された領域であり、前記ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、前記差分障害物を考慮して修正して修正アプローチ領域を生成させるアプローチ領域修正ステップを実行させ、
前記アプローチ領域修正ステップにおいては、
前記事前設定アプローチ領域の内部に設定したサンプリング点について、前記差分障害物に前記ロボットが接触することなく作業可能であるか否かを判定して、前記修正アプローチ領域を生成させるプログラム。
【0337】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
【0338】
また、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【産業上の利用可能性】
【0339】
以上、説明したように、本開示の一実施例の構成によれば、事前定義地図にない新たな障害物が発生した際に、ロボットの作業領域として規定されるアプローチ領域を迅速に修正可能とした装置、方法が実現される。
具体的には、例えば、ロボットの走行環境情報を取得するセンサの情報に基づいて、事前定義地図に記録された障害物との差分に相当する差分障害物を検出する差分障害物検出部と、事前定義地図に記録された領域であり、ロボットによる作業を障害物に接触することなく実行可能であると判定された事前設定アプローチ領域を、差分障害物を考慮して修正して修正アプローチ領域を生成するアプローチ領域修正部を有する。アプローチ領域修正部は、事前設定アプローチ領域の内部に設定したサンプリング点について差分障害物にロボットが接触することなく作業可能であるか否かを判定して修正アプローチ領域を生成する。
本構成により、事前定義地図にない新たな障害物が発生した際に、ロボットの作業領域として規定されるアプローチ領域を迅速に修正可能とした装置、方法が実現される。
【符号の説明】
【0340】
10 ロボット
11 移動部
12 アーム部
13 ハンド部
20 ユーザ
30 ユーザ端末
100 情報処理装置
101 センサ
102 自己位置推定部
103 障害物地図作成部
104 作業定義データ管理部
105 事前定義地図管理部
106 差分障害物検出部
107 アプローチ領域修正部
108 環境地図統合部
111 通信IIF
112 ロボット操作UI
113 ロボット制御部
114 シーケンス制御部
121 移動部経路計画部
122 移動部制御部
123 ロボットアーム経路計画部
124 ロボットアーム制御部
200 ユーザ端末
201 ユーザインタフェース(UI)
202 ユーザインタフェース(UI)制御部
203 ロボット操作情報管理部
204 作業定義データ管理部
205 アプローチ領域生成部
206 事前定義地図生成部
207 作業定義データ記憶部
208 通信IF
301 CPU
302 ROM
303 RAM
304 バス
305 入出力インタフェース
306 入力部
307 出力部
308 記憶部
309 通信部
310 ドライブ
311 リムーバブルメディア
321 センサ
322 駆動部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29