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

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

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

特許7582492制御装置、制御方法および制御プログラム
<>
  • 特許-制御装置、制御方法および制御プログラム 図1
  • 特許-制御装置、制御方法および制御プログラム 図2
  • 特許-制御装置、制御方法および制御プログラム 図3
  • 特許-制御装置、制御方法および制御プログラム 図4
  • 特許-制御装置、制御方法および制御プログラム 図5
  • 特許-制御装置、制御方法および制御プログラム 図6
  • 特許-制御装置、制御方法および制御プログラム 図7
  • 特許-制御装置、制御方法および制御プログラム 図8
  • 特許-制御装置、制御方法および制御プログラム 図9
  • 特許-制御装置、制御方法および制御プログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】制御装置、制御方法および制御プログラム
(51)【国際特許分類】
   B25J 19/06 20060101AFI20241106BHJP
【FI】
B25J19/06
【請求項の数】 15
(21)【出願番号】P 2023543685
(86)(22)【出願日】2022-04-27
(86)【国際出願番号】 JP2022019089
(87)【国際公開番号】W WO2023026589
(87)【国際公開日】2023-03-02
【審査請求日】2024-01-23
(31)【優先権主張番号】P 2021138585
(32)【優先日】2021-08-27
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】大城 篤志
【審査官】杉田 隼一
(56)【参考文献】
【文献】特開2019-206080(JP,A)
【文献】特開2019-123022(JP,A)
【文献】国際公開第2019/097676(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 19/06
(57)【特許請求の範囲】
【請求項1】
ロボットのマニピュレータがスタート位置からゴール位置まで移動するように前記ロボットを制御する制御装置であって、
前記マニピュレータと物体との干渉のリスク値を算出する算出部と、
複数種類の動作を含むグループの中から前記リスク値に応じて選択された対象動作に従って前記マニピュレータを動作させるための指令を生成する生成部と、
前記グループとして、前記マニピュレータが基準位置よりも前記スタート位置に近いときに第1グループを設定し、前記マニピュレータが前記基準位置よりも前記ゴール位置に近いときに第2グループを設定する設定部と、を備え、
前記第1グループは、
前記リスク値が第1範囲内であるときの動作として、前記リスク値を下げるように軌道を変更する第1動作を含み、
前記第2グループは、
前記リスク値が前記第1範囲の一部である第1サブ範囲内であるときの動作として、前記第1動作を含み、
前記リスク値が前記第1範囲のうち前記第1サブ範囲とは異なる第2サブ範囲内であるときの動作として、軌道を変更せずに速度を低下させる第2動作を含む、制御装置。
【請求項2】
前記第1グループおよび前記第2グループの各々は、前記リスク値が前記第1範囲よりも下の第2範囲内であるときの動作として、前記マニピュレータの軌道を変更せずに、標準速度で前記マニピュレータを動作させる第3動作を含み、
前記第2動作は、前記標準速度より低い速度で前記マニピュレータを動作させる、請求項1に記載の制御装置。
【請求項3】
前記第1グループおよび前記第2グループの各々は、前記リスク値が前記第1範囲より上の第3範囲内であるときの動作として、前記マニピュレータを前記スタート位置に向かって戻す第4動作を含む、請求項1に記載の制御装置。
【請求項4】
前記算出部は、前記マニピュレータに対する前記物体の相対移動方向と、前記物体と前記マニピュレータとを結ぶ線とのなす角度が0°に近いほど大きくなるように前記リスク値を算出する、請求項1から3のいずれか1項に記載の制御装置。
【請求項5】
前記算出部は、前記物体の速度が大きいほど大きくなるように前記リスク値を算出するとともに、前記物体と前記マニピュレータとの距離が短いほど大きくなるように前記リスク値を算出する、請求項1から3のいずれか1項に記載の制御装置。
【請求項6】
前記算出部は、前記マニピュレータの軌道に沿った前記スタート位置から前記マニピュレータの現在位置までの長さが長いほど大きくなるように前記リスク値を算出する、請求項1から3のいずれか1項に記載の制御装置。
【請求項7】
前記算出部は、前記物体と前記マニピュレータとの距離と前記物体の速度とを含む項と、定数項とを含むリスク関数を用いて前記リスク値を算出し、
前記定数項の値は負であり、
前記第2範囲の上限値は0である、請求項2に記載の制御装置。
【請求項8】
前記算出部は、リスク関数を用いて前記リスク値を算出し、
前記リスク関数は、前記マニピュレータに対する前記物体の相対移動方向と、前記物体と前記マニピュレータとを結ぶ線とのなす角度の余弦をx、前記物体の速度をvobs、前記マニピュレータと前記物体との距離をD、前記マニピュレータの軌道に沿った前記スタート位置から前記マニピュレータの現在位置までの長さをScurとするとき、
H(x)×(vobs 2/D)×f(Scur
の項を含み、
H(x)は、xが1に近いほど大きく、
f(Scur)は、Lが長いほど大きい、請求項1から3のいずれか1項に記載の制御装置。
【請求項9】
H(x)は、双曲線正接関数を含む、請求項8に記載の制御装置。
【請求項10】
f(Scur)は、シグモイド関数を含む、請求項8に記載の制御装置。
【請求項11】
前記標準速度に対する、前記第2動作における前記マニピュレータの移動速度の割合は、前記マニピュレータの軌道に沿った前記スタート位置から前記マニピュレータの現在位置までの長さが長いほど小さい、請求項2に記載の制御装置。
【請求項12】
前記算出部は、前記マニピュレータの積載量が大きいほど大きくなるように前記リスク値を算出する、請求項1から3のいずれか1項に記載の制御装置。
【請求項13】
前記算出部は、前記物体と前記マニピュレータとの距離と前記物体の速度とを含む項と、定数項とを含むリスク関数を用いて前記リスク値を算出し、
前記定数項は、前記ロボットと協働して作業する人に応じて設定される、請求項1から3のいずれか1項に記載の制御装置。
【請求項14】
ロボットのマニピュレータがスタート位置からゴール位置まで移動するように前記ロボットを制御する制御方法であって、
前記マニピュレータと物体との干渉のリスク値を算出するステップと、
複数種類の動作を含むグループの中から前記リスク値に応じて選択された対象動作に従って前記マニピュレータを動作させるための指令を生成するステップと、
前記グループとして、前記マニピュレータが基準位置よりも前記スタート位置に近いときに第1グループを設定し、前記マニピュレータが前記基準位置よりも前記ゴール位置に近いときに第2グループを設定するステップと、を備え、
前記第1グループは、
前記リスク値が第1範囲内であるときの動作として、前記リスク値を下げるように軌道を変更する第1動作を含み、
前記第2グループは、
前記リスク値が前記第1範囲の一部である第1サブ範囲内であるときの動作として、前記第1動作を含み、
前記リスク値が前記第1範囲のうち前記第1サブ範囲とは異なる第2サブ範囲内であるときの動作として、軌道を変更せずに速度を低下させる第2動作を含む、制御方法。
【請求項15】
請求項14に記載の制御方法をコンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、制御装置、制御方法および制御プログラムに関する。
【背景技術】
【0002】
近年、FA(Factory Automation)分野において、人とロボットとが協調して作業する協調作業システムの開発が進められている。協調作業システムでは、人とロボットとの干渉を回避する必要がある。
【0003】
「Justinas Miseikis、他3名、「Multi 3D camera mapping for predictive and reflexive robot manipulator trajectory estimation」、2016 IEEE Symposium Series on Computational Intelligence (SSCI)」(非特許文献1)は、物体とロボットとの干渉を回避するように、物体とロボットとの干渉の可能性を示すコストに応じてロボットの軌道を変更する技術を開示している。
【先行技術文献】
【非特許文献】
【0004】
【文献】Justinas Miseikis、他3名、「Multi 3D camera mapping for predictive and reflexive robot manipulator trajectory estimation」、2016 IEEE Symposium Series on Computational Intelligence (SSCI)
【発明の概要】
【発明が解決しようとする課題】
【0005】
非特許文献1に開示の技術では、物体が人である場合、人の動きに応じてロボットの軌道の変更が頻繁に実施され得る。ロボットの軌道の変更には、大きなコンピューティング負荷が伴う。そのため、コンピューティング負荷を軽減するとともに、物体とロボットとの干渉の発生を抑制する技術が望まれている。
【0006】
本開示は、上記の問題に鑑みてなされたものであり、その目的は、コンピューティング負荷を軽減するとともに、物体とロボットとの干渉の発生を抑制することが可能な制御装置、制御方法および制御プログラムを提供することである。
【課題を解決するための手段】
【0007】
本開示の一例によれば、制御装置は、ロボットのマニピュレータがスタート位置からゴール位置まで移動するようにロボットを制御する。制御装置は、マニピュレータと物体との干渉のリスク値を算出する算出部と、複数種類の動作を含むグループの中からリスク値に応じて選択された対象動作に従ってマニピュレータを動作させるための指令を生成する生成部と、を備える。さらに、制御装置は、グループとして、マニピュレータが基準位置よりもスタート位置に近いときに第1グループを設定し、マニピュレータが基準位置よりもゴール位置に近いときに第2グループを設定する設定部を備える。第1グループは、リスク値が第1範囲内であるときの動作として、リスク値を下げるように軌道を変更する第1動作を含む。第2グループは、リスク値が第1範囲の一部である第1サブ範囲内であるときの動作として、第1動作を含み、リスク値が第1範囲のうち第1サブ範囲とは異なる第2サブ範囲内であるときの動作として、軌道を変更せずに速度を低下させる第2動作を含む。
【0008】
この開示によれば、マニピュレータがゴール位置に近いときには、軌道が変更される頻度が低下し、制御装置のコンピューティング負荷が軽減される。また、マニピュレータが基準位置よりもスタート位置に近く、かつ、リスク値が第1範囲内であるとき、リスク値を下げるようにマニピュレータの軌道が変更される。さらに、マニピュレータが基準位置よりもゴール位置に近く、かつ、リスク値が第1サブ範囲内であるときも、リスク値を下げるようにマニピュレータの軌道が変更される。これにより、物体とマニピュレータとの干渉の発生を抑制することができる。このように、上記の制御装置によれば、コンピューティング負荷を軽減するとともに、物体とロボットとの干渉の発生を抑制することができる。
【0009】
上述の開示において、第1グループおよび第2グループの各々は、リスク値が第1範囲よりも下の第2範囲内であるときの動作として、マニピュレータの軌道を変更せずに、標準速度でマニピュレータを動作させる第3動作を含む。第2動作は、標準速度より低い速度でマニピュレータを動作させる。
【0010】
この開示によれば、リスク値が第2範囲内であるとき、軌道が変更しない。そのため、軌道が変更される頻度が低下し、制御装置のコンピューティング負荷が軽減される。また、リスク値が第1範囲よりも下の第2範囲内であるため、第2サブ範囲内であるときの速度よりも速い標準速度でマニピュレータを動作させることができる。
【0011】
上述の開示において、第1グループおよび第2グループの各々は、リスク値が第1範囲より上の第3範囲内であるときの動作として、マニピュレータをスタート位置に向かって戻す第4動作を含む。
【0012】
この開示によれば、マニピュレータが物体から遠ざかる方向に移動する。その結果、物体とロボットとの干渉が抑制される。
【0013】
上述の開示において、算出部は、マニピュレータに対する物体の相対移動方向と、物体とマニピュレータとを結ぶ線とのなす角度が0°に近いほど大きくなるようにリスク値を算出する。
【0014】
この開示によれば、物体がマニピュレータに向かって移動している可能性が高いときほどリスク値が大きくなる。そのため、リスク値は、物体とマニピュレータとが干渉する可能性を的確に表すことができる。
【0015】
上述の開示において、算出部は、物体の速度が大きいほど大きくなるようにリスク値を算出するとともに、物体とマニピュレータとの距離が短いほど大きくなるようにリスク値を算出する。
【0016】
この開示によっても、リスク値は、物体とマニピュレータとが干渉する可能性を的確に表すことができる。
【0017】
上述の開示において、算出部は、マニピュレータの軌道に沿ったスタート位置からマニピュレータの現在位置までの長さが長いほど大きくなるようにリスク値を算出する。
【0018】
ロボットの動作開始直後に比べて、マニピュレータがゴール位置に近いときの方が物体(例えば人)とマニピュレータとの干渉による物体への危害が大きい。この開示によれば、リスク値は、物体への危害の大きさを反映した値を示すことができる。
【0019】
上述の開示において、算出部は、物体とマニピュレータとの距離と物体の速度とを含む項と、定数項とを含むリスク関数を用いてリスク値を算出する。定数項の値は負である。第2範囲の上限値は0である。
【0020】
この開示によれば、リスク値が0未満であることにより、物体とマニピュレータとが干渉する可能性が小さいことが容易に認識される。
【0021】
上述の開示において、算出部は、リスク関数を用いてリスク値を算出する。リスク関数は、マニピュレータに対する物体の相対移動方向と、物体とマニピュレータとを結ぶ線とのなす角度の余弦をx、物体の速度をvobs、マニピュレータと物体との距離をD、マニピュレータの軌道に沿ったスタート位置からマニピュレータの現在位置までの長さをScurとするとき、
H(x)×(vobs 2/D)×f(Scur
の項を含む。H(x)は、xが1に近いほど大きい。f(Scur)は、Lが長いほど大きい。
【0022】
この開示によれば、リスク値は、物体とマニピュレータとが干渉する可能性を的確に表すことができるとともに、物体への危害の大きさを反映した値を示すことができる。
【0023】
H(x)は、例えば双曲線正接関数を含む。f(Scur)は、例えばシグモイド関数を含む。
【0024】
上述の開示において、標準速度に対する、第2動作におけるマニピュレータの移動速度の割合は、マニピュレータの軌道に沿ったスタート位置からマニピュレータの現在位置までの長さが長いほど小さい。
【0025】
この開示によれば、マニピュレータがゴール位置に近いほど、第2動作における速度を遅くすることができる。これにより、物体とマニピュレータとの干渉の発生が抑制される。
【0026】
上述の開示において、算出部は、マニピュレータの積載量が大きいほど大きくなるようにリスク値を算出する。
【0027】
この開示によれば、マニピュレータの積載量が大きいとき、ロボットは、マニピュレータと物体との干渉が抑制されるようにマニピュレータの動作をより早く変更することができる。
【0028】
上述の開示において、算出部は、物体とマニピュレータとの距離と物体の速度とを含む項と、定数項とを含むリスク関数を用いてリスク値を算出する。定数項は、ロボットと協働して作業する人に応じて設定される。
【0029】
この開示によれば、マニピュレータと干渉しやすい作業を行なう人ほどリスク値を大きくすることができる。これにより、物体とマニピュレータとの干渉の発生が抑制される。
【0030】
本開示の一例によれば、制御方法は、ロボットのマニピュレータがスタート位置からゴール位置まで移動するようにロボットを制御する。制御方法は、マニピュレータと物体との干渉のリスク値を算出するステップと、複数種類の動作を含むグループの中からリスク値に応じて選択された対象動作に従ってマニピュレータを動作させるための指令を生成するステップと、を備える。さらに、制御方法は、グループとして、マニピュレータが基準位置よりもスタート位置に近いときに第1グループを設定し、マニピュレータが基準位置よりもゴール位置に近いときに第2グループを設定するステップと、を備える。第1グループは、リスク値が第1範囲内であるときの動作として、リスク値を下げるように軌道を変更する第1動作を含む。第2グループは、リスク値が第1範囲の一部である第1サブ範囲内であるときの動作として、第1動作を含み、リスク値が第1範囲のうち第1サブ範囲とは異なる第2サブ範囲内であるときの動作として、軌道を変更せずに速度を低下させる第2動作を含む。
【0031】
本開示の一例によれば、プログラムは、上記の制御方法をコンピュータに実行させる。これらの開示によっても、コンピューティング負荷を軽減するとともに、物体とロボットとの干渉の発生を抑制することができる。
【発明の効果】
【0032】
本開示によれば、コンピューティング負荷を軽減するとともに、物体とロボットとの干渉の発生を抑制することができる。
【図面の簡単な説明】
【0033】
図1】実施の形態に係る制御装置が適用されるシステムの一例を示す図である。
図2】設定部の処理を説明する図である。
図3】制御装置のハードウェア構成を示す模式図である。
図4】OctoMapの一例を示す図である。
図5】シグモイド関数の一例を示すグラフである。
図6】速度ベクトルvobs,vtcpおよびベクトルvの関係を示す図である。
図7】速度ベクトルの方向関数Hdictの一例を示す図である。
図8】グループに属する動作の種類の一例を示す図である。
図9】制御装置の処理の流れの一例を示す図である。
図10】速度ベクトルvobs,vtcpおよびベクトルvと方向関数Hdictの値との関係を示す図である。
【発明を実施するための形態】
【0034】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。以下で説明される各変形例は、適宜選択的に組み合わされてもよい。
【0035】
§1 適用例
本実施の形態に係る制御装置が適用されるシステムの概略について説明する。図1は、実施の形態に係る制御装置が適用されるシステムの一例を示す図である。図1に示されるように、システム1は、制御装置100と、ロボット200と、複数のセンシングデバイス300と、を備える。
【0036】
システム1は、工場等の生産現場に設けられる。生産現場では、図1に示されるように、人400とロボット200とが協調して作業する。人400は、ロボット200にとって移動障害物となり、ロボット200との間で干渉が生じ得る。システム1は、人400とロボット200との干渉を抑制するための処理を行なう。
【0037】
ロボット200は、マニピュレータ202と、マニピュレータコントローラ204と、を含む。
【0038】
マニピュレータ202は、複数のアーム211,212,213と、複数の関節221,222,223と、回動部230と、台座部240とを有する。具体的には、マニピュレータ202では、先端側から、アーム211、関節221、アーム212、関節222、アーム213、関節223、回動部230、台座部240が、この順で設けられている。
【0039】
アーム211の先端部には、エンドエフェクタが取り付けられる。アーム211の後端部は、関節221に接続されている。アーム212の先端部には、関節221が取り付けられている。アーム212の後端部は、関節222に接続されている。アーム213の先端部には、関節222が取り付けられている。アーム213の後端部は、関節223に接続されている。
【0040】
関節221は、アーム212に対してアーム211を移動させる。関節222は、アーム213に対してアーム212を移動させる。関節223は、回動部230に対してアーム213を移動させる。
【0041】
回動部230は、関節223を支持するとともに、回転軸を中心に回転可能に構成されている。台座部240は、回動部230を回動可能に支持する。
【0042】
マニピュレータコントローラ204は、マニピュレータ202の動作を制御する。具体的には、マニピュレータコントローラ204は、マニピュレータ202の先端部、つまり、アーム211の先端部(以下、「ツールセンターポイント(TCP)」と称する。」の目標位置および移動速度に関する指令を制御装置100から取得する。マニピュレータコントローラ204は、取得した指令に従ってツールセンターポイントが移動するように、関節221~223および回動部230の動作を制御する。
【0043】
センシングデバイス300は、ロボット200が存在する空間に配置され、当該空間における物体の位置を検知するデバイスである。物体には、マニピュレータ202および人400が含まれる。センシングデバイス300は、例えばRGB-Dカメラまたはレーザレンジファインダであり、視野の点群データを生成する。空間において死角がないように、例えば4つ以上のセンシングデバイス300が互いに異なる位置に配置されることが好ましい。
【0044】
制御装置100は、ロボット200のマニピュレータ202がスタート位置からゴール位置まで移動するようにロボット200を制御する。
【0045】
制御装置100は、複数のセンシングデバイス300と通信可能に接続される。制御装置100は、例えばGigE Vision(登録商標)またはUSB(Universal Serial Bus)を用いて、複数のセンシングデバイス300と通信する。
【0046】
制御装置100は、マニピュレータコントローラ204と通信可能に接続される。制御装置100は、例えばEthernet/IP(登録商標)を用いて、マニピュレータコントローラ204と通信する。制御装置100は、マニピュレータコントローラ204との通信のやり取りにより、マニピュレータ202の現在位置を認識する。
【0047】
図1に示されるように、制御装置100は、算出部10と、生成部12と、設定部14と、を備える。
【0048】
算出部10は、複数のセンシングデバイス300の検知結果に基づいて、マニピュレータ202とマニピュレータ202の周囲の物体(人400を含む)との干渉のリスク値を算出する。
【0049】
生成部12は、複数種類の動作を含むグループの中からリスク値に応じて選択された対象動作に従って、ロボット200を動作させるための指令を生成する。具体的には、生成部12は、対象動作に従って、現在位置からゴール位置までのツールセンターポイントの軌道を決定する。生成部12は、決定した軌道に基づいて、制御周期ごとのツールセンターポイントの目標位置および移動速度を特定する。制御装置100は、制御周期ごとに、特定した目標位置および移動速度に関する指令を生成し、生成した指令をマニピュレータコントローラ204に出力する。
【0050】
設定部14は、マニピュレータ202の位置に応じて、上記の複数種類の動作を含むグループを設定する。
【0051】
図2は、設定部の処理を説明する図である。図2に示されるように、設定部14は、マニピュレータ202が基準位置よりもスタート位置PSに近いときに第1グループを設定し、マニピュレータ202が基準位置よりもゴール位置PEに近いときに第2グループを設定する。
【0052】
第1グループは、リスク値が第1範囲内であるときの動作として、リスク値を下げるようにマニピュレータ202の軌道を変更する迂回動作を含む。
【0053】
一方、第2グループは、リスク値が第1範囲の一部である第1サブ範囲内であるときの動作として、上記の迂回動作を含む。さらに、第2グループは、リスク値が第1範囲のうち第1サブ範囲とは異なる第2サブ範囲内であるときの動作として、軌道を変更せずにマニピュレータ202の速度を低下させる警戒動作を含む。
【0054】
これにより、マニピュレータ202がゴール位置PEに近いときには、軌道が変更される頻度が低下し、制御装置100のコンピューティング負荷が軽減される。
【0055】
また、マニピュレータ202が基準位置よりもスタート位置PSに近く、かつ、リスク値が第1範囲内であるとき、リスク値を下げるようにマニピュレータ202の軌道が変更される。さらに、マニピュレータ202が基準位置よりもゴール位置PEに近く、かつ、リスク値が第1サブ範囲内であるときも、リスク値を下げるようにマニピュレータ202の軌道が変更される。これにより、人400とマニピュレータ202との干渉の発生を抑制することができる。
【0056】
このように、本実施の形態に係る制御装置100によれば、コンピューティング負荷を軽減するとともに、人400とロボット200との干渉の発生を抑制することができる。
【0057】
§2 具体例
<制御装置のハードウェア構成>
図3は、制御装置のハードウェア構成を示す模式図である。制御装置100は、典型的には、汎用的なコンピュータアーキテクチャに従う構造を有する。
【0058】
図3に示されるように、制御装置100は、制御処理回路110と、フィールドネットワークコントローラ120と、を含む。
【0059】
制御処理回路110は、ロボット200を駆動するために必要な演算処理を実行する。一例として、制御処理回路110は、プロセッサ112と、メインメモリ114と、ストレージ116と、インターフェイス回路118とを含む。
【0060】
プロセッサ112は、ロボット200を駆動するための制御演算を実行する。メインメモリ114は、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置などで構成される。ストレージ116は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などで構成される。
【0061】
ストレージ116には、ロボット200の制御を実現するためのシステムプログラム130が格納される。システムプログラム130は、ロボット200の動作に係る制御演算を実行する命令、および、ロボット200との間のインターフェイスに係る命令を含む。図1に示す算出部10、生成部12および設定部14は、プロセッサ112がシステムプログラム130を実行することにより実現される。
【0062】
教示データ132は、予め定められたマニピュレータ202のツールセンターポイントの軌道に関するデータである。
【0063】
インターフェイス回路118は、ロボット200との間でデータをやり取りする。
フィールドネットワークコントローラ120は、フィールドネットワークを介して、主として、センシングデバイス300との間でデータをやり取りする。
【0064】
<算出部の処理内容>
算出部10は、一定周期で、マニピュレータ202と物体との干渉のリスク値を算出する。以下、算出部10の具体的な処理内容について説明する。
【0065】
算出部10は、各周期において、複数のセンシングデバイス300から点群データを取得する。各センシングデバイス300から取得する点群データは、当該センシングデバイス300の座標系(以下、「カメラ座標系」と称する。)で表される。そのため、算出部10は、各センシングデバイス300から取得した点群データを、カメラ座標系からロボット200の座標系(以下、「ロボット座標系」と称する。)に変換する。カメラ座標系からロボット座標系に変換するための変換行列は、センシングデバイス300ごとに予め実施されるキャリブレーションによって作成される。
【0066】
取得した全ての点群データを使用すると、コンピューティング負荷が大きくなる。そのため、算出部10は、点群データからOctoMapを生成する。
【0067】
図4は、OctoMapの一例を示す図である。図4に示されるように、OctoMapは、空間を区分けすることにより得られる、3次元立方体形状の複数のボクセル500の各々における物体の占有率を示す。物体には、マニピュレータ202および人400だけでなく、例えばマニピュレータ202の周囲に意図せず置かれた障害物も含まれ得る。算出部10は、点群データにボクセル500を導入し、ボクセル500ごとの占有率を算出する。占有率は、例えば0.00~100の値で示される。点群データからOctoMapを生成する手法として、公知の技術(例えば非特許文献1に記載の技術)を用いることができる。このようにして、算出部10は、各周期のOctoMapを生成する。
【0068】
なお、制御装置100は、マニピュレータコントローラ204との通信の遣り取りにより、マニピュレータ202の現在位置を認識している。そのため、算出部10は、OctoMapから、マニピュレータ202が存在しているボクセルを削除してもよい。これにより、OctoMapを用いた後述のコンピューティング負荷が軽減される。
【0069】
算出部10は、以下の式(1)に従って、各周期における、マニピュレータ202と物体(主として人400)との干渉のリスク値Iriskを算出する。
【0070】
【数1】
【0071】
式(1)において、Hdictは、マニピュレータ202および人400の速度ベクトルの方向関数である。vobsは、人400の速度ベクトルである。Deuclは、マニピュレータ202のツールセンターポイントと人400との距離である。Sigmoid(Scur,Sthrd)は、シグモイド関数である。Scurは、軌道に沿った、スタート位置からツールセンターポイントの現在位置までの長さである。Sthrdは、予め定められる閾値であり、例えば、軌道に沿った、スタート位置からゴール位置までの長さの0.6~0.7倍の長さである。Pscoliは、静的障害物に関する迂回動作項である。Pbiasは、正常性バイアス項であり、予め定められる負の定数項である。
【0072】
算出部10は、各周期のOctoMapを用いて、人400の位置を特定する。人400が存在するボクセルの占有率は高い値を取る。そのため、算出部10は、OctoMapにおいて占有率の高いボクセルの位置に基づいて、人400の位置を特定する。
【0073】
なお、算出部10は、各ボクセルの占有率が0,1のいずれかをとるようにOctoMapに対して2値化処理を行ない、2値化されたOctoMapを用いて、人400の位置を特定してもよい。これにより、コンピューティング負荷がさらに軽減される。
【0074】
算出部10は、マニピュレータ202のツールセンターポイントの現在位置と、現在の周期において生成されたOctoMapから特定された人400の位置とに基づいて、距離Deuclを算出する。
【0075】
算出部10は、過去一定期間において生成されたOctoMapを用いて、人400の速度ベクトルvobsを算出する。
【0076】
算出部10は、マニピュレータ202のツールセンターポイントの現在位置とツールセンターポイントの軌道とに基づいて、長さScurを算出する。ツールセンターポイントの軌道は、後述するように生成部12によって生成される。
【0077】
シグモイド関数Sigmoid(Scur,Sthrd)は、以下の式(2)で表される。式(2)において、aは定数である。
【0078】
【数2】
【0079】
図5は、シグモイド関数の一例を示すグラフである。図5に示されるように、シグモイド関数Sigmoid(Scur,Sthrd)は、ScurがSthrdよりも小さい値からSthrdに近づくにつれて大きくなり、ScurがSthrdを超えると1に近づく。Sthrd付近における傾きは、定数aに依存する。定数aの値を大きいほど、Sthrd付近における傾きが急峻となる。
【0080】
算出部10は、現在位置から目標位置までのツールセンターポイントの軌道上に存在する1以上のボクセルの占有率の合計値に所定係数を乗じた値を迂回動作項Pscoliとして算出する。軌道上に物体が存在していない場合、迂回動作項Pscoliは0となる。軌道は、後述するように生成部12によって生成される。そのため、算出部10は、生成部12によって生成される軌道を用いて迂回動作項Pscoliを算出する。なお、動作開始時の軌道は、ストレージ116に記憶される教示データ132によって示される。
【0081】
速度ベクトルの方向関数Hdictは、以下の式(3)で表される。式(3)に示されるように、方向関数Hdictは、双曲線正接関数である。式(3)において、K,bは、定数であり、例えば3/2,10にそれぞれ設定される。式(3)の変数xは、式(4)に従って算出される。
【0082】
【数3】
【0083】
【数4】
【0084】
tcpは、マニピュレータ202のツールセンターポイントの速度ベクトルである。算出部10は、マニピュレータコントローラ204に出力された最新の指令に基づいて、速度ベクトルvtcpを算出する。
【0085】
vは、人400の位置を始点とし、ツールセンターポイントの位置を終点とするベクトルである。算出部10は、ツールセンターポイントの現在位置と、現在の周期のOctoMapから特定された人400の位置とに基づいて、ベクトルvを算出する。
【0086】
図6は、速度ベクトルvobs,vtcpおよびベクトルvの関係を示す図である。図6に示されるように、上記の式(4)に従って算出されるxは、ベクトル(vobs-vtcp)とベクトルvとのなす角度θの余弦(cosθ)である。そのため、xは、-1から1の値をとる。
【0087】
角度θは、言い換えると、ツールセンターポイントTCPに対する人400の相対移動方向と、人400とツールセンターポイントTCPとを結ぶ線とのなす角度である。そのため、xが1に近いほど、人400がツールセンターポイントTCPに向かって移動している可能性が高いことを表す。
【0088】
図7は、速度ベクトルの方向関数Hdictの一例を示す図である。図7には、K=3/2,b=10,xthrd=0.999であるときの方向関数Hdictが示される。図7に示されるように、方向関数Hdictは、x=0.76付近から急峻に立ち上がる。図6に示す角度θ=40°のときにx=0.766となる。すなわち、ツールセンターポイントTCPに対する人400の相対移動方向と、人400とツールセンターポイントTCPとを結ぶ線とのなす角度θが-40°~40°の範囲において、方向関数Hdictは有意が値をとり、角度θが当該範囲外において、方向関数Hdictは約0となる。
【0089】
余弦が0.999となる角度は、±2.56°である。そのため、角度θが-2.56°~2.56°の範囲において、方向関数Hdictは、K以上の値となる。
【0090】
算出部10は、このようにして算出された変数を式(1)に代入することにより、各周期における、マニピュレータ202と物体との干渉のリスク値Iriskを算出する。
【0091】
式(1)において、方向関数Hdictが第1項の係数として存在する。そのため、ツールセンターポイントに対する人400の相対移動方向と、人400とツールセンターポイントとを結ぶ線とのなす角度θが-40°~40°の範囲外であるとき、第1項は約0となる。角度θが-40°~40°の範囲内であるとき、第1項は、正の有意な値を取る。このとき、角度θが小さいほど(0°に近いほど)、リスク値Iriskは大きくなる。また、第1項において、ツールセンターポイントと人400との距離Deuclは分母に存在する。そのため、距離Deuclが小さいほど、リスク値Iriskは大きくなる。さらに、第1項において、人400の速度ベクトルvobsの二乗が分子に存在する。そのため、人400の速度が大きいほど、リスク値Iriskは大きくなる。
【0092】
角度θが-40°~40°の範囲外であるとき、人400とマニピュレータ202との干渉の可能性は低い。一方、角度θが-40°~40°の範囲であるとき、人400とマニピュレータ202とが干渉する可能性があり、角度θが小さいほど、その可能性が高まる。また、ツールセンターポイントと人400とが近いほど、マニピュレータ202と人400との干渉の可能性が高くなる。さらに、人400の速度が大きいほど、マニピュレータ202と人400との干渉の可能性が高くなる。そのため、リスク値Iriskは、人400とマニピュレータ202とが干渉する可能性を的確に表している。
【0093】
第1項には、シグモイド関数Sigmoid(Scur,Sthrd)が含まれる。シグモイド関数Sigmoid(Scur,Sthrd)は、図5に示されるように、Scurが大きくなるにつれて、つまり、マニピュレータ202のツールセンターポイントがゴール位置に近くなるにつれて大きくなる。そのため、式(1)は、マニピュレータ202のツールセンターポイントがゴール位置に近くなるにつれて、リスク値Iriskが高くなるように設定される。これは、ロボット200の動作開始直後に比べて、マニピュレータ202のツールセンターポイントがゴール位置に近いときの方がマニピュレータ202と人400との干渉による人400への危害が大きいためである。
【0094】
マニピュレータ202の周囲の空間において、マニピュレータ202の軌道上に意図しない障害物が存在していることが有り得る。このような場合、マニピュレータ202と障害物との衝突を回避すべきである。そのため、式(1)には、迂回動作項Pscoliが含まれる。
【0095】
<設定部の処理内容>
設定部14は、マニピュレータ202の位置に応じて、ロボット200が取りうる複数種類の動作を含むグループとして第1グループおよび第2グループのいずれかを設定する。以下、設定部14の処理内容について説明する。
【0096】
設定部14は、以下の式(5)に従って、警戒行動活性化フラグWactを決定する。設定部14は、警戒行動活性化フラグWactが0のときに第1グループを設定し、警戒行動活性化フラグWactが1のときに第2グループを設定する。
【0097】
【数5】
【0098】
式(5)において、閾値Thは予め定められる。軌道に沿って、スタート位置から、シグモイド関数Sigmoid(Scur,Sthrd)が閾値Th以下から閾値Thを超えるときの長さScurだけ離れた位置が基準位置に対応する。そのため、基準位置に応じて閾値Thが設定される。閾値Thは、例えば0に近い値(0.05~0.1など)に設定される。なお、有効数字の桁数によっては、ツールセンターポイントがスタート位置から出発してからしばらくの間、シグモイド関数Sigmoid(Scur,Sthrd)の値が連続して0となり得る。そのため、閾値Thとして0が設定されてもよい。
【0099】
<生成部の処理内容>
生成部12は、設定されたグループの中からリスク値Iriskに応じて選択された対象動作に従って、ロボット200を動作させるための指令を生成する。以下、生成部12の処理内容について説明する。
【0100】
図8は、グループに属する動作の種類の一例を示す図である。図8に示されるように,第1グループは、平準動作と、迂回動作と、反射動作と、を含む。第2グループは、平準動作と、迂回動作と、警戒動作と、反射動作と、を含む。
【0101】
第1グループが設定された場合、生成部12は、以下のようにして対象動作を選択する。すなわち、生成部12は、リスク値Iriskが範囲Ra内であるとき、平準動作を対象動作として選択する。生成部12は、リスク値Iriskが範囲Raよりも上の範囲Rb内であるとき、迂回動作を選択する。生成部12は、リスク値Iriskが範囲Rbよりも上の範囲Rc内であるとき、反射動作を選択する。
【0102】
第2グループが設定された場合、生成部12は、以下のようにして対象動作を選択する。すなわち、生成部12は、リスク値Iriskが範囲Ra内であるとき、平準動作を対象動作として選択する。生成部12は、リスク値Iriskが範囲Rbの一部であるサブ範囲Rb-1内であるとき、迂回動作を選択する。生成部12は、リスク値Iriskが範囲Rbのうちサブ範囲Rb-1とは異なるサブ範囲Rb-2内であるとき、警戒動作を選択する。サブ範囲Rb-2は、サブ範囲Rb-1よりも上の範囲である。生成部12は、リスク値Iriskが範囲Rc内であるとき、反射動作を選択する。
【0103】
(平準動作)
平準動作は、マニピュレータ202と物体との干渉の可能性が小さいときに選択される動作である。そのため、範囲Raは、例えば、リスク値Iriskが取り得る最小値であるPbias(負の値)から0に設定される。すなわち、範囲Raの上限値が0である。この場合、リスク値Iriskが0以下であるときに、マニピュレータ202と物体との干渉の可能性が小さいことが容易に認識され得る。
【0104】
平準動作は、軌道を変更せずに標準速度を維持する動作である。標準速度は、軌道上の最高速度が予め設定された速度となるように、軌道上の各点について計算される、ツールセンターポイントの速度である。生成部12は、動作開始時において、教示データ132によって示される軌道を選択する。生成部12は、迂回動作を対象動作として選択しない限り、教示データ132によって示される軌道を維持する。生成部12は、迂回動作を対象動作として選択した後に平準動作を対象動作として選択する場合、迂回動作によって変更された軌道を維持する。
【0105】
生成部12は、軌道に基づいて、制御周期ごとのツールセンターポイントの目標位置および標準速度を特定する。制御装置100は、制御周期ごとに、特定した目標位置および標準速度に関する指令を生成し、生成した指令をマニピュレータコントローラ204に出力する。
【0106】
(迂回動作)
迂回動作は、リスク値Iriskを下げるように軌道を変更する動作である。生成部12は、変更後の軌道に基づいて、次の制御周期のツールセンターポイントの目標位置および移動速度を特定する。制御装置100は、特定した目標位置および移動速度に関する指令を生成し、生成した指令をマニピュレータコントローラ204に出力する。
【0107】
生成部12は、公知の技術(例えば非特許文献1に開示の技術)を用いて、変更後の軌道を決定すればよい。具体的には、生成部12は、RRT(Rapidly-exploring Random Trees)-Connectの手法を用いて、現在位置からゴール位置までの複数の軌道候補を探索する。当該探索は、予め定められる制限時間内に実施される。生成部12は、探索された複数の軌道候補の各々について、以下の式(6)を用いて、コストCtrajを算出する。
【0108】
【数6】
【0109】
trajは、ボクセルのユークリッド距離である。式(6)の第1項は、軌道候補が通過するボクセルのユークリッド距離の合計である。Cvoxelは、軌道候補が通過する各ボクセルの占有率を示す。式(6)の第2項は、軌道候補上に物体が存在する確率を表す。
【0110】
生成部12は、コストCtrajが最も小さい軌道候補を、変更後の軌道として決定する。これにより、マニピュレータ202と物体との干渉の可能性が小さい軌道に変更される。
【0111】
(警戒動作)
警戒動作は、軌道を変更せずに速度を低下させる動作である。具体的には、生成部12は、平準動作と同じ方法で、制御周期ごとのツールセンターポイントの目標位置および標準速度を特定する。次に、生成部12は、特定した標準速度の1/2を移動速度として決定する。生成部12は、目標位置および決定した移動速度に関する指令を生成し、生成した指令をマニピュレータコントローラ204に出力する。
【0112】
あるいは、生成部12は、以下の式(7)に従って、移動速度Vcurrを決定してもよい。式(7)において、Vstdは、平準動作において特定される標準速度である。
【0113】
【数7】
【0114】
式(7)に従って移動速度Vcurrが決定されることにより、マニピュレータ202がゴール位置に近づくにつれて、警戒行動時の移動速度Vcurrが遅くなる。言い換えると、標準速度Vstdに対する、警戒動作におけるマニピュレータ202の移動速度Vcurrの割合は、マニピュレータ202の軌道に沿ったスタート位置からマニピュレータ202の現在位置までの長さScurが長いほど小さい。
【0115】
(反射動作)
反射動作は、軌道に沿って、スタート位置に向かってマニピュレータ202を戻す動作である。具体的には、生成部12は、1以上の制御周期前の目標位置まで戻す指令を生成し、生成した指令をマニピュレータコントローラ204に出力する。
【0116】
<制御装置の処理フロー>
図9は、制御装置の処理の流れの一例を示す図である。図9に示すステップS1~S6は、ロボットの動作の開始時から動作終了時までの期間において一定周期ごとに繰り返し実施される。
【0117】
まず、制御装置100のプロセッサ112は、複数のセンシングデバイス300の各々から点群データを取得する(ステップS1)。
【0118】
次に、プロセッサ112は、取得した点群データを用いて、マニピュレータ202の周囲の空間のOctoMapを生成する(ステップS2)。
【0119】
次に、プロセッサ112は、マニピュレータ202の現在位置に基づいて、複数種類の動作を含むグループを設定する(ステップS3)。具体的には、プロセッサ112は、警戒行動活性化フラグWactを算出し、警戒行動活性化フラグWactが0である場合に第1グループを設定し、警戒行動活性化フラグWactが1である場合に第2グループを設定する。
【0120】
次に、プロセッサ112は、OctoMapを用いて、マニピュレータ202と人400との干渉のリスク値Iriskを算出する(ステップS4)。
【0121】
次に、プロセッサ112は、設定されたグループの中から、リスク値Iriskに応じた対象動作を選択する(ステップS5)。
【0122】
次に、プロセッサ112は、選択した対象動作に従って指令を生成し、生成した指令をマニピュレータコントローラ204に出力する(ステップS6)。
【0123】
動作開始時において、軌道上に意図しない障害物が置かれている場合、式(1)における迂回動作項Pscoliが大きな値をとる。動作開始直後では、第1グループが設定されるため、リスク値Iriskが範囲Rb内となり、迂回動作が実施される。その結果、障害物を迂回する軌道に変更される。
【0124】
動作開始時において、軌道上に障害物が存在しない場合、教示データ132によって示される軌道に従って平準動作が実施される。マニピュレータ202の周囲に人400がいない場合、一定周期ごとに算出されるリスク値Iriskは、0未満となり、範囲Ra内で維持される。そのため、教示データ132によって示される軌道に沿って、スタート位置からゴール位置までマニピュレータ202が移動する。
【0125】
動作開始後、マニピュレータ202が基準位置に達するまでの間、第1グループが設定される。この期間において、人400がロボット200に近づいた場合、リスク値Iriskは、0を超え、範囲Rb内となる。これにより、人400を迂回する軌道に変更される。その結果、マニピュレータ202と人400との干渉が抑制される。軌道の変更後、リスク値Iriskが範囲Ra内になると、平準動作が実施され、変更後の軌道に沿って標準速度でマニピュレータ202が動作される。
【0126】
一方、マニピュレータ202が基準位置を通過してからゴール位置に達するまでの間、第2グループが設定される。この期間において、人400がロボット200に近づいた場合、リスク値Iriskは、0を超え、範囲Rb内となる。リスク値Iriskが範囲Rbのうち下側の範囲Rb-1内である場合、わずかな軌道の変更によって、人400との干渉を回避できる可能性がある。そのため、リスク値Iriskが範囲Rb-1内である場合、迂回動作が実施される。一方、リスク値Iriskが範囲Rbのうち上側の範囲Rb-2内である場合において迂回動作が選択されたとすると、人400との干渉を回避するためには、軌道が大きく変更される可能性がある。マニピュレータ202がゴール位置に近いタイミングでの軌道の大きな変更は好ましくない。そのため、リスク値Iriskが範囲Rb-2内である場合、警戒動作が実施される。すなわち、軌道を変更せずに、標準速度よりも低い速度でマニピュレータ202が動作される。これにより、人400がマニピュレータ202の存在に気付いて、マニピュレータ202から遠ざかる時間が取れる。その結果、マニピュレータ202と人400との干渉が抑制される。
【0127】
リスク値Iriskが範囲Rbよりも上の範囲Rc内にある場合、マニピュレータ202と人400とが干渉する間近の状態である。そのため、リスク値Iriskが範囲Rc内にある場合、反射動作が実施される。これにより、マニピュレータ202が人400から遠ざかる方向に移動する。その結果、マニピュレータ202と人400との干渉が抑制される。
【0128】
<変形例>
マニピュレータ202は、様々な物を積載した状態で移動し得る。マニピュレータ202の積載量が大きいほど、マニピュレータ202と人400とが干渉したときの人400への影響が大きい。そのため、算出部10は、マニピュレータ202の積載量が大きいほど大きくなるようにリスク値Iriskを算出してもよい。例えば、算出部10は、以下の式(8)に従って、各周期における、マニピュレータ202と物体(主として人400)との干渉のリスク値Iriskを算出する。
【0129】
【数8】
【0130】
dictは、式(1)と同様に、マニピュレータ202および人400の速度ベクトルの方向関数である。ただし、Hdictは、上記の式(3)で表されてもよいし、以下の式(9)で表されてもよい。
【0131】
【数9】
【0132】
式(9)において、a,bは予め定められる係数である。例えば、a=10、b=0に設定される。xは、上記の式(4)によって算出される。
【0133】
図10は、速度ベクトルvobs,vtcpおよびベクトルvと方向関数Hdictの値との関係を示す図である。図10に示されるように、速度ベクトルvobs,vtcpが互いに向かい合うとき、つまりベクトル(vobs-vtcp)とベクトルvとのなす角度θが0であるときにHdictは1となる。角度θが0より大きく90°未満であるとき、Hdictは0.5より大きい値となる。角度θが90°より大きくなると、Hdictは0.5より小さい値となる。角度θが180°に近づくと、Hdictは0に近づく。
【0134】
式(8)において、mpayloadは、マニピュレータ202の積載量が大きくなるほど大きな値をとる項である。mpayloadは、例えば以下の式(10)で表される。
【0135】
【数10】
【0136】
式(10)において、αは、予め定められる係数であり、例えば1.0である。mpayload_minは、最小のリスクファクタ値であり、予め定められる。例えば、mpayload_minは、1.0である。Pmaxは、マニピュレータ202の最大積載量であり、Pminは、マニピュレータ202の最小積載量である。PmaxおよびPminは、マニピュレータ202の仕様に応じて予め定められる。例えば、Pmaxは10kgであり、Pminは1kgである。Pcurrは、現在のマニピュレータ202の積載量である。ロボット200は、現在のマニピュレータ202の積載量Pcurrを計測するセンサを備えている。算出部10は、ロボット200の当該センサから積載量Pcurrを取得し、取得した積載量Pcurrを上記の式(10)に代入することにより、mpayloadを算出する。
【0137】
biasは、リスク値Iriskを調整する定数項である。Rbiasは、例えば、式(1)のPscoli bias との和であってもよい。あるいは、Rbiasは、過去の運用環境のリスクに応じて予め定められてもよい。例えば、リスクの高い生産現場ではRbiasとして正の数値が設定される。リスクが低い生産現場では、ロボット200の行動が変更される頻度を下げるために、Rbiasとして負の数値が設定される。
【0138】
マニピュレータ202と干渉しやすい作業を行なう人と、そうでない人とが存在しうる。そのため、Rbiasの値は、ロボット200と協働して作業する人400に応じて設定されてもよい。例えば、Rbiasのデフォルト値として0が設定される。その後、人400ごとにリスク値Iriskの推移が記録される。記録されたリスク値Iriskの代表値(例えば、中央値、平均値)に応じて、人400ごとのRbiasが設定される。これにより、マニピュレータ202と干渉しやすい作業を行なう人400ほどリスク値を大きくすることができる。その結果、人400とマニピュレータ202との干渉の発生が抑制される。なお、式(1)におけるPscoliおよび bias も、ロボット200と協働して作業する人400に応じて設定されてもよい。
【0139】
式(8)を用いることにより、マニピュレータ202の積載量に応じたリスク値Iriskが算出される。その結果、マニピュレータ202の積載量が大きいとき、ロボット200は、マニピュレータ202と人400との干渉が抑制されるようにマニピュレータ202の動作をより早く変更することができる。
【0140】
§3 付記
以上のように、本実施の形態は以下のような開示を含む。
【0141】
(構成1)
ロボット(200)のマニピュレータ(202)がスタート位置からゴール位置まで移動するように前記ロボット(200)を制御する制御装置(100)であって、
前記マニピュレータ(202)と物体(400)との干渉のリスク値を算出する算出部(10)と、
複数種類の動作を含むグループの中から前記リスク値に応じて選択された対象動作に従って前記マニピュレータ(202)を動作させるための指令を生成する生成部(12)と、
前記グループとして、前記マニピュレータ(202)が基準位置よりも前記スタート位置に近いときに第1グループを設定し、前記マニピュレータ(202)が前記基準位置よりも前記ゴール位置に近いときに第2グループを設定する設定部(14)と、を備え、
前記第1グループは、
前記リスク値が第1範囲内であるときの動作として、前記リスク値を下げるように軌道を変更する第1動作を含み、
前記第2グループは、
前記リスク値が前記第1範囲の一部である第1サブ範囲内であるときの動作として、前記第1動作を含み、
前記リスク値が前記第1範囲のうち前記第1サブ範囲とは異なる第2サブ範囲内であるときの動作として、軌道を変更せずに速度を低下させる第2動作を含む、制御装置(100)。
【0142】
(構成2)
前記第1グループおよび前記第2グループの各々は、前記リスク値が前記第1範囲よりも下の第2範囲内であるときの動作として、前記マニピュレータの軌道を変更せずに、標準速度で前記マニピュレータ(202)を動作させる第3動作を含み、
前記第2動作は、前記標準速度より低い速度で前記マニピュレータ(202)を動作させる、構成1に記載の制御装置(100)。
【0143】
(構成3)
前記第1グループおよび前記第2グループの各々は、前記リスク値が前記第1範囲より上の第3範囲内であるときの動作として、前記マニピュレータ(202)を前記スタート位置に向かって戻す第4動作を含む、構成1または2に記載の制御装置(100)。
【0144】
(構成4)
前記算出部(10)は、前記マニピュレータ(202)に対する前記物体(400)の相対移動方向と、前記物体(400)と前記マニピュレータ(202)とを結ぶ線とのなす角度が0°に近いほど大きくなるように前記リスク値を算出する、構成1から3のいずれかに記載の制御装置(100)。
【0145】
(構成5)
前記算出部(10)は、前記物体(400)の速度が大きいほど大きくなるように前記リスク値を算出するとともに、前記物体(400)と前記マニピュレータ(202)との距離が短いほど大きくなるように前記リスク値を算出する、構成1から4のいずれかに記載の制御装置(100)。
【0146】
(構成6)
前記算出部(10)は、前記マニピュレータ(202)の軌道に沿った前記スタート位置から前記マニピュレータ(202)の現在位置までの長さが長いほど大きくなるように前記リスク値を算出する、構成1から5のいずれかに記載の制御装置(100)。
【0147】
(構成7)
前記算出部(10)は、前記物体(400)と前記マニピュレータ(202)との距離と前記物体(400)の速度とを含む項と、定数項とを含むリスク関数を用いて前記リスク値を算出し、
前記定数項の値は負であり、
前記第2範囲の上限値は0である、構成2に記載の制御装置(100)。
【0148】
(構成8)
前記算出部(10)は、リスク関数を用いて前記リスク値を算出し、
前記リスク関数は、前記マニピュレータ(202)に対する前記物体(400)の相対移動方向と、前記物体(400)と前記マニピュレータ(202)とを結ぶ線とのなす角度の余弦をx、前記物体(400)の速度をvobs、前記マニピュレータ(202)と前記物体(400)との距離をD、前記マニピュレータ(202)の軌道に沿った前記スタート位置から前記マニピュレータ(202)の現在位置までの長さをScurとするとき、
H(x)×(vobs 2/D)×f(Scur
の項を含み、
H(x)は、xが1に近いほど大きく、
f(Scur)は、Lが長いほど大きい、構成1から3のいすれかに記載の制御装置(100)。
【0149】
(構成9)
H(x)は、双曲線正接関数を含む、構成8に記載の制御装置(100)。
【0150】
(構成10)
f(Scur)は、シグモイド関数を含む、構成8または9に記載の制御装置(100)。
【0151】
(構成11)
前記標準速度に対する、前記第2動作における前記マニピュレータ(202)の移動速度の割合は、前記マニピュレータ(202)の軌道に沿った前記スタート位置から前記マニピュレータ(202)の現在位置までの長さが長いほど小さい、構成2に記載の制御装置(100)。
【0152】
(構成12)
前記算出部(10)は、前記マニピュレータ(202)の積載量が大きいほど大きくなるように前記リスク値を算出する、構成1から3のいずれか1項に記載の制御装置(100)。
【0153】
(構成13)
前記算出部(10)は、前記物体(400)と前記マニピュレータ(202)との距離と前記物体(400)の速度とを含む項と、定数項とを含むリスク関数を用いて前記リスク値を算出し、
前記定数項は、前記ロボットと協働して作業する人に応じて設定される、構成1から3のいずれか1項に記載の制御装置(100)。
【0154】
(構成14)
ロボット(200)のマニピュレータ(202)がスタート位置からゴール位置まで移動するように前記ロボット(200)を制御する制御方法であって、
前記マニピュレータ(202)と物体(400)との干渉のリスク値を算出するステップと、
複数種類の動作を含むグループの中から前記リスク値に応じて選択された対象動作に従って前記マニピュレータ(202)を動作させるための指令を生成するステップと、
前記グループとして、前記マニピュレータ(202)が基準位置よりも前記スタート位置に近いときに第1グループを設定し、前記マニピュレータ(202)が前記基準位置よりも前記ゴール位置に近いときに第2グループを設定するステップと、を備え、
前記第1グループは、
前記リスク値が第1範囲内であるときの動作として、前記リスク値を下げるように軌道を変更する第1動作を含み、
前記第2グループは、
前記リスク値が前記第1範囲の一部である第1サブ範囲内であるときの動作として、前記第1動作を含み、
前記リスク値が前記第1範囲のうち前記第1サブ範囲とは異なる第2サブ範囲内であるときの動作として、軌道を変更せずに速度を低下させる第2動作を含む、制御方法。
【0155】
(構成15)
構成14に記載の制御方法をコンピュータ(100)に実行させる、プログラム(130)。
【0156】
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0157】
1 システム、10 算出部、12 生成部、14 設定部、100 制御装置、110 制御処理回路、112 プロセッサ、114 メインメモリ、116 ストレージ、118 インターフェイス回路、120 フィールドネットワークコントローラ、130 システムプログラム、132 教示データ、200 ロボット、202 マニピュレータ、204 マニピュレータコントローラ、211~213 アーム、221~223 関節、230 回動部、240 台座部、300 センシングデバイス、400 人、500 ボクセル、PE ゴール位置、PS スタート位置、Ra~Rc 範囲、Rb-1,Rb-2 サブ範囲。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10