JP2013158869A - ロボット制御装置、ロボットシステム、ロボット制御方法 - Google Patents
ロボット制御装置、ロボットシステム、ロボット制御方法 Download PDFInfo
- Publication number
- JP2013158869A JP2013158869A JP2012021640A JP2012021640A JP2013158869A JP 2013158869 A JP2013158869 A JP 2013158869A JP 2012021640 A JP2012021640 A JP 2012021640A JP 2012021640 A JP2012021640 A JP 2012021640A JP 2013158869 A JP2013158869 A JP 2013158869A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- scenario
- evaluation value
- scenarios
- goal
- 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
Abstract
【課題】指定する優先項目の評価値が高いシナリオを選出して実行できるロボット制御方法を実現する。
【解決手段】ロボット制御方法は、少なくとも一つのロボット動作命令を含む複数のシナリオを取得することと、設定された優先項目に基づき前記複数のシナリオから一つのシナリオを選出することと、選出された前記シナリオに基づき動作命令を出力し、前記ロボットを動作させること、を含む。このようなロボット制御方法によれば、優先項目の評価値が高いシナリオを選出して実行し、動作の優先項目が複数ある場合にも最も適切なシナリオを選出できる。
【選択図】図4
【解決手段】ロボット制御方法は、少なくとも一つのロボット動作命令を含む複数のシナリオを取得することと、設定された優先項目に基づき前記複数のシナリオから一つのシナリオを選出することと、選出された前記シナリオに基づき動作命令を出力し、前記ロボットを動作させること、を含む。このようなロボット制御方法によれば、優先項目の評価値が高いシナリオを選出して実行し、動作の優先項目が複数ある場合にも最も適切なシナリオを選出できる。
【選択図】図4
Description
本発明は、ロボット制御装置、このロボット制御装置を備えるロボットシステム、及びロボット制御方法に関する。
ロボットの動作を制御するためには、動作する外部環境とロボット自身の特性とを組み合わせて動作目的に適した制御プログラムを用いて制御を行う必要がある。
そこで、ロボットの機体動作を記述する複数の行動記述部と、機体の外部環境を認識する外部環境認識部と、認識された外部環境や行動の実行結果に応じた内部状態を管理する内部状態管理部と、外部環境や内部状態に応じて各行動記述部に記述された行動の実行を評価する行動評価部と、を備えるロボットの制御システムが提案されている(例えば、特許文献1参照)。
また、ロボットのプログラムに対して、ある区間の動作条件を含む命令を追加しようとする時、その動作条件と競合する命令がプログラム中に既存の場合には、競合する条件の全てについて表示することで、条件の競合を容易に確認できるロボットのプログラム制御方法がある(例えば、特許文献2参照)。
上述した特許文献1では、視覚や聴覚などの外部環境の認識結果や情動などのロボットの内部状態などからロボットがおかれている状況を統合的に判断して、次の行動を選出するものであって、多くの外部環境の認識情報を基に実行した行動を評価し、次の行動を制御するため、その統合的判断は非常に複雑になることから行動統制がとりにくく、動作の優先順位に沿った動作をさせることは困難である。
また。特許文献2では、ロボットの動作制御プログラムにおいて、動作区間内の競合条件が複数ある場合に、それを表示することで競合を回避することを容易にするプログラム制御方法であるが、プログラム入力者の判断によりプログラミングが行われる。従って、動作の優先項目が複数ある場合には複雑な判断が必要となるという課題がある。
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
[適用例1]本適用例に係るロボット制御装置は、少なくとも一つのロボット動作命令を含む複数のシナリオが格納されるデータベースと、ロボット動作のゴールに対応して設定される優先項目の設定手段と、設定された前記優先項目に基づき前記複数のシナリオから一つのシナリオを選出するシナリオ選出手段と、選出された前記シナリオに基づき動作命令を出力する命令実行手段と、を備えていること、を特徴とする。
ここで、ゴールとはロボットが実行する内容であって、例えば、「ワークWを位置XSからXEまで移動させる」というようなロボットの動作目的を意味する。
また、シナリオとはゴールを実現させるためのルールであって、例えば、ワークWをスタート位置XSから終点位置XEまで直線的に移動させる、あるいは、中間位置X1または中間位置X2を経由して終点位置XEまで移動させるというように、同じゴールを実現するためのルールである。
また、優先項目とは、ゴールの実現のために重要視するシナリオの条件である。
また、シナリオとはゴールを実現させるためのルールであって、例えば、ワークWをスタート位置XSから終点位置XEまで直線的に移動させる、あるいは、中間位置X1または中間位置X2を経由して終点位置XEまで移動させるというように、同じゴールを実現するためのルールである。
また、優先項目とは、ゴールの実現のために重要視するシナリオの条件である。
本適用例によれば、複数のシナリオからゴールを実現するための優先項目を設定し、優先項目に基づき、複数のシナリオの中から一つの最適なシナリオを選出し、ロボットを動作させることができる。
[適用例2]上記適用例に係るロボット制御装置において、前記データベースは、前記ロボット動作命令に対応するロボット動作情報を格納し、前記シナリオ選出手段は、設定された前記優先項目と、前記ロボット動作命令に対応するロボット動作情報とに基づき前記複数のシナリオから一つのシナリオを選出すること、が好ましい。
ここで、ロボット動作情報とは、例えば、シナリオ実行に要する時間、平均速度、成功率である。
ここで、ロボット動作情報とは、例えば、シナリオ実行に要する時間、平均速度、成功率である。
このように、ロボット動作情報に基づきシナリオを選出すれば、動作効率のよいシナリオを選出してロボットを動作させることができる。
[適用例3]上記適用例に係るロボット制御装置において、ロボット動作の前記ゴールを実現するシナリオを前記複数のシナリオから検出する検出手段を更に備えていること、が好ましい。
ロボット動作のゴールを実現するシナリオが複数存在する場合(仮に、シナリオA群とする)、まず、このシナリオ群を検出し、このシナリオA群から前述した優先項目、ロボット動作情報に基づき一つのシナリオを選出すれば、効率よく最適シナリオを選出できる。
[適用例4]上記適用例に係るロボット制御装置において、前記シナリオ選出手段は、前記優先項目に基づき前記シナリオの評価値を算出するシナリオ評価値計算手段と、前記複数のシナリオから、前記ゴールとマッチングする前記評価値の高いシナリオを選出するシナリオマッチング手段と、を有していること、が好ましい。
このような構成によれば、シナリオ評価値計算手段によって評価値を計算し、優先項目に従ってゴールを実現するシナリオをデータベースに格納される複数のシナリオの中から選出し、評価値が高いシナリオで動作を実行させる。従って、ゴール実現のためにユーザーにとって最も適切なシナリオによって動作を実行させることができる。
[適用例5]上記適用例に係るロボット制御装置において、前記優先項目には、前記ロボット動作の安全性を表す安全評価値と、前記ロボット動作の効率性を表す効率評価値と、前記ロボット動作の成功率を表す成功評価値と、のいずれかが含まれていること、が好ましい。
このように、安全評価値、効率評価値、成功評価値によってシナリオを評価し、優先項目の評価値が高いシナリオを選出すれば、効率的で安全性が高いロボット動作を実行させることができる。
[適用例6]上記適用例に係るロボット制御装置において、前記安全評価値は、前記ロボット動作の動作範囲における要注意範囲と、前記ロボット動作の動作平均速度を用いて算出されること、が好ましい。
ここで、要注意範囲とは、例えば、ロボットの動作範囲に障害物がある範囲や操作者の作業範囲等であり、安全性を優先する場合、このような要注意範囲を回避して動作を実行させなければならない。よって、要注意範囲と動作平均速度を用いて算出した安全評価値を優先項目に指定すれば、安全性を重視したシナリオを選出できる。
[適用例7]上記適用例に係るロボット制御装置において、前記効率評価値は、前記ロボット動作の動作平均速度と前記ロボット動作の動作距離とを用いて算出されること、が好ましい。
ここで、効率は、ゴールの実行タクトタイムとして評価する。従って、ロボット動作の動作平均速度と動作距離とを用いて算出した効率評価値を優先項目にすれば、効率性を重視した動作を実行させることができる。
[適用例8]上記適用例に係るロボット制御装置において、前記成功評価値は、前記ゴールの実行に必要な命令数と、前記成功率とを用いて算出されること、が好ましい。
例えば、ワークWをスタート位置XSで掴む、終点位置XEまで移動させ、終点位置XEでワークWを離す、等のシナリオが複数ある場合、それぞれのシナリオで作業の成功率が異なる。従って、成功評価値を重視したシナリオを選出すれば、作業エラーが少ない動作を実行させることができる。
[適用例9]上記適用例に係るロボット制御装置において、前記命令実行手段によるロボット動作の実行後のデータに基づき、前記ロボット動作命令に対応するロボット動作情報が更新されること、が好ましい。
このようにすれば、繰り返し動作のなかで得られたロボット動作情報をデータベースに追加または更新することにより、常に最適なシナリオを選出して動作を実行させることができる。
[適用例10]本適用例に係るロボットシステムは、少なくとも一つのロボット動作命令を含む複数のシナリオが格納されるデータベースと、ロボット動作のゴールに対応して設定される優先項目の設定手段と、設定された前記優先項目に基づき前記複数のシナリオから一つのシナリオを選出するシナリオ選出手段と、選出された前記シナリオに基づき動作命令を出力する命令実行手段と、を備えていることを特徴とする。
本適用例によれば、複数のシナリオからゴールを実現するための優先項目を設定し、優先項目に基づき、複数のシナリオの中から一つの最適なシナリオを選出し、ロボットを動作させることができる。
[適用例11]本適用例に係るロボット制御方法は、少なくとも一つのロボット動作命令を含む複数のシナリオを取得することと、設定された優先項目に基づき前記複数のシナリオから一つのシナリオを選出することと、選出された前記シナリオに基づき動作命令を出力し、前記ロボットを動作させること、を特徴とする。
本適用例によれば、優先項目に基づき複数のシナリオから最適なシナリオを選出し、ロボットを動作させることから、指定する優先項目に対応した最適なシナリオを選出して実行させること、優先順位の高いシナリオを選出して実行させることが可能なロボットシステムを実現できる。
以下、本発明の実施の形態を図面を参照して説明する。
なお、以下の説明で参照する図は、各部材を認識可能な大きさとするため、各部材ないし部分の縦横の縮尺は実際のものとは異なる模式図である。
(ロボットシステム)
なお、以下の説明で参照する図は、各部材を認識可能な大きさとするため、各部材ないし部分の縦横の縮尺は実際のものとは異なる模式図である。
(ロボットシステム)
まず、ロボットシステム100の構成について説明する。
図1は、ロボットシステム100の構成を示すブロック図である。ロボットシステム100は、ロボット制御装置10とロボット120とを備えている。本実施例におけるロボット制御装置10は、PC(Personal Computer)であって、CPU、RAM、ROM等を備えた制御部11と、データベース30と、外部の機器と通信するためのUSB(Universal Serial Bus)等の外部I/F等を備えている。制御部11は、マウスやキーボード等の操作部400と、モニター等の表示部300と、外部I/Fを介して接続している。
図1は、ロボットシステム100の構成を示すブロック図である。ロボットシステム100は、ロボット制御装置10とロボット120とを備えている。本実施例におけるロボット制御装置10は、PC(Personal Computer)であって、CPU、RAM、ROM等を備えた制御部11と、データベース30と、外部の機器と通信するためのUSB(Universal Serial Bus)等の外部I/F等を備えている。制御部11は、マウスやキーボード等の操作部400と、モニター等の表示部300と、外部I/Fを介して接続している。
ユーザーは操作部400を操作してロボット制御装置10に指示を与えることができるとともに、ロボット制御装置10が表示する各種の情報を表示部300によって認識することができる。ロボット制御装置10は、ROMやHDDに記憶された各種のプログラムをRAMにロードしCPUで実行することができる。本実施例ではこのプログラムの一つとして制御部11がロボット制御プログラム12を実行することにより、ロボット制御装置10として機能させることができる。ロボット制御装置10は外部I/Fを介してロボット120と各種信号を送受信することができる。
ロボット制御プログラム12は、シナリオ取得手段としてのシナリオ取得部13、シナリオ選出手段としてのシナリオ選出部14、命令実行手段としての命令実行部15、等のプログラムを備える。
シナリオ取得部13は、シナリオ作成者が作成したシナリオを示すデータを取得する機能を有する。本実施例においてシナリオは、ロボット120に実行させる複数の命令を直列的な実行順を指定して並べたルールである。例えばシナリオ作成者が操作部400を操作して作成した複数のシナリオを示すデータを、シナリオ取得部13で取得する。
シナリオ選出部14は、指定された優先項目に基づき前述した複数のシナリオの評価値を計算するシナリオ評価値計算部14aと、シナリオ評価値計算部14aによって得られた評価値とゴールとがマッチングする一つのシナリオを選出するシナリオマッチング部14bとを備える。優先項目には、安全性、効率性、成功率等の評価項目が含まれる。
なお、
なお、
データベース30は、取得した複数のシナリオを格納するライブラリー31と、シナリオを選出するための情報を格納するシナリオ選出情報32と、を備える。シナリオ選出情報32には、前述した優先項目のうちの成功率が含まれる。
命令実行部15は、選出されたシナリオに基づきロボット120の動作命令を出力する。
命令実行部15は、選出されたシナリオに基づきロボット120の動作命令を出力する。
ロボット120は、アームとアームコントローラーとを備え、図1は2本のアームを有するロボット120を例示しており、一方のアームを右アーム23、他方のアームを左アーム24とする。そして、右アーム23を制御するコントローラーをアームコントローラー21、左アーム24を制御するコントローラーをアームコントローラー22とする。
なお、アームが1本構成のロボット20は、右アーム23とアームコントローラー21とから構成される。
(ロボットの構成)
なお、アームが1本構成のロボット20は、右アーム23とアームコントローラー21とから構成される。
(ロボットの構成)
ロボットには、アームが複数の場合、1本の場合があるが、以降、1本アームの場合と、2本アームの場合を例示して説明する。
図2は、1本アームを有するロボット20を模式的に示す正面図である。ロボット20は、基部203と、右アーム23とを備えている。右アーム23は、腕部200や関節部201やロボットハンド202等を備えた所謂ロボットアームであり、動作対象物(以降、ワークWと表す)を「掴む」ことや「放す」こと、また、ワークを所定の位置に「移動させる」こと等の動作を、ロボット制御装置10からの指示に応じて行う動作主体である。
図2は、1本アームを有するロボット20を模式的に示す正面図である。ロボット20は、基部203と、右アーム23とを備えている。右アーム23は、腕部200や関節部201やロボットハンド202等を備えた所謂ロボットアームであり、動作対象物(以降、ワークWと表す)を「掴む」ことや「放す」こと、また、ワークを所定の位置に「移動させる」こと等の動作を、ロボット制御装置10からの指示に応じて行う動作主体である。
それらの動作を行うために右アーム23は各種の駆動部品を備えている。アームコントローラー21(図1、参照)は、ロボット制御装置10から指示された命令に応じて対応する右アーム23を動作させるために各駆動部品の制御を行うとともに、命令に対応する動作が完了したことをロボット制御装置10に通知し、動作実行後のデータはライブラリー31(図1、参照)に格納される。
図2に示す基部203は、右アーム23を間接的に支持し、ロボット制御装置10はこの基部203の内部に設けられていても良く、あるいは、ロボット20とは別体に設けられていてもよい。
図3は、2本アームを有するロボット120を模式的に示す正面図である。ロボット120は、基部203と、右アーム23と、左アーム24とを備えている。右アーム23の構成は1本アーム構造(図2、参照)と同じであって、左アーム24は、腕部210や関節部211やロボットハンド212等をそれぞれに備えたロボットアームであり、ワークを「掴む」ことや「放す」こと、また、ワークを所定の動作位置に「移動させる」こと等の動作を、ロボット制御装置10からの指示に応じて行う動作主体である。
それらの動作を行うために右アーム23および左アーム24は各種の駆動部品を備えている。アームコントローラー21は、ロボット制御装置10から指示された命令に応じて対応する右アーム23を動作させるために各駆動部品の制御を行うとともに、命令に対応する動作が完了したことをロボット制御装置10に通知する。アームコントローラー22も同様に、ロボット制御装置10から指示された命令に応じて対応する左アーム24を動作させるために駆動部品の制御を行うとともに、命令に対応する動作が完了したことをロボット制御装置10に通知する。動作実行後のデータはライブラリー31に格納される。
基部203は、右アーム23及び左アーム24を間接的に支持し、ロボット制御装置10はこの基部203の内部に設けられていても良く、あるいは、ロボット120とは別体に設けられていてもよい。
(ロボット制御方法)
(ロボット制御方法)
続いて、ロボット制御方法について説明する。
図4は、ロボット制御方法の流れを示すフローチャートである。なお、ロボット制御方法の流れは、1本アームのロボット20と、2本アームのロボット120とは共通に説明できる。まず、ゴールGを入力する(S1)。ここでゴールGとは、ロボット20,120に所定の作業を行わせるため命令である。例えば、「ワークWをXS位置からXE位置まで移動させる」というような作業目的と置き換えることができる。
図4は、ロボット制御方法の流れを示すフローチャートである。なお、ロボット制御方法の流れは、1本アームのロボット20と、2本アームのロボット120とは共通に説明できる。まず、ゴールGを入力する(S1)。ここでゴールGとは、ロボット20,120に所定の作業を行わせるため命令である。例えば、「ワークWをXS位置からXE位置まで移動させる」というような作業目的と置き換えることができる。
次に、優先項目の設定手段により優先項目Pを入力する(S2)。優先項目Pは、安全性を優先するか、効率性を優先するか、作業の成功率を優先するか、等から1項目または複数項目を選択して入力する。優先項目の設定手段は、操作部400に含まれるユーザーインターフェイスである。なお、優先項目Pは、優先順位をつけて複数設定することができる。
次に、シナリオA群を検出する(S3)。シナリオA群とは、ライブラリー31に格納されている多数のシナリオ(例えば、100個)の中の前述したゴールGを実現可能な複数の個別シナリオの群である。つまり、ゴールGを実現するシナリオは複数存在している。検出したシナリオA群を予め設定されている優先項目Pに基づき評価値計算を行い(S4)、評価値が高いシナリオSを選出し(S5)、このシナリオSを実行し(S6)、ロボット20(またはロボット120)を動作させる。
ロボット制御装置10では、シナリオSの実行を常時監視し、データベース(DB)30に各検出情報を記録する(S7)。各検出情報としては、実行されたたシナリオの回数、そのシナリオ内で実行された命令、その命令の開始/終了時間、実行結果、操作者、等を含む。このように、データベース30のライブラリー31には常に、過去のシナリオ実行に関わる情報に新しい情報を加えていく。
次に、シナリオA群の検出方法について説明する。
図5は、シナリオA群の検出処理の流れを示すフローチャートである。まず、ゴールGの入力後、ライブラリー31にシナリオNが存在しているかチェックする(S10)。つまり、シナリオNが少なくとも一つ格納されていることをチェックする。そしてシナリオ[N]が存在するか判断する(S11)。シナリオ[N]が存在しない場合(No)には、シナリオによる動作が不可能なため処理は行わず初期に戻る(S15)。つまり、このような場合には、ゴールGを実現するシナリオをライブラリーに入力しなければならない。シナリオ[N]がライブラリー31に存在する(Yes)場合には、このシナリオ[N]がゴールGとマッチングするか判定する(S12)。そして、このシナリオ[N]がゴールGとマッチングした場合にはシナリオA群にシナリオ[N]を追加する(S13)。つまりシナリオ[N]に、シナリオを新たに1個追加し更新する(S14)。このように、シナリオNの検出とシナリオA群に追加したシナリオ(Nプラス)とゴールGとのマッチングを繰り返す。
図5は、シナリオA群の検出処理の流れを示すフローチャートである。まず、ゴールGの入力後、ライブラリー31にシナリオNが存在しているかチェックする(S10)。つまり、シナリオNが少なくとも一つ格納されていることをチェックする。そしてシナリオ[N]が存在するか判断する(S11)。シナリオ[N]が存在しない場合(No)には、シナリオによる動作が不可能なため処理は行わず初期に戻る(S15)。つまり、このような場合には、ゴールGを実現するシナリオをライブラリーに入力しなければならない。シナリオ[N]がライブラリー31に存在する(Yes)場合には、このシナリオ[N]がゴールGとマッチングするか判定する(S12)。そして、このシナリオ[N]がゴールGとマッチングした場合にはシナリオA群にシナリオ[N]を追加する(S13)。つまりシナリオ[N]に、シナリオを新たに1個追加し更新する(S14)。このように、シナリオNの検出とシナリオA群に追加したシナリオ(Nプラス)とゴールGとのマッチングを繰り返す。
ステップ:S12において、シナリオ[N]とゴールGとがマッチングしなかった場合(No)には、検出するシナリオNの次のシナリオN+1とのマッチング判定を行う。このようにしてシナリオA群を更新しながらゴールGとマッチングするシナリオA群を検出する。
次に、実行可能なシナリオSの選出方法について説明する。
図6は、シナリオSの選出処理の流れを示すフローチャートである。まず、シナリオA群の検出フロー(S14、図5参照)でライブラリー31にはシナリオNが少なくとも1個あり、前述した優先項目Pに対応する最大評価値=0の場合(S31)、シナリオA群のシナリオ[N]が存在するか判定する(S32)。最大評価値=0とは、過去に評価値を計算したデータが無いことを意味する。
図6は、シナリオSの選出処理の流れを示すフローチャートである。まず、シナリオA群の検出フロー(S14、図5参照)でライブラリー31にはシナリオNが少なくとも1個あり、前述した優先項目Pに対応する最大評価値=0の場合(S31)、シナリオA群のシナリオ[N]が存在するか判定する(S32)。最大評価値=0とは、過去に評価値を計算したデータが無いことを意味する。
シナリオA群のシナリオ[N]がある場合(Yes)には、優先項目Pに基づきこのシナリオ[N]の評価値計算を行う(S33)。そして、計算した評価値が最大評価値よりも大きいか判定する(S34)。評価値>最大評価値となる場合(Yes)には、シナリオ[N]が実行すべきシナリオSに相当し、このシナリオの評価値が最大評価値であると判断する(S35)。このようにして得られた最大評価値はシナリオA群の最大評価値としてライブラリー31内に1個追加し更新する(S36)。
このようにしてシナリオA群のシナリオSを選出し、ライブラリーを更新することを繰り返す。
このようにしてシナリオA群のシナリオSを選出し、ライブラリーを更新することを繰り返す。
なお、ステップ:S32においてシナリオA群のシナリオ[N]が無いと判定した場合(No)には、実行可能なシナリオSが存在しないので選出処理は行わずに初期状態に戻る(S37)。また、ステップ:S34において評価値>最大評価値が得られなかった場合(No)、ステップ:S36に移行する。
次に、評価値計算方法について説明する。
図7は、評価値計算の処理の流れを示すフローチャートである。まず、シナリオA群を検出(ステップ:S3,図4参照)した後、シナリオA群に含まれる各シナリオNによるシミュレーションを行い(S20)、安全、効率、成功率の各優先項目の評価計算を行う。優先項目Pが安全の場合(S21)は、安全評価計算を行い(S22)、優先項目Pが効率の場合(S23)は、効率評価計算を行い(S24)、優先項目Pが成功率の場合(S25)は、成功率評価計算を行う(S26)。このようにして算出した各評価値の最大値に基づき実行すべきシナリオSを選出する(S5、図4参照)。
図7は、評価値計算の処理の流れを示すフローチャートである。まず、シナリオA群を検出(ステップ:S3,図4参照)した後、シナリオA群に含まれる各シナリオNによるシミュレーションを行い(S20)、安全、効率、成功率の各優先項目の評価計算を行う。優先項目Pが安全の場合(S21)は、安全評価計算を行い(S22)、優先項目Pが効率の場合(S23)は、効率評価計算を行い(S24)、優先項目Pが成功率の場合(S25)は、成功率評価計算を行う(S26)。このようにして算出した各評価値の最大値に基づき実行すべきシナリオSを選出する(S5、図4参照)。
なお、シナリオ実行に対するシミュレーションに用いる計算項目は以下の通りである。
要注意範囲=ロボットアームの要注意領域にかかっている動作範囲の体積(または距離、または要注意範囲から飛び出した体積や距離の最大値)。
時間=シナリオ実行終了時間−開始時間。
動作距離=シナリオによるロボットアームの経路計算。
平均速度=動作距離/時間
命令実行部15からのロボットに対する命令数。
シナリオ使用頻度=対象のシナリオが実行された回数/全てのシナリオが実行された回数。
要注意範囲=ロボットアームの要注意領域にかかっている動作範囲の体積(または距離、または要注意範囲から飛び出した体積や距離の最大値)。
時間=シナリオ実行終了時間−開始時間。
動作距離=シナリオによるロボットアームの経路計算。
平均速度=動作距離/時間
命令実行部15からのロボットに対する命令数。
シナリオ使用頻度=対象のシナリオが実行された回数/全てのシナリオが実行された回数。
上記各計算値を用いて実行対象のシナリオの評価計算を行う。各優先項目に対する評価値計算式は以下の通りである。
安全評価値=a11/要注意範囲+a12/平均速度。
効率評価値=a21×平均速度+a22/動作距離。
成功評価値(成功率)=a31/命令数+Σa32iの成功値。
使用頻度評価値=a4×使用頻度。
ユーザー指定評価値=シナリオがユーザー指定ならばa5、または0。
なお、命令iの成功率=データベース30のシナリオ選出情報32に格納されたデータを検索して用いる。成功率はワークの大きさや重さを考慮して設定されている。
また、上記a11,a12,a21……などのa*(*はa項に続く数字を表す)は、定数であって、a*/0=0とする。
以上説明したロボット制御方法を用いた具体的な実施例について説明する。
(実施例1)
安全評価値=a11/要注意範囲+a12/平均速度。
効率評価値=a21×平均速度+a22/動作距離。
成功評価値(成功率)=a31/命令数+Σa32iの成功値。
使用頻度評価値=a4×使用頻度。
ユーザー指定評価値=シナリオがユーザー指定ならばa5、または0。
なお、命令iの成功率=データベース30のシナリオ選出情報32に格納されたデータを検索して用いる。成功率はワークの大きさや重さを考慮して設定されている。
また、上記a11,a12,a21……などのa*(*はa項に続く数字を表す)は、定数であって、a*/0=0とする。
以上説明したロボット制御方法を用いた具体的な実施例について説明する。
(実施例1)
実施例1では、1本アームのロボット20の制御方法の1具体例を挙げ説明する。
図8は、実施例1に係るロボット20の制御方法の1例を模式的に示す説明図である。実施例1のゴールGは、「ワークWを位置XSから位置XEに移動させる」というものである。仮に、このゴールGを実現するシナリオA群の中に含まれるシナリオ[N]は、シナリオ11とシナリオ12と、シナリオ13の3通りがあるものとする。シナリオ11は、ワークWを障害物J1,J2を高さ方向で回避移動させるシナリオであり、シナリオ12は、障害物J1,J2を平面方向に回避移動させるシナリオであり、シナリオ13は、障害物J1と障害物J2の間を最短距離で移動させるシナリオである。各シナリオについて説明する。
(シナリオ11)
図8は、実施例1に係るロボット20の制御方法の1例を模式的に示す説明図である。実施例1のゴールGは、「ワークWを位置XSから位置XEに移動させる」というものである。仮に、このゴールGを実現するシナリオA群の中に含まれるシナリオ[N]は、シナリオ11とシナリオ12と、シナリオ13の3通りがあるものとする。シナリオ11は、ワークWを障害物J1,J2を高さ方向で回避移動させるシナリオであり、シナリオ12は、障害物J1,J2を平面方向に回避移動させるシナリオであり、シナリオ13は、障害物J1と障害物J2の間を最短距離で移動させるシナリオである。各シナリオについて説明する。
(シナリオ11)
(1)右アーム23のロボットハンド202を位置XSまで移動させる。
(2)ワークWをロボットハンド202で掴む。
(3)ワークWを位置XSから位置X1に移動させる。
(4)ワークWを位置X1から位置XEに移動させる。
(5)ワークWをロボットハンド202から離す。
というように、ゴールGを実行するために5つの命令が必要になる。
(シナリオ12)
(2)ワークWをロボットハンド202で掴む。
(3)ワークWを位置XSから位置X1に移動させる。
(4)ワークWを位置X1から位置XEに移動させる。
(5)ワークWをロボットハンド202から離す。
というように、ゴールGを実行するために5つの命令が必要になる。
(シナリオ12)
(1)右アーム23のロボットハンド202を位置XSまで移動させる。
(2)ワークWをロボットハンド202で掴む。
(3)ワークWを位置XSから位置X2に移動させる。
(4)ワークWを位置X2から位置XEに移動させる。
(5)ワークWをロボットハンド202から離す。
というように、ゴールGを実行するために5つの命令が必要になる。
(シナリオ13)
(2)ワークWをロボットハンド202で掴む。
(3)ワークWを位置XSから位置X2に移動させる。
(4)ワークWを位置X2から位置XEに移動させる。
(5)ワークWをロボットハンド202から離す。
というように、ゴールGを実行するために5つの命令が必要になる。
(シナリオ13)
(1)右アーム23のロボットハンド202を位置XSまで移動させる。
(2)ワークWをロボットハンド202で掴む。
(3)ワークWを位置XSから位置XEに移動させる。
(4)ワークWをロボットハンド202から離す。
というように、ゴールGを実行するために4つの命令が必要になる。
(2)ワークWをロボットハンド202で掴む。
(3)ワークWを位置XSから位置XEに移動させる。
(4)ワークWをロボットハンド202から離す。
というように、ゴールGを実行するために4つの命令が必要になる。
次に、上記3種類のシナリオの評価計算の事例をあげ説明する。
表1は、シナリオ実行のシミュレーションに用いる計算項目を表している。
表1は、シナリオ実行のシミュレーションに用いる計算項目を表している。
シナリオ13は、動作距離が最も短い(図8も参照)ものの、時間(シナリオ実行終了時間−開始時間)が最も長くなっている。これは、障害物J1,J2との衝突を回避するための回避処理を行うためである。また、要注意範囲はシナリオ12が最も高い値であるが、図8を参照すると、シナリオ12の位置X2が作業テーブル外にあるためである。
上記計算項目を用いて計算した上記3種類のシナリオの評価値について表2に表す。ここでは、安全評価値と効率評価値とを計算している。
上記計算項目を用いて計算した上記3種類のシナリオの評価値について表2に表す。ここでは、安全評価値と効率評価値とを計算している。
表2から、優先項目を安全優先とすればシナリオ13の安全評価値が最大値を示していることからシナリオ13を選出、効率優先とすればシナリオ12の効率評価値が最大値を示していることからシナリオ12を選出すればよいことが分かる。
(実施例2)
(実施例2)
実施例2では、2本アームのロボット120の制御方法の1具体例を挙げ説明する。
図9は、実施例2に係るロボット120の制御方法の1例を模式的に示す説明図である。実施例2のゴールGは、「ワークWを位置XSから位置XEに移動させる」というものである。仮に、このゴールGを実現するシナリオA群の中に含まれるシナリオ[N]は、シナリオ21とシナリオ22と、シナリオ23の3通りがあるものとする。シナリオ21は、ワークWを右アーム23で位置XSから位置XEに移動させるシナリオであって、図中、Q1ルート及びQ2ルートを経由するものである。
図9は、実施例2に係るロボット120の制御方法の1例を模式的に示す説明図である。実施例2のゴールGは、「ワークWを位置XSから位置XEに移動させる」というものである。仮に、このゴールGを実現するシナリオA群の中に含まれるシナリオ[N]は、シナリオ21とシナリオ22と、シナリオ23の3通りがあるものとする。シナリオ21は、ワークWを右アーム23で位置XSから位置XEに移動させるシナリオであって、図中、Q1ルート及びQ2ルートを経由するものである。
シナリオ22は、左アーム24でワークWを位置XSから位置XEに移動させるシナリオであって、図中、Q3ルート及びQ4ルートを経由するものである。
シナリオ23は、右アーム23でワークWを位置XSから位置XTに移動させ、その後、右アーム23から直接左アーム24に持ち替えて位置XEに移動させるものであって、図中、Q1ルート、Q5ルート及びQ6ルートを経由するものである。続いて、各シナリオについて説明する。
(シナリオ21)
(シナリオ21)
(1)右アーム23のロボットハンド202を位置XSまで移動させる。
(2)ワークWをロボットハンド202で掴む。
(3)ワークWを位置XSから位置XEに移動させる。
(4)ワークWをロボットハンド202から離す。
というように、ゴールGを実行するために4つの命令が必要になる。
(シナリオ22)
(2)ワークWをロボットハンド202で掴む。
(3)ワークWを位置XSから位置XEに移動させる。
(4)ワークWをロボットハンド202から離す。
というように、ゴールGを実行するために4つの命令が必要になる。
(シナリオ22)
(1)左アーム24のロボットハンド212を位置XSまで移動させる。
(2)ワークWをロボットハンド212で掴む。
(3)ワークWを位置XSから位置XEに移動させる。
(4)ワークWをロボットハンド212から離す。
というように、ゴールGを実行するために4つの命令が必要になる。
(シナリオ23)
(2)ワークWをロボットハンド212で掴む。
(3)ワークWを位置XSから位置XEに移動させる。
(4)ワークWをロボットハンド212から離す。
というように、ゴールGを実行するために4つの命令が必要になる。
(シナリオ23)
(1)右アーム23のロボットハンド202を位置XSまで移動させる。
(2)ワークWをロボットハンド202で掴む。
(3)ワークWを位置XSから位置XTに移動させる。
(4)左アーム24のロボットハンド212を位置XTに移動させる。
(5)ワークWを左アーム24のロボットハンド212で掴む。
(6)ワークWをロボットハンド202から離す。
(7)ワークWを位置XEまで移動させる。
(8)ワークWをロボットハンド212から離す。
というように、ゴールGを実行するために8つの命令が必要になる。
(2)ワークWをロボットハンド202で掴む。
(3)ワークWを位置XSから位置XTに移動させる。
(4)左アーム24のロボットハンド212を位置XTに移動させる。
(5)ワークWを左アーム24のロボットハンド212で掴む。
(6)ワークWをロボットハンド202から離す。
(7)ワークWを位置XEまで移動させる。
(8)ワークWをロボットハンド212から離す。
というように、ゴールGを実行するために8つの命令が必要になる。
次に、上記3種類のシナリオの評価計算の事例をあげ説明する。
表3は、シナリオ実行のシミュレーションに用いる計算項目を表し、表4は命令に対する1動作当りの成功値を表している。成功値は予め設定されており、シナリオ選出情報32に格納されている。シナリオに基づくロボット動作の成功率は、表4に記載の各動作毎の成功値の積で表される。
表3は、シナリオ実行のシミュレーションに用いる計算項目を表し、表4は命令に対する1動作当りの成功値を表している。成功値は予め設定されており、シナリオ選出情報32に格納されている。シナリオに基づくロボット動作の成功率は、表4に記載の各動作毎の成功値の積で表される。
上記計算項目を用いて計算した上記3種類のシナリオの評価値について表5に表す。ここでは、安全評価値と効率評価値と成功評価値を計算している。なお、成功評価値の計算では、a*=1、a*/0=0として計算した。
表5から、優先項目を安全優先とすればシナリオ21またはシナリオ22の安全評価値が最大値を示していることからシナリオ21またはシナリオ22を選出する。効率優先とすればシナリオ21の効率評価値が最大値を示していることからシナリオ21を選出し、成功率を優先すればシナリオ21またはシナリオ22を選出すればよい。そして、上記3種類のシナリオの各評価値を総合的に判断すれば、シナリオ21を選択することが望ましいことが分かる。
以上、実施例2では、ゴールGを実現させる3種類のシナリオを例示して説明したが、例えば、右アーム23だけでワークWを移動させるシナリオ、右アーム23でワークWを位置XTに移動させ、一旦、ロボットハンド202から離して、左アーム24でワークWを掴んで位置XEに移動させるシナリオも考えられる。このようなシナリオも評価値を計算し優先項目に適合するシナリオを選出してロボットを動作させればよい。
以上説明したロボット制御装置10、ロボットシステム100、ロボット制御方法によれば、複数のシナリオからゴールを実現するための優先項目を設定し、優先項目に基づき複数のシナリオの中から一つの最適なシナリオを選出し、ロボットを動作させることができる。
また、シナリオ実行に要する時間、平均速度、成功率等のロボット動作情報に基づきシナリオを選出すれば、動作効率を高めることができる。
また、ロボット動作のゴールを実現するシナリオが複数存在する場合(仮に、シナリオA群とする)、まず、このシナリオA群を検出し、このシナリオA群から前述した優先項目、ロボット動作情報に基づき一つのシナリオを選出すれば、効率よく最適シナリオを選出できる。
また、ロボット動作のゴールを実現するシナリオが複数存在する場合(仮に、シナリオA群とする)、まず、このシナリオA群を検出し、このシナリオA群から前述した優先項目、ロボット動作情報に基づき一つのシナリオを選出すれば、効率よく最適シナリオを選出できる。
また、シナリオ評価値計算部14aによって評価値を計算し、優先項目に従ってゴールGを実現するシナリオをデータベース30に格納される複数のシナリオの中から選出し、評価値が高いシナリオでロボット20またはロボット120の動作を実行させる。従って、ゴールG実現のために最も適切なシナリオによって動作を実行させることができる。
また、優先項目には、ロボット動作の安全性を表す安全評価値と、ロボット動作の効率性を表す効率評価値と、ロボット動作の成功率を表す成功評価値と、(またはその一つ)が含まれており、このように、安全評価値、効率評価値、成功評価値によってシナリオを評価し、優先項目の評価値が高いシナリオを選出すれば、効率的で安全性が高いロボット動作を実行させることができる。
また、安全評価値は、ロボット動作の動作範囲における要注意範囲と、ロボット動作の動作平均速度とロボット動作の動作距離とを用いて算出する。よって、安全評価値を優先項目に指定すれば、安全性を重視したシナリオを選出できる。
また、効率評価値は、ロボット動作の動作平均速度と前記ロボット動作の動作距離とを用いて算出するこの効率評価値を優先項目にすれば、効率性を重視したロボット動作を実行させることができる。
また、成功評価値は、ゴールの実行に必要な命令数と、成功値とを用いて算出する。
ゴールを実現するシナリオが一つに限らず複数ある場合、それぞれのシナリオで作業の成功率が異なる。従って、成功評価値を重視したシナリオを選出すれば、作業エラーが少ない動作を実行させることができる。
ゴールを実現するシナリオが一つに限らず複数ある場合、それぞれのシナリオで作業の成功率が異なる。従って、成功評価値を重視したシナリオを選出すれば、作業エラーが少ない動作を実行させることができる。
また、ロボット動作の実行後のデータに基づき、ロボット動作命令に対応するロボット動作情報が更新されること、が好ましい。
このようにすれば、繰り返し動作のなかで得られたロボット動作情報をデータベースに追加または更新することにより、常に最適なシナリオを選出してロボット動作を実行させることができる。
10…ロボット制御装置、11…制御部、12…ロボット制御プログラム、13…シナリオ取得部、14…シナリオ選出部、14a…シナリオ評価計算部、14b…シナリオマッチング部、15…命令実行部、20…ロボット(1本アーム)、23…右アーム、24…左アーム、30…データベース、100…ロボットシステム。
Claims (11)
- 少なくとも一つのロボット動作命令を含む複数のシナリオが格納されるデータベースと、
ロボット動作のゴールに対応して設定される優先項目の設定手段と、
設定された前記優先項目に基づき前記複数のシナリオから一つのシナリオを選出するシナリオ選出手段と、
選出された前記シナリオに基づき動作命令を出力する命令実行手段と、
を備えていること、
を特徴とするロボット制御装置。 - 前記データベースは、前記ロボット動作命令に対応するロボット動作情報を格納し、
前記シナリオ選出手段は、設定された前記優先項目と、前記ロボット動作命令に対応するロボット動作情報とに基づき前記複数のシナリオから一つのシナリオを選出すること、
を特徴とする請求項1に記載のロボット制御装置。 - ロボット動作の前記ゴールを実現するシナリオを前記複数のシナリオから検出する検出手段を更に備えていること、
を特徴とする請求項1または請求項2に記載のロボット制御装置。 - 前記シナリオ選出手段は、
前記優先項目に基づき前記シナリオの評価値を算出するシナリオ評価値計算手段と、
前記複数のシナリオから、前記ゴールとマッチングする前記評価値の高いシナリオを選出するシナリオマッチング手段と、
を有していること、
を特徴とする請求項1ないし請求項3のいずれか一項に記載のロボット制御装置。 - 前記優先項目には、前記ロボット動作の安全性を表す安全評価値と、前記ロボット動作の効率性を表す効率評価値と、前記ロボット動作の成功率を表す成功評価値と、のいずれかが含まれていること、
を特徴とする請求項1ないし請求項4のいずれか一項に記載のロボット制御装置。 - 前記安全評価値は、前記ロボット動作の動作範囲における要注意範囲と、前記ロボット動作の動作平均速度を用いて算出されること、
を特徴とする請求項1ないし請求項5のいずれか一項に記載のロボット制御装置。 - 前記効率評価値は、前記ロボット動作の動作平均速度と前記ロボット動作の動作距離とを用いて算出されること、
を特徴とする請求項1ないし請求項6のいずれか一項に記載のロボット制御装置。 - 前記成功評価値は、前記ゴールの実行に必要な命令数と、前記成功率とを用いて算出されること、
を特徴とする請求項1ないし請求項7のいずれか一項に記載のロボット制御装置。 - 前記命令実行手段によるロボット動作の実行後のデータに基づき、前記ロボット動作命令に対応するロボット動作情報が更新されること、
を特徴とする請求項1ないし請求項8のいずれか一項に記載のロボット制御装置。 - 少なくとも一つのロボット動作命令を含む複数のシナリオが格納されるデータベースと、
ロボット動作のゴールに対応して設定される優先項目の設定手段と、
設定された前記優先項目に基づき前記複数のシナリオから一つのシナリオを選出するシナリオ選出手段と、
選出された前記シナリオに基づき動作命令を出力する命令実行手段と、
を備えていること、
を特徴とするロボットシステム。 - 少なくとも一つのロボット動作命令を含む複数のシナリオを取得することと、
設定された優先項目に基づき前記複数のシナリオから一つのシナリオを選出することと、
選出された前記シナリオに基づき動作命令を出力し、前記ロボットを動作させること、
を含むことを特徴とするロボット制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012021640A JP2013158869A (ja) | 2012-02-03 | 2012-02-03 | ロボット制御装置、ロボットシステム、ロボット制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012021640A JP2013158869A (ja) | 2012-02-03 | 2012-02-03 | ロボット制御装置、ロボットシステム、ロボット制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013158869A true JP2013158869A (ja) | 2013-08-19 |
Family
ID=49171558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012021640A Pending JP2013158869A (ja) | 2012-02-03 | 2012-02-03 | ロボット制御装置、ロボットシステム、ロボット制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013158869A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015085459A (ja) * | 2013-10-31 | 2015-05-07 | セイコーエプソン株式会社 | ロボット、ロボットシステム、制御装置及び制御方法 |
KR20170114614A (ko) * | 2016-04-05 | 2017-10-16 | 한국과학기술원 | 인간 로봇 상호작용 기반의 작업 수행 로봇 및 방법 |
WO2017199619A1 (ja) * | 2016-05-16 | 2017-11-23 | 三菱電機株式会社 | ロボット動作評価装置、ロボット動作評価方法及びロボットシステム |
JP2018153873A (ja) * | 2017-03-15 | 2018-10-04 | 株式会社オカムラ | マニピュレータの制御装置、制御方法およびプログラム、ならびに作業システム |
US11521150B2 (en) | 2018-09-19 | 2022-12-06 | Hitachi, Ltd. | Autonomous control of analyzing business-related data by a robot system |
-
2012
- 2012-02-03 JP JP2012021640A patent/JP2013158869A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015085459A (ja) * | 2013-10-31 | 2015-05-07 | セイコーエプソン株式会社 | ロボット、ロボットシステム、制御装置及び制御方法 |
KR20170114614A (ko) * | 2016-04-05 | 2017-10-16 | 한국과학기술원 | 인간 로봇 상호작용 기반의 작업 수행 로봇 및 방법 |
KR101865691B1 (ko) * | 2016-04-05 | 2018-06-11 | 한국과학기술원 | 인간 로봇 상호작용 기반의 작업 수행 로봇 및 방법 |
WO2017199619A1 (ja) * | 2016-05-16 | 2017-11-23 | 三菱電機株式会社 | ロボット動作評価装置、ロボット動作評価方法及びロボットシステム |
JPWO2017199619A1 (ja) * | 2016-05-16 | 2018-08-09 | 三菱電機株式会社 | ロボット動作評価装置、ロボット動作評価方法及びロボットシステム |
JP2018153873A (ja) * | 2017-03-15 | 2018-10-04 | 株式会社オカムラ | マニピュレータの制御装置、制御方法およびプログラム、ならびに作業システム |
US11521150B2 (en) | 2018-09-19 | 2022-12-06 | Hitachi, Ltd. | Autonomous control of analyzing business-related data by a robot system |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9427873B2 (en) | Robot controller, simple installation-type robot, and method of controlling simple installation-type robot | |
US20190217472A1 (en) | Robot controlling device and automatic assembling system | |
JP2013158869A (ja) | ロボット制御装置、ロボットシステム、ロボット制御方法 | |
JP5911933B2 (ja) | ロボットの動作監視領域を設定するロボットシステム | |
JP6965603B2 (ja) | 設計支援装置、設計支援方法および設計支援プログラム | |
CN107791246B (zh) | 机器人模拟装置 | |
JP5469214B2 (ja) | 指定条件に基づいて情報を表示する工作機械のデータ表示装置 | |
JP2014128857A (ja) | ロボット教示システムおよびロボット教示方法 | |
JP2020062690A (ja) | 制御装置、作業ロボット、プログラム、及び、制御方法 | |
JP7108103B2 (ja) | 機械の教示に用いる機械教示端末、教示システム、プログラム及び安全確認方法 | |
JP2019000964A (ja) | 速度を表示するロボットシステム | |
EP3702860A1 (en) | Servomotor adjustment device and servomotor adjustment method | |
JP2020082314A (ja) | 学習装置、ロボット制御装置、及びロボット制御システム | |
JP2014069933A (ja) | 情報処理装置、情報処理方法及びプログラム | |
US20230001578A1 (en) | Method Of Setting Control Parameter Of Robot, Robot System, And Computer Program | |
JP2020062741A (ja) | 制御装置、作業ロボット、プログラム、及び、制御方法 | |
EP3703915B1 (en) | Method of performing assembling of an object, and assembly system | |
JP6577686B1 (ja) | 制御装置、作業ロボット、プログラム、及び、制御方法 | |
JP6079350B2 (ja) | ロボット制御方法、ロボット制御装置、ロボット及びロボット制御プログラム | |
JP7275413B1 (ja) | リスクアセスメント支援装置、リスクアセスメント支援プログラムおよびリスクアセスメント支援方法 | |
WO2023276003A1 (ja) | ロボットの動作プログラムを管理する管理装置、ネットワークシステム、及び方法 | |
JP7485058B2 (ja) | 判定装置、判定方法及びプログラム | |
JP6155570B2 (ja) | データ表示装置、方法、プログラム | |
US20230415339A1 (en) | Assistance control device, assistance device, robot control system, assistance control method, and storage medium | |
EP2994800B1 (en) | A method for providing presentation of tactile feedback, an industrial robot system and a portable operator control device |