JP2018017654A - 検出装置、ロボットおよびロボット制御装置 - Google Patents
検出装置、ロボットおよびロボット制御装置 Download PDFInfo
- Publication number
- JP2018017654A JP2018017654A JP2016149402A JP2016149402A JP2018017654A JP 2018017654 A JP2018017654 A JP 2018017654A JP 2016149402 A JP2016149402 A JP 2016149402A JP 2016149402 A JP2016149402 A JP 2016149402A JP 2018017654 A JP2018017654 A JP 2018017654A
- Authority
- JP
- Japan
- Prior art keywords
- point
- robot
- generation unit
- model generation
- points
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Length Measuring Devices By Optical Means (AREA)
- Manipulator (AREA)
- Image Generation (AREA)
- Image Analysis (AREA)
Abstract
【課題】効率的なモデルを生成することができる検出装置などを提供する。【解決手段】対象物が撮像された撮像画像に基づいて、点群を生成し、生成した前記点群から前記対象物が有する線分の端点の候補を検出し、検出した前記候補に基づいて前記対象物の少なくとも一部のモデルを生成する、検出装置。【選択図】図1
Description
本発明は、検出装置、ロボットおよびロボット制御装置に関する。
3次元の物体の全周モデルを生成することが行われている。そして、3次元の物体の全周モデルを使用して各種の演算を行って、ロボットの動作を制御することが行われている。
特許文献1に記載された3次元形状計測装置では、対象物(被写体)が配置された回転テーブルの回転制御を行い、当該対象物を3次元座標取得装置により異なる視点で複数回測定し、各視点から取得された当該対象物の形状データを合成することで、3次元の物体の全周モデルを生成することが行われる(特許文献1参照。)。
特許文献1に記載された3次元形状計測装置では、対象物(被写体)が配置された回転テーブルの回転制御を行い、当該対象物を3次元座標取得装置により異なる視点で複数回測定し、各視点から取得された当該対象物の形状データを合成することで、3次元の物体の全周モデルを生成することが行われる(特許文献1参照。)。
従来では、精度の良いモデルを使用して各種の演算を行う場合にはデータ容量が大きくなり、一方、データ容量を小さくする場合にはモデルの精度が悪くなり各種の演算の精度が悪くなるといった問題があった。
上記課題の少なくとも一つを解決するために本発明の一態様は、対象物が撮像された撮像画像に基づいて、点群を生成し、生成した前記点群から前記対象物が有する線分の端点の候補を検出し、検出した前記候補に基づいて前記対象物の少なくとも一部のモデルを生成する、検出装置である。
この構成により、検出装置では、対象物が撮像された撮像画像に基づいて、点群を生成し、生成した点群から当該対象物が有する線分の端点の候補を検出し、検出した候補に基づいて当該対象物の少なくとも一部のモデルを生成する。これにより、検出装置では、効率的なモデルを生成することができる。
この構成により、検出装置では、対象物が撮像された撮像画像に基づいて、点群を生成し、生成した点群から当該対象物が有する線分の端点の候補を検出し、検出した候補に基づいて当該対象物の少なくとも一部のモデルを生成する。これにより、検出装置では、効率的なモデルを生成することができる。
本発明の一態様は、検出装置において、前記撮像画像に基づいて、前記点群から平面を検出し、検出した前記平面から輪郭を検出し、検出した前記輪郭から前記線分を検出し、検出した前記線分から前記端点の候補を検出する、構成が用いられてもよい。
この構成により、検出装置では、撮像画像に基づいて、点群から平面を検出し、検出した平面から輪郭を検出し、検出した輪郭から線分を検出し、検出した線分から端点の候補を検出する。これにより、検出装置では、効率的なモデルを生成するために、端点の候補を検出することができる。
この構成により、検出装置では、撮像画像に基づいて、点群から平面を検出し、検出した平面から輪郭を検出し、検出した輪郭から線分を検出し、検出した線分から端点の候補を検出する。これにより、検出装置では、効率的なモデルを生成するために、端点の候補を検出することができる。
本発明の一態様は、検出装置において、前記端点の候補に基づいて所定の形状の図形を生成する、構成が用いられてもよい。
この構成により、検出装置では、端点の候補に基づいて所定の形状の図形を生成する。これにより、検出装置では、効率的なモデルを生成するために、所定の形状の図形を生成することができる。
この構成により、検出装置では、端点の候補に基づいて所定の形状の図形を生成する。これにより、検出装置では、効率的なモデルを生成するために、所定の形状の図形を生成することができる。
本発明の一態様は、上記のような検出装置によって生成された前記モデルに基づいて所定の作業を行う、ロボットである。
この構成により、ロボットでは、検出装置によって生成されたモデルに基づいて所定の作業を行う。これにより、ロボットでは、効率的なモデルに基づいて所定の作業を行うことができる。
この構成により、ロボットでは、検出装置によって生成されたモデルに基づいて所定の作業を行う。これにより、ロボットでは、効率的なモデルに基づいて所定の作業を行うことができる。
本発明の一態様は、上記のようなロボットを制御する、ロボット制御装置である。
この構成により、ロボット制御装置では、ロボットを制御する。これにより、ロボット制御装置では、効率的なモデルに基づいてロボットを制御することができる。
この構成により、ロボット制御装置では、ロボットを制御する。これにより、ロボット制御装置では、効率的なモデルに基づいてロボットを制御することができる。
以上のように、本発明に係る検出装置、ロボットおよびロボット制御装置によれば、検出装置において、対象物が撮像された撮像画像に基づいて、点群を生成し、生成した点群から当該対象物が有する線分の端点の候補を検出し、検出した候補に基づいて当該対象物の少なくとも一部のモデルを生成する。これにより、本発明に係る検出装置、ロボットおよびロボット制御装置では、効率的なモデルを生成あるいは使用することができる。
本発明の実施形態について図面を参照して詳細に説明する。
[ロボットシステム]
図1は、本発明の一実施形態に係るロボットシステム1の概略的な構成例を示す図である。
ロボットシステム1は、ロボット11と、ロボット制御装置12と、ロボット11とロボット制御装置12とを通信可能に接続するケーブル13と、3次元計測装置21と、3次元計測装置21とロボット制御装置12とを通信可能に接続するケーブル22と、作業台51と、対象物52を備える。
なお、3次元計測装置21と、作業台51と、対象物52のうちの1以上は、ロボットシステム1に含まれないもの(つまり、ロボットシステム1の外部にあるもの)であると捉えられてもよい。
また、図1では、ロボット11とロボット制御装置12とを接続する配線の詳細を省略しており、1本のケーブル13のみを示してあるが、任意の配線が用いられてもよい。
図1は、本発明の一実施形態に係るロボットシステム1の概略的な構成例を示す図である。
ロボットシステム1は、ロボット11と、ロボット制御装置12と、ロボット11とロボット制御装置12とを通信可能に接続するケーブル13と、3次元計測装置21と、3次元計測装置21とロボット制御装置12とを通信可能に接続するケーブル22と、作業台51と、対象物52を備える。
なお、3次元計測装置21と、作業台51と、対象物52のうちの1以上は、ロボットシステム1に含まれないもの(つまり、ロボットシステム1の外部にあるもの)であると捉えられてもよい。
また、図1では、ロボット11とロボット制御装置12とを接続する配線の詳細を省略しており、1本のケーブル13のみを示してあるが、任意の配線が用いられてもよい。
ロボット11は、基端(支持台)31と、マニピュレーターM1と、力覚センサー32と、エンドエフェクターE1を備える。
ここで、本実施形態では、ロボット11は、単腕ロボットである。他の構成例として、任意のロボットが用いられてもよく、例えば、2本の腕を有する双腕ロボット(複腕ロボットの一種)、3本以上の腕を有する複腕ロボット、スカラロボット、または、直角座標ロボットが用いられてもよい。直角座標ロボットは、例えば、ガントリロボットである。
ここで、本実施形態では、ロボット11は、単腕ロボットである。他の構成例として、任意のロボットが用いられてもよく、例えば、2本の腕を有する双腕ロボット(複腕ロボットの一種)、3本以上の腕を有する複腕ロボット、スカラロボット、または、直角座標ロボットが用いられてもよい。直角座標ロボットは、例えば、ガントリロボットである。
本実施形態では、ロボット制御装置12は、ロボット11とは別体で設けられている。他の構成例として、ロボット制御装置12は、ロボット11と一体で設けられてもよく、例えば、ロボット11の基端31の内部に設けられてもよい。
また、本実施形態では、ロボット11とロボット制御装置12とが、有線のケーブル13を介して、通信する構成を示す。他の構成例として、ロボット11とロボット制御装置12とが、無線の回線を介して、通信する構成が用いられてもよい。
また、本実施形態では、3次元計測装置21とロボット制御装置12とが、有線のケーブル22を介して、通信する構成を示す。他の構成例として、3次元計測装置21とロボット制御装置12とが、無線の回線を介して、通信する構成が用いられてもよい。
また、本実施形態では、ロボット11とロボット制御装置12とが、有線のケーブル13を介して、通信する構成を示す。他の構成例として、ロボット11とロボット制御装置12とが、無線の回線を介して、通信する構成が用いられてもよい。
また、本実施形態では、3次元計測装置21とロボット制御装置12とが、有線のケーブル22を介して、通信する構成を示す。他の構成例として、3次元計測装置21とロボット制御装置12とが、無線の回線を介して、通信する構成が用いられてもよい。
[作業台および対象物]
本実施形態では、作業台51は、テーブルである。なお、作業台51の代わりに、他のものが用いられてもよく、例えば、床、天井、あるいは、壁などが用いられてもよい。
対象物52は、作業台51の面に載置されている。
ここで、対象物52としては、任意の物体が用いられてもよい。対象物52は、例えば、生体であってもよく、または、生体でなくてもよい。
本実施形態では、作業台51は、テーブルである。なお、作業台51の代わりに、他のものが用いられてもよく、例えば、床、天井、あるいは、壁などが用いられてもよい。
対象物52は、作業台51の面に載置されている。
ここで、対象物52としては、任意の物体が用いられてもよい。対象物52は、例えば、生体であってもよく、または、生体でなくてもよい。
[3次元計測装置]
3次元計測装置21は、3次元計測を行う装置である。
3次元計測装置21としては、例えば、画像を撮像する撮像装置(例えば、カメラ)が用いられる。
本実施形態では、3次元計測装置21は、対象物52について3次元計測を行うことが可能なところに設けられている。なお、他の構成例として、3次元計測装置21は、ロボット11に取り付けられて設けられてもよく、あるいは、ロボット11に内蔵されて設けられてもよい。
3次元計測装置21は、3次元計測を行う装置である。
3次元計測装置21としては、例えば、画像を撮像する撮像装置(例えば、カメラ)が用いられる。
本実施形態では、3次元計測装置21は、対象物52について3次元計測を行うことが可能なところに設けられている。なお、他の構成例として、3次元計測装置21は、ロボット11に取り付けられて設けられてもよく、あるいは、ロボット11に内蔵されて設けられてもよい。
[ロボット]
ロボット11の基端31は、設置されている。
ロボット11のマニピュレーターM1の一端は、基端31と接続されている。ロボット11のマニピュレーターM1の他端と、エンドエフェクターE1とが、これらの間に力覚センサー32を介して、接続されている。
ロボット11のマニピュレーターM1は、6軸垂直多関節型の構造を有しており、6個の関節を備える。それぞれの関節は、アクチュエーター(図示せず)を備える。そして、ロボット11では、6個の関節のそれぞれのアクチュエーターの動作によって、6軸の自由度の動作を行う。他の構成例として、5軸以下の自由度で動作を行うロボット、または、7軸以上の自由度で動作を行うロボットが用いられてもよい。
ロボット11のエンドエフェクターE1は、例えば、ハンドであり、物体を把持することが可能な指部を備える。他の構成例として、ロボット11のエンドエフェクターE1は、任意のものであってもよく、例えば、空気の吸引を利用して物体を吸着するもの、磁力を利用して物体を寄せ付けるものなどであってもよい。
ロボット11の基端31は、設置されている。
ロボット11のマニピュレーターM1の一端は、基端31と接続されている。ロボット11のマニピュレーターM1の他端と、エンドエフェクターE1とが、これらの間に力覚センサー32を介して、接続されている。
ロボット11のマニピュレーターM1は、6軸垂直多関節型の構造を有しており、6個の関節を備える。それぞれの関節は、アクチュエーター(図示せず)を備える。そして、ロボット11では、6個の関節のそれぞれのアクチュエーターの動作によって、6軸の自由度の動作を行う。他の構成例として、5軸以下の自由度で動作を行うロボット、または、7軸以上の自由度で動作を行うロボットが用いられてもよい。
ロボット11のエンドエフェクターE1は、例えば、ハンドであり、物体を把持することが可能な指部を備える。他の構成例として、ロボット11のエンドエフェクターE1は、任意のものであってもよく、例えば、空気の吸引を利用して物体を吸着するもの、磁力を利用して物体を寄せ付けるものなどであってもよい。
[ロボット制御装置]
ロボット制御装置12は、ロボット11を制御する。例えば、ロボット制御装置12は、マニピュレーターM1が有するそれぞれのアクチュエーター、力覚センサー32およびエンドエフェクターE1のそれぞれを制御する。
また、ロボット制御装置12は、3次元計測装置21を制御する。
ロボット制御装置12は、力覚センサー32から、検出結果の情報を受信する。
また、ロボット制御装置12は、3次元計測装置21から、3次元計測の結果の情報を受信する。
ロボット制御装置12は、力覚センサー32および3次元計測装置21のそれぞれから受信された情報のうちの1以上に基づいて、ロボット11を制御してもよい。
ロボット制御装置12は、ロボット11を制御する。例えば、ロボット制御装置12は、マニピュレーターM1が有するそれぞれのアクチュエーター、力覚センサー32およびエンドエフェクターE1のそれぞれを制御する。
また、ロボット制御装置12は、3次元計測装置21を制御する。
ロボット制御装置12は、力覚センサー32から、検出結果の情報を受信する。
また、ロボット制御装置12は、3次元計測装置21から、3次元計測の結果の情報を受信する。
ロボット制御装置12は、力覚センサー32および3次元計測装置21のそれぞれから受信された情報のうちの1以上に基づいて、ロボット11を制御してもよい。
図2は、本発明の一実施形態に係るロボット制御装置12の概略的な構成例を示す図である。
ロボット制御装置12は、入力部111と、出力部112と、記憶部113と、制御部114を備える。
制御部114は、情報取得部131と、モデル生成部132と、ロボット制御部133を備える。
ロボット制御装置12は、入力部111と、出力部112と、記憶部113と、制御部114を備える。
制御部114は、情報取得部131と、モデル生成部132と、ロボット制御部133を備える。
入力部111は、外部から情報を入力する。一例として、入力部111は、力覚センサー32および3次元計測装置21のそれぞれから送信される情報を入力する。他の例として、入力部111は、キーボードあるいはマウスなどの操作部を備え、当該操作部に対してユーザー(人)により行われる操作の内容に応じた情報を入力してもよい。
本実施形態では、入力部111は、ケーブル13を介して力覚センサー32と通信し、ケーブル22を介して3次元計測装置21と通信する。
本実施形態では、入力部111は、ケーブル13を介して力覚センサー32と通信し、ケーブル22を介して3次元計測装置21と通信する。
出力部112は、外部に情報を出力する。一例として、出力部112は、力覚センサー32および3次元計測装置21のそれぞれに対して情報を出力(送信)する。他の例として、出力部112は、表示部により情報を表示出力してもよい。当該表示部は、例えば、画面を有するディスプレイ装置であり、当該画面に情報を表示出力する。当該表示部は、ロボット制御装置12の外部に設けられてもよく、あるいは、ロボット制御装置12の内部に設けられてもよい。他の例として、出力部112は、他の態様で情報を出力してもよく、例えば、音(音声を含む。)により情報を出力してもよい。
本実施形態では、出力部112は、ケーブル13を介して力覚センサー32と通信し、ケーブル22を介して3次元計測装置21と通信する。
本実施形態では、出力部112は、ケーブル13を介して力覚センサー32と通信し、ケーブル22を介して3次元計測装置21と通信する。
記憶部113は、情報を記憶する。一例として、記憶部113は、制御部114により使用される制御プログラムおよび各種のパラメーターの情報を記憶する。他の例として、記憶部113は、任意の情報を記憶してもよく、例えば、ロボット11を制御する際に使用される画像などの情報を記憶してもよい。
制御部114は、ロボット制御装置12において各種の制御を行う。制御部114は、例えば、記憶部113に記憶された制御プログラムおよび各種のパラメーターの情報に基づいて、各種の制御を行う。
情報取得部131は、入力部111により入力される情報を取得する。
モデル生成部132は、モデルを生成する処理を行う。
ロボット制御部133は、ロボット11の動作を制御する。具体的には、ロボット制御部133は、ケーブル13を介してマニピュレーターM1と通信することで、マニピュレーターM1の動作を制御する。また、ロボット制御部133は、ケーブル13を介してエンドエフェクターE1と通信することで、エンドエフェクターE1の動作を制御する。
情報取得部131は、入力部111により入力される情報を取得する。
モデル生成部132は、モデルを生成する処理を行う。
ロボット制御部133は、ロボット11の動作を制御する。具体的には、ロボット制御部133は、ケーブル13を介してマニピュレーターM1と通信することで、マニピュレーターM1の動作を制御する。また、ロボット制御部133は、ケーブル13を介してエンドエフェクターE1と通信することで、エンドエフェクターE1の動作を制御する。
[ロボットシステムにおいて行われる処理]
図3〜図9に示されるフローチャートおよび図10〜図16を参照して、ロボットシステム1において行われる処理の例を示す。
本実施形態では、3次元座標を用いて各処理が行われる。例えば、各点には、3次元座標の情報が対応付けられて、各種の処理に使用される。3次元座標の座標系としては、任意の座標系が用いられてもよい。
図3〜図9に示されるフローチャートおよび図10〜図16を参照して、ロボットシステム1において行われる処理の例を示す。
本実施形態では、3次元座標を用いて各処理が行われる。例えば、各点には、3次元座標の情報が対応付けられて、各種の処理に使用される。3次元座標の座標系としては、任意の座標系が用いられてもよい。
なお、本実施形態では、これらの処理の説明において、「端点」と呼ぶ点は、「端点の候補」を表わしてもよい。つまり、本実施形態では、これらの処理において検出(特定)された端点(ここでは、端点の候補)のすべてが実際に端点とみなされて使用されてもよく、または、これらの処理において検出(特定)された端点(ここでは、端点の候補)の一部が実際に端点とみなされて使用されてもよい。このため、検出(特定)された端点(ここでは、端点の候補)のすべてが実際に端点とみなされる場合には、端点の候補と端点とは実質的に同じ点を表すことになる。
<全体の処理>
図3は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる全体の処理の一例を示す図である。
図3の例では、ロボット制御装置12は、ステップS1の処理からステップS10の処理まで順番に行う。
図3は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる全体の処理の一例を示す図である。
図3の例では、ロボット制御装置12は、ステップS1の処理からステップS10の処理まで順番に行う。
(ステップS1)
情報取得部131は、対象物52について、3次元計測装置21により行われた3次元計測の結果の情報を取得する。本実施形態では、当該情報は、複数の異なる角度で撮像された画像(撮像画像)の情報を含み、複数の異なる角度で検出された3次元点群の情報を含む。3次元点群は、3次元座標を有する複数の点の集合(群)である。
ここで、本実施形態では、作業台51の面と接する対象物52の面については3次元計測が行われないが、他の構成例として、作業台51の面を透明な面とする構成、あるいは、棒状の支持部などにより対象物52を支持する構成とすることで、対象物52のすべての面(または、ほぼすべての面)について3次元計測が行われてもよい。
情報取得部131は、対象物52について、3次元計測装置21により行われた3次元計測の結果の情報を取得する。本実施形態では、当該情報は、複数の異なる角度で撮像された画像(撮像画像)の情報を含み、複数の異なる角度で検出された3次元点群の情報を含む。3次元点群は、3次元座標を有する複数の点の集合(群)である。
ここで、本実施形態では、作業台51の面と接する対象物52の面については3次元計測が行われないが、他の構成例として、作業台51の面を透明な面とする構成、あるいは、棒状の支持部などにより対象物52を支持する構成とすることで、対象物52のすべての面(または、ほぼすべての面)について3次元計測が行われてもよい。
(ステップS2)
モデル生成部132は、情報取得部131により取得された3次元点群の情報に基づいて、対象物52について、3次元点群を繋ぎ合わせることで、3次元の全周の形状のデータ(全周データ)を作成する。
ここで、全周データとしては、例えば、公知の手法で得られた全周データが用いられてもよく、または、他の手法で得られた全周データが用いられてもよい。
モデル生成部132は、情報取得部131により取得された3次元点群の情報に基づいて、対象物52について、3次元点群を繋ぎ合わせることで、3次元の全周の形状のデータ(全周データ)を作成する。
ここで、全周データとしては、例えば、公知の手法で得られた全周データが用いられてもよく、または、他の手法で得られた全周データが用いられてもよい。
(ステップS3)
モデル生成部132は、作成された全周データに含まれる平面を推定(検出)する。
(ステップS4)
モデル生成部132は、3次元点群に関する角度に基づいて、推定された平面の境界線(輪郭)を推定(検出)する。
(ステップS5)
モデル生成部132は、推定された境界線(輪郭)を直線で近似する。
(ステップS6)
モデル生成部132は、近似された直線について、線分の端点を残し、線分の端点以外の点を削除する。
(ステップS7)
モデル生成部132は、残された端点について集約する。本実施形態では、モデル生成部132は、残された複数の端点について、互いの距離が最も短く集約可能な2以上の点を1点に集約する。
(ステップS8)
モデル生成部132は、集約後の端点について、多角形を構成する。本実施形態では、モデル生成部132は、集約後の端点について、線分の端点を順番に結び合わせて、閉じた多角形を構成する。例えば、モデル生成部132は、線分の一方の端点を結び合わせた後に他方の端点を結び合わせることで、閉じた多角形を構成する。
(ステップS9)
モデル生成部132は、構成された多角形を三角形に分割する。
モデル生成部132は、作成された全周データに含まれる平面を推定(検出)する。
(ステップS4)
モデル生成部132は、3次元点群に関する角度に基づいて、推定された平面の境界線(輪郭)を推定(検出)する。
(ステップS5)
モデル生成部132は、推定された境界線(輪郭)を直線で近似する。
(ステップS6)
モデル生成部132は、近似された直線について、線分の端点を残し、線分の端点以外の点を削除する。
(ステップS7)
モデル生成部132は、残された端点について集約する。本実施形態では、モデル生成部132は、残された複数の端点について、互いの距離が最も短く集約可能な2以上の点を1点に集約する。
(ステップS8)
モデル生成部132は、集約後の端点について、多角形を構成する。本実施形態では、モデル生成部132は、集約後の端点について、線分の端点を順番に結び合わせて、閉じた多角形を構成する。例えば、モデル生成部132は、線分の一方の端点を結び合わせた後に他方の端点を結び合わせることで、閉じた多角形を構成する。
(ステップS9)
モデル生成部132は、構成された多角形を三角形に分割する。
以上により、モデル生成部132は、3次元の対象物52の全周モデルを生成する。
(ステップS10)
ロボット制御部133は、生成された3次元の対象物52の全周モデルに基づいて、ロボット11の動作を制御する。
(ステップS10)
ロボット制御部133は、生成された3次元の対象物52の全周モデルに基づいて、ロボット11の動作を制御する。
以下で、個別の処理を詳しく説明する。
<平面の推定の処理>
図4は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる平面の推定の処理(図3に示されるステップS3の処理)の一例を示す図である。
(ステップS21)
モデル生成部132は、取得された3次元点群を処理対象として、当該3次元点群のなかから、3個の点をランダムに選択する。そして、モデル生成部132は、ステップS22の処理へ移行する。
なお、他の構成例として、モデル生成部132は、取得された3次元点群の代わりに、当該3次元点群のうちの一部の3次元点群を処理対象としてもよい。
<平面の推定の処理>
図4は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる平面の推定の処理(図3に示されるステップS3の処理)の一例を示す図である。
(ステップS21)
モデル生成部132は、取得された3次元点群を処理対象として、当該3次元点群のなかから、3個の点をランダムに選択する。そして、モデル生成部132は、ステップS22の処理へ移行する。
なお、他の構成例として、モデル生成部132は、取得された3次元点群の代わりに、当該3次元点群のうちの一部の3次元点群を処理対象としてもよい。
(ステップS22)
モデル生成部132は、選択された3個の点を使用して、平面に関する所定のパラメーター(以下、「平面パラメーター」ともいう。)を計算する。そして、モデル生成部132は、ステップS23の処理へ移行する。
本実施形態では、モデル生成部132は、選択された3個の点の3次元座標を使用して、式(1)に示される平面の方程式における平面パラメーターa、b、c、dを計算する。ここで、本実施形態では、xyz直交座標系を使用しており、式(1)においてx、y、zはそれぞれの軸の座標値を表す。モデル生成部132は、選択された3個の点の3次元座標(x、y、z)が式(1)を満たす場合における平面パラメーターa、b、c、dを計算する。
モデル生成部132は、選択された3個の点を使用して、平面に関する所定のパラメーター(以下、「平面パラメーター」ともいう。)を計算する。そして、モデル生成部132は、ステップS23の処理へ移行する。
本実施形態では、モデル生成部132は、選択された3個の点の3次元座標を使用して、式(1)に示される平面の方程式における平面パラメーターa、b、c、dを計算する。ここで、本実施形態では、xyz直交座標系を使用しており、式(1)においてx、y、zはそれぞれの軸の座標値を表す。モデル生成部132は、選択された3個の点の3次元座標(x、y、z)が式(1)を満たす場合における平面パラメーターa、b、c、dを計算する。
[数1]
ax+by+cz=d ・・(1)
ax+by+cz=d ・・(1)
(ステップS23)
モデル生成部132は、計算された平面パラメーターa、b、c、dにより表される平面のインライアに含まれる点の数をスコア値として計算する。そして、モデル生成部132は、ステップS24の処理へ移行する。なお、点の数の代わりに、点の密度などが用いられてもよい。
ここで、インライアは、平面に所定の厚みを持たせた領域を表す。当該所定の厚みとしては、任意の値が用いられてもよく、例えば、3次元計測装置21の計測誤差に基づいて設定されてもよい。
モデル生成部132は、計算された平面パラメーターa、b、c、dにより表される平面のインライアに含まれる点の数をスコア値として計算する。そして、モデル生成部132は、ステップS24の処理へ移行する。なお、点の数の代わりに、点の密度などが用いられてもよい。
ここで、インライアは、平面に所定の厚みを持たせた領域を表す。当該所定の厚みとしては、任意の値が用いられてもよく、例えば、3次元計測装置21の計測誤差に基づいて設定されてもよい。
(ステップS24)
モデル生成部132は、処理対象としている3次元点群について、すべての3個の点の組み合わせについてスコア値を計算したか否かを判定する。
この判定の結果、モデル生成部132は、すべての3個の点の組み合わせについてスコア値を計算していないと判定した場合には(ステップS24:NO)、ステップS21の処理へ移行する。この場合、ステップS21の処理では、モデル生成部132は、未だに選択されていない組み合わせに係る3個の点(個々の点については既に選択されていてもよい。)を選択する。
一方、この判定の結果、モデル生成部132は、すべての3個の点の組み合わせについてスコア値を計算したと判定した場合には(ステップS24:YES)、ステップS25の処理へ移行する。
モデル生成部132は、処理対象としている3次元点群について、すべての3個の点の組み合わせについてスコア値を計算したか否かを判定する。
この判定の結果、モデル生成部132は、すべての3個の点の組み合わせについてスコア値を計算していないと判定した場合には(ステップS24:NO)、ステップS21の処理へ移行する。この場合、ステップS21の処理では、モデル生成部132は、未だに選択されていない組み合わせに係る3個の点(個々の点については既に選択されていてもよい。)を選択する。
一方、この判定の結果、モデル生成部132は、すべての3個の点の組み合わせについてスコア値を計算したと判定した場合には(ステップS24:YES)、ステップS25の処理へ移行する。
(ステップS25)
モデル生成部132は、スコア値が最大となったときにおける平面のインライアに含まれる点を、同一の平面上の点とみなして、当該点の情報を平面リストの情報として記憶部113に記憶し、当該点を処理対象としている3次元点群から削除する。そして、モデル生成部132は、ステップS26の処理へ移行する。この処理により、処理対象としている3次元点群は、当該点が削除されたものに更新される。当該点の情報としては、例えば、それぞれの点の3次元座標の情報が用いられる。当該平面リストの情報としては、例えば、同一の平面上の点ごとに分類した点群(つまり、それぞれの平面ごとに分類した点群)のリストの情報が用いられる。
モデル生成部132は、スコア値が最大となったときにおける平面のインライアに含まれる点を、同一の平面上の点とみなして、当該点の情報を平面リストの情報として記憶部113に記憶し、当該点を処理対象としている3次元点群から削除する。そして、モデル生成部132は、ステップS26の処理へ移行する。この処理により、処理対象としている3次元点群は、当該点が削除されたものに更新される。当該点の情報としては、例えば、それぞれの点の3次元座標の情報が用いられる。当該平面リストの情報としては、例えば、同一の平面上の点ごとに分類した点群(つまり、それぞれの平面ごとに分類した点群)のリストの情報が用いられる。
(ステップS26)
モデル生成部132は、更新後における処理対象としている3次元点群に含まれる点の数が所定の閾値以下であるか否かを判定する。
この判定の結果、モデル生成部132は、更新後における処理対象としている3次元点群に含まれる点の数が所定の閾値を超えると判定した場合(ステップS26:NO)、ステップS21の処理へ移行する。この場合、ステップS21の処理では、モデル生成部132は、未だに選択されていない組み合わせに係る3個の点(個々の点については既に選択されていてもよい。)を選択する。
一方、この判定の結果、モデル生成部132は、更新後における処理対象としている3次元点群に含まれる点の数が所定の閾値以下であると判定した場合(ステップS26:YES)、本フローの処理を終了する。
ここで、当該閾値としては、任意の値が用いられてもよく、例えば、平面を構成することが可能な最少の点の数よりも1つ少ない数が用いられてもよい。また、当該閾値としては、例えば、あらかじめ設定されてもよく、または、ユーザーにより変更可能に設定されてもよい。
モデル生成部132は、更新後における処理対象としている3次元点群に含まれる点の数が所定の閾値以下であるか否かを判定する。
この判定の結果、モデル生成部132は、更新後における処理対象としている3次元点群に含まれる点の数が所定の閾値を超えると判定した場合(ステップS26:NO)、ステップS21の処理へ移行する。この場合、ステップS21の処理では、モデル生成部132は、未だに選択されていない組み合わせに係る3個の点(個々の点については既に選択されていてもよい。)を選択する。
一方、この判定の結果、モデル生成部132は、更新後における処理対象としている3次元点群に含まれる点の数が所定の閾値以下であると判定した場合(ステップS26:YES)、本フローの処理を終了する。
ここで、当該閾値としては、任意の値が用いられてもよく、例えば、平面を構成することが可能な最少の点の数よりも1つ少ない数が用いられてもよい。また、当該閾値としては、例えば、あらかじめ設定されてもよく、または、ユーザーにより変更可能に設定されてもよい。
図10は、本発明の一実施形態に係る推定された平面群201の一例を示す図である。
当該平面群201は、複数の平面から構成されている。
図10の例では、これら複数の平面のうちの1個の平面221のみに符号を付してある。
当該平面群201は、複数の平面から構成されている。
図10の例では、これら複数の平面のうちの1個の平面221のみに符号を付してある。
<平面の境界線の推定の処理>
図5は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる平面の境界線(輪郭)の推定の処理(図3に示されるステップS4の処理)の一例を示す図である。
本処理では、モデル生成部132は、図4に示される処理(ステップS3の処理)においてインライアに含まれていた点をすべて、当該インライアの元となった平面に移動させた3次元点群を、処理対象とする。
図5は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる平面の境界線(輪郭)の推定の処理(図3に示されるステップS4の処理)の一例を示す図である。
本処理では、モデル生成部132は、図4に示される処理(ステップS3の処理)においてインライアに含まれていた点をすべて、当該インライアの元となった平面に移動させた3次元点群を、処理対象とする。
(ステップS41)
初期(本フローの最初)においては、モデル生成部132は、処理対象としている3次元点群のなかから、1個の点を注目点として選択する。この選択は、例えば、ランダムに行われてもよい。
続いて、モデル生成部132は、選択された注目点を中心とする所定の半径を有する円の内部に含まれる点のそれぞれについて、当該点と当該注目点とを結ぶ線分を引く。そして、モデル生成部132は、ステップS42の処理へ移行する。ここで、モデル生成部132は、必ずしも当該線分を実際に引く必要は無く、情報処理において当該線分を把握できればよい。
なお、当該所定の半径としては、任意の値が用いられてもよい。
初期(本フローの最初)においては、モデル生成部132は、処理対象としている3次元点群のなかから、1個の点を注目点として選択する。この選択は、例えば、ランダムに行われてもよい。
続いて、モデル生成部132は、選択された注目点を中心とする所定の半径を有する円の内部に含まれる点のそれぞれについて、当該点と当該注目点とを結ぶ線分を引く。そして、モデル生成部132は、ステップS42の処理へ移行する。ここで、モデル生成部132は、必ずしも当該線分を実際に引く必要は無く、情報処理において当該線分を把握できればよい。
なお、当該所定の半径としては、任意の値が用いられてもよい。
(ステップS42)
モデル生成部132は、注目点に対して引かれた線分のそれぞれに対して、右回り(いわゆる時計回り)に、ラベルを付与する。そして、モデル生成部132は、ステップS43の処理へ移行する。
ここで、本実施形態では、右回りにラベルを付与するが、他の構成例として、左回りにラベルを付与してもよく、あるいは、他の順序でラベルを付与してもよい。
また、ラベルとしては、任意のものが用いられてもよく、例えば、連続的な番号の情報が用いられてもよい。
モデル生成部132は、注目点に対して引かれた線分のそれぞれに対して、右回り(いわゆる時計回り)に、ラベルを付与する。そして、モデル生成部132は、ステップS43の処理へ移行する。
ここで、本実施形態では、右回りにラベルを付与するが、他の構成例として、左回りにラベルを付与してもよく、あるいは、他の順序でラベルを付与してもよい。
また、ラベルとしては、任意のものが用いられてもよく、例えば、連続的な番号の情報が用いられてもよい。
(ステップS43)
モデル生成部132は、注目点に対して引かれた線分について、注目点を中心として回転方向で隣り合う2個の線分がなす角度を計算する。そして、モデル生成部132は、ステップS44の処理へ移行する。
ここで、本実施形態では、注目点に対して引かれた線分の数が0個または1個である場合には、当該角度を360度とみなす。
モデル生成部132は、注目点に対して引かれた線分について、注目点を中心として回転方向で隣り合う2個の線分がなす角度を計算する。そして、モデル生成部132は、ステップS44の処理へ移行する。
ここで、本実施形態では、注目点に対して引かれた線分の数が0個または1個である場合には、当該角度を360度とみなす。
(ステップS44)
モデル生成部132は、計算された角度のそれぞれが所定の閾値以上であるか否かを判定することで、計算されたすべての角度のうちで少なくとも1個の角度が当該所定の閾値以上であるか否かを判定する。
この判定の結果、モデル生成部132は、計算されたすべての角度のうちで少なくとも1個の角度が当該所定の閾値以上であると判定した場合(ステップS44:YES)、ステップS45の処理へ移行する。
一方、この判定の結果、モデル生成部132は、計算されたすべての角度が当該所定の閾値未満であると判定した場合(ステップS44:NO)、ステップS46の処理へ移行する。
ここで、当該所定の閾値としては、任意の値が用いられてもよく、例えば、対象物52の種類あるいは形状などに応じた値が用いられてもよい。
モデル生成部132は、計算された角度のそれぞれが所定の閾値以上であるか否かを判定することで、計算されたすべての角度のうちで少なくとも1個の角度が当該所定の閾値以上であるか否かを判定する。
この判定の結果、モデル生成部132は、計算されたすべての角度のうちで少なくとも1個の角度が当該所定の閾値以上であると判定した場合(ステップS44:YES)、ステップS45の処理へ移行する。
一方、この判定の結果、モデル生成部132は、計算されたすべての角度が当該所定の閾値未満であると判定した場合(ステップS44:NO)、ステップS46の処理へ移行する。
ここで、当該所定の閾値としては、任意の値が用いられてもよく、例えば、対象物52の種類あるいは形状などに応じた値が用いられてもよい。
(ステップS45)
モデル生成部132は、注目点を境界線上の点とみなして、当該注目点の情報を境界点リストの情報として記憶部113に記憶する。そして、モデル生成部132は、ステップS46の処理へ移行する。当該注目点の情報としては、例えば、それぞれの注目点の3次元座標の情報が用いられる。当該境界点リストの情報としては、境界線上の点のリストの情報が用いられる。
モデル生成部132は、注目点を境界線上の点とみなして、当該注目点の情報を境界点リストの情報として記憶部113に記憶する。そして、モデル生成部132は、ステップS46の処理へ移行する。当該注目点の情報としては、例えば、それぞれの注目点の3次元座標の情報が用いられる。当該境界点リストの情報としては、境界線上の点のリストの情報が用いられる。
(ステップS46)
モデル生成部132は、処理対象としている3次元点群に含まれるすべての点について、当該点を注目点として検査(チェック)を行ったか否かを判定する。
この判定の結果、モデル生成部132は、処理対象としている3次元点群に含まれるすべての点についてチェックが完了していないと判定した場合(ステップS46:NO)、ステップS47の処理へ移行する。
一方、この判定の結果、モデル生成部132は、処理対象としている3次元点群に含まれるすべての点について、チェックが完了したと判定した場合(ステップS46:YES)、本フローの処理を終了する。
モデル生成部132は、処理対象としている3次元点群に含まれるすべての点について、当該点を注目点として検査(チェック)を行ったか否かを判定する。
この判定の結果、モデル生成部132は、処理対象としている3次元点群に含まれるすべての点についてチェックが完了していないと判定した場合(ステップS46:NO)、ステップS47の処理へ移行する。
一方、この判定の結果、モデル生成部132は、処理対象としている3次元点群に含まれるすべての点について、チェックが完了したと判定した場合(ステップS46:YES)、本フローの処理を終了する。
(ステップS47)
モデル生成部132は、注目点を未だに選択されていない点に更新(変更)する。そして、モデル生成部132は、ステップS41の処理へ移行して、更新後の注目点についてチェックを行う。
モデル生成部132は、注目点を未だに選択されていない点に更新(変更)する。そして、モデル生成部132は、ステップS41の処理へ移行して、更新後の注目点についてチェックを行う。
図11は、本発明の一実施形態に係る注目点251の周囲の様子の一例を示す図である。
図11には、注目点251と、その周囲に位置する複数の点の一例を示してある。また、注目点251を中心とする所定の半径を有する円の内部に含まれる点261〜264と、注目点251に対して引かれた線分について当該注目点251を中心として回転方向で隣り合う2個の線分がなす角度θ1〜θ4を示してある。
図11の例では、角度θ1〜θ4のうちで最大の角度θ4が所定の閾値以上であり、注目点251が境界線上の点であるとみなされる。
図11には、注目点251と、その周囲に位置する複数の点の一例を示してある。また、注目点251を中心とする所定の半径を有する円の内部に含まれる点261〜264と、注目点251に対して引かれた線分について当該注目点251を中心として回転方向で隣り合う2個の線分がなす角度θ1〜θ4を示してある。
図11の例では、角度θ1〜θ4のうちで最大の角度θ4が所定の閾値以上であり、注目点251が境界線上の点であるとみなされる。
図12は、本発明の一実施形態に係る推定された境界線群301(輪郭群)の一例を示す図である。
当該境界線群301は、取得された境界点リストに含まれる点(境界点)について、隣り合う点を結んで構成される境界線の群である。
図12の例では、境界線321および境界線322が構成されている。
当該境界線群301は、取得された境界点リストに含まれる点(境界点)について、隣り合う点を結んで構成される境界線の群である。
図12の例では、境界線321および境界線322が構成されている。
<境界線の直線近似の処理>
図6は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる境界線(輪郭)の直線近似の処理(図3に示されるステップS5の処理)の一例を示す図である。
(ステップS61)
モデル生成部132は、取得された境界点リストに含まれる点の群(点群)を処理対象として、当該点群のなかから、2個の点をランダムに選択する。そして、モデル生成部132は、ステップS62の処理へ移行する。
図6は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる境界線(輪郭)の直線近似の処理(図3に示されるステップS5の処理)の一例を示す図である。
(ステップS61)
モデル生成部132は、取得された境界点リストに含まれる点の群(点群)を処理対象として、当該点群のなかから、2個の点をランダムに選択する。そして、モデル生成部132は、ステップS62の処理へ移行する。
(ステップS62)
モデル生成部132は、選択された2個の点を使用して、直線に関する所定のパラメーター(以下、「直線パラメーター」ともいう。)を計算する。そして、モデル生成部132は、ステップS63の処理へ移行する。
本実施形態では、モデル生成部132は、選択された2個の点の3次元座標を使用して、直線の方程式における平面パラメーターを計算する。ここで、本実施形態では、xyz直交座標系を使用している。
モデル生成部132は、選択された2個の点を使用して、直線に関する所定のパラメーター(以下、「直線パラメーター」ともいう。)を計算する。そして、モデル生成部132は、ステップS63の処理へ移行する。
本実施形態では、モデル生成部132は、選択された2個の点の3次元座標を使用して、直線の方程式における平面パラメーターを計算する。ここで、本実施形態では、xyz直交座標系を使用している。
(ステップS63)
モデル生成部132は、計算された直線パラメーターにより表される直線のインライアに含まれる点の数をスコア値として計算する。そして、モデル生成部132は、ステップS64の処理へ移行する。なお、点の数の代わりに、点の密度などが用いられてもよい。
ここで、インライアは、直線に所定の厚みを持たせた領域を表す。当該所定の厚みとしては、任意の値が用いられてもよく、例えば、3次元計測装置21の計測誤差に基づいて設定されてもよい。
モデル生成部132は、計算された直線パラメーターにより表される直線のインライアに含まれる点の数をスコア値として計算する。そして、モデル生成部132は、ステップS64の処理へ移行する。なお、点の数の代わりに、点の密度などが用いられてもよい。
ここで、インライアは、直線に所定の厚みを持たせた領域を表す。当該所定の厚みとしては、任意の値が用いられてもよく、例えば、3次元計測装置21の計測誤差に基づいて設定されてもよい。
(ステップS64)
モデル生成部132は、処理対象としている点群について、すべての2個の点の組み合わせについてスコア値を計算したか否かを判定する。
この判定の結果、モデル生成部132は、すべての2個の点の組み合わせについてスコア値を計算していないと判定した場合には(ステップS64:NO)、ステップS61の処理へ移行する。この場合、ステップS61の処理では、モデル生成部132は、未だに選択されていない組み合わせに係る2個の点(個々の点については既に選択されていてもよい。)を選択する。
一方、この判定の結果、モデル生成部132は、すべての2個の点の組み合わせについてスコア値を計算したと判定した場合には(ステップS64:YES)、ステップS65の処理へ移行する。
モデル生成部132は、処理対象としている点群について、すべての2個の点の組み合わせについてスコア値を計算したか否かを判定する。
この判定の結果、モデル生成部132は、すべての2個の点の組み合わせについてスコア値を計算していないと判定した場合には(ステップS64:NO)、ステップS61の処理へ移行する。この場合、ステップS61の処理では、モデル生成部132は、未だに選択されていない組み合わせに係る2個の点(個々の点については既に選択されていてもよい。)を選択する。
一方、この判定の結果、モデル生成部132は、すべての2個の点の組み合わせについてスコア値を計算したと判定した場合には(ステップS64:YES)、ステップS65の処理へ移行する。
(ステップS65)
モデル生成部132は、スコア値が最大となったときにおける直線のインライアに含まれる点を、同一の直線上の点とみなして、当該点の情報を境界線リスト(直線リスト)の情報として記憶部113に記憶し、当該点を処理対象としている点群から削除する。そして、モデル生成部132は、ステップS66の処理へ移行する。この処理により、処理対象としている点群は、当該点が削除されたものに更新される。当該点の情報としては、例えば、それぞれの点の3次元座標の情報が用いられる。当該境界線リスト(当該直線リスト)の情報としては、例えば、同一の直線上の点ごとに分類した点群(つまり、それぞれの直線ごとに分類した点群)のリストの情報が用いられる。
モデル生成部132は、スコア値が最大となったときにおける直線のインライアに含まれる点を、同一の直線上の点とみなして、当該点の情報を境界線リスト(直線リスト)の情報として記憶部113に記憶し、当該点を処理対象としている点群から削除する。そして、モデル生成部132は、ステップS66の処理へ移行する。この処理により、処理対象としている点群は、当該点が削除されたものに更新される。当該点の情報としては、例えば、それぞれの点の3次元座標の情報が用いられる。当該境界線リスト(当該直線リスト)の情報としては、例えば、同一の直線上の点ごとに分類した点群(つまり、それぞれの直線ごとに分類した点群)のリストの情報が用いられる。
(ステップS66)
モデル生成部132は、更新後における処理対象としている点群に含まれる点の数が所定の閾値以下であるか否かを判定する。
この判定の結果、モデル生成部132は、更新後における処理対象としている点群に含まれる点の数が所定の閾値を超えると判定した場合(ステップS66:NO)、ステップS61の処理へ移行する。この場合、ステップS61の処理では、モデル生成部132は、未だに選択されていない組み合わせに係る2個の点(個々の点については既に選択されていてもよい。)を選択する。
一方、この判定の結果、モデル生成部132は、更新後における処理対象としている点群に含まれる点の数が所定の閾値以下であると判定した場合(ステップS66:YES)、本フローの処理を終了する。
ここで、当該閾値としては、任意の値が用いられてもよく、例えば、直線を構成することが可能な最少の点の数よりも1つ少ない数が用いられてもよい。また、当該閾値としては、例えば、あらかじめ設定されてもよく、または、ユーザーにより変更可能に設定されてもよい。
モデル生成部132は、更新後における処理対象としている点群に含まれる点の数が所定の閾値以下であるか否かを判定する。
この判定の結果、モデル生成部132は、更新後における処理対象としている点群に含まれる点の数が所定の閾値を超えると判定した場合(ステップS66:NO)、ステップS61の処理へ移行する。この場合、ステップS61の処理では、モデル生成部132は、未だに選択されていない組み合わせに係る2個の点(個々の点については既に選択されていてもよい。)を選択する。
一方、この判定の結果、モデル生成部132は、更新後における処理対象としている点群に含まれる点の数が所定の閾値以下であると判定した場合(ステップS66:YES)、本フローの処理を終了する。
ここで、当該閾値としては、任意の値が用いられてもよく、例えば、直線を構成することが可能な最少の点の数よりも1つ少ない数が用いられてもよい。また、当該閾値としては、例えば、あらかじめ設定されてもよく、または、ユーザーにより変更可能に設定されてもよい。
<直線(境界線)の線分化の処理>
モデル生成部132は、取得された直線(境界線)に関し、複数の離れた線分を含む直線については、これら複数の線分に分離する。モデル生成部132は、例えば、ユークリッドクラスター抽出手法(Euclidean Cluster Extraction Method)を用いて、直線を線分に分離することが可能である。
モデル生成部132は、取得された直線(境界線)に関し、複数の離れた線分を含む直線については、これら複数の線分に分離する。モデル生成部132は、例えば、ユークリッドクラスター抽出手法(Euclidean Cluster Extraction Method)を用いて、直線を線分に分離することが可能である。
具体的には、まず、モデル生成部132は、境界線リスト(直線リスト)の情報に基づいて、処理対象とする直線に含まれる点のなかで、1個の点を選択する。
次に、モデル生成部132は、当該直線に含まれる点のなかで、選択された点に対して所定の距離以内に存在する他の点を探索する。また、モデル生成部132は、探索された点に対して当該所定の距離以内に存在するさらに他の点を探索する。このような処理を繰り返して行うことで、モデル生成部132は、初期に選択された点および探索された点からなるクラスターを検出する。なお、当該所定の距離としては、任意の値が用いられてもよい。
そして、モデル生成部132は、検出されたクラスターに含まれる点の数が所定の範囲(所定の下限値以上であり所定の上限値以下)であるか否かを判定する。モデル生成部132は、検出されたクラスターに含まれる点の数が所定の範囲と判定した場合、当該クラスターを、線分を構成する点のクラスターであると判定する。なお、当該所定の範囲としては、任意の範囲が用いられてもよい。
モデル生成部132は、線分を構成する点のクラスターに含まれる点を、同一の線分上の点とみなして、当該点の情報を線分リストの情報として記憶部113に記憶する。当該点の情報としては、例えば、それぞれの点の3次元座標の情報が用いられる。当該線分リストの情報としては、例えば、同一の線分上の点ごとに分類した点群(つまり、それぞれの線分ごとに分類した点群)のリストの情報が用いられる。
次に、モデル生成部132は、当該直線に含まれる点のなかで、選択された点に対して所定の距離以内に存在する他の点を探索する。また、モデル生成部132は、探索された点に対して当該所定の距離以内に存在するさらに他の点を探索する。このような処理を繰り返して行うことで、モデル生成部132は、初期に選択された点および探索された点からなるクラスターを検出する。なお、当該所定の距離としては、任意の値が用いられてもよい。
そして、モデル生成部132は、検出されたクラスターに含まれる点の数が所定の範囲(所定の下限値以上であり所定の上限値以下)であるか否かを判定する。モデル生成部132は、検出されたクラスターに含まれる点の数が所定の範囲と判定した場合、当該クラスターを、線分を構成する点のクラスターであると判定する。なお、当該所定の範囲としては、任意の範囲が用いられてもよい。
モデル生成部132は、線分を構成する点のクラスターに含まれる点を、同一の線分上の点とみなして、当該点の情報を線分リストの情報として記憶部113に記憶する。当該点の情報としては、例えば、それぞれの点の3次元座標の情報が用いられる。当該線分リストの情報としては、例えば、同一の線分上の点ごとに分類した点群(つまり、それぞれの線分ごとに分類した点群)のリストの情報が用いられる。
図13は、本発明の一実施形態に係る境界線(輪郭)の線分化の一例を示す図である。
図13には、境界線群301を示してあり、また、境界線321について特定された複数の線分a1〜a20と、境界線322について特定された線分b1〜b4を示してある。
図13には、境界線群301を示してあり、また、境界線321について特定された複数の線分a1〜a20と、境界線322について特定された線分b1〜b4を示してある。
図7は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる線分の端点特定の処理(図3に示されるステップS6の処理)の一例を示す図である。
本処理では、モデル生成部132は、線分リストの情報に基づいて、それぞれの線分ごとに、順次、処理対象とする。
本処理では、モデル生成部132は、線分リストの情報に基づいて、それぞれの線分ごとに、順次、処理対象とする。
(ステップS81)
初期(本フローの最初)においては、モデル生成部132は、処理対象とする線分に含まれる点のなかから、1個の点を注目点として選択する。この選択は、例えば、ランダムに行われてもよい。モデル生成部132は、当該線分に相当する同一の線分上の点について、選択された注目点から他の一点までの距離を計算する。そして、モデル生成部132は、ステップS82の処理へ移行する。
初期(本フローの最初)においては、モデル生成部132は、処理対象とする線分に含まれる点のなかから、1個の点を注目点として選択する。この選択は、例えば、ランダムに行われてもよい。モデル生成部132は、当該線分に相当する同一の線分上の点について、選択された注目点から他の一点までの距離を計算する。そして、モデル生成部132は、ステップS82の処理へ移行する。
(ステップS82)
モデル生成部132は、注目点に関して、同一の線分上のすべての他の一点について距離を計算したか否かを判定する。
この判定の結果、モデル生成部132は、注目点に関して、同一の線分上のすべての他の一点について距離を計算したと判定した場合(ステップS82:YES)、ステップS83の処理へ移行する。
一方、この判定の結果、モデル生成部132は、注目点に関して、同一の線分上のすべての他の一点について距離を計算していないと判定した場合(ステップS82:NO)、ステップS86の処理へ移行する。
モデル生成部132は、注目点に関して、同一の線分上のすべての他の一点について距離を計算したか否かを判定する。
この判定の結果、モデル生成部132は、注目点に関して、同一の線分上のすべての他の一点について距離を計算したと判定した場合(ステップS82:YES)、ステップS83の処理へ移行する。
一方、この判定の結果、モデル生成部132は、注目点に関して、同一の線分上のすべての他の一点について距離を計算していないと判定した場合(ステップS82:NO)、ステップS86の処理へ移行する。
(ステップS83)
モデル生成部132は、同一の線分上のすべての点を注目点としたか否かを判定する。
この判定の結果、モデル生成部132は、同一の線分上のすべての点を注目点としたと判定した場合(ステップS83:YES)、ステップS84の処理へ移行する。
一方、この判定の結果、モデル生成部132は、同一の線分上のすべての点を注目点としていないと判定した場合(ステップS83:NO)、ステップS87の処理へ移行する。
モデル生成部132は、同一の線分上のすべての点を注目点としたか否かを判定する。
この判定の結果、モデル生成部132は、同一の線分上のすべての点を注目点としたと判定した場合(ステップS83:YES)、ステップS84の処理へ移行する。
一方、この判定の結果、モデル生成部132は、同一の線分上のすべての点を注目点としていないと判定した場合(ステップS83:NO)、ステップS87の処理へ移行する。
(ステップS84)
モデル生成部132は、同一の線分に関する距離の計算結果に基づいて、最大の距離が得られた2点(いずれかの注目点と他の一点)を当該線分の端点として特定して、当該端点の情報を端点リストの情報として記憶部113に記憶する。当該点(端点)の情報としては、例えば、それぞれの点(端点)の3次元座標の情報が用いられる。当該端点リストの情報としては、例えば、端点に分類した点群のリストの情報が用いられる。
モデル生成部132は、同一の線分に関する距離の計算結果に基づいて、最大の距離が得られた2点(いずれかの注目点と他の一点)を当該線分の端点として特定して、当該端点の情報を端点リストの情報として記憶部113に記憶する。当該点(端点)の情報としては、例えば、それぞれの点(端点)の3次元座標の情報が用いられる。当該端点リストの情報としては、例えば、端点に分類した点群のリストの情報が用いられる。
(ステップS85)
モデル生成部132は、すべての線分を処理対象としたか否かを判定する。
この判定の結果、モデル生成部132は、すべての線分を処理対象としたと判定した場合(ステップS85:YES)、本フローの処理を終了する。
一方、この判定の結果、モデル生成部132は、すべての線分を処理対象としていないと判定した場合(ステップS85:NO)、ステップS88の処理へ移行する。
モデル生成部132は、すべての線分を処理対象としたか否かを判定する。
この判定の結果、モデル生成部132は、すべての線分を処理対象としたと判定した場合(ステップS85:YES)、本フローの処理を終了する。
一方、この判定の結果、モデル生成部132は、すべての線分を処理対象としていないと判定した場合(ステップS85:NO)、ステップS88の処理へ移行する。
(ステップS86)
モデル生成部132は、同一の線分について、他の一点として、未だに選択されていない点を選択して更新する。そして、モデル生成部132は、ステップS81の処理へ移行する。この場合、ステップS81の処理では、モデル生成部132は、更新後における他の一点について距離を計算する。
モデル生成部132は、同一の線分について、他の一点として、未だに選択されていない点を選択して更新する。そして、モデル生成部132は、ステップS81の処理へ移行する。この場合、ステップS81の処理では、モデル生成部132は、更新後における他の一点について距離を計算する。
(ステップS87)
モデル生成部132は、同一の線分について、注目点として、未だに選択されていない点を選択して更新する。そして、モデル生成部132は、ステップS81の処理へ移行する。この場合、ステップS81の処理では、モデル生成部132は、更新後における注目点について距離を計算する。
モデル生成部132は、同一の線分について、注目点として、未だに選択されていない点を選択して更新する。そして、モデル生成部132は、ステップS81の処理へ移行する。この場合、ステップS81の処理では、モデル生成部132は、更新後における注目点について距離を計算する。
(ステップS88)
モデル生成部132は、処理対象とする線分として、未だに選択されていない線分を選択して更新する。そして、モデル生成部132は、ステップS81の処理へ移行する。この場合、ステップS81の処理では、モデル生成部132は、更新後における線分について距離を計算する。
モデル生成部132は、処理対象とする線分として、未だに選択されていない線分を選択して更新する。そして、モデル生成部132は、ステップS81の処理へ移行する。この場合、ステップS81の処理では、モデル生成部132は、更新後における線分について距離を計算する。
図14は、本発明の一実施形態に係る重複した端点の群の一例を示す図である。
図14には、図7に示されるフローの処理により得られた点群401の一例を示してある。当該点群401は、重複した端点の群となっている。なお、図14の例では、説明の便宜上から、2次元の情報を使用した場合を仮定して各端点が二重になっている例を示してあるが、3次元の情報を使用した場合には各端点が三重になる。
図14の例では、複数の端点が重複している重複部421の一例を示してある。
図14には、図7に示されるフローの処理により得られた点群401の一例を示してある。当該点群401は、重複した端点の群となっている。なお、図14の例では、説明の便宜上から、2次元の情報を使用した場合を仮定して各端点が二重になっている例を示してあるが、3次元の情報を使用した場合には各端点が三重になる。
図14の例では、複数の端点が重複している重複部421の一例を示してある。
図8は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる端点集約の処理(図3に示されるステップS7の処理)の一例を示す図である。
本処理では、モデル生成部132は、端点リストの情報(ここでは、重複した端点の情報)に基づいて、それぞれの端点ごとに、順次、処理対象とする。
本処理では、モデル生成部132は、端点リストの情報(ここでは、重複した端点の情報)に基づいて、それぞれの端点ごとに、順次、処理対象とする。
(ステップS121)
初期(本フローの最初)においては、モデル生成部132は、重複した複数の端点のなかから、1個の端点を注目点n(スタート点)として選択する。モデル生成部132は、選択された注目点nと、当該注目点nに対応するもう一方の端点(ペア点n’)の情報を記憶する。当該情報は、記憶部113に記憶されてもよい。そして、モデル生成部132は、ステップS122の処理へ移行する。
初期(本フローの最初)においては、モデル生成部132は、重複した複数の端点のなかから、1個の端点を注目点n(スタート点)として選択する。モデル生成部132は、選択された注目点nと、当該注目点nに対応するもう一方の端点(ペア点n’)の情報を記憶する。当該情報は、記憶部113に記憶されてもよい。そして、モデル生成部132は、ステップS122の処理へ移行する。
(ステップS122)
モデル生成部132は、ペア点n’に対して最近傍探索の処理を行い、これにより見つかった点を関連点(n+1)とする。そして、モデル生成部132は、ステップS123の処理へ移行する。
(ステップS123)
モデル生成部132は、ペア点n’と関連点(n+1)との重心の点(重心点)を生成して、当該重心点(n+1)’’の情報を記憶する。当該情報は、記憶部113に記憶されてもよい。そして、モデル生成部132は、ステップS124の処理へ移行する。
モデル生成部132は、ペア点n’に対して最近傍探索の処理を行い、これにより見つかった点を関連点(n+1)とする。そして、モデル生成部132は、ステップS123の処理へ移行する。
(ステップS123)
モデル生成部132は、ペア点n’と関連点(n+1)との重心の点(重心点)を生成して、当該重心点(n+1)’’の情報を記憶する。当該情報は、記憶部113に記憶されてもよい。そして、モデル生成部132は、ステップS124の処理へ移行する。
(ステップS124)
モデル生成部132は、重複した複数の端点のすべての点(端点)について処理を行ったか否かを判定する。
この判定の結果、モデル生成部132は、重複した複数の端点のすべての点(端点)について処理を行ったと判定した場合(ステップS124:YES)、本フローの処理を終了する。
一方、この判定の結果、モデル生成部132は、重複した複数の端点のすべての点(端点)について処理を行っていないと判定した場合(ステップS124:NO)、ステップS125の処理へ移行する。
モデル生成部132は、重複した複数の端点のすべての点(端点)について処理を行ったか否かを判定する。
この判定の結果、モデル生成部132は、重複した複数の端点のすべての点(端点)について処理を行ったと判定した場合(ステップS124:YES)、本フローの処理を終了する。
一方、この判定の結果、モデル生成部132は、重複した複数の端点のすべての点(端点)について処理を行っていないと判定した場合(ステップS124:NO)、ステップS125の処理へ移行する。
(ステップS125)
モデル生成部132は、注目点を、未だに選択されていない端点に更新する。なお、更新後の端点は、例えば、関連点(n+1)であってもよく、あるいは、他の点であってもよい。そして、モデル生成部132は、ステップS121の処理へ移行する。
本実施形態では、求められた重心点(n+1)’’が、集約後における端点となる。つまり、本実施形態では、重複した複数の端点について、近傍にある端点を1個の点(重心点)に集約している。
なお、本実施形態では、説明の便宜上から、2次元の情報を使用した場合を仮定して各端点が二重になっている例を示してあるが、3次元の情報を使用した場合には各端点が三重になる。二重の端点については重複する2個の端点の重心位置が求められ、三重の端点については重複する3個の端点の重心位置が求められる。
モデル生成部132は、注目点を、未だに選択されていない端点に更新する。なお、更新後の端点は、例えば、関連点(n+1)であってもよく、あるいは、他の点であってもよい。そして、モデル生成部132は、ステップS121の処理へ移行する。
本実施形態では、求められた重心点(n+1)’’が、集約後における端点となる。つまり、本実施形態では、重複した複数の端点について、近傍にある端点を1個の点(重心点)に集約している。
なお、本実施形態では、説明の便宜上から、2次元の情報を使用した場合を仮定して各端点が二重になっている例を示してあるが、3次元の情報を使用した場合には各端点が三重になる。二重の端点については重複する2個の端点の重心位置が求められ、三重の端点については重複する3個の端点の重心位置が求められる。
図15は、本発明の一実施形態に係る集約後における端点の群の一例を示す図である。
図15には、図8に示されるフローの処理により得られた点群451の一例を示してある。当該点群451は、集約された端点の群となっている。
例えば、図15の例では、図14の例における重複部421に含まれる複数の端点が集約されて1個の点471になっている。他の重複部についても同様である。
図15には、図8に示されるフローの処理により得られた点群451の一例を示してある。当該点群451は、集約された端点の群となっている。
例えば、図15の例では、図14の例における重複部421に含まれる複数の端点が集約されて1個の点471になっている。他の重複部についても同様である。
<三角形構成の処理>
図9は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる三角形構成の処理(図3に示されるステップS8の処理)の一例を示す図である。
本処理では、モデル生成部132は、集約後における複数の端点を処理対象とする。
図9は、本発明の一実施形態に係るロボットシステム1におけるロボット制御装置12により行われる三角形構成の処理(図3に示されるステップS8の処理)の一例を示す図である。
本処理では、モデル生成部132は、集約後における複数の端点を処理対象とする。
(ステップS141)
モデル生成部132は、集約後における複数の端点のうちの1個の点を、注目する頂点(注目頂点)として選択する。そして、モデル生成部132は、選択された注目頂点の両端(両側の頂点)を結ぶ直線が多角形の内部に存在するか否かを判定する。本実施形態では、当該多角形は、集約後における複数の端点を結んで構成される多角形である。
この判定の結果、モデル生成部132は、注目頂点の両端を結ぶ直線が多角形の内部に存在すると判定した場合(ステップS141:YES)、ステップS142の処理を行う。
一方、この判定の結果、モデル生成部132は、注目頂点の両端を結ぶ直線が多角形の内部に存在しないと判定した場合(ステップS141:NO)、注目頂点を更新して、再び、ステップS141の処理を行う。
モデル生成部132は、集約後における複数の端点のうちの1個の点を、注目する頂点(注目頂点)として選択する。そして、モデル生成部132は、選択された注目頂点の両端(両側の頂点)を結ぶ直線が多角形の内部に存在するか否かを判定する。本実施形態では、当該多角形は、集約後における複数の端点を結んで構成される多角形である。
この判定の結果、モデル生成部132は、注目頂点の両端を結ぶ直線が多角形の内部に存在すると判定した場合(ステップS141:YES)、ステップS142の処理を行う。
一方、この判定の結果、モデル生成部132は、注目頂点の両端を結ぶ直線が多角形の内部に存在しないと判定した場合(ステップS141:NO)、注目頂点を更新して、再び、ステップS141の処理を行う。
(ステップS142)
モデル生成部132は、他の頂点が、注目頂点とその両端を結んだ三角形の内部に存在しないか否かを判定する。
この判定の結果、モデル生成部132は、他の頂点が、注目頂点とその両端を結んだ三角形の内部に存在しないと判定した場合(ステップS142:YES)、ステップS143の処理へ移行する。
一方、この判定の結果、モデル生成部132は、他の頂点が、注目頂点とその両端を結んだ三角形の内部に存在すると判定した場合(ステップS142:NO)、ステップS146の処理へ移行する。
モデル生成部132は、他の頂点が、注目頂点とその両端を結んだ三角形の内部に存在しないか否かを判定する。
この判定の結果、モデル生成部132は、他の頂点が、注目頂点とその両端を結んだ三角形の内部に存在しないと判定した場合(ステップS142:YES)、ステップS143の処理へ移行する。
一方、この判定の結果、モデル生成部132は、他の頂点が、注目頂点とその両端を結んだ三角形の内部に存在すると判定した場合(ステップS142:NO)、ステップS146の処理へ移行する。
(ステップS143)
モデル生成部132は、注目頂点とその両端を結んだ三角形の部分を切り取って、当該三角形の部分の情報を記憶する。この場合、モデル生成部132は、当該注目頂点も切り取る。当該情報は、記憶部113に記憶されてもよい。そして、モデル生成部132は、ステップS144の処理へ移行する。
モデル生成部132は、注目頂点とその両端を結んだ三角形の部分を切り取って、当該三角形の部分の情報を記憶する。この場合、モデル生成部132は、当該注目頂点も切り取る。当該情報は、記憶部113に記憶されてもよい。そして、モデル生成部132は、ステップS144の処理へ移行する。
(ステップS144)
モデル生成部132は、残りの端点(頂点)の数が3個であるか否かを判定する。
この判定の結果、モデル生成部132は、残りの端点(頂点)の数が3個であると判定した場合(ステップS144:YES)、ステップS145の処理へ移行する。
一方、この判定の結果、モデル生成部132は、残りの端点(頂点)の数が3個ではないと判定した場合(ステップS144:NO)、ステップS147の処理へ移行する。
モデル生成部132は、残りの端点(頂点)の数が3個であるか否かを判定する。
この判定の結果、モデル生成部132は、残りの端点(頂点)の数が3個であると判定した場合(ステップS144:YES)、ステップS145の処理へ移行する。
一方、この判定の結果、モデル生成部132は、残りの端点(頂点)の数が3個ではないと判定した場合(ステップS144:NO)、ステップS147の処理へ移行する。
(ステップS145)
モデル生成部132は、残りの3個の端点(頂点)を結んで構成される三角形の部分を切り取って、当該三角形の部分の情報を記憶する。当該情報は、記憶部113に記憶されてもよい。そして、モデル生成部132は、本フローの処理を終了する。
モデル生成部132は、残りの3個の端点(頂点)を結んで構成される三角形の部分を切り取って、当該三角形の部分の情報を記憶する。当該情報は、記憶部113に記憶されてもよい。そして、モデル生成部132は、本フローの処理を終了する。
(ステップS146)
モデル生成部132は、注目頂点を更新する。そして、モデル生成部132は、ステップS141の処理へ移行する。
モデル生成部132は、注目頂点を更新する。そして、モデル生成部132は、ステップS141の処理へ移行する。
(ステップS147)
モデル生成部132は、注目頂点を更新する。そして、モデル生成部132は、ステップS141の処理へ移行する。
なお、本実施形態では、STL(Standard Triangulated Language)が用いられる場合を示したが、他の構成が用いられてもよい。
モデル生成部132は、注目頂点を更新する。そして、モデル生成部132は、ステップS141の処理へ移行する。
なお、本実施形態では、STL(Standard Triangulated Language)が用いられる場合を示したが、他の構成が用いられてもよい。
図16を参照して、注目頂点の両端(両側の頂点)を結ぶ直線が多角形の内部に存在するか否かを判定する処理(ステップS141の処理)の具体例を示す。
図16は、本発明の一実施形態に係る多角形に関する配置501の一例を示す図である。当該配置501では、6個の端点P0〜P5が多角形の頂点として存在する。図16の例では、モデル生成部132は、当該多角形の頂点(端点P0〜P5)について、左回り(いわゆる反時計回り)の回転方向で、連続的な番号(0〜5)をラベリングする処理を完了しているとする。
図16は、本発明の一実施形態に係る多角形に関する配置501の一例を示す図である。当該配置501では、6個の端点P0〜P5が多角形の頂点として存在する。図16の例では、モデル生成部132は、当該多角形の頂点(端点P0〜P5)について、左回り(いわゆる反時計回り)の回転方向で、連続的な番号(0〜5)をラベリングする処理を完了しているとする。
図16の例では、6個の端点P0〜P5を順番に結んで多角形が構成される。
一例として、端点P0を注目頂点とした場合、当該注目頂点の両端を結ぶ直線(端点P5と端点P1とを結ぶ直線)が当該多角形の内部に存在すると判定される。なお、図16には、当該注目頂点とその両端を結んだ三角形521を示してある。
他の例として、端点P4を注目頂点とした場合、当該注目頂点の両端を結ぶ直線(端点P3と端点P5とを結ぶ直線)が当該多角形の内部に存在しないと判定される。なお、図16には、当該注目頂点とその両端を結んだ三角形522を示してある。
このように、本実施形態では、三角形の内部に他の頂点が存在しないという条件と、当該三角形の回転方向が反時計回りであるという条件を同時に満たす三角形が、所望の三角形として判定される。
一例として、端点P0を注目頂点とした場合、当該注目頂点の両端を結ぶ直線(端点P5と端点P1とを結ぶ直線)が当該多角形の内部に存在すると判定される。なお、図16には、当該注目頂点とその両端を結んだ三角形521を示してある。
他の例として、端点P4を注目頂点とした場合、当該注目頂点の両端を結ぶ直線(端点P3と端点P5とを結ぶ直線)が当該多角形の内部に存在しないと判定される。なお、図16には、当該注目頂点とその両端を結んだ三角形522を示してある。
このように、本実施形態では、三角形の内部に他の頂点が存在しないという条件と、当該三角形の回転方向が反時計回りであるという条件を同時に満たす三角形が、所望の三角形として判定される。
モデル生成部132は、上記の処理の結果に基づいて、対象物52の形状のモデル(全周モデル)を生成する。
このように、モデル生成部132は、3次元計測装置21を用いて取得された3次元点群の情報に基づいて、対象物52のモデルを生成する。
このように、モデル生成部132は、3次元計測装置21を用いて取得された3次元点群の情報に基づいて、対象物52のモデルを生成する。
[実施形態のまとめ]
以上のように、本実施形態に係るロボットシステム1では、ロボット制御装置12は、対象物52について、効率的なモデルを生成することができる。ロボット制御装置12は、対象物52について、例えば、ノイズ耐性が高く(つまり、ノイズに強く)、精度が良く、データ容量が小さいモデルを生成することができる。
本実施形態では、ロボット制御装置12は、物体(本実施形態では、対象物52)を局所的な平面の繋ぎ合わせで近似することができると仮定し、平面上に位置しない点を除去した後に、平面の頂点のみを残す処理を行って面を張ることで、モデルを生成する。これにより、例えば、点の数が大量に増加させられなくても、ロボット制御装置12は、効率的なモデルを生成することが可能である。
以上のように、本実施形態に係るロボットシステム1では、ロボット制御装置12は、対象物52について、効率的なモデルを生成することができる。ロボット制御装置12は、対象物52について、例えば、ノイズ耐性が高く(つまり、ノイズに強く)、精度が良く、データ容量が小さいモデルを生成することができる。
本実施形態では、ロボット制御装置12は、物体(本実施形態では、対象物52)を局所的な平面の繋ぎ合わせで近似することができると仮定し、平面上に位置しない点を除去した後に、平面の頂点のみを残す処理を行って面を張ることで、モデルを生成する。これにより、例えば、点の数が大量に増加させられなくても、ロボット制御装置12は、効率的なモデルを生成することが可能である。
本実施形態に係るロボットシステム1では、ロボット制御装置12は、生成されたモデルに基づいて、ロボット11の動作を制御する。これにより、ロボット11は、所定の動作を行って、所定の作業を実行する。
一例として、ロボット制御装置12は、生成されたモデルに基づいて、物体(本実施形態では、対象物52)の位置および姿勢に応じて、エンドエフェクターE1により当該物体を容易に把持することが可能な位置および姿勢を計算して、当該エンドエフェクターE1により当該物体を把持することが可能である。
一例として、ロボット制御装置12は、生成されたモデルに基づいて、物体(本実施形態では、対象物52)の位置および姿勢に応じて、エンドエフェクターE1により当該物体を容易に把持することが可能な位置および姿勢を計算して、当該エンドエフェクターE1により当該物体を把持することが可能である。
ここで、本実施形態に係るロボットシステム1は、例えば、産業用あるいはサービス用など、任意のロボット分野に適用されてもよい。
また、本実施形態では、物体のモデルを生成する際に曲線を直線に近似する処理が用いられる場合があるが、対象物52としては、必ずしも直線の輪郭で構成されたものばかりでなく、曲線の輪郭を含むものが用いられてもよい。なお、一般に、工業用の部品あるいは電子機器の部品は、平面の組み合わせで構成されるものが多いと言われている。
また、本実施形態では、物体のモデルを生成する際に曲線を直線に近似する処理が用いられる場合があるが、対象物52としては、必ずしも直線の輪郭で構成されたものばかりでなく、曲線の輪郭を含むものが用いられてもよい。なお、一般に、工業用の部品あるいは電子機器の部品は、平面の組み合わせで構成されるものが多いと言われている。
また、本実施形態では、撮像画像に基づいて物体が有する線分の端点の候補を検出して当該物体のモデルを生成する機能と、ロボット11を制御する機能を備えるロボット制御装置12を示したが、他の構成例として、ロボット11を制御する機能を備えずに、撮像画像に基づいて物体が有する線分の端点の候補を検出して当該物体のモデルを生成する機能を備える装置(検出装置)が実施されてもよい。
また、本実施形態では、物体(本実施形態では、対象物52)の全体のモデルを生成する場合を示したが、他の構成例として、物体の一部のモデルを生成する場合が用いられてもよい。
また、本実施形態では、物体(本実施形態では、対象物52)の全体のモデルを生成する場合を示したが、他の構成例として、物体の一部のモデルを生成する場合が用いられてもよい。
一構成例として、対象物(図1の例では、対象物52)が撮像された撮像画像に基づいて、点群を生成し、生成した点群から当該対象物が有する線分の端点の候補を検出し、検出した候補に基づいて当該対象物の少なくとも一部のモデルを生成する、検出装置(例えば、図1に示されるロボット制御装置12が有する該当する機能を有する装置)である。
一構成例として、検出装置において、撮像画像に基づいて、点群から平面を検出し(例えば、ステップS3の処理)、検出した平面から輪郭(境界線)を検出し(例えば、ステップS4の処理)、検出した輪郭から線分を検出し(例えば、ステップS5の処理など)、検出した線分から端点の候補を検出する(例えば、ステップS6〜ステップS7の処理)。
一構成例として、検出装置において、端点の候補に基づいて所定の形状の図形(本実施形態では、三角形)を生成する(例えば、ステップS8〜ステップS9の処理)。
一構成例として、検出装置によって生成されたモデルに基づいて所定の作業を行う、ロボット(図1の例では、ロボット11)である。
一構成例として、ロボットを制御する、ロボット制御装置(図1の例では、ロボット制御装置12)である。
一構成例として、検出装置において、撮像画像に基づいて、点群から平面を検出し(例えば、ステップS3の処理)、検出した平面から輪郭(境界線)を検出し(例えば、ステップS4の処理)、検出した輪郭から線分を検出し(例えば、ステップS5の処理など)、検出した線分から端点の候補を検出する(例えば、ステップS6〜ステップS7の処理)。
一構成例として、検出装置において、端点の候補に基づいて所定の形状の図形(本実施形態では、三角形)を生成する(例えば、ステップS8〜ステップS9の処理)。
一構成例として、検出装置によって生成されたモデルに基づいて所定の作業を行う、ロボット(図1の例では、ロボット11)である。
一構成例として、ロボットを制御する、ロボット制御装置(図1の例では、ロボット制御装置12)である。
なお、以上に説明した装置(例えば、ロボット制御装置12など)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体(記憶媒体)に記録(記憶)し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、オペレーティングシステム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD(Compact Disc)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM:Random Access Memory)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
1…ロボットシステム、11…ロボット、12…ロボット制御装置、13、22…ケーブル、21…3次元計測装置、31…基端、32…力覚センサー、51…作業台、52…対象物、111…入力部、112…出力部、113…記憶部、114…制御部、131…情報取得部、132…モデル生成部、133…ロボット制御部、201…平面群、221…平面、251…注目点、261〜264、471…点、301…境界線群、321、322…境界線、401、451…点群、421…重複部、501…配置、521〜522…三角形、M1…マニピュレーター、E1…エンドエフェクター、θ1〜θ5…角度、a1〜a20…線分、P0〜P5…端点
Claims (5)
- 対象物が撮像された撮像画像に基づいて、点群を生成し、生成した前記点群から前記対象物が有する線分の端点の候補を検出し、検出した前記候補に基づいて前記対象物の少なくとも一部のモデルを生成する、
検出装置。 - 前記撮像画像に基づいて、前記点群から平面を検出し、検出した前記平面から輪郭を検出し、検出した前記輪郭から前記線分を検出し、検出した前記線分から前記端点の候補を検出する、
請求項1に記載の検出装置。 - 前記端点の候補に基づいて所定の形状の図形を生成する、
請求項1または請求項2のいずれか1項に記載の検出装置。 - 請求項1から請求項3のいずれか1項に記載の検出装置によって生成された前記モデルに基づいて所定の作業を行う、
ロボット。 - 請求項4に記載のロボットを制御する、
ロボット制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016149402A JP2018017654A (ja) | 2016-07-29 | 2016-07-29 | 検出装置、ロボットおよびロボット制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016149402A JP2018017654A (ja) | 2016-07-29 | 2016-07-29 | 検出装置、ロボットおよびロボット制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018017654A true JP2018017654A (ja) | 2018-02-01 |
Family
ID=61076079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016149402A Pending JP2018017654A (ja) | 2016-07-29 | 2016-07-29 | 検出装置、ロボットおよびロボット制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018017654A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021137953A (ja) * | 2020-05-28 | 2021-09-16 | リンクウィズ株式会社 | 情報処理方法、情報処理システム、プログラム |
JP2021137940A (ja) * | 2020-03-09 | 2021-09-16 | リンクウィズ株式会社 | 情報処理方法、情報処理システム、プログラム |
WO2022138864A1 (ja) * | 2020-12-23 | 2022-06-30 | 京セラ株式会社 | 干渉判定装置、ロボット制御システム、及び干渉判定方法 |
WO2023067659A1 (ja) * | 2021-10-18 | 2023-04-27 | ファナック株式会社 | 制御装置 |
-
2016
- 2016-07-29 JP JP2016149402A patent/JP2018017654A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021137940A (ja) * | 2020-03-09 | 2021-09-16 | リンクウィズ株式会社 | 情報処理方法、情報処理システム、プログラム |
WO2021181929A1 (ja) * | 2020-03-09 | 2021-09-16 | リンクウィズ株式会社 | 情報処理方法、情報処理システム、プログラム |
CN113905856A (zh) * | 2020-03-09 | 2022-01-07 | 凌威新科技有限公司 | 信息处理方法、信息处理系统及程序 |
US12066812B2 (en) | 2020-03-09 | 2024-08-20 | Linkwiz Incorporated | Information processing method, information processing system, and program |
JP2021137953A (ja) * | 2020-05-28 | 2021-09-16 | リンクウィズ株式会社 | 情報処理方法、情報処理システム、プログラム |
WO2022138864A1 (ja) * | 2020-12-23 | 2022-06-30 | 京セラ株式会社 | 干渉判定装置、ロボット制御システム、及び干渉判定方法 |
WO2023067659A1 (ja) * | 2021-10-18 | 2023-04-27 | ファナック株式会社 | 制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200338730A1 (en) | Trajectory planning device, trajectory planning method and program | |
US9827675B2 (en) | Collision avoidance method, control device, and program | |
US10589424B2 (en) | Robot control device, robot, and robot system | |
JP4730440B2 (ja) | 軌道計画装置及び軌道計画方法、並びにコンピューター・プログラム | |
EP3650181B1 (en) | Route output method, route output system and route output program | |
JP6429450B2 (ja) | 情報処理装置、情報処理方法 | |
JP6904327B2 (ja) | 制御装置、制御方法、及び制御プログラム | |
JP2018017654A (ja) | 検出装置、ロボットおよびロボット制御装置 | |
JP6348097B2 (ja) | ワーク位置姿勢算出装置およびハンドリングシステム | |
JP2018501973A5 (ja) | ||
JP2012190405A (ja) | 経路情報修正装置、軌道計画装置、及びロボット | |
JP6357785B2 (ja) | ロボット、ロボットシステム、制御装置および制御方法 | |
WO2021033486A1 (ja) | モデル生成装置、モデル生成方法、制御装置及び制御方法 | |
JP2019018272A (ja) | モーション生成方法、モーション生成装置、システム及びコンピュータプログラム | |
JP2014073550A (ja) | 経路探索方法、経路探索装置、ロボット制御装置、ロボット及びプログラム | |
JP2017170571A (ja) | ロボット、ロボット制御装置、及びロボットシステム | |
JP2018008347A (ja) | ロボットシステムおよび動作領域表示方法 | |
JP2019084649A (ja) | 干渉判定方法、干渉判定システム及びコンピュータプログラム | |
JP2020110885A (ja) | 経路生成装置、経路生成方法、及び経路生成プログラム | |
JP2018051647A (ja) | ロボット制御装置、ロボット、及びロボットシステム | |
JP2021030359A (ja) | 制御装置、制御方法、及び制御プログラム | |
US9682476B1 (en) | Selecting robot poses to account for cost | |
JP2018001348A (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
CN117047776A (zh) | 一种六自由度机械臂对复杂零件抓取的路径规划方法 | |
JP2021010994A (ja) | センサ位置姿勢キャリブレーション装置及びセンサ位置姿勢キャリブレーション方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20181026 |