(57)【特許請求の範囲】
【請求項１】
ロボットアームを有するロボットと、
前記ロボットアームを構成する構造材料よりも固有振動数が大きい圧電体を有するひずみセンサと、
前記ひずみセンサの出力値に基づいて、前記ロボットアームに対する物体の接触の有無を判定する判定部を備えた制御ユニットと、を有し、
前記制御ユニットは、
前記ロボットアームが接触がない状態で所定の動作を行う間の前記ひずみセンサの出力値の時間履歴を規範データとして記録する規範データ記録部を有し、
前記判定部は、
稼働時において、前記ロボットアームが前記所定の動作を行う際の前記ひずみセンサの出力値の出力データと、前記規範データ記録部に記録された前記規範データとを比較することにより、前記ロボットアームに対する瞬間的な物体の接触の有無を判定する
ことを特徴とするロボットシステム。
【請求項２】
前記判定部は、
前記出力データと前記規範データとの差が予め設定された閾値の範囲内である場合には、前記ロボットアームに接触がない状態であると判定し、前記差が前記閾値を超えた場合には、前記ロボットアームに接触があったと判定する
ことを特徴とする請求項１に記載のロボットシステム。
【請求項３】
前記制御ユニットは、
前記閾値を設定する閾値設定部をさらに有する
ことを特徴とする請求項２に記載のロボットシステム。
【請求項４】
前記制御ユニットは、
前記規範データ記録部により前記ひずみセンサの出力値の時間履歴を前記規範データとして記録する区間を設定する区間設定部をさらに有する
ことを特徴とする請求項１〜３のいずれか１項に記載のロボットシステム。
【請求項５】
前記制御ユニットは、
前記区間設定部で設定した区間に対応する前記所定の動作を前記ロボットアームが実行する毎に、前記ひずみセンサの零点調整を行う零点調整部をさらに有する
ことを特徴とする請求項４に記載のロボットシステム。
【請求項６】
前記制御ユニットは、
前記ひずみセンサの出力信号の高周波振動成分を抽出するハイパスフィルタ部をさらに有し、
前記判定部は、
前記ハイパスフィルタ部により抽出された前記高周波振動成分に基づく前記規範データと前記出力データとを比較することにより、前記ロボットアームに対する接触の有無を判定する
ことを特徴とする請求項１〜５のいずれか１項に記載のロボットシステム。
【請求項７】
前記制御ユニットは、
前記ひずみセンサの出力信号の低周波振動成分を抽出するローパスフィルタ部をさらに有し、
前記判定部は、
前記ローパスフィルタ部により抽出された前記低周波振動成分に基づく前記規範データと前記出力データとを比較することにより、前記ロボットアームに対する接触の有無を判定する
ことを特徴とする請求項１〜６のいずれか１項に記載のロボットシステム。
【請求項８】
前記ひずみセンサは、
圧電体として水晶が用いられたセンサである
ことを特徴とする請求項１〜７のいずれか１項に記載のロボットシステム。
【請求項９】
ロボットアームに対する物体の接触の有無を判定するロボットの状態判定方法であって、
前記ロボットアームを構成する構造材料よりも固有振動数が大きい圧電体を有するひずみセンサの出力値を取得する出力値取得手順と、
前記ひずみセンサの出力値に基づいて、前記ロボットアームに対する物体の接触の有無を判定する判定手順と、
前記ロボットアームが接触がない状態で所定の動作を行う間に、前記ひずみセンサの出力値の時間履歴を規範データとして記録する規範データ記録手順と、を有し、
前記判定手順は、
稼働時において、前記ロボットアームが前記所定の動作を行う際の前記ひずみセンサの出力値の出力データと、前記記録された規範データとを比較することにより、前記ロボットアームに対する瞬間的な物体の接触の有無を判定する
ことを特徴とするロボットの状態判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアームを有するロボット、ひずみセンサ、及び制御ユニットを有するロボットシステム、並びに、ロボットの状態判定方法に関する。
【背景技術】
【０００２】
ロボットの分野では、ロボット自身あるいはロボットの周囲に存在する物体に対して過剰な負荷が生じることを回避することが求められている。このため、ロボットに対する接触（外力）の有無を検出することが必要となる。
【０００３】
例えば、特許文献１には、ロボットアームの基端に外力を検出するための力検出器を取り付け、力検出器の検出結果に基づいてロボットアームの動作を停止させたり、過度な外力がかかった場合に外力が低減する方向にロボットアームを動作させる等の技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２１２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記従来技術において、ロボットの機能性の向上を図るためには、ロボットアームに対する接触の有無等を高精度に検出することが要求される。
【０００６】
上記従来技術では、力検出器で検出した力よりロボットアーム自身の動作により生じる内力を差し引くことにより、ロボットアームに作用する実際の外力を算出しているため、ロボットアームの接触に対する応答性が遅いことが考えられる。また、軽度の接触や瞬間的な接触等の場合に十分な検出をすることができないことも考えられる。
【０００７】
本発明はこのような課題に鑑みてなされたものであり、ロボットの機能性を向上できるロボットシステム及びロボットの状態判定方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明のロボットシステムは、ロボットアームを有するロボットと、前記ロボットアームを構成する構造材料よりも固有振動数が大きい圧電体を有するひずみセンサと、前記ひずみセンサの出力値に基づいて、前記ロボットアームに対する物体の接触の有無を判定する判定部を備えた制御ユニットと、を有し、前記制御ユニットは、前記ロボットアームが接触がない状態で所定の動作を行う間の前記ひずみセンサの出力値の時間履歴を規範データとして記録する規範データ記録部を有し、前記判定部は、稼働時において、前記ロボットアームが前記所定の動作を行う際の前記ひずみセンサの出力値の出力データと、前記規範データ記録部に記録された前記規範データとを比較することにより、前記ロボットアームに対する瞬間的な物体の接触の有無を判定することを特徴としている。
【００１０】
また、前記判定部は、前記出力データと前記規範データとの差が予め設定された閾値の範囲内である場合には、前記ロボットアームに接触がない状態であると判定し、前記差が前記閾値を超えた場合には、前記ロボットアームに接触があったと判定することが好ましい。
【００１１】
また、前記制御ユニットは、前記閾値を設定する閾値設定部をさらに有することが好ましい。
【００１２】
また、前記制御ユニットは、前記規範データ記録部により前記ひずみセンサの出力値の時間履歴を前記規範データとして記録する区間を設定する区間設定部をさらに有することが好ましい。
【００１３】
また、前記制御ユニットは、前記区間設定部で設定した区間に対応する前記所定の動作を前記ロボットアームが実行する毎に、前記ひずみセンサの零点調整を行う零点調整部をさらに有することが好ましい。
【００１４】
また、前記制御ユニットは、前記ひずみセンサの出力信号の高周波振動成分を抽出するハイパスフィルタ部をさらに有し、前記判定部は、前記ハイパスフィルタ部により抽出された前記高周波振動成分に基づく前記規範データと前記出力データとを比較することにより、前記ロボットアームに対する接触の有無を判定することが好ましい。
【００１５】
また、前記制御ユニットは、前記ひずみセンサの出力信号の低周波振動成分を抽出するローパスフィルタ部をさらに有し、前記判定部は、前記ローパスフィルタ部により抽出された前記低周波振動成分に基づく前記規範データと前記出力データとを比較することにより、前記ロボットアームに対する接触の有無を判定することが好ましい。
【００１６】
また、前記ひずみセンサは、圧電体として水晶が用いられたセンサであることが好ましい。
【００１７】
また、本発明のロボットの状態判定方法は、ロボットアームに対する物体の接触の有無を判定するロボットの状態判定方法であって、前記ロボットアームを構成する構造材料よりも固有振動数が大きい圧電体を有するひずみセンサの出力値を取得する出力値取得手順と、前記ひずみセンサの出力値に基づいて、前記ロボットアームに対する物体の接触の有無を判定する判定手順と、前記ロボットアームが接触がない状態で所定の動作を行う間に、前記ひずみセンサの出力値の時間履歴を規範データとして記録する規範データ記録手順と、を有し、前記判定手順は、稼働時において、前記ロボットアームが前記所定の動作を行う際の前記ひずみセンサの出力値の出力データと、前記記録された規範データとを比較することにより、前記ロボットアームに対する瞬間的な物体の接触の有無を判定することを特徴としている。
【発明の効果】
【００１９】
本発明によれば、ロボットの機能性を向上することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施の形態のロボットシステムの全体構成を概念的に表すシステム構成図である。
【図２】ロボットの構成を表すロボットの上面図である。
【図３】ロボットコントローラの機能構成を表す機能ブロック図である。
【図４】接触検出部の機能構成を表す機能ブロック図である。
【図５】センサ部、ハイパスフィルタ部、及び判定部の詳細を説明するための説明図である。
【図６】アームが物体の接触のない状態で実行する所定の動作、及び、その間のセンサの出力値を説明するための説明図である。
【図７】稼働時においてアームが実行する所定の動作、及び、その間のセンサの出力値を説明するための説明図である。
【図８】アームに対する物体の接触を検出する手法を説明するための説明図である。
【図９】ロボットコントローラが実行する、本発明の一実施の形態のロボットの状態判定方法による制御手順を表すフローチャートである。
【図１０】障害物の接触検出に適用する変形例において、稼働時においてアームが実行する所定の動作を表す模式図である。
【発明を実施するための形態】
【００２１】
以下、本発明の一実施の形態について図面を参照しつつ説明する。本実施形態は、本発明のロボットシステム及びロボットの状態判定方法を、一例として、２つのロボットアームを有する双腕ロボットによる物品把持制御に適用した場合の例である。
【００２２】
図１は、本実施形態のロボットシステムの全体構成を概念的に表すシステム構成図である。図２は、ロボットの構成を表すロボットの上面図である。
【００２３】
図１及び図２において、本実施形態のロボットシステム１は、複数の物品Ｐを搬送するベルトコンベア２の一方側に設けられたロボット１００と、このロボット１００を制御するロボットコントローラ１５０（制御ユニット）とを備えている。ロボット１００は、双腕ロボットであり、基台１０１、胴体部１０２、２つのアーム１０３Ｌ，１０３Ｒ（ロボットアーム）、及び、２つのセンサ部１２０Ｌ，１２０Ｒを有している。
【００２４】
基台１０１は、設置面（床部等）に対し図示しないアンカーボルト等により固定されている。胴体部１０２は、回転軸Ａｘ１周りに回転駆動するアクチュエータＡｃ１が設けられた第１関節部を有している。この胴体部１０２は、基台１０１に対し第１関節部を介して旋回可能に設置されており、第１関節部に設けられたアクチュエータＡｃ１の駆動により上記設置面と略水平な方向に沿って旋回する。また、この胴体部１０２は、別体として構成されたアーム１０３Ｌ，１０３Ｒを、それぞれ一方側（図１及び図２中右側）及び他方側（図１及び図２中左側）において支持する。
【００２５】
アーム１０３Ｌは、胴体部１０２の一方側に設けられたマニピュレータであり、肩部１０４Ｌ、上腕Ａ部１０５Ｌ、上腕Ｂ部１０６Ｌ、下腕部１０７Ｌ、手首Ａ部１０８Ｌ、手首Ｂ部１０９Ｌ、フランジ１１０Ｌ、及びハンド１１１Ｌと、これら各部をそれぞれ回転駆動するアクチュエータＡｃ２〜Ａｃ８がそれぞれ設けられた第２〜第８関節部とを有している。
【００２６】
肩部１０４Ｌは、胴体部１０２に対し第２関節部を介して回転可能に連結されており、第２関節部に設けられたアクチュエータＡｃ２の駆動により上記設置面に対して略水平な回転軸Ａｘ２周りに回転する。上腕Ａ部１０５Ｌは、肩部１０４Ｌに対し第３関節部を介して旋回可能に連結されており、第３関節部に設けられたアクチュエータＡｃ３の駆動により回転軸Ａｘ２に対して直交する回転軸Ａｘ３周りに旋回する。上腕Ｂ部１０６Ｌは、上腕Ａ部１０５Ｌの先端に対し第４関節部を介して回転可能に連結されており、第４関節部に設けられたアクチュエータＡｃ４の駆動により回転軸Ａｘ３に対して直交する回転軸Ａｘ４周りに回転する。下腕部１０７Ｌは、上腕Ｂ部１０６Ｌに対し第５関節部を介して旋回可能に連結されており、第５関節部に設けられたアクチュエータＡｃ５の駆動により回転軸Ａｘ４に対して直交する回転軸Ａｘ５周りに旋回する。手首Ａ部１０８Ｌは、下腕部１０７Ｌの先端に対し第６関節部を介して回転可能に連結されており、第６関節部に設けられたアクチュエータＡｃ６の駆動により回転軸Ａｘ５に対して直交する回転軸Ａｘ６周りに回転する。手首Ｂ部１０９Ｌは、手首Ａ部１０８Ｌに対し第７関節部を介して旋回可能に連結されており、第７関節部に設けられたアクチュエータＡｃ７の駆動により回転軸Ａｘ６に対して直交する回転軸Ａｘ７周りに旋回する。フランジ１１０Ｌは、手首Ｂ部１０９Ｌの先端に対し第８関節部を介して回転可能に連結されており、第８関節部に設けられたアクチュエータＡｃ８の駆動により回転軸Ａｘ７に対して直交する回転軸Ａｘ８周りに回転する。ハンド１１１Ｌは、フランジ１１０Ｌの先端に対し取り付けられており、フランジ１１０Ｌの回転により従動的に回転する。
【００２７】
アーム１０３Ｒは、胴体部１０２の他方側に設けられたマニピュレータであり、上記アーム１０３Ｌと同様の構造を備えている。このアーム１０３Ｒは、肩部１０４Ｒ、上腕Ａ部１０５Ｒ、上腕Ｂ部１０６Ｒ、下腕部１０７Ｒ、手首Ａ部１０８Ｒ、手首Ｂ部１０９Ｒ、フランジ１１０Ｒ、及びハンド１１１Ｒと、これら各部をそれぞれ回転駆動するアクチュエータＡｃ９〜Ａｃ１５がそれぞれ設けられた第９〜第１５関節部とを有している。
【００２８】
肩部１０４Ｒは、胴体部１０２に対し第９関節部を介して回転可能に連結されており、第９関節部に設けられたアクチュエータＡｃ９の駆動により上記設置面に対して略水平な回転軸Ａｘ９周りに回転する。上腕Ａ部１０５Ｒは、肩部１０４Ｒに対し第１０関節部を介して旋回可能に連結されており、第１０関節部に設けられたアクチュエータＡｃ１０の駆動により回転軸Ａｘ９に対して直交する回転軸Ａｘ１０周りに旋回する。上腕Ｂ部１０６Ｒは、上腕Ａ部１０５Ｒの先端に対し第１１関節部を介して回転可能に連結されており、第１１関節部に設けられたアクチュエータＡｃ１１の駆動により回転軸Ａｘ１０に対して直交する回転軸Ａｘ１１周りに回転する。下腕部１０７Ｒは、上腕Ｂ部１０６Ｒに対し第１２関節部を介して旋回可能に連結されており、第１２関節部に設けられたアクチュエータＡｃ１２の駆動により回転軸Ａｘ１１に対して直交する回転軸Ａｘ１２周りに旋回する。手首Ａ部１０８Ｒは、下腕部１０７Ｒの先端に対し第１３関節部を介して回転可能に連結されており、第１３関節部に設けられたアクチュエータＡｃ１３の駆動により回転軸Ａｘ１２に対して直交する回転軸Ａｘ１３周りに回転する。手首Ｂ部１０９Ｒは、手首Ａ部１０８Ｒに対し第１４関節部を介して旋回可能に連結されており、第１４関節部に設けられたアクチュエータＡｃ１４の駆動により回転軸Ａｘ１３に対して直交する回転軸Ａｘ１４周りに旋回する。フランジ１１０Ｒは、手首Ｂ部１０９Ｒの先端に対し第１５関節部を介して回転可能に連結されており、第１５関節部に設けられたアクチュエータＡｃ１５の駆動により回転軸Ａｘ１４に対して直交する回転軸Ａｘ１５周りに回転する。ハンド１１１Ｒは、フランジ１１０Ｒの先端に対し取り付けられており、フランジ１１０Ｒの回転により従動的に回転する。
【００２９】
なお、この例では、アーム１０３Ｌ，１０３Ｒは、７つの関節部すなわち７自由度（冗長自由度）を有しているが、アーム１０３Ｌ，１０３Ｒの自由度は「７」に限られない。
【００３０】
これらアーム１０３Ｌ，１０３Ｒの肩部１０４Ｌ，１０４Ｒ、上腕Ａ部１０５Ｌ，１０５Ｒ、上腕Ｂ部１０６Ｌ，１０６Ｒ、下腕部１０７Ｌ，１０７Ｒ、手首Ａ部１０８Ｌ，１０８Ｒ、手首Ｂ部１０９Ｌ，１０９Ｒ、フランジ１１０Ｌ，１１０Ｒ、及びハンド１１１Ｌ，１１１Ｒを構成する構造材料は、例えば鉄やアルミニウム等の金属材料により構成されている。
【００３１】
また、図２に示すように、第１関節部の回転軸Ａｘ１と第２及び第９関節部の各回転軸Ａｘ２，Ａｘ９とは、上記設置面と略水平な方向に長さＤ１だけオフセットされるように、基台１０１に対して胴体部１０２が第１関節部から第２及び第９関節部にかけて水平前方にせり出すように形成されている。これにより、肩部１０４Ｌ，１０４Ｒの下方側の空間を作業スペースとすることができると共に、回転軸Ａｘ１を回転させることでアーム１０３Ｌ，１０３Ｒの可到範囲が拡大される。
【００３２】
さらに、第１１関節部の回転軸Ａｘ１１と第１２関節部の回転軸Ａｘ１２とは、上面視での位置が長さＤ２だけオフセットされるように、上腕Ｂ部１０６Ｒの形状が設定されている。そして、第１２関節部の回転軸Ａｘ１２と第１３関節部の回転軸Ａｘ１３とは、上面視での位置が長さＤ３だけオフセットされるように、下腕部１０７Ｒの形状が設定されており、回転軸Ａｘ１１と回転軸Ａｘ１３とが略水平となる姿勢をとったときに、回転軸Ａｘ１１と回転軸Ａｘ１３とのオフセット長さが（Ｄ２＋Ｄ３）となるようになっている。これにより、人間の「肘」に相当する第１２関節部を屈曲させたときに、人間の「上腕」に相当する上腕Ａ部１０５Ｒ及び上腕Ｂ部１０６Ｒと、人間の「下腕」に相当する下腕Ａ部１０７Ｒとの間のクリアランスを大きく確保することができ、ハンド１１１Ｒをより胴体部１０２に近づけた場合でもアーム１０３Ｒの動作自由度が拡大される。
【００３３】
またさらに、図２では明示していないが、アーム１０３Ｌについても同様に、第４関節部の回転軸Ａｘ４と第５関節部の回転軸Ａｘ５とは、上面視での位置が長さＤ２だけオフセットされるように、上腕Ｂ部１０６Ｌの形状が設定されている。そして、第５関節部の回転軸Ａｘ５と第６関節部の回転軸Ａｘ６とは、上面視での位置が長さＤ３だけオフセットされるように、下腕部１０７Ｌの形状が設定されており、回転軸Ａｘ４と回転軸Ａｘ６とが略水平となる姿勢をとったときに、回転軸Ａｘ４と回転軸Ａｘ６とのオフセット長さが（Ｄ２＋Ｄ３）となるようになっている。
【００３４】
センサ部１２０Ｌ，１２０Ｒは、それぞれ、図２に示すように、円盤状のセンサ固定治具１２１と、少なくとも１個（この例では３個）の略直方体状のセンサ１２２（ひずみセンサ）とにより構成されている。センサ部１２０Ｌのセンサ固定治具１２１は、アーム１０３Ｌの最も基端側に設けられたアクチュエータＡｃ２の固定子の基部に取り付けられ、このセンサ固定治具１２１に設けられた各センサ１２２は、アーム１０３Ｌにかかる力（詳細には、力の大きさそのものではなく、アーム１０３Ｌにかかる衝撃力に起因する振動等によるひずみ量）をそれぞれ検出可能となっている。センサ部１２０Ｒのセンサ固定治具１２１は、アーム１０３Ｒの最も基端側に設けられたアクチュエータＡｃ９の固定子の基部に取り付けられ、このセンサ固定治具１２１に設けられた各センサ１２２は、アーム１０３Ｒにかかる力（詳細には、力の大きさそのものではなく、アーム１０３Ｒにかかる衝撃力に起因する振動等によるひずみ量）をそれぞれ検出可能となっている。このセンサ部１２０Ｌ，１２０Ｒの詳細については、後述する。
【００３５】
上記のように構成されたロボット１００は、アーム１０３Ｌ，１０３Ｒが上記ベルトコンベア２上の物品Ｐの両側より内側に向けて動作し、アーム１０３Ｌ，１０３Ｒに対する物体の接触が検出された際に、動作を停止してハンド１１１Ｌ，１１１Ｒで物品Ｐを把持するように、各アクチュエータＡｃ１〜Ａｃ１５を含む各駆動部位の動作が、ロボットコントローラ１５０により制御されている。また、各アクチュエータＡｃ１〜Ａｃ１５は、それぞれ、図示しないケーブルを挿通可能な中空部を有する減速機一体型のサーボモータにより構成されており、各アクチュエータＡｃ１〜Ａｃ１５の回転位置は、各アクチュエータＡｃ１〜Ａｃ１５に内蔵された図示しないエンコーダからの信号として、ロボットコントローラ１５０にケーブルを介して入力されるようになっている。
【００３６】
図３は、ロボットコントローラ１５０の機能構成を表す機能ブロック図である。
【００３７】
図３において、ロボットコントローラ１５０は、図示しない演算器、記憶装置、入力装置等を備えたコンピュータにより構成されており、ロボット１００の各駆動部位や各センサ１２２とケーブルを介して相互通信可能に接続されている。このロボットコントローラ１５０は、動作指令部１５１、位置指令遮断部１５２、平滑化処理部１５３、サーボ部１５４、接触検出部１５５、把持トルク補償部１５６、及び重力トルク補償部１５７を有している。
【００３８】
動作指令部１５１は、入力装置を介して教示された各アーム１０３Ｌ，１０３Ｒに対する教示情報（動作開始位置及び動作完了位置の情報）等に基づき、各アクチュエータＡｃ１〜Ａｃ１５に対する位置指令（動作指令）をそれぞれ算出し、位置指令遮断部１５２を介して平滑化処理部１５３にプールする。
【００３９】
平滑化処理部１５３は、所定の演算周期毎に、プールされた上記位置指令をサーボ部１５４に順次出力する。
【００４０】
サーボ部１５４は、各アクチュエータＡｃ１〜Ａｃ１５毎に、各アクチュエータＡｃ１〜Ａｃ１５のエンコーダの検出値による関節角度フィードバック回路Ｆｐと、各アクチュエータＡｃ１〜Ａｃ１５のエンコーダの検出値から得られる角速度検出値による関節角度フィードバック回路Ｆｖとを有している。このサーボ部１５４は、平滑化処理部１５３より順次入力される上記位置指令に基づき、上記所定の演算周期毎に、各アクチュエータＡｃ１〜Ａｃ１５に対するトルク指令Ｔｒｅｆを生成して出力する。
【００４１】
接触検出部１５５は、センサ部１２０Ｌ，１２０Ｒの各センサ１２２の出力値Ｖ（出力信号）に基づき、ロボット１００が常態であるか非常態であるかを検出する。なお、本明細書では、アーム１０３Ｌ，１０３Ｒに対し物体の接触がない状態を常態と定義し、アーム１０３Ｌ，１０３Ｒに対し物体の接触がある状態を非常態と定義する。また、「もの」として認識しうる対象物を物体と定義する。したがって、物体には、把持対象である物品Ｐのほか、ロボット１００自身、ベルトコンベア２などの作業機器、壁などの建造物の一部、人体などの生物体等も含まれる。すなわち、本実施形態では、接触検出部１５５は、センサ部１２０Ｌ，１２０Ｒの各センサ１２２の出力値Ｖ（出力信号）に基づき、アーム１０３Ｌ，１０３Ｒに対する物体の接触の有無を検出する。この接触検出部１５５の詳細については、後述する。
【００４２】
位置指令遮断部１５２は、接触検出部１５５によりアーム１０３Ｌ，１０３Ｒに対する物体の接触が検出された場合に、動作指令部１５１から平滑化処理部１５３への上記位置指令の出力を遮断し、サーボ部１５４に伝達される位置指令を遮断する。なお、サーボ部１５４への位置指令が遮断されると、フィードバックにより出力されるトルク指令Ｔｒｅｆの値が減少して、アーム１０３Ｌ，１０３Ｒは速やかに停止動作に入る。
【００４３】
把持トルク補償部１５６は、各アクチュエータＡｃ１〜Ａｃ１５に対するサーボ部１５４により生成される上記トルク指令Ｔｒｅｆに、アーム１０３Ｌ，１０３Ｒが物品Ｐを把持するための把持補償トルクを付加する。
【００４４】
重力トルク補償部１５７は、各アクチュエータＡｃ１〜Ａｃ１５に対するサーボ部１５４により生成される上記トルク指令Ｔｒｅｆに、自重分の重力補償トルクを付加する。
【００４５】
図４は、接触検出部１５５の機能構成を表す機能ブロック図である。
【００４６】
図４において、接触検出部１５５は、ハイパスフィルタ部１６１、区間設定部１６２、規範データ記録部１６３、判定部１６４、零点調整部１６５、及び閾値設定部１６６を有している。
【００４７】
ハイパスフィルタ部１６１は、センサ部１２０Ｌ，１２０Ｒの各センサ１２２の出力信号に含まれる外乱に起因する周波数成分を除去するために、各センサ１２２の出力信号の高周波振動成分をそれぞれ抽出する。このハイパスフィルタ部１６１の詳細については、後述する。
【００４８】
区間設定部１６２は、入力装置を介して入力された入力情報に基づき、規範データ記録部１６３によりセンサ１２２の出力値Ｖの時間履歴を波形で表した規範波形（規範データ）として記録する区間（以下適宜、単に「記録区間」と称する）を設定する。
【００４９】
規範データ記録部１６３は、常態時に、すなわち物体の接触のない状態で、区間設定部１６２で設定した記録区間に対応する所定の動作を、アーム１０３Ｌ，１０３Ｒが行う間の、ハイパスフィルタ部１６１により抽出された高周波振動成分に基づく各センサ１２２の出力値Ｖの時間履歴を、各センサ１２２毎に規範波形としてそれぞれ記録する。なお、所定の動作とは、入力装置を介して教示された教示情報（動作開始位置及び動作完了位置の情報）等に基づいて上記動作指令部１５１により算出された位置指令に応じた動作である。
【００５０】
閾値設定部１６６は、入力装置を介して入力された入力情報に基づき、判定部１６４における接触有無の判定値となる閾値Ｄｔｈを設定する。
【００５１】
判定部１６４は、稼働時においてアーム１０３Ｌ，１０３Ｒが上記所定の動作を行う際のハイパスフィルタ部１６１により抽出された高周波振動成分に基づく各センサ１２２の出力値Ｖの出力データと、規範データ記録部１６３に各センサ１２２毎に記録された規範波形とを、各センサ１２２毎にそれぞれ比較することにより、各センサ１２２毎に出力データと規範波形との差（詳細には当該差の絶対値）｜Ｄ｜をそれぞれ算出する。そして、各センサ１２２毎に算出した差｜Ｄ｜と、閾値設定部１６６により予め設定された閾値Ｄｔｈとを、各センサ１２２毎にそれぞれ比較することにより、ロボット１００が常態であるか非常態であるか、すなわちアーム１０３Ｌ，１０３Ｒに対する物体の接触の有無を判定する。この判定部１６４の詳細については、後述する。
【００５２】
零点調整部１６５は、アーム１０３Ｌ，１０３ＲのアクチュエータＡｃ２〜Ａｃ１５の発熱等による周囲温度の変動や自己発熱によって生じる各センサ１２２の温度ドリフトの影響を抑制するために、区間設定部１６２で設定した記録区間に対応する上記所定の動作をアーム１０３Ｌ，１０３Ｒが実行する毎に、各センサ１２２に対しリセット信号をそれぞれ出力して、各センサ１２２の零点調整をそれぞれ行う。
【００５３】
図５は、センサ部１２０Ｌ，１２０Ｒ、ハイパスフィルタ部１６１、及び判定部１６４の詳細を説明するための説明図である。
【００５４】
図５において、前述したように、センサ部１２０Ｌ，１２０Ｒは、それぞれ、円盤状のセンサ固定治具１２１と、３個の略直方体状のセンサ１２２とにより構成されている。センサ部１２０Ｌの３個のセンサ１２２は、センサ固定治具１２１の内側の面、すなわち上記アクチュエータＡｃ２の固定子の基部への取り付け面ではない方の面（図２中左側の面、図５中紙面手前側の面）に、略同一円周上に略等間隔に配置され、各センサ１２２が放射状の向きとなるように配置されている。センサ部１２０Ｒの３個のセンサ１２２は、センサ固定治具１２１の内側の面、すなわち上記アクチュエータＡｃ９の固定子の基部への取り付け面ではない方の面（図２中右側の面、図５中紙面手前側の面）に、略同一円周上に略等間隔に配置され、各センサ１２２が放射状の向きとなるように配置されている。
【００５５】
本実施形態では、各センサ１２２として、アーム１０３Ｌ，１０３Ｒの各部を構成する構造材料である上記金属材料よりも固有振動数（あるいは剛性）が大きい材質の圧電体を有する力センサ、この例では圧電体として水晶が用いられたセンサが、それぞれ使用されている。これは、一般に、固有振動数が大きい力センサほど、より高い周波数成分を含んだ変動力を検出することができ、水晶は、アーム１０３Ｌ，１０３Ｒの各部を構成する構造材料である上記金属材料よりも固有振動数（あるいは剛性）が大きいためである。したがって、アーム１０３Ｌ，１０３Ｒの各部の構造材料に伝わる微小な高周波振動（速い変形）までも検知することができる。
【００５６】
なお、各センサ１２２としては、圧電体として水晶が用いられたセンサに限られず、アーム１０３Ｌ，１０３Ｒの各部を構成する構造材料よりも固有振動数が大きい圧電体を有する力センサであればよい。センサ部１２０Ｌの各センサ１２２は、それぞれ、アーム１０３Ｌにかかる力に起因するセンサ固定治具１２１のラジアル方向のひずみ量を電圧として検出し、センサ部１２０Ｒの各センサ１２２は、それぞれ、アーム１０３Ｒにかかる力に起因するセンサ固定治具１２１のラジアル方向のひずみ量を電圧として検出する。各センサ部１２２で得られた電圧は、アンプ部１２３を介してそれぞれ増幅され、ハイパスフィルタ部１６１の各ハイパスフィルタ１６１Ａ（後述）にそれぞれ入力されるようになっている。
【００５７】
ハイパスフィルタ部１６１は、センサ１２２の出力信号の高周波振動成分を抽出可能な複数のハイパスフィルタ１６１Ａ（又は高周波数帯域を通過帯域とするバンドパスフィルタでもよい）を有しており、これら各ハイパスフィルタ１６１Ａにより、アンプ部１２３を介して増幅された各センサ１２２の出力信号の高周波振動成分をそれぞれ抽出する。なお、各ハイパスフィルタ１６１Ａは、例えばアクチュエータＡｃ２〜ＡＣ１５の動作等の接触以外の事象に起因する周波数成分を除去できるように、カットオフ周波数が決定されている。
【００５８】
判定部１６４は、上述したように、稼働時において各センサ１２２毎に算出した差｜Ｄ｜と、閾値設定部１６６により予め設定された閾値Ｄｔｈとを、各センサ１２２毎にそれぞれ比較することにより、アーム１０３Ｌ，１０３Ｒに対する物体の接触の有無を判定する。具体的には、各センサ１２２に係わる差｜Ｄ｜のうち、全てのセンサ１２２に係わる差｜Ｄ｜が閾値Ｄｔｈの範囲内である場合には、アーム１０３Ｌ，１０３Ｒに対する物体の接触がないと判定し、各センサ１２２に係わる差｜Ｄ｜のうち、いずれか１つのセンサ１２２に係わる差｜Ｄ｜が閾値Ｄｔｈを超えた場合には、アーム１０３Ｌ，１０３Ｒに対する物体の接触があると判定する。
【００５９】
図６は、アーム１０３Ｌ，１０３Ｒが物体の接触のない状態で実行する所定の動作、及び、その間のセンサ１２２の出力値Ｖを説明するための説明図である。なお、図６（ａ）には、アーム１０３Ｌ，１０３Ｒが物体の接触のない状態で実行する所定の動作を模式的に表している。図６（ｂ）には、横軸に時間ｔをとり、縦軸にセンサ１２２の出力値Ｖをとって、アーム１０３Ｌ，１０３Ｒが図６（ａ）に示す動作を行う間のセンサ１２２の出力値Ｖの時間履歴を波形で表している。
【００６０】
図６（ａ）（ｂ）において、例えば教示時に、アーム１０３Ｌ，１０３Ｒは、把持対象である物品Ｐが存在せず、ロボット１００の周囲（アーム１０３Ｌ，１０３Ｒの可動範囲内）に物体（障害物）が存在しないような環境下、すなわちアーム１０３Ｌ，１０３Ｒに対する物体の接触がない状態で、ロボットコントローラ１５０からの上記位置指令に応じた所定の動作、すなわち教示された動作開始位置（図６（ａ）中左側に示す位置）から教示された動作完了位置（図６（ａ）中右側に示す位置）までの動作を実行する。なお、動作完了位置は、ハンド１１１Ｌ，１１１Ｒが上記ベルトコンベア２により搬送される物品Ｐのうち最小の物品Ｐを把持可能な位置に設定されている。
【００６１】
ここで、前述したように、センサ部１２０Ｌ，１２０Ｒの各センサ１２２は、アーム１０３Ｌ，１０３Ｒにかかる力を検出している。アーム１０３Ｌ，１０３Ｒにかかる力としては、アーム１０３Ｌ，１０３Ｒ自身の動作によって生じる内力、及び、アーム１０３Ｌ，１０３Ｒに外部から作用する外力が考えられる。アーム１０３Ｌ，１０３Ｒが図６（ａ）に示すような物体の接触がない状態において動作する間は、アーム１０３Ｌ，１０３Ｒに外力が作用していないので、各センサ１２２は、内力に起因する振動だけを検出する。
【００６２】
図７は、稼働時においてアーム１０３Ｌ，１０３Ｒが実行する所定の動作、及び、その間のセンサ１２２の出力値Ｖを説明するための説明図である。なお、図７（ａ）には、稼働時においてアーム１０３Ｌ，１０３Ｒが実行する所定の動作を模式的に表している。図７（ｂ）には、横軸に時間ｔをとり、縦軸にセンサ１２２の出力値Ｖをとって、アーム１０３Ｌ，１０３Ｒが図７（ａ）に示す動作を行う間のセンサ１２２の出力値Ｖの時間履歴を波形で表している。
【００６３】
図７（ａ）（ｂ）において、稼働時には、アーム１０３Ｌ，１０３Ｒは、ロボットコントローラ１５０からの上記位置指令に応じた上記所定の動作、すなわち教示された動作開始位置（図７（ａ）中左側に示す位置）から教示された動作完了位置までの動作を実行する。このとき、アーム１０３Ｌ，１０３Ｒは、動作開始位置から上記ベルトコンベア２（図７（ａ）では図示省略）上の物品Ｐの両側より内側に向けて動作し、動作完了位置まで動作するまでの間にアーム１０３Ｌ，１０３Ｒに対する物体の接触が検出されたら、その位置（図７（ａ）中右側に示す位置）で動作を停止してハンド１１１Ｌ，１１１Ｒで物品Ｐを把持する。
【００６４】
ここで、アーム１０３Ｌ，１０３Ｒが物体の接触がない状態において動作する間は、アーム１０３Ｌ，１０３Ｒに外力が作用していないので、各センサ１２２は、内力に起因する振動だけを検出する。そして、稼働中にアーム１０３Ｌ，１０３Ｒに対して物体が接触した際（この例ではハンド１１１Ｌ，１１１Ｒの内側に対して物品Ｐが接触した際）には、アーム１０３Ｌ，１０３Ｒに内力に加え外力が作用するので、各センサ１２２は、内力及び外力に起因する振動を検出する。このため、図７（ｂ）に示すように、稼働中にアーム１０３Ｌ，１０３Ｒに対して物体が接触した際には、外力に起因する分だけセンサ１２２の出力値Ｖが大きくなる。なお、アーム１０３Ｌ，１０３Ｒは、物体の接触があった時点で動作を停止して物品Ｐを把持するので、物体の接触があった以降は、図７（ｂ）に示すようにセンサ１２２の出力値Ｖはほぼ一定の値となる。
【００６５】
図８は、アーム１０３Ｌ，１０３Ｒに対する物体の接触を検出する手法を説明するための説明図である。図８（ａ）には、横軸に時間ｔをとり、縦軸にセンサ１２２の出力値Ｖをとって、上記規範波形を表すと共に、稼働時におけるセンサ１２２の出力値Ｖの時間履歴を波形で表している。図８（ｂ）には、横軸に時間ｔをとり、縦軸に上記差｜Ｄ｜をとって、差｜Ｄ｜の時系列変化を波形で表している。
【００６６】
図８（ａ）（ｂ）において、前述したように、上記規範データ記録部１６３には、上記区間設定部１６２で設定した記録区間に対応する上記所定の動作をアーム１０３Ｌ，１０３Ｒが行う間の各センサ１２２の出力値Ｖの時間履歴が、規範波形として記録されている。なお、規範波形の記録は、アーム１０３Ｌ，１０３Ｒに対する物体の接触のない状態であればいつでも可能であるが、本実施形態ではロボット１００への所定の動作の教示時に記録する場合を一例として説明する。規範波形は、教示時にアーム１０３Ｌ，１０３Ｒが物体の接触のない状態において動作する間に実際に記録されたセンサ１２２の出力値Ｖの時間履歴のデータであるので、内力に相当する。したがって、当該規範波形と稼働時のセンサ１２２の出力値Ｖの出力データとを比較することにより、具体的には、出力データと規範波形との差｜Ｄ｜を算出することにより、稼働中にアーム１０３Ｌ，１０３Ｒに作用した外力を検出することができる。すなわち、差｜Ｄ｜は、外力に相当する。したがって、稼働中に、上記差｜Ｄ｜と、上記閾値設定部１６６により予め設定した接触有無の判定値となる閾値Ｄｔｈとを比較することにより、アーム１０３Ｌ，１０３Ｒに外力が作用したかどうか、すなわちアーム１０３Ｌ，１０３Ｒに対する物体の接触の有無を判定することができる。具体的には、上記差｜Ｄ｜が閾値Ｄｔｈの範囲内である場合には、アーム１０３Ｌ，１０３Ｒに外力が作用していない、すなわちアーム１０３Ｌ，１０３Ｒに対する物体の接触がないと判定し、上記差｜Ｄ｜が閾値Ｄｔｈを超えた場合には、アーム１０３Ｌ，１０３Ｒに外力が作用した、すなわちアーム１０３Ｌ，１０３Ｒに対する物体の接触があったと判定することができる。
【００６７】
なお、図８に示す稼働時のセンサ１２２の出力値Ｖの時間履歴の波形は、例えばボールがアーム１０３Ｌ，１０３Ｒに当たった場合のように、瞬間的に物体の接触があった場合（接触後、すぐに外力が作用しなくなる場合）における波形を一例として表したものである。上記手法によれば、このような瞬間的な接触でも検出することが可能である。本実施形態のように双腕ロボットによる物品把持制御に本手法を適用した場合には、図７において前述したように、センサ１２２の出力値Ｖの時間履歴の波形は接触があった以降はほぼ一定の値となる。
【００６８】
図９は、ロボットコントローラ１５０が実行する、本実施形態のロボットの状態判定方法による制御手順を表すフローチャートである。
【００６９】
図９において、このフローに示す処理は、例えば入力装置を介して所定の動作開始操作が行われることによって開始される。まずステップＳ１０で、ロボットコントローラ１５０は、入力装置を介して入力された入力情報に基づき、ロボット１００の動作モードが、教示を行う「教示モード」と、稼働を行う「稼働モード」とのうち、「教示モード」であるかどうかを判定する。ロボット１００の動作モードが「教示モード」である場合には、ステップＳ１０の判定が満たされて、ステップＳ２０に移る。
【００７０】
ステップＳ２０では、ロボットコントローラ１５０は、区間設定部１６２において、入力装置を介して入力された入力情報に基づき、前述の記録区間を設定する。
【００７１】
その後、ステップＳ３０で、ロボットコントローラ１５０は、零点調整部１６５において、各センサ１２２に対し上記リセット信号を出力して、各センサ１２２の零点調整を行う。
【００７２】
そして、ステップＳ４０に移り、ロボットコントローラ１５０は、入力装置を介して教示された各アーム１０３Ｌ，１０３Ｒに対する教示情報（動作開始位置及び動作完了位置の情報）等に基づいて動作指令部１５１において算出した各アクチュエータＡｃ１〜Ａｃ１５に対する位置指令を、各アクチュエータＡｃ１〜Ａｃ１５に対して出力して、物体の接触のない状態でアーム１０３Ｌ，１０３Ｒに当該位置指令に応じた所定の動作（図６（ａ）参照）を開始させる。
【００７３】
その後、ステップＳ５０で、ロボットコントローラ１５０は、各センサ１２２の出力値Ｖの入力（取得）を開始すると共に、規範データ記録部１６３において、各センサ１２２毎に規範波形の記録を開始する。したがって、物体の接触のない状態で、上記ステップＳ２０で設定した記録区間に対応する上記ステップＳ４０で開始した所定の動作をアーム１０３Ｌ，１０３Ｒが行う間は、上記アンプ部１２３を介して増幅され、上記各ハイパスフィルタ１６１Ａにより抽出された高周波振動成分に基づく各センサ１２２の出力値Ｖを入力すると共に、規範データ記録部１６３は、当該入力した各センサ１２２の出力値Ｖの時間履歴を、各センサ１２２毎に規範波形として記録する。
【００７４】
そして、アーム１０３Ｌ，１０３Ｒが動作完了位置まで動作したら、ステップＳ６０に移り、ロボットコントローラ１５０は、アーム１０３Ｌ，１０３Ｒに動作を完了させる。
【００７５】
その後、ステップＳ７０で、ロボットコントローラ１５０は、各センサ１２２の出力値Ｖの入力（取得）を完了すると共に、規範データ記録部１６３において、各センサ１２２についての規範波形の記録を完了する。そして、このフローに示す処理を終了する。なお、このフローに示す処理は、入力装置を介して所定の動作開始操作が行われる度に、ロボットコントローラ１５０により実行される。
【００７６】
一方、上記ステップＳ１０において、ロボット１００の動作モードが「稼働モード」であった場合には、ステップＳ１０の判定が満たされず、ステップＳ８０に移る。
【００７７】
ステップＳ８０では、ロボットコントローラ１５０は、閾値設定部１６６において、入力装置を介して入力された入力情報に基づき、前述の閾値Ｄｔｈを設定する。
【００７８】
そして、ステップＳ９０に移り、ロボットコントローラ１５０は、零点調整部１６５において、上記ステップＳ３０と同様、各センサ１２２の零点調整を行う。
【００７９】
その後、ステップＳ１００で、ロボットコントローラ１５０は、入力装置を介して教示された各アーム１０３Ｌ，１０３Ｒに対する教示情報（動作開始位置及び動作完了位置の情報）等に基づいて動作指令部１５１において算出した各アクチュエータＡｃ１〜Ａｃ１５に対する位置指令を、各アクチュエータＡｃ１〜Ａｃ１５に対して出力して、アーム１０３Ｌ，１０３Ｒに当該位置指令に応じた所定の動作（図７（ａ）参照）を開始させる。
【００８０】
そして、ステップＳ１１０に移り、ロボットコントローラ１５０は、上記アンプ部１２３を介して増幅され、上記各ハイパスフィルタ１６１Ａにより抽出された高周波振動成分に基づく各センサ１２２の出力値Ｖを入力しつつ、判定部１６４において、上記ステップＳ１００で開始した所定の動作をアーム１０３Ｌ，１０３Ｒが行う際の、当該入力した各センサ１２２の出力値Ｖの出力データと、規範データ記録部１６３に各センサ１２２毎に記録された規範波形とを、各センサ１２２毎に比較することにより、各センサ１２２毎に前述の差｜Ｄ｜を算出する。そして、各センサ１２２毎に算出した差｜Ｄ｜と、閾値設定部１６６により予め設定された閾値Ｄｔｈとを、各センサ１２２毎に比較することにより、アーム１０３Ｌ，１０３Ｒに対する物体の接触の有無を判定する。具体的には、前述したように、全てのセンサ１２２に係わる差｜Ｄ｜が閾値Ｄｔｈの範囲内である場合には、アーム１０３Ｌ，１０３Ｒに対する物体の接触がないと判定し、いずれか１つのセンサ１２２に係わる差｜Ｄ｜が閾値Ｄｔｈを超えた場合には、アーム１０３Ｌ，１０３Ｒに対する物体の接触があると判定する。
【００８１】
その後、ステップＳ１２０に移り、ロボットコントローラ１５０は、アーム１０３Ｌ，１０３Ｒが動作完了位置まで動作するまでの間に、上記ステップＳ１１０でアーム１０３Ｌ，１０３Ｒに対する物体の接触があると判定されたかどうかを判定する。アーム１０３Ｌ，１０３Ｒが動作完了位置まで動作するまでの間に、上記ステップＳ１１０でアーム１０３Ｌ，１０３Ｒに対する物体の接触があると判定された場合には、ステップＳ１２０の判定が満たされて、ステップＳ１３０に移る。
【００８２】
ステップＳ１３０では、ロボットコントローラ１５０は、位置指令遮断部１５２において、動作指令部１５１から平滑化処理部１５３への上記位置指令の出力を遮断すると共に、サーボ部１５４により生成される前述のトルク指令Ｔｒｅｆに、前述の把持補償トルクを付加して、各アクチュエータＡｃ１〜Ａｃ１５に出力して、アーム１０３Ｌ，１０３Ｒに動作を停止させ、ハンド１１Ｌ，１１１Ｒにより物品Ｐを把持させる。その後、このフローに示す処理を終了する。
【００８３】
一方、上記ステップＳ１２０において、アーム１０３Ｌ，１０３Ｒが動作完了位置まで動作するまでの間に、上記ステップＳ１１０でアーム１０３Ｌ，１０３Ｒに対する物体の接触があると判定されなかった場合（把持対象である物品Ｐが存在しなかった場合）には、ステップＳ１２０の判定が満たされず、ステップＳ１４０に移り、ロボットコントローラ１５０は、アーム１０３Ｌ，１０３Ｒに動作を完了させる。そして、このフローに示す処理を終了する。
【００８４】
なお、上記において、ステップＳ５０及びステップＳ７０の手順が、特許請求の範囲に記載の規範データ記録手順に相当し、ステップＳ１１０の手順が、判定手順に相当する。また、これらステップＳ５０、ステップＳ７０、及びステップＳ１１０の手順は、出力値取得手順も兼ねている。
【００８５】
以上説明したように、本実施形態のロボットシステム１においては、規範データ記録部１６３には、アーム１０３Ｌ，１０３Ｒが接触のない状態で所定の動作を行う間の各センサ１２２の出力値Ｖの時間履歴が規範波形として記録される。判定部１６４は、稼働時においてアーム１０３Ｌ，１０３Ｒが所定の動作を行う際の各センサ１２２の出力値Ｖの出力データと、規範データ記録部１６３に記録された規範波形とを比較することにより（上記の例では差｜Ｄ｜と閾値Ｄｔｈを比較することにより）、アーム１０３Ｌ，１０３Ｒに対する物体の接触の有無を判定する。規範波形は、前述したように、アーム１０３Ｌ，１０３Ｒが接触のない状態において動作する際に実際に記録されたセンサ１２２の出力値Ｖの時間履歴のデータであるため、アーム１０３Ｌ，１０３Ｒ自身の動作によって生じる内力に相当する。このため、当該規範波形と稼働時のセンサ１２２の出力値Ｖの出力データとを比較することにより、稼働中にアーム１０３Ｌ，１０３Ｒに作用した外力を検出することができ、アーム１０３Ｌ，１０３Ｒに対する接触があるか否かを高精度に検出することができる。その結果、接触の有無に基づいてアーム１０３Ｌ，１０３Ｒの動作を停止させたり、接触による外力が低減する方向にアーム１０３Ｌ，１０３Ｒを動作させたり等の制御を精度良く行うことができるので、ロボット１００の機能性を向上することができる。
【００８６】
また、本実施形態では、各センサ１２２として、アーム１０３Ｌ，１０３Ｒの各部を構成する構造材料（上記の例では鉄やアルミニウム等の金属材料）よりも固有振動数が大きい圧電体を有する力センサを使用している。上記の例では特に、圧電体として水晶が用いられたセンサを使用している。これにより、障害物の衝突等によりアーム１０３Ｌ，１０３Ｒの各部の構造材料に生じた高い周波数の衝撃や振動等についても検出することができ、アーム１０３Ｌ，１０３Ｒに対する接触の有無をより高精度に検出することができる。
【００８７】
さらに、物品把持制御に適用した本実施形態では、次の効果が得られる。すなわち、従来の技術において形状が不確定なものを把持するためには、アーム１０３Ｌ，１０３Ｒのハンド１１１Ｌ、１１１Ｒ部分に特別なセンサを取り付ける等により、把持状態を検出し確認するための手段が必要である。これに対し、本実施形態では、２つのアーム１０３Ｌ，１０３Ｒを物品Ｐの両側より内側に向けて動作させ、接触を検出した際に動作を停止させて物品Ｐをハンド１１１Ｌ、１１１Ｒにより把持するように制御するので、上記のような特別なセンサを設ける必要がなくなり、ハンド１１１Ｌ、１１１Ｒ部分をシンプルな構成としつつ、形状が不確定なものでも確実に把持することが可能なロボット１００による物品把持制御を実現することができる。
【００８８】
また、本実施形態では特に、判定部１６４は、出力データと規範波形との差｜Ｄ｜が、予め設定された閾値Ｄｔｈの範囲内である場合には、アーム１０３Ｌ，１０３Ｒに対する接触がないと判定し、閾値Ｄｔｈを超えた場合には、アーム１０３Ｌ，１０３Ｒに対する接触があると判定する。すなわち、出力データと規範波形との差｜Ｄ｜は、前述したように、アーム１０３Ｌ，１０３Ｒに作用する外力に相当するため、その差｜Ｄ｜に基づき判定を行うことにより、アーム１０３Ｌ，１０３Ｒに対する接触の有無を高精度に検出することができる。また、接触有無の判定値として所定の閾値Ｄｔｈを設定することにより、外乱による誤検出を抑制することができる。
【００８９】
また、本実施形態では特に、ロボットコントローラ１５０が、閾値Ｄｔｈを設定する閾値設定部１６６を有している。この閾値設定部１６６により、ロボット１００の仕様や稼働環境等に応じて閾値Ｄｔｈを任意の値に設定することができるので、外乱による誤検出を抑制し、アーム１０３Ｌ，１０３Ｒに対する物体の接触の有無をより高精度に検出することができる。
【００９０】
また、本実施形態では特に、ロボットコントローラ１５０が、規範データ記録部１６３によりセンサ１２２の出力値Ｖの時間履歴を規範波形として記録する記録区間を設定する区間設定部１６２を有している。この区間設定部１６２により、アーム１０３Ｌ，１０３Ｒが任意の動作内容を行う区間を記録区間として設定することができる。これにより、稼働時にアーム１０３Ｌ，１０３Ｒが行う所定の動作と同じ動作内容を行う区間を記録区間として設定し、規範波形を記録しておけば、稼働時にアーム１０３Ｌ，１０３Ｒに対する物体の接触があるか否かを確実に検出することができる。また、異なる動作内容ごとに規範波形を記録することができるので、稼働時にアーム１０３Ｌ，１０３Ｒが行う多様な動作の各動作に対応させて規範波形を記憶することができる。
【００９１】
また、本実施形態では特に、ロボットコントローラ１５０が、区間設定部１６２で設定した記録区間に対応する所定の動作をアーム１０３Ｌ，１０３Ｒが実行する毎に、各センサ１２２の零点調整を行う零点調整部１６５を有している。この零点調整部１６５により、各センサ１２２の温度ドリフトの影響を抑制することができ、接触検出の精度が低下するのを防止できる。特に、稼働時においてアーム１０３Ｌ，１０３Ｒが所定の動作を繰り返し行う場合、動作の度に毎回零点調整を行うので、温度ドリフトの影響を極力抑制することができる。
【００９２】
また、本実施形態では特に、ロボットコントローラ１５０が、各センサ１２２の出力信号の高周波振動成分を抽出するハイパスフィルタ部１６１を有しており、判定部１６４は、ハイパスフィルタ部１６１により抽出された高周波振動成分に基づく各センサ１２２の出力値Ｖの出力データと上記規範波形とを比較することにより、アーム１０３Ｌ，１０３Ｒに対する接触の有無を判定する。これにより、外乱に起因する周波数成分を除去することができるので、アーム１０３Ｌ，１０３Ｒに対する接触の有無をより高精度に検出することができる。
【００９３】
なお、本発明は、上記実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。以下、そのような変形例を説明する。
【００９４】
（１）障害物の接触検出に適用する場合
上記実施形態では、本発明を物品把持制御に適用したが、これに限られず、本発明を障害物の接触検出に適用してもよい。すなわち、図１０に示すように、稼働時において、アーム１０３Ｌ，１０３Ｒがロボットコントローラ１５０からの上記位置指令に応じた上記所定の動作、すなわち教示された動作開始位置（図１０（ａ）中左側に示す位置）から教示された動作完了位置までの動作を実行する間に、判定部１６４が、上記実施形態と同様の手法によりアーム１０３Ｌ，１０３Ｒに対する障害物Ｂの接触の有無を判定する。そして、アーム１０３Ｌ，１０３Ｒに対する障害物の接触が検出されたら、その位置（図１０（ａ）中右側に示す位置）でアーム１０３Ｌ，１０３Ｒの動作を停止させる。本変形例においても、上記実施形態と同様の効果を得ることができる。また、ロボット１００自身あるいはロボット１００の周囲に存在する物体に対して過剰な負荷が生じることを回避することができる。
【００９５】
（２）ローパスフィルタを設ける場合
上記実施形態では、接触検出部１５５にセンサ１２２の出力信号の高周波振動成分を抽出するハイパスフィルタ１６１Ａを有するハイパスフィルタ部１６１を設け、判定部１６４が、ハイパスフィルタ部１６１により抽出された高周波振動成分に基づく規範波形と出力データとを比較することにより、アーム１０３Ｌ，１０３Ｒに対する物体の接触の有無を判定していたが、これに限られない。すなわち、接触検出部１５５に上記ハイパスフィルタ部１６１とは別にセンサ１２２の出力信号の低周波振動成分を抽出するローパスフィルタ（又は低周波数帯域を通過帯域とするバンドパスフィルタでもよい）を有するローパスフィルタ部を設け、判定部１６４が、ローパスフィルタ部により抽出された低周波振動成分に基づく規範波形と出力データとを比較することにより、アーム１０３Ｌ，１０３Ｒに対する物体（特に、段ボール箱等の柔軟性を備えた物品）の接触の有無を判定するようにしてもよい。本変形例によれば、低周波振動成分を抽出することができるので、アーム１０３Ｌ，１０３Ｒに対する段ボール箱等の柔軟性を備えた物品の接触等、比較的遅い接触の有無を精度よく検出することができる。
【００９６】
（３）単腕ロボットに適用する場合
以上においては、本発明を２つのアーム１０３Ｌ、１０３Ｒを有する双腕ロボットであるロボット１００に適用していたが、これに限られず、本発明を１つのロボットアームを有する単腕ロボットに適用してもよい。この場合も、上記実施形態と同様の効果を得ることができる。
【００９７】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。
【００９８】
その他、一々例示はしないが、本発明は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【符号の説明】
【００９９】
１            ロボットシステム
１００        ロボット
１０３Ｌ，Ｒ  アーム（ロボットアーム）
１２２        センサ（ひずみセンサ）
１５０        ロボットコントローラ（制御ユニット）
１６１        ハイパスフィルタ部
１６２        区間設定部
１６３        規範データ記録部
１６４        判定部
１６５        零点調整部
１６６        閾値設定部
【図１】
0005522403.tif 000002
【図２】
0005522403.tif 000003
【図３】
0005522403.tif 000004
【図４】
0005522403.tif 000005
【図５】
0005522403.tif 000006
【図６】
0005522403.tif 000007
【図７】
0005522403.tif 000008
【図８】
0005522403.tif 000009
【図９】
0005522403.tif 000010
【図１０】
0005522403.tif 000011