"複数のリンクと、該各リンクを回転可能に連結する複数の関節と、該各関節を駆動する複数の駆動手段と、前記各関節角度を検出する複数の関節角度検出手段と、を備えたロボット制御装置であって、前記各関節角度検出手段により検出された先端側の第1関節から第i関節i≧2までの関節角度を含む関数に基づいて、前記第i関節から先端部分までの第i関節周りの慣性モーメントを算出する慣性モーメント演算手段と、前記関節角度検出手段により検出された前記第i関節の関節角度を含む関数に基づいて、前記第i関節の回転軸が鉛直方向となるときの前記第i関節周りの慣性モーメント推定値を算出する慣性モーメント推定手段と、前記慣性モーメント演算手段により算出された前記第i関節周りの慣性モーメントと、前記慣性モーメント推定手段により算出された前記第i関節周りの慣性モーメント推定値と、の差を前記第i関節周りの慣性モーメント誤差として算出する推定誤差演算手段と、前記推定誤差演算手段により算出された前記第i関節周りの慣性モーメント誤差の絶対値と判定閾値とを比較して、前記関節角度検出手段の故障を判定する故障判定手段と、前記故障判定手段により判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記各関節に対する関節角度指令を生成する関節角度指令生成手段と、を備える、ことを特徴とするロボット制御装置。請求項1記載のロボット制御装置であって、前記故障判定手段は、前記推定誤差演算手段により算出された前記第i関節周りの慣性モーメント誤差の絶対値が判定閾値を超えるとき、前記複数の関節角度検出手段の関節角度のうちの一つ関節角度を0度に保持して、前記第i関節周りの慣性モーメント誤差の絶対値と判定閾値との比較を繰返し、前記関節角度検出手段の故障を判定する、ことを特徴とするロボット制御装置。請求項2記載のロボット制御装置であって、前記故障判定手段は、前記複数の関節角度のうちの一つ関節角度を0度に保持して、前記第i関節周りの慣性モーメント誤差の絶対値が判定閾値以下となるとき、前記関節角度を0度に保持した前記関節角度検出手段を故障、それ以外の前記関節角度検出手段を正常、と判定し、前記第i関節周りの慣性モーメント誤差の絶対値が判定閾値を超えるとき、前記関節角度を0度に保持した前記関節角度検出手段を不明、それ以外の前記関節角度検出手段を故障、と判定し、該故障と判定した関節角度検出手段に対応する関節角度を0度に保持し、前記第i関節周りの慣性モーメント誤差の絶対値と判定閾値との比較を繰り返す、ことを特徴とするロボット制御装置。請求項1乃至3のうちいずれか1項記載のロボット制御装置であって、前記関節角度指令生成手段は、前記故障判定手段により判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記作業パターンが実施可能か否かを判断し、実施不能と判断した場合、前記作業パターンの作業を中止するための関節角度指令を生成し、実施可能と判断した場合、故障した関節角度検出手段が設置された関節以外に対する関節角度指令を生成する、ことを特徴とするロボット制御装置。請求項1乃至4のうちいずれか1項記載のロボット制御装置であって、前記故障判定手段からの判定結果に基づいて、故障した前記関節角度検出手段が無いと判断した場合、全関節における前記関節角度検出手段の関節角度が前記関節角度指令生成手段により生成された関節角度指令に追従するような前記駆動手段に対するトルク指令を生成し、前記故障判定手段からの故障判定結果に基づいて、故障した前記関節角度検出手段が存在すると判断した場合、故障していない前記関節角度検出手段の関節角度が前記関節角度指令生成手段により生成された関節角度指令に追従するように前記駆動手段に対するトルク指令を生成し、かつ、故障した前記関節角度検出手段が設けられた関節の駆動手段に対して前記作業内容毎に予め設定されたトルク指令を生成する、トルク指令生成手段を更に備える、ことを特徴とするロボット制御装置。請求項1乃至4のうちいずれか1項記載のロボット制御装置であって、ユーザの入力情報又は予め設定されたプログラムに基づいて、ロボットが作業を実施する作業パターンを生成する作業パターン生成手段と、前記作業パターン生成手段により生成された前記作業パターンを分類し、予め設定された前記分類に対応する値を作業分類パラメータに設定するパラメータ生成手段と、前記関節角度指令生成手段からの各関節角度指令と、前記パラメータ生成手段からの前記作業分類パラメータと、前記故障判定手段からの故障の判定結果と、に基づいて、前記駆動手段に対するトルク指令を生成するトルク指令生成手段と、を更に備える、ことを特徴とするロボット制御装置。請求項6記載のロボット制御装置であって、前記トルク指令生成手段は、a前記故障判定手段からの判定結果に基づいて、前記関節角度検出器が故障していると判断し、前記パラメータ生成手段からの作業分類パラメータに第1所定値が設定されていると判断したとき、所定トルクを生じさせるトルク指令を生成し、b前記故障判定手段からの判定結果に基づいて、前記関節角度検出器が故障していると判断し、前記パラメータ生成手段からの作業分類パラメータに第2所定値が設定されていると判断したとき、トルク指令に0を設定し、c前記故障判定手段からの判定結果に基づいて、前記関節角度検出器が故障していない、或いは不明と判断したとき、前記作業パターン毎に予め設定されたトルク指令を生成する、ことを特徴とするロボット制御装置。請求項6又は7記載のロボット制御装置であって、前記パラメータ生成手段は、前記作業パターン生成手段により生成された作業パターンに基づいて、ロボットが実施しようとしている作業がロボットハンドの指を伸ばすように外側に向かって反力を発生させると判断したとき、第1所定値を前記作業分類パラメータに設定し、ロボットが実施しようとしている作業がロボットハンドの指を外側に向かって反力を発生させないと判断したとき、第2所定値を前記作業分類パラメータに設定する、ことを特徴とするロボット制御装置。請求項1乃至8のうちいずれか1項記載のロボット制御装置であって、前記ロボットは、前記複数のリンクと、該各リンクを回転可能に連結する複数の関節と、を有する指機構と、前記各関節を駆動する複数のモータと、前記各関節角度を検出する複数の関節角度検出部と、を備えるロボットハンドである、ことを特徴とするロボット制御装置。請求項1乃至9のうちいずれか1項記載のロボット制御装置であって、前記慣性モーメント演算手段は、前記関数として21式を用いて前記第i関節周りの慣性モーメントJiを算出し、前記慣性モーメント推定手段は、前記関数として27式を用いて前記第i関節周りの慣性モーメント推定値Jiハットを算出し、前記推定誤差演算手段は、29式を用いて前記第i関節周りの慣性モーメント誤差eJ,iを算出する、ことを特徴とするロボット装置。但し、上記21式、27式、及び29式において、下記式が成立し、lmは第mリンク長さ、miは第iリンク質量、am、nは第m関節と第n関節を結ぶ線分の長さ、bm、nは第mリンク重心第n関節間距離、φm、nは第m関節において第m1リンクと第m関節と第n関節を結ぶ線分が成す角度、θmは第m関節角度、Jj、iは第jリンクの第i関節に関する慣性モーメント、Jj0は第jリンクの重心周り慣性モーメント、Tiは第i関節モータトルク、Diは第i関節粘性摩擦、Tは制御周期、kは各制御周期の値を示すインデックス、とする。複数のリンクと、該各リンクを回転可能に連結する複数の関節と、該各関節を駆動する複数の駆動手段と、前記各関節角度を検出する複数の関節角度検出手段と、を備えたロボット制御装置の制御方法であって、前記検出された先端側の第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関節周りの慣性モーメント誤差の絶対値と判定閾値とを比較して、前記関節角度検出手段の故障を判定する処理と、前記判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記各関節に対する関節角度指令を生成する処理と、をコンピュータに実行させる、ことを特徴とするロボット制御装置の制御プログラム。上記特許文献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関節周りの慣性モーメントJiを算出し、前記慣性モーメント推定手段は、前記関数として下記27式を用いて前記第i関節周りの慣性モーメント推定値Jiハットを算出し、前記推定誤差演算手段は、下記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関節周りの慣性モーメント誤差の絶対値と判定閾値とを比較して、前記関節角度検出手段の故障を判定する処理と、前記判定された故障の判定結果と、ロボットが実施しようとしている作業パターンと、に基づいて、前記各関節に対する関節角度指令を生成する処理と、をコンピュータに実行させる、ことを特徴とするロボット制御装置の制御プログラムであってもよい。本発明によれば、ロボットのセンサに故障が生じた場合でも最適に制御を行うことができるロボット制御装置、その制御方法及び制御プログラムを提供することができる。以下、図面を参照して本発明の実施の形態について説明する。本発明の一実施の形態に係るロボット制御装置1は、例えば、図4に示すようなロボットハンド130の指機構131を制御するものである。ロボットハンド130の指機構131は、図4a及び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となる。なお、図4a及びbにおいて各記号を以下のように定義する。am、n:第m関節と第n関節を結ぶ線分の長さ以下、第m第n関節間距離と称すφm、n:第m関節において、第m1リンクと第m関節と第n関節を結ぶ線分が成す角度以下、第m第n関節間線分第m1リンク間角度と称すθm:第m関節角度まず、第m第n関節間距離am,nと、第m第n関節間線分第m1リンク間角度φm、nを導出する。図4aにおいて、下記1式及び2式が成立する。ただし、上記1式及び2式において、liは第iリンク406の長さを表す。上記1式を第i-2第i関節間距離ai-2、iについて解くと、下記3式を得ることができる。上記2式を第i-2第i関節間線分第i-1リンク間角度φi-2、iについて解くと、下記4式を得ることができる。図4bにおいて、下記5式及び6式が成立する。上記5式を第i-3第i関節間距離ai-3、iについて解くと、下記7式を得ることができる。上記6式を第i-3第i関節間線分第i-2リンク間角度φi-3、iについて解くと、下記8式を得ることができる。同様に、j=3、...、i-1に対して、下記9式及び10式が成立する。上記9式を第i-j第i関節間距離ai-j、iについて解くと、下記11式を得ることができる。上記10式を第i-j第i関節間線分第i-j1リンク間角度φi-j、iについて解くと、下記12式を得ることができる。第2リンクと第3リンクに対して下記13式及び14式が成立する。上記13式を第1第i関節間距離a1、iについて解くと、下記15式を得ることができる。上記14式を第1第i関節間線分第2リンク間角度φ1、iについて解くと、下記16式を得ることができる。上記3式、4式、7式、8式、11式、12式、15式、及び16式において算出された第m第n関節間距離am,nと、第m第n関節間線分第m1リンク間角度φm、nと、を用いて、第mリンクの重心と第n関節の間の距離以下、第mリンク重心第n関節間距離と称すbm、nを導出する。図4aにおいて第iリンク重心第i関節間距離bi、iの2乗は、下記17式として導出できる。図4aにおいて、第i-1リンク重心第i関節間距離bi-1、iの2乗は、下記18式として導出できる。j=2、...、i-1に対して第i-jリンク重心第i関節間距離bi-j、iの2乗は、下記19式として導出できる。上記17式乃至19式に基づいて導出された第mリンク重心第n関節間距離の2乗を用いて、j=1、...、iに対する第jリンクの第i関節に関する慣性モーメントJj、iは、平行軸の定理より下記20式として導出できる。ただし、上記20式において、Jj0は、第jリンクの重心周り慣性モーメントを表している。第i関節から先端部分までの慣性モーメント以下、第i関節周り慣性モーメントと称すJiは、上記20式を用いて下記21式として表される。上記21式を用いて算出される第i関節周り慣性モーメントJiは、第1関節402から第i関節407までのi個全ての関節角度検出値に基づいている。後述の故障判定部140の慣性モーメント演算器141は、第1関節402から第i関節407までの関節角度検出値を含む上記21式関数を用いて、第i関節周りの慣性モーメントJii=1、2、...を演算する。次に、第i関節角度検出値θiのみに基づいて第i関節周り慣性モーメントJiを推定する方法について説明する。第i関節407周りの運動方程式は、下記22式として求められる。ただし、上記22式において各記号は以下のように定義されている。Ti:第i関節モータトルクdi:第i関節トルク外乱Di:第i関節粘性摩擦上記22式における第i関節角度θiの1階時間微分値である第i関節角速度と、2階時間微分である第i関節角加速度とは、夫々、下記23式及び24式のように差分近似できる。ただし、上記23式及び24式における各記号は、以下のように定義されている。T:制御周期k:各制御周期の値を示すインデックスk番目の制御周期における値を表す上記23式及び24式を上記22式に代入すると、下記25式を得ることができる。上記25式を第i関節周り慣性モーメントJiについて解くと、第i関節周り慣性モーメント推定値Jiハットは下記26式として表される。ただし、第i関節粘性摩擦Diは設計により既知であるとする。また、第i関節トルクの外乱diは、各関節軸が鉛直方向を向く瞬間にはdi=0となるため、各関節軸が鉛直方向を向く瞬間において、上記26式は下記27式と書き換えることができる。後述の故障判定部140の慣性モーメント推定器142は、第i関節角度検出器133からの第i関節角度検出値θiを含む上記27式関数を用いて、第i関節周りの慣性モーメント推定値Jiハットi=1、2、...を演算する。また、上記27式と上記21式との差を、第i関節周り慣性モーメント推定誤差eJ、iとし、下記28式を用いて算出することができる。上記28式に、上記17式乃至20式を代入すると、下記29式を得ることができる。ここで、上述より明らかなように、上記29式の第1項は関節角度検出値θiのみの関数であり、第2項以降は関節角度検出値θ1からθi-1にも依存する関数となっている。後述の故障判定部140の推定誤差演算器143は、上記29式を用いて、第i関節周りの慣性モーメント推定誤差eJ、ii=1、2、...を演算する。本実施の形態に係るロボット制御装置1の故障判定部140は、例えば、上述したロボットハンド130の指機構131の各関節に設けられた各関節角度検出器133の故障を、この慣性モーメント推定誤差eJ、iを用いて判定することができる。図2は、本発明の実施の形態に係るロボット制御装置の故障判定部によるi=2における関節角度検出器の故障を判定するための処理フローを示すフローチャートである。まず、ロボット制御装置1の故障判定部140は、i=2第2関節までモデル化において下記30式を満足するか否かを判定するステップS201。ただし、上記30式において、δは関節角度検出器133の故障を判定するための故障判定閾値判定閾値であり、例えば、予め故障判定部140に設定されている。故障判定部140は、上記30式を満足すると判断した場合ステップS201のYES、関節角度検出値θ1及びθ2は正常第1関節角度検出器133と第2関節角度検出器133が故障していないと判断しステップS202、図3のステップS301の処理に移行する。一方、故障判定部140は、上記30式を満足しないと判断した場合ステップS201のNO、関節角度検出値θ1及びθ2のうち少なくとも一方が異常と判断しステップS203、例えば、第1関節のモータ132に負のトルクを発生させ、関節角度検出値θ1=0に保持し、関節角度検出値θ1=0の状態で上記30式を満足するか否かを判定するステップS204。故障判定部140は、上記30式を満足すると判断した場合ステップS204のYES、関節角度検出値θ1が異常第1関節角度検出器133は故障している、関節角度検出値θ2が正常第2関節角度検出器133は故障していないと判断しステップS205、図3のステップS301処理に移行する。故障判定部140は、上記30式を満足しないと判断した場合ステップS204のNO、関節角度検出値θ1が正常か否か第1関節角度検出器133が故障しているか否かが不明であり、関節角度検出値θ2が異常第2関節角度検出器133が故障していると判断しステップS206、第2関節のモータ132に負のトルクを発生させ、関節角度検出値θ2=0に保持し、関節角度検出値θ2=0の状態で上記30式を満足するか否かを判定するステップS207。故障判定部140は、上記30式を満足すると判断した場合ステップS207のYES、関節角度検出値θ1が正常第1関節角度検出器133は故障していない、関節角度検出値θ2が異常第2関節角度検出器133は故障していると判断しステップS208、図3のステップS301の処理に移行する。故障判定部140は、上記30式を満足しないと判断した場合ステップS207のNO、関節角度検出値θ1及びθ2が異常第1関節角度検出器133及び第2関節角度検出器133が故障していると判断しステップS209、図3のステップS301の処理に移行する。図3は、第1関節角度検出器及び第2関節角度検出器のうちいずれが故障しているか否かが分かっている場合の関節角度検出器の故障を判定するための処理フローを示すフローチャートである。故障判定部140は、i=j、j≧3において、異常と判断した関節角度検出値を上記ステップS204と同様に、その関節角度検出値を0に保持し、上記30式を満足するか否かを判定するステップS301。故障判定部140は、上記30式を満足すると判断した場合ステップS301のYES、関節角度検出値θjは正常第j関節角度検出器133は故障していないと判断しステップS302、上記ステップS301の処理に戻る。一方、故障判定部140は、上記30式を満足しないと判断した場合ステップS301のNO、関節角度検出値θjは異常第j関節角度検出器133が故障していると判断しステップS303、上記ステップS301の処理に戻る。このようにして、動作に必要最小限のセンサのみを搭載した人と共生できる質量及びサイズのロボットにおいても、故障した関節角度検出器133を容易に特定することができる。故障判定部140が、上述した図2及び図3に示す処理フローを用いて、全ての関節角度検出器133の故障判定を行い完了すると、安全制御部120は、その判定結果とロボットハンド130が実施しようとしている作業の種類に応じて、下記31式に示す第j関節のモータトルクTjを生成する。ただし、上記31式において、Tjrは、第j関節角度検出器133が故障していない場合に、第j関節のモータ132が生成するモータトルクの目標値以下、第j関節モータトルク指令と称すである。また、sjは、ロボットハンド130が実施しようとしている作業の種類を分類するためのパラメータ以下、作業分類パラメータと称すであり、例えば、上記32式のように設定されている。作業分類パラメータsjが1第1所定値に設定されている場合、指機構131は外側に向かって反力を発生させ、一方、作業分類パラメータsjが0第2所定値に設定されている場合、指機構131は外側に向かって反力を発生させない。上記31式における3つのモータトルク指令Tjは、例えば、以下のように定義できる。aTj<0:第j関節角度検出器133が故障しており、かつロボットハンド130が実施しようとしている作業において、指機構131が外側指が伸びる方向に向かって反力を発生する必要がある場合sj=1。この場合、第j関節モータトルク指令Tjを負トルク所定トルクに設定することにより、第j関節が伸びた状態になり、指機構131が物体に接触した時に物体に対して反力を与えることができるようになる。bTj=0:第j関節角度検出器133が故障しており、かつロボットハンド130が実施しようとしている作業において、指機構131が外側に向かって反力を発生する必要がない場合sj=0。この場合、第j関節モータトルク指令Tjを0に設定することにより、第j関節は指機構131が物体により内側に押された場合は正の方向に曲がる方向に回転し、指機構131が物体から外側に押された場合は指機構131が伸びた状態になるまで負の方向に伸びる方向に回転する。いずれの場合も、第j関節の可動範囲の端に到達したら物体からの力が同じ方向に加わる限りその角度のまま保持される。cTj=Tjr:第j関節角度検出器133が故障していない、又は故障しているか否か分からない場合。この場合、ロボットハンド130の実施しようとしている作業に必要な第j関節モータトルク指令Tj作業パターン毎に予め設定された安全なモータトルク指令を生成し、この第j関節モータトルク指令Tjに従って第j関節を駆動する。本実施の形態において、上記31式により第j関節モータトルクTjを生成することにより、第j関節角度検出器133が故障している場合でも、第j関節のモータ132の暴走を回避し、かつロボットハンド130が実施しようとしている作業を安全に継続できる。以下上記31式に示すTjを安全関節モータトルク指令と称す。図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が実施しようとしている作業を各関節に求められる動作に分類して、作業分類パラメータsjj=1、2、...を設定し、設定した作業パラメータsjをモータトルク指令生成器122に対して出力する。モータトルク指令生成器122は、トルク指令生成手段の一具体例であり、関節角度指令生成部110からの各関節角度指令と、パラメータ生成器121からの作業分類パラメータsjと、故障判定部140からの各関節角度検出器133の故障判定結果と、に基づいて、上記31式で表される安全関節モータトルク指令Tjj=1、2、...を生成し、ロボットハンド130の各モータ132に対して出力する。例えば、モータトルク指令生成器122は、故障判定部140からの各関節角度検出器133の故障判定結果に基づいて、故障した関節角度検出器133が無いと判断した場合、ロボットハンド130の指機構131の全関節における関節角度検出器133の関節角度検出値が関節角度指令生成器112により生成された各関節角度指令に追従するような安全関節モータトルク指令Tjを生成し、ロボットハンド130の各モータ132に対して出力する。一方、モータトルク指令生成器122は、故障判定部140からの各関節角度検出器133の故障判定結果に基づいて、故障した関節角度検出器133が存在すると判断した場合、故障していない関節角度検出器133の関節角度検出値が関節角度指令生成器112により生成された関節角度指令に追従し、かつ故障した関節角度検出器133を備える関節のモータ132に対するモータトルクが作業パターン毎に設定された安全なモータトルクとなるような安全関節モータトルク指令Tjを生成し、ロボットハンド130の各モータ132に対して出力する。ここで、モータトルク指令生成器122は、安全関節モータトルク指令Tjをモータ電流に変換してロボットハンド130の各関節のモータ132に対して出力する。ロボットハンド130は、指機構131と、安全制御部120のモータトルク指令生成器122からの安全関節モータトルク指令Tjに基づいて各関節を駆動する複数のモータ132と、各モータ132により駆動された各関節の回転角度を検出し、関節角度検出値として出力する複数の関節角度検出器133と、を有している。指機構131は、複数のリンクと、隣合うリンクを回転可能に連結する複数の関節と、から構成される機構である。故障判定部140は、ロボットハンド130の各関節角度検出器133からの関節角度検出値に基づいて、ロボットハンド130が物体に接触していない状態で、各関節の回転軸が鉛直方向を向いた瞬間に、故障した関節角度検出器133の有無およびその位置を判定し、その各関節角度検出器133の故障判定結果を、関節角度指令生成部110及び安全制御部120に対して出力する。故障判定部140は、慣性モーメント演算器141と、慣性モーメント推定器142と、慣性モーメント推定誤差演算器143と、故障判定器144と、を有している。慣性モーメント演算器141は、慣性モーメント演算手段の一具体例であり、各関節角度検出器133からの第1乃至第i関節角度検出値と、上記21式と、に基づいて、第i関節周りの慣性モーメントJii=1、2、...を演算し、推定誤差演算器143に対して出力する。慣性モーメント推定器142は、慣性モーメント推定手段の一具体例であり、各関節角度検出器133からの第i関節角度検出値と、上記27式と、に基づいて、第i関節の回転軸が鉛直方向となるときの第i関節周りの慣性モーメント推定値Jiハットi=1、2、...を演算し、慣性モーメント推定誤差演算器143に対して出力する。慣性モーメント推定誤差演算器143は、推定誤差演算手段の一具体例であり、慣性モーメント演算器141からの慣性モーメントJiと、慣性モーメント推定器142からの慣性モーメント推定値Jiハットと、の差を、上記29式を用いて、第i関節周りの慣性モーメント推定誤差eJ、ii=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のみが故障している場合に、人差し指と親指を使って複数のはがきを輪ゴムで止める作業を模擬している。また、シミュレーションに用いた数値は以下のように設定されている。l1=20×10-3m、l2=20×10-3m、l3=20×10-3m、l10=10×10-3m、l20=10×10-3m、l30=10×10-3m、m1=30×10-3kg、m2=30×10-3kg、m3=30×10-3kg、J10=1.42×10-6kgm2、J20=1.42×10-6kgm2、J30=1.42×10-6kgm2、D1=1×10-4Nms/rad、D2=1×10-4Nms/rad、D3=1×10-4Nms/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-3s、Kp1=40s-1、Kv1=40×2×πs-1、Kvj1=Kv1×J10m1×l102Nm2s-1、Kp2=40s-1、Kv2=40×2×πs-1Kvj2=Kv2×J20m2×l202Nm2s1、Kp3=40s-1、Kv3=40×2×πs-1、Kvj3=Kv3×J30m3×l302Nm2s-1、T1c=-1×10-1Nm、T2c=-1×10-1Nm、T3c=-1×10-1Nm、θ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-3kgm2、g=9.8[m/s-2]ただし、上記各記号は、以下のように定義されている。li0:第iリンク重心と第i関節の間の距離以下、第iリンク重心第i関節間距離と称すθimin:第i関節角度下限値、θimax:第i関節角度上限値、cv2:第2関節速度検出値ドリフト量、Kpi:第i関節角度比例制御ゲイン、Kvi:正規化第i関節速度比例制御ゲイン、Kvji:第i関節速度比例制御ゲイン、Tic:第i関節角度を第i関節角度下限値に保持するための第i関節のモータトルク以下、第i関節角度下限値保持モータトルクと称すθif:第i関節角度検出器133が故障していない場合の第i関節角度最終目標値以下、第i関節角度最終目標値と称すvic:第i関節角度検出器133が故障していない場合の各制御周期における第i関節速度指令変化量以下、第i関節速度指令変化量と称すg:重力加速度ロボットハンド130の指機構131の人差し指の運動方程式は、下記33式乃至35式として導出できる。ここで、上記33乃至35で表される指機構131の人差し指を、輪ゴムに通すために、各関節の回転軸は鉛直方向を向いている状態で各関節を少し曲げる動作を想定する。輪ゴムを広げる際に、人差し指の各リンクは外向きの反力を輪ゴムに発生させる必要があるため、作業分類パラメータは、s1=1、s2=1、s3=1となる。初期状態において、人差し指は伸びている状態θ1=0、θ2=0、θ3=0であるとする。まず、第1関節角度検出器133乃至第3関節角度検出器133が故障しているか否か不明である。このため、上記36式乃至38式で表される第1関節のモータトルク指令T1r、第2関節のモータトルク指令T2r、及び第3関節のモータトルク指令T3rにより各関節角度を制御する。上記36式乃至38式において、関節角度指令生成器112は、第1関節角度指令θ1r、第2関節角度指令θ2r、及び第3関節角度指令θ3rを、下記39式乃至41式の1階時間積分として演算する。ただし、上記39式乃至41式において、cθiは、故障した第i関節角度検出器133の故障判定結果1:故障しているか否か不明、0:故障していない、-1:故障しているとする。上記39式乃至41式により、第i関節角度検出値θiが第i関節角度最終目標値θifに到達するまで、第i関節角度指令θirは、制御周期ごとに第i関節速度指令変化量vicずつその1階時間微分値を増加させ、第i関節角度最終目標値θifに到達した時点でその値を保持する。以下、上述のように制御した人差し指の各関節角度検出器133の故障判定を、図5乃至図8を用いて説明する。図5aは、本実施の形態に係るロボット制御装置のシミュレーションにおける第2関節の関節角度の時間変化を示しており、図5bは、従来のロボット制御装置のシミュレーションにおける第2関節の関節角度の時間変化を示している。図5a及びbにおいて、実線は実際の第2関節角度θ2、一点鎖線は第2関節角度検出値θ2m、破線は第2関節角度指令θ2rを示している。図5aにおいて、時間0.003sまで図2のステップS201からステップS203の演算が実施され、実際の第2関節角度θ1及びθ2のうち少なくとも一方が異常であることのみが分かっている。この間、故障している関節角度検出器133が特定できていないため、上記40式の1番目の式に従って破線の第2関節角度指令θ2rは増加している。ここで、第2関節角度指令θ2rが階段状に変化するのは、第2関節角度指令θ2rが制御周期T=1×10-3sの離散時間に従って生成されるためである。本実施の形態において第2関節角度検出器133は故障しており、下記42式で表される誤った第2関節速度検出値θ2mの1回時間積分値を出力するものとする。上記42式で表される誤った第2関節角度検出値θ2mは破線が示すように変化する。すなわち、0.003sまでは第2関節角度検出値θ2mを第2関節角度指令θ2rに収束させようとして実際の第2関節角度θ2を制御し、その結果、実際の第2関節角度θ2は実線のように増加する。図5aの0.003sにおいて、図2のステップS204からステップS206の演算が実施され、第2関節角度検出器133の故障が検出され、ステップS207において上記31式の1番目の式に基づいて安全関節モータトルクが出力され、実際の第2関節角度θ2=0[rad]に保持される。実際、0.003s以降において、実際の第2関節角度θ2は0[rad]に保持されており、第2関節が伸びた状態で保持されていることが分かる。この間、第2関節角度検出器133は故障したままであるため、誤った第2関節角度検出値θ2mを出力し続けている。一方で、従来のロボット制御装置においては、図5bに示す如く、実線で示す実際の第2関節角度θ2は発散しており、人差し指の第2関節が完全に折れるまで曲がり続けることが分かる。図6aは、本実施の形態に係るロボット制御装置のシミュレーションにおける第1関節の関節角度の0.015sまでの時間変化を示しており、図6bは、本実施の形態に係るロボット制御装置のシミュレーションにおける第1関節の関節角度の0.5sまでの時間変化を示している。図6a及びbにおいて、実線は実際の第1関節角度θ1、破線は第1関節角度指令θ1rを示している。図6aの0.006sにおいて、図2のステップS207の演算が完了し、その後、ステップS208の演算が行われ、第1関節角度検出器133が故障していないと判定される。よって、0.006s以降も関節角度指令生成器112は、上記39式の2番目の式に従って、図6aの破線で示す第1関節角度指令θ1rを出力しており、実際の第1関節角度θ1も第1関節角度指令θ1rに追従するように増加している。図6bに示すように、破線で示す第1関節角度指令θ1rは0.2sにおいて第1関節角度最終目標値θ1f=0.1[rad]に到達し、それ以降はθ1r=θ1fに保持されている。また、実線で示す実際の第1関節角度θ1は、上記31式の3番目の式および上記36式に基づいてモータトルク指令生成器122が出力する安全関節モータトルク指令により制御され、第1関節角度最終目標値θ1fに漸近的に収束している。なお、図6a及びbにおいて、第1関節角度検出値は実際の第1関節角度に一致している。図7aは、本実施の形態に係るロボット制御装置のシミュレーションにおける第3関節の関節角度の0.015sまでの時間変化を示しており、図7bは、本実施の形態に係るロボット制御装置のシミュレーションにおける第3関節の関節角度の0.5sまでの時間変化を示している。図7a及びbにおいて、実線は実際の第3関節角度θ3、破線は第3関節角度指令θ3rを示している。図7aにおいて、0.009sまでは図2のステップS201乃至ステップS208、及び図3のステップS301j=3とした場合が実施される。その結果、0.009sでステップS302において、故障判定器144は、第3関節角度検出器133が故障していないと判定する。したがって、0.009s以降も、関節角度指令生成器112は、上記41式の2番目の式に基づいて、図7aの破線で示す第3関節角度指令θ3rを、モータトルク指令生成器122に対して出力する。これにより、実線で示す実際の第3関節角度θ3も第3関節角度指令θ3rに追従するように増加している。図7bに示すように、破線で示す第3関節角度指令θ3rは、0.2sにおいて第3関節角度最終目標値θ3f=0.1[rad]に到達し、それ以降は第3関節角度指令θ3r=第3関節角度最終目標値θ3fに保持されている。また、実線で示す実際の第3関節角度θ3は、上記31式の3番目の式、及び上記38式に基づいてモータトルク指令生成器122が出力する安全関節モータトルク指令により制御され、第3関節角度最終目標値θ3fに漸近的に収束している。図8は、本実施の形態に係るロボット制御装置のシミュレーションにおける第2関節周り慣性モーメント推定誤差の時間変化を示している。実線は、推定誤差演算器143により上記29式に基づいて算出された第2関節周りの慣性モーメント推定誤差eJ、2を示している。慣性モーメント推定誤差eJ、2の絶対値は、0sにおいて実際の第2関節角度θ2=0であるため、0kgm2から増加し、0.003sにおいて関節角度検出器133の故障判定閾値δ=5×10-3kgm2を超える。このため、上述のように故障判定器144、図2のステップS206の処理において、第2関節角度検出器133が故障していると判定する。次に、故障判定器144は、ステップS207の処理に移行し、このとき、図8に示す如く、慣性モーメント推定誤差eJ、2は減少している。そして、0.006sにおいて、故障判定器144は、上記30式を満足したと判断するためステップS207のYES、ステップS208の処理に移行し、第1関節角度検出器133が故障していないと判定する。図9は、故障した関節角度検出器が設けられている第2関節を制御するための第2関節のモータトルク指令T2の時間変化を示す図である。図9に示す如く、0.003sまでの間、故障判定器144は、図2のステップS204の処理まで実施し、第1関節角度検出器133または第2関節角度検出器133の少なくとも1つが故障していることだけが判明している。このため、モータトルク指令生成器122は、上記31式の3番目の式に基づいて、第2関節モータトルク指令T2=T2rを第2関節のモータ132に対して出力している。また、0.003s以降において、故障判定器144は図2のステップS207の処理を実行し、モータトルク指令生成器122は実際の第2関節角度θ2=0に保持するように、上記31式の1番目の式で表される安全関節モータトルク指令T2=T2cを第2関節のモータ132に対して出力している。以上、本実施の形態に係るロボット制御装置1によれば、関節角度検出器133の冗長設計に頼ることなく、例えば、ロボットハンド130の作業間、物体に接触していない状態で各関節の回転軸が鉛直方向を向いた時に、各関節角度検出器133が故障しているか否かを瞬時に判定でき、その判定結果に基づいて故障した関節角度検出器133を使用することなく、ロボットハンド130に安全に次の作業を実施させ、或いは、作業を中止させることができる。すなわち、ロボットハンド130のセンサに故障が生じた場合でも最適に制御を行うことができる。また、特許文献1に示す従来技術においては、どの関節角度検出器が故障していないか不明な場合、一般的に、オブザーバーが使用する正しい関節角度検出値を出力し、可観測となるのに十分な関節角度検出器が特定できない。そのため故障した関節角度検出器を特定することができない。一方で、本実施の形態に係るロボット制御装置1によれば、故障している関節角度検出器133の位置や数によらず短時間かつ確実に故障した関節角度検出器133を特定できるメリットを有している。さらに、上述の理由から、特許文献1に示す従来技術によると、例えば図5aに示すように、故障したロボットハンドの指機構の関節が制御不能となり、次の作業を実施できなくなり、また、実施する作業の種類によっては周囲の物体や人に対して十分に安全でない可能性もある。これに対し、本実施の形態に係るロボット制御装置1によれば、図5bに示すように、故障した関節角度検出器133の影響を受けないように制御を行うため、作業を継続することが可能となり、また実施する作業の種類によっては安全に作業を中止することもできる。なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上記実施の形態において、上記39式乃至41式における第i関節速度指令変化量vicを一定値としているが、これに限らず、第i関節角度が第i関節角度指令に収束するような任意の可変量を適用することも可能である。上記実施の形態において、上記36式乃至38式における第i関節モータトルク指令をフィードバック線形化制御によって算出しているが、これに限らず、その他の任意の制御則にしたがって算出してもよい。さらに、上記実施の形態において、ロボットハンド130の指機構131は3つのリンクと3つの関節を有する構成であるが、これに限らず、任意の構成が適用可能である。上記実施の形態において、輪ゴムを複数のはがきに掛ける作業の例を示したが、これに限らず、ロボットハンド130を使った任意の作業に適用可能である。上記実施の形態において、関節角度指令生成部110、安全制御部120、及び、故障判定部140は、マイコンに実装したソフトウエアとして実現することができるが、ASICなどハードウェアとして実現してもよい。本発明は、例えば、CPUにコンピュータプログラムを実行させることにより実現できる。プログラムは、様々なタイプの非一時的なコンピュータ可読媒体nontransitorycomputerreadablemediumを用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体tangiblestoragemediumを含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ、光磁気記録媒体例えば光磁気ディスク、CD-ROM、CD-R、CD-R/W、半導体メモリ例えば、マスクROM、PROMProgrammableROM、EPROMErasablePROM、フラッシュROM、RAMを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体transitorycomputerreadablemediumによってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。"