JP2013163247A - ロボットシステム、ロボット、ロボット制御装置およびロボット制御方法 - Google Patents
ロボットシステム、ロボット、ロボット制御装置およびロボット制御方法 Download PDFInfo
- Publication number
- JP2013163247A JP2013163247A JP2012028096A JP2012028096A JP2013163247A JP 2013163247 A JP2013163247 A JP 2013163247A JP 2012028096 A JP2012028096 A JP 2012028096A JP 2012028096 A JP2012028096 A JP 2012028096A JP 2013163247 A JP2013163247 A JP 2013163247A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- function
- argument
- change
- combination
- 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
- Manipulator (AREA)
Abstract
【課題】ロボットティーチングを容易にする。
【解決手段】複数のロボットコンポーネントと前記複数のロボットコンポーネントを制御する制御部とを備えるロボットを制御するロボット制御方法であって、前記ロボットコンポーネントを制御するための複数の関数を記憶し、ロボット外対象物の状態変化を含むミッションの入力を受け付け、前記変化に対応する前記関数を選択し、選択された前記関数に任意の引数を設定し、前記引数が設定された前記関数の実行結果をシミュレートすることにより、前記変化をもたらす前記関数と前記引数とを特定し、特定された前記関数と前記引数に対応する命令群を前記制御部に出力する、ことを含むロボット制御方法。
【選択図】図2
【解決手段】複数のロボットコンポーネントと前記複数のロボットコンポーネントを制御する制御部とを備えるロボットを制御するロボット制御方法であって、前記ロボットコンポーネントを制御するための複数の関数を記憶し、ロボット外対象物の状態変化を含むミッションの入力を受け付け、前記変化に対応する前記関数を選択し、選択された前記関数に任意の引数を設定し、前記引数が設定された前記関数の実行結果をシミュレートすることにより、前記変化をもたらす前記関数と前記引数とを特定し、特定された前記関数と前記引数に対応する命令群を前記制御部に出力する、ことを含むロボット制御方法。
【選択図】図2
Description
本発明は、ロボットシステム、ロボット、ロボット制御装置およびロボット制御方法に関する。
従来、オペレーターが入力したコマンドをロボットに実行させる前にそのコマンドの実行結果をシミュレートし、コマンドが実行可能であることが確認されてからそのコマンドを実行させることにより、ティーチングを容易にする方法が知られている。例えば特許文献1には、コマンドをオペレーターが入力してロボットをある位置から別の位置に移動させる際、実際にロボットが置かれている状況をセンサーセンサーを用いて特定し、その状況において許容される移動経路をシミュレーションによって特定した後に、ロボットに実行させるコマンドを決定する技術が記載されている。
ところで、ロボットに与えられるミッションの本質は、ロボットを用いてロボット外対象物に何らかの変化をもたらすことであって、どのロボットコンポーネントをどのように動作させるかはそのミッションに従属する事柄である。例えば、複数のアームやハンドを備えた産業用ロボットを用いて第一のワークを第二のワークに取り付けるというミッションにおいて、どのアームやハンドを用いてそのミッションを達成することが最適であるかはロボットの仕様によって異なるが、どのアームやハンドが用いられようとも第一のワークが第二のワークに取り付けられたという結果が得られれば、ミッションは達成されたことになる。
しかし、ロボットを構成するロボットコンポーネントが複雑化しているにもかかわらず、従来の技術によると、ロボットを構成する複数のロボットコンポーネントのそれぞれに与えられている機能をオペレーターが熟知していないことには、オペレーターはロボットを操作することができないという問題がある。例えば特許文献1に記載された技術を用いて特定のロボットコンポーネントにそれが置かれている状況に対して最適な動作をさせられるとしても、オペレーターはどのロボットコンポーネントを用いて目的を達成すべきかを知っていなければならない。すなわち、従来の技術では、ロボットコンポーネントというミッションの達成手段を逐一指定しなければ、ロボットを操作することができないという問題があった。
本発明は、このような問題を解決するために創作されたものであって、ロボットティーチングを容易にすることを目的の1つとする。
(1)上記目的を達成するためのロボットシステムは、複数のロボットコンポーネントと、前記ロボットコンポーネントを制御するための複数の関数を記憶するデータベースと、ロボット外対象物の状態を変化させることを含むミッションの入力を受け付ける入力受付部と、前記変化に対応する前記関数を選択する選択部と、選択された前記関数に任意の引数を設定し、前記引数が設定された前記関数の実行結果をシミュレートすることにより、前記変化をもたらす前記関数と前記引数の組み合わせを特定し、特定された前記関数と前記引数の組み合わせに対応する命令群を出力する出力部と、前記命令群を実行することにより前記ロボットコンポーネントを制御する制御部と、を備える。
ここでロボット外対象物の状態を変化させることを含むミッションは、ロボットコンポーネントの動作によってワークにどのような状態変化が生じさせるかを特定する情報であって、例えばロボットコンポーネントが動作する前後のワークの位置、姿勢、形状、色、温度等を表す情報である。本発明によると、ミッションが入力されると、ミッションとして入力されたロボット外対象物の状態変化に応じて、その状態変化をもたらすロボットコンポーネントを制御するための関数が選択され、シミュレーションによってその状態変化をもたらす関数と引数の組み合わせが特定される。したがって、ロボットの仕様に応じて設計されている関数を選択し状態変化をもたらす引数を特定して設定するオペレーターの手間が省かれる。すなわち本発明によると、ロボットコンポーネントの動作を特定しなくてもロボットに対するティーチングが可能であるため、ロボットティーチングが容易になる。
(2)上記目的を達成するためのロボットシステムにおいて、前記出力部は、少なくとも1つの前記ロボットコンポーネントの識別子を前記引数として設定してもよい。
引数として適するロボットコンポーネントの識別子がロボットシステムによって設定される場合、ミッションを達成するのに適したロボットコンポーネントを選択するオペレーターの手間が省かれる。
引数として適するロボットコンポーネントの識別子がロボットシステムによって設定される場合、ミッションを達成するのに適したロボットコンポーネントを選択するオペレーターの手間が省かれる。
(3)上記目的を達成するためのロボットにおいて、前記ミッションは、評価指標を含み、前記出力部は、前記変化をもたらす前記関数と前記引数の複数の組みあわせのうち、前記評価指標に基づいて前記変化を評価した場合に最も評価が高くなる1組に対応する命令群を出力してもよい。
ここで評価指標とは、シミュレートされた状態変化を評価するための指標であって、例えば所要時間、成功確率、安全度、消費電力量、最大負荷などである。評価指標を含むミッションが入力されるとともに、その評価指標に基づいて最も評価が高くなる関数と引数とがロボットシステムによって設定される場合、最適な状態変化を得るためのティーチングが容易になる。
ここで評価指標とは、シミュレートされた状態変化を評価するための指標であって、例えば所要時間、成功確率、安全度、消費電力量、最大負荷などである。評価指標を含むミッションが入力されるとともに、その評価指標に基づいて最も評価が高くなる関数と引数とがロボットシステムによって設定される場合、最適な状態変化を得るためのティーチングが容易になる。
(4)上記目的を達成するためのロボットにおいて、前記入力受付部は、前記ミッションを複数含むシナリオの入力を受け付け、前記選択部、前記出力部および前記制御部は、前記シナリオに含まれる複数の前記ミッションについて連続して複数の前記関数を処理してもよい。
複数のミッションを含むシナリオの入力に応じて複数のミッションが連続して達成される場合、ミッション毎にティーチングする必要がなくなるため、ロボットティーチングがさらに容易になる。
複数のミッションを含むシナリオの入力に応じて複数のミッションが連続して達成される場合、ミッション毎にティーチングする必要がなくなるため、ロボットティーチングがさらに容易になる。
なお、本発明はロボット制御装置としてもロボットとしてもロボット制御方法としてもロボット制御プログラムとしてもロボット制御プログラムの記録媒体としても成立する。むろん、そのコンピュータプログラムの記録媒体は、磁気記録媒体であってもよいし光磁気記録媒体であってもよいし、今後開発されるいかなる記録媒体であってもよい。
以下、本発明の実施の形態を添付図面を参照しながら説明する。尚、各図において対応する構成要素には同一の符号が付され、重複する説明は省略される。
1.ロボットシステムの構成
図1は、本発明にかかるロボットシステム100の構成を示すブロック図である。ロボットシステム100は、PC(Personal Computer)10とロボット20とデータベース30とを備えている。PC10とデータベース30とは、LANによって接続されており、ロボット制御装置を構成している。PC10およびデータベース30のそれぞれは、CPU、RAM、ROM、入出力機構、ハードディスク装置等を備える。
1.ロボットシステムの構成
図1は、本発明にかかるロボットシステム100の構成を示すブロック図である。ロボットシステム100は、PC(Personal Computer)10とロボット20とデータベース30とを備えている。PC10とデータベース30とは、LANによって接続されており、ロボット制御装置を構成している。PC10およびデータベース30のそれぞれは、CPU、RAM、ROM、入出力機構、ハードディスク装置等を備える。
PC10は、キーボード12、マウス13、ディスプレイ11等の操作装置に接続されている。PC10は、ハードディスク装置に記憶されたロボット制御プログラムをRAMにロードしてCPUで実行することにより、次に述べる入力受付部10a、選択部10b、出力部10cとして機能する。
入力受付部10aは、ロボット外対象物としてワークの状態変化と評価指標とをそれぞれ含む複数のミッションからなるシナリオの入力を受け付ける。本実施例における状態変化は動作前後のワークの位置を表す情報であるとする。また本実施例における評価指標は所要時間、成功確率および安全度であるとする。また本実施例におけるミッションとは、状態変化と評価指標からなるティーチングのためのコマンドである。入力受付部10aは、このようなミッションを対話形式でオペレーターに連続的にシナリオとして入力させるインターフェースを提供する。
例えば、状態Bまで最も短い時間でワークXを動かすというミッションは、次の形式で入力される。ここで"time"は"所要時間"という評価指標を示すコードであるものとする。
Move From To(X、B、time)
Move From To(X、B、time)
このミッションは、ロボット外対象物であるワークXの状態変化のみを規定し、そのような状態変化をもたらす手段を何ら規定していない。なお、ワークXの初期位置や初期姿勢や形状、ワークの状態Bにおける位置や姿勢や形状といった情報は、例えばミッションとは別に初期設定としてデータベース30に登録しておくこともできるし、各ミッションに含めることもできる。
選択部10bは、状態変化に対応する1つ以上の関数をデータベース30から探索して選択する。探索される関数は、ロボット20の制御部21によって実行される命令群であって、引数を受け取って予め決められた処理を実行する命令群である。ここでいう予め決められた処理とは、ロボット20に備えられたアクチュエーターを駆動したり、ロボット20に備えられたセンサーからデータを取得したりすることである。
例えば、"1つのアームαでワークXを位置Bに動かす"という関数は次の形式である。
Move From To(X、B、α)
この関数は、次の命令群からなる。
arm α:Move to X
arm α:Grasp X
arm α:Move to B
arm α:Release X
Move From To(X、B、α)
この関数は、次の命令群からなる。
arm α:Move to X
arm α:Grasp X
arm α:Move to B
arm α:Release X
すなわち、アームαがワークXをつかめる位置まで移動し、アームαがワークXをつかみ、アームαがBの位置まで移動し、アームαがワークXを離す、という4つの処理からなる一連の動きを関数"Move From To(X、B、α)"が規定している。
また例えば、"2つのアームα、βでワークXをBに動かす"という関数は次の形式である。
Move From To(X、B、α、β)
この関数は、次の命令群からなる。
arm α:Move to X
arm α:Grasp X
arm α:Move to C
arm β:Move to C
arm β:Grasp X
arm α:Release X
arm β:Move to B
arm β:Release X
Move From To(X、B、α、β)
この関数は、次の命令群からなる。
arm α:Move to X
arm α:Grasp X
arm α:Move to C
arm β:Move to C
arm β:Grasp X
arm α:Release X
arm β:Move to B
arm β:Release X
すなわち、アームαがある状態のワークXをつかめる位置まで移動し、アームαがワークXをつかみ、アームαがCの位置まで移動し、アームβがCの位置にあるワークXをつかめる位置まで移動し、アームαがワークXを離し、アームβがBまで移動し、アームβがワークXを離す、という8つの処理からなる一連の動きを関数"Move From To(X、B、α、β)"が規定している。
そしてワークXの状態は命令にともなう実際の操作によって変化するため、命令の実行にともなって変化する状態情報がXに対応付けて記憶され都度更新される。このような状態情報は、ロボット制御装置としてのPC10が更新しても良いし、ロボット20の制御部21が更新しても良い。
出力部10cは、選択された関数に任意の引数を設定し、引数が設定された関数の実行結果をシミュレートすることにより、状態変化をもたらす関数と引数の組みあわせを特定し、特定された関数と引数の組みあわせに対応する命令群を出力する。状態変化をもたらす関数と引数の組みあわせが複数存在する場合、出力部10cは、これらの組みあわせのうち、シミュレートされた状態変化を評価指標に基づいて評価した場合に最も評価が高くなる1組に対応する命令群を出力する。状態変化をシミュレートするに際しては、ロボット20を構成するアームなどのロボットコンポーネントの移動速度、移動経路、移動範囲、把持できる対象物の最大サイズと最大質量、把持力、消費電力量、振動特性、エラー発生確率といった特性情報が必要になる。本実施例では、データベース30に記憶されているこれらの特性情報を参照して出力部10cがシミュレーションを実行する。
データベース30には、複数の関数、引数の型や取り得る値を規定する引数の宣言、ワークの形状、位置情報、ロボットコンポーネントの特性情報等が予め登録されている。データベース30には、ロボットシステム100に備わるロボットコンポーネントに対応した関数のみならず、ロボットシステム100に追加され得るロボットコンポーネントに対応した関数をも登録しておいてもよい。この場合、ロボットシステム100のセットアップ時に有効な関数と無効な関数とをフラグなどで区別しておけばよい。また引数が取り得る値をロボットシステム100の構成に応じて異らせる場合、ロボットシステム100のセットアップ時に引数が取り得る値の範囲を設定すればよい。
ロボット20は、第一のロボットコンポーネントである第一アーム22、第二のロボットコンポーネントである第二アーム23および制御部21を備えている。第一アーム22および第二アーム23は、それぞれが機構部、複数のアクチュエーターアクチュエーター、複数のセンサーセンサー、およびそれらの駆動回路を備える。制御部21は、CPU、RAM、ROM、入出力機構等を備えるコンピューターである。制御部21は、出力部10cから出力された命令群を実行することにより、これらのアクチュエーターアクチュエーターとセンサーセンサーを制御し、第一アーム22および第二アーム23に、"ワークをつかむ"、"ワークを動かす"、"ワークをはなす"といった操作を行わせる。
2.ロボット制御方法
以下、ロボットシステム100の制御方法を図2および図3に示すフローチャートに基づいて説明する。
はじめにPC10に対するシナリオの入力によってロボットシステム100に対するティーチングが行われる(S100)。具体的には、入力受付部10aがディスプレイ11に表示するGUIに従ってオペレーターがキーボード12およびマウス13を操作することによって複数のミッションが時系列に統合されたシナリオとして連続的に入力される。例えば、ワークXを第一の位置に動かすという第一のミッションと、ワークYを第一の位置に動かすという第二のミッションと、ワークXとワークYとをねじ結合するという第三のミッションとが1つのシナリオとして対話的に入力される。
以下、ロボットシステム100の制御方法を図2および図3に示すフローチャートに基づいて説明する。
はじめにPC10に対するシナリオの入力によってロボットシステム100に対するティーチングが行われる(S100)。具体的には、入力受付部10aがディスプレイ11に表示するGUIに従ってオペレーターがキーボード12およびマウス13を操作することによって複数のミッションが時系列に統合されたシナリオとして連続的に入力される。例えば、ワークXを第一の位置に動かすという第一のミッションと、ワークYを第一の位置に動かすという第二のミッションと、ワークXとワークYとをねじ結合するという第三のミッションとが1つのシナリオとして対話的に入力される。
任意のオペレーターがシナリオを入力する以前の段階で、ロボットシステム100の構成とワークの構成に応じた様々な初期情報を運用管理者がデータベース30に登録しておくことでティーチングが容易になる。すなわち、ロボットシステム100のセットアップとティーチングを分けることにより、ティーチングが容易になる。なお、シナリオの入力を受け付けた結果をファイルとして保存し、シナリオが保存されているファイルをPC10に入力することでシナリオの入力を受け付けても良い。
入力受付部10aがシナリオの入力を受け付けると、選択部10bは、シナリオに含まれる全てのミッションに順次注目し、注目したミッションについて関数と引数の探索処理を実行する(S101、S102)。
図3は関数と引数の探索処理の詳細を示すフローチャートである。
関数と引数の探索処理において、選択部10bは、まず、現在注目しているミッションに対応する関数をデータベースから1つずつ探索する(S1020)。ミッションと関数の対応関係は、引数部分を除いた命令コード文字列の完全一致または部分一致によって規定される。具体的には例えば、ミッションが前述した"Move From To(X、B、time)"であって、データベースには、"Move From To(X、B、α)"と、"Move From To(X、B、α、β)"とが有効な関数として登録されているとする。この場合、" Move From To"の完全一致により、ミッション"Move From To(X、B、time)"に対応する関数として"Move From To(X、B、α)"と、"Move From To(X、B、α、β)"とが順に探索される。なお、ミッションと関数の対応関係をデータベース30に別途登録しておいてもよい。
関数と引数の探索処理において、選択部10bは、まず、現在注目しているミッションに対応する関数をデータベースから1つずつ探索する(S1020)。ミッションと関数の対応関係は、引数部分を除いた命令コード文字列の完全一致または部分一致によって規定される。具体的には例えば、ミッションが前述した"Move From To(X、B、time)"であって、データベースには、"Move From To(X、B、α)"と、"Move From To(X、B、α、β)"とが有効な関数として登録されているとする。この場合、" Move From To"の完全一致により、ミッション"Move From To(X、B、time)"に対応する関数として"Move From To(X、B、α)"と、"Move From To(X、B、α、β)"とが順に探索される。なお、ミッションと関数の対応関係をデータベース30に別途登録しておいてもよい。
次に、出力部10cは、ミッションに対応する関数が新たに1つ探索されたか否かを判定し(S1021)、関数が探索された場合には、関数に対応する引数を探索する(S1022)。すなわち、探索された関数の引数が取り得る値をデータベース30から1つずつ探索する。例えば、関数"Move From To(X、B、α)"が探索されているとする。ここでワークを意味するXと状態または位置を意味するBは、シナリオの入力前またはシナリオの入力時に設定されている定数である。したがって、探索対象となる引数はアームを意味するαである。ロボットシステム100においてαが取り得る値は、第一アーム22の識別子"arm1"と、第二アーム23の識別子"arm2"である。データベース30には、αが取り得る値として"arm1"と"arm2"とが登録されているため、関数"Move From To(X、B、α)"に対応する引数として"arm1"と"arm2"とが1つずつ探索される。なお、ここでは単純に引数の取り得る値としてデータベース30に登録されている値が探索されているため、具体的なワークXを具体的な状態又は位置であるBに第一アーム22または第二アーム23によって動かすことができるかは、問題とされていない。
次に出力部10cは、探索された関数に対応する引数が新たに1つ探索されたか否かを判定し(S1023)、引数が探索された場合には、探索された関数と引数の組みあわせをシミュレーターで実行する(S1024)。ここでシミュレーターによって、データベース30に登録されているワークの形状、位置情報、ロボットコンポーネントの特性情報等が参照され、探索された関数とその引数の組み合わせで関数に規定されている命令群を実行した場合の処理予測が出力される。処理予測としては、成否、所要時間、成功確率、安全度が出力される。
シミュレーターによって処理予測が出力されると、出力部10cは、探索された関数と引数の組みあわせでミッションを完遂することができるか否かを処理予測に基づいて判定する(S1025)。具体的には、処理予測が成功であれば、探索された関数と引数の組みあわせでミッションを完遂することができると判定し、処理予測が失敗であれば、探索された関数と引数の組みあわせでミッションを完遂することができないと判定する。
探索された関数と引数の組みあわせでミッションを完遂することができると判定した場合、出力部10cは、その関数と引数の組みあわせと処理予測とを保存する(S1026)。探索された関数と引数の組みあわせでミッションを完遂することができないと判定した場合、出力部10cは、再び関数に対応する引数を探索し、探索した関数と引数の組みあわせについて処理予測を保存する処理(S1022〜S1026)を、探索した関数に対応する引数が無くなるまで(S1023で偽判定されるまで)繰り返す。
ステップS1020で探索した1つの関数について対応する全ての引数の探索とシミュレーションが終了すると、注目しているミッションについて対応する次の関数を再びステップS1020で探索し、新たに探索された1つの関数についてステップS1022〜S1026の処理を繰り返す。
注目しているミッションについて対応する次の関数が無くなると(ステップS1021で偽判定となる)、出力部10cは、保存された関数と引数の処理予測をミッションの評価指標に基づいて評価する(S1028)。
そして、出力部10cは評価指標に基づいて評価した結果、最も評価が高かった組み合わせを選択する(S1029)。
ここで例えば、"Move From To(X、B、α)"と"Move From To(X、B、α、β)とがミッションに対応する関数として探索され、"Move From To(X、B、α)"に対応するαとして引数"arm1"と"arm2"が探索されたとする。そして、"Move From To(X、B、α、β)"に対応するαとして引数"arm1"と"arm2"が探索され、"Move From To(X、B、 arm1、β)"に対応するβとして引数"arm1"と"arm2"が探索され、"Move From To(X、B、 arm2、β)"に対応するβとして引数"arm1"と"arm2"が探索されたと仮定する。
図4Aに示すように第一アーム22で位置AにあるワークXを位置Bまで動かすことができるのに対して、図4Bに示すように第二アーム23ではそれができない。したがって、関数"Move From To(X、B、α)"とαの引数"arm1"との組み合わせの実行結果は成功と予測される。そして関数"Move From To(X、B、α)"とαの引数"arm2"との組み合わせの実行結果は失敗と予測される。また、図4Cに示すように第一アーム22から第二アーム23にワークXを受け渡して位置AにあるワークXを位置Bまで動かすことができるため、関数"Move From To(X、B、α、β)"とαの引数"arm1"とβの引数"arm2"との組みあわせの実行結果は成功と予測される。しかし、第一アーム22も第二アーム23も自分自身でワークXを受け渡すことはできないため、関数"Move From To(X、B、α、β)"と、αの引数"arm1"とβの引数"arm1"との組みあわせも、αの引数"arm2"とβの引数"arm2"との組みあわせも、実行結果は失敗と予測される。また、第二アーム23は図4Bに示すように位置AにあるワークXをつかめる位置まで動けないため、関数"Move From To(X、B、α、β)"とαの引数"arm2"とβの引数"arm1"との組みあわせの実行結果も失敗と予測される。したがって、この場合、保存される関数と引数の組み合わせは、"Move From To(X、B、α)"とαの引数"arm1"との組み合わせと、"Move From To(X、B、α、β)"とαの引数"arm1"とβの引数"arm2"との組み合わせのみとなる。
そして、評価指標が所要時間であれば、2つの成功する組み合わせのうち最も所要時間が短い組み合わせが選択され、評価指標が安全度であれば、2つの成功する組み合わせのうち最も安全度が高い組み合わせが選択され、評価指標が成功確率であれば、2つの成功する組み合わせのうち最も成功確率が高い組み合わせが選択される。例えば所要時間および成功確率の評価指標に対しては、ワークの受け渡しが不要な"Move From To(X、B、α)"とαの引数"arm1"との組み合わせが選択される。また例えば安全度の評価指標に対しては、アームの運動範囲が狭い"Move From To(X、B、α、β)"とαの引数"arm1"とβの引数"arm2"との組み合わせが選択される。
図2においてステップS102として示された関数と引数の探索処理を以上述べたとおりに実行すると、出力部10cは、図2に示すステップS103において、ミッションを完了できる関数と引数の組みあわせが有ったか否か、すなわち、関数と引数の組みあわせが保存されているか否かを判定する。関数と引数の組みあわせが保存されていない場合、シナリオは実行できないものとして処理を終了する。
関数と引数の組みあわせが保存されている場合、出力部10cは、保存された引数を保存された関数に設定し、関数の命令群を出力する。その結果、出力部10cから出力された命令群が制御部21によって実行される。制御部21は命令群の実行に伴って第一アーム22および第二アーム23を制御する(S104)。
1つの関数の命令群が実行されると、選択部10bおよび出力部10cは次のミッションが無くなるまでシナリオに含まれる全てのミッションについて順次上述の処理を繰り返し、次のミッションが無くなると(S101で偽判定の場合)、シナリオの処理を終了する。すなわち、全てのミッションについてシミュレーションをしてから命令群を現実に実行するのではなく、1つのミッションについて命令群を現実に実行してから、次の1つのミッションについてシミュレーションを実行する。このため、例えば、1つのミッションについて現実に命令群を実行した結果を次のミッションのシミュレーションにフィードバックすることもできる。
以上説明した実施例によると、複数のミッションを含むシナリオが入力されると、ミッションとして入力されたロボット外対象物であるワークの状態変化に応じて、その状態変化をもたらすロボットコンポーネントを制御するための関数が選択され、シミュレーションによってその状態変化をもたらす関数と引数の組み合わせが特定される。したがって、ロボット20の仕様に応じて設計されている関数を選択し状態変化をもたらす引数を特定して設定するオペレーターの手間が省かれる。具体的には、引数として適するアームの識別子がPC10によって自動設定されるため、ミッションを達成するのに適したアームを選択するオペレーターの手間が省かれる。さらに、評価指標に基づいて最も評価が高くなる関数と引数とがPC10によって自動設定されるため、最適な状態変化を得るためのティーチングが容易になる。また、複数のミッションを含むシナリオの入力に応じて複数のミッションが連続して達成されるため、ミッション毎にティーチングする必要がなくなるため、ロボットティーチングがさらに容易になる。
3.他の実施形態
尚、本発明の技術的範囲は、上述した実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、図5に示すようにロボット制御装置をロボット20とを一体化しても良い。またデータベースを複数のロボット制御装置が共用するサーバーコンピューターとして構成し、インターネット等の通信回線を介して選択部および出力部と通信させるようにしてもよい。また入力受付部、選択部および出力部として機能するコンピューターとその不揮発性記憶媒体とをデータベースとして機能させても良い。
尚、本発明の技術的範囲は、上述した実施例に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。例えば、図5に示すようにロボット制御装置をロボット20とを一体化しても良い。またデータベースを複数のロボット制御装置が共用するサーバーコンピューターとして構成し、インターネット等の通信回線を介して選択部および出力部と通信させるようにしてもよい。また入力受付部、選択部および出力部として機能するコンピューターとその不揮発性記憶媒体とをデータベースとして機能させても良い。
また、シミュレーターで関数と引数の組みあわせの実行結果を予測する際に、ミッションに設定されていない評価指標に対応する予測については予測しないでもよい。これにより、シミュレーションに要する時間を短縮することができる。
10a…入力受付部、10b…選択部、10c…出力部、11…ディスプレイ、12…キーボード、13…マウス、20…ロボット、21…制御部、22…第一アーム、23…第二アーム、30…データベース、100…ロボットシステム
Claims (7)
- 複数のロボットコンポーネントと、
前記ロボットコンポーネントを制御するための複数の関数を記憶するデータベースと、
ロボット外対象物の状態を変化させることを含むミッションの入力を受け付ける入力受付部と、
前記変化に対応する前記関数を選択する選択部と、
選択された前記関数に任意の引数を設定し、前記引数が設定された前記関数の実行結果をシミュレートすることにより、前記変化をもたらす前記関数と前記引数の組み合わせを特定し、特定された前記関数と前記引数の組み合わせに対応する命令群を出力する出力部と、
前記命令群を実行することにより前記ロボットコンポーネントを制御する制御部と、
を備えるロボットシステム。 - 前記出力部は、少なくとも1つの前記ロボットコンポーネントの識別子を前記引数として設定する、
請求項1に記載のロボットシステム。 - 前記ミッションは、評価指標を含み、
前記出力部は、前記変化をもたらす前記関数と前記引数の複数の組みあわせのうち、前記評価指標に基づいて前記変化を評価した場合に最も評価が高くなる1組に対応する命令群を出力する、
請求項1または2に記載のロボットシステム。 - 前記入力受付部は、前記ミッションを複数含むシナリオの入力を受け付け、
前記選択部、前記出力部および前記制御部は、前記シナリオに含まれる複数の前記ミッションについて連続して複数の前記関数を処理する、
請求項1から3のいずれか一項に記載のロボットシステム。 - 複数のロボットコンポーネントと前記複数のロボットコンポーネントを制御する制御部とを備えるロボットを制御するロボット制御装置であって、
前記ロボットコンポーネントを制御するための複数の関数を記憶するデータベースと、
ロボット外対象物の状態を変化させることを含むミッションの入力を受け付ける入力受付部と、
前記変化に対応する前記関数を選択する選択部と、
選択された前記関数に任意の引数を設定し、前記引数が設定された前記関数の実行結果をシミュレートすることにより、前記変化をもたらす前記関数と前記引数の組み合わせを特定し、特定された前記関数と前記引数の組み合わせに対応する命令群を前記制御部に出力する出力部と、
を備えるロボット制御装置。 - 複数のロボットコンポーネントと前記複数のロボットコンポーネントを制御する制御部とを備えるロボットを制御するロボット制御方法であって、
前記ロボットコンポーネントを制御するための複数の関数を記憶し、
ロボット外対象物の状態を変化させることを含むミッションの入力を受け付け、
前記変化に対応する前記関数を選択し、
選択された前記関数に任意の引数を設定し、前記引数が設定された前記関数の実行結果をシミュレートすることにより、前記変化をもたらす前記関数と前記引数の組み合わせを特定し、特定された前記関数と前記引数の組み合わせに対応する命令群を前記制御部に出力する、
ことを含むロボット制御方法。 - 複数のロボットコンポーネントと、
前記ロボットコンポーネントを制御するための複数の関数を記憶するデータベースと、
ロボット外対象物の状態を変化させることを含むミッションの入力を受け付ける入力受付部と、
前記変化に対応する前記関数を選択する選択部と、
選択された前記関数に任意の引数を設定し、前記引数が設定された前記関数の実行結果をシミュレートすることにより、前記変化をもたらす前記関数と前記引数の組み合わせを特定し、特定された前記関数と前記引数の組み合わせに対応する命令群を出力する出力部と、
前記命令群を実行することにより前記ロボットコンポーネントを制御する制御部と、
を備えるロボット。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012028096A JP2013163247A (ja) | 2012-02-13 | 2012-02-13 | ロボットシステム、ロボット、ロボット制御装置およびロボット制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012028096A JP2013163247A (ja) | 2012-02-13 | 2012-02-13 | ロボットシステム、ロボット、ロボット制御装置およびロボット制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013163247A true JP2013163247A (ja) | 2013-08-22 |
Family
ID=49174960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012028096A Pending JP2013163247A (ja) | 2012-02-13 | 2012-02-13 | ロボットシステム、ロボット、ロボット制御装置およびロボット制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013163247A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170061686A (ko) * | 2014-09-02 | 2017-06-05 | 엠비엘 리미티드 | 전자 미소 조작 라이브러리들을 갖춘 기구화된 환경에서 도메인 고유의 애플리케이션을 실행하기 위한 로봇 조작 방법 및 시스템 |
JP2018103339A (ja) * | 2016-12-28 | 2018-07-05 | オムロン株式会社 | シミュレーション装置、ロボット、シミュレーション方法、及びそのプログラム |
JP2020114623A (ja) * | 2014-03-04 | 2020-07-30 | ユニバーサル ロボッツ アクツイエセルスカプ | 産業用ロボットとこれの安全制御を与える方法 |
-
2012
- 2012-02-13 JP JP2012028096A patent/JP2013163247A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020114623A (ja) * | 2014-03-04 | 2020-07-30 | ユニバーサル ロボッツ アクツイエセルスカプ | 産業用ロボットとこれの安全制御を与える方法 |
JP7042554B2 (ja) | 2014-03-04 | 2022-03-28 | ユニバーサル ロボッツ アクツイエセルスカプ | 安全機能を有する工業用ロボットとその安全制御のための方法 |
KR20170061686A (ko) * | 2014-09-02 | 2017-06-05 | 엠비엘 리미티드 | 전자 미소 조작 라이브러리들을 갖춘 기구화된 환경에서 도메인 고유의 애플리케이션을 실행하기 위한 로봇 조작 방법 및 시스템 |
JP2017536247A (ja) * | 2014-09-02 | 2017-12-07 | エムビーエル リミテッド | 電子小規模操作ライブラリを用いて計装環境内でドメイン特定アプリケーションを実行するためのロボット操作方法及びシステム |
KR102286200B1 (ko) | 2014-09-02 | 2021-08-06 | 엠비엘 리미티드 | 전자 미소 조작 라이브러리들을 갖춘 기구화된 환경에서 도메인 고유의 애플리케이션을 실행하기 위한 로봇 조작 방법 및 시스템 |
JP7117104B2 (ja) | 2014-09-02 | 2022-08-12 | エムビーエル リミテッド | 電子小規模操作ライブラリを用いて計装環境内でドメイン特定アプリケーションを実行するためのロボット操作方法及びシステム |
JP2018103339A (ja) * | 2016-12-28 | 2018-07-05 | オムロン株式会社 | シミュレーション装置、ロボット、シミュレーション方法、及びそのプログラム |
WO2018123087A1 (ja) * | 2016-12-28 | 2018-07-05 | オムロン株式会社 | シミュレーション装置、ロボット、シミュレーション方法、及びそのプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102251316B1 (ko) | 강화 학습 및 시뮬레이션 기반의 공장 내 디스패칭 방법 및 그 장치 | |
EP3075496A1 (en) | Method for improving operation of a robot | |
JP5929061B2 (ja) | ロボット制御装置、ロボットシステム、ロボット | |
Sanfilippo et al. | JOpenShowVar: an open-source cross-platform communication interface to kuka robots | |
KR102257938B1 (ko) | 산업 애플리케이션들을 위한 스킬 인터페이스 | |
JP7456249B2 (ja) | シミュレーションのためのプログラムおよび装置 | |
JP2014128840A (ja) | ロボット制御システム | |
Sanfilippo et al. | A universal control architecture for maritime cranes and robots using genetic algorithms as a possible mapping approach | |
Kootbally et al. | Enabling robot agility in manufacturing kitting applications | |
JP2013163247A (ja) | ロボットシステム、ロボット、ロボット制御装置およびロボット制御方法 | |
Pedersen et al. | Gesture-based extraction of robot skill parameters for intuitive robot programming | |
US20210060771A1 (en) | Dynamic path planning from a fault condition | |
JP2021066011A5 (ja) | ||
CN114932555A (zh) | 机械臂协同作业系统及机械臂控制方法 | |
KR20230111250A (ko) | 로봇 제어 계획들의 생성 | |
Jin et al. | Achieving batch-size-of-one production model in robot flexible assembly cells | |
US11747787B2 (en) | Combining transformers for robotics planning | |
CN117773913A (zh) | 机器人控制方法、装置、存储介质及机器人 | |
WO2019021045A1 (en) | METHOD AND SYSTEM FOR ACTION OF AN INDUSTRIAL ROBOT BASED ON A PARAMETER | |
US20230330854A1 (en) | Movement planning device, movement planning method, and non-transitory computer readable medium | |
KR101700219B1 (ko) | 조립형 모델링 시뮬레이션 개발방법 및 이의 시뮬레이션 시스템 | |
JP6079350B2 (ja) | ロボット制御方法、ロボット制御装置、ロボット及びロボット制御プログラム | |
CN112384337B (zh) | 用于分析和/或配置工业设备的方法和系统 | |
JP2019192067A (ja) | システム、およびシステム制御方法 | |
JP6939662B2 (ja) | プログラミング支援装置、プログラミング支援方法及びプログラム |