(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-25
(45)【発行日】2024-07-03
(54)【発明の名称】速度指令値演算装置
(51)【国際特許分類】
G05D 3/12 20060101AFI20240626BHJP
B25J 19/06 20060101ALI20240626BHJP
G05D 13/62 20060101ALI20240626BHJP
【FI】
G05D3/12 306P
B25J19/06
G05D3/12 S
G05D13/62 F
(21)【出願番号】P 2020194954
(22)【出願日】2020-11-25
【審査請求日】2023-10-12
(73)【特許権者】
【識別番号】000237271
【氏名又は名称】株式会社FUJI
(74)【代理人】
【識別番号】110000604
【氏名又は名称】弁理士法人 共立特許事務所
(72)【発明者】
【氏名】名桐 啓祐
(72)【発明者】
【氏名】大野 寿彦
【審査官】影山 直洋
(56)【参考文献】
【文献】国際公開第2011/101915(WO,A1)
【文献】特開2011-118709(JP,A)
【文献】特開2008-171230(JP,A)
【文献】特開昭60-045806(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05D 3/12
B25J 19/06
G05D 13/62
(57)【特許請求の範囲】
【請求項1】
可動部に要求される移動動作に基づいて、所定の演算周期ごとの原速度値を演算する原速度値演算部と、
通常時平均化母数を用いて前記演算周期ごとに前記原速度値に移動平均処理を施すことにより、前記可動部を駆動する駆動機構に指令する前記演算周期ごとの速度の指令値を演算する指令値演算部と、
前記可動部が前記移動動作を行うことによって障害の発生が予想される異常状態を判定する異常判定部と、
前記異常状態が判定されたときに、前記原速度値をゼロとするように前記原速度値演算部を制御するとともに、前記通常時平均化母数よりも小さな異常時平均化母数を用いて前記指令値を演算するように前記指令値演算部を制御する異常対応部と、
を備える速度指令値演算装置。
【請求項2】
前記異常対応部は、前記通常時平均化母数に予め設定された減少割合を乗算して前記異常時平均化母数を求める、請求項1に記載の速度指令値演算装置。
【請求項3】
前記減少割合は、前記可動部の減速度が前記移動動作に応じて定められた許容減速度を越えず、かつ、前記駆動機構により発生可能な最大減速度以下となるように設定される、請求項2に記載の速度指令値演算装置。
【請求項4】
可動部に要求される移動動作に基づいて、所定の演算周期ごとの原速度値を演算する原速度値演算部と、
通常時平均化母数を用いて前記演算周期ごとに前記原速度値に移動平均処理を施すことにより、前記可動部を駆動する駆動機構に指令する前記演算周期ごとの速度の指令値を演算する指令値演算部と、
前記可動部が前記移動動作を行うことによって障害物に衝突し、または移動可能範囲の境界を越えることが予想される異常状態を判定する異常判定部と、
前記異常状態が判定されたときに、前記原速度値をゼロとするように前記原速度値演算部を制御するとともに、前記可動部の現在位置と前記障害物または前記境界との離間距離に基づいて、前記通常時平均化母数よりも小さな異常時平均化母数を求め、前記異常時平均化母数を用いて前記指令値を演算するように前記指令値演算部を制御する異常対応部と、
を備える速度指令値演算装置。
【請求項5】
前記異常対応部は、前記通常時平均化母数を用いて演算された前記指令値にしたがうと仮定した場合に、前記可動部が停止するまでに要する前記現在位置からの制動距離を求め、前記離間距離および前記制動距離に基づいて前記異常時平均化母数を求める、請求項4に記載の速度指令値演算装置。
【請求項6】
前記通常時平均化母数は、前記可動部の加速度が前記移動動作に応じて定められた許容加速度を越えず、かつ、前記駆動機構により発生可能な最大加速度以下となるように設定される、請求項1~5のいずれか一項に記載の速度指令値演算装置。
【請求項7】
前記指令値演算部は、
前記通常時平均化母数に等しい個数で新旧の順に並ぶサンプルエリアに、時系列的に並んだ複数の前記原速度値を記憶するバッファと、
前記演算周期の更新に伴い、前記サンプルエリアの各々に記憶された前記原速度値を旧い側の前記サンプルエリアへ順送りに移動させるとともに、もっとも新しい側の前記サンプルエリアに現在の前記原速度値を記憶させる原速度値移動部と、
前記演算周期の各々において、前記サンプルエリアの各々に記憶された前記原速度値を加算して、前記通常時平均化母数で除算することにより前記指令値を演算する平均演算部と、を有する、
請求項1~6のいずれか一項に記載の速度指令値演算装置。
【請求項8】
前記異常対応部は、
前記異常状態が判定された前記演算周期で、前記異常時平均化母数に等しい個数の新しい側の前記サンプルエリアに現在の前記指令値を記憶させるとともに、前記平均演算部の前記通常時平均化母数を前記異常時平均化母数に変更し、さらに、
前記異常状態が判定された以降の前記演算周期で、前記通常時平均化母数から前記異常時平均化母数を減算した個数の旧い側の前記サンプルエリアにゼロを記憶させる、
請求項7に記載の速度指令値演算装置。
【請求項9】
前記異常対応部は、
前記異常状態が判定された前記演算周期で、前記異常時平均化母数に等しい個数の新しい側の前記サンプルエリアに現在の前記指令値を記憶させるとともに、前記平均演算部の前記通常時平均化母数を前記異常時平均化母数に変更し、さらに、
前記異常状態が判定された以降の前記演算周期で、前記原速度値移動部および前記平均演算部が前記異常時平均化母数に等しい個数の新しい側の前記サンプルエリアのみを用いるように制御する、
請求項7に記載の速度指令値演算装置。
【請求項10】
前記原速度値演算部は、一定の前記原速度値を演算する、請求項1~9のいずれか一項に記載の速度指令値演算装置。
【請求項11】
前記原速度値演算部は、前記可動部の前記移動動作に応じて定められた許容速度を越えず、かつ、前記駆動機構により発生可能な速度の最大値を一定の前記原速度値とする、請求項10に記載の速度指令値演算装置。
【請求項12】
前記可動部は、作業ロボットの可動アームであり、
前記駆動機構は、前記可動アームに前記移動動作を行わせる駆動装置、および前記可動アームの前記移動動作を制動する制動装置を含む、
請求項1~11のいずれか一項に記載の速度指令値演算装置。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、移動平均処理を用いて速度の指令値を演算する速度指令値演算装置に関する。
【背景技術】
【0002】
工場や事業所などの自動化、省力化を推進するために、作業ロボットが広く用いられている。多くの作業ロボットは、可動アームと、可動アームの先端に設けられて指示された作業を行うエンドエフェクタと、可動アームを駆動する駆動機構と、を備える。可動アームに要求される移動動作を実現するために、駆動機構に指令する指令値を演算する速度指令値演算装置が用いられる。速度指令値演算装置の一種に、移動平均処理を用いる方式の装置がある。この種の速度指令値演算装置に関する技術例が、特許文献1、2に開示されている。
【0003】
特許文献1の指令生成装置は、所定の平均時間における速度指令の移動平均を計算し移動平均速度指令として出力する移動平均フィルタと、平均時間を変更する手段と、平均時間の変更に伴って発生する移動距離の差分を移動距離補正量として演算する手段と、移動距離補正量に応じた速度補正値を演算する手段とを備え、移動平均速度指令に速度補正値を加算して、電動機の位置決め制御における動作指令を求める。これによれば、複数の移動平均フィルタを設けることなく、電動機の動作中に平均時間を変更することができ、かつ、正しい位置決めが行える、とされている。
【0004】
また、特許文献2の位置指令装置は、上位システムのコマンドから第1指令位置を生成する直線加減速指令生成部と、第1指令位置を設定可能な回数の移動平均をして第2指令位置を生成するS字加減速指令生成部と、第2指令位置を位置制御装置に送信する送信部と、上位システムの移動平均回数変更のコマンドにしたがって変更可能なときに回数変更指令を生成する回数変更判断部と、を備える。これによれば、移動平均時間の変更が可能な位置指令装置を提供できる、とされている。
【先行技術文献】
【特許文献】
【0005】
【文献】国際公開第2011/101915号
【文献】特開2008-171230号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、特許文献1、2の技術では、移動平均の平均化母数(平均時間、移動平均回数)を可変とすることにより、機械振動の低減と動作時間の短縮の両立を図っている。つまり、円滑な移動動作が必要な時期には平均化母数を大きく変更して速度変化を制限し、動作時間の短縮が必要な時期には平均化母数を小さく変更して大きな速度変化を許容している。しかしながら、これらの技術は、通常時における可動部の移動動作を良好化するものであって、異常状態に対応するものではない。
【0007】
詳述すると、指令値(動作指令、第2指令位置)にしたがい可動部が移動動作を行うことによって、障害の発生が予想される場合がある。このような緊急停止が必要な異常状態に対して、特許文献1、2の技術は対応することができない。つまり、特許文献1、2の技術では、異常状態に陥っていても、可動部は通常時と同じ減速度で停止する。その結果、可動部が停止する以前に障害物に衝突してしまう等の問題が発生する。
【0008】
一方、異常状態に対応するために、可動部の移動目標位置を現在位置に設定したり、可動部の動作速度を直ちにゼロに設定したりする即時停止手段が考えられる。しかしながら、この手段では、駆動機構に過大な負担を掛けることになって故障の要因となるおそれが生じる。加えて、可動部の減速度が極端に大きくなるため、弊害のおそれが生じる。
【0009】
それゆえ、本明細書では、可動部が移動動作を行うことによって障害の発生が予想される異常状態に対応することにより、障害の実際の発生を抑制することができる速度指令値演算装置を提供することを解決すべき課題とする。
【課題を解決するための手段】
【0010】
本明細書は、可動部に要求される移動動作に基づいて、所定の演算周期ごとの原速度値を演算する原速度値演算部と、通常時平均化母数を用いて前記演算周期ごとに前記原速度値に移動平均処理を施すことにより、前記可動部を駆動する駆動機構に指令する前記演算周期ごとの速度の指令値を演算する指令値演算部と、前記可動部が前記移動動作を行うことによって障害の発生が予想される異常状態を判定する異常判定部と、前記異常状態が判定されたときに、前記原速度値をゼロとするように前記原速度値演算部を制御するとともに、前記通常時平均化母数よりも小さな異常時平均化母数を用いて前記指令値を演算するように前記指令値演算部を制御する異常対応部と、を備える速度指令値演算装置を開示する。
【0011】
また、本明細書は、可動部に要求される移動動作に基づいて、所定の演算周期ごとの原速度値を演算する原速度値演算部と、通常時平均化母数を用いて前記演算周期ごとに前記原速度値に移動平均処理を施すことにより、前記可動部を駆動する駆動機構に指令する前記演算周期ごとの速度の指令値を演算する指令値演算部と、前記可動部が前記移動動作を行うことによって障害物に衝突し、または移動可能範囲の境界を越えることが予想される異常状態を判定する異常判定部と、前記異常状態が判定されたときに、前記原速度値をゼロとするように前記原速度値演算部を制御するとともに、前記可動部の現在位置と前記障害物または前記境界との離間距離に基づいて、前記通常時平均化母数よりも小さな異常時平均化母数を求め、前記異常時平均化母数を用いて前記指令値を演算するように前記指令値演算部を制御する異常対応部と、を備える速度指令値演算装置を開示する。
【発明の効果】
【0012】
本明細書で開示する速度指令値演算装置において、異常対応部は、異常状態が判定されたときに、原速度値をゼロに制御するとともに、通常時平均化母数よりも小さな異常時平均化母数を用いて指令値を演算させる。これによれば、現在以降の原速度値がゼロとなるため、可動部は、直ちに減速を開始する。かつ、現在以降は小さな異常時平均化母数が用いられるため、可動部は、通常時よりも大きな減速度で停止に至る。この結果、可動部は、異常状態発生時の緊急停止動作において通常時よりも小さな制動距離で停止することができ、障害の実際の発生が抑制される。
【図面の簡単な説明】
【0013】
【
図1】第1実施形態の速度指令値演算装置を適用する作業ロボットの構成を模式的に示した斜視図である。
【
図2】速度指令値演算装置の機能構成を示すブロック図である。
【
図3】指令値演算部が有するバッファを模式的に説明する図である。
【
図4】速度指令値演算装置の全般的な動作を説明する動作フローの図である。
【
図5】速度指令値演算装置の異常時対応の動作を説明する動作フローの図である。
【
図6】速度指令値演算装置が演算した通常時の原速度値および指令値を図式的に表した図である。
【
図7】指令値演算部で移動平均処理により指令値を演算する方法を表した表形式の図である。
【
図8】速度指令値演算装置が演算した異常状態における原速度値および指令値を図式的に表した図である。
【
図9】指令値演算部で移動平均処理により異常状態における指令値を演算する方法を表した表形式の図である。
【
図10】従来技術の速度指令値演算装置が演算した異常状態における原速度値および指令値を図式的に表した図である。
【
図11】従来技術の指令値演算部で移動平均処理により異常状態における指令値を演算する方法を表した表形式の図である。
【
図12】第2実施形態の速度指令値演算装置の機能構成を示すブロック図である。
【
図13】第2実施形態で、異常状態における原速度値および指令値を図式的に表した図である。
【
図14】第2実施形態で、異常状態における指令値を演算する方法を表した表形式の図である。
【発明を実施するための形態】
【0014】
1.作業ロボット9の構成例
まず、第1実施形態の速度指令値演算装置1を適用する作業ロボット9の構成例について、
図1および
図2を参考にして説明する。作業ロボット9は、基部91、可動アーム92(可動部)、エンドエフェクタ93、駆動機構94、および図略の作業指令部などで構成される。可動アーム92は、基部91に対して移動可能に設けられる。可動アーム92は、複数の部材で構成され、複数の関節および複数の可動軸を有する。エンドエフェクタ93は、可動アーム92の先端に設けられており、指示された作業を実施する。
【0015】
駆動機構94は、可動アーム92の移動動作を駆動する。駆動機構94は、可動軸の軸数に対応して複数組設けられる。以降の説明を簡明化するために、一つの可動軸に対応する一組の駆動機構94について詳述する。駆動機構94は、
図2に示されるように、駆動制御部95、駆動装置96、および制動装置97で構成される。
【0016】
駆動装置96は、可動アーム92に移動動作を行わせる。駆動装置96は、例えば、サーボモータやパルスモータなどと呼ばれる制御性の良好なモータを用いて構成される。これに限定されず、駆動装置96は、油圧機構や空気圧機構などを用いて可動アーム92を駆動する装置であってもよい。
【0017】
制動装置97は、可動アーム92の移動動作を制動する。制動装置97は、例えば、電磁力によって制動力を発生する電磁ブレーキを用いて構成される。これに限定されず、制動装置97は、摩擦プレートの摩擦力によって制動力を発生する摩擦ブレーキなどを用いて構成されてもよい。
【0018】
駆動制御部95は、速度の指令値CVを受け取り、この指令値CVを駆動装置96および制動装置97に適合する物理量に変換して、駆動装置96および制動装置97に指令する。適合する物理量は、モータや電磁ブレーキに流す電流の電流値、油圧機構や空気圧機構の圧力値、摩擦ブレーキにおける摩擦プレートの動作量などが相当する。
【0019】
作業指令部は、オペレータからの作業指示や予め設定された作業メニューに基づいて、指示された作業の実施を制御する。作業指令部は、作業の実施に際し、可動アーム92に要求される移動動作、およびエンドエフェクタ93に要求される作業動作を管理する。可動アーム92に要求される移動動作は、可動アーム92の現在位置からの移動方向および移動距離、あるいは移動する最終的な目標位置などで表される。
【0020】
ここで、可動アーム92が移動するときの速度、加速度、および減速度は、二つの制約条件をもち、小さい側の制約条件によって規制される。第一制約条件は、駆動機構94の性能上の限界である。すなわち、駆動装置96からの駆動では、可動アーム92の移動動作において発生可能な最大速度および最大加速度の制約がある。また、制動装置97からの制動では、可動アーム92の移動動作において発生可能な最大減速度の制約がある。
【0021】
第二制約条件は、可動アーム92の移動動作に応じて定められた許容速度、許容加速度、および許容減速度の制約である。第二制約条件は、可動アーム92が移動動作を行ったときに弊害が発生しないように設定される。例えば、エンドエフェクタ93が部品を把持しているときに、可動アーム92が過大な加速や減速を行うと、エンドエフェクタ93から部品が落下するという弊害が発生し得る。また、エンドエフェクタ93が移動しながら塗装などの作業を行う場合に、可動アーム92が過大な速度で移動すると、作業品質が低下するという弊害が発生し得る。このような弊害を考慮して、許容速度、許容加速度、および許容減速度が適正に設定される。
【0022】
2.第1実施形態の速度指令値演算装置1の構成
次に、第1実施形態の速度指令値演算装置1の構成について、
図2、
図3、および
図6を参考にして説明する。速度指令値演算装置1は、作業ロボット9の作業指令部からの要求指令に基づいて、速度の指令値CVを演算し、駆動制御部95に出力する。第1実施形態において、作業指令部からの要求指令は、可動アーム92の移動動作に要求される移動距離Lで表される。速度指令値演算装置1は、入力部および出力部をもつコンピュータ装置を用いて構成される。
図2に示されるように、速度指令値演算装置1は、四つの制御機能部、すなわち原速度値演算部2、指令値演算部3、異常判定部4、および異常対応部5で構成される。
【0023】
原速度値演算部2は、可動アーム92に要求される移動距離Lに基づいて、所定の演算周期TSごとの原速度値V0を演算する。原速度値演算部2は、可動アーム92が移動動作を行うときの仮想的な一定の原速度値V0を演算する。つまり、可動アーム92は、必ずしも一定の原速度値V0で動くわけでは無い。一定の原速度値V0は、ある期間だけ0でない原速度値V0が継続する矩形波と言い換えることができる。さらに、原速度値演算部2は、駆動装置96により発生可能(第一制約条件を満たす)であり、かつ、第二制約条件の許容速度を越えない速度の最大値Vmaxを一定の原速度値V0とする。
【0024】
以降では、移動距離Lが200[mm]、演算周期TSの周期時間tsが1[ms]、最大値Vmaxが10[mm/ms]である場合を想定して説明を進める。実際の作業ロボット9では、上記の想定と相違する動作条件等が用いられる。上記の想定による場合、可動アーム92が1演算周期TSごとに移動し得る最大の移動距離L0は、次式で求められ、10[mm]となる。
移動距離L0=Vmax・ts=10×1[mm]
【0025】
また、可動アーム92が移動距離Lの移動動作に要する最小の周期数nは、次式で求められ、20[周期]となる。
周期数n=L/L0=200÷10[周期]
【0026】
原速度値演算部2は、上記の演算結果に基づいて、20周期の演算周期TSにわたり原速度値V0=10[mm/ms]を指令値演算部3に出力する。また、原速度値演算部2は、当該の20周期を除いた前後の演算周期TSでは、原速度値V0=0を指令値演算部3に出力する。原速度値演算部2が出力する原速度値V0は、異常対応部5によって変更可能とされている。
【0027】
指令値演算部3は、通常時平均化母数NNを用いて演算周期TSごとに原速度値V0に移動平均処理を施すことにより、駆動制御部95に指令する演算周期TSごとの速度の指令値CVを演算する。ここで、通常時平均化母数NNは、可動アーム92の加速度が第一制約条件の最大加速度以下となり、かつ、第二制約条件の許容加速度を越えないように設定される。
【0028】
例えば、条件を満たす最大の加速度が1(以降では単位を省略する)である場合、停止していた可動アーム92は、演算周期TSごとに1ずつ加速することができ、10周期後に最大値Vmaxに到達する。したがって、通常時平均化母数NNは、10周期に相当する10個に設定される。仮に、通常時平均化母数NNが10個未満であると、加速度が1を超過するため、第一および第二制約条件の少なくとも一方が満たされなくなる。また、通常時平均化母数NNが10個を超えていると、加速度が1未満となる。これにより、可動アーム92の加速性能が低下して、移動動作が冗長に長時間化する。
【0029】
指令値演算部3は、例えばDSP(Digital Signal Processor)と呼ばれる専用の演算素子を用いて構成される。これにより、指令値演算部3は、高速の演算処理が可能となっている。指令値演算部3は、バッファ6、原速度値移動部31、および平均演算部32で構成される。
【0030】
バッファ6は、
図3に示されるように、通常時平均化母数NNに等しい10個の第1サンプルエリアA1~第10サンプルエリアA10をもつ。バッファ6は、時系列的に並んだ10個の原速度値V0を第1サンプルエリアA1~第10サンプルエリアA10に記憶する。第1サンプルエリアA1は、最も新しい原速度値V0を記憶し、第10サンプルエリアA10は、最も旧い原速度値V0を記憶する。バッファ6に記憶された原速度値V0の各々は、異常対応部5によって変更可能とされている。
【0031】
原速度値移動部31は、バッファ6内の原速度値V0を移動させる移動処理を行う。詳述すると、原速度値移動部31は、演算周期TSの更新に伴い、第1サンプルエリアA1~第9サンプルエリアA9の各々に記憶された原速度値V0を旧い側の第2サンプルエリアA2~第10サンプルエリアA10へ順送りに移動させる(
図3の矢印参照)。このとき、第10サンプルエリアA10に記憶されていた原速度値V0は不要となる。さらに、原速度値移動部31は、もっとも新しい側の第1サンプルエリアA1に現在の原速度値V0を記憶させる。
【0032】
平均演算部32は、演算周期TSの各々において、第1サンプルエリアA1~第10サンプルエリアA10に記憶されている記憶内容(10個の原速度値V0)を加算して、通常時平均化母数NN(=10)で除算することにより指令値CVを演算する。平均演算部32は、さらに、演算した指令値CVを駆動制御部95に出力する。平均演算部32が10個の記憶内容を加算する機能は、変更することができない。一方、通常時平均化母数NNは、異常対応部5によって変更可能とされている。
【0033】
異常判定部4は、可動アーム92が移動動作を行うことによって障害の発生が予想される異常状態を判定する。障害として、可動アーム92が障害物に衝突したり、可動アーム92が設定された移動可能範囲の境界を越えたり、エンドエフェクタ93が作業動作を行えない作業不能領域に移動したりする場合があり、これらに限定されない。
【0034】
異常判定部4は、上記した障害物や移動可能範囲、作業不能領域の情報を予め記憶している。かつ、異常判定部4は、可動アーム92の移動に関する情報がリアルタイムで入力される。したがって、異常判定部4は、障害の発生を予想することができる。異常判定部4は、ある演算周期TSにおいて異常状態を判定した場合に、当該の演算周期TSの中で異常判定信号ABを異常対応部5に出力する。
【0035】
なお、異常判定部4は、別途設けられた異常検出部からの検出信号に基づいて異常状態を判定するようにしてもよい。例えば、可動アーム92のエンドエフェクタ93の近くに設けた監視カメラにより可動アーム92の移動前方の障害物を検出し、検出信号を異常判定部4に送信するように構成することができる。これによれば、オペレータの手などの動き得る障害物への対応が可能となる。
【0036】
異常対応部5は、通常時には休止しており、異常判定信号ABを受け取ると動作を開始する。異常対応部5は、異常状態が判定されたときに、以降の原速度値V0を強制的に0とするように原速度値演算部2を制御する。また、異常対応部5は、通常時平均化母数NNよりも小さな異常時平均化母数NAを用いて指令値CVを演算するように指令値演算部3を制御する。
【0037】
ここで、異常対応部5は、通常時平均化母数NNに予め設定された減少割合Rを乗算して異常時平均化母数NAを求める。減少割合Rは、可動アーム92の減速度が制動装置97により発生可能な最大減速度以下となり(第一制約条件を満たす)、かつ、第二制約条件の許容減速度を越えない最小値に設定される。
【0038】
例えば、条件を満たす最大の減速度が2である場合、最大値Vmax(=10)で移動していた可動アーム92は、演算周期TSごとに2ずつ減速して、5周期後に停止することができる。したがって、減少割合Rは、減速するときに要する5周期と、前述した加速するときに要する10周期との割合で求められ、0.5に設定される(R=0.5)。これによれば、異常時平均化母数NAは、次式で求められ、5個となる。
異常時平均化母数NA=NN・R=10×0.5[個]
【0039】
仮に、減少割合Rが最小値の0.5未満であると、異常時平均化母数NAが5個未満となって減速度が2を超過するため、第一および第二制約条件の少なくとも一方が満たされなくなる。また、減少割合Rが最小値の0.5を超えていると、異常時平均化母数NAが5個を越えて減速度が2より小さくなる。これにより、可動アーム92の減速性能が低下し、停止に要する制動距離が冗長に長くなる。
【0040】
異常対応部5は、求めた異常時平均化母数NA(=5)を平均演算部32に指令して、通常時平均化母数NNを異常時平均化母数NAに変更する。また、異常対応部5は、異常判定信号ABを受け取ると、バッファ6に対して所定の異常時セット操作を行う。異常時セット操作の詳細については、後述する異常時対応の動作の中で説明する。
【0041】
3.速度指令値演算装置1の通常時の動作
次に、速度指令値演算装置1の通常時の動作について、
図4、
図6、および
図7を参考にして説明する。
図6において(
図8、
図10も同様)、横軸は演算周期TSを表し、縦軸は速度を表している。また、破線のグラフは、原速度値演算部2が出力した原速度値V0(実際には演算周期TSごとの離散量)を示し、黒丸および実線のグラフは、指令値演算部3が出力した指令値CV、および指令値CVを結んだ変化の様子を示している。また、
図7において(
図9、
図11も同様)、各演算周期TSにおけるバッファ6の第1サンプルエリアA1~第10サンプルエリアA10に記憶された原速度値V0、および指令値CVが一覧表の形式で示されている。
【0042】
図4に示された動作フローのステップS1で、速度指令値演算装置1は、起動時に初期設定を行う。すなわち、速度指令値演算装置1は、通常時平均化母数NN=10個、減少割合R=0.5、および原速度値V0=0を初期設定する。なお、これらの量がデフォルト値として保存され、ステップS1の初期設定が省略されてもよい。
【0043】
次のステップS2で、原速度値演算部2は、移動動作の要求が有るか否かを判定する。要求が無い場合、原速度値演算部2は、動作フローの実行をステップS4に進める。また、要求が有る場合、原速度値演算部2は、動作フローの実行をステップS3に進めて、原速度値V0を演算する。以降では、第1演算周期TS1で前記した移動距離L=200の移動動作の要求が発生した場合を想定し、説明を進める。
【0044】
原速度値演算部2は、第1演算周期TS1のステップS3で、20周期分の原速度値V0=10、およびその後の原速度値V0=0を一度に演算することができる。原速度値演算部2は、
図6に示されるように、第1演算周期TS1およびその後の演算周期TSで、演算済みの原速度値V0を出力する。この後、動作フローはステップS4に合流される。
【0045】
ステップS4で、原速度値移動部31は、前述したバッファ6内の移動処理を行う。移動動作の要求が無い第1演算周期TS1以前において、原速度値V0は0であり、第1サンプルエリアA1~第10サンプルエリアA10の各々に0が記憶された状態が継続する。原速度値移動部31は、第1演算周期TS1において、原速度値演算部2から入力された原速度値V0=10を第1サンプルエリアA1に記憶させる。このとき、第2サンプルエリアA2~第10サンプルエリアA10に記憶された原速度値V0は0である。この状態は、
図7の第1演算周期TS1の段に示されている。
【0046】
次のステップS5で、平均演算部32は、第1サンプルエリアA1~第10サンプルエリアA10に記憶されている10個の原速度値V0を加算して求めた10を、通常時平均化母数NN(=10)で除算することにより指令値CV=1を演算する。次のステップS6で、平均演算部32は、演算した指令値CV=1を駆動制御部95に出力する。
【0047】
次のステップS7で、速度指令値演算装置1は、出力した指令値CVが0であるか否かを判定する。ここで、指令値CVが0であることは、可動アーム92の移動動作が終了していることを意味する。第1演算周期TS1において、指令値CVは0でないので、動作フローの実行はステップS8に進められる。ステップS8で、異常判定部4は、異常状態であるか否かを判定する。多くの場合に異常状態ではなく、動作フローはステップS4に戻され、演算周期TSが更新される。
【0048】
第2演算周期TS2のステップS4で、原速度値移動部31は、第1サンプルエリアA1の原速度値V0=10を第2サンプルエリアA2に移動するとともに、原速度値演算部2から入力された原速度値V0=10を第1サンプルエリアA1に記憶させる。このとき、第3サンプルエリアA3~第10サンプルエリアA10に記憶された原速度値V0は0である。この状態は、
図7の第2演算周期TS2の段に示されている。
【0049】
次のステップS5で、平均演算部32は、第1サンプルエリアA1~第10サンプルエリアA10に記憶されている10個の原速度値V0を加算して求めた20を、通常時平均化母数NN(=10)で除算することにより指令値CV=2を演算する。次のステップS6で、平均演算部32は、演算した指令値CV=2を駆動制御部95に出力する。この後、動作フローは、ステップS7およびステップS8を経由してステップS4戻され、演算周期TSが更新される。
【0050】
ステップS4~ステップS8で構成された繰り返しループが10回繰り返されると、第10演算周期TS10に至る。この間、指令値CVは、演算周期TSごとに1ずつ増加する。第10演算周期TS10において、第1サンプルエリアA1~第10サンプルエリアA10の各々には、原速度値V0=10が記憶されている。平均演算部32は、ステップS5で指令値CV=10を演算し、ステップS6で指令値CV=10を駆動制御部95に出力する。この後、第20演算周期TS20まで、同じ状態が維持される。
【0051】
第21演算周期TS21のステップS4で、原速度値移動部31は、原速度値演算部2から入力された原速度値V0=0を第1サンプルエリアA1に記憶させる。このとき、第2サンプルエリアA2~第10サンプルエリアA10に記憶された原速度値V0は10である。平均演算部32は、ステップS5で指令値CV=9を演算し、ステップS6で指令値CV=9を駆動制御部95に出力する。この後の第30演算周期TS30まで、指令値CVは、演算周期TSごとに1ずつ減少する。
【0052】
第30演算周期TS30において、指令値CVは0であるので、動作フローの実行はステップS7からステップS2に戻され、演算周期TSが更新される。これで、可動アーム92の通常時の移動動作が終了し、次の移動動作の要求を受け付け可能な状態に戻る。
図6に示されるように、可動アーム92が減速を開始してから停止するまでの停止動作に、10周期の停止時間を要する。また、停止動作に要する制動距離は、
図6の第20演算周期TS20から第30演算周期TS30までの指令値CVの面積で求められ、50である。
【0053】
要求された移動距離Lが200よりも長い場合、指令値CV=10を維持する周期数が増加する。この場合、停止動作に要する停止時間および制動距離は、上記の場合と変わらない。要求された移動距離Lが200よりも短い場合、指令値CV=10を維持する周期数が減少し、あるいは、指令値CVが10に達する以前に減速が始まる。
【0054】
4.速度指令値演算装置1の異常時対応の動作
次に、速度指令値演算装置1の異常時対応の動作について、
図5、
図8、および
図9を参考にして説明する。
図4のステップS8で、異常判定部4が異常状態を判定していると、動作フローはステップS9に進められる。ステップS9で、速度指令値演算装置1は、異常時対応を実施する。異常時対応の動作フローの詳細は、
図5に示されている。以降では、
図8および
図9に例示されるように、第12演算周期TS12で異常状態が判定された場合について説明する。
【0055】
図5のステップS11で、異常対応部5は、前述したように異常時平均化母数NA(=5)を求めて、平均演算部32に指令する。平均演算部32は、通常時平均化母数NNを異常時平均化母数NAに変更して動作を継続する。次のステップS12で、異常対応部5は、以降の原速度値V0を強制的に0とするように原速度値演算部2を制御する。
【0056】
次のステップS13で、異常対応部5は、バッファ6の異常時セット操作を行う。詳述すると、異常対応部5は、異常状態が判定された第12演算周期TS12以降の演算周期TSで、第6サンプルエリアA6~第10サンプルエリアA10に強制的に0を記憶させる。なお、第6サンプルエリアA6~第10サンプルエリアA10は、通常時平均化母数NN(=10)から異常時平均化母数NA(=5)を減算した5個の旧い側として決定される。これによれば、
図9に示されるように、第13演算周期TS13以降の演算周期TSにおける第6サンプルエリアA6~第10サンプルエリアA10の記憶内容は、すべて0となる。仮に、異常時平均化母数NAが8個の場合、異常対応部5は、旧い側の2個の第9サンプルエリアA9および第10サンプルエリアA10に強制的に0を記憶させることになる(第2実施形態で説明する
図14参照。)
【0057】
このセット操作は、第6サンプルエリアA6~第10サンプルエリアA10を実質的に未使用状態とするものである。これによれば、平均演算部32は、10個のサンプルエリアの記憶内容を加算する機能を変更することができなくとも、異常時平均化母数NA(=5)による5個の移動平均処理を正しく行うことができる。
【0058】
なお、原速度値移動部31および平均演算部32が使用するサンプルエリアの個数を変更できる構成も考えられる。この構成では、異常対応部5は、原速度値移動部31および平均演算部32が異常時平均化母数NAに等しい5個の新しい側の第1サンプルエリアA1~第5サンプルエリアA5のみを用いるように制御すればよい。
【0059】
さらに、異常対応部5は、異常状態が判定された第12演算周期TS12で、異常時平均化母数NAに等しい5個の新しい側の第1サンプルエリアA1~第5サンプルエリアA5に現在の指令値CV=10を記憶させる。仮に、第7演算周期TS7で異常状態が判定された場合、異常対応部5は、第1サンプルエリアA1~第5サンプルエリアA5に現在の指令値CV=7を記憶させる。このセット操作は、平均化母数を変更したときに生じがちな指令値CVの急峻な変化(実現不可能な変化)を回避するためのものである。
【0060】
この後、演算周期TSが更新され、動作フローの実行はステップS14に進められる。ステップS14~ステップS17における動作内容は、通常時のステップS4~ステップS7と同様であるが、異常時平均化母数NAを用いる点が相違する。
【0061】
第13演算周期TS13のステップS14で、原速度値移動部31は、第1サンプルエリアA1~第4サンプルエリアA4の指令値CV=10を、第2サンプルエリアA2~第5サンプルエリアA5へ順送りに移動させる。さらに、原速度値移動部31は、原速度値演算部2から入力された原速度値V0=0を第1サンプルエリアA1に記憶させる。この状態は、
図9の第13演算周期TS13の段に示されている。
【0062】
矢印M1に示されるように、第12演算周期TS12の指令値CV=10は、第13演算周期TS13の第2サンプルエリアA2~第5サンプルエリアA5に残る。これによれば、第13演算周期TS13の指令値CVは、第12演算周期TS12の指令値CVから大きく変化することがない。したがって、指令値CVの急峻な変化が回避される。
【0063】
次のステップS15で、平均演算部32は、指令値CV=8を演算する。次のステップS16で、平均演算部32は、演算した指令値CV=8を駆動制御部95に出力する。次のステップ17で、指令値CVが0でないことから、動作フローはステップS14に戻されて、演算周期TSが更新される。この後、ステップS14~ステップS17で構成された繰り返しループが繰り返される。指令値CVは、第12演算周期TS12において10であり、演算周期TSが更新されるたびに2ずつ減少して、第17演算周期において0となる。
【0064】
これで異常時対応が終了し、動作フローはステップS18に進められる。ステップS18で、異常対応部5は、平均演算部32の異常時平均化母数NAを通常時平均化母数NNに戻すとともに、異常時セット操作を解消する。この後、動作フローの実行は、
図4のステップS9を経由してステップS2に戻され、次の移動動作の要求を受け付け可能な状態に戻る。
【0065】
異常時対応において、可動アーム92が減速を開始してから停止するまでの緊急停止動作に5周期の停止時間を要する。また、緊急停止動作に要する制動距離は、
図8の第12演算周期TS12から第17演算周期TS17までの指令値CVの面積で求められ、25である。
【0066】
5.従来技術の速度指令値演算装置との対比
次に、従来技術の速度指令値演算装置の構成および動作について説明する、従来技術の速度指令値演算装置は、実施形態と同じ原速度値演算部2、指令値演算部3、および異常判定部4を備え、異常対応部の機能のみが相違する。従来技術の異常対応部は、異常状態が判定されたとき、実施形態と同様に以降の原速度値V0を強制的に0とするが、通常時平均化母数NNの変更やバッファ6の異常時セット操作は行わない。
【0067】
したがって、従来技術の速度指令値演算装置において、可動アーム92の緊急停止動作は、通常時と同様に10周期を要する。この結果、
図10および
図11に示されるように、第12演算周期TS12で異常状態が判定された場合、可動アーム92の停止は、第22演算周期TS22となる。このため、従来技術の速度指令値演算装置は、異常時対応の緊急停止動作であっても、通常時と同じ制動距離(=50)が必要となる。これに対比して、実施形態の速度指令値演算装置1では、緊急停止動作の停止時間(=5周期)および制動距離(=25)が半分で済む。
【0068】
第1実施形態の速度指令値演算装置1において、異常対応部5は、異常状態が判定されたときに、原速度値V0をゼロに制御するとともに、通常時平均化母数NNよりも小さな異常時平均化母数NAを用いて指令値CVを演算させる。これによれば、現在以降の原速度値V0がゼロとなるため、可動アーム92(可動部)は、直ちに減速を開始する。かつ、現在以降は小さな異常時平均化母数NAが用いられるため、可動アーム92は、通常時よりも大きな減速度で停止に至る。この結果、可動アーム92は、異常状態発生時の緊急停止動作において通常時よりも小さな制動距離で停止することができ、障害の実際の発生が抑制される
【0069】
また、異常時平均化母数NAは第一制約条件が許す範囲内で設定されるので、駆動装置96および制動装置97に過大な負担をかけることが無く、故障要因を低減することができる。さらに、異常時平均化母数NAは、第二制約条件が許す範囲内で設定されるので、異常時対応において可動アーム92の移動動作に弊害が発生しない。
【0070】
6.第2実施形態の速度指令値演算装置1A
次に、第2実施形態の速度指令値演算装置1Aの構成および動作について、
図12~
図14を参考にして、第1実施形態と異なる点を主に説明する。第2実施形態において、異常判定部4が異常検出部98を有する点が第1実施形態と異なり、かつ、異常対応部5の動作が第1実施形態と異なる。
【0071】
異常検出部98は、異常状態の判定に有効な可動アーム92の現在状態を検出する。異常検出部98は、例えば、可動アーム92のエンドエフェクタ93の近くに設けられた監視カメラや近接センサなどによって構成され、可動アーム92の移動前方の障害物を検出する。異常検出部98は、障害物の有無に関する信号、および、可動アーム92の現在位置と障害物との離間距離DXに関する信号を異常判定部4に出力する。
【0072】
異常判定部4は、異常検出部98から受け取った信号に基づいて、異常状態を判定するとともに、前記した離間距離DXを演算する。離間距離DXの演算方法として、監視カメラが取得した画像データの画像処理や、近接センサの出力信号の距離換算などを例示することができる。異常判定部4は、第1実施形態と同様の異常判定信号ABに加えて、離間距離DXを表す信号を異常対応部5に出力する。
【0073】
異常対応部5は、第1実施形態と同様、異常判定信号ABを受け取ると動作を開始する。しかしながら、第1実施形態と異なり、減少割合Rは、予め設定されていない可変量である。異常対応部5は、離間距離DXを用いた演算により減少割合Rを求める。さらに、異常対応部5は、求めた減少割合Rと通常時平均化母数NNを乗算して、異常時平均化母数NBを求める。第2実施形態において、減少割合Rの値は、1を超過したり、第1実施形態で説明した最小値の0.5より小さくなったりする場合が生じ得る。
【0074】
演算方法について詳述すると、異常対応部5は、まず、通常時平均化母数NNを用いて演算された指令値CVにしたがうと仮定した場合に、可動アーム92が停止するまでに要する現在位置からの制動距離を求める。可動アーム92が最大値Vmax(=10)で移動しているときの制動距離は、第1実施形態で説明した50である。可動アーム92が最大値Vmaxよりも小さな速度で移動している場合、制動距離は、50よりも小さくなるが、演算によって求めることが可能である。次に、異常対応部5は、次式を用いて減少割合Rを演算する。
減少割合R=DX/DS
【0075】
さらに、異常対応部5は、次式を用いて異常時平均化母数NBを演算する。なお、異常時平均化母数NBに1未満の端数が生じた場合、切り捨てによって整数の異常時平均化母数NBを求める。
異常時平均化母数NB=NN・R
以降では、求められた異常時平均化母数NBの大きさに基づき、1)~3)に場合分けして説明する。
【0076】
1)異常時平均化母数NBが通常時平均化母数NNよりも大きい場合
(NB>NN=10)
この場合、減少割合Rは1を超過しており、仮定から求めた制動距離は、離間距離DXよりも小さい。つまり、可動アーム92は、通常時平均化母数NNを用いて演算された指令値CVにしたがって移動しても、障害物に衝突しない。したがって、異常対応部5は、以降の原速度値V0を強制的に0とするように原速度値演算部2を制御し、指令値演算部3を制御しない。指令値演算部3は、通常時平均化母数NNを用いた移動平均処理を継続する。
【0077】
2)異常時平均化母数NBが通常時平均化母数NN以下で、かつ第1実施形態で説明した第一および第二制約条件を満たす場合(NN=10≧NB≧5)
この場合、減少割合Rは、概ね0.5以上で1未満の範囲内にある。つまり、可動アーム92は、通常時平均化母数NNを用いて演算された指令値CVにしたがうと障害物に衝突するおそれがある。それでも、指令値演算部3が異常時平均化母数NBを用いることにより、可動アーム92は、衝突を回避することができる。したがって、異常対応部5は、以降の原速度値V0を強制的に0とするように原速度値演算部2を制御するとともに、異常時平均化母数NBを平均演算部32に指令し、バッファ6に対して所定の異常時セット操作を行う。
【0078】
例えば、第1実施形態と同じく第12演算周期TS12で異常状態が判定され、離間距離DX=42、制動距離=50の場合、減少割合R=0.84となり、異常時平均化母数NBは8個となる。この場合の速度指令値演算装置1Aの動作は、
図13および
図14に示されている。
【0079】
図14に示されるように、第13演算周期TS13以降の演算周期TSにおける第9サンプルエリアA9および第10サンプルエリアA10の記憶内容は、すべて0となる。また、矢印M2に示されるように、第12演算周期TS12の指令値CV=10は、第13演算周期TS13の第2サンプルエリアA2~第8サンプルエリアA8に残る。したがって、第13演算周期TS13の指令値CVは、第12演算周期TS12の指令値CVから大きく変化しない。かつ、第13演算周期TS13の指令値CVは8.75であり、通常時よりも大きな減速度となる。指令値CVは、第12演算周期TS12において10であり、演算周期TSが更新されるたびに1.25ずつ減少して、第20演算周期において0となる。
【0080】
可動アーム92が減速を開始してから停止するまでに要する制動距離は、
図13の第12演算周期TS12から第20演算周期TS20までの指令値CVの面積で求められ、40である。つまり、可動アーム92は、離間距離DX(=42)よりもわずかに小さな制動距離(=40)で障害物の少し手前に停止し、障害物への衝突を回避することができる。加えて、減速度を必要以上に大きくしないので、許容される最大の減速度で常に緊急停止動作を行う第1実施形態と比較して、可動アーム92や制動装置97に大きな負担をかけない優しい緊急停止動作を実現することができる。
【0081】
3)異常時平均化母数NBが第1実施形態で説明した第一および第二制約条件を満たさない場合(5>NB)
この場合、減少割合Rは、0.5よりも小さい。つまり、可動アーム92は、第一および第二制約条件を満たす異常時平均化母数NBを用いて演算された指令値CVにしたがう限り、障害物への衝突を回避することができない。異常対応部5は、以降の原速度値V0を強制的に0とするように原速度値演算部2を制御するとともに、第一および第二制約条件を満たす最小の異常時平均化母数NB(=5)を平均演算部32に指令し、バッファ6に対して所定の異常時セット操作を行う。
【0082】
この異常時対応によれば、可動アーム92は、第1実施形態で説明したように制動距離DS=25で停止する。したがって、可動アーム92が障害物に衝突する瞬間の速度は、第一および第二制約条件が許す範囲内で最小となり、衝突時のショックが最小に緩和される。
【0083】
第2実施形態の速度指令値演算装置1Aでは、第1実施形態と同様、可動アーム92は、異常状態発生時の緊急停止動作において通常時よりも小さな制動距離で停止することができ、障害の実際の発生が抑制される。加えて、離間距離DXの大小に合わせて異常時平均化母数NBを可変にかつ適正に設定することができるので、可動アーム92や制動装置97に大きな負担をかけない優しい緊急停止動作を実現することができる。
【0084】
7.実施形態の応用および変形
なお、第1実施形態で例示した演算周期TSの周期時間ts(=1ms)は、実機ではさらに小さく設定され、通常時平均化母数NN(=10個)は実機ではさらに大きく設定されて、精細な移動制御が行われる。また、第1実施形態において、指令値演算部3は、専用の演算素子を用いて構成されているが、速度指令値演算装置1を構成するコンピュータ装置のメモリおよびプログラムを用いて構成されてもよい。さらに、第2実施形態は、可動アーム92の移動可能範囲が物理的な境界で区画された構成に適用することができる。この構成において、異常検出部98は、可動アーム92の移動前方の物理的な境界を検出する。第1および第2実施形態は、その他にも様々な応用や変形が可能である。
【産業上の利用可能性】
【0085】
第1および第2実施形態の速度指令値演算装置(1、1A)は、作業ロボット9に限定されず、移動平均処理を用いて速度の指令値を演算する各種の機器に利用することが可能である。
【符号の説明】
【0086】
1、1A:速度指令値演算装置 2:原速度値演算部 3:指令値演算部 31:原速度値移動部 32:平均演算部 4:異常判定部 5:異常対応部 6:バッファ 9:作業ロボット 91:基部 92:可動アーム 93:エンドエフェクタ 94:駆動機構 95:駆動制御部 96:駆動装置 97:制動装置 A1~A10:第1~第10サンプルエリア L:移動距離 NN:通常時平均化母数 NA:異常時平均化母数 R:減少割合 V0:原速度値 Vmax:(速度の)最大値 CV:(速度の)指令値 TS:演算周期