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

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

▶ 株式会社安川電機の特許一覧

特許7566810ロボットシステム、プランニングシステム、ロボット制御方法、およびプランニングプログラム
<>
  • 特許-ロボットシステム、プランニングシステム、ロボット制御方法、およびプランニングプログラム 図1
  • 特許-ロボットシステム、プランニングシステム、ロボット制御方法、およびプランニングプログラム 図2
  • 特許-ロボットシステム、プランニングシステム、ロボット制御方法、およびプランニングプログラム 図3
  • 特許-ロボットシステム、プランニングシステム、ロボット制御方法、およびプランニングプログラム 図4
  • 特許-ロボットシステム、プランニングシステム、ロボット制御方法、およびプランニングプログラム 図5
  • 特許-ロボットシステム、プランニングシステム、ロボット制御方法、およびプランニングプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-04
(45)【発行日】2024-10-15
(54)【発明の名称】ロボットシステム、プランニングシステム、ロボット制御方法、およびプランニングプログラム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20241007BHJP
   B25J 9/10 20060101ALI20241007BHJP
【FI】
B25J13/08 A
B25J9/10 A
【請求項の数】 18
(21)【出願番号】P 2022035461
(22)【出願日】2022-03-08
(65)【公開番号】P2023130891
(43)【公開日】2023-09-21
【審査請求日】2023-01-19
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】100088155
【弁理士】
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100145012
【弁理士】
【氏名又は名称】石坂 泰紀
(74)【代理人】
【識別番号】100171099
【弁理士】
【氏名又は名称】松尾 茂樹
(74)【代理人】
【識別番号】100144440
【弁理士】
【氏名又は名称】保坂 一之
(72)【発明者】
【氏名】丸野 元春
(72)【発明者】
【氏名】前田 貴宏
(72)【発明者】
【氏名】有田 裕太
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2013-184273(JP,A)
【文献】特開平10-063324(JP,A)
【文献】特開2015-136772(JP,A)
【文献】米国特許出願公開第2021/0086359(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
ワークに対して予め定義された作業要件であって、ロボットによる処理が適用される該ワーク上の被処理領域と、該ワークを示すモデルであるワークモデルに対する該被処理領 域の位置である相対的な位置とを含む作業要件を記憶する記憶部であって、該作業要件 が、物理的な変化を受ける該ワーク上の線状の領域を該被処理領域として含む、該記憶部と、
前記ワークが配置された作業空間における、前記ワークの位置と、前記ワークの向きおよび傾きの少なくとも一方である前記ワークの姿勢とを、前記ワークモデルに基づいて、作業環境としてリアルタイムに認識する認識部と、
前記リアルタイムに認識されたワークの位置および姿勢と、前記相対的な位置とに基づいて、前記作業空間における前記被処理領域を特定し、前記作業空間に配置された前記ロボット前記ワークに対して前記物理的な変化を与える処理を行うための該ロボットのパスを、該特定された被処理領域の位置に基づいて生成する生成部と、
前記パスに基づいて前記ロボットを制御する制御部と、
を備えるロボットシステム。
【請求項2】
前記生成部は、前記ロボットのエンドエフェクタが前記ワークに対して前記物理的な変 化を与えるための該エンドエフェクタのパスを、前記特定された被処理領域の前記位置に 基づいて生成する、
請求項1に記載のロボットシステム。
【請求項3】
前記生成部は、前記特定された被処理領域の前記位置に基づいて、該被処理領域に沿っ た作業パスを前記パスの少なくとも一部として生成する、
請求項2に記載のロボットシステム。
【請求項16】
ワークに対して予め定義された作業要件であって、ロボットによる処理が適用される該ワーク上の被処理領域と、該ワークを示すモデルであるワークモデルに対する該被処理領 域の位置である相対的な位置とを含む作業要件を記憶する記憶部であって、該作業要件 が、物理的な変化を受ける該ワーク上の線状の領域を該被処理領域として含む、該記憶部と、
前記ワークが配置された作業空間における、前記ワークの位置と、前記ワークの向きおよび傾きの少なくとも一方である前記ワークの姿勢とを、前記ワークモデルに基づいて、作業環境としてリアルタイムに認識する認識部と、
前記リアルタイムに認識されたワークの位置および姿勢と、前記相対的な位置とに基づいて、前記作業空間における前記被処理領域を特定し、前記作業空間に配置された前記ロボット前記ワークに対して前記物理的な変化を与える処理を行うための該ロボットのパスを、該特定された被処理領域の位置に基づいて生成する生成部と、
を備えるプランニングシステム。
【請求項17】
少なくとも一つのプロセッサを備えるロボットシステムによって実行されるロボット制御方法であって、
ワークに対して予め定義された作業要件であって、ロボットによる処理が適用される該ワーク上の被処理領域と、該ワークを示すモデルであるワークモデルに対する該被処理領 域の位置である相対的な位置とを含む作業要件を記憶するステップであって、該作業要 件が、物理的な変化を受ける該ワーク上の線状の領域を該被処理領域として含む、該ステップと、
前記ワークが配置された作業空間における、前記ワークの位置と、前記ワークの向きおよび傾きの少なくとも一方である前記ワークの姿勢とを、前記ワークモデルに基づいて、作業環境としてリアルタイムに認識するステップと、
前記リアルタイムに認識されたワークの位置および姿勢と、前記相対的な位置とに基づいて、前記作業空間における前記被処理領域を特定し、前記作業空間に配置された前記ロボット前記ワークに対して前記物理的な変化を与える処理を行うための該ロボットのパスを、該特定された被処理領域の位置に基づいて生成するステップと、
前記パスに基づいて前記ロボットを制御するステップと、
を含むロボット制御方法。
【請求項18】
ワークに対して予め定義された作業要件であって、ロボットによる処理が適用される該ワーク上の被処理領域と、該ワークを示すモデルであるワークモデルに対する該被処理領 域の位置である相対的な位置とを含む作業要件を記憶するステップであって、該作業要 件が、物理的な変化を受ける該ワーク上の線状の領域を該被処理領域として含む、該ステップと、
前記ワークが配置された作業空間における、前記ワークの位置と、前記ワークの向きおよび傾きの少なくとも一方である前記ワークの姿勢とを、前記ワークモデルに基づいて、作業環境としてリアルタイムに認識するステップと、
前記リアルタイムに認識されたワークの位置および姿勢と、前記相対的な位置とに基づいて、前記作業空間における前記被処理領域を特定し、前記作業空間に配置された前記ロボット前記ワークに対して前記物理的な変化を与える処理を行うための該ロボットのパスを、該特定された被処理領域の位置に基づいて生成するステップと、
をコンピュータに実行させるプランニングプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の一側面は、ロボットシステム、プランニングシステム、ロボット制御方法、およびプランニングプログラムに関する。
【背景技術】
【0002】
特許文献1には、ロボット作業環境内に複数設けられた計測用ロボット姿勢におけるロボットコントローラ上の位置情報を記憶する計測用姿勢記憶部と、センサの検出結果に基いて複数の計測用ロボット姿勢のそれぞれについて計測位置を取得する計測位置取得部と、計測位置に基づいてロボットの動作位置を補正する補正部とを備えるロボットシステムが記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特許第6860843号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の一側面では、ロボットの自律性を高めることが望まれている。
【課題を解決するための手段】
【0005】
本開示の一側面に係るロボットシステムは、ワークに対して予め定義された作業要件を記憶する記憶部と、ワークが配置された作業空間の環境を作業環境として認識する認識部と、作業要件および作業環境に基づいて、作業空間に配置されたロボットにワークを処理させるための該ロボットのパスを生成する生成部と、パスに基づいてロボットを制御する制御部とを備える。
【0006】
本開示の一側面に係るロボット制御方法は、少なくとも一つのプロセッサを備えるロボットシステムによって実行されるロボット制御方法であって、ワークに対して予め定義された作業要件を記憶するステップと、ワークが配置された作業空間の環境を作業環境として認識するステップと、作業要件および作業環境に基づいて、作業空間に配置されたロボットにワークを処理させるための該ロボットのパスを生成するステップと、パスに基づいてロボットを制御するステップとを含む。
【発明の効果】
【0007】
本開示の一側面によれば、ロボットの自律性を高めることができる。
【図面の簡単な説明】
【0008】
図1】ロボットシステムの構成の一例を示す図である。
図2】ロボットコントローラのハードウェア構成の一例を示す図である。
図3】ワークの作業要件を定義する処理の一例を示すフローチャートである。
図4】ワークの作業要件の一例を示す図である。
図5】ロボットへの指令を生成する処理の一例を示すフローチャートである。
図6】作業空間におけるロボットのパスの一例を示す図である。
【発明を実施するための形態】
【0009】
以下、添付図面を参照しながら本開示での実施形態を詳細に説明する。図面の説明において同一または同等の要素には同一の符号を付し、重複する説明を省略する。
【0010】
[システムの概要]
本開示に係るロボットシステムは、現実の作業空間に配置されたロボットに所定のモーションを実行させることにより、加工、組立などの様々な作業を自動化する制御システムである。ロボットシステムは、ワークに対して予め定義された作業要件と、ワークが配置された作業空間の環境である作業環境とに基づいて、ロボットのパスを生成する。作業要件とは、ワークに対して実行すべき処理を示す情報をいう。作業環境は作業空間の実際の状況であるともいえる。パスはロボットの軌道を示し、ロボットへの指令の少なくとも一部を構成する。したがって、ロボットシステムは、ロボットのモーションを決定するためのコンピュータシステムであるプランニングシステムを含む。ロボットシステムはそのパスを含む動作プログラムを指令として生成し、この指令に基づいてロボットを制御する。ロボットはその制御に従って少なくとも一つのワークを処理する。
【0011】
少なくとも一つのワークに対する一連の処理はジョブともいわれる。一つのワークに対する処理は、ジョブを構成する最小単位の処理であるタスクともいわれる。作業要件はタスクを示すといえる。
【0012】
ジョブを実行するためのロボットのパスは2種類のパスに分類できる。一方のパスは、タスクにおけるロボットの軌道であるパスであり、本開示ではこれを作業パスという。他方のパスは、ジョブの始点と最初のタスクとの間、連続する二つのタスク間、または最後のタスクとジョブの終点との間を結ぶパスであり、本開示ではこれをエアカットパスという。隣接するタスク間を結ぶエアカットパスは、先行するタスクにおける作業パスの終点と、後続のタスクにおける作業パスの始点とを結ぶ。ロボットシステムは作業要件および作業環境に基づいて、個々の作業パスおよび個々のエアカットパスを生成し、これにより、ジョブを実行するためのロボットのパスの全体を生成する。
【0013】
一例では、ロボットシステムは、ロボットに関する教示点を用いることなく、作業要件および作業環境に基づいてロボットのパスを設定する。このロボットシステムによって、ワークに対して実行すべき処理(すなわち作業要件)をユーザが教えさえすれば、ロボットは実際の状況(すなわち作業環境)に応じてそのワークを自律的にかつ適切に処理できる。教示点とは、パスを規定するために設定される基準点をいい、人手により設定される。この教示点は、原点がロボット(例えばロボットの基台)に定められた座標系であるロボット座標系において設定される。「ロボットに関する教示点」とは、ロボットを動作させるためにロボット座標系に設定された教示点をいう。
【0014】
従来技術において、教示点の設定はティーチングともいわれる。また、教示点に基づいてロボットを制御する手法としてティーチングプレイバックがある。これらのような従来技術では、ロボット座標系におけるロボットの位置を指定する必要がある。しかし、ユーザにとっては、その位置の指定とタスクとの対応関係が直感的に分かりにくい。加えて、従来技術では、タスクに直接関係しないエアカットパスを生成するためにもティーチングが必要である。更に、ロボットとワークとの相対的な位置関係などの作業環境が変化した場合には、ユーザがエアカットパスを作り直す必要がある。これらの理由により、従来技術は、タスクまたは作業手順が頻繁に変更される多品種変動生産には適さない。
【0015】
上述したように、一例では、ロボットシステムは、ロボット座標系における教示点を用いることなく、すなわち、ティーチングおよびティーチングプレイバックを要することなく、作業要件および作業環境に基づいてロボットのパスを設定する。ユーザはワークに対する作業を指示するだけでよく、ティーチングは不要である。ロボットシステムは、所定のセンサから得られるデータまたは作業環境を示すモデルを用いて作業環境を自動的に認識するので、作業環境に応じてロボットを柔軟に動作させることが可能になる。加えて、ワークを位置決めしたりワークを治具で固定したりしなくても、ジョブの実行が可能になる。ワークに対する作業要件は、ユーザが直感的に作成できる情報であるので、ユーザはロボットを意識することなく、より直感的にロボットにワークを処理させることができる。このことはユーザの負荷を大幅に軽減し得る。これらの理由により、ロボットシステムによって、多品種変動生産へのロボットの導入を促進させることが可能になる。
【0016】
一例では、ロボットシステムは作業空間にワークが配置されたことに応答して作業環境をリアルタイムに認識する。そして、ロボットシステムはそのワークの作業要件とその作業環境とに基づいて、パスを含む動作プログラムを指令としてリアルタイムに生成し、その指令に基づいてロボットをリアルタイムに制御する。このように、ロボットシステムはロボットの動作をオンラインでプランニングする。このようなオンライン制御も、ロボットの自律性の向上に貢献する。
【0017】
[システムの構成]
図1は、一例に係るロボットシステム1の構成を示す図である。ロボットシステム1は、作業空間9に配置されたロボット2と、ロボット2のモータを制御するモータ制御装置3と、モータ制御装置3に制御信号を出力するロボットコントローラ10とを備える。ロボットコントローラ10とモータ制御装置3とは通信ネットワークを介して互いに接続する。ロボットコントローラ10は別の通信ネットワークを介して上位コントローラ20および稼働実績データベース30と接続する。装置間を接続する通信ネットワークは、有線ネットワークでも無線ネットワークでもよい。通信ネットワークはインターネットおよびイントラネットの少なくとも一方を含んで構成されてもよい。あるいは、通信ネットワークは単純に1本の通信ケーブルによって実現されてもよい。図1は一つのロボット2および一つのロボットコントローラ10を示すが、ロボットシステム1は複数のロボット2または複数のロボットコントローラ10を備えてもよい。一つのロボットコントローラ10は複数のロボット2と接続してもよい。
【0018】
ロボット2は、動力を受けて目的に応じた所定の動作を行って、有用な仕事を実行する装置である。一例では、ロボット2は複数の関節を備え、先端部にエンドエフェクタ2aを保持した状態で様々な処理を実行できるように構成される。関節は駆動対象の一例である。複数の関節のそれぞれには関節軸が設定される。アーム、旋回部などのようなロボット2のいくつかの構成要素は関節軸を中心に回転し、この結果、ロボット2は所定の範囲内において先端部の位置および姿勢を自在に変更し得る。一例では、ロボット2は多軸のシリアルリンク型の垂直多関節ロボットである。ロボット2は、6軸の垂直多関節ロボットでもよいし、6軸に1軸の冗長軸を追加した7軸の垂直多関節ロボットでもよい。ロボット2は自走可能な移動ロボットでもよく、例えば、無人搬送車(AGV)により支持されるロボットでもよい。あるいは、ロボット2は所定の場所に固定された据置型ロボットでもよい。
【0019】
エンドエフェクタ2aはワークに作用する機器であり、例えば、ワークに対して何らかの物理的な変化を与える機器である。エンドエフェクタ2aは研磨工具、溶接ガン、プレス機、シーリングノズル、ねじ締め装置などのような様々な機器であり得る。
【0020】
モータは、モータ制御装置3から供給される電力に応じて、ロボット2の駆動対象を駆動させるための動力を発生させる装置である。個々のモータによって個々の駆動対象が動作し、その結果、ロボット2がエンドエフェクタ2aを用いてワークに対して所定の仕事を実行する。モータは、駆動対象を回転させる回転型モータであってもよいし、駆動対象を直線に沿って変位させるリニア型モータであってもよい。モータは、同期電動機であってもよいし、誘導電動機であってもよい。モータは、SPM(Surface Permanent Magnet)モータ、IPM(Interior Permanent Magnet)モータ等の永久磁石型の同期電動機であってもよい。モータは、シンクロナスリラクタンスモータ(synchronous reluctance motor)のような、永久磁石を有しない同期電動機であってもよい。モータはDCモータであってもよいしACモータであってもよい。
【0021】
ロボット2は、モータ制御装置3からの電力によって動作するロボット2の応答を検出する装置である少なくとも一つのセンサを備えてもよい。応答とは、ロボットを制御するための命令である指令に対する該ロボットの出力をいう。例えば、応答はロボット2の動作および状態の少なくとも一方に関する情報を示す。応答はモータの動作および状態の少なくとも一方に関する情報を示してもよく、例えば、モータの軸速度と磁極位置との少なくとも一方を示してもよい。モータが回転型である場合には、モータによる駆動対象の回転角度が「位置」に相当し、モータによる駆動対象の回転速度が「速度」に相当する。応答は駆動対象の動作および状態の少なくとも一方に関する情報を示してもよく、例えば、駆動対象の位置、速度、および力の少なくとも一つを示してもよい。センサは応答を示す応答信号をロボットコントローラ10に送信する。応答は、センサによって得られる値そのものでもよいし、所与の演算またはアルゴリズムによって算出または加工される値によって表されてもよい。センサの例として、モータの動作速度に比例した周波数のパルス信号を出力するロータリーエンコーダが挙げられる。ロータリーエンコーダはモータの位置および速度の両方を取得できる。
【0022】
モータ制御装置3は、ロボットコントローラ10からの制御信号(すなわち指令)にモータの出力を追従させるための装置である。モータ制御装置3は、ロボットコントローラ10からの制御信号に基づいて、モータを動かすための電力を生成し、その電力をモータに供給する。この供給される電力は、トルク指令、電流指令などのような駆動力指令に相当する。モータ制御装置3は例えば、インバータであってもよいし、サーボアンプであってもよい。モータ制御装置3はロボット2内に組み込まれてもよい。モータ制御装置3は、自機の応答を検出するセンサを備えてもよい。
【0023】
上位コントローラ20は、ロボット2の制御をロボットコントローラ10に指示する装置である。上位コントローラ20はCAM(Computer Aided Engineering)に関連する装置であり得る。一例では、上位コントローラ20は、作業空間9に配置されたワークをロボット2に処理させるための要求をロボットコントローラ10に送信する。
【0024】
稼働実績データベース30は、ロボット2または別のロボットが過去にワークを処理したことを示す稼働実績データを記憶する装置である。図1は稼働実績データベース30を独立した装置として示すが、稼働実績データベース30はロボットコントローラ10、上位コントローラ20、または他の装置内に設けられてもよい。稼働実績データは、これから制御しようとするロボット2によって実行された処理を示してもよいし、そのロボット2とは別の1以上のロボットによって実行された処理を示してもよいし、その双方の処理を示してもよい。あるいは、稼働実績データはロボットの周辺機器(例えばエンドエフェクタ)によって実行された処理を示してもよい。過去の作業空間は、ロボット2が配置された作業空間9でもよいし、作業空間9とは異なる場所でもよい。
【0025】
ロボットコントローラ10は、ロボット2を動作させるための指令を生成し、その指令に基づく制御信号を出力する装置である。ロボットコントローラ10はロボット制御システムの一例である。一例では、ロボットコントローラ10は機能モジュールとして要件定義部11、記憶部12、環境認識部13、順序設定部14、指令生成部15、およびロボット制御部16を備える。要件定義部11は稼働実績データに基づいてワークの作業要件を定義する機能モジュールである。記憶部12は、指令を生成するために必要な情報を記憶する機能モジュールであり、例えば、定義された作業要件を記憶する。環境認識部13は、1以上のワークが配置された作業空間9の環境を作業環境として認識する機能モジュールである。順序設定部14は該1以上のワークの処理順序を設定する機能モジュールである。指令生成部15は、作業要件および作業環境に基づいて、作業空間9に配置されたロボット2に該1以上のワークを処理順序に沿って処理させるための該ロボット2のパスを生成し、そのパスを含む指令を生成する機能モジュールである。ロボット制御部16はその指令に基づいてロボット2を制御する機能モジュールである。
【0026】
図2は、ロボットコントローラ10のハードウェア構成の一例を示す図である。ロボットコントローラ10は回路190を備える。一例では、回路190は、少なくとも一つのプロセッサ191と、メモリ192と、ストレージ193と、少なくとも一つの通信ポート194とを備える。ストレージ193は不揮発性の記憶媒体であり、上記の各機能モジュールを実現するためのプログラムを記憶する。ストレージ193は、例えば少なくとも一つのハードディスクまたは不揮発性メモリにより構成されてよい。メモリ192は、ストレージ193からロードされたプログラム、プロセッサ191による演算結果などを一時的に記憶する。メモリ192は例えば少なくとも一つのランダムアクセスメモリにより構成されてよい。プロセッサ191は、メモリ192と協働してプログラムを実行することで各機能モジュールを構成する。通信ポート194は、プロセッサ191からの指令に従って他の装置との間でデータ通信を行う。例えばロボットコントローラ10は、通信ネットワークNに接続して上位コントローラ20および稼働実績データベース30との間でデータ信号を送受信するための一つの通信ポート194と、モータ制御装置3との間でデータ信号を送受信するための別の通信ポート194とを備える。
【0027】
ロボットコントローラ10の各機能モジュールは、プロセッサ191またはメモリ192の上にロボット制御プログラムを読み込ませてプロセッサ191にそのプログラムを実行させることで実現される。ロボット制御プログラムは、ロボットコントローラ10の各機能モジュールを実現するためのコードを含む。プロセッサ191はロボット制御プログラムに従って通信ポート194を動作させ、メモリ192またはストレージ193におけるデータの読み出しおよび書き込みを実行する。
【0028】
ロボット制御プログラムは、CD-ROM、DVD-ROM、半導体メモリなどの非一時的な記録媒体に固定的に記録された上で提供されてもよい。あるいは、ロボット制御プログラムは、搬送波に重畳されたデータ信号として通信ネットワークを介して提供されてもよい。
【0029】
一例では、ロボット制御プログラムは、作業要件および作業環境に基づいてロボット2のパスを生成するプランニングプログラムを含む。このプランニングプログラムが独立して提供されてもよい。
【0030】
[ロボット制御方法]
本開示に係るロボット制御方法の一例として、図3図6を参照しながら、ロボットコントローラ10により実行される処理手順の例を説明する。図3は、ワークの作業要件を定義する処理の一例を処理フローS1として示すフローチャートである。図4はワークの作業要件の一例を示す図である。図5は、ロボットへの指令を生成する処理の一例を処理フローS2として示すフローチャートである。図6は作業空間におけるロボットのパスの一例を示す図である。ロボットコントローラ10は作業要件の定義に関して処理フローS1を実行し、指令の生成に関して処理フローS2を実行する。
【0031】
(作業要件の定義)
一例では、作業要件はロボットシステム1のユーザによって定義され、ユーザによる所定の操作によって記憶部12に予め格納される。別の例として、作業要件は要件定義部11によって定義されてもよい。例えば、要件定義部11は、ユーザによって定義されて記憶部12に格納された作業要件を更新してもよい。図3を参照しながら、要件定義部11による作業要件の定義の一例を説明する。処理フローS1は、ロボット2または別のロボットが過去の作業空間においてワークを処理して、その処理を示す稼働実績データが稼働実績データベース30に格納された後に実行される。一例では、処理フローS1は複数の型のワークのそれぞれについて実行される。
【0032】
ステップS11では、要件定義部11がワークに対応する稼働実績データを取得する。一例では、要件定義部11は稼働実績データベース30にアクセスして、或る型のワークWPに対応する稼働実績データを読み出す。n個のワークWPが過去に処理された場合には、稼働実績データは、ワークWPについてn回分の処理を示すレコード群を含む。この場合には、要件定義部11はそのレコード群の少なくとも一部を稼働実績データベース30から読み出す。
【0033】
一例では、稼働実績データは、ロボット2または別のロボットによるワークへの処理を表す該ロボットに関する複数の教示点と、処理が実行された過去の作業空間におけるワークの位置とを含む。その「ワークの位置」はロボット座標系における座標値で表される。例えば、その位置は、センサ座標系における座標値をロボット座標系における座標値に変換することで得られてもよい。センサ座標系は、原点がセンサに定められた座標系であり、例えば、原点がカメラのレンズに設定されたカメラ座標系であり得る。稼働実績データで示される教示点およびワークの位置は、現実の作業空間での実際の処理によって得られた値であってもよいし、過去のシミュレーションによって得られた値であってもよい。シミュレーションとは、何らかのシステムの挙動をコンピュータ上で模擬的に現し出す処理をいう。
【0034】
ステップS12では、要件定義部11が稼働実績データに基づいてワークの作業要件を定義する。稼働実績データの複数のレコードを用いる場合に、要件定義部11は回帰などのような統計処理を含む演算によって作業要件を定義してもよい。
【0035】
一例では、要件定義部11は、稼働実績データで示される教示点およびワークの位置に基づいて、ロボットによる処理が適用されたワーク上の領域を被処理領域として特定する。例えば、被処理領域はエンドエフェクタの作用を受けた領域である。被処理領域はワークにおいて処理されるべき場所であり、作業要件の一種である。したがって、要件定義部11はその被処理領域を作業要件の少なくとも一部として定義する。個々の被処理領域は点状、線状、または2次元形状であり得る。要件定義部11は一つのワークに対して1以上の被処理領域を特定する。一例では、要件定義部11は個々の被処理領域の位置および形状を示す座標値をロボット座標系からワーク座標系に変換して、ワーク座標系での座標値によって被処理領域を特定する。ワーク座標系とは、原点がワークに定められた座標系である。
【0036】
一例では、要件定義部11は、ワークを仮想的に示すモデルであるワークモデルを更に用いて被処理領域を特定してもよい。ワークモデルはワークの構造を示す3次元モデルであり、例えばCAD(Computer Aided Design)によって生成される。ワークモデルはワーク座標系を用いて表現されるので、要件定義部11はそのワークモデルに被処理領域を関連付けることができる。この関連付けによって、被処理領域はワークモデルに対する相対的な位置を含むかまたは示す。一例では、「ワークモデルに対する相対的な位置」は、ワーク座標系においてワークモデル上に設定される位置である。
【0037】
要件定義部11は、ロボットがワークにアプローチするアプローチ点を被処理領域の少なくとも一部として特定し、このアプローチ点を含む作業要件を定義してもよい。アプローチ点は、ワークを処理しようとするロボットが最初に該ワークにコンタクトする場所である。
【0038】
要件定義部11は、稼働実績データで示される教示点およびワークの位置に基づいて、ロボットの動作速度を作業要件の少なくとも一部として定義してもよい。例えば、要件定義部11はワークの位置と時間との対応関係の履歴に基づいて、過去の処理におけるロボットの動作速度を推定し、その動作速度を作業要件の少なくとも一部として定義してもよい。
【0039】
要件定義部11は、稼働実績データで示される教示点およびワークの位置に基づいて、ロボットによってワークに適用される力を作業要件の少なくとも一部として定義してもよい。その力の例として、ロボットがワークを押し付ける際に発生する押付力が挙げられる。一例では、要件定義部11はワークの位置と時間との対応関係の履歴と、ロボットまたはエンドエフェクタの仕様を示す仕様データとに基づいて、過去の処理においてロボットによってワークに適用された力を推定し、その力を作業要件の少なくとも一部として定義する。
【0040】
ステップS13では、要件定義部11が、定義された作業要件を示す作業要件データを生成し、その作業要件データを記憶部12に格納する。この結果、作業要件が更新されたり、新規に登録されたりする。一例では、要件定義部11は作業要件とワークモデルとが互いに関連付けられた作業要件データを生成および格納する。作業要件データによって示されるワークモデルおよび被処理領域はいずれもワーク座標系において定義される。したがって、作業要件、ワークモデル、および被処理領域はいずれも、ロボット座標系において設定される教示点とは全く異なる技術である。加えて、処理フローS1は、従来技術であるティーチングとは全く異なる。
【0041】
図4を参照しながら、定義された作業要件の一例を説明する。この例はワークモデル200上に定義された被処理領域210を示す。例えば、被処理領域210はシーリングされるべき場所を示す。被処理領域210は、図4においてX印で示されるアプローチ点211を含む。
【0042】
要件定義部11によって定義される作業要件は、過去に人手によって設定された教示点に基づいてワークを処理したロボットの動作から得られる。したがって、その作業要件は、ワークに対するロボット制御についての経験およびノウハウを反映した情報であるといえる。一例では、アプローチ点211を含む被処理領域210が自動的に定義されるので、ロボットシステム1のユーザは、ワークモデル200さえ用意すれば、該ワークモデル200と被処理領域210とによって示される作業要件を準備できる。上述したように、図4に示す作業要件はユーザによって定義されてもよいことに留意されたい。
【0043】
上述したように、処理フローS1は複数の型のワークのそれぞれについて実行され得る。この場合には、記憶部12は、ロボット2によって処理される可能性がある様々なワークについての作業要件データを記憶し得る。すなわち、記憶部12は複数のワークのそれぞれについての作業要件を記憶してもよい。
【0044】
(指令の生成)
図5を参照しながら、ロボット2を動作させるための指令を生成する処理の一例を説明する。一例では、ロボットシステム1は上位コントローラ20から所定の要求を受信したことに応答して処理フローS2を実行する。
【0045】
処理フローS2は、指令の生成に必要な情報が記憶部12に格納されていることを前提に実行される。上述したように、記憶部12は作業要件データを記憶する。記憶部12は障害物モデルおよびツール情報のうちの少なくとも一方を更に記憶してもよい。障害物モデルは障害物のモデルであり、例えば、障害物の構造を示す3次元モデルによって表現される。ツール情報はロボット2のエンドエフェクタ2aに関する情報であり、例えばエンドエフェクタ2aの構造および仕様を示す。
【0046】
ステップS21では、環境認識部13が、少なくとも一つのワークが配置された作業空間9の環境を作業環境として認識する。一例では、環境認識部13は現在の作業環境をリアルタイムに認識する。一例では、環境認識部13は、作業空間9を監視するセンサから得られるセンサデータに基づいて作業環境を認識してもよい。例えば、そのセンサはカメラなどの撮像装置であり、センサデータはその撮像装置から得られる画像データである。画像データは静止画、映像、または映像の1フレームであってよい。
【0047】
一例では、環境認識部13は1以上のワークのそれぞれの位置を作業環境の少なくとも一部として認識する。環境認識部13は1以上のワークのそれぞれの姿勢を作業環境の少なくとも一部として更に認識してもよい。ワークの位置とは、ワークが配置された場所をいう。ワークの姿勢とは、配置されたワークの向きおよび傾きの少なくとも一方をいう。一例では、環境認識部13はワークモデルに基づいてワークの位置および姿勢を認識してもよい。例えば、環境認識部13は記憶部12に記憶された1以上のワークモデルを用いて画像データを解析し、或るワークモデルに合致した物体をワークとして特定し、そのワークの位置および姿勢を認識する。
【0048】
一例では、環境認識部13はロボット2の位置および姿勢を作業環境の少なくとも一つとして認識する。例えば、環境認識部13はロボット2またはモータ制御装置3から得られる応答に基づいてロボット2の位置および姿勢を認識する。
【0049】
一例では、環境認識部13は、ワークを処理しようとするロボット2にとっての障害物を作業環境の少なくとも一部として認識する。ロボット2が或る一つのワークを処理しようとする場合において、そのワークは障害物ではないことに留意されたい。環境認識部13は障害物の位置および形状を認識する。障害物が可動部を有する場合には、環境認識部13は障害物の特定の姿勢を障害物の形状として認識してもよい。一例では、環境認識部13は、障害物の構造を示す3次元モデルである障害物モデルに基づいて障害物の位置および形状を認識してもよい。例えば、環境認識部13は記憶部12に記憶された1以上の障害物モデルを用いて画像データを解析し、或る障害物モデルに合致した物体を障害物として特定し、その障害物の位置および形状を認識する。
【0050】
ステップS22では、指令生成部15がワークの作業要件を取得する。一例では、指令生成部15は認識された1以上のワークのそれぞれについて、該ワークに対応する作業要件データを記憶部12から読み出して、作業要件を取得する。あるいは、指令生成部15は、上位コントローラ20またはユーザ指示により指定されたワークに対応する作業要件を記憶部12から読み出してもよい。指令生成部15は、取得されたワークの作業要件の少なくとも一部(例えば、動作速度、アプローチ点など)を、認識された作業環境に基づいて調整してもよい。指令生成部15はその調整を、上位コントローラ20またはユーザ指示に従って実行してもよいし、所与のルールに従って自動的に実行してもよい。
【0051】
ステップS23では、指令生成部15が、作業要件および作業環境に基づいて、作業空間9に配置されたワークの被処理領域を特定する。すなわち、指令生成部15は作業空間9において実際に処理されるべきワーク上の場所を特定する。指令生成部15は少なくとも一つのワークのそれぞれについて被処理領域を特定する。指令生成部15は、作業空間9に配置されたワークの位置および姿勢と、作業要件データによって示される相対的な位置とに基づいて、作業空間9における被処理領域を特定してもよい。例えば、指令生成部15はワーク座標系での被処理領域の座標値を、カメラ座標系などのセンサ座標系上での座標値に変換する。指令生成部15は更に、予めキャリブレーションによって同定されたロボット2とセンサ座標系との相対関係を用いて、センサ座標系上の座標値をロボット座標系上の座標値に変換する。指令生成部15はこれら一連の処理によって、作業空間9での被処理領域を特定する。被処理領域がアプローチ点を含む場合には、指令生成部15は、作業要件および作業環境に基づいて、作業空間9に配置されたワークのアプローチ点を更に特定する。
【0052】
ステップS24では、順序設定部14が少なくとも一つのワークの処理順序を設定する。作業空間9内のワークの個数が1であれば、順序設定部14はそのワークの処理順序を1に設定する。一例では、順序設定部14は上位コントローラ20からの指令またはユーザ指示に従って処理順序を設定してもよい。あるいは、順序設定部14は、認識された作業環境における複数のワークの配置に基づいて、処理順序を動的に設定してもよい。「処理順序を動的に設定」とは、作業空間9の現実の状況に応じて処理順序を設定することをいう。順序設定部14は、外部から指定されることなく処理順序を動的に自動で設定してもよい。あるいは、順序設定部14は、リアルタイムに受信された上位コントローラ20またはユーザ指示に従って処理順序を動的に設定してもよい。順序設定部14は、1以上のワークの位置および姿勢に基づいて、該1以上のワークを処理するためのロボット2の動作に関する評価値をシミュレーションなどの手法により算出し、その評価値に基づいて処理順序を設定してもよい。一例では、順序設定部14はロボット2の動作に関する物理量に基づいて評価値を算出し、その評価値に基づいて処理順序を設定する。物理量の例として、作業空間9内のすべてのワークを処理するために要するロボット2の移動距離と、その処理の完了に要する時間(いわゆるサイクルタイム)と、その処理に必要なエネルギ消費量(例えば電力消費量)とが挙げられる。例えば、順序設定部14は、可能性のある処理順序のそれぞれについて、少なくとも一つの物理量に基づいて評価値を算出し、最適であると推定される評価値に対応する処理順序を最終的に設定してよい。
【0053】
ステップS25では、指令生成部15が、ロボット2に少なくとも一つのワークを処理順序に従って処理させるためのパスを設定する。指令生成部15は作業空間9に配置されたワークの位置に基づいてパスを生成する。指令生成部15はそのワークの姿勢に更に基づいてパスを生成してもよい。一例では、指令生成部15は作業空間9における少なくとも一つの被処理領域の位置(すなわち、ステップS23において特定された被処理領域の位置)に基づいてパスを生成する。作業要件は、被処理領域に加えてまたは代えて、他の様々な条件を含んでもよい。作業に依存しない一般的な条件の例として、ロボット2の動作速度と、ロボット2の加減速度の調整比率と、アプローチ点へのロボット2の接近の度合いとが挙げられる。特定の作業に依存する条件の例として、ロボット2によってワークに適用される力と、ロボット2の周辺機器の信号出力の条件と、該周辺機器(例えばエンドエフェクタ)の特性条件とが挙げられる。例えば、指令生成部15は、その動作速度および力の少なくとも一方に基づいてパスを生成する。障害物が認識された場合には、指令生成部15は該障害物の位置に基づいて、該障害物がロボット2に干渉しないようにパスを生成してもよい。干渉とは、或る物体が別の物体に接触または衝突する現象をいう。ロボット2が或る一つのワークを処理しようとする場合において、ロボット2とそのワークとの接触は干渉ではないことに留意されたい。
【0054】
一例では、指令生成部15はパスの生成において、カメラ座標系などのセンサ座標系によって規定されているワーク、被処理領域、および障害物の座標値をロボット座標系に変換する。そして、指令生成部15はそれら変換された座標値群に基づいて、ロボットのパスをロボット座標系において設定する。
【0055】
ロボット2のパスは、ロボット2のエンドエフェクタ2aのパスであり得る。一例では、指令生成部15はツール情報を記憶部12から読み出し、そのツール情報に更に基づいてエンドエフェクタ2aのパスを生成する。
【0056】
上述したように、ロボット2のパスは少なくとも一つの作業パスと少なくとも一つのエアカットパスとを含む。一例では、指令生成部15は個々の被処理領域に基づいて個々の作業パスを生成する。例えば、指令生成部15は被処理領域に沿って作業パスを生成する。更に、指令生成部15は個々のエアカットパスを生成する。或るワークについてアプローチ点が特定された場合には、指令生成部15はそのアプローチ点の位置に基づいて、ロボット2をそのワークへと移動させるためのエアカットパスを生成する。
【0057】
一例では、指令生成部15はそれぞれのエアカットパスを以下の手法により生成する。すなわち、指令生成部15は、生成しようとするエアカットパスの始点および終点を特定し、その2点間を直線で結ぶ仮パスを生成する。そして、指令生成部15はその仮パスに基づくロボット2の動作をシミュレーションにより検証する。そのシミュレーションにおいてロボット2と障害物との干渉を検出した場合には、指令生成部15はランダムにまたは任意の最適化手法によって1以上の経由点を始点と終点との間に設定し、始点から該1以上の経由点を通って終点に至る新たな仮パスを生成する。そして、指令生成部15は該新たな仮パスに基づくロボット2の動作をシミュレーションにより検証する。一例では、指令生成部15は干渉が検出されなくなるまで、仮パスの生成および干渉チェックを含む処理を繰り返して、最終的に得られた仮パスをエアカットパスとして設定する。指令生成部15は、干渉が検出されない仮パスに対して、距離の短縮などの最適化を実行して、エアカットパスを設定してもよい。
【0058】
作業空間9に複数のワークが配置された場合には、該複数のワークは、第1ワークと、第1ワークの次に処理される第2ワークとを含む。この場合には、指令生成部15は、第1ワークを処理し終えたロボット2を第2ワークへと移動させるためのエアカットパスを生成する。複数のワークが3以上のワークを含む場合には、指令生成部15は第1ワークおよび第2ワークの組合せを変更しながら、すなわち、連続する二つのタスクの組合せを変更しながら、それぞれのエアカットパスを生成する。
【0059】
ステップS26では、指令生成部15が、パスを含む指令を生成する。一例では、指令生成部15は生成されたパスを示す動作プログラムを指令として生成する。動作プログラムは、ロボット2をパスに沿って動作させるための一連のコードまたはコマンドを含む。
【0060】
ステップS27では、ロボット制御部16が指令に基づいてロボット2を制御する。一例では、ロボット制御部16は動作プログラムに従って一連の制御信号を生成してその制御信号をモータ制御装置3に順次出力する。モータ制御装置3は、モータを動かすための電力を制御信号に基づいて順次生成し、その電力をモータに順次供給する。この結果、ロボット2はジョブを実行し、作業空間9に存在する少なくとも一つのワークを処理する。
【0061】
図6を参照しながら、作業空間におけるロボットのパスの一例を説明する。この例では、ロボットコントローラ10は作業空間9に配置された二つのワーク310,320に対するシーリングをロボット2に実行させる。エンドエフェクタ2aはシーリングノズルである。ワーク310,320については、シーリングが適用される被処理領域311,321がそれぞれ、作業要件の少なくとも一部として予め定義されている。作業空間9には、ワーク310,320の間に挟まれるように障害物390が存在する。
【0062】
ロボットコントローラ10はこのような作業空間9の環境を作業環境として認識し(ステップS21)、ワーク310,320のそれぞれの作業要件を取得する(ステップS22)。ロボットコントローラ10はその作業要件および作業環境に基づいて、実際の被処理領域311,321を特定する(ステップS23)。また、ロボットコントローラ10はワーク310,320の処理順序を設定する(ステップS24)。例えば、ロボットコントローラ10は動的に、ワーク310の処理順序を1に設定し、ワーク320の処理順序を2に設定する。ロボットコントローラ10は、ロボット2にワーク310,320をこの順に従って処理させるためのパスを設定する(ステップS25)。この例では、パスはエンドエフェクタ2aの軌道を示し、図6はそのパスの一部であるエアカットパス400を表す。エアカットパス400は、被処理領域311に対応する作業パスの終点から、被処理領域321に対応する作業パスの始点へと、障害物390を避けるように延びる。ロボットコントローラ10はワーク310,320を処理するための一連のパスを含む指令を生成し(ステップS26)、その指令に基づいてロボット2を制御する(ステップS27)。
【0063】
図6を参照しながら説明した一連の処理の例に関して、ステップS21~S27のうちの一部が手動により行われてもよい。例えば、上述したように、処理順序の設定(ステップS24)がユーザ指示に基づいて実行されてもよい。
【0064】
上述したように、処理フローS2において、指令生成部15は、ロボット2に関する教示点を用いることなく、作業要件および作業環境に基づいてパスを生成し、そのパスを含む動作プログラムを指令として生成する。
【0065】
処理フローS2は繰り返し実行され得る。例えば、ロボットコントローラ10は、作業空間9に新たなワークが配置されたことに応答して自動的に処理フローS2を実行してもよい。あるいは、ロボットコントローラ10はその新たなワークの配置に基づく上位コントローラ20からの新たな要求に応答して処理フローS2を実行してもよい。
【0066】
[効果]
以上説明したように、本開示の一側面に係るロボットシステムは、ワークに対して予め定義された作業要件を記憶する記憶部と、ワークが配置された作業空間の環境を作業環境として認識する認識部と、作業要件および作業環境に基づいて、作業空間に配置されたロボットにワークを処理させるための該ロボットのパスを生成する生成部と、パスに基づいてロボットを制御する制御部とを備える。
【0067】
本開示の一側面に係るロボット制御方法は、少なくとも一つのプロセッサを備えるロボットシステムによって実行されるロボット制御方法であって、ワークに対して予め定義された作業要件を記憶するステップと、ワークが配置された作業空間の環境を作業環境として認識するステップと、作業要件および作業環境に基づいて、作業空間に配置されたロボットにワークを処理させるための該ロボットのパスを生成するステップと、パスに基づいてロボットを制御するステップとを含む。
【0068】
このような側面においては、ワークに対して定義された作業要件を与えさえすれば、ワークが存在する作業環境とその作業要件とに基づいてロボットのパスが生成されて、ロボットがそのパスに基づいて制御される。ロボットに実行させようとするタスクを用意するだけで、パスプランニングを含むロボット制御が行われるので、ロボットの自律性を高めることができる。また、作業要件はワークに対して定義されるので、ユーザは直感的にその作業要件を準備できる。
【0069】
本開示の一側面に係るプランニングシステムは、ワークに対して予め定義された作業要件を記憶する記憶部と、ワークが配置された作業空間の環境を作業環境として認識する認識部と、作業要件および作業環境に基づいて、作業空間に配置されたロボットにワークを処理させるための該ロボットのパスを生成する生成部とを備える。
【0070】
本開示の一側面に係るプランニングプログラムは、ワークに対して予め定義された作業要件を記憶部から読み出すステップと、ワークが配置された作業空間の環境を作業環境として認識するステップと、作業要件および作業環境に基づいて、作業空間に配置されたロボットにワークを処理させるための該ロボットのパスを生成するステップとをコンピュータに実行させる。
【0071】
このような側面においては、ワークに対して定義された作業要件を与えさえすれば、ワークが存在する作業環境とその作業要件とに基づいてロボットのパスが生成される。したがって、ロボットに実行させようとするタスクを用意するだけで、パスを簡単に生成できる。また、その作業要件はワークに対して定義されるので、ユーザは直感的にその作業要件を準備できる。
【0072】
他の側面に係るロボットシステムでは、生成部は、ロボットに関する教示点を用いることなく、作業要件および作業環境に基づいてパスを生成してもよい。教示点を設定する必要がないので、パスを簡単に生成できる。
【0073】
他の側面に係るロボットシステムでは、作業環境は、作業空間におけるワークの位置を含み、生成部は、ワークの位置に基づいてパスを生成してもよい。ワークの実際の位置に基づいてパスが生成されるので、ワークの位置決めが不要になる。例えば、ワークの位置および姿勢を固定させる必要がなくなる。したがって、ワークを処理するロボットの自律性をより高めることができる。
【0074】
他の側面に係るロボットシステムでは、作業要件は、ロボットによる処理が適用されるワーク上の被処理領域を含み、生成部は、作業要件および作業環境に基づいて、作業空間に配置されたワークの被処理領域を特定し、特定された被処理領域の位置に基づいてパスを生成してもよい。作業空間においてロボットが実際に処理すべき被処理領域の位置に基づいてパスが生成されるので、ワークをより正確に処理できる。
【0075】
他の側面に係るロボットシステムは、被処理領域は、ワークを示すモデルであるワークモデルに対する相対的な位置を含み、認識部は、ワークモデルに基づいて、作業空間に配置されたワークの位置および姿勢を認識し、生成部は、ワークの位置および姿勢と相対的な位置とに基づいて、作業空間における被処理領域を特定してもよい。ワークモデルに対して被処理領域を相対的な位置として定義しさえすれば、作業空間における被処理領域の実際の位置に基づいてパスが生成されて、ロボットがそのパスに基づいて制御される。したがって、ロボットの自律性をより高めることができる。
【0076】
他の側面に係るロボットシステムは、被処理領域は、ロボットがワークにアプローチするアプローチ点を含み、生成部は、作業要件および作業環境に基づいて、作業空間に配置されたワークのアプローチ点を特定し、特定されたアプローチ点の位置に基づいて、パスの少なくとも一部として、ロボットをワークへと移動させるためのエアカットパスを生成してもよい。作業空間においてロボットが実際にワークにアプローチすべき位置に基づいてパスが生成されるので、ワークをより正確に処理できる。
【0077】
他の側面に係るロボットシステムでは、複数のワークの処理順序を設定する設定部を更に備え、記憶部は、複数のワークのそれぞれについての作業要件を記憶し、認識部は、複数のワークが配置された作業空間の環境を作業環境として認識し、生成部は、作業要件および作業環境に基づいて、ロボットに複数のワークを処理順序に従って処理させるためのパスを生成してもよい。複数のワークの処理順序が考慮されるので、作業空間に配置された複数のワークを順次処理するためのロボットのパスを簡単に生成できる。
【0078】
他の側面に係るロボットシステムでは、設定部は、認識された作業環境における複数のワークの配置に基づいて、処理順序を動的に自動で設定してもよい。複数のワークの処理順序が作業空間内の実際の状況に応じて自動的に設定されるので、その処理順序が事前に与えられなくてもロボットのパスを生成できる。
【0079】
他の側面に係るロボットシステムは、複数のワークは、第1ワークおよび第2ワークを含み、生成部は、パスの少なくとも一部として、第1ワークを処理し終えたロボットを第2ワークへと移動させるためのエアカットパスを生成してもよい。この場合には、ワーク間(タスク間)のエアカットパスを、教示点を用いることなく簡単に生成できる。
【0080】
他の側面に係るロボットシステムでは、記憶部は、作業要件として、ロボットの動作速度を記憶し、生成部は、動作速度に更に基づいてパスを生成してもよい。ロボットの動作速度はパスの生成に影響を与える。したがって、その動作速度を考慮することで、より適切なパスを生成できる。
【0081】
他の側面に係るロボットシステムは、記憶部は、作業要件として、ロボットによってワークに適用される力を更に記憶し、生成部は、力に更に基づいてパスを生成してもよい。押付力などのような力を適切にワークに適用するためには、その適用を実現するためのパスの設定が重要になる。したがって、その力を考慮することで、より適切なパスを生成できる。
【0082】
他の側面に係るロボットシステムでは、認識部は、ワークを処理しようとするロボットにとっての障害物を含む作業環境を認識し、生成部は、障害物の位置に基づいて、障害物がロボットに干渉しないようにパスを生成してもよい。この構成により、障害物を避けながら動作するためのパスを簡単に生成できる。
【0083】
他の側面に係るロボットシステムでは、記憶部は、障害物のモデルである障害物モデルを更に記憶し、認識部は、障害物モデルに基づいて、障害物を含む作業環境を認識してもよい。障害物モデルを用いることで、作業空間内の障害物をより正確に認識できる。
【0084】
他の側面に係るロボットシステムでは、記憶部は、ロボットのエンドエフェクタに関するツール情報を更に記憶し、生成部は、ツール情報に更に基づいて、エンドエフェクタのパスを生成してもよい。エンドエフェクタに関する情報を用いることで、ワークに直接に作用するエンドエフェクタのパスを簡単に生成できる。
【0085】
他の側面に係るロボットシステムでは、認識部は、作業空間を監視するセンサから得られるセンサデータに基づいて作業環境を認識してもよい。この構成により作業環境がより正確に認識されるので、実際の状況に応じてロボットをより正確に制御できる。
【0086】
他の側面に係るロボットシステムでは、ロボットまたは別のロボットによるワークへの処理を表す該ロボットに関する複数の教示点と、処理が実行された過去の作業空間におけるワークの位置とに基づいて、作業要件を定義する定義部を更に備え、記憶部は、定義部によって定義された作業要件を記憶するしてもよい。過去のデータから作業要件が自動的に定義されるので、その作業要件を生成する労力を解消または低減できる。加えて、ワーク処理に関する経験およびノウハウを自動的に将来のオペレーションに継承できる。
【0087】
[変形例]
以上、本開示の実施形態に基づいて詳細に説明した。しかし、本開示の技術事項は上記実施形態に限定されるものではない。本開示の技術事項は、その要旨を逸脱しない範囲で様々な変形が可能である。
【0088】
ロボットシステムおよびプランニングシステムの機能構成は上記の例に限定されない。例えば、定義部および設定部の少なくとも一方が省略されてもよい。プランニングシステムに関連する機能モジュールである定義部、記憶部、認識部、設定部、および生成部の少なくとも一部が、上位コントローラ20のような他の装置内に実装されてもよい。ロボットシステムに関連する機能モジュールの少なくとも一部がモータ制御装置内に実装されてもよい。
【0089】
システムのハードウェア構成は、プログラムの実行により各機能モジュールを実現する態様に限定されない。例えば、上述した機能モジュール群の少なくとも一部が、その機能に特化した論理回路により構成されてもよいし、該論理回路を集積したASIC(Application Specific Integrated Circuit)により構成されてもよい。
【0090】
少なくとも一つのプロセッサにより実行される方法の処理手順は上記の例に限定されない。例えば、上述したステップまたは処理の一部が省略されてもよいし、別の順序で各ステップが実行されてもよい。また、上述したステップのうちの任意の2以上のステップが組み合わされてもよいし、ステップの一部が修正または削除されてもよい。あるいは、上記の各ステップに加えて他のステップが実行されてもよい。
【0091】
コンピュータシステムまたはコンピュータ内で二つの数値の大小関係を比較する際には、「以上」および「よりも大きい」という二つの基準のどちらを用いてもよく、「以下」および「未満」という二つの基準のうちのどちらを用いてもよい。
【符号の説明】
【0092】
1…ロボットシステム、2…ロボット、2a…エンドエフェクタ、3…モータ制御装置、9…作業空間、10…ロボットコントローラ、11…要件定義部、12…記憶部、13…環境認識部、14…順序設定部、15…指令生成部、16…ロボット制御部、20…上位コントローラ、30…稼働実績データベース、200…ワークモデル、210…被処理領域、211…アプローチ点、310…ワーク、311…被処理領域、320…ワーク、321…被処理領域、390…障害物、400…エアカットパス。
図1
図2
図3
図4
図5
図6