(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022188627
(43)【公開日】2022-12-21
(54)【発明の名称】制御方法、制御装置、情報処理方法、情報処理装置、ロボット装置、物品の製造方法、プログラムおよび記録媒体
(51)【国際特許分類】
B25J 13/00 20060101AFI20221214BHJP
【FI】
B25J13/00 Z
【審査請求】未請求
【請求項の数】27
【出願形態】OL
(21)【出願番号】P 2021096818
(22)【出願日】2021-06-09
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【弁理士】
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100124442
【弁理士】
【氏名又は名称】黒岩 創吾
(72)【発明者】
【氏名】徳岡 岳海
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS01
3C707AS06
3C707BS11
3C707DS01
3C707ES03
3C707JS06
3C707JU02
3C707JU14
3C707KS22
3C707KS24
3C707KV01
3C707LS20
3C707LV15
3C707MS10
3C707MS11
3C707MT05
(57)【要約】
【課題】 全ての軸の制約を満たすことができない場合でも、ハードウェアの破損の危険性を可能な限り低減した停止を実行できる制御値の取得を行うことが可能な制御方法を提供する。
【解決手段】 少なくとも第1関節と第2関節と、を有するロボットを停止させる制御方法であって、停止を実行させる制御値を取得する際、第1関節における第1物理的制約と、第2関節における第2物理的制約と、を満たす制御値を取得できない場合、所定条件に基づき、第1物理的制約と第2物理的制約とのいずれかを優先して満たすように制御値を取得する、ことを特徴とする制御方法を採用した。
【選択図】
図6
【特許請求の範囲】
【請求項1】
少なくとも第1関節と第2関節と、を有するロボットを停止させる制御方法であって、
前記停止を実行させる制御値を取得する際、前記第1関節における第1物理的制約と、前記第2関節における第2物理的制約と、を満たす前記制御値を取得できない場合、所定条件に基づき、前記第1物理的制約と前記第2物理的制約とのいずれかを優先して満たすように前記制御値を取得する、
ことを特徴とする制御方法。
【請求項2】
請求項1に記載の制御方法において、
前記所定条件は、前記停止を実行する指令を取得した第1タイミングにおいて前記第1関節に生じている第1物理量と、前記第2タイミングにおいて前記第2関節に生じている第2物理量と、に基づいて、前記第1物理的制約と前記第2物理的制約とのいずれかを優先する条件である、
ことを特徴とする制御方法。
【請求項3】
請求項2に記載の制御方法において、
前記第1物理量と前記第2物理量とに基づき、値が大きい方の物理量が生じている関節における物理的制約を優先する、
ことを特徴とする制御方法。
【請求項4】
請求項2に記載の制御方法において、
前記所定条件は、前記第1タイミング以前における前記第1物理量と前記第2物理量とに基づき、最も値の大きい物理量が生じている関節における物理的制約を優先する、
ことを特徴とする制御方法。
【請求項5】
請求項2に記載の制御方法において、
前記所定条件は、前記第1タイミング以前における前記第1物理量と前記第2物理量とに基づき、所定閾値に達した回数が最も大きい関節における物理的制約を優先する、
ことを特徴とする制御方法。
【請求項6】
請求項2に記載の制御方法において、
前記所定条件は、前記第1タイミングよりも後の第2タイミングにおいて前記第1関節に生じるであろう前記第1物理量と、前記第3タイミングにおいて前記第2関節に生じるであろう前記第2物理量と、に基づいて、前記第1物理的制約と前記第2物理的制約とのいずれかを優先する条件である、
ことを特徴とする制御方法。
【請求項7】
請求項6に記載の制御方法において、
前記第2タイミングにおける前記第1物理量と前記第3物理量と、に基づき、所定閾値に対する超過量が小さい方の物理量が生じるであろう関節における物理的制約を優先する、
ことを特徴とする制御方法。
【請求項8】
請求項6または7に記載の制御方法において、
前記第2タイミングは、前記第1タイミングの1タイムステップ後のタイミングである、
ことを特徴とする制御方法。
【請求項9】
請求項8に記載の制御方法において、
前記タイムステップは、前記ロボットの制御周期によって設定される、
ことを特徴とする制御方法。
【請求項10】
請求項1から9のいずれか1項に記載の制御方法において、
前記制御値は、
第1物理的制約および前記第2物理的制約を満たして前記停止を実行できる第1目標値と、
前記第1目標値に基づいて取得される媒介変数と、
前記媒介変数に基づいて取得される第2目標値と、に基づき取得される、
ことを特徴とする制御方法。
【請求項11】
請求項10に記載の制御方法において、
前記媒介変数は、前記第1目標値と、前記ロボットを動作させるための軌道データと、に基づき取得される、
ことを特徴とする制御方法。
【請求項12】
請求項11に記載の制御方法において、
前記媒介変数は、前記第1目標値と、前記軌道データを直線補間することで取得される、
ことを特徴とする制御方法。
【請求項13】
請求項10から12のいずれか1項に記載の制御方法において、
前記第1目標値を前記制御値として使用し、前記停止を実行する、
ことを特徴とする制御方法。
【請求項14】
請求項1から13のいずれか1項に記載の制御方法において、
前記第1物理量と前記第2物理量は、速度、加速度、ジャーク、トルク、荷重、のいずれかである、
ことを特徴とする制御方法。
【請求項15】
請求項1から14のいずれか1項に記載の制御方法において、
前記ロボットの手先にかかる第3物理量に基づき、前記第1物理量および前記第2物理量を取得する、
ことを特徴とする制御方法。
【請求項16】
請求項1に記載の制御方法において、
前記制御値の取得の際、前記第1物理的制約と前記第2物理的制約とのいずれかを優先して満たす場合と、前記第1物理的制約と前記第2物理的制約とを満たす場合とを切り換える、
ことを特徴とする制御方法。
【請求項17】
請求項1に記載の制御方法において、
前記停止に基づき、前記第1物理的制約および前記第2物理的制約を満たさない前記制御値を取得して前記停止を実行する場合に切り換える、
ことを特徴とする制御方法。
【請求項18】
請求項17に記載の制御方法において、
前記停止は、作業者に関連する、
ことを特徴とする制御方法。
【請求項19】
請求項1から18のいずれか1項に記載の制御方法を用いて前記ロボットを制御し、物品の製造を行うことを特徴とする物品の製造方法。
【請求項20】
少なくとも第1関節と第2関節と、を有するロボットを停止させる制御装置であって、
前記停止を実行させる制御値を取得する際、前記第1関節における第1物理的制約と、前記第2関節における第2物理的制約と、を満たす前記制御値を取得できない場合、所定条件に基づき、前記第1物理的制約と前記第2物理的制約とのいずれかを優先して満たすように前記制御値を取得する、
ことを特徴とする制御装置。
【請求項21】
請求項20に記載の制御装置と前記ロボットとを備えたロボット装置。
【請求項22】
少なくとも第1関節と第2関節と、を有するロボットの停止に関するシミュレーションを実行する情報処理方法であって、
前記停止を実行させる制御値を取得する際、前記第1関節における第1物理的制約と、前記第2関節における第2物理的制約と、を満たす前記制御値を取得できない場合、所定条件に基づき、前記第1物理的制約と前記第2物理的制約とのいずれかを優先して満たすように前記制御値を取得し、
前記制御値に基づき、前記ロボットの前記シミュレーションを実行する、
ことを特徴とする情報処理方法。
【請求項23】
請求項22に記載の情報処理方法において、
前記ミュレーションは、複数種類あり、
表示部に、複数種類の前記シミュレーションを実行するためのボタンを表示する、
ことを特徴とする情報処理方法。
【請求項24】
少なくとも第1関節と第2関節と、を有するロボットの停止に関するシミュレーションを実行する情報処理装置であって、
前記停止を実行させる制御値を取得する際、前記第1関節における第1物理的制約と、前記第2関節における第2物理的制約と、を満たす前記制御値を取得できない場合、所定条件に基づき、前記第1物理的制約と前記第2物理的制約とのいずれかを優先して満たすように前記制御値を取得し、
前記制御値に基づき、前記ロボットの前記シミュレーションを実行する、
ことを特徴とする情報処理装置。
【請求項25】
請求項24に記載の情報処理装置において、
前記ミュレーションは、複数種類あり、
表示部に、複数種類の前記シミュレーションを実行するためのボタンを表示する、
ことを特徴とする情報処理装置。
【請求項26】
請求項1から18のいずれか1項に記載の制御方法、または請求項22または23に記載の情報処理方法を実行可能なプログラム。
【請求項27】
請求項26に記載のプログラムを格納した、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットの制御方法、ロボットの情報処理方法に関する。
【背景技術】
【0002】
近年、工場等の生産現場において、組立・搬送等の作業は複数の関節を有するロボットアームとロボットアームにハンドやツールなどのエンドエフェクタを備えたロボットシステムによる自動化が進められている。ロボットアームを動作させる際には、ユーザが入力した目標位置、目標速度、補間方法等に基づいて、制御コントローラが各関節の目標値(目標角度)を生成し、所望の動作を実行させる。このようなロボットシステムでは、ユーザにとって想定外の動作や、何かしらの異常が発生した場合には、ユーザおよびロボットシステムの安全を確保するために直ちにロボットアームおよびエンドエフェクタを停止させる必要がある。
【0003】
下記に示す非特許文献には、通常動作の時間軸と同次元の媒介変数を導入することで、ロボットシステムの手先(エンドエフェクタ)の移動経路が通常動作と停止動作とで一致するような停止目標値を算出する方法が記載されている。任意の軸における加速度、ジャーク、トルクといった各種物理的制約に基づく媒介変数を算出し、媒介変数に基づいて他の軸の目標値を算出し、算出した各軸目標値が全ての軸の物理的制約を満たすならばその各軸目標値を採用する。各軸の目標値を同一の媒介変数を使用して算出するため、各軸の位置関係が通常軌道と同じであることが担保され、通常動作の手先の経路と停止動作の手先の経路が同一となる。
【0004】
これにより、停止前において本来移動するはずだった経路と同一の経路上で、エンドエフェクタを停止させることができ、停止時にエンドエフェクタが周辺物体と衝突するおそれを低減することができる。また、停止時の目標値の算出において物理的制約を遵守することで、アームリンクや減速機等のハードウェアに対して過大な要求となるような急減速指令とならないようにすることができ、ハードウェアの破損の危険性を低減することができる。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Friedrich Lange and Michael Suppa.“Trajectory Generation for Immediate Path-Accurate Jerk-Limited Stopping of Industrial Robots”Proc.Int.Conf.on Robotic and Automation(ICRA),May 2015
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら上記非特許文献1に記載の方法は、停止のための各軸目標値(制御値)の取得において、全ての軸の制約を満たすことができる各軸目標値が算出できない場合は、実行中の動作においてあらかじめ教示されていた所定の目標値をそのまま使用している。よって全ての軸の制約を満たすことができる各軸目標値が算出できない場合の停止においては、ハードウェアの破損の危険性の低減に関して十分な考慮がなされていない。
【0007】
本発明は上記課題に鑑み、全ての軸の制約を満たすことができない場合でも、ハードウェアの破損の危険性を可能な限り低減した停止を実行できる制御値の取得を行うことが可能な制御方法を提供する。
【課題を解決するための手段】
【0008】
上記課題を解決するために本発明は、少なくとも第1関節と第2関節と、を有するロボットを停止させる制御方法であって、前記停止を実行させる制御値を取得する際、前記第1関節における第1物理的制約と、前記第2関節における第2物理的制約と、を満たす前記制御値を取得できない場合、所定条件に基づき、前記第1物理的制約と前記第2物理的制約とのいずれかを優先して満たすように前記制御値を取得する、ことを特徴とする制御方法を採用した。
【発明の効果】
【0009】
本発明によれば、全ての軸の制約を満たすことができない場合でも、ハードウェアの破損の危険性を可能な限り低減した停止を実行できる制御値の取得を行うことが可能となる。
【図面の簡単な説明】
【0010】
【
図1】実施形態におけるロボットシステム1000の概略図である。
【
図2】実施形態におけるロボットシステム1000の制御ブロック図である。
【
図3】実施形態における制御フローチャートである。
【
図4】実施形態におけるロボットアーム本体200の通常動作における軌道のグラフである。
【
図5】実施形態における媒介変数を示した状態の軌道のグラフである。
【
図6】実施形態における媒介変数を示した状態の軌道のグラフである。
【
図7】実施形態におけるロボットシステム1000の概略図である。
【
図8】実施形態における制御フローチャートである。
【
図9】実施形態における情報処理装置800の概略図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して本発明を実施するための形態について説明する。なお、以下に示す実施形態はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。なお以下の図面において、図中の矢印X、Y、Zはロボットシステムの全体の座標系を示す。一般に、XYZ3次元座標系は、設置環境全体のワールド座標系を示す。その他、制御の都合などによって、ロボットハンド、指部、関節などに関して適宜ローカル座標系を用いる場合がある。本実施形態では全体の座標系であるワールド座標系をXYZ、ローカル座標系をxyzで表すものとする。
【0012】
(第1の実施形態)
図1は本実施形態におけるロボットシステム1000を示した概略図である。
図1より、ロボットシステム1000は、多関節のロボットアーム本体200と、ロボットアーム本体200の先端部に設けられたエンドエフェクタ300と、ロボットアーム本体200とエンドエフェクタ300とを制御する制御装置400とを備えている。また、ロボットアーム本体200とエンドエフェクタ本体300とを用いて操作されるワーク600、ワーク600が載置される載置台500、ワークの有無を制御装置400に伝える信号入力装置700を備えている。さらに、ロボットアーム本体200およびエンドエフェクタ本体300に指令値を入力する外部入力装置800を備えている。
【0013】
ロボットアーム本体200は、地面と接触する基台210と、5つのリンク201、202、203、204、205を備えている。また、これらリンク201~205を
図1に示す各矢印方向へ回動可能に連結する5つの関節J1、J2、J3、J4、J5を備えている。また、関節J1~J5はリンク201~205を搖動または回動させるためのアーム用モータ211~215を有している(
図2)。各アーム用モータ211~215にはモータの回転を減速し、各リンク201~205を回転させるためのトルクを発生させる付図示の減速機を備えている。さらに各関節J1~J5にはエンコーダ221~225(
図2)が設けられており、この各エンコーダから各関節の角度を検出し制御装置400にフィードバックしている。これにより各リンクを所定の位置に位置させることで、エンドエフェクタ本体300をXYZ空間における所定の位置に位置させることができる。
【0014】
エンドエフェクタ本体300はロボットハンドであり、指301及び302と、指301および指302を互いに接近または離間させる開閉動作を行うためのハンド用モータ312(
図2)および付図示の減速機を備えている。ロボットシステム1000は、ワーク600をエンドエフェクタ本体300によって把持し、別のワークへ接触させるなどの処理を行う。こうすることで、材料としてワーク600と別のワークを用い、成果物としてワーク600と別のワークとが組みついた物品の製造を行うことが可能となる。また、ハンド用モータ312には、エンコーダ322(
図2)が設けられており、このエンコーダからハンド用モータ312の速度を検出し制御装置400にフィードバックしている。なお、本実施形態ではエンドエフェクタ本体300としてロボットハンドを例にとり説明したがこれに限られない。例えば、電動ドライバーやエンドミル等のツールを使用しても構わない。
【0015】
図2は
図1のロボットシステム1000の制御系の詳細な構成を示したブロック図である。制御装置400は、コンピュータで構成されており、プロセッサであるCPU(Central Processing Unit)401を備える。また、記憶部として、ROM(Read Only Memory)402、RAM(Random Access Memory)403、HDD(Hard Disc Drive)404、記録ディスクドライブ405を備えている。また、各機器と通信を行うためのインタフェース406、407、408、409、410、411を備える。CPU401、ROM402、RAM403、インタフェース406~412は、互いに通信可能にバス412で接続されている。
【0016】
このうち、RAM403は外部入力装置800の操作による教示点や制御指令などのデータの一時記憶に用いられる。ROM402には、CPU401に、各種演算処理を実行させるためのBIOS等の基本プログラム430が格納されている。CPU401は、HDD404に記録(格納)された制御プログラムに基づいて各種演算処理を実行する。HDD404は、CPU401の演算処理結果である各種のデータ等を記憶する記憶部である。記録ディスクドライブ405は、記録ディスク431に記録された各種データや制御プログラム等を読み出すことができる。更に、インタフェース407、408には、各種画像が表示されるモニタ811や書き換え可能な不揮発性メモリや外付けHDD等の外部記憶装置812が接続されている。
【0017】
外部入力装置800は、例えばティーチングペンダント(TP)のような操作装置が考えられるが、ロボットプログラムを編集可能な他のコンピュータ装置(PCやサーバ)であってもよい。外部入力装置800は、制御装置400に対して有線ないし無線の通信接続手段を介して接続することができ、ロボット操作および状態表示などのユーザインターフェース機能を有する。外部入力装置800により入力された各関節J1~J5の目標関節角度をインタフェース406及びバス412を介してCPU401に出力する。
【0018】
CPU401は、例えば外部入力装置800で入力された教示点データをインタフェース406から受信する。また、外部入力装置800から入力された教示点データに基づきロボットアーム本体200の各軸の軌道を生成し、インタフェース409を介し、アーム用モータドライバ230を用いてアーム用モータ211~215に送信することができる。CPU401は、各アーム用モータ211~215の回転角度の制御量を示す駆動指令のデータを所定間隔でバス412及びインタフェース409を介してアーム用モータドライバ230に出力する。
【0019】
アーム用モータドライバ230は、CPU401から入力を受けた駆動指令に基づき、各アーム用モータ211~215への電流の出力量を演算し、各アーム用モータ211~215へ電流を供給して、各関節J1~J5の関節角度制御を行う。また、前述した各エンコーダ221~225からのパルス信号をインタフェース409及びバス412を介してCPU401に出力する。即ち、CPU401は、アーム用モータドライバ230を介して、各エンコーダ221~225により検出される関節J1~J6の関節角度現在値が目標関節角度となるように、各アーム用モータ211~215のフィードバック制御を実行する。
【0020】
さらに制御装置400はハンド用モータ312ともインタフェース410およびハンド用モータドライバ330を介して接続されている。ハンド用モータドライバ330は、CPU401から入力を受けた駆動指令に基づき、ハンド用モータ312への電流の出力量を演算し、ハンド用モータ312へ電流を供給して、ハンド用モータ312の速度制御を行う。また、前述したエンコーダ322からのパルス信号をインタフェース410及びバス412を介してCPU401に出力する。即ち、CPU401は、ハンド用モータドライバ330を介して、エンコーダ322により検出されるハンド用モータ312の速度の現在値が目標速度となるように、ハンド用モータ312のフィードバック制御を実行する。
【0021】
さらに制御装置400は信号入力装置700ともインタフェース411およびバス412を介して接続されている。載置台500には不図示の感圧センサといった、ワーク600の有無を検出可能なセンサを備えている。信号入力装置700は、感圧センサの検出結果に基づき、インタフェース411およびバス412を介して、ワーク600の有無を示す信号をCPU401に出力する。CPU401は、信号入力装置700からの信号により、載置台500にワーク600が存在するか否かを判定でき、その判定に基づきロボットアーム本体200およびエンドエフェクタ本体300を制御できる。
【0022】
ここで、ロボットアーム本体200は、ワーク600を別のワークの場所へ運搬するために、エンドエフェクタ本体300を載置台500上の所定の位置まで移動する動作を制御装置400の命令に基づき実行中であるものとする。この動作の最中に、信号入力装置700により制御装置400はワーク600が所定の位置に到達していないことを検知した。このままでは、ワーク600を把持することなく動作を継続してしまい、作業効率が悪くなるため、制御装置400は、ロボットアーム本体200を可能な限り早く停止するような各軸目標値を算出し、ユーザにメンテナンスを実行させる必要がある。以下では本実施形態におけるロボットアーム本体200の停止処理について詳述する。
【0023】
図3は本実施形態におけるロボットアーム本体200を停止させるための軸目標値(制御値)を取得する方法の処理を示す制御フローチャートである。
図3におけるフローチャートはステップS1からステップS7で構成されている。以下、ステップS1からステップS7における各処理の内容について図を用いて詳細に説明する。また以下の処理は、制御装置400のCPU401により実行されるものとする。
【0024】
まずステップS1では、通常動作を実行させるための各関節(各軸)における軸目標値(通常軸目標値)を取得する。実施形態では2つ以上の関節を有するロボット装置の制御であれば如何なる軸数であっても適用可能である。今回は説明の簡略化のため2つの関節の制御を例にとり詳述する。
【0025】
図4はステップS1で取得した通常動作における軸目標値(通常軸目標値)を表したグラフである。
図4(a)は第1関節の通常軸目標値、
図4(b)は第2関節の通常動作における通常軸目標値を示している。
図4(a)(b)において、横軸はタイムステップk、縦軸は軸目標値[deg]を示している。iは第1関節または第2関節を示す値であり、
図4(a)では第1関節、
図4(b)では第2関節の通常軸目標値を示している。タイムステップはロボットアーム本体200の制御周期により設定される。
【0026】
図4(a)より、第1関節のタイムステップkの範囲が0≦k≦5における通常軸目標値qd1(k)は、qd1(k)=[0,0.550,0.950,1.200,1.275,1.350]である。
図4(b)より、第2関節のタイムステップkの範囲が0≦k≦5における通常軸目標値qd2(k)は、qd2(k)=[0,0.100,0.270,0.530,0.900,1.200]である。今回は、タイムステップk=3で停止指令を受け取り、k=3より時間的に後における通常動作から停止動作に切り替えるため、k=3より時間的に後における通常軸目標値を停止のために変更する。
【0027】
次にステップS2では停止命令に基づき、各関節について物理的制約の制限を守った上で減速した場合の軸目標値(制限軸目標値)を取得する。物理的制約として具体的には加速度・ジャーク(躍度)・トルク等の制限値(上限値)が考えられる。今回は加速度を制限する場合を例にとって説明する。以下の説明ではタイムステップkにおける軸iにおける停止動作のための軸目標値(停止軸目標値)をqci(k)[deg]で表すものとする。速度にタイムステップ幅を乗算した値をvci(k)[deg]とする。そして、軸iにおける加速度の制限値にタイムステップ幅の2乗を乗算した値がai′[deg]であるとき、加速度制約の上限で減速した場合の軸目標値(制限軸目標値)qai(k)[deg]は式(1)により算出できる。
【0028】
【0029】
本実施形態において、各関節の加速度の制限値は式(2)の値となる。
【0030】
【0031】
この時、タイムステップk=4において第1関節の制限軸目標値は、式(3)の値となる。
【0032】
【0033】
同様に第2関節の制限軸目標値は、式(4)の値となる。
【0034】
【0035】
尚、本実施形態においては加速度制約を考慮することとしているが、トルク制約やジャーク制約を同時に考慮することも可能である。その場合は各物理的制約に基づいて算出した制限軸目標値のうち、現在の関節の値(角度)から最も遠い(離れた)制限軸目標値を本ステップS2で採用すればよい。
【0036】
次にステップS3では、ステップS2で算出した制限軸目標値を、時間軸に射影した媒介変数Sai(k)を取得する。
図5は制限軸目標値とそれを時間軸に射影した媒介変数を示した図である。
図5(a)では第1関節、
図5(b)では第2関節の軸目標値を示している。
【0037】
図5、
図6に示すように媒介変数Sai(k)は通常動作における通常軸目標値を線形補間して求めればよく、Sa1(4)とSa2(4)はそれぞれ式(5)、式(6)の値となる。
【0038】
【0039】
【0040】
ここで、式(5)と式(6)で媒介変数を取得るためのタイムステップが異なるのは、下記理由に基づくものである。第1関節の制限軸目標値qa1(4)が通常軌道の通常軸目標値qd1(4)を上回るのに対し、第2関節の制限軸目標値qa2(4)が通常軌道の通常軸目標値qd2(4)を下回る。よって、タイムステップ4からタイムステップ5間の直線補間では媒介変数Sa2(4)を取得できないため、タイムステップ3からタイムステップ4間を使用する。
【0041】
次にステップS4では、ステップS3で求めたそれぞれの関節における媒介変数から各関節の停止軸目標値の候補を取得する。
図6は、各媒介変数を、第1関節における通常軌道のグラフ、第2関節における通常軌道のグラフに示した図である。
図6の上段グラフが第1関節における通常軌道のグラフ、
図6の下段グラフが第2関節における通常軌道のグラフである。
【0042】
まず、第1関節における制限軸目標値より取得された媒介変数Sa1(4)から各関節における停止軸目標値を取得する。第1関節における停止軸目標値は、ステップ2で求めた制限目標値と等しく、式(7)で示す値となる。
【0043】
【0044】
一方、第2関節における停止軸目標値は、通常動作における通常軸目標値から線形補間して求めればよく、式(8)で示す値となる。
【0045】
【0046】
つづいて、第2関節における制限軸目標値より取得された媒介変数Sa2(4)から各関節における停止軸目標値を取得する。第1関節における停止軸目標値は、通常動作における通常軸目標値から線形補間して求めればよく、式(9)で示す値となる。
【0047】
【0048】
一方、第2関節における停止軸目標値は、ステップS2で求めた制限軸目標値と等しく、式10で示す値となる。
【0049】
【0050】
次にステップS5では、ステップS4で求めた停止軸目標値の候補において、全軸(全関節)の物理的制約を満たすような停止軸目標値が存在するか判定する。
【0051】
まず、媒介変数Sa1(4)から取得された停止軸目標値を採用した場合、各軸の加速度の絶対値が物理的制約を超過するかどうか判定する。第1関節における停止軸目標値は式(7)で示す値であり、式(2)より第1関節および第2関節の加速度制約値から取得した値なので、第1関節における加速度は制約を超過しない。
【0052】
一方、媒介変数Sa1(4)から取得された停止軸目標値を採用した場合の第2関節における加速度の値は、式(11)で示す値となる。
【0053】
【0054】
式(2)式(11)より、媒介変数Sa1(4)から取得された停止軸目標値を採用した場合の第2関節における加速度の値は、第2関節における加速度制約値a2´=0.150を上回る。よって、媒介変数sa1(4)から算出された停止軸目標値は全軸の物理的制約を満たす停止軸目標値ではない。
【0055】
つづいて、媒介変数Sa2(4)から取得された停止軸目標値を採用した場合、各軸の加速度の絶対値が物理的制約を超過するかどうか判定する。第2関節における停止軸目標値は式(8)で示す値あり、式(4)より第2関節の加速度制約値から取得した値なので、第2関節における加速度は制約を超過しない。
【0056】
一方、媒介変数Sa2(4)から取得された停止軸目標値を採用した場合の第1関節における加速度の値は、式(12)で示す値となる。
【0057】
【0058】
式(2)式(12)より、媒介変数Sa2(4)から取得された停止軸目標値を採用した場合の第1関節における加速度の値は、第1関節における加速度制約値a1´=0.150を上回る。よって、媒介変数Sa2(4)から取得された停止軸目標値は全軸の物理的制約を満たすような停止軸目標値ではない。
【0059】
ここで、ステップS4にて取得した停止軸目標値の候補のうち、全軸の物理的制約を満たすような停止軸目標値が存在していた場合には、ステップS5:Noとなり、ステップS7へ進む。ステップS4にて取得した停止軸目標値の候補のうち、全軸の物理的制約を満たす停止軸目標値が存在する場合は、ステップS5:Yesとなり、ステップS6に進み、全軸の物理的制約を満たす停止軸目標値を用いてロボットアーム本体200を停止させる。
【0060】
ここで、今回のように、全軸の物理的制約を満たすような停止軸目標値が存在しない場合、停止を実行することができなくなってしまう。そこで、このような場合にも可能な限り物理的制約を満たして停止させるために、ステップS7にて、予め用意した評価方法(所定条件)に基づき、ステップS4で取得した停止軸目標値を評価する。そして評価値の高い停止軸目標値を、ロボットアーム本体200を停止するための停止軸目標値として使用することが大きな特徴である。
【0061】
本実施形態におけるステップS7での停止軸目標値の決定方法は、停止指令を受けた際のタイムステップ(本実施形態ではk=3)における各関節の速度に基づき、速度が大きい関節における物理的制約を優先して停止軸目標値を決定する。停止指令を受けた際のタイムステップにおける速度の大きい関節の制約によって取得された媒介変数Sai(k)によって取得された停止軸目標値を、ロボットアーム本体200を停止させるための停止軸目標値として用いる。
【0062】
停止指令を受けた際のタイムステップにおける各関節の速度はそれぞれ式(13)、式(14)で示した値となる。
【0063】
【0064】
【0065】
式(13)式(14)より、第2関節の速度が最も大きいため、第2関節の物理的制約によって取得された媒介変数Sa2(4)によって取得された停止軸目標値候補を用いる。第1関節における媒介変数Sa2(4)によって取得された停止軸目標値は式(9)よりqc1(4)=1.222であり、第2関節における停止軸目標値は式(4)よりqc2(4)=0.640である。この際、第1関節における加速度の絶対値は式(12)より|ac1(4)|=0.228であり、第2関節における加速度の絶対値は式(2)より|ac2(4)|=a2´=0.1500である。以上により、最も大きい速度で動作している軸(今回は第2関節)に関しては物理的制約を守りながら、停止軸目標値を決定できる。なお、本実施形態では第1関節の物理的制約および第2関節の物理的制約が同じ場合を例にとり説明したが、異なる場合に実施してもかまわない。
【0066】
以上の操作を繰り返すことで、最も大きい速度で動作している軸に関しては可能な限り物理的制約を守りながら、ロボットアーム本体200を停止させることができる。これにより、速度が大きく伝達機構に負荷が大きくかかる関節における物理的制約を優先的に順守する。よって全ての関節(軸)の制約を満たすことができる停止軸目標値が取得できない場合でも、ハードウェア(ロボットアーム本体200)の破損の危険性を可能な限り低減できるよう、可能な限り物理的制約を満たした停止を実行させることができる。
【0067】
なお上述した実施形態では、停止指令を受けた際のタイムステップにおける各関節の速度に基づき、優先すべき関節の物理的制約を決定したがこれに限られない。例えば、停止指令を受ける前(k=3のタイミング以前)までのタイムステップにおいて、最も大きい速度に達した関節の物理的制約を優先しても構わない。また、速度の所定閾値をあらかじめ設定しておき、停止指令を受ける前までのタイムステップにおいて、閾値に達した回数が最も大きい関節における物理的制約を優先するようにしてもかまわない。
【0068】
(第2の実施形態)
次に本発明における第2の実施形態につき詳述する。本実施形態では、上述の第1の実施形態に対してステップS7における停止軸目標値の決定方法が異なる。本実施形態では、ステップS4における停止軸目標値のうち、停止を行うタイムステップ(停止指令を受けたk=3より1タイムステップ後のk=4)における物理的制約に対する超過量が最も少ない関節における物理的制約を用いて停止軸目標値を決定する。なお、以下では必要に応じ、第1の実施形態とは異なるハードウェアや制御系の構成の部分について図示し説明する。また、第1の実施形態と同様の部分については上記と同様の構成ならびに作用が可能であるものとし、その詳細な説明は省略するものとする。
【0069】
式(9)より媒介変数Sa1(4)から算出された停止軸目標値は第2関節の加速度制約値を0.210/0.150=1.40倍超過する。一方、式(12)より媒介変数Sa2(4)から算出された停止軸目標値は第2関節の加速度制約値を0.228/0.150=1.52倍超過する。よって、実際に停止を行う際には、第1関節における媒介変数Sa1(4)を用いたほうが、物理的制約の超過を抑えることができる。
【0070】
以上により、全ての関節(軸)の制約を満たすことができる停止軸目標値が取得できない場合でも、ハードウェア(ロボットアーム本体200)の破損の危険性を可能な限り低減できるよう、可能な限り物理的制約を満たした停止を実行させることができる。
【0071】
(第3の実施形態)
次に本発明における第3の実施形態につき詳述する。本実施形態は、上述の第1の実施形態及び第2の実施形態に対してステップS7における停止軸目標値の決定方法が異なる。以下では必要に応じ、上述の実施形態とは異なるハードウェアや制御系の構成の部分について図示し説明する。また、第1の実施形態と同様の部分については上記と同様の構成ならびに作用が可能であるものとし、その詳細な説明は省略するものとする。
【0072】
本実施形態では、ステップS4で算出された停止軸目標値を使用せず、式(3)式(4)で求めた制限軸目標値を採用する。これにより全ての関節(軸)の制約を満たすことができる停止軸目標値が算出できない場合でも、ハードウェア(ロボットアーム本体200)の破損の危険性を低減できる停止を実行させることができる。なお、全関節の物理的制約を満たして停止軸目標を取得させる場合と、いずれかの関節の物理的制約を満たす停止軸目標値を取得させる場合とを切り換えてもかまわない。
【0073】
(第4の実施形態)
次に本発明における第4の実施形態につき詳述する。本実施形態は、上述の第1の実施形態及び第2の実施形態に対してステップS7における停止軸目標値の決定方法が異なる。以下では必要に応じ、上述の実施形態とは異なるハードウェアや制御系の構成の部分について図示し説明する。また、第1の実施形態と同様の部分については上記と同様の構成ならびに作用が可能であるものとし、その詳細な説明は省略するものとする。
【0074】
本実施形態では、取得した停止指令において、その停止指令が、作業者に関連する場合を例にとり説明する。作業者に関連する停止の場合、作業者の安全を確保するために即座にロボットアーム本体200を停止させる必要がある。そこで制御装置400は、取得する停止軸目標値において、物理的制約を満たす、満たさないに関わらず、現在位置で停止するようにロボットアーム本体200を停止させる。
【0075】
図7は本実施形態におけるロボットシステム1000を示す。本実施形態におけるロボットアーム本体200の基台210には、作業者を検知するための検知センサ260を備えている。検知センサ260は光照射型のセンサであり、照射した光が作業者によって反射された際、その反射光を取得し、作業者の有無を検知する。そして、作業者を検知すれば、制御装置400に、作業者接近による停止指令として信号を送信する。なお、本実施形態では、光学式のセンサを用いたが、これに限られず、磁気式や撮像装置等、作業者を検知できるセンサを用いて構わない。
【0076】
図8は本実施形態における制御フローチャートを示した図である。上述の実施形態と比べ、本実施形態では、ステップS21、ステップS22が存在している点で異なる。また以下の処理は、制御装置400のCPU401により実行されるものとし、異なるステップであるステップS21、ステップS22、ステップS23について詳述する。
【0077】
図8より、本実施形態では、ステップS1に移る前に、ステップS21により、停止指令が、作業者接近によるものか否かを判定するステップを設けている。ステップS21:Yesすなわち、作業者接近による停止指令あるならば、ステップS22に進む。作業者接近によるものでなければ、ステップS21:Noより、ステップS1に進み、上述した種々の実施形態に基づく停止処理を行う。
【0078】
ステップS22では、作業者の安全を確保すべく即座にロボットアーム本体200の停止を行うため、ロボットアーム本体200の各物理的制約を満たずように停止する処理から、物理的制約にかかわらず即時停止する処理に切り換える。
【0079】
そして、ステップS23では、物理的制約にかかわらず、即時に停止させるために、ロボットアーム本体200の各関節の現在位置を停止軸目標値として使用し、ロボットアーム本体200を停止させる。
【0080】
以上により、停止指令を取得して、即時にロボットアーム本体200を停止させることができるため、作業者の安全を確実に確保することができる。また、即時にロボットアーム本体200を停止させるので、ロボットアーム本体200と作業者との接触により、例えば作業者が身に着けている安全具等によりロボットアーム本体200のハードウェアが破損することを可能な限り低減することができる。
【0081】
(第5の実施形態)
次に本発明における第5の実施形態につき詳述する。上述の種々の実施形態は実機におけるロボットアーム本体200の停止動作について記述した。しかしながら本発明は、ロボットアームのシミュレーションを行う情報処理装置(シミュレーション装置)においても実施可能である。以下で詳述する。
【0082】
図9に示すのは本実施形態におけるロボットアーム本体200の動作のシミュレーションを行う情報処理装置900の概略図である。情報処理装置900は、OS(Operating System)901、ディスプレイ902、キーボード903、マウス904を備えたデスクトップパソコンである。
【0083】
OS901にはロボットアーム本体200及びロボットハンド本体300のCADデータと、実機の制御装置400と同等の軌道生成エンジンが格納されている。表示部となるディスプレイ902にロボットアーム本体200のシミュレーション画面905が表示されている。また、通常動作実行ボタン906、停止ボタン907、停止ボタン908、停止ボタン909、停止ボタン910が表示されている。
【0084】
ここで、停止ボタン907は、上述の第1の実施形態における停止処理のシミュレートを実行するボタンである。停止ボタン908は、上述の第2の実施形態における停止処理のシミュレートを実行するボタンである。停止ボタン909は、上述の第3の実施形態のシミュレートを実行するボタンである。停止ボタン910は、上述の第4の実施形態のシミュレートを実行するボタンである。
【0085】
作業者は、キーボード903およびまたはマウス904を用いて所定の情報(通常軌道の軌道データ等)を入力し、通常動作実行ボタン906をクリックすることで、ロボットアーム本体200の動作シミュレーションを実行することができる。通常動作を再生中に停止ボタン907、停止ボタン908、停止ボタン909、停止ボタン910のいずれかをクリックする。クリックすると、クリックしたタイミングで停止指令が出力されたものとして、そこから上述の実施形態を適用して停止軸目標値を取得する停止処理を実行する。これにより様々な条件によるロボットアーム本体200のハードウェアの破損の危険性を低減する複数種類の停止動作をシミュレーションにより確認することができる。
【0086】
(その他の実施形態)
以上述べた上述の実施形態の処理手順は具体的には制御装置または情報処理装置により実行されるものである。従って上述した機能を実行可能なソフトウェアのプログラムを記録した記録媒体を、各制御装置を統合する装置に供給し、統合的に処理を行うCPUが記録媒体に格納されたプログラムを読み出し実行することによって達成されるよう構成することができる。この場合、記録媒体から読み出されたプログラム自体が上述した各実施形態の機能を実現することになり、プログラム自体およびそのプログラムを記録した記録媒体は本発明を構成することになる。
【0087】
また、各実施形態では、コンピュータで読み取り可能な記録媒体が各ROM或いは各RAM或いは各フラッシュROMであり、ROM或いはRAM或いはフラッシュROMに制御プログラムが格納される場合について説明した。しかしながら本発明はこのような形態に限定されるものではない。本発明を実施するための制御プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、制御プログラムを供給するための記録媒体としては、HDD、外部記憶装置、記録ディスク等を用いてもよい。
【0088】
また上述した種々の実施形態では、ロボットアーム本体200が複数の関節を有する多関節ロボットアームを用いた場合を説明したが、関節の数はこれに限定されるものではない。ロボットアームの形式として、垂直多軸構成を示したが、パラレルリンク型など異なる形式の関節においても上記と同等の構成を実施することができる。
【0089】
また、上述の実施形態では、停止指令を受けた際のタイムステップにおける各関節の速度、加速度に基づき、優先すべき関節の物理的制約を決定したが、ジャーク、トルク、荷重等、状況に応じ、あらゆる物理量を用いても実施可能である。
【0090】
また、上述の実施形態では、関節の速度を直接センサにより取得することで実施したがこれに限られない。例えばロボットハンド本体300にセンサを設け、ロボットハンド本体300に生じる物理量に基づき、各関節に生じる物理量を取得して実施してもかまわない。
【0091】
また上述した種々の実施形態は、制御装置に設けられる記憶装置の情報に基づき、伸縮、屈伸、上下移動、左右移動もしくは旋回の動作またはこれらの複合動作を自動的に行うことができる機械に適用可能である。
【0092】
なお本発明は、上述した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
【符号の説明】
【0093】
200 ロボットアーム本体
201、202、203、204、205 リンク
210 基台
300 ロボットハンド本体
301、302 指
400 制御装置
500 載置台
600 ワーク
700 信号入力装置
800 外部入力装置
900 情報処理装置
901 OS
902 ディスプレイ
903 キーボード
904 マウス
905 シミュレーション画面
906 通常動作実行ボタン
907、908、909、910 動作停止ボタン
1000 ロボットシステム
J1、J2、J3、J4、J5 関節