JP2016198842A - ロボットおよび制御装置 - Google Patents

ロボットおよび制御装置 Download PDF

Info

Publication number
JP2016198842A
JP2016198842A JP2015079823A JP2015079823A JP2016198842A JP 2016198842 A JP2016198842 A JP 2016198842A JP 2015079823 A JP2015079823 A JP 2015079823A JP 2015079823 A JP2015079823 A JP 2015079823A JP 2016198842 A JP2016198842 A JP 2016198842A
Authority
JP
Japan
Prior art keywords
point
state
arm state
arm
robot
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
Application number
JP2015079823A
Other languages
English (en)
Inventor
喜士 山田
Yoshiji Yamada
喜士 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2015079823A priority Critical patent/JP2016198842A/ja
Publication of JP2016198842A publication Critical patent/JP2016198842A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Abstract

【課題】ロボットの動作の経路を適した経路にする。【解決手段】ロボットを構成する複数のジョイントの角度を成分とする空間において、前記空間における第1の点と前記空間における第2の点が教示され、任意の第3の点を設定し、前記第1の点と前記第3の点との間に第4の点を設定し、前記第4の点と前記第1の点との間に障害物が存在しない場合、前記第4の点を中継点に設定し、前記中継点に基づいて動作する、ロボットである。【選択図】図6

Description

本発明は、ロボットおよび制御装置に関する。
特許文献1に係る経路情報修正装置、軌道計画装置、及びロボットの技術では、環境情報に基づいて既存の経路情報に含まれる既存ノードの干渉性を判定し、干渉有りと判定された既存ノードの周囲に追加ノードを生成する。そして、この技術では、当該追加ノードの干渉性の判定結果に応じて、干渉有りと判定された既存ノードを追加ノードに置き換える(特許文献1参照。)。
しかしながら、この技術では、環境情報によって干渉有りと判定される既存ノードが多くなる場合に、それに基づく追加ノードの生成および追加ノードの干渉性の判定に要する計算量が、追加ノードの個数に応じて増大し経路修正処理時間が大きくなることがあった。さらに、この技術では、追加ノードは既存ノードの周辺に生成されるという制約があるため、環境情報によって既存の経路情報の多くが干渉有りとなった場合に、干渉の無い経路情報への修正が困難になることがあった。
また、この技術では、ロボットの動作の経路を修正することに適用すると、ロボットの動作の経路が一意に決まり、ロボットの動作が毎回同じになる。このため、ロボットの特定の部位が他の部位と比べて、より摩耗してしまうことがあった。
特開2012−190405号公報
従来の技術では、ロボットの動作の経路を適した経路にできない場合があった。
上記課題の少なくとも一つを解決するために本発明の一態様は、ロボットを構成する複数のジョイントの角度を成分とする空間において、前記空間における第1の点と前記空間における第2の点が教示され、任意の第3の点を設定し、前記第1の点と前記第3の点との間に第4の点を設定し、前記第4の点と前記第1の点との間に障害物が存在しない場合、前記第4の点を中継点に設定し、前記中継点に基づいて動作する、ロボットである。
この構成により、ロボットでは、ロボットを構成する複数のジョイントの角度を成分とする空間において、任意の第3の点を設定し、第1の点と第3の点との間に第4の点を設定し、第4の点と第1の点との間に障害物が存在しない場合、第4の点を中継点に設定し、中継点に基づいて動作する。これにより、ロボットでは、ロボットの動作の経路を適した経路にすることができる。
また、本発明の一態様は、ロボットにおいて、前記第1の点および前記第2の点は、一方が動作の開始点を表し、他方が当該動作の終了点を表す、構成が用いられてもよい。
この構成により、ロボットでは、第1の点および第2の点は、一方が動作の開始点を表し、他方が当該動作の終了点を表す。これにより、ロボットでは、開始点と終了点との間のロボットの動作の経路を適した経路にすることができる。
また、本発明の一態様は、ロボットにおいて、前記第3の点をランダムに設定する、構成が用いられてもよい。
この構成により、ロボットでは、第3の点をランダムに設定する。これにより、ロボットでは、ロボットの動作の経路をランダムに決められた経路にすることができ、ロボットの特定の部位が他の部位と比べてより摩耗してしまうことを防止することができる。
また、本発明の一態様は、ロボットにおいて、前記中継点として、複数の候補の点のうちで前記第1の点から前記第2の点までの経路の距離が最小となる点を選択して設定する、構成が用いられてもよい。
この構成により、ロボットでは、中継点として、複数の候補の点のうちで第1の点から第2の点までの経路の距離が最小となる点を選択して設定する。これにより、ロボットでは、ロボットの動作の経路を距離が小さい経路にすることができる。
また、本発明の一態様は、ロボットにおいて、前記第1の点、前記第2の点および前記中継点を結ぶ経路の履歴情報に基づいて、同一の状況に対応付けられた経路が前記履歴情報に含まれる場合には、当該経路を使用する、構成が用いられてもよい。これにより、ロボットでは、履歴情報を利用して、ロボットの動作の経路を決定することができる。
また、本発明の一態様は、ロボットにおいて、ロボットの動作領域、前記障害物、前記第1の点、前記第2の点、前記中継点のうちの1以上に関する設定をユーザーが行う設定画面を備える、構成が用いられてもよい。
この構成により、ロボットでは、設定画面において、ロボットの動作領域、障害物、第1の点、第2の点、中継点のうちの1以上に関する設定をユーザーが行う。これにより、ロボットでは、ユーザーの設定内容を用いて、ロボットの動作の経路を生成することができる。
また、本発明の一態様は、ロボットにおいて、前記第2の点と前記第3の点との間に第5の点を設定し、前記第5の点と前記第2の点との間に障害物が存在しない場合、前記第5の点を中継点に設定し、前記中継点に基づいて動作する、構成が用いられてもよい。
この構成により、ロボットでは、ロボットを構成する複数のジョイントの角度を成分とする空間において、任意の第3の点を設定し、第2の点と第3の点との間に第5の点を設定し、第5の点と第2の点との間に障害物が存在しない場合、第5の点を中継点に設定し、中継点に基づいて動作する。これにより、ロボットでは、第1の点の方から中継点を求めるとともに第2の点の方から中継点を求めて、ロボットの動作の経路を適した経路にすることができる。
上記課題の少なくとも一つを解決するために本発明の一態様は、開始点から終了点までのロボットの動作を複数回行う場合に、各回ごとに前記動作の経路が異なり得る、ロボットである。
この構成により、ロボットでは、開始点から終了点までのロボットの動作を複数回行う場合に、各回ごとに動作の経路が異なり得る。これにより、ロボットの特定の部位が他の部位と比べてより摩耗してしまうことを防止することができる。
また、本発明の一態様は、ロボットにおいて、前記動作の経路は、乱数に基づく、構成が用いられてもよい。
この構成により、ロボットでは、動作の経路は、乱数に基づく。これにより、ロボットでは、乱数を用いて、ロボットの動作の経路を適した経路にすることができる。
上記課題の少なくとも一つを解決するために本発明の一態様は、ロボットを構成する複数のジョイントの角度を成分とする空間において、第1の点と第2の点が与えられ、任意の第3の点を設定し、前記第1の点と前記第3の点との間に中継点を設定し、前記第1の点と前記中継点との間には障害物が存在せず、前記中継点に基づいて前記ロボットを動作させる、制御装置である。
この構成により、制御装置では、ロボットを構成する複数のジョイントの角度を成分とする空間において、任意の第3の点を設定し、第1の点と第3の点との間に中継点を設定し、第1の点と中継点との間には障害物が存在せず、中継点に基づいてロボットを動作させる。これにより、ロボットでは、ロボットの動作の経路を適した経路にすることができる。
以上のように、本発明に係るロボットおよび制御装置によれば、ロボットの動作の経路を適した経路にすることができる。
本発明の一実施形態に係るロボットの概略的な構成例を示す図である。 本発明の一実施形態に係る制御装置の概略的な構成例を示すブロック図である。 本発明の一実施形態に係るアームの経路の概要を示す図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。 本発明の一実施形態に係る経路の履歴情報の一例を示す図である。 本発明の一実施形態に係る設定画面の一例を示す図である。 本発明の一実施形態に係るロボットシステムの概略的な構成例を示す図である。
本発明の実施形態について図面を参照して詳細に説明する。
[ロボットの一例]
図1は、本発明の一実施形態に係るロボット1の概略的な構成例を示す図である。
ロボット1は、上部にある頭部と、中央部にある胴体部と、下部にある台部(台の部分)と、胴体部に設けられた腕部を備える。
ロボット1は、腕部として2本の腕(アーム)を有する双碗のロボットである。
ロボット1は、一方の腕側の構成として、第1のマニピュレーターMNP1と、第1の力センサー31−1と、第1のエンドエフェクターEND1を備える。これらは一体化され、本実施形態では、第1のマニピュレーターMNP1と第1のエンドエフェクターEND1との間に第1の力センサー31−1を備える。
ロボット1は、他方の腕側の構成として、第2のマニピュレーターMNP2と、第2の力センサー31−2と、第2のエンドエフェクターEND2を備える。これらは一体化され、本実施形態では、第2のマニピュレーターMNP2と第2のエンドエフェクターEND2との間に第2の力センサー31−2を備える。
本実施形態では、一方の腕側の構成(エンドエフェクターEND1が取り付けられたマニピュレーターMNP1)により7軸の自由度の動作を行うことが可能であり、他方の腕側の構成(エンドエフェクターEND2が取り付けられたマニピュレーターMNP2)により7軸の自由度の動作を行うことが可能であるが、他の構成例として、6軸以下または8軸以上の自由度の動作を行う構成が用いられてもよい。
ここで、アームは、7軸の自由度で動作する場合、6軸以下の自由度で動作する場合と比較して取り得る姿勢が増えることによって、例えば、動作が滑らかになり、当該アームの周辺に存在する物体との干渉を容易に回避することができる。また、アームが7軸の自由度で動作する場合、当該アームの制御は、アームが8軸以上の自由度で動作する場合と比較して計算量が少なく容易である。このような理由から、本実施形態では、好ましい一例として、7軸の自由度で動作するアームが用いられている。
また、本実施形態では、胴体部は、腰の部分で、1軸の自由度で回転することが可能な構成である。
また、ロボット1は、頭部の左右のそれぞれに設けられた2個の撮像部(第1の撮像部11−1、第2の撮像部11−2)と、第1のマニピュレーターMNP1の所定部位に設けられた撮像部(第3の撮像部21−1)と、第2のマニピュレーターMNP2の所定部位に設けられた撮像部(第4の撮像部21−2)を備える。
それぞれの撮像部(第1の撮像部11−1、第2の撮像部11−2、第3の撮像部21−1、第4の撮像部21−2)は、例えば、CCD(Charge Coupled Device)あるいはCMOS(Complementary Metal Oxide Semiconductor)等を用いたカメラである。
第1の撮像部11−1および第2の撮像部11−2は、それぞれ、頭部の動きに応じて動かされる。
第3の撮像部21−1および第4の撮像部21−2は、それぞれ、第1のマニピュレーターMNP1および第2のマニピュレーターMNP2のそれぞれの動きに応じて動かされる。
また、ロボット1は、制御装置51を備える。本実施形態では、ロボット1は、台部の内部に制御装置51を備える。
制御装置51は、ロボット1の動作を制御する。制御装置51は、例えば、第1のマニピュレーターMNP1および第2のマニピュレーターMNP2の動作を制御する。さらに、ロボット1の腰などの部分の動作が可能な構成では、制御装置51は当該腰などの部分の動作を制御する。
本実施形態では、第1の撮像部11−1、第2の撮像部11−2、第3の撮像部21−1および第4の撮像部21−2のそれぞれは、画像を撮像して、撮像された画像の情報を制御装置51に送信(出力)する。また、第1の力センサー31−1および第2の力センサー31−2のそれぞれは、第1のエンドエフェクターEND1および第2のエンドエフェクターEND2のそれぞれに作用する力およびモーメントを検出して、検出結果の情報を制御装置51に送信(出力)する。制御装置51は、これらの情報を受信(入力)し、受信された情報を、ロボット1の動作を制御する際に、使用することが可能である。
ここで、第1の撮像部11−1、第2の撮像部11−2、第3の撮像部21−1、第4の撮像部21−2、第1の力センサー31−1および第2の力センサー31−2のそれぞれと制御装置51とは回線を介して接続されており、当該回線を介して情報を通信することが可能である。
本実施形態では、第1のマニピュレーターMNP1の位置および姿勢、第2のマニピュレーターMNP2の位置および姿勢、および各撮像部(第1の撮像部11−1、第2の撮像部11−2、第3の撮像部21−1、第4の撮像部21−2)により撮像される画像について、座標系のキャリブレーションが行われている。
本実施形態では、制御装置51は、あらかじめ設定された動作制御プログラムにしたがって、ロボット1の動作を制御する。制御装置51は、ロボット1の動作を実現するために必要な各種の情報を、ロボット1(本体)に対して教示する。
具体例として、制御装置51は、各マニピュレーター(第1のマニピュレーターMNP1および第2のマニピュレーターMNP2)の動作を制御することで、各エンドエフェクター(第1のエンドエフェクターEND1および第2のエンドエフェクターEND2)により物体を把持すること、各エンドエフェクターにより把持された物体を移動させること、各エンドエフェクターにより把持された物体を所定位置に載置して離す(把持を解除する)こと、各エンドエフェクターにより把持された物体を加工(例えば、穴開けなど)すること、などが可能である。
[制御装置の一例]
図2は、本発明の一実施形態に係る制御装置51の概略的な構成例を示すブロック図である。
制御装置51は、入力部101と、出力部102と、記憶部103と、制御部104を備える。制御部104は、状態設定部121と、状態探索部122と、障害判定部123と、距離判定部124と、状態決定部125と、履歴管理部126を備える。
入力部101は、外部から情報を入力する。例えば、入力部101は、ユーザーにより操作される操作部を有し、操作部の操作に応じた情報を入力してもよく、また、外部の装置から出力された情報を入力してもよい。
出力部102は、外部へ情報を出力する。例えば、出力部102は、表示画面を有し、当該表示画面に情報を出力してもよく、また、外部の装置へ情報を出力してもよい。
記憶部103は、情報を記憶する。例えば、記憶部103は、動作制御プログラム、および各種のパラメーターなどを記憶する。
制御部104は、ロボット1に関する各種の制御を行う。例えば、制御部104は、CPU(Central Processing Unit)などのプロセッサーを備え、記憶部103に記憶された動作制御プログラムを実行することにより、各種の制御を行う。
[アームの経路の概要]
図3は、本発明の一実施形態に係るアームの経路の概要を示す図である。
本実施形態では、n(nは2以上の整数)個のジョイントの角度(本実施形態では、ジョイント角度と呼ぶ。)θ〜θをn個の成分(n個の軸の座標値)とするn次元空間(本実施形態で、ジョイント角度空間と呼ぶ。)を想定する。ここで、nは、アームを動作させるときに変化させることが可能なジョイントの数(アクチュエーターの数)となる。例えば、アームとして7軸の第1のマニピュレーターMNP1を動作させる場合には、n=7となる。同様に、アームとして7軸の第2のマニピュレーターMNP2を動作させる場合には、n=7となる。また、2本のアームとして7軸の第1のマニピュレーターMNP1および7軸の第2のマニピュレーターMNP2を動作させる場合には、n=14となる。また、アームの動作として、7軸の第1のマニピュレーターMNP1および7軸の第2のマニピュレーターMNP2を動作させるとともに、1軸の胴体部の回転を動作させる場合には、n=15となる。
このように、n個のアクチュエーターを制御してアームを動作させる場合、n個のアクチュエーターのジョイントの角度(ジョイント角度)θ〜θが決まると、当該アームの位置および姿勢が一意に決まる。
また、本実施形態では、n次元空間(ジョイント角度空間)は、n個のジョイント角度θ〜θの軸のすべてが互いに直交する空間である。また、n次元空間(ジョイント角度空間)において、2個の点(ノード)を結ぶ直線とは、これら2個の点を最短距離(最小の距離)で結ぶ線である。
図3は、n次元空間(ジョイント角度空間)を2次元の平面に写像したイメージを示す。
図3には、動作前アーム状態A1、目標アーム状態A2、中継点アーム状態C1、障害物状態B1、B2、経路D1を示してある。なお、図3において、中継点アーム状態C1は複数のうちの1個のみに符号を付してあり、経路D1は複数のうちの1個のみに符号を付してある。
動作前アーム状態A1は、動作前のアームの位置および姿勢を表す。一例として、動作前アーム状態A1は、アームの現状の位置および姿勢であってもよい。制御装置51は、アームの現状の位置および姿勢を特定することが可能である。
目標アーム状態A2は、目標となるアームの位置および姿勢を表す。一例として、目標アーム状態A2は、ユーザーにより設定されてもよい。
障害物状態B1、B2は、障害物の位置および姿勢を表す。障害物は、例えば、ロボット1自体(自己衝突の場合)、およびそれ以外の障害となる物体(把持等する対象の物体を除く。)を含む。すなわち、アームはロボット1自体およびそれ以外の障害となる物体にぶつからないように動作させられることが必要である。ロボット1自体以外の障害となる物体は、例えば、作業空間にある周辺機器を含んでもよく、具体例として、給材装置、加工装置、除材装置、製造装置、容器、テーブルなどを含んでもよい。
制御装置51は、ロボット1自体の位置および姿勢を特定することが可能である。
また、制御装置51は、撮像部(第1の撮像部11−1、第2の撮像部11−2、第3の撮像部21−1および第4の撮像部21−2のうちの1以上)により撮像された画像に基づいて、ロボット1自体以外の障害となる物体の位置および姿勢を特定することが可能である。他の構成例として、ロボット1自体以外の障害となる物体の位置および姿勢の情報が、あらかじめ制御装置51の記憶部103に記憶されて、参照されてもよい。
本実施形態では、ジョイント角度空間において、動作前アーム状態A1および目標アーム状態A2が設定される。そして、制御装置51は、ジョイント角度空間において、動作前アーム状態A1と目標アーム状態A2との間を接続し、かつ障害物状態B1、B2と接触(衝突)しない1個以上の中継点アーム状態C1を決定する。また、制御装置51は、動作前アーム状態A1から中継点アーム状態C1を通過して目標アーム状態A2に到達するまでの経路D1の全体の距離が小さくなるように、中継点アーム状態C1を決定する。そして、状態設定部121は、このような中継点アーム状態C1を設定する。ここで、ジョイント角度空間における距離が小さい方が、ジョイント角度の変化量が小さいため、動作の制御が効率的である。
図3は、このようにして設定された動作前アーム状態A1から中継点アーム状態C1を通過して目標アーム状態A2に到達するまでの経路D1の一例を示してある。
ここで、制御装置51は、ジョイント角度空間において、動作前アーム状態A1に相当するn個のジョイント角度から目標アーム状態A2に相当するn個のジョイント角度へと結ぶ1個以上の中継点アーム状態C1に相当するn個のジョイント角度に順に制御することで、アームを動作前アーム状態A1から目標アーム状態A2へ変化させることができる。全体の経路D1において、アームの自己衝突あるいは作業空間にある周辺機器など(作業の環境)との衝突が発生しないことが確認されることが必要である。
[アームの経路の生成の概要]
本実施形態では、制御装置51の制御部104が制御して、ジョイント角度空間において、アームの経路D1を生成する。
状態設定部121は、ジョイント角度空間において、中継点アーム状態候補などを設定する。中継点アーム状態候補は、中継点アーム状態C1の候補である。
状態探索部122は、ジョイント角度空間において、中継点アーム状態C1などを探索する。
障害判定部123は、ジョイント角度空間において、経路D1が障害物状態B1、B2に接触するか否かを判定する。
距離判定部124は、ジョイント角度空間において、距離を判定する。
状態決定部125は、ジョイント角度空間において、中継点アーム状態C1を決定する。
[アームの経路の生成の具体例]
図4〜図15を参照して、アームの経路の生成の具体例を示す。なお、図4〜図15の例では、図3の例とは異なる経路が得られる場合を示す。
図4〜図15は、本発明の一実施形態に係るアームの経路の生成の具体例を説明するための図である。
図4〜図15では、図3と同様に、n次元空間(ジョイント角度空間)を2次元の平面に写像したイメージを示す。
本実施形態では、制御装置51の制御部104が制御して、アームの経路を生成する処理を実行する。
(手順の例1)
図4を参照して説明する。
まず、状態設定部121は、ジョイント角度空間において、動作前アーム状態A1、目標アーム状態A2、および障害物状態B1、B2を設定する。
そして、状態設定部121は、新たに追加的に、1個の中継点アーム状態候補E1を設定する。ここで、状態設定部121は、障害物状態B1、B2との衝突が発生しないように、中継点アーム状態候補E1を設定する。一例として、状態設定部121は、ユーザーにより行われる操作によって指示された中継点アーム状態候補E1を設定してもよい。他の例として、状態設定部121は、あらかじめ設定された手順にしたがって(自動的に)中継点アーム状態候補E1を設定してもよく、例えば、ランダムな位置(例えば、ランダムな値に基づく位置)に中継点アーム状態候補E1を設定してもよい。また、状態設定部121は、ジョイント角度空間における所定の領域(動作領域)の内側に中継点アーム状態候補E1を設定してもよい。当該所定の領域は、例えば、動作前アーム状態A1および目標アーム状態A2を含む領域であってもよく、動作前アーム状態A1および目標アーム状態A2に基づいて、あらかじめ定められた手順によって決められる領域であってもよい。また、当該所定の領域は、例えば、各ジョイント角度θ(i=1、2、・・・、n)の取り得る値に基づいて決められてもよく、各ジョイント角度θが取り得ることが可能な領域の中で決められてもよい。なお、ランダムな値は、例えば、乱数を用いて求められてもよい。
(手順の例2)
図5を参照して説明する。
本実施形態では、動作前アーム状態A1および当該動作前アーム状態A1の方から結ばれていく中継点アーム状態により構成されるツリーを動作前アーム状態側ツリーと呼ぶ。また、目標アーム状態A2および当該目標アーム状態A2の方から結ばれていく中継点アーム状態により構成されるツリーを目標アーム状態側ツリーと呼ぶ。なお、動作前アーム状態A1と目標アーム状態A2とが中継点アーム状態を介して接続されたときには、動作前アーム状態側ツリーに含まれる中継点アーム状態と目標アーム状態側ツリーに含まれる中継点アーム状態とが一致する。
状態探索部122は、新たに追加された中継点アーム状態候補E1に対して、動作前アーム状態側ツリーに所属するノード(動作前アーム状態A1および中継点アーム状態)のうちで、最も距離が小さい(近い)ノードを探索する。ここで、中継点アーム状態候補E1が最初に追加されたときは、動作前アーム状態A1から伸びる中継点アーム状態は存在せず、動作前アーム状態側ツリーに所属するノードは動作前アーム状態A1のみである。このため、状態探索部122は、動作前アーム状態A1を探索結果として取得する。
同様に、状態探索部122は、新たに追加された中継点アーム状態候補E1に対して、目標アーム状態側ツリーに所属するノード(目標アーム状態A2および中継点アーム状態)のうちで、最も距離が小さい(近い)ノードを探索する。ここで、中継点アーム状態候補E1が最初に追加されたときは、目標アーム状態A2から伸びる中継点アーム状態は存在せず、目標アーム状態側ツリーに所属するノードは目標アーム状態A2のみである。このため、状態探索部122は、目標アーム状態A2を探索結果として取得する。
図5では、中継点アーム状態候補E1と探索結果である動作前アーム状態A1とを結ぶ線(仮の経路)を示してある。また、中継点アーム状態候補E1と探索結果である目標アーム状態A2とを結ぶ線(仮の経路)を示してある。
(手順の例3)
図6を参照して説明する。
図5の例では、新たに追加された中継点アーム状態候補E1と、動作前アーム状態側ツリーに所属するノードのうちで当該中継点アーム状態候補E1に最も距離が小さいノードとを結ぶ直線は、中継点アーム状態候補E1と動作前アーム状態A1とを結ぶ直線となる。
障害判定部123は、当該直線上のジョイント角度(位置および姿勢)について、動作前アーム状態A1の側から新たに追加された中継点アーム状態候補E1の側へ向かって、障害物状態B1、B2との接触の有無を判定して確認する。
本実施形態では、障害判定部123は、前記直線上に動作前アーム状態A1の側から新たに追加された中継点アーム状態候補E1の側へ向かって1個以上の中間アーム状態F1、F2、F3(位置および姿勢)を仮のノードとして設定して、各中間アーム状態F1、F2、F3が障害物状態B1、B2に接触するか否かを判定する。図6の例では、中間アーム状態F1、F2は障害物状態B1、B2に接触せず(衝突無し)、中間アーム状態F3は障害物状態B1、B2に接触する(衝突有り)。つまり、動作前アーム状態A1から中間アーム状態F2までの直線上には障害物状態B1、B2は存在しないが、中間アーム状態F2から中間アーム状態F3までの直線上には障害物状態B1、B2が存在して衝突する。ここで、これらの中間アーム状態F1、F2、F3は、任意に設定されてもよく、例えば、所定の距離ごとに離隔させて設定されてもよい。
(手順の例4)
図7を参照して説明する。
状態決定部125は、図6を参照して説明した障害判定部123による判定結果に基づいて、いずれかの中間アーム状態F1、F2、F3が障害物状態B1、B2と接触すると判定された場合、次の処理を行う。すなわち、状態決定部125は、前記直線上に動作前アーム状態A1の側から新たに追加された中継点アーム状態候補E1の側へ向かって設定された中間アーム状態F1、F2、F3のうちで、障害物状態B1、B2と接触した中間アーム状態F3に対して、直前の中間アーム状態F2を中継点アーム状態C11として決定する。そして、状態設定部121は、当該中継点アーム状態C11を設定して、当該中継点アーム状態C11を動作前アーム状態側ツリーに追加する。これにより、動作前アーム状態側ツリーにおいて、当該中継点アーム状態C11とそれに隣接するノード(ここでは、動作前アーム状態A1)とを結ぶ(接続する)経路D11が形成される。
なお、他の例として、状態決定部125は、いずれのノードも障害物状態B1、B2と接触しないと判定された場合、新たに追加された中継点アーム状態候補E1を中継点アーム状態として決定する。そして、状態設定部121は、当該中継点アーム状態を設定して、当該中継点アーム状態を動作前アーム状態側ツリーに追加する。この場合、動作前アーム状態側ツリーにおいて、当該中継点アーム状態とそれに隣接するノード(ここでは、動作前アーム状態A1)とを結ぶ経路が形成される。
(手順の例5)
図8を参照して説明する。ここでは、図6を参照して示された動作前アーム状態A1の側の処理と同様な処理を目標アーム状態A2の側について行う。
図5の例では、新たに追加された中継点アーム状態候補E1と、目標アーム状態側ツリーに所属するノードのうちで当該中継点アーム状態候補E1に最も距離が小さいノードとを結ぶ直線は、中継点アーム状態候補E1と目標アーム状態A2とを結ぶ直線となる。
障害判定部123は、当該直線上のジョイント角度(位置および姿勢)について、目標アーム状態A2の側から新たに追加された中継点アーム状態候補E1の側へ向かって、障害物状態B1、B2との接触の有無を判定して確認する。
本実施形態では、障害判定部123は、前記直線上に目標アーム状態A2の側から新たに追加された中継点アーム状態候補E1の側へ向かって1個以上の中間アーム状態G1(位置および姿勢)を仮のノードとして設定して、各中間アーム状態G1が障害物状態B1、B2に接触するか否かを判定する。なお、図8では、設定された複数の中間アーム状態のうちで1個の中間アーム状態G1のみに符号を付してある。図8の例では、これらのすべての中間アーム状態G1は障害物状態B1、B2に接触しない。ここで、これらの中間アーム状態G1は、任意に設定されてもよく、例えば、所定の距離ごとに離隔させて設定されてもよい。
(手順の例6)
図9を参照して説明する。ここでは、図7を参照して示された動作前アーム状態A1の側の処理と同様な処理を目標アーム状態A2の側について行う。
状態決定部125は、図8を参照して説明した障害判定部123による判定結果に基づいて、いずれの中間アーム状態G1も障害物状態B1、B2と接触しないと判定された場合、次の処理を行う。すなわち、状態決定部125は、新たに追加された中継点アーム状態候補E1を中継点アーム状態C21として決定する。そして、状態設定部121は、当該中継点アーム状態C21を設定して、当該中継点アーム状態C21を目標アーム状態側ツリーに追加する。これにより、目標アーム状態側ツリーにおいて、当該中継点アーム状態C21とそれに隣接するノード(ここでは、目標アーム状態A2)とを結ぶ経路D21が形成される。
なお、他の例として、状態決定部125は、いずれかの中間アーム状態G1が障害物状態B1、B2と接触すると判定された場合、次の処理を行う。すなわち、状態決定部125は、前記直線上に目標アーム状態A2の側から新たに追加された中継点アーム状態候補E1の側へ向かって設定された中間アーム状態G1のうちで、障害物状態B1、B2と接触した中間アーム状態G1に対して、直前の中間アーム状態G1を中継点アーム状態として決定する。そして、状態設定部121は、当該中継点アーム状態を設定して、当該中継点アーム状態を目標アーム状態側ツリーに追加する。この場合、目標アーム状態側ツリーにおいて、当該中継点アーム状態とそれに隣接するノード(ここでは、目標アーム状態A2)とを結ぶ(接続する)経路が形成される。
(手順の例7)
図10を参照して説明する。
状態設定部121は、新たに追加的に、1個の中継点アーム状態候補E11を設定する。ここで、状態設定部121は、障害物状態B1、B2との衝突が発生しないように、中継点アーム状態候補E11を設定する。
なお、この設定は、図4の例において中継点アーム状態候補E1を設定した手法と同様な手法で行われる。
状態探索部122は、新たに追加された中継点アーム状態候補E11に対して、動作前アーム状態側ツリーに所属するノード(動作前アーム状態A1および中継点アーム状態C11)のうちで、最も距離が小さい(近い)ノードを探索する。図10の例では、状態探索部122は、中継点アーム状態C11を探索結果として取得する。
同様に、状態探索部122は、新たに追加された中継点アーム状態候補E11に対して、目標アーム状態側ツリーに所属するノード(目標アーム状態A2および中継点アーム状態C21)のうちで、最も距離が小さい(近い)ノードを探索する。図10の例では、状態探索部122は、中継点アーム状態C21を探索結果として取得する。
図10では、中継点アーム状態候補E11と探索結果である中継点アーム状態C11とを結ぶ線(仮の経路)を示してある。また、中継点アーム状態候補E11と探索結果である中継点アーム状態C21とを結ぶ線(仮の経路)を示してある。
(手順の例8)
図11を参照して説明する。
図10の例では、新たに追加された中継点アーム状態候補E11と、動作前アーム状態側ツリーに所属するノードのうちで当該中継点アーム状態候補E11に最も距離が小さいノードとを結ぶ直線は、中継点アーム状態候補E11と中継点アーム状態C11とを結ぶ直線となる。
障害判定部123は、当該直線上のジョイント角度(位置および姿勢)について、中継点アーム状態C11の側から新たに追加された中継点アーム状態候補E11の側へ向かって、障害物状態B1、B2との接触の有無を判定して確認する。
本実施形態では、障害判定部123は、前記直線上に中継点アーム状態C11の側から新たに追加された中継点アーム状態候補E11の側へ向かって1個以上の中間アーム状態F11(位置および姿勢)を仮のノードとして設定して、各中間アーム状態F11が障害物状態B1、B2に接触するか否かを判定する。なお、図11では、設定された複数の中間アーム状態のうちで1個の中間アーム状態F11のみに符号を付してある。図11の例では、これらのすべての中間アーム状態F11は障害物状態B1、B2に接触しない。ここで、これらの中間アーム状態F11は、任意に設定されてもよく、例えば、所定の距離ごとに離隔させて設定されてもよい。
同様に、図10の例では、新たに追加された中継点アーム状態候補E11と、目標アーム状態側ツリーに所属するノードのうちで当該中継点アーム状態候補E11に最も距離が小さいノードとを結ぶ直線は、中継点アーム状態候補E11と中継点アーム状態C21とを結ぶ直線となる。
障害判定部123は、当該直線上のジョイント角度(位置および姿勢)について、中継点アーム状態C21の側から新たに追加された中継点アーム状態候補E11の側へ向かって、障害物状態B1、B2との接触の有無を判定して確認する。
本実施形態では、障害判定部123は、前記直線上に中継点アーム状態C21の側から新たに追加された中継点アーム状態候補E11の側へ向かって1個以上の中間アーム状態G11(位置および姿勢)を仮のノードとして設定して、各中間アーム状態G11が障害物状態B1、B2に接触するか否かを判定する。なお、図11では、設定された複数の中間アーム状態のうちで1個の中間アーム状態G11のみに符号を付してある。図11の例では、これらのすべての中間アーム状態G11は障害物状態B1、B2に接触しない。ここで、これらの中間アーム状態G11は、任意に設定されてもよく、例えば、所定の距離ごとに離隔させて設定されてもよい。
(手順の例9)
図12を参照して説明する。図12には、図11を参照して説明した場合の次に行われる処理の一例を示してある。
図11の例において、動作前アーム状態A1の側の前記直線上の中間アーム状態F11および目標アーム状態A2の側の前記直線上の中間アーム状態G11の両方について、障害物状態B1、B2に接触しないことが判定された場合には、状態決定部125は、新たに追加された中継点アーム状態候補E11を中継点アーム状態C31として決定する。そして、状態設定部121は、当該中継点アーム状態C31を設定して、これまでに得られているツリー(動作前アーム状態側ツリーおよび目標アーム状態側ツリー)をたどって、動作前アーム状態A1から目標アーム状態A2に至る中継点アーム状態C11、C31、C21および経路D11、D31、D41、D21を確定させることができる。
具体的に説明する。
状態決定部125は、動作前アーム状態A1の側の処理として、図11を参照して説明した障害判定部123による判定結果に基づいて、いずれの中間アーム状態F11も障害物状態B1、B2と接触しないと判定された場合、次の処理を行う。すなわち、状態決定部125は、新たに追加された中継点アーム状態候補E11を中継点アーム状態C31として決定する。そして、状態設定部121は、当該中継点アーム状態C31を設定して、当該中継点アーム状態C31を動作前アーム状態側ツリーに追加する。これにより、動作前アーム状態側ツリーにおいて、当該中継点アーム状態C31とそれに隣接するノード(ここでは、中継点アーム状態C11)とを結ぶ経路D31が形成される。
同様に、状態決定部125は、目標アーム状態A2の側の処理として、図11を参照して説明した障害判定部123による判定結果に基づいて、いずれの中間アーム状態G11も障害物状態B1、B2と接触しないと判定された場合、次の処理を行う。すなわち、状態決定部125は、新たに追加された中継点アーム状態候補E11を中継点アーム状態C31として決定する。そして、状態設定部121は、当該中継点アーム状態C31を設定して、当該中継点アーム状態C31を目標アーム状態側ツリーに追加する。これにより、目標アーム状態側ツリーにおいて、当該中継点アーム状態C31とそれに隣接するノード(ここでは、中継点アーム状態C21)とを結ぶ経路D41が形成される。
ここで、状態決定部125により行われる動作前アーム状態A1の側の処理と目標アーム状態A2の側の処理の順序としては、任意であってもよく、または、これらの処理が同時に並列して行われてもよい。
(手順の例10)
図13〜図15では、図11を参照して説明した場合の次に行われる処理の他の一例として、図12を参照して説明した処理とは異なる処理を示す。
ここで、新たに追加された中継点アーム状態候補E11と、目標アーム状態側ツリーに所属するノードのうちで当該中継点アーム状態候補E11に最も距離が小さいノードとを結ぶ直線は、中継点アーム状態候補E11と中継点アーム状態C21とを結ぶ直線となる。
同様に、新たに追加された中継点アーム状態候補E11と、目標アーム状態側ツリーに所属するノードのうちで当該中継点アーム状態候補E11に最も距離が小さいノードとを結ぶ直線は、中継点アーム状態候補E11と中継点アーム状態C21とを結ぶ直線となる。
図13〜図15に示される処理では、図12を参照して説明した処理で得られる経路(経路D31および経路D41)よりも距離が小さい経路を決定することを試みる。すなわち、図11の例において、動作前アーム状態A1の側の前記直線上の中間アーム状態F11および目標アーム状態A2の側の前記直線上の中間アーム状態G11の両方について、障害物状態B1、B2に接触しないことが判定された場合には、動作前アーム状態A1の側の前記直線上のノード(位置および姿勢)と、目標アーム状態A2の側の前記直線上のノード(位置および姿勢)と、を結び、これら2個のノードを中継点アーム状態として確定させることができる可能性がある。本処理では、距離を小さくできる2個のノード(捷路ノード)の組み合わせを決定する。
具体的に説明する。
図13を参照して説明する。
距離判定部124は、図11の例において、動作前アーム状態A1の側の前記直線上の中間アーム状態F11および目標アーム状態A2の側の前記直線上の中間アーム状態G11の両方について、障害物状態B1、B2に接触しないことが判定された場合には、動作前アーム状態A1の側の前記直線上のジョイント角度(位置および姿勢)と、目標アーム状態A2の側の前記直線上のジョイント角度(位置および姿勢)と、について、距離を小さくできる組み合わせを決定する。ここで、距離を小さくできる組み合わせとしては、例えば、選択可能な範囲で距離が最小となる組み合わせが用いられる。
本実施形態では、距離判定部124は、動作前アーム状態A1の側の前記直線上に、動作前アーム状態A1の側(図13の例では、中継点アーム状態C11の側)から新たに追加された中継点アーム状態候補E11の側へ向かって1個以上の追加状態候補H1、H2、H3、H4(仮のノード)を設定する。また、距離判定部124は、目標アーム状態A2の側の前記直線上に、目標アーム状態A2の側(図13の例では、中継点アーム状態C21の側)から新たに追加された中継点アーム状態候補E11の側へ向かって1個以上の追加状態候補I1、I2、I3、I4、I5、I6(仮のノード)を設定する。ここで、これらの追加状態候補H1〜H4、I1〜I6は、任意に設定されてもよく、例えば、所定の距離ごとに離隔させて設定されてもよい。また、これらの追加状態候補H1〜H4、I1〜I6は、例えば、障害物状態B1、B2との接触の有無を確認するために設定されたノード(図11に示される中間アーム状態F11、G11)と同じであってもよく、または、異なってもよい。
(手順の例11)
図14を参照して説明する。
障害判定部123は、動作前アーム状態A1の側の追加状態候補H1〜H4のそれぞれと目標アーム状態A2の側の追加状態候補I1〜I6のそれぞれとの組み合わせに関して、互いを結ぶ直線上のジョイント角度(位置および姿勢)について、障害物状態B1、B2との接触の有無を判定して確認する。図14の例では、追加状態候補H1〜H4、I1〜I6の符号のみを用いて示すと、障害判定部123は、(H1→I5)、(H1→I6)、(H2→I4)、(H2→I5)、(H2→I6)、(H3→I1)、(H3→I2)、(H3→I3)、(H3→I4)、(H3→I5)、(H3→I6)、(H4→I1)、(H4→I2)、(H4→I3)、(H4→I4)、(H4→I5)、(H4→I6)の組み合わせについて、障害物状態B1、B2との接触が無いと判定し、他の組み合わせについては障害物状態B1、B2との接触が有ると判定する。
距離判定部124は、障害物状態B1、B2との接触が無いと判定された追加状態候補の組み合わせ(追加状態候補H1〜H4のそれぞれと追加状態候補I1〜I6のそれぞれとの組み合わせ)のそれぞれについて、動作前アーム状態A1の側の直前の中継点アーム状態C11と目標アーム状態A2の側の直前の中継点アーム状態C21とを結ぶ経路部分の距離を検出する。具体的には、当該経路部分は、中継点アーム状態C11から、追加状態候補H1〜H4のうちのいずれか1個および追加状態候補I1〜I6のうちのいずれか1個を通過して、中継点アーム状態C21に至る経路部分である。そして、距離判定部124は、これらの組み合わせのうちで、当該距離が最小となる組み合わせを判定する。図14の例では、距離判定部124は、追加状態候補H2と追加状態候補I4との組み合わせが、当該距離が最小となる組み合わせであると判定する。
(手順の例12)
図15を参照して説明する。
状態決定部125は、距離判定部124により判定された距離が最小となる組み合わせについて、当該組み合わせに係る動作前アーム状態A1の側の追加状態候補H2を選択して中継点アーム状態C41として決定するとともに、当該組み合わせに係る目標アーム状態A2の側の追加状態候補I4を選択して中継点アーム状態C51として決定する。そして、状態設定部121は、中継点アーム状態C41および中継点アーム状態C51を設定して、これらをツリー(動作前アーム状態側ツリーおよび目標アーム状態側ツリー)に追加する。これにより、ツリー(動作前アーム状態側ツリーおよび目標アーム状態側ツリー)において、当該中継点アーム状態C41とそれに隣接するノード(ここでは、中継点アーム状態C11)とを結ぶ経路D51、当該中継点アーム状態C51とそれに隣接するノード(ここでは、中継点アーム状態C21)とを結ぶ経路D61、および当該中継点アーム状態C41と当該中継点アーム状態C51とを結ぶ経路D71が形成される。
このように、図13〜図15の例では、動作前アーム状態A1の側の前記直線上のジョイント角度(位置および姿勢)と目標アーム状態A2の側の前記直線上のジョイント角度(位置および姿勢)について、互いを結ぶ経路が複数存在する場合には、状態決定部125は、距離(ジョイント角度の変化量)が最小となる組み合わせを選択して決定する。
ここで、図15の例では、状態設定部121は、これまでに得られているツリー(動作前アーム状態側ツリーおよび目標アーム状態側ツリー)をたどって、動作前アーム状態A1から目標アーム状態A2に至る中継点アーム状態C11、C41、C51、C21および経路D11、D51、D71、D61、D21を確定させることができる。
なお、図13〜図15の例に示される処理において、動作前アーム状態A1の側の前記直線上のジョイント角度(位置および姿勢)と目標アーム状態A2の側の前記直線上のジョイント角度(位置および姿勢)について、互いを結ぶ追加状態候補間の経路(追加状態候補H1〜H4のそれぞれと追加状態候補I1〜I6のそれぞれとの間の経路)のうちで、障害物状態B1、B2と接触しない経路が無いと判定された場合には、状態決定部125は、例えば、図10の例に示される処理により、中継点アーム状態C31および経路D31、D41を決定して確定させてもよい。
また、図13〜図15の例に示される処理では、新たに追加された中継点アーム状態候補E11を候補のままとして処理を行った。他の構成例として、図13〜図15の例に示される処理において、まず、状態決定部125は、新たに追加された中継点アーム状態候補E11を中継点アーム状態C31として決定してもよい。この場合、状態設定部121は、当該中継点アーム状態C31を設定して、当該中継点アーム状態C31をツリー(動作前アーム状態側ツリーおよび目標アーム状態側ツリー)に追加してもよい。なお、当該構成は、新たに追加された中継点アーム状態候補E11を、候補のままとして処理を行うのではなく、中継点アーム状態C31として処理を行う点で、本実施形態とは異なるが、図15の例において生成される経路は同じになる。
(手順の例の補足1)
ここで、図4〜図15を参照して説明した一連の処理に関し、図4〜図9の例では、設定された中継点アーム状態候補E1について、動作前アーム状態A1の側では障害物状態B1、B2との接触が有り、目標アーム状態A2の側では障害物状態B1、B2との接触が無い場合を示した。他の例として、動作前アーム状態A1の側では障害物状態B1、B2との接触が無く、目標アーム状態A2の側では障害物状態B1、B2との接触が有る場合には、制御部104では、図4〜図9の例における動作前アーム状態A1の側の処理と目標アーム状態A2の側の処理とを逆にした処理を行う。他の例として、動作前アーム状態A1の側および目標アーム状態A2の側の両方で障害物状態B1、B2との接触が有る場合には、制御部104では、これら両方について、図4〜図9の例における動作前アーム状態A1の側の処理と同様な処理を行う。他の例として、動作前アーム状態A1の側および目標アーム状態A2の側の両方で障害物状態B1、B2との接触が無い場合には、制御部104では、図4〜図9の例の処理をせずに、図10〜図15の例の処理を行う。
(手順の例の補足2)
また、図4〜図15の例では、制御部104では、図4〜図9の例において動作前アーム状態A1の側または目標アーム状態A2の側の少なくとも一方で障害物状態B1、B2との接触が有るとき(ここで、接触有り時と呼ぶ。)の処理を行い、当該処理を1回行った後に、図10〜図15の例において動作前アーム状態A1の側および目標アーム状態A2の側の両方で障害物状態B1、B2との接触が無くなったとき(ここで、接触無し時と呼ぶ。)の処理を行う場合を示した。他の例として、制御部104では、接触有り時の処理を1回行っても、まだ接触有り時の状況が継続する場合には、接触無し時となるまで2回目以降も繰り返して接触有り時の処理(中継点アーム状態候補E1、E11を設定していく処理)を行い、そして、接触無し時となったときに、接触無し時の処理を行って、動作前アーム状態A1から目標アーム状態A2までの経路を決定する。これにより、動作前アーム状態A1から目標アーム状態A2までのアームの経路が生成される。
なお、本実施形態では、動作前アーム状態側ツリーと目標アーム状態側ツリーを用いてアームの経路を生成する処理を示したが、このようなツリーは他のツリーが用いられてもよい。一例として、本実施形態に係る動作前アーム状態側ツリーに含まれる中継点アーム状態と本実施形態に係る目標アーム状態側ツリーに含まれる中継点アーム状態との両方をまとめたツリー(中継点アーム状態ツリー)が用いられてもよい。他の例として、このようなツリーが用いられずに、アームの経路を生成する処理が実施されてもよい。
[アームの経路の履歴情報の利用]
制御装置51の制御部104では、過去に生成されたアームの経路の履歴情報を記憶して利用することが可能である。
具体的に説明する。
図16は、本発明の一実施形態に係る経路の履歴情報301の一例を示す図である。
履歴情報301は、環境と、動作前アーム状態と、目標アーム状態と、経路と、を対応付けた情報である。
本実施形態では、各項目(環境、動作前アーム状態、目標アーム状態、経路)の情報をそれぞれの識別番号(所定の桁数の数字)で特定している。各項目における識別番号と、当該各項目の内容とは、別のテーブル情報で対応付けられている。当該別のテーブル情報および履歴情報301は、記憶部103に記憶される。なお、他の構成例として、当該別のテーブル情報の内容が履歴情報301に含められて、当該履歴情報301のみにまとめられていてもよい。
履歴情報301における環境の情報は、例えば、ロボット1により行われる作業の環境に関する情報である。具体例として、環境の情報は、ロボット1自体の位置および姿勢の情報、およびロボット1自体以外の障害となる物体の位置および姿勢の情報を含む。
履歴情報301における動作前アーム状態の情報は、動作前アーム状態の位置および姿勢の情報である。
履歴情報301における目標アーム状態の情報は、目標アーム状態の位置および姿勢の情報である。
履歴情報301における経路の情報は、アームの経路に関する情報である。経路の情報は、例えば、動作前アーム状態と目標アーム状態とを結ぶ1個以上の中継点アーム状態の位置および姿勢の情報を含む。
制御装置51の制御部104では、履歴管理部126は、アームの経路が生成されるたびに、当該経路の情報を履歴情報301に記憶させる。これにより、過去に生成されたアームの経路の情報が履歴情報301に蓄積されていく。
また、履歴管理部126は、環境において、動作前アーム状態および目標アーム状態が設定されてアームの経路の生成処理が行われるときには、その前に、環境、動作前アーム状態および目標アーム状態の同一の組み合わせが履歴情報301の中に含まれるか否かを判定する。そして、履歴管理部126は、環境、動作前アーム状態および目標アーム状態の同一の組み合わせが履歴情報301の中に含まれると判定した場合には、当該履歴情報301に基づいて、当該組み合わせに対応付けられた経路を特定し、特定された経路を採用するように決定する。
ここで、本実施形態では、履歴管理部126は、履歴情報301に基づいて、環境、動作前アーム状態および目標アーム状態の組み合わせが同一である過去の経路を使用する構成を示した。他の構成例として、当該組み合わせが同一である場合ばかりでなく、当該組み合わせの内容が所定のズレの範囲内に収まる場合にも、同様に過去の経路を使用する構成が用いられてもよい。
また、本実施形態では、環境、動作前アーム状態および目標アーム状態の組み合わせが同一である過去の経路を使用する構成を示したが、他の構成例として、環境が不変である場合、あるいは、環境のズレが小さいような場合に、環境の同一性を考慮しない構成が用いられてもよい。この構成では、履歴管理部126は、履歴情報301に基づいて、動作前アーム状態および目標アーム状態の組み合わせが同一である過去の経路を使用する。
なお、履歴管理部126によりアームの経路の履歴情報301を記憶させること、あるいは、履歴管理部126によりアームの経路の履歴情報301を利用することは、必ずしも行われなくてもよい。すなわち、環境、動作前アーム状態および目標アーム状態の組み合わせが過去のものと同一であっても、制御部104では、再び、アームの経路の生成処理を行ってもよい。
[UIの画面の一例]
図4〜図15を参照して説明したアームの経路の生成処理において、ユーザーが各種の条件を設定することが可能な構成が用いられてもよい。
図17は、本発明の一実施形態に係る設定画面401の一例を示す図である。
設定画面401は、ユーザーインターフェイス(UI:User Interface)の画面の一例である。設定画面401は、出力部102により表示される。
設定画面401は、図4〜図15と同様に、n次元空間(ジョイント角度空間)を2次元の平面に写像したイメージを表示する。
ユーザーは、設定画面401を見ながら、各種の条件として、動作領域411、障害物状態421、動作前アーム状態422、目標アーム状態423、あるいは、中継点アーム状態候補などのノード431、のうちの1以上を設定することが可能である。
ここで、動作領域411は、例えば、ロボット1の動作が可能な領域のすべてが用いられてもよく、または、ロボット1の動作が可能な領域のすべてのうちで、当該ロボット1により作業を行うことが設定された一部の領域(作業領域)が用いられてもよい。そして、動作前アーム状態422、目標アーム状態423、あるいは、中継点アーム状態候補などのノード431は、当該動作領域411の内部のみに設定され得る。
なお、ユーザーは、入力部101が備える操作部を操作することにより、設定画面401を見ながら、各種の条件を設定する。ここで、当該操作部は、例えば、キーボードおよびマウスなどであってもよく、あるいは、専用の操作部であってもよく、あるいは、設定画面401に表示されるボタンまたはアイコンなど(例えば、タッチパネル)であってもよい。
[実施形態のまとめ]
以上のように、本実施形態に係るロボット1では、ジョイント角度空間において、動作前アーム状態A1から目標アーム状態A2までアームの状態(位置および姿勢)が変化するときの中継点アーム状態を設定することができ、設定された中継点アーム状態を通過する経路を生成して、アームが動作する経路とすることができる。本実施形態に係るロボット1では、当該ロボット1自体または当該ロボット1の動作領域に存在する他の障害物となる物体との接触(衝突)を回避した経路を生成することができる。本実施形態に係るロボット1では、ジョイント角度の変化量が小さい経路を生成することができ、アームの動作量を小さくして、アームの動作をコンパクトにすることが可能である。本実施形態に係るロボット1では、ユーザーによる設定、または、当該ロボット1による自動的な設定を用いて、簡易に経路を生成することができる。本実施形態に係るロボット1では、生成された経路に基づいて、アームが当該経路を辿って動作するように制御する。
また、本実施形態に係るロボット1では、アームの経路を生成する処理において、中継点アーム状態候補E1、E11などのノードをランダムに設定することができる。これにより、本実施形態に係るロボット1では、例えば、障害物状態B1、B2などの環境、動作前アーム状態A1および目標アーム状態A2の組み合わせが同一であっても、異なる経路を生成する場合がある。また、本実施形態に係るロボット1では、例えば、障害物状態B1、B2が存在しなくても、動作前アーム状態A1と目標アーム状態A2とが直線で結ばれる経路が生成されない場合がある。
このように、本実施形態に係るロボット1では、ランダムな設定により、生成される経路が変化し得るため、アームの動作が毎回同じになることを防止して、ロボットの特定の部位が他の部位と比べてより摩耗してしまうことを防止することができる。
なお、他の構成例として、本実施形態に係るロボット1では、アームの経路の履歴情報301を記憶しておき、同一の状況(例えば、環境、動作前アーム状態A1および目標アーム状態A2)において、過去に生成された経路と同じ経路を使用することで、アームの経路の生成処理に要する負荷を低減させることが可能である。
また、本実施形態では、ロボット1の動作の経路として、アームの動作の経路を例として示したが、同様な構成がアーム以外の動作の経路に適用されてもよい。
以上のように、本実施形態に係るロボット1では、ロボット1の動作の経路を適した経路にすることができる。さらに、目標姿勢まで干渉無く動作する経路を短時間で計算できる。
なお、ロボット1の構成としては、本実施形態のロボット1の構成に限定されない。例えば、1本の腕(アーム)を有する単腕のロボットが用いられてもよい。また、ロボット1に備えられる撮像部11−1、11−2、21−1、21−2の数は任意であってもよい。また、ロボット1に力センサー31−1、31−2が備えられない構成が用いられてもよい。また、撮像部11−1、11−2、21−1、21−2、力センサー31−1、31−2および制御装置51がロボット1に備えらえる部位は、それぞれ、任意の部位であってもよい。また、制御装置51の機能がロボット1の複数の部位に分散されて備えられてもよい。
ここで、本実施形態では、制御装置51がロボット1の内部に備えられた構成を示したが、他の構成例として、制御装置とロボット(制御装置以外の本体)とが別体で備えられてもよい。
図18は、本発明の一実施形態に係るロボットシステム501の概略的な構成例を示す図である。
ロボットシステム501は、ロボット1Aと、制御装置51Aと、回線511を備える。回線511は、有線の回線であってもよく、または、無線の回線であってもよい。
ロボット1Aと制御装置51Aとは、回線511を介して通信可能に接続し、各種の情報を通信する。ロボット1Aは、制御装置51Aが別体である点を除いて、図1に示されるロボット1と同じ構成であり、同じ構成部には同じ符号を付してある。また、制御装置51Aは、ロボット1Aとは別体である点を除いて、図2に示される制御装置51と同じ機能を有する。これにより、ロボットシステム501では、図1に示されるロボット1と同様に、ロボット1Aの動作の経路を適した経路にすることができる。
一構成例として、ロボット1、1Aは、ロボット1、1Aを構成する複数のジョイントの角度θ〜θを成分とする空間において、前記空間における第1の点と前記空間における第2の点(本実施形態では、第1の点と第2の点のうちの一方が動作前アーム状態A1の点であり、他方が目標アーム状態A2の点である。)が教示され、任意の第3の点(本実施形態では、図4〜図7の例では、中継点アーム状態候補E1)を設定し、第1の点と第3の点との間に第4の点(本実施形態では、図4〜図7の例では、中間アーム状態F1〜F3)を設定し、第4の点と第1の点との間に障害物が存在しない場合、第4の点(本実施形態では、図4〜図7の例では、中間アーム状態F2)を中継点(本実施形態では、図4〜図7の例では、中継点アーム状態C11)に設定し、中継点に基づいて動作する。
一構成例として、ロボット1、1Aにおいて、第1の点および第2の点は、一方が動作の開始点(本実施形態では、動作前アーム状態A1)を表し、他方が当該動作の終了点(本実施形態では、目標アーム状態A2)を表す。
一構成例として、ロボット1、1Aにおいて、第3の点(本実施形態では、図4および図10の例では、中継点アーム状態候補E1、E11)をランダムに設定する。
一構成例として、ロボット1、1Aにおいて、中継点(本実施形態では、図10〜図15の例では、中継点アーム状態C41、C51)として、複数の候補の点(本実施形態では、図10〜図15の例では、追加状態候補H1〜H4および追加状態候補I1〜I6)のうちで第1の点から第2の点までの経路の距離が最小となる点を選択して設定する。
一構成例として、ロボット1、1Aにおいて、第1の点、第2の点および中継点を結ぶ経路の履歴情報301に基づいて、同一の状況(本実施形態では、環境、動作前アーム状態A1および目標アーム状態A2の組み合わせ)に対応付けられた経路が履歴情報301に含まれる場合には、当該経路を使用する。
一構成例として、ロボット1、1Aにおいて、ロボット1、1Aの動作領域411、障害物(本実施形態では、図17の例では、障害物状態421)、第1の点、第2の点(本実施形態では、図17の例では、第1の点および第2の点は、一方が動作前アーム状態422であり、他方が目標アーム状態423である。)、中継点(本実施形態では、図17の例では、ノード431)のうちの1以上に関する設定をユーザーが行う設定画面401を備える。
一構成例として、ロボット1、1Aにおいて、第2の点と第3の点(本実施形態では、図4〜図7の例では、中継点アーム状態候補E1)との間に第5の点を設定し、第5の点と第2の点との間に障害物が存在しない場合、第5の点を中継点に設定し、中継点に基づいて動作する、構成が用いられてもよい。例えば、動作の開始点から中継点を求めることと、動作の終了点から中継点を求めることと、が同時に行われてもよく、これにより、異なる中継点が同時に求められてもよい。
一構成例として、ロボット1、1Aは、開始点(本実施形態では、動作前アーム状態A1)から終了点(本実施形態では、目標アーム状態A2)までのロボット1、1Aの動作を複数回行う場合に、各回ごとに動作の経路が異なり得る。
一構成例として、ロボット1、1Aにおいて、動作の経路は、乱数に基づく。
一構成例として、制御装置51、51Aは、ロボット1、1Aを構成する複数のジョイントの角度を成分とする空間において、第1の点と第2の点が与えられ、任意の第3の点を設定し、第1の点と第3の点との間に中継点を設定し、第1の点と中継点との間には障害物が存在せず、中継点に基づいてロボット1、1Aを動作させる。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
なお、以上に説明した装置(例えば、制御装置51、51Aなど)における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体(記憶媒体)に記録(記憶)し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、オペレーティングシステム(OS:Operating System)あるいは周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD(Compact Disk)−ROM等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークあるいは電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー(RAM:Random Access Memory)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)あるいは電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
1、1A…ロボット、11−1、11−2、21−1、21−2…撮像部、31−1、31−2…力センサー、51、51A…制御装置、101…入力部、102…出力部、103…記憶部、104…制御部、121…状態設定部、122…状態探索部、123…障害判定部、124…距離判定部、125…状態決定部、126…履歴管理部、301…履歴情報、401…設定画面、411…動作領域、421…障害物状態、422、A1…動作前アーム状態、423、A2…目標アーム状態、431…ノード、501…ロボットシステム、511…回線、B1、B2…障害物状態、C1、C11、C21、C31、C41、C51…中継点アーム状態、D1、D11、D21、D31、D41、D51、D61、D71…経路、E1、E11…中継点アーム状態候補、F1〜F3、F11、G1、G11…中間アーム状態、H1〜H4、I1〜I6…追加状態候補、MNP1、MNP2…マニピュレーター、END1、END2…エンドエフェクター

Claims (10)

  1. ロボットを構成する複数のジョイントの角度を成分とする空間において、
    前記空間における第1の点と前記空間における第2の点が教示され、
    任意の第3の点を設定し、
    前記第1の点と前記第3の点との間に第4の点を設定し、
    前記第4の点と前記第1の点との間に障害物が存在しない場合、前記第4の点を中継点に設定し、
    前記中継点に基づいて動作する、
    ロボット。
  2. 前記第1の点および前記第2の点は、一方が動作の開始点を表し、他方が当該動作の終了点を表す、
    請求項1に記載のロボット。
  3. 前記第3の点をランダムに設定する、
    請求項1または請求項2のいずれか1項に記載のロボット。
  4. 前記中継点として、複数の候補の点のうちで前記第1の点から前記第2の点までの経路の距離が最小となる点を選択して設定する、
    請求項1から請求項3のいずれか1項に記載のロボット。
  5. 前記第1の点、前記第2の点および前記中継点を結ぶ経路の履歴情報に基づいて、同一の状況に対応付けられた経路が前記履歴情報に含まれる場合には、当該経路を使用する、
    請求項1から請求項4のいずれか1項に記載のロボット。
  6. ロボットの動作領域、前記障害物、前記第1の点、前記第2の点、前記中継点のうちの1以上に関する設定をユーザーが行う設定画面を備える、
    請求項1から請求項5のいずれか1項に記載のロボット。
  7. 前記第2の点と前記第3の点との間に第5の点を設定し、
    前記第5の点と前記第2の点との間に障害物が存在しない場合、前記第5の点を中継点に設定し、
    前記中継点に基づいて動作する、
    請求項1から請求項6のいずれか1項に記載のロボット。
  8. 開始点から終了点までのロボットの動作を複数回行う場合に、各回ごとに前記動作の経路が異なり得る、ロボット。
  9. 前記動作の経路は、乱数に基づく、
    請求項8に記載のロボット。
  10. ロボットを構成する複数のジョイントの角度を成分とする空間において、
    第1の点と第2の点が与えられ、
    任意の第3の点を設定し、
    前記第1の点と前記第3の点との間に中継点を設定し、
    前記第1の点と前記中継点との間には障害物が存在せず、
    前記中継点に基づいて前記ロボットを動作させる、
    制御装置。
JP2015079823A 2015-04-09 2015-04-09 ロボットおよび制御装置 Pending JP2016198842A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015079823A JP2016198842A (ja) 2015-04-09 2015-04-09 ロボットおよび制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015079823A JP2016198842A (ja) 2015-04-09 2015-04-09 ロボットおよび制御装置

Publications (1)

Publication Number Publication Date
JP2016198842A true JP2016198842A (ja) 2016-12-01

Family

ID=57422346

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015079823A Pending JP2016198842A (ja) 2015-04-09 2015-04-09 ロボットおよび制御装置

Country Status (1)

Country Link
JP (1) JP2016198842A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021062436A (ja) * 2019-10-11 2021-04-22 セイコーエプソン株式会社 教示方法
WO2021165745A1 (en) * 2020-02-19 2021-08-26 Fanuc Corporation Collision avoidance motion planning method for industrial robot
WO2024071235A1 (ja) * 2022-09-30 2024-04-04 京セラ株式会社 動作経路設定装置及びプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021062436A (ja) * 2019-10-11 2021-04-22 セイコーエプソン株式会社 教示方法
WO2021165745A1 (en) * 2020-02-19 2021-08-26 Fanuc Corporation Collision avoidance motion planning method for industrial robot
US11813753B2 (en) 2020-02-19 2023-11-14 Fanuc Corporation Collision avoidance motion planning method for industrial robot
WO2024071235A1 (ja) * 2022-09-30 2024-04-04 京セラ株式会社 動作経路設定装置及びプログラム

Similar Documents

Publication Publication Date Title
JP6380828B2 (ja) ロボット、ロボットシステム、制御装置、及び制御方法
JP5998816B2 (ja) 経路探索方法、経路探索装置、ロボット制御装置、ロボット及びプログラム
JP6648469B2 (ja) ロボットシステム、及びロボット制御装置
JP7077800B2 (ja) 経路計画装置、経路計画方法、及び経路計画プログラム
KR102015307B1 (ko) 로봇 및 그 제어 방법
US20150314442A1 (en) Bare Hand Robot Path Teaching
JP2008269021A (ja) 経路作成方法及び経路作成装置
JP2011502801A (ja) 重み行列を用いたリアルタイム自己衝突および障害物回避
US20170277167A1 (en) Robot system, robot control device, and robot
WO2011067621A1 (en) Robot control system, motion data creation apparatus and its creating method
US20180085920A1 (en) Robot control device, robot, and robot system
JP2012056023A (ja) ロボットの動作生成システム及び動作生成方法
JP2016198842A (ja) ロボットおよび制御装置
JP6821374B2 (ja) ロボットシステム及びその運転方法
JP2012187697A (ja) ロボットの軌道計画システム及び軌道計画方法
JP2008023630A (ja) アームを誘導可能な移動体およびアームを誘導する方法
JP6869060B2 (ja) マニピュレータの制御装置、制御方法およびプログラム、ならびに作業システム
US11351672B2 (en) Robot, control device, and robot system
JP5223407B2 (ja) 冗長ロボットの教示方法
JP6067547B2 (ja) 物体認識装置、ロボット及び物体認識方法
JP6931585B2 (ja) 作業システム、作業システムの制御方法及びプログラム
JP2015182212A (ja) ロボットシステム、ロボット、制御装置、及び制御方法
JP2018017654A (ja) 検出装置、ロボットおよびロボット制御装置
CN111443703B (zh) 轨道生成装置、轨道生成方法以及机器人系统
JP2015157343A (ja) ロボット、ロボットシステム、制御装置、および制御方法