(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】動作制御プログラム、動作制御方法、および動作制御装置
(51)【国際特許分類】
B25J 19/06 20060101AFI20241008BHJP
B25J 13/08 20060101ALI20241008BHJP
【FI】
B25J19/06
B25J13/08 A
(21)【出願番号】P 2020187982
(22)【出願日】2020-11-11
【審査請求日】2023-07-07
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】横田 泰斗
(72)【発明者】
【氏名】鈴木 彼方
【審査官】神山 貴行
(56)【参考文献】
【文献】国際公開第2020/141579(WO,A1)
【文献】特開2019-214084(JP,A)
【文献】特開2020-011326(JP,A)
【文献】特開平05-104465(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
機器の動作環境
の中に複数の三角錐を連ねた場合のそれぞれの三角錐の頂点に対応する位置関係にある複数の点の位置情報と前記複数の点が動作位置となる前記機器の動作状態を表す動作情報とを関連付けた基準情報を記憶し、
前記機器の前記動作環境に含まれる対象物の位置を検知し、
前記機器の前記動作位置と前記対象物の位置とに基づいて、前記機器の動作経路を特定し、
前記特定した前記動作経路上に一定間隔の点を設定し、
前記一定間隔の点のそれぞれにおける動作情報を前記基準情報から線形補間することで算出する処理を、前記一定間隔の点すべてに対して行うことで、前記動作経路に沿って動作するような第1の動作情報を生成し、
前記第1の動作情報に基づいて、前記機器を制御する、
処理をコンピュータに実行させることを特徴とする動作制御プログラム。
【請求項2】
前記動作経路を特定する処理は、
前記複数の点の位置情報と前記対象物の位置とに基づいて、前記複数の点の各々と前記対象物との距離を算出し、
前記距離が閾値以下である前記点の位置情報と、前記機器の動作位置とに基づいて、前記動作経路を特定する、
処理を含むことを特徴とする請求項1に記載の動作制御プログラム。
【請求項3】
前記複数の点は、前記機器の動作範囲内の空間に設定されることを特徴とする請求項1に記載の動作制御プログラム。
【請求項4】
前記機器の動作位置と前記複数の点の位置情報に基づいて、前記複数の点の第1の点に前記機器の特定の部位が位置する時の第1の動作情報を取得し、
前記第1の点の位置情報と前記第1の動作情報とに基づいて、前記基準情報を生成する、
処理を前記コンピュータにさらに実行させることを特徴とする請求項1に記載の動作制御プログラム。
【請求項5】
前記対象物の位置を検知する処理は、前記動作環境を少なくとも1つの方向から撮像した画像における前記対象物の領域を特定する処理を含むことを特徴とする請求項1に記載の動作制御プログラム。
【請求項6】
前記対象物の位置を検知する処理は、前記動作環境から前記対象物が無くなったことを検知する処理を含み、
前記動作環境から前記対象物が無くなったことが検知された場合、前記機器の通常の動作状態を表すものとして予め設定された第2の動作情報に基づいて、前記機器を制御する処理を前記コンピュータにさらに実行させることを特徴とする請求項1に記載の動作制御プログラム。
【請求項7】
コンピュータが、
機器の動作環境
の中に複数の三角錐を連ねた場合のそれぞれの三角錐の頂点に対応する位置関係にある複数の点の位置情報と前記複数の点が動作位置となる前記機器の動作状態を表す動作情報とを関連付けた基準情報を記憶し、
前記機器の前記動作環境に含まれる対象物の位置を検知し、
前記機器の前記動作位置と前記対象物の位置とに基づいて、前記機器の動作経路を特定し、
前記特定した前記動作経路上に一定間隔の点を設定し、
前記一定間隔の点のそれぞれにおける動作情報を前記基準情報から線形補間することで算出する処理を、前記一定間隔の点すべてに対して行うことで、前記動作経路に沿って動作するような第1の動作情報を生成し、
前記第1の動作情報に基づいて、前記機器を制御する、
処理を実行することを特徴とする動作制御方法。
【請求項8】
機器の動作環境
の中に複数の三角錐を連ねた場合のそれぞれの三角錐の頂点に対応する位置関係にある複数の点の位置情報と、前記複数の点が動作位置となる前記機器の動作状態を表す動作情報とを関連付けた基準情報を記憶する記憶部と、
前記機器の前記動作環境に含まれる対象物の位置を検知する検知部と、
前記機器の前記動作位置と前記対象物の位置とに基づいて、前記機器の動作経路を特定する特定部と、
前記特定部によって特定された前記動作経路上に一定間隔の点を設定し、前記一定間隔の点のそれぞれにおける動作情報を前記基準情報から線形補間することで算出する処理を、前記一定間隔の点すべてに対して行うことで、前記動作経路に沿って動作するような第1の動作情報を生成する生成部と、
前記第1の動作情報に基づいて、前記機器を制御する機器制御部と
を有することを特徴とする動作制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動作制御技術に関する。
【背景技術】
【0002】
近年、産業用ロボットアームに動作を教えるティーチング作業を減らすために、ロボットアームの姿勢制御に、深層強化学習や回帰型ニューラルネットワークなどの機械学習技術を適用して自動化する研究が進んでいる。深層強化学習では訓練に大きなコスト(多数の試行)や長い時間がかかる。そのため、コストや訓練時間に制約がある場合は、Recurrent Neural Network(RNN)やLong Short-Term Memory(LSTM)などの回帰型ニューラルネットワークを用いた手法が利用されている。
【0003】
一方、人間との協働を想定したロボットアームの開発が進んでおり、ロボットアームと他の物体との衝突を防ぐ技術が必要となっている。そこで、カメラ画像やセンサーにより、障害物を検知して3次元位置座標(x,y,z)を特定し、ロボットアームと障害物との衝突を防ぐ技術がある。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2018-089728号公報
【文献】特開2020-062701号公報
【文献】米国特許出願公開第2019/0091864号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ロボットアームの軌道は、事前設定した、または機械学習させた動作の姿勢情報により決定されているため、予期せぬ障害物の回避など、事前設定や機械学習されていないイレギュラーな動作を行うことはできない。そのため、障害物検知時は一律にロボットアームの動作を緊急停止せざるを得ず、不必要な再稼働のための作業負担や時間がかかってしまう問題がある。
【0006】
1つの側面では、障害物を回避するロボットアームの軌道を生成できる動作制御プログラム、動作制御方法、および動作制御装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
1つの態様において、動作制御プログラムは、コンピュータに、機器の動作環境に含まれる対象物の位置を検知し、機器の動作位置と対象物の位置とに基づいて、機器の動作経路を特定し、動作環境に含まれる複数の点の位置情報と、複数の点が動作位置となる機器の動作状態を表す動作情報とを関連付けた基準情報と、動作経路とに基づいて、第1の動作情報を生成し、第1の動作情報に基づいて、機器を制御する処理を実行させる。
【発明の効果】
【0008】
1つの側面では、障害物を回避するロボットアームの軌道を生成できる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、動作制御システムの構成例を示す図である。
【
図2】
図2は、6軸ロボットアームの一例を示す図である。
【
図3】
図3は、動作制御装置の構成例を示す図である。
【
図4】
図4は、対象物の領域特定の一例を示す図である。
【
図5】
図5は、ロボットアームの動作範囲と架空の点の一例を示す図である。
【
図6】
図6は、障害物を回避する動作経路特定の一例を示す図である。
【
図7】
図7は、動作経路上の姿勢情報生成の一例を示す図である。
【
図8】
図8は、動作制御処理の流れを示すフローチャートである。
【
図9】
図9は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【0010】
以下に、本実施形態に係る動作制御プログラム、動作制御方法、および動作制御装置の実施例を図面に基づいて詳細に説明する。なお、この実施例により本実施形態が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【0011】
まず、本実施形態を実施するための動作制御システムについて説明する。
図1は、動作制御システムの構成例を示す図である。
図1に示すように、動作制御システム1は、動作制御装置10と、ロボットアーム100およびカメラ装置200とが相互に通信可能に接続されるシステムである。なお、各装置の通信は、通信ケーブルを介して行われてもよいし、イントラネットなどの各種通信網を介して行われてもよい。また、通信方式は、有線および無線のいずれであってもよい。
【0012】
動作制御装置10は、例えば、ロボットアーム100を管理する管理者によって使用されるデスクトップPC(Personal Computer)やノートPC、またはサーバコンピュータなどの情報処理装置である。動作制御装置10は、ロボットアーム100の動作環境において対象物を検知し、対象物を回避するロボットアーム100の動作経路および動作情報を生成し、ロボットアーム100を制御する。なお、ロボットアーム100の動作環境において検知される対象物を、実際にロボットアーム100と衝突する可能性があるか否かに関わらず障害物と表現する場合がある。
【0013】
なお、
図1では、動作制御装置10を1台のコンピュータとして示しているが、複数台のコンピュータで構成される分散型コンピューティングシステムであってもよい。また、動作制御装置10は、クラウドコンピューティングサービスを提供するサービス提供者によって管理されるクラウドサーバ装置であってもよい。
【0014】
ロボットアーム100は、例えば、産業用のロボットアームであり、より具体的には、工場や倉庫などで物品をピックアップ(把持)して移動させるピッキングロボットである。
図2は、6軸ロボットアームの一例を示す図である。
図2の例では、ロボットアーム100は、J1~J6の6つの関節を持ち、各関節のJ1~J6軸を中心に回転動作する。ロボットアーム100は、動作制御装置10によって、時間ごとの姿勢情報、すなわち、各関節の軸の角度の変化が入力されることで、アームの軌道が決定され、所定の動作をするように制御される。なお、ロボットアーム100の軸数は、6軸に限られず、5軸や7軸など、6軸よりも少なくても多くてもよい。
【0015】
カメラ装置200は、ロボットアーム100の動作環境、すなわち、ロボットアーム100が動作し得る範囲を、ロボットアーム100の側面や上部から撮像する。カメラ装置200は、ロボットアーム100の稼働中、リアルタイムで動作環境を撮像し、撮像された画像は、動作制御装置10に送信される。なお、
図1では、カメラ装置200は1台しか示されていないが、複数のカメラ装置200によって、ロボットアーム100の側面および上部などの複数の方向から動作環境が撮像されてもよい。
【0016】
[動作制御装置10の機能構成]
次に、
図1に示した動作制御装置10の機能構成について説明する。
図3は、動作制御装置の構成例を示す図である。
図3に示すように、動作制御装置10は、通信部20、記憶部30、および制御部40を有する。
【0017】
通信部20は、ロボットアーム100やカメラ装置200など、他の装置との間の通信を制御する処理部であり、例えば、USB(Universal Serial Bus)インタフェースや、ネットワークインタフェースカードなどの通信インタフェースである。
【0018】
記憶部30は、各種データや、制御部40が実行するプログラムを記憶する記憶装置の一例であり、例えば、メモリやハードディスクなどである。記憶部30は、位置情報31、姿勢情報32、画像DB33、および機械学習モデルDB34などを記憶する。
【0019】
位置情報31は、ロボットアーム100の動作範囲内の空間に予め設定される複数の架空の点の3次元位置情報を記憶する。架空の点とは、例えば、ロボットアーム100の動作範囲内の空間を埋めるように所定の大きさの三角錐を並べて配置した際の各三角錐の頂点である。
【0020】
姿勢情報32は、ロボットアーム100の動作を制御するための情報であり、ロボットアーム100の各関節の軸の角度を示す情報を記憶する。ロボットアーム100の動作環境において障害物が検知されない場合の通常動作の姿勢情報32は、予め作成されているか、または機械学習モデルによって次の動作の姿勢情報32が決定される。また、姿勢情報32は、例えば、
図2に示す6軸ロボットアームの場合、各関節のJ1~J6軸の各角度をm1~m6によって示す。また、姿勢情報32は、例えば、位置情報31によって示される架空の点の各々にロボットアーム100の先端が位置する時の姿勢情報を記憶する。
【0021】
画像DB33は、カメラ装置200によって撮像されたロボットアーム100の動作環境の撮像画像を記憶する。また、画像DB33は、当該撮像画像を物体検出器に入力することで出力される、障害物の領域を示すマスク画像を記憶する。
【0022】
機械学習モデルDB34は、例えば、ロボットアーム100の動作環境の撮像画像を特徴量とし、障害物の領域を示すマスク画像を正解ラベルとして機械学習により生成された物体検出器を構築するためのモデルパラメータや物体検出器のための訓練データを記憶する。
【0023】
また、機械学習モデルDB34は、例えば、現在の姿勢情報32を特徴量とし、未来の姿勢情報32を正解ラベルとして機械学習により生成されたRNNを構築するためのモデルパラメータや、当該RNNのための訓練データを記憶する。
【0024】
なお、記憶部30に記憶される上記情報はあくまでも一例であり、記憶部30は、上記情報以外にも様々な情報を記憶できる。
【0025】
制御部40は、動作制御装置10全体を司る処理部であり、例えば、プロセッサなどである。制御部40は、検知部41、特定部42、生成部43、および機器制御部44を備える。なお、各処理部は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0026】
検知部41は、ロボットアーム100などの機器の動作環境に含まれる対象物の位置を検知する。より具体的には、検知部41は、ロボットアーム100などの機器の動作環境を機器の側面や上部など少なくとも1つの方向からカメラ装置200を用いて撮像した画像における対象物の領域を特定し、対象物の位置を検知できる。なお、対象物の領域は、例えば、ロボットアーム100の動作環境の撮像画像を特徴量とし、障害物の領域を示すマスク画像を正解ラベルとして機械学習により生成された物体検出器を用いて、出力されるマスク画像から特定できる。
【0027】
また、複数のカメラ装置200によって、機器の側面および上部などの複数の方向から動作環境を撮像でき、この場合、検知部41は、それぞれの方向から撮像した各画像において対象物の領域を特定し、対象物の位置を検知する。なお、複数のカメラ装置200によって、機器の側面および上部などの複数の方向から動作環境を撮像することにより、検知部41は、それぞれの方向から撮像した各画像において対象物の領域を特定して対象物の位置を立体的に検知することもできる。
【0028】
また、検知部41は、ロボットアーム100などの機器の動作環境から対象物が無くなったことを検知する。これにより、対象物を回避するように動作させていた機器の動作を通常の動作に戻すことができる。
【0029】
特定部42は、ロボットアーム100などの機器の動作位置と対象物の位置とに基づいて、機器の動作経路を特定する。より具体的には、例えば、特定部42は、ロボットアーム100の動作範囲内の空間に予め設定される複数の架空の点の位置情報31と、検知部41によって検知された対象物の位置とに基づいて、複数の架空の点の各々と対象物との距離を算出する。そして、特定部42は、算出した距離が所定の閾値以下である架空の点の位置情報によって、対象物を含む所定の領域を経路探索不可の領域として、当該領域を回避するように、機器の動作位置に基づいて機器の動作経路を特定する。
【0030】
生成部43は、複数の架空の点の位置情報31と架空の点が動作位置となる機器の動作状態を表す動作情報である姿勢情報32とを関連付けた基準情報と、特定部42によって特定された動作経路とに基づいて、動作経路に沿って動作するよう姿勢情報32を生成する。これは、例えば、特定された動作経路上に一定間隔で点を設定し、複数の架空の点の位置情報31と架空の点が動作位置となる機器の姿勢情報32とを関連付けた基準情報に基づいて、一定間隔の点が動作位置となる機器の姿勢情報32を補間して算出する。
【0031】
機器制御部44は、生成部43によって生成された姿勢情報32に基づいて、ロボットアーム100などの機器を制御する。これにより、機器は、対象物を回避するように動作できる。また、検知部41によって、機器の動作環境から対象物が無くなったことが検知された場合、機器制御部44は、通常動作の姿勢情報32に戻して機器を制御する。通常動作の姿勢情報32とは、上述したように、予め作成され設定された、または機械学習モデルによって決定された、障害物が検知されない場合の動作をするための姿勢情報32である。
【0032】
[機能詳細]
次に、各機能を
図4~7を用いて詳細に説明する。まず、検知部41による、ロボットアーム100などの機器の動作環境を撮像した画像における対象物の領域特定について説明する。
図4は、対象物の領域特定の一例を示す図である。撮像画像300は、ロボットアーム100の動作環境をロボットアーム100の側面からカメラ装置200で撮像した画像である。撮像画像300には、ロボットアーム100の他、障害物となり得る対象物150が写っている。
【0033】
図4に示す物体検出器50は、ロボットアーム100の動作環境の撮像画像を特徴量とし、対象物の領域を示すマスク画像を正解ラベルとして機械学習により生成されたものある。物体検出器50は、例えば、物体検出アルゴリズムのSSD(Single Shot multibox Detector)を用いて、画像から対象物を検出する。
【0034】
図4では、撮像画像300を物体検出器50に入力することで、出力されるマスク画像310を取得する。マスク画像310は、例えば、対象物150の画素150´と、それ以外の画素を2値化表現したものであり、これにより特定部42は、対象物150を特定することができる。また、
図4に示すように、マスク画像310の解像度を、撮像画像300の解像度より下げることで、マスク画像310に対する動作制御装置10の処理負荷を軽減させることができる。
【0035】
次に、ロボットアーム100などの機器の動作範囲内の空間に予め設定される架空の点について説明する。
図5は、ロボットアームの動作範囲と架空の点の一例を示す図である。
図5は、ロボットアーム100の動作環境を上部から見たイメージを示しており、動作範囲400が、ロボットアーム100が動作し得る範囲を示す。すなわち、動作範囲400内に何らかの物体があると、ロボットアーム100と物体とが衝突する可能性が出てくる。
【0036】
そこで、障害物となり得る物体の位置を検知するなどのために、動作範囲400内の空間を埋めるように、例えば、所定の大きさの三角錐を並べて配置し、各三角錐の頂点である架空の点410を設定して各点の位置情報31を記憶する。なお、
図5の例では、三角錐を上部から見ているため三角形として示しているが、三角錐という用語を用いて説明する。また、手動操作によって、例えば、ロボットアーム100の先端が架空の点410の各々に位置する時のロボットアーム100の姿勢情報32を予め取得し、記憶しておく。ここで取得した姿勢情報32は、後述する、障害物を回避するための動作経路の特定に用いる。また、姿勢情報32の取得の際、ロボットアーム100を、三角錐の辺を渦巻き状に一筆書きするように操作することにより、隣接する架空の点410の姿勢情報32同士の差が大きくなり過ぎないようにすることができる。
【0037】
なお、三角錐の1辺の長さを、例えば、20cm(センチメートル)とすることができるが、1辺の長さがこの長さに限定されるわけではない。また、
図5に示されるような三角錐や架空の点410は、動作制御装置10が空間上の位置を認識するために、あくまでも仮想的に設定されるものであり、物理的に空間上に何かを配置するという意味ではない。また、配置する形は三角錐に限定されず、立方体など別の図形であってもよい。
【0038】
また、
図5の例では、ロボットアーム100の動作環境を上部から見たイメージを示しているが、別の方向、例えば、側面から見た動作範囲400に対し架空の点410を設定してもよい。さらに、例えば、側面および上部などの複数の方向から見た動作範囲400に架空の図形や架空の点410を設定することで、動作制御装置10は、ロボットアーム100などの機器の動作範囲400内の位置を立体的に認識できる。
【0039】
次に、特定部42による、障害物を回避するための動作経路の特定について説明する。
図6は、障害物を回避する動作経路特定の一例を示す図である。特定部42は、ロボットアーム100の動作範囲400内の空間に予め設定される架空の点410の位置情報31と、検知部41によって検知された対象物である障害物420の位置とに基づいて、架空の点410の各々と障害物420との距離を算出する。次に、特定部42は、算出した距離が、例えば、10cmなど、所定の閾値以下である架空の点410の位置情報31によって、障害物420を含む所定の領域を経路探索不可の領域430に定める。経路探索不可の領域430は、
図6の例では、
図6の右側に示されるように、障害物420を含む六角形の領域である。すなわち、
図6の例では、この六角形を構成する三角錐の各頂点が、所定の閾値以下である架空の点410である。そして、特定部42は、RRT(Rapidly-exploring Random Tree)やダイクストラ法などの経路計画手法を用いて、経路探索不可の領域430を回避するように、ロボットアーム100の目標位置への動作経路440を特定する。
【0040】
次に、生成部43による、動作経路上の姿勢情報生成について説明する。
図7は、動作経路上の姿勢情報生成の一例を示す図である。
図7の左側に示すように、生成部43は、特定部42に特定された動作経路440上に、例えば、5cmなど、一定間隔で点450を設定する。
【0041】
そして、生成部43は、ロボットアーム100の先端が点450に位置する時のロボットアーム100の姿勢情報32を、予め取得された、ロボットアーム100の先端が架空の点410の各々に位置する時のロボットアーム100の姿勢情報32から生成する。より具体的に説明するため、点450の各々を
図7の右側に示すように点450-1~3とする。生成部43は、点450-1を含む三角錐の頂点であり、
図7の右側ではA~Cで示される架空の点410に対応する姿勢情報32の各々を、線形補間などの手法で補間することにより、点450-1に対応する姿勢情報32を生成する。同様に、点450-2および点450-3に対応する姿勢情報32も、それぞれの点を含む三角錐の頂点である架空の点410に対応する姿勢情報32を補間することにより生成される。なお、補間の手法は、線形補間に限定されず、それ以外の手法であってよい。また、生成部43が姿勢情報32を生成する際に基準とするロボットアーム100の部位は先端以外の部位であってもよい。
【0042】
[処理の流れ]
次に、動作制御装置10によって実行されるロボットアーム100などの機器の動作制御処理の流れを説明する。
図8は、動作制御処理の流れを示すフローチャートである。
図8に示す動作制御処理は、動作制御装置10が実行主体であり、機器が対象物を回避して動作するために、機器の稼働中、リアルタイムに実行される。そのため、カメラ装置200によって稼働中の機器の動作環境が常時撮像され、撮像された画像は、動作制御装置10に送信される。
【0043】
まず、
図8に示すように、動作制御装置10は、機器の動作環境に含まれる対象物の位置を検知する(ステップS101)。なお、機器の動作環境において対象物が検知されるまで、機器は、対象物が検知されない場合の通常動作の姿勢情報32に基づいて制御されている。また、対象物の位置の検知は、例えば、物体検出器50を用いて、稼働中の機器の動作環境が撮像された撮像画像における対象物の領域を特定することにより行われる。当該撮像画像は、カメラ装置200から送信された最新、すなわち、現在時刻の撮像画像である。また、撮像画像が機器の側面や上部など複数の方向から撮像され複数ある場合、動作制御装置10は、各画像において対象物の領域を特定し、対象物の位置を検知する。
【0044】
次に、動作制御装置10は、機器の動作範囲内の空間に予め設定される架空の点の位置情報31と、ステップS101で検知した対象物の位置とに基づいて、架空の点の各々と対象物との距離を算出する(ステップS102)。
【0045】
次に、動作制御装置10は、ステップS102で算出した距離が所定の閾値以下である架空の点の位置情報31によって対象物を含む所定の領域を経路探索不可の領域に定め、当該領域を回避する、機器の目標位置への動作経路を特定する(ステップS103)。
【0046】
次に、動作制御装置10は、ステップS103で特定した動作経路上に一定間隔で点を設定し、各点に機器の特定の部位が位置する時の姿勢情報を、架空の点に機器の特定の部位が位置する時の姿勢情報から生成する(ステップS104)。各点に対応する姿勢情報は、例えば、動作経路上の各点を含む図形を形成する架空の点に対応する姿勢情報を補間することにより生成される。
【0047】
次に、動作制御装置10は、ステップS104で生成した動作経路上の各点に対応する姿勢情報に基づいて、機器を制御する(ステップS105)。これにより、機器の動作環境において検知された対象物を回避して機器を動作させることできる。なお、ステップS105の実行後、
図8に示す動作制御処理は終了するが、動作制御装置10はさらに、機器の動作環境から対象物が無くなったことを検知し、対象物が検知されない場合の通常動作の姿勢情報に基づいて機器の動作を通常動作に戻すこともできる。
【0048】
[効果]
上述したように、動作制御装置10は、ロボットアーム100などの機器の動作環境に含まれる対象物150の位置を検知し、機器の動作位置と対象物150の位置とに基づいて、機器の動作経路440を特定し、動作環境に含まれる複数の点の位置情報31と、複数の点が動作位置となる機器の動作状態を表す動作情報とを関連付けた基準情報と、動作経路440とに基づいて、第1の動作情報を生成し、第1の動作情報に基づいて、機器を制御する。
【0049】
このように、動作制御装置10は、ロボットアーム100などの機器の動作環境において検知された対象物150の位置と機器の動作位置とに基づいて機器の動作経路440を特定する。そして、特定された動作経路440と、動作範囲400内の空間に予め設定される架空の点410の位置情報31と、架空の点410が動作位置となる機器の動作情報である姿勢情報32とに基づいて、対象物150を回避する姿勢情報32を生成し機器を制御する。これにより、動作制御装置10は、障害物420となり得る対象物150を回避するロボットアーム100の軌道を生成できる。
【0050】
また、動作制御装置10によって実行される、動作経路440を特定する処理は、複数の点の位置情報31と対象物150の位置とに基づいて、複数の点の各々と対象物150との距離を算出し、距離が閾値以下である点の位置情報31と、機器の動作位置とに基づいて、動作経路440を特定する処理を含む。
【0051】
これにより、動作制御装置10は、障害物420となり得る対象物150をより効率的かつ正確に回避するロボットアーム100の軌道を生成できる。
【0052】
また、動作制御装置10によって実行される、第1の動作情報を生成する処理は、動作経路440上に一定間隔の点を設定し、基準情報に基づいて、一定間隔の点が動作位置となる機器の動作状態を表す第1の動作情報を算出する処理を含む。
【0053】
これにより、動作制御装置10は、障害物420となり得る対象物150をより正確に回避するロボットアーム100の軌道を生成できる。
【0054】
また、複数の点は、機器の動作範囲400内の空間に設定される。
【0055】
これにより、動作制御装置10は、障害物420となり得る対象物150をより正確に回避するロボットアーム100の軌道を生成できる。
【0056】
また、複数の点のそれぞれは、複数の三角錐を連ねた場合のそれぞれの三角錐の頂点に対応する位置関係にある。
【0057】
これにより、動作制御装置10は、障害物420となり得る対象物150をより正確に回避するロボットアーム100の軌道を生成できる。
【0058】
また、動作制御装置10はさらに、機器の動作位置と複数の点の位置情報31に基づいて、複数の点の第1の点に機器の特定の部位が位置する時の第1の動作情報を取得し、第1の点の位置情報と第1の動作情報とに基づいて、基準情報を生成する。
【0059】
これにより、動作制御装置10は、障害物420となり得る対象物150をより正確に回避するロボットアーム100の軌道を生成できる。
【0060】
また、動作制御装置10によって実行される、対象物150の位置を検知する処理は、動作環境を少なくとも1つの方向から撮像した画像における対象物150の領域を特定する処理を含む。
【0061】
これにより、動作制御装置10は、障害物420となり得る対象物150をより正確に検知し、回避するロボットアーム100の軌道を生成できる。
【0062】
また、動作制御装置10によって実行される、対象物150の位置を検知する処理は、動作環境から対象物150が無くなったことを検知する処理を含み、動作制御装置10はさらに、動作環境から対象物150が無くなったことが検知された場合、機器の通常の動作状態を表すものとして予め設定された第2の動作情報に基づいて、機器を制御する。
【0063】
これにより、動作制御装置10は、より効率的にロボットアーム100を動作させることができる。
【0064】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更できる。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更できる。
【0065】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成できる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0066】
[ハードウェア]
図9は、ハードウェア構成例を説明する図である。
図9に示すように、動作制御装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、
図9に示した各部は、バスなどで相互に接続される。
【0067】
通信インタフェース10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、
図3に示した機能を動作させるプログラムやDBを記憶する。
【0068】
プロセッサ10dは、
図3に示した各処理部と同様の処理を実行するプログラムをHDD10bなどから読み出してメモリ10cに展開することで、
図3などで説明した各機能を実行するプロセスを動作させるハードウェア回路である。すなわち、このプロセスは、動作制御装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、検知部41、特定部42、生成部43、および機器制御部44などと同様の機能を有するプログラムをHDD10bなどから読み出す。そして、プロセッサ10dは、検知部41、特定部42、生成部43、および機器制御部44などと同様の処理を実行するプロセスを実行する。
【0069】
このように動作制御装置10は、
図3に示した各処理部と同様の処理を実行するプログラムを読み出して実行することで動作制御処理を実行する情報処理装置として動作する。また、動作制御装置10は、媒体読取装置によって記録媒体からプログラムを読み出し、読み出されたプログラムを実行することで上述した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、動作制御装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本実施形態を同様に適用できる。
【0070】
また、
図3に示した各処理部と同様の処理を実行するプログラムは、インターネットなどのネットワークを介して配布できる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行できる。
【0071】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0072】
(付記1)機器の動作環境に含まれる対象物の位置を検知し、
機器の動作位置と対象物の位置とに基づいて、機器の動作経路を特定し、
動作環境に含まれる複数の点の位置情報と、複数の点が動作位置となる機器の動作状態を表す動作情報とを関連付けた基準情報と、動作経路とに基づいて、第1の動作情報を生成し、
第1の動作情報に基づいて、機器を制御する
処理をコンピュータに実行させることを特徴とする動作制御プログラム。
【0073】
(付記2)動作経路を特定する処理は、
複数の点の位置情報と対象物の位置とに基づいて、複数の点の各々と対象物との距離を算出し、
距離が閾値以下である点の位置情報と、機器の動作位置とに基づいて、動作経路を特定する、
処理を含むことを特徴とする付記1に記載の動作制御プログラム。
【0074】
(付記3)第1の動作情報を生成する処理は、
動作経路上に一定間隔の点を設定し、
基準情報に基づいて、一定間隔の点が動作位置となる機器の動作状態を表す第1の動作情報を算出する、
処理を含むことを特徴とする付記1に記載の動作制御プログラム。
【0075】
(付記4)複数の点は、機器の動作範囲内の空間に設定されることを特徴とする付記1に記載の動作制御プログラム。
【0076】
(付記5)複数の点のそれぞれは、複数の三角錐を連ねた場合のそれぞれの三角錐の頂点に対応する位置関係にあることを特徴とする付記1に記載の動作制御プログラム。
【0077】
(付記6)機器の動作位置と複数の点の位置情報に基づいて、複数の点の第1の点に機器の特定の部位が位置する時の第1の動作情報を取得し、第1の点の位置情報と第1の動作情報とに基づいて、基準情報を生成する処理をコンピュータにさらに実行させることを特徴とする付記1に記載の動作制御プログラム。
【0078】
(付記7)対象物の位置を検知する処理は、動作環境を少なくとも1つの方向から撮像した画像における対象物の領域を特定する処理を含むことを特徴とする付記1に記載の動作制御プログラム。
【0079】
(付記8)対象物の位置を検知する処理は、動作環境から対象物が無くなったことを検知する処理を含み、
動作環境から対象物が無くなったことが検知された場合、機器の通常の動作状態を表すものとして予め設定された第2の動作情報に基づいて、機器を制御する処理をコンピュータにさらに実行させることを特徴とする付記1に記載の動作制御プログラム。
【0080】
(付記9)コンピュータが、
機器の動作環境に含まれる対象物の位置を検知し、
機器の動作位置と対象物の位置とに基づいて、機器の動作経路を特定し、
動作環境に含まれる複数の点の位置情報と、複数の点が動作位置となる機器の動作状態を表す動作情報とを関連付けた基準情報と、動作経路とに基づいて、第1の動作情報を生成し、
第1の動作情報に基づいて、機器を制御する
処理を実行することを特徴とする動作制御方法。
【0081】
(付記10)動作経路を特定する処理は、
複数の点の位置情報と対象物の位置とに基づいて、複数の点の各々と対象物との距離を算出し、
距離が閾値以下である点の位置情報と、機器の動作位置とに基づいて、動作経路を特定する、
処理を含むことを特徴とする付記9に記載の動作制御方法。
【0082】
(付記11)第1の動作情報を生成する処理は、
動作経路上に一定間隔の点を設定し、
基準情報に基づいて、一定間隔の点が動作位置となる機器の動作状態を表す第1の動作情報を算出する、
処理を含むことを特徴とする付記9に記載の動作制御方法。
【0083】
(付記12)複数の点は、機器の動作範囲内の空間に設定されることを特徴とする付記9に記載の動作制御方法。
【0084】
(付記13)複数の点のそれぞれは、複数の三角錐を連ねた場合のそれぞれの三角錐の頂点に対応する位置関係にあることを特徴とする付記9に記載の動作制御方法。
【0085】
(付記14)コンピュータが、機器の動作位置と複数の点の位置情報に基づいて、複数の点の第1の点に機器の特定の部位が位置する時の第1の動作情報を取得し、第1の点の位置情報と第1の動作情報とに基づいて、基準情報を生成する処理をさらに実行することを特徴とする付記9に記載の動作制御方法。
【0086】
(付記15)対象物の位置を検知する処理は、動作環境を少なくとも1つの方向から撮像した画像における対象物の領域を特定する処理を含むことを特徴とする付記9に記載の動作制御方法。
【0087】
(付記16)対象物の位置を検知する処理は、動作環境から対象物が無くなったことを検知する処理を含み、コンピュータが、動作環境から対象物が無くなったことが検知された場合、機器の通常の動作状態を表すものとして予め設定された第2の動作情報に基づいて、機器を制御する処理をさらに実行することを特徴とする付記9に記載の動作制御方法。
【0088】
(付記17)機器の動作環境に含まれる対象物の位置を検知する検知部と、
機器の動作位置と対象物の位置とに基づいて、機器の動作経路を特定する特定部と、
動作環境に含まれる複数の点の位置情報と、複数の点が動作位置となる機器の動作状態を表す動作情報とを関連付けた基準情報と、動作経路とに基づいて、第1の動作情報を生成する生成部と、
第1の動作情報に基づいて、機器を制御する機器制御部と
を有することを特徴とする動作制御装置。
【0089】
(付記18)動作経路を特定する処理は、
複数の点の位置情報と対象物の位置とに基づいて、複数の点の各々と対象物との距離を算出し、
距離が閾値以下である点の位置情報と、機器の動作位置とに基づいて、動作経路を特定する、
処理を含むことを特徴とする付記17に記載の動作制御装置。
【0090】
(付記19)第1の動作情報を生成する処理は、
動作経路上に一定間隔の点を設定し、
基準情報に基づいて、一定間隔の点が動作位置となる機器の動作状態を表す第1の動作情報を算出する、
処理を含むことを特徴とする付記17に記載の動作制御装置。
【0091】
(付記20)複数の点は、機器の動作範囲内の空間に設定されることを特徴とする付記17に記載の動作制御装置。
【0092】
(付記21)複数の点のそれぞれは、複数の三角錐を連ねた場合のそれぞれの三角錐の頂点に対応する位置関係にあることを特徴とする付記17に記載の動作制御装置。
【0093】
(付記22)生成部はさらに、機器の動作位置と複数の点の位置情報に基づいて、複数の点の第1の点に機器の特定の部位が位置する時の第1の動作情報を取得し、第1の点の位置情報と第1の動作情報とに基づいて、基準情報を生成することを特徴とする付記17に記載の動作制御装置。
【0094】
(付記23)対象物の位置を検知する処理は、動作環境を少なくとも1つの方向から撮像した画像における対象物の領域を特定する処理を含むことを特徴とする付記17に記載の動作制御装置。
【0095】
(付記24)対象物の位置を検知する処理は、動作環境から対象物が無くなったことを検知する処理を含み、
機器制御部はさらに、動作環境から対象物が無くなったことが検知された場合、機器の通常の動作状態を表すものとして予め設定された第2の動作情報に基づいて、機器を制御することを特徴とする付記17に記載の動作制御装置。
【0096】
(付記25)プロセッサと、
プロセッサに動作可能に接続されたメモリと
を備えた動作制御装置であって、プロセッサは、
機器の動作環境に含まれる対象物の位置を検知する検知部と、
機器の動作位置と対象物の位置とに基づいて、機器の動作経路を特定する特定部と、
動作環境に含まれる複数の点の位置情報と、複数の点が動作位置となる機器の動作状態を表す動作情報とを関連付けた基準情報と、動作経路とに基づいて、第1の動作情報を生成する生成部と、
第1の動作情報に基づいて、機器を制御する機器制御部と
を有することを特徴とする動作制御装置。
【符号の説明】
【0097】
1 動作制御システム
10 動作制御装置
20 通信部
30 記憶部
31 位置情報
32 姿勢情報
33 画像DB
34 機械学習モデルDB
40 制御部
41 検知部
42 特定部
43 生成部
44 機器制御部
50 物体検出器
100 ロボットアーム
150 対象物
200 カメラ装置
300 撮像画像
310 マスク画像
400 動作範囲
410 架空の点
420 障害物
430 経路探索不可の領域
440 動作経路
450 点