JP2013018075A - ロボット、ロボット制御装置、ロボット制御方法、およびプログラム - Google Patents

ロボット、ロボット制御装置、ロボット制御方法、およびプログラム Download PDF

Info

Publication number
JP2013018075A
JP2013018075A JP2011152784A JP2011152784A JP2013018075A JP 2013018075 A JP2013018075 A JP 2013018075A JP 2011152784 A JP2011152784 A JP 2011152784A JP 2011152784 A JP2011152784 A JP 2011152784A JP 2013018075 A JP2013018075 A JP 2013018075A
Authority
JP
Japan
Prior art keywords
force sensor
hand
value
constant
calculated
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
JP2011152784A
Other languages
English (en)
Other versions
JP5849477B2 (ja
Inventor
Takashi Minamimoto
高志 南本
Kazuhiro Kosuge
一弘 小菅
Kentaro Kamei
健太郎 亀井
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2011152784A priority Critical patent/JP5849477B2/ja
Publication of JP2013018075A publication Critical patent/JP2013018075A/ja
Application granted granted Critical
Publication of JP5849477B2 publication Critical patent/JP5849477B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

【課題】ロボットの姿勢ごとのハンドに加わる重力の影響を適切に補正するロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラムを提供することを目的としている。
【解決手段】ハンドとアーム2との間に介挿されている力センサー30に対して入力される重力の影響をモデル化した定数を有するモデル式を記憶する記憶部104と、ハンドが対象物を把持していない状態における力センサーが出力する検出値を用いて、モデル式の定数の値を算出する変数算出部106と、変数算出部が算出した定数をモデル式に代入して力センサーに対して入力される重力の影響の補正値を算出し、力センサーが出力する検出値から算出した補正値を差し引くことで、力センサーの検出値を補正する補正部107とを備える。
【選択図】図3

Description

本発明は、ロボット、ロボット制御装置、ロボット制御方法およびプログラムに関する。
近年、製造現場等では、スカラロボットや多軸ロボット等が製品の組み立てや検査等に用いられている。製品の組み立てや検査を行うときに物体を運搬する場合、ロボットは、物体を吸着したり、ハンドにより把持したりする。アームの先端には対象物を把持するハンドが取り付けられている。そして、ハンドに加わる力は、アームとハンドの間に取り付けられた力センサーにより検出している。この力センサーが検出する力には、ハンドに加わる重力の影響がある。このハンドに加わる重力の影響により、ロボットは、アームを高い精度で制御することが困難である。
このため、特許文献1に記載の発明では、重力補償をロボットの姿勢と、力センサーより手先部分に取り付けられた指部(ハンド)の質量から重力補償値を算出して、力センサーの検出値に対して重力補償している。
また、特許文献2には、力センサーが検出するハンドの自重を予め算出することで、力センサーが検出する値からハンドの自重をキャンセルしている。また、特許文献2に記載の発明では、力センサーが検出するハンドの自重を、ハンドを質点と見なし、力センサーとその質点が完全な剛体で接続されているものとしてハンドの自重を算出している。
また、特許文献3に記載の発明では、モデル化した数式中に含まれる変数を、ハンドに複数の姿勢を取らせた時の力センサーの出力値を用いて決定する。そして、特許文献3に記載の発明では、各時刻のハンドの姿勢に応じたハンドに加わる重力の影響を、モデル化した式を用いて求め、各時刻の力センサーの出力値から差し引くことで、ハンドが対象物に対して加えている力を検出している。
特開2010−142909号公報 特開2010−131702号公報 特開昭62−74594号公報
しかしながら、特許文献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の概略構成を示す斜視図である。 同実施形態に係るアーム2と力センサー30の概念図である。 同実施形態に係る制御装置100のブロック図である。 同実施形態に係るハンド40による把持状態を説明する図である。 記憶部104が記憶するハンド40の姿勢α、β、及びγと力センサー30の出力の一例を示す図である。 記憶部104が記憶する把持状態とモデル式におけるf、f、fの各定数の一例を示す図である。 力センサーの座標系を説明する図である。 ハンド40とハンドに把持された対象物70に加わる重力について説明する図である。 同実施形態に係る力センサー30が検出するハンド40に加わる重力の影響による定数の算出手順のフローチャートである。 同実施形態に係る力センサー30が検出するハンド40に加わる重力の影響を補正する手順のフローチャートである。 ハンド40を力センサー30に取り付けた場合の力センサー30の出力値の一例を説明する図である。 ハンド40を力センサー30に取り付けた場合における、式(22)を用いて算出した力センサー30の予測値の一例を説明する図である。 第3実施形態に係る力センサー30が検出するハンド40に加わる重力の影響を補正する手順のフローチャートである。
以下、本発明の実施形態について図面を参照して詳細に説明する。なお、本発明はかかる実施形態に限定されず、その技術思想の範囲内で種々の変更が可能である。また、以下の図面においては、各構成をわかりやすくするために、実際の構造と各構造における縮尺や数等が異なっている。
[第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は、例えばCCD(Charge Coupled Device)カメラである。撮像装置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による把持状態を説明する図である。図4(a)は、対象物70の質量重心が、破線201の位置に把持されている状態を説明する図であり、図4(b)は、対象物70の質量重心が、破線201からy軸の負方向に距離Lだけずれ破線202の位置に把持されている状態を説明する図である。例えば、図4(a)が1フレーム前における画像データであり、図4(b)が最新のフレームの画像データである。
把持状態判別部110は、例えば、このような図4(a)の画像データと、図4(b)の画像データとを比較して、対象物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に予め記録させておくようにしてもよい。そして、把持状態毎に、モデル式におけるf、f、fの各定数を関連付けて、記憶部104に予め記憶させておく。
図5は、記憶部104が記憶するハンド40の姿勢(α、β、γ)の3つの成分α、β、及びγと力センサー30の出力の一例を示す図である。図5に示すように、記憶部104には、例えば、姿勢(α、β、γ)の3つの成分α、β、γの場合の力センサー30の出力値f111が関連づけられて記憶されている。また、記憶部104には、後述する力センサー30の出力値のモデル式が記憶されている。
図6は、記憶部104が記憶する把持状態とモデル式におけるf、f、fの各定数の一例を示す図である。なお、モデル式とは、後述するように、力センサー30の出力ベクトルをモデル化した式である。図6に示すように、記憶部104には、番号と姿勢と定数値が関連づけられて記憶されている。番号は識別子であり、把持状態は、把持状態判別部110が判別した結果である。変数値は、算出されたモデル式におけるf、f、fの各定数である。
例えば、把持状態1は、ハンド40が対象物70を把持していない状態の状態番号である。そして、この把持状態1と関連づけられて記憶されているモデル式におけるf、f、fの各変数は、ハンド40が対象物70を把持していない場合に変数算出部106が算出したモデル式におけるf、f、fの各定数である。
例えば、把持状態2は、ハンド40が対象物70を把持している状態の状態番号である。そして、この把持状態2と関連づけられて記憶されているモデル式におけるf、f、fの各変数は、ハンド40が対象物70を把持している場合に変数算出部106が算出したモデル式におけるf、f、fの各定数である。
姿勢算出部105は、エンコーダー90が出力する現在のハンド40の姿勢(α、β、γ)を取得し、取得した現在のハンド40の姿勢(α、β、γ)を変数算出部106とセンサー値補正部107に出力する。
変数算出部106は、モデル式におけるf、f、fの各定数を、変数取得モードでは算出し、アーム制御モードでは記憶部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の座標系を説明する図である。図7(a)は、座標系Σと座標系ζを説明する図である。図7(b)は、座標系Σにおいて、Z軸周りに角度γ回転させた座標系Σ’を説明する図である。図7(c)は、座標系Σにおいて、Y軸周りに角度β回転させた座標系Σ’’を説明する図である。
図7(a)において、各軸がX、Y、およびZで表現される座標系Σは、6軸のアーム2の座標系である。また、各軸がx、y、およびzで表現される座標系ζは、ハンド40(手先とも言う)の座標系(ZYZ固定角座標)である。また、図7(a)〜図7(c)において、符号301は、力センサー30の表面である。
図7(a)〜図7(c)に示すように、最初のZ軸に関する回転角をγ、次のY軸に関する回転角をβ、最後のZ軸に関する回転角をαとする。ZYZ固定角による表現では、まず、図7(b)に示すように、座標系ΣをZ軸周りに角度γ回転させて、座標系Σ’を作る。次に、図7(c)に示すように、回転させた座標系Σ’をY軸周りに角度β回転させて、座標系Σ’’を作る。そして、回転させた座標系Σ’’をZ軸周りに角度α回転させて、座標系Σ’’’を作る。この座標系Σ’’は、座標系ζである。なお、ZYZ固定角表現は、回転後の軸ではなく、最初に設定した軸に対して回転させた表現である。
力センサー30は、検出したアーム2に関する力成分とトルク成分とを座標系ζの各成分に分解して制御装置100に出力する。座標系ζの各軸の単位ベクトルをそれぞれベクトルe、ベクトルe、ベクトルeとすると、各単位ベクトルは、次式(1)〜(3)のように表される。
Figure 2013018075
Figure 2013018075
Figure 2013018075
次に、ハンド40に加わる重力の影響を考慮したモデル式について説明する。
本実施形態では、モデル式を、次式(4)〜(9)、及び定数を含む高々3次式とする。
Figure 2013018075
Figure 2013018075
Figure 2013018075
Figure 2013018075
Figure 2013018075
Figure 2013018075
式(4)〜(9)において、力センサー30が検出する力への重力の影響は、ハンド40やハンド40に把持されている対象物70に加わる重力の影響が、ハンド40の姿勢を表すα、β、及びγの三角関数で表される対称性を持っている。さらに、式(4)〜(9)は、力センサー30の構造等の影響により、上述した各三角関数がオフセットしていることも加味してある。
次に、ハンド40及びハンド40に把持されている対象物70が、質量mの質点であるとする。
図8は、ハンド40とハンドに把持された対象物70に加わる重力について説明する図である。図8に示すように、ハンド40とハンド40に把持されている対象物70に加わる重力ベクトルfの向きが、アーム2の座標系ΣのXY平面にあるとする。また、ハンド40とハンド40に把持されている対象物70に加わる重力ベクトルfとZ軸とのなす角がβであるとする。
図8において、ベクトルfを座標系Σで表現すると、次式(10)のように表される。
Figure 2013018075
なお、式(10)において、gは重力加速度である。
上述した式(1)〜(3)と、式(10)より、力センサー30の力成分は、それらの内積である。このため、力センサー30の出力ベクトルfsensorは、次式(11)のように表される。
Figure 2013018075
式(11)において、sinβ、cosβは定数であるので、fmx、fmy、fmzはそれぞれα、β、及びγの三角関数の高々3次式のモデル式で表される。なお、α、β、及びγの三角関数の高々3次式とは、α、β、γ、sin(α+c)、cos(α+c) 、sin(β+c)、cos(β+c) 、sin(γ+c)、cos(γ+c)の中から、同じものを何回抜き出してもよい(例えば、αを3回抜き出した場合α)という前提で、組み合わせた全ての項の和である。
式(11)のfmxのα、β、及びγの三角関数の高々3次式のモデル式は、例えば、次式(12)のように、で表される。
Figure 2013018075
なお、式(12)のA,B,C,D,Eは、次式(13)〜(19)である。
Figure 2013018075
Figure 2013018075
Figure 2013018075
Figure 2013018075
Figure 2013018075
式(13)〜(17)において、c(i=1,・・・,320)は定数である。また、fmy、fmzについても、fmxと同様に各々高々3次式で表される。変数算出部106は、この各定数cを後述するように、ハンド40の姿勢(α、β、γ)の3つの成分α、β、及びγを順次、変化させながら力センサー40が取得した出力値に基づき算出する。変数算出部106は、fとfの各定数cを後述するように、ハンド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(α、β、γ)と、姿勢取得部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の各定数(パラメーターともいう)cの初期値を設定する。なお、各定数cの初期値は、例えば、乱数を用いて予め定めておき、記憶部104に記憶しておく。なお、何度かフィッティングをしている場合は、前回のフィッティングした結果を初期値として用いることで、繰り返し計算の回数を低減できる場合もある。
次に、変数算出部106は、設定した各定数cの初期値を、各モデル式fmx、fmy、fmzに組み込み(代入し)、モデル式出力値ベクトルf(α、β、γ)を算出する。このモデル式出力値ベクトルf(α、β、γ)で算出される値が、ハンド40に加わる重力の影響であるため、力センサー30の検出値に対する補正値である。
ステップS102終了後、ステップS103に進む。
全てのハンド40の姿勢の変化が完了した後、変数算出部106は、任意の姿勢における力センサー30の出力を模したモデル式が、記憶部104に一次的に記憶したハンド40の姿勢と、それに対応する力センサー30の検出値を再現するように、ステップS103〜S107により、モデル式を構成する各項に含まれる定数を決定する。
(ステップS103)
次に、変数算出部106は、記憶部104に記憶されているハンド40の姿勢毎の出力値ベクトルf(α、β、γ)を順次、読み出し、読み出したハンド40の姿勢毎の出力値ベクトルf(α、β、γ)をモデル式に代入する。次に、変数算出部106は、出力値ベクトルf(α、β、γ)とモデル式出力値ベクトルf(α、β、γ)との2乗誤差の総和Sを、次式(18)により算出する。ステップS103終了後、ステップS104に進む。
Figure 2013018075
(ステップS104)
次に、変数算出部106は、ステップS103で算出した2乗誤差の総和Sが、予め定めたしきい値よりも小さいか否かを判別する。また、変数算出部106は、各姿勢において、読み出した出力値ベクトルf(α、β、γ)とモデル式出力値ベクトルf(α、β、γ)との2乗誤差を算出し、算出した2乗誤差が予め定めたしきい値よりも小さいか否かを判別する。各姿勢の2乗誤差が予め定めたしきい値よりも小さいとは、各姿勢における最大の2乗誤差も予め定めたしきい値より小さいことを意味している。なお、予め定めたしきい値は、例えば、以下のように求める。
まず、ロボット1を制御するに当たって許容される力センサー30の値に対する誤差の最大値を決定し、その値をεとする。ステップS103で計算する2乗誤差は、全てのデータ点における誤差の2乗を足し合わせた値であるので、データ点の数で割ることで誤差の2乗の平均を算出できる。算出した誤差の2乗の平均が、誤差の最大値εの2乗よりも小さければ、ロボット1を制御するに当たって求められる力センサーの値に対する誤差が、設定された最大値よりも小さいことを表している。以上のことから、しきい値は、次式(19)のように、データ数nに誤差の最大値の2乗を乗じた値より小さい値である。
Figure 2013018075
なお、式(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に進む。
(ステップS106)
2乗誤差の総和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が最小の値となる各定数(パラメーター)cの値を選択する。
同様に、ステップS101〜S107の処理により、fmy、fmzの各定数cの値を算出する。ステップS107終了後、ステップS108に進む。
(ステップS108)
ステップS107で各定数(パラメータ)cjを算出後、または、2乗誤差の総和Sが予め定めたしきい値よりも小さく、各姿勢の2乗誤差が予め定めたしきい値よりも小さく場合(ステップS104;Yes)、変数算出部106は、算出したfmy、fmzの各定数cの値を把持状態判別部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に記憶されているモデル式におけるf、f、fの各定数を読み出して、力センサー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次式で表せる。
Figure 2013018075
式(20)において、c(i=1,2,・・・,56)は定数である。変数算出部106は、この各定数cを第1実施形態のステップS101〜S105により、ハンド40の姿勢のα、β、及びγを変化させながら力センサー30が取得した出力値に基づき算出する。
Figure 2013018075
式(21)において、c(i=1,2,・・・,56)は定数である。変数算出部106は、この各定数cを第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を用いて、fの各定数を算出した結果、fは次式(22)のような結果が得られた。
Figure 2013018075
なお、式(22)において、各定数c36=17.20、c37=1.57、c38=−0.78、c50=0.36、c51=0.08、c56’(=c56/c50)=−0.88である。また、式(20)における他の定数cの値は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実施形態では、予めモデル式におけるf、f、fの各定数を算出して記憶部104に記憶させておき、アーム2の制御の場合に、記憶部104に記憶されているモデル式におけるf、f、fの各定数を読み出して力センサー30の検出値を補正する例を説明した。本実施形態では、モデル式におけるf、f、fの各定数をアーム2の制御中に取得する例を、図13を用いて説明する。
図13は、本実施形態に係る力センサー30が検出するハンド40に加わる重力の影響を補正する手順のフローチャートである。
(ステップS301)
アーム制御部101は、制御部111が出力するアーム制御モードを示す情報に基づき、駆動部102を介してハンド40に対象物70を把持させるように制御する。ステップS301終了後、ステップS302に進む。
(ステップS302)
次に、変数算出部106は、記憶部104に記憶されているモデル式ベクトルf(α、β、γ)を読み出し、fmx、fmy、fmzの各定数cの初期値を設定する。
次に、変数算出部106は、設定した各定数cの初期値を、fmx、fmy、fmzに組み込み(代入し)、モデル式出力値ベクトルf(α、β、γ)を算出する。ステップS302終了後、ステップS303に進む。
(ステップS303)
次に、画像取得部108は、撮像装置50が出力する画像データを、順次取得し、取得した画像データを画像記憶部109に記憶させる。ステップS303終了後、ステップS304に進む。
(ステップS304)
次に、変数算出部106は、ステップS103〜S107の処理により、モデル式におけるf、f、fの各定数を算出する。変数算出部106は、算出したモデル式におけるf、f、fの各定数を、把持状態判別部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を把持している状態の変化毎にモデル式におけるf、f、fの各定数を算出し、算出したモデル式におけるf、f、fの各定数を用いて力センサー30の検出値を補正して制御できる。
なお、ステップS309;Yesにおいて、把持状態が変化していると判別された場合、モデル式におけるf、f、fの各定数が記憶部104に記憶済みであれば、記憶済みのモデル式におけるf、f、fの各定数を記憶部104から読み出して用いるようにしてもよい。
なお、本実施形態では、予測値をf、f、fについて算出する例を説明したが、力センサーが力成分のみではなく、トルク成分も検出して出力するタイプの場合は、各軸に対するトルク成分t、t、tに対しても予測値を算出するようにしてもよい。この場合、トルク成分t、t、tに対しても、高々3次式、または、高々2次式で表されるモデル式の各定数の値を算出する。そして算出された定数を組み込んだモデル式を用いて、トルク成分t、t、tのそれぞれの予測値を算出するようにしてもよい。
なお、本実施形態では、ロボット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システムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD−ROM等の可搬媒体、USB(Universal Serial Bus) I/F(インタフェース)を介して接続されるUSBメモリー、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、サーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
1・・・ロボット、 2・・・アーム、 10・・・固定部
30・・・力センサー、40・・・ハンド、50・・・撮像装置、70・・・対象物、
72・・・ステージ、82、83、85・・・回転部、81、84、86・・・屈折部、
90、91〜96・・・エンコーダー、100・・・制御部、101・・・アーム制御部、
102・・・駆動部、103・・・センサー出力取得部、104・・・記憶部、
105・・・姿勢算出部、106・・・変数算出部、107・・・センサー値補正部、
108・・・画像取得部、109・・・把持状態判別部、
α、β、γ・・・ハンド40の姿勢の成分
S・・・力センサー30の計測値のベクトルf(α、β、γ)とモデル式計算値のベクトルf(α、β、γ)との2乗誤差の総和
・・・モデル式の定数(パラメーター)

Claims (16)

  1. ハンドとアームとの間に介挿されている力センサーと、
    前記力センサーが出力する検出値に対する重力の影響をモデル化した定数を有するモデル式を記憶する記憶部と、
    前記ハンドの姿勢を変化させた場合の前記力センサーが出力する検出値を用いて、前記モデル式の定数の値を算出する変数算出部と、
    前記変数算出部が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正する補正部と、
    を備えることを特徴とするロボット。
  2. 前記変数算出部は、
    前記力センサーが出力する検出値と、前記ハンドの姿勢を変化させた場合の前記モデル式における算出値との2乗誤差の総和を算出し、前記2乗誤差の総和が予め定められているしきい値より小さい場合の定数の値を算出し、前記算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出する
    ことを特徴とする請求項1に記載のロボット。
  3. 前記変数算出部は、
    前記ハンドの姿勢を変化させた場合、前記力センサーが出力する検出値と前記各姿勢の前記モデル式における算出値との2乗誤差を算出し、前記2乗誤差が予め定められているしきい値より小さい場合の定数の値を算出し、前記算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出する
    ことを特徴とする請求項1または請求項2に記載のロボット。
  4. 前記モデル式は、
    前記力センサーが出力する検出値の力成分を、3次元空間上で前記ハンドの姿勢を表す3変数及び該3変数の三角関数で構成される高々3次式で表わす
    ことを特徴とする請求項1から請求項3のいずれか1項に記載のロボット。
  5. 前記モデル式は、
    前記力センサーが出力する検出値のトルク成分を、3次元空間上で前記ハンドの姿勢を表す3変数及び該3変数の三角関数で構成される高々3次式で表わす
    ことを特徴とする請求項1から請求項4のいずれか1項に記載のロボット。
  6. 前記ハンドにより対象物が把持されている状態である把持状態の変化を判別する把持状態判別部と、
    を備え、
    前記変数算出部は、
    前記把持状態判別部により前記ハンドの把持状態が変化したと判別された場合、前記モデル式の定数の値を算出し、
    前記補正部は、
    前記変数算出部が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正する
    ことを特徴とする請求項1から請求項5のいずれか1項に記載のロボット。
  7. 前記把持状態判別部は、
    前記ハンドが把持する対象物の姿勢状態が変化したか否か、または、前記ハンドが把持する対象物が変化したか否かにより把持状態の変化を判別する
    ことを特徴とする請求項6に記載のロボット。
  8. 前記ハンドを含む画像を撮像する撮像装置と、
    モデル式の定数を記憶する記憶部と、
    を備え、
    前記変数算出部は、
    予め前記ハンドの把持状態毎の前記モデル式の定数の値を算出し、前記算出したモデル式の定数を前記把持状態判別部が判別した把持状態と関連付けて前記記憶部に記憶させ、
    前記把持状態判別部により前記ハンドの把持状態が変化したと判別された場合、把持状態が変化したと判別された場合の前記把持状態と関連付けられて記憶されている前記モデル式の定数を前記記憶部から読み出し、
    前記補正部は、
    前記変数算出部が読み出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正する
    ことを特徴とする請求項6または請求項7に記載のロボット。
  9. 前記ハンドの動作を制御する制御部を備え、
    前記把持状態判別部は、
    前記ハンドの把持状態が変化したか否かを、前記撮像装置が撮像した画像データ、前記力センサーが出力する検出値、前記制御部による前記ハンドへの制御指示の少なくとも1つを用いて判別する
    ことを特徴とする請求項6から請求項8のいずれか1項に記載のロボット。
  10. 前記モデル式は、
    前記ロボットが、地表面に対して垂直に設置されている場合、前記ハンドの姿勢を表す3変数の内、地表面に対して垂直な軸に関する回転に相当するものを除く2変及び該2変数の三角関数で構成される高々2次式で表わす
    ことを特徴とする請求項1から請求項9のいずれか1項に記載のロボット。
  11. 前記しきい値は、
    前記ロボットを制御するに当たって許容される前記力センサーが出力する検出値に対する誤差の最大値を2乗した値に、前記2乗誤差の総和を算出するために用いたデータ数を乗じた値より小さい値である
    ことを特徴とする請求項2に記載のロボット。
  12. 前記アームは6軸であり、前記6軸のアームの一方端がベースに連結され、前記6軸のアームの他方端と前記ハンドの間に前記力センサーが介挿されている
    ことを特徴とする請求項1から請求項10のいずれか1項に記載のロボット。
  13. 前記アームは7軸であり、前記6軸のアームの一方端がベースに連結され、前記7軸のアームの他方端と前記ハンドの間に前記力センサーが介挿されている
    ことを特徴とする請求項1から請求項10のいずれか1項に記載のロボット。
  14. ハンドとアームとの間に介挿されている力センサーに対して入力される重力の影響をモデル化した定数を有するモデル式を記憶する記憶部と、
    前記力センサーが出力する検出値を用いて、前記モデル式の定数の値を算出する変数算出部と、
    前記変数算出部が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正するとで、前記力センサーの検出値を補正する補正部と、
    前記補正部が補正した前記力センサーの検出値を用いて、前記アーム及び前記ハンドの動作を制御するアーム制御部と、
    を備えることを特徴とするロボット制御装置。
  15. ハンドとアームとの間に介挿されている力センサーを有するロボットを制御するロボット制御装置のロボット制御方法であって、
    変数算出部が、前記力センサーが出力する検出値を用いて、記憶部に記憶されている前記力センサーに対して入力される重力の影響をモデル化した定数を有するモデル式の定数の値を算出する変数算出工程と、
    補正部が、前記変数算出工程が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正する補正工程と、
    アーム制御部が、前記補正部が補正した前記力センサーの検出値を用いて、前記アーム及び前記ハンドの動作を制御するアーム制御工程と、
    を含むことを特徴とするロボット制御方法。
  16. ハンドとアームとの間に介挿されている力センサーを有するロボットを制御するロボット制御の処理をコンピューターに実行させるためのプログラムであり、
    前記力センサーが出力する検出値を用いて、記憶部に記憶されている前記力センサーに対して入力される重力の影響をモデル化した定数を有するモデル式の定数の値を算出する変数算出手順と、
    前記変数算出手段が算出した定数を前記モデル式に代入して前記力センサーに対して入力される重力の影響の補正値を算出し、前記力センサーが出力する検出値を、前記算出した補正値を用いて補正することで、前記力センサーの検出値を補正する補正手順と、
    前記補正手順が補正した前記力センサーの検出値を用いて、前記アーム及び前記ハンドの動作を制御するアーム制御手順と、
    をコンピューターに実行させるためのプログラム。
JP2011152784A 2011-07-11 2011-07-11 ロボット、ロボット制御装置、ロボット制御方法、およびプログラム Expired - Fee Related JP5849477B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011152784A JP5849477B2 (ja) 2011-07-11 2011-07-11 ロボット、ロボット制御装置、ロボット制御方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011152784A JP5849477B2 (ja) 2011-07-11 2011-07-11 ロボット、ロボット制御装置、ロボット制御方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2013018075A true JP2013018075A (ja) 2013-01-31
JP5849477B2 JP5849477B2 (ja) 2016-01-27

Family

ID=47690038

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011152784A Expired - Fee Related JP5849477B2 (ja) 2011-07-11 2011-07-11 ロボット、ロボット制御装置、ロボット制御方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP5849477B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160052135A1 (en) * 2014-08-25 2016-02-25 Seiko Epson Corporation Robot and robot system
JP2017087325A (ja) * 2015-11-06 2017-05-25 キヤノン株式会社 ロボット制御装置、ロボット制御方法、ロボット制御システムおよびコンピュータプログラム
JP2018158439A (ja) * 2018-03-15 2018-10-11 株式会社東芝 物体ハンドリング装置、制御装置、および較正方法
US11318619B2 (en) 2017-03-22 2022-05-03 Kabushiki Kaisha Toshiba Object handling device and calibration method thereof
CN115847392A (zh) * 2021-09-26 2023-03-28 苏州艾利特机器人有限公司 一种力传感器空载读数补偿方法、装置及存储介质
US11691293B2 (en) 2018-08-31 2023-07-04 Fanuc Corporation Robot

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6274594A (ja) * 1985-09-30 1987-04-06 松下電器産業株式会社 ロボツト装置の力センサ較正方法
JPH02237782A (ja) * 1989-03-10 1990-09-20 Matsushita Electric Ind Co Ltd 複腕ロボット
JPH05116081A (ja) * 1991-10-25 1993-05-14 Hitachi Constr Mach Co Ltd 力制御作業機械の重量・重心位置補正装置
JPH07237165A (ja) * 1994-02-24 1995-09-12 Hitachi Constr Mach Co Ltd ロボットの工具交換確認方法
JP2011011315A (ja) * 2009-07-06 2011-01-20 Canon Inc 部品組付け方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6274594A (ja) * 1985-09-30 1987-04-06 松下電器産業株式会社 ロボツト装置の力センサ較正方法
JPH02237782A (ja) * 1989-03-10 1990-09-20 Matsushita Electric Ind Co Ltd 複腕ロボット
JPH05116081A (ja) * 1991-10-25 1993-05-14 Hitachi Constr Mach Co Ltd 力制御作業機械の重量・重心位置補正装置
JPH07237165A (ja) * 1994-02-24 1995-09-12 Hitachi Constr Mach Co Ltd ロボットの工具交換確認方法
JP2011011315A (ja) * 2009-07-06 2011-01-20 Canon Inc 部品組付け方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160052135A1 (en) * 2014-08-25 2016-02-25 Seiko Epson Corporation Robot and robot system
JP2017087325A (ja) * 2015-11-06 2017-05-25 キヤノン株式会社 ロボット制御装置、ロボット制御方法、ロボット制御システムおよびコンピュータプログラム
US11318619B2 (en) 2017-03-22 2022-05-03 Kabushiki Kaisha Toshiba Object handling device and calibration method thereof
JP2018158439A (ja) * 2018-03-15 2018-10-11 株式会社東芝 物体ハンドリング装置、制御装置、および較正方法
US11691293B2 (en) 2018-08-31 2023-07-04 Fanuc Corporation Robot
CN115847392A (zh) * 2021-09-26 2023-03-28 苏州艾利特机器人有限公司 一种力传感器空载读数补偿方法、装置及存储介质
CN115847392B (zh) * 2021-09-26 2023-10-27 苏州艾利特机器人有限公司 一种力传感器空载读数补偿方法、装置及存储介质

Also Published As

Publication number Publication date
JP5849477B2 (ja) 2016-01-27

Similar Documents

Publication Publication Date Title
JP5849477B2 (ja) ロボット、ロボット制御装置、ロボット制御方法、およびプログラム
JP6380828B2 (ja) ロボット、ロボットシステム、制御装置、及び制御方法
JP6314426B2 (ja) ロボット制御装置およびロボット制御方法
US20160184996A1 (en) Robot, robot system, control apparatus, and control method
JP6007636B2 (ja) ロボット制御システム及びロボット制御装置
JP6108860B2 (ja) ロボットシステム及びロボットシステムの制御方法
JP6733239B2 (ja) 制御装置及びロボットシステム
JP6174654B2 (ja) センサの位置と向きを算出する機能を備えたロボットシステム
CN108145728B (zh) 机器人控制装置以及推定施加给机器人的干扰值的方法
JP5834545B2 (ja) ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム
JPWO2015129473A1 (ja) ロボットアーム装置、キャリブレーション方法及びプログラム
JP6795540B2 (ja) ロボットを用いた負荷の重量及び重心位置を推定するための装置、方法及びプログラム
JP2017170571A (ja) ロボット、ロボット制御装置、及びロボットシステム
JP6003312B2 (ja) ロボットシステム
JP2015089584A (ja) ロボットの制御方法及びロボットシステム
JP2020201125A (ja) 姿勢推定装置、姿勢推定方法、および姿勢推定プログラム
JP5948914B2 (ja) ロボット制御装置、ロボット制御方法、ロボット制御プログラムおよびロボットシステム
JP7155743B2 (ja) ロボットシステム、ロボット、及び制御方法
CN115919250A (zh) 一种人体动态关节角测量系统
Chavez et al. Contact force and joint torque estimation using skin
Lippiello et al. Robot interaction control using force and vision
JP2020175471A (ja) 情報処理装置、情報処理方法、プログラム、及び記録媒体
JP6091272B2 (ja) 多関節ロボットのバネ定数補正装置
JP2013094947A (ja) ロボットアーム
JP2011255500A (ja) 脚式移動ロボットの制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140627

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150525

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: 20151104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151117

R150 Certificate of patent or registration of utility model

Ref document number: 5849477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees