(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-13
(45)【発行日】2024-06-21
(54)【発明の名称】ロボット、ロボット制御方法、及び、ロボット制御プログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20240614BHJP
B25J 19/06 20060101ALI20240614BHJP
【FI】
B25J13/08 Z
B25J19/06
(21)【出願番号】P 2022037584
(22)【出願日】2022-03-10
【審査請求日】2023-10-19
【新規性喪失の例外の表示】特許法第30条第2項適用 令和4年2月9日に、自社HPのニュースのイベント・セミナーのウェブサイトにおいて発表 [刊行物等] 令和4年3月9日-令和4年3月12日に、東京ビッグサイト(東京国際展示場)東1~8ホールで行われた2022国際ロボット展(iREX)において出展
【早期審査対象出願】
(73)【特許権者】
【識別番号】517329487
【氏名又は名称】株式会社豆蔵
(74)【代理人】
【識別番号】110002516
【氏名又は名称】弁理士法人白坂
(72)【発明者】
【氏名】西原 泰宣
(72)【発明者】
【氏名】豊島 勇大
(72)【発明者】
【氏名】大国 征司
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開2018-144136(JP,A)
【文献】特開2012-228736(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 13/08
B25J 19/06
(57)【特許請求の範囲】
【請求項1】
複数の関節部と前記関節部のそれぞれに駆動部を備える多軸関節ロボットに装着され、前記多軸関節ロボットの周囲に存在する障害物を検出する、複数の前記関節部の外装部に備えられるセンサ部と、
前記多軸関節ロボットの駆動を制御する制御部と、を備え、
前記制御部は、
前記センサ部を通じて前記多軸関節ロボットと前記障害物との間の空間距離を算出する空間距離算出部と、
前記空間距離に基づいて前記障害物が前記多軸関節ロボットに対して接近する際の影響を仮想的な外力とみなして前記空間距離の2乗に反比例して増加する仮想外力を前記障害物と前記センサ部との距離に応じて値が変化する係数を用いて算出する仮想外力算出部と、
前記空間距離に基づいて前記障害物が前記多軸関節ロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じて前記多軸関節ロボットのプログラム運転速度を抑制する運転速度抑制部と、
前記仮想外力に基づいて前記駆動部の旋回速度を調整して前記多軸関節ロボットと前記障害物との接触を回避する動作調整部と、を備え
、
前記制御部における位置指令演算により算出される位置指令値は、あらかじめ決められた前記多軸関節ロボットの動作計画に基づいて得られた軌道であり、
独立した制御量である、前記多軸関節ロボットの動作速度を抑制するための速度補正量と、仮想外力から力・モーメント制御を経て得られた位置姿勢補正量とに基づき、
慣性行列Ms、粘性行列Ds、剛性係数行列K、インピーダンス制御ゲイン行列K
c
を用いて算出されるインピーダンスモデルHを用い下記の式により駆動部の旋回速度を調整することにより、
【数1】
速度補正、位置姿勢補正を、それぞれ独立して制御するため、障害物が接近した際の前記多軸関節ロボットの軌道計画に対する速度抑制率と、距離に応じた退避感度を個別に調整する
ことを特徴とするロボット。
【請求項2】
前記動作調整部は前記駆動部の旋回量を調整する請求項1に記載のロボット。
【請求項3】
複数の関節部と前記関節部のそれぞれに駆動部を備える多軸関節ロボットに装着され、前記多軸関節ロボットの周囲に存在する障害物を検出する、複数の前記関節部の外装部に備えられるセンサ部と、前記多軸関節ロボットの駆動を制御する制御部とを備える前記多軸関節ロボットにおけるロボット制御方法であって、
前記制御部が、
前記センサ部を通じて前記多軸関節ロボットと前記障害物との間の空間距離を算出する空間距離算出ステップと、
前記空間距離に基づいて前記障害物が前記多軸関節ロボットに対して接近する際の影響を仮想的な外力とみなして前記空間距離の2乗に反比例して増加する仮想外力を前記障害物と前記センサ部との距離に応じて値が変化する係数を用いて算出する仮想外力算出ステップと、
前記空間距離に基づいて前記障害物が前記多軸関節ロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じて前記多軸関節ロボットのプログラム運転速度を抑制する運転速度抑制ステップと、
前記仮想外力に基づいて前記駆動部の旋回速度を調整する動作調整ステップと、を実行
し、
前記制御部における位置指令演算により算出される位置指令値は、あらかじめ決められた前記多軸関節ロボットの動作計画に基づいて得られた軌道であり、
独立した制御量である、前記多軸関節ロボットの動作速度を抑制するための速度補正量と、仮想外力から力・モーメント制御を経て得られた位置姿勢補正量とに基づき、
慣性行列Ms、粘性行列Ds、剛性係数行列K、インピーダンス制御ゲイン行列K
c
を用いて算出されるインピーダンスモデルHを用い下記の式により駆動部の旋回速度を調整することにより、
【数2】
速度補正、位置姿勢補正を、それぞれ独立して制御するため、障害物が接近した際の前記多軸関節ロボットの軌道計画に対する速度抑制率と、距離に応じた退避感度を個別に調整する
ことを特徴とするロボット制御方法。
【請求項4】
複数の関節部と前記関節部のそれぞれに駆動部を備える多軸関節ロボットに装着され、前記多軸関節ロボットの周囲に存在する障害物を検出する、複数の前記関節部の外装部に備えられるセンサ部と、前記多軸関節ロボットの駆動を制御する制御部とを備える前記多軸関節ロボットにおけるロボット制御プログラムであって、
前記制御部に、
前記センサ部を通じて前記多軸関節ロボットと前記障害物との間の空間距離を算出する空間距離算出機能と、
前記空間距離に基づいて前記障害物が前記多軸関節ロボットに対して接近する際の影響を仮想的な外力とみなして前記空間距離の2乗に反比例して増加する仮想外力を前記障害物と前記センサ部との距離に応じて値が変化する係数を用いて算出する仮想外力算出機能と、
前記空間距離に基づいて前記障害物が前記多軸関節ロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じて前記多軸関節ロボットのプログラム運転速度を抑制する運転速度抑制機能と、
前記仮想外力に基づいて前記駆動部の旋回速度を調整する動作調整機能と、を実現させ
、
前記制御部における位置指令演算により算出される位置指令値は、あらかじめ決められた前記多軸関節ロボットの動作計画に基づいて得られた軌道であり、
独立した制御量である、前記多軸関節ロボットの動作速度を抑制するための速度補正量と、仮想外力から力・モーメント制御を経て得られた位置姿勢補正量とに基づき、
慣性行列Ms、粘性行列Ds、剛性係数行列K、インピーダンス制御ゲイン行列K
c
を用いて算出されるインピーダンスモデルHを用い下記の式により駆動部の旋回速度を調整することにより、
【数3】
速度補正、位置姿勢補正を、それぞれ独立して制御するため、障害物が接近した際の前記多軸関節ロボットの軌道計画に対する速度抑制率と、距離に応じた退避感度を個別に調整する
ことを特徴とするロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット、ロボット制御方法、及び、ロボット制御プログラムに関し、障害物との回避性能を高めて人と協働する作業環境に適するロボット、その制御方法及び制御プログラムに関する。
【背景技術】
【0002】
協働ロボットの国際標準規格(ISO/TS-15066)では人間がロボットと衝突した際の接触力が規定値以下となる事が求められている。このため、ロボットの関節にトルク検出機能を設け、接触力が閾値を上回ったらロボットを停止させる制御が一般的である。
【0003】
しかしながら、高速運転するロボットでは安全に停止させる事が困難である(あまり早く動かしていると、接触を検知しても急に停止できないので減速しなければならなくなる)ため、あまり生産性が上がっていないのが現状である。
【0004】
例えば、障害物との距離に応じて、人間が遠隔操作してロボットアームが障害物と接触するのを回避する技術が開示されている(特許文献1参照)。特許文献1に開示のロボットでは、ロボットアームの動作速度は低速である。また、障害物が人間である場合、人間は姿勢や動きを絶えず変えるため、特許文献1に開示のロボットでは対応が困難であった。
【0005】
また、レーザ式のセーフティセンサが所定の固定位置に配置されて警戒領域が画定される。装置そのものと人の接近を検出して、警戒領域に人が侵入した時に減速、さらにセンサに近づいたときに停止する。当該構成の装置のシステムの場合、人間と作業エリアを共有するような作業ではロボットが常に低速運転状態になってしまうため、生産性を落とさず人間と協働作業を行うのは難しい。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
そこで、上記事情に鑑み、本発明は、高い生産性を維持するため、必要以上にロボットの運転速度を低下させることなく、感度よくロボットに人間が接近した時に、その距離に応じてロボットの動作速度を抑制したり、人間とロボットの距離に応じてロボットが人間から素早く回避したりする制御を同時に行うことができるロボットを提供する。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の一態様に係るロボットは、駆動部を備えるロボットに装着され、ロボットの周囲に存在する障害物を検出するセンサ部と、ロボットの駆動を制御する制御部と、を備え、制御部は、センサ部を通じてロボットと障害物との間の空間距離を算出する空間距離算出部と、空間距離に基づいて障害物がロボットに対して接近する際の影響を仮想的な外力とみなして仮想外力を算出する仮想外力算出部と、空間距離に基づいて障害物がロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じてロボットのプログラム運転速度を抑制する運転速度抑制部と、仮想外力に基づいて駆動部の動作を調整してロボットと障害物との接触を回避する動作調整部とを備える。
【0009】
上記課題を解決するため、本発明の一態様に係るロボットは、複数の関節部を備える多軸関節ロボットであって、関節部のそれぞれに駆動部は備えられ、動作調整部は駆動部の旋回量を調整してよい。
【0010】
上記課題を解決するため、本発明の一態様に係るロボットは、複数の関節部を備える多軸関節ロボットであって、関節部のそれぞれに駆動部は備えられ、動作調整部は駆動部の旋回速度を調整してよい。
【0011】
上記課題を解決するため、本発明の一態様に係るロボットは、仮想外力は空間距離に反比例して増加してよい。
【0012】
上記課題を解決するため、本発明の一態様に係るロボットは、センサ部はロボットの複数の関節部の外装部に備えられてよい。
【0013】
上記課題を解決するため、本発明の一態様に係るロボットは、センサ部はロボットの複数の関節部の外装部に備えられてよい。
【0014】
上記課題を解決するため、本発明の一態様に係るロボットは、制御部における位置指令演算により算出される位置指令値は、あらかじめ決められたロボットの動作計画に基づいて得られた軌道であり、独立した制御量である、ロボットの動作速度を抑制するための速度補正量と、仮想外力から力・モーメント制御を経て得られた位置姿勢補正量に基づき、速度補正、位置姿勢補正を、それぞれ独立して制御するため、障害物が接近した際のロボットの軌道計画に対する速度抑制率と、距離に応じた退避感度を個別に調整できてよい。
【0015】
上記課題を解決するため、本発明の一態様に係るロボット制御方法は、駆動部を備えるロボットに装着され、前記ロボットの周囲に存在する障害物を検出するセンサ部と、前記ロボットの駆動を制御する制御部とを備えるロボットにおけるロボット制御方法であって、制御部が、センサ部を通じてロボットと障害物との間の空間距離を算出する空間距離算出ステップと、空間距離に基づいて障害物がロボットに対して接近する際の影響を仮想的な外力とみなして仮想外力を算出する仮想外力算出ステップと、空間距離に基づいて障害物がロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じてロボットのプログラム運転速度を抑制する運転速度抑制ステップと、仮想外力に基づいて駆動部の動作を調整する動作調整ステップと、を実行してよい。
【0016】
上記課題を解決するため、本発明の一態様に係るロボット制御プログラムは、駆動部を備えるロボットに装着され、ロボットの周囲に存在する障害物を検出するセンサ部と、ロボットの駆動を制御する制御部とを備えるロボットにおけるロボット制御プログラムであって、制御部に、センサ部を通じてロボットと障害物との間の空間距離を算出する空間距離算出機能と、空間距離に基づいて障害物が前記ロボットに対して接近する際の影響を仮想的な外力とみなして仮想外力を算出する仮想外力算出機能と、空間距離に基づいて障害物がロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じてロボットのプログラム運転速度を抑制する運転速度抑制機能と、仮想外力に基づいて駆動部の動作を調整する動作調整機能と、を実現させてよい。
【発明の効果】
【0017】
本発明は、駆動部を備えるロボットに装着され、ロボットの周囲に存在する障害物を検出するセンサ部と、ロボットの駆動を制御する制御部と、を備え、制御部は、センサ部を通じてロボットと障害物との間の空間距離を算出する空間距離算出部と、空間距離に基づいて障害物がロボットに対して接近する際の影響を仮想的な外力とみなして仮想外力を算出する仮想外力算出部と、空間距離に基づいて障害物がロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じてロボットのプログラム運転速度を抑制する運転速度抑制部と、仮想外力に基づいて駆動部の動作を調整してロボットと障害物との接触を回避する動作調整部とを備えるため、人間が近づくとロボットは接触しないように人間を回避するとともに、人間と協働して効率よく作業することができる。
【図面の簡単な説明】
【0018】
【
図1】駆動部とセンサ部とを備えるロボットの外観図である。
【
図2】ロボットの機能構成を示すブロック図である。
【
図4】作業者の手を近づけた時にセンサ部が距離を検知する形態を示す図である。
【
図5】(a)、(b)仮想外力変化勾配、仮想外力中央値到達距離に基づく仮想外力と距離の関係性を示す図である。
【
図7】ロボットにおける肘部モーメントを示す図である。
【
図8】ロボットの処理を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下、本発明にかかる実施形態のロボット10を、図を参照しながら説明する。
【0020】
図1の外観図は、実施形態のロボット10の主要構成を表す。ロボット10は駆動部11として関節と関節を回動させるモータと、センサ部12と、制御部14(距離センサコントローラ15とロボットコントローラ16を含む)とを備える。制御部14は
図2、
図3とともに後に説明する。
【0021】
ロボット10は、たとえば、アームを有するロボットが好ましく用いられる。より具体的には、垂直多関節ロボット、水平多関節ロボット、パラレルリンクロボット、直交ロボットなどが含まれる。しかしながら、ロボットはこれらに限定しない。また、ロボット10は、たとえば、先端部にロボットハンドを備えられる。また、
図1に示すように、実施形態のロボット10は関節を複数備えるロボットが用いられる。
【0022】
ロボット10に内蔵されるモータは、回転角度(旋回角度)を正確に制御する必要からエンコーダ等を備えたサーボモータが好ましく用いられる。サーボモータには、たとえば、DCモータ、ACモータ、コアレスモータ、DDモータなどを用いることができる。これにより、モータは制御部14と接続されて、ロボット10の駆動部11の動作位置、動作速度を適宜調整することができる。
【0023】
実施形態のロボット10は、
図1に示すようにポール13に取り付けられている。しかしながら、ロボット10の設置態様は
図1に示す実施形態に限定しない。たとえば、ロボット10は架台に載置したり、天井に取り付けることが挙げられる。
【0024】
ロボット10の適用例としては、たとえば、ロボット10は多関節ロボットとして構成され、食品工場のような人間が密集する空間で、人間と協働して、惣菜を包装することが想定される。また、ロボット10はクレーンのような重機として構成され、人間と協働して改築工事を行うことなども想定される。しかしながら、適用例はこれらに限定しない。
【0025】
図1に示すように、実施形態のロボット10は多関節ロボットとして開示され、個々の関節に駆動部11が備えられる。駆動部11は、作業を進めるように軸の回転角度(旋回角度)が制御される。また、関節部の個数、形態は
図1に示す形態に限定しない。たとえば、駆動部11は、関節を1個備えてもよく、10個備えてもよい。ロボット10として、駆動部11がリンクとジョイントからなる多関節ロボットが挙げられる。リンクには、シリアルリンク、パラレルリンクのいずれかを用いられる。また、駆動部11の駆動方法として、電気による駆動、油圧による駆動、空圧による駆動などが含まれるが、好ましくは、電気による駆動である。これによって、駆動部11は、高速で動作可能であり、ロボット10はより小型化して様々な場所で適用可能となる。
【0026】
実施形態のロボット10では、センサ部12は、
図1に示すようにロボット10の外装部に装着される。外装部と障害物(人間を含む)との距離はセンサ部12で検出することができる。また、距離センサコントローラ15は、後述する制御部14の一部を構成することができる。
【0027】
ロボット10の外装部に複数個所取り付けられたセンサ部12の中心から、障害物までの距離を計測し収集できる。障害物までの距離の計測手段は、静電容量方式、2次元・3次元視覚センサ、レーザスキャナなどが挙げられる。
【0028】
センサは、ロボットの周囲に存在する障害物を検出することができれば、センサの種類は問わない。たとえば、静電容量センサ、光電センサなどが挙げられる。また、センサ部12は、
図1に示すように、ロボット10の外装部の任意の位置に一個または複数装着される。センサ部12の障害物の検出方法は、電磁気的検知または光学的検知等である。
【0029】
なお、センサ部12は、後述の空間距離算出部14aの機能を備えることができる。すなわち、センサ部12は、障害物を検出するとともに、センサ部12と障害物との間の空間距離を算出することができる。
【0030】
図2のブロック図は、ロボット10の機能構成を示すブロック図である。
図2に示すように、ロボット10は、駆動部11、センサ部12、制御部14とを備える。また、
図2に示すように、制御部14は、空間距離算出部14aと、仮想外力算出部14bと、運転速度抑制部14cと、動作調整部14dとを備える。ここで、制御部14は、たとえば、センサ部12からの情報を処理する距離センサコントローラ15と、距離センサコントローラ15の処理した情報をもとに、計算処理などを実行するロボットコントローラ16を備えることができる。この場合、距離センサコントローラ15において、空間距離を算出することができる。すなわち、距離センサコントローラ15は、空間距離算出部14aの機能を備える。ここで、距離センサコントローラ15とロボットコントローラ16は通信線を介して接続されている。ロボットコントローラ16では位置制御処理に対し位置姿勢補正量を加算するので、距離センサコントローラ15との通信周期は位置制御周期以下であることが望ましい。ロボットコントローラ16は、
図1に示すように、制御周期ごとに距離データの通信処理を実行するとともに、モーション制御部において、制御周期ごとにロボット10の駆動を制御する。ここで、制御周期とは、あらかじめ設定された時間周期を指す。たとえば、ロボット10の駆動を開始してから停止するまでの時間周期が含まれる。制御部14は、ロボット10の各機能部での処理を制御する。制御部14は、ロボット10内部のCPUであり、接続線を介してセンサ部12、モータと通信接続される。ここで、接続線は、たとえば、有線接続や、無線接続が挙げられる。また、制御部14は、ロボット10の記憶部(図示省略)に記憶されている各種プログラムやデータを用いて、実現すべき各種機能を実現することができる。また、制御部14(またはモーション制御部)は、距離センサコントローラ15と通信して、センサ部12と障害物との間の距離の情報を取得する。また、制御部14は、ロボットコントローラ16であり、モーション制御部としての機能を備えることができる。
【0031】
空間距離算出部14aは、センサ部12が検出した障害物の情報(などを含む)をもとに、障害物とセンサ部12との間の距離を算出する。ここで、空間距離とは、デカルト座標系における3次元空間の距離を指す。たとえば、空間距離は、センサ部12(センサ電極12a)の中心から障害物のうち、センサ部12の中心に対して最も近い位置にある部分との距離が挙げられる。
図3に示すように、算出された空間距離の情報は仮想外力算出部14bに伝達される。
【0032】
仮想外力算出部14bは、空間距離算出部14aで算出された空間距離をもとに、仮想外力を算出する。ここで、仮想外力とは、空間的にロボット10に影響を及ぼし得る力(外から受ける力として仮定する外力)を指す。たとえば、人間がロボットに接近したときに、人間とロボット10との間の距離が狭まることにより実際には接触していないとしても、外部からの力を受けていると仮定して生じ得る反発力として疑似的に推定される。これにより、たとえば、ロボット10は、作業者との距離が一定以内になった場合に安全に停止させることができ、また、駆動速度を制限することなく、より安全に作業者と協働作業することができる。
【0033】
仮想外力の算出方法は、特に限定しないが、たとえば、距離の2乗の反比例させる等の所定の方程式により算出される。また、算出された仮想外力をもとに、たとえば、ロボット10の先端部における仮想外力(以下、先端外力と呼称する)、ロボット10の任意の駆動部11におけるモーメント(以下、肘部モーメントと呼称する)が算出される。また、モーメントにはトルクが含まれる。先端外力の算出方法は、
図3とともに説明する。これにより、ロボット10の動作調整部14dは、駆動部11の旋回速度、旋回量、動作する際のロボット10の姿勢や角度を適宜、障害物との接触を回避するように調整する。なお、制御部14は、空間距離に基づいて障害物がロボット10に対して接近する際の影響を仮想的な外力とみなして、外力に応じてロボット10のプログラム運転速度を抑制する処理を実行する運転速度抑制部14cをさらに設けることができる。プログラム運転速度は、ロボット10の動作が含まれる。より具体的には、ロボット10の制御部14によって、決定された動作が含まれる。運転速度抑制部14cでは、たとえば、空間距離算出部14aで算出されたセンサ部12と障害物との間の距離に基づき、ロボット10の運転速度を抑制する処理を実行したり、仮想外力算出部14bで算出された仮想外力に基づき、ロボット10の運転速度を抑制する処理を実行する。これにより、障害物がロボット10に接近した場合に、ロボット10の駆動部11の動作速度などを抑制し、障害物との衝突や接触を回避する。
【0034】
動作調整部14dは、仮想外力算出部14bで算出された仮想外力の数値が、必ず所定の値以下とするべく、障害物との接触を回避するように、ロボット10の駆動を調整する。ここで、調整とは、ロボットのすべての動作を制御することを指す。たとえば、ロボットの動作速度を抑制したり、ロボットを始動、停止したり、ロボットが障害物との接触を回避するように駆動することが含まれる。また、所定の値とはたとえば、予め設定した任意の数値であったり、仮想外力算出部14bの計算能力をもとに設定したりする。しかしながら、所定の値の設定方法はこれに限定しない。これにより、ロボット10は、人間が近づくとロボットは接触しないように人間を回避するとともに、人間と協働して効率よく作業することができる。より具体的には、ロボット10は、障害物との距離を測定しつつ、障害物との衝突の前に動作を停止することができる。また、障害物との衝突を回避するために、ロボット10の動作軌道を自動的に修正することができる。また、人間がロボット10に触れずに、所望の方向へロボット10を誘導することができる。
【0035】
実施形態のロボット10が回転軸を備える関節部を備える場合、動作調整部14dは、駆動部11の旋回量を調整する。また、駆動部11の旋回角度などを調整する。この場合、たとえば、ロボット10の先端外力や肘部モーメント(回転軸周りのモーメント)に基づき、駆動部11の旋回量、旋回速度、旋回角度などを調整することができる。しかしながら、駆動部11の動作の調整方法は、これに限定しない。
【0036】
たとえば、先端外力や肘部モーメントと、慣性行列Ms、粘性行列Ds、剛性(ばね)係数行列K、インピーダンス制御ゲイン行列Kcを用いて算出されるインピーダンスモデルを用いて、駆動部11の旋回速度などを調整できる。
【0037】
以下、インピーダンスモデル(仮にHと示す)の式の一例を示す。
【0038】
【0039】
ここで、上述したように、モーメントにはトルクが含まれる。トルクには、たとえば、関節部の回転軸周りのトルクが含まれる。
【0040】
また、慣性行列、粘性行列、剛性係数行列、インピーダンス制御ゲイン行列とは、ロボットの力学特性や力の制御を特徴づける行列が含まれる。力の制御とは、ロボットにおける計測誤差や動作誤差による過大な衝撃力、干渉力を防止するための制御が含まれる。これにより、ロボット10は、駆動部11の動作速度や角度を適宜補正することができ、障害物との接触を回避する。たとえば、作業者がロボット10に接近した場合に、作業におけるロボット10の駆動速度を抑制しつつ、作業者の安全を確保できる距離までロボット10を素早く退避させるという二つの処理を並行して実行ことができる。
【0041】
図3は、ロボット10の各機能部の処理を示す図である。
図3に示すように、処理30aでは、距離データを通信する処理を行う。この処理30aには、ロボット10の周囲に存在する障害物を検出する処理も含まれる。処理30aはセンサ部12で実行される。処理30bでは、距離データをもとに、距離検出値(距離1~N、Nは任意の自然数を示す)を算出する。距離検出値とは、センサ部12が検出した障害物の情報など、距離を算出するのに必要な情報から、算出されるセンサ部12と障害物との間の距離が含まれる。この処理30bは、空間距離算出部14a、またはセンサ部12で実行される。この処理30bには、ロボット10と障害物との間の空間距離を算出する処理30bが含まれる。
【0042】
次いで、算出された距離をもとに、仮想外力(f1~fN、Nは任意の自然数を示す)を算出する処理30cが実行される。処理30cは、仮想外力算出部14bで実行される。仮想外力を算出するための具体的な数式は、後に説明する。
【0043】
次いで、算出された仮想外力をもとに、先端外力、肘部のモーメント(トルクを含む)を算出する処理30dが実行される。
図3に示すFは外力、Mはモーメント、Melbは任意の駆動部11(肘部)におけるモーメントを示す文字式であり、外力やモーメントの値を示す。処理30dは、仮想外力算出部14bで実行される。しかしながら、処理30dを実行する機能部はこれに限定しない。
【0044】
たとえば、先端外力算出部や肘部モーメント算出部を設け、処理30dを実行することが挙げられる。ここで、先端外力の算出方法は、たとえば、回転軸を備える関節部を備えるロボット10において、関節部の回転軸周りのトルクから、ヤコビ行列の転置行列を用いて算出する。
【0045】
以下、算出する式(以下、仮想仕事の原理と呼称)の一例を示す。なお、JTヤコビ行列の転換行列を、Δτ1~7は仮想外力(f1~fN)がロボット10の各関節軸の及ぼすモーメントを示す。
【0046】
【0047】
しかしながら、先端外力の算出方法は、これに限定しない。次いで、目標モーメント(後述する)を仮想外力から算出する処理30eが実行される。この処理30eは、後述の処理30fにおけるインピーダンスモデルに基づく処理30fに用いられる。
【0048】
次いで、算出された先端外力、肘部モーメント(トルクを含む)、目標力モーメントをもとに、力、モーメントを制御する処理30f、ロボット10の動作速度、駆動部11の旋回速度などを抑制する処理30gが実行される。ここで、処理30fではさらに、インピーダンスモデルに基づく処理30f1と、インピーダンス制御ゲイン行列Kcに基づく処理30f2、力積分補償KI/Sに基づく処理30f3が含まれる。
【0049】
力、モーメントを制御する処理とは、ばねマスダンパモデルに基づく処理を実行することが含まれる。ばねマスダンパモデルとは、たとえば、ばねや質量をもつ物体、ダンパ(制動器)による機構系の力学的性質を特徴づける計算処理が含まれる。また、力積分補償とは、制御部14における計算処理の際に生じるずれ、誤差などを補うための計算処理が含まれる。
【0050】
ここで、先端における外力、モーメントに所定の閾値(それぞれ目標力Fxyz,d、目標モーメントMxyz,dと示す)を設けることを想定する。力を制御する処理30fにおいて、ロボット10の先端における目標力、目標モーメントが発生し、かつ見かけ上のロボット10の先端が所望の柔らかさ(剛性、粘性)となるよう、制御周期ごとにロボット10の位置や姿勢などを補正する。
【0051】
ここで、処理30gでは、位置指令に関する演算処理が実行され、より具体的には、ロボット10の位置、姿勢指令値を作成する処理30g1と、それに基づく速度制御処理30g2とが実行される。位置指令とはロボット10の位置を補正したり、補正しなかったりする指示をすることが含まれる。すなわち、処理30gでは、ロボット10の位置、姿勢を補正することを決定づけるための計算処理が実行される。処理30g1の位置指令演算や、処理30g2の速度制御処理は、制御部14(モーション制御部)において実行される。位置指令演算により算出される位置指令値は、あらかじめ決められた動作計画に基づいて得られた軌道である。この動作速度を抑制するための速度補正量と、仮想外力から力・モーメント制御を経て得られた位置姿勢補正量は独立した制御量である。これらを独立して制御する事ができるため、障害物(人間を含む)が接近した際のロボット10の軌道計画に対する速度抑制率と、距離に応じた退避感度を個別に調整できる。ここで、速度抑制率とは、ロボット10の動作速度の抑制程度を指す。また、軌道計画とは、ロボット10の制御部14により、予め設定された動作を指す。
図3に示すように、pは位置姿勢指令値を示し、Δpは位置指令補正量、Δeは肘角度補正量を示す。ここで、位置指令補正量とは、ロボット10の位置、姿勢の補正量を決定づける値であり、肘角度補正量とは、任意の駆動部11(肘部)の旋回角度の補正量を決定づける値である。補正量とは、どれだけ補正するのかを示す数値が含まれる。
【0052】
たとえば、処理30f、処理30gでは、算出された仮想外力、先端外力、ロボット10の先端部におけるモーメント、及び肘部モーメント(トルクを含む)などが所定の値となるように、ロボット10の姿勢や動作角度、駆動部11の旋回量などを調整する処理が含まれる。たとえば、処理30g2は、ロボット10のプログラム運転を抑制するように制御処理を実行する。より具体的には、ロボット10の動作速度を抑制することが挙げられる。処理30gは、運転速度抑制部14cで実行される。
【0053】
より具体的には、上述したように、慣性行列、粘性行列、剛性係数行列、インピーダンス制御ゲイン行列などを用いて算出される所定のインピーダンスモデルに基づき、ロボット10の駆動を調整することが挙げられる。処理30fは動作調整部14dで実行される。
【0054】
算出される仮想外力に、インピーダンスモデルを用いることで、ロボット10の押し付け力を0に設定して、ロボット10が障害物から離れるように退避することができる。ここで、押し付け力とは、対象物にかかる一定の力のことが含まれる。たとえば、ロボット10のアームが磨き作業をする場合、数十Nの押し付け力で作業を実行する。また、押し付け力に、モーメントなども考慮して計算処理を実行することで、ロボット10は、常に一定の仮想外力が発生するように位置や姿勢を補正することができる。たとえば、ロボット10の障害物に対する距離を一定に保ちつつ、作業者の手に追従するような動作を実現でき、ロボット10を非接触で誘導するようなシステムにも応用できる。
【0055】
次いで、処理30fや処理30gで処理されたデータをもとに、逆運動学を用いて、ロボット10の駆動、駆動部11の旋回速度、旋回量、旋回角度などを調整する。ここで、逆運動学を用いるとは、ロボット10を目標の位置まで到達させるための動きを決定する所定の運動方程式を使用することが含まれる。たとえば、処理30f、処理30gで処理された数値データを所定の運動方程式に代入し、ロボット10の駆動を決定することが挙げられる。
【0056】
次いで、決定された動作をもとに、ロボット10の姿勢や動作速度などを制御する処理30iが実行される。処理30iには、処理30i1と、処理30i2とが含まれる。処理30iは、動作調整部14dで実行される。たとえば、動作調整部14dとしてロボット10にサーボドライバを設ける。サーボドライバは、処理30i1において、計算処理により決定されたロボット10の駆動をもとに、ロボット10の位置制御などを実行させることが挙げられる。
【0057】
さらに、サーボドライバには、電流制御ループを設け、駆動部11の動作速度や旋回速度を制御する処理30i2を実行する。処理30i2では、電流制御ループが駆動部11としてのモータに流れる電流を制御することで、モータの旋回量、旋回角度などを調整する。制御された電流がモータに流れることで、モータは動作する(処理30j)。これにより、ロボット10は、障害物との接触を回避することができる。
【0058】
なお、上述のように、仮想外力算出部14bによる仮想外力算出する処理30cでは、各センサ部12によって検出される距離値をもとに仮想外力を算出する。
算出には、ロボット10の制御部14において算出できる仮想外力の最大値、すなわち制御部14の計算処理能力を考慮することができる。たとえば、予め制御部14が算出できる値以上の仮想外力は算出できないように設定することが挙げられる。
【0059】
また、算出には、センサ部12が検出する距離に応じて、仮想外力の値の増減に変化量をつけることができる。たとえば、センサ部12と障害物との間の距離が近づくにつれて仮想外力の増大の程度を小さくするよう調整することができる。
【0060】
たとえば、仮想外力の算出方法として、距離と力との間における磁力の斥力の考え方を取り入れて算出することが想定される。この場合、斥力は距離の二乗に反比例するため、センサ部12と障害物との距離が限りなく0に近づくと、仮想外力は無限になることとなってしまう。反対に、距離が遠くなればなるほど、仮想外力は限りなく0に近づくこととなる。これにより、ロボット10の制御部14の計算処理負担が増大するのを防ぐため、仮想外力算出部14bは、仮想外力の増減の変化量を調整しつつ、仮想外力を算出することができる。仮想外力の増減の変化量を調整する方法として、たとえば、距離に応じて値が変化する係数(以下、仮想外力変化勾配kと示す)を用いて算出することが想定される。具体的な数式は後で
図5とともに説明する。
【0061】
また、センサ部12と障害物との間の距離が所定の距離以上近づいた場合に仮想外力を算出することができる。たとえば、仮想外力の値の中央値を算出する距離まで障害物が近づいてから、仮想外力算出部14bは、仮想外力を算出し、動作調整部14dは、障害物との接触を回避するよう、駆動部11の動作を調整する。このように、センサ部12と障害物との間の距離に応じて外力の算出、動作の調整タイミングを調整することができる。ここで、距離に応じて外力を発生させるタイミングの調整方法として、たとえば、係数(以下、仮想外力中央値到達距離dmと示す)を用いて計算処理することが想定される。具体的な数式は、
図5とともに後で説明する。
【0062】
図4は、ロボット10の外装部に障害物の一例として作業者の手40を接近させた場合に、ロボット10の外装部に装着したセンサ部12が手40とセンサ部12との間の距離を検出している形態を示す図である。
図4に示すように、手40が近づけば近づくほど、ロボット10と接触する可能性が高くなる。このため、仮想外力は、センサ部12と障害物との距離が近づくほど、大きな値となる。磁力の運動方程式を用いて仮想外力を算出する場合、仮想外力は、距離の二乗に反比例して増加する。
【0063】
たとえば、
図4に示すように、手40がロボットのセンサ部12に対して三点の位置41(仮に上から41a点、41b点、41c点とする)まで接近したときを想定する。
図4に示すように、センサ部12と手40との距離は、41a点が一番遠く、41c点が一番近い。この場合、仮想外力は、所定の方程式を用いて算出すると、手40が41a点にある場合にロボット10の外装部にかかる仮想外力は、41c点にある場合にロボット10の外装部にかかる仮想外力よりも値が小さくなる。ここで、
図4に示す実施形態において、動作調整部14dは、仮想外力が所定の値を超える場合に、ロボット10の駆動を障害物との接触を回避するように調整する。仮想外力を算出する具体的な数式は後に説明する。
【0064】
また、仮想外力算出部14bは、上述したように、制御部14の計算処理能力を考慮して仮想外力を算出する。たとえば、
図4に示す41a点における仮想外力の値が制御部14の計算処理能力で算出できる値を超えている場合、算出しないことが挙げられる。しかしながら、これに限定せず、制御部14の計算処理能力により、算出される最大値を41a点に手40が存在する場合の仮想外力として用いることが挙げられる。
【0065】
また、仮想外力算出部14bは、上述したように、障害物との距離に応じて、算出される仮想外力の増減に変化量をつけることができる。たとえば、
図4に示す41b点から41c点に手40が移動する場合に増加する仮想外力の増加量は、41a点から41b点に手40が移動する場合に増加する仮想外力の増加量よりも緩やかになることが挙げられる。ここで、仮想外力の増減に変化をつける方法としては、たとえば、仮想外力の算出に用いる所定の方程式に、距離に応じて値が変化する係数(仮想外力変化勾配k)を用いることが挙げられる。
【0066】
以下、仮想外力変化勾配を考慮する場合であり、ロジスティック関数を用いた仮想外力(f1~N)を算出する数式の一例を示す。なお、f1~Nは、各センサ電極12a(仮にE1~Nと示す)によって検出される距離値をd1~Nとした場合の仮想外力である。また、数式中、Fvmaxは仮想外力の最大値、kは仮想外力変化勾配を示す。
【0067】
【0068】
また、仮想外力算出部14bは、上述したように、障害物との距離に応じて、仮想外力の算出するタイミングを調整することができる。たとえば、
図4に示す41a点に手40が存在する場合には、仮想外力の算出は実行せず、手40が41b点に移動した場合に仮想外力の算出を実行することが挙げられる。算出するタイミングを調整する方法としては、たとえば、センサ部12の警戒領域を調整したり、仮想外力の算出に用いる所定の方程式に所定の係数(仮想外力中央値到達距離dm)を用いることが挙げられる。
【0069】
以下、仮想外力中央値到達距離を考慮する場合の仮想外力(f1~N)を算出する数式の一例を示す。なお、数式中、Fvmaxは仮想外力最大値、kは仮想外力変化勾配、dmは仮想外力中央値到達距離を示す。
【0070】
【0071】
仮想外力変化勾配k、仮想外力中央値到達距離dmに基づく、仮想外力と距離の関係性を示すグラフ51、グラフ52を
図5(a)、(b)に示す。
図5(a)、(b)に示すように、横軸は距離を示し、縦軸は仮想外力を示している。
【0072】
図5(a)に示すグラフ51は、仮想外力変化勾配kに基づく、仮想外力と距離の関係性を示すグラフである。より具体的には、kの値が0.05、0.07、0.1の場合の仮想外力と距離との関係性を示すグラフである。kの値が小さいほど、仮想外力の増加量は緩やかになり、減少量は大きくなる。これにより、距離に応じて、ロボット10にかかる外力の変化勾配を設定することができる。
【0073】
図5(b)に示すグラフ52は、仮想外力中央値到達距離dmに基づく、仮想外力と距離の関係性を示すグラフである。より具体的には、dmの値が100.0、125.0、150.0の場合の仮想外力と距離の関係性を示すグラフである。仮想外力中央値到達距離は、仮想外力が仮想外力最大値の半分となる、センサ部12と障害物との間の距離を指す。これにより、センサ部12と障害物との間の距離に応じて、ロボット10に仮想外力を発生させるタイミングを調整することができる。
【0074】
図6は、関節部を複数備えるロボット10(多関節ロボット)が作業者の手40との接触を回避する実施形態を示すとともに、ロボット10の先端外力を示す図である。
図5に示すロボット10は、センサ部12がセンサ部12と作業者の手40を検出し、制御部14の空間距離算出部14aにおいて、センサ部12と作業者の手40との間の距離を算出する。
【0075】
仮想外力算出部14bは、算出されたロボット10と手40との距離から、仮想外力を算出する。算出された仮想外力から、さらにロボット10の先端部にかかる仮想外力(先端外力)を算出する。さらに、運転速度抑制部14cにおいて、空間距離に基づいて作業員の手40がロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じてロボット10のプログラム運転速度を抑制する処理を実行することができる。プログラム運転速度は、ロボット10の動作速度が含まれる。これにより、障害物がロボット10に接近した場合に、ロボット10の動作速度を抑制し、障害物との衝突や接触を回避する。
【0076】
動作調整部14dは、算出された先端外力を用いて、駆動部11のうち、一部は作業者の手40との接触を回避するように動作を調整し、それ以外の駆動部11は変わらず作業を続行するように動作させる。これにより、ロボット10は、作業者との接触を回避しつつ、作業者と協働することができる。
【0077】
図示のロボット10は多関節ロボットを開示しており、複数の駆動部11及びセンサ部12を備える。そこで、当該ロボット10は、接近する障害物(作業者の手、腕、頭)の距離、速度に応じて、現在のロボット10の姿勢を考慮して、複数の駆動部11のそれぞれに対し、前述の算出に基づいて最適な制御量(旋回量、旋回速度)が指令され、制御される。
【0078】
図7は、関節部を複数備えるロボット10(多関節ロボット)が作業者の手40との接触を回避する実施形態を示すとともに、ロボット10の肘部モーメントを示す図である。
図5に示すロボット10は、センサ部12がセンサ部12と作業者の手40を検出し、制御部14の空間距離算出部14aにおいて、センサ部12と作業者の手40との間の距離を算出する。
【0079】
仮想外力算出部14bは、算出されたロボット10と作業者の手40との距離から、仮想外力を算出する。算出された仮想外力から、任意の駆動部11(肘部)の回転軸周りのモーメント(トルクを含む)を算出する。たとえば、
図7に示すロボット10が7個の回転軸を備える多関節ロボットである場合、ポール側から数えて第2個目の軸と、第6個目の軸に任意の点をおき、該2点を結ぶ線分周りに発生するモーメントを算出する。さらに、運転速度抑制部14cにおいて、空間距離に基づいて作業者の手40がロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じてロボット10のプログラム運転速度を抑制する処理を実行することができる。これにより、ロボット10は、作業員の手40との衝突や接触を回避するよう、動作速度(駆動部11の旋回速度を含む)を抑制する。
【0080】
動作調整部14dは、算出された仮想外力やモーメント(トルクを含む)を用いて、駆動部11のうち、一部は作業者の手40との接触を回避するように動作を調整し、それ以外の駆動部11は変わらず作業を続行するように動作させる。これにより、ロボット10は、作業者との接触を回避しつつ、作業者と協働することができる。
【0081】
図8は、実施形態に係るロボット10の処理を示すフローチャートである。
図8に示すように、コンピュータが、センサ部12が検出した障害物の情報をもとに空間距離を算出する空間距離算出ステップ(S80)と、算出された空間距離をもとに仮想外力を算出する仮想外力算出ステップ(S81)と、空間距離に基づいて作業者の手40がロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じてロボット10のプログラム運転速度を抑制する運転速度抑制ステップ(S82)と、算出された仮想外力をもとにロボットの駆動を調整する動作調整ステップ(S83)とを実行する。これにより、ロボット10は、障害物との接触を回避する。なお、
図8に示す処理フローにおいて、さらに、制御部14において、空間距離に基づいて障害物がロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じてロボット10のプログラム運転速度を抑制する運転速度抑制ステップ(図示省略)を実行することができる。
【0082】
空間距離算出ステップ(S80)では、センサ部12が検出した障害物のうち、センサ部12と最も近い位置にある部分と、センサ部12の中心点との間の距離を、デカルト座標系の3次元空間における距離とみなして算出する。
【0083】
仮想外力算出ステップ(S81)では、空間距離算出ステップ(S80)で算出された空間距離をもとに、仮想外力を算出する。仮想外力の算出方法は、上述の通りである。また、運転速度抑制ステップ(S82)では、ロボット10のプログラム運転速度を抑制する。ここで、運転速度抑制ステップでは、空間距離算出ステップ(S80)において、算出されたセンサ部12と障害物との間の距離に基づき、運転速度の抑制処理を実行したり、仮想外力算出ステップ(S81)において、算出された仮想外力に基づき、運転速度の抑制処理を実行する。これにより、障害物がロボット10に接近した場合に、ロボット10の運転速度を抑制することで、障害物との衝突、接触を回避する。
【0084】
動作調整ステップ(S83)では、仮想外力算出ステップ(S81)で算出された仮想外力に基づき、ロボット10の駆動を調整する。たとえば、仮想外力算出ステップ(S81)で算出された仮想外力が必ず所定値以下となるようにロボット10の駆動を調整する。ロボット10が障害物を回避するように駆動することで、処理を終了する。また、
図8に示す処理は何度も繰り返すことができる。これにより、ロボット10は、障害物との接触を回避するとともに、回避前から行っていた作業を続行することができる。
【0085】
<まとめ>
上述したように、ロボット10は、駆動部11を備えるロボット10に装着され、ロボット10の周囲に存在する障害物を検出するセンサ部12と、ロボット10の駆動を制御する制御部14と、を備え、制御部14は、センサ部12を通じてロボット10と障害物との間の空間距離を算出する空間距離算出部14aと、空間距離に基づいて障害物がロボット10に対して接近する際の影響を仮想的な外力とみなして仮想外力を算出する仮想外力算出部14bと、前記空間距離に基づいて前記障害物が前記ロボットに対して接近する際の影響を仮想的な外力とみなして、外力に応じてロボットのプログラム運転速度を抑制する運転速度抑制部14cと、仮想外力に基づいて駆動部11の動作を調整してロボット10と障害物との接触を回避する動作調整部14dとを備えるため、人間が近づくとロボット10は接触しないように人間を回避するとともに、人間と協働して効率よく作業することができる。より具体的には、ロボット10は、障害物との距離を測定しつつ、障害物との衝突の前に動作を停止することができる。また、障害物との衝突を回避するために、ロボット10の動作軌道を自動的に修正することができる。また、人間がロボット10に触れずに、所望の方向へロボット10を誘導することができる。
【0086】
<実施形態>
たとえば、ロボット10は、食品工場のような人間が密集する空間で、作業者と協働して、惣菜を包装することが想定される。より具体的には、作業者が惣菜を包装している最中に、ロボット10は、作業者とロボット10との間の距離に応じて算出される仮想外力に基づき、ロボット10の駆動を調整することにより、作業者との接触を回避しつつ、ロボット10も作業者とともに惣菜を包装する作業を実行する。すなわち、食品工場において、ロボット10は、作業者と協働して効率よく惣菜の包装作業を実行する。
【0087】
<他の実施形態>
また、上述したように、ロボット10はクレーンのような重機として構成され、作業者と協働して建物の改築工事を行うことなども想定される。より具体的には、作業者が改築工事の作業をしている最中に、ロボット10は、作業者とロボット10との間の距離に応じて算出される仮想外力に基づき、ロボット10の駆動を調整することにより、作業者との接触を回避しつつ、重い資材を配置するなどの作業を実行する。すなわち、ロボット10は、作業者と協働して効率よく建物の改築工事を実行する。
【0088】
なお、本実施形態は、上述した各態様に限定されることはなく、上述した各部を適宜組み合わせて実現されてもよい。また、各態様が奏する効果は、上述したものに限定されることはない。
【符号の説明】
【0089】
10 ロボット
11 駆動部
12 センサ部
13 ポール
14 制御部
14a 空間距離算出部
14b 仮想外力算出部
14c 運転速度抑制部
14d 動作調整部
15 距離センサコントローラ
16 ロボットコントローラ
40 作業者の手