(57)【要約】【課題】ロボットを制御するプログラムを作成する際に、エンジニアによるコーディングを行う必要がなく、容易に作成することができるプログラム自動生成装置の提供。【解決手段】プログラム自動生成装置８は、３次元認識される対象物Ｗに対してロボット１のハンド２による作業を行わせるプログラムを作成するものであり、ロボット１のハンド２による作業の流れを複数のステップで示すフローチャートを作成するフローチャート作成手段１１と、複数のステップそれぞれについて、ステップとステップに対応するソースプログラムとを対応付けて記憶する記憶手段１２と、フローチャート作成手段１１で作成されたステップに基づき、記憶手段１２から対応するソースプログラムを取得して、取得したソースプログラムをステップの作成順序で結合してプログラムを作成するプログラム作成手段１３とを備える。【選択図】図１
2017064844.tif 000002
【特許請求の範囲】
【請求項１】
３次元認識される対象物に対してロボットによる作業を行わせるプログラムの自動生成装置であって、
前記ロボットによる作業の流れを複数のステップで示すフローチャートを作成するフローチャート作成手段と、
前記複数のステップそれぞれについて、前記ステップと前記ステップに対応するソースプログラムとを対応付けて記憶する記憶手段と、
前記フローチャート作成手段で作成された前記ステップに基づき、前記記憶手段から対応する前記ソースプログラムを取得して、前記取得したソースプログラムを前記ステップの作成順序で結合して前記プログラムを作成するプログラム作成手段と
を備えることを特徴とするプログラム自動生成装置。
【請求項２】
前記フローチャート作成手段で作成される前記フローチャートに、前記対象物の３次元位置姿勢を求める３次元位置姿勢認識ステップが含まれるプログラムを作成するものであって、
前記ロボットは、前記対象物を撮影して画像を取得する画像取得手段と、前記画像取得手段で取得された前記画像に基づき前記対象物の３次元位置姿勢を求める対象物認識手段とを備えており、
前記３次元位置姿勢認識ステップが前記画像取得手段と前記対象物認識手段とを作動させる前記ソースプログラムと対応付けられている
ことを特徴とする請求項１に記載のプログラム自動生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元認識される対象物に対してロボットによる作業を行わせるためのプログラムを自動で生成するプログラム自動生成装置に関するものである。たとえば、ロボットのハンドによりワークである対象物を把持して目的位置に移動させるプログラムの自動生成装置に関するものである。
【背景技術】
【０００２】
生産ラインにおいて、ロボットのハンド等により部品等に対して正確な操作を可能とするために、山積みにされた部品等を個々に認識し、各部品の位置及び姿勢を認識するための３次元物体認識装置が近年開発されている。
【０００３】
従来、このような３次元物体認識装置としては、例えば、入力画像から得られる対象物体の輪郭等の特徴を直線、円弧等に近似したデータであるとともにステレオ計測等で得た３次元位置データを有する特徴データと、対象物体のモデルの３次元位置データとのマッチングにより対象物体の３次元位置姿勢を得るもの等がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０９−２１２６４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ロボットのハンドに正確な作業を行わせるためには、対象物体の位置・姿勢を認識するとともに、ロボットに対してハンドによる正確な作業を行わせるための制御プログラムを与える必要がある。通常、このような対象物体の位置姿勢を認識してロボットのハンドにより対象物体に対して作業を行わせるようなシステムにおいては、対象物体の３次元認識の結果に基づいて、エンジニアによりロボットを制御するためのプログラムを作成するという作業が必要になるため、効率的ではないという問題がある。また、ロボットを制御するためのプログラムを作成できるエンジニアが少なく、ロボットの普及の制約となっている。
【０００６】
本発明は、このような問題に鑑みてなされたものであり、その主たる目的は、ロボットを制御するためのプログラムを作成する際に、エンジニアによるコーディングを行う必要がなく、容易に作成することができるプログラム自動生成装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するための本発明に係るプログラム自動生成装置は、３次元認識される対象物に対してロボットによる作業を行わせるプログラムの自動生成装置であって、前記ロボットによる作業の流れを複数のステップで示すフローチャートを作成するフローチャート作成手段と、前記複数のステップそれぞれについて、前記ステップと前記ステップに対応するソースプログラムとを対応付けて記憶する記憶手段と、前記フローチャート作成手段で作成された前記ステップに基づき、前記記憶手段から対応する前記ソースプログラムを取得して、前記取得したソースプログラムを前記ステップの作成順序で結合して前記プログラムを作成するプログラム作成手段とを備えることを特徴とする。
【０００８】
さらに、本発明に係るプログラム自動生成装置は、前記フローチャート作成手段で作成される前記フローチャートに、前記対象物の３次元位置姿勢を求める３次元位置姿勢認識ステップが含まれるプログラムを作成するものであって、前記ロボットは、前記対象物を撮影して画像を取得する画像取得手段と、前記画像取得手段で取得された前記画像に基づき前記対象物の３次元位置姿勢を求める対象物認識手段とを備えており、前記３次元位置姿勢認識ステップが前記画像取得手段と前記対象物認識手段とを作動させる前記ソースプログラムと対応付けられていることを特徴とする。
【発明の効果】
【０００９】
本発明に係るプログラム自動生成装置によれば、ロボットによる作業の流れの順に、フローチャートのステップを順次作成することで、ステップの作成順に、作成されたステップに対応するソースプログラムを結合することができる。このようにして、ソースプログラムよりも容易に作成することができるフローチャートを作成することで、ロボットによる作業の一連のプログラムを作成することができる。従って、エンジニアによるコーディングと比較して、ロボットを制御するためのプログラムを容易に作成することができる。
【００１０】
さらに、本発明に係るプログラム自動生成装置によれば、フローチャート中に３次元位置姿勢認識ステップが含まれるプログラムを作成するものであるので、対象物の３次元位置姿勢を認識することができ、ロボットによる作業をより正確に行わせるプログラムを作成することができる。そして、３次元位置姿勢認識ステップを作成することで、対象物の３次元位置姿勢を認識するプログラムを作成することができる。従って、ロボットによる作業をより正確に行わせるプログラムを容易に作成することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明のプログラム自動生成装置の一実施例が適用されるロボットの使用状態を示す概略構成図である。
【図２】図１のプログラム自動生成装置により作成されるフローチャートの表示例を示す図である。
【図３】図１のロボットによる作業を実現するソースプログラムの結合の概念図である。
【発明を実施するための形態】
【００１２】
以下、本発明のプログラム自動生成装置の具体的実施例を図面に基づいて詳細に説明する。
【００１３】
図１は、本発明のプログラム自動生成装置の一実施例が適用されるロボットの使用状態を示す概略構成図であり、作業を行う前のロボットの初期状態を示している。本実施例のロボット１は、ハンド２を有するロボット本体３と、画像取得手段４と、対象物認識手段５などを有するコンピュータ装置Ｃと、制御手段６とを備えており、ハンド２によりワークである対象物Ｗに対して作業を行うものである。ここで、対象物Ｗは、後述するようにして３次元認識が行われるものである。
【００１４】
ロボット本体３は、先端部に対象物Ｗを把持するためのハンド２を有しており、それぞれの回転軸にサーボモータが設けられると共に、サーボモータの回転位置を検出するエンコーダが設けられる。ロボット本体３は、サーボモータを駆動させることでハンド２を移動させることができ、その際に、エンコーダによるサーボモータの回転位置の検出結果から、ハンド２の位置を求めることができる。
【００１５】
画像取得手段４は、対象物Ｗを撮影して画像を取得する手段であり、本実施例ではカメラとされる。図１に示されるように、カメラ４は、二台用いられており、対象物Ｗを異なる方向から撮影することができる。なお、画像取得手段４は、カメラに限定されるものではなく、たとえば、レーザの対象物Ｗによる反射を用いて対象物Ｗの表面の点の３次元座標を示す３次元点群を計測するものなど、対象物Ｗの位置姿勢を求めるために、対象物Ｗの各種画像や対象物Ｗの表面の３次元座標を示す３次元点群を取得できるものであればよく、従来公知のものを用いることができる。また、本実施例では、カメラ４の台数は、二台とされたが、これに限定されるものではなく、一台または三台以上でもよい。
【００１６】
コンピュータ装置Ｃは、対象物認識手段５と、カメラ４で撮影された画像データなどを記憶する画像メモリ７と、プログラム自動生成装置８と、ディスプレイなどからなる表示手段９とを備える。対象物認識手段５は、画像取得手段４で取得された対象物Ｗの画像に基づき、対象物Ｗの３次元位置姿勢を求めるものである。本実施例では、二台のカメラ４，４によって取得された対象物Ｗの画像データが画像メモリ７に記憶され、この画像データに基づいて、対象物Ｗの３次元位置姿勢を求めることができる。
【００１７】
この対象物認識手段５によって対象物Ｗの位置姿勢を求めるための方法として、従来公知の方法を用いることができ、二台のカメラ４，４によって取得した画像データや３次元点群を用いて、たとえば、特開２０１０−２０５０９５号公報、特開２０１１−１２９０８２号公報、特開２０１２−０２６９７４号公報に開示されている位置姿勢を求める方法などを用いることができる。そして、対象物認識手段５により求められた対象物Ｗの位置姿勢に基づき、制御手段６によりロボット本体３の動作を制御することができる。なお、画像メモリ７に記憶された画像データは、ディスプレイなどの表示手段９に表示することができる。
【００１８】
本実施例のロボット１は、そのハンド２によって作業台１０の上に載置された対象物Ｗを把持し、目的の場所Ｐへと対象物Ｗを運ぶ作業を行うものである。なお、本実施例のロボット１は、ハンド２により対象物Ｗを把持する構成とされたが、これに限定されるものではない。たとえば、真空ポンプなどの吸引装置を用いて対象物Ｗを吸着して保持する構成としてもよい。
【００１９】
プログラム自動生成装置８は、対象物Ｗに対してロボット１のハンド２による作業を行わせるプログラムの生成装置とされ、フローチャート作成手段１１と、記憶手段１２と、プログラム作成手段１３とを備える。
【００２０】
フローチャート作成手段１１は、ロボット１のハンド２による作業の流れが複数のステップで示されるフローチャートを作成する手段であり、たとえば、キーボードやマウスなどとされる。ここで、ロボット１のハンド２による作業は、後述するように複数の作業工程からなり、この各作業工程を示すものがステップとされる。フローチャート作成手段１１であるキーボードやマウスなどを操作することで、フローチャートに用いられる種々の記号や線を作図したり、記号内部や周辺に配置される文字を入力したりして、ステップを作成することができる。なお、記号とは、端子を示す略小判形状の図形、処理を示す四角形状の図形、および判断を示す菱形状の図形などである。線とは、記号と記号との間を結ぶ線であり、処理の流れを示すものである。
【００２１】
記憶手段１２は、フローチャートの複数のステップのそれぞれについて、ステップとそのステップに対応するソースプログラム（ソースコード）とが対応付けられた状態で記憶されている。ここで、ソースプログラムとは、ロボット１のハンド２による作業の各作業工程を独立して実現するためのプログラムとされる。すなわち、記憶手段１２は、複数の作業工程それぞれについて、作業工程とその作業工程を実現するプログラムとが対応付けられて記憶されている。なお、本実施例では、ＲＡＭ１４の一部の領域が記憶手段１２として利用されている。
【００２２】
プログラム作成手段１３は、ロボット１のハンド２による作業を実現する一連のプログラムを作成する手段である。具体的には、フローチャート作成手段１１で作成されるステップに基づき、記憶手段１２から対応するソースプログラムが取得され、取得されたソースプログラムがステップの作成順序で結合されてプログラムが作成される。従って、キーボードやマウスなどを用いてステップが作成されることで、その作成されたステップに基づき記憶手段１２から対応するソースプログラムが取得される。そして、ステップの作成順に、取得されたソースプログラムが結合され、ロボット１のハンド２による作業を実現する一連のプログラムが作成される。この際、ステップの作成順序は、処理の流れの順序とされる。
【００２３】
前述したように、画像取得手段４と対象物認識手段５とにより、対象物Ｗの３次元位置姿勢の情報が求められる。そして、求められた３次元位置姿勢の情報が与えられたロボット制御プログラムがロボット本体３に対して出力される。これにより、自動的にロボット１のハンド２により対象物Ｗを把持して目的の場所Ｐまで運んでその場所Ｐに対象物Ｗを置くという一連の作業を行うことができる。
【００２４】
本実施例のプログラム自動生成装置８は、前述したロボット制御プログラムを作成するものであり、その動作は以下のとおりである。まず、記憶手段１２には、予め、ロボット１のハンド２による作業の流れを示すフローチャートの複数のステップのそれぞれについて、ステップとそのステップに対応するソースプログラムとが対応付けられて格納されている。なお、各ソースプログラムは、予め作成されたものを用いる。
【００２５】
その状態で、作成者は、フローチャート作成手段１１により、ディスプレイなどからなる表示手段９に、フローチャートのステップを表示する。具体的には、キーボードやマウスなどを操作して、フローチャートの種々の記号や線を作図すると共に、記号内部や周辺に文字を入力して、フローチャートのステップを記述する。ステップが記述されることで、プログラム作成手段１３によって、記憶手段１２から作成されたステップに対応するステップが探し出され、作成されたステップに対応するソースプログラムが取得される。
【００２６】
そして、ロボット１のハンド２による作業の流れの順に、フローチャートの各ステップを作成することで、プログラム作成手段１３により、ソースプログラムがステップの作成順に結合される。このようにして、各ステップを順次作成することで、作業の一連の流れを示すフローチャートを作成することができる。そして、ソースプログラムを結合して、作業を実現するための一連のプログラムを作成することができる。
【００２７】
その後、結合されたソースプログラムの翻訳が実施され、プログラム生成に係る処理が終了する。生成されたプログラムは、作成されたフローチャートに対応付けられてＲＡＭ１４に記憶されて保存される。そして、ロボット１を動作させる際に、ＲＡＭ１４からプログラムが読み出されて実行される。なお、記憶されたプログラムやフローチャートは、新しくフローチャートやプログラムを作成する際に使用することができる。
【００２８】
ところで、本実施例のプログラム自動生成装置８は、フローチャート作成手段１１で作成されるフローチャートに、対象物Ｗの３次元位置姿勢を求める３次元位置姿勢認識ステップが含まれるプログラムを作成するものである。前述したように、対象物Ｗの３次元位置姿勢は、画像取得手段４と対象物認識手段５とにより求めることができる。従って、本実施例では、記憶手段１２に予め、３次元位置姿勢認識ステップと、画像取得手段４および対象物認識手段５を作動させるソースプログラムとが対応付けられて格納されている。
【００２９】
さらに、本実施例のプログラム自動生成装置８は、シミュレータにより、ロボット１のハンド２による作業を実現する一連のプログラムの実行に要する時間をシミュレーションできるようプログラムすることができる。そして、ロボット１の動作をシミュレータで確認後、ロボット１の動作サイクルを示すタイムチャートを出力できるようプログラムすることができる。
【００３０】
次に、本実施例のロボット１による作業の具体例を挙げ、その場合のプログラム自動生成装置８の動作について説明する。図２は、図１のプログラム自動生成装置により作成されるフローチャートの表示例を示す図であり、図３は、図１のロボットによる作業を実現するソースプログラムの結合の概念図である。前述したように、本実施例のロボット１は、ハンド２により対象物Ｗを把持して目的の場所Ｐへ移動させる作業を行うものである。ここで、記憶手段１２には、予め、ステップＳ１からＳ６のそれぞれについて、ステップとステップに対応するソースプログラムとが対応付けられて格納されている。
【００３１】
図２に示されるように、まず、キーボードやマウスなどからなるフローチャート作成手段１１により、端子を示す略小判形状の図形１５、その図形１５内部に配置される「スタート」の文字１６、および上下方向へ沿う線１７とが作成されて、ディスプレイなどの表示手段９に表示される。その後、ステップＳ１が作成される。
【００３２】
具体的には、フローチャート作成手段１１により、処理を示す四角形状の図形１８、その図形１８内部に配置される「対象物の認識」の文字１９、および上下方向へ沿う線２０が作成されてステップＳ１が作成され、表示手段９に表示される。ステップＳ１が作成されることで、プログラム作成手段１３により、記憶手段１２からステップＳ１に対応するソースプログラムが取得される。このステップＳ１は、前述した３次元位置姿勢認識ステップである。従って、ステップＳ１に対応するソースプログラムは、画像取得手段４と対象物認識手段５とを作動させるソースプログラムである。
【００３３】
ステップＳ１の作成後、フローチャート作成手段１１により、処理を示す四角形状の図形２１、その図形２１内部に配置される「初期位置から対象物へのハンドの移動」の文字２２、および上下方向へ沿う線２３が作成されて、ステップＳ２が作成される。このステップＳ２が作成されることで、プログラム作成手段１３により、記憶手段１２からステップＳ２に対応するソースプログラムが取得される。
【００３４】
「ハンドで対象物を把持」の文字２４を有するステップＳ３、「対象物を目的の場所まで移動」の文字２５を有するステップＳ４、「対象物のハンドによる把持の解除」の文字２６を有するステップＳ５、および「ハンドの初期位置への移動」の文字２７を有するステップＳ６は、その順に、前述したステップＳ１やステップＳ２と同様にして、フローチャート作成手段１１により作成される。そして、前述したステップＳ１やステップＳ２と同様にして、ステップＳ３からステップＳ６のそれぞれについて、ステップが作成されることで、プログラム作成手段１３により、記憶手段１２から作成されたステップに対応するソースプログラムが取得される。ステップＳ６の作成後、フローチャート作成手段１１により、端子を示す略小判形状の図形２８、およびその図形２８内部に配置される「エンド」の文字２９が作成される。
【００３５】
このようにして作成されるフローチャート３０は、ディスプレイなどの表示手段９に表示される。表示手段９に表示されたフローチャート３０を作成者が確認後、取得されたソースプログラムが結合される。具体的には、ステップＳ１からステップＳ６の順に、フローチャート３０の各ステップを作成することで、プログラム作成手段１３により、図３に示されるようにソースプログラムがステップの作成順に結合される。これにより、ロボット１のハンド２による作業を実現するための一連のロボット制御プログラムを作成することができる。その後、作成者によりプログラム生成の終了の指示がなされると、結合されたソースプログラムの翻訳が実施され、プログラム生成に係る処理が終了する。
【００３６】
本実施例のプログラム自動生成装置８によれば、フローチャート３０を作成することで、ロボット１のハンド２による作業の一連のプログラムを作成することができる。従って、ソースプログラムよりも容易に作成できるフローチャート３０を作成することでプログラムを作成することができるため、エンジニアによるコーディングと比較して、ロボット１を制御するためのプログラムを容易に作成することができる。
【００３７】
また、本実施例のプログラム自動生成装置８によれば、対象物Ｗの３次元位置姿勢を認識できるステップが含まれるプログラムを作成するものであり、３次元位置姿勢認識ステップを作成することで、そのステップを実現するためのプログラムを作成することができる。従って、対象物Ｗの３次元位置姿勢を認識できるため、ロボット１のハンド２による作業をより正確に行うことができるので、その作業をより正確に行わせるプログラムを容易に作成することができる。
【００３８】
なお、本発明の実施例は上述の形態に限るものではなく、本発明の思想の範囲を逸脱しない範囲で適宜変更することができる。
【産業上の利用可能性】
【００３９】
本発明に係るプログラム自動生成装置は、生産システムにおけるワークの位置および姿勢を認識して、ワークに対して作業を行うロボットなどの動作を制御するプログラムを作成するための技術として有効に利用することができる。
【符号の説明】
【００４０】
１  ロボット
２  ハンド
４  カメラ（画像取得手段）
５  対象物認識手段
８  プログラム自動生成装置
１１  フローチャート作成手段
１２  記憶手段
１３  プログラム作成手段
３０  フローチャート
Ｗ  対象物
【図１】
2017064844.tif 000003
【図２】
2017064844.tif 000004
【図３】
2017064844.tif 000005