"ハンドとアームとの間に介挿されている力センサーと、前記力センサーが出力する検出値に対する重力の影響をモデル化した定数を有するモデル式を記憶する記憶部と、前記ハンドの姿勢を変化させた場合の前記力センサーが出力する検出値を用いて、前記モデル式の定数の値を算出する変数算出部と、前記変数算出部が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正する補正部と、を備えることを特徴とするロボット。前記変数算出部は、前記力センサーが出力する検出値と、前記ハンドの姿勢を変化させた場合の前記モデル式における算出値との2乗誤差の総和を算出し、前記2乗誤差の総和が予め定められているしきい値より小さい場合の定数の値を算出し、前記算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出することを特徴とする請求項1に記載のロボット。前記変数算出部は、前記ハンドの姿勢を変化させた場合、前記力センサーが出力する検出値と前記各姿勢の前記モデル式における算出値との2乗誤差を算出し、前記2乗誤差が予め定められているしきい値より小さい場合の定数の値を算出し、前記算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出することを特徴とする請求項1または請求項2に記載のロボット。前記モデル式は、前記力センサーが出力する検出値の力成分を、3次元空間上で前記ハンドの姿勢を表す3変数及び該3変数の三角関数で構成される高々3次式で表わすことを特徴とする請求項1から請求項3のいずれか1項に記載のロボット。前記モデル式は、前記力センサーが出力する検出値のトルク成分を、3次元空間上で前記ハンドの姿勢を表す3変数及び該3変数の三角関数で構成される高々3次式で表わすことを特徴とする請求項1から請求項4のいずれか1項に記載のロボット。前記ハンドにより対象物が把持されている状態である把持状態の変化を判別する把持状態判別部と、を備え、前記変数算出部は、前記把持状態判別部により前記ハンドの把持状態が変化したと判別された場合、前記モデル式の定数の値を算出し、前記補正部は、前記変数算出部が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正することを特徴とする請求項1から請求項5のいずれか1項に記載のロボット。前記把持状態判別部は、前記ハンドが把持する対象物の姿勢状態が変化したか否か、または、前記ハンドが把持する対象物が変化したか否かにより把持状態の変化を判別することを特徴とする請求項6に記載のロボット。前記ハンドを含む画像を撮像する撮像装置と、モデル式の定数を記憶する記憶部と、を備え、前記変数算出部は、予め前記ハンドの把持状態毎の前記モデル式の定数の値を算出し、前記算出したモデル式の定数を前記把持状態判別部が判別した把持状態と関連付けて前記記憶部に記憶させ、前記把持状態判別部により前記ハンドの把持状態が変化したと判別された場合、把持状態が変化したと判別された場合の前記把持状態と関連付けられて記憶されている前記モデル式の定数を前記記憶部から読み出し、前記補正部は、前記変数算出部が読み出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正することを特徴とする請求項6または請求項7に記載のロボット。前記ハンドの動作を制御する制御部を備え、前記把持状態判別部は、前記ハンドの把持状態が変化したか否かを、前記撮像装置が撮像した画像データ、前記力センサーが出力する検出値、前記制御部による前記ハンドへの制御指示の少なくとも1つを用いて判別することを特徴とする請求項6から請求項8のいずれか1項に記載のロボット。前記モデル式は、前記ロボットが、地表面に対して垂直に設置されている場合、前記ハンドの姿勢を表す3変数の内、地表面に対して垂直な軸に関する回転に相当するものを除く2変及び該2変数の三角関数で構成される高々2次式で表わすことを特徴とする請求項1から請求項9のいずれか1項に記載のロボット。前記しきい値は、前記ロボットを制御するに当たって許容される前記力センサーが出力する検出値に対する誤差の最大値を2乗した値に、前記2乗誤差の総和を算出するために用いたデータ数を乗じた値より小さい値であることを特徴とする請求項2に記載のロボット。前記アームは6軸であり、前記6軸のアームの一方端がベースに連結され、前記6軸のアームの他方端と前記ハンドの間に前記力センサーが介挿されていることを特徴とする請求項1から請求項10のいずれか1項に記載のロボット。前記アームは7軸であり、前記6軸のアームの一方端がベースに連結され、前記7軸のアームの他方端と前記ハンドの間に前記力センサーが介挿されていることを特徴とする請求項1から請求項10のいずれか1項に記載のロボット。ハンドとアームとの間に介挿されている力センサーに対して入力される重力の影響をモデル化した定数を有するモデル式を記憶する記憶部と、前記力センサーが出力する検出値を用いて、前記モデル式の定数の値を算出する変数算出部と、前記変数算出部が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正するとで、前記力センサーの検出値を補正する補正部と、前記補正部が補正した前記力センサーの検出値を用いて、前記アーム及び前記ハンドの動作を制御するアーム制御部と、を備えることを特徴とするロボット制御装置。ハンドとアームとの間に介挿されている力センサーを有するロボットを制御するロボット制御装置のロボット制御方法であって、変数算出部が、前記力センサーが出力する検出値を用いて、記憶部に記憶されている前記力センサーに対して入力される重力の影響をモデル化した定数を有するモデル式の定数の値を算出する変数算出工程と、補正部が、前記変数算出工程が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正する補正工程と、アーム制御部が、前記補正部が補正した前記力センサーの検出値を用いて、前記アーム及び前記ハンドの動作を制御するアーム制御工程と、を含むことを特徴とするロボット制御方法。ハンドとアームとの間に介挿されている力センサーを有するロボットを制御するロボット制御の処理をコンピューターに実行させるためのプログラムであり、前記力センサーが出力する検出値を用いて、記憶部に記憶されている前記力センサーに対して入力される重力の影響をモデル化した定数を有するモデル式の定数の値を算出する変数算出手順と、前記変数算出手段が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正する補正手順と、前記補正手順が補正した前記力センサーの検出値を用いて、前記アーム及び前記ハンドの動作を制御するアーム制御手順と、をコンピューターに実行させるためのプログラム。しかしながら、特許文献1には、ロボットの姿勢と指部の質量を用いて、重力補償値を算出する具体的な方法が記載されていない。このため、ロボットの姿勢ごとのハンドに加わる重力の影響を適切に補正できないという課題があった。また、特許文献2に記載の発明では、力センサーとその質点が完全な剛体で接続されているものとして算出している。このため、有限の大きさをもつハンドが少なからず弾性のある物体で力センサーと接続されている実際のロボット装置に特許文献2に記載の発明を適用すると、力センサーの検出値に誤差が生じてしまう。従って、特許文献2に記載の発明では、ロボットの姿勢ごとのハンドに加わる重力の影響を適切に補正できないという課題があった。また、特許文献3に記載の発明では、ハンドに加わる重力の影響を、ハンドを質点と見なし、力センサーとその質点が完全な剛体で接続されているものとしてモデル化している。このため、特許文献2に記載の発明と同様に、有限の大きさをもつハンドが少なからず弾性のある物体で力センサーと接続されている実際のロボット装置に特許文献3に記載の発明を適用すると、力センサーの検出値に誤差が生じてしまう。従って、ハンドが対象物に対して加えている力を正しく検出することが出来ず、ハンドに加わる重力の影響を適正に補正することが困難であるという課題があった。本発明は、上記の問題点に鑑みてなされたものであって、ロボットの姿勢ごとのハンドに加わる重力の影響を適切に補正するロボット、ロボット制御装置、ロボット制御方法、およびプログラムを提供することを目的としている。上記目的を達成するため、本発明のロボットは、ハンドとアームとの間に介挿されている力センサーと、前記力センサーが出力する検出値に対する重力の影響をモデル化した定数を有するモデル式を記憶する記憶部と、前記ハンドの姿勢を変化させた場合の前記力センサーが出力する検出値を用いて、前記モデル式の定数の値を算出する変数算出部と、前記変数算出部が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正する補正部と、を備えることを特徴としている。本発明によれば、ロボットのハンドの姿勢が変化した場合でも、ハンドの姿勢を変化さえて算出した定数を代入した力センサーの検出値への重力の影響のモデル式を用いて、力センサーの検出値を補正するため、ハンドの姿勢が変化した場合でもロボットのハンドに加わる重力の影響を適切に補正することができる。また、本発明のロボットにおいて、前記変数算出部は、前記力センサーが出力する検出値と、前記ハンドの姿勢を変化させた場合の前記モデル式における算出値との2乗誤差の総和を算出し、前記2乗誤差の総和が予め定められているしきい値より小さい場合の定数の値を算出し、前記算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出するようにしてもよい。また、本発明のロボットにおいて、前記変数算出部は、前記ハンドの姿勢を変化させた場合、前記力センサーが出力する検出値と前記各姿勢の前記モデル式における算出値との2乗誤差を算出し、前記2乗誤差が予め定められているしきい値より小さい場合の定数の値を算出し、前記算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出するようにしてもよい。本発明によれば、ハンドの姿勢に応じて算出したモデルの定数を、力センサーの実測値とモデル式による算出値との2乗誤差により、モデル式の定数を算出するようにしたので、モデル誤差の演算量が少なくて済み、この算出されたモデル式の定数を用いて力センサーの検出値を補正することで、ハンドの姿勢が変化した場合でもロボットのハンドに加わる重力の影響を精度良く補正することができる。また、本発明のロボットにおいて、前記モデル式は、前記力センサーが出力する検出値の力成分を、3次元空間上で前記ハンドの姿勢を表す3変数及び該3変数の三角関数で構成される高々3次式で表すようにしてもよい。また、本発明のロボットにおいて、前記モデル式は、前記力センサーが出力する検出値のトルク成分を、3次元空間上で前記ハンドの姿勢を表す3変数及び該3変数の三角関数で構成される高々3次式で表わすようにしてもよい。本発明によれば、ハンドに加わる重力の影響を、力センサーの力成分またはトルク成分の少なくとも1つの成分についてハンドの姿勢を表す3変数とそれらの三角関数の高々3次式で表した。この結果、ハンドを構成する部材や、その構造を考慮する必要がなく、最小2乗法を用いた一般的な計算でモデル式の各定数を算出することができる。このため、有限要素法を用いた数値計算などのように経験的に習得する知見は必要なく、簡便に、更には高い精度で測定値をモデル式で再現することができる。また、本発明のロボットにおいて、前記ハンドにより対象物が把持されている状態である把持状態の変化を判別する把持状態判別部と、を備え、前記変数算出部は、前記把持状態判別部により前記ハンドの把持状態が変化したと判別された場合、前記モデル式の定数の値を算出し、前記補正部は、前記変数算出部が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正するようにしてもよい。また、本発明のロボットにおいて、前記把持状態判別部は、前記ハンドが把持する対象物の姿勢状態が変化したか否か、または、前記ハンドが把持する対象物が変化したか否かにより把持状態の変化を判別するようにしてもよい。本発明によれば、把持状態判別部が、ハンドの把持状態が変化したか否かを判別し、ハンドの把持状態が変化した場合に変数算出部がモデル式の定数を算出するようにした。なお、ハンドの把持状態とは、ハンドが対象物を把持しているか否か、ハンドが把持する対象物の大きさや質量が変化したか否か、ハンドが把持している対象物が把持する対象物の質量の中心点が変化したか否かなどである。この結果、ロボットが作業中に、ハンドが把持する対象物に応じて、力センサーの検出値を算出したモデル式の定数を用いて補正できるので、ハンドの把持状態が変化した場合でもロボットのハンドに加わる重力の影響を精度良く補正することができる。また、本発明のロボットにおいて、前記ハンドを含む画像を撮像する撮像装置と、モデル式の定数を記憶する記憶部と、を備え、前記変数算出部は、予め前記ハンドの把持状態毎の前記モデル式の定数の値を算出し、前記算出したモデル式の定数を前記把持状態判別部が判別した把持状態と関連付けて前記記憶部に記憶させ、前記把持状態判別部により前記ハンドの把持状態が変化したと判別された場合、把持状態が変化したと判別された場合の前記把持状態と関連付けられて記憶されている前記モデル式の定数を前記記憶部から読み出し、前記補正部は、前記変数算出部が読み出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正するようにしてもよい。本発明によれば、予めモデル式の定数を算出して記憶部に記憶させ、把持状態判別部によりハンドの把持状態が変化したと判別された場合に、記憶されているモデル式の定数を読み出して補正するようにした。この結果、ロボットの作業中に随時、モデル式の定数を算出する場合より、ロボット作業中の演算量を削減することができる。また、本発明のロボットにおいて、前記モデル式は、前記ロボットが、地表面に対して垂直に設置されている場合、前記ハンドの姿勢を表す3変数の内、地表面に対して垂直な軸に関する回転に相当するものを除く2変数及び該2変数の三角関数で構成される高々2次式で表わすようにしてもよい。本発明によれば、ロボットが地表面に対して垂直に設置されている場合、モデル式をハンドの姿勢の2変数とそれらのの三角関数による高々2次式で表したため、モデル式の変数が3姿勢の場合の高々3次式に比べて削減できるので、定数の値を算出する演算コストを削減できる。また、定数の値を算出するために必要な、対象物をハンドが把持していないときに力センサーが出力する検出値も、3姿勢の場合より少なくできる。また、ハンドを構成する部材や、その構造を考慮する必要がなく、最小2乗法を用いた一般的な計算でモデル式の各定数を算出することができる。このため、有限要素法を用いた数値計算などのように経験的に習得する知見は必要なく、簡便に、更には高い精度で測定値をモデル式で再現することができる。また、本発明のロボットにおいて、前記しきい値は、前記ロボットを制御するに当たって許容される前記力センサーが出力する検出値に対する誤差の最大値を2乗した値に、前記2乗誤差の総和を算出するために用いたデータ数を乗じた値より小さい値であるようにしてもよい。また、本発明のロボットにおいて、前記アームは6軸であり、前記6軸のアームの一方端がベースに連結され、前記6軸のアームの他方端と前記ハンドの間に前記力センサーが介挿されているようにしてもよい。また、本発明のロボットにおいて、前記アームは7軸であり、前記7軸のアームの一方端がベースに連結され、前記7軸のアームの他方端と前記ハンドの間に前記力センサーが介挿されているようにしてもよい。上記目的を達成するため、本発明のロボット制御装置は、ハンドとアームとの間に介挿されている力センサーに対して入力される重力の影響をモデル化した定数を有するモデル式を記憶する記憶部と、前記力センサーが出力する検出値を用いて、前記モデル式の定数の値を算出する変数算出部と、前記変数算出部が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正するとで、前記力センサーの検出値を補正する補正部と、前記補正部が補正した前記力センサーの検出値を用いて、前記アーム及び前記ハンドの動作を制御するアーム制御部と、を備えることを特徴としている。上記目的を達成するため、本発明は、ハンドとアームとの間に介挿されている力センサーを有するロボットを制御するロボット制御装置のロボット制御方法であって、変数算出部が、前記力センサーが出力する検出値を用いて、記憶部に記憶されている前記力センサーに対して入力される重力の影響をモデル化した定数を有するモデル式の定数の値を算出する変数算出工程と、補正部が、前記変数算出工程が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正する補正工程と、アーム制御部が、前記補正部が補正した前記力センサーの検出値を用いて、前記アーム及び前記ハンドの動作を制御するアーム制御工程と、を含むことを特徴としている。上記目的を達成するため、本発明は、ハンドとアームとの間に介挿されている力センサーを有するロボットを制御するロボット制御の処理をコンピューターに実行させるためのプログラムであり、前記力センサーが出力する検出値を用いて、記憶部に記憶されている前記力センサーに対して入力される重力の影響をモデル化した定数を有するモデル式の定数の値を算出する変数算出手順と、前記変数算出手段が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正する補正手順と、前記補正手順が補正した前記力センサーの検出値を用いて、前記アーム及び前記ハンドの動作を制御するアーム制御手順と、をコンピューターに実行させる。本発明によれば、ロボットのハンドの姿勢が変化した場合でも、ハンドの姿勢を変化さえて算出した定数を代入した力センサーの検出値への重力の影響のモデル式を用いて、力センサーの検出値を補正するため、ハンドの姿勢が変化した場合でもロボットのハンドに加わる重力の影響を適切に補正することができる。ロボット制御装置、ロボット制御方法、およびプログラムを提供できる。以下、本発明の実施形態について図面を参照して詳細に説明する。なお、本発明はかかる実施形態に限定されず、その技術思想の範囲内で種々の変更が可能である。また、以下の図面においては、各構成をわかりやすくするために、実際の構造と各構造における縮尺や数等が異なっている。[第1実施形態]図1は、本実施形態に係るロボット1の概略構成を示す斜視図である。図1に示すように、ロボット1は、1本のアーム2、固定部10、力センサー30、及びハンド40を備える。また、ロボット1は、制御装置100の制御により動作する。また、対象物70は、ステージ72の上面に配置されている。また、ハンド40による物体の把持状態を撮像する撮像装置50が、ステージ72の上面に配置されている。固定部10は、例えば床、壁、天井、移動可能な台車の上などに固定される。制御装置100は、アーム2、及びハンド40を制御する。制御装置100の詳細は後述する。なお、制御装置100は、固定部10の外部ではなく、固定部10の内部に設けるようにしてもよい。アーム2は、第1フレーム21、第2フレーム22、第3フレーム23、第4フレーム24および第5フレーム25から構成されている。第1フレーム21は、回転屈折軸を介して、固定部10に回転可能または屈折可能に接続されている。第2フレーム22は、回転屈折軸を介して、第1フレーム21および第3フレーム23に接続されている。第3フレーム23は、回転屈折軸を介して、第2フレーム22および第4フレーム24に接続されている。第4フレーム24は、回転屈折軸を介して、第3フレーム23および第5フレーム25に接続されている。第5フレーム25の一方端は、回転屈折軸を介して、第4フレーム24に接続されている。アーム2は、制御装置100の制御によって、各フレーム21~25が各回転屈折軸を中心に複合的に回転または屈折し、動く。アーム2の第5フレーム25の他方端には、ハンド40が設けられている。ハンド40は、直接的に、対象物を把持する。なお、ハンド40は、例えば、複数のフレームを有し、対象物を把持できる構造である。アーム2の第5フレーム25とハンド40の間には、力センサー30が介挿されている。力センサー30は、ハンド40に加わる力の各空間成分力成分というとトルクの各空間成分トルク成分というを検出する。力センサー30は、検出したハンド40に加わる力成分とトルク成分を含む情報を制御装置100に出力する。制御装置100は、撮像装置50が撮像した画像データに基づき、ロボット1のアーム2、ハンド40を制御し、例えば、ステージ上の対象物70を把持して、予め定められた位置へ移動させる。また、制御装置100は、アーム2の姿勢α、β、γの場合の力センサー30が出力するハンド40に加わる力成分とトルク成分を含む情報と、制御装置100の記憶部に記憶されているモデル式を用いて、モデル式の各定数の値を算出する。また、制御装置100は、算出した各定数を記憶されているモデル式に組み込んで、センサー値の補正値を算出する。また、制御装置100は、算出した補正値を、力センサー30が検出した検出値から差し引くことで、力センサー30の検出値を補正する。撮像装置50は、ステージ72の上面に配置されている。撮像装置50は、例えばCCDChargeCoupledDeviceカメラである。撮像装置50は、対象物72を撮影し、撮影したアナログ値の画像データを制御装置100に出力する。なお、撮像装置50は、ロボット1のアーム2に取り付けるようにしてもよい。図2は、本実施形態に係るアーム2と力センサー30の概念図である。図2に示すように、アーム2は、回転部82、83及び85と、屈折部81、84及び86とを有している。そして、アーム2は、ハンド40との間に力センサー30を有している。屈折部81は、固定部10と第1フレーム21との間に設けられている。回転部82は、第1フレーム21と第2フレーム22との間に設けられている。回転部83は、第2フレーム22と第3フレーム23との間に設けられている。屈折部84は、第3フレーム23と第4フレーム24との間に設けられている。回転部85は、第4フレーム24と第5フレーム25との間に設けられている。屈折部86は、第5フレーム25のうち第4フレーム24が設けられた他方に設けられている。図2に示すように、アーム2は、6自由度を有する6軸アームである。すなわち、アーム2の先端のハンド40は、これらの各軸の回転部と屈折部の動作により、移動する。このように、アーム2が6軸アームであるため、互いに独立な6つの変数で制御することが可能であり、例えば、位置x、y、zの3つの変数成分、姿勢α、β、γの3つの成分変数に対応して制御することができる。図3は、本実施形態に係る制御装置100のブロック図である。図3に示すように、制御装置100は、アーム制御部101、駆動部102、センサー出力取得部103、記憶部104、姿勢算出部105、変数算出部106、センサー値補正部107、画像取得部108、画像記憶部109、把持状態判別部110、および制御部111を備えている。制御部111は、変数取得モードを示す情報、または、アーム制御モードを示す情報を生成し、生成した変数取得モードを示す情報、または、アーム制御モードを示す情報をアーム制御部101、把持状態判別部110に出力する。画像取得部108は、撮像装置50が出力する画像データを取得し、取得した画像データをデジタルデータに変換する。例えば、撮像装置50の撮影タイミングが30fpsフレーム/秒の場合、画像取得部108は、撮像装置60が撮像した画像を33[msec]毎に取得する。画像取得部108は、変換した画像データをフレーム番号と関連付けて画像記憶部109に記憶させる。なお、撮像装置50が出力する画像データがデジタル信号の場合、画像取得部108は、取得した画像データを、変換せずにそのまま画像記憶部109に記憶させる。把持状態判別部110は、画像記憶部109に記憶されている現在の画像データ、センサー出力取得部103が取得した力センサー30の検出値、制御部111が出力する現在の動作のうち、少なくとも1つを用いて、現在のハンドの把持状態を判別し、判別結果を変数算出部106に出力する。なお、ハンドの把持状態とは、ハンドが対象物を把持しているか否か、ハンドが把持する対象物の大きさや質量が変化したか否か、ハンドが把持している対象物が把持する対象物の質量の中心点が変化したか否かなどである。図4は、本実施形態に係るハンド40による把持状態を説明する図である。図4aは、対象物70の質量重心が、破線201の位置に把持されている状態を説明する図であり、図4bは、対象物70の質量重心が、破線201からy軸の負方向に距離Lだけずれ破線202の位置に把持されている状態を説明する図である。例えば、図4aが1フレーム前における画像データであり、図4bが最新のフレームの画像データである。把持状態判別部110は、例えば、このような図4aの画像データと、図4bの画像データとを比較して、対象物70の把持状態が変化しているか否かを判別する。アーム制御部101は、アーム2、ハンド40を制御する駆動信号を生成し、生成した駆動信号を駆動部102に出力する。また、アーム制御部101は、制御部111が出力する情報が変数取得モードを示す情報の場合、ハンド40の重力による影響分を算出するため、後述するようにハンド40の姿勢α、β、γの3つの成分α、β、及びγを順次、変化させる。また、アーム制御部101は、センサー値補正部101が出力する補正された力センサー30の出力値を用いてアーム2の制御を行う。駆動部102は、アーム制御部101が出力する駆動信号に応じて、ロボット1のアーム2を駆動する。センサー出力取得部103は、力センサー30が出力するハンド40に加わる力成分とトルク成分を含む情報を取得し、取得した力成分とトルク成分を示す情報を変数算出部106、センサー値補正部107、把持状態判別部110、及び制御部111に出力する。記憶部104には、ハンド40の姿勢α、β、γの3つの成分α、β、及びγと力センサー30の出力と画像データとが関連付けられて記憶されている。なお、これらの値は、例えば、制御部100の利用者が、予め行うフィッティングにより取得して記憶させておく。また、関連付けられて記憶されている画像データは、例えば、ハンド40が対象物70を把持していない状態、ハンド40が対象物70を把持している状態である。また、ハンド40が対象物70を把持している状態の画像データは、対象物70の大きさや、質量の中心位置が異なる状態を、記憶部104に予め記録させておくようにしてもよい。そして、把持状態毎に、モデル式におけるfx、fy、fzの各定数を関連付けて、記憶部104に予め記憶させておく。図5は、記憶部104が記憶するハンド40の姿勢α、β、γの3つの成分α、β、及びγと力センサー30の出力の一例を示す図である。図5に示すように、記憶部104には、例えば、姿勢α、β、γの3つの成分α1、β1、γ1の場合の力センサー30の出力値f111が関連づけられて記憶されている。また、記憶部104には、後述する力センサー30の出力値のモデル式が記憶されている。図6は、記憶部104が記憶する把持状態とモデル式におけるfx、fy、fzの各定数の一例を示す図である。なお、モデル式とは、後述するように、力センサー30の出力ベクトルをモデル化した式である。図6に示すように、記憶部104には、番号と姿勢と定数値が関連づけられて記憶されている。番号は識別子であり、把持状態は、把持状態判別部110が判別した結果である。変数値は、算出されたモデル式におけるfx、fy、fzの各定数である。例えば、把持状態1は、ハンド40が対象物70を把持していない状態の状態番号である。そして、この把持状態1と関連づけられて記憶されているモデル式におけるfx、fy、fzの各変数は、ハンド40が対象物70を把持していない場合に変数算出部106が算出したモデル式におけるfx、fy、fzの各定数である。例えば、把持状態2は、ハンド40が対象物70を把持している状態の状態番号である。そして、この把持状態2と関連づけられて記憶されているモデル式におけるfx、fy、fzの各変数は、ハンド40が対象物70を把持している場合に変数算出部106が算出したモデル式におけるfx、fy、fzの各定数である。姿勢算出部105は、エンコーダー90が出力する現在のハンド40の姿勢α、β、γを取得し、取得した現在のハンド40の姿勢α、β、γを変数算出部106とセンサー値補正部107に出力する。変数算出部106は、モデル式におけるfx、fy、fzの各定数を、変数取得モードでは算出し、アーム制御モードでは記憶部104から読み出して、センサー値補正部107に出力する。変数取得モード測定変数算出部106は、変数取得モードの場合、制御部111がハンド40の姿勢を変化させるのに合わせて、ハンド40の姿勢毎に、センサー出力取得部103が取得した力センサー30の検出値力成分とトルク成分と、姿勢取得部106が取得したハンドの姿勢を記憶部104に一時的に記憶させる。フィッティング全てのハンド40の姿勢の変化が完了した後、変数算出部106は、任意の姿勢における力センサー30の出力を模したモデル式が、記憶部104に一次記憶したハンド40の姿勢と、それに対応する力センサー30の検出値を再現するように、後述するようにモデル式を構成する各項に含まれる定数を決定する。データの格納定数決定後、変数算出部106は、決定した各定数を把持状態判別部110が出力する現在の把持状態の判別結果と関連づけて記憶部104に記憶させる。アーム制御モード変数算出部106は、アーム制御モードの場合、把持状態判別部110により把持状態が変化したと判別される毎に、判別結果に基づき現在の把持状態に対応するモデル式を構成する各項に含まれる定数を記憶部104から読み出し、読み出した定数をセンサー値補正部107に出力する。センサー値補正部107補正部は、変数算出部106が出力するモデル式を構成する各項に含まれる定数と、姿勢取得部105が出力する姿勢とをモデル式に代入して、現在、力センサー30に入力される重力の影響を算出する。センサー値補正部107は、センサー出力取得部103が出力する現在の力センサー30の検出値から、算出した重力の影響を差し引いた値をアーム制御部101に出力する。図7は、力センサー30の座標系を説明する図である。図7aは、座標系Σと座標系ζを説明する図である。図7bは、座標系Σにおいて、Z軸周りに角度γ回転させた座標系Σ’を説明する図である。図7cは、座標系Σにおいて、Y軸周りに角度β回転させた座標系Σ’’を説明する図である。図7aにおいて、各軸がX、Y、およびZで表現される座標系Σは、6軸のアーム2の座標系である。また、各軸がx、y、およびzで表現される座標系ζは、ハンド40手先とも言うの座標系ZYZ固定角座標である。また、図7a~図7cにおいて、符号301は、力センサー30の表面である。図7a~図7cに示すように、最初のZ軸に関する回転角をγ、次のY軸に関する回転角をβ、最後のZ軸に関する回転角をαとする。ZYZ固定角による表現では、まず、図7bに示すように、座標系ΣをZ軸周りに角度γ回転させて、座標系Σ’を作る。次に、図7cに示すように、回転させた座標系Σ’をY軸周りに角度β回転させて、座標系Σ’’を作る。そして、回転させた座標系Σ’’をZ軸周りに角度α回転させて、座標系Σ’’’を作る。この座標系Σ’’は、座標系ζである。なお、ZYZ固定角表現は、回転後の軸ではなく、最初に設定した軸に対して回転させた表現である。力センサー30は、検出したアーム2に関する力成分とトルク成分とを座標系ζの各成分に分解して制御装置100に出力する。座標系ζの各軸の単位ベクトルをそれぞれベクトルex、ベクトルey、ベクトルezとすると、各単位ベクトルは、次式1~3のように表される。次に、ハンド40に加わる重力の影響を考慮したモデル式について説明する。本実施形態では、モデル式を、次式4~9、及び定数を含む高々3次式とする。式4~9において、力センサー30が検出する力への重力の影響は、ハンド40やハンド40に把持されている対象物70に加わる重力の影響が、ハンド40の姿勢を表すα、β、及びγの三角関数で表される対称性を持っている。さらに、式4~9は、力センサー30の構造等の影響により、上述した各三角関数がオフセットしていることも加味してある。次に、ハンド40及びハンド40に把持されている対象物70が、質量mの質点であるとする。図8は、ハンド40とハンドに把持された対象物70に加わる重力について説明する図である。図8に示すように、ハンド40とハンド40に把持されている対象物70に加わる重力ベクトルfhの向きが、アーム2の座標系ΣのXY平面にあるとする。また、ハンド40とハンド40に把持されている対象物70に加わる重力ベクトルfhとZ軸とのなす角がβ0であるとする。図8において、ベクトルfhを座標系Σで表現すると、次式10のように表される。なお、式10において、gは重力加速度である。上述した式1~3と、式10より、力センサー30の力成分は、それらの内積である。このため、力センサー30の出力ベクトルfsensorは、次式11のように表される。式11において、sinβ0、cosβ0は定数であるので、fmx、fmy、fmzはそれぞれα、β、及びγの三角関数の高々3次式のモデル式で表される。なお、α、β、及びγの三角関数の高々3次式とは、α、β、γ、sinαc、cosαc、sinβc、cosβc、sinγc、cosγcの中から、同じものを何回抜き出してもよい例えば、αを3回抜き出した場合α3という前提で、組み合わせた全ての項の和である。式11のfmxのα、β、及びγの三角関数の高々3次式のモデル式は、例えば、次式12のように、で表される。なお、式12のA,B,C,D,Eは、次式13~19である。式13~17において、cji=1,,320は定数である。また、fmy、fmzについても、fmxと同様に各々高々3次式で表される。変数算出部106は、この各定数cjを後述するように、ハンド40の姿勢α、β、γの3つの成分α、β、及びγを順次、変化させながら力センサー40が取得した出力値に基づき算出する。変数算出部106は、fyとfzの各定数cjを後述するように、ハンド40の姿勢のα、β、及びγを変化させながら力センサー40が取得した出力値に基づき算出する。そして、センサー値補正部105は、算出した定数をfmx、fmy、fmzに組み込み、ハンドに加わる重力の影響による補正値を算出する。力センサー30のトルク成分のモデル式は、3次元空間上で姿勢を表す3つの変数と、それらの三角関数の高々3次式で表される。変数算出部106は、ハンド40の姿勢のα、β、及びγを変化させながら力センサー40が取得した出力値に基づき、モデル式の各定数を算出する。センサー値補正部105は、モデル式に算出した定数を組み込み、ハンドに加わる重力の影響による補正値を算出する。次に、力センサー30が検出するハンド40に加わる重力の影響による定数の値を算出する手順について説明する。図9は、本実施形態に係る力センサー30が検出するハンド40に加わる重力の影響による定数の算出手順のフローチャートである。ステップS101まず、アーム制御部101は、制御部111が出力する変数取得モードを示す情報に基づき、駆動部102を介して、ハンド40の姿勢α、β、γの3つの成分α、β、及びγを順次、変化させる。姿勢算出部106は、制御部111がハンド40の姿勢を変化させるのに合わせて、ハンド40の姿勢毎に、センサー出力取得部103が取得した力センサー30の検出値力成分とトルク成分である出力値ベクトルfαi、βi、γiと、姿勢取得部106が取得したハンドの姿勢を記憶部104に一時的に記憶させる。なお、変化させる範囲は、αが0[deg]~360[deg]、βが0[deg]~180[deg]、γが0[deg]~360[deg]である。この角度の範囲で、例えば、10[deg]間隔で、アーム制御部101は、α、β、及びγの全ての組み合わせについて姿勢を変化させる。ステップS101終了後、ステップS102に進む。ステップS102次に、変数算出部106は、記憶部104に記憶されているモデル式を読み出し、読み出したモデル式のxyzの各成分以下、各モデル式というfmx、fmy、fmzの各定数パラメーターともいうcjの初期値を設定する。なお、各定数cjの初期値は、例えば、乱数を用いて予め定めておき、記憶部104に記憶しておく。なお、何度かフィッティングをしている場合は、前回のフィッティングした結果を初期値として用いることで、繰り返し計算の回数を低減できる場合もある。次に、変数算出部106は、設定した各定数cjの初期値を、各モデル式fmx、fmy、fmzに組み込み代入し、モデル式出力値ベクトルfmαi、βi、γiを算出する。このモデル式出力値ベクトルfmαi、βi、γiで算出される値が、ハンド40に加わる重力の影響であるため、力センサー30の検出値に対する補正値である。ステップS102終了後、ステップS103に進む。全てのハンド40の姿勢の変化が完了した後、変数算出部106は、任意の姿勢における力センサー30の出力を模したモデル式が、記憶部104に一次的に記憶したハンド40の姿勢と、それに対応する力センサー30の検出値を再現するように、ステップS103~S107により、モデル式を構成する各項に含まれる定数を決定する。ステップS103次に、変数算出部106は、記憶部104に記憶されているハンド40の姿勢毎の出力値ベクトルfαi、βi、γiを順次、読み出し、読み出したハンド40の姿勢毎の出力値ベクトルfαi、βi、γiをモデル式に代入する。次に、変数算出部106は、出力値ベクトルfαi、βi、γiとモデル式出力値ベクトルfmαi、βi、γiとの2乗誤差の総和Sを、次式18により算出する。ステップS103終了後、ステップS104に進む。ステップS104次に、変数算出部106は、ステップS103で算出した2乗誤差の総和Sが、予め定めたしきい値よりも小さいか否かを判別する。また、変数算出部106は、各姿勢において、読み出した出力値ベクトルfαi、βi、γiとモデル式出力値ベクトルfmαi、βi、γiとの2乗誤差を算出し、算出した2乗誤差が予め定めたしきい値よりも小さいか否かを判別する。各姿勢の2乗誤差が予め定めたしきい値よりも小さいとは、各姿勢における最大の2乗誤差も予め定めたしきい値より小さいことを意味している。なお、予め定めたしきい値は、例えば、以下のように求める。まず、ロボット1を制御するに当たって許容される力センサー30の値に対する誤差の最大値を決定し、その値をεとする。ステップS103で計算する2乗誤差は、全てのデータ点における誤差の2乗を足し合わせた値であるので、データ点の数で割ることで誤差の2乗の平均を算出できる。算出した誤差の2乗の平均が、誤差の最大値εの2乗よりも小さければ、ロボット1を制御するに当たって求められる力センサーの値に対する誤差が、設定された最大値よりも小さいことを表している。以上のことから、しきい値は、次式19のように、データ数nに誤差の最大値の2乗を乗じた値より小さい値である。なお、式19において、nはデータ点の数である。2乗誤差の総和Sが予め定めたしきい値よりも小さく、各姿勢の2乗誤差が予め定めたしきい値よりも小さく場合ステップS104;Yes、ステップS108に進む。また、2乗誤差の総和Sが、予め定めたしきい値よりも小さくないか、各姿勢の2乗誤差が予め定めたしきい値よりも小さくない場合ステップS104;No、ステップS105に進む。ステップS105次に、変数算出部106は、ステップS103~S106の処理が予め設定されているn回nは1以上の自然数行われたか否かを判別する。ステップS103~S106の処理が予め設定されているn回行われた場合ステップS105;Yes、ステップS107に進む。ステップS103~S106の処理が予め設定されているn回行われていない場合ステップS105;No、ステップS106に進む。ステップS1062乗誤差の総和Sが、予め定めたしきい値よりも小さくない場合ステップS104;No、変数算出部106は、ステップS102で設定した定数を変更する。なお、初期値の変更は、例えば勾配法、モンテカルロ法、遺伝アルゴリズムなどを用いて行う。定数を変更後、ステップS103に戻り、ステップS103~S105を、ステップS104の判定がYesになるまで再帰的に繰り返す。ステップS107ステップS103~S106の処理が予め設定されているn回行われた場合ステップS105;Yes、ステップS104の2乗誤差の総和Sが閾値よりも小さい値を見つけられなかったことになる。このため、変数算出部106は、ステップS103~S106をn回行った中で、2乗誤差の総和Sが最小の値となる各定数パラメーターcjの値を選択する。同様に、ステップS101~S107の処理により、fmy、fmzの各定数cjの値を算出する。ステップS107終了後、ステップS108に進む。ステップS108ステップS107で各定数パラメータcjを算出後、または、2乗誤差の総和Sが予め定めたしきい値よりも小さく、各姿勢の2乗誤差が予め定めたしきい値よりも小さく場合ステップS104;Yes、変数算出部106は、算出したfmy、fmzの各定数cjの値を把持状態判別部110が出力する現在の把持状態の判別結果と関連づけて記憶部104に記憶させる。ステップS101~S107における力センサー30が検出するハンド40に加わる重力の影響による定数の算出手順は、アーム2を用いた作業を行う前に予め行う。定数の算出は、アーム2を用いた作業で想定されるアーム2と対象物70との状態毎に変数算出部106が算出する。アーム2を用いた作業で想定されるアーム2と対象物70との状態毎とは、例えば、ハンド40が何も把持していない状態、ハンド40が第1の対象物であるドライバーを把持している状態、ハンド40がドライバーを把持し且つドライバーにねじが嵌合されている状態などである。このような各状態において、変数算出部106は、さらにハンド40の位置姿勢毎、対象物70毎、ハンド40に対する対象物70の重心の位置毎などについて、力センサー30が検出するハンド40に加わる重力の影響による定数を算出する。また、ステップS103~S107において、力センサー30の実測値と、モデル式の算出値との2乗誤差を用いてモデル式の定数を算出するようにしたので、モデル誤差の演算量が少なくて済む効果がある。次に、力センサー30が検出するハンド40に加わる重力の影響を補正する手順について説明する。図10は、本実施形態に係る力センサー30が検出するハンド40に加わる重力の影響を補正する手順のフローチャートである。なお、初期状態では、ハンド40が、何も把持していないとして説明する。ステップS201アーム制御部101は、制御部111が出力するアーム制御モードを示す情報に基づき、駆動部102を介してハンド40に対象物70を把持させるように制御する。ステップS201終了後、ステップS202に進む。ステップS202次に、画像取得部108は、撮像装置50が出力する画像データを、順次取得し、取得した画像データを画像記憶部109に記憶させる。ステップS202終了後、ステップS203に進む。ステップS203次に、変数算出部106は、把持状態判別部110により把持状態が変化したと判別される毎に、判別結果に基づき現在の把持状態に対応するモデル式を構成する各項に含まれる定数を記憶部104から読み出し、読み出した定数をセンサー値補正部107に出力する。ステップS203終了後、ステップS204に進む。ステップS204次に、センサー値補正部105は、変数算出部106が出力するモデル式を構成する各項に含まれる定数と、姿勢取得部105が出力する姿勢とをモデル式に代入して、現在、力センサー30に入力される重力の影響を算出する。次に、センサー値補正部107は、センサー出力取得部103が出力する現在の力センサー30の検出値から、算出した重力の影響を差し引いた値をアーム制御部101に出力する。ステップS204終了後、ステップS205に進む。ステップS205次に、アーム制御部101は、センサー値補正部107が出力する補正された力センサー30の出力値を用いてアーム2の制御を行う。ステップS205終了後、ステップS206に進む。ステップS206次に、把持状態判別部110は、画像記憶部109に記憶されている現在の画像データ、センサー出力取得部103が取得した力センサー30の検出値、制御部111が出力する現在の動作のうち、少なくとも1つを用いて、現在のハンドの把持状態を判別し、判別結果を変数算出部106に出力する。ステップS206終了後、ステップS207に進む。ステップS207把持状態が変化していると判別された場合ステップS207;Yes、ステップS208に進む。把持状態が変化していないと判別された場合ステップS207;No、ステップS202に戻る。ステップS208把持状態が変化していると判別された場合ステップS207;Yes、現在の把持状態に対応するモデル式を構成する各項に含まれる定数を記憶部104から読み出し、読み出した定数をセンサー値補正部107に出力する。ステップS208終了後、ステップS209に進む。ステップS209次に、センサー値補正部105は、ステップS204と同様に、変数算出部106が出力するモデル式を構成する各項に含まれる定数と、姿勢取得部105が出力する姿勢とをモデル式に代入して、現在、力センサー30に入力される重力の影響を算出する。次に、センサー値補正部107は、センサー出力取得部103が出力する現在の力センサー30の検出値から、算出した重力の影響を差し引いた値をアーム制御部101に出力する。ステップS209終了後、ステップS210に進む。ステップS210次に、アーム制御部101は、センサー値補正部107が出力する補正された力センサー30の出力値を用いてアーム2の制御を行う。ステップS210終了後、ステップS202に戻る。以後、所定の作業が終了するまで、例えば、ハンド40が把持した対象物70を、予め定めた位置まで移動させる作業において、ステップS202~S210を繰り返す。なお、ステップS201~S210では、把持状態判別部110の判別結果に基づいてハンド40が把持している対象物70の大きさや重量が変化したことを検出する例を説明した。ロボット1が非図示の制御プログラムで制御されている場合、制御プログラムに含まれている対象物70に応じて、アーム2の制御開始時に、記憶部104に記憶されているモデル式におけるfx、fy、fzの各定数を読み出して、力センサー30の検出値を補正するようにしてもよい。以上のように、本実施形態によれば、ハンドに取り付けられた力センサーに対して入力されるハンドやそれに把持されたツールなどの対象物70に加わる重力の影響をモデル化した式を、姿勢を表す3変数の三角関数の高々3次式で構成した。このため、ハンドを構成する部材や、その構造を考慮する必要がなく、最小2乗法を用いた一般的な計算で、このモデル式を構成する各項の定数を算出することができる。また、有限要素法を用いた数値計算などのように経験的に習得する知見は必要なく、簡便に、更には高い精度で測定値をモデル式で再現することが可能である。従って、センサー値補正部107は、モデル式を用いて変数算出部106が算出した値を力センサーの検出値から差し引くことでハンドが対象物に対して加えている力を正しく検出することが可能となる。この結果、ロボットの姿勢ごとのハンドに加わる重力の影響を適切に補正することができる。なお、ステップS101~S107の処理により、fmy、fmzの各定数の値を算出する処理は、ロボット1を用いて作業を行う前に行ってもよく、あるいは、ロボット1の作業中に行うようにしてもよい。各定数の値の算出をロボット1が用いて作業を行う前に行う場合、ハンド40が何も把持していない状態、ハンド40が対象物70を把持している状態、あるいは、ハンド40が対象物である図示しないドライバーを把持し、さらに図示しないドライバーにねじが嵌合されている場合などの作業中に想定される状態についてフィッティングを行い、制御部100が、力センサー30及びエンコーダー90の出力を取得して各定数の値を算出する。そして、作業中に、算出した各状態の補正値を用いて、制御部100は、ハンドに加わる重力の影響を補正する。各定数の値の算出をロボット1の作業中に行う場合、ハンド40の把持している状態が変化した場合、ハンド40の姿勢を変化させて重力の影響を測定し、制御部100が、それをフィッティングする定数を算出する。そして、作業中に、算出した各状態の補正値を用いて、制御部100は、ハンドに加わる重力の影響を補正する。[第2実施形態]図1において、アーム2を有するロボット1が地表面に対して垂直に設置されている場合、ハンド40やハンド40に把持されている対象物70に加わる重力の影響は、地表面に対して垂直な軸に関する回転に相当する角度αに依存しない。この場合、上述した式11は、式6~9及び定数による次式20と次式21のように高々2次式で表せる。式20において、cji=1,2,,56は定数である。変数算出部106は、この各定数cjを第1実施形態のステップS101~S105により、ハンド40の姿勢のα、β、及びγを変化させながら力センサー30が取得した出力値に基づき算出する。式21において、cji=1,2,,56は定数である。変数算出部106は、この各定数cjを第1実施形態のステップS101~S105により、ハンド40の姿勢のα、β、及びγを変化させながら力センサー30が取得した出力値に基づき算出する。そして、センサー値補正部105は、算出した定数をfmx、fmy、fmzに組み込み、ハンドに加わる重力の影響による補正値を算出する。[実験結果の説明]次に、アーム2を有するロボット1が地表面に対して垂直に設置され、ハンド40やハンド40に把持されている対象物70に加わる重力の影響が、角度αに依存しない場合の実測値と、本実施形態による算出値の例を説明する。以下、図1において、ハンド40として、質量約800[g]、高さ約20[cm]で3本の指を有する多目的ハンドを力センサー30に取り付けた場合について説明する。式20及び、ステップS101~S105を用いて、fxの各定数を算出した結果、fxは次式22のような結果が得られた。なお、式22において、各定数c36=17.20、c37=1.57、c38=-0.78、c50=0.36、c51=0.08、c56’=c56/c50=-0.88である。また、式20における他の定数cjの値は0である。図11は、ハンド40を力センサー30に取り付けた場合の力センサー30の出力値の一例を説明する図である。図9は、ハンド40を力センサー30に取り付けた場合における、式22を用いて算出した力センサー30の予測値の一例を説明する図である。また、図11と図12において、縦軸z軸は力[N]、x軸は姿勢γ、y軸は姿勢βである。図11に示すように、力センサー30により検出される力fは、力センサー30に取り付けられているハンド40の影響により、ハンド40の姿勢β、及びγに応じて異なっている。すなわち、姿勢βの変化に応じて、力センサー30により検出される力fは正弦波状に変化している。同様に、姿勢γの変化に応じて、力センサー30により検出される力fは正弦波状に変化している。式22を用いて、姿勢β、及びγを変化させて算出した力センサー30の予測値補正値をグラフで表した結果、図12に示すように、力センサー30により検出される予測値の力f’は、ほぼ図11の実測された力センサー30の出力値と同様の値である。このように、変数算出部106が、力センサー30により検出される予測値を算出し、センサー値補正部107が、算出された予測値の力f’を実際の力センサー30の検出値から差し引いて補正することで、ハンド40が対象物70に対して加えている力を、ロボットの姿勢によらず高い精度で検出できる。この結果、ロボットの姿勢ごとのハンドに加わる重力の影響を適切に補正することができる。[第3実施形態]第1実施形態では、予めモデル式におけるfx、fy、fzの各定数を算出して記憶部104に記憶させておき、アーム2の制御の場合に、記憶部104に記憶されているモデル式におけるfx、fy、fzの各定数を読み出して力センサー30の検出値を補正する例を説明した。本実施形態では、モデル式におけるfx、fy、fzの各定数をアーム2の制御中に取得する例を、図13を用いて説明する。図13は、本実施形態に係る力センサー30が検出するハンド40に加わる重力の影響を補正する手順のフローチャートである。ステップS301アーム制御部101は、制御部111が出力するアーム制御モードを示す情報に基づき、駆動部102を介してハンド40に対象物70を把持させるように制御する。ステップS301終了後、ステップS302に進む。ステップS302次に、変数算出部106は、記憶部104に記憶されているモデル式ベクトルfmαi、βi、γiを読み出し、fmx、fmy、fmzの各定数cjの初期値を設定する。次に、変数算出部106は、設定した各定数cjの初期値を、fmx、fmy、fmzに組み込み代入し、モデル式出力値ベクトルfmαi、βi、γiを算出する。ステップS302終了後、ステップS303に進む。ステップS303次に、画像取得部108は、撮像装置50が出力する画像データを、順次取得し、取得した画像データを画像記憶部109に記憶させる。ステップS303終了後、ステップS304に進む。ステップS304次に、変数算出部106は、ステップS103~S107の処理により、モデル式におけるfx、fy、fzの各定数を算出する。変数算出部106は、算出したモデル式におけるfx、fy、fzの各定数を、把持状態判別部110が出力する現在の把持状態の判別結果と関連付けて記憶部104に記憶させる。ステップS305次に、センサー値補正部105は、変数算出部106が出力するモデル式を構成する各項に含まれる定数と、姿勢取得部105が出力する姿勢とをモデル式に代入して、現在、力センサー30に入力される重力の影響を算出する。センサー値補正部107は、センサー出力取得部103が出力する現在の力センサー30の検出値から、算出した重力の影響を差し引いた値をアーム制御部101に出力する。ステップS305終了後、ステップS306に進む。ステップS306次に、アーム制御部101は、センサー値補正部107が出力する補正された力センサー30の出力値を用いてアーム2の制御を行う。ステップS306終了後、ステップS307に進む。ステップS307次に、画像取得部108は、撮像装置50が出力する画像データを、順次取得し、取得した画像データを画像記憶部109に記憶させる。ステップS307終了後、ステップS308に進む。ステップS308次に、把持状態判別部110は、画像記憶部109に記憶されている現在の画像データ、センサー出力取得部103が取得した力センサー30の検出値、制御部111が出力する現在の動作のうち、少なくとも1つを用いて、現在のハンドの把持状態を判別し、判別結果を変数算出部106に出力する。ステップS308終了後、ステップS309に進む。ステップS309把持状態が変化していると判別された場合ステップS309;Yes、ステップS304に戻る。把持状態が変化していないと判別された場合ステップS309;No、ステップS306に戻る。以上のステップS301~S309を、予め定められた作業が終了するまで繰り返す。これにより、アーム2の制御中に、制御装置100は、ハンド40が対象物70を把持している状態の変化毎にモデル式におけるfx、fy、fzの各定数を算出し、算出したモデル式におけるfx、fy、fzの各定数を用いて力センサー30の検出値を補正して制御できる。なお、ステップS309;Yesにおいて、把持状態が変化していると判別された場合、モデル式におけるfx、fy、fzの各定数が記憶部104に記憶済みであれば、記憶済みのモデル式におけるfx、fy、fzの各定数を記憶部104から読み出して用いるようにしてもよい。なお、本実施形態では、予測値をfx、fy、fzについて算出する例を説明したが、力センサーが力成分のみではなく、トルク成分も検出して出力するタイプの場合は、各軸に対するトルク成分tx、ty、tzに対しても予測値を算出するようにしてもよい。この場合、トルク成分tx、ty、tzに対しても、高々3次式、または、高々2次式で表されるモデル式の各定数の値を算出する。そして算出された定数を組み込んだモデル式を用いて、トルク成分tx、ty、tzのそれぞれの予測値を算出するようにしてもよい。なお、本実施形態では、ロボット1が6自由度を有する6軸アームの例を説明したが、本発明は係る実施形態に限定されず、例えば、7自由度を有する7軸アームのロボットであってもよい。7軸アームのロボット1は、例えば、図1において、固定部10と屈折部81との間に、さらに7軸目の回転部を備えている。この場合においても、まず、力センサー30の検出値への重力の影響のモデル式を作成し、変数算出部106が、このモデル式の定数をハンド40の状態毎に、ハンドの姿勢を変化させて算出する。そして、ハンドの状態毎に算出した定数を代入したモデル式を用いて、力センサー30の検出値を補正して、アーム制御部101は、この補正した値を用いてハンドの動作を制御する。7軸の場合アーム2は、7自由度を有する7軸アームである。すなわち、アーム2の先端のハンド40は、これらの各軸の回転部と屈折部の動作により、移動する。このように7軸アームにおいても、モデル式は、6軸アームの場合と同様に、3次元空間上で姿勢を表す3つの変数α、β、γと、これら3つの変数の三角関数の高々3次式で表される。なお、実施形態の図3の制御部の各部の機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいうコンピューターシステムとは、OSや周辺機器等のハードウェアを含むものとする。また、コンピューターシステムは、WWWシステムを利用している場合であれば、ホームページ提供環境あるいは表示環境も含むものとする。また、コンピューター読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ROMReadOnlyMemory、CD-ROM等の可搬媒体、USBUniversalSerialBusI/Fインタフェースを介して接続されるUSBメモリー、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらにコンピューター読み取り可能な記録媒体とは、サーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。"