JP2012223851A - ロボット制御装置、その制御方法及び制御プログラム - Google Patents

ロボット制御装置、その制御方法及び制御プログラム Download PDF

Info

Publication number
JP2012223851A
JP2012223851A JP2011092930A JP2011092930A JP2012223851A JP 2012223851 A JP2012223851 A JP 2012223851A JP 2011092930 A JP2011092930 A JP 2011092930A JP 2011092930 A JP2011092930 A JP 2011092930A JP 2012223851 A JP2012223851 A JP 2012223851A
Authority
JP
Japan
Prior art keywords
joint
joint angle
inertia
moment
robot
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011092930A
Other languages
English (en)
Other versions
JP5732993B2 (ja
Inventor
Gen Ando
玄 安藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2011092930A priority Critical patent/JP5732993B2/ja
Publication of JP2012223851A publication Critical patent/JP2012223851A/ja
Application granted granted Critical
Publication of JP5732993B2 publication Critical patent/JP5732993B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

【課題】ロボットのセンサに故障が生じた場合でも最適に制御を行うこと。
【解決手段】ロボット制御装置は、先端側の第1関節から第i関節(i≧2)までの関節角度を含む関数に基づいて、第i関節から先端部分までの第i関節周りの慣性モーメントを算出する慣性モーメント演算手段と、第i関節の関節角度を含む関数に基づいて、第i関節の回転軸が鉛直方向となるときの第i関節周りの慣性モーメント推定値を算出する慣性モーメント推定手段と、第i関節周りの慣性モーメントと第i関節周りの慣性モーメント推定値と、の差を第i関節周りの慣性モーメント誤差として算出する推定誤差演算手段と、第i関節周りの慣性モーメント誤差の絶対値と判定閾値とを比較して、関節角度検出手段の故障を判定する故障判定手段と、故障の判定結果と、ロボットの作業パターンと、に基づいて、関節角度指令を生成する関節角度指令生成手段と、を備える。
【選択図】図1

Description

本発明は、ロボットのセンサに故障が生じた場合でも最適に制御を行うことができるロボット制御装置、その制御方法及び制御プログラムに関するものである。
近年、複数のセンサを用いて車両や航空機などの自動制御を行い、センサなどに故障が生じてもその制御を継続できるように構成された自動制御システムの研究開発が行われている。例えば、フィードバック線形化及び状態推定器を用いて、航空機の故障した構成部材を識別し、故障した構成部材を使用することなく、動作を継続させる自動制御システムが知られている(特許文献1参照)。
特表平11−507454号公報
上記特許文献1に示す自動制御システムをロボットに適用した場合、例えば、ロボットに設けられたセンサに故障が生じ、正常なセンサが既知でない場合、フィードバック線形化及び状態推定の両方が実施不能となる虞がある。また、上記自動制御システムは、航空機を制御するため、多数のセンサを冗長的に備えている。したがって、ロボットにそのセンサ構成を適用すると、質量及びサイズが大きくなるという問題も生じる。
本発明は、このような問題点を解決するためになされたものであり、ロボットのセンサに故障が生じた場合でも最適に制御を行うことができるロボット制御装置、その制御方法及び制御プログラムを提供することを主たる目的とする。
上記目的を達成するための本発明の一態様は、複数のリンクと、該各リンクを回転可能に連結する複数の関節と、該各関節を駆動する複数の駆動手段と、前記各関節角度を検出する複数の関節角度検出手段と、を備えたロボット制御装置であって、前記各関節角度検出手段により検出された先端側の第1関節から第i関節(i≧2)までの関節角度を含む関数に基づいて、前記第i関節から先端部分までの第i関節周りの慣性モーメントを算出する慣性モーメント演算手段と、前記関節角度検出手段により検出された前記第i関節の関節角度を含む関数に基づいて、前記第i関節の回転軸が鉛直方向となるときの前記第i関節周りの慣性モーメント推定値を算出する慣性モーメント推定手段と、前記慣性モーメント演算手段により算出された前記第i関節周りの慣性モーメントと、前記慣性モーメント推定手段により算出された前記第i関節周りの慣性モーメント推定値と、の差を前記第i関節周りの慣性モーメント誤差として算出する推定誤差演算手段と、前記推定誤差演算手段により算出された前記第i関節周りの慣性モーメント誤差の絶対値と判定閾値とを比較して、前記関節角度検出手段の故障を判定する故障判定手段と、前記故障判定手段により判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記各関節に対する関節角度指令を生成する関節角度指令生成手段と、を備える、ことを特徴とするロボット制御装置である。この一態様によれば、ロボットのセンサに故障が生じた場合でも最適に制御を行うことができる。
この一態様において、前記故障判定手段は、前記推定誤差演算手段により算出された前記第i関節周りの慣性モーメント誤差の絶対値が判定閾値を超えるとき、前記複数の関節角度検出手段の関節角度のうちの一つ関節角度を0度に保持して、前記第i関節周りの慣性モーメント誤差の絶対値と判定閾値との比較を繰返し、前記関節角度検出手段の故障を判定してもよい。これにより、関節角度検出手段を冗長的に設けることなく、各関節の回転軸が鉛直方向を向いた瞬間に、各関節角度検出手段が故障しているか否かを瞬時に判定できる。
この一態様において、前記故障判定手段は、前記複数の関節角度のうちの一つ関節角度を0度に保持して、前記第i関節周りの慣性モーメント誤差の絶対値が判定閾値以下となるとき、前記関節角度を0度に保持した前記関節角度検出手段を故障、それ以外の前記関節角度検出手段を正常、と判定し、前記第i関節周りの慣性モーメント誤差の絶対値が判定閾値を超えるとき、前記関節角度を0度に保持した前記関節角度検出手段を不明、それ以外の前記関節角度検出手段を故障、と判定し、該故障と判定した関節角度検出手段に対応する関節角度を0度に保持し、前記第i関節周りの慣性モーメント誤差の絶対値と判定閾値との比較を繰り返してもよい。これにより、各関節角度検出手段が故障しているか否か不明の場合でも、その故障を瞬時に判定できる。
この一態様において、前記関節角度指令生成手段は、前記故障判定手段により判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記作業パターンが実施可能か否かを判断し、実施不能と判断した場合、前記作業パターンの作業を中止するための関節角度指令を生成し、実施可能と判断した場合、故障した関節角度検出手段が設置された関節以外に対する関節角度指令を生成してもよい。これにより、故障した関節角度検出手段が存在する場合でも、実施可否を適切に判断し、作業を継続できる。
この一態様において、前記故障判定手段からの判定結果に基づいて、故障した前記関節角度検出手段が無いと判断した場合、全関節における前記関節角度検出手段の関節角度が前記関節角度指令生成手段により生成された関節角度指令に追従するような前記駆動手段に対するトルク指令を生成し、前記故障判定手段からの故障判定結果に基づいて、故障した前記関節角度検出手段が存在すると判断した場合、故障していない前記関節角度検出手段の関節角度が前記関節角度指令生成手段により生成された関節角度指令に追従するように前記駆動手段に対するトルク指令を生成し、かつ、故障した前記関節角度検出手段が設けられた関節の駆動手段に対して前記作業内容毎に予め設定されたトルク指令を生成する、トルク指令生成手段を更に備えていてもよい。これにより、故障した関節角度検出手段が存在する場合でも、トルク指令を適切に生成できる。
この一態様において、ユーザの入力情報又は予め設定されたプログラムに基づいて、ロボットが作業を実施する作業パターンを生成する作業パターン生成手段と、前記作業パターン生成手段により生成された前記作業パターンを分類し、予め設定された前記分類に対応する値を作業分類パラメータに設定するパラメータ生成手段と、前記関節角度指令生成手段からの各関節角度指令と、前記パラメータ生成手段からの前記作業分類パラメータと、前記故障判定手段からの故障の判定結果と、に基づいて、前記駆動手段に対するトルク指令を生成するトルク指令生成手段と、を更に備えていてもよい。
この一態様において、前記トルク指令生成手段は、(a)前記故障判定手段からの判定結果に基づいて、前記関節角度検出器が故障していると判断し、前記パラメータ生成手段からの作業分類パラメータに第1所定値が設定されていると判断したとき、所定トルクを生じさせるトルク指令を生成し、(b)前記故障判定手段からの判定結果に基づいて、前記関節角度検出器が故障していると判断し、前記パラメータ生成手段からの作業分類パラメータに第2所定値が設定されていると判断したとき、トルク指令に0を設定し、(c)前記故障判定手段からの判定結果に基づいて、前記関節角度検出器が故障していない、或いは不明と判断したとき、前記作業パターン毎に予め設定されたトルク指令を生成してもよい。これにより、故障した関節角度検出手段を使用せずに安全に作業を継続した場合に、その作業の種類に応じて作業方法の変更、中止などを実施できる。
この一態様において、前記パラメータ生成手段は、前記作業パターン生成手段により生成された作業パターンに基づいて、ロボットが実施しようとしている作業がロボットハンドの指を伸ばすように外側に向かって反力を発生させると判断したとき、第1所定値を前記作業分類パラメータに設定し、ロボットが実施しようとしている作業がロボットハンドの指を外側に向かって反力を発生させないと判断したとき、第2所定値を前記作業分類パラメータに設定してもよい。
この一態様において、前記ロボットは、前記複数のリンクと、該各リンクを回転可能に連結する複数の関節と、を有する指機構と、前記各関節を駆動する複数のモータと、前記各関節角度を検出する複数の関節角度検出部と、を備えるロボットハンドであってもよい。
この一態様において、前記慣性モーメント演算手段は、前記関数として下記(21)式を用いて前記第i関節周りの慣性モーメントJを算出し、前記慣性モーメント推定手段は、前記関数として下記(27)式を用いて前記第i関節周りの慣性モーメント推定値J(ハット)を算出し、前記推定誤差演算手段は、下記(29)式を用いて前記第i関節周りの慣性モーメント誤差eJ,iを算出してもよい。
他方、上記目的を達成するための本発明の一態様は、複数のリンクと、該各リンクを回転可能に連結する複数の関節と、該各関節を駆動する複数の駆動手段と、前記各関節角度を検出する複数の関節角度検出手段と、を備えたロボット制御装置の制御方法であって、前記検出された先端側の第1関節から第i関節(i≧2)までの関節角度を含む関数に基づいて、前記第i関節から先端部分までの第i関節周りの慣性モーメントを算出するステップと、前記検出された前記第i関節の関節角度を含む関数に基づいて、前記第i関節の回転軸が鉛直方向となるときの前記第i関節周りの慣性モーメント推定値を算出するステップと、前記算出された第i関節周りの慣性モーメントと、前記算出された第i関節周りの慣性モーメント推定値と、の差を前記第i関節周りの慣性モーメント誤差として算出するステップと、前記算出された第i関節周りの慣性モーメント誤差の絶対値と判定閾値とを比較して、前記関節角度検出手段の故障を判定するステップと、前記判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記各関節に対する関節角度指令を生成するステップと、を含む、ことを特徴とするロボット制御装置の制御方法であってもよい。
また、上記目的を達成するための本発明の一態様は、複数のリンクと、該各リンクを回転可能に連結する複数の関節と、該各関節を駆動する複数の駆動手段と、前記各関節角度を検出する複数の関節角度検出手段と、を備えたロボット制御装置の制御プログラムであって、前記検出された先端側の第1関節から第i関節(i≧2)までの関節角度を含む関数に基づいて、前記第i関節から先端部分までの第i関節周りの慣性モーメントを算出する処理と、前記検出された前記第i関節の関節角度を含む関数に基づいて、前記第i関節の回転軸が鉛直方向となるときの前記第i関節周りの慣性モーメント推定値を算出する処理と、前記算出された第i関節周りの慣性モーメントと、前記算出された第i関節周りの慣性モーメント推定値と、の差を前記第i関節周りの慣性モーメント誤差として算出する処理と、前記算出された第i関節周りの慣性モーメント誤差の絶対値と判定閾値とを比較して、前記関節角度検出手段の故障を判定する処理と、前記判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記各関節に対する関節角度指令を生成する処理と、をコンピュータに実行させる、ことを特徴とするロボット制御装置の制御プログラムであってもよい。
本発明によれば、ロボットのセンサに故障が生じた場合でも最適に制御を行うことができるロボット制御装置、その制御方法及び制御プログラムを提供することができる。
本発明の実施の形態に係るロボット制御装置の概略的なシステム構成を示すブロック図である。 本発明の実施の形態に係るロボット制御装置の故障判定部によるi=2における関節角度検出器の故障を判定するための処理フローを示すフローチャートである。 第1関節角度検出器及び第2関節角度検出器のうちいずれが故障しているか否かが分かっている場合の関節角度検出器の故障を判定するための処理フローを示すフローチャートである。 (a)本発明の実施の形態に係るロボットハンドの指機構を示す摸式図である。(b)本発明の実施の形態に係るロボットハンドの指機構を示す摸式図である。 (a)本発明の実施の形態に係るロボット制御装置のシミュレーションにおける第2関節の関節角度の時間変化を示す図である。(b)従来のロボット制御装置のシミュレーションにおける第2関節の関節角度の時間変化を示す図である。 (a)本発明の実施の形態に係るロボット制御装置のシミュレーションにおける第1関節の関節角度の0.015[s]までの時間変化を示す図である。(b)本発明の実施の形態に係るロボット制御装置のシミュレーションにおける第1関節の関節角度の0.5[s]までの時間変化を示す図である。 (a)本発明の実施の形態に係るロボット制御装置のシミュレーションにおける第3関節の関節角度の0.015[s]までの時間変化を示す図である。(b)本発明の実施の形態に係るロボット制御装置のシミュレーションにおける第3関節の関節角度の0.5[s]までの時間変化を示す図である。 本発明の実施の形態に係るロボット制御装置のシミュレーションにおける第2関節周り慣性モーメント推定誤差の時間変化を示す図である。 故障した関節角度検出器が設けられている第2関節を制御するための第2関節のモータトルク指令Tの時間変化を示す図である。
以下、図面を参照して本発明の実施の形態について説明する。本発明の一実施の形態に係るロボット制御装置1は、例えば、図4に示すようなロボットハンド130の指機構131を制御するものである。
ロボットハンド130の指機構131は、図4(a)及び(b)に示す如く、第1リンク401と、第1リンク401に連結された第1関節402と、・・・・、第i−2関節403と、第i−2関節403に連結された第i−1リンク404と、第i−1リンク404に連結された第i−1関節405と、第i−1関節405に連結された第iリンク406と、第iリンク406に連結された第i関節407と、第i−3リンク408と、第i−3リンク408に連結された第i−3関節409と、第i−3関節409に連結された第i−2リンク410と、を有している。以下、指機構131の先端に一番近い第1関節から数えてi番目の関節を第i関節とし、同様に、指機構131の先端に一番近い第1リンクから数えてi番目のリンクを第iリンクとする。
第1関節402、・・・・、第i−2関節403、第i−1関節405、第i関節407、及び第i−3関節409には、駆動手段の一具体例であり、夫々、各関節を駆動するモータ132が夫々設けられており、各関節はこの各モータ132の発生するモータトルクにより回転駆動される。また、各関節には、関節角度検出手段の一具体例であり、各モータ132により駆動された各関節の回転角度を検出し、関節角度検出値として出力する関節角度検出器133が夫々設けられている。
ここで、iは正の整数であり、例えば、人差し指の指先から第3関節までをモデル化する場合はi=3となる。なお、図4(a)及び(b)において各記号を以下のように定義する。
m、n:第m関節と第n関節を結ぶ線分の長さ(以下、「第m第n関節間距離」と称す)
φm、n:第m関節において、第m+1リンクと第m関節と第n関節を結ぶ線分が成す角度(以下、「第m第n関節間線分第m+1リンク間角度」と称す)
θ:第m関節角度
まず、第m第n関節間距離am,nと、第m第n関節間線分第m+1リンク間角度φm、nを導出する。図4(a)において、下記(1)式及び(2)式が成立する。
Figure 2012223851

Figure 2012223851
ただし、上記(1)式及び(2)式において、lは第iリンク406の長さを表す。
上記(1)式を第i−2第i関節間距離ai−2、iについて解くと、下記(3)式を得ることができる。
Figure 2012223851
上記(2)式を第i−2第i関節間線分第i−1リンク間角度φi−2、iについて解くと、下記(4)式を得ることができる。
Figure 2012223851
図4(b)において、下記(5)式及び(6)式が成立する。
Figure 2012223851

Figure 2012223851
上記(5)式を第i−3第i関節間距離ai−3、iについて解くと、下記(7)式を得ることができる。
Figure 2012223851
上記(6)式を第i−3第i関節間線分第i−2リンク間角度φi−3、iについて解くと、下記(8)式を得ることができる。
Figure 2012223851
同様に、j=3、…、i−1に対して、下記(9)式及び(10)式が成立する。
Figure 2012223851

Figure 2012223851
上記(9)式を第i−j第i関節間距離ai−j、iについて解くと、下記(11)式を得ることができる。
Figure 2012223851
上記(10)式を第i−j第i関節間線分第i−j+1リンク間角度φi−j、iについて解くと、下記(12)式を得ることができる。
Figure 2012223851
第2リンクと第3リンクに対して下記(13)式及び(14)式が成立する。
Figure 2012223851

Figure 2012223851
上記(13)式を第1第i関節間距離a1、iについて解くと、下記(15)式を得ることができる。
Figure 2012223851
上記(14)式を第1第i関節間線分第2リンク間角度φ1、iについて解くと、下記(16)式を得ることができる。
Figure 2012223851
上記(3)式、(4)式、(7)式、(8)式、(11)式、(12)式、(15)式、及び(16)式において算出された第m第n関節間距離am,nと、第m第n関節間線分第m+1リンク間角度φm、nと、を用いて、第mリンクの重心と第n関節の間の距離(以下、「第mリンク重心第n関節間距離」と称す)bm、nを導出する。
図4(a)において第iリンク重心第i関節間距離bi、iの2乗は、下記(17)式として導出できる。
Figure 2012223851
図4(a)において、第i−1リンク重心第i関節間距離bi−1、iの2乗は、下記(18)式として導出できる。
Figure 2012223851
j=2、…、i−1に対して第i−jリンク重心第i関節間距離bi−j、iの2乗は、下記(19)式として導出できる。
Figure 2012223851
上記(17)式乃至(19)式に基づいて導出された第mリンク重心第n関節間距離の2乗を用いて、j=1、…、iに対する第jリンクの第i関節に関する慣性モーメントJj、iは、平行軸の定理より下記(20)式として導出できる。
Figure 2012223851
ただし、上記(20)式において、Jj0は、第jリンクの重心周り慣性モーメントを表している。第i関節から先端部分までの慣性モーメント(以下、「第i関節周り慣性モーメント」と称す)Jは、上記(20)式を用いて下記(21)式として表される。
Figure 2012223851
上記(21)式を用いて算出される第i関節周り慣性モーメントJは、第1関節402から第i関節407までのi個全ての関節角度検出値に基づいている。後述の故障判定部140の慣性モーメント演算器141は、第1関節402から第i関節407までの関節角度検出値を含む上記(21)式(関数)を用いて、第i関節周りの慣性モーメントJ(i=1、2、…)を演算する。
次に、第i関節角度検出値θのみに基づいて第i関節周り慣性モーメントJを推定する方法について説明する。第i関節407周りの運動方程式は、下記(22)式として求められる。
Figure 2012223851

ただし、上記(22)式において各記号は以下のように定義されている。
:第i関節モータトルク
:第i関節トルク外乱
:第i関節粘性摩擦
上記(22)式における第i関節角度θの1階時間微分値である第i関節角速度と、2階時間微分である第i関節角加速度とは、夫々、下記(23)式及び(24)式のように差分近似できる。
Figure 2012223851

Figure 2012223851
ただし、上記(23)式及び(24)式における各記号は、以下のように定義されている。
T:制御周期
k:各制御周期の値を示すインデックス(k番目の制御周期における値を表す)
上記(23)式及び(24)式を上記(22)式に代入すると、下記(25)式を得ることができる。
Figure 2012223851
上記(25)式を第i関節周り慣性モーメントJについて解くと、第i関節周り慣性モーメント推定値J(ハット)は下記(26)式として表される。
Figure 2012223851
ただし、第i関節粘性摩擦Dは設計により既知であるとする。また、第i関節トルクの外乱dは、各関節軸が鉛直方向を向く瞬間にはd=0となるため、各関節軸が鉛直方向を向く瞬間において、上記(26)式は下記(27)式と書き換えることができる。
Figure 2012223851
後述の故障判定部140の慣性モーメント推定器142は、第i関節角度検出器133からの第i関節角度検出値θを含む上記(27)式(関数)を用いて、第i関節周りの慣性モーメント推定値J(ハット)(i=1、2、…)を演算する。
また、上記(27)式と上記(21)式との差を、第i関節周り慣性モーメント推定誤差eJ、iとし、下記(28)式を用いて算出することができる。
Figure 2012223851
上記(28)式に、上記(17)式乃至(20)式を代入すると、下記(29)式を得ることができる。
Figure 2012223851
ここで、上述より明らかなように、上記(29)式の第1項は関節角度検出値θのみの関数であり、第2項以降は関節角度検出値θからθi−1にも依存する関数となっている。後述の故障判定部140の推定誤差演算器143は、上記(29)式を用いて、第i関節周りの慣性モーメント推定誤差eJ、i(i=1、2、…)を演算する。
本実施の形態に係るロボット制御装置1の故障判定部140は、例えば、上述したロボットハンド130の指機構131の各関節に設けられた各関節角度検出器133の故障を、この慣性モーメント推定誤差eJ、iを用いて判定することができる。
図2は、本発明の実施の形態に係るロボット制御装置の故障判定部によるi=2における関節角度検出器の故障を判定するための処理フローを示すフローチャートである。まず、ロボット制御装置1の故障判定部140は、i=2(第2関節までモデル化)において下記(30)式を満足するか否かを判定する(ステップS201)。
Figure 2012223851
ただし、上記(30)式において、δは関節角度検出器133の故障を判定するための故障判定閾値(判定閾値)であり、例えば、予め故障判定部140に設定されている。
故障判定部140は、上記(30)式を満足すると判断した場合(ステップS201のYES)、関節角度検出値θ及びθは正常(第1関節角度検出器133と第2関節角度検出器133が故障していない)と判断し(ステップS202)、図3の(ステップS301)の処理に移行する。
一方、故障判定部140は、上記(30)式を満足しないと判断した場合(ステップS201のNO)、関節角度検出値θ及びθのうち少なくとも一方が異常と判断し(ステップS203)、例えば、第1関節のモータ132に負のトルクを発生させ、関節角度検出値θ=0に保持し、関節角度検出値θ=0の状態で上記(30)式を満足するか否かを判定する(ステップS204)。
故障判定部140は、上記(30)式を満足すると判断した場合(ステップS204のYES)、関節角度検出値θが異常(第1関節角度検出器133は故障している)、関節角度検出値θが正常(第2関節角度検出器133は故障していない)と判断し(ステップS205)、図3の(ステップS301)処理に移行する。
故障判定部140は、上記(30)式を満足しないと判断した場合(ステップS204のNO)、関節角度検出値θが正常か否か(第1関節角度検出器133が故障しているか否か)が不明であり、関節角度検出値θが異常(第2関節角度検出器133が故障している)と判断し(ステップS206)、第2関節のモータ132に負のトルクを発生させ、関節角度検出値θ=0に保持し、関節角度検出値θ=0の状態で上記(30)式を満足するか否かを判定する(ステップS207)。
故障判定部140は、上記(30)式を満足すると判断した場合(ステップS207のYES)、関節角度検出値θが正常(第1関節角度検出器133は故障していない)、関節角度検出値θが異常(第2関節角度検出器133は故障している)と判断し(ステップS208)、図3の(ステップS301)の処理に移行する。
故障判定部140は、上記(30)式を満足しないと判断した場合(ステップS207のNO)、関節角度検出値θ及びθが異常(第1関節角度検出器133及び第2関節角度検出器133が故障している)と判断し(ステップS209)、図3の(ステップS301)の処理に移行する。
図3は、第1関節角度検出器及び第2関節角度検出器のうちいずれが故障しているか否かが分かっている場合の関節角度検出器の故障を判定するための処理フローを示すフローチャートである。
故障判定部140は、i=j、j≧3において、異常と判断した関節角度検出値を上記(ステップS204)と同様に、その関節角度検出値を0に保持し、上記(30)式を満足するか否かを判定する(ステップS301)。
故障判定部140は、上記(30)式を満足すると判断した場合(ステップS301のYES)、関節角度検出値θは正常(第j関節角度検出器133は故障していない)と判断し(ステップS302)、上記(ステップS301)の処理に戻る。
一方、故障判定部140は、上記(30)式を満足しないと判断した場合(ステップS301のNO)、関節角度検出値θは異常(第j関節角度検出器133が故障している)と判断し(ステップS303)、上記(ステップS301)の処理に戻る。
このようにして、動作に必要最小限のセンサのみを搭載した人と共生できる質量及びサイズのロボットにおいても、故障した関節角度検出器133を容易に特定することができる。
故障判定部140が、上述した図2及び図3に示す処理フローを用いて、全ての関節角度検出器133の故障判定を行い完了すると、安全制御部120は、その判定結果とロボットハンド130が実施しようとしている作業の種類に応じて、下記(31)式に示す第j関節のモータトルクTを生成する。
Figure 2012223851

Figure 2012223851
ただし、上記(31)式において、Tjrは、第j関節角度検出器133が故障していない場合に、第j関節のモータ132が生成するモータトルクの目標値(以下、「第j関節モータトルク指令」と称す)である。また、sは、ロボットハンド130が実施しようとしている作業の種類を分類するためのパラメータ(以下、「作業分類パラメータ」と称す)であり、例えば、上記(32)式のように設定されている。
作業分類パラメータsが1(第1所定値)に設定されている場合、指機構131は外側に向かって反力を発生させ、一方、作業分類パラメータsが0(第2所定値)に設定されている場合、指機構131は外側に向かって反力を発生させない。
上記(31)式における3つのモータトルク指令Tは、例えば、以下のように定義できる。
(a)T<0:第j関節角度検出器133が故障しており、かつロボットハンド130が実施しようとしている作業において、指機構131が外側(指が伸びる方向)に向かって反力を発生する必要がある場合(s=1)。
この場合、第j関節モータトルク指令Tを負トルク(所定トルク)に設定することにより、第j関節が伸びた状態になり、指機構131が物体に接触した時に物体に対して反力を与えることができるようになる。
(b)T=0:第j関節角度検出器133が故障しており、かつロボットハンド130が実施しようとしている作業において、指機構131が外側に向かって反力を発生する必要がない場合(s=0)。
この場合、第j関節モータトルク指令Tを0に設定することにより、第j関節は指機構131が物体により内側に押された場合は正の方向に(曲がる方向に)回転し、指機構131が物体から外側に押された場合は指機構131が伸びた状態になるまで負の方向に(伸びる方向に)回転する。いずれの場合も、第j関節の可動範囲の端に到達したら物体からの力が同じ方向に加わる限りその角度のまま保持される。
(c)T=Tjr:第j関節角度検出器133が故障していない、又は故障しているか否か分からない場合。
この場合、ロボットハンド130の実施しようとしている作業に必要な第j関節モータトルク指令T(作業パターン毎に予め設定された安全なモータトルク指令)を生成し、この第j関節モータトルク指令Tに従って第j関節を駆動する。
本実施の形態において、上記(31)式により第j関節モータトルクTを生成することにより、第j関節角度検出器133が故障している場合でも、第j関節のモータ132の暴走を回避し、かつロボットハンド130が実施しようとしている作業を安全に継続できる。以下上記(31)式に示すTを「安全関節モータトルク指令」と称す。
図1は、本発明の実施の形態に係るロボット制御装置の概略的なシステム構成を示すブロック図である。本実施の形態に係るロボット制御装置1は、関節角度指令生成部110と、安全制御部120と、ロボットハンド130と、故障判定部140と、を備えている。
関節角度指令生成部110は、故障判定部140より出力された各関節角度検出器133の故障判定結果に基づいて、各関節を駆動するための関節角度指令を生成し、生成した各関節角度指令を安全制御部120に対して出力する。
関節角度指令生成部110は、作業パターン生成器111と、関節角度指令生成器112と、を有している。
作業パターン生成器111は、作業パターン生成手段の一具体例であり、例えば、ロボットハンド130のユーザによる入力情報、又は、当該ロボット制御装置1などに予め設定されたプログラムに従って、ロボットハンド130が次に実施する作業に必要な作業パターン(動作データ)を生成し、関節角度指令生成器112及び安全制御部120に対して出力する。
関節角度指令生成器112は、関節角度指令生成手段の一具体例であり、故障判定部140からの各関節角度検出器133の故障判定結果に基づいて、故障した関節角度検出器133が無いと判断した場合、作業パターン生成器111からの作業パターンに基づいて、その作業パターンが表す動作を実施するのに必要な関節角度指令を生成し、安全制御部120に対して出力する。
関節角度指令生成器112は、故障判定部140からの各関節角度検出器133の故障判定結果に基づいて、故障した関節角度検出器133が存在すると判断した場合、故障している関節角度検出器133の位置と、ロボットハンド130が実施しようとしている作業パターンと、に基づいて、その作業パターンが実施可能か否かを判定する。
関節角度指令生成器112は、その作業内容が実施不能と判定した場合、作業パターンの作業を中止するために必要な関節角度指令を生成し、安全制御部120に対して出力する。ここで、上記作業内容を中止するために必要な関節角度指令とは、例えば、故障していない関節角度検出器133のみを使ってロボットハンド130が安全な姿勢をとることができる関節角度指令である。
一方、関節角度指令生成部110は、その作業パターンが実施可能と判定した場合、故障した関節角度検出器133が配置された関節以外の関節に対する各関節角度指令を生成し、安全制御部120に対して出力する。
安全制御部120は、関節角度指令生成部110から関節角度指令と、故障判定部140からの各関節角度検出器133の故障判定結果と、ロボットハンド130の各関節角度検出器133からの関節角度検出値と、に基づいて、ロボットハンド130の各関節のモータ132を安全に駆動させるための安全関節モータトルク指令を生成し、ロボットハンド130のモータ132に対して出力する。ここで、安全関節モータトルク指令とは、例えば、ロボットハンド130の指機構131の全関節における各関節角度検出値が各関節角度指令に追従するような各関節のモータトルク指令である。
安全制御部120は、パラメータ生成器121と、モータトルク指令生成器122と、を有している。
パラメータ生成器121は、パラメータ生成手段の一具体例であり、関節角度指令生成部110の作業パターン生成器111からの作業パターンに基づいて、ロボットハンド130が実施しようとしている作業を各関節に求められる動作に分類して、作業分類パラメータs(j=1、2、…)を設定し、設定した作業パラメータsをモータトルク指令生成器122に対して出力する。
モータトルク指令生成器122は、トルク指令生成手段の一具体例であり、関節角度指令生成部110からの各関節角度指令と、パラメータ生成器121からの作業分類パラメータsと、故障判定部140からの各関節角度検出器133の故障判定結果と、に基づいて、上記(31)式で表される安全関節モータトルク指令T(j=1、2、…)を生成し、ロボットハンド130の各モータ132に対して出力する。
例えば、モータトルク指令生成器122は、故障判定部140からの各関節角度検出器133の故障判定結果に基づいて、故障した関節角度検出器133が無いと判断した場合、ロボットハンド130の指機構131の全関節における関節角度検出器133の関節角度検出値が関節角度指令生成器112により生成された各関節角度指令に追従するような安全関節モータトルク指令Tを生成し、ロボットハンド130の各モータ132に対して出力する。
一方、モータトルク指令生成器122は、故障判定部140からの各関節角度検出器133の故障判定結果に基づいて、故障した関節角度検出器133が存在すると判断した場合、故障していない関節角度検出器133の関節角度検出値が関節角度指令生成器112により生成された関節角度指令に追従し、かつ故障した関節角度検出器133を備える関節のモータ132に対するモータトルクが作業パターン毎に設定された安全なモータトルクとなるような安全関節モータトルク指令Tを生成し、ロボットハンド130の各モータ132に対して出力する。ここで、モータトルク指令生成器122は、安全関節モータトルク指令Tをモータ電流に変換してロボットハンド130の各関節のモータ132に対して出力する。
ロボットハンド130は、指機構131と、安全制御部120のモータトルク指令生成器122からの安全関節モータトルク指令Tに基づいて各関節を駆動する複数のモータ132と、各モータ132により駆動された各関節の回転角度を検出し、関節角度検出値として出力する複数の関節角度検出器133と、を有している。指機構131は、複数のリンクと、隣合うリンクを回転可能に連結する複数の関節と、から構成される機構である。
故障判定部140は、ロボットハンド130の各関節角度検出器133からの関節角度検出値に基づいて、ロボットハンド130が物体に接触していない状態で、各関節の回転軸が鉛直方向を向いた瞬間に、故障した関節角度検出器133の有無およびその位置を判定し、その各関節角度検出器133の故障判定結果を、関節角度指令生成部110及び安全制御部120に対して出力する。
故障判定部140は、慣性モーメント演算器141と、慣性モーメント推定器142と、慣性モーメント推定誤差演算器143と、故障判定器144と、を有している。
慣性モーメント演算器141は、慣性モーメント演算手段の一具体例であり、各関節角度検出器133からの第1乃至第i関節角度検出値と、上記(21)式と、に基づいて、第i関節周りの慣性モーメントJ(i=1、2、…)を演算し、推定誤差演算器143に対して出力する。
慣性モーメント推定器142は、慣性モーメント推定手段の一具体例であり、各関節角度検出器133からの第i関節角度検出値と、上記(27)式と、に基づいて、第i関節の回転軸が鉛直方向となるときの第i関節周りの慣性モーメント推定値J(ハット)(i=1、2、…)を演算し、慣性モーメント推定誤差演算器143に対して出力する。
慣性モーメント推定誤差演算器143は、推定誤差演算手段の一具体例であり、慣性モーメント演算器141からの慣性モーメントJと、慣性モーメント推定器142からの慣性モーメント推定値J(ハット)と、の差を、上記(29)式を用いて、第i関節周りの慣性モーメント推定誤差eJ、i(i=1、2、…)として演算し、故障判定器144に対して出力する。
故障判定器144は、故障判定手段の一具体例であり、慣性モーメント推定誤差演算器143からの慣性モーメント推定誤差eJ、iと、上記(30)式と、に基づいて、図2及び図3に示す処理フローに従って各関節角度検出器133が故障しているか否かを判定し、その各関節角度検出器133の故障判定結果を関節角度指令生成部110及び安全制御部120に対して出力する。
故障判定部140は、上述の各関節角度検出器133の判定演算を、ロボットハンド130の作業と作業の間、物体に接触する前に各関節の回転軸が鉛直方向を向いた瞬間に実施する。
このように、本実施の形態によれば、関節角度検出器133を冗長的に設けることなく、ロボットハンド130の作業と作業の間、物体に接触していない状態で各関節の回転軸が鉛直方向を向いた瞬間に、各関節角度検出器133が故障しているか否かを瞬時に判定できる。また、その判定結果に基づいて、故障した関節角度検出器133を使用することなく、ロボットハンド130に安全に次の作業を実施させるか、或いは中止させることができる。
次に、本実施の形態に係るロボット制御装置1を用いて、シミュレーションを行った結果について説明する。なお、本シミュレーションは、3つの関節と3つのリンクから構成されるロボットハンド130の人差し指において、第2関節角度検出器133のみが故障している場合に、人差し指と親指を使って複数のはがきを輪ゴムで止める作業を模擬している。また、シミュレーションに用いた数値は以下のように設定されている。
=20×10−3[m]、l=20×10−3[m]、l=20×10−3[m]、l10=10×10−3[m]、l20=10×10−3[m]、l30=10×10−3[m]、m=30×10−3[kg]、m=30×10−3[kg]、m=30×10−3[kg]、J10=1.42×10−6[kg・m]、J20=1.42×10−6[kg・m]、J30=1.42×10−6[kg・m]、D=1×10−4[N・m・s/rad]、D=1×10−4[N・m・s/rad]、D=1×10−4[N・m・s/rad]、θ1min=0[rad]、θ1max=π[rad]、θ2min=0[rad]、θ2max=π[rad]、θ3min=0[rad]、θ3max=π[rad]、cv2=−1×10−1[rad/s]、T=1×10−3[s]、Kp1=40[s−1]、Kv1=40×2×π[s−1]、Kvj1=Kv1×(J10+m×l10 )[N・m・s−1]、Kp2=40[s−1]、Kv2=40×2×π[s−1]Kvj2=Kv2×(J20+m×l20 )[N・m・s]、Kp3=40[s−1]、Kv3=40×2×π[s−1]、Kvj3=Kv3×(J30+m×l30 )[N・m・s−1]、T1c=−1×10−1[N・m]、T2c=−1×10−1[N・m]、T3c=−1×10−1[N・m]、θ1f=1×10−1[rad]、θ2f=1×10−1[rad]、θ3f=1×10−1[rad]、v1c=5×10−1[rad/s]、v2c=5×10−1[rad/s]、v3c=5×10−1[rad/s]、δ=5×10−3[kg・m]、
g=9.8[m/s−2
ただし、上記各記号は、以下のように定義されている。
i0:第iリンク重心と第i関節の間の距離(以下、「第iリンク重心第i関節間距離」と称す)
θimin:第i関節角度下限値、
θimax:第i関節角度上限値、
v2:第2関節速度検出値ドリフト量、
pi:第i関節角度比例制御ゲイン、
vi:正規化第i関節速度比例制御ゲイン、
vji:第i関節速度比例制御ゲイン、
ic:第i関節角度を第i関節角度下限値に保持するための第i関節のモータトルク(以下、「第i関節角度下限値保持モータトルク」と称す)
θif:第i関節角度検出器133が故障していない場合の第i関節角度最終目標値(以下、「第i関節角度最終目標値」と称す)
ic:第i関節角度検出器133が故障していない場合の各制御周期における第i関節速度指令変化量(以下、「第i関節速度指令変化量」と称す)
g:重力加速度
ロボットハンド130の指機構131の人差し指の運動方程式は、下記(33)式乃至(35)式として導出できる。
Figure 2012223851

Figure 2012223851

Figure 2012223851
ここで、上記(33)乃至(35)で表される指機構131の人差し指を、輪ゴムに通すために、各関節の回転軸は鉛直方向を向いている状態で各関節を少し曲げる動作を想定する。輪ゴムを広げる際に、人差し指の各リンクは外向きの反力を輪ゴムに発生させる必要があるため、作業分類パラメータは、s=1、s=1、s=1となる。
初期状態において、人差し指は伸びている状態(θ=0、θ=0、θ=0)であるとする。まず、第1関節角度検出器133乃至第3関節角度検出器133が故障しているか否か不明である。このため、上記(36)式乃至(38)式で表される第1関節のモータトルク指令T1r、第2関節のモータトルク指令T2r、及び第3関節のモータトルク指令T3rにより各関節角度を制御する。
Figure 2012223851

Figure 2012223851

Figure 2012223851
上記(36)式乃至(38)式において、関節角度指令生成器112は、第1関節角度指令θ1r、第2関節角度指令θ2r、及び第3関節角度指令θ3rを、下記(39)式乃至(41)式の1階時間積分として演算する。
Figure 2012223851

Figure 2012223851

Figure 2012223851
ただし、上記(39)式乃至(41)式において、cθiは、故障した第i関節角度検出器133の故障判定結果(1:故障しているか否か不明、0:故障していない、−1:故障している)とする。
上記(39)式乃至(41)式により、第i関節角度検出値θが第i関節角度最終目標値θifに到達するまで、第i関節角度指令θirは、制御周期ごとに第i関節速度指令変化量vicずつその1階時間微分値を増加させ、第i関節角度最終目標値θifに到達した時点でその値を保持する。
以下、上述のように制御した人差し指の各関節角度検出器133の故障判定を、図5乃至図8を用いて説明する。
図5(a)は、本実施の形態に係るロボット制御装置のシミュレーションにおける第2関節の関節角度の時間変化を示しており、図5(b)は、従来のロボット制御装置のシミュレーションにおける第2関節の関節角度の時間変化を示している。図5(a)及び(b)において、実線は実際の第2関節角度θ、一点鎖線は第2関節角度検出値θ2m、破線は第2関節角度指令θ2rを示している。
図5(a)において、時間0.003[s]まで図2の(ステップS201)から(ステップS203)の演算が実施され、実際の第2関節角度θ及びθのうち少なくとも一方が異常であることのみが分かっている。この間、故障している関節角度検出器133が特定できていないため、上記(40)式の1番目の式に従って破線の第2関節角度指令θ2rは増加している。ここで、第2関節角度指令θ2rが階段状に変化するのは、第2関節角度指令θ2rが制御周期T=1×10−3[s]の離散時間に従って生成されるためである。本実施の形態において第2関節角度検出器133は故障しており、下記(42)式で表される誤った第2関節速度検出値θ2mの1回時間積分値を出力するものとする。
Figure 2012223851
上記(42)式で表される誤った第2関節角度検出値θ2mは破線が示すように変化する。すなわち、0.003[s]までは第2関節角度検出値θ2mを第2関節角度指令θ2rに収束させようとして実際の第2関節角度θを制御し、その結果、実際の第2関節角度θは実線のように増加する。
図5(a)の0.003[s]において、図2の(ステップS204)から(ステップS206)の演算が実施され、第2関節角度検出器133の故障が検出され、(ステップS207)において上記(31)式の1番目の式に基づいて安全関節モータトルクが出力され、実際の第2関節角度θ=0[rad]に保持される。実際、0.003[s]以降において、実際の第2関節角度θは0[rad]に保持されており、第2関節が伸びた状態で保持されていることが分かる。この間、第2関節角度検出器133は故障したままであるため、誤った第2関節角度検出値θ2mを出力し続けている。
一方で、従来のロボット制御装置においては、図5(b)に示す如く、実線で示す実際の第2関節角度θは発散しており、人差し指の第2関節が完全に折れるまで曲がり続けることが分かる。
図6(a)は、本実施の形態に係るロボット制御装置のシミュレーションにおける第1関節の関節角度の0.015[s]までの時間変化を示しており、図6(b)は、本実施の形態に係るロボット制御装置のシミュレーションにおける第1関節の関節角度の0.5[s]までの時間変化を示している。図6(a)及び(b)において、実線は実際の第1関節角度θ、破線は第1関節角度指令θ1rを示している。
図6(a)の0.006[s]において、図2の(ステップS207)の演算が完了し、その後、(ステップS208)の演算が行われ、第1関節角度検出器133が故障していないと判定される。よって、0.006[s]以降も関節角度指令生成器112は、上記(39)式の2番目の式に従って、図6(a)の破線で示す第1関節角度指令θ1rを出力しており、実際の第1関節角度θも第1関節角度指令θ1rに追従するように増加している。
図6(b)に示すように、破線で示す第1関節角度指令θ1rは0.2[s]において第1関節角度最終目標値θ1f=0.1[rad]に到達し、それ以降はθ1r=θ1fに保持されている。また、実線で示す実際の第1関節角度θは、上記(31)式の3番目の式および上記(36)式に基づいてモータトルク指令生成器122が出力する安全関節モータトルク指令により制御され、第1関節角度最終目標値θ1fに漸近的に収束している。なお、図6(a)及び(b)において、第1関節角度検出値は実際の第1関節角度に一致している。
図7(a)は、本実施の形態に係るロボット制御装置のシミュレーションにおける第3関節の関節角度の0.015[s]までの時間変化を示しており、図7(b)は、本実施の形態に係るロボット制御装置のシミュレーションにおける第3関節の関節角度の0.5[s]までの時間変化を示している。図7(a)及び(b)において、実線は実際の第3関節角度θ、破線は第3関節角度指令θ3rを示している。
図7(a)において、0.009[s]までは図2の(ステップS201)乃至(ステップS208)、及び図3の(ステップS301)(j=3とした場合)が実施される。その結果、0.009[s]で(ステップS302)において、故障判定器144は、第3関節角度検出器133が故障していないと判定する。したがって、0.009[s]以降も、関節角度指令生成器112は、上記(41)式の2番目の式に基づいて、図7(a)の破線で示す第3関節角度指令θ3rを、モータトルク指令生成器122に対して出力する。これにより、実線で示す実際の第3関節角度θも第3関節角度指令θ3rに追従するように増加している。
図7(b)に示すように、破線で示す第3関節角度指令θ3rは、0.2[s]において第3関節角度最終目標値θ3f=0.1[rad]に到達し、それ以降は第3関節角度指令θ3r=第3関節角度最終目標値θ3fに保持されている。また、実線で示す実際の第3関節角度θは、上記(31)式の3番目の式、及び上記(38)式に基づいてモータトルク指令生成器122が出力する安全関節モータトルク指令により制御され、第3関節角度最終目標値θ3fに漸近的に収束している。
図8は、本実施の形態に係るロボット制御装置のシミュレーションにおける第2関節周り慣性モーメント推定誤差の時間変化を示している。実線は、推定誤差演算器143により上記(29)式に基づいて算出された第2関節周りの慣性モーメント推定誤差eJ、2を示している。慣性モーメント推定誤差eJ、2の絶対値は、0[s]において実際の第2関節角度θ=0であるため、0[kg・m]から増加し、0.003[s]において関節角度検出器133の故障判定閾値δ=5×10−3[kg・m]を超える。このため、上述のように故障判定器144、図2の(ステップS206)の処理において、第2関節角度検出器133が故障していると判定する。
次に、故障判定器144は、(ステップS207)の処理に移行し、このとき、図8に示す如く、慣性モーメント推定誤差eJ、2は減少している。そして、0.006[s]において、故障判定器144は、上記(30)式を満足したと判断するため(ステップS207のYES)、(ステップS208)の処理に移行し、第1関節角度検出器133が故障していないと判定する。
図9は、故障した関節角度検出器が設けられている第2関節を制御するための第2関節のモータトルク指令Tの時間変化を示す図である。
図9に示す如く、0.003[s]までの間、故障判定器144は、図2の(ステップS204)の処理まで実施し、第1関節角度検出器133または第2関節角度検出器133の少なくとも1つが故障していることだけが判明している。このため、モータトルク指令生成器122は、上記(31)式の3番目の式に基づいて、第2関節モータトルク指令T=T2rを第2関節のモータ132に対して出力している。
また、0.003[s]以降において、故障判定器144は図2の(ステップS207)の処理を実行し、モータトルク指令生成器122は実際の第2関節角度θ=0に保持するように、上記(31)式の1番目の式で表される安全関節モータトルク指令T=T2cを第2関節のモータ132に対して出力している。
以上、本実施の形態に係るロボット制御装置1によれば、関節角度検出器133の冗長設計に頼ることなく、例えば、ロボットハンド130の作業間、物体に接触していない状態で各関節の回転軸が鉛直方向を向いた時に、各関節角度検出器133が故障しているか否かを瞬時に判定でき、その判定結果に基づいて故障した関節角度検出器133を使用することなく、ロボットハンド130に安全に次の作業を実施させ、或いは、作業を中止させることができる。すなわち、ロボットハンド130のセンサに故障が生じた場合でも最適に制御を行うことができる。
また、特許文献1に示す従来技術においては、どの関節角度検出器が故障していないか不明な場合、一般的に、オブザーバーが使用する正しい関節角度検出値を出力し、可観測となるのに十分な関節角度検出器が特定できない。そのため故障した関節角度検出器を特定することができない。一方で、本実施の形態に係るロボット制御装置1によれば、故障している関節角度検出器133の位置や数によらず短時間かつ確実に故障した関節角度検出器133を特定できるメリットを有している。
さらに、上述の理由から、特許文献1に示す従来技術によると、例えば図5(a)に示すように、故障したロボットハンドの指機構の関節が制御不能となり、次の作業を実施できなくなり、また、実施する作業の種類によっては周囲の物体や人に対して十分に安全でない可能性もある。これに対し、本実施の形態に係るロボット制御装置1によれば、図5(b)に示すように、故障した関節角度検出器133の影響を受けないように制御を行うため、作業を継続することが可能となり、また実施する作業の種類によっては安全に作業を中止することもできる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、上記実施の形態において、上記(39)式乃至(41)式における第i関節速度指令変化量vicを一定値としているが、これに限らず、第i関節角度が第i関節角度指令に収束するような任意の可変量を適用することも可能である。
上記実施の形態において、上記(36)式乃至(38)式における第i関節モータトルク指令をフィードバック線形化制御によって算出しているが、これに限らず、その他の任意の制御則にしたがって算出してもよい。
さらに、上記実施の形態において、ロボットハンド130の指機構131は3つのリンクと3つの関節を有する構成であるが、これに限らず、任意の構成が適用可能である。
上記実施の形態において、輪ゴムを複数のはがきに掛ける作業の例を示したが、これに限らず、ロボットハンド130を使った任意の作業に適用可能である。
上記実施の形態において、関節角度指令生成部110、安全制御部120、及び、故障判定部140は、マイコンに実装したソフトウエアとして実現することができるが、ASICなどハードウェアとして実現してもよい。本発明は、例えば、CPUにコンピュータプログラムを実行させることにより実現できる。
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。
また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
本発明は、各関節に設けられた関節角度検出器133の故障を考慮して、ロボットを安全かつ最適に制御できるため、例えば、小型軽量低価格でありかつ周囲の人や物に対して安全であることが要求される、家事手伝いロボット、介護ロボット、楽器演奏ロボット、事務手伝いロボットなど、ロボットハンドを備え、人と共生するサービスロボット全般に適用できる。
110 関節角度指令生成部
111 作業パターン生成器
112 関節角度指令生成器
120 安全制御部
121 パラメータ生成器
122 モータトルク指令生成器
130 ロボットハンド
131 指機構
132 モータ
133 関節角度検出器
140 故障判定部
141 慣性モーメント演算器
142 慣性モーメント推定器
143 慣性モーメント推定誤差演算器
144 故障判定器
401 第1リンク
402 第1関節
403 第i−2関節
404 第i−1リンク
405 第i−1関節
406 第iリンク
407 第i関節
408 第i−3リンク
409 第i−3関節
410 第i−2リンク

Claims (12)

  1. 複数のリンクと、該各リンクを回転可能に連結する複数の関節と、該各関節を駆動する複数の駆動手段と、前記各関節角度を検出する複数の関節角度検出手段と、を備えたロボット制御装置であって、
    前記各関節角度検出手段により検出された先端側の第1関節から第i関節(i≧2)までの関節角度を含む関数に基づいて、前記第i関節から先端部分までの第i関節周りの慣性モーメントを算出する慣性モーメント演算手段と、
    前記関節角度検出手段により検出された前記第i関節の関節角度を含む関数に基づいて、前記第i関節の回転軸が鉛直方向となるときの前記第i関節周りの慣性モーメント推定値を算出する慣性モーメント推定手段と、
    前記慣性モーメント演算手段により算出された前記第i関節周りの慣性モーメントと、前記慣性モーメント推定手段により算出された前記第i関節周りの慣性モーメント推定値と、の差を前記第i関節周りの慣性モーメント誤差として算出する推定誤差演算手段と、
    前記推定誤差演算手段により算出された前記第i関節周りの慣性モーメント誤差の絶対値と判定閾値とを比較して、前記関節角度検出手段の故障を判定する故障判定手段と、
    前記故障判定手段により判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記各関節に対する関節角度指令を生成する関節角度指令生成手段と、
    を備える、ことを特徴とするロボット制御装置。
  2. 請求項1記載のロボット制御装置であって、
    前記故障判定手段は、前記推定誤差演算手段により算出された前記第i関節周りの慣性モーメント誤差の絶対値が判定閾値を超えるとき、前記複数の関節角度検出手段の関節角度のうちの一つ関節角度を0度に保持して、前記第i関節周りの慣性モーメント誤差の絶対値と判定閾値との比較を繰返し、前記関節角度検出手段の故障を判定する、ことを特徴とするロボット制御装置。
  3. 請求項2記載のロボット制御装置であって、
    前記故障判定手段は、前記複数の関節角度のうちの一つ関節角度を0度に保持して、
    前記第i関節周りの慣性モーメント誤差の絶対値が判定閾値以下となるとき、前記関節角度を0度に保持した前記関節角度検出手段を故障、それ以外の前記関節角度検出手段を正常、と判定し、
    前記第i関節周りの慣性モーメント誤差の絶対値が判定閾値を超えるとき、前記関節角度を0度に保持した前記関節角度検出手段を不明、それ以外の前記関節角度検出手段を故障、と判定し、該故障と判定した関節角度検出手段に対応する関節角度を0度に保持し、前記第i関節周りの慣性モーメント誤差の絶対値と判定閾値との比較を繰り返す、ことを特徴とするロボット制御装置。
  4. 請求項1乃至3のうちいずれか1項記載のロボット制御装置であって、
    前記関節角度指令生成手段は、前記故障判定手段により判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記作業パターンが実施可能か否かを判断し、
    実施不能と判断した場合、前記作業パターンの作業を中止するための関節角度指令を生成し、
    実施可能と判断した場合、故障した関節角度検出手段が設置された関節以外に対する関節角度指令を生成する、ことを特徴とするロボット制御装置。
  5. 請求項1乃至4のうちいずれか1項記載のロボット制御装置であって、
    前記故障判定手段からの判定結果に基づいて、故障した前記関節角度検出手段が無いと判断した場合、全関節における前記関節角度検出手段の関節角度が前記関節角度指令生成手段により生成された関節角度指令に追従するような前記駆動手段に対するトルク指令を生成し、
    前記故障判定手段からの故障判定結果に基づいて、故障した前記関節角度検出手段が存在すると判断した場合、故障していない前記関節角度検出手段の関節角度が前記関節角度指令生成手段により生成された関節角度指令に追従するように前記駆動手段に対するトルク指令を生成し、かつ、故障した前記関節角度検出手段が設けられた関節の駆動手段に対して前記作業内容毎に予め設定されたトルク指令を生成する、
    トルク指令生成手段を更に備える、ことを特徴とするロボット制御装置。
  6. 請求項1乃至4のうちいずれか1項記載のロボット制御装置であって、
    ユーザの入力情報又は予め設定されたプログラムに基づいて、ロボットが作業を実施する作業パターンを生成する作業パターン生成手段と、
    前記作業パターン生成手段により生成された前記作業パターンを分類し、予め設定された前記分類に対応する値を作業分類パラメータに設定するパラメータ生成手段と、
    前記関節角度指令生成手段からの各関節角度指令と、前記パラメータ生成手段からの前記作業分類パラメータと、前記故障判定手段からの故障の判定結果と、に基づいて、前記駆動手段に対するトルク指令を生成するトルク指令生成手段と、
    を更に備える、ことを特徴とするロボット制御装置。
  7. 請求項6記載のロボット制御装置であって、
    前記トルク指令生成手段は、
    (a)前記故障判定手段からの判定結果に基づいて、前記関節角度検出器が故障していると判断し、前記パラメータ生成手段からの作業分類パラメータに第1所定値が設定されていると判断したとき、所定トルクを生じさせるトルク指令を生成し、
    (b)前記故障判定手段からの判定結果に基づいて、前記関節角度検出器が故障していると判断し、前記パラメータ生成手段からの作業分類パラメータに第2所定値が設定されていると判断したとき、トルク指令に0を設定し、
    (c)前記故障判定手段からの判定結果に基づいて、前記関節角度検出器が故障していない、或いは不明と判断したとき、前記作業パターン毎に予め設定されたトルク指令を生成する、ことを特徴とするロボット制御装置。
  8. 請求項6又は7記載のロボット制御装置であって、
    前記パラメータ生成手段は、前記作業パターン生成手段により生成された作業パターンに基づいて、
    ロボットが実施しようとしている作業がロボットハンドの指を伸ばすように外側に向かって反力を発生させると判断したとき、第1所定値を前記作業分類パラメータに設定し、
    ロボットが実施しようとしている作業がロボットハンドの指を外側に向かって反力を発生させないと判断したとき、第2所定値を前記作業分類パラメータに設定する、
    ことを特徴とするロボット制御装置。
  9. 請求項1乃至8のうちいずれか1項記載のロボット制御装置であって、
    前記ロボットは、
    前記複数のリンクと、該各リンクを回転可能に連結する複数の関節と、を有する指機構と、
    前記各関節を駆動する複数のモータと、
    前記各関節角度を検出する複数の関節角度検出部と、
    を備えるロボットハンドである、ことを特徴とするロボット制御装置。
  10. 請求項1乃至9のうちいずれか1項記載のロボット制御装置であって、
    前記慣性モーメント演算手段は、前記関数として(21)式を用いて前記第i関節周りの慣性モーメントJを算出し、
    前記慣性モーメント推定手段は、前記関数として(27)式を用いて前記第i関節周りの慣性モーメント推定値J(ハット)を算出し、
    前記推定誤差演算手段は、(29)式を用いて前記第i関節周りの慣性モーメント誤差eJ,iを算出する、ことを特徴とするロボット装置。
    Figure 2012223851

    但し、上記(21)式、(27)式、及び(29)式において、下記式が成立し、lは第mリンク長さ、mは第iリンク質量、am、nは第m関節と第n関節を結ぶ線分の長さ、bm、nは第mリンク重心第n関節間距離、φm、nは第m関節において第m+1リンクと第m関節と第n関節を結ぶ線分が成す角度、θは第m関節角度、Jj、iは第jリンクの第i関節に関する慣性モーメント、Jj0は第jリンクの重心周り慣性モーメント、Tは第i関節モータトルク、Dは第i関節粘性摩擦、Tは制御周期、kは各制御周期の値を示すインデックス、とする。
    Figure 2012223851
  11. 複数のリンクと、該各リンクを回転可能に連結する複数の関節と、該各関節を駆動する複数の駆動手段と、前記各関節角度を検出する複数の関節角度検出手段と、を備えたロボット制御装置の制御方法であって、
    前記検出された先端側の第1関節から第i関節(i≧2)までの関節角度を含む関数に基づいて、前記第i関節から先端部分までの第i関節周りの慣性モーメントを算出するステップと、
    前記検出された前記第i関節の関節角度を含む関数に基づいて、前記第i関節の回転軸が鉛直方向となるときの前記第i関節周りの慣性モーメント推定値を算出するステップと、
    前記算出された第i関節周りの慣性モーメントと、前記算出された第i関節周りの慣性モーメント推定値と、の差を前記第i関節周りの慣性モーメント誤差として算出するステップと、
    前記算出された第i関節周りの慣性モーメント誤差の絶対値と判定閾値とを比較して、前記関節角度検出手段の故障を判定するステップと、
    前記判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記各関節に対する関節角度指令を生成するステップと、
    を含む、ことを特徴とするロボット制御装置の制御方法。
  12. 複数のリンクと、該各リンクを回転可能に連結する複数の関節と、該各関節を駆動する複数の駆動手段と、前記各関節角度を検出する複数の関節角度検出手段と、を備えたロボット制御装置の制御プログラムであって、
    前記検出された先端側の第1関節から第i関節(i≧2)までの関節角度を含む関数に基づいて、前記第i関節から先端部分までの第i関節周りの慣性モーメントを算出する処理と、
    前記検出された前記第i関節の関節角度を含む関数に基づいて、前記第i関節の回転軸が鉛直方向となるときの前記第i関節周りの慣性モーメント推定値を算出する処理と、
    前記算出された第i関節周りの慣性モーメントと、前記算出された第i関節周りの慣性モーメント推定値と、の差を前記第i関節周りの慣性モーメント誤差として算出する処理と、
    前記算出された第i関節周りの慣性モーメント誤差の絶対値と判定閾値とを比較して、前記関節角度検出手段の故障を判定する処理と、
    前記判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記各関節に対する関節角度指令を生成する処理と、
    をコンピュータに実行させる、ことを特徴とするロボット制御装置の制御プログラム。
JP2011092930A 2011-04-19 2011-04-19 ロボット制御装置、その制御方法及び制御プログラム Expired - Fee Related JP5732993B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011092930A JP5732993B2 (ja) 2011-04-19 2011-04-19 ロボット制御装置、その制御方法及び制御プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011092930A JP5732993B2 (ja) 2011-04-19 2011-04-19 ロボット制御装置、その制御方法及び制御プログラム

Publications (2)

Publication Number Publication Date
JP2012223851A true JP2012223851A (ja) 2012-11-15
JP5732993B2 JP5732993B2 (ja) 2015-06-10

Family

ID=47274609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011092930A Expired - Fee Related JP5732993B2 (ja) 2011-04-19 2011-04-19 ロボット制御装置、その制御方法及び制御プログラム

Country Status (1)

Country Link
JP (1) JP5732993B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110065091A (zh) * 2018-01-24 2019-07-30 固德科技股份有限公司 一种机械手臂动态监测***及其实施方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07261844A (ja) * 1994-03-23 1995-10-13 Matsushita Electric Ind Co Ltd モータ制御装置
JPH11507454A (ja) * 1995-06-07 1999-06-29 オーロラ フライト サイエンシズ コーポレーション 解析上の冗長性を利用する故障許容自動制御システム
JP2007265103A (ja) * 2006-03-29 2007-10-11 Nachi Fujikoshi Corp ロボット制御装置
JP2007301660A (ja) * 2006-05-10 2007-11-22 Matsushita Electric Ind Co Ltd 異物検知方法およびロボット
JP2009184035A (ja) * 2008-02-04 2009-08-20 Toyota Motor Corp 脚式ロボット、及びその制御方法
JP2011042022A (ja) * 2009-08-24 2011-03-03 Kawasaki Heavy Ind Ltd 自動作業システムにおけるロボットの診断方法及び診断プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07261844A (ja) * 1994-03-23 1995-10-13 Matsushita Electric Ind Co Ltd モータ制御装置
JPH11507454A (ja) * 1995-06-07 1999-06-29 オーロラ フライト サイエンシズ コーポレーション 解析上の冗長性を利用する故障許容自動制御システム
JP2007265103A (ja) * 2006-03-29 2007-10-11 Nachi Fujikoshi Corp ロボット制御装置
JP2007301660A (ja) * 2006-05-10 2007-11-22 Matsushita Electric Ind Co Ltd 異物検知方法およびロボット
JP2009184035A (ja) * 2008-02-04 2009-08-20 Toyota Motor Corp 脚式ロボット、及びその制御方法
JP2011042022A (ja) * 2009-08-24 2011-03-03 Kawasaki Heavy Ind Ltd 自動作業システムにおけるロボットの診断方法及び診断プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110065091A (zh) * 2018-01-24 2019-07-30 固德科技股份有限公司 一种机械手臂动态监测***及其实施方法

Also Published As

Publication number Publication date
JP5732993B2 (ja) 2015-06-10

Similar Documents

Publication Publication Date Title
US10564635B2 (en) Human-cooperative robot system
JP6431017B2 (ja) 機械学習により外力の検出精度を向上させた人協調ロボットシステム
JP6238021B2 (ja) ロボット、ロボットの制御装置及び制御方法、並びに、ロボット用制御プログラム
CN107407931B (zh) 通过触碰操纵器实现的鲁棒的直观的操作方法
Dimeas et al. Human-robot collision detection and identification based on fuzzy and time series modelling
CN110480628B (zh) 机器人、控制装置以及机器人控制方法
CN110662635A (zh) 机器人的碰撞处理
Kouris et al. A frequency domain approach for contact type distinction in human–robot collaboration
JP2010280054A5 (ja)
KR20180099455A (ko) 로봇을 위한 모터 제어 및/또는 조정
JP2019141967A (ja) 振動解析装置および振動解析方法
Sotoudehnejad et al. Counteracting modeling errors for sensitive observer-based manipulator collision detection
US8510063B2 (en) Control device, control method, and program
He et al. Bidirectional human–robot bimanual handover of big planar object with vertical posture
KR101307782B1 (ko) 로봇의 직접 교시 및 재생 방법 및 이를 구현하는 로봇 제어 장치
Zhang et al. Robot collision detection without external sensors based on time-series analysis
CN110035707A (zh) 医疗***及其控制方法
JP5732993B2 (ja) ロボット制御装置、その制御方法及び制御プログラム
JP2015071207A (ja) ロボットハンドおよびその制御方法
EP2907599B1 (en) Peening device and peening method
WO2022018953A1 (ja) 制御システム、ジェスチャ認識システム、車両、及び、ジェスチャ認識システムを制御する方法
JP2008200763A (ja) 作業用マニピュレータの制御装置
Dimeas et al. Robot collision detection based on fuzzy identification and time series modelling
JP2004017256A (ja) 人間と共存するロボットの制御装置と制御方法
Passenberg et al. Enhancing task classification in human-machine collaborative teleoperation systems by real-time evaluation of an agreement criterion

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150330

R151 Written notification of patent or utility model registration

Ref document number: 5732993

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees