IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

特開2024-61046制御装置、制御方法、及び制御プログラム
<>
  • 特開-制御装置、制御方法、及び制御プログラム 図1
  • 特開-制御装置、制御方法、及び制御プログラム 図2
  • 特開-制御装置、制御方法、及び制御プログラム 図3
  • 特開-制御装置、制御方法、及び制御プログラム 図4
  • 特開-制御装置、制御方法、及び制御プログラム 図5
  • 特開-制御装置、制御方法、及び制御プログラム 図6
  • 特開-制御装置、制御方法、及び制御プログラム 図7
  • 特開-制御装置、制御方法、及び制御プログラム 図8
  • 特開-制御装置、制御方法、及び制御プログラム 図9
  • 特開-制御装置、制御方法、及び制御プログラム 図10
  • 特開-制御装置、制御方法、及び制御プログラム 図11
  • 特開-制御装置、制御方法、及び制御プログラム 図12
  • 特開-制御装置、制御方法、及び制御プログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024061046
(43)【公開日】2024-05-07
(54)【発明の名称】制御装置、制御方法、及び制御プログラム
(51)【国際特許分類】
   B25J 13/08 20060101AFI20240425BHJP
【FI】
B25J13/08 Z
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022168713
(22)【出願日】2022-10-20
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 令和4年10月12日 https://medium.com/sinicx-ja/iros2022%E3%81%AB%E7%9B%B8%E8%A3%9C%E6%80%A7%E6%9D%A1%E4%BB%B6%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E7%89%A9%E4%BD%93%E6%93%8D%E4%BD%9C%E3%81%AE%E7%A0%94%E7%A9%B6%E3%81%8C%E6%8E%A1%E6%8A%9E%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F-40554484f18eにて公開 令和4年10月13日 https://www.omron.com/jp/ja/news/2022/10/c1013.html にて公開 令和4年10月19日 https://ras.papercept.net/conferences/conferences/IROS22/program/IROS22_ContentListWeb_2.html#moa-4_03 にて公開
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】田中 一敏
(72)【発明者】
【氏名】谷合 竜典
(72)【発明者】
【氏名】片山 想太郎
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS09
3C707DS01
3C707KS16
3C707KS31
3C707KS33
3C707KS36
3C707KT03
3C707LS20
3C707LU06
3C707LW03
(57)【要約】
【課題】制御対象の接触点において発生する接触力と制御対象における接触点間の距離とに関する相補性条件が満たされるように、制御対象を制御する。
【解決手段】制御装置16は、時刻tの制御対象の状態を取得し、時刻tの前記状態に基づいて、制御対象の接触点において発生する接触力と制御対象における接触点間の距離とに関する相補性条件を満たし、かつ時刻t+1の制御対象の状態と目標値との差を表す目的関数が最小となるような時刻t+1の状態を計算する。そして、制御装置16は、計算された時刻t+1の状態となるように、制御対象を制御する。
【選択図】図1
【特許請求の範囲】
【請求項1】
時刻tの制御対象の状態を取得する取得部と、
時刻tの前記状態に基づいて、前記制御対象の接触点において発生する接触力と前記制御対象における接触点間の距離とに関する相補性条件を満たし、かつ時刻t+1の前記制御対象の状態と目標値との差を表す目的関数が最小となるような時刻t+1の前記状態を計算する計算部と、
計算された時刻t+1の前記状態となるように、前記制御対象を制御する制御部と、
を含む制御装置。
【請求項2】
前記計算部は、時刻tの前記状態に基づいて、前記制御対象の接触点において発生する接触力と前記制御対象における接触点間の距離とに関する相補性条件、及び前記接触点が接する接触面における接線接触速度に関する相補条件を満たし、かつ時刻t+1の前記制御対象の状態と目標値との差を表す目的関数が最小となるような時刻t+1の前記状態を計算する、
請求項1に記載の制御装置。
【請求項3】
前記制御対象は、ロボット及び対象物体であり、
前記状態のデータは、前記ロボット及び前記対象物体の状態をセンシングするセンサによって得られたセンサデータに基づき計算され、
前記計算部は、時刻tの前記状態に基づいて、前記ロボットの接触点、前記対象物体の接触点、及び他の物体の接触点の何れかの間において発生する接触力と、前記ロボットの接触点、前記対象物体の接触点、及び前記他の物体の接触点の何れかの間の距離とに関する前記相補性条件が満たされるように、時刻t+1の前記状態を計算する、
請求項1又は請求項2に記載の制御装置。
【請求項4】
前記相補性条件は、
複数の前記接触点の各々についての、
時刻tの状態qにおける、i番目の前記接触点が接する接触面の鉛直方向に発生する接触力λniと、i番目の前記接触点と前記接触面との間の前記距離φ(q)とに関する以下の相補性条件(4a)と、
時刻tの前記状態q及び時刻tの一般化速度vにおける、i番目の前記接触点が接する前記接触面における、第1水平方向の接触力λfi+と、前記接触面の前記第1水平方向を正とする符号付きの接線接触速度ψ(q,v)と、前記接線接触速度の絶対値γとに関する以下の相補性条件(4b)と、
時刻tの前記状態q及び時刻tの一般化速度vにおける、i番目の前記接触点が接する前記接触面における、第2水平方向の接触力λfi-と、前記符号付きの接線接触速度ψ(q,v)及び前記接線接触速度の絶対値γとに関する以下の相補性条件(4c)と、
i番目の前記接触点が接する前記接触面における、前記接線接触速度の絶対値γと、前記接触面の摩擦係数μと、前記接触面の鉛直方向に発生する接触力λniと、前記第1水平方向の接触力λfi+と、前記第2水平方向の接触力λfi-とに関する以下の相補性条件(4d)とを含んで構成されている、
請求項3に記載の制御装置。
【数1】
【請求項5】
前記計算部は、時刻tの前記状態qに基づいて、前記相補性条件(4a)~(4d)を満たし、かつ以下の目的関数(5)が最小となるような時刻t+1の前記状態qt+1を計算する、
請求項4に記載の制御装置。
【数2】

ただし、g(qt+1)は前記状態qt+1に対応する前記制御対象の物理量を表し、grefは前記状態qt+1の目標値に対応する前記制御対象の物理量の目標値を表し、Q,Q,及びQは予め与えられる正定重み行列であり、λt+1は、複数の前記接触点の各々についての、前記接触面の鉛直方向に発生する接触力λniと、前記第1水平方向の接触力λfi+と、前記第2水平方向の接触力λfi-とを各成分として持つ時刻t+1のベクトルである。
【請求項6】
前記相補性条件は、
複数の前記接触点の各々についての、
時刻tの状態qにおける、i番目の前記接触点が接する接触面の鉛直方向に発生する接触力λniと、前記接触力λniの変化量Δλniと、i番目の前記接触点と前記接触面との間の前記距離φ(q)と、前記状態qにより前記距離φ(q)を微分することにより得られるΦi,q(q)と、前記状態qの変化量Δqとに関する以下の線形相補性条件(7a)と、
時刻tの前記状態q及び時刻tの一般化速度vにおける、i番目の前記接触点が接する前記接触面における第1水平方向の接触力λfi+と、前記接触力λfi+の変化量Δλfi+と、前記接触面の前記第1水平方向を正とする符号付きの接線接触速度ψ(q,v)と、前記一般化速度vにより前記接線接触速度ψ(q,v)を微分することにより得られるΨi,v(q,v)と、前記接線接触速度の絶対値γと、前記状態qの変化量Δqとに関する以下の線形相補性条件(7b)と、
時刻tの前記状態q及び時刻tの一般化速度vにおける、i番目の前記接触点が接する前記接触面における第2水平方向の接触力λfi-と、前記接触力λfiーの変化量Δλfiーと、前記符号付きの接線接触速度ψ(q,v)と、前記接線接触速度の絶対値γと、前記一般化速度vにより前記接線接触速度ψ(q,v)を微分することにより得られるΨi,v(q,v)と、に関する以下の線形相補性条件(7c)と、
i番目の前記接触点が接する前記接触面における、前記接線接触速度の絶対値γと、前記接触面の摩擦係数μと、前記接触面の鉛直方向に発生する接触力λniと、前記接触力λniの変化量Δλniと、前記第1水平方向の接触力λfi+と、前記第1水平方向の接触力λfi+の変化量Δλfi+と、前記第2水平方向の接触力λfi-と、前記第2水平方向の接触力λfi-の変化量Δλfi-と、に関する以下の線形相補性条件(7d)とを含んで構成されている、
請求項3に記載の制御装置。
【数3】

【請求項7】
前記計算部は、時刻tの前記状態qに基づいて、前記相補性条件(7a)~(7d)を満たし、かつ以下の目的関数(6)が最小となるような前記状態の変化量Δqを計算することにより、時刻t+1の前記状態qt+1を計算する、
請求項6に記載の制御装置。
【数4】





ただし、gは前記状態qに対応する前記制御対象の物理量を表し、grefは前記状態qの目標値に対応する前記制御対象の物理量の目標値を表し、Q,Q,及びQ予め与えられる正定重み行列であり、λは複数の前記接触点の各々についての、前記接触面の鉛直方向に発生する接触力λniと、前記第1水平方向の接触力λfi+と、前記第2水平方向の接触力λfi-とを各成分として持つ時刻tのベクトルであり、Δλは前記λの変化量である。
【請求項8】
前記相補性条件には、前記相補性条件を緩和するための以下の緩和変数sが含まれている、
請求項5に記載の制御装置。
【数5】

【請求項9】
前記計算部は、時刻tの前記状態qに基づいて、前記相補性条件(9a)~(9d)を満たし、かつ以下の目的関数(10)が最小となるような前記状態の変化量Δqと前記接触力の変化量Δλと緩和変数sを各成分として持つベクトルsとを計算することにより、時刻t+1の前記状態qt+1を計算する、
請求項8に記載の制御装置。
【数6】





ただし、gは前記状態qに対応する前記制御対象の物理量を表し、grefは前記状態qの目標値に対応する前記制御対象の物理量の目標値を表し、Q,Q,及びQ予め与えられる正定重み行列であり、λは複数の前記接触点の各々についての、前記接触面の鉛直方向に発生する接触力λniと、前記第1水平方向の接触力λfi+と、前記第2水平方向の接触力λfi-とを各成分として持つ時刻tのベクトルであり、Δλは前記λの変化量である。
【請求項10】
時刻tの制御対象の状態を取得し、
時刻tの前記状態に基づいて、前記制御対象の接触点において発生する接触力と前記制御対象における接触点間の距離とに関する相補性条件を満たし、かつ時刻t+1の前記制御対象の状態と目標値との差を表す目的関数が最小となるような時刻t+1の前記状態を計算し、
計算された時刻t+1の前記状態となるように、前記制御対象を制御する、
処理をコンピュータが実行する制御方法。
【請求項11】
時刻tの制御対象の状態を取得し、
時刻tの前記状態に基づいて、前記制御対象の接触点において発生する接触力と前記制御対象における接触点間の距離とに関する相補性条件を満たし、かつ時刻t+1の前記制御対象の状態と目標値との差を表す目的関数が最小となるような時刻t+1の前記状態を計算し、
計算された時刻t+1の前記状態となるように、前記制御対象を制御する、
処理をコンピュータに実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御装置、制御方法、及び制御プログラムに関する。
【背景技術】
【0002】
従来、ロボットが外界と多様な物理インタラクションを行なった際にも、体の任意箇所における接触状態と作用力をともに計測する技術が知られている(例えば、特許文献1を参照)。
【0003】
また、ロボットが物体に接触する際の目標軌道を達成するために、どのように物体に接触すべきかに関する技術が知られている(例えば、非特許文献1を参照)。非特許文献1では、ロボットが物体に接触する際の大域的な最適化モデルが提案されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2007-30054号公報
【非特許文献】
【0005】
【非特許文献1】Bernardo Aceituno-Cabezas and Alberto Rodriguez, "A Global Quasi-Dynamic Model for Contact-Trajectory Optimization", Robotics: Science and Systems 2020 Corvalis, Oregon, USA, July 12-16, 2020, [令和4年9月27日検索],インターネット<URL:https://www.researchgate.net/publication/342882025>
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、例えば、ロボットが物体と接触するような場面においては、ロボットと物体との間の接触態様(以下、単に接触モードとも称する。)が逐次変化する。これにより、ロボットの動作に関する物理的な制約も逐次変化する。このため、ロボットと物体との接触が多い場合、そのロボットの動作を適切に制御することは難しい。
【0007】
本発明は、上記の点に鑑みてなされたものであり、制御対象の接触点において発生する接触力と制御対象における接触点間の距離とに関する相補性条件が満たされるように、制御対象を制御することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本開示に係る制御装置は、時刻tの制御対象の状態を取得する取得部と、時刻tの前記状態に基づいて、前記制御対象の接触点において発生する接触力と前記制御対象における接触点間の距離とに関する相補性条件を満たし、かつ時刻t+1の前記制御対象の状態と目標値との差を表す目的関数が最小となるような時刻t+1の前記状態を計算する計算部と、計算された時刻t+1の前記状態となるように、前記制御対象を制御する制御部と、を含む制御装置である。
【0009】
また、前記計算部は、時刻tの前記状態に基づいて、前記制御対象の接触点において発生する接触力と前記制御対象における接触点間の距離とに関する相補性条件、及び前記接触点が接する接触面における接線接触速度に関する相補条件を満たし、かつ時刻t+1の前記制御対象の状態と目標値との差を表す目的関数が最小となるような時刻t+1の前記状態を計算するようにすることができる。
【0010】
なお、制御対象とは、制御装置によって制御される機械と、その機械により作用を及ぼされる対象物体のことを示し、機械はロボットを含み得る。また、状態とは、前記機械および前記対象物の位置および姿勢を含み得る。また、時刻t+1とは、時刻tからの計算上の単位時間進んだ時刻を示し、制御装置のサイクルタイム、コンピュータの計算のサイクルタイム、コンピュータによるシミュレーションのサイクルタイムのことを含み得る。また、目標値とは、前記機械または/および対象物体が到達するあらかじめ設定した状態であり、座標および姿勢を含みうる。また、最小とは、目的関数から計算される値であるが、計算の手法により誤差を含み得る。
【0011】
また、前記制御対象は、ロボット及び対象物体であり、前記状態のデータは、前記ロボット及び前記物体の状態をセンシングするセンサによって得られたセンサデータに基づき計算され、前記計算部は、時刻tの前記状態に基づいて、前記ロボットの接触点、前記対象物体の接触点、及び他の物体の接触点の何れかの間において発生する接触力と、前記ロボットの接触点、前記対象物体の接触点、及び前記他の物体の接触点の何れかの間の距離とに関する前記相補性条件が満たされるように、時刻t+1の前記状態を計算するようにすることができる。
【0012】
また、前記相補性条件は、複数の前記接触点の各々についての、時刻tの前記状態qにおける、i番目の前記接触点が接する接触面の鉛直方向に発生する接触力λniと、i番目の前記接触点と前記接触面との間の前記距離φ(q)とに関する以下の相補性条件(4a)と、時刻tの前記状態q及び時刻tの一般化速度vにおける、i番目の前記接触点が接する前記接触面における、第1水平方向の接触力λfi+と、前記接触面の前記第1水平方向を正とする符号付きの接線接触速度ψ(q,v)と、前記接線接触速度の絶対値γとに関する以下の相補性条件(4b)と、時刻tの前記状態q及び時刻tの一般化速度vにおける、i番目の前記接触点が接する前記接触面における、第2水平方向の接触力λfi-と、前記符号付きの接線接触速度ψ(q,v)及び前記接線接触速度の絶対値γとに関する以下の相補性条件(4c)と、i番目の前記接触点が接する前記接触面における、前記接線接触速度の絶対値γと、前記接触面の摩擦係数μと、前記接触面の鉛直方向に発生する接触力λniと、前記第1水平方向の接触力λfi+と、前記第2水平方向の接触力λfi-とに関する以下の相補性条件(4d)とを含んで構成されるようにすることができる。
【0013】
【数1】
【0014】
また、前記計算部は、時刻tの前記状態qに基づいて、前記相補性条件(4a)~(4d)を満たし、かつ以下の目的関数(5)が最小となるような時刻t+1の前記状態qt+1を計算する、ようにすることができる。
【0015】
【数2】
【0016】
ただし、g(qt+1)は前記状態qt+1に対応する前記制御対象の物理量を表し、grefは前記状態qt+1の目標値に対応する前記制御対象の物理量の目標値を表し、Q,Q,及びQは予め与えられる正定重み行列であり、λt+1は、複数の前記接触点の各々についての、前記接触面の鉛直方向に発生する接触力λniと、前記第1水平方向の接触力λfi+と、前記第2水平方向の接触力λfi-とを各成分として持つ時刻t+1のベクトルである。
【0017】
また、前記相補性条件は、複数の前記接触点の各々についての、時刻tの前記状態qにおける、i番目の前記接触点が接する接触面の鉛直方向に発生する接触力λniと、前記接触力λniの変化量Δλniと、i番目の前記接触点と前記接触面との間の前記距離φ(q)と、前記状態qにより前記距離φ(q)を微分することにより得られるΦi,q(q)と、前記状態qの変化量Δqとに関する以下の線形相補性条件(7a)と、時刻tの前記状態q及び時刻tの一般化速度vにおける、i番目の前記接触点が接する前記接触面における第1水平方向の接触力λfi+と、前記接触力λfi+の変化量Δλfi+と、前記接触面の前記第1水平方向を正とする符号付きの接線接触速度ψ(q,v)と、前記一般化速度vにより前記接線接触速度ψ(q,v)を微分することにより得られるΨi,v(q,v)と、前記接線接触速度の絶対値γと、前記状態qの変化量Δqとに関する以下の線形相補性条件(7b)と、時刻tの前記状態q及び時刻tの一般化速度vにおける、i番目の前記接触点が接する前記接触面における第2水平方向の接触力λfi-と、前記接触力λfiーの変化量Δλfiーと、前記符号付きの接線接触速度ψ(q,v)と、前記接線接触速度の絶対値γと、前記一般化速度vにより前記接線接触速度ψ(q,v)を微分することにより得られるΨi,v(q,v)と、に関する以下の線形相補性条件(7c)と、i番目の前記接触点が接する前記接触面における、前記接線接触速度の絶対値γと、前記接触面の摩擦係数μと、前記接触面の鉛直方向に発生する接触力λniと、前記接触力λniの変化量Δλniと、前記第1水平方向の接触力λfi+と、前記第1水平方向の接触力λfi+の変化量Δλfi+と、前記第2水平方向の接触力λfi-と、前記第2水平方向の接触力λfi-の変化量Δλfi-と、に関する以下の線形相補性条件(7d)とを含んで構成されるようにすることができる。
【0018】
【数3】

【0019】
また、前記計算部は、時刻tの前記状態qに基づいて、前記相補性条件(7a)~(7d)を満たし、かつ以下の目的関数(6)が最小となるような前記状態の変化量Δqを計算することにより、時刻t+1の前記状態qt+1を計算する、ようにすることができる。
【0020】
【数4】




【0021】
ただし、gは前記状態qに対応する前記制御対象の物理量を表し、grefは前記状態qの目標値に対応する前記制御対象の物理量の目標値を表し、Q,Q,及びQ予め与えられる正定重み行列であり、λは複数の前記接触点の各々についての、前記接触面の鉛直方向に発生する接触力λniと、前記第1水平方向の接触力λfi+と、前記第2水平方向の接触力λfi-とを各成分として持つ時刻tのベクトルであり、Δλは前記λの変化量である。
【0022】
また、前記相補性条件には、前記相補性条件を緩和するための以下の緩和変数sが含まれている、ようにすることができる。
【0023】
【数5】

【0024】
また、前記計算部は、時刻tの前記状態qに基づいて、前記相補性条件(9a)~(9d)を満たし、かつ以下の目的関数(10)が最小となるような前記状態の変化量Δqと前記接触力の変化量Δλと緩和変数sを各成分として持つベクトルsとを計算することにより、時刻t+1の前記状態qt+1を計算する、ようにすることができる。
【0025】
【数6】




【0026】
ただし、gは前記状態qに対応する前記制御対象の物理量を表し、grefは前記状態qの目標値に対応する前記制御対象の物理量の目標値を表し、Q,Q,及びQ予め与えられる正定重み行列であり、λは複数の前記接触点の各々についての、前記接触面の鉛直方向に発生する接触力λniと、前記第1水平方向の接触力λfi+と、前記第2水平方向の接触力λfi-とを各成分として持つ時刻tのベクトルであり、Δλは前記λの変化量である。
【0027】
また、本開示の制御方法は、時刻tの制御対象の状態を取得し、時刻tの前記状態に基づいて、前記制御対象の接触点において発生する接触力と前記制御対象における接触点間の距離とに関する相補性条件を満たし、かつ時刻t+1の前記制御対象の状態と目標値との差を表す目的関数が最小となるような時刻t+1の前記状態を計算し、計算された時刻t+1の前記状態となるように、前記制御対象を制御する、処理をコンピュータが実行する制御方法である。
【0028】
また、本開示の制御プログラムは、時刻tの制御対象の状態を取得し、時刻tの前記状態に基づいて、前記制御対象の接触点において発生する接触力と前記制御対象における接触点間の距離とに関する相補性条件を満たし、かつ時刻t+1の前記制御対象の状態と目標値との差を表す目的関数が最小となるような時刻t+1の前記状態を計算し、計算された時刻t+1の前記状態となるように、前記制御対象を制御する、処理をコンピュータに実行させるための制御プログラムである。
【発明の効果】
【0029】
本開示の制御装置、方法、及びプログラムによれば、制御対象の接触点において発生する接触力と制御対象における接触点間の距離とに関する相補性条件が満たされるように、制御対象を制御することができる。
【図面の簡単な説明】
【0030】
図1】本実施形態の概要を説明するための図である。
図2】本実施形態に係る制御システムが実行する処理の流れを説明するための図である。
図3】本実施形態で用いる状態qを説明するための図である。
図4】接触点と接触面との間の距離と接触力との間の関係を説明するための図である。
図5】接触点と接触面との間のクーロン摩擦係数を説明するための図である。
図6】本実施形態に係る制御システムの機能構成を示すブロック図である。
図7】本実施形態に係る制御装置のハードウェア構成を示すブロック図である。
図8】本実施形態における制御処理の流れを示すフローチャートである。
図9】本実施例を説明するための図である。
図10】本実施例の結果を表す図である。
図11】本実施例の結果を説明するための図である。
図12】本実施例の結果を表す図である。
図13】従来技術を説明するための図である。
【発明を実施するための形態】
【0031】
以下、本開示の実施形態の一例を、図面を参照しつつ説明する。本実施形態では、本開示に係る制御装置を搭載した制御システムを例に説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0032】
<実施形態の概要>
図13は、従来技術の一例を説明するための図である。図13に示されるように、従来技術では、時刻tにおける物体Bとロボットの把持部Gとの間の接触モードに応じた制御1、時刻tにおける接触モードに応じた制御2、及び時刻tにおける接触モードに応じた制御3が実行される。この場合には、対象物体Bとロボットの把持部Gとの間の接触モードに応じてロボットの動作を制御する必要がある。しかし、その接触モードの数は膨大なものとなるため、膨大な数の接触モードに応じてロボットを連続的に制御することは難しい、という課題がある。
【0033】
そこで、本実施形態では、物体間の接触に関する相補性条件が満たされるように、ロボットの動作を連続的に制御する。これにより、ロボットの動作をリアルタイムに制御することができる。
【0034】
図1は、本実施形態の概要を説明するための図である。図1に示されるように、本実施形態では、対象物体Bとロボットの把持部Gと他の物体である壁W又は床面FLとの接触に関する相補性条件が考慮される。対象物体Bとロボットの把持部Gとは、本開示の制御対象の一例である。
【0035】
具体的には、図1に示されるように、時刻tにおいては、ロボットの把持部Gは対象物体Bと接触していないため把持部Gの接触点pと対象物体Bとの間の距離はゼロよりも大きく、ロボットの把持部Gの接触点pにおいて発生する接触力はゼロである。なお、時刻tにおいては、接触点pは対象物体Bと実際に接触していないため、接触候補点でもある。
【0036】
一方、図1に示されるように、時刻tにおいては、ロボットの把持部Gは対象物体Bと接触しているため把持部Gの接触点pと対象物体Bとの間の距離はゼロとなり、ロボットの把持部Gの接触点pにおいてゼロよりも大きい接触力λが発生する。
【0037】
更に、図1に示されるように、時刻tにおいては、ロボットの把持部Gは対象物体Bと接触していないため把持部Gの接触点pと対象物体Bとの間の距離はゼロよりも大きく、ロボットの把持部Gの接触点pにおいて発生する接触力はゼロとなる。
【0038】
なお、図1に示されるように、対象物体Bには複数の接触点p,p,p,pがある。例えば、時刻tにおいては、接触点pと床面FLとの間において接触力λが発生し、接触点pと床面FLとの間において接触力λが発生する。また、時刻tにおいては、接触点pと床面FLとの間において接触力λが発生し、接触点pと壁Wとの間において接触力λが発生する。また、時刻tにおいては、接触点pと床面FLとの間において接触力λが発生し、接触点pと床面FLとの間において接触力λが発生する。
【0039】
図1に示されるように、ロボットの把持部Gと対象物体Bと壁W又は床面FLとの間において、各々の距離がゼロよりも大きい場合には接触力がゼロとなる。一方、ロボットの把持部Gと対象物体Bと壁W又は床面FLとの間において、各々の距離がゼロである場合には接触力がゼロよりも大きくなる。このため、物体間の距離と物体間で発生する接触力との間には相補性条件が成立する。
【0040】
そこで、本実施形態では、物体間の接触に関する相補性条件が満たされるように、ロボットの動作を連続的に制御する。これにより、図13の従来技術のような複数の接触モードに基づくロボットの制御をすることなく、ロボットの動作をリアルタイムに制御することができる。なお、2つのスカラー変数であるaとbとの相補性条件は以下の式(1)によって表現される。
【0041】
【数7】
【0042】
なお、a,bは次式を満たす。
【0043】
【数8】

【0044】
なお、以下では、本実施形態において提案される手法を、LCQP(Linear complementarity quadratic program)とも称する。
【0045】
図2は、本実施形態に係る制御システムが実行する処理の流れを説明するための図である。図1に示されるように、本実施形態の制御装置16は、時刻tの制御対象の状態qを取得し、目標値との差異が小さくなるような時刻t+1の制御対象の状態qt+1を計算する。その際、制御装置16は、物体間の接触に関する相補性条件が満たされ、かつ目標値と時刻t+1の制御対象の状態qt+1との間の差異を表す目的関数が小さくなるように、時刻t+1の制御対象の状態qt+1を計算する。そして、制御装置16は、時刻t+1の制御対象の状態qt+1を制御入力としてロボット14へ出力する。これにより、制御対象の変化に応じて接触モードを逐次設定することなく、ロボットの動作をリアルタイムに制御することができる。また、本実施形態では、物体間の接触に関する相補性条件が満たされているか否かを判定するのみでよいため、ロボットの動作をリアルタイムに制御する際の計算コストを低減させることができる。
【0046】
図3は、本実施形態で用いる状態qを説明するための図である。図3は、システム全体が把持部Gと対象物体Bとにより構成される準静的定式化の一例を示す図でもある。図3に示されるように、本実施形態では、把持部Gの所定位置を原点とする把持部座標系における座標(x,y)と、把持部Gの姿勢を表す姿勢角θと、把持部Gが備えるグリッパー間の距離rとを各成分として持つ状態ベクトルqが設定される。また、図3に示されるように、本実施形態では、対象物体Bの所定位置を原点とする対象物体座標系における座標(x,y)と、対象物体Bの姿勢を表す姿勢角θとを各成分として持つ状態ベクトルqが設定される。なお、把持部Gの全自由度(DOF : Degree of freedom)をNとし、対象物体Bの全自由度をNとした場合、一般化座標における状態ベクトルqと状態ベクトルqとは、以下の式によって定義される。なお、以下で説明する数式内の太字はベクトル又は行列を表す。
【0047】
【数9】

【0048】
制御対象の状態qと各物体の速度vは、次式によって表される。なお、速度vは一般化速度でもある。
【0049】
【数10】

【0050】
なお、準静的モデルを離散時間へ拡張することにより、以下の式が導出される。hは0以上の予め設定される係数である。
【0051】
【数11】
【0052】
次に、接触点と接触面との間において発生する力である接触力について説明する。図3に示されるように、対象物体Bの隅と把持部Gが備えるグリッパーの隅を接触点pG1,pG2として設定する。ここで、i番目の接触点と接触面との間において発生する各時刻tの接触力λt,iが以下のように定義される。
【0053】
【数12】

【0054】
λfiは、i番目の接触点が接する接触面における水平方向の接触力である。λniは、i番目の接触点が接する接触面の鉛直方向に発生する接触力である。なお、本実施形態では、対象物体Bがボックスである場合を例に説明するが、他の種類の物体(例えば、球状の物体)に関しても同様に相補性条件を定式化することができる。
【0055】
次に、対象物体Bに相当するオブジェクトoにかかる力とモーメントとの釣り合いを導出するために、接触点と接触面とのペアの集合Cを導入する。接触点と接触面とのペアを識別するためのインデックスiは、次式によって定義される。
【0056】
また、接触点と接触面とのペアを識別するためのインデックスiは、次式によって定義される接触面の回転行列R(q)及び接触面の質量中心からの相対位置[ro,i,x(q),ro,i,y(q)]に関連付けられる。
【0057】
【数13】

【0058】
準静的な仮定下(例えば、速度と加速度とが十分に小さい)において、オブジェクトoに関するニュートンの第2法則は、以下の式(3)によって表される。
【0059】
【数14】
【0060】
なお、上記式のr o,i(q)は次式によって表される。
【0061】
【数15】
【0062】
上記式(3)が表すベクトルの1次元目の成分と2次元目の成分とは、世界座標系においてオブジェクトoに作用する力を表す。同様に、上記式(3)の3次元目の成分がモーメントを表す。また、上記式(3)のかっこ内に記載されている力とモーメントとはオブジェクトoにかかる接触力を表す。また、次式によって定義される力Fは重力等の時間的に一定の力を表す。上記式(3)に示されている各値は、既知の技術によって計算可能である。
【0063】
【数16】
【0064】
[接触に関する相補性条件]
本実施形態では、接触点と接触面とのペアを識別するためのインデックスiの各々において、時刻tに発生する接触力ベクトルλt,iが定義される。上述したように、この接触力ベクトルλt,iは、i番目の接触点と接触面とのペアにおける接触面の垂直方向に発生する接触力λniと、i番目の接触点と接触面とのペアにおける接触面の水平方向に発生する接触力λfiとを各成分として持つ。図4は、i番目の接触点と接触面との間の距離φ(q)と接触力λniとの間の関係を説明するための図である。図4に示されるように、距離φ(q)=0である場合には接触力λni>0となり、距離φ(q)>0である場合には接触力λni=0となる。
【0065】
また、上記図1に示されるように、ロボット14の把持部Gの接触点と対象物体Bとが接触し、把持部Gの接触点と対象物体Bとの間の距離がゼロである場合に接触力λniが正となる。そのため、本実施形態では、時刻tにおけるi番目の接触点と接触面との間の距離φ(q)を導入する。距離φ(q)は次式によって表される。
【0066】
【数17】
【0067】
また、対象物体B又は把持部Gが接触点において滑らないためには、接触力ベクトルλt,iが、接触点と接触面との摩擦によって形成される摩擦円錐内に位置している必要がある。そのため、本実施形態では、時刻tにおけるi番目の接触点と接触面とにおける接触速度ψ(q,v)を導入する。接触速度ψ(q,v)は、次式によって表される。
【0068】
【数18】
【0069】
更に、物体間の接触に関する相補性条件を表現するために、本実施形態では、接触面の水平方向に発生する非負の2つの接触力λfi+,λfi-を導入する。2つの接触力λfi+,λfi-は、次式によって表される。
【0070】
【数19】

【0071】
図5は、接触点と接触面との間のクーロン摩擦係数を説明するための図である。図5に示される黒丸は接触点を表し、実線の矢印は接触力を表し、破線の矢印は接触速度を表す。対象物体B又は把持部Gが接触点において滑らないためには、鉛直方向に発生する接触力λniと水平方向に発生する接触力λfi+,λfi-とが、図5に示されるような関係である必要がある。図5に示される実線の矢印は接触力を表し、破線の矢印は対象物体Bが滑ることにより生じる接触速度ψ(q,v)の絶対値γを表す。また、μは接触点と接触面との間の摩擦係数を表し、μ>0である。なお、絶対値γは次式によって定義される。
【0072】
【数20】
【0073】
図5の(A)の場合、接触力ベクトルλt,iが摩擦円錐Cの右側の境界に位置しているため、対象物体Bの接触点において滑りが発生する。このため、図5の(A)のような状態下においては、対象物体Bと床面FLとが接触する接触点において次式が成立する。
【0074】
【数21】
【0075】
上記式に示されているように、図5の(A)の場合、接触力λniが正の値となり、第1水平方向に発生する接触力λfi+が正の値となり、第1水平方向とは逆向きの第2水平方向に発生する接触力λfi-がゼロとなり、第1水平方向を正とする接触速度ψ(q,q)=ψ(q,v)が負となり、接触速度の絶対値γが正となる。また、図5の(A)の場合、接触点において発生する摩擦力μλniから第1水平方向に発生する接触力λfi+と第2水平方向に発生する接触力λfi-とを差し引いた値がゼロとなる。これにより、図5の(A)の場合、対象物体Bの接触点において滑りが発生する。
【0076】
また、図5の(B)の場合、接触力ベクトルλt,iが摩擦円錐Cの内側に位置しているため、対象物体Bに滑りは発生しない。このため、図5の(B)のような状態下においては、対象物体Bと床面FLとが接触する接触点において次式が成立する。
【0077】
【数22】
【0078】
上記式に示されているように、図5の(B)の場合、接触力λniが正の値をとり、第1水平方向に発生する接触力λfi+が正の値をとり、第2水平方向に発生する接触力λfi-がゼロとなり、第1水平方向を正とする接触速度ψ(q,q)=ψ(q,v)がゼロとなり、接触速度の絶対値γがゼロとなる。また、図5の(B)の場合、接触点において発生する摩擦力μλniから第1水平方向に発生する接触力λfi+と第2水平方向に発生する接触力λfi-とを差し引いた値が正の値となる。これにより、図5の(B)の場合、対象物体Bに滑りは発生しない。
【0079】
また、図5の(C)の場合、接触力ベクトルλt,iが摩擦円錐Cの左側の境界に位置しているため、対象物体Bの接触点において滑りが発生する。このため、図5の(C)のような状態下においては、対象物体Bと床面FLとが接触する接触点において次式が成立する。
【0080】
【数23】
【0081】
上記式に示されているように、図5の(C)の場合、接触力λniが正の値となり、第1水平方向に発生する接触力λfi+がゼロとなり、第2水平方向に発生する接触力λfi-が正の値となり、第1水平方向を正とする接触速度ψ(q,q)=ψ(q,v)が正の値となり、接触速度の絶対値γが正の値となる。また、図5の(C)の場合、接触点において発生する摩擦力μλniから第1水平方向に発生する接触力λfi+と第2水平方向に発生する接触力λfi-とを差し引いた値がゼロとなる。これにより、図5の(C)の場合、対象物体Bの接触点において滑りが発生する。
【0082】
図5に示されるように、接触速度ψ(q,v)がゼロではない場合に、第1水平方向に発生する接触力λfi+及び第2水平方向に発生する接触力λfi-の何れか一方がゼロとなる。これは、接触速度ψ(q,v)がゼロではない場合に、γ+ψ(q,v)の値及びγ-ψ(q,v)の値の何れか一方がゼロではないためである。なお、前述したように、ψ(q,v)は、第1方向を正とする符号付きの接触速度である。また、図5に示されるように、接触速度ψ(q,v)は、第1水平方向に発生する接触力λfi+又は第2水平方向に発生する接触力λfi-とは逆向きの符号となる。
【0083】
このため、物体間の接触に関する相補性条件として、次式が成立する。
【0084】
【数24】
【0085】
上記式(4a)は、物体間の距離φ(q)がゼロである場合には接触力λniが正となり、物体間の距離φ(q)が正の値である場合には接触力λniがゼロとなる、ということを表す相補性条件の式である。また、上記式(4b)~(4d)は、接触力ベクトルλt,iが摩擦円錐Cの内側に位置している、ということを表す相補性条件である。また、上記式(4d)は、図5の(A)及び(C)にも示されているように、接触力ベクトルλt,iが摩擦円錐Cの境界に位置している、ということを表す相補性条件である。
【0086】
このため、上述した物体間の接触に関する相補性条件は、相補性条件(4a)と、相補性条件(4b)と、相補性条件(4c)と、相補性条件(4d)とを含んで構成される。相補性条件(4a)は、制御対象の接触点において発生する接触力と制御対象における接触点間の距離とに関する相補性条件の一例である。相補性条件(4b)~(4d)は、接触点が接する接触面における接線接触速度に関する相補条件の一例である。
【0087】
上記式(4a)は、複数の接触点の各々についての、時刻tの状態qにおける、i番目の接触点が接する接触面の鉛直方向に発生する接触力λniと、i番目の接触点と接触面との間の距離φ(q)とに関する相補性条件である。
【0088】
上記式(4b)は、複数の接触点の各々についての、時刻tの状態q及び時刻tの一般化速度vにおける、i番目の接触点が接する接触面における、第1水平方向の接触力λfi+と、接触面の第1水平方向を正とする符号付きの接線接触速度ψ(q,v)と、接線接触速度の絶対値γとに関する相補性条件である。
【0089】
上記式(4c)は、複数の接触点の各々についての、時刻tの状態q及び時刻tの一般化速度vにおける、i番目の接触点が接する接触面における、第2水平方向の接触力λfi-と、符号付きの接線接触速度ψ(q,v)及び接線接触速度の絶対値γとに関する相補性条件である。
【0090】
上記式(4d)は、複数の接触点の各々についての、i番目の接触点が接する接触面における、接線接触速度の絶対値γと、接触面の摩擦係数μと、接触面の鉛直方向に発生する接触力λniと、第1水平方向の接触力λfi+と、第2水平方向の接触力λfi-とに関する相補性条件である。
【0091】
なお、上記の提案手法を3次元運動の場合に適用すると、多面体円錐の対角線毎に上記式(4b)と(4c)のペアが導入される。
【0092】
次に、本実施形態のLCQPを定式化する。ここで、接触力ベクトルλが定義される。接触力ベクトルλは、次式のλfi+,λfi-,λniを各成分として持つベクトルである。
【0093】
【数25】
【0094】
また、以下の式(5)が導入される。本実施形では、上記式(2)~(4d)が表す条件を満たしつつ、以下の式(5)が表す目的関数が最小となるような時刻t+1の状態qt+1及び接触力ベクトルλt+1が計算される。
【0095】
【数26】
【0096】
ここで、上記式(5)のgは、一般微分可能関数であり、状態qを、ロボット14の把持部Gの位置及び姿勢と対象物体Bの位置及び姿勢の空間へ写像するための関数である。このため、g(q)は、状態qに対応する制御対象の物理量である。grefは、物理量の目標値ベクトルを表す。また、Q,Q,Qは、予め与えられる正定重み行列である。Qはタスクの優先度を表し、Q,Qは、正規化項である。
【0097】
本実施形態のLCQPでは、既知の勾配降下法と同様の考え方に基づき、上記式(5)に示されている制約付き非線形目的関数を最適化する。具体的には、本実施形では、上記式(5)の目的関数が小さくなるような降下ステップを生成することにより、ロボット14を動作させる制御を実行する。なお、各降下ステップは、線形化された式(5)の目的関数を解くことによって計算される。これにより、次の時間t+1の把持部G及び対象物体Bの位置と力とを表す状態qt+1及び接触力ベクトルλt+1が得られる。
【0098】
上記式(5)の目的関数が小さくなるような降下ステップの生成を繰り返すことにより、最終的に式(5)が最小化されるような目標状態qに到達する。
【0099】
本実施形態では、問題を扱いやすくするために、Δq及びΔλに基づいて定義される以下の式を導入する。
【0100】
【数27】

【0101】
Δq及びΔλが十分に小さい場合、上記式(5)の目的関数はΔqとΔλの2次関数によって以下の式(6)のように近似される。
【0102】
【数28】
【0103】
ここで、上記式(6)のうちの各変数は以下の式によって定義される。
【0104】
【数29】


【0105】
上記式(2)を上記式(6)へ組み込むと、上記式(3)~(4d)は以下のように線形化することができる。
【0106】
具体的には、時刻tにおけるΔq,Δλni,Δλfi+,及びΔλfi-を用いて時刻t+1におけるqt+1,λni,λfi+,及びλfi-を近似することにより、以下の式(7a)~(7d)が導出される。
【0107】
【数30】
【0108】
なお、上記式(7a)~(7d)における未定義の変数は次式によって定義される。
【0109】
【数31】

【0110】
なお、LCQPが実行される際には、次式の関係式が上記式(7a)~(7d)に代入される。
【0111】
【数32】
【0112】
このため、上述した物体間の接触に関する相補性条件は、線形相補性条件(7a)と、相補性条件(7b)と、線形相補性条件(7c)と、線形相補性条件(7d)とを含んで構成される。
【0113】
上記式(7a)は、複数の接触点の各々についての、時刻tの状態qにおける、i番目の接触点が接する接触面の鉛直方向に発生する接触力λniと、接触力λniの変化量Δλniと、i番目の接触点と接触面との間の距離φ(q)と、状態qにより距離φ(q)を微分することにより得られるΦi,q(q)と、状態qの変化量Δqとに関する線形相補性条件である。
【0114】
上記式(7b)は、複数の接触点の各々についての、時刻tの状態q及び時刻tの一般化速度vにおける、i番目の接触点が接する接触面における第1水平方向の接触力λfi+と、接触力λfi+の変化量Δλfi+と、接触面の第1水平方向を正とする符号付きの接線接触速度ψ(q,v)と、一般化速度vにより接線接触速度ψ(q,v)を微分することにより得られるΨi,v(q,v)と、接線接触速度の絶対値γと、状態qの変化量Δqとに関する線形相補性条件である。
【0115】
上記式(7c)は、複数の接触点の各々についての、時刻tの状態q及び時刻tの一般化速度vにおける、i番目の接触点が接する接触面における第2水平方向の接触力λfi-と、接触力λfiーの変化量Δλfiーと、符号付きの接線接触速度ψ(q,v)と、接線接触速度の絶対値γと、一般化速度vにより接線接触速度ψ(q,v)を微分することにより得られるΨi,v(q,v)とに関する線形相補性条件である。
【0116】
上記式(7d)は、複数の接触点の各々についての、i番目の接触点が接する接触面における、接線接触速度の絶対値γと、接触面の摩擦係数μと、接触面の鉛直方向に発生する接触力λniと、接触力λniの変化量Δλniと、第1水平方向の接触力λfi+と、第1水平方向の接触力λfi+の変化量Δλfi+と、第2水平方向の接触力λfi-と、第2水平方向の接触力λfi-の変化量Δλfi-とに関する以下の線形相補性条件である。
【0117】
(力とモーメントの線形化)
上記式(3)が表す力とモーメントとの間の関係式は、次式(8)のように線形化される。
【0118】
【数33】
【0119】
(物体間の接触に関する相補性条件の緩和)
なお、実際には、物体間の接触に関する相補性条件(7a)~(7c)を満たすような解が存在しない場合があり得る。例えば、センサ等によって測定された状態がノイズを含んでいるような場合又は対象物体Bを表すモデルが現実の対象物体Bを表現しきれていない場合(例えば、対象物体Bの形状モデルのモデリングエラー又は対象物体Bの変形等)により、物体間の接触に関する相補性条件(7a)~(7c)が満たされないという場合もあり得る。
【0120】
また、物体間の接触に関する相補性条件(7a)~(7d)により、作動するオブジェクトであるロボット14の把持部Gが、対象物体Bと接触することできないという状況も発生し得る。例えば、非ゼロの鉛直方向の接触力λniが計算された場合であっても、その接触点の実際の位置は接触面からわずかにずれているという場合もあり得る。
【0121】
そこで、本実施形態では、これらの問題を解決するために、物体間における小さな貫通を許可する。具体的には、本実施形態では、上記式(7a)~(7d)に対して、緩和変数sを導入することにより、物体間の接触に関する相補性条件を緩和させる。緩和変数sが導入された相補性条件は次式によって表される。
【0122】
【数34】
【0123】
なお、上記式(9a)~(9d)を利用する場合には、p を上記式(6)の目的関数へ追加する。p が追加された目的関数は、以下の式(10)によって表される。なお、以下の式におけるpは予め設定される係数である。
【0124】
【数35】
【0125】
本実施形態では、上記式(10)を最小化するような時刻tのΔq,Δλ,及びsを計算する。時刻tのΔq及びΔλは、次の時刻t+1におけるqt+1=q+Δq及びλt+1=λ+Δλを計算する際に用いられる。sは、緩和変数sを各成分として持つベクトルである。qt+1及びλt+1には、作動システム(本実施形態では、ロボット14の把持部G)の位置と力とが要素として含まれているため、これに基づいてロボット14の把持部Gの動作が制御される。
【0126】
なお、LCQPによって計算された値は、次式によって把持部Gの位置に関する制御信号q t+1へと変換される。
【0127】
【数36】
【0128】
ここで、K>0はユーザによって定義されるゲインである。上記の変換により、実際にはロボット14がLCQPによって計算された力の指示信号を正確に実行できないという事態の発生が抑制される。
【0129】
図6は、LCQPによって制御される本実施形態の制御システム10の概略構成を表すブロック図である。図6に示されるように、制御システム10は、カメラ12と、ロボット14と、制御装置16とを備えている。本実施形態に係る制御装置16は、物体間(例えば、ロボット14の把持部Gと対象物体Bと壁W及び床面FLとの間)の接触に関する相補性条件が満たされるように、ロボット14の動作を連続的に制御する。
【0130】
カメラ12は、制御対象であるロボット14の把持部Gと対象物体Bとを逐次撮像する。そして、カメラ12は、ロボット14の把持部Gと対象物体Bとを撮像することにより得られた画像データを制御装置16へ出力する。
【0131】
図7は、本実施形態に係る制御装置16のハードウェア構成を示すブロック図である。図7に示されるように、制御装置16は、CPU(Central Processing Unit)42、メモリ44、記憶装置46、入出力I/F(Interface)48、記憶媒体読取装置50、及び通信I/F52を有する。各構成は、バス54を介して相互に通信可能に接続されている。
【0132】
記憶装置46には、後述する各処理を実行するための制御プログラムが格納されている。CPU42は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU42は、記憶装置46からプログラムを読み出し、メモリ44を作業領域としてプログラムを実行する。CPU42は、記憶装置46に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0133】
メモリ44は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置46は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0134】
入出力I/F48は、カメラ12とロボット14とからのデータの入力、及びカメラ12とロボット14とへのデータの出力を行うインタフェースである。また、例えば、キーボードやマウス等の、各種の入力を行うための入力装置、及び、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための出力装置が接続されてもよい。出力装置として、タッチパネルディスプレイを採用することにより、入力装置として機能させてもよい。
【0135】
記憶媒体読取装置50は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。
【0136】
通信I/F52は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0137】
次に、制御装置16の機能構成について説明する。図6に示されるように、制御装置16は、機能的には、取得部24と、計算部26と、制御部28とを含む。また、制御装置16の所定の記憶領域には、データ記憶部18と、相補性条件記憶部20と、目的関数記憶部22とが設けられている。各機能構成は、CPU42が記憶装置46に記憶された各プログラムを読み出し、メモリ44に展開して実行することにより実現される。
【0138】
データ記憶部18には、カメラ12によって撮像された画像データが格納される。相補性条件記憶部20には、上述した物体間の接触に関する相補性条件のデータが格納されている。目的関数記憶部22には、上述した目的関数に関するデータが格納されている。
【0139】
取得部24は、制御対象であるロボット14の把持部Gと対象物体Bからセンシングされたセンサデータの一例である画像データを逐次取得する。そして、取得部24は、取得した画像データを、データ記憶部18へ格納する。
【0140】
また、取得部24は、時刻tのロボット14及び対象物体Bの状態qを取得する。具体的には、取得部24は、データ記憶部18に格納されている時刻tの画像データを読み出し、時刻tの状態qを表すデータを計算する。なお、取得部24は、既知の技術を用いて、画像データから状態qを表すデータを計算する。
【0141】
計算部26は、取得部24によって計算された時刻tの状態qに基づいて、上述した物体間の接触に関する相補性条件を満たし、かつ時刻t+1のロボット14及び対象物体Bの状態qt+1と目標値との差を表す目的関数が最小となるような時刻t+1の状態qt+1を計算する。なお、この際、計算部26は、相補性条件記憶部20に格納されている物体間の接触に関する相補性条件のデータと、目的関数記憶部22に格納されている目的関数に関するデータとを参照して計算処理を実行する。
【0142】
なお、本実施形態では、物体間の接触に関する相補性条件は、ロボット14の把持部Gの接触点、対象物体Bの接触点、及び他の物体である壁W又は床面FLの接触点の何れかの間において発生する接触力と、ロボット14の把持部Gの接触点、対象物体Bの接触点、及び壁W又は床面FLの接触点の何れかの間の距離とに関する相補性条件である。物体間の接触に関する相補性条件は、上述した式(4a)~(4d)、式(7a)~(7d)、及び式(9a)~(9d)の何れかである。
【0143】
このため、例えば、計算部26は、物体間の接触に関する相補性条件式(9a)~(9d)を満たし、かつ状態qを引数とするgとgrefとの差を要素として含む上記式(10)の目的関数が最小となるような状態Δqと接触力Δλとのペアを計算する。そして、計算部26は、状態Δqと接触力Δλとのペアに基づいて、時刻t+1のqt+1=q+Δq及びλt+1=λ+Δλを計算する。
【0144】
制御部28は、計算部26によって計算された時刻t+1の状態qt+1となるように、制御対象であるロボット14の把持部Gの動作を制御する。例えば、制御部28は、既知の技術を利用することにより、ロボット14の把持部Gの動作を制御する。
【0145】
次に、本実施形態に係る制御システム10の作用について説明する。
【0146】
まず、対象物体Bが置かれている環境下において、制御システム10が所定の指示信号を受け付けると、制御装置16のCPU42は記憶装置46から制御プログラムを読み出して、メモリ44に展開して実行する。これにより、CPU42が制御装置16の各機能構成として機能し、図8に示す制御処理が実行される。なお、図8に示される制御処理は繰り返し実行される。
【0147】
なお、以下では、物体間の接触に関する相補性条件として上記式(9a)~(9d)を用い、目的関数として上記式(10)を用いる場合を例に説明する。このため、相補性条件記憶部20には、上記式(9a)~(9d)に関するデータが格納されている。また、目的関数記憶部22には、上記式(10)に関するデータが格納されている。
【0148】
ステップS100において、取得部24は、データ記憶部18に格納されている時刻tの画像データを読み出し、時刻tの状態qを表すデータを取得する。
【0149】
ステップS102において、計算部26は、相補性条件記憶部20から上記式(9a)~(9d)に関するデータを読み出す。また、ステップS102において、計算部26は、目的関数記憶部22から上記式(10)に関するデータを読み出す。そして、ステップS102において、ステップS100で取得された時刻tの状態qに基づいて、上記式(9a)~(9d)の物体間の接触に関する相補性条件を満たし、かつ時刻t+1のロボット14及び対象物体Bの状態qt+1と目標値との差を表す上記式(10)の目的関数が最小となるような時刻t+1の状態qt+1を計算する。
【0150】
ステップS104において、制御部28は、ステップS102で計算された時刻t+1の状態qt+1となるように、制御対象であるロボット14の把持部Gの動作を制御する。
【0151】
図8に示される制御処理が繰り返され、ロボット14に対して制御信号が繰り返し出力されることにより、対象物体Bが所望の位置及び姿勢となる。
【0152】
以上説明したように、本実施形態に係る制御システムの制御装置は、時刻tの制御対象の状態を取得し、時刻tの前記状態に基づいて、制御対象の接触点において発生する接触力と制御対象における接触点間の距離とに関する相補性条件を満たし、かつ時刻t+1の制御対象の状態と目標値との差を表す目的関数が最小となるような時刻t+1の状態を計算する。そして、制御装置は、計算された時刻t+1の状態となるように、制御対象を制御する。これにより、制御対象の接触点において発生する接触力と制御対象における接触点間の距離とに関する相補性条件が満たされるように、制御対象を制御することができる。
【0153】
また、本実施形態の制御装置によれば、制御対象であるロボットを連続的に制御することができる。
【0154】
また、本実施形態では、上記式(4a)~(4d)の相補性条件を線形化し、上記式(7a)~(7d)の線形相補性条件を生成する。これにより、相補性条件の演算に要する計算コストを低減させることができ、ロボット14の把持部Gと対象物体Bの状態に応じたロボットの動作命令をオンラインで演算することができる。これにより、例えば、ロボット14の把持部Gの先端で対象物体Bを押して(把持せずに)立ち上げるという動作を実現させることができる。
【0155】
また、本実施形態では、上記式(7a)~(7d)の線形相補性条件に対して緩和変数sを導入する。これにより、現実世界における物体間の接触とセンサデータによって検知された物体間の接触とに齟齬があったとしても、物体間の接触に関する相補性条件を満たしているか否かを計算することが可能となり、ロボット14の把持部Gの動作を適切に制御することができる。
【0156】
[実施例]
次に、実施例について説明する。本実例では、提案したLCQPの有効性を検証するため、PyBullet 3D physics simulator(E. Coumans and Y. Bai, “Pybullet, a python module for physics simulation for games, robotics and machine learning,” 2016-2021. [Online]. Available: http://pybullet.org)を利用したシミュレーションを行う。
【0157】
図9は、本実施例を説明するための図である。図9に示されるように、本実施例では、ロボットの把持部Gの先端を、横たわっている対象物体Bであるボックスに接触させ、ボックスを立たせるようなシミュレーションを行った。なお、本実施例では、上記式(7a)~(7d)に緩和変数を導入した相補性条件を利用する。
【0158】
図10図12は、本実施例の結果を表す図である。図11は、本実施例の結果を説明するための図である。
【0159】
図10に示されるように、ロボットの把持部Gが対象物体Bであるボックスに触れ、対象物体Bを立たせることができていることがわかる。また、図12は、図11に示す各接触点に関連するパラメータを各時刻でモニタリングした際の結果を表す図である。図12(1)~(5)に示されるように、接触点p1~p4の各パラメータにおいて、接触に関する相補性条件が満たされていることがわかる。例えば、図10及び図11に示されているように、接触点pは(a)~(b)の間において壁面Wと接触する。図12の(1)を参照すると、(a)~(b)の間においてλ及びλが発生する。その一方で、図12の(1)の(a)~(b)の間においては、Φ及びψはゼロに近い値となる。このように、図12(1)~(5)に示されているように、接触点p1~p4の各パラメータにおいて、接触に関する相補性条件が満たされていることがわかる。
【0160】
なお、上記実施形態では、本開示のLCQPをロボット制御に適用した例について説明したが、これに限定されるものではない。LCQPはパラメータの多い制御系においてリアルタイムでの最適化が求められる対象に応用可能と考えられる。例えば、接触状態の切り替わる物体操作の他、脚式ロボット、又は車輪ロボットの移動に応用することが可能である。接触状態の切り替わる物体操作を行うロボットは、物体の持ち替えの省略、狭隘環境でのピックアンドプレイス等が必要な場面も多いため、LCQPを適用することが可能である。また、実験自動化、部品組立など、自律してマニピュレータが作業を実行する場合にもLCQPを適用させることができる。また、車輪ロボットは、壁又は床面等と接触して走行するため、壁又は床面との間で摩擦力が発生するため、接触に関する相補性条件を利用するLCQPを適用させることが可能である。
【0161】
また、上記実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した各処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、各処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0162】
また、上記実施形態では、各プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM、ブルーレイディスク、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0163】
10 制御システム
14 ロボット
16 制御装置
18 データ記憶部
20 相補性条件記憶部
22 目的関数記憶部
24 取得部
26 計算部
28 制御部
42 CPU
44 メモリ
46 記憶装置
50 記憶媒体読取装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13