(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024130944
(43)【公開日】2024-09-30
(54)【発明の名称】ロボット制御システム、制御装置、方法、及びプログラム
(51)【国際特許分類】
B25J 9/10 20060101AFI20240920BHJP
B25J 13/08 20060101ALI20240920BHJP
【FI】
B25J9/10 A
B25J13/08 Z
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2023040920
(22)【出願日】2023-03-15
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】劉 智強
(72)【発明者】
【氏名】恵木 守
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS07
3C707BS10
3C707DS01
3C707ES03
3C707FT02
3C707HS27
3C707KS34
3C707KW03
3C707KX06
3C707LT06
3C707LT12
3C707LU08
3C707NS06
3C707NS07
(57)【要約】
【課題】対象となるワークを穴へ挿入する際に、ワーク及び穴の形状が様々である場合であっても、穴の位置を効率的に探索する。
【解決手段】制御装置14は、第1ワークW
Hの下面を第2ワークW
Uの上面に対して押し当てるように、第1ワークW
Hを把持するロボット12を制御すると共に、第1ワークW
Hの下面における任意の点を中心として第1ワークW
Hを旋回させるようにロボット12を制御することにより、第2ワークW
Uの穴が存在する方向を特定する。制御装置14は、特定された方向へ、第1ワークW
Hを移動させるようにロボット12を制御することにより、第1ワークW
Hの位置を調整する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
第1ワークを第2ワークの穴へ挿入するように、前記第1ワークの位置を調整するロボットを制御する制御装置であって、
前記第1ワークの下面の一部又は全部を前記第2ワークの上面に対して押し当てるように、前記第1ワークを把持するロボットを制御すると共に、前記第1ワークの下面における任意の点を中心として、前記第1ワークの下面と前記第2ワークの上面とが接触する部位を変化させながら前記第1ワークを旋回させるように前記ロボットを制御することにより、前記第2ワークの穴が存在する方向を特定する第1制御部と、
前記第1制御部によって特定された前記方向へ、前記第1ワークを移動させるように前記ロボットを制御することにより、前記第1ワークの位置を調整する第2制御部と、
を含む制御装置。
【請求項2】
前記第1制御部は、前記押し当て方向の力覚値が力覚値に関する閾値以下となるような旋回角度を、前記第2ワークの穴が存在する方向として特定する、
請求項1に記載の制御装置。
【請求項3】
前記第2制御部は、前記押し当て方向の力覚値が力覚値に関する閾値以下となるような前記旋回角度の範囲のうちの略中央方向へ、前記第1ワークを移動させるように前記ロボットを制御する、
請求項2に記載の制御装置。
【請求項4】
前記第1制御部は、
前記第1ワークを第1旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第1旋回方向へ旋回させた際の第1力覚値の時系列データを取得し、
前記第1ワークを第2旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第2旋回方向へ旋回させた際の第2力覚値の時系列データを取得し、
前記第2制御部は、
前記第1力覚値の時系列データのうちの、前記第1力覚値が押し当て力の目標値から略ゼロへ変化するときの旋回角度と、前記第2力覚値の時系列データのうちの、前記第2力覚値が押し当て力の目標値から略ゼロへ変化するときの旋回角度との平均を表す方向へ、前記第1ワークを移動させるように前記ロボットを制御する、
請求項2に記載の制御装置。
【請求項5】
前記第1制御部は、
前記第1ワークを第1旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第1旋回方向へ旋回させた際の第1力覚値の時系列データを取得し、
前記第1ワークを第2旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第2旋回方向へ旋回させた際の第2力覚値の時系列データを取得し、
前記第2制御部は、
前記第1力覚値の時系列データのうちの、前記第1力覚値が略ゼロから押し当て力の目標値へ変化するときの方向と、前記第2力覚値の時系列データのうちの、前記第2力覚値が略ゼロから押し当て力の目標値へ変化するときの方向との平均を表す方向へ、前記第1ワークを移動させるように前記ロボットを制御する、
請求項2に記載の制御装置。
【請求項6】
前記第1制御部は、前記第1ワークの下面における任意の点を中心として前記第1ワークを旋回させるように前記ロボットを制御し、前記第1ワークの前記押し当て方向への前記ロボットの把持部の位置補正量であって、かつ前記押し当て方向へ与える力が目標値となるような位置補正量が増加するような旋回角度を、前記第2ワークの穴が存在する方向として特定する、
請求項1に記載の制御装置。
【請求項7】
前記第1制御部は、前記第1ワークの下面における任意の点を中心として前記第1ワークを旋回させるように前記ロボットを制御し、前記位置補正量が位置補正量に関する閾値以上である旋回角度範囲の略中央方向を、前記第2ワークの穴が存在する方向として特定する、
請求項6に記載の制御装置。
【請求項8】
前記第1制御部は、
前記第1ワークを第1旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第1旋回方向へ旋回させた際の第1位置補正量の時系列データを取得し、
前記第1ワークを第2旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第2旋回方向へ旋回させた際の第2位置補正量の時系列データを取得し、
前記第2制御部は、
前記第1位置補正量の時系列データのうちの、前記第1位置補正量が増加するときの旋回角度と、前記第2位置補正量の時系列データのうちの、前記第2位置補正量が増加するときの旋回角度との平均を表す方向へ、前記第1ワークを移動させるように前記ロボットを制御する、
請求項6に記載の制御装置。
【請求項9】
前記第1制御部は、
前記第1ワークを第1旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第1旋回方向へ旋回させた際の第1位置補正量の時系列データを取得し、
前記第1ワークを第2旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第2旋回方向へ旋回させた際の第2位置補正量の時系列データを取得し、
前記第2制御部は、
前記第1位置補正量の時系列データのうちの、前記第1位置補正量が第1所定値へ変化するときの旋回角度と、前記第2位置補正量の時系列データのうちの、前記第2位置補正量が第2所定値へ変化するときの旋回角度との平均を表す方向へ、前記第1ワークを移動させるように前記ロボットを制御する、
請求項6に記載の制御装置。
【請求項10】
前記第2制御部は、前記第1ワークを前記第2ワークの穴へ挿入するように前記第1ワークの位置を調整し、前記第1ワークの下面における任意の点の下方向への移動量が移動量に関する閾値以上である場合に、前記第1ワークの位置の調整を終了する、
請求項1に記載の制御装置。
【請求項11】
前記第2制御部は、前記押し当て方向の力覚値の絶対値が力覚値に関する閾値以下となるような旋回角度が存在しない場合、前記第1ワークの位置の調整を終了する、
請求項2に記載の制御装置。
【請求項12】
前記第2制御部は、前記押し当て方向への位置補正量が増加するような旋回角度が存在しない場合、前記第1ワークの位置の調整を終了する、
請求項6に記載の制御装置。
【請求項13】
前記第2制御部は、前記第1ワークの位置の調整を繰り返す際に、前記第2ワークの穴が存在する方向として特定された今回の前記旋回角度が、前回の前記旋回角度と略反対方向の角度となった場合に、前記第1ワークの位置の調整を終了させる、
請求項2又は請求項6に記載の制御装置。
【請求項14】
前記第2制御部は、前記第1ワークの位置の調整を終了させた後に、前記第1ワークの大きさと前記第2ワークの穴の大きさとの間の差異を表すクリアランス以下で、前記第1ワークの位置の微調整を繰り返すことにより、前記第2ワークの穴を探索する、
請求項10~請求項12の何れか1項に記載の制御装置。
【請求項15】
前記第2制御部は、前記第1ワークの位置の調整を終了させた後に、前記第1ワークの下面の角部分を前記第2ワークの上面に接触させた状態で、前記第1ワークの下面の角部分を所定距離だけ移動させることを繰り返し、前記第1ワークの位置の微調整を繰り返すことにより、前記第2ワークの穴を探索する、
請求項10~請求項12の何れか1項に記載の制御装置。
【請求項16】
前記第2制御部は、前記第1ワークの位置の調整を終了させた後に、前記第1ワークの下面の角部分を前記第2ワークの上面に接触させた後に、前記第1ワークの下面の角部分と前記第2ワークの上面とを離間させた状態で、前記第1ワークの下面の角部分を所定距離だけ移動させることを繰り返すことにより、前記第2ワークの穴を探索する、
請求項10~請求項12の何れか1項に記載の制御装置。
【請求項17】
前記第1制御部は、前記第1ワークの下面における任意の点を中心として、前記第1ワークの上面を旋回させるようにロボットを制御する、
請求項1に記載の制御装置。
【請求項18】
第1ワークを第2ワークの穴へ挿入するように、前記第1ワークの位置を調整するロボットを制御する制御装置を構成するコンピュータが実行する制御方法であって、
前記第1ワークの下面の一部又は全部を前記第2ワークの上面に対して押し当てるように、前記第1ワークを把持するロボットを制御すると共に、前記第1ワークの下面における任意の点を中心として、前記第1ワークの下面と前記第2ワークの上面とが接触する部位を変化させながら前記第1ワークを旋回させるように前記ロボットを制御することにより、前記第2ワークの穴が存在する方向を特定し、
特定された前記方向へ、前記第1ワークを移動させるように前記ロボットを制御することにより、前記第1ワークの位置を調整する
処理をコンピュータが実行する制御方法。
【請求項19】
第1ワークを第2ワークの穴へ挿入するように、前記第1ワークの位置を調整するロボットを制御する制御プログラムであって、
前記第1ワークの下面の一部又は全部を前記第2ワークの上面に対して押し当てるように、前記第1ワークを把持するロボットを制御すると共に、前記第1ワークの下面における任意の点を中心として、前記第1ワークの下面と前記第2ワークの上面とが接触する部位を変化させながら前記第1ワークを旋回させるように前記ロボットを制御することにより、前記第2ワークの穴が存在する方向を特定し、
特定された前記方向へ、前記第1ワークを移動させるように前記ロボットを制御することにより、前記第1ワークの位置を調整する
処理をコンピュータに実行させるための制御プログラム。
【請求項20】
ロボットと制御装置とを備えるロボット制御システムであって、
前記制御装置は、第1ワークを第2ワークの穴へ挿入するように、前記第1ワークの位置を調整するようにロボットを制御する際に、
前記第1ワークの下面の一部又は全部を前記第2ワークの上面に対して押し当てるように、前記第1ワークを把持するロボットを制御すると共に、前記第1ワークの下面における任意の点を中心として、前記第1ワークの下面と前記第2ワークの上面とが接触する部位を変化させながら前記第1ワークを旋回させるように前記ロボットを制御することにより、前記第2ワークの穴が存在する方向を特定し、
特定された前記方向へ、前記第1ワークを移動させるように前記ロボットを制御することにより、前記第1ワークの位置を調整する、
ロボット制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット制御システム、制御装置、方法、及びプログラムに関する。
【背景技術】
【0002】
従来、探り動作を行わずに、挿入物を被挿入物に挿入する作業を効率的に行う制御装置が知られている(特許文献1)。この制御装置は、力検出部および保持部が設けられた可動部を備えるロボットを制御する制御装置であって、可動部を制御することにより、保持部に保持された挿入物を第1の姿勢にして、挿入口を有する被挿入物に接触させる第1接触動作をさせた後、挿入物を第1の姿勢と異なる第2の姿勢にして、挿入物と被挿入物を第1方向に相対的に移動させて挿入物を挿入口に挿入させる挿入動作をさせる。また、この制御装置は、第1接触動作と挿入動作との間において、挿入物を第2の姿勢に対して傾斜させた姿勢で、力検出部からの出力に基づいて、第1方向と直交する第2方向における目標力の成分を0より大きい値とした力制御を行うことにより、第1接触動作での接触部分とは異なる部分に挿入物と被挿入物とを接触させる第2接触動作をさせる。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上記の特許文献1では、四角形状の挿入口に対して四角形状の挿入物が挿入されることが前提とされている。しかし、挿入口の形状と挿入物の形状は、四角形状とは異なる様々な形状である場合もある。この場合には、特許文献1に開示されている技術を用いたとしても、挿入物を挿入口へ挿入することは難しい。例えば、挿入口の形状と挿入物の形状が円形である場合には、挿入物の状態を、特許文献1の
図5に示されているような状態とすることは難しく、挿入物を効率的に挿入口へ挿入することは困難である、という課題がある。
【0005】
本開示は、上記の点に鑑みてなされたものであり、対象となるワークを穴へ挿入する際に、ワーク及び穴の形状が様々である場合であっても、穴の位置を効率的に探索することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本開示に係る制御装置は、第1ワークを第2ワークの穴へ挿入するように、前記第1ワークの位置を調整するロボットを制御する制御装置であって、前記第1ワークの下面の一部又は全部を前記第2ワークの上面に対して押し当てるように、前記第1ワークを把持するロボットを制御すると共に、前記第1ワークの下面における任意の点を中心として、前記第1ワークの下面と前記第2ワークの上面とが接触する部位を変化させながら前記第1ワークを旋回させるように前記ロボットを制御することにより、前記第2ワークの穴が存在する方向を特定する第1制御部と、前記第1制御部によって特定された前記方向へ、前記第1ワークを移動させるように前記ロボットを制御することにより、前記第1ワークの位置を調整する第2制御部と、を含む制御装置である。これにより、対象となるワークを穴へ挿入する際に、ワーク及び穴の形状が様々である場合であっても、穴の位置を効率的に探索することができる。
【0007】
また、本開示に係る制御方法は、第1ワークを第2ワークの穴へ挿入するように、前記第1ワークの位置を調整するロボットを制御する制御装置を構成するコンピュータが実行する制御方法であって、前記第1ワークの下面の一部又は全部を前記第2ワークの上面に対して押し当てるように、前記第1ワークを把持するロボットを制御すると共に、前記第1ワークの下面における任意の点を中心として、前記第1ワークの下面と前記第2ワークの上面とが接触する部位を変化させながら前記第1ワークを旋回させるように前記ロボットを制御することにより、前記第2ワークの穴が存在する方向を特定し、特定された前記方向へ、前記第1ワークを移動させるように前記ロボットを制御することにより、前記第1ワークの位置を調整する、処理をコンピュータが実行する制御方法である。これにより、対象となるワークを穴へ挿入する際に、ワーク及び穴の形状が様々である場合であっても、穴の位置を効率的に探索することができる。
【0008】
また、本開示に係る制御プログラムは、第1ワークを第2ワークの穴へ挿入するように、前記第1ワークの位置を調整するロボットを制御する制御プログラムであって、前記第1ワークの下面の一部又は全部を前記第2ワークの上面に対して押し当てるように、前記第1ワークを把持するロボットを制御すると共に、前記第1ワークの下面における任意の点を中心として、前記第1ワークの下面と前記第2ワークの上面とが接触する部位を変化させながら前記第1ワークを旋回させるように前記ロボットを制御することにより、前記第2ワークの穴が存在する方向を特定し、特定された前記方向へ、前記第1ワークを移動させるように前記ロボットを制御することにより、前記第1ワークの位置を調整する、処理をコンピュータに実行させるための制御プログラムである。これにより、対象となるワークを穴へ挿入する際に、ワーク及び穴の形状が様々である場合であっても、穴の位置を効率的に探索することができる。
【発明の効果】
【0009】
本開示に係る制御装置、方法、及びプログラムによれば、対象となるワークを穴へ挿入する際に、ワーク及び穴の形状が様々であっても、穴の位置を効率的に探索することができる。
【図面の簡単な説明】
【0010】
【
図1】実施形態に係るロボット制御システムの概略図である。
【
図2】第1ワークと第2ワークとの一例を示す図である。
【
図3】制御装置のハードウェア構成を示すブロック図である。
【
図4】制御装置の機能構成の例を示すブロック図である。
【
図5】第1ワークの旋回を説明するための図である。
【
図6】力覚値の時系列データと第1ワークの姿勢との間の関係を説明するための図である。
【
図7】ロボットのハンド部から見た第1ワーク及び第2ワークを示す図である。
【
図8】押し当て方向の力覚値が力覚値に関する閾値以下となるような旋回角度が存在しない場合の一例を示す図である。
【
図9】今回の旋回角度と前回の旋回角度とが略反対方向となった場面を説明するための図である。
【
図10】制御処理の流れを示すフローチャートである。
【
図11】第1ワークを第2ワークの穴に近づける際の探索方法の一例を示す図である。
【
図12】位置補正量の時系列データと第1ワークの姿勢との間の関係を説明するための図である。
【
図13】制御処理の流れを示すフローチャートである。
【
図15】第1力覚値の時系列データと第2力覚値の時系列データとを説明するための図である。
【
図16】第1位置補正量の時系列データと第2位置補正量の時系列データとを説明するための図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0012】
<第1実施形態>
図1に示すように、第1実施形態に係るロボット制御システム10は、ロボット12と、制御装置14と、を含んで構成される。
【0013】
ロボット12は、ハンド部Gと、力覚センサSとを含む。
【0014】
ハンド部Gは、ロボットアームの先端に設けられ、制御装置14から出力された制御信号に従って動作する。把持ワークの一例である第1ワークWHを把持可能なツールである。ロボット12に内蔵されているモータ(図示省略)は、制御装置14から出力された制御信号に応じて駆動し、そのモータ(図示省略)の駆動に応じて、ロボットアーム及びハンド部44の駆動が制御される。ハンド部Gは、例えば、多関節多指型ロボットハンド、グリッパー型ロボットハンド、又は吸着パッド等である。
【0015】
力覚センサSは、ハンド部Gへ加わる力を検出する。力覚センサSによって検知された力を表すデータは、時系列データとして制御装置14へ出力される。
【0016】
本実施形態のロボット制御システム10は、
図1に示されているように、把持ワークの一例である第1ワークW
Hを、受けワークの一例である第2ワークW
Uの穴へ挿入させるように、第1ワークW
Hの位置を調整する。
【0017】
第1ワークW
Hの形状と穴の形状とは、様々な形状が想定され得る。
図2に、第1ワークW
Hと第2ワークW
Uとの一例を示す。
図2(A)に示されているように、第1ワークW
Hが四角柱形状であり、第2ワークW
Uが有する穴も四角形状である場合が想定される。また、
図2(B)に示されているように、第1ワークW
Hが円柱形状であり、第2ワークW
Uが有する穴も円形状である場合が想定される。
【0018】
以下では、第1ワークWHが円柱形状であり、第2ワークWUが有する穴が円形状である場合を例に説明する。
【0019】
図3は、第1実施形態に係る制御装置14のハードウェア構成を示すブロック図である。
図3に示すように、制御装置14は、CPU(Central Processing Unit)42、メモリ44、記憶装置46、入出力I/F(Interface)48、記憶媒体読取装置50、及び通信I/F52を有する。各構成は、バス54を介して相互に通信可能に接続されている。
【0020】
記憶装置46には、後述する制御処理を実行するための制御プログラムを含む制御プログラムが格納されている。CPU42は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU42は、記憶装置46からプログラムを読み出し、メモリ44を作業領域としてプログラムを実行する。CPU42は、記憶装置46に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0021】
メモリ44は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置46は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0022】
入出力I/F48は、ロボット12及び力覚センサSの各々と制御装置14とを接続するためのインタフェースである。力覚センサSに含まれるセンサの各々から出力されたセンサデータは、入出力I/F18を介して制御装置14へ入力される。また、制御装置14で生成された制御信号は、入出力I/F18を介して、ロボット12へ出力される。なお、ハードウェア構成には、入出力装置が更に含まれていてもよい。入出力装置は、例えば、キーボードやマウス等の、各種の入力を行うための入力装置、ディスプレイやプリンタ等の、各種の情報を出力するための出力装置である。出力装置として、タッチパネルディスプレイを採用することにより、入力装置として機能させてもよい。
【0023】
記憶媒体読取装置50は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。通信I/F52は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0024】
次に、第1実施形態に係る制御装置14の機能構成について説明する。
【0025】
図4は、制御装置14の機能構成の例を示すブロック図である。
図4に示されるように、制御装置14は、機能構成として、第1制御部100と、データ記憶部102と、第2制御部104とを含む。各機能構成は、CPU42が記憶装置46に記憶された制御プログラムを読み出し、メモリ44に展開して実行することにより実現される。
【0026】
制御装置14は、第1ワークWHを第2ワークWUの穴へ挿入するように、第1ワークWHの位置を調整するための制御信号をロボット12へ出力する。
【0027】
第1制御部100は、第1ワークWHの下面の一部又は全部を、第2ワークWUの上面に対して押し当てるように、第1ワークWHを把持するロボット12のハンド部Gを制御する。そして、第1制御部100は、第1ワークWHの下面における任意の点を中心として、第1ワークWHを旋回させるようにロボット12を制御することにより、第2ワークWUの穴が存在する方向を特定する。
【0028】
図5は、第1制御部100による第1ワークW
Hの旋回を説明するための図である。
図5に示されているように、第1制御部100は、第1ワークW
Hの下面SUを、第2ワークW
Uの上面STに対して押し当てるように、第1ワークW
Hを把持するハンド部Gを制御する。そして、第1制御部100は、第1ワークW
Hの下面SUにおける任意の点の一例である中心点TCPを中心として、第1ワークW
Hの上面を傾斜角度を変化させながらR方向へ旋回させるようにロボット12を制御する。具体的には、第1制御部100は、第1ワークW
Hの下面SUの中心点TCPを中心として、第1ワークW
Hの下面SUと第2ワークW
Uの上面STとが接触する部位を変化させながら、第1ワークW
Hの上面を傾斜角度を変化させながら旋回させるようにロボット12を制御する。
【0029】
また、第1制御部100は、第1ワークWHを旋回させた際の押し当て方向の力覚値の時系列データを取得する。力覚値は、力覚センサSによって逐次検知される。そして、第1制御部100は、力覚値の時系列データをデータ記憶部102へ格納する。
【0030】
データ記憶部102には、第1制御部100が第1ワークWHを旋回させた際の押し当て方向の力覚値の時系列データが格納される。
【0031】
第1制御部100は、データ記憶部102に格納された力覚値の時系列データに基づいて、第2ワークの穴が存在する方向を特定する。
【0032】
図6は、力覚値の時系列データと第1ワークW
Hと第2ワークW
Uとの間の接触関係を説明するための図である。
図6の上段は、第1ワークW
Hの下面SUを第2ワークW
Uの上面STに対して押し当てつつ、第1ワークW
Hを旋回させた際の力覚値Fzの時系列データである。力覚値Fzの時系列データが示されているグラフの横軸は旋回角度θ[deg]を表し、縦軸は力覚値Fzである。なお、第1ワークW
Hを旋回させた際の押し当て方向の力覚値Fzは、ロボット12のハンド部Gを基準とする座標系におけるz方向の値である。また、
図6の下段は、第1ワークW
Hを旋回させた際の各場面を表す図である。
【0033】
図6に示されているように、場面S1に相当する第1ワークW
Hの旋回角度においては、力覚値Fzが一定負荷の値となる。また、場面S2に相当する第1ワークW
Hの旋回角度においては、力覚値Fzが略ゼロへと変化する。そして、場面S3に相当する第1ワークW
Hの旋回角度においては、力覚値Fzが再び一定負荷の値へ変化する。これは、第2ワークW
Uの上面STから受ける反力によるものである。
【0034】
図6に示されているように、場面S2では、第1ワークW
Hが一時的に第2ワークと非接触又は非接触に近い状態になるために、力覚値Fzが略ゼロになる。
【0035】
このため、第1制御部100は、中心点TCPを中心として第1ワークW
Hを旋回させるようにロボット12を制御した際に、押し当て方向の力覚値Fzの絶対値が、力覚値に関する閾値以下となるような旋回角度を、第2ワークW
Uの穴が存在する方向として特定する。なお、力覚値に関する閾値は、予め設定される。力覚値に関する閾値は、例えば、
図6の場面S1で検出される力覚値Fz1の値よりも小さく、かつ
図6の場面S3で検出される力覚値Fz3の値よりも小さい値が予め設定される。
【0036】
具体的には、第1制御部100は、押し当て方向の力覚値Fzの絶対値が、力覚値に関する閾値以下となるような旋回角度の範囲を取得する。例えば、第1制御部100は、
図6に示されているような、旋回角度の範囲θ1~θ2を取得する。そして、第1制御部100は、旋回角度の範囲θ1~θ2のうちの略中央方向を表す旋回角度θdの方向へ、第1ワークW
Hを移動させるようにロボット12を制御する。
【0037】
図7は、ロボット12のハンド部Gから見た第1ワークW
H及び第2ワークW
Uを示す図である。
図7に示されているように、R方向の旋回によって力覚値の時系列データが取得された場合、第2制御部104は、D方向へ第1ワークW
Hを移動させるようにロボット12を制御する。方向Dは、上述した旋回角度θdに対応する。
【0038】
第2制御部104による制御によって第1ワークWHが移動した後に、第1制御部100は、第1ワークWHの下面SUを第2ワークWUの上面STに対して再度押し当てて、第1ワークWHを旋回させるようにロボット12を制御する。
【0039】
そして、第2制御部104は、第1ワークWHを旋回させた際の力覚値Fzの時系列データに基づいて、押し当て方向の力覚値Fzが所定閾値以下となるような旋回角度の範囲θ1~θ2の略中央方向を表す旋回角度θdの方向へ、第1ワークWHを移動させるようにロボット12を制御する。
【0040】
第1制御部100及び第2制御部104は、上述したような動作を繰り返す。
【0041】
このとき、第1制御部100は、押し当て方向の力覚値が力覚値に関する閾値以下となるような旋回角度が存在しない場合、第1ワークWHの位置の調整を一時的に終了させ、第1ワークWHの大きさと第2ワークWUの穴の大きさとの間の差異を表すクリアランス以下で、第1ワークWHを移動させる。例えば、第2制御部104は、クリアランスの1/2の値で、第1ワークWHを移動させる。そして、第2制御部104は、クリアランス以下での第1ワークWHの移動を繰り返し、第1ワークWHの位置の微調整を繰り返す。これにより、第2ワークWUの穴が探索される。
【0042】
図8は、押し当て方向の力覚値が力覚値に関する閾値以下となるような旋回角度が存在しない場合の一例を示す図である。なお、
図8では、説明を簡単にするためにワークの形状が四角形状である場合が示されている。第1ワークW
Hと第2ワークW
Uとの間の位置関係が、
図8に示されているような関係である場合、押し当て方向の力覚値が、力覚値に関する閾値以下とならない場合があり得る。
【0043】
このように、
図8に示されているように、第1ワークW
Hを旋回させたとしても力覚値Fzが0[N]近傍まで低下しない場合には、第1ワークW
Hは、第2ワークW
Uの穴の位置の近くに到達したものと考えられる。また、第1ワークW
Hを旋回させた場合、どの旋回角度においても力覚値Fzが0[N]近傍である場合も、第1ワークW
Hは、第2ワークW
Uの穴の位置の近くに到達したものと考えられる。
【0044】
このような場合には、第2制御部104は、上述したように、クリアランス以下での第1ワークWHの移動を繰り返し、第1ワークWHの位置の微調整を繰り返す。また第1ワークWHの姿勢が正しい姿勢からずれている可能性もあるため、第1ワークWHをz軸方向に回転させることによる姿勢の調整も行う。これにより、第2ワークWUの穴が探索される。
【0045】
また、第2制御部104は、第1ワークWHの位置の調整を繰り返す際に、第2ワークWUの穴が存在する方向として特定された今回の旋回角度が、前回の旋回角度と略反対方向の角度となった場合に、第1ワークWHの位置の調整を一時的に終了させる。
【0046】
図9は、今回の旋回角度と前回の旋回角度とが略反対方向となった場面を説明するための図である。
図9の左側に示されているように、D1方向への第1ワークW
Hの移動を繰り返すことにより、第2ワークW
Uの穴を通り過ぎてしまう場合もあり得る。この場合には、
図9の右側に示されているように、第2ワークW
Uの穴が存在する方向として特定される今回の旋回角度は、前回の旋回角度と略反対方向であるD2方向となる。このような場合には、第2制御部104は、第1ワークW
Hの位置の調整を一旦終了させ、上述したように、クリアランス以下での第1ワークW
Hの移動を繰り返す。
【0047】
これにより、第1ワークWHの位置が調整され、第1ワークWHを第2ワークの穴へ挿入させることが可能となる。
【0048】
そして、第2制御部104は、第1ワークWHの下面SUにおける中心点TCPの下方向への移動量が、移動量に関する閾値以上である場合に、第1ワークWHの位置の調整を終了する。例えば、第2制御部104は、ロボット12に対して指示されるハンド部Gの位置補正量に基づいて、中心点TCPの下方向への移動量を特定し、中心点TCPの下方向への移動量が、予め設定された移動量に関する閾値以上である場合には、第1ワークWHの位置の調整を終了する。
【0049】
これにより、対象となる第1ワークWHを第2ワークWUの穴へ挿入する際に、穴の形状が様々であっても、第2ワークWUの穴を効率的に探索することができる。
【0050】
次に、第1実施形態に係るロボット制御システム10の作用について説明する。
【0051】
CPU42が記憶装置46から制御プログラムを読み出して、メモリ44に展開して実行することにより、CPU42が制御装置14の各機能構成として機能し、制御処理が実行される。以下、制御処理について詳述する。
【0052】
図10は、制御装置14のCPU42により実行される制御処理の流れを示すフローチャートである。
【0053】
ステップS100において、第1制御部100は、第1ワークWHの移動量を設定する。例えば、第1制御部100は、クリアランスよりも大きい値を、第1ワークWHの移動量として設定する。これにより、第2ワークWUの穴をより効率的に探索することが可能となる。
【0054】
ステップS102において、第1制御部100は、第1ワークWHの下面SUを第2ワークWUの上面STに対して押し当てるように、第1ワークWHを把持するロボット12を制御する。具体的には、第1制御部100は、ハンド部Gの座標系におけるz方向へ第1ワークWHの下面SUを押し当てるように、ロボット12を制御する。
【0055】
ステップS104において、第1制御部100は、第1ワークWHの下面SUにおける中心点TCPの下方向への移動量が、移動量に関する閾値以上であるか否かを判定する。上記ステップS100での押し当てによって中心点TCPが移動する。そのため、第1制御部100は、中心点TCPの移動量が、移動量に関する閾値以上であるか否かを判定する。中心点TCPの移動量が、移動量に関する閾値以上である場合には、中心点TCPが第2ワークWUの穴に挿入されていると判定し、ステップS118へ移行する。一方、中心点TCPの移動量が、移動量に関する閾値未満である場合には、中心点TCPが第2ワークWUの穴に挿入されていないと判定し、ステップS106へ移行する。
【0056】
ステップS106において、第1制御部100は、第1ワークWHの下面SUにおける中心点TCPを中心として、第1ワークWHを旋回させるようにロボット12を制御する。そして、ステップS106において、第1制御部100は、第1ワークWHを旋回させた際の押し当て方向の力覚値の時系列データを取得する。第1制御部100は、力覚値の時系列データをデータ記憶部102へ格納する。
【0057】
ステップS108において、第1制御部100は、ステップS106でデータ記憶部102に格納された力覚値の時系列データを読み出し、押し当て方向の力覚値Fzが、力覚値に関する閾値以下となるような旋回角度が存在するか否かを判定する。押し当て方向の力覚値Fzが、力覚値に関する閾値以下となるような旋回角度が存在する場合には、ステップS110へ進む。一方、押し当て方向の力覚値Fzが、力覚値に関する閾値以下となるような旋回角度が存在しない場合には、ステップS114へ移行する。押し当て方向の力覚値Fzが、力覚値に関する閾値以下となるような旋回角度が存在しない場合には、例えば、
図8に示されているような状態であることが想定される。
【0058】
ステップS110において、第1制御部100は、押し当て方向の力覚値Fzが力覚値に関する閾値以下となるような旋回角度の範囲θ1~θ2を取得する。そして、第1制御部100は、旋回角度の範囲θ1~θ2のうちの略中央方向を表す旋回角度θdの方向を、第1ワークWHの移動方向として決定する。
【0059】
ステップS112において、第1制御部100は、今回のステップS110で決定された旋回角度と前回のステップS110で特定された旋回角度とを比較し、第1ワークWHの移動方向が反転したか否かを判定する。第1ワークWHの移動方向が反転した場合には、ステップS114へ移行する。一方、第1ワークWHの移動方向が反転していない場合には、ステップS116へ移行する。
【0060】
ステップS114において、第1制御部100は、クリアランスの1/2の値を第1ワークW
Hの移動量として設定する。
図9のような状態となっていることが想定されるため、第1制御部100は、クリアランスの1/2の値を第1ワークW
Hの移動量として設定し、第1ワークW
Hの位置の微調整を行う。
【0061】
ステップS116において、第2制御部104は、ステップS100又はステップS114で設定された移動量と、ステップS110で決定された移動方向とに基づいて、第1ワークWHを移動させるようにロボット12のハンド部Gを制御する。
【0062】
ステップS118において、第1制御部100及び第2制御部104は、第1ワークWHの移動を終了させる。
【0063】
以上説明したように、第1実施形態に係るロボット制御システムによれば、制御装置は、第1ワークの下面を第2ワークの上面に対して押し当てるように、第1ワークを把持するロボットを制御すると共に、第1ワークの下面における任意の点を中心として第1ワークを旋回させるようにロボットを制御することにより、第2ワークの穴が存在する方向を特定する。そして、制御装置は、特定された方向へ、第1ワークを移動させるようにロボットを制御することにより、第1ワークの位置を調整する。これにより、対象となるワークを穴へ挿入する際に、ワーク及び穴の形状が様々であっても、穴の位置を効率的に探索することができる。
【0064】
具体的には、制御装置は、第1ワークの下面における任意の点を中心として第1ワークを旋回させるようにロボットを制御し、押し当て方向の力覚値の絶対値が力覚値に関する閾値以下となるような旋回角度を、第2ワークの穴が存在する方向として特定する。なお、制御装置は、押し当て方向の力覚値が力覚値に関する閾値以下となるような旋回角度の範囲を取得し、旋回角度の範囲のうちの略中央方向へ、第1ワークを移動させるようにロボットを制御する。これにより、第1ワークを第2ワークに篏合させる際の第1ワークの位置を効率的に探索することが可能となる。
【0065】
図11に、第1ワークW
Hを第2ワークW
Uの穴に近づける際の探索方法の一例を示す。
図11の左側の探索方法は、E1に示されているように、第1ワークW
Hの下面の角部分C1を第2ワークW
Uの上面に接触させた状態で、角部分C1を所定距離だけ移動させることを繰り返し、第1ワークW
Hの位置の微調整を繰り返すことにより、第2ワークW
Uの穴を探索する方法である(以下、単に「領域探り」と称する)。
【0066】
一方、
図11の右側の探索方法は、E2に示されているように、第1ワークW
Hの下面の角部分C1を第2ワークW
Uの上面に接触させた後に、角部分C1と第2ワークW
Uの上面とを離間させた状態で、第1ワークW
Hの下面の角部C1を所定距離だけ移動させることを繰り返すことにより、第2ワークW
Uの穴を探索する方法である(以下、単に「断続探り」と称する)。上記の2つの探索方法とも、第1ワークW
Hの角部分C1を、第2ワークW
Uへ当てることにより、第2ワークW
Uの穴を探索する方法である。上記の2つの探索方法では、第1ワークW
Hの下面の角部分C1が、第2ワークW
Uの穴の角部分C2に到達した場合に、探索が終了となる。
【0067】
図11に示されているように、領域探り及び断続探りでは、第1ワークW
Hのx方向及びy方向への微小移動を繰り返す必要がある。このような探索方法は膨大な時間がかかる。これに対して、本実施形態の探索方法では、穴が存在する方向を特定し、その穴の方向へ直線的に第1ワークW
Hを移動させることが可能となるため、効率的に穴を探索することが可能となる。具体的には、本実施形態の探索方法は、最短経路で直線的に第2ワークW
Uの穴の探索を行うことが可能となる。これにより、本実施形態の探索方法の探索時間は、領域探り及び断続探りの探索時間に比べて二乗分の1に低減される。
【0068】
また、本実施形態の探索方法を、従来探索の前工程として利用することにより、探索のための第1ワークWHの移動距離をクリアランス以下に制約する必要がなくなるため、更に探索時間を短縮させることが可能となる。
【0069】
<第2実施形態>
次に、第2実施形態について説明する。なお、第2実施形態に係るロボット制御システムの構成は、第1実施形態に係るロボット制御システム10と同様の構成であるため、同一符号を付して詳細な説明を省略する。
【0070】
第2実施形態のロボット制御システム10は、第1ワークWHの下面SUにおける中心点TCPを中心として第1ワークWHを旋回させるようにロボット12を制御した後に、第1ワークWHの押し当て方向(z方向)への位置補正量が増加するような旋回角度を、第2ワークWUの穴が存在する方向として特定する点が、第1実施形態と異なる。
【0071】
ロボット12の動作を制御する際には、既知のフィードバックシステムが採用され得る。この場合、当該フィードバックシステムは、力覚センサSによって検知された力覚値に基づいて、ハンド部Gの位置を調整するための位置補正量のデータを出力する。具体的には、フィードバックシステムは、力覚値が所定値以上検知された場合には、押し当て方向とは反対方向(手前に引き戻す方向)へハンド部Gを移動させるような位置補正量(例えば、マイナスの位置補正量)を出力する。一方、フィードバックシステムは、力覚値が検知されない場合には、押し当て方向へハンド部Gを移動させるような位置補正量(例えば、プラスの位置補正量)を出力する。そして、位置補正量がプラスである場合、第2制御部104は、押し当て方向へハンド部Gを移動させるようにロボット12を制御する。また、位置補正量がマイナスである場合、第2制御部104は、押し当て方向とは反対方向へハンド部Gを移動させるようにロボット12を制御する。このため、フィードバックシステムは、押し当て方向へ与える力が目標値となるような位置補正量を逐次算出する。
【0072】
第1実施形態において用いた力覚値の時系列データにはノイズが含まれている場合がある。このため、力覚値の時系列データは凹凸の度合いが激しく、第2ワークWUの穴の位置を精度よく探索できない場合もあり得る。
【0073】
そこで、第2実施形態のロボット制御システム10は、ハンド部Gの位置を調整するための位置補正量に基づいて、第2ワークWUの穴が存在する方向を特定する。
【0074】
上述したように、位置補正量の時系列データは、フィードバックシステムから出力される値であるため、力覚値の時系列データに比べて滑らかである傾向がある。このため、位置補正量の時系列データを利用することにより、第2ワークWUの穴の位置をより精度よく探索することができる。
【0075】
第1制御部100は、第1ワークWHの下面SUにおける中心点TCPを中心として第1ワークWHを旋回させるようにロボット12を制御し、第1ワークWHの押し当て方向への位置補正量が増加するような旋回角度を、第2ワークWUの穴が存在する方向として特定する。
【0076】
具体的には、第1制御部100は、第1ワークWHの下面SUにおける中心点TCPを中心として第1ワークWHを旋回させるようにロボット12を制御し、位置補正量が、位置補正量に関する閾値以上である旋回角度区間の略中央方向を、第2ワークWUの穴が存在する方向として特定する。
【0077】
図12は、位置補正量の時系列データと第1ワークW
Hの姿勢との間の関係を説明するための図である。
【0078】
図12の上段は、第1ワークW
Hの下面SUを第2ワークW
Uの上面STに対して押し当てつつ、第1ワークW
Hを旋回させた際の位置補正量Pcの時系列データである。位置補正量Pcの時系列データが示されているグラフの横軸は旋回角度θ[deg]を表し、縦軸は位置補正量Pcである。なお、第1ワークW
Hを旋回させた際の押し当て方向の位置補正量Pcは、ロボット12のハンド部Gを基準とする座標系におけるz方向の値である。また、
図12の下段は、第1ワークW
Hを旋回させた際の各場面を表す図である。
【0079】
図12に示されているように、場面S1に相当する第1ワークW
Hの旋回角度においては、押し当て力が目標値で一定になった結果、位置補正量が例えばPc1であったとする。また、場面S2に相当する第1ワークW
Hの旋回角度においては、位置補正量がプラスの値Pc2へと変化する。そして、場面S3に相当する第1ワークW
Hの旋回角度においては、位置補正量がPc3へ変化する。具体的には、押し当て力が目標値になるような位置補正量がPc1及びPc3である。
【0080】
図12に示されているように、第1ワークW
Hの旋回角度が第2ワークW
Uの穴が存在する方向に対応するときに、位置補正量が所定の閾値より大きくなる。場面S2においては、z方向の力覚値が検出されなくなることにより、フィードバックシステムは第1ワークW
Hをz方向へ押し出すような制御信号を出力する。
【0081】
このため、第1制御部100は、中心点TCPを中心として第1ワークW
Hを旋回させるようにロボット12を制御した際に、押し当て方向の位置補正量が、位置補正量に関する閾値以上となるような旋回角度を、第2ワークW
Uの穴が存在する方向として特定する。なお、位置補正量に関する閾値は、予め設定される。位置補正量に関する閾値は、例えば、
図12の場面S1で算出される位置補正量Pc1の値よりも大きく、かつ
図12の場面S3で検出される位置補正量Pc3の値よりも大きい値が予め設定される。
【0082】
具体的には、第1制御部100は、押し当て方向の位置補正量Pcが、位置補正量に関する閾値以上となるような旋回角度の範囲を取得する。例えば、第1制御部100は、
図12に示されているような、旋回角度の範囲θ1~θ2を取得する。そして、第1制御部100は、旋回角度の範囲θ1~θ2のうちの略中央方向を表す旋回角度θdの方向へ、第1ワークW
Hを移動させるようにロボット12を制御する。
【0083】
そして、第1制御部100は、押し当て方向の位置補正量Pcが、位置補正量に関する閾値以上となるような旋回角度が存在しない場合、第1実施形態と同様に、第1ワークWHの位置の調整を一時的に終了させ、クリアランス以下で第1ワークWHを移動させる。
【0084】
次に、第2実施形態に係るロボット制御システム10の作用について説明する。
【0085】
なお、
図13に示す制御処理において、第1実施形態における制御処理(
図10)と同様の処理については、同一のステップ番号を付与して、詳細な説明を省略する。
【0086】
ステップS206において、第1制御部100は、第1ワークWHの下面SUにおける中心点TCPを中心として、第1ワークWHを旋回させるようにロボット12を制御する。そして、ステップS206において、第1制御部100は、第1ワークWHを旋回させた際の押し当て方向の位置補正量の時系列データを取得する。第1制御部100は、位置補正量の時系列データをデータ記憶部102へ格納する。
【0087】
ステップS208において、第1制御部100は、ステップS206でデータ記憶部102に格納された位置補正量の時系列データを読み出し、押し当て方向の位置補正量Pcが、位置補正量に関する閾値以上となるような旋回角度が存在するか否かを判定する。押し当て方向の位置補正量Pcが、位置補正量に関する閾値以上となるような旋回角度が存在する場合には、ステップS210へ進む。一方、押し当て方向の位置補正量Pcが、位置補正量に関する閾値以上となるような旋回角度が存在しない場合には、ステップS114へ移行する。
【0088】
ステップS210において、第1制御部100は、押し当て方向の位置補正量Pcが位置補正量に関する閾値以上となるような旋回角度の範囲θ1~θ2を取得する。そして、第1制御部100は、旋回角度の範囲θ1~θ2のうちの略中央方向を表す旋回角度θdの方向を、第1ワークWHの移動方向として決定する。
【0089】
他の制御処理については、第1実施形態と同様であるため、説明を省略する。
【0090】
以上説明したように、第2実施形態に係るロボット制御システムは、第1ワークの下面における任意の点を中心として第1ワークを旋回させるようにロボットを制御し、第1ワークの押し当て方向への位置補正量が増加するような旋回角度を、第2ワークの穴が存在する方向として特定する。これにより、精度良くかつ効率的に、穴の位置を探索することができる。
【0091】
<第3実施形態>
次に、第3実施形態について説明する。なお、第3実施形態に係るロボット制御システムの構成は、第1実施形態に係るロボット制御システムと同様の構成であるため、同一符号を付して詳細な説明を省略する。
【0092】
第3実施形態のロボット制御システム10は、第1ワークWHを第1旋回方向へ旋回させるようにロボット12を制御することにより第1力覚値の時系列データを取得し、第1ワークWHを第1旋回方向とは反対方向の第2旋回方向へ旋回させるようにロボット12を制御することにより第2力覚値の時系列データを取得し、第1力覚値の時系列データと第2力覚値の時系列データとに基づいて、第2ワークWUの穴の方向を特定する点が、第1実施形態と異なる。
【0093】
第1ワークWHを旋回させることにより第2ワークWUの穴の方向を特定する場合、第1ワークWHを旋回させることよって第1ワークWHが移動してしまい、第2ワークWUへ近づいてしまうことがある。これにより、第2ワークWUの穴として特定される方向は、力覚値Fzが0[N]となる旋回角度の範囲の略中央からずれる場合があり得る。
【0094】
そこで、第3実施形態のロボット制御システム10は、第1ワークWHを第1旋回方向へ旋回させた際の第1力覚値の時系列データと、第1ワークWHを第1方向とは反対方向の第2旋回方向へ旋回させた際の第2力覚値の時系列データとに基づいて、第2ワークWUの穴の方向を特定する。
【0095】
図14は、旋回方向を説明するための図である。
図14に示されているように、第1制御部100は、第1ワークW
Hを第1旋回方向R1へ旋回させるようにロボット12を制御し、第1ワークW
Hを第1旋回方向R1へ旋回させた際の第1力覚値の時系列データを取得する。また、
図14に示されているように、第1制御部100は、第1ワークW
Hを第2旋回方向R2へ旋回させるようにロボット12を制御し、第1ワークW
Hを第2旋回方向R2へ旋回させた際の第2力覚値の時系列データを取得する。
【0096】
そして、第1制御部100は、第1力覚値の時系列データのうちの、第1力覚値が押し当て力の目標値から略ゼロへ変化するときの旋回角度と、第2力覚値の時系列データのうちの、第2力覚値が押し当て力の目標値から略ゼロへ変化するときの旋回角度との平均を表す方向を、第2ワークWUの穴の方向であると特定する。押し当て力の目標値は、予め設定される。
【0097】
図15は、第1力覚値の時系列データと第2力覚値の時系列データとを説明するための図である。
図15の上段は、第1ワークW
Hを第1旋回方向R1へ旋回させた際の第1力覚値の時系列データである。
図15の下段は、第1ワークW
Hを第2旋回方向R2へ旋回させた際の第2力覚値の時系列データである。
【0098】
なお、第1ワークW
Hを第1旋回方向R1へ旋回させた場合には、第1力覚値の時系列データは
図15のA方向へ変化する。一方、第1ワークW
Hを第2旋回方向R2へ旋回させた場合には、第2力覚値の時系列データは
図15のB方向へ変化する。
【0099】
この場合、第1制御部100は、第1力覚値がマイナスの値から略ゼロの値へ変化するときの旋回角度θ1Aと、第2力覚値がマイナスの値から略ゼロの値へ変化するときの旋回角度θ1Bとの平均値(θ1A+θ1B)/2を、第2ワークWUの穴の方向θdであると特定する。
【0100】
または、第1制御部100は、第1力覚値が略ゼロの値からマイナスの値へ変化するときの旋回角度θ2Aと、第2力覚値がマイナスの値から略ゼロの値へ変化するときの旋回角度θ2Bとの平均値(θ2A+θ2B)/2を、第2ワークWUの穴の方向θdであると特定する。
【0101】
そして、第2制御部104は、上述したように特定されたθdの方向へ、第1ワークWHを移動させるように前記ロボットを制御する。
【0102】
他の構成及び制御処理については、第1実施形態と同様であるため、説明を省略する。
【0103】
以上説明したように、第3実施形態に係るロボット制御システムは、第1ワークを第1旋回方向へ旋回させるようにロボットを制御し、第1ワークを第1旋回方向へ旋回させた際の第1力覚値の時系列データを取得し、第1ワークを第2旋回方向へ旋回させるようにロボットを制御し、第1ワークを第2旋回方向へ旋回させた際の第2力覚値の時系列データを取得する。そして、ロボット制御システムは、第1力覚値の時系列データのうちの、第1力覚値がマイナスの値から略ゼロの値へ変化するときの旋回角度と、第2力覚値の時系列データのうちの、第2力覚値がマイナスの値から略ゼロの値へ変化するときの旋回角度との平均値を表す方向へ、第1ワークを移動させるようにロボットを制御する。または、ロボット制御システムは、第1力覚値の時系列データのうちの、第1力覚値が略ゼロの値からマイナスの値へ変化するときの方向と、第2力覚値の時系列データのうちの、第2力覚値が略ゼロの値からマイナスの値へ変化するときの方向との平均値を表す方向へ、第1ワークを移動させるようにロボットを制御する。これにより、精度良くかつ効率的に、穴の位置を探索することができる。
【0104】
具体的には、第1ワークWHを第1旋回方向へ旋回させた際に、第1ワークWHが第2ワークWUに近づいてしまう場合であっても、第1ワークWHを第2旋回方向へ旋回させることにより、その近づきをキャンセルしつつ、第2ワークWUの穴を精度良く特定することができる。
【0105】
<第4実施形態>
次に、第4実施形態について説明する。なお、第4実施形態に係るロボット制御システムの構成は、第1実施形態に係るロボット制御システムと同様の構成であるため、同一符号を付して詳細な説明を省略する。
【0106】
第4実施形態のロボット制御システム10は、第1ワークWHを第1旋回方向へ旋回させるようにロボット12を制御することにより第1位置補正量の時系列データを取得し、第1ワークWHを第1旋回方向とは反対方向の第2旋回方向へ旋回させるようにロボット12を制御することにより第2位置補正量の時系列データを取得し、第1位置補正量の時系列データと第2位置補正量の時系列データとに基づいて、第2ワークWUの穴の方向を特定する点が、第2実施形態及び第3実施形態と異なる。
【0107】
なお、第4実施形態のロボット制御システム10は、第3実施形態を第2実施形態へ適用した実施形態でもある。
【0108】
第3実施形態と同様に、
図14に示されているように、第1制御部100は、第1ワークW
Hを第1旋回方向R1へ旋回させるようにロボット12を制御し、第1ワークW
Hを第1旋回方向R1へ旋回させた際の第1位置補正量の時系列データを取得する。また、
図14に示されているように、第1制御部100は、第1ワークW
Hを第2旋回方向R2へ旋回させるようにロボット12を制御し、第1ワークW
Hを第2旋回方向R2へ旋回させた際の第2位置補正量の時系列データを取得する。
【0109】
そして、第1制御部100は、第1位置補正量の時系列データのうちの、第1位置補正量が増加するときの旋回角度と、第2位置補正量の時系列データのうちの、第2位置補正量が増加するときの旋回角度との平均を表す方向を、第2ワークWUの穴の方向であると特定する。
【0110】
図16は、第1位置補正量の時系列データと第2位置補正量の時系列データとを説明するための図である。
図16の上段は、第1ワークW
Hを第1旋回方向R1へ旋回させた際の第1位置補正量の時系列データである。
図16の下段は、第1ワークW
Hを第2旋回方向R2へ旋回させた際の第2位置補正量の時系列データである。
【0111】
なお、第1ワークW
Hを第1旋回方向R1へ旋回させた場合には、第1位置補正量の時系列データは
図16のA方向へ変化する。具体的には、
図16に示されているように、第1ワークW
Hを第1旋回方向R1へ旋回させた場合、第1位置補正量は、Pc1A,Pc2A,Pc3Aと変化する。一方、第1ワークW
Hを第2旋回方向R2へ旋回させた場合には、第2位置補正量の時系列データは
図16のB方向へ変化する。具体的には、
図16に示されているように、第1ワークW
Hを第2旋回方向R2へ旋回させた場合、第2位置補正量は、Pc1B,Pc2B,Pc3Bと変化する。
【0112】
この場合、第1制御部100は、第1位置補正量がPc1Aの値から増加するときの旋回角度θ1Aと、第2位置補正量がPc1Bの値から増加するときの旋回角度θ1Bとの平均値(θ1A+θ1B)/2を、第2ワークWUの穴の方向θdであると特定する。なお、この場合のPc1Aは第1所定値の一例であり、Pc1Bは第2所定値の一例である。
【0113】
または、第1制御部100は、第1位置補正量がPc3Aの値へ変化するときの旋回角度θ2Aと、第2位置補正量がPc3Bの値へ変化するときの旋回角度θ2Bとの平均値(θ2A+θ2B)/2を、第2ワークWUの穴の方向θdであると特定する。なお、この場合のPc3Aは第1所定値の一例であり、Pc3Bは第2所定値の一例である。
【0114】
そして、第2制御部104は、上述したように特定されたθdの方向へ、第1ワークWHを移動させるように前記ロボットを制御する。
【0115】
他の構成及び制御処理については、第2実施形態又は第3実施形態と同様であるため、説明を省略する。
【0116】
以上説明したように、第4実施形態に係るロボット制御システムは、第1ワークを第1旋回方向へ旋回させるようにロボットを制御し、第1ワークを第1旋回方向へ旋回させた際の第1位置補正量の時系列データを取得する。ロボット制御システムは、第1ワークを第2旋回方向へ旋回させるようにロボットを制御し、第1ワークを第2旋回方向へ旋回させた際の第2位置補正量の時系列データを取得する。そして、ロボット制御システムは、第1位置補正量の時系列データのうちの、第1位置補正量が所定の値から増加するときの旋回角度と、第2位置補正量の時系列データのうちの、第2位置補正量が所定の値から増加するときの旋回角度との平均を表す方向へ、第1ワークを移動させるようにロボットを制御する。または、ロボット制御システムは、第1位置補正量の時系列データのうちの、第1位置補正量が所定の値へ変化するときの旋回角度と、第2位置補正量の時系列データのうちの、第2位置補正量が所定の値へ変化するときの旋回角度との平均を表す方向へ、第1ワークを移動させるようにロボットを制御する。これにより、精度良くかつ効率的に、穴の位置を探索することができる。
【0117】
具体的には、第1ワークWHを第1旋回方向へ旋回させた際に、第1ワークWHが第2ワークWUに近づいてしまう場合であっても、第1ワークWHを第2旋回方向へ旋回させることにより、その近づきをキャンセルしつつ、第2ワークWUの穴を精度良く特定することができる。
【0118】
なお、本開示は、上述した各実施形態に限定されるものではなく、要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0119】
例えば、上記各実施形態では、所定条件が満たされなかった場合(例えば、
図10のステップS108若しくはステップS112、又は
図13のステップS208若しくはステップS212)、クリアランスの1/2の値を第1ワークW
Hの移動量として新たに設定する場合(例えば、
図10のステップS112又は
図13のステップS212)を例に説明したが、これに限定されるものではない。例えば、
図10のステップS112又は
図13のステップS212の処理に代えて、上述した領域探り又は断続探りを利用することにより、第1ワークW
Hの位置の微調整を実行するようにしてもよい。
【0120】
また、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、これらの各種のプロセッサのうちの1つで処理を実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0121】
また、上記各実施形態では、制御プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM、ブルーレイディスク、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0122】
(付記)
以下、本開示の態様について付記する。
【0123】
(付記1)
第1ワークを第2ワークの穴へ挿入するように、前記第1ワークの位置を調整するロボットを制御する制御装置であって、
前記第1ワークの下面の一部又は全部を前記第2ワークの上面に対して押し当てるように、前記第1ワークを把持するロボットを制御すると共に、前記第1ワークの下面における任意の点を中心として、前記第1ワークの下面と前記第2ワークの上面とが接触する部位を変化させながら前記第1ワークを旋回させるように前記第1ワークを旋回させるように前記ロボットを制御することにより、前記第2ワークの穴が存在する方向を特定する第1制御部と、
前記第1制御部によって特定された前記方向へ、前記第1ワークを移動させるように前記ロボットを制御することにより、前記第1ワークの位置を調整する第2制御部と、
を含む制御装置。
【0124】
(付記2)
前記第1制御部は、前記押し当て方向の力覚値が力覚値に関する閾値以下となるような旋回角度を、前記第2ワークの穴が存在する方向として特定する、
付記1に記載の制御装置。
【0125】
(付記3)
前記第2制御部は、前記押し当て方向の力覚値が力覚値に関する閾値以下となるような前記旋回角度の範囲のうちの略中央方向へ、前記第1ワークを移動させるように前記ロボットを制御する、
付記1又は付記2に記載の制御装置。
【0126】
(付記4)
前記第1制御部は、
前記第1ワークを第1旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第1旋回方向へ旋回させた際の第1力覚値の時系列データを取得し、
前記第1ワークを第2旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第2旋回方向へ旋回させた際の第2力覚値の時系列データを取得し、
前記第2制御部は、
前記第1力覚値の時系列データのうちの、前記第1力覚値が押し当て力の目標値から略ゼロへ変化するときの旋回角度と、前記第2力覚値の時系列データのうちの、前記第2力覚値が押し当て力の目標値から略ゼロへ変化するときの旋回角度との平均を表す方向へ、前記第1ワークを移動させるように前記ロボットを制御する、
付記2又は付記3に記載の制御装置。
【0127】
(付記5)
前記第1制御部は、
前記第1ワークを第1旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第1旋回方向へ旋回させた際の第1力覚値の時系列データを取得し、
前記第1ワークを第2旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第2旋回方向へ旋回させた際の第2力覚値の時系列データを取得し、
前記第2制御部は、
前記第1力覚値の時系列データのうちの、前記第1力覚値が略ゼロから押し当て力の目標値へ変化するときの方向と、前記第2力覚値の時系列データのうちの、前記第2力覚値が略ゼロから押し当て力の目標値へ変化するときの方向との平均を表す方向へ、前記第1ワークを移動させるように前記ロボットを制御する、
付記2又は付記3に記載の制御装置。
【0128】
(付記6)
前記第1制御部は、前記第1ワークの下面における任意の点を中心として前記第1ワークを旋回させるように前記ロボットを制御し、前記第1ワークの前記押し当て方向への前記ロボットの把持部の位置補正量であって、かつ前記押し当て方向へ与える力が目標値となるような位置補正量が増加するような旋回角度を、前記第2ワークの穴が存在する方向として特定する、
付記1に記載の制御装置。
【0129】
(付記7)
前記第1制御部は、前記第1ワークの下面における任意の点を中心として前記第1ワークを旋回させるように前記ロボットを制御し、前記位置補正量が位置補正量に関する閾値以上である旋回角度範囲の略中央方向を、前記第2ワークの穴が存在する方向として特定する、
付記6に記載の制御装置。
【0130】
(付記8)
前記第1制御部は、
前記第1ワークを第1旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第1旋回方向へ旋回させた際の第1位置補正量の時系列データを取得し、
前記第1ワークを第2旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第2旋回方向へ旋回させた際の第2位置補正量の時系列データを取得し、
前記第2制御部は、
前記第1位置補正量の時系列データのうちの、前記第1位置補正量が増加するときの旋回角度と、前記第2位置補正量の時系列データのうちの、前記第2位置補正量が増加するときの旋回角度との平均を表す方向へ、前記第1ワークを移動させるように前記ロボットを制御する、
付記6又は付記7に記載の制御装置。
【0131】
(付記9)
前記第1制御部は、
前記第1ワークを第1旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第1旋回方向へ旋回させた際の第1位置補正量の時系列データを取得し、
前記第1ワークを第2旋回方向へ旋回させるように前記ロボットを制御し、前記第1ワークを第2旋回方向へ旋回させた際の第2位置補正量の時系列データを取得し、
前記第2制御部は、
前記第1位置補正量の時系列データのうちの、前記第1位置補正量が第1所定値へ変化するときの旋回角度と、前記第2位置補正量の時系列データのうちの、前記第2位置補正量が第2所定値へ変化するときの旋回角度との平均を表す方向へ、前記第1ワークを移動させるように前記ロボットを制御する、
付記6又は付記7に記載の制御装置。
【0132】
(付記10)
前記第2制御部は、前記第1ワークを前記第2ワークの穴へ挿入するように前記第1ワークの位置を調整し、前記第1ワークの下面における任意の点の下方向への移動量が移動量に関する閾値以上である場合に、前記第1ワークの位置の調整を終了する、
付記1~付記9の何れか1項に記載の制御装置。
【0133】
(付記11)
前記第2制御部は、前記押し当て方向の力覚値が力覚値に関する閾値以下となるような旋回角度が存在しない場合、前記第1ワークの位置の調整を終了する、
付記2に記載の制御装置。
【0134】
(付記12)
前記第2制御部は、前記押し当て方向への位置補正量が増加するような旋回角度が存在しない場合、前記第1ワークの位置の調整を終了する、
付記6に記載の制御装置。
【0135】
(付記13)
前記第2制御部は、前記第1ワークの位置の調整を繰り返す際に、前記第2ワークの穴が存在する方向として特定された今回の前記旋回角度が、前回の前記旋回角度と略反対方向の角度となった場合に、前記第1ワークの位置の調整を終了させる、
付記1~付記9の何れか1項に記載の制御装置。
【0136】
(付記14)
前記第2制御部は、前記第1ワークの位置の調整を終了させた後に、前記第1ワークの大きさと前記第2ワークの穴の大きさとの間の差異を表すクリアランス以下で、前記第1ワークの位置の微調整を繰り返すことにより、前記第2ワークの穴を探索する、
付記10~付記12の何れか1項に記載の制御装置。
【0137】
(付記15)
前記第2制御部は、前記第1ワークの位置の調整を終了させた後に、前記第1ワークの下面の角部分を前記第2ワークの上面に接触させた状態で、前記第1ワークの下面の角部分を所定距離だけ移動させることを繰り返し、前記第1ワークの位置の微調整を繰り返すことにより、前記第2ワークの穴を探索する、
付記10~付記12の何れか1項に記載の制御装置。
【0138】
(付記16)
前記第2制御部は、前記第1ワークの位置の調整を終了させた後に、前記第1ワークの下面の角部分を前記第2ワークの上面に接触させた後に、前記第1ワークの下面の角部分と前記第2ワークの上面とを離間させた状態で、前記第1ワークの下面の角部分を所定距離だけ移動させることを繰り返すことにより、前記第2ワークの穴を探索する、
付記10~付記12の何れか1項に記載の制御装置。
【0139】
(付記17)
前記第1制御部は、前記第1ワークの下面における任意の点を中心として、前記第1ワークの上面を旋回させるようにロボットを制御する、
付記1~付記16の何れか1項に記載の制御装置。
【0140】
(付記18)
第1ワークを第2ワークの穴へ挿入するように、前記第1ワークの位置を調整するロボットを制御する制御装置を構成するコンピュータが実行する制御方法であって、
前記第1ワークの下面の一部又は全部を前記第2ワークの上面に対して押し当てるように、前記第1ワークを把持するロボットを制御すると共に、前記第1ワークの下面における任意の点を中心として、前記第1ワークの下面と前記第2ワークの上面とが接触する部位を変化させながら前記第1ワークを旋回させるように前記第1ワークを旋回させるように前記ロボットを制御することにより、前記第2ワークの穴が存在する方向を特定し、
特定された前記方向へ、前記第1ワークを移動させるように前記ロボットを制御することにより、前記第1ワークの位置を調整する
処理をコンピュータが実行する制御方法。
【0141】
(付記19)
第1ワークを第2ワークの穴へ挿入するように、前記第1ワークの位置を調整するロボットを制御する制御プログラムであって、
前記第1ワークの下面の一部又は全部を前記第2ワークの上面に対して押し当てるように、前記第1ワークを把持するロボットを制御すると共に、前記第1ワークの下面における任意の点を中心として、前記第1ワークの下面と前記第2ワークの上面とが接触する部位を変化させながら前記第1ワークを旋回させるように前記第1ワークを旋回させるように前記ロボットを制御することにより、前記第2ワークの穴が存在する方向を特定し、
特定された前記方向へ、前記第1ワークを移動させるように前記ロボットを制御することにより、前記第1ワークの位置を調整する
処理をコンピュータに実行させるための制御プログラム。
【0142】
(付記20)
ロボットと制御装置とを備えるロボット制御システムであって、
前記制御装置は、第1ワークを第2ワークの穴へ挿入するように、前記第1ワークの位置を調整するようにロボットを制御する際に、
前記第1ワークの下面の一部又は全部を前記第2ワークの上面に対して押し当てるように、前記第1ワークを把持するロボットを制御すると共に、前記第1ワークの下面における任意の点を中心として、前記第1ワークの下面と前記第2ワークの上面とが接触する部位を変化させながら前記第1ワークを旋回させるように前記ロボットを制御することにより、前記第2ワークの穴が存在する方向を特定し、
前記第1制御部によって特定された前記方向へ、前記第1ワークを移動させるように前記ロボットを制御することにより、前記第1ワークの位置を調整する、
ロボット制御システム。
【符号の説明】
【0143】
10 ロボット制御システム
12 ロボット
14 制御装置
44 ハンド部
100 第1制御部
102 データ記憶部
104 第2制御部