JP5825589B2 - ロボット制御装置、ロボット、およびロボット制御方法 - Google Patents

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

Info

Publication number
JP5825589B2
JP5825589B2 JP2011090998A JP2011090998A JP5825589B2 JP 5825589 B2 JP5825589 B2 JP 5825589B2 JP 2011090998 A JP2011090998 A JP 2011090998A JP 2011090998 A JP2011090998 A JP 2011090998A JP 5825589 B2 JP5825589 B2 JP 5825589B2
Authority
JP
Japan
Prior art keywords
arm
vector
motion
arm portions
force
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.)
Active
Application number
JP2011090998A
Other languages
English (en)
Other versions
JP2012223829A (ja
Inventor
高志 南本
高志 南本
一弘 小菅
一弘 小菅
健太郎 亀井
健太郎 亀井
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.)
Tohoku University NUC
Seiko Epson Corp
Original Assignee
Tohoku University NUC
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 Tohoku University NUC, Seiko Epson Corp filed Critical Tohoku University NUC
Priority to JP2011090998A priority Critical patent/JP5825589B2/ja
Publication of JP2012223829A publication Critical patent/JP2012223829A/ja
Application granted granted Critical
Publication of JP5825589B2 publication Critical patent/JP5825589B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ロボット制御装置、ロボット、およびロボット制御方法に関する。
近年、製造現場等では、スカラロボットや多軸ロボット等が、製品の組み立てや検査等に用いられている。製品の組み立てや検査を行うときに物体を運搬する場合、ロボットは、物体を吸着したり、アームにより把持したりする。
例えば、特許文献1には、2本のアームを有する双腕ロボットにおいて、物体を運搬するロボットの制御技術が開示されている。双腕ロボットは、2本のアームのうち、片方をマスターアーム、一方をスレーブアームに設定して、2本のアームに物体を把持させる。そして、2本のアームに物体を把持させた状態で、マスターアームは、物体を運搬する目標軌道に対し把持部に加わる外力を力センサで検出し、その値に応じて目標軌道を、例えばインピーダンス制御を用いて弾力的に変化させる。また、2本のアームに物体を把持させた状態で、スレーブアームは、把持部に加わる外力を力センサで検出し、その値に応じてマスターアームに追従する目標軌道を生成して、生成した軌道で物体を運搬する。
また、例えば、非特許文献1には、インピーダンス制御を行うことで、2本のアームの協調制御を行う制御技術が開示されている。
図30は、特許文献1に記載の従来技術に係るロボット制御装置の動作の概要を説明する図である。図30のように、ロボットの制御部911は、アーム1のコンプライアンス成分算出部911−1、メモリ911−2、アーム1の設定軌道算出部911−3、アーム1の目標位置算出部911−4、アーム2の現在位置推定部911−11、及びアーム2の目標位置算出部911−12から構成されている。
ロボットは、不図示の2本のアームに各々力センサ1、2(961、962)を有している。この力センサ1、2は、不図示の把持部に加わる外力を検出する。制御部911は、アーム1の力センサ1が検出した外力に基づき、コンプライアンス成分を算出する。なお、コンプライアンス成分とは、把持部の位置および把持部に作用する力に基づき、ロボットを制御するときに用いるコンプライアンスの成分である。
また、制御部911は、メモリ911−2に記憶されている情報に基づき、アーム1の予定されている軌道(設定軌道)を算出する。そして、制御部911は、算出されたコンプライアンス成分と設定軌道とを用いて、アーム1の位置などの目標値を算出する。制御部911は、算出された目標値に基づき、アーム1を制御している。一方、制御部911は、アーム2の力センサ2が検出した外力に基づき、アーム1の現在位置を推定する。制御部911は、推定されたアーム1の現在位置に基づき、アーム2を制御している。
特開2009−18380号公報
小菅一弘, 吉田英博, 福田敏男, 蟹谷清, 酒井勝, 針木和夫, "インピーダンス制御に基づく双腕マニピュレータの協調制御", [日本ロボット学会誌 13 (3) (1995) 404-410]. K. Kosuge, H. Yoshida, T. Fukuda, Msaru Sakai, K. Kanitani, K. Hariki, "Unified Control for Dynamic Cooperative Manipulation", [Proceedings of the 1994 IEEE/RSJ International Workshop on Intelligent Robotics and Systems (1994) 1042-1047].
しかしながら、特許文献1に記載の従来技術では、スレーブアームの目標軌道について、マスターアームの把持部と対向する方向と直行する方向については把持部と対象物の摩擦や、回転成分を考慮していないため、正確な軌道を生成することは困難である。このため、特許文献1に記載の従来技術では、対象物を落下させてしまう、もしくは対象物に過大な力を加えて破壊してしまうといった課題があった。また、特許文献1に記載の従来技術では、スレーブアームの目標軌道を把持部に加わる外力を用いて生成するため、対象物が落下した際には、外力が加わるようにマスターアームに向かう目標軌道が生成され、アーム同士が衝突してしまうといった課題があった。
更に、特許文献1に記載の従来技術では、マスターアーム及びスレーブアームそれぞれの運動が独立に設定されるため、それらの相対運動で決定される対象物(物体)に対する押し付け力を直接制御することが出来ない。このため、対象物を落下させてしまう、もしくは対象物に過大な力を加えて破壊してしまうといった課題があった。
本発明は、上記の課題に鑑みてなされたものであって、対象物を確実に把持して運搬するロボット制御装置、ロボット、およびロボット制御方法を提供することを目的としている。
上記目的を達成するため、本発明のロボット制御装置は、対象物を運搬する複数のアーム部と、複の前記アーム部にそれぞれ設けられた、前記アームに作用する外力を検出する検出部と、前記各検出部からの検出情報に基づき、複数の前記アーム部を制御する制御部と、を備え、前記制御部は、複数の前記アーム部の作業空間上に任意に設定された座標系において、複数の前記アーム部のそれぞれの先端に対する相対的な位置及び姿勢が定義された所定の点の位置及び姿勢を示すPの運動を前記各検出部からの検出情報に基づき算出し、複数の前記アーム部の先端同士の相対の位置及び姿勢を示すRの運動を前記各検出部からの検出情報に基づき算出し、前記算出したPの運動とRの運動とに基づき、複数の前記アーム部を制御することを特徴としている。
本発明によれば、アーム部を含むアームが対象物を把持して搬送しているときに、対象物を確実に把持して運搬するロボット制御装置を提供できる。
本発明によれば、複数の前記アームのそれぞれの先端に対する位置及び姿勢が定義された所定の点の位置及び姿勢を示すPの運動を、複数の前記アームの作業空間上に任意の位置に設定するようにしたので、対象物を把持して所定の部品に組み付ける場合においても、対象物を確実に把持して運搬するロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボット制御装置において、複数の前記アームのそれぞれの先端に対する相対的な位置及び姿勢が定義された前記所定の点は、複数の前記アームのそれぞれの先端を結ぶ線分の中点であるようにしてもよい。
本発明によれば、複数の前記アームのそれぞれの先端に対する位置及び姿勢が定義された所定の点の位置及び姿勢を示すPの運動を、複数の前記アームのそれぞれの先端を結ぶ線分の中点の位置に設定するようにしたので、アームが対象物を把持して運搬しているときに、対象物が障害物にあたった場合でも、対象物を落下させないように各アームを制御することができるロボット制御装置を提供できる。また、対象物に過大な力を加えて破壊することを防ぐように制御することができ、対象物を確実に把持して運搬するロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボット制御装置において、前記座標系の原点は、前記対象物に設定されているようにしてもよい。
本発明によれば、座標系の原点は、前記対象物に設定したので、アームが把持して運搬する所定の部品に組み付ける場合でも、部品の配置がずれていたりしても対象物を落下させないように各アームを制御することができ、対象物を確実に部品に組み付けることができるロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボット制御装置において、前記制御部は、前記Pの運動と前記Rの運動を、複数の前記アーム間に設定された仮想的なインピーダンスに基づいて算出し、前記算出したPの運動とRの運動とに基づき、複数の前記アームを制御するようにしてもよい。
本発明によれば、アームが対象物を把持して運搬しているときに、対象物が障害物にあたった場合でも、対象物を落下させないように各アームを制御することができ、また、対象物に過大な力を加えて破壊することを防ぐように制御することができ、対象物を確実に把持して運搬するロボット制御装置を提供できる。また、仮に、対象物を落下させた場合においても、アーム同士が衝突しないように制御できるロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボット制御装置において、前記制御部は、前記Pの運動と前記Rの運動とに基づき、複数の前記アームの各々の運動を算出し、前記算出した複数の前記アームの各々の運動に基づき、複数の前記アームを制御するようにしてもよい。
本発明によれば、アームが対象物を把持して搬送しているときに、対象物が障害物にあたった場合でも、対象物を落下させないように各アームを制御することができ、また、対象物に過大な力を加えて破壊することを防ぐように制御することができ、対象物を確実に把持して運搬するロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボット制御装置において、前記制御部は、前記Pの運動と前記Rの運動とを、前記設定された仮想的なインピーダンスと前記対象物のインピーダンスとに基づき算出するようにしてもよい。
本発明によれば、アームが対象物を把持して運搬しているときに、対象物が障害物にあたった場合でも、対象物を落下させないように、かつ障害物に倣うような動作を行うように各アームを制御することができ、また、対象物に過大な力を加えて破壊することを防ぐように制御することができ、対象物を確実に把持して運搬するロボット制御装置を提供できる。また、仮に、対象物を落下させた場合においても、アーム同士が衝突しないように制御できるロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボット制御装置において、前記制御部は、複数の前記アームが、前記対象物に対して押し付ける力が所望の値になるように、当該対象物のインピーダンスを考慮して、前記Rの運動の仮想的なインピーダンスを設定するようにしてもよい。
本発明によれば、アームが対象物を把持して運搬しているときに、対象物が障害物にあたった場合でも、対象物を落下させないように、かつ障害物に倣うような動作を行うように各アームを制御することができ、また、対象物に過大な力を加えて破壊することを防ぐように制御することができ、対象物を確実に把持して運搬するロボット制御装置を提供できる。また、仮に、対象物を落下させた場合においても、アーム同士が衝突しないように制御できるロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボット制御装置において、前記制御部は、前記対象物が剛体である場合、前記対象物のインピーダンスを考慮せずに、前記Rの運動の仮想的なインピーダンスを設定し、前記各アームから前記対象物への所望の押し付け力を制御するようにしてもよい。
本発明によれば、複数のアームが、対象物に対して押し付ける力は、対象物の弾性係数kと無関係に決定されるため、弾性係数kが未知であっても、押し付け力fを設定し、それを満たす弾性係数を用いることで所望の押し付け力を実現することが出来き、対象物を確実に把持して運搬するロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボット制御装置において、前記制御部は、前記Pの運動とRの運動とに基づき、複数の前記アームの各々の手先位置及び姿勢を示すp、p、・・・p(nは2以上の自然数)を算出し、複数の前記アームを制御するようにしてもよい。
本発明によれば、アームが対象物を把持して運搬しているときに、対象物が障害物にあたった場合でも、対象物を落下させないように各アームを制御することができ、また、対象物に過大な力を加えて破壊することを防ぐように制御することができ、対象物を確実に把持して運搬するロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボット制御装置において、前記制御部は、複数の前記アームの基準点同士の相対位置に基づいて、複数の前記アームの各々の手先位置及び姿勢を示すp、p、・・・p(nは2以上の自然数)を算出し、複数の前記アームを制御するようにしてもよい。
本発明によれば、アームが対象物を把持して運搬しているときに、対象物が障害物にあたった場合でも、対象物を落下させないように各アームを制御することができ、また、対象物に過大な力を加えて破壊することを防ぐように制御することができ、対象物を確実に把持して運搬するロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボット制御装置において、前記制御部は、複数の前記アームが、前記対象物を運搬する各々の予め定められた目標軌道に対する補正量を、前記Pの運動と前記Rの運動とに基づき算出し、算出した補正量に基づき複数の前記アームを制御するようにしてもよい。
本発明によれば、アームが対象物を把持して運搬しているときに、対象物が障害物にあたった場合でも、対象物を落下させないように各アームの目標軌道を補正することで、各アームを制御することができ、また、対象物に過大な力を加えて破壊することを防ぐように制御することができ、対象物を確実に把持して運搬するロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボット制御装置において、前記制御部は、前記Pの運動と前記Rの運動の振る舞いを定義した運動方程式を、時間に関する高次の多項式を用いて解くことで前記Pの運動と前記Rの運動とを算出するようにしてもよい。
本発明によれば、ルンゲクッタ法などの高次の多項式を用いて対象物の中心の位置及び姿勢Pと、前記対象物の相対の位置及び姿勢Rとを算出するようにしたので、制御周期が長い場合でも、精度の高い制御を行うことができるロボット制御装置を提供できる。ここで高次の多項式とは、一般的に4次以上である。例えばルンゲクッタ法であれば4次までとることで、一般的な物理現象の運動方程式を精度良く解くことが可能である。
上記目的を達成するため、本発明のロボット制御装置において、複数の前記アームは、各々6自由度を有する6軸アームであるようにしてもよい。
本発明によれば、ロボットのアーム部を各々6軸にしたため、6つの変数を制御することが可能であり、例えば、位置(x、y、z)、姿勢(α、β、γ)に対応して制御することができるロボット制御装置を提供できる。
上記目的を達成するため、本発明のロボットは、前記請求項1から請求項13のいずれか1項のロボット制御装置を備えることを特徴としている。
本発明によれば、アームが対象物を把持して運搬しているときに、対象物が障害物にあたった場合でも、対象物を落下させないように各アームを制御することができ、また、過大な力を加えて破壊することを防ぐように制御することができ、対象物を確実に把持して運搬するロボット制御装置を備えるロボットを提供できる。
上記目的を達成するため、本発明は、対象物を運搬する複数のアーム部を有するロボット制御装置におけるロボット制御方法において、検出部が、複の前記アーム部にそれぞれ設けられた、外力を検出する検出工程と、制御部が、複数の前記アーム部を制御する制御工程と、を有し、前記制御工程は、複数の前記アーム部の作業空間上に任意に設定された座標系において、複数の前記アーム部のそれぞれの先端に対する相対的な位置及び姿勢が定義された所定の点の位置及び姿勢を示すPの運動を前記各検出部からの検出情報に基づき算出し、複数の前記アーム部の先端同士の相対の位置及び姿勢を示すRの運動を前記各検出部からの検出情報に基づき算出し、前記算出したPの運動とRの運動とに基づき、複数の前記アーム部を制御することを特徴としている。
本発明によれば、アーム部を含むアームが対象物を把持して運搬しているときに、対象物が障害物にあたった場合でも、対象物を落下させないように各アームを制御することができ、また、過大な力を加えて破壊することを防ぐように制御することができ、対象物を確実に把持して運搬するロボット制御方法を提供できる。
第1実施形態に係るロボット1の概略斜視図である。 同実施形態に係るアーム部20−1及び20−2と、第1力センサ61及び第2力センサ62の概念図である。 同実施形態に係る制御部11のブロック図である。 同実施形態に係るロボット制御方法を適用するロボット1のアームの概念図である。 同実施形態に係るインピーダンス制御の概念を説明する図である。 同実施形態に係る対象物が障害物に当たった場合を説明する図である。 同実施形態に係る対象物が障害物に当たった後、各アームが制御される場合を説明する図である。 同実施形態に係る対象物130の斜視図である。 同実施形態に係る対象物130と障害物140との位置関係を説明する図である。 同実施形態に係る障害物140が対象物130を押す力を説明する図である。 同実施形態に係るアーム110及びアーム120と把持部111及び121との間に取り付けられた第1力センサ61及び第2力センサ62に入力される力及びトルクを説明する図である。 同実施形態に係るベクトルFに応じたアームの手先の中心の位置及び姿勢を示す情報のベクトルPの運動を説明する図である。 同実施形態に係るベクトルPの姿勢成分ベクトルPの運動について説明する図である。 同実施形態に係る回転に応じた手先の中心位置及び姿勢を示す情報のベクトルRの運動について説明する図である。 同実施形態に係るインピーダンスの制御変数を説明する図である。 同実施形態に係るΔRx及びfxの振る舞いを説明する図である。 同実施形態に係るRTxを5次式で表した場合のΔR及びfの振る舞いを表す図である。 同実施形態に係る動作の一例を説明するフローチャートである。 第2実施形態に係る対象物(部品)を把持して、所定の部品211に組み付ける一例を説明する図である。 同実施形態に係るフレームがずれた場合、対象物(部品)を把持して、所定の部品211に組み付ける一例を説明する図である。 第3実施形態に係る対象物(部品)を把持して、所定の部品311に組み付ける一例を説明する図である。 第4実施形態に係る3本のアームによるロボット制御方法を適用するロボット1のアームの概念図である。 同実施形態に係る3本のアームによる座標系を説明する図である。 同実施形態に係る制御部411のブロック図である。 第5実施形態に係る3本のアームによる座標系を説明する図である。 第6実施形態に係る3本のアームによる座標系を説明する図である。 第7実施形態に係る4本のアームによるロボット制御方法を適用するロボット1のアームの概念図である。 同実施形態に係る4本のアームによる座標系を説明する図である。 第8実施形態に係るn本のアームによる座標系を説明する図である。 従来技術に係るロボット制御装置911の動作の概要を説明する図である。
以下、本発明の実施形態について図面を参照して詳細に説明する。なお、本発明は斯かる実施形態に限定されず、その技術思想の範囲内で種々の変更が可能である。
[第1実施形態]
図1は、本実施形態に係るロボット1の概略斜視図である。図1に示すように、ロボット1は、2本のアーム2、3を備えている。アーム2は、固定部10、アーム部20−1、第1力センサ61、及び指部40−1を備える。また、アーム3は、固定部10、アーム部20−2、第2力センサ62、及び指部40−2を備える。
固定部10は、例えば床、壁、天井、移動可能な台車の上などに固定される。固定部10は、内部に、制御部11(破線にて図示)を備える。
制御部11は、アーム部20−1及び20−2、指部40−1及び40−2を制御する。制御部11の詳細は後述する。なお、制御部11は、固定部10の内部ではなく、固定部10の外部に設けるようにしてもよい。
アーム部20−1及び20−2は、第1フレーム21、第2フレーム22、第3フレーム23、第4フレーム24および第5フレーム25から構成されている。第1フレーム21は、回転屈折軸を介して、固定部10に回転可能または屈折可能に接続されている。第2フレーム22は、回転屈折軸を介して、第1フレーム21および第3フレーム23に接続されている。第3フレーム23は、回転屈折軸を介して、第2フレーム22および第4フレーム24に接続されている。第4フレーム24は、回転屈折軸を介して、第3フレーム23および第5フレーム25に接続されている。第5フレーム25は、回転屈折軸を介して、第4フレーム24に接続されている。アーム部20は、制御部11の制御によって、各フレーム21〜25が各回転屈折軸を中心に複合的に回転または屈折し、動く。
アーム部20−1の第5フレームのうち第4フレームが設けられた他方には、指部40−1が設けられている。アーム部20−2の第5フレームのうち第4フレームが設けられた他方には、指部40−2が設けられている。指部40−1及び40−2は、直接的に、対象物を把持する。なお、指部40−1及び40−2は、例えば、複数のフレームを有し、対象物を把持できる構造である。
アーム部20−1の第5フレーム25と指部40−1の間には、第1力センサ61が介挿されている。第1力センサ61は、アーム2の指部40−1に加わる力の各空間成分(力成分という)とトルクの各空間成分(トルク成分という)を検出する。第1力センサ61は、検出したアーム2の指部40−1に加わる力成分とトルク成分を含む情報を制御部11に出力する。
また、アーム部20−2の第5フレーム25と指部40−2の間には、第2力センサ62が介挿されている。第2センサ62は、アーム3の指部40−2に加わる力成分とトルク成分を検出する。第2力センサ62は、検出したアーム3の指部40−2に加わる力成分とトルク成分を含む情報を制御部11に出力する。
図2は、本実施形態に係るアーム部20−1及び20−2と、第1力センサ61及び第2力センサ62の概念図である。図2のように、アーム2のアーム部20−1は、回転部52、53及び55と、屈折部51、54及び56とを有している。そして、アーム2のアーム部20−2は、指部40−1との間に第1力センサ61を有している。
また、アーム3のアーム部20−1は、回転部52、53及び55と、屈折部51、54及び56とを有している。そして、アーム3のアーム部20−2は、指部40−2との間に第2力センサ62を有している。
また、屈折部51は、固定部10と第1フレーム21との間に設けられている。回転部52は、第1フレーム21と第2フレーム22との間に設けられている。回転部53は、第2フレーム22と第3フレーム23との間に設けられている。屈折部54は、第3フレーム23と第4フレーム24との間に設けられている。回転部55は、第4フレーム24と第5フレーム25との間に設けられている。屈折部54は、第5フレームのうち第4フレームが設けられた他方に設けられている。
図2のように、アーム部20−1及び20−2は、6自由度を有する6軸アームである。すなわち、アーム部20−1の先端の指部40−1は、これらの各軸の回転部と屈折部の動作により、移動する。そして、指部40−1が対象物130を把持している場合、第1力センサ61が検出した外力には、このような各軸の回転部と屈折部の動作による成分が含まれている。このため、アーム部20−1及びアーム20−2が6軸アームであるため、6つの変数で制御することが可能であり、例えば、位置(x、y、z)の3つの変数(成分)、姿勢(α、β、γ)の3つの成分(変数)に対応して制御することができる。
図3は、本実施形態に係る制御部11のブロック図である。図3のように、制御部11は、中心運動に対してはたらく力の算出部11−1、中心運動のコンプライアンス成分算出部11−2、第1記憶部11−3、中心運動の設定軌道算出部11−4、中心運動の目標位置算出部11−5、アーム110の目標位置算出部11−6、相対運動に対してはたらく力の算出部11−11、相対運動のコンプライアンス成分算出部11−12、第2記憶部11−13、相対運動の設定軌道算出部11−14、相対運動の目標位置算出部11−15、及びアーム120の目標位置算出部11−16を備えている。また、制御部11は、不図示の内部タイマーを備えている。なお、アーム110とは、図1および図2において第1力センサ61が取り付けられているアーム部20−1である。また、アーム120とは、図1および図2において第2力センサ62が取り付けられているアーム部20−2である。
なお、各算出部が行う算出手順については、後述する。また、本実施形態では、第1記憶部11−3及び11−13のように記憶部を2つ備える例を説明したが、記憶部は1つでもよい。
中心運動に対してはたらく力の算出部11−1には、各アームに取り付けられている第1力センサ61(検出部)及び第2力センサ62(検出部)から、力成分とトルク成分を含む情報が入力される。中心運動に対してはたらく力の算出部11−1は、後述するように、入力された力成分とトルク成分を含む情報に基づき、対象物130の中心運動に対してはたらく力を算出する。中心運動に対してはたらく力の算出部11−1は、算出した対象物130の中心運動に対してはたらく力を中心運動のコンプライアンス成分算出部11−2に出力する。
なお、対象物130の中心運動に対してはたらく力とは、アーム部20−1の先端の指部40−1とアーム部20−2の先端の指部40−2との中心において働く力である。すなわち、アーム部20−1の先端の指部40−1とアーム部20−2の先端の指部40−2とが、対象物130を把持している場合、把持されている対象物130の中心がどのように運動するか、あるいは運動しているかを示すものである。
中心運動のコンプライアンス成分算出部11−2は、後述するように、中心運動に対してはたらく力の算出部11−1から出力された対象物130の中心運動に対してはたらく力を示す情報に基づき、対象物130の中心運動のコンプライアンス成分を算出する。中心運動のコンプライアンス成分算出部11−2は、算出した対象物130の中心運動のコンプライアンス成分を中心運動の目標位置算出部11−5に出力する。
なお、中心運動のコンプライアンス成分とは、アーム部20−1の先端の指部40−1とアーム部20−2の先端の指部40−2との中心におけるコンプライアンスの各成分である。また、コンプライアンスの各成分とは、後述するアーム2の手先とアーム3の手先との中心位置成分と姿勢成分である。また、コンプライアンス(compliance)とは、剛性の逆数のことであり、固定方法が剛結ではなく、入力に対し、ある程度の変形・変位を許す状態である。
第1記憶部11−3には、予め対象物130に対する中心運動の軌道に関する情報が記憶されている。
中心運動の設定軌道算出部11−4は、第1記憶部11−3に記憶されている対象物130に対する中心運動の軌道に関する情報を読み出し、読み出した情報に基づき、後述するように、対象物130に対する中心運動の軌道を算出する。中心運動の設定軌道算出部11−4は、算出した対象物130の中心運動の軌道を中心運動の目標位置算出部11−5に出力する。
なお、中心運動の設定軌道とは、アーム部20−1の先端の指部40−1とアーム部20−2の先端の指部40−2との中心の搬送時の軌道である。
中心運動の目標位置算出部11−5には、中心運動のコンプライアンス成分算出部11−2から出力された対象物130の中心運動のコンプライアンス成分を示す情報と、中心運動の設定軌道算出部11−4から出力された対象物130の中心運動の設定軌道を示す情報とが入力される。中心運動の目標位置算出部11−5は、入力された対象物130の中心運動のコンプライアンス成分を示す情報と、対象物130の中心運動の設定軌道を示す情報とに基づき、後述するように、対象物130の中心運動の目標値を算出する。中心運動の目標位置算出部11−5は、算出した対象物130の中心運動の目標値をアーム110の目標位置算出部11−6及びアーム120の目標位置算出部11−16に出力する。
なお、中心運動の目標値とは、アーム部20−1の先端の指部40−1とアーム部20−2の先端の指部40−2との中心の搬送時の位置及び姿勢の目標制御値である。
アーム110の目標位置算出部11−6には、中心運動の目標位置算出部11−5から対象物130の中心運動の目標値を示す情報と、相対運動の目標位置算出部11−15から対象物130の相対運動の目標値を示す情報とが入力される。アーム110の目標位置算出部11−6は、入力された対象物130の中心運動の目標値を示す情報と、対象物130の相対運動の目標値を示す情報とに基づき、後述するように、アーム110の目標値を算出する。アーム110の目標位置算出部11−6は、算出したアーム110の目標値をアーム110の制御信号として、アーム110に出力する。
なお、アーム110の目標値とは、アーム110の先端の指部40−1が対象物130の動作に追従して動作する位置及び姿勢を示すアーム110への制御量の目標値である。
相対運動に対してはたらく力の算出部11−11には、各アームに取り付けられている第1力センサ61及び第2力センサ62から、力成分とトルク成分を含む情報が入力される。相対運動に対してはたらく力の算出部11−11は、入力された力成分とトルク成分を含む情報の出力とに基づき、後述するように、相対運動に対してはたらく力を算出する。相対運動に対してはたらく力の算出部11−11は、算出した相対運動に対してはたらく力を相対運動のコンプライアンス成分算出部11−12に出力する。
なお、相対運動に対してはたらく力とは、アーム部20−1の先端の指部40−1に対するアーム部20−2の先端の指部40−2の相対的な力である。すなわち、アーム部20−1の先端の指部40−1とアーム部20−2の先端の指部40−2とが、対象物130を把持している場合、アーム部20−1の先端の指部40−1に対して、アーム部20−2の先端の指部40−2がどのように運動するか、あるいは運動しているかを示すものである。
相対運動のコンプライアンス成分算出部11−12は、相対運動に対してはたらく力の算出部11−11から出力された対象物130の相対運動に対してはたらく力を示す情報に基づき、後述するように、対象物130の相対運動のコンプライアンス成分を算出する。相対運動のコンプライアンス成分算出部11−12は、算出した対象物130の相対運動のコンプライアンス成分を相対運動の目標位置算出部11−15に出力する。
なお、相対運動のコンプライアンス成分とは、アーム部20−1の先端の指部40−1に対するアーム部20−2の先端の指部40−2のコンプライアンスの各成分である。また、コンプライアンスの各成分とは、後述するアーム2とアーム3との手先の相対位置成分と姿勢成分である。
第2記憶部11−13には、予め相対運動の軌道に関する情報が記憶されている。
相対運動の設定軌道算出部11−14は、第2記憶部11−13に記憶されている対象物130に対する相対運動の軌道に関する情報を読み出し、読み出した情報に基づき、後述するように、対象物130に対する相対運動の軌道を算出する。相対運動の設定軌道算出部11−14は、算出した対象物130の相対運動の軌道を相対運動の目標位置算出部11−15に出力する。
なお、相対運動の設定軌道とは、アーム部20−1の先端の指部40−1に対するアーム部20−2の先端の指部40−2の搬送時の軌道である。
相対運動の目標位置算出部11−15には、相対運動のコンプライアンス成分算出部11−12から出力された対象物130の相対運動のコンプライアンス成分を示す情報と、相対運動の設定軌道算出部11−14から出力された対象物130の相対運動の設定軌道を示す情報とが入力される。相対運動の目標位置算出部11−15は、入力された対象物130の相対運動のコンプライアンス成分を示す情報と、対象物130の相対運動の設定軌道を示す情報とに基づき、後述するように、対象物130の相対運動の目標値を算出する。相対運動の目標位置算出部11−15は、算出した対象物130の相対運動の目標値をアーム110の目標位置算出部11−6とアーム120の目標位置算出部11−16とに出力する。
なお、相対運動の目標値とは、アーム部20−1の先端の指部40−1に対するアーム部20−2の先端の指部40−2の搬送時の位置及び姿勢の目標制御値である。
アーム120の目標位置算出部11−16には、中心運動の目標位置算出部11−5から対象物130の中心運動の目標値を示す情報と、相対運動の目標位置算出部11−15から対象物130の相対運動の目標値を示す情報とが入力される。アーム120の目標位置算出部11−16は、入力された対象物130の中心運動の目標値を示す情報と、対象物130の相対運動の目標値を示す情報とに基づき、後述するように、アーム120の目標値を算出する。アーム120の目標位置算出部11−16は、算出したアーム120の目標値をアーム120の制御信号として、アーム120に出力する。
なお、アーム120の目標値とは、アーム120の先端の指部40−2が対象物130の動作に追従して動作する位置及び姿勢を示すアーム120への制御量の目標値である。
なお、本実施形態においては、対象物130は、密度が一様であり、対象物130の中心が重心と一致している場合についての例について説明を行っている。
[本実施形態の概要の説明]
次に、本実施形態に係るアーム110及びアーム120の制御の概要について、図4を用いて説明する。図4は、本実施形態のロボット制御方法を適用するロボット1のアームの概念図である。なお、図4のように、アーム110は、図1の一方のアーム部20−1を模式的に表し、図1の指部40−1を模式的に表した把持部111を有している。また、アーム120は、図1の他方のアーム部20−2を模式的に表し、図1の指部40−2を模式的に表した把持部121を有している。対象物130は、アーム110とアーム120により把持され、運搬される物体である。
図4において、ロボット1は、3つの座標系Σ、Σ、Σを有している。座標系Σ(O−x)は、アーム110の運動を記述するベース座標系であり、アーム110の手先の位置及び姿勢をベクトルpで表す。また、座標系Σ(O−x)は、アーム120の運動を記述するベース座標系であり、アーム120の手先の位置及び姿勢をベクトルpで表す。図4において、符号Oは、座標系Σの原点Oであり、符号Oは、座標系Σの原点Oである。
以下で説明する各式(1)〜式(20)は、制御部11がアーム110及び120の目標値を算出するときに用いる式であり、予め制御部11内の後述する算出部に定義されて記憶されている。
制御部11は、ベクトルpを、位置成分ベクトルp1pと、姿勢成分ベクトルp1dとにより、次式(1)式のように表される。また、制御部11は、ベクトルpを、位置成分ベクトルのp2pと、姿勢成分ベクトルp2dとにより、次式(2)式のように表される。
また、符号α、β及びγは、3次元空間におけるZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角である。
Figure 0005825589
Figure 0005825589
式(1)と式(2)において、記号は、転置行列を表している。また、以下の式でも同様に、記号は、転置行列を表している。また、式(1)において、p1x、p1y及びp1zは、ベクトルp1pのx軸成分、y軸成分及びz軸成分である。また、式(1)において、p1α、p1β及びp1γは、ベクトルp1dのZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角の成分である。
式(2)において、p2x、p2y及びp2zは、ベクトルp2pのx軸成分、y軸成分及びz軸成分であるまた、式(2)において、p2α、p2β及びp2γは、ベクトルp2dのZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角の成分である。
また、座標系Σ(O−xyz)は、アーム110及びアーム120の運動を統一して記述する作業用座標系であり、この座標系においてアーム110の手先とアーム120の手先との中心の位置成分及び姿勢成分(以下、アームの手先の中心の位置及び姿勢という)を、ベクトルPで表す。すなわち、ベクトルPは、アーム110及びアーム120のそれぞれの先端の把持部111と把持部121との中心の位置及び姿勢を示す情報である。図4において、符号Oは、座標系Σの原点Oである。
また、この座標系Σにおいてアーム110の手先に対するアーム120の相対的な手先位置成分及び姿勢成分(以下、アームの手先同士の相対の位置及び姿勢という)を、ベクトルRで表す。すなわち、ベクトルRは、アーム110の先端の把持部111に対するアーム120の把持部121の相対の位置及び姿勢を示す情報である。
このような2本のアーム110及び120のそれぞれの先端から中心の位置をコンプライアンスの中心(剛性中心)、コンプライアンス・センターという。本実施形態では、対象物130の中心、すなわちベクトルPをベクトルRの中間にした例である。
ベクトルPは、位置成分ベクトルPと、姿勢成分ベクトルPとにより、次式(3)式のように表される。また、ベクトルRは、位置成分ベクトルRと、姿勢成分ベクトルRとにより、次式(4)式のように表される。
Figure 0005825589
Figure 0005825589
式(3)において、P、P及びPは、ベクトルPのx軸成分、y軸成分及びz軸成分である。また、式(3)において、Pα、Pβ及びPγは、ベクトルPのZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角の成分である。
式(4)において、P、P及びPは、ベクトルPのx軸成分、y軸成分及びz軸成分であるまた、式(4)において、Pα、Pβ及びPγは、ベクトルPのZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角の成分である。
なお、図4のように、各座標系Σ、ΣおよびΣの相対位置および姿勢は、3つの座標系Σ、Σ及びΣのx軸が同一直線上にあり、y軸及びz軸の向きが等しく、作業座標系において原点間(O、O及びO)の関係が次式(5)を満たすように表される。
ただし、図4に示した各座標系の相対位置関係は一例であり、任意に配置することが可能である。
Figure 0005825589
次に、第1力センサ61から出力は、力成分ベクトルf1pとトルク成分ベクトルf1dとにより、次式(6)のように表される。また、第2力センサ62の出力は、力成分ベクトルf2pとトルク成分ベクトルf2dとにより、次式(7)のように表される。
Figure 0005825589
Figure 0005825589
式(6)において、f1x、f1y及びf1zは、ベクトルf1pのx軸成分、y軸成分及びz軸成分である。また、式(6)において、τ1α、τ1β及びτ1γは、アーム110のトルク成分ベクトルf1dを、ZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角で表したものである。
式(7)において、f2x、f2y及びf2zは、ベクトルf2pのx軸成分、y軸成分及びz軸成分である。また、式(7)において、τ2α、τ2β及びτ2γは、アーム120のトルク成分ベクトルf2dを、ZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角で表したものである。
次に、これらを用いて、アームの手先の中心の位置及び姿勢を示す情報であるベクトルPに加わる力ベクトルFは、次式(8)のように表される。また、アームの手先同士の相対位置及び姿勢を示す情報であるベクトルRに加わる力ベクトルfは、次式(9)のように表される。なお、説明を簡単にするため、アーム110と120の各力センサの出力ベクトルf及びベクトルfについては、把持部に加わる重力、対象物130に加わる重力、及び把持部40−1と40−2とが加速度運動することによって加わる慣性力は取り除かれていて、更に作業座標系における表現に変換されているものとする。
まず、力ベクトルFを、次式(8)のように表す。
Figure 0005825589
式(8)において、F、F及びFは、力ベクトルFの位置成分ベクトルFのx軸成分、y軸成分及びz軸成分である。また、式(8)において、Tα、Tβ及びTγは、力ベクトルFの姿勢成分ベクトルFのZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角の成分である。なお、式(8)において、手先を対向させて物体を把持するため、互いに回転角γの回転方向が逆になるため、τγ=−τ2γ−τ1γとなる。
次に、力ベクトルfを、次式(9)のように表す。
Figure 0005825589
式(9)において、f、f及びfは、ベクトルfのx軸成分、y軸成分及びz軸成分である。また、式(9)において、τα、τβ及びτγは、トルク成分ベクトルfのZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角成分である。
アームの手先の中心の位置及び姿勢を示す情報であるベクトルPは、把持した対象物130の位置及び姿勢を制御して搬送するようにあらかじめ設定された軌道ベクトルPに対して、上述した力ベクトルFに応じてベクトルΔPだけ軌道を変更したものとして表される。これにより、例えば障害物140などから物体に加わる力に応じて、受動的にその位置及び姿勢を変更してコンプライアンスを守りながら、所定の位置及び姿勢に物体を操作することを可能とする。
また、アームの手先同士の相対の位置及び姿勢を示す情報であるベクトルRは、物体を把持するようにあらかじめ設定された軌道ベクトルRに対して、上述した力ベクトルfに応じてベクトルΔRだけ軌道を変更したものとして表される。これにより、アームが物体に加える力について、コンプライアンスを守りながら物体を把持することを可能とする。従って、ある時刻tにおけるアームの手先の中心の位置及び姿勢を示す情報であるベクトルP、アームの手先同士の相対の位置及び姿勢を示す情報であるベクトルRは、次式(10)と次式(11)のように表される。
Figure 0005825589
Figure 0005825589
式(10)において、ベクトルΔPは、障害物140に加わる外力に基づき、力ベクトルFに応じて変更した軌道を示すベクトルである。式(11)において、ベクトルΔRは、障害物140に加える内力に基づき、力ベクトルfに応じて、変更した軌道を示すベクトルである。
次に、式(10)と式(11)において、ベクトルPおよびベクトルRは、各々、次式(12)と次式(13)のように、位置成分と姿勢成分とに分けて表される。
Figure 0005825589
Figure 0005825589
式(12)において、PTx、PTy及びTTzは、ベクトルPTpのx軸成分、y軸成分及びz軸成分である。また、式(12)において、PTα、PTβ及びPTγは、トルク成分ベクトルPTdのZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角成分である。
式(13)において、RTx、RTy及びRTzは、ベクトルRTpのx軸成分、y軸成分及びz軸成分である。また、式(13)において、RTα、RTβ及びRTγは、トルク成分ベクトルRTdのZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角成分である。
同様に、式(10)と式(11)において、ベクトルΔPおよびベクトルΔRは、各々、次式(14)と次式(15)のように、位置成分と姿勢成分とに分けて表される。
Figure 0005825589
Figure 0005825589
式(14)において、ΔP、ΔP及びΔTは、ベクトルΔPのx軸成分、y軸成分及びz軸成分である。また、式(14)において、ΔPα、ΔPβ及びΔPγは、トルク成分ベクトルΔPのZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角成分である。
式(15)において、ΔR、ΔR及びΔRは、ベクトルΔRのx軸成分、y軸成分及びz軸成分である。また、式(15)において、ΔRα、ΔRβ及びΔRγは、トルク成分ベクトルΔRのZYZ固定角表現におけるz軸、y軸、z軸に対する各回転角成分である。
次に、コンプライアンス制御の例としてインピーダンス制御について説明する。図5は、インピーダンス制御の概念を説明する図である。インピーダンス制御とは、図5のように、指部40−1と指部40−2との間に、仮想的な弾性係数kを有するばね、粘性係数Dを有するダンパー、重量Mを有する物体があるかのうように指部40−1及び指部40−2の運動を制御することである。図5のように、指部40−1には、ばねの一端とダンパーの一端とが接続されている。ばねの他端とダンパーの他端は、物体の一端に接続されている。また、物体の他端は、指部40−2に接続されている。
インピーダンス制御においては、ベクトルΔPおよびベクトルΔRをそれぞれベクトルF及びベクトルfに応じて、仮想的なインピーダンスのもとで運動する対象物130の位置において設定する。ここで、インピーダンスは慣性力、ダンパーなどのように速度に依存して発生する力及びバネなどのように位置に依存して発生する力で構成されるとすると、ベクトルP及びベクトルRは、次式(16)と次式(17)の運動方程式に従う。
Figure 0005825589
Figure 0005825589
式(16)において、M^は、ベクトルFの慣性行列(慣性係数)、D^は、ベクトルFの粘性行列(粘性係数)、K^は、ベクトルFの弾性行列(弾性係数)である。なお、式(16)において、上付きに^が表示されている各係数を、それぞれ便宜的にM^、D^およびK^と表す。
また、式(17)において、M^は、ベクトルfの慣性行列(慣性係数)、D^は、ベクトルfの粘性行列(粘性係数)、K^は、ベクトルfの弾性行列(弾性係数)である。なお、式(17)において、上に^が表示されている各係数を、それぞれ便宜的にM^、D^およびK^と表す。なお、Pの運動とRの運動の振る舞いを定義した運動方程式とは、式(16)および式(17)である。
各係数M^、D^、K^、M^、D^およびK^は、6行6列の対角行列である。対角成分にそれぞれ独立の値を設定することで、アームの手先の中心の位置及び姿勢を示す情報であるベクトルPとアームの手先同士の相対の位置及び姿勢を示す情報であるベクトルRとの各軸に対する運動を、個別に制御することが可能となる。ただし、これは一例であり、M^、D^、K^、M^、D^およびK^は非対角要素を持つ行列であっても構わない。
なお、制御部11は、仮想的なインピーダンスに加え、対象物のインピーダンスを用いて算出するようにしてもよい。
次に、制御部11は、式(16)と式(17)を解き、ベクトルΔPとベクトルΔRを求める。次に、制御部11は、式(10)および式(11)に、求めたベクトルΔPとベクトルΔRを代入して、ベクトルPとベクトルRを求める。
次に、制御部11は、求めたベクトルPとベクトルRを次式(18)と次式(19)に代入し、アーム120のベース座標系における手先位置及び姿勢を示す情報であるベクトルp、アーム120のベース座標系における手先位置及び姿勢を示す情報であるベクトルpを求める。
Figure 0005825589
Figure 0005825589
式(18)と式(19)において、ベクトルDは、次式(20)で表される。
Figure 0005825589
式(20)におけるDは、図1のように各アーム110の原点Oまたは原点OとΣの原点Oの間隔である。
制御部11は、アーム部110と把持部111、アーム部120と把持部121に対して式(18)及び式(19)で求めた位置に移動するよう指令を出す。以上が本実施形態に係る制御の概要である。
[障害物から対象物に力が加わった場合の説明]
次に、障害物から対象物に力が加わった場合の説明を、図6〜図17を用いて行う。図6は、本実施形態に係る対象物が障害物に当たった場合を説明する図であり、図7は、本実施形態に係る対象物が障害物に当たった後、各アームが制御される場合を説明する図である。
図6においては、アーム110とアーム120が対象物130を把持した状態で、対象物130に障害物140が衝突する。この場合、以下に詳細に説明する制御により、図7のように障害物140から受ける力に応じて、制御部11の制御により、受動的にその位置及び姿勢を変更する。
まず、対象物130を把持して操作している際に、対象物130が障害物140と接触した時に発生する力及びトルクについて、以下に説明する。
図6および図7において、アーム110及びアーム120の把持部111及び把持部121は、アーム110の手先の把持部111とアーム120の手先の把持部121との中心位置と、対象物130の中心が一致するように対象物130を把持している。ここで、対象物130を把持した状態で、アームの手先の中心の位置及び姿勢について、軌道ベクトルPを、制御部11は、式(12)に基づき、次式(21)のように算出する。なお、対象物130の中心がアーム110により搬送される軌道は、予めロボット制御装置1のオペレータにより各時刻における移動位置、移動速度が軌道に関する情報として設定される。そして、オペレータにより設定された軌道に関する情報が、予め制御部11の第1記憶部11−3に記憶されている。
Figure 0005825589
式(21)の軌道ベクトルPは、アームの手先の中心の位置及び姿勢について、x軸及びy軸方向の位置及び姿勢を変化させずに、y軸方向の位置を初期位置yから速度vで移動させる軌道である。
次に、アームの手先同士の相対位置及び姿勢について、対象物130を把持している状態において、軌道ベクトルRを、制御部11は、式(13)に基づき、次式(22)のように算出する。なお、搬送される対象物130において、アーム110に対するアーム120の手先同士の相互位置の軌道は、予めロボット制御装置1のオペレータにより各時刻における移動位置、移動速度が軌道に関する情報として設定される。そして、オペレータにより設定された相対的な軌道に関する情報が、予め制御部11の第2記憶部11−13に記憶されている。
Figure 0005825589
式(22)において、wは、アーム110及び120が、対象物130に加える力に応じて、制御部11が選択する値であり、選択については後述する。
なお、対象物130は、図8の対象物130の斜視図に示すように幅w、高さh、奥行きl、質量mの直方体であり、質量分布が一様でその重心が物体の中心にある。また、対象物130の中心を通り、作業座標系Σのz軸と平行な直線をcとする。すなわち、対象物130の中心は、幅w、高さh、奥行きl、質量mのそれぞれの中心が重なる位置である。
図9は、本実施形態に係る対象物130と障害物140との位置関係を説明する図である。障害物140は円筒形であり、対象物130と障害物140とは、図9のような位置関係で接している。すなわち、xz平面における対象物130の面は、障害物140の円周面と接する。より具体的には、xy平面の長手方向に対して、障害物140の長手方向が、直交する向きで接する。
図6に示したように、式(21)の軌道に従って、制御部11は、対象物130の位置を移動するように制御すると、対象物130が中心から距離dの位置で障害物140と接する。
図10は、本実施形態に係る障害物140が対象物130を押す力を説明する図である。図10のように、障害物140が対象物130を押す力をベクトルfとすると、対象物130と障害物140とが接した瞬間、ベクトルfは、−y方向を向いている。
ベクトルfについて、対象物130の中心方向の成分をベクトルfbc、ベクトルfbcと直行する方向の成分をベクトルfb0とする。この場合、ベクトルfbcは、対象物130を並進させる力となる。ベクトルfb0は、直線cを回転軸として、対象物130を回転させるトルクのベクトルτを発生させている。
次に力ベクトルfbc及びトルクのベクトルτが、アーム110及びアーム120と把持部111及び121との間に取り付けられた第1力センサ61及び第2力センサ62に入力される力及びトルクについて、図11を用いて説明する。図11は、本実施形態に係るアーム110及びアーム120と把持部111及び121との間に取り付けられた第1力センサ61及び第2力センサ62に入力される力及びトルクを説明する図である。図11において、符号fは、アーム110及びアーム120が対象物130に対して押し付ける力fである。
アーム110及びアーム120は、制御部11の制御により、対象物130を把持するために、それぞれの把持部111及び121を、それぞれx軸方向に−f、fの力で対象物130に押し付けている。したがって、第1力センサ61及び第2力センサ62にはその反力が入力される。このようにアーム110及びアーム120が互いに押し付けあっているため、ベクトルfbcのx成分−fbcxはそれぞれの把持部111及び121に取り付けられた力センサ61及び62に入力される。
また、それぞれのy成分には力ベクトルfのy成分−fbcyが等分配されて、各力センサ61及び62に入力される。更に、第1力センサ61及び第2力センサ62のα成分には、トルクのベクトルτによって発生する−τが入力される。
以上により、アーム110と把持部111との間に取り付けられた第1力センサ61の出力ベクトルfと、アーム120と把持部121との間に取り付けられた第2力センサ62の出力ベクトルfは、それぞれ次式(23)と次式(24)のようになる。
Figure 0005825589
Figure 0005825589
次に、アームの手先の中心の位置及び姿勢を示す情報のベクトルPに加わる力ベクトルFの計算について説明する。次に、計算したベクトルFに応じたアームの手先の中心の位置及び姿勢を示す情報のベクトルPの運動について説明する。また、それに応じたアーム110及びアーム120の位置及び姿勢を示す情報のベクトルp、及びベクトルpの運動について説明する。
まず、制御部11は、式(8)に式(23)式及び式(24)を代入し、次式(25)を算出する。
Figure 0005825589
次に、ベクトルFに応じたアームの手先の中心の位置及び姿勢を示す情報のベクトルPの運動について、図12を用いて説明する。図12は、ベクトルFに応じたアームの手先の中心の位置及び姿勢を示す情報のベクトルPの運動を説明する図である。
まず、制御部11は、式(25)に式(16)を代入し、ベクトルΔPを算出する。なお、式(16)は非線形の微分方程式であるので、制御部11は、例えば、オイラー法やルンゲクッタ法などの数値計算法を用いてベクトルΔPを計算する。実際の制御においては、制御周期の長短に応じて計算方法を選択する必要があり、制御周期が長い場合は計算の精度が比較的高いルンゲクッタ法で算出する方が良い。すなわち、制御部11は、高次の多項式を用いて近似して算出(時間に関する高次の多項式を用いて解く、とも言う)する。なお、高次の多項式とは、一般的に4次以上である。例えばルンゲクッタ法であれば4次までとることで、一般的な物理現象の運動方程式を精度良く解くことが可能である。
次に、式(16)の両辺をラプラス変換して、次式(26)と次式(27)を算出して、ΔPの振る舞いを定性的に説明する。
Figure 0005825589
Figure 0005825589
式(26)と式(27)は、ベクトルFを入力ベクトルとし、ΔPを出力とすると、それらが次式(28)なる2次遅れ系で結ばれていると考えることが出来る。
Figure 0005825589
従って ベクトルΔPは、ベクトルFに2次遅れで追従する。ここではまず、ベクトルPの位置成分ベクトルPの運動について説明する。ベクトルΔPはベクトルFに2次遅れで追従することから、図12に示すように、ベクトルΔPはベクトルFに倣う方向を向く。
従って、式(10)及び式(21)から、ベクトルPは図12に示すベクトルとなる。これにより式(18)及び式(19)から、アーム120及びアーム120の位置成分ベクトルp1p及びベクトルp2pは、図12に点線で示したベクトルp’及びベクトルp’となる。このため、対象物130を把持しながら障害物140との間に発生する力を緩和する方向に、アーム110及びアーム120は移動する。
次にベクトルPの姿勢成分ベクトルPの運動について説明する。上述したように、ベクトルΔPは、ベクトルFに2次遅れで追従することから、図13に示すように、ベクトルPは、z軸に関してy軸からx軸への向きである負方向に回転する。式(18)及び式(19)から、アーム110及びアーム120の位置成分ベクトルp1d及びベクトルp2dも、図13に示したようにz軸に関して負方向に回転する。図13は、本実施形態に係るベクトルPの姿勢成分ベクトルPの運動について説明する図である。
次に、ベクトルfの計算について説明する。さらに、上述の回転に応じたアームの手先の中心の位置及び姿勢を示す情報のベクトルRの運動について説明する。更にそれに応じたアーム110及びアーム120の位置及び姿勢を示す情報のベクトルp、ベクトルpの運動について説明する。
図14は、本実施形態に係る回転に応じたアームの手先の中心の位置及び姿勢を示す情報のベクトルRの運動について説明する図である。アーム110及びアーム120が、z軸に関して負方向に回転するに伴い、図14(a)に示すように、アーム110及びアーム120には、対象物130に対して加える力ベクトルfが発生する。このベクトルfを、x軸方向及びy軸方向に分解すると、x軸方向については、アーム110が加える力とアーム120が加える力とで相殺する。従って残るy軸方向について、それぞれその反力fry、−fryが、アーム110及びアーム120と把持部111及び121との間に取り付けられた第1力センサ61及び第2力センサ62に入力される。
次に、制御部11は、式(9)に式(23)及び式(24)を代入する。そして、上述した結果を考慮して制御部11がベクトルfを計算すると、ベクトルfは、次式(29)のように表される。
Figure 0005825589
式(29)において、x軸方向の力は、対象物130をアーム110及びアーム120が把持する力に対する反力である。これに応じて対象物130を落下させないように、制御部11が、アームの手先同士の相対の位置及び姿勢の軌道ベクトルRのx成分について、式(22)に示したようにwに選択している。更に、制御部11は、仮想的に設定するインピーダンスの制御変数も合わせて調整している。この制御変数の調整については後に詳述する。
次に、式(29)で示したベクトルfのy成分のみを考慮して、アームの手先同士の相対の位置及び姿勢を示す情報であるベクトルRの運動について説明する。式(17)の両辺をラプラス変換すると、次式(30)と次式(31)が得られる。
Figure 0005825589
Figure 0005825589
式(31)において、ベクトルfを入力、ベクトルΔRを出力とすると、それらが次式(32)のような2次遅れ系で結ばれていると考えることが出来る。
Figure 0005825589
従ってベクトルΔRは、ベクトルfに2次遅れで追従する。式(29)に示したように、ベクトルfの回転成分は0(ゼロ)であるから、ベクトルRの位置成分ベクトルRの運動について説明する。
ベクトルΔRは、ベクトルfに2次遅れで追従することから、図12(b)に示すように、ベクトルΔRは、ベクトルfのy成分−fryに倣う方向を向く。従って、式(11)及び式(22)から、ベクトルRは、図14(b)に示すベクトルとなる。更に式(18)及び式(19)から、アーム110及びアーム120の位置成分ベクトルp1P、p2Pは、図14(b)に点線で示したベクトルp’及びベクトルp’となる。このため、制御部11の制御により、対象物130を把持しながら障害物140との間に発生する力を緩和する方向にアーム110及びアーム120が移動する。
この制御により、図6に示したようにアーム110及びアーム120が物体を把持した状態で、障害物140に対象物130が衝突すると、図7に示したように障害物140から受ける力に応じて受動的にその位置及び姿勢を変更して、コンプライアンスを守る。
次に、アーム110及びアーム120が、把持する力に対する反力に応じて、対象物130を落下させないように、あらかじめ設定されるアームの手先同士の相対の位置及び姿勢の軌道ベクトルRのx成分及び仮想的なインピーダンスの制御変数について図15を用いて説明する。図15は、本実施形態に係るインピーダンスの制御変数を説明する図である。
まず、対象物130を弾性体として、それを把持する際の振舞いについて説明する。ベクトルfのx成分fは、次式(33)のように、相対位置のx成分Rが、対象物130の幅wに対して、それよりも内側に押し込んだ時に、その押し込んだ距離と対象物130の弾性係数kに比例した力を受ける。
Figure 0005825589
また、式(11)より手先の相対位置のx成分Rは、次式(34)のように表される。
Figure 0005825589
更に式(31)より、ベクトルΔRのx成分は、次式(35)のように表される。
Figure 0005825589
次に、制御部11は、式(35)に式(33)及び式(34)を代入して、その振る舞いを解析する。この時、ベクトルRのx成分RTxを、次式(36)のように予め設定しておく。
Figure 0005825589
図16は、ΔR及びfの振る舞いを表す図である。図16(a)に示したのは、ΔRの振る舞いであり、縦軸がΔR、横軸が時間である。また、図16(b)に示したのは、fの振る舞いであり、縦軸がf、横軸が時間である。図16(a)から、ΔRはΔR=w−w、すなわちRTx=wとなり、手先が対象物130の表面に接している位置から、KRx(w−w)/(k+KRx)だけ押し込んだ位置で静止している。
それゆえ、図16(b)に示したように、fはそれに対象物130の弾性係数kを乗じた値になっている。
従って、アーム110及びアーム120が、対象物130に対して押し付ける力fは、次式(37)のようになる。
Figure 0005825589
従って、対象物130の幅w及び弾性係数kが既知であるとすれば、制御部11は、押し付け力fを算出し、それを満たすKRx及びwを用いることで所望の押し付け力を実現することが出来る。この時、wは、wを超えない範囲で大きな値とし、それに応じてKRxを決定することで、アーム110に対するアーム120の相対的な目標位置を遠ざけることが可能である。
また、対象物130の弾性係数kが、KRxとの間に、k>>KRxの関係が成り立つ時、すなわち、対象物130が固い場合、式(37)は、次式(38)のようになる。
Figure 0005825589
この場合、アーム110及びアーム120が対象物130に対して押し付ける力fは、対象物130の弾性係数kと無関係に決定されるため、弾性係数kが未知であっても、押し付け力fを設定し、それを満たすKRx及びwを用いることで所望の押し付け力を実現することが出来る。
次に、制御部11は、式(37)を解析的に求める。まず、制御部11は、式(35)に式(33)及び式(34)を代入し、ΔRについて解き、次式(39)を算出する。
Figure 0005825589
次に、時刻T以降の振る舞いを解析するため、式(39)右辺のk(w―RTx)は、k(w−w)のステップ入力として扱う。このため、式(39)は、式(38)より、次式(40)のように表される。
Figure 0005825589
式(39)及びラプラス変換の最終値の定理を用いて、制御部11は、次式(41)のように、ΔRのt→∞(無限大)の極限を求める。
Figure 0005825589
次に、制御部11は、式(33)に式(34)及び式(41)を代入して、次式(42)のように、アーム110及びアーム120が対象物130に対して押し付ける力fを求める。
Figure 0005825589
また、ベクトルRのx成分RTxを、次式(43)のように5次式で表す。
Figure 0005825589
なお、式(43)において、各係数c、c、c、cは、次式(44)である。
Figure 0005825589
式(43)のようにRTxを5次式で表すことで、アーム110及びアーム120の加速及び減速が緩やかになり、図17に示すように、図16で見られた急激な力の変化は抑制される。図17は、RTxを5次式で表した場合のΔR及びfの振る舞いを表す図である。図17(a)に示したのは、ΔRの振る舞いであり、縦軸がΔR、横軸が時間である。また、図17(b)に示したのは、fの振る舞いであり、縦軸がf、横軸が時間である。
次に、本実施形態に係る制御方法を、図18を用いて説明する。図18は、本実施形態に係る動作の一例を説明するフローチャートである。
制御部11は、作業指示が入力された後、ステップS1〜ステップS10を行う。
制御部11の中心運動の設定軌道算出部11−4は、第1記憶部11−3に記憶されているアーム110の手先及びアーム120の手先の中心の軌道に関する情報を読み出し、読み出した情報に基づき、作業終了時刻Tまでの各時刻の手先の中心の目標位置及び姿勢軌道ベクトルPを生成する。
また、相対運動の設定軌道算出部11−14は、第2記憶部11−13に記憶されているアーム110に対するアーム120の手先同士の相対的なの軌道に関する情報に基づき、作業終了時刻Tまでの各時刻の相対の手先の目標位置及び姿勢軌道ベクトルRを算出する。中心運動の設定軌道算出部11−4は、算出した作業終了時刻Tまでの各時刻の手先の中心の目標位置及び姿勢軌道ベクトルPを中心運動の目標位置算出部11−5に出力する。また、相対運動の設定軌道算出部11−14は、算出した作業終了時刻Tまでの各時刻の相対の手先の目標位置及び姿勢軌道ベクトルRを相対運動の目標位置算出部11−15に出力する(ステップS1)。
次に、制御部11は、内部タイマーの現在時刻tをリセット(t=0)する(ステップS2)。
次に、中心運動に対してはたらく力の算出部11−1は、第1力センサ61からの出力であるベクトルfを取得する。また、相対運動に対してはたらく力の算出部11−11は、第2力センサ62からの出力であるベクトルfを取得する(ステップS3)。
次に、中心運動に対してはたらく力の算出部11−1は、取得した第1力センサ61からの出力であるベクトルfに基づき、アームの手先の中心の位置及び姿勢に加わる力ベクトルFを算出する。中心運動に対してはたらく力の算出部11−1は、算出したアームの手先の中心の位置及び姿勢に加わる力ベクトルFを中心運動のコンプライアンス成分算出部11−2に出力する。また、相対運動に対してはたらく力の算出部11−11は、取得した第2力センサ62からの出力であるベクトルfに基づき、アームの手先同士の相対の位置及び姿勢に加わる力ベクトルfを算出する。相対運動に対してはたらく力の算出部11−11は、算出したアームの手先同士の相対の位置及び姿勢に加わる力ベクトルfを相対運動のコンプライアンス成分算出部11−12に出力する(ステップS4)。
次に、中心運動のコンプライアンス成分算出部11−2は、中心運動に対してはたらく力の算出部11−1から出力されたアームの手先の中心の位置及び姿勢に加わる力ベクトルFに基づき、手先の中心の目標位置及び姿勢に対するコンプライアンス成分ベクトルΔPを算出する。中心運動のコンプライアンス成分算出部11−2は、算出した手先の中心の目標位置及び姿勢に対するコンプライアンス成分ベクトルΔPを中心運動の目標位置算出部11−5に出力する。
相対運動のコンプライアンス成分算出部11−12は、相対運動に対してはたらく力の算出部11−11から出力されたアームの手先同士の相対の位置及び姿勢に加わる力ベクトルfに基づき、手先の相対の目標位置及び姿勢に対するコンプライアンス成分ベクトルΔRを算出する。相対運動のコンプライアンス成分算出部11−12は、算出した手先の中心の目標位置及び姿勢に対するコンプライアンス成分ベクトルΔRを相対運動の目標位置算出部11−15に出力する(ステップS5)。
次に、中心運動の目標位置算出部11−5には、中心運動のコンプライアンス成分算出部11−2から出力された手先の中心の目標位置及び姿勢に対するコンプライアンス成分ベクトルΔPと、中心運動の設定軌道算出部11−4から出力された作業終了時刻Tまでの各時刻の手先の中心の目標位置及び姿勢軌道ベクトルPとが入力される。中心運動の目標位置算出部11−5は、入力された手先の中心の目標位置及び姿勢に対するコンプライアンス成分ベクトルΔPと、作業終了時刻Tまでの各時刻の手先の中心の目標位置及び姿勢軌道ベクトルPとに基づき、現在時刻の手先の中心の真の目標位置及び姿勢を示す情報のベクトルP=ベクトルP+ベクトルΔP(式(10))を算出する。中心運動の目標位置算出部11−5は、算出した現在時刻の手先の中心の真の目標位置及び姿勢を示す情報のベクトルP=ベクトルP+ベクトルΔPを、アーム110の目標位置算出部11−6とアーム120の目標位置算出部11−16とに出力する。
また、相対運動の目標位置算出部11−15には、相対運動のコンプライアンス成分算出部11−12から出力された手先の相対の目標位置及び姿勢に対するコンプライアンス成分ベクトルΔRと、相対運動の設定軌道算出部11−14から出力された作業終了時刻Tまでの各時刻の相対の手先の目標位置及び姿勢軌道ベクトルRとが入力される。相対運動の目標位置算出部11−15は、入力された手先の中心の目標位置及び姿勢に対するコンプライアンス成分ベクトルΔRと、作業終了時刻Tまでの各時刻の相対の手先の目標位置及び姿勢軌道ベクトルRとに基づき、現在時刻の手先の相対の目標位置及び姿勢を示す情報であるベクトルR=ベクトルR+ベクトルΔR(式(11))を算出する。すなわち、相対運動の目標位置算出部11−15は、予定された軌道を、実際の動作に基づき補正した軌道に基づき、実際の動作に応じた現在時刻の手先の相対の目標位置及び姿勢を算出している。
相対運動の目標位置算出部11−15は、算出した現在時刻の手先の相対の真の目標位置及び姿勢を示す情報のベクトルR=ベクトルR+ベクトルΔRを、アーム110の目標位置算出部11−6とアーム120の目標位置算出部11−16とに出力する(ステップS6)。
次に、アーム110の目標位置算出部11−6には、中心運動の目標位置算出部11−5から現在時刻の手先の中心の真の目標位置及び姿勢を示す情報のベクトルP=ベクトルP+ベクトルΔPと、相対運動の目標位置算出部11−15から現在時刻の手先の相対の真の目標位置及び姿勢を示す情報のベクトルR=ベクトルR+ベクトルΔRとが入力される。アーム110の目標位置算出部11−6は、入力された現在時刻の手先の中心の真の目標位置及び姿勢を示す情報のベクトルP=ベクトルP+ベクトルΔPと、現在時刻の手先の相対の真の目標位置及び姿勢を示す情報のベクトルR=ベクトルR+ベクトルΔRとに基づき、アーム110の真の目標位置及び姿勢を示す情報のベクトルp(式(18))を算出する。
また、アーム120の目標位置算出部11−16には、中心運動の目標位置算出部11−5から現在時刻の手先の中心の真の目標位置及び姿勢を示す情報のベクトルP=ベクトルP+ベクトルΔPと、相対運動の目標位置算出部11−15から現在時刻の手先の相対の真の目標位置及び姿勢を示す情報のベクトルR=ベクトルR+ベクトルΔRとが入力される。アーム120の目標位置算出部11−16は、入力された現在時刻の手先の中心の真の目標位置及び姿勢を示す情報のベクトルP=ベクトルP+ベクトルΔPと、現在時刻の手先の相対の真の目標位置及び姿勢を示す情報のベクトルR=ベクトルR+ベクトルΔRとに基づき、アーム120の真の目標位置及び姿勢を示す情報のベクトルp(式(19))を算出する(ステップS7)。
次に、アーム110の目標位置算出部11−6は、算出したアーム110の真の目標位置及び姿勢を示す情報のベクトルp1に基づき、アーム110の目標軌道の補正値である制御値を生成し、生成した制御値に基づき、アーム110を制御する。
また、アーム120の目標位置算出部11−16は、算出したアーム120の真の目標位置及び姿勢を示す情報のベクトルpに基づき、アーム120の目標軌道の補正値である制御値を生成し、生成した制御値に基づき、アーム120を制御する(ステップS8)。
次に、制御部11は、内部タイマーの現在時刻tに制御周期Δtを加算する(ステップS9)。
次に、制御部11は、加算後の内部タイマー値がt=T(作業終了時刻)であるか否かを判定する(ステップS10)。
ステップS10の判定の結果、内部タイマー値がt=T(作業終了時刻)ではない場合(ステップS10;No)、制御部11は、ステップS2に戻り、ステップS2〜ステップS10の処理を繰り返す。
ステップS10の判定の結果、内部タイマー値がt=T(作業終了時刻)の場合(ステップS10;Yes)、制御部11は、制御処理を終了し、次の作業指示を待つ。
以上のように、2本のアーム110及び120の運動を、アーム110の手先及びアーム120の手先の中心の位置及び姿勢を示す情報で表し、アーム110に対するアーム120の手先同士の相対の位置及び姿勢を示す情報で表した。更に予めアーム110の手先及びアーム120の手先の中心の目標軌道を設定して記憶部に記憶させ、予めアーム110に対するアーム120の手先の相対的な目標軌道を設定して記憶部に記憶させることで、対象物130を落下させてしまう、もしくは過大な力を加えて破壊してしまうといった課題を解決した。
また、制御部11は、2本のアーム110及び120に取り付けられた第1力センサ61及び第2力センサ62の値から上述の2つの運動に対する力を表し、目標軌道に対する補正量を、それらの力に対して仮想的なインピーダンスを受けて運動する対象物の位置として計算した。この結果、対象物130が落下しても、補正量が0となり、第1記憶部11−3及び第2記憶部11−13に記憶されている予め設定された目標軌道に、2本のアーム110及び120の手先が移動するだけであって、両者が衝突することを防ぐことができる。
更に、上述のアームの手先同士の相対の位置及び姿勢の運動に対して、仮想的に設定するインピーダンスは、対象物130を把持する際に設定する押し付け力から算出することが可能であり、所望の押し付け力を実現可能とした。
また、本実施形態では、物体130のインピーダンスを仮想的に設定して制御する例を説明した。物体130が剛体である場合、物体130のインピーダンスを考慮せずに、制御部11は、相対位置及び姿勢Rの仮想的なインピーダンスを設定し、所望の押し付け力を制御するようにしてもよい。
[従来技術との比較]
次に、従来技術と本実施形態との比較を行う。
従来技術の場合、図30のような構成のため、アーム1の目標値は、アーム1の力センサ961の出力と予め設定されているアーム1の軌道データのみに基づいて算出されている。また、アーム2の目標値は、アーム2の力センサ962に出力に基づいてアーム1の現在位置を推定し、推定したアーム1の位置に基づいてアーム2の目標値を算出していた。このため、対象物130に障害物140が当たった場合、対象物130を落下させてしまう場合もあった。さらに、対象物130を落下させてしまった場合、アーム2の力センサ962に加わる力がなくなるため、アーム2は、アーム1に向けて移動するような目標値が算出される。この結果、アーム2が、アーム1に衝突してしまう場合もあった。
これに対し、本実施形態の場合、第1アーム110と、第2アーム120との間にインピーダンスが仮想的にあるとして、インピーダンス制御する。アーム110及び120の第1力センサ61及び第2力センサ62の出力に基づき、対象物130の中心運動に対してはたらく力に基づき中心運動のコンプライアンス成分を算出し、相対運動に対してはたらく力に基づき相対運動のコンプライアンス成分を算出している。さらに、中心運動及び相対運動の各時刻における設定軌道を算出している。そして、中心運動のコンプライアンス成分と中心運動の各時刻における設定軌道とに基づき中心運動の目標値を算出している。また、相対運動のコンプライアンス成分と相対運動の各時刻における設定軌道とに基づき相対運動の目標値を算出している。さらに、中心運動の目標値と相対運動の目標値とに基づき、アーム110及び120の目標値を算出して、アーム110及び120とを制御している。
この結果、対象物130が、障害物140に当たった場合でも、対象物130を落下させないように適切な押しつけ力で、アーム110及び120を制御することができる。また、仮に対象物130が、障害物140に当たり落下した場合においても、従来技術とは異なり、アーム110及び120との間には、インピーダンス制御により対象物130を仮想的に把持されているため、第1力センサ61及び第2力センサ62が外力を検出できない状態になっても、アーム120がアーム110に衝突することを防ぐことができる。
次に、非特許文献1と本実施形態との比較を行う。
非特許文献1では、対象物のインピーダンスは、次式(45)〜(47)(非特許文献1の式(21)〜(23))である。これらの式(45)〜(47)を用いて、次式(48)(非特許文献1の式(13))を書き換えると、アームの相対位置の運動方程式は、次式(49)のようになる。
Figure 0005825589
Figure 0005825589
Figure 0005825589
Figure 0005825589
Figure 0005825589
式(45)〜式(49)において、Fは、対象物間に働く力であり、Δxは、対象物間に働く力に対する対象物の相対変位であり、M、D、Kはそれぞれ正定の慣性行列、減衰係数行列及びバネ定数行列である。
また、アームの重心位置の運動方程式は、次式(50)(非特許文献1の式(1))である。
Figure 0005825589
式(50)において、Fextは、対象物に加わる外力であり、Δxは、対象物に加わる外力Fextに対する対象物の位置及び姿勢の変位であり、M、D、Kはそれぞれ対象物の見かけの慣性行列、減衰係数行列及びバネ定数行列である。
式(50)と式(49)とを比べるとゲインは異なるが、周波数特性は同じである。すなわち、物体のコンプライアンス・センターに関する運動と、部品間の相対運動とは同じ運動特性を持つ必要がある。
一方、本実施形態では、物体のコンプライアンス・センターに関する運動と、部品間(エンドエフェクタ間)の相対運動とで異なる運動特性を設定することが可能である。このため、物体を把持しながら、落下させることなくその位置及び姿勢を変更させることが可能であり、障害物と衝突した際も落とすことなく、障害物に倣うように物体を移動させることが可能となる。
[第2実施形態]
第1実施形態では、ロボット1は、対象物130を搬送する例を説明した。第2実施形態においては、ロボット1は、2本のアーム110及び120で、対象物201を把持して、所定の部品211に組み付ける場合について説明する。
図19は、本実施形態に係る対象物(部品)を把持して、所定の部品211に組み付ける一例を説明する図である。 図20は、本実施形態に係るフレームがずれた場合、対象物(部品)を把持して、所定の部品211に組み付ける一例を説明する図である。図19及び図20において、対象物201は、突起部の先端部202を有する凸状の部品であり、突起部以外の両側を2本のアーム110及び120で把持されている。また、フレーム211は、凹状の物体であり、凹部212を有する。ロボット1は、このフレーム211の凹部212に、対象物201の突起部202を組み込むように対象物を移動させるように制御する。
なお、本実施形態に係るロボット1及び制御部11の構成は、第1実施形態と同様のため、説明を省略する。
第1実施形態では、コンプライアンス・センターを、図4のように対象物130の中心、すなわちベクトルPをベクトルRの中間にした例を説明した。本実施形態では、コンプライアンス・センターを、2本のアーム110及び120のそれぞれの先端から所定の位置に設定する。本実施形態においては、所定の位置は、任意の位置に設定する。なお、コンプライアンス・センターの位置は、作業を行う前に、オペレータが当該作業において最適な場所にあらかじめ決めておく。
例えば、図19のように、コンプライアンス・センターを対象物201の凸部の先端202に予めオペレータが設定する。図19のように、対象物201の先端202にコンプライアンス・センターを置くと、対象物201の先端202が空間に対して仮想的に持つインピーダンス特性を設定することが可能となる。なお、インピーダンス特性とは、慣性係数、減衰係数及びバネ定数により式(16)及び式(17)で表される特性である。
フレーム211と対象物201が接触した際に受ける力を、両方のアーム110及び120に取り付けられている第1力センサ61及び第2力センサ62の値から算出し、それに応じて第1実施形態と同様に、インピーダンス特性に応じて、倣い動作をさせることで対象物201をフレーム211へと組み付けることが可能となる。
例えば、図19のように、フレーム211が所定の位置に配置されている場合、両方のアーム110及び120に取り付けた第1力センサ61及び第2力センサ62は、対象物201を把持している場合の力ベクトルfと力ベクトルfとが検出する。
一方、図20のように、フレーム211aが、x方向に距離d1ずれている場合、対象物201の先端202の面が、フレーム211aの凹部212の角213に当たる。この結果、両方のアーム110及び120に取り付けた第1力センサ61及び第2力センサ62には、対象物201の先端202の面が、フレーム211aの凹部212の角213に当たったことによる力ベクトルfと力ベクトルfとが検出される。
第1実施形態では、制御部11は、式(16)と式(17)のインピーダンス制御による運動方程式を解いてベクトルΔPとベクトルΔRを求めた後、式(10)と式(11)に結果を代入して、式(18)と式(19)によりベクトルPとベクトルRを算出した。本実施形態では、制御部11は、式(16)と式(17)のインピーダンス制御による運動方程式に加え、ダンピング制御の制御則である次式(51)と次式(52)を用いてアーム110及びアーム120の目標値を算出する。
Figure 0005825589
Figure 0005825589
なお、式(51)及び式(52)において、上付き^ので表しているD^は、粘性係数(ダンピング係数)である。制御部11は、式(51)、(52)、(16)及び(17)の式を解いてベクトルΔPとベクトルΔRを求めた後、式(10)と式(11)に結果を代入して、ベクトルPとベクトルRを算出する。又、ベクトルFdesは目標外力、ベクトルfdesは目標内力である。
式(51)及び式(52)において、ベクトルFdesを0とし、ベクトルfdesを、対象物を把持するために必要な押し付け力に設定すると、対象物は把持しながらも、外力に対して位置に追従しなくなるため、ダンピング制御も加えることで、物体が障害物に衝突した際に、あらかじめ設定された軌道には追従せず、障害物に倣うような動作を行う。この結果、高いコンプライアンス性能を実現することが可能となる。
次に、制御部11は、次式(53)と次式(54)に、算出したベクトルPとベクトルRを代入して、ベクトルp及びベクトルpを算出する。すなわち、次式(53)が、第1実施形態における式(18)であり、次式(54)が、第1実施形態における式(19)である。
Figure 0005825589
Figure 0005825589
なお、式(53)と式(54)において、ベクトルDは、第1実施形態の式(20)で表される。また、ベクトルR1Tは、ベクトルPから見たアーム110(マニピュレータ1)先端の予め設定された軌道である。ベクトルR2Tは、ベクトルPから見たアーム120(マニピュレータ2)先端の予め設定された軌道である。ベクトルΔRは、ベクトルPから見たアーム110(マニピュレータ1)先端のコンプライアンス成分である。ベクトルΔRは、ベクトルPから見たアーム110(マニピュレータ1)先端のコンプライアンス成分である。
この場合においても、予め算出した各時刻の手先の中心の目標位置及び姿勢軌道と、各時刻の相対の手先の目標位置及び姿勢軌道とを、第1力センサ61及び第1力センサ62により検出された力ベクトルFと力ベクトルfとを用いて、第1実施形態の制御と同様に、図18のフローチャートのように制御することで、対象物130を把持して、所定の部品211に組み付けることができる。
以上のように、本実施形態においても、物体のコンプライアンス・センターに関する運動と、部品間(エンドエフェクタ間)の相対運動とで異なる運動特性を表すことが可能である。このため、物体を把持しながら、落下させることなくその位置及び姿勢を変更させることが可能であり、障害物と衝突した際も落とすことなく、障害物に倣うように物体を移動させることが可能となる。
[第3実施形態]
第2実施形態では、ベクトルPを空間上の任意の位置に置いて、各アームを制御する例を説明した。すなわち、ベクトルPは、空間に固定された座標系Σで記述している。本実施形態では、例えば、対象物(部品)の先端に原点を設定し、対象物の位置及び姿勢に応じて変化する座標系Σ’で記述して、各アームの制御を行う。すなわち、本実施形態においては、コンプライアンス・センターは、対象物の位置及び姿勢に応じて変化する。
なお、本実施形態に係るロボット1及び制御部11の構成は、第1実施形態と同様のため、説明を省略する。
図21は、本実施形態に係る対象物(部品)を把持して、所定の部品311に組み付ける一例を説明する図である。図21において、符号301は対象物301(部品)であり、符号311は対象物301(部品)を取り付けるフレーム311である。図21において、対象物301は、突起部の先端部302を有する凸状の部品であり、突起部以外の両側を2本のアーム110及び120で把持されている。また、フレーム311は、凹状の物体であり、凹部312を有する。ロボット1は、このフレーム311の凹部312に、対象物301の突起部302を組み込むように対象物を移動させるように制御する。
例えば、対象物301の先端302に原点O’を設定し、x’軸、y’軸、z’軸をそれぞれ図21のように設定する。このように座標系Σ’(O’−x’y’z’)を定義する。
第1実施形態では、制御部11は、式(16)と式(17)を解いた後、式(18)と式(19)により各アームの目標位置であるベクトルPとベクトルRを算出した。本実施形態では、制御部11は、座標系Σ’(O’−x’y’z’)に基づき、ベクトルp1T及びベクトルp2Tを、次式(55)〜式(58)のように表し、アーム110及びアーム120の目標値を算出する。
Figure 0005825589
Figure 0005825589
Figure 0005825589
Figure 0005825589
なお、式(55)において、ベクトルp1Tは、アーム110の手先の位置及び姿勢を示すベクトルpの把持した対象物301の位置及び姿勢を操作するように予め設定され第1記憶部11−3に記憶されている軌道である。また、式(56)において、ベクトルp2Tは、アーム120の手先の位置及び姿勢を示すベクトルpの把持した対象物301の位置及び姿勢を操作するように予め設定され第1記憶部11−3に記憶されている軌道である。
式(55)〜式(58)を用いて、式(18)と式(19)は、次式(59)と次式(60)のように置き換える。
Figure 0005825589
Figure 0005825589
このように本実施形態では、式(59)と式(60)により、制御部11は、各アーム110及び120の目標位置であるベクトルPとベクトルRを算出し、算出した目標位置の制御値に基づき各アームを、第1実施形態のフローチャートの図18と同様に制御する。
以上のように、部品の形状に応じて部品の先端に物体座標系とすると、部品の先端が空間に対して仮想的に持つインピーダンス特性を、部品の位置及び姿勢に関係なく、その形状に応じて算出することが可能となる。この結果、フレームと部品が接触した際に受ける力を、両方のアームに取り付けた力センサの値から算出し、それに応じて上述のインピーダンス特性に応じて、倣い動作をさせることで部品をフレームへと組み付けることが可能となる。
なお、ベクトルP及びベクトルRは、予め設定される軌道のため、ベクトルp1T及びベクトルp2Tを予め制御部11が計算しておき、第1記憶部11−3及び第2記憶部11−13に記憶させておくことが可能である。これにより、演算効率を向上することができる。
また、制御部11は、コンプライアンス成分を、式(57)と式(58)を用いて算出し、式(58)及び式(60)を用いて各アームの目標値を算出することで、重心位置ベクトルP及び相対位置ベクトルRを経由することなく各アーム110及び120の目標位置を計算することが可能になり、計算時間の短縮が可能になる効果がある。
[第4実施形態]
第1実施形態〜第3実施形態では、2本のアームにより制御する例を説明したが、本実施形態は3本のアームを用いて制御する例である。
図22は、本実施形態に係る3本のアームによるロボット制御方法を適用するロボット1のアームの概念図である。図22のように、対象物430(物体)を、3本のアーム401〜403が、各指部405〜407を介して把持している。なお、図23では、説明のために、対象物430を二次元的に三箇所、把持している図を示したが、これに限らず、3次元的に三箇所を把持するようにしてもよい。
図23は、本実施形態に係る3本のアームによる座標系を説明する図である。図23において、第1アーム401(マニピュレーター1)の手先位置及び姿勢をベクトルx(図4のベクトルpに相当)、第2アーム402(マニピュレーター2)の手先位置及び姿勢をベクトルx(図4のベクトルpに相当)、第3アーム403(マニピュレーター3)の手先位置及び姿勢をベクトルxとして表している。また、図23において、ベクトルxは、3本のアームの手先の中心の位置及び姿勢(図4のベクトルPに相当)である。さらに、ベクトルx2rは、第1アーム401の先端位置xと、第2アーム402の先端位置xとの相対位置を表している。x3rは、第1アーム401の先端位置xと、第3アーム403の先端位置xとの相対位置を表している。ベクトルx2r、xr3及びx1pは、図4のベクトルRに相当する。
また、図23においては、3本のアームの統一的な座標系(作業座標系)の原点Oを交わらせて表している。
これらのベクトルx、x、x、x、x1p、x2r及びx3rを用いて、ベクトルxpは、次式(61)のように表される。
Figure 0005825589
図23のように、ベクトルx2rは、次式(62)のように表され、ベクトルx3rは、次式(63)のように表される。
Figure 0005825589
Figure 0005825589
式(61)、式(62)及び式(63)を用いて、各アームの手先位置ベクトルx1〜ベクトルx3は、次式(64)のように表される。
Figure 0005825589
制御部411は、この式(64)を、式(18)及び式(19)の代わりに用い、式(64)の各ベクトルx、x及びxを算出し、各アームの目標位置及び姿勢を算出することで、各アーム401〜403を制御する。
図24は、本実施形態に係る制御部411のブロック図である。図24のように、制御部411は、重心運動に対してはたらく力の算出部411−1、重心運動のコンプライアンス成分算出部411−2、第1記憶部411−3、重心運動の設定軌道算出部411−4、重心運動の目標位置算出部411−5、第1アームの目標位置算出部411−20、相対運動に対してはたらく力の算出部411−11、相対運動のコンプライアンス成分算出部411−12、第2記憶部411−13、相対運動の設定軌道算出部411−14、相対運動の目標位置算出部411−15、第2アームの目標位置算出部411−21、及び第3アームの目標位置算出部411−22を備えている。また、制御部411は、不図示の内部タイマーを備えている。なお、本実施形態では、第1記憶部411−3と第2記憶部411−13のように2つ備える例を説明したが、記憶部は1つでもよい。
重心運動に対してはたらく力の算出部411−1には、各アーム401〜403に取り付けられている第1力センサ61(検出部)、第2力センサ62(検出部)及び第3力センサ463(検出部)から、力成分とトルク成分を含む情報が入力される。重心運動に対してはたらく力の算出部411−1は、第1力センサ61、第2力センサ62及び第3センサ463との出力とに基づき、対象物の重心運動に対してはたらく力を算出する。重心運動に対してはたらく力の算出部411−1は、算出した対象物の重心運動に対してはたらく力を重心運動のコンプライアンス成分算出部411−2に出力する。
なお、重心運動に対してはたらく力とは、アーム401の手先、アーム402の手先及びアーム403の手先の間に把持されている対象物430の重心位置に対して働く力である。対象物430の密度が一様であれば、重心位置は対象物430の中心の位置である。
重心運動のコンプライアンス成分算出部411−2は、重心運動に対してはたらく力の算出部411−1から出力された対象物の重心運動に対してはたらく力を示す情報に基づき、対象物の重心運動のコンプライアンス成分を算出する。重心運動のコンプライアンス成分算出部11−2は、算出した対象物の重心運動のコンプライアンス成分を重心運動の目標位置算出部411−5に出力する。
第1記憶部411−3には、予め対象物に対する重心運動の軌道に関する情報が記憶されている。
重心運動の設定軌道算出部411−4は、第1記憶部411−3に記憶されている対象物に対する重心運動の軌道に関する情報を読み出し、読み出した情報に基づき、対象物に対する重心運動の軌道を算出する。重心運動の設定軌道算出部411−4は、算出した対象物の重心運動の軌道を重心運動の目標位置算出部411−5に出力する。
重心運動の目標位置算出部411−5には、重心運動のコンプライアンス成分算出部411−2から出力された対象物の重心運動のコンプライアンス成分を示す情報と、重心運動の設定軌道算出部411−4から出力された対象物の重心運動の設定軌道を示す情報とが入力される。重心運動の目標位置算出部411−5は、入力された対象物の重心運動のコンプライアンス成分を示す情報と、対象物の重心運動の設定軌道を示す情報とに基づき、対象物の重心運動の目標値を算出する。重心運動の目標位置算出部411−5は、算出した対象物の重心運動の目標値を第1アームの目標位置算出部411−20、第2アームの目標位置算出部411−21及び第3アームの目標位置算出部411−22に出力する。
相対運動に対してはたらく力の算出部411−11には、各アーム401〜403に取り付けられている第1力センサ61、第2力センサ62及び第3力センサ463から、力成分とトルク成分を含む情報が入力される。相対運動に対してはたらく力の算出部411−11は、入力された第1力センサ61、第2力センサ62及び第3力センサ463との出力とに基づき、対象物の相対運動に対してはたらく力を算出する。相対運動に対してはたらく力の算出部411−11は、算出した対象物の相対運動に対してはたらく力を相対運動のコンプライアンス成分算出部411−12に出力する。
なお、相対運動に対してはたらく力とは、アーム401に対するアーム402、アーム403の相対的にはたらく力である。
相対運動のコンプライアンス成分算出部411−12は、相対運動に対してはたらく力の算出部411−11から出力された対象物の相対運動に対してはたらく力を示す情報に基づき、対象物の相対運動のコンプライアンス成分を算出する。相対運動のコンプライアンス成分算出部411−12は、算出した対象物の相対運動のコンプライアンス成分を相対運動の目標位置算出部411−15に出力する。
第2記憶部411−13には、予め相対運動の軌道に関する情報が記憶されている。
相対運動の設定軌道算出部411−14は、第2記憶部411−13に記憶されている対象物に対する相対運動の軌道に関する情報を読み出し、読み出した情報に基づき、対象物に対する相対運動の軌道を算出する。相対運動の設定軌道算出部411−14は、算出した対象物の相対運動の軌道を相対運動の目標位置算出部411−15に出力する。
相対運動の目標位置算出部411−15には、相対運動のコンプライアンス成分算出部411−12から出力された対象物の相対運動のコンプライアンス成分を示す情報と、相対運動の設定軌道算出部411−14から出力された対象物の相対運動の設定軌道を示す情報とが入力される。相対運動の目標位置算出部411−15は、入力された対象物の相対運動のコンプライアンス成分を示す情報と、対象物の相対運動の設定軌道を示す情報とに基づき、対象物の相対運動の目標値を算出する。算出した対象物の相対運動の目標値を第1アームの目標位置算出部411−20、第2アームの目標位置算出部411−21及び第3アームの目標位置算出部411−22に出力する。
第1アームの目標位置算出部411−20には、重心運動の目標位置算出部411−5から対象物の重心運動の目標値を示す情報と、相対運動の目標位置算出部411−15から対象物の相対運動の目標値を示す情報とが入力される。第1アームの目標位置算出部411−20は、入力された対象物の重心運動の目標値を示す情報と、対象物の相対運動の目標値を示す情報とに基づき、第1アームの目標値を算出する。第1アームの目標位置算出部411−20は、算出した第1アームの目標値を第1アーム401の制御信号として、第1アーム401に出力する。
第2アームの目標位置算出部411−21には、重心運動の目標位置算出部411−5から対象物の重心運動の目標値を示す情報と、相対運動の目標位置算出部411−15から対象物の相対運動の目標値を示す情報とが入力される。第2アームの目標位置算出部411−20は、入力された対象物の重心運動の目標値を示す情報と、対象物の相対運動の目標値を示す情報とに基づき、第2アームの目標値を算出する。第2アームの目標位置算出部411−20は、算出した第2アームの目標値を第2アーム402の制御信号として、第2アーム402に出力する。
第3アームの目標位置算出部411−22には、重心運動の目標位置算出部411−5から対象物の重心運動の目標値を示す情報と、相対運動の目標位置算出部411−15から対象物の相対運動の目標値を示す情報とが入力される。第3アームの目標位置算出部411−22は、入力された対象物の重心運動の目標値を示す情報と、対象物の相対運動の目標値を示す情報とに基づき、第3アームの目標値を算出する。第3アームの目標位置算出部411−22は、算出した第3アームの目標値を第3アーム403の制御信号として、第3アーム403に出力する。
以上のように、3本のアームを備えるロボットにおいても、各アームの把持部に取り付けられている各力センサの出力に基づき、各アームの目標位置及び姿勢を算出して各アームを制御するようにした。この結果、物体を把持しながら、落下させることなくその位置及び姿勢を変更させることが可能であり、障害物と衝突した際も落とすことなく、障害物に倣うように物体を移動させることが可能となる。
また、3本のアームを備えることで、対象物(物体)を把持する際の1本辺りの負荷が分散されるため、アームが2本である場合に比べて重量物を安定して把持し、搬送及び組み付けを行うことが可能になる。
[第5実施形態]
本実施形態は、3本のアームを制御する別の実施形態である。図25は、本実施形態に係る3本のアームによる座標系を説明する図である。図25のように、第1アーム401の手先位置及び姿勢をベクトルx(図4のベクトルpに相当)、第2アーム402の手先位置及び姿勢をベクトルx(図4のベクトルpに相当)、第3アーム403の手先位置及び姿勢をベクトルxとして表している。また、図25において、ベクトルxは、3本のアームの手先の中心の位置及び姿勢(図4のベクトルPに相当)である。さらに、ベクトルx2rは、第1アーム401の先端位置x1と、第2アーム402の先端位置x2との相対位置を表している。x3rは、第2アーム402の先端位置xと、第3アーム403の先端位置xとの相対位置を表している。ベクトルx2r、xr3及びx1pは、図4のベクトルRに相当する。
また、図25においては、3本のアームの統一的な座標系(作業座標系)の原点Oを交わらせて表している。
これらのベクトルx、x、x、x、x1p、x2r及びx3rを用いて、ベクトルxは、第4実施形態と同様に、式(61)のように表される。
また、図25のように、ベクトルx2rは、次式(65)のように表され、ベクトルx3rは、次式(66)のように表される。
Figure 0005825589
Figure 0005825589
式(61)、式(65)及び式(66)を用いて、各アームの手先位置ベクトルx〜ベクトルxは、次式(67)のように表される。
Figure 0005825589
制御部411は、この式(67)を、式(18)及び式(19)の代わりに用い、式(67)の各ベクトルx、x及びxを算出し、各アームの目標位置及び姿勢を算出することで、各アームを制御する。
なお、第4実施形態の式(64)を用いて各アームの目標位置及び姿勢を算出するか、本実施形態の式(67)を用いて各アームの目標位置及び姿勢を算出するかは、例えば対象物の形状などに応じてこれらを使い分けるようにしてもよい。すなわち、対象物の形状に応じて、力を制御すべき軸が変わるため、それに応じてこれらのパターンを使い分けるようにしてもよい。
以上のように、3本のアームを備えるロボットにおいても、各アームの把持部に取り付けられている各力センサの出力に基づき、各アームの目標位置及び姿勢を算出して各アームを制御するようにした。この結果、物体を把持しながら、落下させることなくその位置及び姿勢を変更させることが可能であり、障害物と衝突した際も落とすことなく、障害物に倣うように物体を移動させることが可能となる。
また、3本のアームを備えることで、対象物(物体)を把持する際の1本辺りの負荷が分散されるため、アームが2本の場合に比べて重量物を安定して把持し、搬送及び組み付けを行うことが可能になる。
[第6実施形態]
本実施形態は、3本のアームを制御する別の実施形態である。図26は、本実施形態に係る3本のアームによる座標系を説明する図である。図26のように、第1アーム401の手先位置及び姿勢をベクトルx(図4のベクトルpに相当)、第2アーム402の手先位置及び姿勢をベクトルx(図4のベクトルpに相当)、第3アーム403の手先位置及び姿勢をベクトルxとして表している。また、図26において、ベクトルxは、3本のアームの手先の中心の位置及び姿勢(図4のベクトルPに相当)である。さらに、ベクトルx2rは、第3アーム403の先端位置xと、第2アーム402の先端位置xとの相対位置を表している。x3rは、第1アーム401の先端位置xと、第3アーム403の先端位置xとの相対位置を表している。ベクトルx2r、xr3及びx1pは、図4のベクトルRに相当する。
また、図26においては、3本のアームの統一的な座標系(作業座標系)の原点Oを交わらせて表している。
これらのベクトルx、x、x、x、x1p、x2r及びx3rを用いて、ベクトルxは、第3実施形態と同様に、式(61)のように表される。
また、図26のように、ベクトルx2rは、次式(68)のように表され、ベクトルx3rは、次式(69)のように表される。
Figure 0005825589
Figure 0005825589
式(61)、式(68)及び式(69)を用いて、各アームの手先位置ベクトルx〜ベクトルxは、次式(70)のように表される。
Figure 0005825589
制御部411は、この式(70)を、式(18)及び式(19)の代わりに用い、式(70)の各ベクトルx、x及びxを算出し、各アームの目標位置及び姿勢を算出することで、各アームを制御する。
なお、第4実施形態の式(64)を用いて各アームの目標位置及び姿勢を算出するか、第5実施形態の式(67)を用いて各アームの目標位置及び姿勢を算出するか、あるいは、本実施形態の式(70)を用いて各アームの目標位置及び姿勢を算出するかは、例えば対象物の状などに応じてこれらを使い分けるようにしてもよい。すなわち、対象物の形状に応じて、力を制御すべき軸が変わるため、それに応じてこれらのパターンを使い分けるようにしてもよい。
以上のように、3本のアームを備えるロボットにおいても、各アームの把持部に取り付けられている各力センサの出力に基づき、各アームの目標位置及び姿勢を算出して各アームを制御するようにした。この結果、物体を把持しながら、落下させることなくその位置及び姿勢を変更させることが可能であり、障害物と衝突した際も落とすことなく、障害物に倣うように物体を移動させることが可能となる。
また、3本のアームを備えることで、対象物(物体)を把持する際の1本辺りの負荷が分散されるため、アームが2本の場合に比べて重量物を安定して把持し、搬送及び組み付けを行うことが可能になる。
[第7実施形態]
本実施形態では、4本のアームを制御する実施形態について説明する。
図27は、本実施形態に係る4本のアームによるロボット制御方法を適用するロボット1のアームの概念図である。図27のように、対象物530(物体)を、4本のアーム501〜504が、各指部505〜508を介して把持している。なお、図27では、説明のために、対象物530を二次元的に四箇所、把持している図を示したが、これに限らず、3次元的に四箇所を把持するようにしてもよい。
各アームの制御を行う制御部の構成は、図24の構成において、重心運動に対してはたらく力の算出部411−1に、4本のアームに設けられている各々の力センサー(第1力センサ〜第4力センサ)の出力が入力される。ここでは、第3のアームの他に、第4のアームが設けられ、この第4のアームに第4力センサが設けられている。同様に、図24の構成において、相対運動に対してはたらく力の算出部411−11に、4本のアームに設けられている各々の力センサー(第1力センサ〜第4力センサ)の出力が入力される。
また、図24の構成に加え、不図示の第4アームの目標位置算出部を備える。第4アームの目標位置算出部には、重心運動の目標位置算出部411−5から対象物の重心運動の目標値を示す情報と、相対運動の目標位置算出部411−15から対象物の相対運動の目標値を示す情報とが入力される。第4アームの目標位置算出部は、入力された対象物の重心運動の目標値を示す情報と、対象物の相対運動の目標値を示す情報とに基づき、第4アームの目標値を算出する。第4アームの目標位置算出部は、算出した第4アームの目標値を第4アームの制御信号として、第4アームに出力する。
図28は、本実施形態に係る4本のアームによる座標系を説明する図である。図28のように、第1アーム501の手先位置及び姿勢をベクトルx(図4のベクトルp1に相当)、第2アーム502の手先位置及び姿勢をベクトルx(図4のベクトルpに相当)、第3アーム503の手先位置及び姿勢をベクトルx、第4アーム504の手先位置及び姿勢をベクトルxとして表している。また、図28において、ベクトルxは、4本のアームの手先の中心の位置及び姿勢(図4のベクトルPに相当)である。さらに、ベクトルx2rは、第1アーム501の先端位置xと、第2アーム502の先端位置xとの相対位置を表している。x3rは、第1アーム501の先端位置xと、第3アーム503の先端位置xとの相対位置を表している。x4rは、第1アーム501の先端位置xと、第4アーム504の先端位置xとの相対位置を表している。すなわち、ベクトルx2r〜xnr(nは、3以上4以下の自然数)は、第1アーム501の先端位置xと、第nアームの先端位置xとの相対位置を表している。
また、ベクトルx2r、xr3、4r及びx1pは、図4のベクトルRに相当する。また、図28においては、4本のアームの統一的な座標系(作業座標系)の原点Oを交わらせて表している。
これらのベクトルx、x、x、x、x1p、x2r、x3r及びx4rを用いて、ベクトルxは、次式(71)のように表される。
Figure 0005825589
図28のように、ベクトルx2rは、次式(72)のように表され、ベクトルx3rは、次式(73)のように表され、ベクトルx4rは、次式(74)のように表される。
Figure 0005825589
Figure 0005825589
Figure 0005825589
式(71)〜式(74)を用いて、各アームの手先位置ベクトルx〜ベクトルxは、次式(75)のように表される。
Figure 0005825589
制御部411は、この式(75)を、式(18)及び式(19)の代わりに用い、式(75)の各ベクトルx、x及びxを算出し、各アームの目標位置及び姿勢を算出することで、各アームを制御する。
なお、本実施形態では、アームが4本の場合における制御の一例を説明したが、アームが3本の場合と同様に、対象物の形状等に応じて、各ベクトルx1p、x2r、x3r及びx4rの設定を第4実施形態〜第6実施形態のように設定してもよい。すなわち、各ベクトルx1p、x2r、x3r及びx4rは、ベクトルx2r〜xnr(nは、3以上4以下の自然数)は、第1アームの先端位置xと、第nアームの先端位置xとの相対位置に限らない。例えば、x2rは、第2アームの先端位置xと、第nアームの先端位置xとの相対位置であってもよい。
以上のように、4本のアームを備えるロボットにおいても、各アームの把持部に取り付けられている各力センサの出力に基づき、各アームの目標位置及び姿勢を算出して各アームを制御するようにした。この結果、物体を把持しながら、落下させることなくその位置及び姿勢を変更させることが可能であり、障害物と衝突した際も落とすことなく、障害物に倣うように物体を移動させることが可能となる。
また、4本のアームを備えることで、対象物(物体)を把持する際の1本辺りの負荷が分散されるため、アームが2本の場合に比べて重量物を安定して把持し、搬送及び組み付けを行うことが可能になる。
[第8実施形態]
本実施形態では、n(nは2以上の自然数)本のアームを制御する実施形態について説明する。
図29は、本実施形態に係るn本のアームによる座標系を説明する図である。図29のように、第1のアームの手先位置及び姿勢をベクトルx(図4のベクトルpに相当)、第2のアームの手先位置及び姿勢をベクトルx(図4のベクトルpに相当)、第3のアームの手先位置及び姿勢をベクトルx、第4のアームの手先位置及び姿勢をベクトルx、・・・第nのアームの手先位置及び姿勢をベクトルxとして表している。また、図29において、ベクトルxは、複数のアームの手先の中心の位置及び姿勢(図4のベクトルPに相当)である。さらに、ベクトルx2rは、第1アームの先端位置xと、第2アームの先端位置xとの相対位置を表している。x3rは、第1アームの先端位置xと、第3アームの先端位置xとの相対位置を表している。x4rは、第1アームの先端位置xと、第4アームの先端位置xとの相対位置を表している。xnrは、第1アームの先端位置xと、第nアームの先端位置xとの相対位置を表している。すなわち、ベクトルx2r〜xnrは、第1アームの先端位置xと、第nアームの先端位置xとの相対位置を表している。また、ベクトルx2r、xr3、4r・・・xnr及びx1pは、図4のベクトルRに相当する。
また、図29においては、n本のアームの統一的な座標系(作業座標系)の原点Oを交わらせて表している。
これらのベクトルx、x、x、x、x1p、x2r、x3r・・・xnr及びx4rを用いて、ベクトルxは、次式(76)のように表される。
Figure 0005825589
図29のように、ベクトルx2r、・・・、ベクトルxnrは、次式(77)のように表される。
Figure 0005825589
式(76)と式(77)を用いて、各アームの手先位置ベクトルx〜ベクトルxは、次式(78)のように表される。
Figure 0005825589
制御部411は、この式(78)を、式(18)及び式(19)の代わりに用い、式(78)の各ベクトルx〜xを算出し、各アームの目標位置及び姿勢を算出することで、各アームを制御する。
各アームの制御を行う制御部411は、図24の構成において、重心運動に対してはたらく力の算出部411−1に、n本のアームに設けられている各々の力センサー(第1力センサ〜第n力センサ)の出力が入力される。同様に、図24の構成において、相対運動に対してはたらく力の算出部411−11に、n本のアームに設けられている各々の力センサー(第1力センサ〜第n力センサ)の出力が入力される。
また、図24の構成に加え、不図示の第4アーム〜第nアームの目標位置算出部を備える。第nアームの目標位置算出部には、重心運動の目標位置算出部411−5から対象物の重心運動の目標値を示す情報と、相対運動の目標位置算出部411−15から対象物の相対運動の目標値を示す情報とが入力される。第nアームの目標位置算出部は、入力された対象物の重心運動の目標値を示す情報と、対象物の相対運動の目標値を示す情報とに基づき、第nアームの目標値を算出する。第nアームの目標位置算出部は、算出した第nアームの目標値を第nアームの制御信号として、第nアームに出力する。
なお、本実施形態では、アームがn本の場合における制御の一例を説明したが、アームが3本の場合と同様に、対象物の形状等に応じて、各ベクトルx1p、x2r、x3r及びx4rの設定を第4実施形態〜第6実施形態のように変えてもよい。
以上のように、n本のアームを備えるロボットにおいても、各アームの把持部に取り付けられている各力センサの出力に基づき、各アームの目標位置及び姿勢を算出して各アームを制御するようにした。この結果、物体を把持しながら、落下させることなくその位置及び姿勢を変更させることが可能であり、障害物と衝突した際も落とすことなく、障害物に倣うように物体を移動させることが可能となる。
また、4本のアームを備えることで、対象物(物体)を把持する際の1本辺りの負荷が分散されるため、アームが2本の場合に比べて重量物を安定して把持し、搬送及び組み付けを行うことが可能になる。
なお、本実施形態では、各アームが対象物を把持して、搬送あるいはフレームに組み付ける例を説明したが、例えば、アーム部20−1の第5フレーム25には、カメラを設けられるようにしてもよい。カメラは、制御部11または411の制御によって、対象物またはフレームを撮像し、取り付け位置を撮影した画像に基づき認識するようにしてもよい。そして、認識した結果に基づき、対象物をフレームの取り付け位置に移動するように制御部が制御する。この場合においても、フレームの取り付け部分の位置が予め定められている位置からずれていても、対象物とフレームとが接触したりして、対象物やフレームが破損することを防ぐことができる。
なお、本実施形態では、各アームに設けられた力センサを用いて、各アームにかかる外力を検出する例を説明したが、本発明はこれに限定されない。例えば、各アームを接続する各関節(屈折部、回転部)のモータを駆動する駆動電流値から、アーム部20−1及び20−2に作用する外力を検出するようにしてもよい。さらに、力センサを用いず、各関節の角速度から、各アーム部20−1及び20−2に作用する外力を検出するようにしてもよい。
なお、本実施形態では、ロボット制御装置1をロボットに適用する例を説明したが、例えば、本実施形態のロボット制御装置1を、組み立て装置や搬送装置などに適用してもよい。また、本実施形態では、対象物を把持して搬送、または組み込む例を説明したが、例えば、物体の分解や検査など所定の動作を行うようにしてもよい。
なお、実施形態の図3および図24の制御部の各部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM(Read Only Memory)、CD−ROM等の可搬媒体、USB(Universal Serial Bus) I/F(インタフェース)を介して接続されるUSBメモリ、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、サーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
1・・・ロボット
10・・・固定部
11、411・・・制御部
20・・・アーム部
40−1、40−2・・・指部
61・・・第1センサ(検出部)
62・・・第2センサ(検出部)
110、120・・・アーム
111、121・・・把持部(アーム部の先端)
130・・・対象物
140・・・障害物
ベクトルP(P)・・・アーム110及びアーム120のアームの手先の中心の位置及び姿勢
ベクトルR(R)・・・アーム110に対するアーム120の手先同士の相対的な手先位置及び姿勢
・・・アーム110の手先位置及び姿勢
・・・アーム120の手先位置及び姿勢

Claims (15)

  1. 対象物を運搬する複数のアーム部と、
    の前記アーム部にそれぞれ設けられた、前記アームに作用する外力を検出する検出部と、
    前記各検出部からの検出情報に基づき、複数の前記アーム部を制御する制御部と、
    を備え
    前記制御部は、
    複数の前記アーム部の作業空間上に任意に設定された座標系において、複数の前記アーム部のそれぞれの先端に対する相対的な位置及び姿勢が定義された所定の点の位置及び姿勢を示すPの運動を前記各検出部からの検出情報に基づき算出し、複数の前記アーム部の先端同士の相対の位置及び姿勢を示すRの運動を前記各検出部からの検出情報に基づき算出し、
    前記算出したPの運動とRの運動とに基づき、複数の前記アーム部を制御す
    ことを特徴とするロボット制御装置。
  2. 複数の前記アームのそれぞれの先端に対する相対的な位置及び姿勢が定義された前記所定の点は、複数の前記アームのそれぞれの先端を結ぶ線分の中点である
    ことを特徴とする請求項に記載のロボット制御装置。
  3. 前記座標系の原点は、前記対象物に設定されている
    ことを特徴とする請求項に記載のロボット制御装置。
  4. 前記制御部は、
    前記Pの運動と前記Rの運動とを、複数の前記アーム間に設定された仮想的なインピーダンスに基づいて算出し、
    前記算出したPの運動とRの運動とに基づき、複数の前記アームを制御する
    ことを特徴とする請求項から請求項のいずれか1項に記載のロボット制御装置。
  5. 前記制御部は、
    前記Pの運動と前記Rの運動とに基づき、複数の前記アームの各々の目標位置及び姿勢を算出し、
    前記算出した複数の前記アームの各々の目標位置及び姿勢を示す情報に基づき、複数の前記アームを制御する
    ことを特徴とする請求項から請求項のいずれか1項に記載のロボット制御装置。
  6. 前記制御部は、
    前記Pの運動と前記Rの運動とを、前記設定された仮想的なインピーダンスと前記対象物のインピーダンスとに基づき算出する
    ことを特徴とする請求項から請求項のいずれか1項に記載のロボット制御装置。
  7. 前記制御部は、
    複数の前記アームが、前記対象物に対して押し付ける力が所望の値になるように、当該対象物のインピーダンスを考慮して、前記Rの運動の仮想的なインピーダンスを設定する
    ことを特徴とする請求項から請求項のいずれか1項に記載のロボット制御装置。
  8. 前記制御部は、
    前記対象物が剛体である場合、前記対象物のインピーダンスを考慮せずに、前記Rの運動の仮想的なインピーダンスを設定し、前記各アームから前記対象物への所望の押し付け力を制御する
    ことを特徴とする請求項に記載のロボット制御装置。
  9. 前記制御部は、
    前記Pの運動とRの運動とに基づき、複数の前記アームの各々の手先位置及び姿勢を示すp、p、・・・p(nは2以上の自然数)を算出し、複数の前記アームを制御する
    ことを特徴とする請求項から請求項のいずれか1項に記載のロボット制御装置。
  10. 前記制御部は、
    数の前記アームの基準点同士の相対位置に基づいて、複数の前記アームの各々の手先位置及び姿勢を示すp、p、・・・p(nは2以上の自然数)を算出し、複数の前記アームを制御する
    ことを特徴とする請求項から請求項のいずれか1項に記載のロボット制御装置。
  11. 前記制御部は、
    複数の前記アームが、前記対象物を運搬する各々の予め定められた目標軌道に対する補正量を、前記Pの運動と前記Rの運動とに基づき算出し、算出した補正量に基づき複数の前記アームを制御する
    ことを特徴とする請求項から請求項10のいずれか1項に記載のロボット制御装置。
  12. 前記制御部は、
    前記Pの運動と前記Rの運動の振る舞いを定義した運動方程式を、時間に関する高次の多項式を用いて解くことで前記Pの運動と前記Rの運動とを算出する
    ことを特徴とする請求項から請求項1のいずれか1項に記載のロボット制御装置。
  13. 数の前記アームは、各々6自由度を有する6軸アームである
    ことを特徴とする請求項1から請求項1のいずれか1項に記載のロボット制御装置。
  14. 前記請求項1から請求項1のいずれか1項のロボット制御装置を備える
    ことを特徴とするロボット。
  15. 対象物を運搬する複数のアーム部を有するロボット制御装置におけるロボット制御方法において、
    検出部が、複の前記アーム部にそれぞれ設けられた、外力を検出する検出工程と、
    制御部が、複数の前記アーム部を制御する制御工程と、
    を有し、
    前記制御工程は、複数の前記アーム部の作業空間上に任意に設定された座標系において、複数の前記アーム部のそれぞれの先端に対する相対的な位置及び姿勢が定義された所定の点の位置及び姿勢を示すPの運動を前記各検出部からの検出情報に基づき算出し、複数の前記アーム部の先端同士の相対の位置及び姿勢を示すRの運動を前記各検出部からの検出情報に基づき算出し、前記算出したPの運動とRの運動とに基づき、複数の前記アーム部を制御する
    ことを特徴とするロボット制御方法。
JP2011090998A 2011-04-15 2011-04-15 ロボット制御装置、ロボット、およびロボット制御方法 Active JP5825589B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011090998A JP5825589B2 (ja) 2011-04-15 2011-04-15 ロボット制御装置、ロボット、およびロボット制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011090998A JP5825589B2 (ja) 2011-04-15 2011-04-15 ロボット制御装置、ロボット、およびロボット制御方法

Publications (2)

Publication Number Publication Date
JP2012223829A JP2012223829A (ja) 2012-11-15
JP5825589B2 true JP5825589B2 (ja) 2015-12-02

Family

ID=47274598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011090998A Active JP5825589B2 (ja) 2011-04-15 2011-04-15 ロボット制御装置、ロボット、およびロボット制御方法

Country Status (1)

Country Link
JP (1) JP5825589B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5915214B2 (ja) 2012-02-01 2016-05-11 セイコーエプソン株式会社 ロボット装置、組立て方法、及び組立てプログラム
KR101383722B1 (ko) * 2012-12-17 2014-04-08 현대자동차(주) 로봇의 양팔제어방법
JP2014205199A (ja) * 2013-04-10 2014-10-30 セイコーエプソン株式会社 ロボット、ロボット制御装置およびロボットシステム
JP2014205197A (ja) * 2013-04-10 2014-10-30 セイコーエプソン株式会社 ロボット、ロボット制御装置およびロボットシステム
JP2014205198A (ja) * 2013-04-10 2014-10-30 セイコーエプソン株式会社 ロボット、ロボット制御装置およびロボットシステム
JP6400321B2 (ja) * 2014-03-31 2018-10-03 本田技研工業株式会社 ワーク保持方法
US10329042B2 (en) 2015-03-20 2019-06-25 Seiko Epson Corporation Packing apparatus and packing method
JP6497299B2 (ja) * 2015-11-12 2019-04-10 株式会社デンソー 医療支援装置
DE102018004947B3 (de) * 2018-06-22 2019-07-18 Sew-Eurodrive Gmbh & Co Kg Verfahren zur Steuerung von Antrieben eines Roboters und Robotersystem
KR20210040265A (ko) * 2019-10-03 2021-04-13 가부시키가이샤 니데크 안경 렌즈 주연 가공 시스템 및 기록 매체
CN111673736A (zh) * 2020-05-13 2020-09-18 北京理工大学 一种机器人系统控制方法、设备及存储介质
CN114619437A (zh) * 2020-12-08 2022-06-14 山东新松工业软件研究院股份有限公司 一种冗余多关节机器人柔性阻抗控制方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241661A (ja) * 1992-03-03 1993-09-21 Yaskawa Electric Corp マニピュレータの協調制御装置
JPH07256580A (ja) * 1994-03-18 1995-10-09 Fujitsu Ltd 複腕協調制御装置
JP2717771B2 (ja) * 1994-11-17 1998-02-25 川崎重工業株式会社 ロボットの協調制御方法および協調制御装置

Also Published As

Publication number Publication date
JP2012223829A (ja) 2012-11-15

Similar Documents

Publication Publication Date Title
JP5825589B2 (ja) ロボット制御装置、ロボット、およびロボット制御方法
US11305431B2 (en) System and method for instructing a robot
JP6640792B2 (ja) ハンド制御装置、ハンド制御方法、およびハンドのシミュレーション装置
Suárez-Ruiz et al. A framework for fine robotic assembly
Williams Ii et al. Translational planar cable-direct-driven robots
TW201404560A (zh) 控制系統、程式及機械裝置之控制方法
WO2020149021A1 (ja) 経路生成装置、経路生成方法、及び経路生成プログラム
US20230117928A1 (en) Nonlinear trajectory optimization for robotic devices
Mandava et al. Design of PID controllers for 4-DOF planar and spatial manipulators
Liao et al. Analysis of impact in robotic peg-in-hole assembly
Gosselin Compact dynamic models for the Tripteron and Quadrupteron parallel manipulators
Long et al. Dynamic modeling of cooperative robots holding flexible objects
He et al. A strategy for large workpiece assembly based on hybrid impedance control
Yamane Admittance control with unknown location of interaction
Ángel et al. RoboTenis: design, dynamic modeling and preliminary control
Shin et al. Humanoid's dual arm object manipulation based on virtual dynamics model
Suleman et al. Dynamic based control strategy for haptic devices
Zelenak et al. An extended kalman filter for collision detection during manipulator contact tasks
Cheng et al. Efficient hand eye calibration method for a Delta robot pick-and-place system
Muthusamy et al. Investigation and design of robotic assistance control system for cooperative manipulation
Hong et al. A calculation method of the reaction force and moment for a Delta-type parallel link robot fixed with a frame
Sadeghian et al. Experimental study on task space control during physical human robot interaction
Hung et al. Improvements of force tracking performances for a minimal surgery training system using haptic and robot devices
Misaghi et al. Dynamic analysis of a planar parallel robot with the purpose of obtaining optimal inertial parameters for energy consumption
Vu Control of an anthropomorphic manipulator involved in physical Human-Robot Interaction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150331

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150908

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151005

R150 Certificate of patent or registration of utility model

Ref document number: 5825589

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250