"アームの駆動軸を回転駆動するアクチュエータと、前記アーム先端の目標位置データを生成する生成部と、前記駆動軸の回転角度をサンプリング周期ごとに検出する第1検出部と、前記回転角度を用いて前記アーム先端の現在位置データを算出する第1算出部と、前記目標値位置データと前記現在位置データとを用いて、前記アクチュエータに対する指令値を算出する第2算出部と、前記駆動軸の回転角度を用いて前記アクチュエータを駆動する駆動トルクの推定値を算出する第3算出部と、前記駆動トルクの推定値と、前記指令値から求まる前記駆動トルクの真値との差分を算出する第4算出部と、前記アームに加わる外乱を検出する第2検出部と、を備え、前記第2検出部は、前記差分を変数とする時系列モデルのパラメータを推定し、前記パラメータを当てはめることで、第1サンプリング周期の当該時系列モデルを更新する更新部と、前記第1サンプリング周期の時系列モデルと前記第1サンプリング周期よりも過去の第2サンプリング周期の時系列モデルとを比較して、前記アームへの外乱の有無を判定する判定部と、を備えるロボット制御装置。前記外乱の検出のための閾値を記憶する記憶部を備え、前記判定部は、前記時系列モデルの前記パラメータの変化量と当該閾値を比較し、前記アームへの外乱の有無を判定する請求項1に記載のロボット制御装置。前記外乱の検出のための閾値を記憶する記憶部を備え、前記判定部は、前記時系列モデルを用いて多段の予測誤差を算出し、当該予測誤差の変化量と前記閾値を比較し、前記アームへの外乱の有無を判定する請求項1に記載のロボット制御装置。前記外乱の検出のための閾値を記憶する記憶部を備え、前記判定部は、前記時系列モデルを用いて周波数応答を算出し、前記周波数応答の変化量と前記閾値を比較し、前記アームへの外乱の有無を判定する請求項1に記載のロボット制御装置。前記生成部は、前記第2検出部が前記外乱を検出した場合に、前記アームを緊急停止または反転動作する方向に前記目標位置データを更新する請求項1乃至4いずれか1項に記載のロボット制御装置。前記アームは複数のリンクと、複数の駆動軸とを有し、前記第2検出部は、前記駆動軸ごとに前記外乱を検出し、前記外乱が検出された駆動軸を有するリンクに外乱が加わったものと推定する推定部をさらに備える請求項1乃至5いずれか1項に記載のロボット制御装置。前記駆動軸は、前記アクチュータの回転軸である第1軸と、当該第1軸の回転数を減少させる減速機を介して前記第1軸と接続する第2軸とを有し、前記第1検出部は、前記第1軸の回転角度を検出するものであって、前記第1軸の回転角度を用いて前記第2軸の回転角度をサンプリング周期ごとに算出する第5算出部を備え、前記第1算出部は、前記第2軸の回転角度を用いて前記アーム先端の現在位置データを算出し、前記第3算出部は、前記第2の回転角度を用いて前記アクチュエータを駆動する駆動トルクの推定値を算出する、請求項1乃至6いずれか1項に記載のロボット制御装置。演算処理装置における外乱判定方法であって、算出部が、対象物に加わったと推定される外力を算出するステップと、更新部が、前記外力を変数とする時系列モデルのパラメータを推定し、前記パラメータを当てはめることで、第1サンプリング周期の当該時系列モデルを更新するステップと、判定部が、前記第1サンプリング周期の時系列モデルと前記第1サンプリング周期よりも過去の第2サンプリング周期の時系列モデルとを比較して、前記対象物へ加わる外乱の有無を判定するステップと、を有する外乱判定方法。アームの駆動軸を回転駆動するアクチュエータを制御する方法であって、生成部が、前記アーム先端の目標位置データを生成するステップと、第1検出部が、前記駆動軸の回転角度をサンプリング周期ごとに検出するステップと、第1算出部が、前記回転角度を用いて前記アーム先端の現在位置データを算出するステップと、第2算出部が、前記目標値位置データと前記現在位置データとを用いて、前記アクチュエータに対する指令値を算出するステップと、第3算出部が、前記駆動軸の回転角度を用いて前記アクチュエータを駆動する駆動トルクの推定値を算出するステップと、第4算出部が、前記駆動トルクの推定値と、前記指令値から求まる前記駆動トルクの真値との差分を算出するステップと、更新部が、前記差分を変数とする時系列モデルのパラメータを推定し、前記パラメータを当てはめることで、第1サンプリング周期の当該時系列モデルを更新するステップと、判定部が、前記第1サンプリング周期の時系列モデルと前記第1サンプリング周期よりも過去の第2サンプリング周期の時系列モデルとを比較して、前記アームへの外乱の有無を判定するステップと、を有するアクチュエータ制御方法。ロボットアームに加わる外乱を高精度に検出することが可能なロボット制御装置、外乱判定方法およびロボット制御方法を提供する。実施形態のロボット制御装置は、アームの駆動軸を回転駆動するアクチュエータと、前記アーム先端の目標位置データを生成する生成部と、前記駆動軸の回転角度をサンプリング周期ごとに検出する第1検出部と、前記回転角度を用いて前記アーム先端の現在位置データを算出する第1算出部と、前記目標値位置データと前記現在位置データとを用いて、前記アクチュエータに対する指令値を算出する第2算出部と、前記駆動軸の回転角度を用いて前記アクチュエータを駆動する駆動トルクの推定値を算出する第3算出部と、前記駆動トルクの推定値と、前記指令値から求まる前記駆動トルクの真値との差分を算出する第4算出部と、前記アームに加わる外乱を検出する第2検出部とを備え、前記第2検出部は、前記差分を変数とする時系列モデルのパラメータを推定し、前記パラメータを当てはめることで、第1サンプリング周期の当該時系列モデルを更新する更新部と、前記第1サンプリング周期の時系列モデルと前記第1サンプリング周期よりも過去の第2サンプリング周期の時系列モデルとを比較して、前記アームへの外乱の有無を判定する判定部とを備える。実施形態の外乱判定方法は、算出部が、対象物に加わったと推定される外力を算出するステップと、更新部が、前記外力を変数とする時系列モデルのパラメータを推定し、前記パラメータを当てはめることで、第1サンプリング周期の当該時系列モデルを更新するステップと、判定部が、前記第1サンプリング周期の時系列モデルと前記第1サンプリング周期よりも過去の第2サンプリング周期の時系列モデルとを比較して、前記対象物へ加わる外乱の有無を判定するステップとを有する。実施形態のアクチュエータ制御方法は、生成部が、前記アーム先端の目標位置データを生成するステップと、第1検出部が、前記駆動軸の回転角度をサンプリング周期ごとに検出するステップと、第1算出部が、前記回転角度を用いて前記アーム先端の現在位置データを算出するステップと、第2算出部が、前記目標値位置データと前記現在位置データとを用いて、前記アクチュエータに対する指令値を算出するステップと、第3算出部が、前記駆動軸の回転角度を用いて前記アクチュエータを駆動する駆動トルクの推定値を算出するステップと、第4算出部が、前記駆動トルクの推定値と、前記指令値から求まる前記駆動トルクの真値との差分を算出するステップと、更新部が、前記差分を変数とする時系列モデルのパラメータを推定し、前記パラメータを当てはめることで、第1サンプリング周期の当該時系列モデルを更新するステップと、判定部が、前記第1サンプリング周期の時系列モデルと前記第1サンプリング周期よりも過去の第2サンプリング周期の時系列モデルとを比較して、前記アームへの外乱の有無を判定するステップとを有する。以下、発明を実施するための実施形態について説明する。第一の実施形態本実施形態において制御対象の一例とするロボットは、図12に示すように、本体300と、本体300に設けられるアーム310を備える。図12に示すアーム310は、3つのリンク311リンク311a,リンク311b,リンク311c、各リンク311をそれぞれ回転駆動する際の回転軸関節となる3つの駆動軸312駆動軸312a,駆動軸312b,駆動軸312cを備えている。リンク311aは、駆動軸312aを介して本体300に回転可能に接続されている。また、リンク311bは、駆動軸312bを介してリンク311aに、リンク311cは、駆動軸312cを介してリンク311bに、それぞれ回転可能に接続されている。図13に模式的に示すように、各リンク311は、駆動軸312と、各駆動軸312を回転駆動するアクチュエータであるモータ313と、モータ313の回転数を落とし、各駆動軸312の回転トルクを向上させる減速機314と、モータ313の回転軸の回転角度の変化量以下、モータ角度θMを検出する角度検出部315とを備える。なお、角度検出部315としては、例えばエンコーダ等のセンサを用いることができる。なお、図12において、本体300の内部には、このロボットを制御するためのロボット制御装置が設けられる。ロボット制御装置は、通常時にはロボットのアーム310を所定の軌道に沿ってアーム310先端リンクcの先端位置の位置制御を行う。また、ロボット制御装置は、図14に示すように例えばアーム310が障害物へ衝突するなどして、アーム310に対して外乱が加わった際には、この外乱から衝突を高精度に検出し、この検出結果を用いてアーム310先端の位置制御を行う。図1は、第一の実施形態に係るロボット制御装置の構成図である。第一の実施形態に係るロボット制御装置は、図1に示すように、中央演算処理装置CPU100、記憶装置メモリ200を備える。図1のCPU100は3つのモジュールを有する。具体的には、アーム310先端の位置を制御する位置制御部110と、各リンク311における駆動軸312のトルクの推定値を算出するトルク算出部120と、アーム310のいずれかのリンク311における障害物への衝突をアーム310全体として検出する衝突検出部130とを備える。位置制御部110は、後述の位置目標値生成部111が生成するアーム先端の3次元位置以下、アーム先端位置の目標値以下、アーム先端位置目標値xRと、角度検出部315によるモータ角度θMの検出値に基づいて得られるアーム先端位置xとの差分をゼロにする方向にモータ角度θMを角度制御する。また、モータ角度θMの角度制御により減速機314を介してリンク角度θLを角度制御する。これにより、位置制御部110は、リンク角度θLの角度制御を通じて、アーム先端位置目標値xRにアーム先端位置xを追従させる位置制御を行う。トルク算出部120は、位置制御部110からリンク角度θLを得て、アーム310の動力学モデルに基づいて、各リンク311における駆動軸312のトルクの推定値以下、トルク推定値を算出する。なお、トルク推定値は、各モータ313を駆動するのに必要と推定される駆動トルクの推定値である。衝突検出部130は、位置制御部110からリンク角度θLを、トルク算出部120からトルク推定値を得て、アーム310に加わる外乱により各リンク311に生じる外部トルクを算出する。そして、この外部トルクを用いてアーム310全体としての衝突を検出する。以下、図1および図2を参照して、それぞれのモジュールについて詳細に説明する。なお、以下のモジュールの各処理は、サンプリング周期制御周期ごとに行うものとし、サンプリングをkただし、k012...で表す。位置制御部図1に示すように、位置制御部110は、アーム先端位置目標値xRを生成する位置目標生成部111、リンク角度θLを算出する角度算出部112、アーム先端位置xを算出する位置算出部113、各モータ313に対する指令値電流値uを算出する指令値算出部114を有する。ここで、各変数モータ角度θM,リンク角度θL,アーム先端位置xには、それぞれ次のような関係がある。なお、nはアーム311の駆動軸312の数本実施形態では3を表している。また、Λは順運動学に基づく非線形関数で、リンク角度θLからアーム先端位置xを算出する座標変換を行う関数である。位置目標生成部111は、例えばメモリ200が予め記憶する、ハンドリング動作開始から終了までのアーム先端位置目標値の履歴を得て、現在時刻における値をアーム先端位置目標値xRとして生成する。指令値算出部114は、位置目標生成部111からアーム先端位置目標値xRを、後述の位置算出部113からアーム先端位置xを得て、アーム先端位置目標値xRと、角アーム先端位置xとの差分をゼロにする方向にモータ角度θMを角度制御するための指令値uを算出する。以下、図2を参照して、指令値算出部114の具体的な処理について説明する。指令値算出部114は、アーム先端位置目標値xRと、アーム先端位置xを用いて、アーム先端位置の微小変化Δxを次式により算出する。ここで、アーム先端位置の微小変化Δxとリンク角度の微小変化ΔθLの関係を与えるΛを偏微分したn×nのヤコビ行列Jを次式のように定義する。このとき、上記ヤコビ行列の逆行列である逆ヤコビ行列を用いることで、アーム先端位置の微小変化Δxとリンク角度の微小変化ΔθLには次式の関係が成り立つ。すなわち、上式により目標リンク角度の微小変化値を算出することができるので、これを積分することによって、としてリンク角度目標値θLRが得られる。そこで、指令値算出部114は、後述の角度算出部112が算出するリンク角θLを用いて逆ヤコビ行列を算出する。そして、アーム先端位置の微小変化Δxと、逆ヤコビ行列を用いてリンク角度の微小変化ΔθLを次式のように算出する。また、上記リンク角度の微小変化ΔθLを積分することで、数5によりリンク角度目標値θLRを算出する。そして、指令値算出部114は、リンク角度目標値θLRを減速比NGで除算することで、モータ角度目標値θMRを算出する。そして、モータ角度目標値θMRを入力として、公知の速度位置制御則を適用することで各モータ313を駆動するための指令値電流値uを算出する。指令値算出部114は、上記の指令値uをモータ313対して与えることで、モータ313を駆動しモータ角度θMを角度制御する。この際、角度検出部315は、この駆動によるモータ角度θMを検出する。角度算出部112は、角度検出部315が検出するモータ角度θMを用いて、次式のようにリンク角θLを算出する。位置算出部113は、メモリ200が記憶する非線形関数式Λを得て、角度算出部112が算出するリンク角θLを用いることで、次式のように現在時刻におけるアーム先端位置xを算出する。上記のように位置算出部113が算出するアーム先端位置xは、フィードバック信号として指令値算出部114に対して入力される。なお、数8に示すように、アーム先端位置xの算出にはリンク角度θLが必要となるので、角度検出部315が直接リンク角度θLを検出することもできる。また、減速機314を用いない構成も考えられる。この場合には、モータ角度θMとリンク角度θLは一致するため、角度算出部112は必ずしも必要とはならないことは明らかである。トルク算出部図1に示すように、トルク算出部120は、慣性力トルクを算出する慣性力トルク算出部121、摩擦力トルクを算出する摩擦力トルク算出部122、重力トルクを算出する重力トルク算出部123、遠心力コリオリ力トルクを算出する遠心力コリオリ力トルク算出部124、加算部125を有する。ここで、一般にロボットアームの動力学モデルは次式の運動方程式で与えられる。したがって、リンク角度θLの検出値を1回微分したリンク角速度、2回微分したリンク角加速度を求めれば、各リンクの重心位置や慣性モーメント、摩擦係数等の物理パラメータを用いて、重力、慣性力、摩擦力、遠心力コリオリ力等によるトルクの推定値を算出することができる。なお、リンク角速度は、時系列データとして得られるリンク角度θLの、それぞれ異なるサンプリング周期に得られる2つの値の差分等により算出できる1回微分。また、リンク角加速度は、それぞれ異なるサンプリング周期に得られる2つのリンク角速度の値の差分等により算出できる2回微分。慣性力トルク算出部121、摩擦力トルク算出部122、重力トルク算出部123、遠心力コリオリ力トルク算出部124は、メモリ200に予め格納されている物理パラメータ及び角度算出部112が算出するリンク角度を用いて、慣性力トルク、摩擦力トルク、重力トルク、遠心力コリオリ力トルクをそれぞれ算出する。加算部125は、次式のように各駆動軸320のトルク推定値以下では、変数にハットを付して推定値を表すを算出する。なお、本実施形態においては、慣性力トルク、摩擦力トルク、重力トルク、遠心力コリオリ力トルクについて考慮するものとしたが、遠心力コリオリ力によるトルクは他のトルクに比べて充分に小さい110程度ため、遠心力コリオリ力によるトルクに関しては考慮しないことも可能である。この場合には、加算部125は、各駆動軸320のトルク推定値を、慣性力トルク、摩擦力トルク、重力トルクの和により算出する。衝突検出部図1に示すように、衝突検出部130は、アーム310に外部から加わる外部トルクを算出する外部トルク算出部131、時系列モデルのパラメータを推定しモデルを更新するモデル更新部132、更新されるモデルを用いて衝突判定を行う衝突判定部133を有する。ここで、外部トルクτdは、トルク推定値と駆動トルクの真値との差分により次式のように与えられる。なお、上式における駆動トルクの真値は、モータ313への指令値uに、モータ313のカタログ値等により得られ、メモリ200が予め記憶するトルク定数Ktを乗算することで得られる。外部トルクは、モデル化誤差がなく、外乱等も加わっていない理想状態においては、ゼロになっているはずである。したがって、外部トルクがゼロでない場合には、アーム310には外乱が加わっていることが推定できるために、この外部トルクを衝突検出に用いることができる。しかしながら、数9の動力学モデルには、慣性モーメントや摩擦係数などの物理パラメータ等によるモデル化誤差が含まれている。また、数9の動力学モデルでは考慮されていない機械共振により生じる弾性力トルク等の影響も存在し、低速で動作しているときには衝突検出は機能するが、高速で動作しているときには、加減速に必要なトルク変動と衝突によるトルク変動の区別がつかないことがある。そこで、本実施形態においては、このようなモデル化誤差を吸収するために、数11の外部トルクを各駆動軸312において1次元の時系列信号yただし、k012...と捉えて、次式のように表されるARAutoRegressive:自己回帰モデルを当てはめる。上式のARモデルは、時系列信号yは,過去naステップ分の時系列信号の線形結合で表される。ここで,a1~anaはARパラメータであり、eは残差を表す。また、数12のARモデルは、と定義できる。ここで、ARパラメータαとは、ARモデルを特徴付けるための係数であり、残差eを最小にするARパラメータを適切に推定することで、ARモデルを算出することができる。ARパラメータαの推定値は、次式のような忘却係数λ通常097~0995の範囲から選択する付きの逐次最小2乗法を用いれば、リアルタイムに更新しながら算出することができる。ここで、εは予測誤差、kαはゲイン、Pは共分散行列をそれぞれ表している。外部トルク算出部131は、トルク算出部120が算出するトルク推定値と、指令値算出部114が算出する指令値uにトルク定数Ktを乗算することで得られる駆動トルクを用いて、次式のように外部トルクを算出する。この外部トルクは、アーム310に対して外から加わったと推定される外力と見なすことができる。モデル更新部132は、外部トルク算出部131が算出する外部トルクを変数として、数12で表されるARモデルに当てはめる。そして、数14のように、逐次最小二乗法を用いて全てのARパラメータの推定値を逐次推定することで、ARモデルを更新する。衝突判定部133は、詳細は後述するようにモデル更新部132により逐次更新されるARモデルに基づいて、アーム310の衝突の有無を判定する。以下、図3乃至図8を参照して衝突判定部133の動作について説明する。実施例1衝突判定部133が衝突を判定するための第1の方法として、逐次推定しているARパラメータの時間変化を用いる方法を説明する。図3aは、アーム310を衝突させた時の外部トルクとモータ角速度の時間応答の一例であり、図3bは、逐次更新されるARモデルのパラメータの時間応答の一例である。ここでは、5次のARモデルを用いており、ARパラメータは5本表示されている。図中の凡例のa~aは、それぞれa1~a5を示している。図3bでは、116s前後で衝突が起こっているが、ARパラメータのうち、最低次であるa1の変化が顕著であり、次にa3の変化が大きい。それに対して、図3aに示した外部トルクがゆっくりした変化であるので、衝突検出を目的とした場合、ARパラメータの変化を検出する方法の優位性は明らかである。ここで、衝突が起こってもモータ角速度がすぐにゼロにならないのは、関節軸がたわんでいることを示している。衝突判定部133は、図3において最も変化の大きい最低次のARパラメータa1の変化量を、現在のサンプリング周期kにおけるパラメータの推定値と、一つ前のサンプリング周期k1におけるパラメータの推定値の差分により算出する。そして、いずれかの駆動軸312において、最低次のARパラメータの変化量の絶対値が、メモリ200に格納されている既定の閾値例えば01を超える場合に、アーム310が衝突したものと判定する。なお、逐次最小2乗法において、忘却係数λを調整することによって、ARパラメータの変化の度合いを調整することができる。忘却係数をロボットの動作加速度が小さいときには099など値を大きくしておき、加速度が大きいときには098など値を小さくするなど、忘却係数を可変にすることも衝突判定の精度を上げることに有効である。また、本実施形態のように最低次のARパラメータを用いるのではなく、他のARパラメータを用いることで衝突を判定することも可能である。実施例2衝突判定部132が衝突を判定するための第2の方法として、多段予測を用いた予測誤差の時間変化を用いる方法を説明する。数12のARモデルにおいて、ARパラメータを逐次推定しながら、イタレーションkを進めればディジタル処理に起因するサンプル時間遅れを取り戻せる上、多段の予測をすることができる。まず、1段先予測値は、で与えられ、2段先予測値、3段先予測値は、それぞれ、で与えられる。よって、1段先予測誤差は、で与えられ、2段先予測誤差、3段先予測誤差は、それぞれ、で与えられる。図4は、外部トルクと1,2,3段先予測誤差の各時間応答を比較したものである。同図から、1段先予測値は、外部トルクからやや遅れていることがわかる。一方、2段先予測値はやや進んでおり、3段先予測値は明らかに進んでいる。また、図5は、1段先予測誤差の時間変化から衝突を検出している様子を示している。同じく図6は2段先予測誤差、図7は3段先予測誤差の場合である。図5,6,7を比較すると、それぞれ衝突検出が可能であるが、図6の予測誤差の時間応答の波形のレンジが比較的小さく、閾値の設定が容易である。したがって、以上からアーム310の衝突検出には2段先予測誤差を用いることが好ましい。衝突判定部133は、数19のように誤差e2を算出する。そして、誤差e2の変化量を、現在のサンプリング周期kにおける誤差と、一つ前のサンプリング周期k1における誤差の差分により算出する。そして、上記の誤差の変化量の絶対値が既定の閾値を超える場合に、アーム310が衝突したものと判定する。実施例3衝突判定部133が衝突を検出するための第3の方法として、ARモデルから計算できる周波数応答の時間変化を用いる方法を説明する。数12のARモデルをZ変換すると、ここで、ARモデルの伝達関数H1Aの周波数応答は、数20に次式を代入することで求めることができる。なお、数20および数21において、zはZ変換を表す演算子、ωは周波数、jは虚数単位をそれぞれ表している。図8は、ARモデルから計算できる周波数応答が衝突前後で変化することを用いて衝突を検出する様子を示したものである。前述のように衝突によって摩擦係数や慣性モーメントが変化したと考えることで、周波数応答の変化からも衝突検出ができることは明らかである。図8では、一点鎖線Bよりも高周波側の領域において、数9の動力学モデルでは考慮していない機械共振特性が検出されており、衝突検出しづらくなっている。そこで、あらかじめ衝突時に変化の大きい周波数領域を調べておき、例えば、図8の一点鎖線AとBの間の周波数領域でのゲインの差をサンプリング周期ごとに積分するなど、ウィンドウ処理をすることで衝突検出のための閾値の設定を容易にすることができる。衝突判定部132は、各サンプリング周期において周波数応答を算出する。そして、既定のウィンドウの範囲内で、現在のサンプリング周期kにおけるゲインと、一つ前のサンプリング周期k1におけるゲインの差分を周波数ごとに算出し、ゲインの差分を周波数で積分することで、図8中の面積Cに相当する積分値を算出する。そして、上記の積分値の絶対値が既定の閾値を超える場合に、アーム310が衝突したものと判定する。なお、本実施例では、ARパラメータ5個を全て用いて周波数応答を計算しているので、実施例1のようにARパラメータ個々の時間変化で衝突を検出する方法よりも計算量は増加するが、よりロバストな衝突検出を行うことができる。以上、実施例1乃至実施例3として、3通りの衝突判定の方法について説明した。この3通りの衝突判定方法は各々適用することも可能であるが、3つ同時に適用し、多数決をとることで、各リンク311におけるより正確な衝突判定が可能となる。なお、位置制御部110の位置目標生成部111は、衝突判定部132がアーム310の衝突を判定した際には、アーム先端位置目標値を新たに生成する。具体的には、衝突を検出した場合は、アーム310を緊急停止するためのアーム先端位置目標値を新たに生成する。また、衝突後のさらなる動作指令が必要な場合には、例えば、反転動作が必要な場合については、衝突した方向とは逆方向に動作させるようなアーム先端位置目標値を生成することができる。なお、本実施形態では、時系列モデルとしてARモデルを用いたが、ARモデルに限定されることなく、各サンプリング周期における時系列信号がパラメータを用いて関係付けられる時系列モデルであればよい。また、パラメータの推定に関しても、逐次最小2乗法に限定されるものではない。また、本実施形態では、リンクが回転軸関節を中心に回転するアームを例に説明を行ったが、並進移動するような対象に対しては、例えばリンク角度の代わりに対象の変位を用いることで、同様の方法により対象に加わる外乱を検出することができる。第一の変形例以下、図9を参照して、第一の実施形態のロボット制御装置の第一の変形例について説明する。なお、図1と同様の構成については同様の符号を付すことで、その詳細な説明を省略する。図9は第一の変形例に係るロボット制御装置に用いるCPU100のシステム構成図である。本変形例では、トルク算出部120は、数9よりも詳細なアーム310の動力学モデルに基づいて、各駆動軸312のトルク推定値を算出する。数9は、剛体関節モデルを用いているが、減速機314を低剛性のバネ要素と見なす弾性関節モデルを代わりに用いれば、動力学モデルに加減速時の機械共振を反映させることができ、加減速によるトルク変動と衝突によるトルク変動の判別の分解能を向上させることができる。剛体関節モデルに基づく数9に相当する、弾性関節モデルに基づく動力学モデルを与える運動方程式は次式となる。剛体関節モデルでは、モータ角度θMを減速比倍することでリンク角度θLを算出することができたが、弾性関節モデルでは、数22の動力学モデルを考慮してθMからθLを推定しなければならない。したがってθMからθLを推定しながら、トルク推定値を算出する必要がある。これには、数22を、として角加速度を求めるように変形する。数23にθMと矛盾しないθLの初期値を与えておき、実際に検出できるθMを代入して積分することを逐次繰り返すことによりθLの推定値を得ることができる。図9のトルク算出部120は、リンク角度の推定値を逐次算出するリンク角度算出部127、慣性力トルクを算出する慣性力トルク算出部121、摩擦力トルクを算出する摩擦力トルク算出部122、重力トルクを算出する重力トルク算出部123、遠心力コリオリ力トルクを算出する遠心力コリオリ力トルク算出部124、弾性力トルク算出部126、加算部125を有する。以下、CPU100の動作を説明する図10を参照して、トルク算出部120の動作について詳細に説明する。リンク角度算出部127は、メモリ200に予め格納されているリンク角度の初期値と角度検出部315が検出するモータ角度θMを用いて、次式の微分方程式を解くことでリンク角度の推定値を算出する。慣性力トルク算出部121、摩擦力トルク算出部122、重力トルク算出部123、遠心力コリオリ力トルク算出部124は、メモリ200に予め格納されている物理パラメータ及びリンク角度算出部127が算出するリンク角度の推定値を用いて、それぞれ慣性力トルク、摩擦力トルク、重力トルク、遠心力コリオリ力トルクを算出する。また、弾性力トルク算出部126は、次式のように弾性力トルクを算出する。加算部125は、慣性力トルク、摩擦力トルク、重力トルク、遠心力コリオリ力トルク、弾性力トルクを用いて次式のように各駆動軸320のトルク推定値を算出する。なお、減速機314のバネ要素によるねじれは微小であるので、順運動学やヤコビ行列の算出に必要なリンク角度については、第一の実施形態と同様に角度算出部112が算出する値を用いることができる。第二の変形例以下、図11を参照して、第一の実施形態のロボット制御装置の第二の変形例について説明する。なお、図1と同様の構成については同様の符号を付すことで、その詳細な説明を省略する。図11は第一の変形例に係るロボット制御装置に用いるCPU100のシステム構成図である。本変形例では、図1に示す構成に加え、アーム310の各リンク311のどこで衝突が生じたかを推定する衝突部位推定部140をさらに有する。衝突部位推定部140は、衝突検出部130がアーム310の各駆動軸312においてそれぞれ衝突検出を行い、衝突を検出した駆動軸312を備えるリンク311において衝突が生じたものと推定する。以上説明した少なくとも1つの本実施形態のロボット制御装置によれば、ロボットアームに加わる外乱を高精度に検出することが可能となる。これら実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、様々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。"